handsontable 0.0.0-next-af5139c-20230620 → 0.0.0-next-06a64be-20230621

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


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

Files changed (239) hide show
  1. package/3rdparty/walkontable/src/{selection/border/border.js → border.js} +12 -7
  2. package/3rdparty/walkontable/src/{selection/border/border.mjs → border.mjs} +12 -7
  3. package/3rdparty/walkontable/src/cell/coords.d.ts +1 -6
  4. package/3rdparty/walkontable/src/cell/coords.js +12 -61
  5. package/3rdparty/walkontable/src/cell/coords.mjs +12 -61
  6. package/3rdparty/walkontable/src/cell/range.d.ts +2 -9
  7. package/3rdparty/walkontable/src/cell/range.js +7 -44
  8. package/3rdparty/walkontable/src/cell/range.mjs +7 -44
  9. package/3rdparty/walkontable/src/core/_base.js +3 -9
  10. package/3rdparty/walkontable/src/core/_base.mjs +3 -9
  11. package/3rdparty/walkontable/src/core/clone.js +2 -2
  12. package/3rdparty/walkontable/src/core/clone.mjs +2 -2
  13. package/3rdparty/walkontable/src/core/core.js +2 -3
  14. package/3rdparty/walkontable/src/core/core.mjs +2 -3
  15. package/3rdparty/walkontable/src/event.js +7 -7
  16. package/3rdparty/walkontable/src/event.mjs +7 -7
  17. package/3rdparty/walkontable/src/facade/core.js +2 -2
  18. package/3rdparty/walkontable/src/facade/core.mjs +2 -2
  19. package/3rdparty/walkontable/src/index.js +2 -10
  20. package/3rdparty/walkontable/src/index.mjs +2 -2
  21. package/3rdparty/walkontable/src/overlay/_base.js +1 -1
  22. package/3rdparty/walkontable/src/overlay/_base.mjs +1 -1
  23. package/3rdparty/walkontable/src/overlay/inlineStart.js +4 -2
  24. package/3rdparty/walkontable/src/overlay/inlineStart.mjs +4 -2
  25. package/3rdparty/walkontable/src/overlay/top.js +4 -2
  26. package/3rdparty/walkontable/src/overlay/top.mjs +4 -2
  27. package/3rdparty/walkontable/src/selection.js +355 -0
  28. package/3rdparty/walkontable/src/selection.mjs +349 -0
  29. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +0 -9
  30. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +0 -9
  31. package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +0 -9
  32. package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +0 -9
  33. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.js +0 -9
  34. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.mjs +0 -9
  35. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +0 -9
  36. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +0 -9
  37. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +0 -9
  38. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +0 -9
  39. package/3rdparty/walkontable/src/table.js +79 -7
  40. package/3rdparty/walkontable/src/table.mjs +80 -8
  41. package/base.js +2 -2
  42. package/base.mjs +2 -2
  43. package/core.d.ts +3 -5
  44. package/core.js +309 -127
  45. package/core.mjs +309 -127
  46. package/dataMap/metaManager/metaSchema.js +0 -19
  47. package/dataMap/metaManager/metaSchema.mjs +0 -19
  48. package/dist/handsontable.css +3 -8
  49. package/dist/handsontable.full.css +3 -8
  50. package/dist/handsontable.full.js +9241 -11943
  51. package/dist/handsontable.full.min.css +3 -3
  52. package/dist/handsontable.full.min.js +107 -107
  53. package/dist/handsontable.js +12628 -15330
  54. package/dist/handsontable.min.css +3 -3
  55. package/dist/handsontable.min.js +4 -4
  56. package/editorManager.js +94 -21
  57. package/editorManager.mjs +98 -26
  58. package/editors/textEditor/textEditor.js +11 -3
  59. package/editors/textEditor/textEditor.mjs +12 -4
  60. package/helpers/mixed.js +1 -1
  61. package/helpers/mixed.mjs +1 -1
  62. package/helpers/number.d.ts +0 -1
  63. package/helpers/number.js +0 -18
  64. package/helpers/number.mjs +0 -17
  65. package/package.json +1 -1
  66. package/pluginHooks.d.ts +1 -5
  67. package/pluginHooks.js +1 -89
  68. package/pluginHooks.mjs +1 -89
  69. package/plugins/collapsibleColumns/collapsibleColumns.js +24 -81
  70. package/plugins/collapsibleColumns/collapsibleColumns.mjs +24 -81
  71. package/plugins/columnSorting/columnSorting.js +8 -50
  72. package/plugins/columnSorting/columnSorting.mjs +9 -49
  73. package/plugins/columnSorting/index.js +2 -4
  74. package/plugins/columnSorting/index.mjs +1 -1
  75. package/plugins/copyPaste/copyPaste.js +1 -5
  76. package/plugins/copyPaste/copyPaste.mjs +1 -5
  77. package/plugins/customBorders/customBorders.js +53 -18
  78. package/plugins/customBorders/customBorders.mjs +54 -19
  79. package/plugins/manualColumnResize/manualColumnResize.js +36 -5
  80. package/plugins/manualColumnResize/manualColumnResize.mjs +36 -5
  81. package/plugins/manualRowResize/manualRowResize.js +40 -9
  82. package/plugins/manualRowResize/manualRowResize.mjs +40 -9
  83. package/plugins/mergeCells/mergeCells.js +18 -5
  84. package/plugins/mergeCells/mergeCells.mjs +18 -5
  85. package/plugins/multiColumnSorting/multiColumnSorting.js +3 -42
  86. package/plugins/multiColumnSorting/multiColumnSorting.mjs +3 -42
  87. package/plugins/nestedHeaders/nestedHeaders.js +10 -132
  88. package/plugins/nestedHeaders/nestedHeaders.mjs +10 -132
  89. package/plugins/nestedHeaders/stateManager/index.js +0 -37
  90. package/plugins/nestedHeaders/stateManager/index.mjs +0 -37
  91. package/plugins/nestedRows/nestedRows.js +7 -52
  92. package/plugins/nestedRows/nestedRows.mjs +7 -52
  93. package/renderers/checkboxRenderer/checkboxRenderer.js +2 -2
  94. package/renderers/checkboxRenderer/checkboxRenderer.mjs +1 -1
  95. package/selection/highlight/constants.js +16 -0
  96. package/selection/highlight/constants.mjs +6 -0
  97. package/selection/highlight/highlight.js +89 -312
  98. package/selection/highlight/highlight.mjs +85 -302
  99. package/selection/highlight/types/activeHeader.js +9 -10
  100. package/selection/highlight/types/activeHeader.mjs +8 -10
  101. package/selection/highlight/types/area.js +27 -12
  102. package/selection/highlight/types/area.mjs +30 -16
  103. package/selection/highlight/types/{focus.js → cell.js} +8 -5
  104. package/selection/highlight/types/{focus.mjs → cell.mjs} +7 -5
  105. package/selection/highlight/types/customSelection.js +10 -7
  106. package/selection/highlight/types/customSelection.mjs +9 -7
  107. package/selection/highlight/types/fill.js +8 -5
  108. package/selection/highlight/types/fill.mjs +7 -5
  109. package/selection/highlight/types/header.js +20 -10
  110. package/selection/highlight/types/header.mjs +19 -10
  111. package/selection/highlight/types/{row.js → index.js} +31 -27
  112. package/selection/highlight/types/{row.mjs → index.mjs} +29 -24
  113. package/selection/highlight/visualSelection.js +27 -31
  114. package/selection/highlight/visualSelection.mjs +27 -31
  115. package/selection/index.js +7 -4
  116. package/selection/index.mjs +3 -2
  117. package/selection/mouseEventHandler.js +1 -1
  118. package/selection/mouseEventHandler.mjs +1 -1
  119. package/selection/range.js +8 -8
  120. package/selection/range.mjs +8 -8
  121. package/selection/selection.js +181 -315
  122. package/selection/selection.mjs +180 -310
  123. package/selection/transformation.js +96 -233
  124. package/selection/transformation.mjs +93 -230
  125. package/selection/utils.js +36 -12
  126. package/selection/utils.mjs +36 -13
  127. package/settings.d.ts +0 -1
  128. package/shortcuts/manager.js +0 -2
  129. package/shortcuts/manager.mjs +0 -2
  130. package/tableView.js +9 -58
  131. package/tableView.mjs +9 -58
  132. package/translations/indexMapper.js +9 -8
  133. package/translations/indexMapper.mjs +9 -8
  134. package/3rdparty/walkontable/src/selection/border/constants.js +0 -18
  135. package/3rdparty/walkontable/src/selection/border/constants.mjs +0 -13
  136. package/3rdparty/walkontable/src/selection/constants.js +0 -63
  137. package/3rdparty/walkontable/src/selection/constants.mjs +0 -51
  138. package/3rdparty/walkontable/src/selection/index.js +0 -30
  139. package/3rdparty/walkontable/src/selection/index.mjs +0 -5
  140. package/3rdparty/walkontable/src/selection/manager.js +0 -329
  141. package/3rdparty/walkontable/src/selection/manager.mjs +0 -323
  142. package/3rdparty/walkontable/src/selection/scanner.js +0 -364
  143. package/3rdparty/walkontable/src/selection/scanner.mjs +0 -360
  144. package/3rdparty/walkontable/src/selection/selection.js +0 -133
  145. package/3rdparty/walkontable/src/selection/selection.mjs +0 -127
  146. package/selection/highlight/types/areaLayered.js +0 -54
  147. package/selection/highlight/types/areaLayered.mjs +0 -49
  148. package/selection/highlight/types/column.js +0 -50
  149. package/selection/highlight/types/column.mjs +0 -45
  150. package/shortcutContexts/commands/editor/closeAndSave.js +0 -15
  151. package/shortcutContexts/commands/editor/closeAndSave.mjs +0 -10
  152. package/shortcutContexts/commands/editor/closeWithoutSaving.js +0 -13
  153. package/shortcutContexts/commands/editor/closeWithoutSaving.mjs +0 -8
  154. package/shortcutContexts/commands/editor/fastOpen.js +0 -16
  155. package/shortcutContexts/commands/editor/fastOpen.mjs +0 -11
  156. package/shortcutContexts/commands/editor/index.js +0 -16
  157. package/shortcutContexts/commands/editor/index.mjs +0 -12
  158. package/shortcutContexts/commands/editor/open.js +0 -29
  159. package/shortcutContexts/commands/editor/open.mjs +0 -24
  160. package/shortcutContexts/commands/emptySelectedCells.js +0 -12
  161. package/shortcutContexts/commands/emptySelectedCells.mjs +0 -7
  162. package/shortcutContexts/commands/extendCellsSelection/down.js +0 -15
  163. package/shortcutContexts/commands/extendCellsSelection/down.mjs +0 -10
  164. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +0 -21
  165. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +0 -16
  166. package/shortcutContexts/commands/extendCellsSelection/index.js +0 -26
  167. package/shortcutContexts/commands/extendCellsSelection/index.mjs +0 -22
  168. package/shortcutContexts/commands/extendCellsSelection/left.js +0 -15
  169. package/shortcutContexts/commands/extendCellsSelection/left.mjs +0 -10
  170. package/shortcutContexts/commands/extendCellsSelection/right.js +0 -15
  171. package/shortcutContexts/commands/extendCellsSelection/right.mjs +0 -10
  172. package/shortcutContexts/commands/extendCellsSelection/toColumns.js +0 -19
  173. package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +0 -14
  174. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +0 -22
  175. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +0 -17
  176. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +0 -17
  177. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +0 -12
  178. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +0 -17
  179. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +0 -12
  180. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +0 -40
  181. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +0 -35
  182. package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +0 -40
  183. package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +0 -35
  184. package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +0 -22
  185. package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +0 -17
  186. package/shortcutContexts/commands/extendCellsSelection/toRows.js +0 -19
  187. package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +0 -14
  188. package/shortcutContexts/commands/extendCellsSelection/up.js +0 -15
  189. package/shortcutContexts/commands/extendCellsSelection/up.mjs +0 -10
  190. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +0 -21
  191. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +0 -16
  192. package/shortcutContexts/commands/index.js +0 -52
  193. package/shortcutContexts/commands/index.mjs +0 -48
  194. package/shortcutContexts/commands/moveCellSelection/down.js +0 -12
  195. package/shortcutContexts/commands/moveCellSelection/down.mjs +0 -7
  196. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.js +0 -29
  197. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs +0 -24
  198. package/shortcutContexts/commands/moveCellSelection/index.js +0 -28
  199. package/shortcutContexts/commands/moveCellSelection/index.mjs +0 -24
  200. package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +0 -13
  201. package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +0 -8
  202. package/shortcutContexts/commands/moveCellSelection/inlineStart.js +0 -13
  203. package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +0 -8
  204. package/shortcutContexts/commands/moveCellSelection/left.js +0 -11
  205. package/shortcutContexts/commands/moveCellSelection/left.mjs +0 -6
  206. package/shortcutContexts/commands/moveCellSelection/right.js +0 -11
  207. package/shortcutContexts/commands/moveCellSelection/right.mjs +0 -6
  208. package/shortcutContexts/commands/moveCellSelection/toMostBottom.js +0 -16
  209. package/shortcutContexts/commands/moveCellSelection/toMostBottom.mjs +0 -11
  210. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.js +0 -17
  211. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.mjs +0 -12
  212. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.js +0 -13
  213. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.mjs +0 -8
  214. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.js +0 -16
  215. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.mjs +0 -11
  216. package/shortcutContexts/commands/moveCellSelection/toMostLeft.js +0 -36
  217. package/shortcutContexts/commands/moveCellSelection/toMostLeft.mjs +0 -31
  218. package/shortcutContexts/commands/moveCellSelection/toMostRight.js +0 -36
  219. package/shortcutContexts/commands/moveCellSelection/toMostRight.mjs +0 -31
  220. package/shortcutContexts/commands/moveCellSelection/toMostTop.js +0 -16
  221. package/shortcutContexts/commands/moveCellSelection/toMostTop.mjs +0 -11
  222. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.js +0 -18
  223. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.mjs +0 -13
  224. package/shortcutContexts/commands/moveCellSelection/up.js +0 -12
  225. package/shortcutContexts/commands/moveCellSelection/up.mjs +0 -7
  226. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.js +0 -29
  227. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs +0 -24
  228. package/shortcutContexts/commands/populateSelectedCellsData.js +0 -35
  229. package/shortcutContexts/commands/populateSelectedCellsData.mjs +0 -30
  230. package/shortcutContexts/commands/selectAll.js +0 -11
  231. package/shortcutContexts/commands/selectAll.mjs +0 -6
  232. package/shortcutContexts/constants.js +0 -19
  233. package/shortcutContexts/constants.mjs +0 -12
  234. package/shortcutContexts/editor.js +0 -29
  235. package/shortcutContexts/editor.mjs +0 -25
  236. package/shortcutContexts/grid.js +0 -244
  237. package/shortcutContexts/grid.mjs +0 -240
  238. package/shortcutContexts/index.js +0 -29
  239. package/shortcutContexts/index.mjs +0 -15
