handsontable 13.1.0 → 14.0.0-next-d97b156-20231027

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (691) hide show
  1. package/3rdparty/walkontable/src/calculator/constants.js +3 -6
  2. package/3rdparty/walkontable/src/calculator/viewportColumns.js +1 -2
  3. package/3rdparty/walkontable/src/calculator/viewportRows.js +1 -2
  4. package/3rdparty/walkontable/src/cell/coords.d.ts +8 -1
  5. package/3rdparty/walkontable/src/cell/coords.js +81 -13
  6. package/3rdparty/walkontable/src/cell/coords.mjs +80 -11
  7. package/3rdparty/walkontable/src/cell/range.d.ts +9 -2
  8. package/3rdparty/walkontable/src/cell/range.js +39 -9
  9. package/3rdparty/walkontable/src/cell/range.mjs +38 -7
  10. package/3rdparty/walkontable/src/core/_base.js +9 -3
  11. package/3rdparty/walkontable/src/core/_base.mjs +9 -3
  12. package/3rdparty/walkontable/src/core/clone.js +2 -2
  13. package/3rdparty/walkontable/src/core/clone.mjs +2 -2
  14. package/3rdparty/walkontable/src/core/core.js +3 -2
  15. package/3rdparty/walkontable/src/core/core.mjs +3 -2
  16. package/3rdparty/walkontable/src/event.js +13 -12
  17. package/3rdparty/walkontable/src/event.mjs +12 -10
  18. package/3rdparty/walkontable/src/facade/core.js +2 -2
  19. package/3rdparty/walkontable/src/facade/core.mjs +2 -2
  20. package/3rdparty/walkontable/src/filter/column.js +1 -2
  21. package/3rdparty/walkontable/src/filter/row.js +1 -2
  22. package/3rdparty/walkontable/src/index.js +12 -4
  23. package/3rdparty/walkontable/src/index.mjs +2 -2
  24. package/3rdparty/walkontable/src/overlay/_base.js +13 -2
  25. package/3rdparty/walkontable/src/overlay/_base.mjs +14 -3
  26. package/3rdparty/walkontable/src/overlay/constants.js +7 -14
  27. package/3rdparty/walkontable/src/overlay/inlineStart.js +2 -6
  28. package/3rdparty/walkontable/src/overlay/inlineStart.mjs +2 -6
  29. package/3rdparty/walkontable/src/overlay/top.js +2 -6
  30. package/3rdparty/walkontable/src/overlay/top.mjs +2 -6
  31. package/3rdparty/walkontable/src/overlays.js +1 -2
  32. package/3rdparty/walkontable/src/renderer/cells.js +10 -0
  33. package/3rdparty/walkontable/src/renderer/cells.mjs +11 -1
  34. package/3rdparty/walkontable/src/renderer/columnHeaders.js +13 -0
  35. package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +14 -1
  36. package/3rdparty/walkontable/src/renderer/rowHeaders.js +8 -0
  37. package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +8 -0
  38. package/3rdparty/walkontable/src/renderer/rows.js +13 -0
  39. package/3rdparty/walkontable/src/renderer/rows.mjs +13 -0
  40. package/3rdparty/walkontable/src/renderer/table.js +9 -0
  41. package/3rdparty/walkontable/src/renderer/table.mjs +9 -0
  42. package/3rdparty/walkontable/src/scroll.js +3 -2
  43. package/3rdparty/walkontable/src/scroll.mjs +2 -0
  44. package/3rdparty/walkontable/src/{border.js → selection/border/border.js} +8 -14
  45. package/3rdparty/walkontable/src/{border.mjs → selection/border/border.mjs} +7 -12
  46. package/3rdparty/walkontable/src/selection/border/constants.js +15 -0
  47. package/3rdparty/walkontable/src/selection/border/constants.mjs +12 -0
  48. package/3rdparty/walkontable/src/selection/constants.js +54 -0
  49. package/3rdparty/walkontable/src/selection/constants.mjs +51 -0
  50. package/3rdparty/walkontable/src/selection/index.js +26 -0
  51. package/3rdparty/walkontable/src/selection/index.mjs +5 -0
  52. package/3rdparty/walkontable/src/selection/manager.js +274 -0
  53. package/3rdparty/walkontable/src/selection/manager.mjs +269 -0
  54. package/3rdparty/walkontable/src/selection/scanner.js +270 -0
  55. package/3rdparty/walkontable/src/selection/scanner.mjs +267 -0
  56. package/3rdparty/walkontable/src/selection/selection.js +100 -0
  57. package/3rdparty/walkontable/src/selection/selection.mjs +96 -0
  58. package/3rdparty/walkontable/src/settings.js +13 -4
  59. package/3rdparty/walkontable/src/settings.mjs +13 -4
  60. package/3rdparty/walkontable/src/table/bottom.js +1 -2
  61. package/3rdparty/walkontable/src/table/bottomInlineStartCorner.js +1 -2
  62. package/3rdparty/walkontable/src/table/inlineStart.js +1 -2
  63. package/3rdparty/walkontable/src/table/master.js +3 -6
  64. package/3rdparty/walkontable/src/table/master.mjs +2 -4
  65. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +10 -2
  66. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +9 -0
  67. package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +10 -2
  68. package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +9 -0
  69. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.js +10 -2
  70. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.mjs +9 -0
  71. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +10 -2
  72. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +9 -0
  73. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +10 -2
  74. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +9 -0
  75. package/3rdparty/walkontable/src/table/top.js +1 -2
  76. package/3rdparty/walkontable/src/table/topInlineStartCorner.js +1 -2
  77. package/3rdparty/walkontable/src/table.js +20 -80
  78. package/3rdparty/walkontable/src/table.mjs +20 -79
  79. package/3rdparty/walkontable/src/utils/orderView/constants.js +3 -6
  80. package/3rdparty/walkontable/src/viewport.js +1 -2
  81. package/CHANGELOG.md +51 -0
  82. package/base.js +3 -4
  83. package/base.mjs +2 -2
  84. package/cellTypes/autocompleteType/autocompleteType.js +3 -5
  85. package/cellTypes/checkboxType/checkboxType.js +3 -5
  86. package/cellTypes/dateType/dateType.d.ts +3 -3
  87. package/cellTypes/dateType/dateType.js +5 -7
  88. package/cellTypes/dateType/dateType.mjs +2 -2
  89. package/cellTypes/dropdownType/dropdownType.js +3 -5
  90. package/cellTypes/handsontableType/handsontableType.d.ts +3 -3
  91. package/cellTypes/handsontableType/handsontableType.js +5 -7
  92. package/cellTypes/handsontableType/handsontableType.mjs +2 -2
  93. package/cellTypes/index.d.ts +3 -0
  94. package/cellTypes/index.js +4 -0
  95. package/cellTypes/index.mjs +3 -1
  96. package/cellTypes/numericType/numericType.js +3 -5
  97. package/cellTypes/passwordType/passwordType.js +3 -5
  98. package/cellTypes/selectType/index.d.ts +1 -0
  99. package/cellTypes/selectType/index.js +6 -0
  100. package/cellTypes/selectType/index.mjs +1 -0
  101. package/cellTypes/selectType/selectType.d.ts +14 -0
  102. package/cellTypes/selectType/selectType.js +11 -0
  103. package/cellTypes/selectType/selectType.mjs +8 -0
  104. package/cellTypes/textType/textType.js +3 -5
  105. package/cellTypes/timeType/timeType.js +3 -5
  106. package/common.d.ts +1 -1
  107. package/core/focusCatcher/focusDetector.js +63 -0
  108. package/core/focusCatcher/focusDetector.mjs +59 -0
  109. package/core/focusCatcher/index.js +148 -0
  110. package/core/focusCatcher/index.mjs +144 -0
  111. package/core/index.js +9 -0
  112. package/core/index.mjs +1 -0
  113. package/core.d.ts +10 -5
  114. package/core.js +327 -359
  115. package/core.mjs +327 -359
  116. package/dataMap/dataMap.js +1 -2
  117. package/dataMap/dataSource.js +1 -2
  118. package/dataMap/metaManager/metaSchema.js +65 -0
  119. package/dataMap/metaManager/metaSchema.mjs +65 -0
  120. package/dataMap/metaManager/mods/extendMetaProperties.js +7 -1
  121. package/dataMap/metaManager/mods/extendMetaProperties.mjs +7 -1
  122. package/dataMap/replaceData.js +5 -0
  123. package/dataMap/replaceData.mjs +5 -0
  124. package/dist/handsontable.css +94 -76
  125. package/dist/handsontable.full.css +94 -76
  126. package/dist/handsontable.full.js +21236 -14104
  127. package/dist/handsontable.full.min.css +8 -8
  128. package/dist/handsontable.full.min.js +170 -152
  129. package/dist/handsontable.js +22016 -15254
  130. package/dist/handsontable.min.css +7 -7
  131. package/dist/handsontable.min.js +31 -23
  132. package/dist/languages/all.js +47 -40
  133. package/dist/languages/all.min.js +1 -1
  134. package/dist/languages/ar-AR.js +1 -2
  135. package/dist/languages/cs-CZ.js +1 -2
  136. package/dist/languages/de-CH.js +1 -2
  137. package/dist/languages/de-DE.js +1 -2
  138. package/dist/languages/en-US.js +15 -3
  139. package/dist/languages/en-US.min.js +1 -1
  140. package/dist/languages/es-MX.js +1 -2
  141. package/dist/languages/fr-FR.js +1 -2
  142. package/dist/languages/it-IT.js +1 -2
  143. package/dist/languages/ja-JP.js +1 -2
  144. package/dist/languages/ko-KR.js +1 -2
  145. package/dist/languages/lv-LV.js +1 -2
  146. package/dist/languages/nb-NO.js +1 -2
  147. package/dist/languages/nl-NL.js +1 -2
  148. package/dist/languages/pl-PL.js +15 -3
  149. package/dist/languages/pl-PL.min.js +1 -1
  150. package/dist/languages/pt-BR.js +1 -2
  151. package/dist/languages/ru-RU.js +1 -2
  152. package/dist/languages/sr-SP.js +1 -2
  153. package/dist/languages/zh-CN.js +1 -2
  154. package/dist/languages/zh-TW.js +1 -2
  155. package/editorManager.js +17 -91
  156. package/editorManager.mjs +16 -87
  157. package/editors/autocompleteEditor/autocompleteEditor.js +65 -11
  158. package/editors/autocompleteEditor/autocompleteEditor.mjs +65 -10
  159. package/editors/baseEditor/baseEditor.js +19 -13
  160. package/editors/baseEditor/baseEditor.mjs +16 -7
  161. package/editors/checkboxEditor/checkboxEditor.js +1 -2
  162. package/editors/dateEditor/dateEditor.js +27 -9
  163. package/editors/dateEditor/dateEditor.mjs +27 -8
  164. package/editors/dropdownEditor/dropdownEditor.js +1 -2
  165. package/editors/handsontableEditor/handsontableEditor.js +14 -7
  166. package/editors/handsontableEditor/handsontableEditor.mjs +14 -6
  167. package/editors/numericEditor/numericEditor.js +1 -2
  168. package/editors/passwordEditor/passwordEditor.js +1 -2
  169. package/editors/selectEditor/selectEditor.js +1 -2
  170. package/editors/textEditor/textEditor.js +20 -29
  171. package/editors/textEditor/textEditor.mjs +22 -30
  172. package/editors/timeEditor/timeEditor.js +1 -2
  173. package/eventManager.js +1 -2
  174. package/focusManager.d.ts +12 -0
  175. package/focusManager.js +265 -0
  176. package/focusManager.mjs +261 -0
  177. package/helpers/a11y.js +81 -0
  178. package/helpers/a11y.mjs +39 -0
  179. package/helpers/dom/element.js +224 -12
  180. package/helpers/dom/element.mjs +216 -10
  181. package/helpers/dom/event.d.ts +1 -0
  182. package/helpers/dom/event.js +25 -0
  183. package/helpers/dom/event.mjs +24 -0
  184. package/helpers/mixed.js +2 -2
  185. package/helpers/mixed.mjs +2 -2
  186. package/helpers/number.d.ts +1 -0
  187. package/helpers/number.js +18 -0
  188. package/helpers/number.mjs +17 -0
  189. package/helpers/unicode.js +1 -2
  190. package/i18n/constants.js +97 -160
  191. package/i18n/constants.mjs +17 -1
  192. package/i18n/languages/ar-AR.js +3 -4
  193. package/i18n/languages/cs-CZ.js +3 -4
  194. package/i18n/languages/de-CH.js +3 -4
  195. package/i18n/languages/de-DE.js +3 -4
  196. package/i18n/languages/en-US.js +17 -5
  197. package/i18n/languages/en-US.mjs +14 -1
  198. package/i18n/languages/es-MX.js +3 -4
  199. package/i18n/languages/fr-FR.js +3 -4
  200. package/i18n/languages/it-IT.js +3 -4
  201. package/i18n/languages/ja-JP.js +3 -4
  202. package/i18n/languages/ko-KR.js +3 -4
  203. package/i18n/languages/lv-LV.js +3 -4
  204. package/i18n/languages/nb-NO.js +3 -4
  205. package/i18n/languages/nl-NL.js +3 -4
  206. package/i18n/languages/pl-PL.js +17 -5
  207. package/i18n/languages/pl-PL.mjs +14 -1
  208. package/i18n/languages/pt-BR.js +3 -4
  209. package/i18n/languages/ru-RU.js +3 -4
  210. package/i18n/languages/sr-SP.js +3 -4
  211. package/i18n/languages/zh-CN.js +3 -4
  212. package/i18n/languages/zh-TW.js +3 -4
  213. package/i18n/registry.js +4 -6
  214. package/index.js +3 -4
  215. package/languages/all.js +47 -40
  216. package/languages/ar-AR.js +1 -2
  217. package/languages/cs-CZ.js +1 -2
  218. package/languages/de-CH.js +1 -2
  219. package/languages/de-DE.js +1 -2
  220. package/languages/en-US.js +15 -3
  221. package/languages/en-US.mjs +14 -1
  222. package/languages/es-MX.js +1 -2
  223. package/languages/fr-FR.js +1 -2
  224. package/languages/index.js +47 -40
  225. package/languages/it-IT.js +1 -2
  226. package/languages/ja-JP.js +1 -2
  227. package/languages/ko-KR.js +1 -2
  228. package/languages/lv-LV.js +1 -2
  229. package/languages/nb-NO.js +1 -2
  230. package/languages/nl-NL.js +1 -2
  231. package/languages/pl-PL.js +15 -3
  232. package/languages/pl-PL.mjs +14 -1
  233. package/languages/pt-BR.js +1 -2
  234. package/languages/ru-RU.js +1 -2
  235. package/languages/sr-SP.js +1 -2
  236. package/languages/zh-CN.js +1 -2
  237. package/languages/zh-TW.js +1 -2
  238. package/mixins/hooksRefRegisterer.js +1 -2
  239. package/mixins/localHooks.js +1 -2
  240. package/package.json +119 -96
  241. package/pluginHooks.d.ts +42 -7
  242. package/pluginHooks.js +301 -65
  243. package/pluginHooks.mjs +300 -63
  244. package/plugins/autoColumnSize/autoColumnSize.d.ts +2 -0
  245. package/plugins/autoColumnSize/autoColumnSize.js +2 -4
  246. package/plugins/autoRowSize/autoRowSize.d.ts +2 -0
  247. package/plugins/autoRowSize/autoRowSize.js +15 -10
  248. package/plugins/autoRowSize/autoRowSize.mjs +13 -6
  249. package/plugins/autofill/autofill.js +2 -4
  250. package/plugins/autofill/utils.js +1 -2
  251. package/plugins/base/base.js +1 -2
  252. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +2 -4
  253. package/plugins/bindRowsWithHeaders/maps/looseBindsMap.js +1 -2
  254. package/plugins/bindRowsWithHeaders/maps/strictBindsMap.js +1 -2
  255. package/plugins/collapsibleColumns/collapsibleColumns.js +77 -8
  256. package/plugins/collapsibleColumns/collapsibleColumns.mjs +76 -5
  257. package/plugins/columnSorting/columnSorting.js +71 -6
  258. package/plugins/columnSorting/columnSorting.mjs +70 -3
  259. package/plugins/columnSorting/index.js +3 -1
  260. package/plugins/columnSorting/index.mjs +1 -1
  261. package/plugins/columnSorting/sortFunction/checkbox.js +1 -2
  262. package/plugins/columnSorting/sortFunction/date.js +1 -2
  263. package/plugins/columnSorting/sortFunction/default.js +1 -2
  264. package/plugins/columnSorting/sortFunction/numeric.js +1 -2
  265. package/plugins/columnSorting/sortService/engine.js +3 -6
  266. package/plugins/columnSorting/utils.js +3 -6
  267. package/plugins/columnSummary/columnSummary.js +2 -4
  268. package/plugins/columnSummary/endpoints.js +1 -2
  269. package/plugins/comments/commentEditor.js +2 -2
  270. package/plugins/comments/commentEditor.mjs +1 -0
  271. package/plugins/comments/comments.js +254 -197
  272. package/plugins/comments/comments.mjs +251 -190
  273. package/plugins/comments/contextMenuItem/addEditComment.js +41 -0
  274. package/plugins/comments/contextMenuItem/addEditComment.mjs +35 -0
  275. package/plugins/comments/contextMenuItem/readOnlyComment.js +49 -0
  276. package/plugins/comments/contextMenuItem/readOnlyComment.mjs +43 -0
  277. package/plugins/comments/contextMenuItem/removeComment.js +38 -0
  278. package/plugins/comments/contextMenuItem/removeComment.mjs +32 -0
  279. package/plugins/comments/displaySwitch.js +1 -2
  280. package/plugins/contextMenu/commandExecutor.js +2 -3
  281. package/plugins/contextMenu/commandExecutor.mjs +2 -3
  282. package/plugins/contextMenu/contextMenu.d.ts +1 -1
  283. package/plugins/contextMenu/contextMenu.js +77 -40
  284. package/plugins/contextMenu/contextMenu.mjs +74 -35
  285. package/plugins/contextMenu/itemsFactory.js +2 -3
  286. package/plugins/contextMenu/itemsFactory.mjs +3 -4
  287. package/plugins/contextMenu/{cursor.mjs → menu/cursor.js} +6 -4
  288. package/plugins/contextMenu/{cursor.js → menu/cursor.mjs} +4 -10
  289. package/plugins/contextMenu/menu/defaultShortcutsList.js +88 -0
  290. package/plugins/contextMenu/menu/defaultShortcutsList.mjs +84 -0
  291. package/plugins/contextMenu/menu/index.js +9 -0
  292. package/plugins/contextMenu/menu/index.mjs +1 -0
  293. package/plugins/contextMenu/{menu.js → menu/menu.js} +145 -421
  294. package/plugins/contextMenu/{menu.mjs → menu/menu.mjs} +146 -422
  295. package/plugins/contextMenu/menu/menuItemRenderer.js +70 -0
  296. package/plugins/contextMenu/menu/menuItemRenderer.mjs +66 -0
  297. package/plugins/contextMenu/menu/navigator.js +27 -0
  298. package/plugins/contextMenu/menu/navigator.mjs +23 -0
  299. package/plugins/contextMenu/menu/positioner.js +213 -0
  300. package/plugins/contextMenu/menu/positioner.mjs +209 -0
  301. package/plugins/contextMenu/menu/shortcuts.js +114 -0
  302. package/plugins/contextMenu/menu/shortcuts.mjs +110 -0
  303. package/plugins/contextMenu/menu/utils.js +177 -0
  304. package/plugins/contextMenu/menu/utils.mjs +163 -0
  305. package/plugins/contextMenu/predefinedItems/alignment.js +10 -4
  306. package/plugins/contextMenu/predefinedItems/alignment.mjs +7 -0
  307. package/plugins/contextMenu/predefinedItems/clearColumn.js +8 -7
  308. package/plugins/contextMenu/predefinedItems/clearColumn.mjs +5 -3
  309. package/plugins/contextMenu/predefinedItems/columnLeft.js +8 -7
  310. package/plugins/contextMenu/predefinedItems/columnLeft.mjs +5 -3
  311. package/plugins/contextMenu/predefinedItems/columnRight.js +8 -7
  312. package/plugins/contextMenu/predefinedItems/columnRight.mjs +5 -3
  313. package/plugins/contextMenu/predefinedItems/index.js +75 -0
  314. package/plugins/contextMenu/predefinedItems/index.mjs +68 -0
  315. package/plugins/contextMenu/predefinedItems/noItems.js +1 -2
  316. package/plugins/contextMenu/predefinedItems/readOnly.js +10 -4
  317. package/plugins/contextMenu/predefinedItems/readOnly.mjs +7 -0
  318. package/plugins/contextMenu/predefinedItems/redo.js +3 -4
  319. package/plugins/contextMenu/predefinedItems/removeColumn.js +10 -9
  320. package/plugins/contextMenu/predefinedItems/removeColumn.mjs +5 -3
  321. package/plugins/contextMenu/predefinedItems/removeRow.js +10 -9
  322. package/plugins/contextMenu/predefinedItems/removeRow.mjs +5 -3
  323. package/plugins/contextMenu/predefinedItems/rowAbove.js +8 -7
  324. package/plugins/contextMenu/predefinedItems/rowAbove.mjs +5 -3
  325. package/plugins/contextMenu/predefinedItems/rowBelow.js +8 -7
  326. package/plugins/contextMenu/predefinedItems/rowBelow.mjs +5 -3
  327. package/plugins/contextMenu/predefinedItems/separator.js +1 -2
  328. package/plugins/contextMenu/predefinedItems/undo.js +3 -4
  329. package/plugins/contextMenu/utils.js +35 -151
  330. package/plugins/contextMenu/utils.mjs +35 -144
  331. package/plugins/copyPaste/clipboardData/clipboardData.js +516 -0
  332. package/plugins/copyPaste/clipboardData/clipboardData.mjs +512 -0
  333. package/plugins/copyPaste/clipboardData/copyClipboardData.js +69 -0
  334. package/plugins/copyPaste/clipboardData/copyClipboardData.mjs +65 -0
  335. package/plugins/copyPaste/clipboardData/index.js +9 -0
  336. package/plugins/copyPaste/clipboardData/index.mjs +4 -0
  337. package/plugins/copyPaste/clipboardData/pasteClipboardData.js +81 -0
  338. package/plugins/copyPaste/clipboardData/pasteClipboardData.mjs +77 -0
  339. package/plugins/copyPaste/contextMenuItem/copy.js +7 -0
  340. package/plugins/copyPaste/contextMenuItem/copy.mjs +7 -0
  341. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.js +9 -1
  342. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.mjs +9 -1
  343. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.js +9 -1
  344. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.mjs +9 -1
  345. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.js +9 -1
  346. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.mjs +9 -1
  347. package/plugins/copyPaste/contextMenuItem/cut.js +9 -2
  348. package/plugins/copyPaste/contextMenuItem/cut.mjs +7 -0
  349. package/plugins/copyPaste/copyPaste.js +160 -167
  350. package/plugins/copyPaste/copyPaste.mjs +161 -166
  351. package/plugins/customBorders/contextMenuItem/bottom.js +2 -2
  352. package/plugins/customBorders/contextMenuItem/left.js +2 -2
  353. package/plugins/customBorders/contextMenuItem/noBorders.js +2 -2
  354. package/plugins/customBorders/contextMenuItem/right.js +2 -2
  355. package/plugins/customBorders/contextMenuItem/top.js +2 -2
  356. package/plugins/customBorders/customBorders.js +27 -26
  357. package/plugins/customBorders/customBorders.mjs +24 -21
  358. package/plugins/dragToScroll/dragToScroll.js +2 -4
  359. package/plugins/dropdownMenu/dropdownMenu.d.ts +1 -1
  360. package/plugins/dropdownMenu/dropdownMenu.js +130 -44
  361. package/plugins/dropdownMenu/dropdownMenu.mjs +127 -39
  362. package/plugins/exportFile/dataProvider.js +1 -2
  363. package/plugins/exportFile/exportFile.js +4 -6
  364. package/plugins/exportFile/typeFactory.js +5 -8
  365. package/plugins/exportFile/types/_base.js +1 -2
  366. package/plugins/exportFile/types/csv.js +1 -2
  367. package/plugins/filters/component/_base.js +23 -8
  368. package/plugins/filters/component/_base.mjs +23 -8
  369. package/plugins/filters/component/actionBar.js +31 -29
  370. package/plugins/filters/component/actionBar.mjs +26 -23
  371. package/plugins/filters/component/condition.js +48 -61
  372. package/plugins/filters/component/condition.mjs +40 -52
  373. package/plugins/filters/component/operators.js +21 -22
  374. package/plugins/filters/component/operators.mjs +18 -18
  375. package/plugins/filters/component/value.js +37 -28
  376. package/plugins/filters/component/value.mjs +32 -22
  377. package/plugins/filters/condition/beginsWith.js +3 -4
  378. package/plugins/filters/condition/between.js +3 -4
  379. package/plugins/filters/condition/byValue.js +1 -2
  380. package/plugins/filters/condition/contains.js +3 -4
  381. package/plugins/filters/condition/date/after.js +3 -4
  382. package/plugins/filters/condition/date/before.js +3 -4
  383. package/plugins/filters/condition/date/today.js +3 -4
  384. package/plugins/filters/condition/date/tomorrow.js +3 -4
  385. package/plugins/filters/condition/date/yesterday.js +3 -4
  386. package/plugins/filters/condition/empty.js +3 -4
  387. package/plugins/filters/condition/endsWith.js +3 -4
  388. package/plugins/filters/condition/equal.js +3 -4
  389. package/plugins/filters/condition/false.js +1 -2
  390. package/plugins/filters/condition/greaterThan.js +3 -4
  391. package/plugins/filters/condition/greaterThanOrEqual.js +3 -4
  392. package/plugins/filters/condition/lessThan.js +3 -4
  393. package/plugins/filters/condition/lessThanOrEqual.js +3 -4
  394. package/plugins/filters/condition/none.js +3 -4
  395. package/plugins/filters/condition/notBetween.js +3 -4
  396. package/plugins/filters/condition/notContains.js +3 -4
  397. package/plugins/filters/condition/notEmpty.js +3 -4
  398. package/plugins/filters/condition/notEqual.js +3 -4
  399. package/plugins/filters/condition/true.js +1 -2
  400. package/plugins/filters/conditionCollection.d.ts +3 -2
  401. package/plugins/filters/conditionCollection.js +1 -2
  402. package/plugins/filters/conditionRegisterer.js +1 -2
  403. package/plugins/filters/conditionUpdateObserver.js +1 -2
  404. package/plugins/filters/constants.js +4 -8
  405. package/plugins/filters/constants.mjs +1 -1
  406. package/plugins/filters/dataFilter.js +1 -2
  407. package/plugins/filters/filters.d.ts +3 -5
  408. package/plugins/filters/filters.js +108 -66
  409. package/plugins/filters/filters.mjs +99 -55
  410. package/plugins/filters/logicalOperationRegisterer.js +1 -2
  411. package/plugins/filters/logicalOperations/conjunction.js +4 -6
  412. package/plugins/filters/logicalOperations/disjunction.js +4 -6
  413. package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.js +4 -6
  414. package/plugins/filters/menu/focusController.js +123 -0
  415. package/plugins/filters/menu/focusController.mjs +119 -0
  416. package/plugins/filters/menu/focusNavigator.js +30 -0
  417. package/plugins/filters/menu/focusNavigator.mjs +26 -0
  418. package/plugins/filters/ui/_base.js +37 -15
  419. package/plugins/filters/ui/_base.mjs +35 -13
  420. package/plugins/filters/ui/input.js +43 -35
  421. package/plugins/filters/ui/input.mjs +42 -33
  422. package/plugins/filters/ui/link.js +44 -12
  423. package/plugins/filters/ui/link.mjs +44 -11
  424. package/plugins/filters/ui/multipleSelect.js +237 -133
  425. package/plugins/filters/ui/multipleSelect.mjs +232 -127
  426. package/plugins/filters/ui/radioInput.js +42 -18
  427. package/plugins/filters/ui/radioInput.mjs +42 -17
  428. package/plugins/filters/ui/select.js +152 -77
  429. package/plugins/filters/ui/select.mjs +148 -72
  430. package/plugins/formulas/engine/settings.js +2 -4
  431. package/plugins/formulas/formulas.js +3 -6
  432. package/plugins/formulas/indexSyncer/axisSyncer.js +1 -2
  433. package/plugins/formulas/indexSyncer/index.js +1 -2
  434. package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +2 -2
  435. package/plugins/hiddenColumns/contextMenuItem/showColumn.js +2 -2
  436. package/plugins/hiddenColumns/hiddenColumns.d.ts +1 -0
  437. package/plugins/hiddenColumns/hiddenColumns.js +49 -6
  438. package/plugins/hiddenColumns/hiddenColumns.mjs +48 -3
  439. package/plugins/hiddenRows/contextMenuItem/hideRow.js +2 -2
  440. package/plugins/hiddenRows/contextMenuItem/showRow.js +2 -2
  441. package/plugins/hiddenRows/hiddenRows.d.ts +1 -0
  442. package/plugins/hiddenRows/hiddenRows.js +49 -6
  443. package/plugins/hiddenRows/hiddenRows.mjs +48 -3
  444. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +2 -2
  445. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +2 -2
  446. package/plugins/manualColumnFreeze/manualColumnFreeze.js +2 -4
  447. package/plugins/manualColumnMove/manualColumnMove.js +9 -17
  448. package/plugins/manualColumnMove/manualColumnMove.mjs +7 -13
  449. package/plugins/manualColumnMove/ui/_base.js +1 -2
  450. package/plugins/manualColumnMove/ui/backlight.js +1 -2
  451. package/plugins/manualColumnMove/ui/guideline.js +1 -2
  452. package/plugins/manualColumnResize/manualColumnResize.js +2 -4
  453. package/plugins/manualRowMove/manualRowMove.js +6 -23
  454. package/plugins/manualRowMove/manualRowMove.mjs +4 -19
  455. package/plugins/manualRowMove/ui/_base.js +1 -2
  456. package/plugins/manualRowMove/ui/backlight.js +1 -2
  457. package/plugins/manualRowMove/ui/guideline.js +1 -2
  458. package/plugins/manualRowResize/manualRowResize.js +2 -4
  459. package/plugins/mergeCells/calculations/autofill.js +1 -2
  460. package/plugins/mergeCells/calculations/selection.js +1 -2
  461. package/plugins/mergeCells/cellCoords.js +1 -2
  462. package/plugins/mergeCells/cellsCollection.js +1 -2
  463. package/plugins/mergeCells/contextMenuItem/toggleMerge.js +2 -2
  464. package/plugins/mergeCells/mergeCells.js +7 -20
  465. package/plugins/mergeCells/mergeCells.mjs +5 -16
  466. package/plugins/multiColumnSorting/multiColumnSorting.js +60 -6
  467. package/plugins/multiColumnSorting/multiColumnSorting.mjs +59 -3
  468. package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +2 -4
  469. package/plugins/nestedHeaders/nestedHeaders.js +263 -36
  470. package/plugins/nestedHeaders/nestedHeaders.mjs +262 -33
  471. package/plugins/nestedHeaders/stateManager/index.js +102 -3
  472. package/plugins/nestedHeaders/stateManager/index.mjs +102 -3
  473. package/plugins/nestedHeaders/stateManager/sourceSettings.js +1 -2
  474. package/plugins/nestedHeaders/utils/ghostTable.js +1 -2
  475. package/plugins/nestedRows/data/dataManager.js +1 -2
  476. package/plugins/nestedRows/nestedRows.js +47 -10
  477. package/plugins/nestedRows/nestedRows.mjs +45 -6
  478. package/plugins/nestedRows/ui/_base.js +1 -2
  479. package/plugins/nestedRows/ui/collapsing.js +1 -2
  480. package/plugins/nestedRows/ui/contextMenu.js +3 -4
  481. package/plugins/nestedRows/ui/headers.js +13 -3
  482. package/plugins/nestedRows/ui/headers.mjs +13 -2
  483. package/plugins/persistentState/persistentState.js +2 -4
  484. package/plugins/persistentState/storage.js +1 -2
  485. package/plugins/search/search.js +2 -4
  486. package/plugins/touchScroll/touchScroll.js +2 -4
  487. package/plugins/trimRows/trimRows.js +2 -4
  488. package/plugins/undoRedo/index.js +2 -2
  489. package/plugins/undoRedo/undoRedo.js +2 -4
  490. package/renderers/autocompleteRenderer/autocompleteRenderer.js +9 -2
  491. package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +8 -0
  492. package/renderers/baseRenderer/baseRenderer.js +18 -2
  493. package/renderers/baseRenderer/baseRenderer.mjs +18 -1
  494. package/renderers/checkboxRenderer/checkboxRenderer.js +10 -6
  495. package/renderers/checkboxRenderer/checkboxRenderer.mjs +9 -4
  496. package/renderers/dateRenderer/dateRenderer.d.ts +5 -0
  497. package/renderers/dateRenderer/dateRenderer.js +28 -0
  498. package/renderers/dateRenderer/dateRenderer.mjs +24 -0
  499. package/renderers/dateRenderer/index.d.ts +1 -0
  500. package/renderers/dateRenderer/index.js +6 -0
  501. package/renderers/dateRenderer/index.mjs +1 -0
  502. package/renderers/handsontableRenderer/handsontableRenderer.d.ts +5 -0
  503. package/renderers/handsontableRenderer/handsontableRenderer.js +28 -0
  504. package/renderers/handsontableRenderer/handsontableRenderer.mjs +24 -0
  505. package/renderers/handsontableRenderer/index.d.ts +1 -0
  506. package/renderers/handsontableRenderer/index.js +6 -0
  507. package/renderers/handsontableRenderer/index.mjs +1 -0
  508. package/renderers/htmlRenderer/htmlRenderer.js +1 -2
  509. package/renderers/index.d.ts +9 -0
  510. package/renderers/numericRenderer/numericRenderer.js +1 -2
  511. package/renderers/passwordRenderer/passwordRenderer.js +1 -2
  512. package/renderers/selectRenderer/index.d.ts +1 -0
  513. package/renderers/selectRenderer/index.js +6 -0
  514. package/renderers/selectRenderer/index.mjs +1 -0
  515. package/renderers/selectRenderer/selectRenderer.d.ts +5 -0
  516. package/renderers/selectRenderer/selectRenderer.js +26 -0
  517. package/renderers/selectRenderer/selectRenderer.mjs +22 -0
  518. package/renderers/textRenderer/textRenderer.js +1 -2
  519. package/renderers/timeRenderer/timeRenderer.js +1 -2
  520. package/selection/highlight/highlight.js +257 -73
  521. package/selection/highlight/highlight.mjs +250 -71
  522. package/selection/highlight/types/activeHeader.js +10 -8
  523. package/selection/highlight/types/activeHeader.mjs +10 -8
  524. package/selection/highlight/types/area.js +6 -18
  525. package/selection/highlight/types/area.mjs +6 -18
  526. package/selection/highlight/types/areaLayered.js +31 -0
  527. package/selection/highlight/types/areaLayered.mjs +26 -0
  528. package/selection/highlight/types/column.js +27 -0
  529. package/selection/highlight/types/column.mjs +22 -0
  530. package/selection/highlight/types/customSelection.js +7 -9
  531. package/selection/highlight/types/customSelection.mjs +7 -9
  532. package/selection/highlight/types/fill.js +5 -7
  533. package/selection/highlight/types/fill.mjs +5 -7
  534. package/selection/highlight/types/{cell.js → focus.js} +5 -7
  535. package/selection/highlight/types/{cell.mjs → focus.mjs} +5 -7
  536. package/selection/highlight/types/header.js +9 -18
  537. package/selection/highlight/types/header.mjs +9 -18
  538. package/selection/highlight/types/row.js +27 -0
  539. package/selection/highlight/types/row.mjs +22 -0
  540. package/selection/highlight/visualSelection.js +32 -29
  541. package/selection/highlight/visualSelection.mjs +31 -27
  542. package/selection/index.js +4 -7
  543. package/selection/index.mjs +2 -3
  544. package/selection/mouseEventHandler.js +7 -1
  545. package/selection/mouseEventHandler.mjs +7 -1
  546. package/selection/range.js +9 -10
  547. package/selection/range.mjs +8 -8
  548. package/selection/selection.js +334 -154
  549. package/selection/selection.mjs +330 -151
  550. package/selection/transformation.js +233 -94
  551. package/selection/transformation.mjs +232 -92
  552. package/selection/utils.js +20 -31
  553. package/selection/utils.mjs +16 -21
  554. package/settings.d.ts +4 -0
  555. package/shortcutContexts/commands/editor/closeAndSave.js +11 -0
  556. package/shortcutContexts/commands/editor/closeAndSave.mjs +8 -0
  557. package/shortcutContexts/commands/editor/closeWithoutSaving.js +11 -0
  558. package/shortcutContexts/commands/editor/closeWithoutSaving.mjs +8 -0
  559. package/shortcutContexts/commands/editor/fastOpen.js +15 -0
  560. package/shortcutContexts/commands/editor/fastOpen.mjs +12 -0
  561. package/shortcutContexts/commands/editor/index.js +16 -0
  562. package/shortcutContexts/commands/editor/index.mjs +12 -0
  563. package/shortcutContexts/commands/editor/open.js +26 -0
  564. package/shortcutContexts/commands/editor/open.mjs +23 -0
  565. package/shortcutContexts/commands/emptySelectedCells.js +10 -0
  566. package/shortcutContexts/commands/emptySelectedCells.mjs +7 -0
  567. package/shortcutContexts/commands/extendCellsSelection/down.js +14 -0
  568. package/shortcutContexts/commands/extendCellsSelection/down.mjs +11 -0
  569. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +24 -0
  570. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +21 -0
  571. package/shortcutContexts/commands/extendCellsSelection/index.js +26 -0
  572. package/shortcutContexts/commands/extendCellsSelection/index.mjs +22 -0
  573. package/shortcutContexts/commands/extendCellsSelection/left.js +14 -0
  574. package/shortcutContexts/commands/extendCellsSelection/left.mjs +11 -0
  575. package/shortcutContexts/commands/extendCellsSelection/right.js +14 -0
  576. package/shortcutContexts/commands/extendCellsSelection/right.mjs +11 -0
  577. package/shortcutContexts/commands/extendCellsSelection/toColumns.js +18 -0
  578. package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +15 -0
  579. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +28 -0
  580. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +25 -0
  581. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +18 -0
  582. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +15 -0
  583. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +18 -0
  584. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +15 -0
  585. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +28 -0
  586. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +25 -0
  587. package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +28 -0
  588. package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +25 -0
  589. package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +28 -0
  590. package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +25 -0
  591. package/shortcutContexts/commands/extendCellsSelection/toRows.js +18 -0
  592. package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +15 -0
  593. package/shortcutContexts/commands/extendCellsSelection/up.js +14 -0
  594. package/shortcutContexts/commands/extendCellsSelection/up.mjs +11 -0
  595. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +24 -0
  596. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +21 -0
  597. package/shortcutContexts/commands/index.js +35 -0
  598. package/shortcutContexts/commands/index.mjs +31 -0
  599. package/shortcutContexts/commands/moveCellSelection/down.js +12 -0
  600. package/shortcutContexts/commands/moveCellSelection/down.mjs +9 -0
  601. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.js +32 -0
  602. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs +29 -0
  603. package/shortcutContexts/commands/moveCellSelection/index.js +28 -0
  604. package/shortcutContexts/commands/moveCellSelection/index.mjs +24 -0
  605. package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +11 -0
  606. package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +8 -0
  607. package/shortcutContexts/commands/moveCellSelection/inlineStart.js +11 -0
  608. package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +8 -0
  609. package/shortcutContexts/commands/moveCellSelection/left.js +9 -0
  610. package/shortcutContexts/commands/moveCellSelection/left.mjs +6 -0
  611. package/shortcutContexts/commands/moveCellSelection/right.js +9 -0
  612. package/shortcutContexts/commands/moveCellSelection/right.mjs +6 -0
  613. package/shortcutContexts/commands/moveCellSelection/toMostBottom.js +16 -0
  614. package/shortcutContexts/commands/moveCellSelection/toMostBottom.mjs +13 -0
  615. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.js +17 -0
  616. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.mjs +14 -0
  617. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.js +13 -0
  618. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.mjs +10 -0
  619. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.js +16 -0
  620. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.mjs +13 -0
  621. package/shortcutContexts/commands/moveCellSelection/toMostLeft.js +18 -0
  622. package/shortcutContexts/commands/moveCellSelection/toMostLeft.mjs +15 -0
  623. package/shortcutContexts/commands/moveCellSelection/toMostRight.js +20 -0
  624. package/shortcutContexts/commands/moveCellSelection/toMostRight.mjs +17 -0
  625. package/shortcutContexts/commands/moveCellSelection/toMostTop.js +16 -0
  626. package/shortcutContexts/commands/moveCellSelection/toMostTop.mjs +13 -0
  627. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.js +18 -0
  628. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.mjs +15 -0
  629. package/shortcutContexts/commands/moveCellSelection/up.js +12 -0
  630. package/shortcutContexts/commands/moveCellSelection/up.mjs +9 -0
  631. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.js +32 -0
  632. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs +29 -0
  633. package/shortcutContexts/commands/populateSelectedCellsData.js +28 -0
  634. package/shortcutContexts/commands/populateSelectedCellsData.mjs +25 -0
  635. package/shortcutContexts/commands/scrollToFocusedCell.js +34 -0
  636. package/shortcutContexts/commands/scrollToFocusedCell.mjs +31 -0
  637. package/shortcutContexts/commands/selectAll.js +11 -0
  638. package/shortcutContexts/commands/selectAll.mjs +8 -0
  639. package/shortcutContexts/constants.js +11 -0
  640. package/shortcutContexts/constants.mjs +8 -0
  641. package/shortcutContexts/editor.js +25 -0
  642. package/shortcutContexts/editor.mjs +21 -0
  643. package/shortcutContexts/grid.js +167 -0
  644. package/shortcutContexts/grid.mjs +163 -0
  645. package/shortcutContexts/index.js +24 -0
  646. package/shortcutContexts/index.mjs +11 -0
  647. package/shortcuts/context.d.ts +1 -0
  648. package/shortcuts/context.js +23 -4
  649. package/shortcuts/context.mjs +23 -5
  650. package/shortcuts/manager.js +31 -7
  651. package/shortcuts/manager.mjs +32 -7
  652. package/shortcuts/recorder.js +30 -14
  653. package/shortcuts/recorder.mjs +30 -14
  654. package/shortcuts/utils.js +19 -5
  655. package/shortcuts/utils.mjs +18 -4
  656. package/tableView.js +113 -16
  657. package/tableView.mjs +113 -15
  658. package/utils/dataStructures/linkedList.js +1 -2
  659. package/utils/dataStructures/priorityMap.js +2 -4
  660. package/utils/dataStructures/queue.js +1 -2
  661. package/utils/dataStructures/stack.js +1 -2
  662. package/utils/dataStructures/tree.js +3 -6
  663. package/utils/ghostTable.js +32 -17
  664. package/utils/ghostTable.mjs +31 -15
  665. package/utils/interval.js +1 -2
  666. package/utils/paginator.js +151 -0
  667. package/utils/paginator.mjs +147 -0
  668. package/utils/parseTable.js +527 -83
  669. package/utils/parseTable.mjs +523 -82
  670. package/utils/rootInstance.js +2 -4
  671. package/utils/samplesGenerator.js +21 -13
  672. package/utils/samplesGenerator.mjs +20 -11
  673. package/utils/staticRegister.js +1 -2
  674. package/validators/autocompleteValidator/autocompleteValidator.js +1 -2
  675. package/validators/dateValidator/dateValidator.js +1 -2
  676. package/validators/numericValidator/numericValidator.js +1 -2
  677. package/validators/timeValidator/timeValidator.js +1 -2
  678. package/3rdparty/walkontable/src/selection.js +0 -295
  679. package/3rdparty/walkontable/src/selection.mjs +0 -290
  680. package/plugins/contextMenu/predefinedItems.js +0 -76
  681. package/plugins/contextMenu/predefinedItems.mjs +0 -68
  682. package/plugins/copyPaste/clipboardData.js +0 -18
  683. package/plugins/copyPaste/clipboardData.mjs +0 -14
  684. package/plugins/copyPaste/focusableElement.js +0 -186
  685. package/plugins/copyPaste/focusableElement.mjs +0 -180
  686. package/plugins/copyPaste/pasteEvent.js +0 -14
  687. package/plugins/copyPaste/pasteEvent.mjs +0 -9
  688. package/selection/highlight/constants.js +0 -15
  689. package/selection/highlight/constants.mjs +0 -6
  690. package/selection/highlight/types/index.js +0 -35
  691. package/selection/highlight/types/index.mjs +0 -31
