handsontable 11.1.0 → 12.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (461) hide show
  1. package/3rdparty/walkontable/src/border.js +120 -98
  2. package/3rdparty/walkontable/src/border.mjs +120 -94
  3. package/3rdparty/walkontable/src/cell/coords.js +59 -17
  4. package/3rdparty/walkontable/src/cell/coords.mjs +55 -17
  5. package/3rdparty/walkontable/src/cell/range.d.ts +10 -2
  6. package/3rdparty/walkontable/src/cell/range.js +278 -99
  7. package/3rdparty/walkontable/src/cell/range.mjs +273 -99
  8. package/3rdparty/walkontable/src/core/_base.js +452 -0
  9. package/3rdparty/walkontable/src/core/_base.mjs +440 -0
  10. package/3rdparty/walkontable/src/core/clone.js +97 -0
  11. package/3rdparty/walkontable/src/core/clone.mjs +80 -0
  12. package/3rdparty/walkontable/src/core/core.js +183 -0
  13. package/3rdparty/walkontable/src/core/core.mjs +160 -0
  14. package/3rdparty/walkontable/src/event.js +99 -66
  15. package/3rdparty/walkontable/src/event.mjs +99 -63
  16. package/3rdparty/walkontable/src/facade/core.js +251 -0
  17. package/3rdparty/walkontable/src/facade/core.mjs +243 -0
  18. package/3rdparty/walkontable/src/index.js +2 -46
  19. package/3rdparty/walkontable/src/index.mjs +3 -13
  20. package/3rdparty/walkontable/src/overlay/_base.js +124 -57
  21. package/3rdparty/walkontable/src/overlay/_base.mjs +124 -57
  22. package/3rdparty/walkontable/src/overlay/bottom.js +96 -80
  23. package/3rdparty/walkontable/src/overlay/bottom.mjs +96 -80
  24. package/3rdparty/walkontable/src/overlay/{bottomLeftCorner.js → bottomInlineStartCorner.js} +45 -62
  25. package/3rdparty/walkontable/src/overlay/{bottomLeftCorner.mjs → bottomInlineStartCorner.mjs} +44 -61
  26. package/3rdparty/walkontable/src/overlay/constants.js +25 -9
  27. package/3rdparty/walkontable/src/overlay/constants.mjs +14 -4
  28. package/3rdparty/walkontable/src/overlay/index.js +10 -19
  29. package/3rdparty/walkontable/src/overlay/index.mjs +4 -5
  30. package/3rdparty/walkontable/src/overlay/{left.js → inlineStart.js} +113 -82
  31. package/3rdparty/walkontable/src/overlay/{left.mjs → inlineStart.mjs} +112 -81
  32. package/3rdparty/walkontable/src/overlay/top.js +93 -68
  33. package/3rdparty/walkontable/src/overlay/top.mjs +93 -68
  34. package/3rdparty/walkontable/src/overlay/{topLeftCorner.js → topInlineStartCorner.js} +56 -57
  35. package/3rdparty/walkontable/src/overlay/{topLeftCorner.mjs → topInlineStartCorner.mjs} +51 -52
  36. package/3rdparty/walkontable/src/overlays.js +225 -156
  37. package/3rdparty/walkontable/src/overlays.mjs +224 -154
  38. package/3rdparty/walkontable/src/renderer/cells.js +4 -3
  39. package/3rdparty/walkontable/src/renderer/cells.mjs +4 -3
  40. package/3rdparty/walkontable/src/renderer/colGroup.js +2 -2
  41. package/3rdparty/walkontable/src/renderer/colGroup.mjs +2 -2
  42. package/3rdparty/walkontable/src/renderer/columnHeaders.js +2 -2
  43. package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +2 -2
  44. package/3rdparty/walkontable/src/renderer/rowHeaders.js +2 -2
  45. package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +2 -2
  46. package/3rdparty/walkontable/src/renderer/rows.js +2 -2
  47. package/3rdparty/walkontable/src/renderer/rows.mjs +2 -2
  48. package/3rdparty/walkontable/src/scroll.js +125 -104
  49. package/3rdparty/walkontable/src/scroll.mjs +124 -104
  50. package/3rdparty/walkontable/src/selection.js +10 -14
  51. package/3rdparty/walkontable/src/selection.mjs +10 -12
  52. package/3rdparty/walkontable/src/settings.js +235 -126
  53. package/3rdparty/walkontable/src/settings.mjs +235 -125
  54. package/3rdparty/walkontable/src/table/bottom.js +16 -5
  55. package/3rdparty/walkontable/src/table/bottom.mjs +15 -5
  56. package/3rdparty/walkontable/src/table/{bottomLeftCorner.js → bottomInlineStartCorner.js} +27 -15
  57. package/3rdparty/walkontable/src/table/{bottomLeftCorner.mjs → bottomInlineStartCorner.mjs} +26 -15
  58. package/3rdparty/walkontable/src/table/{left.js → inlineStart.js} +23 -15
  59. package/3rdparty/walkontable/src/table/{left.mjs → inlineStart.mjs} +22 -15
  60. package/3rdparty/walkontable/src/table/master.js +22 -12
  61. package/3rdparty/walkontable/src/table/master.mjs +22 -12
  62. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +12 -6
  63. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +12 -6
  64. package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +12 -6
  65. package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +12 -6
  66. package/3rdparty/walkontable/src/table/mixin/{stickyColumnsLeft.js → stickyColumnsStart.js} +13 -7
  67. package/3rdparty/walkontable/src/table/mixin/{stickyColumnsLeft.mjs → stickyColumnsStart.mjs} +13 -7
  68. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +11 -5
  69. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +11 -5
  70. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +9 -3
  71. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +9 -3
  72. package/3rdparty/walkontable/src/table/top.js +16 -5
  73. package/3rdparty/walkontable/src/table/top.mjs +15 -5
  74. package/3rdparty/walkontable/src/table/{topLeftCorner.js → topInlineStartCorner.js} +27 -15
  75. package/3rdparty/walkontable/src/table/{topLeftCorner.mjs → topInlineStartCorner.mjs} +26 -15
  76. package/3rdparty/walkontable/src/table.js +235 -140
  77. package/3rdparty/walkontable/src/table.mjs +231 -134
  78. package/3rdparty/walkontable/src/types.js +103 -0
  79. package/3rdparty/walkontable/src/types.mjs +102 -0
  80. package/3rdparty/walkontable/src/utils/column.js +22 -33
  81. package/3rdparty/walkontable/src/utils/column.mjs +22 -30
  82. package/3rdparty/walkontable/src/utils/orderView/sharedView.js +2 -2
  83. package/3rdparty/walkontable/src/utils/orderView/sharedView.mjs +2 -2
  84. package/3rdparty/walkontable/src/utils/row.js +9 -4
  85. package/3rdparty/walkontable/src/utils/row.mjs +9 -4
  86. package/3rdparty/walkontable/src/viewport.js +89 -100
  87. package/3rdparty/walkontable/src/viewport.mjs +89 -97
  88. package/CHANGELOG.md +92 -0
  89. package/LICENSE.txt +1 -1
  90. package/README.md +0 -1
  91. package/base.js +2 -2
  92. package/base.mjs +2 -2
  93. package/cellTypes/timeType/timeType.d.ts +6 -6
  94. package/cellTypes/timeType/timeType.js +4 -5
  95. package/cellTypes/timeType/timeType.mjs +4 -5
  96. package/core.d.ts +6 -1
  97. package/core.js +508 -80
  98. package/core.mjs +517 -92
  99. package/dataMap/index.js +4 -0
  100. package/dataMap/index.mjs +2 -1
  101. package/dataMap/metaManager/index.js +2 -2
  102. package/dataMap/metaManager/index.mjs +2 -2
  103. package/dataMap/metaManager/metaLayers/globalMeta.js +4 -0
  104. package/dataMap/metaManager/metaLayers/globalMeta.mjs +4 -0
  105. package/dataMap/metaManager/metaLayers/tableMeta.js +2 -2
  106. package/dataMap/metaManager/metaLayers/tableMeta.mjs +2 -2
  107. package/dataMap/metaManager/metaSchema.js +282 -187
  108. package/dataMap/metaManager/metaSchema.mjs +282 -187
  109. package/dataMap/metaManager/mods/extendMetaProperties.js +126 -0
  110. package/dataMap/metaManager/mods/extendMetaProperties.mjs +113 -0
  111. package/dataMap/replaceData.js +3 -17
  112. package/dataMap/replaceData.mjs +3 -17
  113. package/dist/handsontable.css +268 -92
  114. package/dist/handsontable.full.css +269 -103
  115. package/dist/handsontable.full.js +41990 -35658
  116. package/dist/handsontable.full.min.css +9 -9
  117. package/dist/handsontable.full.min.js +144 -144
  118. package/dist/handsontable.js +29561 -25597
  119. package/dist/handsontable.min.css +8 -8
  120. package/dist/handsontable.min.js +4 -4
  121. package/dist/languages/all.js +131 -34
  122. package/dist/languages/all.min.js +1 -1
  123. package/dist/languages/ar-AR.js +167 -0
  124. package/dist/languages/ar-AR.min.js +1 -0
  125. package/dist/languages/cs-CZ.js +167 -0
  126. package/dist/languages/cs-CZ.min.js +1 -0
  127. package/dist/languages/de-CH.js +31 -29
  128. package/dist/languages/de-CH.min.js +1 -1
  129. package/dist/languages/de-DE.js +4 -2
  130. package/dist/languages/de-DE.min.js +1 -1
  131. package/dist/languages/en-US.js +4 -2
  132. package/dist/languages/en-US.min.js +1 -1
  133. package/dist/languages/es-MX.js +4 -2
  134. package/dist/languages/es-MX.min.js +1 -1
  135. package/dist/languages/fr-FR.js +4 -2
  136. package/dist/languages/fr-FR.min.js +1 -1
  137. package/dist/languages/it-IT.js +4 -2
  138. package/dist/languages/it-IT.min.js +1 -1
  139. package/dist/languages/ja-JP.js +36 -38
  140. package/dist/languages/ja-JP.min.js +1 -1
  141. package/dist/languages/ko-KR.js +36 -39
  142. package/dist/languages/ko-KR.min.js +1 -1
  143. package/dist/languages/lv-LV.js +2 -2
  144. package/dist/languages/lv-LV.min.js +1 -1
  145. package/dist/languages/nb-NO.js +2 -2
  146. package/dist/languages/nb-NO.min.js +1 -1
  147. package/dist/languages/nl-NL.js +2 -2
  148. package/dist/languages/nl-NL.min.js +1 -1
  149. package/dist/languages/pl-PL.js +2 -2
  150. package/dist/languages/pl-PL.min.js +1 -1
  151. package/dist/languages/pt-BR.js +2 -2
  152. package/dist/languages/pt-BR.min.js +1 -1
  153. package/dist/languages/ru-RU.js +2 -2
  154. package/dist/languages/ru-RU.min.js +1 -1
  155. package/dist/languages/sr-SP.js +171 -0
  156. package/dist/languages/sr-SP.min.js +1 -0
  157. package/dist/languages/zh-CN.js +24 -24
  158. package/dist/languages/zh-CN.min.js +1 -1
  159. package/dist/languages/zh-TW.js +24 -24
  160. package/dist/languages/zh-TW.min.js +1 -1
  161. package/editorManager.js +120 -267
  162. package/editorManager.mjs +128 -278
  163. package/editors/autocompleteEditor/autocompleteEditor.js +22 -25
  164. package/editors/autocompleteEditor/autocompleteEditor.mjs +22 -25
  165. package/editors/baseEditor/baseEditor.js +205 -34
  166. package/editors/baseEditor/baseEditor.mjs +200 -32
  167. package/editors/checkboxEditor/checkboxEditor.js +2 -2
  168. package/editors/checkboxEditor/checkboxEditor.mjs +2 -2
  169. package/editors/dateEditor/dateEditor.js +21 -8
  170. package/editors/dateEditor/dateEditor.mjs +22 -9
  171. package/editors/dropdownEditor/dropdownEditor.js +3 -3
  172. package/editors/dropdownEditor/dropdownEditor.mjs +3 -3
  173. package/editors/handsontableEditor/handsontableEditor.js +106 -55
  174. package/editors/handsontableEditor/handsontableEditor.mjs +106 -55
  175. package/editors/index.d.ts +3 -0
  176. package/editors/index.js +6 -0
  177. package/editors/index.mjs +3 -1
  178. package/editors/numericEditor/numericEditor.js +2 -2
  179. package/editors/numericEditor/numericEditor.mjs +2 -2
  180. package/editors/passwordEditor/passwordEditor.js +3 -3
  181. package/editors/passwordEditor/passwordEditor.mjs +3 -3
  182. package/editors/selectEditor/selectEditor.js +65 -110
  183. package/editors/selectEditor/selectEditor.mjs +66 -109
  184. package/editors/textEditor/caretPositioner.js +49 -0
  185. package/editors/textEditor/caretPositioner.mjs +42 -0
  186. package/editors/textEditor/textEditor.js +205 -181
  187. package/editors/textEditor/textEditor.mjs +199 -179
  188. package/editors/timeEditor/index.d.ts +1 -0
  189. package/editors/timeEditor/index.js +9 -0
  190. package/editors/timeEditor/index.mjs +1 -0
  191. package/editors/timeEditor/timeEditor.d.ts +7 -0
  192. package/editors/timeEditor/timeEditor.js +105 -0
  193. package/editors/timeEditor/timeEditor.mjs +84 -0
  194. package/eventManager.js +4 -2
  195. package/eventManager.mjs +4 -2
  196. package/helpers/mixed.js +2 -2
  197. package/helpers/mixed.mjs +2 -2
  198. package/i18n/languages/ar-AR.js +41 -0
  199. package/i18n/languages/ar-AR.mjs +17 -0
  200. package/i18n/languages/cs-CZ.js +40 -0
  201. package/i18n/languages/cs-CZ.mjs +16 -0
  202. package/i18n/languages/index.js +12 -0
  203. package/i18n/languages/index.mjs +4 -1
  204. package/i18n/languages/sr-SP.js +40 -0
  205. package/i18n/languages/sr-SP.mjs +16 -0
  206. package/index.d.ts +4 -0
  207. package/languages/all.js +131 -34
  208. package/languages/ar-AR.js +167 -0
  209. package/languages/ar-AR.mjs +19 -0
  210. package/languages/cs-CZ.js +167 -0
  211. package/languages/cs-CZ.mjs +18 -0
  212. package/languages/de-CH.js +31 -29
  213. package/languages/de-DE.js +4 -2
  214. package/languages/en-US.js +4 -2
  215. package/languages/es-MX.js +4 -2
  216. package/languages/fr-FR.js +4 -2
  217. package/languages/index.js +131 -34
  218. package/languages/index.mjs +4 -1
  219. package/languages/it-IT.js +4 -2
  220. package/languages/ja-JP.js +36 -38
  221. package/languages/ko-KR.js +36 -39
  222. package/languages/lv-LV.js +2 -2
  223. package/languages/nb-NO.js +2 -2
  224. package/languages/nl-NL.js +2 -2
  225. package/languages/pl-PL.js +2 -2
  226. package/languages/pt-BR.js +2 -2
  227. package/languages/ru-RU.js +2 -2
  228. package/languages/sr-SP.js +171 -0
  229. package/languages/sr-SP.mjs +18 -0
  230. package/languages/zh-CN.js +24 -24
  231. package/languages/zh-TW.js +24 -24
  232. package/package.json +44 -4
  233. package/pluginHooks.js +49 -13
  234. package/pluginHooks.mjs +49 -13
  235. package/plugins/autoColumnSize/autoColumnSize.js +15 -10
  236. package/plugins/autoColumnSize/autoColumnSize.mjs +15 -10
  237. package/plugins/autoRowSize/autoRowSize.js +14 -9
  238. package/plugins/autoRowSize/autoRowSize.mjs +14 -9
  239. package/plugins/autofill/autofill.js +49 -33
  240. package/plugins/autofill/autofill.mjs +49 -32
  241. package/plugins/autofill/utils.js +10 -11
  242. package/plugins/autofill/utils.mjs +10 -10
  243. package/plugins/base/base.d.ts +8 -2
  244. package/plugins/base/base.js +67 -4
  245. package/plugins/base/base.mjs +66 -4
  246. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +3 -3
  247. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +3 -3
  248. package/plugins/bindRowsWithHeaders/maps/looseBindsMap.js +3 -3
  249. package/plugins/bindRowsWithHeaders/maps/looseBindsMap.mjs +3 -3
  250. package/plugins/bindRowsWithHeaders/maps/strictBindsMap.js +3 -3
  251. package/plugins/bindRowsWithHeaders/maps/strictBindsMap.mjs +3 -3
  252. package/plugins/collapsibleColumns/collapsibleColumns.js +27 -9
  253. package/plugins/collapsibleColumns/collapsibleColumns.mjs +27 -9
  254. package/plugins/columnSorting/columnSorting.js +5 -7
  255. package/plugins/columnSorting/columnSorting.mjs +5 -6
  256. package/plugins/columnSummary/columnSummary.js +3 -3
  257. package/plugins/columnSummary/columnSummary.mjs +3 -3
  258. package/plugins/comments/commentEditor.js +18 -2
  259. package/plugins/comments/commentEditor.mjs +19 -3
  260. package/plugins/comments/comments.js +57 -46
  261. package/plugins/comments/comments.mjs +58 -46
  262. package/plugins/contextMenu/contextMenu.js +10 -6
  263. package/plugins/contextMenu/contextMenu.mjs +10 -6
  264. package/plugins/contextMenu/menu.js +222 -110
  265. package/plugins/contextMenu/menu.mjs +219 -111
  266. package/plugins/contextMenu/predefinedItems/columnLeft.js +12 -4
  267. package/plugins/contextMenu/predefinedItems/columnLeft.mjs +11 -4
  268. package/plugins/contextMenu/predefinedItems/columnRight.js +9 -9
  269. package/plugins/contextMenu/predefinedItems/columnRight.mjs +9 -9
  270. package/plugins/contextMenu/utils.js +2 -2
  271. package/plugins/contextMenu/utils.mjs +2 -2
  272. package/plugins/copyPaste/copyPaste.js +31 -21
  273. package/plugins/copyPaste/copyPaste.mjs +30 -21
  274. package/plugins/customBorders/contextMenuItem/left.js +4 -3
  275. package/plugins/customBorders/contextMenuItem/left.mjs +4 -3
  276. package/plugins/customBorders/contextMenuItem/right.js +4 -3
  277. package/plugins/customBorders/contextMenuItem/right.mjs +4 -3
  278. package/plugins/customBorders/customBorders.js +144 -87
  279. package/plugins/customBorders/customBorders.mjs +143 -85
  280. package/plugins/customBorders/utils.js +131 -27
  281. package/plugins/customBorders/utils.mjs +115 -27
  282. package/plugins/dragToScroll/dragToScroll.js +10 -5
  283. package/plugins/dragToScroll/dragToScroll.mjs +10 -5
  284. package/plugins/dropdownMenu/dropdownMenu.js +9 -7
  285. package/plugins/dropdownMenu/dropdownMenu.mjs +9 -7
  286. package/plugins/exportFile/exportFile.js +2 -2
  287. package/plugins/exportFile/exportFile.mjs +2 -2
  288. package/plugins/exportFile/types/csv.js +2 -2
  289. package/plugins/exportFile/types/csv.mjs +2 -2
  290. package/plugins/filters/component/actionBar.js +2 -2
  291. package/plugins/filters/component/actionBar.mjs +2 -2
  292. package/plugins/filters/component/condition.js +3 -3
  293. package/plugins/filters/component/condition.mjs +3 -3
  294. package/plugins/filters/component/operators.js +2 -2
  295. package/plugins/filters/component/operators.mjs +2 -2
  296. package/plugins/filters/component/value.js +3 -3
  297. package/plugins/filters/component/value.mjs +3 -3
  298. package/plugins/filters/filters.js +11 -8
  299. package/plugins/filters/filters.mjs +11 -8
  300. package/plugins/filters/ui/input.js +3 -3
  301. package/plugins/filters/ui/input.mjs +3 -3
  302. package/plugins/filters/ui/link.js +3 -3
  303. package/plugins/filters/ui/link.mjs +3 -3
  304. package/plugins/filters/ui/multipleSelect.js +18 -31
  305. package/plugins/filters/ui/multipleSelect.mjs +18 -31
  306. package/plugins/filters/ui/radioInput.js +3 -3
  307. package/plugins/filters/ui/radioInput.mjs +3 -3
  308. package/plugins/filters/ui/select.js +4 -4
  309. package/plugins/filters/ui/select.mjs +4 -4
  310. package/plugins/formulas/formulas.js +14 -9
  311. package/plugins/formulas/formulas.mjs +14 -9
  312. package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +2 -4
  313. package/plugins/hiddenColumns/contextMenuItem/hideColumn.mjs +2 -4
  314. package/plugins/hiddenColumns/contextMenuItem/showColumn.js +5 -5
  315. package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +5 -5
  316. package/plugins/hiddenColumns/hiddenColumns.js +9 -4
  317. package/plugins/hiddenColumns/hiddenColumns.mjs +9 -4
  318. package/plugins/hiddenRows/contextMenuItem/hideRow.js +2 -4
  319. package/plugins/hiddenRows/contextMenuItem/hideRow.mjs +2 -4
  320. package/plugins/hiddenRows/contextMenuItem/showRow.js +5 -5
  321. package/plugins/hiddenRows/contextMenuItem/showRow.mjs +5 -5
  322. package/plugins/hiddenRows/hiddenRows.js +9 -4
  323. package/plugins/hiddenRows/hiddenRows.mjs +9 -4
  324. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +1 -1
  325. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.mjs +1 -1
  326. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +1 -1
  327. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.mjs +1 -1
  328. package/plugins/manualColumnFreeze/manualColumnFreeze.js +54 -15
  329. package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +49 -15
  330. package/plugins/manualColumnMove/manualColumnMove.js +70 -70
  331. package/plugins/manualColumnMove/manualColumnMove.mjs +71 -71
  332. package/plugins/manualColumnMove/ui/_base.js +25 -12
  333. package/plugins/manualColumnMove/ui/_base.mjs +24 -12
  334. package/plugins/manualColumnMove/ui/backlight.js +3 -3
  335. package/plugins/manualColumnMove/ui/backlight.mjs +3 -3
  336. package/plugins/manualColumnMove/ui/guideline.js +3 -3
  337. package/plugins/manualColumnMove/ui/guideline.mjs +3 -3
  338. package/plugins/manualColumnResize/manualColumnResize.js +37 -21
  339. package/plugins/manualColumnResize/manualColumnResize.mjs +37 -21
  340. package/plugins/manualRowMove/manualRowMove.js +26 -34
  341. package/plugins/manualRowMove/manualRowMove.mjs +26 -34
  342. package/plugins/manualRowMove/ui/backlight.js +3 -3
  343. package/plugins/manualRowMove/ui/backlight.mjs +3 -3
  344. package/plugins/manualRowMove/ui/guideline.js +3 -3
  345. package/plugins/manualRowMove/ui/guideline.mjs +3 -3
  346. package/plugins/manualRowResize/manualRowResize.js +34 -19
  347. package/plugins/manualRowResize/manualRowResize.mjs +34 -19
  348. package/plugins/mergeCells/calculations/autofill.js +6 -5
  349. package/plugins/mergeCells/calculations/autofill.mjs +6 -4
  350. package/plugins/mergeCells/calculations/selection.js +9 -4
  351. package/plugins/mergeCells/calculations/selection.mjs +9 -4
  352. package/plugins/mergeCells/cellCoords.js +16 -4
  353. package/plugins/mergeCells/cellCoords.mjs +16 -3
  354. package/plugins/mergeCells/cellsCollection.js +30 -23
  355. package/plugins/mergeCells/cellsCollection.mjs +30 -22
  356. package/plugins/mergeCells/mergeCells.js +94 -61
  357. package/plugins/mergeCells/mergeCells.mjs +94 -59
  358. package/plugins/multiColumnSorting/multiColumnSorting.js +4 -6
  359. package/plugins/multiColumnSorting/multiColumnSorting.mjs +4 -5
  360. package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +51 -57
  361. package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +52 -57
  362. package/plugins/nestedHeaders/nestedHeaders.js +31 -20
  363. package/plugins/nestedHeaders/nestedHeaders.mjs +31 -20
  364. package/plugins/nestedHeaders/stateManager/utils.js +3 -4
  365. package/plugins/nestedHeaders/stateManager/utils.mjs +3 -4
  366. package/plugins/nestedHeaders/utils/ghostTable.js +114 -75
  367. package/plugins/nestedHeaders/utils/ghostTable.mjs +114 -74
  368. package/plugins/nestedRows/nestedRows.js +9 -4
  369. package/plugins/nestedRows/nestedRows.mjs +9 -4
  370. package/plugins/nestedRows/ui/collapsing.js +2 -2
  371. package/plugins/nestedRows/ui/collapsing.mjs +2 -2
  372. package/plugins/nestedRows/ui/contextMenu.js +2 -2
  373. package/plugins/nestedRows/ui/contextMenu.mjs +2 -2
  374. package/plugins/nestedRows/ui/headers.js +2 -2
  375. package/plugins/nestedRows/ui/headers.mjs +2 -2
  376. package/plugins/nestedRows/utils/rowMoveController.js +2 -4
  377. package/plugins/nestedRows/utils/rowMoveController.mjs +2 -3
  378. package/plugins/persistentState/persistentState.js +9 -4
  379. package/plugins/persistentState/persistentState.mjs +9 -4
  380. package/plugins/search/search.js +9 -4
  381. package/plugins/search/search.mjs +9 -4
  382. package/plugins/touchScroll/touchScroll.js +27 -21
  383. package/plugins/touchScroll/touchScroll.mjs +27 -21
  384. package/plugins/trimRows/trimRows.js +9 -4
  385. package/plugins/trimRows/trimRows.mjs +9 -4
  386. package/plugins/undoRedo/undoRedo.js +53 -47
  387. package/plugins/undoRedo/undoRedo.mjs +53 -46
  388. package/renderers/autocompleteRenderer/autocompleteRenderer.js +1 -3
  389. package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +1 -2
  390. package/renderers/checkboxRenderer/checkboxRenderer.js +48 -43
  391. package/renderers/checkboxRenderer/checkboxRenderer.mjs +48 -41
  392. package/renderers/index.d.ts +4 -1
  393. package/renderers/index.js +6 -0
  394. package/renderers/index.mjs +3 -1
  395. package/renderers/numericRenderer/numericRenderer.js +1 -0
  396. package/renderers/numericRenderer/numericRenderer.mjs +1 -0
  397. package/renderers/timeRenderer/index.d.ts +1 -0
  398. package/renderers/timeRenderer/index.js +9 -0
  399. package/renderers/timeRenderer/index.mjs +1 -0
  400. package/renderers/timeRenderer/timeRenderer.d.ts +5 -0
  401. package/renderers/timeRenderer/timeRenderer.js +31 -0
  402. package/renderers/timeRenderer/timeRenderer.mjs +20 -0
  403. package/selection/highlight/visualSelection.js +94 -220
  404. package/selection/highlight/visualSelection.mjs +91 -213
  405. package/selection/mouseEventHandler.js +15 -10
  406. package/selection/mouseEventHandler.mjs +15 -9
  407. package/selection/range.js +4 -5
  408. package/selection/range.mjs +4 -5
  409. package/selection/selection.js +35 -22
  410. package/selection/selection.mjs +35 -20
  411. package/selection/transformation.js +4 -6
  412. package/selection/transformation.mjs +4 -5
  413. package/settings.d.ts +3 -1
  414. package/shortcuts/context.d.ts +20 -0
  415. package/shortcuts/context.js +296 -0
  416. package/shortcuts/context.mjs +268 -0
  417. package/shortcuts/index.d.ts +1 -0
  418. package/shortcuts/index.js +8 -0
  419. package/shortcuts/index.mjs +1 -0
  420. package/shortcuts/keyObserver.js +67 -0
  421. package/shortcuts/keyObserver.mjs +58 -0
  422. package/shortcuts/manager.d.ts +10 -0
  423. package/shortcuts/manager.js +185 -0
  424. package/shortcuts/manager.mjs +176 -0
  425. package/shortcuts/recorder.js +192 -0
  426. package/shortcuts/recorder.mjs +180 -0
  427. package/shortcuts/utils.js +77 -0
  428. package/shortcuts/utils.mjs +54 -0
  429. package/tableView.js +164 -84
  430. package/tableView.mjs +164 -74
  431. package/translations/changesObservable/observer.js +0 -1
  432. package/translations/changesObservable/observer.mjs +0 -1
  433. package/translations/indexMapper.d.ts +3 -1
  434. package/translations/indexMapper.js +89 -11
  435. package/translations/indexMapper.mjs +91 -20
  436. package/translations/mapCollections/aggregatedCollection.js +2 -2
  437. package/translations/mapCollections/aggregatedCollection.mjs +2 -2
  438. package/translations/maps/hidingMap.js +4 -2
  439. package/translations/maps/hidingMap.mjs +4 -2
  440. package/translations/maps/indexMap.js +2 -0
  441. package/translations/maps/indexMap.mjs +2 -0
  442. package/translations/maps/indexesSequence.js +5 -3
  443. package/translations/maps/indexesSequence.mjs +5 -3
  444. package/translations/maps/linkedPhysicalIndexToValueMap.js +5 -3
  445. package/translations/maps/linkedPhysicalIndexToValueMap.mjs +5 -3
  446. package/translations/maps/physicalIndexToValueMap.js +5 -3
  447. package/translations/maps/physicalIndexToValueMap.mjs +5 -3
  448. package/translations/maps/trimmingMap.js +4 -2
  449. package/translations/maps/trimmingMap.mjs +4 -2
  450. package/utils/dataStructures/uniqueMap.js +14 -1
  451. package/utils/dataStructures/uniqueMap.mjs +14 -1
  452. package/utils/dataStructures/uniqueSet.js +9 -0
  453. package/utils/dataStructures/uniqueSet.mjs +9 -0
  454. package/utils/ghostTable.js +1 -1
  455. package/utils/ghostTable.mjs +1 -1
  456. package/3rdparty/walkontable/src/core.js +0 -309
  457. package/3rdparty/walkontable/src/core.mjs +0 -293
  458. package/3rdparty/walkontable/src/overlay/registerer.js +0 -70
  459. package/3rdparty/walkontable/src/overlay/registerer.mjs +0 -57
  460. package/utils/keyStateObserver.js +0 -121
  461. package/utils/keyStateObserver.mjs +0 -103
