Skip to content

Releases: handsontable/handsontable

17.0.0-rc

20 Feb 12:45

Choose a tag to compare

17.0.0-rc Pre-release
Pre-release

Added

  • Breaking change: Added the Theme API. #11950
  • Introduced a simple way to define custom editors using the new BaseEditor.factory method. #11899
  • Implemented a new MultiSelect cell type with a dedicated editor, renderer, and validator. #11981
  • Added support for Intl.NumberFormat options. #11997
  • Added support for Intl.DateTimeFormat options. #11999
  • Added a copy-as-Markdown button to the documentation pages. #12009
  • Added a new sanitizer table option. #12016
  • React: Introduced a simple way to define custom editors using the new ComponentEditor. #11978

Changed

  • Improved differentiation between Handsontable errors and other errors. #11780
  • Reverted the editors' updateChoicesList method type change. #11943
  • Added a hit area to the fill handle. #11952
  • Added a new parsePastedValue option to fix issues with pasting object-based values. #12020
  • Introduced a new publishing flow for versions 17.0.0 and above. #12028

Removed

  • Breaking change: Removed deprecated wrapper packages for Angular, React, and Vue, the PersistentState plugin, and the legacy undo/redo methods. #12015
  • Breaking change: Removed core-js from dependencies. #12017
  • Breaking change: Removed the legacy CSS stylesheets (e.g. handsontable.full.min.css), which were the default styling prior to version 16. #11950
  • Removed the languages folder from git + updated the 17.0+ release workflow. #12049

Fixed

  • Fixed errors triggered by certain keyboard shortcuts. #11951
  • Fixed unwanted layout shifts caused by the editor. #11955
  • Fixed an issue with scrolling in Firefox. #11962
  • Fixed an issue with viewport scroll after calling loadData()/updateData(). #11985
  • Fixed a bug where the pasted value could not be changed. #11989
  • Fixed misalignment issues when using CSS transform: scale(). #11990
  • Fixed a bug that made it impossible to delete values from key/value-based autocomplete and dropdown cells. #12010
  • Fixed a Data Factory issue in filters that could return zero results even when matches exist. #12031
  • Changed the element type for focus catchers. #12032
  • Fixed incorrect scrollbar width calculation for scaled environments. #12035
  • Fixed and issue with column headers styles #12058

Deprecated

  • Deprecated numbro.js for numeric formatting. Copy it to your project or replace it with the Intl.NumberFormat API. Migration guide
  • Deprecated Pikaday for date picking. Switch to native date input. Migration guide
  • Deprecated moment.js for date parsing and display. Replace it with the Intl.DateTimeFormat API. Migration guide
  • Deprecated DOMPurify as a built-in XSS sanitizer. Use the new sanitizer option or convert content to plain text. Migration guide
  • Deprecated core-js polyfills for ECMAScript features. Migration guide
  • Deprecated bundling HyperFormula as a Handsontable dependency. Starting from version 18.0, install and import it separately, then pass it to the Formulas plugin with licenseKey: 'internal-use'. Formula calculation

16.2.0

25 Nov 09:13
16.2.0
1546024

Choose a tag to compare

Added

  • Improved focus management by introducing a focus scopes mechanism. #11804
  • Introduced an "auto" option for the roundFloat setting in the Column Summary plugin and ensured proper recalculation of endpoints after data updates. #11833
  • Added an Enter key handler and a new searchMode option to the Filters plugin. #11871
  • Implemented a style option for the Custom Borders plugin, enabling style customization. #11876
  • Introduced a new "dotted" border style to the Custom Borders plugin. #11877
  • Added the EmptyDataState plugin to improve UX when no data is available. #11879
  • Added a settings entry to the Handsontable exports. #11883
  • Added new global button CSS class names. #11896
  • Introduced minRowHeights as an alias for rowHeights for API consistency. #11898
  • Added a new template option to the Dialog plugin. #11902
  • Added new theme variables and implemented no-icons and icons-only style variants. #11913

Changed

  • Refined dropdown behavior when the input is empty - focus now remains on the input field. #11863
  • Improved how the Autocomplete and Dropdown editors respond to clicks outside the open editor. #11873
  • Reverted the editors' updateChoicesList method type change. #11943

Fixed

  • Fixed the datepicker icon size issue on iPad. #11860
  • Corrected header size rendering on iPad. #11861
  • Fixed an issue with header text size with collapsibleColumns enabled. #11864
  • Fixed an issue with an unwanted empty space on the right side of the table when using the modern themes. #11868
  • Fixed row misalignment for multi-line cell content. #11872
  • Improved column width calculations for checkbox-typed cells. #11891
  • Fixed a problem, where using minSpareRows would crash the table when configured alongside the Column Summary plugin. #11911
  • Fixed an issue preventing re-adding a previously removed hook callback. #11914
  • Stabilized the height of the first row when it's empty. #11918
  • Fixed a problem where resizing the window vertically did not resize the table. #11919
  • Fixed an issue where the dialog overlay could make the table unresponsive after rapid show/hide calls. #11925
  • Fixed an issue with TouchEvent on Firefox. #11928
  • React: Fixed an issue with Collapsible Columns being reset in React wrapper. #11923

