unstale

npm / ag-grid-react

ag-grid-react

What changed in ag-grid-react 27 to 30, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-26.

31 breaking3 deprecations46 new APIs and options3 performance33 behavior and defaults53 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.2.7 on npm

ag-grid-react 3058 changes

Breaking changes 9

  • The redundant maxSpacing option is removed.

    30.0.0release notes

  • Column group header cells span multiple rows by default when other groups have more levels.

    30.0.0release notes

  • This setting is ignored when filterParams.excelMode is used.

    30.0.0release notes

  • Group rows become sticky by default in row grouping, tree data, and master detail.

    30.0.0release notes

  • Quick Filter excludes values in hidden columns by default.

    30.0.0release notes

  • The main field defaults to using ES Modules.

    30.0.0release notes

  • The legend is disabled by default for single-series cartesian charts.

    30.0.0release notes

  • Horizontal sticky group column headers become the default behavior.

    30.0.0release notes

  • Deprecated APIs from v27 are removed in v30.

    30.0.0release notes

New APIs and options 19

  • Axis labels can be toggled on and off instead of relying on label formatters.

    30.0.0release notes

  • A built-in checkbox cell editor is available for cell editing.

    30.0.0release notes

  • The grid adds a built-in numeric cell editor.

    30.0.0release notes

  • Cell data types and cell data type inference are added.

    30.0.0release notes

  • Events fire at the start and end of cell range delete operations.

    30.0.0release notes

  • Horizontal or vertical lines spanning the chart area can display while hovering over the chart.

    30.0.0release notes

  • A Grid API is available to call chart link and unlink operations.

    30.0.0release notes

  • Charts can be updated via the Grid API.

    30.0.0release notes

  • An API method lets developers paste from the clipboard into the grid.

    30.0.0release notes

  • TypeScript can express column, editor, and renderer type information.

    30.0.0release notes

  • A built-in Date picker cell editor is added.

    30.0.0release notes

  • Excel export can suppress outlines for rows and columns.

    30.0.0release notes

  • Excel export can use the formatted cell value instead of the underlying cell value.

    30.0.0release notes

  • Grid instances can be identified via a unique id.

    30.0.0release notes

  • AG Grid modules can be registered on a per-grid basis.

    30.0.0release notes

  • An event fires at the end of cut operations.

    30.0.0release notes

  • An event fires at the start of cut operations.

    30.0.0release notes

  • Group footer rows are supported with the server-side row model.

    30.0.0release notes

  • Treemap label values can wrap to fit inside treemap tiles.

    30.0.0release notes

Performance 1

  • Destroying the grid is faster when using React with ag-grid-enterprise packages.

    30.0.0release notes

Behavior and default changes 9

  • The field property can use TData.

    30.0.0release notes

  • Copy down supports complex objects.

    30.0.0release notes

  • The formatted cell value can be used with copy, fill handle, and copy range down.

    30.0.0release notes

  • Excel export preserves the collapsed or expanded state of row groups.

    30.0.0release notes

  • When enterMovesDown or enterMovesDownAfterEdit is enabled, SHIFT + ENTER can focus the cell above.

    30.0.0release notes

  • The event provides more information.

    30.0.0release notes

  • Aggregation logic for top-level and root-level rows is refined.

    30.0.0release notes

  • Copying complex objects can fall back to valueFormatter and valueParser when no custom copy function is provided.

    30.0.0release notes

  • Value Parser can run on paste, fill handle, and copy range down.

    30.0.0release notes

