HANDSONTABLE v8.0.0-beta.1 Release Notes
Release Date: 2019-11-14 // over 4 years ago-
๐ฅ Breaking changes
We implemented a new architecture for row and column management.
It allows an easier and more straightforward way to perform CRUD and moving operations on rows and columns. This change forced us to create some breaking changes:
๐ The
observeChanges
plugin is no longer enabled bycolumnSorting
and became deprecated.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 aspopulateFromArray
orsetDataAtCell
.๐ The
modifyRow
,modifyCol
,unmodifyRow
,unmodifyCol
andskipLengthCache
hooks are no longer needed and were removed.๐ The
manualColumnFreeze
plugin doesn't use themanualColumnMove
plugin anymore.๐ The
collapsibleColumns
plugin doesn't use thehiddenColumns
plugin anymore.๐ The
nestedRows
plugin doesn't use thetrimRows
plugin anymore.๐ The
filters
plugin doesn't use thetrimRows
plugin anymore.๐ The
minSpareRows
andminRows
options will ensure that the number of visible rows corresponds to the value provided to them (for example, thetrimRows
plugin won't have an impact on the number of displayed rows).Methods like
toPhysicalRow
,toVisualColumn
, etc. now returnnull
for non-existant rows/columns.The
afterLoadData
hook receives a different set of arguments. It used to be just theinitialLoad
flag, now the first argument issourceData
, followed byinitialLoad
.The
manualColumnFreeze
plugin will now put the unfrozen columns right next to the last frozen one.๐ The
RecordTranslator
object and thet
property available in the plugins were removed.after
-prefixed hooks (afterLoadData
,afterFilter
, etc.) are now called just before therender
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 thedragRows
method of themanualRowMove
plugin.๐ For more in-depth information about these changes, see the description of pull request #5945. (#5751)
The
beforeRowResize
,afterRowResize
,beforeColumnResize
,afterColumnResize
hooks have the order of their arguments rearranged for the sake of consistency with other hooks:Was:
(currentIndex: number, newSize: number, isDoubleClick: boolean)
Is:
(newSize: number, index: number, isDoubleClick: boolean)
(#3328)
๐ Change the argument structure in
collapsibleColumns
'toggleCollapsibleSection
method.Was:
(coords: object, action: string)
Is:
coords: Array<object>, action: string)
(#6193)
๐ New features (also present in the upcoming version
7.3.0
)- ๐ We're introducing a new option to the Context Menu plugin -
uiContainer
. It allows declaring a DOM container, where all the Context Menu's element will be placed. It may come espacially handy when using Handsontable inside of aniframe
or some other content-trimming context. (#6283, #6417) - ๐ We also added a
uiContainer
option to the Copy/Paste plugin. It works in a similar way to the one described above, but is used to declare the container for the Copy/Paste plugin's DOM elements. (#6343)
๐ Changes
- Resolved 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 themanualRowMove
plugin. (#3568) - ๐ Fixed a bug, where using
alter
'sinsert_row
after using theloadData
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 theminSpareRows
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 problem with the Hidden Columns settings being reset after calling
updateSettings
. (#4121) - ๐ 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 impropertarget
argument. (#4501) - ๐ Fixed a problem with the
manualColumnFreeze
plugin enablingmanualColumnMove
, even if it was declared asfalse
. (#4553) - ๐ Fixed a problem with plugins using
arrayMappers
not working properly after updating the dataset. (#4567) - ๐ Fixed a bug, where calling
loadData
withminSpareRows
andmanualRowMove
enabled caused the table to improperly load the data. (#4576) - ๐ Fixed a bug, where enabling
columnSorting
caused themanualColumnFreeze
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 with the
collapseAll
method from thecollapsibleColumns
plugin did not work properly ifcolumnSorting
was enabled. (#4999) - ๐ Created a shared row mapper for the
columnSorting
,manualRowMove
, andtrimRows
plugins. (#5065) - ๐จ Refactored the
manualRowMove
plugin to match the new architecture. (#5068) - ๐ Fixed a bug, where calling
loadData
withminSpareRows
enabled would cause unwanted blank rows to appear. (#5707) - ๐ Fixed a bug with the
afterColumnMove
hook receiving an impropertarget
argument. (#5173) - ๐ Fixed a problem, where filtering data after moving rows would not work properly. (#5178)
- ๐ Fixed a bug, where calling
loadData
madeNaN
appear in the column headers. (#5369) - ๐ Fixed a bug with the
skipColumnOnPaste
option not working properly when usingcolumnSorting
andhiddenColumns
. (#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 thetrimRows
plugin being used. (#5862) - ๐ Fixed a problem, where it was impossible to filter the data declared in the
nestedRows
plugin. (#5889) - ๐ 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
andtrimRows
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 thestartRows
option. (#5953) - ๐ Fixed a problem, where using
loadData
after sorting would not work as expected. (#5956) - ๐ Fixed a problem with the
beforeColumnMove
andafterColumnMove
hooks not containing information about their destination indexes. (#6005) - ๐ Fixed a problem where using
filters
andminSpareRows
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 returnednull
when using thetrimRows
andcolumnSorting
plugins together. (#6310) - ๐ Fixed a problem, where calling
updateSettings
in theafterColumnMove
hook callback would have no effect. (#4480) - ๐ Fixed a bug, where calling
loadData
would make thefilters
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 adding rows by modifying the data by reference while using the
nestedRows
plugin would throw an error. (#3914) - ๐ 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)
Includes changes from
7.3.0
- ๐ Fixed a problem with table resizing on every scroll event on Firefox, when no table height was defined. (#6344)
- โก๏ธ Updated the
puppeteer
package in thedevDependencies
section to get rid of thenpm audit
security error. (#6393) - โ Removed the unneeded
CNAME_
file from the repo. (#6389) - ๐ Fixed a problem, where pasting data from Excel caused Handsontable to throw an error. (#6217)
- ๐ Fixed a bug, where data pasted from Excel would get improperly formatted in Handsontable. (#6258)
- ๐ Fixed a bug, where the
& < > ' "
characters in the pasted data would be automatically changed to their equivalent HTML entities. (#1535)
- ๐ We're introducing a new option to the Context Menu plugin -