Security

  • Updated dev dependencies to address high-severity vulnerabilities. #11895

For more information about this release, see:

16.1.1

23 Sep 12:08
16.1.1
300321d

Choose a tag to compare

Fixed

  • Fixed row misalignment when setting manualRowResize on an instance with autoRowSize enabled. #11849
  • Reverted the color variables change for the "main" theme. #11852
  • Fixed an error thrown when using autocomplete-typed cells with key/value sources alongside formulas. #11853

16.1.0

15 Sep 08:15
16.1.0
d7c34a3

Choose a tag to compare

Added

  • Introduced row pagination functionality. #11612
  • Introduced a Dialog plugin. #11754
  • Added support for object-based (key/value) source in Autocomplete and Dropdown editors, along with new valueGetter and valueSetter options. #11773
  • Added a new initialState configuration option. #11777
  • Introduced the Loading plugin. #11792
  • Added a new "classic" theme. #11790
  • Added a Deprecation policy page to the documentation.
  • Added a Long Term Support (LTS) page to the documentation.

Changed

  • Enabled focus navigation between multiple selection layers. #11756
  • Renamed the input element used as the internal focus catcher. #11770
  • Added a background color to the wtHolder element. #11797
  • Updated the CSS variables for the Pagination styles. #11820

Fixed

  • Fixed undo/redo functionality for cell types other than text. #11656
  • Fixed incorrect resizing behavior when auto-sizing rows or columns by double-clicking separators. #11671
  • Fixed mouse wheel zooming issues on Windows. #11680
  • Fixed autocomplete sorting and option highlighting issues. #11708
  • Fixed a missing touchend handler that prevented editors from opening on mobile devices. #11729
  • Fixed misalignment between rows and row headers when using autoRowSize. #11736
  • Fixed layout inconsistencies caused by browser zoom and scaling. #11739
  • Fixed an issue with the root-wrapper height calculation. #11769
  • Fixed a TypeError being thrown after undoing operations on nested row structures. #11793
  • Fixed rowHeights handling for merged cells. #11795
  • Fixed visual issues across themes. #11805
  • Fixed table misalignment after loading new data. #11809
  • Angular: Fixed the tree-shaking mechanism for the Angular wrapper (@handsontable/angular-wrapper). #11738
  • Fixed an issue with the deprecation warning being shown too often. #11819
  • Fixed an issue with the classic (legacy) theme deprecation warning being displayed for non-root instances. #11821
  • Fixed an issue with the table not rendering correctly when scrolling into extremely tall rows. #11825

Security

  • Resolved critical vulnerabilities reported by pnpm audit. #11798

Deprecated

  • Deprecated the legacy style (to be removed in version 17.0.0). #11790
  • Deprecated the PersistentState plugin (to be removed in version 17.0.0). #11835
  • Deprecated the @handsontable/vue wrapper. #11839

For more information about this release see:

16.0.1

10 Jul 12:06
61f9738

Choose a tag to compare

Fixed

  • Fixed a missing touchend handler that prevented the editor from opening on mobile devices. #11729

16.0.0

09 Jul 08:24
16.0.0
04254ec

Choose a tag to compare

Added

  • Breaking change: Added a focus outline to the context and dropdown menus. #11669
  • Improved Handsontable editor positioning. #11593
  • Added a second-click cell deselection feature. #11602
  • Added a new textEllipsis option. #11609
  • Added backward compatibility for the renamed CSS variables. #11676
  • Angular: Introduced a new Angular wrapper - @handsontable/angular-wrapper. #11511

Changed

  • Breaking change: Updated the CSS theme variables and added --ht-radio-* variables. #11470
  • Breaking change: Changed the modifyData hook to use visual indexes for both rows and columns. #11501

Fixed

  • Breaking change: Fixed an issue with custom border overlapping row headers. #11551
  • Breaking change: Fixed accessibility issues and introduced a new DOM structure with a wrapper and a portal. #11579
  • Fixed a problem with the dropdown editor having a horizontal scrollbar on Windows with fractional scaling applied. #11613
  • Fixed an issue with scrollbar styles on the Safari browser. #11614
  • Fixed the column filter behavior when adding new columns. #11616
  • Fixed an issue with the dropdown elements' colors. #11661
  • Angular: Fixed an error of this.hotInstance.getSettings(...).columns?.filter is not a function in angular-wrapper. #11695

