handsontable 0.0.0-next-d96e9b5-20240220 → 0.0.0-next-d4816a9-20240221

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of handsontable might be problematic. Click here for more details.

Files changed (89) hide show
  1. package/3rdparty/walkontable/src/cell/range.d.ts +0 -1
  2. package/3rdparty/walkontable/src/cell/range.js +0 -12
  3. package/3rdparty/walkontable/src/cell/range.mjs +0 -12
  4. package/base.js +2 -2
  5. package/base.mjs +2 -2
  6. package/core/viewportScroll/index.js +1 -4
  7. package/core/viewportScroll/index.mjs +1 -4
  8. package/core.js +0 -14
  9. package/core.mjs +0 -14
  10. package/dist/handsontable.css +2 -2
  11. package/dist/handsontable.full.css +2 -2
  12. package/dist/handsontable.full.js +1328 -1606
  13. package/dist/handsontable.full.min.css +2 -2
  14. package/dist/handsontable.full.min.js +151 -151
  15. package/dist/handsontable.js +1328 -1606
  16. package/dist/handsontable.min.css +2 -2
  17. package/dist/handsontable.min.js +19 -19
  18. package/editorManager.js +8 -12
  19. package/editorManager.mjs +8 -12
  20. package/helpers/mixed.js +1 -1
  21. package/helpers/mixed.mjs +1 -1
  22. package/package.json +1 -1
  23. package/pluginHooks.d.ts +0 -1
  24. package/pluginHooks.js +1 -43
  25. package/pluginHooks.mjs +1 -43
  26. package/plugins/collapsibleColumns/collapsibleColumns.js +1 -7
  27. package/plugins/collapsibleColumns/collapsibleColumns.mjs +1 -7
  28. package/plugins/columnSorting/columnSorting.js +0 -6
  29. package/plugins/columnSorting/columnSorting.mjs +0 -6
  30. package/plugins/contextMenu/menu/defaultShortcutsList.js +10 -26
  31. package/plugins/contextMenu/menu/defaultShortcutsList.mjs +10 -26
  32. package/plugins/mergeCells/calculations/selection.js +70 -1
  33. package/plugins/mergeCells/calculations/selection.mjs +70 -1
  34. package/plugins/mergeCells/contextMenuItem/toggleMerge.js +1 -11
  35. package/plugins/mergeCells/contextMenuItem/toggleMerge.mjs +1 -11
  36. package/plugins/mergeCells/mergeCells.js +207 -182
  37. package/plugins/mergeCells/mergeCells.mjs +207 -182
  38. package/plugins/multiColumnSorting/multiColumnSorting.js +0 -6
  39. package/plugins/multiColumnSorting/multiColumnSorting.mjs +0 -6
  40. package/plugins/nestedHeaders/nestedHeaders.js +0 -1
  41. package/plugins/nestedHeaders/nestedHeaders.mjs +0 -1
  42. package/plugins/nestedRows/nestedRows.js +1 -7
  43. package/plugins/nestedRows/nestedRows.mjs +1 -7
  44. package/renderers/checkboxRenderer/checkboxRenderer.js +4 -4
  45. package/renderers/checkboxRenderer/checkboxRenderer.mjs +4 -4
  46. package/selection/highlight/visualSelection.js +0 -2
  47. package/selection/highlight/visualSelection.mjs +0 -2
  48. package/selection/selection.js +34 -195
  49. package/selection/selection.mjs +33 -194
  50. package/selection/transformation.js +30 -45
  51. package/selection/transformation.mjs +30 -45
  52. package/shortcutContexts/commands/editor/closeAndSave.js +2 -2
  53. package/shortcutContexts/commands/editor/closeAndSave.mjs +2 -2
  54. package/shortcutContexts/commands/editor/open.js +3 -18
  55. package/shortcutContexts/commands/editor/open.mjs +3 -18
  56. package/shortcutContexts/commands/extendCellsSelection/down.js +1 -1
  57. package/shortcutContexts/commands/extendCellsSelection/down.mjs +1 -1
  58. package/shortcutContexts/commands/extendCellsSelection/left.js +1 -1
  59. package/shortcutContexts/commands/extendCellsSelection/left.mjs +1 -1
  60. package/shortcutContexts/commands/extendCellsSelection/right.js +1 -1
  61. package/shortcutContexts/commands/extendCellsSelection/right.mjs +1 -1
  62. package/shortcutContexts/commands/extendCellsSelection/toColumns.js +1 -1
  63. package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +1 -1
  64. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +1 -3
  65. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +1 -3
  66. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +3 -9
  67. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +3 -9
  68. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +3 -10
  69. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +3 -10
  70. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +1 -3
  71. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +1 -3
  72. package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +1 -3
  73. package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +1 -3
  74. package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +1 -3
  75. package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +1 -3
  76. package/shortcutContexts/commands/extendCellsSelection/toRows.js +1 -1
  77. package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +1 -1
  78. package/shortcutContexts/commands/extendCellsSelection/up.js +1 -1
  79. package/shortcutContexts/commands/extendCellsSelection/up.mjs +1 -1
  80. package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +1 -6
  81. package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +1 -6
  82. package/shortcutContexts/commands/moveCellSelection/inlineStart.js +1 -6
  83. package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +1 -6
  84. package/shortcutContexts/grid.js +2 -2
  85. package/shortcutContexts/grid.mjs +2 -2
  86. package/shortcuts/context.js +1 -2
  87. package/shortcuts/context.mjs +1 -2
  88. package/core/viewportScroll/scrollStrategies/focusScroll.js +0 -15
  89. package/core/viewportScroll/scrollStrategies/focusScroll.mjs +0 -11