package/pluginHooks.js CHANGED
@@ -542,6 +542,34 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
542
542
  * @param {'init'|'remove'|'insert'|'move'|'update'} [source] A string that indicates what caused the change to the order of rows.
543
543
  */
544
544
  'afterRowSequenceChange',
545
+ /**
546
+ * Fired before the vertical viewport scroll. Triggered by the [`scrollViewportTo()`](@/api/core.md#scrollviewportto)
547
+ * method or table internals.
548
+ *
549
+ * @since 14.0.0
550
+ * @event Hooks#beforeViewportScrollVertically
551
+ * @param {number} visualRow Visual row index.
552
+ * @returns {number} Returns modified row index (or the same as passed in the method argument) to which the viewport will be scrolled.
553
+ */
554
+ 'beforeViewportScrollVertically',
555
+ /**
556
+ * Fired before the horizontal viewport scroll. Triggered by the [`scrollViewportTo()`](@/api/core.md#scrollviewportto)
557
+ * method or table internals.
558
+ *
559
+ * @since 14.0.0
560
+ * @event Hooks#beforeViewportScrollHorizontally
561
+ * @param {number} visualColumn Visual column index.
562
+ * @returns {number} Returns modified column index (or the same as passed in the method argument) to which the viewport will be scrolled.
563
+ */
564
+ 'beforeViewportScrollHorizontally',
565
+ /**
566
+ * Fired before the vertical or horizontal viewport scroll. Triggered by the [`scrollViewportTo()`](@/api/core.md#scrollviewportto)
567
+ * method or table internals.
568
+ *
569
+ * @since 14.0.0
570
+ * @event Hooks#beforeViewportScroll
571
+ */
572
+ 'beforeViewportScroll',
545
573
  /**
546
574
  * Fired after the horizontal scroll event.
547
575
  *
@@ -554,6 +582,13 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
554
582
  * @event Hooks#afterScrollVertically
555
583
  */
