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
@@ -1,142 +0,0 @@
1
- "use strict";
2
-
3
- exports.__esModule = true;
4
- exports.installFocusCatcher = installFocusCatcher;
5
- var _shortcutContexts = require("../../shortcutContexts");
6
- var _focusDetector = require("./focusDetector");
7
- /**
8
- * Installs a focus catcher module. The module observes when the table is focused and depending on
9
- * from the which side it was focused on it selects a specified cell or releases the TAB navigation
10
- * to the browser.
11
- *
12
- * @param {Core} hot The Handsontable instance.
13
- */
14
- function installFocusCatcher(hot) {
15
- let recentlyAddedFocusCoords;
16
- const {
17
- activate,
18
- deactivate
19
- } = (0, _focusDetector.installFocusDetector)(hot, {
20
- onFocusFromTop() {
21
- var _recentlyAddedFocusCo;
22
- const mostTopStartCoords = (_recentlyAddedFocusCo = recentlyAddedFocusCoords) !== null && _recentlyAddedFocusCo !== void 0 ? _recentlyAddedFocusCo : getMostTopStartPosition(hot);
23
- if (mostTopStartCoords) {
24
- hot.runHooks('modifyFocusOnTabNavigation', 'from_above', mostTopStartCoords);
25
- hot.selectCell(mostTopStartCoords.row, mostTopStartCoords.col);
26
- }
27
- hot.listen();
28
- },
29
- onFocusFromBottom() {
30
- var _recentlyAddedFocusCo2;
31
- const mostBottomEndCoords = (_recentlyAddedFocusCo2 = recentlyAddedFocusCoords) !== null && _recentlyAddedFocusCo2 !== void 0 ? _recentlyAddedFocusCo2 : getMostBottomEndPosition(hot);
32
- if (mostBottomEndCoords) {
33
- hot.runHooks('modifyFocusOnTabNavigation', 'from_below', mostBottomEndCoords);
34
- hot.selectCell(mostBottomEndCoords.row, mostBottomEndCoords.col);
35
- }
36
- hot.listen();
37
- }
38
- });
39
- hot.addHook('afterListen', () => deactivate());
40
- hot.addHook('afterUnlisten', () => activate());
41
- hot.addHook('afterSelection', () => {
42
- var _hot$getSelectedRange;
43
- recentlyAddedFocusCoords = (_hot$getSelectedRange = hot.getSelectedRangeLast()) === null || _hot$getSelectedRange === void 0 ? void 0 : _hot$getSelectedRange.highlight;
44
- });
45
- hot.getShortcutManager().getContext('grid').addShortcut({
46
- keys: [['Tab'], ['Shift', 'Tab']],
47
- callback: event => {
48
- var _hot$getSelectedRange2;
49
- const {
50
- disableTabNavigation,
51
- autoWrapRow
52
- } = hot.getSettings();
53
- if (disableTabNavigation) {
54
- hot.deselectCell();
55
- hot.unlisten();
56
- return false;
57
- }
58
- const isSelected = hot.selection.isSelected();
59
- const highlight = (_hot$getSelectedRange2 = hot.getSelectedRangeLast()) === null || _hot$getSelectedRange2 === void 0 ? void 0 : _hot$getSelectedRange2.highlight;
60
- const mostTopStartCoords = getMostTopStartPosition(hot);
61
- const mostBottomEndCoords = getMostBottomEndPosition(hot);
62
-
63
- // For disabled `autoWrapRow` option set the row to the same position as the currently selected row.
64
- if (!autoWrapRow) {
65
- mostTopStartCoords.row = highlight.row;
66
- mostBottomEndCoords.row = highlight.row;
67
- }
68
- if (event.shiftKey && (!isSelected || highlight.isEqual(mostTopStartCoords)) || !event.shiftKey && (!isSelected || highlight.isEqual(mostBottomEndCoords))) {
69
- hot.deselectCell();
70
- hot.unlisten();
71
- return false;
72
- }
73
- return true;
74
- },
75
- runOnlyIf: () => !hot.getSettings().minSpareCols,
76
- preventDefault: false,
77
- stopPropagation: false,
78
- position: 'before',
79
- relativeToGroup: _shortcutContexts.GRID_GROUP,
80
- group: 'focusCatcher'
81
- });
82
- }
83
-
84
- /**
85
- * Gets the coordinates of the most top-start cell or header (depends on the table settings and its size).
86
- *
87
- * @param {Core} hot The Handsontable instance.
88
- * @returns {CellCoords|null}
89
- */
90
- function getMostTopStartPosition(hot) {
91
- const {
92
- rowIndexMapper,
93
- columnIndexMapper
94
- } = hot;
95
- const {
96
- navigableHeaders
97
- } = hot.getSettings();
98
- let topRow = navigableHeaders && hot.countColHeaders() > 0 ? -hot.countColHeaders() : 0;
99
- let startColumn = navigableHeaders && hot.countRowHeaders() > 0 ? -hot.countRowHeaders() : 0;
100
- if (topRow === 0) {
101
- topRow = rowIndexMapper.getVisualFromRenderableIndex(topRow);
102
- }
103
- if (startColumn === 0) {
104
- startColumn = columnIndexMapper.getVisualFromRenderableIndex(startColumn);
105
- }
106
- if (topRow === null || startColumn === null) {
107
- return null;
108
- }
109
- return hot._createCellCoords(topRow, startColumn);
110
- }
111
-
112
- /**
113
- * Gets the coordinates of the most bottom-end cell or header (depends on the table settings and its size).
114
- *
115
- * @param {Core} hot The Handsontable instance.
116
- * @returns {CellCoords|null}
117
- */
118
- function getMostBottomEndPosition(hot) {
119
- var _rowIndexMapper$getVi, _columnIndexMapper$ge;
120
- const {
121
- rowIndexMapper,
122
- columnIndexMapper
123
- } = hot;
124
- const {
125
- navigableHeaders
126
- } = hot.getSettings();
127
- let bottomRow = rowIndexMapper.getRenderableIndexesLength() - 1;
128
- let endColumn = columnIndexMapper.getRenderableIndexesLength() - 1;
129
- if (bottomRow < 0) {
130
- if (!navigableHeaders || hot.countColHeaders() === 0) {
131
- return null;
132
- }
133
- bottomRow = -1;
134
- }
135
- if (endColumn < 0) {
136
- if (!navigableHeaders || hot.countColHeaders() === 0) {
137
- return null;
138
- }
139
- endColumn = -1;
140
- }
141
- return hot._createCellCoords((_rowIndexMapper$getVi = rowIndexMapper.getVisualFromRenderableIndex(bottomRow)) !== null && _rowIndexMapper$getVi !== void 0 ? _rowIndexMapper$getVi : bottomRow, (_columnIndexMapper$ge = columnIndexMapper.getVisualFromRenderableIndex(endColumn)) !== null && _columnIndexMapper$ge !== void 0 ? _columnIndexMapper$ge : endColumn);
142
- }
@@ -1,138 +0,0 @@
1
- import { GRID_GROUP } from "../../shortcutContexts/index.mjs";
2
- import { installFocusDetector } from "./focusDetector.mjs";
3
- /**
4
- * Installs a focus catcher module. The module observes when the table is focused and depending on
5
- * from the which side it was focused on it selects a specified cell or releases the TAB navigation
6
- * to the browser.
7
- *
8
- * @param {Core} hot The Handsontable instance.
9
- */
10
- export function installFocusCatcher(hot) {
11
- let recentlyAddedFocusCoords;
12
- const {
13
- activate,
14
- deactivate
15
- } = installFocusDetector(hot, {
16
- onFocusFromTop() {
17
- var _recentlyAddedFocusCo;
18
- const mostTopStartCoords = (_recentlyAddedFocusCo = recentlyAddedFocusCoords) !== null && _recentlyAddedFocusCo !== void 0 ? _recentlyAddedFocusCo : getMostTopStartPosition(hot);
19
- if (mostTopStartCoords) {
20
- hot.runHooks('modifyFocusOnTabNavigation', 'from_above', mostTopStartCoords);
21
- hot.selectCell(mostTopStartCoords.row, mostTopStartCoords.col);
22
- }
23
- hot.listen();
24
- },
25
- onFocusFromBottom() {
26
- var _recentlyAddedFocusCo2;
27
- const mostBottomEndCoords = (_recentlyAddedFocusCo2 = recentlyAddedFocusCoords) !== null && _recentlyAddedFocusCo2 !== void 0 ? _recentlyAddedFocusCo2 : getMostBottomEndPosition(hot);
28
- if (mostBottomEndCoords) {
29
- hot.runHooks('modifyFocusOnTabNavigation', 'from_below', mostBottomEndCoords);
30
- hot.selectCell(mostBottomEndCoords.row, mostBottomEndCoords.col);
31
- }
32
- hot.listen();
33
- }
34
- });
35
- hot.addHook('afterListen', () => deactivate());
36
- hot.addHook('afterUnlisten', () => activate());
37
- hot.addHook('afterSelection', () => {
38
- var _hot$getSelectedRange;
39
- recentlyAddedFocusCoords = (_hot$getSelectedRange = hot.getSelectedRangeLast()) === null || _hot$getSelectedRange === void 0 ? void 0 : _hot$getSelectedRange.highlight;
40
- });
41
- hot.getShortcutManager().getContext('grid').addShortcut({
42
- keys: [['Tab'], ['Shift', 'Tab']],
43
- callback: event => {
44
- var _hot$getSelectedRange2;
45
- const {
46
- disableTabNavigation,
47
- autoWrapRow
48
- } = hot.getSettings();
49
- if (disableTabNavigation) {
50
- hot.deselectCell();
51
- hot.unlisten();
52
- return false;
53
- }
54
- const isSelected = hot.selection.isSelected();
55
- const highlight = (_hot$getSelectedRange2 = hot.getSelectedRangeLast()) === null || _hot$getSelectedRange2 === void 0 ? void 0 : _hot$getSelectedRange2.highlight;
56
- const mostTopStartCoords = getMostTopStartPosition(hot);
57
- const mostBottomEndCoords = getMostBottomEndPosition(hot);
58
-
59
- // For disabled `autoWrapRow` option set the row to the same position as the currently selected row.
60
- if (!autoWrapRow) {
61
- mostTopStartCoords.row = highlight.row;
62
- mostBottomEndCoords.row = highlight.row;
63
- }
64
- if (event.shiftKey && (!isSelected || highlight.isEqual(mostTopStartCoords)) || !event.shiftKey && (!isSelected || highlight.isEqual(mostBottomEndCoords))) {
65
- hot.deselectCell();
66
- hot.unlisten();
67
- return false;
68
- }
69
- return true;
70
- },
71
- runOnlyIf: () => !hot.getSettings().minSpareCols,
72
- preventDefault: false,
73
- stopPropagation: false,
74
- position: 'before',
75
- relativeToGroup: GRID_GROUP,
76
- group: 'focusCatcher'
77
- });
78
- }
79
-
80
- /**
81
- * Gets the coordinates of the most top-start cell or header (depends on the table settings and its size).
82
- *
83
- * @param {Core} hot The Handsontable instance.
84
- * @returns {CellCoords|null}
85
- */
86
- function getMostTopStartPosition(hot) {
87
- const {
88
- rowIndexMapper,
89
- columnIndexMapper
90
- } = hot;
91
- const {
92
- navigableHeaders
93
- } = hot.getSettings();
94
- let topRow = navigableHeaders && hot.countColHeaders() > 0 ? -hot.countColHeaders() : 0;
95
- let startColumn = navigableHeaders && hot.countRowHeaders() > 0 ? -hot.countRowHeaders() : 0;
96
- if (topRow === 0) {
97
- topRow = rowIndexMapper.getVisualFromRenderableIndex(topRow);
98
- }
99
- if (startColumn === 0) {
100
- startColumn = columnIndexMapper.getVisualFromRenderableIndex(startColumn);
101
- }
102
- if (topRow === null || startColumn === null) {
103
- return null;
104
- }
105
- return hot._createCellCoords(topRow, startColumn);
106
- }
107
-
108
- /**
109
- * Gets the coordinates of the most bottom-end cell or header (depends on the table settings and its size).
110
- *
111
- * @param {Core} hot The Handsontable instance.
112
- * @returns {CellCoords|null}
113
- */
114
- function getMostBottomEndPosition(hot) {
115
- var _rowIndexMapper$getVi, _columnIndexMapper$ge;
116
- const {
117
- rowIndexMapper,
118
- columnIndexMapper
119
- } = hot;
120
- const {
121
- navigableHeaders
122
- } = hot.getSettings();
123
- let bottomRow = rowIndexMapper.getRenderableIndexesLength() - 1;
124
- let endColumn = columnIndexMapper.getRenderableIndexesLength() - 1;
125
- if (bottomRow < 0) {
126
- if (!navigableHeaders || hot.countColHeaders() === 0) {
127
- return null;
128
- }
129
- bottomRow = -1;
130
- }
131
- if (endColumn < 0) {
132
- if (!navigableHeaders || hot.countColHeaders() === 0) {
133
- return null;
134
- }
135
- endColumn = -1;
136
- }
137
- return hot._createCellCoords((_rowIndexMapper$getVi = rowIndexMapper.getVisualFromRenderableIndex(bottomRow)) !== null && _rowIndexMapper$getVi !== void 0 ? _rowIndexMapper$getVi : bottomRow, (_columnIndexMapper$ge = columnIndexMapper.getVisualFromRenderableIndex(endColumn)) !== null && _columnIndexMapper$ge !== void 0 ? _columnIndexMapper$ge : endColumn);
138
- }
package/core/index.js DELETED
@@ -1,9 +0,0 @@
1
- "use strict";
2
-
3
- exports.__esModule = true;
4
- var _focusCatcher = require("./focusCatcher");
5
- Object.keys(_focusCatcher).forEach(function (key) {
6
- if (key === "default" || key === "__esModule") return;
7
- if (key in exports && exports[key] === _focusCatcher[key]) return;
8
- exports[key] = _focusCatcher[key];
9
- });
package/core/index.mjs DELETED
@@ -1 +0,0 @@
1
- export * from "./focusCatcher/index.mjs";
package/focusManager.d.ts DELETED
@@ -1,12 +0,0 @@
1
- type FocusMode = 'cell' | 'mixed';
2
-
3
- export interface FocusManager {
4
- getFocusMode(): FocusMode;
5
- setFocusMode(focusMode: FocusMode): void;
6
- getRefocusDelay(): number;
7
- setRefocusDelay(delay: number): void;
8
- setRefocusElementGetter(getterFn: () => HTMLElement): void;
9
- getRefocusElement(): HTMLElement | void;
10
- focusOnHighlightedCell(): void;
11
- refocusToEditorTextarea(delay: number): void;
12
- }
package/focusManager.js DELETED
@@ -1,265 +0,0 @@
1
- "use strict";
2
-
3
- exports.__esModule = true;
4
- require("core-js/modules/es.error.cause.js");
5
- var _console = require("./helpers/console");
6
- var _element = require("./helpers/dom/element");
7
- function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
8
- function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
9
- function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
10
- function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
11
- function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
12
- function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
13
- function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
14
- function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
15
- function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } }
16
- /**
17
- * Possible focus modes.
18
- * - CELL - The browser's focus stays on the lastly selected cell element.
19
- * - MIXED - The browser's focus switches from the lastly selected cell element to the currently active editor's
20
- * `TEXTAREA` element after a delay defined in the manager.
21
- *
22
- * @type {{CELL: string, MIXED: string}}
23
- */
24
- const FOCUS_MODES = Object.freeze({
25
- CELL: 'cell',
26
- MIXED: 'mixed'
27
- });
28
-
29
- /**
30
- * Manages the browser's focus in the table.
31
- */
32
- var _hot = /*#__PURE__*/new WeakMap();
33
- var _focusMode = /*#__PURE__*/new WeakMap();
34
- var _refocusDelay = /*#__PURE__*/new WeakMap();
35
- var _refocusElementGetter = /*#__PURE__*/new WeakMap();
36
- var _getCurrentHighlightCoords = /*#__PURE__*/new WeakSet();
37
- var _getSelectedCell = /*#__PURE__*/new WeakSet();
38
- var _manageFocus = /*#__PURE__*/new WeakSet();
39
- var _onUpdateSettings = /*#__PURE__*/new WeakSet();
40
- class FocusManager {
41
- constructor(hotInstance) {
42
- var _this = this;
43
- /**
44
- * Update the manager configuration after calling `updateSettings`.
45
- *
46
- * @private
47
- * @param {object} newSettings The new settings passed to the `updateSettings` method.
48
- */
49
- _classPrivateMethodInitSpec(this, _onUpdateSettings);
50
- /**
51
- * Manage the browser's focus after cell selection.
52
- *
53
- * @private
54
- */
55
- _classPrivateMethodInitSpec(this, _manageFocus);
56
- /**
57
- * Get and return the currently selected and highlighted cell/header element.
58
- *
59
- * @private
60
- * @returns {HTMLTableCellElement}
61
- */
62
- _classPrivateMethodInitSpec(this, _getSelectedCell);
63
- /**
64
- * Get the coordinates of the highlight of the currently selected cell/header.
65
- *
66
- * @returns {CellCoords}
67
- */
68
- _classPrivateMethodInitSpec(this, _getCurrentHighlightCoords);
69
- /**
70
- * The Handsontable instance.
71
- */
72
- _classPrivateFieldInitSpec(this, _hot, {
73
- writable: true,
74
- value: void 0
75
- });
76
- /**
77
- * The currently enabled focus mode.
78
- * Can be either:
79
- *
80
- * - 'cell' - The browser's focus stays on the lastly selected cell element.
81
- * - 'mixed' - The browser's focus switches from the lastly selected cell element to the currently active editor's
82
- * `TEXTAREA` element after a delay defined in the manager.
83
- *
84
- * @type {string}
85
- */
86
- _classPrivateFieldInitSpec(this, _focusMode, {
87
- writable: true,
88
- value: void 0
89
- });
90
- /**
91
- * The delay after which the focus switches from the lastly selected cell to the active editor's `TEXTAREA`
92
- * element if the focus mode is set to 'mixed'.
93
- *
94
- * @type {number}
95
- */
96
- _classPrivateFieldInitSpec(this, _refocusDelay, {
97
- writable: true,
98
- value: 50
99
- });
100
- /**
101
- * Getter function for the element to be used when refocusing the browser after a delay. If `null`, the active
102
- * editor's `TEXTAREA` element will be used.
103
- *
104
- * @type {null|Function}
105
- */
106
- _classPrivateFieldInitSpec(this, _refocusElementGetter, {
107
- writable: true,
108
- value: null
109
- });
110
- const hotSettings = hotInstance.getSettings();
111
- _classPrivateFieldSet(this, _hot, hotInstance);
112
- _classPrivateFieldSet(this, _focusMode, hotSettings.imeFastEdit ? FOCUS_MODES.MIXED : FOCUS_MODES.CELL);
113
- _classPrivateFieldGet(this, _hot).addHook('afterUpdateSettings', function () {
114
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
115
- args[_key] = arguments[_key];
116
- }
117
- return _classPrivateMethodGet(_this, _onUpdateSettings, _onUpdateSettings2).call(_this, ...args);
118
- });
119
- _classPrivateFieldGet(this, _hot).addHook('afterSelection', function () {
120
- for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
121
- args[_key2] = arguments[_key2];
122
- }
123
- return _classPrivateMethodGet(_this, _manageFocus, _manageFocus2).call(_this, ...args);
124
- });
125
- }
126
-
127
- /**
128
- * Get the current focus mode.
129
- *
130
- * @returns {'cell' | 'mixed'}
131
- */
132
- getFocusMode() {
133
- return _classPrivateFieldGet(this, _focusMode);
134
- }
135
-
136
- /**
137
- * Set the focus mode.
138
- *
139
- * @param {'cell' | 'mixed'} focusMode The new focus mode.
140
- */
141
- setFocusMode(focusMode) {
142
- if (Object.values(FOCUS_MODES).includes(focusMode)) {
143
- _classPrivateFieldSet(this, _focusMode, focusMode);
144
- } else {
145
- (0, _console.warn)(`"${focusMode}" is not a valid focus mode.`);
146
- }
147
- }
148
-
149
- /**
150
- * Get the delay after which the focus will change from the cell elements to the active editor's `TEXTAREA`
151
- * element if the focus mode is set to 'mixed'.
152
- *
153
- * @returns {number} Delay in milliseconds.
154
- */
155
- getRefocusDelay() {
156
- return _classPrivateFieldGet(this, _refocusDelay);
157
- }
158
-
159
- /**
160
- * Set the delay after which the focus will change from the cell elements to the active editor's `TEXTAREA`
161
- * element if the focus mode is set to 'mixed'.
162
- *
163
- * @param {number} delay Delay in milliseconds.
164
- */
165
- setRefocusDelay(delay) {
166
- _classPrivateFieldSet(this, _refocusDelay, delay);
167
- }
168
-
169
- /**
170
- * Set the function to be used as the "refocus element" getter. It should return a focusable HTML element.
171
- *
172
- * @param {Function} getRefocusElementFunction The refocus element getter.
173
- */
174
- setRefocusElementGetter(getRefocusElementFunction) {
175
- _classPrivateFieldSet(this, _refocusElementGetter, getRefocusElementFunction);
176
- }
177
-
178
- /**
179
- * Get the element to be used when refocusing the browser after a delay in case of the focus mode being 'mixed'.
180
- *
181
- * @returns {HTMLTextAreaElement|HTMLElement|undefined}
182
- */
183
- getRefocusElement() {
184
- if (typeof _classPrivateFieldGet(this, _refocusElementGetter) === 'function') {
185
- return _classPrivateFieldGet(this, _refocusElementGetter).call(this);
186
- } else {
187
- var _classPrivateFieldGet2;
188
- return (_classPrivateFieldGet2 = _classPrivateFieldGet(this, _hot).getActiveEditor()) === null || _classPrivateFieldGet2 === void 0 ? void 0 : _classPrivateFieldGet2.TEXTAREA;
189
- }
190
- }
191
-
192
- /**
193
- * Set the browser's focus to the highlighted cell of the last selection.
194
- *
195
- * @param {HTMLTableCellElement} [selectedCell] The highlighted cell/header element.
196
- */
197
- focusOnHighlightedCell(selectedCell) {
198
- var _classPrivateFieldGet3;
199
- const currentHighlightCoords = _classPrivateMethodGet(this, _getCurrentHighlightCoords, _getCurrentHighlightCoords2).call(this);
200
- const currentlySelectedHighlight = selectedCell || _classPrivateMethodGet(this, _getSelectedCell, _getSelectedCell2).call(this);
201
- let elementToBeFocused = _classPrivateFieldGet(this, _hot).runHooks('modifyFocusedElement', currentHighlightCoords.row, currentHighlightCoords.col, currentlySelectedHighlight);
202
- if (!(elementToBeFocused instanceof HTMLElement)) {
203
- elementToBeFocused = currentlySelectedHighlight;
204
- }
205
- if (elementToBeFocused && !((_classPrivateFieldGet3 = _classPrivateFieldGet(this, _hot).getActiveEditor()) !== null && _classPrivateFieldGet3 !== void 0 && _classPrivateFieldGet3.isOpened())) {
206
- elementToBeFocused.focus({
207
- preventScroll: true
208
- });
209
- }
210
- }
211
-
212
- /**
213
- * Set the focus to the active editor's `TEXTAREA` element after the provided delay. If no delay is provided, it
214
- * will be taken from the manager's configuration.
215
- *
216
- * @param {number} delay Delay in milliseconds.
217
- */
218
- refocusToEditorTextarea() {
219
- let delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _classPrivateFieldGet(this, _refocusDelay);
220
- const refocusElement = this.getRefocusElement();
221
-
222
- // Re-focus on the editor's `TEXTAREA` element (or a predefined element) if the `imeFastEdit` option is enabled.
223
- if (_classPrivateFieldGet(this, _hot).getSettings().imeFastEdit && !!refocusElement) {
224
- _classPrivateFieldGet(this, _hot)._registerTimeout(() => {
225
- refocusElement.select();
226
- }, delay);
227
- }
228
- }
229
- }
230
- exports.FocusManager = FocusManager;
231
- function _getCurrentHighlightCoords2() {
232
- const lastSelectedRange = _classPrivateFieldGet(this, _hot).getSelectedRangeLast();
233
- return lastSelectedRange.highlight;
234
- }
235
- function _getSelectedCell2() {
236
- const selectedCellCoords = _classPrivateMethodGet(this, _getCurrentHighlightCoords, _getCurrentHighlightCoords2).call(this);
237
- return _classPrivateFieldGet(this, _hot).getCell(selectedCellCoords.row, selectedCellCoords.col, true);
238
- }
239
- function _manageFocus2() {
240
- const selectedCell = _classPrivateMethodGet(this, _getSelectedCell, _getSelectedCell2).call(this);
241
- const {
242
- activeElement
243
- } = _classPrivateFieldGet(this, _hot).rootDocument;
244
-
245
- // Blurring the `activeElement` removes the unwanted border around the focusable element (#6877)
246
- // and resets the `document.activeElement` property. The blurring should happen only when the
247
- // previously selected input element has not belonged to the Handsontable editor. If blurring is
248
- // triggered for all elements, there is a problem with the disappearing IME editor (#9672).
249
- if (activeElement && (0, _element.isOutsideInput)(activeElement)) {
250
- activeElement.blur();
251
- }
252
- this.focusOnHighlightedCell(selectedCell);
253
- if (this.getFocusMode() === FOCUS_MODES.MIXED && selectedCell.nodeName === 'TD') {
254
- _classPrivateFieldGet(this, _hot).addHookOnce('afterSelectionEnd', () => {
255
- this.refocusToEditorTextarea();
256
- });
257
- }
258
- }
259
- function _onUpdateSettings2(newSettings) {
260
- if (newSettings.imeFastEdit && this.getFocusMode() !== FOCUS_MODES.MIXED) {
261
- this.setFocusMode(FOCUS_MODES.MIXED);
262
- } else if (!newSettings.imeFastEdit && this.getFocusMode() !== FOCUS_MODES.CELL) {
263
- this.setFocusMode(FOCUS_MODES.CELL);
264
- }
265
- }