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
@@ -12,8 +12,16 @@ exports.CellRange = _range.default;
12
12
  var _core = _interopRequireDefault(require("./facade/core"));
13
13
  exports.default = _core.default;
14
14
  exports.Core = _core.default;
15
- var _selection = _interopRequireDefault(require("./selection"));
16
- exports.Selection = _selection.default;
15
+ var _selection = require("./selection");
16
+ exports.Selection = _selection.Selection;
17
+ exports.HIGHLIGHT_ACTIVE_HEADER_TYPE = _selection.ACTIVE_HEADER_TYPE;
18
+ exports.HIGHLIGHT_AREA_TYPE = _selection.AREA_TYPE;
19
+ exports.HIGHLIGHT_FOCUS_TYPE = _selection.FOCUS_TYPE;
20
+ exports.HIGHLIGHT_FILL_TYPE = _selection.FILL_TYPE;
21
+ exports.HIGHLIGHT_HEADER_TYPE = _selection.HEADER_TYPE;
22
+ exports.HIGHLIGHT_ROW_TYPE = _selection.ROW_TYPE;
23
+ exports.HIGHLIGHT_COLUMN_TYPE = _selection.COLUMN_TYPE;
24
+ exports.HIGHLIGHT_CUSTOM_SELECTION_TYPE = _selection.CUSTOM_SELECTION_TYPE;
17
25
  var Renderer = _interopRequireWildcard(require("./renderer"));
18
26
  exports.Renderer = Renderer;
19
27
  var _orderView = require("./utils/orderView");
@@ -3,8 +3,8 @@ import ViewportRowsCalculator from "./calculator/viewportRows.mjs";
3
3
  import CellCoords from "./cell/coords.mjs";
4
4
  import CellRange from "./cell/range.mjs";
5
5
  import Walkontable from "./facade/core.mjs";
6
- import Selection from "./selection.mjs";
6
+ import { Selection, ACTIVE_HEADER_TYPE, AREA_TYPE, FOCUS_TYPE, FILL_TYPE, HEADER_TYPE, ROW_TYPE, COLUMN_TYPE, CUSTOM_SELECTION_TYPE } from "./selection/index.mjs";
7
7
  import * as Renderer from "./renderer/index.mjs";
8
8
  import { OrderView, SharedOrderView } from "./utils/orderView/index.mjs";
9
9
  import { getListenersCounter } from "../../../eventManager.mjs";
10
- export { ViewportColumnsCalculator, ViewportRowsCalculator, CellCoords, CellRange, Walkontable as default, Walkontable as Core, Selection, Renderer, OrderView, SharedOrderView, getListenersCounter };
10
+ export { ViewportColumnsCalculator, ViewportRowsCalculator, CellCoords, CellRange, Walkontable as default, Walkontable as Core, Selection, ACTIVE_HEADER_TYPE as HIGHLIGHT_ACTIVE_HEADER_TYPE, AREA_TYPE as HIGHLIGHT_AREA_TYPE, FOCUS_TYPE as HIGHLIGHT_FOCUS_TYPE, FILL_TYPE as HIGHLIGHT_FILL_TYPE, HEADER_TYPE as HIGHLIGHT_HEADER_TYPE, ROW_TYPE as HIGHLIGHT_ROW_TYPE, COLUMN_TYPE as HIGHLIGHT_COLUMN_TYPE, CUSTOM_SELECTION_TYPE as HIGHLIGHT_CUSTOM_SELECTION_TYPE, Renderer, OrderView, SharedOrderView, getListenersCounter };
@@ -8,6 +8,7 @@ var _array = require("../../../../helpers/array");
8
8
  var _console = require("../../../../helpers/console");
9
9
  var _constants = require("./constants");
10
10
  var _clone = _interopRequireDefault(require("../core/clone"));
11
+ var _a11y = require("../../../../helpers/a11y");
11
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
13
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
13
14
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
@@ -241,7 +242,8 @@ class Overlay {
241
242
  throw new Error(`Clone type "${this.type}" is not supported.`);
242
243
  }
243
244
  const {
244
- wtTable
245
+ wtTable,
246
+ wtSettings
245
247
  } = this.wot;
246
248
  const {
247
249
  rootDocument,
@@ -260,7 +262,16 @@ class Overlay {
260
262
  } else {
261
263
  clone.style.left = 0;
262
264
  }
265
+ if (wtSettings.getSetting('ariaTags')) {
266
+ (0, _element.setAttribute)(clone, [(0, _a11y.A11Y_PRESENTATION)()]);
267
+ }
263
268
  clonedTable.className = wtTable.TABLE.className;
269
+
270
+ // Clone the main table's `role` attribute to the cloned table.
271
+ const mainTableRole = wtTable.TABLE.getAttribute('role');
272
+ if (mainTableRole) {
273
+ clonedTable.setAttribute('role', wtTable.TABLE.getAttribute('role'));
274
+ }
264
275
  clone.appendChild(clonedTable);
265
276
  tableParent.appendChild(clone);
266
277
  const preventOverflow = this.wtSettings.getSetting('preventOverflow');
@@ -281,7 +292,7 @@ class Overlay {
281
292
  // todo ioc , or factor func if used only here
282
293
  event: this.wot.wtEvent,
283
294
  // todo ioc , or factory func if used only here
284
- selections: this.wot.selections // todo ioc , or factory func if used only here
295
+ selectionManager: this.wot.selectionManager // todo ioc , or factory func if used only here
285
296
  });