556
584
  'afterScrollVertically',
585
+ /**
586
+ * Fired after the vertical or horizontal scroll event.
587
+ *
588
+ * @since 14.0.0
589
+ * @event Hooks#afterScroll
590
+ */
591
+ 'afterScroll',
557
592
  /**
558
593
  * Fired after one or more cells are selected (e.g. During mouse move).
559
594
  *
@@ -657,6 +692,94 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
657
692
  * @param {number} selectionLayerLevel The number which indicates what selection layer is currently modified.
658
693
  */
659
694
  'afterSelectionEndByProp',
695
+ /**
696
+ * Fired before one or more columns are selected (e.g. During mouse header click or {@link Core#selectColumns} API call).
697
+ *
698
+ * @since 14.0.0
699
+ * @event Hooks#beforeSelectColumns
700
+ * @param {CellCoords} from Selection start coords object.
701
+ * @param {CellCoords} to Selection end coords object.
702
+ * @param {CellCoords} highlight Selection cell focus coords object.
703
+ * @example
704
+ * ::: only-for javascript
705
+ * ```js
706
+ * new Handsontable(element, {
707
+ * beforeSelectColumns: (from, to, highlight) => {
708
+ * // Extend the column selection by one column left and one column right.
709
+ * from.col = Math.max(from.col - 1, 0);
710
+ * to.col = Math.min(to.col + 1, this.countCols() - 1);
711
+ * }
712
+ * })
713
+ * ```
714
+ * :::
715
+ *
716
+ * ::: only-for react
717
+ * ```jsx
718
+ * <HotTable
719
+ * beforeSelectColumns={(from, to, highlight) => {
720
+ * // Extend the column selection by one column left and one column right.
721
+ * from.col = Math.max(from.col - 1, 0);
722
+ * to.col = Math.min(to.col + 1, this.countCols() - 1);
723
+ * }}
724
+ * />
725
+ * ```
726
+ * :::
727
+ */
728
+ 'beforeSelectColumns',
729
+ /**
730
+ * Fired after one or more columns are selected (e.g. During mouse header click or {@link Core#selectColumns} API call).
731
+ *
732
+ * @since 14.0.0
733
+ * @event Hooks#afterSelectColumns
734
+ * @param {CellCoords} from Selection start coords object.
735
+ * @param {CellCoords} to Selection end coords object.
736
+ * @param {CellCoords} highlight Selection cell focus coords object.
737
+ */
738
+ 'afterSelectColumns',
739
+ /**
740
+ * Fired before one or more rows are selected (e.g. During mouse header click or {@link Core#selectRows} API call).
741
+ *
742
+ * @since 14.0.0
743
+ * @event Hooks#beforeSelectRows
744
+ * @param {CellCoords} from Selection start coords object.
745
+ * @param {CellCoords} to Selection end coords object.
746
+ * @param {CellCoords} highlight Selection cell focus coords object.
747
+ * @example
748
+ * ::: only-for javascript
749
+ * ```js
750
+ * new Handsontable(element, {
751
+ * beforeSelectRows: (from, to, highlight) => {
752
+ * // Extend the row selection by one row up and one row bottom more.
753
+ * from.row = Math.max(from.row - 1, 0);
754
+ * to.row = Math.min(to.row + 1, this.countRows() - 1);
755
+ * }
756
+ * })
757
+ * ```
758
+ * :::
759
+ *
760
+ * ::: only-for react
761
+ * ```jsx
762
+ * <HotTable
763
+ * beforeSelectRows={(from, to, highlight) => {
764
+ * // Extend the row selection by one row up and one row bottom more.
765
+ * from.row = Math.max(from.row - 1, 0);
766
+ * to.row = Math.min(to.row + 1, this.countRows() - 1);
767
+ * }}
768
+ * />
769
+ * ```
770
+ * :::
771
+ */
772
+ 'beforeSelectRows',
773
+ /**
774
+ * Fired after one or more rows are selected (e.g. During mouse header click or {@link Core#selectRows} API call).
775
+ *
776
+ * @since 14.0.0
777
+ * @event Hooks#afterSelectRows
778
+ * @param {CellCoords} from Selection start coords object.
779
+ * @param {CellCoords} to Selection end coords object.
780
+ * @param {CellCoords} highlight Selection cell focus coords object.
781
+ */
782
+ 'afterSelectRows',
660
783
  /**
661
784
  * Fired after cell meta is changed.
662
785
  *
@@ -1079,6 +1202,38 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
1079
1202
  * If set to `false`, the rendering gets triggered by scrolling or moving the selection.
1080
1203
  */
