handsontable 0.0.0-next-06a64be-20230621 → 0.0.0-next-be250b6-20230621

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 (237) hide show
  1. package/3rdparty/walkontable/src/cell/coords.d.ts +6 -1
  2. package/3rdparty/walkontable/src/cell/coords.js +61 -12
  3. package/3rdparty/walkontable/src/cell/coords.mjs +61 -12
  4. package/3rdparty/walkontable/src/cell/range.d.ts +9 -2
  5. package/3rdparty/walkontable/src/cell/range.js +44 -7
  6. package/3rdparty/walkontable/src/cell/range.mjs +44 -7
  7. package/3rdparty/walkontable/src/core/_base.js +9 -3
  8. package/3rdparty/walkontable/src/core/_base.mjs +9 -3
  9. package/3rdparty/walkontable/src/core/clone.js +2 -2
  10. package/3rdparty/walkontable/src/core/clone.mjs +2 -2
  11. package/3rdparty/walkontable/src/core/core.js +3 -2
  12. package/3rdparty/walkontable/src/core/core.mjs +3 -2
  13. package/3rdparty/walkontable/src/event.js +7 -7
  14. package/3rdparty/walkontable/src/event.mjs +7 -7
  15. package/3rdparty/walkontable/src/facade/core.js +2 -2
  16. package/3rdparty/walkontable/src/facade/core.mjs +2 -2
  17. package/3rdparty/walkontable/src/index.js +10 -2
  18. package/3rdparty/walkontable/src/index.mjs +2 -2
  19. package/3rdparty/walkontable/src/overlay/_base.js +1 -1
  20. package/3rdparty/walkontable/src/overlay/_base.mjs +1 -1
  21. package/3rdparty/walkontable/src/overlay/inlineStart.js +2 -4
  22. package/3rdparty/walkontable/src/overlay/inlineStart.mjs +2 -4
  23. package/3rdparty/walkontable/src/overlay/top.js +2 -4
  24. package/3rdparty/walkontable/src/overlay/top.mjs +2 -4
  25. package/3rdparty/walkontable/src/{border.js → selection/border/border.js} +7 -12
  26. package/3rdparty/walkontable/src/{border.mjs → selection/border/border.mjs} +7 -12
  27. package/3rdparty/walkontable/src/selection/border/constants.js +18 -0
  28. package/3rdparty/walkontable/src/selection/border/constants.mjs +13 -0
  29. package/3rdparty/walkontable/src/selection/constants.js +63 -0
  30. package/3rdparty/walkontable/src/selection/constants.mjs +51 -0
  31. package/3rdparty/walkontable/src/selection/index.js +30 -0
  32. package/3rdparty/walkontable/src/selection/index.mjs +5 -0
  33. package/3rdparty/walkontable/src/selection/manager.js +329 -0
  34. package/3rdparty/walkontable/src/selection/manager.mjs +323 -0
  35. package/3rdparty/walkontable/src/selection/scanner.js +364 -0
  36. package/3rdparty/walkontable/src/selection/scanner.mjs +360 -0
  37. package/3rdparty/walkontable/src/selection/selection.js +133 -0
  38. package/3rdparty/walkontable/src/selection/selection.mjs +127 -0
  39. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +9 -0
  40. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +9 -0
  41. package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +9 -0
  42. package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +9 -0
  43. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.js +9 -0
  44. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.mjs +9 -0
  45. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +9 -0
  46. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +9 -0
  47. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +9 -0
  48. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +9 -0
  49. package/3rdparty/walkontable/src/table.js +7 -79
  50. package/3rdparty/walkontable/src/table.mjs +8 -80
  51. package/base.js +2 -2
  52. package/base.mjs +2 -2
  53. package/core.d.ts +5 -3
  54. package/core.js +127 -309
  55. package/core.mjs +127 -309
  56. package/dataMap/metaManager/metaSchema.js +19 -0
  57. package/dataMap/metaManager/metaSchema.mjs +19 -0
  58. package/dist/handsontable.css +8 -3
  59. package/dist/handsontable.full.css +8 -3
  60. package/dist/handsontable.full.js +11930 -9113
  61. package/dist/handsontable.full.min.css +3 -3
  62. package/dist/handsontable.full.min.js +107 -107
  63. package/dist/handsontable.js +15163 -12346
  64. package/dist/handsontable.min.css +3 -3
  65. package/dist/handsontable.min.js +4 -4
  66. package/editorManager.js +21 -94
  67. package/editorManager.mjs +26 -98
  68. package/editors/textEditor/textEditor.js +3 -11
  69. package/editors/textEditor/textEditor.mjs +4 -12
  70. package/helpers/mixed.js +1 -1
  71. package/helpers/mixed.mjs +1 -1
  72. package/helpers/number.d.ts +1 -0
  73. package/helpers/number.js +18 -0
  74. package/helpers/number.mjs +17 -0
  75. package/package.json +1 -1
  76. package/pluginHooks.d.ts +5 -1
  77. package/pluginHooks.js +89 -1
  78. package/pluginHooks.mjs +89 -1
  79. package/plugins/collapsibleColumns/collapsibleColumns.js +81 -24
  80. package/plugins/collapsibleColumns/collapsibleColumns.mjs +81 -24
  81. package/plugins/columnSorting/columnSorting.js +50 -8
  82. package/plugins/columnSorting/columnSorting.mjs +49 -9
  83. package/plugins/columnSorting/index.js +4 -2
  84. package/plugins/columnSorting/index.mjs +1 -1
  85. package/plugins/copyPaste/copyPaste.js +5 -1
  86. package/plugins/copyPaste/copyPaste.mjs +5 -1
  87. package/plugins/customBorders/customBorders.js +18 -53
  88. package/plugins/customBorders/customBorders.mjs +19 -54
  89. package/plugins/mergeCells/mergeCells.js +5 -18
  90. package/plugins/mergeCells/mergeCells.mjs +5 -18
  91. package/plugins/multiColumnSorting/multiColumnSorting.js +42 -3
  92. package/plugins/multiColumnSorting/multiColumnSorting.mjs +42 -3
  93. package/plugins/nestedHeaders/nestedHeaders.js +132 -10
  94. package/plugins/nestedHeaders/nestedHeaders.mjs +132 -10
  95. package/plugins/nestedHeaders/stateManager/index.js +37 -0
  96. package/plugins/nestedHeaders/stateManager/index.mjs +37 -0
  97. package/plugins/nestedRows/nestedRows.js +52 -7
  98. package/plugins/nestedRows/nestedRows.mjs +52 -7
  99. package/renderers/checkboxRenderer/checkboxRenderer.js +2 -2
  100. package/renderers/checkboxRenderer/checkboxRenderer.mjs +1 -1
  101. package/selection/highlight/highlight.js +312 -89
  102. package/selection/highlight/highlight.mjs +302 -85
  103. package/selection/highlight/types/activeHeader.js +10 -9
  104. package/selection/highlight/types/activeHeader.mjs +10 -8
  105. package/selection/highlight/types/area.js +12 -27
  106. package/selection/highlight/types/area.mjs +16 -30
  107. package/selection/highlight/types/areaLayered.js +54 -0
  108. package/selection/highlight/types/areaLayered.mjs +49 -0
  109. package/selection/highlight/types/column.js +50 -0
  110. package/selection/highlight/types/column.mjs +45 -0
  111. package/selection/highlight/types/customSelection.js +7 -10
  112. package/selection/highlight/types/customSelection.mjs +7 -9
  113. package/selection/highlight/types/fill.js +5 -8
  114. package/selection/highlight/types/fill.mjs +5 -7
  115. package/selection/highlight/types/{cell.js → focus.js} +5 -8
  116. package/selection/highlight/types/{cell.mjs → focus.mjs} +5 -7
  117. package/selection/highlight/types/header.js +10 -20
  118. package/selection/highlight/types/header.mjs +10 -19
  119. package/selection/highlight/types/{index.js → row.js} +27 -31
  120. package/selection/highlight/types/{index.mjs → row.mjs} +24 -29
  121. package/selection/highlight/visualSelection.js +31 -27
  122. package/selection/highlight/visualSelection.mjs +31 -27
  123. package/selection/index.js +4 -7
  124. package/selection/index.mjs +2 -3
  125. package/selection/mouseEventHandler.js +1 -1
  126. package/selection/mouseEventHandler.mjs +1 -1
  127. package/selection/range.js +8 -8
  128. package/selection/range.mjs +8 -8
  129. package/selection/selection.js +315 -181
  130. package/selection/selection.mjs +310 -180
  131. package/selection/transformation.js +233 -96
  132. package/selection/transformation.mjs +230 -93
  133. package/selection/utils.js +12 -36
  134. package/selection/utils.mjs +13 -36
  135. package/settings.d.ts +1 -0
  136. package/shortcutContexts/commands/editor/closeAndSave.js +15 -0
  137. package/shortcutContexts/commands/editor/closeAndSave.mjs +10 -0
  138. package/shortcutContexts/commands/editor/closeWithoutSaving.js +13 -0
  139. package/shortcutContexts/commands/editor/closeWithoutSaving.mjs +8 -0
  140. package/shortcutContexts/commands/editor/fastOpen.js +16 -0
  141. package/shortcutContexts/commands/editor/fastOpen.mjs +11 -0
  142. package/shortcutContexts/commands/editor/index.js +16 -0
  143. package/shortcutContexts/commands/editor/index.mjs +12 -0
  144. package/shortcutContexts/commands/editor/open.js +29 -0
  145. package/shortcutContexts/commands/editor/open.mjs +24 -0
  146. package/shortcutContexts/commands/emptySelectedCells.js +12 -0
  147. package/shortcutContexts/commands/emptySelectedCells.mjs +7 -0
  148. package/shortcutContexts/commands/extendCellsSelection/down.js +15 -0
  149. package/shortcutContexts/commands/extendCellsSelection/down.mjs +10 -0
  150. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +21 -0
  151. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +16 -0
  152. package/shortcutContexts/commands/extendCellsSelection/index.js +26 -0
  153. package/shortcutContexts/commands/extendCellsSelection/index.mjs +22 -0
  154. package/shortcutContexts/commands/extendCellsSelection/left.js +15 -0
  155. package/shortcutContexts/commands/extendCellsSelection/left.mjs +10 -0
  156. package/shortcutContexts/commands/extendCellsSelection/right.js +15 -0
  157. package/shortcutContexts/commands/extendCellsSelection/right.mjs +10 -0
  158. package/shortcutContexts/commands/extendCellsSelection/toColumns.js +19 -0
  159. package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +14 -0
  160. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +22 -0
  161. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +17 -0
  162. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +17 -0
  163. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +12 -0
  164. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +17 -0
  165. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +12 -0
  166. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +40 -0
  167. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +35 -0
  168. package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +40 -0
  169. package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +35 -0
  170. package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +22 -0
  171. package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +17 -0
  172. package/shortcutContexts/commands/extendCellsSelection/toRows.js +19 -0
  173. package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +14 -0
  174. package/shortcutContexts/commands/extendCellsSelection/up.js +15 -0
  175. package/shortcutContexts/commands/extendCellsSelection/up.mjs +10 -0
  176. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +21 -0
  177. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +16 -0
  178. package/shortcutContexts/commands/index.js +53 -0
  179. package/shortcutContexts/commands/index.mjs +49 -0
  180. package/shortcutContexts/commands/moveCellSelection/down.js +12 -0
  181. package/shortcutContexts/commands/moveCellSelection/down.mjs +7 -0
  182. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.js +29 -0
  183. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs +24 -0
  184. package/shortcutContexts/commands/moveCellSelection/index.js +28 -0
  185. package/shortcutContexts/commands/moveCellSelection/index.mjs +24 -0
  186. package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +13 -0
  187. package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +8 -0
  188. package/shortcutContexts/commands/moveCellSelection/inlineStart.js +13 -0
  189. package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +8 -0
  190. package/shortcutContexts/commands/moveCellSelection/left.js +11 -0
  191. package/shortcutContexts/commands/moveCellSelection/left.mjs +6 -0
  192. package/shortcutContexts/commands/moveCellSelection/right.js +11 -0
  193. package/shortcutContexts/commands/moveCellSelection/right.mjs +6 -0
  194. package/shortcutContexts/commands/moveCellSelection/toMostBottom.js +16 -0
  195. package/shortcutContexts/commands/moveCellSelection/toMostBottom.mjs +11 -0
  196. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.js +17 -0
  197. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.mjs +12 -0
  198. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.js +13 -0
  199. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.mjs +8 -0
  200. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.js +16 -0
  201. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.mjs +11 -0
  202. package/shortcutContexts/commands/moveCellSelection/toMostLeft.js +36 -0
  203. package/shortcutContexts/commands/moveCellSelection/toMostLeft.mjs +31 -0
  204. package/shortcutContexts/commands/moveCellSelection/toMostRight.js +36 -0
  205. package/shortcutContexts/commands/moveCellSelection/toMostRight.mjs +31 -0
  206. package/shortcutContexts/commands/moveCellSelection/toMostTop.js +16 -0
  207. package/shortcutContexts/commands/moveCellSelection/toMostTop.mjs +11 -0
  208. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.js +18 -0
  209. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.mjs +13 -0
  210. package/shortcutContexts/commands/moveCellSelection/up.js +12 -0
  211. package/shortcutContexts/commands/moveCellSelection/up.mjs +7 -0
  212. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.js +29 -0
  213. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs +24 -0
  214. package/shortcutContexts/commands/populateSelectedCellsData.js +35 -0
  215. package/shortcutContexts/commands/populateSelectedCellsData.mjs +30 -0
  216. package/shortcutContexts/commands/scrollToFocusedCell.js +38 -0
  217. package/shortcutContexts/commands/scrollToFocusedCell.mjs +33 -0
  218. package/shortcutContexts/commands/selectAll.js +11 -0
  219. package/shortcutContexts/commands/selectAll.mjs +6 -0
  220. package/shortcutContexts/constants.js +19 -0
  221. package/shortcutContexts/constants.mjs +12 -0
  222. package/shortcutContexts/editor.js +29 -0
  223. package/shortcutContexts/editor.mjs +25 -0
  224. package/shortcutContexts/grid.js +252 -0
  225. package/shortcutContexts/grid.mjs +248 -0
  226. package/shortcutContexts/index.js +29 -0
  227. package/shortcutContexts/index.mjs +15 -0
  228. package/shortcuts/manager.js +2 -0
  229. package/shortcuts/manager.mjs +2 -0
  230. package/tableView.js +58 -9
  231. package/tableView.mjs +58 -9
  232. package/translations/indexMapper.js +8 -9
  233. package/translations/indexMapper.mjs +8 -9
  234. package/3rdparty/walkontable/src/selection.js +0 -355
  235. package/3rdparty/walkontable/src/selection.mjs +0 -349
  236. package/selection/highlight/constants.js +0 -16
  237. package/selection/highlight/constants.mjs +0 -6
