handsontable 0.0.0-next-010265d-20231005 → 0.0.0-next-9379dd1-20231020

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 (414) hide show
  1. package/3rdparty/walkontable/src/cell/coords.d.ts +6 -1
  2. package/3rdparty/walkontable/src/cell/coords.js +50 -11
  3. package/3rdparty/walkontable/src/cell/coords.mjs +50 -11
  4. package/3rdparty/walkontable/src/cell/range.d.ts +9 -2
  5. package/3rdparty/walkontable/src/cell/range.js +38 -7
  6. package/3rdparty/walkontable/src/cell/range.mjs +38 -7
  7. package/3rdparty/walkontable/src/core/_base.js +9 -3
  8. package/3rdparty/walkontable/src/core/_base.mjs +9 -3
  9. package/3rdparty/walkontable/src/core/clone.js +2 -2
  10. package/3rdparty/walkontable/src/core/clone.mjs +2 -2
  11. package/3rdparty/walkontable/src/core/core.js +3 -2
  12. package/3rdparty/walkontable/src/core/core.mjs +3 -2
  13. package/3rdparty/walkontable/src/event.js +12 -10
  14. package/3rdparty/walkontable/src/event.mjs +12 -10
  15. package/3rdparty/walkontable/src/facade/core.js +2 -2
  16. package/3rdparty/walkontable/src/facade/core.mjs +2 -2
  17. package/3rdparty/walkontable/src/index.js +10 -2
  18. package/3rdparty/walkontable/src/index.mjs +2 -2
  19. package/3rdparty/walkontable/src/overlay/_base.js +13 -2
  20. package/3rdparty/walkontable/src/overlay/_base.mjs +14 -3
  21. package/3rdparty/walkontable/src/overlay/inlineStart.js +2 -6
  22. package/3rdparty/walkontable/src/overlay/inlineStart.mjs +2 -6
  23. package/3rdparty/walkontable/src/overlay/top.js +2 -6
  24. package/3rdparty/walkontable/src/overlay/top.mjs +2 -6
  25. package/3rdparty/walkontable/src/renderer/cells.js +10 -0
  26. package/3rdparty/walkontable/src/renderer/cells.mjs +11 -1
  27. package/3rdparty/walkontable/src/renderer/columnHeaders.js +10 -0
  28. package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +11 -1
  29. package/3rdparty/walkontable/src/renderer/rowHeaders.js +5 -0
  30. package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +5 -0
  31. package/3rdparty/walkontable/src/renderer/rows.js +13 -0
  32. package/3rdparty/walkontable/src/renderer/rows.mjs +13 -0
  33. package/3rdparty/walkontable/src/renderer/table.js +9 -0
  34. package/3rdparty/walkontable/src/renderer/table.mjs +9 -0
  35. package/3rdparty/walkontable/src/scroll.js +2 -0
  36. package/3rdparty/walkontable/src/scroll.mjs +2 -0
  37. package/3rdparty/walkontable/src/{border.js → selection/border/border.js} +7 -12
  38. package/3rdparty/walkontable/src/{border.mjs → selection/border/border.mjs} +7 -12
  39. package/3rdparty/walkontable/src/selection/border/constants.js +16 -0
  40. package/3rdparty/walkontable/src/selection/border/constants.mjs +12 -0
  41. package/3rdparty/walkontable/src/selection/constants.js +62 -0
  42. package/3rdparty/walkontable/src/selection/constants.mjs +51 -0
  43. package/3rdparty/walkontable/src/selection/index.js +26 -0
  44. package/3rdparty/walkontable/src/selection/index.mjs +5 -0
  45. package/3rdparty/walkontable/src/selection/manager.js +274 -0
  46. package/3rdparty/walkontable/src/selection/manager.mjs +269 -0
  47. package/3rdparty/walkontable/src/selection/scanner.js +270 -0
  48. package/3rdparty/walkontable/src/selection/scanner.mjs +267 -0
  49. package/3rdparty/walkontable/src/selection/selection.js +101 -0
  50. package/3rdparty/walkontable/src/selection/selection.mjs +96 -0
  51. package/3rdparty/walkontable/src/settings.js +13 -4
  52. package/3rdparty/walkontable/src/settings.mjs +13 -4
  53. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +9 -0
  54. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +9 -0
  55. package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +9 -0
  56. package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +9 -0
  57. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.js +9 -0
  58. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.mjs +9 -0
  59. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +9 -0
  60. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +9 -0
  61. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +9 -0
  62. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +9 -0
  63. package/3rdparty/walkontable/src/table.js +19 -78
  64. package/3rdparty/walkontable/src/table.mjs +20 -79
  65. package/base.js +2 -2
  66. package/base.mjs +2 -2
  67. package/cellTypes/dateType/dateType.d.ts +3 -3
  68. package/cellTypes/dateType/dateType.js +2 -2
  69. package/cellTypes/dateType/dateType.mjs +2 -2
  70. package/cellTypes/handsontableType/handsontableType.d.ts +3 -3
  71. package/cellTypes/handsontableType/handsontableType.js +2 -2
  72. package/cellTypes/handsontableType/handsontableType.mjs +2 -2
  73. package/cellTypes/index.d.ts +3 -0
  74. package/cellTypes/index.js +4 -0
  75. package/cellTypes/index.mjs +3 -1
  76. package/cellTypes/selectType/index.d.ts +1 -0
  77. package/cellTypes/selectType/index.js +6 -0
  78. package/cellTypes/selectType/index.mjs +1 -0
  79. package/cellTypes/selectType/selectType.d.ts +14 -0
  80. package/cellTypes/selectType/selectType.js +13 -0
  81. package/cellTypes/selectType/selectType.mjs +8 -0
  82. package/core/focusCatcher/focusDetector.js +63 -0
  83. package/core/focusCatcher/focusDetector.mjs +59 -0
  84. package/core/focusCatcher/index.js +142 -0
  85. package/core/focusCatcher/index.mjs +138 -0
  86. package/core/index.js +9 -0
  87. package/core/index.mjs +1 -0
  88. package/core.d.ts +9 -4
  89. package/core.js +285 -327
  90. package/core.mjs +285 -327
  91. package/dataMap/metaManager/metaSchema.js +65 -0
  92. package/dataMap/metaManager/metaSchema.mjs +65 -0
  93. package/dataMap/metaManager/mods/extendMetaProperties.js +7 -1
  94. package/dataMap/metaManager/mods/extendMetaProperties.mjs +7 -1
  95. package/dataMap/replaceData.js +5 -0
  96. package/dataMap/replaceData.mjs +5 -0
  97. package/dist/handsontable.css +40 -5
  98. package/dist/handsontable.full.css +40 -5
  99. package/dist/handsontable.full.js +11744 -6945
  100. package/dist/handsontable.full.min.css +4 -4
  101. package/dist/handsontable.full.min.js +141 -141
  102. package/dist/handsontable.js +14036 -9237
  103. package/dist/handsontable.min.css +3 -3
  104. package/dist/handsontable.min.js +21 -21
  105. package/dist/languages/all.js +6 -2
  106. package/dist/languages/all.min.js +1 -1
  107. package/dist/languages/en-US.js +3 -1
  108. package/dist/languages/en-US.min.js +1 -1
  109. package/dist/languages/pl-PL.js +3 -1
  110. package/dist/languages/pl-PL.min.js +1 -1
  111. package/editorManager.js +15 -87
  112. package/editorManager.mjs +16 -87
  113. package/editors/autocompleteEditor/autocompleteEditor.js +53 -2
  114. package/editors/autocompleteEditor/autocompleteEditor.mjs +54 -3
  115. package/editors/dateEditor/dateEditor.js +26 -7
  116. package/editors/dateEditor/dateEditor.mjs +27 -8
  117. package/editors/handsontableEditor/handsontableEditor.js +9 -1
  118. package/editors/handsontableEditor/handsontableEditor.mjs +10 -2
  119. package/editors/textEditor/textEditor.js +19 -27
  120. package/editors/textEditor/textEditor.mjs +22 -30
  121. package/focusManager.d.ts +12 -0
  122. package/focusManager.js +265 -0
  123. package/focusManager.mjs +261 -0
  124. package/helpers/a11y.js +79 -0
  125. package/helpers/a11y.mjs +38 -0
  126. package/helpers/dom/element.js +188 -9
  127. package/helpers/dom/element.mjs +182 -9
  128. package/helpers/mixed.js +1 -1
  129. package/helpers/mixed.mjs +1 -1
  130. package/helpers/number.d.ts +1 -0
  131. package/helpers/number.js +18 -0
  132. package/helpers/number.mjs +17 -0
  133. package/i18n/constants.js +7 -1
  134. package/i18n/constants.mjs +4 -1
  135. package/i18n/languages/en-US.js +3 -1
  136. package/i18n/languages/en-US.mjs +3 -1
  137. package/i18n/languages/pl-PL.js +3 -1
  138. package/i18n/languages/pl-PL.mjs +3 -1
  139. package/languages/all.js +6 -2
  140. package/languages/en-US.js +3 -1
  141. package/languages/en-US.mjs +3 -1
  142. package/languages/index.js +6 -2
  143. package/languages/pl-PL.js +3 -1
  144. package/languages/pl-PL.mjs +3 -1
  145. package/package.json +21 -1
  146. package/pluginHooks.d.ts +12 -1
  147. package/pluginHooks.js +152 -1
  148. package/pluginHooks.mjs +152 -1
  149. package/plugins/collapsibleColumns/collapsibleColumns.js +74 -4
  150. package/plugins/collapsibleColumns/collapsibleColumns.mjs +75 -5
  151. package/plugins/columnSorting/columnSorting.js +43 -0
  152. package/plugins/columnSorting/columnSorting.mjs +44 -3
  153. package/plugins/columnSorting/index.js +3 -1
  154. package/plugins/columnSorting/index.mjs +1 -1
  155. package/plugins/comments/commentEditor.js +1 -0
  156. package/plugins/comments/commentEditor.mjs +1 -0
  157. package/plugins/comments/comments.js +252 -189
  158. package/plugins/comments/comments.mjs +251 -190
  159. package/plugins/comments/contextMenuItem/addEditComment.js +41 -0
  160. package/plugins/comments/contextMenuItem/addEditComment.mjs +35 -0
  161. package/plugins/comments/contextMenuItem/readOnlyComment.js +49 -0
  162. package/plugins/comments/contextMenuItem/readOnlyComment.mjs +43 -0
  163. package/plugins/comments/contextMenuItem/removeComment.js +38 -0
  164. package/plugins/comments/contextMenuItem/removeComment.mjs +32 -0
  165. package/plugins/contextMenu/commandExecutor.js +2 -3
  166. package/plugins/contextMenu/commandExecutor.mjs +2 -3
  167. package/plugins/contextMenu/contextMenu.d.ts +1 -1
  168. package/plugins/contextMenu/contextMenu.js +75 -36
  169. package/plugins/contextMenu/contextMenu.mjs +74 -35
  170. package/plugins/contextMenu/itemsFactory.js +2 -3
  171. package/plugins/contextMenu/itemsFactory.mjs +3 -4
  172. package/plugins/contextMenu/{cursor.mjs → menu/cursor.js} +6 -4
  173. package/plugins/contextMenu/{cursor.js → menu/cursor.mjs} +4 -10
  174. package/plugins/contextMenu/menu/index.js +9 -0
  175. package/plugins/contextMenu/menu/index.mjs +1 -0
  176. package/plugins/contextMenu/{menu.js → menu/menu.js} +96 -308
  177. package/plugins/contextMenu/{menu.mjs → menu/menu.mjs} +97 -309
  178. package/plugins/contextMenu/menu/navigator.js +152 -0
  179. package/plugins/contextMenu/menu/navigator.mjs +148 -0
  180. package/plugins/contextMenu/menu/positioner.js +213 -0
  181. package/plugins/contextMenu/menu/positioner.mjs +209 -0
  182. package/plugins/contextMenu/menu/utils.js +177 -0
  183. package/plugins/contextMenu/menu/utils.mjs +163 -0
  184. package/plugins/contextMenu/predefinedItems/alignment.js +7 -0
  185. package/plugins/contextMenu/predefinedItems/alignment.mjs +7 -0
  186. package/plugins/contextMenu/predefinedItems/clearColumn.js +5 -3
  187. package/plugins/contextMenu/predefinedItems/clearColumn.mjs +5 -3
  188. package/plugins/contextMenu/predefinedItems/columnLeft.js +5 -3
  189. package/plugins/contextMenu/predefinedItems/columnLeft.mjs +5 -3
  190. package/plugins/contextMenu/predefinedItems/columnRight.js +5 -3
  191. package/plugins/contextMenu/predefinedItems/columnRight.mjs +5 -3
  192. package/plugins/contextMenu/{predefinedItems.js → predefinedItems/index.js} +14 -14
  193. package/plugins/contextMenu/predefinedItems/index.mjs +68 -0
  194. package/plugins/contextMenu/predefinedItems/readOnly.js +7 -0
  195. package/plugins/contextMenu/predefinedItems/readOnly.mjs +7 -0
  196. package/plugins/contextMenu/predefinedItems/removeColumn.js +7 -5
  197. package/plugins/contextMenu/predefinedItems/removeColumn.mjs +5 -3
  198. package/plugins/contextMenu/predefinedItems/removeRow.js +7 -5
  199. package/plugins/contextMenu/predefinedItems/removeRow.mjs +5 -3
  200. package/plugins/contextMenu/predefinedItems/rowAbove.js +5 -3
  201. package/plugins/contextMenu/predefinedItems/rowAbove.mjs +5 -3
  202. package/plugins/contextMenu/predefinedItems/rowBelow.js +5 -3
  203. package/plugins/contextMenu/predefinedItems/rowBelow.mjs +5 -3
  204. package/plugins/contextMenu/utils.js +35 -151
  205. package/plugins/contextMenu/utils.mjs +35 -144
  206. package/plugins/copyPaste/contextMenuItem/copy.js +7 -0
  207. package/plugins/copyPaste/contextMenuItem/copy.mjs +7 -0
  208. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.js +9 -1
  209. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.mjs +9 -1
  210. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.js +9 -1
  211. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.mjs +9 -1
  212. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.js +9 -1
  213. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.mjs +9 -1
  214. package/plugins/copyPaste/contextMenuItem/cut.js +7 -0
  215. package/plugins/copyPaste/contextMenuItem/cut.mjs +7 -0
  216. package/plugins/copyPaste/copyPaste.js +127 -78
  217. package/plugins/copyPaste/copyPaste.mjs +128 -79
  218. package/plugins/customBorders/customBorders.js +23 -20
  219. package/plugins/customBorders/customBorders.mjs +24 -21
  220. package/plugins/dropdownMenu/dropdownMenu.d.ts +1 -1
  221. package/plugins/dropdownMenu/dropdownMenu.js +97 -38
  222. package/plugins/dropdownMenu/dropdownMenu.mjs +96 -37
  223. package/plugins/filters/constants.mjs +1 -1
  224. package/plugins/filters/filters.js +31 -14
  225. package/plugins/filters/filters.mjs +31 -14
  226. package/plugins/filters/ui/select.js +3 -3
  227. package/plugins/filters/ui/select.mjs +2 -2
  228. package/plugins/hiddenColumns/hiddenColumns.mjs +1 -1
  229. package/plugins/hiddenRows/hiddenRows.mjs +1 -1
  230. package/plugins/manualColumnMove/manualColumnMove.js +3 -1
  231. package/plugins/manualColumnMove/manualColumnMove.mjs +3 -1
  232. package/plugins/mergeCells/mergeCells.js +5 -16
  233. package/plugins/mergeCells/mergeCells.mjs +5 -16
  234. package/plugins/multiColumnSorting/multiColumnSorting.js +37 -2
  235. package/plugins/multiColumnSorting/multiColumnSorting.mjs +37 -2
  236. package/plugins/nestedHeaders/nestedHeaders.js +240 -10
  237. package/plugins/nestedHeaders/nestedHeaders.mjs +241 -11
  238. package/plugins/nestedHeaders/stateManager/index.js +102 -3
  239. package/plugins/nestedHeaders/stateManager/index.mjs +102 -3
  240. package/plugins/nestedRows/nestedRows.js +41 -0
  241. package/plugins/nestedRows/nestedRows.mjs +41 -0
  242. package/plugins/nestedRows/ui/headers.js +11 -0
  243. package/plugins/nestedRows/ui/headers.mjs +12 -1
  244. package/renderers/autocompleteRenderer/autocompleteRenderer.js +8 -0
  245. package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +8 -0
  246. package/renderers/baseRenderer/baseRenderer.js +17 -0
  247. package/renderers/baseRenderer/baseRenderer.mjs +18 -1
  248. package/renderers/checkboxRenderer/checkboxRenderer.js +9 -4
  249. package/renderers/checkboxRenderer/checkboxRenderer.mjs +9 -4
  250. package/renderers/dateRenderer/dateRenderer.d.ts +5 -0
  251. package/renderers/dateRenderer/dateRenderer.js +29 -0
  252. package/renderers/dateRenderer/dateRenderer.mjs +24 -0
  253. package/renderers/dateRenderer/index.d.ts +1 -0
  254. package/renderers/dateRenderer/index.js +6 -0
  255. package/renderers/dateRenderer/index.mjs +1 -0
  256. package/renderers/handsontableRenderer/handsontableRenderer.d.ts +5 -0
  257. package/renderers/handsontableRenderer/handsontableRenderer.js +29 -0
  258. package/renderers/handsontableRenderer/handsontableRenderer.mjs +24 -0
  259. package/renderers/handsontableRenderer/index.d.ts +1 -0
  260. package/renderers/handsontableRenderer/index.js +6 -0
  261. package/renderers/handsontableRenderer/index.mjs +1 -0
  262. package/renderers/index.d.ts +9 -0
  263. package/renderers/selectRenderer/index.d.ts +1 -0
  264. package/renderers/selectRenderer/index.js +6 -0
  265. package/renderers/selectRenderer/index.mjs +1 -0
  266. package/renderers/selectRenderer/selectRenderer.d.ts +5 -0
  267. package/renderers/selectRenderer/selectRenderer.js +27 -0
  268. package/renderers/selectRenderer/selectRenderer.mjs +22 -0
  269. package/selection/highlight/highlight.js +256 -71
  270. package/selection/highlight/highlight.mjs +250 -71
  271. package/selection/highlight/types/activeHeader.js +10 -8
  272. package/selection/highlight/types/activeHeader.mjs +10 -8
  273. package/selection/highlight/types/area.js +6 -18
  274. package/selection/highlight/types/area.mjs +6 -18
  275. package/selection/highlight/types/areaLayered.js +31 -0
  276. package/selection/highlight/types/areaLayered.mjs +26 -0
  277. package/selection/highlight/types/column.js +27 -0
  278. package/selection/highlight/types/column.mjs +22 -0
  279. package/selection/highlight/types/customSelection.js +7 -9
  280. package/selection/highlight/types/customSelection.mjs +7 -9
  281. package/selection/highlight/types/fill.js +5 -7
  282. package/selection/highlight/types/fill.mjs +5 -7
  283. package/selection/highlight/types/{cell.js → focus.js} +5 -7
  284. package/selection/highlight/types/{cell.mjs → focus.mjs} +5 -7
  285. package/selection/highlight/types/header.js +9 -18
  286. package/selection/highlight/types/header.mjs +9 -18
  287. package/selection/highlight/types/row.js +27 -0
  288. package/selection/highlight/types/row.mjs +22 -0
  289. package/selection/highlight/visualSelection.js +31 -27
  290. package/selection/highlight/visualSelection.mjs +31 -27
  291. package/selection/index.js +4 -7
  292. package/selection/index.mjs +2 -3
  293. package/selection/mouseEventHandler.js +7 -1
  294. package/selection/mouseEventHandler.mjs +7 -1
  295. package/selection/range.js +8 -8
  296. package/selection/range.mjs +8 -8
  297. package/selection/selection.js +321 -152
  298. package/selection/selection.mjs +318 -151
  299. package/selection/transformation.js +232 -90
  300. package/selection/transformation.mjs +232 -90
  301. package/selection/utils.js +15 -21
  302. package/selection/utils.mjs +16 -21
  303. package/settings.d.ts +4 -0
  304. package/shortcutContexts/commands/editor/closeAndSave.js +12 -0
  305. package/shortcutContexts/commands/editor/closeAndSave.mjs +8 -0
  306. package/shortcutContexts/commands/editor/closeWithoutSaving.js +12 -0
  307. package/shortcutContexts/commands/editor/closeWithoutSaving.mjs +8 -0
  308. package/shortcutContexts/commands/editor/fastOpen.js +16 -0
  309. package/shortcutContexts/commands/editor/fastOpen.mjs +12 -0
  310. package/shortcutContexts/commands/editor/index.js +16 -0
  311. package/shortcutContexts/commands/editor/index.mjs +12 -0
  312. package/shortcutContexts/commands/editor/open.js +27 -0
  313. package/shortcutContexts/commands/editor/open.mjs +23 -0
  314. package/shortcutContexts/commands/emptySelectedCells.js +11 -0
  315. package/shortcutContexts/commands/emptySelectedCells.mjs +7 -0
  316. package/shortcutContexts/commands/extendCellsSelection/down.js +15 -0
  317. package/shortcutContexts/commands/extendCellsSelection/down.mjs +11 -0
  318. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +25 -0
  319. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +21 -0
  320. package/shortcutContexts/commands/extendCellsSelection/index.js +26 -0
  321. package/shortcutContexts/commands/extendCellsSelection/index.mjs +22 -0
  322. package/shortcutContexts/commands/extendCellsSelection/left.js +15 -0
  323. package/shortcutContexts/commands/extendCellsSelection/left.mjs +11 -0
  324. package/shortcutContexts/commands/extendCellsSelection/right.js +15 -0
  325. package/shortcutContexts/commands/extendCellsSelection/right.mjs +11 -0
  326. package/shortcutContexts/commands/extendCellsSelection/toColumns.js +19 -0
  327. package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +15 -0
  328. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +29 -0
  329. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +25 -0
  330. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +19 -0
  331. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +15 -0
  332. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +19 -0
  333. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +15 -0
  334. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +29 -0
  335. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +25 -0
  336. package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +29 -0
  337. package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +25 -0
  338. package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +29 -0
  339. package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +25 -0
  340. package/shortcutContexts/commands/extendCellsSelection/toRows.js +19 -0
  341. package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +15 -0
  342. package/shortcutContexts/commands/extendCellsSelection/up.js +15 -0
  343. package/shortcutContexts/commands/extendCellsSelection/up.mjs +11 -0
  344. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +25 -0
  345. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +21 -0
  346. package/shortcutContexts/commands/index.js +35 -0
  347. package/shortcutContexts/commands/index.mjs +31 -0
  348. package/shortcutContexts/commands/moveCellSelection/down.js +13 -0
  349. package/shortcutContexts/commands/moveCellSelection/down.mjs +9 -0
  350. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.js +33 -0
  351. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs +29 -0
  352. package/shortcutContexts/commands/moveCellSelection/index.js +28 -0
  353. package/shortcutContexts/commands/moveCellSelection/index.mjs +24 -0
  354. package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +12 -0
  355. package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +8 -0
  356. package/shortcutContexts/commands/moveCellSelection/inlineStart.js +12 -0
  357. package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +8 -0
  358. package/shortcutContexts/commands/moveCellSelection/left.js +10 -0
  359. package/shortcutContexts/commands/moveCellSelection/left.mjs +6 -0
  360. package/shortcutContexts/commands/moveCellSelection/right.js +10 -0
  361. package/shortcutContexts/commands/moveCellSelection/right.mjs +6 -0
  362. package/shortcutContexts/commands/moveCellSelection/toMostBottom.js +17 -0
  363. package/shortcutContexts/commands/moveCellSelection/toMostBottom.mjs +13 -0
  364. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.js +18 -0
  365. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.mjs +14 -0
  366. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.js +14 -0
  367. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.mjs +10 -0
  368. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.js +17 -0
  369. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.mjs +13 -0
  370. package/shortcutContexts/commands/moveCellSelection/toMostLeft.js +19 -0
  371. package/shortcutContexts/commands/moveCellSelection/toMostLeft.mjs +15 -0
  372. package/shortcutContexts/commands/moveCellSelection/toMostRight.js +21 -0
  373. package/shortcutContexts/commands/moveCellSelection/toMostRight.mjs +17 -0
  374. package/shortcutContexts/commands/moveCellSelection/toMostTop.js +17 -0
  375. package/shortcutContexts/commands/moveCellSelection/toMostTop.mjs +13 -0
  376. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.js +19 -0
  377. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.mjs +15 -0
  378. package/shortcutContexts/commands/moveCellSelection/up.js +13 -0
  379. package/shortcutContexts/commands/moveCellSelection/up.mjs +9 -0
  380. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.js +33 -0
  381. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs +29 -0
  382. package/shortcutContexts/commands/populateSelectedCellsData.js +29 -0
  383. package/shortcutContexts/commands/populateSelectedCellsData.mjs +25 -0
  384. package/shortcutContexts/commands/scrollToFocusedCell.js +35 -0
  385. package/shortcutContexts/commands/scrollToFocusedCell.mjs +31 -0
  386. package/shortcutContexts/commands/selectAll.js +12 -0
  387. package/shortcutContexts/commands/selectAll.mjs +8 -0
  388. package/shortcutContexts/constants.js +13 -0
  389. package/shortcutContexts/constants.mjs +8 -0
  390. package/shortcutContexts/editor.js +25 -0
  391. package/shortcutContexts/editor.mjs +21 -0
  392. package/shortcutContexts/grid.js +163 -0
  393. package/shortcutContexts/grid.mjs +159 -0
  394. package/shortcutContexts/index.js +24 -0
  395. package/shortcutContexts/index.mjs +11 -0
  396. package/shortcuts/context.js +20 -2
  397. package/shortcuts/context.mjs +20 -3
  398. package/shortcuts/manager.js +25 -7
  399. package/shortcuts/manager.mjs +26 -7
  400. package/shortcuts/recorder.js +3 -3
  401. package/shortcuts/recorder.mjs +3 -3
  402. package/shortcuts/utils.js +19 -5
  403. package/shortcuts/utils.mjs +18 -4
  404. package/tableView.js +111 -13
  405. package/tableView.mjs +112 -14
  406. package/3rdparty/walkontable/src/selection.js +0 -295
  407. package/3rdparty/walkontable/src/selection.mjs +0 -290
  408. package/plugins/contextMenu/predefinedItems.mjs +0 -68
  409. package/plugins/copyPaste/focusableElement.js +0 -186
  410. package/plugins/copyPaste/focusableElement.mjs +0 -180
  411. package/selection/highlight/constants.js +0 -15
  412. package/selection/highlight/constants.mjs +0 -6
  413. package/selection/highlight/types/index.js +0 -35
  414. package/selection/highlight/types/index.mjs +0 -31
