handsontable 0.0.0-next-b66c79f-20230713 → 0.0.0-next-08765b9-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 (373) hide show
  1. package/3rdparty/walkontable/src/cell/coords.d.ts +6 -1
  2. package/3rdparty/walkontable/src/cell/coords.js +87 -33
  3. package/3rdparty/walkontable/src/cell/coords.mjs +87 -33
  4. package/3rdparty/walkontable/src/cell/range.d.ts +9 -2
  5. package/3rdparty/walkontable/src/cell/range.js +92 -46
  6. package/3rdparty/walkontable/src/cell/range.mjs +92 -46
  7. package/3rdparty/walkontable/src/core/_base.js +41 -33
  8. package/3rdparty/walkontable/src/core/_base.mjs +41 -33
  9. package/3rdparty/walkontable/src/core/clone.js +8 -5
  10. package/3rdparty/walkontable/src/core/clone.mjs +8 -5
  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 +9 -8
  14. package/3rdparty/walkontable/src/event.mjs +9 -8
  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 +11 -9
  20. package/3rdparty/walkontable/src/overlay/_base.mjs +11 -9
  21. package/3rdparty/walkontable/src/overlay/bottom.js +10 -8
  22. package/3rdparty/walkontable/src/overlay/bottom.mjs +10 -8
  23. package/3rdparty/walkontable/src/overlay/inlineStart.js +2 -6
  24. package/3rdparty/walkontable/src/overlay/inlineStart.mjs +2 -6
  25. package/3rdparty/walkontable/src/overlay/top.js +12 -14
  26. package/3rdparty/walkontable/src/overlay/top.mjs +12 -14
  27. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.js +16 -13
  28. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.mjs +16 -13
  29. package/3rdparty/walkontable/src/overlays.js +75 -80
  30. package/3rdparty/walkontable/src/overlays.mjs +75 -80
  31. package/3rdparty/walkontable/src/scroll.js +27 -24
  32. package/3rdparty/walkontable/src/scroll.mjs +27 -24
  33. package/3rdparty/walkontable/src/{border.js → selection/border/border.js} +7 -12
  34. package/3rdparty/walkontable/src/{border.mjs → selection/border/border.mjs} +7 -12
  35. package/3rdparty/walkontable/src/selection/border/constants.js +16 -0
  36. package/3rdparty/walkontable/src/selection/border/constants.mjs +12 -0
  37. package/3rdparty/walkontable/src/selection/constants.js +62 -0
  38. package/3rdparty/walkontable/src/selection/constants.mjs +51 -0
  39. package/3rdparty/walkontable/src/selection/index.js +26 -0
  40. package/3rdparty/walkontable/src/selection/index.mjs +5 -0
  41. package/3rdparty/walkontable/src/selection/manager.js +259 -0
  42. package/3rdparty/walkontable/src/selection/manager.mjs +254 -0
  43. package/3rdparty/walkontable/src/selection/scanner.js +270 -0
  44. package/3rdparty/walkontable/src/selection/scanner.mjs +267 -0
  45. package/3rdparty/walkontable/src/selection/selection.js +101 -0
  46. package/3rdparty/walkontable/src/selection/selection.mjs +96 -0
  47. package/3rdparty/walkontable/src/settings.js +18 -17
  48. package/3rdparty/walkontable/src/settings.mjs +18 -17
  49. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +9 -0
  50. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +9 -0
  51. package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +9 -0
  52. package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +9 -0
  53. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.js +9 -0
  54. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.mjs +9 -0
  55. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +9 -0
  56. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +9 -0
  57. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +9 -0
  58. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +9 -0
  59. package/3rdparty/walkontable/src/table.js +48 -115
  60. package/3rdparty/walkontable/src/table.mjs +49 -116
  61. package/base.js +2 -2
  62. package/base.mjs +2 -2
  63. package/core/focusCatcher/focusDetector.js +58 -0
  64. package/core/focusCatcher/focusDetector.mjs +54 -0
  65. package/core/focusCatcher/index.js +142 -0
  66. package/core/focusCatcher/index.mjs +138 -0
  67. package/core/index.js +9 -0
  68. package/core/index.mjs +1 -0
  69. package/core.d.ts +6 -3
  70. package/core.js +181 -298
  71. package/core.mjs +181 -298
  72. package/dataMap/metaManager/metaLayers/cellMeta.js +2 -1
  73. package/dataMap/metaManager/metaLayers/cellMeta.mjs +2 -1
  74. package/dataMap/metaManager/metaLayers/globalMeta.js +1 -1
  75. package/dataMap/metaManager/metaLayers/globalMeta.mjs +1 -1
  76. package/dataMap/metaManager/metaSchema.js +41 -0
  77. package/dataMap/metaManager/metaSchema.mjs +41 -0
  78. package/dataMap/metaManager/mods/dynamicCellMeta.js +3 -2
  79. package/dataMap/metaManager/mods/dynamicCellMeta.mjs +3 -2
  80. package/dataMap/metaManager/utils.js +4 -2
  81. package/dataMap/metaManager/utils.mjs +4 -2
  82. package/dist/handsontable.css +19 -3
  83. package/dist/handsontable.full.css +19 -3
  84. package/dist/handsontable.full.js +10739 -7037
  85. package/dist/handsontable.full.min.css +3 -3
  86. package/dist/handsontable.full.min.js +25 -25
  87. package/dist/handsontable.js +24884 -21182
  88. package/dist/handsontable.min.css +3 -3
  89. package/dist/handsontable.min.js +19 -19
  90. package/editorManager.js +11 -75
  91. package/editorManager.mjs +11 -74
  92. package/editors/autocompleteEditor/autocompleteEditor.js +70 -67
  93. package/editors/autocompleteEditor/autocompleteEditor.mjs +70 -67
  94. package/editors/baseEditor/baseEditor.js +1 -1
  95. package/editors/baseEditor/baseEditor.mjs +1 -1
  96. package/editors/dateEditor/dateEditor.js +2 -1
  97. package/editors/dateEditor/dateEditor.mjs +2 -1
  98. package/editors/textEditor/textEditor.js +3 -11
  99. package/editors/textEditor/textEditor.mjs +4 -12
  100. package/helpers/mixed.js +1 -1
  101. package/helpers/mixed.mjs +1 -1
  102. package/helpers/number.d.ts +1 -0
  103. package/helpers/number.js +18 -0
  104. package/helpers/number.mjs +17 -0
  105. package/helpers/object.js +1 -0
  106. package/helpers/object.mjs +1 -0
  107. package/index.js +5 -5
  108. package/index.mjs +5 -5
  109. package/package.json +1 -1
  110. package/pluginHooks.d.ts +7 -1
  111. package/pluginHooks.js +106 -1
  112. package/pluginHooks.mjs +106 -1
  113. package/plugins/autoColumnSize/autoColumnSize.js +4 -1
  114. package/plugins/autoColumnSize/autoColumnSize.mjs +4 -1
  115. package/plugins/collapsibleColumns/collapsibleColumns.js +110 -40
  116. package/plugins/collapsibleColumns/collapsibleColumns.mjs +110 -40
  117. package/plugins/columnSorting/columnSorting.js +40 -1
  118. package/plugins/columnSorting/columnSorting.mjs +40 -3
  119. package/plugins/columnSorting/columnStatesManager.js +2 -1
  120. package/plugins/columnSorting/columnStatesManager.mjs +2 -1
  121. package/plugins/columnSorting/index.js +3 -1
  122. package/plugins/columnSorting/index.mjs +1 -1
  123. package/plugins/comments/commentEditor.js +1 -0
  124. package/plugins/comments/commentEditor.mjs +1 -0
  125. package/plugins/comments/comments.js +253 -191
  126. package/plugins/comments/comments.mjs +252 -192
  127. package/plugins/comments/contextMenuItem/addEditComment.js +41 -0
  128. package/plugins/comments/contextMenuItem/addEditComment.mjs +35 -0
  129. package/plugins/comments/contextMenuItem/readOnlyComment.js +49 -0
  130. package/plugins/comments/contextMenuItem/readOnlyComment.mjs +43 -0
  131. package/plugins/comments/contextMenuItem/removeComment.js +38 -0
  132. package/plugins/comments/contextMenuItem/removeComment.mjs +32 -0
  133. package/plugins/contextMenu/contextMenu.d.ts +1 -1
  134. package/plugins/contextMenu/contextMenu.js +72 -30
  135. package/plugins/contextMenu/contextMenu.mjs +73 -31
  136. package/plugins/contextMenu/predefinedItems/alignment.js +7 -0
  137. package/plugins/contextMenu/predefinedItems/alignment.mjs +7 -0
  138. package/plugins/contextMenu/predefinedItems/clearColumn.js +5 -3
  139. package/plugins/contextMenu/predefinedItems/clearColumn.mjs +5 -3
  140. package/plugins/contextMenu/predefinedItems/columnLeft.js +5 -3
  141. package/plugins/contextMenu/predefinedItems/columnLeft.mjs +5 -3
  142. package/plugins/contextMenu/predefinedItems/columnRight.js +5 -3
  143. package/plugins/contextMenu/predefinedItems/columnRight.mjs +5 -3
  144. package/plugins/contextMenu/predefinedItems/readOnly.js +7 -0
  145. package/plugins/contextMenu/predefinedItems/readOnly.mjs +7 -0
  146. package/plugins/contextMenu/predefinedItems/removeColumn.js +7 -5
  147. package/plugins/contextMenu/predefinedItems/removeColumn.mjs +5 -3
  148. package/plugins/contextMenu/predefinedItems/removeRow.js +7 -5
  149. package/plugins/contextMenu/predefinedItems/removeRow.mjs +5 -3
  150. package/plugins/contextMenu/predefinedItems/rowAbove.js +5 -3
  151. package/plugins/contextMenu/predefinedItems/rowAbove.mjs +5 -3
  152. package/plugins/contextMenu/predefinedItems/rowBelow.js +5 -3
  153. package/plugins/contextMenu/predefinedItems/rowBelow.mjs +5 -3
  154. package/plugins/contextMenu/utils.js +28 -16
  155. package/plugins/contextMenu/utils.mjs +27 -15
  156. package/plugins/copyPaste/contextMenuItem/copy.js +7 -0
  157. package/plugins/copyPaste/contextMenuItem/copy.mjs +7 -0
  158. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.js +9 -1
  159. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.mjs +9 -1
  160. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.js +9 -1
  161. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.mjs +9 -1
  162. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.js +9 -1
  163. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.mjs +9 -1
  164. package/plugins/copyPaste/contextMenuItem/cut.js +7 -0
  165. package/plugins/copyPaste/contextMenuItem/cut.mjs +7 -0
  166. package/plugins/copyPaste/copyPaste.js +12 -6
  167. package/plugins/copyPaste/copyPaste.mjs +12 -6
  168. package/plugins/customBorders/customBorders.js +36 -29
  169. package/plugins/customBorders/customBorders.mjs +37 -30
  170. package/plugins/customBorders/utils.js +3 -3
  171. package/plugins/customBorders/utils.mjs +3 -3
  172. package/plugins/dropdownMenu/dropdownMenu.d.ts +1 -1
  173. package/plugins/dropdownMenu/dropdownMenu.js +89 -32
  174. package/plugins/dropdownMenu/dropdownMenu.mjs +89 -32
  175. package/plugins/filters/conditionCollection.js +6 -5
  176. package/plugins/filters/conditionCollection.mjs +6 -5
  177. package/plugins/filters/filters.js +44 -21
  178. package/plugins/filters/filters.mjs +43 -20
  179. package/plugins/formulas/engine/register.js +3 -3
  180. package/plugins/formulas/engine/register.mjs +3 -3
  181. package/plugins/formulas/engine/settings.js +6 -3
  182. package/plugins/formulas/engine/settings.mjs +6 -3
  183. package/plugins/formulas/formulas.js +151 -143
  184. package/plugins/formulas/formulas.mjs +151 -143
  185. package/plugins/formulas/indexSyncer/axisSyncer.js +115 -79
  186. package/plugins/formulas/indexSyncer/axisSyncer.mjs +115 -79
  187. package/plugins/formulas/indexSyncer/index.js +100 -64
  188. package/plugins/formulas/indexSyncer/index.mjs +100 -64
  189. package/plugins/hiddenColumns/contextMenuItem/showColumn.js +2 -2
  190. package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +2 -2
  191. package/plugins/hiddenColumns/hiddenColumns.js +51 -34
  192. package/plugins/hiddenColumns/hiddenColumns.mjs +51 -34
  193. package/plugins/hiddenRows/contextMenuItem/showRow.js +2 -2
  194. package/plugins/hiddenRows/contextMenuItem/showRow.mjs +2 -2
  195. package/plugins/hiddenRows/hiddenRows.js +50 -33
  196. package/plugins/hiddenRows/hiddenRows.mjs +50 -33
  197. package/plugins/manualRowResize/manualRowResize.js +2 -1
  198. package/plugins/manualRowResize/manualRowResize.mjs +2 -1
  199. package/plugins/mergeCells/mergeCells.js +6 -17
  200. package/plugins/mergeCells/mergeCells.mjs +6 -17
  201. package/plugins/multiColumnSorting/multiColumnSorting.js +37 -2
  202. package/plugins/multiColumnSorting/multiColumnSorting.mjs +37 -2
  203. package/plugins/nestedHeaders/nestedHeaders.js +209 -75
  204. package/plugins/nestedHeaders/nestedHeaders.mjs +208 -74
  205. package/plugins/nestedHeaders/stateManager/headersTree.js +58 -38
  206. package/plugins/nestedHeaders/stateManager/headersTree.mjs +58 -38
  207. package/plugins/nestedHeaders/stateManager/index.js +107 -49
  208. package/plugins/nestedHeaders/stateManager/index.mjs +105 -47
  209. package/plugins/nestedHeaders/stateManager/nodeModifiers/collapse.js +1 -1
  210. package/plugins/nestedHeaders/stateManager/nodeModifiers/collapse.mjs +1 -1
  211. package/plugins/nestedHeaders/stateManager/sourceSettings.js +57 -37
  212. package/plugins/nestedHeaders/stateManager/sourceSettings.mjs +57 -37
  213. package/plugins/nestedHeaders/utils/ghostTable.js +39 -35
  214. package/plugins/nestedHeaders/utils/ghostTable.mjs +39 -35
  215. package/plugins/nestedRows/data/dataManager.js +4 -2
  216. package/plugins/nestedRows/data/dataManager.mjs +4 -2
  217. package/plugins/nestedRows/nestedRows.js +41 -0
  218. package/plugins/nestedRows/nestedRows.mjs +41 -0
  219. package/plugins/persistentState/storage.js +1 -0
  220. package/plugins/persistentState/storage.mjs +1 -0
  221. package/plugins/undoRedo/undoRedo.js +2 -1
  222. package/plugins/undoRedo/undoRedo.mjs +2 -1
  223. package/renderers/checkboxRenderer/checkboxRenderer.js +2 -2
  224. package/renderers/checkboxRenderer/checkboxRenderer.mjs +1 -1
  225. package/selection/highlight/highlight.js +256 -71
  226. package/selection/highlight/highlight.mjs +250 -71
  227. package/selection/highlight/types/activeHeader.js +10 -8
  228. package/selection/highlight/types/activeHeader.mjs +10 -8
  229. package/selection/highlight/types/area.js +6 -18
  230. package/selection/highlight/types/area.mjs +6 -18
  231. package/selection/highlight/types/areaLayered.js +31 -0
  232. package/selection/highlight/types/areaLayered.mjs +26 -0
  233. package/selection/highlight/types/column.js +27 -0
  234. package/selection/highlight/types/column.mjs +22 -0
  235. package/selection/highlight/types/customSelection.js +7 -9
  236. package/selection/highlight/types/customSelection.mjs +7 -9
  237. package/selection/highlight/types/fill.js +5 -7
  238. package/selection/highlight/types/fill.mjs +5 -7
  239. package/selection/highlight/types/{cell.js → focus.js} +5 -7
  240. package/selection/highlight/types/{cell.mjs → focus.mjs} +5 -7
  241. package/selection/highlight/types/header.js +9 -18
  242. package/selection/highlight/types/header.mjs +9 -18
  243. package/selection/highlight/types/row.js +27 -0
  244. package/selection/highlight/types/row.mjs +22 -0
  245. package/selection/highlight/visualSelection.js +41 -33
  246. package/selection/highlight/visualSelection.mjs +41 -33
  247. package/selection/index.js +4 -7
  248. package/selection/index.mjs +2 -3
  249. package/selection/mouseEventHandler.js +1 -1
  250. package/selection/mouseEventHandler.mjs +1 -1
  251. package/selection/range.js +8 -8
  252. package/selection/range.mjs +8 -8
  253. package/selection/selection.js +290 -154
  254. package/selection/selection.mjs +287 -153
  255. package/selection/transformation.js +232 -90
  256. package/selection/transformation.mjs +232 -90
  257. package/selection/utils.js +15 -21
  258. package/selection/utils.mjs +16 -21
  259. package/settings.d.ts +2 -0
  260. package/shortcutContexts/commands/editor/closeAndSave.js +12 -0
  261. package/shortcutContexts/commands/editor/closeAndSave.mjs +8 -0
  262. package/shortcutContexts/commands/editor/closeWithoutSaving.js +12 -0
  263. package/shortcutContexts/commands/editor/closeWithoutSaving.mjs +8 -0
  264. package/shortcutContexts/commands/editor/fastOpen.js +16 -0
  265. package/shortcutContexts/commands/editor/fastOpen.mjs +12 -0
  266. package/shortcutContexts/commands/editor/index.js +16 -0
  267. package/shortcutContexts/commands/editor/index.mjs +12 -0
  268. package/shortcutContexts/commands/editor/open.js +27 -0
  269. package/shortcutContexts/commands/editor/open.mjs +23 -0
  270. package/shortcutContexts/commands/emptySelectedCells.js +11 -0
  271. package/shortcutContexts/commands/emptySelectedCells.mjs +7 -0
  272. package/shortcutContexts/commands/extendCellsSelection/down.js +15 -0
  273. package/shortcutContexts/commands/extendCellsSelection/down.mjs +11 -0
  274. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +21 -0
  275. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +17 -0
  276. package/shortcutContexts/commands/extendCellsSelection/index.js +26 -0
  277. package/shortcutContexts/commands/extendCellsSelection/index.mjs +22 -0
  278. package/shortcutContexts/commands/extendCellsSelection/left.js +15 -0
  279. package/shortcutContexts/commands/extendCellsSelection/left.mjs +11 -0
  280. package/shortcutContexts/commands/extendCellsSelection/right.js +15 -0
  281. package/shortcutContexts/commands/extendCellsSelection/right.mjs +11 -0
  282. package/shortcutContexts/commands/extendCellsSelection/toColumns.js +19 -0
  283. package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +15 -0
  284. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +29 -0
  285. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +25 -0
  286. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +19 -0
  287. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +15 -0
  288. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +19 -0
  289. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +15 -0
  290. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +29 -0
  291. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +25 -0
  292. package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +29 -0
  293. package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +25 -0
  294. package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +29 -0
  295. package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +25 -0
  296. package/shortcutContexts/commands/extendCellsSelection/toRows.js +19 -0
  297. package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +15 -0
  298. package/shortcutContexts/commands/extendCellsSelection/up.js +15 -0
  299. package/shortcutContexts/commands/extendCellsSelection/up.mjs +11 -0
  300. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +21 -0
  301. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +17 -0
  302. package/shortcutContexts/commands/index.js +35 -0
  303. package/shortcutContexts/commands/index.mjs +31 -0
  304. package/shortcutContexts/commands/moveCellSelection/down.js +13 -0
  305. package/shortcutContexts/commands/moveCellSelection/down.mjs +9 -0
  306. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.js +31 -0
  307. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs +27 -0
  308. package/shortcutContexts/commands/moveCellSelection/index.js +28 -0
  309. package/shortcutContexts/commands/moveCellSelection/index.mjs +24 -0
  310. package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +12 -0
  311. package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +8 -0
  312. package/shortcutContexts/commands/moveCellSelection/inlineStart.js +12 -0
  313. package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +8 -0
  314. package/shortcutContexts/commands/moveCellSelection/left.js +10 -0
  315. package/shortcutContexts/commands/moveCellSelection/left.mjs +6 -0
  316. package/shortcutContexts/commands/moveCellSelection/right.js +10 -0
  317. package/shortcutContexts/commands/moveCellSelection/right.mjs +6 -0
  318. package/shortcutContexts/commands/moveCellSelection/toMostBottom.js +17 -0
  319. package/shortcutContexts/commands/moveCellSelection/toMostBottom.mjs +13 -0
  320. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.js +18 -0
  321. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.mjs +14 -0
  322. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.js +14 -0
  323. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.mjs +10 -0
  324. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.js +17 -0
  325. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.mjs +13 -0
  326. package/shortcutContexts/commands/moveCellSelection/toMostLeft.js +19 -0
  327. package/shortcutContexts/commands/moveCellSelection/toMostLeft.mjs +15 -0
  328. package/shortcutContexts/commands/moveCellSelection/toMostRight.js +21 -0
  329. package/shortcutContexts/commands/moveCellSelection/toMostRight.mjs +17 -0
  330. package/shortcutContexts/commands/moveCellSelection/toMostTop.js +17 -0
  331. package/shortcutContexts/commands/moveCellSelection/toMostTop.mjs +13 -0
  332. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.js +19 -0
  333. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.mjs +15 -0
  334. package/shortcutContexts/commands/moveCellSelection/up.js +13 -0
  335. package/shortcutContexts/commands/moveCellSelection/up.mjs +9 -0
  336. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.js +31 -0
  337. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs +27 -0
  338. package/shortcutContexts/commands/populateSelectedCellsData.js +29 -0
  339. package/shortcutContexts/commands/populateSelectedCellsData.mjs +25 -0
  340. package/shortcutContexts/commands/scrollToFocusedCell.js +36 -0
  341. package/shortcutContexts/commands/scrollToFocusedCell.mjs +32 -0
  342. package/shortcutContexts/commands/selectAll.js +10 -0
  343. package/shortcutContexts/commands/selectAll.mjs +6 -0
  344. package/shortcutContexts/constants.js +13 -0
  345. package/shortcutContexts/constants.mjs +8 -0
  346. package/shortcutContexts/editor.js +25 -0
  347. package/shortcutContexts/editor.mjs +21 -0
  348. package/shortcutContexts/grid.js +163 -0
  349. package/shortcutContexts/grid.mjs +159 -0
  350. package/shortcutContexts/index.js +24 -0
  351. package/shortcutContexts/index.mjs +11 -0
  352. package/shortcuts/manager.js +2 -0
  353. package/shortcuts/manager.mjs +2 -0
  354. package/shortcuts/recorder.js +2 -2
  355. package/shortcuts/recorder.mjs +2 -2
  356. package/shortcuts/utils.js +19 -5
  357. package/shortcuts/utils.mjs +18 -4
  358. package/tableView.js +163 -91
  359. package/tableView.mjs +163 -91
  360. package/translations/changesObservable/observable.js +82 -54
  361. package/translations/changesObservable/observable.mjs +82 -54
  362. package/translations/changesObservable/observer.js +24 -11
  363. package/translations/changesObservable/observer.mjs +24 -11
  364. package/translations/maps/linkedPhysicalIndexToValueMap.js +14 -8
  365. package/translations/maps/linkedPhysicalIndexToValueMap.mjs +14 -8
  366. package/utils/dataStructures/tree.js +21 -18
  367. package/utils/dataStructures/tree.mjs +21 -18
  368. package/3rdparty/walkontable/src/selection.js +0 -295
  369. package/3rdparty/walkontable/src/selection.mjs +0 -290
  370. package/selection/highlight/constants.js +0 -15
  371. package/selection/highlight/constants.mjs +0 -6
  372. package/selection/highlight/types/index.js +0 -35
  373. package/selection/highlight/types/index.mjs +0 -31