Fixes and other changes 20

  • Cut, copy, and paste work when using the browser's edit menu.

    30.0.0release notes

  • The default cell editor can use the valueFormatter when its value cannot be coerced to a string.

    30.0.0release notes

  • Filters and floating filters can be enabled or changed retrospectively.

    30.0.0release notes

  • Column group headers with marryChildren enabled can be moved after a group child is hidden.

    30.0.0release notes

  • Pasting a copied range of values no longer skips group row cells when row grouping and enableGroupEdit are used.

    30.0.0release notes

  • Transactions with row grouping or tree data no longer make the grid slow or crash in this full-width row configuration.

    30.0.0release notes

  • Calling the API after unmount no longer hangs the browser when column groups are present.

    30.0.0release notes

  • Setting groupDisplayType no longer crashes the grid.

    30.0.0release notes

  • Removing a group no longer throws an error if its group column filter was instantiated.

    30.0.0release notes

  • Server-side row model master detail no longer crashes with groupRowsSticky.

    30.0.0release notes

  • Horizontal fill handle better supports columns with complex objects.

    30.0.0release notes

  • Column filters support HTML5 number inputs in non-Chrome-based browsers.

    30.0.0release notes

  • Numeric values are correctly parsed following a cell edit.

    30.0.0release notes

  • Paste preserves quotation marks when copying a value that contains them.

    30.0.0release notes

  • Quick Filter filters pivoted data.

    30.0.0release notes

  • The grid no longer throws an error when used within a React Suspense component.

    30.0.0release notes

  • Server-side row model rows render when rowHeight is decimal.

    30.0.0release notes

  • Expanding a row group and scrolling no longer renders the group name on the left in RTL mode.

    30.0.0release notes

  • A failed refresh request for a successfully loaded row no longer causes repeated refresh attempts.

    30.0.0release notes

  • The vertical scrollbar thumb is positioned correctly when serverSideInitialRowCount is set.

    30.0.0release notes

ag-grid-react 2948 changes

Breaking changes 10

  • Deprecated ag-grid-column components are removed.

    29.0.0release notes

  • The deprecated key property is removed from ICellEditorParams.

    29.0.0release notes

  • The deprecated addRowCompListener property is removed.

    29.0.0release notes

  • The deprecated suppressRefresh and autoHeight properties are removed.

    29.0.0release notes

  • The deprecated padding property is removed.

    29.0.0release notes

  • IRowNode is introduced as the public-facing interface instead of the internal RowNode object.

    29.0.0release notes

  • Legacy deprecated chart API members are removed.

    29.0.0release notes

  • Legacy deprecated methods are removed from gridApi and columnApi.

    29.0.0release notes

  • Legacy deprecated properties are removed from GridOptions and ColDefs.

    29.0.0release notes

  • React ChangeDetectionStrategyType.DeepValueCheck is removed.

    29.0.0release notes

Deprecations 1

New APIs and options 15

  • Axis label skipping can be turned off.

    29.0.0release notes

  • The chart tool panel DATA tab items can be customized.

    29.0.0release notes

  • The column aggregation function can be removed from the column menu.

    29.0.0release notes

  • Custom column layouts can be used in the column menu columns.

    29.0.0release notes

  • The columnMoved event arguments gain a finished property to identify the final drop position.

    29.0.0release notes

  • Legend item clicks can be disabled.

    29.0.0release notes

  • Legend item arrangement can be configured to override smart auto arrangement.

    29.0.0release notes

  • Integrated charts can customize pie chart sector label settings through the format panel.

    29.0.0release notes

  • Provided CellEditor parameter interfaces are exported for use by developers.

    29.0.0release notes

  • Set Filter values can be displayed in a hierarchical list.

    29.0.0release notes

  • Server-Side Row Model can display a single loading row when filtering instead of showing all grid rows as loading.

    29.0.0release notes

  • rowSelected and selectionChanged events gain a source property to distinguish user-driven from API-driven selection changes.

    29.0.0release notes

  • Treemap charts gain a cell value label formatter.

    29.0.0release notes

  • Treemap series can use color values directly from the data.

    29.0.0release notes

  • Unbalanced row groups can be made optional.

    29.0.0release notes