For more information about this release see:

15.3.0

29 Apr 11:25
15.3.0
0a86920

Choose a tag to compare

Added

  • Added a missing boolean type to the editor in the React wrapper. #11514
  • Fixed the Comments plugin for IME editing and added a new beforeCompositionstart hook. #11521
  • Added horizontal scroll to the Filter's "by value" component. #11561
  • Added optional formula sanitization for CSV export to prevent CSV Injection attacks. #11592

Changed

  • Improved the initialization time of Handsontable with Formulas enabled. #11474
  • Changed the size of the Manual Row Resize and Manual Column Resize guide lines. #11507
  • Improved the viewport scrolling behavior. #11577

Fixed

  • Fixed an issue with the NestedRows plugin duplicating rows when moving child rows. #11362
  • Fixed an issue with row resize line alignment and resize handle flickering. #11500
  • Fixed an issue with the Autocomplete caret position after using scroll on a list of choices and a problem with the dropdown width. #11503
  • Fixed the submenu positioning for all themes. #11505
  • Fixed a problem where re-enabling the Hidden Columns configuration caused an error to be thrown if a selection was a part of the hidden range. #11508
  • Fixed an issue with an empty parentNode in the table's getCords method. #11509
  • Improved the Undo/Redo actions for removing rows and columns. #11515
  • Fixed rows' height calculations for merged cells on Safari. #11517
  • Fixed the missing (incorrect) render call after dataset change. #11529
  • Fixed an issue with the mobile keyboard closing after clicking the filter search input on Android devices. #11532
  • Fixed a problem with multiple row header levels being rendered in reverse order. #11533
  • Fixed a TypeError error for the AutoRowSize plugin. #11537
  • Allow changing the selection after a filter was applied. #11538
  • Fixed a problem with the Autocomplete editor rendering very slowly when provided with a long list of choices. #11552
  • Fixed an issue with the focus catcher accessibility. #11553
  • Fixed a TypeError error being thrown after removing rows on the bottom overlay. #11555
  • Fixed calculating the first row height. #11557
  • Fixed an issue with highlighting a cell after calling updateData. #11558
  • Fixed the "unmerge cells" action triggered form keyboard shortcut. #11559
  • Fixed the left/right-arrow shortcuts for menus when the table was configured with layoutDirection: rtl. #11562
  • Fixed an issue with duplicate boolean values in the filters. #11563
  • Fixed an issue with data sources with non-string values under the name property. #11565
  • Fixed the settings object not being updated after adding new hooks. #11566
  • Fixed a problem with the table rendering all rows when it's configured to have 0px height. #11567
  • Fixed the copy/paste/cut functionalities for web components. #11572
  • Fixed the allowInvalid option (both true and false) for the Dropdown Editor. #11587
  • Fixed a problem with a deprecation warnings being thrown when using Context Menu's Undo and Redo items. #11588
  • Fixed an error being thrown when editing Autocomplete-typed cells with a long list of choices rendered in a small container. #11589
  • Ensured that there's a single @charset entry in the classic theme's CSS files and that it's placed at the beginning of those files. #11591

For more information about this release see:

15.2.0

19 Mar 10:23
15.2.0
e910d1b

Choose a tag to compare

Added

  • Added the Farsi translation. #11388
  • Added support for class names passed as an array for the numeric cell renderer. #11420
  • Updated the Italian translation for the new Context Menu labels. #11436
  • Updated the Serbian translation for the new Context Menu labels. #11437
  • Added the mobile cell handle CSS variables to the themes. #11479
  • Improved the execution flow of the Filters plugin and added two new methods (importConditions and exportConditions). #11488

Changed

  • Sped up the rendering performance for themes. #11443
  • Improved the table UI behavior after removing all rows and/or columns. #11477
  • Reverted the removal of actionType class field for UndoRedo actions. #11495

Removed

  • Removed the broken, unsupported and undocumented rendererTemplate Text Renderer option. #11424

Fixed

  • Fixed the default (fallback) date format for the Date editor. #11419
  • Fixed the Context Menu's items' state rendering. #11422
  • Corrected the checkbox visibility in the no-theme variant. #11427
  • Fixed problems with the cell content reading with imeFastEdit enabled. #11442
  • Fixed hasVerticalScroll and hasHorizontalScroll methods. #11455
  • Fixed the editor border radius on mobile devices. #11457
  • Fixed the wrong height of the first row. #11458
  • Fixed the single cell selection inside iframes. #11460
  • Fixed an issue with row header misalignment. #11465
  • Improved the Autocomplete/Dropdown Editor list behavior. #11469
  • Fixed a problem with horizontal scrollbar in the Autocomplete dropdown. #11473
  • Fixed the merged cells height for custom row heights. #11478
  • Fixed a problem with the Comments editor not flipping direction when overlapping the window's scrollbars. #11481
  • Fixed a problem with the focus trap during Shift + Tab navigation. #11483
  • Fixed an issue with the Context Menu opening on Classic theme. #11486
  • Fixed a problem with rowHeights when the provided value was lower than the default/minimal row height. #11487
  • Fixed an issue with the data source modification for row values passed as strings. #11491
  • Fixed the conflicts between ColumnSorting and MultiColumnSorting plugins. #11492
  • Fixed copy, cut an paste actions on tables with a selection reaching outside of the rendered viewport. #11504

