Skip to content
This repository was archived by the owner on Jun 1, 2025. It is now read-only.

Tree Data Grid State & Presets

Choose a tag to compare

@ghiscoding ghiscoding released this 29 Jun 13:56
· 1963 commits to master since this release

Tree Data

this new version adds the Tree Data into the Grid State & Presets (when enabled), so you could reload the grid by saving & reapplying the same Grid State and Presets (toggled items) that it existed before refreshing the page. There's also some more enhancements and fixes that you can see from the list below.

Others

in this version, we converted a few of the Filters/Editors from jQuery to native. That does not mean we can drop jQuery, but it's a start, SlickGrid uses jQuery heavily so I'm not even sure if it will ever be possible to drop jQuery completely (there's also a few external libs that are jQuery libs: multiple-select.js, jQueryUI autocomplete & slider range). On the other end, this conversion might bring better performance in some areas, at least I would imagine, on single/multiple Filter & Editors with large collection.

Some of the other internal changes made in this version also include a migration from TSLint to ESLint and upgrading Jest to version 27 and Angular 12.

  • a big thanks to @jr01 for providing guidance on fixing some new warnings with Angular 12 and WebPack 5 🏆
    • read his comment and roughly the same as a readme instruction here

Major Announcement

the next major version is under active development and is expected to ship in couple weeks, it is a major rewrite and will require a few steps to upgrade but don't worry a very detailed Migration Guide is also in the process.

Why is it a big deal? Mostly because all the common code that Angular-Slickgrid & Aurelia-Slickgrid (2 libs that I support) are now moved into a monorepo lib called Slickgrid-Universal, this mean that Angular-Slickgrid code itself will get much smaller (10k lines of code are moved into the monorepo lib, and I won't have to duplicate features/fixes across 3 libs anymore, this is a big deal for me). The biggest structural change is that it's a monorepo structure, a lot of the Services were decoupled and are now becoming optional (OData, GraphQL, Text Export, Excel Export, ... and more are now opt-in) and this should help you ship smaller builds by downloading & installing only what you really use. For even more info, you can read a full explanation that was posted under an older release here under the section labeled "What's coming in the Future". Also note that Aurelia-Slickgrid has been using Slickgrid-Universal for the past 6 months, so I don't expect any problems going ahead with this change. There's also new features only available via the new major version, the biggest one is called Composite Editor modal, you can see a live demo on Aurelia-Slickgrid - Example 30

Also note that since I'm a team of one, well version 2 support will end as soon as version 3 is out. I however will keep a version2 branch in case of last minute fixes. Always remember that this is an Open Source project, please ask your questions on Stack Overflow and feel free to contribute, I'm always glad to get help 👷👷‍♀️

Minimum Requirement Changes

  • Angular-Slickgrid >= 12.0.0
  • ngx-translate >= 13.0.0
  • TypeScript >= 4.2.4
  • RxJS >=7.0.0 (also major bump)
  • Bootstrap >= 4.5.0 (or any other UI framework like Bulma)
  • IE11 support will be dropped, min target will be ES2018

3.x ETA 🤞 - Sometime in July or early August 🌞⛱️
You can follow the progress of the open PR #803

Enjoying the lib?

Make sure to upvote ⭐ and/or Buy Me a Coffee ☕ ... and if you already have, well thank you 😺

Cheers and Happy Coding


Features

  • deps: migrate from TSLint to ESLint (a60432b)
  • editors: convert jQuery to native element for few Editors (f1a8c60)
  • editors: convert jQuery to native element on longText Editor (cd3bf5e)
  • editors: convert jQuery to native element on slider editor (871f86b)
  • editors: replace jQuery with native element on date editor (149c05f)
  • editors: use class inheritance to extend main input editor (9478692)
  • filters: build multiple-select options from native dom elements (92813b3)
  • filters: convert jQuery to native element on compound filter (fa8c174)
  • filters: convert jQuery to native element on date filters (67840e3)
  • filters: convert jQuery to native element on more filters (fd064cf)
  • services: convert jQuery to native elements (fc2132f)
  • tests: upgrade jest-preset-angular with Jest 27 (c68a5e6)
  • tests: upgrade jest-preset-angular with Jest 27 (e2447ba)
  • tree: add Tree Collapse Grid State/Preset (87d5c2a)
  • editors: add new Input Password Editor which uses common inputEditor (66535fd)
  • filters: convert jQuery to native element on few more filters (331accf)

Bug Fixes

  • addon: providing columnIndexPosition should always work (4ff9935)
  • demo: we should be able to move row(s) and keep selections (50e235c)
  • editors: longText Editor (textarea) was scrolling to page bottom (e6d3a31)
  • editors: select dropdown value is undefined it shouldn't call save (17555f2)
  • export: expanded Row Detail shouldn't be exported (b6299e4)
  • filters: filtering with IN_CONTAINS should also work with spaces (579e13f)
  • formatters: shouldn't auto-add editor formatter multiple times (6c0cf5f)
  • frozen: in some occasion column pinning changes column positions (0764013)
  • menu: toggle filter bar could be out of sync w/horizontal scroll (5ed2ea9)
  • pagination: should be able to toggle Pagination (4272b18)
  • plugin: row move shouldn't go further when onBefore returns false (97c5f59)
  • state: changeColumnsArrangement should work w/columnIndexPosition (831773b)
  • state: Grid View/Columns dynamically should work w/row selection (65bf5dc)
  • state: Grid View/Columns dynamically work w/row move/detail (d0bf315)
  • styling: header title should show ellipsis if too long (50c7078)
  • tree: using initiallyCollapsed change internal toggled state (91c48a2)
  • tree: initial grid state should also include toggled presets (2c0cec8)
  • tree: calling updateItems should not lose the Tree collapsing icon (399f770)
  • editors: don't use nodejs type to avoid build issue (177b68f)
  • core: make sure new dataset is an array before getting length (1d7fd03)
  • pagination: toggle enablePagination flag only after setPagingOptions called (67c4f9e)
  • editors: date editor clear button not showing (61bc6ca)
  • filter: refreshTreeDataFilters only when Tree is enabled fixes #806 (4f826e2)
  • formatters: Complex Object Formatter shouldn't throw with null data (295f29d)