Skip to content

Latest commit

 

History

History
739 lines (621 loc) · 24.3 KB

CHANGELOG.md

File metadata and controls

739 lines (621 loc) · 24.3 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog

[13.3.0] - 2022-07-04

Added

  • expandOnDblClick behavior for q-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)

Changes

  • 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

Fixes

  • 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 and shift-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

Added

  • New options fit-head for the columnWidth property to set column width based on origin column head width.
  • Be default save column widths in the persistence storage.

Changes

  • Remove HttpClientModule from the q-grid to fix setting up http interceptors when lazy loading.

Fixed

  • 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

Added

  • 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 and leave.

Fixed

  • Tab navigation on the page.
  • in filter condition works better with non-string types.

11.0.1 - 2021-03-30

Fixed

  • Loading first page in virtual scroll container.
  • Template column overrides all column props defined in typescript.

11.0.0 - 2021-03-01

Added

  • Right click on the q-grid cell selects all content of it.

Changed

  • Better pane api for the manual control.
  • Better parsing of non-ISO date formats.

BREAKING

  • Rename $view.filter.column to $view.filter.row.
  • Remove options property from $view.edit.cell.
  • Rename shortcuts to shortcut in the edit state.
  • Remove prevent property from the navigation state.
  • Remove id property from Action type.

9.2.1 - 2020-10-19

Fixed

  • 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.

Added

  • Date mask to enhance user input performance.
  • Two new properties in datetime columns dateFormat and timeFormat to enhance editing.
  • Persistence state now accepts schedule equals to onStateChange that allows to auto save grid state on user changes.

Changed

  • Date input and datepicker takes the format from the date column by using DateAdapter.

9.1.11 - 2020-08-19

Fixed

  • Do not focus grid on scene change.

9.1.10 - 2020-08-17

Fixed

  • Dates are properly converted to midnights.
  • When first input date in datetime input time is set to midnight.

9.1.9 - 2020-08-13

Fixed

  • 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

Fixed

  • Uncheck select all when switch to page with no-selection.

9.1.7 - 2020-07-23

Fixed

  • 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

Fixed

  • Fix date editor width.
  • Fix scrolling when column sort.
  • Fix editor position when scrolling is required.
  • Fix editor close event on navigation happen.

Changed

  • Cell handler is not animating when go to the row-details.

Added

  • To remove column chooser it's not required to override toolbar template.

9.1.5 - 2020-07-13

Fixed

  • Importing of LIVR library.
  • Set compilation target to es5.

Added

  • 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.

Changed

  • 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

BREAKING

  • Remove q-grid-title, use q-grid-caption instead.

Fixed

  • 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 in multiple and range modes.

Added

  • 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 by alt+[0-9] shortcuts.
  • Add timestamp property to mouse state to handle double clicks.

[9.1.2] - 2020-05-27

BREAKING

  • q-grid is block element by default, was inline.
  • Rename edit state property from state to status.
  • Selection state key property split into 2 rowKey and columnKey.
  • Data state id property split into 2 rowId and columnId.
  • 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 of null.
  • Rename column class to category.
  • Remove rowIndex, columnIndex, row, column from navigation state.

Added

  • 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 and observeReply 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 to showRows or showPages value.

Changed

  • 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 of null.

Fixed

  • *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

Fixed

  • Build

9.0.0 - 2020-03-13

Changed

  • Migrate to Angular 9.
  • Static query migration.

BREAKING

  • Cell selection occurs after mouse down not mouse up.

7.5.2 - 2020-03-04

Fixed

  • Dynamic column visibility.
  • Get rid of duplicate actions on destroy.

7.5.1 - 2020-01-22

Fixed

  • Fix npm package.

7.5.0 - 2020-01-22

Added

  • Keyboard API.
  • Mouse API.

Changed

  • Better column drag and drop.
  • Filter row style enhancements.

Fixed

  • Progress line.
  • Column filter matches labels not values.

BREAKING

  • Navigation event raised before selection event.
  • Pane context receives value from the trigger property NOT cell.
  • View model rows section now contains data before pagination.
  • Separate view pipe to scene and view pipes.
  • Remove debounce property from navigation model.

7.4.0 - 2019-08-16

Added

  • Selection singleOnly mode that prevent row unselecting, and draws radio buttons instead of check boxes.

7.3.0 - 2019-08-08

Added

  • Live row plugin.
  • Live cell plugin.

Changed

  • Space key selects the row.

7.2.6 - 2019-07-31

Fixed

  • Column isDefault property works as expected.

7.2.5 - 2019-07-29

Added

  • Live cell plugin.

Fixed

  • 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

Fixed

  • itemLabel works for auto-complete.

7.2.3 - 2019-06-20

Fixed

  • Can't enter edit mode when selection unit is row.

7.2.2 - 2019-06-20

Fixed

  • Layer default styles.

7.2.1 - 2019-06-20

Fixed

  • Angular Material version.

7.2.0 - 2019-06-20

Changed

  • Migrate to Angular 7.
  • Reference editor cancels value on backdrop click.
  • Move layer component under the box.

Fixed

  • 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.

Added

  • Possibility to add panes.
  • Layer panel gets class appropriate to layer name.

