Handsontable Versions Save

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

11.0.0

2 years ago

Added

  • Added TypeScript definition files for Handsontable's modularized version. #7489 (Breaking change)
  • Vue: Added support for modularization to the Vue wrapper. #8820 (Breaking change)
  • React: Added support for modularization to the React wrapper. #8819 (Breaking change)
  • Angular: Added support for modularization to the Angular wrapper. #8818 (Breaking change)
  • Added a new package entry point that allows importing built-in modules in one function call: import { registerAllEditors, registerAllRenderers, registerAllValidators, registerAllCellTypes, registerAllPlugins } from 'handsontable/registry'. #8816
  • Added a new locale option, to properly handle locale-based data. #8897
  • Added a GitHub Actions workflow that covers testing Handsontable and the wrappers. #8652
  • Added new direction helpers (internal API) that lay ground for future RTL support. #8868

Changed

  • Changed how the populateFromArray() method works with its method argument set to shift_down or shift_right. #888 (Breaking change)
  • Moved the entire Handsontable package to its own, new subdirectory: ./handsontable. #8759
  • Replaced the license files with updated versions. #8877

Fixed

  • Fixed an issue with incorrect filtering of locale-based data while using search input from a drop-down menu. #6095
  • Fixed an error thrown when using the populateFromArray() method with its method argument set to shift_right. #6929
  • Fixed an issue with the beforeOnCellMouseDown and afterOnCellMouseDown hooks using wrong coordinates. #8498
  • Fixed a TypeError thrown when calling the updateSettings() method in Handsontable's modularized version. #8830
  • Fixed two issues with the documentation's canonicalUrl entries. #8886
  • Fixed an error thrown when autofill's source is a date cell. #8894
  • React: Fixed a React wrapper issue where it's impossible to use different sets of props in editor components reused across multiple columns. #8527

10.0.0

2 years ago

