All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog
expandOnDblClickbehavior forq-grid-rowcomponent, which allows to open row details on double click- Experimental!! The
DataProvidertype is a new way to support pagination, filtering and sorting on the server side(do not use in prod, not a stable API)
- Requires angular version 13.3.8, cdk\material version 13.3.9.
- Improvements due to Lighthouse report
- More strict Angular compilation mode, which allows you to be more strict in the final application
- Go to the lerna monorepo and use
ng buildinstead of a custom build, which allows for faster upgrades. - Experimental!! Use observable instead of ngOnChanges in the
dirtydirective - The data manipulation plugin does a better job of comparing values.
- Column selection moved to actions by doing
model.action({items: []}), it can be removed from the toolbar without touching the html. !!It can break the logic with actions, if there were any custom ones. - Improved d.ts typing
- Fixed issue with
row-numbercolumn when second page has incorrect values. - Fixed calculation of the
timestampproperty of the mouse state (usually used to emulate double clicks) - Fix stack blitz examples
- Fixed huge number of selectionChange events when selection is in
rangemode - Fixed data manipulation plugin clearing all actions on destruction.
- Fixed navigation in edit mode with
tabandshift-tabkeys for first or last cell. - Fix classList element can be undefined when clicked outside the grid.
- Fix target modal pager not preventing click propagation
11.2.0 - 2021-10-22
- New options
fit-headfor thecolumnWidthproperty to set column width based on origin column head width. - Be default save column widths in the persistence storage.
- Remove HttpClientModule from the q-grid to fix setting up http interceptors when lazy loading.
- Applying persistance storage settings when data rows are set up synchronously.
- Correctly invalidate selection when row was deleted.
- Batch edit.
11.1.1 - 2021-06-16
- Introduce
customproperty that can be overridden to apply custom filter logic. - New recommend way to override cell template by
<ng-template qGridColumnBody="birth"> - A brand new
q-grid-cell-templatecomponent to show tooltips over the cells. - Three new mouse statuses
move,enterandleave.
- Tab navigation on the page.
infilter condition works better with non-string types.
11.0.1 - 2021-03-30
- Loading first page in virtual scroll container.
- Template column overrides all column props defined in typescript.
11.0.0 - 2021-03-01
- Right click on the q-grid cell selects all content of it.
- Better pane api for the manual control.
- Better parsing of non-ISO date formats.
- Rename $view.filter.column to $view.filter.row.
- Remove
optionsproperty from $view.edit.cell. - Rename
shortcutstoshortcutin the edit state. - Remove
preventproperty from the navigation state. - Remove
idproperty fromActiontype.
9.2.1 - 2020-10-19
- Fix datepicker which didn't work in edit mode correctly, by introducing
q-grid-editor-partcss class. - Empty date is a valid case.
- Filter row works when between operator is chosen.
- Date mask to enhance user input performance.
- Two new properties in datetime columns
dateFormatandtimeFormatto enhance editing. - Persistence state now accepts schedule equals to
onStateChangethat allows to auto save grid state on user changes.
- Date input and datepicker takes the format from the date column by using DateAdapter.
9.1.11 - 2020-08-19
- Do not focus grid on scene change.
9.1.10 - 2020-08-17
- Dates are properly converted to midnights.
- When first input date in datetime input time is set to midnight.
9.1.9 - 2020-08-13
- Predicate visitor get type from the column and not resolve it by itself.
- If start\end is not set using between operator it works like greaterOrEquals\lessOrEquals.
9.1.8 - 2020-08-11
- Uncheck select all when switch to page with no-selection.
9.1.7 - 2020-07-23
- Column filter between operator doesn't appear.
- Column filter doesn't work properly due to the not valid filter value type.
9.1.6 - 2020-07-20
- Fix date editor width.
- Fix scrolling when column sort.
- Fix editor position when scrolling is required.
- Fix editor close event on navigation happen.
- Cell handler is not animating when go to the row-details.
- To remove column chooser it's not required to override toolbar template.
9.1.5 - 2020-07-13
- Importing of LIVR library.
- Set compilation target to es5.
- Support 2 version 9.1.x - Ivy, 9.1.x-ve - View Engine.
q-grid-shortcut-hostdirective that can change key event source for q-grid commands.- Command palette API to access grid core commands.
- Command state added to the model.
- Shortcut system.
- Better top toolbar layout.
- Grid title now wraps to the second row if not fit to width.
9.1.4 - 2020-06-01
- Remove q-grid-title, use
q-grid-captioninstead.
- Remove auto entering to the edit mode on cell focus.
- Row options column menu item click doesn't trigger an action.
- Fixed when cell-handler go out of view port when hold page-up.
- Highlight column on mouse over even if it's sorted.
- When focus grid using tab key, also focus first focusable cell.
- Clear function on column filter expression views deactivates filter.
- Pane doesn't work when select row.
- Select all by
ctrl-ainmultipleandrangemodes.
- Add new option for column generation, typeDetection = 'inference' | 'raw'.
- Add shortcuts to the pager's next/prev buttons (alt+pagedown, alt+pageup).
- Introduce q-grid-row
behaviorarray input to control if it's required to expand row on click or shortcut. - Add
q-grid-focusedclass to the row when one of it's cell is in focus.. - Add
q-grid-altplugin that automatically set pagination and selection byalt+[0-9]shortcuts. - Add
timestampproperty to mouse state to handle double clicks.
- q-grid is block element by default, was inline.
- Rename edit state property from
statetostatus. - Selection state
keyproperty split into 2rowKeyandcolumnKey. - Data state
idproperty split into 2rowIdandcolumnId. - Remove
actions,pipe,selectionKey,filterFetchinput properties from the grid component. - Remove
keepmethod from grid plugin. - Data rowId returns row index by default not the instance.
- Instead of class q-grid-cell.key use q-grid-
the-cell.key. - Get rid of redundant spans in cell templates.
- Column pin
mininstead ofnull. - Rename column
classtocategory. - Remove
rowIndex,columnIndex,row,columnfrom navigation state.
- Ivy support.
- New scene status called
idle, before the first render. - Introduce canExecuteCheck for the command to explicitly update canExecute status.
- Extend plugin interface with
observeandobserveReplyfunctions. - Copy cell label to clipboard.
- New column type
datetimethat represents date and time. - Possibility to change column filter template for the particular column.
- New way to access dynamic states like columnChooser, through the
resolvemethod. - Introduce pager
modethat can be equal toshowRowsorshowPagesvalue.
- Better plugin support.
- Get rid of model proxy.
- Rendering performance improvements.
- All components got OnPush CDS.
- Better core types.
- Row details get focus on expand.
- Immutable model state to prevent event handling artifacts.
- Remove browser select.
- Optimize css styles for rendering performance and size.
- Pin
midinstead ofnull.
- *ngIf for column component works.
- Fix row options icon is jumping on edit.
- Row resize algorithm.
- Better paddings for column filter and chooser.
9.0.1 - 2020-03-13
- Build
9.0.0 - 2020-03-13
- Migrate to Angular 9.
- Static query migration.
- Cell selection occurs after mouse down not mouse up.
7.5.2 - 2020-03-04
- Dynamic column visibility.
- Get rid of duplicate actions on destroy.
7.5.1 - 2020-01-22
- Fix npm package.
7.5.0 - 2020-01-22
- Keyboard API.
- Mouse API.
- Better column drag and drop.
- Filter row style enhancements.
- Progress line.
- Column filter matches labels not values.
- Navigation event raised before selection event.
Panecontext receives value from the trigger propertyNOTcell.Viewmodelrowssection now contains data before pagination.- Separate
viewpipe tosceneandviewpipes. - Remove
debounceproperty from navigation model.
7.4.0 - 2019-08-16
- Selection
singleOnlymode that prevent row unselecting, and draws radio buttons instead of check boxes.
7.3.0 - 2019-08-08
- Live row plugin.
- Live cell plugin.
Spacekey selects the row.
7.2.6 - 2019-07-31
- Column
isDefaultproperty works as expected.
7.2.5 - 2019-07-29
- Live cell plugin.
- Toggle column filter operator not reset predicate.
- Search in column chooser does not work when column title is null.
7.2.4 - 2019-06-25
itemLabelworks for auto-complete.
7.2.3 - 2019-06-20
- Can't enter edit mode when selection unit is row.
7.2.2 - 2019-06-20
- Layer default styles.
7.2.1 - 2019-06-20
- Angular Material version.
7.2.0 - 2019-06-20
- Migrate to Angular 7.
- Reference editor cancels value on backdrop click.
- Move layer component under the box.
- Commit command get correct arguments.
- Better mouse navigation in edit mode.
- Dropdown behavior on close.
- Limit filter by chip width to support multiline text.
- Do not show shortcut tooltip in action bar if it's empty
- Same id layers can be accidentally shown.
- Possibility to add panes.
- Layer panel gets class appropriate to layer name.
6.4.0 - 2019-05-14
- Column filter modes.
- Selection toggle command can control checkbox disable state.
6.3.9 - 2019-04-24
- Dropdown supports array of objects.
6.3.8 - 2019-04-15
- Support right pinned column in details mode.
6.3.7 - 2019-04-12
- Propagate
descriptionproperty in column component. - Reset scroll only if page size, page or filter was changed.
- Better pagination behavior when after data rows changed.
6.3.5 - 2019-04-11
Focus servicetakes into account pagination.
- Compatibility with Chrome implementation of flex box overflow since version 73.
- Select all button.
6.3.4 - 2019-03-12
- Default import template is shown up.
6.3.0 - 2019-02-22
- Add support row options menu dividers.
- Show action title if icon is not set.
- Get rid of ng-template in cell editor component.
- Custom symbols in the column
key. - Fix column chooser label style.
- Fix column filter header style.
- Pagination styles.
6.2.4 - 2019-02-05
- Row options shortcut fix for multiple actions.
6.2.3 - 2019-02-05
- Row options shortcut support.
- Better FireFox support by encapsulation of MouseEvent path property.
- Better edit strategy when trigger of editor options is set to 'focus'.
- Edit form support.
- Travis CI.
- Cucumber specs infrastructure.
- Edit cell validation support.
- Blanks position in the column filter.
- Column filter
blanksis removed when reset clicked.
- Column hierarchy and dnd support in the column chooser.
- Cohort column dnd support.
model.columnList().indexnow contains tree of columns, not a column key list.
6.1.5 - 2018-07-03
- Row highlight in details modes.
- Mark q-grid for check on invalidate, that allows to have basic functionality when q-grid host has onPush strategy.
- Basic theme array, url and email support.
6.1.4 - 2018-06-28
- Time cell editor.
- Fix q-grid-embedded array cell look.
- Percent width are aware of pad column padding.
- Show horizontal scroll-bar if there are no data rows, but some columns are present.
- Observables in dropdown editors.
- Beta version of row virtual scrolling.
- Tab-trap component for the url and email editors.
- Column groups manipulation through the structural directives.
- Import from csv, pdf, xlsx, json.
- Export to csv, pdf, xlsx, json.
- Improve performance of Style API using dom bags directly.
6.1.3 - 2018-06-21
- Fixed AOT compilation.
- Fixed time editor value assign.
- Dark theme for plugins and cell handler.
- Textarea editor now shows length of the input text.
6.1.1 - 2018-06-15
- Highlight on drag and drop.
- Pager target should be closed after enter hit.
- Column Filter, Column Chooser, Query Builder, Persistence Plugins became responsible.
6.1.0 - 2018-06-15
- Need to change theme import from
import { ThemeModule } from 'ng2-qgrid'toimport { ThemeModule } from 'ng2-qgrid/theme/material
- Use
FetchContextsearchproperty instead offilterproperty. - Use
<q-grid caption="My Grid">instead of<q-grid header="My Grid">.
- Support of custom themes, we are not linked tight with angular/material any more.
- 113+ Examples.
- Readonly strategies
<q-grid interactionMode="full | readonly | detached">. - Spanned headers and column groups.
- Group summaries.
PluginServicesthat allows to write own plugins for q-grid.- Better caching strategies for renders.
- New
rowspanmode for groups. - New
rowListmodel. - Drag and drop column support in
column chooser. - Initial basic theme.
- Float(fixed) rows support through the
model.row()pinproperty. - New column generation mode
cohort. - Action trigger template support.
- Live
drag and dropfor rows and columns. - Use
Model Proxyfor resource utilization. - New
Dom matrixengine for rendering. - Reference column API.
- Pin columns are highlighted when scroll horizontal.
- Better row details rendering.
- Fixed focus position on scene render (e.g. sort, filter etc.).
- Column sort algorithm became more predictable.
- Array cell editor doesn't work with keyboard.
5.3.10 - 2018-05-21
ToggleAllcommand that can be override to intersect toggle all groups action.
- Clicking on group header leads to collapse/expand of all nodes in the view.
- By default child node label is empty.
Group pipeindex calculation - the root cause of invalid filtering.
5.3.9 - 2018-05-18
- Focus method to the grid service.
- AOT Compatible.
- Angular CLI as app starter.
- Rollup scripts to build the library.
- FocusAfterRender service.
- Column filter IsBlank is displayed in chips.
- Legend template syntax.
- TypeScript definitions.
- Async pipe for rows property.
5.3.7 - 2018-07-08
- Template support of column filter items.
- Column sort plugin uses
FocusAfterRenderonly on click.
5.3.6 - 2018-04-20
Persistenceplugin - added groups.
5.3.5 - 2018-04-19
Query builder panelcomponent styles are standalone.
5.3.4 - 2018-04-18
Query builderplugin.- Cell batch update.
5.3.3 - 2018-04-13
Persistenceplugin.Status barplugin.- Selected chips in
column filterplugin. - Focus cell when after sort or filter column.
- Vscroll reset.
5.3.2 - 2018-03-23
- Supporting of custom fetch in the column filter.
- Virtual scroll module.
- Pager target menu.
- Added grid core pipes under there
ng2-qgridnamespace. - Remove
popupmodule.
- Pager custom size and sizeList not being honored/rendered correctly.
- Rename
action-bar-coretoaction-bar.
5.2.4 - 2018-02-16
- Renamed
action-bar-coretoaction-bar. layout="row"refactored toclass="layout-row".- Export q-grid
common moduleto makeq-grid-positiondirective available for the end user.
- Url editor.
- Text alignment in the file editor.
- Navigation should trigger detect changes.
5.2.3 - 2018-02-12
- Embed style for
row-optionscolumn type. - TypeScript declarations.
5.2.2 - 2018-02-12
- Remove
BrowserModulefrom components to allow lazy loading. - Fix column filter and column chooser styles.
5.2.0 - 2018-02-09
- Column viewWidth property.
- Filter
bypropertyblanksoption support.
- Show (Blanks) checkbox in column filter if there is empty string, null or undefined in the list.
- Explicitly set
display: inlinefor label in column sort plugin. - Change q-grid-embed styles.
- Better layout of column filter and column sort icons.
5.1.2 - 2018-01-03
- Possibility to change row size
<q-grid-row [canResize]="true". - Possibility to drag and drop rows
<q-grid-row [canMove]="true". - Style queue to the style Api, accessible through style model cells/rows props.
- Rows property to the layout property.
- Improve performance through change detection strategy.
- Improve performance through reducing number of change detections.
- Improve performance through adding track by index.
- Improve performance through invoking drag and drop out of ng zone.
- Layout columns property changed type form object to map.
5.1.1 - 2017-12-28
- Legend plugin.
- Bool cell editor.
- File cell editor.
- Image cell editor.
- Theme module should be explicitly added to the user application.
- Backdrop triggers close event on mouse wheel click.
- Change dependencies to peer in prod package.json.
- Array cell editor improvements.
- Fix minimization in release script.
- Grid in grid support.
- Theme support.
- Material theme that is used angular material inside.
- Grid service that allows to create grid model and get more control on the grid itself.
- Make grid header and footer sticky.
- Sticky footer.
- Top, left, right, bottom toolbars.
- Embed flex css framework, that was extracted from angular-material.
- Auto generation modes for columns.
- Allow to reorder columns.
- Allow to resize columns.
- Allow to setup width of column in percents.
- Allow to have custom templates for cells in html.
- Column multi-sort support
- Column sort modes: single, multiple
- Column sorting depends on position
- Frozen columns.
- Custom.
- Array column type.
- Bool column type.
- Date column type.
- Email column type.
- Group column type.
- Number column type.
- Pad column type.
- Password column type.
- Pivot column type.
- Row indicator column type.
- Row number column type.
- Select column type.
- File column type.
- Time column type.
- Image column type.
- Url column type.
- Currency column type.
- Row options column type.
- Row expand column type.
- Row details column type.
- Reference column type.
- Id column type.
- Row details.
- Cell inline editing.
- Cell navigation with keyboard.
- Mouse navigation.
- Style API to apply runtime style to the cells and rows.
- Row and cell highlighting.
- Focus cell API.
- Range selection.
- Row selection.
- Cell selection.
- Mix selection, when user can select row by clicking on row-indicator column or cell.
- Selection key that allows to reduce data row to some valuable thing.
- Selection modes: single and multiple.
- Keyboard editing support.
- Edit API.
- Dropdown editor.
- Textarea editor.
- Column filter plugin.
- Initial filter row implementation.
- Filter API for custom filters.
- Column grouping.
- Custom hierarchy for grouping.
- Column pivoting.
- Import/Export to csv, excel and pdf.
- Column aggregation.
- Plugin system.
- Column chooser plugin.
- Pager plugin.
- Progress plugin.