@@ -83,6 +83,8 @@ const dictionary = {
83
83
  [C.FILTERS_BUTTONS_CANCEL]: 'Anuluj',
84
84
  [C.FILTERS_BUTTONS_PLACEHOLDER_SEARCH]: 'Szukaj',
85
85
  [C.FILTERS_BUTTONS_PLACEHOLDER_VALUE]: 'Wartość',
86
- [C.FILTERS_BUTTONS_PLACEHOLDER_SECOND_VALUE]: 'Druga wartość'
86
+ [C.FILTERS_BUTTONS_PLACEHOLDER_SECOND_VALUE]: 'Druga wartość',
87
+ [C.CHECKBOX_CHECKED]: 'Zaznaczony',
88
+ [C.CHECKBOX_UNCHECKED]: 'Odznaczony'
87
89
  };
88
90
  export default dictionary;
package/languages/all.js CHANGED
@@ -518,7 +518,9 @@ const dictionary = {
518
518
  [C.FILTERS_BUTTONS_CANCEL]: 'Cancel',
519
519
  [C.FILTERS_BUTTONS_PLACEHOLDER_SEARCH]: 'Search',
520
520
  [C.FILTERS_BUTTONS_PLACEHOLDER_VALUE]: 'Value',
521
- [C.FILTERS_BUTTONS_PLACEHOLDER_SECOND_VALUE]: 'Second value'
521
+ [C.FILTERS_BUTTONS_PLACEHOLDER_SECOND_VALUE]: 'Second value',
522
+ [C.CHECKBOX_CHECKED]: 'Checked',
523
+ [C.CHECKBOX_UNCHECKED]: 'Unchecked'
522
524
  };