1081
1204
  'afterRender',
1205
+ /**
1206
+ * When the focus position is moved to the next or previous row caused by the {@link Options#autoWrapRow} option
1207
+ * the hook is triggered.
1208
+ *
1209
+ * @since 14.0.0
1210
+ * @event Hooks#beforeRowWrap
1211
+ * @param {boolean} isWrapEnabled Tells whether the row wrapping is going to happen.
1212
+ * There may be situations where the option does not work even though it is enabled.
1213
+ * This is due to the priority of other options that may block the feature.
1214
+ * For example, when the {@link Options#minSpareCols} is defined, the {@link Options#autoWrapRow} option is not checked.
1215
+ * Thus, row wrapping is off.
1216
+ * @param {CellCoords} newCoords The new focus position.
1217
+ * @param {boolean} isFlipped `true` if the row index was flipped, `false` otherwise.
1218
+ * Flipped index means that the user reached the last row and the focus is moved to the first row or vice versa.
1219
+ */
1220
+ 'beforeRowWrap',
1221
+ /**
1222
+ * When the focus position is moved to the next or previous column caused by the {@link Options#autoWrapCol} option
1223
+ * the hook is triggered.
1224
+ *
1225
+ * @since 14.0.0
1226
+ * @event Hooks#beforeColumnWrap
1227
+ * @param {boolean} isWrapEnabled Tells whether the column wrapping is going to happen.
1228
+ * There may be situations where the option does not work even though it is enabled.
1229
+ * This is due to the priority of other options that may block the feature.
1230
+ * For example, when the {@link Options#minSpareRows} is defined, the {@link Options#autoWrapCol} option is not checked.
1231
+ * Thus, column wrapping is off.
1232
+ * @param {CellCoords} newCoords The new focus position.
1233
+ * @param {boolean} isFlipped `true` if the column index was flipped, `false` otherwise.
1234
+ * Flipped index means that the user reached the last column and the focus is moved to the first column or vice versa.
1235
+ */
1236
+ 'beforeColumnWrap',
1082
1237
  /**
1083
1238
  * Fired before cell meta is changed.
1084
1239
  *
@@ -1112,6 +1267,13 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
1112
1267
  * @param {CellCoords} coords CellCoords instance.
1113
1268
  */
