handsontable 0.0.0-next-9059914-20231025 → 0.0.0-next-cecf979-20231026

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 (447) 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 +51 -15
  98. package/dist/handsontable.full.css +51 -15
  99. package/dist/handsontable.full.js +13360 -7840
  100. package/dist/handsontable.full.min.css +7 -7
  101. package/dist/handsontable.full.min.js +136 -136
  102. package/dist/handsontable.js +20955 -15435
  103. package/dist/handsontable.min.css +6 -6
  104. package/dist/handsontable.min.js +24 -24
  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/defaultShortcutsList.js +88 -0
  175. package/plugins/contextMenu/menu/defaultShortcutsList.mjs +84 -0
  176. package/plugins/contextMenu/menu/index.js +9 -0
  177. package/plugins/contextMenu/menu/index.mjs +1 -0
  178. package/plugins/contextMenu/{menu.js → menu/menu.js} +145 -421
  179. package/plugins/contextMenu/{menu.mjs → menu/menu.mjs} +146 -422
  180. package/plugins/contextMenu/menu/menuItemRenderer.js +58 -0
  181. package/plugins/contextMenu/menu/menuItemRenderer.mjs +54 -0
  182. package/plugins/contextMenu/menu/navigator.js +27 -0
  183. package/plugins/contextMenu/menu/navigator.mjs +23 -0
  184. package/plugins/contextMenu/menu/positioner.js +213 -0
  185. package/plugins/contextMenu/menu/positioner.mjs +209 -0
  186. package/plugins/contextMenu/menu/shortcuts.js +114 -0
  187. package/plugins/contextMenu/menu/shortcuts.mjs +110 -0
  188. package/plugins/contextMenu/menu/utils.js +177 -0
  189. package/plugins/contextMenu/menu/utils.mjs +163 -0
  190. package/plugins/contextMenu/predefinedItems/alignment.js +7 -0
  191. package/plugins/contextMenu/predefinedItems/alignment.mjs +7 -0
  192. package/plugins/contextMenu/predefinedItems/clearColumn.js +5 -3
  193. package/plugins/contextMenu/predefinedItems/clearColumn.mjs +5 -3
  194. package/plugins/contextMenu/predefinedItems/columnLeft.js +5 -3
  195. package/plugins/contextMenu/predefinedItems/columnLeft.mjs +5 -3
  196. package/plugins/contextMenu/predefinedItems/columnRight.js +5 -3
  197. package/plugins/contextMenu/predefinedItems/columnRight.mjs +5 -3
  198. package/plugins/contextMenu/{predefinedItems.js → predefinedItems/index.js} +14 -14
  199. package/plugins/contextMenu/predefinedItems/index.mjs +68 -0
  200. package/plugins/contextMenu/predefinedItems/readOnly.js +7 -0
  201. package/plugins/contextMenu/predefinedItems/readOnly.mjs +7 -0
  202. package/plugins/contextMenu/predefinedItems/removeColumn.js +7 -5
  203. package/plugins/contextMenu/predefinedItems/removeColumn.mjs +5 -3
  204. package/plugins/contextMenu/predefinedItems/removeRow.js +7 -5
  205. package/plugins/contextMenu/predefinedItems/removeRow.mjs +5 -3
  206. package/plugins/contextMenu/predefinedItems/rowAbove.js +5 -3
  207. package/plugins/contextMenu/predefinedItems/rowAbove.mjs +5 -3
  208. package/plugins/contextMenu/predefinedItems/rowBelow.js +5 -3
  209. package/plugins/contextMenu/predefinedItems/rowBelow.mjs +5 -3
  210. package/plugins/contextMenu/utils.js +35 -151
  211. package/plugins/contextMenu/utils.mjs +35 -144
  212. package/plugins/copyPaste/contextMenuItem/copy.js +7 -0
  213. package/plugins/copyPaste/contextMenuItem/copy.mjs +7 -0
  214. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.js +9 -1
  215. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.mjs +9 -1
  216. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.js +9 -1
  217. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.mjs +9 -1
  218. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.js +9 -1
  219. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.mjs +9 -1
  220. package/plugins/copyPaste/contextMenuItem/cut.js +7 -0
  221. package/plugins/copyPaste/contextMenuItem/cut.mjs +7 -0
  222. package/plugins/copyPaste/copyPaste.js +127 -78
  223. package/plugins/copyPaste/copyPaste.mjs +128 -79
  224. package/plugins/customBorders/customBorders.js +23 -20
  225. package/plugins/customBorders/customBorders.mjs +24 -21
  226. package/plugins/dropdownMenu/dropdownMenu.d.ts +1 -1
  227. package/plugins/dropdownMenu/dropdownMenu.js +127 -40
  228. package/plugins/dropdownMenu/dropdownMenu.mjs +126 -39
  229. package/plugins/filters/component/_base.js +23 -8
  230. package/plugins/filters/component/_base.mjs +23 -8
  231. package/plugins/filters/component/actionBar.js +29 -27
  232. package/plugins/filters/component/actionBar.mjs +26 -23
  233. package/plugins/filters/component/condition.js +46 -59
  234. package/plugins/filters/component/condition.mjs +40 -52
  235. package/plugins/filters/component/operators.js +21 -22
  236. package/plugins/filters/component/operators.mjs +18 -18
  237. package/plugins/filters/component/value.js +35 -26
  238. package/plugins/filters/component/value.mjs +32 -22
  239. package/plugins/filters/constants.mjs +1 -1
  240. package/plugins/filters/filters.js +106 -62
  241. package/plugins/filters/filters.mjs +99 -55
  242. package/plugins/filters/menu/focusController.js +123 -0
  243. package/plugins/filters/menu/focusController.mjs +119 -0
  244. package/plugins/filters/menu/focusNavigator.js +30 -0
  245. package/plugins/filters/menu/focusNavigator.mjs +26 -0
  246. package/plugins/filters/ui/_base.js +35 -13
  247. package/plugins/filters/ui/_base.mjs +35 -13
  248. package/plugins/filters/ui/input.js +43 -32
  249. package/plugins/filters/ui/input.mjs +42 -30
  250. package/plugins/filters/ui/link.js +44 -12
  251. package/plugins/filters/ui/link.mjs +44 -11
  252. package/plugins/filters/ui/multipleSelect.js +234 -129
  253. package/plugins/filters/ui/multipleSelect.mjs +232 -127
  254. package/plugins/filters/ui/radioInput.js +42 -18
  255. package/plugins/filters/ui/radioInput.mjs +42 -17
  256. package/plugins/filters/ui/select.js +144 -75
  257. package/plugins/filters/ui/select.mjs +142 -72
  258. package/plugins/hiddenColumns/hiddenColumns.mjs +1 -1
  259. package/plugins/hiddenRows/hiddenRows.mjs +1 -1
  260. package/plugins/manualColumnMove/manualColumnMove.js +3 -1
  261. package/plugins/manualColumnMove/manualColumnMove.mjs +3 -1
  262. package/plugins/mergeCells/mergeCells.js +5 -16
  263. package/plugins/mergeCells/mergeCells.mjs +5 -16
  264. package/plugins/multiColumnSorting/multiColumnSorting.js +37 -2
  265. package/plugins/multiColumnSorting/multiColumnSorting.mjs +37 -2
  266. package/plugins/nestedHeaders/nestedHeaders.js +240 -10
  267. package/plugins/nestedHeaders/nestedHeaders.mjs +241 -11
  268. package/plugins/nestedHeaders/stateManager/index.js +102 -3
  269. package/plugins/nestedHeaders/stateManager/index.mjs +102 -3
  270. package/plugins/nestedRows/nestedRows.js +41 -0
  271. package/plugins/nestedRows/nestedRows.mjs +41 -0
  272. package/plugins/nestedRows/ui/headers.js +11 -0
  273. package/plugins/nestedRows/ui/headers.mjs +12 -1
  274. package/renderers/autocompleteRenderer/autocompleteRenderer.js +8 -0
  275. package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +8 -0
  276. package/renderers/baseRenderer/baseRenderer.js +17 -0
  277. package/renderers/baseRenderer/baseRenderer.mjs +18 -1
  278. package/renderers/checkboxRenderer/checkboxRenderer.js +9 -4
  279. package/renderers/checkboxRenderer/checkboxRenderer.mjs +9 -4
  280. package/renderers/dateRenderer/dateRenderer.d.ts +5 -0
  281. package/renderers/dateRenderer/dateRenderer.js +29 -0
  282. package/renderers/dateRenderer/dateRenderer.mjs +24 -0
  283. package/renderers/dateRenderer/index.d.ts +1 -0
  284. package/renderers/dateRenderer/index.js +6 -0
  285. package/renderers/dateRenderer/index.mjs +1 -0
  286. package/renderers/handsontableRenderer/handsontableRenderer.d.ts +5 -0
  287. package/renderers/handsontableRenderer/handsontableRenderer.js +29 -0
  288. package/renderers/handsontableRenderer/handsontableRenderer.mjs +24 -0
  289. package/renderers/handsontableRenderer/index.d.ts +1 -0
  290. package/renderers/handsontableRenderer/index.js +6 -0
  291. package/renderers/handsontableRenderer/index.mjs +1 -0
  292. package/renderers/index.d.ts +9 -0
  293. package/renderers/selectRenderer/index.d.ts +1 -0
  294. package/renderers/selectRenderer/index.js +6 -0
  295. package/renderers/selectRenderer/index.mjs +1 -0
  296. package/renderers/selectRenderer/selectRenderer.d.ts +5 -0
  297. package/renderers/selectRenderer/selectRenderer.js +27 -0
  298. package/renderers/selectRenderer/selectRenderer.mjs +22 -0
  299. package/selection/highlight/highlight.js +256 -71
  300. package/selection/highlight/highlight.mjs +250 -71
  301. package/selection/highlight/types/activeHeader.js +10 -8
  302. package/selection/highlight/types/activeHeader.mjs +10 -8
  303. package/selection/highlight/types/area.js +6 -18
  304. package/selection/highlight/types/area.mjs +6 -18
  305. package/selection/highlight/types/areaLayered.js +31 -0
  306. package/selection/highlight/types/areaLayered.mjs +26 -0
  307. package/selection/highlight/types/column.js +27 -0
  308. package/selection/highlight/types/column.mjs +22 -0
  309. package/selection/highlight/types/customSelection.js +7 -9
  310. package/selection/highlight/types/customSelection.mjs +7 -9
  311. package/selection/highlight/types/fill.js +5 -7
  312. package/selection/highlight/types/fill.mjs +5 -7
  313. package/selection/highlight/types/{cell.js → focus.js} +5 -7
  314. package/selection/highlight/types/{cell.mjs → focus.mjs} +5 -7
  315. package/selection/highlight/types/header.js +9 -18
  316. package/selection/highlight/types/header.mjs +9 -18
  317. package/selection/highlight/types/row.js +27 -0
  318. package/selection/highlight/types/row.mjs +22 -0
  319. package/selection/highlight/visualSelection.js +31 -27
  320. package/selection/highlight/visualSelection.mjs +31 -27
  321. package/selection/index.js +4 -7
  322. package/selection/index.mjs +2 -3
  323. package/selection/mouseEventHandler.js +7 -1
  324. package/selection/mouseEventHandler.mjs +7 -1
  325. package/selection/range.js +8 -8
  326. package/selection/range.mjs +8 -8
  327. package/selection/selection.js +321 -152
  328. package/selection/selection.mjs +318 -151
  329. package/selection/transformation.js +232 -90
  330. package/selection/transformation.mjs +232 -90
  331. package/selection/utils.js +15 -21
  332. package/selection/utils.mjs +16 -21
  333. package/settings.d.ts +4 -0
  334. package/shortcutContexts/commands/editor/closeAndSave.js +12 -0
  335. package/shortcutContexts/commands/editor/closeAndSave.mjs +8 -0
  336. package/shortcutContexts/commands/editor/closeWithoutSaving.js +12 -0
  337. package/shortcutContexts/commands/editor/closeWithoutSaving.mjs +8 -0
  338. package/shortcutContexts/commands/editor/fastOpen.js +16 -0
  339. package/shortcutContexts/commands/editor/fastOpen.mjs +12 -0
  340. package/shortcutContexts/commands/editor/index.js +16 -0
  341. package/shortcutContexts/commands/editor/index.mjs +12 -0
  342. package/shortcutContexts/commands/editor/open.js +27 -0
  343. package/shortcutContexts/commands/editor/open.mjs +23 -0
  344. package/shortcutContexts/commands/emptySelectedCells.js +11 -0
  345. package/shortcutContexts/commands/emptySelectedCells.mjs +7 -0
  346. package/shortcutContexts/commands/extendCellsSelection/down.js +15 -0
  347. package/shortcutContexts/commands/extendCellsSelection/down.mjs +11 -0
  348. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +25 -0
  349. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +21 -0
  350. package/shortcutContexts/commands/extendCellsSelection/index.js +26 -0
  351. package/shortcutContexts/commands/extendCellsSelection/index.mjs +22 -0
  352. package/shortcutContexts/commands/extendCellsSelection/left.js +15 -0
  353. package/shortcutContexts/commands/extendCellsSelection/left.mjs +11 -0
  354. package/shortcutContexts/commands/extendCellsSelection/right.js +15 -0
  355. package/shortcutContexts/commands/extendCellsSelection/right.mjs +11 -0
  356. package/shortcutContexts/commands/extendCellsSelection/toColumns.js +19 -0
  357. package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +15 -0
  358. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +29 -0
  359. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +25 -0
  360. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +19 -0
  361. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +15 -0
  362. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +19 -0
  363. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +15 -0
  364. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +29 -0
  365. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +25 -0
  366. package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +29 -0
  367. package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +25 -0
  368. package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +29 -0
  369. package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +25 -0
  370. package/shortcutContexts/commands/extendCellsSelection/toRows.js +19 -0
  371. package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +15 -0
  372. package/shortcutContexts/commands/extendCellsSelection/up.js +15 -0
  373. package/shortcutContexts/commands/extendCellsSelection/up.mjs +11 -0
  374. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +25 -0
  375. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +21 -0
  376. package/shortcutContexts/commands/index.js +35 -0
  377. package/shortcutContexts/commands/index.mjs +31 -0
  378. package/shortcutContexts/commands/moveCellSelection/down.js +13 -0
  379. package/shortcutContexts/commands/moveCellSelection/down.mjs +9 -0
  380. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.js +33 -0
  381. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs +29 -0
  382. package/shortcutContexts/commands/moveCellSelection/index.js +28 -0
  383. package/shortcutContexts/commands/moveCellSelection/index.mjs +24 -0
  384. package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +12 -0
  385. package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +8 -0
  386. package/shortcutContexts/commands/moveCellSelection/inlineStart.js +12 -0
  387. package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +8 -0
  388. package/shortcutContexts/commands/moveCellSelection/left.js +10 -0
  389. package/shortcutContexts/commands/moveCellSelection/left.mjs +6 -0
  390. package/shortcutContexts/commands/moveCellSelection/right.js +10 -0
  391. package/shortcutContexts/commands/moveCellSelection/right.mjs +6 -0
  392. package/shortcutContexts/commands/moveCellSelection/toMostBottom.js +17 -0
  393. package/shortcutContexts/commands/moveCellSelection/toMostBottom.mjs +13 -0
  394. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.js +18 -0
  395. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.mjs +14 -0
  396. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.js +14 -0
  397. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.mjs +10 -0
  398. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.js +17 -0
  399. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.mjs +13 -0
  400. package/shortcutContexts/commands/moveCellSelection/toMostLeft.js +19 -0
  401. package/shortcutContexts/commands/moveCellSelection/toMostLeft.mjs +15 -0
  402. package/shortcutContexts/commands/moveCellSelection/toMostRight.js +21 -0
  403. package/shortcutContexts/commands/moveCellSelection/toMostRight.mjs +17 -0
  404. package/shortcutContexts/commands/moveCellSelection/toMostTop.js +17 -0
  405. package/shortcutContexts/commands/moveCellSelection/toMostTop.mjs +13 -0
  406. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.js +19 -0
  407. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.mjs +15 -0
  408. package/shortcutContexts/commands/moveCellSelection/up.js +13 -0
  409. package/shortcutContexts/commands/moveCellSelection/up.mjs +9 -0
  410. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.js +33 -0
  411. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs +29 -0
  412. package/shortcutContexts/commands/populateSelectedCellsData.js +29 -0
  413. package/shortcutContexts/commands/populateSelectedCellsData.mjs +25 -0
  414. package/shortcutContexts/commands/scrollToFocusedCell.js +35 -0
  415. package/shortcutContexts/commands/scrollToFocusedCell.mjs +31 -0
  416. package/shortcutContexts/commands/selectAll.js +12 -0
  417. package/shortcutContexts/commands/selectAll.mjs +8 -0
  418. package/shortcutContexts/constants.js +13 -0
  419. package/shortcutContexts/constants.mjs +8 -0
  420. package/shortcutContexts/editor.js +25 -0
  421. package/shortcutContexts/editor.mjs +21 -0
  422. package/shortcutContexts/grid.js +163 -0
  423. package/shortcutContexts/grid.mjs +159 -0
  424. package/shortcutContexts/index.js +24 -0
  425. package/shortcutContexts/index.mjs +11 -0
  426. package/shortcuts/context.d.ts +1 -0
  427. package/shortcuts/context.js +23 -4
  428. package/shortcuts/context.mjs +23 -5
  429. package/shortcuts/manager.js +25 -7
  430. package/shortcuts/manager.mjs +26 -7
  431. package/shortcuts/recorder.js +3 -3
  432. package/shortcuts/recorder.mjs +3 -3
  433. package/shortcuts/utils.js +19 -5
  434. package/shortcuts/utils.mjs +18 -4
  435. package/tableView.js +111 -13
  436. package/tableView.mjs +112 -14
  437. package/utils/paginator.js +151 -0
  438. package/utils/paginator.mjs +147 -0
  439. package/3rdparty/walkontable/src/selection.js +0 -295
  440. package/3rdparty/walkontable/src/selection.mjs +0 -290
  441. package/plugins/contextMenu/predefinedItems.mjs +0 -68
  442. package/plugins/copyPaste/focusableElement.js +0 -186
  443. package/plugins/copyPaste/focusableElement.mjs +0 -180
  444. package/selection/highlight/constants.js +0 -15
  445. package/selection/highlight/constants.mjs +0 -6
  446. package/selection/highlight/types/index.js +0 -35
  447. package/selection/highlight/types/index.mjs +0 -31
