handsontable 0.0.0-next-b0a4ea2-20231024 → 0.0.0-next-9059914-20231025

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.

Potentially problematic release.


This version of handsontable might be problematic. Click here for more details.

Files changed (446) hide show
  1. package/3rdparty/walkontable/src/{selection/border/border.js → border.js} +12 -7
  2. package/3rdparty/walkontable/src/{selection/border/border.mjs → border.mjs} +12 -7
  3. package/3rdparty/walkontable/src/cell/coords.d.ts +1 -6
  4. package/3rdparty/walkontable/src/cell/coords.js +11 -50
  5. package/3rdparty/walkontable/src/cell/coords.mjs +11 -50
  6. package/3rdparty/walkontable/src/cell/range.d.ts +2 -9
  7. package/3rdparty/walkontable/src/cell/range.js +7 -38
  8. package/3rdparty/walkontable/src/cell/range.mjs +7 -38
  9. package/3rdparty/walkontable/src/core/_base.js +3 -9
  10. package/3rdparty/walkontable/src/core/_base.mjs +3 -9
  11. package/3rdparty/walkontable/src/core/clone.js +2 -2
  12. package/3rdparty/walkontable/src/core/clone.mjs +2 -2
  13. package/3rdparty/walkontable/src/core/core.js +2 -3
  14. package/3rdparty/walkontable/src/core/core.mjs +2 -3
  15. package/3rdparty/walkontable/src/event.js +10 -12
  16. package/3rdparty/walkontable/src/event.mjs +10 -12
  17. package/3rdparty/walkontable/src/facade/core.js +2 -2
  18. package/3rdparty/walkontable/src/facade/core.mjs +2 -2
  19. package/3rdparty/walkontable/src/index.js +2 -10
  20. package/3rdparty/walkontable/src/index.mjs +2 -2
  21. package/3rdparty/walkontable/src/overlay/_base.js +2 -13
  22. package/3rdparty/walkontable/src/overlay/_base.mjs +3 -14
  23. package/3rdparty/walkontable/src/overlay/inlineStart.js +6 -2
  24. package/3rdparty/walkontable/src/overlay/inlineStart.mjs +6 -2
  25. package/3rdparty/walkontable/src/overlay/top.js +6 -2
  26. package/3rdparty/walkontable/src/overlay/top.mjs +6 -2
  27. package/3rdparty/walkontable/src/renderer/cells.js +0 -10
  28. package/3rdparty/walkontable/src/renderer/cells.mjs +1 -11
  29. package/3rdparty/walkontable/src/renderer/columnHeaders.js +0 -10
  30. package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +1 -11
  31. package/3rdparty/walkontable/src/renderer/rowHeaders.js +0 -5
  32. package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +0 -5
  33. package/3rdparty/walkontable/src/renderer/rows.js +0 -13
  34. package/3rdparty/walkontable/src/renderer/rows.mjs +0 -13
  35. package/3rdparty/walkontable/src/renderer/table.js +0 -9
  36. package/3rdparty/walkontable/src/renderer/table.mjs +0 -9
  37. package/3rdparty/walkontable/src/scroll.js +0 -2
  38. package/3rdparty/walkontable/src/scroll.mjs +0 -2
  39. package/3rdparty/walkontable/src/selection.js +295 -0
  40. package/3rdparty/walkontable/src/selection.mjs +290 -0
  41. package/3rdparty/walkontable/src/settings.js +4 -13
  42. package/3rdparty/walkontable/src/settings.mjs +4 -13
  43. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +0 -9
  44. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +0 -9
  45. package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +0 -9
  46. package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +0 -9
  47. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.js +0 -9
  48. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.mjs +0 -9
  49. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +0 -9
  50. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +0 -9
  51. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +0 -9
  52. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +0 -9
  53. package/3rdparty/walkontable/src/table.js +78 -19
  54. package/3rdparty/walkontable/src/table.mjs +79 -20
  55. package/base.js +2 -2
  56. package/base.mjs +2 -2
  57. package/cellTypes/dateType/dateType.d.ts +3 -3
  58. package/cellTypes/dateType/dateType.js +2 -2
  59. package/cellTypes/dateType/dateType.mjs +2 -2
  60. package/cellTypes/handsontableType/handsontableType.d.ts +3 -3
  61. package/cellTypes/handsontableType/handsontableType.js +2 -2
  62. package/cellTypes/handsontableType/handsontableType.mjs +2 -2
  63. package/cellTypes/index.d.ts +0 -3
  64. package/cellTypes/index.js +0 -4
  65. package/cellTypes/index.mjs +1 -3
  66. package/core.d.ts +4 -9
  67. package/core.js +327 -285
  68. package/core.mjs +327 -285
  69. package/dataMap/metaManager/metaSchema.js +0 -65
  70. package/dataMap/metaManager/metaSchema.mjs +0 -65
  71. package/dataMap/metaManager/mods/extendMetaProperties.js +1 -7
  72. package/dataMap/metaManager/mods/extendMetaProperties.mjs +1 -7
  73. package/dataMap/replaceData.js +0 -5
  74. package/dataMap/replaceData.mjs +0 -5
  75. package/dist/handsontable.css +15 -51
  76. package/dist/handsontable.full.css +15 -51
  77. package/dist/handsontable.full.js +8668 -14188
  78. package/dist/handsontable.full.min.css +7 -7
  79. package/dist/handsontable.full.min.js +136 -136
  80. package/dist/handsontable.js +22829 -28349
  81. package/dist/handsontable.min.css +6 -6
  82. package/dist/handsontable.min.js +24 -24
  83. package/dist/languages/all.js +2 -6
  84. package/dist/languages/all.min.js +1 -1
  85. package/dist/languages/en-US.js +1 -3
  86. package/dist/languages/en-US.min.js +1 -1
  87. package/dist/languages/pl-PL.js +1 -3
  88. package/dist/languages/pl-PL.min.js +1 -1
  89. package/editorManager.js +87 -15
  90. package/editorManager.mjs +87 -16
  91. package/editors/autocompleteEditor/autocompleteEditor.js +2 -53
  92. package/editors/autocompleteEditor/autocompleteEditor.mjs +3 -54
  93. package/editors/dateEditor/dateEditor.js +7 -26
  94. package/editors/dateEditor/dateEditor.mjs +8 -27
  95. package/editors/handsontableEditor/handsontableEditor.js +1 -9
  96. package/editors/handsontableEditor/handsontableEditor.mjs +2 -10
  97. package/editors/textEditor/textEditor.js +27 -19
  98. package/editors/textEditor/textEditor.mjs +30 -22
  99. package/helpers/dom/element.js +9 -188
  100. package/helpers/dom/element.mjs +9 -182
  101. package/helpers/mixed.js +1 -1
  102. package/helpers/mixed.mjs +1 -1
  103. package/helpers/number.d.ts +0 -1
  104. package/helpers/number.js +0 -18
  105. package/helpers/number.mjs +0 -17
  106. package/i18n/constants.js +1 -7
  107. package/i18n/constants.mjs +1 -4
  108. package/i18n/languages/en-US.js +1 -3
  109. package/i18n/languages/en-US.mjs +1 -3
  110. package/i18n/languages/pl-PL.js +1 -3
  111. package/i18n/languages/pl-PL.mjs +1 -3
  112. package/languages/all.js +2 -6
  113. package/languages/en-US.js +1 -3
  114. package/languages/en-US.mjs +1 -3
  115. package/languages/index.js +2 -6
  116. package/languages/pl-PL.js +1 -3
  117. package/languages/pl-PL.mjs +1 -3
  118. package/package.json +99 -116
  119. package/pluginHooks.d.ts +1 -12
  120. package/pluginHooks.js +1 -152
  121. package/pluginHooks.mjs +1 -152
  122. package/plugins/collapsibleColumns/collapsibleColumns.js +4 -74
  123. package/plugins/collapsibleColumns/collapsibleColumns.mjs +5 -75
  124. package/plugins/columnSorting/columnSorting.js +0 -43
  125. package/plugins/columnSorting/columnSorting.mjs +3 -44
  126. package/plugins/columnSorting/index.js +1 -3
  127. package/plugins/columnSorting/index.mjs +1 -1
  128. package/plugins/comments/commentEditor.js +0 -1
  129. package/plugins/comments/commentEditor.mjs +0 -1
  130. package/plugins/comments/comments.js +189 -252
  131. package/plugins/comments/comments.mjs +190 -251
  132. package/plugins/contextMenu/commandExecutor.js +3 -2
  133. package/plugins/contextMenu/commandExecutor.mjs +3 -2
  134. package/plugins/contextMenu/contextMenu.d.ts +1 -1
  135. package/plugins/contextMenu/contextMenu.js +36 -75
  136. package/plugins/contextMenu/contextMenu.mjs +35 -74
  137. package/plugins/contextMenu/{menu/cursor.mjs → cursor.js} +10 -4
  138. package/plugins/contextMenu/{menu/cursor.js → cursor.mjs} +4 -6
  139. package/plugins/contextMenu/itemsFactory.js +3 -2
  140. package/plugins/contextMenu/itemsFactory.mjs +4 -3
  141. package/plugins/contextMenu/{menu/menu.js → menu.js} +421 -145
  142. package/plugins/contextMenu/{menu/menu.mjs → menu.mjs} +422 -146
  143. package/plugins/contextMenu/predefinedItems/alignment.js +0 -7
  144. package/plugins/contextMenu/predefinedItems/alignment.mjs +0 -7
  145. package/plugins/contextMenu/predefinedItems/clearColumn.js +3 -5
  146. package/plugins/contextMenu/predefinedItems/clearColumn.mjs +3 -5
  147. package/plugins/contextMenu/predefinedItems/columnLeft.js +3 -5
  148. package/plugins/contextMenu/predefinedItems/columnLeft.mjs +3 -5
  149. package/plugins/contextMenu/predefinedItems/columnRight.js +3 -5
  150. package/plugins/contextMenu/predefinedItems/columnRight.mjs +3 -5
  151. package/plugins/contextMenu/predefinedItems/readOnly.js +0 -7
  152. package/plugins/contextMenu/predefinedItems/readOnly.mjs +0 -7
  153. package/plugins/contextMenu/predefinedItems/removeColumn.js +5 -7
  154. package/plugins/contextMenu/predefinedItems/removeColumn.mjs +3 -5
  155. package/plugins/contextMenu/predefinedItems/removeRow.js +5 -7
  156. package/plugins/contextMenu/predefinedItems/removeRow.mjs +3 -5
  157. package/plugins/contextMenu/predefinedItems/rowAbove.js +3 -5
  158. package/plugins/contextMenu/predefinedItems/rowAbove.mjs +3 -5
  159. package/plugins/contextMenu/predefinedItems/rowBelow.js +3 -5
  160. package/plugins/contextMenu/predefinedItems/rowBelow.mjs +3 -5
  161. package/plugins/contextMenu/{predefinedItems/index.js → predefinedItems.js} +14 -14
  162. package/plugins/contextMenu/predefinedItems.mjs +68 -0
  163. package/plugins/contextMenu/utils.js +151 -35
  164. package/plugins/contextMenu/utils.mjs +144 -35
  165. package/plugins/copyPaste/contextMenuItem/copy.js +0 -7
  166. package/plugins/copyPaste/contextMenuItem/copy.mjs +0 -7
  167. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.js +1 -9
  168. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.mjs +1 -9
  169. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.js +1 -9
  170. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.mjs +1 -9
  171. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.js +1 -9
  172. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.mjs +1 -9
  173. package/plugins/copyPaste/contextMenuItem/cut.js +0 -7
  174. package/plugins/copyPaste/contextMenuItem/cut.mjs +0 -7
  175. package/plugins/copyPaste/copyPaste.js +78 -127
  176. package/plugins/copyPaste/copyPaste.mjs +79 -128
  177. package/plugins/copyPaste/focusableElement.js +186 -0
  178. package/plugins/copyPaste/focusableElement.mjs +180 -0
  179. package/plugins/customBorders/customBorders.js +20 -23
  180. package/plugins/customBorders/customBorders.mjs +21 -24
  181. package/plugins/dropdownMenu/dropdownMenu.d.ts +1 -1
  182. package/plugins/dropdownMenu/dropdownMenu.js +40 -127
  183. package/plugins/dropdownMenu/dropdownMenu.mjs +39 -126
  184. package/plugins/filters/component/_base.js +8 -23
  185. package/plugins/filters/component/_base.mjs +8 -23
  186. package/plugins/filters/component/actionBar.js +27 -29
  187. package/plugins/filters/component/actionBar.mjs +23 -26
  188. package/plugins/filters/component/condition.js +59 -46
  189. package/plugins/filters/component/condition.mjs +52 -40
  190. package/plugins/filters/component/operators.js +22 -21
  191. package/plugins/filters/component/operators.mjs +18 -18
  192. package/plugins/filters/component/value.js +26 -35
  193. package/plugins/filters/component/value.mjs +22 -32
  194. package/plugins/filters/constants.mjs +1 -1
  195. package/plugins/filters/filters.js +62 -106
  196. package/plugins/filters/filters.mjs +55 -99
  197. package/plugins/filters/ui/_base.js +13 -35
  198. package/plugins/filters/ui/_base.mjs +13 -35
  199. package/plugins/filters/ui/input.js +32 -43
  200. package/plugins/filters/ui/input.mjs +30 -42
  201. package/plugins/filters/ui/link.js +12 -44
  202. package/plugins/filters/ui/link.mjs +11 -44
  203. package/plugins/filters/ui/multipleSelect.js +129 -234
  204. package/plugins/filters/ui/multipleSelect.mjs +127 -232
  205. package/plugins/filters/ui/radioInput.js +18 -42
  206. package/plugins/filters/ui/radioInput.mjs +17 -42
  207. package/plugins/filters/ui/select.js +75 -144
  208. package/plugins/filters/ui/select.mjs +72 -142
  209. package/plugins/hiddenColumns/hiddenColumns.mjs +1 -1
  210. package/plugins/hiddenRows/hiddenRows.mjs +1 -1
  211. package/plugins/manualColumnMove/manualColumnMove.js +1 -3
  212. package/plugins/manualColumnMove/manualColumnMove.mjs +1 -3
  213. package/plugins/mergeCells/mergeCells.js +16 -5
  214. package/plugins/mergeCells/mergeCells.mjs +16 -5
  215. package/plugins/multiColumnSorting/multiColumnSorting.js +2 -37
  216. package/plugins/multiColumnSorting/multiColumnSorting.mjs +2 -37
  217. package/plugins/nestedHeaders/nestedHeaders.js +10 -240
  218. package/plugins/nestedHeaders/nestedHeaders.mjs +11 -241
  219. package/plugins/nestedHeaders/stateManager/index.js +3 -102
  220. package/plugins/nestedHeaders/stateManager/index.mjs +3 -102
  221. package/plugins/nestedRows/nestedRows.js +0 -41
  222. package/plugins/nestedRows/nestedRows.mjs +0 -41
  223. package/plugins/nestedRows/ui/headers.js +0 -11
  224. package/plugins/nestedRows/ui/headers.mjs +1 -12
  225. package/renderers/autocompleteRenderer/autocompleteRenderer.js +0 -8
  226. package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +0 -8
  227. package/renderers/baseRenderer/baseRenderer.js +0 -17
  228. package/renderers/baseRenderer/baseRenderer.mjs +1 -18
  229. package/renderers/checkboxRenderer/checkboxRenderer.js +4 -9
  230. package/renderers/checkboxRenderer/checkboxRenderer.mjs +4 -9
  231. package/renderers/index.d.ts +0 -9
  232. package/selection/highlight/constants.js +15 -0
  233. package/selection/highlight/constants.mjs +6 -0
  234. package/selection/highlight/highlight.js +71 -256
  235. package/selection/highlight/highlight.mjs +71 -250
  236. package/selection/highlight/types/activeHeader.js +8 -10
  237. package/selection/highlight/types/activeHeader.mjs +8 -10
  238. package/selection/highlight/types/area.js +18 -6
  239. package/selection/highlight/types/area.mjs +18 -6
  240. package/selection/highlight/types/{focus.js → cell.js} +7 -5
  241. package/selection/highlight/types/{focus.mjs → cell.mjs} +7 -5
  242. package/selection/highlight/types/customSelection.js +9 -7
  243. package/selection/highlight/types/customSelection.mjs +9 -7
  244. package/selection/highlight/types/fill.js +7 -5
  245. package/selection/highlight/types/fill.mjs +7 -5
  246. package/selection/highlight/types/header.js +18 -9
  247. package/selection/highlight/types/header.mjs +18 -9
  248. package/selection/highlight/types/index.js +35 -0
  249. package/selection/highlight/types/index.mjs +31 -0
  250. package/selection/highlight/visualSelection.js +27 -31
  251. package/selection/highlight/visualSelection.mjs +27 -31
  252. package/selection/index.js +7 -4
  253. package/selection/index.mjs +3 -2
  254. package/selection/mouseEventHandler.js +1 -7
  255. package/selection/mouseEventHandler.mjs +1 -7
  256. package/selection/range.js +8 -8
  257. package/selection/range.mjs +8 -8
  258. package/selection/selection.js +152 -321
  259. package/selection/selection.mjs +151 -318
  260. package/selection/transformation.js +90 -232
  261. package/selection/transformation.mjs +90 -232
  262. package/selection/utils.js +21 -15
  263. package/selection/utils.mjs +21 -16
  264. package/settings.d.ts +0 -4
  265. package/shortcuts/context.js +4 -23
  266. package/shortcuts/context.mjs +5 -23
  267. package/shortcuts/manager.js +7 -25
  268. package/shortcuts/manager.mjs +7 -26
  269. package/shortcuts/recorder.js +3 -3
  270. package/shortcuts/recorder.mjs +3 -3
  271. package/shortcuts/utils.js +5 -19
  272. package/shortcuts/utils.mjs +4 -18
  273. package/tableView.js +13 -111
  274. package/tableView.mjs +14 -112
  275. package/3rdparty/walkontable/src/selection/border/constants.js +0 -16
  276. package/3rdparty/walkontable/src/selection/border/constants.mjs +0 -12
  277. package/3rdparty/walkontable/src/selection/constants.js +0 -62
  278. package/3rdparty/walkontable/src/selection/constants.mjs +0 -51
  279. package/3rdparty/walkontable/src/selection/index.js +0 -26
  280. package/3rdparty/walkontable/src/selection/index.mjs +0 -5
  281. package/3rdparty/walkontable/src/selection/manager.js +0 -274
  282. package/3rdparty/walkontable/src/selection/manager.mjs +0 -269
  283. package/3rdparty/walkontable/src/selection/scanner.js +0 -270
  284. package/3rdparty/walkontable/src/selection/scanner.mjs +0 -267
  285. package/3rdparty/walkontable/src/selection/selection.js +0 -101
  286. package/3rdparty/walkontable/src/selection/selection.mjs +0 -96
  287. package/cellTypes/selectType/index.d.ts +0 -1
  288. package/cellTypes/selectType/index.js +0 -6
  289. package/cellTypes/selectType/index.mjs +0 -1
  290. package/cellTypes/selectType/selectType.d.ts +0 -14
  291. package/cellTypes/selectType/selectType.js +0 -13
  292. package/cellTypes/selectType/selectType.mjs +0 -8
  293. package/core/focusCatcher/focusDetector.js +0 -63
  294. package/core/focusCatcher/focusDetector.mjs +0 -59
  295. package/core/focusCatcher/index.js +0 -142
  296. package/core/focusCatcher/index.mjs +0 -138
  297. package/core/index.js +0 -9
  298. package/core/index.mjs +0 -1
  299. package/focusManager.d.ts +0 -12
  300. package/focusManager.js +0 -265
  301. package/focusManager.mjs +0 -261
  302. package/helpers/a11y.js +0 -79
  303. package/helpers/a11y.mjs +0 -38
  304. package/plugins/comments/contextMenuItem/addEditComment.js +0 -41
  305. package/plugins/comments/contextMenuItem/addEditComment.mjs +0 -35
  306. package/plugins/comments/contextMenuItem/readOnlyComment.js +0 -49
  307. package/plugins/comments/contextMenuItem/readOnlyComment.mjs +0 -43
  308. package/plugins/comments/contextMenuItem/removeComment.js +0 -38
  309. package/plugins/comments/contextMenuItem/removeComment.mjs +0 -32
  310. package/plugins/contextMenu/menu/defaultShortcutsList.js +0 -88
  311. package/plugins/contextMenu/menu/defaultShortcutsList.mjs +0 -84
  312. package/plugins/contextMenu/menu/index.js +0 -9
  313. package/plugins/contextMenu/menu/index.mjs +0 -1
  314. package/plugins/contextMenu/menu/menuItemRenderer.js +0 -58
  315. package/plugins/contextMenu/menu/menuItemRenderer.mjs +0 -54
  316. package/plugins/contextMenu/menu/navigator.js +0 -27
  317. package/plugins/contextMenu/menu/navigator.mjs +0 -23
  318. package/plugins/contextMenu/menu/positioner.js +0 -213
  319. package/plugins/contextMenu/menu/positioner.mjs +0 -209
  320. package/plugins/contextMenu/menu/shortcuts.js +0 -114
  321. package/plugins/contextMenu/menu/shortcuts.mjs +0 -110
  322. package/plugins/contextMenu/menu/utils.js +0 -177
  323. package/plugins/contextMenu/menu/utils.mjs +0 -163
  324. package/plugins/contextMenu/predefinedItems/index.mjs +0 -68
  325. package/plugins/filters/menu/focusController.js +0 -123
  326. package/plugins/filters/menu/focusController.mjs +0 -119
  327. package/plugins/filters/menu/focusNavigator.js +0 -30
  328. package/plugins/filters/menu/focusNavigator.mjs +0 -26
  329. package/renderers/dateRenderer/dateRenderer.d.ts +0 -5
  330. package/renderers/dateRenderer/dateRenderer.js +0 -29
  331. package/renderers/dateRenderer/dateRenderer.mjs +0 -24
  332. package/renderers/dateRenderer/index.d.ts +0 -1
  333. package/renderers/dateRenderer/index.js +0 -6
  334. package/renderers/dateRenderer/index.mjs +0 -1
  335. package/renderers/handsontableRenderer/handsontableRenderer.d.ts +0 -5
  336. package/renderers/handsontableRenderer/handsontableRenderer.js +0 -29
  337. package/renderers/handsontableRenderer/handsontableRenderer.mjs +0 -24
  338. package/renderers/handsontableRenderer/index.d.ts +0 -1
  339. package/renderers/handsontableRenderer/index.js +0 -6
  340. package/renderers/handsontableRenderer/index.mjs +0 -1
  341. package/renderers/selectRenderer/index.d.ts +0 -1
  342. package/renderers/selectRenderer/index.js +0 -6
  343. package/renderers/selectRenderer/index.mjs +0 -1
  344. package/renderers/selectRenderer/selectRenderer.d.ts +0 -5
  345. package/renderers/selectRenderer/selectRenderer.js +0 -27
  346. package/renderers/selectRenderer/selectRenderer.mjs +0 -22
  347. package/selection/highlight/types/areaLayered.js +0 -31
  348. package/selection/highlight/types/areaLayered.mjs +0 -26
  349. package/selection/highlight/types/column.js +0 -27
  350. package/selection/highlight/types/column.mjs +0 -22
  351. package/selection/highlight/types/row.js +0 -27
  352. package/selection/highlight/types/row.mjs +0 -22
  353. package/shortcutContexts/commands/editor/closeAndSave.js +0 -12
  354. package/shortcutContexts/commands/editor/closeAndSave.mjs +0 -8
  355. package/shortcutContexts/commands/editor/closeWithoutSaving.js +0 -12
  356. package/shortcutContexts/commands/editor/closeWithoutSaving.mjs +0 -8
  357. package/shortcutContexts/commands/editor/fastOpen.js +0 -16
  358. package/shortcutContexts/commands/editor/fastOpen.mjs +0 -12
  359. package/shortcutContexts/commands/editor/index.js +0 -16
  360. package/shortcutContexts/commands/editor/index.mjs +0 -12
  361. package/shortcutContexts/commands/editor/open.js +0 -27
  362. package/shortcutContexts/commands/editor/open.mjs +0 -23
  363. package/shortcutContexts/commands/emptySelectedCells.js +0 -11
  364. package/shortcutContexts/commands/emptySelectedCells.mjs +0 -7
  365. package/shortcutContexts/commands/extendCellsSelection/down.js +0 -15
  366. package/shortcutContexts/commands/extendCellsSelection/down.mjs +0 -11
  367. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +0 -25
  368. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +0 -21
  369. package/shortcutContexts/commands/extendCellsSelection/index.js +0 -26
  370. package/shortcutContexts/commands/extendCellsSelection/index.mjs +0 -22
  371. package/shortcutContexts/commands/extendCellsSelection/left.js +0 -15
  372. package/shortcutContexts/commands/extendCellsSelection/left.mjs +0 -11
  373. package/shortcutContexts/commands/extendCellsSelection/right.js +0 -15
  374. package/shortcutContexts/commands/extendCellsSelection/right.mjs +0 -11
  375. package/shortcutContexts/commands/extendCellsSelection/toColumns.js +0 -19
  376. package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +0 -15
  377. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +0 -29
  378. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +0 -25
  379. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +0 -19
  380. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +0 -15
  381. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +0 -19
  382. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +0 -15
  383. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +0 -29
  384. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +0 -25
  385. package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +0 -29
  386. package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +0 -25
  387. package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +0 -29
  388. package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +0 -25
  389. package/shortcutContexts/commands/extendCellsSelection/toRows.js +0 -19
  390. package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +0 -15
  391. package/shortcutContexts/commands/extendCellsSelection/up.js +0 -15
  392. package/shortcutContexts/commands/extendCellsSelection/up.mjs +0 -11
  393. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +0 -25
  394. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +0 -21
  395. package/shortcutContexts/commands/index.js +0 -35
  396. package/shortcutContexts/commands/index.mjs +0 -31
  397. package/shortcutContexts/commands/moveCellSelection/down.js +0 -13
  398. package/shortcutContexts/commands/moveCellSelection/down.mjs +0 -9
  399. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.js +0 -33
  400. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs +0 -29
  401. package/shortcutContexts/commands/moveCellSelection/index.js +0 -28
  402. package/shortcutContexts/commands/moveCellSelection/index.mjs +0 -24
  403. package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +0 -12
  404. package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +0 -8
  405. package/shortcutContexts/commands/moveCellSelection/inlineStart.js +0 -12
  406. package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +0 -8
  407. package/shortcutContexts/commands/moveCellSelection/left.js +0 -10
  408. package/shortcutContexts/commands/moveCellSelection/left.mjs +0 -6
  409. package/shortcutContexts/commands/moveCellSelection/right.js +0 -10
  410. package/shortcutContexts/commands/moveCellSelection/right.mjs +0 -6
  411. package/shortcutContexts/commands/moveCellSelection/toMostBottom.js +0 -17
  412. package/shortcutContexts/commands/moveCellSelection/toMostBottom.mjs +0 -13
  413. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.js +0 -18
  414. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.mjs +0 -14
  415. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.js +0 -14
  416. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.mjs +0 -10
  417. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.js +0 -17
  418. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.mjs +0 -13
  419. package/shortcutContexts/commands/moveCellSelection/toMostLeft.js +0 -19
  420. package/shortcutContexts/commands/moveCellSelection/toMostLeft.mjs +0 -15
  421. package/shortcutContexts/commands/moveCellSelection/toMostRight.js +0 -21
  422. package/shortcutContexts/commands/moveCellSelection/toMostRight.mjs +0 -17
  423. package/shortcutContexts/commands/moveCellSelection/toMostTop.js +0 -17
  424. package/shortcutContexts/commands/moveCellSelection/toMostTop.mjs +0 -13
  425. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.js +0 -19
  426. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.mjs +0 -15
  427. package/shortcutContexts/commands/moveCellSelection/up.js +0 -13
  428. package/shortcutContexts/commands/moveCellSelection/up.mjs +0 -9
  429. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.js +0 -33
  430. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs +0 -29
  431. package/shortcutContexts/commands/populateSelectedCellsData.js +0 -29
  432. package/shortcutContexts/commands/populateSelectedCellsData.mjs +0 -25
  433. package/shortcutContexts/commands/scrollToFocusedCell.js +0 -35
  434. package/shortcutContexts/commands/scrollToFocusedCell.mjs +0 -31
  435. package/shortcutContexts/commands/selectAll.js +0 -12
  436. package/shortcutContexts/commands/selectAll.mjs +0 -8
  437. package/shortcutContexts/constants.js +0 -13
  438. package/shortcutContexts/constants.mjs +0 -8
  439. package/shortcutContexts/editor.js +0 -25
  440. package/shortcutContexts/editor.mjs +0 -21
  441. package/shortcutContexts/grid.js +0 -163
  442. package/shortcutContexts/grid.mjs +0 -159
  443. package/shortcutContexts/index.js +0 -24
  444. package/shortcutContexts/index.mjs +0 -11
  445. package/utils/paginator.js +0 -151
  446. package/utils/paginator.mjs +0 -147
