handsontable 0.0.0-next-87b048b-20250409 → 0.0.0-next-ff10728-20250410

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 (106) hide show
  1. package/3rdparty/walkontable/src/cell/range.js +0 -14
  2. package/3rdparty/walkontable/src/cell/range.mjs +0 -14
  3. package/3rdparty/walkontable/src/renderer/rowHeaders.js +1 -4
  4. package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +1 -4
  5. package/3rdparty/walkontable/src/selection/border/border.js +0 -5
  6. package/3rdparty/walkontable/src/selection/border/border.mjs +0 -5
  7. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.js +4 -3
  8. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.mjs +4 -3
  9. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +10 -8
  10. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +10 -8
  11. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +4 -3
  12. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +4 -3
  13. package/3rdparty/walkontable/src/table.js +2 -5
  14. package/3rdparty/walkontable/src/table.mjs +2 -5
  15. package/CHANGELOG.md +0 -39
  16. package/base.js +2 -2
  17. package/base.mjs +2 -2
  18. package/core/focusCatcher/focusDetector.js +1 -1
  19. package/core/focusCatcher/focusDetector.mjs +2 -2
  20. package/core/hooks/constants.js +0 -8
  21. package/core/hooks/constants.mjs +0 -8
  22. package/core/hooks/index.d.ts +0 -1
  23. package/core.d.ts +1 -0
  24. package/core.js +25 -32
  25. package/core.mjs +26 -33
  26. package/dataMap/dataMap.js +7 -0
  27. package/dataMap/dataMap.mjs +7 -0
  28. package/dataMap/metaManager/metaSchema.js +0 -1
  29. package/dataMap/metaManager/metaSchema.mjs +0 -1
  30. package/dist/handsontable.css +3 -3
  31. package/dist/handsontable.full.css +3 -3
  32. package/dist/handsontable.full.js +350 -437
  33. package/dist/handsontable.full.min.css +3 -3
  34. package/dist/handsontable.full.min.js +17 -17
  35. package/dist/handsontable.js +350 -437
  36. package/dist/handsontable.min.css +3 -3
  37. package/dist/handsontable.min.js +18 -18
  38. package/editorManager.js +7 -1
  39. package/editorManager.mjs +7 -1
  40. package/editors/autocompleteEditor/autocompleteEditor.js +4 -14
  41. package/editors/autocompleteEditor/autocompleteEditor.mjs +4 -14
  42. package/editors/textEditor/textEditor.js +1 -1
  43. package/editors/textEditor/textEditor.mjs +2 -2
  44. package/helpers/browser.js +1 -1
  45. package/helpers/browser.mjs +1 -1
  46. package/helpers/dom/element.js +2 -2
  47. package/helpers/dom/element.mjs +1 -1
  48. package/helpers/mixed.js +2 -2
  49. package/helpers/mixed.mjs +2 -2
  50. package/helpers/object.js +0 -3
  51. package/helpers/object.mjs +0 -3
  52. package/package.json +1 -1
  53. package/plugins/autoColumnSize/autoColumnSize.js +1 -1
  54. package/plugins/autoColumnSize/autoColumnSize.mjs +1 -1
  55. package/plugins/autoRowSize/autoRowSize.js +6 -1
  56. package/plugins/autoRowSize/autoRowSize.mjs +6 -1
  57. package/plugins/columnSorting/columnSorting.js +4 -0
  58. package/plugins/columnSorting/columnSorting.mjs +4 -0
  59. package/plugins/comments/comments.js +0 -1
  60. package/plugins/comments/comments.mjs +0 -1
  61. package/plugins/contextMenu/menu/defaultShortcutsList.js +2 -2
  62. package/plugins/contextMenu/menu/defaultShortcutsList.mjs +2 -2
  63. package/plugins/contextMenu/menu/menu.js +0 -1
  64. package/plugins/contextMenu/menu/menu.mjs +0 -1
  65. package/plugins/contextMenu/menu/positioner.js +2 -10
  66. package/plugins/contextMenu/menu/positioner.mjs +2 -10
  67. package/plugins/copyPaste/copyPaste.js +15 -12
  68. package/plugins/copyPaste/copyPaste.mjs +16 -13
  69. package/plugins/copyPaste/pasteEvent.js +0 -3
  70. package/plugins/copyPaste/pasteEvent.mjs +0 -3
  71. package/plugins/filters/filters.js +24 -25
  72. package/plugins/filters/filters.mjs +24 -25
  73. package/plugins/filters/ui/multipleSelect.js +1 -7
  74. package/plugins/filters/ui/multipleSelect.mjs +1 -7
  75. package/plugins/hiddenColumns/hiddenColumns.js +1 -1
  76. package/plugins/hiddenColumns/hiddenColumns.mjs +1 -1
  77. package/plugins/hiddenRows/hiddenRows.js +1 -1
  78. package/plugins/hiddenRows/hiddenRows.mjs +1 -1
  79. package/plugins/manualColumnResize/manualColumnResize.js +6 -4
  80. package/plugins/manualColumnResize/manualColumnResize.mjs +6 -4
  81. package/plugins/manualRowResize/manualRowResize.js +6 -4
  82. package/plugins/manualRowResize/manualRowResize.mjs +6 -4
  83. package/plugins/mergeCells/mergeCells.js +29 -8
  84. package/plugins/mergeCells/mergeCells.mjs +29 -8
  85. package/plugins/mergeCells/renderer.js +0 -15
  86. package/plugins/mergeCells/renderer.mjs +0 -15
  87. package/plugins/nestedRows/data/dataManager.js +2 -2
  88. package/plugins/nestedRows/data/dataManager.mjs +2 -2
  89. package/plugins/undoRedo/actions/removeColumn.js +14 -19
  90. package/plugins/undoRedo/actions/removeColumn.mjs +14 -19
  91. package/plugins/undoRedo/actions/removeRow.js +4 -12
  92. package/plugins/undoRedo/actions/removeRow.mjs +4 -12
  93. package/selection/selection.js +1 -3
  94. package/selection/selection.mjs +1 -3
  95. package/styles/handsontable.css +15 -14
  96. package/styles/handsontable.min.css +3 -3
  97. package/styles/ht-theme-horizon.css +2 -2
  98. package/styles/ht-theme-horizon.min.css +2 -2
  99. package/styles/ht-theme-main.css +2 -2
  100. package/styles/ht-theme-main.min.css +2 -2
  101. package/tableView.js +8 -5
  102. package/tableView.mjs +8 -5
  103. package/utils/ghostTable.js +0 -3
  104. package/utils/ghostTable.mjs +0 -3
  105. package/plugins/mergeCells/utils.js +0 -31
  106. package/plugins/mergeCells/utils.mjs +0 -27
@@ -25,8 +25,8 @@
25
25
  * INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING FROM
26
26
  * USE OR INABILITY TO USE THIS SOFTWARE.
27
27
  *
28
- * Version: 0.0.0-next-87b048b-20250409
29
- * Release date: 19/03/2025 (built at 09/04/2025 06:00:52)
28
+ * Version: 0.0.0-next-ff10728-20250410
29
+ * Release date: 20/02/2025 (built at 10/04/2025 06:43:56)
30
30
  */