@@ -1,45 +1,121 @@
1
- import Menu from "../../../plugins/contextMenu/menu.mjs";
1
+ import "core-js/modules/es.error.cause.js";
2
+ function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
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 _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
6
+ 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; } }
7
+ function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
8
+ function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
9
+ function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
10
+ function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
11
+ import { Menu } from "../../../plugins/contextMenu/menu/index.mjs";
2
12
  import { clone, extend } from "../../../helpers/object.mjs";
3
13
  import { arrayEach } from "../../../helpers/array.mjs";
4
14
  import * as C from "../../../i18n/constants.mjs";
5
- import { SEPARATOR } from "../../../plugins/contextMenu/predefinedItems.mjs";
6
- import BaseUI from "./_base.mjs";
7
- const privatePool = new WeakMap();
8
-
15
+ import { SEPARATOR } from "../../../plugins/contextMenu/predefinedItems/index.mjs";
16
+ import { BaseUI } from "./_base.mjs";
9
17
  /**
10
18
  * @private
11
19
  * @class SelectUI
12
20
  */
13
- class SelectUI extends BaseUI {
21
+ var _menu = /*#__PURE__*/new WeakMap();
22
+ var _items = /*#__PURE__*/new WeakMap();
23
+ var _caption = /*#__PURE__*/new WeakMap();
24
+ var _captionElement = /*#__PURE__*/new WeakMap();
25
+ var _dropdown = /*#__PURE__*/new WeakMap();
26
+ var _onMenuSelect = /*#__PURE__*/new WeakSet();
27
+ var _onMenuClosed = /*#__PURE__*/new WeakSet();
28
+ var _onClick = /*#__PURE__*/new WeakSet();
29
+ export class SelectUI extends BaseUI {
14
30
  static get DEFAULTS() {
15
31
  return clone({
16
32
  className: 'htUISelect',
17
- wrapIt: false
33
+ wrapIt: false,
34
+ tabIndex: -1
18
35
  });
19
36
  }
37
+
38
+ /**
39
+ * Instance of {@link Menu}.
40
+ *
41
+ * @type {Menu}
42
+ */
43
+
20
44
  constructor(hotInstance, options) {
21
45
  super(hotInstance, extend(SelectUI.DEFAULTS, options));
22
- privatePool.set(this, {});
23
46
  /**
24
- * Instance of {@link Menu}.
47
+ * On element click listener.
25
48
  *
26
- * @type {Menu}
49
+ * @private
27
50
  */
28
- this.menu = null;
51
+ _classPrivateMethodInitSpec(this, _onClick);
52
+ /**
53
+ * On menu closed listener.
54
+ */
55
+ _classPrivateMethodInitSpec(this, _onMenuClosed);
56
+ /**
57
+ * On menu selected listener.
58
+ *
59
+ * @param {object} command Selected item.
60
+ */
61
+ _classPrivateMethodInitSpec(this, _onMenuSelect);
62
+ _classPrivateFieldInitSpec(this, _menu, {
63
+ writable: true,
64
+ value: null
65
+ });
29
66
  /**
30
67
  * List of available select options.
31
68
  *
32
69
  * @type {Array}
33
70
  */
34
- this.items = [];
71
+ _classPrivateFieldInitSpec(this, _items, {
72
+ writable: true,
73
+ value: []
74
+ });
75
+ /**
76
+ * The reference to the BaseUI instance of the caption.
77
+ *
78
+ * @type {BaseUI}
79
+ */
80
+ _classPrivateFieldInitSpec(this, _caption, {
81
+ writable: true,
82
+ value: void 0
83
+ });
84
+ /**
85
+ * The reference to the table caption element.
86
+ *
87
+ * @type {HTMLTableCaptionElement}
88
+ */
89
+ _classPrivateFieldInitSpec(this, _captionElement, {
90
+ writable: true,
91
+ value: void 0
92
+ });
93
+ /**
94
+ * The reference to the BaseUI instance of the dropdown.
95
+ *
96
+ * @type {BaseUI}
97
+ */
98
+ _classPrivateFieldInitSpec(this, _dropdown, {
99
+ writable: true,
100
+ value: void 0
101
+ });
35
102
  this.registerHooks();
36
103
  }
37
104
 
105
+ /**
106
+ * Gets the instance of the Menu.
107
+ *
108
+ * @returns {Menu}
109
+ */
110
+ getMenu() {
111
+ return _classPrivateFieldGet(this, _menu);
112
+ }
113
+
38
114
  /**
39
115
  * Register all necessary hooks.
40
116
  */
41
117
  registerHooks() {
42
- this.addLocalHook('click', () => this.onClick());
118
+ this.addLocalHook('click', () => _classPrivateMethodGet(this, _onClick, _onClick2).call(this));
43
119
  }
44
120
 
45
121
  /**
@@ -48,9 +124,9 @@ class SelectUI extends BaseUI {
48
124
  * @param {Array} items Array of objects with required keys `key` and `name`.
49
125
  */
50
126
  setItems(items) {
51
- this.items = this.translateNames(items);
52
- if (this.menu) {
53
- this.menu.setMenuItems(this.items);
127
+ _classPrivateFieldSet(this, _items, this.translateNames(items));
128
+ if (_classPrivateFieldGet(this, _menu)) {
129
+ _classPrivateFieldGet(this, _menu).setMenuItems(_classPrivateFieldGet(this, _items));
54
130
  }
55
131
  }
56
132
 
@@ -72,26 +148,25 @@ class SelectUI extends BaseUI {
72
148
  */
73
149
  build() {
74
150
  super.build();
75
- this.menu = new Menu(this.hot, {
151
+ _classPrivateFieldSet(this, _menu, new Menu(this.hot, {
76
152
  className: 'htSelectUI htFiltersConditionsMenu',
77
153
  keepInViewport: false,
78
154
  standalone: true,
79
155
  container: this.options.menuContainer
80
- });
81
- this.menu.setMenuItems(this.items);
156
+ }));
157
+ _classPrivateFieldGet(this, _menu).setMenuItems(_classPrivateFieldGet(this, _items));
82
158
  const caption = new BaseUI(this.hot, {
83
159
  className: 'htUISelectCaption'
84
160
  });
85
161
  const dropdown = new BaseUI(this.hot, {
86
162
  className: 'htUISelectDropdown'
87
163
  });
88
- const priv = privatePool.get(this);
89
- priv.caption = caption;
90
- priv.captionElement = caption.element;
91
- priv.dropdown = dropdown;
164
+ _classPrivateFieldSet(this, _caption, caption);
165
+ _classPrivateFieldSet(this, _captionElement, caption.element);
166
+ _classPrivateFieldSet(this, _dropdown, dropdown);
92
167
  arrayEach([caption, dropdown], element => this._element.appendChild(element.element));
93
- this.menu.addLocalHook('select', command => this.onMenuSelect(command));
94
- this.menu.addLocalHook('afterClose', () => this.onMenuClosed());
168
+ _classPrivateFieldGet(this, _menu).addLocalHook('select', command => _classPrivateMethodGet(this, _onMenuSelect, _onMenuSelect2).call(this, command));
169
+ _classPrivateFieldGet(this, _menu).addLocalHook('afterClose', () => _classPrivateMethodGet(this, _onMenuClosed, _onMenuClosed2).call(this));
95
170
  this.update();
96
171
  }
97
172
 
@@ -106,9 +181,9 @@ class SelectUI extends BaseUI {
106
181
  if (this.options.value) {
107
182
  conditionName = this.options.value.name;
108
183
  } else {
109
- conditionName = this.menu.hot.getTranslatedPhrase(C.FILTERS_CONDITIONS_NONE);
184
+ conditionName = _classPrivateFieldGet(this, _menu).hot.getTranslatedPhrase(C.FILTERS_CONDITIONS_NONE);
110
185
  }
111
- privatePool.get(this).captionElement.textContent = conditionName;
186
+ _classPrivateFieldGet(this, _captionElement).textContent = conditionName;
112
187
  super.update();
113
188
  }
114
189
 
@@ -117,14 +192,25 @@ class SelectUI extends BaseUI {
117
192
  */
118
193
  openOptions() {
119
194
  const rect = this.element.getBoundingClientRect();
120
- if (this.menu) {
121
- this.menu.open();
122
- this.menu.setPosition({
195
+ if (_classPrivateFieldGet(this, _menu)) {
196
+ _classPrivateFieldGet(this, _menu).open();
197
+ _classPrivateFieldGet(this, _menu).setPosition({
123
198
  left: this.hot.isLtr() ? rect.left - 5 : rect.left - 31,
124
199
  top: rect.top - 1,
125
200
  width: rect.width,
126
201
  height: rect.height
127
202
  });
203
+ _classPrivateFieldGet(this, _menu).getNavigator().toFirstItem();
204
+ _classPrivateFieldGet(this, _menu).getKeyboardShortcutsCtrl().addCustomShortcuts([{
205
+ keys: [['Tab'], ['Shift', 'Tab']],
206
+ callback: event => {
207
+ this.closeOptions();
208
+ this.runLocalHooks('tabKeydown', event);
209
+ }
210
+ }, {
211
+ keys: [['Control/Meta', 'A']],
212
+ callback: () => false
213
+ }]);
128
214
  }
129
215
  }
130
216
 
@@ -132,62 +218,46 @@ class SelectUI extends BaseUI {
132
218
  * Close select dropdown menu.
133
219
  */
134
220
  closeOptions() {
135
- if (this.menu) {
136
- this.menu.close();
221
+ if (_classPrivateFieldGet(this, _menu)) {
222
+ _classPrivateFieldGet(this, _menu).close();
137
223
  }
138
224
  }
139
225
 
140
226
  /**
141
- * On menu selected listener.
142
- *
143
- * @private
144
- * @param {object} command Selected item.
227
+ * Focus element.
145
228
  */
146
- onMenuSelect(command) {
147
- if (command.name !== SEPARATOR) {
148
- this.options.value = command;
149
- this.update();
150
- this.runLocalHooks('select', this.options.value);
229
+ focus() {
230
+ if (this.isBuilt()) {
231
+ this.element.focus();
151
232
  }
152
233
  }
153
-
154
- /**
155
- * On menu closed listener.
156
- *
157
- * @private
158
- */
159
- onMenuClosed() {
160
- this.runLocalHooks('afterClose');
161
- }
162
-
163
- /**
164
- * On element click listener.
165
- *
166
- * @private
167
- */
168
- onClick() {
169
- this.openOptions();
170
- }
171
-
172
234
  /**
173
235
  * Destroy instance.
174
236
  */
175
237
  destroy() {
176
- if (this.menu) {
177
- this.menu.destroy();
178
- this.menu = null;
238
+ if (_classPrivateFieldGet(this, _menu)) {
239
+ _classPrivateFieldGet(this, _menu).destroy();
240
+ _classPrivateFieldSet(this, _menu, null);
179
241
  }
180
- const {
181
- caption,
182
- dropdown
183
- } = privatePool.get(this);
184
- if (caption) {
185
- caption.destroy();
242
+ if (_classPrivateFieldGet(this, _caption)) {
243
+ _classPrivateFieldGet(this, _caption).destroy();
186
244
  }
187
- if (dropdown) {
188
- dropdown.destroy();
245
+ if (_classPrivateFieldGet(this, _dropdown)) {
246
+ _classPrivateFieldGet(this, _dropdown).destroy();
189
247
  }
190
248
  super.destroy();
191
249
  }
192
250
  }
193
- export default SelectUI;
251
+ function _onMenuSelect2(command) {
252
+ if (command.name !== SEPARATOR) {
253
+ this.options.value = command;
254
+ this.update();
255
+ this.runLocalHooks('select', this.options.value);
256
+ }
257
+ }
258
+ function _onMenuClosed2() {
259
+ this.runLocalHooks('afterClose');
260
+ }
261
+ function _onClick2() {
262
+ this.openOptions();
263
+ }
@@ -13,7 +13,7 @@ import { rangeEach } from "../../helpers/number.mjs";
13
13
  import { arrayEach, arrayMap, arrayReduce } from "../../helpers/array.mjs";
14
14
  import { isObject } from "../../helpers/object.mjs";
15
15
  import { isUndefined } from "../../helpers/mixed.mjs";
16
- import { SEPARATOR } from "../contextMenu/predefinedItems.mjs";
16
+ import { SEPARATOR } from "../contextMenu/predefinedItems/index.mjs";
17
17
  import Hooks from "../../pluginHooks.mjs";
18
18
  import hideColumnItem from "./contextMenuItem/hideColumn.mjs";
19
19
  import showColumnItem from "./contextMenuItem/showColumn.mjs";
@@ -13,7 +13,7 @@ import { rangeEach } from "../../helpers/number.mjs";
13
13
  import { arrayEach, arrayMap, arrayReduce } from "../../helpers/array.mjs";
14
14
  import { isObject } from "../../helpers/object.mjs";
15
15
  import { isUndefined } from "../../helpers/mixed.mjs";
16
- import { SEPARATOR } from "../contextMenu/predefinedItems.mjs";
16
+ import { SEPARATOR } from "../contextMenu/predefinedItems/index.mjs";
17
17
  import Hooks from "../../pluginHooks.mjs";
18
18
  import hideRowItem from "./contextMenuItem/hideRow.mjs";
19
19
  import showRowItem from "./contextMenuItem/showRow.mjs";
@@ -387,7 +387,9 @@ class ManualColumnMove extends _base.BasePlugin {
387
387
  const priv = privatePool.get(this);
388
388
  const firstVisible = this.hot.view.getFirstFullyVisibleColumn();
389
389
  if (this.isFixedColumnsStart(priv.hoveredColumn) && firstVisible > 0) {
390
- this.hot.scrollViewportTo(void 0, this.hot.columnIndexMapper.getNearestNotHiddenIndex(firstVisible - 1, -1));
390
+ this.hot.scrollViewportTo({
391
+ col: this.hot.columnIndexMapper.getNearestNotHiddenIndex(firstVisible - 1, -1)
392
+ });
391
393
  }
392
394
  const wtTable = this.hot.view._wt.wtTable;
393
395
  const scrollableElement = this.hot.view._wt.wtOverlays.scrollableElement;
@@ -381,7 +381,9 @@ export class ManualColumnMove extends BasePlugin {
381
381
  const priv = privatePool.get(this);
382
382
  const firstVisible = this.hot.view.getFirstFullyVisibleColumn();
383
383
  if (this.isFixedColumnsStart(priv.hoveredColumn) && firstVisible > 0) {
384
- this.hot.scrollViewportTo(void 0, this.hot.columnIndexMapper.getNearestNotHiddenIndex(firstVisible - 1, -1));
384
+ this.hot.scrollViewportTo({
385
+ col: this.hot.columnIndexMapper.getNearestNotHiddenIndex(firstVisible - 1, -1)
386
+ });
385
387
  }
386
388
  const wtTable = this.hot.view._wt.wtTable;
387
389
  const scrollableElement = this.hot.view._wt.wtOverlays.scrollableElement;
@@ -188,9 +188,6 @@ class MergeCells extends _base.BasePlugin {
188
188
  this.addHook('afterDrawSelection', function () {
189
189
  return _this.onAfterDrawSelection(...arguments);
190
190
  });
191
- this.addHook('beforeRemoveCellClassNames', function () {
192
- return _this.onBeforeRemoveCellClassNames(...arguments);
193
- });
194
191
  this.addHook('beforeUndoStackChange', (action, source) => {
195
192
  if (source === 'MergeCells') {
196
193
  return false;
@@ -575,8 +572,11 @@ class MergeCells extends _base.BasePlugin {
575
572
  gridContext.addShortcut({
576
573
  keys: [['Control', 'm']],
577
574
  callback: () => {
578
- this.toggleMerge(this.hot.getSelectedRangeLast());
579
- this.hot.render();
575
+ const range = this.hot.getSelectedRangeLast();
576
+ if (range && !range.isSingleHeader()) {
577
+ this.toggleMerge(range);
578
+ this.hot.render();
579
+ }
580
580
  },
581
581
  runOnlyIf: event => !event.altKey,
582
582
  // right ALT in some systems triggers ALT+CTRL
@@ -1199,16 +1199,5 @@ class MergeCells extends _base.BasePlugin {
1199
1199
  }
1200
1200
  return this.selectionCalculations.getSelectedMergedCellClassName(currentRow, currentColumn, cornersOfSelection, layerLevel);
1201
1201
  }
1202
-
1203
- /**
1204
- * `beforeRemoveCellClassNames` hook callback. Used to remove additional class name from all cells in the table.
1205
- *
1206
- * @private
1207
- * @returns {string[]} An `Array` of `String`s. Each of these strings will act like class names to be removed from
1208
- * all the cells in the table.
1209
- */
1210
- onBeforeRemoveCellClassNames() {
1211
- return this.selectionCalculations.getSelectedMergedCellClassNameToRemove();
1212
- }
1213
1202
  }
1214
1203
  exports.MergeCells = MergeCells;
@@ -182,9 +182,6 @@ export class MergeCells extends BasePlugin {
182
182
  this.addHook('afterDrawSelection', function () {
183
183
  return _this.onAfterDrawSelection(...arguments);
184
184
  });
185
- this.addHook('beforeRemoveCellClassNames', function () {
186
- return _this.onBeforeRemoveCellClassNames(...arguments);
187
- });
188
185
  this.addHook('beforeUndoStackChange', (action, source) => {
189
186
  if (source === 'MergeCells') {
190
187
  return false;
@@ -569,8 +566,11 @@ export class MergeCells extends BasePlugin {
569
566
  gridContext.addShortcut({
570
567
  keys: [['Control', 'm']],
571
568
  callback: () => {
572
- this.toggleMerge(this.hot.getSelectedRangeLast());
573
- this.hot.render();
569
+ const range = this.hot.getSelectedRangeLast();
570
+ if (range && !range.isSingleHeader()) {
571
+ this.toggleMerge(range);
572
+ this.hot.render();
573
+ }
574
574
  },
575
575
  runOnlyIf: event => !event.altKey,
576
576
  // right ALT in some systems triggers ALT+CTRL
@@ -1193,15 +1193,4 @@ export class MergeCells extends BasePlugin {
1193
1193
  }
1194
1194
  return this.selectionCalculations.getSelectedMergedCellClassName(currentRow, currentColumn, cornersOfSelection, layerLevel);
1195
1195
  }
1196
-
1197
- /**
1198
- * `beforeRemoveCellClassNames` hook callback. Used to remove additional class name from all cells in the table.
1199
- *
1200
- * @private
1201
- * @returns {string[]} An `Array` of `String`s. Each of these strings will act like class names to be removed from
1202
- * all the cells in the table.
1203
- */
1204
- onBeforeRemoveCellClassNames() {
1205
- return this.selectionCalculations.getSelectedMergedCellClassNameToRemove();
1206
- }
1207
1196
  }
@@ -12,8 +12,8 @@ const PLUGIN_KEY = 'multiColumnSorting';
12
12
  exports.PLUGIN_KEY = PLUGIN_KEY;
13
13
  const PLUGIN_PRIORITY = 170;
14
14
  exports.PLUGIN_PRIORITY = PLUGIN_PRIORITY;
15
- const APPEND_COLUMN_CONFIG_STRATEGY = 'append';
16
15
  const CONFLICTED_PLUGIN_KEY = 'columnSorting';
16
+ const SHORTCUTS_GROUP = PLUGIN_KEY;
17
17
  (0, _sortService.registerRootComparator)(PLUGIN_KEY, _rootComparator.rootComparator);
18
18
 
19
19
  /**
@@ -113,6 +113,41 @@ class MultiColumnSorting extends _columnSorting.ColumnSorting {
113
113
  super.disablePlugin();
114
114
  }
115
115
 
116
+ /**
117
+ * Register shortcuts responsible for toggling column sorting functionality.
118
+ *
119
+ * @private
120
+ */
121
+ registerShortcuts() {
122
+ super.registerShortcuts();
123
+ this.hot.getShortcutManager().getContext('grid').addShortcut({
124
+ keys: [['Shift', 'Enter']],
125
+ callback: () => {
126
+ const {
127
+ highlight
128
+ } = this.hot.getSelectedRangeLast();
129
+ if (highlight.row === -1 && highlight.col >= 0) {
130
+ this.sort(this.getNextSortConfig(highlight.col, _columnSorting.APPEND_COLUMN_CONFIG_STRATEGY));
131
+ }
132
+ },
133
+ runOnlyIf: () => {
134
+ var _this$hot$getSelected;
135
+ return (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight.isHeader();
136
+ },
137
+ group: SHORTCUTS_GROUP
138
+ });
139
+ }
140
+
141
+ /**
142
+ * Unregister shortcuts responsible for toggling column sorting functionality.
143
+ *
144
+ * @private
145
+ */
146
+ unregisterShortcuts() {
147
+ super.unregisterShortcuts();
148
+ this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);
149
+ }
150
+
116
151
  /**
117
152
  * Sorts the table by chosen columns and orders.
118
153
  *
@@ -262,7 +297,7 @@ class MultiColumnSorting extends _columnSorting.ColumnSorting {
262
297
  if (this.hot.getShortcutManager().isCtrlPressed()) {
263
298
  this.hot.deselectCell();
264
299
  this.hot.selectColumns(coords.col);
265
- this.sort(this.getNextSortConfig(coords.col, APPEND_COLUMN_CONFIG_STRATEGY));
300
+ this.sort(this.getNextSortConfig(coords.col, _columnSorting.APPEND_COLUMN_CONFIG_STRATEGY));
266
301
  } else {
267
302
  this.sort(this.getColumnNextConfig(coords.col));
268
303
  }
@@ -1,4 +1,4 @@
1
- import { ColumnSorting } from "../columnSorting/index.mjs";
1
+ import { APPEND_COLUMN_CONFIG_STRATEGY, ColumnSorting } from "../columnSorting/index.mjs";
2
2
  import { registerRootComparator } from "../columnSorting/sortService/index.mjs";
3
3
  import { wasHeaderClickedProperly } from "../columnSorting/utils.mjs";
4
4
  import { addClass, removeClass } from "../../helpers/dom/element.mjs";
@@ -7,8 +7,8 @@ import { warnAboutPluginsConflict } from "./utils.mjs";
7
7
  import { getClassesToAdd, getClassesToRemove } from "./domHelpers.mjs";
8
8
  export const PLUGIN_KEY = 'multiColumnSorting';
9
9
  export const PLUGIN_PRIORITY = 170;
10
- const APPEND_COLUMN_CONFIG_STRATEGY = 'append';
11
10
  const CONFLICTED_PLUGIN_KEY = 'columnSorting';
11
+ const SHORTCUTS_GROUP = PLUGIN_KEY;
12
12
  registerRootComparator(PLUGIN_KEY, rootComparator);
13
13
 
14
14
  /**
@@ -108,6 +108,41 @@ export class MultiColumnSorting extends ColumnSorting {
108
108
  super.disablePlugin();
109
109
  }
110
110
 
111
+ /**
112
+ * Register shortcuts responsible for toggling column sorting functionality.
113
+ *
114
+ * @private
115
+ */
116
+ registerShortcuts() {
117
+ super.registerShortcuts();
118
+ this.hot.getShortcutManager().getContext('grid').addShortcut({
119
+ keys: [['Shift', 'Enter']],
120
+ callback: () => {
121
+ const {
122
+ highlight
123
+ } = this.hot.getSelectedRangeLast();
124
+ if (highlight.row === -1 && highlight.col >= 0) {
125
+ this.sort(this.getNextSortConfig(highlight.col, APPEND_COLUMN_CONFIG_STRATEGY));
126
+ }
127
+ },
128
+ runOnlyIf: () => {
129
+ var _this$hot$getSelected;
130
+ return (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight.isHeader();
131
+ },
132
+ group: SHORTCUTS_GROUP
133
+ });
134
+ }
135
+
136
+ /**
137
+ * Unregister shortcuts responsible for toggling column sorting functionality.
138
+ *
139
+ * @private
140
+ */
141
+ unregisterShortcuts() {
142
+ super.unregisterShortcuts();
143
+ this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);
144
+ }
145
+
111
146
  /**
112
147
  * Sorts the table by chosen columns and orders.
113
148
  *