yarn ag-grid-enterprise 4.0.0
ag-Grid Enterprise

latest releases: 31.3.2, 31.3.1, 31.3.0...
8 years ago

New Features

The grid has moved to Enterprise vs Free.
Enterprise Feature: Enhanced enterprise column menu, in addition to filtering there is now a menu and also column management.
Enterprise Feature: Row group panel on top of grid, so you can drag columns to here to group.
Enterprise Feature: You can now drag columns from the tool panel into the grid to make them visible.
Enterprise Feature: Row grouping and aggregation are no longer in the tool panel as they can be done bia column menu (grouping and aggregation) or dragging to the row group panel (grouping).
Enterprise Feature: Context Menu
Enterprise Feature: Range Selection
Enterprise Feature: Enterprise column menu
Enterprise Feature: Clipboard interaction
Enterprise Feature: Status bar
Tool panel, set filter, row grouping and aggregation are now only available in Enterprise version of ag-Grid.
Enhancements & Changes

Performance improvements - no longer attaching listeners to each cell, so when scrolling, the dom is not been ripped up with adding and removing listeners. Instead the grid has one listener (eg for mouse click), and when the click happens, the grid then works out which cell it was for.
rowNode is now a class object with methods (previously it only have properties, a simple data object). Methods now include: setSelected(), isSelected(), addEventListener(), removeEventListener(), resetQuickFilterAggregateText(), deptFirstSearch(callback).
RowNode now has method 'setSelected'. This should now be used for row selection over the gridApi.selectXXXX() methods.
api.getSelectedNodesById gone, use api.getSelectedNodes instead
Event rowDeselected gone, now event rowSelected gets fired for both selected and deselected. Check node state to see if row is selected or not.
Event selectionChanged no longer contains the selected rows or nodes. Use the API to look these up if needed. Preparing these lists took CPU time, so it's best they are only prepared if needed.
Concept of 'suppressEvents' was dumped for row selection. No other event event type had this feature, and it was out of sync with how web components work in general. If you don't want to be notified of an event, then remove your event listener.
api.addVirtualRowListener is gone. Instead for row selection/deselection listening, use node.addEventListener(), and for virtual row removed, use api.addRenderedRowListener()
New API methods: getFirstRenderedRow() and getLastRenderedRow(), to know the first and last rows in the DOM (the grid only renders enough rows (plus a buffer) to show what's visible for performance reasons).
Introduced property modelType, set to 'pagination' or 'virtual' for pagination and virtual pagination. This replaces virtualPaging, as virtual was a boolean when in fact we need to distinctly model three modes of operation: Normal, Pagination and Virtual Pagination.
rowsAlreadyGrouped replaced with getNodeChildDetails. If you are providing already grouped data to the grid, see the new section 'Tree Data' on how this is now done. It had to change because Node is now an object with functinality, so you can't just pass in JSON an expect them to be treated like nodes.
Renamed: columnApi.getState()/setState()/resetState() to columnApi.getColumnState()/setColumnState()/resetColumnState()
Floating rows can now be selected and navigated.
processRowPostCreate callback, so you can process the grid row after it is created. Handy for adding attributes or other stuff to the row after create.
Now CSV export allows you to format cells on their way out. Handy if you want to import into Excel and need to make dates, for example, into Excel formatted dates.
New colDef properties suppressAggregation and suppressRowGroup for suppressing aggregation and row group for particular columns
Added new property: suppressFieldDotNotation
Took out property groupHideGroupColumns, if you don't want a column to be shown, just hide it. This feature was not necessary and caused complexity in the design.
Removed api.refreshRowGroup() -> it wasn't documented, and I can't remember why I put it in, refreshing the grid has the same effect.
api.getValue(colKey, node) replaces api.getValue(colDef, node, data), the colDef and data were 'old design', newer method works much better.
api.getFocusedCell() -> now returns rowIndex and Column (used to return colDef and rowNode, colDef not needed as you can get from Column, rowNode not needed as you can lookup using rowIndex)
rowNode attributes floatingTop and floatingBottom removed, now floating is no longer a boolean, it's a string that can be 'top' or 'bottom' if floating.
setFocusedCell(rowIndex, colId) is now setFocusedCell(rowIndex, colKey, floating).
Bug Fixes

Text filter 'ends with' was not working correctly if search string appeared twice in the text.
forPrint was occasionally given 'Uncaught TypeError: Cannot read property 'appendChild' of undefined'. now fixed.
RIP Virtual DOM

Took out virtual dom. This was an implementation detail, no change in how you interface with the grid. It only made an improvement on IE, and now that we are using delayed scrolling, IE is working fast enough now. In addition, I have now tested with Windows 10 and Edge (the IE replacement) and it's work very fast. So the virtual DOM was giving very little benefit and was 'getting in the way' of a clean design. So I've favored a clean design rather than a more complex design just to get it faster in IE. If you want to see how little difference a virtual DOM made, see the Angular Connect 2015 talk I gave.

Don't miss a new ag-grid-enterprise release

NewReleases is sending notifications on new releases.