31
31
  (function webpackUniversalModuleDefinition(root, factory) {
32
32
  if(typeof exports === 'object' && typeof module === 'object')
@@ -104,8 +104,8 @@ Handsontable.hooks = _hooks.Hooks.getSingleton();
104
104
  Handsontable.CellCoords = _src.CellCoords;
105
105
  Handsontable.CellRange = _src.CellRange;
106
106
  Handsontable.packageName = 'handsontable';
107
- Handsontable.buildDate = "09/04/2025 06:00:52";
108
- Handsontable.version = "0.0.0-next-87b048b-20250409";
107
+ Handsontable.buildDate = "10/04/2025 06:43:56";
108
+ Handsontable.version = "0.0.0-next-ff10728-20250410";
109
109
  Handsontable.languages = {
110
110
  dictionaryKeys: _registry.dictionaryKeys,
111
111
  getLanguageDictionary: _registry.getLanguageDictionary,
@@ -362,6 +362,7 @@ function Core(rootElement, userSettings) {
362
362
  const globalMeta = metaManager.getGlobalMeta();
363
363
  const pluginsRegistry = (0, _uniqueMap.createUniqueMap)();
364
364
  this.container = this.rootDocument.createElement('div');
365
+ this.renderCall = false;
365
366
  rootElement.insertBefore(this.container, rootElement.firstChild);
366
367
  if ((0, _rootInstance.isRootInstance)(this)) {
367
368
  (0, _mixed._injectProductInfo)(userSettings.licenseKey, rootElement);
@@ -393,9 +394,6 @@ function Core(rootElement, userSettings) {
393
394
  this.rowIndexMapper.addLocalHook('indexesSequenceChange', source => {
394
395
  instance.runHooks('afterRowSequenceChange', source);
395
396
  });
396
- eventManager.addEventListener(this.rootDocument.documentElement, 'compositionstart', event => {
397
- instance.runHooks('beforeCompositionStart', event);
398
- });
399
397
  dataSource = new _dataSource.default(instance);
400
398
  if (!this.rootElement.id || this.rootElement.id.substring(0, 3) === 'ht_') {
401
399
  this.rootElement.id = this.guid; // if root element does not have an id, assign a random id
@@ -475,7 +473,6 @@ function Core(rootElement, userSettings) {
475
473
  let {
476
474
  hiddenIndexesChanged
477
475
  } = _ref;
478
- this.forceFullRender = true;
479
476
  if (hiddenIndexesChanged) {
480
477
  this.selection.commit();
481
478
  }
@@ -759,6 +756,13 @@ function Core(rootElement, userSettings) {
759
756
  }
760
757
  }
761
758
  const totalRows = instance.countRows();
759
+ if (totalRows === 0) {
760
+ selection.deselect();
761
+ } else if (source === 'ContextMenu.removeRow') {
762
+ selection.refresh();
763
+ } else {
764
+ selection.shiftRows(groupIndex, -groupAmount);
765
+ }
762
766
  const fixedRowsTop = tableMeta.fixedRowsTop;
763
767
  if (fixedRowsTop >= calcIndex + 1) {
764
768
  tableMeta.fixedRowsTop -= Math.min(groupAmount, fixedRowsTop - calcIndex);
@@ -767,13 +771,6 @@ function Core(rootElement, userSettings) {
767
771
  if (fixedRowsBottom && calcIndex >= totalRows - fixedRowsBottom) {
768
772
  tableMeta.fixedRowsBottom -= Math.min(groupAmount, fixedRowsBottom);
769
773
  }
770
- if (totalRows === 0) {
771
- selection.deselect();
772
- } else if (source === 'ContextMenu.removeRow') {
773
- selection.refresh();
774
- } else {
775
- selection.shiftRows(groupIndex, -groupAmount);
776
- }
777
774
  offset += groupAmount;
778
775
  });
779
776
  };
@@ -1183,7 +1180,8 @@ function Core(rootElement, userSettings) {
1183
1180
  (0, _index.installFocusCatcher)(instance);
1184
1181
  }
1185
1182
  instance.runHooks('init');
1186
- this.render();
1183
+ this.forceFullRender = true; // used when data was changed
1184
+ this.view.render();
1187
1185
 
1188
1186
  // Run the logic only if it's the table's initialization and the root element is not visible.
1189
1187
  if (!!firstRun && instance.rootElement.offsetParent === null) {
@@ -1356,11 +1354,13 @@ function Core(rootElement, userSettings) {
1356
1354
  datamap.set(changes[i][0], changes[i][1], changes[i][3]);
1357
1355
  }
1358
1356
  const hasChanges = changes.length > 0;
1357
+ instance.forceFullRender = true; // used when data was changed or when all cells need to be re-rendered
1358
+
1359
1359
  if (hasChanges) {
1360
1360
  grid.adjustRowsAndCols();
1361
1361
  instance.runHooks('beforeChangeRender', changes, source);
1362
1362
  editorManager.closeEditor();
1363
- instance.render();
1363
+ instance.view.render();
1364
1364
  editorManager.prepareEditor();
1365
1365
  instance.view.adjustElementsSize();
1366
1366
  instance.runHooks('afterChange', changes, source || 'edit');
@@ -1369,7 +1369,7 @@ function Core(rootElement, userSettings) {
1369
1369
  activeEditor.refreshValue();
1370
1370
  }
1371
1371
  } else {
1372
- instance.render();
1372
+ instance.view.render();
1373
1373
  }
1374
1374
  }
1375
1375
 
@@ -1519,22 +1519,9 @@ function Core(rootElement, userSettings) {
1519
1519
  ...tableMeta
1520
1520
  };
1521
1521
  }
1522
- const {
1523
- type,
1524
- checkedTemplate,
1525
- uncheckedTemplate
1526
- } = cellProperties;
1527
- if (type === 'numeric' && typeof newValue === 'string' && (0, _number.isNumericLike)(newValue)) {
1522
+ if (cellProperties.type === 'numeric' && typeof newValue === 'string' && (0, _number.isNumericLike)(newValue)) {
1528
1523
  filteredChanges[i][3] = getParsedNumber(newValue);
1529
1524
  }
1530
- if (type === 'checkbox') {
1531
- const stringifiedValue = (0, _mixed.stringify)(newValue);
1532
- const isChecked = stringifiedValue === (0, _mixed.stringify)(checkedTemplate);
1533
- const isUnchecked = stringifiedValue === (0, _mixed.stringify)(uncheckedTemplate);
1534
- if (isChecked || isUnchecked) {
1535
- filteredChanges[i][3] = isChecked ? checkedTemplate : uncheckedTemplate;
1536
- }
1537
- }
1538
1525
  }
1539
1526
  return filteredChanges;
1540
1527
  }
@@ -1936,7 +1923,11 @@ function Core(rootElement, userSettings) {
1936
1923
  const nextValue = this.renderSuspendedCounter - 1;
1937
1924
  this.renderSuspendedCounter = Math.max(nextValue, 0);
1938
1925
  if (!this.isRenderSuspended() && nextValue === this.renderSuspendedCounter) {
1939
- instance.view.render();
1926
+ if (this.renderCall) {
1927
+ this.render();
1928
+ } else {
1929
+ instance.view.render();
1930
+ }
1940
1931
  }
1941
1932
  };
1942
1933
 
@@ -1952,8 +1943,9 @@ function Core(rootElement, userSettings) {
1952
1943
  */
1953
1944
  this.render = function () {
1954
1945
  if (this.view) {
1955
- // used when data was changed or when all cells need to be re-rendered (slow render)
1956
- this.forceFullRender = true;
1946
+ this.renderCall = true;
1947
+ this.forceFullRender = true; // used when data was changed or when all cells need to be re-rendered
1948
+
1957
1949
  if (!this.isRenderSuspended()) {
1958
1950
  instance.view.render();
1959
1951
  }
@@ -2566,7 +2558,8 @@ function Core(rootElement, userSettings) {
2566
2558
  }
2567
2559
  grid.adjustRowsAndCols();
2568
2560
  if (instance.view && !firstRun) {
2569
- instance.render();
2561
+ instance.forceFullRender = true; // used when data was changed
2562
+ instance.view.render();
2570
2563
  instance.view._wt.wtOverlays.adjustElementsSize();
2571
2564
  }
2572
2565
  if (!init && instance.view && (currentHeight === '' || height === '' || height === undefined) && currentHeight !== height) {
@@ -8678,8 +8671,8 @@ exports.isChildOf = isChildOf;
8678
8671
  exports.isDetached = isDetached;
8679
8672
  exports.isHTMLElement = isHTMLElement;
8680
8673
  exports.isInput = isInput;
8681
- exports.isInternalElement = isInternalElement;
8682
8674
  exports.isOutsideInput = isOutsideInput;
8675
+ exports.isThisHotChild = isThisHotChild;
8683
8676
  exports.isVisible = isVisible;
8684
8677
  exports.makeElementContentEditableAndSelectItsContent = makeElementContentEditableAndSelectItsContent;
8685
8678
  exports.matchesCSSRules = matchesCSSRules;
@@ -8740,7 +8733,7 @@ function getParent(element) {
8740
8733
  * @param {HTMLElement} thisHotContainer The Handsontable container.
8741
8734
  * @returns {boolean}
8742
8735
  */
8743
- function isInternalElement(element, thisHotContainer) {
8736
+ function isThisHotChild(element, thisHotContainer) {
8744
8737
  const closestHandsontableContainer = element.closest('.handsontable');
8745
8738
  return !!closestHandsontableContainer && (closestHandsontableContainer.parentNode === thisHotContainer || closestHandsontableContainer === thisHotContainer);
8746
8739
  }
@@ -10104,7 +10097,7 @@ const domMessages = {
10104
10097
  function _injectProductInfo(key, element) {
10105
10098
  const hasValidType = !isEmpty(key);
10106
10099
  const isNonCommercial = typeof key === 'string' && key.toLowerCase() === 'non-commercial-and-evaluation';
10107
- const hotVersion = "0.0.0-next-87b048b-20250409";
10100
+ const hotVersion = "0.0.0-next-ff10728-20250410";
10108
10101
  let keyValidityDate;
10109
10102
  let consoleMessageState = 'invalid';
10110
10103
  let domMessageState = 'invalid';
@@ -10112,7 +10105,7 @@ function _injectProductInfo(key, element) {
10112
10105
  const schemaValidity = _checkKeySchema(key);
10113
10106
  if (hasValidType || isNonCommercial || schemaValidity) {
10114
10107
  if (schemaValidity) {
10115
- const releaseDate = (0, _moment.default)("19/03/2025", 'DD/MM/YYYY');
10108
+ const releaseDate = (0, _moment.default)("20/02/2025", 'DD/MM/YYYY');
10116
10109
  const releaseDays = Math.floor(releaseDate.toDate().getTime() / 8.64e7);
10117
10110
  const keyValidityDays = _extractTime(key);
10118
10111
  keyValidityDate = (0, _moment.default)((keyValidityDays + 1) * 8.64e7, 'x').format('MMMM DD, YYYY');
@@ -11006,7 +10999,7 @@ const platforms = {
11006
10999
  mac: tester(platform => /^Mac/.test(platform)),
11007
11000
  win: tester(platform => /^Win/.test(platform)),
11008
11001
  linux: tester(platform => /^Linux/.test(platform)),
11009
- ios: tester(platform => /iPhone|iPad|iPod/i.test(platform))
11002
+ ios: tester(ua => /iPhone|iPad|iPod/i.test(ua))
11010
11003
  };
11011
11004
 
11012
11005
  /**
@@ -11434,9 +11427,6 @@ function getProperty(object, name) {
11434
11427
  * @param {*} value Value to be assigned at the provided property.
11435
11428
  */
11436
11429
  function setProperty(object, name, value) {
11437
- if (typeof name !== 'string') {
11438
- return;
11439
- }
11440
11430
  const names = name.split('.');
11441
11431
  let workingObject = object;
11442
11432
  names.forEach((propName, index) => {
@@ -11803,7 +11793,13 @@ class EditorManager {
11803
11793
  this.selection = _selection;
11804
11794
  this.eventManager = new _eventManager.default(hotInstance);
11805
11795
  this.hot.addHook('afterDocumentKeyDown', event => _assertClassBrand(_EditorManager_brand, this, _onAfterDocumentKeyDown).call(this, event));
11806
- this.hot.addHook('beforeCompositionStart', event => _assertClassBrand(_EditorManager_brand, this, _onAfterDocumentKeyDown).call(this, event));
11796
+
11797
+ // Open editor when text composition is started (IME editor)
11798
+ this.eventManager.addEventListener(this.hot.rootDocument.documentElement, 'compositionstart', event => {
11799
+ if (!this.destroyed && this.hot.isListening()) {
11800
+ this.openEditor('', event);
11801
+ }
11802
+ });
11807
11803
  this.hot.view._wt.update('onCellDblClick', (event, coords, elem) => _assertClassBrand(_EditorManager_brand, this, _onCellDblClick).call(this, event, coords, elem));
11808
11804
  }
11809
11805
 
@@ -13279,14 +13275,6 @@ const REGISTERED_HOOKS = exports.REGISTERED_HOOKS = [/* eslint-disable jsdoc/req
13279
13275
  * @returns {string[]|undefined} Can return an `Array` of `String`s. Each of these strings will act like class names to be removed from all the cells in the table.
13280
13276
  */
13281
13277
  'beforeRemoveCellClassNames',
13282
- /**
13283
- * Hook fired after `compositionstart` event is handled.
13284
- *
13285
- * @event Hooks#beforeCompositionStart
13286
- * @since 15.3.0
13287
- * @param {Event} event A native `composition` event object.
13288
- */
13289
- 'beforeCompositionStart',
13290
13278
  /**
13291
13279
  * Fired after getting the cell settings.
13292
13280
  *
@@ -17903,16 +17891,16 @@ class TableView {
17903
17891
  */
17904
17892
  render() {
17905
17893
  if (!this.hot.isRenderSuspended()) {
17906
- const isFullRender = this.hot.forceFullRender;
17907
- this.hot.runHooks('beforeRender', isFullRender);
17894
+ this.hot.runHooks('beforeRender', this.hot.forceFullRender);
17908
17895
  if (this.postponedAdjustElementsSize) {
17909
17896
  this.postponedAdjustElementsSize = false;
17910
17897
  this.adjustElementsSize();
17911
17898
  }
17912
- this._wt.draw(!isFullRender);
17899
+ this._wt.draw(!this.hot.forceFullRender);
17913
17900
  _assertClassBrand(_TableView_brand, this, _updateScrollbarClassNames).call(this);
17914
- this.hot.runHooks('afterRender', isFullRender);
17901
+ this.hot.runHooks('afterRender', this.hot.forceFullRender);
17915
17902
  this.hot.forceFullRender = false;
17903
+ this.hot.renderCall = false;
17916
17904
  }
17917
17905
  }
17918
17906
 
@@ -18819,7 +18807,8 @@ class TableView {
18819
18807
  this.eventManager.addEventListener(this.hot.rootDocument.documentElement, 'click', () => {
18820
18808
  if (this.settings.observeDOMVisibility) {
18821
18809
  if (this._wt.drawInterrupted) {
18822
- this.hot.render();
18810
+ this.hot.forceFullRender = true;
18811
+ this.render();
18823
18812
  }
18824
18813
  }
18825
18814
  });
@@ -18892,6 +18881,7 @@ class TableView {
18892
18881
  */
18893
18882
  beforeRender(force, skipRender) {
18894
18883
  if (force) {
18884
+ // this.hot.forceFullRender = did Handsontable request full render?
18895
18885
  this.hot.runHooks('beforeViewRender', this.hot.forceFullRender, skipRender);
18896
18886
  }
18897
18887
  }
@@ -18905,6 +18895,7 @@ class TableView {
18905
18895
  */
18906
18896
  afterRender(force) {
18907
18897
  if (force) {
18898
+ // this.hot.forceFullRender = did Handsontable request full render?
18908
18899
  this.hot.runHooks('afterViewRender', this.hot.forceFullRender);
18909
18900
  }
18910
18901
  }
@@ -21010,20 +21001,6 @@ class CellRange {
21010
21001
  return this;
21011
21002
  }
21012
21003
 
21013
- /**
21014
- * Normalizes the coordinates in your `CellRange` instance to the nearest valid position.
21015
- *
21016
- * Coordinates that point to headers (negative values) are normalized to `0`.
21017
- *
21018
- * @returns {CellRange}
21019
- */
21020
- normalize() {
21021
- this.highlight.normalize();
21022
- this.from.normalize();
21023
- this.to.normalize();
21024
- return this;
21025
- }
21026
-
21027
21004
  /**
21028
21005
  * Checks if the coordinates in your `CellRange` instance are valid
21029
21006
  * in the context of given table parameters.
@@ -23645,8 +23622,8 @@ class Table {
23645
23622
  } else {
23646
23623
  this.tableOffset = this.dataAccessObject.parentTableOffset;
23647
23624
  }
23648
- const startRow = Math.max(this.getFirstRenderedRow(), 0);
23649
- const startColumn = Math.max(this.getFirstRenderedColumn(), 0);
23625
+ const startRow = totalRows > 0 ? this.getFirstRenderedRow() : 0;
23626
+ const startColumn = totalColumns > 0 ? this.getFirstRenderedColumn() : 0;
23650
23627
  this.rowFilter = new _row.default(startRow, totalRows, columnHeadersCount);
23651
23628
  this.columnFilter = new _column.default(startColumn, totalColumns, rowHeadersCount);
23652
23629
  let performRedraw = true;
@@ -23964,9 +23941,6 @@ class Table {
23964
23941
  return null;
23965
23942
  }
23966
23943
  const TR = cellElement.parentNode;
23967
- if (!TR) {
23968
- return null;
23969
- }
23970
23944
  const CONTAINER = TR.parentNode;
23971
23945
  let row = (0, _element.index)(TR);
23972
23946
  let col = cellElement.cellIndex;
@@ -24786,10 +24760,7 @@ class RowHeadersRenderer extends _base.BaseRenderer {
24786
24760
  const orderView = this.obtainOrderView(TR);
24787
24761
  const cellsView = cells.obtainOrderView(TR);
24788
24762
  orderView.appendView(cellsView).setSize(rowHeadersCount).setOffset(0).start();
24789
-
24790
- // Reading the row header renderers in reverse because of how the Eco Renderers handle rendering
24791
- // (prepending the nodes when rendering row headers).
24792
- for (let visibleColumnIndex = rowHeadersCount - 1; visibleColumnIndex >= 0; visibleColumnIndex--) {
24763
+ for (let visibleColumnIndex = 0; visibleColumnIndex < rowHeadersCount; visibleColumnIndex++) {
24793
24764
  orderView.render();
24794
24765
  const TH = orderView.getCurrentNode();
24795
24766
  TH.className = '';
@@ -26654,11 +26625,16 @@ const stickyRowsBottom = {
26654
26625
  * @this Table
26655
26626
  */
26656
26627
  getFirstRenderedRow() {
26657
- const allStickyRows = this.getRenderedRowsCount();
26658
- if (allStickyRows === 0) {
26628
+ const totalRows = this.wtSettings.getSetting('totalRows');
26629
+ const fixedRowsBottom = this.wtSettings.getSetting('fixedRowsBottom');
26630
+ const index = totalRows - fixedRowsBottom;
26631
+ if (totalRows === 0 || fixedRowsBottom === 0) {
26659
26632
  return -1;
26660
26633
  }
26661
- return this.wtSettings.getSetting('totalRows') - allStickyRows;
26634
+ if (index < 0) {
26635
+ return 0;
26636
+ }
26637
+ return index;
26662
26638
  },
26663
26639
  /**
26664
26640
  * Get the source index of the first row fully visible in the viewport. If no rows are fully visible, returns an error code: -1.
@@ -26687,10 +26663,6 @@ const stickyRowsBottom = {
26687
26663
  * @this Table
26688
26664
  */
26689
26665
  getLastRenderedRow() {
26690
- const allStickyRows = this.getRenderedRowsCount();
26691
- if (allStickyRows === 0) {
26692
- return -1;
26693
- }
26694
26666
  return this.wtSettings.getSetting('totalRows') - 1;
26695
26667
  },
26696
26668
  /**
@@ -26720,7 +26692,8 @@ const stickyRowsBottom = {
26720
26692
  * @this Table
26721
26693
  */
26722
26694
  getRenderedRowsCount() {
26723
- return Math.min(this.wtSettings.getSetting('totalRows'), this.wtSettings.getSetting('fixedRowsBottom'));
26695
+ const totalRows = this.wtSettings.getSetting('totalRows');
26696
+ return Math.min(this.wtSettings.getSetting('fixedRowsBottom'), totalRows);
26724
26697
  },
26725
26698
  /**
26726
26699
  * Get the number of fully visible rows in the viewport.
@@ -26775,8 +26748,8 @@ const stickyColumnsStart = {
26775
26748
  * @this Table
26776
26749
  */
26777
26750
  getFirstRenderedColumn() {
26778
- const allStickyColumns = this.getRenderedColumnsCount();
26779
- if (allStickyColumns === 0) {
26751
+ const totalColumns = this.wtSettings.getSetting('totalColumns');
26752
+ if (totalColumns === 0) {
26780
26753
  return -1;
26781
26754
  }
26782
26755
  return 0;
@@ -26837,7 +26810,8 @@ const stickyColumnsStart = {
26837
26810
  * @this Table
26838
26811
  */
26839
26812
  getRenderedColumnsCount() {
26840
- return Math.min(this.wtSettings.getSetting('totalColumns'), this.wtSettings.getSetting('fixedColumnsStart'));
26813
+ const totalColumns = this.wtSettings.getSetting('totalColumns');
26814
+ return Math.min(this.wtSettings.getSetting('fixedColumnsStart'), totalColumns);
26841
26815
  },
26842
26816
  /**
26843
26817
  * Get the number of fully visible columns in the viewport.
@@ -30291,11 +30265,6 @@ class Border {
30291
30265
  const lastRenderedRow = wtTable.getLastRenderedRow();
30292
30266
  const firstRenderedColumn = wtTable.getFirstRenderedColumn();
30293
30267
  const lastRenderedColumn = wtTable.getLastRenderedColumn();
30294
- if (firstRenderedColumn < 0 && lastRenderedColumn < 0 || firstRenderedRow < 0 && lastRenderedRow < 0) {
30295
- // ...also when overlays have rendered only headers skip it
30296
- this.disappear();
30297
- return;
30298
- }
30299
30268
  let fromTD;
30300
30269
  if (isMultiple) {
30301
30270
  fromColumn = Math.max(fromColumn, firstRenderedColumn);
@@ -30790,8 +30759,8 @@ const stickyRowsTop = {
30790
30759
  * @this Table
30791
30760
  */
30792
30761
  getFirstRenderedRow() {
30793
- const allStickyRows = this.getRenderedRowsCount();
30794
- if (allStickyRows === 0) {
30762
+ const totalRows = this.wtSettings.getSetting('totalRows');
30763
+ if (totalRows === 0) {
30795
30764
  return -1;
30796
30765
  }
30797
30766
  return 0;
@@ -30852,7 +30821,8 @@ const stickyRowsTop = {
30852
30821
  * @this Table
30853
30822
  */
30854
30823
  getRenderedRowsCount() {
30855
- return Math.min(this.wtSettings.getSetting('totalRows'), this.wtSettings.getSetting('fixedRowsTop'));
30824
+ const totalRows = this.wtSettings.getSetting('totalRows');
30825
+ return Math.min(this.wtSettings.getSetting('fixedRowsTop'), totalRows);
30856
30826
  },
30857
30827
  /**
30858
30828
  * Get the number of fully visible rows in the viewport.
@@ -37100,9 +37070,7 @@ class Selection {
37100
37070
  col: (0, _number.clamp)(to.col, 0, countColumns - 1)
37101
37071
  });
37102
37072
  this.selectedRange.ranges.push(range);
37103
- if (this.highlight.isEnabledFor(_highlight.FOCUS_TYPE, this.selectedRange.current().highlight)) {
37104
- this.highlight.getFocus().add(highlight).commit().syncWith(range);
37105
- }
37073
+ this.highlight.getFocus().add(highlight).commit().syncWith(range);
37106
37074
  this.applyAndCommit(range);
37107
37075
  }
37108
37076
 
@@ -39255,6 +39223,8 @@ class DataMap {
39255
39223
  }
39256
39224
  }
39257
39225
  this.hot.runHooks('afterCreateRow', newVisualRowIndex, numberOfCreatedRows, source);
39226
+ this.hot.forceFullRender = true; // used when data was changed
39227
+
39258
39228
  return {
39259
39229
  delta: numberOfCreatedRows,
39260
39230
  startPhysicalIndex: physicalRowIndex
@@ -39340,6 +39310,8 @@ class DataMap {
39340
39310
  }
39341
39311
  const newVisualColumnIndex = this.hot.toVisualColumn(startPhysicalIndex);
39342
39312
  this.hot.runHooks('afterCreateCol', newVisualColumnIndex, numberOfCreatedCols, source);
39313
+ this.hot.forceFullRender = true; // used when data was changed
39314
+
39343
39315
  this.refreshDuckSchema();
39344
39316
  return {
39345
39317
  delta: numberOfCreatedCols,
@@ -39386,6 +39358,8 @@ class DataMap {
39386
39358
  this.metaManager.removeRow(rowPhysicalIndex, 1);
39387
39359
  });
39388
39360
  this.hot.runHooks('afterRemoveRow', rowIndex, numberOfRemovedIndexes, removedPhysicalIndexes, source);
39361
+ this.hot.forceFullRender = true; // used when data was changed
39362
+
39389
39363
  return true;
39390
39364
  }
39391
39365
 
@@ -39445,6 +39419,7 @@ class DataMap {
39445
39419
  }
39446
39420
  }
39447
39421
  this.hot.runHooks('afterRemoveCol', columnIndex, amount, removedPhysicalIndexes, source);
39422
+ this.hot.forceFullRender = true; // used when data was changed
39448
39423
  this.refreshDuckSchema();
39449
39424
  return true;
39450
39425
  }
@@ -43233,7 +43208,6 @@ var _default = () => {
43233
43208
  * | `'de-CH'` | German - Switzerland |
43234
43209
  * | `'de-DE'` | German - Germany |
43235
43210
  * | `'es-MX'` | Spanish - Mexico |
43236
- * | `'fa-IR'` | Persian - Iran |
43237
43211
  * | `'fr-FR'` | French - France |
43238
43212
  * | `'hr-HR'` | Croatian - Croatia |
43239
43213
  * | `'it-IT'` | Italian - Italy |
@@ -49065,7 +49039,7 @@ function createInputElement(hot) {
49065
49039
  input.name = '__htFocusCatcher';
49066
49040
  input.classList.add('htFocusCatcher');
49067
49041
  if (hot.getSettings().ariaTags) {
49068
- (0, _element.setAttribute)(input, [(0, _a11y.A11Y_LABEL)('Focus catcher')]);
49042
+ (0, _element.setAttribute)(input, [(0, _a11y.A11Y_PRESENTATION)(), (0, _a11y.A11Y_HIDDEN)()]);
49069
49043
  }
49070
49044
  return input;
49071
49045
  }
@@ -50307,7 +50281,7 @@ class TextEditor extends _baseEditor.BaseEditor {
50307
50281
  */
50308
50282
  close() {
50309
50283
  this.autoResize.unObserve();
50310
- if ((0, _element.isInternalElement)(this.hot.rootDocument.activeElement, this.hot.rootElement)) {
50284
+ if ((0, _element.isThisHotChild)(this.hot.rootDocument.activeElement, this.hot.rootElement)) {
50311
50285
  this.hot.listen(); // don't refocus the table if user focused some cell outside of HT on purpose
50312
50286
  }
50313
50287
  this.hideEditableElement();
@@ -51150,7 +51124,6 @@ var _string = __webpack_require__(156);
51150
51124
  var _unicode = __webpack_require__(174);
51151
51125
  var _textRenderer = __webpack_require__(426);
51152
51126
  var _a11y = __webpack_require__(162);
51153
- var _function = __webpack_require__(163);
51154
51127
  function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
51155
51128
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
51156
51129
  function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
@@ -51163,7 +51136,6 @@ const EDITOR_TYPE = exports.EDITOR_TYPE = 'autocomplete';
51163
51136
  * @class AutocompleteEditor
51164
51137
  */
51165
51138
  var _idPrefix = /*#__PURE__*/new WeakMap();
51166
- var _focusDebounced = /*#__PURE__*/new WeakMap();
51167
51139
  var _AutocompleteEditor_brand = /*#__PURE__*/new WeakSet();
51168
51140
  class AutocompleteEditor extends _handsontableEditor.HandsontableEditor {
51169
51141
  constructor() {
@@ -51196,12 +51168,6 @@ class AutocompleteEditor extends _handsontableEditor.HandsontableEditor {
51196
51168
  * @type {string}
51197
51169
  */
51198
51170
  _classPrivateFieldInitSpec(this, _idPrefix, this.hot.guid.slice(0, 9));
51199
- /**
51200
- * Runs focus method after debounce.
51201
- */
51202
- _classPrivateFieldInitSpec(this, _focusDebounced, (0, _function.debounce)(() => {
51203
- this.focus();
51204
- }, 100));
51205
51171
  /**
51206
51172
  * Filters and sorts by relevance.
51207
51173
  *
@@ -51287,6 +51253,7 @@ class AutocompleteEditor extends _handsontableEditor.HandsontableEditor {
51287
51253
  }
51288
51254
  return this.TEXTAREA.value;
51289
51255
  }
51256
+
51290
51257
  /**
51291
51258
  * Creates an editor's elements and adds necessary CSS classnames.
51292
51259
  */
@@ -51332,10 +51299,10 @@ class AutocompleteEditor extends _handsontableEditor.HandsontableEditor {
51332
51299
  this.showEditableElement();
51333
51300
  this.focus();
51334
51301
  this.addHook('beforeKeyDown', event => this.onBeforeKeyDown(event));
51335
- this.htEditor.addHook('afterScroll', _classPrivateFieldGet(_focusDebounced, this));
51336
51302
  this.htEditor.updateSettings({
51337
51303
  colWidths: trimDropdown ? [(0, _element.outerWidth)(this.TEXTAREA) - 2] : undefined,
51338
51304
  autoColumnSize: true,
51305
+ autoRowSize: true,
51339
51306
  renderer: (hotInstance, TD, row, col, prop, value, cellProperties) => {
51340
51307
  (0, _textRenderer.textRenderer)(hotInstance, TD, row, col, prop, value, cellProperties);
51341
51308
  const {
@@ -51607,10 +51574,7 @@ class AutocompleteEditor extends _handsontableEditor.HandsontableEditor {
51607
51574
  const maxItems = Math.min(this.cellProperties.visibleRows, this.strippedChoices.length);
51608
51575
  const height = Array.from({
51609
51576
  length: maxItems
51610
- }, (_, i) => i).reduce((totalHeight, index) => {
51611
- const rowHeight = this.htEditor.getRowHeight(index) || this.htEditor.view.getDefaultRowHeight();
51612
- return totalHeight + rowHeight;
51613
- }, 0);
51577
+ }, (_, i) => i).reduce((h, index) => h + this.htEditor.getRowHeight(index), 0);
51614
51578
  return height + borderVerticalCompensation + 1;
51615
51579
  }
51616
51580
 
@@ -51708,7 +51672,7 @@ exports.AutocompleteEditor = AutocompleteEditor;
51708
51672
  function _fixDropdownWidth() {
51709
51673
  if (this.htEditor.view.hasVerticalScroll()) {
51710
51674
  this.htEditor.updateSettings({
51711
- width: this.getWidth() + (0, _element.getScrollbarWidth)(this.hot.rootDocument)
51675
+ width: this.htEditor.getSettings().width + (0, _element.getScrollbarWidth)(this.hot.rootDocument)
51712
51676
  });
51713
51677
  }
51714
51678
  }
@@ -54707,25 +54671,25 @@ var _manualRowResize = __webpack_require__(686);
54707
54671
  exports.ManualRowResize = _manualRowResize.ManualRowResize;
54708
54672
  var _mergeCells = __webpack_require__(688);
54709
54673
  exports.MergeCells = _mergeCells.MergeCells;
54710
- var _multiColumnSorting = __webpack_require__(703);
54674
+ var _multiColumnSorting = __webpack_require__(702);
54711
54675
  exports.MultiColumnSorting = _multiColumnSorting.MultiColumnSorting;
54712
- var _multipleSelectionHandles = __webpack_require__(707);
54676
+ var _multipleSelectionHandles = __webpack_require__(706);
54713
54677
  exports.MultipleSelectionHandles = _multipleSelectionHandles.MultipleSelectionHandles;
54714
- var _nestedHeaders = __webpack_require__(709);
54678
+ var _nestedHeaders = __webpack_require__(708);
54715
54679
  exports.NestedHeaders = _nestedHeaders.NestedHeaders;
54716
- var _nestedRows = __webpack_require__(725);
54680
+ var _nestedRows = __webpack_require__(724);
54717
54681
  exports.NestedRows = _nestedRows.NestedRows;
54718
- var _persistentState = __webpack_require__(733);
54682
+ var _persistentState = __webpack_require__(732);
54719
54683
  exports.PersistentState = _persistentState.PersistentState;
54720
- var _search = __webpack_require__(736);
54684
+ var _search = __webpack_require__(735);
54721
54685
  exports.Search = _search.Search;
54722
- var _stretchColumns = __webpack_require__(738);
54686
+ var _stretchColumns = __webpack_require__(737);
54723
54687
  exports.StretchColumns = _stretchColumns.StretchColumns;
54724
- var _touchScroll = __webpack_require__(744);
54688
+ var _touchScroll = __webpack_require__(743);
54725
54689
  exports.TouchScroll = _touchScroll.TouchScroll;
54726
- var _trimRows = __webpack_require__(746);
54690
+ var _trimRows = __webpack_require__(745);
54727
54691
  exports.TrimRows = _trimRows.TrimRows;
54728
- var _undoRedo = __webpack_require__(748);
54692
+ var _undoRedo = __webpack_require__(747);
54729
54693
  exports.UndoRedo = _undoRedo.UndoRedo;
54730
54694
  var _registry = __webpack_require__(198);
54731
54695
  exports.registerPlugin = _registry.registerPlugin;
@@ -55114,7 +55078,7 @@ class AutoColumnSize extends _base.BasePlugin {
55114
55078
  if (firstVisibleColumn === -1 || lastVisibleColumn === -1) {
55115
55079
  return;
55116
55080
  }
55117
- const overwriteCache = this.hot.forceFullRender;
55081
+ const overwriteCache = this.hot.renderCall;
55118
55082
  this.calculateColumnsWidth({
55119
55083
  from: firstVisibleColumn,
55120
55084
  to: lastVisibleColumn
@@ -55921,9 +55885,6 @@ class GhostTable {
55921
55885
  this.table = this.createTable(this.hot.table.className);
55922
55886
  this.table.colGroup.appendChild(this.createColGroupsCol(row));
55923
55887
  this.table.tr.appendChild(this.createRow(row));
55924
- if (row === 0) {
55925
- (0, _element.addClass)(this.table.table, 'htGhostTableFirstRow');
55926
- }
55927
55888
  this.container.container.appendChild(this.table.fragment);
55928
55889
  rowObject.table = this.table.table;
55929
55890
  }
@@ -57511,7 +57472,7 @@ class AutoRowSize extends _base.BasePlugin {
57511
57472
  if (firstVisibleRow === -1 || lastVisibleRow === -1) {
57512
57473
  return;
57513
57474
  }
57514
- const overwriteCache = this.hot.forceFullRender;
57475
+ const overwriteCache = this.hot.renderCall;
57515
57476
  this.calculateRowsHeight({
57516
57477
  from: firstVisibleRow,
57517
57478
  to: lastVisibleRow
@@ -57612,6 +57573,11 @@ class AutoRowSize extends _base.BasePlugin {
57612
57573
 
57613
57574
  // @TODO Should call once per render cycle, currently fired separately in different plugins
57614
57575
  this.hot.view.adjustElementsSize();
57576
+
57577
+ // tmp
57578
+ if (this.hot.view._wt.wtOverlays.inlineStartOverlay.needFullRender) {
57579
+ this.hot.view._wt.wtOverlays.inlineStartOverlay.clone.draw();
57580
+ }
57615
57581
  }
57616
57582
  };
57617
57583
  const syncLimit = this.getSyncCalculationLimit();
@@ -59062,6 +59028,10 @@ class ColumnSorting extends _base.BasePlugin {
59062
59028
  this.hot.runHooks('afterColumnSort', currentSortConfig, sortPossible ? destinationSortConfigs : currentSortConfig, sortPossible);
59063
59029
  if (sortPossible) {
59064
59030
  this.hot.render();
59031
+ // TODO: Workaround? This triggers fast redraw. One test won't pass after removal.
59032
+ // It should be refactored / described.
59033
+ this.hot.forceFullRender = false;
59034
+ this.hot.view.render();
59065
59035
  }
59066
59036
  }
59067
59037
 
@@ -61728,7 +61698,6 @@ class Comments extends _base.BasePlugin {
61728
61698
  this.addHook('afterScroll', () => _assertClassBrand(_Comments_brand, this, _onAfterScroll).call(this));
61729
61699
  this.addHook('afterBeginEditing', () => this.hide());
61730
61700
  this.addHook('afterDocumentKeyDown', event => _assertClassBrand(_Comments_brand, this, _onAfterDocumentKeyDown).call(this, event));
61731
- this.addHook('beforeCompositionStart', event => _assertClassBrand(_Comments_brand, this, _onAfterDocumentKeyDown).call(this, event));
61732
61701
  this.addHook('afterSetTheme', function () {
61733
61702
  for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
61734
61703
  args[_key2] = arguments[_key2];
@@ -64863,7 +64832,6 @@ class Menu {
64863
64832
  layoutDirection: this.hot.isRtl() ? 'rtl' : 'ltr',
64864
64833
  ariaTags: false,
64865
64834
  themeName: this.hot.getCurrentThemeName(),
64866
- beforeRefreshDimensions: () => false,
64867
64835
  beforeOnCellMouseOver: (event, coords) => {
64868
64836
  _classPrivateFieldGet(_navigator, this).setCurrentPage(coords.row);
64869
64837
  },
@@ -65407,11 +65375,7 @@ class Positioner {
65407
65375
  setPositionAboveCursor() {
65408
65376
  let top = _classPrivateFieldGet(_offset, this).above + _classPrivateFieldGet(_cursor, this).top - _classPrivateFieldGet(_container, this).offsetHeight;
65409
65377
  if (_classPrivateFieldGet(_parentContainer, this)) {
65410
- const rootWindow = _classPrivateFieldGet(_parentContainer, this).ownerDocument.defaultView;
65411
- const style = rootWindow.getComputedStyle(_classPrivateFieldGet(_parentContainer, this).querySelector('.ht_master'));
65412
- const paddingTop = Number.parseInt(style.paddingTop, 10);
65413
- const borderTop = Number.parseInt(style.borderTop, 10);
65414
- top = _classPrivateFieldGet(_cursor, this).top + _classPrivateFieldGet(_cursor, this).cellHeight - _classPrivateFieldGet(_container, this).scrollHeight + paddingTop + borderTop;
65378
+ top = _classPrivateFieldGet(_cursor, this).top + _classPrivateFieldGet(_cursor, this).cellHeight - _classPrivateFieldGet(_container, this).offsetHeight + 3;
65415
65379
  }
65416
65380
  _classPrivateFieldGet(_container, this).style.top = `${top}px`;
65417
65381
  }
@@ -65422,11 +65386,7 @@ class Positioner {
65422
65386
  setPositionBelowCursor() {
65423
65387
  let top = _classPrivateFieldGet(_offset, this).below + _classPrivateFieldGet(_cursor, this).top + 1;
65424
65388
  if (_classPrivateFieldGet(_parentContainer, this)) {
65425
- const rootWindow = _classPrivateFieldGet(_parentContainer, this).ownerDocument.defaultView;
65426
- const style = rootWindow.getComputedStyle(_classPrivateFieldGet(_parentContainer, this).querySelector('.ht_master'));
65427
- const paddingTop = Number.parseInt(style.paddingTop, 10);
65428
- const borderTop = Number.parseInt(style.borderTop, 10);
65429
- top = _classPrivateFieldGet(_cursor, this).top - paddingTop - borderTop - 1;
65389
+ top = _classPrivateFieldGet(_cursor, this).top - 1;
65430
65390
  }
65431
65391
  _classPrivateFieldGet(_container, this).style.top = `${top}px`;
65432
65392
  }
@@ -66167,7 +66127,7 @@ function createDefaultShortcutsList(menu) {
66167
66127
  keys: [['ArrowUp']],
66168
66128
  callback: () => menu.getNavigator().toPreviousItem()
66169
66129
  }, {
66170
- keys: [[hot.isRtl() ? 'ArrowLeft' : 'ArrowRight']],
66130
+ keys: [['ArrowRight']],
66171
66131
  callback: () => {
66172
66132
  const selection = hotMenu.getSelectedLast();
66173
66133
  if (selection) {
@@ -66178,7 +66138,7 @@ function createDefaultShortcutsList(menu) {
66178
66138
  }
66179
66139
  }
66180
66140
  }, {
66181
- keys: [[hot.isRtl() ? 'ArrowRight' : 'ArrowLeft']],
66141
+ keys: [['ArrowLeft']],
66182
66142
  callback: () => {
66183
66143
  const selection = hotMenu.getSelectedLast();
66184
66144
  if (selection && menu.isSubMenu()) {
@@ -66568,9 +66528,6 @@ class CopyPaste extends _base.BasePlugin {
66568
66528
  return _assertClassBrand(_CopyPaste_brand, _this, _onAfterSelection).call(_this, ...args);
66569
66529
  });
66570
66530
  this.addHook('afterSelectionEnd', () => _assertClassBrand(_CopyPaste_brand, this, _onAfterSelectionEnd).call(this));
66571
-
66572
- // Events are attached to the document, not the root table element - as it should,
66573
- // for Chrome 133 and lower to copy/paste/cut work properly (#dev-2277).
66574
66531
  this.eventManager.addEventListener(this.hot.rootDocument, 'copy', function () {
66575
66532
  return _this.onCopy(...arguments);
66576
66533
  });
@@ -66877,10 +66834,12 @@ class CopyPaste extends _base.BasePlugin {
66877
66834
  * @private
66878
66835
  */
66879
66836
  onCopy(event) {
66880
- const eventTarget = event.composedPath()[0];
66837
+ var _event$target, _this$hot$getSelected;
66881
66838
  const focusedElement = this.hot.getFocusManager().getRefocusElement();
66882
- const isHotInput = eventTarget === null || eventTarget === void 0 ? void 0 : eventTarget.hasAttribute('data-hot-input');
66883
- if (!this.hot.isListening() && !_classPrivateFieldGet(_isTriggeredByCopy, this) || this.isEditorOpened() || (0, _element.isHTMLElement)(eventTarget) && (isHotInput && eventTarget !== focusedElement || !isHotInput && eventTarget !== this.hot.rootDocument.body && !(0, _element.isInternalElement)(eventTarget, this.hot.rootElement))) {
66839
+ const isHotInput = (_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.hasAttribute('data-hot-input');
66840
+ const selectedCell = (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight;
66841
+ const TD = selectedCell ? this.hot.getCell(selectedCell.row, selectedCell.col, true) : null;
66842
+ if (!this.hot.isListening() && !_classPrivateFieldGet(_isTriggeredByCopy, this) || this.isEditorOpened() || (0, _element.isHTMLElement)(event.target) && (isHotInput && event.target !== focusedElement || !isHotInput && event.target !== this.hot.rootDocument.body && TD !== event.target)) {
66884
66843
  return;
66885
66844
  }
66886
66845
  event.preventDefault();
@@ -66910,10 +66869,12 @@ class CopyPaste extends _base.BasePlugin {
66910
66869
  * @private
66911
66870
  */
66912
66871
  onCut(event) {
66913
- const eventTarget = event.composedPath()[0];
66872
+ var _event$target2, _this$hot$getSelected2;
66914
66873
  const focusedElement = this.hot.getFocusManager().getRefocusElement();
66915
- const isHotInput = eventTarget === null || eventTarget === void 0 ? void 0 : eventTarget.hasAttribute('data-hot-input');
66916
- if (!this.hot.isListening() && !_classPrivateFieldGet(_isTriggeredByCut, this) || this.isEditorOpened() || (0, _element.isHTMLElement)(eventTarget) && (isHotInput && eventTarget !== focusedElement || !isHotInput && eventTarget !== this.hot.rootDocument.body && !(0, _element.isInternalElement)(eventTarget, this.hot.rootElement))) {
66874
+ const isHotInput = (_event$target2 = event.target) === null || _event$target2 === void 0 ? void 0 : _event$target2.hasAttribute('data-hot-input');
66875
+ const selectedCell = (_this$hot$getSelected2 = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected2 === void 0 ? void 0 : _this$hot$getSelected2.highlight;
66876
+ const TD = selectedCell ? this.hot.getCell(selectedCell.row, selectedCell.col, true) : null;
66877
+ if (!this.hot.isListening() && !_classPrivateFieldGet(_isTriggeredByCut, this) || this.isEditorOpened() || (0, _element.isHTMLElement)(event.target) && (isHotInput && event.target !== focusedElement || !isHotInput && event.target !== this.hot.rootDocument.body && TD !== event.target)) {
66917
66878
  return;
66918
66879
  }
66919
66880
  event.preventDefault();
@@ -66942,10 +66903,12 @@ class CopyPaste extends _base.BasePlugin {
66942
66903
  * @private
66943
66904
  */
66944
66905
  onPaste(event) {
66945
- const eventTarget = event.composedPath()[0];
66906
+ var _event$target3, _this$hot$getSelected3;
66946
66907
  const focusedElement = this.hot.getFocusManager().getRefocusElement();
66947
- const isHotInput = eventTarget === null || eventTarget === void 0 ? void 0 : eventTarget.hasAttribute('data-hot-input');
66948
- if (!this.hot.isListening() || this.isEditorOpened() || !this.hot.getSelected() || (0, _element.isHTMLElement)(eventTarget) && (isHotInput && eventTarget !== focusedElement || !isHotInput && eventTarget !== this.hot.rootDocument.body && !(0, _element.isInternalElement)(eventTarget, this.hot.rootElement))) {
66908
+ const isHotInput = (_event$target3 = event.target) === null || _event$target3 === void 0 ? void 0 : _event$target3.hasAttribute('data-hot-input');
66909
+ const selectedCell = (_this$hot$getSelected3 = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected3 === void 0 ? void 0 : _this$hot$getSelected3.highlight;
66910
+ const TD = selectedCell ? this.hot.getCell(selectedCell.row, selectedCell.col, true) : null;
66911
+ if (!this.hot.isListening() || this.isEditorOpened() || !this.hot.getSelected() || (0, _element.isHTMLElement)(event.target) && (isHotInput && event.target !== focusedElement || !isHotInput && event.target !== this.hot.rootDocument.body && TD !== event.target)) {
66949
66912
  return;
66950
66913
  }
66951
66914
  event.preventDefault();
@@ -67392,9 +67355,6 @@ class PasteEvent {
67392
67355
  this.clipboardData = new _clipboardData.default();
67393
67356
  }
67394
67357
  preventDefault() {}
67395
- composedPath() {
67396
- return [];
67397
- }
67398
67358
  }
67399
67359
  exports["default"] = PasteEvent;
67400
67360
 
@@ -70862,10 +70822,10 @@ class Filters extends _base.BasePlugin {
70862
70822
  *
70863
70823
  * @returns {Array}
70864
70824
  */
70825
+ /* eslint-enable jsdoc/require-description-complete-sentence */
70865
70826
  exportConditions() {
70866
70827
  return this.conditionCollection.exportAllConditions();
70867
70828
  }
70868
- /* eslint-enable jsdoc/require-description-complete-sentence */
70869
70829
 
70870
70830
  /**
70871
70831
  * Filters data based on added filter conditions.
@@ -70882,39 +70842,38 @@ class Filters extends _base.BasePlugin {
70882
70842
  let visibleVisualRows = [];
70883
70843
  const conditions = this.exportConditions();
70884
70844
  const allowFiltering = this.hot.runHooks('beforeFilter', conditions, _classPrivateFieldGet(_previousConditionStack, this));
70885
- if (allowFiltering !== false && needToFilter) {
70886
- const trimmedRows = [];
70887
- this.hot.batchExecution(() => {
70845
+ if (allowFiltering !== false) {
70846
+ if (needToFilter) {
70847
+ const trimmedRows = [];
70848
+ this.hot.batchExecution(() => {
70849
+ this.filtersRowsMap.clear();
70850
+ visibleVisualRows = (0, _array.arrayMap)(dataFilter.filter(), rowData => rowData.meta.visualRow);
70851
+ const visibleVisualRowsAssertion = (0, _utils.createArrayAssertion)(visibleVisualRows);
70852
+ (0, _number.rangeEach)(this.hot.countSourceRows() - 1, row => {
70853
+ if (!visibleVisualRowsAssertion(row)) {
70854
+ trimmedRows.push(row);
70855
+ }
70856
+ });
70857
+ (0, _array.arrayEach)(trimmedRows, physicalRow => {
70858
+ this.filtersRowsMap.setValueAtIndex(physicalRow, true);
70859
+ });
70860
+ }, true);
70861
+ if (!navigableHeaders && !visibleVisualRows.length) {
70862
+ this.hot.deselectCell();
70863
+ }
70864
+ } else {
70888
70865
  this.filtersRowsMap.clear();
70889
- visibleVisualRows = (0, _array.arrayMap)(dataFilter.filter(), rowData => rowData.meta.visualRow);
70890
- const visibleVisualRowsAssertion = (0, _utils.createArrayAssertion)(visibleVisualRows);
70891
- (0, _number.rangeEach)(this.hot.countSourceRows() - 1, row => {
70892
- if (!visibleVisualRowsAssertion(row)) {
70893
- trimmedRows.push(row);
70894
- }
70895
- });
70896
- (0, _array.arrayEach)(trimmedRows, physicalRow => {
70897
- this.filtersRowsMap.setValueAtIndex(physicalRow, true);
70898
- });
70899
- }, true);
70900
- if (!navigableHeaders && !visibleVisualRows.length) {
70901
- this.hot.deselectCell();
70902
70866
  }
70903
70867
  _classPrivateFieldSet(_previousConditionStack, this, this.exportConditions());
70904
- } else if (allowFiltering !== false && !needToFilter) {
70905
- _classPrivateFieldSet(_previousConditionStack, this, this.exportConditions());
70906
- this.filtersRowsMap.clear();
70868
+ this.hot.runHooks('afterFilter', conditions);
70869
+ this.hot.view.adjustElementsSize();
70870
+ this.hot.render();
70907
70871
  } else {
70908
70872
  this.importConditions(_classPrivateFieldGet(_previousConditionStack, this));
70909
70873
  }
70910
70874
  if (this.hot.selection.isSelected()) {
70911
70875
  this.hot.selectCell(navigableHeaders ? -1 : 0, this.hot.getSelectedRangeLast().highlight.col);
70912
70876
  }
70913
- if (allowFiltering !== false) {
70914
- this.hot.runHooks('afterFilter', conditions);
70915
- this.hot.view.adjustElementsSize();
70916
- this.hot.render();
70917
- }
70918
70877
  }
70919
70878
 
70920
70879
  /**
@@ -74341,13 +74300,7 @@ class MultipleSelectUI extends _base.BaseUI {
74341
74300
  beforeOnCellMouseUp: () => {
74342
74301
  _classPrivateFieldGet(_itemsBox, this).listen();
74343
74302
  },
74344
- modifyColWidth: width => {
74345
- const minWidth = _classPrivateFieldGet(_itemsBox, this).container.scrollWidth - (0, _element.getScrollbarWidth)(rootDocument);
74346
- if (width !== undefined && width < minWidth) {
74347
- return minWidth;
74348
- }
74349
- return width;
74350
- },
74303
+ colWidths: () => _classPrivateFieldGet(_itemsBox, this).container.scrollWidth - (0, _element.getScrollbarWidth)(rootDocument),
74351
74304
  maxCols: 1,
74352
74305
  autoWrapCol: true,
74353
74306
  height: 110,
@@ -78060,8 +78013,8 @@ class HiddenColumns extends _base.BasePlugin {
78060
78013
  * Disables the plugin functionality for this Handsontable instance.
78061
78014
  */
78062
78015
  disablePlugin() {
78063
- super.disablePlugin();
78064
78016
  this.hot.columnIndexMapper.unregisterMap(this.pluginName);
78017
+ super.disablePlugin();
78065
78018
  this.resetCellsMeta();
78066
78019
  }
78067
78020
 
@@ -78749,8 +78702,8 @@ class HiddenRows extends _base.BasePlugin {
78749
78702
  * Disables the plugin functionality for this Handsontable instance.
78750
78703
  */
78751
78704
  disablePlugin() {
78752
- super.disablePlugin();
78753
78705
  this.hot.rowIndexMapper.unregisterMap(this.pluginName);
78706
+ super.disablePlugin();
78754
78707
  this.resetCellsMeta();
78755
78708
  }
78756
78709
 
@@ -80789,12 +80742,12 @@ class ManualColumnResize extends _base.BasePlugin {
80789
80742
  setupGuidePosition() {
80790
80743
  const handleHeight = parseInt((0, _element.outerHeight)(_classPrivateFieldGet(_handle, this)), 10);
80791
80744
  const handleBottomPosition = parseInt(_classPrivateFieldGet(_handle, this).style.top, 10) + handleHeight;
80792
- const tableHeight = this.hot.view.getTableHeight();
80745
+ const maximumVisibleElementHeight = parseInt(this.hot.view.maximumVisibleElementHeight(0), 10);
80793
80746
  (0, _element.addClass)(_classPrivateFieldGet(_handle, this), 'active');
80794
80747
  (0, _element.addClass)(_classPrivateFieldGet(_guide, this), 'active');
80795
80748
  _classPrivateFieldGet(_guide, this).style.top = `${handleBottomPosition}px`;
80796
80749
  this.refreshGuidePosition();
80797
- _classPrivateFieldGet(_guide, this).style.height = `${tableHeight - handleHeight}px`;
80750
+ _classPrivateFieldGet(_guide, this).style.height = `${maximumVisibleElementHeight - handleHeight}px`;
80798
80751
  this.hot.rootElement.appendChild(_classPrivateFieldGet(_guide, this));
80799
80752
  }
80800
80753
 
@@ -80865,7 +80818,8 @@ class ManualColumnResize extends _base.BasePlugin {
80865
80818
  */
80866
80819
  afterMouseDownTimeout() {
80867
80820
  const render = () => {
80868
- this.hot.render();
80821
+ this.hot.forceFullRender = true;
80822
+ this.hot.view.render(); // updates all
80869
80823
  this.hot.view.adjustElementsSize();
80870
80824
  };
80871
80825
  const resize = (column, forceRender) => {
@@ -81025,7 +80979,8 @@ function _onMouseMove(event) {
81025
80979
  */
81026
80980
  function _onMouseUp() {
81027
80981
  const render = () => {
81028
- this.hot.render();
80982
+ this.hot.forceFullRender = true;
80983
+ this.hot.view.render(); // updates all
81029
80984
  this.hot.view.adjustElementsSize();
81030
80985
  };
81031
80986
  const resize = (column, forceRender) => {
@@ -82349,12 +82304,12 @@ class ManualRowResize extends _base.BasePlugin {
82349
82304
  setupGuidePosition() {
82350
82305
  const handleWidth = parseInt((0, _element.outerWidth)(_classPrivateFieldGet(_handle, this)), 10);
82351
82306
  const handleEndPosition = parseInt(_classPrivateFieldGet(_handle, this).style[this.inlineDir], 10) + handleWidth;
82352
- const tableWidth = this.hot.view.getTableWidth();
82307
+ const maximumVisibleElementWidth = parseInt(this.hot.view.maximumVisibleElementWidth(0), 10);
82353
82308
  (0, _element.addClass)(_classPrivateFieldGet(_handle, this), 'active');
82354
82309
  (0, _element.addClass)(_classPrivateFieldGet(_guide, this), 'active');
82355
82310
  _classPrivateFieldGet(_guide, this).style.top = _classPrivateFieldGet(_handle, this).style.top;
82356
82311
  _classPrivateFieldGet(_guide, this).style[this.inlineDir] = `${handleEndPosition}px`;
82357
- _classPrivateFieldGet(_guide, this).style.width = `${tableWidth - handleWidth}px`;
82312
+ _classPrivateFieldGet(_guide, this).style.width = `${maximumVisibleElementWidth - handleWidth}px`;
82358
82313
  this.hot.rootElement.appendChild(_classPrivateFieldGet(_guide, this));
82359
82314
  }
82360
82315
 
@@ -82435,7 +82390,8 @@ class ManualRowResize extends _base.BasePlugin {
82435
82390
  */
82436
82391
  afterMouseDownTimeout() {
82437
82392
  const render = () => {
82438
- this.hot.render();
82393
+ this.hot.forceFullRender = true;
82394
+ this.hot.view.render(); // updates all
82439
82395
  this.hot.view.adjustElementsSize();
82440
82396
  };
82441
82397
  const resize = (row, forceRender) => {
@@ -82563,7 +82519,8 @@ function _onMouseMove(event) {
82563
82519
  */
82564
82520
  function _onMouseUp() {
82565
82521
  const render = () => {
82566
- this.hot.render();
82522
+ this.hot.forceFullRender = true;
82523
+ this.hot.view.render(); // updates all
82567
82524
  this.hot.view.adjustElementsSize();
82568
82525
  };
82569
82526
  const runHooks = (row, forceRender) => {
@@ -82696,7 +82653,6 @@ var _element = __webpack_require__(155);
82696
82653
  var _browser = __webpack_require__(164);
82697
82654
  var _focusOrder2 = __webpack_require__(699);
82698
82655
  var _renderer = __webpack_require__(701);
82699
- var _utils = __webpack_require__(702);
82700
82656
  function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
82701
82657
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
82702
82658
  function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
@@ -83329,12 +83285,8 @@ class MergeCells extends _base.BasePlugin {
83329
83285
  * @param {CellRange} cellRange The cell range to merge or unmerged.
83330
83286
  */
83331
83287
  toggleMerge(cellRange) {
83332
- const {
83333
- from,
83334
- to
83335
- } = cellRange.clone().normalize();
83336
- const mergedCell = this.mergedCellsCollection.get(from.row, from.col);
83337
- const mergedCellCoversWholeRange = mergedCell.row === from.row && mergedCell.col === from.col && mergedCell.row + mergedCell.rowspan - 1 === to.row && mergedCell.col + mergedCell.colspan - 1 === to.col;
83288
+ const mergedCell = this.mergedCellsCollection.get(cellRange.from.row, cellRange.from.col);
83289
+ const mergedCellCoversWholeRange = mergedCell.row === cellRange.from.row && mergedCell.col === cellRange.from.col && mergedCell.row + mergedCell.rowspan - 1 === cellRange.to.row && mergedCell.col + mergedCell.colspan - 1 === cellRange.to.col;
83338
83290
  if (mergedCellCoversWholeRange) {
83339
83291
  this.unmergeRange(cellRange);
83340
83292
  } else {
@@ -84146,10 +84098,36 @@ function _onModifyRowHeightByOverlayName(height, row, overlayType) {
84146
84098
  } else {
84147
84099
  rowspanAfterCorrection = rowspan - rowspanCorrection;
84148
84100
  }
84149
- height = Math.max(height !== null && height !== void 0 ? height : 0, (0, _utils.sumCellsHeights)(this.hot, row, rowspanAfterCorrection));
84101
+ height = Math.max(height !== null && height !== void 0 ? height : 0, _assertClassBrand(_MergeCells_brand, this, _sumCellsHeights).call(this, row, rowspanAfterCorrection));
84150
84102
  });
84151
84103
  return height;
84152
84104
  }
84105
+ /**
84106
+ * Sums the heights of the all cells that the merge cell consists of.
84107
+ *
84108
+ * @param {number} row The visual row index of the merged cell.
84109
+ * @param {number} rowspan The rowspan value of the merged cell.
84110
+ * @returns {number}
84111
+ */
84112
+ function _sumCellsHeights(row, rowspan) {
84113
+ const {
84114
+ view,
84115
+ rowIndexMapper
84116
+ } = this.hot;
84117
+ const stylesHandler = view.getStylesHandler();
84118
+ const defaultHeight = view.getDefaultRowHeight();
84119
+ let height = 0;
84120
+ for (let i = row; i < row + rowspan; i++) {
84121
+ if (!rowIndexMapper.isHidden(i)) {
84122
+ var _this$hot$getRowHeigh;
84123
+ height += (_this$hot$getRowHeigh = this.hot.getRowHeight(i)) !== null && _this$hot$getRowHeigh !== void 0 ? _this$hot$getRowHeigh : defaultHeight;
84124
+ if (i === 0 && !stylesHandler.isClassicTheme()) {
84125
+ height += 1; // border-top-width
84126
+ }
84127
+ }
84128
+ }
84129
+ return height;
84130
+ }
84153
84131
 
84154
84132
  /***/ }),
84155
84133
  /* 690 */
@@ -86334,8 +86312,6 @@ var _default = exports["default"] = LinkedList;
86334
86312
  exports.__esModule = true;
86335
86313
  exports.createMergeCellRenderer = createMergeCellRenderer;
86336
86314
  var _object = __webpack_require__(165);
86337
- var _browser = __webpack_require__(164);
86338
- var _utils = __webpack_require__(702);
86339
86315
  /**
86340
86316
  * Creates a renderer object for the `MergeCells` plugin.
86341
86317
  *
@@ -86351,7 +86327,6 @@ function createMergeCellRenderer(plugin) {
86351
86327
  rowIndexMapper: rowMapper,
86352
86328
  columnIndexMapper: columnMapper
86353
86329
  } = hot;
86354
- const updateNextCellsHeight = new Map();
86355
86330
 
86356
86331
  /**
86357
86332
  * Runs before the cell is rendered.
@@ -86373,10 +86348,6 @@ function createMergeCellRenderer(plugin) {
86373
86348
  if (!(0, _object.isObject)(mergedCell)) {
86374
86349
  TD.removeAttribute('rowspan');
86375
86350
  TD.removeAttribute('colspan');
86376
- if ((0, _browser.isSafari)() && updateNextCellsHeight.has(row) && !hot.getSettings().rowHeaders) {
86377
- TD.style.height = `${updateNextCellsHeight.get(row)}px`;
86378
- updateNextCellsHeight.delete(row);
86379
- }
86380
86351
  TD.style.display = '';
86381
86352
  return;
86382
86353
  }
@@ -86388,14 +86359,6 @@ function createMergeCellRenderer(plugin) {
86388
86359
  } = mergedCell;
86389
86360
  const [lastMergedRowIndex, lastMergedColumnIndex] = plugin.translateMergedCellToRenderable(origRow, origRowspan, origColumn, origColspan);
86390
86361
  const isVirtualRenderingEnabled = plugin.getSetting('virtualized');
86391
-
86392
- // Safari bug fix - the height of the cells next to the merged cell must be defined
86393
- // so that their height is proportional to the height of the merged cell
86394
- // (this emulates default behavior in Chrome, FF etc.)
86395
- if ((0, _browser.isSafari)() && origColumn === 0 && !hot.getSettings().rowHeaders) {
86396
- const height = (0, _utils.sumCellsHeights)(hot, origRow, origRowspan);
86397
- updateNextCellsHeight.set(row, height / origRowspan);
86398
- }
86399
86362
  const renderedRowIndex = rowMapper.getRenderableFromVisualIndex(row);
86400
86363
  const renderedColumnIndex = columnMapper.getRenderableFromVisualIndex(col);
86401
86364
  const maxRowSpan = lastMergedRowIndex - renderedRowIndex + 1; // Number of rendered columns.
@@ -86431,56 +86394,19 @@ function createMergeCellRenderer(plugin) {
86431
86394
 
86432
86395
  /***/ }),
86433
86396
  /* 702 */
86434
- /***/ ((__unused_webpack_module, exports) => {
86435
-
86436
- "use strict";
86437
-
86438
-
86439
- exports.__esModule = true;
86440
- exports.sumCellsHeights = sumCellsHeights;
86441
- /**
86442
- * Calculates the total height of the merged cell.
86443
- *
86444
- * @param {Core} hotInstance The Handsontable instance.
86445
- * @param {*} row The merged cell's row index.
86446
- * @param {*} rowspan The merged cell height.
86447
- * @returns {number}
86448
- */
86449
- function sumCellsHeights(hotInstance, row, rowspan) {
86450
- const {
86451
- view,
86452
- rowIndexMapper
86453
- } = hotInstance;
86454
- const stylesHandler = view.getStylesHandler();
86455
- const defaultHeight = view.getDefaultRowHeight();
86456
- let height = 0;
86457
- for (let i = row; i < row + rowspan; i++) {
86458
- if (!rowIndexMapper.isHidden(i)) {
86459
- var _hotInstance$getRowHe;
86460
- height += (_hotInstance$getRowHe = hotInstance.getRowHeight(i)) !== null && _hotInstance$getRowHe !== void 0 ? _hotInstance$getRowHe : defaultHeight;
86461
- if (i === 0 && !stylesHandler.isClassicTheme()) {
86462
- height += 1; // border-top-width
86463
- }
86464
- }
86465
- }
86466
- return height;
86467
- }
86468
-
86469
- /***/ }),
86470
- /* 703 */
86471
86397
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
86472
86398
 
86473
86399
  "use strict";
86474
86400
 
86475
86401
 
86476
86402
  exports.__esModule = true;
86477
- var _multiColumnSorting = __webpack_require__(704);
86403
+ var _multiColumnSorting = __webpack_require__(703);
86478
86404
  exports.PLUGIN_KEY = _multiColumnSorting.PLUGIN_KEY;
86479
86405
  exports.PLUGIN_PRIORITY = _multiColumnSorting.PLUGIN_PRIORITY;
86480
86406
  exports.MultiColumnSorting = _multiColumnSorting.MultiColumnSorting;
86481
86407
 
86482
86408
  /***/ }),
86483
- /* 704 */
86409
+ /* 703 */
86484
86410
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
86485
86411
 
86486
86412
  "use strict";
@@ -86493,8 +86419,8 @@ var _columnSorting = __webpack_require__(522);
86493
86419
  var _sortService = __webpack_require__(526);
86494
86420
  var _utils = __webpack_require__(525);
86495
86421
  var _element = __webpack_require__(155);
86496
- var _rootComparator = __webpack_require__(705);
86497
- var _domHelpers = __webpack_require__(706);
86422
+ var _rootComparator = __webpack_require__(704);
86423
+ var _domHelpers = __webpack_require__(705);
86498
86424
  var _shortcutContexts = __webpack_require__(352);
86499
86425
  const PLUGIN_KEY = exports.PLUGIN_KEY = 'multiColumnSorting';
86500
86426
  const PLUGIN_PRIORITY = exports.PLUGIN_PRIORITY = 170;
@@ -86780,7 +86706,7 @@ class MultiColumnSorting extends _columnSorting.ColumnSorting {
86780
86706
  exports.MultiColumnSorting = MultiColumnSorting;
86781
86707
 
86782
86708
  /***/ }),
86783
- /* 705 */
86709
+ /* 704 */
86784
86710
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
86785
86711
 
86786
86712
  "use strict";
@@ -86822,7 +86748,7 @@ function rootComparator(sortingOrders, columnMetas) {
86822
86748
  }
86823
86749
 
86824
86750
  /***/ }),
86825
- /* 706 */
86751
+ /* 705 */
86826
86752
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
86827
86753
 
86828
86754
  "use strict";
@@ -86868,20 +86794,20 @@ function getClassesToRemove(htmlElement) {
86868
86794
  }
86869
86795
 
86870
86796
  /***/ }),
86871
- /* 707 */
86797
+ /* 706 */
86872
86798
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
86873
86799
 
86874
86800
  "use strict";
86875
86801
 
86876
86802
 
86877
86803
  exports.__esModule = true;
86878
- var _multipleSelectionHandles = __webpack_require__(708);
86804
+ var _multipleSelectionHandles = __webpack_require__(707);
86879
86805
  exports.PLUGIN_KEY = _multipleSelectionHandles.PLUGIN_KEY;
86880
86806
  exports.PLUGIN_PRIORITY = _multipleSelectionHandles.PLUGIN_PRIORITY;
86881
86807
  exports.MultipleSelectionHandles = _multipleSelectionHandles.MultipleSelectionHandles;
86882
86808
 
86883
86809
  /***/ }),
86884
- /* 708 */
86810
+ /* 707 */
86885
86811
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
86886
86812
 
86887
86813
  "use strict";
@@ -87220,20 +87146,20 @@ class MultipleSelectionHandles extends _base.BasePlugin {
87220
87146
  exports.MultipleSelectionHandles = MultipleSelectionHandles;
87221
87147
 
87222
87148
  /***/ }),
87223
- /* 709 */
87149
+ /* 708 */
87224
87150
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
87225
87151
 
87226
87152
  "use strict";
87227
87153
 
87228
87154
 
87229
87155
  exports.__esModule = true;
87230
- var _nestedHeaders = __webpack_require__(710);
87156
+ var _nestedHeaders = __webpack_require__(709);
87231
87157
  exports.PLUGIN_KEY = _nestedHeaders.PLUGIN_KEY;
87232
87158
  exports.PLUGIN_PRIORITY = _nestedHeaders.PLUGIN_PRIORITY;
87233
87159
  exports.NestedHeaders = _nestedHeaders.NestedHeaders;
87234
87160
 
87235
87161
  /***/ }),
87236
- /* 710 */
87162
+ /* 709 */
87237
87163
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
87238
87164
 
87239
87165
  "use strict";
@@ -87253,8 +87179,8 @@ var _event = __webpack_require__(175);
87253
87179
  var _console = __webpack_require__(178);
87254
87180
  var _selection = __webpack_require__(318);
87255
87181
  var _base = __webpack_require__(507);
87256
- var _stateManager2 = _interopRequireDefault(__webpack_require__(711));
87257
- var _ghostTable = _interopRequireDefault(__webpack_require__(724));
87182
+ var _stateManager2 = _interopRequireDefault(__webpack_require__(710));
87183
+ var _ghostTable = _interopRequireDefault(__webpack_require__(723));
87258
87184
  function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
87259
87185
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
87260
87186
  function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
@@ -88242,7 +88168,7 @@ function _onAfterLoadData(sourceData, initialLoad) {
88242
88168
  }
88243
88169
 
88244
88170
  /***/ }),
88245
- /* 711 */
88171
+ /* 710 */
88246
88172
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
88247
88173
 
88248
88174
  "use strict";
@@ -88255,11 +88181,11 @@ __webpack_require__(87);
88255
88181
  __webpack_require__(115);
88256
88182
  __webpack_require__(142);
88257
88183
  var _array = __webpack_require__(161);
88258
- var _sourceSettings2 = _interopRequireDefault(__webpack_require__(712));
88259
- var _headersTree2 = _interopRequireDefault(__webpack_require__(715));
88260
- var _nodeModifiers = __webpack_require__(717);
88261
- var _matrixGenerator = __webpack_require__(723);
88262
- var _tree = __webpack_require__(716);
88184
+ var _sourceSettings2 = _interopRequireDefault(__webpack_require__(711));
88185
+ var _headersTree2 = _interopRequireDefault(__webpack_require__(714));
88186
+ var _nodeModifiers = __webpack_require__(716);
88187
+ var _matrixGenerator = __webpack_require__(722);
88188
+ var _tree = __webpack_require__(715);
88263
88189
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
88264
88190
  function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
88265
88191
  function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
@@ -88734,7 +88660,7 @@ class StateManager {
88734
88660
  exports["default"] = StateManager;
88735
88661
 
88736
88662
  /***/ }),
88737
- /* 712 */
88663
+ /* 711 */
88738
88664
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
88739
88665
 
88740
88666
  "use strict";
@@ -88745,7 +88671,7 @@ __webpack_require__(5);
88745
88671
  __webpack_require__(87);
88746
88672
  var _object = __webpack_require__(165);
88747
88673
  var _array = __webpack_require__(161);
88748
- var _settingsNormalizer = __webpack_require__(713);
88674
+ var _settingsNormalizer = __webpack_require__(712);
88749
88675
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
88750
88676
  function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
88751
88677
  function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
@@ -88956,7 +88882,7 @@ class SourceSettings {
88956
88882
  exports["default"] = SourceSettings;
88957
88883
 
88958
88884
  /***/ }),
88959
- /* 713 */
88885
+ /* 712 */
88960
88886
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
88961
88887
 
88962
88888
  "use strict";
@@ -88968,7 +88894,7 @@ __webpack_require__(87);
88968
88894
  var _array = __webpack_require__(161);
88969
88895
  var _object = __webpack_require__(165);
88970
88896
  var _mixed = __webpack_require__(158);
88971
- var _utils = __webpack_require__(714);
88897
+ var _utils = __webpack_require__(713);
88972
88898
  /* eslint-disable jsdoc/require-description-complete-sentence */
88973
88899
 
88974
88900
  /**
@@ -89070,7 +88996,7 @@ function normalizeSettings(sourceSettings) {
89070
88996
  }
89071
88997
 
89072
88998
  /***/ }),
89073
- /* 714 */
88999
+ /* 713 */
89074
89000
  /***/ ((__unused_webpack_module, exports) => {
89075
89001
 
89076
89002
  "use strict";
@@ -89147,7 +89073,7 @@ function createPlaceholderHeaderSettings() {
89147
89073
  }
89148
89074
 
89149
89075
  /***/ }),
89150
- /* 715 */
89076
+ /* 714 */
89151
89077
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
89152
89078
 
89153
89079
  "use strict";
@@ -89157,7 +89083,7 @@ var _interopRequireDefault = __webpack_require__(1);
89157
89083
  exports.__esModule = true;
89158
89084
  __webpack_require__(5);
89159
89085
  var _array = __webpack_require__(161);
89160
- var _tree = _interopRequireDefault(__webpack_require__(716));
89086
+ var _tree = _interopRequireDefault(__webpack_require__(715));
89161
89087
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
89162
89088
  function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
89163
89089
  function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
@@ -89385,7 +89311,7 @@ class HeadersTree {
89385
89311
  exports["default"] = HeadersTree;
89386
89312
 
89387
89313
  /***/ }),
89388
- /* 716 */
89314
+ /* 715 */
89389
89315
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
89390
89316
 
89391
89317
  "use strict";
@@ -89604,7 +89530,7 @@ class TreeNode {
89604
89530
  exports["default"] = TreeNode;
89605
89531
 
89606
89532
  /***/ }),
89607
- /* 717 */
89533
+ /* 716 */
89608
89534
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
89609
89535
 
89610
89536
  "use strict";
@@ -89613,10 +89539,10 @@ exports["default"] = TreeNode;
89613
89539
  exports.__esModule = true;
89614
89540
  exports.triggerNodeModification = triggerNodeModification;
89615
89541
  __webpack_require__(5);
89616
- var _collapse = __webpack_require__(718);
89617
- var _expand = __webpack_require__(719);
89618
- var _hideColumn = __webpack_require__(721);
89619
- var _showColumn = __webpack_require__(722);
89542
+ var _collapse = __webpack_require__(717);
89543
+ var _expand = __webpack_require__(718);
89544
+ var _hideColumn = __webpack_require__(720);
89545
+ var _showColumn = __webpack_require__(721);
89620
89546
  /**
89621
89547
  * The NodeModifiers module is responsible for the modification of a tree structure
89622
89548
  * in a way to achieve new column headers state.
@@ -89646,7 +89572,7 @@ function triggerNodeModification(actionName, nodeToProcess, gridColumnIndex) {
89646
89572
  }
89647
89573
 
89648
89574
  /***/ }),
89649
- /* 718 */
89575
+ /* 717 */
89650
89576
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
89651
89577
 
89652
89578
  "use strict";
@@ -89662,8 +89588,8 @@ __webpack_require__(109);
89662
89588
  __webpack_require__(111);
89663
89589
  __webpack_require__(113);
89664
89590
  var _array = __webpack_require__(161);
89665
- var _expand = __webpack_require__(719);
89666
- var _tree = __webpack_require__(720);
89591
+ var _expand = __webpack_require__(718);
89592
+ var _tree = __webpack_require__(719);
89667
89593
  /**
89668
89594
  * Collapsing a node is a process where the processing node is collapsed
89669
89595
  * to the colspan width of the first child. All node children, except the
@@ -89756,7 +89682,7 @@ function collapseNode(nodeToProcess) {
89756
89682
  }
89757
89683
 
89758
89684
  /***/ }),
89759
- /* 719 */
89685
+ /* 718 */
89760
89686
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
89761
89687
 
89762
89688
  "use strict";
@@ -89772,8 +89698,8 @@ __webpack_require__(109);
89772
89698
  __webpack_require__(111);
89773
89699
  __webpack_require__(113);
89774
89700
  var _array = __webpack_require__(161);
89775
- var _collapse = __webpack_require__(718);
89776
- var _tree = __webpack_require__(720);
89701
+ var _collapse = __webpack_require__(717);
89702
+ var _tree = __webpack_require__(719);
89777
89703
  /**
89778
89704
  * Expanding a node is a process where the processing node is expanded to
89779
89705
  * its original colspan width. To restore an original state of all node
@@ -89861,7 +89787,7 @@ function expandNode(nodeToProcess) {
89861
89787
  }
89862
89788
 
89863
89789
  /***/ }),
89864
- /* 720 */
89790
+ /* 719 */
89865
89791
  /***/ ((__unused_webpack_module, exports) => {
89866
89792
 
89867
89793
  "use strict";
@@ -89932,7 +89858,7 @@ function isNodeReflectsFirstChildColspan(node) {
89932
89858
  }
89933
89859
 
89934
89860
  /***/ }),
89935
- /* 721 */
89861
+ /* 720 */
89936
89862
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
89937
89863
 
89938
89864
  "use strict";
@@ -89995,7 +89921,7 @@ the last node, the hide column modification can be applied.`);
89995
89921
  }
89996
89922
 
89997
89923
  /***/ }),
89998
- /* 722 */
89924
+ /* 721 */
89999
89925
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
90000
89926
 
90001
89927
  "use strict";
@@ -90056,7 +89982,7 @@ the last node, the show column modification can be applied.`);
90056
89982
  }
90057
89983
 
90058
89984
  /***/ }),
90059
- /* 723 */
89985
+ /* 722 */
90060
89986
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
90061
89987
 
90062
89988
  "use strict";
@@ -90066,7 +89992,7 @@ exports.__esModule = true;
90066
89992
  exports.generateMatrix = generateMatrix;
90067
89993
  __webpack_require__(87);
90068
89994
  var _array = __webpack_require__(161);
90069
- var _utils = __webpack_require__(714);
89995
+ var _utils = __webpack_require__(713);
90070
89996
  /* eslint-disable jsdoc/require-description-complete-sentence */
90071
89997
 
90072
89998
  /**
@@ -90162,7 +90088,7 @@ function createNestedArrayIfNecessary(array, index) {
90162
90088
  }
90163
90089
 
90164
90090
  /***/ }),
90165
- /* 724 */
90091
+ /* 723 */
90166
90092
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
90167
90093
 
90168
90094
  "use strict";
@@ -90318,20 +90244,20 @@ class GhostTable {
90318
90244
  var _default = exports["default"] = GhostTable;
90319
90245
 
90320
90246
  /***/ }),
90321
- /* 725 */
90247
+ /* 724 */
90322
90248
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
90323
90249
 
90324
90250
  "use strict";
90325
90251
 
90326
90252
 
90327
90253
  exports.__esModule = true;
90328
- var _nestedRows = __webpack_require__(726);
90254
+ var _nestedRows = __webpack_require__(725);
90329
90255
  exports.PLUGIN_KEY = _nestedRows.PLUGIN_KEY;
90330
90256
  exports.PLUGIN_PRIORITY = _nestedRows.PLUGIN_PRIORITY;
90331
90257
  exports.NestedRows = _nestedRows.NestedRows;
90332
90258
 
90333
90259
  /***/ }),
90334
- /* 726 */
90260
+ /* 725 */
90335
90261
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
90336
90262
 
90337
90263
  "use strict";
@@ -90353,15 +90279,15 @@ __webpack_require__(133);
90353
90279
  __webpack_require__(196);
90354
90280
  var _defineProperty2 = _interopRequireDefault(__webpack_require__(170));
90355
90281
  var _base = __webpack_require__(507);
90356
- var _dataManager = _interopRequireDefault(__webpack_require__(727));
90357
- var _collapsing = _interopRequireDefault(__webpack_require__(728));
90358
- var _headers = _interopRequireDefault(__webpack_require__(730));
90359
- var _contextMenu = _interopRequireDefault(__webpack_require__(731));
90282
+ var _dataManager = _interopRequireDefault(__webpack_require__(726));
90283
+ var _collapsing = _interopRequireDefault(__webpack_require__(727));
90284
+ var _headers = _interopRequireDefault(__webpack_require__(729));
90285
+ var _contextMenu = _interopRequireDefault(__webpack_require__(730));
90360
90286
  var _console = __webpack_require__(178);
90361
90287
  var _data = __webpack_require__(288);
90362
90288
  var _translations = __webpack_require__(291);
90363
90289
  var _shortcutContexts = __webpack_require__(352);
90364
- var _rowMoveController = _interopRequireDefault(__webpack_require__(732));
90290
+ var _rowMoveController = _interopRequireDefault(__webpack_require__(731));
90365
90291
  function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
90366
90292
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
90367
90293
  function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
@@ -90893,7 +90819,7 @@ function _onBeforeLoadData(data) {
90893
90819
  }
90894
90820
 
90895
90821
  /***/ }),
90896
- /* 727 */
90822
+ /* 726 */
90897
90823
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
90898
90824
 
90899
90825
  "use strict";
@@ -91524,7 +91450,7 @@ class DataManager {
91524
91450
  */
91525
91451
  syncRowWithRawSource(rowElement) {
91526
91452
  let upmostParent = rowElement;
91527
- let tempParent = upmostParent;
91453
+ let tempParent = null;
91528
91454
  do {
91529
91455
  tempParent = this.getRowParent(tempParent);
91530
91456
  if (tempParent !== null) {
@@ -91532,7 +91458,7 @@ class DataManager {
91532
91458
  }
91533
91459
  } while (tempParent !== null);
91534
91460
  this.plugin.disableCoreAPIModifiers();
91535
- this.hot.setSourceDataAtCell(this.getRowIndexWithinParent(upmostParent), '__children', upmostParent.__children, 'NestedRows.syncRowWithRawSource');
91461
+ this.hot.setSourceDataAtCell(this.getRowIndex(upmostParent), '__children', upmostParent.__children, 'NestedRows.syncRowWithRawSource');
91536
91462
  this.plugin.enableCoreAPIModifiers();
91537
91463
  }
91538
91464
 
@@ -91609,7 +91535,7 @@ class DataManager {
91609
91535
  var _default = exports["default"] = DataManager;
91610
91536
 
91611
91537
  /***/ }),
91612
- /* 728 */
91538
+ /* 727 */
91613
91539
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
91614
91540
 
91615
91541
  "use strict";
@@ -91622,8 +91548,8 @@ var _event = __webpack_require__(175);
91622
91548
  var _array = __webpack_require__(161);
91623
91549
  var _number = __webpack_require__(200);
91624
91550
  var _element = __webpack_require__(155);
91625
- var _base = _interopRequireDefault(__webpack_require__(729));
91626
- var _headers = _interopRequireDefault(__webpack_require__(730));
91551
+ var _base = _interopRequireDefault(__webpack_require__(728));
91552
+ var _headers = _interopRequireDefault(__webpack_require__(729));
91627
91553
  /**
91628
91554
  * Class responsible for the UI for collapsing and expanding groups.
91629
91555
  *
@@ -92084,7 +92010,7 @@ class CollapsingUI extends _base.default {
92084
92010
  var _default = exports["default"] = CollapsingUI;
92085
92011
 
92086
92012
  /***/ }),
92087
- /* 729 */
92013
+ /* 728 */
92088
92014
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
92089
92015
 
92090
92016
  "use strict";
@@ -92118,7 +92044,7 @@ class BaseUI {
92118
92044
  var _default = exports["default"] = BaseUI;
92119
92045
 
92120
92046
  /***/ }),
92121
- /* 730 */
92047
+ /* 729 */
92122
92048
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
92123
92049
 
92124
92050
  "use strict";
@@ -92129,7 +92055,7 @@ exports.__esModule = true;
92129
92055
  var _array = __webpack_require__(161);
92130
92056
  var _number = __webpack_require__(200);
92131
92057
  var _element = __webpack_require__(155);
92132
- var _base = _interopRequireDefault(__webpack_require__(729));
92058
+ var _base = _interopRequireDefault(__webpack_require__(728));
92133
92059
  var _a11y = __webpack_require__(162);
92134
92060
  /**
92135
92061
  * Class responsible for the UI in the Nested Rows' row headers.
@@ -92262,7 +92188,7 @@ class HeadersUI extends _base.default {
92262
92188
  var _default = exports["default"] = HeadersUI;
92263
92189
 
92264
92190
  /***/ }),
92265
- /* 731 */
92191
+ /* 730 */
92266
92192
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
92267
92193
 
92268
92194
  "use strict";
@@ -92275,7 +92201,7 @@ var _defineProperty2 = _interopRequireDefault(__webpack_require__(170));
92275
92201
  var _number = __webpack_require__(200);
92276
92202
  var _array = __webpack_require__(161);
92277
92203
  var C = _interopRequireWildcard(__webpack_require__(317));
92278
- var _base = _interopRequireDefault(__webpack_require__(729));
92204
+ var _base = _interopRequireDefault(__webpack_require__(728));
92279
92205
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
92280
92206
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
92281
92207
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
@@ -92381,7 +92307,7 @@ class ContextMenuUI extends _base.default {
92381
92307
  var _default = exports["default"] = ContextMenuUI;
92382
92308
 
92383
92309
  /***/ }),
92384
- /* 732 */
92310
+ /* 731 */
92385
92311
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
92386
92312
 
92387
92313
  "use strict";
@@ -92670,20 +92596,20 @@ class RowMoveController {
92670
92596
  exports["default"] = RowMoveController;
92671
92597
 
92672
92598
  /***/ }),
92673
- /* 733 */
92599
+ /* 732 */
92674
92600
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
92675
92601
 
92676
92602
  "use strict";
92677
92603
 
92678
92604
 
92679
92605
  exports.__esModule = true;
92680
- var _persistentState = __webpack_require__(734);
92606
+ var _persistentState = __webpack_require__(733);
92681
92607
  exports.PLUGIN_KEY = _persistentState.PLUGIN_KEY;
92682
92608
  exports.PLUGIN_PRIORITY = _persistentState.PLUGIN_PRIORITY;
92683
92609
  exports.PersistentState = _persistentState.PersistentState;
92684
92610
 
92685
92611
  /***/ }),
92686
- /* 734 */
92612
+ /* 733 */
92687
92613
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
92688
92614
 
92689
92615
  "use strict";
@@ -92693,7 +92619,7 @@ var _interopRequireDefault = __webpack_require__(1);
92693
92619
  exports.__esModule = true;
92694
92620
  var _defineProperty2 = _interopRequireDefault(__webpack_require__(170));
92695
92621
  var _base = __webpack_require__(507);
92696
- var _storage = _interopRequireDefault(__webpack_require__(735));
92622
+ var _storage = _interopRequireDefault(__webpack_require__(734));
92697
92623
  var _hooks = __webpack_require__(177);
92698
92624
  _hooks.Hooks.getSingleton().register('persistentStateSave');
92699
92625
  _hooks.Hooks.getSingleton().register('persistentStateLoad');
@@ -92834,7 +92760,7 @@ class PersistentState extends _base.BasePlugin {
92834
92760
  exports.PersistentState = PersistentState;
92835
92761
 
92836
92762
  /***/ }),
92837
- /* 735 */
92763
+ /* 734 */
92838
92764
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
92839
92765
 
92840
92766
  "use strict";
@@ -92958,20 +92884,20 @@ class Storage {
92958
92884
  var _default = exports["default"] = Storage;
92959
92885
 
92960
92886
  /***/ }),
92961
- /* 736 */
92887
+ /* 735 */
92962
92888
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
92963
92889
 
92964
92890
  "use strict";
92965
92891
 
92966
92892
 
92967
92893
  exports.__esModule = true;
92968
- var _search = __webpack_require__(737);
92894
+ var _search = __webpack_require__(736);
92969
92895
  exports.PLUGIN_KEY = _search.PLUGIN_KEY;
92970
92896
  exports.PLUGIN_PRIORITY = _search.PLUGIN_PRIORITY;
92971
92897
  exports.Search = _search.Search;
92972
92898
 
92973
92899
  /***/ }),
92974
- /* 737 */
92900
+ /* 736 */
92975
92901
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
92976
92902
 
92977
92903
  "use strict";
@@ -93279,20 +93205,20 @@ function _onBeforeRenderer(TD, row, col, prop, value, cellProperties) {
93279
93205
  }
93280
93206
 
93281
93207
  /***/ }),
93282
- /* 738 */
93208
+ /* 737 */
93283
93209
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
93284
93210
 
93285
93211
  "use strict";
93286
93212
 
93287
93213
 
93288
93214
  exports.__esModule = true;
93289
- var _stretchColumns = __webpack_require__(739);
93215
+ var _stretchColumns = __webpack_require__(738);
93290
93216
  exports.PLUGIN_KEY = _stretchColumns.PLUGIN_KEY;
93291
93217
  exports.PLUGIN_PRIORITY = _stretchColumns.PLUGIN_PRIORITY;
93292
93218
  exports.StretchColumns = _stretchColumns.StretchColumns;
93293
93219
 
93294
93220
  /***/ }),
93295
- /* 739 */
93221
+ /* 738 */
93296
93222
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
93297
93223
 
93298
93224
  "use strict";
@@ -93303,7 +93229,7 @@ __webpack_require__(5);
93303
93229
  __webpack_require__(115);
93304
93230
  __webpack_require__(133);
93305
93231
  var _base = __webpack_require__(507);
93306
- var _calculator = __webpack_require__(740);
93232
+ var _calculator = __webpack_require__(739);
93307
93233
  function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
93308
93234
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
93309
93235
  function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
@@ -93520,7 +93446,7 @@ function _onBeforeRender(fullRender) {
93520
93446
  }
93521
93447
 
93522
93448
  /***/ }),
93523
- /* 740 */
93449
+ /* 739 */
93524
93450
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
93525
93451
 
93526
93452
  "use strict";
@@ -93532,8 +93458,8 @@ __webpack_require__(115);
93532
93458
  __webpack_require__(133);
93533
93459
  var _src = __webpack_require__(206);
93534
93460
  var _element = __webpack_require__(155);
93535
- var _all = __webpack_require__(741);
93536
- var _last = __webpack_require__(743);
93461
+ var _all = __webpack_require__(740);
93462
+ var _last = __webpack_require__(742);
93537
93463
  function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
93538
93464
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
93539
93465
  function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
@@ -93688,7 +93614,7 @@ function _overwriteColumnWidthFn(columnWidth, columnVisualIndex) {
93688
93614
  }
93689
93615
 
93690
93616
  /***/ }),
93691
- /* 741 */
93617
+ /* 740 */
93692
93618
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
93693
93619
 
93694
93620
  "use strict";
@@ -93700,7 +93626,7 @@ __webpack_require__(115);
93700
93626
  __webpack_require__(133);
93701
93627
  __webpack_require__(196);
93702
93628
  var _src = __webpack_require__(206);
93703
- var _base = __webpack_require__(742);
93629
+ var _base = __webpack_require__(741);
93704
93630
  /**
93705
93631
  * The strategy calculates the column widths by stretching all columns evenly.
93706
93632
  *
@@ -93765,7 +93691,7 @@ class StretchAllStrategy extends _base.StretchStrategy {
93765
93691
  exports.StretchAllStrategy = StretchAllStrategy;
93766
93692
 
93767
93693
  /***/ }),
93768
- /* 742 */
93694
+ /* 741 */
93769
93695
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
93770
93696
 
93771
93697
  "use strict";
@@ -93854,7 +93780,7 @@ class StretchStrategy {
93854
93780
  exports.StretchStrategy = StretchStrategy;
93855
93781
 
93856
93782
  /***/ }),
93857
- /* 743 */
93783
+ /* 742 */
93858
93784
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
93859
93785
 
93860
93786
  "use strict";
@@ -93864,7 +93790,7 @@ exports.__esModule = true;
93864
93790
  __webpack_require__(5);
93865
93791
  __webpack_require__(115);
93866
93792
  __webpack_require__(196);
93867
- var _base = __webpack_require__(742);
93793
+ var _base = __webpack_require__(741);
93868
93794
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
93869
93795
  function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
93870
93796
  function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
@@ -93939,20 +93865,20 @@ class StretchLastStrategy extends _base.StretchStrategy {
93939
93865
  exports.StretchLastStrategy = StretchLastStrategy;
93940
93866
 
93941
93867
  /***/ }),
93942
- /* 744 */
93868
+ /* 743 */
93943
93869
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
93944
93870
 
93945
93871
  "use strict";
93946
93872
 
93947
93873
 
93948
93874
  exports.__esModule = true;
93949
- var _touchScroll = __webpack_require__(745);
93875
+ var _touchScroll = __webpack_require__(744);
93950
93876
  exports.PLUGIN_KEY = _touchScroll.PLUGIN_KEY;
93951
93877
  exports.PLUGIN_PRIORITY = _touchScroll.PLUGIN_PRIORITY;
93952
93878
  exports.TouchScroll = _touchScroll.TouchScroll;
93953
93879
 
93954
93880
  /***/ }),
93955
- /* 745 */
93881
+ /* 744 */
93956
93882
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
93957
93883
 
93958
93884
  "use strict";
@@ -94141,20 +94067,20 @@ function _onAfterMomentumScroll() {
94141
94067
  }
94142
94068
 
94143
94069
  /***/ }),
94144
- /* 746 */
94070
+ /* 745 */
94145
94071
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
94146
94072
 
94147
94073
  "use strict";
94148
94074
 
94149
94075
 
94150
94076
  exports.__esModule = true;
94151
- var _trimRows = __webpack_require__(747);
94077
+ var _trimRows = __webpack_require__(746);
94152
94078
  exports.PLUGIN_KEY = _trimRows.PLUGIN_KEY;
94153
94079
  exports.PLUGIN_PRIORITY = _trimRows.PLUGIN_PRIORITY;
94154
94080
  exports.TrimRows = _trimRows.TrimRows;
94155
94081
 
94156
94082
  /***/ }),
94157
- /* 747 */
94083
+ /* 746 */
94158
94084
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
94159
94085
 
94160
94086
  "use strict";
@@ -94486,20 +94412,20 @@ function _onMapInit() {
94486
94412
  }
94487
94413
 
94488
94414
  /***/ }),
94489
- /* 748 */
94415
+ /* 747 */
94490
94416
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
94491
94417
 
94492
94418
  "use strict";
94493
94419
 
94494
94420
 
94495
94421
  exports.__esModule = true;
94496
- var _undoRedo = __webpack_require__(749);
94422
+ var _undoRedo = __webpack_require__(748);
94497
94423
  exports.PLUGIN_KEY = _undoRedo.PLUGIN_KEY;
94498
94424
  exports.PLUGIN_PRIORITY = _undoRedo.PLUGIN_PRIORITY;
94499
94425
  exports.UndoRedo = _undoRedo.UndoRedo;
94500
94426
 
94501
94427
  /***/ }),
94502
- /* 749 */
94428
+ /* 748 */
94503
94429
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
94504
94430
 
94505
94431
  "use strict";
@@ -94522,7 +94448,7 @@ var _hooks = __webpack_require__(177);
94522
94448
  var _object = __webpack_require__(165);
94523
94449
  var _templateLiteralTag = __webpack_require__(160);
94524
94450
  var _console = __webpack_require__(178);
94525
- var _actions = __webpack_require__(750);
94451
+ var _actions = __webpack_require__(749);
94526
94452
  function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
94527
94453
  function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
94528
94454
  function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); }
@@ -94892,7 +94818,7 @@ function _removeAPIFromCore() {
94892
94818
  }
94893
94819
 
94894
94820
  /***/ }),
