handsontable 13.1.0 → 14.0.0-next-d97b156-20231027

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (691) hide show
  1. package/3rdparty/walkontable/src/calculator/constants.js +3 -6
  2. package/3rdparty/walkontable/src/calculator/viewportColumns.js +1 -2
  3. package/3rdparty/walkontable/src/calculator/viewportRows.js +1 -2
  4. package/3rdparty/walkontable/src/cell/coords.d.ts +8 -1
  5. package/3rdparty/walkontable/src/cell/coords.js +81 -13
  6. package/3rdparty/walkontable/src/cell/coords.mjs +80 -11
  7. package/3rdparty/walkontable/src/cell/range.d.ts +9 -2
  8. package/3rdparty/walkontable/src/cell/range.js +39 -9
  9. package/3rdparty/walkontable/src/cell/range.mjs +38 -7
  10. package/3rdparty/walkontable/src/core/_base.js +9 -3
  11. package/3rdparty/walkontable/src/core/_base.mjs +9 -3
  12. package/3rdparty/walkontable/src/core/clone.js +2 -2
  13. package/3rdparty/walkontable/src/core/clone.mjs +2 -2
  14. package/3rdparty/walkontable/src/core/core.js +3 -2
  15. package/3rdparty/walkontable/src/core/core.mjs +3 -2
  16. package/3rdparty/walkontable/src/event.js +13 -12
  17. package/3rdparty/walkontable/src/event.mjs +12 -10
  18. package/3rdparty/walkontable/src/facade/core.js +2 -2
  19. package/3rdparty/walkontable/src/facade/core.mjs +2 -2
  20. package/3rdparty/walkontable/src/filter/column.js +1 -2
  21. package/3rdparty/walkontable/src/filter/row.js +1 -2
  22. package/3rdparty/walkontable/src/index.js +12 -4
  23. package/3rdparty/walkontable/src/index.mjs +2 -2
  24. package/3rdparty/walkontable/src/overlay/_base.js +13 -2
  25. package/3rdparty/walkontable/src/overlay/_base.mjs +14 -3
  26. package/3rdparty/walkontable/src/overlay/constants.js +7 -14
  27. package/3rdparty/walkontable/src/overlay/inlineStart.js +2 -6
  28. package/3rdparty/walkontable/src/overlay/inlineStart.mjs +2 -6
  29. package/3rdparty/walkontable/src/overlay/top.js +2 -6
  30. package/3rdparty/walkontable/src/overlay/top.mjs +2 -6
  31. package/3rdparty/walkontable/src/overlays.js +1 -2
  32. package/3rdparty/walkontable/src/renderer/cells.js +10 -0
  33. package/3rdparty/walkontable/src/renderer/cells.mjs +11 -1
  34. package/3rdparty/walkontable/src/renderer/columnHeaders.js +13 -0
  35. package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +14 -1
  36. package/3rdparty/walkontable/src/renderer/rowHeaders.js +8 -0
  37. package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +8 -0
  38. package/3rdparty/walkontable/src/renderer/rows.js +13 -0
  39. package/3rdparty/walkontable/src/renderer/rows.mjs +13 -0
  40. package/3rdparty/walkontable/src/renderer/table.js +9 -0
  41. package/3rdparty/walkontable/src/renderer/table.mjs +9 -0
  42. package/3rdparty/walkontable/src/scroll.js +3 -2
  43. package/3rdparty/walkontable/src/scroll.mjs +2 -0
  44. package/3rdparty/walkontable/src/{border.js → selection/border/border.js} +8 -14
  45. package/3rdparty/walkontable/src/{border.mjs → selection/border/border.mjs} +7 -12
  46. package/3rdparty/walkontable/src/selection/border/constants.js +15 -0
  47. package/3rdparty/walkontable/src/selection/border/constants.mjs +12 -0
  48. package/3rdparty/walkontable/src/selection/constants.js +54 -0
  49. package/3rdparty/walkontable/src/selection/constants.mjs +51 -0
  50. package/3rdparty/walkontable/src/selection/index.js +26 -0
  51. package/3rdparty/walkontable/src/selection/index.mjs +5 -0
  52. package/3rdparty/walkontable/src/selection/manager.js +274 -0
  53. package/3rdparty/walkontable/src/selection/manager.mjs +269 -0
  54. package/3rdparty/walkontable/src/selection/scanner.js +270 -0
  55. package/3rdparty/walkontable/src/selection/scanner.mjs +267 -0
  56. package/3rdparty/walkontable/src/selection/selection.js +100 -0
  57. package/3rdparty/walkontable/src/selection/selection.mjs +96 -0
  58. package/3rdparty/walkontable/src/settings.js +13 -4
  59. package/3rdparty/walkontable/src/settings.mjs +13 -4
  60. package/3rdparty/walkontable/src/table/bottom.js +1 -2
  61. package/3rdparty/walkontable/src/table/bottomInlineStartCorner.js +1 -2
  62. package/3rdparty/walkontable/src/table/inlineStart.js +1 -2
  63. package/3rdparty/walkontable/src/table/master.js +3 -6
  64. package/3rdparty/walkontable/src/table/master.mjs +2 -4
  65. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +10 -2
  66. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +9 -0
  67. package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +10 -2
  68. package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +9 -0
  69. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.js +10 -2
  70. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.mjs +9 -0
  71. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +10 -2
  72. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +9 -0
  73. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +10 -2
  74. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +9 -0
  75. package/3rdparty/walkontable/src/table/top.js +1 -2
  76. package/3rdparty/walkontable/src/table/topInlineStartCorner.js +1 -2
  77. package/3rdparty/walkontable/src/table.js +20 -80
  78. package/3rdparty/walkontable/src/table.mjs +20 -79
  79. package/3rdparty/walkontable/src/utils/orderView/constants.js +3 -6
  80. package/3rdparty/walkontable/src/viewport.js +1 -2
  81. package/CHANGELOG.md +51 -0
  82. package/base.js +3 -4
  83. package/base.mjs +2 -2
  84. package/cellTypes/autocompleteType/autocompleteType.js +3 -5
  85. package/cellTypes/checkboxType/checkboxType.js +3 -5
  86. package/cellTypes/dateType/dateType.d.ts +3 -3
  87. package/cellTypes/dateType/dateType.js +5 -7
  88. package/cellTypes/dateType/dateType.mjs +2 -2
  89. package/cellTypes/dropdownType/dropdownType.js +3 -5
  90. package/cellTypes/handsontableType/handsontableType.d.ts +3 -3
  91. package/cellTypes/handsontableType/handsontableType.js +5 -7
  92. package/cellTypes/handsontableType/handsontableType.mjs +2 -2
  93. package/cellTypes/index.d.ts +3 -0
  94. package/cellTypes/index.js +4 -0
  95. package/cellTypes/index.mjs +3 -1
  96. package/cellTypes/numericType/numericType.js +3 -5
  97. package/cellTypes/passwordType/passwordType.js +3 -5
  98. package/cellTypes/selectType/index.d.ts +1 -0
  99. package/cellTypes/selectType/index.js +6 -0
  100. package/cellTypes/selectType/index.mjs +1 -0
  101. package/cellTypes/selectType/selectType.d.ts +14 -0
  102. package/cellTypes/selectType/selectType.js +11 -0
  103. package/cellTypes/selectType/selectType.mjs +8 -0
  104. package/cellTypes/textType/textType.js +3 -5
  105. package/cellTypes/timeType/timeType.js +3 -5
  106. package/common.d.ts +1 -1
  107. package/core/focusCatcher/focusDetector.js +63 -0
  108. package/core/focusCatcher/focusDetector.mjs +59 -0
  109. package/core/focusCatcher/index.js +148 -0
  110. package/core/focusCatcher/index.mjs +144 -0
  111. package/core/index.js +9 -0
  112. package/core/index.mjs +1 -0
  113. package/core.d.ts +10 -5
  114. package/core.js +327 -359
  115. package/core.mjs +327 -359
  116. package/dataMap/dataMap.js +1 -2
  117. package/dataMap/dataSource.js +1 -2
  118. package/dataMap/metaManager/metaSchema.js +65 -0
  119. package/dataMap/metaManager/metaSchema.mjs +65 -0
  120. package/dataMap/metaManager/mods/extendMetaProperties.js +7 -1
  121. package/dataMap/metaManager/mods/extendMetaProperties.mjs +7 -1
  122. package/dataMap/replaceData.js +5 -0
  123. package/dataMap/replaceData.mjs +5 -0
  124. package/dist/handsontable.css +94 -76
  125. package/dist/handsontable.full.css +94 -76
  126. package/dist/handsontable.full.js +21236 -14104
  127. package/dist/handsontable.full.min.css +8 -8
  128. package/dist/handsontable.full.min.js +170 -152
  129. package/dist/handsontable.js +22016 -15254
  130. package/dist/handsontable.min.css +7 -7
  131. package/dist/handsontable.min.js +31 -23
  132. package/dist/languages/all.js +47 -40
  133. package/dist/languages/all.min.js +1 -1
  134. package/dist/languages/ar-AR.js +1 -2
  135. package/dist/languages/cs-CZ.js +1 -2
  136. package/dist/languages/de-CH.js +1 -2
  137. package/dist/languages/de-DE.js +1 -2
  138. package/dist/languages/en-US.js +15 -3
  139. package/dist/languages/en-US.min.js +1 -1
  140. package/dist/languages/es-MX.js +1 -2
  141. package/dist/languages/fr-FR.js +1 -2
  142. package/dist/languages/it-IT.js +1 -2
  143. package/dist/languages/ja-JP.js +1 -2
  144. package/dist/languages/ko-KR.js +1 -2
  145. package/dist/languages/lv-LV.js +1 -2
  146. package/dist/languages/nb-NO.js +1 -2
  147. package/dist/languages/nl-NL.js +1 -2
  148. package/dist/languages/pl-PL.js +15 -3
  149. package/dist/languages/pl-PL.min.js +1 -1
  150. package/dist/languages/pt-BR.js +1 -2
  151. package/dist/languages/ru-RU.js +1 -2
  152. package/dist/languages/sr-SP.js +1 -2
  153. package/dist/languages/zh-CN.js +1 -2
  154. package/dist/languages/zh-TW.js +1 -2
  155. package/editorManager.js +17 -91
  156. package/editorManager.mjs +16 -87
  157. package/editors/autocompleteEditor/autocompleteEditor.js +65 -11
  158. package/editors/autocompleteEditor/autocompleteEditor.mjs +65 -10
  159. package/editors/baseEditor/baseEditor.js +19 -13
  160. package/editors/baseEditor/baseEditor.mjs +16 -7
  161. package/editors/checkboxEditor/checkboxEditor.js +1 -2
  162. package/editors/dateEditor/dateEditor.js +27 -9
  163. package/editors/dateEditor/dateEditor.mjs +27 -8
  164. package/editors/dropdownEditor/dropdownEditor.js +1 -2
  165. package/editors/handsontableEditor/handsontableEditor.js +14 -7
  166. package/editors/handsontableEditor/handsontableEditor.mjs +14 -6
  167. package/editors/numericEditor/numericEditor.js +1 -2
  168. package/editors/passwordEditor/passwordEditor.js +1 -2
  169. package/editors/selectEditor/selectEditor.js +1 -2
  170. package/editors/textEditor/textEditor.js +20 -29
  171. package/editors/textEditor/textEditor.mjs +22 -30
  172. package/editors/timeEditor/timeEditor.js +1 -2
  173. package/eventManager.js +1 -2
  174. package/focusManager.d.ts +12 -0
  175. package/focusManager.js +265 -0
  176. package/focusManager.mjs +261 -0
  177. package/helpers/a11y.js +81 -0
  178. package/helpers/a11y.mjs +39 -0
  179. package/helpers/dom/element.js +224 -12
  180. package/helpers/dom/element.mjs +216 -10
  181. package/helpers/dom/event.d.ts +1 -0
  182. package/helpers/dom/event.js +25 -0
  183. package/helpers/dom/event.mjs +24 -0
  184. package/helpers/mixed.js +2 -2
  185. package/helpers/mixed.mjs +2 -2
  186. package/helpers/number.d.ts +1 -0
  187. package/helpers/number.js +18 -0
  188. package/helpers/number.mjs +17 -0
  189. package/helpers/unicode.js +1 -2
  190. package/i18n/constants.js +97 -160
  191. package/i18n/constants.mjs +17 -1
  192. package/i18n/languages/ar-AR.js +3 -4
  193. package/i18n/languages/cs-CZ.js +3 -4
  194. package/i18n/languages/de-CH.js +3 -4
  195. package/i18n/languages/de-DE.js +3 -4
  196. package/i18n/languages/en-US.js +17 -5
  197. package/i18n/languages/en-US.mjs +14 -1
  198. package/i18n/languages/es-MX.js +3 -4
  199. package/i18n/languages/fr-FR.js +3 -4
  200. package/i18n/languages/it-IT.js +3 -4
  201. package/i18n/languages/ja-JP.js +3 -4
  202. package/i18n/languages/ko-KR.js +3 -4
  203. package/i18n/languages/lv-LV.js +3 -4
  204. package/i18n/languages/nb-NO.js +3 -4
  205. package/i18n/languages/nl-NL.js +3 -4
  206. package/i18n/languages/pl-PL.js +17 -5
  207. package/i18n/languages/pl-PL.mjs +14 -1
  208. package/i18n/languages/pt-BR.js +3 -4
  209. package/i18n/languages/ru-RU.js +3 -4
  210. package/i18n/languages/sr-SP.js +3 -4
  211. package/i18n/languages/zh-CN.js +3 -4
  212. package/i18n/languages/zh-TW.js +3 -4
  213. package/i18n/registry.js +4 -6
  214. package/index.js +3 -4
  215. package/languages/all.js +47 -40
  216. package/languages/ar-AR.js +1 -2
  217. package/languages/cs-CZ.js +1 -2
  218. package/languages/de-CH.js +1 -2
  219. package/languages/de-DE.js +1 -2
  220. package/languages/en-US.js +15 -3
  221. package/languages/en-US.mjs +14 -1
  222. package/languages/es-MX.js +1 -2
  223. package/languages/fr-FR.js +1 -2
  224. package/languages/index.js +47 -40
  225. package/languages/it-IT.js +1 -2
  226. package/languages/ja-JP.js +1 -2
  227. package/languages/ko-KR.js +1 -2
  228. package/languages/lv-LV.js +1 -2
  229. package/languages/nb-NO.js +1 -2
  230. package/languages/nl-NL.js +1 -2
  231. package/languages/pl-PL.js +15 -3
  232. package/languages/pl-PL.mjs +14 -1
  233. package/languages/pt-BR.js +1 -2
  234. package/languages/ru-RU.js +1 -2
  235. package/languages/sr-SP.js +1 -2
  236. package/languages/zh-CN.js +1 -2
  237. package/languages/zh-TW.js +1 -2
  238. package/mixins/hooksRefRegisterer.js +1 -2
  239. package/mixins/localHooks.js +1 -2
  240. package/package.json +119 -96
  241. package/pluginHooks.d.ts +42 -7
  242. package/pluginHooks.js +301 -65
  243. package/pluginHooks.mjs +300 -63
  244. package/plugins/autoColumnSize/autoColumnSize.d.ts +2 -0
  245. package/plugins/autoColumnSize/autoColumnSize.js +2 -4
  246. package/plugins/autoRowSize/autoRowSize.d.ts +2 -0
  247. package/plugins/autoRowSize/autoRowSize.js +15 -10
  248. package/plugins/autoRowSize/autoRowSize.mjs +13 -6
  249. package/plugins/autofill/autofill.js +2 -4
  250. package/plugins/autofill/utils.js +1 -2
  251. package/plugins/base/base.js +1 -2
  252. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +2 -4
  253. package/plugins/bindRowsWithHeaders/maps/looseBindsMap.js +1 -2
  254. package/plugins/bindRowsWithHeaders/maps/strictBindsMap.js +1 -2
  255. package/plugins/collapsibleColumns/collapsibleColumns.js +77 -8
  256. package/plugins/collapsibleColumns/collapsibleColumns.mjs +76 -5
  257. package/plugins/columnSorting/columnSorting.js +71 -6
  258. package/plugins/columnSorting/columnSorting.mjs +70 -3
  259. package/plugins/columnSorting/index.js +3 -1
  260. package/plugins/columnSorting/index.mjs +1 -1
  261. package/plugins/columnSorting/sortFunction/checkbox.js +1 -2
  262. package/plugins/columnSorting/sortFunction/date.js +1 -2
  263. package/plugins/columnSorting/sortFunction/default.js +1 -2
  264. package/plugins/columnSorting/sortFunction/numeric.js +1 -2
  265. package/plugins/columnSorting/sortService/engine.js +3 -6
  266. package/plugins/columnSorting/utils.js +3 -6
  267. package/plugins/columnSummary/columnSummary.js +2 -4
  268. package/plugins/columnSummary/endpoints.js +1 -2
  269. package/plugins/comments/commentEditor.js +2 -2
  270. package/plugins/comments/commentEditor.mjs +1 -0
  271. package/plugins/comments/comments.js +254 -197
  272. package/plugins/comments/comments.mjs +251 -190
  273. package/plugins/comments/contextMenuItem/addEditComment.js +41 -0
  274. package/plugins/comments/contextMenuItem/addEditComment.mjs +35 -0
  275. package/plugins/comments/contextMenuItem/readOnlyComment.js +49 -0
  276. package/plugins/comments/contextMenuItem/readOnlyComment.mjs +43 -0
  277. package/plugins/comments/contextMenuItem/removeComment.js +38 -0
  278. package/plugins/comments/contextMenuItem/removeComment.mjs +32 -0
  279. package/plugins/comments/displaySwitch.js +1 -2
  280. package/plugins/contextMenu/commandExecutor.js +2 -3
  281. package/plugins/contextMenu/commandExecutor.mjs +2 -3
  282. package/plugins/contextMenu/contextMenu.d.ts +1 -1
  283. package/plugins/contextMenu/contextMenu.js +77 -40
  284. package/plugins/contextMenu/contextMenu.mjs +74 -35
  285. package/plugins/contextMenu/itemsFactory.js +2 -3
  286. package/plugins/contextMenu/itemsFactory.mjs +3 -4
  287. package/plugins/contextMenu/{cursor.mjs → menu/cursor.js} +6 -4
  288. package/plugins/contextMenu/{cursor.js → menu/cursor.mjs} +4 -10
  289. package/plugins/contextMenu/menu/defaultShortcutsList.js +88 -0
  290. package/plugins/contextMenu/menu/defaultShortcutsList.mjs +84 -0
  291. package/plugins/contextMenu/menu/index.js +9 -0
  292. package/plugins/contextMenu/menu/index.mjs +1 -0
  293. package/plugins/contextMenu/{menu.js → menu/menu.js} +145 -421
  294. package/plugins/contextMenu/{menu.mjs → menu/menu.mjs} +146 -422
  295. package/plugins/contextMenu/menu/menuItemRenderer.js +70 -0
  296. package/plugins/contextMenu/menu/menuItemRenderer.mjs +66 -0
  297. package/plugins/contextMenu/menu/navigator.js +27 -0
  298. package/plugins/contextMenu/menu/navigator.mjs +23 -0
  299. package/plugins/contextMenu/menu/positioner.js +213 -0
  300. package/plugins/contextMenu/menu/positioner.mjs +209 -0
  301. package/plugins/contextMenu/menu/shortcuts.js +114 -0
  302. package/plugins/contextMenu/menu/shortcuts.mjs +110 -0
  303. package/plugins/contextMenu/menu/utils.js +177 -0
  304. package/plugins/contextMenu/menu/utils.mjs +163 -0
  305. package/plugins/contextMenu/predefinedItems/alignment.js +10 -4
  306. package/plugins/contextMenu/predefinedItems/alignment.mjs +7 -0
  307. package/plugins/contextMenu/predefinedItems/clearColumn.js +8 -7
  308. package/plugins/contextMenu/predefinedItems/clearColumn.mjs +5 -3
  309. package/plugins/contextMenu/predefinedItems/columnLeft.js +8 -7
  310. package/plugins/contextMenu/predefinedItems/columnLeft.mjs +5 -3
  311. package/plugins/contextMenu/predefinedItems/columnRight.js +8 -7
  312. package/plugins/contextMenu/predefinedItems/columnRight.mjs +5 -3
  313. package/plugins/contextMenu/predefinedItems/index.js +75 -0
  314. package/plugins/contextMenu/predefinedItems/index.mjs +68 -0
  315. package/plugins/contextMenu/predefinedItems/noItems.js +1 -2
  316. package/plugins/contextMenu/predefinedItems/readOnly.js +10 -4
  317. package/plugins/contextMenu/predefinedItems/readOnly.mjs +7 -0
  318. package/plugins/contextMenu/predefinedItems/redo.js +3 -4
  319. package/plugins/contextMenu/predefinedItems/removeColumn.js +10 -9
  320. package/plugins/contextMenu/predefinedItems/removeColumn.mjs +5 -3
  321. package/plugins/contextMenu/predefinedItems/removeRow.js +10 -9
  322. package/plugins/contextMenu/predefinedItems/removeRow.mjs +5 -3
  323. package/plugins/contextMenu/predefinedItems/rowAbove.js +8 -7
  324. package/plugins/contextMenu/predefinedItems/rowAbove.mjs +5 -3
  325. package/plugins/contextMenu/predefinedItems/rowBelow.js +8 -7
  326. package/plugins/contextMenu/predefinedItems/rowBelow.mjs +5 -3
  327. package/plugins/contextMenu/predefinedItems/separator.js +1 -2
  328. package/plugins/contextMenu/predefinedItems/undo.js +3 -4
  329. package/plugins/contextMenu/utils.js +35 -151
  330. package/plugins/contextMenu/utils.mjs +35 -144
  331. package/plugins/copyPaste/clipboardData/clipboardData.js +516 -0
  332. package/plugins/copyPaste/clipboardData/clipboardData.mjs +512 -0
  333. package/plugins/copyPaste/clipboardData/copyClipboardData.js +69 -0
  334. package/plugins/copyPaste/clipboardData/copyClipboardData.mjs +65 -0
  335. package/plugins/copyPaste/clipboardData/index.js +9 -0
  336. package/plugins/copyPaste/clipboardData/index.mjs +4 -0
  337. package/plugins/copyPaste/clipboardData/pasteClipboardData.js +81 -0
  338. package/plugins/copyPaste/clipboardData/pasteClipboardData.mjs +77 -0
  339. package/plugins/copyPaste/contextMenuItem/copy.js +7 -0
  340. package/plugins/copyPaste/contextMenuItem/copy.mjs +7 -0
  341. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.js +9 -1
  342. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.mjs +9 -1
  343. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.js +9 -1
  344. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.mjs +9 -1
  345. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.js +9 -1
  346. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.mjs +9 -1
  347. package/plugins/copyPaste/contextMenuItem/cut.js +9 -2
  348. package/plugins/copyPaste/contextMenuItem/cut.mjs +7 -0
  349. package/plugins/copyPaste/copyPaste.js +160 -167
  350. package/plugins/copyPaste/copyPaste.mjs +161 -166
  351. package/plugins/customBorders/contextMenuItem/bottom.js +2 -2
  352. package/plugins/customBorders/contextMenuItem/left.js +2 -2
  353. package/plugins/customBorders/contextMenuItem/noBorders.js +2 -2
  354. package/plugins/customBorders/contextMenuItem/right.js +2 -2
  355. package/plugins/customBorders/contextMenuItem/top.js +2 -2
  356. package/plugins/customBorders/customBorders.js +27 -26
  357. package/plugins/customBorders/customBorders.mjs +24 -21
  358. package/plugins/dragToScroll/dragToScroll.js +2 -4
  359. package/plugins/dropdownMenu/dropdownMenu.d.ts +1 -1
  360. package/plugins/dropdownMenu/dropdownMenu.js +130 -44
  361. package/plugins/dropdownMenu/dropdownMenu.mjs +127 -39
  362. package/plugins/exportFile/dataProvider.js +1 -2
  363. package/plugins/exportFile/exportFile.js +4 -6
  364. package/plugins/exportFile/typeFactory.js +5 -8
  365. package/plugins/exportFile/types/_base.js +1 -2
  366. package/plugins/exportFile/types/csv.js +1 -2
  367. package/plugins/filters/component/_base.js +23 -8
  368. package/plugins/filters/component/_base.mjs +23 -8
  369. package/plugins/filters/component/actionBar.js +31 -29
  370. package/plugins/filters/component/actionBar.mjs +26 -23
  371. package/plugins/filters/component/condition.js +48 -61
  372. package/plugins/filters/component/condition.mjs +40 -52
  373. package/plugins/filters/component/operators.js +21 -22
  374. package/plugins/filters/component/operators.mjs +18 -18
  375. package/plugins/filters/component/value.js +37 -28
  376. package/plugins/filters/component/value.mjs +32 -22
  377. package/plugins/filters/condition/beginsWith.js +3 -4
  378. package/plugins/filters/condition/between.js +3 -4
  379. package/plugins/filters/condition/byValue.js +1 -2
  380. package/plugins/filters/condition/contains.js +3 -4
  381. package/plugins/filters/condition/date/after.js +3 -4
  382. package/plugins/filters/condition/date/before.js +3 -4
  383. package/plugins/filters/condition/date/today.js +3 -4
  384. package/plugins/filters/condition/date/tomorrow.js +3 -4
  385. package/plugins/filters/condition/date/yesterday.js +3 -4
  386. package/plugins/filters/condition/empty.js +3 -4
  387. package/plugins/filters/condition/endsWith.js +3 -4
  388. package/plugins/filters/condition/equal.js +3 -4
  389. package/plugins/filters/condition/false.js +1 -2
  390. package/plugins/filters/condition/greaterThan.js +3 -4
  391. package/plugins/filters/condition/greaterThanOrEqual.js +3 -4
  392. package/plugins/filters/condition/lessThan.js +3 -4
  393. package/plugins/filters/condition/lessThanOrEqual.js +3 -4
  394. package/plugins/filters/condition/none.js +3 -4
  395. package/plugins/filters/condition/notBetween.js +3 -4
  396. package/plugins/filters/condition/notContains.js +3 -4
  397. package/plugins/filters/condition/notEmpty.js +3 -4
  398. package/plugins/filters/condition/notEqual.js +3 -4
  399. package/plugins/filters/condition/true.js +1 -2
  400. package/plugins/filters/conditionCollection.d.ts +3 -2
  401. package/plugins/filters/conditionCollection.js +1 -2
  402. package/plugins/filters/conditionRegisterer.js +1 -2
  403. package/plugins/filters/conditionUpdateObserver.js +1 -2
  404. package/plugins/filters/constants.js +4 -8
  405. package/plugins/filters/constants.mjs +1 -1
  406. package/plugins/filters/dataFilter.js +1 -2
  407. package/plugins/filters/filters.d.ts +3 -5
  408. package/plugins/filters/filters.js +108 -66
  409. package/plugins/filters/filters.mjs +99 -55
  410. package/plugins/filters/logicalOperationRegisterer.js +1 -2
  411. package/plugins/filters/logicalOperations/conjunction.js +4 -6
  412. package/plugins/filters/logicalOperations/disjunction.js +4 -6
  413. package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.js +4 -6
  414. package/plugins/filters/menu/focusController.js +123 -0
  415. package/plugins/filters/menu/focusController.mjs +119 -0
  416. package/plugins/filters/menu/focusNavigator.js +30 -0
  417. package/plugins/filters/menu/focusNavigator.mjs +26 -0
  418. package/plugins/filters/ui/_base.js +37 -15
  419. package/plugins/filters/ui/_base.mjs +35 -13
  420. package/plugins/filters/ui/input.js +43 -35
  421. package/plugins/filters/ui/input.mjs +42 -33
  422. package/plugins/filters/ui/link.js +44 -12
  423. package/plugins/filters/ui/link.mjs +44 -11
  424. package/plugins/filters/ui/multipleSelect.js +237 -133
  425. package/plugins/filters/ui/multipleSelect.mjs +232 -127
  426. package/plugins/filters/ui/radioInput.js +42 -18
  427. package/plugins/filters/ui/radioInput.mjs +42 -17
  428. package/plugins/filters/ui/select.js +152 -77
  429. package/plugins/filters/ui/select.mjs +148 -72
  430. package/plugins/formulas/engine/settings.js +2 -4
  431. package/plugins/formulas/formulas.js +3 -6
  432. package/plugins/formulas/indexSyncer/axisSyncer.js +1 -2
  433. package/plugins/formulas/indexSyncer/index.js +1 -2
  434. package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +2 -2
  435. package/plugins/hiddenColumns/contextMenuItem/showColumn.js +2 -2
  436. package/plugins/hiddenColumns/hiddenColumns.d.ts +1 -0
  437. package/plugins/hiddenColumns/hiddenColumns.js +49 -6
  438. package/plugins/hiddenColumns/hiddenColumns.mjs +48 -3
  439. package/plugins/hiddenRows/contextMenuItem/hideRow.js +2 -2
  440. package/plugins/hiddenRows/contextMenuItem/showRow.js +2 -2
  441. package/plugins/hiddenRows/hiddenRows.d.ts +1 -0
  442. package/plugins/hiddenRows/hiddenRows.js +49 -6
  443. package/plugins/hiddenRows/hiddenRows.mjs +48 -3
  444. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +2 -2
  445. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +2 -2
  446. package/plugins/manualColumnFreeze/manualColumnFreeze.js +2 -4
  447. package/plugins/manualColumnMove/manualColumnMove.js +9 -17
  448. package/plugins/manualColumnMove/manualColumnMove.mjs +7 -13
  449. package/plugins/manualColumnMove/ui/_base.js +1 -2
  450. package/plugins/manualColumnMove/ui/backlight.js +1 -2
  451. package/plugins/manualColumnMove/ui/guideline.js +1 -2
  452. package/plugins/manualColumnResize/manualColumnResize.js +2 -4
  453. package/plugins/manualRowMove/manualRowMove.js +6 -23
  454. package/plugins/manualRowMove/manualRowMove.mjs +4 -19
  455. package/plugins/manualRowMove/ui/_base.js +1 -2
  456. package/plugins/manualRowMove/ui/backlight.js +1 -2
  457. package/plugins/manualRowMove/ui/guideline.js +1 -2
  458. package/plugins/manualRowResize/manualRowResize.js +2 -4
  459. package/plugins/mergeCells/calculations/autofill.js +1 -2
  460. package/plugins/mergeCells/calculations/selection.js +1 -2
  461. package/plugins/mergeCells/cellCoords.js +1 -2
  462. package/plugins/mergeCells/cellsCollection.js +1 -2
  463. package/plugins/mergeCells/contextMenuItem/toggleMerge.js +2 -2
  464. package/plugins/mergeCells/mergeCells.js +7 -20
  465. package/plugins/mergeCells/mergeCells.mjs +5 -16
  466. package/plugins/multiColumnSorting/multiColumnSorting.js +60 -6
  467. package/plugins/multiColumnSorting/multiColumnSorting.mjs +59 -3
  468. package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +2 -4
  469. package/plugins/nestedHeaders/nestedHeaders.js +263 -36
  470. package/plugins/nestedHeaders/nestedHeaders.mjs +262 -33
  471. package/plugins/nestedHeaders/stateManager/index.js +102 -3
  472. package/plugins/nestedHeaders/stateManager/index.mjs +102 -3
  473. package/plugins/nestedHeaders/stateManager/sourceSettings.js +1 -2
  474. package/plugins/nestedHeaders/utils/ghostTable.js +1 -2
  475. package/plugins/nestedRows/data/dataManager.js +1 -2
  476. package/plugins/nestedRows/nestedRows.js +47 -10
  477. package/plugins/nestedRows/nestedRows.mjs +45 -6
  478. package/plugins/nestedRows/ui/_base.js +1 -2
  479. package/plugins/nestedRows/ui/collapsing.js +1 -2
  480. package/plugins/nestedRows/ui/contextMenu.js +3 -4
  481. package/plugins/nestedRows/ui/headers.js +13 -3
  482. package/plugins/nestedRows/ui/headers.mjs +13 -2
  483. package/plugins/persistentState/persistentState.js +2 -4
  484. package/plugins/persistentState/storage.js +1 -2
  485. package/plugins/search/search.js +2 -4
  486. package/plugins/touchScroll/touchScroll.js +2 -4
  487. package/plugins/trimRows/trimRows.js +2 -4
  488. package/plugins/undoRedo/index.js +2 -2
  489. package/plugins/undoRedo/undoRedo.js +2 -4
  490. package/renderers/autocompleteRenderer/autocompleteRenderer.js +9 -2
  491. package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +8 -0
  492. package/renderers/baseRenderer/baseRenderer.js +18 -2
  493. package/renderers/baseRenderer/baseRenderer.mjs +18 -1
  494. package/renderers/checkboxRenderer/checkboxRenderer.js +10 -6
  495. package/renderers/checkboxRenderer/checkboxRenderer.mjs +9 -4
  496. package/renderers/dateRenderer/dateRenderer.d.ts +5 -0
  497. package/renderers/dateRenderer/dateRenderer.js +28 -0
  498. package/renderers/dateRenderer/dateRenderer.mjs +24 -0
  499. package/renderers/dateRenderer/index.d.ts +1 -0
  500. package/renderers/dateRenderer/index.js +6 -0
  501. package/renderers/dateRenderer/index.mjs +1 -0
  502. package/renderers/handsontableRenderer/handsontableRenderer.d.ts +5 -0
  503. package/renderers/handsontableRenderer/handsontableRenderer.js +28 -0
  504. package/renderers/handsontableRenderer/handsontableRenderer.mjs +24 -0
  505. package/renderers/handsontableRenderer/index.d.ts +1 -0
  506. package/renderers/handsontableRenderer/index.js +6 -0
  507. package/renderers/handsontableRenderer/index.mjs +1 -0
  508. package/renderers/htmlRenderer/htmlRenderer.js +1 -2
  509. package/renderers/index.d.ts +9 -0
  510. package/renderers/numericRenderer/numericRenderer.js +1 -2
  511. package/renderers/passwordRenderer/passwordRenderer.js +1 -2
  512. package/renderers/selectRenderer/index.d.ts +1 -0
  513. package/renderers/selectRenderer/index.js +6 -0
  514. package/renderers/selectRenderer/index.mjs +1 -0
  515. package/renderers/selectRenderer/selectRenderer.d.ts +5 -0
  516. package/renderers/selectRenderer/selectRenderer.js +26 -0
  517. package/renderers/selectRenderer/selectRenderer.mjs +22 -0
  518. package/renderers/textRenderer/textRenderer.js +1 -2
  519. package/renderers/timeRenderer/timeRenderer.js +1 -2
  520. package/selection/highlight/highlight.js +257 -73
  521. package/selection/highlight/highlight.mjs +250 -71
  522. package/selection/highlight/types/activeHeader.js +10 -8
  523. package/selection/highlight/types/activeHeader.mjs +10 -8
  524. package/selection/highlight/types/area.js +6 -18
  525. package/selection/highlight/types/area.mjs +6 -18
  526. package/selection/highlight/types/areaLayered.js +31 -0
  527. package/selection/highlight/types/areaLayered.mjs +26 -0
  528. package/selection/highlight/types/column.js +27 -0
  529. package/selection/highlight/types/column.mjs +22 -0
  530. package/selection/highlight/types/customSelection.js +7 -9
  531. package/selection/highlight/types/customSelection.mjs +7 -9
  532. package/selection/highlight/types/fill.js +5 -7
  533. package/selection/highlight/types/fill.mjs +5 -7
  534. package/selection/highlight/types/{cell.js → focus.js} +5 -7
  535. package/selection/highlight/types/{cell.mjs → focus.mjs} +5 -7
  536. package/selection/highlight/types/header.js +9 -18
  537. package/selection/highlight/types/header.mjs +9 -18
  538. package/selection/highlight/types/row.js +27 -0
  539. package/selection/highlight/types/row.mjs +22 -0
  540. package/selection/highlight/visualSelection.js +32 -29
  541. package/selection/highlight/visualSelection.mjs +31 -27
  542. package/selection/index.js +4 -7
  543. package/selection/index.mjs +2 -3
  544. package/selection/mouseEventHandler.js +7 -1
  545. package/selection/mouseEventHandler.mjs +7 -1
  546. package/selection/range.js +9 -10
  547. package/selection/range.mjs +8 -8
  548. package/selection/selection.js +334 -154
  549. package/selection/selection.mjs +330 -151
  550. package/selection/transformation.js +233 -94
  551. package/selection/transformation.mjs +232 -92
  552. package/selection/utils.js +20 -31
  553. package/selection/utils.mjs +16 -21
  554. package/settings.d.ts +4 -0
  555. package/shortcutContexts/commands/editor/closeAndSave.js +11 -0
  556. package/shortcutContexts/commands/editor/closeAndSave.mjs +8 -0
  557. package/shortcutContexts/commands/editor/closeWithoutSaving.js +11 -0
  558. package/shortcutContexts/commands/editor/closeWithoutSaving.mjs +8 -0
  559. package/shortcutContexts/commands/editor/fastOpen.js +15 -0
  560. package/shortcutContexts/commands/editor/fastOpen.mjs +12 -0
  561. package/shortcutContexts/commands/editor/index.js +16 -0
  562. package/shortcutContexts/commands/editor/index.mjs +12 -0
  563. package/shortcutContexts/commands/editor/open.js +26 -0
  564. package/shortcutContexts/commands/editor/open.mjs +23 -0
  565. package/shortcutContexts/commands/emptySelectedCells.js +10 -0
  566. package/shortcutContexts/commands/emptySelectedCells.mjs +7 -0
  567. package/shortcutContexts/commands/extendCellsSelection/down.js +14 -0
  568. package/shortcutContexts/commands/extendCellsSelection/down.mjs +11 -0
  569. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +24 -0
  570. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +21 -0
  571. package/shortcutContexts/commands/extendCellsSelection/index.js +26 -0
  572. package/shortcutContexts/commands/extendCellsSelection/index.mjs +22 -0
  573. package/shortcutContexts/commands/extendCellsSelection/left.js +14 -0
  574. package/shortcutContexts/commands/extendCellsSelection/left.mjs +11 -0
  575. package/shortcutContexts/commands/extendCellsSelection/right.js +14 -0
  576. package/shortcutContexts/commands/extendCellsSelection/right.mjs +11 -0
  577. package/shortcutContexts/commands/extendCellsSelection/toColumns.js +18 -0
  578. package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +15 -0
  579. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +28 -0
  580. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +25 -0
  581. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +18 -0
  582. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +15 -0
  583. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +18 -0
  584. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +15 -0
  585. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +28 -0
  586. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +25 -0
  587. package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +28 -0
  588. package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +25 -0
  589. package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +28 -0
  590. package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +25 -0
  591. package/shortcutContexts/commands/extendCellsSelection/toRows.js +18 -0
  592. package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +15 -0
  593. package/shortcutContexts/commands/extendCellsSelection/up.js +14 -0
  594. package/shortcutContexts/commands/extendCellsSelection/up.mjs +11 -0
  595. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +24 -0
  596. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +21 -0
  597. package/shortcutContexts/commands/index.js +35 -0
  598. package/shortcutContexts/commands/index.mjs +31 -0
  599. package/shortcutContexts/commands/moveCellSelection/down.js +12 -0
  600. package/shortcutContexts/commands/moveCellSelection/down.mjs +9 -0
  601. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.js +32 -0
  602. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs +29 -0
  603. package/shortcutContexts/commands/moveCellSelection/index.js +28 -0
  604. package/shortcutContexts/commands/moveCellSelection/index.mjs +24 -0
  605. package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +11 -0
  606. package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +8 -0
  607. package/shortcutContexts/commands/moveCellSelection/inlineStart.js +11 -0
  608. package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +8 -0
  609. package/shortcutContexts/commands/moveCellSelection/left.js +9 -0
  610. package/shortcutContexts/commands/moveCellSelection/left.mjs +6 -0
  611. package/shortcutContexts/commands/moveCellSelection/right.js +9 -0
  612. package/shortcutContexts/commands/moveCellSelection/right.mjs +6 -0
  613. package/shortcutContexts/commands/moveCellSelection/toMostBottom.js +16 -0
  614. package/shortcutContexts/commands/moveCellSelection/toMostBottom.mjs +13 -0
  615. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.js +17 -0
  616. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.mjs +14 -0
  617. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.js +13 -0
  618. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.mjs +10 -0
  619. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.js +16 -0
  620. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.mjs +13 -0
  621. package/shortcutContexts/commands/moveCellSelection/toMostLeft.js +18 -0
  622. package/shortcutContexts/commands/moveCellSelection/toMostLeft.mjs +15 -0
  623. package/shortcutContexts/commands/moveCellSelection/toMostRight.js +20 -0
  624. package/shortcutContexts/commands/moveCellSelection/toMostRight.mjs +17 -0
  625. package/shortcutContexts/commands/moveCellSelection/toMostTop.js +16 -0
  626. package/shortcutContexts/commands/moveCellSelection/toMostTop.mjs +13 -0
  627. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.js +18 -0
  628. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.mjs +15 -0
  629. package/shortcutContexts/commands/moveCellSelection/up.js +12 -0
  630. package/shortcutContexts/commands/moveCellSelection/up.mjs +9 -0
  631. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.js +32 -0
  632. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs +29 -0
  633. package/shortcutContexts/commands/populateSelectedCellsData.js +28 -0
  634. package/shortcutContexts/commands/populateSelectedCellsData.mjs +25 -0
  635. package/shortcutContexts/commands/scrollToFocusedCell.js +34 -0
  636. package/shortcutContexts/commands/scrollToFocusedCell.mjs +31 -0
  637. package/shortcutContexts/commands/selectAll.js +11 -0
  638. package/shortcutContexts/commands/selectAll.mjs +8 -0
  639. package/shortcutContexts/constants.js +11 -0
  640. package/shortcutContexts/constants.mjs +8 -0
  641. package/shortcutContexts/editor.js +25 -0
  642. package/shortcutContexts/editor.mjs +21 -0
  643. package/shortcutContexts/grid.js +167 -0
  644. package/shortcutContexts/grid.mjs +163 -0
  645. package/shortcutContexts/index.js +24 -0
  646. package/shortcutContexts/index.mjs +11 -0
  647. package/shortcuts/context.d.ts +1 -0
  648. package/shortcuts/context.js +23 -4
  649. package/shortcuts/context.mjs +23 -5
  650. package/shortcuts/manager.js +31 -7
  651. package/shortcuts/manager.mjs +32 -7
  652. package/shortcuts/recorder.js +30 -14
  653. package/shortcuts/recorder.mjs +30 -14
  654. package/shortcuts/utils.js +19 -5
  655. package/shortcuts/utils.mjs +18 -4
  656. package/tableView.js +113 -16
  657. package/tableView.mjs +113 -15
  658. package/utils/dataStructures/linkedList.js +1 -2
  659. package/utils/dataStructures/priorityMap.js +2 -4
  660. package/utils/dataStructures/queue.js +1 -2
  661. package/utils/dataStructures/stack.js +1 -2
  662. package/utils/dataStructures/tree.js +3 -6
  663. package/utils/ghostTable.js +32 -17
  664. package/utils/ghostTable.mjs +31 -15
  665. package/utils/interval.js +1 -2
  666. package/utils/paginator.js +151 -0
  667. package/utils/paginator.mjs +147 -0
  668. package/utils/parseTable.js +527 -83
  669. package/utils/parseTable.mjs +523 -82
  670. package/utils/rootInstance.js +2 -4
  671. package/utils/samplesGenerator.js +21 -13
  672. package/utils/samplesGenerator.mjs +20 -11
  673. package/utils/staticRegister.js +1 -2
  674. package/validators/autocompleteValidator/autocompleteValidator.js +1 -2
  675. package/validators/dateValidator/dateValidator.js +1 -2
  676. package/validators/numericValidator/numericValidator.js +1 -2
  677. package/validators/timeValidator/timeValidator.js +1 -2
  678. package/3rdparty/walkontable/src/selection.js +0 -295
  679. package/3rdparty/walkontable/src/selection.mjs +0 -290
  680. package/plugins/contextMenu/predefinedItems.js +0 -76
  681. package/plugins/contextMenu/predefinedItems.mjs +0 -68
  682. package/plugins/copyPaste/clipboardData.js +0 -18
  683. package/plugins/copyPaste/clipboardData.mjs +0 -14
  684. package/plugins/copyPaste/focusableElement.js +0 -186
  685. package/plugins/copyPaste/focusableElement.mjs +0 -180
  686. package/plugins/copyPaste/pasteEvent.js +0 -14
  687. package/plugins/copyPaste/pasteEvent.mjs +0 -9
  688. package/selection/highlight/constants.js +0 -15
  689. package/selection/highlight/constants.mjs +0 -6
  690. package/selection/highlight/types/index.js +0 -35
  691. package/selection/highlight/types/index.mjs +0 -31