1114
1269
  'beforeSetRangeEnd',
1270
+ /**
1271
+ * Fired before applying selection coordinates to the renderable coordinates for Walkontable (rendering engine).
1272
+ *
1273
+ * @since 14.0.0
1274
+ * @event Hooks#beforeSelectionHighlightSet
1275
+ */
1276
+ 'beforeSelectionHighlightSet',
1115
1277
  /**
1116
1278
  * Fired before the logic of handling a touch scroll, when user started scrolling on a touch-enabled device.
1117
1279
  *
@@ -1168,6 +1330,17 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
1168
1330
  * @param {number} column Visual column index.
1169
1331
  */
1170
1332
  'modifyColWidth',
1333
+ /**
1334
+ * Fired when focusing a cell or a header element. Allows replacing the element to be focused by returning a
1335
+ * different HTML element.
1336
+ *
1337
+ * @since 14.0.0
1338
+ * @event Hooks#modifyFocusedElement
1339
+ * @param {number} row Row index.
1340
+ * @param {number} column Column index.
1341
+ * @param {HTMLElement|undefined} focusedElement The element to be focused.
1342
+ */
1343
+ 'modifyFocusedElement',
1171
1344
  /**
1172
1345
  * Fired when a row header index is about to be modified by a callback function.
1173
1346
  *
@@ -1225,6 +1398,16 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
1225
1398
  * @returns {undefined|number[]}
1226
1399
  */