94895
- /* 750 */
94821
+ /* 749 */
94896
94822
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
94897
94823
 
94898
94824
  "use strict";
@@ -94902,18 +94828,18 @@ exports.__esModule = true;
94902
94828
  exports.registerActions = registerActions;
94903
94829
  __webpack_require__(115);
94904
94830
  __webpack_require__(133);
94905
- var _cellAlignment = __webpack_require__(751);
94906
- var _columnMove = __webpack_require__(753);
94907
- var _columnSort = __webpack_require__(754);
94908
- var _createColumn = __webpack_require__(755);
94909
- var _createRow = __webpack_require__(756);
94910
- var _dataChange = __webpack_require__(757);
94911
- var _filters = __webpack_require__(758);
94912
- var _mergeCells = __webpack_require__(759);
94913
- var _removeColumn = __webpack_require__(760);
94914
- var _removeRow = __webpack_require__(763);
94915
- var _rowMove = __webpack_require__(764);
94916
- var _unmergeCells = __webpack_require__(765);
94831
+ var _cellAlignment = __webpack_require__(750);
94832
+ var _columnMove = __webpack_require__(752);
94833
+ var _columnSort = __webpack_require__(753);
94834
+ var _createColumn = __webpack_require__(754);
94835
+ var _createRow = __webpack_require__(755);
94836
+ var _dataChange = __webpack_require__(756);
94837
+ var _filters = __webpack_require__(757);
94838
+ var _mergeCells = __webpack_require__(758);
94839
+ var _removeColumn = __webpack_require__(759);
94840
+ var _removeRow = __webpack_require__(762);
94841
+ var _rowMove = __webpack_require__(763);
94842
+ var _unmergeCells = __webpack_require__(764);
94917
94843
  /**
94918
94844
  * Register all undo/redo actions.
94919
94845
  *
@@ -94925,7 +94851,7 @@ function registerActions(hot, undoRedoPlugin) {
94925
94851
  }
94926
94852
 
94927
94853
  /***/ }),
