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')
@@ -42681,7 +42681,7 @@ exports.CellRange = _base.CellRange;
42681
42681
  var _registry = __webpack_require__(764);
42682
42682
  var _eventManager = _interopRequireWildcard(__webpack_require__(522));
42683
42683
  var _translations = __webpack_require__(625);
42684
- var _jquery = _interopRequireDefault(__webpack_require__(1100));
42684
+ var _jquery = _interopRequireDefault(__webpack_require__(1099));
42685
42685
  var _ghostTable = _interopRequireDefault(__webpack_require__(843));
42686
42686
  var parseTableHelpers = _interopRequireWildcard(__webpack_require__(524));
42687
42687
  var arrayHelpers = _interopRequireWildcard(__webpack_require__(495));
@@ -42855,8 +42855,8 @@ Handsontable.hooks = _hooks.Hooks.getSingleton();
42855
42855
  Handsontable.CellCoords = _src.CellCoords;
42856
42856
  Handsontable.CellRange = _src.CellRange;
42857
42857
  Handsontable.packageName = 'handsontable';
42858
- Handsontable.buildDate = "19/02/2025 10:42:22";
42859
- Handsontable.version = "15.1.0-next-7652ed7-20250219";
42858
+ Handsontable.buildDate = "12/03/2025 10:12:02";
42859
+ Handsontable.version = "15.2.0-next-8670a33-20250312";
42860
42860
  Handsontable.languages = {
42861
42861
  dictionaryKeys: _registry.dictionaryKeys,
42862
42862
  getLanguageDictionary: _registry.getLanguageDictionary,
@@ -46435,6 +46435,7 @@ function Core(rootElement, userSettings) {
46435
46435
  * @returns {number}
46436
46436
  */
46437
46437
  this._getRowHeightFromSettings = function (row) {
46438
+ const defaultRowHeight = this.view.getDefaultRowHeight();
46438
46439
  let height = tableMeta.rowHeights;
46439
46440
  if (height !== undefined && height !== null) {
46440
46441
  switch (typeof height) {
@@ -46452,7 +46453,7 @@ function Core(rootElement, userSettings) {
46452
46453
  height = parseInt(height, 10);
46453
46454
  }
46454
46455
  }
46455
- return height;
46456
+ return height !== undefined && height !== null && height < defaultRowHeight ? defaultRowHeight : height;
46456
46457
  };
46457
46458
 
46458
46459
  /**
@@ -47567,42 +47568,6 @@ function Core(rootElement, userSettings) {
47567
47568
  this._getEditorManager = function () {
47568
47569
  return editorManager;
47569
47570
  };
47570
-
47571
- /**
47572
- * Check if currently it is RTL direction.
47573
- *
47574
- * @private
47575
- * @memberof Core#
47576
- * @function isRtl
47577
- * @returns {boolean} True if RTL.
47578
- */
47579
- this.isRtl = function () {
47580
- return instance.rootWindow.getComputedStyle(instance.rootElement).direction === 'rtl';
47581
- };
47582
-
47583
- /**
47584
- * Check if currently it is LTR direction.
47585
- *
47586
- * @private
47587
- * @memberof Core#
47588
- * @function isLtr
47589
- * @returns {boolean} True if LTR.
47590
- */
47591
- this.isLtr = function () {
47592
- return !instance.isRtl();
47593
- };
47594
-
47595
- /**
47596
- * Returns 1 for LTR; -1 for RTL. Useful for calculations.
47597
- *
47598
- * @private
47599
- * @memberof Core#
47600
- * @function getDirectionFactor
47601
- * @returns {number} Returns 1 for LTR; -1 for RTL.
47602
- */
47603
- this.getDirectionFactor = function () {
47604
- return instance.isLtr() ? 1 : -1;
47605
- };
47606
47571
  const shortcutManager = (0, _shortcuts.createShortcutManager)({
47607
47572
  handleEvent() {
47608
47573
  return instance.isListening();
@@ -48391,10 +48356,10 @@ var SHARED = '__core-js_shared__';
48391
48356
  var store = module.exports = globalThis[SHARED] || defineGlobalProperty(SHARED, {});
48392
48357
 
48393
48358
  (store.versions || (store.versions = [])).push({
48394
- version: '3.40.0',
48359
+ version: '3.41.0',
48395
48360
  mode: IS_PURE ? 'pure' : 'global',
48396
48361
  copyright: '© 2014-2025 Denis Pushkarev (zloirock.ru)',
48397
- license: 'https://github.com/zloirock/core-js/blob/v3.40.0/LICENSE',
48362
+ license: 'https://github.com/zloirock/core-js/blob/v3.41.0/LICENSE',
48398
48363
  source: 'https://github.com/zloirock/core-js'
48399
48364
  });
48400
48365
 
@@ -51446,6 +51411,7 @@ exports.innerHeight = innerHeight;
51446
51411
  exports.innerWidth = innerWidth;
51447
51412
  exports.isChildOf = isChildOf;
51448
51413
  exports.isDetached = isDetached;
51414
+ exports.isHTMLElement = isHTMLElement;
51449
51415
  exports.isInput = isInput;
51450
51416
  exports.isOutsideInput = isOutsideInput;
51451
51417
  exports.isThisHotChild = isThisHotChild;
@@ -52414,20 +52380,26 @@ function getScrollbarWidth() {
52414
52380
  /**
52415
52381
  * Checks if the provided element has a vertical scrollbar.
52416
52382
  *
52417
- * @param {HTMLElement} element An element to check.
52383
+ * @param {HTMLElement|Window} element An element to check.
52418
52384
  * @returns {boolean}
52419
52385
  */
52420
52386
  function hasVerticalScrollbar(element) {
52387
+ if (element instanceof Window) {
52388
+ return element.document.body.scrollHeight > element.innerHeight;
52389
+ }
52421
52390
  return element.offsetWidth !== element.clientWidth;
52422
52391
  }
52423
52392
 
52424
52393
  /**
52425
52394
  * Checks if the provided element has a vertical scrollbar.
52426
52395
  *
52427
- * @param {HTMLElement} element An element to check.
52396
+ * @param {HTMLElement|Window} element An element to check.
52428
52397
  * @returns {boolean}
52429
52398
  */
52430
52399
  function hasHorizontalScrollbar(element) {
52400
+ if (element instanceof Window) {
52401
+ return element.document.body.scrollWidth > element.innerWidth;
52402
+ }
52431
52403
  return element.offsetHeight !== element.clientHeight;
52432
52404
  }
52433
52405
 
@@ -52590,6 +52562,18 @@ function runWithSelectedContendEditableElement(element, callback) {
52590
52562
  removeContentEditableFromElementAndDeselect(element, invisibleSelection);
52591
52563
  }
52592
52564
 
52565
+ /**
52566
+ * Check if the element is HTMLElement.
52567
+ *
52568
+ * @param {*} element Element to check.
52569
+ * @returns {boolean} `true` if the element is HTMLElement.
52570
+ */
52571
+ function isHTMLElement(element) {
52572
+ var _element$ownerDocumen;
52573
+ const OwnElement = element === null || element === void 0 || (_element$ownerDocumen = element.ownerDocument) === null || _element$ownerDocumen === void 0 ? void 0 : _element$ownerDocumen.defaultView.Element;
52574
+ return !!(OwnElement && OwnElement !== null && element instanceof OwnElement);
52575
+ }
52576
+
52593
52577
  /***/ }),
52594
52578
  /* 352 */
52595
52579
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
@@ -54198,7 +54182,7 @@ const domMessages = {
54198
54182
  function _injectProductInfo(key, element) {
54199
54183
  const hasValidType = !isEmpty(key);
54200
54184
  const isNonCommercial = typeof key === 'string' && key.toLowerCase() === 'non-commercial-and-evaluation';
54201
- const hotVersion = "15.1.0-next-7652ed7-20250219";
54185
+ const hotVersion = "15.2.0-next-8670a33-20250312";
54202
54186
  let keyValidityDate;
54203
54187
  let consoleMessageState = 'invalid';
54204
54188
  let domMessageState = 'invalid';
@@ -54206,7 +54190,7 @@ function _injectProductInfo(key, element) {
54206
54190
  const schemaValidity = _checkKeySchema(key);
54207
54191
  if (hasValidType || isNonCommercial || schemaValidity) {
54208
54192
  if (schemaValidity) {
54209
- const releaseDate = (0, _moment.default)("20/02/2025", 'DD/MM/YYYY');
54193
+ const releaseDate = (0, _moment.default)("19/03/2025", 'DD/MM/YYYY');
54210
54194
  const releaseDays = Math.floor(releaseDate.toDate().getTime() / 8.64e7);
54211
54195
  const keyValidityDays = _extractTime(key);
54212
54196
  keyValidityDate = (0, _moment.default)((keyValidityDays + 1) * 8.64e7, 'x').format('MMMM DD, YYYY');
@@ -63192,7 +63176,7 @@ function isKey(keyCode, baseCode) {
63192
63176
 
63193
63177
  /***/ }),
63194
63178
  /* 509 */
63195
- /***/ ((__unused_webpack_module, exports) => {
63179
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
63196
63180
 
63197
63181
  "use strict";
63198
63182
 
@@ -63204,6 +63188,7 @@ exports.isRightClick = isRightClick;
63204
63188
  exports.isTouchEvent = isTouchEvent;
63205
63189
  exports.offsetRelativeTo = offsetRelativeTo;
63206
63190
  exports.stopImmediatePropagation = stopImmediatePropagation;
63191
+ var _element = __webpack_require__(351);
63207
63192
  /**
63208
63193
  * Prevent other listeners of the same event from being called.
63209
63194
  *
@@ -63267,7 +63252,7 @@ function offsetRelativeTo(event, untilElement) {
63267
63252
  y: event.offsetY
63268
63253
  };
63269
63254
  let element = event.target;
63270
- if (!(untilElement instanceof HTMLElement) || element !== untilElement && element.contains(untilElement)) {
63255
+ if (!(0, _element.isHTMLElement)(untilElement) || element !== untilElement && element.contains(untilElement)) {
63271
63256
  return offset;
63272
63257
  }
63273
63258
  while (element !== untilElement) {
@@ -67350,7 +67335,7 @@ class FocusManager {
67350
67335
  return;
67351
67336
  }
67352
67337
  let elementToBeFocused = _classPrivateFieldGet(_hot, this).runHooks('modifyFocusedElement', currentHighlightCoords.row, currentHighlightCoords.col, element);
67353
- if (!(elementToBeFocused instanceof HTMLElement)) {
67338
+ if (!(0, _element.isHTMLElement)(elementToBeFocused)) {
67354
67339
  elementToBeFocused = element;
67355
67340
  }
67356
67341
  if (elementToBeFocused && !((_classPrivateFieldGet4 = _classPrivateFieldGet(_hot, this).getActiveEditor()) !== null && _classPrivateFieldGet4 !== void 0 && _classPrivateFieldGet4.isOpened())) {
@@ -67377,6 +67362,8 @@ class FocusManager {
67377
67362
  let delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _classPrivateFieldGet(_refocusDelay, this);
67378
67363
  // Re-focus on the editor's `TEXTAREA` element (or a predefined element) if the `imeFastEdit` option is enabled.
67379
67364
  if (_classPrivateFieldGet(_hot, this).getSettings().imeFastEdit && !((_classPrivateFieldGet5 = _classPrivateFieldGet(_hot, this).getActiveEditor()) !== null && _classPrivateFieldGet5 !== void 0 && _classPrivateFieldGet5.isOpened())) {
67365
+ var _classPrivateFieldGet6, _classPrivateFieldGet7;
67366
+ (_classPrivateFieldGet6 = _classPrivateFieldGet(_hot, this).getActiveEditor()) === null || _classPrivateFieldGet6 === void 0 || (_classPrivateFieldGet7 = _classPrivateFieldGet6.refreshValue) === null || _classPrivateFieldGet7 === void 0 || _classPrivateFieldGet7.call(_classPrivateFieldGet6);
67380
67367
  if (!_classPrivateFieldGet(_debouncedSelect, this).has(delay)) {
67381
67368
  _classPrivateFieldGet(_debouncedSelect, this).set(delay, (0, _function.debounce)(() => {
67382
67369
  var _this$getRefocusEleme;
@@ -67389,8 +67376,8 @@ class FocusManager {
67389
67376
  }
67390
67377
  exports.FocusManager = FocusManager;
67391
67378
  function _getSelectedCell(callback) {
67392
- var _classPrivateFieldGet6;
67393
- const highlight = (_classPrivateFieldGet6 = _classPrivateFieldGet(_hot, this).getSelectedRangeLast()) === null || _classPrivateFieldGet6 === void 0 ? void 0 : _classPrivateFieldGet6.highlight;
67379
+ var _classPrivateFieldGet8;
67380
+ const highlight = (_classPrivateFieldGet8 = _classPrivateFieldGet(_hot, this).getSelectedRangeLast()) === null || _classPrivateFieldGet8 === void 0 ? void 0 : _classPrivateFieldGet8.highlight;
67394
67381
  if (!highlight || !_classPrivateFieldGet(_hot, this).selection.isCellVisible(highlight)) {
67395
67382
  callback(null);
67396
67383
  return;
@@ -68110,6 +68097,7 @@ function unifyPluginArguments(pluginName, pluginClass, priority) {
68110
68097
  exports.__esModule = true;
68111
68098
  exports.createPriorityMap = createPriorityMap;
68112
68099
  __webpack_require__(201);
68100
+ __webpack_require__(311);
68113
68101
  __webpack_require__(338);
68114
68102
  var _number = __webpack_require__(534);
68115
68103
  var _function = __webpack_require__(497);
@@ -68199,6 +68187,7 @@ __webpack_require__(303);
68199
68187
  __webpack_require__(305);
68200
68188
  __webpack_require__(307);
68201
68189
  __webpack_require__(309);
68190
+ __webpack_require__(311);
68202
68191
  __webpack_require__(338);
68203
68192
  /* eslint-disable jsdoc/require-description-complete-sentence */
68204
68193
  /**
@@ -70241,6 +70230,15 @@ class TableView {
70241
70230
  return this._wt.wtTable.getHeight();
70242
70231
  }
70243
70232
 
70233
+ /**
70234
+ * Gets the table's offset.
70235
+ *
70236
+ * @returns {{ left: number, top: number }}
70237
+ */
70238
+ getTableOffset() {
70239
+ return this._wt.wtViewport.getWorkspaceOffset();
70240
+ }
70241
+
70244
70242
  /**
70245
70243
  * Gets the row header width. If there are multiple row headers, the width of
70246
70244
  * the sum of all of them is returned.
@@ -74456,6 +74454,7 @@ class Table {
74456
74454
  holder = this.domBindings.rootDocument.createElement('div');
74457
74455
  holder.style.position = 'relative';
74458
74456
  holder.className = 'wtHolder';
74457
+ (0, _element.setAttribute)(holder, [(0, _a11y.A11Y_TABINDEX)(-1)]);
74459
74458
  if (parent) {
74460
74459
  // if TABLE is detached (e.g. in Jasmine test), it has no parentNode so we cannot attach holder to it
74461
74460
  parent.insertBefore(holder, hider);
@@ -74852,12 +74851,12 @@ class Table {
74852
74851
  row = totalRows - CONTAINER.childNodes.length + row;
74853
74852
  } else if (CONTAINER === this.THEAD) {
74854
74853
  row = this.rowFilter.visibleColHeadedRowToSourceRow(row);
74855
- } else {
74854
+ } else if (this.rowFilter) {
74856
74855
  row = this.rowFilter.renderedToSource(row);
74857
74856
  }
74858
74857
  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)) {
74859
74858
  col = this.columnFilter.offsettedTH(col);
74860
- } else {
74859
+ } else if (this.columnFilter) {
74861
74860
  col = this.columnFilter.visibleRowHeadedColumnToSourceColumn(col);
74862
74861
  }
74863
74862
  const hookResult = this.wtSettings.getSetting('onModifyGetCoordsElement', row, col);
@@ -76257,6 +76256,7 @@ exports.ViewDiffer = ViewDiffer;
76257
76256
  var _interopRequireDefault = __webpack_require__(197);
76258
76257
  exports.__esModule = true;
76259
76258
  __webpack_require__(576);
76259
+ __webpack_require__(311);
76260
76260
  __webpack_require__(338);
76261
76261
  var _defineProperty2 = _interopRequireDefault(__webpack_require__(504));
76262
76262
  /**
@@ -80775,7 +80775,7 @@ function _scanCellsRange(callback) {
80775
80775
  }
80776
80776
  } else {
80777
80777
  const cell = wtTable.getCell(_classPrivateFieldGet(_activeOverlaysWot, this).createCellCoords(topRow, startColumn));
80778
- if (!(cell instanceof HTMLElement)) {
80778
+ if (!(0, _element.isHTMLElement)(cell)) {
80779
80779
  return;
80780
80780
  }
80781
80781
  }
@@ -81002,8 +81002,14 @@ class Border {
81002
81002
  */
81003
81003
  createMultipleSelectorHandles() {
81004
81004
  const {
81005
- rootDocument
81005
+ rootDocument,
81006
+ stylesHandler
81006
81007
  } = this.wot;
81008
+ const cellMobileHandleSize = stylesHandler.getCSSVariableValue('cell-mobile-handle-size');
81009
+ const cellMobileHandleBorderRadius = stylesHandler.getCSSVariableValue('cell-mobile-handle-border-radius');
81010
+ const cellMobileHandleBackgroundColor = stylesHandler.getCSSVariableValue('cell-mobile-handle-background-color');
81011
+ const cellMobileHandleBorderWidth = stylesHandler.getCSSVariableValue('cell-mobile-handle-border-width');
81012
+ const cellMobileHandleBorderColor = stylesHandler.getCSSVariableValue('cell-mobile-handle-border-color');
81007
81013
  this.selectionHandles = {
81008
81014
  top: rootDocument.createElement('DIV'),
81009
81015
  topHitArea: rootDocument.createElement('DIV'),
@@ -81032,13 +81038,20 @@ class Border {
81032
81038
  this.selectionHandles.styles.bottomHitArea[key] = value;
81033
81039
  this.selectionHandles.styles.topHitArea[key] = value;
81034
81040
  });
81035
- const handleStyle = {
81041
+ const handleStyle = stylesHandler.isClassicTheme() ? {
81036
81042
  position: 'absolute',
81037
81043
  height: `${width}px`,
81038
81044
  width: `${width}px`,
81039
81045
  'border-radius': `${parseInt(width / 1.5, 10)}px`,
81040
81046
  background: '#F5F5FF',
81041
81047
  border: '1px solid #4285c8'
81048
+ } : {
81049
+ position: 'absolute',
81050
+ height: `${cellMobileHandleSize}px`,
81051
+ width: `${cellMobileHandleSize}px`,
81052
+ 'border-radius': `${cellMobileHandleBorderRadius}px`,
81053
+ background: `${cellMobileHandleBackgroundColor}`,
81054
+ border: `${cellMobileHandleBorderWidth}px solid ${cellMobileHandleBorderColor}`
81042
81055
  };
81043
81056
  (0, _object.objectEach)(handleStyle, (value, key) => {
81044
81057
  this.selectionHandles.styles.bottom[key] = value;
@@ -81163,7 +81176,7 @@ class Border {
81163
81176
  fromTD = wtTable.getCell(this.wot.createCellCoords(fromRow, fromColumn));
81164
81177
  } else {
81165
81178
  fromTD = wtTable.getCell(this.wot.createCellCoords(fromRow, fromColumn));
81166
- if (!(fromTD instanceof HTMLElement)) {
81179
+ if (!(0, _element.isHTMLElement)(fromTD)) {
81167
81180
  this.disappear();
81168
81181
  return;
81169
81182
  }
@@ -82576,6 +82589,7 @@ var _default = exports["default"] = MasterTable;
82576
82589
 
82577
82590
 
82578
82591
  exports.__esModule = true;
82592
+ __webpack_require__(311);
82579
82593
  __webpack_require__(338);
82580
82594
  var _element = __webpack_require__(351);
82581
82595
  var _object = __webpack_require__(499);
@@ -82698,7 +82712,20 @@ class Viewport {
82698
82712
  * @returns {boolean}
82699
82713
  */
82700
82714
  hasVerticalScroll() {
82701
- return this.wtTable.hider.offsetHeight > this.getWorkspaceHeight();
82715
+ if (this.isVerticallyScrollableByWindow()) {
82716
+ const documentElement = this.domBindings.rootDocument.documentElement;
82717
+ return documentElement.scrollHeight > documentElement.clientHeight;
82718
+ }
82719
+ const {
82720
+ holder,
82721
+ hider
82722
+ } = this.wtTable;
82723
+ const holderHeight = holder.clientHeight;
82724
+ const hiderOffsetHeight = hider.offsetHeight;
82725
+ if (holderHeight < hiderOffsetHeight) {
82726
+ return true;
82727
+ }
82728
+ return hiderOffsetHeight > this.getWorkspaceHeight();
82702
82729
  }
82703
82730
 
82704
82731
  /**
@@ -82707,7 +82734,20 @@ class Viewport {
82707
82734
  * @returns {boolean}
82708
82735
  */
82709
82736
  hasHorizontalScroll() {
82710
- return this.wtTable.hider.offsetWidth > this.getWorkspaceWidth();
82737
+ if (this.isVerticallyScrollableByWindow()) {
82738
+ const documentElement = this.domBindings.rootDocument.documentElement;
82739
+ return documentElement.scrollWidth > documentElement.clientWidth;
82740
+ }
82741
+ const {
82742
+ holder,
82743
+ hider
82744
+ } = this.wtTable;
82745
+ const holderWidth = holder.clientWidth;
82746
+ const hiderOffsetWidth = hider.offsetWidth;
82747
+ if (holderWidth < hiderOffsetWidth) {
82748
+ return true;
82749
+ }
82750
+ return hiderOffsetWidth > this.getWorkspaceWidth();
82711
82751
  }
82712
82752
 
82713
82753
  /**
@@ -82747,7 +82787,7 @@ class Viewport {
82747
82787
  * @returns {number}
82748
82788
  */
82749
82789
  getWorkspaceOffset() {
82750
- return (0, _element.offset)(this.wtTable.TABLE);
82790
+ return (0, _element.offset)(this.wtTable.holder);
82751
82791
  }
82752
82792
 
82753
82793
  /**
@@ -83726,8 +83766,8 @@ class DataSource {
83726
83766
  value = valueHolder.value;
83727
83767
  }
83728
83768
  }
83729
- if (!Number.isInteger(row)) {
83730
- // invalid row number
83769
+ if (['__proto__', 'constructor', 'prototype'].includes(row)) {
83770
+ // prevent prototype pollution
83731
83771
  return;
83732
83772
  }
83733
83773
  if (!Number.isInteger(column)) {
@@ -85214,6 +85254,7 @@ exports.IndexMap = IndexMap;
85214
85254
  exports.__esModule = true;
85215
85255
  exports.getListWithInsertedItems = getListWithInsertedItems;
85216
85256
  exports.getListWithRemovedItems = getListWithRemovedItems;
85257
+ __webpack_require__(311);
85217
85258
  __webpack_require__(338);
85218
85259
  var _function = __webpack_require__(497);
85219
85260
  var _array = __webpack_require__(495);
@@ -85258,6 +85299,7 @@ function getListWithRemovedItems(indexedValues, removedIndexes) {
85258
85299
 
85259
85300
  var _interopRequireDefault = __webpack_require__(197);
85260
85301
  exports.__esModule = true;
85302
+ __webpack_require__(311);
85261
85303
  __webpack_require__(338);
85262
85304
  var _defineProperty2 = _interopRequireDefault(__webpack_require__(504));
85263
85305
  var _indexMap = __webpack_require__(632);
@@ -89839,7 +89881,7 @@ class DataMap {
89839
89881
  this.metaManager = metaManager;
89840
89882
  this.tableMeta = metaManager.getTableMeta();
89841
89883
  this.dataSource = data;
89842
- this.duckSchema = this.createDuckSchema();
89884
+ this.refreshDuckSchema();
89843
89885
  this.createMap();
89844
89886
  }
89845
89887
 
@@ -90202,14 +90244,10 @@ class DataMap {
90202
90244
  // List of removed indexes might be changed in the `beforeRemoveRow` hook. There may be new values.
90203
90245
  const numberOfRemovedIndexes = removedPhysicalIndexes.length;
90204
90246
  this.filterData(rowIndex, numberOfRemovedIndexes, removedPhysicalIndexes);
90205
-
90206
- // TODO: Function `removeRow` should validate fully, probably above.
90207
90247
  if (rowIndex < this.hot.countRows()) {
90208
90248
  this.hot.rowIndexMapper.removeIndexes(removedPhysicalIndexes);
90209
- const customDefinedColumns = (0, _mixed.isDefined)(this.tableMeta.columns) || (0, _mixed.isDefined)(this.tableMeta.dataSchema);
90210
-
90211
- // All rows have been removed. There shouldn't be any columns.
90212
- if (this.hot.rowIndexMapper.getNotTrimmedIndexesLength() === 0 && customDefinedColumns === false) {
90249
+ const preserveColumns = (0, _mixed.isDefined)(this.tableMeta.columns) || (0, _mixed.isDefined)(this.tableMeta.dataSchema) || this.tableMeta.colHeaders;
90250
+ if (this.hot.rowIndexMapper.getNotTrimmedIndexesLength() === 0 && !preserveColumns) {
90213
90251
  this.hot.columnIndexMapper.setIndexesSequence([]);
90214
90252
  }
90215
90253
  }
@@ -90272,13 +90310,9 @@ class DataMap {
90272
90310
  }
90273
90311
  }
90274
90312
  }
90275
-
90276
- // TODO: Function `removeCol` should validate fully, probably above.
90277
90313
  if (columnIndex < this.hot.countCols()) {
90278
90314
  this.hot.columnIndexMapper.removeIndexes(removedPhysicalIndexes);
90279
-
90280
- // All columns have been removed. There shouldn't be any rows.
90281
- if (this.hot.columnIndexMapper.getNotTrimmedIndexesLength() === 0) {
90315
+ if (!this.tableMeta.rowHeaders && this.hot.columnIndexMapper.getNotTrimmedIndexesLength() === 0) {
90282
90316
  this.hot.rowIndexMapper.setIndexesSequence([]);
90283
90317
  }
90284
90318
  }
@@ -95282,8 +95316,8 @@ var _default = () => {
95282
95316
  /**
95283
95317
  * The `rowHeights` option sets rows' heights, in pixels.
95284
95318
  *
95285
- * 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).
95286
- * You can change it to equal or greater than the defautl value, by setting the `rowHeights` option to one of the following:
95319
+ * 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).
95320
+ * You can change it to equal or greater than the default value, by setting the `rowHeights` option to one of the following:
95287
95321
  *
95288
95322
  * | Setting | Description | Example |
95289
95323
  * | ----------- | --------------------------------------------------------------------------------------------------- | ------------------------------------------------------------ |
@@ -100613,6 +100647,7 @@ exports.createContext = createContext;
100613
100647
 
100614
100648
 
100615
100649
  exports.__esModule = true;
100650
+ __webpack_require__(311);
100616
100651
  __webpack_require__(338);
100617
100652
  // This file handles key-name discrepancies between browsers.
100618
100653
  // For the list of discrepancies, go to: https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values.
@@ -101754,18 +101789,9 @@ function textRenderer(hotInstance, TD, row, col, prop, value, cellProperties) {
101754
101789
  if (cellProperties.trimWhitespace) {
101755
101790
  escaped = escaped.trim();
101756
101791
  }
101757
- if (cellProperties.rendererTemplate) {
101758
- (0, _element.empty)(TD);
101759
- const TEMPLATE = hotInstance.rootDocument.createElement('TEMPLATE');
101760
- TEMPLATE.setAttribute('bind', '{{}}');
101761
- TEMPLATE.innerHTML = cellProperties.rendererTemplate;
101762
- HTMLTemplateElement.decorate(TEMPLATE);
101763
- TEMPLATE.model = hotInstance.getSourceDataAtRow(row);
101764
- TD.appendChild(TEMPLATE);
101765
- } else {
101766
- // this is faster than innerHTML. See: https://github.com/handsontable/handsontable/wiki/JavaScript-&-DOM-performance-tips
101767
- (0, _element.fastInnerText)(TD, escaped);
101768
- }
101792
+
101793
+ // this is faster than innerHTML. See: https://github.com/handsontable/handsontable/wiki/JavaScript-&-DOM-performance-tips
101794
+ (0, _element.fastInnerText)(TD, escaped);
101769
101795
  }
101770
101796
  textRenderer.RENDERER_TYPE = RENDERER_TYPE;
101771
101797
 
@@ -101994,6 +102020,7 @@ var _string = __webpack_require__(352);
101994
102020
  var _unicode = __webpack_require__(508);
101995
102021
  var _textRenderer = __webpack_require__(760);
101996
102022
  var _a11y = __webpack_require__(496);
102023
+ function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
101997
102024
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
101998
102025
  function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
101999
102026
  function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
@@ -102005,9 +102032,14 @@ const EDITOR_TYPE = exports.EDITOR_TYPE = 'autocomplete';
102005
102032
  * @class AutocompleteEditor
102006
102033
  */
102007
102034
  var _idPrefix = /*#__PURE__*/new WeakMap();
102035
+ var _AutocompleteEditor_brand = /*#__PURE__*/new WeakSet();
102008
102036
  class AutocompleteEditor extends _handsontableEditor.HandsontableEditor {
102009
102037
  constructor() {
102010
102038
  super(...arguments);
102039
+ /**
102040
+ * Fix width of the internal Handsontable's instance when editor has vertical scroll.
102041
+ */
102042
+ _classPrivateMethodInitSpec(this, _AutocompleteEditor_brand);
102011
102043
  /**
102012
102044
  * Query string to turn available values over.
102013
102045
  *
@@ -102315,21 +102347,16 @@ class AutocompleteEditor extends _handsontableEditor.HandsontableEditor {
102315
102347
  * @returns {boolean}
102316
102348
  */
102317
102349
  flipDropdownIfNeeded() {
102318
- const trimmingContainer = (0, _element.getTrimmingContainer)(this.hot.view._wt.wtTable.TABLE);
102319
- const isWindowAsScrollableElement = trimmingContainer === this.hot.rootWindow;
102320
- const preventOverflow = this.cellProperties.preventOverflow;
102321
- if (isWindowAsScrollableElement || !isWindowAsScrollableElement && (preventOverflow || preventOverflow === 'horizontal')) {
102322
- return false;
102350
+ const editorRect = this.getEditedCellRect();
102351
+ const editorHeight = editorRect.height;
102352
+ let spaceAbove = editorRect.top;
102353
+ if (this.hot.view.isVerticallyScrollableByWindow()) {
102354
+ const topOffset = this.hot.view.getTableOffset().top - this.hot.rootWindow.scrollY;
102355
+ spaceAbove = Math.max(spaceAbove + topOffset, 0);
102323
102356
  }
102324
- const textareaOffset = (0, _element.offset)(this.TEXTAREA);
102325
- const textareaHeight = (0, _element.outerHeight)(this.TEXTAREA);
102326
102357
  const dropdownHeight = this.getHeight();
102327
- const trimmingContainerScrollTop = trimmingContainer.scrollTop;
102328
- const headersHeight = (0, _element.outerHeight)(this.hot.view._wt.wtTable.THEAD);
102329
- const containerOffset = (0, _element.offset)(trimmingContainer);
102330
- const spaceAbove = textareaOffset.top - containerOffset.top - headersHeight + trimmingContainerScrollTop;
102331
- const spaceBelow = trimmingContainer.scrollHeight - spaceAbove - headersHeight - textareaHeight;
102332
- const flipNeeded = dropdownHeight > spaceBelow && spaceAbove > spaceBelow;
102358
+ const spaceBelow = this.hot.view.getWorkspaceHeight() - spaceAbove - editorHeight;
102359
+ const flipNeeded = dropdownHeight > spaceBelow && spaceAbove > spaceBelow + editorHeight;
102333
102360
  if (flipNeeded) {
102334
102361
  this.flipDropdown(dropdownHeight);
102335
102362
  } else {
@@ -102389,7 +102416,6 @@ class AutocompleteEditor extends _handsontableEditor.HandsontableEditor {
102389
102416
  dropdownStyle.top = '';
102390
102417
  this.htEditor.flipped = undefined;
102391
102418
  }
102392
-
102393
102419
  /**
102394
102420
  * Updates width and height of the internal Handsontable's instance.
102395
102421
  *
@@ -102400,11 +102426,7 @@ class AutocompleteEditor extends _handsontableEditor.HandsontableEditor {
102400
102426
  width: this.getWidth(),
102401
102427
  height: this.getHeight()
102402
102428
  });
102403
- if (this.htEditor.view.hasVerticalScroll()) {
102404
- this.htEditor.updateSettings({
102405
- width: this.htEditor.getSettings().width + (0, _element.getScrollbarWidth)(this.hot.rootDocument)
102406
- });
102407
- }
102429
+ _assertClassBrand(_AutocompleteEditor_brand, this, _fixDropdownWidth).call(this);
102408
102430
  this.htEditor.view._wt.wtTable.alignOverlaysWithTrimmingContainer();
102409
102431
  }
102410
102432
 
@@ -102418,6 +102440,8 @@ class AutocompleteEditor extends _handsontableEditor.HandsontableEditor {
102418
102440
  this.htEditor.updateSettings({
102419
102441
  height
102420
102442
  });
102443
+ _assertClassBrand(_AutocompleteEditor_brand, this, _fixDropdownWidth).call(this);
102444
+ this.htEditor.view._wt.wtTable.alignOverlaysWithTrimmingContainer();
102421
102445
  }
102422
102446
 
102423
102447
  /**
@@ -102541,6 +102565,13 @@ class AutocompleteEditor extends _handsontableEditor.HandsontableEditor {
102541
102565
  }
102542
102566
  }
102543
102567
  exports.AutocompleteEditor = AutocompleteEditor;
102568
+ function _fixDropdownWidth() {
102569
+ if (this.htEditor.view.hasVerticalScroll()) {
102570
+ this.htEditor.updateSettings({
102571
+ width: this.htEditor.getSettings().width + (0, _element.getScrollbarWidth)(this.hot.rootDocument)
102572
+ });
102573
+ }
102574
+ }
102544
102575
 
102545
102576
  /***/ }),
102546
102577
  /* 768 */
@@ -102929,21 +102960,27 @@ var _element = __webpack_require__(351);
102929
102960
  var _object = __webpack_require__(499);
102930
102961
  var _unicode = __webpack_require__(508);
102931
102962
  var _browser = __webpack_require__(498);
102963
+ function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
102964
+ function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
102965
+ 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"); }
102932
102966
  const EDITOR_TYPE = exports.EDITOR_TYPE = 'date';
102933
102967
  const SHORTCUTS_GROUP_EDITOR = 'dateEditor';
102968
+ const DEFAULT_DATE_FORMAT = 'DD/MM/YYYY';
102934
102969
 
102935
102970
  /**
102936
102971
  * @private
102937
102972
  * @class DateEditor
102938
102973
  */
102974
+ var _DateEditor_brand = /*#__PURE__*/new WeakSet();
102939
102975
  class DateEditor extends _textEditor.TextEditor {
102940
102976
  constructor() {
102941
102977
  super(...arguments);
102942
- // TODO: Move this option to general settings
102943
102978
  /**
102944
- * @type {string}
102979
+ * Gets the current date format for this cell.
102980
+ *
102981
+ * @returns {string}
102945
102982
  */
102946
- (0, _defineProperty2.default)(this, "defaultDateFormat", 'DD/MM/YYYY');
102983
+ _classPrivateMethodInitSpec(this, _DateEditor_brand);
102947
102984
  /**
102948
102985
  * @type {boolean}
102949
102986
  */
@@ -103109,7 +103146,7 @@ class DateEditor extends _textEditor.TextEditor {
103109
103146
  * @param {Event} event The event object.
103110
103147
  */
103111
103148
  showDatepicker(event) {
103112
- const dateFormat = this.cellProperties.dateFormat || this.defaultDateFormat;
103149
+ const dateFormat = _assertClassBrand(_DateEditor_brand, this, _getDateFormat).call(this);
103113
103150
  const isMouseDown = this.hot.view.isMouseDown();
103114
103151
  const isMeta = event ? (0, _unicode.isFunctionKey)(event.keyCode) : false;
103115
103152
  let dateStr;
@@ -103161,6 +103198,7 @@ class DateEditor extends _textEditor.TextEditor {
103161
103198
  * @returns {object}
103162
103199
  */
103163
103200
  getDatePickerConfig() {
103201
+ var _options$format;
103164
103202
  const htInput = this.TEXTAREA;
103165
103203
  const options = {};
103166
103204
  if (this.cellProperties && this.cellProperties.datePickerConfig) {
@@ -103173,7 +103211,7 @@ class DateEditor extends _textEditor.TextEditor {
103173
103211
  options.container = this.datePicker;
103174
103212
  options.bound = false;
103175
103213
  options.keyboardInput = false;
103176
- options.format = options.format || this.defaultDateFormat;
103214
+ options.format = (_options$format = options.format) !== null && _options$format !== void 0 ? _options$format : _assertClassBrand(_DateEditor_brand, this, _getDateFormat).call(this);
103177
103215
  options.reposition = options.reposition || false;
103178
103216
  // Set the RTL to `false`. Due to the https://github.com/Pikaday/Pikaday/issues/647 bug, the layout direction
103179
103217
  // of the date picker is controlled by juggling the "dir" attribute of the root date picker element.
@@ -103182,7 +103220,7 @@ class DateEditor extends _textEditor.TextEditor {
103182
103220
  options.onSelect = value => {
103183
103221
  let dateStr = value;
103184
103222
  if (!isNaN(dateStr.getTime())) {
103185
- dateStr = (0, _moment.default)(dateStr).format(this.cellProperties.dateFormat || this.defaultDateFormat);
103223
+ dateStr = (0, _moment.default)(dateStr).format(_assertClassBrand(_DateEditor_brand, this, _getDateFormat).call(this));
103186
103224
  }
103187
103225
  this.setValue(dateStr);
103188
103226
  if (origOnSelect) {
@@ -103250,6 +103288,10 @@ class DateEditor extends _textEditor.TextEditor {
103250
103288
  }
103251
103289
  }
103252
103290
  exports.DateEditor = DateEditor;
103291
+ function _getDateFormat() {
103292
+ var _this$cellProperties$;
103293
+ return (_this$cellProperties$ = this.cellProperties.dateFormat) !== null && _this$cellProperties$ !== void 0 ? _this$cellProperties$ : DEFAULT_DATE_FORMAT;
103294
+ }
103253
103295
 
103254
103296
  /***/ }),
103255
103297
  /* 774 */
@@ -105202,7 +105244,7 @@ function checkboxRenderer(hotInstance, TD, row, col, prop, value, cellProperties
105202
105244
  continue;
105203
105245
  }
105204
105246
  const cell = hotInstance.getCell(visualRow, visualColumn);
105205
- if (cell instanceof HTMLElement) {
105247
+ if ((0, _element.isHTMLElement)(cell)) {
105206
105248
  const checkboxes = cell.querySelectorAll('input[type=checkbox]');
105207
105249
  if (checkboxes.length > 0) {
105208
105250
  return true;
@@ -105470,8 +105512,16 @@ function getRenderedValue(value, cellProperties) {
105470
105512
  function numericRenderer(hotInstance, TD, row, col, prop, value, cellProperties) {
105471
105513
  let newValue = value;
105472
105514
  if ((0, _number.isNumeric)(newValue)) {
105473
- const className = cellProperties.className || '';
105474
- const classArr = className.length ? className.split(' ') : [];
105515
+ let classArr = [];
105516
+ if (Array.isArray(cellProperties.className)) {
105517
+ classArr = cellProperties.className;
105518
+ } else {
105519
+ var _cellProperties$class;
105520
+ const className = (_cellProperties$class = cellProperties.className) !== null && _cellProperties$class !== void 0 ? _cellProperties$class : '';
105521
+ if (className.length) {
105522
+ classArr = className.split(' ');
105523
+ }
105524
+ }
105475
105525
  newValue = getRenderedValue(newValue, cellProperties);
105476
105526
  if (classArr.indexOf('htLeft') < 0 && classArr.indexOf('htCenter') < 0 && classArr.indexOf('htRight') < 0 && classArr.indexOf('htJustify') < 0) {
105477
105527
  classArr.push('htRight');
@@ -111925,23 +111975,23 @@ var _mergeCells = __webpack_require__(1022);
111925
111975
  exports.MergeCells = _mergeCells.MergeCells;
111926
111976
  var _multiColumnSorting = __webpack_require__(1036);
111927
111977
  exports.MultiColumnSorting = _multiColumnSorting.MultiColumnSorting;
111928
- var _multipleSelectionHandles = __webpack_require__(1041);
111978
+ var _multipleSelectionHandles = __webpack_require__(1040);
111929
111979
  exports.MultipleSelectionHandles = _multipleSelectionHandles.MultipleSelectionHandles;
111930
- var _nestedHeaders = __webpack_require__(1043);
111980
+ var _nestedHeaders = __webpack_require__(1042);
111931
111981
  exports.NestedHeaders = _nestedHeaders.NestedHeaders;
111932
- var _nestedRows = __webpack_require__(1059);
111982
+ var _nestedRows = __webpack_require__(1058);
111933
111983
  exports.NestedRows = _nestedRows.NestedRows;
111934
- var _persistentState = __webpack_require__(1067);
111984
+ var _persistentState = __webpack_require__(1066);
111935
111985
  exports.PersistentState = _persistentState.PersistentState;
111936
- var _search = __webpack_require__(1070);
111986
+ var _search = __webpack_require__(1069);
111937
111987
  exports.Search = _search.Search;
111938
- var _stretchColumns = __webpack_require__(1072);
111988
+ var _stretchColumns = __webpack_require__(1071);
111939
111989
  exports.StretchColumns = _stretchColumns.StretchColumns;
111940
- var _touchScroll = __webpack_require__(1078);
111990
+ var _touchScroll = __webpack_require__(1077);
111941
111991
  exports.TouchScroll = _touchScroll.TouchScroll;
111942
- var _trimRows = __webpack_require__(1080);
111992
+ var _trimRows = __webpack_require__(1079);
111943
111993
  exports.TrimRows = _trimRows.TrimRows;
111944
- var _undoRedo = __webpack_require__(1082);
111994
+ var _undoRedo = __webpack_require__(1081);
111945
111995
  exports.UndoRedo = _undoRedo.UndoRedo;
111946
111996
  var _registry = __webpack_require__(532);
111947
111997
  exports.registerPlugin = _registry.registerPlugin;
@@ -115979,6 +116029,13 @@ const SHORTCUTS_GROUP = PLUGIN_KEY;
115979
116029
  _hooks.Hooks.getSingleton().register('beforeColumnSort');
115980
116030
  _hooks.Hooks.getSingleton().register('afterColumnSort');
115981
116031
 
116032
+ /**
116033
+ * Tracks the conflicts between `columnSorting` and `multiColumnSorting` options.
116034
+ * Only one plugin can be enabled for Handsontable instance. Once one of them is enabled,
116035
+ * the other should remain disabled even if it's set to `true`.
116036
+ */
116037
+ const pluginConflictsState = new WeakMap();
116038
+
115982
116039
  // DIFF - MultiColumnSorting & ColumnSorting: changed configuration documentation.
115983
116040
  /**
115984
116041
  * @plugin ColumnSorting
@@ -116087,9 +116144,17 @@ class ColumnSorting extends _base.BasePlugin {
116087
116144
  */
116088
116145
  enablePlugin() {
116089
116146
  var _this = this;
116147
+ if (pluginConflictsState.has(this.hot) && pluginConflictsState.get(this.hot) !== this.pluginKey) {
116148
+ this.hot.updateSettings({
116149
+ [this.pluginKey]: false
116150
+ });
116151
+ (0, _utils.warnAboutPluginsConflict)(pluginConflictsState.get(this.hot), this.pluginKey);
116152
+ return;
116153
+ }
116090
116154
  if (this.enabled) {
116091
116155
  return;
116092
116156
  }
116157
+ pluginConflictsState.set(this.hot, this.pluginKey);
116093
116158
  this.columnStatesManager = new _columnStatesManager.ColumnStatesManager(this.hot, `${this.pluginKey}.sortingStates`);
116094
116159
  this.columnMetaCache = new _translations.PhysicalIndexToValueMap(physicalIndex => {
116095
116160
  let visualIndex = this.hot.toVisualColumn(physicalIndex);
@@ -116134,6 +116199,7 @@ class ColumnSorting extends _base.BasePlugin {
116134
116199
  }
116135
116200
  this.updateHeaderClasses(headerSpanElement);
116136
116201
  };
116202
+ pluginConflictsState.delete(this.hot);
116137
116203
 
116138
116204
  // Changing header width and removing indicator.
116139
116205
  this.hot.addHook('afterGetColHeader', clearColHeader);
@@ -116611,7 +116677,7 @@ class ColumnSorting extends _base.BasePlugin {
116611
116677
  * @param {object} newSettings New settings object.
116612
116678
  */
116613
116679
  onUpdateSettings(newSettings) {
116614
- super.onUpdateSettings();
116680
+ super.onUpdateSettings(newSettings);
116615
116681
  if (this.columnMetaCache !== null) {
116616
116682
  // Column meta cache base on settings, thus we should re-init the map.
116617
116683
  this.columnMetaCache.init(this.hot.columnIndexMapper.getNumberOfIndexes());
@@ -116741,6 +116807,7 @@ function _onBeforeOnCellMouseDown(event, coords, TD, controller) {
116741
116807
 
116742
116808
  var _interopRequireDefault = __webpack_require__(197);
116743
116809
  exports.__esModule = true;
116810
+ __webpack_require__(311);
116744
116811
  __webpack_require__(338);
116745
116812
  var _defineProperty2 = _interopRequireDefault(__webpack_require__(504));
116746
116813
  var _object = __webpack_require__(499);
@@ -116969,6 +117036,7 @@ exports.createDateTimeCompareFunction = createDateTimeCompareFunction;
116969
117036
  exports.getHeaderSpanElement = getHeaderSpanElement;
116970
117037
  exports.getNextSortOrder = getNextSortOrder;
116971
117038
  exports.isFirstLevelColumnHeader = isFirstLevelColumnHeader;
117039
+ exports.warnAboutPluginsConflict = warnAboutPluginsConflict;
116972
117040
  exports.wasHeaderClickedProperly = wasHeaderClickedProperly;
116973
117041
  __webpack_require__(287);
116974
117042
  __webpack_require__(298);
@@ -116985,6 +117053,8 @@ var _object = __webpack_require__(499);
116985
117053
  var _event = __webpack_require__(509);
116986
117054
  var _mixed = __webpack_require__(354);
116987
117055
  var _sortService = __webpack_require__(860);
117056
+ var _console = __webpack_require__(512);
117057
+ var _templateLiteralTag = __webpack_require__(494);
116988
117058
  const ASC_SORT_STATE = exports.ASC_SORT_STATE = 'asc';
116989
117059
  const DESC_SORT_STATE = exports.DESC_SORT_STATE = 'desc';
116990
117060
  const HEADER_SPAN_CLASS = exports.HEADER_SPAN_CLASS = 'colHeader';
@@ -117137,6 +117207,17 @@ function createDateTimeCompareFunction(sortOrder, format, columnPluginSettings)
117137
117207
  };
117138
117208
  }
117139
117209
 
117210
+ /**
117211
+ * Warn users about problems when using `columnSorting` and `multiColumnSorting` plugins simultaneously.
117212
+ *
117213
+ * @param {string} workingPlugin The plugin that will work.
117214
+ * @param {string} disabledPlugin The plugin that will remain disabled.
117215
+ */
117216
+ function warnAboutPluginsConflict(workingPlugin, disabledPlugin) {
117217
+ (0, _console.warn)((0, _templateLiteralTag.toSingleLine)`Plugins \`columnSorting\` and \`multiColumnSorting\` should not be enabled simultaneously.\x20
117218
+ Only \`${workingPlugin}\` will work. The \`${disabledPlugin}\` plugin will remain disabled.`);
117219
+ }
117220
+
117140
117221
  /***/ }),
117141
117222
  /* 860 */
117142
117223
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
@@ -119261,6 +119342,9 @@ class Comments extends _base.BasePlugin {
119261
119342
  innerHeight
119262
119343
  } = this.hot.rootWindow;
119263
119344
  const documentElement = this.hot.rootDocument.documentElement;
119345
+ const scrollbarWidth = (0, _element.getScrollbarWidth)(this.hot.rootDocument);
119346
+ const verticalScrollbarWidth = (0, _element.hasVerticalScrollbar)(this.hot.rootWindow) ? scrollbarWidth : 0;
119347
+ const horizontalScrollbarWidth = (0, _element.hasHorizontalScrollbar)(this.hot.rootWindow) ? scrollbarWidth : 0;
119264
119348
  let x = left + rootWindow.scrollX + lastColWidth;
119265
119349
  let y = top + rootWindow.scrollY + lastRowHeight;
119266
119350
  if (this.hot.isRtl()) {
@@ -119268,12 +119352,12 @@ class Comments extends _base.BasePlugin {
119268
119352
  }
119269
119353
 
119270
119354
  // flip to the right or left the comments editor position when it goes out of browser viewport
119271
- if (this.hot.isLtr() && left + cellWidth + editorWidth > innerWidth) {
119355
+ if (this.hot.isLtr() && left + cellWidth + editorWidth > innerWidth - verticalScrollbarWidth) {
119272
119356
  x = left + rootWindow.scrollX - editorWidth - 1;
119273
119357
  } else if (this.hot.isRtl() && x < -(documentElement.scrollWidth - documentElement.clientWidth)) {
119274
119358
  x = left + rootWindow.scrollX + lastColWidth + 1;
119275
119359
  }
119276
- if (top + editorHeight > innerHeight) {
119360
+ if (top + editorHeight > innerHeight - horizontalScrollbarWidth) {
119277
119361
  y -= editorHeight - cellHeight + 1;
119278
119362
  }
119279
119363
  _classPrivateFieldGet(_editor, this).setPosition(x, y);
@@ -120473,19 +120557,14 @@ function columnLeftItem() {
120473
120557
  return true;
120474
120558
  }
120475
120559
  const range = this.getSelectedRangeLast();
120476
- if (!range) {
120477
- return true;
120478
- }
120479
- if (range.isSingleHeader() && range.highlight.col < 0) {
120560
+ if (!range || this.selection.isSelectedByRowHeader() || range.isSingleHeader() && range.highlight.col < 0 || this.countSourceCols() >= this.getSettings().maxCols) {
120480
120561
  return true;
120481
120562
  }
120482
120563
  if (this.selection.isSelectedByCorner()) {
120483
- const totalColumns = this.countCols();
120484
-
120485
120564
  // Enable "Insert column left" only when there is at least one column.
120486
- return totalColumns === 0;
120565
+ return this.countCols() === 0;
120487
120566
  }
120488
- return this.selection.isSelectedByRowHeader() || this.countCols() >= this.getSettings().maxCols;
120567
+ return false;
120489
120568
  },
120490
120569
  hidden() {
120491
120570
  return !this.getSettings().allowInsertColumn;
@@ -120526,17 +120605,10 @@ function columnRightItem() {
120526
120605
  return true;
120527
120606
  }
120528
120607
  const range = this.getSelectedRangeLast();
120529
- if (!range) {
120530
- return true;
120531
- }
120532
- if (range.isSingleHeader() && range.highlight.col < 0) {
120608
+ if (!range || this.selection.isSelectedByRowHeader() || range.isSingleHeader() && range.highlight.col < 0 || this.countSourceCols() >= this.getSettings().maxCols) {
120533
120609
  return true;
120534
120610
  }
120535
- if (this.selection.isSelectedByCorner()) {
120536
- // Enable "Insert column right" always when the menu is triggered by corner click.
120537
- return false;
120538
- }
120539
- return this.selection.isSelectedByRowHeader() || this.countCols() >= this.getSettings().maxCols;
120611
+ return false;
120540
120612
  },
120541
120613
  hidden() {
120542
120614
  return !this.getSettings().allowInsertColumn;
@@ -120806,19 +120878,14 @@ function rowAboveItem() {
120806
120878
  },
120807
120879
  disabled() {
120808
120880
  const range = this.getSelectedRangeLast();
120809
- if (!range) {
120810
- return true;
120811
- }
120812
- if (range.isSingleHeader() && range.highlight.row < 0) {
120881
+ if (!range || this.selection.isSelectedByColumnHeader() || range.isSingleHeader() && range.highlight.row < 0 || this.countSourceRows() >= this.getSettings().maxRows) {
120813
120882
  return true;
120814
120883
  }
120815
120884
  if (this.selection.isSelectedByCorner()) {
120816
- const totalRows = this.countRows();
120817
-
120818
120885
  // Enable "Insert row above" only when there is at least one row.
120819
- return totalRows === 0;
120886
+ return this.countRows() === 0;
120820
120887
  }
120821
- return this.selection.isSelectedByColumnHeader() || this.countRows() >= this.getSettings().maxRows;
120888
+ return false;
120822
120889
  },
120823
120890
  hidden() {
120824
120891
  return !this.getSettings().allowInsertRow;
@@ -120855,17 +120922,10 @@ function rowBelowItem() {
120855
120922
  },
120856
120923
  disabled() {
120857
120924
  const range = this.getSelectedRangeLast();
120858
- if (!range) {
120925
+ if (!range || this.selection.isSelectedByColumnHeader() || range.isSingleHeader() && range.highlight.row < 0 || this.countSourceRows() >= this.getSettings().maxRows) {
120859
120926
  return true;
120860
120927
  }
120861
- if (range.isSingleHeader() && range.highlight.row < 0) {
120862
- return true;
120863
- }
120864
- if (this.selection.isSelectedByCorner()) {
120865
- // Enable "Insert row below" always when the menu is triggered by corner click.
120866
- return false;
120867
- }
120868
- return this.selection.isSelectedByColumnHeader() || this.countRows() >= this.getSettings().maxRows;
120928
+ return false;
120869
120929
  },
120870
120930
  hidden() {
120871
120931
  return !this.getSettings().allowInsertRow;
@@ -122052,7 +122112,6 @@ class Menu {
122052
122112
  this.openSubMenu(coords.row);
122053
122113
  }
122054
122114
  },
122055
- rowHeights: row => filteredItems[row].name === _predefinedItems.SEPARATOR ? 1 : undefined,
122056
122115
  afterOnCellContextMenu: event => {
122057
122116
  event.preventDefault();
122058
122117
 
@@ -122323,6 +122382,7 @@ class Menu {
122323
122382
  * and adjusts the width and height of the menu's holder and hider elements accordingly.
122324
122383
  */
122325
122384
  updateMenuDimensions() {
122385
+ const stylesHandler = this.hotMenu.view.getStylesHandler();
122326
122386
  const {
122327
122387
  wtTable
122328
122388
  } = this.hotMenu.view._wt;
@@ -122335,8 +122395,14 @@ class Menu {
122335
122395
  const currentRowHeight = itemCell ? (0, _element.outerHeight)(this.hotMenu.getCell(index, 0)) : 0;
122336
122396
  return accumulator + (value.name === _predefinedItems.SEPARATOR ? 1 : currentRowHeight);
122337
122397
  }, 0);
122338
- holderStyle.width = `${currentHiderWidth}px`;
122339
- holderStyle.height = `${realHeight}px`;
122398
+ if (stylesHandler.isClassicTheme()) {
122399
+ // Additional 3px to menu's size because of additional border around its `table.htCore`.
122400
+ holderStyle.width = `${currentHiderWidth + 3}px`;
122401
+ holderStyle.height = `${realHeight + 3}px`;
122402
+ } else {
122403
+ holderStyle.width = `${currentHiderWidth}px`;
122404
+ holderStyle.height = `${realHeight}px`;
122405
+ }
122340
122406
  hiderStyle.height = holderStyle.height;
122341
122407
  }
122342
122408
 
@@ -124043,7 +124109,7 @@ class CopyPaste extends _base.BasePlugin {
124043
124109
  const isHotInput = (_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.hasAttribute('data-hot-input');
124044
124110
  const selectedCell = (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight;
124045
124111
  const TD = selectedCell ? this.hot.getCell(selectedCell.row, selectedCell.col, true) : null;
124046
- 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)) {
124112
+ 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)) {
124047
124113
  return;
124048
124114
  }
124049
124115
  event.preventDefault();
@@ -124078,7 +124144,7 @@ class CopyPaste extends _base.BasePlugin {
124078
124144
  const isHotInput = (_event$target2 = event.target) === null || _event$target2 === void 0 ? void 0 : _event$target2.hasAttribute('data-hot-input');
124079
124145
  const selectedCell = (_this$hot$getSelected2 = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected2 === void 0 ? void 0 : _this$hot$getSelected2.highlight;
124080
124146
  const TD = selectedCell ? this.hot.getCell(selectedCell.row, selectedCell.col, true) : null;
124081
- 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)) {
124147
+ 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)) {
124082
124148
  return;
124083
124149
  }
124084
124150
  event.preventDefault();
@@ -124112,7 +124178,7 @@ class CopyPaste extends _base.BasePlugin {
124112
124178
  const isHotInput = (_event$target3 = event.target) === null || _event$target3 === void 0 ? void 0 : _event$target3.hasAttribute('data-hot-input');
124113
124179
  const selectedCell = (_this$hot$getSelected3 = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected3 === void 0 ? void 0 : _this$hot$getSelected3.highlight;
124114
124180
  const TD = selectedCell ? this.hot.getCell(selectedCell.row, selectedCell.col, true) : null;
124115
- 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)) {
124181
+ 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)) {
124116
124182
  return;
124117
124183
  }
124118
124184
  event.preventDefault();
@@ -127310,6 +127376,7 @@ function typeFactory(type, dataProvider, options) {
127310
127376
 
127311
127377
  var _interopRequireDefault = __webpack_require__(197);
127312
127378
  exports.__esModule = true;
127379
+ __webpack_require__(311);
127313
127380
  __webpack_require__(338);
127314
127381
  var _array = __webpack_require__(495);
127315
127382
  var _mixed = __webpack_require__(354);
@@ -127564,6 +127631,7 @@ const SHORTCUTS_GROUP = PLUGIN_KEY;
127564
127631
  */
127565
127632
  var _menuFocusNavigator = /*#__PURE__*/new WeakMap();
127566
127633
  var _dropdownMenuTraces = /*#__PURE__*/new WeakMap();
127634
+ var _previousConditionStack = /*#__PURE__*/new WeakMap();
127567
127635
  var _Filters_brand = /*#__PURE__*/new WeakSet();
127568
127636
  class Filters extends _base.BasePlugin {
127569
127637
  static get PLUGIN_KEY() {
@@ -127635,6 +127703,13 @@ class Filters extends _base.BasePlugin {
127635
127703
  * @type {WeakSet<Menu>}
127636
127704
  */
127637
127705
  _classPrivateFieldInitSpec(this, _dropdownMenuTraces, new WeakSet());
127706
+ /**
127707
+ * Stores the previous state of the condition stack before the latest filter operation.
127708
+ * This is used in the `beforeFilter` plugin to allow performing the undo operation.
127709
+ *
127710
+ * @type {Array}
127711
+ */
127712
+ _classPrivateFieldInitSpec(this, _previousConditionStack, []);
127638
127713
  this.hot.addHook('afterGetColHeader', function () {
127639
127714
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
127640
127715
  args[_key] = arguments[_key];
@@ -127977,6 +128052,51 @@ class Filters extends _base.BasePlugin {
127977
128052
  }
127978
128053
  }
127979
128054
 
128055
+ /**
128056
+ * Imports filter conditions to all columns to the plugin. The method accepts
128057
+ * the array of conditions with the same structure as the {@link Filters#exportConditions} method returns.
128058
+ * Importing conditions will replace the current conditions. Once replaced, the state of the condition
128059
+ * will be reflected in the UI. To apply the changes and filter the table, call
128060
+ * the {@link Filters#filter} method eventually.
128061
+ *
128062
+ * @param {Array} conditions Array of conditions.
128063
+ */
128064
+ importConditions(conditions) {
128065
+ this.conditionCollection.importAllConditions(conditions);
128066
+ }
128067
+
128068
+ /* eslint-disable jsdoc/require-description-complete-sentence */
128069
+ /**
128070
+ * Exports filter conditions for all columns from the plugin.
128071
+ * The array represents the filter state for each column. For example:
128072
+ *
128073
+ * ```js
128074
+ * [
128075
+ * {
128076
+ * column: 1,
128077
+ * operation: 'conjunction',
128078
+ * conditions: [
128079
+ * { name: 'gt', args: [95] },
128080
+ * ]
128081
+ * },
128082
+ * {
128083
+ * column: 7,
128084
+ * operation: 'conjunction',
128085
+ * conditions: [
128086
+ * { name: 'contains', args: ['mike'] },
128087
+ * { name: 'begins_with', args: ['m'] },
128088
+ * ]
128089
+ * },
128090
+ * ]
128091
+ * ```
128092
+ *
128093
+ * @returns {Array}
128094
+ */
128095
+ /* eslint-enable jsdoc/require-description-complete-sentence */
128096
+ exportConditions() {
128097
+ return this.conditionCollection.exportAllConditions();
128098
+ }
128099
+
127980
128100
  /**
127981
128101
  * Filters data based on added filter conditions.
127982
128102
  *
@@ -127990,8 +128110,8 @@ class Filters extends _base.BasePlugin {
127990
128110
  const dataFilter = this._createDataFilter();
127991
128111
  const needToFilter = !this.conditionCollection.isEmpty();
127992
128112
  let visibleVisualRows = [];
127993
- const conditions = this.conditionCollection.exportAllConditions();
127994
- const allowFiltering = this.hot.runHooks('beforeFilter', conditions, this.conditionCollection.previousConditionStack);
128113
+ const conditions = this.exportConditions();
128114
+ const allowFiltering = this.hot.runHooks('beforeFilter', conditions, _classPrivateFieldGet(_previousConditionStack, this));
127995
128115
  if (allowFiltering !== false) {
127996
128116
  if (needToFilter) {
127997
128117
  const trimmedRows = [];
@@ -128014,11 +128134,13 @@ class Filters extends _base.BasePlugin {
128014
128134
  } else {
128015
128135
  this.filtersRowsMap.clear();
128016
128136
  }
128137
+ _classPrivateFieldSet(_previousConditionStack, this, this.exportConditions());
128138
+ this.hot.runHooks('afterFilter', conditions);
128139
+ this.hot.view.adjustElementsSize();
128140
+ this.hot.render();
128141
+ } else {
128142
+ this.importConditions(_classPrivateFieldGet(_previousConditionStack, this));
128017
128143
  }
128018
- this.hot.runHooks('afterFilter', conditions);
128019
- this.conditionCollection.setPreviousConditionStack(null);
128020
- this.hot.view.adjustElementsSize();
128021
- this.hot.render();
128022
128144
  if (this.hot.selection.isSelected()) {
128023
128145
  this.hot.selectCell(navigableHeaders ? -1 : 0, this.hot.getSelectedRangeLast().highlight.col);
128024
128146
  }
@@ -128381,7 +128503,6 @@ function _onActionBarSubmit(submitType) {
128381
128503
  }
128382
128504
  this.conditionUpdateObserver.flush();
128383
128505
  this.components.forEach(component => component.saveState(physicalIndex));
128384
- this.filtersRowsMap.clear();
128385
128506
  this.filter();
128386
128507
  }
128387
128508
  (_this$dropdownMenuPlu3 = this.dropdownMenuPlugin) === null || _this$dropdownMenuPlu3 === void 0 || _this$dropdownMenuPlu3.close();
@@ -128423,8 +128544,23 @@ function _updateComponents(conditionsState) {
128423
128544
  editedConditionStack: {
128424
128545
  conditions,
128425
128546
  column
128426
- }
128547
+ },
128548
+ conditionArgsChange
128427
128549
  } = conditionsState;
128550
+ if (Array.isArray(conditionArgsChange)) {
128551
+ // update the previous condition stack (only for 'by_value' condition) on each dataset
128552
+ // change to make the undo/redo work properly
128553
+ _classPrivateFieldSet(_previousConditionStack, this, _classPrivateFieldGet(_previousConditionStack, this).map(stack => {
128554
+ if (stack.column === column && conditions.length > 0) {
128555
+ stack.conditions.forEach(condition => {
128556
+ if (condition.name === 'by_value') {
128557
+ condition.args = [[...conditionArgsChange]];
128558
+ }
128559
+ });
128560
+ }
128561
+ return stack;
128562
+ }));
128563
+ }
128428
128564
  const conditionsByValue = conditions.filter(condition => condition.name === _constants2.CONDITION_BY_VALUE);
128429
128565
  const conditionsWithoutByValue = conditions.filter(condition => condition.name !== _constants2.CONDITION_BY_VALUE);
128430
128566
  if (conditionsByValue.length >= 2 || conditionsWithoutByValue.length >= 3) {
@@ -131868,13 +132004,6 @@ class ConditionCollection {
131868
132004
  * @type {LinkedPhysicalIndexToValueMap}
131869
132005
  */
131870
132006
  (0, _defineProperty2.default)(this, "filteringStates", new _translations.LinkedPhysicalIndexToValueMap());
131871
- /**
131872
- * Stores the previous state of the condition stack before the latest filter operation.
131873
- * This is used in the `beforeFilter` plugin to allow performing the undo operation.
131874
- *
131875
- * @type {null|Array}
131876
- */
131877
- (0, _defineProperty2.default)(this, "previousConditionStack", null);
131878
132007
  this.hot = hot;
131879
132008
  this.isMapRegistrable = isMapRegistrable;
131880
132009
  if (this.isMapRegistrable === true) {
@@ -131943,13 +132072,6 @@ class ConditionCollection {
131943
132072
  const localeForColumn = this.hot.getCellMeta(0, column).locale;
131944
132073
  const args = conditionDefinition.args.map(v => typeof v === 'string' ? v.toLocaleLowerCase(localeForColumn) : v);
131945
132074
  const name = conditionDefinition.name || conditionDefinition.command.key;
131946
-
131947
- // If there's no previous condition stack defined (which means the condition stack was not cleared after the
131948
- // previous filter operation or that there was no filter operation performed yet), store the current conditions as
131949
- // the previous condition stack.
131950
- if (this.previousConditionStack === null) {
131951
- this.setPreviousConditionStack(this.exportAllConditions());
131952
- }
131953
132075
  this.runLocalHooks('beforeAdd', column);
131954
132076
  const columnType = this.getOperation(column);
131955
132077
  if (columnType) {
@@ -132078,8 +132200,6 @@ class ConditionCollection {
132078
132200
  * @fires ConditionCollection#afterRemove
132079
132201
  */
132080
132202
  removeConditions(column) {
132081
- // Store the current conditions as the previous condition stack before it's cleared.
132082
- this.setPreviousConditionStack(this.exportAllConditions());
132083
132203
  this.runLocalHooks('beforeRemove', column);
132084
132204
  this.filteringStates.clearValue(column);
132085
132205
  this.runLocalHooks('afterRemove', column);
@@ -132113,16 +132233,6 @@ class ConditionCollection {
132113
132233
  return conditions.length > 0;
132114
132234
  }
132115
132235
 
132116
- /**
132117
- * Updates the `previousConditionStack` property with the provided stack.
132118
- * It is used to store the current conditions before they are modified, allowing for undo operations.
132119
- *
132120
- * @param {Array|null} previousConditionStack The stack of previous conditions.
132121
- */
132122
- setPreviousConditionStack(previousConditionStack) {
132123
- this.previousConditionStack = previousConditionStack;
132124
- }
132125
-
132126
132236
  /**
132127
132237
  * Destroy object.
132128
132238
  */
@@ -141269,14 +141379,17 @@ function _onModifyRowHeightByOverlayName(height, row, overlayType) {
141269
141379
  * @returns {number}
141270
141380
  */
141271
141381
  function _sumCellsHeights(row, rowspan) {
141272
- const stylesHandler = this.hot.view.getStylesHandler();
141273
- const defaultHeight = this.hot.view.getDefaultRowHeight();
141274
- const autoRowSizePlugin = this.hot.getPlugin('autoRowSize');
141382
+ const {
141383
+ view,
141384
+ rowIndexMapper
141385
+ } = this.hot;
141386
+ const stylesHandler = view.getStylesHandler();
141387
+ const defaultHeight = view.getDefaultRowHeight();
141275
141388
  let height = 0;
141276
141389
  for (let i = row; i < row + rowspan; i++) {
141277
- if (!this.hot.rowIndexMapper.isHidden(i)) {
141278
- var _autoRowSizePlugin$ge;
141279
- height += (_autoRowSizePlugin$ge = autoRowSizePlugin === null || autoRowSizePlugin === void 0 ? void 0 : autoRowSizePlugin.getRowHeight(i)) !== null && _autoRowSizePlugin$ge !== void 0 ? _autoRowSizePlugin$ge : defaultHeight;
141390
+ if (!rowIndexMapper.isHidden(i)) {
141391
+ var _this$hot$getRowHeigh;
141392
+ height += (_this$hot$getRowHeigh = this.hot.getRowHeight(i)) !== null && _this$hot$getRowHeigh !== void 0 ? _this$hot$getRowHeigh : defaultHeight;
141280
141393
  if (i === 0 && !stylesHandler.isClassicTheme()) {
141281
141394
  height += 1; // border-top-width
141282
141395
  }
@@ -143576,12 +143689,10 @@ var _sortService = __webpack_require__(860);
143576
143689
  var _utils = __webpack_require__(859);
143577
143690
  var _element = __webpack_require__(351);
143578
143691
  var _rootComparator = __webpack_require__(1038);
143579
- var _utils2 = __webpack_require__(1039);
143580
- var _domHelpers = __webpack_require__(1040);
143692
+ var _domHelpers = __webpack_require__(1039);
143581
143693
  var _shortcutContexts = __webpack_require__(686);
143582
143694
  const PLUGIN_KEY = exports.PLUGIN_KEY = 'multiColumnSorting';
143583
143695
  const PLUGIN_PRIORITY = exports.PLUGIN_PRIORITY = 170;
143584
- const CONFLICTED_PLUGIN_KEY = 'columnSorting';
143585
143696
  const SHORTCUTS_GROUP = PLUGIN_KEY;
143586
143697
  (0, _sortService.registerRootComparator)(PLUGIN_KEY, _rootComparator.rootComparator);
143587
143698
 
@@ -143661,17 +143772,13 @@ class MultiColumnSorting extends _columnSorting.ColumnSorting {
143661
143772
  * @returns {boolean}
143662
143773
  */
143663
143774
  isEnabled() {
143664
- return super.isEnabled();
143775
+ return !!this.hot.getSettings()[this.pluginKey];
143665
143776
  }
143666
143777
 
143667
143778
  /**
143668
143779
  * Enables the plugin functionality for this Handsontable instance.
143669
143780
  */
143670
143781
  enablePlugin() {
143671
- if (!this.enabled && this.hot.getSettings()[this.pluginKey] && this.hot.getSettings()[CONFLICTED_PLUGIN_KEY]) {
143672
- (0, _utils2.warnAboutPluginsConflict)();
143673
- this.hot.getPlugin(CONFLICTED_PLUGIN_KEY).disablePlugin();
143674
- }
143675
143782
  super.enablePlugin();
143676
143783
  }
143677
143784
 
@@ -143843,20 +143950,6 @@ class MultiColumnSorting extends _columnSorting.ColumnSorting {
143843
143950
  }
143844
143951
  }
143845
143952
 
143846
- /**
143847
- * Overwriting base plugin's `onUpdateSettings` method. Please keep in mind that `onAfterUpdateSettings` isn't called
143848
- * for `updateSettings` in specific situations.
143849
- *
143850
- * @private
143851
- * @param {object} newSettings New settings object.
143852
- */
143853
- onUpdateSettings(newSettings) {
143854
- if (this.hot.getSettings()[this.pluginKey] && this.hot.getSettings()[CONFLICTED_PLUGIN_KEY]) {
143855
- (0, _utils2.warnAboutPluginsConflict)();
143856
- }
143857
- super.onUpdateSettings(newSettings);
143858
- }
143859
-
143860
143953
  /**
143861
143954
  * Callback for the `onAfterOnCellMouseDown` hook.
143862
143955
  *
@@ -143930,25 +144023,6 @@ function rootComparator(sortingOrders, columnMetas) {
143930
144023
  "use strict";
143931
144024
 
143932
144025
 
143933
- exports.__esModule = true;
143934
- exports.warnAboutPluginsConflict = warnAboutPluginsConflict;
143935
- var _console = __webpack_require__(512);
143936
- var _templateLiteralTag = __webpack_require__(494);
143937
- /**
143938
- * Warn users about problems when using `columnSorting` and `multiColumnSorting` plugins simultaneously.
143939
- */
143940
- function warnAboutPluginsConflict() {
143941
- (0, _console.warn)((0, _templateLiteralTag.toSingleLine)`Plugins \`columnSorting\` and \`multiColumnSorting\` should not be enabled simultaneously.
143942
- Only \`multiColumnSorting\` will work. The \`columnSorting\` plugin will be disabled.`);
143943
- }
143944
-
143945
- /***/ }),
143946
- /* 1040 */
143947
- /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
143948
-
143949
- "use strict";
143950
-
143951
-
143952
144026
  exports.__esModule = true;
143953
144027
  exports.getClassesToAdd = getClassesToAdd;
143954
144028
  exports.getClassesToRemove = getClassesToRemove;
@@ -143989,20 +144063,20 @@ function getClassesToRemove(htmlElement) {
143989
144063
  }
143990
144064
 
143991
144065
  /***/ }),
143992
- /* 1041 */
144066
+ /* 1040 */
143993
144067
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
143994
144068
 
143995
144069
  "use strict";
143996
144070
 
143997
144071
 
143998
144072
  exports.__esModule = true;
143999
- var _multipleSelectionHandles = __webpack_require__(1042);
144073
+ var _multipleSelectionHandles = __webpack_require__(1041);
144000
144074
  exports.PLUGIN_KEY = _multipleSelectionHandles.PLUGIN_KEY;
144001
144075
  exports.PLUGIN_PRIORITY = _multipleSelectionHandles.PLUGIN_PRIORITY;
144002
144076
  exports.MultipleSelectionHandles = _multipleSelectionHandles.MultipleSelectionHandles;
144003
144077
 
144004
144078
  /***/ }),
144005
- /* 1042 */
144079
+ /* 1041 */
144006
144080
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
144007
144081
 
144008
144082
  "use strict";
@@ -144341,20 +144415,20 @@ class MultipleSelectionHandles extends _base.BasePlugin {
144341
144415
  exports.MultipleSelectionHandles = MultipleSelectionHandles;
144342
144416
 
144343
144417
  /***/ }),
144344
- /* 1043 */
144418
+ /* 1042 */
144345
144419
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
144346
144420
 
144347
144421
  "use strict";
144348
144422
 
144349
144423
 
144350
144424
  exports.__esModule = true;
144351
- var _nestedHeaders = __webpack_require__(1044);
144425
+ var _nestedHeaders = __webpack_require__(1043);
144352
144426
  exports.PLUGIN_KEY = _nestedHeaders.PLUGIN_KEY;
144353
144427
  exports.PLUGIN_PRIORITY = _nestedHeaders.PLUGIN_PRIORITY;
144354
144428
  exports.NestedHeaders = _nestedHeaders.NestedHeaders;
144355
144429
 
144356
144430
  /***/ }),
144357
- /* 1044 */
144431
+ /* 1043 */
144358
144432
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
144359
144433
 
144360
144434
  "use strict";
@@ -144374,8 +144448,8 @@ var _event = __webpack_require__(509);
144374
144448
  var _console = __webpack_require__(512);
144375
144449
  var _selection = __webpack_require__(652);
144376
144450
  var _base = __webpack_require__(841);
144377
- var _stateManager2 = _interopRequireDefault(__webpack_require__(1045));
144378
- var _ghostTable = _interopRequireDefault(__webpack_require__(1058));
144451
+ var _stateManager2 = _interopRequireDefault(__webpack_require__(1044));
144452
+ var _ghostTable = _interopRequireDefault(__webpack_require__(1057));
144379
144453
  function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
144380
144454
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
144381
144455
  function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
@@ -145260,9 +145334,11 @@ function _onBeforeSelectColumns(from, to, highlight) {
145260
145334
  * @param {Array} renderersArray Array of renderers.
145261
145335
  */
145262
145336
  function _onAfterGetColumnHeaderRenderers(renderersArray) {
145263
- renderersArray.length = 0;
145264
- for (let headerLayer = 0; headerLayer < _classPrivateFieldGet(_stateManager, this).getLayersCount(); headerLayer++) {
145265
- renderersArray.push(this.headerRendererFactory(headerLayer));
145337
+ if (_classPrivateFieldGet(_stateManager, this).getLayersCount() > 0) {
145338
+ renderersArray.length = 0;
145339
+ for (let headerLayer = 0; headerLayer < _classPrivateFieldGet(_stateManager, this).getLayersCount(); headerLayer++) {
145340
+ renderersArray.push(this.headerRendererFactory(headerLayer));
145341
+ }
145266
145342
  }
145267
145343
  }
145268
145344
  /**
@@ -145361,7 +145437,7 @@ function _onAfterLoadData(sourceData, initialLoad) {
145361
145437
  }
145362
145438
 
145363
145439
  /***/ }),
145364
- /* 1045 */
145440
+ /* 1044 */
145365
145441
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
145366
145442
 
145367
145443
  "use strict";
@@ -145371,13 +145447,14 @@ var _interopRequireDefault = __webpack_require__(197);
145371
145447
  exports.__esModule = true;
145372
145448
  __webpack_require__(201);
145373
145449
  __webpack_require__(283);
145450
+ __webpack_require__(311);
145374
145451
  __webpack_require__(338);
145375
145452
  var _array = __webpack_require__(495);
145376
- var _sourceSettings2 = _interopRequireDefault(__webpack_require__(1046));
145377
- var _headersTree2 = _interopRequireDefault(__webpack_require__(1049));
145378
- var _nodeModifiers = __webpack_require__(1051);
145379
- var _matrixGenerator = __webpack_require__(1057);
145380
- var _tree = __webpack_require__(1050);
145453
+ var _sourceSettings2 = _interopRequireDefault(__webpack_require__(1045));
145454
+ var _headersTree2 = _interopRequireDefault(__webpack_require__(1048));
145455
+ var _nodeModifiers = __webpack_require__(1050);
145456
+ var _matrixGenerator = __webpack_require__(1056);
145457
+ var _tree = __webpack_require__(1049);
145381
145458
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
145382
145459
  function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
145383
145460
  function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
@@ -145852,7 +145929,7 @@ class StateManager {
145852
145929
  exports["default"] = StateManager;
145853
145930
 
145854
145931
  /***/ }),
145855
- /* 1046 */
145932
+ /* 1045 */
145856
145933
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
145857
145934
 
145858
145935
  "use strict";
@@ -145863,7 +145940,7 @@ __webpack_require__(201);
145863
145940
  __webpack_require__(283);
145864
145941
  var _object = __webpack_require__(499);
145865
145942
  var _array = __webpack_require__(495);
145866
- var _settingsNormalizer = __webpack_require__(1047);
145943
+ var _settingsNormalizer = __webpack_require__(1046);
145867
145944
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
145868
145945
  function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
145869
145946
  function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
@@ -146074,7 +146151,7 @@ class SourceSettings {
146074
146151
  exports["default"] = SourceSettings;
146075
146152
 
146076
146153
  /***/ }),
146077
- /* 1047 */
146154
+ /* 1046 */
146078
146155
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
146079
146156
 
146080
146157
  "use strict";
@@ -146086,7 +146163,7 @@ __webpack_require__(283);
146086
146163
  var _array = __webpack_require__(495);
146087
146164
  var _object = __webpack_require__(499);
146088
146165
  var _mixed = __webpack_require__(354);
146089
- var _utils = __webpack_require__(1048);
146166
+ var _utils = __webpack_require__(1047);
146090
146167
  /* eslint-disable jsdoc/require-description-complete-sentence */
146091
146168
 
146092
146169
  /**
@@ -146188,7 +146265,7 @@ function normalizeSettings(sourceSettings) {
146188
146265
  }
146189
146266
 
146190
146267
  /***/ }),
146191
- /* 1048 */
146268
+ /* 1047 */
146192
146269
  /***/ ((__unused_webpack_module, exports) => {
146193
146270
 
146194
146271
  "use strict";
@@ -146265,7 +146342,7 @@ function createPlaceholderHeaderSettings() {
146265
146342
  }
146266
146343
 
146267
146344
  /***/ }),
146268
- /* 1049 */
146345
+ /* 1048 */
146269
146346
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
146270
146347
 
146271
146348
  "use strict";
@@ -146275,7 +146352,7 @@ var _interopRequireDefault = __webpack_require__(197);
146275
146352
  exports.__esModule = true;
146276
146353
  __webpack_require__(201);
146277
146354
  var _array = __webpack_require__(495);
146278
- var _tree = _interopRequireDefault(__webpack_require__(1050));
146355
+ var _tree = _interopRequireDefault(__webpack_require__(1049));
146279
146356
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
146280
146357
  function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
146281
146358
  function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
@@ -146503,7 +146580,7 @@ class HeadersTree {
146503
146580
  exports["default"] = HeadersTree;
146504
146581
 
146505
146582
  /***/ }),
146506
- /* 1050 */
146583
+ /* 1049 */
146507
146584
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
146508
146585
 
146509
146586
  "use strict";
@@ -146722,7 +146799,7 @@ class TreeNode {
146722
146799
  exports["default"] = TreeNode;
146723
146800
 
146724
146801
  /***/ }),
146725
- /* 1051 */
146802
+ /* 1050 */
146726
146803
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
146727
146804
 
146728
146805
  "use strict";
@@ -146731,10 +146808,10 @@ exports["default"] = TreeNode;
146731
146808
  exports.__esModule = true;
146732
146809
  exports.triggerNodeModification = triggerNodeModification;
146733
146810
  __webpack_require__(201);
146734
- var _collapse = __webpack_require__(1052);
146735
- var _expand = __webpack_require__(1053);
146736
- var _hideColumn = __webpack_require__(1055);
146737
- var _showColumn = __webpack_require__(1056);
146811
+ var _collapse = __webpack_require__(1051);
146812
+ var _expand = __webpack_require__(1052);
146813
+ var _hideColumn = __webpack_require__(1054);
146814
+ var _showColumn = __webpack_require__(1055);
146738
146815
  /**
146739
146816
  * The NodeModifiers module is responsible for the modification of a tree structure
146740
146817
  * in a way to achieve new column headers state.
@@ -146764,7 +146841,7 @@ function triggerNodeModification(actionName, nodeToProcess, gridColumnIndex) {
146764
146841
  }
146765
146842
 
146766
146843
  /***/ }),
146767
- /* 1052 */
146844
+ /* 1051 */
146768
146845
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
146769
146846
 
146770
146847
  "use strict";
@@ -146780,8 +146857,8 @@ __webpack_require__(305);
146780
146857
  __webpack_require__(307);
146781
146858
  __webpack_require__(309);
146782
146859
  var _array = __webpack_require__(495);
146783
- var _expand = __webpack_require__(1053);
146784
- var _tree = __webpack_require__(1054);
146860
+ var _expand = __webpack_require__(1052);
146861
+ var _tree = __webpack_require__(1053);
146785
146862
  /**
146786
146863
  * Collapsing a node is a process where the processing node is collapsed
146787
146864
  * to the colspan width of the first child. All node children, except the
@@ -146874,7 +146951,7 @@ function collapseNode(nodeToProcess) {
146874
146951
  }
146875
146952
 
146876
146953
  /***/ }),
146877
- /* 1053 */
146954
+ /* 1052 */
146878
146955
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
146879
146956
 
146880
146957
  "use strict";
@@ -146890,8 +146967,8 @@ __webpack_require__(305);
146890
146967
  __webpack_require__(307);
146891
146968
  __webpack_require__(309);
146892
146969
  var _array = __webpack_require__(495);
146893
- var _collapse = __webpack_require__(1052);
146894
- var _tree = __webpack_require__(1054);
146970
+ var _collapse = __webpack_require__(1051);
146971
+ var _tree = __webpack_require__(1053);
146895
146972
  /**
146896
146973
  * Expanding a node is a process where the processing node is expanded to
146897
146974
  * its original colspan width. To restore an original state of all node
@@ -146979,7 +147056,7 @@ function expandNode(nodeToProcess) {
146979
147056
  }
146980
147057
 
146981
147058
  /***/ }),
146982
- /* 1054 */
147059
+ /* 1053 */
146983
147060
  /***/ ((__unused_webpack_module, exports) => {
146984
147061
 
146985
147062
  "use strict";
@@ -147050,7 +147127,7 @@ function isNodeReflectsFirstChildColspan(node) {
147050
147127
  }
147051
147128
 
147052
147129
  /***/ }),
147053
- /* 1055 */
147130
+ /* 1054 */
147054
147131
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
147055
147132
 
147056
147133
  "use strict";
@@ -147113,7 +147190,7 @@ the last node, the hide column modification can be applied.`);
147113
147190
  }
147114
147191
 
147115
147192
  /***/ }),
147116
- /* 1056 */
147193
+ /* 1055 */
147117
147194
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
147118
147195
 
147119
147196
  "use strict";
@@ -147174,7 +147251,7 @@ the last node, the show column modification can be applied.`);
147174
147251
  }
147175
147252
 
147176
147253
  /***/ }),
147177
- /* 1057 */
147254
+ /* 1056 */
147178
147255
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
147179
147256
 
147180
147257
  "use strict";
@@ -147184,7 +147261,7 @@ exports.__esModule = true;
147184
147261
  exports.generateMatrix = generateMatrix;
147185
147262
  __webpack_require__(283);
147186
147263
  var _array = __webpack_require__(495);
147187
- var _utils = __webpack_require__(1048);
147264
+ var _utils = __webpack_require__(1047);
147188
147265
  /* eslint-disable jsdoc/require-description-complete-sentence */
147189
147266
 
147190
147267
  /**
@@ -147280,7 +147357,7 @@ function createNestedArrayIfNecessary(array, index) {
147280
147357
  }
147281
147358
 
147282
147359
  /***/ }),
147283
- /* 1058 */
147360
+ /* 1057 */
147284
147361
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
147285
147362
 
147286
147363
  "use strict";
@@ -147436,20 +147513,20 @@ class GhostTable {
147436
147513
  var _default = exports["default"] = GhostTable;
147437
147514
 
147438
147515
  /***/ }),
147439
- /* 1059 */
147516
+ /* 1058 */
147440
147517
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
147441
147518
 
147442
147519
  "use strict";
147443
147520
 
147444
147521
 
147445
147522
  exports.__esModule = true;
147446
- var _nestedRows = __webpack_require__(1060);
147523
+ var _nestedRows = __webpack_require__(1059);
147447
147524
  exports.PLUGIN_KEY = _nestedRows.PLUGIN_KEY;
147448
147525
  exports.PLUGIN_PRIORITY = _nestedRows.PLUGIN_PRIORITY;
147449
147526
  exports.NestedRows = _nestedRows.NestedRows;
147450
147527
 
147451
147528
  /***/ }),
147452
- /* 1060 */
147529
+ /* 1059 */
147453
147530
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
147454
147531
 
147455
147532
  "use strict";
@@ -147471,15 +147548,15 @@ __webpack_require__(329);
147471
147548
  __webpack_require__(530);
147472
147549
  var _defineProperty2 = _interopRequireDefault(__webpack_require__(504));
147473
147550
  var _base = __webpack_require__(841);
147474
- var _dataManager = _interopRequireDefault(__webpack_require__(1061));
147475
- var _collapsing = _interopRequireDefault(__webpack_require__(1062));
147476
- var _headers = _interopRequireDefault(__webpack_require__(1064));
147477
- var _contextMenu = _interopRequireDefault(__webpack_require__(1065));
147551
+ var _dataManager = _interopRequireDefault(__webpack_require__(1060));
147552
+ var _collapsing = _interopRequireDefault(__webpack_require__(1061));
147553
+ var _headers = _interopRequireDefault(__webpack_require__(1063));
147554
+ var _contextMenu = _interopRequireDefault(__webpack_require__(1064));
147478
147555
  var _console = __webpack_require__(512);
147479
147556
  var _data = __webpack_require__(622);
147480
147557
  var _translations = __webpack_require__(625);
147481
147558
  var _shortcutContexts = __webpack_require__(686);
147482
- var _rowMoveController = _interopRequireDefault(__webpack_require__(1066));
147559
+ var _rowMoveController = _interopRequireDefault(__webpack_require__(1065));
147483
147560
  function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
147484
147561
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
147485
147562
  function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
@@ -148011,7 +148088,7 @@ function _onBeforeLoadData(data) {
148011
148088
  }
148012
148089
 
148013
148090
  /***/ }),
148014
- /* 1061 */
148091
+ /* 1060 */
148015
148092
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
148016
148093
 
148017
148094
  "use strict";
@@ -148727,7 +148804,7 @@ class DataManager {
148727
148804
  var _default = exports["default"] = DataManager;
148728
148805
 
148729
148806
  /***/ }),
148730
- /* 1062 */
148807
+ /* 1061 */
148731
148808
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
148732
148809
 
148733
148810
  "use strict";
@@ -148740,8 +148817,8 @@ var _event = __webpack_require__(509);
148740
148817
  var _array = __webpack_require__(495);
148741
148818
  var _number = __webpack_require__(534);
148742
148819
  var _element = __webpack_require__(351);
148743
- var _base = _interopRequireDefault(__webpack_require__(1063));
148744
- var _headers = _interopRequireDefault(__webpack_require__(1064));
148820
+ var _base = _interopRequireDefault(__webpack_require__(1062));
148821
+ var _headers = _interopRequireDefault(__webpack_require__(1063));
148745
148822
  /**
148746
148823
  * Class responsible for the UI for collapsing and expanding groups.
148747
148824
  *
@@ -149202,7 +149279,7 @@ class CollapsingUI extends _base.default {
149202
149279
  var _default = exports["default"] = CollapsingUI;
149203
149280
 
149204
149281
  /***/ }),
149205
- /* 1063 */
149282
+ /* 1062 */
149206
149283
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
149207
149284
 
149208
149285
  "use strict";
@@ -149236,7 +149313,7 @@ class BaseUI {
149236
149313
  var _default = exports["default"] = BaseUI;
149237
149314
 
149238
149315
  /***/ }),
149239
- /* 1064 */
149316
+ /* 1063 */
149240
149317
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
149241
149318
 
149242
149319
  "use strict";
@@ -149247,7 +149324,7 @@ exports.__esModule = true;
149247
149324
  var _array = __webpack_require__(495);
149248
149325
  var _number = __webpack_require__(534);
149249
149326
  var _element = __webpack_require__(351);
149250
- var _base = _interopRequireDefault(__webpack_require__(1063));
149327
+ var _base = _interopRequireDefault(__webpack_require__(1062));
149251
149328
  var _a11y = __webpack_require__(496);
149252
149329
  /**
149253
149330
  * Class responsible for the UI in the Nested Rows' row headers.
@@ -149380,7 +149457,7 @@ class HeadersUI extends _base.default {
149380
149457
  var _default = exports["default"] = HeadersUI;
149381
149458
 
149382
149459
  /***/ }),
149383
- /* 1065 */
149460
+ /* 1064 */
149384
149461
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
149385
149462
 
149386
149463
  "use strict";
@@ -149393,7 +149470,7 @@ var _defineProperty2 = _interopRequireDefault(__webpack_require__(504));
149393
149470
  var _number = __webpack_require__(534);
149394
149471
  var _array = __webpack_require__(495);
149395
149472
  var C = _interopRequireWildcard(__webpack_require__(651));
149396
- var _base = _interopRequireDefault(__webpack_require__(1063));
149473
+ var _base = _interopRequireDefault(__webpack_require__(1062));
149397
149474
  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); }
149398
149475
  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; }
149399
149476
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
@@ -149499,7 +149576,7 @@ class ContextMenuUI extends _base.default {
149499
149576
  var _default = exports["default"] = ContextMenuUI;
149500
149577
 
149501
149578
  /***/ }),
149502
- /* 1066 */
149579
+ /* 1065 */
149503
149580
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
149504
149581
 
149505
149582
  "use strict";
@@ -149788,20 +149865,20 @@ class RowMoveController {
149788
149865
  exports["default"] = RowMoveController;
149789
149866
 
149790
149867
  /***/ }),
149791
- /* 1067 */
149868
+ /* 1066 */
149792
149869
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
149793
149870
 
149794
149871
  "use strict";
149795
149872
 
149796
149873
 
149797
149874
  exports.__esModule = true;
149798
- var _persistentState = __webpack_require__(1068);
149875
+ var _persistentState = __webpack_require__(1067);
149799
149876
  exports.PLUGIN_KEY = _persistentState.PLUGIN_KEY;
149800
149877
  exports.PLUGIN_PRIORITY = _persistentState.PLUGIN_PRIORITY;
149801
149878
  exports.PersistentState = _persistentState.PersistentState;
149802
149879
 
149803
149880
  /***/ }),
149804
- /* 1068 */
149881
+ /* 1067 */
149805
149882
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
149806
149883
 
149807
149884
  "use strict";
@@ -149811,7 +149888,7 @@ var _interopRequireDefault = __webpack_require__(197);
149811
149888
  exports.__esModule = true;
149812
149889
  var _defineProperty2 = _interopRequireDefault(__webpack_require__(504));
149813
149890
  var _base = __webpack_require__(841);
149814
- var _storage = _interopRequireDefault(__webpack_require__(1069));
149891
+ var _storage = _interopRequireDefault(__webpack_require__(1068));
149815
149892
  var _hooks = __webpack_require__(511);
149816
149893
  _hooks.Hooks.getSingleton().register('persistentStateSave');
149817
149894
  _hooks.Hooks.getSingleton().register('persistentStateLoad');
@@ -149952,7 +150029,7 @@ class PersistentState extends _base.BasePlugin {
149952
150029
  exports.PersistentState = PersistentState;
149953
150030
 
149954
150031
  /***/ }),
149955
- /* 1069 */
150032
+ /* 1068 */
149956
150033
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
149957
150034
 
149958
150035
  "use strict";
@@ -150076,20 +150153,20 @@ class Storage {
150076
150153
  var _default = exports["default"] = Storage;
150077
150154
 
150078
150155
  /***/ }),
150079
- /* 1070 */
150156
+ /* 1069 */
150080
150157
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
150081
150158
 
150082
150159
  "use strict";
150083
150160
 
150084
150161
 
150085
150162
  exports.__esModule = true;
150086
- var _search = __webpack_require__(1071);
150163
+ var _search = __webpack_require__(1070);
150087
150164
  exports.PLUGIN_KEY = _search.PLUGIN_KEY;
150088
150165
  exports.PLUGIN_PRIORITY = _search.PLUGIN_PRIORITY;
150089
150166
  exports.Search = _search.Search;
150090
150167
 
150091
150168
  /***/ }),
150092
- /* 1071 */
150169
+ /* 1070 */
150093
150170
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
150094
150171
 
150095
150172
  "use strict";
@@ -150397,20 +150474,20 @@ function _onBeforeRenderer(TD, row, col, prop, value, cellProperties) {
150397
150474
  }
150398
150475
 
150399
150476
  /***/ }),
150400
- /* 1072 */
150477
+ /* 1071 */
150401
150478
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
150402
150479
 
150403
150480
  "use strict";
150404
150481
 
150405
150482
 
150406
150483
  exports.__esModule = true;
150407
- var _stretchColumns = __webpack_require__(1073);
150484
+ var _stretchColumns = __webpack_require__(1072);
150408
150485
  exports.PLUGIN_KEY = _stretchColumns.PLUGIN_KEY;
150409
150486
  exports.PLUGIN_PRIORITY = _stretchColumns.PLUGIN_PRIORITY;
150410
150487
  exports.StretchColumns = _stretchColumns.StretchColumns;
150411
150488
 
150412
150489
  /***/ }),
150413
- /* 1073 */
150490
+ /* 1072 */
150414
150491
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
150415
150492
 
150416
150493
  "use strict";
@@ -150421,7 +150498,7 @@ __webpack_require__(201);
150421
150498
  __webpack_require__(311);
150422
150499
  __webpack_require__(329);
150423
150500
  var _base = __webpack_require__(841);
150424
- var _calculator = __webpack_require__(1074);
150501
+ var _calculator = __webpack_require__(1073);
150425
150502
  function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
150426
150503
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
150427
150504
  function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
@@ -150638,7 +150715,7 @@ function _onBeforeRender(fullRender) {
150638
150715
  }
150639
150716
 
150640
150717
  /***/ }),
150641
- /* 1074 */
150718
+ /* 1073 */
150642
150719
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
150643
150720
 
150644
150721
  "use strict";
@@ -150650,8 +150727,8 @@ __webpack_require__(311);
150650
150727
  __webpack_require__(329);
150651
150728
  var _src = __webpack_require__(540);
150652
150729
  var _element = __webpack_require__(351);
150653
- var _all = __webpack_require__(1075);
150654
- var _last = __webpack_require__(1077);
150730
+ var _all = __webpack_require__(1074);
150731
+ var _last = __webpack_require__(1076);
150655
150732
  function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
150656
150733
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
150657
150734
  function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
@@ -150806,7 +150883,7 @@ function _overwriteColumnWidthFn(columnWidth, columnVisualIndex) {
150806
150883
  }
150807
150884
 
150808
150885
  /***/ }),
150809
- /* 1075 */
150886
+ /* 1074 */
150810
150887
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
150811
150888
 
150812
150889
  "use strict";
@@ -150818,7 +150895,7 @@ __webpack_require__(311);
150818
150895
  __webpack_require__(329);
150819
150896
  __webpack_require__(530);
150820
150897
  var _src = __webpack_require__(540);
150821
- var _base = __webpack_require__(1076);
150898
+ var _base = __webpack_require__(1075);
150822
150899
  /**
150823
150900
  * The strategy calculates the column widths by stretching all columns evenly.
150824
150901
  *
@@ -150883,7 +150960,7 @@ class StretchAllStrategy extends _base.StretchStrategy {
150883
150960
  exports.StretchAllStrategy = StretchAllStrategy;
150884
150961
 
150885
150962
  /***/ }),
150886
- /* 1076 */
150963
+ /* 1075 */
150887
150964
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
150888
150965
 
150889
150966
  "use strict";
@@ -150972,7 +151049,7 @@ class StretchStrategy {
150972
151049
  exports.StretchStrategy = StretchStrategy;
150973
151050
 
150974
151051
  /***/ }),
