handsontable 0.0.0-next-fad35d5-20240924 → 0.0.0-next-ffdf116-20240926

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

Potentially problematic release.


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

Files changed (127) hide show
  1. package/3rdparty/walkontable/src/calculator/calculationType/renderedColumns.js +0 -23
  2. package/3rdparty/walkontable/src/calculator/calculationType/renderedColumns.mjs +0 -23
  3. package/3rdparty/walkontable/src/calculator/calculationType/renderedRows.js +0 -23
  4. package/3rdparty/walkontable/src/calculator/calculationType/renderedRows.mjs +0 -23
  5. package/3rdparty/walkontable/src/core/_base.js +0 -7
  6. package/3rdparty/walkontable/src/core/_base.mjs +0 -7
  7. package/3rdparty/walkontable/src/facade/core.js +0 -3
  8. package/3rdparty/walkontable/src/facade/core.mjs +0 -3
  9. package/3rdparty/walkontable/src/overlay/_base.js +0 -3
  10. package/3rdparty/walkontable/src/overlay/_base.mjs +0 -3
  11. package/3rdparty/walkontable/src/selection/border/border.js +45 -33
  12. package/3rdparty/walkontable/src/selection/border/border.mjs +46 -34
  13. package/3rdparty/walkontable/src/selection/scanner.js +11 -46
  14. package/3rdparty/walkontable/src/selection/scanner.mjs +11 -46
  15. package/3rdparty/walkontable/src/settings.js +0 -8
  16. package/3rdparty/walkontable/src/settings.mjs +0 -8
  17. package/3rdparty/walkontable/src/table/master.js +1 -1
  18. package/3rdparty/walkontable/src/table/master.mjs +2 -2
  19. package/3rdparty/walkontable/src/table.js +3 -6
  20. package/3rdparty/walkontable/src/table.mjs +3 -6
  21. package/3rdparty/walkontable/src/viewport.js +4 -26
  22. package/3rdparty/walkontable/src/viewport.mjs +4 -26
  23. package/base.js +4 -4
  24. package/base.mjs +3 -3
  25. package/core.d.ts +1 -1
  26. package/core.js +12 -13
  27. package/core.mjs +4 -5
  28. package/dataMap/metaManager/metaSchema.js +2 -68
  29. package/dataMap/metaManager/metaSchema.mjs +2 -68
  30. package/dataMap/metaManager/mods/dynamicCellMeta.js +3 -2
  31. package/dataMap/metaManager/mods/dynamicCellMeta.mjs +1 -1
  32. package/dist/handsontable.css +2 -2
  33. package/dist/handsontable.full.css +2 -2
  34. package/dist/handsontable.full.js +2685 -3046
  35. package/dist/handsontable.full.min.css +2 -2
  36. package/dist/handsontable.full.min.js +60 -60
  37. package/dist/handsontable.js +2687 -3048
  38. package/dist/handsontable.min.css +2 -2
  39. package/dist/handsontable.min.js +18 -18
  40. package/editorManager.js +2 -2
  41. package/editorManager.mjs +2 -2
  42. package/editors/autocompleteEditor/autocompleteEditor.js +31 -14
  43. package/editors/autocompleteEditor/autocompleteEditor.mjs +31 -14
  44. package/editors/baseEditor/baseEditor.js +17 -24
  45. package/editors/baseEditor/baseEditor.mjs +18 -25
  46. package/editors/dropdownEditor/dropdownEditor.js +3 -2
  47. package/editors/dropdownEditor/dropdownEditor.mjs +1 -1
  48. package/editors/handsontableEditor/handsontableEditor.js +24 -0
  49. package/editors/handsontableEditor/handsontableEditor.mjs +24 -0
  50. package/editors/registry.js +2 -2
  51. package/editors/registry.mjs +1 -1
  52. package/editors/textEditor/textEditor.js +2 -2
  53. package/editors/textEditor/textEditor.mjs +3 -3
  54. package/helpers/dom/element.js +4 -17
  55. package/helpers/dom/element.mjs +4 -16
  56. package/helpers/mixed.js +1 -1
  57. package/helpers/mixed.mjs +1 -1
  58. package/index.d.ts +1 -2
  59. package/package.json +1 -1
  60. package/{core/hooks/index.d.ts → pluginHooks.d.ts} +21 -17
  61. package/{core/hooks/constants.mjs → pluginHooks.js} +489 -16
  62. package/{core/hooks/constants.js → pluginHooks.mjs} +486 -20
  63. package/plugins/autoColumnSize/autoColumnSize.js +27 -18
  64. package/plugins/autoColumnSize/autoColumnSize.mjs +27 -18
  65. package/plugins/autoRowSize/autoRowSize.js +22 -16
  66. package/plugins/autoRowSize/autoRowSize.mjs +23 -17
  67. package/plugins/autofill/autofill.js +5 -4
  68. package/plugins/autofill/autofill.mjs +1 -1
  69. package/plugins/base/base.d.ts +1 -1
  70. package/plugins/base/base.js +0 -39
  71. package/plugins/base/base.mjs +1 -40
  72. package/plugins/base/index.js +1 -2
  73. package/plugins/base/index.mjs +1 -1
  74. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +5 -2
  75. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +5 -2
  76. package/plugins/columnSorting/columnSorting.js +4 -3
  77. package/plugins/columnSorting/columnSorting.mjs +1 -1
  78. package/plugins/comments/comments.js +15 -7
  79. package/plugins/comments/comments.mjs +16 -8
  80. package/plugins/contextMenu/contextMenu.js +7 -6
  81. package/plugins/contextMenu/contextMenu.mjs +1 -1
  82. package/plugins/contextMenu/menu/menu.js +1 -1
  83. package/plugins/contextMenu/menu/menu.mjs +2 -2
  84. package/plugins/contextMenu/menu/positioner.js +4 -2
  85. package/plugins/contextMenu/menu/positioner.mjs +4 -2
  86. package/plugins/copyPaste/copyPaste.js +23 -29
  87. package/plugins/copyPaste/copyPaste.mjs +15 -21
  88. package/plugins/dropdownMenu/dropdownMenu.js +7 -6
  89. package/plugins/dropdownMenu/dropdownMenu.mjs +1 -1
  90. package/plugins/formulas/formulas.js +7 -7
  91. package/plugins/formulas/formulas.mjs +1 -1
  92. package/plugins/hiddenColumns/hiddenColumns.js +30 -19
  93. package/plugins/hiddenColumns/hiddenColumns.mjs +26 -15
  94. package/plugins/hiddenRows/hiddenRows.js +29 -18
  95. package/plugins/hiddenRows/hiddenRows.mjs +25 -14
  96. package/plugins/manualColumnFreeze/manualColumnFreeze.js +5 -5
  97. package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +1 -1
  98. package/plugins/manualColumnMove/manualColumnMove.js +3 -3
  99. package/plugins/manualColumnMove/manualColumnMove.mjs +1 -1
  100. package/plugins/manualRowMove/manualRowMove.js +5 -5
  101. package/plugins/manualRowMove/manualRowMove.mjs +3 -3
  102. package/plugins/mergeCells/cellsCollection.js +3 -15
  103. package/plugins/mergeCells/cellsCollection.mjs +4 -16
  104. package/plugins/mergeCells/mergeCells.d.ts +2 -6
  105. package/plugins/mergeCells/mergeCells.js +55 -78
  106. package/plugins/mergeCells/mergeCells.mjs +53 -76
  107. package/plugins/mergeCells/renderer.js +3 -13
  108. package/plugins/mergeCells/renderer.mjs +3 -13
  109. package/plugins/persistentState/persistentState.js +4 -4
  110. package/plugins/persistentState/persistentState.mjs +1 -1
  111. package/plugins/undoRedo/undoRedo.js +5 -4
  112. package/plugins/undoRedo/undoRedo.mjs +3 -3
  113. package/renderers/checkboxRenderer/checkboxRenderer.js +2 -2
  114. package/renderers/checkboxRenderer/checkboxRenderer.mjs +1 -1
  115. package/settings.d.ts +1 -3
  116. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +1 -1
  117. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +1 -1
  118. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +1 -1
  119. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +1 -1
  120. package/shortcutContexts/commands/scrollToFocusedCell.js +4 -4
  121. package/shortcutContexts/commands/scrollToFocusedCell.mjs +4 -4
  122. package/tableView.js +43 -38
  123. package/tableView.mjs +43 -38
  124. package/core/hooks/bucket.js +0 -180
  125. package/core/hooks/bucket.mjs +0 -176
  126. package/core/hooks/index.js +0 -385
  127. package/core/hooks/index.mjs +0 -381
