handsontable 0.0.0-next-ea1e0b3-20230620 → 0.0.0-next-6d7bdba-20230620

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 (279) hide show
  1. package/3rdparty/walkontable/src/cell/coords.d.ts +6 -1
  2. package/3rdparty/walkontable/src/cell/coords.js +61 -12
  3. package/3rdparty/walkontable/src/cell/coords.mjs +61 -12
  4. package/3rdparty/walkontable/src/cell/range.d.ts +9 -2
  5. package/3rdparty/walkontable/src/cell/range.js +44 -7
  6. package/3rdparty/walkontable/src/cell/range.mjs +44 -7
  7. package/3rdparty/walkontable/src/core/_base.js +9 -3
  8. package/3rdparty/walkontable/src/core/_base.mjs +9 -3
  9. package/3rdparty/walkontable/src/core/clone.js +2 -2
  10. package/3rdparty/walkontable/src/core/clone.mjs +2 -2
  11. package/3rdparty/walkontable/src/core/core.js +3 -2
  12. package/3rdparty/walkontable/src/core/core.mjs +3 -2
  13. package/3rdparty/walkontable/src/event.js +7 -7
  14. package/3rdparty/walkontable/src/event.mjs +7 -7
  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 +1 -1
  20. package/3rdparty/walkontable/src/overlay/_base.mjs +1 -1
  21. package/3rdparty/walkontable/src/overlay/inlineStart.js +2 -4
  22. package/3rdparty/walkontable/src/overlay/inlineStart.mjs +2 -4
  23. package/3rdparty/walkontable/src/overlay/top.js +2 -4
  24. package/3rdparty/walkontable/src/overlay/top.mjs +2 -4
  25. package/3rdparty/walkontable/src/{border.js → selection/border/border.js} +7 -12
  26. package/3rdparty/walkontable/src/{border.mjs → selection/border/border.mjs} +7 -12
  27. package/3rdparty/walkontable/src/selection/border/constants.js +18 -0
  28. package/3rdparty/walkontable/src/selection/border/constants.mjs +13 -0
  29. package/3rdparty/walkontable/src/selection/constants.js +63 -0
  30. package/3rdparty/walkontable/src/selection/constants.mjs +51 -0
  31. package/3rdparty/walkontable/src/selection/index.js +30 -0
  32. package/3rdparty/walkontable/src/selection/index.mjs +5 -0
  33. package/3rdparty/walkontable/src/selection/manager.js +329 -0
  34. package/3rdparty/walkontable/src/selection/manager.mjs +323 -0
  35. package/3rdparty/walkontable/src/selection/scanner.js +364 -0
  36. package/3rdparty/walkontable/src/selection/scanner.mjs +360 -0
  37. package/3rdparty/walkontable/src/selection/selection.js +133 -0
  38. package/3rdparty/walkontable/src/selection/selection.mjs +127 -0
  39. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +9 -0
  40. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +9 -0
  41. package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +9 -0
  42. package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +9 -0
  43. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.js +9 -0
  44. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.mjs +9 -0
  45. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +9 -0
  46. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +9 -0
  47. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +9 -0
  48. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +9 -0
  49. package/3rdparty/walkontable/src/table.js +7 -79
  50. package/3rdparty/walkontable/src/table.mjs +8 -80
  51. package/base.js +2 -2
  52. package/base.mjs +2 -2
  53. package/core.d.ts +5 -3
  54. package/core.js +127 -309
  55. package/core.mjs +127 -309
  56. package/dataMap/metaManager/metaSchema.js +19 -0
  57. package/dataMap/metaManager/metaSchema.mjs +19 -0
  58. package/dist/handsontable.css +8 -3
  59. package/dist/handsontable.full.css +8 -3
  60. package/dist/handsontable.full.js +13599 -10676
  61. package/dist/handsontable.full.min.css +3 -3
  62. package/dist/handsontable.full.min.js +112 -112
  63. package/dist/handsontable.js +16302 -13379
  64. package/dist/handsontable.min.css +3 -3
  65. package/dist/handsontable.min.js +4 -4
  66. package/editorManager.js +21 -94
  67. package/editorManager.mjs +26 -98
  68. package/editors/textEditor/textEditor.js +3 -11
  69. package/editors/textEditor/textEditor.mjs +4 -12
  70. package/helpers/mixed.js +1 -1
  71. package/helpers/mixed.mjs +1 -1
  72. package/helpers/number.d.ts +1 -0
  73. package/helpers/number.js +18 -0
  74. package/helpers/number.mjs +17 -0
  75. package/package.json +1 -1
  76. package/pluginHooks.d.ts +5 -1
  77. package/pluginHooks.js +89 -1
  78. package/pluginHooks.mjs +89 -1
  79. package/plugins/collapsibleColumns/collapsibleColumns.js +81 -24
  80. package/plugins/collapsibleColumns/collapsibleColumns.mjs +81 -24
  81. package/plugins/columnSorting/columnSorting.js +50 -8
  82. package/plugins/columnSorting/columnSorting.mjs +49 -9
  83. package/plugins/columnSorting/index.js +4 -2
  84. package/plugins/columnSorting/index.mjs +1 -1
  85. package/plugins/comments/comments.js +11 -4
  86. package/plugins/comments/comments.mjs +11 -4
  87. package/plugins/contextMenu/contextMenu.d.ts +1 -1
  88. package/plugins/contextMenu/contextMenu.js +80 -29
  89. package/plugins/contextMenu/contextMenu.mjs +81 -30
  90. package/plugins/contextMenu/predefinedItems/alignment.js +7 -0
  91. package/plugins/contextMenu/predefinedItems/alignment.mjs +7 -0
  92. package/plugins/contextMenu/predefinedItems/clearColumn.js +5 -3
  93. package/plugins/contextMenu/predefinedItems/clearColumn.mjs +5 -3
  94. package/plugins/contextMenu/predefinedItems/columnLeft.js +5 -3
  95. package/plugins/contextMenu/predefinedItems/columnLeft.mjs +5 -3
  96. package/plugins/contextMenu/predefinedItems/columnRight.js +5 -3
  97. package/plugins/contextMenu/predefinedItems/columnRight.mjs +5 -3
  98. package/plugins/contextMenu/predefinedItems/readOnly.js +7 -0
  99. package/plugins/contextMenu/predefinedItems/readOnly.mjs +7 -0
  100. package/plugins/contextMenu/predefinedItems/removeColumn.js +7 -5
  101. package/plugins/contextMenu/predefinedItems/removeColumn.mjs +5 -3
  102. package/plugins/contextMenu/predefinedItems/removeRow.js +7 -5
  103. package/plugins/contextMenu/predefinedItems/removeRow.mjs +5 -3
  104. package/plugins/contextMenu/predefinedItems/rowAbove.js +5 -3
  105. package/plugins/contextMenu/predefinedItems/rowAbove.mjs +5 -3
  106. package/plugins/contextMenu/predefinedItems/rowBelow.js +5 -3
  107. package/plugins/contextMenu/predefinedItems/rowBelow.mjs +5 -3
  108. package/plugins/contextMenu/utils.js +25 -16
  109. package/plugins/contextMenu/utils.mjs +24 -15
  110. package/plugins/copyPaste/contextMenuItem/copy.js +7 -0
  111. package/plugins/copyPaste/contextMenuItem/copy.mjs +7 -0
  112. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.js +9 -1
  113. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.mjs +9 -1
  114. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.js +9 -1
  115. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.mjs +9 -1
  116. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.js +9 -1
  117. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.mjs +9 -1
  118. package/plugins/copyPaste/contextMenuItem/cut.js +7 -0
  119. package/plugins/copyPaste/contextMenuItem/cut.mjs +7 -0
  120. package/plugins/copyPaste/copyPaste.js +5 -1
  121. package/plugins/copyPaste/copyPaste.mjs +5 -1
  122. package/plugins/customBorders/customBorders.js +25 -53
  123. package/plugins/customBorders/customBorders.mjs +26 -54
  124. package/plugins/dropdownMenu/dropdownMenu.d.ts +1 -1
  125. package/plugins/dropdownMenu/dropdownMenu.js +94 -30
  126. package/plugins/dropdownMenu/dropdownMenu.mjs +94 -30
  127. package/plugins/manualColumnResize/manualColumnResize.js +5 -36
  128. package/plugins/manualColumnResize/manualColumnResize.mjs +5 -36
  129. package/plugins/manualRowResize/manualRowResize.js +9 -40
  130. package/plugins/manualRowResize/manualRowResize.mjs +9 -40
  131. package/plugins/mergeCells/mergeCells.js +5 -18
  132. package/plugins/mergeCells/mergeCells.mjs +5 -18
  133. package/plugins/multiColumnSorting/multiColumnSorting.js +42 -3
  134. package/plugins/multiColumnSorting/multiColumnSorting.mjs +42 -3
  135. package/plugins/nestedHeaders/nestedHeaders.js +132 -10
  136. package/plugins/nestedHeaders/nestedHeaders.mjs +132 -10
  137. package/plugins/nestedHeaders/stateManager/index.js +37 -0
  138. package/plugins/nestedHeaders/stateManager/index.mjs +37 -0
  139. package/plugins/nestedRows/nestedRows.js +52 -7
  140. package/plugins/nestedRows/nestedRows.mjs +52 -7
  141. package/renderers/checkboxRenderer/checkboxRenderer.js +2 -2
  142. package/renderers/checkboxRenderer/checkboxRenderer.mjs +1 -1
  143. package/selection/highlight/highlight.js +312 -89
  144. package/selection/highlight/highlight.mjs +302 -85
  145. package/selection/highlight/types/activeHeader.js +10 -9
  146. package/selection/highlight/types/activeHeader.mjs +10 -8
  147. package/selection/highlight/types/area.js +12 -27
  148. package/selection/highlight/types/area.mjs +16 -30
  149. package/selection/highlight/types/areaLayered.js +54 -0
  150. package/selection/highlight/types/areaLayered.mjs +49 -0
  151. package/selection/highlight/types/column.js +50 -0
  152. package/selection/highlight/types/column.mjs +45 -0
  153. package/selection/highlight/types/customSelection.js +7 -10
  154. package/selection/highlight/types/customSelection.mjs +7 -9
  155. package/selection/highlight/types/fill.js +5 -8
  156. package/selection/highlight/types/fill.mjs +5 -7
  157. package/selection/highlight/types/{cell.js → focus.js} +5 -8
  158. package/selection/highlight/types/{cell.mjs → focus.mjs} +5 -7
  159. package/selection/highlight/types/header.js +10 -20
  160. package/selection/highlight/types/header.mjs +10 -19
  161. package/selection/highlight/types/{index.js → row.js} +27 -31
  162. package/selection/highlight/types/{index.mjs → row.mjs} +24 -29
  163. package/selection/highlight/visualSelection.js +31 -27
  164. package/selection/highlight/visualSelection.mjs +31 -27
  165. package/selection/index.js +4 -7
  166. package/selection/index.mjs +2 -3
  167. package/selection/mouseEventHandler.js +1 -1
  168. package/selection/mouseEventHandler.mjs +1 -1
  169. package/selection/range.js +8 -8
  170. package/selection/range.mjs +8 -8
  171. package/selection/selection.js +315 -181
  172. package/selection/selection.mjs +310 -180
  173. package/selection/transformation.js +233 -96
  174. package/selection/transformation.mjs +230 -93
  175. package/selection/utils.js +12 -36
  176. package/selection/utils.mjs +13 -36
  177. package/settings.d.ts +1 -0
  178. package/shortcutContexts/commands/editor/closeAndSave.js +15 -0
  179. package/shortcutContexts/commands/editor/closeAndSave.mjs +10 -0
  180. package/shortcutContexts/commands/editor/closeWithoutSaving.js +13 -0
  181. package/shortcutContexts/commands/editor/closeWithoutSaving.mjs +8 -0
  182. package/shortcutContexts/commands/editor/fastOpen.js +16 -0
  183. package/shortcutContexts/commands/editor/fastOpen.mjs +11 -0
  184. package/shortcutContexts/commands/editor/index.js +16 -0
  185. package/shortcutContexts/commands/editor/index.mjs +12 -0
  186. package/shortcutContexts/commands/editor/open.js +29 -0
  187. package/shortcutContexts/commands/editor/open.mjs +24 -0
  188. package/shortcutContexts/commands/emptySelectedCells.js +12 -0
  189. package/shortcutContexts/commands/emptySelectedCells.mjs +7 -0
  190. package/shortcutContexts/commands/extendCellsSelection/down.js +15 -0
  191. package/shortcutContexts/commands/extendCellsSelection/down.mjs +10 -0
  192. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +21 -0
  193. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +16 -0
  194. package/shortcutContexts/commands/extendCellsSelection/index.js +26 -0
  195. package/shortcutContexts/commands/extendCellsSelection/index.mjs +22 -0
  196. package/shortcutContexts/commands/extendCellsSelection/left.js +15 -0
  197. package/shortcutContexts/commands/extendCellsSelection/left.mjs +10 -0
  198. package/shortcutContexts/commands/extendCellsSelection/right.js +15 -0
  199. package/shortcutContexts/commands/extendCellsSelection/right.mjs +10 -0
  200. package/shortcutContexts/commands/extendCellsSelection/toColumns.js +19 -0
  201. package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +14 -0
  202. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +22 -0
  203. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +17 -0
  204. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +17 -0
  205. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +12 -0
  206. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +17 -0
  207. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +12 -0
  208. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +40 -0
  209. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +35 -0
  210. package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +40 -0
  211. package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +35 -0
  212. package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +22 -0
  213. package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +17 -0
  214. package/shortcutContexts/commands/extendCellsSelection/toRows.js +19 -0
  215. package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +14 -0
  216. package/shortcutContexts/commands/extendCellsSelection/up.js +15 -0
  217. package/shortcutContexts/commands/extendCellsSelection/up.mjs +10 -0
  218. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +21 -0
  219. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +16 -0
  220. package/shortcutContexts/commands/index.js +52 -0
  221. package/shortcutContexts/commands/index.mjs +48 -0
  222. package/shortcutContexts/commands/moveCellSelection/down.js +12 -0
  223. package/shortcutContexts/commands/moveCellSelection/down.mjs +7 -0
  224. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.js +29 -0
  225. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs +24 -0
  226. package/shortcutContexts/commands/moveCellSelection/index.js +28 -0
  227. package/shortcutContexts/commands/moveCellSelection/index.mjs +24 -0
  228. package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +13 -0
  229. package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +8 -0
  230. package/shortcutContexts/commands/moveCellSelection/inlineStart.js +13 -0
  231. package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +8 -0
  232. package/shortcutContexts/commands/moveCellSelection/left.js +11 -0
  233. package/shortcutContexts/commands/moveCellSelection/left.mjs +6 -0
  234. package/shortcutContexts/commands/moveCellSelection/right.js +11 -0
  235. package/shortcutContexts/commands/moveCellSelection/right.mjs +6 -0
  236. package/shortcutContexts/commands/moveCellSelection/toMostBottom.js +16 -0
  237. package/shortcutContexts/commands/moveCellSelection/toMostBottom.mjs +11 -0
  238. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.js +17 -0
  239. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.mjs +12 -0
  240. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.js +13 -0
  241. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.mjs +8 -0
  242. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.js +16 -0
  243. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.mjs +11 -0
  244. package/shortcutContexts/commands/moveCellSelection/toMostLeft.js +36 -0
  245. package/shortcutContexts/commands/moveCellSelection/toMostLeft.mjs +31 -0
  246. package/shortcutContexts/commands/moveCellSelection/toMostRight.js +36 -0
  247. package/shortcutContexts/commands/moveCellSelection/toMostRight.mjs +31 -0
  248. package/shortcutContexts/commands/moveCellSelection/toMostTop.js +16 -0
  249. package/shortcutContexts/commands/moveCellSelection/toMostTop.mjs +11 -0
  250. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.js +18 -0
  251. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.mjs +13 -0
  252. package/shortcutContexts/commands/moveCellSelection/up.js +12 -0
  253. package/shortcutContexts/commands/moveCellSelection/up.mjs +7 -0
  254. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.js +29 -0
  255. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs +24 -0
  256. package/shortcutContexts/commands/populateSelectedCellsData.js +35 -0
  257. package/shortcutContexts/commands/populateSelectedCellsData.mjs +30 -0
  258. package/shortcutContexts/commands/selectAll.js +11 -0
  259. package/shortcutContexts/commands/selectAll.mjs +6 -0
  260. package/shortcutContexts/constants.js +19 -0
  261. package/shortcutContexts/constants.mjs +12 -0
  262. package/shortcutContexts/editor.js +29 -0
  263. package/shortcutContexts/editor.mjs +25 -0
  264. package/shortcutContexts/grid.js +244 -0
  265. package/shortcutContexts/grid.mjs +240 -0
  266. package/shortcutContexts/index.js +29 -0
  267. package/shortcutContexts/index.mjs +15 -0
  268. package/shortcuts/manager.js +2 -0
  269. package/shortcuts/manager.mjs +2 -0
  270. package/shortcuts/recorder.js +2 -2
  271. package/shortcuts/recorder.mjs +2 -2
  272. package/shortcuts/utils.js +21 -5
  273. package/shortcuts/utils.mjs +20 -4
  274. package/tableView.js +58 -9
  275. package/tableView.mjs +58 -9
  276. package/3rdparty/walkontable/src/selection.js +0 -355
  277. package/3rdparty/walkontable/src/selection.mjs +0 -349
  278. package/selection/highlight/constants.js +0 -16
  279. package/selection/highlight/constants.mjs +0 -6