150975
- /* 1077 */
151052
+ /* 1076 */
150976
151053
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
150977
151054
 
150978
151055
  "use strict";
@@ -150982,7 +151059,7 @@ exports.__esModule = true;
150982
151059
  __webpack_require__(201);
150983
151060
  __webpack_require__(311);
150984
151061
  __webpack_require__(530);
150985
- var _base = __webpack_require__(1076);
151062
+ var _base = __webpack_require__(1075);
150986
151063
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
150987
151064
  function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
150988
151065
  function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
@@ -151057,20 +151134,20 @@ class StretchLastStrategy extends _base.StretchStrategy {
151057
151134
  exports.StretchLastStrategy = StretchLastStrategy;
151058
151135
 
151059
151136
  /***/ }),
151060
- /* 1078 */
151137
+ /* 1077 */
151061
151138
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
151062
151139
 
151063
151140
  "use strict";
151064
151141
 
151065
151142
 
151066
151143
  exports.__esModule = true;
151067
- var _touchScroll = __webpack_require__(1079);
151144
+ var _touchScroll = __webpack_require__(1078);
151068
151145
  exports.PLUGIN_KEY = _touchScroll.PLUGIN_KEY;
151069
151146
  exports.PLUGIN_PRIORITY = _touchScroll.PLUGIN_PRIORITY;