@@ -3,8 +3,7 @@ import moment from 'moment';
3
3
  import Pikaday from 'pikaday';
4
4
  import { TextEditor } from "../textEditor/index.mjs";
5
5
  import EventManager from "../../eventManager.mjs";
6
- import { addClass, hasClass, outerHeight, outerWidth, setAttribute } from "../../helpers/dom/element.mjs";
7
- import { A11Y_EXPANDED } from "../../helpers/a11y.mjs";
6
+ import { addClass, outerHeight, outerWidth } from "../../helpers/dom/element.mjs";
8
7
  import { deepExtend } from "../../helpers/object.mjs";
9
8
  import { isFunctionKey } from "../../helpers/unicode.mjs";
10
9
  export const EDITOR_TYPE = 'date';
@@ -40,7 +39,7 @@ export class DateEditor extends TextEditor {
40
39
  throw new Error('You need to include Pikaday to your project.');
41
40
  }
42
41
  super.init();
43
- this.hot.addHook('afterDestroy', () => {
42
+ this.instance.addHook('afterDestroy', () => {
44
43
  this.parentDestroyed = true;
45
44
  this.destroyElements();
46
45
  });
@@ -65,21 +64,7 @@ export class DateEditor extends TextEditor {
65
64
  /**
66
65
  * Prevent recognizing clicking on datepicker as clicking outside of table.
67
66
  */
68
- eventManager.addEventListener(this.datePicker, 'mousedown', event => {
69
- if (hasClass(event.target, 'pika-day')) {
70
- this.hideDatepicker();
71
- }
72
- event.stopPropagation();
73
- });
74
-
75
- /**
76
- * Prevent caret movement in the TEXTAREA when navigating over the date picker.
77
- */
78
- eventManager.addEventListener(this.TEXTAREA, 'keydown', event => {
79
- if (['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'].includes(event.code)) {
80
- event.preventDefault();
81
- }
82
- });
67
+ eventManager.addEventListener(this.datePicker, 'mousedown', event => event.stopPropagation());
83
68
  }
84
69
 
85
70
  /**
@@ -120,9 +105,6 @@ export class DateEditor extends TextEditor {
120
105
  const editorContext = shortcutManager.getContext('editor');
121
106
  super.open();
122
107
  this.showDatepicker(event);
123
- if (this.hot.getSettings().ariaTags) {
124
- setAttribute(this.TD, [A11Y_EXPANDED('true')]);
125
- }
126
108
  editorContext.addShortcut({
127
109
  keys: [['Enter']],
128
110
  callback: keyboardEvent => {
@@ -145,12 +127,9 @@ export class DateEditor extends TextEditor {
145
127
  if ((_this$$datePicker = this.$datePicker) !== null && _this$$datePicker !== void 0 && _this$$datePicker.destroy) {
146
128
  this.$datePicker.destroy();
147
129
  }
148
- this.hot._registerTimeout(() => {
149
- this.hot._refreshBorders();
130
+ this.instance._registerTimeout(() => {
131
+ this.instance._refreshBorders();
150
132
  });
151
- if (this.TD && this.hot.getSettings().ariaTags) {
152
- setAttribute(this.TD, [A11Y_EXPANDED('false')]);
153
- }
154
133
  const shortcutManager = this.hot.getShortcutManager();
155
134
  const editorContext = shortcutManager.getContext('editor');
156
135
  editorContext.removeShortcutsByGroup(SHORTCUTS_GROUP_EDITOR);
@@ -168,6 +147,7 @@ export class DateEditor extends TextEditor {
168
147
  let ctrlDown = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
169
148
  if (restoreOriginalValue) {
170
149
  // pressed ESC, restore original value
150
+ // var value = this.instance.getDataAtCell(this.row, this.col);
171
151
  const value = this.originalValue;
172
152
  if (value !== void 0) {
173
153
  this.setValue(value);
@@ -184,7 +164,7 @@ export class DateEditor extends TextEditor {
184
164
  showDatepicker(event) {
185
165
  const offset = this.TD.getBoundingClientRect();
186
166
  const dateFormat = this.cellProperties.dateFormat || this.defaultDateFormat;
187
- const isMouseDown = this.hot.view.isMouseDown();
167
+ const isMouseDown = this.instance.view.isMouseDown();
188
168
  const isMeta = event ? isFunctionKey(event.keyCode) : false;
189
169
  let dateStr;
190
170
  this.datePicker.style.display = 'block';
@@ -263,6 +243,7 @@ export class DateEditor extends TextEditor {
263
243
  dateStr = moment(dateStr).format(this.cellProperties.dateFormat || this.defaultDateFormat);
264
244
  }
265
245
  this.setValue(dateStr);
246
+ this.hideDatepicker();
266
247
  if (origOnSelect) {
267
248
  origOnSelect();
268
249
  }
@@ -6,7 +6,6 @@ var _element = require("../../helpers/dom/element");
6
6
  var _event = require("../../helpers/dom/event");
7
7
  var _object = require("../../helpers/object");
8
8
  var _editorManager = require("../../editorManager");
9
- var _a11y = require("../../helpers/a11y");
10
9
  const SHORTCUTS_GROUP = 'handsontableEditor';
11
10
  const EDITOR_TYPE = 'handsontable';
12
11
 
@@ -43,9 +42,6 @@ class HandsontableEditor extends _textEditor.TextEditor {
43
42
  }
44
43
  (0, _element.setCaretPosition)(this.TEXTAREA, 0, this.TEXTAREA.value.length);
45
44
  this.refreshDimensions();
46
- if (this.hot.getSettings().ariaTags) {
47
- (0, _element.setAttribute)(this.TD, [(0, _a11y.A11Y_EXPANDED)('true')]);
48
- }
49
45
  }
50
46
 
51
47
  /**
@@ -57,9 +53,6 @@ class HandsontableEditor extends _textEditor.TextEditor {
57
53
  }
58
54
  this.removeHooksByKey('beforeKeyDown');
59
55
  super.close();
60
- if (this.hot.getSettings().ariaTags) {
61
- (0, _element.setAttribute)(this.TD, [(0, _a11y.A11Y_EXPANDED)('false')]);
62
- }
63
56
  }
64
57
 
65
58
  /**
@@ -88,7 +81,6 @@ class HandsontableEditor extends _textEditor.TextEditor {
88
81
  fillHandle: false,
89
82
  autoWrapCol: false,
90
83
  autoWrapRow: false,
91
- ariaTags: false,
92
84
  afterOnCellMouseDown(_, coords) {
93
85
  const sourceValue = this.getSourceData(coords.row, coords.col);
94
86
 
@@ -157,7 +149,7 @@ class HandsontableEditor extends _textEditor.TextEditor {
157
149
  }
158
150
 
159
151
  /**
160
- * Assigns afterDestroy callback to prevent memory leaks.
152
+ * Assings afterDestroy callback to prevent memory leaks.
161
153
  *
162
154
  * @private
163
155
  */
@@ -1,9 +1,8 @@
1
1
  import { TextEditor } from "../textEditor/index.mjs";
2
- import { setAttribute, setCaretPosition } from "../../helpers/dom/element.mjs";
2
+ import { setCaretPosition } from "../../helpers/dom/element.mjs";
3
3
  import { stopImmediatePropagation } from "../../helpers/dom/event.mjs";
4
4
  import { extend } from "../../helpers/object.mjs";
5
5
  import { SHORTCUTS_GROUP_NAVIGATION } from "../../editorManager.mjs";
6
- import { A11Y_EXPANDED } from "../../helpers/a11y.mjs";
7
6
  const SHORTCUTS_GROUP = 'handsontableEditor';
8
7
  export const EDITOR_TYPE = 'handsontable';
9
8
 
@@ -39,9 +38,6 @@ export class HandsontableEditor extends TextEditor {
39
38
  }
40
39
  setCaretPosition(this.TEXTAREA, 0, this.TEXTAREA.value.length);
41
40
  this.refreshDimensions();
42
- if (this.hot.getSettings().ariaTags) {
43
- setAttribute(this.TD, [A11Y_EXPANDED('true')]);
44
- }
45
41
  }
46
42
 
47
43
  /**
@@ -53,9 +49,6 @@ export class HandsontableEditor extends TextEditor {
53
49
  }
54
50
  this.removeHooksByKey('beforeKeyDown');
55
51
  super.close();
56
- if (this.hot.getSettings().ariaTags) {
57
- setAttribute(this.TD, [A11Y_EXPANDED('false')]);
58
- }
59
52
  }
60
53
 
61
54
  /**
@@ -84,7 +77,6 @@ export class HandsontableEditor extends TextEditor {
84
77
  fillHandle: false,
85
78
  autoWrapCol: false,
86
79
  autoWrapRow: false,
87
- ariaTags: false,
88
80
  afterOnCellMouseDown(_, coords) {
89
81
  const sourceValue = this.getSourceData(coords.row, coords.col);
90
82
 
@@ -153,7 +145,7 @@ export class HandsontableEditor extends TextEditor {
153
145
  }
154
146
 
155
147
  /**
156
- * Assigns afterDestroy callback to prevent memory leaks.
148
+ * Assings afterDestroy callback to prevent memory leaks.
157
149
  *
158
150
  * @private
159
151
  */
@@ -12,7 +12,6 @@ var _mixed = require("../../helpers/mixed");
12
12
  var _editorManager = require("../../editorManager");
13
13
  var _baseEditor2 = require("../baseEditor/baseEditor");
14
14
  var _caretPositioner = require("./caretPositioner");
15
- var _a11y = require("../../helpers/a11y");
16
15
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
16
  const EDITOR_VISIBLE_CLASS_NAME = 'ht_editor_visible';
18
17
  const EDITOR_HIDDEN_CLASS_NAME = 'ht_editor_hidden';
@@ -123,7 +122,7 @@ class TextEditor extends _baseEditor.BaseEditor {
123
122
  */
124
123
  close() {
125
124
  this.autoResize.unObserve();
126
- if ((0, _element.isThisHotChild)(this.hot.rootDocument.activeElement, this.hot.rootElement)) {
125
+ if (this.hot.rootDocument.activeElement === this.TEXTAREA) {
127
126
  this.hot.listen(); // don't refocus the table if user focused some cell outside of HT on purpose
128
127
  }
129
128
 
@@ -148,7 +147,8 @@ class TextEditor extends _baseEditor.BaseEditor {
148
147
  if (!cellProperties.readOnly) {
149
148
  this.refreshDimensions(true);
150
149
  const {
151
- allowInvalid
150
+ allowInvalid,
151
+ fragmentSelection
152
152
  } = cellProperties;
153
153
  if (allowInvalid) {
154
154
  // Remove an empty space from textarea (added by copyPaste plugin to make copy/paste
@@ -158,6 +158,13 @@ class TextEditor extends _baseEditor.BaseEditor {
158
158
  if (previousState !== _baseEditor.EDITOR_STATE.FINISHED) {
159
159
  this.hideEditableElement();
160
160
  }
161
+
162
+ // @TODO: The fragmentSelection functionality is conflicted with IME. For this feature
163
+ // refocus has to be disabled (to make IME working).
164
+ const restoreFocus = !fragmentSelection;
165
+ if (restoreFocus && !(0, _browser.isMobileBrowser)()) {
166
+ this.focus();
167
+ }
161
168
  }
162
169
  }
163
170
 
@@ -194,13 +201,8 @@ class TextEditor extends _baseEditor.BaseEditor {
194
201
  rootDocument
195
202
  } = this.hot;
196
203
  this.TEXTAREA = rootDocument.createElement('TEXTAREA');
197
-
198
- // Makes the element recognizable by Hot as its own
199
- // component's element.
200
- (0, _element.setAttribute)(this.TEXTAREA, [['data-hot-input', ''], (0, _a11y.A11Y_TABINDEX)(-1)]);
201
- if (this.hot.getSettings().ariaTags) {
202
- (0, _element.setAttribute)(this.TEXTAREA, [(0, _a11y.A11Y_HIDDEN)()]);
203
- }
204
+ this.TEXTAREA.setAttribute('data-hot-input', ''); // Makes the element recognizable by Hot as its own component's element.
205
+ this.TEXTAREA.tabIndex = -1;
204
206
  (0, _element.addClass)(this.TEXTAREA, 'handsontableInput');
205
207
  this.textareaStyle = this.TEXTAREA.style;
206
208
  this.textareaStyle.width = 0;
@@ -338,6 +340,8 @@ class TextEditor extends _baseEditor.BaseEditor {
338
340
  * @private
339
341
  */
340
342
  bindEvents() {
343
+ this.eventManager.addEventListener(this.TEXTAREA, 'cut', event => event.stopPropagation());
344
+ this.eventManager.addEventListener(this.TEXTAREA, 'paste', event => event.stopPropagation());
341
345
  if ((0, _browser.isIOS)()) {
342
346
  // on iOS after click "Done" the edit isn't hidden by default, so we need to handle it manually.
343
347
  this.eventManager.addEventListener(this.TEXTAREA, 'focusout', () => this.finishEditing(false));
@@ -346,15 +350,11 @@ class TextEditor extends _baseEditor.BaseEditor {
346
350
  this.addHook('afterScrollVertically', () => this.refreshDimensions());
347
351
  this.addHook('afterColumnResize', () => {
348
352
  this.refreshDimensions();
349
- if (this.state === _baseEditor.EDITOR_STATE.EDITING) {
350
- this.focus();
351
- }
353
+ this.focus();
352
354
  });
353
355
  this.addHook('afterRowResize', () => {
354
356
  this.refreshDimensions();
355
- if (this.state === _baseEditor.EDITOR_STATE.EDITING) {
356
- this.focus();
357
- }
357
+ this.focus();
358
358
  });
359
359
  }
360
360
 
@@ -416,7 +416,9 @@ class TextEditor extends _baseEditor.BaseEditor {
416
416
  runOnlyIf: event => !this.hot.selection.isMultiple() &&
417
417
  // We trigger a data population for multiple selection.
418
418
  // catch CTRL but not right ALT (which in some systems triggers ALT+CTRL)
419
- !event.altKey
419
+ !event.altKey,
420
+ relativeToGroup: _editorManager.SHORTCUTS_GROUP_EDITOR,
421
+ position: 'before'
420
422
  }, {
421
423
  keys: [['Meta', 'Enter']],
422
424
  callback: () => {
@@ -424,13 +426,19 @@ class TextEditor extends _baseEditor.BaseEditor {
424
426
  return false; // Will block closing editor.
425
427
  },
426
428
 
427
- runOnlyIf: () => !this.hot.selection.isMultiple() // We trigger a data population for multiple selection.
429
+ runOnlyIf: () => !this.hot.selection.isMultiple(),
430
+ // We trigger a data population for multiple selection.
431
+ relativeToGroup: _editorManager.SHORTCUTS_GROUP_EDITOR,
432
+ position: 'before'
428
433
  }, {
429
434
  keys: [['Alt', 'Enter']],
430
435
  callback: () => {
431
436
  insertNewLine();
432
437
  return false; // Will block closing editor.
433
- }
438
+ },
439
+
440
+ relativeToGroup: _editorManager.SHORTCUTS_GROUP_EDITOR,
441
+ position: 'before'
434
442
  }, {
435
443
  // TODO: Duplicated part of code (callback to shortcut)
436
444
  keys: [['PageUp']],
@@ -1,15 +1,14 @@
1
1
  import { BaseEditor, EDITOR_STATE } from "../baseEditor/index.mjs";
2
2
  import EventManager from "../../eventManager.mjs";
3
- import { isEdge, isIOS } from "../../helpers/browser.mjs";
4
- import { addClass, getComputedStyle, isThisHotChild, setCaretPosition, hasClass, removeClass, setAttribute } from "../../helpers/dom/element.mjs";
3
+ import { isMobileBrowser, isEdge, isIOS } from "../../helpers/browser.mjs";
4
+ import { addClass, getComputedStyle, setCaretPosition, hasClass, removeClass } from "../../helpers/dom/element.mjs";
5
5
  import { rangeEach } from "../../helpers/number.mjs";
6
6
  import { KEY_CODES } from "../../helpers/unicode.mjs";
7
7
  import { autoResize } from "../../3rdparty/autoResize/index.mjs";
8
8
  import { isDefined } from "../../helpers/mixed.mjs";
9
- import { SHORTCUTS_GROUP_NAVIGATION } from "../../editorManager.mjs";
9
+ import { SHORTCUTS_GROUP_NAVIGATION, SHORTCUTS_GROUP_EDITOR as EDITOR_MANAGER_GROUP } from "../../editorManager.mjs";
10
10
  import { SHORTCUTS_GROUP_EDITOR } from "../baseEditor/baseEditor.mjs";
11
11
  import { updateCaretPosition } from "./caretPositioner.mjs";
12
- import { A11Y_HIDDEN, A11Y_TABINDEX } from "../../helpers/a11y.mjs";
13
12
  const EDITOR_VISIBLE_CLASS_NAME = 'ht_editor_visible';
14
13
  const EDITOR_HIDDEN_CLASS_NAME = 'ht_editor_hidden';
15
14
  const SHORTCUTS_GROUP = 'textEditor';
@@ -118,7 +117,7 @@ export class TextEditor extends BaseEditor {
118
117
  */
119
118
  close() {
120
119
  this.autoResize.unObserve();
121
- if (isThisHotChild(this.hot.rootDocument.activeElement, this.hot.rootElement)) {
120
+ if (this.hot.rootDocument.activeElement === this.TEXTAREA) {
122
121
  this.hot.listen(); // don't refocus the table if user focused some cell outside of HT on purpose
123
122
  }
124
123
 
@@ -143,7 +142,8 @@ export class TextEditor extends BaseEditor {
143
142
  if (!cellProperties.readOnly) {
144
143
  this.refreshDimensions(true);
145
144
  const {
146
- allowInvalid
145
+ allowInvalid,
146
+ fragmentSelection
147
147
  } = cellProperties;
148
148
  if (allowInvalid) {
149
149
  // Remove an empty space from textarea (added by copyPaste plugin to make copy/paste
@@ -153,6 +153,13 @@ export class TextEditor extends BaseEditor {
153
153
  if (previousState !== EDITOR_STATE.FINISHED) {
154
154
  this.hideEditableElement();
155
155
  }
156
+
157
+ // @TODO: The fragmentSelection functionality is conflicted with IME. For this feature
158
+ // refocus has to be disabled (to make IME working).
159
+ const restoreFocus = !fragmentSelection;
160
+ if (restoreFocus && !isMobileBrowser()) {
161
+ this.focus();
162
+ }
156
163
  }
157
164
  }
158
165
 
@@ -189,13 +196,8 @@ export class TextEditor extends BaseEditor {
189
196
  rootDocument
190
197
  } = this.hot;
191
198
  this.TEXTAREA = rootDocument.createElement('TEXTAREA');
192
-
193
- // Makes the element recognizable by Hot as its own
194
- // component's element.
195
- setAttribute(this.TEXTAREA, [['data-hot-input', ''], A11Y_TABINDEX(-1)]);
196
- if (this.hot.getSettings().ariaTags) {
197
- setAttribute(this.TEXTAREA, [A11Y_HIDDEN()]);
198
- }
199
+ this.TEXTAREA.setAttribute('data-hot-input', ''); // Makes the element recognizable by Hot as its own component's element.
200
+ this.TEXTAREA.tabIndex = -1;
199
201
  addClass(this.TEXTAREA, 'handsontableInput');
200
202
  this.textareaStyle = this.TEXTAREA.style;
201
203
  this.textareaStyle.width = 0;
@@ -333,6 +335,8 @@ export class TextEditor extends BaseEditor {
333
335
  * @private
334
336
  */
335
337
  bindEvents() {
338
+ this.eventManager.addEventListener(this.TEXTAREA, 'cut', event => event.stopPropagation());
339
+ this.eventManager.addEventListener(this.TEXTAREA, 'paste', event => event.stopPropagation());
336
340
  if (isIOS()) {
337
341
  // on iOS after click "Done" the edit isn't hidden by default, so we need to handle it manually.
338
342
  this.eventManager.addEventListener(this.TEXTAREA, 'focusout', () => this.finishEditing(false));
@@ -341,15 +345,11 @@ export class TextEditor extends BaseEditor {
341
345
  this.addHook('afterScrollVertically', () => this.refreshDimensions());
342
346
  this.addHook('afterColumnResize', () => {
343
347
  this.refreshDimensions();
344
- if (this.state === EDITOR_STATE.EDITING) {
345
- this.focus();
346
- }
348
+ this.focus();
347
349
  });
348
350
  this.addHook('afterRowResize', () => {
349
351
  this.refreshDimensions();
350
- if (this.state === EDITOR_STATE.EDITING) {
351
- this.focus();
352
- }
352
+ this.focus();
353
353
  });
354
354
  }
355
355
 
@@ -411,7 +411,9 @@ export class TextEditor extends BaseEditor {
411
411
  runOnlyIf: event => !this.hot.selection.isMultiple() &&
412
412
  // We trigger a data population for multiple selection.
413
413
  // catch CTRL but not right ALT (which in some systems triggers ALT+CTRL)
414
- !event.altKey
414
+ !event.altKey,
415
+ relativeToGroup: EDITOR_MANAGER_GROUP,
416
+ position: 'before'
415
417
  }, {
416
418
  keys: [['Meta', 'Enter']],
417
419
  callback: () => {
@@ -419,13 +421,19 @@ export class TextEditor extends BaseEditor {
419
421
  return false; // Will block closing editor.
420
422
  },
421
423
 
422
- runOnlyIf: () => !this.hot.selection.isMultiple() // We trigger a data population for multiple selection.
424
+ runOnlyIf: () => !this.hot.selection.isMultiple(),
425
+ // We trigger a data population for multiple selection.
426
+ relativeToGroup: EDITOR_MANAGER_GROUP,
427
+ position: 'before'
423
428
  }, {
424
429
  keys: [['Alt', 'Enter']],
425
430
  callback: () => {
426
431
  insertNewLine();
427
432
  return false; // Will block closing editor.
428
- }
433
+ },
434
+
435
+ relativeToGroup: EDITOR_MANAGER_GROUP,
436
+ position: 'before'
429
437
  }, {
430
438
  // TODO: Duplicated part of code (callback to shortcut)
431
439
  keys: [['PageUp']],