94928
- /* 751 */
94854
+ /* 750 */
94929
94855
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
94930
94856
 
94931
94857
  "use strict";
@@ -94934,7 +94860,7 @@ function registerActions(hot, undoRedoPlugin) {
94934
94860
  var _interopRequireDefault = __webpack_require__(1);
94935
94861
  exports.__esModule = true;
94936
94862
  var _defineProperty2 = _interopRequireDefault(__webpack_require__(170));
94937
- var _base = __webpack_require__(752);
94863
+ var _base = __webpack_require__(751);
94938
94864
  var _utils = __webpack_require__(547);
94939
94865
  var _array = __webpack_require__(161);
94940
94866
  /**
@@ -95014,7 +94940,7 @@ class CellAlignmentAction extends _base.BaseAction {
95014
94940
  exports.CellAlignmentAction = CellAlignmentAction;
95015
94941
 
95016
94942
  /***/ }),
95017
- /* 752 */
94943
+ /* 751 */
95018
94944
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
95019
94945
 
95020
94946
  "use strict";
@@ -95048,7 +94974,7 @@ class BaseAction {
95048
94974
  exports.BaseAction = BaseAction;
95049
94975
 
95050
94976
  /***/ }),
95051
- /* 753 */
94977
+ /* 752 */
95052
94978
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
95053
94979
 