151070
151147
  exports.TouchScroll = _touchScroll.TouchScroll;
151071
151148
 
151072
151149
  /***/ }),
151073
- /* 1079 */
151150
+ /* 1078 */
151074
151151
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
151075
151152
 
151076
151153
  "use strict";
@@ -151259,20 +151336,20 @@ function _onAfterMomentumScroll() {
151259
151336
  }
151260
151337
 
151261
151338
  /***/ }),
151262
- /* 1080 */
151339
+ /* 1079 */
151263
151340
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
151264
151341
 
151265
151342
  "use strict";
151266
151343
 
151267
151344
 
151268
151345
  exports.__esModule = true;
151269
- var _trimRows = __webpack_require__(1081);
151346
+ var _trimRows = __webpack_require__(1080);
151270
151347
  exports.PLUGIN_KEY = _trimRows.PLUGIN_KEY;
151271
151348
  exports.PLUGIN_PRIORITY = _trimRows.PLUGIN_PRIORITY;
151272
151349
  exports.TrimRows = _trimRows.TrimRows;
151273
151350
 
151274
151351
  /***/ }),
151275
- /* 1081 */
151352
+ /* 1080 */
151276
151353
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
151277
151354
 
151278
151355
  "use strict";
@@ -151604,20 +151681,20 @@ function _onMapInit() {
151604
151681
  }
