handsontable 0.0.0-next-b66c79f-20230713 → 0.0.0-next-08765b9-20230714

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 (373) hide show
  1. package/3rdparty/walkontable/src/cell/coords.d.ts +6 -1
  2. package/3rdparty/walkontable/src/cell/coords.js +87 -33
  3. package/3rdparty/walkontable/src/cell/coords.mjs +87 -33
  4. package/3rdparty/walkontable/src/cell/range.d.ts +9 -2
  5. package/3rdparty/walkontable/src/cell/range.js +92 -46
  6. package/3rdparty/walkontable/src/cell/range.mjs +92 -46
  7. package/3rdparty/walkontable/src/core/_base.js +41 -33
  8. package/3rdparty/walkontable/src/core/_base.mjs +41 -33
  9. package/3rdparty/walkontable/src/core/clone.js +8 -5
  10. package/3rdparty/walkontable/src/core/clone.mjs +8 -5
  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 +9 -8
  14. package/3rdparty/walkontable/src/event.mjs +9 -8
  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 +11 -9
  20. package/3rdparty/walkontable/src/overlay/_base.mjs +11 -9
  21. package/3rdparty/walkontable/src/overlay/bottom.js +10 -8
  22. package/3rdparty/walkontable/src/overlay/bottom.mjs +10 -8
  23. package/3rdparty/walkontable/src/overlay/inlineStart.js +2 -6
  24. package/3rdparty/walkontable/src/overlay/inlineStart.mjs +2 -6
  25. package/3rdparty/walkontable/src/overlay/top.js +12 -14
  26. package/3rdparty/walkontable/src/overlay/top.mjs +12 -14
  27. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.js +16 -13
  28. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.mjs +16 -13
  29. package/3rdparty/walkontable/src/overlays.js +75 -80
  30. package/3rdparty/walkontable/src/overlays.mjs +75 -80
  31. package/3rdparty/walkontable/src/scroll.js +27 -24
  32. package/3rdparty/walkontable/src/scroll.mjs +27 -24
  33. package/3rdparty/walkontable/src/{border.js → selection/border/border.js} +7 -12
  34. package/3rdparty/walkontable/src/{border.mjs → selection/border/border.mjs} +7 -12
  35. package/3rdparty/walkontable/src/selection/border/constants.js +16 -0
  36. package/3rdparty/walkontable/src/selection/border/constants.mjs +12 -0
  37. package/3rdparty/walkontable/src/selection/constants.js +62 -0
  38. package/3rdparty/walkontable/src/selection/constants.mjs +51 -0
  39. package/3rdparty/walkontable/src/selection/index.js +26 -0
  40. package/3rdparty/walkontable/src/selection/index.mjs +5 -0
  41. package/3rdparty/walkontable/src/selection/manager.js +259 -0
  42. package/3rdparty/walkontable/src/selection/manager.mjs +254 -0
  43. package/3rdparty/walkontable/src/selection/scanner.js +270 -0
  44. package/3rdparty/walkontable/src/selection/scanner.mjs +267 -0
  45. package/3rdparty/walkontable/src/selection/selection.js +101 -0
  46. package/3rdparty/walkontable/src/selection/selection.mjs +96 -0
  47. package/3rdparty/walkontable/src/settings.js +18 -17
  48. package/3rdparty/walkontable/src/settings.mjs +18 -17
  49. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +9 -0
  50. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +9 -0
  51. package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +9 -0
  52. package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +9 -0
  53. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.js +9 -0
  54. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.mjs +9 -0
  55. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +9 -0
  56. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +9 -0
  57. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +9 -0
  58. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +9 -0
  59. package/3rdparty/walkontable/src/table.js +48 -115
  60. package/3rdparty/walkontable/src/table.mjs +49 -116
  61. package/base.js +2 -2
  62. package/base.mjs +2 -2
  63. package/core/focusCatcher/focusDetector.js +58 -0
  64. package/core/focusCatcher/focusDetector.mjs +54 -0
  65. package/core/focusCatcher/index.js +142 -0
  66. package/core/focusCatcher/index.mjs +138 -0
  67. package/core/index.js +9 -0
  68. package/core/index.mjs +1 -0
  69. package/core.d.ts +6 -3
  70. package/core.js +181 -298
  71. package/core.mjs +181 -298
  72. package/dataMap/metaManager/metaLayers/cellMeta.js +2 -1
  73. package/dataMap/metaManager/metaLayers/cellMeta.mjs +2 -1
  74. package/dataMap/metaManager/metaLayers/globalMeta.js +1 -1
  75. package/dataMap/metaManager/metaLayers/globalMeta.mjs +1 -1
  76. package/dataMap/metaManager/metaSchema.js +41 -0
  77. package/dataMap/metaManager/metaSchema.mjs +41 -0
  78. package/dataMap/metaManager/mods/dynamicCellMeta.js +3 -2
  79. package/dataMap/metaManager/mods/dynamicCellMeta.mjs +3 -2
  80. package/dataMap/metaManager/utils.js +4 -2
  81. package/dataMap/metaManager/utils.mjs +4 -2
  82. package/dist/handsontable.css +19 -3
  83. package/dist/handsontable.full.css +19 -3
  84. package/dist/handsontable.full.js +10739 -7037
  85. package/dist/handsontable.full.min.css +3 -3
  86. package/dist/handsontable.full.min.js +25 -25
  87. package/dist/handsontable.js +24884 -21182
  88. package/dist/handsontable.min.css +3 -3
  89. package/dist/handsontable.min.js +19 -19
  90. package/editorManager.js +11 -75
  91. package/editorManager.mjs +11 -74
  92. package/editors/autocompleteEditor/autocompleteEditor.js +70 -67
  93. package/editors/autocompleteEditor/autocompleteEditor.mjs +70 -67
  94. package/editors/baseEditor/baseEditor.js +1 -1
  95. package/editors/baseEditor/baseEditor.mjs +1 -1
  96. package/editors/dateEditor/dateEditor.js +2 -1
  97. package/editors/dateEditor/dateEditor.mjs +2 -1
  98. package/editors/textEditor/textEditor.js +3 -11
  99. package/editors/textEditor/textEditor.mjs +4 -12
  100. package/helpers/mixed.js +1 -1
  101. package/helpers/mixed.mjs +1 -1
  102. package/helpers/number.d.ts +1 -0
  103. package/helpers/number.js +18 -0
  104. package/helpers/number.mjs +17 -0
  105. package/helpers/object.js +1 -0
  106. package/helpers/object.mjs +1 -0
  107. package/index.js +5 -5
  108. package/index.mjs +5 -5
  109. package/package.json +1 -1
  110. package/pluginHooks.d.ts +7 -1
  111. package/pluginHooks.js +106 -1
  112. package/pluginHooks.mjs +106 -1
  113. package/plugins/autoColumnSize/autoColumnSize.js +4 -1
  114. package/plugins/autoColumnSize/autoColumnSize.mjs +4 -1
  115. package/plugins/collapsibleColumns/collapsibleColumns.js +110 -40
  116. package/plugins/collapsibleColumns/collapsibleColumns.mjs +110 -40
  117. package/plugins/columnSorting/columnSorting.js +40 -1
  118. package/plugins/columnSorting/columnSorting.mjs +40 -3
  119. package/plugins/columnSorting/columnStatesManager.js +2 -1
  120. package/plugins/columnSorting/columnStatesManager.mjs +2 -1
  121. package/plugins/columnSorting/index.js +3 -1
  122. package/plugins/columnSorting/index.mjs +1 -1
  123. package/plugins/comments/commentEditor.js +1 -0
  124. package/plugins/comments/commentEditor.mjs +1 -0
  125. package/plugins/comments/comments.js +253 -191
  126. package/plugins/comments/comments.mjs +252 -192
  127. package/plugins/comments/contextMenuItem/addEditComment.js +41 -0
  128. package/plugins/comments/contextMenuItem/addEditComment.mjs +35 -0
  129. package/plugins/comments/contextMenuItem/readOnlyComment.js +49 -0
  130. package/plugins/comments/contextMenuItem/readOnlyComment.mjs +43 -0
  131. package/plugins/comments/contextMenuItem/removeComment.js +38 -0
  132. package/plugins/comments/contextMenuItem/removeComment.mjs +32 -0
  133. package/plugins/contextMenu/contextMenu.d.ts +1 -1
  134. package/plugins/contextMenu/contextMenu.js +72 -30
  135. package/plugins/contextMenu/contextMenu.mjs +73 -31
  136. package/plugins/contextMenu/predefinedItems/alignment.js +7 -0
  137. package/plugins/contextMenu/predefinedItems/alignment.mjs +7 -0
  138. package/plugins/contextMenu/predefinedItems/clearColumn.js +5 -3
  139. package/plugins/contextMenu/predefinedItems/clearColumn.mjs +5 -3
  140. package/plugins/contextMenu/predefinedItems/columnLeft.js +5 -3
  141. package/plugins/contextMenu/predefinedItems/columnLeft.mjs +5 -3
  142. package/plugins/contextMenu/predefinedItems/columnRight.js +5 -3
  143. package/plugins/contextMenu/predefinedItems/columnRight.mjs +5 -3
  144. package/plugins/contextMenu/predefinedItems/readOnly.js +7 -0
  145. package/plugins/contextMenu/predefinedItems/readOnly.mjs +7 -0
  146. package/plugins/contextMenu/predefinedItems/removeColumn.js +7 -5
  147. package/plugins/contextMenu/predefinedItems/removeColumn.mjs +5 -3
  148. package/plugins/contextMenu/predefinedItems/removeRow.js +7 -5
  149. package/plugins/contextMenu/predefinedItems/removeRow.mjs +5 -3
  150. package/plugins/contextMenu/predefinedItems/rowAbove.js +5 -3
  151. package/plugins/contextMenu/predefinedItems/rowAbove.mjs +5 -3
  152. package/plugins/contextMenu/predefinedItems/rowBelow.js +5 -3
  153. package/plugins/contextMenu/predefinedItems/rowBelow.mjs +5 -3
  154. package/plugins/contextMenu/utils.js +28 -16
  155. package/plugins/contextMenu/utils.mjs +27 -15
  156. package/plugins/copyPaste/contextMenuItem/copy.js +7 -0
  157. package/plugins/copyPaste/contextMenuItem/copy.mjs +7 -0
  158. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.js +9 -1
  159. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.mjs +9 -1
  160. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.js +9 -1
  161. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.mjs +9 -1
  162. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.js +9 -1
  163. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.mjs +9 -1
  164. package/plugins/copyPaste/contextMenuItem/cut.js +7 -0
  165. package/plugins/copyPaste/contextMenuItem/cut.mjs +7 -0
  166. package/plugins/copyPaste/copyPaste.js +12 -6
  167. package/plugins/copyPaste/copyPaste.mjs +12 -6
  168. package/plugins/customBorders/customBorders.js +36 -29
  169. package/plugins/customBorders/customBorders.mjs +37 -30
  170. package/plugins/customBorders/utils.js +3 -3
  171. package/plugins/customBorders/utils.mjs +3 -3
  172. package/plugins/dropdownMenu/dropdownMenu.d.ts +1 -1
  173. package/plugins/dropdownMenu/dropdownMenu.js +89 -32
  174. package/plugins/dropdownMenu/dropdownMenu.mjs +89 -32
  175. package/plugins/filters/conditionCollection.js +6 -5
  176. package/plugins/filters/conditionCollection.mjs +6 -5
  177. package/plugins/filters/filters.js +44 -21
  178. package/plugins/filters/filters.mjs +43 -20
  179. package/plugins/formulas/engine/register.js +3 -3
  180. package/plugins/formulas/engine/register.mjs +3 -3
  181. package/plugins/formulas/engine/settings.js +6 -3
  182. package/plugins/formulas/engine/settings.mjs +6 -3
  183. package/plugins/formulas/formulas.js +151 -143
  184. package/plugins/formulas/formulas.mjs +151 -143
  185. package/plugins/formulas/indexSyncer/axisSyncer.js +115 -79
  186. package/plugins/formulas/indexSyncer/axisSyncer.mjs +115 -79
  187. package/plugins/formulas/indexSyncer/index.js +100 -64
  188. package/plugins/formulas/indexSyncer/index.mjs +100 -64
  189. package/plugins/hiddenColumns/contextMenuItem/showColumn.js +2 -2
  190. package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +2 -2
  191. package/plugins/hiddenColumns/hiddenColumns.js +51 -34
  192. package/plugins/hiddenColumns/hiddenColumns.mjs +51 -34
  193. package/plugins/hiddenRows/contextMenuItem/showRow.js +2 -2
  194. package/plugins/hiddenRows/contextMenuItem/showRow.mjs +2 -2
  195. package/plugins/hiddenRows/hiddenRows.js +50 -33
  196. package/plugins/hiddenRows/hiddenRows.mjs +50 -33
  197. package/plugins/manualRowResize/manualRowResize.js +2 -1
  198. package/plugins/manualRowResize/manualRowResize.mjs +2 -1
  199. package/plugins/mergeCells/mergeCells.js +6 -17
  200. package/plugins/mergeCells/mergeCells.mjs +6 -17
  201. package/plugins/multiColumnSorting/multiColumnSorting.js +37 -2
  202. package/plugins/multiColumnSorting/multiColumnSorting.mjs +37 -2
  203. package/plugins/nestedHeaders/nestedHeaders.js +209 -75
  204. package/plugins/nestedHeaders/nestedHeaders.mjs +208 -74
  205. package/plugins/nestedHeaders/stateManager/headersTree.js +58 -38
  206. package/plugins/nestedHeaders/stateManager/headersTree.mjs +58 -38
  207. package/plugins/nestedHeaders/stateManager/index.js +107 -49
  208. package/plugins/nestedHeaders/stateManager/index.mjs +105 -47
  209. package/plugins/nestedHeaders/stateManager/nodeModifiers/collapse.js +1 -1
  210. package/plugins/nestedHeaders/stateManager/nodeModifiers/collapse.mjs +1 -1
  211. package/plugins/nestedHeaders/stateManager/sourceSettings.js +57 -37
  212. package/plugins/nestedHeaders/stateManager/sourceSettings.mjs +57 -37
  213. package/plugins/nestedHeaders/utils/ghostTable.js +39 -35
  214. package/plugins/nestedHeaders/utils/ghostTable.mjs +39 -35
  215. package/plugins/nestedRows/data/dataManager.js +4 -2
  216. package/plugins/nestedRows/data/dataManager.mjs +4 -2
  217. package/plugins/nestedRows/nestedRows.js +41 -0
  218. package/plugins/nestedRows/nestedRows.mjs +41 -0
  219. package/plugins/persistentState/storage.js +1 -0
  220. package/plugins/persistentState/storage.mjs +1 -0
  221. package/plugins/undoRedo/undoRedo.js +2 -1
  222. package/plugins/undoRedo/undoRedo.mjs +2 -1
  223. package/renderers/checkboxRenderer/checkboxRenderer.js +2 -2
  224. package/renderers/checkboxRenderer/checkboxRenderer.mjs +1 -1
  225. package/selection/highlight/highlight.js +256 -71
  226. package/selection/highlight/highlight.mjs +250 -71
  227. package/selection/highlight/types/activeHeader.js +10 -8
  228. package/selection/highlight/types/activeHeader.mjs +10 -8
  229. package/selection/highlight/types/area.js +6 -18
  230. package/selection/highlight/types/area.mjs +6 -18
  231. package/selection/highlight/types/areaLayered.js +31 -0
  232. package/selection/highlight/types/areaLayered.mjs +26 -0
  233. package/selection/highlight/types/column.js +27 -0
  234. package/selection/highlight/types/column.mjs +22 -0
  235. package/selection/highlight/types/customSelection.js +7 -9
  236. package/selection/highlight/types/customSelection.mjs +7 -9
  237. package/selection/highlight/types/fill.js +5 -7
  238. package/selection/highlight/types/fill.mjs +5 -7
  239. package/selection/highlight/types/{cell.js → focus.js} +5 -7
  240. package/selection/highlight/types/{cell.mjs → focus.mjs} +5 -7
  241. package/selection/highlight/types/header.js +9 -18
  242. package/selection/highlight/types/header.mjs +9 -18
  243. package/selection/highlight/types/row.js +27 -0
  244. package/selection/highlight/types/row.mjs +22 -0
  245. package/selection/highlight/visualSelection.js +41 -33
  246. package/selection/highlight/visualSelection.mjs +41 -33
  247. package/selection/index.js +4 -7
  248. package/selection/index.mjs +2 -3
  249. package/selection/mouseEventHandler.js +1 -1
  250. package/selection/mouseEventHandler.mjs +1 -1
  251. package/selection/range.js +8 -8
  252. package/selection/range.mjs +8 -8
  253. package/selection/selection.js +290 -154
  254. package/selection/selection.mjs +287 -153
  255. package/selection/transformation.js +232 -90
  256. package/selection/transformation.mjs +232 -90
  257. package/selection/utils.js +15 -21
  258. package/selection/utils.mjs +16 -21
  259. package/settings.d.ts +2 -0
  260. package/shortcutContexts/commands/editor/closeAndSave.js +12 -0
  261. package/shortcutContexts/commands/editor/closeAndSave.mjs +8 -0
  262. package/shortcutContexts/commands/editor/closeWithoutSaving.js +12 -0
  263. package/shortcutContexts/commands/editor/closeWithoutSaving.mjs +8 -0
  264. package/shortcutContexts/commands/editor/fastOpen.js +16 -0
  265. package/shortcutContexts/commands/editor/fastOpen.mjs +12 -0
  266. package/shortcutContexts/commands/editor/index.js +16 -0
  267. package/shortcutContexts/commands/editor/index.mjs +12 -0
  268. package/shortcutContexts/commands/editor/open.js +27 -0
  269. package/shortcutContexts/commands/editor/open.mjs +23 -0
  270. package/shortcutContexts/commands/emptySelectedCells.js +11 -0
  271. package/shortcutContexts/commands/emptySelectedCells.mjs +7 -0
  272. package/shortcutContexts/commands/extendCellsSelection/down.js +15 -0
  273. package/shortcutContexts/commands/extendCellsSelection/down.mjs +11 -0
  274. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +21 -0
  275. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +17 -0
  276. package/shortcutContexts/commands/extendCellsSelection/index.js +26 -0
  277. package/shortcutContexts/commands/extendCellsSelection/index.mjs +22 -0
  278. package/shortcutContexts/commands/extendCellsSelection/left.js +15 -0
  279. package/shortcutContexts/commands/extendCellsSelection/left.mjs +11 -0
  280. package/shortcutContexts/commands/extendCellsSelection/right.js +15 -0
  281. package/shortcutContexts/commands/extendCellsSelection/right.mjs +11 -0
  282. package/shortcutContexts/commands/extendCellsSelection/toColumns.js +19 -0
  283. package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +15 -0
  284. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +29 -0
  285. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +25 -0
  286. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +19 -0
  287. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +15 -0
  288. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +19 -0
  289. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +15 -0
  290. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +29 -0
  291. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +25 -0
  292. package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +29 -0
  293. package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +25 -0
  294. package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +29 -0
  295. package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +25 -0
  296. package/shortcutContexts/commands/extendCellsSelection/toRows.js +19 -0
  297. package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +15 -0
  298. package/shortcutContexts/commands/extendCellsSelection/up.js +15 -0
  299. package/shortcutContexts/commands/extendCellsSelection/up.mjs +11 -0
  300. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +21 -0
  301. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +17 -0
  302. package/shortcutContexts/commands/index.js +35 -0
  303. package/shortcutContexts/commands/index.mjs +31 -0
  304. package/shortcutContexts/commands/moveCellSelection/down.js +13 -0
  305. package/shortcutContexts/commands/moveCellSelection/down.mjs +9 -0
  306. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.js +31 -0
  307. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs +27 -0
  308. package/shortcutContexts/commands/moveCellSelection/index.js +28 -0
  309. package/shortcutContexts/commands/moveCellSelection/index.mjs +24 -0
  310. package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +12 -0
  311. package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +8 -0
  312. package/shortcutContexts/commands/moveCellSelection/inlineStart.js +12 -0
  313. package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +8 -0
  314. package/shortcutContexts/commands/moveCellSelection/left.js +10 -0
  315. package/shortcutContexts/commands/moveCellSelection/left.mjs +6 -0
  316. package/shortcutContexts/commands/moveCellSelection/right.js +10 -0
  317. package/shortcutContexts/commands/moveCellSelection/right.mjs +6 -0
  318. package/shortcutContexts/commands/moveCellSelection/toMostBottom.js +17 -0
  319. package/shortcutContexts/commands/moveCellSelection/toMostBottom.mjs +13 -0
  320. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.js +18 -0
  321. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.mjs +14 -0
  322. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.js +14 -0
  323. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.mjs +10 -0
  324. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.js +17 -0
  325. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.mjs +13 -0
  326. package/shortcutContexts/commands/moveCellSelection/toMostLeft.js +19 -0
  327. package/shortcutContexts/commands/moveCellSelection/toMostLeft.mjs +15 -0
  328. package/shortcutContexts/commands/moveCellSelection/toMostRight.js +21 -0
  329. package/shortcutContexts/commands/moveCellSelection/toMostRight.mjs +17 -0
  330. package/shortcutContexts/commands/moveCellSelection/toMostTop.js +17 -0
  331. package/shortcutContexts/commands/moveCellSelection/toMostTop.mjs +13 -0
  332. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.js +19 -0
  333. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.mjs +15 -0
  334. package/shortcutContexts/commands/moveCellSelection/up.js +13 -0
  335. package/shortcutContexts/commands/moveCellSelection/up.mjs +9 -0
  336. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.js +31 -0
  337. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs +27 -0
  338. package/shortcutContexts/commands/populateSelectedCellsData.js +29 -0
  339. package/shortcutContexts/commands/populateSelectedCellsData.mjs +25 -0
  340. package/shortcutContexts/commands/scrollToFocusedCell.js +36 -0
  341. package/shortcutContexts/commands/scrollToFocusedCell.mjs +32 -0
  342. package/shortcutContexts/commands/selectAll.js +10 -0
  343. package/shortcutContexts/commands/selectAll.mjs +6 -0
  344. package/shortcutContexts/constants.js +13 -0
  345. package/shortcutContexts/constants.mjs +8 -0
  346. package/shortcutContexts/editor.js +25 -0
  347. package/shortcutContexts/editor.mjs +21 -0
  348. package/shortcutContexts/grid.js +163 -0
  349. package/shortcutContexts/grid.mjs +159 -0
  350. package/shortcutContexts/index.js +24 -0
  351. package/shortcutContexts/index.mjs +11 -0
  352. package/shortcuts/manager.js +2 -0
  353. package/shortcuts/manager.mjs +2 -0
  354. package/shortcuts/recorder.js +2 -2
  355. package/shortcuts/recorder.mjs +2 -2
  356. package/shortcuts/utils.js +19 -5
  357. package/shortcuts/utils.mjs +18 -4
  358. package/tableView.js +163 -91
  359. package/tableView.mjs +163 -91
  360. package/translations/changesObservable/observable.js +82 -54
  361. package/translations/changesObservable/observable.mjs +82 -54
  362. package/translations/changesObservable/observer.js +24 -11
  363. package/translations/changesObservable/observer.mjs +24 -11
  364. package/translations/maps/linkedPhysicalIndexToValueMap.js +14 -8
  365. package/translations/maps/linkedPhysicalIndexToValueMap.mjs +14 -8
  366. package/utils/dataStructures/tree.js +21 -18
  367. package/utils/dataStructures/tree.mjs +21 -18
  368. package/3rdparty/walkontable/src/selection.js +0 -295
  369. package/3rdparty/walkontable/src/selection.mjs +0 -290
  370. package/selection/highlight/constants.js +0 -15
  371. package/selection/highlight/constants.mjs +0 -6
  372. package/selection/highlight/types/index.js +0 -35
  373. package/selection/highlight/types/index.mjs +0 -31
