For more information on this release, see:
Added
- Added
ShortcutManager
, a new API for customizing keyboard shortcuts. #8942 - Added support for right-to-left (RTL) languages, introducing a new configuration option:
layoutDirection
. #8760 - Added an Arabic translation. #9208
- Added a new configuration option:
fixedColumnsStart
. #8760 - Added a new keyboard shortcut (Ctrl/Cmd + Enter) for filling the selected range of cells with the value of the active cell. #9366
- Added support for the Home and End keys inside cell editors, for moving the cursor to the beginning or end of the text. #9367
- Added support for the latest Node LTS version. #9149
Changed
- Breaking change: Changed how
updateSettings()
handles data updates, to improve performance and the consistency of user experience. Now, when provided with a new data object,updateSettings()
updates the data without resetting any states. #7263 - Breaking change: Changed how
updatePlugin()
reacts toupdateSettings()
calls, to improve performance and the consistency of user experience. Now, calls toupdateSettings()
update a plugin's state only when the options object contains a configuration option that's relevant to that particular plugin. #9021 - Breaking change: Changed the order of execution for two hooks: now,
beforeKeyDown
is properly fired beforeafterDocumentKeyDown
. #6236 - Breaking change: Changed how default keyboard shortcuts are defined, to improve keyboard navigation consistency. Most of the shortcuts did not change and are now properly documented in the keyboard shortcuts guide. However, some shortcuts that were not defined explicitly, and were not listed in the documentation, don't work anymore (e.g., Enter opens a cell's editor, but Ctrl + Enter doesn't). This change doesn't affect custom keyboard shortcuts. #8942
- Breaking change: Split a cross-platform modifier key (Ctrl/Cmd) into two separate keys, to improve keyboard navigation consistency. Now, the Cmd key triggers actions on macOS where the Ctrl key triggers actions on Windows. For example, on macOS, Ctrl + A doesn't work anymore: Cmd + A is used instead. #9369
- Breaking change: Changed the actions of the following keyboard shortcuts, to match the usual spreadsheet software behavior, and provide a more intuitive user experience: Ctrl/Cmd + ↑, Ctrl/Cmd + Shift + ↑, Ctrl/Cmd + ↓, Ctrl/Cmd + Shift + ↓, Ctrl/Cmd + ←, Ctrl/Cmd + Shift + ←, Ctrl/Cmd + →, Ctrl/Cmd + Shift + →, Home, Ctrl/Cmd + Home, End, Ctrl/Cmd + End, Shift + Page Up, and Shift + Page Down. #9363 #9364 #9365
- Changed two scripts of the main Handsontable workspace (
./
), to speed up the build process: now, thenpm run build
andnpm run test
scripts don't build or test the Handsontable examples (./examples
). #9412 - Changed the version of the Moment.js dependency from 2.24.0 to 2.29.3, in reaction to a recently-found Moment.js security vulnerability that did not directly affect Handsontable. #9381
- Changed the version of the HyperFormula optional dependency from ^1.2.0 to ^2.0.0. #9411
Fixed
- React, Angular, Vue 2, Vue 3: Fixed an issue where using
updateSettings()
caused problems for state managers. #8372 - Fixed an issue where using
updateSettings()
caused hidden columns to reappear. #7165 - Fixed an issue where using
updateSettings()
caused merged cells to unmerge. #3315 - Fixed an issue where using
updateSettings()
caused the state of nested rows to reset. #8838 - Fixed an issue where using
updateSettings()
caused problems with column sorting. #7688 - React: Fixed an issue where using React's
setState()
within theafterFilter
hook broke filtering. #7567 - Vue 2: Fixed an issue where repeatedly changing Handsontable's height through
updateSettings()
caused Handsontable to crash. #7546 - Vue 2: Fixed an issue where the
failed
validation status got erased when editing a new row. #7541 - Fixed an issue where cell filtering did not use formula results. #5455
- Fixed a wrong TypeScript definition in the
BasePlugin
class. #9175 - Fixed an issue where the Ctrl/Cmd + Z and Ctrl/Cmd + Shift + Z keyboard shortcuts didn't behave properly inside cell editors. #9367
- Fixed an issue where the dropdown menu contained unwanted rectangle elements. #9240
- React, Vue 2, Vue 3: Fixed an issue with registering modules for the React, Vue 2, and Vue 3 wrappers, by adding an
"exports"
field to theirpackage.json
files. #9140
Removed
- Breaking change: Removed the Cmd + M keyboard shortcut (used for cell merging), as it conflicted with window minimizing on macOS. The Ctrl + M keyboard shortcut works the same as before. #9368
- Breaking change: Removed the Shift + Page Up/Page Down keyboard shortcuts from the cell editing context. #9401
- Dropped support for Internet Explorer 11 and Edge Legacy (the non-Chromium version of Edge). Handsontable 11.x becomes the long-term support (LTS) version for Internet Explorer 11 and Edge Legacy, until the end of 2023. #7026
- React: Removed the
enzyme
dependency from the React wrapper. #9151