Handsontable 15.2.0: Stability Improvements
We’re excited to announce the release of Handsontable 15.2.0, which brings expanded localization support, significant performance enhancements, and improvements to plugins and overall stability.
Performance Improvements
For those using the new Handsontable themes, you can expect significant performance improvements. We optimized the rendering pipeline by reducing unnecessary repaints and reflows, resulting in a 90% improvement in scrolling performance compared to version 15.1.0. Navigating large datasets is now nearly twice as efficient, offering smoother scrolling, faster cell updates, and an overall more responsive user interface.

Filter Plugin Improvements and New Methods
The execution flow of the Filter plugin is now refined for better reliability. Previously, when the beforeFilter
hook blocked a filtering operation, the dataset remained unfiltered, but the UI still showed a filtered state, causing inconsistencies. With this update, blocking a filtering operation now correctly ensures that both the dataset and the UI reflect the unfiltered state, leading to a more predictable user experience.
Additionally, we’ve introduced two new methods: importConditions
and exportConditions
, to make managing and applying filter conditions easier, simplifying the data filtering process.
New and Updated Translations
Thanks to community contributor @AliAlmasi, this release adds full Farsi (Persian) translation, expanding support for right-to-left (RTL) languages and improving UI consistency for Farsi-speaking users. This brings the number of Handsontable’s built-in translations to a total of 21.

We’ve also adjusted the Context Menu labels in the Italian and Serbian language packs to ensure correct localization. Thank you @ivkeapp and @imcatta for your contribution!


Resolved Issues
In this release, we’ve resolved over 20 issues to ensure stability, UI consistency, and improved functionality:
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
andexportConditions
). #11488
Changed
- Speed 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
andhasHorizontalScroll
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
andMultiColumnSorting
plugins. #11492 - Fixed copy, cut an paste actions on tables with a selection reaching outside of the rendered viewport. #11504
How to Upgrade
- JavaScript
npm install handsontable
- Functional wrapper for React
npm install handsontable @handsontable/react-wrapper
- Class-based wrapper for React
npm install handsontable @handsontable/react
- Angular
npm install handsontable @handsontable/angular
- Vue
npm install handsontable @handsontable/vue3
- Download from NuGet
- View and clone on GitHub
- Import from public CDN: jsDelivr, UNPKG
If you stumble across problems while updating, use one of the following support channels:
- Start a discussion on Developer’s Forum
- Ask a question on Stack Overflow
- Report an issue on GitHub discussions
If your commercial support plan is active, contact our Support Team at support@handsontable.com or use this contact form.