@@ -0,0 +1,96 @@
1
+ import { mixin } from "../../../../helpers/object.mjs";
2
+ import localHooks from "../../../../mixins/localHooks.mjs";
3
+ /**
4
+ * The Selection class allows highlighting (by applying CSS class) the table's cells or headers
5
+ * and setting up the borders if defined in the settings.
6
+ *
7
+ * The Selection coordinates may point to the cells (positive numbers) or headers (negative numbers).
8
+ *
9
+ * @class Selection
10
+ */
11
+ class Selection {
12
+ /**
13
+ * @param {object} settings The selection settings object. @todo type.
14
+ * @param {CellRange} cellRange The cell range instance.
15
+ */
16
+ constructor(settings, cellRange) {
17
+ this.settings = settings;
18
+ this.cellRange = cellRange || null;
19
+ }
20
+
21
+ /**
22
+ * Checks if selection is empty.
23
+ *
24
+ * @returns {boolean}
25
+ */
26
+ isEmpty() {
27
+ return this.cellRange === null;
28
+ }
29
+
30
+ /**
31
+ * Adds a cell coords to the selection.
32
+ *
33
+ * @param {CellCoords} coords The cell coordinates to add.
34
+ * @returns {Selection}
35
+ */
36
+ add(coords) {
37
+ if (this.isEmpty()) {
38
+ this.cellRange = this.settings.createCellRange(coords);
39
+ } else {
40
+ this.cellRange.expand(coords);
41
+ }
42
+ return this;
43
+ }
44
+
45
+ /**
46
+ * If selection range from or to property equals oldCoords, replace it with newCoords. Return boolean
47
+ * information about success.
48
+ *
49
+ * @param {CellCoords} oldCoords An old cell coordinates to replace.
50
+ * @param {CellCoords} newCoords The new cell coordinates.
51
+ * @returns {boolean}
52
+ */
53
+ replace(oldCoords, newCoords) {
54
+ if (!this.isEmpty()) {
55
+ if (this.cellRange.from.isEqual(oldCoords)) {
56
+ this.cellRange.from = newCoords;
57
+ return true;
58
+ }
59
+ if (this.cellRange.to.isEqual(oldCoords)) {
60
+ this.cellRange.to = newCoords;
61
+ return true;
62
+ }
63
+ }
64
+ return false;
65
+ }
66
+
67
+ /**
68
+ * Clears selection.
69
+ *
70
+ * @returns {Selection}
71
+ */
72
+ clear() {
73
+ this.cellRange = null;
74
+ return this;
75
+ }
76
+
77
+ /**
78
+ * Returns the top left (or top right in RTL) and bottom right (or bottom left in RTL) selection coordinates.
79
+ *
80
+ * @returns {number[]} Returns array of coordinates for example `[1, 1, 5, 5]`.
81
+ */
82
+ getCorners() {
83
+ const topStart = this.cellRange.getOuterTopStartCorner();
84
+ const bottomEnd = this.cellRange.getOuterBottomEndCorner();
85
+ return [topStart.row, topStart.col, bottomEnd.row, bottomEnd.col];
86
+ }
87
+
88
+ /**
89
+ * Destroys the instance.
90
+ */
91
+ destroy() {
92
+ this.runLocalHooks('destroy');
93
+ }
94
+ }
95
+ mixin(Selection, localHooks);
96
+ export default Selection;
@@ -4,6 +4,9 @@ exports.__esModule = true;
4
4
  require("core-js/modules/es.error.cause.js");
