Releases: ghiscoding/Angular-Slickgrid
Pinned (frozen) Columns/Rows & AutoComplete Editor/Filter
This version brings a long awaited request of Pinned Columns/Rows (aka Frozen). Also note that the demo with Bootstrap 3 is using previous lib version 1.x
(which doesn't latest features) and only the Bootstrap 4 demo got migrated to newer version 2.x
of the lib (with Angular 7). Also a reminder, new features will only go in version 2.x
of the lib which requires Angular 7+.
Note
I'm not sure why, possibly ng-packagr
, but since the lib was updated to Angular 7. I often have to release 2 versions to make it to work correctly. This is the reason why there was so many versions released recently. I don't think it's Angular itself but possibly the packager.
Features
- (frozen): add Frozen/Pinned rows/columns Feature (PR #93)
- (sorting): add "Clear Sort" in each Column Header Menu (PR #94)
- make sure to update your Translations for this new header menu (on each column), basically add this translation key
- you can also hide this new command (or any commands) through
headerMenu: { hideClearSortCommand: true }
in your Grid Options
- (filters): add optional placeholder to all Filters (PR #98)
- (editors): add optional placeholder to all Editors (PR #99)
- (formatter): Formatter can return a string or an object (PR #96)
- (autocomplete): Editor & Filter autocomplete feature (PR #101)
- demo | demo component | animated gif | Uncyclo doc
- since jQuery UI is a dependency of SlickGrid, using jQuery UI AutoComplete comes for free (no new lib).
- Chrome will detect the demo as unsafe script because of CORS, you can try with Firefox/Edge or simply allow script on that page
- also make sure you use the latest version of jQuery-UI through the
jquery-dist
NPM package (see howto). I lost 2 hours myself on this because I was using an older version of jQuery-UI
- (sorter): add object with dataKey as a Sort and add custom Sorter
- (headermenu): add Clear Filter to each Column Header Menu
- (divider): add divider option to Grid Menu & Column Header Menu items
- (filter): input mask filter (PR #107)
- note this is a very simplified mask filter, if the behavior is not what you are looking for then it might be better to create your own custom filter with an external 3rd party lib that support mask well
- (gridService): add new methods to GridService, see #110, #111
- add new methods "deleteDataGridItems" and "deleteDataGridItemByIds" to address issue #111
- add 3rd argument "shouldHighlightRow" boolean field to the "updateDataGridItem" ans "updateDataGridItems" method to address issue
- (formatter): Formatter returning an object now accept tooltip
Fixes
- (pagination): refresh paging after adding/deleting item with DataView
- (filter): Select Filter "addBlankEntry" sometimes add 2x entries
- (translateFormatter): shouldn't convert null values to string (PR #102)
- (build): distribution folder shouldn't be part of the Git project (PR #103)
- (filter): Header Menu Clear Filter not calling Grid State change
- (styling): fix styling issue when Filters are filled
- adds a
filled
class which user can customize to his need, e.g. change background-color of filled Filters - Uncyclo doc
- adds a
- (delete): remove any row selection after deleting a row, #111
- (backend): debounceTypingDelay on input Filter was no longer
- (filter): on ENTER key it should skip debounce waiting on input
- (pagination): incorrect pagination behavior on adding/removing items
- (filter): all jquery .on bound event should also be unbound
- (regression): the commit cdcc979 caused a regression with click event
- (filter): Select Filter doesn't get removed on destroy
Refactoring
- (backend): remove all castToPromise and keep Observables as is
Draggable Grouping
Features
- (grouping): add draggable grouping plugin
- see demo Example 18 / component
- (inputType): Add multiple input types (number/password)
inputNumber
,inputPassword
,compoundInputNumber
,compoundInputPassword
- (remote): add
customDataView
with Remote Model feature with an example- this was actually released in version
1.8.x
but it's still very new
-see demo Example17, Chrome might block the remote model api javascript file loading, you can unblock it or try with different browser like Firefox/Edge
- this was actually released in version
- (selector): add new property to display "Select All" checkbox in different location (header row (default) or filter row)
- the default doesn't show "Select All" on the filter row, it's useful to change this property, to do so you can change
hideInFilterHeaderRow: false
andhideInColumnTitleRow: true
- the default doesn't show "Select All" on the filter row, it's useful to change this property, to do so you can change
Fixes
- (filter): Date in UTC format with milliseconds not filtering well
- (grouping): toggle group not working in example 18, fixes #91
- (filter): all jquery .on bound event should also be unbound
Angular 7 support
This is a Major
version because there are breaking changes (thanks to Angular).
Also worth to know that I skipped Angular 6, if you wish to remain on that version then use lib version 1.x
and follow this comment with rxjs-compat
Breaking Changes
- updated
RxJs
to version6.3.x
- updated
@ngx-translate/core
to11.x.x
- updated
@ngx-translate/http-loader
to4.x.x
- updated all Angular libs to
7.x.x
- updated
ng-packagr
to4.4.x
Previous Version 1
- Previous version
1.x
will still be supported but only for patches/fixes - all new major features will be available only on the version
2.x
upward
Fixes
- (grouping): toggle group not working in example 18, fixes #91
Extract all SlickGrid Controls/Plugins into their own classes
This new release does not bring much to the user on the feature side of it, however in code there was a major rewrite in how SlickGrid Controls & Plugins (gridMenu, headerMenu, columnPicker, ...) are handled. It was all previously under 1 big Service which was getting way too big, the rewrite was to separate them all in individual classes/services which is much more maintainable. Another big change, again under the hood, is that each of these controls/plugins (now called simply as Extensions
) will be called On Demand, meaning that if you don't enable the extension, it won't use the SlickGrid Control/Plugin, this should end up in smaller prod build size (SlickGrid has about 10 controls/plugins and you might not use them all).
Features
- (filter): add "filter-{id}" to all Filters. easier styling & target
- (editor): add "editor-{id}" to all Editors. easier styling & target
- (plugin): split out all controls/plugins into their own class
- load extension on demand (dynamically via
require
) - use DI in all Extensions
- load extension on demand (dynamically via
- (plugin): add new Example 17 of SlickGrid Plugin - Row Move Manager, closes #78
- (update): add new method
updateDataGridItems
(in GridService) for multiple changes- also provide optional flag to disable highlight on both
updateDataGridItem
&updateDataGridItems
- also provide optional flag to disable highlight on both
- (remote): add CustomDataView flag and feature, ref issue #83
- (backend): add onError callback which catch error from process
- (remote): add Remote Model example with custom dataview
- Example 18 - Remote Model example with SlickGrid Remote Model Plugin Octopart demo
- (badge): add download count badge
Fixes
- (backend): made pagination input larger and shrink other elements
- (select): collectionAsync error thrown when using collection, closes #76
- (resize): global delay timer was affecting multiple grid resize, closes #81
- (editor): Float Editor Validator not working with
.5
but works with0.5
- (pagination): fixed a few pagination problem used by backend service
Collection now support multiple filterBy/sortBy... and more features & fixes
Features
- (resize): add
maxHeight
&maxWidth
options to Resizer Service (autoResize
) - (filter): add possibility to filter complex objects (with JSON dataset)
- (sort): add possibility to sort complex objects (with JSON dataset)
- (collection): support multiple filterBy/sortBy in CollectionService
- (collection): add
FilterMultiplePassType
(with option:merge
,chain
) - Uncyclo doc
- (collection): add
- (editor): add auto commit edit flag to grid options
- new Grid Option boolean flag name is
autoCommitEdit
- new Grid Option boolean flag name is
- (select): add option to use label as selected text
- (select): Filter/Editor able to translate
prefix
/suffix
/optionLabel
- (select): collection can also be of type String (not just label/value pair)
Fixes
- (header): use showHeaderRow flag when defined by user
- (graphql): should be able to use
presets
even if field is not a column definition - (select): fix
separatorBetweenLabels
to usejoin
so that it doesn't add extra separator whenprefix
orsuffix
isn't present - (resize):
autoAdjustDropWidthByTextSize
should handle 100% width - (resize): when having 2 grids resize only works on 1 grid
- (select): Single Select should use EQ operator instead of IN
- (select): multiple-select autoAdjustDropWidth sometime incorrect
- (resize): auto-resize shouldn't resize when fixing gridHeight/gridWidth
Dynamically Change Row CSS Classes
Features
- Dynamically Change Row CSS Classes (styling)
- (editor): pass Editor Args to editor Validators
- (filter): add posibility to filter complex objects
Fixes
- (editor): LongText & Select Editor should close when tabbing away
- (chrome): Compensate incorrect SlickGrid
measureScrollbar
causing horizontal scrollbar to sometime show up in Chrome browser only- this was observed on computer with Chrome and only 20% of the time
- miscalculation of 3px was the cause of the horizontal scrollbar
- (update): regression updateDataGridItem shouldn't throws error
- (export): remove extra comma at the end of each line
- (filter): regression fix on select filters
- (styling): remove black border bottom from column headers
- this was only showing with an
ng build
Prod
- this was only showing with an
- (demo): fix Grid Editor component demo which the prerequisite editor that was misbehaving
- (editor): make the Float Editor Validator work correctly min/max val
- (export): Export should work with datasetIdPropertyName, closes #67
auto-adjust Select drop height, width & position
Features
- (multiselect): auto-adjust height, width & position of
multiple-select.js
- 3 new flags were added to control height, width, position of the drop from Single/Multiple Select Filters/Editors
autoAdjustDropHeight
,autoAdjustDropPosition
,autoAdjustDropWidthByTextSize
- these new flags are all enabled by default, however you can choose to disable them at any time
- multiple other properties were also added to change behavior, if need be, of these auto-adjustments
minWidth
,maxWidth
,adjustHeightPadding
maxHeight
(already existed but can be helpful with these new adjustments
- for more in depth details, please see the PR #59 or Uncyclo - Select Filter
- 3 new flags were added to control height, width, position of the drop from Single/Multiple Select Filters/Editors
- (style): customize grid styling with more variables
Fixes
- (columnSize): add flag enableAutoSizeColumns, closes #60
- (header): hidding column from header menu after reordering fixes #62
Small Fixes & Features to Filters/Editors
Features
- (filter): auto adjust drop position (up/down) of select filter
Fixes
- (formatter): null values not handled properly with number formatters
- (editor): auto adjust drop position (up/down) broken multiple editors
Small breaking change with Editor/Filter CustomStructure
Released under a minor
release because it's a breaking change (though not big enough for a major
).
I would be surprised that anyone even used these new options yet which were added faily recently to the customStructure
object, but just in case, I decided to release a minor
version for that reason
Breaking Change
- (customStructure): options moved to new collectionOption property
- cut all options (4x) out of
customStructure
and move them to the newcollectionOption
property - the 4 options moved were (
addBlankEntry
,collectionInObjectProperty
,separatorBetweenTextLabels
,includePrefixSuffixToSelectedValues
) which are now undercollectionOption
- cut all options (4x) out of
MultipleSelect / SingleSelect Editors & Filters Collection Async
Features
- (editor): add
collectionAsync
to editor - (filter): add
collectionAsync
to filter - (formatter): add new arrayObjectToCsv Formatter
- (formatter): add 2 new DateTime Short Formatter without seconds
- (filter): optionally pull collection from object property
- (filter): optionally add a blank entry to the collection
- (editor): optionally pull collection from object property
- (editor): optionally add a blank entry to the collection
Refactoring
- (styling): change default singleSelect radio icon
- (example): add editors inside the example to test issue reported in #53
Fixes
- (pagination): Only display Pagination with backendServiceApi
- (build): remove unnecessary lodash from package.json
- (filter): MultipleSelect Filter had z-index too low in modal window
- (sanitize): replace sanitize-html with DOMPurify for a much smaller lib
- (selector): Row Selection should be reset for a Sort change also
- (editor): LongText Editor should'nt throw i18n error when missing
- (grouping): Grouping with Filter should work together, closes #57
Breaking Changes
- (custom): Editor/Filter CustomStructure
addSpaceBetweenLabels
property replaced byseparatorBetweenTextLabels