@@ -71,16 +71,16 @@ const SHORTCUTS_GROUP = PLUGIN_KEY;
71
71
  * ```
72
72
  * :::
73
73
  */
74
- var _lastSelectedCoords = /*#__PURE__*/new WeakMap();
74
+ var _lastDesiredCoords = /*#__PURE__*/new WeakMap();
75
75
  var _onAfterInit = /*#__PURE__*/new WeakSet();
76
76
  var _onAfterIsMultipleSelection = /*#__PURE__*/new WeakSet();
77
77
  var _onModifyTransformStart = /*#__PURE__*/new WeakSet();
78
78
  var _onModifyTransformEnd = /*#__PURE__*/new WeakSet();
79
- var _onBeforeSelectionHighlightSet = /*#__PURE__*/new WeakSet();
80
79
  var _onModifyGetCellCoords = /*#__PURE__*/new WeakSet();
81
80
  var _addMergeActionsToContextMenu = /*#__PURE__*/new WeakSet();
82
81
  var _onAfterRenderer = /*#__PURE__*/new WeakSet();
83
82
  var _onBeforeSetRangeStart = /*#__PURE__*/new WeakSet();
83
+ var _onBeforeSetRangeEnd = /*#__PURE__*/new WeakSet();
84
84
  var _onAfterGetCellMeta = /*#__PURE__*/new WeakSet();
85
85
  var _onAfterViewportRowCalculatorOverride = /*#__PURE__*/new WeakSet();
86
86
  var _onAfterViewportColumnCalculatorOverride = /*#__PURE__*/new WeakSet();
@@ -91,6 +91,7 @@ var _onAfterCreateRow = /*#__PURE__*/new WeakSet();
91
91
  var _onAfterRemoveRow = /*#__PURE__*/new WeakSet();
92
92
  var _onAfterChange = /*#__PURE__*/new WeakSet();
93
93
  var _onBeforeDrawAreaBorders = /*#__PURE__*/new WeakSet();
94
+ var _onAfterModifyTransformStart = /*#__PURE__*/new WeakSet();
94
95
  var _onAfterDrawSelection = /*#__PURE__*/new WeakSet();
95
96
  var _onBeforeRemoveCellClassNames = /*#__PURE__*/new WeakSet();
96
97
  var _onBeforeBeginEditing = /*#__PURE__*/new WeakSet();
@@ -126,6 +127,17 @@ export class MergeCells extends BasePlugin {
126
127
  * processed cell.
127
128
  */
128
129
  _classPrivateMethodInitSpec(this, _onAfterDrawSelection);
130
+ /**
131
+ * `afterModifyTransformStart` hook callback. Fixes a problem with navigating through merged cells at the edges of
132
+ * the table with the <kbd>**Enter**</kbd>/<kbd>**Shift**</kbd>+<kbd>**Enter**</kbd>/<kbd>**Tab**</kbd>/<kbd>**Shift**</kbd>+<kbd>**Tab**</kbd> keys.
133
+ *
134
+ * @param {CellCoords} coords Coordinates of the to-be-selected cell.
135
+ * @param {number} rowTransformDir Row transformation direction (negative value = up, 0 = none, positive value =
136
+ * down).
137
+ * @param {number} colTransformDir Column transformation direction (negative value = up, 0 = none, positive value =
138
+ * down).
139
+ */
140
+ _classPrivateMethodInitSpec(this, _onAfterModifyTransformStart);
129
141
  /**
130
142
  * `beforeDrawAreaBorders` hook callback.
131
143
  *
@@ -198,7 +210,20 @@ export class MergeCells extends BasePlugin {
198
210
  */
199
211
  _classPrivateMethodInitSpec(this, _onAfterGetCellMeta);
200
212
  /**
201
- * Clears the last selected coordinates before setting a new selection range.
213
+ * `beforeSetRangeEnd` hook callback.
214
+ * While selecting cells with keyboard or mouse, make sure that rectangular area is expanded to the extent of the
215
+ * merged cell.
216
+ *
217
+ * Note: Please keep in mind that callback may modify both start and end range coordinates by the reference.
218
+ *
219
+ * @param {object} coords Cell coords.
220
+ */
221
+ _classPrivateMethodInitSpec(this, _onBeforeSetRangeEnd);
222
+ /**
223
+ * `beforeSetRangeStart` and `beforeSetRangeStartOnly` hook callback.
224
+ * A selection within merge area should be rewritten to the start of merge area.
225
+ *
226
+ * @param {object} coords Cell coords.
202
227
  */
203
228
  _classPrivateMethodInitSpec(this, _onBeforeSetRangeStart);
204
229
  /**
@@ -223,11 +248,6 @@ export class MergeCells extends BasePlugin {
223
248
  * @returns {Array|undefined} Visual coordinates of the merge.
224
249
  */
225
250
  _classPrivateMethodInitSpec(this, _onModifyGetCellCoords);
226
- /**
227
- * The hook corrects the range (before drawing it) after the selection was made on the merged cells.
228
- * It expands the range to cover the entire area of the selected merged cells.
229
- */
230
- _classPrivateMethodInitSpec(this, _onBeforeSelectionHighlightSet);
231
251
  /**
232
252
  * `modifyTransformEnd` hook callback. Needed to handle "jumping over" merged merged cells, while selecting.
233
253
  *
@@ -274,12 +294,9 @@ export class MergeCells extends BasePlugin {
274
294
  */
275
295
  _defineProperty(this, "selectionCalculations", null);
276
296
  /**
277
- * The holder for the last selected coordinates. This allows keeping the correct coordinates in cases after the
278
- * focus is moved out of the merged cell.
279
- *
280
297
  * @type {CellCoords}
281
298
  */
282
- _classPrivateFieldInitSpec(this, _lastSelectedCoords, {
299
+ _classPrivateFieldInitSpec(this, _lastDesiredCoords, {
283
300
  writable: true,
284
301
  value: null
285
302
  });
@@ -323,130 +340,136 @@ export class MergeCells extends BasePlugin {
323
340
  }
324
341
  return _classPrivateMethodGet(_this, _onModifyTransformStart, _onModifyTransformStart2).call(_this, ...args);
325
342
  });
326
- this.addHook('modifyTransformEnd', function () {
343
+ this.addHook('afterModifyTransformStart', function () {
327
344
  for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
328
345
  args[_key3] = arguments[_key3];
329
346
  }
330
- return _classPrivateMethodGet(_this, _onModifyTransformEnd, _onModifyTransformEnd2).call(_this, ...args);
347
+ return _classPrivateMethodGet(_this, _onAfterModifyTransformStart, _onAfterModifyTransformStart2).call(_this, ...args);
331
348
  });
332
- this.addHook('beforeSelectionHighlightSet', function () {
349
+ this.addHook('modifyTransformEnd', function () {
333
350
  for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
334
351
  args[_key4] = arguments[_key4];
335
352
  }
336
- return _classPrivateMethodGet(_this, _onBeforeSelectionHighlightSet, _onBeforeSelectionHighlightSet2).call(_this, ...args);
353
+ return _classPrivateMethodGet(_this, _onModifyTransformEnd, _onModifyTransformEnd2).call(_this, ...args);
337
354
  });
338
- this.addHook('beforeSetRangeStart', function () {
355
+ this.addHook('modifyGetCellCoords', function () {
339
356
  for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
340
357
  args[_key5] = arguments[_key5];
341
358
  }
342
- return _classPrivateMethodGet(_this, _onBeforeSetRangeStart, _onBeforeSetRangeStart2).call(_this, ...args);
359
+ return _classPrivateMethodGet(_this, _onModifyGetCellCoords, _onModifyGetCellCoords2).call(_this, ...args);
343
360
  });
344
- this.addHook('beforeSetRangeStartOnly', function () {
361
+ this.addHook('beforeSetRangeStart', function () {
345
362
  for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {
346
363
  args[_key6] = arguments[_key6];
347
364
  }
348
365
  return _classPrivateMethodGet(_this, _onBeforeSetRangeStart, _onBeforeSetRangeStart2).call(_this, ...args);
349
366
  });
350
- this.addHook('modifyGetCellCoords', function () {
367
+ this.addHook('beforeSetRangeStartOnly', function () {
351
368
  for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {
352
369
  args[_key7] = arguments[_key7];
353
370
  }
354
- return _classPrivateMethodGet(_this, _onModifyGetCellCoords, _onModifyGetCellCoords2).call(_this, ...args);
371
+ return _classPrivateMethodGet(_this, _onBeforeSetRangeStart, _onBeforeSetRangeStart2).call(_this, ...args);
355
372
  });
356
- this.addHook('afterIsMultipleSelection', function () {
373
+ this.addHook('beforeSetRangeEnd', function () {
357
374
  for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {
358
375
  args[_key8] = arguments[_key8];
359
376
  }
360
- return _classPrivateMethodGet(_this, _onAfterIsMultipleSelection, _onAfterIsMultipleSelection2).call(_this, ...args);
377
+ return _classPrivateMethodGet(_this, _onBeforeSetRangeEnd, _onBeforeSetRangeEnd2).call(_this, ...args);
361
378
  });
362
- this.addHook('afterRenderer', function () {
379
+ this.addHook('afterIsMultipleSelection', function () {
363
380
  for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {
364
381
  args[_key9] = arguments[_key9];
365
382
  }
366
- return _classPrivateMethodGet(_this, _onAfterRenderer, _onAfterRenderer2).call(_this, ...args);
383
+ return _classPrivateMethodGet(_this, _onAfterIsMultipleSelection, _onAfterIsMultipleSelection2).call(_this, ...args);
367
384
  });
368
- this.addHook('afterContextMenuDefaultOptions', function () {
385
+ this.addHook('afterRenderer', function () {
369
386
  for (var _len10 = arguments.length, args = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {
370
387
  args[_key10] = arguments[_key10];
371
388
  }
372
- return _classPrivateMethodGet(_this, _addMergeActionsToContextMenu, _addMergeActionsToContextMenu2).call(_this, ...args);
389
+ return _classPrivateMethodGet(_this, _onAfterRenderer, _onAfterRenderer2).call(_this, ...args);
373
390
  });
374
- this.addHook('afterGetCellMeta', function () {
391
+ this.addHook('afterContextMenuDefaultOptions', function () {
375
392
  for (var _len11 = arguments.length, args = new Array(_len11), _key11 = 0; _key11 < _len11; _key11++) {
376
393
  args[_key11] = arguments[_key11];
377
394
  }
378
- return _classPrivateMethodGet(_this, _onAfterGetCellMeta, _onAfterGetCellMeta2).call(_this, ...args);
395
+ return _classPrivateMethodGet(_this, _addMergeActionsToContextMenu, _addMergeActionsToContextMenu2).call(_this, ...args);
379
396
  });
380
- this.addHook('afterViewportRowCalculatorOverride', function () {
397
+ this.addHook('afterGetCellMeta', function () {
381
398
  for (var _len12 = arguments.length, args = new Array(_len12), _key12 = 0; _key12 < _len12; _key12++) {
382
399
  args[_key12] = arguments[_key12];
383
400
  }
384
- return _classPrivateMethodGet(_this, _onAfterViewportRowCalculatorOverride, _onAfterViewportRowCalculatorOverride2).call(_this, ...args);
401
+ return _classPrivateMethodGet(_this, _onAfterGetCellMeta, _onAfterGetCellMeta2).call(_this, ...args);
385
402
  });
386
- this.addHook('afterViewportColumnCalculatorOverride', function () {
403
+ this.addHook('afterViewportRowCalculatorOverride', function () {
387
404
  for (var _len13 = arguments.length, args = new Array(_len13), _key13 = 0; _key13 < _len13; _key13++) {
388
405
  args[_key13] = arguments[_key13];
389
406
  }
390
- return _classPrivateMethodGet(_this, _onAfterViewportColumnCalculatorOverride, _onAfterViewportColumnCalculatorOverride2).call(_this, ...args);
407
+ return _classPrivateMethodGet(_this, _onAfterViewportRowCalculatorOverride, _onAfterViewportRowCalculatorOverride2).call(_this, ...args);
391
408
  });
392
- this.addHook('modifyAutofillRange', function () {
409
+ this.addHook('afterViewportColumnCalculatorOverride', function () {
393
410
  for (var _len14 = arguments.length, args = new Array(_len14), _key14 = 0; _key14 < _len14; _key14++) {
394
411
  args[_key14] = arguments[_key14];
395
412
  }
396
- return _classPrivateMethodGet(_this, _onModifyAutofillRange, _onModifyAutofillRange2).call(_this, ...args);
413
+ return _classPrivateMethodGet(_this, _onAfterViewportColumnCalculatorOverride, _onAfterViewportColumnCalculatorOverride2).call(_this, ...args);
397
414
  });
398
- this.addHook('afterCreateCol', function () {
415
+ this.addHook('modifyAutofillRange', function () {
399
416
  for (var _len15 = arguments.length, args = new Array(_len15), _key15 = 0; _key15 < _len15; _key15++) {
400
417
  args[_key15] = arguments[_key15];
401
418
  }
402
- return _classPrivateMethodGet(_this, _onAfterCreateCol, _onAfterCreateCol2).call(_this, ...args);
419
+ return _classPrivateMethodGet(_this, _onModifyAutofillRange, _onModifyAutofillRange2).call(_this, ...args);
403
420
  });
404
- this.addHook('afterRemoveCol', function () {
421
+ this.addHook('afterCreateCol', function () {
405
422
  for (var _len16 = arguments.length, args = new Array(_len16), _key16 = 0; _key16 < _len16; _key16++) {
406
423
  args[_key16] = arguments[_key16];
407
424
  }
408
- return _classPrivateMethodGet(_this, _onAfterRemoveCol, _onAfterRemoveCol2).call(_this, ...args);
425
+ return _classPrivateMethodGet(_this, _onAfterCreateCol, _onAfterCreateCol2).call(_this, ...args);
409
426
  });
410
- this.addHook('afterCreateRow', function () {
427
+ this.addHook('afterRemoveCol', function () {
411
428
  for (var _len17 = arguments.length, args = new Array(_len17), _key17 = 0; _key17 < _len17; _key17++) {
412
429
  args[_key17] = arguments[_key17];
413
430
  }
414
- return _classPrivateMethodGet(_this, _onAfterCreateRow, _onAfterCreateRow2).call(_this, ...args);
431
+ return _classPrivateMethodGet(_this, _onAfterRemoveCol, _onAfterRemoveCol2).call(_this, ...args);
415
432
  });
416
- this.addHook('afterRemoveRow', function () {
433
+ this.addHook('afterCreateRow', function () {
417
434
  for (var _len18 = arguments.length, args = new Array(_len18), _key18 = 0; _key18 < _len18; _key18++) {
418
435
  args[_key18] = arguments[_key18];
419
436
  }
420
- return _classPrivateMethodGet(_this, _onAfterRemoveRow, _onAfterRemoveRow2).call(_this, ...args);
437
+ return _classPrivateMethodGet(_this, _onAfterCreateRow, _onAfterCreateRow2).call(_this, ...args);
421
438
  });
422
- this.addHook('afterChange', function () {
439
+ this.addHook('afterRemoveRow', function () {
423
440
  for (var _len19 = arguments.length, args = new Array(_len19), _key19 = 0; _key19 < _len19; _key19++) {
424
441
  args[_key19] = arguments[_key19];
425
442
  }
426
- return _classPrivateMethodGet(_this, _onAfterChange, _onAfterChange2).call(_this, ...args);
443
+ return _classPrivateMethodGet(_this, _onAfterRemoveRow, _onAfterRemoveRow2).call(_this, ...args);
427
444
  });
428
- this.addHook('beforeDrawBorders', function () {
445
+ this.addHook('afterChange', function () {
429
446
  for (var _len20 = arguments.length, args = new Array(_len20), _key20 = 0; _key20 < _len20; _key20++) {
430
447
  args[_key20] = arguments[_key20];
431
448
  }
432
- return _classPrivateMethodGet(_this, _onBeforeDrawAreaBorders, _onBeforeDrawAreaBorders2).call(_this, ...args);
449
+ return _classPrivateMethodGet(_this, _onAfterChange, _onAfterChange2).call(_this, ...args);
433
450
  });
434
- this.addHook('afterDrawSelection', function () {
451
+ this.addHook('beforeDrawBorders', function () {
435
452
  for (var _len21 = arguments.length, args = new Array(_len21), _key21 = 0; _key21 < _len21; _key21++) {
436
453
  args[_key21] = arguments[_key21];
437
454
  }
438
- return _classPrivateMethodGet(_this, _onAfterDrawSelection, _onAfterDrawSelection2).call(_this, ...args);
455
+ return _classPrivateMethodGet(_this, _onBeforeDrawAreaBorders, _onBeforeDrawAreaBorders2).call(_this, ...args);
439
456
  });
440
- this.addHook('beforeRemoveCellClassNames', function () {
457
+ this.addHook('afterDrawSelection', function () {
441
458
  for (var _len22 = arguments.length, args = new Array(_len22), _key22 = 0; _key22 < _len22; _key22++) {
442
459
  args[_key22] = arguments[_key22];
443
460
  }
444
- return _classPrivateMethodGet(_this, _onBeforeRemoveCellClassNames, _onBeforeRemoveCellClassNames2).call(_this, ...args);
461
+ return _classPrivateMethodGet(_this, _onAfterDrawSelection, _onAfterDrawSelection2).call(_this, ...args);
445
462
  });
446
- this.addHook('beforeBeginEditing', function () {
463
+ this.addHook('beforeRemoveCellClassNames', function () {
447
464
  for (var _len23 = arguments.length, args = new Array(_len23), _key23 = 0; _key23 < _len23; _key23++) {
448
465
  args[_key23] = arguments[_key23];
449
466
  }
467
+ return _classPrivateMethodGet(_this, _onBeforeRemoveCellClassNames, _onBeforeRemoveCellClassNames2).call(_this, ...args);
468
+ });
469
+ this.addHook('beforeBeginEditing', function () {
470
+ for (var _len24 = arguments.length, args = new Array(_len24), _key24 = 0; _key24 < _len24; _key24++) {
471
+ args[_key24] = arguments[_key24];
472
+ }
450
473
  return _classPrivateMethodGet(_this, _onBeforeBeginEditing, _onBeforeBeginEditing2).call(_this, ...args);
451
474
  });
452
475
  this.addHook('beforeUndoStackChange', (action, source) => {
@@ -615,6 +638,25 @@ export class MergeCells extends BasePlugin {
615
638
  return auto ? true : this.validateSetting(newMergedCellInfo);
616
639
  }
617
640
 
641
+ /**
642
+ * Merge or unmerge, based on last selected range.
643
+ *
644
+ * @private
645
+ */
646
+ toggleMergeOnSelection() {
647
+ const currentRange = this.hot.getSelectedRangeLast();
648
+ if (!currentRange) {
649
+ return;
650
+ }
651
+ currentRange.setDirection(this.hot.isRtl() ? 'NE-SW' : 'NW-SE');
652
+ const {
653
+ from,
654
+ to
655
+ } = currentRange;
656
+ this.toggleMerge(currentRange);
657
+ this.hot.selectCell(from.row, from.col, to.row, to.col, false);
658
+ }
659
+
618
660
  /**
619
661
  * Merges the selection provided as a cell range.
620
662
  *
@@ -984,10 +1026,8 @@ function _onAfterIsMultipleSelection2(isMultiple) {
984
1026
  if (isMultiple) {
985
1027
  const mergedCells = this.mergedCellsCollection.mergedCells;
986
1028
  const selectionRange = this.hot.getSelectedRangeLast();
987
- const topStartCoords = selectionRange.getTopStartCorner();
988
- const bottomEndCoords = selectionRange.getBottomEndCorner();
989
1029
  for (let group = 0; group < mergedCells.length; group += 1) {
990
- if (topStartCoords.row === mergedCells[group].row && topStartCoords.col === mergedCells[group].col && bottomEndCoords.row === mergedCells[group].row + mergedCells[group].rowspan - 1 && bottomEndCoords.col === mergedCells[group].col + mergedCells[group].colspan - 1) {
1030
+ if (selectionRange.from.row === mergedCells[group].row && selectionRange.from.col === mergedCells[group].col && selectionRange.to.row === mergedCells[group].row + mergedCells[group].rowspan - 1 && selectionRange.to.col === mergedCells[group].col + mergedCells[group].colspan - 1) {
991
1031
  return false;
992
1032
  }
993
1033
  }
@@ -995,140 +1035,75 @@ function _onAfterIsMultipleSelection2(isMultiple) {
995
1035
  return isMultiple;
996
1036
  }
997
1037
  function _onModifyTransformStart2(delta) {
998
- const selectedRange = this.hot.getSelectedRangeLast();
999
- const {
1000
- highlight
1001
- } = selectedRange;
1002
- if (_classPrivateFieldGet(this, _lastSelectedCoords)) {
1003
- highlight.assign(_classPrivateFieldGet(this, _lastSelectedCoords));
1004
- _classPrivateFieldSet(this, _lastSelectedCoords, null);
1038
+ const currentlySelectedRange = this.hot.getSelectedRangeLast();
1039
+ let newDelta = {
1040
+ row: delta.row,
1041
+ col: delta.col
1042
+ };
1043
+ let nextPosition = null;
1044
+ const currentPosition = this.hot._createCellCoords(currentlySelectedRange.highlight.row, currentlySelectedRange.highlight.col);
1045
+ const mergedParent = this.mergedCellsCollection.get(currentPosition.row, currentPosition.col);
1046
+ if (!_classPrivateFieldGet(this, _lastDesiredCoords)) {
1047
+ _classPrivateFieldSet(this, _lastDesiredCoords, this.hot._createCellCoords(null, null));
1005
1048
  }
1006
- const mergedParent = this.mergedCellsCollection.get(highlight.row, highlight.col);
1007
- if (!mergedParent) {
1008
- return;
1009
- }
1010
- const visualColumnIndexStart = mergedParent.col;
1011
- const visualColumnIndexEnd = mergedParent.col + mergedParent.colspan - 1;
1012
- if (delta.col < 0) {
1013
- const nextColumn = highlight.col >= visualColumnIndexStart && highlight.col <= visualColumnIndexEnd ? visualColumnIndexStart - 1 : visualColumnIndexEnd;
1014
- const notHiddenColumnIndex = this.hot.columnIndexMapper.getNearestNotHiddenIndex(nextColumn, -1);
1015
- if (notHiddenColumnIndex === null) {
1016
- // There are no visible columns anymore, so move the selection out of the table edge. This will
1017
- // be processed by the selection Transformer class as a move selection to the previous row (if autoWrapRow is enabled).
1018
- delta.col = -this.hot.view.countRenderableColumnsInRange(0, highlight.col);
1019
- } else {
1020
- delta.col = -Math.max(this.hot.view.countRenderableColumnsInRange(notHiddenColumnIndex, highlight.col) - 1, 1);
1021
- }
1022
- } else if (delta.col > 0) {
1023
- const nextColumn = highlight.col >= visualColumnIndexStart && highlight.col <= visualColumnIndexEnd ? visualColumnIndexEnd + 1 : visualColumnIndexStart;
1024
- const notHiddenColumnIndex = this.hot.columnIndexMapper.getNearestNotHiddenIndex(nextColumn, 1);
1025
- if (notHiddenColumnIndex === null) {
1026
- // There are no visible columns anymore, so move the selection out of the table edge. This will
1027
- // be processed by the selection Transformer class as a move selection to the next row (if autoWrapRow is enabled).
1028
- delta.col = this.hot.view.countRenderableColumnsInRange(highlight.col, this.hot.countCols());
1029
- } else {
1030
- delta.col = Math.max(this.hot.view.countRenderableColumnsInRange(highlight.col, notHiddenColumnIndex) - 1, 1);
1049
+ if (mergedParent) {
1050
+ // only merge selected
1051
+ const mergeTopLeft = this.hot._createCellCoords(mergedParent.row, mergedParent.col);
1052
+ const mergeBottomRight = this.hot._createCellCoords(mergedParent.row + mergedParent.rowspan - 1, mergedParent.col + mergedParent.colspan - 1);
1053
+ const mergeRange = this.hot._createCellRange(mergeTopLeft, mergeTopLeft, mergeBottomRight);
1054
+ if (!mergeRange.includes(_classPrivateFieldGet(this, _lastDesiredCoords))) {
1055
+ _classPrivateFieldSet(this, _lastDesiredCoords, this.hot._createCellCoords(null, null)); // reset outdated version of lastDesiredCoords
1031
1056
  }
1032
- }
1033
- const visualRowIndexStart = mergedParent.row;
1034
- const visualRowIndexEnd = mergedParent.row + mergedParent.rowspan - 1;
1035
- if (delta.row < 0) {
1036
- const nextRow = highlight.row >= visualRowIndexStart && highlight.row <= visualRowIndexEnd ? visualRowIndexStart - 1 : visualRowIndexEnd;
1037
- const notHiddenRowIndex = this.hot.rowIndexMapper.getNearestNotHiddenIndex(nextRow, -1);
1038
- if (notHiddenRowIndex === null) {
1039
- // There are no visible rows anymore, so move the selection out of the table edge. This will
1040
- // be processed by the selection Transformer class as a move selection to the previous column (if autoWrapCol is enabled).
1041
- delta.row = -this.hot.view.countRenderableRowsInRange(0, highlight.row);
1042
- } else {
1043
- delta.row = -Math.max(this.hot.view.countRenderableRowsInRange(notHiddenRowIndex, highlight.row) - 1, 1);
1057
+ newDelta.row = _classPrivateFieldGet(this, _lastDesiredCoords).row ? _classPrivateFieldGet(this, _lastDesiredCoords).row - currentPosition.row : newDelta.row;
1058
+ newDelta.col = _classPrivateFieldGet(this, _lastDesiredCoords).col ? _classPrivateFieldGet(this, _lastDesiredCoords).col - currentPosition.col : newDelta.col;
1059
+ if (delta.row > 0) {
1060
+ // moving down
1061
+ newDelta.row = mergedParent.row + mergedParent.rowspan - 1 - currentPosition.row + delta.row;
1062
+ } else if (delta.row < 0) {
1063
+ // moving up
1064
+ newDelta.row = currentPosition.row - mergedParent.row + delta.row;
1044
1065
  }
1045
- } else if (delta.row > 0) {
1046
- const nextRow = highlight.row >= visualRowIndexStart && highlight.row <= visualRowIndexEnd ? visualRowIndexEnd + 1 : visualRowIndexStart;
1047
- const notHiddenRowIndex = this.hot.rowIndexMapper.getNearestNotHiddenIndex(nextRow, 1);
1048
- if (notHiddenRowIndex === null) {
1049
- // There are no visible rows anymore, so move the selection out of the table edge. This will
1050
- // be processed by the selection Transformer class as a move selection to the next column (if autoWrapCol is enabled).
1051
- delta.row = this.hot.view.countRenderableRowsInRange(highlight.row, this.hot.countRows());
1052
- } else {
1053
- delta.row = Math.max(this.hot.view.countRenderableRowsInRange(highlight.row, notHiddenRowIndex) - 1, 1);
1066
+ if (delta.col > 0) {
1067
+ // moving right
1068
+ newDelta.col = mergedParent.col + mergedParent.colspan - 1 - currentPosition.col + delta.col;
1069
+ } else if (delta.col < 0) {
1070
+ // moving left
1071
+ newDelta.col = currentPosition.col - mergedParent.col + delta.col;
1054
1072
  }
1055
1073
  }
1056
- }
1057
- function _onModifyTransformEnd2(delta) {
1058
- const selectedRange = this.hot.getSelectedRangeLast();
1059
- const {
1060
- to
1061
- } = selectedRange;
1062
- const nextTo = this.hot._createCellCoords(to.row + delta.row, to.col + delta.col);
1063
- const mergedParentCurrent = this.mergedCellsCollection.get(to.row, to.col);
1064
- const mergedParentNext = this.mergedCellsCollection.get(nextTo.row, nextTo.col);
1065
- if (!(mergedParentCurrent && mergedParentNext && mergedParentCurrent === mergedParentNext)) {
1066
- return;
1074
+ nextPosition = this.hot._createCellCoords(currentlySelectedRange.highlight.row + newDelta.row, currentlySelectedRange.highlight.col + newDelta.col);
1075
+ const nextPositionMergedCell = this.mergedCellsCollection.get(nextPosition.row, nextPosition.col);
1076
+ if (nextPositionMergedCell) {
1077
+ // skipping the invisible cells in the merge range
1078
+ const firstRenderableCoords = this.mergedCellsCollection.getFirstRenderableCoords(nextPositionMergedCell.row, nextPositionMergedCell.col);
1079
+ _classPrivateFieldSet(this, _lastDesiredCoords, nextPosition);
1080
+ newDelta = {
1081
+ row: firstRenderableCoords.row - currentPosition.row,
1082
+ col: firstRenderableCoords.col - currentPosition.col
1083
+ };
1067
1084
  }
1068
- const visualColumnIndexStart = mergedParentCurrent.col;
1069
- const visualColumnIndexEnd = mergedParentCurrent.col + mergedParentCurrent.colspan - 1;
1070
- if (delta.col < 0) {
1071
- const nextColumn = nextTo.col >= visualColumnIndexStart && nextTo.col <= visualColumnIndexEnd ? visualColumnIndexStart - 1 : visualColumnIndexEnd;
1072
- const notHiddenColumnIndex = this.hot.columnIndexMapper.getNearestNotHiddenIndex(nextColumn, -1);
1073
- if (notHiddenColumnIndex === null) {
1074
- // There are no visible columns anymore, so move the selection out of the table edge. This will
1075
- // be processed by the selection Transformer class as a move selection to the previous row (if autoWrapRow is enabled).
1076
- delta.col = -this.hot.view.countRenderableColumnsInRange(0, to.col);
1077
- } else {
1078
- delta.col = -Math.max(this.hot.view.countRenderableColumnsInRange(notHiddenColumnIndex, to.col) - 1, 1);
1079
- }
1080
- } else if (delta.col > 0) {
1081
- const nextColumn = nextTo.col >= visualColumnIndexStart && nextTo.col <= visualColumnIndexEnd ? visualColumnIndexEnd + 1 : visualColumnIndexStart;
1082
- const notHiddenColumnIndex = this.hot.columnIndexMapper.getNearestNotHiddenIndex(nextColumn, 1);
1083
- if (notHiddenColumnIndex === null) {
1084
- // There are no visible columns anymore, so move the selection out of the table edge. This will
1085
- // be processed by the selection Transformer class as a move selection to the next row (if autoWrapRow is enabled).
1086
- delta.col = this.hot.view.countRenderableColumnsInRange(to.col, this.hot.countCols());
1087
- } else {
1088
- delta.col = Math.max(this.hot.view.countRenderableColumnsInRange(to.col, notHiddenColumnIndex) - 1, 1);
1089
- }
1085
+ if (newDelta.row !== 0) {
1086
+ delta.row = newDelta.row;
1090
1087
  }
1091
- const visualRowIndexStart = mergedParentCurrent.row;
1092
- const visualRowIndexEnd = mergedParentCurrent.row + mergedParentCurrent.rowspan - 1;
1093
- if (delta.row < 0) {
1094
- const nextRow = nextTo.row >= visualRowIndexStart && nextTo.row <= visualRowIndexEnd ? visualRowIndexStart - 1 : visualRowIndexEnd;
1095
- const notHiddenRowIndex = this.hot.rowIndexMapper.getNearestNotHiddenIndex(nextRow, -1);
1096
- if (notHiddenRowIndex === null) {
1097
- // There are no visible rows anymore, so move the selection out of the table edge. This will
1098
- // be processed by the selection Transformer class as a move selection to the previous column (if autoWrapCol is enabled).
1099
- delta.row = -this.hot.view.countRenderableRowsInRange(0, to.row);
1100
- } else {
1101
- delta.row = -Math.max(this.hot.view.countRenderableRowsInRange(notHiddenRowIndex, to.row) - 1, 1);
1102
- }
1103
- } else if (delta.row > 0) {
1104
- const nextRow = nextTo.row >= visualRowIndexStart && nextTo.row <= visualRowIndexEnd ? visualRowIndexEnd + 1 : visualRowIndexStart;
1105
- const notHiddenRowIndex = this.hot.rowIndexMapper.getNearestNotHiddenIndex(nextRow, 1);
1106
- if (notHiddenRowIndex === null) {
1107
- // There are no visible rows anymore, so move the selection out of the table edge. This will
1108
- // be processed by the selection Transformer class as a move selection to the next column (if autoWrapCol is enabled).
1109
- delta.row = this.hot.view.countRenderableRowsInRange(to.row, this.hot.countRows());
1110
- } else {
1111
- delta.row = Math.max(this.hot.view.countRenderableRowsInRange(to.row, notHiddenRowIndex) - 1, 1);
1112
- }
1088
+ if (newDelta.col !== 0) {
1089
+ delta.col = newDelta.col;
1113
1090
  }
1114
1091
  }
1115
- function _onBeforeSelectionHighlightSet2() {
1116
- if (this.hot.selection.isSelectedByColumnHeader() || this.hot.selection.isSelectedByRowHeader()) {
1117
- return;
1118
- }
1119
- const selectedRange = this.hot.getSelectedRangeLast();
1120
- const {
1121
- highlight
1122
- } = selectedRange;
1123
- for (let i = 0; i < this.mergedCellsCollection.mergedCells.length; i += 1) {
1124
- const cellInfo = this.mergedCellsCollection.mergedCells[i];
1125
- selectedRange.expandByRange(cellInfo.getRange());
1126
- }
1127
- const mergedParent = this.mergedCellsCollection.get(highlight.row, highlight.col);
1128
- _classPrivateFieldSet(this, _lastSelectedCoords, highlight.clone());
1129
- if (mergedParent) {
1130
- highlight.assign(mergedParent);
1131
- }
1092
+ function _onModifyTransformEnd2(delta) {
1093
+ const currentSelectionRange = this.hot.getSelectedRangeLast();
1094
+ const newDelta = clone(delta);
1095
+ const newSelectionRange = this.selectionCalculations.getUpdatedSelectionRange(currentSelectionRange, delta);
1096
+ let tempDelta = clone(newDelta);
1097
+ const mergedCellsWithinRange = this.mergedCellsCollection.getWithinRange(newSelectionRange, true);
1098
+ do {
1099
+ tempDelta = clone(newDelta);
1100
+ this.selectionCalculations.getUpdatedSelectionRange(currentSelectionRange, newDelta);
1101
+ arrayEach(mergedCellsWithinRange, mergedCell => {
1102
+ this.selectionCalculations.snapDelta(newDelta, currentSelectionRange, mergedCell);
1103
+ });
1104
+ } while (newDelta.row !== tempDelta.row || newDelta.col !== tempDelta.col);
1105
+ delta.row = newDelta.row;
1106
+ delta.col = newDelta.col;
1132
1107
  }
1133
1108
  function _onModifyGetCellCoords2(row, column) {
1134
1109
  if (row < 0 || column < 0) {
@@ -1187,8 +1162,37 @@ function _onAfterRenderer2(TD, row, col) {
1187
1162
  }
1188
1163
  applySpanProperties(TD, mergedCellCopy, row, col);
1189
1164
  }
1190
- function _onBeforeSetRangeStart2() {
1191
- _classPrivateFieldSet(this, _lastSelectedCoords, null);
1165
+ function _onBeforeSetRangeStart2(coords) {
1166
+ // TODO: It is a workaround, but probably this hook may be needed. Every selection on the merge area
1167
+ // could set start point of the selection to the start of the merge area. However, logic inside `expandByRange` need
1168
+ // an initial start point. Click on the merge cell when there are some hidden indexes break the logic in some cases.
1169
+ // Please take a look at #7010 for more information. I'm not sure if selection directions are calculated properly
1170
+ // and what was idea for flipping direction inside `expandByRange` method.
1171
+ if (this.mergedCellsCollection.isFirstRenderableMergedCell(coords.row, coords.col)) {
1172
+ const mergeParent = this.mergedCellsCollection.get(coords.row, coords.col);
1173
+ [coords.row, coords.col] = [mergeParent.row, mergeParent.col];
1174
+ }
1175
+ }
1176
+ function _onBeforeSetRangeEnd2(coords) {
1177
+ const selRange = this.hot.getSelectedRangeLast();
1178
+ selRange.highlight = this.hot._createCellCoords(selRange.highlight.row, selRange.highlight.col); // clone in case we will modify its reference
1179
+ selRange.to = coords;
1180
+ let rangeExpanded = false;
1181
+ if (this.hot.selection.isSelectedByColumnHeader() || this.hot.selection.isSelectedByRowHeader()) {
1182
+ return;
1183
+ }
1184
+ do {
1185
+ rangeExpanded = false;
1186
+ for (let i = 0; i < this.mergedCellsCollection.mergedCells.length; i += 1) {
1187
+ const cellInfo = this.mergedCellsCollection.mergedCells[i];
1188
+ const mergedCellRange = cellInfo.getRange();
1189
+ if (selRange.expandByRange(mergedCellRange)) {
1190
+ coords.row = selRange.to.row;
1191
+ coords.col = selRange.to.col;
1192
+ rangeExpanded = true;
1193
+ }
1194
+ }
1195
+ } while (rangeExpanded);
1192
1196
  }
1193
1197
  function _onAfterGetCellMeta2(row, col, cellProperties) {
1194
1198
  const mergeParent = this.mergedCellsCollection.get(row, col);
@@ -1268,6 +1272,27 @@ function _onBeforeDrawAreaBorders2(corners, className) {
1268
1272
  });
1269
1273
  }
1270
1274
  }
1275
+ function _onAfterModifyTransformStart2(coords, rowTransformDir, colTransformDir) {
1276
+ if (!this.enabled) {
1277
+ return;
1278
+ }
1279
+ const mergedCellAtCoords = this.mergedCellsCollection.get(coords.row, coords.col);
1280
+ if (!mergedCellAtCoords) {
1281
+ return;
1282
+ }
1283
+ const goingDown = rowTransformDir > 0;
1284
+ const goingUp = rowTransformDir < 0;
1285
+ const goingLeft = colTransformDir < 0;
1286
+ const goingRight = colTransformDir > 0;
1287
+ const mergedCellOnBottomEdge = mergedCellAtCoords.row + mergedCellAtCoords.rowspan - 1 === this.hot.countRows() - 1;
1288
+ const mergedCellOnTopEdge = mergedCellAtCoords.row === 0;
1289
+ const mergedCellOnRightEdge = mergedCellAtCoords.col + mergedCellAtCoords.colspan - 1 === this.hot.countCols() - 1;
1290
+ const mergedCellOnLeftEdge = mergedCellAtCoords.col === 0;
1291
+ if (goingDown && mergedCellOnBottomEdge || goingUp && mergedCellOnTopEdge || goingRight && mergedCellOnRightEdge || goingLeft && mergedCellOnLeftEdge) {
1292
+ coords.row = mergedCellAtCoords.row;
1293
+ coords.col = mergedCellAtCoords.col;
1294
+ }
1295
+ }
1271
1296
  function _onAfterDrawSelection2(currentRow, currentColumn, cornersOfSelection, layerLevel) {
1272
1297
  // Nothing's selected (hook might be triggered by the custom borders)
1273
1298
  if (!cornersOfSelection) {
@@ -9,7 +9,6 @@ var _element = require("../../helpers/dom/element");
9
9
  var _rootComparator = require("./rootComparator");
10
10
  var _utils2 = require("./utils");
11
11
  var _domHelpers = require("./domHelpers");
12
- var _shortcutContexts = require("../../shortcutContexts");
13
12
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
14
13
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
15
14
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
@@ -131,17 +130,12 @@ class MultiColumnSorting extends _columnSorting.ColumnSorting {
131
130
  if (highlight.row === -1 && highlight.col >= 0) {
132
131
  this.sort(this.getNextSortConfig(highlight.col, _columnSorting.APPEND_COLUMN_CONFIG_STRATEGY));
133
132
  }
134
-
135
- // prevent default Enter behavior (move to the next row within a selection range)
136
- return false;
137
133
  },
138
134
  runOnlyIf: () => {
139
135
  var _this$hot$getSelected;
140
136
  const highlight = (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight;
141
137
  return highlight && this.hot.selection.isCellVisible(highlight) && highlight.isHeader();
142
138
  },
143
- relativeToGroup: _shortcutContexts.EDITOR_EDIT_GROUP,
144
- position: 'before',
145
139
  group: SHORTCUTS_GROUP
146
140
  });
147
141
  }
@@ -9,7 +9,6 @@ import { addClass, removeClass } from "../../helpers/dom/element.mjs";
9
9
  import { rootComparator } from "./rootComparator.mjs";
10
10
  import { warnAboutPluginsConflict } from "./utils.mjs";
11
11
  import { getClassesToAdd, getClassesToRemove } from "./domHelpers.mjs";
12
- import { EDITOR_EDIT_GROUP as SHORTCUTS_GROUP_EDITOR } from "../../shortcutContexts/index.mjs";
13
12
  export const PLUGIN_KEY = 'multiColumnSorting';
14
13
  export const PLUGIN_PRIORITY = 170;
15
14
  const CONFLICTED_PLUGIN_KEY = 'columnSorting';
@@ -128,17 +127,12 @@ export class MultiColumnSorting extends ColumnSorting {
128
127
  if (highlight.row === -1 && highlight.col >= 0) {
129
128
  this.sort(this.getNextSortConfig(highlight.col, APPEND_COLUMN_CONFIG_STRATEGY));
130
129
  }
131
-
132
- // prevent default Enter behavior (move to the next row within a selection range)
133
- return false;
134
130
  },
135
131
  runOnlyIf: () => {
136
132
  var _this$hot$getSelected;
137
133
  const highlight = (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight;
138
134
  return highlight && this.hot.selection.isCellVisible(highlight) && highlight.isHeader();
139
135
  },
140
- relativeToGroup: SHORTCUTS_GROUP_EDITOR,
141
- position: 'before',
142
136
  group: SHORTCUTS_GROUP
143
137
  });
144
138
  }
@@ -364,7 +364,6 @@ class NestedHeaders extends _base.BasePlugin {
364
364
  return _classPrivateMethodGet(_this, _onModifyTransformStart, _onModifyTransformStart2).call(_this, ...args);
365
365
  });
366
366
  this.addHook('afterSelection', () => _classPrivateMethodGet(this, _updateFocusHighlightPosition, _updateFocusHighlightPosition2).call(this));
367
- this.addHook('afterSelectionFocusSet', () => _classPrivateMethodGet(this, _updateFocusHighlightPosition, _updateFocusHighlightPosition2).call(this));
368
367
  this.addHook('beforeViewportScrollHorizontally', function () {
369
368
  for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {
370
369
  args[_key8] = arguments[_key8];