package/editorManager.js CHANGED
@@ -15,7 +15,11 @@ require("core-js/modules/es.array.from.js");
15
15
  require("core-js/modules/es.regexp.exec.js");
16
16
 
17
17
  exports.__esModule = true;
18
- exports.default = void 0;
18
+ exports.default = exports.SHORTCUTS_GROUP_NAVIGATION = exports.SHORTCUTS_GROUP_EDITOR = void 0;
19
+
20
+ require("core-js/modules/es.array.includes.js");
21
+
22
+ require("core-js/modules/es.string.includes.js");
19
23
 
20
24
  require("core-js/modules/es.array.iterator.js");
21
25
 
@@ -27,8 +31,6 @@ require("core-js/modules/es.weak-map.js");
27
31
 
28
32
  require("core-js/modules/web.dom-collections.iterator.js");
29
33
 
30
- var _src = require("./3rdparty/walkontable/src");
31
-
32
34
  var _unicode = require("./helpers/unicode");
33
35
 
34
36
  var _event = require("./helpers/dom/event");
@@ -37,9 +39,7 @@ var _registry = require("./editors/registry");
37
39
 
38
40
  var _eventManager = _interopRequireDefault(require("./eventManager"));
39
41
 
40
- var _baseEditor = require("./editors/baseEditor");
41
-
42
- var _element = require("./helpers/dom/element");
42
+ var _mixed = require("./helpers/mixed");
43
43
 
