handsontable 14.2.0 → 14.3.0-next-3fa6b18-20240410

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 (469) hide show
  1. package/3rdparty/walkontable/src/calculator/renderAllColumns.js +1 -1
  2. package/3rdparty/walkontable/src/calculator/renderAllColumns.mjs +1 -1
  3. package/3rdparty/walkontable/src/calculator/renderAllRows.js +1 -1
  4. package/3rdparty/walkontable/src/calculator/renderAllRows.mjs +1 -1
  5. package/3rdparty/walkontable/src/calculator/viewportColumns.js +13 -18
  6. package/3rdparty/walkontable/src/calculator/viewportColumns.mjs +13 -18
  7. package/3rdparty/walkontable/src/calculator/viewportRows.js +11 -16
  8. package/3rdparty/walkontable/src/calculator/viewportRows.mjs +11 -16
  9. package/3rdparty/walkontable/src/cell/coords.js +13 -18
  10. package/3rdparty/walkontable/src/cell/coords.mjs +13 -18
  11. package/3rdparty/walkontable/src/cell/range.d.ts +2 -1
  12. package/3rdparty/walkontable/src/cell/range.js +42 -30
  13. package/3rdparty/walkontable/src/cell/range.mjs +42 -30
  14. package/3rdparty/walkontable/src/core/_base.js +2 -2
  15. package/3rdparty/walkontable/src/core/_base.mjs +2 -2
  16. package/3rdparty/walkontable/src/core/clone.js +1 -1
  17. package/3rdparty/walkontable/src/core/clone.mjs +1 -1
  18. package/3rdparty/walkontable/src/event.js +72 -104
  19. package/3rdparty/walkontable/src/event.mjs +72 -104
  20. package/3rdparty/walkontable/src/filter/column.js +1 -1
  21. package/3rdparty/walkontable/src/filter/column.mjs +1 -1
  22. package/3rdparty/walkontable/src/filter/row.js +1 -1
  23. package/3rdparty/walkontable/src/filter/row.mjs +1 -1
  24. package/3rdparty/walkontable/src/index.js +1 -1
  25. package/3rdparty/walkontable/src/overlay/_base.js +1 -1
  26. package/3rdparty/walkontable/src/overlay/_base.mjs +1 -1
  27. package/3rdparty/walkontable/src/overlay/bottom.js +1 -1
  28. package/3rdparty/walkontable/src/overlay/bottom.mjs +1 -1
  29. package/3rdparty/walkontable/src/overlay/inlineStart.js +15 -1
  30. package/3rdparty/walkontable/src/overlay/inlineStart.mjs +16 -2
  31. package/3rdparty/walkontable/src/overlay/top.js +12 -1
  32. package/3rdparty/walkontable/src/overlay/top.mjs +13 -2
  33. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.js +1 -1
  34. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.mjs +1 -1
  35. package/3rdparty/walkontable/src/overlays.js +47 -5
  36. package/3rdparty/walkontable/src/overlays.mjs +47 -5
  37. package/3rdparty/walkontable/src/renderer/_base.js +1 -1
  38. package/3rdparty/walkontable/src/renderer/_base.mjs +1 -1
  39. package/3rdparty/walkontable/src/renderer/cells.js +1 -1
  40. package/3rdparty/walkontable/src/renderer/cells.mjs +1 -1
  41. package/3rdparty/walkontable/src/renderer/rowHeaders.js +1 -1
  42. package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +1 -1
  43. package/3rdparty/walkontable/src/renderer/rows.js +1 -1
  44. package/3rdparty/walkontable/src/renderer/rows.mjs +1 -1
  45. package/3rdparty/walkontable/src/renderer/table.js +1 -1
  46. package/3rdparty/walkontable/src/renderer/table.mjs +1 -1
  47. package/3rdparty/walkontable/src/scroll.js +16 -18
  48. package/3rdparty/walkontable/src/scroll.mjs +16 -18
  49. package/3rdparty/walkontable/src/selection/manager.js +48 -69
  50. package/3rdparty/walkontable/src/selection/manager.mjs +48 -69
  51. package/3rdparty/walkontable/src/selection/scanner.js +33 -42
  52. package/3rdparty/walkontable/src/selection/scanner.mjs +33 -42
  53. package/3rdparty/walkontable/src/settings.js +1 -1
  54. package/3rdparty/walkontable/src/settings.mjs +1 -1
  55. package/3rdparty/walkontable/src/table.js +1 -1
  56. package/3rdparty/walkontable/src/table.mjs +1 -1
  57. package/3rdparty/walkontable/src/utils/column.js +1 -1
  58. package/3rdparty/walkontable/src/utils/column.mjs +1 -1
  59. package/3rdparty/walkontable/src/utils/columnStretching.js +28 -45
  60. package/3rdparty/walkontable/src/utils/columnStretching.mjs +28 -45
  61. package/3rdparty/walkontable/src/utils/nodesPool.js +1 -1
  62. package/3rdparty/walkontable/src/utils/nodesPool.mjs +1 -1
  63. package/3rdparty/walkontable/src/utils/orderView/view.js +2 -2
  64. package/3rdparty/walkontable/src/utils/orderView/view.mjs +2 -2
  65. package/3rdparty/walkontable/src/utils/orderView/viewSize.js +1 -1
  66. package/3rdparty/walkontable/src/utils/orderView/viewSize.mjs +1 -1
  67. package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.js +1 -1
  68. package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.mjs +1 -1
  69. package/3rdparty/walkontable/src/utils/row.js +1 -1
  70. package/3rdparty/walkontable/src/utils/row.mjs +1 -1
  71. package/CHANGELOG.md +20 -0
  72. package/base.js +2 -2
  73. package/base.mjs +2 -2
  74. package/core/viewportScroll/index.js +4 -1
  75. package/core/viewportScroll/index.mjs +4 -1
  76. package/core/viewportScroll/scrollStrategies/focusScroll.js +15 -0
  77. package/core/viewportScroll/scrollStrategies/focusScroll.mjs +11 -0
  78. package/core.d.ts +4 -3
  79. package/core.js +98 -43
  80. package/core.mjs +98 -43
  81. package/dataMap/dataMap.js +1 -1
  82. package/dataMap/dataMap.mjs +1 -1
  83. package/dataMap/dataSource.js +2 -2
  84. package/dataMap/dataSource.mjs +2 -2
  85. package/dataMap/metaManager/lazyFactoryMap.js +3 -5
  86. package/dataMap/metaManager/lazyFactoryMap.mjs +2 -4
  87. package/dataMap/metaManager/metaLayers/cellMeta.js +2 -2
  88. package/dataMap/metaManager/metaLayers/cellMeta.mjs +2 -2
  89. package/dataMap/metaManager/metaLayers/columnMeta.js +1 -1
  90. package/dataMap/metaManager/metaLayers/columnMeta.mjs +1 -1
  91. package/dataMap/metaManager/metaLayers/globalMeta.js +1 -1
  92. package/dataMap/metaManager/metaLayers/globalMeta.mjs +1 -1
  93. package/dataMap/metaManager/metaLayers/tableMeta.js +1 -1
  94. package/dataMap/metaManager/metaLayers/tableMeta.mjs +1 -1
  95. package/dataMap/metaManager/metaSchema.js +272 -272
  96. package/dataMap/metaManager/metaSchema.mjs +272 -272
  97. package/dataMap/metaManager/mods/dynamicCellMeta.js +1 -1
  98. package/dataMap/metaManager/mods/dynamicCellMeta.mjs +1 -1
  99. package/dataMap/metaManager/mods/extendMetaProperties.js +1 -1
  100. package/dataMap/metaManager/mods/extendMetaProperties.mjs +1 -1
  101. package/dataMap/replaceData.js +1 -1
  102. package/dataMap/replaceData.mjs +1 -1
  103. package/dist/handsontable.css +4 -4
  104. package/dist/handsontable.full.css +4 -4
  105. package/dist/handsontable.full.js +9814 -10020
  106. package/dist/handsontable.full.min.css +3 -3
  107. package/dist/handsontable.full.min.js +292 -292
  108. package/dist/handsontable.js +7484 -7056
  109. package/dist/handsontable.min.css +3 -3
  110. package/dist/handsontable.min.js +25 -25
  111. package/dist/languages/all.min.js +1 -1
  112. package/dist/languages/ar-AR.min.js +1 -1
  113. package/dist/languages/cs-CZ.min.js +1 -1
  114. package/dist/languages/de-CH.min.js +1 -1
  115. package/dist/languages/de-DE.min.js +1 -1
  116. package/dist/languages/en-US.min.js +1 -1
  117. package/dist/languages/es-MX.min.js +1 -1
  118. package/dist/languages/fr-FR.min.js +1 -1
  119. package/dist/languages/hr-HR.min.js +1 -1
  120. package/dist/languages/it-IT.min.js +1 -1
  121. package/dist/languages/ja-JP.min.js +1 -1
  122. package/dist/languages/ko-KR.min.js +1 -1
  123. package/dist/languages/lv-LV.min.js +1 -1
  124. package/dist/languages/nb-NO.min.js +1 -1
  125. package/dist/languages/nl-NL.min.js +1 -1
  126. package/dist/languages/pl-PL.min.js +1 -1
  127. package/dist/languages/pt-BR.min.js +1 -1
  128. package/dist/languages/ru-RU.min.js +1 -1
  129. package/dist/languages/sr-SP.min.js +1 -1
  130. package/dist/languages/zh-CN.min.js +1 -1
  131. package/dist/languages/zh-TW.min.js +1 -1
  132. package/editorManager.js +26 -24
  133. package/editorManager.mjs +26 -24
  134. package/editors/autocompleteEditor/autocompleteEditor.js +7 -11
  135. package/editors/autocompleteEditor/autocompleteEditor.mjs +7 -11
  136. package/editors/baseEditor/baseEditor.js +1 -1
  137. package/editors/baseEditor/baseEditor.mjs +1 -1
  138. package/editors/dateEditor/dateEditor.js +49 -11
  139. package/editors/dateEditor/dateEditor.mjs +49 -11
  140. package/editors/selectEditor/selectEditor.js +20 -19
  141. package/editors/selectEditor/selectEditor.mjs +20 -19
  142. package/editors/textEditor/textEditor.js +1 -1
  143. package/editors/textEditor/textEditor.mjs +1 -1
  144. package/eventManager.js +2 -2
  145. package/eventManager.mjs +2 -2
  146. package/focusManager.js +64 -82
  147. package/focusManager.mjs +64 -82
  148. package/helpers/dom/element.js +23 -1
  149. package/helpers/dom/element.mjs +21 -1
  150. package/helpers/mixed.js +2 -2
  151. package/helpers/mixed.mjs +2 -2
  152. package/helpers/object.js +2 -2
  153. package/helpers/object.mjs +2 -2
  154. package/i18n/languages/ar-AR.d.ts +5 -0
  155. package/i18n/languages/ar-AR.js +1 -1
  156. package/i18n/languages/cs-CZ.d.ts +5 -0
  157. package/i18n/languages/cs-CZ.js +1 -1
  158. package/i18n/languages/de-CH.js +1 -1
  159. package/i18n/languages/de-DE.js +1 -1
  160. package/i18n/languages/en-US.js +1 -1
  161. package/i18n/languages/es-MX.js +1 -1
  162. package/i18n/languages/fr-FR.js +1 -1
  163. package/i18n/languages/hr-HR.d.ts +5 -0
  164. package/i18n/languages/hr-HR.js +1 -1
  165. package/i18n/languages/it-IT.js +1 -1
  166. package/i18n/languages/ja-JP.js +1 -1
  167. package/i18n/languages/ko-KR.js +1 -1
  168. package/i18n/languages/lv-LV.js +1 -1
  169. package/i18n/languages/nb-NO.js +1 -1
  170. package/i18n/languages/nl-NL.js +1 -1
  171. package/i18n/languages/pl-PL.js +1 -1
  172. package/i18n/languages/pt-BR.js +1 -1
  173. package/i18n/languages/ru-RU.js +1 -1
  174. package/i18n/languages/sr-SP.d.ts +5 -0
  175. package/i18n/languages/sr-SP.js +1 -1
  176. package/i18n/languages/zh-CN.js +1 -1
  177. package/i18n/languages/zh-TW.js +1 -1
  178. package/i18n/registry.js +1 -1
  179. package/index.d.ts +10 -0
  180. package/index.js +1 -1
  181. package/package.json +14 -10
  182. package/pluginHooks.d.ts +4 -3
  183. package/pluginHooks.js +143 -82
  184. package/pluginHooks.mjs +143 -82
  185. package/plugins/autoColumnSize/autoColumnSize.js +50 -66
  186. package/plugins/autoColumnSize/autoColumnSize.mjs +50 -66
  187. package/plugins/autoRowSize/autoRowSize.js +29 -35
  188. package/plugins/autoRowSize/autoRowSize.mjs +29 -35
  189. package/plugins/autofill/autofill.js +31 -39
  190. package/plugins/autofill/autofill.mjs +31 -39
  191. package/plugins/base/base.js +13 -18
  192. package/plugins/base/base.mjs +13 -18
  193. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +6 -6
  194. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +6 -6
  195. package/plugins/collapsibleColumns/collapsibleColumns.js +60 -51
  196. package/plugins/collapsibleColumns/collapsibleColumns.mjs +60 -51
  197. package/plugins/columnSorting/columnSorting.js +50 -46
  198. package/plugins/columnSorting/columnSorting.mjs +50 -46
  199. package/plugins/columnSorting/columnStatesManager.js +1 -1
  200. package/plugins/columnSorting/columnStatesManager.mjs +1 -1
  201. package/plugins/columnSummary/columnSummary.js +36 -40
  202. package/plugins/columnSummary/columnSummary.mjs +36 -40
  203. package/plugins/columnSummary/endpoints.js +1 -1
  204. package/plugins/columnSummary/endpoints.mjs +1 -1
  205. package/plugins/comments/commentEditor.js +1 -1
  206. package/plugins/comments/commentEditor.mjs +1 -1
  207. package/plugins/comments/comments.js +117 -159
  208. package/plugins/comments/comments.mjs +117 -159
  209. package/plugins/comments/contextMenuItem/addEditComment.js +1 -1
  210. package/plugins/comments/contextMenuItem/readOnlyComment.js +1 -1
  211. package/plugins/comments/contextMenuItem/removeComment.js +1 -1
  212. package/plugins/comments/displaySwitch.js +1 -1
  213. package/plugins/comments/displaySwitch.mjs +1 -1
  214. package/plugins/contextMenu/commandExecutor.js +1 -1
  215. package/plugins/contextMenu/commandExecutor.mjs +1 -1
  216. package/plugins/contextMenu/contextMenu.js +24 -30
  217. package/plugins/contextMenu/contextMenu.mjs +24 -30
  218. package/plugins/contextMenu/itemsFactory.js +2 -2
  219. package/plugins/contextMenu/itemsFactory.mjs +2 -2
  220. package/plugins/contextMenu/menu/cursor.js +1 -1
  221. package/plugins/contextMenu/menu/cursor.mjs +1 -1
  222. package/plugins/contextMenu/menu/defaultShortcutsList.js +26 -10
  223. package/plugins/contextMenu/menu/defaultShortcutsList.mjs +26 -10
  224. package/plugins/contextMenu/menu/menu.js +14 -22
  225. package/plugins/contextMenu/menu/menu.mjs +14 -22
  226. package/plugins/contextMenu/menu/positioner.js +41 -58
  227. package/plugins/contextMenu/menu/positioner.mjs +41 -58
  228. package/plugins/contextMenu/predefinedItems/alignment.js +1 -1
  229. package/plugins/contextMenu/predefinedItems/clearColumn.js +1 -1
  230. package/plugins/contextMenu/predefinedItems/columnLeft.js +1 -1
  231. package/plugins/contextMenu/predefinedItems/columnRight.js +1 -1
  232. package/plugins/contextMenu/predefinedItems/index.js +1 -1
  233. package/plugins/contextMenu/predefinedItems/readOnly.js +1 -1
  234. package/plugins/contextMenu/predefinedItems/redo.js +1 -1
  235. package/plugins/contextMenu/predefinedItems/removeColumn.js +1 -1
  236. package/plugins/contextMenu/predefinedItems/removeRow.js +1 -1
  237. package/plugins/contextMenu/predefinedItems/rowAbove.js +1 -1
  238. package/plugins/contextMenu/predefinedItems/rowBelow.js +1 -1
  239. package/plugins/contextMenu/predefinedItems/undo.js +1 -1
  240. package/plugins/copyPaste/contextMenuItem/cut.js +1 -1
  241. package/plugins/copyPaste/copyPaste.js +120 -161
  242. package/plugins/copyPaste/copyPaste.mjs +120 -161
  243. package/plugins/copyPaste/copyableRanges.js +43 -66
  244. package/plugins/copyPaste/copyableRanges.mjs +43 -66
  245. package/plugins/customBorders/contextMenuItem/bottom.js +1 -1
  246. package/plugins/customBorders/contextMenuItem/left.js +1 -1
  247. package/plugins/customBorders/contextMenuItem/noBorders.js +1 -1
  248. package/plugins/customBorders/contextMenuItem/right.js +1 -1
  249. package/plugins/customBorders/contextMenuItem/top.js +1 -1
  250. package/plugins/customBorders/customBorders.js +14 -16
  251. package/plugins/customBorders/customBorders.mjs +13 -15
  252. package/plugins/dragToScroll/dragToScroll.js +7 -7
  253. package/plugins/dragToScroll/dragToScroll.mjs +7 -7
  254. package/plugins/dropdownMenu/dropdownMenu.js +84 -110
  255. package/plugins/dropdownMenu/dropdownMenu.mjs +84 -110
  256. package/plugins/exportFile/dataProvider.js +2 -2
  257. package/plugins/exportFile/dataProvider.mjs +2 -2
  258. package/plugins/exportFile/exportFile.js +2 -2
  259. package/plugins/exportFile/exportFile.mjs +1 -1
  260. package/plugins/exportFile/types/_base.js +1 -1
  261. package/plugins/exportFile/types/_base.mjs +1 -1
  262. package/plugins/filters/component/_base.js +1 -1
  263. package/plugins/filters/component/_base.mjs +1 -1
  264. package/plugins/filters/component/actionBar.js +11 -11
  265. package/plugins/filters/component/actionBar.mjs +9 -9
  266. package/plugins/filters/component/condition.js +15 -17
  267. package/plugins/filters/component/condition.mjs +14 -16
  268. package/plugins/filters/component/operators.js +7 -7
  269. package/plugins/filters/component/operators.mjs +7 -7
  270. package/plugins/filters/component/value.js +26 -30
  271. package/plugins/filters/component/value.mjs +25 -29
  272. package/plugins/filters/condition/beginsWith.js +1 -1
  273. package/plugins/filters/condition/between.js +1 -1
  274. package/plugins/filters/condition/contains.js +1 -1
  275. package/plugins/filters/condition/date/after.js +1 -1
  276. package/plugins/filters/condition/date/before.js +1 -1
  277. package/plugins/filters/condition/date/today.js +1 -1
  278. package/plugins/filters/condition/date/tomorrow.js +1 -1
  279. package/plugins/filters/condition/date/yesterday.js +1 -1
  280. package/plugins/filters/condition/empty.js +1 -1
  281. package/plugins/filters/condition/endsWith.js +1 -1
  282. package/plugins/filters/condition/equal.js +1 -1
  283. package/plugins/filters/condition/greaterThan.js +1 -1
  284. package/plugins/filters/condition/greaterThanOrEqual.js +1 -1
  285. package/plugins/filters/condition/lessThan.js +1 -1
  286. package/plugins/filters/condition/lessThanOrEqual.js +1 -1
  287. package/plugins/filters/condition/none.js +1 -1
  288. package/plugins/filters/condition/notBetween.js +1 -1
  289. package/plugins/filters/condition/notContains.js +1 -1
  290. package/plugins/filters/condition/notEmpty.js +1 -1
  291. package/plugins/filters/condition/notEqual.js +1 -1
  292. package/plugins/filters/conditionCollection.js +1 -1
  293. package/plugins/filters/conditionCollection.mjs +1 -1
  294. package/plugins/filters/conditionUpdateObserver.js +23 -25
  295. package/plugins/filters/conditionUpdateObserver.mjs +23 -25
  296. package/plugins/filters/dataFilter.js +2 -2
  297. package/plugins/filters/dataFilter.mjs +2 -2
  298. package/plugins/filters/filters.js +84 -98
  299. package/plugins/filters/filters.mjs +83 -97
  300. package/plugins/filters/logicalOperations/conjunction.js +1 -1
  301. package/plugins/filters/logicalOperations/disjunction.js +1 -1
  302. package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.js +1 -1
  303. package/plugins/filters/ui/_base.js +2 -2
  304. package/plugins/filters/ui/_base.mjs +1 -1
  305. package/plugins/filters/ui/input.js +13 -19
  306. package/plugins/filters/ui/input.mjs +13 -19
  307. package/plugins/filters/ui/link.js +8 -13
  308. package/plugins/filters/ui/link.mjs +8 -13
  309. package/plugins/filters/ui/multipleSelect.js +86 -113
  310. package/plugins/filters/ui/multipleSelect.mjs +85 -112
  311. package/plugins/filters/ui/radioInput.js +12 -20
  312. package/plugins/filters/ui/radioInput.mjs +12 -20
  313. package/plugins/filters/ui/select.js +51 -73
  314. package/plugins/filters/ui/select.mjs +49 -71
  315. package/plugins/formulas/formulas.js +270 -328
  316. package/plugins/formulas/formulas.mjs +271 -329
  317. package/plugins/formulas/indexSyncer/axisSyncer.js +38 -61
  318. package/plugins/formulas/indexSyncer/axisSyncer.mjs +38 -61
  319. package/plugins/formulas/indexSyncer/index.js +25 -48
  320. package/plugins/formulas/indexSyncer/index.mjs +25 -48
  321. package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +1 -1
  322. package/plugins/hiddenColumns/contextMenuItem/showColumn.js +1 -1
  323. package/plugins/hiddenColumns/hiddenColumns.js +68 -87
  324. package/plugins/hiddenColumns/hiddenColumns.mjs +68 -87
  325. package/plugins/hiddenRows/contextMenuItem/hideRow.js +1 -1
  326. package/plugins/hiddenRows/contextMenuItem/showRow.js +1 -1
  327. package/plugins/hiddenRows/hiddenRows.js +67 -86
  328. package/plugins/hiddenRows/hiddenRows.mjs +67 -86
  329. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +1 -1
  330. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +1 -1
  331. package/plugins/manualColumnFreeze/manualColumnFreeze.js +24 -32
  332. package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +25 -33
  333. package/plugins/manualColumnMove/manualColumnMove.js +133 -177
  334. package/plugins/manualColumnMove/manualColumnMove.mjs +133 -177
  335. package/plugins/manualColumnMove/ui/_base.js +1 -1
  336. package/plugins/manualColumnMove/ui/_base.mjs +1 -1
  337. package/plugins/manualColumnResize/manualColumnResize.js +169 -230
  338. package/plugins/manualColumnResize/manualColumnResize.mjs +169 -230
  339. package/plugins/manualRowMove/manualRowMove.js +106 -135
  340. package/plugins/manualRowMove/manualRowMove.mjs +106 -135
  341. package/plugins/manualRowMove/ui/_base.js +1 -1
  342. package/plugins/manualRowMove/ui/_base.mjs +1 -1
  343. package/plugins/manualRowResize/manualRowResize.js +150 -209
  344. package/plugins/manualRowResize/manualRowResize.mjs +150 -209
  345. package/plugins/mergeCells/calculations/autofill.js +1 -1
  346. package/plugins/mergeCells/calculations/autofill.mjs +1 -1
  347. package/plugins/mergeCells/calculations/selection.js +3 -72
  348. package/plugins/mergeCells/calculations/selection.mjs +3 -72
  349. package/plugins/mergeCells/cellCoords.js +1 -1
  350. package/plugins/mergeCells/cellCoords.mjs +1 -1
  351. package/plugins/mergeCells/cellsCollection.js +118 -2
  352. package/plugins/mergeCells/cellsCollection.mjs +118 -2
  353. package/plugins/mergeCells/contextMenuItem/toggleMerge.js +12 -2
  354. package/plugins/mergeCells/contextMenuItem/toggleMerge.mjs +11 -1
  355. package/plugins/mergeCells/focusOrder.js +305 -0
  356. package/plugins/mergeCells/focusOrder.mjs +300 -0
  357. package/plugins/mergeCells/mergeCells.js +500 -398
  358. package/plugins/mergeCells/mergeCells.mjs +500 -398
  359. package/plugins/multiColumnSorting/multiColumnSorting.js +9 -3
  360. package/plugins/multiColumnSorting/multiColumnSorting.mjs +9 -3
  361. package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +2 -2
  362. package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +2 -2
  363. package/plugins/nestedHeaders/nestedHeaders.js +206 -254
  364. package/plugins/nestedHeaders/nestedHeaders.mjs +207 -255
  365. package/plugins/nestedHeaders/stateManager/headersTree.js +21 -32
  366. package/plugins/nestedHeaders/stateManager/headersTree.mjs +21 -32
  367. package/plugins/nestedHeaders/stateManager/index.js +30 -41
  368. package/plugins/nestedHeaders/stateManager/index.mjs +30 -41
  369. package/plugins/nestedHeaders/stateManager/sourceSettings.js +19 -30
  370. package/plugins/nestedHeaders/stateManager/sourceSettings.mjs +19 -30
  371. package/plugins/nestedHeaders/utils/ghostTable.js +1 -1
  372. package/plugins/nestedHeaders/utils/ghostTable.mjs +1 -1
  373. package/plugins/nestedRows/data/dataManager.js +2 -2
  374. package/plugins/nestedRows/data/dataManager.mjs +2 -2
  375. package/plugins/nestedRows/nestedRows.js +154 -185
  376. package/plugins/nestedRows/nestedRows.mjs +155 -186
  377. package/plugins/nestedRows/ui/_base.js +1 -1
  378. package/plugins/nestedRows/ui/_base.mjs +1 -1
  379. package/plugins/nestedRows/ui/contextMenu.js +13 -17
  380. package/plugins/nestedRows/ui/contextMenu.mjs +11 -15
  381. package/plugins/nestedRows/utils/rowMoveController.js +6 -6
  382. package/plugins/nestedRows/utils/rowMoveController.mjs +6 -6
  383. package/plugins/persistentState/persistentState.js +1 -1
  384. package/plugins/persistentState/persistentState.mjs +1 -1
  385. package/plugins/persistentState/storage.js +3 -3
  386. package/plugins/persistentState/storage.mjs +3 -3
  387. package/plugins/search/search.js +8 -8
  388. package/plugins/search/search.mjs +8 -8
  389. package/plugins/touchScroll/touchScroll.js +16 -20
  390. package/plugins/touchScroll/touchScroll.mjs +17 -21
  391. package/plugins/trimRows/trimRows.js +7 -7
  392. package/plugins/trimRows/trimRows.mjs +7 -7
  393. package/plugins/undoRedo/index.js +1 -1
  394. package/renderers/checkboxRenderer/checkboxRenderer.js +8 -5
  395. package/renderers/checkboxRenderer/checkboxRenderer.mjs +8 -5
  396. package/selection/highlight/highlight.js +16 -18
  397. package/selection/highlight/highlight.mjs +15 -17
  398. package/selection/highlight/visualSelection.js +3 -1
  399. package/selection/highlight/visualSelection.mjs +3 -1
  400. package/selection/range.js +3 -5
  401. package/selection/range.mjs +2 -4
  402. package/selection/selection.js +227 -69
  403. package/selection/selection.mjs +225 -67
  404. package/selection/transformation.js +149 -118
  405. package/selection/transformation.mjs +149 -118
  406. package/shortcutContexts/commands/editor/closeAndSave.js +2 -2
  407. package/shortcutContexts/commands/editor/closeAndSave.mjs +2 -2
  408. package/shortcutContexts/commands/editor/open.js +18 -3
  409. package/shortcutContexts/commands/editor/open.mjs +18 -3
  410. package/shortcutContexts/commands/extendCellsSelection/down.js +1 -1
  411. package/shortcutContexts/commands/extendCellsSelection/down.mjs +1 -1
  412. package/shortcutContexts/commands/extendCellsSelection/left.js +1 -1
  413. package/shortcutContexts/commands/extendCellsSelection/left.mjs +1 -1
  414. package/shortcutContexts/commands/extendCellsSelection/right.js +1 -1
  415. package/shortcutContexts/commands/extendCellsSelection/right.mjs +1 -1
  416. package/shortcutContexts/commands/extendCellsSelection/toColumns.js +1 -1
  417. package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +1 -1
  418. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +3 -1
  419. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +3 -1
  420. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +9 -3
  421. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +9 -3
  422. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +10 -3
  423. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +10 -3
  424. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +3 -1
  425. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +3 -1
  426. package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +3 -1
  427. package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +3 -1
  428. package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +3 -1
  429. package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +3 -1
  430. package/shortcutContexts/commands/extendCellsSelection/toRows.js +1 -1
  431. package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +1 -1
  432. package/shortcutContexts/commands/extendCellsSelection/up.js +1 -1
  433. package/shortcutContexts/commands/extendCellsSelection/up.mjs +1 -1
  434. package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +6 -1
  435. package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +6 -1
  436. package/shortcutContexts/commands/moveCellSelection/inlineStart.js +6 -1
  437. package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +6 -1
  438. package/shortcutContexts/grid.js +9 -3
  439. package/shortcutContexts/grid.mjs +9 -3
  440. package/shortcuts/context.js +3 -2
  441. package/shortcuts/context.mjs +3 -2
  442. package/shortcuts/manager.js +2 -2
  443. package/shortcuts/manager.mjs +2 -2
  444. package/tableView.js +53 -79
  445. package/tableView.mjs +53 -79
  446. package/translations/changesObservable/observable.js +21 -38
  447. package/translations/changesObservable/observable.mjs +21 -38
  448. package/translations/changesObservable/observer.js +7 -12
  449. package/translations/changesObservable/observer.mjs +6 -11
  450. package/translations/indexMapper.js +1 -1
  451. package/translations/indexMapper.mjs +1 -1
  452. package/translations/mapCollections/aggregatedCollection.js +2 -2
  453. package/translations/mapCollections/aggregatedCollection.mjs +2 -2
  454. package/translations/mapCollections/mapCollection.js +1 -1
  455. package/translations/mapCollections/mapCollection.mjs +1 -1
  456. package/translations/maps/indexMap.js +2 -2
  457. package/translations/maps/indexMap.mjs +2 -2
  458. package/translations/maps/linkedPhysicalIndexToValueMap.js +1 -1
  459. package/translations/maps/linkedPhysicalIndexToValueMap.mjs +1 -1
  460. package/utils/dataStructures/linkedList.js +7 -2
  461. package/utils/dataStructures/linkedList.mjs +7 -2
  462. package/utils/dataStructures/tree.js +2 -2
  463. package/utils/dataStructures/tree.mjs +2 -2
  464. package/utils/ghostTable.js +1 -1
  465. package/utils/ghostTable.mjs +1 -1
  466. package/utils/interval.js +27 -45
  467. package/utils/interval.mjs +27 -45
  468. package/utils/samplesGenerator.js +1 -1
  469. package/utils/samplesGenerator.mjs +1 -1
