handsontable 15.1.0-next-7652ed7-20250219 → 15.2.0-next-8670a33-20250312

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.
Files changed (161) hide show
  1. package/3rdparty/walkontable/src/selection/border/border.js +16 -3
  2. package/3rdparty/walkontable/src/selection/border/border.mjs +17 -4
  3. package/3rdparty/walkontable/src/selection/scanner.js +1 -1
  4. package/3rdparty/walkontable/src/selection/scanner.mjs +2 -2
  5. package/3rdparty/walkontable/src/table.js +3 -2
  6. package/3rdparty/walkontable/src/table.mjs +4 -3
  7. package/3rdparty/walkontable/src/utils/orderView/viewDiffer/viewOrder.js +1 -0
  8. package/3rdparty/walkontable/src/utils/orderView/viewDiffer/viewOrder.mjs +1 -0
  9. package/3rdparty/walkontable/src/viewport.js +30 -3
  10. package/3rdparty/walkontable/src/viewport.mjs +30 -3
  11. package/CHANGELOG.md +40 -0
  12. package/base.js +2 -2
  13. package/base.mjs +2 -2
  14. package/core.js +2 -37
  15. package/core.mjs +2 -37
  16. package/dataMap/dataMap.js +4 -12
  17. package/dataMap/dataMap.mjs +4 -12
  18. package/dataMap/dataSource.js +2 -2
  19. package/dataMap/dataSource.mjs +2 -2
  20. package/dataMap/metaManager/metaSchema.js +2 -2
  21. package/dataMap/metaManager/metaSchema.mjs +2 -2
  22. package/dist/handsontable.css +2 -2
  23. package/dist/handsontable.full.css +2 -2
  24. package/dist/handsontable.full.js +494 -400
  25. package/dist/handsontable.full.min.css +2 -2
  26. package/dist/handsontable.full.min.js +73 -73
  27. package/dist/handsontable.js +494 -400
  28. package/dist/handsontable.min.css +2 -2
  29. package/dist/handsontable.min.js +43 -43
  30. package/dist/languages/all.js +139 -28
  31. package/dist/languages/all.min.js +1 -1
  32. package/dist/languages/fa-IR.js +167 -0
  33. package/dist/languages/fa-IR.min.js +1 -0
  34. package/dist/languages/it-IT.js +3 -0
  35. package/dist/languages/it-IT.min.js +1 -1
  36. package/dist/languages/sr-SP.js +3 -0
  37. package/dist/languages/sr-SP.min.js +1 -1
  38. package/editors/autocompleteEditor/autocompleteEditor.js +25 -20
  39. package/editors/autocompleteEditor/autocompleteEditor.mjs +25 -20
  40. package/editors/dateEditor/dateEditor.d.ts +0 -2
  41. package/editors/dateEditor/dateEditor.js +18 -7
  42. package/editors/dateEditor/dateEditor.mjs +17 -6
  43. package/focusManager.js +5 -3
  44. package/focusManager.mjs +6 -4
  45. package/helpers/dom/element.d.ts +1 -0
  46. package/helpers/dom/element.js +21 -2
  47. package/helpers/dom/element.mjs +20 -2
  48. package/helpers/dom/event.js +2 -1
  49. package/helpers/dom/event.mjs +2 -1
  50. package/helpers/mixed.js +2 -2
  51. package/helpers/mixed.mjs +2 -2
  52. package/helpers/number.js +1 -0
  53. package/helpers/number.mjs +1 -0
  54. package/i18n/languages/fa-IR.d.ts +5 -0
  55. package/i18n/languages/fa-IR.js +96 -0
  56. package/i18n/languages/fa-IR.mjs +90 -0
  57. package/i18n/languages/index.d.ts +2 -0
  58. package/i18n/languages/index.js +2 -0
  59. package/i18n/languages/index.mjs +2 -1
  60. package/i18n/languages/it-IT.js +3 -0
  61. package/i18n/languages/it-IT.mjs +3 -0
  62. package/i18n/languages/sr-SP.js +3 -0
  63. package/i18n/languages/sr-SP.mjs +3 -0
  64. package/i18n/phraseFormatters/substituteVariables.js +1 -0
  65. package/i18n/phraseFormatters/substituteVariables.mjs +1 -0
  66. package/languages/all.js +139 -28
  67. package/languages/fa-IR.js +167 -0
  68. package/languages/fa-IR.mjs +92 -0
  69. package/languages/index.js +139 -28
  70. package/languages/index.mjs +2 -1
  71. package/languages/it-IT.js +3 -0
  72. package/languages/it-IT.mjs +3 -0
  73. package/languages/sr-SP.js +3 -0
  74. package/languages/sr-SP.mjs +3 -0
  75. package/package.json +13 -2
  76. package/plugins/columnSorting/columnSorting.js +17 -1
  77. package/plugins/columnSorting/columnSorting.mjs +18 -2
  78. package/plugins/columnSorting/columnStatesManager.js +1 -0
  79. package/plugins/columnSorting/columnStatesManager.mjs +1 -0
  80. package/plugins/columnSorting/utils.js +14 -0
  81. package/plugins/columnSorting/utils.mjs +13 -0
  82. package/plugins/comments/comments.js +5 -2
  83. package/plugins/comments/comments.mjs +6 -3
  84. package/plugins/contextMenu/menu/menu.js +9 -3
  85. package/plugins/contextMenu/menu/menu.mjs +9 -3
  86. package/plugins/contextMenu/predefinedItems/columnLeft.js +3 -8
  87. package/plugins/contextMenu/predefinedItems/columnLeft.mjs +3 -8
  88. package/plugins/contextMenu/predefinedItems/columnRight.js +2 -9
  89. package/plugins/contextMenu/predefinedItems/columnRight.mjs +2 -9
  90. package/plugins/contextMenu/predefinedItems/rowAbove.js +3 -8
  91. package/plugins/contextMenu/predefinedItems/rowAbove.mjs +3 -8
  92. package/plugins/contextMenu/predefinedItems/rowBelow.js +2 -9
  93. package/plugins/contextMenu/predefinedItems/rowBelow.mjs +2 -9
  94. package/plugins/copyPaste/copyPaste.js +3 -3
  95. package/plugins/copyPaste/copyPaste.mjs +4 -4
  96. package/plugins/exportFile/types/csv.js +1 -0
  97. package/plugins/exportFile/types/csv.mjs +1 -0
  98. package/plugins/filters/conditionCollection.js +0 -26
  99. package/plugins/filters/conditionCollection.mjs +0 -26
  100. package/plugins/filters/filters.d.ts +2 -0
  101. package/plugins/filters/filters.js +77 -8
  102. package/plugins/filters/filters.mjs +77 -8
  103. package/plugins/mergeCells/mergeCells.js +9 -6
  104. package/plugins/mergeCells/mergeCells.mjs +9 -6
  105. package/plugins/multiColumnSorting/multiColumnSorting.js +1 -21
  106. package/plugins/multiColumnSorting/multiColumnSorting.mjs +1 -21
  107. package/plugins/nestedHeaders/nestedHeaders.js +5 -3
  108. package/plugins/nestedHeaders/nestedHeaders.mjs +5 -3
  109. package/plugins/nestedHeaders/stateManager/index.js +1 -0
  110. package/plugins/nestedHeaders/stateManager/index.mjs +1 -0
  111. package/plugins/undoRedo/actions/_base.js +10 -0
  112. package/plugins/undoRedo/actions/_base.mjs +10 -0
  113. package/plugins/undoRedo/actions/cellAlignment.js +1 -1
  114. package/plugins/undoRedo/actions/cellAlignment.mjs +1 -1
  115. package/plugins/undoRedo/actions/columnMove.js +1 -1
  116. package/plugins/undoRedo/actions/columnMove.mjs +1 -1
  117. package/plugins/undoRedo/actions/columnSort.js +1 -1
  118. package/plugins/undoRedo/actions/columnSort.mjs +1 -1
  119. package/plugins/undoRedo/actions/createColumn.js +1 -1
  120. package/plugins/undoRedo/actions/createColumn.mjs +1 -1
  121. package/plugins/undoRedo/actions/createRow.js +1 -1
  122. package/plugins/undoRedo/actions/createRow.mjs +1 -1
  123. package/plugins/undoRedo/actions/dataChange.js +1 -1
  124. package/plugins/undoRedo/actions/dataChange.mjs +1 -1
  125. package/plugins/undoRedo/actions/filters.js +3 -3
  126. package/plugins/undoRedo/actions/filters.mjs +3 -3
  127. package/plugins/undoRedo/actions/mergeCells.js +4 -1
  128. package/plugins/undoRedo/actions/mergeCells.mjs +4 -1
  129. package/plugins/undoRedo/actions/removeColumn.js +4 -2
  130. package/plugins/undoRedo/actions/removeColumn.mjs +4 -2
  131. package/plugins/undoRedo/actions/removeRow.js +1 -1
  132. package/plugins/undoRedo/actions/removeRow.mjs +1 -1
  133. package/plugins/undoRedo/actions/rowMove.js +1 -1
  134. package/plugins/undoRedo/actions/rowMove.mjs +1 -1
  135. package/plugins/undoRedo/actions/unmergeCells.js +4 -1
  136. package/plugins/undoRedo/actions/unmergeCells.mjs +4 -1
  137. package/plugins/undoRedo/undoRedo.d.ts +48 -17
  138. package/renderers/checkboxRenderer/checkboxRenderer.js +1 -1
  139. package/renderers/checkboxRenderer/checkboxRenderer.mjs +2 -2
  140. package/renderers/numericRenderer/numericRenderer.js +10 -2
  141. package/renderers/numericRenderer/numericRenderer.mjs +10 -2
  142. package/renderers/textRenderer/textRenderer.js +3 -12
  143. package/renderers/textRenderer/textRenderer.mjs +4 -13
  144. package/shortcuts/utils.js +1 -0
  145. package/shortcuts/utils.mjs +1 -0
  146. package/styles/handsontable.css +83 -99
  147. package/styles/handsontable.min.css +3 -3
  148. package/styles/ht-theme-horizon.css +14 -2
  149. package/styles/ht-theme-horizon.min.css +3 -3
  150. package/styles/ht-theme-main.css +14 -2
  151. package/styles/ht-theme-main.min.css +3 -3
  152. package/tableView.js +9 -0
  153. package/tableView.mjs +9 -0
  154. package/translations/maps/linkedPhysicalIndexToValueMap.js +1 -0
  155. package/translations/maps/linkedPhysicalIndexToValueMap.mjs +1 -0
  156. package/translations/maps/utils/physicallyIndexed.js +1 -0
  157. package/translations/maps/utils/physicallyIndexed.mjs +1 -0
  158. package/utils/dataStructures/priorityMap.js +1 -0
  159. package/utils/dataStructures/priorityMap.mjs +1 -0
  160. package/plugins/multiColumnSorting/utils.js +0 -13
  161. package/plugins/multiColumnSorting/utils.mjs +0 -9