@@ -411,6 +411,43 @@ var StateManager = /*#__PURE__*/function () {
411
411
  return stepBackColumn;
412
412
  }
413
413
 
414
+ /**
415
+ * The method is helpful in cases where the column index targets in-between currently
416
+ * collapsed column. In that case, the method returns the right-most column index
417
+ * where the nested header ends.
418
+ *
419
+ * @param {number} headerLevel Header level (there is support for negative and positive values).
420
+ * @param {number} columnIndex A visual column index.
421
+ * @returns {number}
422
+ */
423
+ }, {
424
+ key: "findRightMostColumnIndex",
425
+ value: function findRightMostColumnIndex(headerLevel, columnIndex) {
426
+ var _this$getHeaderSettin3;
427
+ var _ref4 = (_this$getHeaderSettin3 = this.getHeaderSettings(headerLevel, columnIndex)) !== null && _this$getHeaderSettin3 !== void 0 ? _this$getHeaderSettin3 : {
428
+ isRoot: true,
429
+ origColspan: 1
430
+ },
431
+ isRoot = _ref4.isRoot,
432
+ origColspan = _ref4.origColspan;
433
+ if (isRoot) {
434
+ return columnIndex + origColspan - 1;
435
+ }
436
+ var stepForthColumn = columnIndex + 1;
437
+ while (stepForthColumn < this.getColumnsCount()) {
438
+ var _this$getHeaderSettin4;
439
+ var _ref5 = (_this$getHeaderSettin4 = this.getHeaderSettings(headerLevel, stepForthColumn)) !== null && _this$getHeaderSettin4 !== void 0 ? _this$getHeaderSettin4 : {
440
+ isRoot: true
441
+ },
442
+ isRootNode = _ref5.isRoot;
443
+ if (isRootNode) {
444
+ break;
445
+ }
446
+ stepForthColumn += 1;
447
+ }
448
+ return stepForthColumn - 1;
449
+ }
450
+
414
451
  /**
415
452
  * Gets a total number of headers levels.
416
453
  *
@@ -62,6 +62,7 @@ var PLUGIN_KEY = 'nestedRows';
62
62
  exports.PLUGIN_KEY = PLUGIN_KEY;
63
63
  var PLUGIN_PRIORITY = 300;
64
64
  exports.PLUGIN_PRIORITY = PLUGIN_PRIORITY;
65
+ var SHORTCUTS_GROUP = PLUGIN_KEY;
65
66
  var privatePool = new WeakMap();
66
67
 
67
68
  /* eslint-disable jsdoc/require-description-complete-sentence */
@@ -203,6 +204,7 @@ var NestedRows = /*#__PURE__*/function (_BasePlugin) {
203
204
  this.addHook('beforeUpdateData', function (data) {
204
205
  return _this2.onBeforeLoadData(data);
205
206
  });
207
+ this.registerShortcuts();
206
208
  _get(_getPrototypeOf(NestedRows.prototype), "enablePlugin", this).call(this);
207
209
  }
208
210
 
@@ -213,6 +215,7 @@ var NestedRows = /*#__PURE__*/function (_BasePlugin) {
213
215
  key: "disablePlugin",
214
216
  value: function disablePlugin() {
215
217
  this.hot.rowIndexMapper.unregisterMap('nestedRows');
218
+ this.unregisterShortcuts();
216
219
  _get(_getPrototypeOf(NestedRows.prototype), "disablePlugin", this).call(this);
217
220
  }
218
221
 
@@ -236,6 +239,48 @@ var NestedRows = /*#__PURE__*/function (_BasePlugin) {
236
239
  _get(_getPrototypeOf(NestedRows.prototype), "updatePlugin", this).call(this);
237
240
  }
238
241
 
242
+ /**
243
+ * Register shortcuts responsible for toggling collapsible columns.
244
+ *
245
+ * @private
246
+ */
247
+ }, {
248
+ key: "registerShortcuts",
249
+ value: function registerShortcuts() {
250
+ var _this3 = this;
251
+ this.hot.getShortcutManager().getContext('grid').addShortcut({
252
+ keys: [['Enter']],
253
+ callback: function callback() {
254
+ var _this3$hot$getSelecte = _this3.hot.getSelectedRangeLast(),
255
+ highlight = _this3$hot$getSelecte.highlight;
256
+ if (highlight.col === -1 && highlight.row >= 0) {
257
+ var row = _this3.collapsingUI.translateTrimmedRow(highlight.row);
258
+ if (_this3.collapsingUI.areChildrenCollapsed(row)) {
259
+ _this3.collapsingUI.expandChildren(row);
260
+ } else {
261
+ _this3.collapsingUI.collapseChildren(row);
262
+ }
263
+ }
264
+ },
265
+ runOnlyIf: function runOnlyIf() {
266
+ var _this3$hot$getSelecte2;
267
+ return (_this3$hot$getSelecte2 = _this3.hot.getSelectedRangeLast()) === null || _this3$hot$getSelecte2 === void 0 ? void 0 : _this3$hot$getSelecte2.highlight.isHeader();
268
+ },
269
+ group: SHORTCUTS_GROUP
270
+ });
271
+ }
272
+
273
+ /**
274
+ * Unregister shortcuts responsible for toggling collapsible columns.
275
+ *
276
+ * @private
277
+ */
278
+ }, {
279
+ key: "unregisterShortcuts",
280
+ value: function unregisterShortcuts() {
281
+ this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);
282
+ }
283
+
239
284
  /**
240
285
  * `beforeRowMove` hook callback.
241
286
  *
@@ -415,15 +460,15 @@ var NestedRows = /*#__PURE__*/function (_BasePlugin) {
415
460
  }, {
416
461
  key: "onAfterRemoveRow",
417
462
  value: function onAfterRemoveRow(index, amount, logicRows, source) {
418
- var _this3 = this;
463
+ var _this4 = this;
419
464
  if (source === this.pluginName) {
420
465
  return;
421
466
  }
422
467
  var priv = privatePool.get(this);
423
468
  setTimeout(function () {
424
469
  priv.skipRender = null;
425
- _this3.headersUI.updateRowHeaderWidth();
426
- _this3.collapsingUI.collapsedRowsStash.applyStash();
470
+ _this4.headersUI.updateRowHeaderWidth();
471
+ _this4.collapsingUI.collapsedRowsStash.applyStash();
427
472
  }, 0);
428
473
  }
429
474
 
@@ -439,17 +484,17 @@ var NestedRows = /*#__PURE__*/function (_BasePlugin) {
439
484
  }, {
440
485
  key: "onBeforeRemoveRow",
441
486
  value: function onBeforeRemoveRow(index, amount, physicalRows) {
442
- var _this4 = this;
487
+ var _this5 = this;
443
488
  var modifiedPhysicalRows = Array.from(physicalRows.reduce(function (removedRows, physicalIndex) {
444
- if (_this4.dataManager.isParent(physicalIndex)) {
445
- var children = _this4.dataManager.getDataObject(physicalIndex).__children;
489
+ if (_this5.dataManager.isParent(physicalIndex)) {
490
+ var children = _this5.dataManager.getDataObject(physicalIndex).__children;
446
491
 
447
492
  // Preserve a parent in the list of removed rows.
448
493
  removedRows.add(physicalIndex);
449
494
  if (Array.isArray(children)) {
450
495
  // Add a children to the list of removed rows.
451
496
  children.forEach(function (child) {
452
- return removedRows.add(_this4.dataManager.getRowIndex(child));
497
+ return removedRows.add(_this5.dataManager.getRowIndex(child));
453
498
  });
454
499
  }
455
500
  return removedRows;
@@ -55,6 +55,7 @@ import { TrimmingMap } from "../../translations/index.mjs";
55
55
  import RowMoveController from "./utils/rowMoveController.mjs";
56
56
  export var PLUGIN_KEY = 'nestedRows';
57
57
  export var PLUGIN_PRIORITY = 300;
58
+ var SHORTCUTS_GROUP = PLUGIN_KEY;
58
59
  var privatePool = new WeakMap();
59
60
 
60
61
  /* eslint-disable jsdoc/require-description-complete-sentence */
@@ -196,6 +197,7 @@ export var NestedRows = /*#__PURE__*/function (_BasePlugin) {
196
197
  this.addHook('beforeUpdateData', function (data) {
197
198
  return _this2.onBeforeLoadData(data);
198
199
  });
200
+ this.registerShortcuts();
199
201
  _get(_getPrototypeOf(NestedRows.prototype), "enablePlugin", this).call(this);
200
202
  }
201
203
 
@@ -206,6 +208,7 @@ export var NestedRows = /*#__PURE__*/function (_BasePlugin) {
206
208
  key: "disablePlugin",
207
209
  value: function disablePlugin() {
208
210
  this.hot.rowIndexMapper.unregisterMap('nestedRows');
211
+ this.unregisterShortcuts();
209
212
  _get(_getPrototypeOf(NestedRows.prototype), "disablePlugin", this).call(this);
210
213
  }
211
214
 
@@ -229,6 +232,48 @@ export var NestedRows = /*#__PURE__*/function (_BasePlugin) {
229
232
  _get(_getPrototypeOf(NestedRows.prototype), "updatePlugin", this).call(this);
230
233
  }
231
234
 
235
+ /**
236
+ * Register shortcuts responsible for toggling collapsible columns.
237
+ *
238
+ * @private
239
+ */
240
+ }, {
241
+ key: "registerShortcuts",
242
+ value: function registerShortcuts() {
243
+ var _this3 = this;
244
+ this.hot.getShortcutManager().getContext('grid').addShortcut({
245
+ keys: [['Enter']],
246
+ callback: function callback() {
247
+ var _this3$hot$getSelecte = _this3.hot.getSelectedRangeLast(),
248
+ highlight = _this3$hot$getSelecte.highlight;
249
+ if (highlight.col === -1 && highlight.row >= 0) {
250
+ var row = _this3.collapsingUI.translateTrimmedRow(highlight.row);
251
+ if (_this3.collapsingUI.areChildrenCollapsed(row)) {
252
+ _this3.collapsingUI.expandChildren(row);
253
+ } else {
254
+ _this3.collapsingUI.collapseChildren(row);
255
+ }
256
+ }
257
+ },
258
+ runOnlyIf: function runOnlyIf() {
259
+ var _this3$hot$getSelecte2;
260
+ return (_this3$hot$getSelecte2 = _this3.hot.getSelectedRangeLast()) === null || _this3$hot$getSelecte2 === void 0 ? void 0 : _this3$hot$getSelecte2.highlight.isHeader();
261
+ },
262
+ group: SHORTCUTS_GROUP
263
+ });
264
+ }
265
+
266
+ /**
267
+ * Unregister shortcuts responsible for toggling collapsible columns.
268
+ *
269
+ * @private
270
+ */
271
+ }, {
272
+ key: "unregisterShortcuts",
273
+ value: function unregisterShortcuts() {
274
+ this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);
275
+ }
276
+
232
277
  /**
233
278
  * `beforeRowMove` hook callback.
234
279
  *
@@ -408,15 +453,15 @@ export var NestedRows = /*#__PURE__*/function (_BasePlugin) {
408
453
  }, {
409
454
  key: "onAfterRemoveRow",
410
455
  value: function onAfterRemoveRow(index, amount, logicRows, source) {
411
- var _this3 = this;
456
+ var _this4 = this;
412
457
  if (source === this.pluginName) {
413
458
  return;
414
459
  }
415
460
  var priv = privatePool.get(this);
416
461
  setTimeout(function () {
417
462
  priv.skipRender = null;
418
- _this3.headersUI.updateRowHeaderWidth();
419
- _this3.collapsingUI.collapsedRowsStash.applyStash();
463
+ _this4.headersUI.updateRowHeaderWidth();
464
+ _this4.collapsingUI.collapsedRowsStash.applyStash();
420
465
  }, 0);
421
466
  }
422
467
 
@@ -432,17 +477,17 @@ export var NestedRows = /*#__PURE__*/function (_BasePlugin) {
432
477
  }, {
433
478
  key: "onBeforeRemoveRow",
434
479
  value: function onBeforeRemoveRow(index, amount, physicalRows) {
435
- var _this4 = this;
480
+ var _this5 = this;
436
481
  var modifiedPhysicalRows = Array.from(physicalRows.reduce(function (removedRows, physicalIndex) {
437
- if (_this4.dataManager.isParent(physicalIndex)) {
438
- var children = _this4.dataManager.getDataObject(physicalIndex).__children;
482
+ if (_this5.dataManager.isParent(physicalIndex)) {
483
+ var children = _this5.dataManager.getDataObject(physicalIndex).__children;
439
484
 
440
485
  // Preserve a parent in the list of removed rows.
441
486
  removedRows.add(physicalIndex);
442
487
  if (Array.isArray(children)) {
443
488
  // Add a children to the list of removed rows.
444
489
  children.forEach(function (child) {
445
- return removedRows.add(_this4.dataManager.getRowIndex(child));
490
+ return removedRows.add(_this5.dataManager.getRowIndex(child));
446
491
  });
447
492
  }
448
493
  return removedRows;
@@ -16,7 +16,7 @@ var _baseRenderer = require("../baseRenderer");
16
16
  var _eventManager = _interopRequireDefault(require("../../eventManager"));
17
17
  var _element = require("../../helpers/dom/element");
18
18
  var _mixed = require("../../helpers/mixed");
19
- var _editorManager = require("../../editorManager");
19
+ var _shortcutContexts = require("../../shortcutContexts");
20
20
  var _pluginHooks = _interopRequireDefault(require("../../pluginHooks"));
21
21
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
22
22
  var isListeningKeyDownEvent = new WeakMap();
@@ -163,7 +163,7 @@ function checkboxRenderer(instance, TD, row, col, prop, value, cellProperties) {
163
163
  return !areSelectedCheckboxCells(); // False blocks next action associated with the keyboard shortcut.
164
164
  },
165
165
 
166
- relativeToGroup: _editorManager.SHORTCUTS_GROUP_EDITOR,
166
+ relativeToGroup: _shortcutContexts.EDITOR_EDIT_GROUP,
167
167
  position: 'before'
168
168
  }], config);
169
169
  }
@@ -11,7 +11,7 @@ import { baseRenderer } from "../baseRenderer/index.mjs";
11
11
  import EventManager from "../../eventManager.mjs";
12
12
  import { empty, addClass } from "../../helpers/dom/element.mjs";
13
13
  import { isEmpty, stringify } from "../../helpers/mixed.mjs";
14
- import { SHORTCUTS_GROUP_EDITOR } from "../../editorManager.mjs";
14
+ import { EDITOR_EDIT_GROUP as SHORTCUTS_GROUP_EDITOR } from "../../shortcutContexts/index.mjs";
15
15
  import Hooks from "../../pluginHooks.mjs";
16
16
  var isListeningKeyDownEvent = new WeakMap();
17
17
  var isCheckboxListenerAdded = new WeakMap();