handsontable 0.0.0-next-d1c8e0e-20230621 → 0.0.0-next-c765185-20230622

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 (280) 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/CHANGELOG.md +31 -0
  42. package/base.js +2 -2
  43. package/base.mjs +2 -2
  44. package/core.d.ts +3 -5
  45. package/core.js +309 -127
  46. package/core.mjs +309 -127
  47. package/dataMap/metaManager/metaSchema.js +0 -19
  48. package/dataMap/metaManager/metaSchema.mjs +0 -19
  49. package/dist/handsontable.css +3 -8
  50. package/dist/handsontable.full.css +3 -8
  51. package/dist/handsontable.full.js +10826 -13821
  52. package/dist/handsontable.full.min.css +3 -3
  53. package/dist/handsontable.full.min.js +115 -115
  54. package/dist/handsontable.js +13565 -16560
  55. package/dist/handsontable.min.css +3 -3
  56. package/dist/handsontable.min.js +4 -4
  57. package/editorManager.js +94 -21
  58. package/editorManager.mjs +98 -26
  59. package/editors/textEditor/textEditor.js +11 -3
  60. package/editors/textEditor/textEditor.mjs +12 -4
  61. package/helpers/mixed.js +2 -2
  62. package/helpers/mixed.mjs +2 -2
  63. package/helpers/number.d.ts +0 -1
  64. package/helpers/number.js +0 -18
  65. package/helpers/number.mjs +0 -17
  66. package/package.json +1 -1
  67. package/pluginHooks.d.ts +1 -5
  68. package/pluginHooks.js +1 -89
  69. package/pluginHooks.mjs +1 -89
  70. package/plugins/collapsibleColumns/collapsibleColumns.js +24 -81
  71. package/plugins/collapsibleColumns/collapsibleColumns.mjs +24 -81
  72. package/plugins/columnSorting/columnSorting.js +8 -50
  73. package/plugins/columnSorting/columnSorting.mjs +9 -49
  74. package/plugins/columnSorting/index.js +2 -4
  75. package/plugins/columnSorting/index.mjs +1 -1
  76. package/plugins/comments/comments.js +4 -11
  77. package/plugins/comments/comments.mjs +4 -11
  78. package/plugins/contextMenu/contextMenu.d.ts +1 -1
  79. package/plugins/contextMenu/contextMenu.js +29 -80
  80. package/plugins/contextMenu/contextMenu.mjs +30 -81
  81. package/plugins/contextMenu/predefinedItems/alignment.js +0 -7
  82. package/plugins/contextMenu/predefinedItems/alignment.mjs +0 -7
  83. package/plugins/contextMenu/predefinedItems/clearColumn.js +3 -5
  84. package/plugins/contextMenu/predefinedItems/clearColumn.mjs +3 -5
  85. package/plugins/contextMenu/predefinedItems/columnLeft.js +3 -5
  86. package/plugins/contextMenu/predefinedItems/columnLeft.mjs +3 -5
  87. package/plugins/contextMenu/predefinedItems/columnRight.js +3 -5
  88. package/plugins/contextMenu/predefinedItems/columnRight.mjs +3 -5
  89. package/plugins/contextMenu/predefinedItems/readOnly.js +0 -7
  90. package/plugins/contextMenu/predefinedItems/readOnly.mjs +0 -7
  91. package/plugins/contextMenu/predefinedItems/removeColumn.js +5 -7
  92. package/plugins/contextMenu/predefinedItems/removeColumn.mjs +3 -5
  93. package/plugins/contextMenu/predefinedItems/removeRow.js +5 -7
  94. package/plugins/contextMenu/predefinedItems/removeRow.mjs +3 -5
  95. package/plugins/contextMenu/predefinedItems/rowAbove.js +3 -5
  96. package/plugins/contextMenu/predefinedItems/rowAbove.mjs +3 -5
  97. package/plugins/contextMenu/predefinedItems/rowBelow.js +3 -5
  98. package/plugins/contextMenu/predefinedItems/rowBelow.mjs +3 -5
  99. package/plugins/contextMenu/utils.js +16 -25
  100. package/plugins/contextMenu/utils.mjs +15 -24
  101. package/plugins/copyPaste/contextMenuItem/copy.js +0 -7
  102. package/plugins/copyPaste/contextMenuItem/copy.mjs +0 -7
  103. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.js +1 -9
  104. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.mjs +1 -9
  105. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.js +1 -9
  106. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.mjs +1 -9
  107. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.js +1 -9
  108. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.mjs +1 -9
  109. package/plugins/copyPaste/contextMenuItem/cut.js +0 -7
  110. package/plugins/copyPaste/contextMenuItem/cut.mjs +0 -7
  111. package/plugins/copyPaste/copyPaste.js +1 -5
  112. package/plugins/copyPaste/copyPaste.mjs +1 -5
  113. package/plugins/customBorders/customBorders.js +53 -25
  114. package/plugins/customBorders/customBorders.mjs +54 -26
  115. package/plugins/dropdownMenu/dropdownMenu.d.ts +1 -1
  116. package/plugins/dropdownMenu/dropdownMenu.js +30 -94
  117. package/plugins/dropdownMenu/dropdownMenu.mjs +30 -94
  118. package/plugins/filters/filters.js +42 -62
  119. package/plugins/filters/filters.mjs +41 -61
  120. package/plugins/mergeCells/mergeCells.js +18 -5
  121. package/plugins/mergeCells/mergeCells.mjs +18 -5
  122. package/plugins/multiColumnSorting/multiColumnSorting.js +3 -42
  123. package/plugins/multiColumnSorting/multiColumnSorting.mjs +3 -42
  124. package/plugins/nestedHeaders/nestedHeaders.js +10 -132
  125. package/plugins/nestedHeaders/nestedHeaders.mjs +10 -132
  126. package/plugins/nestedHeaders/stateManager/index.js +0 -37
  127. package/plugins/nestedHeaders/stateManager/index.mjs +0 -37
  128. package/plugins/nestedRows/nestedRows.js +7 -52
  129. package/plugins/nestedRows/nestedRows.mjs +7 -52
  130. package/renderers/checkboxRenderer/checkboxRenderer.js +2 -2
  131. package/renderers/checkboxRenderer/checkboxRenderer.mjs +1 -1
  132. package/selection/highlight/constants.js +16 -0
  133. package/selection/highlight/constants.mjs +6 -0
  134. package/selection/highlight/highlight.js +89 -312
  135. package/selection/highlight/highlight.mjs +85 -302
  136. package/selection/highlight/types/activeHeader.js +9 -10
  137. package/selection/highlight/types/activeHeader.mjs +8 -10
  138. package/selection/highlight/types/area.js +27 -12
  139. package/selection/highlight/types/area.mjs +30 -16
  140. package/selection/highlight/types/{focus.js → cell.js} +8 -5
  141. package/selection/highlight/types/{focus.mjs → cell.mjs} +7 -5
  142. package/selection/highlight/types/customSelection.js +10 -7
  143. package/selection/highlight/types/customSelection.mjs +9 -7
  144. package/selection/highlight/types/fill.js +8 -5
  145. package/selection/highlight/types/fill.mjs +7 -5
  146. package/selection/highlight/types/header.js +20 -10
  147. package/selection/highlight/types/header.mjs +19 -10
  148. package/selection/highlight/types/{row.js → index.js} +31 -27
  149. package/selection/highlight/types/{row.mjs → index.mjs} +29 -24
  150. package/selection/highlight/visualSelection.js +27 -31
  151. package/selection/highlight/visualSelection.mjs +27 -31
  152. package/selection/index.js +7 -4
  153. package/selection/index.mjs +3 -2
  154. package/selection/mouseEventHandler.js +1 -1
  155. package/selection/mouseEventHandler.mjs +1 -1
  156. package/selection/range.js +8 -8
  157. package/selection/range.mjs +8 -8
  158. package/selection/selection.js +181 -315
  159. package/selection/selection.mjs +180 -310
  160. package/selection/transformation.js +96 -233
  161. package/selection/transformation.mjs +93 -230
  162. package/selection/utils.js +36 -12
  163. package/selection/utils.mjs +36 -13
  164. package/settings.d.ts +0 -1
  165. package/shortcuts/manager.js +0 -2
  166. package/shortcuts/manager.mjs +0 -2
  167. package/shortcuts/recorder.js +2 -2
  168. package/shortcuts/recorder.mjs +2 -2
  169. package/shortcuts/utils.js +5 -21
  170. package/shortcuts/utils.mjs +4 -20
  171. package/tableView.js +9 -58
  172. package/tableView.mjs +9 -58
  173. package/translations/indexMapper.js +9 -8
  174. package/translations/indexMapper.mjs +9 -8
  175. package/3rdparty/walkontable/src/selection/border/constants.js +0 -18
  176. package/3rdparty/walkontable/src/selection/border/constants.mjs +0 -13
  177. package/3rdparty/walkontable/src/selection/constants.js +0 -63
  178. package/3rdparty/walkontable/src/selection/constants.mjs +0 -51
  179. package/3rdparty/walkontable/src/selection/index.js +0 -30
  180. package/3rdparty/walkontable/src/selection/index.mjs +0 -5
  181. package/3rdparty/walkontable/src/selection/manager.js +0 -329
  182. package/3rdparty/walkontable/src/selection/manager.mjs +0 -323
  183. package/3rdparty/walkontable/src/selection/scanner.js +0 -364
  184. package/3rdparty/walkontable/src/selection/scanner.mjs +0 -360
  185. package/3rdparty/walkontable/src/selection/selection.js +0 -133
  186. package/3rdparty/walkontable/src/selection/selection.mjs +0 -127
  187. package/selection/highlight/types/areaLayered.js +0 -54
  188. package/selection/highlight/types/areaLayered.mjs +0 -49
  189. package/selection/highlight/types/column.js +0 -50
  190. package/selection/highlight/types/column.mjs +0 -45
  191. package/shortcutContexts/commands/editor/closeAndSave.js +0 -15
  192. package/shortcutContexts/commands/editor/closeAndSave.mjs +0 -10
  193. package/shortcutContexts/commands/editor/closeWithoutSaving.js +0 -13
  194. package/shortcutContexts/commands/editor/closeWithoutSaving.mjs +0 -8
  195. package/shortcutContexts/commands/editor/fastOpen.js +0 -16
  196. package/shortcutContexts/commands/editor/fastOpen.mjs +0 -11
  197. package/shortcutContexts/commands/editor/index.js +0 -16
  198. package/shortcutContexts/commands/editor/index.mjs +0 -12
  199. package/shortcutContexts/commands/editor/open.js +0 -29
  200. package/shortcutContexts/commands/editor/open.mjs +0 -24
  201. package/shortcutContexts/commands/emptySelectedCells.js +0 -12
  202. package/shortcutContexts/commands/emptySelectedCells.mjs +0 -7
  203. package/shortcutContexts/commands/extendCellsSelection/down.js +0 -15
  204. package/shortcutContexts/commands/extendCellsSelection/down.mjs +0 -10
  205. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +0 -21
  206. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +0 -16
  207. package/shortcutContexts/commands/extendCellsSelection/index.js +0 -26
  208. package/shortcutContexts/commands/extendCellsSelection/index.mjs +0 -22
  209. package/shortcutContexts/commands/extendCellsSelection/left.js +0 -15
  210. package/shortcutContexts/commands/extendCellsSelection/left.mjs +0 -10
  211. package/shortcutContexts/commands/extendCellsSelection/right.js +0 -15
  212. package/shortcutContexts/commands/extendCellsSelection/right.mjs +0 -10
  213. package/shortcutContexts/commands/extendCellsSelection/toColumns.js +0 -19
  214. package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +0 -14
  215. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +0 -22
  216. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +0 -17
  217. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +0 -17
  218. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +0 -12
  219. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +0 -17
  220. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +0 -12
  221. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +0 -40
  222. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +0 -35
  223. package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +0 -40
  224. package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +0 -35
  225. package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +0 -22
  226. package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +0 -17
  227. package/shortcutContexts/commands/extendCellsSelection/toRows.js +0 -19
  228. package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +0 -14
  229. package/shortcutContexts/commands/extendCellsSelection/up.js +0 -15
  230. package/shortcutContexts/commands/extendCellsSelection/up.mjs +0 -10
  231. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +0 -21
  232. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +0 -16
  233. package/shortcutContexts/commands/index.js +0 -52
  234. package/shortcutContexts/commands/index.mjs +0 -48
  235. package/shortcutContexts/commands/moveCellSelection/down.js +0 -12
  236. package/shortcutContexts/commands/moveCellSelection/down.mjs +0 -7
  237. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.js +0 -29
  238. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs +0 -24
  239. package/shortcutContexts/commands/moveCellSelection/index.js +0 -28
  240. package/shortcutContexts/commands/moveCellSelection/index.mjs +0 -24
  241. package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +0 -13
  242. package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +0 -8
  243. package/shortcutContexts/commands/moveCellSelection/inlineStart.js +0 -13
  244. package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +0 -8
  245. package/shortcutContexts/commands/moveCellSelection/left.js +0 -11
  246. package/shortcutContexts/commands/moveCellSelection/left.mjs +0 -6
  247. package/shortcutContexts/commands/moveCellSelection/right.js +0 -11
  248. package/shortcutContexts/commands/moveCellSelection/right.mjs +0 -6
  249. package/shortcutContexts/commands/moveCellSelection/toMostBottom.js +0 -16
  250. package/shortcutContexts/commands/moveCellSelection/toMostBottom.mjs +0 -11
  251. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.js +0 -17
  252. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.mjs +0 -12
  253. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.js +0 -13
  254. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.mjs +0 -8
  255. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.js +0 -16
  256. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.mjs +0 -11
  257. package/shortcutContexts/commands/moveCellSelection/toMostLeft.js +0 -36
  258. package/shortcutContexts/commands/moveCellSelection/toMostLeft.mjs +0 -31
  259. package/shortcutContexts/commands/moveCellSelection/toMostRight.js +0 -36
  260. package/shortcutContexts/commands/moveCellSelection/toMostRight.mjs +0 -31
  261. package/shortcutContexts/commands/moveCellSelection/toMostTop.js +0 -16
  262. package/shortcutContexts/commands/moveCellSelection/toMostTop.mjs +0 -11
  263. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.js +0 -18
  264. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.mjs +0 -13
  265. package/shortcutContexts/commands/moveCellSelection/up.js +0 -12
  266. package/shortcutContexts/commands/moveCellSelection/up.mjs +0 -7
  267. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.js +0 -29
  268. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs +0 -24
  269. package/shortcutContexts/commands/populateSelectedCellsData.js +0 -35
  270. package/shortcutContexts/commands/populateSelectedCellsData.mjs +0 -30
  271. package/shortcutContexts/commands/selectAll.js +0 -11
  272. package/shortcutContexts/commands/selectAll.mjs +0 -6
  273. package/shortcutContexts/constants.js +0 -19
  274. package/shortcutContexts/constants.mjs +0 -12
  275. package/shortcutContexts/editor.js +0 -29
  276. package/shortcutContexts/editor.mjs +0 -25
  277. package/shortcutContexts/grid.js +0 -247
  278. package/shortcutContexts/grid.mjs +0 -243
  279. package/shortcutContexts/index.js +0 -29
  280. package/shortcutContexts/index.mjs +0 -15