1227
1400
  'modifyGetCellCoords',
1401
+ /**
1402
+ * Used to modify the cell coordinates when the table is activated (going into the listen mode).
1403
+ *
1404
+ * @event Hooks#modifyFocusOnTabNavigation
1405
+ * @since 14.0.0
1406
+ * @param {'from_above' | 'from_below'} tabActivationDir The browsers Tab navigation direction. Depending on
1407
+ * whether the user activated the table from the element above or below, another cell can be selected.
1408
+ * @param {CellCoords} visualCoords The coords that will be used to select a cell.
1409
+ */
1410
+ 'modifyFocusOnTabNavigation',
1228
1411
  /**
1229
1412
  * Allows modify the visual row index that is used to retrieve the row header element (TH) before it's
1230
1413
  * highlighted (proper CSS class names are added). Modifying the visual row index allows building a custom
@@ -1322,26 +1505,35 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
1322
1505
  * Fired by {@link CopyPaste} plugin before copying the values to the clipboard and before clearing values of
1323
1506
  * the selected cells. This hook is fired when {@link Options#copyPaste} option is enabled.
1324
1507
  *
1508
+ * Note: Please keep in mind since @14.0.0 the method arguments has been changed.
1509
+ *
1325
1510
  * @event Hooks#beforeCut
1326
- * @param {Array[]} data An array of arrays which contains data to cut.
1327
- * @param {object[]} coords An array of objects with ranges of the visual indexes (`startRow`, `startCol`, `endRow`, `endCol`)
1328
- * which will be cut out.
1511
+ * @param {object} clipboardData Information about cut action which is going to happen.
1512
+ * @param {Function} clipboardData.removeRow Remove row from the copied dataset.
1513
+ * @param {Function} clipboardData.removeColumn Remove column from the copied dataset.
1514
+ * @param {Function} clipboardData.insertAtRow Insert values at row index.
1515
+ * @param {Function} clipboardData.insertAtColumn Insert values at column index.
1516
+ * @param {Function} clipboardData.setCellAt Change headers or cells in the copied dataset.
1517
+ * @param {Function} clipboardData.getCellAt Get headers or cells from the copied dataset.
1518
+ * @param {Function} clipboardData.getData Gets copied data stored as array of arrays.
1519
+ * @param {Function} clipboardData.getMetaInfo Gets meta information for the copied data.
1520
+ * @param {Function} clipboardData.getRanges Returns ranges related to copied part of Handsontable.
1329
1521
  * @returns {*} If returns `false` then operation of the cutting out is canceled.
1330
1522
  * @example
1331
1523
  * ::: only-for javascript
1332
1524
  * ```js
1333
- * // To disregard a single row, remove it from the array using data.splice(i, 1).
1525
+ * // To disregard a single row or column, remove it from copied dataset using `removeRows`/`removeColumns` method on the object from the first callback argument.
1334
1526
  * new Handsontable(element, {
1335
- * beforeCut: function(data, coords) {
1336
- * // data -> [[1, 2, 3], [4, 5, 6]]
1337
- * data.splice(0, 1);
1338
- * // data -> [[4, 5, 6]]
1339
- * // coords -> [{startRow: 0, startCol: 0, endRow: 1, endCol: 2}]
1527
+ * beforeCut: function(clipboardData) {
1528
+ * // clipboardData.getData() -> [[1, 2, 3], [4, 5, 6]]
1529
+ * clipboardData.removeRows([0]);
1530
+ * clipboardData.removeColumns([0]);
1531
+ * // clipboardData.getData() -> [[5, 6]]
1340
1532
  * }
1341
1533
  * });
1342
1534
  * // To cancel a cutting action, just return `false`.
1343
1535
  * new Handsontable(element, {
1344
- * beforeCut: function(data, coords) {
1536
+ * beforeCut: function(clipboardData) {
1345
1537
  * return false;
1346
1538
  * }
1347
1539
  * });
@@ -1350,18 +1542,18 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
1350
1542
  *
1351
1543
  * ::: only-for react
1352
1544
  * ```jsx
1353
- * // To disregard a single row, remove it from the array using data.splice(i, 1).
1545
+ * // To disregard a single row or column, remove it from copied dataset using `removeRows`/`removeColumns` method on the object from the first callback argument.
1354
1546
  * <HotTable
1355
- * beforeCut={(data, coords) => {
1356
- * // data -> [[1, 2, 3], [4, 5, 6]]
1357
- * data.splice(0, 1);
1358
- * // data -> [[4, 5, 6]]
1359
- * // coords -> [{startRow: 0, startCol: 0, endRow: 1, endCol: 2}]
1547
+ * beforeCut={(clipboardData) => {
1548
+ * // clipboardData.getData() -> [[1, 2, 3], [4, 5, 6]]
1549
+ * clipboardData.removeRows([0]);
1550
+ * clipboardData.removeColumns([0]);
1551
+ * // clipboardData.getData() -> [[5, 6]]
1360
1552
  * }}
1361
1553
  * />
1362
1554
  * // To cancel a cutting action, just return `false`.
1363
1555
  * <HotTable
1364
- * beforeCut={(data, coords) => {
1556
+ * beforeCut={(clipboardData) => {
1365
1557
  * return false;
1366
1558
  * }}
1367
1559
  * />
@@ -1373,33 +1565,50 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
1373
1565
  * Fired by {@link CopyPaste} plugin after data was cut out from the table. This hook is fired when
1374
1566
  * {@link Options#copyPaste} option is enabled.
1375
1567
  *
1568
+ * Note: Please keep in mind since @14.0.0 the method arguments has been changed.
1569
+ *
1376
1570
  * @event Hooks#afterCut
1377
- * @param {Array[]} data An array of arrays with the cut data.
1378
- * @param {object[]} coords An array of objects with ranges of the visual indexes (`startRow`, `startCol`, `endRow`, `endCol`)
1379
- * which was cut out.
1571
+ * @param {object} clipboardData Information about already performed cut action.
1572
+ * @param {Function} clipboardData.removeRow Remove row from the copied dataset.
1573
+ * @param {Function} clipboardData.removeColumn Remove column from the copied dataset.
1574
+ * @param {Function} clipboardData.insertAtRow Insert values at row index.
1575
+ * @param {Function} clipboardData.insertAtColumn Insert values at column index.
1576
+ * @param {Function} clipboardData.setCellAt Change headers or cells in the copied dataset.
1577
+ * @param {Function} clipboardData.getCellAt Get headers or cells from the copied dataset.
1578
+ * @param {Function} clipboardData.getData Gets copied data stored as array of arrays.
1579
+ * @param {Function} clipboardData.getMetaInfo Gets meta information for the copied data.
1580
+ * @param {Function} clipboardData.getRanges Returns ranges related to copied part of Handsontable.
1380
1581
  */