@@ -11,7 +11,7 @@ require("core-js/modules/esnext.set.is-superset-of.v2.js");
11
11
  require("core-js/modules/esnext.set.symmetric-difference.v2.js");
12
12
  require("core-js/modules/esnext.set.union.v2.js");
13
13
  var _base = require("../base");
14
- var _hooks = require("../../core/hooks");
14
+ var _pluginHooks = _interopRequireDefault(require("../../pluginHooks"));
15
15
  var _cellsCollection = _interopRequireDefault(require("./cellsCollection"));
16
16
  var _cellCoords = _interopRequireDefault(require("./cellCoords"));
17
17
  var _autofill = _interopRequireDefault(require("./calculations/autofill"));
@@ -35,10 +35,10 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
35
35
  function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
36
36
  function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
37
37
  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"); }
38
- _hooks.Hooks.getSingleton().register('beforeMergeCells');
39
- _hooks.Hooks.getSingleton().register('afterMergeCells');
40
- _hooks.Hooks.getSingleton().register('beforeUnmergeCells');
41
- _hooks.Hooks.getSingleton().register('afterUnmergeCells');
38
+ _pluginHooks.default.getSingleton().register('beforeMergeCells');
39
+ _pluginHooks.default.getSingleton().register('afterMergeCells');
40
+ _pluginHooks.default.getSingleton().register('beforeUnmergeCells');
41
+ _pluginHooks.default.getSingleton().register('afterUnmergeCells');
42
42
  const PLUGIN_KEY = exports.PLUGIN_KEY = 'mergeCells';
43
43
  const PLUGIN_PRIORITY = exports.PLUGIN_PRIORITY = 150;
44
44
  const SHORTCUTS_GROUP = PLUGIN_KEY;