@@ -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: 15.1.0-next-7652ed7-20250219
29
- * Release date: 20/02/2025 (built at 19/02/2025 10:42:22)
28
+ * Version: 15.2.0-next-8670a33-20250312
29
+ * Release date: 19/03/2025 (built at 12/03/2025 10:12:02)
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 = "19/02/2025 10:42:22";
108
- Handsontable.version = "15.1.0-next-7652ed7-20250219";
107
+ Handsontable.buildDate = "12/03/2025 10:12:02";
108
+ Handsontable.version = "15.2.0-next-8670a33-20250312";
109
109
  Handsontable.languages = {
110
110
  dictionaryKeys: _registry.dictionaryKeys,
111
111
  getLanguageDictionary: _registry.getLanguageDictionary,
@@ -3687,6 +3687,7 @@ function Core(rootElement, userSettings) {
3687
3687
  * @returns {number}
3688
3688
  */
3689
3689
  this._getRowHeightFromSettings = function (row) {
3690
+ const defaultRowHeight = this.view.getDefaultRowHeight();
3690
3691
  let height = tableMeta.rowHeights;
3691
3692
  if (height !== undefined && height !== null) {
3692
3693
  switch (typeof height) {
@@ -3704,7 +3705,7 @@ function Core(rootElement, userSettings) {
3704
3705
  height = parseInt(height, 10);
3705
3706
  }
3706
3707
  }
3707
- return height;
3708
+ return height !== undefined && height !== null && height < defaultRowHeight ? defaultRowHeight : height;
3708
3709
  };
3709
3710
 
3710
3711
  /**
@@ -4819,42 +4820,6 @@ function Core(rootElement, userSettings) {
4819
4820
  this._getEditorManager = function () {
4820
4821
  return editorManager;
4821
4822
  };
4822
-
4823
- /**
4824
- * Check if currently it is RTL direction.
4825
- *
4826
- * @private
4827
- * @memberof Core#
4828
- * @function isRtl
4829
- * @returns {boolean} True if RTL.
4830
- */
4831
- this.isRtl = function () {
4832
- return instance.rootWindow.getComputedStyle(instance.rootElement).direction === 'rtl';
4833
- };
4834
-
4835
- /**
4836
- * Check if currently it is LTR direction.
4837
- *
4838
- * @private
4839
- * @memberof Core#
4840
- * @function isLtr
4841
- * @returns {boolean} True if LTR.
4842
- */
4843
- this.isLtr = function () {
4844
- return !instance.isRtl();
4845
- };
4846
-
4847
- /**
4848
- * Returns 1 for LTR; -1 for RTL. Useful for calculations.
4849
- *
4850
- * @private
4851
- * @memberof Core#
4852
- * @function getDirectionFactor
4853
- * @returns {number} Returns 1 for LTR; -1 for RTL.
4854
- */
4855
- this.getDirectionFactor = function () {
4856
- return instance.isLtr() ? 1 : -1;
4857
- };
4858
4823
  const shortcutManager = (0, _shortcuts.createShortcutManager)({
4859
4824
  handleEvent() {
4860
4825
  return instance.isListening();
@@ -5643,10 +5608,10 @@ var SHARED = '__core-js_shared__';
5643
5608
  var store = module.exports = globalThis[SHARED] || defineGlobalProperty(SHARED, {});
5644
5609
 
5645
5610
  (store.versions || (store.versions = [])).push({
5646
- version: '3.40.0',
5611
+ version: '3.41.0',
5647
5612
  mode: IS_PURE ? 'pure' : 'global',
5648
5613
  copyright: '© 2014-2025 Denis Pushkarev (zloirock.ru)',
5649
- license: 'https://github.com/zloirock/core-js/blob/v3.40.0/LICENSE',
5614
+ license: 'https://github.com/zloirock/core-js/blob/v3.41.0/LICENSE',
5650
5615
  source: 'https://github.com/zloirock/core-js'
5651
5616
  });
5652
5617
 
@@ -8698,6 +8663,7 @@ exports.innerHeight = innerHeight;
8698
8663
  exports.innerWidth = innerWidth;
8699
8664
  exports.isChildOf = isChildOf;
8700
8665
  exports.isDetached = isDetached;
8666
+ exports.isHTMLElement = isHTMLElement;
8701
8667
  exports.isInput = isInput;
8702
8668
  exports.isOutsideInput = isOutsideInput;
8703
8669
  exports.isThisHotChild = isThisHotChild;
@@ -9666,20 +9632,26 @@ function getScrollbarWidth() {
9666
9632
  /**
9667
9633
  * Checks if the provided element has a vertical scrollbar.
9668
9634
  *
9669
- * @param {HTMLElement} element An element to check.
9635
+ * @param {HTMLElement|Window} element An element to check.
9670
9636
  * @returns {boolean}
9671
9637
  */
9672
9638
  function hasVerticalScrollbar(element) {
9639
+ if (element instanceof Window) {
9640
+ return element.document.body.scrollHeight > element.innerHeight;
9641
+ }
9673
9642
  return element.offsetWidth !== element.clientWidth;
9674
9643
  }
9675
9644
 
9676
9645
  /**
9677
9646
  * Checks if the provided element has a vertical scrollbar.
9678
9647
  *
9679
- * @param {HTMLElement} element An element to check.
9648
+ * @param {HTMLElement|Window} element An element to check.
9680
9649
  * @returns {boolean}
9681
9650
  */
9682
9651
  function hasHorizontalScrollbar(element) {
9652
+ if (element instanceof Window) {
9653
+ return element.document.body.scrollWidth > element.innerWidth;
9654
+ }
9683
9655
  return element.offsetHeight !== element.clientHeight;
9684
9656
  }
9685
9657
 
@@ -9842,6 +9814,18 @@ function runWithSelectedContendEditableElement(element, callback) {
9842
9814
  removeContentEditableFromElementAndDeselect(element, invisibleSelection);
9843
9815
  }
9844
9816
 
9817
+ /**
9818
+ * Check if the element is HTMLElement.
9819
+ *
9820
+ * @param {*} element Element to check.
9821
+ * @returns {boolean} `true` if the element is HTMLElement.
9822
+ */
9823
+ function isHTMLElement(element) {
9824
+ var _element$ownerDocumen;
9825
+ const OwnElement = element === null || element === void 0 || (_element$ownerDocumen = element.ownerDocument) === null || _element$ownerDocumen === void 0 ? void 0 : _element$ownerDocumen.defaultView.Element;
9826
+ return !!(OwnElement && OwnElement !== null && element instanceof OwnElement);
9827
+ }
9828
+
9845
9829
  /***/ }),
9846
9830
  /* 156 */
9847
9831
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
@@ -10107,7 +10091,7 @@ const domMessages = {
10107
10091
  function _injectProductInfo(key, element) {
10108
10092
  const hasValidType = !isEmpty(key);
10109
10093
  const isNonCommercial = typeof key === 'string' && key.toLowerCase() === 'non-commercial-and-evaluation';
10110
- const hotVersion = "15.1.0-next-7652ed7-20250219";
10094
+ const hotVersion = "15.2.0-next-8670a33-20250312";
10111
10095
  let keyValidityDate;
10112
10096
  let consoleMessageState = 'invalid';
10113
10097
  let domMessageState = 'invalid';
@@ -10115,7 +10099,7 @@ function _injectProductInfo(key, element) {
10115
10099
  const schemaValidity = _checkKeySchema(key);
10116
10100
  if (hasValidType || isNonCommercial || schemaValidity) {
10117
10101
  if (schemaValidity) {
10118
- const releaseDate = (0, _moment.default)("20/02/2025", 'DD/MM/YYYY');
10102
+ const releaseDate = (0, _moment.default)("19/03/2025", 'DD/MM/YYYY');
10119
10103
  const releaseDays = Math.floor(releaseDate.toDate().getTime() / 8.64e7);
10120
10104
  const keyValidityDays = _extractTime(key);
10121
10105
  keyValidityDate = (0, _moment.default)((keyValidityDays + 1) * 8.64e7, 'x').format('MMMM DD, YYYY');
@@ -12288,7 +12272,7 @@ function isKey(keyCode, baseCode) {
12288
12272
 
12289
12273
  /***/ }),
12290
12274
  /* 175 */
12291
- /***/ ((__unused_webpack_module, exports) => {
12275
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
12292
12276
 
12293
12277
  "use strict";
12294
12278
 
@@ -12300,6 +12284,7 @@ exports.isRightClick = isRightClick;
12300
12284
  exports.isTouchEvent = isTouchEvent;
12301
12285
  exports.offsetRelativeTo = offsetRelativeTo;
12302
12286
  exports.stopImmediatePropagation = stopImmediatePropagation;
12287
+ var _element = __webpack_require__(155);
12303
12288
  /**
12304
12289
  * Prevent other listeners of the same event from being called.
12305
12290
  *
@@ -12363,7 +12348,7 @@ function offsetRelativeTo(event, untilElement) {
12363
12348
  y: event.offsetY
12364
12349
  };
12365
12350
  let element = event.target;
12366
- if (!(untilElement instanceof HTMLElement) || element !== untilElement && element.contains(untilElement)) {
12351
+ if (!(0, _element.isHTMLElement)(untilElement) || element !== untilElement && element.contains(untilElement)) {
12367
12352
  return offset;
12368
12353
  }
12369
12354
  while (element !== untilElement) {
@@ -16446,7 +16431,7 @@ class FocusManager {
16446
16431
  return;
16447
16432
  }
16448
16433
  let elementToBeFocused = _classPrivateFieldGet(_hot, this).runHooks('modifyFocusedElement', currentHighlightCoords.row, currentHighlightCoords.col, element);
16449
- if (!(elementToBeFocused instanceof HTMLElement)) {
16434
+ if (!(0, _element.isHTMLElement)(elementToBeFocused)) {
16450
16435
  elementToBeFocused = element;
16451
16436
  }
16452
16437
  if (elementToBeFocused && !((_classPrivateFieldGet4 = _classPrivateFieldGet(_hot, this).getActiveEditor()) !== null && _classPrivateFieldGet4 !== void 0 && _classPrivateFieldGet4.isOpened())) {
@@ -16473,6 +16458,8 @@ class FocusManager {
16473
16458
  let delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _classPrivateFieldGet(_refocusDelay, this);
16474
16459
  // Re-focus on the editor's `TEXTAREA` element (or a predefined element) if the `imeFastEdit` option is enabled.
16475
16460
  if (_classPrivateFieldGet(_hot, this).getSettings().imeFastEdit && !((_classPrivateFieldGet5 = _classPrivateFieldGet(_hot, this).getActiveEditor()) !== null && _classPrivateFieldGet5 !== void 0 && _classPrivateFieldGet5.isOpened())) {
16461
+ var _classPrivateFieldGet6, _classPrivateFieldGet7;
16462
+ (_classPrivateFieldGet6 = _classPrivateFieldGet(_hot, this).getActiveEditor()) === null || _classPrivateFieldGet6 === void 0 || (_classPrivateFieldGet7 = _classPrivateFieldGet6.refreshValue) === null || _classPrivateFieldGet7 === void 0 || _classPrivateFieldGet7.call(_classPrivateFieldGet6);
16476
16463
  if (!_classPrivateFieldGet(_debouncedSelect, this).has(delay)) {
16477
16464
  _classPrivateFieldGet(_debouncedSelect, this).set(delay, (0, _function.debounce)(() => {
16478
16465
  var _this$getRefocusEleme;
@@ -16485,8 +16472,8 @@ class FocusManager {
16485
16472
  }
16486
16473
  exports.FocusManager = FocusManager;
16487
16474
  function _getSelectedCell(callback) {
16488
- var _classPrivateFieldGet6;
16489
- const highlight = (_classPrivateFieldGet6 = _classPrivateFieldGet(_hot, this).getSelectedRangeLast()) === null || _classPrivateFieldGet6 === void 0 ? void 0 : _classPrivateFieldGet6.highlight;
16475
+ var _classPrivateFieldGet8;
16476
+ const highlight = (_classPrivateFieldGet8 = _classPrivateFieldGet(_hot, this).getSelectedRangeLast()) === null || _classPrivateFieldGet8 === void 0 ? void 0 : _classPrivateFieldGet8.highlight;
16490
16477
  if (!highlight || !_classPrivateFieldGet(_hot, this).selection.isCellVisible(highlight)) {
16491
16478
  callback(null);
16492
16479
  return;
@@ -17206,6 +17193,7 @@ function unifyPluginArguments(pluginName, pluginClass, priority) {
17206
17193
  exports.__esModule = true;
17207
17194
  exports.createPriorityMap = createPriorityMap;
17208
17195
  __webpack_require__(5);
17196
+ __webpack_require__(115);
17209
17197
  __webpack_require__(142);
17210
17198
  var _number = __webpack_require__(200);
17211
17199
  var _function = __webpack_require__(163);
@@ -17295,6 +17283,7 @@ __webpack_require__(107);
17295
17283
  __webpack_require__(109);
17296
17284
  __webpack_require__(111);
17297
17285
  __webpack_require__(113);
17286
+ __webpack_require__(115);
17298
17287
  __webpack_require__(142);
17299
17288
  /* eslint-disable jsdoc/require-description-complete-sentence */
17300
17289
  /**
@@ -19337,6 +19326,15 @@ class TableView {
19337
19326
  return this._wt.wtTable.getHeight();
19338
19327
  }
19339
19328
 
19329
+ /**
19330
+ * Gets the table's offset.
19331
+ *
19332
+ * @returns {{ left: number, top: number }}
19333
+ */
19334
+ getTableOffset() {
19335
+ return this._wt.wtViewport.getWorkspaceOffset();
19336
+ }
19337
+
19340
19338
  /**
19341
19339
  * Gets the row header width. If there are multiple row headers, the width of
19342
19340
  * the sum of all of them is returned.
@@ -23552,6 +23550,7 @@ class Table {
23552
23550
  holder = this.domBindings.rootDocument.createElement('div');
23553
23551
  holder.style.position = 'relative';
23554
23552
  holder.className = 'wtHolder';
23553
+ (0, _element.setAttribute)(holder, [(0, _a11y.A11Y_TABINDEX)(-1)]);
23555
23554
  if (parent) {
23556
23555
  // if TABLE is detached (e.g. in Jasmine test), it has no parentNode so we cannot attach holder to it
23557
23556
  parent.insertBefore(holder, hider);
@@ -23948,12 +23947,12 @@ class Table {
23948
23947
  row = totalRows - CONTAINER.childNodes.length + row;
23949
23948
  } else if (CONTAINER === this.THEAD) {
23950
23949
  row = this.rowFilter.visibleColHeadedRowToSourceRow(row);
23951
- } else {
23950
+ } else if (this.rowFilter) {
23952
23951
  row = this.rowFilter.renderedToSource(row);
23953
23952
  }
23954
23953
  if ((0, _element.overlayContainsElement)(_overlay.CLONE_TOP_INLINE_START_CORNER, cellElement, this.wtRootElement) || (0, _element.overlayContainsElement)(_overlay.CLONE_INLINE_START, cellElement, this.wtRootElement) || (0, _element.overlayContainsElement)(_overlay.CLONE_BOTTOM_INLINE_START_CORNER, cellElement, this.wtRootElement)) {
23955
23954
  col = this.columnFilter.offsettedTH(col);
23956
- } else {
23955
+ } else if (this.columnFilter) {
23957
23956
  col = this.columnFilter.visibleRowHeadedColumnToSourceColumn(col);
23958
23957
  }
23959
23958
  const hookResult = this.wtSettings.getSetting('onModifyGetCoordsElement', row, col);
@@ -25353,6 +25352,7 @@ exports.ViewDiffer = ViewDiffer;
25353
25352
  var _interopRequireDefault = __webpack_require__(1);
25354
25353
  exports.__esModule = true;
25355
25354
  __webpack_require__(242);
25355
+ __webpack_require__(115);
25356
25356
  __webpack_require__(142);
25357
25357
  var _defineProperty2 = _interopRequireDefault(__webpack_require__(170));
25358
25358
  /**
@@ -29871,7 +29871,7 @@ function _scanCellsRange(callback) {
29871
29871
  }
29872
29872
  } else {
29873
29873
  const cell = wtTable.getCell(_classPrivateFieldGet(_activeOverlaysWot, this).createCellCoords(topRow, startColumn));
29874
- if (!(cell instanceof HTMLElement)) {
29874
+ if (!(0, _element.isHTMLElement)(cell)) {
29875
29875
  return;
29876
29876
  }
29877
29877
  }
@@ -30098,8 +30098,14 @@ class Border {
30098
30098
  */
30099
30099
  createMultipleSelectorHandles() {
30100
30100
  const {
30101
- rootDocument
30101
+ rootDocument,
30102
+ stylesHandler
30102
30103
  } = this.wot;
30104
+ const cellMobileHandleSize = stylesHandler.getCSSVariableValue('cell-mobile-handle-size');
30105
+ const cellMobileHandleBorderRadius = stylesHandler.getCSSVariableValue('cell-mobile-handle-border-radius');
30106
+ const cellMobileHandleBackgroundColor = stylesHandler.getCSSVariableValue('cell-mobile-handle-background-color');
30107
+ const cellMobileHandleBorderWidth = stylesHandler.getCSSVariableValue('cell-mobile-handle-border-width');
30108
+ const cellMobileHandleBorderColor = stylesHandler.getCSSVariableValue('cell-mobile-handle-border-color');
30103
30109
  this.selectionHandles = {
30104
30110
  top: rootDocument.createElement('DIV'),
30105
30111
  topHitArea: rootDocument.createElement('DIV'),
@@ -30128,13 +30134,20 @@ class Border {
30128
30134
  this.selectionHandles.styles.bottomHitArea[key] = value;
30129
30135
  this.selectionHandles.styles.topHitArea[key] = value;
30130
30136
  });
30131
- const handleStyle = {
30137
+ const handleStyle = stylesHandler.isClassicTheme() ? {
30132
30138
  position: 'absolute',
30133
30139
  height: `${width}px`,
30134
30140
  width: `${width}px`,
30135
30141
  'border-radius': `${parseInt(width / 1.5, 10)}px`,
30136
30142
  background: '#F5F5FF',
30137
30143
  border: '1px solid #4285c8'
30144
+ } : {
30145
+ position: 'absolute',
30146
+ height: `${cellMobileHandleSize}px`,
30147
+ width: `${cellMobileHandleSize}px`,
30148
+ 'border-radius': `${cellMobileHandleBorderRadius}px`,
30149
+ background: `${cellMobileHandleBackgroundColor}`,
30150
+ border: `${cellMobileHandleBorderWidth}px solid ${cellMobileHandleBorderColor}`
30138
30151
  };
30139
30152
  (0, _object.objectEach)(handleStyle, (value, key) => {
30140
30153
  this.selectionHandles.styles.bottom[key] = value;
@@ -30259,7 +30272,7 @@ class Border {
30259
30272
  fromTD = wtTable.getCell(this.wot.createCellCoords(fromRow, fromColumn));
30260
30273
  } else {
30261
30274
  fromTD = wtTable.getCell(this.wot.createCellCoords(fromRow, fromColumn));
30262
- if (!(fromTD instanceof HTMLElement)) {
30275
+ if (!(0, _element.isHTMLElement)(fromTD)) {
30263
30276
  this.disappear();
30264
30277
  return;
30265
30278
  }
@@ -31672,6 +31685,7 @@ var _default = exports["default"] = MasterTable;
31672
31685
 
31673
31686
 
31674
31687
  exports.__esModule = true;
31688
+ __webpack_require__(115);
31675
31689
  __webpack_require__(142);
31676
31690
  var _element = __webpack_require__(155);
31677
31691
  var _object = __webpack_require__(165);
@@ -31794,7 +31808,20 @@ class Viewport {
31794
31808
  * @returns {boolean}
31795
31809
  */
31796
31810
  hasVerticalScroll() {
31797
- return this.wtTable.hider.offsetHeight > this.getWorkspaceHeight();
31811
+ if (this.isVerticallyScrollableByWindow()) {
31812
+ const documentElement = this.domBindings.rootDocument.documentElement;
31813
+ return documentElement.scrollHeight > documentElement.clientHeight;
31814
+ }
31815
+ const {
31816
+ holder,
31817
+ hider
31818
+ } = this.wtTable;
31819
+ const holderHeight = holder.clientHeight;
31820
+ const hiderOffsetHeight = hider.offsetHeight;
31821
+ if (holderHeight < hiderOffsetHeight) {
31822
+ return true;
31823
+ }
31824
+ return hiderOffsetHeight > this.getWorkspaceHeight();
31798
31825
  }
31799
31826
 
31800
31827
  /**
@@ -31803,7 +31830,20 @@ class Viewport {
31803
31830
  * @returns {boolean}
31804
31831
  */
31805
31832
  hasHorizontalScroll() {
31806
- return this.wtTable.hider.offsetWidth > this.getWorkspaceWidth();
31833
+ if (this.isVerticallyScrollableByWindow()) {
31834
+ const documentElement = this.domBindings.rootDocument.documentElement;
31835
+ return documentElement.scrollWidth > documentElement.clientWidth;
31836
+ }
31837
+ const {
31838
+ holder,
31839
+ hider
31840
+ } = this.wtTable;
31841
+ const holderWidth = holder.clientWidth;
31842
+ const hiderOffsetWidth = hider.offsetWidth;
31843
+ if (holderWidth < hiderOffsetWidth) {
31844
+ return true;
31845
+ }
31846
+ return hiderOffsetWidth > this.getWorkspaceWidth();
31807
31847
  }
31808
31848
 
31809
31849
  /**
@@ -31843,7 +31883,7 @@ class Viewport {
31843
31883
  * @returns {number}
31844
31884
  */
31845
31885
  getWorkspaceOffset() {
31846
- return (0, _element.offset)(this.wtTable.TABLE);
31886
+ return (0, _element.offset)(this.wtTable.holder);
31847
31887
  }
31848
31888
 
31849
31889
  /**
@@ -32822,8 +32862,8 @@ class DataSource {
32822
32862
  value = valueHolder.value;
32823
32863
  }
32824
32864
  }
32825
- if (!Number.isInteger(row)) {
32826
- // invalid row number
32865
+ if (['__proto__', 'constructor', 'prototype'].includes(row)) {
32866
+ // prevent prototype pollution
32827
32867
  return;
32828
32868
  }
32829
32869
  if (!Number.isInteger(column)) {
@@ -34310,6 +34350,7 @@ exports.IndexMap = IndexMap;
34310
34350
  exports.__esModule = true;
34311
34351
  exports.getListWithInsertedItems = getListWithInsertedItems;
34312
34352
  exports.getListWithRemovedItems = getListWithRemovedItems;
34353
+ __webpack_require__(115);
34313
34354
  __webpack_require__(142);
34314
34355
  var _function = __webpack_require__(163);
34315
34356
  var _array = __webpack_require__(161);
@@ -34354,6 +34395,7 @@ function getListWithRemovedItems(indexedValues, removedIndexes) {
34354
34395
 
34355
34396
  var _interopRequireDefault = __webpack_require__(1);
34356
34397
  exports.__esModule = true;
34398
+ __webpack_require__(115);
34357
34399
  __webpack_require__(142);
34358
34400
  var _defineProperty2 = _interopRequireDefault(__webpack_require__(170));
34359
34401
  var _indexMap = __webpack_require__(298);
@@ -38935,7 +38977,7 @@ class DataMap {
38935
38977
  this.metaManager = metaManager;
38936
38978
  this.tableMeta = metaManager.getTableMeta();
38937
38979
  this.dataSource = data;
38938
- this.duckSchema = this.createDuckSchema();
38980
+ this.refreshDuckSchema();
38939
38981
  this.createMap();
38940
38982
  }
38941
38983
 
@@ -39298,14 +39340,10 @@ class DataMap {
39298
39340
  // List of removed indexes might be changed in the `beforeRemoveRow` hook. There may be new values.
39299
39341
  const numberOfRemovedIndexes = removedPhysicalIndexes.length;
39300
39342
  this.filterData(rowIndex, numberOfRemovedIndexes, removedPhysicalIndexes);
39301
-
39302
- // TODO: Function `removeRow` should validate fully, probably above.
39303
39343
  if (rowIndex < this.hot.countRows()) {
39304
39344
  this.hot.rowIndexMapper.removeIndexes(removedPhysicalIndexes);
39305
- const customDefinedColumns = (0, _mixed.isDefined)(this.tableMeta.columns) || (0, _mixed.isDefined)(this.tableMeta.dataSchema);
39306
-
39307
- // All rows have been removed. There shouldn't be any columns.
39308
- if (this.hot.rowIndexMapper.getNotTrimmedIndexesLength() === 0 && customDefinedColumns === false) {
39345
+ const preserveColumns = (0, _mixed.isDefined)(this.tableMeta.columns) || (0, _mixed.isDefined)(this.tableMeta.dataSchema) || this.tableMeta.colHeaders;
39346
+ if (this.hot.rowIndexMapper.getNotTrimmedIndexesLength() === 0 && !preserveColumns) {
39309
39347
  this.hot.columnIndexMapper.setIndexesSequence([]);
39310
39348
  }
39311
39349
  }
@@ -39368,13 +39406,9 @@ class DataMap {
39368
39406
  }
39369
39407
  }
39370
39408
  }
39371
-
39372
- // TODO: Function `removeCol` should validate fully, probably above.
39373
39409
  if (columnIndex < this.hot.countCols()) {
39374
39410
  this.hot.columnIndexMapper.removeIndexes(removedPhysicalIndexes);
39375
-
39376
- // All columns have been removed. There shouldn't be any rows.
39377
- if (this.hot.columnIndexMapper.getNotTrimmedIndexesLength() === 0) {
39411
+ if (!this.tableMeta.rowHeaders && this.hot.columnIndexMapper.getNotTrimmedIndexesLength() === 0) {
39378
39412
  this.hot.rowIndexMapper.setIndexesSequence([]);
39379
39413
  }
39380
39414
  }
@@ -44378,8 +44412,8 @@ var _default = () => {
44378
44412
  /**
44379
44413
  * The `rowHeights` option sets rows' heights, in pixels.
44380
44414
  *
44381
- * In the rendering process, the default row height is 23 px (in the classic theme: 22 px + 1 px of the row's bottom border) or whatever is defined in the used theme (based on the line height, vertical padding and cell borders).
44382
- * You can change it to equal or greater than the defautl value, by setting the `rowHeights` option to one of the following:
44415
+ * In the rendering process, the default row height is `classic: 23px`, `main: 29px`, `horizon: 37px` (in the classic theme: 22px + 1px of the row's bottom border) or whatever is defined in the used theme (based on the line height, vertical padding and cell borders).
44416
+ * You can change it to equal or greater than the default value, by setting the `rowHeights` option to one of the following:
44383
44417
  *
44384
44418
  * | Setting | Description | Example |
44385
44419
  * | ----------- | --------------------------------------------------------------------------------------------------- | ------------------------------------------------------------ |
@@ -49709,6 +49743,7 @@ exports.createContext = createContext;
49709
49743
 
49710
49744
 
49711
49745
  exports.__esModule = true;
49746
+ __webpack_require__(115);
49712
49747
  __webpack_require__(142);
49713
49748
  // This file handles key-name discrepancies between browsers.
49714
49749
  // For the list of discrepancies, go to: https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values.
@@ -50850,18 +50885,9 @@ function textRenderer(hotInstance, TD, row, col, prop, value, cellProperties) {
50850
50885
  if (cellProperties.trimWhitespace) {
50851
50886
  escaped = escaped.trim();
50852
50887
  }
50853
- if (cellProperties.rendererTemplate) {
50854
- (0, _element.empty)(TD);
50855
- const TEMPLATE = hotInstance.rootDocument.createElement('TEMPLATE');
50856
- TEMPLATE.setAttribute('bind', '{{}}');
50857
- TEMPLATE.innerHTML = cellProperties.rendererTemplate;
50858
- HTMLTemplateElement.decorate(TEMPLATE);
50859
- TEMPLATE.model = hotInstance.getSourceDataAtRow(row);
50860
- TD.appendChild(TEMPLATE);
50861
- } else {
50862
- // this is faster than innerHTML. See: https://github.com/handsontable/handsontable/wiki/JavaScript-&-DOM-performance-tips
50863
- (0, _element.fastInnerText)(TD, escaped);
50864
- }
50888
+
50889
+ // this is faster than innerHTML. See: https://github.com/handsontable/handsontable/wiki/JavaScript-&-DOM-performance-tips
50890
+ (0, _element.fastInnerText)(TD, escaped);
50865
50891
  }
50866
50892
  textRenderer.RENDERER_TYPE = RENDERER_TYPE;
50867
50893
 
@@ -51090,6 +51116,7 @@ var _string = __webpack_require__(156);
51090
51116
  var _unicode = __webpack_require__(174);
51091
51117
  var _textRenderer = __webpack_require__(426);
51092
51118
  var _a11y = __webpack_require__(162);
51119
+ function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
51093
51120
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
51094
51121
  function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
51095
51122
  function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
@@ -51101,9 +51128,14 @@ const EDITOR_TYPE = exports.EDITOR_TYPE = 'autocomplete';
51101
51128
  * @class AutocompleteEditor
51102
51129
  */
51103
51130
  var _idPrefix = /*#__PURE__*/new WeakMap();
51131
+ var _AutocompleteEditor_brand = /*#__PURE__*/new WeakSet();
51104
51132
  class AutocompleteEditor extends _handsontableEditor.HandsontableEditor {
51105
51133
  constructor() {
51106
51134
  super(...arguments);
51135
+ /**
51136
+ * Fix width of the internal Handsontable's instance when editor has vertical scroll.
51137
+ */
51138
+ _classPrivateMethodInitSpec(this, _AutocompleteEditor_brand);
51107
51139
  /**
51108
51140
  * Query string to turn available values over.
51109
51141
  *
@@ -51411,21 +51443,16 @@ class AutocompleteEditor extends _handsontableEditor.HandsontableEditor {
51411
51443
  * @returns {boolean}
51412
51444
  */
51413
51445
  flipDropdownIfNeeded() {
51414
- const trimmingContainer = (0, _element.getTrimmingContainer)(this.hot.view._wt.wtTable.TABLE);
51415
- const isWindowAsScrollableElement = trimmingContainer === this.hot.rootWindow;
51416
- const preventOverflow = this.cellProperties.preventOverflow;
51417
- if (isWindowAsScrollableElement || !isWindowAsScrollableElement && (preventOverflow || preventOverflow === 'horizontal')) {
51418
- return false;
51446
+ const editorRect = this.getEditedCellRect();
51447
+ const editorHeight = editorRect.height;
51448
+ let spaceAbove = editorRect.top;
51449
+ if (this.hot.view.isVerticallyScrollableByWindow()) {
51450
+ const topOffset = this.hot.view.getTableOffset().top - this.hot.rootWindow.scrollY;
51451
+ spaceAbove = Math.max(spaceAbove + topOffset, 0);
51419
51452
  }
51420
- const textareaOffset = (0, _element.offset)(this.TEXTAREA);
51421
- const textareaHeight = (0, _element.outerHeight)(this.TEXTAREA);
51422
51453
  const dropdownHeight = this.getHeight();
51423
- const trimmingContainerScrollTop = trimmingContainer.scrollTop;
51424
- const headersHeight = (0, _element.outerHeight)(this.hot.view._wt.wtTable.THEAD);
51425
- const containerOffset = (0, _element.offset)(trimmingContainer);
51426
- const spaceAbove = textareaOffset.top - containerOffset.top - headersHeight + trimmingContainerScrollTop;
51427
- const spaceBelow = trimmingContainer.scrollHeight - spaceAbove - headersHeight - textareaHeight;
51428
- const flipNeeded = dropdownHeight > spaceBelow && spaceAbove > spaceBelow;
51454
+ const spaceBelow = this.hot.view.getWorkspaceHeight() - spaceAbove - editorHeight;
51455
+ const flipNeeded = dropdownHeight > spaceBelow && spaceAbove > spaceBelow + editorHeight;
51429
51456
  if (flipNeeded) {
51430
51457
  this.flipDropdown(dropdownHeight);
51431
51458
  } else {
@@ -51485,7 +51512,6 @@ class AutocompleteEditor extends _handsontableEditor.HandsontableEditor {
51485
51512
  dropdownStyle.top = '';
51486
51513
  this.htEditor.flipped = undefined;
51487
51514
  }
51488
-
51489
51515
  /**
51490
51516
  * Updates width and height of the internal Handsontable's instance.
51491
51517
  *
@@ -51496,11 +51522,7 @@ class AutocompleteEditor extends _handsontableEditor.HandsontableEditor {
51496
51522
  width: this.getWidth(),
51497
51523
  height: this.getHeight()
51498
51524
  });
51499
- if (this.htEditor.view.hasVerticalScroll()) {
51500
- this.htEditor.updateSettings({
51501
- width: this.htEditor.getSettings().width + (0, _element.getScrollbarWidth)(this.hot.rootDocument)
51502
- });
51503
- }
51525
+ _assertClassBrand(_AutocompleteEditor_brand, this, _fixDropdownWidth).call(this);
51504
51526
  this.htEditor.view._wt.wtTable.alignOverlaysWithTrimmingContainer();
51505
51527
  }
51506
51528
 
@@ -51514,6 +51536,8 @@ class AutocompleteEditor extends _handsontableEditor.HandsontableEditor {
51514
51536
  this.htEditor.updateSettings({
51515
51537
  height
51516
51538
  });
51539
+ _assertClassBrand(_AutocompleteEditor_brand, this, _fixDropdownWidth).call(this);
51540
+ this.htEditor.view._wt.wtTable.alignOverlaysWithTrimmingContainer();
51517
51541
  }
51518
51542
 
51519
51543
  /**
@@ -51637,6 +51661,13 @@ class AutocompleteEditor extends _handsontableEditor.HandsontableEditor {
51637
51661
  }
51638
51662
  }
51639
51663
  exports.AutocompleteEditor = AutocompleteEditor;
51664
+ function _fixDropdownWidth() {
51665
+ if (this.htEditor.view.hasVerticalScroll()) {
51666
+ this.htEditor.updateSettings({
51667
+ width: this.htEditor.getSettings().width + (0, _element.getScrollbarWidth)(this.hot.rootDocument)
51668
+ });
51669
+ }
51670
+ }
51640
51671
 
51641
51672
  /***/ }),
51642
51673
  /* 434 */
@@ -52025,21 +52056,27 @@ var _element = __webpack_require__(155);
52025
52056
  var _object = __webpack_require__(165);
52026
52057
  var _unicode = __webpack_require__(174);
52027
52058
  var _browser = __webpack_require__(164);
52059
+ function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
52060
+ function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
52061
+ 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"); }
52028
52062
  const EDITOR_TYPE = exports.EDITOR_TYPE = 'date';
52029
52063
  const SHORTCUTS_GROUP_EDITOR = 'dateEditor';
52064
+ const DEFAULT_DATE_FORMAT = 'DD/MM/YYYY';
52030
52065
 
52031
52066
  /**
52032
52067
  * @private
52033
52068
  * @class DateEditor
52034
52069
  */
52070
+ var _DateEditor_brand = /*#__PURE__*/new WeakSet();
52035
52071
  class DateEditor extends _textEditor.TextEditor {
52036
52072
  constructor() {
52037
52073
  super(...arguments);
52038
- // TODO: Move this option to general settings
52039
52074
  /**
52040
- * @type {string}
52075
+ * Gets the current date format for this cell.
52076
+ *
52077
+ * @returns {string}
52041
52078
  */
52042
- (0, _defineProperty2.default)(this, "defaultDateFormat", 'DD/MM/YYYY');
52079
+ _classPrivateMethodInitSpec(this, _DateEditor_brand);
52043
52080
  /**
52044
52081
  * @type {boolean}
52045
52082
  */
@@ -52205,7 +52242,7 @@ class DateEditor extends _textEditor.TextEditor {
52205
52242
  * @param {Event} event The event object.
52206
52243
  */
52207
52244
  showDatepicker(event) {
52208
- const dateFormat = this.cellProperties.dateFormat || this.defaultDateFormat;
52245
+ const dateFormat = _assertClassBrand(_DateEditor_brand, this, _getDateFormat).call(this);
52209
52246
  const isMouseDown = this.hot.view.isMouseDown();
52210
52247
  const isMeta = event ? (0, _unicode.isFunctionKey)(event.keyCode) : false;
52211
52248
  let dateStr;
@@ -52257,6 +52294,7 @@ class DateEditor extends _textEditor.TextEditor {
52257
52294
  * @returns {object}
52258
52295
  */
52259
52296
  getDatePickerConfig() {
52297
+ var _options$format;
52260
52298
  const htInput = this.TEXTAREA;
52261
52299
  const options = {};
52262
52300
  if (this.cellProperties && this.cellProperties.datePickerConfig) {
@@ -52269,7 +52307,7 @@ class DateEditor extends _textEditor.TextEditor {
52269
52307
  options.container = this.datePicker;
52270
52308
  options.bound = false;
52271
52309
  options.keyboardInput = false;
52272
- options.format = options.format || this.defaultDateFormat;
52310
+ options.format = (_options$format = options.format) !== null && _options$format !== void 0 ? _options$format : _assertClassBrand(_DateEditor_brand, this, _getDateFormat).call(this);
52273
52311
  options.reposition = options.reposition || false;
52274
52312
  // Set the RTL to `false`. Due to the https://github.com/Pikaday/Pikaday/issues/647 bug, the layout direction
52275
52313
  // of the date picker is controlled by juggling the "dir" attribute of the root date picker element.
@@ -52278,7 +52316,7 @@ class DateEditor extends _textEditor.TextEditor {
52278
52316
  options.onSelect = value => {
52279
52317
  let dateStr = value;
52280
52318
  if (!isNaN(dateStr.getTime())) {
52281
- dateStr = (0, _moment.default)(dateStr).format(this.cellProperties.dateFormat || this.defaultDateFormat);
52319
+ dateStr = (0, _moment.default)(dateStr).format(_assertClassBrand(_DateEditor_brand, this, _getDateFormat).call(this));
52282
52320
  }
52283
52321
  this.setValue(dateStr);
52284
52322
  if (origOnSelect) {
@@ -52346,6 +52384,10 @@ class DateEditor extends _textEditor.TextEditor {
52346
52384
  }
52347
52385
  }
52348
52386
  exports.DateEditor = DateEditor;
52387
+ function _getDateFormat() {
52388
+ var _this$cellProperties$;
52389
+ return (_this$cellProperties$ = this.cellProperties.dateFormat) !== null && _this$cellProperties$ !== void 0 ? _this$cellProperties$ : DEFAULT_DATE_FORMAT;
52390
+ }
52349
52391
 
52350
52392
  /***/ }),
52351
52393
  /* 440 */
@@ -53363,7 +53405,7 @@ function checkboxRenderer(hotInstance, TD, row, col, prop, value, cellProperties
53363
53405
  continue;
53364
53406
  }
53365
53407
  const cell = hotInstance.getCell(visualRow, visualColumn);
53366
- if (cell instanceof HTMLElement) {
53408
+ if ((0, _element.isHTMLElement)(cell)) {
53367
53409
  const checkboxes = cell.querySelectorAll('input[type=checkbox]');
53368
53410
  if (checkboxes.length > 0) {
53369
53411
  return true;
@@ -53631,8 +53673,16 @@ function getRenderedValue(value, cellProperties) {
53631
53673
  function numericRenderer(hotInstance, TD, row, col, prop, value, cellProperties) {
53632
53674
  let newValue = value;
53633
53675
  if ((0, _number.isNumeric)(newValue)) {
53634
- const className = cellProperties.className || '';
53635
- const classArr = className.length ? className.split(' ') : [];
53676
+ let classArr = [];
53677
+ if (Array.isArray(cellProperties.className)) {
53678
+ classArr = cellProperties.className;
53679
+ } else {
53680
+ var _cellProperties$class;
53681
+ const className = (_cellProperties$class = cellProperties.className) !== null && _cellProperties$class !== void 0 ? _cellProperties$class : '';
53682
+ if (className.length) {
53683
+ classArr = className.split(' ');
53684
+ }
53685
+ }
53636
53686
  newValue = getRenderedValue(newValue, cellProperties);
53637
53687
  if (classArr.indexOf('htLeft') < 0 && classArr.indexOf('htCenter') < 0 && classArr.indexOf('htRight') < 0 && classArr.indexOf('htJustify') < 0) {
53638
53688
  classArr.push('htRight');
@@ -54615,23 +54665,23 @@ var _mergeCells = __webpack_require__(688);
54615
54665
  exports.MergeCells = _mergeCells.MergeCells;
54616
54666
  var _multiColumnSorting = __webpack_require__(702);
54617
54667
  exports.MultiColumnSorting = _multiColumnSorting.MultiColumnSorting;
54618
- var _multipleSelectionHandles = __webpack_require__(707);
54668
+ var _multipleSelectionHandles = __webpack_require__(706);
54619
54669
  exports.MultipleSelectionHandles = _multipleSelectionHandles.MultipleSelectionHandles;
54620
- var _nestedHeaders = __webpack_require__(709);
54670
+ var _nestedHeaders = __webpack_require__(708);
54621
54671
  exports.NestedHeaders = _nestedHeaders.NestedHeaders;
54622
- var _nestedRows = __webpack_require__(725);
54672
+ var _nestedRows = __webpack_require__(724);
54623
54673
  exports.NestedRows = _nestedRows.NestedRows;
54624
- var _persistentState = __webpack_require__(733);
54674
+ var _persistentState = __webpack_require__(732);
54625
54675
  exports.PersistentState = _persistentState.PersistentState;
54626
- var _search = __webpack_require__(736);
54676
+ var _search = __webpack_require__(735);
54627
54677
  exports.Search = _search.Search;
54628
- var _stretchColumns = __webpack_require__(738);
54678
+ var _stretchColumns = __webpack_require__(737);
54629
54679
  exports.StretchColumns = _stretchColumns.StretchColumns;
54630
- var _touchScroll = __webpack_require__(744);
54680
+ var _touchScroll = __webpack_require__(743);
54631
54681
  exports.TouchScroll = _touchScroll.TouchScroll;
54632
- var _trimRows = __webpack_require__(746);
54682
+ var _trimRows = __webpack_require__(745);
54633
54683
  exports.TrimRows = _trimRows.TrimRows;
54634
- var _undoRedo = __webpack_require__(748);
54684
+ var _undoRedo = __webpack_require__(747);
54635
54685
  exports.UndoRedo = _undoRedo.UndoRedo;
54636
54686
  var _registry = __webpack_require__(198);
54637
54687
  exports.registerPlugin = _registry.registerPlugin;
@@ -58669,6 +58719,13 @@ const SHORTCUTS_GROUP = PLUGIN_KEY;
58669
58719
  _hooks.Hooks.getSingleton().register('beforeColumnSort');
58670
58720
  _hooks.Hooks.getSingleton().register('afterColumnSort');
58671
58721
 
58722
+ /**
58723
+ * Tracks the conflicts between `columnSorting` and `multiColumnSorting` options.
58724
+ * Only one plugin can be enabled for Handsontable instance. Once one of them is enabled,
58725
+ * the other should remain disabled even if it's set to `true`.
58726
+ */
58727
+ const pluginConflictsState = new WeakMap();
58728
+
58672
58729
  // DIFF - MultiColumnSorting & ColumnSorting: changed configuration documentation.
58673
58730
  /**
58674
58731
  * @plugin ColumnSorting
@@ -58777,9 +58834,17 @@ class ColumnSorting extends _base.BasePlugin {
58777
58834
  */
58778
58835
  enablePlugin() {
58779
58836
  var _this = this;
58837
+ if (pluginConflictsState.has(this.hot) && pluginConflictsState.get(this.hot) !== this.pluginKey) {
58838
+ this.hot.updateSettings({
58839
+ [this.pluginKey]: false
58840
+ });
58841
+ (0, _utils.warnAboutPluginsConflict)(pluginConflictsState.get(this.hot), this.pluginKey);
58842
+ return;
58843
+ }
58780
58844
  if (this.enabled) {
58781
58845
  return;
58782
58846
  }
58847
+ pluginConflictsState.set(this.hot, this.pluginKey);
58783
58848
  this.columnStatesManager = new _columnStatesManager.ColumnStatesManager(this.hot, `${this.pluginKey}.sortingStates`);
58784
58849
  this.columnMetaCache = new _translations.PhysicalIndexToValueMap(physicalIndex => {
58785
58850
  let visualIndex = this.hot.toVisualColumn(physicalIndex);
@@ -58824,6 +58889,7 @@ class ColumnSorting extends _base.BasePlugin {
58824
58889
  }
58825
58890
  this.updateHeaderClasses(headerSpanElement);
58826
58891
  };
58892
+ pluginConflictsState.delete(this.hot);
58827
58893
 
58828
58894
  // Changing header width and removing indicator.
58829
58895
  this.hot.addHook('afterGetColHeader', clearColHeader);
@@ -59301,7 +59367,7 @@ class ColumnSorting extends _base.BasePlugin {
59301
59367
  * @param {object} newSettings New settings object.
59302
59368
  */
59303
59369
  onUpdateSettings(newSettings) {
59304
- super.onUpdateSettings();
59370
+ super.onUpdateSettings(newSettings);
59305
59371
  if (this.columnMetaCache !== null) {
59306
59372
  // Column meta cache base on settings, thus we should re-init the map.
59307
59373
  this.columnMetaCache.init(this.hot.columnIndexMapper.getNumberOfIndexes());
@@ -59431,6 +59497,7 @@ function _onBeforeOnCellMouseDown(event, coords, TD, controller) {
59431
59497
 
59432
59498
  var _interopRequireDefault = __webpack_require__(1);
59433
59499
  exports.__esModule = true;
59500
+ __webpack_require__(115);
59434
59501
  __webpack_require__(142);
59435
59502
  var _defineProperty2 = _interopRequireDefault(__webpack_require__(170));
59436
59503
  var _object = __webpack_require__(165);
@@ -59659,6 +59726,7 @@ exports.createDateTimeCompareFunction = createDateTimeCompareFunction;
59659
59726
  exports.getHeaderSpanElement = getHeaderSpanElement;
59660
59727
  exports.getNextSortOrder = getNextSortOrder;
59661
59728
  exports.isFirstLevelColumnHeader = isFirstLevelColumnHeader;
59729
+ exports.warnAboutPluginsConflict = warnAboutPluginsConflict;
59662
59730
  exports.wasHeaderClickedProperly = wasHeaderClickedProperly;
59663
59731
  __webpack_require__(91);
59664
59732
  __webpack_require__(102);
@@ -59675,6 +59743,8 @@ var _object = __webpack_require__(165);
59675
59743
  var _event = __webpack_require__(175);
59676
59744
  var _mixed = __webpack_require__(158);
59677
59745
  var _sortService = __webpack_require__(526);
59746
+ var _console = __webpack_require__(178);
59747
+ var _templateLiteralTag = __webpack_require__(160);
59678
59748
  const ASC_SORT_STATE = exports.ASC_SORT_STATE = 'asc';
59679
59749
  const DESC_SORT_STATE = exports.DESC_SORT_STATE = 'desc';
59680
59750
  const HEADER_SPAN_CLASS = exports.HEADER_SPAN_CLASS = 'colHeader';
@@ -59827,6 +59897,17 @@ function createDateTimeCompareFunction(sortOrder, format, columnPluginSettings)
59827
59897
  };
59828
59898
  }
59829
59899
 
59900
+ /**
59901
+ * Warn users about problems when using `columnSorting` and `multiColumnSorting` plugins simultaneously.
59902
+ *
59903
+ * @param {string} workingPlugin The plugin that will work.
59904
+ * @param {string} disabledPlugin The plugin that will remain disabled.
59905
+ */
59906
+ function warnAboutPluginsConflict(workingPlugin, disabledPlugin) {
59907
+ (0, _console.warn)((0, _templateLiteralTag.toSingleLine)`Plugins \`columnSorting\` and \`multiColumnSorting\` should not be enabled simultaneously.\x20
59908
+ Only \`${workingPlugin}\` will work. The \`${disabledPlugin}\` plugin will remain disabled.`);
59909
+ }
59910
+
59830
59911
  /***/ }),
59831
59912
  /* 526 */
59832
59913
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
@@ -61951,6 +62032,9 @@ class Comments extends _base.BasePlugin {
61951
62032
  innerHeight
61952
62033
  } = this.hot.rootWindow;
61953
62034
  const documentElement = this.hot.rootDocument.documentElement;
62035
+ const scrollbarWidth = (0, _element.getScrollbarWidth)(this.hot.rootDocument);
62036
+ const verticalScrollbarWidth = (0, _element.hasVerticalScrollbar)(this.hot.rootWindow) ? scrollbarWidth : 0;
62037
+ const horizontalScrollbarWidth = (0, _element.hasHorizontalScrollbar)(this.hot.rootWindow) ? scrollbarWidth : 0;
61954
62038
  let x = left + rootWindow.scrollX + lastColWidth;
61955
62039
  let y = top + rootWindow.scrollY + lastRowHeight;
61956
62040
  if (this.hot.isRtl()) {
@@ -61958,12 +62042,12 @@ class Comments extends _base.BasePlugin {
61958
62042
  }
61959
62043
 
61960
62044
  // flip to the right or left the comments editor position when it goes out of browser viewport
61961
- if (this.hot.isLtr() && left + cellWidth + editorWidth > innerWidth) {
62045
+ if (this.hot.isLtr() && left + cellWidth + editorWidth > innerWidth - verticalScrollbarWidth) {
61962
62046
  x = left + rootWindow.scrollX - editorWidth - 1;
61963
62047
  } else if (this.hot.isRtl() && x < -(documentElement.scrollWidth - documentElement.clientWidth)) {
61964
62048
  x = left + rootWindow.scrollX + lastColWidth + 1;
61965
62049
  }
61966
- if (top + editorHeight > innerHeight) {
62050
+ if (top + editorHeight > innerHeight - horizontalScrollbarWidth) {
61967
62051
  y -= editorHeight - cellHeight + 1;
61968
62052
  }
61969
62053
  _classPrivateFieldGet(_editor, this).setPosition(x, y);
@@ -63163,19 +63247,14 @@ function columnLeftItem() {
63163
63247
  return true;
63164
63248
  }
63165
63249
  const range = this.getSelectedRangeLast();
63166
- if (!range) {
63167
- return true;
63168
- }
63169
- if (range.isSingleHeader() && range.highlight.col < 0) {
63250
+ if (!range || this.selection.isSelectedByRowHeader() || range.isSingleHeader() && range.highlight.col < 0 || this.countSourceCols() >= this.getSettings().maxCols) {
63170
63251
  return true;
63171
63252
  }
63172
63253
  if (this.selection.isSelectedByCorner()) {
63173
- const totalColumns = this.countCols();
63174
-
63175
63254
  // Enable "Insert column left" only when there is at least one column.
63176
- return totalColumns === 0;
63255
+ return this.countCols() === 0;
63177
63256
  }
63178
- return this.selection.isSelectedByRowHeader() || this.countCols() >= this.getSettings().maxCols;
63257
+ return false;
63179
63258
  },
63180
63259
  hidden() {
63181
63260
  return !this.getSettings().allowInsertColumn;
@@ -63216,17 +63295,10 @@ function columnRightItem() {
63216
63295
  return true;
63217
63296
  }
63218
63297
  const range = this.getSelectedRangeLast();
63219
- if (!range) {
63220
- return true;
63221
- }
63222
- if (range.isSingleHeader() && range.highlight.col < 0) {
63298
+ if (!range || this.selection.isSelectedByRowHeader() || range.isSingleHeader() && range.highlight.col < 0 || this.countSourceCols() >= this.getSettings().maxCols) {
63223
63299
  return true;
63224
63300
  }
63225
- if (this.selection.isSelectedByCorner()) {
63226
- // Enable "Insert column right" always when the menu is triggered by corner click.
63227
- return false;
63228
- }
63229
- return this.selection.isSelectedByRowHeader() || this.countCols() >= this.getSettings().maxCols;
63301
+ return false;
63230
63302
  },
63231
63303
  hidden() {
63232
63304
  return !this.getSettings().allowInsertColumn;
@@ -63496,19 +63568,14 @@ function rowAboveItem() {
63496
63568
  },
63497
63569
  disabled() {
63498
63570
  const range = this.getSelectedRangeLast();
63499
- if (!range) {
63500
- return true;
63501
- }
63502
- if (range.isSingleHeader() && range.highlight.row < 0) {
63571
+ if (!range || this.selection.isSelectedByColumnHeader() || range.isSingleHeader() && range.highlight.row < 0 || this.countSourceRows() >= this.getSettings().maxRows) {
63503
63572
  return true;
63504
63573
  }
63505
63574
  if (this.selection.isSelectedByCorner()) {
63506
- const totalRows = this.countRows();
63507
-
63508
63575
  // Enable "Insert row above" only when there is at least one row.
63509
- return totalRows === 0;
63576
+ return this.countRows() === 0;
63510
63577
  }
63511
- return this.selection.isSelectedByColumnHeader() || this.countRows() >= this.getSettings().maxRows;
63578
+ return false;
63512
63579
  },
63513
63580
  hidden() {
63514
63581
  return !this.getSettings().allowInsertRow;
@@ -63545,17 +63612,10 @@ function rowBelowItem() {
63545
63612
  },
63546
63613
  disabled() {
63547
63614
  const range = this.getSelectedRangeLast();
63548
- if (!range) {
63615
+ if (!range || this.selection.isSelectedByColumnHeader() || range.isSingleHeader() && range.highlight.row < 0 || this.countSourceRows() >= this.getSettings().maxRows) {
63549
63616
  return true;
63550
63617
  }
63551
- if (range.isSingleHeader() && range.highlight.row < 0) {
63552
- return true;
63553
- }
63554
- if (this.selection.isSelectedByCorner()) {
63555
- // Enable "Insert row below" always when the menu is triggered by corner click.
63556
- return false;
63557
- }
63558
- return this.selection.isSelectedByColumnHeader() || this.countRows() >= this.getSettings().maxRows;
63618
+ return false;
63559
63619
  },
63560
63620
  hidden() {
63561
63621
  return !this.getSettings().allowInsertRow;
@@ -64742,7 +64802,6 @@ class Menu {
64742
64802
  this.openSubMenu(coords.row);
64743
64803
  }
64744
64804
  },
64745
- rowHeights: row => filteredItems[row].name === _predefinedItems.SEPARATOR ? 1 : undefined,
64746
64805
  afterOnCellContextMenu: event => {
64747
64806
  event.preventDefault();
64748
64807
 
@@ -65013,6 +65072,7 @@ class Menu {
65013
65072
  * and adjusts the width and height of the menu's holder and hider elements accordingly.
65014
65073
  */
65015
65074
  updateMenuDimensions() {
65075
+ const stylesHandler = this.hotMenu.view.getStylesHandler();
65016
65076
  const {
65017
65077
  wtTable
65018
65078
  } = this.hotMenu.view._wt;
@@ -65025,8 +65085,14 @@ class Menu {
65025
65085
  const currentRowHeight = itemCell ? (0, _element.outerHeight)(this.hotMenu.getCell(index, 0)) : 0;
65026
65086
  return accumulator + (value.name === _predefinedItems.SEPARATOR ? 1 : currentRowHeight);
65027
65087
  }, 0);
65028
- holderStyle.width = `${currentHiderWidth}px`;
65029
- holderStyle.height = `${realHeight}px`;
65088
+ if (stylesHandler.isClassicTheme()) {
65089
+ // Additional 3px to menu's size because of additional border around its `table.htCore`.
65090
+ holderStyle.width = `${currentHiderWidth + 3}px`;
65091
+ holderStyle.height = `${realHeight + 3}px`;
65092
+ } else {
65093
+ holderStyle.width = `${currentHiderWidth}px`;
65094
+ holderStyle.height = `${realHeight}px`;
65095
+ }
65030
65096
  hiderStyle.height = holderStyle.height;
65031
65097
  }
65032
65098
 
@@ -66733,7 +66799,7 @@ class CopyPaste extends _base.BasePlugin {
66733
66799
  const isHotInput = (_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.hasAttribute('data-hot-input');
66734
66800
  const selectedCell = (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight;
66735
66801
  const TD = selectedCell ? this.hot.getCell(selectedCell.row, selectedCell.col, true) : null;
66736
- if (!this.hot.isListening() && !_classPrivateFieldGet(_isTriggeredByCopy, this) || this.isEditorOpened() || event.target instanceof HTMLElement && (isHotInput && event.target !== focusedElement || !isHotInput && event.target !== this.hot.rootDocument.body && TD !== event.target)) {
66802
+ 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)) {
66737
66803
  return;
66738
66804
  }
66739
66805
  event.preventDefault();
@@ -66768,7 +66834,7 @@ class CopyPaste extends _base.BasePlugin {
66768
66834
  const isHotInput = (_event$target2 = event.target) === null || _event$target2 === void 0 ? void 0 : _event$target2.hasAttribute('data-hot-input');
66769
66835
  const selectedCell = (_this$hot$getSelected2 = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected2 === void 0 ? void 0 : _this$hot$getSelected2.highlight;
66770
66836
  const TD = selectedCell ? this.hot.getCell(selectedCell.row, selectedCell.col, true) : null;
66771
- if (!this.hot.isListening() && !_classPrivateFieldGet(_isTriggeredByCut, this) || this.isEditorOpened() || event.target instanceof HTMLElement && (isHotInput && event.target !== focusedElement || !isHotInput && event.target !== this.hot.rootDocument.body && TD !== event.target)) {
66837
+ 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)) {
66772
66838
  return;
66773
66839
  }
66774
66840
  event.preventDefault();
@@ -66802,7 +66868,7 @@ class CopyPaste extends _base.BasePlugin {
66802
66868
  const isHotInput = (_event$target3 = event.target) === null || _event$target3 === void 0 ? void 0 : _event$target3.hasAttribute('data-hot-input');
66803
66869
  const selectedCell = (_this$hot$getSelected3 = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected3 === void 0 ? void 0 : _this$hot$getSelected3.highlight;
66804
66870
  const TD = selectedCell ? this.hot.getCell(selectedCell.row, selectedCell.col, true) : null;
66805
- if (!this.hot.isListening() || this.isEditorOpened() || !this.hot.getSelected() || event.target instanceof HTMLElement && (isHotInput && event.target !== focusedElement || !isHotInput && event.target !== this.hot.rootDocument.body && TD !== event.target)) {
66871
+ 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)) {
66806
66872
  return;
66807
66873
  }
66808
66874
  event.preventDefault();
@@ -70000,6 +70066,7 @@ function typeFactory(type, dataProvider, options) {
70000
70066
 
70001
70067
  var _interopRequireDefault = __webpack_require__(1);
70002
70068
  exports.__esModule = true;
70069
+ __webpack_require__(115);
70003
70070
  __webpack_require__(142);
70004
70071
  var _array = __webpack_require__(161);
70005
70072
  var _mixed = __webpack_require__(158);
@@ -70254,6 +70321,7 @@ const SHORTCUTS_GROUP = PLUGIN_KEY;
70254
70321
  */
70255
70322
  var _menuFocusNavigator = /*#__PURE__*/new WeakMap();
70256
70323
  var _dropdownMenuTraces = /*#__PURE__*/new WeakMap();
70324
+ var _previousConditionStack = /*#__PURE__*/new WeakMap();
70257
70325
  var _Filters_brand = /*#__PURE__*/new WeakSet();
70258
70326
  class Filters extends _base.BasePlugin {
70259
70327
  static get PLUGIN_KEY() {
@@ -70325,6 +70393,13 @@ class Filters extends _base.BasePlugin {
70325
70393
  * @type {WeakSet<Menu>}
70326
70394
  */
70327
70395
  _classPrivateFieldInitSpec(this, _dropdownMenuTraces, new WeakSet());
70396
+ /**
70397
+ * Stores the previous state of the condition stack before the latest filter operation.
70398
+ * This is used in the `beforeFilter` plugin to allow performing the undo operation.
70399
+ *
70400
+ * @type {Array}
70401
+ */
70402
+ _classPrivateFieldInitSpec(this, _previousConditionStack, []);
70328
70403
  this.hot.addHook('afterGetColHeader', function () {
70329
70404
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
70330
70405
  args[_key] = arguments[_key];
@@ -70667,6 +70742,51 @@ class Filters extends _base.BasePlugin {
70667
70742
  }
70668
70743
  }
70669
70744
 
70745
+ /**
70746
+ * Imports filter conditions to all columns to the plugin. The method accepts
70747
+ * the array of conditions with the same structure as the {@link Filters#exportConditions} method returns.
70748
+ * Importing conditions will replace the current conditions. Once replaced, the state of the condition
70749
+ * will be reflected in the UI. To apply the changes and filter the table, call
70750
+ * the {@link Filters#filter} method eventually.
70751
+ *
70752
+ * @param {Array} conditions Array of conditions.
70753
+ */
70754
+ importConditions(conditions) {
70755
+ this.conditionCollection.importAllConditions(conditions);
70756
+ }
70757
+
70758
+ /* eslint-disable jsdoc/require-description-complete-sentence */
70759
+ /**
70760
+ * Exports filter conditions for all columns from the plugin.
70761
+ * The array represents the filter state for each column. For example:
70762
+ *
70763
+ * ```js
70764
+ * [
70765
+ * {
70766
+ * column: 1,
70767
+ * operation: 'conjunction',
70768
+ * conditions: [
70769
+ * { name: 'gt', args: [95] },
70770
+ * ]
70771
+ * },
70772
+ * {
70773
+ * column: 7,
70774
+ * operation: 'conjunction',
70775
+ * conditions: [
70776
+ * { name: 'contains', args: ['mike'] },
70777
+ * { name: 'begins_with', args: ['m'] },
70778
+ * ]
70779
+ * },
70780
+ * ]
70781
+ * ```
70782
+ *
70783
+ * @returns {Array}
70784
+ */
70785
+ /* eslint-enable jsdoc/require-description-complete-sentence */
70786
+ exportConditions() {
70787
+ return this.conditionCollection.exportAllConditions();
70788
+ }
70789
+
70670
70790
  /**
70671
70791
  * Filters data based on added filter conditions.
70672
70792
  *
@@ -70680,8 +70800,8 @@ class Filters extends _base.BasePlugin {
70680
70800
  const dataFilter = this._createDataFilter();
70681
70801
  const needToFilter = !this.conditionCollection.isEmpty();
70682
70802
  let visibleVisualRows = [];
70683
- const conditions = this.conditionCollection.exportAllConditions();
70684
- const allowFiltering = this.hot.runHooks('beforeFilter', conditions, this.conditionCollection.previousConditionStack);
70803
+ const conditions = this.exportConditions();
70804
+ const allowFiltering = this.hot.runHooks('beforeFilter', conditions, _classPrivateFieldGet(_previousConditionStack, this));
70685
70805
  if (allowFiltering !== false) {
70686
70806
  if (needToFilter) {
70687
70807
  const trimmedRows = [];
@@ -70704,11 +70824,13 @@ class Filters extends _base.BasePlugin {
70704
70824
  } else {
70705
70825
  this.filtersRowsMap.clear();
70706
70826
  }
70827
+ _classPrivateFieldSet(_previousConditionStack, this, this.exportConditions());
70828
+ this.hot.runHooks('afterFilter', conditions);
70829
+ this.hot.view.adjustElementsSize();
70830
+ this.hot.render();
70831
+ } else {
70832
+ this.importConditions(_classPrivateFieldGet(_previousConditionStack, this));
70707
70833
  }
70708
- this.hot.runHooks('afterFilter', conditions);
70709
- this.conditionCollection.setPreviousConditionStack(null);
70710
- this.hot.view.adjustElementsSize();
70711
- this.hot.render();
70712
70834
  if (this.hot.selection.isSelected()) {
70713
70835
  this.hot.selectCell(navigableHeaders ? -1 : 0, this.hot.getSelectedRangeLast().highlight.col);
70714
70836
  }
@@ -71071,7 +71193,6 @@ function _onActionBarSubmit(submitType) {
71071
71193
  }
71072
71194
  this.conditionUpdateObserver.flush();
71073
71195
  this.components.forEach(component => component.saveState(physicalIndex));
71074
- this.filtersRowsMap.clear();
71075
71196
  this.filter();
71076
71197
  }
71077
71198
  (_this$dropdownMenuPlu3 = this.dropdownMenuPlugin) === null || _this$dropdownMenuPlu3 === void 0 || _this$dropdownMenuPlu3.close();
@@ -71113,8 +71234,23 @@ function _updateComponents(conditionsState) {
71113
71234
  editedConditionStack: {
71114
71235
  conditions,
71115
71236
  column
71116
- }
71237
+ },
71238
+ conditionArgsChange
71117
71239
  } = conditionsState;
71240
+ if (Array.isArray(conditionArgsChange)) {
71241
+ // update the previous condition stack (only for 'by_value' condition) on each dataset
71242
+ // change to make the undo/redo work properly
71243
+ _classPrivateFieldSet(_previousConditionStack, this, _classPrivateFieldGet(_previousConditionStack, this).map(stack => {
71244
+ if (stack.column === column && conditions.length > 0) {
71245
+ stack.conditions.forEach(condition => {
71246
+ if (condition.name === 'by_value') {
71247
+ condition.args = [[...conditionArgsChange]];
71248
+ }
71249
+ });
71250
+ }
71251
+ return stack;
71252
+ }));
71253
+ }
71118
71254
  const conditionsByValue = conditions.filter(condition => condition.name === _constants2.CONDITION_BY_VALUE);
71119
71255
  const conditionsWithoutByValue = conditions.filter(condition => condition.name !== _constants2.CONDITION_BY_VALUE);
71120
71256
  if (conditionsByValue.length >= 2 || conditionsWithoutByValue.length >= 3) {
@@ -74558,13 +74694,6 @@ class ConditionCollection {
74558
74694
  * @type {LinkedPhysicalIndexToValueMap}
74559
74695
  */
74560
74696
  (0, _defineProperty2.default)(this, "filteringStates", new _translations.LinkedPhysicalIndexToValueMap());
74561
- /**
74562
- * Stores the previous state of the condition stack before the latest filter operation.
74563
- * This is used in the `beforeFilter` plugin to allow performing the undo operation.
74564
- *
74565
- * @type {null|Array}
74566
- */
74567
- (0, _defineProperty2.default)(this, "previousConditionStack", null);
74568
74697
  this.hot = hot;
74569
74698
  this.isMapRegistrable = isMapRegistrable;
74570
74699
  if (this.isMapRegistrable === true) {
@@ -74633,13 +74762,6 @@ class ConditionCollection {
74633
74762
  const localeForColumn = this.hot.getCellMeta(0, column).locale;
74634
74763
  const args = conditionDefinition.args.map(v => typeof v === 'string' ? v.toLocaleLowerCase(localeForColumn) : v);
74635
74764
  const name = conditionDefinition.name || conditionDefinition.command.key;
74636
-
74637
- // If there's no previous condition stack defined (which means the condition stack was not cleared after the
74638
- // previous filter operation or that there was no filter operation performed yet), store the current conditions as
74639
- // the previous condition stack.
74640
- if (this.previousConditionStack === null) {
74641
- this.setPreviousConditionStack(this.exportAllConditions());
74642
- }
74643
74765
  this.runLocalHooks('beforeAdd', column);
74644
74766
  const columnType = this.getOperation(column);
74645
74767
  if (columnType) {
@@ -74768,8 +74890,6 @@ class ConditionCollection {
74768
74890
  * @fires ConditionCollection#afterRemove
74769
74891
  */
74770
74892
  removeConditions(column) {
74771
- // Store the current conditions as the previous condition stack before it's cleared.
74772
- this.setPreviousConditionStack(this.exportAllConditions());
74773
74893
  this.runLocalHooks('beforeRemove', column);
74774
74894
  this.filteringStates.clearValue(column);
74775
74895
  this.runLocalHooks('afterRemove', column);
@@ -74803,16 +74923,6 @@ class ConditionCollection {
74803
74923
  return conditions.length > 0;
74804
74924
  }
74805
74925
 
74806
- /**
74807
- * Updates the `previousConditionStack` property with the provided stack.
74808
- * It is used to store the current conditions before they are modified, allowing for undo operations.
74809
- *
74810
- * @param {Array|null} previousConditionStack The stack of previous conditions.
74811
- */
74812
- setPreviousConditionStack(previousConditionStack) {
74813
- this.previousConditionStack = previousConditionStack;
74814
- }
74815
-
74816
74926
  /**
74817
74927
  * Destroy object.
74818
74928
  */
@@ -83959,14 +84069,17 @@ function _onModifyRowHeightByOverlayName(height, row, overlayType) {
83959
84069
  * @returns {number}
83960
84070
  */
83961
84071
  function _sumCellsHeights(row, rowspan) {
83962
- const stylesHandler = this.hot.view.getStylesHandler();
83963
- const defaultHeight = this.hot.view.getDefaultRowHeight();
83964
- const autoRowSizePlugin = this.hot.getPlugin('autoRowSize');
84072
+ const {
84073
+ view,
84074
+ rowIndexMapper
84075
+ } = this.hot;
84076
+ const stylesHandler = view.getStylesHandler();
84077
+ const defaultHeight = view.getDefaultRowHeight();
83965
84078
  let height = 0;
83966
84079
  for (let i = row; i < row + rowspan; i++) {
83967
- if (!this.hot.rowIndexMapper.isHidden(i)) {
83968
- var _autoRowSizePlugin$ge;
83969
- height += (_autoRowSizePlugin$ge = autoRowSizePlugin === null || autoRowSizePlugin === void 0 ? void 0 : autoRowSizePlugin.getRowHeight(i)) !== null && _autoRowSizePlugin$ge !== void 0 ? _autoRowSizePlugin$ge : defaultHeight;
84080
+ if (!rowIndexMapper.isHidden(i)) {
84081
+ var _this$hot$getRowHeigh;
84082
+ height += (_this$hot$getRowHeigh = this.hot.getRowHeight(i)) !== null && _this$hot$getRowHeigh !== void 0 ? _this$hot$getRowHeigh : defaultHeight;
83970
84083
  if (i === 0 && !stylesHandler.isClassicTheme()) {
83971
84084
  height += 1; // border-top-width
83972
84085
  }
@@ -86266,12 +86379,10 @@ var _sortService = __webpack_require__(526);
86266
86379
  var _utils = __webpack_require__(525);
86267
86380
  var _element = __webpack_require__(155);
86268
86381
  var _rootComparator = __webpack_require__(704);
86269
- var _utils2 = __webpack_require__(705);
86270
- var _domHelpers = __webpack_require__(706);
86382
+ var _domHelpers = __webpack_require__(705);
86271
86383
  var _shortcutContexts = __webpack_require__(352);
86272
86384
  const PLUGIN_KEY = exports.PLUGIN_KEY = 'multiColumnSorting';
86273
86385
  const PLUGIN_PRIORITY = exports.PLUGIN_PRIORITY = 170;
86274
- const CONFLICTED_PLUGIN_KEY = 'columnSorting';
86275
86386
  const SHORTCUTS_GROUP = PLUGIN_KEY;
86276
86387
  (0, _sortService.registerRootComparator)(PLUGIN_KEY, _rootComparator.rootComparator);
86277
86388
 
@@ -86351,17 +86462,13 @@ class MultiColumnSorting extends _columnSorting.ColumnSorting {
86351
86462
  * @returns {boolean}
86352
86463
  */
86353
86464
  isEnabled() {
86354
- return super.isEnabled();
86465
+ return !!this.hot.getSettings()[this.pluginKey];
86355
86466
  }
86356
86467
 
86357
86468
  /**
86358
86469
  * Enables the plugin functionality for this Handsontable instance.
86359
86470
  */
86360
86471
  enablePlugin() {
86361
- if (!this.enabled && this.hot.getSettings()[this.pluginKey] && this.hot.getSettings()[CONFLICTED_PLUGIN_KEY]) {
86362
- (0, _utils2.warnAboutPluginsConflict)();
86363
- this.hot.getPlugin(CONFLICTED_PLUGIN_KEY).disablePlugin();
86364
- }
86365
86472
  super.enablePlugin();
86366
86473
  }
86367
86474
 
@@ -86533,20 +86640,6 @@ class MultiColumnSorting extends _columnSorting.ColumnSorting {
86533
86640
  }
86534
86641
  }
86535
86642
 
86536
- /**
86537
- * Overwriting base plugin's `onUpdateSettings` method. Please keep in mind that `onAfterUpdateSettings` isn't called
86538
- * for `updateSettings` in specific situations.
86539
- *
86540
- * @private
86541
- * @param {object} newSettings New settings object.
86542
- */
86543
- onUpdateSettings(newSettings) {
86544
- if (this.hot.getSettings()[this.pluginKey] && this.hot.getSettings()[CONFLICTED_PLUGIN_KEY]) {
86545
- (0, _utils2.warnAboutPluginsConflict)();
86546
- }
86547
- super.onUpdateSettings(newSettings);
86548
- }
86549
-
86550
86643
  /**
86551
86644
  * Callback for the `onAfterOnCellMouseDown` hook.
86552
86645
  *
@@ -86620,25 +86713,6 @@ function rootComparator(sortingOrders, columnMetas) {
86620
86713
  "use strict";
86621
86714
 
86622
86715
 
86623
- exports.__esModule = true;
86624
- exports.warnAboutPluginsConflict = warnAboutPluginsConflict;
86625
- var _console = __webpack_require__(178);
86626
- var _templateLiteralTag = __webpack_require__(160);
86627
- /**
86628
- * Warn users about problems when using `columnSorting` and `multiColumnSorting` plugins simultaneously.
86629
- */
86630
- function warnAboutPluginsConflict() {
86631
- (0, _console.warn)((0, _templateLiteralTag.toSingleLine)`Plugins \`columnSorting\` and \`multiColumnSorting\` should not be enabled simultaneously.
86632
- Only \`multiColumnSorting\` will work. The \`columnSorting\` plugin will be disabled.`);
86633
- }
86634
-
86635
- /***/ }),
86636
- /* 706 */
86637
- /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
86638
-
86639
- "use strict";
86640
-
86641
-
86642
86716
  exports.__esModule = true;
86643
86717
  exports.getClassesToAdd = getClassesToAdd;
86644
86718
  exports.getClassesToRemove = getClassesToRemove;
@@ -86679,20 +86753,20 @@ function getClassesToRemove(htmlElement) {
86679
86753
  }
86680
86754
 
86681
86755
  /***/ }),
86682
- /* 707 */
86756
+ /* 706 */
86683
86757
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
86684
86758
 
86685
86759
  "use strict";
86686
86760
 
86687
86761
 
86688
86762
  exports.__esModule = true;
86689
- var _multipleSelectionHandles = __webpack_require__(708);
86763
+ var _multipleSelectionHandles = __webpack_require__(707);
86690
86764
  exports.PLUGIN_KEY = _multipleSelectionHandles.PLUGIN_KEY;
86691
86765
  exports.PLUGIN_PRIORITY = _multipleSelectionHandles.PLUGIN_PRIORITY;
86692
86766
  exports.MultipleSelectionHandles = _multipleSelectionHandles.MultipleSelectionHandles;
86693
86767
 
86694
86768
  /***/ }),
86695
- /* 708 */
86769
+ /* 707 */
86696
86770
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
86697
86771
 
86698
86772
  "use strict";
@@ -87031,20 +87105,20 @@ class MultipleSelectionHandles extends _base.BasePlugin {
87031
87105
  exports.MultipleSelectionHandles = MultipleSelectionHandles;
87032
87106
 
87033
87107
  /***/ }),
87034
- /* 709 */
87108
+ /* 708 */
87035
87109
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
87036
87110
 
87037
87111
  "use strict";
87038
87112
 
87039
87113
 
87040
87114
  exports.__esModule = true;
87041
- var _nestedHeaders = __webpack_require__(710);
87115
+ var _nestedHeaders = __webpack_require__(709);
87042
87116
  exports.PLUGIN_KEY = _nestedHeaders.PLUGIN_KEY;
87043
87117
  exports.PLUGIN_PRIORITY = _nestedHeaders.PLUGIN_PRIORITY;
87044
87118
  exports.NestedHeaders = _nestedHeaders.NestedHeaders;
87045
87119
 
87046
87120
  /***/ }),
87047
- /* 710 */
87121
+ /* 709 */
87048
87122
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
87049
87123
 
87050
87124
  "use strict";
@@ -87064,8 +87138,8 @@ var _event = __webpack_require__(175);
87064
87138
  var _console = __webpack_require__(178);
87065
87139
  var _selection = __webpack_require__(318);
87066
87140
  var _base = __webpack_require__(507);
87067
- var _stateManager2 = _interopRequireDefault(__webpack_require__(711));
87068
- var _ghostTable = _interopRequireDefault(__webpack_require__(724));
87141
+ var _stateManager2 = _interopRequireDefault(__webpack_require__(710));
87142
+ var _ghostTable = _interopRequireDefault(__webpack_require__(723));
87069
87143
  function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
87070
87144
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
87071
87145
  function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
@@ -87950,9 +88024,11 @@ function _onBeforeSelectColumns(from, to, highlight) {
87950
88024
  * @param {Array} renderersArray Array of renderers.
87951
88025
  */
87952
88026
  function _onAfterGetColumnHeaderRenderers(renderersArray) {
87953
- renderersArray.length = 0;
87954
- for (let headerLayer = 0; headerLayer < _classPrivateFieldGet(_stateManager, this).getLayersCount(); headerLayer++) {
87955
- renderersArray.push(this.headerRendererFactory(headerLayer));
88027
+ if (_classPrivateFieldGet(_stateManager, this).getLayersCount() > 0) {
88028
+ renderersArray.length = 0;
88029
+ for (let headerLayer = 0; headerLayer < _classPrivateFieldGet(_stateManager, this).getLayersCount(); headerLayer++) {
88030
+ renderersArray.push(this.headerRendererFactory(headerLayer));
88031
+ }
87956
88032
  }
87957
88033
  }
87958
88034
  /**
@@ -88051,7 +88127,7 @@ function _onAfterLoadData(sourceData, initialLoad) {
88051
88127
  }
88052
88128
 
88053
88129
  /***/ }),
88054
- /* 711 */
88130
+ /* 710 */
88055
88131
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
88056
88132
 
88057
88133
  "use strict";
@@ -88061,13 +88137,14 @@ var _interopRequireDefault = __webpack_require__(1);
88061
88137
  exports.__esModule = true;
88062
88138
  __webpack_require__(5);
88063
88139
  __webpack_require__(87);
88140
+ __webpack_require__(115);
88064
88141
  __webpack_require__(142);
88065
88142
  var _array = __webpack_require__(161);
88066
- var _sourceSettings2 = _interopRequireDefault(__webpack_require__(712));
88067
- var _headersTree2 = _interopRequireDefault(__webpack_require__(715));
88068
- var _nodeModifiers = __webpack_require__(717);
88069
- var _matrixGenerator = __webpack_require__(723);
88070
- var _tree = __webpack_require__(716);
88143
+ var _sourceSettings2 = _interopRequireDefault(__webpack_require__(711));
88144
+ var _headersTree2 = _interopRequireDefault(__webpack_require__(714));
88145
+ var _nodeModifiers = __webpack_require__(716);
88146
+ var _matrixGenerator = __webpack_require__(722);
88147
+ var _tree = __webpack_require__(715);
88071
88148
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
88072
88149
  function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
88073
88150
  function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
@@ -88542,7 +88619,7 @@ class StateManager {
88542
88619
  exports["default"] = StateManager;
88543
88620
 
88544
88621
  /***/ }),
88545
- /* 712 */
88622
+ /* 711 */
88546
88623
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
88547
88624
 
88548
88625
  "use strict";
@@ -88553,7 +88630,7 @@ __webpack_require__(5);
88553
88630
  __webpack_require__(87);
88554
88631
  var _object = __webpack_require__(165);
88555
88632
  var _array = __webpack_require__(161);
88556
- var _settingsNormalizer = __webpack_require__(713);
88633
+ var _settingsNormalizer = __webpack_require__(712);
88557
88634
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
88558
88635
  function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
88559
88636
  function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
@@ -88764,7 +88841,7 @@ class SourceSettings {
88764
88841
  exports["default"] = SourceSettings;
88765
88842
 
88766
88843
  /***/ }),
88767
- /* 713 */
88844
+ /* 712 */
88768
88845
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
88769
88846
 
88770
88847
  "use strict";
@@ -88776,7 +88853,7 @@ __webpack_require__(87);
88776
88853
  var _array = __webpack_require__(161);
88777
88854
  var _object = __webpack_require__(165);
88778
88855
  var _mixed = __webpack_require__(158);
88779
- var _utils = __webpack_require__(714);
88856
+ var _utils = __webpack_require__(713);
88780
88857
  /* eslint-disable jsdoc/require-description-complete-sentence */
88781
88858
 
88782
88859
  /**
@@ -88878,7 +88955,7 @@ function normalizeSettings(sourceSettings) {
88878
88955
  }
88879
88956
 
88880
88957
  /***/ }),
88881
- /* 714 */
88958
+ /* 713 */
88882
88959
  /***/ ((__unused_webpack_module, exports) => {
88883
88960
 
88884
88961
  "use strict";
@@ -88955,7 +89032,7 @@ function createPlaceholderHeaderSettings() {
88955
89032
  }
88956
89033
 
88957
89034
  /***/ }),
88958
- /* 715 */
89035
+ /* 714 */
88959
89036
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
88960
89037
 
88961
89038
  "use strict";
@@ -88965,7 +89042,7 @@ var _interopRequireDefault = __webpack_require__(1);
88965
89042
  exports.__esModule = true;
88966
89043
  __webpack_require__(5);
88967
89044
  var _array = __webpack_require__(161);
88968
- var _tree = _interopRequireDefault(__webpack_require__(716));
89045
+ var _tree = _interopRequireDefault(__webpack_require__(715));
88969
89046
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
88970
89047
  function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
88971
89048
  function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
@@ -89193,7 +89270,7 @@ class HeadersTree {
89193
89270
  exports["default"] = HeadersTree;
89194
89271
 
89195
89272
  /***/ }),
89196
- /* 716 */
89273
+ /* 715 */
89197
89274
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
89198
89275
 
89199
89276
  "use strict";
@@ -89412,7 +89489,7 @@ class TreeNode {
89412
89489
  exports["default"] = TreeNode;
89413
89490
 
89414
89491
  /***/ }),
89415
- /* 717 */
89492
+ /* 716 */
89416
89493
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
89417
89494
 
89418
89495
  "use strict";
@@ -89421,10 +89498,10 @@ exports["default"] = TreeNode;
89421
89498
  exports.__esModule = true;
89422
89499
  exports.triggerNodeModification = triggerNodeModification;
89423
89500
  __webpack_require__(5);
89424
- var _collapse = __webpack_require__(718);
89425
- var _expand = __webpack_require__(719);
89426
- var _hideColumn = __webpack_require__(721);
89427
- var _showColumn = __webpack_require__(722);
89501
+ var _collapse = __webpack_require__(717);
89502
+ var _expand = __webpack_require__(718);
89503
+ var _hideColumn = __webpack_require__(720);
89504
+ var _showColumn = __webpack_require__(721);
89428
89505
  /**
89429
89506
  * The NodeModifiers module is responsible for the modification of a tree structure
89430
89507
  * in a way to achieve new column headers state.
@@ -89454,7 +89531,7 @@ function triggerNodeModification(actionName, nodeToProcess, gridColumnIndex) {
89454
89531
  }
89455
89532
 
89456
89533
  /***/ }),
89457
- /* 718 */
89534
+ /* 717 */
89458
89535
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
89459
89536
 
89460
89537
  "use strict";
@@ -89470,8 +89547,8 @@ __webpack_require__(109);
89470
89547
  __webpack_require__(111);
89471
89548
  __webpack_require__(113);
89472
89549
  var _array = __webpack_require__(161);
89473
- var _expand = __webpack_require__(719);
89474
- var _tree = __webpack_require__(720);
89550
+ var _expand = __webpack_require__(718);
89551
+ var _tree = __webpack_require__(719);
89475
89552
  /**
89476
89553
  * Collapsing a node is a process where the processing node is collapsed
89477
89554
  * to the colspan width of the first child. All node children, except the
@@ -89564,7 +89641,7 @@ function collapseNode(nodeToProcess) {
89564
89641
  }
89565
89642
 
89566
89643
  /***/ }),
89567
- /* 719 */
89644
+ /* 718 */
89568
89645
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
89569
89646
 
89570
89647
  "use strict";
@@ -89580,8 +89657,8 @@ __webpack_require__(109);
89580
89657
  __webpack_require__(111);
89581
89658
  __webpack_require__(113);
89582
89659
  var _array = __webpack_require__(161);
89583
- var _collapse = __webpack_require__(718);
89584
- var _tree = __webpack_require__(720);
89660
+ var _collapse = __webpack_require__(717);
89661
+ var _tree = __webpack_require__(719);
89585
89662
  /**
89586
89663
  * Expanding a node is a process where the processing node is expanded to
89587
89664
  * its original colspan width. To restore an original state of all node
@@ -89669,7 +89746,7 @@ function expandNode(nodeToProcess) {
89669
89746
  }
89670
89747
 
89671
89748
  /***/ }),
89672
- /* 720 */
89749
+ /* 719 */
89673
89750
  /***/ ((__unused_webpack_module, exports) => {
89674
89751
 
89675
89752
  "use strict";
@@ -89740,7 +89817,7 @@ function isNodeReflectsFirstChildColspan(node) {
89740
89817
  }
89741
89818
 
89742
89819
  /***/ }),
89743
- /* 721 */
89820
+ /* 720 */
89744
89821
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
89745
89822
 
89746
89823
  "use strict";
@@ -89803,7 +89880,7 @@ the last node, the hide column modification can be applied.`);
89803
89880
  }
89804
89881
 
89805
89882
  /***/ }),
89806
- /* 722 */
89883
+ /* 721 */
89807
89884
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
89808
89885
 
89809
89886
  "use strict";
@@ -89864,7 +89941,7 @@ the last node, the show column modification can be applied.`);
89864
89941
  }
89865
89942
 
89866
89943
  /***/ }),
89867
- /* 723 */
89944
+ /* 722 */
89868
89945
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
89869
89946
 
89870
89947
  "use strict";
@@ -89874,7 +89951,7 @@ exports.__esModule = true;
89874
89951
  exports.generateMatrix = generateMatrix;
89875
89952
  __webpack_require__(87);
89876
89953
  var _array = __webpack_require__(161);
89877
- var _utils = __webpack_require__(714);
89954
+ var _utils = __webpack_require__(713);
89878
89955
  /* eslint-disable jsdoc/require-description-complete-sentence */
89879
89956
 
89880
89957
  /**
@@ -89970,7 +90047,7 @@ function createNestedArrayIfNecessary(array, index) {
89970
90047
  }
89971
90048
 
89972
90049
  /***/ }),
89973
- /* 724 */
90050
+ /* 723 */
89974
90051
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
89975
90052
 
89976
90053
  "use strict";
@@ -90126,20 +90203,20 @@ class GhostTable {
90126
90203
  var _default = exports["default"] = GhostTable;
90127
90204
 
90128
90205
  /***/ }),
90129
- /* 725 */
90206
+ /* 724 */
90130
90207
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
90131
90208
 
90132
90209
  "use strict";
90133
90210
 
90134
90211
 
90135
90212
  exports.__esModule = true;
90136
- var _nestedRows = __webpack_require__(726);
90213
+ var _nestedRows = __webpack_require__(725);
90137
90214
  exports.PLUGIN_KEY = _nestedRows.PLUGIN_KEY;
90138
90215
  exports.PLUGIN_PRIORITY = _nestedRows.PLUGIN_PRIORITY;
90139
90216
  exports.NestedRows = _nestedRows.NestedRows;
90140
90217
 
90141
90218
  /***/ }),
90142
- /* 726 */
90219
+ /* 725 */
90143
90220
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
90144
90221
 
90145
90222
  "use strict";
@@ -90161,15 +90238,15 @@ __webpack_require__(133);
90161
90238
  __webpack_require__(196);
90162
90239
  var _defineProperty2 = _interopRequireDefault(__webpack_require__(170));
90163
90240
  var _base = __webpack_require__(507);
90164
- var _dataManager = _interopRequireDefault(__webpack_require__(727));
90165
- var _collapsing = _interopRequireDefault(__webpack_require__(728));
90166
- var _headers = _interopRequireDefault(__webpack_require__(730));
90167
- var _contextMenu = _interopRequireDefault(__webpack_require__(731));
90241
+ var _dataManager = _interopRequireDefault(__webpack_require__(726));
90242
+ var _collapsing = _interopRequireDefault(__webpack_require__(727));
90243
+ var _headers = _interopRequireDefault(__webpack_require__(729));
90244
+ var _contextMenu = _interopRequireDefault(__webpack_require__(730));
90168
90245
  var _console = __webpack_require__(178);
90169
90246
  var _data = __webpack_require__(288);
90170
90247
  var _translations = __webpack_require__(291);
90171
90248
  var _shortcutContexts = __webpack_require__(352);
90172
- var _rowMoveController = _interopRequireDefault(__webpack_require__(732));
90249
+ var _rowMoveController = _interopRequireDefault(__webpack_require__(731));
90173
90250
  function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
90174
90251
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
90175
90252
  function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
@@ -90701,7 +90778,7 @@ function _onBeforeLoadData(data) {
90701
90778
  }
90702
90779
 
90703
90780
  /***/ }),
90704
- /* 727 */
90781
+ /* 726 */
90705
90782
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
90706
90783
 
90707
90784
  "use strict";
@@ -91417,7 +91494,7 @@ class DataManager {
91417
91494
  var _default = exports["default"] = DataManager;
91418
91495
 
91419
91496
  /***/ }),
91420
- /* 728 */
91497
+ /* 727 */
91421
91498
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
91422
91499
 
91423
91500
  "use strict";
@@ -91430,8 +91507,8 @@ var _event = __webpack_require__(175);
91430
91507
  var _array = __webpack_require__(161);
91431
91508
  var _number = __webpack_require__(200);
91432
91509
  var _element = __webpack_require__(155);
91433
- var _base = _interopRequireDefault(__webpack_require__(729));
91434
- var _headers = _interopRequireDefault(__webpack_require__(730));
91510
+ var _base = _interopRequireDefault(__webpack_require__(728));
91511
+ var _headers = _interopRequireDefault(__webpack_require__(729));
91435
91512
  /**
91436
91513
  * Class responsible for the UI for collapsing and expanding groups.
91437
91514
  *
@@ -91892,7 +91969,7 @@ class CollapsingUI extends _base.default {
91892
91969
  var _default = exports["default"] = CollapsingUI;
91893
91970
 
91894
91971
  /***/ }),
91895
- /* 729 */
91972
+ /* 728 */
91896
91973
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
91897
91974
 
91898
91975
  "use strict";
@@ -91926,7 +92003,7 @@ class BaseUI {
91926
92003
  var _default = exports["default"] = BaseUI;
91927
92004
 
91928
92005
  /***/ }),
91929
- /* 730 */
92006
+ /* 729 */
91930
92007
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
91931
92008
 
91932
92009
  "use strict";
@@ -91937,7 +92014,7 @@ exports.__esModule = true;
91937
92014
  var _array = __webpack_require__(161);
91938
92015
  var _number = __webpack_require__(200);
91939
92016
  var _element = __webpack_require__(155);
91940
- var _base = _interopRequireDefault(__webpack_require__(729));
92017
+ var _base = _interopRequireDefault(__webpack_require__(728));
91941
92018
  var _a11y = __webpack_require__(162);
91942
92019
  /**
91943
92020
  * Class responsible for the UI in the Nested Rows' row headers.
@@ -92070,7 +92147,7 @@ class HeadersUI extends _base.default {
92070
92147
  var _default = exports["default"] = HeadersUI;
92071
92148
 
92072
92149
  /***/ }),
92073
- /* 731 */
92150
+ /* 730 */
92074
92151
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
92075
92152
 
92076
92153
  "use strict";
@@ -92083,7 +92160,7 @@ var _defineProperty2 = _interopRequireDefault(__webpack_require__(170));
92083
92160
  var _number = __webpack_require__(200);
92084
92161
  var _array = __webpack_require__(161);
92085
92162
  var C = _interopRequireWildcard(__webpack_require__(317));
92086
- var _base = _interopRequireDefault(__webpack_require__(729));
92163
+ var _base = _interopRequireDefault(__webpack_require__(728));
92087
92164
  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); }
92088
92165
  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; }
92089
92166
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
@@ -92189,7 +92266,7 @@ class ContextMenuUI extends _base.default {
92189
92266
  var _default = exports["default"] = ContextMenuUI;
92190
92267
 
92191
92268
  /***/ }),
92192
- /* 732 */
92269
+ /* 731 */
92193
92270
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
92194
92271
 
92195
92272
  "use strict";
@@ -92478,20 +92555,20 @@ class RowMoveController {
92478
92555
  exports["default"] = RowMoveController;
92479
92556
 
92480
92557
  /***/ }),
92481
- /* 733 */
92558
+ /* 732 */
92482
92559
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
92483
92560
 
92484
92561
  "use strict";
92485
92562
 
92486
92563
 
92487
92564
  exports.__esModule = true;
92488
- var _persistentState = __webpack_require__(734);
92565
+ var _persistentState = __webpack_require__(733);
92489
92566
  exports.PLUGIN_KEY = _persistentState.PLUGIN_KEY;
92490
92567
  exports.PLUGIN_PRIORITY = _persistentState.PLUGIN_PRIORITY;
92491
92568
  exports.PersistentState = _persistentState.PersistentState;
92492
92569
 
92493
92570
  /***/ }),
92494
- /* 734 */
92571
+ /* 733 */
92495
92572
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
92496
92573
 
92497
92574
  "use strict";
@@ -92501,7 +92578,7 @@ var _interopRequireDefault = __webpack_require__(1);
92501
92578
  exports.__esModule = true;
92502
92579
  var _defineProperty2 = _interopRequireDefault(__webpack_require__(170));
92503
92580
  var _base = __webpack_require__(507);
92504
- var _storage = _interopRequireDefault(__webpack_require__(735));
92581
+ var _storage = _interopRequireDefault(__webpack_require__(734));
92505
92582
  var _hooks = __webpack_require__(177);
92506
92583
  _hooks.Hooks.getSingleton().register('persistentStateSave');
92507
92584
  _hooks.Hooks.getSingleton().register('persistentStateLoad');
@@ -92642,7 +92719,7 @@ class PersistentState extends _base.BasePlugin {
92642
92719
  exports.PersistentState = PersistentState;
92643
92720
 
92644
92721
  /***/ }),
92645
- /* 735 */
92722
+ /* 734 */
92646
92723
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
92647
92724
 
92648
92725
  "use strict";
@@ -92766,20 +92843,20 @@ class Storage {
92766
92843
  var _default = exports["default"] = Storage;
92767
92844
 
92768
92845
  /***/ }),
92769
- /* 736 */
92846
+ /* 735 */
92770
92847
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
92771
92848
 
92772
92849
  "use strict";
92773
92850
 
92774
92851
 
92775
92852
  exports.__esModule = true;
92776
- var _search = __webpack_require__(737);
92853
+ var _search = __webpack_require__(736);
92777
92854
  exports.PLUGIN_KEY = _search.PLUGIN_KEY;
92778
92855
  exports.PLUGIN_PRIORITY = _search.PLUGIN_PRIORITY;
92779
92856
  exports.Search = _search.Search;
92780
92857
 
92781
92858
  /***/ }),
92782
- /* 737 */
92859
+ /* 736 */
92783
92860
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
92784
92861
 
92785
92862
  "use strict";
@@ -93087,20 +93164,20 @@ function _onBeforeRenderer(TD, row, col, prop, value, cellProperties) {
93087
93164
  }
93088
93165
 
93089
93166
  /***/ }),
93090
- /* 738 */
93167
+ /* 737 */
93091
93168
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
93092
93169
 
93093
93170
  "use strict";
93094
93171
 
93095
93172
 
93096
93173
  exports.__esModule = true;
93097
- var _stretchColumns = __webpack_require__(739);
93174
+ var _stretchColumns = __webpack_require__(738);
93098
93175
  exports.PLUGIN_KEY = _stretchColumns.PLUGIN_KEY;
93099
93176
  exports.PLUGIN_PRIORITY = _stretchColumns.PLUGIN_PRIORITY;
93100
93177
  exports.StretchColumns = _stretchColumns.StretchColumns;
93101
93178
 
93102
93179
  /***/ }),
93103
- /* 739 */
93180
+ /* 738 */
93104
93181
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
93105
93182
 
93106
93183
  "use strict";
@@ -93111,7 +93188,7 @@ __webpack_require__(5);
93111
93188
  __webpack_require__(115);
93112
93189
  __webpack_require__(133);
93113
93190
  var _base = __webpack_require__(507);
93114
- var _calculator = __webpack_require__(740);
93191
+ var _calculator = __webpack_require__(739);
93115
93192
  function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
93116
93193
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
93117
93194
  function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
@@ -93328,7 +93405,7 @@ function _onBeforeRender(fullRender) {
93328
93405
  }
93329
93406
 
93330
93407
  /***/ }),
93331
- /* 740 */
93408
+ /* 739 */
93332
93409
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
93333
93410
 
93334
93411
  "use strict";
@@ -93340,8 +93417,8 @@ __webpack_require__(115);
93340
93417
  __webpack_require__(133);
93341
93418
  var _src = __webpack_require__(206);
93342
93419
  var _element = __webpack_require__(155);
93343
- var _all = __webpack_require__(741);
93344
- var _last = __webpack_require__(743);
93420
+ var _all = __webpack_require__(740);
93421
+ var _last = __webpack_require__(742);
93345
93422
  function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
93346
93423
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
93347
93424
  function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
@@ -93496,7 +93573,7 @@ function _overwriteColumnWidthFn(columnWidth, columnVisualIndex) {
93496
93573
  }
93497
93574
 
93498
93575
  /***/ }),
93499
- /* 741 */
93576
+ /* 740 */
93500
93577
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
93501
93578
 
93502
93579
  "use strict";
@@ -93508,7 +93585,7 @@ __webpack_require__(115);
93508
93585
  __webpack_require__(133);
93509
93586
  __webpack_require__(196);
93510
93587
  var _src = __webpack_require__(206);
93511
- var _base = __webpack_require__(742);
93588
+ var _base = __webpack_require__(741);
93512
93589
  /**
93513
93590
  * The strategy calculates the column widths by stretching all columns evenly.
93514
93591
  *
@@ -93573,7 +93650,7 @@ class StretchAllStrategy extends _base.StretchStrategy {
93573
93650
  exports.StretchAllStrategy = StretchAllStrategy;
93574
93651
 
93575
93652
  /***/ }),
93576
- /* 742 */
93653
+ /* 741 */
93577
93654
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
93578
93655
 
93579
93656
  "use strict";
@@ -93662,7 +93739,7 @@ class StretchStrategy {
93662
93739
  exports.StretchStrategy = StretchStrategy;
93663
93740
 
93664
93741
  /***/ }),
93665
- /* 743 */
93742
+ /* 742 */
93666
93743
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
93667
93744
 
93668
93745
  "use strict";
@@ -93672,7 +93749,7 @@ exports.__esModule = true;
93672
93749
  __webpack_require__(5);
93673
93750
  __webpack_require__(115);
93674
93751
  __webpack_require__(196);
93675
- var _base = __webpack_require__(742);
93752
+ var _base = __webpack_require__(741);
93676
93753
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
93677
93754
  function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
93678
93755
  function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
@@ -93747,20 +93824,20 @@ class StretchLastStrategy extends _base.StretchStrategy {
93747
93824
  exports.StretchLastStrategy = StretchLastStrategy;
93748
93825
 
93749
93826
  /***/ }),
93750
- /* 744 */
93827
+ /* 743 */
93751
93828
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
93752
93829
 
93753
93830
  "use strict";
93754
93831
 
93755
93832
 
93756
93833
  exports.__esModule = true;
93757
- var _touchScroll = __webpack_require__(745);
93834
+ var _touchScroll = __webpack_require__(744);
93758
93835
  exports.PLUGIN_KEY = _touchScroll.PLUGIN_KEY;
93759
93836
  exports.PLUGIN_PRIORITY = _touchScroll.PLUGIN_PRIORITY;
93760
93837
  exports.TouchScroll = _touchScroll.TouchScroll;
93761
93838
 
93762
93839
  /***/ }),
93763
- /* 745 */
93840
+ /* 744 */
93764
93841
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
93765
93842
 
93766
93843
  "use strict";
@@ -93949,20 +94026,20 @@ function _onAfterMomentumScroll() {
93949
94026
  }
93950
94027
 
93951
94028
  /***/ }),
93952
- /* 746 */
94029
+ /* 745 */
93953
94030
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
93954
94031
 
93955
94032
  "use strict";
93956
94033
 
93957
94034
 
93958
94035
  exports.__esModule = true;
93959
- var _trimRows = __webpack_require__(747);
94036
+ var _trimRows = __webpack_require__(746);
93960
94037
  exports.PLUGIN_KEY = _trimRows.PLUGIN_KEY;
93961
94038
  exports.PLUGIN_PRIORITY = _trimRows.PLUGIN_PRIORITY;
93962
94039
  exports.TrimRows = _trimRows.TrimRows;
93963
94040
 
93964
94041
  /***/ }),
