handsontable 0.0.0-next-a2cc849-20240208 → 0.0.0-next-fd66c90-20240209

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 (59) 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 +1022 -1304
  13. package/dist/handsontable.full.min.css +2 -2
  14. package/dist/handsontable.full.min.js +151 -151
  15. package/dist/handsontable.js +1024 -1306
  16. package/dist/handsontable.min.css +2 -2
  17. package/dist/handsontable.min.js +32 -32
  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/mergeCells.js +1 -3
  33. package/plugins/mergeCells/mergeCells.mjs +1 -3
  34. package/plugins/multiColumnSorting/multiColumnSorting.js +0 -6
  35. package/plugins/multiColumnSorting/multiColumnSorting.mjs +0 -6
  36. package/plugins/nestedHeaders/nestedHeaders.js +0 -1
  37. package/plugins/nestedHeaders/nestedHeaders.mjs +0 -1
  38. package/plugins/nestedRows/nestedRows.js +1 -7
  39. package/plugins/nestedRows/nestedRows.mjs +1 -7
  40. package/renderers/checkboxRenderer/checkboxRenderer.js +4 -4
  41. package/renderers/checkboxRenderer/checkboxRenderer.mjs +4 -4
  42. package/selection/selection.js +30 -156
  43. package/selection/selection.mjs +29 -155
  44. package/selection/transformation.js +27 -18
  45. package/selection/transformation.mjs +27 -18
  46. package/shortcutContexts/commands/editor/closeAndSave.js +2 -2
  47. package/shortcutContexts/commands/editor/closeAndSave.mjs +2 -2
  48. package/shortcutContexts/commands/editor/open.js +3 -18
  49. package/shortcutContexts/commands/editor/open.mjs +3 -18
  50. package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +1 -6
  51. package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +1 -6
  52. package/shortcutContexts/commands/moveCellSelection/inlineStart.js +1 -6
  53. package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +1 -6
  54. package/shortcutContexts/grid.js +2 -2
  55. package/shortcutContexts/grid.mjs +2 -2
  56. package/shortcuts/context.js +1 -2
  57. package/shortcuts/context.mjs +1 -2
  58. package/core/viewportScroll/scrollStrategies/focusScroll.js +0 -15
  59. package/core/viewportScroll/scrollStrategies/focusScroll.mjs +0 -11
package/editorManager.js CHANGED
@@ -318,22 +318,18 @@ class EditorManager {
318
318
  }
319
319
 
320
320
  /**
321
- * Controls selection's behavior after clicking `Enter`.
321
+ * Controls selection's behaviour after clicking `Enter`.
322
322
  *
323
323
  * @private
324
- * @param {KeyboardEvent} event The keyboard event object.
324
+ * @param {boolean} isShiftPressed If `true`, then the selection will move up after hit enter.
325
325
  */
