handsontable 0.0.0-next-9379dd1-20231020 → 0.0.0-next-9059914-20231025

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 (414) hide show
  1. package/3rdparty/walkontable/src/{selection/border/border.js → border.js} +12 -7
  2. package/3rdparty/walkontable/src/{selection/border/border.mjs → border.mjs} +12 -7
  3. package/3rdparty/walkontable/src/cell/coords.d.ts +1 -6
  4. package/3rdparty/walkontable/src/cell/coords.js +11 -50
  5. package/3rdparty/walkontable/src/cell/coords.mjs +11 -50
  6. package/3rdparty/walkontable/src/cell/range.d.ts +2 -9
  7. package/3rdparty/walkontable/src/cell/range.js +7 -38
  8. package/3rdparty/walkontable/src/cell/range.mjs +7 -38
  9. package/3rdparty/walkontable/src/core/_base.js +3 -9
  10. package/3rdparty/walkontable/src/core/_base.mjs +3 -9
  11. package/3rdparty/walkontable/src/core/clone.js +2 -2
  12. package/3rdparty/walkontable/src/core/clone.mjs +2 -2
  13. package/3rdparty/walkontable/src/core/core.js +2 -3
  14. package/3rdparty/walkontable/src/core/core.mjs +2 -3
  15. package/3rdparty/walkontable/src/event.js +10 -12
  16. package/3rdparty/walkontable/src/event.mjs +10 -12
  17. package/3rdparty/walkontable/src/facade/core.js +2 -2
  18. package/3rdparty/walkontable/src/facade/core.mjs +2 -2
  19. package/3rdparty/walkontable/src/index.js +2 -10
  20. package/3rdparty/walkontable/src/index.mjs +2 -2
  21. package/3rdparty/walkontable/src/overlay/_base.js +2 -13
  22. package/3rdparty/walkontable/src/overlay/_base.mjs +3 -14
  23. package/3rdparty/walkontable/src/overlay/inlineStart.js +6 -2
  24. package/3rdparty/walkontable/src/overlay/inlineStart.mjs +6 -2
  25. package/3rdparty/walkontable/src/overlay/top.js +6 -2
  26. package/3rdparty/walkontable/src/overlay/top.mjs +6 -2
  27. package/3rdparty/walkontable/src/renderer/cells.js +0 -10
  28. package/3rdparty/walkontable/src/renderer/cells.mjs +1 -11
  29. package/3rdparty/walkontable/src/renderer/columnHeaders.js +0 -10
  30. package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +1 -11
  31. package/3rdparty/walkontable/src/renderer/rowHeaders.js +0 -5
  32. package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +0 -5
  33. package/3rdparty/walkontable/src/renderer/rows.js +0 -13
  34. package/3rdparty/walkontable/src/renderer/rows.mjs +0 -13
  35. package/3rdparty/walkontable/src/renderer/table.js +0 -9
  36. package/3rdparty/walkontable/src/renderer/table.mjs +0 -9
  37. package/3rdparty/walkontable/src/scroll.js +0 -2
  38. package/3rdparty/walkontable/src/scroll.mjs +0 -2
  39. package/3rdparty/walkontable/src/selection.js +295 -0
  40. package/3rdparty/walkontable/src/selection.mjs +290 -0
  41. package/3rdparty/walkontable/src/settings.js +4 -13
  42. package/3rdparty/walkontable/src/settings.mjs +4 -13
  43. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +0 -9
  44. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +0 -9
  45. package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +0 -9
  46. package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +0 -9
  47. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.js +0 -9
  48. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.mjs +0 -9
  49. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +0 -9
  50. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +0 -9
  51. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +0 -9
  52. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +0 -9
  53. package/3rdparty/walkontable/src/table.js +78 -19
  54. package/3rdparty/walkontable/src/table.mjs +79 -20
  55. package/base.js +2 -2
  56. package/base.mjs +2 -2
  57. package/cellTypes/dateType/dateType.d.ts +3 -3
  58. package/cellTypes/dateType/dateType.js +2 -2
  59. package/cellTypes/dateType/dateType.mjs +2 -2
  60. package/cellTypes/handsontableType/handsontableType.d.ts +3 -3
  61. package/cellTypes/handsontableType/handsontableType.js +2 -2
  62. package/cellTypes/handsontableType/handsontableType.mjs +2 -2
  63. package/cellTypes/index.d.ts +0 -3
  64. package/cellTypes/index.js +0 -4
  65. package/cellTypes/index.mjs +1 -3
  66. package/core.d.ts +4 -9
  67. package/core.js +327 -285
  68. package/core.mjs +327 -285
  69. package/dataMap/metaManager/metaSchema.js +0 -65
  70. package/dataMap/metaManager/metaSchema.mjs +0 -65
  71. package/dataMap/metaManager/mods/extendMetaProperties.js +1 -7
  72. package/dataMap/metaManager/mods/extendMetaProperties.mjs +1 -7
  73. package/dataMap/replaceData.js +0 -5
  74. package/dataMap/replaceData.mjs +0 -5
  75. package/dist/handsontable.css +5 -40
  76. package/dist/handsontable.full.css +5 -40
  77. package/dist/handsontable.full.js +8038 -12837
  78. package/dist/handsontable.full.min.css +4 -4
  79. package/dist/handsontable.full.min.js +141 -141
  80. package/dist/handsontable.js +11488 -16287
  81. package/dist/handsontable.min.css +3 -3
  82. package/dist/handsontable.min.js +21 -21
  83. package/dist/languages/all.js +2 -6
  84. package/dist/languages/all.min.js +1 -1
  85. package/dist/languages/en-US.js +1 -3
  86. package/dist/languages/en-US.min.js +1 -1
  87. package/dist/languages/pl-PL.js +1 -3
  88. package/dist/languages/pl-PL.min.js +1 -1
  89. package/editorManager.js +87 -15
  90. package/editorManager.mjs +87 -16
  91. package/editors/autocompleteEditor/autocompleteEditor.js +2 -53
  92. package/editors/autocompleteEditor/autocompleteEditor.mjs +3 -54
  93. package/editors/dateEditor/dateEditor.js +7 -26
  94. package/editors/dateEditor/dateEditor.mjs +8 -27
  95. package/editors/handsontableEditor/handsontableEditor.js +1 -9
  96. package/editors/handsontableEditor/handsontableEditor.mjs +2 -10
  97. package/editors/textEditor/textEditor.js +27 -19
  98. package/editors/textEditor/textEditor.mjs +30 -22
  99. package/helpers/dom/element.js +9 -188
  100. package/helpers/dom/element.mjs +9 -182
  101. package/helpers/mixed.js +1 -1
  102. package/helpers/mixed.mjs +1 -1
  103. package/helpers/number.d.ts +0 -1
  104. package/helpers/number.js +0 -18
  105. package/helpers/number.mjs +0 -17
  106. package/i18n/constants.js +1 -7
  107. package/i18n/constants.mjs +1 -4
  108. package/i18n/languages/en-US.js +1 -3
  109. package/i18n/languages/en-US.mjs +1 -3
  110. package/i18n/languages/pl-PL.js +1 -3
  111. package/i18n/languages/pl-PL.mjs +1 -3
  112. package/languages/all.js +2 -6
  113. package/languages/en-US.js +1 -3
  114. package/languages/en-US.mjs +1 -3
  115. package/languages/index.js +2 -6
  116. package/languages/pl-PL.js +1 -3
  117. package/languages/pl-PL.mjs +1 -3
  118. package/package.json +99 -116
  119. package/pluginHooks.d.ts +1 -12
  120. package/pluginHooks.js +1 -152
  121. package/pluginHooks.mjs +1 -152
  122. package/plugins/collapsibleColumns/collapsibleColumns.js +4 -74
  123. package/plugins/collapsibleColumns/collapsibleColumns.mjs +5 -75
  124. package/plugins/columnSorting/columnSorting.js +0 -43
  125. package/plugins/columnSorting/columnSorting.mjs +3 -44
  126. package/plugins/columnSorting/index.js +1 -3
  127. package/plugins/columnSorting/index.mjs +1 -1
  128. package/plugins/comments/commentEditor.js +0 -1
  129. package/plugins/comments/commentEditor.mjs +0 -1
  130. package/plugins/comments/comments.js +189 -252
  131. package/plugins/comments/comments.mjs +190 -251
  132. package/plugins/contextMenu/commandExecutor.js +3 -2
  133. package/plugins/contextMenu/commandExecutor.mjs +3 -2
  134. package/plugins/contextMenu/contextMenu.d.ts +1 -1
  135. package/plugins/contextMenu/contextMenu.js +36 -75
  136. package/plugins/contextMenu/contextMenu.mjs +35 -74
  137. package/plugins/contextMenu/{menu/cursor.mjs → cursor.js} +10 -4
  138. package/plugins/contextMenu/{menu/cursor.js → cursor.mjs} +4 -6
  139. package/plugins/contextMenu/itemsFactory.js +3 -2
  140. package/plugins/contextMenu/itemsFactory.mjs +4 -3
  141. package/plugins/contextMenu/{menu/menu.js → menu.js} +308 -96
  142. package/plugins/contextMenu/{menu/menu.mjs → menu.mjs} +309 -97
  143. package/plugins/contextMenu/predefinedItems/alignment.js +0 -7
  144. package/plugins/contextMenu/predefinedItems/alignment.mjs +0 -7
  145. package/plugins/contextMenu/predefinedItems/clearColumn.js +3 -5
  146. package/plugins/contextMenu/predefinedItems/clearColumn.mjs +3 -5
  147. package/plugins/contextMenu/predefinedItems/columnLeft.js +3 -5
  148. package/plugins/contextMenu/predefinedItems/columnLeft.mjs +3 -5
  149. package/plugins/contextMenu/predefinedItems/columnRight.js +3 -5
  150. package/plugins/contextMenu/predefinedItems/columnRight.mjs +3 -5
  151. package/plugins/contextMenu/predefinedItems/readOnly.js +0 -7
  152. package/plugins/contextMenu/predefinedItems/readOnly.mjs +0 -7
  153. package/plugins/contextMenu/predefinedItems/removeColumn.js +5 -7
  154. package/plugins/contextMenu/predefinedItems/removeColumn.mjs +3 -5
  155. package/plugins/contextMenu/predefinedItems/removeRow.js +5 -7
  156. package/plugins/contextMenu/predefinedItems/removeRow.mjs +3 -5
  157. package/plugins/contextMenu/predefinedItems/rowAbove.js +3 -5
  158. package/plugins/contextMenu/predefinedItems/rowAbove.mjs +3 -5
  159. package/plugins/contextMenu/predefinedItems/rowBelow.js +3 -5
  160. package/plugins/contextMenu/predefinedItems/rowBelow.mjs +3 -5
  161. package/plugins/contextMenu/{predefinedItems/index.js → predefinedItems.js} +14 -14
  162. package/plugins/contextMenu/predefinedItems.mjs +68 -0
  163. package/plugins/contextMenu/utils.js +151 -35
  164. package/plugins/contextMenu/utils.mjs +144 -35
  165. package/plugins/copyPaste/contextMenuItem/copy.js +0 -7
  166. package/plugins/copyPaste/contextMenuItem/copy.mjs +0 -7
  167. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.js +1 -9
  168. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.mjs +1 -9
  169. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.js +1 -9
  170. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.mjs +1 -9
  171. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.js +1 -9
  172. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.mjs +1 -9
  173. package/plugins/copyPaste/contextMenuItem/cut.js +0 -7
  174. package/plugins/copyPaste/contextMenuItem/cut.mjs +0 -7
  175. package/plugins/copyPaste/copyPaste.js +78 -127
  176. package/plugins/copyPaste/copyPaste.mjs +79 -128
  177. package/plugins/copyPaste/focusableElement.js +186 -0
  178. package/plugins/copyPaste/focusableElement.mjs +180 -0
  179. package/plugins/customBorders/customBorders.js +20 -23
  180. package/plugins/customBorders/customBorders.mjs +21 -24
  181. package/plugins/dropdownMenu/dropdownMenu.d.ts +1 -1
  182. package/plugins/dropdownMenu/dropdownMenu.js +38 -97
  183. package/plugins/dropdownMenu/dropdownMenu.mjs +37 -96
  184. package/plugins/filters/constants.mjs +1 -1
  185. package/plugins/filters/filters.js +14 -31
  186. package/plugins/filters/filters.mjs +14 -31
  187. package/plugins/filters/ui/select.js +3 -3
  188. package/plugins/filters/ui/select.mjs +2 -2
  189. package/plugins/hiddenColumns/hiddenColumns.mjs +1 -1
  190. package/plugins/hiddenRows/hiddenRows.mjs +1 -1
  191. package/plugins/manualColumnMove/manualColumnMove.js +1 -3
  192. package/plugins/manualColumnMove/manualColumnMove.mjs +1 -3
  193. package/plugins/mergeCells/mergeCells.js +16 -5
  194. package/plugins/mergeCells/mergeCells.mjs +16 -5
  195. package/plugins/multiColumnSorting/multiColumnSorting.js +2 -37
  196. package/plugins/multiColumnSorting/multiColumnSorting.mjs +2 -37
  197. package/plugins/nestedHeaders/nestedHeaders.js +10 -240
  198. package/plugins/nestedHeaders/nestedHeaders.mjs +11 -241
  199. package/plugins/nestedHeaders/stateManager/index.js +3 -102
  200. package/plugins/nestedHeaders/stateManager/index.mjs +3 -102
  201. package/plugins/nestedRows/nestedRows.js +0 -41
  202. package/plugins/nestedRows/nestedRows.mjs +0 -41
  203. package/plugins/nestedRows/ui/headers.js +0 -11
  204. package/plugins/nestedRows/ui/headers.mjs +1 -12
  205. package/renderers/autocompleteRenderer/autocompleteRenderer.js +0 -8
  206. package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +0 -8
  207. package/renderers/baseRenderer/baseRenderer.js +0 -17
  208. package/renderers/baseRenderer/baseRenderer.mjs +1 -18
  209. package/renderers/checkboxRenderer/checkboxRenderer.js +4 -9
  210. package/renderers/checkboxRenderer/checkboxRenderer.mjs +4 -9
  211. package/renderers/index.d.ts +0 -9
  212. package/selection/highlight/constants.js +15 -0
  213. package/selection/highlight/constants.mjs +6 -0
  214. package/selection/highlight/highlight.js +71 -256
  215. package/selection/highlight/highlight.mjs +71 -250
  216. package/selection/highlight/types/activeHeader.js +8 -10
  217. package/selection/highlight/types/activeHeader.mjs +8 -10
  218. package/selection/highlight/types/area.js +18 -6
  219. package/selection/highlight/types/area.mjs +18 -6
  220. package/selection/highlight/types/{focus.js → cell.js} +7 -5
  221. package/selection/highlight/types/{focus.mjs → cell.mjs} +7 -5
  222. package/selection/highlight/types/customSelection.js +9 -7
  223. package/selection/highlight/types/customSelection.mjs +9 -7
  224. package/selection/highlight/types/fill.js +7 -5
  225. package/selection/highlight/types/fill.mjs +7 -5
  226. package/selection/highlight/types/header.js +18 -9
  227. package/selection/highlight/types/header.mjs +18 -9
  228. package/selection/highlight/types/index.js +35 -0
  229. package/selection/highlight/types/index.mjs +31 -0
  230. package/selection/highlight/visualSelection.js +27 -31
  231. package/selection/highlight/visualSelection.mjs +27 -31
  232. package/selection/index.js +7 -4
  233. package/selection/index.mjs +3 -2
  234. package/selection/mouseEventHandler.js +1 -7
  235. package/selection/mouseEventHandler.mjs +1 -7
  236. package/selection/range.js +8 -8
  237. package/selection/range.mjs +8 -8
  238. package/selection/selection.js +152 -321
  239. package/selection/selection.mjs +151 -318
  240. package/selection/transformation.js +90 -232
  241. package/selection/transformation.mjs +90 -232
  242. package/selection/utils.js +21 -15
  243. package/selection/utils.mjs +21 -16
  244. package/settings.d.ts +0 -4
  245. package/shortcuts/context.js +2 -20
  246. package/shortcuts/context.mjs +3 -20
  247. package/shortcuts/manager.js +7 -25
  248. package/shortcuts/manager.mjs +7 -26
  249. package/shortcuts/recorder.js +3 -3
  250. package/shortcuts/recorder.mjs +3 -3
  251. package/shortcuts/utils.js +5 -19
  252. package/shortcuts/utils.mjs +4 -18
  253. package/tableView.js +13 -111
  254. package/tableView.mjs +14 -112
  255. package/3rdparty/walkontable/src/selection/border/constants.js +0 -16
  256. package/3rdparty/walkontable/src/selection/border/constants.mjs +0 -12
  257. package/3rdparty/walkontable/src/selection/constants.js +0 -62
  258. package/3rdparty/walkontable/src/selection/constants.mjs +0 -51
  259. package/3rdparty/walkontable/src/selection/index.js +0 -26
  260. package/3rdparty/walkontable/src/selection/index.mjs +0 -5
  261. package/3rdparty/walkontable/src/selection/manager.js +0 -274
  262. package/3rdparty/walkontable/src/selection/manager.mjs +0 -269
  263. package/3rdparty/walkontable/src/selection/scanner.js +0 -270
  264. package/3rdparty/walkontable/src/selection/scanner.mjs +0 -267
  265. package/3rdparty/walkontable/src/selection/selection.js +0 -101
  266. package/3rdparty/walkontable/src/selection/selection.mjs +0 -96
  267. package/cellTypes/selectType/index.d.ts +0 -1
  268. package/cellTypes/selectType/index.js +0 -6
  269. package/cellTypes/selectType/index.mjs +0 -1
  270. package/cellTypes/selectType/selectType.d.ts +0 -14
  271. package/cellTypes/selectType/selectType.js +0 -13
  272. package/cellTypes/selectType/selectType.mjs +0 -8
  273. package/core/focusCatcher/focusDetector.js +0 -63
  274. package/core/focusCatcher/focusDetector.mjs +0 -59
  275. package/core/focusCatcher/index.js +0 -142
  276. package/core/focusCatcher/index.mjs +0 -138
  277. package/core/index.js +0 -9
  278. package/core/index.mjs +0 -1
  279. package/focusManager.d.ts +0 -12
  280. package/focusManager.js +0 -265
  281. package/focusManager.mjs +0 -261
  282. package/helpers/a11y.js +0 -79
  283. package/helpers/a11y.mjs +0 -38
  284. package/plugins/comments/contextMenuItem/addEditComment.js +0 -41
  285. package/plugins/comments/contextMenuItem/addEditComment.mjs +0 -35
  286. package/plugins/comments/contextMenuItem/readOnlyComment.js +0 -49
  287. package/plugins/comments/contextMenuItem/readOnlyComment.mjs +0 -43
  288. package/plugins/comments/contextMenuItem/removeComment.js +0 -38
  289. package/plugins/comments/contextMenuItem/removeComment.mjs +0 -32
  290. package/plugins/contextMenu/menu/index.js +0 -9
  291. package/plugins/contextMenu/menu/index.mjs +0 -1
  292. package/plugins/contextMenu/menu/navigator.js +0 -152
  293. package/plugins/contextMenu/menu/navigator.mjs +0 -148
  294. package/plugins/contextMenu/menu/positioner.js +0 -213
  295. package/plugins/contextMenu/menu/positioner.mjs +0 -209
  296. package/plugins/contextMenu/menu/utils.js +0 -177
  297. package/plugins/contextMenu/menu/utils.mjs +0 -163
  298. package/plugins/contextMenu/predefinedItems/index.mjs +0 -68
  299. package/renderers/dateRenderer/dateRenderer.d.ts +0 -5
  300. package/renderers/dateRenderer/dateRenderer.js +0 -29
  301. package/renderers/dateRenderer/dateRenderer.mjs +0 -24
  302. package/renderers/dateRenderer/index.d.ts +0 -1
  303. package/renderers/dateRenderer/index.js +0 -6
  304. package/renderers/dateRenderer/index.mjs +0 -1
  305. package/renderers/handsontableRenderer/handsontableRenderer.d.ts +0 -5
  306. package/renderers/handsontableRenderer/handsontableRenderer.js +0 -29
  307. package/renderers/handsontableRenderer/handsontableRenderer.mjs +0 -24
  308. package/renderers/handsontableRenderer/index.d.ts +0 -1
  309. package/renderers/handsontableRenderer/index.js +0 -6
  310. package/renderers/handsontableRenderer/index.mjs +0 -1
  311. package/renderers/selectRenderer/index.d.ts +0 -1
  312. package/renderers/selectRenderer/index.js +0 -6
  313. package/renderers/selectRenderer/index.mjs +0 -1
  314. package/renderers/selectRenderer/selectRenderer.d.ts +0 -5
  315. package/renderers/selectRenderer/selectRenderer.js +0 -27
  316. package/renderers/selectRenderer/selectRenderer.mjs +0 -22
  317. package/selection/highlight/types/areaLayered.js +0 -31
  318. package/selection/highlight/types/areaLayered.mjs +0 -26
  319. package/selection/highlight/types/column.js +0 -27
  320. package/selection/highlight/types/column.mjs +0 -22
  321. package/selection/highlight/types/row.js +0 -27
  322. package/selection/highlight/types/row.mjs +0 -22
  323. package/shortcutContexts/commands/editor/closeAndSave.js +0 -12
  324. package/shortcutContexts/commands/editor/closeAndSave.mjs +0 -8
  325. package/shortcutContexts/commands/editor/closeWithoutSaving.js +0 -12
  326. package/shortcutContexts/commands/editor/closeWithoutSaving.mjs +0 -8
  327. package/shortcutContexts/commands/editor/fastOpen.js +0 -16
  328. package/shortcutContexts/commands/editor/fastOpen.mjs +0 -12
  329. package/shortcutContexts/commands/editor/index.js +0 -16
  330. package/shortcutContexts/commands/editor/index.mjs +0 -12
  331. package/shortcutContexts/commands/editor/open.js +0 -27
  332. package/shortcutContexts/commands/editor/open.mjs +0 -23
  333. package/shortcutContexts/commands/emptySelectedCells.js +0 -11
  334. package/shortcutContexts/commands/emptySelectedCells.mjs +0 -7
  335. package/shortcutContexts/commands/extendCellsSelection/down.js +0 -15
  336. package/shortcutContexts/commands/extendCellsSelection/down.mjs +0 -11
  337. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +0 -25
  338. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +0 -21
  339. package/shortcutContexts/commands/extendCellsSelection/index.js +0 -26
  340. package/shortcutContexts/commands/extendCellsSelection/index.mjs +0 -22
  341. package/shortcutContexts/commands/extendCellsSelection/left.js +0 -15
  342. package/shortcutContexts/commands/extendCellsSelection/left.mjs +0 -11
  343. package/shortcutContexts/commands/extendCellsSelection/right.js +0 -15
  344. package/shortcutContexts/commands/extendCellsSelection/right.mjs +0 -11
  345. package/shortcutContexts/commands/extendCellsSelection/toColumns.js +0 -19
  346. package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +0 -15
  347. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +0 -29
  348. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +0 -25
  349. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +0 -19
  350. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +0 -15
  351. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +0 -19
  352. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +0 -15
  353. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +0 -29
  354. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +0 -25
  355. package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +0 -29
  356. package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +0 -25
  357. package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +0 -29
  358. package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +0 -25
  359. package/shortcutContexts/commands/extendCellsSelection/toRows.js +0 -19
  360. package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +0 -15
  361. package/shortcutContexts/commands/extendCellsSelection/up.js +0 -15
  362. package/shortcutContexts/commands/extendCellsSelection/up.mjs +0 -11
  363. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +0 -25
  364. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +0 -21
  365. package/shortcutContexts/commands/index.js +0 -35
  366. package/shortcutContexts/commands/index.mjs +0 -31
  367. package/shortcutContexts/commands/moveCellSelection/down.js +0 -13
  368. package/shortcutContexts/commands/moveCellSelection/down.mjs +0 -9
  369. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.js +0 -33
  370. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs +0 -29
  371. package/shortcutContexts/commands/moveCellSelection/index.js +0 -28
  372. package/shortcutContexts/commands/moveCellSelection/index.mjs +0 -24
  373. package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +0 -12
  374. package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +0 -8
  375. package/shortcutContexts/commands/moveCellSelection/inlineStart.js +0 -12
  376. package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +0 -8
  377. package/shortcutContexts/commands/moveCellSelection/left.js +0 -10
  378. package/shortcutContexts/commands/moveCellSelection/left.mjs +0 -6
  379. package/shortcutContexts/commands/moveCellSelection/right.js +0 -10
  380. package/shortcutContexts/commands/moveCellSelection/right.mjs +0 -6
  381. package/shortcutContexts/commands/moveCellSelection/toMostBottom.js +0 -17
  382. package/shortcutContexts/commands/moveCellSelection/toMostBottom.mjs +0 -13
  383. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.js +0 -18
  384. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.mjs +0 -14
  385. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.js +0 -14
  386. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.mjs +0 -10
  387. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.js +0 -17
  388. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.mjs +0 -13
  389. package/shortcutContexts/commands/moveCellSelection/toMostLeft.js +0 -19
  390. package/shortcutContexts/commands/moveCellSelection/toMostLeft.mjs +0 -15
  391. package/shortcutContexts/commands/moveCellSelection/toMostRight.js +0 -21
  392. package/shortcutContexts/commands/moveCellSelection/toMostRight.mjs +0 -17
  393. package/shortcutContexts/commands/moveCellSelection/toMostTop.js +0 -17
  394. package/shortcutContexts/commands/moveCellSelection/toMostTop.mjs +0 -13
  395. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.js +0 -19
  396. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.mjs +0 -15
  397. package/shortcutContexts/commands/moveCellSelection/up.js +0 -13
  398. package/shortcutContexts/commands/moveCellSelection/up.mjs +0 -9
  399. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.js +0 -33
  400. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs +0 -29
  401. package/shortcutContexts/commands/populateSelectedCellsData.js +0 -29
  402. package/shortcutContexts/commands/populateSelectedCellsData.mjs +0 -25
  403. package/shortcutContexts/commands/scrollToFocusedCell.js +0 -35
  404. package/shortcutContexts/commands/scrollToFocusedCell.mjs +0 -31
  405. package/shortcutContexts/commands/selectAll.js +0 -12
  406. package/shortcutContexts/commands/selectAll.mjs +0 -8
  407. package/shortcutContexts/constants.js +0 -13
  408. package/shortcutContexts/constants.mjs +0 -8
  409. package/shortcutContexts/editor.js +0 -25
  410. package/shortcutContexts/editor.mjs +0 -21
  411. package/shortcutContexts/grid.js +0 -163
  412. package/shortcutContexts/grid.mjs +0 -159
  413. package/shortcutContexts/index.js +0 -24
  414. package/shortcutContexts/index.mjs +0 -11
