For a detailed breakdown of items please refer to the detailed changelog here.

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.
Bug Fixes:
  • 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

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 API's, 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.
Small Breaking Changes:
  • 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 Fixes:
  • 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

  • Enhancement: Excel Export.
  • Enhancement: Date Filter.
  • Enhancement: richSelect cell editor now works with empty strings.
  • Enhancement: new property enableGroupEdit, Set to true to allow editing of the group rows.
  • Enhancement: RTL verified to work with For Print.
  • Enhancement: New API getDocument() for overriding what document is used. Currently used by Drag and Drop (may extend to other places in the future). Use this when you want the grid to use a different document than the one available on the global scope. This can happen if docking out components (something which Electron supports).
  • Enhancement: Context menu now has CSV Export and Excel Export.
  • Enhancement: New api.onSortChanged(), call it if you update a cell with a new value and you want to apply the sort order again.
  • Enhancement: New property embedFullWidthRows.
  • Breaking Change: IAfterFilterGuiAttachedParams now called IAfterGuiAttachedParams (impacts TypeScript users only)
  • Bugfix: callback processCellForClipboard was not getting used when copying just one cell (ie not a range).
  • Bugfix: gridOptions.onItemsRemoved was incorrectly called gridOptions.onItemsRemove.
  • Bugfix: Column menu was disappearing while doing vertical scroll. Now it only disappears for horizontal scroll. This impacted when filtering changed the v scroll position (eg if everything filtered, scroll set back to top)
  • Bugfix: api.isAyFilterPresent() was returning true after api.setRowData() was called with new data and newRowsAction was not 'keep'.
  • Bugfix: horizontal scroll was sometimes not possible when no rows, now it is (so you can access column menu on RHS even if no rows).
  • Bugfix: classes ag-row-group-expanded and ag-row-group-contracted were not getting applied as group expanded and contracted.
  • Bugfix: if doing popup editing, and you click outside the grid, the edit is lost, which is different to click on another cell, where the edit is kept. Now they are in sync, clicking outside the pop always keeps the edit.
  • Bugfix: headerCellTemplate had classes in agText element removed. Now they are left alone.
  • Bugfix: rowIndex was missing from cellEditor params
  • Bugfix: CSS class ag-row-focus class was not getting applied to right row when rows were ordered or filtered
  • Bugfix: event selectionChanged was not getting fired when you had more than one row selected, then just clicked one row (all other rows get deselected).
  • Bugfix: api.sizeColumnsToFit() was incorrectly working out the vertical scroll value - meant it was out by the scroll width sometimes in it's calculations.
  • Version 7.1.x

  • Enhancement: RTL support, so now you can support languages that go from right to left.
  • Enhancement: new events: rowEditingStarted, rowEditingStopped, cellEditingStarted, cellEditingStopped.
  • Enhancement: new property suppressClickEdit.
  • Enhancement: added api.clearFocusedCell()
  • Enhancement: added sendToClipboard
  • Enhancement: added custom keyboard navigation
  • Bug Fix: Sub menu was not working in Firefox, now fixed.
  • Bug Fix: Copy to clipboard was not copying focused cell then range selection was turned off.
  • Bug Fix: Pinned right header used to be mis-aligned by the scroll width. Now it's aligned.
  • Documentation: Angular 2 Examples Project now has examples for both SystemJS & SystemJS-Builder, Webpack and Angular-CLI
  • 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

  • Enhancement - column group / pivot panels don't try and do anything if user rearranges, but leaves things in same order as the start.
  • ag-grid-6.4.0, ag-grid-enterprise-6.4.0, ag-grid-angular-6.4.0, ag-grid-react-6.4.0,

    Enhancements

  • Big Enhancement - for grouping, pivoting and values, now you can reorder the columns in the drop zones.
  • Small Enhancement - added toolPanelClass so you can style tool panel items.
  • Small Enhancement - now if you scroll the grid, if a column menu or context menu are open, they will close, otherwise the menu gets out of line with the columns & cells.
  • Bug Fixes

  • Bugfix - for setFilter, setModel was not updating the 'Select All' button, is now
  • Bugfix - when using api.addItems() for standard row model (ie no virtual pagination or viewport) then items were added in reverse order.
  • Bugfix - in IE and Edge, when you edit a cell, then click another cell, the other cell doesn't get focus (eg navigation keys don't work) - appears to be a glitch in IE And Edge, this bug fix works around it
  • Breaking Change

  • Breaking Change - the following events now have the final list of columns, rather than those added / removed: columnRowGroupChanged, columnPivotChanged, columnValueChanged
  • 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 it's 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

  • Bugfix - range select threw error for virtual pagination when drag went below the available rows.
  • Bugfix - avg aggregation function was failing when value was undefined or null.
  • Bugfix - export to CSV was failing when doing count aggregation on data, now fixed.
  • Version 6.2.x

  • New Feature - Touch support.
  • New Feature - Default column and column group definitions. So instead of declaring common properties in each column, define them once in the default.
  • New Feature - Angular 2 Grid Creation via Markup. Option to create Grids with Markup (declaratively).
  • Enhancement - When using checkbox selection in groups, the property cellRendererParams.checkbox can be a function, so you can be selective on which rows have checkboxes.
  • Enhancement - Viewport row model now works with getRowNodeId(), so selection can now work with business keys.
  • Enhancement - Removed sorting the order of value columns when in pivot mode - now value columns displayed in order added.
  • Enhancement - Added 'pivotComparator' to allow defining order of pivot columns.
  • Enhancement - Added 'suppressToolPanel' to column definitions, so suppress columns from appearing in the toolpanel.
  • Enhancement - headerValueGetter now also works for column groups.
  • Enhancement - Added processSecondaryColDef and processSecondaryColGroupDef for pivoting, to allow modification of the pivot columns.
  • Enhancement - Added onlySelectedAllPages to CSV export - so if doing pagination, exports selected across all pages.
  • Bugfix - suppressSorting in Set Filter was not getting used, now fixed.
  • Bugfix - export to CSV was failing when doing avg aggregation on data, now fixed.
  • Bugfix - single click editing was resetting the edit when you clicked on an edited cell. This was introduced in the last release with 'fullRowEdit'. Now fixed.
  • Bugfix - when grouping, full width rows were not getting mouse scroll events processed, noe fixed.
  • Bugfix - when pasting, the cells did not get refreshed if first row was not editable.
  • Bugfix - when editing, the grid was working on ctrl+v, ctrl+c, ctrl+x, ctrl+d, which messed up the edit. Now the grid ignores these if you are editing the cell.
  • Version 6.1.1

    ag-grid-angular 6.1.1

  • AOT support - AOT is now an option when using ag-grid-angular.
  • Version 6.1.x

  • New Feature - Full Row Editing - to enable all cells in a row to be editable at the same time.
  • New Property - colDef.suppressNavigable - set to true (or function to return true) to stop the cell getting focus when tabbing around.
  • New Event - rowValueChanged - gets fired after a full row is updated.
  • ag-grid-angular - Upgrade to Typescript 2
  • 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:

    1. Bug Fixes and Improvements
    2. Improved React and Angular 2 Support
    3. Refactored Filters
    Below goes through each of these in turn.

    1 - Bug Fixes and Improvements

  • Breaking Change: React now uses props directly for the init params in filters, cellRenderers and cellEditors.
  • Breaking Change: Filter interface now called IFilter.
  • Breaking Change: api.getFilterApi() is now api.getFilterInstance().
  • Breaking Change: setColumnVisible() no longer accepts ColDefs as an argument. colIds or Columns are the available options now.
  • Enhancement: Tooltips now don't show if null or undefined.
  • Enhancement: Added api.getFloatingTopRowCount(), api.getFloatingBottomRowCount(), api.getFloatingTopRow(index), api.getFloatingBottomRow(index) for accessing floating rows
  • 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:

    // when not using React or Angular 2
    colDef.cellRenderer = MyCellRenderer;
    
    // in v6, you can use React or Angular 2 components directly
    colDef.cellRendererFramework = MyReactCellRenderer; // for React
    colDef.cellRendererFramework = MyAngular2CellRenderer; // for Angular
    Full details on how get this all working are in the updated React and Angular 2 sections of the docs. If you are using Angular 2 or React, it's best you read these sections to see how to do things in the new improved way.

    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:

    1. 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) {
          ...
      }
    2. 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'
      }
    3. 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

  • Enhancement: added API for startEditing().
  • Enhancement: now rememberGroupStateWhenNewData works when inserting/removing rows, ie group open/closed state is now kept when updating rows.
  • Enhancement: added columnKeys to api.copySelectedRowsToClipboard(), so you can choose which columns get used.
  • Enhancement: columns can now be reordered when in pivot mode (previously they were static).
  • Enhancement: ag-grid-react - now you pass in parent component to React cellRenderer - makes cellRenderer work with React Router and also should give performance improvements.
  • Enhancement: export to csv now allows you to specify particular columns.
  • Enhancement: export to csv now includes floating top and floating bottom rows.
  • Enhancement: toolPanel has lazy intialisation, so now if toolPanel not showing, it doesn't initialise.
  • Bugfix: copy range to clipboard was not taking in group values when group key was using valueGetter.
  • Bugfix: removed styles from border layout templates, used css classes instead. Fixed bug where chrome complained about 'styles violate Content Security Policy #1093'
  • Bugfix: for menus, sub menu was appearing in wrong place when normal 'display to right' position was off screen.
  • Version 5.3.x

    ag-Grid 5.3.1, ag-Grid-Enterprise 5.3.1

  • Enhancement: added 'Copy with Headers' option to context menu, to copy header values when copying to clipboard.
  • Enhancement: added 'Flower Nodes' concept, to allow easy mechanism for providing expandable rows for master / detail and fullWidth.
  • Bugfix: onDragStopped was getting called on header button clicks, even if not dragging was taking place.
  • ag-Grid 5.3.0, ag-Grid-Enterprise 5.3.0

  • Enhancement: new feature - Full Width Rows and Master / Details
  • Enhancement: setFilter - now the search box is focused when you open setFilter
  • Breaking Change: if using groupUseEntireRow=true, you will notice the group row is now a fullWidth row, hence will span pinned sections and not scroll horizontally. This is by design. Functionality should be the same, just the grid will look a big different.
  • Bugfix: Aggregation function 'count' was only working with number values. Now works with any value type.
  • Bugfix: forPrint was broken with last release, now fixed again.
  • 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

  • Enhancement: Now you can create cellRenderers using Angular 2. See Getting Started Angular 2
  • Enhancement: Now context menu appears when you click outside of the rows, including when no rows present.
  • Enhancement: Added columnApi.autoSizeAllColumns().
  • Enhancement: Allowed following methods to work with pagination: forEachLeafNode, forEachNodeAfterFilter, forEachNodeAfterFilterAndSort.
  • Enhancement: Callbacks getRowStyle and getRowClass get called after the data is set as well as when the row is created. Helps viewport and infinite pagination, to add styles and classes after the rows are loaded.
  • Enhancement: external filter present can not be true when grid initialises
  • Enhancement: updated virtual pagination example, to show graceful deletion
  • Bugfix: setFilter was not removing entries correctly when other filters were set if filterParams was missing.
  • Bugfix: when browser was vertically scrolled, the ghost icon while dragging was not positioned correctly.
  • Bugfix: when groupSelectsChildren=true, was failing to update top parent rows when 3 or more columns grouped.
  • Bugfix: api.getVirtualPageState() was returning undefined, now works.
  • Bugfix: case issue with iDatasource, it was getting imported as iDataSource in places.
  • Version 5.1.x

    ag-Grid 5.1.2, ag-Grid-Enterprise 5.1.2

  • Enhancement: Adding and removing of rows now allowed in normal row model. See new documentation page on 'Insert & Remove'.
  • Enhancement: Virtual Pagination engine is rewritten. New and improved allowing inserting of rows and refreshing of the cache and other smaller pieces. See the documentation page on virtual pagination for details.
  • Breaking Change: Removed datasource properties maxConcurrentDatasourceRequests, maxPagesInCache, overflowSize and pageSize. Replaced with grid properties maxConcurrentDatasourceRequests, maxPagesInCache, paginationOverflowSize, paginationInitialRowCount, paginationPageSize.
  • Enhancement: node id's are now strings, not numbers. This is to allow you to give nodes the same id's as your data store.
  • Enhancement: new callback getRowNodeId(), for setting node ids to what you want. Useful for pagination and virtual pagination to allow for selection of rows when doing server side sorting and filtering.
  • Version 5.0.x

    ag-Grid 5.0.7, ag-Grid-Enterprise 5.0.7

  • Enhancement: cellRenderer for richSelect is no longer mandatory, now default text renderer used in richSelect if no cellRenderer specified
  • Enhancement: renamed all 'aggregation' (eg getAggregationColumns) method to 'value' (eg getValueColumns), the documentation was right, methods were out of sync
  • Enhancement: now colId's can be numbers, not just strings
  • Enhancement: added gridOption.autoSizePadding, to allow wider columns after autosize if default is to narrow
  • Bugfix: api.setHeaderHeight() was not working, now fixed.
  • Bugfix: fixed issue where hidden grid (it not visible) was not rendering all rows it should.
  • Bugfix: columnApi.getColumnState() was setting aggFunc on columns that were aggregated but then later removed.
  • Bugfix: largeTextCellEditor - when value was undefined was displaying 'undefined', now displays blank.
  • Bugfix: api.deselectAll() was not deselecting groups when gridOptions.groupSelectsChildren=true.
  • Bugfix: tab navigation was not working with virtual columns when column been tabbed onto was not visible.
  • ag-Grid 5.0.6, ag-Grid-Enterprise 5.0.6

  • Enhancement: added columnApi.getAllDisplayedVirtualColumns(), so you can check what columns are rendered due to column virtualisation.
  • Bugfix: Angular 1 was compiling row multiple times, meant angular listeners were firing more than once. Now it compiles each cell exactly once when cell is created.
  • ag-Grid 5.0.4, ag-Grid-Enterprise 5.0.4

  • Bugfix: hitting space sometimes (noticed on firefox) sent grid scrolling down when it should select the row
  • ag-Grid 5.0.3, ag-Grid-Enterprise 5.0.3

  • Bugfix: pivot was not working with groupUseEntireRow=true
  • ag-Grid 5.0.2, ag-Grid-Enterprise 5.0.2

  • Enhancement: changed comparison (or sorting) to use localeCompare for strings
  • Enhancement: now pivot shows 'n/a' when no value columns is enabled
  • Enhancement: now 'autosize cols' considers the header width, not just the row content
  • Bugfix: cellRenderer with text field was not allowing editing in text field
  • ag-Grid 5.0.1, ag-Grid-Enterprise 5.0.1

  • Major Enhancement: Enterprise feature - Pivoting
  • Major Enhancement: Free feature - Column Virtualisation
  • Breaking Change: colDef.suppressAggregation and colDef.suppressRowGroup are gone, replaced with enableRowGroup, enablePivot and enableValue
  • Enhancement: added events dragStarted and dragStopped
  • Enhancement: new property suppressUseColIdForGroups
  • Enhancement: Safari now uses animation frames for scrolling (Chrome doesn't need it!!)
  • Enhancement: when no using cellRenderer, node.textContent used instead of element.innerHTML, for security reasons to prevent malicious injection of Javascript.
  • Enhancement: new property 'suppressCopyRowsToClipboard' so selected cells will be copied to clipboard and not the selected row, if that's what user wants.
  • Enhancement: popups are restricted to inside the grid when they appear - eg 'richSelect' doesn't appear outside of grid
  • Enhancement: now get/set column state takes into consideration column order
  • Enhancement: column virtualisation, with property suppressColumnVirtualisation to turn it off
  • Enhancement: eGridCell added to params of cellEditor
  • Enhancement: added property layoutInterval, to allow overriding of the layout interval.
  • Enhancement: added property 'suppressFocusAfterRefresh', so grid doesn't set focus back on focused cell if not required.
  • Enhancement: added properties toolPanelSuppressRowGroups, toolPanelSuppressValues, toolPanelSuppressPivots, toolPanelSuppressPivotMode
  • Enhancement: pivot panel now on top alongside group panel
  • Enhancement: new property colDef.openByDefault - set to true on column groups to have them open be default if expandable
  • Enhancement: new grid property functionsReadOnly - makes the gui for group, pivot and values read only
  • Enhancement: added suppressFilter to colDef, to allow turning filtering off for a particular column
  • Bugfix: AngularJS bindings were not getting cells updated when columns added and removed
  • Bugfix: Popups were triggering a scrollbar to flicker on and off when showing (eg show column menu, a scrollbar appeard and then dissappeared in the grid)
  • Bugfix: rowSelectionChanged was not firing on shift select
  • Bugfix: isCancelBeforeStart and isCancelAfterEnd were not working for popup editors
  • Bugfix: virtual pagination was not working when setting datasource as a property (it worked if setting datasource via api.setDatasource())
  • Version 4.2.x (ag-Grid 4.2.7, ag-Grid-Enterprise 4.2.11)

  • Bugfix: group selection was selecting groups when 'groupSelectsChildren=false' giving strange behaviours
  • Version 4.2.x (ag-Grid-Enterprise 4.2.10)

  • Bugfix: aggregation type 'sum' was giving incorrect results
  • Version 4.2.x (ag-Grid 4.2.6, ag-Grid-Enterprise 4.2.9)

  • Enhancement: For Enterprise, License message no longer printed to screen when license is correct.
  • Enhancement: Added colDef.tooltipField, so tooltip can be set on the cell.
  • Enhancement: Icons for drag and drop of columns are now all configurable.
  • Enhancement: quickFilter is now a property, so can be set during initialisation.
  • Enhancement: new API method forEachLeafNode()
  • Enhancement: added suppressQuotes option to csv export
  • Enhancement: added colDef.keyCreator, to allow grouping and set filter on complex objects
  • Enhancement: pagination datasource now gets context as a parameter
  • Enhancement: added largeText cell editor as an 'out of the box' editor
  • Enhancement: enhancements to Material Design look and feel
  • Enhancement: added api.stopEditing()
  • Bugfix: SetFilter was failing when you loaded more data into the grid - filter didn't populate with new values correctly.
  • Version 4.2.x

    Big Changes

  • Enhancement: New theme for Bootstrap
  • Enhancement: New theme for Material Design
  • Enhancement: Dark theme revised
  • Enhancement: you can now move groups of columns (only makes sense when grouping your columns):
    • 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
  • Enhancement: Shift multi-select - a range of rows can be selected together by holding down shift (does not work with virtual pagination or viewport, only normal 'in memory row model').
  • Breaking Change

  • Enhancement: groupAggFunction is gone, replaced with providing your own colDef.aggFunc functions - this was needed to pave the way for pivoting functionality. See docs for details on how to use.
  • Small Changes

  • Enhancement: better default icons for row groups and checkbox selection
  • Enhancement: row selection 'checked' icons are now icons and not browser checkbox. they are now also customisable via changing icons.
  • Enhancement: changed icons for drag pinning, now when you drag a column to the edge, the drag icon changes to 'pinned' so use knows the column is about to be pinned.
  • Enhancement: new property for column group called 'marryChildren', when true then group cannot be split up by moving children.
  • Enhancement: toolpanel now has icon beside column group to show visibility of the group. icon is also clickable to set visible / hidden all children of the group
  • Enhancement: editing now has methods isCancelBeforeStart() and isCancelAfterEnd() to help with lifecycle.
  • Enhancement: new property suppressDragLeaveHidesColumns, so when columns dragged out of grid, they are not hidden.
  • Enhancement: new method api.refreshInMemoryRowModel, does a complete refresh of the in memory row model. Useful if you need to get the groups worked out again.
  • Enhancement: default text editor - now 'right' and 'left' key presses do not loose focus on current cell
  • Enhancement: added ag-row-hover class for when mouse is over row, so you can highlight rows when mouse is over them
  • Enhancement: new property 'suppressMiddleClickScrolls', so you can listen or 'middle mouse clicks' if you want (otherwise middle mouse click is taken by browser to scroll)
  • Enhancement: new property 'suppressPreventDefaultOnMouseWheel' so you can allow browser to handle mouse wheel events - useful if your grid has no vertical scrolls and you want the mouse to scroll the browser page
  • Enhancement: build in renderer 'animiateShowChange' now highlights changes when values are not numbers (eg strings).
  • Bug Fixes

  • Bug fix: when dragging columns out of rowGroupPanel, GUI wasn't redrawing correctly and crashing, causing inconsistent state and console error messages
  • Bug fix: disabled menu items were still allowed to be clicked
  • Bug fix: you can now tab into and out of the grid.
  • Bug fix: default text editor was displaying 'undefined' when initial value was missing. now showing blank.
  • Version 4.1.x patch (ag-Grid 4.1.5, ag-Grid-Enterprise 4.1.4)

  • Bug fix: when setting columns directly on gridOptions, the groupByPanel was not initialised correctly.
  • Bug fix: row group panel was not initialising correctly.
  • Version 4.1.x patch (ag-Grid 4.1.4, ag-Grid-Enterprise 4.1.3)

  • Bug fix: api.deselectAll() was not calling onSelectionChanged, it is now.
  • Bug fix: defaultExpanded setting was not been used, it is now.
  • Bug fix: popup editor was not working, init() was not called.
  • Version 4.1.x

    Big changes
  • Vamped up Cell Editing and Rendering. See new documentation pages for Cell Editing and Cell Rendering
  • New row model called Viewport. Designed for views over large data and pushing out updates from server to client.
  • Breaking Change
  • If you are using the built in groupCellRenderer, check the examples on how to configure it. The colDef.cellRenderer property is broken up into cellRenderer and cellRendererParams.
  • Small changes
  • Enhancement: New event - viewportChanged - gets called when the rendered rows changes, either due to scrolling, new data or grid resize. Using this, you know exactly what divs will be rendered in the DOM.
  • Navigation: When not editing, tab moves between cells. Shift+tab goes backwards.
  • Editing: Hitting any key started editing.
  • Enhancement: New api methods: showColumnMenuAfterButtonClick(colKey, buttonElement), showColumnMenuAfterMouseClick(colKey, mouseEvent)
  • Enhancement: new function colDef.valueFormatter - value formatting responsibility used to tie in cellRenderer, now it's broken out into valueFormatter, allows reusing cellRenderer's against different formats.
  • Enhancement: added 'destroyFilter' api
  • Enhancement: columnApi.addRowGroupColumn() and columnApi.removeRowGroupColumn() now work off colKey and not columns, so you can pass in colDefs, colIds or columns (previously was just columns)
  • Enhancement: New methods: columnApi.addRowGroupColumns(), columnApi.removeRowGroupColumns(), columnApi.setRowGroupColumns()
  • Enhancement: When you refresh the grid, doing a refresh doesn't loose the focused cell if a cell has browser focus.
  • Bugfix: Row grouping was not working when colId was provided.
  • Bugfix: api.setFocusedCell() method now sets browser focus (previous was just graphically highlighting the cell)
  • Version 4.0.x (ag-Grid 4.0.5, ag-Grid-Enterprise 4.0.7)

  • Bugfix: Status bar was not calculating 'min' correctly.
  • Enhancement: Now ctrl+d will copy down the selected range, similar to Excel
  • Deprecated: cellRendererParams.addRenderedRowListener() is now deprecated. If you want callback methods for cellRendering, use the cellRenderer Component pattern.
  • Version 4.0.x (ag-Grid 4.0.4)

  • Bugfix: Firefox was showing native context menu on top of grids context menu.
  • Bugfix: Drag event is only cancelled if source is image, allows user to implement custom drag event.
  • Bugfix: Angular compiling is now done after row is inserted into the DOM.
  • Bugfix: Fixed horizontal scroll on trackpads when mouse over pinned column.
  • Version 4.0.x (ag-Grid 4.0.2, ag-Grid-Enterprise 4.0.4)

  • Bugfix: When filter was 'zero' (for number filer) is was not saving correctly when using 'getFilterModel()'.
  • Bugfix: Event 'gridSizeChanged' was not getting called when width of grid changed, only height.
  • Bugfix: Renamed 'PopupService.js' to 'popupService.js -> caused issued for some import styles.
  • Bugfix: Bug in virtual pagination, grid was not initialising when datasource set in gridOptions.
  • Bugfix: Mouse double click was not working correctly in firefox.
  • Bugfix: Enterprise filters were not getting params in the 'afterGuiAttached' method.
  • Enhancement: setColumnState() now returns a boolean, false if one or more columns could not be found.
  • Enhancement: added API methods copySelectedRowsToClipboard() and copySelectedRangeToClipboard().
  • Enhancement: changed how auto-range aggregations work - blank cells not counted in count, and non-number cells not used for avg
  • Version 4.0.x

    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.

    Version 3.3.3

  • Bug fix: Pinned rows were not colored correctly
  • Version 3.3.2

  • Bug fix: Was not exporting initialiseAgGridWithAngular1() and initialiseAgGridWithWebComponents() with CommonJS
  • Buf fix: Period in fields (ie address.line1) was not working for editing.
  • Version 3.3.0

  • Minor: headerClass (column definition) can now be provided for column groups.
  • Major: If using Pure JavaScript "new ag.grid.Grid()", it's now "new agGrid.Grid()".
  • Major: Event 'ready' is now called 'gridReady'
  • Major: Angular 1 - you now need to initialise the grid via agGrid.initialiseAgGridWithAngular1(angular)
  • Major: Web Components - you now need to initialise the grid via agGrid.initialiseAgGridWithWebComponents()
  • Major: Angular 2 - Dropped support for UMD version of Angular
  • Major: Angular 2 - Now supports CommonJS and ECMA 6 module loading
  • Minor: BugFix: forPrint was not sizing headers correctly when doing grouped columns.
  • Major: Added sorting to groups
  • Minor: Added minColWidth and maxColWidth grid properties. Impacts all columns if set.
  • Major: Column no longer has 'index' attribute, as the columns moving now has no meaning. Use 'colId' to identify columns.
  • Major: api.ensureColIndexVisible(index) replace with api.ensureColumnVisible(colKey)
  • Major: Focused cell not longer has attribute colIndex, instead has attribute colId.
  • Major: Movable columns via dragging the column header.
  • Major Build Changes:
    • 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

  • Minor: New event rowGroupOpened, for when row groups are opened / closed.
  • Minor: Bug fix - pinning was not saved during columnApi.getState()
  • Minor: Added 'typings' to package.json, so TypeScript can pick up typings from node module
  • Minor: groupDefaultExpanded must be number (used to be number or boolean). Set to -1 instead of 'true' for same effect.
  • Minor: addVirtualRowListener - now takes an event type and a function, so has similar pattern to normal event listeners.
  • Minor: New method 'destroy' added to custom filters. If you need to do cleanup, put it in the destroy method.
  • Minor: Took out 'agGridGlobalFunc()', should use ag.grid.Grid() instead.
  • Version 3.1.2

  • Minor: New column API methods: getLeftDisplayedColumnGroups(), getCenterDisplayedColumnGroups(), getRightDisplayedColumnGroups(), getAllDisplayedColumnGroups()
  • Version 3.1.1

  • Minor: Added 'columnSeparator' to CSV Export
  • Minor: Added starting character of '\ufeff' to CSV Export (for Excel compatibility)
  • Minor: Bug fix - gridOptions.isEnableSorting && colDef.suppressSorting were not used in 3.1.0, fixed.
  • Version 3.1.0

  • Minor: New allColumns property for export to csv
  • Minor: API method deselectNode() now takes 'suppressEvents' parameter.
  • Minor: Now colDef.field can had deep references, eg colDef.field = 'owner.firstName'
  • Minor: New event gridSizeChanged, gets fired when grid changes size, due to window resize or other application state change. Useful if you want to lay out the grid, eg call api.sizeColumnsToFit()
  • Minor: Bug fix - since v3 columnDefs was mandatory and threw error if missing. Is now optional again.
  • Major: Implemented auto-size for column. Now columns can be told to fit their content.
  • Minor: New property: suppressParentsInRowNodes - if you don't want parents in the row node tree structure.
  • Minor: Fixed up placement of menu icon, it was hitting the header border.
  • Major: Rows can have variable heights with new getRowHeight() callback.
  • Minor: bugfix - setColState was not restoring 'visible' correctly
  • Minor: New APi - columnApi.resetState()
  • Major: Implemented column header templates
  • 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

  • Minor: Updated AngularJS 2 to version Beta 0. Example updated to show changes.
  • Version 2.3.5

  • Minor: Overlays can now be disabled via new properties suppressLoadingOverlay and suppressNoRowsOverlay.
  • Version 2.3.4

  • Bug fix: Template cache now working with IE9
  • Bug fix: forEachNodeAfterFilter and forEachNodeAfterFilterAndSort were not working properly when grouping.
  • Minor: Now set filter can take a comparator.
  • Bug fix: Was not possible to add event listeners or set attributes to virtual elements after binding. This is now possible.
  • Version 2.3.3

  • Bug fix: Setting rowBuffer to zero did not work.
  • Bug fix: Export to csv was not managing large exports.
  • Minor: Moved Angular 2 examples to alpha 44.
  • Version 2.3.2

  • Bug fix: 'no rows' overlay was blocking column headers, so if showing, couldn't change filter.
  • Version 2.3.1

  • Bug fix: Angular 2 - EventEmitter for rowDeselected was missing.
  • Major: Added getBusinessKeyForNode() method, to allow easily identifying of rows for automated testing.
  • Minor: Removed declaration of 'module' and 'exports' in main.ts, so no longer clashes with node.ts typics.
  • Minor: Fixed headerClass, array of classes was not working
  • Version 2.3.0

  • Major - Introduced 'no rows' message for when grid is empty.
  • Major - Introduced custom overlays for 'no rows' and 'loading', so now they can be what you like.
  • Major - Moved to AngularJS 2 alpha 38.
  • Major - Took out auto loading of AngularJS 2 module with JSPM.
  • Minor - Exposed global function for initialising Angular 1.x, to use if Angular not available on the global scope, eg using JSPM
  • Minor - Bugfix - rowRenderer was not working when useEntireRow=true
  • Version 2.2.0

  • Major - Implemented 'destroy' API method, to release grids resources. Needed for Web Components and native Javascript (AngularJS lifecycle manages this for you).
  • Major - Column resize events now have 'finished' flag, so if resizing, you know which event from a stream of 'dragging' events is the final one.
  • Major - New event: rowDeselected.
  • Major - Now have 'customHeader' and 'customFooter' for export to csv.
  • Minor - Now filters are positioned relative to their actual size instead of assuming each filter is 200px wide. Now wide filters don't fall off the edge of the grid.
  • Minor - Bug fix #459 - getTopLevelNodes was called for not reason during filter initialisation which resulted in 'undefined' error for server side filtering
  • Version 2.1.3

  • Minor - Added header to Typescript definitions file and included in Definitely Typed
  • Minor - Removed unused 'require' from agList - was conflicting when require defined elsewhere

  • 23rd Sep ag-Grid 2.0 released - AngularJS 2 and Web Components supported


    13th Sep First pass on AngularJS 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.