handsontable 0.0.0-next-08765b9-20230714 → 0.0.0-next-6b996e8-20230714

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of handsontable might be problematic. Click here for more details.

Files changed (296) hide show
  1. package/3rdparty/walkontable/src/{selection/border/border.js → border.js} +12 -7
  2. package/3rdparty/walkontable/src/{selection/border/border.mjs → border.mjs} +12 -7
  3. package/3rdparty/walkontable/src/cell/coords.d.ts +1 -6
  4. package/3rdparty/walkontable/src/cell/coords.js +11 -50
  5. package/3rdparty/walkontable/src/cell/coords.mjs +11 -50
  6. package/3rdparty/walkontable/src/cell/range.d.ts +2 -9
  7. package/3rdparty/walkontable/src/cell/range.js +7 -38
  8. package/3rdparty/walkontable/src/cell/range.mjs +7 -38
  9. package/3rdparty/walkontable/src/core/_base.js +3 -9
  10. package/3rdparty/walkontable/src/core/_base.mjs +3 -9
  11. package/3rdparty/walkontable/src/core/clone.js +2 -2
  12. package/3rdparty/walkontable/src/core/clone.mjs +2 -2
  13. package/3rdparty/walkontable/src/core/core.js +2 -3
  14. package/3rdparty/walkontable/src/core/core.mjs +2 -3
  15. package/3rdparty/walkontable/src/event.js +7 -7
  16. package/3rdparty/walkontable/src/event.mjs +7 -7
  17. package/3rdparty/walkontable/src/facade/core.js +2 -2
  18. package/3rdparty/walkontable/src/facade/core.mjs +2 -2
  19. package/3rdparty/walkontable/src/index.js +2 -10
  20. package/3rdparty/walkontable/src/index.mjs +2 -2
  21. package/3rdparty/walkontable/src/overlay/_base.js +1 -1
  22. package/3rdparty/walkontable/src/overlay/_base.mjs +1 -1
  23. package/3rdparty/walkontable/src/overlay/inlineStart.js +6 -2
  24. package/3rdparty/walkontable/src/overlay/inlineStart.mjs +6 -2
  25. package/3rdparty/walkontable/src/overlay/top.js +6 -2
  26. package/3rdparty/walkontable/src/overlay/top.mjs +6 -2
  27. package/3rdparty/walkontable/src/selection.js +295 -0
  28. package/3rdparty/walkontable/src/selection.mjs +290 -0
  29. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +0 -9
  30. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +0 -9
  31. package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +0 -9
  32. package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +0 -9
  33. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.js +0 -9
  34. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.mjs +0 -9
  35. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +0 -9
  36. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +0 -9
  37. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +0 -9
  38. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +0 -9
  39. package/3rdparty/walkontable/src/table.js +78 -6
  40. package/3rdparty/walkontable/src/table.mjs +79 -7
  41. package/base.js +2 -2
  42. package/base.mjs +2 -2
  43. package/common.d.ts +1 -1
  44. package/core.d.ts +3 -6
  45. package/core.js +290 -173
  46. package/core.mjs +290 -173
  47. package/dataMap/metaManager/metaSchema.js +0 -41
  48. package/dataMap/metaManager/metaSchema.mjs +0 -41
  49. package/dist/handsontable.css +3 -19
  50. package/dist/handsontable.full.css +3 -19
  51. package/dist/handsontable.full.js +5369 -8671
  52. package/dist/handsontable.full.min.css +3 -3
  53. package/dist/handsontable.full.min.js +25 -25
  54. package/dist/handsontable.js +8117 -11419
  55. package/dist/handsontable.min.css +3 -3
  56. package/dist/handsontable.min.js +19 -19
  57. package/editorManager.js +75 -11
  58. package/editorManager.mjs +74 -11
  59. package/editors/textEditor/textEditor.js +11 -3
  60. package/editors/textEditor/textEditor.mjs +12 -4
  61. package/helpers/mixed.js +1 -1
  62. package/helpers/mixed.mjs +1 -1
  63. package/helpers/number.d.ts +0 -1
  64. package/helpers/number.js +0 -18
  65. package/helpers/number.mjs +0 -17
  66. package/package.json +1 -1
  67. package/pluginHooks.d.ts +1 -7
  68. package/pluginHooks.js +1 -106
  69. package/pluginHooks.mjs +1 -106
  70. package/plugins/collapsibleColumns/collapsibleColumns.js +4 -58
  71. package/plugins/collapsibleColumns/collapsibleColumns.mjs +4 -58
  72. package/plugins/columnSorting/columnSorting.js +0 -38
  73. package/plugins/columnSorting/columnSorting.mjs +2 -38
  74. package/plugins/columnSorting/index.js +1 -3
  75. package/plugins/columnSorting/index.mjs +1 -1
  76. package/plugins/comments/commentEditor.js +0 -1
  77. package/plugins/comments/commentEditor.mjs +0 -1
  78. package/plugins/comments/comments.js +189 -251
  79. package/plugins/comments/comments.mjs +190 -250
  80. package/plugins/contextMenu/contextMenu.d.ts +1 -1
  81. package/plugins/contextMenu/contextMenu.js +30 -72
  82. package/plugins/contextMenu/contextMenu.mjs +31 -73
  83. package/plugins/contextMenu/predefinedItems/alignment.js +0 -7
  84. package/plugins/contextMenu/predefinedItems/alignment.mjs +0 -7
  85. package/plugins/contextMenu/predefinedItems/clearColumn.js +3 -5
  86. package/plugins/contextMenu/predefinedItems/clearColumn.mjs +3 -5
  87. package/plugins/contextMenu/predefinedItems/columnLeft.js +3 -5
  88. package/plugins/contextMenu/predefinedItems/columnLeft.mjs +3 -5
  89. package/plugins/contextMenu/predefinedItems/columnRight.js +3 -5
  90. package/plugins/contextMenu/predefinedItems/columnRight.mjs +3 -5
  91. package/plugins/contextMenu/predefinedItems/readOnly.js +0 -7
  92. package/plugins/contextMenu/predefinedItems/readOnly.mjs +0 -7
  93. package/plugins/contextMenu/predefinedItems/removeColumn.js +5 -7
  94. package/plugins/contextMenu/predefinedItems/removeColumn.mjs +3 -5
  95. package/plugins/contextMenu/predefinedItems/removeRow.js +5 -7
  96. package/plugins/contextMenu/predefinedItems/removeRow.mjs +3 -5
  97. package/plugins/contextMenu/predefinedItems/rowAbove.js +3 -5
  98. package/plugins/contextMenu/predefinedItems/rowAbove.mjs +3 -5
  99. package/plugins/contextMenu/predefinedItems/rowBelow.js +3 -5
  100. package/plugins/contextMenu/predefinedItems/rowBelow.mjs +3 -5
  101. package/plugins/contextMenu/utils.js +16 -28
  102. package/plugins/contextMenu/utils.mjs +15 -27
  103. package/plugins/copyPaste/contextMenuItem/copy.js +0 -7
  104. package/plugins/copyPaste/contextMenuItem/copy.mjs +0 -7
  105. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.js +1 -9
  106. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.mjs +1 -9
  107. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.js +1 -9
  108. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.mjs +1 -9
  109. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.js +1 -9
  110. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.mjs +1 -9
  111. package/plugins/copyPaste/contextMenuItem/cut.js +0 -7
  112. package/plugins/copyPaste/contextMenuItem/cut.mjs +0 -7
  113. package/plugins/copyPaste/copyPaste.js +2 -6
  114. package/plugins/copyPaste/copyPaste.mjs +2 -6
  115. package/plugins/customBorders/customBorders.js +20 -23
  116. package/plugins/customBorders/customBorders.mjs +21 -24
  117. package/plugins/dropdownMenu/dropdownMenu.d.ts +1 -1
  118. package/plugins/dropdownMenu/dropdownMenu.js +32 -89
  119. package/plugins/dropdownMenu/dropdownMenu.mjs +32 -89
  120. package/plugins/filters/filters.js +14 -31
  121. package/plugins/filters/filters.mjs +13 -30
  122. package/plugins/mergeCells/mergeCells.js +16 -5
  123. package/plugins/mergeCells/mergeCells.mjs +16 -5
  124. package/plugins/multiColumnSorting/multiColumnSorting.js +2 -37
  125. package/plugins/multiColumnSorting/multiColumnSorting.mjs +2 -37
  126. package/plugins/nestedHeaders/nestedHeaders.js +8 -121
  127. package/plugins/nestedHeaders/nestedHeaders.mjs +8 -121
  128. package/plugins/nestedHeaders/stateManager/index.js +0 -37
  129. package/plugins/nestedHeaders/stateManager/index.mjs +0 -37
  130. package/plugins/nestedRows/nestedRows.js +0 -41
  131. package/plugins/nestedRows/nestedRows.mjs +0 -41
  132. package/renderers/checkboxRenderer/checkboxRenderer.js +2 -2
  133. package/renderers/checkboxRenderer/checkboxRenderer.mjs +1 -1
  134. package/selection/highlight/constants.js +15 -0
  135. package/selection/highlight/constants.mjs +6 -0
  136. package/selection/highlight/highlight.js +71 -256
  137. package/selection/highlight/highlight.mjs +71 -250
  138. package/selection/highlight/types/activeHeader.js +8 -10
  139. package/selection/highlight/types/activeHeader.mjs +8 -10
  140. package/selection/highlight/types/area.js +18 -6
  141. package/selection/highlight/types/area.mjs +18 -6
  142. package/selection/highlight/types/{focus.js → cell.js} +7 -5
  143. package/selection/highlight/types/{focus.mjs → cell.mjs} +7 -5
  144. package/selection/highlight/types/customSelection.js +9 -7
  145. package/selection/highlight/types/customSelection.mjs +9 -7
  146. package/selection/highlight/types/fill.js +7 -5
  147. package/selection/highlight/types/fill.mjs +7 -5
  148. package/selection/highlight/types/header.js +18 -9
  149. package/selection/highlight/types/header.mjs +18 -9
  150. package/selection/highlight/types/index.js +35 -0
  151. package/selection/highlight/types/index.mjs +31 -0
  152. package/selection/highlight/visualSelection.js +27 -31
  153. package/selection/highlight/visualSelection.mjs +27 -31
  154. package/selection/index.js +7 -4
  155. package/selection/index.mjs +3 -2
  156. package/selection/mouseEventHandler.js +1 -1
  157. package/selection/mouseEventHandler.mjs +1 -1
  158. package/selection/range.js +8 -8
  159. package/selection/range.mjs +8 -8
  160. package/selection/selection.js +154 -290
  161. package/selection/selection.mjs +153 -287
  162. package/selection/transformation.js +90 -232
  163. package/selection/transformation.mjs +90 -232
  164. package/selection/utils.js +21 -15
  165. package/selection/utils.mjs +21 -16
  166. package/settings.d.ts +0 -2
  167. package/shortcuts/manager.js +0 -2
  168. package/shortcuts/manager.mjs +0 -2
  169. package/shortcuts/recorder.js +2 -2
  170. package/shortcuts/recorder.mjs +2 -2
  171. package/shortcuts/utils.js +5 -19
  172. package/shortcuts/utils.mjs +4 -18
  173. package/tableView.js +13 -67
  174. package/tableView.mjs +13 -67
  175. package/3rdparty/walkontable/src/selection/border/constants.js +0 -16
  176. package/3rdparty/walkontable/src/selection/border/constants.mjs +0 -12
  177. package/3rdparty/walkontable/src/selection/constants.js +0 -62
  178. package/3rdparty/walkontable/src/selection/constants.mjs +0 -51
  179. package/3rdparty/walkontable/src/selection/index.js +0 -26
  180. package/3rdparty/walkontable/src/selection/index.mjs +0 -5
  181. package/3rdparty/walkontable/src/selection/manager.js +0 -259
  182. package/3rdparty/walkontable/src/selection/manager.mjs +0 -254
  183. package/3rdparty/walkontable/src/selection/scanner.js +0 -270
  184. package/3rdparty/walkontable/src/selection/scanner.mjs +0 -267
  185. package/3rdparty/walkontable/src/selection/selection.js +0 -101
  186. package/3rdparty/walkontable/src/selection/selection.mjs +0 -96
  187. package/core/focusCatcher/focusDetector.js +0 -58
  188. package/core/focusCatcher/focusDetector.mjs +0 -54
  189. package/core/focusCatcher/index.js +0 -142
  190. package/core/focusCatcher/index.mjs +0 -138
  191. package/core/index.js +0 -9
  192. package/core/index.mjs +0 -1
  193. package/plugins/comments/contextMenuItem/addEditComment.js +0 -41
  194. package/plugins/comments/contextMenuItem/addEditComment.mjs +0 -35
  195. package/plugins/comments/contextMenuItem/readOnlyComment.js +0 -49
  196. package/plugins/comments/contextMenuItem/readOnlyComment.mjs +0 -43
  197. package/plugins/comments/contextMenuItem/removeComment.js +0 -38
  198. package/plugins/comments/contextMenuItem/removeComment.mjs +0 -32
  199. package/selection/highlight/types/areaLayered.js +0 -31
  200. package/selection/highlight/types/areaLayered.mjs +0 -26
  201. package/selection/highlight/types/column.js +0 -27
  202. package/selection/highlight/types/column.mjs +0 -22
  203. package/selection/highlight/types/row.js +0 -27
  204. package/selection/highlight/types/row.mjs +0 -22
  205. package/shortcutContexts/commands/editor/closeAndSave.js +0 -12
  206. package/shortcutContexts/commands/editor/closeAndSave.mjs +0 -8
  207. package/shortcutContexts/commands/editor/closeWithoutSaving.js +0 -12
  208. package/shortcutContexts/commands/editor/closeWithoutSaving.mjs +0 -8
  209. package/shortcutContexts/commands/editor/fastOpen.js +0 -16
  210. package/shortcutContexts/commands/editor/fastOpen.mjs +0 -12
  211. package/shortcutContexts/commands/editor/index.js +0 -16
  212. package/shortcutContexts/commands/editor/index.mjs +0 -12
  213. package/shortcutContexts/commands/editor/open.js +0 -27
  214. package/shortcutContexts/commands/editor/open.mjs +0 -23
  215. package/shortcutContexts/commands/emptySelectedCells.js +0 -11
  216. package/shortcutContexts/commands/emptySelectedCells.mjs +0 -7
  217. package/shortcutContexts/commands/extendCellsSelection/down.js +0 -15
  218. package/shortcutContexts/commands/extendCellsSelection/down.mjs +0 -11
  219. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +0 -21
  220. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +0 -17
  221. package/shortcutContexts/commands/extendCellsSelection/index.js +0 -26
  222. package/shortcutContexts/commands/extendCellsSelection/index.mjs +0 -22
  223. package/shortcutContexts/commands/extendCellsSelection/left.js +0 -15
  224. package/shortcutContexts/commands/extendCellsSelection/left.mjs +0 -11
  225. package/shortcutContexts/commands/extendCellsSelection/right.js +0 -15
  226. package/shortcutContexts/commands/extendCellsSelection/right.mjs +0 -11
  227. package/shortcutContexts/commands/extendCellsSelection/toColumns.js +0 -19
  228. package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +0 -15
  229. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +0 -29
  230. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +0 -25
  231. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +0 -19
  232. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +0 -15
  233. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +0 -19
  234. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +0 -15
  235. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +0 -29
  236. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +0 -25
  237. package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +0 -29
  238. package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +0 -25
  239. package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +0 -29
  240. package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +0 -25
  241. package/shortcutContexts/commands/extendCellsSelection/toRows.js +0 -19
  242. package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +0 -15
  243. package/shortcutContexts/commands/extendCellsSelection/up.js +0 -15
  244. package/shortcutContexts/commands/extendCellsSelection/up.mjs +0 -11
  245. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +0 -21
  246. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +0 -17
  247. package/shortcutContexts/commands/index.js +0 -35
  248. package/shortcutContexts/commands/index.mjs +0 -31
  249. package/shortcutContexts/commands/moveCellSelection/down.js +0 -13
  250. package/shortcutContexts/commands/moveCellSelection/down.mjs +0 -9
  251. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.js +0 -31
  252. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs +0 -27
  253. package/shortcutContexts/commands/moveCellSelection/index.js +0 -28
  254. package/shortcutContexts/commands/moveCellSelection/index.mjs +0 -24
  255. package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +0 -12
  256. package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +0 -8
  257. package/shortcutContexts/commands/moveCellSelection/inlineStart.js +0 -12
  258. package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +0 -8
  259. package/shortcutContexts/commands/moveCellSelection/left.js +0 -10
  260. package/shortcutContexts/commands/moveCellSelection/left.mjs +0 -6
  261. package/shortcutContexts/commands/moveCellSelection/right.js +0 -10
  262. package/shortcutContexts/commands/moveCellSelection/right.mjs +0 -6
  263. package/shortcutContexts/commands/moveCellSelection/toMostBottom.js +0 -17
  264. package/shortcutContexts/commands/moveCellSelection/toMostBottom.mjs +0 -13
  265. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.js +0 -18
  266. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.mjs +0 -14
  267. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.js +0 -14
  268. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.mjs +0 -10
  269. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.js +0 -17
  270. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.mjs +0 -13
  271. package/shortcutContexts/commands/moveCellSelection/toMostLeft.js +0 -19
  272. package/shortcutContexts/commands/moveCellSelection/toMostLeft.mjs +0 -15
  273. package/shortcutContexts/commands/moveCellSelection/toMostRight.js +0 -21
  274. package/shortcutContexts/commands/moveCellSelection/toMostRight.mjs +0 -17
  275. package/shortcutContexts/commands/moveCellSelection/toMostTop.js +0 -17
  276. package/shortcutContexts/commands/moveCellSelection/toMostTop.mjs +0 -13
  277. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.js +0 -19
  278. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.mjs +0 -15
  279. package/shortcutContexts/commands/moveCellSelection/up.js +0 -13
  280. package/shortcutContexts/commands/moveCellSelection/up.mjs +0 -9
  281. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.js +0 -31
  282. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs +0 -27
  283. package/shortcutContexts/commands/populateSelectedCellsData.js +0 -29
  284. package/shortcutContexts/commands/populateSelectedCellsData.mjs +0 -25
  285. package/shortcutContexts/commands/scrollToFocusedCell.js +0 -36
  286. package/shortcutContexts/commands/scrollToFocusedCell.mjs +0 -32
  287. package/shortcutContexts/commands/selectAll.js +0 -10
  288. package/shortcutContexts/commands/selectAll.mjs +0 -6
  289. package/shortcutContexts/constants.js +0 -13
  290. package/shortcutContexts/constants.mjs +0 -8
  291. package/shortcutContexts/editor.js +0 -25
  292. package/shortcutContexts/editor.mjs +0 -21
  293. package/shortcutContexts/grid.js +0 -163
  294. package/shortcutContexts/grid.mjs +0 -159
  295. package/shortcutContexts/index.js +0 -24
  296. package/shortcutContexts/index.mjs +0 -11
