handsontable 0.0.0-next-9059914-20231025 → 0.0.0-next-cecf979-20231026

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


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

Files changed (447) hide show
  1. package/3rdparty/walkontable/src/cell/coords.d.ts +6 -1
  2. package/3rdparty/walkontable/src/cell/coords.js +50 -11
  3. package/3rdparty/walkontable/src/cell/coords.mjs +50 -11
  4. package/3rdparty/walkontable/src/cell/range.d.ts +9 -2
  5. package/3rdparty/walkontable/src/cell/range.js +38 -7
  6. package/3rdparty/walkontable/src/cell/range.mjs +38 -7
  7. package/3rdparty/walkontable/src/core/_base.js +9 -3
  8. package/3rdparty/walkontable/src/core/_base.mjs +9 -3
  9. package/3rdparty/walkontable/src/core/clone.js +2 -2
  10. package/3rdparty/walkontable/src/core/clone.mjs +2 -2
  11. package/3rdparty/walkontable/src/core/core.js +3 -2
  12. package/3rdparty/walkontable/src/core/core.mjs +3 -2
  13. package/3rdparty/walkontable/src/event.js +12 -10
  14. package/3rdparty/walkontable/src/event.mjs +12 -10
  15. package/3rdparty/walkontable/src/facade/core.js +2 -2
  16. package/3rdparty/walkontable/src/facade/core.mjs +2 -2
  17. package/3rdparty/walkontable/src/index.js +10 -2
  18. package/3rdparty/walkontable/src/index.mjs +2 -2
  19. package/3rdparty/walkontable/src/overlay/_base.js +13 -2
  20. package/3rdparty/walkontable/src/overlay/_base.mjs +14 -3
  21. package/3rdparty/walkontable/src/overlay/inlineStart.js +2 -6
  22. package/3rdparty/walkontable/src/overlay/inlineStart.mjs +2 -6
  23. package/3rdparty/walkontable/src/overlay/top.js +2 -6
  24. package/3rdparty/walkontable/src/overlay/top.mjs +2 -6
  25. package/3rdparty/walkontable/src/renderer/cells.js +10 -0
  26. package/3rdparty/walkontable/src/renderer/cells.mjs +11 -1
  27. package/3rdparty/walkontable/src/renderer/columnHeaders.js +10 -0
  28. package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +11 -1
  29. package/3rdparty/walkontable/src/renderer/rowHeaders.js +5 -0
  30. package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +5 -0
  31. package/3rdparty/walkontable/src/renderer/rows.js +13 -0
  32. package/3rdparty/walkontable/src/renderer/rows.mjs +13 -0
  33. package/3rdparty/walkontable/src/renderer/table.js +9 -0
  34. package/3rdparty/walkontable/src/renderer/table.mjs +9 -0
  35. package/3rdparty/walkontable/src/scroll.js +2 -0
  36. package/3rdparty/walkontable/src/scroll.mjs +2 -0
  37. package/3rdparty/walkontable/src/{border.js → selection/border/border.js} +7 -12
  38. package/3rdparty/walkontable/src/{border.mjs → selection/border/border.mjs} +7 -12
  39. package/3rdparty/walkontable/src/selection/border/constants.js +16 -0
  40. package/3rdparty/walkontable/src/selection/border/constants.mjs +12 -0
  41. package/3rdparty/walkontable/src/selection/constants.js +62 -0
  42. package/3rdparty/walkontable/src/selection/constants.mjs +51 -0
  43. package/3rdparty/walkontable/src/selection/index.js +26 -0
  44. package/3rdparty/walkontable/src/selection/index.mjs +5 -0
  45. package/3rdparty/walkontable/src/selection/manager.js +274 -0
  46. package/3rdparty/walkontable/src/selection/manager.mjs +269 -0
  47. package/3rdparty/walkontable/src/selection/scanner.js +270 -0
  48. package/3rdparty/walkontable/src/selection/scanner.mjs +267 -0
  49. package/3rdparty/walkontable/src/selection/selection.js +101 -0
  50. package/3rdparty/walkontable/src/selection/selection.mjs +96 -0
  51. package/3rdparty/walkontable/src/settings.js +13 -4
  52. package/3rdparty/walkontable/src/settings.mjs +13 -4
  53. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +9 -0
  54. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +9 -0
  55. package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +9 -0
  56. package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +9 -0
  57. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.js +9 -0
  58. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.mjs +9 -0
  59. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +9 -0
  60. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +9 -0
  61. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +9 -0
  62. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +9 -0
  63. package/3rdparty/walkontable/src/table.js +19 -78
  64. package/3rdparty/walkontable/src/table.mjs +20 -79
  65. package/base.js +2 -2
  66. package/base.mjs +2 -2
  67. package/cellTypes/dateType/dateType.d.ts +3 -3
  68. package/cellTypes/dateType/dateType.js +2 -2
  69. package/cellTypes/dateType/dateType.mjs +2 -2
  70. package/cellTypes/handsontableType/handsontableType.d.ts +3 -3
  71. package/cellTypes/handsontableType/handsontableType.js +2 -2
  72. package/cellTypes/handsontableType/handsontableType.mjs +2 -2
  73. package/cellTypes/index.d.ts +3 -0
  74. package/cellTypes/index.js +4 -0
  75. package/cellTypes/index.mjs +3 -1
  76. package/cellTypes/selectType/index.d.ts +1 -0
  77. package/cellTypes/selectType/index.js +6 -0
  78. package/cellTypes/selectType/index.mjs +1 -0
  79. package/cellTypes/selectType/selectType.d.ts +14 -0
  80. package/cellTypes/selectType/selectType.js +13 -0
  81. package/cellTypes/selectType/selectType.mjs +8 -0
  82. package/core/focusCatcher/focusDetector.js +63 -0
  83. package/core/focusCatcher/focusDetector.mjs +59 -0
  84. package/core/focusCatcher/index.js +142 -0
  85. package/core/focusCatcher/index.mjs +138 -0
  86. package/core/index.js +9 -0
  87. package/core/index.mjs +1 -0
  88. package/core.d.ts +9 -4
  89. package/core.js +285 -327
  90. package/core.mjs +285 -327
  91. package/dataMap/metaManager/metaSchema.js +65 -0
  92. package/dataMap/metaManager/metaSchema.mjs +65 -0
  93. package/dataMap/metaManager/mods/extendMetaProperties.js +7 -1
  94. package/dataMap/metaManager/mods/extendMetaProperties.mjs +7 -1
  95. package/dataMap/replaceData.js +5 -0
  96. package/dataMap/replaceData.mjs +5 -0
  97. package/dist/handsontable.css +51 -15
  98. package/dist/handsontable.full.css +51 -15
  99. package/dist/handsontable.full.js +13360 -7840
  100. package/dist/handsontable.full.min.css +7 -7
  101. package/dist/handsontable.full.min.js +136 -136
  102. package/dist/handsontable.js +20955 -15435
  103. package/dist/handsontable.min.css +6 -6
  104. package/dist/handsontable.min.js +24 -24
  105. package/dist/languages/all.js +6 -2
  106. package/dist/languages/all.min.js +1 -1
  107. package/dist/languages/en-US.js +3 -1
  108. package/dist/languages/en-US.min.js +1 -1
  109. package/dist/languages/pl-PL.js +3 -1
  110. package/dist/languages/pl-PL.min.js +1 -1
  111. package/editorManager.js +15 -87
  112. package/editorManager.mjs +16 -87
  113. package/editors/autocompleteEditor/autocompleteEditor.js +53 -2
  114. package/editors/autocompleteEditor/autocompleteEditor.mjs +54 -3
  115. package/editors/dateEditor/dateEditor.js +26 -7
  116. package/editors/dateEditor/dateEditor.mjs +27 -8
  117. package/editors/handsontableEditor/handsontableEditor.js +9 -1
  118. package/editors/handsontableEditor/handsontableEditor.mjs +10 -2
  119. package/editors/textEditor/textEditor.js +19 -27
  120. package/editors/textEditor/textEditor.mjs +22 -30
  121. package/focusManager.d.ts +12 -0
  122. package/focusManager.js +265 -0
  123. package/focusManager.mjs +261 -0
  124. package/helpers/a11y.js +79 -0
  125. package/helpers/a11y.mjs +38 -0
  126. package/helpers/dom/element.js +188 -9
  127. package/helpers/dom/element.mjs +182 -9
  128. package/helpers/mixed.js +1 -1
  129. package/helpers/mixed.mjs +1 -1
  130. package/helpers/number.d.ts +1 -0
  131. package/helpers/number.js +18 -0
  132. package/helpers/number.mjs +17 -0
  133. package/i18n/constants.js +7 -1
  134. package/i18n/constants.mjs +4 -1
  135. package/i18n/languages/en-US.js +3 -1
  136. package/i18n/languages/en-US.mjs +3 -1
  137. package/i18n/languages/pl-PL.js +3 -1
  138. package/i18n/languages/pl-PL.mjs +3 -1
  139. package/languages/all.js +6 -2
  140. package/languages/en-US.js +3 -1
  141. package/languages/en-US.mjs +3 -1
  142. package/languages/index.js +6 -2
  143. package/languages/pl-PL.js +3 -1
  144. package/languages/pl-PL.mjs +3 -1
  145. package/package.json +21 -1
  146. package/pluginHooks.d.ts +12 -1
  147. package/pluginHooks.js +152 -1
  148. package/pluginHooks.mjs +152 -1
  149. package/plugins/collapsibleColumns/collapsibleColumns.js +74 -4
  150. package/plugins/collapsibleColumns/collapsibleColumns.mjs +75 -5
  151. package/plugins/columnSorting/columnSorting.js +43 -0
  152. package/plugins/columnSorting/columnSorting.mjs +44 -3
  153. package/plugins/columnSorting/index.js +3 -1
  154. package/plugins/columnSorting/index.mjs +1 -1
  155. package/plugins/comments/commentEditor.js +1 -0
  156. package/plugins/comments/commentEditor.mjs +1 -0
  157. package/plugins/comments/comments.js +252 -189
  158. package/plugins/comments/comments.mjs +251 -190
  159. package/plugins/comments/contextMenuItem/addEditComment.js +41 -0
  160. package/plugins/comments/contextMenuItem/addEditComment.mjs +35 -0
  161. package/plugins/comments/contextMenuItem/readOnlyComment.js +49 -0
  162. package/plugins/comments/contextMenuItem/readOnlyComment.mjs +43 -0
  163. package/plugins/comments/contextMenuItem/removeComment.js +38 -0
  164. package/plugins/comments/contextMenuItem/removeComment.mjs +32 -0
  165. package/plugins/contextMenu/commandExecutor.js +2 -3
  166. package/plugins/contextMenu/commandExecutor.mjs +2 -3
  167. package/plugins/contextMenu/contextMenu.d.ts +1 -1
  168. package/plugins/contextMenu/contextMenu.js +75 -36
  169. package/plugins/contextMenu/contextMenu.mjs +74 -35
  170. package/plugins/contextMenu/itemsFactory.js +2 -3
  171. package/plugins/contextMenu/itemsFactory.mjs +3 -4
  172. package/plugins/contextMenu/{cursor.mjs → menu/cursor.js} +6 -4
  173. package/plugins/contextMenu/{cursor.js → menu/cursor.mjs} +4 -10
  174. package/plugins/contextMenu/menu/defaultShortcutsList.js +88 -0
  175. package/plugins/contextMenu/menu/defaultShortcutsList.mjs +84 -0
  176. package/plugins/contextMenu/menu/index.js +9 -0
  177. package/plugins/contextMenu/menu/index.mjs +1 -0
  178. package/plugins/contextMenu/{menu.js → menu/menu.js} +145 -421
  179. package/plugins/contextMenu/{menu.mjs → menu/menu.mjs} +146 -422
  180. package/plugins/contextMenu/menu/menuItemRenderer.js +58 -0
  181. package/plugins/contextMenu/menu/menuItemRenderer.mjs +54 -0
  182. package/plugins/contextMenu/menu/navigator.js +27 -0
  183. package/plugins/contextMenu/menu/navigator.mjs +23 -0
  184. package/plugins/contextMenu/menu/positioner.js +213 -0
  185. package/plugins/contextMenu/menu/positioner.mjs +209 -0
  186. package/plugins/contextMenu/menu/shortcuts.js +114 -0
  187. package/plugins/contextMenu/menu/shortcuts.mjs +110 -0
  188. package/plugins/contextMenu/menu/utils.js +177 -0
  189. package/plugins/contextMenu/menu/utils.mjs +163 -0
  190. package/plugins/contextMenu/predefinedItems/alignment.js +7 -0
  191. package/plugins/contextMenu/predefinedItems/alignment.mjs +7 -0
  192. package/plugins/contextMenu/predefinedItems/clearColumn.js +5 -3
  193. package/plugins/contextMenu/predefinedItems/clearColumn.mjs +5 -3
  194. package/plugins/contextMenu/predefinedItems/columnLeft.js +5 -3
  195. package/plugins/contextMenu/predefinedItems/columnLeft.mjs +5 -3
  196. package/plugins/contextMenu/predefinedItems/columnRight.js +5 -3
  197. package/plugins/contextMenu/predefinedItems/columnRight.mjs +5 -3
  198. package/plugins/contextMenu/{predefinedItems.js → predefinedItems/index.js} +14 -14
  199. package/plugins/contextMenu/predefinedItems/index.mjs +68 -0
  200. package/plugins/contextMenu/predefinedItems/readOnly.js +7 -0
  201. package/plugins/contextMenu/predefinedItems/readOnly.mjs +7 -0
  202. package/plugins/contextMenu/predefinedItems/removeColumn.js +7 -5
  203. package/plugins/contextMenu/predefinedItems/removeColumn.mjs +5 -3
  204. package/plugins/contextMenu/predefinedItems/removeRow.js +7 -5
  205. package/plugins/contextMenu/predefinedItems/removeRow.mjs +5 -3
  206. package/plugins/contextMenu/predefinedItems/rowAbove.js +5 -3
  207. package/plugins/contextMenu/predefinedItems/rowAbove.mjs +5 -3
  208. package/plugins/contextMenu/predefinedItems/rowBelow.js +5 -3
  209. package/plugins/contextMenu/predefinedItems/rowBelow.mjs +5 -3
  210. package/plugins/contextMenu/utils.js +35 -151
  211. package/plugins/contextMenu/utils.mjs +35 -144
  212. package/plugins/copyPaste/contextMenuItem/copy.js +7 -0
  213. package/plugins/copyPaste/contextMenuItem/copy.mjs +7 -0
  214. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.js +9 -1
  215. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.mjs +9 -1
  216. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.js +9 -1
  217. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.mjs +9 -1
  218. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.js +9 -1
  219. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.mjs +9 -1
  220. package/plugins/copyPaste/contextMenuItem/cut.js +7 -0
  221. package/plugins/copyPaste/contextMenuItem/cut.mjs +7 -0
  222. package/plugins/copyPaste/copyPaste.js +127 -78
  223. package/plugins/copyPaste/copyPaste.mjs +128 -79
  224. package/plugins/customBorders/customBorders.js +23 -20
  225. package/plugins/customBorders/customBorders.mjs +24 -21
  226. package/plugins/dropdownMenu/dropdownMenu.d.ts +1 -1
  227. package/plugins/dropdownMenu/dropdownMenu.js +127 -40
  228. package/plugins/dropdownMenu/dropdownMenu.mjs +126 -39
  229. package/plugins/filters/component/_base.js +23 -8
  230. package/plugins/filters/component/_base.mjs +23 -8
  231. package/plugins/filters/component/actionBar.js +29 -27
  232. package/plugins/filters/component/actionBar.mjs +26 -23
  233. package/plugins/filters/component/condition.js +46 -59
  234. package/plugins/filters/component/condition.mjs +40 -52
  235. package/plugins/filters/component/operators.js +21 -22
  236. package/plugins/filters/component/operators.mjs +18 -18
  237. package/plugins/filters/component/value.js +35 -26
  238. package/plugins/filters/component/value.mjs +32 -22
  239. package/plugins/filters/constants.mjs +1 -1
  240. package/plugins/filters/filters.js +106 -62
  241. package/plugins/filters/filters.mjs +99 -55
  242. package/plugins/filters/menu/focusController.js +123 -0
  243. package/plugins/filters/menu/focusController.mjs +119 -0
  244. package/plugins/filters/menu/focusNavigator.js +30 -0
  245. package/plugins/filters/menu/focusNavigator.mjs +26 -0
  246. package/plugins/filters/ui/_base.js +35 -13
  247. package/plugins/filters/ui/_base.mjs +35 -13
  248. package/plugins/filters/ui/input.js +43 -32
  249. package/plugins/filters/ui/input.mjs +42 -30
  250. package/plugins/filters/ui/link.js +44 -12
  251. package/plugins/filters/ui/link.mjs +44 -11
  252. package/plugins/filters/ui/multipleSelect.js +234 -129
  253. package/plugins/filters/ui/multipleSelect.mjs +232 -127
  254. package/plugins/filters/ui/radioInput.js +42 -18
  255. package/plugins/filters/ui/radioInput.mjs +42 -17
  256. package/plugins/filters/ui/select.js +144 -75
  257. package/plugins/filters/ui/select.mjs +142 -72
  258. package/plugins/hiddenColumns/hiddenColumns.mjs +1 -1
  259. package/plugins/hiddenRows/hiddenRows.mjs +1 -1
  260. package/plugins/manualColumnMove/manualColumnMove.js +3 -1
  261. package/plugins/manualColumnMove/manualColumnMove.mjs +3 -1
  262. package/plugins/mergeCells/mergeCells.js +5 -16
  263. package/plugins/mergeCells/mergeCells.mjs +5 -16
  264. package/plugins/multiColumnSorting/multiColumnSorting.js +37 -2
  265. package/plugins/multiColumnSorting/multiColumnSorting.mjs +37 -2
  266. package/plugins/nestedHeaders/nestedHeaders.js +240 -10
  267. package/plugins/nestedHeaders/nestedHeaders.mjs +241 -11
  268. package/plugins/nestedHeaders/stateManager/index.js +102 -3
  269. package/plugins/nestedHeaders/stateManager/index.mjs +102 -3
  270. package/plugins/nestedRows/nestedRows.js +41 -0
  271. package/plugins/nestedRows/nestedRows.mjs +41 -0
  272. package/plugins/nestedRows/ui/headers.js +11 -0
  273. package/plugins/nestedRows/ui/headers.mjs +12 -1
  274. package/renderers/autocompleteRenderer/autocompleteRenderer.js +8 -0
  275. package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +8 -0
  276. package/renderers/baseRenderer/baseRenderer.js +17 -0
  277. package/renderers/baseRenderer/baseRenderer.mjs +18 -1
  278. package/renderers/checkboxRenderer/checkboxRenderer.js +9 -4
  279. package/renderers/checkboxRenderer/checkboxRenderer.mjs +9 -4
  280. package/renderers/dateRenderer/dateRenderer.d.ts +5 -0
  281. package/renderers/dateRenderer/dateRenderer.js +29 -0
  282. package/renderers/dateRenderer/dateRenderer.mjs +24 -0
  283. package/renderers/dateRenderer/index.d.ts +1 -0
  284. package/renderers/dateRenderer/index.js +6 -0
  285. package/renderers/dateRenderer/index.mjs +1 -0
  286. package/renderers/handsontableRenderer/handsontableRenderer.d.ts +5 -0
  287. package/renderers/handsontableRenderer/handsontableRenderer.js +29 -0
  288. package/renderers/handsontableRenderer/handsontableRenderer.mjs +24 -0
  289. package/renderers/handsontableRenderer/index.d.ts +1 -0
  290. package/renderers/handsontableRenderer/index.js +6 -0
  291. package/renderers/handsontableRenderer/index.mjs +1 -0
  292. package/renderers/index.d.ts +9 -0
  293. package/renderers/selectRenderer/index.d.ts +1 -0
  294. package/renderers/selectRenderer/index.js +6 -0
  295. package/renderers/selectRenderer/index.mjs +1 -0
  296. package/renderers/selectRenderer/selectRenderer.d.ts +5 -0
  297. package/renderers/selectRenderer/selectRenderer.js +27 -0
  298. package/renderers/selectRenderer/selectRenderer.mjs +22 -0
  299. package/selection/highlight/highlight.js +256 -71
  300. package/selection/highlight/highlight.mjs +250 -71
  301. package/selection/highlight/types/activeHeader.js +10 -8
  302. package/selection/highlight/types/activeHeader.mjs +10 -8
  303. package/selection/highlight/types/area.js +6 -18
  304. package/selection/highlight/types/area.mjs +6 -18
  305. package/selection/highlight/types/areaLayered.js +31 -0
  306. package/selection/highlight/types/areaLayered.mjs +26 -0
  307. package/selection/highlight/types/column.js +27 -0
  308. package/selection/highlight/types/column.mjs +22 -0
  309. package/selection/highlight/types/customSelection.js +7 -9
  310. package/selection/highlight/types/customSelection.mjs +7 -9
  311. package/selection/highlight/types/fill.js +5 -7
  312. package/selection/highlight/types/fill.mjs +5 -7
  313. package/selection/highlight/types/{cell.js → focus.js} +5 -7
  314. package/selection/highlight/types/{cell.mjs → focus.mjs} +5 -7
  315. package/selection/highlight/types/header.js +9 -18
  316. package/selection/highlight/types/header.mjs +9 -18
  317. package/selection/highlight/types/row.js +27 -0
  318. package/selection/highlight/types/row.mjs +22 -0
  319. package/selection/highlight/visualSelection.js +31 -27
  320. package/selection/highlight/visualSelection.mjs +31 -27
  321. package/selection/index.js +4 -7
  322. package/selection/index.mjs +2 -3
  323. package/selection/mouseEventHandler.js +7 -1
  324. package/selection/mouseEventHandler.mjs +7 -1
  325. package/selection/range.js +8 -8
  326. package/selection/range.mjs +8 -8
  327. package/selection/selection.js +321 -152
  328. package/selection/selection.mjs +318 -151
  329. package/selection/transformation.js +232 -90
  330. package/selection/transformation.mjs +232 -90
  331. package/selection/utils.js +15 -21
  332. package/selection/utils.mjs +16 -21
  333. package/settings.d.ts +4 -0
  334. package/shortcutContexts/commands/editor/closeAndSave.js +12 -0
  335. package/shortcutContexts/commands/editor/closeAndSave.mjs +8 -0
  336. package/shortcutContexts/commands/editor/closeWithoutSaving.js +12 -0
  337. package/shortcutContexts/commands/editor/closeWithoutSaving.mjs +8 -0
  338. package/shortcutContexts/commands/editor/fastOpen.js +16 -0
  339. package/shortcutContexts/commands/editor/fastOpen.mjs +12 -0
  340. package/shortcutContexts/commands/editor/index.js +16 -0
  341. package/shortcutContexts/commands/editor/index.mjs +12 -0
  342. package/shortcutContexts/commands/editor/open.js +27 -0
  343. package/shortcutContexts/commands/editor/open.mjs +23 -0
  344. package/shortcutContexts/commands/emptySelectedCells.js +11 -0
  345. package/shortcutContexts/commands/emptySelectedCells.mjs +7 -0
  346. package/shortcutContexts/commands/extendCellsSelection/down.js +15 -0
  347. package/shortcutContexts/commands/extendCellsSelection/down.mjs +11 -0
  348. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +25 -0
  349. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +21 -0
  350. package/shortcutContexts/commands/extendCellsSelection/index.js +26 -0
  351. package/shortcutContexts/commands/extendCellsSelection/index.mjs +22 -0
  352. package/shortcutContexts/commands/extendCellsSelection/left.js +15 -0
  353. package/shortcutContexts/commands/extendCellsSelection/left.mjs +11 -0
  354. package/shortcutContexts/commands/extendCellsSelection/right.js +15 -0
  355. package/shortcutContexts/commands/extendCellsSelection/right.mjs +11 -0
  356. package/shortcutContexts/commands/extendCellsSelection/toColumns.js +19 -0
  357. package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +15 -0
  358. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +29 -0
  359. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +25 -0
  360. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +19 -0
  361. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +15 -0
  362. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +19 -0
  363. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +15 -0
  364. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +29 -0
  365. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +25 -0
  366. package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +29 -0
  367. package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +25 -0
  368. package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +29 -0
  369. package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +25 -0
  370. package/shortcutContexts/commands/extendCellsSelection/toRows.js +19 -0
  371. package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +15 -0
  372. package/shortcutContexts/commands/extendCellsSelection/up.js +15 -0
  373. package/shortcutContexts/commands/extendCellsSelection/up.mjs +11 -0
  374. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +25 -0
  375. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +21 -0
  376. package/shortcutContexts/commands/index.js +35 -0
  377. package/shortcutContexts/commands/index.mjs +31 -0
  378. package/shortcutContexts/commands/moveCellSelection/down.js +13 -0
  379. package/shortcutContexts/commands/moveCellSelection/down.mjs +9 -0
  380. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.js +33 -0
  381. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs +29 -0
  382. package/shortcutContexts/commands/moveCellSelection/index.js +28 -0
  383. package/shortcutContexts/commands/moveCellSelection/index.mjs +24 -0
  384. package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +12 -0
  385. package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +8 -0
  386. package/shortcutContexts/commands/moveCellSelection/inlineStart.js +12 -0
  387. package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +8 -0
  388. package/shortcutContexts/commands/moveCellSelection/left.js +10 -0
  389. package/shortcutContexts/commands/moveCellSelection/left.mjs +6 -0
  390. package/shortcutContexts/commands/moveCellSelection/right.js +10 -0
  391. package/shortcutContexts/commands/moveCellSelection/right.mjs +6 -0
  392. package/shortcutContexts/commands/moveCellSelection/toMostBottom.js +17 -0
  393. package/shortcutContexts/commands/moveCellSelection/toMostBottom.mjs +13 -0
  394. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.js +18 -0
  395. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.mjs +14 -0
  396. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.js +14 -0
  397. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.mjs +10 -0
  398. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.js +17 -0
  399. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.mjs +13 -0
  400. package/shortcutContexts/commands/moveCellSelection/toMostLeft.js +19 -0
  401. package/shortcutContexts/commands/moveCellSelection/toMostLeft.mjs +15 -0
  402. package/shortcutContexts/commands/moveCellSelection/toMostRight.js +21 -0
  403. package/shortcutContexts/commands/moveCellSelection/toMostRight.mjs +17 -0
  404. package/shortcutContexts/commands/moveCellSelection/toMostTop.js +17 -0
  405. package/shortcutContexts/commands/moveCellSelection/toMostTop.mjs +13 -0
  406. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.js +19 -0
  407. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.mjs +15 -0
  408. package/shortcutContexts/commands/moveCellSelection/up.js +13 -0
  409. package/shortcutContexts/commands/moveCellSelection/up.mjs +9 -0
  410. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.js +33 -0
  411. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs +29 -0
  412. package/shortcutContexts/commands/populateSelectedCellsData.js +29 -0
  413. package/shortcutContexts/commands/populateSelectedCellsData.mjs +25 -0
  414. package/shortcutContexts/commands/scrollToFocusedCell.js +35 -0
  415. package/shortcutContexts/commands/scrollToFocusedCell.mjs +31 -0
  416. package/shortcutContexts/commands/selectAll.js +12 -0
  417. package/shortcutContexts/commands/selectAll.mjs +8 -0
  418. package/shortcutContexts/constants.js +13 -0
  419. package/shortcutContexts/constants.mjs +8 -0
  420. package/shortcutContexts/editor.js +25 -0
  421. package/shortcutContexts/editor.mjs +21 -0
  422. package/shortcutContexts/grid.js +163 -0
  423. package/shortcutContexts/grid.mjs +159 -0
  424. package/shortcutContexts/index.js +24 -0
  425. package/shortcutContexts/index.mjs +11 -0
  426. package/shortcuts/context.d.ts +1 -0
  427. package/shortcuts/context.js +23 -4
  428. package/shortcuts/context.mjs +23 -5
  429. package/shortcuts/manager.js +25 -7
  430. package/shortcuts/manager.mjs +26 -7
  431. package/shortcuts/recorder.js +3 -3
  432. package/shortcuts/recorder.mjs +3 -3
  433. package/shortcuts/utils.js +19 -5
  434. package/shortcuts/utils.mjs +18 -4
  435. package/tableView.js +111 -13
  436. package/tableView.mjs +112 -14
  437. package/utils/paginator.js +151 -0
  438. package/utils/paginator.mjs +147 -0
  439. package/3rdparty/walkontable/src/selection.js +0 -295
  440. package/3rdparty/walkontable/src/selection.mjs +0 -290
  441. package/plugins/contextMenu/predefinedItems.mjs +0 -68
  442. package/plugins/copyPaste/focusableElement.js +0 -186
  443. package/plugins/copyPaste/focusableElement.mjs +0 -180
  444. package/selection/highlight/constants.js +0 -15
  445. package/selection/highlight/constants.mjs +0 -6
  446. package/selection/highlight/types/index.js +0 -35
  447. package/selection/highlight/types/index.mjs +0 -31
