handsontable 0.0.0-next-a1e4b4f-20230628 → 0.0.0-next-e697250-20230707

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 (456) hide show
  1. package/3rdparty/walkontable/src/cell/coords.d.ts +6 -1
  2. package/3rdparty/walkontable/src/cell/coords.js +50 -28
  3. package/3rdparty/walkontable/src/cell/coords.mjs +50 -28
  4. package/3rdparty/walkontable/src/cell/range.d.ts +9 -2
  5. package/3rdparty/walkontable/src/cell/range.js +69 -36
  6. package/3rdparty/walkontable/src/cell/range.mjs +68 -35
  7. package/3rdparty/walkontable/src/event.js +3 -5
  8. package/3rdparty/walkontable/src/event.mjs +3 -5
  9. package/3rdparty/walkontable/src/overlay/_base.js +6 -7
  10. package/3rdparty/walkontable/src/overlay/_base.mjs +6 -7
  11. package/3rdparty/walkontable/src/overlay/bottom.js +6 -7
  12. package/3rdparty/walkontable/src/overlay/bottom.mjs +6 -7
  13. package/3rdparty/walkontable/src/overlay/top.js +6 -7
  14. package/3rdparty/walkontable/src/overlay/top.mjs +6 -7
  15. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.js +10 -12
  16. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.mjs +10 -12
  17. package/3rdparty/walkontable/src/overlays.js +55 -64
  18. package/3rdparty/walkontable/src/overlays.mjs +55 -64
  19. package/3rdparty/walkontable/src/renderer/table.js +0 -2
  20. package/3rdparty/walkontable/src/renderer/table.mjs +0 -2
  21. package/3rdparty/walkontable/src/scroll.js +20 -23
  22. package/3rdparty/walkontable/src/scroll.mjs +20 -23
  23. package/3rdparty/walkontable/src/selection/border/border.js +1 -0
  24. package/3rdparty/walkontable/src/selection/border/border.mjs +1 -0
  25. package/3rdparty/walkontable/src/selection/manager.js +40 -45
  26. package/3rdparty/walkontable/src/selection/manager.mjs +33 -38
  27. package/3rdparty/walkontable/src/selection/scanner.js +5 -4
  28. package/3rdparty/walkontable/src/selection/scanner.mjs +1 -0
  29. package/3rdparty/walkontable/src/settings.js +13 -15
  30. package/3rdparty/walkontable/src/settings.mjs +13 -15
  31. package/3rdparty/walkontable/src/table.js +23 -26
  32. package/3rdparty/walkontable/src/table.mjs +23 -26
  33. package/CHANGELOG.md +56 -0
  34. package/base.js +2 -4
  35. package/base.mjs +2 -2
  36. package/common.d.ts +1 -1
  37. package/core.d.ts +7 -9
  38. package/core.js +241 -439
  39. package/core.mjs +245 -443
  40. package/dataMap/dataMap.js +1 -0
  41. package/dataMap/dataMap.mjs +1 -0
  42. package/dataMap/dataSource.js +5 -5
  43. package/dataMap/dataSource.mjs +5 -5
  44. package/dataMap/metaManager/lazyFactoryMap.js +1 -0
  45. package/dataMap/metaManager/lazyFactoryMap.mjs +1 -0
  46. package/dataMap/metaManager/metaLayers/cellMeta.js +1 -0
  47. package/dataMap/metaManager/metaLayers/cellMeta.mjs +1 -0
  48. package/dataMap/metaManager/metaSchema.js +33 -24
  49. package/dataMap/metaManager/metaSchema.mjs +33 -24
  50. package/dist/handsontable.css +25 -3
  51. package/dist/handsontable.full.css +25 -3
  52. package/dist/handsontable.full.js +14539 -11358
  53. package/dist/handsontable.full.min.css +5 -5
  54. package/dist/handsontable.full.min.js +137 -125
  55. package/dist/handsontable.js +31414 -28455
  56. package/dist/handsontable.min.css +5 -5
  57. package/dist/handsontable.min.js +11 -3
  58. package/dist/languages/all.js +133 -0
  59. package/dist/languages/ar-AR.js +7 -0
  60. package/dist/languages/cs-CZ.js +7 -0
  61. package/dist/languages/de-CH.js +7 -0
  62. package/dist/languages/de-DE.js +7 -0
  63. package/dist/languages/en-US.js +7 -0
  64. package/dist/languages/es-MX.js +7 -0
  65. package/dist/languages/fr-FR.js +7 -0
  66. package/dist/languages/it-IT.js +7 -0
  67. package/dist/languages/ja-JP.js +7 -0
  68. package/dist/languages/ko-KR.js +7 -0
  69. package/dist/languages/lv-LV.js +7 -0
  70. package/dist/languages/nb-NO.js +7 -0
  71. package/dist/languages/nl-NL.js +7 -0
  72. package/dist/languages/pl-PL.js +7 -0
  73. package/dist/languages/pt-BR.js +7 -0
  74. package/dist/languages/ru-RU.js +7 -0
  75. package/dist/languages/sr-SP.js +7 -0
  76. package/dist/languages/zh-CN.js +7 -0
  77. package/dist/languages/zh-TW.js +7 -0
  78. package/editorManager.js +19 -89
  79. package/editorManager.mjs +24 -93
  80. package/editors/baseEditor/baseEditor.js +1 -0
  81. package/editors/baseEditor/baseEditor.mjs +1 -0
  82. package/editors/textEditor/textEditor.js +14 -20
  83. package/editors/textEditor/textEditor.mjs +16 -22
  84. package/helpers/dom/element.js +0 -11
  85. package/helpers/dom/element.mjs +0 -10
  86. package/helpers/mixed.js +2 -2
  87. package/helpers/mixed.mjs +2 -2
  88. package/helpers/number.d.ts +1 -0
  89. package/helpers/number.js +18 -0
  90. package/helpers/number.mjs +17 -0
  91. package/helpers/object.js +2 -0
  92. package/helpers/object.mjs +2 -0
  93. package/i18n/languages/ar-AR.js +7 -1
  94. package/i18n/languages/cs-CZ.js +7 -1
  95. package/i18n/languages/de-CH.js +7 -1
  96. package/i18n/languages/de-DE.js +7 -1
  97. package/i18n/languages/en-US.js +7 -1
  98. package/i18n/languages/es-MX.js +7 -1
  99. package/i18n/languages/fr-FR.js +7 -1
  100. package/i18n/languages/it-IT.js +7 -1
  101. package/i18n/languages/ja-JP.js +7 -1
  102. package/i18n/languages/ko-KR.js +7 -1
  103. package/i18n/languages/lv-LV.js +7 -1
  104. package/i18n/languages/nb-NO.js +7 -1
  105. package/i18n/languages/nl-NL.js +7 -1
  106. package/i18n/languages/pl-PL.js +7 -1
  107. package/i18n/languages/pt-BR.js +7 -1
  108. package/i18n/languages/ru-RU.js +7 -1
  109. package/i18n/languages/sr-SP.js +7 -1
  110. package/i18n/languages/zh-CN.js +7 -1
  111. package/i18n/languages/zh-TW.js +7 -1
  112. package/languages/all.js +133 -0
  113. package/languages/ar-AR.js +7 -0
  114. package/languages/cs-CZ.js +7 -0
  115. package/languages/de-CH.js +7 -0
  116. package/languages/de-DE.js +7 -0
  117. package/languages/en-US.js +7 -0
  118. package/languages/es-MX.js +7 -0
  119. package/languages/fr-FR.js +7 -0
  120. package/languages/index.js +133 -0
  121. package/languages/it-IT.js +7 -0
  122. package/languages/ja-JP.js +7 -0
  123. package/languages/ko-KR.js +7 -0
  124. package/languages/lv-LV.js +7 -0
  125. package/languages/nb-NO.js +7 -0
  126. package/languages/nl-NL.js +7 -0
  127. package/languages/pl-PL.js +7 -0
  128. package/languages/pt-BR.js +7 -0
  129. package/languages/ru-RU.js +7 -0
  130. package/languages/sr-SP.js +7 -0
  131. package/languages/zh-CN.js +7 -0
  132. package/languages/zh-TW.js +7 -0
  133. package/package.json +3 -2
  134. package/pluginHooks.d.ts +8 -2
  135. package/pluginHooks.js +116 -18
  136. package/pluginHooks.mjs +115 -15
  137. package/plugins/autoColumnSize/autoColumnSize.js +1 -0
  138. package/plugins/autoColumnSize/autoColumnSize.mjs +1 -0
  139. package/plugins/autoRowSize/autoRowSize.js +3 -2
  140. package/plugins/autoRowSize/autoRowSize.mjs +3 -2
  141. package/plugins/autofill/autofill.js +2 -2
  142. package/plugins/autofill/autofill.mjs +3 -3
  143. package/plugins/autofill/utils.js +1 -39
  144. package/plugins/autofill/utils.mjs +0 -37
  145. package/plugins/base/base.js +1 -0
  146. package/plugins/base/base.mjs +1 -0
  147. package/plugins/bindRowsWithHeaders/maps/strictBindsMap.js +1 -0
  148. package/plugins/bindRowsWithHeaders/maps/strictBindsMap.mjs +1 -0
  149. package/plugins/collapsibleColumns/collapsibleColumns.js +82 -24
  150. package/plugins/collapsibleColumns/collapsibleColumns.mjs +82 -24
  151. package/plugins/columnSorting/columnSorting.js +51 -8
  152. package/plugins/columnSorting/columnSorting.mjs +50 -9
  153. package/plugins/columnSorting/columnStatesManager.js +1 -0
  154. package/plugins/columnSorting/columnStatesManager.mjs +1 -0
  155. package/plugins/columnSorting/index.js +4 -2
  156. package/plugins/columnSorting/index.mjs +1 -1
  157. package/plugins/columnSorting/rootComparator.js +1 -0
  158. package/plugins/columnSorting/rootComparator.mjs +1 -0
  159. package/plugins/comments/commentEditor.js +1 -0
  160. package/plugins/comments/commentEditor.mjs +1 -0
  161. package/plugins/comments/comments.js +289 -224
  162. package/plugins/comments/comments.mjs +297 -234
  163. package/plugins/comments/contextMenuItem/addEditComment.js +51 -0
  164. package/plugins/comments/contextMenuItem/addEditComment.mjs +35 -0
  165. package/plugins/comments/contextMenuItem/readOnlyComment.js +63 -0
  166. package/plugins/comments/contextMenuItem/readOnlyComment.mjs +55 -0
  167. package/plugins/comments/contextMenuItem/removeComment.js +48 -0
  168. package/plugins/comments/contextMenuItem/removeComment.mjs +32 -0
  169. package/plugins/contextMenu/contextMenu.d.ts +1 -1
  170. package/plugins/contextMenu/contextMenu.js +81 -29
  171. package/plugins/contextMenu/contextMenu.mjs +82 -30
  172. package/plugins/contextMenu/predefinedItems/alignment.js +7 -0
  173. package/plugins/contextMenu/predefinedItems/alignment.mjs +7 -0
  174. package/plugins/contextMenu/predefinedItems/clearColumn.js +5 -3
  175. package/plugins/contextMenu/predefinedItems/clearColumn.mjs +5 -3
  176. package/plugins/contextMenu/predefinedItems/columnLeft.js +5 -3
  177. package/plugins/contextMenu/predefinedItems/columnLeft.mjs +5 -3
  178. package/plugins/contextMenu/predefinedItems/columnRight.js +5 -3
  179. package/plugins/contextMenu/predefinedItems/columnRight.mjs +5 -3
  180. package/plugins/contextMenu/predefinedItems/readOnly.js +7 -0
  181. package/plugins/contextMenu/predefinedItems/readOnly.mjs +7 -0
  182. package/plugins/contextMenu/predefinedItems/removeColumn.js +8 -5
  183. package/plugins/contextMenu/predefinedItems/removeColumn.mjs +6 -3
  184. package/plugins/contextMenu/predefinedItems/removeRow.js +8 -5
  185. package/plugins/contextMenu/predefinedItems/removeRow.mjs +6 -3
  186. package/plugins/contextMenu/predefinedItems/rowAbove.js +5 -3
  187. package/plugins/contextMenu/predefinedItems/rowAbove.mjs +5 -3
  188. package/plugins/contextMenu/predefinedItems/rowBelow.js +5 -3
  189. package/plugins/contextMenu/predefinedItems/rowBelow.mjs +5 -3
  190. package/plugins/contextMenu/utils.js +25 -16
  191. package/plugins/contextMenu/utils.mjs +24 -15
  192. package/plugins/copyPaste/contextMenuItem/copy.js +7 -0
  193. package/plugins/copyPaste/contextMenuItem/copy.mjs +7 -0
  194. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.js +9 -1
  195. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.mjs +9 -1
  196. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.js +9 -1
  197. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.mjs +9 -1
  198. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.js +9 -1
  199. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.mjs +9 -1
  200. package/plugins/copyPaste/contextMenuItem/cut.js +7 -0
  201. package/plugins/copyPaste/contextMenuItem/cut.mjs +7 -0
  202. package/plugins/copyPaste/copyPaste.js +100 -14
  203. package/plugins/copyPaste/copyPaste.mjs +100 -14
  204. package/plugins/copyPaste/copyableRanges.js +25 -31
  205. package/plugins/copyPaste/copyableRanges.mjs +18 -24
  206. package/plugins/copyPaste/focusableElement.js +219 -0
  207. package/plugins/copyPaste/focusableElement.mjs +213 -0
  208. package/plugins/customBorders/customBorders.d.ts +2 -0
  209. package/plugins/customBorders/customBorders.js +19 -50
  210. package/plugins/customBorders/customBorders.mjs +19 -50
  211. package/plugins/dropdownMenu/dropdownMenu.d.ts +1 -1
  212. package/plugins/dropdownMenu/dropdownMenu.js +94 -30
  213. package/plugins/dropdownMenu/dropdownMenu.mjs +94 -30
  214. package/plugins/exportFile/dataProvider.js +1 -0
  215. package/plugins/exportFile/dataProvider.mjs +1 -0
  216. package/plugins/filters/component/value.js +1 -0
  217. package/plugins/filters/component/value.mjs +1 -0
  218. package/plugins/filters/condition/beginsWith.js +1 -0
  219. package/plugins/filters/condition/beginsWith.mjs +1 -0
  220. package/plugins/filters/condition/between.js +1 -0
  221. package/plugins/filters/condition/between.mjs +1 -0
  222. package/plugins/filters/condition/byValue.js +1 -0
  223. package/plugins/filters/condition/byValue.mjs +1 -0
  224. package/plugins/filters/condition/contains.js +1 -0
  225. package/plugins/filters/condition/contains.mjs +1 -0
  226. package/plugins/filters/condition/date/after.js +1 -0
  227. package/plugins/filters/condition/date/after.mjs +1 -0
  228. package/plugins/filters/condition/date/before.js +1 -0
  229. package/plugins/filters/condition/date/before.mjs +1 -0
  230. package/plugins/filters/condition/endsWith.js +1 -0
  231. package/plugins/filters/condition/endsWith.mjs +1 -0
  232. package/plugins/filters/condition/equal.js +1 -0
  233. package/plugins/filters/condition/equal.mjs +1 -0
  234. package/plugins/filters/condition/greaterThan.js +1 -0
  235. package/plugins/filters/condition/greaterThan.mjs +1 -0
  236. package/plugins/filters/condition/greaterThanOrEqual.js +1 -0
  237. package/plugins/filters/condition/greaterThanOrEqual.mjs +1 -0
  238. package/plugins/filters/condition/lessThan.js +1 -0
  239. package/plugins/filters/condition/lessThan.mjs +1 -0
  240. package/plugins/filters/condition/lessThanOrEqual.js +1 -0
  241. package/plugins/filters/condition/lessThanOrEqual.mjs +1 -0
  242. package/plugins/filters/conditionCollection.js +1 -0
  243. package/plugins/filters/conditionCollection.mjs +1 -0
  244. package/plugins/filters/filters.js +68 -42
  245. package/plugins/filters/filters.mjs +67 -41
  246. package/plugins/filters/ui/multipleSelect.js +1 -0
  247. package/plugins/filters/ui/multipleSelect.mjs +1 -0
  248. package/plugins/formulas/formulas.js +191 -168
  249. package/plugins/formulas/formulas.mjs +191 -168
  250. package/plugins/formulas/indexSyncer/axisSyncer.js +379 -0
  251. package/plugins/formulas/indexSyncer/axisSyncer.mjs +374 -0
  252. package/plugins/formulas/indexSyncer/index.js +225 -0
  253. package/plugins/formulas/indexSyncer/index.mjs +219 -0
  254. package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +1 -0
  255. package/plugins/hiddenColumns/contextMenuItem/hideColumn.mjs +1 -0
  256. package/plugins/hiddenColumns/contextMenuItem/showColumn.js +1 -0
  257. package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +1 -0
  258. package/plugins/hiddenRows/contextMenuItem/hideRow.js +1 -0
  259. package/plugins/hiddenRows/contextMenuItem/hideRow.mjs +1 -0
  260. package/plugins/hiddenRows/contextMenuItem/showRow.js +1 -0
  261. package/plugins/hiddenRows/contextMenuItem/showRow.mjs +1 -0
  262. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +1 -0
  263. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.mjs +1 -0
  264. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +1 -0
  265. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.mjs +1 -0
  266. package/plugins/manualColumnResize/manualColumnResize.js +36 -5
  267. package/plugins/manualColumnResize/manualColumnResize.mjs +36 -5
  268. package/plugins/manualRowMove/manualRowMove.js +31 -12
  269. package/plugins/manualRowMove/manualRowMove.mjs +32 -13
  270. package/plugins/manualRowResize/manualRowResize.js +40 -9
  271. package/plugins/manualRowResize/manualRowResize.mjs +40 -9
  272. package/plugins/mergeCells/calculations/autofill.js +1 -0
  273. package/plugins/mergeCells/calculations/autofill.mjs +1 -0
  274. package/plugins/mergeCells/cellsCollection.js +1 -0
  275. package/plugins/mergeCells/cellsCollection.mjs +1 -0
  276. package/plugins/mergeCells/mergeCells.js +6 -2
  277. package/plugins/mergeCells/mergeCells.mjs +6 -2
  278. package/plugins/multiColumnSorting/multiColumnSorting.js +42 -3
  279. package/plugins/multiColumnSorting/multiColumnSorting.mjs +42 -3
  280. package/plugins/multiColumnSorting/rootComparator.js +1 -0
  281. package/plugins/multiColumnSorting/rootComparator.mjs +1 -0
  282. package/plugins/nestedHeaders/nestedHeaders.js +129 -6
  283. package/plugins/nestedHeaders/nestedHeaders.mjs +129 -6
  284. package/plugins/nestedHeaders/stateManager/headersTree.js +24 -26
  285. package/plugins/nestedHeaders/stateManager/headersTree.mjs +21 -23
  286. package/plugins/nestedHeaders/stateManager/index.js +40 -3
  287. package/plugins/nestedHeaders/stateManager/index.mjs +37 -0
  288. package/plugins/nestedHeaders/stateManager/matrixGenerator.js +1 -0
  289. package/plugins/nestedHeaders/stateManager/settingsNormalizer.js +2 -1
  290. package/plugins/nestedHeaders/stateManager/settingsNormalizer.mjs +1 -0
  291. package/plugins/nestedHeaders/utils/ghostTable.js +30 -35
  292. package/plugins/nestedHeaders/utils/ghostTable.mjs +30 -35
  293. package/plugins/nestedRows/data/dataManager.js +1 -0
  294. package/plugins/nestedRows/data/dataManager.mjs +1 -0
  295. package/plugins/nestedRows/nestedRows.js +53 -7
  296. package/plugins/nestedRows/nestedRows.mjs +53 -7
  297. package/plugins/nestedRows/ui/collapsing.js +1 -0
  298. package/plugins/nestedRows/ui/collapsing.mjs +1 -0
  299. package/plugins/nestedRows/utils/rowMoveController.js +1 -0
  300. package/plugins/nestedRows/utils/rowMoveController.mjs +1 -0
  301. package/plugins/persistentState/storage.js +1 -0
  302. package/plugins/persistentState/storage.mjs +1 -0
  303. package/plugins/registry.js +4 -1
  304. package/plugins/registry.mjs +1 -0
  305. package/plugins/undoRedo/undoRedo.js +1 -1
  306. package/plugins/undoRedo/undoRedo.mjs +1 -1
  307. package/renderers/baseRenderer/baseRenderer.js +0 -3
  308. package/renderers/baseRenderer/baseRenderer.mjs +0 -3
  309. package/renderers/checkboxRenderer/checkboxRenderer.js +2 -2
  310. package/renderers/checkboxRenderer/checkboxRenderer.mjs +1 -1
  311. package/selection/highlight/highlight.js +120 -98
  312. package/selection/highlight/highlight.mjs +118 -96
  313. package/selection/highlight/visualSelection.js +30 -17
  314. package/selection/highlight/visualSelection.mjs +30 -17
  315. package/selection/mouseEventHandler.js +1 -1
  316. package/selection/mouseEventHandler.mjs +1 -1
  317. package/selection/range.js +8 -8
  318. package/selection/range.mjs +8 -8
  319. package/selection/selection.js +246 -153
  320. package/selection/selection.mjs +247 -154
  321. package/selection/transformation.js +233 -96
  322. package/selection/transformation.mjs +230 -93
  323. package/selection/utils.js +12 -35
  324. package/selection/utils.mjs +13 -35
  325. package/settings.d.ts +2 -1
  326. package/shortcutContexts/commands/editor/closeAndSave.js +15 -0
  327. package/shortcutContexts/commands/editor/closeAndSave.mjs +10 -0
  328. package/shortcutContexts/commands/editor/closeWithoutSaving.js +13 -0
  329. package/shortcutContexts/commands/editor/closeWithoutSaving.mjs +8 -0
  330. package/shortcutContexts/commands/editor/fastOpen.js +16 -0
  331. package/shortcutContexts/commands/editor/fastOpen.mjs +11 -0
  332. package/shortcutContexts/commands/editor/index.js +16 -0
  333. package/shortcutContexts/commands/editor/index.mjs +12 -0
  334. package/shortcutContexts/commands/editor/open.js +29 -0
  335. package/shortcutContexts/commands/editor/open.mjs +24 -0
  336. package/shortcutContexts/commands/emptySelectedCells.js +12 -0
  337. package/shortcutContexts/commands/emptySelectedCells.mjs +7 -0
  338. package/shortcutContexts/commands/extendCellsSelection/down.js +15 -0
  339. package/shortcutContexts/commands/extendCellsSelection/down.mjs +10 -0
  340. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +21 -0
  341. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +16 -0
  342. package/shortcutContexts/commands/extendCellsSelection/index.js +26 -0
  343. package/shortcutContexts/commands/extendCellsSelection/index.mjs +22 -0
  344. package/shortcutContexts/commands/extendCellsSelection/left.js +15 -0
  345. package/shortcutContexts/commands/extendCellsSelection/left.mjs +10 -0
  346. package/shortcutContexts/commands/extendCellsSelection/right.js +15 -0
  347. package/shortcutContexts/commands/extendCellsSelection/right.mjs +10 -0
  348. package/shortcutContexts/commands/extendCellsSelection/toColumns.js +19 -0
  349. package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +14 -0
  350. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +22 -0
  351. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +17 -0
  352. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +17 -0
  353. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +12 -0
  354. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +17 -0
  355. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +12 -0
  356. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +40 -0
  357. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +35 -0
  358. package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +40 -0
  359. package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +35 -0
  360. package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +22 -0
  361. package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +17 -0
  362. package/shortcutContexts/commands/extendCellsSelection/toRows.js +19 -0
  363. package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +14 -0
  364. package/shortcutContexts/commands/extendCellsSelection/up.js +15 -0
  365. package/shortcutContexts/commands/extendCellsSelection/up.mjs +10 -0
  366. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +21 -0
  367. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +16 -0
  368. package/shortcutContexts/commands/index.js +53 -0
  369. package/shortcutContexts/commands/index.mjs +49 -0
  370. package/shortcutContexts/commands/moveCellSelection/down.js +12 -0
  371. package/shortcutContexts/commands/moveCellSelection/down.mjs +7 -0
  372. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.js +29 -0
  373. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs +24 -0
  374. package/shortcutContexts/commands/moveCellSelection/index.js +28 -0
  375. package/shortcutContexts/commands/moveCellSelection/index.mjs +24 -0
  376. package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +13 -0
  377. package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +8 -0
  378. package/shortcutContexts/commands/moveCellSelection/inlineStart.js +13 -0
  379. package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +8 -0
  380. package/shortcutContexts/commands/moveCellSelection/left.js +11 -0
  381. package/shortcutContexts/commands/moveCellSelection/left.mjs +6 -0
  382. package/shortcutContexts/commands/moveCellSelection/right.js +11 -0
  383. package/shortcutContexts/commands/moveCellSelection/right.mjs +6 -0
  384. package/shortcutContexts/commands/moveCellSelection/toMostBottom.js +16 -0
  385. package/shortcutContexts/commands/moveCellSelection/toMostBottom.mjs +11 -0
  386. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.js +17 -0
  387. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.mjs +12 -0
  388. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.js +13 -0
  389. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.mjs +8 -0
  390. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.js +16 -0
  391. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.mjs +11 -0
  392. package/shortcutContexts/commands/moveCellSelection/toMostLeft.js +36 -0
  393. package/shortcutContexts/commands/moveCellSelection/toMostLeft.mjs +31 -0
  394. package/shortcutContexts/commands/moveCellSelection/toMostRight.js +36 -0
  395. package/shortcutContexts/commands/moveCellSelection/toMostRight.mjs +31 -0
  396. package/shortcutContexts/commands/moveCellSelection/toMostTop.js +16 -0
  397. package/shortcutContexts/commands/moveCellSelection/toMostTop.mjs +11 -0
  398. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.js +18 -0
  399. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.mjs +13 -0
  400. package/shortcutContexts/commands/moveCellSelection/up.js +12 -0
  401. package/shortcutContexts/commands/moveCellSelection/up.mjs +7 -0
  402. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.js +29 -0
  403. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs +24 -0
  404. package/shortcutContexts/commands/populateSelectedCellsData.js +35 -0
  405. package/shortcutContexts/commands/populateSelectedCellsData.mjs +30 -0
  406. package/shortcutContexts/commands/scrollToFocusedCell.js +38 -0
  407. package/shortcutContexts/commands/scrollToFocusedCell.mjs +33 -0
  408. package/shortcutContexts/commands/selectAll.js +11 -0
  409. package/shortcutContexts/commands/selectAll.mjs +6 -0
  410. package/shortcutContexts/constants.js +19 -0
  411. package/shortcutContexts/constants.mjs +12 -0
  412. package/shortcutContexts/editor.js +29 -0
  413. package/shortcutContexts/editor.mjs +25 -0
  414. package/shortcutContexts/grid.js +252 -0
  415. package/shortcutContexts/grid.mjs +248 -0
  416. package/shortcutContexts/index.js +29 -0
  417. package/shortcutContexts/index.mjs +15 -0
  418. package/shortcuts/context.js +1 -0
  419. package/shortcuts/context.mjs +1 -0
  420. package/shortcuts/manager.js +2 -0
  421. package/shortcuts/manager.mjs +2 -0
  422. package/shortcuts/recorder.js +2 -2
  423. package/shortcuts/recorder.mjs +2 -2
  424. package/shortcuts/utils.js +21 -5
  425. package/shortcuts/utils.mjs +20 -4
  426. package/tableView.js +112 -82
  427. package/tableView.mjs +112 -82
  428. package/translations/changesObservable/observable.js +41 -46
  429. package/translations/changesObservable/observable.mjs +36 -41
  430. package/translations/changesObservable/observer.js +1 -1
  431. package/translations/indexMapper.d.ts +0 -2
  432. package/translations/indexMapper.js +38 -64
  433. package/translations/indexMapper.mjs +39 -64
  434. package/translations/maps/linkedPhysicalIndexToValueMap.js +1 -0
  435. package/translations/maps/linkedPhysicalIndexToValueMap.mjs +1 -0
  436. package/translations/maps/utils/indexesSequence.js +1 -0
  437. package/translations/maps/utils/indexesSequence.mjs +1 -0
  438. package/translations/maps/utils/physicallyIndexed.js +1 -0
  439. package/translations/maps/utils/physicallyIndexed.mjs +1 -0
  440. package/utils/dataStructures/priorityMap.js +1 -0
  441. package/utils/dataStructures/priorityMap.mjs +1 -0
  442. package/utils/dataStructures/tree.js +16 -18
  443. package/utils/dataStructures/tree.mjs +16 -18
  444. package/utils/dataStructures/uniqueMap.js +1 -0
  445. package/utils/dataStructures/uniqueMap.mjs +1 -0
  446. package/utils/dataStructures/uniqueSet.js +1 -0
  447. package/utils/dataStructures/uniqueSet.mjs +1 -0
  448. package/utils/ghostTable.js +1 -0
  449. package/utils/ghostTable.mjs +1 -0
  450. package/utils/parseTable.js +5 -1
  451. package/utils/parseTable.mjs +5 -1
  452. package/utils/staticRegister.js +1 -0
  453. package/utils/staticRegister.mjs +1 -0
  454. package/focusManager.d.ts +0 -12
  455. package/focusManager.js +0 -275
  456. package/focusManager.mjs +0 -270