151605
151682
 
151606
151683
  /***/ }),
151607
- /* 1082 */
151684
+ /* 1081 */
151608
151685
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
151609
151686
 
151610
151687
  "use strict";
151611
151688
 
151612
151689
 
151613
151690
  exports.__esModule = true;
151614
- var _undoRedo = __webpack_require__(1083);
151691
+ var _undoRedo = __webpack_require__(1082);
151615
151692
  exports.PLUGIN_KEY = _undoRedo.PLUGIN_KEY;
151616
151693
  exports.PLUGIN_PRIORITY = _undoRedo.PLUGIN_PRIORITY;
151617
151694
  exports.UndoRedo = _undoRedo.UndoRedo;
151618
151695
 
151619
151696
  /***/ }),
151620
- /* 1083 */
151697
+ /* 1082 */
151621
151698
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
151622
151699
 
151623
151700
  "use strict";
@@ -151640,7 +151717,7 @@ var _hooks = __webpack_require__(511);
151640
151717
  var _object = __webpack_require__(499);
151641
151718
  var _templateLiteralTag = __webpack_require__(494);
151642
151719
  var _console = __webpack_require__(512);
151643
- var _actions = __webpack_require__(1084);
151720
+ var _actions = __webpack_require__(1083);
151644
151721
  function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