93965
- /* 747 */
94042
+ /* 746 */
93966
94043
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
93967
94044
 
93968
94045
  "use strict";
@@ -94294,20 +94371,20 @@ function _onMapInit() {
94294
94371
  }
94295
94372
 
94296
94373
  /***/ }),
94297
- /* 748 */
94374
+ /* 747 */
94298
94375
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
94299
94376
 
94300
94377
  "use strict";
94301
94378
 
94302
94379
 
94303
94380
  exports.__esModule = true;
94304
- var _undoRedo = __webpack_require__(749);
94381
+ var _undoRedo = __webpack_require__(748);
94305
94382
  exports.PLUGIN_KEY = _undoRedo.PLUGIN_KEY;
94306
94383
  exports.PLUGIN_PRIORITY = _undoRedo.PLUGIN_PRIORITY;
94307
94384
  exports.UndoRedo = _undoRedo.UndoRedo;
94308
94385
 
94309
94386
  /***/ }),
94310
- /* 749 */
94387
+ /* 748 */
94311
94388
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
94312
94389
 
94313
94390
  "use strict";
@@ -94330,7 +94407,7 @@ var _hooks = __webpack_require__(177);
94330
94407
  var _object = __webpack_require__(165);
94331
94408
  var _templateLiteralTag = __webpack_require__(160);