6.4.0 - 2019-05-14

Added

  • Column filter modes.

Fixed

  • Selection toggle command can control checkbox disable state.

6.3.9 - 2019-04-24

Added

  • Dropdown supports array of objects.

6.3.8 - 2019-04-15

Fixed

  • Support right pinned column in details mode.

6.3.7 - 2019-04-12

Fixed

  • 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

Changed

  • Focus service takes into account pagination.

Fixed

  • Compatibility with Chrome implementation of flex box overflow since version 73.
  • Select all button.

6.3.4 - 2019-03-12

Fixed

  • Default import template is shown up.

6.3.0 - 2019-02-22

Added

  • Add support row options menu dividers.

Changed

  • Show action title if icon is not set.
  • Get rid of ng-template in cell editor component.

Fixed

  • Custom symbols in the column key.
  • Fix column chooser label style.
  • Fix column filter header style.
  • Pagination styles.

6.2.4 - 2019-02-05

Fixed

  • Row options shortcut fix for multiple actions.

6.2.3 - 2019-02-05

Added

  • Row options shortcut support.

Fixed

  • Better FireFox support by encapsulation of MouseEvent path property.
  • Better edit strategy when trigger of editor options is set to 'focus'.

Added

  • Edit form support.
  • Travis CI.
  • Cucumber specs infrastructure.
  • Edit cell validation support.

Fixed

  • Blanks position in the column filter.

Fixed

  • Column filter blanks is removed when reset clicked.

Added

  • Column hierarchy and dnd support in the column chooser.
  • Cohort column dnd support.

BREAKING

  • model.columnList().index now contains tree of columns, not a column key list.

6.1.5 - 2018-07-03

Fixed

  • 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.

Added

  • Basic theme array, url and email support.

6.1.4 - 2018-06-28

Fixed

  • 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.

Added

  • 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.

Changed

  • Improve performance of Style API using dom bags directly.

6.1.3 - 2018-06-21

Fixed

  • 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

Fixed

  • Highlight on drag and drop.
  • Pager target should be closed after enter hit.

Changed

  • Column Filter, Column Chooser, Query Builder, Persistence Plugins became responsible.

6.1.0 - 2018-06-15

BREAKING

  • Need to change theme import from import { ThemeModule } from 'ng2-qgrid' to import { ThemeModule } from 'ng2-qgrid/theme/material

Deprecated

  • Use FetchContext search property instead of filter property.
  • Use <q-grid caption="My Grid"> instead of <q-grid header="My Grid">.

Added

  • 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.

Changed

  • 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.

Fixed

  • 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

Added

  • ToggleAll command that can be override to intersect toggle all groups action.

Changed

  • Clicking on group header leads to collapse/expand of all nodes in the view.
  • By default child node label is empty.

Fixed

  • Group pipe index calculation - the root cause of invalid filtering.

5.3.9 - 2018-05-18

Added

  • Focus method to the grid service.

Changed

  • AOT Compatible.
  • Angular CLI as app starter.
  • Rollup scripts to build the library.

Fixed

  • 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

Added

  • Template support of column filter items.

Fixed

  • Column sort plugin uses FocusAfterRender only on click.

5.3.6 - 2018-04-20

Added

  • Persistence plugin - added groups.

5.3.5 - 2018-04-19

Added

  • Query builder panel component styles are standalone.

5.3.4 - 2018-04-18

Added

  • Query builder plugin.
  • Cell batch update.

5.3.3 - 2018-04-13

Added

  • Persistence plugin.
  • Status bar plugin.
  • Selected chips in column filter plugin.
  • Focus cell when after sort or filter column.

Fixed

  • Vscroll reset.

5.3.2 - 2018-03-23

Added

  • Supporting of custom fetch in the column filter.
  • Virtual scroll module.
  • Pager target menu.

Changed

  • Added grid core pipes under there ng2-qgrid namespace.
  • Remove popup module.

Fixed

  • Pager custom size and sizeList not being honored/rendered correctly.
  • Rename action-bar-core to action-bar.

5.2.4 - 2018-02-16

Changed

  • Renamed action-bar-core to action-bar.
  • layout="row" refactored to class="layout-row".
  • Export q-grid common module to make q-grid-position directive available for the end user.

Fixed

  • Url editor.
  • Text alignment in the file editor.
  • Navigation should trigger detect changes.

5.2.3 - 2018-02-12

Fixed

  • Embed style for row-options column type.
  • TypeScript declarations.

5.2.2 - 2018-02-12

Fixed

  • Remove BrowserModule from components to allow lazy loading.
  • Fix column filter and column chooser styles.

5.2.0 - 2018-02-09

Added

  • Column viewWidth property.
  • Filter by property blanks option support.

Changed

  • 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.

Fixed

  • Better layout of column filter and column sort icons.

5.1.2 - 2018-01-03

Added

  • 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.

Changed

  • 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

Added

  • Legend plugin.
  • Bool cell editor.
  • File cell editor.
  • Image cell editor.

Changed

  • 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.

Fixed

  • Array cell editor improvements.
  • Fix minimization in release script.
  • Grid in grid support.

[5.0.2] - 2017-12-22

Added

  • 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.