All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog
expandOnDblClick
behavior forq-grid-row
component, which allows to open row details on double click- Experimental!! The
DataProvider
type 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 build
instead of a custom build, which allows for faster upgrades. - Experimental!! Use observable instead of ngOnChanges in the
dirty
directive - 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-number
column when second page has incorrect values. - Fixed calculation of the
timestamp
property of the mouse state (usually used to emulate double clicks) - Fix stack blitz examples
- Fixed huge number of selectionChange events when selection is in
range
mode - Fixed data manipulation plugin clearing all actions on destruction.
- Fixed navigation in edit mode with
tab
andshift-tab
keys 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-head
for thecolumnWidth
property 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
custom
property 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-template
component to show tooltips over the cells. - Three new mouse statuses
move
,enter
andleave
.
- Tab navigation on the page.
in
filter 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
options
property from $view.edit.cell. - Rename
shortcuts
toshortcut
in the edit state. - Remove
prevent
property from the navigation state. - Remove
id
property fromAction
type.
9.2.1 - 2020-10-19
- Fix datepicker which didn't work in edit mode correctly, by introducing
q-grid-editor-part
css 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
dateFormat
andtimeFormat
to enhance editing. - Persistence state now accepts schedule equals to
onStateChange
that 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-host
directive 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-caption
instead.
- 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-a
inmultiple
andrange
modes.
- 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
behavior
array input to control if it's required to expand row on click or shortcut. - Add
q-grid-focused
class to the row when one of it's cell is in focus.. - Add
q-grid-alt
plugin that automatically set pagination and selection byalt+[0-9]
shortcuts. - Add
timestamp
property to mouse state to handle double clicks.
- q-grid is block element by default, was inline.
- Rename edit state property from
state
tostatus
. - Selection state
key
property split into 2rowKey
andcolumnKey
. - Data state
id
property split into 2rowId
andcolumnId
. - Remove
actions
,pipe
,selectionKey
,filterFetch
input properties from the grid component. - Remove
keep
method 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
min
instead ofnull
. - Rename column
class
tocategory
. - Remove
rowIndex
,columnIndex
,row
,column
from 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
observe
andobserveReply
functions. - Copy cell label to clipboard.
- New column type
datetime
that represents date and time. - Possibility to change column filter template for the particular column.
- New way to access dynamic states like columnChooser, through the
resolve
method. - Introduce pager
mode
that can be equal toshowRows
orshowPages
value.
- 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
mid
instead 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.
Pane
context receives value from the trigger propertyNOT
cell.View
modelrows
section now contains data before pagination.- Separate
view
pipe toscene
andview
pipes. - Remove
debounce
property from navigation model.
7.4.0 - 2019-08-16
- Selection
singleOnly
mode that prevent row unselecting, and draws radio buttons instead of check boxes.
7.3.0 - 2019-08-08
- Live row plugin.
- Live cell plugin.
Space
key selects the row.
7.2.6 - 2019-07-31
- Column
isDefault
property 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
itemLabel
works 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
description
property 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 service
takes 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
blanks
is removed when reset clicked.
- Column hierarchy and dnd support in the column chooser.
- Cohort column dnd support.
model.columnList().index
now 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
FetchContext
search
property instead offilter
property. - 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.
PluginServices
that allows to write own plugins for q-grid.- Better caching strategies for renders.
- New
rowspan
mode for groups. - New
rowList
model. - Drag and drop column support in
column chooser
. - Initial basic theme.
- Float(fixed) rows support through the
model.row()
pin
property. - New column generation mode
cohort
. - Action trigger template support.
- Live
drag and drop
for rows and columns. - Use
Model Proxy
for resource utilization. - New
Dom matrix
engine 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
ToggleAll
command 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 pipe
index 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
FocusAfterRender
only on click.
5.3.6 - 2018-04-20
Persistence
plugin - added groups.
5.3.5 - 2018-04-19
Query builder panel
component styles are standalone.
5.3.4 - 2018-04-18
Query builder
plugin.- Cell batch update.
5.3.3 - 2018-04-13
Persistence
plugin.Status bar
plugin.- Selected chips in
column filter
plugin. - 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-qgrid
namespace. - Remove
popup
module.
- Pager custom size and sizeList not being honored/rendered correctly.
- Rename
action-bar-core
toaction-bar
.
5.2.4 - 2018-02-16
- Renamed
action-bar-core
toaction-bar
. layout="row"
refactored toclass="layout-row"
.- Export q-grid
common module
to makeq-grid-position
directive 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-options
column type. - TypeScript declarations.
5.2.2 - 2018-02-12
- Remove
BrowserModule
from components to allow lazy loading. - Fix column filter and column chooser styles.
5.2.0 - 2018-02-09
- Column viewWidth property.
- Filter
by
propertyblanks
option support.
- Show (Blanks) checkbox in column filter if there is empty string, null or undefined in the list.
- Explicitly set
display: inline
for 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.