@@ -18,15 +18,15 @@ class Event {
18
18
  * @param {Settings} wtSettings The walkontable settings.
19
19
  * @param {EventManager} eventManager The walkontable event manager.
20
20
  * @param {Table} wtTable The table.
21
- * @param {Selections} selections Selections.
21
+ * @param {SelectionManager} selectionManager Selections.
22
22
  * @param {Event} [parent=null] The main Event instance.
23
23
  */
24
- constructor(facadeGetter, domBindings, wtSettings, eventManager, wtTable, selections) {
24
+ constructor(facadeGetter, domBindings, wtSettings, eventManager, wtTable, selectionManager) {
25
25
  let parent = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null;
26
26
  this.wtSettings = wtSettings;
27
27
  this.domBindings = domBindings;
28
28
  this.wtTable = wtTable;
29
- this.selections = selections;
29
+ this.selectionManager = selectionManager;
30
30
  this.parent = parent;
31
31
 
32
32
  /**
@@ -41,7 +41,8 @@ class Event {
41
41
  * Should be use only for passing face called external origin methods, like registered event listeners.
42
42
  * It provides backward compatibility by getting instance facade.
43
43
  *
44
- * @todo Consider about removing this from Event class, because it make relationship into facade (implicit circular dependency).
44
+ * @todo Consider about removing this from Event class, because it make relationship into facade (implicit circular
45
+ * dependency).
45
46
  * @todo Con. Maybe passing listener caller as an ioc from faced resolves this issue. To rethink later.
46
47
  *
47
48
  * @type {FacadeGetter}
@@ -134,11 +135,11 @@ class Event {
134
135
  cell.coords = this.wtTable.getCoords(TD);
135
136
  cell.TD = TD;
136
137
  } else if ((0, _element.hasClass)(elem, 'wtBorder') && (0, _element.hasClass)(elem, 'current')) {
137
- cell.coords = this.selections.getCell().cellRange.highlight;
138
+ cell.coords = this.selectionManager.getFocusSelection().cellRange.highlight;
138
139
  cell.TD = this.wtTable.getCell(cell.coords);
139
140
  } else if ((0, _element.hasClass)(elem, 'wtBorder') && (0, _element.hasClass)(elem, 'area')) {
140
- if (this.selections.createOrGetArea().cellRange) {
141
- cell.coords = this.selections.createOrGetArea().cellRange.to;
141
+ if (this.selectionManager.getAreaSelection().cellRange) {
142
+ cell.coords = this.selectionManager.getAreaSelection().cellRange.to;
142
143
  cell.TD = this.wtTable.getCell(cell.coords);
143
144
  }
144
145
  }
@@ -157,8 +158,9 @@ class Event {
157
158
  const getParentNode = (0, _function.partial)(_element.getParent, event.target);
158
159
  const realTarget = event.target;
159
160
 
160
- // ignore focusable element from mouse down processing (https://github.com/handsontable/handsontable/issues/3555)
161
- if (realTarget === activeElement || getParentNode(0) === activeElement || getParentNode(1) === activeElement) {
161
+ // ignore non-TD focusable elements from mouse down processing
162
+ // (https://github.com/handsontable/handsontable/issues/3555)
163
+ if (!['TD', 'TH'].includes(activeElement.nodeName) && (realTarget === activeElement || getParentNode(0) === activeElement || getParentNode(1) === activeElement)) {
162
164
  return;
163
165
  }
164
166
  const cell = this.parentCell(realTarget);
@@ -276,7 +278,7 @@ class Event {
276
278
  */
277
279
  onTouchStart(event) {
278
280
  const priv = privatePool.get(this);
279
- priv.selectedCellBeforeTouchEnd = this.selections.getCell().cellRange;
281
+ priv.selectedCellBeforeTouchEnd = this.selectionManager.getFocusSelection().cellRange;
280
282
  this.touchApplied = true;
281
283
  this.onMouseDown(event);
282
284
  }
@@ -344,5 +346,4 @@ class Event {
344
346
  this.eventManager.destroy();
345
347
  }
346
348
  }
347
- var _default = Event;
348
- exports.default = _default;
349
+ var _default = exports.default = Event;
@@ -15,15 +15,15 @@ class Event {
15
15
  * @param {Settings} wtSettings The walkontable settings.
16
16
  * @param {EventManager} eventManager The walkontable event manager.
17
17
  * @param {Table} wtTable The table.
18
- * @param {Selections} selections Selections.
18
+ * @param {SelectionManager} selectionManager Selections.
19
19
  * @param {Event} [parent=null] The main Event instance.
20
20
  */
21
- constructor(facadeGetter, domBindings, wtSettings, eventManager, wtTable, selections) {
21
+ constructor(facadeGetter, domBindings, wtSettings, eventManager, wtTable, selectionManager) {
22
22
  let parent = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null;
23
23
  this.wtSettings = wtSettings;
24
24
  this.domBindings = domBindings;
25
25
  this.wtTable = wtTable;
26
- this.selections = selections;
26
+ this.selectionManager = selectionManager;
27
27
  this.parent = parent;
28
28
 
29
29
  /**
@@ -38,7 +38,8 @@ class Event {
38
38
  * Should be use only for passing face called external origin methods, like registered event listeners.
39
39
  * It provides backward compatibility by getting instance facade.
40
40
  *
41
- * @todo Consider about removing this from Event class, because it make relationship into facade (implicit circular dependency).
41
+ * @todo Consider about removing this from Event class, because it make relationship into facade (implicit circular
42
+ * dependency).
42
43
  * @todo Con. Maybe passing listener caller as an ioc from faced resolves this issue. To rethink later.
43
44
  *
44
45
  * @type {FacadeGetter}
@@ -131,11 +132,11 @@ class Event {
131
132
  cell.coords = this.wtTable.getCoords(TD);
132
133
  cell.TD = TD;
133
134
  } else if (hasClass(elem, 'wtBorder') && hasClass(elem, 'current')) {
134
- cell.coords = this.selections.getCell().cellRange.highlight;
135
+ cell.coords = this.selectionManager.getFocusSelection().cellRange.highlight;
135
136
  cell.TD = this.wtTable.getCell(cell.coords);
136
137
  } else if (hasClass(elem, 'wtBorder') && hasClass(elem, 'area')) {
137
- if (this.selections.createOrGetArea().cellRange) {
138
- cell.coords = this.selections.createOrGetArea().cellRange.to;
138
+ if (this.selectionManager.getAreaSelection().cellRange) {
139
+ cell.coords = this.selectionManager.getAreaSelection().cellRange.to;
139
140
  cell.TD = this.wtTable.getCell(cell.coords);
140
141
  }
141
142
  }
@@ -154,8 +155,9 @@ class Event {
154
155
  const getParentNode = partial(getParent, event.target);
155
156
  const realTarget = event.target;
156
157
 
157
- // ignore focusable element from mouse down processing (https://github.com/handsontable/handsontable/issues/3555)
158
- if (realTarget === activeElement || getParentNode(0) === activeElement || getParentNode(1) === activeElement) {
158
+ // ignore non-TD focusable elements from mouse down processing
159
+ // (https://github.com/handsontable/handsontable/issues/3555)
160
+ if (!['TD', 'TH'].includes(activeElement.nodeName) && (realTarget === activeElement || getParentNode(0) === activeElement || getParentNode(1) === activeElement)) {
159
161
  return;
160
162
  }
161
163
  const cell = this.parentCell(realTarget);
@@ -273,7 +275,7 @@ class Event {
273
275
  */
274
276
  onTouchStart(event) {
275
277
  const priv = privatePool.get(this);
276
- priv.selectedCellBeforeTouchEnd = this.selections.getCell().cellRange;
278
+ priv.selectedCellBeforeTouchEnd = this.selectionManager.getFocusSelection().cellRange;
277
279
  this.touchApplied = true;
278
280
  this.onMouseDown(event);
279
281
  }
@@ -50,8 +50,8 @@ class WalkontableFacade {
50
50
  return this._wot.cloneOverlay; // todo create facade
51
51
  }
52
52
 
53
- get selections() {
54
- return this._wot.selections; // todo create facade
53
+ get selectionManager() {
54
+ return this._wot.selectionManager; // todo create facade
55
55
  }
56
56
 
57
57
  get wtViewport() {
@@ -46,8 +46,8 @@ export default class WalkontableFacade {
46
46
  return this._wot.cloneOverlay; // todo create facade
47
47
  }
48
48
 
49
- get selections() {
50
- return this._wot.selections; // todo create facade
49
+ get selectionManager() {
50
+ return this._wot.selectionManager; // todo create facade
51
51
  }
52
52
 
53
53
  get wtViewport() {
@@ -80,5 +80,4 @@ class ColumnFilter {
80
80
  return this.unOffsettedTH(this.sourceToRendered(index));
81
81
  }
82
82
  }
83
- var _default = ColumnFilter;
84
- exports.default = _default;
83
+ var _default = exports.default = ColumnFilter;
@@ -80,5 +80,4 @@ class RowFilter {
80
80
  return this.unOffsettedTH(this.sourceToRendered(index));
81
81
  }
82
82
  }
83
- var _default = RowFilter;
84
- exports.default = _default;
83
+ var _default = exports.default = RowFilter;
@@ -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");
@@ -21,6 +29,6 @@ exports.OrderView = _orderView.OrderView;
21
29
  exports.SharedOrderView = _orderView.SharedOrderView;
22
30
  var _eventManager = require("../../../eventManager");
23
31
  exports.getListenersCounter = _eventManager.getListenersCounter;
24
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
25
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
32
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
33
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
26
34
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -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
 
@@ -4,17 +4,10 @@ exports.__esModule = true;
4
4
  /**
5
5
  * @typedef {'top'|'bottom'|'inline_start'|'top_inline_start_corner'|'bottom_inline_start_corner'} CLONE_TYPES_ENUM
6
6
  */
7
- const CLONE_TOP = 'top';
8
- exports.CLONE_TOP = CLONE_TOP;
9
- const CLONE_BOTTOM = 'bottom';
10
- exports.CLONE_BOTTOM = CLONE_BOTTOM;
11
- const CLONE_INLINE_START = 'inline_start';
12
- exports.CLONE_INLINE_START = CLONE_INLINE_START;
13
- const CLONE_TOP_INLINE_START_CORNER = 'top_inline_start_corner';
14
- exports.CLONE_TOP_INLINE_START_CORNER = CLONE_TOP_INLINE_START_CORNER;
15
- const CLONE_BOTTOM_INLINE_START_CORNER = 'bottom_inline_start_corner';
16
- exports.CLONE_BOTTOM_INLINE_START_CORNER = CLONE_BOTTOM_INLINE_START_CORNER;
17
- const CLONE_TYPES = [CLONE_TOP, CLONE_BOTTOM, CLONE_INLINE_START, CLONE_TOP_INLINE_START_CORNER, CLONE_BOTTOM_INLINE_START_CORNER];
18
- exports.CLONE_TYPES = CLONE_TYPES;
19
- const CLONE_CLASS_NAMES = new Map([[CLONE_TOP, `ht_clone_${CLONE_TOP}`], [CLONE_BOTTOM, `ht_clone_${CLONE_BOTTOM}`], [CLONE_INLINE_START, `ht_clone_${CLONE_INLINE_START} ht_clone_left`], [CLONE_TOP_INLINE_START_CORNER, `ht_clone_${CLONE_TOP_INLINE_START_CORNER} ht_clone_top_left_corner`], [CLONE_BOTTOM_INLINE_START_CORNER, `ht_clone_${CLONE_BOTTOM_INLINE_START_CORNER} ht_clone_bottom_left_corner`]]);
20
- exports.CLONE_CLASS_NAMES = CLONE_CLASS_NAMES;
7
+ const CLONE_TOP = exports.CLONE_TOP = 'top';
8
+ const CLONE_BOTTOM = exports.CLONE_BOTTOM = 'bottom';
9
+ const CLONE_INLINE_START = exports.CLONE_INLINE_START = 'inline_start';
10
+ const CLONE_TOP_INLINE_START_CORNER = exports.CLONE_TOP_INLINE_START_CORNER = 'top_inline_start_corner';
11
+ const CLONE_BOTTOM_INLINE_START_CORNER = exports.CLONE_BOTTOM_INLINE_START_CORNER = 'bottom_inline_start_corner';
12
+ const CLONE_TYPES = exports.CLONE_TYPES = [CLONE_TOP, CLONE_BOTTOM, CLONE_INLINE_START, CLONE_TOP_INLINE_START_CORNER, CLONE_BOTTOM_INLINE_START_CORNER];
13
+ const CLONE_CLASS_NAMES = exports.CLONE_CLASS_NAMES = new Map([[CLONE_TOP, `ht_clone_${CLONE_TOP}`], [CLONE_BOTTOM, `ht_clone_${CLONE_BOTTOM}`], [CLONE_INLINE_START, `ht_clone_${CLONE_INLINE_START} ht_clone_left`], [CLONE_TOP_INLINE_START_CORNER, `ht_clone_${CLONE_TOP_INLINE_START_CORNER} ht_clone_top_left_corner`], [CLONE_BOTTOM_INLINE_START_CORNER, `ht_clone_${CLONE_BOTTOM_INLINE_START_CORNER} ht_clone_bottom_left_corner`]]);
@@ -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
@@ -648,5 +648,4 @@ class Overlays {
648
648
  });
649
649
  }
650
650
  }
651
- var _default = Overlays;
652
- exports.default = _default;
651
+ var _default = exports.default = Overlays;
@@ -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,21 @@ 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
+
93
+ // Remove all accessibility-related attributes for the header to start fresh.
94
+ (0, _element.removeAttribute)(TH, [new RegExp('aria-(.*)'), new RegExp('role')]);
95
+ if (this.table.isAriaEnabled()) {
96
+ (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)()])]);
97
+ }
85
98
  columnHeaderFunctions[rowHeaderIndex](sourceColumnIndex, TH, rowHeaderIndex);
