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
@@ -0,0 +1,252 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.shortcutsGridContext = shortcutsGridContext;
5
+ var _mixed = require("../helpers/mixed");
6
+ var _constants = require("./constants");
7
+ var _commands = require("./commands");
8
+ /**
9
+ * The context that defines shortcut list available for selected cell or cells.
10
+ *
11
+ * @param {Handsontable} hot The Handsontable instance.
12
+ */
13
+ function shortcutsGridContext(hot) {
14
+ var context = hot.getShortcutManager().addContext('grid');
15
+ var commandsPool = (0, _commands.createKeyboardShortcutCommandsPool)(hot);
16
+ var config = {
17
+ runOnlyIf: function runOnlyIf() {
18
+ var _hot$getSettings = hot.getSettings(),
19
+ navigableHeaders = _hot$getSettings.navigableHeaders;
20
+ return (0, _mixed.isDefined)(hot.getSelected()) && (navigableHeaders || !navigableHeaders && hot.countRenderedRows() > 0 && hot.countRenderedCols() > 0);
21
+ },
22
+ group: _constants.GRID_GROUP
23
+ };
24
+ context.addShortcuts([{
25
+ keys: [['F2']],
26
+ callback: function callback(event) {
27
+ return commandsPool.editorFastOpen(event);
28
+ }
29
+ }, {
30
+ keys: [['Enter'], ['Enter', 'Shift']],
31
+ callback: function callback(event, keys) {
32
+ return commandsPool.editorOpen(event, keys);
33
+ }
34
+ }, {
35
+ keys: [['Backspace'], ['Delete']],
36
+ callback: function callback() {
37
+ return commandsPool.emptySelectedCells();
38
+ }
39
+ }], {
40
+ group: _constants.EDITOR_EDIT_GROUP,
41
+ runOnlyIf: function runOnlyIf() {
42
+ return (0, _mixed.isDefined)(hot.getSelected());
43
+ }
44
+ });
45
+ context.addShortcuts([{
46
+ keys: [['Control/Meta', 'A'], ['Control/Meta', 'Shift', 'Space']],
47
+ callback: function callback() {
48
+ return commandsPool.selectAll();
49
+ }
50
+ }, {
51
+ keys: [['Control/Meta', 'Enter']],
52
+ callback: function callback() {
53
+ return commandsPool.populateSelectedCellsData();
54
+ },
55
+ runOnlyIf: function runOnlyIf() {
56
+ return !hot.getSelectedRangeLast().highlight.isHeader() && hot.getSelectedRangeLast().getCellsCount() > 1;
57
+ }
58
+ }, {
59
+ keys: [['Control', 'Space']],
60
+ captureCtrl: true,
61
+ callback: function callback() {
62
+ return commandsPool.extendCellsSelectionToColumns();
63
+ }
64
+ }, {
65
+ keys: [['Shift', 'Space']],
66
+ stopPropagation: true,
67
+ callback: function callback() {
68
+ return commandsPool.extendCellsSelectionToRows();
69
+ }
70
+ }, {
71
+ keys: [['ArrowUp']],
72
+ callback: function callback() {
73
+ return commandsPool.moveCellSelectionUp();
74
+ }
75
+ }, {
76
+ keys: [['ArrowUp', 'Control/Meta']],
77
+ captureCtrl: true,
78
+ callback: function callback() {
79
+ return commandsPool.moveCellSelectionToMostTop();
80
+ }
81
+ }, {
82
+ keys: [['ArrowUp', 'Shift']],
83
+ callback: function callback() {
84
+ return commandsPool.extendCellsSelectionUp();
85
+ }
86
+ }, {
87
+ keys: [['ArrowUp', 'Shift', 'Control/Meta']],
88
+ captureCtrl: true,
89
+ callback: function callback() {
90
+ return commandsPool.extendCellsSelectionToMostTop();
91
+ },
92
+ runOnlyIf: function runOnlyIf() {
93
+ return !(hot.selection.isSelectedByCorner() || hot.selection.isSelectedByColumnHeader());
94
+ }
95
+ }, {
96
+ keys: [['ArrowDown']],
97
+ callback: function callback() {
98
+ return commandsPool.moveCellSelectionDown();
99
+ }
100
+ }, {
101
+ keys: [['ArrowDown', 'Control/Meta']],
102
+ captureCtrl: true,
103
+ callback: function callback() {
104
+ return commandsPool.moveCellSelectionToMostBottom();
105
+ }
106
+ }, {
107
+ keys: [['ArrowDown', 'Shift']],
108
+ callback: function callback() {
109
+ return commandsPool.extendCellsSelectionDown();
110
+ }
111
+ }, {
112
+ keys: [['ArrowDown', 'Shift', 'Control/Meta']],
113
+ captureCtrl: true,
114
+ callback: function callback() {
115
+ return commandsPool.extendCellsSelectionToMostBottom();
116
+ },
117
+ runOnlyIf: function runOnlyIf() {
118
+ return !(hot.selection.isSelectedByCorner() || hot.selection.isSelectedByColumnHeader());
119
+ }
120
+ }, {
121
+ keys: [['ArrowLeft']],
122
+ callback: function callback() {
123
+ return commandsPool.moveCellSelectionLeft();
124
+ }
125
+ }, {
126
+ keys: [['ArrowLeft', 'Control/Meta']],
127
+ captureCtrl: true,
128
+ callback: function callback() {
129
+ return commandsPool.moveCellSelectionToMostLeft();
130
+ }
131
+ }, {
132
+ keys: [['ArrowLeft', 'Shift']],
133
+ callback: function callback() {
134
+ return commandsPool.extendCellsSelectionLeft();
135
+ }
136
+ }, {
137
+ keys: [['ArrowLeft', 'Shift', 'Control/Meta']],
138
+ captureCtrl: true,
139
+ callback: function callback() {
140
+ return commandsPool.extendCellsSelectionToMostLeft();
141
+ },
142
+ runOnlyIf: function runOnlyIf() {
143
+ return !(hot.selection.isSelectedByCorner() || hot.selection.isSelectedByRowHeader());
144
+ }
145
+ }, {
146
+ keys: [['ArrowRight']],
147
+ callback: function callback() {
148
+ return commandsPool.moveCellSelectionRight();
149
+ }
150
+ }, {
151
+ keys: [['ArrowRight', 'Control/Meta']],
152
+ captureCtrl: true,
153
+ callback: function callback() {
154
+ return commandsPool.moveCellSelectionToMostRight();
155
+ }
156
+ }, {
157
+ keys: [['ArrowRight', 'Shift']],
158
+ callback: function callback() {
159
+ return commandsPool.extendCellsSelectionRight();
160
+ }
161
+ }, {
162
+ keys: [['ArrowRight', 'Shift', 'Control/Meta']],
163
+ captureCtrl: true,
164
+ callback: function callback() {
165
+ return commandsPool.extendCellsSelectionToMostRight();
166
+ },
167
+ runOnlyIf: function runOnlyIf() {
168
+ return !(hot.selection.isSelectedByCorner() || hot.selection.isSelectedByRowHeader());
169
+ }
170
+ }, {
171
+ keys: [['Home']],
172
+ captureCtrl: true,
173
+ callback: function callback() {
174
+ return commandsPool.moveCellSelectionToMostInlineStart();
175
+ },
176
+ runOnlyIf: function runOnlyIf() {
177
+ return hot.view.isMainTableNotFullyCoveredByOverlays();
178
+ }
179
+ }, {
180
+ keys: [['Home', 'Shift']],
181
+ callback: function callback() {
182
+ return commandsPool.extendCellsSelectionToMostInlineStart();
183
+ }
184
+ }, {
185
+ keys: [['Home', 'Control/Meta']],
186
+ captureCtrl: true,
187
+ callback: function callback() {
188
+ return commandsPool.moveCellSelectionToMostTopInlineStart();
189
+ },
190
+ runOnlyIf: function runOnlyIf() {
191
+ return hot.view.isMainTableNotFullyCoveredByOverlays();
192
+ }
193
+ }, {
194
+ keys: [['End']],
195
+ captureCtrl: true,
196
+ callback: function callback() {
197
+ return commandsPool.moveCellSelectionToMostInlineEnd();
198
+ },
199
+ runOnlyIf: function runOnlyIf() {
200
+ return hot.view.isMainTableNotFullyCoveredByOverlays();
201
+ }
202
+ }, {
203
+ keys: [['End', 'Shift']],
204
+ callback: function callback() {
205
+ return commandsPool.extendCellsSelectionToMostInlineEnd();
206
+ }
207
+ }, {
208
+ keys: [['End', 'Control/Meta']],
209
+ captureCtrl: true,
210
+ callback: function callback() {
211
+ return commandsPool.moveCellSelectionToMostBottomInlineEnd();
212
+ },
213
+ runOnlyIf: function runOnlyIf() {
214
+ return hot.view.isMainTableNotFullyCoveredByOverlays();
215
+ }
216
+ }, {
217
+ keys: [['PageUp']],
218
+ callback: function callback() {
219
+ return commandsPool.moveCellSelectionUpByViewportHight();
220
+ }
221
+ }, {
222
+ keys: [['PageUp', 'Shift']],
223
+ callback: function callback() {
224
+ return commandsPool.extendCellsSelectionUpByViewportHeight();
225
+ }
226
+ }, {
227
+ keys: [['PageDown']],
228
+ callback: function callback() {
229
+ return commandsPool.moveCellSelectionDownByViewportHeight();
230
+ }
231
+ }, {
232
+ keys: [['PageDown', 'Shift']],
233
+ callback: function callback() {
234
+ return commandsPool.extendCellsSelectionDownByViewportHeight();
235
+ }
236
+ }, {
237
+ keys: [['Tab']],
238
+ callback: function callback() {
239
+ return commandsPool.moveCellSelectionInlineStart();
240
+ }
241
+ }, {
242
+ keys: [['Shift', 'Tab']],
243
+ callback: function callback() {
244
+ return commandsPool.moveCellSelectionInlineEnd();
245
+ }
246
+ }, {
247
+ keys: [['Control/Meta', 'Backspace']],
248
+ callback: function callback() {
249
+ return commandsPool.scrollToFocusedCell();
250
+ }
251
+ }], config);
252
+ }
@@ -0,0 +1,248 @@
1
+ import { isDefined } from "../helpers/mixed.mjs";
2
+ import { GRID_GROUP, EDITOR_EDIT_GROUP } from "./constants.mjs";
3
+ import { createKeyboardShortcutCommandsPool } from "./commands/index.mjs";
4
+ /**
5
+ * The context that defines shortcut list available for selected cell or cells.
6
+ *
7
+ * @param {Handsontable} hot The Handsontable instance.
8
+ */
9
+ export function shortcutsGridContext(hot) {
10
+ var context = hot.getShortcutManager().addContext('grid');
11
+ var commandsPool = createKeyboardShortcutCommandsPool(hot);
12
+ var config = {
13
+ runOnlyIf: function runOnlyIf() {
14
+ var _hot$getSettings = hot.getSettings(),
15
+ navigableHeaders = _hot$getSettings.navigableHeaders;
16
+ return isDefined(hot.getSelected()) && (navigableHeaders || !navigableHeaders && hot.countRenderedRows() > 0 && hot.countRenderedCols() > 0);
17
+ },
18
+ group: GRID_GROUP
19
+ };
20
+ context.addShortcuts([{
21
+ keys: [['F2']],
22
+ callback: function callback(event) {
23
+ return commandsPool.editorFastOpen(event);
24
+ }
25
+ }, {
26
+ keys: [['Enter'], ['Enter', 'Shift']],
27
+ callback: function callback(event, keys) {
28
+ return commandsPool.editorOpen(event, keys);
29
+ }
30
+ }, {
31
+ keys: [['Backspace'], ['Delete']],
32
+ callback: function callback() {
33
+ return commandsPool.emptySelectedCells();
34
+ }
35
+ }], {
36
+ group: EDITOR_EDIT_GROUP,
37
+ runOnlyIf: function runOnlyIf() {
38
+ return isDefined(hot.getSelected());
39
+ }
40
+ });
41
+ context.addShortcuts([{
42
+ keys: [['Control/Meta', 'A'], ['Control/Meta', 'Shift', 'Space']],
43
+ callback: function callback() {
44
+ return commandsPool.selectAll();
45
+ }
46
+ }, {
47
+ keys: [['Control/Meta', 'Enter']],
48
+ callback: function callback() {
49
+ return commandsPool.populateSelectedCellsData();
50
+ },
51
+ runOnlyIf: function runOnlyIf() {
52
+ return !hot.getSelectedRangeLast().highlight.isHeader() && hot.getSelectedRangeLast().getCellsCount() > 1;
53
+ }
54
+ }, {
55
+ keys: [['Control', 'Space']],
56
+ captureCtrl: true,
57
+ callback: function callback() {
58
+ return commandsPool.extendCellsSelectionToColumns();
59
+ }
60
+ }, {
61
+ keys: [['Shift', 'Space']],
62
+ stopPropagation: true,
63
+ callback: function callback() {
64
+ return commandsPool.extendCellsSelectionToRows();
65
+ }
66
+ }, {
67
+ keys: [['ArrowUp']],
68
+ callback: function callback() {
69
+ return commandsPool.moveCellSelectionUp();
70
+ }
71
+ }, {
72
+ keys: [['ArrowUp', 'Control/Meta']],
73
+ captureCtrl: true,
74
+ callback: function callback() {
75
+ return commandsPool.moveCellSelectionToMostTop();
76
+ }
77
+ }, {
78
+ keys: [['ArrowUp', 'Shift']],
79
+ callback: function callback() {
80
+ return commandsPool.extendCellsSelectionUp();
81
+ }
82
+ }, {
83
+ keys: [['ArrowUp', 'Shift', 'Control/Meta']],
84
+ captureCtrl: true,
85
+ callback: function callback() {
86
+ return commandsPool.extendCellsSelectionToMostTop();
87
+ },
88
+ runOnlyIf: function runOnlyIf() {
89
+ return !(hot.selection.isSelectedByCorner() || hot.selection.isSelectedByColumnHeader());
90
+ }
91
+ }, {
92
+ keys: [['ArrowDown']],
93
+ callback: function callback() {
94
+ return commandsPool.moveCellSelectionDown();
95
+ }
96
+ }, {
97
+ keys: [['ArrowDown', 'Control/Meta']],
98
+ captureCtrl: true,
99
+ callback: function callback() {
100
+ return commandsPool.moveCellSelectionToMostBottom();
101
+ }
102
+ }, {
103
+ keys: [['ArrowDown', 'Shift']],
104
+ callback: function callback() {
105
+ return commandsPool.extendCellsSelectionDown();
106
+ }
107
+ }, {
108
+ keys: [['ArrowDown', 'Shift', 'Control/Meta']],
109
+ captureCtrl: true,
110
+ callback: function callback() {
111
+ return commandsPool.extendCellsSelectionToMostBottom();
112
+ },
113
+ runOnlyIf: function runOnlyIf() {
114
+ return !(hot.selection.isSelectedByCorner() || hot.selection.isSelectedByColumnHeader());
115
+ }
116
+ }, {
117
+ keys: [['ArrowLeft']],
118
+ callback: function callback() {
119
+ return commandsPool.moveCellSelectionLeft();
120
+ }
121
+ }, {
122
+ keys: [['ArrowLeft', 'Control/Meta']],
123
+ captureCtrl: true,
124
+ callback: function callback() {
125
+ return commandsPool.moveCellSelectionToMostLeft();
126
+ }
127
+ }, {
128
+ keys: [['ArrowLeft', 'Shift']],
129
+ callback: function callback() {
130
+ return commandsPool.extendCellsSelectionLeft();
131
+ }
132
+ }, {
133
+ keys: [['ArrowLeft', 'Shift', 'Control/Meta']],
134
+ captureCtrl: true,
135
+ callback: function callback() {
136
+ return commandsPool.extendCellsSelectionToMostLeft();
137
+ },
138
+ runOnlyIf: function runOnlyIf() {
139
+ return !(hot.selection.isSelectedByCorner() || hot.selection.isSelectedByRowHeader());
140
+ }
141
+ }, {
142
+ keys: [['ArrowRight']],
143
+ callback: function callback() {
144
+ return commandsPool.moveCellSelectionRight();
145
+ }
146
+ }, {
147
+ keys: [['ArrowRight', 'Control/Meta']],
148
+ captureCtrl: true,
149
+ callback: function callback() {
150
+ return commandsPool.moveCellSelectionToMostRight();
151
+ }
152
+ }, {
153
+ keys: [['ArrowRight', 'Shift']],
154
+ callback: function callback() {
155
+ return commandsPool.extendCellsSelectionRight();
156
+ }
157
+ }, {
158
+ keys: [['ArrowRight', 'Shift', 'Control/Meta']],
159
+ captureCtrl: true,
160
+ callback: function callback() {
161
+ return commandsPool.extendCellsSelectionToMostRight();
162
+ },
163
+ runOnlyIf: function runOnlyIf() {
164
+ return !(hot.selection.isSelectedByCorner() || hot.selection.isSelectedByRowHeader());
165
+ }
166
+ }, {
167
+ keys: [['Home']],
168
+ captureCtrl: true,
169
+ callback: function callback() {
170
+ return commandsPool.moveCellSelectionToMostInlineStart();
171
+ },
172
+ runOnlyIf: function runOnlyIf() {
173
+ return hot.view.isMainTableNotFullyCoveredByOverlays();
174
+ }
175
+ }, {
176
+ keys: [['Home', 'Shift']],
177
+ callback: function callback() {
178
+ return commandsPool.extendCellsSelectionToMostInlineStart();
179
+ }
180
+ }, {
181
+ keys: [['Home', 'Control/Meta']],
182
+ captureCtrl: true,
183
+ callback: function callback() {
184
+ return commandsPool.moveCellSelectionToMostTopInlineStart();
185
+ },
186
+ runOnlyIf: function runOnlyIf() {
187
+ return hot.view.isMainTableNotFullyCoveredByOverlays();
188
+ }
189
+ }, {
190
+ keys: [['End']],
191
+ captureCtrl: true,
192
+ callback: function callback() {
193
+ return commandsPool.moveCellSelectionToMostInlineEnd();
194
+ },
195
+ runOnlyIf: function runOnlyIf() {
196
+ return hot.view.isMainTableNotFullyCoveredByOverlays();
197
+ }
198
+ }, {
199
+ keys: [['End', 'Shift']],
200
+ callback: function callback() {
201
+ return commandsPool.extendCellsSelectionToMostInlineEnd();
202
+ }
203
+ }, {
204
+ keys: [['End', 'Control/Meta']],
205
+ captureCtrl: true,
206
+ callback: function callback() {
207
+ return commandsPool.moveCellSelectionToMostBottomInlineEnd();
208
+ },
209
+ runOnlyIf: function runOnlyIf() {
210
+ return hot.view.isMainTableNotFullyCoveredByOverlays();
211
+ }
212
+ }, {
213
+ keys: [['PageUp']],
214
+ callback: function callback() {
215
+ return commandsPool.moveCellSelectionUpByViewportHight();
216
+ }
217
+ }, {
218
+ keys: [['PageUp', 'Shift']],
219
+ callback: function callback() {
220
+ return commandsPool.extendCellsSelectionUpByViewportHeight();
221
+ }
222
+ }, {
223
+ keys: [['PageDown']],
224
+ callback: function callback() {
225
+ return commandsPool.moveCellSelectionDownByViewportHeight();
226
+ }
227
+ }, {
228
+ keys: [['PageDown', 'Shift']],
229
+ callback: function callback() {
230
+ return commandsPool.extendCellsSelectionDownByViewportHeight();
231
+ }
232
+ }, {
233
+ keys: [['Tab']],
234
+ callback: function callback() {
235
+ return commandsPool.moveCellSelectionInlineStart();
236
+ }
237
+ }, {
238
+ keys: [['Shift', 'Tab']],
239
+ callback: function callback() {
240
+ return commandsPool.moveCellSelectionInlineEnd();
241
+ }
242
+ }, {
243
+ keys: [['Control/Meta', 'Backspace']],
244
+ callback: function callback() {
245
+ return commandsPool.scrollToFocusedCell();
246
+ }
247
+ }], config);
248
+ }
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.object.keys.js");
4
+ exports.__esModule = true;
5
+ var _exportNames = {
6
+ registerAllShortcutContexts: true
7
+ };
8
+ exports.registerAllShortcutContexts = registerAllShortcutContexts;
9
+ require("core-js/modules/es.object.to-string.js");
10
+ require("core-js/modules/web.dom-collections.for-each.js");
11
+ var _editor = require("./editor");
12
+ var _grid = require("./grid");
13
+ var _constants = require("./constants");
14
+ Object.keys(_constants).forEach(function (key) {
15
+ if (key === "default" || key === "__esModule") return;
16
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
17
+ if (key in exports && exports[key] === _constants[key]) return;
18
+ exports[key] = _constants[key];
19
+ });
20
+ /**
21
+ * Register all shortcut contexts.
22
+ *
23
+ * @param {Handsontable} hotInstance The Handsontable instance.
24
+ */
25
+ function registerAllShortcutContexts(hotInstance) {
26
+ [_editor.shortcutsEditorContext, _grid.shortcutsGridContext].forEach(function (context) {
27
+ return context(hotInstance);
28
+ });
29
+ }
@@ -0,0 +1,15 @@
1
+ import "core-js/modules/es.object.to-string.js";
2
+ import "core-js/modules/web.dom-collections.for-each.js";
3
+ import { shortcutsEditorContext } from "./editor.mjs";
4
+ import { shortcutsGridContext } from "./grid.mjs";
5
+ export * from "./constants.mjs";
6
+ /**
7
+ * Register all shortcut contexts.
8
+ *
9
+ * @param {Handsontable} hotInstance The Handsontable instance.
10
+ */
11
+ export function registerAllShortcutContexts(hotInstance) {
12
+ [shortcutsEditorContext, shortcutsGridContext].forEach(function (context) {
13
+ return context(hotInstance);
14
+ });
15
+ }
@@ -5,6 +5,7 @@ require("core-js/modules/es.symbol.js");
5
5
  require("core-js/modules/es.symbol.description.js");