151645
151722
  function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
151646
151723
  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"); }
@@ -152010,7 +152087,7 @@ function _removeAPIFromCore() {
152010
152087
  }
152011
152088
 
152012
152089
  /***/ }),
152013
- /* 1084 */
152090
+ /* 1083 */
152014
152091
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
152015
152092
 
152016
152093
  "use strict";
@@ -152020,18 +152097,18 @@ exports.__esModule = true;
152020
152097
  exports.registerActions = registerActions;
152021
152098
  __webpack_require__(311);
152022
152099
  __webpack_require__(329);
152023
- var _cellAlignment = __webpack_require__(1085);
152024
- var _columnMove = __webpack_require__(1087);
152025
- var _columnSort = __webpack_require__(1088);
152026
- var _createColumn = __webpack_require__(1089);
152027
- var _createRow = __webpack_require__(1090);
152028
- var _dataChange = __webpack_require__(1091);
152029
- var _filters = __webpack_require__(1092);
152030
- var _mergeCells = __webpack_require__(1093);
152031
- var _removeColumn = __webpack_require__(1094);
152032
- var _removeRow = __webpack_require__(1097);
152033
- var _rowMove = __webpack_require__(1098);
152034
- var _unmergeCells = __webpack_require__(1099);
152100
+ var _cellAlignment = __webpack_require__(1084);
152101
+ var _columnMove = __webpack_require__(1086);
152102
+ var _columnSort = __webpack_require__(1087);
152103
+ var _createColumn = __webpack_require__(1088);
152104
+ var _createRow = __webpack_require__(1089);
152105
+ var _dataChange = __webpack_require__(1090);
152106
+ var _filters = __webpack_require__(1091);
152107
+ var _mergeCells = __webpack_require__(1092);
152108
+ var _removeColumn = __webpack_require__(1093);
152109
+ var _removeRow = __webpack_require__(1096);
152110
+ var _rowMove = __webpack_require__(1097);
152111
+ var _unmergeCells = __webpack_require__(1098);
152035
152112
  /**
152036
152113
  * Register all undo/redo actions.
152037
152114
  *
@@ -152043,7 +152120,7 @@ function registerActions(hot, undoRedoPlugin) {
152043
152120
  }
152044
152121
 
152045
152122
  /***/ }),