95054
94980
  "use strict";
@@ -95059,7 +94985,7 @@ exports.__esModule = true;
95059
94985
  __webpack_require__(115);
95060
94986
  __webpack_require__(133);
95061
94987
  var _defineProperty2 = _interopRequireDefault(__webpack_require__(170));
95062
- var _base = __webpack_require__(752);
94988
+ var _base = __webpack_require__(751);
95063
94989
  var _moves = __webpack_require__(661);
95064
94990
  /**
95065
94991
  * Action that tracks column move changes.
@@ -95136,7 +95062,7 @@ class ColumnMoveAction extends _base.BaseAction {
95136
95062
  exports.ColumnMoveAction = ColumnMoveAction;
95137
95063
 
95138
95064
  /***/ }),
95139
- /* 754 */
95065
+ /* 753 */
95140
95066
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
95141
95067
 
95142
95068
  "use strict";
@@ -95145,7 +95071,7 @@ exports.ColumnMoveAction = ColumnMoveAction;
95145
95071
  var _interopRequireDefault = __webpack_require__(1);
95146
95072
  exports.__esModule = true;
95147
95073
  var _defineProperty2 = _interopRequireDefault(__webpack_require__(170));
95148
- var _base = __webpack_require__(752);
95074
+ var _base = __webpack_require__(751);
95149
95075
  /**
95150
95076
  * Action that tracks column sort changes.
95151
95077
  *
@@ -95213,7 +95139,7 @@ class ColumnSortAction extends _base.BaseAction {
95213
95139
  exports.ColumnSortAction = ColumnSortAction;
95214
95140
 
95215
95141
  /***/ }),