@@ -153,13 +153,6 @@ class MergeCells extends _base.BasePlugin {
153
153
  static get PLUGIN_PRIORITY() {
154
154
  return PLUGIN_PRIORITY;
155
155
  }
156
- static get DEFAULT_SETTINGS() {
157
- return {
158
- [_base.defaultMainSettingSymbol]: 'cells',
159
- virtualized: false,
160
- cells: []
161
- };
162
- }
163
156
  /**
164
157
  * Checks if the plugin is enabled in the handsontable settings. This method is executed in {@link Hooks#beforeInit}
165
158
  * hook and if it returns `true` then the {@link MergeCells#enablePlugin} method is called.
@@ -247,108 +240,102 @@ class MergeCells extends _base.BasePlugin {
247
240
  }
248
241
  return _assertClassBrand(_MergeCells_brand, _this, _onModifyGetCellCoords).call(_this, ...args);
249
242
  });
250
- this.addHook('modifyGetCoordsElement', function () {
243
+ this.addHook('afterIsMultipleSelection', function () {
251
244
  for (var _len12 = arguments.length, args = new Array(_len12), _key12 = 0; _key12 < _len12; _key12++) {
252
245
  args[_key12] = arguments[_key12];
253
246
  }
254
- return _assertClassBrand(_MergeCells_brand, _this, _onModifyGetCellCoords).call(_this, ...args);
255
- });
256
- this.addHook('afterIsMultipleSelection', function () {
257
- for (var _len13 = arguments.length, args = new Array(_len13), _key13 = 0; _key13 < _len13; _key13++) {
258
- args[_key13] = arguments[_key13];
259
- }
260
247
  return _assertClassBrand(_MergeCells_brand, _this, _onAfterIsMultipleSelection).call(_this, ...args);
261
248
  });
262
249
  this.addHook('afterRenderer', function () {
263
250
  return _classPrivateFieldGet(_cellRenderer, _this).after(...arguments);
264
251
  });
265
252
  this.addHook('afterContextMenuDefaultOptions', function () {
266
- for (var _len14 = arguments.length, args = new Array(_len14), _key14 = 0; _key14 < _len14; _key14++) {
267
- args[_key14] = arguments[_key14];
253
+ for (var _len13 = arguments.length, args = new Array(_len13), _key13 = 0; _key13 < _len13; _key13++) {
254
+ args[_key13] = arguments[_key13];
268
255
  }
269
256
  return _assertClassBrand(_MergeCells_brand, _this, _addMergeActionsToContextMenu).call(_this, ...args);
270
257
  });
271
258
  this.addHook('afterGetCellMeta', function () {
272
- for (var _len15 = arguments.length, args = new Array(_len15), _key15 = 0; _key15 < _len15; _key15++) {
273
- args[_key15] = arguments[_key15];
259
+ for (var _len14 = arguments.length, args = new Array(_len14), _key14 = 0; _key14 < _len14; _key14++) {
260
+ args[_key14] = arguments[_key14];
274
261
  }
275
262
  return _assertClassBrand(_MergeCells_brand, _this, _onAfterGetCellMeta).call(_this, ...args);
276
263
  });
277
264
  this.addHook('afterViewportRowCalculatorOverride', function () {
278
- for (var _len16 = arguments.length, args = new Array(_len16), _key16 = 0; _key16 < _len16; _key16++) {
279
- args[_key16] = arguments[_key16];
265
+ for (var _len15 = arguments.length, args = new Array(_len15), _key15 = 0; _key15 < _len15; _key15++) {
266
+ args[_key15] = arguments[_key15];
280
267
  }
281
268
  return _assertClassBrand(_MergeCells_brand, _this, _onAfterViewportRowCalculatorOverride).call(_this, ...args);
282
269
  });
283
270
  this.addHook('afterViewportColumnCalculatorOverride', function () {
284
- for (var _len17 = arguments.length, args = new Array(_len17), _key17 = 0; _key17 < _len17; _key17++) {
285
- args[_key17] = arguments[_key17];
271
+ for (var _len16 = arguments.length, args = new Array(_len16), _key16 = 0; _key16 < _len16; _key16++) {
272
+ args[_key16] = arguments[_key16];
286
273
  }
287
274
  return _assertClassBrand(_MergeCells_brand, _this, _onAfterViewportColumnCalculatorOverride).call(_this, ...args);
288
275
  });
289
276
  this.addHook('modifyAutofillRange', function () {
290
- for (var _len18 = arguments.length, args = new Array(_len18), _key18 = 0; _key18 < _len18; _key18++) {
291
- args[_key18] = arguments[_key18];
277
+ for (var _len17 = arguments.length, args = new Array(_len17), _key17 = 0; _key17 < _len17; _key17++) {
278
+ args[_key17] = arguments[_key17];
292
279
  }
293
280
  return _assertClassBrand(_MergeCells_brand, _this, _onModifyAutofillRange).call(_this, ...args);
294
281
  });
295
282
  this.addHook('afterCreateCol', function () {
296
- for (var _len19 = arguments.length, args = new Array(_len19), _key19 = 0; _key19 < _len19; _key19++) {
297
- args[_key19] = arguments[_key19];
283
+ for (var _len18 = arguments.length, args = new Array(_len18), _key18 = 0; _key18 < _len18; _key18++) {
284
+ args[_key18] = arguments[_key18];
298
285
  }
299
286
  return _assertClassBrand(_MergeCells_brand, _this, _onAfterCreateCol).call(_this, ...args);
300
287
  });
301
288
  this.addHook('afterRemoveCol', function () {
302
- for (var _len20 = arguments.length, args = new Array(_len20), _key20 = 0; _key20 < _len20; _key20++) {
303
- args[_key20] = arguments[_key20];
289
+ for (var _len19 = arguments.length, args = new Array(_len19), _key19 = 0; _key19 < _len19; _key19++) {
290
+ args[_key19] = arguments[_key19];
304
291
  }
305
292
  return _assertClassBrand(_MergeCells_brand, _this, _onAfterRemoveCol).call(_this, ...args);
306
293
  });
307
294
  this.addHook('afterCreateRow', function () {
308
- for (var _len21 = arguments.length, args = new Array(_len21), _key21 = 0; _key21 < _len21; _key21++) {
309
- args[_key21] = arguments[_key21];
295
+ for (var _len20 = arguments.length, args = new Array(_len20), _key20 = 0; _key20 < _len20; _key20++) {
296
+ args[_key20] = arguments[_key20];
310
297
  }
311
298
  return _assertClassBrand(_MergeCells_brand, _this, _onAfterCreateRow).call(_this, ...args);
312
299
  });
313
300
  this.addHook('afterRemoveRow', function () {
314
- for (var _len22 = arguments.length, args = new Array(_len22), _key22 = 0; _key22 < _len22; _key22++) {
315
- args[_key22] = arguments[_key22];
301
+ for (var _len21 = arguments.length, args = new Array(_len21), _key21 = 0; _key21 < _len21; _key21++) {
302
+ args[_key21] = arguments[_key21];
316
303
  }
317
304
  return _assertClassBrand(_MergeCells_brand, _this, _onAfterRemoveRow).call(_this, ...args);
318
305
  });
319
306
  this.addHook('afterChange', function () {
320
- for (var _len23 = arguments.length, args = new Array(_len23), _key23 = 0; _key23 < _len23; _key23++) {
321
- args[_key23] = arguments[_key23];
307
+ for (var _len22 = arguments.length, args = new Array(_len22), _key22 = 0; _key22 < _len22; _key22++) {
308
+ args[_key22] = arguments[_key22];
322
309
  }
323
310
  return _assertClassBrand(_MergeCells_brand, _this, _onAfterChange).call(_this, ...args);
324
311
  });
325
312
  this.addHook('beforeDrawBorders', function () {
326
- for (var _len24 = arguments.length, args = new Array(_len24), _key24 = 0; _key24 < _len24; _key24++) {
327
- args[_key24] = arguments[_key24];
313
+ for (var _len23 = arguments.length, args = new Array(_len23), _key23 = 0; _key23 < _len23; _key23++) {
314
+ args[_key23] = arguments[_key23];
328
315
  }
329
316
  return _assertClassBrand(_MergeCells_brand, _this, _onBeforeDrawAreaBorders).call(_this, ...args);
330
317
  });
331
318
  this.addHook('afterDrawSelection', function () {
332
- for (var _len25 = arguments.length, args = new Array(_len25), _key25 = 0; _key25 < _len25; _key25++) {
333
- args[_key25] = arguments[_key25];
319
+ for (var _len24 = arguments.length, args = new Array(_len24), _key24 = 0; _key24 < _len24; _key24++) {
320
+ args[_key24] = arguments[_key24];
334
321
  }
335
322
  return _assertClassBrand(_MergeCells_brand, _this, _onAfterDrawSelection).call(_this, ...args);
336
323
  });
337
324
  this.addHook('beforeRemoveCellClassNames', function () {
338
- for (var _len26 = arguments.length, args = new Array(_len26), _key26 = 0; _key26 < _len26; _key26++) {
339
- args[_key26] = arguments[_key26];
325
+ for (var _len25 = arguments.length, args = new Array(_len25), _key25 = 0; _key25 < _len25; _key25++) {
326
+ args[_key25] = arguments[_key25];
340
327
  }
341
328
  return _assertClassBrand(_MergeCells_brand, _this, _onBeforeRemoveCellClassNames).call(_this, ...args);
342
329
  });
343
330
  this.addHook('beforeBeginEditing', function () {
344
- for (var _len27 = arguments.length, args = new Array(_len27), _key27 = 0; _key27 < _len27; _key27++) {
345
- args[_key27] = arguments[_key27];
331
+ for (var _len26 = arguments.length, args = new Array(_len26), _key26 = 0; _key26 < _len26; _key26++) {
332
+ args[_key26] = arguments[_key26];
346
333
  }
347
334
  return _assertClassBrand(_MergeCells_brand, _this, _onBeforeBeginEditing).call(_this, ...args);
348
335
  });
349
336
  this.addHook('modifyRowHeightByOverlayName', function () {
350
- for (var _len28 = arguments.length, args = new Array(_len28), _key28 = 0; _key28 < _len28; _key28++) {
351
- args[_key28] = arguments[_key28];
337
+ for (var _len27 = arguments.length, args = new Array(_len27), _key27 = 0; _key27 < _len27; _key27++) {
338
+ args[_key27] = arguments[_key27];
352
339
  }
353
340
  return _assertClassBrand(_MergeCells_brand, _this, _onModifyRowHeightByOverlayName).call(_this, ...args);
354
341
  });
@@ -379,9 +366,10 @@ class MergeCells extends _base.BasePlugin {
379
366
  * - [`mergeCells`](@/api/options.md#mergecells)
380
367
  */
381
368
  updatePlugin() {
369
+ const settings = this.hot.getSettings()[PLUGIN_KEY];
382
370
  this.disablePlugin();
383
371
  this.enablePlugin();
384
- this.generateFromSettings();
372
+ this.generateFromSettings(settings);
385
373
  super.updatePlugin();
386
374
  }
387
375
 
@@ -466,9 +454,13 @@ class MergeCells extends _base.BasePlugin {
466
454
  * Generates the merged cells from the settings provided to the plugin.
467
455
  *
468
456
  * @private
457
+ * @param {Array|boolean} settings The settings provided to the plugin.
469
458
  */
470
- generateFromSettings() {
471
- const validSettings = this.getSetting('cells').filter(mergeCellInfo => this.validateSetting(mergeCellInfo));
459
+ generateFromSettings(settings) {
460
+ if (!Array.isArray(settings)) {
461
+ return;
462
+ }
463
+ const validSettings = settings.filter(mergeCellInfo => this.validateSetting(mergeCellInfo));
472
464
  const nonOverlappingSettings = this.mergedCellsCollection.filterOverlappingMergeCells(validSettings);
473
465
  const populatedNulls = [];
474
466
  nonOverlappingSettings.forEach(mergeCellInfo => {
@@ -911,7 +903,7 @@ class MergeCells extends _base.BasePlugin {
911
903
  }
912
904
  exports.MergeCells = MergeCells;
913
905
  function _onAfterInit() {
914
- this.generateFromSettings();
906
+ this.generateFromSettings(this.hot.getSettings()[PLUGIN_KEY]);
915
907
  this.hot.render();
916
908
  }
917
909
  function _onAfterIsMultipleSelection(isMultiple) {
@@ -1105,16 +1097,13 @@ function _onBeforeSelectionHighlightSet() {
1105
1097
  }
1106
1098
  }
1107
1099
  /**
1108
- * The `modifyGetCellCoords` hook callback allows forwarding all `getCell` calls that point in-between the merged cells
1109
- * to the root element of the cell.
1100
+ * `modifyGetCellCoords` hook callback. Swaps the `getCell` coords with the merged parent coords.
1110
1101
  *
1111
1102
  * @param {number} row Row index.
1112
1103
  * @param {number} column Visual column index.
1113
- * @param {boolean} topmost Indicates if the requested element belongs to the topmost layer (any overlay) or not.
1114
- * @param {string} [source] String that identifies how this coords change will be processed.
1115
1104
  * @returns {Array|undefined} Visual coordinates of the merge.
1116
1105
  */
1117
- function _onModifyGetCellCoords(row, column, topmost, source) {
1106
+ function _onModifyGetCellCoords(row, column) {
1118
1107
  if (row < 0 || column < 0) {
1119
1108
  return;
1120
1109
  }
@@ -1128,17 +1117,11 @@ function _onModifyGetCellCoords(row, column, topmost, source) {
1128
1117
  colspan,
1129
1118
  rowspan
1130
1119
  } = mergeParent;
1131
- const topStartRow = mergeRow;
1132
- const topStartColumn = mergeColumn;
1133
- const bottomEndRow = mergeRow + rowspan - 1;
1134
- const bottomEndColumn = mergeColumn + colspan - 1;
1135
- if (source === 'render' && this.getSetting('virtualized')) {
1136
- const overlayName = this.hot.view.getActiveOverlayName();
1137
- const firstRenderedRow = ['top', 'top_inline_start_corner'].includes(overlayName) ? 0 : this.hot.getFirstRenderedVisibleRow();
1138
- const firstRenderedColumn = ['inline_start', 'top_inline_start_corner', 'bottom_inline_start_corner'].includes(overlayName) ? 0 : this.hot.getFirstRenderedVisibleColumn();
1139
- return [(0, _number.clamp)(firstRenderedRow, topStartRow, bottomEndRow), (0, _number.clamp)(firstRenderedColumn, topStartColumn, bottomEndColumn), (0, _number.clamp)(this.hot.getLastRenderedVisibleRow(), topStartRow, bottomEndRow), (0, _number.clamp)(this.hot.getLastRenderedVisibleColumn(), topStartColumn, bottomEndColumn)];
1140
- }
1141
- return [topStartRow, topStartColumn, bottomEndRow, bottomEndColumn];
1120
+ return [
1121
+ // Most top-left merged cell coords.
1122
+ mergeRow, mergeColumn,
1123
+ // Most bottom-right merged cell coords.
1124
+ mergeRow + rowspan - 1, mergeColumn + colspan - 1];
1142
1125
  }
1143
1126
  /**
1144
1127
  * `afterContextMenuDefaultOptions` hook callback.
@@ -1274,17 +1257,11 @@ function _onAfterGetCellMeta(row, col, cellProperties) {
1274
1257
  * @param {object} calc The row calculator object.
1275
1258
  */
1276
1259
  function _onAfterViewportRowCalculatorOverride(calc) {
1277
- if (this.getSetting('virtualized')) {
1278
- return;
1279
- }
1280
1260
  const nrOfColumns = this.hot.countCols();
1281
1261
  this.modifyViewportRowStart(calc, nrOfColumns);
1282
1262
  this.modifyViewportRowEnd(calc, nrOfColumns);
1283
1263
  }
1284
1264
  function _onAfterViewportColumnCalculatorOverride(calc) {
1285
- if (this.getSetting('virtualized')) {
1286
- return;
1287
- }
1288
1265
  const nrOfRows = this.hot.countRows();
1289
1266
  this.modifyViewportColumnStart(calc, nrOfRows);
1290
1267
  this.modifyViewportColumnEnd(calc, nrOfRows);
@@ -1443,8 +1420,8 @@ function _onModifyRowHeightByOverlayName(height, row, overlayType) {
1443
1420
  let firstColumn;
1444
1421
  let lastColumn;
1445
1422
  if (overlayType === 'master') {
1446
- firstColumn = this.hot.getFirstRenderedVisibleColumn();
1447
- lastColumn = this.hot.getLastRenderedVisibleColumn();
1423
+ firstColumn = this.hot.view.getFirstRenderedVisibleColumn();
1424
+ lastColumn = this.hot.view.getLastRenderedVisibleColumn();
1448
1425
  } else {
1449
1426
  const activeOverlay = this.hot.view.getOverlayByName(overlayType);
1450
1427
  firstColumn = this.hot.columnIndexMapper.getVisualFromRenderableIndex(activeOverlay.clone.wtTable.getFirstRenderedColumn());
@@ -1457,7 +1434,7 @@ function _onModifyRowHeightByOverlayName(height, row, overlayType) {
1457
1434
  const from = this.hot._createCellCoords(row, firstColumn);
1458
1435
  const to = this.hot._createCellCoords(row, lastColumn);
1459
1436
  const viewportRange = this.hot._createCellRange(from, from, to);
1460
- const mergedCellsWithinRange = this.mergedCellsCollection.getWithinRange(viewportRange, true);
1437
+ const mergedCellsWithinRange = this.mergedCellsCollection.getWithinRange(viewportRange);
1461
1438
  const maxRowspan = mergedCellsWithinRange.reduce((acc, _ref) => {
1462
1439
  let {
1463
1440
  rowspan
@@ -16,8 +16,8 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
16
16
  function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
17
17
  function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
18
18
  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"); }
19
- import { BasePlugin, defaultMainSettingSymbol } from "../base/index.mjs";
20
- import { Hooks } from "../../core/hooks/index.mjs";
19
+ import { BasePlugin } from "../base/index.mjs";
20
+ import Hooks from "../../pluginHooks.mjs";
21
21
  import MergedCellsCollection from "./cellsCollection.mjs";
22
22
  import MergedCellCoords from "./cellCoords.mjs";
23
23
  import AutofillCalculations from "./calculations/autofill.mjs";
@@ -26,7 +26,7 @@ import toggleMergeItem from "./contextMenuItem/toggleMerge.mjs";
26
26
  import { arrayEach } from "../../helpers/array.mjs";
27
27
  import { isObject } from "../../helpers/object.mjs";
28
28
  import { warn } from "../../helpers/console.mjs";
29
- import { rangeEach, clamp } from "../../helpers/number.mjs";
29
+ import { rangeEach } from "../../helpers/number.mjs";
30
30
  import { getStyle } from "../../helpers/dom/element.mjs";
31
31
  import { isChrome } from "../../helpers/browser.mjs";
32
32
  import { FocusOrder } from "./focusOrder.mjs";
@@ -149,13 +149,6 @@ export class MergeCells extends BasePlugin {
149
149
  static get PLUGIN_PRIORITY() {
150
150
  return PLUGIN_PRIORITY;
151
151
  }
152
- static get DEFAULT_SETTINGS() {
153
- return {
154
- [defaultMainSettingSymbol]: 'cells',
155
- virtualized: false,
156
- cells: []
157
- };
158
- }
159
152
  /**
160
153
  * Checks if the plugin is enabled in the handsontable settings. This method is executed in {@link Hooks#beforeInit}
161
154
  * hook and if it returns `true` then the {@link MergeCells#enablePlugin} method is called.
@@ -243,108 +236,102 @@ export class MergeCells extends BasePlugin {
243
236
  }
244
237
  return _assertClassBrand(_MergeCells_brand, _this, _onModifyGetCellCoords).call(_this, ...args);
245
238
  });
246
- this.addHook('modifyGetCoordsElement', function () {
239
+ this.addHook('afterIsMultipleSelection', function () {
247
240
  for (var _len12 = arguments.length, args = new Array(_len12), _key12 = 0; _key12 < _len12; _key12++) {
248
241
  args[_key12] = arguments[_key12];
249
242
  }
250
- return _assertClassBrand(_MergeCells_brand, _this, _onModifyGetCellCoords).call(_this, ...args);
251
- });
252
- this.addHook('afterIsMultipleSelection', function () {
253
- for (var _len13 = arguments.length, args = new Array(_len13), _key13 = 0; _key13 < _len13; _key13++) {
254
- args[_key13] = arguments[_key13];
255
- }
256
243
  return _assertClassBrand(_MergeCells_brand, _this, _onAfterIsMultipleSelection).call(_this, ...args);
257
244
  });
258
245
  this.addHook('afterRenderer', function () {
259
246
  return _classPrivateFieldGet(_cellRenderer, _this).after(...arguments);
260
247
  });
261
248
  this.addHook('afterContextMenuDefaultOptions', function () {
262
- for (var _len14 = arguments.length, args = new Array(_len14), _key14 = 0; _key14 < _len14; _key14++) {
263
- args[_key14] = arguments[_key14];
249
+ for (var _len13 = arguments.length, args = new Array(_len13), _key13 = 0; _key13 < _len13; _key13++) {
250
+ args[_key13] = arguments[_key13];
264
251
  }
265
252
  return _assertClassBrand(_MergeCells_brand, _this, _addMergeActionsToContextMenu).call(_this, ...args);
266
253
  });
267
254
  this.addHook('afterGetCellMeta', function () {
268
- for (var _len15 = arguments.length, args = new Array(_len15), _key15 = 0; _key15 < _len15; _key15++) {
269
- args[_key15] = arguments[_key15];
255
+ for (var _len14 = arguments.length, args = new Array(_len14), _key14 = 0; _key14 < _len14; _key14++) {
256
+ args[_key14] = arguments[_key14];
270
257
  }
271
258
  return _assertClassBrand(_MergeCells_brand, _this, _onAfterGetCellMeta).call(_this, ...args);
272
259
  });
273
260
  this.addHook('afterViewportRowCalculatorOverride', function () {
274
- for (var _len16 = arguments.length, args = new Array(_len16), _key16 = 0; _key16 < _len16; _key16++) {
275
- args[_key16] = arguments[_key16];
261
+ for (var _len15 = arguments.length, args = new Array(_len15), _key15 = 0; _key15 < _len15; _key15++) {
262
+ args[_key15] = arguments[_key15];
276
263
  }
277
264
  return _assertClassBrand(_MergeCells_brand, _this, _onAfterViewportRowCalculatorOverride).call(_this, ...args);
278
265
  });
279
266
  this.addHook('afterViewportColumnCalculatorOverride', function () {
280
- for (var _len17 = arguments.length, args = new Array(_len17), _key17 = 0; _key17 < _len17; _key17++) {
281
- args[_key17] = arguments[_key17];
267
+ for (var _len16 = arguments.length, args = new Array(_len16), _key16 = 0; _key16 < _len16; _key16++) {
268
+ args[_key16] = arguments[_key16];
282
269
  }
283
270
  return _assertClassBrand(_MergeCells_brand, _this, _onAfterViewportColumnCalculatorOverride).call(_this, ...args);
284
271
  });
285
272
  this.addHook('modifyAutofillRange', function () {
286
- for (var _len18 = arguments.length, args = new Array(_len18), _key18 = 0; _key18 < _len18; _key18++) {
287
- args[_key18] = arguments[_key18];
273
+ for (var _len17 = arguments.length, args = new Array(_len17), _key17 = 0; _key17 < _len17; _key17++) {
274
+ args[_key17] = arguments[_key17];
288
275
  }
289
276
  return _assertClassBrand(_MergeCells_brand, _this, _onModifyAutofillRange).call(_this, ...args);
290
277
  });
291
278
  this.addHook('afterCreateCol', function () {
292
- for (var _len19 = arguments.length, args = new Array(_len19), _key19 = 0; _key19 < _len19; _key19++) {
293
- args[_key19] = arguments[_key19];
279
+ for (var _len18 = arguments.length, args = new Array(_len18), _key18 = 0; _key18 < _len18; _key18++) {
280
+ args[_key18] = arguments[_key18];
294
281
  }
295
282
  return _assertClassBrand(_MergeCells_brand, _this, _onAfterCreateCol).call(_this, ...args);
296
283
  });
297
284
  this.addHook('afterRemoveCol', function () {
298
- for (var _len20 = arguments.length, args = new Array(_len20), _key20 = 0; _key20 < _len20; _key20++) {
299
- args[_key20] = arguments[_key20];
285
+ for (var _len19 = arguments.length, args = new Array(_len19), _key19 = 0; _key19 < _len19; _key19++) {
286
+ args[_key19] = arguments[_key19];
300
287
  }
301
288
  return _assertClassBrand(_MergeCells_brand, _this, _onAfterRemoveCol).call(_this, ...args);
302
289
  });
303
290
  this.addHook('afterCreateRow', function () {
304
- for (var _len21 = arguments.length, args = new Array(_len21), _key21 = 0; _key21 < _len21; _key21++) {
305
- args[_key21] = arguments[_key21];
291
+ for (var _len20 = arguments.length, args = new Array(_len20), _key20 = 0; _key20 < _len20; _key20++) {
292
+ args[_key20] = arguments[_key20];
306
293
  }
307
294
  return _assertClassBrand(_MergeCells_brand, _this, _onAfterCreateRow).call(_this, ...args);
308
295
  });
309
296
  this.addHook('afterRemoveRow', function () {
310
- for (var _len22 = arguments.length, args = new Array(_len22), _key22 = 0; _key22 < _len22; _key22++) {
311
- args[_key22] = arguments[_key22];
297
+ for (var _len21 = arguments.length, args = new Array(_len21), _key21 = 0; _key21 < _len21; _key21++) {
298
+ args[_key21] = arguments[_key21];
312
299
  }
313
300
  return _assertClassBrand(_MergeCells_brand, _this, _onAfterRemoveRow).call(_this, ...args);
314
301
  });
315
302
  this.addHook('afterChange', function () {
316
- for (var _len23 = arguments.length, args = new Array(_len23), _key23 = 0; _key23 < _len23; _key23++) {
317
- args[_key23] = arguments[_key23];
303
+ for (var _len22 = arguments.length, args = new Array(_len22), _key22 = 0; _key22 < _len22; _key22++) {
304
+ args[_key22] = arguments[_key22];
318
305
  }
319
306
  return _assertClassBrand(_MergeCells_brand, _this, _onAfterChange).call(_this, ...args);
320
307
  });
321
308
  this.addHook('beforeDrawBorders', function () {
322
- for (var _len24 = arguments.length, args = new Array(_len24), _key24 = 0; _key24 < _len24; _key24++) {
323
- args[_key24] = arguments[_key24];
309
+ for (var _len23 = arguments.length, args = new Array(_len23), _key23 = 0; _key23 < _len23; _key23++) {
310
+ args[_key23] = arguments[_key23];
324
311
  }
325
312
  return _assertClassBrand(_MergeCells_brand, _this, _onBeforeDrawAreaBorders).call(_this, ...args);
326
313
  });
327
314
  this.addHook('afterDrawSelection', function () {
328
- for (var _len25 = arguments.length, args = new Array(_len25), _key25 = 0; _key25 < _len25; _key25++) {
329
- args[_key25] = arguments[_key25];
315
+ for (var _len24 = arguments.length, args = new Array(_len24), _key24 = 0; _key24 < _len24; _key24++) {
316
+ args[_key24] = arguments[_key24];
330
317
  }
331
318
  return _assertClassBrand(_MergeCells_brand, _this, _onAfterDrawSelection).call(_this, ...args);
332
319
  });
333
320
  this.addHook('beforeRemoveCellClassNames', function () {
334
- for (var _len26 = arguments.length, args = new Array(_len26), _key26 = 0; _key26 < _len26; _key26++) {
335
- args[_key26] = arguments[_key26];
321
+ for (var _len25 = arguments.length, args = new Array(_len25), _key25 = 0; _key25 < _len25; _key25++) {
322
+ args[_key25] = arguments[_key25];
336
323
  }
337
324
  return _assertClassBrand(_MergeCells_brand, _this, _onBeforeRemoveCellClassNames).call(_this, ...args);
338
325
  });
339
326
  this.addHook('beforeBeginEditing', function () {
340
- for (var _len27 = arguments.length, args = new Array(_len27), _key27 = 0; _key27 < _len27; _key27++) {
341
- args[_key27] = arguments[_key27];
327
+ for (var _len26 = arguments.length, args = new Array(_len26), _key26 = 0; _key26 < _len26; _key26++) {
328
+ args[_key26] = arguments[_key26];
342
329
  }
343
330
  return _assertClassBrand(_MergeCells_brand, _this, _onBeforeBeginEditing).call(_this, ...args);
344
331
  });
345
332
  this.addHook('modifyRowHeightByOverlayName', function () {
346
- for (var _len28 = arguments.length, args = new Array(_len28), _key28 = 0; _key28 < _len28; _key28++) {
347
- args[_key28] = arguments[_key28];
333
+ for (var _len27 = arguments.length, args = new Array(_len27), _key27 = 0; _key27 < _len27; _key27++) {
334
+ args[_key27] = arguments[_key27];
348
335
  }
349
336
  return _assertClassBrand(_MergeCells_brand, _this, _onModifyRowHeightByOverlayName).call(_this, ...args);
350
337
  });
@@ -375,9 +362,10 @@ export class MergeCells extends BasePlugin {
375
362
  * - [`mergeCells`](@/api/options.md#mergecells)
376
363
  */
377
364
  updatePlugin() {
365
+ const settings = this.hot.getSettings()[PLUGIN_KEY];
378
366
  this.disablePlugin();
379
367
  this.enablePlugin();
380
- this.generateFromSettings();
368
+ this.generateFromSettings(settings);
381
369
  super.updatePlugin();
382
370
  }
383
371
 
@@ -462,9 +450,13 @@ export class MergeCells extends BasePlugin {
462
450
  * Generates the merged cells from the settings provided to the plugin.
463
451
  *
464
452
  * @private
453
+ * @param {Array|boolean} settings The settings provided to the plugin.
465
454
  */
466
- generateFromSettings() {
467
- const validSettings = this.getSetting('cells').filter(mergeCellInfo => this.validateSetting(mergeCellInfo));
455
+ generateFromSettings(settings) {
456
+ if (!Array.isArray(settings)) {
457
+ return;
458
+ }
459
+ const validSettings = settings.filter(mergeCellInfo => this.validateSetting(mergeCellInfo));
468
460
  const nonOverlappingSettings = this.mergedCellsCollection.filterOverlappingMergeCells(validSettings);
469
461
  const populatedNulls = [];
470
462
  nonOverlappingSettings.forEach(mergeCellInfo => {
@@ -906,7 +898,7 @@ export class MergeCells extends BasePlugin {
906
898
  */
907
899
  }
908
900
  function _onAfterInit() {
909
- this.generateFromSettings();
901
+ this.generateFromSettings(this.hot.getSettings()[PLUGIN_KEY]);
910
902
  this.hot.render();
911
903
  }
912
904
  function _onAfterIsMultipleSelection(isMultiple) {
@@ -1100,16 +1092,13 @@ function _onBeforeSelectionHighlightSet() {
1100
1092
  }
1101
1093
  }
1102
1094
  /**
1103
- * The `modifyGetCellCoords` hook callback allows forwarding all `getCell` calls that point in-between the merged cells
1104
- * to the root element of the cell.
1095
+ * `modifyGetCellCoords` hook callback. Swaps the `getCell` coords with the merged parent coords.
1105
1096
  *
1106
1097
  * @param {number} row Row index.
1107
1098
  * @param {number} column Visual column index.
1108
- * @param {boolean} topmost Indicates if the requested element belongs to the topmost layer (any overlay) or not.
1109
- * @param {string} [source] String that identifies how this coords change will be processed.
1110
1099
  * @returns {Array|undefined} Visual coordinates of the merge.
1111
1100
  */
1112
- function _onModifyGetCellCoords(row, column, topmost, source) {
1101
+ function _onModifyGetCellCoords(row, column) {
1113
1102
  if (row < 0 || column < 0) {
1114
1103
  return;
1115
1104
  }
@@ -1123,17 +1112,11 @@ function _onModifyGetCellCoords(row, column, topmost, source) {
1123
1112
  colspan,
1124
1113
  rowspan
1125
1114
  } = mergeParent;
1126
- const topStartRow = mergeRow;
1127
- const topStartColumn = mergeColumn;
1128
- const bottomEndRow = mergeRow + rowspan - 1;
1129
- const bottomEndColumn = mergeColumn + colspan - 1;
1130
- if (source === 'render' && this.getSetting('virtualized')) {
1131
- const overlayName = this.hot.view.getActiveOverlayName();
1132
- const firstRenderedRow = ['top', 'top_inline_start_corner'].includes(overlayName) ? 0 : this.hot.getFirstRenderedVisibleRow();
1133
- const firstRenderedColumn = ['inline_start', 'top_inline_start_corner', 'bottom_inline_start_corner'].includes(overlayName) ? 0 : this.hot.getFirstRenderedVisibleColumn();
1134
- return [clamp(firstRenderedRow, topStartRow, bottomEndRow), clamp(firstRenderedColumn, topStartColumn, bottomEndColumn), clamp(this.hot.getLastRenderedVisibleRow(), topStartRow, bottomEndRow), clamp(this.hot.getLastRenderedVisibleColumn(), topStartColumn, bottomEndColumn)];
1135
- }
1136
- return [topStartRow, topStartColumn, bottomEndRow, bottomEndColumn];
1115
+ return [
1116
+ // Most top-left merged cell coords.
1117
+ mergeRow, mergeColumn,
1118
+ // Most bottom-right merged cell coords.
1119
+ mergeRow + rowspan - 1, mergeColumn + colspan - 1];
1137
1120
  }
1138
1121
  /**
1139
1122
  * `afterContextMenuDefaultOptions` hook callback.
@@ -1269,17 +1252,11 @@ function _onAfterGetCellMeta(row, col, cellProperties) {
1269
1252
  * @param {object} calc The row calculator object.
1270
1253
  */
1271
1254
  function _onAfterViewportRowCalculatorOverride(calc) {
1272
- if (this.getSetting('virtualized')) {
1273
- return;
1274
- }
1275
1255
  const nrOfColumns = this.hot.countCols();
1276
1256
  this.modifyViewportRowStart(calc, nrOfColumns);
1277
1257
  this.modifyViewportRowEnd(calc, nrOfColumns);
1278
1258
  }
1279
1259
  function _onAfterViewportColumnCalculatorOverride(calc) {
1280
- if (this.getSetting('virtualized')) {
1281
- return;
1282
- }
1283
1260
  const nrOfRows = this.hot.countRows();
1284
1261
  this.modifyViewportColumnStart(calc, nrOfRows);
1285
1262
  this.modifyViewportColumnEnd(calc, nrOfRows);
@@ -1438,8 +1415,8 @@ function _onModifyRowHeightByOverlayName(height, row, overlayType) {
1438
1415
  let firstColumn;
1439
1416
  let lastColumn;
1440
1417
  if (overlayType === 'master') {
1441
- firstColumn = this.hot.getFirstRenderedVisibleColumn();
1442
- lastColumn = this.hot.getLastRenderedVisibleColumn();
1418
+ firstColumn = this.hot.view.getFirstRenderedVisibleColumn();
1419
+ lastColumn = this.hot.view.getLastRenderedVisibleColumn();
1443
1420
  } else {
1444
1421
  const activeOverlay = this.hot.view.getOverlayByName(overlayType);
1445
1422
  firstColumn = this.hot.columnIndexMapper.getVisualFromRenderableIndex(activeOverlay.clone.wtTable.getFirstRenderedColumn());
@@ -1452,7 +1429,7 @@ function _onModifyRowHeightByOverlayName(height, row, overlayType) {
1452
1429
  const from = this.hot._createCellCoords(row, firstColumn);
1453
1430
  const to = this.hot._createCellCoords(row, lastColumn);
1454
1431
  const viewportRange = this.hot._createCellRange(from, from, to);
1455
- const mergedCellsWithinRange = this.mergedCellsCollection.getWithinRange(viewportRange, true);
1432
+ const mergedCellsWithinRange = this.mergedCellsCollection.getWithinRange(viewportRange);
1456
1433
  const maxRowspan = mergedCellsWithinRange.reduce((acc, _ref) => {
1457
1434
  let {
1458
1435
  rowspan
@@ -31,7 +31,7 @@ function createMergeCellRenderer(plugin) {
31
31
  *
32
32
  * @private
33
33
  * @param {HTMLElement} TD The cell to be modified.
34
- * @param {number} row Visual row index.
34
+ * @param {number} row Row index.
35
35
  * @param {number} col Visual column index.
36
36
  */
37
37
  function after(TD, row, col) {
@@ -49,23 +49,13 @@ function createMergeCellRenderer(plugin) {
49
49
  rowspan: origRowspan
50
50
  } = mergedCell;
51
51
  const [lastMergedRowIndex, lastMergedColumnIndex] = plugin.translateMergedCellToRenderable(origRow, origRowspan, origColumn, origColspan);
52
- const isVirtualRenderingEnabled = plugin.getSetting('virtualized');
53
52
  const renderedRowIndex = rowMapper.getRenderableFromVisualIndex(row);
54
53
  const renderedColumnIndex = columnMapper.getRenderableFromVisualIndex(col);
55
54
  const maxRowSpan = lastMergedRowIndex - renderedRowIndex + 1; // Number of rendered columns.
56
55
  const maxColSpan = lastMergedColumnIndex - renderedColumnIndex + 1; // Number of rendered columns.
57
56
 
58
- let notHiddenRow = rowMapper.getNearestNotHiddenIndex(origRow, 1);
59
- let notHiddenColumn = columnMapper.getNearestNotHiddenIndex(origColumn, 1);
60
- if (isVirtualRenderingEnabled) {
61
- const overlayName = hot.view.getActiveOverlayName();
62
- if (!['top', 'top_inline_start_corner'].includes(overlayName)) {
63
- notHiddenRow = Math.max(notHiddenRow, hot.getFirstRenderedVisibleRow());
64
- }
65
- if (!['inline_start', 'top_inline_start_corner', 'bottom_inline_start_corner'].includes(overlayName)) {
66
- notHiddenColumn = Math.max(notHiddenColumn, hot.getFirstRenderedVisibleColumn());
67
- }
68
- }
57
+ const notHiddenRow = rowMapper.getNearestNotHiddenIndex(origRow, 1);
58
+ const notHiddenColumn = columnMapper.getNearestNotHiddenIndex(origColumn, 1);
69
59
  const notHiddenRowspan = Math.min(origRowspan, maxRowSpan);
70
60
  const notHiddenColspan = Math.min(origColspan, maxColSpan);
71
61
  if (notHiddenRow === row && notHiddenColumn === col) {