152046
- /* 1085 */
152123
+ /* 1084 */
152047
152124
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
152048
152125
 
152049
152126
  "use strict";
@@ -152052,7 +152129,7 @@ function registerActions(hot, undoRedoPlugin) {
152052
152129
  var _interopRequireDefault = __webpack_require__(197);
152053
152130
  exports.__esModule = true;
152054
152131
  var _defineProperty2 = _interopRequireDefault(__webpack_require__(504));
152055
- var _base = __webpack_require__(1086);
152132
+ var _base = __webpack_require__(1085);
152056
152133
  var _utils = __webpack_require__(881);
152057
152134
  var _array = __webpack_require__(495);
152058
152135
  /**
@@ -152069,7 +152146,7 @@ class CellAlignmentAction extends _base.BaseAction {
152069
152146
  type,
152070
152147
  alignment
152071
152148
  } = _ref;
152072
- super();
152149
+ super('cell_alignment');
152073
152150
  /**
152074
152151
  * @param {Array} stateBefore The previous state.
152075
152152
  */
@@ -152132,14 +152209,16 @@ class CellAlignmentAction extends _base.BaseAction {
152132
152209
  exports.CellAlignmentAction = CellAlignmentAction;
152133
152210
 
152134
152211
  /***/ }),
152135
- /* 1086 */
152212
+ /* 1085 */
152136
152213
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
152137
152214
 