1381
1582
  'afterCut',
1382
1583
  /**
1383
1584
  * Fired before values are copied to the clipboard.
1384
1585
  *
1586
+ * Note: Please keep in mind since @14.0.0 the method arguments has been changed.
1587
+ *
1385
1588
  * @event Hooks#beforeCopy
1386
- * @param {Array[]} data An array of arrays which contains data to copied.
1387
- * @param {object[]} coords An array of objects with ranges of the visual indexes (`startRow`, `startCol`, `endRow`, `endCol`)
1388
- * which will copied.
1389
- * @param {{ columnHeadersCount: number }} copiedHeadersCount (Since 12.3.0) The number of copied column headers.
1589
+ * @param {object} clipboardData Information about copy action which is going to happen.
1590
+ * @param {Function} clipboardData.removeRow Remove row from the copied dataset.
1591
+ * @param {Function} clipboardData.removeColumn Remove column from the copied dataset.
1592
+ * @param {Function} clipboardData.insertAtRow Insert values at row index.
1593
+ * @param {Function} clipboardData.insertAtColumn Insert values at column index.
1594
+ * @param {Function} clipboardData.setCellAt Change headers or cells in the copied dataset.
1595
+ * @param {Function} clipboardData.getCellAt Get headers or cells from the copied dataset.
1596
+ * @param {Function} clipboardData.getData Gets copied data stored as array of arrays.
1597
+ * @param {Function} clipboardData.getMetaInfo Gets meta information for the copied data.
1598
+ * @param {Function} clipboardData.getRanges Returns ranges related to copied part of Handsontable.
1390
1599
  * @returns {*} If returns `false` then copying is canceled.
1391
1600
  *
1392
1601
  * @example
1393
1602
  * ::: only-for javascript
1394
1603
  * ```js
1395
- * // To disregard a single row, remove it from array using data.splice(i, 1).
1604
+ * // To disregard a single row or column, remove it from copied dataset using `removeRows`/`removeColumns` method on the object from the first callback argument.
1396
1605
  * ...
1397
1606
  * new Handsontable(document.getElementById('example'), {
1398
- * beforeCopy: (data, coords) => {
1399
- * // data -> [[1, 2, 3], [4, 5, 6]]
1400
- * data.splice(0, 1);
1401
- * // data -> [[4, 5, 6]]
1402
- * // coords -> [{startRow: 0, startCol: 0, endRow: 1, endCol: 2}]
1607
+ * beforeCopy: (clipboardData) => {
1608
+ * // clipboardData.getData() -> [[1, 2, 3], [4, 5, 6]]
1609
+ * clipboardData.removeRows([0]);
1610
+ * clipboardData.removeColumns([0]);
1611
+ * // clipboardData.getData() -> [[5, 6]]
1403
1612
  * }
1404
1613
  * });
1405
1614
  * ...
@@ -1407,7 +1616,7 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
1407
1616
  * // To cancel copying, return false from the callback.
1408
1617
  * ...
1409
1618
  * new Handsontable(document.getElementById('example'), {
1410
- * beforeCopy: (data, coords) => {
1619
+ * beforeCopy: (clipboardData) => {
1411
1620
  * return false;
1412
1621
  * }
1413
1622
  * });
@@ -1417,14 +1626,14 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
1417
1626
  *
1418
1627
  * ::: only-for react
1419
1628
  * ```jsx
1420
- * // To disregard a single row, remove it from array using data.splice(i, 1).
1629
+ * // To disregard a single row or column, remove it from copied dataset using `removeRows`/`removeColumns` method on the object from the first callback argument.
1421
1630
  * ...
1422
1631
  * <HotTable
1423
- * beforeCopy={(data, coords) => {
1424
- * // data -> [[1, 2, 3], [4, 5, 6]]
1425
- * data.splice(0, 1);
1426
- * // data -> [[4, 5, 6]]
1427
- * // coords -> [{startRow: 0, startCol: 0, endRow: 1, endCol: 2}]
1632
+ * beforeCopy={(clipboardData) => {
1633
+ * // clipboardData.getData() -> [[1, 2, 3], [4, 5, 6]]
1634
+ * clipboardData.removeRows([0]);
1635
+ * clipboardData.removeColumns([0]);
1636
+ * // clipboardData.getData() -> [[5, 6]]
1428
1637
  * }}
1429
1638
  * />
1430
1639
  * ...
@@ -1432,7 +1641,7 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
1432
1641
  * // To cancel copying, return false from the callback.
1433
1642
  * ...
1434
1643
  * <HotTable
1435
- * beforeCopy={(data, coords) => {
1644
+ * beforeCopy={(clipboardData) => {
1436
1645
  * return false;
1437
1646
  * }}
1438
1647
  * />
@@ -1445,37 +1654,55 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
1445
1654
  * Fired by {@link CopyPaste} plugin after data are pasted into table. This hook is fired when {@link Options#copyPaste}
1446
1655
  * option is enabled.
1447
1656
  *
1657
+ * Note: Please keep in mind since @14.0.0 the method arguments has been changed.
1658
+ *
1448
1659
  * @event Hooks#afterCopy
1449
- * @param {Array[]} data An array of arrays which contains the copied data.
1450
- * @param {object[]} coords An array of objects with ranges of the visual indexes (`startRow`, `startCol`, `endRow`, `endCol`)
1451
- * which was copied.
1452
- * @param {{ columnHeadersCount: number }} copiedHeadersCount (Since 12.3.0) The number of copied column headers.
1660
+ * @param {object} clipboardData Information about already performed copy action.
1661
+ * @param {Function} clipboardData.removeRow Remove row from the copied dataset.
1662
+ * @param {Function} clipboardData.removeColumn Remove column from the copied dataset.
1663
+ * @param {Function} clipboardData.insertAtRow Insert values at row index.
1664
+ * @param {Function} clipboardData.insertAtColumn Insert values at column index.
1665
+ * @param {Function} clipboardData.setCellAt Change headers or cells in the copied dataset.
1666
+ * @param {Function} clipboardData.getCellAt Get headers or cells from the copied dataset.
1667
+ * @param {Function} clipboardData.getData Gets copied data stored as array of arrays.
1668
+ * @param {Function} clipboardData.getMetaInfo Gets meta information for the copied data.
1669
+ * @param {Function} clipboardData.getRanges Returns ranges related to copied part of Handsontable.
1453
1670
  */
