Skip to content

@ghiscoding ghiscoding released this Dec 21, 2019 · 33 commits to master since this release

Just in time for Xmas... Happy Holidays 🎅 ⛄️

Cell Menu & Context Menu

In this new version, I revamped the styling of the Column Picker and Grid Menu (and added a bunch of SASS variables) to align with the Header Menu, there's also a lot more Cypress E2E tests (nearly double). But most importantly this version brings 2 new Extensions, Cell Menu & Context Menu. I created them both at the same time (directly in the SlickGrid core library as plugins before using them in this lib), they are very similar in their look & feel and also on how to use them as well, however they do serve different purposes. The Cell Menu is more related to row actions (e.g. delete current row) while the Context Menu is all about actions for the entire grid (e.g. export to Excel).

The Cell Menu is most commonly used as an Action Menu and triggered by a cell click or touch (you could have 1 or more Cell Menu in a grid). On the other hand, a Context Menu (only 1 per grid and now enabled by default) is triggered by a mouse right+click and comes with a few built-in commands (copy cell, export & some grouping commands when grouping is available). Both of these extensions accept a list of Commands and/or Options, the Commands are of course to execute an action and the Options are more commonly used to change a value of the current row (it can only takes 1 array of Options).

To see it in action


Includes a small Breaking Change

The GraphQL Service changed slightly so that it can now be used without Pagination (the query will be different). To adapt to this change, the GraphqlResult interface got renamed to GraphqlPaginatedResult while the GraphqlResult interface is now used without page information. This basically mean that you can now disable Pagination (via enablePagination: false in the grid options) and expect a query without page info and the query will be different according to this flag, for example:

  • with Pagination
    • query{ users(first:20, offset:40){ totalCount, nodes{ id, firstName, lastName }}}
  • without Pagination (via enablePagination: false)
    • query{ users{ id, firstName, lastName }}

Note that current GraphQL querying inputs for Filtering & Sorting remains the same with/without Pagination, you can refer to the GraphQL Wiki for more info.


  • menu: starting adding new Cell Menu Extension (d7ed48a)
  • menu: add action & override callbacks to Header Menu & Grid Menu plugins (d59b341)
  • menu: add Context Menu Extension feature (866969d)
  • menu: starting adding new ContextMenu Extension (a60d5ae)
  • styling: change Column Picker & Grid Menu styling (8465191)
  • styling: add more SASS variables to header menu (70afcd8)

Bug Fixes

  • example: show sort icon correctly after grouping (116bc78)
  • translations: align all Export translations and add missing locales (fc480b6)
  • graphql: disable pagination should remove any page info from query (d91f74c)
  • graphql: add missing updated GraphqlResult interface (5db9538)
  • build: warning on a missing DOMpurify TS Type (4436b2b)
  • styling: use latest SlickGrid version and fix some styling issues (52308eb)
Assets 2

@ghiscoding ghiscoding released this Nov 24, 2019 · 88 commits to master since this release

Big Annoucement

Huge news, Aurelia-Slickgrid just reached 100% Test Coverage, around ~8300 lines of code fully tested. 🚀

This new version brings a feature that was a asked a few times that is to update/change any Filters and/or Sorting dynamically (that is on the fly at any time). It also works with Backend Services (OData & GraphQL). This kind of functionality was already available via Grid Presets but the presets is restricted to first page load only, while the new features can be called at any time. However please note that it's still preferable to use presets to effectively preset your grid with any Filters and/or Sorting when loading the grid, the differences is that the presets happens before the grid is even ready (it will load the grid with them), while updating Filters/Sorting dynamically (the new feature) can only be called after the grid is ready and shown, so there's a big distinction between them.

Unit Test Coverage also increased to 99.8% ...correction, it now reached 100% 🚀