6
6
  require("core-js/modules/es.symbol.iterator.js");
7
7
  require("core-js/modules/es.string.iterator.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");
@@ -3,6 +3,7 @@ import "core-js/modules/es.symbol.js";
3
3
  import "core-js/modules/es.symbol.description.js";
4
4
  import "core-js/modules/es.symbol.iterator.js";
5
5
  import "core-js/modules/es.string.iterator.js";
6
+ import "core-js/modules/es.regexp.to-string.js";
6
7
  import "core-js/modules/es.function.name.js";
7
8
  import "core-js/modules/es.array.from.js";
8
9
  import "core-js/modules/es.regexp.exec.js";
@@ -3,6 +3,7 @@
3
3
  exports.__esModule = true;
4
4
  exports.createShortcutManager = void 0;
5
5
  var _uniqueMap = require("../utils/dataStructures/uniqueMap");
6
+ var _event = require("../helpers/dom/event");
6
7
  var _context = require("./context");
7
8
  var _recorder = require("./recorder");
8
9
  /* eslint-disable jsdoc/require-description-complete-sentence */
@@ -126,6 +127,7 @@ var createShortcutManager = function createShortcutManager(_ref) {
126
127
  event.preventDefault();
127
128
  }
128
129
  if (stopPropagation) {
130
+ (0, _event.stopImmediatePropagation)(event);
129
131
  event.stopPropagation();
130
132
  }