@@ -11,12 +11,23 @@ var _element = require("../../helpers/dom/element");
11
11
  var _eventManager = _interopRequireDefault(require("../../eventManager"));
12
12
  var _event = require("../../helpers/dom/event");
13
13
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
+ function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
15
+ function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
16
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
17
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
18
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
19
+ function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
20
+ function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
21
+ function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
22
+ function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
23
+ function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } }
14
24
  const PLUGIN_KEY = 'collapsibleColumns';
15
25
  exports.PLUGIN_KEY = PLUGIN_KEY;
16
26
  const PLUGIN_PRIORITY = 290;
17
27
  exports.PLUGIN_PRIORITY = PLUGIN_PRIORITY;
18
28
  const SETTING_KEYS = ['nestedHeaders'];
19
29
  const COLLAPSIBLE_ELEMENT_CLASS = 'collapsibleIndicator';
30
+ const SHORTCUTS_GROUP = PLUGIN_KEY;
20
31
  const actionDictionary = new Map([['collapse', {
21
32
  hideColumn: true,
22
33
  beforeHook: 'beforeColumnCollapse',
@@ -98,7 +109,42 @@ const actionDictionary = new Map([['collapse', {
98
109
  * ```
99
110
  * :::
100
111
  */
112
+ var _collapsedColumnsMap = /*#__PURE__*/new WeakMap();
101
113
  class CollapsibleColumns extends _base.BasePlugin {
114
+ constructor() {
115
+ super(...arguments);
116
+ /**
117
+ * Cached reference to the NestedHeaders plugin.
118
+ *
119
+ * @private
120
+ * @type {NestedHeaders}
121
+ */
122
+ _defineProperty(this, "nestedHeadersPlugin", null);
123
+ /**
124
+ * Event manager instance reference.
125
+ *
126
+ * @private
127
+ * @type {EventManager}
128
+ */
129
+ _defineProperty(this, "eventManager", new _eventManager.default(this));
130
+ /**
131
+ * The NestedHeaders plugin StateManager instance.
132
+ *
133
+ * @private
134
+ * @type {StateManager}
135
+ */
136
+ _defineProperty(this, "headerStateManager", null);
137
+ /**
138
+ * Map of collapsed columns by the plugin.
139
+ *
140
+ * @private
141
+ * @type {HidingMap|null}
142
+ */
143
+ _classPrivateFieldInitSpec(this, _collapsedColumnsMap, {
144
+ writable: true,
145
+ value: null
146
+ });
147
+ }
102
148
  static get PLUGIN_KEY() {
103
149
  return PLUGIN_KEY;
104
150
  }
@@ -111,36 +157,6 @@ class CollapsibleColumns extends _base.BasePlugin {
111
157
  static get SETTING_KEYS() {
112
158
  return [PLUGIN_KEY, ...SETTING_KEYS];
113
159
  }
114
-
115
- /**
116
- * Cached reference to the NestedHeaders plugin.
117
- *
118
- * @private
119
- * @type {NestedHeaders}
120
- */
121
- nestedHeadersPlugin = null;
122
- /**
123
- * Event manager instance reference.
124
- *
125
- * @private
126
- * @type {EventManager}
127
- */
128
- eventManager = new _eventManager.default(this);
129
- /**
130
- * The NestedHeaders plugin StateManager instance.
131
- *
132
- * @private
133
- * @type {StateManager}
134
- */
135
- headerStateManager = null;
136
- /**
137
- * Map of collapsed columns by the plugin.
138
- *
139
- * @private
140
- * @type {HidingMap|null}
141
- */
142
- #collapsedColumnsMap = null;
143
-
144
160
  /**
145
161
  * Checks if the plugin is enabled in the handsontable settings. This method is executed in {@link Hooks#beforeInit}
146
162
  * hook and if it returns `true` then the {@link CollapsibleColumns#enablePlugin} method is called.
@@ -165,7 +181,7 @@ class CollapsibleColumns extends _base.BasePlugin {
165
181
  if (!nestedHeaders) {
166
182
  (0, _console.warn)('You need to configure the Nested Headers plugin in order to use collapsible headers.');
167
183
  }
168
- this.#collapsedColumnsMap = this.hot.columnIndexMapper.createAndRegisterIndexMap(this.pluginName, 'hiding');
184
+ _classPrivateFieldSet(this, _collapsedColumnsMap, this.hot.columnIndexMapper.createAndRegisterIndexMap(this.pluginName, 'hiding'));
169
185
  this.nestedHeadersPlugin = this.hot.getPlugin('nestedHeaders');
170
186
  this.headerStateManager = this.nestedHeadersPlugin.getStateManager();
171
187
  this.addHook('init', () => this.onInit());
@@ -176,6 +192,7 @@ class CollapsibleColumns extends _base.BasePlugin {
176
192
  return _this.onAfterGetColHeader(...arguments);
177
193
  });
178
194
  this.addHook('beforeOnCellMouseDown', (event, coords, TD) => this.onBeforeOnCellMouseDown(event, coords, TD));
195
+ this.registerShortcuts();
179
196
  super.enablePlugin();
180
197
  // @TODO: Workaround for broken plugin initialization abstraction (#6806).
181
198
  this.updatePlugin();
@@ -221,12 +238,64 @@ class CollapsibleColumns extends _base.BasePlugin {
221
238
  */
222
239
  disablePlugin() {
223
240
  this.hot.columnIndexMapper.unregisterMap(this.pluginName);
224
- this.#collapsedColumnsMap = null;
241
+ _classPrivateFieldSet(this, _collapsedColumnsMap, null);
225
242
  this.nestedHeadersPlugin = null;
243
+ this.unregisterShortcuts();
226
244
  this.clearButtons();
227
245
  super.disablePlugin();
228
246
  }
229
247
 
248
+ /**
249
+ * Register shortcuts responsible for toggling collapsible columns.
250
+ *
251
+ * @private
252
+ */
253
+ registerShortcuts() {
254
+ this.hot.getShortcutManager().getContext('grid').addShortcut({
255
+ keys: [['Enter']],
256
+ callback: () => {
257
+ var _this$headerStateMana;
258
+ const {
259
+ row,
260
+ col
261
+ } = this.hot.getSelectedRangeLast().highlight;
262
+ const {
263
+ collapsible,
264
+ isCollapsed,
265
+ columnIndex
266
+ } = (_this$headerStateMana = this.headerStateManager.getHeaderTreeNodeData(row, col)) !== null && _this$headerStateMana !== void 0 ? _this$headerStateMana : {};
267
+ if (!collapsible) {
268
+ return;
269
+ }
270
+ if (isCollapsed) {
271
+ this.expandSection({
272
+ row,
273
+ col: columnIndex
274
+ });
275
+ } else {
276
+ this.collapseSection({
277
+ row,
278
+ col: columnIndex
279
+ });
280
+ }
281
+ },
282
+ runOnlyIf: () => {
283
+ var _this$hot$getSelected;
284
+ return (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight.isHeader();
285
+ },
286
+ group: SHORTCUTS_GROUP
287
+ });
288
+ }
289
+
290
+ /**
291
+ * Unregister shortcuts responsible for toggling collapsible columns.
292
+ *
293
+ * @private
294
+ */
295
+ unregisterShortcuts() {
296
+ this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);
297
+ }
298
+
230
299
  /**
231
300
  * Clears the expand/collapse buttons.
232
301
  *
@@ -347,7 +416,7 @@ class CollapsibleColumns extends _base.BasePlugin {
347
416
  });
348
417
  let isActionPossible = filteredCoords.length > 0;
349
418
  (0, _array.arrayEach)(filteredCoords, _ref2 => {
350
- var _this$headerStateMana;
419
+ var _this$headerStateMana2;
351
420
  let {
352
421
  row,
353
422
  col: column
@@ -355,7 +424,7 @@ class CollapsibleColumns extends _base.BasePlugin {
355
424
  const {
356
425
  collapsible,
357
426
  isCollapsed
358
- } = (_this$headerStateMana = this.headerStateManager.getHeaderSettings(row, column)) != null ? _this$headerStateMana : {};
427
+ } = (_this$headerStateMana2 = this.headerStateManager.getHeaderSettings(row, column)) !== null && _this$headerStateMana2 !== void 0 ? _this$headerStateMana2 : {};
359
428
  if (!collapsible || isCollapsed && action === 'collapse' || !isCollapsed && action === 'expand') {
360
429
  isActionPossible = false;
361
430
  return false;
@@ -398,7 +467,7 @@ class CollapsibleColumns extends _base.BasePlugin {
398
467
  }
399
468
  this.hot.batchExecution(() => {
400
469
  (0, _array.arrayEach)(affectedColumnsIndexes, visualColumn => {
401
- this.#collapsedColumnsMap.setValueAtIndex(this.hot.toPhysicalColumn(visualColumn), actionTranslator.hideColumn);
470
+ _classPrivateFieldGet(this, _collapsedColumnsMap).setValueAtIndex(this.hot.toPhysicalColumn(visualColumn), actionTranslator.hideColumn);
402
471
  });
403
472
  }, true);
404
473
  const isActionPerformed = this.getCollapsedColumns().length !== currentCollapsedColumns.length;
@@ -414,7 +483,7 @@ class CollapsibleColumns extends _base.BasePlugin {
414
483
  * @returns {number[]}
415
484
  */
416
485
  getCollapsedColumns() {
417
- return this.#collapsedColumnsMap.getHiddenIndexes();
486
+ return _classPrivateFieldGet(this, _collapsedColumnsMap).getHiddenIndexes();
418
487
  }
419
488
 
420
489
  /**
@@ -427,12 +496,12 @@ class CollapsibleColumns extends _base.BasePlugin {
427
496
  * values counting from 0 to N).
428
497
  */
429
498
  onAfterGetColHeader(column, TH, headerLevel) {
430
- var _this$headerStateMana2;
499
+ var _this$headerStateMana3;
431
500
  const {
432
501
  collapsible,
433
502
  origColspan,
434
503
  isCollapsed
435
- } = (_this$headerStateMana2 = this.headerStateManager.getHeaderSettings(headerLevel, column)) != null ? _this$headerStateMana2 : {};
504
+ } = (_this$headerStateMana3 = this.headerStateManager.getHeaderSettings(headerLevel, column)) !== null && _this$headerStateMana3 !== void 0 ? _this$headerStateMana3 : {};
436
505
  const isNodeCollapsible = collapsible && origColspan > 1 && column >= this.hot.getSettings().fixedColumnsStart;
437
506
  let collapsibleElement = TH.querySelector(`.${COLLAPSIBLE_ELEMENT_CLASS}`);
438
507
  if (isNodeCollapsible) {
@@ -450,7 +519,8 @@ class CollapsibleColumns extends _base.BasePlugin {
450
519
  (0, _element.fastInnerText)(collapsibleElement, '-');
451
520
  }
452
521
  } else {
453
- collapsibleElement?.remove();
522
+ var _collapsibleElement;
523
+ (_collapsibleElement = collapsibleElement) === null || _collapsibleElement === void 0 ? void 0 : _collapsibleElement.remove();
454
524
  }
455
525
  }
456
526
 
@@ -502,7 +572,7 @@ class CollapsibleColumns extends _base.BasePlugin {
502
572
  * Destroys the plugin instance.
503
573
  */
504
574
  destroy() {
505
- this.#collapsedColumnsMap = null;
575
+ _classPrivateFieldSet(this, _collapsedColumnsMap, null);
506
576
  super.destroy();
507
577
  }
508
578
  }
@@ -1,5 +1,15 @@
1
1
  import "core-js/modules/es.error.cause.js";
2
2
  import "core-js/modules/es.array.push.js";
3
+ function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
4
+ function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
5
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
7
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
8
+ function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
9
+ function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
10
+ function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
11
+ function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
12
+ function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } }
3
13
  import { BasePlugin } from "../base/index.mjs";
4
14
  import { arrayEach, arrayFilter, arrayUnique } from "../../helpers/array.mjs";
5
15
  import { rangeEach } from "../../helpers/number.mjs";
@@ -11,6 +21,7 @@ export const PLUGIN_KEY = 'collapsibleColumns';
11
21
  export const PLUGIN_PRIORITY = 290;
12
22
  const SETTING_KEYS = ['nestedHeaders'];
13
23
  const COLLAPSIBLE_ELEMENT_CLASS = 'collapsibleIndicator';
24
+ const SHORTCUTS_GROUP = PLUGIN_KEY;
14
25
  const actionDictionary = new Map([['collapse', {
15
26
  hideColumn: true,
16
27
  beforeHook: 'beforeColumnCollapse',
@@ -92,7 +103,42 @@ const actionDictionary = new Map([['collapse', {
92
103
  * ```
93
104
  * :::
94
105
  */
106
+ var _collapsedColumnsMap = /*#__PURE__*/new WeakMap();
95
107
  export class CollapsibleColumns extends BasePlugin {
108
+ constructor() {
109
+ super(...arguments);
110
+ /**
111
+ * Cached reference to the NestedHeaders plugin.
112
+ *
113
+ * @private
114
+ * @type {NestedHeaders}
115
+ */
116
+ _defineProperty(this, "nestedHeadersPlugin", null);
117
+ /**
118
+ * Event manager instance reference.
119
+ *
120
+ * @private
121
+ * @type {EventManager}
122
+ */
123
+ _defineProperty(this, "eventManager", new EventManager(this));
124
+ /**
125
+ * The NestedHeaders plugin StateManager instance.
126
+ *
127
+ * @private
128
+ * @type {StateManager}
129
+ */
130
+ _defineProperty(this, "headerStateManager", null);
131
+ /**
132
+ * Map of collapsed columns by the plugin.
133
+ *
134
+ * @private
135
+ * @type {HidingMap|null}
136
+ */
137
+ _classPrivateFieldInitSpec(this, _collapsedColumnsMap, {
138
+ writable: true,
139
+ value: null
140
+ });
141
+ }
96
142
  static get PLUGIN_KEY() {
97
143
  return PLUGIN_KEY;
98
144
  }
@@ -105,36 +151,6 @@ export class CollapsibleColumns extends BasePlugin {
105
151
  static get SETTING_KEYS() {
106
152
  return [PLUGIN_KEY, ...SETTING_KEYS];
107
153
  }
108
-
109
- /**
110
- * Cached reference to the NestedHeaders plugin.
111
- *
112
- * @private
113
- * @type {NestedHeaders}
114
- */
115
- nestedHeadersPlugin = null;
116
- /**
117
- * Event manager instance reference.
118
- *
119
- * @private
120
- * @type {EventManager}
121
- */
122
- eventManager = new EventManager(this);
123
- /**
124
- * The NestedHeaders plugin StateManager instance.
125
- *
126
- * @private
127
- * @type {StateManager}
128
- */
129
- headerStateManager = null;
130
- /**
131
- * Map of collapsed columns by the plugin.
132
- *
133
- * @private
134
- * @type {HidingMap|null}
135
- */
136
- #collapsedColumnsMap = null;
137
-
138
154
  /**
139
155
  * Checks if the plugin is enabled in the handsontable settings. This method is executed in {@link Hooks#beforeInit}
140
156
  * hook and if it returns `true` then the {@link CollapsibleColumns#enablePlugin} method is called.
@@ -159,7 +175,7 @@ export class CollapsibleColumns extends BasePlugin {
159
175
  if (!nestedHeaders) {
160
176
  warn('You need to configure the Nested Headers plugin in order to use collapsible headers.');
161
177
  }
162
- this.#collapsedColumnsMap = this.hot.columnIndexMapper.createAndRegisterIndexMap(this.pluginName, 'hiding');
178
+ _classPrivateFieldSet(this, _collapsedColumnsMap, this.hot.columnIndexMapper.createAndRegisterIndexMap(this.pluginName, 'hiding'));
163
179
  this.nestedHeadersPlugin = this.hot.getPlugin('nestedHeaders');
164
180
  this.headerStateManager = this.nestedHeadersPlugin.getStateManager();
165
181
  this.addHook('init', () => this.onInit());
@@ -170,6 +186,7 @@ export class CollapsibleColumns extends BasePlugin {
170
186
  return _this.onAfterGetColHeader(...arguments);
171
187
  });
172
188
  this.addHook('beforeOnCellMouseDown', (event, coords, TD) => this.onBeforeOnCellMouseDown(event, coords, TD));
189
+ this.registerShortcuts();
173
190
  super.enablePlugin();
174
191
  // @TODO: Workaround for broken plugin initialization abstraction (#6806).
175
192
  this.updatePlugin();
@@ -215,12 +232,64 @@ export class CollapsibleColumns extends BasePlugin {
215
232
  */
216
233
  disablePlugin() {
217
234
  this.hot.columnIndexMapper.unregisterMap(this.pluginName);
218
- this.#collapsedColumnsMap = null;
235
+ _classPrivateFieldSet(this, _collapsedColumnsMap, null);
219
236
  this.nestedHeadersPlugin = null;
237
+ this.unregisterShortcuts();
220
238
  this.clearButtons();
221
239
  super.disablePlugin();
222
240
  }
223
241
 
242
+ /**
243
+ * Register shortcuts responsible for toggling collapsible columns.
244
+ *
245
+ * @private
246
+ */
247
+ registerShortcuts() {
248
+ this.hot.getShortcutManager().getContext('grid').addShortcut({
249
+ keys: [['Enter']],
250
+ callback: () => {
251
+ var _this$headerStateMana;
252
+ const {
253
+ row,
254
+ col
255
+ } = this.hot.getSelectedRangeLast().highlight;
256
+ const {
257
+ collapsible,
258
+ isCollapsed,
259
+ columnIndex
260
+ } = (_this$headerStateMana = this.headerStateManager.getHeaderTreeNodeData(row, col)) !== null && _this$headerStateMana !== void 0 ? _this$headerStateMana : {};
261
+ if (!collapsible) {
262
+ return;
263
+ }
264
+ if (isCollapsed) {
265
+ this.expandSection({
266
+ row,
267
+ col: columnIndex
268
+ });
269
+ } else {
270
+ this.collapseSection({
271
+ row,
272
+ col: columnIndex
273
+ });
274
+ }
275
+ },
276
+ runOnlyIf: () => {
277
+ var _this$hot$getSelected;
278
+ return (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight.isHeader();
279
+ },
280
+ group: SHORTCUTS_GROUP
281
+ });
282
+ }
283
+
284
+ /**
285
+ * Unregister shortcuts responsible for toggling collapsible columns.
286
+ *
287
+ * @private
288
+ */
289
+ unregisterShortcuts() {
290
+ this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);
291
+ }
292
+
224
293
  /**
225
294
  * Clears the expand/collapse buttons.
226
295
  *
@@ -341,7 +410,7 @@ export class CollapsibleColumns extends BasePlugin {
341
410
  });
342
411
  let isActionPossible = filteredCoords.length > 0;
343
412
  arrayEach(filteredCoords, _ref2 => {
344
- var _this$headerStateMana;
413
+ var _this$headerStateMana2;
345
414
  let {
346
415
  row,
347
416
  col: column
@@ -349,7 +418,7 @@ export class CollapsibleColumns extends BasePlugin {
349
418
  const {
350
419
  collapsible,
351
420
  isCollapsed
352
- } = (_this$headerStateMana = this.headerStateManager.getHeaderSettings(row, column)) != null ? _this$headerStateMana : {};
421
+ } = (_this$headerStateMana2 = this.headerStateManager.getHeaderSettings(row, column)) !== null && _this$headerStateMana2 !== void 0 ? _this$headerStateMana2 : {};
353
422
  if (!collapsible || isCollapsed && action === 'collapse' || !isCollapsed && action === 'expand') {
354
423
  isActionPossible = false;
355
424
  return false;
@@ -392,7 +461,7 @@ export class CollapsibleColumns extends BasePlugin {
392
461
  }
393
462
  this.hot.batchExecution(() => {
394
463
  arrayEach(affectedColumnsIndexes, visualColumn => {
395
- this.#collapsedColumnsMap.setValueAtIndex(this.hot.toPhysicalColumn(visualColumn), actionTranslator.hideColumn);
464
+ _classPrivateFieldGet(this, _collapsedColumnsMap).setValueAtIndex(this.hot.toPhysicalColumn(visualColumn), actionTranslator.hideColumn);
396
465
  });
397
466
  }, true);
398
467
  const isActionPerformed = this.getCollapsedColumns().length !== currentCollapsedColumns.length;
@@ -408,7 +477,7 @@ export class CollapsibleColumns extends BasePlugin {
408
477
  * @returns {number[]}
409
478
  */
410
479
  getCollapsedColumns() {
411
- return this.#collapsedColumnsMap.getHiddenIndexes();
480
+ return _classPrivateFieldGet(this, _collapsedColumnsMap).getHiddenIndexes();
412
481
  }
413
482
 
414
483
  /**
@@ -421,12 +490,12 @@ export class CollapsibleColumns extends BasePlugin {
421
490
  * values counting from 0 to N).
422
491
  */
423
492
  onAfterGetColHeader(column, TH, headerLevel) {
424
- var _this$headerStateMana2;
493
+ var _this$headerStateMana3;
425
494
  const {
426
495
  collapsible,
427
496
  origColspan,
428
497
  isCollapsed
429
- } = (_this$headerStateMana2 = this.headerStateManager.getHeaderSettings(headerLevel, column)) != null ? _this$headerStateMana2 : {};
498
+ } = (_this$headerStateMana3 = this.headerStateManager.getHeaderSettings(headerLevel, column)) !== null && _this$headerStateMana3 !== void 0 ? _this$headerStateMana3 : {};
430
499
  const isNodeCollapsible = collapsible && origColspan > 1 && column >= this.hot.getSettings().fixedColumnsStart;
431
500
  let collapsibleElement = TH.querySelector(`.${COLLAPSIBLE_ELEMENT_CLASS}`);
432
501
  if (isNodeCollapsible) {
@@ -444,7 +513,8 @@ export class CollapsibleColumns extends BasePlugin {
444
513
  fastInnerText(collapsibleElement, '-');
445
514
  }
446
515
  } else {
447
- collapsibleElement?.remove();
516
+ var _collapsibleElement;
517
+ (_collapsibleElement = collapsibleElement) === null || _collapsibleElement === void 0 ? void 0 : _collapsibleElement.remove();
448
518
  }
449
519
  }
450
520
 
@@ -496,7 +566,7 @@ export class CollapsibleColumns extends BasePlugin {
496
566
  * Destroys the plugin instance.
497
567
  */
498
568
  destroy() {
499
- this.#collapsedColumnsMap = null;
569
+ _classPrivateFieldSet(this, _collapsedColumnsMap, null);
500
570
  super.destroy();
501
571
  }
502
572
  }
@@ -21,7 +21,10 @@ exports.PLUGIN_KEY = PLUGIN_KEY;
21
21
  const PLUGIN_PRIORITY = 50;
22
22
  exports.PLUGIN_PRIORITY = PLUGIN_PRIORITY;
23
23
  const APPEND_COLUMN_CONFIG_STRATEGY = 'append';
24
+ exports.APPEND_COLUMN_CONFIG_STRATEGY = APPEND_COLUMN_CONFIG_STRATEGY;
24
25
  const REPLACE_COLUMN_CONFIG_STRATEGY = 'replace';
26
+ exports.REPLACE_COLUMN_CONFIG_STRATEGY = REPLACE_COLUMN_CONFIG_STRATEGY;
27
+ const SHORTCUTS_GROUP = PLUGIN_KEY;
25
28
  (0, _sortService.registerRootComparator)(PLUGIN_KEY, _rootComparator.rootComparator);
26
29
  _pluginHooks.default.getSingleton().register('beforeColumnSort');
27
30
  _pluginHooks.default.getSingleton().register('afterColumnSort');
@@ -156,6 +159,7 @@ class ColumnSorting extends _base.BasePlugin {
156
159
  if (this.hot.view) {
157
160
  this.loadOrSortBySettings();
158
161
  }
162
+ this.registerShortcuts();
159
163
  super.enablePlugin();
160
164
  }
161
165
 
@@ -186,9 +190,43 @@ class ColumnSorting extends _base.BasePlugin {
186
190
  this.columnStatesManager.destroy();
187
191
  this.columnMetaCache = null;
188
192
  this.columnStatesManager = null;
193
+ this.unregisterShortcuts();
189
194
  super.disablePlugin();
190
195
  }
191
196
 
197
+ /**
198
+ * Register shortcuts responsible for toggling column sorting functionality.
199
+ *
200
+ * @private
201
+ */
202
+ registerShortcuts() {
203
+ this.hot.getShortcutManager().getContext('grid').addShortcut({
204
+ keys: [['Enter']],
205
+ callback: () => {
206
+ const {
207
+ highlight
208
+ } = this.hot.getSelectedRangeLast();
209
+ if (highlight.row === -1 && highlight.col >= 0) {
210
+ this.sort(this.getColumnNextConfig(highlight.col));
211
+ }
212
+ },
213
+ runOnlyIf: () => {
214
+ var _this$hot$getSelected;
215
+ return (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight.isHeader();
216
+ },
217
+ group: SHORTCUTS_GROUP
218
+ });
219
+ }
220
+
221
+ /**
222
+ * Unregister shortcuts responsible for toggling column sorting functionality.
223
+ *
224
+ * @private
225
+ */
226
+ unregisterShortcuts() {
227
+ this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);
228
+ }
229
+
192
230
  // DIFF - MultiColumnSorting & ColumnSorting: changed function documentation.
193
231
  /**
194
232
  * Sorts the table by chosen columns and orders.
@@ -717,9 +755,10 @@ class ColumnSorting extends _base.BasePlugin {
717
755
  * Destroys the plugin instance.
718
756
  */
719
757
  destroy() {
758
+ var _this$columnStatesMan;
720
759
  // TODO: Probably not supported yet by ESLint: https://github.com/eslint/eslint/issues/11045
721
760
  // eslint-disable-next-line no-unused-expressions
722
- this.columnStatesManager?.destroy();
761
+ (_this$columnStatesMan = this.columnStatesManager) === null || _this$columnStatesMan === void 0 ? void 0 : _this$columnStatesMan.destroy();
723
762
  super.destroy();
724
763
  }
725
764
  }
@@ -14,8 +14,9 @@ import { rootComparator } from "./rootComparator.mjs";
14
14
  import { registerRootComparator, sort } from "./sortService/index.mjs";
15
15
  export const PLUGIN_KEY = 'columnSorting';
16
16
  export const PLUGIN_PRIORITY = 50;
17
- const APPEND_COLUMN_CONFIG_STRATEGY = 'append';
18
- const REPLACE_COLUMN_CONFIG_STRATEGY = 'replace';
17
+ export const APPEND_COLUMN_CONFIG_STRATEGY = 'append';
18
+ export const REPLACE_COLUMN_CONFIG_STRATEGY = 'replace';
19
+ const SHORTCUTS_GROUP = PLUGIN_KEY;
19
20
  registerRootComparator(PLUGIN_KEY, rootComparator);
20
21
  Hooks.getSingleton().register('beforeColumnSort');
21
22
  Hooks.getSingleton().register('afterColumnSort');
@@ -150,6 +151,7 @@ export class ColumnSorting extends BasePlugin {
150
151
  if (this.hot.view) {
151
152
  this.loadOrSortBySettings();
152
153
  }
154
+ this.registerShortcuts();
153
155
  super.enablePlugin();
154
156
  }
155
157
 
@@ -180,9 +182,43 @@ export class ColumnSorting extends BasePlugin {
180
182
  this.columnStatesManager.destroy();
181
183
  this.columnMetaCache = null;
182
184
  this.columnStatesManager = null;
185
+ this.unregisterShortcuts();
183
186
  super.disablePlugin();
184
187
  }
185
188
 
189
+ /**
190
+ * Register shortcuts responsible for toggling column sorting functionality.
191
+ *
192
+ * @private
193
+ */
194
+ registerShortcuts() {
195
+ this.hot.getShortcutManager().getContext('grid').addShortcut({
196
+ keys: [['Enter']],
197
+ callback: () => {
198
+ const {
199
+ highlight
200
+ } = this.hot.getSelectedRangeLast();
201
+ if (highlight.row === -1 && highlight.col >= 0) {
202
+ this.sort(this.getColumnNextConfig(highlight.col));
203
+ }
204
+ },
205
+ runOnlyIf: () => {
206
+ var _this$hot$getSelected;
207
+ return (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight.isHeader();
208
+ },
209
+ group: SHORTCUTS_GROUP
210
+ });
211
+ }
212
+
213
+ /**
214
+ * Unregister shortcuts responsible for toggling column sorting functionality.
215
+ *
216
+ * @private
217
+ */
218
+ unregisterShortcuts() {
219
+ this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);
220
+ }
221
+
186
222
  // DIFF - MultiColumnSorting & ColumnSorting: changed function documentation.
187
223
  /**
188
224
  * Sorts the table by chosen columns and orders.
@@ -711,9 +747,10 @@ export class ColumnSorting extends BasePlugin {
711
747
  * Destroys the plugin instance.
712
748
  */
713
749
  destroy() {
750
+ var _this$columnStatesMan;
714
751
  // TODO: Probably not supported yet by ESLint: https://github.com/eslint/eslint/issues/11045
715
752
  // eslint-disable-next-line no-unused-expressions
716
- this.columnStatesManager?.destroy();
753
+ (_this$columnStatesMan = this.columnStatesManager) === null || _this$columnStatesMan === void 0 ? void 0 : _this$columnStatesMan.destroy();
717
754
  super.destroy();
718
755
  }
719
756
  }
@@ -102,7 +102,8 @@ class ColumnStatesManager {
102
102
  * @returns {string|undefined} Sort order (`asc` for ascending, `desc` for descending and undefined for not sorted).
103
103
  */
104
104
  getSortOrderOfColumn(searchedColumn) {
105
- return this.sortingStates.getValueAtIndex(this.hot.toPhysicalColumn(searchedColumn))?.sortOrder;
105
+ var _this$sortingStates$g;
106
+ return (_this$sortingStates$g = this.sortingStates.getValueAtIndex(this.hot.toPhysicalColumn(searchedColumn))) === null || _this$sortingStates$g === void 0 ? void 0 : _this$sortingStates$g.sortOrder;
106
107
  }
107
108
 
108
109
  /**
@@ -99,7 +99,8 @@ export class ColumnStatesManager {
99
99
  * @returns {string|undefined} Sort order (`asc` for ascending, `desc` for descending and undefined for not sorted).
100
100
  */
101
101
  getSortOrderOfColumn(searchedColumn) {
102
- return this.sortingStates.getValueAtIndex(this.hot.toPhysicalColumn(searchedColumn))?.sortOrder;
102
+ var _this$sortingStates$g;
103
+ return (_this$sortingStates$g = this.sortingStates.getValueAtIndex(this.hot.toPhysicalColumn(searchedColumn))) === null || _this$sortingStates$g === void 0 ? void 0 : _this$sortingStates$g.sortOrder;
103
104
  }
104
105
 
105
106
  /**
@@ -4,4 +4,6 @@ exports.__esModule = true;
4
4
  var _columnSorting = require("./columnSorting");
5
5
  exports.PLUGIN_KEY = _columnSorting.PLUGIN_KEY;
6
6
  exports.PLUGIN_PRIORITY = _columnSorting.PLUGIN_PRIORITY;
7
- exports.ColumnSorting = _columnSorting.ColumnSorting;
7
+ exports.ColumnSorting = _columnSorting.ColumnSorting;
8
+ exports.APPEND_COLUMN_CONFIG_STRATEGY = _columnSorting.APPEND_COLUMN_CONFIG_STRATEGY;
9
+ exports.REPLACE_COLUMN_CONFIG_STRATEGY = _columnSorting.REPLACE_COLUMN_CONFIG_STRATEGY;