Aurelia-Slickgrid now supports Aurelia 2

Big Announcement - Aurelia-Slickgrid v7.x supports Aurelia 2

Hey everyone, good news for Aurelia-Slickgrid users, the latest major version v7.1.0+ now officially support Aurelia 2 (as for Aurelia 1 users, they can still use previous v6.x). I have to give a big thanks to @MaximBalaganskiy who made this possible, Maxim was instrumental and very patient with me to make it all work. Thank you Max!

Though, I have to say that creating an external plugin for Aurelia 2 is not easy, neither documented (there are documentation for internal plugin but no documentation on how to create external plugin).

What is Aurelia-Slickgrid?

If you don’t already know, Aurelia-Slickgrid is a wrapper of SlickGrid which is a performant datagrid library, nearly the same as Ag-Grid (in fact Ag-Grid was inspired by SlickGrid). SlickGrid is extremely fast because it uses virtual scrolling which makes it super performant and it can easily deal with even a million rows, it is easily customizable and packs a ton of features (VirtualScroll, Grouping, Pagination, BackendServices OData/GraphQL, built-in Editors/Filters, RowSelections, ColumnFreeze, TreeData, and many more …). The closest library in similarity is Ag-Grid but the biggest difference that sets SlickGrid apart is that it’s all free (but Ko-Fi donations would be welcome :wink:) and fully Open Source, on the other hand Ag-Grid best features are, for the most part, requiring paid licenses (and it’s quite expensive). I have been supporting this library for a few years already and I have 4 different SlickGrid projects (different ports are available for Angular, React, vanilla JS).

What changed with latest version(s)?

The biggest change with this latest version is obviously the Aurelia 2 support, but the other big change was also to internally dropped the external 6pac/slickgrid dependency. Also note that most of the library code is in the Slickgrid-Universal monorepo which I created a while ago, its goal was to remove duplicate code that existed in all the ports that I support and it also gave me the chance to make a few services optional by taking advantage of the monorepo structure, some of these package are now optional (like Excel-Export, OData, GraphQL) making the build smaller (you’ll never use all features at once). With this new release, the SlickGrid core files are now merged directly into Slickgrid-Universal which makes it easier to troubleshoot, remove duplicate code and possibly add extra features in the future.

Below is a summary of all previous versions (and as you can see, it’s been supported for a few years already and it was a long journey to get where it is today).

Version Changes Summary
7.x Aurelia 2 support, removed SlickGrid external dep & merged into Slickgrid-Universal
6.x drop jQuery requirement
5.x drop jQueryUI requirement
4.x Slickgrid-Universal official 1.0 release
3.x moved 90% of the code to a new Slickgrid-Universal monorepo

Links

Aurelia-Slickgrid has a new Documentation website powered by GitBook, you may have guessed that it was heavily inspired by Aurelia’s own documentation :wink:

Take a look at the Live Demo website that includes 30+ examples demoing all features of the library.

And if you like my work, you can always buy me a Ko-Fi :coffee: :construction_worker_man:

Conclusion

This new release is a big personal achievement on my end, since for a long time I wanted to modernize and drop jQuery from the original SlickGrid library and I eventually wanted Slickgrid-Universal to be standalone and it’s all been achieved with this new release. Supporting Aurelia 2 is just the cherry on top, it was on my list of TODOs but I didn’t know when that would come… I have to say again a huge thanks to @MaximBalaganskiy for making this possible. :rocket:

Happy Holidays with an early :gift:

11 Likes

Congratulations! It’s great to see this awesome grid jump to Aurelia2. Slickgrid really is amazing and better than many other grids from major vendors.

I have used the 6pac/slickgrid a little in aurelia 1 and it was surprisingly easy to get it working probably because aurelia works well alongside vanilla js and html. I was hesitant to use your aurelia-slickgrid if it wasn’t going to do aurelia 2.

So my real question is, what is the advantage of using the aurelia-slickgrid which is a wrapper for your universal slickgrid implementation? What does the wrapper make easier and also potentially harder?

1 Like

This might be better answered by a team member but typically the fact that it’s a plugin is making more convenient to use and there are some features that are available with Aurelia-Slickgrid only, like the Row Detail. The biggest convenience is that a plugin can be used as a Component in the View and all Custom Events can be added directly to this component in the View, it also takes care of disposing these events the correct way without any intervention from your side.

Can you use Slickgrid-Universal instead of Aurelia-Slickgrid in Aurelia? Sure but like I mentioned in the previous paragraph, you’ll have to add Custom Event listeners which you are now in charge of disposing of all these events yourself (by using .removeEventListener for all your events) or else you’ll end up with detached events (aka memory leaks). Also like I said earlier, the Row Detail in Aurelia-Slickgrid accepts Aurelia Component (or VM whatever you want to call them) but that feature simply isn’t available in Slickgrid-Universal (or at least not without a lot of work).

So in summary, can you simply use Slickgrid-Universal, yes you can but just make sure to correctly dispose of all your Custom Events, but on the other hand Aurelia-Slickgrid will just take care of all of that for you. Both approaches do work, you just have to be careful.

@MaximBalaganskiy or any other Aurelia team member can maybe add more details about the reason why we create some of these plugins. I think convenience is probably always on top of the list. Hope that helps

3 Likes

Very cool! Thank you for an awesome library.

2 Likes

Great to hear! Thank you! And to @MaximBalaganskiy