131
133
  if (isExecutionCancelled) {
@@ -1,4 +1,5 @@
1
1
  import { createUniqueMap } from "../utils/dataStructures/uniqueMap.mjs";
2
+ import { stopImmediatePropagation } from "../helpers/dom/event.mjs";
2
3
  import { createContext } from "./context.mjs";
3
4
  import { useRecorder } from "./recorder.mjs";
4
5
  /* eslint-disable jsdoc/require-description-complete-sentence */
@@ -121,6 +122,7 @@ export var createShortcutManager = function createShortcutManager(_ref) {
121
122
  event.preventDefault();
122
123
  }
123
124
  if (stopPropagation) {
125
+ stopImmediatePropagation(event);
124
126
  event.stopPropagation();
125
127
  }
126
128
  if (isExecutionCancelled) {
@@ -88,7 +88,7 @@ function useRecorder(ownerWindow, handleEvent, beforeKeyDown, afterKeyDown, call
88
88
  if (event.keyCode === 229 || result === false || (0, _event.isImmediatePropagationStopped)(event)) {
89
89
  return;
90
90
  }
91
- var pressedKey = (0, _utils.normalizeEventKey)(event.key);
91
+ var pressedKey = (0, _utils.normalizeEventKey)(event);
92
92
  var extraModifierKeys = [];
93
93
  if (isModifierKey(pressedKey)) {
94
94
  modifierKeysObserver.press(pressedKey);
@@ -114,7 +114,7 @@ function useRecorder(ownerWindow, handleEvent, beforeKeyDown, afterKeyDown, call
114
114
  if (handleEvent(event) === false) {
115
115
  return;
116
116
  }
117
- var pressedKey = (0, _utils.normalizeEventKey)(event.key);
117
+ var pressedKey = (0, _utils.normalizeEventKey)(event);
118
118
  if (isModifierKey(pressedKey) === false) {
119
119
  return;
120
120
  }
@@ -84,7 +84,7 @@ export function useRecorder(ownerWindow, handleEvent, beforeKeyDown, afterKeyDow
84
84
  if (event.keyCode === 229 || result === false || isImmediatePropagationStopped(event)) {
85
85
  return;
86
86
  }
87
- var pressedKey = normalizeEventKey(event.key);
87
+ var pressedKey = normalizeEventKey(event);
88
88
  var extraModifierKeys = [];
89
89
  if (isModifierKey(pressedKey)) {
90
90
  modifierKeysObserver.press(pressedKey);
@@ -110,7 +110,7 @@ export function useRecorder(ownerWindow, handleEvent, beforeKeyDown, afterKeyDow
110
110
  if (handleEvent(event) === false) {
111
111
  return;
112
112
  }
113
- var pressedKey = normalizeEventKey(event.key);
113
+ var pressedKey = normalizeEventKey(event);
114
114
  if (isModifierKey(pressedKey) === false) {
115
115
  return;
116
116
  }
@@ -10,6 +10,10 @@ require("core-js/modules/web.dom-collections.iterator.js");
10
10
  require("core-js/modules/es.array.join.js");
11
11
  require("core-js/modules/es.array.sort.js");
12
12
  require("core-js/modules/es.array.map.js");
13
+ require("core-js/modules/es.regexp.constructor.js");
14
+ require("core-js/modules/es.regexp.exec.js");
15
+ require("core-js/modules/es.regexp.to-string.js");
16
+ require("core-js/modules/es.string.replace.js");
13
17
  // This file handles key-name discrepancies between browsers.
14
18
  // For the list of discrepancies, go to: https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values.
15
19
  var mappings = new Map([[' ', 'space'],
@@ -46,13 +50,25 @@ var getKeysList = function getKeysList(normalizedKeys) {
46
50
  };
47
51
 
48
52
  /**
49
- * Normalize a `KeyboardEvent.key` property, to use it for keyboard shortcuts.
53
+ * The regex tests if the event.code matches to the pattern and it's used to extract letters and digits from
54
+ * the string.
55
+ */
56
+ exports.getKeysList = getKeysList;
57
+ var codeToKeyRegExp = new RegExp('^(?:Key|Digit)([A-Z0-9])$');
58
+
59
+ /**
60
+ * Normalizes a keyboard event key value to a key before its modification. When the keyboard event
61
+ * is triggered with Alt, Control or Shift keys the `key` property contains modified key e.g. for Alt+L
62
+ * it will be `ł`. But that value is only valid for polish keyboard layout. To fix that limitations, for
63
+ * letters and digits the value is taken from the `code` property which holds original value before
64
+ * transformation.
50
65
  *
51
- * @param {string} key KeyboardEvent's key property.
66
+ * @param {Event} event The KeyboardEvent object.
52
67
  * @returns {string}
53
68
  */
54
- exports.getKeysList = getKeysList;
55
- var normalizeEventKey = function normalizeEventKey(key) {
56
- return key.toLowerCase();
69
+ var normalizeEventKey = function normalizeEventKey(_ref) {
70
+ var key = _ref.key,
71
+ code = _ref.code;
72
+ return (codeToKeyRegExp.test(code) ? code.replace(codeToKeyRegExp, '$1') : key).toLowerCase();
57
73
  };
58
74
  exports.normalizeEventKey = normalizeEventKey;