@@ -1,31 +1,18 @@
1
1
  import "core-js/modules/es.error.cause.js";
2
- function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
3
- function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
4
- 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; }
5
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
6
- 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
- function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
8
- function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } }
9
- function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
10
- function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
11
- function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
12
- import { CellCoords, CellRange } from "./../3rdparty/walkontable/src/index.mjs";
13
- import Highlight, { AREA_TYPE, HEADER_TYPE, FOCUS_TYPE } from "./highlight/highlight.mjs";
2
+ import Highlight from "./highlight/highlight.mjs";
3
+ import { AREA_TYPE, HEADER_TYPE, CELL_TYPE } from "./highlight/constants.mjs";
14
4
  import SelectionRange from "./range.mjs";
15
5
  import { createObjectPropListener, mixin } from "./../helpers/object.mjs";
16
6
  import { isUndefined } from "./../helpers/mixed.mjs";
17
- import { clamp } from "./../helpers/number.mjs";
18
7
  import { arrayEach } from "./../helpers/array.mjs";
19
8
  import localHooks from "./../mixins/localHooks.mjs";
20
9
  import Transformation from "./transformation.mjs";
21
- import { detectSelectionType, normalizeSelectionFactory, SELECTION_TYPE_EMPTY, SELECTION_TYPE_UNRECOGNIZED } from "./utils.mjs";
10
+ import { detectSelectionType, isValidCoord, normalizeSelectionFactory, SELECTION_TYPE_EMPTY, SELECTION_TYPE_UNRECOGNIZED } from "./utils.mjs";
22
11
  import { toSingleLine } from "./../helpers/templateLiteralTag.mjs";
