New Empty Data Warning, Leak Fixes & Small Chore Updates
This release is not a huge release but it has certain features and fixes worth knowing about.
Small chore update was to just upgrade the lib project to Angular 8 (from 7) and also ng-packagr which is used to create the lib itself. You might be wondering, why not upgrade the lib to Angular 10 internally? Mainly to be a bit more on the cautious side, because Angular 9+ has the new Ivy rendering engine, so better play safe and stick with something that I know still works and is backward-compatible. This version should have no impact but just in case I decided to release it under a minor version.
There's also a new warning message (inside the grid) that will show "No Data to Display." that can shown after filtering or when it's simply empty. As all the other feature I have done, there are few options with it (see the emptyWarning interface for options), you can also disable it with the flag enableEmptyDataWarningMessage.
Another main topic that was brought up, and much time was spent on, was what we thought to be memory and/or detached DOM nodes but even if we fixed a few unsubscribed events (in both the core and this lib), the main problem ended up (and still is) coming from the Flatpickr lib (date picker) which was leaking detached elements (that was patch in the lib) and also an event listener causing performance downgrade which is caused by Flatpickr listening to the keydown event on the document.body and I have opened a PR #2329 to fix that, so hopefully this will be merged eventually (you could maybe upvote the PR #2329 to show interest in getting that merged).
Small Possible Breaking change
If you get an error with JQuery.Event it's because I now use the correct jQuery Event Type, you simply need to install it via yarn --dev @types/jquery (or use the NPM command to install as Dev Dependency) to get rid of the build error.
Lastly...
If you like the lib, please upvote ⭐ and/or Buy Me a Coffee ☕
Features
- core: update project lib to Angular 8 with newer ng-packagr (#617) (edae737)
- core: add "Empty Data" warning message when grid is empty (#631) (8f72e38)
- formatters: add a fake hyperlink formatter (#630) (694f0ea)
- formatters: add AlignRight and AlignCenter Formatters (#634) (3645d60)
- services: add 2x new methods hideColumnById(s) (#633) (e4455a9)
- core: add enableMouseWheelScrollHandler grid option (3150124)
Bug Fixes
- core: revert to use WebPack to run Cypress E2E tests (3b3c643)
- extensions: import jQuery mousewheel only with frozen, fixes #618 (#619) (c3b52db)
- filters: slider filter setValues really change input value (#621) (212c275)
- backend: OData/GraphQL pagination should display warning on empty (#632) (7d32bac)
- core: clear dataset when destroying & fix few unsubscribed events (#629) (0ee3421)
- core: Flatpickr is not destroyed properly & leaks detached elements (#627) (a9f7027), closes #625
- core: mem leaks w/orphan DOM elements when disposing, fixes #625 (#626) (d1e284f)
- core: properly dispose plugins to avoid detached DOM elements (#628) (3b4ccc4)
- core: nullify grid/dataView/gridOptions when destroying to avoid leak (b995b65)
- core: header columns grouping misbehave after hiding column (c89a21b)
- extensions: CellExternalCopyBuffer onKeyDown event leak, fix #635 (#636) (9ce8326)
- core: showing/hiding column shouldn't affect its freezing position (7907cb8)
- formatters: date formatters should accept ISO input & output to US (482d0f5)