@@ -25,8 +25,8 @@ require("core-js/modules/es.weak-map.js");
25
25
  require("core-js/modules/web.dom-collections.iterator.js");
26
26
  var _element = require("../../helpers/dom/element");
27
27
  var _number = require("../../helpers/number");
28
- var _templateLiteralTag = require("../../helpers/templateLiteralTag");
29
28
  var _event = require("../../helpers/dom/event");
29
+ var _templateLiteralTag = require("../../helpers/templateLiteralTag");
30
30
  var _console = require("../../helpers/console");
31
31
  var _selection = require("../../selection");
32
32
  var _base = require("../base");
@@ -201,12 +201,6 @@ var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
201
201
  this.addHook('beforeOnCellMouseOver', function () {
202
202
  return _this2.onBeforeOnCellMouseOver.apply(_this2, arguments);
203
203
  });
204
- this.addHook('modifyTransformStart', function () {
205
- return _this2.onModifyTransformStart.apply(_this2, arguments);
206
- });
207
- this.addHook('afterSelection', function () {
208
- return _this2.updateFocusHighlightPosition();
209
- });
210
204
  this.addHook('afterGetColumnHeaderRenderers', function (array) {
211
205
  return _this2.onAfterGetColumnHeaderRenderers(array);
212
206
  });