@@ -67,7 +67,6 @@ import { CONDITION_NONE, CONDITION_BY_VALUE, OPERATION_AND, OPERATION_OR, OPERAT
67
67
  import { TrimmingMap } from "../../translations/index.mjs";
68
68
  export var PLUGIN_KEY = 'filters';
69
69
  export var PLUGIN_PRIORITY = 250;
70
- var SHORTCUTS_GROUP = PLUGIN_KEY;
71
70
 
72
71
  /**
73
72
  * @plugin Filters
@@ -283,7 +282,6 @@ export var Filters = /*#__PURE__*/function (_BasePlugin) {
283
282
  this.dropdownMenuPlugin.disablePlugin();
284
283
  this.dropdownMenuPlugin.enablePlugin();
285
284
  }
286
- this.registerShortcuts();
287
285
  _get(_getPrototypeOf(Filters.prototype), "enablePlugin", this).call(this);
288
286
  }
289
287
 
@@ -307,41 +305,9 @@ export var Filters = /*#__PURE__*/function (_BasePlugin) {
307
305
  this.conditionCollection = null;
308
306
  this.hot.rowIndexMapper.unregisterMap(this.pluginName);
309
307
  }
310
- this.unregisterShortcuts();
311
308
  _get(_getPrototypeOf(Filters.prototype), "disablePlugin", this).call(this);