326
- moveSelectionAfterEnter(event) {
327
- const enterMoves = {
328
- ...(typeof this.tableMeta.enterMoves === 'function' ? this.tableMeta.enterMoves(event) : this.tableMeta.enterMoves)
329
- };
330
- if (event.shiftKey) {
331
- enterMoves.row = -enterMoves.row;
332
- enterMoves.col = -enterMoves.col;
333
- }
334
- if (this.hot.selection.isMultiple()) {
335
- this.selection.transformFocus(enterMoves.row, enterMoves.col);
326
+ moveSelectionAfterEnter(isShiftPressed) {
327
+ const enterMoves = typeof this.tableMeta.enterMoves === 'function' ? this.tableMeta.enterMoves(event) : this.tableMeta.enterMoves;
328
+ if (isShiftPressed) {
329
+ // move selection up
330
+ this.selection.transformStart(-enterMoves.row, -enterMoves.col);
336
331
  } else {
332
+ // move selection down (add a new row if needed)
337
333
  this.selection.transformStart(enterMoves.row, enterMoves.col, true);
338
334
  }
339
335
  }
package/editorManager.mjs CHANGED
@@ -314,22 +314,18 @@ class EditorManager {
314
314
  }
315
315
 
316
316
  /**
317
- * Controls selection's behavior after clicking `Enter`.
317
+ * Controls selection's behaviour after clicking `Enter`.
318
318
  *
319
319
  * @private
320
- * @param {KeyboardEvent} event The keyboard event object.
320
+ * @param {boolean} isShiftPressed If `true`, then the selection will move up after hit enter.
321
321
  */
322
- moveSelectionAfterEnter(event) {
323
- const enterMoves = {
324
- ...(typeof this.tableMeta.enterMoves === 'function' ? this.tableMeta.enterMoves(event) : this.tableMeta.enterMoves)
325
- };
326
- if (event.shiftKey) {
327
- enterMoves.row = -enterMoves.row;
328
- enterMoves.col = -enterMoves.col;
329
- }
330
- if (this.hot.selection.isMultiple()) {
331
- this.selection.transformFocus(enterMoves.row, enterMoves.col);
322
+ moveSelectionAfterEnter(isShiftPressed) {
323
+ const enterMoves = typeof this.tableMeta.enterMoves === 'function' ? this.tableMeta.enterMoves(event) : this.tableMeta.enterMoves;
324
+ if (isShiftPressed) {
325
+ // move selection up
326
+ this.selection.transformStart(-enterMoves.row, -enterMoves.col);
332
327
  } else {
328
+ // move selection down (add a new row if needed)
333
329
  this.selection.transformStart(enterMoves.row, enterMoves.col, true);
334
330
  }
335
331
  }
package/helpers/mixed.js CHANGED
@@ -134,7 +134,7 @@ const domMessages = {
134
134
  function _injectProductInfo(key, element) {
135
135
  const hasValidType = !isEmpty(key);
136
136
  const isNonCommercial = typeof key === 'string' && key.toLowerCase() === 'non-commercial-and-evaluation';
137
- const hotVersion = "0.0.0-next-a2cc849-20240208";
137
+ const hotVersion = "0.0.0-next-fd66c90-20240209";
138
138
  let keyValidityDate;
139
139
  let consoleMessageState = 'invalid';
140
140
  let domMessageState = 'invalid';
package/helpers/mixed.mjs CHANGED
@@ -124,7 +124,7 @@ const domMessages = {
124
124
  export function _injectProductInfo(key, element) {
125
125
  const hasValidType = !isEmpty(key);
126
126
  const isNonCommercial = typeof key === 'string' && key.toLowerCase() === 'non-commercial-and-evaluation';
127
- const hotVersion = "0.0.0-next-a2cc849-20240208";
127
+ const hotVersion = "0.0.0-next-fd66c90-20240209";
128
128
  let keyValidityDate;
129
129
  let consoleMessageState = 'invalid';
130
130
  let domMessageState = 'invalid';
package/package.json CHANGED
@@ -10,7 +10,7 @@
10
10
  "url": "https://github.com/handsontable/handsontable/issues"
11
11
  },
12
12
  "author": "Handsoncode <hello@handsontable.com>",
13
- "version": "0.0.0-next-a2cc849-20240208",
13
+ "version": "0.0.0-next-fd66c90-20240209",
14
14
  "main": "index",
15
15
  "module": "index.mjs",
16
16
  "jsnext:main": "index.mjs",
package/pluginHooks.d.ts CHANGED
@@ -133,7 +133,6 @@ export interface Events {
133
133
  afterSelectionByProp?: (row: number, prop: string, row2: number, prop2: string, preventScrolling: { value: boolean }, selectionLayerLevel: number) => void;
134
134
  afterSelectionEnd?: (row: number, column: number, row2: number, column2: number, selectionLayerLevel: number) => void;
135
135
  afterSelectionEndByProp?: (row: number, prop: string, row2: number, prop2: string, selectionLayerLevel: number) => void;
136
- afterSelectionFocusSet?: (row: number, column: number, preventScrolling: { value: boolean }) => void;
137
136
  afterSelectRows?: (from: CellCoords, to: CellCoords, highlight: CellCoords) => void;
138
137
  afterSetCellMeta?: (row: number, column: number, key: string, value: any) => void;
139
138
  afterSetDataAtCell?: (changes: CellChange[], source?: ChangeSource) => void;
package/pluginHooks.js CHANGED
@@ -650,9 +650,7 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
650
650
  * @param {string} prop Selection start data source object property name.
651
651
  * @param {number} row2 Selection end visual row index.
652
652
  * @param {string} prop2 Selection end data source object property name.
653
- * @param {object} preventScrolling A reference to the observable object with the `value` property.
654
- * Property `preventScrolling.value` expects a boolean value that
655
- * Handsontable uses to control scroll behavior after selection.
653
+ * @param {object} preventScrolling Object with `value` property where its value change will be observed.
656
654
  * @param {number} selectionLayerLevel The number which indicates what selection layer is currently modified.
657
655
  * @example
658
656
  * ```js
@@ -702,46 +700,6 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
702
700
  * @param {number} selectionLayerLevel The number which indicates what selection layer is currently modified.
703
701
  */
704
702
  'afterSelectionEndByProp',
705
- /**
706
- * Fired after the focus position within a selected range is changed.
707
- *
708
- * @since 14.2.0
709
- * @event Hooks#afterSelectionFocusSet
710
- * @param {number} row The focus visual row index position.
711
- * @param {number} column The focus visual column index position.
712
- * @param {object} preventScrolling A reference to the observable object with the `value` property.
713
- * Property `preventScrolling.value` expects a boolean value that
714
- * Handsontable uses to control scroll behavior after selection.
715
- * @example
716
- * ```js
717
- * ::: only-for javascript
718
- * new Handsontable(element, {
719
- * afterSelectionFocusSet: (row, column, preventScrolling) => {
720
- * // If set to `false` (default): when focused cell selection is outside the viewport,
721
- * // Handsontable scrolls the viewport to that cell.
722
- * // If set to `true`: when focused cell selection is outside the viewport,
723
- * // Handsontable doesn't scroll the viewport.
724
- * preventScrolling.value = true;
725
- * }
726
- * })
727
- * ```
728
- * :::
729
- *
730
- * ::: only-for react
731
- * ```jsx
732
- * <HotTable
733
- * afterSelectionFocusSet={(row, column, preventScrolling) => {
734
- * // If set to `false` (default): when focused cell selection is outside the viewport,
735
- * // Handsontable scrolls the viewport to that cell.
736
- * // If set to `true`: when focused cell selection is outside the viewport,
737
- * // Handsontable doesn't scroll the viewport.
738
- * preventScrolling.value = true;
739
- * }}
740
- * />
741
- * ```
742
- * :::
743
- */
744
- 'afterSelectionFocusSet',
745
703
  /**
746
704
  * Fired before one or more columns are selected (e.g. During mouse header click or {@link Core#selectColumns} API call).
747
705
  *
package/pluginHooks.mjs CHANGED
@@ -646,9 +646,7 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
646
646
  * @param {string} prop Selection start data source object property name.
647
647
  * @param {number} row2 Selection end visual row index.
648
648
  * @param {string} prop2 Selection end data source object property name.
649
- * @param {object} preventScrolling A reference to the observable object with the `value` property.
650
- * Property `preventScrolling.value` expects a boolean value that
651
- * Handsontable uses to control scroll behavior after selection.
649
+ * @param {object} preventScrolling Object with `value` property where its value change will be observed.
652
650
  * @param {number} selectionLayerLevel The number which indicates what selection layer is currently modified.
653
651
  * @example
654
652
  * ```js
@@ -698,46 +696,6 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
698
696
  * @param {number} selectionLayerLevel The number which indicates what selection layer is currently modified.
699
697
  */
700
698
  'afterSelectionEndByProp',
701
- /**
702
- * Fired after the focus position within a selected range is changed.
703
- *
704
- * @since 14.2.0
705
- * @event Hooks#afterSelectionFocusSet
706
- * @param {number} row The focus visual row index position.
707
- * @param {number} column The focus visual column index position.
708
- * @param {object} preventScrolling A reference to the observable object with the `value` property.
709
- * Property `preventScrolling.value` expects a boolean value that
710
- * Handsontable uses to control scroll behavior after selection.
711
- * @example
712
- * ```js
713
- * ::: only-for javascript
714
- * new Handsontable(element, {
715
- * afterSelectionFocusSet: (row, column, preventScrolling) => {
716
- * // If set to `false` (default): when focused cell selection is outside the viewport,
717
- * // Handsontable scrolls the viewport to that cell.
718
- * // If set to `true`: when focused cell selection is outside the viewport,
719
- * // Handsontable doesn't scroll the viewport.
720
- * preventScrolling.value = true;
721
- * }
722
- * })
723
- * ```
724
- * :::
725
- *
726
- * ::: only-for react
727
- * ```jsx
728
- * <HotTable
729
- * afterSelectionFocusSet={(row, column, preventScrolling) => {
730
- * // If set to `false` (default): when focused cell selection is outside the viewport,
731
- * // Handsontable scrolls the viewport to that cell.
732
- * // If set to `true`: when focused cell selection is outside the viewport,
733
- * // Handsontable doesn't scroll the viewport.
734
- * preventScrolling.value = true;
735
- * }}
736
- * />
737
- * ```
738
- * :::
739
- */
740
- 'afterSelectionFocusSet',
741
699
  /**
742
700
  * Fired before one or more columns are selected (e.g. During mouse header click or {@link Core#selectColumns} API call).
743
701
  *
@@ -9,7 +9,6 @@ var _number = require("../../helpers/number");
9
9
  var _console = require("../../helpers/console");
10
10
  var _element = require("../../helpers/dom/element");
11
11
  var _event = require("../../helpers/dom/event");
12
- var _shortcutContexts = require("../../shortcutContexts");
13
12
  var _a11y = require("../../helpers/a11y");
14
13
  function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
15
14
  function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
@@ -309,17 +308,12 @@ class CollapsibleColumns extends _base.BasePlugin {
309
308
  col: columnIndex
310
309
  });
311
310
  }
312
-
313
- // prevent default Enter behavior (move to the next row within a selection range)
314
- return false;
315
311
  },
316
312
  runOnlyIf: () => {
317
313
  var _this$hot$getSelected;
318
314
  return (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight.isHeader();
319
315
  },
320
- group: SHORTCUTS_GROUP,
321
- relativeToGroup: _shortcutContexts.EDITOR_EDIT_GROUP,
322
- position: 'before'
316
+ group: SHORTCUTS_GROUP
323
317
  });
324
318
  }
325
319
 
@@ -18,7 +18,6 @@ import { rangeEach } from "../../helpers/number.mjs";
18
18
  import { warn } from "../../helpers/console.mjs";
19
19
  import { addClass, hasClass, removeClass, fastInnerText, removeAttribute, setAttribute } from "../../helpers/dom/element.mjs";
20
20
  import { stopImmediatePropagation } from "../../helpers/dom/event.mjs";
21
- import { EDITOR_EDIT_GROUP as SHORTCUTS_GROUP_EDITOR } from "../../shortcutContexts/index.mjs";
22
21
  import { A11Y_EXPANDED, A11Y_HIDDEN } from "../../helpers/a11y.mjs";
23
22
  export const PLUGIN_KEY = 'collapsibleColumns';
24
23
  export const PLUGIN_PRIORITY = 290;
@@ -306,17 +305,12 @@ export class CollapsibleColumns extends BasePlugin {
306
305
  col: columnIndex
307
306
  });
308
307
  }
309
-
310
- // prevent default Enter behavior (move to the next row within a selection range)
311
- return false;
312
308
  },
313
309
  runOnlyIf: () => {
314
310
  var _this$hot$getSelected;
315
311
  return (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight.isHeader();
316
312
  },
317
- group: SHORTCUTS_GROUP,
318
- relativeToGroup: SHORTCUTS_GROUP_EDITOR,
319
- position: 'before'
313
+ group: SHORTCUTS_GROUP
320
314
  });
321
315
  }
322
316
 
@@ -12,7 +12,6 @@ var _base = require("../base");
12
12
  var _translations = require("../../translations");
13
13
  var _pluginHooks = _interopRequireDefault(require("../../pluginHooks"));
14
14
  var _columnStatesManager = require("./columnStatesManager");
15
- var _shortcutContexts = require("../../shortcutContexts");
16
15
  var _utils = require("./utils");
17
16
  var _domHelpers = require("./domHelpers");
18
17
  var _rootComparator = require("./rootComparator");
@@ -250,17 +249,12 @@ class ColumnSorting extends _base.BasePlugin {
250
249
  if (highlight.row === -1 && highlight.col >= 0) {
251
250
  this.sort(this.getColumnNextConfig(highlight.col));
252
251
  }
253
-
254
- // prevent default Enter behavior (move to the next row within a selection range)
255
- return false;
256
252
  },
257
253
  runOnlyIf: () => {
258
254
  var _this$hot$getSelected;
259
255
  const highlight = (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight;
260
256
  return highlight && this.hot.selection.isCellVisible(highlight) && highlight.isHeader();
261
257
  },
262
- relativeToGroup: _shortcutContexts.EDITOR_EDIT_GROUP,
263
- position: 'before',
264
258
  group: SHORTCUTS_GROUP
265
259
  });
266
260
  }
@@ -15,7 +15,6 @@ import { BasePlugin } from "../base/index.mjs";
15
15
  import { IndexesSequence, PhysicalIndexToValueMap as IndexToValueMap } from "../../translations/index.mjs";
16
16
  import Hooks from "../../pluginHooks.mjs";
17
17
  import { ColumnStatesManager } from "./columnStatesManager.mjs";
18
- import { EDITOR_EDIT_GROUP as SHORTCUTS_GROUP_EDITOR } from "../../shortcutContexts/index.mjs";
19
18
  import { HEADER_SPAN_CLASS, getNextSortOrder, areValidSortStates, getHeaderSpanElement, isFirstLevelColumnHeader, wasHeaderClickedProperly } from "./utils.mjs";
20
19
  import { getClassesToRemove, getClassesToAdd } from "./domHelpers.mjs";
21
20
  import { rootComparator } from "./rootComparator.mjs";
@@ -246,17 +245,12 @@ export class ColumnSorting extends BasePlugin {
246
245
  if (highlight.row === -1 && highlight.col >= 0) {
247
246
  this.sort(this.getColumnNextConfig(highlight.col));
248
247
  }
249
-
250
- // prevent default Enter behavior (move to the next row within a selection range)
251
- return false;
252
248
  },
253
249
  runOnlyIf: () => {
254
250
  var _this$hot$getSelected;
255
251
  const highlight = (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight;
256
252
  return highlight && this.hot.selection.isCellVisible(highlight) && highlight.isHeader();
257
253
  },
258
- relativeToGroup: SHORTCUTS_GROUP_EDITOR,
259
- position: 'before',
260
254
  group: SHORTCUTS_GROUP
261
255
  });
262
256
  }
@@ -9,26 +9,10 @@ exports.createDefaultShortcutsList = createDefaultShortcutsList;
9
9
  * @returns {KeyboardShortcut[]}
10
10
  */
11
11
  function createDefaultShortcutsList(menu) {
12
- const {
13
- hot,
14
- hotMenu
15
- } = menu;
16
12
  return [{
17
- keys: [['Control/Meta', 'A']],
18
- forwardToContext: hot.getShortcutManager().getContext('grid'),
13
+ keys: [['Tab'], ['Shift', 'Tab'], ['Control/Meta', 'A']],
14
+ forwardToContext: menu.hot.getShortcutManager().getContext('grid'),
19
15
  callback: () => menu.close(true)
20
- }, {
21
- keys: [['Tab'], ['Shift', 'Tab']],
22
- callback: (event, keys) => {
23
- const settings = hot.getSettings();
24
- const tabMoves = typeof settings.tabMoves === 'function' ? settings.tabMoves(event) : settings.tabMoves;
25
- if (keys.includes('shift')) {
26
- hot.selection.transformStart(-tabMoves.row, -tabMoves.col);
27
- } else {
28
- hot.selection.transformStart(tabMoves.row, tabMoves.col);
29
- }
30
- menu.close(true);
31
- }
32
16
  }, {
33
17
  keys: [['Escape']],
34
18
  callback: () => menu.close()
@@ -41,7 +25,7 @@ function createDefaultShortcutsList(menu) {
41
25
  }, {
42
26
  keys: [['ArrowRight']],
43
27
  callback: () => {
44
- const selection = hotMenu.getSelectedLast();
28
+ const selection = menu.hotMenu.getSelectedLast();
45
29
  if (selection) {
46
30
  const subMenu = menu.openSubMenu(selection[0]);
47
31
  if (subMenu) {
@@ -52,7 +36,7 @@ function createDefaultShortcutsList(menu) {
52
36
  }, {
53
37
  keys: [['ArrowLeft']],
54
38
  callback: () => {
55
- const selection = hotMenu.getSelectedLast();
39
+ const selection = menu.hotMenu.getSelectedLast();
56
40
  if (selection && menu.isSubMenu()) {
57
41
  menu.close();
58
42
  if (menu.isSubMenu()) {
@@ -69,11 +53,11 @@ function createDefaultShortcutsList(menu) {
69
53
  }, {
70
54
  keys: [['Enter'], ['Space']],
71
55
  callback: event => {
72
- const selection = hotMenu.getSelectedLast();
56
+ const selection = menu.hotMenu.getSelectedLast();
73
57
  if (!selection) {
74
58
  return;
75
59
  }
76
- if (hotMenu.getSourceDataAtRow(selection[0]).submenu) {
60
+ if (menu.hotMenu.getSourceDataAtRow(selection[0]).submenu) {
77
61
  menu.openSubMenu(selection[0]).getNavigator().toFirstItem();
78
62
  } else {
79
63
  menu.executeCommand(event);
@@ -83,9 +67,9 @@ function createDefaultShortcutsList(menu) {
83
67
  }, {
84
68
  keys: [['PageUp']],
85
69
  callback: () => {
86
- const selection = hotMenu.getSelectedLast();
70
+ const selection = menu.hotMenu.getSelectedLast();
87
71
  if (selection) {
88
- hotMenu.selection.transformStart(-hotMenu.countVisibleRows(), 0);
72
+ menu.hotMenu.selection.transformStart(-menu.hotMenu.countVisibleRows(), 0);
89
73
  } else {
90
74
  menu.getNavigator().toFirstItem();
91
75
  }
@@ -93,9 +77,9 @@ function createDefaultShortcutsList(menu) {
93
77
  }, {
94
78
  keys: [['PageDown']],
95
79
  callback: () => {
96
- const selection = hotMenu.getSelectedLast();
80
+ const selection = menu.hotMenu.getSelectedLast();
97
81
  if (selection) {
98
- hotMenu.selection.transformStart(hotMenu.countVisibleRows(), 0);
82
+ menu.hotMenu.selection.transformStart(menu.hotMenu.countVisibleRows(), 0);
99
83
  } else {
100
84
  menu.getNavigator().toLastItem();
101
85
  }
@@ -5,26 +5,10 @@
5
5
  * @returns {KeyboardShortcut[]}
6
6
  */
7
7
  export function createDefaultShortcutsList(menu) {
8
- const {
9
- hot,
10
- hotMenu
11
- } = menu;
12
8
  return [{
13
- keys: [['Control/Meta', 'A']],
14
- forwardToContext: hot.getShortcutManager().getContext('grid'),
9
+ keys: [['Tab'], ['Shift', 'Tab'], ['Control/Meta', 'A']],
10
+ forwardToContext: menu.hot.getShortcutManager().getContext('grid'),
15
11
  callback: () => menu.close(true)
16
- }, {
17
- keys: [['Tab'], ['Shift', 'Tab']],
18
- callback: (event, keys) => {
19
- const settings = hot.getSettings();
20
- const tabMoves = typeof settings.tabMoves === 'function' ? settings.tabMoves(event) : settings.tabMoves;
21
- if (keys.includes('shift')) {
22
- hot.selection.transformStart(-tabMoves.row, -tabMoves.col);
23
- } else {
24
- hot.selection.transformStart(tabMoves.row, tabMoves.col);
25
- }
26
- menu.close(true);
27
- }
28
12
  }, {
29
13
  keys: [['Escape']],
30
14
  callback: () => menu.close()
@@ -37,7 +21,7 @@ export function createDefaultShortcutsList(menu) {
37
21
  }, {
38
22
  keys: [['ArrowRight']],
39
23
  callback: () => {
40
- const selection = hotMenu.getSelectedLast();
24
+ const selection = menu.hotMenu.getSelectedLast();
41
25
  if (selection) {
42
26
  const subMenu = menu.openSubMenu(selection[0]);
43
27
  if (subMenu) {
@@ -48,7 +32,7 @@ export function createDefaultShortcutsList(menu) {
48
32
  }, {
49
33
  keys: [['ArrowLeft']],
50
34
  callback: () => {
51
- const selection = hotMenu.getSelectedLast();
35
+ const selection = menu.hotMenu.getSelectedLast();
52
36
  if (selection && menu.isSubMenu()) {
53
37
  menu.close();
54
38
  if (menu.isSubMenu()) {
@@ -65,11 +49,11 @@ export function createDefaultShortcutsList(menu) {
65
49
  }, {
66
50
  keys: [['Enter'], ['Space']],
67
51
  callback: event => {
68
- const selection = hotMenu.getSelectedLast();
52
+ const selection = menu.hotMenu.getSelectedLast();
69
53
  if (!selection) {
70
54
  return;
71
55
  }
72
- if (hotMenu.getSourceDataAtRow(selection[0]).submenu) {
56
+ if (menu.hotMenu.getSourceDataAtRow(selection[0]).submenu) {
73
57
  menu.openSubMenu(selection[0]).getNavigator().toFirstItem();
74
58
  } else {
75
59
  menu.executeCommand(event);
@@ -79,9 +63,9 @@ export function createDefaultShortcutsList(menu) {
79
63
  }, {
80
64
  keys: [['PageUp']],
81
65
  callback: () => {
82
- const selection = hotMenu.getSelectedLast();
66
+ const selection = menu.hotMenu.getSelectedLast();
83
67
  if (selection) {
84
- hotMenu.selection.transformStart(-hotMenu.countVisibleRows(), 0);
68
+ menu.hotMenu.selection.transformStart(-menu.hotMenu.countVisibleRows(), 0);
85
69
  } else {
86
70
  menu.getNavigator().toFirstItem();
87
71
  }
@@ -89,9 +73,9 @@ export function createDefaultShortcutsList(menu) {
89
73
  }, {
90
74
  keys: [['PageDown']],
91
75
  callback: () => {
92
- const selection = hotMenu.getSelectedLast();
76
+ const selection = menu.hotMenu.getSelectedLast();
93
77
  if (selection) {
94
- hotMenu.selection.transformStart(hotMenu.countVisibleRows(), 0);
78
+ menu.hotMenu.selection.transformStart(menu.hotMenu.countVisibleRows(), 0);
95
79
  } else {
96
80
  menu.getNavigator().toLastItem();
97
81
  }
@@ -1031,10 +1031,8 @@ function _onAfterIsMultipleSelection2(isMultiple) {
1031
1031
  if (isMultiple) {
1032
1032
  const mergedCells = this.mergedCellsCollection.mergedCells;
1033
1033
  const selectionRange = this.hot.getSelectedRangeLast();
1034
- const topStartCoords = selectionRange.getTopStartCorner();
1035
- const bottomEndCoords = selectionRange.getBottomEndCorner();
1036
1034
  for (let group = 0; group < mergedCells.length; group += 1) {
1037
- 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) {
1035
+ 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) {
1038
1036
  return false;
1039
1037
  }
1040
1038
  }
@@ -1026,10 +1026,8 @@ function _onAfterIsMultipleSelection2(isMultiple) {
1026
1026
  if (isMultiple) {
1027
1027
  const mergedCells = this.mergedCellsCollection.mergedCells;
1028
1028
  const selectionRange = this.hot.getSelectedRangeLast();
1029
- const topStartCoords = selectionRange.getTopStartCorner();
1030
- const bottomEndCoords = selectionRange.getBottomEndCorner();
1031
1029
  for (let group = 0; group < mergedCells.length; group += 1) {
1032
- 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) {
1033
1031
  return false;
1034
1032
  }
1035
1033
  }
@@ -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];
@@ -360,7 +360,6 @@ export class NestedHeaders extends BasePlugin {
360
360
  return _classPrivateMethodGet(_this, _onModifyTransformStart, _onModifyTransformStart2).call(_this, ...args);
361
361
  });
362
362
  this.addHook('afterSelection', () => _classPrivateMethodGet(this, _updateFocusHighlightPosition, _updateFocusHighlightPosition2).call(this));
363
- this.addHook('afterSelectionFocusSet', () => _classPrivateMethodGet(this, _updateFocusHighlightPosition, _updateFocusHighlightPosition2).call(this));
364
363
  this.addHook('beforeViewportScrollHorizontally', function () {
365
364
  for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {
366
365
  args[_key8] = arguments[_key8];
@@ -11,7 +11,6 @@ var _contextMenu = _interopRequireDefault(require("./ui/contextMenu"));
11
11
  var _console = require("../../helpers/console");
12
12
  var _data = require("../../helpers/data");
13
13
  var _translations = require("../../translations");
14
- var _shortcutContexts = require("../../shortcutContexts");
15
14
  var _rowMoveController = _interopRequireDefault(require("./utils/rowMoveController"));
16
15
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
16
  function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
@@ -401,18 +400,13 @@ class NestedRows extends _base.BasePlugin {
401
400
  this.collapsingUI.collapseChildren(row);
402
401
  }
403
402
  }
404
-
405
- // prevent default Enter behavior (move to the next row within a selection range)
406
- return false;
407
403
  },
408
404
  runOnlyIf: () => {
409
405
  var _this$hot$getSelected;
410
406
  const highlight = (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight;
411
407
  return highlight && this.hot.selection.isCellVisible(highlight) && highlight.isHeader();
412
408
  },
413
- group: SHORTCUTS_GROUP,
414
- relativeToGroup: _shortcutContexts.EDITOR_EDIT_GROUP,
415
- position: 'before'
409
+ group: SHORTCUTS_GROUP
416
410
  });
417
411
  }
418
412