95216
- /* 755 */
95142
+ /* 754 */
95217
95143
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
95218
95144
 
95219
95145
  "use strict";
@@ -95222,7 +95148,7 @@ exports.ColumnSortAction = ColumnSortAction;
95222
95148
  var _interopRequireDefault = __webpack_require__(1);
95223
95149
  exports.__esModule = true;
95224
95150
  var _defineProperty2 = _interopRequireDefault(__webpack_require__(170));
95225
- var _base = __webpack_require__(752);
95151
+ var _base = __webpack_require__(751);
95226
95152
  /**
95227
95153
  * Action that tracks column creation.
95228
95154
  *
@@ -95277,7 +95203,7 @@ class CreateColumnAction extends _base.BaseAction {
95277
95203
  exports.CreateColumnAction = CreateColumnAction;
95278
95204
 
95279
95205
  /***/ }),
95280
- /* 756 */
95206
+ /* 755 */
95281
95207
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
95282
95208
 
95283
95209
  "use strict";
@@ -95286,7 +95212,7 @@ exports.CreateColumnAction = CreateColumnAction;
95286
95212
  var _interopRequireDefault = __webpack_require__(1);
95287
95213
  exports.__esModule = true;
95288
95214
  var _defineProperty2 = _interopRequireDefault(__webpack_require__(170));