94332
94409
  var _console = __webpack_require__(178);
94333
- var _actions = __webpack_require__(750);
94410
+ var _actions = __webpack_require__(749);
94334
94411
  function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
94335
94412
  function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
94336
94413
  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"); }
@@ -94700,7 +94777,7 @@ function _removeAPIFromCore() {
94700
94777
  }
94701
94778
 
94702
94779
  /***/ }),
94703
- /* 750 */
94780
+ /* 749 */
94704
94781
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
94705
94782
 
94706
94783
  "use strict";
@@ -94710,18 +94787,18 @@ exports.__esModule = true;
94710
94787
  exports.registerActions = registerActions;
94711
94788
  __webpack_require__(115);
94712
94789
  __webpack_require__(133);
94713
- var _cellAlignment = __webpack_require__(751);
94714
- var _columnMove = __webpack_require__(753);
94715
- var _columnSort = __webpack_require__(754);
94716
- var _createColumn = __webpack_require__(755);
94717
- var _createRow = __webpack_require__(756);
94718
- var _dataChange = __webpack_require__(757);
94719
- var _filters = __webpack_require__(758);
94720
- var _mergeCells = __webpack_require__(759);
94721
- var _removeColumn = __webpack_require__(760);
94722
- var _removeRow = __webpack_require__(763);
94723
- var _rowMove = __webpack_require__(764);
94724
- var _unmergeCells = __webpack_require__(765);
94790
+ var _cellAlignment = __webpack_require__(750);
94791
+ var _columnMove = __webpack_require__(752);
94792
+ var _columnSort = __webpack_require__(753);
94793
+ var _createColumn = __webpack_require__(754);
94794
+ var _createRow = __webpack_require__(755);
94795
+ var _dataChange = __webpack_require__(756);
94796
+ var _filters = __webpack_require__(757);
94797
+ var _mergeCells = __webpack_require__(758);
94798
+ var _removeColumn = __webpack_require__(759);
94799
+ var _removeRow = __webpack_require__(762);
94800
+ var _rowMove = __webpack_require__(763);
94801
+ var _unmergeCells = __webpack_require__(764);
94725
94802
  /**
94726
94803
  * Register all undo/redo actions.
94727
94804
  *
@@ -94733,7 +94810,7 @@ function registerActions(hot, undoRedoPlugin) {
94733
94810
  }
94734
94811
 
94735
94812
  /***/ }),