523
525
  _handsontable.default.languages.registerLanguageDictionary(dictionary);
524
526
  var _default = dictionary;
@@ -1418,7 +1420,9 @@ const dictionary = {
1418
1420
  [C.FILTERS_BUTTONS_CANCEL]: 'Anuluj',
1419
1421
  [C.FILTERS_BUTTONS_PLACEHOLDER_SEARCH]: 'Szukaj',
1420
1422
  [C.FILTERS_BUTTONS_PLACEHOLDER_VALUE]: 'Wartość',
1421
- [C.FILTERS_BUTTONS_PLACEHOLDER_SECOND_VALUE]: 'Druga wartość'
1423
+ [C.FILTERS_BUTTONS_PLACEHOLDER_SECOND_VALUE]: 'Druga wartość',
1424
+ [C.CHECKBOX_CHECKED]: 'Zaznaczony',
1425
+ [C.CHECKBOX_UNCHECKED]: 'Odznaczony'
1422
1426
  };
1423
1427
  _handsontable.default.languages.registerLanguageDictionary(dictionary);
1424
1428
  var _default = dictionary;
@@ -152,7 +152,9 @@ const dictionary = {
152
152
  [C.FILTERS_BUTTONS_CANCEL]: 'Cancel',
153
153
  [C.FILTERS_BUTTONS_PLACEHOLDER_SEARCH]: 'Search',
154
154
  [C.FILTERS_BUTTONS_PLACEHOLDER_VALUE]: 'Value',
155
- [C.FILTERS_BUTTONS_PLACEHOLDER_SECOND_VALUE]: 'Second value'
155
+ [C.FILTERS_BUTTONS_PLACEHOLDER_SECOND_VALUE]: 'Second value',
156
+ [C.CHECKBOX_CHECKED]: 'Checked',
157
+ [C.CHECKBOX_UNCHECKED]: 'Unchecked'
156
158
  };