286
297
  }
287
298
 
@@ -2,12 +2,13 @@ import "core-js/modules/es.error.cause.js";
2
2
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
3
3
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
4
4
  function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
5
- import { getScrollableElement, getTrimmingContainer, getScrollbarWidth } from "../../../../helpers/dom/element.mjs";
5
+ import { getScrollableElement, getTrimmingContainer, getScrollbarWidth, setAttribute } from "../../../../helpers/dom/element.mjs";
6
6
  import { defineGetter } from "../../../../helpers/object.mjs";
7
7
  import { arrayEach } from "../../../../helpers/array.mjs";
8
8
  import { warn } from "../../../../helpers/console.mjs";
9
9
  import { CLONE_TYPES, CLONE_CLASS_NAMES, CLONE_TOP, CLONE_INLINE_START } from "./constants.mjs";
10
10
  import Clone from "../core/clone.mjs";
11
+ import { A11Y_PRESENTATION } from "../../../../helpers/a11y.mjs";
11
12
  /**
12
13
  * Creates an overlay over the original Walkontable instance. The overlay renders the clone of the original Walkontable
13
14
  * and (optionally) implements behavior needed for native horizontal and vertical scrolling.
@@ -237,7 +238,8 @@ export class Overlay {
237
238
  throw new Error(`Clone type "${this.type}" is not supported.`);
238
239
  }
239
240
  const {
240
- wtTable
241
+ wtTable,
242
+ wtSettings
241
243
  } = this.wot;
242
244
  const {
243
245
  rootDocument,
@@ -256,7 +258,16 @@ export class Overlay {
256
258
  } else {
257
259
  clone.style.left = 0;
258
260
  }
261
+ if (wtSettings.getSetting('ariaTags')) {
262
+ setAttribute(clone, [A11Y_PRESENTATION()]);
263
+ }
259
264
  clonedTable.className = wtTable.TABLE.className;
265
+
266
+ // Clone the main table's `role` attribute to the cloned table.
267
+ const mainTableRole = wtTable.TABLE.getAttribute('role');
268
+ if (mainTableRole) {
269
+ clonedTable.setAttribute('role', wtTable.TABLE.getAttribute('role'));
270
+ }
260
271
  clone.appendChild(clonedTable);
261
272
  tableParent.appendChild(clone);
262
273
  const preventOverflow = this.wtSettings.getSetting('preventOverflow');
@@ -277,7 +288,7 @@ export class Overlay {
277
288
  // todo ioc , or factor func if used only here
278
289
  event: this.wot.wtEvent,
279
290
  // todo ioc , or factory func if used only here
280
- selections: this.wot.selections // todo ioc , or factory func if used only here
291
+ selectionManager: this.wot.selectionManager // todo ioc , or factory func if used only here
281
292
  });
282
293
  }
283
294
 
@@ -5,6 +5,7 @@ require("core-js/modules/es.error.cause.js");
5
5
  var _element = require("../../../../helpers/dom/element");
6
6
  var _inlineStart = _interopRequireDefault(require("../table/inlineStart"));
7
7
  var _base = require("./_base");
8
+ var _selection = require("../selection");
8
9
  var _constants = require("./constants");
9
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
11
  /**
@@ -172,15 +173,10 @@ class InlineStartOverlay extends _base.Overlay {
172
173
  * Adjust overlay root childs size.
173
174
  */