Behavior and default changes 9

  • animateRows is a reactive property in React.

    29.0.0release notes

  • Chart titles, subtitles, and legends can apply chart padding from the outside edge.

    29.0.0release notes

  • The Chart Tool Panels Button is enabled by default.

    29.0.0release notes

  • Set Filter supports complex objects as provided filter values.

    29.0.0release notes

  • Legend items can be paginated when the chart area is too small.

    29.0.0release notes

  • Pagination properties, including pagination and paginationPageSize, are reactive in React.

    29.0.0release notes

  • Row group footers, including group subtotal and grand total rows, can be exported to Excel and CSV.

    29.0.0release notes

  • Set Filter can interpret and group date values by week, month, quarter, or year.

    29.0.0release notes

  • The gridOptions property is reactive in React.

    29.0.0release notes

Fixes and other changes 13

  • The event is called when combination series types are changed.

    29.0.0release notes

  • Copied cell ranges can include the column header text just once when all ranges contain exactly the same columns.

    29.0.0release notes

  • The type now allows the values open and closed.

    29.0.0release notes

  • Fixes filter popups resizing only the first time they are opened.

    29.0.0release notes

  • Fixes camel-case styles not being applied and CSS variables not being added as properties.

    29.0.0release notes

  • Fixes CSS variables not being added as properties.

    29.0.0release notes

  • Fixes camel-case styles not being applied correctly.

    29.0.0release notes

  • The callback is reevaluated after a transaction update.

    29.0.0release notes

  • Fixes opening a popup overriding the callback and returning the popup to its original position.

    29.0.0release notes

  • Fixes selecting the wrong value when typing a repeated letter.

    29.0.0release notes

  • Searching matches raw values as well as formatted values.

    29.0.0release notes

  • The source property value is passed through when updating DefaultColDefs.

    29.0.0release notes

  • Fixes the Filter Search remaining visible in the filters tool panel when suppressFilterSearch is true in toolPanelParams.

    29.0.0release notes

ag-grid-react 2842 changes

Breaking changes 6

  • The @ag-grid-community/all-modules and @ag-grid-enterprise/all-modules packages are removed.

    28.0.0release notes

  • The comparator parameter is renamed from isInverted to isDescending.

    28.0.0release notes

  • The event is removed in favor of rowDataUpdated.

    28.0.0release notes

  • This event replaces rowDataChanged.

    28.0.0release notes

  • API members are renamed from Secondary Columns to Pivot Columns.

    28.0.0release notes

  • The top-level checkbox can be unselected when some rows are not selectable.

    28.0.0release notes

New APIs and options 5

  • Legend items can be limited to a character count with an ellipsis, and hovering can show a tooltip with the full value.

    28.0.0release notes

  • A maximum width can be set for chart legend items.

    28.0.0release notes

  • Charts add a listener for clicks on legend items.

    28.0.0release notes

  • Generics are added to row data and cell value typings.

    28.0.0release notes

  • The group row for an expanded row group can float or stick at the top of the viewport while scrolling through its child rows.

    28.0.0release notes

Performance 2

  • Rendering speed is improved for column and line series with large numbers of data points.

    28.0.0release notes

  • Column aggregation calculation performance is improved.

    28.0.0release notes

Behavior and default changes 9

  • Bar and Column series support number and time axes.

    28.0.0release notes

  • Cells can be deselected from a selected range by CTRL+clicking a cell or SHIFT+dragging to a cell.

    28.0.0release notes

  • Column headers support word wrapping for multiline text and automatic height.

    28.0.0release notes

  • CSS variables in themes are extended.

    28.0.0release notes

  • Row groups and tree data can be exported to Excel so they can be expanded and collapsed there.

    28.0.0release notes

  • Different group columns can be sorted separately by clicking grouped column items in the row group panel.

    28.0.0release notes

  • The callback can be invoked after a cell value edit, rather than only once on initial render.

    28.0.0release notes

  • A column can be hidden when grouping by dragging it from the grid header or columns tool panel list.

    28.0.0release notes

  • Server-side sorting and filtering are allowed with the server-side row model without Infinite Scroll.

    28.0.0release notes