152138
152215
  "use strict";
152139
152216
 
152140
152217
 
152218
+ var _interopRequireDefault = __webpack_require__(197);
152141
152219
  exports.__esModule = true;
152142
152220
  __webpack_require__(201);
152221
+ var _defineProperty2 = _interopRequireDefault(__webpack_require__(504));
152143
152222
  /**
152144
152223
  * An abstract class that defines the structure of an undo/redo action.
152145
152224
  *
@@ -152147,6 +152226,13 @@ __webpack_require__(201);
152147
152226
  * @private
152148
152227
  */
152149
152228
  class BaseAction {
152229
+ constructor(actionType) {
152230
+ /**
152231
+ * @param {string} actionType The action type.
152232
+ */
152233
+ (0, _defineProperty2.default)(this, "actionType", '');
152234
+ this.actionType = actionType;
152235
+ }
152150
152236
  undo() {
152151
152237
  throw new Error('Not implemented');
152152
152238
  }
@@ -152157,7 +152243,7 @@ class BaseAction {
152157
152243
  exports.BaseAction = BaseAction;
152158
152244
 
152159
152245
  /***/ }),
152160
- /* 1087 */
152246
+ /* 1086 */
152161
152247
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
152162
152248
 
152163
152249
  "use strict";
@@ -152168,7 +152254,7 @@ exports.__esModule = true;
152168
152254
  __webpack_require__(311);
152169
152255
  __webpack_require__(329);
152170
152256
  var _defineProperty2 = _interopRequireDefault(__webpack_require__(504));
152171
- var _base = __webpack_require__(1086);
152257
+ var _base = __webpack_require__(1085);
152172
152258
  var _moves = __webpack_require__(995);
152173
152259
  /**
152174
152260
  * Action that tracks column move changes.
@@ -152182,7 +152268,7 @@ class ColumnMoveAction extends _base.BaseAction {
152182
152268
  columns,
152183
152269
  finalIndex
152184
152270
  } = _ref;
152185
- super();
152271
+ super('col_move');
152186
152272
  /**
152187
152273
  * @param {number[]} columns An array with moved columns.
152188
152274
  */
@@ -152245,7 +152331,7 @@ class ColumnMoveAction extends _base.BaseAction {
152245
152331
  exports.ColumnMoveAction = ColumnMoveAction;
152246
152332
 
152247
152333
  /***/ }),
