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

Releases: ghiscoding/Angular-Slickgrid

v2.10.1

19 Aug 23:06
Compare
Choose a tag to compare
chore(release): 2.10.0

More Unit Tests and some minor fixes

26 Jun 23:41
Compare
Choose a tag to compare

There are now over 1300+ unit tests and the lib is now over 70% coverage, the unit test portion is almost finished (only 1 export service left to test), the next phase would be integration tests (editors, filters, pagination & angular-slickgrid entry file). Some of the Services required some code refactoring which is also why we released this under a minor (semver) version.

EDIT

As of version 2.9.5, all Services and all Unit Tests are done, the only major testing left to do would be Integration Tests (editors, filters, pagination & angular-slickgrid entry file). This also means that all major pieces, all the mechanic if we could say, of the library are now fully tested and a few small issues were detected and fixed while doing all of these nearly 1400 tests and we have now achieve 75% coverage (also worth to know, there are 7000 lines of code to test). 🎉 😸

Features

  • (tests): add AngularUtilService full test suite
  • (tests): add all Filter Conditions full test suite
  • (tests): add GroupingAndColspanService full test suite
  • (tests): add GridEventService full test suite
  • (tests): add SortService full test suite
  • (tests): add FilterService full test suite
  • (tests): add ExportService full test suite
  • (tests): add more ResizerService tests
  • (cypress): add Cypress E2E tests to CircleCI build

Fixes

  • (backend): regression from previous commit in both backend services using GridState
  • (filter): regression, small issue detected when using compound filter
    • that version was only out for a day
  • (export): exporting null or undefined should replace by empty string
  • (menu): Column Picker & Grid Menu not updated dynamically, closes #233 (PR #234)
  • (export): fixed a few small issues detected in ExportService while adding unit tests
  • (slickgrid): use previous version of Slickgrid to fix column autosize
  • (gridMenu): external grid menu was not triggering
  • (backend): clear empty filter by header menu not stopping spinner
  • (gridMenu): adding user customItems in GridMenu was no longer showing
  • (selection): selected row should be none after filtering, closes #249

Multiple Grids in Tabs Example, some fixes and more unit tests

18 Jun 21:49
Compare
Choose a tag to compare

There are now over 1000+ unit tests and we just passed 60% coverage. Also added an Example 24 to demo grids in Bootstrap Tabs (with ngx-bootstrap) and 1 of the tab is to show loading the data from a JSON file with HttpClient. Some users from were confused on how to use HttpClient instead of mock data (which is what all demos are using). So hopefully this might help more users.

Features

  • (tests): add missing sorterUtilities test
  • (tests): add GraphqlQueryBuilder unit tests
  • (tests): add GraphqlService full tests & refactor few piece of code
  • (tests): add GridODataService & OdataQueryBuilder full test suite
  • (examples): add ngx-bootstrap tabs example, closes #219

Fixes

  • (queryField): queryFieldFilter and queryFieldSorter should have precedence over queryField
  • (odata): add presets to GridOdata Service, closes #206

Grid Service new CRUD methods

04 Jun 14:30
Compare
Choose a tag to compare

Quick Summary

This version introduce a lot of refactoring on the CRUD methods (with an extra newly added upsert method) available in the Grid Service (which is now fully tested). New method names are replacing the older methods (which will be deprecated in the future). The biggest change is that instead of passing true, false, true (which is not very explanatory), was converted to an object with the flag properties, see below). All option flags still have their own defaults when no flag are provided (highlightRow: false, selectRow: true, triggerEvent: true), for example:

Before

this.angularGrid.gridService.updateDataGridItem(item, false, true);

After

this.angularGrid.gridService.updateItem(item, { highlightRow: false, selectRow: true });

  • All the flags in the 2nd argument are optional, they do come with their own defaults, see the Uncyclo to know them.

Features

  • (gridService); change all CRUD methods to options argument
  • (gridService): add "selectRow" flag to all CRUD methods
  • (tests): add Grid Service full unit test suite
  • (demo): add custom formatter with onCellClick, closes #213
  • (resizer): change onGridBeforeResize to return event, issue #215 (PR #216)

Fixes

  • (highlight): should do just that without doing any row selection
    • using the new CRUD methods, the row won't be selected after the action, it will only be highlighted like it should
  • (highlight): add highlight fade out animation
  • fix(core): previous core version broke column resize, closes #207

