Releases: shlomiassaf/ngrid
Release 5.0.0
Support angular 14
Release 5.0.0-alpha.0
Angular 14 support
Release 4.0.1
ngrid
bug fix | core: fix issue with TypeScript DOM library update (db0b8ca93c526c5604b28c56dff8c6457c3d38f5) |
bug fix | support header & footer background colors in theming (e825e4fe16ef07093ef41b665dbf596f305f614c) |
bug fix | target-events: expose mouseUp & mouseDown events in target events plugin (c460d3bd1ce7cb7f026712c2f3d5baac84eab50c) |
4.0.0
ngrid
bug fix | remove tilde from use rule (66a48ad11c814f17d332d4c4e1e7261ea92122e3) |
bug fix | revert to using ViewEngine package (3a1fe8f3202f4760d53085874279b26cfd902e88) |
bug fix | scss bundles proper export (c86b9b5140e584971aeeaf50223a03a72e014e36) |
bug fix | force export augmenting d.ts files (f2c60ab) |
bug fix | sort: support empty strings when sorting (6a1023e066a297f6b87c8a37554fc73ac723e114) |
Highlights
Sass
Sass theming API has been reworked so that clients can take advantage of @use. This includes:
- A single entry point into
@pebula/ngrid
,@pebula/ngrid-material
and@pebula/ngrid-bootstrap
- Renamed functions, mixins, and variables to be a better reflection of what they do
- Applications still using node-sass will need to switch to the sass package
For more information, check out the new material theming guide and ngrid's theming docs. - For convinience, legacy theming API is still availavle at
@pebula/ngrid/theming
,@pebula/ngrid-material/theming
and@pebula/ngrid-bootstrap/theming
. The legacy API will be removed in v5.0.0
IVY APF v12
Starting from version 4 of nGrid, the library is packaged using the new IVY Angular Pacakge Format (v12).
Compilation is done in ViewEngine
mode.
While angular recommends compiling in partial-ivy mode, it has several limitations:
- Support is still not wide-spread so several tools will not load nGrid (StackBlitz, CodeSandbox, etc...)
- Applcations still running in
ViewEnginge
will not be able to run nGrid while IVY application can use NGCC - NGCC in v12 is still fully operational, so why limit?
@angular/components
(material) is also publishing v12 libaraies inViewEngine
However, as part of the CI process we still compile with partial-ivy mode enabled to catch errors since it is still new and has it's quirks which required some shellow API changes to work around it's issues. There should be no effect and used to ensure futute competability, however, if you experience strange behaviour please report.
In addition, symboles exposes in public modules are now required to be exposed in the public API as well. This resulted in multiple symboles which were previously private now exposed.
Aligned with v12 of the angular eco-system
Library is now on par with version 12 of angular
, @angular/cdk
and @angular/components
(material).
Since nGrid@v4
is IVY compiled and the CDK does not support previous versions, v4 of nGrid will only run on angular version 12 and up.
Release 3.0.0
Bug Fixes
- ngrid: don't attach global templates to the root registry (0494678)
- ngrid: fix group logic (e75e493)
- ngrid: fix virtual page height (633a37d)
- ngrid: pagination reset when filter is on (468de4f), closes #78
- ngrid: column header sticky rows index is wrong (c122e9d)
- ngrid/drag: support column & row reorder on the same host (c1312c9)
- ngrid/drag: support row reordering in virtual scroll (5a24eec)
- ngrid/infinite-scroll: scroll page init without reason (54a1b65)
- ngrid: do not auto-clear context on source changing (e49d4ff)
- ngrid: missed a row when measuring virtual height (cf9ebfe)
- ngrid: rtl not working with live changes in direction (2956192), closes #141
- ngrid: workaround virtual scroll height limitation in browsers (233e3b2)
- ngrid: wrong ds index reference in context when using multirow setup (58ab268)
- ngrid/block-ui: allow BooleanInput for strict mode (2a9770a)
- ngrid/block-ui: wait for grid init before creating view (b9d1ea3)
- ngrid/infinite-scroll: proper reflection of refresh trigger state vs infitie scroll trigger state (3340bc9)
- ngrid/target-events: keyboard focus does not sync when virtual scrolling (b488d91), closes #117
Features
- ngrid-bootstrap: selection column (ab09209)
- ngrid: add schematics support (1d7814c)
- ngrid-bootstrap: initial bootstrap support (80d6a85)
- ngrid: 3rd party storage for context api (#132) (0c9ca4c), closes #10 #127
- ngrid: allow minimum height based on row count (296fe5d)
- ngrid: cache when rendering rows (170c2d4)
- ngrid: custom row override (fec9445)
- ngrid: implement dynamic virtual scroll strategy (30117a3)
- ngrid: new api to add/remove columns (7a79b2e)
- ngrid: use intersection observer (161371b)
- ngrid-cypress: new package with cypress helpers (similar to harnesses) (e33d638)
- ngrid/detail-row: implement global detail row instance manager (f30c335)
- ngrid/testing: add test harnesses for ngrid, columns and data rows/cells (19bbba6)
Performance Improvements
- ngrid: support tree-shakable errors (0fa90ff)
- ngrid: disable wheel mode when virtual scroll paging is active (25d269e)
- ngrid: rebuild columns/cells inside rows when invalidating (35bbea8)
- ngrid: use internal row context (f7f8367)
Code Refactoring
- ngrid: move column (some) and datasource symbols to core package (33d2bca)
- ngrid: move configuration symbols to core package (fc259ba)
- ngrid: move most of utils to
@pebula/ngrid/core
(2990511) - ngrid: move registry to core package (55e8f31)
- ngrid: moved pagination types to core (cad0f5b)
- ngrid: refactor the cell rendering engine and refactor the group definitions (4882e4a), closes #123 #131
- ngrid: simplify working with rows (a81b1af)
BREAKING CHANGES
- ngrid: To reduce clutter in the main packge the configuration symbols moved to
@pebula/ngrid/core
.
At this point all symbols were re-exported from the main module so this no effect there. However, if you've extended on of the symbols using augmentation you will need to update the augmentation module path. - ngrid: To reduce clutter in the main packge the datasource symbols (all) and some of the column model symbols moved to
@pebula/ngrid/core
.
At this point all symbols we're re-exported from the main module so this no effect there. However, if you've extended on of the symbols using augmentation you will need to update the augmentation module path. - ngrid: Since the registry and it's type mapping symbols are for intenral or plugin use they are now part of the core pacakge. Currently the single/multi directives are still in the main package but they might also be moved in a later phase
- ngrid: If you've used
unrx
in your code, it is not located in@pebula/ngrid/core
since it is not for used by "regular" users, only required for plugin authoring. - ngrid: Pagination types have moved from
@pebula/ngrid
to@pebula/ngrid/core
as part of the cleanup process to simplify the main package.@pebula/ngrid
re-exports the interfaces and types but the concrete implementations forPblPagingPaginator
andPblTokenPaginator
are now in the core pacakge as they are
not intended to be used by "regular" users, only plugin authors. - ngrid: Binding
[grid]
and[row]
is no longer required. Same fordetailRow
andinfiniteRow
- ngrid:
resize-observer-polyfill
is no longer a peerDependency and is not required by the library. If you want polyfill support please import the polyfill using polyfill.ts - ngrid:
prop
andspan
are deprecated fromPblColumnGroupDefinition
and will be removed from version 4.0.0
prop
andspan
are removed fromPblColumnGroup
and instread columnIds list is used - ngrid: If you used the hideColumns property (setter only) via code and not via html binding it will no longer work.
Instead, use the new api to add/remove columns.
If you used it via bindings, it will still work but it is not recommended because other plugins that use the API
will override values from the array provided.
Version 2.3.1
chore: bump version to # 2.3.1 w/ changelog