package/pluginHooks.mjs CHANGED
@@ -1,7 +1,7 @@
1
- import "core-js/modules/es.array.push.js";
2
1
  import "core-js/modules/es.error.cause.js";
2
+ import "core-js/modules/es.array.push.js";
3
3
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
4
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
4
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
5
5
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
6
6
  import { arrayEach } from "./helpers/array.mjs";
7
7
  import { objectEach } from "./helpers/object.mjs";
@@ -20,7 +20,7 @@ import { fastCall } from "./helpers/function.mjs";
20
20
  * ::: only-for react
21
21
  * This page lists all the **Handsontable hooks** – callbacks that let you react before or after an action occurs.
22
22
  *
23
- * Read more on the [Events and hooks](@/guides/getting-started/events-and-hooks.md) page.
23
+ * Read more on the [Events and hooks](@/guides/getting-started/events-and-hooks/events-and-hooks.md) page.
24
24
  * :::
25
25
  *
26
26
  * @example
@@ -130,13 +130,13 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
130
130
  'afterCellMetaReset',
131
131
  /**
132
132
  * Fired after one or more cells has been changed. The changes are triggered in any situation when the
133
- * value is entered using an editor or changed using API (e.q setDataAtCell).
133
+ * value is entered using an editor or changed using API (e.q [`setDataAtCell`](@/api/core.md#setdataatcell) method).
134
134
  *
135
135
  * __Note:__ For performance reasons, the `changes` array is null for `"loadData"` source.
136
136
  *
137
137
  * @event Hooks#afterChange
138
138
  * @param {Array[]} changes 2D array containing information about each of the edited cells `[[row, prop, oldVal, newVal], ...]`. `row` is a visual row index.
139
- * @param {string} [source] String that identifies source of hook call ([list of all available sources](@/guides/getting-started/events-and-hooks.md#definition-for-source-argument)).
139
+ * @param {string} [source] String that identifies source of hook call ([list of all available sources](@/guides/getting-started/events-and-hooks/events-and-hooks.md#definition-for-source-argument)).
140
140
  * @example
141
141
  * ::: only-for javascript
142
142
  * ```js
@@ -173,7 +173,7 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
173
173
  'afterContextMenuDefaultOptions',
174
174
  /**
175
175
  * Fired each time user opens {@link ContextMenu} plugin before setting up the Context Menu's items but after filtering these options by
176
- * user (`contextMenu` option). This hook can by helpful to determine if user use specified menu item or to set up
176
+ * user ([`contextMenu`](@/api/options.md#contextmenu) option). This hook can by helpful to determine if user use specified menu item or to set up
177
177
  * one of the menu item to by always visible.
178
178
  *
179
179
  * @event Hooks#beforeContextMenuSetItems
@@ -191,7 +191,7 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
191
191
  'afterDropdownMenuDefaultOptions',
192
192
  /**
193
193
  * Fired by {@link DropdownMenu} plugin before setting up the Dropdown Menu's items but after filtering these options
194
- * by user (`dropdownMenu` option). This hook can by helpful to determine if user use specified menu item or to set
194
+ * by user ([`dropdownMenu`](@/api/options.md#dropdownmenu) option). This hook can by helpful to determine if user use specified menu item or to set
195
195
  * up one of the menu item to by always visible.
196
196
  *
197
197
  * @event Hooks#beforeDropdownMenuSetItems
@@ -240,7 +240,7 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
240
240
  * @param {number} index Represents the visual index of first newly created column in the data source array.
241
241
  * @param {number} amount Number of newly created columns in the data source array.
242
242
  * @param {string} [source] String that identifies source of hook call
243
- * ([list of all available sources](@/guides/getting-started/events-and-hooks.md#definition-for-source-argument)).
243
+ * ([list of all available sources](@/guides/getting-started/events-and-hooks/events-and-hooks.md#definition-for-source-argument)).
244
244
  * @returns {*} If `false` then creating columns is cancelled.
245
245
  * @example
246
246
  * ::: only-for javascript
@@ -281,7 +281,7 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
281
281
  * @param {number} index Represents the visual index of first newly created column in the data source.
282
282
  * @param {number} amount Number of newly created columns in the data source.
283
283
  * @param {string} [source] String that identifies source of hook call
284
- * ([list of all available sources](@/guides/getting-started/events-and-hooks.md#definition-for-source-argument)).
284
+ * ([list of all available sources](@/guides/getting-started/events-and-hooks/events-and-hooks.md#definition-for-source-argument)).
285
285
  */