5
5
  var _element = require("../../../helpers/dom/element");
6
6
  var _object = require("../../../helpers/object");
7
+ 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; }
8
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
9
+ 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); }
7
10
  /**
8
11
  * @todo Describe options.
9
12
  * @typedef SettingsPure
@@ -78,27 +81,25 @@ var _object = require("../../../helpers/object");
78
81
  * @class Settings
79
82
  */
80
83
  class Settings {
81
- /**
82
- * Reference to settings.
83
- *
84
- * @protected
85
- * @type {SettingsPure}
86
- */
87
- settings = {};
88
-
89
- /**
90
- * The defaults values of settings.
91
- * Void 0 means it is required, null means it can be empty.
92
- *
93
- * @public
94
- * @type {Readonly<SettingsPure>}
95
- */
96
- defaults = Object.freeze(this.getDefaults());
97
-
98
84
  /**
99
85
  * @param {SettingsPure} settings The user defined settings.
100
86
  */
101
87
  constructor(settings) {
88
+ /**
89
+ * Reference to settings.
90
+ *
91
+ * @protected
92
+ * @type {SettingsPure}
93
+ */
94
+ _defineProperty(this, "settings", {});
95
+ /**
96
+ * The defaults values of settings.
97
+ * Void 0 means it is required, null means it can be empty.
98
+ *
99
+ * @public
100
+ * @type {Readonly<SettingsPure>}
101
+ */
102
+ _defineProperty(this, "defaults", Object.freeze(this.getDefaults()));
102
103
  (0, _object.objectEach)(this.defaults, (value, key) => {
103
104
  if (settings[key] !== void 0) {
104
105
  this.settings[key] = settings[key];
@@ -1,4 +1,7 @@
1
1
  import "core-js/modules/es.error.cause.js";
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
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
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); }
2
5
  import { fastInnerText } from "../../../helpers/dom/element.mjs";
3
6
  import { objectEach } from "../../../helpers/object.mjs";
4
7
  /**
@@ -74,27 +77,25 @@ import { objectEach } from "../../../helpers/object.mjs";
74
77
  * @class Settings
75
78
  */
76
79
  export default class Settings {
77
- /**
78
- * Reference to settings.
79
- *
80
- * @protected
81
- * @type {SettingsPure}
82
- */
83
- settings = {};
84
-
85
- /**
86
- * The defaults values of settings.
87
- * Void 0 means it is required, null means it can be empty.
88
- *
89
- * @public
90
- * @type {Readonly<SettingsPure>}
91
- */
92
- defaults = Object.freeze(this.getDefaults());
93
-
94
80
  /**
95
81
  * @param {SettingsPure} settings The user defined settings.
96
82
  */
97
83
  constructor(settings) {
84
+ /**
85
+ * Reference to settings.
86
+ *
87
+ * @protected
88
+ * @type {SettingsPure}
89
+ */
90
+ _defineProperty(this, "settings", {});
91
+ /**
92
+ * The defaults values of settings.
93
+ * Void 0 means it is required, null means it can be empty.
94
+ *
95
+ * @public
96
+ * @type {Readonly<SettingsPure>}
97
+ */
98
+ _defineProperty(this, "defaults", Object.freeze(this.getDefaults()));
98
99
  objectEach(this.defaults, (value, key) => {
99
100
  if (settings[key] !== void 0) {
100
101
  this.settings[key] = settings[key];
@@ -82,6 +82,15 @@ const calculatedColumns = {
82
82
  */
83
83
  getVisibleColumnsCount() {
84
84
  return this.dataAccessObject.countColumnsVisible;
85
+ },
86
+ /**
87
+ * Get the number of rendered row headers.
88
+ *
89
+ * @returns {number}
90
+ * @this Table
91
+ */
92
+ getRowHeadersCount() {
93
+ return this.dataAccessObject.rowHeaders.length;
85
94
  }
86
95
  };
87
96
  (0, _object.defineGetter)(calculatedColumns, 'MIXIN_NAME', MIXIN_NAME, {
@@ -79,6 +79,15 @@ const calculatedColumns = {
79
79
  */
80
80
  getVisibleColumnsCount() {
81
81
  return this.dataAccessObject.countColumnsVisible;
82
+ },
83
+ /**
84
+ * Get the number of rendered row headers.
85
+ *
86
+ * @returns {number}
87
+ * @this Table
88
+ */
89
+ getRowHeadersCount() {
90
+ return this.dataAccessObject.rowHeaders.length;
82
91
  }
83
92
  };
84
93
  defineGetter(calculatedColumns, 'MIXIN_NAME', MIXIN_NAME, {
@@ -82,6 +82,15 @@ const calculatedRows = {
82
82
  */
83
83
  getVisibleRowsCount() {
84
84
  return this.dataAccessObject.countRowsVisible;
85
+ },
86
+ /**
87
+ * Get the number of rendered column headers.
88
+ *
89
+ * @returns {number}
90
+ * @this Table
91
+ */
92
+ getColumnHeadersCount() {
93
+ return this.dataAccessObject.columnHeaders.length;
85
94
  }
86
95
  };
87
96
  (0, _object.defineGetter)(calculatedRows, 'MIXIN_NAME', MIXIN_NAME, {
@@ -79,6 +79,15 @@ const calculatedRows = {
79
79
  */
80
80
  getVisibleRowsCount() {
81
81
  return this.dataAccessObject.countRowsVisible;
82
+ },
83
+ /**
84
+ * Get the number of rendered column headers.
85
+ *
86
+ * @returns {number}
87
+ * @this Table
88
+ */
89
+ getColumnHeadersCount() {
90
+ return this.dataAccessObject.columnHeaders.length;
82
91
  }
83
92
  };
84
93
  defineGetter(calculatedRows, 'MIXIN_NAME', MIXIN_NAME, {
@@ -74,6 +74,15 @@ const stickyColumnsStart = {
74
74
  */
75
75
  getVisibleColumnsCount() {
76
76
  return this.getRenderedColumnsCount();
77
+ },
78
+ /**
79
+ * Get the number of rendered row headers.
80
+ *
81
+ * @returns {number}
82
+ * @this Table
83
+ */
84
+ getRowHeadersCount() {
85
+ return this.dataAccessObject.rowHeaders.length;
77
86
  }
78
87
  };
79
88
  (0, _object.defineGetter)(stickyColumnsStart, 'MIXIN_NAME', MIXIN_NAME, {
@@ -71,6 +71,15 @@ const stickyColumnsStart = {
71
71
  */
72
72
  getVisibleColumnsCount() {
73
73
  return this.getRenderedColumnsCount();
74
+ },
75
+ /**
76
+ * Get the number of rendered row headers.
77
+ *
78
+ * @returns {number}
79
+ * @this Table
80
+ */
81
+ getRowHeadersCount() {
82
+ return this.dataAccessObject.rowHeaders.length;
74
83
  }
75
84
  };
76
85
  defineGetter(stickyColumnsStart, 'MIXIN_NAME', MIXIN_NAME, {
@@ -79,6 +79,15 @@ const stickyRowsBottom = {
79
79
  */
80
80
  getVisibleRowsCount() {
81
81
  return this.getRenderedRowsCount();
82
+ },
83
+ /**
84
+ * Get the number of rendered column headers.
85
+ *
86
+ * @returns {number}
87
+ * @this Table
88
+ */
89
+ getColumnHeadersCount() {
90
+ return 0;
82
91
  }
83
92
  };
84
93
  (0, _object.defineGetter)(stickyRowsBottom, 'MIXIN_NAME', MIXIN_NAME, {
@@ -76,6 +76,15 @@ const stickyRowsBottom = {
76
76
  */
77
77
  getVisibleRowsCount() {
78
78
  return this.getRenderedRowsCount();
79
+ },
80
+ /**
81
+ * Get the number of rendered column headers.
82
+ *
83
+ * @returns {number}
84
+ * @this Table
85
+ */
86
+ getColumnHeadersCount() {
87
+ return 0;
79
88
  }
80
89
  };
81
90
  defineGetter(stickyRowsBottom, 'MIXIN_NAME', MIXIN_NAME, {
@@ -74,6 +74,15 @@ const stickyRowsTop = {
74
74
  */
75
75
  getVisibleRowsCount() {
76
76
  return this.getRenderedRowsCount();
77
+ },
78
+ /**
79
+ * Get the number of rendered column headers.
80
+ *
81
+ * @returns {number}
82
+ * @this Table
83
+ */
84
+ getColumnHeadersCount() {
85
+ return this.dataAccessObject.columnHeaders.length;
77
86
  }
78
87
  };
79
88
  (0, _object.defineGetter)(stickyRowsTop, 'MIXIN_NAME', MIXIN_NAME, {
@@ -71,6 +71,15 @@ const stickyRowsTop = {
71
71
  */
72
72
  getVisibleRowsCount() {
73
73
  return this.getRenderedRowsCount();
74
+ },
75
+ /**
76
+ * Get the number of rendered column headers.
77
+ *
78
+ * @returns {number}
79
+ * @this Table
80
+ */
81
+ getColumnHeadersCount() {
82
+ return this.dataAccessObject.columnHeaders.length;
74
83
  }
75
84
  };
76
85
  defineGetter(stickyRowsTop, 'MIXIN_NAME', MIXIN_NAME, {
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
 
3
3
  exports.__esModule = true;
4
- require("core-js/modules/es.array.push.js");
5
4
  require("core-js/modules/es.error.cause.js");
5
+ require("core-js/modules/es.array.push.js");
6
6
  var _element = require("../../../helpers/dom/element");
7
7
  var _function = require("../../../helpers/function");
8
8
  var _column = _interopRequireDefault(require("./filter/column"));
@@ -12,6 +12,9 @@ var _column2 = _interopRequireDefault(require("./utils/column"));
12
12
  var _row2 = _interopRequireDefault(require("./utils/row"));
13
13
  var _overlay = require("./overlay");
14
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+ 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; }
16
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
17
+ 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); }
15
18
  /**
16
19
  * @todo These mixes are never added to the class Table, however their members are used here.
17
20
  * @todo Continue: Potentially it works only, because some of these mixes are added to every inherited class.
@@ -24,38 +27,6 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
24
27
  * @abstract
25
28
  */
26
29
  class Table {
27
- /**
28
- * The walkontable settings.
29
- *
30
- * @protected
31
- * @type {Settings}
32
- */
33
- wtSettings = null;
34
- domBindings;
35
- TBODY = null;
36
- THEAD = null;
37
- COLGROUP = null;
38
- /**
39
- * Indicates if the table has height bigger than 0px.
40
- *
41
- * @type {boolean}
42
- */
43
- hasTableHeight = true;
44
- /**
45
- * Indicates if the table has width bigger than 0px.
46
- *
47
- * @type {boolean}
48
- */
49
- hasTableWidth = true;
50
- /**
51
- * Indicates if the table is visible. By visible, it means that the holder
52
- * element has CSS 'display' property different than 'none'.
53
- *
54
- * @type {boolean}
55
- */
56
- isTableVisible = false;
57
- tableOffset = 0;
58
- holderOffset = 0;
59
30
  /**
60
31
  *
61
32
  * @abstract
@@ -66,6 +37,38 @@ class Table {
66
37
  * @param {'master'|CLONE_TYPES_ENUM} name Overlay name.
67
38
  */
68
39
  constructor(dataAccessObject, facadeGetter, domBindings, wtSettings, name) {
40
+ /**
41
+ * The walkontable settings.
42
+ *
43
+ * @protected
44
+ * @type {Settings}
45
+ */
46
+ _defineProperty(this, "wtSettings", null);
47
+ _defineProperty(this, "domBindings", void 0);
48
+ _defineProperty(this, "TBODY", null);
49
+ _defineProperty(this, "THEAD", null);
50
+ _defineProperty(this, "COLGROUP", null);
51
+ /**
52
+ * Indicates if the table has height bigger than 0px.
53
+ *
54
+ * @type {boolean}
55
+ */
56
+ _defineProperty(this, "hasTableHeight", true);
57
+ /**
58
+ * Indicates if the table has width bigger than 0px.
59
+ *
60
+ * @type {boolean}
61
+ */
62
+ _defineProperty(this, "hasTableWidth", true);
63
+ /**
64
+ * Indicates if the table is visible. By visible, it means that the holder
65
+ * element has CSS 'display' property different than 'none'.
66
+ *
67
+ * @type {boolean}
68
+ */
69
+ _defineProperty(this, "isTableVisible", false);
70
+ _defineProperty(this, "tableOffset", 0);
71
+ _defineProperty(this, "holderOffset", 0);
69
72
  this.domBindings = domBindings;
70
73
  /**
71
74
  * Indicates if this instance is of type `MasterTable` (i.e. It is NOT an overlay).
@@ -342,7 +345,7 @@ class Table {
342
345
  wtOverlays.refreshAll(); // `refreshAll()` internally already calls `refreshSelections()` method
343
346
  wtOverlays.adjustElementsSize();
344
347
  } else {
345
- this.refreshSelections(runFastDraw);
348
+ this.dataAccessObject.selectionManager.setActiveOverlay(this.facadeGetter()).render(runFastDraw);
346
349
  }
347
350
  if (syncScroll) {
348
351
  wtOverlays.syncScrollWithMaster();
@@ -434,75 +437,6 @@ class Table {
434
437
  }
435
438
  }
436
439
 
437
- /**
438
- * @param {string} className The CSS class name to remove from the table cells.
439
- */
440
- removeClassFromCells(className) {
441
- const nodes = this.TABLE.querySelectorAll(`.${className}`);
442
- for (let i = 0, len = nodes.length; i < len; i++) {
443
- (0, _element.removeClass)(nodes[i], className);
444
- }
445
- }
446
-
447
- /**
448
- * Refresh the table selection by re-rendering Selection instances connected with that instance.
449
- *
450
- * @param {boolean} fastDraw If fast drawing is enabled than additionally className clearing is applied.
451
- */
452
- refreshSelections(fastDraw) {
453
- const {
454
- wtSettings
455
- } = this;
456
- const {
457
- selections
458
- } = this.dataAccessObject;
459
- if (!selections) {
460
- return;
461
- }
462
- const highlights = Array.from(selections);
463
- const len = highlights.length;
464
- if (fastDraw) {
465
- const classesToRemove = [];
466
- for (let i = 0; i < len; i++) {
467
- const {
468
- highlightHeaderClassName,
469
- highlightRowClassName,
470
- highlightColumnClassName
471
- } = highlights[i].settings;
472
- const classNames = highlights[i].classNames;
473
- const classNamesLength = classNames.length;
474
- for (let j = 0; j < classNamesLength; j++) {
475
- if (!classesToRemove.includes(classNames[j])) {
476
- classesToRemove.push(classNames[j]);
477
- }
478
- }
479
- if (highlightHeaderClassName && !classesToRemove.includes(highlightHeaderClassName)) {
480
- classesToRemove.push(highlightHeaderClassName);
481
- }
482
- if (highlightRowClassName && !classesToRemove.includes(highlightRowClassName)) {
483
- classesToRemove.push(highlightRowClassName);
484
- }
485
- if (highlightColumnClassName && !classesToRemove.includes(highlightColumnClassName)) {
486
- classesToRemove.push(highlightColumnClassName);
487
- }
488
- }
489
- const additionalClassesToRemove = wtSettings.getSetting('onBeforeRemoveCellClassNames');
490
- if (Array.isArray(additionalClassesToRemove)) {
491
- for (let i = 0; i < additionalClassesToRemove.length; i++) {
492
- classesToRemove.push(additionalClassesToRemove[i]);
493
- }
494
- }
495
- const classesToRemoveLength = classesToRemove.length;
496
- for (let i = 0; i < classesToRemoveLength; i++) {
497
- // there was no rerender, so we need to remove classNames by ourselves
498
- this.removeClassFromCells(classesToRemove[i]);
499
- }
500
- }
501
- for (let i = 0; i < len; i++) {
502
- highlights[i].draw(this.facadeGetter(), fastDraw);
503
- }
504
- }
505
-
506
440
  /**
507
441
  * Get cell element at coords.
508
442
  * Negative coords.row or coords.col are used to retrieve header cells. If there are multiple header levels, the
@@ -564,10 +498,12 @@ class Table {
564
498
  let renderedRowIndex = null;
565
499
  let parentElement = null;
566
500
  if (rowIndex < 0) {
567
- renderedRowIndex = this.rowFilter?.sourceRowToVisibleColHeadedRow(rowIndex);
501
+ var _this$rowFilter;
502
+ renderedRowIndex = (_this$rowFilter = this.rowFilter) === null || _this$rowFilter === void 0 ? void 0 : _this$rowFilter.sourceRowToVisibleColHeadedRow(rowIndex);
568
503
  parentElement = this.THEAD;
569
504
  } else {
570
- renderedRowIndex = this.rowFilter?.sourceToRendered(rowIndex);
505
+ var _this$rowFilter2;
506
+ renderedRowIndex = (_this$rowFilter2 = this.rowFilter) === null || _this$rowFilter2 === void 0 ? void 0 : _this$rowFilter2.sourceToRendered(rowIndex);
571
507
  parentElement = this.TBODY;
572
508
  }
573
509
  if (renderedRowIndex !== void 0 && parentElement !== void 0) {
@@ -591,7 +527,7 @@ class Table {
591
527
  getColumnHeader(col) {
592
528
  let level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
593
529
  const TR = this.THEAD.childNodes[level];
594
- return TR?.childNodes[this.columnFilter.sourceColumnToVisibleRowHeadedColumn(col)];
530
+ return TR === null || TR === void 0 ? void 0 : TR.childNodes[this.columnFilter.sourceColumnToVisibleRowHeadedColumn(col)];
595
531
  }
596
532
 
597
533
  /**
@@ -622,15 +558,15 @@ class Table {
622
558
  */
623
559
  getRowHeader(row) {
624
560
  let level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
625
- if (this.columnFilter.sourceColumnToVisibleRowHeadedColumn(0) === 0) {
626
- return;
627
- }
628
561
  const rowHeadersCount = this.wtSettings.getSetting('rowHeaders').length;
629
562
  if (level >= rowHeadersCount) {
630
563
  return;
631
564
  }
632
- const TR = this.TBODY.childNodes[this.rowFilter.sourceToRendered(row)];
633
- return TR?.childNodes[level];
565
+ const renderedRow = this.rowFilter.sourceToRendered(row);
566
+ const visibleRow = renderedRow < 0 ? this.rowFilter.sourceRowToVisibleColHeadedRow(row) : renderedRow;
567
+ const parentElement = renderedRow < 0 ? this.THEAD : this.TBODY;
568
+ const TR = parentElement.childNodes[visibleRow];
569
+ return TR === null || TR === void 0 ? void 0 : TR.childNodes[level];
634
570
  }
635
571
 
636
572
  /**
@@ -640,14 +576,11 @@ class Table {
640
576
  * @returns {HTMLTableCellElement[]}
641
577
  */
642
578
  getRowHeaders(row) {
643
- if (this.columnFilter.sourceColumnToVisibleRowHeadedColumn(0) === 0) {
644
- return [];
645
- }
646
579
  const THs = [];
647
580
  const rowHeadersCount = this.wtSettings.getSetting('rowHeaders').length;
648
581
  for (let renderedRowIndex = 0; renderedRowIndex < rowHeadersCount; renderedRowIndex++) {
649
582
  const TR = this.TBODY.childNodes[this.rowFilter.sourceToRendered(row)];
650
- const TH = TR?.childNodes[renderedRowIndex];
583
+ const TH = TR === null || TR === void 0 ? void 0 : TR.childNodes[renderedRowIndex];
651
584
  if (TH) {
652
585
  THs.push(TH);
653
586
  }