@bit.rhplus/ag-grid 0.0.114 → 0.0.116
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/AgGridOnRowDataChanged.js +3 -8
- package/CheckBoxRenderer.jsx +1 -0
- package/Components/ExtendButton.jsx +1 -0
- package/Editors/ModuleLookupEditor.jsx +65 -0
- package/Editors/index.jsx +1 -0
- package/Renderers/CheckboxRenderer.jsx +1 -0
- package/Renderers/CountrySelectRenderer.jsx +1 -0
- package/Renderers/ModuleLookupRenderer.jsx +40 -0
- package/Renderers/SelectCellRenderer.jsx +1 -0
- package/Renderers/index.jsx +1 -0
- package/dist/AgGridAddNewItem.d.ts +1 -0
- package/dist/AgGridAddNewItem.js +6 -0
- package/dist/AgGridAddNewItem.js.map +1 -0
- package/dist/AgGridColumn.d.ts +3 -0
- package/dist/AgGridColumn.js +357 -0
- package/dist/AgGridColumn.js.map +1 -0
- package/dist/AgGridColumnFilter.d.ts +4 -0
- package/dist/AgGridColumnFilter.js +19 -0
- package/dist/AgGridColumnFilter.js.map +1 -0
- package/dist/AgGridOnGridReady.d.ts +1 -0
- package/dist/AgGridOnGridReady.js +6 -0
- package/dist/AgGridOnGridReady.js.map +1 -0
- package/dist/AgGridOnRowDataChanged.d.ts +1 -0
- package/dist/AgGridOnRowDataChanged.js +4 -0
- package/dist/AgGridOnRowDataChanged.js.map +1 -0
- package/dist/AgGridOnRowDataUpdated.d.ts +1 -0
- package/dist/AgGridOnRowDataUpdated.js +27 -0
- package/dist/AgGridOnRowDataUpdated.js.map +1 -0
- package/dist/AgGridPostSort.d.ts +1 -0
- package/dist/AgGridPostSort.js +32 -0
- package/dist/AgGridPostSort.js.map +1 -0
- package/dist/AggregationNotification.d.ts +1 -0
- package/dist/AggregationNotification.js +121 -0
- package/dist/AggregationNotification.js.map +1 -0
- package/dist/AggregationStatusBar.d.ts +3 -0
- package/dist/AggregationStatusBar.js +122 -0
- package/dist/AggregationStatusBar.js.map +1 -0
- package/dist/Aggregations.d.ts +2 -0
- package/dist/Aggregations.js +313 -0
- package/dist/Aggregations.js.map +1 -0
- package/dist/BulkEdit/BulkEditButton.d.ts +14 -0
- package/dist/BulkEdit/BulkEditButton.js +140 -0
- package/dist/BulkEdit/BulkEditButton.js.map +1 -0
- package/dist/BulkEdit/BulkEditDatePicker.d.ts +11 -0
- package/dist/BulkEdit/BulkEditDatePicker.js +160 -0
- package/dist/BulkEdit/BulkEditDatePicker.js.map +1 -0
- package/dist/BulkEdit/BulkEditInput.d.ts +14 -0
- package/dist/BulkEdit/BulkEditInput.js +34 -0
- package/dist/BulkEdit/BulkEditInput.js.map +1 -0
- package/dist/BulkEdit/BulkEditModule.d.ts +11 -0
- package/dist/BulkEdit/BulkEditModule.js +34 -0
- package/dist/BulkEdit/BulkEditModule.js.map +1 -0
- package/dist/BulkEdit/BulkEditPopover.d.ts +14 -0
- package/dist/BulkEdit/BulkEditPopover.js +125 -0
- package/dist/BulkEdit/BulkEditPopover.js.map +1 -0
- package/dist/BulkEdit/BulkEditSelect.d.ts +18 -0
- package/dist/BulkEdit/BulkEditSelect.js +56 -0
- package/dist/BulkEdit/BulkEditSelect.js.map +1 -0
- package/dist/BulkEdit/BulkEditTagsSelect.d.ts +15 -0
- package/dist/BulkEdit/BulkEditTagsSelect.js +45 -0
- package/dist/BulkEdit/BulkEditTagsSelect.js.map +1 -0
- package/dist/BulkEdit/index.d.ts +1 -0
- package/dist/BulkEdit/index.js +11 -0
- package/dist/BulkEdit/index.js.map +1 -0
- package/dist/BulkEdit/useBulkCellEdit.d.ts +1 -0
- package/dist/BulkEdit/useBulkCellEdit.js +397 -0
- package/dist/BulkEdit/useBulkCellEdit.js.map +1 -0
- package/dist/BulkEdit/utils.d.ts +7 -0
- package/dist/BulkEdit/utils.js +568 -0
- package/dist/BulkEdit/utils.js.map +1 -0
- package/dist/CheckBoxRenderer.d.ts +6 -0
- package/dist/CheckBoxRenderer.js +19 -0
- package/dist/CheckBoxRenderer.js.map +1 -0
- package/dist/Components/ExtendButton.css +6 -0
- package/dist/Components/ExtendButton.d.ts +2 -0
- package/dist/Components/ExtendButton.js +13 -0
- package/dist/Components/ExtendButton.js.map +1 -0
- package/dist/CountryCellRenderer.d.ts +1 -0
- package/dist/CountryCellRenderer.js +12 -0
- package/dist/CountryCellRenderer.js.map +1 -0
- package/dist/Editors/DatePickerEditor.d.ts +9 -0
- package/dist/Editors/DatePickerEditor.js +55 -0
- package/dist/Editors/DatePickerEditor.js.map +1 -0
- package/dist/Editors/ModuleLookupEditor.d.ts +8 -0
- package/dist/Editors/ModuleLookupEditor.js +43 -0
- package/dist/Editors/ModuleLookupEditor.js.map +1 -0
- package/dist/Editors/index.d.ts +1 -0
- package/dist/Editors/index.js +3 -0
- package/dist/Editors/index.js.map +1 -0
- package/dist/Functions/index.d.ts +2 -0
- package/dist/Functions/index.js +27 -0
- package/dist/Functions/index.js.map +1 -0
- package/dist/HeaderTemplates/CommonHeaderTemplate.d.ts +1 -0
- package/dist/HeaderTemplates/CommonHeaderTemplate.js +15 -0
- package/dist/HeaderTemplates/CommonHeaderTemplate.js.map +1 -0
- package/dist/HyperModuleEditor.d.ts +1 -0
- package/dist/HyperModuleEditor.js +119 -0
- package/dist/HyperModuleEditor.js.map +1 -0
- package/dist/HyperModuleRenderer.d.ts +1 -0
- package/dist/HyperModuleRenderer.js +138 -0
- package/dist/HyperModuleRenderer.js.map +1 -0
- package/dist/NotificationOptions.d.ts +10 -0
- package/dist/NotificationOptions.js +80 -0
- package/dist/NotificationOptions.js.map +1 -0
- package/dist/OnCellDoubleClicked.d.ts +1 -0
- package/dist/OnCellDoubleClicked.js +6 -0
- package/dist/OnCellDoubleClicked.js.map +1 -0
- package/dist/OnCellEditingStarted.d.ts +1 -0
- package/dist/OnCellEditingStarted.js +7 -0
- package/dist/OnCellEditingStarted.js.map +1 -0
- package/dist/OnCellValueChanged.d.ts +1 -0
- package/dist/OnCellValueChanged.js +10 -0
- package/dist/OnCellValueChanged.js.map +1 -0
- package/dist/Renderers/BooleanRenderer.d.ts +3 -0
- package/dist/Renderers/BooleanRenderer.js +55 -0
- package/dist/Renderers/BooleanRenderer.js.map +1 -0
- package/dist/Renderers/ButtonRenderer.d.ts +3 -0
- package/dist/Renderers/ButtonRenderer.js +66 -0
- package/dist/Renderers/ButtonRenderer.js.map +1 -0
- package/dist/Renderers/CheckboxRenderer.d.ts +7 -0
- package/dist/Renderers/CheckboxRenderer.js +37 -0
- package/dist/Renderers/CheckboxRenderer.js.map +1 -0
- package/dist/Renderers/CountrySelectRenderer.d.ts +7 -0
- package/dist/Renderers/CountrySelectRenderer.js +56 -0
- package/dist/Renderers/CountrySelectRenderer.js.map +1 -0
- package/dist/Renderers/IconRenderer.d.ts +3 -0
- package/dist/Renderers/IconRenderer.js +187 -0
- package/dist/Renderers/IconRenderer.js.map +1 -0
- package/dist/Renderers/ImageRenderer.d.ts +3 -0
- package/dist/Renderers/ImageRenderer.js +58 -0
- package/dist/Renderers/ImageRenderer.js.map +1 -0
- package/dist/Renderers/LinkRenderer.d.ts +3 -0
- package/dist/Renderers/LinkRenderer.js +76 -0
- package/dist/Renderers/LinkRenderer.js.map +1 -0
- package/dist/Renderers/ModuleLookupRenderer.d.ts +3 -0
- package/dist/Renderers/ModuleLookupRenderer.js +28 -0
- package/dist/Renderers/ModuleLookupRenderer.js.map +1 -0
- package/dist/Renderers/ObjectRenderer.d.ts +3 -0
- package/dist/Renderers/ObjectRenderer.js +96 -0
- package/dist/Renderers/ObjectRenderer.js.map +1 -0
- package/dist/Renderers/SelectCellRenderer.d.ts +4 -0
- package/dist/Renderers/SelectCellRenderer.js +19 -0
- package/dist/Renderers/SelectCellRenderer.js.map +1 -0
- package/dist/Renderers/SelectRenderer.d.ts +3 -0
- package/dist/Renderers/SelectRenderer.js +56 -0
- package/dist/Renderers/SelectRenderer.js.map +1 -0
- package/dist/Renderers/StateRenderer.d.ts +3 -0
- package/dist/Renderers/StateRenderer.js +137 -0
- package/dist/Renderers/StateRenderer.js.map +1 -0
- package/dist/Renderers/index.d.ts +1 -0
- package/dist/Renderers/index.js +3 -0
- package/dist/Renderers/index.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +868 -0
- package/dist/index.js.map +1 -0
- package/dist/preview-1773828129212.js +7 -0
- package/dist/util.d.ts +15 -0
- package/dist/util.js +108 -0
- package/dist/util.js.map +1 -0
- package/package.json +5 -5
- package/types/asset.d.ts +43 -0
- package/types/env.d.ts +15 -0
- package/types/style.d.ts +42 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
declare const _default: React.NamedExoticComponent<{
|
|
2
|
+
value: any;
|
|
3
|
+
onChange: any;
|
|
4
|
+
onSubmit: any;
|
|
5
|
+
onCancel: any;
|
|
6
|
+
loading: any;
|
|
7
|
+
options?: any[];
|
|
8
|
+
placeholder?: string;
|
|
9
|
+
allowClear?: boolean;
|
|
10
|
+
fieldLabel?: string;
|
|
11
|
+
fieldValue?: string;
|
|
12
|
+
fieldIcon?: any;
|
|
13
|
+
showSearch?: boolean;
|
|
14
|
+
autoSubmit?: boolean;
|
|
15
|
+
autoOpen?: boolean;
|
|
16
|
+
}>;
|
|
17
|
+
export default _default;
|
|
18
|
+
import React from 'react';
|
|
@@ -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;
|