Fixes and other changes 20

  • Using the mouse wheel while the filter is focused no longer changes its entered number.

    28.0.0release notes

  • Cell Class handling is improved to avoid a React memory leak.

    28.0.0release notes

  • Row group, values, and pivot areas use the role attribute instead of aria-role to comply with accessibility standards.

    28.0.0release notes

  • A memory leak involving custom cell renderer components built on CellRendererFramework and pinnedRowCellRendererFramework is addressed.

    28.0.0release notes

  • A memory leak involving custom header components built on HeaderComponentFramework is addressed.

    28.0.0release notes

  • Clicking a grid cell with range selection enabled no longer fires this event unnecessarily.

    28.0.0release notes

  • Changing the external filter no longer calls isExternalFilterPresent multiple times instead of once.

    28.0.0release notes

  • The fill area dashed border is shown between pinned and unpinned columns when dragging in a pinned column.

    28.0.0release notes

  • Collapsed group row cell values can be copied when this option is enabled.

    28.0.0release notes

  • X and Y axis labels are no longer clipped.

    28.0.0release notes

  • Removing a column from the row group panel fires onColumnVisible when column visibility changes.

    28.0.0release notes

  • CTRL+Z and CTRL+Y shortcuts work with non-QWERTY keyboards.

    28.0.0release notes

  • A newly added series is no longer hidden in JavaScript while visible in Angular, React, and Vue.

    28.0.0release notes

  • The event no longer fires twice instead of once on mousedown when range selection is enabled.

    28.0.0release notes

  • Applying column state followed by a filter model no longer produces empty lines inside grid rows.

    28.0.0release notes

  • Filtered rows render with correct heights when a filter model is set.

    28.0.0release notes

  • The row group panel uses the role attribute instead of aria-role.

    28.0.0release notes

  • The event property storing the browser event is no longer always undefined.

    28.0.0release notes

  • Expanding a secondary column after reordering secondary columns no longer resets their order.

    28.0.0release notes

  • Locked columns are rendered on the correct side when their definitions are not at the expected end of the array.

    28.0.0release notes

ag-grid-react 2721 changes

Breaking changes 6

  • Integrated Charts chartType uses a string literal type instead of an enum type.

    27.0.0release notes

  • The filterParams valueGetter receives valueGetterParams instead of just the node.

    27.0.0release notes

  • Removed the Custom Cell Editor API method getPopupPosition().

    27.0.0release notes

  • getRowNodeId is required when using SSRM and selection.

    27.0.0release notes

  • Removed the Custom Cell Editor API method isPopup().

    27.0.0release notes

  • The Set Filter newRowsAction default is now keep.

    27.0.0release notes

Deprecations 2

  • Use suppressCellFocus in place of suppressCellSelection to suppress cell focus styling.

    27.0.0release notes

  • Deprecated suppressCellSelection and renamed it to suppressCellFocus to better describe that it suppresses cell focus styling, not selection.

    27.0.0release notes

New APIs and options 7

  • Added support for choosing the horizontal position of a column when using ensureColumnVisible.

    27.0.0release notes

  • Added the IMultiFilter interface to type public methods.

    27.0.0release notes

  • Added the ISetFilter interface to type public methods.

    27.0.0release notes

  • Added a non-blank filter operation to all simple filters.

    27.0.0release notes

  • The default status bar components can have their titles changed and their number values formatted.

    27.0.0release notes

  • textCustomComparator receives additional parameters including rowNode, valueFormatter, and the actual value.

    27.0.0release notes

  • The tooltip hide timeout can be set to a custom value.

    27.0.0release notes

Behavior and default changes 6

  • Keyboard users can move columns in the column tool panel to the row groups, values, and column labels panels.

    27.0.0release notes

  • Exported collapsible column groups can remain collapsible in Excel.

    27.0.0release notes

  • The filter operation select can be announced as a combobox by assistive technology.

    27.0.0release notes

  • Framework Components can be registered without using the xxxFramework naming convention.

    27.0.0release notes

  • Group column header values can be considered when performing column autosize.

    27.0.0release notes

  • tooltipValueGetter can return strings as well as custom objects for custom tooltip components.

    27.0.0release notes