handsontable 0.0.0-next-086cb13-20230613 → 0.0.0-next-ac97c93-20230617

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 (232) 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/common.d.ts +1 -1
  44. package/core.d.ts +6 -9
  45. package/core.js +390 -235
  46. package/core.mjs +395 -240
  47. package/dataMap/metaManager/metaSchema.js +0 -19
  48. package/dataMap/metaManager/metaSchema.mjs +0 -19
  49. package/dist/handsontable.css +3 -8
  50. package/dist/handsontable.full.css +3 -8
  51. package/dist/handsontable.full.js +10189 -12963
  52. package/dist/handsontable.full.min.css +3 -3
  53. package/dist/handsontable.full.min.js +112 -112
  54. package/dist/handsontable.js +13133 -15907
  55. package/dist/handsontable.min.css +3 -3
  56. package/dist/handsontable.min.js +4 -4
  57. package/editorManager.js +82 -21
  58. package/editorManager.mjs +86 -26
  59. package/editors/textEditor/textEditor.js +11 -3
  60. package/editors/textEditor/textEditor.mjs +12 -4
  61. package/helpers/mixed.js +1 -1
  62. package/helpers/mixed.mjs +1 -1
  63. package/helpers/number.d.ts +0 -1
  64. package/helpers/number.js +0 -18
  65. package/helpers/number.mjs +0 -17
  66. package/package.json +1 -1
  67. package/pluginHooks.d.ts +1 -6
  68. package/pluginHooks.js +1 -100
  69. package/pluginHooks.mjs +1 -100
  70. package/plugins/autofill/autofill.js +1 -2
  71. package/plugins/autofill/autofill.mjs +2 -3
  72. package/plugins/autofill/utils.js +1 -39
  73. package/plugins/autofill/utils.mjs +0 -37
  74. package/plugins/collapsibleColumns/collapsibleColumns.js +24 -81
  75. package/plugins/collapsibleColumns/collapsibleColumns.mjs +24 -81
  76. package/plugins/copyPaste/copyPaste.js +1 -5
  77. package/plugins/copyPaste/copyPaste.mjs +1 -5
  78. package/plugins/customBorders/customBorders.js +53 -18
  79. package/plugins/customBorders/customBorders.mjs +54 -19
  80. package/plugins/mergeCells/mergeCells.js +18 -5
  81. package/plugins/mergeCells/mergeCells.mjs +18 -5
  82. package/plugins/nestedHeaders/nestedHeaders.js +10 -132
  83. package/plugins/nestedHeaders/nestedHeaders.mjs +10 -132
  84. package/plugins/nestedHeaders/stateManager/index.js +0 -37
  85. package/plugins/nestedHeaders/stateManager/index.mjs +0 -37
  86. package/renderers/checkboxRenderer/checkboxRenderer.js +2 -2
  87. package/renderers/checkboxRenderer/checkboxRenderer.mjs +1 -1
  88. package/selection/highlight/constants.js +16 -0
  89. package/selection/highlight/constants.mjs +6 -0
  90. package/selection/highlight/highlight.js +89 -312
  91. package/selection/highlight/highlight.mjs +85 -302
  92. package/selection/highlight/types/activeHeader.js +9 -10
  93. package/selection/highlight/types/activeHeader.mjs +8 -10
  94. package/selection/highlight/types/area.js +27 -12
  95. package/selection/highlight/types/area.mjs +30 -16
  96. package/selection/highlight/types/{focus.js → cell.js} +8 -5
  97. package/selection/highlight/types/{focus.mjs → cell.mjs} +7 -5
  98. package/selection/highlight/types/customSelection.js +10 -7
  99. package/selection/highlight/types/customSelection.mjs +9 -7
  100. package/selection/highlight/types/fill.js +8 -5
  101. package/selection/highlight/types/fill.mjs +7 -5
  102. package/selection/highlight/types/header.js +20 -10
  103. package/selection/highlight/types/header.mjs +19 -10
  104. package/selection/highlight/types/{row.js → index.js} +31 -27
  105. package/selection/highlight/types/{row.mjs → index.mjs} +29 -24
  106. package/selection/highlight/visualSelection.js +27 -31
  107. package/selection/highlight/visualSelection.mjs +27 -31
  108. package/selection/index.js +7 -4
  109. package/selection/index.mjs +3 -2
  110. package/selection/mouseEventHandler.js +1 -1
  111. package/selection/mouseEventHandler.mjs +1 -1
  112. package/selection/range.js +8 -8
  113. package/selection/range.mjs +8 -8
  114. package/selection/selection.js +181 -315
  115. package/selection/selection.mjs +180 -310
  116. package/selection/transformation.js +96 -233
  117. package/selection/transformation.mjs +93 -230
  118. package/selection/utils.js +36 -12
  119. package/selection/utils.mjs +36 -13
  120. package/settings.d.ts +0 -1
  121. package/shortcuts/manager.js +0 -2
  122. package/shortcuts/manager.mjs +0 -2
  123. package/tableView.js +9 -58
  124. package/tableView.mjs +9 -58
  125. package/translations/indexMapper.js +7 -56
  126. package/translations/indexMapper.mjs +8 -56
  127. package/3rdparty/walkontable/src/selection/border/constants.js +0 -18
  128. package/3rdparty/walkontable/src/selection/border/constants.mjs +0 -13
  129. package/3rdparty/walkontable/src/selection/constants.js +0 -63
  130. package/3rdparty/walkontable/src/selection/constants.mjs +0 -51
  131. package/3rdparty/walkontable/src/selection/index.js +0 -30
  132. package/3rdparty/walkontable/src/selection/index.mjs +0 -5
  133. package/3rdparty/walkontable/src/selection/manager.js +0 -329
  134. package/3rdparty/walkontable/src/selection/manager.mjs +0 -323
  135. package/3rdparty/walkontable/src/selection/scanner.js +0 -364
  136. package/3rdparty/walkontable/src/selection/scanner.mjs +0 -360
  137. package/3rdparty/walkontable/src/selection/selection.js +0 -133
  138. package/3rdparty/walkontable/src/selection/selection.mjs +0 -127
  139. package/selection/highlight/types/areaLayered.js +0 -54
  140. package/selection/highlight/types/areaLayered.mjs +0 -49
  141. package/selection/highlight/types/column.js +0 -50
  142. package/selection/highlight/types/column.mjs +0 -45
  143. package/shortcutContexts/commands/editor/closeAndSave.js +0 -15
  144. package/shortcutContexts/commands/editor/closeAndSave.mjs +0 -10
  145. package/shortcutContexts/commands/editor/closeWithoutSaving.js +0 -13
  146. package/shortcutContexts/commands/editor/closeWithoutSaving.mjs +0 -8
  147. package/shortcutContexts/commands/editor/fastOpen.js +0 -16
  148. package/shortcutContexts/commands/editor/fastOpen.mjs +0 -11
  149. package/shortcutContexts/commands/editor/index.js +0 -16
  150. package/shortcutContexts/commands/editor/index.mjs +0 -12
  151. package/shortcutContexts/commands/editor/open.js +0 -29
  152. package/shortcutContexts/commands/editor/open.mjs +0 -24
  153. package/shortcutContexts/commands/emptySelectedCells.js +0 -12
  154. package/shortcutContexts/commands/emptySelectedCells.mjs +0 -7
  155. package/shortcutContexts/commands/extendCellsSelection/down.js +0 -15
  156. package/shortcutContexts/commands/extendCellsSelection/down.mjs +0 -10
  157. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +0 -21
  158. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +0 -16
  159. package/shortcutContexts/commands/extendCellsSelection/index.js +0 -26
  160. package/shortcutContexts/commands/extendCellsSelection/index.mjs +0 -22
  161. package/shortcutContexts/commands/extendCellsSelection/left.js +0 -15
  162. package/shortcutContexts/commands/extendCellsSelection/left.mjs +0 -10
  163. package/shortcutContexts/commands/extendCellsSelection/right.js +0 -15
  164. package/shortcutContexts/commands/extendCellsSelection/right.mjs +0 -10
  165. package/shortcutContexts/commands/extendCellsSelection/toColumns.js +0 -19
  166. package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +0 -14
  167. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +0 -22
  168. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +0 -17
  169. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +0 -17
  170. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +0 -12
  171. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +0 -17
  172. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +0 -12
  173. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +0 -40
  174. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +0 -35
  175. package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +0 -40
  176. package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +0 -35
  177. package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +0 -22
  178. package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +0 -17
  179. package/shortcutContexts/commands/extendCellsSelection/toRows.js +0 -19
  180. package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +0 -14
  181. package/shortcutContexts/commands/extendCellsSelection/up.js +0 -15
  182. package/shortcutContexts/commands/extendCellsSelection/up.mjs +0 -10
  183. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +0 -21
  184. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +0 -16
  185. package/shortcutContexts/commands/index.js +0 -52
  186. package/shortcutContexts/commands/index.mjs +0 -48
  187. package/shortcutContexts/commands/moveCellSelection/down.js +0 -12
  188. package/shortcutContexts/commands/moveCellSelection/down.mjs +0 -7
  189. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.js +0 -29
  190. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs +0 -24
  191. package/shortcutContexts/commands/moveCellSelection/index.js +0 -28
  192. package/shortcutContexts/commands/moveCellSelection/index.mjs +0 -24
  193. package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +0 -13
  194. package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +0 -8
  195. package/shortcutContexts/commands/moveCellSelection/inlineStart.js +0 -13
  196. package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +0 -8
  197. package/shortcutContexts/commands/moveCellSelection/left.js +0 -11
  198. package/shortcutContexts/commands/moveCellSelection/left.mjs +0 -6
  199. package/shortcutContexts/commands/moveCellSelection/right.js +0 -11
  200. package/shortcutContexts/commands/moveCellSelection/right.mjs +0 -6
  201. package/shortcutContexts/commands/moveCellSelection/toMostBottom.js +0 -16
  202. package/shortcutContexts/commands/moveCellSelection/toMostBottom.mjs +0 -11
  203. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.js +0 -17
  204. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.mjs +0 -12
  205. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.js +0 -13
  206. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.mjs +0 -8
  207. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.js +0 -16
  208. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.mjs +0 -11
  209. package/shortcutContexts/commands/moveCellSelection/toMostLeft.js +0 -36
  210. package/shortcutContexts/commands/moveCellSelection/toMostLeft.mjs +0 -31
  211. package/shortcutContexts/commands/moveCellSelection/toMostRight.js +0 -36
  212. package/shortcutContexts/commands/moveCellSelection/toMostRight.mjs +0 -31
  213. package/shortcutContexts/commands/moveCellSelection/toMostTop.js +0 -16
  214. package/shortcutContexts/commands/moveCellSelection/toMostTop.mjs +0 -11
  215. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.js +0 -18
  216. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.mjs +0 -13
  217. package/shortcutContexts/commands/moveCellSelection/up.js +0 -12
  218. package/shortcutContexts/commands/moveCellSelection/up.mjs +0 -7
  219. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.js +0 -29
  220. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs +0 -24
  221. package/shortcutContexts/commands/populateSelectedCellsData.js +0 -35
  222. package/shortcutContexts/commands/populateSelectedCellsData.mjs +0 -30
  223. package/shortcutContexts/commands/selectAll.js +0 -11
  224. package/shortcutContexts/commands/selectAll.mjs +0 -6
  225. package/shortcutContexts/constants.js +0 -19
  226. package/shortcutContexts/constants.mjs +0 -12
  227. package/shortcutContexts/editor.js +0 -29
  228. package/shortcutContexts/editor.mjs +0 -25
  229. package/shortcutContexts/grid.js +0 -244
  230. package/shortcutContexts/grid.mjs +0 -240
  231. package/shortcutContexts/index.js +0 -29
  232. 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$hot2;
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$hot2 = this.hot).selectColumns.apply(_this$hot2, 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$hot2;
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$hot2 = this.hot).selectColumns.apply(_this$hot2, 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
  *
@@ -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 _shortcutContexts = require("../../shortcutContexts");
19
+ var _editorManager = require("../../editorManager");
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: _shortcutContexts.EDITOR_EDIT_GROUP,
166
+ relativeToGroup: _editorManager.SHORTCUTS_GROUP_EDITOR,
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 { EDITOR_EDIT_GROUP as SHORTCUTS_GROUP_EDITOR } from "../../shortcutContexts/index.mjs";
14
+ import { SHORTCUTS_GROUP_EDITOR } from "../../editorManager.mjs";
15
15
  import Hooks from "../../pluginHooks.mjs";
16
16
  var isListeningKeyDownEvent = new WeakMap();
17
17
  var isCheckboxListenerAdded = new WeakMap();
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.HEADER_TYPE = exports.FILL_TYPE = exports.CUSTOM_SELECTION_TYPE = exports.CELL_TYPE = exports.AREA_TYPE = exports.ACTIVE_HEADER_TYPE = void 0;
5
+ var ACTIVE_HEADER_TYPE = 'active-header';
6
+ exports.ACTIVE_HEADER_TYPE = ACTIVE_HEADER_TYPE;
7
+ var AREA_TYPE = 'area';
8
+ exports.AREA_TYPE = AREA_TYPE;
9
+ var CELL_TYPE = 'cell';
10
+ exports.CELL_TYPE = CELL_TYPE;
11
+ var FILL_TYPE = 'fill';
12
+ exports.FILL_TYPE = FILL_TYPE;
13
+ var HEADER_TYPE = 'header';
14
+ exports.HEADER_TYPE = HEADER_TYPE;
15
+ var CUSTOM_SELECTION_TYPE = 'custom-selection';
16
+ exports.CUSTOM_SELECTION_TYPE = CUSTOM_SELECTION_TYPE;
@@ -0,0 +1,6 @@
1
+ export var ACTIVE_HEADER_TYPE = 'active-header';
2
+ export var AREA_TYPE = 'area';
3
+ export var CELL_TYPE = 'cell';
4
+ export var FILL_TYPE = 'fill';
5
+ export var HEADER_TYPE = 'header';
6
+ export var CUSTOM_SELECTION_TYPE = 'custom-selection';