94736
- /* 751 */
94813
+ /* 750 */
94737
94814
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
94738
94815
 
94739
94816
  "use strict";
@@ -94742,7 +94819,7 @@ function registerActions(hot, undoRedoPlugin) {
94742
94819
  var _interopRequireDefault = __webpack_require__(1);
94743
94820
  exports.__esModule = true;
94744
94821
  var _defineProperty2 = _interopRequireDefault(__webpack_require__(170));
94745
- var _base = __webpack_require__(752);
94822
+ var _base = __webpack_require__(751);
94746
94823
  var _utils = __webpack_require__(547);
94747
94824
  var _array = __webpack_require__(161);
94748
94825
  /**
@@ -94759,7 +94836,7 @@ class CellAlignmentAction extends _base.BaseAction {
94759
94836
  type,
94760
94837
  alignment
94761
94838
  } = _ref;
94762
- super();
94839
+ super('cell_alignment');
94763
94840
  /**
94764
94841
  * @param {Array} stateBefore The previous state.
94765
94842
  */
@@ -94822,14 +94899,16 @@ class CellAlignmentAction extends _base.BaseAction {
94822
94899
  exports.CellAlignmentAction = CellAlignmentAction;
94823
94900
 
94824
94901
  /***/ }),
94825
- /* 752 */
94902
+ /* 751 */
94826
94903
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
94827
94904
 