157
159
  _handsontable.default.languages.registerLanguageDictionary(dictionary);
158
160
  var _default = dictionary;
@@ -84,7 +84,9 @@ const dictionary = {
84
84
  [C.FILTERS_BUTTONS_CANCEL]: 'Cancel',
85
85
  [C.FILTERS_BUTTONS_PLACEHOLDER_SEARCH]: 'Search',
86
86
  [C.FILTERS_BUTTONS_PLACEHOLDER_VALUE]: 'Value',
87
- [C.FILTERS_BUTTONS_PLACEHOLDER_SECOND_VALUE]: 'Second value'
87
+ [C.FILTERS_BUTTONS_PLACEHOLDER_SECOND_VALUE]: 'Second value',
88
+ [C.CHECKBOX_CHECKED]: 'Checked',
89
+ [C.CHECKBOX_UNCHECKED]: 'Unchecked'
88
90
  };
89
91
  Handsontable.languages.registerLanguageDictionary(dictionary);
90
92
  export default dictionary;
@@ -518,7 +518,9 @@ const dictionary = {
518
518
  [C.FILTERS_BUTTONS_CANCEL]: 'Cancel',
519
519
  [C.FILTERS_BUTTONS_PLACEHOLDER_SEARCH]: 'Search',
520
520
  [C.FILTERS_BUTTONS_PLACEHOLDER_VALUE]: 'Value',
521
- [C.FILTERS_BUTTONS_PLACEHOLDER_SECOND_VALUE]: 'Second value'
521
+ [C.FILTERS_BUTTONS_PLACEHOLDER_SECOND_VALUE]: 'Second value',
522
+ [C.CHECKBOX_CHECKED]: 'Checked',
523
+ [C.CHECKBOX_UNCHECKED]: 'Unchecked'
522
524
  };