@@ -79,7 +79,6 @@ export var ManualRowResize = /*#__PURE__*/function (_BasePlugin) {
79
79
  _this.guide = rootDocument.createElement('DIV');
80
80
  _this.eventManager = new EventManager(_assertThisInitialized(_this));
81
81
  _this.pressed = null;
82
- _this.isTriggeredByRMB = false;
83
82
  _this.dblclick = 0;
84
83
  _this.autoresizeTimeout = null;
85
84
 
@@ -401,11 +400,6 @@ export var ManualRowResize = /*#__PURE__*/function (_BasePlugin) {
401
400
  if (isDetached(event.target)) {
402
401
  return;
403
402
  }
404
-
405
- // A "mouseover" action is triggered right after executing "contextmenu" event. It should be ignored.
406
- if (this.isTriggeredByRMB === true) {
407
- return;
408
- }
409
403
  if (this.checkIfRowHeader(event.target)) {
410
404
  var th = this.getClosestTHParent(event.target);
411
405
  if (th) {
@@ -552,28 +546,6 @@ export var ManualRowResize = /*#__PURE__*/function (_BasePlugin) {
552
546
  }
553
547
  }
554
548
 
555
- /**
556
- * Callback for "contextmenu" event triggered on element showing move handle. It removes handle and guide elements.
557
- *
558
- * @private
559
- */
560
- }, {
561
- key: "onContextMenu",
562
- value: function onContextMenu() {
563
- var _this8 = this;
564
- this.hideHandleAndGuide();
565
- this.hot.rootElement.removeChild(this.handle);
566
- this.hot.rootElement.removeChild(this.guide);
567
- this.pressed = false;
568
- this.isTriggeredByRMB = true;
569
-
570
- // There is thrown "mouseover" event right after opening a context menu. This flag inform that handle
571
- // shouldn't be drawn just after removing it.
572
- this.hot._registerImmediate(function () {
573
- _this8.isTriggeredByRMB = false;
574
- });
575
- }
576
-
577
549
  /**
578
550
  * Binds the mouse events.
579
551
  *
@@ -582,24 +554,21 @@ export var ManualRowResize = /*#__PURE__*/function (_BasePlugin) {
582
554
  }, {
583
555
  key: "bindEvents",
584
556
  value: function bindEvents() {
585
- var _this9 = this;
557
+ var _this8 = this;
586
558
  var _this$hot = this.hot,
587
559
  rootElement = _this$hot.rootElement,
588
560
  rootWindow = _this$hot.rootWindow;
589
561
  this.eventManager.addEventListener(rootElement, 'mouseover', function (e) {
590
- return _this9.onMouseOver(e);
562
+ return _this8.onMouseOver(e);
591
563
  });
592
564
  this.eventManager.addEventListener(rootElement, 'mousedown', function (e) {
593
- return _this9.onMouseDown(e);
565
+ return _this8.onMouseDown(e);
594
566
  });
595
567
  this.eventManager.addEventListener(rootWindow, 'mousemove', function (e) {
596
- return _this9.onMouseMove(e);
568
+ return _this8.onMouseMove(e);
597
569
  });
598
570
  this.eventManager.addEventListener(rootWindow, 'mouseup', function () {
599
- return _this9.onMouseUp();
600
- });
601
- this.eventManager.addEventListener(this.handle, 'contextmenu', function () {
602
- return _this9.onContextMenu();
571
+ return _this8.onMouseUp();
603
572
  });
604
573
  }
605
574
 
@@ -633,23 +602,23 @@ export var ManualRowResize = /*#__PURE__*/function (_BasePlugin) {
633
602
  }, {
634
603
  key: "onMapInit",
635
604
  value: function onMapInit() {
636
- var _this10 = this;
605
+ var _this9 = this;
637
606
  var priv = privatePool.get(this);
638
607
  var initialSetting = this.hot.getSettings()[PLUGIN_KEY];
639
608
  var loadedManualRowHeights = this.loadManualRowHeights();
640
609
  this.hot.batchExecution(function () {
641
610
  if (typeof loadedManualRowHeights !== 'undefined') {
642
611
  loadedManualRowHeights.forEach(function (height, index) {
643
- _this10.rowHeightsMap.setValueAtIndex(index, height);
612
+ _this9.rowHeightsMap.setValueAtIndex(index, height);
644
613
  });
645
614
  } else if (Array.isArray(initialSetting)) {
646
615
  initialSetting.forEach(function (height, index) {
647
- _this10.rowHeightsMap.setValueAtIndex(index, height);
616
+ _this9.rowHeightsMap.setValueAtIndex(index, height);
648
617
  });
649
618
  priv.config = initialSetting;
650
619
  } else if (initialSetting === true && Array.isArray(priv.config)) {
651
620
  priv.config.forEach(function (height, index) {
652
- _this10.rowHeightsMap.setValueAtIndex(index, height);
621
+ _this9.rowHeightsMap.setValueAtIndex(index, height);
653
622
  });
654
623
  }
655
624
  }, true);
@@ -243,9 +243,6 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
243
243
  this.addHook('afterDrawSelection', function () {
244
244
  return _this2.onAfterDrawSelection.apply(_this2, arguments);
245
245
  });
246
- this.addHook('beforeRemoveCellClassNames', function () {
247
- return _this2.onBeforeRemoveCellClassNames.apply(_this2, arguments);
248
- });
249
246
  this.addHook('beforeUndoStackChange', function (action, source) {
250
247
  if (source === 'MergeCells') {
251
248
  return false;
@@ -662,8 +659,11 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
662
659
  gridContext.addShortcut({
663
660
  keys: [['Control', 'm']],
664
661
  callback: function callback() {
665
- _this7.toggleMerge(_this7.hot.getSelectedRangeLast());
666
- _this7.hot.render();
662
+ var range = _this7.hot.getSelectedRangeLast();
663
+ if (range && !range.isSingleHeader()) {
664
+ _this7.toggleMerge(range);
665
+ _this7.hot.render();
666
+ }
667
667
  },
668
668
  runOnlyIf: function runOnlyIf(event) {
669
669
  return !event.altKey;
@@ -1340,19 +1340,6 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
1340
1340
  }
1341
1341
  return this.selectionCalculations.getSelectedMergedCellClassName(currentRow, currentColumn, cornersOfSelection, layerLevel);
1342
1342
  }
1343
-
1344
- /**
1345
- * `beforeRemoveCellClassNames` hook callback. Used to remove additional class name from all cells in the table.
1346
- *
1347
- * @private
1348
- * @returns {string[]} An `Array` of `String`s. Each of these strings will act like class names to be removed from
1349
- * all the cells in the table.
1350
- */
1351
- }, {
1352
- key: "onBeforeRemoveCellClassNames",
1353
- value: function onBeforeRemoveCellClassNames() {
1354
- return this.selectionCalculations.getSelectedMergedCellClassNameToRemove();
1355
- }
1356
1343
  }], [{
1357
1344
  key: "PLUGIN_KEY",
1358
1345
  get: function get() {
@@ -236,9 +236,6 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
236
236
  this.addHook('afterDrawSelection', function () {
237
237
  return _this2.onAfterDrawSelection.apply(_this2, arguments);
238
238
  });
239
- this.addHook('beforeRemoveCellClassNames', function () {
240
- return _this2.onBeforeRemoveCellClassNames.apply(_this2, arguments);
241
- });
242
239
  this.addHook('beforeUndoStackChange', function (action, source) {
243
240
  if (source === 'MergeCells') {
244
241
  return false;
@@ -655,8 +652,11 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
655
652
  gridContext.addShortcut({
656
653
  keys: [['Control', 'm']],
657
654
  callback: function callback() {
658
- _this7.toggleMerge(_this7.hot.getSelectedRangeLast());
659
- _this7.hot.render();
655
+ var range = _this7.hot.getSelectedRangeLast();
656
+ if (range && !range.isSingleHeader()) {
657
+ _this7.toggleMerge(range);
658
+ _this7.hot.render();
659
+ }
660
660
  },
661
661
  runOnlyIf: function runOnlyIf(event) {
662
662
  return !event.altKey;
@@ -1333,19 +1333,6 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
1333
1333
  }
1334
1334
  return this.selectionCalculations.getSelectedMergedCellClassName(currentRow, currentColumn, cornersOfSelection, layerLevel);
1335
1335
  }
1336
-
1337
- /**
1338
- * `beforeRemoveCellClassNames` hook callback. Used to remove additional class name from all cells in the table.
1339
- *
1340
- * @private
1341
- * @returns {string[]} An `Array` of `String`s. Each of these strings will act like class names to be removed from
1342
- * all the cells in the table.
1343
- */
1344
- }, {
1345
- key: "onBeforeRemoveCellClassNames",
1346
- value: function onBeforeRemoveCellClassNames() {
1347
- return this.selectionCalculations.getSelectedMergedCellClassNameToRemove();
1348
- }
1349
1336
  }], [{
1350
1337
  key: "PLUGIN_KEY",
1351
1338
  get: function get() {
@@ -16,8 +16,8 @@ require("core-js/modules/es.string.iterator.js");
16
16
  require("core-js/modules/web.dom-collections.iterator.js");
17
17
  exports.__esModule = true;
18
18
  exports.PLUGIN_PRIORITY = exports.PLUGIN_KEY = exports.MultiColumnSorting = void 0;
19
- require("core-js/modules/es.array.concat.js");
20
19
  require("core-js/modules/es.array.sort.js");
20
+ require("core-js/modules/es.array.concat.js");
21
21
  require("core-js/modules/es.object.set-prototype-of.js");
22
22
  require("core-js/modules/es.object.get-prototype-of.js");
23
23
  var _columnSorting = require("../columnSorting");
@@ -45,8 +45,8 @@ var PLUGIN_KEY = 'multiColumnSorting';
45
45
  exports.PLUGIN_KEY = PLUGIN_KEY;
46
46
  var PLUGIN_PRIORITY = 170;
47
47
  exports.PLUGIN_PRIORITY = PLUGIN_PRIORITY;
48
- var APPEND_COLUMN_CONFIG_STRATEGY = 'append';
49
48
  var CONFLICTED_PLUGIN_KEY = 'columnSorting';
49
+ var SHORTCUTS_GROUP = PLUGIN_KEY;
50
50
  (0, _sortService.registerRootComparator)(PLUGIN_KEY, _rootComparator.rootComparator);
51
51
 
52
52
  /**
@@ -151,6 +151,45 @@ var MultiColumnSorting = /*#__PURE__*/function (_ColumnSorting) {
151
151
  _get(_getPrototypeOf(MultiColumnSorting.prototype), "disablePlugin", this).call(this);
152
152
  }
153
153
 
154
+ /**
155
+ * Register shortcuts responsible for toggling column sorting functionality.
156
+ *
157
+ * @private
158
+ */
159
+ }, {
160
+ key: "registerShortcuts",
161
+ value: function registerShortcuts() {
162
+ var _this2 = this;
163
+ _get(_getPrototypeOf(MultiColumnSorting.prototype), "registerShortcuts", this).call(this);
164
+ this.hot.getShortcutManager().getContext('grid').addShortcut({
165
+ keys: [['Control/Meta', 'Enter']],
166
+ callback: function callback() {
167
+ var _this2$hot$getSelecte = _this2.hot.getSelectedRangeLast(),
168
+ highlight = _this2$hot$getSelecte.highlight;
169
+ if (highlight.row === -1 && highlight.col >= 0) {
170
+ _this2.sort(_this2.getNextSortConfig(highlight.col, _columnSorting.APPEND_COLUMN_CONFIG_STRATEGY));
171
+ }
172
+ },
173
+ runOnlyIf: function runOnlyIf() {
174
+ var _this2$hot$getSelecte2;
175
+ return (_this2$hot$getSelecte2 = _this2.hot.getSelectedRangeLast()) === null || _this2$hot$getSelecte2 === void 0 ? void 0 : _this2$hot$getSelecte2.highlight.isHeader();
176
+ },
177
+ group: SHORTCUTS_GROUP
178
+ });
179
+ }
180
+
181
+ /**
182
+ * Unregister shortcuts responsible for toggling column sorting functionality.
183
+ *
184
+ * @private
185
+ */
186
+ }, {
187
+ key: "unregisterShortcuts",
188
+ value: function unregisterShortcuts() {
189
+ _get(_getPrototypeOf(MultiColumnSorting.prototype), "unregisterShortcuts", this).call(this);
190
+ this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);
191
+ }
192
+
154
193
  /**
155
194
  * Sorts the table by chosen columns and orders.
156
195
  *
@@ -319,7 +358,7 @@ var MultiColumnSorting = /*#__PURE__*/function (_ColumnSorting) {
319
358
  if (this.hot.getShortcutManager().isCtrlPressed()) {
320
359
  this.hot.deselectCell();
321
360
  this.hot.selectColumns(coords.col);
322
- this.sort(this.getNextSortConfig(coords.col, APPEND_COLUMN_CONFIG_STRATEGY));
361
+ this.sort(this.getNextSortConfig(coords.col, _columnSorting.APPEND_COLUMN_CONFIG_STRATEGY));
323
362
  } else {
324
363
  this.sort(this.getColumnNextConfig(coords.col));
325
364
  }
@@ -1,6 +1,6 @@
1
1
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
- import "core-js/modules/es.array.concat.js";
3
2
  import "core-js/modules/es.array.sort.js";
3
+ import "core-js/modules/es.array.concat.js";
4
4
  import "core-js/modules/es.object.set-prototype-of.js";
5
5
  import "core-js/modules/es.object.get-prototype-of.js";
6
6
  import "core-js/modules/es.object.to-string.js";
@@ -30,7 +30,7 @@ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) ===
30
30
  function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
31
31
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
32
32
  function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
33
- import { ColumnSorting } from "../columnSorting/index.mjs";
33
+ import { APPEND_COLUMN_CONFIG_STRATEGY, ColumnSorting } from "../columnSorting/index.mjs";
34
34
  import { registerRootComparator } from "../columnSorting/sortService/index.mjs";
35
35
  import { wasHeaderClickedProperly } from "../columnSorting/utils.mjs";
36
36
  import { addClass, removeClass } from "../../helpers/dom/element.mjs";
@@ -39,8 +39,8 @@ import { warnAboutPluginsConflict } from "./utils.mjs";
39
39
  import { getClassesToAdd, getClassesToRemove } from "./domHelpers.mjs";
40
40
  export var PLUGIN_KEY = 'multiColumnSorting';
41
41
  export var PLUGIN_PRIORITY = 170;
42
- var APPEND_COLUMN_CONFIG_STRATEGY = 'append';
43
42
  var CONFLICTED_PLUGIN_KEY = 'columnSorting';
43
+ var SHORTCUTS_GROUP = PLUGIN_KEY;
44
44
  registerRootComparator(PLUGIN_KEY, rootComparator);
45
45
 
46
46
  /**
@@ -145,6 +145,45 @@ export var MultiColumnSorting = /*#__PURE__*/function (_ColumnSorting) {
145
145
  _get(_getPrototypeOf(MultiColumnSorting.prototype), "disablePlugin", this).call(this);
146
146
  }
147
147
 
148
+ /**
149
+ * Register shortcuts responsible for toggling column sorting functionality.
150
+ *
151
+ * @private
152
+ */
153
+ }, {
154
+ key: "registerShortcuts",
155
+ value: function registerShortcuts() {
156
+ var _this2 = this;
157
+ _get(_getPrototypeOf(MultiColumnSorting.prototype), "registerShortcuts", this).call(this);
158
+ this.hot.getShortcutManager().getContext('grid').addShortcut({
159
+ keys: [['Control/Meta', 'Enter']],
160
+ callback: function callback() {
161
+ var _this2$hot$getSelecte = _this2.hot.getSelectedRangeLast(),
162
+ highlight = _this2$hot$getSelecte.highlight;
163
+ if (highlight.row === -1 && highlight.col >= 0) {
164
+ _this2.sort(_this2.getNextSortConfig(highlight.col, APPEND_COLUMN_CONFIG_STRATEGY));
165
+ }
166
+ },
167
+ runOnlyIf: function runOnlyIf() {
168
+ var _this2$hot$getSelecte2;
169
+ return (_this2$hot$getSelecte2 = _this2.hot.getSelectedRangeLast()) === null || _this2$hot$getSelecte2 === void 0 ? void 0 : _this2$hot$getSelecte2.highlight.isHeader();
170
+ },
171
+ group: SHORTCUTS_GROUP
172
+ });
173
+ }
174
+
175
+ /**
176
+ * Unregister shortcuts responsible for toggling column sorting functionality.
177
+ *
178
+ * @private
179
+ */
180
+ }, {
181
+ key: "unregisterShortcuts",
182
+ value: function unregisterShortcuts() {
183
+ _get(_getPrototypeOf(MultiColumnSorting.prototype), "unregisterShortcuts", this).call(this);
184
+ this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);
185
+ }
186
+
148
187
  /**
149
188
  * Sorts the table by chosen columns and orders.
150
189
  *
@@ -25,8 +25,8 @@ require("core-js/modules/es.weak-map.js");
25
25
  require("core-js/modules/web.dom-collections.iterator.js");
26
26
  var _element = require("../../helpers/dom/element");
27
27
  var _number = require("../../helpers/number");
28
- var _event = require("../../helpers/dom/event");
29
28
  var _templateLiteralTag = require("../../helpers/templateLiteralTag");
29
+ var _event = require("../../helpers/dom/event");
30
30
  var _console = require("../../helpers/console");
31
31
  var _selection = require("../../selection");
32
32
  var _base = require("../base");
@@ -201,6 +201,12 @@ var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
201
201
  this.addHook('beforeOnCellMouseOver', function () {
202
202
  return _this2.onBeforeOnCellMouseOver.apply(_this2, arguments);
203
203
  });
204
+ this.addHook('modifyTransformStart', function () {
205
+ return _this2.onModifyTransformStart.apply(_this2, arguments);
206
+ });
207
+ this.addHook('afterSelection', function () {
208
+ return _this2.updateFocusHighlightPosition();
209
+ });
204
210
  this.addHook('afterGetColumnHeaderRenderers', function (array) {
205
211
  return _this2.onAfterGetColumnHeaderRenderers(array);
206
212
  });
@@ -216,9 +222,18 @@ var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
216
222
  this.addHook('beforeCopy', function () {
217
223
  return _this2.onBeforeCopy.apply(_this2, arguments);
218
224
  });
225
+ this.addHook('beforeSelectColumns', function () {
226
+ return _this2.onBeforeSelectColumns.apply(_this2, arguments);
227
+ });
219
228
  this.addHook('afterViewportColumnCalculatorOverride', function () {
220
229
  return _this2.onAfterViewportColumnCalculatorOverride.apply(_this2, arguments);
221
230
  });
231
+ this.hot.columnIndexMapper.addLocalHook('cacheUpdated', function () {
232
+ return _this2.updateFocusHighlightPosition();
233
+ });
234
+ this.hot.rowIndexMapper.addLocalHook('cacheUpdated', function () {
235
+ return _this2.updateFocusHighlightPosition();
236
+ });
222
237
  _get(_getPrototypeOf(NestedHeaders.prototype), "enablePlugin", this).call(this);
223
238
  this.updatePlugin(); // @TODO: Workaround for broken plugin initialization abstraction.
224
239
  }
@@ -440,6 +455,34 @@ var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
440
455
  return this.hot.getColHeader(visualColumnIndex, headerLevel);
441
456
  }
442
457
 
458
+ /**
459
+ * Updates the selection focus highlight position to point to the nested header root element (TH)
460
+ * even when the logical coordinates point in-between the header.
461
+ *
462
+ * @private
463
+ */
464
+ }, {
465
+ key: "updateFocusHighlightPosition",
466
+ value: function updateFocusHighlightPosition() {
467
+ var _this$hot;
468
+ var selection = (_this$hot = this.hot) === null || _this$hot === void 0 ? void 0 : _this$hot.getSelectedRangeLast();
469
+ if (!selection) {
470
+ return;
471
+ }
472
+ var highlight = selection.highlight;
473
+ var isNestedHeadersRange = highlight.isHeader() && highlight.col >= 0;
474
+ if (isNestedHeadersRange) {
475
+ var columnIndex = _classPrivateFieldGet(this, _stateManager).findLeftMostColumnIndex(highlight.row, highlight.col);
476
+ var focusHighlight = this.hot.selection.highlight.getFocus();
477
+
478
+ // Correct the highlight/focus selection to highlight the correct TH element
479
+ focusHighlight.visualCellRange.highlight.col = columnIndex;
480
+ focusHighlight.visualCellRange.from.col = columnIndex;
481
+ focusHighlight.visualCellRange.to.col = columnIndex;
482
+ focusHighlight.commit();
483
+ }
484
+ }
485
+
443
486
  /**
444
487
  * Allows to control which header DOM element will be used to highlight.
445
488
  *
@@ -456,8 +499,7 @@ var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
456
499
  if (!headerNodeData) {
457
500
  return visualColumn;
458
501
  }
459
- var classNames = highlightMeta.classNames,
460
- columnCursor = highlightMeta.columnCursor,
502
+ var columnCursor = highlightMeta.columnCursor,
461
503
  selectionType = highlightMeta.selectionType,
462
504
  selectionWidth = highlightMeta.selectionWidth;
463
505
  var _classPrivateFieldGet4 = _classPrivateFieldGet(this, _stateManager).getHeaderSettings(headerLevel, visualColumn),
@@ -469,8 +511,8 @@ var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
469
511
  }
470
512
  } else if (selectionType === _selection.ACTIVE_HEADER_TYPE) {
471
513
  if (colspan > selectionWidth - columnCursor || !isRoot) {
472
- // Reset the class names array so the generated TH element won't be modified.
473
- classNames.length = 0;
514
+ // Prevents adding any CSS class names to the TH element
515
+ return null;
474
516
  }
475
517
  }
476
518
  return visualColumn;
@@ -601,7 +643,7 @@ var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
601
643
  }, {
602
644
  key: "onBeforeOnCellMouseOver",
603
645
  value: function onBeforeOnCellMouseOver(event, coords, TD, controller) {
604
- var _this$hot;
646
+ var _this$hot$selection;
605
647
  if (!this.hot.view.isMouseDown()) {
606
648
  return;
607
649
  }
@@ -622,13 +664,93 @@ var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
622
664
  controller.cell = true;
623
665
  var columnsToSelect = [];
624
666
  if (coords.col < from.col) {
625
- columnsToSelect.push(bottomEndCoords.col, columnIndex);
667
+ columnsToSelect.push(bottomEndCoords.col, columnIndex, coords.row);
626
668
  } else if (coords.col > from.col) {
627
- columnsToSelect.push(topStartCoords.col, columnIndex + origColspan - 1);
669
+ columnsToSelect.push(topStartCoords.col, columnIndex + origColspan - 1, coords.row);
628
670
  } else {
629
- columnsToSelect.push(columnIndex, columnIndex + origColspan - 1);
671
+ columnsToSelect.push(columnIndex, columnIndex + origColspan - 1, coords.row);
672
+ }
673
+ (_this$hot$selection = this.hot.selection).selectColumns.apply(_this$hot$selection, columnsToSelect);
674
+ }
675
+
676
+ /**
677
+ * `modifyTransformStart` hook is called every time the keyboard navigation is used.
678
+ *
679
+ * @private
680
+ * @param {object} delta The transformation delta.
681
+ */
682
+ }, {
683
+ key: "onModifyTransformStart",
684
+ value: function onModifyTransformStart(delta) {
685
+ var _this$hot$getSelected = this.hot.getSelectedRangeLast(),
686
+ highlight = _this$hot$getSelected.highlight;
687
+ var nextCoords = this.hot._createCellCoords(highlight.row + delta.row, highlight.col + delta.col);
688
+ var isNestedHeadersRange = nextCoords.isHeader() && nextCoords.col >= 0;
689
+ if (!isNestedHeadersRange) {
690
+ return;
691
+ }
692
+ var visualColumnIndexStart = _classPrivateFieldGet(this, _stateManager).findLeftMostColumnIndex(nextCoords.row, nextCoords.col);
693
+ var visualColumnIndexEnd = _classPrivateFieldGet(this, _stateManager).findRightMostColumnIndex(nextCoords.row, nextCoords.col);
694
+ if (delta.col < 0) {
695
+ var nextColumn = highlight.col >= visualColumnIndexStart && highlight.col <= visualColumnIndexEnd ? visualColumnIndexStart - 1 : visualColumnIndexEnd;
696
+ var notHiddenColumnIndex = this.hot.columnIndexMapper.getNearestNotHiddenIndex(nextColumn, -1);
697
+ if (notHiddenColumnIndex === null) {
698
+ // There are no visible columns anymore, so move the selection out of the table edge. This will
699
+ // be processed by the selection Transformer class as a move selection to the previous row (if autoWrapRow is enabled).
700
+ delta.col = -this.hot.view.countRenderableColumnsInRange(0, highlight.col);
701
+ } else {
702
+ delta.col = -Math.max(this.hot.view.countRenderableColumnsInRange(notHiddenColumnIndex, highlight.col) - 1, 1);
703
+ }
704
+ } else if (delta.col > 0) {
705
+ var _nextColumn = highlight.col >= visualColumnIndexStart && highlight.col <= visualColumnIndexEnd ? visualColumnIndexEnd + 1 : visualColumnIndexStart;
706
+ var _notHiddenColumnIndex = this.hot.columnIndexMapper.getNearestNotHiddenIndex(_nextColumn, 1);
707
+ if (_notHiddenColumnIndex === null) {
708
+ // There are no visible columns anymore, so move the selection out of the table edge. This will
709
+ // be processed by the selection Transformer class as a move selection to the next row (if autoWrapRow is enabled).
710
+ delta.col = this.hot.view.countRenderableColumnsInRange(highlight.col, this.hot.countCols());
711
+ } else {
712
+ delta.col = Math.max(this.hot.view.countRenderableColumnsInRange(highlight.col, _notHiddenColumnIndex) - 1, 1);
713
+ }
714
+ }
715
+ }
716
+
717
+ /**
718
+ * The hook observes the column selection from the Selection API and modifies the column range to
719
+ * ensure that the whole nested column will be covered.
720
+ *
721
+ * @private
722
+ * @param {*} from The coords object where the selection starts.
723
+ * @param {*} to The coords object where the selection ends.
724
+ */
725
+ }, {
726
+ key: "onBeforeSelectColumns",
727
+ value: function onBeforeSelectColumns(from, to) {
728
+ var headerLevel = from.row;
729
+ var startNodeData = this._getHeaderTreeNodeDataByCoords({
730
+ row: headerLevel,
731
+ col: from.col
732
+ });
733
+ var endNodeData = this._getHeaderTreeNodeDataByCoords({
734
+ row: headerLevel,
735
+ col: to.col
736
+ });
737
+ if (to.col < from.col) {
738
+ // Column selection from right to left
739
+ if (startNodeData) {
740
+ from.col = startNodeData.columnIndex + startNodeData.origColspan - 1;
741
+ }
742
+ if (endNodeData) {
743
+ to.col = endNodeData.columnIndex;
744
+ }
745
+ } else if (to.col >= from.col) {
746
+ // Column selection from left to right or a single column selection
747
+ if (startNodeData) {
748
+ from.col = startNodeData.columnIndex;
749
+ }
750
+ if (endNodeData) {
751
+ to.col = endNodeData.columnIndex + endNodeData.origColspan - 1;
752
+ }
630
753
  }
631
- (_this$hot = this.hot).selectColumns.apply(_this$hot, columnsToSelect);
632
754
  }
633
755
 
634
756
  /**