Releases: handsontable/handsontable
Releases · handsontable/handsontable
14.5.0
Added
- Added support for other keyboard layouts besides QWERTY (e.g. AZERTY). #11027
- Added missing "this" typing for the ColumnSummary plugin. #11036
- Added Undo/Redo logic for the ColumnSorting/ManualColumnSorting plugins. #11037
- Added new option
headerClassName
, which allows adding custom CSS classes to the column headers. #11076
Changed
- Improved the precision of calculating the height and width of columns and rows. #11049
- Improved the rendering performance. #11069
Fixed
- Fixed Context.getShortcuts type. #10910
- Improved performance of cell merging. #10995
- Fixed a problem where clicking and dragging on cells in window-controlled scrolled instances would result in unpredictable behavior. #10996
- Fixed a bug that prevented column sorting of the checkbox cell types. #11004
- Fixed merged cells misalignment in overlays. #11007
- Fixed selection expansion for merged cells. #11010
- Fixed a problem where the table could go into an endless resize loop when one of the instance's parents was using
dvh
values for sizing, and the table was not given any size itself. #11021 - Fixed a bug where the
afterSetCellMeta
was unnecessarily triggered after clicking on the comments textarea element. #11033 - Fixed invalid cell states after data population that was canceled in the
beforeChange
hook. #11035 - Fixed a problem with the Formulas plugin using wrong indexes when performing autofill. #11038
- Fixed a problem where disabling
navigableHeaders
broke keyboard navigation in the first row if the option was previously enabled and used. #11043 - Fixed a problem where the dropdown menu would not close after tapping on the table cells on mobile browsers. #11044
- Fixed the header selection with
nestedHeaders
enabled not working on mobile devices. #11051
For more information on Handsontable 14.5.0, see:
14.4.0
Added
- Extended the
manualRowResize
plugin with a method to retrieve the row height value from the last manual adjustment attempt. #10941 - Added an option to change the order of hook callbacks. #10970
- Added new
dataDotNotation
option which, when set asfalse
allows using object keys with dots. #10973
Changed
- Improved editor behavior after dataset alterations. #10963
- React: Synchronized the
rollup
version between the wrappers and updated therollup
plugin dependencies. #10962
Fixed
- Fixed unwanted table re-rendering for oversized rows/columns. #10912
- Fixed
Ctrl/Cmd
+Enter
keyboard shortcut for comments. #10920 - Fixed issue with rows and columns not unfreezing when headers are disabled. #10926
- Fixed
imeFastEdit
option being reset afterupdateSettings
call #10933 - Improved fast typing values between editors. #10947
- Removed double borders for column headers. #10948
- Fixed column width calculations with
stretchH: 'all'
option. #10954 - Fixed missing column summary cell meta state after
updateSettings
method call. #10955 - Fixed sorting issue for the
time
column type. #10956 - Fixed data populate error with
correctFormat
usage. #10957 - Fixed cell meta coordinates overwrite by
GhostTable
. #10961 - Fixed
setDataAtRowProp
error when saving data into a trimmed-out column. #10964 - Fixed table scrolling issue after inserting a new row over a table-wide selection. #10965
- Fixed copy/cut/paste issue from outside elements. #10976
- Fixed autocomplete dropdown dimensions after filtering out all choices. #10977
- Fixed dataset clearing issue for formulas. #10983
- Improved typings for the ContextMenu plugin. #10984
- Added missing type for
namedExpressions
. #10986 - Fixed double borders for row/column headers. #10988
- Fixed a problem, where trying to render a hidden instance made it render all of its rows by disabling the rendering for hidden instances. #10989
- Fixed error in numeric cell types after entering non-numeric values. #10931
- Fixed a bug that prevented column sorting of the checkbox cell types. #11004
- Updated the TS typings of the Shortcut Manager's
getShortcuts
method. #10910 - React: Prevented React wrapper from throwing errors on updating component props with init-only settings. #10921
For more information on Handsontable 14.4.0, see:
14.3.0
Added
- Added new feature, Navigation within selection and edit cells within a range #10732
Changed
- Updated dependencies based on npm audit, most notably we upgraded to angular 17.0 #10889
Fixed
- Ensured the cursor changes to 'grabbing' for all table elements during column or row movement#10852
- Resolved an issue where the
TAB
key failed to move selection when editing select-type cells in 'fast edit' mode. #10849 - Prevent the
Cmd/Ctrl + A
action when the focus is on headers. #10853 - Unified
source
arguments inbeforeChange
andafterChange
hooks triggered by the Merge Cells plugin. #10857 - Ensured focus retention after column collapsing. #10865
- Fixed visibility issue with bottom/right cell borders after scrolling from the absolute top/left positions using the api. #10887
- Fixed Dropdown plugin logic to prevent blocking click events from custom editors. #10888
- Fixed datepicker position for the date cell type. #10892
- Vue: Fixed an issue in the Vue and Vue3 wrappers where updating the hook callback didn't reflect changes in the underlying instance's settings. #10686
- Vue: Fixed the behavior of the Vue/Vue3 wrappers'
simpleEqual
helper, which previously returned incorrect results when comparing identical objects. #10896
For more information on Handsontable 14.3.0, see:
14.2.0
Added
- Added a new Handsontable hook,
beforeBeginEditing
, to conditionally control when to allow cell editing. #10699 - Added the ability to prevent viewport scrolling by using two existing Handsontable hooks:
beforeViewportScrollVertically
andbeforeViewportScrollHorizontally
. #10724 - Added undo-and-redo support for column moving. #10746
- Added a new
Filters
plugin hook:modifyFiltersMultiSelectValue
. Now, filtered values lists will show the formatted numeric value, not the raw data. #10756
Changed
- Improved the viewport scroll behavior after clicking on a cell. #10709
- Improved the response of checkboxes to double-clicks. #10748
- Improved the way
checkbox
cells react to pressing Space or Enter. #10802 - Improved the type inference of the
propToCol()
method. #10750 - React: Improved React portal caching. #10758
Removed
- Removed versioned Handsontable examples and their GitHub publishing workflow. #10766
Fixed
- Fixed an issue where the sizes of rows and columns were calculated incorrectly for hidden indexes. #10705
- Fixed an issue where pasting arrays larger than the table's height caused data getter methods (such as
getCellsMeta()
) to throw an error. #10710 - Fixed an issue where HyperFormula and Handsontable didn't sync properly. #10719
- Fixed an issue where removing all rows and columns while HyperFormula was enabled caused an error. #10720
- Fixed an issue where very large text cells lacked the vertical scrollbar during editing. #10722
- Fixed an issue where non-contiguous selection caused too many
afterSelectionEnd
andafterSelectionEndByProp
calls. #10725 - Fixed an issue where tables pasted from the clipboard contained redundant line breaks. #10745
- Fixed an issue where clicking outside the table didn't remove the focus from the table (when Handsontable was placed in an iframe). #10752
- Fixed an issue where hovering over the header handles of
handsontable
cells caused an error. #10761 - Fixed an issue where
dropdown
cells with long lists of options caused an error. #10763 - Fixed an issue where using the browser's autocomplete dropdown on an input outside of Handsontable caused errors. Also, fixed an event listener leak. #10795
- Fixed an issue where using context and dropdown menus on mobile caused unwanted selection handles to show up. #10816
- Fixed an issue where the
Autofill
plugin treated cells filled with0
as empty. #10817 - React: Fixed a missing
HotTableClass
export. #10760 - React: Fixed missing
renderer
andeditor
props. #10768
For more information on Handsontable 14.2.0, see:
14.1.0
Added
- Added a new configuration option,
renderAllColumns
, which lets you disable column virtualization for improved accessibility. #10599 - Added a dedicated renderer (
DropdownRenderer
) and validator (DropdownValidator
) for the dropdown cell type. #10688 - Added support for the Tab key in the select editor (
selectEditor
). #10673
Changed
- Improved how undoing changes affects the viewport. Now, when you undo a change, the view automatically scrolls back to the changed area. #10639
- Improved how pasting data affects the viewport. Now, even when the size of the pasted data is larger than the viewport, the viewport stays in place. #10630
- Improved how removing a row or column affects the selection. Now, when you remove a row or column, the selection moves to the nearest visible row or column. #10690
- Improved TypeScript definitions for multiple plugins. #10670
- Improved TypeScript definitions for the core modules. #10671
- Improved TypeScript definitions for the
CellCoords
andCellRange
classes. #10678 - Improved TypeScript definitions for the
CustomBorders
plugin. #10659 - React: Improved support for SSR frameworks. #10575
Fixed
- Fixed an issue where double-clicking a cell resulted in highlighting the cell's contents. #10595
- Fixed an issue where pressing the Tab key when editing a cell in the last column caused an error. #10632
- Fixed an issue where pressing the Tab key with
tabNavigation
set tofalse
caused the grid to scroll. #10634 - Fixed an issue where the
Filters
plugin threw aTypeError
in specific setup cases. #10637 - Fixed an issue where changing Handsontable's configuration or data broke the focus position. #10642
- Fixed an issue where Handsontable didn't go into the "unlisten" state after clicking an element outside of the table. #10648
- Fixed an issue where recovering removed cells by using undo/redo didn't restore the cells' configuration options. #10649
- Fixed an issue where the
ManualRowResize
andManualColumnResize
plugins threw an error when a cell renderer used the HTML<table>
element. #10650 - Fixed an issue where, in some situations, the table didn't scroll after navigating it with the keyboard. #10655
- Fixed an issue where the drag-to-scroll functionality was not working for window-scrolled instances. #10655
- Fixed an issue where some configurations of the
CollapsibleColumns
plugin caused an uncaughtTypeError
. #10693 - Fixed an issue where pressing the Backspace key in a date cell deleted the entire contents of the cell instead of a single character. #10696
- Fixed several issues related to the
roundFloat
option of theColumnSummary
plugin. #10701 - Fixed a missing TypeScript definition in the
Formulas
plugin. #10186 - Added
pikaday
tohandsontable
sdependencies
, to ensure backward compatibility of Handsontable 14.1.0. #10715 - React: Fixed a missing TypeScript definition for the
settings
prop. #10661 - Vue: Fixed an issue where passing
hyperformulaInstance
tohotSettings
resulted inTypeError: Converting circular structure to JSON
. #8728 - Vue: Updated the peer dependencies of the Vue 3 wrapper with the latest version of Vue. #10571
For more information on Handsontable 14.1.0, see:
14.0.0
Added
- Added multiple keyboard shortcuts. For more information, see the release blogpost and the updated Keyboard Shortcuts documentation page.
#10237 #10389 #10404 #10405 #10410 #10413 #10417 #10419 #10420 #10421 #10548 - Added ARIA tags to various elements of the table to improve screen reader compatibility.
#10463 #10524 #10526 #10539 #10548 #10541 - Added the ability to navigate the headers with the keyboard by introducing a new
navigableHeaders
option along with other changes. #10265 #10301 - Added the ability to traverse the grid within a webpage using the
TAB
key and introduced a newtabNavigation
option. #10430 #10585 - Added a new
beforeSelectionHighlightSet
hook that allows modifying logical selection coordinates before they are applied to the rendering engine. #10513 - Implemented the
select
renderer and cell type. #10529 - Added an accessibility demo for javascript and React. #10532
- Added
handsontable
anddate
renderers for their respective cell types to allow adding the a11y attributes. #10535 - Added new
beforeColumnWrap
andbeforeRowWrap
hooks. #10550
Changed
- Breaking change: Changed the way the table reacts to using the "select all cells" methods and shortcuts. #10461
- Breaking change: Changed the colors of the invalid cells and the arrow buttons of the autocomplete-typed cells. #10520
- Breaking change: Improved the navigation and accessibility of the Filtering Dropdown Menu. #10530
- Breaking change: Changed the way Handsontable handles focus by focusing the browser on cell elements. Introduced a new
imeFastEdit
option to minimize the negative effects affecting the "fast edit" feature for the IME users. #10342 - Improved the keyboard navigation for the context and dropdown menus and added a new
forwardToContext
option to the ShortcutManager. #10519 - Extended the Core's
scrollViewportTo
method to allow disabling of cell auto-snapping. #10508 - Upgraded the monorepo to utilize Node 20. #10468
- Improved DX by adding an exception to be thrown when trying to activate a shortcut context that has been not yet registered. #10476
- Improved the performance of the table for cases when the table is hidden. #10490
- Updated the TypeScript definitions. #10492 #10493 #10494 #10509
- Changed the default styling of the "OK" button in the Filtering Dropdown when it's focus. #10558
Fixed
- Fixed an issue where copying values containing an ampersand resulted in a wrong values being pasted. #10472
- Fixed an issue related to the backlight position misalignment for the
ManualRowMove
andManualColumnMove
plugins. #10475 - Fixed a problem with row header widths changing sizes after adding/deleting rows. #10479
- Fixed a problem with the
offset
helper for elements placed in foreign object contexts. #10480 - Fixed problems with size and alignment of the table when placed under elements with the CSS
transform: scale
attribute applied. #10482 - Added the missing
updateData
value to theChangeSource
type. #10488 - Fixed a bug where pressing
Ctrl/Cmd
does not trigger non-contiguous selection. #10502 - Fixed a problem with the editor having incorrect width and height. #10504
- Fixed visual glitches (unwanted pixels) of the
Autocomplete
editor's list in cases when there were no items. #10506 - Fixed the Vue and React demo's dependencies to be able to use the demos with Stackblitz. #10523
- Fixed a problem with the merged cells having wrong row heights. #10500
- Fixed the accessibility issues in the documentation. #10574
- Updated the demos for better accessibility. #10563
- Fixed a problem with the text editor's width being calculated incorrectly. #10590
- Fixed a problem with two cells being selected after
Ctrl/Cmd + Shift
key combination. #10622
For more information on this release, see:
13.1.0
Changed
- Optimized the transpilation process of the distribution files. #10440
- Updated the internal monorepo scripts to utilize Node 20. #10468
Fixed
- Fixed a problem with errors being thrown when pressing
delete
orbackspace
keys after deselecting cells. #10272 - Fixed problems with moving rows when there are trimmed rows in the table. #10399
- Fixed a problem with the column resize handle being stuck after the user clicked the right mouse button. #10416
- Extended the type definition of
CellChange
to match the actual implementation. #10432 - Fixed a typo in the
CopyPaste
plugin'scopy
method argument. #10446 - Fixed the mobile selection handlers that disappeared below the table headers when multiple cells were selected. #10447
- Fixed the Merge Cells plugin's problem with updating the cell meta after unmerging the previously-merged cells, which resulted in the Autofill plugin not working properly. #10456
- Added the missing type definition for
BaseEditor
'sgetEditedCellRect
method. #10459 - Corrected the type definitions for the Context Menu. #9566
- React: Mark an internal prop of the React wrapper's base editor component as optional. #10429
For more information on Handsontable 13.1.0, see:
13.0.0
Added
- Angular: Added support for Angular 16. #10396
Changed
- Breaking change (React, Angular, Vue 2, Vue 3): Changed Handsontable's policy toward older versions of supported frameworks. From now on, Handsontable supports only those versions of any supported frameworks that are officially supported by their respective teams. Dropping Handsontable's support for any older framework versions won't be treated as a breaking change. #10396
- Breaking change: Changed the order in which three hooks are executed: now, the
beforeChange
hook is fired before theafterSetDataAtCell
andafterSetDataAtRowProp
hooks. #10231 - Changed the margins of the context menu in the RTL layout direction. #10375
Removed
- Breaking change (Angular): Dropped support for Angular 13 and lower. From now on, Handsontable supports only those versions of Angular that are officially supported by the Angular team: currently, it's 14-16. However, Handsontable 13.0.0 was thoroughly tested and, to the best of our knowledge, works correctly with versions down to Angular 12. #10396
- Breaking change: Removed the deprecated
beforeAutofillInsidePopulate
hook. #10407 - Breaking change: Removed the deprecated
getFirstNotHiddenIndex
method. Instead, use thegetNearestNotHiddenIndex()
method. #10407 - Breaking change: Removed the deprecated parameters of the
alter()
method:insert_row
andinsert_col
. Instead, use the following parameters:insert_row_above
,insert_row_below
,insert_col_start
, andinsert_col_end
. #10407 - Breaking change: Removed the deprecated parameters of the
populateFromArray()
method:direction
anddeltas
. #10407
Fixed
- Fixed an issue where the "Read only" icon of the context menu displayed incorrectly in the RTL layout direction. #10375
For more information on Handsontable 13.0.0, see:
12.4.0
Added
- Added two new Handsontable hooks,
afterColumnSequenceChange
andafterRowSequenceChange
, which are fired after changing the order of columns or rows, respectively. #10215
Fixed
- Fixed numerous issues related to syncing Handsontable with HyperFormula. Now, formulas work properly with all the Handsontable features. #10215
- Fixed na issue where formulas didn't recalculate after rows or columns were moved. #4668
- Fixed an issue where Handsontable's dates didn't sync correctly with HyperFormula's dates. #10085
- Fixed an issue where calling
updateSettings()
would reset HyperFormula's undo/redo actions stack. #10326 - Fixed an issue where the
Autofill
,TrimRows
andFormulas
plugins didn't work properly together. #10200 - Fixed an issue where the
modifySourceData
hook used the wrong type of indexes. #10215 - Fixed an issue where text copied from Handsontable to Excel included wrong types of spaces. #10017
- Fixed an issue where mousing over the same cell twice didn't trigger the
beforeOnCellMouseOver
andafterOnCellMouseOver
hooks. #10321 - Updated TypeScript definition files related to the
CustomBorders
plugin. #10360 - Fixed an issue where moving rows manually to the bottom was difficult due the misalignment between the backlight and guideline elements. #9556
12.3.3
Added
- Added a Chinese (zh-CN) translation of the "Copy with headers" feature. #10273
- Added a new guide: Rows sorting. #10183
Fixed
- Fixed an issue where column-filter checkboxes got reset when the table was scrolled out of view. We solved this by preventing the table from triggering a complete render each time it leaves the viewport. #10206
- Fixed an issue where clicking on a cell scrolled the table sideways in certain RTL configurations. #10206
- Fixed an issue where calling
getDataAtCol()
orgetDataAtProp()
caused an error in case of data sets with more than 125 000 rows. #10226 - React: Fixed React 18 warnings about deprecated lifecycle methods. We removed
componentWillMount()
andcomponentWillUpdate()
from Handsontable's codebase and recreated their functionality by using React's portals. #10263