94828
94905
  "use strict";
94829
94906
 
94830
94907
 
94908
+ var _interopRequireDefault = __webpack_require__(1);
94831
94909
  exports.__esModule = true;
94832
94910
  __webpack_require__(5);
94911
+ var _defineProperty2 = _interopRequireDefault(__webpack_require__(170));
94833
94912
  /**
94834
94913
  * An abstract class that defines the structure of an undo/redo action.
94835
94914
  *
@@ -94837,6 +94916,13 @@ __webpack_require__(5);
94837
94916
  * @private
94838
94917
  */
94839
94918
  class BaseAction {
94919
+ constructor(actionType) {
94920
+ /**
94921
+ * @param {string} actionType The action type.
94922
+ */
94923
+ (0, _defineProperty2.default)(this, "actionType", '');
94924
+ this.actionType = actionType;
94925
+ }
94840
94926
  undo() {
94841
94927
  throw new Error('Not implemented');
94842
94928
  }
@@ -94847,7 +94933,7 @@ class BaseAction {
94847
94933
  exports.BaseAction = BaseAction;
94848
94934
 
94849
94935
  /***/ }),
94850
- /* 753 */
94936
+ /* 752 */
94851
94937
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
94852
94938
 
94853
94939
  "use strict";
@@ -94858,7 +94944,7 @@ exports.__esModule = true;
94858
94944
  __webpack_require__(115);