For more information about this release see:

15.1.0

20 Feb 08:37
1f96f49

Choose a tag to compare

Added

  • Added the TAB and SHIFT + TAB functionality to the Comments editor. #11345

Changed

  • Changed the approach to how the table is rendered by reusing the cell nodes. #11264
  • Updated Hyperformula to v3. #11373
  • Improved the performance of horizontal scrolling. #11412

Removed

  • Removed the getComputedStyle function from the type declaration file. #11421

Fixed

  • Fixed a bug where values passed to data-modifying hooks were not normalized. #11346
  • Fixed a problem where data population via autofill handler was broken for merged cells. #11291
  • Fixed a problem with a missing render call for the minSpareRows and minSpareCols options. #11292
  • Fixed the undo/redo scrolling behavior after undoing the data deletion. #11297
  • Fixed the Page Up/Page Down keyboard shortcuts for the oversized rows. #11301
  • Fixed a bug where the Undo/Redo action caused the wrong cells to be affected when triggered after filtering data. #11307
  • Fixed a bug where the selection was incorrectly expanded after closing the editor. #11311
  • Fixed a bug where the viewport was incorrectly scrolled after moving rows with the Nested Rows plugin enabled. #11312
  • Fixed dropdown-typed cells validation for custom editors. #11314
  • Fixed Undo/Redo for rows/columns with enabled min spare indexes. #11321
  • Fixed a problem with the table misalignment after changing the container size. #11324
  • Fixed a bug with an uncaught error being thrown after changing the theme while some of the editors were not fully initialized. #11325
  • Fixed a problem with a broken scroll on overlays when batch was used. #11328
  • Fixed the date picker arrow icon positions for RTL, along with other minor RTL fixes. #11329
  • Fixed the Autofill handler styles for the new themes. #11330
  • Fixed a problem with an uncaught error being thrown after scrolling the viewport. #11341
  • Fixed a problem where calling updateSettings with themeName set to the current theme name would clear the theme from the table. #11343
  • Fixed a problem where the getCellsMeta method returned improper results. #11350
  • Fixed the row virtualization for Filter's "by value" component. #11351
  • Fixed a problem with the columns shifting after the render calls with the new themes being enabled. #11352
  • Fixed the cell editor width for the new themes. #11354
  • Disabled the "Clear column" option for read-only cells. #11355
  • Fixed a problem where autocomplete highlight was not rendered correctly in the new themes. #11364
  • Fixed a problem where the cell borders were not rendered correctly for fixed rows and columns with the new themes being enabled. #11369
  • Fixed the incorrect spacing between the checkboxes and their labels. #11377
  • Fixed a problem where the Nested Headers' header selection was not rendered properly for the new themes. #11381
  • Fixed a bug where the dropdown editor was not fully visible on fixed rows while the new themes were enabled. #11399
  • Fixed a problem where the initial styles of the context menu and dropdown menu were not properly assigned in the new themes. #11400
  • Fixed a misalignment of the Manual Row Move's "guide" in the new themes. #11401
  • Fixed a bug where the selection was not rendered correctly when selecting both merged and non-merged cells with the new themes being enabled. #11403
  • Fixed a bug where using the keyboard shortcuts to open the Context Menu would open it at a wrong position when the new themes were enabled. #11404
  • Fixed the CodeQL warnings by modifying potentially problematic code fragments. #11405
  • Fixed a bug where the date editor would not close after selecting a date on mobile devices. #11406
  • Fixed a problem with the header widths when using Nested Headers with the new themes enabled. #11410
  • Fixed the header text overlap in Nested Headers. #11413
  • Fixed a problem with the merged cells height calculation in the new themes. #11423
  • Fixed the copy/paste feature not working correctly in Chrome 133. #11428
  • Fixed a problem, where clicking on the Comments' editor element deselected the currently selected cells. #11446

For more information on Handsontable 15.1.0, see:

15.0.1

10 Feb 11:19
ab94a4c

Choose a tag to compare

Fixed

  • Fixed the copy/paste feature not working correctly in Chrome 133. #11428