1454
1671
  'afterCopy',
1455
1672
  /**
1456
1673
  * Fired by {@link CopyPaste} plugin before values are pasted into table. This hook is fired when
1457
1674
  * {@link Options#copyPaste} option is enabled.
1458
1675
  *
1676
+ * Note: Please keep in mind since @14.0.0 the method arguments has been changed.
1677
+ *
1459
1678
  * @event Hooks#beforePaste
1460
- * @param {Array[]} data An array of arrays which contains data to paste.
1461
- * @param {object[]} coords An array of objects with ranges of the visual indexes (`startRow`, `startCol`, `endRow`, `endCol`)
1462
- * that correspond to the previously selected area.
1679
+ * @param {object} clipboardData Information about paste action which is going to happen.
1680
+ * @param {Function} clipboardData.removeRow Remove row from the pasted dataset.
1681
+ * @param {Function} clipboardData.removeColumn Remove column from the pasted dataset.
1682
+ * @param {Function} clipboardData.insertAtRow Insert values at row index.
1683
+ * @param {Function} clipboardData.insertAtColumn Insert values at column index.
1684
+ * @param {Function} clipboardData.setCellAt Change headers or cells in the pasted dataset.
1685
+ * @param {Function} clipboardData.getCellAt Get headers or cells from the pasted dataset.
1686
+ * @param {Function} clipboardData.getData Gets copied data stored as array of arrays.
1687
+ * @param {Function} clipboardData.getMetaInfo Gets meta information for the copied data.
1688
+ * @param {Function} clipboardData.getSource Gets information about source of the copied data
1689
+ * (Handsontable, table or string).
1463
1690
  * @returns {*} If returns `false` then pasting is canceled.
1464
1691
  * @example
1465
1692
  * ```js
1466
1693
  * ::: only-for javascript
1467
- * // To disregard a single row, remove it from array using data.splice(i, 1).
1694
+ * // To disregard a single row or column, remove it from copied dataset using `removeRows`/`removeColumns` method on the object from the first callback argument.
1468
1695
  * new Handsontable(example, {
1469
- * beforePaste: (data, coords) => {
1470
- * // data -> [[1, 2, 3], [4, 5, 6]]
1471
- * data.splice(0, 1);
1472
- * // data -> [[4, 5, 6]]
1473
- * // coords -> [{startRow: 0, startCol: 0, endRow: 1, endCol: 2}]
1696
+ * beforePaste: (clipboardData) => {
1697
+ * // clipboardData.getData() -> [[1, 2, 3], [4, 5, 6]]
1698
+ * clipboardData.removeRows([0]);
1699
+ * clipboardData.removeColumns([0]);
1700
+ * // clipboardData.getData() -> [[5, 6]]
1474
1701
  * }
1475
1702
  * });
1476
1703
  * // To cancel pasting, return false from the callback.
1477
1704
  * new Handsontable(example, {
1478
- * beforePaste: (data, coords) => {
1705
+ * beforePaste: (clipboardData) => {
1479
1706
  * return false;
1480
1707
  * }
1481
1708
  * });
@@ -1484,18 +1711,18 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
1484
1711
  *
1485
1712
  * ::: only-for react
1486
1713
  * ```jsx
1487
- * // To disregard a single row, remove it from array using data.splice(i, 1).
1714
+ * // To disregard a single row or column, remove it from copied dataset using `removeRows`/`removeColumns` method on the object from the first callback argument.
1488
1715
  * <HotTable
1489
- * beforePaste={(data, coords) => {
1490
- * // data -> [[1, 2, 3], [4, 5, 6]]
1491
- * data.splice(0, 1);
1492
- * // data -> [[4, 5, 6]]
1493
- * // coords -> [{startRow: 0, startCol: 0, endRow: 1, endCol: 2}]
1716
+ * beforePaste={(clipboardData) => {
1717
+ * // clipboardData.getData() -> [[1, 2, 3], [4, 5, 6]]
1718
+ * clipboardData.removeRows([0]);
1719
+ * clipboardData.removeColumns([0]);
1720
+ * // clipboardData.getData() -> [[5, 6]]
1494
1721
  * }}
1495
1722
  * />
1496
1723
  * // To cancel pasting, return false from the callback.
1497
1724
  * <HotTable
1498
- * beforePaste={(data, coords) => {
1725
+ * beforePaste={(clipboardData) => {
1499
1726
  * return false;
1500
1727
  * }}
1501
1728
  * />
@@ -1507,10 +1734,20 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
1507
1734
  * Fired by {@link CopyPaste} plugin after values are pasted into table. This hook is fired when
1508
1735
  * {@link Options#copyPaste} option is enabled.
1509
1736
  *
1737
+ * Note: Please keep in mind since @14.0.0 the method arguments has been changed.
1738
+ *
1510
1739
  * @event Hooks#afterPaste
1511
- * @param {Array[]} data An array of arrays with the pasted data.
1512
- * @param {object[]} coords An array of objects with ranges of the visual indexes (`startRow`, `startCol`, `endRow`, `endCol`)
1513
- * that correspond to the previously selected area.
1740
+ * @param {object} clipboardData Information about already performed paste action.
1741
+ * @param {Function} clipboardData.removeRow Remove row from the pasted dataset.
1742
+ * @param {Function} clipboardData.removeColumn Remove column from the pasted dataset.
1743
+ * @param {Function} clipboardData.insertAtRow Insert values at row index.
1744
+ * @param {Function} clipboardData.insertAtColumn Insert values at column index.
1745
+ * @param {Function} clipboardData.setCellAt Change headers or cells in the pasted dataset.
1746
+ * @param {Function} clipboardData.getCellAt Get headers or cells from the pasted dataset.
1747
+ * @param {Function} clipboardData.getData Gets copied data stored as array of arrays.
1748
+ * @param {Function} clipboardData.getMetaInfo Gets meta information for the copied data.
1749
+ * @param {Function} clipboardData.getSource Gets information about source of the copied data
1750
+ * (Handsontable, table or string).
1514
1751
  */
1515
1752
  'afterPaste',
1516
1753
  /**
@@ -2382,7 +2619,7 @@ const REMOVED_HOOKS = new Map([['modifyRow', '8.0.0'], ['modifyCol', '8.0.0'], [
2382
2619
  * @type {Map<string, string>}
2383
2620
  */
2384
2621
  /* eslint-enable jsdoc/require-description-complete-sentence */
2385
- const DEPRECATED_HOOKS = new Map([]);
2622
+ const DEPRECATED_HOOKS = new Map([['beforeRemoveCellClassNames', 'The hook "beforeRemoveCellClassNames" is deprecated and will be removed in the next major release.']]);
2386
2623
  class Hooks {
2387
2624
  static getSingleton() {
2388
2625
  return getGlobalSingleton();
@@ -2762,5 +2999,4 @@ const globalSingleton = new Hooks();
2762
2999
  function getGlobalSingleton() {
2763
3000
  return globalSingleton;
2764
3001
  }
2765
- var _default = Hooks;
2766
- exports.default = _default;
3002
+ var _default = exports.default = Hooks;