44
44
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
45
45
 
@@ -61,6 +61,11 @@ function _defineProperties(target, props) { for (var i = 0; i < props.length; i+
61
61
 
62
62
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
63
63
 
64
+ var SHORTCUTS_GROUP_NAVIGATION = 'editorManager.navigation';
65
+ exports.SHORTCUTS_GROUP_NAVIGATION = SHORTCUTS_GROUP_NAVIGATION;
66
+ var SHORTCUTS_GROUP_EDITOR = 'editorManager.handlingEditor';
67
+ exports.SHORTCUTS_GROUP_EDITOR = SHORTCUTS_GROUP_EDITOR;
68
+
64
69
  var EditorManager = /*#__PURE__*/function () {
65
70
  /**
66
71
  * @param {Core} instance The Handsontable instance.
@@ -134,44 +139,97 @@ var EditorManager = /*#__PURE__*/function () {
134
139
  */
135
140
 
136
141
  this.cellProperties = void 0;
137
- /**
138
- * Keeps last keyCode pressed from the keydown event.
139
- *
140
- * @type {number}
141
- */
142
-
143
- this.lastKeyCode = void 0;
142
+ var shortcutManager = this.instance.getShortcutManager();
143
+ shortcutManager.addContext('editor');
144
+ this.registerShortcuts();
144
145
  this.instance.addHook('afterDocumentKeyDown', function (event) {
145
146
  return _this.onAfterDocumentKeyDown(event);
146
- });
147
- var frame = this.instance.rootWindow;
148
-
149
- while (frame) {
150
- this.eventManager.addEventListener(frame.document.documentElement, 'keydown', function (event) {
151
- if (!_this.destroyed) {
152
- _this.instance.runHooks('afterDocumentKeyDown', event);
153
- }
154
- });
155
- frame = (0, _element.getParentWindow)(frame);
156
- } // Open editor when text composition is started (IME editor)
157
-
147
+ }); // Open editor when text composition is started (IME editor)
158
148
 
159
149
  this.eventManager.addEventListener(this.instance.rootDocument.documentElement, 'compositionstart', function (event) {
160
150
  if (!_this.destroyed && _this.activeEditor && !_this.activeEditor.isOpened() && _this.instance.isListening()) {
161
151
  _this.openEditor('', event);
162
152
  }
163
153
  });
164
- this.instance.view.wt.update('onCellDblClick', function (event, coords, elem) {
154
+
155
+ this.instance.view._wt.update('onCellDblClick', function (event, coords, elem) {
165
156
  return _this.onCellDblClick(event, coords, elem);
166
157
  });
167
158
  }
168
159
  /**
169
- * Lock the editor from being prepared and closed. Locking the editor prevents its closing and
170
- * reinitialized after selecting the new cell. This feature is necessary for a mobile editor.
160
+ * Register shortcuts responsible for handling some actions related to an editor.
161
+ *
162
+ * @private
171
163
  */
172
164
 
173
165
 
174
166
  _createClass(EditorManager, [{
167
+ key: "registerShortcuts",
168
+ value: function registerShortcuts() {
169
+ var _this2 = this;
170
+
171
+ var shortcutManager = this.instance.getShortcutManager();
172
+ var gridContext = shortcutManager.getContext('grid');
173
+ var editorContext = shortcutManager.getContext('editor');
174
+ var config = {
175
+ group: SHORTCUTS_GROUP_EDITOR
176
+ };
177
+ editorContext.addShortcuts([{
178
+ keys: [['Enter'], ['Enter', 'Shift'], ['Enter', 'Control/Meta'], ['Enter', 'Control/Meta', 'Shift']],
179
+ callback: function callback(event, keys) {
180
+ _this2.closeEditorAndSaveChanges(shortcutManager.isCtrlPressed());
181
+
182
+ _this2.moveSelectionAfterEnter(keys.includes('shift'));
183
+ }
184
+ }, {
185
+ keys: [['Escape'], ['Escape', 'Control/Meta']],
186
+ callback: function callback() {
187
+ _this2.closeEditorAndRestoreOriginalValue(shortcutManager.isCtrlPressed());
188
+
189
+ _this2.activeEditor.focus();
190
+ }
191
+ }], config);
192
+ gridContext.addShortcuts([{
193
+ keys: [['F2']],
194
+ callback: function callback(event) {
195
+ if (_this2.activeEditor) {
196
+ _this2.activeEditor.enableFullEditMode();
197
+ }
198
+
199
+ _this2.openEditor(null, event);
200
+ }
201
+ }, {
202
+ keys: [['Backspace'], ['Delete']],
203
+ callback: function callback() {
204
+ _this2.instance.emptySelectedCells();
205
+
206
+ _this2.prepareEditor();
207
+ }
208
+ }, {
209
+ keys: [['Enter'], ['Enter', 'Shift']],
210
+ callback: function callback(event, keys) {
211
+ if (_this2.instance.getSettings().enterBeginsEditing) {
212
+ if (_this2.cellProperties.readOnly) {
213
+ _this2.moveSelectionAfterEnter();
214
+ } else if (_this2.activeEditor) {
215
+ _this2.activeEditor.enableFullEditMode();
216
+
217
+ _this2.openEditor(null, event);
218
+ }
219
+ } else {
220
+ _this2.moveSelectionAfterEnter(keys.includes('shift'));
221
+ }
222
+
223
+ (0, _event.stopImmediatePropagation)(event); // required by HandsontableEditor
224
+ }
225
+ }], config);
226
+ }
227
+ /**
228
+ * Lock the editor from being prepared and closed. Locking the editor prevents its closing and
229
+ * reinitialized after selecting the new cell. This feature is necessary for a mobile editor.
230
+ */
231
+
232
+ }, {
175
233
  key: "lockEditor",
176
234
  value: function lockEditor() {
177
235
  this.lock = true;
@@ -218,7 +276,7 @@ var EditorManager = /*#__PURE__*/function () {
218
276
  }, {
219
277
  key: "prepareEditor",
220
278
  value: function prepareEditor() {
221
- var _this2 = this;
279
+ var _this3 = this;
222
280
 
223
281
  if (this.lock) {
224
282
  return;
@@ -227,7 +285,7 @@ var EditorManager = /*#__PURE__*/function () {
227
285
  if (this.activeEditor && this.activeEditor.isWaiting()) {
228
286
  this.closeEditor(false, false, function (dataSaved) {
229
287
  if (dataSaved) {
230
- _this2.prepareEditor();
288
+ _this3.prepareEditor();
231
289
  }
232
290
  });
233
291
  return;
@@ -375,71 +433,6 @@ var EditorManager = /*#__PURE__*/function () {
375
433
  this.selection.transformStart(enterMoves.row, enterMoves.col, true);
376
434
  }
377
435
  }
378
- /**
379
- * Controls selection behaviour after clicking `arrow up`.
380
- *
381
- * @private
382
- * @param {boolean} isShiftPressed If `true`, then the selection will expand up.
383
- */
384
-
385
- }, {
386
- key: "moveSelectionUp",
387
- value: function moveSelectionUp(isShiftPressed) {
388
- if (isShiftPressed) {
389
- this.selection.transformEnd(-1, 0);
390
- } else {
391
- this.selection.transformStart(-1, 0);
392
- }
393
- }
394
- /**
395
- * Controls selection's behaviour after clicking `arrow down`.
396
- *
397
- * @private
398
- * @param {boolean} isShiftPressed If `true`, then the selection will expand down.
399
- */
400
-
401
- }, {
402
- key: "moveSelectionDown",
403
- value: function moveSelectionDown(isShiftPressed) {
404
- if (isShiftPressed) {
405
- // expanding selection down with shift
406
- this.selection.transformEnd(1, 0);
407
- } else {
408
- this.selection.transformStart(1, 0);
409
- }
410
- }
411
- /**
412
- * Controls selection's behaviour after clicking `arrow right`.
413
- *
414
- * @private
415
- * @param {boolean} isShiftPressed If `true`, then the selection will expand right.
416
- */
417
-
418
- }, {
419
- key: "moveSelectionRight",
420
- value: function moveSelectionRight(isShiftPressed) {
421
- if (isShiftPressed) {
422
- this.selection.transformEnd(0, this.instance.getDirectionFactor());
423
- } else {
424
- this.selection.transformStart(0, this.instance.getDirectionFactor());
425
- }
426
- }
427
- /**
428
- * Controls selection's behaviour after clicking `arrow left`.
429
- *
430
- * @private
431
- * @param {boolean} isShiftPressed If `true`, then the selection will expand left.
432
- */
433
-
434
- }, {
435
- key: "moveSelectionLeft",
436
- value: function moveSelectionLeft(isShiftPressed) {
437
- if (isShiftPressed) {
438
- this.selection.transformEnd(0, -1 * this.instance.getDirectionFactor());
439
- } else {
440
- this.selection.transformStart(0, -1 * this.instance.getDirectionFactor());
441
- }
442
- }
443
436
  /**
444
437
  * OnAfterDocumentKeyDown callback.
445
438
  *
@@ -450,24 +443,19 @@ var EditorManager = /*#__PURE__*/function () {
450
443
  }, {
451
444
  key: "onAfterDocumentKeyDown",
452
445
  value: function onAfterDocumentKeyDown(event) {
446
+ var _this4 = this;
447
+
453
448
  if (!this.instance.isListening()) {
454
449
  return;
455
450
  }
456
451
 
457
- this.instance.runHooks('beforeKeyDown', event);
458
452
  var keyCode = event.keyCode; // keyCode 229 aka 'uninitialized' doesn't take into account with editors. This key code is produced when unfinished
459
453
  // character is entering (using IME editor). It is fired mainly on linux (ubuntu) with installed ibus-pinyin package.
460
454
 
461
- if (this.destroyed || keyCode === 229) {
462
- return;
463
- }
464
-
465
- if ((0, _event.isImmediatePropagationStopped)(event)) {
455
+ if (keyCode === 229) {
466
456
  return;
467
457
  }
468
458
 
469
- this.lastKeyCode = keyCode;
470
-
471
459
  if (!this.selection.isSelected()) {
472
460
  return;
473
461
  } // catch CTRL but not right ALT (which in some systems triggers ALT+CTRL)
@@ -477,172 +465,37 @@ var EditorManager = /*#__PURE__*/function () {
477
465
 
478
466
  if (this.activeEditor && !this.activeEditor.isWaiting()) {
479
467
  if (!(0, _unicode.isFunctionKey)(keyCode) && !(0, _unicode.isCtrlMetaKey)(keyCode) && !isCtrlPressed && !this.isEditorOpened()) {
480
- this.openEditor('', event);
481
- return;
482
- }
483
- }
484
-
485
- var isShiftPressed = event.shiftKey;
486
- var rangeModifier = isShiftPressed ? this.selection.setRangeEnd : this.selection.setRangeStart;
487
- var tabMoves;
488
-
489
- switch (keyCode) {
490
- case _unicode.KEY_CODES.A:
491
- if (!this.isEditorOpened() && isCtrlPressed) {
492
- this.instance.selectAll();
493
- event.preventDefault();
494
- event.stopPropagation();
495
- }
496
-
497
- break;
498
-
499
- case _unicode.KEY_CODES.ARROW_UP:
500
- if (this.isEditorOpened() && !this.activeEditor.isWaiting()) {
501
- this.closeEditorAndSaveChanges(isCtrlPressed);
502
- }
503
-
504
- this.moveSelectionUp(isShiftPressed);
505
- event.preventDefault();
506
- event.stopPropagation();
507
- break;
508
-
509
- case _unicode.KEY_CODES.ARROW_DOWN:
510
- if (this.isEditorOpened() && !this.activeEditor.isWaiting()) {
511
- this.closeEditorAndSaveChanges(isCtrlPressed);
512
- }
513
-
514
- this.moveSelectionDown(isShiftPressed);
515
- event.preventDefault();
516
- event.stopPropagation();
517
- break;
518
-
519
- case _unicode.KEY_CODES.ARROW_RIGHT:
520
- if (this.isEditorOpened() && !this.activeEditor.isWaiting()) {
521
- this.closeEditorAndSaveChanges(isCtrlPressed);
522
- }
523
-
524
- this.moveSelectionRight(isShiftPressed);
525
- event.preventDefault();
526
- event.stopPropagation();
527
- break;
528
-
529
- case _unicode.KEY_CODES.ARROW_LEFT:
530
- if (this.isEditorOpened() && !this.activeEditor.isWaiting()) {
531
- this.closeEditorAndSaveChanges(isCtrlPressed);
532
- }
533
-
534
- this.moveSelectionLeft(isShiftPressed);
535
- event.preventDefault();
536
- event.stopPropagation();
537
- break;
538
-
539
- case _unicode.KEY_CODES.TAB:
540
- tabMoves = typeof this.tableMeta.tabMoves === 'function' ? this.tableMeta.tabMoves(event) : this.tableMeta.tabMoves;
541
-
542
- if (isShiftPressed) {
543
- // move selection left
544
- this.selection.transformStart(-tabMoves.row, -tabMoves.col);
545
- } else {
546
- // move selection right (add a new column if needed)
547
- this.selection.transformStart(tabMoves.row, tabMoves.col, true);
548
- }
549
-
550
- event.preventDefault();
551
- event.stopPropagation();
552
- break;
553
-
554
- case _unicode.KEY_CODES.BACKSPACE:
555
- case _unicode.KEY_CODES.DELETE:
556
- this.instance.emptySelectedCells();
557
- this.prepareEditor();
558
- event.preventDefault();
559
- break;
560
-
561
- case _unicode.KEY_CODES.F2:
562
- /* F2 */
563
- if (this.activeEditor) {
564
- this.activeEditor.enableFullEditMode();
565
- }
566
-
567
- this.openEditor(null, event);
568
- event.preventDefault(); // prevent Opera from opening 'Go to Page dialog'
569
-
570
- break;
571
-
572
- case _unicode.KEY_CODES.ENTER:
573
- /* return/enter */
574
- if (this.isEditorOpened()) {
575
- if (this.activeEditor && this.activeEditor.state !== _baseEditor.EDITOR_STATE.WAITING) {
576
- this.closeEditorAndSaveChanges(isCtrlPressed);
468
+ var shortcutManager = this.instance.getShortcutManager();
469
+ var editorContext = shortcutManager.getContext('editor');
470
+ var runOnlySelectedConfig = {
471
+ runOnlyIf: function runOnlyIf() {
472
+ return (0, _mixed.isDefined)(_this4.instance.getSelected());
473
+ },
474
+ group: SHORTCUTS_GROUP_NAVIGATION
475
+ };
476
+ editorContext.addShortcuts([{
477
+ keys: [['ArrowUp']],
478
+ callback: function callback() {
479
+ _this4.instance.selection.transformStart(-1, 0);
577
480
  }
578
-
579
- this.moveSelectionAfterEnter(isShiftPressed);
580
- } else if (this.instance.getSettings().enterBeginsEditing) {
581
- if (this.cellProperties.readOnly) {
582
- this.moveSelectionAfterEnter();
583
- } else if (this.activeEditor) {
584
- this.activeEditor.enableFullEditMode();
585
- this.openEditor(null, event);
481
+ }, {
482
+ keys: [['ArrowDown']],
483
+ callback: function callback() {
484
+ _this4.instance.selection.transformStart(1, 0);
586
485
  }
587
- } else {
588
- this.moveSelectionAfterEnter(isShiftPressed);
589
- }
590
-
591
- event.preventDefault(); // don't add newline to field
592
-
593
- (0, _event.stopImmediatePropagation)(event); // required by HandsontableEditor
594
-
595
- break;
596
-
597
- case _unicode.KEY_CODES.ESCAPE:
598
- if (this.isEditorOpened()) {
599
- this.closeEditorAndRestoreOriginalValue(isCtrlPressed);
600
- this.activeEditor.focus();
601
- }
602
-
603
- event.preventDefault();
604
- break;
605
-
606
- case _unicode.KEY_CODES.HOME:
607
- if (event.ctrlKey || event.metaKey) {
608
- rangeModifier.call(this.selection, new _src.CellCoords(this.instance.rowIndexMapper.getFirstNotHiddenIndex(0, 1), this.selection.selectedRange.current().from.col));
609
- } else {
610
- rangeModifier.call(this.selection, new _src.CellCoords(this.selection.selectedRange.current().from.row, this.instance.columnIndexMapper.getFirstNotHiddenIndex(0, 1)));
611
- }
612
-
613
- event.preventDefault(); // don't scroll the window
614
-
615
- event.stopPropagation();
616
- break;
617
-
618
- case _unicode.KEY_CODES.END:
619
- if (event.ctrlKey || event.metaKey) {
620
- rangeModifier.call(this.selection, new _src.CellCoords(this.instance.rowIndexMapper.getFirstNotHiddenIndex(this.instance.countRows() - 1, -1), this.selection.selectedRange.current().from.col));
621
- } else {
622
- rangeModifier.call(this.selection, new _src.CellCoords(this.selection.selectedRange.current().from.row, this.instance.columnIndexMapper.getFirstNotHiddenIndex(this.instance.countCols() - 1, -1)));
623
- }
624
-
625
- event.preventDefault(); // don't scroll the window
626
-
627
- event.stopPropagation();
628
- break;
629
-
630
- case _unicode.KEY_CODES.PAGE_UP:
631
- this.selection.transformStart(-this.instance.countVisibleRows(), 0);
632
- event.preventDefault(); // don't page up the window
633
-
634
- event.stopPropagation();
635
- break;
636
-
637
- case _unicode.KEY_CODES.PAGE_DOWN:
638
- this.selection.transformStart(this.instance.countVisibleRows(), 0);
639
- event.preventDefault(); // don't page down the window
640
-
641
- event.stopPropagation();
642
- break;
643
-
644
- default:
645
- break;
486
+ }, {
487
+ keys: [['ArrowLeft']],
488
+ callback: function callback() {
489
+ _this4.instance.selection.transformStart(0, -1 * _this4.instance.getDirectionFactor());
490
+ }
491
+ }, {
492
+ keys: [['ArrowRight']],
493
+ callback: function callback() {
494
+ _this4.instance.selection.transformStart(0, _this4.instance.getDirectionFactor());
495
+ }
496
+ }], runOnlySelectedConfig);
497
+ this.openEditor('', event);
498
+ }
646
499
  }
647
500
  }
648
501
  /**