Changed

  • Unified the naming and description of the fourth argument, controller, for selection manipulation in the beforeOnCellMouseDown and beforeOnCellMouseOver hooks. #4996 (Breaking change)
  • Changed what the beforeRender and afterRender hooks are, and when they are triggered. Added two new hooks: beforeViewRender and afterViewRender. #6303 (Breaking change)
  • Changed the optional HyperFormula dependency from 0.6.2 to ^1.1.0, which introduces breaking changes for the Formulas plugin users. #8502 (Breaking change)
  • Changed the default values for the rowsLimit and columnsLimit options of the CopyPaste plugin. #8660 (Breaking change)
  • Added a default font family, size, weight and color. #8661 (Breaking change)
  • Changed the autoWrapRow and autoWrapCol options` default values from true to false. #8662 (Breaking change)
  • Improved the performance of the getCellMeta() method. #6303
  • Improved the documentation and TypeScript definition of the selectOptions option. #8488
  • Improved the arguments forwarding in the hooks #8668
  • Added a Github Actions workflow covering the testing of Handsontable and all of the wrappers. #8652

Fixed

  • Fixed an issue of not resetting the date picker's configuration. #6636
  • An error won't be thrown while inserting a new row for nested rows in a specific case. #7137
  • Fixed a few problems with the NestedRows plugin, occurring with the Formulas plugin enabled. #8048
  • Fixed errors being thrown in the Formulas plugin if a provided sheet name contained a dash character. #8057
  • Fixed multiple bugs related to undo/redo actions while using the Formulas plugin. #8078
  • Fixed an issue where autofill was not able to be blocked/changed with the beforeChange hook when the Formulas plugin was enabled #8107
  • Data stored by the NestedRows plugin won't be corrupted by some actions. #8180
  • Collapsed parents won't be expanded after inserting rows. #8181
  • Fixed the cooperation of the dropdown menu and column sorting (menu closing on click). #8232
  • Data won't be corrupted anymore when some alterations are performed. #8614
  • Adjusted directories and files related to dataMap, to prevent potential circular references. #8704
  • Improved the performance of the regular expression used to detect numeric values, and fixed major code smells. #8752

9.0.2

2 years ago

Fixed

  • Fixed an issue with an error being thrown when lazy loading columns on a setup with Nested Headers + Hidden Columns. #7160
  • Fixed column header sizes not being updated on updateSettings calls containing columns. #7689
  • Fixed functional keys' behavior, to prevent unexpected editing. #7838
  • Fixed missing collapsible indicator on IE. #8028
  • Fixed support for row and column headers in the parseTable utility. #8041
  • Fixed a bug where not providing a data object with the nestedRows plugin enabled crashed the table. #8171
  • Vue: Fixed an issue where adding rows to a Handsontable instance wrapped for Vue resulted in additional rows being inserted at the end of the table. #8148
  • Vue: Fixed a problem in the Vue wrapper, where destroying the underlying Handsontable instance caused it to throw errors and crash. #8311
  • React: Fixed a problem in the React wrapper, where destroying the underlying Handsontable instance caused it to throw errors and crash. #8311
  • Angular: Fixed a problem in the Angular wrapper, where destroying the underlying Handsontable instance caused it to throw errors and crash. #8311

Added

  • Added new documentation engine #7624

9.0.1

2 years ago

Fixed

  • Fixed an issue where the validator function was called twice when the Formulas plugin was enabled. #8138
  • Introduced a new CSS style for cells of the checkbox type to restore previous behaviour. #8196

Removed

  • Removed the redundant internal jsonpatch library from the source code. #8140

9.0.0

2 years ago

Changed

  • Breaking change New Formulas plugin, with an entirely different API. See the migration guide for a full list of changes. Removed the required hot-formula-parser dependency for the sake of an optional one, hyperformula. #6466
  • Breaking change Changed the afterAutofill and beforeAutofill hooks' signatures. #7987
  • Upgraded eslint and eslint-related modules. #7531
  • Added fit & fdescribe to restricted globals in test files. #8088

Fixed

  • Fixed a problem with the column indicator of the Collapsible Columns plugin not being displayed properly on styled headers. #7970
  • Fixed a problem with duplicated afterCreateCol hooks being triggered after undoing a removal of a column. #8076
  • Fixed a problem with formulas not being calculated in certain conditions. #4430
  • Fixed a bug with formulas displaying incorrect values after inserting new rows. #4654
  • Fixed a problem with the AVARAGE formula being updated incorrectly. #4675
  • Fixed a problem with the IF formulas not working properly. #5870
  • Fixed a bug with using the clear method broke the formulas in the table. #6248

Removed

  • Breaking change Removed the deprecated plugins - Header Tooltips and Observe Changes. #8083

Deprecated

  • Deprecated the beforeAutofillInsidePopulate hook. It will be removed in the next major release. #8095

8.4.0

3 years ago

Added

  • Introduced a separated attribute for the label options (the label DOM element may wrap input or be placed next to it). #3172
  • Introduced the modifyAutoColumnSizeSeed hook to let developers overwrite the default behaviour of the AutoColumnSize sampling. #3339
  • Added support for hiding columns for the NestedHeaders plugin. #6879
  • Added ability to skip stacking actions by the UndoRedo plugin and introduced new hooks. #6948

Fixed

  • Fixed a problem with sorting the checkbox-typed cells and an issue with empty cells not being displayed properly. #4047
  • Fixed a problem where undoing the removal of row with readOnly cells was not performed properly. #4754
  • Fixed state-change resolving for externally added checkboxes. #5934
  • Fixed a problem with the native selection being removed with the fragmentSelection option enabled. #6083
  • Fixed a bug where number of columns rendered in the viewport was not correct. #6115
  • Fixed a bug with the Dropdown Menu not opening on Android devices. #6212
  • Fixed the double-tap issue on iOS. #6961
  • Fixed a problem with the Comments editor being destroyed after destroying another Handsontable instance. #7091
  • Fixed incorrect numericFormat's type definition. #7420
  • Fixed the trimWhitespace tests on Firefox. #7593
  • Fixed the [NPM Audit] Github Action job to report found vulnerabilities. #7621
  • Fixed some minor iOS problems. #7659
  • Fixed the TypeScript definition for the suspended rendering feature. #7666
  • Fixed the postbuild and examples:install scripts on Windows. #7680
  • Fixed the contents of the production package.json. #7723
  • Fixed an issue, where the callbacks for the UndoRedo plugin were called twice. #7825
  • Vue: Fixed a problem with displaying and removing rows in the Nested Rows plugin. #7548
  • React: Fixed an incompatibility in the property type definitions for the HotColumn component. #7612

Changed

  • Enhanced the ESLint config file by adding a rule that checks if there are new lines missing before some keywords or statements. #7691

8.3.2

3 years ago

Fixed

  • Fixed a bug where it was impossible to enable disableVisualSelection for cells/columns. #5082
  • Fixed wrong paddings for multi-level headers. #5086
  • Fixed problems with the current option of the disableVisualSelection setting. #5869
  • Fixed problems with the header option of the disableVisualSelection setting. #6025
  • Fixed a bug where the "double-tap-to-zoom" gesture prevented the editor from opening properly on some mobile devices. #7142
  • Fixed a bug where calling the updateSettings method in the body of some callbacks would break the table. #7231
  • Fixed an issue where the maxRows and maxCols options interfered with hidden index calculations. #7350
  • Fixed problems with doubled borders being displayed when window was a scrollable container. #7356
  • Fixed a bug where value population from an edited cell would result in a console error. #7382
  • Fixed a bug where the dropdown cell type would not work on Safari 14+. #7413
  • Fixed a bug where the AutoRowSize plugin would break the table when placed in an iframe. #7424
  • Fixed bugs in navigation by HOME and END keys with hidden rows/columns enabled. #7454
  • Fixed a bug with the trimWhitespace option not working properly. #7458
  • Fixed an issue with inconsistent documentation and TypeScript definitions for colWidths and rowHeights options. #7507
  • Fixed the incorrect cellTypes module paths in the exports entry of the package.json file. #7597
  • Vue: Fixed Remote Code Execution vulnerability in the dev dependencies. #7620

Added

  • Introduced the monorepo to this repository. From now on, handsontable, @handsontable/angular, @handsontable/react, and @handsontable/vue will all be developed in the same repo - handsontable. #7380
  • Added a custom ESLint rule which allows restricting specified modules from loading by import or re-exporting. #7473

8.3.1

3 years ago

Fixed

  • Fixed an issue where the CSS files could be eliminated during tree-shaking #7516

8.3.0

3 years ago

Added

  • Introduced a new feature that allows postponing the table render and internal data cache update. The table rendering time can be reduced several-fold times by batching (using the batch method), multi-line API calls, or manually suspending rendering using the suspendRender and resumeRender methods. #7274

  • Introduced a possibility to import:

    • plugins
    • cell types
    • editors
    • renderers
    • validators

    as separate modules, along with the Handsontable base. This change allows utilizing only the parts of Handsontable the end application is actually using, without the overhead of the full bundle. #7403

  • Added a new workflow for managing and generating changelogs. #7405

Fixed

  • Fixed a bug with auto-execution of the first item in the ContextMenu plugin. #7364
  • Fixed a bug where column sorting with multi column sorting crashed the table. #7415
  • Added a missing entry for the skipRowOnPaste option in the TypeScript definition file. #7394
  • Added missing tests to prevent issue #7377 from resurfacing. #7396
  • Fixed an issue where altering columns did not update filters attached to columns. #6830
  • Fixed typos and wrong return types in the TypeScript definition file. #7399, #7400
  • Updated the dependencies causing potential security issues, as well as Babel configuration needed after the update. #7463

Changed

  • Corrected a typo in a helper method from the Column Sorting plugin. #7375
  • Optimized the performance of rendering the table with numerous spare rows (for minSpareRows, minSpareCols, minRows, and minCols options). #7439

8.2.0

3 years ago

Added

  • Added a new type of an Index Map named LinkedPhysicalIndexToValueMap. #7276
  • Added an external dependency, DOMPurify, to add HTML sanitization that should minimize the risk of inserting insecure code using Handsontable built-in functionalities. #7292

Fixed

  • Fixed an issue where the container was not updated after trimming rows. #7241
  • Fixed an issue where the htmlToGridSettings helper threw an error if a <table> with no rows was passed. #7311
  • Fixed an issue where the sorting indicator moved incorrectly when a column was added. #6397
  • Fixed an issue where untrimming previously trimmed rows would sometimes result in the table instance not refreshing its height, leaving the row headers improperly rendered. #6276
  • Fixed an issue where the hidden columns plugin caused unintended scrolling when some cells were hidden. #7322
  • Fixed an issue where an error was thrown while hovering over row/column headers. #6926
  • Fixed an issue where table validation caused incorrect data rendering if the hidden rows/column plugin was enabled. #7301
  • Fixed an issue where adding 0 rows to the table ended with doubled entries in index mappers' collections. #7326
  • Fixed a problem with the inconsistent behavior of the Context Menu's "Clear column" disabled status. #7003
  • Fixed an issue with parsing multiline cells on pasting text/html mime-type. #7369