152248
- /* 1088 */
152334
+ /* 1087 */
152249
152335
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
152250
152336
 
152251
152337
  "use strict";
@@ -152254,7 +152340,7 @@ exports.ColumnMoveAction = ColumnMoveAction;
152254
152340
  var _interopRequireDefault = __webpack_require__(197);
152255
152341
  exports.__esModule = true;
152256
152342
  var _defineProperty2 = _interopRequireDefault(__webpack_require__(504));
152257
- var _base = __webpack_require__(1086);
152343
+ var _base = __webpack_require__(1085);
152258
152344
  /**
152259
152345
  * Action that tracks column sort changes.
152260
152346
  *
@@ -152267,7 +152353,7 @@ class ColumnSortAction extends _base.BaseAction {
152267
152353
  currentSortState,
152268
152354
  newSortState
152269
152355
  } = _ref;
152270
- super();
152356
+ super('col_sort');
152271
152357
  /**
152272
152358
  * @param {Array} currentSortState The current sort state.
152273
152359
  */
@@ -152322,7 +152408,7 @@ class ColumnSortAction extends _base.BaseAction {
152322
152408
  exports.ColumnSortAction = ColumnSortAction;
152323
152409
 
152324
152410
  /***/ }),
152325
- /* 1089 */
152411
+ /* 1088 */
152326
152412
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
152327
152413
 
152328
152414
  "use strict";
@@ -152331,7 +152417,7 @@ exports.ColumnSortAction = ColumnSortAction;
152331
152417
  var _interopRequireDefault = __webpack_require__(197);
152332
152418
  exports.__esModule = true;
152333
152419
  var _defineProperty2 = _interopRequireDefault(__webpack_require__(504));
152334
- var _base = __webpack_require__(1086);
152420
+ var _base = __webpack_require__(1085);
152335
152421
  /**
152336
152422
  * Action that tracks column creation.
152337
152423
  *
@@ -152344,7 +152430,7 @@ class CreateColumnAction extends _base.BaseAction {
152344
152430
  index,
152345
152431
  amount
152346
152432
  } = _ref;
152347
- super();
152433
+ super('insert_col');
152348
152434
  /**
152349
152435
  * @param {number} index The visual column index.
152350
152436
  */
@@ -152386,7 +152472,7 @@ class CreateColumnAction extends _base.BaseAction {
152386
152472
  exports.CreateColumnAction = CreateColumnAction;
152387
152473
 
152388
152474
  /***/ }),
152389
- /* 1090 */
152475
+ /* 1089 */
152390
152476
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
152391
152477
 
152392
152478
  "use strict";
@@ -152395,7 +152481,7 @@ exports.CreateColumnAction = CreateColumnAction;
152395
152481
  var _interopRequireDefault = __webpack_require__(197);
152396
152482
  exports.__esModule = true;
152397
152483
  var _defineProperty2 = _interopRequireDefault(__webpack_require__(504));
152398
- var _base = __webpack_require__(1086);
152484
+ var _base = __webpack_require__(1085);
152399
152485
  /**
152400
152486
  * Action that tracks row creation.
152401
152487
  *
@@ -152408,7 +152494,7 @@ class CreateRowAction extends _base.BaseAction {
152408
152494
  index,
152409
152495
  amount
152410
152496
  } = _ref;
152411
- super();
152497
+ super('insert_row');
152412
152498
  /**
152413
152499
  * @param {number} index The visual row index.
152414
152500
  */
@@ -152455,7 +152541,7 @@ class CreateRowAction extends _base.BaseAction {
152455
152541
  exports.CreateRowAction = CreateRowAction;
152456
152542
 
152457
152543
  /***/ }),
152458
- /* 1091 */
152544
+ /* 1090 */
152459
152545
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
152460
152546
 
152461
152547
  "use strict";
@@ -152469,7 +152555,7 @@ __webpack_require__(519);
152469
152555
  __webpack_require__(329);
152470
152556
  __webpack_require__(530);
152471
152557
  var _defineProperty2 = _interopRequireDefault(__webpack_require__(504));
152472
- var _base = __webpack_require__(1086);
152558
+ var _base = __webpack_require__(1085);
152473
152559
  var _object = __webpack_require__(499);
152474
152560
  /**
152475
152561
  * Action that tracks data changes.
@@ -152485,7 +152571,7 @@ class DataChangeAction extends _base.BaseAction {
152485
152571
  countCols,
152486
152572
  countRows
152487
152573
  } = _ref;
152488
- super();
152574
+ super('change');
152489
152575
  /**
152490
152576
  * @param {Array} changes 2D array containing information about each of the edited cells.
152491
152577
  */
@@ -152582,7 +152668,7 @@ class DataChangeAction extends _base.BaseAction {
152582
152668
  exports.DataChangeAction = DataChangeAction;
152583
152669
 
152584
152670
  /***/ }),
152585
- /* 1092 */
152671
+ /* 1091 */
152586
152672
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
152587
152673
 
152588
152674
  "use strict";
@@ -152593,7 +152679,7 @@ exports.__esModule = true;
152593
152679
  __webpack_require__(311);
152594
152680
  __webpack_require__(323);
152595
152681
  var _defineProperty2 = _interopRequireDefault(__webpack_require__(504));
152596
- var _base = __webpack_require__(1086);
152682
+ var _base = __webpack_require__(1085);
152597
152683
  /**
152598
152684
  * Action that tracks filter changes.
152599
152685
  *
@@ -152606,7 +152692,7 @@ class FiltersAction extends _base.BaseAction {
152606
152692
  conditionsStack,
152607
152693
  previousConditionsStack
152608
152694
  } = _ref;
152609
- super();
152695
+ super('filter');
152610
152696
  /**
152611
152697
  * @param {Array} previousConditionsStack An array of the previous filter conditions.
152612
152698
  */
@@ -152634,7 +152720,7 @@ class FiltersAction extends _base.BaseAction {
152634
152720
  undo(hot, undoneCallback) {
152635
152721
  const filters = hot.getPlugin('filters');
152636
152722
  hot.addHookOnce('afterViewRender', undoneCallback);
152637
- filters.conditionCollection.importAllConditions(this.previousConditionsStack);
152723
+ filters.importConditions(this.previousConditionsStack);
152638
152724
  filters.filter();
152639
152725
  }
152640
152726
 
@@ -152645,14 +152731,14 @@ class FiltersAction extends _base.BaseAction {
152645
152731
  redo(hot, redoneCallback) {
152646
152732
  const filters = hot.getPlugin('filters');
152647
152733
  hot.addHookOnce('afterViewRender', redoneCallback);
152648
- filters.conditionCollection.importAllConditions(this.conditionsStack);
152734
+ filters.importConditions(this.conditionsStack);
152649
152735
  filters.filter();
152650
152736
  }
152651
152737
  }
152652
152738
  exports.FiltersAction = FiltersAction;
152653
152739
 
152654
152740
  /***/ }),
152655
- /* 1093 */
152741
+ /* 1092 */
152656
152742
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
152657
152743
 
152658
152744
  "use strict";
@@ -152661,7 +152747,7 @@ exports.FiltersAction = FiltersAction;
152661
152747
  var _interopRequireDefault = __webpack_require__(197);
152662
152748
  exports.__esModule = true;
152663
152749
  var _defineProperty2 = _interopRequireDefault(__webpack_require__(504));
152664
- var _base = __webpack_require__(1086);
152750
+ var _base = __webpack_require__(1085);
152665
152751
  /**
152666
152752
  * Action that tracks changes in merged cells.
152667
152753
  *
@@ -152674,7 +152760,10 @@ class MergeCellsAction extends _base.BaseAction {
152674
152760
  data,
152675
152761
  cellRange
152676
152762
  } = _ref;
152677
- super();
152763
+ super('merge_cells');
152764
+ /**
152765
+ * @param {CellRange} cellRange The merged cell range.
152766
+ */
152678
152767
  (0, _defineProperty2.default)(this, "cellRange", void 0);
152679
152768
  this.cellRange = cellRange;
152680
152769
  this.data = data;
@@ -152719,7 +152808,7 @@ class MergeCellsAction extends _base.BaseAction {
152719
152808
  exports.MergeCellsAction = MergeCellsAction;
152720
152809
 
152721
152810
  /***/ }),
152722
- /* 1094 */
152811
+ /* 1093 */
152723
152812
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
152724
152813
 
152725
152814
  "use strict";
@@ -152731,8 +152820,8 @@ __webpack_require__(283);
152731
152820
  __webpack_require__(311);
152732
152821
  __webpack_require__(329);
152733
152822
  var _defineProperty2 = _interopRequireDefault(__webpack_require__(504));
152734
- var _base = __webpack_require__(1086);
152735
- var _utils = __webpack_require__(1095);
152823
+ var _base = __webpack_require__(1085);
152824
+ var _utils = __webpack_require__(1094);
152736
152825
  var _number = __webpack_require__(534);
152737
152826
  var _array = __webpack_require__(495);
152738
152827
  /**
@@ -152747,13 +152836,14 @@ class RemoveColumnAction extends _base.BaseAction {
152747
152836
  index,
152748
152837
  indexes,
152749
152838
  data,
152839
+ amount,
152750
152840
  headers,
152751
152841
  columnPositions,
152752
152842
  rowPositions,
152753
152843
  fixedColumnsStart,
152754
152844
  removedCellMetas
152755
152845
  } = _ref;
152756
- super();
152846
+ super('remove_col');
152757
152847
  /**
152758
152848
  * @param {number} index The visual column index.
152759
152849
  */
@@ -152793,7 +152883,7 @@ class RemoveColumnAction extends _base.BaseAction {
152793
152883
  this.index = index;
152794
152884
  this.indexes = indexes;
152795
152885
  this.data = data;
152796
- this.amount = this.data[0].length;
152886
+ this.amount = amount;
152797
152887
  this.headers = headers;
152798
152888
  this.columnPositions = columnPositions.slice(0);
152799
152889
  this.rowPositions = rowPositions.slice(0);
@@ -152831,6 +152921,7 @@ class RemoveColumnAction extends _base.BaseAction {
152831
152921
  index: columnIndex,
152832
152922
  indexes,
152833
152923
  data: removedData,
152924
+ amount,
152834
152925
  headers,
152835
152926
  columnPositions: columnsMap,
152836
152927
  rowPositions: rowsMap,
@@ -152899,7 +152990,7 @@ class RemoveColumnAction extends _base.BaseAction {
152899
152990
  exports.RemoveColumnAction = RemoveColumnAction;
152900
152991
 
152901
152992
  /***/ }),
152902
- /* 1095 */
152993
+ /* 1094 */
152903
152994
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
152904
152995
 
152905
152996
  "use strict";
@@ -152908,7 +152999,7 @@ exports.RemoveColumnAction = RemoveColumnAction;
152908
152999
  exports.__esModule = true;
152909
153000
  exports.getCellMetas = getCellMetas;
152910
153001
  __webpack_require__(283);
152911
- __webpack_require__(1096);
153002
+ __webpack_require__(1095);
152912
153003
  __webpack_require__(311);
152913
153004
  __webpack_require__(323);
152914
153005
  var _number = __webpack_require__(534);
@@ -152942,7 +153033,7 @@ function getCellMetas(hot, fromRow, toRow, fromColumn, toColumn) {
152942
153033
  }
152943
153034
 
152944
153035
  /***/ }),
152945
- /* 1096 */
153036
+ /* 1095 */
152946
153037
  /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
152947
153038
 
152948
153039
  "use strict";
@@ -152965,7 +153056,7 @@ $({ target: 'Object', stat: true }, {
152965
153056
 
152966
153057
 
152967
153058
  /***/ }),
152968
- /* 1097 */
153059
+ /* 1096 */
152969
153060
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
152970
153061
 
152971
153062
  "use strict";
@@ -152977,8 +153068,8 @@ __webpack_require__(283);
152977
153068
  __webpack_require__(311);
152978
153069
  __webpack_require__(329);
152979
153070
  var _defineProperty2 = _interopRequireDefault(__webpack_require__(504));
152980
- var _base = __webpack_require__(1086);
152981
- var _utils = __webpack_require__(1095);
153071
+ var _base = __webpack_require__(1085);
153072
+ var _utils = __webpack_require__(1094);
152982
153073
  var _object = __webpack_require__(499);
152983
153074
  /**
152984
153075
  * Action that tracks changes in row removal.
@@ -152996,7 +153087,7 @@ class RemoveRowAction extends _base.BaseAction {
152996
153087
  rowIndexesSequence,
152997
153088
  removedCellMetas
152998
153089
  } = _ref;
152999
- super();
153090
+ super('remove_row');
153000
153091
  /**
153001
153092
  * @param {number} index The visual row index.
153002
153093
  */
@@ -153088,7 +153179,7 @@ class RemoveRowAction extends _base.BaseAction {
153088
153179
  exports.RemoveRowAction = RemoveRowAction;
153089
153180
 
153090
153181
  /***/ }),
153091
- /* 1098 */
153182
+ /* 1097 */
153092
153183
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
153093
153184
 
153094
153185
  "use strict";
@@ -153099,7 +153190,7 @@ exports.__esModule = true;
153099
153190
  __webpack_require__(311);
153100
153191
  __webpack_require__(329);
153101
153192
  var _defineProperty2 = _interopRequireDefault(__webpack_require__(504));
153102
- var _base = __webpack_require__(1086);
153193
+ var _base = __webpack_require__(1085);
153103
153194
  var _moves = __webpack_require__(995);
153104
153195
  /**
153105
153196
  * Action that tracks row move changes.
@@ -153113,7 +153204,7 @@ class RowMoveAction extends _base.BaseAction {
153113
153204
  rows,
153114
153205
  finalIndex
153115
153206
  } = _ref;
153116
- super();
153207
+ super('row_move');
153117
153208
  /**
153118
153209
  * @param {number[]} rows An array with moved rows.
153119
153210
  */
@@ -153176,7 +153267,7 @@ class RowMoveAction extends _base.BaseAction {
153176
153267
  exports.RowMoveAction = RowMoveAction;
153177
153268
 
153178
153269
  /***/ }),
153179
- /* 1099 */
153270
+ /* 1098 */
153180
153271
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
153181
153272
 
153182
153273
  "use strict";
@@ -153185,7 +153276,7 @@ exports.RowMoveAction = RowMoveAction;
153185
153276
  var _interopRequireDefault = __webpack_require__(197);
153186
153277
  exports.__esModule = true;
153187
153278
  var _defineProperty2 = _interopRequireDefault(__webpack_require__(504));
153188
- var _base = __webpack_require__(1086);
153279
+ var _base = __webpack_require__(1085);
153189
153280
  /**
153190
153281
  * Action that tracks changes in merged cells.
153191
153282
  *
@@ -153197,7 +153288,10 @@ class UnmergeCellsAction extends _base.BaseAction {
153197
153288
  let {
153198
153289
  cellRange
153199
153290
  } = _ref;
153200
- super();
153291
+ super('unmerge_cells');
153292
+ /**
153293
+ * @param {CellRange} cellRange The merged cell range.
153294
+ */
153201
153295
  (0, _defineProperty2.default)(this, "cellRange", void 0);
153202
153296
  this.cellRange = cellRange;
153203
153297
  }
@@ -153236,7 +153330,7 @@ class UnmergeCellsAction extends _base.BaseAction {
153236
153330
  exports.UnmergeCellsAction = UnmergeCellsAction;
153237
153331
 
153238
153332
  /***/ }),
153239
- /* 1100 */
153333
+ /* 1099 */
153240
153334
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
153241
153335
 
153242
153336
  "use strict";