handsontable 0.0.0-next-6d7bdba-20230620 → 0.0.0-next-06a64be-20230621

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 (281) 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 +12 -61
  5. package/3rdparty/walkontable/src/cell/coords.mjs +12 -61
  6. package/3rdparty/walkontable/src/cell/range.d.ts +2 -9
  7. package/3rdparty/walkontable/src/cell/range.js +7 -44
  8. package/3rdparty/walkontable/src/cell/range.mjs +7 -44
  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 +7 -7
  16. package/3rdparty/walkontable/src/event.mjs +7 -7
  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 +1 -1
  22. package/3rdparty/walkontable/src/overlay/_base.mjs +1 -1
  23. package/3rdparty/walkontable/src/overlay/inlineStart.js +4 -2
  24. package/3rdparty/walkontable/src/overlay/inlineStart.mjs +4 -2
  25. package/3rdparty/walkontable/src/overlay/top.js +4 -2
  26. package/3rdparty/walkontable/src/overlay/top.mjs +4 -2
  27. package/3rdparty/walkontable/src/selection.js +355 -0
  28. package/3rdparty/walkontable/src/selection.mjs +349 -0
  29. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +0 -9
  30. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +0 -9
  31. package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +0 -9
  32. package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +0 -9
  33. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.js +0 -9
  34. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.mjs +0 -9
  35. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +0 -9
  36. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +0 -9
  37. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +0 -9
  38. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +0 -9
  39. package/3rdparty/walkontable/src/table.js +79 -7
  40. package/3rdparty/walkontable/src/table.mjs +80 -8
  41. package/base.js +2 -2
  42. package/base.mjs +2 -2
  43. package/core.d.ts +3 -5
  44. package/core.js +309 -127
  45. package/core.mjs +309 -127
  46. package/dataMap/metaManager/metaSchema.js +0 -19
  47. package/dataMap/metaManager/metaSchema.mjs +0 -19
  48. package/dist/handsontable.css +3 -8
  49. package/dist/handsontable.full.css +3 -8
  50. package/dist/handsontable.full.js +10685 -13607
  51. package/dist/handsontable.full.min.css +3 -3
  52. package/dist/handsontable.full.min.js +112 -112
  53. package/dist/handsontable.js +13664 -16586
  54. package/dist/handsontable.min.css +3 -3
  55. package/dist/handsontable.min.js +4 -4
  56. package/editorManager.js +94 -21
  57. package/editorManager.mjs +98 -26
  58. package/editors/textEditor/textEditor.js +11 -3
  59. package/editors/textEditor/textEditor.mjs +12 -4
  60. package/helpers/mixed.js +1 -1
  61. package/helpers/mixed.mjs +1 -1
  62. package/helpers/number.d.ts +0 -1
  63. package/helpers/number.js +0 -18
  64. package/helpers/number.mjs +0 -17
  65. package/package.json +1 -1
  66. package/pluginHooks.d.ts +1 -5
  67. package/pluginHooks.js +1 -89
  68. package/pluginHooks.mjs +1 -89
  69. package/plugins/collapsibleColumns/collapsibleColumns.js +24 -81
  70. package/plugins/collapsibleColumns/collapsibleColumns.mjs +24 -81
  71. package/plugins/columnSorting/columnSorting.js +8 -50
  72. package/plugins/columnSorting/columnSorting.mjs +9 -49
  73. package/plugins/columnSorting/index.js +2 -4
  74. package/plugins/columnSorting/index.mjs +1 -1
  75. package/plugins/comments/comments.js +4 -11
  76. package/plugins/comments/comments.mjs +4 -11
  77. package/plugins/contextMenu/contextMenu.d.ts +1 -1
  78. package/plugins/contextMenu/contextMenu.js +29 -80
  79. package/plugins/contextMenu/contextMenu.mjs +30 -81
  80. package/plugins/contextMenu/predefinedItems/alignment.js +0 -7
  81. package/plugins/contextMenu/predefinedItems/alignment.mjs +0 -7
  82. package/plugins/contextMenu/predefinedItems/clearColumn.js +3 -5
  83. package/plugins/contextMenu/predefinedItems/clearColumn.mjs +3 -5
  84. package/plugins/contextMenu/predefinedItems/columnLeft.js +3 -5
  85. package/plugins/contextMenu/predefinedItems/columnLeft.mjs +3 -5
  86. package/plugins/contextMenu/predefinedItems/columnRight.js +3 -5
  87. package/plugins/contextMenu/predefinedItems/columnRight.mjs +3 -5
  88. package/plugins/contextMenu/predefinedItems/readOnly.js +0 -7
  89. package/plugins/contextMenu/predefinedItems/readOnly.mjs +0 -7
  90. package/plugins/contextMenu/predefinedItems/removeColumn.js +5 -7
  91. package/plugins/contextMenu/predefinedItems/removeColumn.mjs +3 -5
  92. package/plugins/contextMenu/predefinedItems/removeRow.js +5 -7
  93. package/plugins/contextMenu/predefinedItems/removeRow.mjs +3 -5
  94. package/plugins/contextMenu/predefinedItems/rowAbove.js +3 -5
  95. package/plugins/contextMenu/predefinedItems/rowAbove.mjs +3 -5
  96. package/plugins/contextMenu/predefinedItems/rowBelow.js +3 -5
  97. package/plugins/contextMenu/predefinedItems/rowBelow.mjs +3 -5
  98. package/plugins/contextMenu/utils.js +16 -25
  99. package/plugins/contextMenu/utils.mjs +15 -24
  100. package/plugins/copyPaste/contextMenuItem/copy.js +0 -7
  101. package/plugins/copyPaste/contextMenuItem/copy.mjs +0 -7
  102. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.js +1 -9
  103. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.mjs +1 -9
  104. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.js +1 -9
  105. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.mjs +1 -9
  106. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.js +1 -9
  107. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.mjs +1 -9
  108. package/plugins/copyPaste/contextMenuItem/cut.js +0 -7
  109. package/plugins/copyPaste/contextMenuItem/cut.mjs +0 -7
  110. package/plugins/copyPaste/copyPaste.js +1 -5
  111. package/plugins/copyPaste/copyPaste.mjs +1 -5
  112. package/plugins/customBorders/customBorders.js +53 -25
  113. package/plugins/customBorders/customBorders.mjs +54 -26
  114. package/plugins/dropdownMenu/dropdownMenu.d.ts +1 -1
  115. package/plugins/dropdownMenu/dropdownMenu.js +30 -94
  116. package/plugins/dropdownMenu/dropdownMenu.mjs +30 -94
  117. package/plugins/manualColumnResize/manualColumnResize.js +36 -5
  118. package/plugins/manualColumnResize/manualColumnResize.mjs +36 -5
  119. package/plugins/manualRowResize/manualRowResize.js +40 -9
  120. package/plugins/manualRowResize/manualRowResize.mjs +40 -9
  121. package/plugins/mergeCells/mergeCells.js +18 -5
  122. package/plugins/mergeCells/mergeCells.mjs +18 -5
  123. package/plugins/multiColumnSorting/multiColumnSorting.js +3 -42
  124. package/plugins/multiColumnSorting/multiColumnSorting.mjs +3 -42
  125. package/plugins/nestedHeaders/nestedHeaders.js +10 -132
  126. package/plugins/nestedHeaders/nestedHeaders.mjs +10 -132
  127. package/plugins/nestedHeaders/stateManager/index.js +0 -37
  128. package/plugins/nestedHeaders/stateManager/index.mjs +0 -37
  129. package/plugins/nestedRows/nestedRows.js +7 -52
  130. package/plugins/nestedRows/nestedRows.mjs +7 -52
  131. package/renderers/checkboxRenderer/checkboxRenderer.js +2 -2
  132. package/renderers/checkboxRenderer/checkboxRenderer.mjs +1 -1
  133. package/selection/highlight/constants.js +16 -0
  134. package/selection/highlight/constants.mjs +6 -0
  135. package/selection/highlight/highlight.js +89 -312
  136. package/selection/highlight/highlight.mjs +85 -302
  137. package/selection/highlight/types/activeHeader.js +9 -10
  138. package/selection/highlight/types/activeHeader.mjs +8 -10
  139. package/selection/highlight/types/area.js +27 -12
  140. package/selection/highlight/types/area.mjs +30 -16
  141. package/selection/highlight/types/{focus.js → cell.js} +8 -5
  142. package/selection/highlight/types/{focus.mjs → cell.mjs} +7 -5
  143. package/selection/highlight/types/customSelection.js +10 -7
  144. package/selection/highlight/types/customSelection.mjs +9 -7
  145. package/selection/highlight/types/fill.js +8 -5
  146. package/selection/highlight/types/fill.mjs +7 -5
  147. package/selection/highlight/types/header.js +20 -10
  148. package/selection/highlight/types/header.mjs +19 -10
  149. package/selection/highlight/types/{row.js → index.js} +31 -27
  150. package/selection/highlight/types/{row.mjs → index.mjs} +29 -24
  151. package/selection/highlight/visualSelection.js +27 -31
  152. package/selection/highlight/visualSelection.mjs +27 -31
  153. package/selection/index.js +7 -4
  154. package/selection/index.mjs +3 -2
  155. package/selection/mouseEventHandler.js +1 -1
  156. package/selection/mouseEventHandler.mjs +1 -1
  157. package/selection/range.js +8 -8
  158. package/selection/range.mjs +8 -8
  159. package/selection/selection.js +181 -315
  160. package/selection/selection.mjs +180 -310
  161. package/selection/transformation.js +96 -233
  162. package/selection/transformation.mjs +93 -230
  163. package/selection/utils.js +36 -12
  164. package/selection/utils.mjs +36 -13
  165. package/settings.d.ts +0 -1
  166. package/shortcuts/manager.js +0 -2
  167. package/shortcuts/manager.mjs +0 -2
  168. package/shortcuts/recorder.js +2 -2
  169. package/shortcuts/recorder.mjs +2 -2
  170. package/shortcuts/utils.js +5 -21
  171. package/shortcuts/utils.mjs +4 -20
  172. package/tableView.js +9 -58
  173. package/tableView.mjs +9 -58
  174. package/translations/indexMapper.js +9 -8
  175. package/translations/indexMapper.mjs +9 -8
  176. package/3rdparty/walkontable/src/selection/border/constants.js +0 -18
  177. package/3rdparty/walkontable/src/selection/border/constants.mjs +0 -13
  178. package/3rdparty/walkontable/src/selection/constants.js +0 -63
  179. package/3rdparty/walkontable/src/selection/constants.mjs +0 -51
  180. package/3rdparty/walkontable/src/selection/index.js +0 -30
  181. package/3rdparty/walkontable/src/selection/index.mjs +0 -5
  182. package/3rdparty/walkontable/src/selection/manager.js +0 -329
  183. package/3rdparty/walkontable/src/selection/manager.mjs +0 -323
  184. package/3rdparty/walkontable/src/selection/scanner.js +0 -364
  185. package/3rdparty/walkontable/src/selection/scanner.mjs +0 -360
  186. package/3rdparty/walkontable/src/selection/selection.js +0 -133
  187. package/3rdparty/walkontable/src/selection/selection.mjs +0 -127
  188. package/selection/highlight/types/areaLayered.js +0 -54
  189. package/selection/highlight/types/areaLayered.mjs +0 -49
  190. package/selection/highlight/types/column.js +0 -50
  191. package/selection/highlight/types/column.mjs +0 -45
  192. package/shortcutContexts/commands/editor/closeAndSave.js +0 -15
  193. package/shortcutContexts/commands/editor/closeAndSave.mjs +0 -10
  194. package/shortcutContexts/commands/editor/closeWithoutSaving.js +0 -13
  195. package/shortcutContexts/commands/editor/closeWithoutSaving.mjs +0 -8
  196. package/shortcutContexts/commands/editor/fastOpen.js +0 -16
  197. package/shortcutContexts/commands/editor/fastOpen.mjs +0 -11
  198. package/shortcutContexts/commands/editor/index.js +0 -16
  199. package/shortcutContexts/commands/editor/index.mjs +0 -12
  200. package/shortcutContexts/commands/editor/open.js +0 -29
  201. package/shortcutContexts/commands/editor/open.mjs +0 -24
  202. package/shortcutContexts/commands/emptySelectedCells.js +0 -12
  203. package/shortcutContexts/commands/emptySelectedCells.mjs +0 -7
  204. package/shortcutContexts/commands/extendCellsSelection/down.js +0 -15
  205. package/shortcutContexts/commands/extendCellsSelection/down.mjs +0 -10
  206. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +0 -21
  207. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +0 -16
  208. package/shortcutContexts/commands/extendCellsSelection/index.js +0 -26
  209. package/shortcutContexts/commands/extendCellsSelection/index.mjs +0 -22
  210. package/shortcutContexts/commands/extendCellsSelection/left.js +0 -15
  211. package/shortcutContexts/commands/extendCellsSelection/left.mjs +0 -10
  212. package/shortcutContexts/commands/extendCellsSelection/right.js +0 -15
  213. package/shortcutContexts/commands/extendCellsSelection/right.mjs +0 -10
  214. package/shortcutContexts/commands/extendCellsSelection/toColumns.js +0 -19
  215. package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +0 -14
  216. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +0 -22
  217. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +0 -17
  218. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +0 -17
  219. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +0 -12
  220. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +0 -17
  221. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +0 -12
  222. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +0 -40
  223. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +0 -35
  224. package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +0 -40
  225. package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +0 -35
  226. package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +0 -22
  227. package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +0 -17
  228. package/shortcutContexts/commands/extendCellsSelection/toRows.js +0 -19
  229. package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +0 -14
  230. package/shortcutContexts/commands/extendCellsSelection/up.js +0 -15
  231. package/shortcutContexts/commands/extendCellsSelection/up.mjs +0 -10
  232. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +0 -21
  233. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +0 -16
  234. package/shortcutContexts/commands/index.js +0 -52
  235. package/shortcutContexts/commands/index.mjs +0 -48
  236. package/shortcutContexts/commands/moveCellSelection/down.js +0 -12
  237. package/shortcutContexts/commands/moveCellSelection/down.mjs +0 -7
  238. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.js +0 -29
  239. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs +0 -24
  240. package/shortcutContexts/commands/moveCellSelection/index.js +0 -28
  241. package/shortcutContexts/commands/moveCellSelection/index.mjs +0 -24
  242. package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +0 -13
  243. package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +0 -8
  244. package/shortcutContexts/commands/moveCellSelection/inlineStart.js +0 -13
  245. package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +0 -8
  246. package/shortcutContexts/commands/moveCellSelection/left.js +0 -11
  247. package/shortcutContexts/commands/moveCellSelection/left.mjs +0 -6
  248. package/shortcutContexts/commands/moveCellSelection/right.js +0 -11
  249. package/shortcutContexts/commands/moveCellSelection/right.mjs +0 -6
  250. package/shortcutContexts/commands/moveCellSelection/toMostBottom.js +0 -16
  251. package/shortcutContexts/commands/moveCellSelection/toMostBottom.mjs +0 -11
  252. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.js +0 -17
  253. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.mjs +0 -12
  254. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.js +0 -13
  255. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.mjs +0 -8
  256. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.js +0 -16
  257. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.mjs +0 -11
  258. package/shortcutContexts/commands/moveCellSelection/toMostLeft.js +0 -36
  259. package/shortcutContexts/commands/moveCellSelection/toMostLeft.mjs +0 -31
  260. package/shortcutContexts/commands/moveCellSelection/toMostRight.js +0 -36
  261. package/shortcutContexts/commands/moveCellSelection/toMostRight.mjs +0 -31
  262. package/shortcutContexts/commands/moveCellSelection/toMostTop.js +0 -16
  263. package/shortcutContexts/commands/moveCellSelection/toMostTop.mjs +0 -11
  264. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.js +0 -18
  265. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.mjs +0 -13
  266. package/shortcutContexts/commands/moveCellSelection/up.js +0 -12
  267. package/shortcutContexts/commands/moveCellSelection/up.mjs +0 -7
  268. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.js +0 -29
  269. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs +0 -24
  270. package/shortcutContexts/commands/populateSelectedCellsData.js +0 -35
  271. package/shortcutContexts/commands/populateSelectedCellsData.mjs +0 -30
  272. package/shortcutContexts/commands/selectAll.js +0 -11
  273. package/shortcutContexts/commands/selectAll.mjs +0 -6
  274. package/shortcutContexts/constants.js +0 -19
  275. package/shortcutContexts/constants.mjs +0 -12
  276. package/shortcutContexts/editor.js +0 -29
  277. package/shortcutContexts/editor.mjs +0 -25
  278. package/shortcutContexts/grid.js +0 -244
  279. package/shortcutContexts/grid.mjs +0 -240
  280. package/shortcutContexts/index.js +0 -29
  281. package/shortcutContexts/index.mjs +0 -15