94859
94945
  __webpack_require__(133);
94860
94946
  var _defineProperty2 = _interopRequireDefault(__webpack_require__(170));
94861
- var _base = __webpack_require__(752);
94947
+ var _base = __webpack_require__(751);
94862
94948
  var _moves = __webpack_require__(661);
94863
94949
  /**
94864
94950
  * Action that tracks column move changes.
@@ -94872,7 +94958,7 @@ class ColumnMoveAction extends _base.BaseAction {
94872
94958
  columns,
94873
94959
  finalIndex
94874
94960
  } = _ref;
94875
- super();
94961
+ super('col_move');
94876
94962
  /**
94877
94963
  * @param {number[]} columns An array with moved columns.
94878
94964
  */
@@ -94935,7 +95021,7 @@ class ColumnMoveAction extends _base.BaseAction {
94935
95021
  exports.ColumnMoveAction = ColumnMoveAction;
94936
95022
 
94937
95023
  /***/ }),
94938
- /* 754 */
95024
+ /* 753 */
94939
95025
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
94940
95026
 
94941
95027
  "use strict";
@@ -94944,7 +95030,7 @@ exports.ColumnMoveAction = ColumnMoveAction;
94944
95030
  var _interopRequireDefault = __webpack_require__(1);
94945
95031
  exports.__esModule = true;
