Version 16.0.0 [25-JAN-2018]
For details of this release, check our dedicated blog post for v16.0.0.
Enhancements
- AG-116: Allow row drag and drop
- AG-1397: Add example on how to add a dynamic component into a cell
- AG-1435: Maintain cell focus on data updates
- AG-1419: Allow quickfilter to work with tree data
- AG-1400: Allow moving of group auto-column
- AG-1388: Support for Enter to commit changes to cell and to navigate to the next row
- AG-1338: Use Value Formatter with Tooltips
- AG-1208: Make setFilter mini search case insensitive
- AG-1382: Allow the detail grid of master detail to be defined with callback
- AG-1194: Add double click = expand/collapse column group
- AG-1390: Row drag icon needs better graphic design
- AG-1384: Create cellStyleParams interface as per https://www.ag-grid.com/javascript-grid-cell-styles
- AG-1191: Show context menu when the user right clicks on the header
- AG-1285: Allow disabling ctrl to add cells to a currently existing range
- AG-1206: Add source information in the column events so that the user knows where the event came from ie From reset columns button
- AG-1119: Add api call to hideContextMenu
- AG-818: Add better support/consistency for addIndex
- AG-514: Allow columns to be fixed so they can not be moved from their configured position
- AG-128: Add suppressHidden and suppressPinning to ColDefs
Bugs
- AG-1186: Using font icons in a renderer in chrome causes them to not be repainted when resizing the column
- AG-1068: Ipad - Safari/Chrome Csv Export doesn't work
- AG-1439: Fix issue creating detail row in master/detail with react
- AG-1434: Fix page message when no rows are present when using pagination. Shows 1 of 0
- AG-1431: "Ctrl & A" does not select pinned bottom rows correctly
- AG-1422: Overlay blocks mouse pointers events in IE10
- AG-1421: new property popupParent - so popups (eg menu) don't get clipped into grid
- AG-1392: getBusinessKeyForNode should sanitise input
- AG-1374: innerRendererFramework doesn't work in the group column for the master grid in a master/detail configuration
- AG-1373: Can't nest a framework detail grid in a master detail grid. [ag-Grid: unable to find bean reference agGridReact while initialising frameworkComponentWrapper]
- AG-1368: Cell focus should not get darker when browser focus is lost
- AG-1362: columnVisibleChange triggered when column is moved independently if it is visibility changes
- AG-1361: Header Group Columns are not getting "ag-header-group-cell-moving" CSS class while being dragged&dropped
- AG-1351: New components naming not backward compatible when using floating filters (filter: 'date' or filter:'text')
- AG-1345: Number filter defaultOption: "notEqual" not working
- AG-1342: When press Tab while editing, grid checks "editable" callback of next cell before current cell applied
- AG-1339: Home/End keys not working in Windows10
- AG-1333: getNodeId makes the row render incorrectly if returning partial HTML
- AG-1283: Cannot override default components with framework components, only with plain JS ones
- AG-1279: In range date filter breaks if the data contains null dates
- AG-1278: deprecated api.recomputeAggregates(), use api.api.refreshInMemoryRowModel('aggregate') instead
- AG-1273: Pagination + Grouping + Enterprise when expanding a group rows bubble up unexpectedly
- AG-1272: Null pointer exception when trying to save the state of the columns and the passed state is null
- AG-1258: Have consistent behaviour for indeterminate checkbox across selection and set filter
- AG-1243: IE Edge issue on colum nenu/columns clicking on the column label is good, clicking on checkbox closes the menu
- AG-1181: No rows overlay displayed when col defs are supplied after row data
- AG-1171: setFilterModel is ignored in an async Filter until the async is resolved
- AG-1166: Inconsistent timing when calling gridReady/ngAfterViewInit in Angular
- AG-1134: Remove cyclic dependency - Calling setFocusedCell from within onCellValueChanged causes an infinite loop
- AG-1120: Dragging an ungrouped column by its group shows empty hint
- AG-958: On mobile devices - Hiding/Showing columns through the column menu doesn't work
- AG-831: [enterprise row model] Quickly expanding group node doesn't resolve loading
- AG-798: [drag event] dragStopped gets called when clcking on a cell
- AG-663: [react headerComponent drag&drop] Cannot drag & drop header with a custom component into the row groups by
- AG-608: Default sort is not passed to getRows with 'infinite' rowModelType in AngularJS 1.x
15.x
Version 15.0.0 [13-DEC-2017]
For details of this release, check our dedicated blog post for v15.0.0.
Enhancements
- AG-1032/661: Allowing registering components by name and renaming all componets to add ag namespace to it
- AG-76: Adding overlays as a new component into the grid, so now they are fully customisable
- AG-46: Allowing the ability to tab from outside the grid into the grid
Bugs
- AG-1161: Issue using ag-fresh and auto group column defs - No padding in the auto group col def
- AG-1188: Can't use detailCellRendererFramework. Metadata not provided!
- AG-1127: richSelect editor broken
- AG-1262: Formatted values ignored for leaf nodes using Tree Data
- AG-1223: Tree Data, delta update ON + change that causes node to go to a different PATH AND name change not working
- AG-1219: $cell-horizontal-padding not working with material Theme
- AG-1212: ensureNodeVisible non-backward compatible behaviour
- AG-1169: Key creator not working on pivot mode
- AG-1156: afterGuiAttached not called anymore after a filter is rendered in the screen
- AG-1141: Consistency of notEqual and notEquals in FilterParams.filterOptions, defaultOptions, nullComparator
- AG-1140: Filter, when specifying both filterOptions and defaultOption, default option is ignored and the first item is picked
- AG-1064: Set filter not rebuilt after delta upated
- AG-799: [enterprise row model] purgeEnterpriseCache render problem
- AG-660: pinned rows - startEditingCell doesn't work with pinned rows
- AG-596: [menu] Context menu event not firing on full width group rows
- AG-580: [pinned columns] Spurious ColumnPinned events raised
- AG-419: [tabbing] tabbing into the grid goes into the wrong cell
- AG-1259: Example broken - file explorer has no padding on grouping
- AG-1257: Column menu on non enterprise version has padding on the top in 14.2 not in 14.1
- AG-1250: Regression issue - Chart example doesn't work anymore
- AG-1248: Fix broken examples in the docs pre Christmas release
- AG-1233: When editing a cell in pinned row which is on the edge of the hor scroll it breaks the scrolling
- AG-1227: Rich Select was not allowing editorParams.cellRendererFramework
- AG-1209: Wrong deprecated error message when using refreshView - Points to refreshRows, should say refreshCelss
- AG-1200: iOs double click doesn't make a cell enter in edit mode, but zooms in
- AG-1197: Setting floatingFilterComponentParams for column cause removing styles from header
- AG-1164: When there are checkboxes enabled and you open the context menu. Clicking on the checkboxes don't close the popup
- AG-1162: ensureDomOrder: true seems to not work when pinning more than one column (for the column order in the pinning section)
- AG-1133: processRowPostCreate getting called to often, sometimes without the div's in place
- AG-1125: Context menu not working for cells in ipad (easy to repro)
- AG-1124: Error opening set filter in infinite scrolling
- AG-1081: Api.doLayout does not refresh columns after setColumnDef if following steps in Desc
- AG-1076: row-index not getting updated and containing dupes after group expand
- AG-1074: Set Filter wrong behaviour when changing values underneath it via editing and selecting deselecting all from filter
- AG-1065: Bug with groupRemoveSingleChildren = false, groupRemoveLowestSingleChildren= true AND groupDefaultExpanded: 1
- AG-1033: 'In Range' filter issue
- AG-955: Checkbox is unchecked after scrolling fast with infinite scrolling
- AG-940: When using animateCellRenderer, and the values are updated, the tooltip is not updated. Also tooltip for nullables seems to be broken (not displayed)
- AG-888: [events] Can't remove event listeners
- AG-819: export - CSV Creator issue in IE10
- AG-796: [column filter] Ignore debounce when using apply button
- AG-702: [auto height] scrolling does not work if 'autoHeight' and pinned columns are used together
- AG-692: [full row editing] Enter on a non editable cell starts editing, but it does not end it
- AG-637: [printable character] Missing backslash means \ is not a printable character
- AG-589: [range] Pressing tab while selecting a range throws an error
- AG-1078: Issue with formatter + getter + complex object + auto group col def
- AG-857: [headers] HeaderName='' doesn't work for autogroupcolumns
- AG-605: [edit] Ctrl-Enter resets cell editor to blank
- AG-330: [iPad] hamburger occasionally appears but cannot be clicked
- AG-1035: Issue displaying context menu in the enterprise row model
Deprecations
- Renamed old component names to new namedspace components
Breaking changes
- Removed deprecated items with old way of doing header templates as new way of providing header templates was introduced in v14. Removed grid options are getHeaderCellTemplate, headerCellTemplate, headerCellRenderer. Removed column options are headerCellTemplate and headerCellRenderer
14.x
Version 14.2.0 [16-NOV-2017]
For details of this release, check our dedicated blog post for v14.2.0.
Enhancements
- AG-897: Master/Detail. New streamlined and simplifed offering, allowing for much easier Master/Detail.
- AG-530: Implement React declarative offering. Allow Grid & Column definitions to be entirely in markup.
- AG-891: Themes. Bring all legacy themes in line with new Material theme.
Bug Fixes
- AG-1094: Fix an issue where async set filters wouldn’t work with the enterprise row model
- AG-1047: Keep row group after delta updates is broken when using groups
- AG-993: State not preserved when row grouping and data transactions
- AG-1098: Angular 1 Issue with filters
- AG-1056: Issue with enterprise row model and null categories
- AG-997: suppressAnimationFrame with col pinning scrolling issue when using arrow up/down
- AG-944: domLayout:autoHeight not working when autoGroupColumn and the group column in pinned left
Version 14.1.0 [07-NOV-2017]
Enhancements
- AG-895: Angular 5 supported. Now you can use ag-grid with the latest angular version!
Bug Fixes
- AG-1010: Fix an issue where Polymer would not work in Firefox
Version 14.0.0 [02-NOV-2017]
For details of this release, check our dedicated blog post for v14 aka Halloween.
Enhancements
- AG-459: Revamped Feature: Tree Data, we have rewritten tree data to make it more powerful and easy to use.
- AG-459: Unbalanced Grouping. We now show as leaf rows that are part of a group but their grouping key is null.
- AG-875: If you are a React fan, then you will be excited to lean that ag-Grid v14 comes with full support for Asynchronous Components
- AG-544: You can now provide custom HTML templates to customise how the column headers look.
- AG-804: Set filters can now have their values specified asynchronously
- AG-816: More options for grouping with groupRemoveSingleChildren.
- AG-744: Delta updates now maintain row order.
Bug Fixes
- AG-910: New component editor uses mergeDeep - causes stack overflow when certain observables are used
- AG-946: Improve memory usage of vue vs js
- AG-884: [excel] DateType were restricted to String and Number, added Boolean DateTime and Error
- AG-901: [regression] SetFilter not displaying (Blanks) anymore for null values
- AG-878: [master detail] Error raised in detail panel when using Cell Editors
- AG-864: Sanitise Data in tooltip and cellRenderer
- AG-855: Grids fail on ie11 when dealing with tree data
- AG-820: [column types] - numericColumn not working
- AG-817: [cellEditor richSelect] cellEditorParams.values nulls and blanks are not handled well
- AG-778: [frameworks] Aurelia - Add pinnedRowCellRenderer support
- AG-777: [aurelia] Add dateComponent support
- AG-772: Polymer CLI - PolymerFrameworkFactory is not defined
- AG-882: [Copy&Paste] Copying Blank Cells not working
- AG-924: If context menu very long, overflow entries are clipped
- AG-921: ensureRowIndex/Node "middle" not working
- AG-914: Status bar is not styled in new material theme
- AG-874: Declarative column def does not match properties from ag-grid
- AG-872: [grouping] - Group count info lost when reducing column's size
- AG-850: with material theme, on the tool panel, in the values section (when you drag a column to aggregate), the background is transparent
- AG-849: on set filter in material theme, if label is to large, we get it onto the other line
- AG-672: [navigation] Navigating with arrows does not skip the columns marked with "suppressNavigable"
- AG-433: [navigation] Keyboard Navigation Problems - home & end
- AG-311: [keyboard navigation] bug in wide columns
- AG-925: Empty cells retain old cell value tooltip
- AG-913: getSelectedRowNodes sometimes returns an empty array when it shouldn't
- AG-935: [material] checkboxes are too dense on main demo
- AG-934: [material] aggregation function select popup is not styled
- AG-770: Pinned row data was not getting bound to React correctly/li>
13.3.x
Version 13.3.1 [04-OCT-2017]
Enhancements
api.ensureNodeVisible and api.ensureIndexVisible now take an optional
second parameter to specify where the node/index should be positioned on the screen. The valid values are:
top, middle and bottom. If not specified, would not scroll into the
row if already visible in the current viewport.
Bug Fixes
hideOpenParents:true13.2.x
Version 13.2.0 [21-SEP-2017]
Enhancements
-
AG-785: Pivoting is now possible in the Enterprise Row
Model.
If you are using the row model and do not want pivoting, then set grid properties
toolPanelSuppressPivotMode=trueandtoolPanelSuppressValues=trueto remove the pivot from the grid UI. - AG-795: New callback
paginationNumberFormatterto format numbers in pagination panel, should you no like the default formatting. See Example: Customising Pagination. - AG-693: Child Count can now be set for Enterprise Row Model.
- AG-800: Put in callback colDef.suppressKeyboardEvent() to allow suppressing keyboard events while editing.
Bug Fixes
- AG-770: pinnedBottomRowData and pinnedTopRowData were not getting changes updated when bound as component property (eg if using React or Angular bindings to change these)
- AG-667: unnecessary console log "not supported" when using infinite row model and scrolling after cell selection
- AG-400: rich select - when focus goes off the component, the selection was kept
- AG-563: When sorting by count in pivot mode it does Alphabetical sort not numerical
- AG-793: Group expand / contract was not working with double click, now it opens and closes quickly
- AG-649: Configuring checkbox icons was not getting applied when icons set at the column def level (ie colDef.checkboxSelection=true and colDef.icons = {customIcons})
- AG-622: Copy Paste with Master Detail Grid was not working
Version 13.1.x
Version 13.1.2 [11-SEP-2017]
Bug Fixes
- AG-764: fix bug introduced in 13.1 that breaks aurelia cell renderers.
- AG-761: make suppressExcelExport and suppressCsvExport optional properties.
- AG-755: innerRendererFramework does not use framework to render leaf nodes in tree data
- AG-755: fontName property for Excel Export was being ignored
- AG-755: when using 'aligned grids', removed infinite loop on horizontal scroll
- AG-756: column virtualisation and full row edit were not working with each other, as user scrolled, newly created cells were not editable.
- AG-760: tabbing to next row when, when next cell was not virtualised (due to column virtualisation) was failing
Version 13.1.1 [08-SEP-2017]
Bug Fixes
- AG-746: fixing bug where an error is thrown if a renderer returns something other than a string or a Dom Element
- AG-379: fixing bug where function names where not translated in the tool panel or generated columns
- AG-683/411: fixing bug where floating filters wouldn't get redrawn if showing/hiding columns from the tool panel
- AG-473: fixing bug where the context menu wouldn't appear in the pinned are if there were no rows to show
- AG-738: pinning columns by dragging mouse to edge was broke
- AG-739: event columnGroupOpened had reference to column rather than the original column group
- AG-729: ag-row-focus CSS class was getting added to every row
- AG-743: aligned grids was not working in Firefox
Enhancements
-
Grid callback
getDocument()now used for adding clicks to background for closing popups, useful if you don't want to use the standard documents.body (for people using non-standard browsers to GWT embedded) - AG-313 excel and csv export now by setting to true the properties
suppressCsvExportsuppressExcelExport. - AG-669 excel export now has a property
sheetNamethat allows to configure the name of the generated Excel sheet. - AG-749 headerName is now optional in the columnDef, if your provide a field the name would be derived from the field name
- AG-737 the menu items 'expand all' and 'contract all' now only appear for InMemoryRowModel
- AG-651: allow saving / restoring col group 'open/closed' state
Version 13.1.0 [01-SEP-2017]
Revert of Breaking Change
-
In v13.0 we introduced the method
afterGuiAttached()for the cell renderers. The purpose of this was to allow cell renderers to be created before the DOM existed which gave a marginal performance boost. This has caused issues for frameworks like React and Angular (which sometimes need the parent DOM element to exist before the component is created). For this reason we have reverted back to how things worked prior to v13.0.So in summary, v13.0 introduced
afterGuiAttached(), v13.1 takesafterGuiAttached()back out.
Bug Fixes
- AG-721: When in pivot, it was possible open level groups via API or via double clicking. Bottom level groups in pivot should be locked closed.
- AG-597: Preserve grouped column order after dragging to new position
- AG-620: Retain hidden columns when group moved
- AG-733: resolved an issue with react+redux where the store was not injected
Version 13.0.x
Version 13.0.1 [29-AUG-2017]
Bug Fixes
- AG-711: blank cells with no defined cell renderer were causing error
- AG-709: column header attribute was colId instead of col-id
- AG-706: rows were not rendering sometimes when cellRenderer was not returning back true 'object' or string
- AG-705: angular 1 cells were not getting compiled
- AG-710: Fixed an issues where drag and drop did not work as expected in ag-grid-react
- AG-712: Fixed an issue with headers no longer displaying ellipsis (…) when too narrow.
- AG-708: The themes are shipped without minifictation for easier debugging.
- AG-707: Fixed an issue introduced with new SVG icons - some of the icons passed through the
gridOptionsstopped working - AG-714: Fixed an issue a column with a
cellRenderer='group'and with an innerRenderer was not using the innerRenderer when displayed as a leaf cell
Version 13.0.0 [25-AUG-2017]
Enhancements
- New rendering engine - now the grid works blazing fast, even on IE9 and IE10! Our tests show the grid work 6 times faster. One better browsers (Chrome etc) you will notice the scrolling much smoother.
- New material design theme (go to our Main Demo and select the material theme). This is our first step towards modernising all our themes.
- New SVG icons for all the themes. This is in line with industry best practices.
The previous ones are available in the
src/styles/legacydirectory - you can set them back through the API. - AG-664: Added support for Reference Data to manage key / value pairs inside data.
-
suppressScrollLagandisScrollLagno longer used. The new rendering engine doesn't need them due to how it uses animation frames. - AG-685: Number and Date filter have an option to configure what to do when filtering
nullvalues. See: Null filtering - AG-579: Excel an CSV export now works in all row models. If exporting outside of the Client-side Row Model Only the data loaded for the currently displayed grid gets exported.
- The event 'itemsAdded' didn't make sense any more since introducing transaction updates in v11. So now the grid fires rowDataUpdated instead.
- AG-695: The 'type' property on a ColDef now supports an array of column type keys
- AG-634: Text filter has the parameter
caseSensitive. - AG-679: Improved error handling when Column Types are not correctly configured
Bug Fixes
- The HTML attribute 'row' on the row div was showing the index. It was supposed to be the row. Also row-id
was
showing the business key. To avoid confusion, move everything to dash-case (not CamelCase), the following
are now the attributes:
- row-id - matches the row node id.
- row-index - matches the row index (0..n, or t0..tn for pinned top rows and b0..bn for pinned bottom rows).
- row-business-key - matches the business key (if user implements callback getBusinessKey())
- AG-697: Fixed an issue where export group headers was not working correctly when more than 2 groups of headers
- AG-696: Fixed issue where column groups kept expand / collapse icons even when group is no longer expandable
- AG-654: Fixed issue with pinning rows when pivoting
- AG-615: Fixed issue when moving column groups with marry children
- AG-380: Fixed an issue when using a framework like angular/react... cellRendererFramework in a column was not considered when grouping by that column
- AG-253: Support for innnerRendererFramework
- AG-50: Support for cellRendererFramework inside filterParams
- AG-688: Fixed compatibility issue with Internet Explorer 10
Breaking Change
- In cell renderer, the eGridDiv and eParentOfValue no longer exist in init(), instead they are in afterGuiAttached(). We don't like breaking changes, however this was neccessay to allow the new rendering engine.
Version 12.0.x
Version 12.0.2 [26-JUL-2017]
Bug Fixes
- AG-646: Enhancement: updateRowData now returns the rows updated.
- AG-645: Bugfix: Error creating bean CsvCreator due to minimifying issues. Still causing issues after 12.0.1
Version 12.0.1 [25-JUL-2017]
Bug Fixes
- AG-645: Bugfix: Error creating bean CsvCreator due to minimifying issues.
- AG-636: Bugfix: Normal rowModelType was not deprecated properly.
- AG-639: Bugfix: Date component was still broken after previous fix AG-541/600
- AG-633: Bugfix: Fixed bug where "not contains" filter would not work with emtpy strings
- AG-641: Bugfix: When using row groups and footer rows, deprecation warning message was printed to the console, fixed it so it is now (internally grid was using a deprecate method).
Version 12.0.0 [21-JUL-2017]
New Features
- New feature: Polymer Support. #UseThePlatform
- New feature: Change Detection. Say goodbye to grid refreshes.
- New feature: Value Cache. Get better performance if your valueGetters are CPU intensive.
- New feature: Column Spanning.
- New feature: Column Types.
- New feature: Dynamic Row Height on Enterprise Row Model.
Documentation
- Rewrite of Grid Refresh. There were once a few similar confusing methods. There are are two clear and clean methods: cellRefresh() and redrawRows(). See 'Changes to Refresh' below for more details.
- Update Documentation: Getters and Formatters.
- Update Documentation: Setters and Parsers.
- Renamed 'Master / Slave' to 'Aligned Grids' so that it's not confused with 'Master / Detail', which is nothing to do with 'Aligned Grids'.
- Renamed 'Pinned Rows' to 'Pinned Rows' because it was confusing, now we have Pinned Rows and Pinned Columns which are similar, but one for rows and one for columns.
Enhancements
- AG-572: For accessibility, rows in the DOM are now placed in the same order you see on the screen. To turn on, set property ensureDomOrder=true.
- AG-469: Enhancement: new event for column 'menuVisibleChanged', gets fired when column menu is shown / hidden. Useful if doing your own headerComponent and want the header to look different when menu is shown / hidden.
- Enhancement: Now header DIV will contain class ag-column-menu-visible when the column menu is showing.
- AG-619: New option to always show status bar
- AG-523: Allow 'shift-click' selections on all row models
- AG-519: ASet filter use the checkboxes specified by the user, not the browser checkboxes
Bug Fixes
- Bug fix: when using multiple group auto columns and header checkbox selection, the header checkbox now only appears in the first column header.
- AG-592: Bugfix: Allow empty groups if the user provides empty strings, not null or undefined
- AG-541/600: Bugfix: [Date component] Date component not working when specified in both filter and floating filter
- AG-586/584: Bugfix: Excel and CSV export are not using the default fileName when exporting
- AG-479: Bugfix: If you group dynamically in pivoting, the filter column shows an empty set
- AG-366: Bugfix: Multiple sort numbers were disappearing after horizontal scrolling
- AG-317: Bugfix: Agg/Pivot Display Issues With Longer Col Names
- AG-578: Bugfix: Exception raised when performing range selection and filtering on the enterprise row model
- AG-327: Bugfix: Cumalative sort numbers disappear when refreshHeader is called
- AG-375: After calling columnApi.setState() and doing multi-column sort, the sort numbers were not getting displayed beside the relevant column.
- AG-602: Bugfix: Enterprise Row Model success callback interface was missing 'lastRow'.
- AG-617: Buffix: Enterprise Row Model unable to perform full width groups
- AG-625: Now Enterprise Row Model works with complex objects (eg valueGetters and fields with dot notation).
- AG-624: 'select' editor, when you select a value, was closing 'full row edit'. Now select works fine with 'full row edit'.
- AG-593: Added missing exports to exports.ts
- AG-628: Bugfix: Enterprise Data Source can now be set as a grid property (previously API had to be used).
- AG-629: Bugfix: Row order now maintained when using ag-Grid Enterprise and inserting with transaction using 'addIndex'.
- AG-631: The internationalisation text 'drag here to aggregate' was incorrectly showing the 'drag here to pivot' message.
Breaking changes
Changes to Refresh
The multiple refresh methods in the grid were confusing. We reviewed all the methods and replaced them with two simple equivalents: api.refreshCells(params) and api.redrawRows(params). For 99% of the time, you will call api.refreshCells(params). However - given the grid now has change detection, you may find that you don't need to call refresh ever again.
- refreshView() -> use api.refreshCells(params) instead
- softRefreshView() -> use api.refreshCells(params) instead and include (the volatile) columns in params
- refreshRows(rowNodes) -> use api.refreshCells(params) instead and include rows in params
- refreshCells(rowNodes, colIds) -> use api.refreshCells(params) instead and include rows and columns in params
- refreshGroupRows() -> use api.refreshCells(params) instead and include rows and columns in params
Other API And Property Changes
The following API and property changes were done around the renaming of pinned rows and aligned grids. All this is done to make the grid API easier to understand and interface with.
- colDef.floatingCellRenderer -> colDef.pinnedRowCellRenderer
- colDef.floatingCellRendererFramework -> colDef.pinnedRowCellRendererFramework
- colDef.floatingCellRendererParams -> colDef.pinnedRowCellRendererParams
- colDef.floatingValueFormatter -> colDef.pinnedRowValueFormatter
- gridApi.setFloatingTopRowData-> api.setPinnedTopRowData
- gridApi.setFloatingBottomRowData-> api.setPinnedBottomRowData
- gridApi.getFloatingTopRowCount-> api.getPinnedTopRowCount
- gridApi.getFloatingBottomRowCount-> api.getPinnedBottomRowCount
- gridApi.getFloatingTopRow-> api.getPinnedTopRow
- gridApi.getFloatingBottomRow-> api.getPinnedBottomRow
- gridApi.getFirstRenderedRow-> api.getFirstDisplayedRow
- gridApi.getLastRenderedRow-> api.getLastDisplayedRow
- gridOptions.floatingTopRowData -> gridOptions.pinnedTopRowData
- gridOptions.floatingBottomRowData -> gridOptions.pinnedBottomRowData
- gridOptions.slaveGrids -> gridOptions.alignedGrids
- rowNode.floating -> rowNode.rowPinned
AG-591: Breaking Change to Cell Renderer - To Support TypeScript 2.4
cellRenderer.refresh() is now a mandatory method and returns boolean (previously it was optional and returned void). This is to support TypeScript 2.4 that mandated a breaking change (TypeScript 2.4 doesn't allow interface with just optional methods). Check the cellRenderer Refresh documentation for details on how to now implement this method. In summary, if you implemented this method before, just make sure you return true. If you did not implement this method before, then implement an empty version of it that returns false.
Breaking Changes
- cellRenderer.params.valueGetter() is now called cellRenderer.params.getValue()
- Grid property slaveGrids is now called alignedGrids.
- Grid property paginationStartPage is gone, use api.paginationGoToPage(x) instead.
Version 11.0.x
Version 11.0.0 [26-JUN-2017]
Documentation
- Row Grouping docs rewritten, favours new rowGroup property (instead of rowGroupIndex) and also favours auto group columns (instead of configurating column explicitly).
- New documentation page to test with Jasmine or Karma.
- New documentation page to integrate RxJs.
- New documentation page for grid provided cellRenders.
- New documentation page for accessibility.
- New documentation section for cell flashing.
- New documentation pages Values and Expressions and Cell Expressions.
Enhancements
- AG-513 - Improved row grouping. The preferred way to do row grouping now is using auto group columns. All the examples in the docs have been updated to use when possible auto group columns. The new row grouping makes group sorting work out of the box and fixes some bugs related with sorting and row grouping
- AG-529 - Improved the way grid property changes are handled in React.
- AG-401 - New property menuTabs to specify which column menu tabs to show and in which order.
- AG-38 - New accessibility features and documentation.
- AG-517 - Review of valueGetters and valueFormatters and introduced valueSetters and valueParsers. See new documentation pages Values and Expressions and Cell Expressions for details.
- AG-551 - Added Pivot Total Columns - allows expanding / collapsing of pivot columns into totals
- AG-515 - New property gridOptions.accentedSort. Set to true to specify that the sort should take into account accented characters, if this feature is turned on the sort will perform slower.
- AG-182 - New property clipboardDeliminator to specify deliminator to use while copying to clipboard.
- AG-398 / AG-371 - New property colDef.suppressPaste to suppress pasting from clipboard for certain cells.
- AG-73 - Now when editing or updating data, if value is not different, data is not updated, cell is not refreshed and no 'valueChangedEvent' fired. This was important when tabbing through cells while editing, previously events were first as you navigate cells even though the value was not changed.
Bug fixes
- AG-557 - Fixed issue where rowGroupPanelShow would not work if using any framework. ie Angular, React...
- AG-539 - Fixed issues in the react examples
- AG-347 - Fixed issue where in some cases groupSuppressAutoColumn : true Makes copy not work on the group column
- AG-481 - Fixed issue where multi column sort wouldn't work when sorting many columns once, including row group columns
- AG-348 - Callbacks processCellForClipboard() and processCellFromClipboard() now get invoked with doing Ctrl + D (copy range down)
- AG-199 - sizeColumnsToFit now fires an event with parameter 'finished=true'.
- AG-199 - autoSizeColumns now fires just one event, previously it was firing two events unnecessarily.
- AG-82 - Resizing groups now respects any children columns that are not resizable.
- AG-207 - MarryChildren was not working when columns were hidden, now works.
- AG-154 - Typing non-latin letters on focused cell now starts cell editing.
- AG-543 - Bugfix - Regression/Breaking Change - rows are inserted in reverse order
Breaking Changes
- Aggregation data and group data are no longer stored in rowNode.data, instead they are stored in rowNode.groupData and rowNode.aggData. If you are accessing rowNode.data for aggreation or group data, this will now not work.
- Removed property suppressUseColIdForGroups, because of new way of storing grouped data in the rowNode, it is not needed.
- If you are providing your own group display columns (ie columns to show the groups, not columns to group by) then you have to specify colDef.showRowGroup=true to get the grid to return the right values for the chosen group. This is explained in Show Row Group.
- gridOptions.groupColumnDef has been renamed to autoGroupColumnDef.
- gridOptions.enableFilter now needs to be specifically switched on to get the filter menu in the columns.
- Deprecated cellRendererParams properties: restrictToOneGroup. See row grouping docs on new way to restrict to one group.
- Deprecated cellRendererParams properties: keyMap. The 'keymap' solution was before you could group using valueGetters. If you want the group to have a different value, use either a valueGetter, or use a cellFormatter to format the value.
- Deprecated gridOptions properties: suppressMenuFilterPanel suppressMenuMainPanel and suppressMenuColumnPanel, use colDef.menuTabs instead. Instead use colDef.menuTabs property to set what tabs you want.
Version 10.1.x
Version 10.1.0 [08-JUN-2017]
Documentation:
- New documentation page Accessing Data.
- New documentation page Data Refresh.
- New documentation page Data Update.
Enhancements:
- AG-483: Delta updates - now you can add / update / remove rows without having to call 'setRowData(rowData)' with new data each time. Means you can keep the grids
- AG-420: Support for Redux Style Immutable Stores, to work better with React applications. state (seelction, grouping etc) while new rows are set.
- AG-114: Auto height grid: Allow the grid to resize it's height to the number of rows so that there is no vertical scrolls.
- AG-392: Number floating filters now can be any number, previously it was only possible to filter by positive non decimal numbers. This can be seen in our main demo page
- AG-453: Added optional debounce configuration to the keyboard input in the filter box and the column filter. This is configured by the property debounceMs and applies to the text, number and set filter.
- AG-506: Added an API call
api.refreshInMemoryRowModel(step)to easily request the grid to be filtered, sorted, grouped … - AG-505: Added new API methods to get nodes based on the displayed
index or the node id
getRowNode(id) - AG-512: Improved the performance of the tree data.
- AG-501: Allow tooltips in the context menu
- AG-451: Allow the user to dynamically change the values of the set filter on the fly.
Bug fixes
- AG-508: Fixing bug where it would be not possible to filter by 0 in a number floating filter
- AG-493: Fixing a bug where if using auto group columns and restoring their state to be sorted would not sort the auto-group column
- AG-468: New callback to allow modifying any popup shown by ag-grid just before they are about to be displayed
- AG-323: Fixed bug where floating filters wouldn't work in the frameworks
- AG-442: Fixing bug where suppressing a filter would not prevent the filter from initialising, hence potentially causing a performance problem
- AG-428: Fixing bug where more than two levels of grouped headers don’t get exported.
- AG-488: Fixing bug where set filters with newRowsAction='keep' wouldn’t work if one of the values selected in the mini filter is blank
- AG-495: Fixing a bug where navigation keys would cause the cell editing to stop (ie, Home, End, Page Up, Page Down)
Breaking Changes
- Deprecated Methods: insertItemsAtIndex(), removeItems(), addItems(), use updateRowData() instead.
- Property 'forPrint' replaced with 'domLayout', if using forPrint, then set domLayout="forPrint" instead.
Version 10.0.x
Version 10.0.1 [24-MAY-2017]
- AG-475: There were missing exports causing compilation problems in typescript
Version 10.0.0 [22-MAY-2017]
Enhancements:
- New row model type Enterprise Row Model.
- AG-471: All the events are now asynchronous. afterFilterChanged event dropped.
- AG-461: By default, quick filter no longer caches the values. This means quick filters work a bit slower, but are more dependable (cache does not go out of date). The cache can still be turned on using the property cacheQuickFilter=true if worried about performance.
- AG-104: The headers height now is dynamic and can be configured to support vertical text orientation.
- AG-462: Allow custom CSS classes in context menu items through the property cssClasses
- AG-388: New grid property suppressAggAtRootLevel to allow the suppression of aggregation at the root Node level
Bug Fixes:
- AG-449: Merging styles in Excel export would fail if mixing two partial styles in one cell
- AG-444: Removed the necessity to add a defaultGroupComparator to have groups sorting by default
- AG-444: Removing sort on a column will restore the sort to the sort provided from the user in all the cases.
- AG-372: Popup editors when stopEditingWhenGridLosesFocus: true would disappear when the user will click on them
- AG-403: Fixing edge cases when openGroupByDefault and removeParents would case the grid to show the wrong row aggregations
- AG-384: Fixing a bug when unpinning a column will cause empty rows shown on the main body area of the grid
- AG-377: Property restrictToOneGroup didn't work when field was missing in colDef (ie value getter used instead).
- AG-452: Using groupColumnDef would cause CSV/Excel export to fail
- AG-450: Fix bug when the only option specified for a filter is in range filterOptions:['inRange']
- AG-445: Cell editors destroy method is not mandatory anymore
- AG-259: sizeColsToFit not working in frameworks when immediately invoked
- AG-335: floatingFilterWrapperComponent prints readable error messages when the custom implementations are missing mandatory methods
- AG-457: Angular components prints readable error message when the method agInit is missing
- AG-464: The grid API is passed as parameter to all the components in the init method
- AG-328: Fixed suppressSorting for Set Filters, it wasn't working properly
Breaking Changes:
-
The cache in 'infinite row model' now deals with blocks of rows,
not pages of rows. To avoid terminology confusion (with pagination feature)
the following name changes were made:
- Property maxPagesInCache renamed to maxBlocksInCache
- Property infiniteBlockSize renamed to cacheBlockSize
- Property paginationOverflowSize renamed to cacheOverflowSize
- API refreshInfinitePageCache renamed to refreshInfiniteCache
- API purgeInfinitePageCache renamed to purgeInfiniteCache
- API getInfinitePageState renamed to getBlockCacheState
Version 9.0.x
Version 9.1.0
Enhancements:
- Enhancement (AG-346): Floating Filters/Performance: Floating filters won't slow down vertical scrolling anymore as they lazily interact with the filters now.
- Enhancement (AG-399): Excel export: Allow additional excel style property dataType to force custom data type for a column
- Enhancement (AG-390): Excel export: Allow customHeader() and customFooter() callbacks to add custom rows either at the header or the footer of the exported excel file
- Enhancement (AG-387): Text filter: Allow textCustomComparator()
- Enhancement (AG-378): Filter: Added filterParam filterOptions which takes a string array of valid filter types that the user can select from the filter UI in the filter menu
- Enhancement (AG-368): added columnApi and grid api api to header comp params.
Bugfix:
- Bugfix (AG-391): Number Filter: Fixed bug where filtering by 0 will filter everything out
- Bugfix (AG-382/359): Date Filter: Fixed bug where using the cross to clear the date filter will throw an error
- Bugfix (AG-373): WebComponents: initialiseAgGridWithWebComponents no longer was working
- Bugfix (AG-370): Keyboard navigation: Keyboard navigation should skip full with rows
Version 9.0.3
Enhancements:
- New property suppressScrollOnNewData. When true, the grid will not scroll to the top when new row data is provided. Use this if you don't want the default behaviour of scrolling to the top every time you load new data..
Bugfix:
- Property groupDefaultExpanded was not working for expanding all groups in pivot mode.
- Fixed typescript type of the property paginationAutoPageSize from number, to the correct type boolean.
Version 9.0.2
Bug Fix: Fixed Web Components issue, error "Cannot redefine property: infiniteBlockSize" solved.Version 9.0.1
Bug Fix: License key was broken.Version 9.0.0
Big Feature: Client Side Pagination (AG-91)ag-Grid 9.0.x introduces Client-side Pagination. This replaces the old 'pagination row model' which forced you to bring back pagination pages one page at a time from the server. The client side pagination works with all row models and paginates on the client side. This means you have pagination work with the default Client-side Row Model (and do filtering, sorting, grouping, pivoting etc on the data on the client side), or you can also put pagination in front of the viewport row model or Infinite Scrolling Row Model.
Big Feature: Improved Column Groups (AG-315)ag-Grid 9.0.x also introduces multiple columns for groups and multi columns while grouping.
Enhancements- Enhancement: New Client-side pagination that works with all row models.
- Enhancement: New event bodyHeightChanged, gets called when the body height changes, thus the number rows rendered may change. This is used by the grid for setting the page size when paginationAutoPageSize=true.
- Enhancement: First pass of Server-side Row Model, to allow ag-Grid users to see work in progress for our server side filtering, sorting, grouping and aggregation.
- Enhancement (AG-349): Filter: Provided 'in range' filters now have parameter inRangeInclusive to include the start and end range values.
- Enhancement (AG-334): New event componentStateChanged: When frameworks (eg Angular 2, React, VueJS, Aurelia, Web Components) change a grid property, this event gets fired AFTER the grid has actioned the change.
- Enhancement (AG-318): New property allowContextMenuWithControlKey, removes suppression of the context menu when ctrl is held down.
- Enhancement (AG-307): New property stopEditingWhenGridLosesFocus, for cell editing, so that taking focus off the grid stops the editing and saves values.
- Bugfix (AG-355): Set Filter: setModel(null) was failing when selectMiniFilter = true.
- Bugfix (AG-351): For Print: sorting and filtering was broken in forPrint.
- Bugfix (AG-320): For Print was not working when using api.setRowData()
- Bugfix (AG-314): (Angular 1.x) $scope got dropped form cellClass callback, is now back in.
- Bugfix (AG-274): Column grouping and pinned columns were giving wrong header widths.
-
Refactor: Virtual Row Model is now called Infinite Row Model. All properties and APIs related to this
are now call 'Infinite' eg setVirtualRowCount() is now setInfiniteRowCount(). Grid will
log to console and help you when you are using the old method and property names.
Version 8.2.x
Enhancements:- Enhancement: Floating Filters.
- Enhancement: Pagination API.
- Enhancement: Pagination now scrolls to top when you load new page.
- Enhancement: Provided filters now have 'Clear Filter' button.
- Enhancement: Sorting now shows order of sort when sorting by multiple columns.
- Bugfix: exportDataAsExcel no longer throws error when called with no arguments.
- Bugfix: Excel Export wasn't working with Open Office, now working.
- Bugfix: Excel Export was sometimes missing number values, now fixed.
- Bugfix: 'Select All' checkbox now works with pagination.
- Bugfix: Cell refresh now gets cellClassRules reapplied.
- Bugfix: Horizontal DragService now uses gridOptions.getDocument().
Version 8.1.x
Small Breaking Change:For Angular 2+ users only: ag-grid-ng2 repository renamed tp ag-grid-angular. So in your dependencies (package.json), reference ag-grid-angular, not ag-grid-ng2.
Enhancements:- Enhancement: Angular repository renamed (used to be ag-grid-ng2, is now ag-grid-angular). This is because Google want to call Angular 2 just Angular now.
- Enhancement: CSS class 'ag-column-hover' now added to headers when mouse over column.
- Enhancement: Text Filter now has 'not contains' option.
- Enhancement: Text Filter no longer applies lower case to model.
- Enhancement: Set Filter has option to hide the mini search.
- Enhancement: Number Filter now has range.
- Enhancement: Added suppress quotes option for copySelectedRowsToClipboard.
- Bugfix: Angular 2 - angular directive was causing too many dirty checks
- Bugfix: AMD - Removed circular dependency in context.js which impacted AMD.
- Bugfix: api.getDataAsCsv() parameters are now optional.
- Bugfix: Mouse can now drag(ie movable) custom header groups.
- Bugfix: Context sub-menu no longer gets clipped when to large.
- Bugfix: suppressSorting now works on mobile (ie touch).
- Bugfix: Now when you ungroup, the sort state will be removed if you are sorting by the group column.
- Bugfix: processCellFromClipboard was not getting called.
- Bugfix: Excel Export was not working for Open Office.
- Bugfix: Checkbox was in wrong position when pinning the column.
Version 8.0.x
ag-Grid 8.1.1, ag-Grid-Enterprise 8.1.1
ag-Grid 8.1.0, ag-Grid-Enterprise 8.1.0
Enhancements:- Enhancement: VueJS Framework Support! Big welcome to the VueJS community.
- Enhancement: Header Component and Header Group Component. Allowing full customisation of the headers.
- Enhancement: Excel Export now includes full support for all Excel XML properties.
- Enhancement: New feature Header Checkbox Selection.
- Enhancement: New CSS class ag-column-hover to allow highlighting of hovered column.
- Enhancement: If one cell in clipboard, you can now select a range of cells to copy that one value into entire range.
- Enhancement: Navigation support for Page Up, Page Down, Home, End, Ctrl+left, Ctrl+right.
- Enhancement: New APIs api.selectAllFiltered() and api.deselectAllFiltered()
- Enhancement: Added skipRefresh to the add/remove row APIs, so if you want to add / remove lots of rows, you only refresh on the last update.
- Enhancement: Property groupDefaultExpanded now works with flower nodes
- Enhancement: New property suppressTabbing to disabled grids tabbing functionality.
- Breaking Change: TypeScript Users Only: Interfaces names changed for components. Check the documentation for the names of the interfaces. Eg ICellRenderer is replaced with ICellRendererComp. This is to position ag-Grid for supporting components from other frameworks ('Comp' means an ag-Grid component, to differentiate from a cellRenderer built in eg Angular or React).
- Breaking Change: TypeScript Users Only: Interface names used in Angular 2 are also changed slightly. Again check the documentation for the new names.
- gridOptions.checkboxSelection is now gone, use defaultColDef.checkboxSelection instead
- Bug Fix: Editing works for off-screen cells - so if editing full rows, off screen cells don't get reset.
- Bug Fix: ctrl+c now works, even if focus cell is scrolled out of view.
- Bug Fix: Set Filter now supports null values when getting and setting the model.
Version 7.2.x
Version 7.1.x
ag-grid-angular-7.1.2
Bug Fixes
- Bug Fix: TypeScript was incorrectly trying to compile main.ts (when under node_modules) - exclude main.ts from npm publish for now
- Bug Fix: Unpin versions for Angular and Zone to be more flexible
Version 7.0.x
ag-grid-7.0.2, ag-grid-enterprise-7.0.2
Bug Fixes
- Bug Fix: For virtual pagination row model only, calling api.insertItemsAtIndex() messed up the row indexes, now fixed.
- Bug Fix: For viewport row model only, selected row was failing when the node ID of the selected row changed.
- Bug Fix: When animating the rows, the selected cell highlight was getting confused. Now stays with the same row index (so if rows move, focus goes to new row in the selected index, the index doesn't move).
- Bug Fix: grid event onRowClicked was not working for fullWidth rows (including when fullWidth was used for grouping).
- Bug Fix: count function was not working when row grouping had 2 or more columns.
- Bug Fix: callbacks getBusinessKeyForNode and checkboxSelection were missing for React. in now.
- Bug Fix: isCancelAfterEnd was getting called even if ESC was pressed, now no longer.
Enhancements
- Enhancement: New api methods api.tabToNextCell() and api.tabToPreviousCell() for navigation.
- Enhancement: Filter type 'not equals' now works for empty string values (they should pass the filter).
- Enhancement: headerValueGetter now has an extra parameter 'location' which is on of {csv, clipboard, toolPanel, columnDrop, header}. It allows you to have a different name for the column dependent on where it is.
Version 7.0.x
Enhancements
- Enhancement: Aurelia Support.
- Enhancement: Full Angular 2 AOT Support.
- Enhancement: New option for grouping Remove Single Children, so groups will only one child are removed.
- Enhancement: Now menu's (column menu and context menu) can have custom sub menus.
- Enhancement: Animation of Rows - now rows will animate after sort, filter and row group open / close.
- Enhancement: New API - rowNode.setExpanded(boolean) - To open / close a row group row.
- Enhancement: api.getValue() now works with pivot columns
- Enhancement: Row height can now be changed after the rows are initially set.
- Enhancement: New property - groupSelectsFiltered, when set, if you select a group, unfiltered items do not get selected.
- Enhancement: Angular 1 - Added $scope to cellEditor params.
- Enhancement: Now when multiple ranges are selected, copy to clipboard copies all ranges, previously only first range was copied.
Bug Fixes
- Bug Fix: columnApi.setColumnAggFunct() => renamed to columnApi.setColumnAggFunc() (took out the 't' at the end, it was a typo)
- Bug Fix: paste from clipboard now skips non-editable columns and continues with rest of row (before it stopped and didn't complete the row)
- Bug Fix: copying selected rows to clipboard was not possible in Viewport. Now is possible.
Breaking Change
- If you are using Angular 2 components inside ag-Gri, due to changes in the Angular 2 library, we had to change how Angular 2 cell renderers are configured. Please check the new documentation on what to change.
Version 6.4.x
ag-grid-6.4.2, ag-grid-enterprise-6.4.2
ag-grid-6.4.0, ag-grid-enterprise-6.4.0, ag-grid-angular-6.4.0, ag-grid-react-6.4.0,
Enhancements
Bug Fixes
Breaking Change
Version 6.3.x
Enhancements
- quick filter - added colDef.getQuickFilterText to allow overriding of quick filter text
- performance option - added property suppressRowHoverClass, so if you do not require the row hover class, it's expensive, set this to true for slight performance tweak
- ag-grid-react - now cellRenderers get params.reactContainer so the cell renderer can style the wrapping div
- ag-grid-react - container for react cells now has css class ag-react-container, to allow CSS selection for styling
- clipboard - added callback processCellFromClipboard(), to allow you to change data as it's been copied from the clipboard.
- scrolls - new property 'scrollbarWidth', so you can tell grid how much padding to use for scrollbar. Handy if providing non-standard scrolbars to grid and need to provide alterlative padding to use.
- grid size - added api.checkGridSize(), so you can force grid to check its size. Handy if you create the grid OUT of the dom, then insert it, then you want to tell grid to work out what rows and columns to render.
- icons - added customisation of the following icons: menuPin, menuValue, menuAddRowGroup, menuRemoveRowGroup, rowGroupPanel, pivotPanel, valuePanel
- suppress touch - added property suppressTouch to turn off touch support, if you don't want it.
Performance Enhancements
In our tests the demo page used to take 1600ms to expand a row after grouping, it's now down to 600ms. We haven't tested teh other browsers, but you can expect these changes to at least have some positive improvements on them also. The changes we made were:
- introduced Document Fragment to build DOM offline when building rows
- cells no do not have any events, all event handling done at grid level - means for example, where before was adding a keydown event to every cell, not it is added to grid and gri work out which cell, means not adding/removing lots of listeners as grid is scrolling rows
- took events out of rows (same trick as with taking out cells) with the exception of hover listeners
- icon images are now cloned, rather than creating new ones each time one is needed
Bug Fixes
- groupRowRendererFramework, groupRowInnerRendererFramework and fullWidthRowRendererFramework were getting ignored when getting set as properties in Angular 2 and React.
- innerRenderer (for group rows) was not getting destroy called, is now.
- when doing full row edit, calling api.stopEditing() fired event rowValueChanged for each row, not it only calls it for the editing row.
- when using tree data, an there were only groups (all groups were empty), the 'no rows' overlay was showing. Not is doesn't sort when only groups.
- api.ensureIndexVisible() will now also render the rows in the same action, previously you had to wait for the grid to pick up the scroll event (which happened immediatly after) to render the rows. This causes problems if you wanted to access the row immediatly after ensuring it was visible (eg to start editing).
- Formatted values can now be empty strings, previously empty strings were ignored and the original value was presented.
- grid options was missing onRowValueChanged property
- fixes this issue, when left and right pinned on IE, left pinned didn't sync scroll with body always.
- Set Filter - 'Select All' checkbox was not getting cleared when all items were unchecked.
- Set Filter - When new rows got loaded into the grid, the filter icon was not cleared down if filter was reset. Now it is.
Version 6.2.1
ag-grid 6.2.1, ag-grid-enterprise 6.2.1
Version 6.2.x
Version 6.1.1
ag-grid-angular 6.1.1
Version 6.1.x
Version 6.0.x
ag-Grid 6.0.1, ag-Grid-Enterprise 6.0.1, ag-Grid-React 6.0.1, , ag-grid-angular 6.0.1
Version 6.0.x brings the following changes:
- Bug Fixes and Improvements
- Improved React and Angular 2 Support
- Refactored Filters
1 - Bug Fixes and Improvements
2 - Improved React and Angular 2 Support
Lots of work has been done to support natively React and Angular 2, to allow you to plug in React
and Angular 2 cellEditors and cellRenderers simply. Now, instead of using cellRenderer, you use
cellRendererFramework as follows:
3 - Changes to Filters
How filters were working were out of line with how cellRenderers and cellEditors were working. This is because filters were done as one of the first items in ag-Grid and the interface has not changed. The changes in this release bring them in line with the newer 'Component Model' that is in ag-Grid, so they now behave in the same way as cellRenderers and cellEditors, including fitting in with React and Angular 2 components, the same way the renderers and editors do. The main core changes are as follows:
- If you were providing a Filter API then be aware the API is no longer a separate part of the
component. Instead it is now possible to get a reference
to the filter component directly via api.getFilterInstance(colKey). From here you can access all
methods on the filter component. So if you want to add extra items to (what used to be) the API, now
you just add them directly to your filter component.
// eg if your filter was like this: function MyFilter() {} MyFilter.prototype.getApi = function() { return { getModel: function() { ... }, setModel: function(model) { ... }, } } // it should now be like this: function MyFilter() {} MyFilter.prototype.getModel = function() { ... } MyFilter.prototype.setModel = function(model) { ... } - If you were providing custom params to your custom filters then these used to be passed to the
filter embedded into the filter params.
Now the custom params are added to the main params.
// eg when you define this: colDef = { ... filter: MyFilter, filterParams: {a: 'A', b: 'B'} } // the old way resulted in: params = { column: Column, ... filterParams: { a: 'A', b: 'B' } } // but now it results in: params = { column: Column, ... a: 'A', b: 'B' } -
The constants for Number and Text filters are now strings and not numbers. If you were storing user preferences for these filters, you need to map the old numbers to the new string values.
For Number filter, the mapping is as follows:
- 1 => 'equals'
- 2 => 'notEqual'
- 3 => 'lessThan'
- 4 => 'lessThanOrEqual'
- 5 => 'greaterThan'
- 6 => 'greaterThanOrEqual'
For Number filter, the mapping is as follows:
- 1 => 'contains'
- 2 => 'equals'
- 3 => 'notEquals'
- 4 => 'startsWith'
- 5 => 'endsWith'
All the examples are up to date with the new way of doing things.
Version 5.4.x
ag-Grid 5.4.0, ag-Grid-Enterprise 5.4.0, ag-Grid-React 5.4.0, , ag-grid-angular 5.4.0
Version 5.3.x
ag-Grid 5.3.1, ag-Grid-Enterprise 5.3.1
ag-Grid 5.3.0, ag-Grid-Enterprise 5.3.0
Version 5.2.x
ag-Grid 5.2.0, ag-Grid-Enterprise 5.2.0, ag-grid-angular 5.2.0
Bug Fixes and Angular 2 Cell Rendering
Version 5.1.x
ag-Grid 5.1.2, ag-Grid-Enterprise 5.1.2
Version 5.0.x
ag-Grid 5.0.7, ag-Grid-Enterprise 5.0.7
ag-Grid 5.0.6, ag-Grid-Enterprise 5.0.6
ag-Grid 5.0.4, ag-Grid-Enterprise 5.0.4
ag-Grid 5.0.3, ag-Grid-Enterprise 5.0.3
ag-Grid 5.0.2, ag-Grid-Enterprise 5.0.2
ag-Grid 5.0.1, ag-Grid-Enterprise 5.0.1
Version 4.2.x (ag-Grid 4.2.7, ag-Grid-Enterprise 4.2.11)
Version 4.2.x (ag-Grid-Enterprise 4.2.10)
Version 4.2.x (ag-Grid 4.2.6, ag-Grid-Enterprise 4.2.9)
Version 4.2.x
Big Changes
- Drag groups of columns from within table to move
- Drag groups of columns from column toolPanel
- Drag groups of columns to 'row group panel' to row group by multiple columns
Breaking Change
Small Changes
Bug Fixes
Version 4.1.x patch (ag-Grid 4.1.5, ag-Grid-Enterprise 4.1.4)
Version 4.1.x patch (ag-Grid 4.1.4, ag-Grid-Enterprise 4.1.3)
Version 4.1.x
Big changesVersion 4.0.x (ag-Grid 4.0.5, ag-Grid-Enterprise 4.0.7)
Version 4.0.x (ag-Grid 4.0.4)
Version 4.0.x (ag-Grid 4.0.2, ag-Grid-Enterprise 4.0.4)
Version 4.0.x
New Features
Enhancements & Changes
Bug Fixes
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 working 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.Version 3.3.3
Version 3.3.2
Version 3.3.0
- CSS now bundled in ag-Grid.js file
- Took out TypeScript internal modules
- Moved to ECMA 6 style imports (instead of require)
- Moved to WebPack for bundling
- Moved Angular 2 component to new project
Version 3.2.0
Version 3.1.2
Version 3.1.1
Version 3.1.0
Version 3.0.0
Version 3 is a major version and has breaking changes. Where possible, the grid will hint if you are using an old property.
- Major: Grouping of headers is now called 'columnGrouping' and can now take multiple levels of groups.
- Major: Pinning can now be done on the left and right, previously was just the right.
- Major: Row pivoting is now called row grouping. So the two types of grouping are now called Row Grouping and Column Grouping. Pivoting was taken out as it wasn't true pivoting. The was done to allow true pivoting to happen in a future release and avoid any name clashes.
- Major: gridOptions.groupKeys and gridOptions.groupAggFields are now gone. These were duplicated ways of setting rowGroups and rowAggregation. The correct (and only non-duplicated way) is to use colDef.rowGroupIndex and colDef.aggFunc.
- Major: New Column API method setColumnPinned().
- Major: api.refreshPivot() now called api.refreshRowGroup()
- Major: Event EVENT_COLUMN_PINNED_COUNT_CHANGED removed and EVENT_COLUMN_PINNED added.
- Major: Column getState() and setState() now include pinned state.
- Major: Header Height is now height per row, so if 25, and three column groups, total header height is 3x25 = 75. Before it was total header height (so height was split evenly across the header rows)
- Major: gridOptions.groupHeaders is no longer a property, as grouping in the headers is now defined inside the column definitions.
- Minor: CSS Classes ag-header-cell-grouped and ag-header-cell-not-grouped are no longer used.
- Major: colDef.headerGroupShow is now called colDef.columnGroupShow.
- Major: Icons {headerGroupOpened, headerGroupClosed} now called {columnGroupOpened, columnGroupClosed}
- Major: Column API - columnGroupOpened() renamed to setColumnGroupOpened()
- Major: setColumnVisible(key) now takes a 'key' which can be a colId, field, ColDef object or Column object - previously you had to provide a Column object. Also new method setColumnsVisible(listOfKeys) for updating batches of columns.
- Major: New methods setColumnPinned(key) and setColumnsPinned(listOfKeys) - behave similar to previously mentioned 'visible' methods
- Major: In get/set column state, pivotIndex is now called rowGroupIndex
- Major: If doing raw Javascript version, then angularGridGlobalFunction() is now deprecated, use "new ag.grid.Grid()" method instead.
- Major: checkboxSelection (on colDef) can now be a function, so you can use params in the function to work out at runtime if the cell should have a checkbox. gridOptions now also has function of the same name, so you can configure the grid to have a checkbox in the first column always regardless of the colDef (this is what the test drive does).
Version 2.3.7
Version 2.3.5
Version 2.3.4
Version 2.3.3
Version 2.3.2
Version 2.3.1
Version 2.3.0
Version 2.2.0
Version 2.1.3
23rd Sep ag-Grid 2.0 released - AngularJS 1.x 2 and Web Components supported
13th Sep First pass on AngularJS 1.x 2
6th Sep Floating headers and footers
31th Aug Column API, External Filtering, Excel Like Filtering
16th Aug Master & Slave Grids.
26th July minWidth and maxWidth for columns. Chaining of cell expressions.
18th July Expressions implemented. Grid now works like Excel!!
5th July Typescript, Values on Tool Panel, Column API
21st June First version of Tool Panel, showing / hiding / reordering / grouping columns.
14th June Server side sorting and filtering, headerValueGetter, newRowsAction, suppressUnSort & suppressMultiSort'.
7th June New features: Ensure Col Index Visible, No Isolated Scope, API for Sorting, API for Saving / Setting Filters
31st May New features: Default aggregation, filtering API, de-selection, foeEachInMemory.
25th May Keyboard Navigation and general improvements
17th May Revamp of Grouping, ensureIndexVisible, ensureNodeVisible, Multi Column Sort (thanks Dylan Robinson), Fixed Width Cols.
26 April - Volatile Columns, Soft Refresh, Cell Templates.
25 April - Bug fixes: Pinned Blank Space, Group Sorting, Cell Templates, Expand / Collapse
20 April - Value Getters, Context and Expressions. Will be available in 1.3, or take latest. All documented in relevant sections.
18 April - Gulp! Thank you Tanner Linsley for implementing Gulp.
16 April - Checked in column opening & closing column Groups. Now you can show and hide columns in groups. Will be available in 1.3, or take latest. Documentation page 'Grouping Headers' updated.
13 April - Checked in 'tab navigation for editing', so when you hit tab while editing a cell, it goes into editing the next cell. Will be available in 1.3, or take latest.
12 April - Checked in datasources, pagination, virtual paging, infinite scrolling. Will be available in 1.3, or take latest. Documentation pages 'Datasource', 'Pagination' and 'Virtual Paging' created.
09 April - Checked in support for 'Refresh Aggregate Data'. Will be available in 1.3, or take latest. Documentation page 'Grouping and Aggregating Rows' updated.
06 April - Checked in support for 'Loading Panel' to show when fetching data. Will be available in 1.3, or take latest. Documentation page for loading created.
05 April - Checked in support for custom icons in the headers. Will be available in 1.3, or take latest. Documentation page for icons created.
04 April - Checked in support for footers while grouping. Will be available in 1.3, or take latest. Documentation for grouping and example in 'test drive' updated to show.
31 March - DailyJS covers launch of Angular Grid.