95289
- var _base = __webpack_require__(752);
95215
+ var _base = __webpack_require__(751);
95290
95216
  /**
95291
95217
  * Action that tracks row creation.
95292
95218
  *
@@ -95346,7 +95272,7 @@ class CreateRowAction extends _base.BaseAction {
95346
95272
  exports.CreateRowAction = CreateRowAction;
95347
95273
 
95348
95274
  /***/ }),
95349
- /* 757 */
95275
+ /* 756 */
95350
95276
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
95351
95277
 
95352
95278
  "use strict";
@@ -95360,7 +95286,7 @@ __webpack_require__(185);
95360
95286
  __webpack_require__(133);
95361
95287
  __webpack_require__(196);
95362
95288
  var _defineProperty2 = _interopRequireDefault(__webpack_require__(170));
95363
- var _base = __webpack_require__(752);
95289
+ var _base = __webpack_require__(751);
95364
95290
  var _object = __webpack_require__(165);
95365
95291
  /**
95366
95292
  * Action that tracks data changes.
@@ -95473,7 +95399,7 @@ class DataChangeAction extends _base.BaseAction {
95473
95399
  exports.DataChangeAction = DataChangeAction;
95474
95400
 
95475
95401
  /***/ }),
95476
- /* 758 */
95402
+ /* 757 */
95477
95403
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
95478
95404
 