package/editorManager.js CHANGED
@@ -2,14 +2,16 @@
2
2
 
3
3
  exports.__esModule = true;
4
4
  var _unicode = require("./helpers/unicode");
5
- var _element = require("./helpers/dom/element");
6
5
  var _event = require("./helpers/dom/event");
6
+ var _element = require("./helpers/dom/element");
7
7
  var _registry = require("./editors/registry");
8
8
  var _eventManager = _interopRequireDefault(require("./eventManager"));
9
9
  var _mixed = require("./helpers/mixed");
10
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
11
  const SHORTCUTS_GROUP_NAVIGATION = 'editorManager.navigation';
12
12
  exports.SHORTCUTS_GROUP_NAVIGATION = SHORTCUTS_GROUP_NAVIGATION;
13
+ const SHORTCUTS_GROUP_EDITOR = 'editorManager.handlingEditor';
14
+ exports.SHORTCUTS_GROUP_EDITOR = SHORTCUTS_GROUP_EDITOR;
13
15
  class EditorManager {
14
16
  /**
15
17
  * @param {Core} instance The Handsontable instance.
@@ -72,6 +74,9 @@ class EditorManager {
72
74
  * @type {object}
73
75
  */
74
76
  this.cellProperties = void 0;
77
+ const shortcutManager = this.instance.getShortcutManager();
78
+ shortcutManager.addContext('editor');
79
+ this.registerShortcuts();
75
80
  this.instance.addHook('afterDocumentKeyDown', event => this.onAfterDocumentKeyDown(event));
76
81
 
77
82
  // Open editor when text composition is started (IME editor)
@@ -83,6 +88,62 @@ class EditorManager {
83
88
  this.instance.view._wt.update('onCellDblClick', (event, coords, elem) => this.onCellDblClick(event, coords, elem));
84
89
  }
85
90
 
91
+ /**
92
+ * Register shortcuts responsible for handling some actions related to an editor.
93
+ *
94
+ * @private
95
+ */
96
+ registerShortcuts() {
97
+ const shortcutManager = this.instance.getShortcutManager();
98
+ const gridContext = shortcutManager.getContext('grid');
99
+ const editorContext = shortcutManager.getContext('editor');
100
+ const config = {
101
+ group: SHORTCUTS_GROUP_EDITOR
102
+ };
103
+ editorContext.addShortcuts([{
104
+ keys: [['Enter'], ['Enter', 'Shift'], ['Enter', 'Control/Meta'], ['Enter', 'Control/Meta', 'Shift']],
105
+ callback: (event, keys) => {
106
+ this.closeEditorAndSaveChanges(shortcutManager.isCtrlPressed());
107
+ this.moveSelectionAfterEnter(keys.includes('shift'));
108
+ }
109
+ }, {
110
+ keys: [['Escape'], ['Escape', 'Control/Meta']],
111
+ callback: () => {
112
+ this.closeEditorAndRestoreOriginalValue(shortcutManager.isCtrlPressed());
113
+ this.activeEditor.focus();
114
+ }
115
+ }], config);
116
+ gridContext.addShortcuts([{
117
+ keys: [['F2']],
118
+ callback: event => {
119
+ this.openEditor(null, event, true);
120
+ }
121
+ }, {
122
+ keys: [['Backspace'], ['Delete']],
123
+ callback: () => {
124
+ this.instance.emptySelectedCells();
125
+ this.prepareEditor();
126
+ }
127
+ }, {
128
+ keys: [['Enter'], ['Enter', 'Shift']],
129
+ callback: (event, keys) => {
130
+ if (this.instance.getSettings().enterBeginsEditing) {
131
+ if (this.cellProperties.readOnly) {
132
+ this.moveSelectionAfterEnter();
133
+ } else {
134
+ this.openEditor(null, event, true);
135
+ }
136
+ } else {
137
+ this.moveSelectionAfterEnter(keys.includes('shift'));
138
+ }
139
+ (0, _event.stopImmediatePropagation)(event); // required by HandsontableEditor
140
+ }
141
+ }], {
142
+ ...config,
143
+ runOnlyIf: () => (0, _mixed.isDefined)(this.instance.getSelected())
144
+ });
145
+ }
146
+
86
147
  /**
87
148
  * Lock the editor from being prepared and closed. Locking the editor prevents its closing and
88
149
  * reinitialized after selecting the new cell. This feature is necessary for a mobile editor.
@@ -135,16 +196,10 @@ class EditorManager {
135
196
  });
136
197
  return;
137
198
  }
138
- const {
139
- highlight
140
- } = this.instance.getSelectedRangeLast();
141
- if (highlight.isHeader()) {
142
- return;
143
- }
144
199
  const {
145
200
  row,
146
201
  col
147
- } = highlight;
202
+ } = this.instance.getSelectedRangeLast().highlight;
148
203
  const modifiedCellCoords = this.instance.runHooks('modifyGetCellCoords', row, col);
149
204
  let visualRowToCheck = row;
150
205
  let visualColumnToCheck = col;
@@ -208,7 +263,14 @@ class EditorManager {
208
263
  return;
209
264
  }
210
265
  if (!this.activeEditor) {
211
- this.instance.scrollToFocusedCell();
266
+ const {
267
+ row,
268
+ col
269
+ } = this.instance.getSelectedRangeLast().highlight;
270
+ const renderableRowIndex = this.instance.rowIndexMapper.getRenderableFromVisualIndex(row);
271
+ const renderableColumnIndex = this.instance.columnIndexMapper.getRenderableFromVisualIndex(col);
272
+ this.instance.view.scrollViewport(this.instance._createCellCoords(renderableRowIndex, renderableColumnIndex));
273
+ this.instance.view.render();
212
274
  this.prepareEditor();
213
275
  }
214
276
  if (this.activeEditor) {
@@ -312,13 +374,15 @@ class EditorManager {
312
374
  * @param {KeyboardEvent} event The keyboard event object.
313
375
  */
314
376
  onAfterDocumentKeyDown(event) {
315
- const selection = this.instance.getSelectedRangeLast();
316
- if (!this.instance.isListening() || !selection || selection.highlight.isHeader() || (0, _event.isImmediatePropagationStopped)(event)) {
377
+ if (!this.instance.isListening()) {
317
378
  return;
318
379
  }
319
380
  const {
320
381
  keyCode
321
382
  } = event;
383
+ if (!this.selection.isSelected()) {
384
+ return;
385
+ }
322
386
 
323
387
  // catch CTRL but not right ALT (which in some systems triggers ALT+CTRL)
324
388
  const isCtrlPressed = (event.ctrlKey || event.metaKey) && !event.altKey;
package/editorManager.mjs CHANGED
@@ -1,10 +1,11 @@
1
1
  import { isFunctionKey, isCtrlMetaKey } from "./helpers/unicode.mjs";
2
+ import { stopImmediatePropagation } from "./helpers/dom/event.mjs";
2
3
  import { isOutsideInput } from "./helpers/dom/element.mjs";
3
- import { isImmediatePropagationStopped } from "./helpers/dom/event.mjs";
4
4
  import { getEditorInstance } from "./editors/registry.mjs";
5
5
  import EventManager from "./eventManager.mjs";
6
6
  import { isDefined } from "./helpers/mixed.mjs";
7
7
  export const SHORTCUTS_GROUP_NAVIGATION = 'editorManager.navigation';
8
+ export const SHORTCUTS_GROUP_EDITOR = 'editorManager.handlingEditor';
8
9
  class EditorManager {
9
10
  /**
10
11
  * @param {Core} instance The Handsontable instance.
@@ -67,6 +68,9 @@ class EditorManager {
67
68
  * @type {object}
68
69
  */
69
70
  this.cellProperties = void 0;
71
+ const shortcutManager = this.instance.getShortcutManager();
72
+ shortcutManager.addContext('editor');
73
+ this.registerShortcuts();
70
74
  this.instance.addHook('afterDocumentKeyDown', event => this.onAfterDocumentKeyDown(event));
71
75
 
72
76
  // Open editor when text composition is started (IME editor)
@@ -78,6 +82,62 @@ class EditorManager {
78
82
  this.instance.view._wt.update('onCellDblClick', (event, coords, elem) => this.onCellDblClick(event, coords, elem));
79
83
  }
80
84
 
85
+ /**
86
+ * Register shortcuts responsible for handling some actions related to an editor.
87
+ *
88
+ * @private
89
+ */
90
+ registerShortcuts() {
91
+ const shortcutManager = this.instance.getShortcutManager();
92
+ const gridContext = shortcutManager.getContext('grid');
93
+ const editorContext = shortcutManager.getContext('editor');
94
+ const config = {
95
+ group: SHORTCUTS_GROUP_EDITOR
96
+ };
97
+ editorContext.addShortcuts([{
98
+ keys: [['Enter'], ['Enter', 'Shift'], ['Enter', 'Control/Meta'], ['Enter', 'Control/Meta', 'Shift']],
99
+ callback: (event, keys) => {
100
+ this.closeEditorAndSaveChanges(shortcutManager.isCtrlPressed());
101
+ this.moveSelectionAfterEnter(keys.includes('shift'));
102
+ }
103
+ }, {
104
+ keys: [['Escape'], ['Escape', 'Control/Meta']],
105
+ callback: () => {
106
+ this.closeEditorAndRestoreOriginalValue(shortcutManager.isCtrlPressed());
107
+ this.activeEditor.focus();
108
+ }
109
+ }], config);
110
+ gridContext.addShortcuts([{
111
+ keys: [['F2']],
112
+ callback: event => {
113
+ this.openEditor(null, event, true);
114
+ }
115
+ }, {
116
+ keys: [['Backspace'], ['Delete']],
117
+ callback: () => {
118
+ this.instance.emptySelectedCells();
119
+ this.prepareEditor();
120
+ }
121
+ }, {
122
+ keys: [['Enter'], ['Enter', 'Shift']],
123
+ callback: (event, keys) => {
124
+ if (this.instance.getSettings().enterBeginsEditing) {
125
+ if (this.cellProperties.readOnly) {
126
+ this.moveSelectionAfterEnter();
127
+ } else {
128
+ this.openEditor(null, event, true);
129
+ }
130
+ } else {
131
+ this.moveSelectionAfterEnter(keys.includes('shift'));
132
+ }
133
+ stopImmediatePropagation(event); // required by HandsontableEditor
134
+ }
135
+ }], {
136
+ ...config,
137
+ runOnlyIf: () => isDefined(this.instance.getSelected())
138
+ });
139
+ }
140
+
81
141
  /**
82
142
  * Lock the editor from being prepared and closed. Locking the editor prevents its closing and
83
143
  * reinitialized after selecting the new cell. This feature is necessary for a mobile editor.
@@ -130,16 +190,10 @@ class EditorManager {
130
190
  });
131
191
  return;
132
192
  }
133
- const {
134
- highlight
135
- } = this.instance.getSelectedRangeLast();
136
- if (highlight.isHeader()) {
137
- return;
138
- }
139
193
  const {
140
194
  row,
141
195
  col
142
- } = highlight;
196
+ } = this.instance.getSelectedRangeLast().highlight;
143
197
  const modifiedCellCoords = this.instance.runHooks('modifyGetCellCoords', row, col);
144
198
  let visualRowToCheck = row;
145
199
  let visualColumnToCheck = col;
@@ -203,7 +257,14 @@ class EditorManager {
203
257
  return;
204
258
  }
205
259
  if (!this.activeEditor) {
206
- this.instance.scrollToFocusedCell();
260
+ const {
261
+ row,
262
+ col
263
+ } = this.instance.getSelectedRangeLast().highlight;
264
+ const renderableRowIndex = this.instance.rowIndexMapper.getRenderableFromVisualIndex(row);
265
+ const renderableColumnIndex = this.instance.columnIndexMapper.getRenderableFromVisualIndex(col);
266
+ this.instance.view.scrollViewport(this.instance._createCellCoords(renderableRowIndex, renderableColumnIndex));
267
+ this.instance.view.render();
207
268
  this.prepareEditor();
208
269
  }
209
270
  if (this.activeEditor) {
@@ -307,13 +368,15 @@ class EditorManager {
307
368
  * @param {KeyboardEvent} event The keyboard event object.
308
369
  */
309
370
  onAfterDocumentKeyDown(event) {
310
- const selection = this.instance.getSelectedRangeLast();
311
- if (!this.instance.isListening() || !selection || selection.highlight.isHeader() || isImmediatePropagationStopped(event)) {
371
+ if (!this.instance.isListening()) {
312
372
  return;
313
373
  }
314
374
  const {
315
375
  keyCode
316
376
  } = event;
377
+ if (!this.selection.isSelected()) {
378
+ return;
379
+ }
317
380
 
318
381
  // catch CTRL but not right ALT (which in some systems triggers ALT+CTRL)
319
382
  const isCtrlPressed = (event.ctrlKey || event.metaKey) && !event.altKey;
@@ -416,7 +416,9 @@ class TextEditor extends _baseEditor.BaseEditor {
416
416
  runOnlyIf: event => !this.hot.selection.isMultiple() &&
417
417
  // We trigger a data population for multiple selection.
418
418
  // catch CTRL but not right ALT (which in some systems triggers ALT+CTRL)
419
- !event.altKey
419
+ !event.altKey,
420
+ relativeToGroup: _editorManager.SHORTCUTS_GROUP_EDITOR,
421
+ position: 'before'
420
422
  }, {
421
423
  keys: [['Meta', 'Enter']],
422
424
  callback: () => {
@@ -424,13 +426,19 @@ class TextEditor extends _baseEditor.BaseEditor {
424
426
  return false; // Will block closing editor.
425
427
  },
426
428
 
427
- runOnlyIf: () => !this.hot.selection.isMultiple() // We trigger a data population for multiple selection.
429
+ runOnlyIf: () => !this.hot.selection.isMultiple(),
430
+ // We trigger a data population for multiple selection.
431
+ relativeToGroup: _editorManager.SHORTCUTS_GROUP_EDITOR,
432
+ position: 'before'
428
433
  }, {
429
434
  keys: [['Alt', 'Enter']],
430
435
  callback: () => {
431
436
  insertNewLine();
432
437
  return false; // Will block closing editor.
433
- }
438
+ },
439
+
440
+ relativeToGroup: _editorManager.SHORTCUTS_GROUP_EDITOR,
441
+ position: 'before'
434
442
  }, {
435
443
  // TODO: Duplicated part of code (callback to shortcut)
436
444
  keys: [['PageUp']],
@@ -6,7 +6,7 @@ import { rangeEach } from "../../helpers/number.mjs";
6
6
  import { KEY_CODES } from "../../helpers/unicode.mjs";
7
7
  import { autoResize } from "../../3rdparty/autoResize/index.mjs";
8
8
  import { isDefined } from "../../helpers/mixed.mjs";
9
- import { SHORTCUTS_GROUP_NAVIGATION } from "../../editorManager.mjs";
9
+ import { SHORTCUTS_GROUP_NAVIGATION, SHORTCUTS_GROUP_EDITOR as EDITOR_MANAGER_GROUP } from "../../editorManager.mjs";
10
10
  import { SHORTCUTS_GROUP_EDITOR } from "../baseEditor/baseEditor.mjs";
11
11
  import { updateCaretPosition } from "./caretPositioner.mjs";
12
12
  const EDITOR_VISIBLE_CLASS_NAME = 'ht_editor_visible';
@@ -411,7 +411,9 @@ export class TextEditor extends BaseEditor {
411
411
  runOnlyIf: event => !this.hot.selection.isMultiple() &&
412
412
  // We trigger a data population for multiple selection.
413
413
  // catch CTRL but not right ALT (which in some systems triggers ALT+CTRL)
414
- !event.altKey
414
+ !event.altKey,
415
+ relativeToGroup: EDITOR_MANAGER_GROUP,
416
+ position: 'before'
415
417
  }, {
416
418
  keys: [['Meta', 'Enter']],
417
419
  callback: () => {
@@ -419,13 +421,19 @@ export class TextEditor extends BaseEditor {
419
421
  return false; // Will block closing editor.
420
422
  },
421
423
 
422
- runOnlyIf: () => !this.hot.selection.isMultiple() // We trigger a data population for multiple selection.
424
+ runOnlyIf: () => !this.hot.selection.isMultiple(),
425
+ // We trigger a data population for multiple selection.
426
+ relativeToGroup: EDITOR_MANAGER_GROUP,
427
+ position: 'before'
423
428
  }, {
424
429
  keys: [['Alt', 'Enter']],
425
430
  callback: () => {
426
431
  insertNewLine();
427
432
  return false; // Will block closing editor.
428
- }
433
+ },
434
+
435
+ relativeToGroup: EDITOR_MANAGER_GROUP,
436
+ position: 'before'
429
437
  }, {
430
438
  // TODO: Duplicated part of code (callback to shortcut)
431
439
  keys: [['PageUp']],
package/helpers/mixed.js CHANGED
@@ -134,7 +134,7 @@ const domMessages = {
134
134
  function _injectProductInfo(key, element) {
135
135
  const hasValidType = !isEmpty(key);
136
136
  const isNonCommercial = typeof key === 'string' && key.toLowerCase() === 'non-commercial-and-evaluation';
137
- const hotVersion = "0.0.0-next-08765b9-20230714";
137
+ const hotVersion = "0.0.0-next-6b996e8-20230714";
138
138
  let keyValidityDate;
139
139
  let consoleMessageState = 'invalid';
140
140
  let domMessageState = 'invalid';
package/helpers/mixed.mjs CHANGED
@@ -124,7 +124,7 @@ const domMessages = {
124
124
  export function _injectProductInfo(key, element) {
125
125
  const hasValidType = !isEmpty(key);
126
126
  const isNonCommercial = typeof key === 'string' && key.toLowerCase() === 'non-commercial-and-evaluation';
127
- const hotVersion = "0.0.0-next-08765b9-20230714";
127
+ const hotVersion = "0.0.0-next-6b996e8-20230714";
128
128
  let keyValidityDate;
129
129
  let consoleMessageState = 'invalid';
130
130
  let domMessageState = 'invalid';
@@ -3,4 +3,3 @@ export function isNumericLike(value: any): boolean;
3
3
  export function rangeEach(rangeFrom: number, rangeTo: number, iteratee: (index: number) => void): void;
4
4
  export function rangeEachReverse(rangeFrom: number, rangeTo: number, iteratee: (index: number) => void): void;
5
5
  export function valueAccordingPercent(value: number, percent: string | number): number;
6
- export function clamp(value: number, minValue: number, maxValue: number): number;
package/helpers/number.js CHANGED
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
 
3
3
  exports.__esModule = true;
4
- exports.clamp = clamp;
5
4
  exports.isNumeric = isNumeric;
6
5
  exports.isNumericLike = isNumericLike;
7
6
  exports.rangeEach = rangeEach;
@@ -112,21 +111,4 @@ function valueAccordingPercent(value, percent) {
112
111
  percent = parseInt(percent.toString().replace('%', ''), 10);
113
112
  percent = isNaN(percent) ? 0 : percent;
114
113
  return parseInt(value * percent / 100, 10);
115
- }
116
-
117
- /**
118
- * Clamps the value between min and max.
119
- *
120
- * @param {number} value The base number value.
121
- * @param {number} minValue The max number value.
122
- * @param {number} maxValue The min number value.
123
- * @returns {number}
124
- */
125
- function clamp(value, minValue, maxValue) {
126
- if (Math.min(value, minValue) === value) {
127
- return minValue;
128
- } else if (Math.max(value, maxValue) === value) {
129
- return maxValue;
130
- }
131
- return value;
132
114
  }
@@ -103,21 +103,4 @@ export function valueAccordingPercent(value, percent) {
103
103
  percent = parseInt(percent.toString().replace('%', ''), 10);
104
104
  percent = isNaN(percent) ? 0 : percent;
105
105
  return parseInt(value * percent / 100, 10);
106
- }
107
-
108
- /**
109
- * Clamps the value between min and max.
110
- *
111
- * @param {number} value The base number value.
112
- * @param {number} minValue The max number value.
113
- * @param {number} maxValue The min number value.
114
- * @returns {number}
115
- */
116
- export function clamp(value, minValue, maxValue) {
117
- if (Math.min(value, minValue) === value) {
118
- return minValue;
119
- } else if (Math.max(value, maxValue) === value) {
120
- return maxValue;
121
- }
122
- return value;
123
106
  }
package/package.json CHANGED
@@ -10,7 +10,7 @@
10
10
  "url": "https://github.com/handsontable/handsontable/issues"
11
11
  },
12
12
  "author": "Handsoncode <hello@handsontable.com>",
13
- "version": "0.0.0-next-08765b9-20230714",
13
+ "version": "0.0.0-next-6b996e8-20230714",
14
14
  "main": "index",
15
15
  "module": "index.mjs",
16
16
  "jsnext:main": "index.mjs",
package/pluginHooks.d.ts CHANGED
@@ -110,8 +110,8 @@ export interface Events {
110
110
  afterOnCellCornerDblClick?: (event: MouseEvent) => void;
111
111
  afterOnCellCornerMouseDown?: (event: MouseEvent) => void;
112
112
  afterOnCellMouseDown?: (event: MouseEvent, coords: CellCoords, TD: HTMLTableCellElement) => void;
113
- afterOnCellMouseOut?: (event: MouseEvent, coords: CellCoords, TD: HTMLTableCellElement) => void;
114
113
  afterOnCellMouseOver?: (event: MouseEvent, coords: CellCoords, TD: HTMLTableCellElement) => void;
114
+ afterOnCellMouseOut?: (event: MouseEvent, coords: CellCoords, TD: HTMLTableCellElement) => void;
115
115
  afterOnCellMouseUp?: (event: MouseEvent, coords: CellCoords, TD: HTMLTableCellElement) => void;
116
116
  afterPaste?: (data: CellValue[][], coords: RangeType[]) => void;
117
117
  afterPluginsInitialized?: () => void;
@@ -128,13 +128,10 @@ export interface Events {
128
128
  afterRowSequenceChange?: (source: 'init' | 'move' | 'insert' | 'remove' | 'update') => void;
129
129
  afterScrollHorizontally?: () => void;
130
130
  afterScrollVertically?: () => void;
131
- afterScroll?: () => void;
132
- afterSelectColumns?: (from: CellCoords, to: CellCoords, highlight: CellCoords) => void;
133
131
  afterSelection?: (row: number, column: number, row2: number, column2: number, preventScrolling: { value: boolean }, selectionLayerLevel: number) => void;
134
132
  afterSelectionByProp?: (row: number, prop: string, row2: number, prop2: string, preventScrolling: { value: boolean }, selectionLayerLevel: number) => void;
135
133
  afterSelectionEnd?: (row: number, column: number, row2: number, column2: number, selectionLayerLevel: number) => void;
136
134
  afterSelectionEndByProp?: (row: number, prop: string, row2: number, prop2: string, selectionLayerLevel: number) => void;
137
- afterSelectRows?: (from: CellCoords, to: CellCoords, highlight: CellCoords) => void;
138
135
  afterSetCellMeta?: (row: number, column: number, key: string, value: any) => void;
139
136
  afterSetDataAtCell?: (changes: CellChange[], source?: ChangeSource) => void;
140
137
  afterSetDataAtRowProp?: (changes: CellChange[], source?: ChangeSource) => void;
@@ -208,8 +205,6 @@ export interface Events {
208
205
  beforeRenderer?: (TD: HTMLTableCellElement, row: number, column: number, prop: string | number, value: CellValue, cellProperties: CellProperties) => void;
209
206
  beforeRowMove?: (movedRows: number[], finalIndex: number, dropIndex: number | undefined, movePossible: boolean) => void;
210
207
  beforeRowResize?: (newSize: number, row: number, isDoubleClick: boolean) => number | void;
211
- beforeSelectColumns?: (from: CellCoords, to: CellCoords, highlight: CellCoords) => void;
212
- beforeSelectRows?: (from: CellCoords, to: CellCoords, highlight: CellCoords) => void;
213
208
  beforeSetCellMeta?: (row: number, col: number, key: string, value: any) => boolean | void;
214
209
  beforeSetRangeEnd?: (coords: CellCoords) => void;
215
210
  beforeSetRangeStart?: (coords: CellCoords) => void;
@@ -237,7 +232,6 @@ export interface Events {
237
232
  modifyColWidth?: (width: number, column: number) => void;
238
233
  modifyCopyableRange?: (copyableRanges: RangeType[]) => void;
239
234
  modifyData?: (row: number, column: number, valueHolder: { value: CellValue }, ioMode: 'get' | 'set') => void;
240
- modifyFocusOnTabNavigation?: (tabActivationDir: 'from_above' | 'from_below', visualCoords: CellCoords) => void;
241
235
  modifyGetCellCoords?: (row: number, column: number, topmost: boolean) => void | [number, number] | [number, number, number, number];
242
236
  modifyRowData?: (row: number) => void;
243
237
  modifyRowHeader?: (row: number) => void;
package/pluginHooks.js CHANGED
@@ -554,13 +554,6 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
554
554
  * @event Hooks#afterScrollVertically
555
555
  */
556
556
  'afterScrollVertically',
557
- /**
558
- * Fired after the vertical or horizontal scroll event.
559
- *
560
- * @since 14.0.0
561
- * @event Hooks#afterScroll
562
- */
563
- 'afterScroll',
564
557
  /**
565
558
  * Fired after one or more cells are selected (e.g. During mouse move).
566
559
  *
@@ -664,94 +657,6 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
664
657
  * @param {number} selectionLayerLevel The number which indicates what selection layer is currently modified.
665
658
  */
666
659
  'afterSelectionEndByProp',
667
- /**
668
- * Fired before one or more columns are selected (e.g. During mouse header click or {@link Core#selectColumns} API call).
669
- *
670
- * @since 14.0.0
671
- * @event Hooks#beforeSelectColumns
672
- * @param {CellCoords} from Selection start coords object.
673
- * @param {CellCoords} to Selection end coords object.
674
- * @param {CellCoords} highlight Selection cell focus coords object.
675
- * @example
676
- * ::: only-for javascript
677
- * ```js
678
- * new Handsontable(element, {
679
- * beforeSelectColumns: (from, to, highlight) => {
680
- * // Extend the column selection by one column left and one column right.
681
- * from.col = Math.max(from.col - 1, 0);
682
- * to.col = Math.min(to.col + 1, this.countCols() - 1);
683
- * }
684
- * })
685
- * ```
686
- * :::
687
- *
688
- * ::: only-for react
689
- * ```jsx
690
- * <HotTable
691
- * beforeSelectColumns={(from, to, highlight) => {
692
- * // Extend the column selection by one column left and one column right.
693
- * from.col = Math.max(from.col - 1, 0);
694
- * to.col = Math.min(to.col + 1, this.countCols() - 1);
695
- * }}
696
- * />
697
- * ```
698
- * :::
699
- */
700
- 'beforeSelectColumns',
701
- /**
702
- * Fired after one or more columns are selected (e.g. During mouse header click or {@link Core#selectColumns} API call).
703
- *
704
- * @since 14.0.0
705
- * @event Hooks#afterSelectColumns
706
- * @param {CellCoords} from Selection start coords object.
707
- * @param {CellCoords} to Selection end coords object.
708
- * @param {CellCoords} highlight Selection cell focus coords object.
709
- */
710
- 'afterSelectColumns',
711
- /**
712
- * Fired before one or more rows are selected (e.g. During mouse header click or {@link Core#selectRows} API call).
713
- *
714
- * @since 14.0.0
715
- * @event Hooks#beforeSelectRows
716
- * @param {CellCoords} from Selection start coords object.
717
- * @param {CellCoords} to Selection end coords object.
718
- * @param {CellCoords} highlight Selection cell focus coords object.
719
- * @example
720
- * ::: only-for javascript
721
- * ```js
722
- * new Handsontable(element, {
723
- * beforeSelectRows: (from, to, highlight) => {
724
- * // Extend the row selection by one row up and one row bottom more.
725
- * from.row = Math.max(from.row - 1, 0);
726
- * to.row = Math.min(to.row + 1, this.countRows() - 1);
727
- * }
728
- * })
729
- * ```
730
- * :::
731
- *
732
- * ::: only-for react
733
- * ```jsx
734
- * <HotTable
735
- * beforeSelectRows={(from, to, highlight) => {
736
- * // Extend the row selection by one row up and one row bottom more.
737
- * from.row = Math.max(from.row - 1, 0);
738
- * to.row = Math.min(to.row + 1, this.countRows() - 1);
739
- * }}
740
- * />
741
- * ```
742
- * :::
743
- */
744
- 'beforeSelectRows',
745
- /**
746
- * Fired after one or more rows are selected (e.g. During mouse header click or {@link Core#selectRows} API call).
747
- *
748
- * @since 14.0.0
749
- * @event Hooks#afterSelectRows
750
- * @param {CellCoords} from Selection start coords object.
751
- * @param {CellCoords} to Selection end coords object.
752
- * @param {CellCoords} highlight Selection cell focus coords object.
753
- */
754
- 'afterSelectRows',
755
660
  /**
756
661
  * Fired after cell meta is changed.
757
662
  *
@@ -1320,16 +1225,6 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
1320
1225
  * @returns {undefined|number[]}
1321
1226
  */
1322
1227
  'modifyGetCellCoords',
1323
- /**
1324
- * Used to modify the cell coordinates when the table is activated (going into the listen mode).
1325
- *
1326
- * @event Hooks#modifyFocusOnTabNavigation
1327
- * @since 14.0.0
1328
- * @param {'from_above' | 'from_below'} tabActivationDir The browsers Tab navigation direction. Depending on
1329
- * whether the user activated the table from the element above or below, another cell can be selected.
1330
- * @param {CellCoords} visualCoords The coords that will be used to select a cell.
1331
- */
1332
- 'modifyFocusOnTabNavigation',
1333
1228
  /**
1334
1229
  * Allows modify the visual row index that is used to retrieve the row header element (TH) before it's
1335
1230
  * highlighted (proper CSS class names are added). Modifying the visual row index allows building a custom
@@ -2487,7 +2382,7 @@ const REMOVED_HOOKS = new Map([['modifyRow', '8.0.0'], ['modifyCol', '8.0.0'], [
2487
2382
  * @type {Map<string, string>}
2488
2383
  */
2489
2384
  /* eslint-enable jsdoc/require-description-complete-sentence */
2490
- const DEPRECATED_HOOKS = new Map([['beforeRemoveCellClassNames', 'The hook "beforeRemoveCellClassNames" is deprecated and will be removed in the next major release.']]);
2385
+ const DEPRECATED_HOOKS = new Map([]);
2491
2386
  class Hooks {
2492
2387
  static getSingleton() {
2493
2388
  return getGlobalSingleton();