Again, if you like the lib and haven't up voted yet, please do so ⭐️ cheers 😸


  • filters: provide method to apply grid filters dynamically (#258) (3433686)
  • sorting: provide method to apply grid sorting dynamically (#261) (7782767)
  • events: allow to bypass changed events when calling updateFilters/Sorting (#263) (055fb95)
  • examples: add Dynamic Filters demo set by select dropdown (706bb4e)
  • tests: add Cypress E2E test to cover i18n grid and text filter (97be0ad)
  • tests: add more unit tests & cleanup some code (74cd00d)
  • tests: add missing tests for full coverage (b8cd451)

Bug Fixes

  • odata: no quote escape required for IN operator w/non-string column (#262) (8027922)
  • picker: make sure picker addon is available before translating (78a7a56)
  • editor: Select Editor with option "0" were incorrectly filtered out (3a4258b / a22e300)
  • filter: Date Filters using Flatpickr throw error w/invalid locale (2e6a7cc)
  • filter: default operator of input filter should be empty (37f031a)
  • filter: number filter condition, parse number before comparing (1c4ed2d)
  • filter: updateFilters w/BackendService should call query only once (#265) (0a5e43a / bd6749e)
  • backend: make sure pagination object exist before using it (3123597)
  • sort: add sort icons to grouping examples (8bb6dec)
  • typing: gulp dependency and typings fix (80db485)
Assets 2
Nov 30, 2019
chore(release): 2.15.1
Nov 24, 2019
chore(release): 2.15.0

@ghiscoding ghiscoding released this Nov 2, 2019 · 134 commits to master since this release

This week Aurelia-Slickgrid hit a Major Milestone 🚀 , the library is now Fully Tested with a test coverage of 99.5%. Why not 100% you might ask? Well there's about 40 lines that I haven't found out how to test and/or are lines that are unreachable from a test perspective. So I'm happy to put this aside as a completed task.

This version also brings a few fixes for RequireJS/SystemJS, especially for the new Excel Export (using the Excel-Builder library) that was released in previous version. Also there are some extra Formatter Options (a total of 6 options available) that can be applied to all regular Formatters/Grouping Formatters at once (even globally if you wish), these are the 2 new options (decimalSeparator and thousandSeparator) and more info can be found in this Wiki.

So please, if you like the lib and haven't yet up voted, please do so ⭐️ cheers 😸
Ghislain aka @ghiscoding

Some Unit Tests & Code Statistics

  • 150 files tested
  • ~8000 lines tested
  • ~2200 unit tests
  • 99.5% test coverage (~45 lines are untestable)
  • you can see the full test coverage via codecov

You thought Aurelia-Slickgrid was just a simple SlickGrid wrapper... well think again 👷


  • cypress: add Pagination Service Cypress E2E tests (#245) (9ad8bf6)
  • frozen: fix header grouping grid with frozen columns (#239) (30cb09d)
  • rowDetail: expose public all render/redraw methods of Row Detail (25acddf)
  • styling: improve header menu styling (511ce3b)
  • tests: add Aurelia-Slickgrid custom element tests (#247) (2400dd1)
  • tests: add more Aurelia-Slickgrid unit tests (#253) (9b6d25f)
  • tests: add Slick-Pagination Component unit tests (#242) (fdf440c)
  • build: reorganized lib into its own "custom-elements" folder (#257) (dc99f51)
  • formatter: add decimal,thousand separator to all Formatters (#255) (fd67f26)
  • tests: add missing unit tests for Excel Export Service (#254) (9ede722)

Bug Fixes

  • bundler: add Excel Builder support for RequireJS/SystemJS (b992187)
  • editor: use editorOptions only (#246) (a0604b5)
  • graphql: pagination offset should never be below zero (#250) (199ae83)
  • odata: filter with single quote should be escaped (#251) (46bb0c7), closes #328
  • styling: hidden menu visible in BS4 for Picker/Grid Menu (9e06f2c), closes #321
  • tests: fix a Jest async unit test not resolving (#252) (c1c64f3)
  • pagination: never display page 0, minimum should be page 1 (#256) (8ce753c)
  • firefox: fix thousand separator throws regex console error (688bacb)
Assets 2
You can’t perform that action at this time.