@@ -79,6 +79,7 @@ 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;
82
83
  _this.dblclick = 0;
83
84
  _this.autoresizeTimeout = null;
84
85
 
@@ -400,6 +401,11 @@ export var ManualRowResize = /*#__PURE__*/function (_BasePlugin) {
400
401
  if (isDetached(event.target)) {
401
402
  return;
402
403
  }
404
+
405
+ // A "mouseover" action is triggered right after executing "contextmenu" event. It should be ignored.
406
+ if (this.isTriggeredByRMB === true) {
407
+ return;
408
+ }
403
409
  if (this.checkIfRowHeader(event.target)) {
404
410
  var th = this.getClosestTHParent(event.target);
405
411
  if (th) {
@@ -546,6 +552,28 @@ export var ManualRowResize = /*#__PURE__*/function (_BasePlugin) {
546
552
  }
547
553
  }
548
554
 
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
+
549
577
  /**
550
578
  * Binds the mouse events.
551
579
  *
@@ -554,21 +582,24 @@ export var ManualRowResize = /*#__PURE__*/function (_BasePlugin) {
554
582
  }, {
555
583
  key: "bindEvents",
556
584
  value: function bindEvents() {
557
- var _this8 = this;
585
+ var _this9 = this;
558
586
  var _this$hot = this.hot,
559
587
  rootElement = _this$hot.rootElement,
560
588
  rootWindow = _this$hot.rootWindow;
561
589
  this.eventManager.addEventListener(rootElement, 'mouseover', function (e) {
562
- return _this8.onMouseOver(e);
590
+ return _this9.onMouseOver(e);
563
591
  });
564
592
  this.eventManager.addEventListener(rootElement, 'mousedown', function (e) {
565
- return _this8.onMouseDown(e);
593
+ return _this9.onMouseDown(e);
566
594
  });
567
595
  this.eventManager.addEventListener(rootWindow, 'mousemove', function (e) {
568
- return _this8.onMouseMove(e);
596
+ return _this9.onMouseMove(e);
569
597
  });
570
598
  this.eventManager.addEventListener(rootWindow, 'mouseup', function () {
571
- return _this8.onMouseUp();
599
+ return _this9.onMouseUp();
600
+ });
601
+ this.eventManager.addEventListener(this.handle, 'contextmenu', function () {
602
+ return _this9.onContextMenu();
572
603
  });
573
604
  }
574
605
 
@@ -602,23 +633,23 @@ export var ManualRowResize = /*#__PURE__*/function (_BasePlugin) {
602
633
  }, {
603
634
  key: "onMapInit",
604
635
  value: function onMapInit() {
605
- var _this9 = this;
636
+ var _this10 = this;
606
637
  var priv = privatePool.get(this);
607
638
  var initialSetting = this.hot.getSettings()[PLUGIN_KEY];
608
639
  var loadedManualRowHeights = this.loadManualRowHeights();
609
640
  this.hot.batchExecution(function () {
610
641
  if (typeof loadedManualRowHeights !== 'undefined') {
611
642
  loadedManualRowHeights.forEach(function (height, index) {
612
- _this9.rowHeightsMap.setValueAtIndex(index, height);
643
+ _this10.rowHeightsMap.setValueAtIndex(index, height);
613
644
  });
614
645
  } else if (Array.isArray(initialSetting)) {
615
646
  initialSetting.forEach(function (height, index) {
616
- _this9.rowHeightsMap.setValueAtIndex(index, height);
647
+ _this10.rowHeightsMap.setValueAtIndex(index, height);
617
648
  });
618
649
  priv.config = initialSetting;
619
650
  } else if (initialSetting === true && Array.isArray(priv.config)) {
620
651
  priv.config.forEach(function (height, index) {
621
- _this9.rowHeightsMap.setValueAtIndex(index, height);
652
+ _this10.rowHeightsMap.setValueAtIndex(index, height);
622
653
  });
623
654
  }
624
655
  }, true);
@@ -243,6 +243,9 @@ 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
+ });
246
249
  this.addHook('beforeUndoStackChange', function (action, source) {
247
250
  if (source === 'MergeCells') {
248
251
  return false;
@@ -659,11 +662,8 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
659
662
  gridContext.addShortcut({
660
663
  keys: [['Control', 'm']],
661
664
  callback: function callback() {
662
- var range = _this7.hot.getSelectedRangeLast();
663
- if (range && !range.isSingleHeader()) {
664
- _this7.toggleMerge(range);
665
- _this7.hot.render();
666
- }
665
+ _this7.toggleMerge(_this7.hot.getSelectedRangeLast());
666
+ _this7.hot.render();
667
667
  },
668
668
  runOnlyIf: function runOnlyIf(event) {
669
669
  return !event.altKey;
@@ -1340,6 +1340,19 @@ 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
+ }
1343
1356
  }], [{
1344
1357
  key: "PLUGIN_KEY",
1345
1358
  get: function get() {
@@ -236,6 +236,9 @@ 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
+ });
239
242
  this.addHook('beforeUndoStackChange', function (action, source) {
240
243
  if (source === 'MergeCells') {
241
244
  return false;
@@ -652,11 +655,8 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
652
655
  gridContext.addShortcut({
653
656
  keys: [['Control', 'm']],
654
657
  callback: function callback() {
655
- var range = _this7.hot.getSelectedRangeLast();
656
- if (range && !range.isSingleHeader()) {
657
- _this7.toggleMerge(range);
658
- _this7.hot.render();
659
- }
658
+ _this7.toggleMerge(_this7.hot.getSelectedRangeLast());
659
+ _this7.hot.render();
660
660
  },
661
661
  runOnlyIf: function runOnlyIf(event) {
662
662
  return !event.altKey;
@@ -1333,6 +1333,19 @@ 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
+ }
1336
1349
  }], [{
1337
1350
  key: "PLUGIN_KEY",
1338
1351
  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.sort.js");
20
19
  require("core-js/modules/es.array.concat.js");
20
+ require("core-js/modules/es.array.sort.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';
48
49
  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,45 +151,6 @@ 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
-
193
154
  /**
194
155
  * Sorts the table by chosen columns and orders.
195
156
  *
@@ -358,7 +319,7 @@ var MultiColumnSorting = /*#__PURE__*/function (_ColumnSorting) {
358
319
  if (this.hot.getShortcutManager().isCtrlPressed()) {
359
320
  this.hot.deselectCell();
360
321
  this.hot.selectColumns(coords.col);
361
- this.sort(this.getNextSortConfig(coords.col, _columnSorting.APPEND_COLUMN_CONFIG_STRATEGY));
322
+ this.sort(this.getNextSortConfig(coords.col, APPEND_COLUMN_CONFIG_STRATEGY));
362
323
  } else {
363
324
  this.sort(this.getColumnNextConfig(coords.col));
364
325
  }
@@ -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.sort.js";
3
2
  import "core-js/modules/es.array.concat.js";
3
+ import "core-js/modules/es.array.sort.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 { APPEND_COLUMN_CONFIG_STRATEGY, ColumnSorting } from "../columnSorting/index.mjs";
33
+ import { 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';
42
43
  var CONFLICTED_PLUGIN_KEY = 'columnSorting';
43
- var SHORTCUTS_GROUP = PLUGIN_KEY;
44
44
  registerRootComparator(PLUGIN_KEY, rootComparator);
45
45
 
46
46
  /**
@@ -145,45 +145,6 @@ 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
-
187
148
  /**
188
149
  * Sorts the table by chosen columns and orders.
189
150
  *
@@ -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 _templateLiteralTag = require("../../helpers/templateLiteralTag");
29
28
  var _event = require("../../helpers/dom/event");
29
+ var _templateLiteralTag = require("../../helpers/templateLiteralTag");
30
30
  var _console = require("../../helpers/console");
31
31
  var _selection = require("../../selection");
32
32
  var _base = require("../base");
@@ -201,12 +201,6 @@ 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
- });
210
204
  this.addHook('afterGetColumnHeaderRenderers', function (array) {
211
205
  return _this2.onAfterGetColumnHeaderRenderers(array);
212
206
  });
@@ -222,18 +216,9 @@ var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
222
216
  this.addHook('beforeCopy', function () {
223
217
  return _this2.onBeforeCopy.apply(_this2, arguments);
224
218
  });
225
- this.addHook('beforeSelectColumns', function () {
226
- return _this2.onBeforeSelectColumns.apply(_this2, arguments);
227
- });
228
219
  this.addHook('afterViewportColumnCalculatorOverride', function () {
229
220
  return _this2.onAfterViewportColumnCalculatorOverride.apply(_this2, arguments);
230
221
  });
231
- this.hot.columnIndexMapper.addLocalHook('cacheUpdated', function () {
232
- return _this2.updateFocusHighlightPosition();
233
- });
234
- this.hot.rowIndexMapper.addLocalHook('cacheUpdated', function () {
235
- return _this2.updateFocusHighlightPosition();
236
- });
237
222
  _get(_getPrototypeOf(NestedHeaders.prototype), "enablePlugin", this).call(this);
238
223
  this.updatePlugin(); // @TODO: Workaround for broken plugin initialization abstraction.
239
224
  }
@@ -455,34 +440,6 @@ var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
455
440
  return this.hot.getColHeader(visualColumnIndex, headerLevel);
456
441
  }
457
442
 
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
-
486
443
  /**
487
444
  * Allows to control which header DOM element will be used to highlight.
488
445
  *
@@ -499,7 +456,8 @@ var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
499
456
  if (!headerNodeData) {
500
457
  return visualColumn;
501
458
  }
502
- var columnCursor = highlightMeta.columnCursor,
459
+ var classNames = highlightMeta.classNames,
460
+ columnCursor = highlightMeta.columnCursor,
503
461
  selectionType = highlightMeta.selectionType,
504
462
  selectionWidth = highlightMeta.selectionWidth;
505
463
  var _classPrivateFieldGet4 = _classPrivateFieldGet(this, _stateManager).getHeaderSettings(headerLevel, visualColumn),
@@ -511,8 +469,8 @@ var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
511
469
  }
512
470
  } else if (selectionType === _selection.ACTIVE_HEADER_TYPE) {
513
471
  if (colspan > selectionWidth - columnCursor || !isRoot) {
514
- // Prevents adding any CSS class names to the TH element
515
- return null;
472
+ // Reset the class names array so the generated TH element won't be modified.
473
+ classNames.length = 0;
516
474
  }
517
475
  }
518
476
  return visualColumn;
@@ -643,7 +601,7 @@ var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
643
601
  }, {
644
602
  key: "onBeforeOnCellMouseOver",
645
603
  value: function onBeforeOnCellMouseOver(event, coords, TD, controller) {
646
- var _this$hot$selection;
604
+ var _this$hot;
647
605
  if (!this.hot.view.isMouseDown()) {
648
606
  return;
649
607
  }
@@ -664,93 +622,13 @@ var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
664
622
  controller.cell = true;
665
623
  var columnsToSelect = [];
666
624
  if (coords.col < from.col) {
667
- columnsToSelect.push(bottomEndCoords.col, columnIndex, coords.row);
625
+ columnsToSelect.push(bottomEndCoords.col, columnIndex);
668
626
  } else if (coords.col > from.col) {
669
- columnsToSelect.push(topStartCoords.col, columnIndex + origColspan - 1, coords.row);
627
+ columnsToSelect.push(topStartCoords.col, columnIndex + origColspan - 1);
670
628
  } else {
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
- }
629
+ columnsToSelect.push(columnIndex, columnIndex + origColspan - 1);
753
630
  }
631
+ (_this$hot = this.hot).selectColumns.apply(_this$hot, columnsToSelect);
754
632
  }
755
633
 
756
634
  /**