95479
95405
  "use strict";
@@ -95484,7 +95410,7 @@ exports.__esModule = true;
95484
95410
  __webpack_require__(115);
95485
95411
  __webpack_require__(127);
95486
95412
  var _defineProperty2 = _interopRequireDefault(__webpack_require__(170));
95487
- var _base = __webpack_require__(752);
95413
+ var _base = __webpack_require__(751);
95488
95414
  /**
95489
95415
  * Action that tracks filter changes.
95490
95416
  *
@@ -95543,7 +95469,7 @@ class FiltersAction extends _base.BaseAction {
95543
95469
  exports.FiltersAction = FiltersAction;
95544
95470
 
95545
95471
  /***/ }),
95546
- /* 759 */
95472
+ /* 758 */
95547
95473
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
95548
95474
 
95549
95475
  "use strict";
@@ -95552,7 +95478,7 @@ exports.FiltersAction = FiltersAction;
95552
95478
  var _interopRequireDefault = __webpack_require__(1);
95553
95479
  exports.__esModule = true;
95554
95480
  var _defineProperty2 = _interopRequireDefault(__webpack_require__(170));
95555
- var _base = __webpack_require__(752);
95481
+ var _base = __webpack_require__(751);
95556
95482
  /**
95557
95483
  * Action that tracks changes in merged cells.
95558
95484
  *
@@ -95613,7 +95539,7 @@ class MergeCellsAction extends _base.BaseAction {
95613
95539
  exports.MergeCellsAction = MergeCellsAction;
95614
95540
 
95615
95541
  /***/ }),
95616
- /* 760 */
95542
+ /* 759 */
95617
95543
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
95618
95544
 
95619
95545
  "use strict";
@@ -95625,8 +95551,8 @@ __webpack_require__(87);
95625
95551
  __webpack_require__(115);
95626
95552
  __webpack_require__(133);
95627
95553
  var _defineProperty2 = _interopRequireDefault(__webpack_require__(170));
95628
- var _base = __webpack_require__(752);
95629
- var _utils = __webpack_require__(761);
95554
+ var _base = __webpack_require__(751);
95555
+ var _utils = __webpack_require__(760);
95630
95556
  var _number = __webpack_require__(200);
95631
95557
  var _array = __webpack_require__(161);
95632
95558
  /**
@@ -95654,7 +95580,7 @@ class RemoveColumnAction extends _base.BaseAction {
95654
95580
  */
95655
95581
  (0, _defineProperty2.default)(this, "index", void 0);
95656
95582
  /**
95657
- * @param {number[]} indexes The physical column indexes.
95583
+ * @param {number[]} indexes The visual column indexes.
95658
95584
  */
95659
95585
  (0, _defineProperty2.default)(this, "indexes", void 0);
95660
95586
  /**
@@ -95720,14 +95646,16 @@ class RemoveColumnAction extends _base.BaseAction {
95720
95646
  headers.push(hot.getSettings().colHeaders[hot.toPhysicalColumn(columnIndex + i)] || null);
95721
95647
  });
95722
95648
  }
95649
+ const columnsMap = hot.columnIndexMapper.getIndexesSequence();
95650
+ const rowsMap = hot.rowIndexMapper.getIndexesSequence();
95723
95651
  return new RemoveColumnAction({
95724
95652
  index: columnIndex,
95725
95653
  indexes,
95726
95654
  data: removedData,
95727
95655
  amount,
95728
95656
  headers,
95729
- columnPositions: hot.columnIndexMapper.getIndexesSequence(),
95730
- rowPositions: hot.rowIndexMapper.getIndexesSequence(),
95657
+ columnPositions: columnsMap,
95658
+ rowPositions: rowsMap,
95731
95659
  fixedColumnsStart: hot.getSettings().fixedColumnsStart,
95732
95660
  removedCellMetas: (0, _utils.getCellMetas)(hot, 0, hot.countRows(), columnIndex, lastColumnIndex)
95733
95661
  });
@@ -95754,27 +95682,14 @@ class RemoveColumnAction extends _base.BaseAction {
95754
95682
  }
95755
95683
  const sortedHeaders = (0, _array.arrayMap)(this.headers, sortByIndexes);
95756
95684
  const changes = [];
95757
-
95758
- // The indexes sequence have to be applied twice.
95759
- // * First for proper index translation. The alter method accepts a visual index
95760
- // and we are able to retrieve the correct index indicating where to add a new row based
95761
- // only on the previous order state of the columns;
95762
- // * The alter method shifts the indexes (a side-effect), so we need to reapply the indexes sequence
95763
- // the same as it was in the previous state;
95764
- hot.columnIndexMapper.setIndexesSequence(this.columnPositions);
95765
- hot.alter('insert_col_start', hot.toVisualColumn(this.indexes[0]), this.indexes.length, 'UndoRedo.undo');
95766
- hot.batchExecution(() => {
95767
- // Restore row sequence in a case when all columns are removed. the original
95768
- // row sequence is lost in that case.
95769
- hot.rowIndexMapper.setIndexesSequence(this.rowPositions);
95770
- hot.columnIndexMapper.setIndexesSequence(this.columnPositions);
95771
- }, true);
95685
+ hot.alter('insert_col_start', this.indexes[0], this.indexes.length, 'UndoRedo.undo');
95772
95686
  (0, _array.arrayEach)(hot.getSourceDataArray(), (rowData, rowIndex) => {
95773
95687
  (0, _array.arrayEach)(ascendingIndexes, (changedIndex, contiquesIndex) => {
95774
95688
  rowData[changedIndex] = sortedData[rowIndex][contiquesIndex];
95775
95689
  changes.push([rowIndex, changedIndex, rowData[changedIndex]]);
95776
95690
  });
95777
95691
  });
95692
+ hot.setSourceDataAtCell(changes, undefined, undefined, 'UndoRedo.undo');
95778
95693
  if (typeof this.headers !== 'undefined') {
95779
95694
  (0, _array.arrayEach)(sortedHeaders, (headerData, columnIndex) => {
95780
95695
  hot.getSettings().colHeaders[ascendingIndexes[columnIndex]] = headerData;
@@ -95784,8 +95699,14 @@ class RemoveColumnAction extends _base.BaseAction {
95784
95699
  let [rowIndex, columnIndex, cellMeta] = _ref2;
95785
95700
  hot.setCellMetaObject(rowIndex, columnIndex, cellMeta);
95786
95701
  });
95702
+ hot.batchExecution(() => {
95703
+ // Restore row sequence in a case when all columns are removed. the original
95704
+ // row sequence is lost in that case.
95705
+ hot.rowIndexMapper.setIndexesSequence(this.rowPositions);
95706
+ hot.columnIndexMapper.setIndexesSequence(this.columnPositions);
95707
+ }, true);
95787
95708
  hot.addHookOnce('afterViewRender', undoneCallback);
95788
- hot.setSourceDataAtCell(changes, null, null, 'UndoRedo.undo');
95709
+ hot.render();
95789
95710
  }
95790
95711
 
95791
95712
  /**
@@ -95800,7 +95721,7 @@ class RemoveColumnAction extends _base.BaseAction {
95800
95721
  exports.RemoveColumnAction = RemoveColumnAction;
95801
95722
 
95802
95723
  /***/ }),
95803
- /* 761 */
95724
+ /* 760 */
95804
95725
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
95805
95726
 
95806
95727
  "use strict";
@@ -95809,7 +95730,7 @@ exports.RemoveColumnAction = RemoveColumnAction;
95809
95730
  exports.__esModule = true;
95810
95731
  exports.getCellMetas = getCellMetas;
95811
95732
  __webpack_require__(87);
95812
- __webpack_require__(762);
95733
+ __webpack_require__(761);
95813
95734
  __webpack_require__(115);
95814
95735
  __webpack_require__(127);
95815
95736
  var _number = __webpack_require__(200);
@@ -95843,7 +95764,7 @@ function getCellMetas(hot, fromRow, toRow, fromColumn, toColumn) {
95843
95764
  }
95844
95765
 
95845
95766
  /***/ }),
95846
- /* 762 */
95767
+ /* 761 */
95847
95768
  /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
95848
95769
 
95849
95770
  "use strict";
@@ -95866,7 +95787,7 @@ $({ target: 'Object', stat: true }, {
95866
95787
 
95867
95788
 
95868
95789
  /***/ }),
95869
- /* 763 */
95790
+ /* 762 */
95870
95791
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
95871
95792
 
95872
95793
  "use strict";
@@ -95878,8 +95799,8 @@ __webpack_require__(87);
95878
95799
  __webpack_require__(115);
95879
95800
  __webpack_require__(133);
95880
95801
  var _defineProperty2 = _interopRequireDefault(__webpack_require__(170));
95881
- var _base = __webpack_require__(752);
95882
- var _utils = __webpack_require__(761);
95802
+ var _base = __webpack_require__(751);
95803
+ var _utils = __webpack_require__(760);
95883
95804
  var _object = __webpack_require__(165);
95884
95805
  /**
95885
95806
  * Action that tracks changes in row removal.
@@ -95899,7 +95820,7 @@ class RemoveRowAction extends _base.BaseAction {
95899
95820
  } = _ref;
95900
95821
  super('remove_row');
95901
95822
  /**
95902
- * @param {number} index The physical row index.
95823
+ * @param {number} index The visual row index.
95903
95824
  */
95904
95825
  (0, _defineProperty2.default)(this, "index", void 0);
95905
95826
  /**
@@ -95967,22 +95888,14 @@ class RemoveRowAction extends _base.BaseAction {
95967
95888
  changes.push([this.index + rowIndexDelta, isNaN(columnIndex) ? columnProp : columnIndex, dataRow[columnProp]]);
95968
95889
  });
95969
95890
  });
95970
-
95971
- // The indexes sequence have to be applied twice.
95972
- // * First for proper index translation. The alter method accepts a visual index
95973
- // and we are able to retrieve the correct index indicating where to add a new row based
95974
- // only on the previous order state of the rows;
95975
- // * The alter method shifts the indexes (a side-effect), so we need to reapply the indexes sequence
95976
- // the same as it was in the previous state;
95977
- hot.rowIndexMapper.setIndexesSequence(this.rowIndexesSequence);
95978
- hot.alter('insert_row_above', hot.toVisualRow(this.index), this.data.length, 'UndoRedo.undo');
95979
- hot.rowIndexMapper.setIndexesSequence(this.rowIndexesSequence);
95891
+ hot.alter('insert_row_above', this.index, this.data.length, 'UndoRedo.undo');
95980
95892
  this.removedCellMetas.forEach(_ref2 => {
95981
95893
  let [rowIndex, columnIndex, cellMeta] = _ref2;
95982
95894
  hot.setCellMetaObject(rowIndex, columnIndex, cellMeta);
95983
95895
  });
95984
95896
  hot.addHookOnce('afterViewRender', undoneCallback);
95985
95897
  hot.setSourceDataAtCell(changes, null, null, 'UndoRedo.undo');
95898
+ hot.rowIndexMapper.setIndexesSequence(this.rowIndexesSequence);
95986
95899
  }
95987
95900
 
95988
95901
  /**
@@ -95991,13 +95904,13 @@ class RemoveRowAction extends _base.BaseAction {
95991
95904
  */
95992
95905
  redo(hot, redoneCallback) {
95993
95906
  hot.addHookOnce('afterRemoveRow', redoneCallback);
95994
- hot.alter('remove_row', hot.toVisualRow(this.index), this.data.length, 'UndoRedo.redo');
95907
+ hot.alter('remove_row', this.index, this.data.length, 'UndoRedo.redo');
95995
95908
  }
95996
95909
  }
95997
95910
  exports.RemoveRowAction = RemoveRowAction;
95998
95911
 
95999
95912
  /***/ }),
96000
- /* 764 */
95913
+ /* 763 */
96001
95914
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
96002
95915
 
96003
95916
  "use strict";
@@ -96008,7 +95921,7 @@ exports.__esModule = true;
96008
95921
  __webpack_require__(115);
96009
95922
  __webpack_require__(133);
96010
95923
  var _defineProperty2 = _interopRequireDefault(__webpack_require__(170));
96011
- var _base = __webpack_require__(752);
95924
+ var _base = __webpack_require__(751);
96012
95925
  var _moves = __webpack_require__(661);
96013
95926
  /**
96014
95927
  * Action that tracks row move changes.
@@ -96085,7 +95998,7 @@ class RowMoveAction extends _base.BaseAction {
96085
95998
  exports.RowMoveAction = RowMoveAction;
96086
95999
 
96087
96000
  /***/ }),
96088
- /* 765 */
96001
+ /* 764 */
96089
96002
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
96090
96003
 
96091
96004
  "use strict";
@@ -96094,7 +96007,7 @@ exports.RowMoveAction = RowMoveAction;
96094
96007
  var _interopRequireDefault = __webpack_require__(1);
96095
96008
  exports.__esModule = true;
96096
96009
  var _defineProperty2 = _interopRequireDefault(__webpack_require__(170));
96097
- var _base = __webpack_require__(752);
96010
+ var _base = __webpack_require__(751);
96098
96011
  /**
96099
96012
  * Action that tracks changes in merged cells.
96100
96013
  *
@@ -96148,7 +96061,7 @@ class UnmergeCellsAction extends _base.BaseAction {
96148
96061
  exports.UnmergeCellsAction = UnmergeCellsAction;
96149
96062
 
96150
96063
  /***/ }),
96151
- /* 766 */
96064
+ /* 765 */
96152
96065
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
96153
96066
 
96154
96067
  "use strict";
@@ -96257,7 +96170,7 @@ exports.CellRange = _base.CellRange;
96257
96170
  var _registry = __webpack_require__(430);
96258
96171
  var _eventManager = _interopRequireWildcard(__webpack_require__(188));
96259
96172
  var _translations = __webpack_require__(291);
96260
- var _jquery = _interopRequireDefault(__webpack_require__(766));
96173
+ var _jquery = _interopRequireDefault(__webpack_require__(765));
96261
96174
  var _ghostTable = _interopRequireDefault(__webpack_require__(509));
96262
96175
  var parseTableHelpers = _interopRequireWildcard(__webpack_require__(190));
96263
96176
  var arrayHelpers = _interopRequireWildcard(__webpack_require__(161));