@@ -222,18 +216,9 @@ var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
222
216
  this.addHook('beforeCopy', function () {
223
217
  return _this2.onBeforeCopy.apply(_this2, arguments);
224
218
  });
225
- this.addHook('beforeSelectColumns', function () {
226
- return _this2.onBeforeSelectColumns.apply(_this2, arguments);
227
- });
228
219
  this.addHook('afterViewportColumnCalculatorOverride', function () {
229
220
  return _this2.onAfterViewportColumnCalculatorOverride.apply(_this2, arguments);
230
221
  });
231
- this.hot.columnIndexMapper.addLocalHook('cacheUpdated', function () {
232
- return _this2.updateFocusHighlightPosition();
233
- });
234
- this.hot.rowIndexMapper.addLocalHook('cacheUpdated', function () {
235
- return _this2.updateFocusHighlightPosition();
236
- });
237
222
  _get(_getPrototypeOf(NestedHeaders.prototype), "enablePlugin", this).call(this);
238
223
  this.updatePlugin(); // @TODO: Workaround for broken plugin initialization abstraction.
239
224
  }
@@ -455,34 +440,6 @@ var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
455
440
  return this.hot.getColHeader(visualColumnIndex, headerLevel);
456
441
  }
457
442
 
458
- /**
459
- * Updates the selection focus highlight position to point to the nested header root element (TH)
460
- * even when the logical coordinates point in-between the header.
461
- *
462
- * @private
463
- */
464
- }, {
465
- key: "updateFocusHighlightPosition",
466
- value: function updateFocusHighlightPosition() {
467
- var _this$hot;
468
- var selection = (_this$hot = this.hot) === null || _this$hot === void 0 ? void 0 : _this$hot.getSelectedRangeLast();
469
- if (!selection) {
470
- return;
471
- }
472
- var highlight = selection.highlight;
473
- var isNestedHeadersRange = highlight.isHeader() && highlight.col >= 0;
474
- if (isNestedHeadersRange) {
475
- var columnIndex = _classPrivateFieldGet(this, _stateManager).findLeftMostColumnIndex(highlight.row, highlight.col);
476
- var focusHighlight = this.hot.selection.highlight.getFocus();
477
-
478
- // Correct the highlight/focus selection to highlight the correct TH element
479
- focusHighlight.visualCellRange.highlight.col = columnIndex;
480
- focusHighlight.visualCellRange.from.col = columnIndex;
481
- focusHighlight.visualCellRange.to.col = columnIndex;
482
- focusHighlight.commit();
483
- }
484
- }
485
-
486
443
  /**
487
444
  * Allows to control which header DOM element will be used to highlight.
488
445
  *
@@ -499,7 +456,8 @@ var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
499
456
  if (!headerNodeData) {
500
457
  return visualColumn;
501
458
  }
502
- var columnCursor = highlightMeta.columnCursor,
459
+ var classNames = highlightMeta.classNames,
460
+ columnCursor = highlightMeta.columnCursor,
503
461
  selectionType = highlightMeta.selectionType,
504
462
  selectionWidth = highlightMeta.selectionWidth;
505
463
  var _classPrivateFieldGet4 = _classPrivateFieldGet(this, _stateManager).getHeaderSettings(headerLevel, visualColumn),
@@ -511,8 +469,8 @@ var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
511
469
  }
512
470
  } else if (selectionType === _selection.ACTIVE_HEADER_TYPE) {
513
471
  if (colspan > selectionWidth - columnCursor || !isRoot) {
514
- // Prevents adding any CSS class names to the TH element
515
- return null;
472
+ // Reset the class names array so the generated TH element won't be modified.
473
+ classNames.length = 0;
516
474
  }
517
475
  }
518
476
  return visualColumn;
@@ -643,7 +601,7 @@ var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
643
601
  }, {
644
602
  key: "onBeforeOnCellMouseOver",
645
603
  value: function onBeforeOnCellMouseOver(event, coords, TD, controller) {
646
- var _this$hot$selection;
604
+ var _this$hot;
647
605
  if (!this.hot.view.isMouseDown()) {
648
606
  return;
649
607
  }
@@ -664,93 +622,13 @@ var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
664
622
  controller.cell = true;
665
623
  var columnsToSelect = [];
666
624
  if (coords.col < from.col) {
667
- columnsToSelect.push(bottomEndCoords.col, columnIndex, coords.row);
625
+ columnsToSelect.push(bottomEndCoords.col, columnIndex);
668
626
  } else if (coords.col > from.col) {
669
- columnsToSelect.push(topStartCoords.col, columnIndex + origColspan - 1, coords.row);
627
+ columnsToSelect.push(topStartCoords.col, columnIndex + origColspan - 1);
670
628
  } else {
671
- columnsToSelect.push(columnIndex, columnIndex + origColspan - 1, coords.row);
672
- }
673
- (_this$hot$selection = this.hot.selection).selectColumns.apply(_this$hot$selection, columnsToSelect);
674
- }
675
-
676
- /**
677
- * `modifyTransformStart` hook is called every time the keyboard navigation is used.
678
- *
679
- * @private
680
- * @param {object} delta The transformation delta.
681
- */
682
- }, {
683
- key: "onModifyTransformStart",
684
- value: function onModifyTransformStart(delta) {
685
- var _this$hot$getSelected = this.hot.getSelectedRangeLast(),
686
- highlight = _this$hot$getSelected.highlight;
687
- var nextCoords = this.hot._createCellCoords(highlight.row + delta.row, highlight.col + delta.col);
688
- var isNestedHeadersRange = nextCoords.isHeader() && nextCoords.col >= 0;
689
- if (!isNestedHeadersRange) {
690
- return;
691
- }
692
- var visualColumnIndexStart = _classPrivateFieldGet(this, _stateManager).findLeftMostColumnIndex(nextCoords.row, nextCoords.col);
693
- var visualColumnIndexEnd = _classPrivateFieldGet(this, _stateManager).findRightMostColumnIndex(nextCoords.row, nextCoords.col);
694
- if (delta.col < 0) {
695
- var nextColumn = highlight.col >= visualColumnIndexStart && highlight.col <= visualColumnIndexEnd ? visualColumnIndexStart - 1 : visualColumnIndexEnd;
696
- var notHiddenColumnIndex = this.hot.columnIndexMapper.getNearestNotHiddenIndex(nextColumn, -1);
697
- if (notHiddenColumnIndex === null) {
698
- // There are no visible columns anymore, so move the selection out of the table edge. This will
699
- // be processed by the selection Transformer class as a move selection to the previous row (if autoWrapRow is enabled).
700
- delta.col = -this.hot.view.countRenderableColumnsInRange(0, highlight.col);
701
- } else {
702
- delta.col = -Math.max(this.hot.view.countRenderableColumnsInRange(notHiddenColumnIndex, highlight.col) - 1, 1);
703
- }
704
- } else if (delta.col > 0) {
705
- var _nextColumn = highlight.col >= visualColumnIndexStart && highlight.col <= visualColumnIndexEnd ? visualColumnIndexEnd + 1 : visualColumnIndexStart;
706
- var _notHiddenColumnIndex = this.hot.columnIndexMapper.getNearestNotHiddenIndex(_nextColumn, 1);
707
- if (_notHiddenColumnIndex === null) {
708
- // There are no visible columns anymore, so move the selection out of the table edge. This will
709
- // be processed by the selection Transformer class as a move selection to the next row (if autoWrapRow is enabled).
710
- delta.col = this.hot.view.countRenderableColumnsInRange(highlight.col, this.hot.countCols());
711
- } else {
712
- delta.col = Math.max(this.hot.view.countRenderableColumnsInRange(highlight.col, _notHiddenColumnIndex) - 1, 1);
713
- }
714
- }
715
- }
716
-
717
- /**
718
- * The hook observes the column selection from the Selection API and modifies the column range to
719
- * ensure that the whole nested column will be covered.
720
- *
721
- * @private
722
- * @param {*} from The coords object where the selection starts.
723
- * @param {*} to The coords object where the selection ends.
724
- */
725
- }, {
726
- key: "onBeforeSelectColumns",
727
- value: function onBeforeSelectColumns(from, to) {
728
- var headerLevel = from.row;
729
- var startNodeData = this._getHeaderTreeNodeDataByCoords({
730
- row: headerLevel,
731
- col: from.col
732
- });
733
- var endNodeData = this._getHeaderTreeNodeDataByCoords({
734
- row: headerLevel,
735
- col: to.col
736
- });
737
- if (to.col < from.col) {
738
- // Column selection from right to left
739
- if (startNodeData) {
740
- from.col = startNodeData.columnIndex + startNodeData.origColspan - 1;
741
- }
742
- if (endNodeData) {
743
- to.col = endNodeData.columnIndex;
744
- }
745
- } else if (to.col >= from.col) {
746
- // Column selection from left to right or a single column selection
747
- if (startNodeData) {
748
- from.col = startNodeData.columnIndex;
749
- }
750
- if (endNodeData) {
751
- to.col = endNodeData.columnIndex + endNodeData.origColspan - 1;
752
- }
629
+ columnsToSelect.push(columnIndex, columnIndex + origColspan - 1);
753
630
  }
631
+ (_this$hot = this.hot).selectColumns.apply(_this$hot, columnsToSelect);
754
632
  }
755
633
 
756
634
  /**
@@ -45,8 +45,8 @@ function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!priva
45
45
  function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
46
46
  import { addClass, removeClass } from "../../helpers/dom/element.mjs";
47
47
  import { isNumeric } from "../../helpers/number.mjs";
48
- import { toSingleLine } from "../../helpers/templateLiteralTag.mjs";
49
48
  import { isLeftClick, isRightClick } from "../../helpers/dom/event.mjs";
49
+ import { toSingleLine } from "../../helpers/templateLiteralTag.mjs";
50
50
  import { warn } from "../../helpers/console.mjs";
51
51
  import { ACTIVE_HEADER_TYPE, HEADER_TYPE } from "../../selection/index.mjs";
52
52
  import { BasePlugin } from "../base/index.mjs";
@@ -194,12 +194,6 @@ export var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
194
194
  this.addHook('beforeOnCellMouseOver', function () {
195
195
  return _this2.onBeforeOnCellMouseOver.apply(_this2, arguments);
196
196
  });
197
- this.addHook('modifyTransformStart', function () {
198
- return _this2.onModifyTransformStart.apply(_this2, arguments);
199
- });
200
- this.addHook('afterSelection', function () {
201
- return _this2.updateFocusHighlightPosition();
202
- });
203
197
  this.addHook('afterGetColumnHeaderRenderers', function (array) {
204
198
  return _this2.onAfterGetColumnHeaderRenderers(array);
205
199
  });
@@ -215,18 +209,9 @@ export var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
215
209
  this.addHook('beforeCopy', function () {
216
210
  return _this2.onBeforeCopy.apply(_this2, arguments);
217
211
  });
218
- this.addHook('beforeSelectColumns', function () {
219
- return _this2.onBeforeSelectColumns.apply(_this2, arguments);
220
- });
221
212
  this.addHook('afterViewportColumnCalculatorOverride', function () {
222
213
  return _this2.onAfterViewportColumnCalculatorOverride.apply(_this2, arguments);
223
214
  });
224
- this.hot.columnIndexMapper.addLocalHook('cacheUpdated', function () {
225
- return _this2.updateFocusHighlightPosition();
226
- });
227
- this.hot.rowIndexMapper.addLocalHook('cacheUpdated', function () {
228
- return _this2.updateFocusHighlightPosition();
229
- });
230
215
  _get(_getPrototypeOf(NestedHeaders.prototype), "enablePlugin", this).call(this);
231
216
  this.updatePlugin(); // @TODO: Workaround for broken plugin initialization abstraction.
232
217
  }
@@ -448,34 +433,6 @@ export var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
448
433
  return this.hot.getColHeader(visualColumnIndex, headerLevel);
449
434
  }
450
435
 
451
- /**
452
- * Updates the selection focus highlight position to point to the nested header root element (TH)
453
- * even when the logical coordinates point in-between the header.
454
- *
455
- * @private
456
- */
457
- }, {
458
- key: "updateFocusHighlightPosition",
459
- value: function updateFocusHighlightPosition() {
460
- var _this$hot;
461
- var selection = (_this$hot = this.hot) === null || _this$hot === void 0 ? void 0 : _this$hot.getSelectedRangeLast();
462
- if (!selection) {
463
- return;
464
- }
465
- var highlight = selection.highlight;
466
- var isNestedHeadersRange = highlight.isHeader() && highlight.col >= 0;
467
- if (isNestedHeadersRange) {
468
- var columnIndex = _classPrivateFieldGet(this, _stateManager).findLeftMostColumnIndex(highlight.row, highlight.col);
469
- var focusHighlight = this.hot.selection.highlight.getFocus();
470
-
471
- // Correct the highlight/focus selection to highlight the correct TH element
472
- focusHighlight.visualCellRange.highlight.col = columnIndex;
473
- focusHighlight.visualCellRange.from.col = columnIndex;
474
- focusHighlight.visualCellRange.to.col = columnIndex;
475
- focusHighlight.commit();
476
- }
477
- }
478
-
479
436
  /**
480
437
  * Allows to control which header DOM element will be used to highlight.
481
438
  *
@@ -492,7 +449,8 @@ export var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
492
449
  if (!headerNodeData) {
493
450
  return visualColumn;
494
451
  }
495
- var columnCursor = highlightMeta.columnCursor,
452
+ var classNames = highlightMeta.classNames,
453
+ columnCursor = highlightMeta.columnCursor,
496
454
  selectionType = highlightMeta.selectionType,
497
455
  selectionWidth = highlightMeta.selectionWidth;
498
456
  var _classPrivateFieldGet4 = _classPrivateFieldGet(this, _stateManager).getHeaderSettings(headerLevel, visualColumn),
@@ -504,8 +462,8 @@ export var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
504
462
  }
505
463
  } else if (selectionType === ACTIVE_HEADER_TYPE) {
506
464
  if (colspan > selectionWidth - columnCursor || !isRoot) {
507
- // Prevents adding any CSS class names to the TH element
508
- return null;
465
+ // Reset the class names array so the generated TH element won't be modified.
466
+ classNames.length = 0;
509
467
  }
510
468
  }
511
469
  return visualColumn;
@@ -636,7 +594,7 @@ export var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
636
594
  }, {
637
595
  key: "onBeforeOnCellMouseOver",
638
596
  value: function onBeforeOnCellMouseOver(event, coords, TD, controller) {
639
- var _this$hot$selection;
597
+ var _this$hot;
640
598
  if (!this.hot.view.isMouseDown()) {
641
599
  return;
642
600
  }
@@ -657,93 +615,13 @@ export var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
657
615
  controller.cell = true;
658
616
  var columnsToSelect = [];
659
617
  if (coords.col < from.col) {
660
- columnsToSelect.push(bottomEndCoords.col, columnIndex, coords.row);
618
+ columnsToSelect.push(bottomEndCoords.col, columnIndex);
661
619
  } else if (coords.col > from.col) {
662
- columnsToSelect.push(topStartCoords.col, columnIndex + origColspan - 1, coords.row);
620
+ columnsToSelect.push(topStartCoords.col, columnIndex + origColspan - 1);
663
621
  } else {
664
- columnsToSelect.push(columnIndex, columnIndex + origColspan - 1, coords.row);
665
- }
666
- (_this$hot$selection = this.hot.selection).selectColumns.apply(_this$hot$selection, columnsToSelect);
667
- }
668
-
669
- /**
670
- * `modifyTransformStart` hook is called every time the keyboard navigation is used.
671
- *
672
- * @private
673
- * @param {object} delta The transformation delta.
674
- */
675
- }, {
676
- key: "onModifyTransformStart",
677
- value: function onModifyTransformStart(delta) {
678
- var _this$hot$getSelected = this.hot.getSelectedRangeLast(),
679
- highlight = _this$hot$getSelected.highlight;
680
- var nextCoords = this.hot._createCellCoords(highlight.row + delta.row, highlight.col + delta.col);
681
- var isNestedHeadersRange = nextCoords.isHeader() && nextCoords.col >= 0;
682
- if (!isNestedHeadersRange) {
683
- return;
684
- }
685
- var visualColumnIndexStart = _classPrivateFieldGet(this, _stateManager).findLeftMostColumnIndex(nextCoords.row, nextCoords.col);
686
- var visualColumnIndexEnd = _classPrivateFieldGet(this, _stateManager).findRightMostColumnIndex(nextCoords.row, nextCoords.col);
687
- if (delta.col < 0) {
688
- var nextColumn = highlight.col >= visualColumnIndexStart && highlight.col <= visualColumnIndexEnd ? visualColumnIndexStart - 1 : visualColumnIndexEnd;
689
- var notHiddenColumnIndex = this.hot.columnIndexMapper.getNearestNotHiddenIndex(nextColumn, -1);
690
- if (notHiddenColumnIndex === null) {
691
- // There are no visible columns anymore, so move the selection out of the table edge. This will
692
- // be processed by the selection Transformer class as a move selection to the previous row (if autoWrapRow is enabled).
693
- delta.col = -this.hot.view.countRenderableColumnsInRange(0, highlight.col);
694
- } else {
695
- delta.col = -Math.max(this.hot.view.countRenderableColumnsInRange(notHiddenColumnIndex, highlight.col) - 1, 1);
696
- }
697
- } else if (delta.col > 0) {
698
- var _nextColumn = highlight.col >= visualColumnIndexStart && highlight.col <= visualColumnIndexEnd ? visualColumnIndexEnd + 1 : visualColumnIndexStart;
699
- var _notHiddenColumnIndex = this.hot.columnIndexMapper.getNearestNotHiddenIndex(_nextColumn, 1);
700
- if (_notHiddenColumnIndex === null) {
701
- // There are no visible columns anymore, so move the selection out of the table edge. This will
702
- // be processed by the selection Transformer class as a move selection to the next row (if autoWrapRow is enabled).
703
- delta.col = this.hot.view.countRenderableColumnsInRange(highlight.col, this.hot.countCols());
704
- } else {
705
- delta.col = Math.max(this.hot.view.countRenderableColumnsInRange(highlight.col, _notHiddenColumnIndex) - 1, 1);
706
- }
707
- }
708
- }
709
-
710
- /**
711
- * The hook observes the column selection from the Selection API and modifies the column range to
712
- * ensure that the whole nested column will be covered.
713
- *
714
- * @private
715
- * @param {*} from The coords object where the selection starts.
716
- * @param {*} to The coords object where the selection ends.
717
- */
718
- }, {
719
- key: "onBeforeSelectColumns",
720
- value: function onBeforeSelectColumns(from, to) {
721
- var headerLevel = from.row;
722
- var startNodeData = this._getHeaderTreeNodeDataByCoords({
723
- row: headerLevel,
724
- col: from.col
725
- });
726
- var endNodeData = this._getHeaderTreeNodeDataByCoords({
727
- row: headerLevel,
728
- col: to.col
729
- });
730
- if (to.col < from.col) {
731
- // Column selection from right to left
732
- if (startNodeData) {
733
- from.col = startNodeData.columnIndex + startNodeData.origColspan - 1;
734
- }
735
- if (endNodeData) {
736
- to.col = endNodeData.columnIndex;
737
- }
738
- } else if (to.col >= from.col) {
739
- // Column selection from left to right or a single column selection
740
- if (startNodeData) {
741
- from.col = startNodeData.columnIndex;
742
- }
743
- if (endNodeData) {
744
- to.col = endNodeData.columnIndex + endNodeData.origColspan - 1;
745
- }
622
+ columnsToSelect.push(columnIndex, columnIndex + origColspan - 1);
746
623
  }
624
+ (_this$hot = this.hot).selectColumns.apply(_this$hot, columnsToSelect);
747
625
  }
748
626
 
749
627
  /**
@@ -416,43 +416,6 @@ var StateManager = /*#__PURE__*/function () {
416
416
  return stepBackColumn;
417
417
  }
418
418
 
419
- /**
420
- * The method is helpful in cases where the column index targets in-between currently
421
- * collapsed column. In that case, the method returns the right-most column index
422
- * where the nested header ends.
423
- *
424
- * @param {number} headerLevel Header level (there is support for negative and positive values).
425
- * @param {number} columnIndex A visual column index.
426
- * @returns {number}
427
- */
428
- }, {
429
- key: "findRightMostColumnIndex",
430
- value: function findRightMostColumnIndex(headerLevel, columnIndex) {
431
- var _this$getHeaderSettin3;
432
- var _ref4 = (_this$getHeaderSettin3 = this.getHeaderSettings(headerLevel, columnIndex)) !== null && _this$getHeaderSettin3 !== void 0 ? _this$getHeaderSettin3 : {
433
- isRoot: true,
434
- origColspan: 1
435
- },
436
- isRoot = _ref4.isRoot,
437
- origColspan = _ref4.origColspan;
438
- if (isRoot) {
439
- return columnIndex + origColspan - 1;
440
- }
441
- var stepForthColumn = columnIndex + 1;
442
- while (stepForthColumn < this.getColumnsCount()) {
443
- var _this$getHeaderSettin4;
444
- var _ref5 = (_this$getHeaderSettin4 = this.getHeaderSettings(headerLevel, stepForthColumn)) !== null && _this$getHeaderSettin4 !== void 0 ? _this$getHeaderSettin4 : {
445
- isRoot: true
446
- },
447
- isRootNode = _ref5.isRoot;
448
- if (isRootNode) {
449
- break;
450
- }
451
- stepForthColumn += 1;
452
- }
453
- return stepForthColumn - 1;
454
- }
455
-
456
419
  /**
457
420
  * Gets a total number of headers levels.
458
421
  *
@@ -411,43 +411,6 @@ 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
-
451
414
  /**
452
415
  * Gets a total number of headers levels.
453
416
  *
@@ -62,7 +62,6 @@ 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;
66
65
  var privatePool = new WeakMap();
67
66
 
68
67
  /* eslint-disable jsdoc/require-description-complete-sentence */
@@ -204,7 +203,6 @@ var NestedRows = /*#__PURE__*/function (_BasePlugin) {
204
203
  this.addHook('beforeUpdateData', function (data) {
205
204
  return _this2.onBeforeLoadData(data);
206
205
  });
207
- this.registerShortcuts();
208
206
  _get(_getPrototypeOf(NestedRows.prototype), "enablePlugin", this).call(this);
209
207
  }
210
208
 
@@ -215,7 +213,6 @@ var NestedRows = /*#__PURE__*/function (_BasePlugin) {
215
213
  key: "disablePlugin",
216
214
  value: function disablePlugin() {
217
215
  this.hot.rowIndexMapper.unregisterMap('nestedRows');
218
- this.unregisterShortcuts();
219
216
  _get(_getPrototypeOf(NestedRows.prototype), "disablePlugin", this).call(this);
220
217
  }
221
218
 
@@ -239,48 +236,6 @@ var NestedRows = /*#__PURE__*/function (_BasePlugin) {
239
236
  _get(_getPrototypeOf(NestedRows.prototype), "updatePlugin", this).call(this);
240
237
  }
241
238
 
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
-
284
239
  /**
285
240
  * `beforeRowMove` hook callback.
286
241
  *
@@ -460,15 +415,15 @@ var NestedRows = /*#__PURE__*/function (_BasePlugin) {
460
415
  }, {
461
416
  key: "onAfterRemoveRow",
462
417
  value: function onAfterRemoveRow(index, amount, logicRows, source) {
463
- var _this4 = this;
418
+ var _this3 = this;
464
419
  if (source === this.pluginName) {
465
420
  return;
466
421
  }
467
422
  var priv = privatePool.get(this);
468
423
  setTimeout(function () {
469
424
  priv.skipRender = null;
470
- _this4.headersUI.updateRowHeaderWidth();
471
- _this4.collapsingUI.collapsedRowsStash.applyStash();
425
+ _this3.headersUI.updateRowHeaderWidth();
426
+ _this3.collapsingUI.collapsedRowsStash.applyStash();
472
427
  }, 0);
473
428
  }
474
429
 
@@ -484,17 +439,17 @@ var NestedRows = /*#__PURE__*/function (_BasePlugin) {
484
439
  }, {
485
440
  key: "onBeforeRemoveRow",
486
441
  value: function onBeforeRemoveRow(index, amount, physicalRows) {
487
- var _this5 = this;
442
+ var _this4 = this;
488
443
  var modifiedPhysicalRows = Array.from(physicalRows.reduce(function (removedRows, physicalIndex) {
489
- if (_this5.dataManager.isParent(physicalIndex)) {
490
- var children = _this5.dataManager.getDataObject(physicalIndex).__children;
444
+ if (_this4.dataManager.isParent(physicalIndex)) {
445
+ var children = _this4.dataManager.getDataObject(physicalIndex).__children;
491
446
 
492
447
  // Preserve a parent in the list of removed rows.
493
448
  removedRows.add(physicalIndex);
494
449
  if (Array.isArray(children)) {
495
450
  // Add a children to the list of removed rows.
496
451
  children.forEach(function (child) {
497
- return removedRows.add(_this5.dataManager.getRowIndex(child));
452
+ return removedRows.add(_this4.dataManager.getRowIndex(child));
498
453
  });
499
454
  }
500
455
  return removedRows;