@@ -10,6 +10,7 @@ var _console = require("../../helpers/console");
10
10
  var _element = require("../../helpers/dom/element");
11
11
  var _eventManager = _interopRequireDefault(require("../../eventManager"));
12
12
  var _event = require("../../helpers/dom/event");
13
+ var _a11y = require("../../helpers/a11y");
13
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
15
  function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
15
16
  function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
@@ -27,6 +28,7 @@ const PLUGIN_PRIORITY = 290;
27
28
  exports.PLUGIN_PRIORITY = PLUGIN_PRIORITY;
28
29
  const SETTING_KEYS = ['nestedHeaders'];
29
30
  const COLLAPSIBLE_ELEMENT_CLASS = 'collapsibleIndicator';
31
+ const SHORTCUTS_GROUP = PLUGIN_KEY;
30
32
  const actionDictionary = new Map([['collapse', {
31
33
  hideColumn: true,
32
34
  beforeHook: 'beforeColumnCollapse',
@@ -191,6 +193,7 @@ class CollapsibleColumns extends _base.BasePlugin {
191
193
  return _this.onAfterGetColHeader(...arguments);
192
194
  });
193
195
  this.addHook('beforeOnCellMouseDown', (event, coords, TD) => this.onBeforeOnCellMouseDown(event, coords, TD));
196
+ this.registerShortcuts();
194
197
  super.enablePlugin();
195
198
  // @TODO: Workaround for broken plugin initialization abstraction (#6806).
196
199
  this.updatePlugin();
@@ -238,10 +241,62 @@ class CollapsibleColumns extends _base.BasePlugin {
238
241
  this.hot.columnIndexMapper.unregisterMap(this.pluginName);
239
242
  _classPrivateFieldSet(this, _collapsedColumnsMap, null);
240
243
  this.nestedHeadersPlugin = null;
244
+ this.unregisterShortcuts();
241
245
  this.clearButtons();
242
246
  super.disablePlugin();
243
247
  }
244
248
 
249
+ /**
250
+ * Register shortcuts responsible for toggling collapsible columns.
251
+ *
252
+ * @private
253
+ */
254
+ registerShortcuts() {
255
+ this.hot.getShortcutManager().getContext('grid').addShortcut({
256
+ keys: [['Enter']],
257
+ callback: () => {
258
+ var _this$headerStateMana;
259
+ const {
260
+ row,
261
+ col
262
+ } = this.hot.getSelectedRangeLast().highlight;
263
+ const {
264
+ collapsible,
265
+ isCollapsed,
266
+ columnIndex
267
+ } = (_this$headerStateMana = this.headerStateManager.getHeaderTreeNodeData(row, col)) !== null && _this$headerStateMana !== void 0 ? _this$headerStateMana : {};
268
+ if (!collapsible) {
269
+ return;
270
+ }
271
+ if (isCollapsed) {
272
+ this.expandSection({
273
+ row,
274
+ col: columnIndex
275
+ });
276
+ } else {
277
+ this.collapseSection({
278
+ row,
279
+ col: columnIndex
280
+ });
281
+ }
282
+ },
283
+ runOnlyIf: () => {
284
+ var _this$hot$getSelected;
285
+ return (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight.isHeader();
286
+ },
287
+ group: SHORTCUTS_GROUP
288
+ });
289
+ }
290
+
291
+ /**
292
+ * Unregister shortcuts responsible for toggling collapsible columns.
293
+ *
294
+ * @private
295
+ */
296
+ unregisterShortcuts() {
297
+ this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);
298
+ }
299
+
245
300
  /**
246
301
  * Clears the expand/collapse buttons.
247
302
  *
@@ -362,7 +417,7 @@ class CollapsibleColumns extends _base.BasePlugin {
362
417
  });
363
418
  let isActionPossible = filteredCoords.length > 0;
364
419
  (0, _array.arrayEach)(filteredCoords, _ref2 => {
365
- var _this$headerStateMana;
420
+ var _this$headerStateMana2;
366
421
  let {
367
422
  row,
368
423
  col: column
@@ -370,7 +425,7 @@ class CollapsibleColumns extends _base.BasePlugin {
370
425
  const {
371
426
  collapsible,
372
427
  isCollapsed
373
- } = (_this$headerStateMana = this.headerStateManager.getHeaderSettings(row, column)) !== null && _this$headerStateMana !== void 0 ? _this$headerStateMana : {};
428
+ } = (_this$headerStateMana2 = this.headerStateManager.getHeaderSettings(row, column)) !== null && _this$headerStateMana2 !== void 0 ? _this$headerStateMana2 : {};
374
429
  if (!collapsible || isCollapsed && action === 'collapse' || !isCollapsed && action === 'expand') {
375
430
  isActionPossible = false;
376
431
  return false;
@@ -442,14 +497,16 @@ class CollapsibleColumns extends _base.BasePlugin {
442
497
  * values counting from 0 to N).
443
498
  */
444
499
  onAfterGetColHeader(column, TH, headerLevel) {
445
- var _this$headerStateMana2;
500
+ var _this$headerStateMana3;
446
501
  const {
447
502
  collapsible,
448
503
  origColspan,
449
504
  isCollapsed
450
- } = (_this$headerStateMana2 = this.headerStateManager.getHeaderSettings(headerLevel, column)) !== null && _this$headerStateMana2 !== void 0 ? _this$headerStateMana2 : {};
505
+ } = (_this$headerStateMana3 = this.headerStateManager.getHeaderSettings(headerLevel, column)) !== null && _this$headerStateMana3 !== void 0 ? _this$headerStateMana3 : {};
451
506
  const isNodeCollapsible = collapsible && origColspan > 1 && column >= this.hot.getSettings().fixedColumnsStart;
507
+ const isAriaTagsEnabled = this.hot.getSettings().ariaTags;
452
508
  let collapsibleElement = TH.querySelector(`.${COLLAPSIBLE_ELEMENT_CLASS}`);
509
+ (0, _element.removeAttribute)(TH, [(0, _a11y.A11Y_EXPANDED)('')[0]]);
453
510
  if (isNodeCollapsible) {
454
511
  if (!collapsibleElement) {
455
512
  collapsibleElement = this.hot.rootDocument.createElement('div');
@@ -460,9 +517,22 @@ class CollapsibleColumns extends _base.BasePlugin {
460
517
  if (isCollapsed) {
461
518
  (0, _element.addClass)(collapsibleElement, 'collapsed');
462
519
  (0, _element.fastInnerText)(collapsibleElement, '+');
520
+
521
+ // Add ARIA tags
522
+ if (isAriaTagsEnabled) {
523
+ (0, _element.setAttribute)(TH, ...(0, _a11y.A11Y_EXPANDED)(false));
524
+ }
463
525
  } else {
464
526
  (0, _element.addClass)(collapsibleElement, 'expanded');
465
527
  (0, _element.fastInnerText)(collapsibleElement, '-');
528
+
529
+ // Add ARIA tags
530
+ if (isAriaTagsEnabled) {
531
+ (0, _element.setAttribute)(TH, ...(0, _a11y.A11Y_EXPANDED)(true));
532
+ }
533
+ }
534
+ if (isAriaTagsEnabled) {
535
+ (0, _element.setAttribute)(collapsibleElement, ...(0, _a11y.A11Y_HIDDEN)());
466
536
  }
467
537
  } else {
468
538
  var _collapsibleElement;
@@ -14,13 +14,15 @@ import { BasePlugin } from "../base/index.mjs";
14
14
  import { arrayEach, arrayFilter, arrayUnique } from "../../helpers/array.mjs";
15
15
  import { rangeEach } from "../../helpers/number.mjs";
16
16
  import { warn } from "../../helpers/console.mjs";
17
- import { addClass, hasClass, removeClass, fastInnerText } from "../../helpers/dom/element.mjs";
17
+ import { addClass, hasClass, removeClass, fastInnerText, removeAttribute, setAttribute } from "../../helpers/dom/element.mjs";
18
18
  import EventManager from "../../eventManager.mjs";
19
19
  import { stopImmediatePropagation } from "../../helpers/dom/event.mjs";
20
+ import { A11Y_EXPANDED, A11Y_HIDDEN } from "../../helpers/a11y.mjs";
20
21
  export const PLUGIN_KEY = 'collapsibleColumns';
21
22
  export const PLUGIN_PRIORITY = 290;
22
23
  const SETTING_KEYS = ['nestedHeaders'];
23
24
  const COLLAPSIBLE_ELEMENT_CLASS = 'collapsibleIndicator';
25
+ const SHORTCUTS_GROUP = PLUGIN_KEY;
24
26
  const actionDictionary = new Map([['collapse', {
25
27
  hideColumn: true,
26
28
  beforeHook: 'beforeColumnCollapse',
@@ -185,6 +187,7 @@ export class CollapsibleColumns extends BasePlugin {
185
187
  return _this.onAfterGetColHeader(...arguments);
186
188
  });
187
189
  this.addHook('beforeOnCellMouseDown', (event, coords, TD) => this.onBeforeOnCellMouseDown(event, coords, TD));
190
+ this.registerShortcuts();
188
191
  super.enablePlugin();
189
192
  // @TODO: Workaround for broken plugin initialization abstraction (#6806).
190
193
  this.updatePlugin();
@@ -232,10 +235,62 @@ export class CollapsibleColumns extends BasePlugin {
232
235
  this.hot.columnIndexMapper.unregisterMap(this.pluginName);
233
236
  _classPrivateFieldSet(this, _collapsedColumnsMap, null);
234
237
  this.nestedHeadersPlugin = null;
238
+ this.unregisterShortcuts();
235
239
  this.clearButtons();
236
240
  super.disablePlugin();
237
241
  }
238
242
 
243
+ /**
244
+ * Register shortcuts responsible for toggling collapsible columns.
245
+ *
246
+ * @private
247
+ */
248
+ registerShortcuts() {
249
+ this.hot.getShortcutManager().getContext('grid').addShortcut({
250
+ keys: [['Enter']],
251
+ callback: () => {
252
+ var _this$headerStateMana;
253
+ const {
254
+ row,
255
+ col
256
+ } = this.hot.getSelectedRangeLast().highlight;
257
+ const {
258
+ collapsible,
259
+ isCollapsed,
260
+ columnIndex
261
+ } = (_this$headerStateMana = this.headerStateManager.getHeaderTreeNodeData(row, col)) !== null && _this$headerStateMana !== void 0 ? _this$headerStateMana : {};
262
+ if (!collapsible) {
263
+ return;
264
+ }
265
+ if (isCollapsed) {
266
+ this.expandSection({
267
+ row,
268
+ col: columnIndex
269
+ });
270
+ } else {
271
+ this.collapseSection({
272
+ row,
273
+ col: columnIndex
274
+ });
275
+ }
276
+ },
277
+ runOnlyIf: () => {
278
+ var _this$hot$getSelected;
279
+ return (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight.isHeader();
280
+ },
281
+ group: SHORTCUTS_GROUP
282
+ });
283
+ }
284
+
285
+ /**
286
+ * Unregister shortcuts responsible for toggling collapsible columns.
287
+ *
288
+ * @private
289
+ */
290
+ unregisterShortcuts() {
291
+ this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);
292
+ }
293
+
239
294
  /**
240
295
  * Clears the expand/collapse buttons.
241
296
  *
@@ -356,7 +411,7 @@ export class CollapsibleColumns extends BasePlugin {
356
411
  });
357
412
  let isActionPossible = filteredCoords.length > 0;
358
413
  arrayEach(filteredCoords, _ref2 => {
359
- var _this$headerStateMana;
414
+ var _this$headerStateMana2;
360
415
  let {
361
416
  row,
362
417
  col: column
@@ -364,7 +419,7 @@ export class CollapsibleColumns extends BasePlugin {
364
419
  const {
365
420
  collapsible,
366
421
  isCollapsed
367
- } = (_this$headerStateMana = this.headerStateManager.getHeaderSettings(row, column)) !== null && _this$headerStateMana !== void 0 ? _this$headerStateMana : {};
422
+ } = (_this$headerStateMana2 = this.headerStateManager.getHeaderSettings(row, column)) !== null && _this$headerStateMana2 !== void 0 ? _this$headerStateMana2 : {};
368
423
  if (!collapsible || isCollapsed && action === 'collapse' || !isCollapsed && action === 'expand') {
369
424
  isActionPossible = false;
370
425
  return false;
@@ -436,14 +491,16 @@ export class CollapsibleColumns extends BasePlugin {
436
491
  * values counting from 0 to N).
437
492
  */
438
493
  onAfterGetColHeader(column, TH, headerLevel) {
439
- var _this$headerStateMana2;
494
+ var _this$headerStateMana3;
440
495
  const {
441
496
  collapsible,
442
497
  origColspan,
443
498
  isCollapsed
444
- } = (_this$headerStateMana2 = this.headerStateManager.getHeaderSettings(headerLevel, column)) !== null && _this$headerStateMana2 !== void 0 ? _this$headerStateMana2 : {};
499
+ } = (_this$headerStateMana3 = this.headerStateManager.getHeaderSettings(headerLevel, column)) !== null && _this$headerStateMana3 !== void 0 ? _this$headerStateMana3 : {};
445
500
  const isNodeCollapsible = collapsible && origColspan > 1 && column >= this.hot.getSettings().fixedColumnsStart;
501
+ const isAriaTagsEnabled = this.hot.getSettings().ariaTags;
446
502
  let collapsibleElement = TH.querySelector(`.${COLLAPSIBLE_ELEMENT_CLASS}`);
503
+ removeAttribute(TH, [A11Y_EXPANDED('')[0]]);
447
504
  if (isNodeCollapsible) {
448
505
  if (!collapsibleElement) {
449
506
  collapsibleElement = this.hot.rootDocument.createElement('div');
@@ -454,9 +511,22 @@ export class CollapsibleColumns extends BasePlugin {
454
511
  if (isCollapsed) {
455
512
  addClass(collapsibleElement, 'collapsed');
456
513
  fastInnerText(collapsibleElement, '+');
514
+
515
+ // Add ARIA tags
516
+ if (isAriaTagsEnabled) {
517
+ setAttribute(TH, ...A11Y_EXPANDED(false));
518
+ }
457
519
  } else {
458
520
  addClass(collapsibleElement, 'expanded');
459
521
  fastInnerText(collapsibleElement, '-');
522
+
523
+ // Add ARIA tags
524
+ if (isAriaTagsEnabled) {
525
+ setAttribute(TH, ...A11Y_EXPANDED(true));
526
+ }
527
+ }
528
+ if (isAriaTagsEnabled) {
529
+ setAttribute(collapsibleElement, ...A11Y_HIDDEN());
460
530
  }
461
531
  } else {
462
532
  var _collapsibleElement;
@@ -15,13 +15,17 @@ var _utils = require("./utils");
15
15
  var _domHelpers = require("./domHelpers");
16
16
  var _rootComparator = require("./rootComparator");
17
17
  var _sortService = require("./sortService");
18
+ var _a11y = require("../../helpers/a11y");
18
19
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
20
  const PLUGIN_KEY = 'columnSorting';
20
21
  exports.PLUGIN_KEY = PLUGIN_KEY;
21
22
  const PLUGIN_PRIORITY = 50;
22
23
  exports.PLUGIN_PRIORITY = PLUGIN_PRIORITY;
23
24
  const APPEND_COLUMN_CONFIG_STRATEGY = 'append';
25
+ exports.APPEND_COLUMN_CONFIG_STRATEGY = APPEND_COLUMN_CONFIG_STRATEGY;
24
26
  const REPLACE_COLUMN_CONFIG_STRATEGY = 'replace';
27
+ exports.REPLACE_COLUMN_CONFIG_STRATEGY = REPLACE_COLUMN_CONFIG_STRATEGY;
28
+ const SHORTCUTS_GROUP = PLUGIN_KEY;
25
29
  (0, _sortService.registerRootComparator)(PLUGIN_KEY, _rootComparator.rootComparator);
26
30
  _pluginHooks.default.getSingleton().register('beforeColumnSort');
27
31
  _pluginHooks.default.getSingleton().register('afterColumnSort');
@@ -156,6 +160,7 @@ class ColumnSorting extends _base.BasePlugin {
156
160
  if (this.hot.view) {
157
161
  this.loadOrSortBySettings();
158
162
  }
163
+ this.registerShortcuts();
159
164
  super.enablePlugin();
160
165
  }
161
166
 
@@ -186,9 +191,43 @@ class ColumnSorting extends _base.BasePlugin {
186
191
  this.columnStatesManager.destroy();
187
192
  this.columnMetaCache = null;
188
193
  this.columnStatesManager = null;
194
+ this.unregisterShortcuts();
189
195
  super.disablePlugin();
190
196
  }
191
197
 
198
+ /**
199
+ * Register shortcuts responsible for toggling column sorting functionality.
200
+ *
201
+ * @private
202
+ */
203
+ registerShortcuts() {
204
+ this.hot.getShortcutManager().getContext('grid').addShortcut({
205
+ keys: [['Enter']],
206
+ callback: () => {
207
+ const {
208
+ highlight
209
+ } = this.hot.getSelectedRangeLast();
210
+ if (highlight.row === -1 && highlight.col >= 0) {
211
+ this.sort(this.getColumnNextConfig(highlight.col));
212
+ }
213
+ },
214
+ runOnlyIf: () => {
215
+ var _this$hot$getSelected;
216
+ return (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight.isHeader();
217
+ },
218
+ group: SHORTCUTS_GROUP
219
+ });
220
+ }
221
+
222
+ /**
223
+ * Unregister shortcuts responsible for toggling column sorting functionality.
224
+ *
225
+ * @private
226
+ */
227
+ unregisterShortcuts() {
228
+ this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);
229
+ }
230
+
192
231
  // DIFF - MultiColumnSorting & ColumnSorting: changed function documentation.
193
232
  /**
194
233
  * Sorts the table by chosen columns and orders.
@@ -608,6 +647,10 @@ class ColumnSorting extends _base.BasePlugin {
608
647
  const showSortIndicator = pluginSettingsForColumn.indicator;
609
648
  const headerActionEnabled = pluginSettingsForColumn.headerAction;
610
649
  this.updateHeaderClasses(headerSpanElement, this.columnStatesManager, column, showSortIndicator, headerActionEnabled);
650
+ if (this.hot.getSettings().ariaTags) {
651
+ const currentSortState = this.columnStatesManager.getSortOrderOfColumn(column);
652
+ (0, _element.setAttribute)(TH, ...(0, _a11y.A11Y_SORT)(currentSortState ? `${currentSortState}ending` : 'none'));
653
+ }
611
654
  }
612
655
 
613
656
  /**
@@ -1,5 +1,5 @@
1
1
  import "core-js/modules/es.array.push.js";
2
- import { addClass, removeClass } from "../../helpers/dom/element.mjs";
2
+ import { addClass, removeClass, setAttribute } from "../../helpers/dom/element.mjs";
3
3
  import { isUndefined, isDefined } from "../../helpers/mixed.mjs";
4
4
  import { isObject } from "../../helpers/object.mjs";
5
5
  import { isFunction } from "../../helpers/function.mjs";
@@ -12,10 +12,12 @@ import { getNextSortOrder, areValidSortStates, getHeaderSpanElement, isFirstLeve
12
12
  import { getClassesToRemove, getClassesToAdd } from "./domHelpers.mjs";
13
13
  import { rootComparator } from "./rootComparator.mjs";
14
14
  import { registerRootComparator, sort } from "./sortService/index.mjs";
15
+ import { A11Y_SORT } from "../../helpers/a11y.mjs";
15
16
  export const PLUGIN_KEY = 'columnSorting';
16
17
  export const PLUGIN_PRIORITY = 50;
17
- const APPEND_COLUMN_CONFIG_STRATEGY = 'append';
18
- const REPLACE_COLUMN_CONFIG_STRATEGY = 'replace';
18
+ export const APPEND_COLUMN_CONFIG_STRATEGY = 'append';
19
+ export const REPLACE_COLUMN_CONFIG_STRATEGY = 'replace';
20
+ const SHORTCUTS_GROUP = PLUGIN_KEY;
19
21
  registerRootComparator(PLUGIN_KEY, rootComparator);
20
22
  Hooks.getSingleton().register('beforeColumnSort');
21
23
  Hooks.getSingleton().register('afterColumnSort');
@@ -150,6 +152,7 @@ export class ColumnSorting extends BasePlugin {
150
152
  if (this.hot.view) {
151
153
  this.loadOrSortBySettings();
152
154
  }
155
+ this.registerShortcuts();
153
156
  super.enablePlugin();
154
157
  }
155
158
 
@@ -180,9 +183,43 @@ export class ColumnSorting extends BasePlugin {
180
183
  this.columnStatesManager.destroy();
181
184
  this.columnMetaCache = null;
182
185
  this.columnStatesManager = null;
186
+ this.unregisterShortcuts();
183
187
  super.disablePlugin();
184
188
  }
185
189
 
190
+ /**
191
+ * Register shortcuts responsible for toggling column sorting functionality.
192
+ *
193
+ * @private
194
+ */
195
+ registerShortcuts() {
196
+ this.hot.getShortcutManager().getContext('grid').addShortcut({
197
+ keys: [['Enter']],
198
+ callback: () => {
199
+ const {
200
+ highlight
201
+ } = this.hot.getSelectedRangeLast();
202
+ if (highlight.row === -1 && highlight.col >= 0) {
203
+ this.sort(this.getColumnNextConfig(highlight.col));
204
+ }
205
+ },
206
+ runOnlyIf: () => {
207
+ var _this$hot$getSelected;
208
+ return (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight.isHeader();
209
+ },
210
+ group: SHORTCUTS_GROUP
211
+ });
212
+ }
213
+
214
+ /**
215
+ * Unregister shortcuts responsible for toggling column sorting functionality.
216
+ *
217
+ * @private
218
+ */
219
+ unregisterShortcuts() {
220
+ this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);
221
+ }
222
+
186
223
  // DIFF - MultiColumnSorting & ColumnSorting: changed function documentation.
187
224
  /**
188
225
  * Sorts the table by chosen columns and orders.
@@ -602,6 +639,10 @@ export class ColumnSorting extends BasePlugin {
602
639
  const showSortIndicator = pluginSettingsForColumn.indicator;
603
640
  const headerActionEnabled = pluginSettingsForColumn.headerAction;
604
641
  this.updateHeaderClasses(headerSpanElement, this.columnStatesManager, column, showSortIndicator, headerActionEnabled);
642
+ if (this.hot.getSettings().ariaTags) {
643
+ const currentSortState = this.columnStatesManager.getSortOrderOfColumn(column);
644
+ setAttribute(TH, ...A11Y_SORT(currentSortState ? `${currentSortState}ending` : 'none'));
645
+ }
605
646
  }
606
647
 
607
648
  /**
@@ -4,4 +4,6 @@ exports.__esModule = true;
4
4
  var _columnSorting = require("./columnSorting");
5
5
  exports.PLUGIN_KEY = _columnSorting.PLUGIN_KEY;
6
6
  exports.PLUGIN_PRIORITY = _columnSorting.PLUGIN_PRIORITY;
7
- exports.ColumnSorting = _columnSorting.ColumnSorting;
7
+ exports.ColumnSorting = _columnSorting.ColumnSorting;
8
+ exports.APPEND_COLUMN_CONFIG_STRATEGY = _columnSorting.APPEND_COLUMN_CONFIG_STRATEGY;
9
+ exports.REPLACE_COLUMN_CONFIG_STRATEGY = _columnSorting.REPLACE_COLUMN_CONFIG_STRATEGY;
@@ -1 +1 @@
1
- export { PLUGIN_KEY, PLUGIN_PRIORITY, ColumnSorting } from "./columnSorting.mjs";
1
+ export { PLUGIN_KEY, PLUGIN_PRIORITY, ColumnSorting, APPEND_COLUMN_CONFIG_STRATEGY, REPLACE_COLUMN_CONFIG_STRATEGY } from "./columnSorting.mjs";
@@ -165,6 +165,7 @@ class CommentEditor {
165
165
  this.rootDocument.body.appendChild(this.container);
166
166
  (0, _element.addClass)(editor, CommentEditor.CLASS_EDITOR);
167
167
  (0, _element.addClass)(textArea, CommentEditor.CLASS_INPUT);
168
+ textArea.setAttribute('data-hot-input', true);
168
169
  editor.appendChild(textArea);
169
170
  this.container.appendChild(editor);
170
171
  return editor;
@@ -162,6 +162,7 @@ class CommentEditor {
162
162
  this.rootDocument.body.appendChild(this.container);
163
163
  addClass(editor, CommentEditor.CLASS_EDITOR);
164
164
  addClass(textArea, CommentEditor.CLASS_INPUT);
165
+ textArea.setAttribute('data-hot-input', true);
165
166
  editor.appendChild(textArea);
166
167
  this.container.appendChild(editor);
167
168
  return editor;