523
525
  _handsontable.default.languages.registerLanguageDictionary(dictionary);
524
526
  var _default = dictionary;
@@ -1418,7 +1420,9 @@ const dictionary = {
1418
1420
  [C.FILTERS_BUTTONS_CANCEL]: 'Anuluj',
1419
1421
  [C.FILTERS_BUTTONS_PLACEHOLDER_SEARCH]: 'Szukaj',
1420
1422
  [C.FILTERS_BUTTONS_PLACEHOLDER_VALUE]: 'Wartość',
1421
- [C.FILTERS_BUTTONS_PLACEHOLDER_SECOND_VALUE]: 'Druga wartość'
1423
+ [C.FILTERS_BUTTONS_PLACEHOLDER_SECOND_VALUE]: 'Druga wartość',
1424
+ [C.CHECKBOX_CHECKED]: 'Zaznaczony',
1425
+ [C.CHECKBOX_UNCHECKED]: 'Odznaczony'
1422
1426
  };
1423
1427
  _handsontable.default.languages.registerLanguageDictionary(dictionary);
1424
1428
  var _default = dictionary;
@@ -152,7 +152,9 @@ const dictionary = {
152
152
  [C.FILTERS_BUTTONS_CANCEL]: 'Anuluj',
153
153
  [C.FILTERS_BUTTONS_PLACEHOLDER_SEARCH]: 'Szukaj',
154
154
  [C.FILTERS_BUTTONS_PLACEHOLDER_VALUE]: 'Wartość',
155
- [C.FILTERS_BUTTONS_PLACEHOLDER_SECOND_VALUE]: 'Druga wartość'
155
+ [C.FILTERS_BUTTONS_PLACEHOLDER_SECOND_VALUE]: 'Druga wartość',
156
+ [C.CHECKBOX_CHECKED]: 'Zaznaczony',
157
+ [C.CHECKBOX_UNCHECKED]: 'Odznaczony'
156
158
  };
157
159
  _handsontable.default.languages.registerLanguageDictionary(dictionary);
158
160
  var _default = dictionary;
@@ -84,7 +84,9 @@ const dictionary = {
84
84
  [C.FILTERS_BUTTONS_CANCEL]: 'Anuluj',
85
85
  [C.FILTERS_BUTTONS_PLACEHOLDER_SEARCH]: 'Szukaj',
86
86
  [C.FILTERS_BUTTONS_PLACEHOLDER_VALUE]: 'Wartość',
87
- [C.FILTERS_BUTTONS_PLACEHOLDER_SECOND_VALUE]: 'Druga wartość'
87
+ [C.FILTERS_BUTTONS_PLACEHOLDER_SECOND_VALUE]: 'Druga wartość',
88
+ [C.CHECKBOX_CHECKED]: 'Zaznaczony',
89
+ [C.CHECKBOX_UNCHECKED]: 'Odznaczony'
88
90
  };
89
91
  Handsontable.languages.registerLanguageDictionary(dictionary);
90
92
  export default dictionary;
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-010265d-20231005",
13
+ "version": "0.0.0-next-9379dd1-20231020",
14
14
  "main": "index",
15
15
  "module": "index.mjs",
16
16
  "jsnext:main": "index.mjs",
@@ -145,6 +145,11 @@
145
145
  "require": "./cellTypes/passwordType/index.js",
146
146
  "import": "./cellTypes/passwordType/index.mjs"
147
147
  },
148
+ "./cellTypes/selectType/index.d.ts": "./cellTypes/selectType/index.d.ts",
149
+ "./cellTypes/selectType": {
150
+ "require": "./cellTypes/selectType/index.js",
151
+ "import": "./cellTypes/selectType/index.mjs"
152
+ },
148
153
  "./cellTypes/textType/index.d.ts": "./cellTypes/textType/index.d.ts",
149
154
  "./cellTypes/textType": {
150
155
  "require": "./cellTypes/textType/index.js",
@@ -506,6 +511,16 @@
506
511
  "require": "./renderers/checkboxRenderer/index.js",
507
512
  "import": "./renderers/checkboxRenderer/index.mjs"
508
513
  },
514
+ "./renderers/dateRenderer/index.d.ts": "./renderers/dateRenderer/index.d.ts",
515
+ "./renderers/dateRenderer": {
516
+ "require": "./renderers/dateRenderer/index.js",
517
+ "import": "./renderers/dateRenderer/index.mjs"
518
+ },
519
+ "./renderers/handsontableRenderer/index.d.ts": "./renderers/handsontableRenderer/index.d.ts",
520
+ "./renderers/handsontableRenderer": {
521
+ "require": "./renderers/handsontableRenderer/index.js",
522
+ "import": "./renderers/handsontableRenderer/index.mjs"
523
+ },
509
524
  "./renderers/htmlRenderer/index.d.ts": "./renderers/htmlRenderer/index.d.ts",
510
525
  "./renderers/htmlRenderer": {
511
526
  "require": "./renderers/htmlRenderer/index.js",
@@ -521,6 +536,11 @@
521
536
  "require": "./renderers/passwordRenderer/index.js",
522
537
  "import": "./renderers/passwordRenderer/index.mjs"
523
538
  },
539
+ "./renderers/selectRenderer/index.d.ts": "./renderers/selectRenderer/index.d.ts",
540
+ "./renderers/selectRenderer": {
541
+ "require": "./renderers/selectRenderer/index.js",
542
+ "import": "./renderers/selectRenderer/index.mjs"
543
+ },
524
544
  "./renderers/textRenderer/index.d.ts": "./renderers/textRenderer/index.d.ts",
