All Versions
31
Latest Version
Avg Release Cycle
38 days
Latest Release
632 days ago

Changelog History
Page 2

  • v9.0.2 Changes

    July 28, 2021

    πŸš€ For more information on this release, see:

    πŸ›  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
  • v9.0.1 Changes

    June 17, 2021

    πŸš€ For more information on this release, see:

    πŸ›  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
  • v9.0.0 Changes

    June 01, 2021

    πŸš€ For more information on this release, see:

    πŸ”„ 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

    βœ‚ 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
  • v8.4.0 Changes

    May 11, 2021

    πŸš€ For more information on this release, see:

    βž• 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
  • v8.3.2 Changes

    March 16, 2021

    πŸš€ For more information on this release, see:

    πŸ›  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
  • v8.3.1 Changes

    February 10, 2021

    πŸš€ For more information on this release, see:

    πŸ›  Fixed

    • πŸ›  Fixed an issue where the CSS files could be eliminated during tree-shaking #7516
  • v8.3.0 Changes

    January 28, 2021

    πŸš€ For more information on this release, see:

    βž• 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
  • v8.2.0 Changes

    November 12, 2020

    πŸš€ For more information on this release, see:

    βž• Added

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

    πŸ›  Fixed

    • πŸ›  Fixed an issue the container not being updated after trimming rows. #7241
    • πŸ›  Fixed an issue with a htmlToGridSettings helper if passed <table> had no rows. #7311
    • πŸ›  Fixed an issue where sorting indicator moved incorrectly when column was added. #6397
    • πŸ›  Fixed a bug, where untrimming previously trimmed rows would sometimes result in the table instance not refreshing its height, leaving the row headers not properly rendered. #6276
    • πŸ›  Fixes a bug, where tables' viewport was scrolled if a user opened editor when some columns on the left side of that cell were hidden. #7322
    • πŸ›  Fix a problem when event.target's parent in the mouseover event was not defined, the table threw an error when hovering over row/column headers. #6926
    • πŸ›  Fixed an issue, where calling the validation-triggering methods on a hiddenColumns-enabled Handsontable instance rendered the validated cells improperly. #7301
    • πŸ›  Fixed an issue, where adding 0 rows to the table ended with doubled entries in indexMappers' collections. #7326
    • πŸ›  Fix a problem with the inconsistent behavior of the Context Menu's "Clear column" disabled status. #7003
    • πŸ›  Fix a bug with parsing multiline cells on pasting text/html mime-type. #7369
  • v8.1.0 Changes

    October 01, 2020

    πŸš€ For more information on this release, see:

    βž• Added

    • βž• Added support for resizing non-contiguous selected rows #7162 along with refactor and bug fix introduced within #6871 PR #7220
    • βž• Added e2e tests and reorganized already existing ones #6491

    πŸ›  Fixed

    • πŸ›  Fixed an issue where if the first part of the merged area was hidden the value did not show #6871
    • πŸ›  Fixed an issue where after selecting the top-left element the row range resizing was not possible #7162 along with refactor and bug fix introduced within #6871 PR #7220
    • πŸ›  Fixed an issue where the column headers were cut off after hiding and then showing columns using the Hidden Columns plugin. #6395
    • πŸ›  Fixed an issue where redundant row has been added during copy/paste operations in some case #5961
    • πŸ›  Fixed an issue where too many values have been pasted when column was hidden #6743
    • πŸ›  Fixed a bug, where trying to move collapsed parent rows with the Nested Rows plugin enabled threw an error. #7132
    • πŸ›  Fixed an issue where after column or row alteration, Handsontable threw an error if ColumnSummary was enabled without defined rows ranges #7174
    • πŸ›  Fixed an issue where using updateSettings() has been breaking column sorting in specific cases #7228
    • πŸ›  Fixed an issue where the rows were missing their left border after disabling the row headers using updateSettings, while there were fixedColumnsLeft defined. #5735
    • πŸ›  Fixed an issue where the Handsontable could fall into an infinite loop during vertical scrolling. It only happened when the scrollable element was the window object. #7260;
    • πŸ›  Fixed an issue with moving rows to the last row of the table, when the Nested Rows plugin was enabled along with some other minor moving-related bugs. #6067
    • πŸ›  Fixed an issue with adding unnecessary extra empty line in cells on Safari. #7262
    • πŸ›  Fixed an issue with clipped column headers if they were changed before or within usage updateSettings. #6004

    πŸ”„ Changed

    • ⚑️ Updated dependencies to meet security requirements #7222
    • πŸ‘Œ Improved performance for TrimRows, HiddenRows and HiddenColumns plugins for big datasets with lots trimmed/hidden indexes #7223
  • v8.0.0 Changes

    August 05, 2020

    Major changes

    🚚 This version introduces a completely new architecture for row and column management - index mapper, which is responsible for the storage and management of index values. In prior versions, the calculation between physical and visual indexes was based on callbacks between hooks. That solution slowly led to inconsistencies and the calculation was imperfect in some cases. To fix that there was a major change in the whole system of mapping the indexes. The current solution offers an easier and more straightforward way to perform CRUD and move operations on rows and columns. It keeps all data in one place so getting and managing information is easier and less prone to bugs.

    The existing features were adapted to benefit from the new architecture. Apart from that, extra methods and hooks were added and there are few depreciations and removals, too.

    πŸ’₯ Breaking changes

    • Modifying the table's data by reference and calling render() will not work properly anymore. From this point onward, all the data-related operations need to be performed using the API methods, such as populateFromArray or setDataAtCell.
    • 🚚 The modifyRow, modifyCol, unmodifyRow, unmodifyCol hooks are no longer needed and were removed. Their
      πŸ“„ functionality can be achived by using API. More information in the 8.0.0 migration guide.
    • 🚚 skipLengthCache hook was removed, indexMapper is now responsible for the cache and length.
    • 🚚 The manualColumnFreeze plugin doesn't use the manualColumnMove plugin anymore.
    • πŸ”Œ The collapsibleColumns plugin doesn't use the hiddenColumns plugin anymore.
    • πŸ”Œ The nestedRows and filters plugins don't use the trimRows plugin anymore.
    • πŸ”Œ The minSpareRows and minRows options will ensure that the number of visible rows corresponds to the value provided to them (for example, the trimRows plugin won't have an impact on the number of displayed rows).
    • toPhysicalRow and toVisualColumnnow return null for non-existant rows/columns. #5945
    • The afterLoadData hook receives a different set of arguments. It used to be just the initialLoad flag, now the first argument is sourceData, followed by initialLoad.
    • πŸ”Œ The manualColumnFreeze plugin will now put the unfrozen columns right next to the last frozen one.
    • 🚚 The RecordTranslator object and the t property available in the plugins were removed.
    • πŸ›  After-prefixed hooks (afterLoadData, afterFilter, etc.) are now called just before the render call.
    • πŸ†• Newly created rows and columns are now placed in the source data in the place calculated from its position in the visual context (they "stick" to their adjacent rows/columns). It also applies to moved rows and columns.
    • 🚚 When the nestedRows plugin is enabled, moving rows will be possible only using the UI or by calling the dragRows method of the manualRowMove plugin.
    • The beforeRowResize, afterRowResize, beforeColumnResize, afterColumnResize hooks have the order of their arguments rearranged for the sake of consistency with other hooks and to fix an issue where multiple hooks didn't get the modified value in the pipeline: #3328
    • πŸ”„ Changed the argument structure in collapsibleColumns' toggleCollapsibleSection method: #6193
    • πŸ”¨ The following sublist shows changes related to the refactor of HiddenColumns and CollapsibleColumns. They will be compatible with upcoming IndexMappers #5945 along with other adjustments #6547:
      • Hidden indexes aren’t rendered. As a consequence hooks beforeValueRender, beforeRenderer, afterRenderer, modifyColWidth, beforeStretchingColumnWidth etc. will be executed just for some of the columns (just the rendered ones).
      • The getColWidth for hidden index will return 0 – it used to return 0.1. Also, it will no longer be called internally, the need can be now achieved by managers of rows and columns.
      • The modifyColWidth hook will not be called internally. However, it will be executed when the user will call the getColWidth.
      • Hidden indexes aren't rendered. As a consequence hooks beforeValueRender, beforeRenderer, afterRenderer, modifyColWidth, beforeStretchingColumnWidth etc. will be executed just for some of the columns (just the rendered ones).
      • listen function from the core API used to accept modifyDocumentFocus as optional parameter, this parameter was removed.
      • CustomBorders plugin was adapted to work with HiddenColumns properly. From now on hiding cells at the start or the end of the range will also hide their borders. Hiding a single cell with borders will hide all of its borders. #7083
      • CollapsibleColumns will no longer use HiddenColumns plugin to work. #6204
      • Adjusted HiddenColumns to be compatible with upcoming IndexMappers. #6547
      • hiddenRow and hiddenColumn hooks were removed. They were used to check if a given index is hidden in the HiddenColumns and HiddenRows plugins. Since now there may be more sources of hiding indexes they have been replaced by IndexMapper with the new isHidden method. It keeps the broad information about hidden indexes and their sources.
      • rowOffset and colOffset were removed since they aliased the methods from Walkontable. #6547
    • πŸ”„ Changes related to adjusting HiddenRows to new IndexMapper architecture are #6177:
      • Adjusted HiddenRows to new IndexMapper architecture. #6177
    • πŸ”Œ NestedHeaders plugin was rewritten, from now on, only a tree-like structure will be allowed, meaning, there will be no possibility to place nested headers in-between layers. #6716
    • The right mouse button (RMB) click on the corner when there is no data will show all options disabled. #6547
    • Left mouse button (LMB) click on the top left corner will now select all cells along with their headers. #6547
    • βœ‚ Removed the experimental GanttChart plugin. #7022

    πŸ†• New features

    • βž• Added the Index Mapper architecture and its API. #5112 (more information available in the PRs #5945 with additional
      πŸ”„ changes in #6547)
    • βž• Added a new batch method. #5945 along with other adjustments (#7068)

    Depreciations

    • πŸ—„ The observeChanges plugin is no longer enabled by columnSorting and became deprecated. #5945
    • 🚚 HeaderTooltips plugin becomes deprecated and will be removed in the next major version. #7023

    πŸ”„ Changelog

    βž• Added

    • βž• Added modifySourceData hook and setSourceDataAtCell method. #6664
    • βž• Added new argument to scrollViewportTo method: optional considerHiddenIndexes which is a boolean. #6547
    • βž• Added additional information available in the cell meta object - the language. #6254.
    • βž• Added a possibility to allow cancelling of autofill in the beforeAutofill hook. #4441
    • βž• Added support for newer versions of moment, numbro and pikaday. #5159
    • βž• Added afterAutoFill hook. #6135
    • βž• Added deprecated warning messages mechanism for plugin hooks. #6613
    • βž• Added missing types for instance.undoRedo. #6346
    • βž• Added countRenderableColumns method to the TableView. #6177
    • βž• Added missing "hide" property in CustomBorders typings. #6788
    • βž• Added beforeSetCellMeta hook with an ability to cancel the changes. #5388
    • βž• Added additional test for autofill plugin. #6756

    πŸ”„ Changed

    • πŸ”„ Changed how manualRowMove and manualColumnMove plugins work #5945
    • Click on a row header will select all cells (also hidden). #2391
    • Extracted Cell-Meta logic from Core to separate module. #6254
    • πŸ”¨ The CellMeta manager was refactored for future features and improvements. #6254
    • Rows can be resized to less than rowHeights. #6149
    • Left mouse button (LMB) click on the corner will now select all cells. #6547
    • The right mouse button (RMB) click on the corner, column and row headers will show just some options, defined by newly created specification #7082
    • Hidden indexes will no longer be rendered, as a consequence afterRenderer, modifyColWidth, beforeStretchingColumnWidth will be executable only on visible (meaning, rendered) rows and columns. #6547
    • The getColWidth for hidden index will return 0 - it used to return 0.1 #6547
    • The modifyColWidth hook isn't called internally. However, it will be executed when the user will call the getColWidth. #6547
    • Hidden rows/columns won't rendered anymore. As a consequence hooks beforeValueRender, beforeRenderer, afterRenderer, modifyColWidth, beforeStretchingColumnWidth etc. will be executed just for some of the columns (just the renderable ones). #6547
    • Selection behavior changed when hiding cells from the ContextMenu, now it is selecting a column on the right when there is space on right to the last selected column, selecting a column on the left otherwise. #6547
    • Developed a unified way to identify HOT "input" elements. All input elements owned by HOT got an attribute "data-hot-input" which are identified by that key. #6383
    • πŸ”Œ NestedHeaders plugin was rewritten, from now on, only a tree-like structure will be allowed, meaning, there will be no possibility to place nested headers in-between layers. #6716
    • πŸ”Œ CustomBorders plugin was adapted to work with HiddenColumns properly, from now on hiding cells at the start or at the end of a range will also hide their borders. Also, hiding a single cell with borders will hide all of its borders. #7083
    • Modifying the table's data by reference and calling render() will not work properly anymore. From this point onward, all the data-related operations need to be performed using the API methods, such as populateFromArray or setDataAtCell. #5945
    • βœ‚ Removed dependencies between plugins: the manualColumnFreeze plugin doesn't use the manualColumnMove, the collapsibleColumns plugin doesn't use the hiddenColumns plugin, nestedRows plugin doesn't use the trimRows plugin, filters plugin doesn't use the trimRows plugin anymore. #5945 along with other adjustments #6547:
    • πŸ”Œ The minSpareRows and minRows options will ensure that the number of visible rows corresponds to the value provided to them (for example, the trimRows plugin won't have an impact on the number of displayed rows). #5945
    • toPhysicalRow and toVisualColumn now return null for non-existant rows/columns. #5945
    • The afterLoadData hook receives a different set of arguments. It used to be just the initialLoad flag, now the first argument is sourceData, followed by initialLoad. #5945
    • πŸ”Œ The manualColumnFreeze plugin unfreezes the column just after the "line of freeze". #5945
    • 🚚 The RecordTranslator object and the t property available in the plugins were removed. #5945
    • πŸ›  After-prefixed hooks (afterLoadData, afterFilter, etc.) are now called just before the render call. #5945
    • πŸ†• Newly created rows and columns are now placed in the source data in the place calculated from its position in the visual context (they "stick" to their adjacent rows/columns). It also applies to moved rows and columns. #5945
    • 🚚 When the nestedRows plugin is enabled, moving rows will be possible only using the UI or by calling the dragRows method of the manualRowMove plugin. #5945
    • The beforeRowResize, afterRowResize, beforeColumnResize, afterColumnResize hooks have the order of their arguments rearranged for the sake of consistency with other hooks. #3328
    • πŸ”„ Changed the argument structure in collapsibleColumns' toggleCollapsibleSection method. #6193
    • ⚑️ Updated the moment, numbro and pikaday dependencies to their latest versions. #6610
    • Standardize the z-index properties between the overlays. #6269

    πŸ—„ Deprecated

    • 🚚 HeaderTooltips plugin becomes deprecated and will be removed in the next major version. #7023
    • 🚚 IE support is depreacated and will removed by the end of the year. #7026

    βœ‚ Removed

    • βœ‚ Removed firstVisibleColumn CSS class as no longer needed. #6547
    • βœ‚ Removed helpers that covered IE8 support or are not needed anymore. #6525
    • βœ‚ Removed old unnecessary warning about beforeChange callback. #6792
    • βœ‚ Removed debug key (key, css, docs). #6672
    • βœ‚ Removed hiddenRow and hiddenColumn hooks. #6547
    • βœ‚ Removed optional argument modifyDocumentFocus from the listen function. #6547
    • βœ‚ Removed rowOffset and colOffset public API methods since they aliased the methods from Walkontable. #6547
    • βœ‚ Removed the experimental GanttChart plugin. #7022
    • βœ‚ Removed post-install warning from package.json file #6608
    • 🚚 The modifyRow, modifyCol, unmodifyRow, unmodifyCol and skipLengthCache hooks are no longer needed and were removed. #5945

    πŸ›  Fixed

    • πŸ›  Fixed a problem with data not being added to the table properly with the columnSorting option enabled. #2685
    • πŸ›  Fixed a problem with loadData not resetting the row order changed by the manualRowMove plugin. #3568
    • πŸ›  Fixed a bug, where using alter's insert_row after using the loadData method and sorting the data would add unintentional additional rows to the table. #3809
    • πŸ›  Fixed a bug, where blank rows appeared in the middle of the table after using loadData along with the minSpareRows option. #3937
    • πŸ›  Fixed a problem with the columnSummary plugin not working properly after adding new rows using the Context Menu and sorting the data. #3924
    • πŸ›  Fixed a bug, where calling loadData with an object-based data source would not work properly. #4204
    • πŸ›  Fixed a bug with the filters plugin using incorrect indexes after moving and/or sorting the table. #4442
    • πŸ›  Fixed a bug that caused a column to contain improper data after moving it to index 0. #4470
    • πŸ›  Fixed a bug with the afterRowMove hook receiving an improper target argument. #4501
    • πŸ›  Fixed a problem with the manualColumnFreeze plugin enabling manualColumnMove, even if it was declared as false. #4553
    • πŸ›  Fixed a bug, where calling loadData with minSpareRows and manualRowMove enabled caused the table to improperly load the data. #4576
    • πŸ›  Fixed a bug, where enabling columnSorting caused the manualColumnFreeze to be unusable. #4601
    • πŸ›  Fixed a problem, where the columns were assigned improper widths after inserting additional columns or removing any of them. #4666
    • πŸ›  Fixed a bug, where moving rows was impossible while persistentState was enabled. #4713
    • πŸ›  Fixed a bug, where manualColumnMove didn't work if the dataset was empty. #4926
    • πŸ›  Fixed a bug, where calling loadData with minSpareRows enabled would cause unwanted blank rows to appear. #5707
    • πŸ›  Fixed a bug with the afterColumnMove hook receiving an improper target argument. #5173
    • πŸ›  Fixed a problem, where filtering data after moving rows would not work properly. #5178
    • πŸ›  Fixed a bug, where calling loadData made NaN appear in the column headers. #5369
    • πŸ›  Fixed a bug with the skipColumnOnPaste option not working properly when using columnSorting and hiddenColumns. #5824
    • πŸ›  Fixed a bug with the trimRows plugin did not work properly after moving rows. #5860
    • πŸ›  Fixed a problem with minSpareRows not working properly with the trimRows plugin being used. #5862
    • πŸ›  Fixed a bug, where filtering and sorting data would cause the toVisualRow method to return the wrong results. #5890
    • πŸ›  Fixed a bug with the filters and trimRows plugins not working properly alongside each other. #5915
    • πŸ›  Fixed a bug, where manualColumnMove would not work properly when the data object properties count would be lower than the table column count. #5931
    • πŸ›  Fixed a bug with the trimRows plugin did not work properly with the startRows option. #5953
    • πŸ›  Fixed a problem, where using loadData after sorting would not work as expected. #5956
    • πŸ›  Fixed a problem with the beforeColumnMove and afterColumnMove hooks not containing information about their destination indexes. #6005
    • πŸ›  Fixed a problem where using filters and minSpareRows would make the table add an empty row at the beginning of the table. #6278
    • πŸ›  Fixed a bug with the manualRowMove plugin would duplicate data in the moved rows, when used with a row index greater than the table row count. #6088
    • πŸ›  Fixed a bug, where the toVisualRow method returned null when using the trimRows and columnSorting plugins together. #6310
    • πŸ›  Fixed a problem, where calling updateSettings in the afterColumnMove hook callback would have no effect. #4480
    • πŸ›  Fixed a bug, where calling loadData would make the filters plugin to not behave as expected. #5244
    • πŸ›  Fixed a bug, where detaching a child from a parent in the nestedRows plugin would cause a +/- button misalignment. #5900
    • πŸ›  Fixed a problem with the columnSummary plugin creating a doubled summary row. #5794
    • πŸ›  Fixed a bug, where moving children between parents using the nestedRows plugin would throw an error. #6066
    • πŸ›  Fixed a bug, where merging cells would conflict with the columnSorting plugin. #6086
    • πŸ›  Fixed a bug, where the row headers would stay visible after removing all the table columns. #6412
    • πŸ›  Fixed an issue where Hidden columns become visible when the user ran updateSettings. #4121
    • πŸ›  Fixed an issue where using hiddenColumns and stretchH showed a redundant horizontal scrollbar. #4181
    • πŸ›  Fixed an issue in which if the last column was a hidden column and stretchH was enabled, the last column was displayed. #4370
    • πŸ›  Fixed an issue where updateSettings performance was very low because of hiddenColumns being rendered. #4381
    • πŸ›  Fixed an issue where collapse was not working correctly with custom cell renderers. #4716
    • πŸ›  Fixed an issue where hiddenColumns did not work properly with columnSorting. #5571
    • πŸ›  Fixed an issue where manualColumnMove should work with hiddenColumns. #5598
    • πŸ›  Fixed an issue where hiddenColumns option interfered with the keyboard movement. #5704
    • πŸ›  Fixed an issue where after hiding the first two rows, the row headers became de-synchronized by 1px. #5817
    • πŸ›  Fixed an issue where hiding columns affected selection of hidden columns. #5871
    • πŸ›  Fixed an issue where if collapsibleColumns were set to true it was impossible to exit selection mode. #5875
    • πŸ›  Fixed an issue where hiddenColumns did not work properly with autoWrapRow/autoWrapCol. #5877
    • πŸ›  Fixed an issue on IE where hiding the first column caused a display of double border for top left corner. #5881
    • πŸ›  Fixed an issue where nestedHeaders duplicated a header name if more columns are added. #5882
    • πŸ›  Fixed an issue where hiddenColumns plugin unset cell's renderer. #5883
    • πŸ›  Fixed an issue where hiddenColumns had stored visual indexes and should have used physical indexes. #5909
    • πŸ›  Fixed an issue where hidden columns should be unrecoverable. #6113
    • πŸ›  Fixed an issue where row selection ignored columns that are hidden at the end. #6181
    • πŸ›  Fixed an issue where defining data with more data than used in columns caused an issue with showing column once it was hidden. #6426
    • πŸ›  Fixed an issue where hiding rows, while there was a merged area, involved caused data shifting and unexpected merged area coordinates. #6376
    • πŸ›  Fixed an issue where colHeader was truncated after moving hiddenColumn. #6463
    • πŸ›  Fixed an issue where the last hidden column was visible upon column resizing. #6557
    • πŸ›  Fixed an issue where with hiding columns after moved them manually. #6668
    • πŸ›  Fixed an issue where setting columnSorting to true (on initialization or via updateSettings) made headers non-collapsible programmatically via collapseAll method. #4999
    • πŸ›  Fixed an issue where customBorders plugin was missing in the definition file. #6477
    • πŸ›  Fixed incorrect size of wtHiderand and wtHolder in overlays. #3873
    • πŸ›  Fixed an issue where updateSettings could not update tableClassName. #6295
    • πŸ›  Fixed an issue where JSON data with empty value was losing some double quotes when pasted into a cell. #6167
    • πŸ›  Fixed an issue where some classes for the table were missing if one of them was empty. #6371
    • πŸ›  Fixed an issue where clicking in a contextmenu's border opened the native context menu. #6218
    • πŸ›  Fixed the error that ocurred during loading of E2E test runner in Edge and IE. #6713
    • πŸ›  Fixed the inconsistency and problems with adding rows from the corner when all rows are trimmed. #7061
    • πŸ›  Fixed an issue where using read-only and alignment from the context menu was disabled when all columns were selected. #7114
    • πŸ›  Fixed an issue where setting focus to a column to open context menu after applying a filter was impossible. #7005
    • πŸ›  Fixed an issue where minSpareCols with undo added too many columns. #6363
    • πŸ›  Fixed the inconsistency in selection when using the right mouse button for first row/column. #6334
    • πŸ›  Fixed an issue where undoing column removal caused column headers to lack a header. #6992
    • πŸ›  Fixed an issue where readOnly for column was erased (did not apply) if filters were used. #6559
    • πŸ›  Fixed an issue where readonly property was lost after declining confirmation in beforeRemoveCol or beforeRemoverow. #6332
    • πŸ›  Fixed an issue where readOnly state for some cells was lost when rows with trimRows turned on were removed. #6990
    • πŸ›  Fixed incorrect column header highlight when merged cells were unmerged and hiddenColumns were used. #6978
    • πŸ›  Fixed an issue where after hiding the first row, the second row top border disappeared. #6977
    • πŸ›  Fixed an issue with incorrect selection after hiding the first row. #6831
    • πŸ›  Fixed an issue where hiding the first row caused blue highlight in column headers selection to disappear. #6976
    • πŸ›  Fixed wrong selection area after sorting with hidden rows. #6386
    • πŸ›  Fixed an issue where it was not possible to use selectAll when the first row was hidden. #6975
    • πŸ›  Fixed an issue where it was possible to select hidden row or column. #6974
    • πŸ›  Fixed an issue where row indexes changed if the first row was hiding after moving row from bottom to top. #6965
    • πŸ›  Fixed an issue where selection skipped the highest parent. #6770
    • πŸ›  Fixed an iisue where nestedRows blocked table from loading if data was not provided. #6928
    • πŸ›  Fixed an isse where it was impossible to go back to the original cell after dragging down. #4233
    • πŸ›  Fixed an issue where keyboard navigation did not work on merged cells with hidden rows/columns. #6973
    • πŸ›  Fixed an issue where trimRows and hiddenRows with specific settings broke borders. #6904
    • πŸ›  Fixed wrong union type for startPosition. #6840
    • πŸ›  Fixed type mismatch for Handsontable.plugins.ContextMenu. #6347
    • πŸ›  Fixed an issue where manualColumnMove did not modify the columns in updateSettings. #5200
    • πŸ›  Fixed rendering issue on column udpate with updateSettings. #3770
    • πŸ›  Fixed an issue where expanding a collapsed column was also expanding 'child' collapsed columns, except the first child. #5792
    • πŸ›  Fixed an issue with inproper selection for headers when the first column was hidden. #5999
    • πŸ›  Fixed an issue where it was not possible to align cells if the selection was made upward. #6600
    • πŸ›  Fixed an issue where currentColClassName did not work properly with nestedHeaders. #5861
    • πŸ›  Fixed an issue with scrollbar and dimension calculation in Firefox for toggling column visibility with fixed columns and stretchH. #6186
    • πŸ›  Fixed an issue with undoing the nested row removal. #6433
    • πŸ›  Fixed an isse where getSourceData functions returned wrong data for nested rows. #5771
    • πŸ›  Fixed na issue where formulas plugin did not work with nestedRows. #4154
    • πŸ›  Fixed an issue where nested headers and hidden columns highlighted ad additional column when used together. #6881
    • πŸ›  Fixed an issue where getByRange for sourceData did not work properly with nested object data. #6548
    • πŸ›  Fixed an issue where window.frameElement threw errors in MSEdge, IE and Safari. #6478
    • πŸ›  Fixed an issue where DataSource.countColumns returned invalid number of columns for nested objects. #3958
    • πŸ›  Fixed an issue where mergedCells with hidden cells caused problems with rendering. #7020
    • πŸ›  Fixed an issue where it was not possible to move column when all columns were selected by ctrl + a. #6355
    • πŸ›  Fixed an issue where double click on the column resize handle did not adjust size correctly. #6755
    • πŸ›  Fixed an issue where the cell meta was retrieved using the wrong coordinates. #6703
    • πŸ›  Fixed nested rows incorrect state after changing data. #5753
    • πŸ›  Fixed an issue in EDGE where the dropdown menu onMouseOut event caused critical errors when hovering over vertical scrollbar. #6699
    • πŸ›  Fixed an issue with too many layers of highlight with noncontinuous selection on merged cells. #7028
    • πŸ›  Fixed an issue where NestedHeaders did not allow to define header level as an empty array. #7035
    • πŸ›  Fixed an issue where passing nestedHeaders as a single empty array stoped the table from rendering. #7036
    • πŸ›  Fixed an issue where opening a context menu for a column when its hidden data was selected did not block adding of rows by the menu. #7050
    • πŸ›  Fixed an issue where it was not possible to navigate past hidden column using keyboard ifhot.updateSettings was called in afterSelection. #3726
    • πŸ›  Fixed an issue where headers did not export with exportToFile in the specific case. #4176
    • πŸ›  Fixed an issue with types mismatch. #6035
    • πŸ›  Fixed an issue where manual row resize handler threw an error when bottom rows overlay was enabled. #6435
    • πŸ›  Fixed an issue where the afterRowResize hook shared incorrect results in the second parameter. #6430
    • πŸ›  Fixed an issue where the row/column resize hooks should not have returned null. #7074
    • πŸ›  Fixed the loss of selection after merging from headers. #7076
    • πŸ›  Fixed an issue where calling updateSettings changed the index of frozen columns via freezeColumn method. #6843
    • πŸ›  Fixed an issue where deleting the last column via updateSettings which was part of the selection caused scroll to the bottom. #5849
    • πŸ›  Fixed an issue where it was not possible to hide rows and merge cells at the same time. #6224
    • πŸ›  Fixed the wrong data in merge cells after the hidden column and additionally an error occurs. #6888
    • πŸ›  Fixed an issue where it was not possible to change cell type via setCellMeta. #4793
    • πŸ›  Fixed an issue where cell editor did not dynamically changed while changing the cell type. #4360
    • πŸ›  Fixed an issue where it was not possible to unmerge cells if part of them was hidden. #7095
    • πŸ›  Fixed an issue where calling clear method removed the focus from the table. #7099
    • πŸ›  Fixed an issue where clear method did not work for hidden data. #7097
    • πŸ›  Fixed an issue where the editor was moved by 1px when the first row / column was hidden. #6982
    • πŸ›  Fixed an issue where headers were deselected after undoing removal. #6670
    • πŸ›  Fixed an issue with improper selection after insert column/row when mergeCells was enabled. #4897
    • πŸ›  Fixed an issue where wrong cell meta was removed when deleting rows. #6051
    • πŸ›  Fixed wrong types of beforeRowMove arguments. #6539
    • πŸ›  Fixed an issue where selection of a whole row did not happen consequently after selecting a row header. #5906
    • πŸ›  Fixed an issue where it was not possible to use physical row index instead of visual one. #6309
    • πŸ›  Fixed an issue where incorrect data was returned after undoing the remove column option. #5000
    • πŸ›  Fixed - Copy and paste works properly also when selecting hidden columns when: all columns within a selected range are hidden and when just some columns within a selected range are hidden. #7043.
    • πŸ›  Fixed an issue where it was impossible to add new row in the nestedRows. #5133
    • πŸ›  Fixed an issue where afterOnCellMouseDown returned (0,0) coords after clicking on the topleft corner. #3978
    • πŸ›  Fixed an issue where persisted manualColumnMove was not restored when using loadData. #5207
    • πŸ›  Fixed issues with filtering results in blank rows. #5208
    • πŸ›  Fixed an issue where changing data on collapsed rows resulted in error. #5328
    • πŸ›  Fixed an issue where the manualColumnMove operation affected the column order of data loaded by loadData. #5591
    • πŸ›  Fixed an issue where nestedRows did not allow to keep rowHeaders after collapsing. #5874
    • πŸ›  Fixed performance and CPU issue caused by using some handsontable properties. #6058
    • πŸ›  Fixed an error with columnSummary plugin when trying to create a row. #6300
    • πŸ›  Fixed an error where walkontable.css and handsontable.css stylesheets were out of sync. #6381
    • πŸ›  Fixed an issue where colHeaders order was not updated after manual move with empty object data source. #6413
    • πŸ›  Fixed "detach from parent" option. #6432
    • πŸ›  Fixed an issue where PreventOverflow feature did not work if multiColumnSorting plugin was enabled. #6514
    • πŸ›  Fixed an issue where old CSS classes were not removed after updateSettings. #6575
    • πŸ›  Fixed an issue where columnSummary, Filters and spare rows were causing 'RangeError: Maximum call stack size exceeded'. #6695
    • πŸ›  Fixed an issue where afterSelectionEnd returned incorrect data when clicking on a column when all rows were hidden. #7045
    • πŸ›  Fixed an issue where wrapping was not applied after setting trimWhitespace to false. #6232
    • πŸ›  Fixed an issue with additional selection border in iOS. #7103
    • πŸ›  Fixed an issue with rendering different borders. #6955
    • πŸ›  Fixed an issue with BACKSPACE not working properly in the filter by value input. #6842
    • πŸ›  Fixed an issue with Undo/Redo not working with fixing columns. #6869
    • βž• Added a missing argument in the deepObjectSize function. #6821
    • πŸ›  Fixed an issue where the table threw errors while clicking the cells if the Handsontable was initialized with fixedRowsTop and fixedRowsBottom higher than rows length. #6718
    • πŸ›  Fixed an issue where it was not possible to change the state of checkbox-type, non-contiguous cells using SPACE. #4882
    • πŸ›  Fixed an issue where resizing made rows shorter than expected and caused row misalignment. #6429
    • πŸ›  Fixed an issue where Handsontable was missing rows when preventOverflow with updateSettings were used. #4303
    • πŸ›  Fixed inconsistency between selecting all columns with drag and via a CTRL/CMD + A shortcut. #6327