86
99
  }
87
100
  }
@@ -1,5 +1,6 @@
1
- import { empty } from "./../../../../helpers/dom/element.mjs";
1
+ import { empty, setAttribute, removeAttribute } 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,21 @@ 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
+
89
+ // Remove all accessibility-related attributes for the header to start fresh.
90
+ removeAttribute(TH, [new RegExp('aria-(.*)'), new RegExp('role')]);
91
+ if (this.table.isAriaEnabled()) {
92
+ setAttribute(TH, [A11Y_COLINDEX(renderedColumnIndex + 1 + this.table.rowHeadersCount), A11Y_TABINDEX(-1), ...(renderedColumnIndex < 0 ? [A11Y_PRESENTATION()] : [A11Y_COLUMNHEADER(), A11Y_SCOPE_COL()])]);
93
+ }
81
94
  columnHeaderFunctions[rowHeaderIndex](sourceColumnIndex, TH, rowHeaderIndex);
82
95
  }
83
96
  }
@@ -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,12 @@ class RowHeadersRenderer extends _base.default {
74
76
  const TH = orderView.getCurrentNode();
75
77
  TH.className = '';
76
78
  TH.removeAttribute('style');
79
+
80
+ // Remove all accessibility-related attributes for the header to start fresh.
81
+ (0, _element.removeAttribute)(TH, [new RegExp('aria-(.*)'), new RegExp('role')]);
82
+ if (this.table.isAriaEnabled()) {
83
+ (0, _element.setAttribute)(TH, [(0, _a11y.A11Y_ROWHEADER)(), (0, _a11y.A11Y_SCOPE_ROW)(), (0, _a11y.A11Y_COLINDEX)(visibleColumnIndex + 1), (0, _a11y.A11Y_TABINDEX)(-1)]);
84
+ }
77
85
  rowHeaderFunctions[visibleColumnIndex](sourceRowIndex, TH, visibleColumnIndex);
78
86
  }
79
87
  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, removeAttribute } 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,12 @@ export default class RowHeadersRenderer extends BaseRenderer {
70
72
  const TH = orderView.getCurrentNode();
71
73
  TH.className = '';
72
74
  TH.removeAttribute('style');
75
+
76
+ // Remove all accessibility-related attributes for the header to start fresh.
77
+ removeAttribute(TH, [new RegExp('aria-(.*)'), new RegExp('role')]);
78
+ if (this.table.isAriaEnabled()) {
79
+ setAttribute(TH, [A11Y_ROWHEADER(), A11Y_SCOPE_ROW(), A11Y_COLINDEX(visibleColumnIndex + 1), A11Y_TABINDEX(-1)]);
80
+ }
73
81
  rowHeaderFunctions[visibleColumnIndex](sourceRowIndex, TH, visibleColumnIndex);
74
82
  }
75
83
  orderView.end();