Formatter Grid Options & other small Features, lots of Tests and few fixes

24 May 17:37
Compare
Choose a tag to compare

Quick Summary

New issue templates were added, please choose & fill them in with all information (when possible), it helps in resolving the issues. New formatterOptions added to the Grid Options. A lot more Tests were added (now over 600+ tests) and coverage is rising slowly but surely (it's a big library after all).

Features

  • (editor): added option for user to select the length of autocomplete (PR #183), thanks to @loonix
  • (formatter): add grid formatterOptions to all Formatters (PR #187)
  • (formatter): add grid formatterOptions to all Grouping Formatters (PR #187)
    • both Formatters & Grouping Formatters now support negative number (displayNegativeNumberWithParentheses) wrapped in parentheses commonly used in Finance, example: -$15 can be shown as ($15)
    • the formatterOptions allows you to set a few options, in the Grid Options, that are common to a few Formatters/GroupingFormatters
    • Uncyclo
  • (formatters): add dateSeparator Formatter Option
  • (euro): add Euro Formatters and Sorters (day/month/year) format, (PR #190)
  • (formatters): consolidate all Date Formatters into 1 method call DRY, smaller lib footprint (PR #193)
  • (tests): add full Test Suites
    • Grouping Formatters
    • Sorters
    • Collection, GridState, Resizer Services
  • (menu): add options to exclude column titles from Menus, closes #189 (PR #203)
  • (rowDetail): add option to limit expanded row to only 1 at time, closes #194 (PR #204)
  • (copy): add excelCopyBufferOptions to grid option, ref #198 (PR #205)
  • (gridService): add "upsertItem" method to Grid Service (PR #208)

Fixes

  • (selection): syncGridSelection and preserveHidden, fixes #191 (PR #196)
  • (gridState): columnPicker & gridMenu not triggering gridState change (PR #196)
  • (rowDetail): update to latest SlickGrid version to fix scrolling (PR #202)
  • (resize): use latest Github SlickGrid version, temp fix for #207
  • (editor): dynamically adding editor column throws error, fixes #195 (PR #212)
  • (editor): integer editor was always showing invalid when null value (PR #209)

Few Fixes and Full CI integration

11 May 00:11
Compare
Choose a tag to compare

This new release adds a few new small features, but the biggest change is probably the new CI tools that you might have noticed. The library is now built with CircleCI and since we recently started adding Jest unit tests, we also added the code coverage via Codecov, these are 2 great tools that are available freely for Open Source projects like this library. So you can now feel safe knowing there is now a build process with CircleCI that includes Jest unit tests as well. 🎁🎉

You might find that the code coverage is a little bit low, but hey, it's better than 2 months ago which was 0% and it keeps increasing slowly but surely, Formatters and Sorters are now 100% covered and more test are added continuously.

If you would like to contribute on unit tests or anything else, please do, PRs are certainly welcome!!!
You can see some of the tasks in the queue under in the Project planning.

... and don't forget to up vote ⭐️ Cheers!

Features

  • (editor): add option to force user input in autocomplete Editor, closes #174 (PR #176)
  • (tests): add more Formatters tests and fix minor issues detected
  • (formatter): add new generic icon Formatter & tests
  • (resizer): add calculateAvailableSizeBy container option, closes #175 (PR #179)
    • add full test suite to ResizerService
  • (tests): add missing Formatter unit tests

Fixes

  • (formatters): fixed small issues found in some formatters while writing unit tests

Single Search Filter and few fixes

16 Apr 19:44
Compare
Choose a tag to compare

Features

  • (filter): add demo of single search filter
  • (tests): add Jest (Unit & Integration Tests) & Cypress (E2E)
  • (filter): add demo of single search filter
  • (build): add Cypress CI & Jest to build plan

Fixes

  • (formatter): rewrite Bold Formatter do what it was supposed to do
  • (input): remove autocomplete from all Editors & Filters
  • (select): multiple-select was always tricky with click outside event
  • (dateEditor): allow backspace for deleting a date, close #166
  • (height): should throw error when no height or enableAutoResize
  • (selection): styling of row selection is incorrect when adding rows
  • (formatters): while adding Jest unit tests, fix few Formatters output
  • (formatter): changed arrayObjectToCsvFormatter behavior
  • (copy): copy+paste cells was not working with correctly with enableExcelCopyBuffer, closes #164
  • (formatters): update some Formatter behaviors and add unit testing
  • (editors): not allow grid paste of invalid values, issue #171

AutoHeight Features and few fixes

04 Mar 22:41
Compare
Choose a tag to compare

Also reworked the demo sample CSS so that the sidebar left menu works better. Are you using Angular-Slickgrid? You can now add your company/site/project to the Used by Who list.

Features

  • (gridMenu): demo Grid Menu button can be added anywhere
  • (autoHeight): add missing Grid Option autoHeight feature
  • (extension): add simpler method getSlickgridAddonInstance to get Slickgrid control/plugin instance
  • (e2e): add Cypress to the lib, E2E tests
  • (rowDetail): user can override expand icon logic, closes #140
  • (rowSelection): user can override row selection checkbox logic
  • (filters): add flag to optionally trim filter white spaces
  • (editor): add title attribute to all Editors, closes #158
  • (filters): add enableFilterTrimWhiteSpace flag to grid options

Fixes

  • (resizer): minHeight, minWidth not working correctly, closes #133
  • (editor): allow all Editors to work with complex objects
  • (rowDetail): clear Row Detail content when recreating it, closes #136
  • (backend): add Filter shouldTriggerQuery to know when to call a query or not
  • (backend): regression after doing clearFilter, filter stop working
  • (flatpickr): add filterOptions & editorOptions, closes #142
  • (mapDateFormat): add missing date format in map utility, closes #141
  • (rowDetail): add missing disposeAllView while destroying plugin
  • (autocomplete): user might see auto suggestion
  • (core): update Slickgrid to latest version, fixes #143, #149
  • (pageSizes): setting different sizes gets extended with global sizes
  • (backend): Filter presets is getting removed when calling sort
  • (rowDetail): use latest Github SlickGrid code, temporary fix #160
  • (headerMenu): calling "Clear Filter" was calling incorrect grid state

Angular Components everywhere

21 Feb 18:43
Compare
Choose a tag to compare

News

Good news, previous release brought the Row Detail and that helped with this new release (Angular Component everywhere). We can now use Angular Components with Custom Editors, Custom Filters and Custom AsyncPostRender (similar to a Formatter but in an async way, that is the only available solution that works with SlickGrid).

More info about Formatters vs AsyncPostRender

So what about Formatter then, why can't we use Angular Component with Formatter? Because of how Angular is built, it requires a full cycle for the component to be rendered with data, however SlickGrid Formatter requires only string output and it must be right away (synchronous) and Angular Component can only be returned in an async fashion (you could return it right away but the data won't be populated). That is the reason that it's not doable with a Formatter, however SlickGrid AsyncPostRender is similar and works in an async fashion. So that works, but it has some drawback, it's slightly slower to render (you can visually see it rendering on the screen). All that to say, regular Formatters with jQuery and/or HTML is still the preferable way... but hey, if you really wish to use Angular Component, well then it's now possible, but I won't personally use it though.

Features

Fixes

  • (filter): regression bug filtering data doesn't always refresh grid
  • (backend): perf, clear filters was calling too many queries (1x/filter)
  • (formatters): some formatters were not considering empty string
  • (editors): small regression bug causing infinite loop in rare occasion
  • (backend): Clear Filter from Header Menu was not working correctly

Refactoring

Vote

If you haven't already done so, please up vote ⭐️
Let's make the lib more popular 😃

Row Detail View (new feature)

12 Feb 22:57
Compare
Choose a tag to compare

Features

  • (RowDetail): add new Row Detail View feature, closes #118
  • (event): add onExtensionRegistered to a few of the Extensions

Fixes

  • (select): again related to commit cdcc979 which was that using multiple select filter and clicking anywhere beside wasn't triggering an Angular event detection
  • (select): when destroying Select Filter/Editor, need to escape dot "." in name
    • a column definition with "id" that included a dot within it's text was throwing an error
  • (FilterService): fix a regression, missing an event
  • (updateItem): call grid.updateRow instead of grid.invalidateRow
    • when updating a row, the previous code was calling invalidateRow which destroy the entire row and recreates it, it's better to use updateRow since that will only re-render the necessary DOM elements instead of destroying/recreating them.
    • this fixes an issue we had in our App were we updated the item and we had focus on an opened Editor and we were losing the focus since the entire row was being destroying (including the Editor). With the new code, our opened Editor remains open and our row data still gets updated