286
286
  'afterCreateCol',
287
287
  /**
@@ -291,7 +291,7 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
291
291
  * @param {number} index Represents the visual index of first newly created row in the data source array.
292
292
  * @param {number} amount Number of newly created rows in the data source array.
293
293
  * @param {string} [source] String that identifies source of hook call
294
- * ([list of all available sources](@/guides/getting-started/events-and-hooks.md#definition-for-source-argument)).
294
+ * ([list of all available sources](@/guides/getting-started/events-and-hooks/events-and-hooks.md#definition-for-source-argument)).
295
295
  * @returns {*|boolean} If false is returned the action is canceled.
296
296
  */
297
297
  'beforeCreateRow',
@@ -302,7 +302,7 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
302
302
  * @param {number} index Represents the visual index of first newly created row in the data source array.
303
303
  * @param {number} amount Number of newly created rows in the data source array.
304
304
  * @param {string} [source] String that identifies source of hook call
305
- * ([list of all available sources](@/guides/getting-started/events-and-hooks.md#definition-for-source-argument)).
305
+ * ([list of all available sources](@/guides/getting-started/events-and-hooks/events-and-hooks.md#definition-for-source-argument)).
306
306
  */
307
307
  'afterCreateRow',
308
308
  /**
@@ -318,7 +318,7 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
318
318
  */
319
319
  'afterDestroy',
320
320
  /**
321
- * Hook fired after keydown event is handled.
321
+ * Hook fired after `keydown` event is handled.
322
322
  *
323
323
  * @event Hooks#afterDocumentKeyDown
324
324
  * @param {Event} event A native `keydown` event object.
@@ -385,11 +385,11 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
385
385
  * or the [`updateSettings()`](@/api/core.md#updatesettings) method.
386
386
  *
387
387
  * Read more:
388
- * - [Binding to data](@/guides/getting-started/binding-to-data.md)
389
- * - [Saving data](@/guides/getting-started/saving-data.md)
388
+ * - [Binding to data](@/guides/getting-started/binding-to-data/binding-to-data.md)
389
+ * - [Saving data](@/guides/getting-started/saving-data/saving-data.md)
390
390
  *
391
391
  * @event Hooks#afterLoadData
392
- * @param {Array} sourceData An [array of arrays](@/guides/getting-started/binding-to-data.md#array-of-arrays), or an [array of objects](@/guides/getting-started/binding-to-data.md#array-of-objects), that contains Handsontable's data
392
+ * @param {Array} sourceData An [array of arrays](@/guides/getting-started/binding-to-data/binding-to-data.md#array-of-arrays), or an [array of objects](@/guides/getting-started/binding-to-data/binding-to-data.md#array-of-objects), that contains Handsontable's data
393
393
  * @param {boolean} initialLoad A flag that indicates whether the data was loaded at Handsontable's initialization (`true`) or later (`false`)
394
394
  * @param {string} source The source of the call
395
395
  */
@@ -399,18 +399,18 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
399
399
  * modifies Handsontable's [`data`](@/api/options.md#data).
400
400
  *
401
401
  * Read more:
402
- * - [Binding to data](@/guides/getting-started/binding-to-data.md)
403
- * - [Saving data](@/guides/getting-started/saving-data.md)
402
+ * - [Binding to data](@/guides/getting-started/binding-to-data/binding-to-data.md)
403
+ * - [Saving data](@/guides/getting-started/saving-data/saving-data.md)
404
404
  *
405
405
  * @event Hooks#afterUpdateData
406
406
  * @since 11.1.0
407
- * @param {Array} sourceData An [array of arrays](@/guides/getting-started/binding-to-data.md#array-of-arrays), or an [array of objects](@/guides/getting-started/binding-to-data.md#array-of-objects), that contains Handsontable's data
407
+ * @param {Array} sourceData An [array of arrays](@/guides/getting-started/binding-to-data/binding-to-data.md#array-of-arrays), or an [array of objects](@/guides/getting-started/binding-to-data/binding-to-data.md#array-of-objects), that contains Handsontable's data
408
408
  * @param {boolean} initialLoad A flag that indicates whether the data was loaded at Handsontable's initialization (`true`) or later (`false`)
409
409
  * @param {string} source The source of the call
410
410
  */
411
411
  'afterUpdateData',
412
412
  /**
413
- * Fired after a scroll event, which is identified as a momentum scroll (e.g. On an iPad).
413
+ * Fired after a scroll event, which is identified as a momentum scroll (e.g. on an iPad).
414
414
  *
415
415
  * @event Hooks#afterMomentumScroll
416
416
  */
@@ -498,7 +498,7 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
498
498
  * @param {number} amount An amount of removed columns.
499
499
  * @param {number[]} physicalColumns An array of physical columns removed from the data source.
500
500
  * @param {string} [source] String that identifies source of hook call
501
- * ([list of all available sources](@/guides/getting-started/events-and-hooks.md#definition-for-source-argument)).
501
+ * ([list of all available sources](@/guides/getting-started/events-and-hooks/events-and-hooks.md#definition-for-source-argument)).
502
502
  */
503
503
  'afterRemoveCol',
504
504
  /**
@@ -509,7 +509,7 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
509
509
  * @param {number} amount An amount of removed rows.
510
510
  * @param {number[]} physicalRows An array of physical rows removed from the data source.
511
511
  * @param {string} [source] String that identifies source of hook call
512
- * ([list of all available sources](@/guides/getting-started/events-and-hooks.md#definition-for-source-argument)).
512
+ * ([list of all available sources](@/guides/getting-started/events-and-hooks/events-and-hooks.md#definition-for-source-argument)).
513
513
  */
514
514
  'afterRemoveRow',
515
515
  /**
@@ -594,7 +594,7 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
594
594
  */
595
595
  'afterScroll',
596
596
  /**
597
- * Fired after one or more cells are selected (e.g. During mouse move).
597
+ * Fired after one or more cells are selected (e.g. during mouse move).
598
598
  *
599
599
  * @event Hooks#afterSelection
600
600
  * @param {number} row Selection start visual row index.
@@ -646,7 +646,9 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
646
646
  * @param {string} prop Selection start data source object property name.
647
647
  * @param {number} row2 Selection end visual row index.
648
648
  * @param {string} prop2 Selection end data source object property name.
649
- * @param {object} preventScrolling Object with `value` property where its value change will be observed.
649
+ * @param {object} preventScrolling A reference to the observable object with the `value` property.
650
+ * Property `preventScrolling.value` expects a boolean value that
651
+ * Handsontable uses to control scroll behavior after selection.
650
652
  * @param {number} selectionLayerLevel The number which indicates what selection layer is currently modified.
651
653
  * @example
652
654
  * ```js
@@ -673,7 +675,7 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
673
675
  */
674
676
  'afterSelectionByProp',
675
677
  /**
676
- * Fired after one or more cells are selected (e.g. On mouse up).
678
+ * Fired after one or more cells are selected (e.g. on mouse up).
677
679
  *
678
680
  * @event Hooks#afterSelectionEnd
679
681
  * @param {number} row Selection start visual row index.
@@ -684,7 +686,7 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
684
686
  */
685
687
  'afterSelectionEnd',
686
688
  /**
687
- * Fired after one or more cells are selected (e.g. On mouse up).
689
+ * Fired after one or more cells are selected (e.g. on mouse up).
688
690
  *
689
691
  * The `prop` and `prop2` arguments represent the source object property name instead of the column number.
690
692
  *
@@ -696,6 +698,46 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
696
698
  * @param {number} selectionLayerLevel The number which indicates what selection layer is currently modified.
697
699
  */
698
700
  'afterSelectionEndByProp',
701
+ /**
702
+ * Fired after the focus position within a selected range is changed.
703
+ *
704
+ * @since 14.3.0
705
+ * @event Hooks#afterSelectionFocusSet
706
+ * @param {number} row The focus visual row index position.
707
+ * @param {number} column The focus visual column index position.
708
+ * @param {object} preventScrolling A reference to the observable object with the `value` property.
709
+ * Property `preventScrolling.value` expects a boolean value that
710
+ * Handsontable uses to control scroll behavior after selection.
711
+ * @example
712
+ * ```js
713
+ * ::: only-for javascript
714
+ * new Handsontable(element, {
715
+ * afterSelectionFocusSet: (row, column, preventScrolling) => {
716
+ * // If set to `false` (default): when focused cell selection is outside the viewport,
717
+ * // Handsontable scrolls the viewport to that cell.
718
+ * // If set to `true`: when focused cell selection is outside the viewport,
719
+ * // Handsontable doesn't scroll the viewport.
720
+ * preventScrolling.value = true;
721
+ * }
722
+ * })
723
+ * ```
724
+ * :::
725
+ *
726
+ * ::: only-for react
727
+ * ```jsx
728
+ * <HotTable
729
+ * afterSelectionFocusSet={(row, column, preventScrolling) => {
730
+ * // If set to `false` (default): when focused cell selection is outside the viewport,
731
+ * // Handsontable scrolls the viewport to that cell.
732
+ * // If set to `true`: when focused cell selection is outside the viewport,
733
+ * // Handsontable doesn't scroll the viewport.
734
+ * preventScrolling.value = true;
735
+ * }}
736
+ * />
737
+ * ```
738
+ * :::
739
+ */
740
+ 'afterSelectionFocusSet',
699
741
  /**
700
742
  * Fired before one or more columns are selected (e.g. During mouse header click or {@link Core#selectColumns} API call).
701
743
  *
@@ -731,7 +773,7 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
731
773
  */
732
774
  'beforeSelectColumns',
733
775
  /**
734
- * Fired after one or more columns are selected (e.g. During mouse header click or {@link Core#selectColumns} API call).
776
+ * Fired after one or more columns are selected (e.g. during mouse header click or {@link Core#selectColumns} API call).
735
777
  *
736
778
  * @since 14.0.0
737
779
  * @event Hooks#afterSelectColumns
@@ -741,7 +783,7 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
741
783
  */
742
784
  'afterSelectColumns',
743
785
  /**
744
- * Fired before one or more rows are selected (e.g. During mouse header click or {@link Core#selectRows} API call).
786
+ * Fired before one or more rows are selected (e.g. during mouse header click or {@link Core#selectRows} API call).
745
787
  *
746
788
  * @since 14.0.0
747
789
  * @event Hooks#beforeSelectRows
@@ -775,7 +817,7 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
775
817
  */
776
818
  'beforeSelectRows',
777
819
  /**
778
- * Fired after one or more rows are selected (e.g. During mouse header click or {@link Core#selectRows} API call).
820
+ * Fired after one or more rows are selected (e.g. during mouse header click or {@link Core#selectRows} API call).
779
821
  *
780
822
  * @since 14.0.0
781
823
  * @event Hooks#afterSelectRows
@@ -810,17 +852,17 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
810
852
  * @event Hooks#afterSetDataAtCell
811
853
  * @param {Array} changes An array of changes in format `[[row, column, oldValue, value], ...]`.
812
854
  * @param {string} [source] String that identifies source of hook call
813
- * ([list of all available sources](@/guides/getting-started/events-and-hooks.md#definition-for-source-argument)).
855
+ * ([list of all available sources](@/guides/getting-started/events-and-hooks/events-and-hooks.md#definition-for-source-argument)).
814
856
  */
815
857
  'afterSetDataAtCell',
816
858
  /**
817
859
  * Fired after cell data was changed.
818
- * Called only when `setDataAtRowProp` was executed.
860
+ * Called only when [`setDataAtRowProp`](@/api/core.md#setdataatrowprop) was executed.
819
861
  *
820
862
  * @event Hooks#afterSetDataAtRowProp
821
863
  * @param {Array} changes An array of changes in format `[[row, prop, oldValue, value], ...]`.
822
864
  * @param {string} [source] String that identifies source of hook call
823
- * ([list of all available sources](@/guides/getting-started/events-and-hooks.md#definition-for-source-argument)).
865
+ * ([list of all available sources](@/guides/getting-started/events-and-hooks/events-and-hooks.md#definition-for-source-argument)).
824
866
  */
825
867
  'afterSetDataAtRowProp',
826
868
  /**
@@ -833,7 +875,7 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
833
875
  */
834
876
  'afterSetSourceDataAtCell',
835
877
  /**
836
- * Fired after calling the `updateSettings` method.
878
+ * Fired after calling the [`updateSettings`](@/api/core.md#updatesettings) method.
837
879
  *
838
880
  * @event Hooks#afterUpdateSettings
839
881
  * @param {object} newSettings New settings object.
@@ -852,7 +894,7 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
852
894
  * @param {number} row Visual row index.
853
895
  * @param {string|number} prop Property name / visual column index.
854
896
  * @param {string} [source] String that identifies source of hook call
855
- * ([list of all available sources](@/guides/getting-started/events-and-hooks.md#definition-for-source-argument)).
897
+ * ([list of all available sources](@/guides/getting-started/events-and-hooks/events-and-hooks.md#definition-for-source-argument)).
856
898
  * @returns {undefined | boolean} If `false` the cell will be marked as invalid, `true` otherwise.
857
899
  */
858
900
  'afterValidate',
@@ -883,7 +925,7 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
883
925
  * @param {string} direction Declares the direction of the autofill. Possible values: `up`, `down`, `left`, `right`.
884
926
  *
885
927
  * @returns {boolean|Array[]} If false, the operation is cancelled. If array of arrays, the returned data
886
- * will be passed into `populateFromArray` instead of the default autofill
928
+ * will be passed into [`populateFromArray`](@/api/core.md#populatefromarray) instead of the default autofill
887
929
  * algorithm's result.
888
930
  */
889
931
  'beforeAutofill',
@@ -905,17 +947,10 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
905
947
  *
906
948
  * @event Hooks#beforeCellAlignment
907
949
  * @param {object} stateBefore An object with class names defining the cell alignment.
908
- * @param {CellRange[]} range An array of CellRange coordinates where the alignment will be applied.
950
+ * @param {CellRange[]} range An array of `CellRange` coordinates where the alignment will be applied.
909
951
  * @param {string} type Type of the alignment - either `horizontal` or `vertical`.
910
952
  * @param {string} alignmentClass String defining the alignment class added to the cell.
911
- * Possible values:
912
- * * `htLeft`
913
- * * `htCenter`
914
- * * `htRight`
915
- * * `htJustify`
916
- * * `htTop`
917
- * * `htMiddle`
918
- * * `htBottom`.
953
+ * Possible values: `htLeft` , `htCenter`, `htRight`, `htJustify`, `htTop`, `htMiddle`, `htBottom`.
919
954
  */
920
955
  'beforeCellAlignment',
921
956
  /**
@@ -928,7 +963,7 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
928
963
  * @event Hooks#beforeChange
929
964
  * @param {Array[]} changes 2D array containing information about each of the edited cells `[[row, prop, oldVal, newVal], ...]`. `row` is a visual row index.
930
965
  * @param {string} [source] String that identifies source of hook call
931
- * ([list of all available sources](@/guides/getting-started/events-and-hooks.md#definition-for-source-argument)).
966
+ * ([list of all available sources](@/guides/getting-started/events-and-hooks/events-and-hooks.md#definition-for-source-argument)).
932
967
  * @returns {undefined | boolean} If `false` all changes were cancelled, `true` otherwise.
933
968
  * @example
934
969
  * ::: only-for javascript
@@ -998,7 +1033,7 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
998
1033
  * @event Hooks#beforeChangeRender
999
1034
  * @param {Array[]} changes Array in form of `[row, prop, oldValue, newValue]`.
1000
1035
  * @param {string} [source] String that identifies source of hook call
1001
- * ([list of all available sources](@/guides/getting-started/events-and-hooks.md#definition-for-source-argument)).
1036
+ * ([list of all available sources](@/guides/getting-started/events-and-hooks/events-and-hooks.md#definition-for-source-argument)).
1002
1037
  */
1003
1038
  'beforeChangeRender',
1004
1039
  /**
@@ -1048,12 +1083,12 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
1048
1083
  * or the [`updateSettings()`](@/api/core.md#updatesettings) method.
1049
1084
  *
1050
1085
  * Read more:
1051
- * - [Binding to data](@/guides/getting-started/binding-to-data.md)
1052
- * - [Saving data](@/guides/getting-started/saving-data.md)
1086
+ * - [Binding to data](@/guides/getting-started/binding-to-data/binding-to-data.md)
1087
+ * - [Saving data](@/guides/getting-started/saving-data/saving-data.md)
1053
1088
  *
1054
1089
  * @event Hooks#beforeLoadData
1055
1090
  * @since 8.0.0
1056
- * @param {Array} sourceData An [array of arrays](@/guides/getting-started/binding-to-data.md#array-of-arrays), or an [array of objects](@/guides/getting-started/binding-to-data.md#array-of-objects), that contains Handsontable's data
1091
+ * @param {Array} sourceData An [array of arrays](@/guides/getting-started/binding-to-data/binding-to-data.md#array-of-arrays), or an [array of objects](@/guides/getting-started/binding-to-data/binding-to-data.md#array-of-objects), that contains Handsontable's data
1057
1092
  * @param {boolean} initialLoad A flag that indicates whether the data was loaded at Handsontable's initialization (`true`) or later (`false`)
1058
1093
  * @param {string} source The source of the call
1059
1094
  * @returns {Array} The returned array will be used as Handsontable's new dataset.
@@ -1064,19 +1099,19 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
1064
1099
  * modifies Handsontable's [`data`](@/api/options.md#data).
1065
1100
  *
1066
1101
  * Read more:
1067
- * - [Binding to data](@/guides/getting-started/binding-to-data.md)
1068
- * - [Saving data](@/guides/getting-started/saving-data.md)
1102
+ * - [Binding to data](@/guides/getting-started/binding-to-data/binding-to-data.md)
1103
+ * - [Saving data](@/guides/getting-started/saving-data/saving-data.md)
1069
1104
  *
1070
1105
  * @event Hooks#beforeUpdateData
1071
1106
  * @since 11.1.0
1072
- * @param {Array} sourceData An [array of arrays](@/guides/getting-started/binding-to-data.md#array-of-arrays), or an [array of objects](@/guides/getting-started/binding-to-data.md#array-of-objects), that contains Handsontable's data
1107
+ * @param {Array} sourceData An [array of arrays](@/guides/getting-started/binding-to-data/binding-to-data.md#array-of-arrays), or an [array of objects](@/guides/getting-started/binding-to-data/binding-to-data.md#array-of-objects), that contains Handsontable's data
1073
1108
  * @param {boolean} initialLoad A flag that indicates whether the data was loaded at Handsontable's initialization (`true`) or later (`false`)
1074
1109
  * @param {string} source The source of the call
1075
1110
  * @returns {Array} The returned array will be used as Handsontable's new dataset.
1076
1111
  */
1077
1112
  'beforeUpdateData',
1078
1113
  /**
1079
- * Hook fired before keydown event is handled. It can be used to stop default key bindings.
1114
+ * Hook fired before `keydown` event is handled. It can be used to stop default key bindings.
1080
1115
  *
1081
1116
  * __Note__: To prevent default behavior you need to call `false` in your `beforeKeyDown` handler.
1082
1117
  *
@@ -1142,7 +1177,7 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
1142
1177
  * @param {number} amount Amount of columns to be removed.
1143
1178
  * @param {number[]} physicalColumns An array of physical columns removed from the data source.
1144
1179
  * @param {string} [source] String that identifies source of hook call
1145
- * ([list of all available sources](@/guides/getting-started/events-and-hooks.md#definition-for-source-argument)).
1180
+ * ([list of all available sources](@/guides/getting-started/events-and-hooks/events-and-hooks.md#definition-for-source-argument)).
1146
1181
  * @returns {*|boolean} If false is returned the action is canceled.
1147
1182
  */
1148
1183
  'beforeRemoveCol',
@@ -1154,7 +1189,7 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
1154
1189
  * @param {number} amount Amount of rows to be removed.
1155
1190
  * @param {number[]} physicalRows An array of physical rows removed from the data source.
1156
1191
  * @param {string} [source] String that identifies source of hook call
1157
- * ([list of all available sources](@/guides/getting-started/events-and-hooks.md#definition-for-source-argument)).
1192
+ * ([list of all available sources](@/guides/getting-started/events-and-hooks/events-and-hooks.md#definition-for-source-argument)).
1158
1193
  * @returns {*|boolean} If false is returned the action is canceled.
1159
1194
  */
1160
1195
  'beforeRemoveRow',
@@ -1250,25 +1285,33 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
1250
1285
  * @returns {boolean|undefined} If false is returned the action is canceled.
1251
1286
  */
1252
1287
  'beforeSetCellMeta',
1288
+ /**
1289
+ * Fired before setting focus selection.
1290
+ *
1291
+ * @since 14.3.0
1292
+ * @event Hooks#beforeSelectionFocusSet
1293
+ * @param {CellCoords} coords CellCoords instance.
1294
+ */
1295
+ 'beforeSelectionFocusSet',
1253
1296
  /**
1254
1297
  * Fired before setting range is started but not finished yet.
1255
1298
  *
1256
1299
  * @event Hooks#beforeSetRangeStartOnly
1257
- * @param {CellCoords} coords CellCoords instance.
1300
+ * @param {CellCoords} coords `CellCoords` instance.
1258
1301
  */
1259
1302
  'beforeSetRangeStartOnly',
1260
1303
  /**
1261
1304
  * Fired before setting range is started.
1262
1305
  *
1263
1306
  * @event Hooks#beforeSetRangeStart
1264
- * @param {CellCoords} coords CellCoords instance.
1307
+ * @param {CellCoords} coords `CellCoords` instance.
1265
1308
  */
1266
1309
  'beforeSetRangeStart',
1267
1310
  /**
1268
1311
  * Fired before setting range is ended.
1269
1312
  *
1270
1313
  * @event Hooks#beforeSetRangeEnd
1271
- * @param {CellCoords} coords CellCoords instance.
1314
+ * @param {CellCoords} coords `CellCoords` instance.
1272
1315
  */
1273
1316
  'beforeSetRangeEnd',
1274
1317
  /**
@@ -1297,7 +1340,7 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
1297
1340
  * @param {number} row Visual row index.
1298
1341
  * @param {string|number} prop Property name / column index.
1299
1342
  * @param {string} [source] String that identifies source of hook call
1300
- * ([list of all available sources](@/guides/getting-started/events-and-hooks.md#definition-for-source-argument)).
1343
+ * ([list of all available sources](@/guides/getting-started/events-and-hooks/events-and-hooks.md#definition-for-source-argument)).
1301
1344
  */
1302
1345
  'beforeValidate',
1303
1346
  /**
@@ -1401,7 +1444,7 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
1401
1444
  */
1402
1445
  'modifyRowData',
1403
1446
  /**
1404
- * Used to modify the cell coordinates when using the `getCell` method, opening editor, getting value from the editor
1447
+ * Used to modify the cell coordinates when using the [`getCell`](@/api/core.md#getcell) method, opening editor, getting value from the editor
1405
1448
  * and saving values from the closed editor.
1406
1449
  *
1407
1450
  * @event Hooks#modifyGetCellCoords
@@ -1740,11 +1783,11 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
1740
1783
  * @param {number} finalIndex Visual column index, being a start index for the moved columns.
1741
1784
  * Points to where the elements will be placed after the moving action.
1742
1785
  * To check visualization of final index please take a look at
1743
- * [documentation](@/guides/columns/column-moving.md).
1786
+ * [documentation](@/guides/columns/column-moving/column-moving.md).
1744
1787
  * @param {number|undefined} dropIndex Visual column index, being a drop index for the moved columns.
1745
1788
  * Points to where we are going to drop the moved elements. To check
1746
1789
  * visualization of drop index please take a look at
1747
- * [documentation](@/guides/columns/column-moving.md).
1790
+ * [documentation](@/guides/columns/column-moving/column-moving.md).
1748
1791
  * It's `undefined` when `dragColumns` function wasn't called.
1749
1792
  * @param {boolean} movePossible Indicates if it's possible to move rows to the desired position.
1750
1793
  * @returns {undefined | boolean} If `false` the column will not be moved, `true` otherwise.
@@ -1759,11 +1802,11 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
1759
1802
  * @param {number} finalIndex Visual column index, being a start index for the moved columns.
1760
1803
  * Points to where the elements will be placed after the moving action.
1761
1804
  * To check visualization of final index please take a look at
1762
- * [documentation](@/guides/columns/column-moving.md).
1805
+ * [documentation](@/guides/columns/column-moving/column-moving.md).
1763
1806
  * @param {number|undefined} dropIndex Visual column index, being a drop index for the moved columns.
1764
1807
  * Points to where we are going to drop the moved elements.
1765
1808
  * To check visualization of drop index please take a look at
1766
- * [documentation](@/guides/columns/column-moving.md).
1809
+ * [documentation](@/guides/columns/column-moving/column-moving.md).
1767
1810
  * It's `undefined` when `dragColumns` function wasn't called.
1768
1811
  * @param {boolean} movePossible Indicates if it was possible to move columns to the desired position.
1769
1812
  * @param {boolean} orderChanged Indicates if order of columns was changed by move.
@@ -1797,11 +1840,11 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
1797
1840
  * @param {number} finalIndex Visual row index, being a start index for the moved rows.
1798
1841
  * Points to where the elements will be placed after the moving action.
1799
1842
  * To check visualization of final index please take a look at
1800
- * [documentation](@/guides/rows/row-moving.md).
1843
+ * [documentation](@/guides/rows/row-moving/row-moving.md).
1801
1844
  * @param {number|undefined} dropIndex Visual row index, being a drop index for the moved rows.
1802
1845
  * Points to where we are going to drop the moved elements.
1803
1846
  * To check visualization of drop index please take a look at
1804
- * [documentation](@/guides/rows/row-moving.md).
1847
+ * [documentation](@/guides/rows/row-moving/row-moving.md).
1805
1848
  * It's `undefined` when `dragRows` function wasn't called.
1806
1849
  * @param {boolean} movePossible Indicates if it's possible to move rows to the desired position.
1807
1850
  * @returns {*|boolean} If false is returned the action is canceled.
@@ -1816,11 +1859,11 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
1816
1859
  * @param {number} finalIndex Visual row index, being a start index for the moved rows.
1817
1860
  * Points to where the elements will be placed after the moving action.
1818
1861
  * To check visualization of final index please take a look at
1819
- * [documentation](@/guides/rows/row-moving.md).
1862
+ * [documentation](@/guides/rows/row-moving/row-moving.md).
1820
1863
  * @param {number|undefined} dropIndex Visual row index, being a drop index for the moved rows.
1821
1864
  * Points to where we are going to drop the moved elements.
1822
1865
  * To check visualization of drop index please take a look at
1823
- * [documentation](@/guides/rows/row-moving.md).
1866
+ * [documentation](@/guides/rows/row-moving/row-moving.md).
1824
1867
  * It's `undefined` when `dragRows` function wasn't called.
1825
1868
  * @param {boolean} movePossible Indicates if it was possible to move rows to the desired position.
1826
1869
  * @param {boolean} orderChanged Indicates if order of rows was changed by move.
@@ -1893,7 +1936,7 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
1893
1936
  'beforeStretchingColumnWidth',
1894
1937
  /**
1895
1938
  * Fired by the [`Filters`](@/api/filters.md) plugin,
1896
- * before a [column filter](@/guides/columns/column-filter.md) gets applied.
1939
+ * before a [column filter](@/guides/columns/column-filter/column-filter.md) gets applied.
1897
1940
  *
1898
1941
  * [`beforeFilter`](#beforefilter) takes one argument (`conditionsStack`), which is an array of objects.
1899
1942
  * Each object represents one of your [column filters](@/api/filters.md#addcondition),
@@ -1938,7 +1981,7 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
1938
1981
  *```
1939
1982
  *
1940
1983
  * Read more:
1941
- * - [Guides: Column filter](@/guides/columns/column-filter.md)
1984
+ * - [Guides: Column filter](@/guides/columns/column-filter/column-filter.md)
1942
1985
  * - [Hooks: `afterFilter`](#afterfilter)
1943
1986
  * - [Options: `filters`](@/api/options.md#filters)
1944
1987
  * - [Plugins: `Filters`](@/api/filters.md)
@@ -1951,7 +1994,7 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
1951
1994
  'beforeFilter',
1952
1995
  /**
1953
1996
  * Fired by the [`Filters`](@/api/filters.md) plugin,
1954
- * after a [column filter](@/guides/columns/column-filter.md) gets applied.
1997
+ * after a [column filter](@/guides/columns/column-filter/column-filter.md) gets applied.
1955
1998
  *
1956
1999
  * [`afterFilter`](#afterfilter) takes one argument (`conditionsStack`), which is an array of objects.
1957
2000
  * Each object represents one of your [column filters](@/api/filters.md#addcondition),
@@ -1985,7 +2028,7 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
1985
2028
  * ```
1986
2029
  *
1987
2030
  * Read more:
1988
- * - [Guides: Column filter](@/guides/columns/column-filter.md)
2031
+ * - [Guides: Column filter](@/guides/columns/column-filter/column-filter.md)
1989
2032
  * - [Hooks: `beforeFilter`](#beforefilter)
1990
2033
  * - [Options: `filters`](@/api/options.md#filters)
1991
2034
  * - [Plugins: `Filters`](@/api/filters.md)
@@ -2005,7 +2048,7 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
2005
2048
  * This hook gets also fired on Handsontable's initialization, returning the addresses and values of all cells.
2006
2049
  *
2007
2050
  * Read more:
2008
- * - [Guides: Formula calculation](@/guides/formulas/formula-calculation.md)
2051
+ * - [Guides: Formula calculation](@/guides/formulas/formula-calculation/formula-calculation.md)
2009
2052
  * - [HyperFormula documentation: `valuesUpdated`](https://hyperformula.handsontable.com/api/interfaces/listeners.html#valuesupdated)
2010
2053
  *
2011
2054
  * @since 9.0.0
@@ -2070,9 +2113,9 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
2070
2113
  * @event Hooks#modifyColumnHeaderValue
2071
2114
  * @param {string} value A column header value.
2072
2115
  * @param {number} visualColumnIndex A visual column index.
2073
- * @param {number} [headerLevel=0] Header level index. Accepts positive (0 to n)
2074
- * and negative (-1 to -n) values. For positive values, 0 points to the
2075
- * topmost header. For negative values, -1 points to the bottom-most
2116
+ * @param {number} [headerLevel=0] Header level index. Accepts positive (`0` to `n`)
2117
+ * and negative (`-1` to `-n`) values. For positive values, `0` points to the
2118
+ * topmost header. For negative values, `-1` points to the bottom-most
2076
2119
  * header (the header closest to the cells).
2077
2120
  * @returns {string} The column header value to be updated.
2078
2121
  */
@@ -2094,7 +2137,7 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
2094
2137
  * @since 8.4.0
2095
2138
  * @param {Array} doneActions Stack of actions which may be undone.
2096
2139
  * @param {string} [source] String that identifies source of action
2097
- * ([list of all available sources](@/guides/getting-started/events-and-hooks.md#definition-for-source-argument)).
2140
+ * ([list of all available sources](@/guides/getting-started/events-and-hooks/events-and-hooks.md#definition-for-source-argument)).
2098
2141
  * @returns {*|boolean} If false is returned the action of changing undo stack is canceled.
2099
2142
  */
2100
2143
  'beforeUndoStackChange',
@@ -2159,6 +2202,14 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
2159
2202
  * @param {number} rowHeaderWidth Row header width.
2160
2203
  */
2161
2204
  'modifyRowHeaderWidth',
2205
+ /**
2206
+ * Fired when the focus of the selection is being modified (e.g. Moving the focus with the enter/tab keys).
2207
+ *
2208
+ * @since 14.3.0
2209
+ * @event Hooks#modifyTransformFocus
2210
+ * @param {CellCoords} delta Cell coords object declaring the delta of the new selection relative to the previous one.
2211
+ */
2212
+ 'modifyTransformFocus',
2162
2213
  /**
2163
2214
  * Fired when the start of the selection is being modified (e.g. Moving the selection with the arrow keys).
2164
2215
  *
@@ -2173,6 +2224,16 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
2173
2224
  * @param {CellCoords} delta Cell coords object declaring the delta of the new selection relative to the previous one.
2174
2225
  */
2175
2226
  'modifyTransformEnd',
2227
+ /**
2228
+ * Fired after the focus of the selection is being modified (e.g. Moving the focus with the enter/tab keys).
2229
+ *
2230
+ * @since 14.3.0
2231
+ * @event Hooks#afterModifyTransformFocus
2232
+ * @param {CellCoords} coords Coords of the freshly focused cell.
2233
+ * @param {number} rowTransformDir `-1` if trying to focus a cell with a negative row index. `0` otherwise.
2234
+ * @param {number} colTransformDir `-1` if trying to focus a cell with a negative column index. `0` otherwise.
2235
+ */
2236
+ 'afterModifyTransformFocus',
2176
2237
  /**
2177
2238
  * Fired after the start of the selection is being modified (e.g. Moving the selection with the arrow keys).
2178
2239
  *
@@ -2348,7 +2409,7 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
2348
2409
  * option is enabled.
2349
2410
  *
2350
2411
  * @event Hooks#beforeDropdownMenuShow
2351
- * @param {DropdownMenu} dropdownMenu The DropdownMenu instance.
2412
+ * @param {DropdownMenu} dropdownMenu The `DropdownMenu` instance.
2352
2413
  */
2353
2414
  'beforeDropdownMenuShow',
2354
2415
  /**
@@ -2356,7 +2417,7 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
2356
2417
  * option is enabled.
2357
2418
  *
2358
2419
  * @event Hooks#afterDropdownMenuShow
2359
- * @param {DropdownMenu} dropdownMenu The DropdownMenu instance.
2420
+ * @param {DropdownMenu} dropdownMenu The `DropdownMenu` instance.
2360
2421
  */
2361
2422
  'afterDropdownMenuShow',
2362
2423
  /**
@@ -2364,11 +2425,11 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
2364
2425
  * option is enabled.
2365
2426
  *
2366
2427
  * @event Hooks#afterDropdownMenuHide
2367
- * @param {DropdownMenu} instance The DropdownMenu instance.
2428
+ * @param {DropdownMenu} instance The `DropdownMenu` instance.
2368
2429
  */
2369
2430
  'afterDropdownMenuHide',
2370
2431
  /**
2371
- * Fired by {@link NestedRows} plugin before adding a children to the NestedRows structure. This hook is fired when
2432
+ * Fired by {@link NestedRows} plugin before adding a children to the `NestedRows` structure. This hook is fired when
2372
2433
  * {@link Options#nestedRows} option is enabled.
2373
2434
  *
2374
2435
  * @event Hooks#beforeAddChild
@@ -2378,7 +2439,7 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
2378
2439
  */
2379
2440
  'beforeAddChild',
2380
2441
  /**
2381
- * Fired by {@link NestedRows} plugin after adding a children to the NestedRows structure. This hook is fired when
2442
+ * Fired by {@link NestedRows} plugin after adding a children to the `NestedRows` structure. This hook is fired when
2382
2443
  * {@link Options#nestedRows} option is enabled.
2383
2444
  *
2384
2445
  * @event Hooks#afterAddChild
@@ -2885,7 +2946,7 @@ class Hooks {
2885
2946
  /**
2886
2947
  * Registers a hook name (adds it to the list of the known hook names). Used by plugins.
2887
2948
  * It is not necessary to call register, but if you use it, your plugin hook will be used returned by
2888
- * the `getRegistered` method. (which itself is used in the [demo](@/guides/getting-started/events-and-hooks.md)).
2949
+ * the `getRegistered` method. (which itself is used in the [demo](@/guides/getting-started/events-and-hooks/events-and-hooks.md)).
2889
2950
  *
2890
2951
  * @param {string} key The hook name.
2891
2952
  *