@@ -13,6 +13,7 @@ require("core-js/modules/es.object.get-own-property-descriptor.js");
13
13
  require("core-js/modules/es.symbol.iterator.js");
14
14
  require("core-js/modules/es.array.from.js");
15
15
  require("core-js/modules/es.array.slice.js");
16
+ require("core-js/modules/es.regexp.to-string.js");
16
17
  require("core-js/modules/es.function.name.js");
17
18
  require("core-js/modules/es.regexp.exec.js");
18
19
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
@@ -68,6 +69,7 @@ var PLUGIN_PRIORITY = 290;
68
69
  exports.PLUGIN_PRIORITY = PLUGIN_PRIORITY;
69
70
  var SETTING_KEYS = ['nestedHeaders'];
70
71
  var COLLAPSIBLE_ELEMENT_CLASS = 'collapsibleIndicator';
72
+ var SHORTCUTS_GROUP = PLUGIN_KEY;
71
73
  var actionDictionary = new Map([['collapse', {
72
74
  hideColumn: true,
73
75
  beforeHook: 'beforeColumnCollapse',
@@ -236,6 +238,7 @@ var CollapsibleColumns = /*#__PURE__*/function (_BasePlugin) {
236
238
  this.addHook('beforeOnCellMouseDown', function (event, coords, TD) {
237
239
  return _this2.onBeforeOnCellMouseDown(event, coords, TD);
238
240
  });
241
+ this.registerShortcuts();
239
242
  _get(_getPrototypeOf(CollapsibleColumns.prototype), "enablePlugin", this).call(this);
240
243
  // @TODO: Workaround for broken plugin initialization abstraction (#6806).
241
244
  this.updatePlugin();
@@ -286,10 +289,65 @@ var CollapsibleColumns = /*#__PURE__*/function (_BasePlugin) {
286
289
  this.hot.columnIndexMapper.unregisterMap(this.pluginName);
287
290
  _classPrivateFieldSet(this, _collapsedColumnsMap, null);
288
291
  this.nestedHeadersPlugin = null;
292
+ this.unregisterShortcuts();
289
293
  this.clearButtons();
290
294
  _get(_getPrototypeOf(CollapsibleColumns.prototype), "disablePlugin", this).call(this);
291
295
  }
292
296
 
297
+ /**
298
+ * Register shortcuts responsible for toggling collapsible columns.
299
+ *
300
+ * @private
301
+ */
302
+ }, {
303
+ key: "registerShortcuts",
304
+ value: function registerShortcuts() {
305
+ var _this3 = this;
306
+ this.hot.getShortcutManager().getContext('grid').addShortcut({
307
+ keys: [['Enter']],
308
+ callback: function callback() {
309
+ var _this3$headerStateMan;
310
+ var _this3$hot$getSelecte = _this3.hot.getSelectedRangeLast().highlight,
311
+ row = _this3$hot$getSelecte.row,
312
+ col = _this3$hot$getSelecte.col;
313
+ var _ref = (_this3$headerStateMan = _this3.headerStateManager.getHeaderTreeNodeData(row, col)) !== null && _this3$headerStateMan !== void 0 ? _this3$headerStateMan : {},
314
+ collapsible = _ref.collapsible,
315
+ isCollapsed = _ref.isCollapsed,
316
+ columnIndex = _ref.columnIndex;
317
+ if (!collapsible) {
318
+ return;
319
+ }
320
+ if (isCollapsed) {
321
+ _this3.expandSection({
322
+ row: row,
323
+ col: columnIndex
324
+ });
325
+ } else {
326
+ _this3.collapseSection({
327
+ row: row,
328
+ col: columnIndex
329
+ });
330
+ }
331
+ },
332
+ runOnlyIf: function runOnlyIf() {
333
+ var _this3$hot$getSelecte2;
334
+ return (_this3$hot$getSelecte2 = _this3.hot.getSelectedRangeLast()) === null || _this3$hot$getSelecte2 === void 0 ? void 0 : _this3$hot$getSelecte2.highlight.isHeader();
335
+ },
336
+ group: SHORTCUTS_GROUP
337
+ });
338
+ }
339
+
340
+ /**
341
+ * Unregister shortcuts responsible for toggling collapsible columns.
342
+ *
343
+ * @private
344
+ */
345
+ }, {
346
+ key: "unregisterShortcuts",
347
+ value: function unregisterShortcuts() {
348
+ this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);
349
+ }
350
+
293
351
  /**
294
352
  * Clears the expand/collapse buttons.
295
353
  *
@@ -359,7 +417,7 @@ var CollapsibleColumns = /*#__PURE__*/function (_BasePlugin) {
359
417
  }, {
360
418
  key: "toggleAllCollapsibleSections",
361
419
  value: function toggleAllCollapsibleSections(action) {
362
- var _this3 = this;
420
+ var _this4 = this;
363
421
  var coords = this.headerStateManager.mapNodes(function (headerSettings) {
364
422
  var collapsible = headerSettings.collapsible,
365
423
  origColspan = headerSettings.origColspan,
@@ -368,7 +426,7 @@ var CollapsibleColumns = /*#__PURE__*/function (_BasePlugin) {
368
426
  isCollapsed = headerSettings.isCollapsed;
369
427
  if (collapsible === true && origColspan > 1 && (isCollapsed && action === 'expand' || !isCollapsed && action === 'collapse')) {
370
428
  return {
371
- row: _this3.headerStateManager.levelToRowCoords(headerLevel),
429
+ row: _this4.headerStateManager.levelToRowCoords(headerLevel),
372
430
  col: columnIndex
373
431
  };
374
432
  }
@@ -407,7 +465,7 @@ var CollapsibleColumns = /*#__PURE__*/function (_BasePlugin) {
407
465
  }, {
408
466
  key: "toggleCollapsibleSection",
409
467
  value: function toggleCollapsibleSection(coords, action) {
410
- var _this4 = this;
468
+ var _this5 = this;
411
469
  if (!actionDictionary.has(action)) {
412
470
  throw new Error("Unsupported action is passed (".concat(action, ")."));
413
471
  }
@@ -416,18 +474,18 @@ var CollapsibleColumns = /*#__PURE__*/function (_BasePlugin) {
416
474
  }
417
475
 
418
476
  // Ignore coordinates which points to the cells range.
419
- var filteredCoords = (0, _array.arrayFilter)(coords, function (_ref) {
420
- var row = _ref.row;
477
+ var filteredCoords = (0, _array.arrayFilter)(coords, function (_ref2) {
478
+ var row = _ref2.row;
421
479
  return row < 0;
422
480
  });
423
481
  var isActionPossible = filteredCoords.length > 0;
424
- (0, _array.arrayEach)(filteredCoords, function (_ref2) {
425
- var _this4$headerStateMan;
426
- var row = _ref2.row,
427
- column = _ref2.col;
428
- var _ref3 = (_this4$headerStateMan = _this4.headerStateManager.getHeaderSettings(row, column)) !== null && _this4$headerStateMan !== void 0 ? _this4$headerStateMan : {},
429
- collapsible = _ref3.collapsible,
430
- isCollapsed = _ref3.isCollapsed;
482
+ (0, _array.arrayEach)(filteredCoords, function (_ref3) {
483
+ var _this5$headerStateMan;
484
+ var row = _ref3.row,
485
+ column = _ref3.col;
486
+ var _ref4 = (_this5$headerStateMan = _this5.headerStateManager.getHeaderSettings(row, column)) !== null && _this5$headerStateMan !== void 0 ? _this5$headerStateMan : {},
487
+ collapsible = _ref4.collapsible,
488
+ isCollapsed = _ref4.isCollapsed;
431
489
  if (!collapsible || isCollapsed && action === 'collapse' || !isCollapsed && action === 'expand') {
432
490
  isActionPossible = false;
433
491
  return false;
@@ -436,13 +494,13 @@ var CollapsibleColumns = /*#__PURE__*/function (_BasePlugin) {
436
494
  var nodeModRollbacks = [];
437
495
  var affectedColumnsIndexes = [];
438
496
  if (isActionPossible) {
439
- (0, _array.arrayEach)(filteredCoords, function (_ref4) {
440
- var row = _ref4.row,
441
- column = _ref4.col;
442
- var _this4$headerStateMan2 = _this4.headerStateManager.triggerNodeModification(action, row, column),
443
- colspanCompensation = _this4$headerStateMan2.colspanCompensation,
444
- affectedColumns = _this4$headerStateMan2.affectedColumns,
445
- rollbackModification = _this4$headerStateMan2.rollbackModification;
497
+ (0, _array.arrayEach)(filteredCoords, function (_ref5) {
498
+ var row = _ref5.row,
499
+ column = _ref5.col;
500
+ var _this5$headerStateMan2 = _this5.headerStateManager.triggerNodeModification(action, row, column),
501
+ colspanCompensation = _this5$headerStateMan2.colspanCompensation,
502
+ affectedColumns = _this5$headerStateMan2.affectedColumns,
503
+ rollbackModification = _this5$headerStateMan2.rollbackModification;
446
504
  if (colspanCompensation > 0) {
447
505
  affectedColumnsIndexes.push.apply(affectedColumnsIndexes, _toConsumableArray(affectedColumns));
448
506
  nodeModRollbacks.push(rollbackModification);
@@ -469,7 +527,7 @@ var CollapsibleColumns = /*#__PURE__*/function (_BasePlugin) {
469
527
  }
470
528
  this.hot.batchExecution(function () {
471
529
  (0, _array.arrayEach)(affectedColumnsIndexes, function (visualColumn) {
472
- _classPrivateFieldGet(_this4, _collapsedColumnsMap).setValueAtIndex(_this4.hot.toPhysicalColumn(visualColumn), actionTranslator.hideColumn);
530
+ _classPrivateFieldGet(_this5, _collapsedColumnsMap).setValueAtIndex(_this5.hot.toPhysicalColumn(visualColumn), actionTranslator.hideColumn);
473
531
  });
474
532
  }, true);
475
533
  var isActionPerformed = this.getCollapsedColumns().length !== currentCollapsedColumns.length;
@@ -503,10 +561,10 @@ var CollapsibleColumns = /*#__PURE__*/function (_BasePlugin) {
503
561
  key: "onAfterGetColHeader",
504
562
  value: function onAfterGetColHeader(column, TH, headerLevel) {
505
563
  var _this$headerStateMana;
506
- var _ref5 = (_this$headerStateMana = this.headerStateManager.getHeaderSettings(headerLevel, column)) !== null && _this$headerStateMana !== void 0 ? _this$headerStateMana : {},
507
- collapsible = _ref5.collapsible,
508
- origColspan = _ref5.origColspan,
509
- isCollapsed = _ref5.isCollapsed;
564
+ var _ref6 = (_this$headerStateMana = this.headerStateManager.getHeaderSettings(headerLevel, column)) !== null && _this$headerStateMana !== void 0 ? _this$headerStateMana : {},
565
+ collapsible = _ref6.collapsible,
566
+ origColspan = _ref6.origColspan,
567
+ isCollapsed = _ref6.isCollapsed;
510
568
  var isNodeCollapsible = collapsible && origColspan > 1 && column >= this.hot.getSettings().fixedColumnsStart;
511
569
  var collapsibleElement = TH.querySelector(".".concat(COLLAPSIBLE_ELEMENT_CLASS));
512
570
  if (isNodeCollapsible) {
@@ -48,6 +48,7 @@ import "core-js/modules/es.object.get-own-property-descriptor.js";
48
48
  import "core-js/modules/es.symbol.iterator.js";
49
49
  import "core-js/modules/es.array.from.js";
50
50
  import "core-js/modules/es.array.slice.js";
51
+ import "core-js/modules/es.regexp.to-string.js";
51
52
  import "core-js/modules/es.function.name.js";
52
53
  import "core-js/modules/es.regexp.exec.js";
53
54
  import { BasePlugin } from "../base/index.mjs";
@@ -61,6 +62,7 @@ export var PLUGIN_KEY = 'collapsibleColumns';
61
62
  export var PLUGIN_PRIORITY = 290;
62
63
  var SETTING_KEYS = ['nestedHeaders'];
63
64
  var COLLAPSIBLE_ELEMENT_CLASS = 'collapsibleIndicator';
65
+ var SHORTCUTS_GROUP = PLUGIN_KEY;
64
66
  var actionDictionary = new Map([['collapse', {
65
67
  hideColumn: true,
66
68
  beforeHook: 'beforeColumnCollapse',
@@ -229,6 +231,7 @@ export var CollapsibleColumns = /*#__PURE__*/function (_BasePlugin) {
229
231
  this.addHook('beforeOnCellMouseDown', function (event, coords, TD) {
230
232
  return _this2.onBeforeOnCellMouseDown(event, coords, TD);
231
233
  });
234
+ this.registerShortcuts();
232
235
  _get(_getPrototypeOf(CollapsibleColumns.prototype), "enablePlugin", this).call(this);
233
236
  // @TODO: Workaround for broken plugin initialization abstraction (#6806).
234
237
  this.updatePlugin();
@@ -279,10 +282,65 @@ export var CollapsibleColumns = /*#__PURE__*/function (_BasePlugin) {
279
282
  this.hot.columnIndexMapper.unregisterMap(this.pluginName);
280
283
  _classPrivateFieldSet(this, _collapsedColumnsMap, null);
281
284
  this.nestedHeadersPlugin = null;
285
+ this.unregisterShortcuts();
282
286
  this.clearButtons();
283
287
  _get(_getPrototypeOf(CollapsibleColumns.prototype), "disablePlugin", this).call(this);
284
288
  }
285
289
 
290
+ /**
291
+ * Register shortcuts responsible for toggling collapsible columns.
292
+ *
293
+ * @private
294
+ */
295
+ }, {
296
+ key: "registerShortcuts",
297
+ value: function registerShortcuts() {
298
+ var _this3 = this;
299
+ this.hot.getShortcutManager().getContext('grid').addShortcut({
300
+ keys: [['Enter']],
301
+ callback: function callback() {
302
+ var _this3$headerStateMan;
303
+ var _this3$hot$getSelecte = _this3.hot.getSelectedRangeLast().highlight,
304
+ row = _this3$hot$getSelecte.row,
305
+ col = _this3$hot$getSelecte.col;
306
+ var _ref = (_this3$headerStateMan = _this3.headerStateManager.getHeaderTreeNodeData(row, col)) !== null && _this3$headerStateMan !== void 0 ? _this3$headerStateMan : {},
307
+ collapsible = _ref.collapsible,
308
+ isCollapsed = _ref.isCollapsed,
309
+ columnIndex = _ref.columnIndex;
310
+ if (!collapsible) {
311
+ return;
312
+ }
313
+ if (isCollapsed) {
314
+ _this3.expandSection({
315
+ row: row,
316
+ col: columnIndex
317
+ });
318
+ } else {
319
+ _this3.collapseSection({
320
+ row: row,
321
+ col: columnIndex
322
+ });
323
+ }
324
+ },
325
+ runOnlyIf: function runOnlyIf() {
326
+ var _this3$hot$getSelecte2;
327
+ return (_this3$hot$getSelecte2 = _this3.hot.getSelectedRangeLast()) === null || _this3$hot$getSelecte2 === void 0 ? void 0 : _this3$hot$getSelecte2.highlight.isHeader();
328
+ },
329
+ group: SHORTCUTS_GROUP
330
+ });
331
+ }
332
+
333
+ /**
334
+ * Unregister shortcuts responsible for toggling collapsible columns.
335
+ *
336
+ * @private
337
+ */
338
+ }, {
339
+ key: "unregisterShortcuts",
340
+ value: function unregisterShortcuts() {
341
+ this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);
342
+ }
343
+
286
344
  /**
287
345
  * Clears the expand/collapse buttons.
288
346
  *
@@ -352,7 +410,7 @@ export var CollapsibleColumns = /*#__PURE__*/function (_BasePlugin) {
352
410
  }, {
353
411
  key: "toggleAllCollapsibleSections",
354
412
  value: function toggleAllCollapsibleSections(action) {
355
- var _this3 = this;
413
+ var _this4 = this;
356
414
  var coords = this.headerStateManager.mapNodes(function (headerSettings) {
357
415
  var collapsible = headerSettings.collapsible,
358
416
  origColspan = headerSettings.origColspan,
@@ -361,7 +419,7 @@ export var CollapsibleColumns = /*#__PURE__*/function (_BasePlugin) {
361
419
  isCollapsed = headerSettings.isCollapsed;
362
420
  if (collapsible === true && origColspan > 1 && (isCollapsed && action === 'expand' || !isCollapsed && action === 'collapse')) {
363
421
  return {
364
- row: _this3.headerStateManager.levelToRowCoords(headerLevel),
422
+ row: _this4.headerStateManager.levelToRowCoords(headerLevel),
365
423
  col: columnIndex
366
424
  };
367
425
  }
@@ -400,7 +458,7 @@ export var CollapsibleColumns = /*#__PURE__*/function (_BasePlugin) {
400
458
  }, {
401
459
  key: "toggleCollapsibleSection",
402
460
  value: function toggleCollapsibleSection(coords, action) {
403
- var _this4 = this;
461
+ var _this5 = this;
404
462
  if (!actionDictionary.has(action)) {
405
463
  throw new Error("Unsupported action is passed (".concat(action, ")."));
406
464
  }
@@ -409,18 +467,18 @@ export var CollapsibleColumns = /*#__PURE__*/function (_BasePlugin) {
409
467
  }
410
468
 
411
469
  // Ignore coordinates which points to the cells range.
412
- var filteredCoords = arrayFilter(coords, function (_ref) {
413
- var row = _ref.row;
470
+ var filteredCoords = arrayFilter(coords, function (_ref2) {
471
+ var row = _ref2.row;
414
472
  return row < 0;
415
473
  });
416
474
  var isActionPossible = filteredCoords.length > 0;
417
- arrayEach(filteredCoords, function (_ref2) {
418
- var _this4$headerStateMan;
419
- var row = _ref2.row,
420
- column = _ref2.col;
421
- var _ref3 = (_this4$headerStateMan = _this4.headerStateManager.getHeaderSettings(row, column)) !== null && _this4$headerStateMan !== void 0 ? _this4$headerStateMan : {},
422
- collapsible = _ref3.collapsible,
423
- isCollapsed = _ref3.isCollapsed;
475
+ arrayEach(filteredCoords, function (_ref3) {
476
+ var _this5$headerStateMan;
477
+ var row = _ref3.row,
478
+ column = _ref3.col;
479
+ var _ref4 = (_this5$headerStateMan = _this5.headerStateManager.getHeaderSettings(row, column)) !== null && _this5$headerStateMan !== void 0 ? _this5$headerStateMan : {},
480
+ collapsible = _ref4.collapsible,
481
+ isCollapsed = _ref4.isCollapsed;
424
482
  if (!collapsible || isCollapsed && action === 'collapse' || !isCollapsed && action === 'expand') {
425
483
  isActionPossible = false;
426
484
  return false;
@@ -429,13 +487,13 @@ export var CollapsibleColumns = /*#__PURE__*/function (_BasePlugin) {
429
487
  var nodeModRollbacks = [];
430
488
  var affectedColumnsIndexes = [];
431
489
  if (isActionPossible) {
432
- arrayEach(filteredCoords, function (_ref4) {
433
- var row = _ref4.row,
434
- column = _ref4.col;
435
- var _this4$headerStateMan2 = _this4.headerStateManager.triggerNodeModification(action, row, column),
436
- colspanCompensation = _this4$headerStateMan2.colspanCompensation,
437
- affectedColumns = _this4$headerStateMan2.affectedColumns,
438
- rollbackModification = _this4$headerStateMan2.rollbackModification;
490
+ arrayEach(filteredCoords, function (_ref5) {
491
+ var row = _ref5.row,
492
+ column = _ref5.col;
493
+ var _this5$headerStateMan2 = _this5.headerStateManager.triggerNodeModification(action, row, column),
494
+ colspanCompensation = _this5$headerStateMan2.colspanCompensation,
495
+ affectedColumns = _this5$headerStateMan2.affectedColumns,
496
+ rollbackModification = _this5$headerStateMan2.rollbackModification;
439
497
  if (colspanCompensation > 0) {
440
498
  affectedColumnsIndexes.push.apply(affectedColumnsIndexes, _toConsumableArray(affectedColumns));
441
499
  nodeModRollbacks.push(rollbackModification);
@@ -462,7 +520,7 @@ export var CollapsibleColumns = /*#__PURE__*/function (_BasePlugin) {
462
520
  }
463
521
  this.hot.batchExecution(function () {
464
522
  arrayEach(affectedColumnsIndexes, function (visualColumn) {
465
- _classPrivateFieldGet(_this4, _collapsedColumnsMap).setValueAtIndex(_this4.hot.toPhysicalColumn(visualColumn), actionTranslator.hideColumn);
523
+ _classPrivateFieldGet(_this5, _collapsedColumnsMap).setValueAtIndex(_this5.hot.toPhysicalColumn(visualColumn), actionTranslator.hideColumn);
466
524
  });
467
525
  }, true);
468
526
  var isActionPerformed = this.getCollapsedColumns().length !== currentCollapsedColumns.length;
@@ -496,10 +554,10 @@ export var CollapsibleColumns = /*#__PURE__*/function (_BasePlugin) {
496
554
  key: "onAfterGetColHeader",
497
555
  value: function onAfterGetColHeader(column, TH, headerLevel) {
498
556
  var _this$headerStateMana;
499
- var _ref5 = (_this$headerStateMana = this.headerStateManager.getHeaderSettings(headerLevel, column)) !== null && _this$headerStateMana !== void 0 ? _this$headerStateMana : {},
500
- collapsible = _ref5.collapsible,
501
- origColspan = _ref5.origColspan,
502
- isCollapsed = _ref5.isCollapsed;
557
+ var _ref6 = (_this$headerStateMana = this.headerStateManager.getHeaderSettings(headerLevel, column)) !== null && _this$headerStateMana !== void 0 ? _this$headerStateMana : {},
558
+ collapsible = _ref6.collapsible,
559
+ origColspan = _ref6.origColspan,
560
+ isCollapsed = _ref6.isCollapsed;
503
561
  var isNodeCollapsible = collapsible && origColspan > 1 && column >= this.hot.getSettings().fixedColumnsStart;
504
562
  var collapsibleElement = TH.querySelector(".".concat(COLLAPSIBLE_ELEMENT_CLASS));
505
563
  if (isNodeCollapsible) {
@@ -15,10 +15,11 @@ require("core-js/modules/web.dom-collections.for-each.js");
15
15
  require("core-js/modules/es.object.get-own-property-descriptors.js");
16
16
  require("core-js/modules/es.symbol.iterator.js");
17
17
  require("core-js/modules/es.array.from.js");
18
+ require("core-js/modules/es.regexp.to-string.js");
18
19
  require("core-js/modules/es.function.name.js");
19
20
  require("core-js/modules/es.regexp.exec.js");
20
21
  exports.__esModule = true;
21
- exports.PLUGIN_PRIORITY = exports.PLUGIN_KEY = exports.ColumnSorting = void 0;
22
+ exports.REPLACE_COLUMN_CONFIG_STRATEGY = exports.PLUGIN_PRIORITY = exports.PLUGIN_KEY = exports.ColumnSorting = exports.APPEND_COLUMN_CONFIG_STRATEGY = void 0;
22
23
  require("core-js/modules/es.array.sort.js");
23
24
  require("core-js/modules/es.array.slice.js");
24
25
  require("core-js/modules/es.object.to-string.js");
@@ -78,7 +79,10 @@ exports.PLUGIN_KEY = PLUGIN_KEY;
78
79
  var PLUGIN_PRIORITY = 50;
79
80
  exports.PLUGIN_PRIORITY = PLUGIN_PRIORITY;
80
81
  var APPEND_COLUMN_CONFIG_STRATEGY = 'append';
82
+ exports.APPEND_COLUMN_CONFIG_STRATEGY = APPEND_COLUMN_CONFIG_STRATEGY;
81
83
  var REPLACE_COLUMN_CONFIG_STRATEGY = 'replace';
84
+ exports.REPLACE_COLUMN_CONFIG_STRATEGY = REPLACE_COLUMN_CONFIG_STRATEGY;
85
+ var SHORTCUTS_GROUP = PLUGIN_KEY;
82
86
  (0, _sortService.registerRootComparator)(PLUGIN_KEY, _rootComparator.rootComparator);
83
87
  _pluginHooks.default.getSingleton().register('beforeColumnSort');
84
88
  _pluginHooks.default.getSingleton().register('afterColumnSort');
@@ -222,6 +226,7 @@ var ColumnSorting = /*#__PURE__*/function (_BasePlugin) {
222
226
  if (this.hot.view) {
223
227
  this.loadOrSortBySettings();
224
228
  }
229
+ this.registerShortcuts();
225
230
  _get(_getPrototypeOf(ColumnSorting.prototype), "enablePlugin", this).call(this);
226
231
  }
227
232
 
@@ -255,9 +260,47 @@ var ColumnSorting = /*#__PURE__*/function (_BasePlugin) {
255
260
  this.columnStatesManager.destroy();
256
261
  this.columnMetaCache = null;
257
262
  this.columnStatesManager = null;
263
+ this.unregisterShortcuts();
258
264
  _get(_getPrototypeOf(ColumnSorting.prototype), "disablePlugin", this).call(this);
259
265
  }
260
266
 
267
+ /**
268
+ * Register shortcuts responsible for toggling column sorting functionality.
269
+ *
270
+ * @private
271
+ */
272
+ }, {
273
+ key: "registerShortcuts",
274
+ value: function registerShortcuts() {
275
+ var _this4 = this;
276
+ this.hot.getShortcutManager().getContext('grid').addShortcut({
277
+ keys: [['Enter']],
278
+ callback: function callback() {
279
+ var _this4$hot$getSelecte = _this4.hot.getSelectedRangeLast(),
280
+ highlight = _this4$hot$getSelecte.highlight;
281
+ if (highlight.row === -1 && highlight.col >= 0) {
282
+ _this4.sort(_this4.getColumnNextConfig(highlight.col));
283
+ }
284
+ },
285
+ runOnlyIf: function runOnlyIf() {
286
+ var _this4$hot$getSelecte2;
287
+ return (_this4$hot$getSelecte2 = _this4.hot.getSelectedRangeLast()) === null || _this4$hot$getSelecte2 === void 0 ? void 0 : _this4$hot$getSelecte2.highlight.isHeader();
288
+ },
289
+ group: SHORTCUTS_GROUP
290
+ });
291
+ }
292
+
293
+ /**
294
+ * Unregister shortcuts responsible for toggling column sorting functionality.
295
+ *
296
+ * @private
297
+ */
298
+ }, {
299
+ key: "unregisterShortcuts",
300
+ value: function unregisterShortcuts() {
301
+ this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);
302
+ }
303
+
261
304
  // DIFF - MultiColumnSorting & ColumnSorting: changed function documentation.
262
305
  /**
263
306
  * Sorts the table by chosen columns and orders.
@@ -427,13 +470,13 @@ var ColumnSorting = /*#__PURE__*/function (_BasePlugin) {
427
470
  }, {
428
471
  key: "saveAllSortSettings",
429
472
  value: function saveAllSortSettings(sortConfigs) {
430
- var _this4 = this;
473
+ var _this5 = this;
431
474
  var allSortSettings = this.columnStatesManager.getAllColumnsProperties();
432
475
  var translateColumnToPhysical = function translateColumnToPhysical(_ref2) {
433
476
  var visualColumn = _ref2.column,
434
477
  restOfProperties = _objectWithoutProperties(_ref2, _excluded);
435
478
  return _objectSpread({
436
- column: _this4.hot.toPhysicalColumn(visualColumn)
479
+ column: _this5.hot.toPhysicalColumn(visualColumn)
437
480
  }, restOfProperties);
438
481
  };
439
482
  allSortSettings.initialConfig = (0, _array.arrayMap)(sortConfigs, translateColumnToPhysical);
@@ -451,7 +494,7 @@ var ColumnSorting = /*#__PURE__*/function (_BasePlugin) {
451
494
  }, {
452
495
  key: "getAllSavedSortSettings",
453
496
  value: function getAllSavedSortSettings() {
454
- var _this5 = this;
497
+ var _this6 = this;
455
498
  var storedAllSortSettings = {};
456
499
  this.hot.runHooks('persistentStateLoad', 'columnSorting', storedAllSortSettings);
457
500
  var allSortSettings = storedAllSortSettings.value;
@@ -459,7 +502,7 @@ var ColumnSorting = /*#__PURE__*/function (_BasePlugin) {
459
502
  var physicalColumn = _ref3.column,
460
503
  restOfProperties = _objectWithoutProperties(_ref3, _excluded2);
461
504
  return _objectSpread({
462
- column: _this5.hot.toVisualColumn(physicalColumn)
505
+ column: _this6.hot.toVisualColumn(physicalColumn)
463
506
  }, restOfProperties);
464
507
  };
465
508
  if ((0, _mixed.isDefined)(allSortSettings) && Array.isArray(allSortSettings.initialConfig)) {
@@ -624,7 +667,7 @@ var ColumnSorting = /*#__PURE__*/function (_BasePlugin) {
624
667
  }, {
625
668
  key: "sortByPresetSortStates",
626
669
  value: function sortByPresetSortStates(sortConfigs) {
627
- var _this6 = this;
670
+ var _this7 = this;
628
671
  if (sortConfigs.length === 0) {
629
672
  this.hot.rowIndexMapper.setIndexesSequence(this.indexesSequenceCache.getValues());
630
673
  return;
@@ -633,7 +676,7 @@ var ColumnSorting = /*#__PURE__*/function (_BasePlugin) {
633
676
  var numberOfRows = this.hot.countRows();
634
677
  var getDataForSortedColumns = function getDataForSortedColumns(visualRowIndex) {
635
678
  return (0, _array.arrayMap)(sortConfigs, function (sortConfig) {
636
- return _this6.hot.getDataAtCell(visualRowIndex, sortConfig.column);
679
+ return _this7.hot.getDataAtCell(visualRowIndex, sortConfig.column);
637
680
  });
638
681
  };
639
682
  for (var visualRowIndex = 0; visualRowIndex < this.getNumberOfRowsToSort(numberOfRows); visualRowIndex += 1) {
@@ -645,7 +688,7 @@ var ColumnSorting = /*#__PURE__*/function (_BasePlugin) {
645
688
  (0, _sortService.sort)(indexesWithData, this.pluginKey, (0, _array.arrayMap)(sortConfigs, function (sortConfig) {
646
689
  return sortConfig.sortOrder;
647
690
  }), (0, _array.arrayMap)(sortConfigs, function (sortConfig) {
648
- return _this6.getFirstCellSettings(sortConfig.column);
691
+ return _this7.getFirstCellSettings(sortConfig.column);
649
692
  }));
650
693
 
651
694
  // Append spareRows
@@ -14,6 +14,7 @@ import "core-js/modules/web.dom-collections.for-each.js";
14
14
  import "core-js/modules/es.object.get-own-property-descriptors.js";
15
15
  import "core-js/modules/es.symbol.iterator.js";
16
16
  import "core-js/modules/es.array.from.js";
17
+ import "core-js/modules/es.regexp.to-string.js";
17
18
  import "core-js/modules/es.function.name.js";
18
19
  import "core-js/modules/es.regexp.exec.js";
19
20
  var _excluded = ["column"],
@@ -70,8 +71,9 @@ import { rootComparator } from "./rootComparator.mjs";
70
71
  import { registerRootComparator, sort } from "./sortService/index.mjs";
71
72
  export var PLUGIN_KEY = 'columnSorting';
72
73
  export var PLUGIN_PRIORITY = 50;
73
- var APPEND_COLUMN_CONFIG_STRATEGY = 'append';
74
- var REPLACE_COLUMN_CONFIG_STRATEGY = 'replace';
74
+ export var APPEND_COLUMN_CONFIG_STRATEGY = 'append';
75
+ export var REPLACE_COLUMN_CONFIG_STRATEGY = 'replace';
76
+ var SHORTCUTS_GROUP = PLUGIN_KEY;
75
77
  registerRootComparator(PLUGIN_KEY, rootComparator);
76
78
  Hooks.getSingleton().register('beforeColumnSort');
77
79
  Hooks.getSingleton().register('afterColumnSort');
@@ -215,6 +217,7 @@ export var ColumnSorting = /*#__PURE__*/function (_BasePlugin) {
215
217
  if (this.hot.view) {
216
218
  this.loadOrSortBySettings();
217
219
  }
220
+ this.registerShortcuts();
218
221
  _get(_getPrototypeOf(ColumnSorting.prototype), "enablePlugin", this).call(this);
219
222
  }
220
223
 
@@ -248,9 +251,47 @@ export var ColumnSorting = /*#__PURE__*/function (_BasePlugin) {
248
251
  this.columnStatesManager.destroy();
249
252
  this.columnMetaCache = null;
250
253
  this.columnStatesManager = null;
254
+ this.unregisterShortcuts();
251
255
  _get(_getPrototypeOf(ColumnSorting.prototype), "disablePlugin", this).call(this);
252
256
  }
253
257
 
258
+ /**
259
+ * Register shortcuts responsible for toggling column sorting functionality.
260
+ *
261
+ * @private
262
+ */
263
+ }, {
264
+ key: "registerShortcuts",
265
+ value: function registerShortcuts() {
266
+ var _this4 = this;
267
+ this.hot.getShortcutManager().getContext('grid').addShortcut({
268
+ keys: [['Enter']],
269
+ callback: function callback() {
270
+ var _this4$hot$getSelecte = _this4.hot.getSelectedRangeLast(),
271
+ highlight = _this4$hot$getSelecte.highlight;
272
+ if (highlight.row === -1 && highlight.col >= 0) {
273
+ _this4.sort(_this4.getColumnNextConfig(highlight.col));
274
+ }
275
+ },
276
+ runOnlyIf: function runOnlyIf() {
277
+ var _this4$hot$getSelecte2;
278
+ return (_this4$hot$getSelecte2 = _this4.hot.getSelectedRangeLast()) === null || _this4$hot$getSelecte2 === void 0 ? void 0 : _this4$hot$getSelecte2.highlight.isHeader();
279
+ },
280
+ group: SHORTCUTS_GROUP
281
+ });
282
+ }
283
+
284
+ /**
285
+ * Unregister shortcuts responsible for toggling column sorting functionality.
286
+ *
287
+ * @private
288
+ */
289
+ }, {
290
+ key: "unregisterShortcuts",
291
+ value: function unregisterShortcuts() {
292
+ this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);
293
+ }
294
+
254
295
  // DIFF - MultiColumnSorting & ColumnSorting: changed function documentation.
255
296
  /**
256
297
  * Sorts the table by chosen columns and orders.
@@ -420,13 +461,13 @@ export var ColumnSorting = /*#__PURE__*/function (_BasePlugin) {
420
461
  }, {
421
462
  key: "saveAllSortSettings",
422
463
  value: function saveAllSortSettings(sortConfigs) {
423
- var _this4 = this;
464
+ var _this5 = this;
424
465
  var allSortSettings = this.columnStatesManager.getAllColumnsProperties();
425
466
  var translateColumnToPhysical = function translateColumnToPhysical(_ref2) {
426
467
  var visualColumn = _ref2.column,
427
468
  restOfProperties = _objectWithoutProperties(_ref2, _excluded);
428
469
  return _objectSpread({
429
- column: _this4.hot.toPhysicalColumn(visualColumn)
470
+ column: _this5.hot.toPhysicalColumn(visualColumn)
430
471
  }, restOfProperties);
431
472
  };
432
473
  allSortSettings.initialConfig = arrayMap(sortConfigs, translateColumnToPhysical);
@@ -444,7 +485,7 @@ export var ColumnSorting = /*#__PURE__*/function (_BasePlugin) {
444
485
  }, {
445
486
  key: "getAllSavedSortSettings",
446
487
  value: function getAllSavedSortSettings() {
447
- var _this5 = this;
488
+ var _this6 = this;
448
489
  var storedAllSortSettings = {};
449
490
  this.hot.runHooks('persistentStateLoad', 'columnSorting', storedAllSortSettings);
450
491
  var allSortSettings = storedAllSortSettings.value;
@@ -452,7 +493,7 @@ export var ColumnSorting = /*#__PURE__*/function (_BasePlugin) {
452
493
  var physicalColumn = _ref3.column,
453
494
  restOfProperties = _objectWithoutProperties(_ref3, _excluded2);
454
495
  return _objectSpread({
455
- column: _this5.hot.toVisualColumn(physicalColumn)
496
+ column: _this6.hot.toVisualColumn(physicalColumn)
456
497
  }, restOfProperties);
457
498
  };
458
499
  if (isDefined(allSortSettings) && Array.isArray(allSortSettings.initialConfig)) {
@@ -617,7 +658,7 @@ export var ColumnSorting = /*#__PURE__*/function (_BasePlugin) {
617
658
  }, {
618
659
  key: "sortByPresetSortStates",
619
660
  value: function sortByPresetSortStates(sortConfigs) {
620
- var _this6 = this;
661
+ var _this7 = this;
621
662
  if (sortConfigs.length === 0) {
622
663
  this.hot.rowIndexMapper.setIndexesSequence(this.indexesSequenceCache.getValues());
623
664
  return;
@@ -626,7 +667,7 @@ export var ColumnSorting = /*#__PURE__*/function (_BasePlugin) {
626
667
  var numberOfRows = this.hot.countRows();
627
668
  var getDataForSortedColumns = function getDataForSortedColumns(visualRowIndex) {
628
669
  return arrayMap(sortConfigs, function (sortConfig) {
629
- return _this6.hot.getDataAtCell(visualRowIndex, sortConfig.column);
670
+ return _this7.hot.getDataAtCell(visualRowIndex, sortConfig.column);
630
671
  });
631
672
  };
632
673
  for (var visualRowIndex = 0; visualRowIndex < this.getNumberOfRowsToSort(numberOfRows); visualRowIndex += 1) {
@@ -638,7 +679,7 @@ export var ColumnSorting = /*#__PURE__*/function (_BasePlugin) {
638
679
  sort(indexesWithData, this.pluginKey, arrayMap(sortConfigs, function (sortConfig) {
639
680
  return sortConfig.sortOrder;
640
681
  }), arrayMap(sortConfigs, function (sortConfig) {
641
- return _this6.getFirstCellSettings(sortConfig.column);
682
+ return _this7.getFirstCellSettings(sortConfig.column);
642
683
  }));
643
684
 
644
685
  // Append spareRows
@@ -5,6 +5,7 @@ require("core-js/modules/es.array.iterator.js");
5
5
  require("core-js/modules/es.string.iterator.js");
6
6
  require("core-js/modules/web.dom-collections.iterator.js");
7
7
  require("core-js/modules/es.array.slice.js");
8
+ require("core-js/modules/es.regexp.to-string.js");
8
9
  require("core-js/modules/es.function.name.js");
9
10
  require("core-js/modules/es.array.from.js");
10
11
  require("core-js/modules/es.regexp.exec.js");
@@ -22,6 +22,7 @@ import "core-js/modules/es.array.iterator.js";
22
22
  import "core-js/modules/es.string.iterator.js";
23
23
  import "core-js/modules/web.dom-collections.iterator.js";
24
24
  import "core-js/modules/es.array.slice.js";
25
+ import "core-js/modules/es.regexp.to-string.js";
25
26
  import "core-js/modules/es.function.name.js";
26
27
  import "core-js/modules/es.array.from.js";
27
28
  import "core-js/modules/es.regexp.exec.js";