94946
95032
  var _defineProperty2 = _interopRequireDefault(__webpack_require__(170));
94947
- var _base = __webpack_require__(752);
95033
+ var _base = __webpack_require__(751);
94948
95034
  /**
94949
95035
  * Action that tracks column sort changes.
94950
95036
  *
@@ -94957,7 +95043,7 @@ class ColumnSortAction extends _base.BaseAction {
94957
95043
  currentSortState,
94958
95044
  newSortState
94959
95045
  } = _ref;
94960
- super();
95046
+ super('col_sort');
94961
95047
  /**
94962
95048
  * @param {Array} currentSortState The current sort state.
94963
95049
  */
@@ -95012,7 +95098,7 @@ class ColumnSortAction extends _base.BaseAction {
95012
95098
  exports.ColumnSortAction = ColumnSortAction;
95013
95099
 
95014
95100
  /***/ }),
95015
- /* 755 */
95101
+ /* 754 */
95016
95102
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
95017
95103
 
95018
95104
  "use strict";
@@ -95021,7 +95107,7 @@ exports.ColumnSortAction = ColumnSortAction;
95021
95107
  var _interopRequireDefault = __webpack_require__(1);
95022
95108
  exports.__esModule = true;
95023
95109
  var _defineProperty2 = _interopRequireDefault(__webpack_require__(170));
95024
- var _base = __webpack_require__(752);
95110
+ var _base = __webpack_require__(751);
95025
95111
  /**
95026
95112
  * Action that tracks column creation.
95027
95113
  *
@@ -95034,7 +95120,7 @@ class CreateColumnAction extends _base.BaseAction {
95034
95120
  index,
95035
95121
  amount
95036
95122
  } = _ref;
95037
- super();
95123
+ super('insert_col');
95038
95124
  /**
95039
95125
  * @param {number} index The visual column index.
95040
95126
  */
@@ -95076,7 +95162,7 @@ class CreateColumnAction extends _base.BaseAction {
95076
95162
  exports.CreateColumnAction = CreateColumnAction;
95077
95163
 
95078
95164
  /***/ }),
95079
- /* 756 */
95165
+ /* 755 */
95080
95166
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
95081
95167
 
95082
95168
  "use strict";
@@ -95085,7 +95171,7 @@ exports.CreateColumnAction = CreateColumnAction;
95085
95171
  var _interopRequireDefault = __webpack_require__(1);
95086
95172
  exports.__esModule = true;
95087
95173
  var _defineProperty2 = _interopRequireDefault(__webpack_require__(170));
95088
- var _base = __webpack_require__(752);
95174
+ var _base = __webpack_require__(751);
95089
95175
  /**
95090
95176
  * Action that tracks row creation.
95091
95177
  *
@@ -95098,7 +95184,7 @@ class CreateRowAction extends _base.BaseAction {
95098
95184
  index,
95099
95185
  amount
95100
95186
  } = _ref;
95101
- super();
95187
+ super('insert_row');
95102
95188
  /**
95103
95189
  * @param {number} index The visual row index.
95104
95190
  */
@@ -95145,7 +95231,7 @@ class CreateRowAction extends _base.BaseAction {
95145
95231
  exports.CreateRowAction = CreateRowAction;
95146
95232
 
95147
95233
  /***/ }),
95148
- /* 757 */
95234
+ /* 756 */
95149
95235
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
95150
95236
 
95151
95237
  "use strict";
@@ -95159,7 +95245,7 @@ __webpack_require__(185);
95159
95245
  __webpack_require__(133);
95160
95246
  __webpack_require__(196);
95161
95247
  var _defineProperty2 = _interopRequireDefault(__webpack_require__(170));
95162
- var _base = __webpack_require__(752);
95248
+ var _base = __webpack_require__(751);
95163
95249
  var _object = __webpack_require__(165);
95164
95250
  /**
95165
95251
  * Action that tracks data changes.
@@ -95175,7 +95261,7 @@ class DataChangeAction extends _base.BaseAction {
95175
95261
  countCols,
95176
95262
  countRows
95177
95263
  } = _ref;
95178
- super();
95264
+ super('change');
95179
95265
  /**
95180
95266
  * @param {Array} changes 2D array containing information about each of the edited cells.
95181
95267
  */
@@ -95272,7 +95358,7 @@ class DataChangeAction extends _base.BaseAction {
95272
95358
  exports.DataChangeAction = DataChangeAction;
95273
95359
 
95274
95360
  /***/ }),
95275
- /* 758 */
95361
+ /* 757 */
95276
95362
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
95277
95363
 
95278
95364
  "use strict";
@@ -95283,7 +95369,7 @@ exports.__esModule = true;
95283
95369
  __webpack_require__(115);
95284
95370
  __webpack_require__(127);
95285
95371
  var _defineProperty2 = _interopRequireDefault(__webpack_require__(170));
95286
- var _base = __webpack_require__(752);
95372
+ var _base = __webpack_require__(751);
95287
95373
  /**
95288
95374
  * Action that tracks filter changes.
95289
95375
  *
@@ -95296,7 +95382,7 @@ class FiltersAction extends _base.BaseAction {
95296
95382
  conditionsStack,
95297
95383
  previousConditionsStack
95298
95384
  } = _ref;
95299
- super();
95385
+ super('filter');
95300
95386
  /**
95301
95387
  * @param {Array} previousConditionsStack An array of the previous filter conditions.
95302
95388
  */
@@ -95324,7 +95410,7 @@ class FiltersAction extends _base.BaseAction {
95324
95410
  undo(hot, undoneCallback) {
95325
95411
  const filters = hot.getPlugin('filters');
95326
95412
  hot.addHookOnce('afterViewRender', undoneCallback);
95327
- filters.conditionCollection.importAllConditions(this.previousConditionsStack);
95413
+ filters.importConditions(this.previousConditionsStack);
95328
95414
  filters.filter();
95329
95415
  }
95330
95416
 
@@ -95335,14 +95421,14 @@ class FiltersAction extends _base.BaseAction {
95335
95421
  redo(hot, redoneCallback) {
95336
95422
  const filters = hot.getPlugin('filters');
95337
95423
  hot.addHookOnce('afterViewRender', redoneCallback);
95338
- filters.conditionCollection.importAllConditions(this.conditionsStack);
95424
+ filters.importConditions(this.conditionsStack);
95339
95425
  filters.filter();
95340
95426
  }
95341
95427
  }
95342
95428
  exports.FiltersAction = FiltersAction;
95343
95429
 
95344
95430
  /***/ }),
95345
- /* 759 */
95431
+ /* 758 */
95346
95432
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
95347
95433
 
95348
95434
  "use strict";
@@ -95351,7 +95437,7 @@ exports.FiltersAction = FiltersAction;
95351
95437
  var _interopRequireDefault = __webpack_require__(1);
95352
95438
  exports.__esModule = true;
95353
95439
  var _defineProperty2 = _interopRequireDefault(__webpack_require__(170));
95354
- var _base = __webpack_require__(752);
95440
+ var _base = __webpack_require__(751);
95355
95441
  /**
95356
95442
  * Action that tracks changes in merged cells.
95357
95443
  *
@@ -95364,7 +95450,10 @@ class MergeCellsAction extends _base.BaseAction {
95364
95450
  data,
95365
95451
  cellRange
95366
95452
  } = _ref;
95367
- super();
95453
+ super('merge_cells');
95454
+ /**
95455
+ * @param {CellRange} cellRange The merged cell range.
95456
+ */
95368
95457
  (0, _defineProperty2.default)(this, "cellRange", void 0);
95369
95458
  this.cellRange = cellRange;
95370
95459
  this.data = data;
@@ -95409,7 +95498,7 @@ class MergeCellsAction extends _base.BaseAction {
95409
95498
  exports.MergeCellsAction = MergeCellsAction;
95410
95499
 
95411
95500
  /***/ }),
95412
- /* 760 */
95501
+ /* 759 */
95413
95502
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
95414
95503
 
95415
95504
  "use strict";
@@ -95421,8 +95510,8 @@ __webpack_require__(87);
95421
95510
  __webpack_require__(115);
95422
95511
  __webpack_require__(133);
95423
95512
  var _defineProperty2 = _interopRequireDefault(__webpack_require__(170));
95424
- var _base = __webpack_require__(752);
95425
- var _utils = __webpack_require__(761);
95513
+ var _base = __webpack_require__(751);
95514
+ var _utils = __webpack_require__(760);
95426
95515
  var _number = __webpack_require__(200);
95427
95516
  var _array = __webpack_require__(161);
95428
95517
  /**
@@ -95437,13 +95526,14 @@ class RemoveColumnAction extends _base.BaseAction {
95437
95526
  index,
95438
95527
  indexes,
95439
95528
  data,
95529
+ amount,
95440
95530
  headers,
95441
95531
  columnPositions,
95442
95532
  rowPositions,
95443
95533
  fixedColumnsStart,
95444
95534
  removedCellMetas
95445
95535
  } = _ref;
95446
- super();
95536
+ super('remove_col');
95447
95537
  /**
95448
95538
  * @param {number} index The visual column index.
95449
95539
  */
@@ -95483,7 +95573,7 @@ class RemoveColumnAction extends _base.BaseAction {
95483
95573
  this.index = index;
95484
95574
  this.indexes = indexes;
95485
95575
  this.data = data;
95486
- this.amount = this.data[0].length;
95576
+ this.amount = amount;
95487
95577
  this.headers = headers;
95488
95578
  this.columnPositions = columnPositions.slice(0);
95489
95579
  this.rowPositions = rowPositions.slice(0);
@@ -95521,6 +95611,7 @@ class RemoveColumnAction extends _base.BaseAction {
95521
95611
  index: columnIndex,
95522
95612
  indexes,
95523
95613
  data: removedData,
95614
+ amount,
95524
95615
  headers,
95525
95616
  columnPositions: columnsMap,
95526
95617
  rowPositions: rowsMap,
@@ -95589,7 +95680,7 @@ class RemoveColumnAction extends _base.BaseAction {
95589
95680
  exports.RemoveColumnAction = RemoveColumnAction;
95590
95681
 
95591
95682
  /***/ }),
95592
- /* 761 */
95683
+ /* 760 */
95593
95684
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
95594
95685
 
95595
95686
  "use strict";
@@ -95598,7 +95689,7 @@ exports.RemoveColumnAction = RemoveColumnAction;
95598
95689
  exports.__esModule = true;
95599
95690
  exports.getCellMetas = getCellMetas;
95600
95691
  __webpack_require__(87);
95601
- __webpack_require__(762);
95692
+ __webpack_require__(761);
95602
95693
  __webpack_require__(115);
95603
95694
  __webpack_require__(127);
95604
95695
  var _number = __webpack_require__(200);
@@ -95632,7 +95723,7 @@ function getCellMetas(hot, fromRow, toRow, fromColumn, toColumn) {
95632
95723
  }
95633
95724
 
95634
95725
  /***/ }),
95635
- /* 762 */
95726
+ /* 761 */
95636
95727
  /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
95637
95728
 
95638
95729
  "use strict";
@@ -95655,7 +95746,7 @@ $({ target: 'Object', stat: true }, {
95655
95746
 
95656
95747
 
95657
95748
  /***/ }),
95658
- /* 763 */
95749
+ /* 762 */
95659
95750
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
95660
95751
 
95661
95752
  "use strict";
@@ -95667,8 +95758,8 @@ __webpack_require__(87);
95667
95758
  __webpack_require__(115);
95668
95759
  __webpack_require__(133);
95669
95760
  var _defineProperty2 = _interopRequireDefault(__webpack_require__(170));
95670
- var _base = __webpack_require__(752);
95671
- var _utils = __webpack_require__(761);
95761
+ var _base = __webpack_require__(751);
95762
+ var _utils = __webpack_require__(760);
95672
95763
  var _object = __webpack_require__(165);
95673
95764
  /**
95674
95765
  * Action that tracks changes in row removal.
@@ -95686,7 +95777,7 @@ class RemoveRowAction extends _base.BaseAction {
95686
95777
  rowIndexesSequence,
95687
95778
  removedCellMetas
95688
95779
  } = _ref;
95689
- super();
95780
+ super('remove_row');
95690
95781
  /**
95691
95782
  * @param {number} index The visual row index.
95692
95783
  */
@@ -95778,7 +95869,7 @@ class RemoveRowAction extends _base.BaseAction {
95778
95869
  exports.RemoveRowAction = RemoveRowAction;
95779
95870
 
95780
95871
  /***/ }),
95781
- /* 764 */
95872
+ /* 763 */
95782
95873
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
95783
95874
 
95784
95875
  "use strict";
@@ -95789,7 +95880,7 @@ exports.__esModule = true;
95789
95880
  __webpack_require__(115);
95790
95881
  __webpack_require__(133);
95791
95882
  var _defineProperty2 = _interopRequireDefault(__webpack_require__(170));
95792
- var _base = __webpack_require__(752);
95883
+ var _base = __webpack_require__(751);
95793
95884
  var _moves = __webpack_require__(661);
95794
95885
  /**
95795
95886
  * Action that tracks row move changes.
@@ -95803,7 +95894,7 @@ class RowMoveAction extends _base.BaseAction {
95803
95894
  rows,
95804
95895
  finalIndex
95805
95896
  } = _ref;
95806
- super();
95897
+ super('row_move');
95807
95898
  /**
95808
95899
  * @param {number[]} rows An array with moved rows.
95809
95900
  */
@@ -95866,7 +95957,7 @@ class RowMoveAction extends _base.BaseAction {
95866
95957
  exports.RowMoveAction = RowMoveAction;
95867
95958
 
95868
95959
  /***/ }),
95869
- /* 765 */
95960
+ /* 764 */
95870
95961
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
95871
95962
 
95872
95963
  "use strict";
@@ -95875,7 +95966,7 @@ exports.RowMoveAction = RowMoveAction;
95875
95966
  var _interopRequireDefault = __webpack_require__(1);
95876
95967
  exports.__esModule = true;
95877
95968
  var _defineProperty2 = _interopRequireDefault(__webpack_require__(170));
95878
- var _base = __webpack_require__(752);
95969
+ var _base = __webpack_require__(751);
95879
95970
  /**
95880
95971
  * Action that tracks changes in merged cells.
95881
95972
  *
@@ -95887,7 +95978,10 @@ class UnmergeCellsAction extends _base.BaseAction {
95887
95978
  let {
95888
95979
  cellRange
95889
95980
  } = _ref;
95890
- super();
95981
+ super('unmerge_cells');
95982
+ /**
95983
+ * @param {CellRange} cellRange The merged cell range.
95984
+ */
95891
95985
  (0, _defineProperty2.default)(this, "cellRange", void 0);
95892
95986
  this.cellRange = cellRange;
95893
95987
  }
@@ -95926,7 +96020,7 @@ class UnmergeCellsAction extends _base.BaseAction {
95926
96020
  exports.UnmergeCellsAction = UnmergeCellsAction;
95927
96021
 
95928
96022
  /***/ }),
95929
- /* 766 */
96023
+ /* 765 */
95930
96024
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
95931
96025
 
95932
96026
  "use strict";
@@ -96035,7 +96129,7 @@ exports.CellRange = _base.CellRange;
96035
96129
  var _registry = __webpack_require__(430);
96036
96130
  var _eventManager = _interopRequireWildcard(__webpack_require__(188));
96037
96131
  var _translations = __webpack_require__(291);
96038
- var _jquery = _interopRequireDefault(__webpack_require__(766));
96132
+ var _jquery = _interopRequireDefault(__webpack_require__(765));
96039
96133
  var _ghostTable = _interopRequireDefault(__webpack_require__(509));
96040
96134
  var parseTableHelpers = _interopRequireWildcard(__webpack_require__(190));
96041
96135
  var arrayHelpers = _interopRequireWildcard(__webpack_require__(161));