174
175
  adjustRootChildrenSize() {
175
- var _selections$getCell$g;
176
176
  const {
177
177
  holder
178
178
  } = this.clone.wtTable;
179
- const {
180
- selections
181
- } = this.wot;
182
- const facade = this.facadeGetter();
183
- const selectionCornerOffset = Math.abs((_selections$getCell$g = selections === null || selections === void 0 ? void 0 : selections.getCell().getBorder(facade).cornerCenterPointOffset) !== null && _selections$getCell$g !== void 0 ? _selections$getCell$g : 0);
179
+ const selectionCornerOffset = this.wot.selectionManager.getFocusSelection() ? parseInt(_selection.CORNER_DEFAULT_STYLE.width, 10) / 2 : 0;
184
180
  this.clone.wtTable.hider.style.height = this.hider.style.height;
185
181
  holder.style.height = holder.parentNode.style.height;
186
182
  // Add selection corner protruding part to the holder total width to make sure that
@@ -2,6 +2,7 @@ import "core-js/modules/es.error.cause.js";
2
2
  import { addClass, getScrollbarWidth, getScrollLeft, getWindowScrollTop, hasClass, outerWidth, removeClass, setOverlayPosition, resetCssTransform } from "../../../../helpers/dom/element.mjs";
3
3
  import InlineStartOverlayTable from "../table/inlineStart.mjs";
4
4
  import { Overlay } from "./_base.mjs";
5
+ import { CORNER_DEFAULT_STYLE } from "../selection/index.mjs";
5
6
  import { CLONE_INLINE_START } from "./constants.mjs";
6
7
  /**
7
8
  * @class InlineStartOverlay
@@ -168,15 +169,10 @@ export class InlineStartOverlay extends Overlay {
168
169
  * Adjust overlay root childs size.
169
170
  */
170
171
  adjustRootChildrenSize() {
171
- var _selections$getCell$g;
172
172
  const {
173
173
  holder
174
174
  } = this.clone.wtTable;
175
- const {
176
- selections
177
- } = this.wot;
178
- const facade = this.facadeGetter();
179
- const selectionCornerOffset = Math.abs((_selections$getCell$g = selections === null || selections === void 0 ? void 0 : selections.getCell().getBorder(facade).cornerCenterPointOffset) !== null && _selections$getCell$g !== void 0 ? _selections$getCell$g : 0);
175
+ const selectionCornerOffset = this.wot.selectionManager.getFocusSelection() ? parseInt(CORNER_DEFAULT_STYLE.width, 10) / 2 : 0;
180
176
  this.clone.wtTable.hider.style.height = this.hider.style.height;
181
177
  holder.style.height = holder.parentNode.style.height;
182
178
  // Add selection corner protruding part to the holder total width to make sure that
@@ -5,6 +5,7 @@ require("core-js/modules/es.error.cause.js");
5
5
  var _element = require("../../../../helpers/dom/element");
6
6
  var _top = _interopRequireDefault(require("./../table/top"));
7
7
  var _base = require("./_base");
8
+ var _selection = require("../selection");
8
9
  var _constants = require("./constants");
9
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
11
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
@@ -199,15 +200,10 @@ class TopOverlay extends _base.Overlay {
199
200
  * Adjust overlay root childs size.
200
201
  */
201
202
  adjustRootChildrenSize() {
202
- var _selections$getCell$g;
203
203
  const {
204
204
  holder
205
205
  } = this.clone.wtTable;
206
- const {
207
- selections
208
- } = this.wot;
209
- const facade = this.facadeGetter();
210
- const selectionCornerOffset = Math.abs((_selections$getCell$g = selections === null || selections === void 0 ? void 0 : selections.getCell().getBorder(facade).cornerCenterPointOffset) !== null && _selections$getCell$g !== void 0 ? _selections$getCell$g : 0);
206
+ const selectionCornerOffset = this.wot.selectionManager.getFocusSelection() ? parseInt(_selection.CORNER_DEFAULT_STYLE.height, 10) / 2 : 0;
211
207
  this.clone.wtTable.hider.style.width = this.hider.style.width;
212
208
  holder.style.width = holder.parentNode.style.width;
213
209
  // Add selection corner protruding part to the holder total height to make sure that
@@ -5,6 +5,7 @@ function _toPrimitive(input, hint) { if (typeof input !== "object" || input ===
5
5
  import { addClass, getScrollbarWidth, getScrollTop, getWindowScrollLeft, hasClass, outerHeight, removeClass, setOverlayPosition, resetCssTransform } from "../../../../helpers/dom/element.mjs";
6
6
  import TopOverlayTable from "./../table/top.mjs";
7
7
  import { Overlay } from "./_base.mjs";
8
+ import { CORNER_DEFAULT_STYLE } from "../selection/index.mjs";
8
9
  import { CLONE_TOP } from "./constants.mjs";
9
10
  /**
10
11
  * @class TopOverlay
@@ -195,15 +196,10 @@ export class TopOverlay extends Overlay {
195
196
  * Adjust overlay root childs size.
196
197
  */
197
198
  adjustRootChildrenSize() {
198
- var _selections$getCell$g;
199
199
  const {
200
200
  holder
201
201
  } = this.clone.wtTable;
202
- const {
203
- selections
204
- } = this.wot;
205
- const facade = this.facadeGetter();
206
- const selectionCornerOffset = Math.abs((_selections$getCell$g = selections === null || selections === void 0 ? void 0 : selections.getCell().getBorder(facade).cornerCenterPointOffset) !== null && _selections$getCell$g !== void 0 ? _selections$getCell$g : 0);
202
+ const selectionCornerOffset = this.wot.selectionManager.getFocusSelection() ? parseInt(CORNER_DEFAULT_STYLE.height, 10) / 2 : 0;
207
203
  this.clone.wtTable.hider.style.width = this.hider.style.width;
208
204
  holder.style.width = holder.parentNode.style.width;
209
205
  // Add selection corner protruding part to the holder total height to make sure that
@@ -4,6 +4,7 @@ exports.__esModule = true;
4
4
  var _element = require("./../../../../helpers/dom/element");
5
5
  var _orderView = require("./../utils/orderView");
6
6
  var _base = _interopRequireDefault(require("./_base"));
7
+ var _a11y = require("../../../../helpers/a11y");
7
8
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8
9
  /**
9
10
  * Cell renderer responsible for managing (inserting, tracking, rendering) TD elements.
@@ -82,7 +83,16 @@ class CellsRenderer extends _base.default {
82
83
  }
83
84
  TD.removeAttribute('style');
84
85
  TD.removeAttribute('dir');
86
+
87
+ // Remove all accessibility-related attributes for the cell to start fresh.
88
+ (0, _element.removeAttribute)(TD, [new RegExp('aria-(.*)'), new RegExp('role')]);
85
89
  this.table.cellRenderer(sourceRowIndex, sourceColumnIndex, TD);
90
+ if (this.table.isAriaEnabled()) {
91
+ var _this$table$rowUtils$, _this$table$rowUtils;
92
+ (0, _element.setAttribute)(TD, [...(TD.hasAttribute('role') ? [] : [(0, _a11y.A11Y_GRIDCELL)()]), (0, _a11y.A11Y_TABINDEX)(-1),
93
+ // `aria-colindex` is incremented by both tbody and thead rows.
94
+ (0, _a11y.A11Y_COLINDEX)(sourceColumnIndex + ((_this$table$rowUtils$ = (_this$table$rowUtils = this.table.rowUtils) === null || _this$table$rowUtils === void 0 || (_this$table$rowUtils = _this$table$rowUtils.dataAccessObject) === null || _this$table$rowUtils === void 0 ? void 0 : _this$table$rowUtils.rowHeaders.length) !== null && _this$table$rowUtils$ !== void 0 ? _this$table$rowUtils$ : 0) + 1)]);
95
+ }
86
96
  }
87
97
  orderView.end();
88
98
  }
@@ -1,6 +1,7 @@
1
- import { hasClass } from "./../../../../helpers/dom/element.mjs";
1
+ import { hasClass, removeAttribute, setAttribute } from "./../../../../helpers/dom/element.mjs";
2
2
  import { SharedOrderView } from "./../utils/orderView/index.mjs";
3
3
  import BaseRenderer from "./_base.mjs";
4
+ import { A11Y_COLINDEX, A11Y_GRIDCELL, A11Y_TABINDEX } from "../../../../helpers/a11y.mjs";
4
5
  /**
5
6
  * Cell renderer responsible for managing (inserting, tracking, rendering) TD elements.
6
7
  *
@@ -78,7 +79,16 @@ export default class CellsRenderer extends BaseRenderer {
78
79
  }
79
80
  TD.removeAttribute('style');
80
81
  TD.removeAttribute('dir');
82
+
83
+ // Remove all accessibility-related attributes for the cell to start fresh.
84
+ removeAttribute(TD, [new RegExp('aria-(.*)'), new RegExp('role')]);
81
85
  this.table.cellRenderer(sourceRowIndex, sourceColumnIndex, TD);
86
+ if (this.table.isAriaEnabled()) {
87
+ var _this$table$rowUtils$, _this$table$rowUtils;
88
+ setAttribute(TD, [...(TD.hasAttribute('role') ? [] : [A11Y_GRIDCELL()]), A11Y_TABINDEX(-1),
89
+ // `aria-colindex` is incremented by both tbody and thead rows.
90
+ A11Y_COLINDEX(sourceColumnIndex + ((_this$table$rowUtils$ = (_this$table$rowUtils = this.table.rowUtils) === null || _this$table$rowUtils === void 0 || (_this$table$rowUtils = _this$table$rowUtils.dataAccessObject) === null || _this$table$rowUtils === void 0 ? void 0 : _this$table$rowUtils.rowHeaders.length) !== null && _this$table$rowUtils$ !== void 0 ? _this$table$rowUtils$ : 0) + 1)]);
91
+ }
82
92
  }
83
93
  orderView.end();
84
94
  }
@@ -3,6 +3,7 @@
3
3
  exports.__esModule = true;
4
4
  var _element = require("./../../../../helpers/dom/element");
5
5
  var _base = _interopRequireDefault(require("./_base"));
6
+ var _a11y = require("../../../../helpers/a11y");
6
7
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
7
8
  /**
8
9
  * Column headers renderer responsible for managing (inserting, tracking, rendering) TR and TH elements.
@@ -69,6 +70,9 @@ class ColumnHeadersRenderer extends _base.default {
69
70
  const {
70
71
  columnHeadersCount
71
72
  } = this.table;
73
+ if (this.table.isAriaEnabled()) {
74
+ (0, _element.setAttribute)(this.rootNode, [(0, _a11y.A11Y_PRESENTATION)()]);
75
+ }
72
76
  for (let rowHeaderIndex = 0; rowHeaderIndex < columnHeadersCount; rowHeaderIndex += 1) {
73
77
  const {
74
78
  columnHeaderFunctions,
@@ -76,12 +80,18 @@ class ColumnHeadersRenderer extends _base.default {
76
80
  rowHeadersCount
77
81
  } = this.table;
78
82
  const TR = this.rootNode.childNodes[rowHeaderIndex];
83
+ if (this.table.isAriaEnabled()) {
84
+ (0, _element.setAttribute)(TR, [(0, _a11y.A11Y_ROW)(), (0, _a11y.A11Y_ROWINDEX)(rowHeaderIndex + 1)]);
85
+ }
79
86
  for (let renderedColumnIndex = -1 * rowHeadersCount; renderedColumnIndex < columnsToRender; renderedColumnIndex += 1) {
80
87
  // eslint-disable-line max-len
81
88
  const sourceColumnIndex = this.table.renderedColumnToSource(renderedColumnIndex);
82
89
  const TH = TR.childNodes[renderedColumnIndex + rowHeadersCount];
83
90
  TH.className = '';
84
91
  TH.removeAttribute('style');
92
+ if (this.table.isAriaEnabled()) {
93
+ (0, _element.setAttribute)(TH, [(0, _a11y.A11Y_COLINDEX)(renderedColumnIndex + 1 + this.table.rowHeadersCount), (0, _a11y.A11Y_TABINDEX)(-1), ...(renderedColumnIndex < 0 ? [(0, _a11y.A11Y_PRESENTATION)()] : [(0, _a11y.A11Y_COLUMNHEADER)(), (0, _a11y.A11Y_SCOPE_COL)()])]);
94
+ }
85
95
  columnHeaderFunctions[rowHeaderIndex](sourceColumnIndex, TH, rowHeaderIndex);
86
96
  }
87
97
  }
@@ -1,5 +1,6 @@
1
- import { empty } from "./../../../../helpers/dom/element.mjs";
1
+ import { empty, setAttribute } from "./../../../../helpers/dom/element.mjs";
2
2
  import BaseRenderer from "./_base.mjs";
3
+ import { A11Y_COLINDEX, A11Y_COLUMNHEADER, A11Y_PRESENTATION, A11Y_ROW, A11Y_ROWINDEX, A11Y_SCOPE_COL, A11Y_TABINDEX } from "../../../../helpers/a11y.mjs";
3
4
  /**
4
5
  * Column headers renderer responsible for managing (inserting, tracking, rendering) TR and TH elements.
5
6
  *
@@ -65,6 +66,9 @@ export default class ColumnHeadersRenderer extends BaseRenderer {
65
66
  const {
66
67
  columnHeadersCount
67
68
  } = this.table;
69
+ if (this.table.isAriaEnabled()) {
70
+ setAttribute(this.rootNode, [A11Y_PRESENTATION()]);
71
+ }
68
72
  for (let rowHeaderIndex = 0; rowHeaderIndex < columnHeadersCount; rowHeaderIndex += 1) {
69
73
  const {
70
74
  columnHeaderFunctions,
@@ -72,12 +76,18 @@ export default class ColumnHeadersRenderer extends BaseRenderer {
72
76
  rowHeadersCount
73
77
  } = this.table;
74
78
  const TR = this.rootNode.childNodes[rowHeaderIndex];
79
+ if (this.table.isAriaEnabled()) {
80
+ setAttribute(TR, [A11Y_ROW(), A11Y_ROWINDEX(rowHeaderIndex + 1)]);
81
+ }
75
82
  for (let renderedColumnIndex = -1 * rowHeadersCount; renderedColumnIndex < columnsToRender; renderedColumnIndex += 1) {
76
83
  // eslint-disable-line max-len
77
84
  const sourceColumnIndex = this.table.renderedColumnToSource(renderedColumnIndex);
78
85
  const TH = TR.childNodes[renderedColumnIndex + rowHeadersCount];
79
86
  TH.className = '';
80
87
  TH.removeAttribute('style');
88
+ if (this.table.isAriaEnabled()) {
89
+ setAttribute(TH, [A11Y_COLINDEX(renderedColumnIndex + 1 + this.table.rowHeadersCount), A11Y_TABINDEX(-1), ...(renderedColumnIndex < 0 ? [A11Y_PRESENTATION()] : [A11Y_COLUMNHEADER(), A11Y_SCOPE_COL()])]);
90
+ }
81
91
  columnHeaderFunctions[rowHeaderIndex](sourceColumnIndex, TH, rowHeaderIndex);
82
92
  }
83
93
  }
@@ -3,6 +3,8 @@
3
3
  exports.__esModule = true;
4
4
  var _orderView = require("./../utils/orderView");
5
5
  var _base = _interopRequireDefault(require("./_base"));
6
+ var _element = require("../../../../helpers/dom/element");
7
+ var _a11y = require("../../../../helpers/a11y");
6
8
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
7
9
  /**
8
10
  * Row headers renderer responsible for managing (inserting, tracking, rendering) TR elements belongs to TR.
@@ -74,6 +76,9 @@ class RowHeadersRenderer extends _base.default {
74
76
  const TH = orderView.getCurrentNode();
75
77
  TH.className = '';
76
78
  TH.removeAttribute('style');
79
+ if (this.table.isAriaEnabled()) {
80
+ (0, _element.setAttribute)(TH, [(0, _a11y.A11Y_ROWHEADER)(), (0, _a11y.A11Y_SCOPE_ROW)(), (0, _a11y.A11Y_COLINDEX)(visibleColumnIndex + 1), (0, _a11y.A11Y_TABINDEX)(-1)]);
81
+ }
77
82
  rowHeaderFunctions[visibleColumnIndex](sourceRowIndex, TH, visibleColumnIndex);
78
83
  }
79
84
  orderView.end();
@@ -1,5 +1,7 @@
1
1
  import { SharedOrderView } from "./../utils/orderView/index.mjs";
2
2
  import BaseRenderer from "./_base.mjs";
3
+ import { setAttribute } from "../../../../helpers/dom/element.mjs";
4
+ import { A11Y_COLINDEX, A11Y_ROWHEADER, A11Y_SCOPE_ROW, A11Y_TABINDEX } from "../../../../helpers/a11y.mjs";
3
5
  /**
4
6
  * Row headers renderer responsible for managing (inserting, tracking, rendering) TR elements belongs to TR.
5
7
  *
@@ -70,6 +72,9 @@ export default class RowHeadersRenderer extends BaseRenderer {
70
72
  const TH = orderView.getCurrentNode();
71
73
  TH.className = '';
72
74
  TH.removeAttribute('style');
75
+ if (this.table.isAriaEnabled()) {
76
+ setAttribute(TH, [A11Y_ROWHEADER(), A11Y_SCOPE_ROW(), A11Y_COLINDEX(visibleColumnIndex + 1), A11Y_TABINDEX(-1)]);
77
+ }
73
78
  rowHeaderFunctions[visibleColumnIndex](sourceRowIndex, TH, visibleColumnIndex);
74
79
  }
75
80
  orderView.end();
@@ -5,6 +5,8 @@ var _console = require("./../../../../helpers/console");
5
5
  var _templateLiteralTag = require("./../../../../helpers/templateLiteralTag");
6
6
  var _orderView = require("./../utils/orderView");
7
7
  var _base = _interopRequireDefault(require("./_base"));
8
+ var _element = require("../../../../helpers/dom/element");
9
+ var _a11y = require("../../../../helpers/a11y");
8
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
11
  let performanceWarningAppeared = false;
10
12
 
@@ -53,9 +55,20 @@ class RowsRenderer extends _base.default {
53
55
  (0, _console.warn)((0, _templateLiteralTag.toSingleLine)`Performance tip: Handsontable rendered more than 1000 visible rows. Consider limiting\x20
54
56
  the number of rendered rows by specifying the table height and/or turning off the "renderAllRows" option.`);
55
57
  }
58
+ if (this.table.isAriaEnabled()) {
59
+ (0, _element.setAttribute)(this.rootNode, [(0, _a11y.A11Y_PRESENTATION)()]);
60
+ }
56
61
  this.orderView.setSize(rowsToRender).setOffset(this.table.renderedRowToSource(0)).start();
57
62
  for (let visibleRowIndex = 0; visibleRowIndex < rowsToRender; visibleRowIndex++) {
58
63
  this.orderView.render();
64
+ const TR = this.orderView.getCurrentNode();
65
+ const sourceRowIndex = this.table.renderedRowToSource(visibleRowIndex);
66
+ if (this.table.isAriaEnabled()) {
67
+ var _this$table$rowUtils$, _this$table$rowUtils;
68
+ (0, _element.setAttribute)(TR, [(0, _a11y.A11Y_ROW)(),
69
+ // `aria-rowindex` is incremented by both tbody and thead rows.
70
+ (0, _a11y.A11Y_ROWINDEX)(sourceRowIndex + ((_this$table$rowUtils$ = (_this$table$rowUtils = this.table.rowUtils) === null || _this$table$rowUtils === void 0 || (_this$table$rowUtils = _this$table$rowUtils.dataAccessObject) === null || _this$table$rowUtils === void 0 ? void 0 : _this$table$rowUtils.columnHeaders.length) !== null && _this$table$rowUtils$ !== void 0 ? _this$table$rowUtils$ : 0) + 1)]);
71
+ }
59
72
  }
60
73
  this.orderView.end();
61
74
  }
@@ -2,6 +2,8 @@ import { warn } from "./../../../../helpers/console.mjs";
2
2
  import { toSingleLine } from "./../../../../helpers/templateLiteralTag.mjs";
3
3
  import { OrderView } from "./../utils/orderView/index.mjs";
4
4
  import BaseRenderer from "./_base.mjs";
5
+ import { setAttribute } from "../../../../helpers/dom/element.mjs";
6
+ import { A11Y_PRESENTATION, A11Y_ROW, A11Y_ROWINDEX } from "../../../../helpers/a11y.mjs";
5
7
  let performanceWarningAppeared = false;
6
8
 
7
9
  /**
@@ -49,9 +51,20 @@ export default class RowsRenderer extends BaseRenderer {
49
51
  warn(toSingleLine`Performance tip: Handsontable rendered more than 1000 visible rows. Consider limiting\x20
50
52
  the number of rendered rows by specifying the table height and/or turning off the "renderAllRows" option.`);
51
53
  }
54
+ if (this.table.isAriaEnabled()) {
55
+ setAttribute(this.rootNode, [A11Y_PRESENTATION()]);
56
+ }
52
57
  this.orderView.setSize(rowsToRender).setOffset(this.table.renderedRowToSource(0)).start();
53
58
  for (let visibleRowIndex = 0; visibleRowIndex < rowsToRender; visibleRowIndex++) {
54
59
  this.orderView.render();
60
+ const TR = this.orderView.getCurrentNode();
61
+ const sourceRowIndex = this.table.renderedRowToSource(visibleRowIndex);
62
+ if (this.table.isAriaEnabled()) {
63
+ var _this$table$rowUtils$, _this$table$rowUtils;
64
+ setAttribute(TR, [A11Y_ROW(),
65
+ // `aria-rowindex` is incremented by both tbody and thead rows.
66
+ A11Y_ROWINDEX(sourceRowIndex + ((_this$table$rowUtils$ = (_this$table$rowUtils = this.table.rowUtils) === null || _this$table$rowUtils === void 0 || (_this$table$rowUtils = _this$table$rowUtils.dataAccessObject) === null || _this$table$rowUtils === void 0 ? void 0 : _this$table$rowUtils.columnHeaders.length) !== null && _this$table$rowUtils$ !== void 0 ? _this$table$rowUtils$ : 0) + 1)]);
67
+ }
55
68
  }
56
69
  this.orderView.end();
57
70
  }
@@ -257,6 +257,15 @@ class TableRenderer {
257
257
  return this.columnFilter.renderedToSource(columnIndex);
258
258
  }
259
259
 
260
+ /**
261
+ * Returns `true` if the accessibility-related ARIA tags should be added to the table, `false` otherwise.
262
+ *
263
+ * @returns {boolean}
264
+ */
265
+ isAriaEnabled() {
266
+ return this.rowUtils.wtSettings.getSetting('ariaTags');
267
+ }
268
+
260
269
  /**
261
270
  * Renders the table.
262
271
  */
@@ -254,6 +254,15 @@ export default class TableRenderer {
254
254
  return this.columnFilter.renderedToSource(columnIndex);
255
255
  }
256
256
 
257
+ /**
258
+ * Returns `true` if the accessibility-related ARIA tags should be added to the table, `false` otherwise.
259
+ *
260
+ * @returns {boolean}
261
+ */
262
+ isAriaEnabled() {
263
+ return this.rowUtils.wtSettings.getSetting('ariaTags');
264
+ }
265
+
257
266
  /**
258
267
  * Renders the table.
259
268
  */
@@ -88,6 +88,7 @@ class Scroll {
88
88
  return false;
89
89
  }
90
90
  let result = false;
91
+ column = this.dataAccessObject.wtSettings.getSetting('onBeforeViewportScrollHorizontally', column);
91
92
 
92
93
  // if there is no fully visible columns use the supporting variable (lastScrolledColumnPos) to
93
94
  // determine the snapping direction (left or right)
@@ -137,6 +138,7 @@ class Scroll {
137
138
  return false;
138
139
  }
139
140
  let result = false;
141
+ row = this.dataAccessObject.wtSettings.getSetting('onBeforeViewportScrollVertically', row);
140
142
 
141
143
  // if there is no fully visible rows use the supporting variable (lastScrolledRowPos) to
142
144
  // determine the snapping direction (top or bottom)
@@ -85,6 +85,7 @@ class Scroll {
85
85
  return false;
86
86
  }
87
87
  let result = false;
88
+ column = this.dataAccessObject.wtSettings.getSetting('onBeforeViewportScrollHorizontally', column);
88
89
 
89
90
  // if there is no fully visible columns use the supporting variable (lastScrolledColumnPos) to
90
91
  // determine the snapping direction (left or right)
@@ -134,6 +135,7 @@ class Scroll {
134
135
  return false;
135
136
  }
136
137
  let result = false;
138
+ row = this.dataAccessObject.wtSettings.getSetting('onBeforeViewportScrollVertically', row);
137
139
 
138
140
  // if there is no fully visible rows use the supporting variable (lastScrolledRowPos) to
139
141
  // determine the snapping direction (top or bottom)
@@ -1,10 +1,11 @@
1
1
  "use strict";
2
2
 
3
3
  exports.__esModule = true;
4
- var _element = require("../../../helpers/dom/element");
5
- var _event = require("../../../helpers/dom/event");
6
- var _object = require("../../../helpers/object");
7
- var _browser = require("../../../helpers/browser");
4
+ var _element = require("../../../../../helpers/dom/element");
5
+ var _event = require("../../../../../helpers/dom/event");
6
+ var _object = require("../../../../../helpers/object");
7
+ var _browser = require("../../../../../helpers/browser");
8
+ var _constants = require("./constants");
8
9
  /**
9
10
  *
10
11
  */
@@ -34,13 +35,7 @@ class Border {
34
35
  this.bottomStyle = null;
35
36
  this.startStyle = null;
36
37
  this.endStyle = null;
37
- this.cornerDefaultStyle = {
38
- width: '6px',
39
- height: '6px',
40
- borderWidth: '1px',
41
- borderStyle: 'solid',
42
- borderColor: '#FFF'
43
- };
38
+ this.cornerDefaultStyle = _constants.CORNER_DEFAULT_STYLE;
44
39
  // Offset to moving the corner to be centered relative to the grid.
45
40
  this.cornerCenterPointOffset = -(parseInt(this.cornerDefaultStyle.width, 10) / 2);
46
41
  this.corner = null;
@@ -250,7 +245,7 @@ class Border {
250
245
  * @returns {boolean}
251
246
  */
252
247
  isPartRange(row, col) {
253
- const areaSelection = this.wot.selections.createOrGetArea();
248
+ const areaSelection = this.wot.selectionManager.getAreaSelection();
254
249
  if (areaSelection.cellRange) {
255
250
  if (row !== areaSelection.cellRange.to.row || col !== areaSelection.cellRange.to.col) {
256
251
  return true;
@@ -1,7 +1,8 @@
1
- import { addClass, hasClass, removeClass, getComputedStyle, getTrimmingContainer, innerWidth, innerHeight, offset, outerHeight, outerWidth } from "../../../helpers/dom/element.mjs";
2
- import { stopImmediatePropagation } from "../../../helpers/dom/event.mjs";
3
- import { objectEach } from "../../../helpers/object.mjs";
4
- import { isMobileBrowser } from "../../../helpers/browser.mjs";
1
+ import { addClass, hasClass, removeClass, getComputedStyle, getTrimmingContainer, innerWidth, innerHeight, offset, outerHeight, outerWidth } from "../../../../../helpers/dom/element.mjs";
2
+ import { stopImmediatePropagation } from "../../../../../helpers/dom/event.mjs";
3
+ import { objectEach } from "../../../../../helpers/object.mjs";
4
+ import { isMobileBrowser } from "../../../../../helpers/browser.mjs";
5
+ import { CORNER_DEFAULT_STYLE } from "./constants.mjs";
5
6
  /**
6
7
  *
7
8
  */
@@ -31,13 +32,7 @@ class Border {
31
32
  this.bottomStyle = null;
32
33
  this.startStyle = null;
33
34
  this.endStyle = null;
34
- this.cornerDefaultStyle = {
35
- width: '6px',
36
- height: '6px',
37
- borderWidth: '1px',
38
- borderStyle: 'solid',
39
- borderColor: '#FFF'
40
- };
35
+ this.cornerDefaultStyle = CORNER_DEFAULT_STYLE;
41
36
  // Offset to moving the corner to be centered relative to the grid.
42
37
  this.cornerCenterPointOffset = -(parseInt(this.cornerDefaultStyle.width, 10) / 2);
43
38
  this.corner = null;
@@ -247,7 +242,7 @@ class Border {
247
242
  * @returns {boolean}
248
243
  */
249
244
  isPartRange(row, col) {
250
- const areaSelection = this.wot.selections.createOrGetArea();
245
+ const areaSelection = this.wot.selectionManager.getAreaSelection();
251
246
  if (areaSelection.cellRange) {
252
247
  if (row !== areaSelection.cellRange.to.row || col !== areaSelection.cellRange.to.col) {
253
248
  return true;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ /**
5
+ * Default border corner style.
6
+ *
7
+ * @type {object}
8
+ */
9
+ const CORNER_DEFAULT_STYLE = Object.freeze({
10
+ width: '6px',
11
+ height: '6px',
12
+ borderWidth: '1px',
13
+ borderStyle: 'solid',
14
+ borderColor: '#FFF'
15
+ });
16
+ exports.CORNER_DEFAULT_STYLE = CORNER_DEFAULT_STYLE;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Default border corner style.
3
+ *
4
+ * @type {object}
5
+ */
6
+ export const CORNER_DEFAULT_STYLE = Object.freeze({
7
+ width: '6px',
8
+ height: '6px',
9
+ borderWidth: '1px',
10
+ borderStyle: 'solid',
11
+ borderColor: '#FFF'
12
+ });