Angular-Slickgrid is a wrapper of the lightning fast & customizable SlickGrid datagrid, it also includes multiple Styling Themes
MIT License
Bot releases are visible (Hide)
ApplicationRef
has already been destroyed (c73fac5)Please remember that all packages of @slickgrid-universal
(v5.6.0
) and Angular-Slickgrid
(v8.6.0
) must be updated at the same time and they will always get bumped on the same day to avoid any upgrade issues. You can also consult the Versions Compatibility Table - Wiki
also remember that Slickgrid-Universal monorepo is where the biggest portion of the code exists (~90%), so most of the commits are now happening on that side.
Published by github-actions[bot] 2 months ago
Please remember that all packages of @slickgrid-universal
(v5.5.2
) and Angular-Slickgrid
(v8.5.2
) must be updated at the same time and they will always get bumped on the same day to avoid any upgrade issues. You can also consult the Versions Compatibility Table - Wiki
also remember that Slickgrid-Universal monorepo is where the biggest portion of the code exists (~90%), so most of the commits are now happening on that side.
Published by github-actions[bot] 3 months ago
This new release adds the Infinite Scroll feature and with it adds not just 1 but 3 new examples to cover all use cases (read the new Infinite Scroll docs for more info)
Infinite scrolling allows the grid to lazy-load rows from the server when reaching the scroll bottom (end) position. In its simplest form, the more the user scrolls down, the more rows get loaded. If we reached the end of the dataset and there is no more data to load, then we'll assume to have the entire dataset loaded in memory. This contrast with the regular Pagination approach which will hold only hold data for one page at a time.
Please remember that all packages of @slickgrid-universal
(v5.5.0
) and Angular-Slickgrid
(v8.5.0
) must be updated at the same time and they will always get bumped on the same day to avoid any upgrade issues. You can also consult the Versions Compatibility Table - Wiki
also remember that Slickgrid-Universal monorepo is where the biggest portion of the code exists (~90%), so most of the commits are now happening on that side.
Published by github-actions[bot] 3 months ago
filterQueryOverride
provide all search values (0eef5c0)Please remember that all packages of @slickgrid-universal
(v5.4.0
) and Angular-Slickgrid
(v8.4.0
) must be updated at the same time and they will always get bumped on the same day to avoid any upgrade issues. You can also consult the Versions Compatibility Table - Wiki
also remember that Slickgrid-Universal monorepo is where the biggest portion of the code exists (~90%), so most of the commits are now happening on that side.
Published by github-actions[bot] 4 months ago
Please remember that all packages of @slickgrid-universal
(v5.3.4
) and Angular-Slickgrid
(v8.3.2
) must be updated at the same time and they will always get bumped on the same day to avoid any upgrade issues. You can also consult the Versions Compatibility Table - Wiki
also remember that Slickgrid-Universal monorepo is where the biggest portion of the code exists (~90%), so most of the commits are now happening on that side.
Published by github-actions[bot] 4 months ago
Please remember that all packages of @slickgrid-universal
(v5.3.2
) and Angular-Slickgrid
(v8.3.0
) must be updated at the same time and they will always get bumped on the same day to avoid any upgrade issues. You can also consult the Versions Compatibility Table - Wiki
also remember that Slickgrid-Universal monorepo is where the biggest portion of the code exists (~90%), so most of the commits are now happening on that side.
Published by github-actions[bot] 4 months ago
This new release brings Filter Shortcuts that once defined will be added as sub-menus the Column Header Menu. These shortcuts are nothing new in terms of what you can already do with Column Filters, however the main reason to use them is to define some filters with simple logic, for example give me all the Blanks or Non-Blanks Values or even better filter the last 6 months data. For more info and demo, take a look at:
Lastly there's also a new Example 37 which is showing Column Totals in the grid Footer (the code was taken from an old SlickGrid example).
filterShortcuts
to Column Filter (b284785)Please remember that all packages of @slickgrid-universal
(v5.2.0
) and Angular-Slickgrid
(v8.2.0
) must be updated at the same time and they will always get bumped on the same day to avoid any upgrade issues. You can also consult the Versions Compatibility Table - Wiki
also remember that Slickgrid-Universal monorepo is where the biggest portion of the code exists (~90%), so most of the commits are now happening on that side.
Published by github-actions[bot] 5 months ago
This new release brings a ton of new features and most of the new feature ideas came from this great Stack Overflow question Angular Slickgrid - Custom Filter which the user asked if it was possible to create a custom filter as SQL LIKE
. So, from this idea in mind and considering that we already had a sortComparer
for custom Sorting but no ways to customize Filtering, now let's work around this idea shall we?
filterPredicate
for local JSON dataset (see Example 31 for SQL LIKE
demo)filterQueryOverride
which is the filter override for Backend Services (OData / GraphQL)OperatorType.custom
that can be used with above custom filter predicate/overridea*z
(StartsWith & EndsWith combo) available for local JSON dataset and Backend ServicesThis new release also brings a lot of improvements to the Excel Export with a new Example 36 which demos how to dynamically use Excel Formulas (e.g. Sums), you can even use Excel Formulas with Grouping to do Sums, isn't it awesome!? Let's just say that pretty much everything you can do in excel-builder-vanilla, you can probably do in Angular-Slickgrid.
A huge thanks to @zewa666 and @jr01 for their contributions & feedback to add some of these new features and fixes. 🚀
filterQueryOverride
to GraphQL Service (7151d43)filterQueryOverride
to OData Service (2ccdaf0)a*z
) filter combo (69bc186)a*z
) to OData/GraphQL (e2f5439)valueParserCallback
with dataContext & new demo (bd057e5)filterPredicate
option for user customization (2a7ebba)Please remember that all packages of @slickgrid-universal
(v5.1.0
) and Angular-Slickgrid
(v8.1.0
) must be updated at the same time and they will always get bumped on the same day to avoid any upgrade issues. You can also consult the Versions Compatibility Table - Wiki
also remember that Slickgrid-Universal monorepo is where the biggest portion of the code exists (~90%), so most of the commits are now happening on that side.
Published by github-actions[bot] 5 months ago
This new release brings a lot of changes oriented toward better UI/UX, our SVG icons are now pure CSS and can be colorized like any other text via the native CSS color
property (which helped a lot improving the Dark Mode Theme).
Another noticeable UI change is the migration of the date picker from Flatpickr to Vanilla-Calendar-Pro, this library is ESM, it has modern styling and an awesome UI/UX. Another change that is mostly internal but is also indirectly connected to the date picker is the migration from MomentJS to Tempo which is modern and is also packaged as ESM which is great for Tree Shaking.
I believe that with all these recent changes, the project is pretty much feature complete!
[!NOTE]
Migration to 8.0 for all the changes
Follow the
Published by github-actions[bot] 6 months ago
This new release adds 2x new grid options defaultEditorOptions
and defaultFilterOptions
so that user can define global Editor/Filter options instead of having to duplicate same options on each column editorOptions
/filterOptions
. An example is shown below.
defaultFilterOptions
, we use the same keys as the Editor (date
, select
, slider
, ...) but please note that these 3 filters options have combined options into 1 prop for compound & range filters (e.g. date
is for both compoundDate
and dateRange
filter options).this.gridOptions = {
defaultEditorOptions: {
autocompleter: { debounceWaitMs: 150 }, // auto-typed as AutocompleterOption
date: { minDate: 'today' },
longText: { cols: 50, rows: 5 }
}
}
defaultEditorOptions
& defaultFilterOptions
(4c6d1de)Please remember that all packages of @slickgrid-universal
(v4.7.0
) and Angular-Slickgrid
(v7.7.0
) must be updated at the same time and they will always get bumped on the same day to avoid any upgrade issues. You can also consult the Versions Compatibility Table - Wiki
please remember that Slickgrid-Universal monorepo now contains the biggest portion of the code (~90%), so most of the commits are now happening on that side.
Published by github-actions[bot] 7 months ago
This release will now work with multiple tooltips on the same cell (e.g. multiple buttons with icons like the "Action" column in Example 35).
Another great change with this release is that I created a PR on the autocompleter
external dependency to provide an ESM build (it was simply missing a Rollup es
build) and I waited for a over a month without any news, so I decided to create a new temporary autocompleter-es
package (my hope is that this is a temp package and that my PR will be merge in the near future so that I can switch back to the original package). So... long story short, you can now remove autocompleter
from allowedCommonJsDependencies
(from angular.json
) and that is 1 less CJS dependency to worry about :)
My autocompleter
PR got merged, so I'll switch back to the original package for the next release, note that this has zero impact on your side since this is an internal dependency of Slickgrid-Universal when using the Autocomplete Editor/Filter. The removal of CJS, as shown below, is still valid :)
{
"allowedCommonJsDependencies": [
- "autocompleter",
"isomorphic-dompurify", // it was previous `dompurify` but it was recently replaced to support SSR
"flatpickr",
"moment-mini",
"stream"
],
}
Please remember that all packages of @slickgrid-universal
(v4.6.1
) and Angular-Slickgrid
(v7.6.1
) must be updated at the same time and they will always get bumped on the same day to avoid any upgrade issues. You can also consult the Versions Compatibility Table - Wiki
please remember that Slickgrid-Universal monorepo now contains the biggest portion of the code (~90%), so most of the commits are now happening on that side.
Published by github-actions[bot] 7 months ago
This release upgrades multiple-select-vanilla
package, that I also maintained, with a much more modern UI with the use of SVG icons. The SVG icons in that external lib are now also written in pure CSS which helps for Dark Mode (in that mode, the primary color for checked icon is a lighter version of the primary color). Note however that the SVG icons in Slickgrid-Universal are not yet pure CSS since that would introduce breaking changes in Slickgrid-Universal (a new major version will be pushed later on to address that).
new
edPlease note that Custom Editor/Filter should never be new
ed even though the documentation previously said otherwise, this has been corrected in this release via an update on the Column interface, so if you have any of them instantiating that way then please fix them to avoid build errors.
// same goes for Custom Filter
editor: {
// reference your custom editor class without instantiating it
- model: new CustomInputEditor()
+ model: CustomInputEditor
},
model
is now FilterConstructor
and shouldn't be newed (6831c53)editorClass
& deprecate internalColumnEditor
(e9664e0)Published by github-actions[bot] 8 months ago
This is probably a UX change that many users will be happy to start using, however there are a few important notes to be aware of as shown below.
darkMode
grid option, it will not auto-detect the color scheme from the browser (you can however easily do it yourself). There couple of reasons as to why that is a grid option, it mostly relate to the fact that a few features require creating certain DOM Elements that are appended to the body
(e.g. ColumnPicker, GridMenu, LongTextEditor, CompositeEditorModal, ...) and that requires extra code in place that SlickGrid will take care of it for you and for that reason it cannot be simple CSS classes.fillColor
defined in SASS and once it is set, you cannot change it... oh but could we fix that problem in the future? The answer is Yes but... So, I did find that we can convert all SVG to pure CSS (using UnoCSS, by AntFu) approach but that will introduce some breaking changes and considering that I recently released a major version, I will wait couple more months to proceed with another major. Part of the breaking changes will be to drop support for Fonts and keep only SVGs internally.Also worth knowing that I also improved multiple-select-vanilla
by adding a new feature to replace tabIndex
by arrow navigation highlight. This feature will let you use the keyboard (up/down arrows or mouse hover) to navigate the select options and choose any of them (via Enter key) and all of that without losing your current focus (which is a lot better than using tabIndex
). This new feature should be a lot more UX friendly.
This is pretty much completing the roadmap of all the features that I wanted to add to this library, this project started 7 years ago and I added a lot of features over the years.
isomorphic-dompurify
for SSR support (5b2f29d), closes /github.com/ghiscoding/Angular-Slickgrid/discussions/838#discussioncomment-8574215
Please remember that all packages of @slickgrid-universal
(v4.5.0
) and Angular-Slickgrid
(v7.5.0
) must be updated at the same time and they will always get bumped on the same day to avoid any upgrade issues. You can also consult the Versions Compatibility Table - Wiki
please remember that Slickgrid-Universal monorepo now contains the biggest portion of the code (~90%), so most of the commits are now happening on that side.
Published by github-actions[bot] 9 months ago
@slickgrid-universal/excel-export
🚀We are migrating from excel-builder.js to a new fork Excel-Builder-Vanilla
, the approach is a very similar to what I have done previously with multiple-select-vanilla
and it is all about modernizing the project. This migration brings a lot of goodies by using this new Excel-Builder-Vanilla
, it was rewritten in TypeScript, dropped Q
(replaced by regular Promise
), dropped Lodash
(now uses native code) and finally replaced JSZip
with fflate
which itself also has an ESM build giving us Tree Shaking and it is also giving us better perf by using Web Workers (when using CSP, you might need to adjust your CSP rules). Why the switch? The reason is mainly to be ESM ready because technologies are evolving and ESM is really the future (the next release of ViteJS is also expected to drop CJS (CommonJS) support). The switch has other benefits too, the most noticeable one being the large build size decrease (that is because we dropped Q
and Lodash
).
You might be wondering, why not switch to a more popular library like SheetJS
or ExcelJS
? Well, believe or not, all these projects are still written as CJS with no foreseeable support to ESM builds. For that reason you cannot take advantage of proper Tree Shaking which mean that whoever uses these projects, are in fact downloading their entire (large) library and all their dependencies. We certainly don't need all of these features in here since all we need is to export to Excel and this is what Excel-Builder-Vanilla
is giving us in an ESM build and it is also extremely small since it's only targeting Excel file creation. 🏗️
Below are the migrating advantages to Excel-Builder-Vanilla
d.ts
)Q
and Lodash
)JSZip
to fflate
(has ESM support with Tree Shaking and also better perf by using Web Workers)No breaking change, the changes required were all internal and are totally transparent to the developers because the API is exactly the same as before, the only difference will be your build size decrease ;)
For a very customized view of what you can do with Excel-Builder, take a look at the Slickgrid-Universal Example 2, try to group by any column and then Export to Excel to see the very customized Excel output.
Note that if you had a JSZip
path defined in your tsconfig.json
, you can now remove it. that is because we migrated to fflate
and it doesn't require any special config.
{
"compilerOptions": {
- "paths": {
- "jszip": [
- "node_modules/jszip/dist/jszip.min.js"
- ]
- }
}
}
You should also remove excel-builder-webpacker
from allowedCommonJsDependencies
{
"allowedCommonJsDependencies": [
"autocompleter",
"dompurify",
- "excel-builder-webpacker",
"fetch-jsonp",
"flatpickr",
"moment-mini",
"stream"
],
}
Please remember that all packages of @slickgrid-universal
(v4.4.1
) and Angular-Slickgrid
(v7.4.1
) must be updated at the same time and they will always get bumped on the same day to avoid any upgrade issues. You can also consult the Versions Compatibility Table - Wiki
please remember that Slickgrid-Universal monorepo now contains the biggest portion of the code (~90%), so most of the commits are now happening on that side.
Published by github-actions[bot] 9 months ago
This release brings some great new features, the most interesting one was contributed by @zewa666 which is a new Row Base Editing. The Row Based Edit plugin allows you to edit either a single or multiple specific rows at a time, while disabling the rest of the grid rows. See our new Example 35 and new Row Base Editing docs.
Another great but smaller feature is a new reorderable
column option to help lock a column in place (for more info see Slickgrid-Universal PR which include a small animated gif of the feature). Note that this feature is better when used with column position as first or last columns in the grid.
I did add and set reorderable: false
to the following 4 plugins, they can all be overriden when instantiating the plugin via their respective options
A huge thanks for @zewa666 contribution, the new Row Base Editing is most probably the biggest contribution made so far to this project. Thanks a lot!!! 🎉
autosizeColumns
is called too many times on page load (591c0c7)Please remember that all packages of @slickgrid-universal
(v4.3.0
) and Angular-Slickgrid
(v7.3.0
) must be updated at the same time and they will always get bumped on the same day to avoid any upgrade issues. You can also consult the Versions Compatibility Table - Wiki
please remember that Slickgrid-Universal monorepo now contains the biggest portion of the code (~90%), so most of the commits are now happening on that side.
Published by github-actions[bot] 10 months ago
This release brings some perf improvements and also completes the CSP Safe implementation, there was 1 last DataView function that was not yet converted to be CSP Safe and now it is (don't forget to use the new useCSPSafeFilter
if you also use the DataView). There is also a new CSP Compliance documentation that you can read.
Lastly a few other small features and fixes were pushed, see below. Happy Holidays 🎁
Please remember that all packages of @slickgrid-universal
(v4.2.0
) and Angular-Slickgrid
(v7.2.0
) must be updated at the same time and they will always get bumped on the same day to avoid any upgrade issues. You can also consult the Versions Compatibility Table - Wiki
please remember that Slickgrid-Universal monorepo now contains the biggest portion of the code (~90%), so most of the commits are now happening on that side.