525
545
  "./renderers/textRenderer": {
526
546
  "require": "./renderers/textRenderer/index.js",
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
- afterOnCellMouseOver?: (event: MouseEvent, coords: CellCoords, TD: HTMLTableCellElement) => void;
114
113
  afterOnCellMouseOut?: (event: MouseEvent, coords: CellCoords, TD: HTMLTableCellElement) => void;
114
+ afterOnCellMouseOver?: (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,10 +128,13 @@ 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;
131
133
  afterSelection?: (row: number, column: number, row2: number, column2: number, preventScrolling: { value: boolean }, selectionLayerLevel: number) => void;
132
134
  afterSelectionByProp?: (row: number, prop: string, row2: number, prop2: string, preventScrolling: { value: boolean }, selectionLayerLevel: number) => void;
133
135
  afterSelectionEnd?: (row: number, column: number, row2: number, column2: number, selectionLayerLevel: number) => void;
134
136
  afterSelectionEndByProp?: (row: number, prop: string, row2: number, prop2: string, selectionLayerLevel: number) => void;
137
+ afterSelectRows?: (from: CellCoords, to: CellCoords, highlight: CellCoords) => void;
135
138
  afterSetCellMeta?: (row: number, column: number, key: string, value: any) => void;
136
139
  afterSetDataAtCell?: (changes: CellChange[], source?: ChangeSource) => void;
137
140
  afterSetDataAtRowProp?: (changes: CellChange[], source?: ChangeSource) => void;
@@ -205,6 +208,9 @@ export interface Events {
205
208
  beforeRenderer?: (TD: HTMLTableCellElement, row: number, column: number, prop: string | number, value: CellValue, cellProperties: CellProperties) => void;
206
209
  beforeRowMove?: (movedRows: number[], finalIndex: number, dropIndex: number | undefined, movePossible: boolean) => void;
207
210
  beforeRowResize?: (newSize: number, row: number, isDoubleClick: boolean) => number | void;
211
+ beforeSelectColumns?: (from: CellCoords, to: CellCoords, highlight: CellCoords) => void;
212
+ beforeSelectionHighlightSet?: () => void;
213
+ beforeSelectRows?: (from: CellCoords, to: CellCoords, highlight: CellCoords) => void;
208
214
  beforeSetCellMeta?: (row: number, col: number, key: string, value: any) => boolean | void;
209
215
  beforeSetRangeEnd?: (coords: CellCoords) => void;
210
216
  beforeSetRangeStart?: (coords: CellCoords) => void;
@@ -221,6 +227,9 @@ export interface Events {
221
227
  beforeUpdateData?: (sourceData: CellValue[], initialLoad: boolean, source: string | undefined) => void;
222
228
  beforeValidate?: (value: CellValue, row: number, prop: string | number, source?: ChangeSource) => void;
223
229
  beforeValueRender?: (value: CellValue, cellProperties: CellProperties) => void;
230
+ beforeViewportScrollVertically?: (visualRow: number) => number;
231
+ beforeViewportScrollHorizontally?: (visualColumn: number) => number;
232
+ beforeViewportScroll?: () => void;
224
233
  beforeViewRender?: (isForced: boolean, skipRender: { skipRender?: boolean }) => void;
225
234
  construct?: () => void;
226
235
  init?: () => void;
@@ -231,7 +240,9 @@ export interface Events {
231
240
  modifyColumnHeaderValue?: (headerValue: string, visualColumnIndex: number, headerLevel: number) => void | string;
232
241
  modifyColWidth?: (width: number, column: number) => void;
233
242
  modifyCopyableRange?: (copyableRanges: RangeType[]) => void;
243
+ modifyFocusedElement?: (row: number, column: number, focusedElement: HTMLElement) => void | HTMLElement;
234
244
  modifyData?: (row: number, column: number, valueHolder: { value: CellValue }, ioMode: 'get' | 'set') => void;
245
+ modifyFocusOnTabNavigation?: (tabActivationDir: 'from_above' | 'from_below', visualCoords: CellCoords) => void;
235
246
  modifyGetCellCoords?: (row: number, column: number, topmost: boolean) => void | [number, number] | [number, number, number, number];
236
247
  modifyRowData?: (row: number) => void;
237
248
  modifyRowHeader?: (row: number) => void;
package/pluginHooks.js CHANGED
@@ -542,6 +542,34 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
542
542
  * @param {'init'|'remove'|'insert'|'move'|'update'} [source] A string that indicates what caused the change to the order of rows.
543
543
  */
544
544
  'afterRowSequenceChange',
545
+ /**
546
+ * Fired before the vertical viewport scroll. Triggered by the [`scrollViewportTo()`](@/api/core.md#scrollviewportto)
547
+ * method or table internals.
548
+ *
549
+ * @since 14.0.0
550
+ * @event Hooks#beforeViewportScrollVertically
551
+ * @param {number} visualRow Visual row index.
552
+ * @returns {number} Returns modified row index (or the same as passed in the method argument) to which the viewport will be scrolled.
553
+ */
554
+ 'beforeViewportScrollVertically',
555
+ /**
556
+ * Fired before the horizontal viewport scroll. Triggered by the [`scrollViewportTo()`](@/api/core.md#scrollviewportto)
557
+ * method or table internals.
558
+ *
559
+ * @since 14.0.0
560
+ * @event Hooks#beforeViewportScrollHorizontally
561
+ * @param {number} visualColumn Visual column index.
562
+ * @returns {number} Returns modified column index (or the same as passed in the method argument) to which the viewport will be scrolled.
563
+ */
564
+ 'beforeViewportScrollHorizontally',
565
+ /**
566
+ * Fired before the vertical or horizontal viewport scroll. Triggered by the [`scrollViewportTo()`](@/api/core.md#scrollviewportto)
567
+ * method or table internals.
568
+ *
569
+ * @since 14.0.0
570
+ * @event Hooks#beforeViewportScroll
571
+ */
572
+ 'beforeViewportScroll',
545
573
  /**
546
574
  * Fired after the horizontal scroll event.
547
575
  *
@@ -554,6 +582,13 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
554
582
  * @event Hooks#afterScrollVertically
555
583
  */
556
584
  'afterScrollVertically',
585
+ /**
586
+ * Fired after the vertical or horizontal scroll event.
587
+ *
588
+ * @since 14.0.0
589
+ * @event Hooks#afterScroll
590
+ */
591
+ 'afterScroll',
557
592
  /**
558
593
  * Fired after one or more cells are selected (e.g. During mouse move).
559
594
  *
@@ -657,6 +692,94 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
657
692
  * @param {number} selectionLayerLevel The number which indicates what selection layer is currently modified.
658
693
  */
659
694
  'afterSelectionEndByProp',
695
+ /**
696
+ * Fired before one or more columns are selected (e.g. During mouse header click or {@link Core#selectColumns} API call).
697
+ *
698
+ * @since 14.0.0
699
+ * @event Hooks#beforeSelectColumns
700
+ * @param {CellCoords} from Selection start coords object.
701
+ * @param {CellCoords} to Selection end coords object.
702
+ * @param {CellCoords} highlight Selection cell focus coords object.
703
+ * @example
704
+ * ::: only-for javascript
705
+ * ```js
706
+ * new Handsontable(element, {
707
+ * beforeSelectColumns: (from, to, highlight) => {
708
+ * // Extend the column selection by one column left and one column right.
709
+ * from.col = Math.max(from.col - 1, 0);
710
+ * to.col = Math.min(to.col + 1, this.countCols() - 1);
711
+ * }
712
+ * })
713
+ * ```
714
+ * :::
715
+ *
716
+ * ::: only-for react
717
+ * ```jsx
718
+ * <HotTable
719
+ * beforeSelectColumns={(from, to, highlight) => {
720
+ * // Extend the column selection by one column left and one column right.
721
+ * from.col = Math.max(from.col - 1, 0);
722
+ * to.col = Math.min(to.col + 1, this.countCols() - 1);
723
+ * }}
724
+ * />
725
+ * ```
726
+ * :::
727
+ */
728
+ 'beforeSelectColumns',
729
+ /**
730
+ * Fired after one or more columns are selected (e.g. During mouse header click or {@link Core#selectColumns} API call).
731
+ *
732
+ * @since 14.0.0
733
+ * @event Hooks#afterSelectColumns
734
+ * @param {CellCoords} from Selection start coords object.
735
+ * @param {CellCoords} to Selection end coords object.
736
+ * @param {CellCoords} highlight Selection cell focus coords object.
737
+ */
738
+ 'afterSelectColumns',
739
+ /**
740
+ * Fired before one or more rows are selected (e.g. During mouse header click or {@link Core#selectRows} API call).
741
+ *
742
+ * @since 14.0.0
743
+ * @event Hooks#beforeSelectRows
744
+ * @param {CellCoords} from Selection start coords object.
745
+ * @param {CellCoords} to Selection end coords object.
746
+ * @param {CellCoords} highlight Selection cell focus coords object.
747
+ * @example
748
+ * ::: only-for javascript
749
+ * ```js
750
+ * new Handsontable(element, {
751
+ * beforeSelectRows: (from, to, highlight) => {
752
+ * // Extend the row selection by one row up and one row bottom more.
753
+ * from.row = Math.max(from.row - 1, 0);
754
+ * to.row = Math.min(to.row + 1, this.countRows() - 1);
755
+ * }
756
+ * })
757
+ * ```
758
+ * :::
759
+ *
760
+ * ::: only-for react
761
+ * ```jsx
762
+ * <HotTable
763
+ * beforeSelectRows={(from, to, highlight) => {
764
+ * // Extend the row selection by one row up and one row bottom more.
765
+ * from.row = Math.max(from.row - 1, 0);
766
+ * to.row = Math.min(to.row + 1, this.countRows() - 1);
767
+ * }}
768
+ * />
769
+ * ```
770
+ * :::
771
+ */
772
+ 'beforeSelectRows',
773
+ /**
774
+ * Fired after one or more rows are selected (e.g. During mouse header click or {@link Core#selectRows} API call).
775
+ *
776
+ * @since 14.0.0
777
+ * @event Hooks#afterSelectRows
778
+ * @param {CellCoords} from Selection start coords object.
779
+ * @param {CellCoords} to Selection end coords object.
780
+ * @param {CellCoords} highlight Selection cell focus coords object.
781
+ */
782
+ 'afterSelectRows',
660
783
  /**
661
784
  * Fired after cell meta is changed.
662
785
  *
@@ -1112,6 +1235,13 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
1112
1235
  * @param {CellCoords} coords CellCoords instance.
1113
1236
  */
1114
1237
  'beforeSetRangeEnd',
1238
+ /**
1239
+ * Fired before applying selection coordinates to the renderable coordinates for Walkontable (rendering engine).
1240
+ *
1241
+ * @since 14.0.0
1242
+ * @event Hooks#beforeSelectionHighlightSet
1243
+ */
1244
+ 'beforeSelectionHighlightSet',
1115
1245
  /**
1116
1246
  * Fired before the logic of handling a touch scroll, when user started scrolling on a touch-enabled device.
1117
1247
  *
@@ -1168,6 +1298,17 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
1168
1298
  * @param {number} column Visual column index.
1169
1299
  */
1170
1300
  'modifyColWidth',
1301
+ /**
1302
+ * Fired when focusing a cell or a header element. Allows replacing the element to be focused by returning a
1303
+ * different HTML element.
1304
+ *
1305
+ * @since 14.0.0
1306
+ * @event Hooks#modifyFocusedElement
1307
+ * @param {number} row Row index.
1308
+ * @param {number} column Column index.
1309
+ * @param {HTMLElement|undefined} focusedElement The element to be focused.
1310
+ */
1311
+ 'modifyFocusedElement',
1171
1312
  /**
1172
1313
  * Fired when a row header index is about to be modified by a callback function.
1173
1314
  *
@@ -1225,6 +1366,16 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
1225
1366
  * @returns {undefined|number[]}
1226
1367
  */
1227
1368
  'modifyGetCellCoords',
1369
+ /**
1370
+ * Used to modify the cell coordinates when the table is activated (going into the listen mode).
1371
+ *
1372
+ * @event Hooks#modifyFocusOnTabNavigation
1373
+ * @since 14.0.0
1374
+ * @param {'from_above' | 'from_below'} tabActivationDir The browsers Tab navigation direction. Depending on
1375
+ * whether the user activated the table from the element above or below, another cell can be selected.
1376
+ * @param {CellCoords} visualCoords The coords that will be used to select a cell.
1377
+ */
1378
+ 'modifyFocusOnTabNavigation',
1228
1379
  /**
1229
1380
  * Allows modify the visual row index that is used to retrieve the row header element (TH) before it's
1230
1381
  * highlighted (proper CSS class names are added). Modifying the visual row index allows building a custom
@@ -2382,7 +2533,7 @@ const REMOVED_HOOKS = new Map([['modifyRow', '8.0.0'], ['modifyCol', '8.0.0'], [
2382
2533
  * @type {Map<string, string>}
2383
2534
  */
2384
2535
  /* eslint-enable jsdoc/require-description-complete-sentence */
2385
- const DEPRECATED_HOOKS = new Map([]);
2536
+ const DEPRECATED_HOOKS = new Map([['beforeRemoveCellClassNames', 'The hook "beforeRemoveCellClassNames" is deprecated and will be removed in the next major release.']]);
2386
2537
  class Hooks {
2387
2538
  static getSingleton() {
2388
2539
  return getGlobalSingleton();
package/pluginHooks.mjs CHANGED
@@ -540,6 +540,34 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
540
540
  * @param {'init'|'remove'|'insert'|'move'|'update'} [source] A string that indicates what caused the change to the order of rows.
541
541
  */
542
542
  'afterRowSequenceChange',
543
+ /**
544
+ * Fired before the vertical viewport scroll. Triggered by the [`scrollViewportTo()`](@/api/core.md#scrollviewportto)
545
+ * method or table internals.
546
+ *
547
+ * @since 14.0.0
548
+ * @event Hooks#beforeViewportScrollVertically
549
+ * @param {number} visualRow Visual row index.
550
+ * @returns {number} Returns modified row index (or the same as passed in the method argument) to which the viewport will be scrolled.
551
+ */
552
+ 'beforeViewportScrollVertically',
553
+ /**
554
+ * Fired before the horizontal viewport scroll. Triggered by the [`scrollViewportTo()`](@/api/core.md#scrollviewportto)
555
+ * method or table internals.
556
+ *
557
+ * @since 14.0.0
558
+ * @event Hooks#beforeViewportScrollHorizontally
559
+ * @param {number} visualColumn Visual column index.
560
+ * @returns {number} Returns modified column index (or the same as passed in the method argument) to which the viewport will be scrolled.
561
+ */
562
+ 'beforeViewportScrollHorizontally',
563
+ /**
564
+ * Fired before the vertical or horizontal viewport scroll. Triggered by the [`scrollViewportTo()`](@/api/core.md#scrollviewportto)
565
+ * method or table internals.
566
+ *
567
+ * @since 14.0.0
568
+ * @event Hooks#beforeViewportScroll
569
+ */
570
+ 'beforeViewportScroll',
543
571
  /**
544
572
  * Fired after the horizontal scroll event.
545
573
  *
@@ -552,6 +580,13 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
552
580
  * @event Hooks#afterScrollVertically
553
581
  */
554
582
  'afterScrollVertically',
583
+ /**
584
+ * Fired after the vertical or horizontal scroll event.
585
+ *
586
+ * @since 14.0.0
587
+ * @event Hooks#afterScroll
588
+ */
589
+ 'afterScroll',
555
590
  /**
556
591
  * Fired after one or more cells are selected (e.g. During mouse move).
557
592
  *
@@ -655,6 +690,94 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
655
690
  * @param {number} selectionLayerLevel The number which indicates what selection layer is currently modified.
656
691
  */
657
692
  'afterSelectionEndByProp',
693
+ /**
694
+ * Fired before one or more columns are selected (e.g. During mouse header click or {@link Core#selectColumns} API call).
695
+ *
696
+ * @since 14.0.0
697
+ * @event Hooks#beforeSelectColumns
698
+ * @param {CellCoords} from Selection start coords object.
699
+ * @param {CellCoords} to Selection end coords object.
700
+ * @param {CellCoords} highlight Selection cell focus coords object.
701
+ * @example
702
+ * ::: only-for javascript
703
+ * ```js
704
+ * new Handsontable(element, {
705
+ * beforeSelectColumns: (from, to, highlight) => {
706
+ * // Extend the column selection by one column left and one column right.
707
+ * from.col = Math.max(from.col - 1, 0);
708
+ * to.col = Math.min(to.col + 1, this.countCols() - 1);
709
+ * }
710
+ * })
711
+ * ```
712
+ * :::
713
+ *
714
+ * ::: only-for react
715
+ * ```jsx
716
+ * <HotTable
717
+ * beforeSelectColumns={(from, to, highlight) => {
718
+ * // Extend the column selection by one column left and one column right.
719
+ * from.col = Math.max(from.col - 1, 0);
720
+ * to.col = Math.min(to.col + 1, this.countCols() - 1);
721
+ * }}
722
+ * />
723
+ * ```
724
+ * :::
725
+ */
726
+ 'beforeSelectColumns',
727
+ /**
728
+ * Fired after one or more columns are selected (e.g. During mouse header click or {@link Core#selectColumns} API call).
729
+ *
730
+ * @since 14.0.0
731
+ * @event Hooks#afterSelectColumns
732
+ * @param {CellCoords} from Selection start coords object.
733
+ * @param {CellCoords} to Selection end coords object.
734
+ * @param {CellCoords} highlight Selection cell focus coords object.
735
+ */
736
+ 'afterSelectColumns',
737
+ /**
738
+ * Fired before one or more rows are selected (e.g. During mouse header click or {@link Core#selectRows} API call).
739
+ *
740
+ * @since 14.0.0
741
+ * @event Hooks#beforeSelectRows
742
+ * @param {CellCoords} from Selection start coords object.
743
+ * @param {CellCoords} to Selection end coords object.
744
+ * @param {CellCoords} highlight Selection cell focus coords object.
745
+ * @example
746
+ * ::: only-for javascript
747
+ * ```js
748
+ * new Handsontable(element, {
749
+ * beforeSelectRows: (from, to, highlight) => {
750
+ * // Extend the row selection by one row up and one row bottom more.
751
+ * from.row = Math.max(from.row - 1, 0);
752
+ * to.row = Math.min(to.row + 1, this.countRows() - 1);
753
+ * }
754
+ * })
755
+ * ```
756
+ * :::
757
+ *
758
+ * ::: only-for react
759
+ * ```jsx
760
+ * <HotTable
761
+ * beforeSelectRows={(from, to, highlight) => {
762
+ * // Extend the row selection by one row up and one row bottom more.
763
+ * from.row = Math.max(from.row - 1, 0);
764
+ * to.row = Math.min(to.row + 1, this.countRows() - 1);
765
+ * }}
766
+ * />
767
+ * ```
768
+ * :::
769
+ */
770
+ 'beforeSelectRows',
771
+ /**
772
+ * Fired after one or more rows are selected (e.g. During mouse header click or {@link Core#selectRows} API call).
773
+ *
774
+ * @since 14.0.0
775
+ * @event Hooks#afterSelectRows
776
+ * @param {CellCoords} from Selection start coords object.
777
+ * @param {CellCoords} to Selection end coords object.
778
+ * @param {CellCoords} highlight Selection cell focus coords object.
779
+ */
780
+ 'afterSelectRows',
658
781
  /**
659
782
  * Fired after cell meta is changed.
660
783
  *
@@ -1110,6 +1233,13 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
1110
1233
  * @param {CellCoords} coords CellCoords instance.
1111
1234
  */
1112
1235
  'beforeSetRangeEnd',
1236
+ /**
1237
+ * Fired before applying selection coordinates to the renderable coordinates for Walkontable (rendering engine).
1238
+ *
1239
+ * @since 14.0.0
1240
+ * @event Hooks#beforeSelectionHighlightSet
1241
+ */
1242
+ 'beforeSelectionHighlightSet',
1113
1243
  /**
1114
1244
  * Fired before the logic of handling a touch scroll, when user started scrolling on a touch-enabled device.
1115
1245
  *
@@ -1166,6 +1296,17 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
1166
1296
  * @param {number} column Visual column index.
1167
1297
  */
1168
1298
  'modifyColWidth',
1299
+ /**
1300
+ * Fired when focusing a cell or a header element. Allows replacing the element to be focused by returning a
1301
+ * different HTML element.
1302
+ *
1303
+ * @since 14.0.0
1304
+ * @event Hooks#modifyFocusedElement
1305
+ * @param {number} row Row index.
1306
+ * @param {number} column Column index.
1307
+ * @param {HTMLElement|undefined} focusedElement The element to be focused.
1308
+ */
1309
+ 'modifyFocusedElement',
1169
1310
  /**
1170
1311
  * Fired when a row header index is about to be modified by a callback function.
1171
1312
  *
@@ -1223,6 +1364,16 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
1223
1364
  * @returns {undefined|number[]}
1224
1365
  */
1225
1366
  'modifyGetCellCoords',
1367
+ /**
1368
+ * Used to modify the cell coordinates when the table is activated (going into the listen mode).
1369
+ *
1370
+ * @event Hooks#modifyFocusOnTabNavigation
1371
+ * @since 14.0.0
1372
+ * @param {'from_above' | 'from_below'} tabActivationDir The browsers Tab navigation direction. Depending on
1373
+ * whether the user activated the table from the element above or below, another cell can be selected.
1374
+ * @param {CellCoords} visualCoords The coords that will be used to select a cell.
1375
+ */
1376
+ 'modifyFocusOnTabNavigation',
1226
1377
  /**
1227
1378
  * Allows modify the visual row index that is used to retrieve the row header element (TH) before it's
1228
1379
  * highlighted (proper CSS class names are added). Modifying the visual row index allows building a custom
@@ -2380,7 +2531,7 @@ const REMOVED_HOOKS = new Map([['modifyRow', '8.0.0'], ['modifyCol', '8.0.0'], [
2380
2531
  * @type {Map<string, string>}
2381
2532
  */
2382
2533
  /* eslint-enable jsdoc/require-description-complete-sentence */
2383
- const DEPRECATED_HOOKS = new Map([]);
2534
+ const DEPRECATED_HOOKS = new Map([['beforeRemoveCellClassNames', 'The hook "beforeRemoveCellClassNames" is deprecated and will be removed in the next major release.']]);
2384
2535
  class Hooks {
2385
2536
  static getSingleton() {
2386
2537
  return getGlobalSingleton();