@opencorestack/opengridx 2.1.0 → 3.0.1
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/CHANGELOG.md +399 -0
- package/README.md +95 -72
- package/dist/index.d.ts +590 -131
- package/dist/opengridx.css +1 -1
- package/dist/opengridx.es.js +7891 -5631
- package/dist/opengridx.es.js.map +1 -1
- package/dist/opengridx.umd.js +17 -23
- package/dist/opengridx.umd.js.map +1 -1
- package/docs/API_REFERENCE.md +348 -166
- package/docs/README.md +6 -1
- package/docs/architecture/datagrid-orchestration.md +81 -0
- package/docs/architecture/grid-row-meta.md +102 -0
- package/docs/architecture/use-grid-columns.md +128 -0
- package/docs/architecture/use-grid-controlled-state.md +157 -0
- package/docs/architecture/use-grid-row-pipeline.md +120 -0
- package/docs/architecture/use-grid-scroll-sync.md +111 -0
- package/docs/architecture/use-grid-state-snapshot.md +90 -0
- package/docs/architecture/use-grid-virtualization.md +115 -0
- package/docs/architecture/use-grid-visible-rows.md +85 -0
- package/docs/assets/banner-alt.png +0 -0
- package/docs/assets/banner.png +0 -0
- package/docs/assets/hero.png +0 -0
- package/docs/assets/logo.png +0 -0
- package/docs/components/aggregation-footer.md +15 -10
- package/docs/components/cell.md +16 -6
- package/docs/components/column-group-header.md +55 -28
- package/docs/components/column-resize.md +17 -13
- package/docs/components/column-visibility.md +6 -7
- package/docs/components/datagrid.md +15 -13
- package/docs/components/empty-state.md +2 -1
- package/docs/components/error-overlay.md +12 -7
- package/docs/components/filter-panel.md +28 -8
- package/docs/components/header.md +28 -9
- package/docs/components/pagination.md +14 -8
- package/docs/components/row.md +21 -5
- package/docs/components/toolbar.md +27 -9
- package/docs/components/tooltip.md +16 -7
- package/docs/customization/slots-api.md +90 -38
- package/docs/customization/theming.md +66 -18
- package/docs/features/aggregation-pivot.md +75 -9
- package/docs/features/cell-spanning.md +80 -125
- package/docs/features/clipboard.md +41 -16
- package/docs/features/custom-pagination.md +38 -18
- package/docs/features/data-source.md +36 -13
- package/docs/features/editing-reordering.md +125 -16
- package/docs/features/export-guide.md +126 -39
- package/docs/features/filtering.md +44 -6
- package/docs/features/infinite-scroll.md +54 -46
- package/docs/features/keyboard-navigation.md +83 -0
- package/docs/features/list-view.md +58 -5
- package/docs/features/loading-states.md +18 -20
- package/docs/features/master-detail.md +18 -5
- package/docs/features/pdf-export.md +72 -19
- package/docs/features/pinning.md +24 -5
- package/docs/features/selection.md +50 -10
- package/docs/features/sorting-pagination.md +64 -14
- package/docs/features/state-persistence.md +78 -10
- package/docs/features/toolbar-customization.md +26 -17
- package/docs/features/tree-data-grouping.md +36 -8
- package/docs/features/virtualization.md +37 -14
- package/docs/migration/v1-to-v2.md +115 -0
- package/docs/migration/v2-to-v3.md +1233 -0
- package/docs/performance.md +124 -0
- package/docs/roadmap.md +5 -5
- package/lib/components/Cell/Cell.css +17 -1
- package/lib/components/Cell/Cell.tsx +129 -57
- package/lib/components/Cell/CellErrorBoundary.tsx +12 -6
- package/lib/components/Cell/GridEditInputCell.tsx +114 -41
- package/lib/components/ColumnGroupHeader/ColumnGroupHeader.css +7 -1
- package/lib/components/ColumnResizeHandle/ColumnResizeHandle.css +15 -2
- package/lib/components/ColumnResizeHandle/ColumnResizeHandle.tsx +104 -38
- package/lib/components/ColumnResizeHandle/clampResizeWidth.ts +13 -0
- package/lib/components/ColumnVisibilityPanel/ColumnVisibilityPanel.css +6 -0
- package/lib/components/ColumnVisibilityPanel/ColumnVisibilityPanel.tsx +21 -13
- package/lib/components/DataGrid/DataGrid.css +85 -12
- package/lib/components/DataGrid/DataGrid.tsx +582 -876
- package/lib/components/DataGrid/GridAggregationFooter.tsx +53 -17
- package/lib/components/DataGrid/GridErrorOverlay.tsx +15 -12
- package/lib/components/DataGrid/GridListView.tsx +165 -24
- package/lib/components/DataGrid/GridLiveRegion.tsx +31 -0
- package/lib/components/DataGrid/GridLoadingOverlay.tsx +27 -0
- package/lib/components/DataGrid/GridPaginationArea.tsx +44 -0
- package/lib/components/DataGrid/GridPinnedRows.tsx +62 -11
- package/lib/components/DataGrid/GridStandaloneColumnPanel.tsx +40 -38
- package/lib/components/DataGrid/GridToolbarSlot.tsx +51 -0
- package/lib/components/DataGrid/GridVirtualRows.tsx +40 -24
- package/lib/components/DetailPanel/DetailPanel.css +0 -6
- package/lib/components/DetailPanel/DetailPanel.tsx +34 -5
- package/lib/components/DetailPanel/DetailPanelContent.tsx +17 -0
- package/lib/components/FilterPanel/FilterPanel.css +13 -2
- package/lib/components/FilterPanel/FilterPanel.tsx +272 -99
- package/lib/components/Header/ColumnMenu.tsx +91 -39
- package/lib/components/Header/Header.css +6 -3
- package/lib/components/Header/Header.tsx +181 -160
- package/lib/components/ListView/ListView.css +25 -0
- package/lib/components/ListView/ListViewRow.tsx +76 -10
- package/lib/components/Pagination/Pagination.tsx +15 -7
- package/lib/components/Row/Row.tsx +177 -77
- package/lib/components/Toolbar/GlobalSearch.css +6 -3
- package/lib/components/Toolbar/GlobalSearch.tsx +26 -27
- package/lib/components/Toolbar/GridToolbar.css +12 -11
- package/lib/components/Toolbar/GridToolbar.tsx +133 -89
- package/lib/components/Toolbar/PivotPanel.tsx +89 -49
- package/lib/components/Tooltip/Tooltip.css +20 -0
- package/lib/components/Tooltip/Tooltip.tsx +68 -35
- package/lib/components/ui/Button.tsx +3 -0
- package/lib/components/ui/Checkbox.tsx +2 -1
- package/lib/components/ui/ExpandIcon.css +0 -9
- package/lib/components/ui/ExpandIcon.tsx +4 -1
- package/lib/hooks/core/gridApiPlaceholder.ts +34 -0
- package/lib/hooks/core/gridToolbarHostContext.ts +14 -0
- package/lib/hooks/core/useDataGrid.ts +115 -173
- package/lib/hooks/core/useGridAggregationApi.ts +72 -0
- package/lib/hooks/core/useGridApiMethods.ts +115 -0
- package/lib/hooks/core/useGridApiRef.ts +19 -4
- package/lib/hooks/core/useGridApiRefBinding.ts +18 -0
- package/lib/hooks/core/useGridAriaRows.ts +38 -0
- package/lib/hooks/core/useGridClipboardApi.ts +38 -0
- package/lib/hooks/core/useGridColumnLookup.ts +30 -0
- package/lib/hooks/core/useGridColumns.tsx +279 -76
- package/lib/hooks/core/useGridColumnsPanel.ts +77 -0
- package/lib/hooks/core/useGridControlledState.ts +99 -6
- package/lib/hooks/core/useGridDetailPanel.ts +51 -0
- package/lib/hooks/core/useGridDevWarnings.ts +104 -5
- package/lib/hooks/core/useGridFocusHandlers.ts +50 -0
- package/lib/hooks/core/useGridGroupingColumn.ts +62 -0
- package/lib/hooks/core/useGridHeaderHandlers.ts +92 -0
- package/lib/hooks/core/useGridHierarchy.ts +81 -0
- package/lib/hooks/core/useGridKeyboardNavigation.ts +447 -243
- package/lib/hooks/core/useGridLiveRowSelection.ts +67 -0
- package/lib/hooks/core/useGridPageCorrection.ts +55 -0
- package/lib/hooks/core/useGridRowIdOf.ts +32 -0
- package/lib/hooks/core/useGridRowInteractions.ts +81 -0
- package/lib/hooks/core/useGridRowPipeline.ts +69 -39
- package/lib/hooks/core/useGridRowSelection.ts +91 -0
- package/lib/hooks/core/useGridScrollSync.ts +80 -32
- package/lib/hooks/core/useGridScrollToIndexesApi.ts +45 -0
- package/lib/hooks/core/useGridStateSnapshot.ts +40 -5
- package/lib/hooks/core/useGridThemeDimensions.ts +49 -0
- package/lib/hooks/core/useGridToolbarProps.ts +97 -0
- package/lib/hooks/core/useGridViewport.ts +38 -0
- package/lib/hooks/core/useGridViewportSize.ts +26 -0
- package/lib/hooks/core/useGridVisibleRows.ts +17 -5
- package/lib/hooks/core/useLayout.ts +215 -195
- package/lib/hooks/core/useRowsScrollEndLatch.ts +41 -0
- package/lib/hooks/core/useStableColumns.ts +34 -0
- package/lib/hooks/features/useAggregation.ts +82 -51
- package/lib/hooks/features/useColumnGroupReorderGuard.ts +34 -0
- package/lib/hooks/features/useDetailPanelHeights.ts +29 -0
- package/lib/hooks/features/useGridClipboard.ts +133 -73
- package/lib/hooks/features/useGridDataSource.ts +354 -128
- package/lib/hooks/features/useGridEditing.ts +211 -51
- package/lib/hooks/features/useGridPivot.ts +92 -0
- package/lib/hooks/features/useGridSpanRenderWindow.ts +104 -0
- package/lib/hooks/features/useGridSpanning.ts +410 -306
- package/lib/hooks/features/usePivot.ts +0 -0
- package/lib/hooks/features/useServerTreeChildren.ts +50 -0
- package/lib/hooks/useColumnReorder.ts +38 -44
- package/lib/hooks/useRowGrouping.ts +298 -160
- package/lib/hooks/useRowReorder.ts +62 -31
- package/lib/hooks/useTreeData.ts +287 -220
- package/lib/index.ts +28 -2
- package/lib/state/index.ts +1 -0
- package/lib/state/types.ts +7 -1
- package/lib/state/useGridStateStorage.ts +88 -29
- package/lib/theme/DataGridThemeProvider.tsx +143 -38
- package/lib/theme/gridThemeContext.ts +5 -0
- package/lib/theme/index.ts +5 -0
- package/lib/theme/presets.ts +5 -4
- package/lib/theme/types.ts +40 -2
- package/lib/types/index.ts +313 -116
- package/lib/utils/aggregation/index.ts +119 -24
- package/lib/utils/aria/index.ts +40 -0
- package/lib/utils/columnGroups.ts +110 -0
- package/lib/utils/columnLookup.ts +33 -0
- package/lib/utils/columnWidth.ts +22 -0
- package/lib/utils/dataSource/index.ts +46 -0
- package/lib/utils/detailPanel.ts +66 -0
- package/lib/utils/dragData.ts +44 -0
- package/lib/utils/editing/index.ts +30 -0
- package/lib/utils/export/exportShared.ts +197 -0
- package/lib/utils/export/exportToExcelAdvanced.ts +278 -139
- package/lib/utils/export/exportToPdf.ts +143 -92
- package/lib/utils/export/groupLabel.ts +14 -0
- package/lib/utils/export/index.ts +278 -272
- package/lib/utils/export/pdfText.ts +50 -0
- package/lib/utils/filtering/index.ts +277 -148
- package/lib/utils/focus/index.ts +115 -0
- package/lib/utils/gridApiRows.ts +35 -0
- package/lib/utils/gridModes.ts +77 -0
- package/lib/utils/grouping/groupedExportRows.ts +91 -0
- package/lib/utils/pagination/index.ts +56 -0
- package/lib/utils/pinning/index.ts +77 -33
- package/lib/utils/pivot/index.ts +368 -0
- package/lib/utils/scroll/index.ts +55 -5
- package/lib/utils/scroll/scrollEnd.ts +18 -0
- package/lib/utils/sorting/index.ts +154 -30
- package/lib/utils/syntheticRows.ts +12 -0
- package/lib/utils/values.ts +206 -0
- package/lib/utils/viewport.ts +14 -0
- package/llms.txt +261 -164
- package/package.json +13 -5
- package/lib/components/ColumnGroupHeader/ColumnGroupHeader.tsx +0 -220
- package/lib/components/ColumnVisibilityPanel/ColumnVisibilityPanel.test.tsx +0 -85
- package/lib/components/DataGrid/DataGrid.defects.test.tsx +0 -103
- package/lib/components/DataGrid/DataGrid.regression.test.tsx +0 -132
- package/lib/components/DataGrid/DataGrid.smoke.test.tsx +0 -58
- package/lib/components/DataGrid/DataGrid.v2.test.tsx +0 -127
- package/lib/components/DataGrid/DataGrid.virtualization.browser.test.tsx +0 -183
- package/lib/components/Header/Header.test.tsx +0 -135
- package/lib/components/Pagination/Pagination.test.tsx +0 -64
- package/lib/hooks/core/useDataGrid.regression.test.ts +0 -66
- package/lib/hooks/core/useGridControlledState.test.ts +0 -86
- package/lib/hooks/core/useGridKeyboardNavigation.test.ts +0 -176
- package/lib/hooks/core/useGridRowPipeline.test.ts +0 -117
- package/lib/hooks/features/useAggregation.test.ts +0 -175
- package/lib/hooks/features/usePivot.test.ts +0 -202
- package/lib/hooks/useRowGrouping.test.ts +0 -298
- package/lib/hooks/useTreeData.test.ts +0 -83
- package/lib/utils/aggregation/aggregation.test.ts +0 -16
- package/lib/utils/export/exportToExcelAdvanced.test.ts +0 -109
- package/lib/utils/export/exportToPdf.test.ts +0 -120
- package/lib/utils/export/groupedExport.test.ts +0 -144
- package/lib/utils/filtering/filtering.test.ts +0 -178
- package/lib/utils/sorting/sorting.test.ts +0 -88
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { useCallback, useLayoutEffect, useRef } from 'react';
|
|
2
|
+
import { upsertSortItem } from '../../utils/sorting';
|
|
3
|
+
import { pinColumnTo } from '../../utils/pinning';
|
|
4
|
+
import type {
|
|
5
|
+
GridColumnPinning,
|
|
6
|
+
GridColumnVisibilityModel,
|
|
7
|
+
GridPinnedPosition,
|
|
8
|
+
GridSortDirection,
|
|
9
|
+
GridSortItem,
|
|
10
|
+
} from '../../types';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* The sort model after sorting `field` by `direction` (null removes it). `multiSort` adds or updates
|
|
14
|
+
* the column in the model (shift-click); otherwise the model is replaced by this one column. The
|
|
15
|
+
* header, the keyboard and `apiRef.sortColumn` all build the next model with this.
|
|
16
|
+
*/
|
|
17
|
+
export function nextSortModelForColumn(
|
|
18
|
+
current: readonly GridSortItem[],
|
|
19
|
+
field: string,
|
|
20
|
+
direction: GridSortDirection,
|
|
21
|
+
multiSort: boolean
|
|
22
|
+
): GridSortItem[] {
|
|
23
|
+
if (multiSort) return upsertSortItem(current, field, direction);
|
|
24
|
+
return direction ? [{ field, sort: direction }] : current.filter(item => item.field !== field);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export interface UseGridSortHandlersParams {
|
|
28
|
+
sortModel: GridSortItem[];
|
|
29
|
+
/** Stores the model when uncontrolled and calls onSortModelChange (useGridControlledState). */
|
|
30
|
+
onSortModelChange: (model: GridSortItem[]) => void;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export interface UseGridSortHandlersResult {
|
|
34
|
+
/** Header click / Enter: replaces the sort model with this column (or clears it). */
|
|
35
|
+
handleSort: (field: string, direction: GridSortDirection) => void;
|
|
36
|
+
/** Shift-click / Shift+Enter: adds, updates or removes this column in the sort model. */
|
|
37
|
+
handleSortAdd: (field: string, direction: GridSortDirection) => void;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/** Sort changes from the header and the keyboard; the same transition and handler as apiRef.sortColumn. */
|
|
41
|
+
export function useGridSortHandlers(params: UseGridSortHandlersParams): UseGridSortHandlersResult {
|
|
42
|
+
const { sortModel, onSortModelChange } = params;
|
|
43
|
+
|
|
44
|
+
const handleSort = useCallback((field: string, direction: GridSortDirection) => {
|
|
45
|
+
onSortModelChange(nextSortModelForColumn(sortModel, field, direction, false));
|
|
46
|
+
}, [sortModel, onSortModelChange]);
|
|
47
|
+
|
|
48
|
+
const handleSortAdd = useCallback((field: string, direction: GridSortDirection) => {
|
|
49
|
+
onSortModelChange(nextSortModelForColumn(sortModel, field, direction, true));
|
|
50
|
+
}, [sortModel, onSortModelChange]);
|
|
51
|
+
|
|
52
|
+
return { handleSort, handleSortAdd };
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export interface UseGridColumnMenuHandlersParams {
|
|
56
|
+
columnVisibilityModel: GridColumnVisibilityModel;
|
|
57
|
+
onColumnVisibilityModelChange: (model: GridColumnVisibilityModel) => void;
|
|
58
|
+
pinnedColumns: GridColumnPinning;
|
|
59
|
+
onPinnedColumnsChange: (model: GridColumnPinning) => void;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export interface UseGridColumnMenuHandlersResult {
|
|
63
|
+
handleHideColumn: (field: string) => void;
|
|
64
|
+
handlePinColumn: (field: string, side: GridPinnedPosition | null) => void;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* The column menu's Hide and Pin actions. Each builds on the latest model, including a change made
|
|
69
|
+
* earlier in the same tick, so two hides (or pins) before a re-render both stick.
|
|
70
|
+
*/
|
|
71
|
+
export function useGridColumnMenuHandlers(params: UseGridColumnMenuHandlersParams): UseGridColumnMenuHandlersResult {
|
|
72
|
+
const { columnVisibilityModel, onColumnVisibilityModelChange, pinnedColumns, onPinnedColumnsChange } = params;
|
|
73
|
+
|
|
74
|
+
const latestRef = useRef({ columnVisibilityModel, pinnedColumns });
|
|
75
|
+
useLayoutEffect(() => {
|
|
76
|
+
latestRef.current = { columnVisibilityModel, pinnedColumns };
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
const handleHideColumn = useCallback((field: string) => {
|
|
80
|
+
const next = { ...latestRef.current.columnVisibilityModel, [field]: false };
|
|
81
|
+
latestRef.current = { ...latestRef.current, columnVisibilityModel: next };
|
|
82
|
+
onColumnVisibilityModelChange(next);
|
|
83
|
+
}, [onColumnVisibilityModelChange]);
|
|
84
|
+
|
|
85
|
+
const handlePinColumn = useCallback((field: string, side: GridPinnedPosition | null) => {
|
|
86
|
+
const next = pinColumnTo(latestRef.current.pinnedColumns, field, side);
|
|
87
|
+
latestRef.current = { ...latestRef.current, pinnedColumns: next };
|
|
88
|
+
onPinnedColumnsChange(next);
|
|
89
|
+
}, [onPinnedColumnsChange]);
|
|
90
|
+
|
|
91
|
+
return { handleHideColumn, handlePinColumn };
|
|
92
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { useMemo } from 'react';
|
|
2
|
+
import { useTreeData } from '../useTreeData';
|
|
3
|
+
import { useRowGrouping, type UseRowGroupingParams } from '../useRowGrouping';
|
|
4
|
+
import type { GridRowGroupingModel, GridRowId, GridRowMeta, GridRowModel } from '../../types';
|
|
5
|
+
|
|
6
|
+
const EMPTY_ROW_META_MAP: Map<GridRowId, GridRowMeta> = new Map();
|
|
7
|
+
|
|
8
|
+
export interface UseGridHierarchyParams<R extends GridRowModel> extends Pick<
|
|
9
|
+
UseRowGroupingParams<R>,
|
|
10
|
+
| 'rows'
|
|
11
|
+
| 'getRowId'
|
|
12
|
+
| 'columns'
|
|
13
|
+
| 'aggregationModel'
|
|
14
|
+
| 'defaultGroupingExpansionDepth'
|
|
15
|
+
| 'filterModel'
|
|
16
|
+
| 'sortModel'
|
|
17
|
+
| 'getAggregationPosition'
|
|
18
|
+
| 'columnLookup'
|
|
19
|
+
| 'filterMode'
|
|
20
|
+
| 'sortingMode'
|
|
21
|
+
> {
|
|
22
|
+
getTreeDataPath?: (row: R) => string[];
|
|
23
|
+
/** `treeData` asked for (see `resolveGridModes`): useTreeData warns when it cannot build the tree. */
|
|
24
|
+
isTreeDataRequested: boolean;
|
|
25
|
+
/** Tree data is built. */
|
|
26
|
+
isTreeData: boolean;
|
|
27
|
+
/** The grouping model the hierarchy is built from (empty while pivoting). */
|
|
28
|
+
rowGroupingModel: GridRowGroupingModel;
|
|
29
|
+
isRowGrouping: boolean;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Tree data and row grouping. Both hooks always run (hook order is fixed); the active one, if
|
|
34
|
+
* any, drives the rows and supplies the `rowMetaMap` every renderer reads hierarchy info from.
|
|
35
|
+
*/
|
|
36
|
+
export function useGridHierarchy<R extends GridRowModel>(params: UseGridHierarchyParams<R>) {
|
|
37
|
+
const {
|
|
38
|
+
rows, getRowId, getTreeDataPath, isTreeDataRequested, isTreeData, columns, rowGroupingModel, isRowGrouping,
|
|
39
|
+
aggregationModel, defaultGroupingExpansionDepth, filterModel, sortModel, getAggregationPosition,
|
|
40
|
+
columnLookup, filterMode, sortingMode,
|
|
41
|
+
} = params;
|
|
42
|
+
|
|
43
|
+
const treeDataHandlers = useTreeData({
|
|
44
|
+
rows,
|
|
45
|
+
getRowId,
|
|
46
|
+
getTreeDataPath,
|
|
47
|
+
treeData: isTreeDataRequested,
|
|
48
|
+
defaultGroupingExpansionDepth,
|
|
49
|
+
filterModel,
|
|
50
|
+
|
|
51
|
+
sortModel,
|
|
52
|
+
columnLookup,
|
|
53
|
+
filterMode,
|
|
54
|
+
sortingMode,
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
const rowGroupingHandlers = useRowGrouping({
|
|
58
|
+
rows,
|
|
59
|
+
getRowId,
|
|
60
|
+
columns,
|
|
61
|
+
rowGroupingModel,
|
|
62
|
+
aggregationModel,
|
|
63
|
+
defaultGroupingExpansionDepth,
|
|
64
|
+
filterModel,
|
|
65
|
+
sortModel,
|
|
66
|
+
getAggregationPosition,
|
|
67
|
+
columnLookup,
|
|
68
|
+
filterMode,
|
|
69
|
+
sortingMode,
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
const activeHierarchyHandlers = isTreeData ? treeDataHandlers : (isRowGrouping ? rowGroupingHandlers : null);
|
|
73
|
+
|
|
74
|
+
const rowMetaMap = useMemo<Map<GridRowId, GridRowMeta>>(() => {
|
|
75
|
+
if (isTreeData) return treeDataHandlers.rowMetaMap;
|
|
76
|
+
if (isRowGrouping) return rowGroupingHandlers.rowMetaMap;
|
|
77
|
+
return EMPTY_ROW_META_MAP;
|
|
78
|
+
}, [isTreeData, treeDataHandlers.rowMetaMap, isRowGrouping, rowGroupingHandlers.rowMetaMap]);
|
|
79
|
+
|
|
80
|
+
return { treeDataHandlers, rowGroupingHandlers, activeHierarchyHandlers, rowMetaMap };
|
|
81
|
+
}
|