All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.
4.12.7 (2024-04-12)
- core: remove upper limit for AngularJs (5517031)
4.12.6 (2024-04-12)
- cellnav: remove unused inputs (9f0ddb2)
4.12.5 (2024-04-11)
- core: make scrollToIfNecessary bottom scroll work with bottom pixel of the row. (c8405a7)
4.12.4 (2023-08-17)
- 🐛 update the index accordingly when modifying existing rows (945d4f8)
4.12.3 (2023-08-01)
- 🐛 added unit testing for lastRowCol in cellNav and loadData (3061ab2)
- 🐛 don't call needLoadMoreData on last row with cellNav (5200747)
4.12.2 (2023-01-23)
4.12.1 (2023-01-19)
4.12.0 (2023-01-12)
- pinning: blank space between pinnedRight column and the last unpinned column (7687192), closes #4949 #6284
- exporter: add export type in format method (#7223) (4c36808)
- 🎸 option to disable GridMenu close on scrolling (6d3f006)
4.11.1 (2022-02-23)
- clear selection function (f616137)
- Find or Select by Row Entity's 'ID' (7a0a6c6)
- exchanged filter() with every() (583940f)
- i18n: complete ru locale (8d2caee)
- resize-columns: width gets adjusted so that ellipses aren't shown (7851ff8)
4.11.0 (2021-08-12)
- 🎸 option to disable multi-column sorting (c9abb8b), closes #2913
- 🎸 the ability to disable hide columns on a grid level (2dd1688), closes #1604
4.10.3 (2021-08-01)
- 🐛 address linting issues and unit test failures (a9cf59f)
- export filter with time part ('date:"MM-dd-YYYY HH:mm'). (29d4803)
- error when entering *+ combination in the column filter (1201ad2)
- Missing german translation for selection and validate (3ff57e0)
- canvas now has a minimum height of 1px, which renders it even if it has no data (07c26d5)
- adjustColumns now calculates the colIndex instead of guessing it scrollpercentage (ed76f02)
4.10.2 (2021-06-14)
- 🐛 add missing translations for es, fr, it and pt (051b182)
- 🐛 improve accessibility in the grid menus and selection (e5ae7c0)
- core: use allowFloatWidth property to allow float calculations for width (bb28b2f)
- core: use allowFloatWidth property to allow float calculations for width (f4d3e22)
4.10.1 (2021-05-28)
- 🐛 ensure select all checkbox is announced correctly (3b478fa)
- 🐛 remove extra $applyAsync from header-cell (f9a84ff)
- clearSelectedRows should respect enableSelection (fcad35c)
4.10.0 (2021-02-01)
- 🎸 add 'aria-expanded' to expand buttons for accessibility (2677f67)
- Revert "chore: update changelog" and "chore: Release v4.9.2" (3a4a27f)
4.9.1 (2020-10-26)
- core: update rtl support function to fix rtl support (75580b8), closes #7126
- exporter: pass both tree parent nodes and children nodes when exporting (3a5ac8a), closes #7127 #6819
4.9.0 (2020-09-27)
- edit: fixing firefox number edit (b58f78d), closes #6953
- core: replace missing string with empty string (f7d48ee), closes #7063
- Revert "Revert "Update ui-grid-column-resizer.js"" (fe09d9b)
- Revert "Update ui-grid-column-resizer.js" (88191a0)
- MISSING string will no longer be displayed.
4.8.5 (2020-09-14)
- all: Add support for angular 1.8.0
4.8.4 (2020-09-14)
- core: update remove method as it was throwing error.. (#7060) (9f58abd)
- grouping: adds aggregationLabel to aggregateColumn call to match (60fcedc)
4.8.3 (2019-10-21)
- a11y: keyboard navigation changes of expand and selection buttons (#7048) (9854f69)
- exporter: remove extra double quotes in excel export (29c4fb1)
4.8.2 (2019-10-07)
- core: scrollToIfNecessary not properly including rowHeight on downward scrolls (7a0e1dc)
- scrolling: column footers misaligned with data #6909 (74f9107)
- change Safari support to 12 - 13 (6b0f21a)
4.8.1 (2019-06-27)
- core: change translation in in i18n nl.js for clearAllFilters (06c3d36)
- core: support jQlite (78e44f9)
- handle rejection on timeout to avoid angularjs error message about possibly unhandled rejection (635410c)
- i18n: improve Swedish translations (2d3abfa)
- i18n: translate clearAllFilters correctly in Swedish (0fad621)
- ui-grid: #6937 fix linter error (13bb9c0)
- ui-grid: #6937 getScrollBarWidth for Firefox (6aee591)
4.8.0 (2019-05-02)
- exporter: remove unnecessary dependencies (c354e27)
- i18n: add ru excel export values + fix clearAllFilters typo (83b2aa1), closes #6841
- less: improve less compilation (2ab139e)
- ui-grid-site: upgrade bootstrap to version 3.4.1 (a125627)
- filterChanged: pass the changed column as first argument to filterChanged function (13eacc3), closes #4775
4.7.1 (2019-02-06)
- selection: fix row.setSelected is not a function issue (eb98748)
- ui-grid.js: prevent build from duplicating files during concat (eb98748)
4.7.0 (2019-02-01)
- exporter: add missing dependencies (a86eb0e)
- grouping.js: fix typo in description (4597c69)
- less: update less file references (47c1239)
- selection: prevent cell to be selected when user scroll (a537f0c)
- selection: take in care about time touched properly (0dbdafe)
- uiGridColumMenu: Add missing promise catch handlers for focus.bySelector calls (de57fdc)
- uiGridColumMenu: Check column visibility before trying to focus it in the menu-hidden callback (3a8e87b)
- uiGridColumMenu: Check for menu item visibility before trying to focus the first visible menu item (3085417)
- css: add feature based CSS files (9e1c042)
- filter: add filterContainer option to allow a column filter to be placed in column menu (bdb832a), closes #3989
- less: feature less files have been moved to the root of the less folder.
4.6.5 (2018-11-16)
- customizer: fix customizer (ee5f27d), closes #6834
- rowSorter.js: wrap rowSortFn while innards in function to prevent issue with webpack compress. (21fa2af)
- sort: add an extra check for sort data (045b77c)
- sv.js: Added missing Swedish translations (6dfbad3)
4.6.4 (2018-10-30)
- exporter: Allow csv export for object field type (#6870) (24d4224)
- grouping: respect customTreeAggregationFn on grouped columns (#6868) (e2a7310), closes #6402
- treeBase: allow setting row.$$treeLevel to undefined (#6867) (3057b46), closes #5548
4.6.3 (2018-08-04)
- fonts: changed space endings on font files (ed8ebba), closes #6809
- header: Change grid header css to flexbox (f9ac3e5), closes #6799 #2592
- less: create a core.less file for import (6866583), closes #4659
- less: remove bootstrap dependency (a480900), closes #4173 #5435
- tree-base: agg: remove now works (4a37231), closes #5682
4.6.2 (2018-07-09)
- ui-grid.core: Remove unnecessary code. (cfec75c)
4.6.1 (2018-07-05)
- exporter: Handle filters with 3 arguments (3207b29), closes #6784
- exporter: exporterExcelCustomFormatter should return the unmodified docDefinition (7fc39ad), closes #6774 #6774
- i18n: Fix Japanese translation. (#6781) (9ab0a4c)
- selection: Fix multiSelect + modifierKeysToMultiSelect (2bc8c7b), closes #6793 #6791
- selection: Remove focus rows styles. (a8480a2), closes #6782
- validate: missing getErrorMessages method (588c868)
- ui-grid.info: Clean up API documentation. (a535bea)
- ui-grid.info: Added missing documentation. (71c3db8)
4.6.0 (2018-06-21)
- gridContainer: Revert body container id to previous. (981e9e2), closes #6096
- selection: Selected row style only applied to left container (ab31e0b)
- uiGridHeaderCell: Remove unncessary space (5ea8e54)
- scrollThreshold: Add missing documentation details. (cc0fdb7)
- es-ct: Add catalan translations. (f482800), closes #5536
- rs-lat: Added Serbian translations. (da57ad1)
- i18n: Add fallback lang support (0e47f10), closes #6396
- horizontalScrollThreshold: Removed horizontalScrollThreshold as it is not being used by the grid.
- i18n: getSafeText() will now return [MISSING] + the path to the missing property or the fallback value if the property is available on the fallback language.
4.5.1 (2018-06-18)
4.5.0 (2018-06-15)
- fonts: Change font files path. (1bd060c), closes #3751
- i18n: Add missing Danish pinning translations #6731 (c14def4)
- i18n: Add missing sk translations. (2d6907f)
- selection, expandable: Add pointer cursor css (faf332e)
- ui-grid-menu-button.js: Click on the menu button item checkbox … (#6738) (c0d27d1)
- ui-grid.core: Address resizing issues. (767e022)
- expandable: Enhance the expandable grid feature. (ec13255)
- selection: Enhance the selection feature (2485652)
- fonts: If you take the new CSS and do not relocate the icon files, your icons will likely cease to show in the grid.
4.4.11 (2018-05-16)
- angular.js: Support Angular 1.7. (8c6cb51)
4.4.10 (2018-05-15)
- ui-grid-menu-button.js: Change "Columns:" item to a heading. (85ad462)
- ui-grid-util.js: Replace angular.uppercase and .lowercase with String.toUpperCase and .toLowerC (a41677a), closes #6715
4.4.9 (2018-04-30)
- exporter.js: Eliminate selection column. Add export scale factor for excel and fonts (d96f43d)
- cellnav.js: Do not trigger edit on undefined event. (615fe49)
- Grid.js: Use scrollbarHeight instead of scrollbarWidth for vertical scroll calculations. (1b01490), closes #6653
- selection.js:
- tree-base.js:
- ui-i18n.js: Allow replacing/customizing specific existing locale strings when using add. (d6d820f)
- exporter.js:
- Grid.js: ScrollIfNecessary does not account for scrollWidth correctly (16826bf1)
- i18n: Add missing portuguese translations. (25fdb473)
- uiGridRenderContainer.html: Prevent duplicate ids in the grid for ADA compliance. (ecf07c6f)
- Grid.js: ScrollIfNecessary will not scroll if percentage has not changed. (7ed11ecb)
- exporter.js: Exporter will respect headerCellFilter and cellFilter. (4c632391)
- footer.less: Footer column width now matches header column width. (3134f77b)
- ui-grid-menu-button.js: Replace show/hide buttons with a single toggle button. (a6a26d99)
- ui-grid-menu.js: Give bySelector correct parent. (1972dcc2)
- ui-grid.js: gridOptions.data string value now works again. (c62b986d)
- Grid.js: scrollToIfNecessary can scroll to last row. (87c9eed3)
- expandable.js: Update expandedAll attribute when toggling rows. (1b080b91)
- footer.less: Empty footer cells now take the full available height. (#6630) (dbe3ecd3)
- gridClassFactory.js: Move priority to correct spot. (842a9b77)
- gridEdit.js: Move deregister events until event conclusion. (214f6cc4)
- pagination.less: Correct style pagination in footer info panel. (5ca555a8)
- selection.js: When enableSelection is false, row cannot be toggled. (33260602)
- tree-base.js: Stop event propagation on click of the row header. (c2824d5c)
- ui-grid-render-container: Use offsetHeight to avoid sizing issues. (9927b711)
- ui-grid.js: Ignore scrollbar height prior to checking if autoAdjustHeight is needed. (f9971a5d)
- Grid.js: Select All button should be disabled when no data is present. (08ec049a)
- column-resizer: Disable text selection while resizing columns. (2cf3e02a)
- filter: Filter input fits in column without bootstrap (a63e1f1a)
- pagination.less: Pagination footer no longer overlaps last row. (713d3ea9)
- selection:
- styles: Removed div. from LESS files. (5a7dabd6)
- ui-grid-column-menu.js: Added keyboard navigation to column menu (#6629) (df429208)
- GridColumn: Respect minimumColumnSize when a valid minWidth is not present (89c43ef3)
- pagination.html: Limits pagination page number to integers only (d7eca115)
- selection.js: enableFullRowSelection allows enableRowHeaderSelection. (f77a5b3f)
- ui-grid-column-menu.js: Focus on first item in column menu on open. (43b313fc)
- ui-grid-util.js: Comment out log statement. (6b127e2d)
- GridRenderContainer.js: needsHScrollbarPlaceholder accounts for WHEN_NEEDED (403bf3ee)
- i18n: change some strings in de.js due to typos (9ebe1168)
- 122_accessibility.ngdoc: Update angular-aria version. (faa17fba)
- pagination.less: Remove unnecessary underline from pagination styles. (f3a4086d)
- ui-grid.core.js: Add missing i18nService to ui-grid.core.js (06f53d91)
- concat.js: Rename ui-grid.base.js to ui-grid.core.js. (18c5ffb8)
- i18n: Separate language files from ui-grid.base.js (1342f803)
- ui-grid.base.js has been rename to ui-grid.core.js. Also, ui-grid.core.js no longer contains most of the language files available to UI-Grid. It only contains english as that is the default language of the grid. See tutorials for examples. (18c5ffb8)
- release: Released UI-Grid to NPM and bower (e90a837)
- build: Remove Safari 7 from tests and switch $digest to "$apply" to add $$hashKey to da (323fa956)
- menus:
- selection.js: Allow selection to work with grouping. (b21096b2)
- utils.js: Remove IE9 from supported browsers list. (f14da2fc, closes #2273, #2552, #3593, #3854, #4439)
- GridRenderContainer: Added WHEN_NEEDED option back to ui-grid. (1c1ea72e)
- uglify/concat: Publish multiple files separated by features. (6d26274)
- IE9 and Safari 7 are no longer officially supported.
Closes #2273, #2552, #3593, #3854, #4439 (f14da2fc)
- uiGridAutoResize: Asking for grid $elm sizing in a digest loop always triggers
refresh
, not cond (835153ce, closes #6561)
- expandAllButton: Add ability to hide expand all button. (343d7116)
- exporter: Fix bug where selection column width was included (d6aeb166)
- importer.js: Remove unnecessary on destroy event. (497a554b)
- selection.js: Allow selection in tables that use grouping (#6556) (f3d2a7f1)
- ui-grid-header-cell: Improved styles with grid menu. (c6b8d3bc)
- i18n: Add Arabic translation (#6551) (24be1fb6)
- gridEdit: Fixing scrollToFocus issues. (cc8144ca)
- GridRenderContainer: Fixing scrollbar styles. (c36be957)
- gridEdit: Fixing issues with focus and grid edit. (924cd9b4)
- importer: Fix console error on opening grid menu. (01dee3c5)
- menus: Switching applyAsync for timeout. (136335fc)
- build: Fixing build failure due to poor updates. (9382312d)
- cellnav: Replace $timeout with $applyAsync. (be18d09e)
- docs: Fix broken docs. (10c3100)
- edit: Replace $timeout with $applyAsync. (2d409557)
- infinite-scroll: Replace $timeout with $applyAsync. (30af7e9b)
- lang: Update Polish translations. (2999817)
- move-columns: Replace $timeout with $applyAsync. (f77df14c)
- resize-columns: Replace $timeout with $applyAsync. (b77ddc36)
- tutorial: Updating some tutorial examples. (804fce72)
- protractor: Improving reliability of protractor tests and ensuring they can run at a basic l (44396d22)
- uiGridAutoResize: Changed [0].clientHeight to gridUtil.elementHe… (#6490) (fef9552e)
- GridRenderContainer.js: Fix bug of space to the right of the last column (#6371) (a2f2fd5)
- ui-grid.html: Fix bug with template for last row's bottom border (#4413) (faa8ece)
- tutorial: Replacing .success with .then due to angular upgrade. (07cbe8a8)
- ui-grid.info: Updating ui-grid.info to support angular 1.6.7 (99819cc2)
- exporter:
- chore: Support Angular 1.6. (56d3c5f)
- sorting: fixed the priority computing when unsorting using column menu action (#6427) (97e0ffa5)
- uiGridAutoResize: Replaced timeout checker with watcher (#6470) (262dbdc8)
- uiGridHeader: stop preserving explicit header heights when styles are rebuilt. (#3705) (76e18d6)
- uiGridGroupPanel: Cleaning up dead code. (#4059) (ded2c12)
- Excel export: Adds ability to export as Excel with the help of Excel-builder. (dc7d773)
- hidePin: Added option to hide pinLeft or pinRight from pinning menu (#6334) (145e3662)
- tree-view: Supports recursive expanding (48434903)
- selection: Adjust bug in checkbox for selection. (#6459) (adfc83c)
- exporterAllDataFn: exporterAllDataFn results is no longer ignored. (#6163) (f16cdb0)
- resizing: Fix zero delta on double click resizing. (#5362) (8dd0359)
- tree-view: Supports recursive expanding (4843490)
- hidePin: Added option to hide pined containers from pinning menu. (145e366)
- ARIA-Roles: Improving accessibility of ui-grid. (#6341) (6cf44b4b)
- Grid.js:
- core: Fixes URL-based template loading for
header-cell
,footer-cell
,filter
. (f0b2fa7d) - edit: trigger edit when single click when set enableCellEditOnFocus with true (bcbd8433)
- pagination: remove unneeded height adjustment (4c667e72)
- selection: Prevent space bar scrolling (#6410) (7dbf3955)
- utils.js: Update browser setting based on changes to SauceLabs. (0cdf4e93)
- build: Cope with tags not conforming to semver format when building. (#6376) (1248e5a3)
- i18n: Fixed i18n typo in German language (#6262) (02a6a68d)
- rowEdit: cancel rowEditSaveTimer on flushDirtyRows - may cause double row save (6711c725)
- scrollEvent: Prevent scrollEvent when scroll percentage is greater then 1. (#6241) (43ffebba)
- ui-grid.info:
- cellnav.js: trim text of DOM element before checking (84ea8fa)
- gridEdit.js: verify that the keyCode is greater than zero (5ccd7f3)
- Grid.js:
- ui-grid-menu: Menu Items's title can now be a function. (df10da9)
- selection.less: Focus on selection mark of unselected rows was hardly visible. (d1aee28)
- cellnav:
- gridEdit: Pass triggerEvent to cellEditableCondition fn call (219ea716)
- Menu Items's title should now be a function (df10da91)
- 5007:
- 6160: Select childrens of row group (#6167) (21819c57)
- build:
- protractor: Fixing npm so protractor can be installed and run locally. (724df352)
- shell.js: Adding windows support. (5e438643)
- sort: Fixing sorting priority aria-label (a364886f)
- saveState: change restore() to return Promise created by refresh() (#6178) (f380055b)
- sorting: Default sorting (e629bc69)
- 5007:
- 6160: Select childrens of row group (#6167) (21819c57)
- build:
- protractor: Fixing npm so protractor can be installed and run locally. (724df352)
- shell.js: Adding windows support. (5e438643)
- sort: Fixing sorting priority aria-label (a364886f)
- ui-grid-menu.js: Removed log debug statement (#5388) (7efe5304)
- saveState: change restore() to return Promise created by refresh() (#6178) (f380055b)
- sorting: Default sorting (e629bc69)
- 6123: Allowing selection and tree-base to build columns. (2ea9a06e)
- flatEntityAccess: getCellDisplayValue now returns the correct value. (ba77c875)
- japanese: Update japanese translation. (47e78d1), closes #6089
- 6061: Translated missing resources to Norwegian in no.js (c6b0592d)
- Grid: Add missing promise wait in refresh(). (#5934) (e23a2af3)
- Grid.js: Reducing amount of digests cycles triggered. (205a2151)
- Grid.refresh: Refreshing canvas after processing. (e6ab96bb)
- SauceLabs: Updating Sauce Labs scripts per suggestion. (ccd0bef3)
- gridMenu: Fixing gridMenu undefined error. (2f5ac879)
- enableColumnResizing: enableColumnResizing accumulates watchers with each table $digest cycle (#5933) (954bebad)
- ui-grid-util: Reducing amount of digests triggered by ui-grid-util. (1f116fe8)
- uiGridDirective: Reducing digest cycles and improving coverage. (56f0dc11)
- themes: Adding a new paper theme to the customizer tool and more features to that grid. (30f64925)
- bower and npm: Fixing bower.json and package.json configuration. (84b4f328)
- memory_leaks: Ensuring events get unbound when grid is destroyed. (#5913) (da942e90)
- modifyRows: modifyRows uses the new entity when using enableRowHashing (138d1499)
- core: expose GridMenuTemplate (5f15eab5)
- core: Adding back digest triggers when using $timeout (d8820874)
- Fix for dropdown losing focus when using scrollToFocus from another editfield (02110029)
- 5515: Fix validation documentation (b017d7f0)
- cellnav: when grid has only one focusable column, should navigate up and down (d3801bad)
- core: Do not clear condition when clearing all filters (97be89a2, closes #4657)
- edit: fix boolean edit issue on Firefox and Safari on macOS (2059db95)
- fonts: Ensuring that fonts are added to the ui-grid package. (#5844) (8096ed04)
- infinite-scroll: Remove returns of adjustInfiniteScrollPosition. (156665f7)
- pagination:
- Scrolling: Adding support for a custom scroller. (#5859) (3c6fcb44)
- core: Reduce digest triggers when using $timeout (7e25a9b1)
- emptyBaseLayer: made emptyBaseLayer module to create grid background (852f6993)
- pagination: Add custom pagination with variable page sizes (50880578)
- UI Grid is no longer compatible with angular versions below 1.4 (4341af5e)
- #5667 honor editModelField when checking new vs old cell value (d846c5b1)
- use grid headerHeight instead of random 30px value for menu height calculation (5a67dd82)
- prevent hidden columns triggering unnecessary re-order (8413d8e3)
- update bower.json and package.json to include files for current npm (6e2331b7)
- Wrong sort priorities 4653 and 4196 (17296cdc)
- 3901: Raise rowsVisibleChanged on setVisibleRows. (801042b9)
- col-movable: prevent hidden columns triggering unnecessary re-order event (644b324b)
- columnMoving: handle touch events properly when jQuery is used (#5666) (a81e5d5e)
- filter: Fix noTerm option for filtering (45bb113a)
- selection: remove a logic bug in setSelected(..) (57cdb31b)
- core: Allow binding a column to the row entity itself (65e49fd5)
- filter: Add rawTerm option to columnDef filter options (a75e65a6)
- #5667 honor editModelField when checking new vs old cell value (d846c5b1)
- Wrong sort priorities 4653 and 4196 (17296cdc)
- columnMoving: handle touch events properly when jQuery is used (#5666) (a81e5d5e)
- filter: Fix noTerm option for filtering (45bb113a)
- core: Allow binding a column to the row entity itself (65e49fd5)
- #5667 honor editModelField when checking new vs old cell value (d846c5b1)
- Wrong sort priorities 4653 and 4196 (17296cdc)
- columnMoving: handle touch events properly when jQuery is used (#5666) (a81e5d5e)
- filter: Fix noTerm option for filtering (45bb113a)
- runValidators: runValidators now returns a promise(..) (f3bf313)
- core: Allow binding a column to the row entity itself (65e49fd5)
- use grid headerHeight instead of random 30px value for menu height calculation (5a67dd82)
- prevent hidden columns triggering unnecessary re-order (8413d8e3)
- update bower.json and package.json to include files for current npm (6e2331b7)
- col-movable: prevent hidden columns triggering unnecessary re-order event (644b324b)
- selection: remove a logic bug in setSelected(..) (57cdb31b)
- update for package.json creation for npm
- update bower.json and package.json to include files for current npm (f7c6700d)
- col-movable: prevent hidden columns triggering unnecessary re-order event (644b324b)
- col-movable: prevent hidden columns triggering unnecessary re-order event (644b324b)
- col-movable: prevent hidden columns triggering unnecessary re-order event (644b324b)
- Incorrect scroll percentage calculation in scrollHorizontal method (f075dcbe)
- Introduce gridDimensionChanged event (40ec65c0, closes #5090)
- cellNav: notifyText incorrect if cellFilter had string literal parameter (#5404) (08a9b687)
- core:
- add row headers in order (572766de)
- sort priorities were not displaying when 2nd sort was added (47c77de4)
- add false flag to $timeout and $interval to prevent $apply Nice increase in scro (4ba28205)
- Sort Priority Zero Based (62dbcfe9, closes #4685)
- correct filter detection in autoAdjustHeight (31c8e9e8)
- expandable: Stop adding Expandable column and behavior if feature is disabled (0bb1208c)
- exporter:
- filter: Custom Filter fix (#4012) (d6d00c21)
- getTemplate: Updated custom templates as promises condition (#5311) (01cdfe41)
- i18n: Add japanese translation (805c8805)
- infinitescroll: make sure more data is always loaded if scrolled to top/bottom quickly (#5183) (49536222)
- saveState: - Allow saving of pagination state (c6d3b2a1, closes #4146)
- util: deltaMode being set to 0 (#5155) (8e5d4c4d)
- expandable: Add 'expandRow', 'collapseRow' and 'getExpandedRows' (005ca6a5)
- It is possible that your application will show row headers in a different order after this change. If you are adding rowHeaders, use the new order parameter in grid.addRowHeader(colDef, order) to specify where you want the header column. (572766de)
- GridOptions.columnDef.sort.priority now expects the lowest value
to be 0.
The Grid Header will display a sort priority of 0 as 1.
Using
if(col.sort.priority)
to determine if a column is sorted is no longer valid as0 == false
. Saved grid objects may be affected by this. (62dbcfe9)
- core:
- i18n: Add japanese translation (805c8805)
- saveState: - Allow saving of pagination state (c6d3b2a1, closes #4146)
- expandable: Add 'expandRow', 'collapseRow' and 'getExpandedRows' (005ca6a5)
- GridOptions.columnDef.sort.priority now expects the lowest value
to be 0.
The Grid Header will display a sort priority of 0 as 1.
Using
if(col.sort.priority)
to determine if a column is sorted is no longer valid as0 == false
. Saved grid objects may be affected by this. (62dbcfe9)
- core:
- edit: Change setViewValue to use a fromCharCode based on evt.which (f4054b79)
- grid: adjust grid height when initial height is equal to row height (33b4d6d2)
- grouping: When 'field' in columnDef is referred to some javascript object than a primitive (d6320636)
- move-columns: Fix #3448 - The issue is caused by setting a left position to moving element rel (ab0dc113)
- uiGrid: Fix race condition in data watcher (b22681a3, closes #4532)
- edit: add a function to retrieve dropdown options (480927ff)
- i18n:
- sort: sort priority indicator hiding (7725eac3)
- Header: Use IE9 condcom to fix header sizing (a549eaa7, closes #3854) (REVERTED #4417)
- core:
- infinite-scroll: load more data if needed (65a541f3)
- pagination: fix pager select not showing 3 digits on some browsers (b183fc79)
- selection:
- core:
- i18n: completes nl translation (b7326d81)
- sort: Give more information to the sort functions (0e094c97)
- gridUtil: Fixes gridUtil.off.mousewheel event handler (4057c64d)
- infiniteScroll: Fixes infinitescroll scrolling
- moveColumns: Restore column order after altering columnDefs array. (2d433bb)
- pinnedColums: Included pinned columns in export of visibile data. (0b37bc4), closes (#3888)
- cellNav: Error when field defined with number (5b74559f, closes #4258)
- columns: don't reset resized columns on data reset by default (bda48aab, closes #4005)
- core:
- customizer: Fixes less customizer in docs (f739d9fd, closes #4079, #3918)
- edit: fixes #4129 by only adding edit listener events when needed because of 'track by (e6bc3009)
- expandable: fix #4156 by calling stopProp on subgrid scroll (a7dd337a)
- less: Makes less bootstrap dir a variable (654c75f9, closes #3368)
- pagination: avoid initial double firing of
paginationChanged
(1407038b)
- core:
- i18n: Completes zh-cn translation. (0ad28408)
- build: Fixes Grunt Task not Publishing (7571028d)
- flushDirtyRows will not throw an error when no dirty rows (d46d04ca)
- Build:
- Grid: Allow >45k row identities (d533200f)
- cellNav: cellNav not getting attached to left container if it is built after body is rend (36f386f4)
- core:
- edit:
- cellNav: Accessibility Support to Cell Nav (9532de2b, closes #3896)
- core:
- edit: raise beginCellEdit in timeout allows complex editors time to render so they can (6b5807fe)
- gridUtil: Focus helper functions (94e50a53)
- i18n:
- pagination: Accessibiliy & Keyboard Support to Pagination Controls (ee04132a)
- Grid: Force scroll to 100% when necessary (3bcbe72d, closes #3772)
- Tests: All e2e tests working in Firefox (b9cc39f1)
- core:
- edit: fix lost focus and cell scrolling into view on edit (e9a6d4eb)
- grouping: grouping a pinned column was broken (acb7e7b6)
- i18n: Replace ZWNJ with \u200c in Persian (2f2936ae, closes #3842)
- Edit: Allow COL_FIELD in editable templates (fa9066b2)
- Selection: Prevent IE from selecting text (a1bbc0c5, closes #3392)
- cellNav:
- #3528 handle focus into grid from other controls (92477c7a)
- IE was scrolling the viewPort to the end when the focuser div received focus. S (aa563554)
- focuser element should not have width or height or else the window will scroll t (6997d2b7)
- was processing left and right renderContainers where there is no need fix(edit): (6f5d503d)
- add an empty element to focus on instead of focusing on the viewport (6937d4d5)
- edit:
- #3128 remove grid scrollbars when in deepedit to prevent any scrolling of parent (91077e82)
- deep edit keydown logic wasn't right (9e995e9e)
- tweak the deep edit keydown logic so that Enter and Tab stops editing (fbc38cb1)
- #3742 dropdown was not calling out to cellNav for cellNav keys. also refactored (2edc4d66)
- Edit events were being attached in gridCell directive even if edit was not enabl (13ab0945)
- gridEdit:
- gridUtil: rtlScrollType using wrong method (15ee480e, closes #3637)
- moveColumn: account for width of left container when positioning moving column header. (06f223bb, closes #3417, #3395)
- saveState: Saving state was storing rowHeader columns, causing issues on restore. (c9ce96af)
- treeBase: Change calculation of number of levels in tree (26ca6215)
- uiGrid:
- uiGridColumns: Fix auto-incrementing of column names (a10f1414)
- uiGridHeader:
- grouping: Add option groupingNullLabel, to group null and undefined values together. (9fbb1b87, closes #3271)
- Expandable: Run with lower priority than ngIf (949013c3, closes #2804)
- RTL:
- cellNav: fix null ref issue in navigate event for oldRowColumn scrollTo should not setF (02b05cae)
- pinning: restore correct width state (4ffaaf26)
- scrolling: Fix for #3260 atTop/Bottom/Left/Right needed tweaking (89461bcb)
- selection:
- uiGrid:
- uiGridColumnMenu: Position relatively (9d918052, closes #2319)
- uiGridFooter: Watch for col change (1f9100de, closes #2686)
- uiGridHeader:
- saveState: add pinning to save state (b0d943a8)
- gridUtil will no longer calculate dimensions of hidden elements (e7dfb8c2)
- Two events are now emitted on scroll:
grid.api.core.ScrollBegin grid.api.core.ScrollEnd
Before: grid.api.core.ScrollEvent After: grid.api.core.ScrollBegin
ScrollToIfNecessary and ScrollTo moved from cellNav to core and grid removed from arguments Before: grid.api.cellNav.ScrollToIfNecessary(grid, gridRow, gridCol) grid.api.cellNav.ScrollTo(grid, rowEntity, colDef)
After: grid.api.core.ScrollToIfNecessary(gridRow, gridCol) grid.api.core.ScrollTo(rowEntity, colDef)
GridEdit/cellNav When using cellNav, a cell no longer receives focus. Instead the viewport always receives focus. This eliminated many bugs associated with scrolling and focus.
If you have a custom editor, you will no longer receive keyDown/Up events from the readonly cell. Use the cellNav api viewPortKeyDown to capture any needed keydown events. see GridEdit.js for an example (052c2321)
- Edit: Wrong arguments on scrollToIfNecessary (0fc6b21c)
- Filtering: Redraw grid properly when scrolled (4c32e3d7, closes #2557)
- Grid:
- Pinning: Move rowStyle() to uiGridViewport (09f478c2, closes #2821)
- Scrolling: Don't trap scroll at 100% down (78a4b433)
- cellNav: Allow tabbing out of grid (aabcd4da, closes #2339)
- uiGridHeader:
- uiGridRenderContainer:
-
Filtering: Let mobile devices tap filter box (01c22acf)
-
Grid:
-
GridColumn: Allow for duplicate field coldefs (82a72130, closes #2364)
-
GridRenderContainer: Redraw with scroll % (bc2c68ab, closes #2357)
-
Mobile:
-
Selection: Fix selection w/ row templates (b1a57b69)
-
Tests:
-
Tutorials: Point back to angular 1.2.26 (96625e2a)
-
cellNav: If cellNav api exists, turn on stuff (14264540, closes #2294) *refactor(cellNav) remove unused $scope parameter from api methods
-
uiGridHeaderCell:
-
uiGridRow:
-
edit: edit cell scope was not being destroyed when element was removed
-
gridApi add ability to pass _this variable in api.feature.on.eventName
- Grid encapsulate the renderContainer canvasHeight and GridRow.height properties Changes getCanvasHeight function to only recalculate all the row heights when needed. Adds a CanvasH eightChanged event to api.core
-
Core: Implementation for #2483. Adds a showGridFooter option that will create a grid (d0233601) * Adds a showGridFooter option that will create a grid footer with the Total Items and Shown Items displayed. Also shows Selected Items if using Selection feature.
-
cellnav: provide row option to disallow all cells from having focus (1bc05ebc)
-
uiGridRow: Allow dynamic row templates (a547a52e)
-
getExternalScopes() function is removed. Use grid.appScope instead. external-scopes attribute is removed. Use gridOptions.appScopeProvider to assign values other than $scope.$parent to appScope
-
removed scope parameter from grid.api.cellNav methods old: scrollTo($scope, rowEntity, colDef) scrollToFocus($scope, rowEntity, colDef) scrollToIfNecessary($scope, row, col) new: scrollTo(rowEntity, colDef) scrollToFocus(rowEntity, colDef) scrollToIfNecessary(row, col
-
scrollbars.WHEN_NEEDED no longer an option
-
showFooter option renamed to showColumnFooter; footerRowHeight option renamed to columnFooterHeight (d0233601)
-
On mobile devices the user will have to long-click to edit a cell instead of double-clicking (654e0ce8)
-
rowEdit: * remove grid from all method signatures
-
importer: * remove grid from importFile signature
-
core: * remove grid from notifyDataChange signature
- Builds: Switch to websockets to get SauceLabs tests running again
- Aggregation: Refactor introduced bug (a54c6639)
- Builds: Turn off Safari 5 for SL (3cf645ea)
- Edit: Remove leftover console.log() (3b707584)
- Header: Hidden header height misplacement (783fefbd, closes #1995)
- Pinning: Add left border for right container (e409c54b)
- RTL: Put filter cancel on left for RTL (0885e509, closes #2058)
- Tests: Accidentally left in a ddescribe (e6cf438a)
- cellNav: Don't setup when directive not there (9bfa6e3f, closes #2128)
- The
hideHeader
option has been changed toshowHeader
To migrate, change your code from the following:
hideHeader: true
To:
showHeader: false
(783fefbd)
- Edit: Retain "focus" in endEdit() (f3a45ef5)
- Filter: Watch running w/o change check (79f6c21a)
- Grid: Avoid too-early header height calc (a335b922)
- GridRenderContainer: Correct prevScroll* (1182b059)
- Selection: Change api for getSelectAllState() (5ffefafc, closes #2086)
- cellNav:
- gridUtil: Allow multiple logDebug params (c903ecc8)
- uiGrid:
- uiGridMenu: Only run applyHide when not shown (91bf06f2)
- bower: Use right angular version spec (6bd917a0)
- AutoResize: Redraw all of grid on resize. (1bb5367c, closes #1770)
- Importer: Account for older browsers properly (52823249)
- Customizer: Update column menu style (ffa80002)
- Grid: Fix a few mobile-browser issues (4bb2d699)
- Pinning: Fix pinning when col has dyanmic width (9e022bab, closes #1634)
- RTL: Unfixed .css() call post-jquery (8d31f6a1, closes #1620)
- Selection: Remove IE11 ellipsis in header (a8ac76c6)
- Site: Fix version select box height (d2699092)
- Tests: Date() usage failing on Safari 5 (6440d81c)
- Travis: Make travis run saucelabs tests (3bc3f272)
- grunt: Use correct version of grunt-jscs (e88600a0)
- uiGridCell: Use promises for tmpl processing (9fb29cce, closes #1712)
- uiGridHeader: Fix height calculations (cfc24442, closes #1639, #NaN)
- uiGridHeaderCell: Use hasClass() for IE9 (7923f229)
- uiGridMenu: Set box-sizing: content box (ee418f0d)
- uiGridUtil: getBorderSize() missing "width" (174f2521)
- cellTemplates: add MODEL_COL_FIELD to cellTemplate parsing so it can be used in ng-model #1633 (66f3404a)
- editableCellTemplates should use MODEL_COL_FIELD instead of COL_FIELD. #1633 MODEL_COL_FIELD variable was added to the cellTemplate and editCellTemplate for utilizing the bound field in ng-model. Edit feature was changed to use MODEL_COL_FIELD instead of COL_FIELD for consistency.
- typo (1272cf65)
- CHANGELOG: anchor tag for v2.0.7 was wrong (d0ecd310)
- column-resizing: 100% width/height not needed on ui-grid-cell-contents, just ui-grid-inner-cell-c (6912d14f)
- customizer: point to ui-grid-unstable.css at top of page (4892fbc4)
- grunt:
- less: header variables were in file twice (f93f675c)
- travis:
- ui-grid-body:
- uiGrid:
- uiGridCell: re-compile if template changes (7485e6ef)
- uiGridHeader:
- uiGridStyle:
s were being needlessly added (ade12ec9)
- AutoResize: Adding auto-resize feature. (d0bdd829)
- RTL: Adding RTL support and fixing virtualization (d5a9982d)
- Selection: Updates (b20c41c1)
- e2e: protractor testing of docs now works properly with 'grunt dev' (08787be4)
- filtering: Add row filtering (16161643)
- row-hashing: Add new row hashing feature (da87ff9a)
- rowSort: Added row sorting (ce330978)
- uiGridStyle: Added ui-grid-style directive (5687723f)
This release is mainly focused on fixing the grid layout/column widths:
- Removed border-left and border-right from columns. Now we are using vertical bars so if someone sets a width to be 400px for a column, the column will actually be 400px, not 401-402px due to the border. This caused the horizontal overflowing to happen producing a horizontal scrollbar. This also fixed issues like #411 where you would see columns not extend all the way to the edge and you would get double borders
- Percent calculation is handled before asterisks calculations because percent calculation should take higher priority, and the asterisks calculations will then be able to fill the remaining space instead of horizontally overflowing the viewport
A fix contributed by @swalters for #436:
When editing a cell, the ng-cell-has-focus directive will broadcast a message named ngGridEventStartCellEdit to let all children know that you can now give yourself focus. When the editable cell template is done with editing (usually on a blur event) you need to emit ngGridEventEndCellEdit to let ng-cell-has-focus know that you are done editing and it will then show the non-editable cell template. The reasoning for this is (good quote): "Now I can wrap my input elements in divs/spans, whatever and control exactly what element's blur triggers the end edit" - @swalters. An example (used for ng-input directive):
scope.$on('ngGridEventStartCellEdit', function () { elm.focus(); });
angular.element(elm).bind('blur', function () { scope.$emit('ngGridEventEndCellEdit'); });
Also, there is another option now which is enableCellEditOnFocus (yes, it's coming back) so now you can choose between excel-like editing or enabling edit mode on focus.
Also some fixes contributed by @ebbe-brandstrup are:
- Columns sized with * or % now expand / shrink as other * or %-based columns are hidden / shown
- Note: the changes auto-expand/shrink only take effect on-the-fly
- Works with grouping and when enabling the selection checkbox row (showSelectionCheckbox)
- Bugfixes in configureColumnWidths
- Re-ordered columns now keep their width setup
- Fixed "asteriskNum" so it no longer includes hidden columns (was checking .visible on a columnDefs column instead of the matching ngColumn)
- Fixed "totalWidth" so it no longer includes hidden columns when using px values for width (was checking .visible on a columnDefs column instead of the matching ngColumn)
- Fixed ngColumn width being initialized to undefined when using "auto" for width, regardless of "minWidth" settings (was checking .minWidth on a columnDefs column instead of the matching ngColumn)
Renamed "col" to "colDef" in configureColumnWidths() in the places where "col" was a column from "columnDefs". It made it clearer for me whether I was referring to a ngColumn or a column from columnDefs. There were a couple of bugs caused by that (col.visible incorrectly accessed on columnDefs objects instead of ngColumns, and the like).
- Bugfixes in ng-grid-flexible-height
- The plugin couldn't shrink the grid, only grow it
- Using domUtilityService.UpdateGridLayout instead of grid.refreshDomSizes which correctly grows the grid if it's been shrunk (e.g. when paging to the last page and it has few rows + the plugin has a smaller min. height than what's needed on the other pages)
Too many to list. Here is the pull request #511
-
Development
- Continuous integration testing with Travis CI. A few tests that were looking for pixel perfection had to be relaxed due to rendering differences between browsers and OSes.
- Moved this changelog to CHANGELOG.md!
- Added tests for i18n languages. Any new language must cover all the properties that the default language (English) has.
- CSS files compiling with less (24bb173)
- Added optional --browsers flag for test tasks.
grunt test --browsers=Chrome,Firefox,PhantomJS
will test in all 3 browsers at once.
-
Sorting
-
i18n
- Added Brazilian Portugeuse (thanks @dipold) (ab0f207)
- Allow column
displayName
to be an empty string. (#363, 46a992f) - Fix for
totalServerItems
not updating (#332, #369, fcfe316) - Fixed regression in 2.0.5 that used Array.forEach, which isn't supported in IE8. Moved to angular.forEach (e4b08a7)
- Fixed and added tests for wysiwyg-export plugin (57df36f)
- Fixed extraneous trailing comma (#449, 2c655c7)
- Cell editing - various attempts at fixing broken cell editing eventually resulted in using NgModelController (thanks @swalters). (#442, 050a1ba, 5c82f9b, 5c82f9b, f244363, ee2a5f1)
- Moving to $http for external template fetching. Should fix issues with grid rendering before templates are retrieved, as well as fetching the same template multiple times.
- Fixed bug that prevented the grid from maintaining row selections post-sort thanks to sum4me
- Fixing some more minor bugs
- Changed default multiSelect behavior, updating some plugins and making some more minor bugfixes.
- minor bugfixes, updating some plugins.
- Moved to grunt build system. No more international version; all languages are included by default. Fixed minor grouping display issue. Using $templateCache for templates instead of global namespace.
- Breaking Changes: see documentation (showSelectionBox, enableRowSelection, showFooter). Column Virtualization added. Row virtualization performance improved. Excel-like editing instead of enableFocusedCellEdit.
- Aggregates now display correctly. Added more option methods to select and group data (see wiki), Added column pinning.
- Fixes for multi-level grouping and adding the gridId to both the grid options and as argument to the "ngGridEventData" so you can identify what grid it came from.
- Major architectural changes which greatly improves performance. virtualizationThreshold now controlls when virtualization is force-enabled and is user-specified in options.
- Fixed bug with selections and multiple grids. New emit message for notifying when hitting bottom of viewport. Can disable virtualization. ng-grid virtualization is on by default, but can be disabled if there are less than 50 rows in the grid. Anything > 50 rows virtualization is forced on for performance considerations.
- BREAKING CHANGES: Will add examples. Adding cell selection, navigation, and edit on focus. Added programmatic selections. Improved scrolling. ngGridEvents changed/added: see wiki.
- Can now highlight/copy text in grid. Fixed multiple issues when using multiselect along with shift key. Refactored key events so now they are all in the same directive for viewport. Hovering over highlightable text will change cursors in viewport. Fixed #93.
- Merged changes to have two-way data-binding work in templates, so if you're using a celltemplate, you can now use COL_FIELD instead of row.getProperty(col.field). row.getProperty is still in the row class for accessing other row values.
- Adding ability to preselect rows. Can deselect when multiSelect:false. Bug fixes/merging pull requests. Bower now works. Can now sync external search with ng-grid internal search. Check out other examples on examples page.
- Adding i18n support and support for different angularjs interpolation symbols (requires building from source).
- Modifying the way we watch for array changes. Added groupable column definition option. Bugfixes for #58, #59.
- jslint reformat, minor bugfixes, performance improvements while keydown navigating, adding "use strict" to script.
- Massive improvements to search thanks to iNeedFat!
- Refactored and removed unneeded code. Added scope events.
- Improving template compilation and fixing jquery theme support. Improving comments on grid options.
- sortInfo can now be set to default sort the grid. Improvements to the beforeSelectionChange callback mechanism when multi-selecting.
- Improved template rendering when using external template files. columnDefs can now be a $scope object which can be push/pop/spliced. Fixed box model for cells and header cells.
- Improved aggregate grouping, minor bugfixes. Auto-width works!
- Changed default width behavior to use *s and added option to maintain column ratios while resizing
- Added layout plugin. Support for uri templates. Performance improvements.
- Major code refactoring, can now group-by using column menu, changes to build
- Built-in filtering support, numerous perfomance enhancements and minor code refactoring
- Added ability to specify property "paths" as fields and for grid options.
- Added Server-Side Paging support and minor bug fixes.
- Added ability to hide/show columns and various bug fixes/performance enhancements.
- Release