Handsontable Versions Save

JavaScript data grid with a spreadsheet look & feel. Works with React, Angular, and Vue. Supported by the Handsontable team ⚡

14.3.0

1 week ago

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 in beforeChange and afterChange 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

1 month ago

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 and beforeViewportScrollHorizontally. #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 and afterSelectionEndByProp 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 with 0 as empty. #10817
  • React: Fixed a missing HotTableClass export. #10760
  • React: Fixed missing renderer and editor props. #10768

For more information on Handsontable 14.2.0, see:

14.1.0

3 months ago

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 and CellRange 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 to falsecaused the grid to scroll. #10634
  • Fixed an issue where the Filters plugin threw a TypeError 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 and ManualColumnResize 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 uncaught TypeError. #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 the ColumnSummary plugin. #10701
  • Fixed a missing TypeScript definition in the Formulas plugin. #10186
  • Added pikaday to handsontables dependencies, 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 to hotSettings resulted in TypeError: 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

4 months ago

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 new tabNavigation 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 and date renderers for their respective cell types to allow adding the a11y attributes. #10535
  • Added new beforeColumnWrap and beforeRowWrap 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 and ManualColumnMove 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 the ChangeSource 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

7 months ago

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 or backspace 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's copy 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's getEditedCellRect 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

10 months ago

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 the afterSetDataAtCell and afterSetDataAtRowProp 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 the getNearestNotHiddenIndex() method. #10407
  • Breaking change: Removed the deprecated parameters of the alter() method: insert_row and insert_col. Instead, use the following parameters: insert_row_above, insert_row_below, insert_col_start, and insert_col_end. #10407
  • Breaking change: Removed the deprecated parameters of the populateFromArray() method: direction and deltas. #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

11 months ago

Added

  • Added two new Handsontable hooks, afterColumnSequenceChange and afterRowSequenceChange, 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 and Formulas 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 and afterOnCellMouseOver 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

1 year ago

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() or getDataAtProp() 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() and componentWillUpdate() from Handsontable's codebase and recreated their functionality by using React's portals. #10263

12.3.2

1 year ago

Handsontable 12.3.2 may not work properly with React's functional components. If you're using React, you should upgrade to 12.3.3.

12.3.1

1 year ago

For more information on this release, see:

Added

  • Added a Japanese translation of the "Copy with headers" feature. #10201

Removed

  • Removed the two-week delay in showing the console warning about license expiration. #10175

Fixed

  • Fixed an issue where updateData() didn't work with nested data structures (NestedRows). #10178
  • Fixed an issue of unwanted pixels in the "Filter by condition" menu by removing a superfluous overlay. #10174
  • Fixed an issue where merged cells could lack right and bottom borders due to a Chrome bug. #10212
  • Fixed an issue where using some browser and system shortcuts could cause Handsontable to behave as if Cmd/Ctrl was being held down. #10210