23
- import { A11Y_SELECTED } from "../helpers/a11y.mjs";
24
12
  /**
25
13
  * @class Selection
26
14
  * @util
27
15
  */
28
- var _disableHeadersHighlight = /*#__PURE__*/new WeakMap();
29
16
  class Selection {
30
17
  constructor(settings, tableProps) {
31
18
  var _this = this;
@@ -34,73 +21,57 @@ class Selection {
34
21
  *
35
22
  * @type {GridSettings}
36
23
  */
37
- _defineProperty(this, "settings", void 0);
24
+ this.settings = settings;
38
25
  /**
39
26
  * An additional object with dynamically defined properties which describes table state.
40
27
  *
41
28
  * @type {object}
42
29
  */
43
- _defineProperty(this, "tableProps", void 0);
30
+ this.tableProps = tableProps;
44
31
  /**
45
32
  * The flag which determines if the selection is in progress.
46
33
  *
47
34
  * @type {boolean}
48
35
  */
49
- _defineProperty(this, "inProgress", false);
50
- /**
51
- * Selection data layer (handle visual coordinates).
52
- *
53
- * @type {SelectionRange}
54
- */
55
- _defineProperty(this, "selectedRange", new SelectionRange((highlight, from, to) => {
56
- return this.tableProps.createCellRange(highlight, from, to);
57
- }));
58
- /**
59
- * Visualization layer.
60
- *
61
- * @type {Highlight}
62
- */
63
- _defineProperty(this, "highlight", void 0);
36
+ this.inProgress = false;
64
37
  /**
65
- * The module for modifying coordinates.
38
+ * The flag indicates that selection was performed by clicking the corner overlay.
66
39
  *
67
- * @type {Transformation}
40
+ * @type {boolean}
68
41
  */
69
- _defineProperty(this, "transformation", void 0);
42
+ this.selectedByCorner = false;
70
43
  /**
71
44
  * The collection of the selection layer levels where the whole row was selected using the row header or
72
45
  * the corner header.
73
46
  *
74
- * @type {Set<number>}
47
+ * @type {Set.<number>}
75
48
  */
76
- _defineProperty(this, "selectedByRowHeader", new Set());
49
+ this.selectedByRowHeader = new Set();
77
50
  /**
78
51
  * The collection of the selection layer levels where the whole column was selected using the column header or
79
52
  * the corner header.
80
53
  *
81
- * @type {Set<number>}
54
+ * @type {Set.<number>}
82
55
  */
83
- _defineProperty(this, "selectedByColumnHeader", new Set());
56
+ this.selectedByColumnHeader = new Set();
84
57
  /**
85
- * When sets disable highlighting the headers even when the logical coordinates points on them.
58
+ * Selection data layer (handle visual coordinates).
86
59
  *
87
- * @type {boolean}
60
+ * @type {SelectionRange}
88
61
  */
89
- _classPrivateFieldInitSpec(this, _disableHeadersHighlight, {
90
- writable: true,
91
- value: false
62
+ this.selectedRange = new SelectionRange((highlight, from, to) => {
63
+ return this.tableProps.createCellRange(highlight, from, to);
92
64
  });
93
- this.settings = settings;
94
- this.tableProps = tableProps;
65
+ /**
66
+ * Visualization layer.
67
+ *
68
+ * @type {Highlight}
69
+ */
95
70
  this.highlight = new Highlight({
96
71
  headerClassName: settings.currentHeaderClassName,
97
- headerAttributes: [A11Y_SELECTED()],
98
72
  activeHeaderClassName: settings.activeHeaderClassName,
99
73
  rowClassName: settings.currentRowClassName,
100
74
  columnClassName: settings.currentColClassName,
101
- cellAttributes: [A11Y_SELECTED()],
102
- rowIndexMapper: this.tableProps.rowIndexMapper,
103
- columnIndexMapper: this.tableProps.columnIndexMapper,
104
75
  disabledCellSelection: (row, column) => this.tableProps.isDisabledCellSelection(row, column),
105
76
  cellCornerVisible: function () {
106
77
  return _this.isCellCornerVisible(...arguments);
@@ -111,19 +82,21 @@ class Selection {
111
82
  visualToRenderableCoords: coords => this.tableProps.visualToRenderableCoords(coords),
112
83
  renderableToVisualCoords: coords => this.tableProps.renderableToVisualCoords(coords),
113
84
  createCellCoords: (row, column) => this.tableProps.createCellCoords(row, column),
114
- createCellRange: (highlight, from, to) => this.tableProps.createCellRange(highlight, from, to)
85
+ createCellRange: (highlight, from, to) => this.tableProps.createCellRange(highlight, from, to),
86
+ rowIndexMapper: () => this.tableProps.rowIndexMapper(),
87
+ columnIndexMapper: () => this.tableProps.columnIndexMapper()
115
88
  });
89
+ /**
90
+ * The module for modifying coordinates.
91
+ *
92
+ * @type {Transformation}
93
+ */
116
94
  this.transformation = new Transformation(this.selectedRange, {
117
- rowIndexMapper: this.tableProps.rowIndexMapper,
118
- columnIndexMapper: this.tableProps.columnIndexMapper,
119
- countRenderableRows: () => this.tableProps.countRenderableRows(),
120
- countRenderableColumns: () => this.tableProps.countRenderableColumns(),
121
- countRowHeaders: () => this.tableProps.countRowHeaders(),
122
- countColHeaders: () => this.tableProps.countColHeaders(),
95
+ countRows: () => this.tableProps.countRowsTranslated(),
96
+ countCols: () => this.tableProps.countColsTranslated(),
123
97
  visualToRenderableCoords: coords => this.tableProps.visualToRenderableCoords(coords),
124
98
  renderableToVisualCoords: coords => this.tableProps.renderableToVisualCoords(coords),
125
99
  createCellCoords: (row, column) => this.tableProps.createCellCoords(row, column),
126
- navigableHeaders: () => settings.navigableHeaders,
127
100
  fixedRowsBottom: () => settings.fixedRowsBottom,
128
101
  minSpareRows: () => settings.minSpareRows,
129
102
  minSpareCols: () => settings.minSpareCols,
@@ -178,14 +151,14 @@ class Selection {
178
151
  }
179
152
 
180
153
  /**
181
- * Indicate that selection process began. It sets internally `.inProgress` property to `true`.
154
+ * Indicate that selection process began. It sets internaly `.inProgress` property to `true`.
182
155
  */
183
156
  begin() {
184
157
  this.inProgress = true;
185
158
  }
186
159
 
187
160
  /**
188
- * Indicate that selection process finished. It sets internally `.inProgress` property to `false`.
161
+ * Indicate that selection process finished. It sets internaly `.inProgress` property to `false`.
189
162
  */
190
163
  finish() {
191
164
  this.runLocalHooks('afterSelectionFinished', Array.from(this.selectedRange));
@@ -210,25 +183,33 @@ class Selection {
210
183
  * the default trigger will be used.
211
184
  * @param {boolean} [fragment=false] If `true`, the selection will be treated as a partial selection where the
212
185
  * `setRangeEnd` method won't be called on every `setRangeStart` call.
213
- * @param {CellCoords} [highlightCoords] If set, allows changing the coordinates of the highlight/focus cell.
214
186
  */
215
187
  setRangeStart(coords, multipleSelection) {
216
188
  let fragment = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
217
- let highlightCoords = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : coords;
218
189
  const isMultipleMode = this.settings.selectionMode === 'multiple';
219
190
  const isMultipleSelection = isUndefined(multipleSelection) ? this.tableProps.getShortcutManager().isCtrlPressed() : multipleSelection;
191
+ const isRowNegative = coords.row < 0;
192
+ const isColumnNegative = coords.col < 0;
193
+ const selectedByCorner = isRowNegative && isColumnNegative;
220
194
  // We are creating copy. We would like to modify just the start of the selection by below hook. Then original coords
221
195
  // should be handled by next methods.
222
196
  const coordsClone = coords.clone();
197
+ this.selectedByCorner = selectedByCorner;
223
198
  this.runLocalHooks(`beforeSetRangeStart${fragment ? 'Only' : ''}`, coordsClone);
224
199
  if (!isMultipleMode || isMultipleMode && !isMultipleSelection && isUndefined(multipleSelection)) {
225
200
  this.selectedRange.clear();
226
201
  }
227
- this.selectedRange.add(coordsClone).current().setHighlight(highlightCoords.clone());
202
+ this.selectedRange.add(coordsClone);
228
203
  if (this.getLayerLevel() === 0) {
229
204
  this.selectedByRowHeader.clear();
230
205
  this.selectedByColumnHeader.clear();
231
206
  }
207
+ if (!selectedByCorner && isColumnNegative) {
208
+ this.selectedByRowHeader.add(this.getLayerLevel());
209
+ }
210
+ if (!selectedByCorner && isRowNegative) {
211
+ this.selectedByColumnHeader.add(this.getLayerLevel());
212
+ }
232
213
  if (!fragment) {
233
214
  this.setRangeEnd(coords);
234
215
  }
@@ -241,11 +222,9 @@ class Selection {
241
222
  * @param {boolean} [multipleSelection] If `true`, selection will be worked in 'multiple' mode. This option works
242
223
  * only when 'selectionMode' is set as 'multiple'. If the argument is not defined
243
224
  * the default trigger will be used.
244
- * @param {CellCoords} [highlightCoords] If set, allows changing the coordinates of the highlight/focus cell.
245
225
  */
246
226
  setRangeStartOnly(coords, multipleSelection) {
247
- let highlightCoords = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : coords;
248
- this.setRangeStart(coords, multipleSelection, true, highlightCoords);
227
+ this.setRangeStart(coords, multipleSelection, true);
249
228
  }
250
229
 
251
230
  /**
@@ -257,40 +236,21 @@ class Selection {
257
236
  if (this.selectedRange.isEmpty()) {
258
237
  return;
259
238
  }
260
- const coordsClone = coords.clone();
261
- const countRows = this.tableProps.countRows();
262
- const countCols = this.tableProps.countCols();
263
- const isSingle = this.selectedRange.current().clone().setTo(coords).isSingleHeader();
264
239
 
265
- // Ignore processing the end range when the header selection starts overlapping the corner and
266
- // the selection is not a single header highlight.
267
- if ((countRows > 0 || countCols > 0) && (countRows === 0 && coordsClone.col < 0 && !isSingle || countCols === 0 && coordsClone.row < 0 && !isSingle)) {
268
- return;
269
- }
240
+ // We are creating copy. We would like to modify just the end of the selection by below hook. Then original coords
241
+ // should be handled by next methods.
242
+ const coordsClone = coords.clone();
270
243
  this.runLocalHooks('beforeSetRangeEnd', coordsClone);
271
244
  this.begin();
272
245
  const cellRange = this.selectedRange.current();
273
- if (!this.settings.navigableHeaders) {
274
- cellRange.highlight.normalize();
275
- }
276
- if (this.settings.selectionMode === 'single') {
277
- cellRange.setFrom(cellRange.highlight);
278
- cellRange.setTo(cellRange.highlight);
279
- } else {
280
- cellRange.setTo(coordsClone);
246
+ if (this.settings.selectionMode !== 'single') {
247
+ cellRange.setTo(this.tableProps.createCellCoords(coordsClone.row, coordsClone.col));
281
248
  }
282
249
 
283
- // Prevent creating "area" selection that overlaps headers.
284
- if (countRows > 0 && countCols > 0) {
285
- if (!this.settings.navigableHeaders || this.settings.navigableHeaders && !cellRange.isSingleHeader()) {
286
- cellRange.to.normalize();
287
- }
288
- }
289
- this.runLocalHooks('beforeHighlightSet');
290
- const focusHighlight = this.highlight.getFocus();
291
- focusHighlight.clear();
292
- if (this.highlight.isEnabledFor(FOCUS_TYPE, cellRange.highlight)) {
293
- focusHighlight.add(this.selectedRange.current().highlight).commit().syncWith(cellRange);
250
+ // Set up current selection.
251
+ this.highlight.getCell().clear();
252
+ if (this.highlight.isEnabledFor(CELL_TYPE, cellRange.highlight)) {
253
+ this.highlight.getCell().add(this.selectedRange.current().highlight).commit().syncWith(cellRange);
294
254
  }
295
255
  const layerLevel = this.getLayerLevel();
296
256
 
@@ -298,80 +258,69 @@ class Selection {
298
258
  // indication that the new selection is performing.
299
259
  if (layerLevel < this.highlight.layerLevel) {
300
260
  arrayEach(this.highlight.getAreas(), highlight => void highlight.clear());
301
- arrayEach(this.highlight.getLayeredAreas(), highlight => void highlight.clear());
302
- arrayEach(this.highlight.getRowHeaders(), highlight => void highlight.clear());
303
- arrayEach(this.highlight.getColumnHeaders(), highlight => void highlight.clear());
304
- arrayEach(this.highlight.getActiveRowHeaders(), highlight => void highlight.clear());
305
- arrayEach(this.highlight.getActiveColumnHeaders(), highlight => void highlight.clear());
306
- arrayEach(this.highlight.getActiveCornerHeaders(), highlight => void highlight.clear());
307
- arrayEach(this.highlight.getRowHighlights(), highlight => void highlight.clear());
308
- arrayEach(this.highlight.getColumnHighlights(), highlight => void highlight.clear());
261
+ arrayEach(this.highlight.getHeaders(), highlight => void highlight.clear());
262
+ arrayEach(this.highlight.getActiveHeaders(), highlight => void highlight.clear());
309
263
  }
310
264
  this.highlight.useLayerLevel(layerLevel);
311
- const areaHighlight = this.highlight.createArea();
312
- const layeredAreaHighlight = this.highlight.createLayeredArea();
313
- const rowHeaderHighlight = this.highlight.createRowHeader();
314
- const columnHeaderHighlight = this.highlight.createColumnHeader();
315
- const activeRowHeaderHighlight = this.highlight.createActiveRowHeader();
316
- const activeColumnHeaderHighlight = this.highlight.createActiveColumnHeader();
317
- const activeCornerHeaderHighlight = this.highlight.createActiveCornerHeader();
318
- const rowHighlight = this.highlight.createRowHighlight();
319
- const columnHighlight = this.highlight.createColumnHighlight();
265
+ const areaHighlight = this.highlight.createOrGetArea();
266
+ const headerHighlight = this.highlight.createOrGetHeader();
267
+ const activeHeaderHighlight = this.highlight.createOrGetActiveHeader();
320
268
  areaHighlight.clear();
321
- layeredAreaHighlight.clear();
322
- rowHeaderHighlight.clear();
323
- columnHeaderHighlight.clear();
324
- activeRowHeaderHighlight.clear();
325
- activeColumnHeaderHighlight.clear();
326
- activeCornerHeaderHighlight.clear();
327
- rowHighlight.clear();
328
- columnHighlight.clear();
269
+ headerHighlight.clear();
270
+ activeHeaderHighlight.clear();
329
271
  if (this.highlight.isEnabledFor(AREA_TYPE, cellRange.highlight) && (this.isMultiple() || layerLevel >= 1)) {
330
272
  areaHighlight.add(cellRange.from).add(cellRange.to).commit();
331
- layeredAreaHighlight.add(cellRange.from).add(cellRange.to).commit();
332
273
  if (layerLevel === 1) {
333
274
  // For single cell selection in the same layer, we do not create area selection to prevent blue background.
334
275
  // When non-consecutive selection is performed we have to add that missing area selection to the previous layer
335
276
  // based on previous coordinates. It only occurs when the previous selection wasn't select multiple cells.
336
277
  const previousRange = this.selectedRange.previous();
337
- this.highlight.useLayerLevel(layerLevel - 1);
338
- this.highlight.createArea().add(previousRange.from).commit()
339
- // Range may start with hidden indexes. Commit would not found start point (as we add just the `from` coords).
340
- .syncWith(previousRange);
341
- this.highlight.createLayeredArea().add(previousRange.from).commit()
278
+ this.highlight.useLayerLevel(layerLevel - 1).createOrGetArea().add(previousRange.from).commit()
342
279
  // Range may start with hidden indexes. Commit would not found start point (as we add just the `from` coords).
343
280
  .syncWith(previousRange);
344
281
  this.highlight.useLayerLevel(layerLevel);
345
282
  }
346
283
  }
347
284
  if (this.highlight.isEnabledFor(HEADER_TYPE, cellRange.highlight)) {
348
- if (!cellRange.isSingleHeader()) {
349
- const rowCoordsFrom = this.tableProps.createCellCoords(Math.max(cellRange.from.row, 0), -1);
350
- const rowCoordsTo = this.tableProps.createCellCoords(cellRange.to.row, -1);
351
- const columnCoordsFrom = this.tableProps.createCellCoords(-1, Math.max(cellRange.from.col, 0));
352
- const columnCoordsTo = this.tableProps.createCellCoords(-1, cellRange.to.col);
353
- if (this.settings.selectionMode === 'single') {
354
- rowHeaderHighlight.add(rowCoordsFrom).commit();
355
- columnHeaderHighlight.add(columnCoordsFrom).commit();
356
- rowHighlight.add(rowCoordsFrom).commit();
357
- columnHighlight.add(columnCoordsFrom).commit();
358
- } else {
359
- rowHeaderHighlight.add(rowCoordsFrom).add(rowCoordsTo).commit();
360
- columnHeaderHighlight.add(columnCoordsFrom).add(columnCoordsTo).commit();
361
- rowHighlight.add(rowCoordsFrom).add(rowCoordsTo).commit();
362
- columnHighlight.add(columnCoordsFrom).add(columnCoordsTo).commit();
363
- }
285
+ // The header selection generally contains cell selection. In a case when all rows (or columns)
286
+ // are hidden that visual coordinates are translated to renderable coordinates that do not exist.
287
+ // Hence no header highlight is generated. In that case, to make a column (or a row) header
288
+ // highlight, the row and column index has to point to the header (the negative value). See #7052.
289
+ const areAnyRowsRendered = this.tableProps.countRowsTranslated() === 0;
290
+ const areAnyColumnsRendered = this.tableProps.countColsTranslated() === 0;
291
+ let headerCellRange = cellRange;
292
+ if (areAnyRowsRendered || areAnyColumnsRendered) {
293
+ headerCellRange = cellRange.clone();
364
294
  }
365
- const highlightRowHeaders = !_classPrivateFieldGet(this, _disableHeadersHighlight) && this.isEntireRowSelected() && (countCols > 0 && countCols === cellRange.getWidth() || countCols === 0 && this.isSelectedByRowHeader());
366
- const highlightColumnHeaders = !_classPrivateFieldGet(this, _disableHeadersHighlight) && this.isEntireColumnSelected() && (countRows > 0 && countRows === cellRange.getHeight() || countRows === 0 && this.isSelectedByColumnHeader());
367
- if (highlightRowHeaders) {
368
- activeRowHeaderHighlight.add(this.tableProps.createCellCoords(Math.max(cellRange.from.row, 0), Math.min(-this.tableProps.countRowHeaders(), -1))).add(this.tableProps.createCellCoords(Math.max(cellRange.to.row, 0), -1)).commit();
295
+ if (areAnyRowsRendered) {
296
+ headerCellRange.from.row = -1;
369
297
  }
370
- if (highlightColumnHeaders) {
371
- activeColumnHeaderHighlight.add(this.tableProps.createCellCoords(Math.min(-this.tableProps.countColHeaders(), -1), Math.max(cellRange.from.col, 0))).add(this.tableProps.createCellCoords(-1, Math.max(cellRange.to.col, 0))).commit();
298
+ if (areAnyColumnsRendered) {
299
+ headerCellRange.from.col = -1;
372
300
  }
373
- if (highlightRowHeaders && highlightColumnHeaders) {
374
- activeCornerHeaderHighlight.add(this.tableProps.createCellCoords(-this.tableProps.countColHeaders(), -this.tableProps.countRowHeaders())).add(this.tableProps.createCellCoords(-1, -1)).commit();
301
+ if (this.settings.selectionMode === 'single') {
302
+ if (this.isSelectedByAnyHeader()) {
303
+ headerCellRange.from.normalize();
304
+ }
305
+ headerHighlight.add(headerCellRange.from).commit();
306
+ } else {
307
+ headerHighlight.add(headerCellRange.from).add(headerCellRange.to).commit();
308
+ }
309
+ if (this.isEntireRowSelected()) {
310
+ const isRowSelected = this.tableProps.countCols() === cellRange.getWidth();
311
+
312
+ // Make sure that the whole row is selected (in case where selectionMode is set to 'single')
313
+ if (isRowSelected) {
314
+ activeHeaderHighlight.add(this.tableProps.createCellCoords(cellRange.from.row, -1)).add(this.tableProps.createCellCoords(cellRange.to.row, -1)).commit();
315
+ }
316
+ }
317
+ if (this.isEntireColumnSelected()) {
318
+ const isColumnSelected = this.tableProps.countRows() === cellRange.getHeight();
319
+
320
+ // Make sure that the whole column is selected (in case where selectionMode is set to 'single')
321
+ if (isColumnSelected) {
322
+ activeHeaderHighlight.add(this.tableProps.createCellCoords(-1, cellRange.from.col)).add(this.tableProps.createCellCoords(-1, cellRange.to.col)).commit();
323
+ }
375
324
  }
376
325
  }
377
326
  this.runLocalHooks('afterSetRangeEnd', coords);
@@ -394,12 +343,12 @@ class Selection {
394
343
  *
395
344
  * @param {number} rowDelta Rows number to move, value can be passed as negative number.
396
345
  * @param {number} colDelta Columns number to move, value can be passed as negative number.
397
- * @param {boolean} [createMissingRecords=false] If `true` the new rows/columns will be created if necessary.
398
- * Otherwise, row/column will be created according to `minSpareRows/minSpareCols` settings of Handsontable.
346
+ * @param {boolean} [force=false] If `true` the new rows/columns will be created if necessary. Otherwise, row/column will
347
+ * be created according to `minSpareRows/minSpareCols` settings of Handsontable.
399
348
  */
400
349
  transformStart(rowDelta, colDelta) {
401
- let createMissingRecords = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
402
- this.setRangeStart(this.transformation.transformStart(rowDelta, colDelta, createMissingRecords));
350
+ let force = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
351
+ this.setRangeStart(this.transformation.transformStart(rowDelta, colDelta, force));
403
352
  }
404
353
 
405
354
  /**
@@ -440,7 +389,7 @@ class Selection {
440
389
  */
441
390
  isSelectedByRowHeader() {
442
391
  let layerLevel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getLayerLevel();
443
- return !this.isSelectedByCorner(layerLevel) && (layerLevel === -1 ? this.selectedByRowHeader.size > 0 : this.selectedByRowHeader.has(layerLevel));
392
+ return !this.isSelectedByCorner(layerLevel) && this.isEntireRowSelected(layerLevel);
444
393
  }
445
394
 
446
395
  /**
@@ -452,19 +401,7 @@ class Selection {
452
401
  */
453
402
  isEntireRowSelected() {
454
403
  let layerLevel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getLayerLevel();
455
- const tester = range => {
456
- const {
457
- col
458
- } = range.getOuterTopStartCorner();
459
- const rowHeaders = this.tableProps.countRowHeaders();
460
- const countCols = this.tableProps.countCols();
461
- return (rowHeaders > 0 && col < 0 || rowHeaders === 0) && range.getWidth() === countCols;
462
- };
463
- if (layerLevel === -1) {
464
- return Array.from(this.selectedRange).some(range => tester(range));
465
- }
466
- const range = this.selectedRange.peekByIndex(layerLevel);
467
- return range ? tester(range) : false;
404
+ return layerLevel === -1 ? this.selectedByRowHeader.size > 0 : this.selectedByRowHeader.has(layerLevel);
468
405
  }
469
406
 
470
407
  /**
@@ -477,7 +414,7 @@ class Selection {
477
414
  */
478
415
  isSelectedByColumnHeader() {
479
416
  let layerLevel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getLayerLevel();
480
- return !this.isSelectedByCorner() && (layerLevel === -1 ? this.selectedByColumnHeader.size > 0 : this.selectedByColumnHeader.has(layerLevel));
417
+ return !this.isSelectedByCorner() && this.isEntireColumnSelected(layerLevel);
481
418
  }
482
419
 
483
420
  /**
@@ -489,19 +426,7 @@ class Selection {
489
426
  */
490
427
  isEntireColumnSelected() {
491
428
  let layerLevel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getLayerLevel();
492
- const tester = range => {
493
- const {
494
- row
495
- } = range.getOuterTopStartCorner();
496
- const colHeaders = this.tableProps.countColHeaders();
497
- const countRows = this.tableProps.countRows();
498
- return (colHeaders > 0 && row < 0 || colHeaders === 0) && range.getHeight() === countRows;
499
- };
500
- if (layerLevel === -1) {
501
- return Array.from(this.selectedRange).some(range => tester(range));
502
- }
503
- const range = this.selectedRange.peekByIndex(layerLevel);
504
- return range ? tester(range) : false;
429
+ return layerLevel === -1 ? this.selectedByColumnHeader.size > 0 : this.selectedByColumnHeader.has(layerLevel);
505
430
  }
506
431
 
507
432
  /**
@@ -519,7 +444,7 @@ class Selection {
519
444
  * @returns {boolean}
520
445
  */
521
446
  isSelectedByCorner() {
522
- return this.selectedByColumnHeader.has(this.getLayerLevel()) && this.selectedByRowHeader.has(this.getLayerLevel());
447
+ return this.selectedByCorner;
523
448
  }
524
449
 
525
450
  /**
@@ -578,61 +503,31 @@ class Selection {
578
503
  }
579
504
 
580
505
  /**
581
- * Selects all cells and headers.
506
+ * Select all cells.
582
507
  *
583
- * @param {boolean} [includeRowHeaders=false] `true` If the selection should include the row headers,
584
- * `false` otherwise.
585
- * @param {boolean} [includeColumnHeaders=false] `true` If the selection should include the column
586
- * headers, `false` otherwise.
587
- * @param {object} [options] Additional object with options.
588
- * @param {{row: number, col: number} | boolean} [options.focusPosition] The argument allows changing the cell/header
589
- * focus position. The value takes an object with a `row` and `col` properties from -N to N, where
590
- * negative values point to the headers and positive values point to the cell range. If `false`, the focus
591
- * position won't be changed.
592
- * @param {boolean} [options.disableHeadersHighlight] If `true`, disables highlighting the headers even when
593
- * the logical coordinates points on them.
508
+ * @param {boolean} [includeRowHeaders=false] `true` If the selection should include the row headers, `false`
509
+ * otherwise.
510
+ * @param {boolean} [includeColumnHeaders=false] `true` If the selection should include the column headers, `false`
511
+ * otherwise.
594
512
  */
595
513
  selectAll() {
596
- var _this$getSelectedRang;
597
514
  let includeRowHeaders = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
598
515
  let includeColumnHeaders = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
599
- let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {
600
- focusPosition: false,
601
- disableHeadersHighlight: false
602
- };
603
516
  const nrOfRows = this.tableProps.countRows();
604
517
  const nrOfColumns = this.tableProps.countCols();
605
- const countRowHeaders = this.tableProps.countRowHeaders();
606
- const countColHeaders = this.tableProps.countColHeaders();
607
- const rowFrom = includeColumnHeaders ? -countColHeaders : 0;
608
- const columnFrom = includeRowHeaders ? -countRowHeaders : 0;
609
518
 
610
519
  // We can't select cells when there is no data.
611
- if (rowFrom === 0 && columnFrom === 0 && (nrOfRows === 0 || nrOfColumns === 0)) {
520
+ if (!includeRowHeaders && !includeColumnHeaders && (nrOfRows === 0 || nrOfColumns === 0)) {
612
521
  return;
613
522
  }
614
- let highlight = (_this$getSelectedRang = this.getSelectedRange().current()) === null || _this$getSelectedRang === void 0 ? void 0 : _this$getSelectedRang.highlight;
615
- const {
616
- focusPosition,
617
- disableHeadersHighlight
618
- } = options;
619
- _classPrivateFieldSet(this, _disableHeadersHighlight, disableHeadersHighlight);
620
- if (focusPosition && Number.isInteger(focusPosition === null || focusPosition === void 0 ? void 0 : focusPosition.row) && Number.isInteger(focusPosition === null || focusPosition === void 0 ? void 0 : focusPosition.col)) {
621
- highlight = this.tableProps.createCellCoords(clamp(focusPosition.row, rowFrom, nrOfRows - 1), clamp(focusPosition.col, columnFrom, nrOfColumns - 1));
622
- }
623
- const startCoords = this.tableProps.createCellCoords(rowFrom, columnFrom);
523
+ const startCoords = this.tableProps.createCellCoords(includeColumnHeaders ? -1 : 0, includeRowHeaders ? -1 : 0);
624
524
  const endCoords = this.tableProps.createCellCoords(nrOfRows - 1, nrOfColumns - 1);
625
525
  this.clear();
626
- this.setRangeStartOnly(startCoords, void 0, highlight);
627
- if (columnFrom < 0) {
628
- this.selectedByRowHeader.add(this.getLayerLevel());
629
- }
630
- if (rowFrom < 0) {
631
- this.selectedByColumnHeader.add(this.getLayerLevel());
632
- }
526
+ this.setRangeStartOnly(startCoords);
527
+ this.selectedByRowHeader.add(this.getLayerLevel());
528
+ this.selectedByColumnHeader.add(this.getLayerLevel());
633
529
  this.setRangeEnd(endCoords);
634
530
  this.finish();
635
- _classPrivateFieldSet(this, _disableHeadersHighlight, false);
636
531
  }
637
532
 
638
533
  /**
@@ -657,29 +552,21 @@ class Selection {
657
552
  propToCol: prop => this.tableProps.propToCol(prop),
658
553
  keepDirection: true
659
554
  });
660
- const navigableHeaders = this.settings.navigableHeaders;
661
- const tableParams = {
662
- countRows: this.tableProps.countRows(),
663
- countCols: this.tableProps.countCols(),
664
- countRowHeaders: navigableHeaders ? this.tableProps.countRowHeaders() : 0,
665
- countColHeaders: navigableHeaders ? this.tableProps.countColHeaders() : 0
666
- };
555
+ const nrOfRows = this.tableProps.countRows();
556
+ const nrOfColumns = this.tableProps.countCols();
667
557
 
668
558
  // Check if every layer of the coordinates are valid.
669
559
  const isValid = !selectionRanges.some(selection => {
670
- const cellRange = selectionSchemaNormalizer(selection);
671
- const rangeValidity = cellRange.isValid(tableParams);
672
- return !(rangeValidity && !cellRange.containsHeaders() || rangeValidity && cellRange.containsHeaders() && cellRange.isSingleHeader());
560
+ const [rowStart, columnStart, rowEnd, columnEnd] = selectionSchemaNormalizer(selection);
561
+ const _isValid = isValidCoord(rowStart, nrOfRows) && isValidCoord(columnStart, nrOfColumns) && isValidCoord(rowEnd, nrOfRows) && isValidCoord(columnEnd, nrOfColumns);
562
+ return !_isValid;
673
563
  });
674
564
  if (isValid) {
675
565
  this.clear();
676
566
  arrayEach(selectionRanges, selection => {
677
- const {
678
- from,
679
- to
680
- } = selectionSchemaNormalizer(selection);
681
- this.setRangeStartOnly(from.clone(), false);
682
- this.setRangeEnd(to.clone());
567
+ const [rowStart, columnStart, rowEnd, columnEnd] = selectionSchemaNormalizer(selection);
568
+ this.setRangeStartOnly(this.tableProps.createCellCoords(rowStart, columnStart), false);
569
+ this.setRangeEnd(this.tableProps.createCellCoords(rowEnd, columnEnd));
683
570
  this.finish();
684
571
  });
685
572
  }
@@ -692,43 +579,22 @@ class Selection {
692
579
  *
693
580
  * @param {number|string} startColumn Visual column index or column property from which the selection starts.
694
581
  * @param {number|string} [endColumn] Visual column index or column property from to the selection finishes.
695
- * @param {number} [focusPosition=0] The argument allows changing the cell/header focus position.
696
- * The value can take visual row index from -N to N, where negative values
697
- * point to the headers and positive values point to the cell range.
582
+ * @param {number} [headerLevel=-1] A row header index that triggers the column selection. The value can
583
+ * take -1 to -N, where -1 means the header closest to the cells.
584
+ *
698
585
  * @returns {boolean} Returns `true` if selection was successful, `false` otherwise.
699
586
  */
700
587
  selectColumns(startColumn) {
701
588
  let endColumn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : startColumn;
702
- let focusPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
589
+ let headerLevel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : -1;
703
590
  const start = typeof startColumn === 'string' ? this.tableProps.propToCol(startColumn) : startColumn;
704
591
  const end = typeof endColumn === 'string' ? this.tableProps.propToCol(endColumn) : endColumn;
705
- const countRows = this.tableProps.countRows();
706
- const countCols = this.tableProps.countCols();
707
- const countColHeaders = this.tableProps.countColHeaders();
708
- const columnHeaderLastIndex = countColHeaders === 0 ? 0 : -countColHeaders;
709
- const fromCoords = new CellCoords(columnHeaderLastIndex, start);
710
- const toCoords = new CellCoords(countRows - 1, end);
711
- const isValid = new CellRange(fromCoords, fromCoords, toCoords).isValid({
712
- countRows,
713
- countCols,
714
- countRowHeaders: 0,
715
- countColHeaders
716
- });
592
+ const nrOfColumns = this.tableProps.countCols();
593
+ const nrOfRows = this.tableProps.countRows();
594
+ const isValid = isValidCoord(start, nrOfColumns) && isValidCoord(end, nrOfColumns);
717
595
  if (isValid) {
718
- const fromRow = countColHeaders === 0 ? 0 : clamp(focusPosition, columnHeaderLastIndex, -1);
719
- const toRow = countRows - 1;
720
- const from = this.tableProps.createCellCoords(fromRow, start);
721
- const to = this.tableProps.createCellCoords(toRow, end);
722
- const highlight = this.tableProps.createCellCoords(clamp(focusPosition, columnHeaderLastIndex, countRows - 1), start);
723
- this.runLocalHooks('beforeSelectColumns', from, to, highlight);
724
-
725
- // disallow modifying row axis for that hooks
726
- from.row = fromRow;
727
- to.row = toRow;
728
- this.setRangeStartOnly(from, void 0, highlight);
729
- this.selectedByColumnHeader.add(this.getLayerLevel());
730
- this.setRangeEnd(to);
731
- this.runLocalHooks('afterSelectColumns', from, to, highlight);
596
+ this.setRangeStartOnly(this.tableProps.createCellCoords(headerLevel, start));
597
+ this.setRangeEnd(this.tableProps.createCellCoords(nrOfRows - 1, end));
732
598
  this.finish();
733
599
  }
734
600
  return isValid;
@@ -739,41 +605,20 @@ class Selection {
739
605
  *
740
606
  * @param {number} startRow Visual row index from which the selection starts.
741
607
  * @param {number} [endRow] Visual row index from to the selection finishes.
742
- * @param {number} [focusPosition=0] The argument allows changing the cell/header focus position.
743
- * The value can take visual column index from -N to N, where negative values
744
- * point to the headers and positive values point to the cell range.
608
+ * @param {number} [headerLevel=-1] A column header index that triggers the row selection.
609
+ * The value can take -1 to -N, where -1 means the header
610
+ * closest to the cells.
745
611
  * @returns {boolean} Returns `true` if selection was successful, `false` otherwise.
746
612
  */
747
613
  selectRows(startRow) {
748
614
  let endRow = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : startRow;
749
- let focusPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
750
- const countRows = this.tableProps.countRows();
751
- const countCols = this.tableProps.countCols();
752
- const countRowHeaders = this.tableProps.countRowHeaders();
753
- const rowHeaderLastIndex = countRowHeaders === 0 ? 0 : -countRowHeaders;
754
- const fromCoords = new CellCoords(startRow, rowHeaderLastIndex);
755
- const toCoords = new CellCoords(endRow, countCols - 1);
756
- const isValid = new CellRange(fromCoords, fromCoords, toCoords).isValid({
757
- countRows,
758
- countCols,
759
- countRowHeaders,
760
- countColHeaders: 0
761
- });
615
+ let headerLevel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : -1;
616
+ const nrOfRows = this.tableProps.countRows();
617
+ const nrOfColumns = this.tableProps.countCols();
618
+ const isValid = isValidCoord(startRow, nrOfRows) && isValidCoord(endRow, nrOfRows);
762
619
  if (isValid) {
763
- const fromColumn = countRowHeaders === 0 ? 0 : clamp(focusPosition, rowHeaderLastIndex, -1);
764
- const toColumn = countCols - 1;
765
- const from = this.tableProps.createCellCoords(startRow, fromColumn);
766
- const to = this.tableProps.createCellCoords(endRow, toColumn);
767
- const highlight = this.tableProps.createCellCoords(startRow, clamp(focusPosition, rowHeaderLastIndex, countCols - 1));
768
- this.runLocalHooks('beforeSelectRows', from, to, highlight);
769
-
770
- // disallow modifying column axis for that hooks
771
- from.col = fromColumn;
772
- to.col = toColumn;
773
- this.setRangeStartOnly(from, void 0, highlight);
774
- this.selectedByRowHeader.add(this.getLayerLevel());
775
- this.setRangeEnd(to);
776
- this.runLocalHooks('afterSelectRows', from, to, highlight);
620
+ this.setRangeStartOnly(this.tableProps.createCellCoords(startRow, headerLevel));
621
+ this.setRangeEnd(this.tableProps.createCellCoords(endRow, nrOfColumns - 1));
777
622
  this.finish();
778
623
  }
779
624
  return isValid;
@@ -790,31 +635,19 @@ class Selection {
790
635
  if (!this.isSelected()) {
791
636
  return;
792
637
  }
793
- const focusHighlight = this.highlight.getFocus();
638
+ const cellHighlight = this.highlight.getCell();
794
639
  const currentLayer = this.getLayerLevel();
795
- focusHighlight.commit().syncWith(this.selectedRange.current());
640
+ cellHighlight.commit().syncWith(this.selectedRange.current());
796
641
 
797
642
  // Rewriting rendered ranges going through all layers.
798
643
  for (let layerLevel = 0; layerLevel < this.selectedRange.size(); layerLevel += 1) {
799
644
  this.highlight.useLayerLevel(layerLevel);
800
- const areaHighlight = this.highlight.createArea();
801
- const areaLayeredHighlight = this.highlight.createLayeredArea();
802
- const rowHeaderHighlight = this.highlight.createRowHeader();
803
- const columnHeaderHighlight = this.highlight.createColumnHeader();
804
- const activeRowHeaderHighlight = this.highlight.createActiveRowHeader();
805
- const activeColumnHeaderHighlight = this.highlight.createActiveColumnHeader();
806
- const activeCornerHeaderHighlight = this.highlight.createActiveCornerHeader();
807
- const rowHighlight = this.highlight.createRowHighlight();
808
- const columnHighlight = this.highlight.createColumnHighlight();
645
+ const areaHighlight = this.highlight.createOrGetArea();
646
+ const headerHighlight = this.highlight.createOrGetHeader();
647
+ const activeHeaderHighlight = this.highlight.createOrGetActiveHeader();
809
648
  areaHighlight.commit();
810
- areaLayeredHighlight.commit();
811
- rowHeaderHighlight.commit();
812
- columnHeaderHighlight.commit();
813
- activeRowHeaderHighlight.commit();
814
- activeColumnHeaderHighlight.commit();
815
- activeCornerHeaderHighlight.commit();
816
- rowHighlight.commit();
817
- columnHighlight.commit();
649
+ headerHighlight.commit();
650
+ activeHeaderHighlight.commit();
818
651
  }
819
652
 
820
653
  // Reverting starting layer for the Highlight.