312
309
  }
313
310
 
314
- /**
315
- * Register shortcuts responsible for clearing the filters.
316
- *
317
- * @private
318
- */
319
- }, {
320
- key: "registerShortcuts",
321
- value: function registerShortcuts() {
322
- var _this4 = this;
323
- this.hot.getShortcutManager().getContext('grid').addShortcut({
324
- keys: [['Alt', 'A']],
325
- stopPropagation: true,
326
- callback: function callback() {
327
- _this4.clearConditions();
328
- _this4.filter();
329
- },
330
- group: SHORTCUTS_GROUP
331
- });
332
- }
333
-
334
- /**
335
- * Unregister shortcuts responsible for clearing the filters.
336
- *
337
- * @private
338
- */
339
- }, {
340
- key: "unregisterShortcuts",
341
- value: function unregisterShortcuts() {
342
- this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);
343
- }
344
-
345
311
  /* eslint-disable jsdoc/require-description-complete-sentence */
346
312
  /**
347
313
  * @memberof Filters#
@@ -508,7 +474,7 @@ export var Filters = /*#__PURE__*/function (_BasePlugin) {
508
474
  }, {
509
475
  key: "filter",
510
476
  value: function filter() {
511
- var _this5 = this;
477
+ var _this4 = this;
512
478
  var dataFilter = this._createDataFilter();
513
479
  var needToFilter = !this.conditionCollection.isEmpty();
514
480
  var visibleVisualRows = [];
@@ -518,18 +484,18 @@ export var Filters = /*#__PURE__*/function (_BasePlugin) {
518
484
  if (needToFilter) {
519
485
  var trimmedRows = [];
520
486
  this.hot.batchExecution(function () {
521
- _this5.filtersRowsMap.clear();
487
+ _this4.filtersRowsMap.clear();
522
488
  visibleVisualRows = arrayMap(dataFilter.filter(), function (rowData) {
523
489
  return rowData.meta.visualRow;
524
490
  });
525
491
  var visibleVisualRowsAssertion = createArrayAssertion(visibleVisualRows);
526
- rangeEach(_this5.hot.countSourceRows() - 1, function (row) {
492
+ rangeEach(_this4.hot.countSourceRows() - 1, function (row) {
527
493
  if (!visibleVisualRowsAssertion(row)) {
528
494
  trimmedRows.push(row);
529
495
  }
530
496
  });
531
497
  arrayEach(trimmedRows, function (physicalRow) {
532
- _this5.filtersRowsMap.setValueAtIndex(physicalRow, true);
498
+ _this4.filtersRowsMap.setValueAtIndex(physicalRow, true);
533
499
  });
534
500
  }, true);
535
501
  if (!visibleVisualRows.length) {
@@ -542,6 +508,7 @@ export var Filters = /*#__PURE__*/function (_BasePlugin) {
542
508
  this.hot.runHooks('afterFilter', conditions);
543
509
  this.hot.view.adjustElementsSize(true);
544
510
  this.hot.render();
511
+ this.clearColumnSelection();
545
512
  }
546
513
 
547
514
  /**
@@ -565,6 +532,20 @@ export var Filters = /*#__PURE__*/function (_BasePlugin) {
565
532
  };
566
533
  }
567
534
 
535
+ /**
536
+ * Clears column selection.
537
+ *
538
+ * @private
539
+ */
540
+ }, {
541
+ key: "clearColumnSelection",
542
+ value: function clearColumnSelection() {
543
+ var selectedColumn = this.getSelectedColumn();
544
+ if (selectedColumn !== null) {
545
+ this.hot.selectCell(0, selectedColumn.visualIndex);
546
+ }
547
+ }
548
+
568
549
  /**
569
550
  * Returns handsontable source data with cell meta based on current selection.
570
551
  *
@@ -574,21 +555,21 @@ export var Filters = /*#__PURE__*/function (_BasePlugin) {
574
555
  }, {
575
556
  key: "getDataMapAtColumn",
576
557
  value: function getDataMapAtColumn(column) {
577
- var _this6 = this;
558
+ var _this5 = this;
578
559
  var visualColumn = this.hot.toVisualColumn(column);
579
560
  var data = [];
580
561
  arrayEach(this.hot.getSourceDataAtCol(visualColumn), function (value, rowIndex) {
581
- var _this6$hot$getDataAtC;
582
- var _this6$hot$getCellMet = _this6.hot.getCellMeta(rowIndex, visualColumn),
583
- row = _this6$hot$getCellMet.row,
584
- col = _this6$hot$getCellMet.col,
585
- visualCol = _this6$hot$getCellMet.visualCol,
586
- visualRow = _this6$hot$getCellMet.visualRow,
587
- type = _this6$hot$getCellMet.type,
588
- instance = _this6$hot$getCellMet.instance,
589
- dateFormat = _this6$hot$getCellMet.dateFormat,
590
- locale = _this6$hot$getCellMet.locale;
591
- var dataValue = (_this6$hot$getDataAtC = _this6.hot.getDataAtCell(_this6.hot.toVisualRow(rowIndex), visualColumn)) !== null && _this6$hot$getDataAtC !== void 0 ? _this6$hot$getDataAtC : value;
562
+ var _this5$hot$getDataAtC;
563
+ var _this5$hot$getCellMet = _this5.hot.getCellMeta(rowIndex, visualColumn),
564
+ row = _this5$hot$getCellMet.row,
565
+ col = _this5$hot$getCellMet.col,
566
+ visualCol = _this5$hot$getCellMet.visualCol,
567
+ visualRow = _this5$hot$getCellMet.visualRow,
568
+ type = _this5$hot$getCellMet.type,
569
+ instance = _this5$hot$getCellMet.instance,
570
+ dateFormat = _this5$hot$getCellMet.dateFormat,
571
+ locale = _this5$hot$getCellMet.locale;
572
+ var dataValue = (_this5$hot$getDataAtC = _this5.hot.getDataAtCell(_this5.hot.toVisualRow(rowIndex), visualColumn)) !== null && _this5$hot$getDataAtC !== void 0 ? _this5$hot$getDataAtC : value;
592
573
  data.push({
593
574
  meta: {
594
575
  row: row,
@@ -615,14 +596,14 @@ export var Filters = /*#__PURE__*/function (_BasePlugin) {
615
596
  }, {
616
597
  key: "onAfterChange",
617
598
  value: function onAfterChange(changes) {
618
- var _this7 = this;
599
+ var _this6 = this;
619
600
  if (changes) {
620
601
  arrayEach(changes, function (change) {
621
602
  var _change = _slicedToArray(change, 2),
622
603
  prop = _change[1];
623
- var columnIndex = _this7.hot.propToCol(prop);
624
- if (_this7.conditionCollection.hasConditions(columnIndex)) {
625
- _this7.updateValueComponentCondition(columnIndex);
604
+ var columnIndex = _this6.hot.propToCol(prop);
605
+ if (_this6.conditionCollection.hasConditions(columnIndex)) {
606
+ _this6.updateValueComponentCondition(columnIndex);
626
607
  }
627
608
  });
628
609
  }
@@ -693,10 +674,10 @@ export var Filters = /*#__PURE__*/function (_BasePlugin) {
693
674
  }, {
694
675
  key: "onBeforeDropdownMenuSetItems",
695
676
  value: function onBeforeDropdownMenuSetItems() {
696
- var _this8 = this;
677
+ var _this7 = this;
697
678
  if (this.dropdownMenuPlugin) {
698
679
  this.dropdownMenuPlugin.menu.addLocalHook('afterOpen', function () {
699
- _this8.dropdownMenuPlugin.menu.hotMenu.updateSettings({
680
+ _this7.dropdownMenuPlugin.menu.hotMenu.updateSettings({
700
681
  hiddenRows: true
701
682
  });
702
683
  });
@@ -787,7 +768,6 @@ export var Filters = /*#__PURE__*/function (_BasePlugin) {
787
768
  });
788
769
  this.filtersRowsMap.clear();
789
770
  this.filter();
790
- this.hot.selectCell(0, selectedColumn.visualIndex);
791
771
  }
792
772
  (_this$dropdownMenuPlu3 = this.dropdownMenuPlugin) === null || _this$dropdownMenuPlu3 === void 0 ? void 0 : _this$dropdownMenuPlu3.close();
793
773
  }
@@ -880,10 +860,10 @@ export var Filters = /*#__PURE__*/function (_BasePlugin) {
880
860
  }, {
881
861
  key: "_createDataFilter",
882
862
  value: function _createDataFilter() {
883
- var _this9 = this;
863
+ var _this8 = this;
884
864
  var conditionCollection = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.conditionCollection;
885
865
  return new DataFilter(conditionCollection, function (physicalColumn) {
886
- return _this9.getDataMapAtColumn(physicalColumn);
866
+ return _this8.getDataMapAtColumn(physicalColumn);
887
867
  });
888
868
  }
889
869
 
@@ -1015,12 +995,12 @@ export var Filters = /*#__PURE__*/function (_BasePlugin) {
1015
995
  }, {
1016
996
  key: "destroy",
1017
997
  value: function destroy() {
1018
- var _this10 = this;
998
+ var _this9 = this;
1019
999
  if (this.enabled) {
1020
1000
  this.components.forEach(function (component, key) {
1021
1001
  if (component !== null) {
1022
1002
  component.destroy();
1023
- _this10.components.set(key, null);
1003
+ _this9.components.set(key, null);
1024
1004
  }
1025
1005
  });
1026
1006
  this.conditionCollection.destroy();
@@ -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
  /**