HANDSONTABLE v8.0.0-beta.2 Release Notes

Release Date: 2020-07-15 // almost 4 years ago
  • We are excited to announce we have just released the second beta version of 8.0.0. This blog post describes changes that happened after the release of the first beta, for the previous changes please see the previous blog post.

    After implementing a new architecture for managing row and column indexes several parts of the library had te be adapted. It mainly includes adjusting the existing hooks to work properly with the new solution for managing the indexes. This is the last step before releasing a stable 8.0.0 version.

    Major changes

    We adapted the library to work with the new architecture for row and column management.

    ๐Ÿ’ฅ Breaking changes

    • ๐Ÿ”จ Changes related to the refactor of HiddenColumns and CollapsibleColumns. They will be compatible with upcoming IndexMappers #6547 along with other adjustments #6178:
      • Hidden indexes will no longer be rendered, as a consequence afterRenderer, modifyColWidth, beforeStretchingColumnWidth will be executable only on visible (meaning, rendered) rows and columns.
      • 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 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.
      • CollapsibleColumns will no longer use HiddenColumns plugin to work. #6204
      • Refactored HiddenColumns to be compatible with upcoming IndexMappers. #6179
      • Renamed the following methods of the IndexMapper:
      • from getPhysicalIndex to getPhysicalFromVisualIndex
      • from getVisualIndex to getVisualFromPhysicalIndex
      • from isSkipped to isTrimmed
      • from getNotSkippedIndexes to getNotTrimmedIndexes
      • from getNotSkippedIndexesLength to getNotTrimmedIndexesLength
      • from SkipMap to TrimmingMap
      • from VisualIndexToPhysicalIndexMap to IndexesSequence.
      • 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 #6177:
      • Adjusted HiddenRows to new IndexMapper architecture.
      • Refactored the HiddenRows plugin. #6887
    • 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. #6949
    • 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.
    • โž• Added modifySourceData hook and setSourceDataAtRowProp, setSourceDataAtCell methods. #6664
    • The right mouse button (RMB) click on the corner when there is no data will show all options disabled. This has two exceptions though: Insert column right and Insert row below when a table has data type defined by dataSchema as array, except Insert row right otherwise.
    • Left mouse button (LMB) click on the top left corner will now select all cells along with their headers.
    • โœ‚ Removed the experimental GanttChart plugin #7022

    Depraciations

    • ๐Ÿšš HeaderTooltips plugin becomes deprecated and will be removed in the next major version. #7023
    • ๐Ÿšš Internet Explorer support is deprecated and will be removed by the end of the year #7026

    ๐Ÿ”„ Changelog

    โž• Added

    • โž• Added modifySourceData hook and setSourceDataAtRowProp, setSourceDataAtCell methods. #6664.
    • โž• Added an extra type of index map has been introduced. It's HidingMap. It works similar to the TrimmingMap. #6547
    • โž• Added new methods to the IndexMapper class #6547:
      • getPhysicalFromRenderableIndex: (renderableIndex: number) => number | null,
      • getVisualFromRenderableIndex: (renderableIndex: number) => number | null,
      • getRenderableFromVisualIndex: (visualIndex: number) => number | null,
      • isHidden: (physicalIndex: number) => boolean,
      • getFirstNotHiddenIndex: (fromVisualIndex: number, incrementBy: number, searchAlsoOtherWayAround?: boolean, indexForNextSearch?: number) => number | null,
      • getNotHiddenIndexes: (readFromCache?: boolean) => number[],
      • getNotHiddenIndexesLength: () => number,
      • getRenderableIndexes: (readFromCache?: boolean) => number[],
      • getRenderableIndexesLength: () => number.
    • โž• 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 z-index to fixedRowsBottom. #6269
    • โž• Added deprecated warning messages mechanism for plugin hooks. #6613
    • โž• Added a missing argument in the deepObjectSize function. #6821
    • โž• Added missing types for instance.undoRedo. #6346
    • โž• Added countRenderableColumns method to the TableView #6887
    • โž• 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

    • ๐Ÿ”จ Refactored hidden indexes. #6595
    • 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. #6233
    • 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 when there is no data will show all options disabled. This has two exceptions though: Insert column right and Insert row below when a table has data type defined by dataSchema as array, except Insert row right otherwise. #6547
    • 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. Also, it will no longer be called internally, the need can be now achieved by managers of rows and columns. #6547
    • Left mouse button (LMB) click on the top left corner will now select all cells. #6547
    • The modifyColWidth hook isn't called internally. However, it will be executed when the user will call the getColWidth. #6547
    • IndexMapper getPhysicalIndex method was renamed to getPhysicalFromVisualIndex.#6547
    • IndexMapper getVisualIndex method was renamed to getVisualFromPhysicalIndex.#6547
    • IndexMapper isSkipped method was renamed to isTrimmed.#6547
    • IndexMapper getNotSkippedIndexes method was renamed to getNotTrimmedIndexes.#6547
    • IndexMapper getNotSkippedIndexesLength method was renamed to getNotTrimmedIndexesLength.#6547
    • SkipMap class was renamed to TrimmingMap.#6547
    • VisualIndexToPhysicalIndexMap class was renamed to IndexesSequence.#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). #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.
    • 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
    • ๐Ÿ”Œ CollapsibleColumns will no longer use HiddenColumns plugin to work. #6204

    ๐Ÿ—„ 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 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.
    • โœ‚ 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

    ๐Ÿ›  Fixed

    • ๐Ÿ›  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 incorrect header name when user defined more columns in the nestedHeaders plugin. #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 the additional row was added during copy/paste operations and with hidden rows/columns enabled. #5961
    • ๐Ÿ›  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 some headers were gone when hidden and shown again. #6395
    • ๐Ÿ›  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 copy-and-paste worked wrong in a cell that was hidden and then uncovered again. #6742
    • ๐Ÿ›  Fixed an issue where too many values were pasted when the column was hidden. #6743
    • ๐Ÿ›  Fixed an issue where expanding a collapsed column caused expanding of a child columns except for the first one. #5792
    • ๐Ÿ›  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 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.