handsontable 0.0.0-next-1763d65-20240422 → 0.0.0-next-442dd51-20240422

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 (119) hide show
  1. package/3rdparty/walkontable/src/calculator/viewportColumns.js +2 -2
  2. package/3rdparty/walkontable/src/calculator/viewportColumns.mjs +2 -2
  3. package/3rdparty/walkontable/src/calculator/viewportRows.js +1 -1
  4. package/3rdparty/walkontable/src/calculator/viewportRows.mjs +1 -1
  5. package/3rdparty/walkontable/src/overlay/_base.js +20 -24
  6. package/3rdparty/walkontable/src/overlay/_base.mjs +20 -24
  7. package/3rdparty/walkontable/src/overlay/bottom.js +6 -3
  8. package/3rdparty/walkontable/src/overlay/bottom.mjs +6 -3
  9. package/3rdparty/walkontable/src/overlay/inlineStart.js +6 -3
  10. package/3rdparty/walkontable/src/overlay/inlineStart.mjs +6 -3
  11. package/3rdparty/walkontable/src/overlay/top.js +6 -3
  12. package/3rdparty/walkontable/src/overlay/top.mjs +6 -3
  13. package/3rdparty/walkontable/src/overlays.js +24 -46
  14. package/3rdparty/walkontable/src/overlays.mjs +24 -46
  15. package/3rdparty/walkontable/src/selection/manager.js +0 -7
  16. package/3rdparty/walkontable/src/selection/manager.mjs +0 -7
  17. package/3rdparty/walkontable/src/selection/scanner.js +0 -7
  18. package/3rdparty/walkontable/src/selection/scanner.mjs +0 -7
  19. package/3rdparty/walkontable/src/table.js +11 -10
  20. package/3rdparty/walkontable/src/table.mjs +11 -10
  21. package/base.js +2 -2
  22. package/base.mjs +2 -2
  23. package/core.js +0 -7
  24. package/core.mjs +0 -7
  25. package/dataMap/metaManager/lazyFactoryMap.js +0 -7
  26. package/dataMap/metaManager/lazyFactoryMap.mjs +0 -7
  27. package/dataMap/metaManager/mods/dynamicCellMeta.js +0 -7
  28. package/dataMap/metaManager/mods/dynamicCellMeta.mjs +0 -7
  29. package/dataMap/metaManager/mods/extendMetaProperties.js +31 -44
  30. package/dataMap/metaManager/mods/extendMetaProperties.mjs +31 -44
  31. package/dataMap/metaManager/utils.js +0 -7
  32. package/dataMap/metaManager/utils.mjs +0 -7
  33. package/dist/handsontable.css +2 -2
  34. package/dist/handsontable.full.css +2 -2
  35. package/dist/handsontable.full.js +3780 -10138
  36. package/dist/handsontable.full.min.css +2 -2
  37. package/dist/handsontable.full.min.js +84 -276
  38. package/dist/handsontable.js +2522 -3361
  39. package/dist/handsontable.min.css +2 -2
  40. package/dist/handsontable.min.js +18 -18
  41. package/helpers/array.js +0 -7
  42. package/helpers/array.mjs +0 -7
  43. package/helpers/mixed.js +1 -1
  44. package/helpers/mixed.mjs +1 -1
  45. package/helpers/number.js +2 -12
  46. package/helpers/number.mjs +2 -12
  47. package/package.json +7 -5
  48. package/plugins/autoColumnSize/autoColumnSize.js +0 -7
  49. package/plugins/autoColumnSize/autoColumnSize.mjs +0 -7
  50. package/plugins/autoRowSize/autoRowSize.js +2 -2
  51. package/plugins/autoRowSize/autoRowSize.mjs +2 -2
  52. package/plugins/collapsibleColumns/collapsibleColumns.js +1 -1
  53. package/plugins/collapsibleColumns/collapsibleColumns.mjs +1 -1
  54. package/plugins/columnSorting/utils.js +0 -7
  55. package/plugins/columnSorting/utils.mjs +0 -7
  56. package/plugins/comments/comments.js +8 -2
  57. package/plugins/comments/comments.mjs +8 -2
  58. package/plugins/filters/filters.js +1 -1
  59. package/plugins/filters/filters.mjs +1 -1
  60. package/plugins/filters/ui/multipleSelect.js +12 -15
  61. package/plugins/filters/ui/multipleSelect.mjs +12 -15
  62. package/plugins/filters/utils.js +0 -7
  63. package/plugins/filters/utils.mjs +0 -7
  64. package/plugins/formulas/formulas.js +0 -7
  65. package/plugins/formulas/formulas.mjs +0 -7
  66. package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +1 -1
  67. package/plugins/hiddenColumns/contextMenuItem/hideColumn.mjs +1 -1
  68. package/plugins/hiddenColumns/contextMenuItem/showColumn.js +1 -1
  69. package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +1 -1
  70. package/plugins/hiddenColumns/hiddenColumns.js +0 -7
  71. package/plugins/hiddenColumns/hiddenColumns.mjs +0 -7
  72. package/plugins/hiddenRows/contextMenuItem/hideRow.js +1 -1
  73. package/plugins/hiddenRows/contextMenuItem/hideRow.mjs +1 -1
  74. package/plugins/hiddenRows/contextMenuItem/showRow.js +1 -1
  75. package/plugins/hiddenRows/contextMenuItem/showRow.mjs +1 -1
  76. package/plugins/hiddenRows/hiddenRows.js +0 -7
  77. package/plugins/hiddenRows/hiddenRows.mjs +0 -7
  78. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +1 -1
  79. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.mjs +1 -1
  80. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +1 -1
  81. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.mjs +1 -1
  82. package/plugins/manualColumnMove/manualColumnMove.js +1 -1
  83. package/plugins/manualColumnMove/manualColumnMove.mjs +1 -1
  84. package/plugins/manualColumnResize/manualColumnResize.js +2 -2
  85. package/plugins/manualColumnResize/manualColumnResize.mjs +2 -2
  86. package/plugins/manualRowMove/manualRowMove.js +1 -1
  87. package/plugins/manualRowMove/manualRowMove.mjs +1 -1
  88. package/plugins/manualRowResize/manualRowResize.js +2 -2
  89. package/plugins/manualRowResize/manualRowResize.mjs +2 -2
  90. package/plugins/mergeCells/cellsCollection.js +0 -7
  91. package/plugins/mergeCells/cellsCollection.mjs +0 -7
  92. package/plugins/mergeCells/mergeCells.js +0 -7
  93. package/plugins/mergeCells/mergeCells.mjs +0 -7
  94. package/plugins/nestedHeaders/stateManager/nodeModifiers/collapse.js +0 -7
  95. package/plugins/nestedHeaders/stateManager/nodeModifiers/collapse.mjs +0 -7
  96. package/plugins/nestedHeaders/stateManager/nodeModifiers/expand.js +0 -7
  97. package/plugins/nestedHeaders/stateManager/nodeModifiers/expand.mjs +0 -7
  98. package/plugins/nestedRows/nestedRows.js +0 -7
  99. package/plugins/nestedRows/nestedRows.mjs +0 -7
  100. package/plugins/trimRows/trimRows.js +0 -7
  101. package/plugins/trimRows/trimRows.mjs +0 -7
  102. package/selection/selection.js +0 -7
  103. package/selection/selection.mjs +0 -7
  104. package/selection/utils.js +0 -7
  105. package/selection/utils.mjs +0 -7
  106. package/shortcuts/keyObserver.js +0 -7
  107. package/shortcuts/keyObserver.mjs +0 -7
  108. package/shortcuts/utils.js +0 -7
  109. package/shortcuts/utils.mjs +0 -7
  110. package/tableView.js +4 -1
  111. package/tableView.mjs +4 -1
  112. package/translations/changesObservable/observable.js +0 -7
  113. package/translations/changesObservable/observable.mjs +0 -7
  114. package/translations/indexMapper.js +0 -7
  115. package/translations/indexMapper.mjs +1 -8
  116. package/utils/dataStructures/uniqueSet.js +0 -7
  117. package/utils/dataStructures/uniqueSet.mjs +0 -7
  118. package/utils/paginator.js +0 -7
  119. package/utils/paginator.mjs +0 -7
@@ -1,13 +1,8 @@
1
1
  import "core-js/modules/es.error.cause.js";
2
2
  import "core-js/modules/es.array.push.js";
3
- function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
4
- function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
5
3
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
4
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
7
5
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
8
- function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
9
- function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
10
- 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"); }
11
6
  import { getScrollableElement, getScrollbarWidth } from "../../../helpers/dom/element.mjs";
12
7
  import { requestAnimationFrame } from "../../../helpers/feature.mjs";
13
8
  import { arrayEach } from "../../../helpers/array.mjs";
@@ -17,8 +12,6 @@ import { InlineStartOverlay, TopOverlay, TopInlineStartCornerOverlay, BottomOver
17
12
  /**
18
13
  * @class Overlays
19
14
  */
20
- var _overlays = /*#__PURE__*/new WeakMap();
21
- var _hasRenderingStateChanged = /*#__PURE__*/new WeakMap();
22
15
  class Overlays {
23
16
  /**
24
17
  * @param {Walkontable} wotInstance The Walkontable instance. @todo refactoring remove.
@@ -36,12 +29,6 @@ class Overlays {
36
29
  * @type {Walkontable}
37
30
  */
38
31
  _defineProperty(this, "wot", null);
39
- /**
40
- * An array of the all overlays.
41
- *
42
- * @type {Overlay[]}
43
- */
44
- _classPrivateFieldInitSpec(this, _overlays, []);
45
32
  /**
46
33
  * Refer to the TopOverlay instance.
47
34
  *
@@ -91,12 +78,6 @@ class Overlays {
91
78
  * @type {Settings}
92
79
  */
93
80
  _defineProperty(this, "wtSettings", null);
94
- /**
95
- * Indicates whether the rendering state has changed for one of the overlays.
96
- *
97
- * @type {boolean}
98
- */
99
- _classPrivateFieldInitSpec(this, _hasRenderingStateChanged, false);
100
81
  /**
101
82
  * The instance of the ResizeObserver that observes the size of the Walkontable wrapper element.
102
83
  * In case of the size change detection the `onContainerElementResize` is fired.
@@ -156,7 +137,7 @@ class Overlays {
156
137
  */
157
138
  getOverlays() {
158
139
  let includeMaster = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
159
- const overlays = [..._classPrivateFieldGet(_overlays, this)];
140
+ const overlays = [this.topOverlay, this.topInlineStartCornerOverlay, this.inlineStartOverlay, this.bottomOverlay, this.bottomInlineStartCornerOverlay];
160
141
  if (includeMaster) {
161
142
  overlays.push(this.wtTable);
162
143
  }
@@ -201,31 +182,29 @@ class Overlays {
201
182
  // TODO cond. Has no any visual impact. They're initially hidden in same way like left, top, and bottom overlays.
202
183
  this.topInlineStartCornerOverlay = new TopInlineStartCornerOverlay(...args, this.topOverlay, this.inlineStartOverlay);
203
184
  this.bottomInlineStartCornerOverlay = new BottomInlineStartCornerOverlay(...args, this.bottomOverlay, this.inlineStartOverlay);
204
- _classPrivateFieldSet(_overlays, this, [this.topOverlay, this.bottomOverlay, this.inlineStartOverlay, this.topInlineStartCornerOverlay, this.bottomInlineStartCornerOverlay]);
205
185
  }
206
186
 
207
187
  /**
208
- * Runs logic for the overlays before the table is drawn.
188
+ * Update state of rendering, check if changed.
189
+ *
190
+ * @package
191
+ * @returns {boolean} Returns `true` if changes applied to overlay needs scroll synchronization.
209
192
  */
210
- beforeDraw() {
211
- _classPrivateFieldSet(_hasRenderingStateChanged, this, _classPrivateFieldGet(_overlays, this).reduce((acc, overlay) => {
212
- return overlay.hasRenderingStateChanged() || acc;
213
- }, false));
214
- _classPrivateFieldGet(_overlays, this).forEach(overlay => overlay.updateStateOfRendering('before'));
215
- }
193
+ updateStateOfRendering() {
194
+ let syncScroll = this.topOverlay.updateStateOfRendering();
195
+ syncScroll = this.bottomOverlay.updateStateOfRendering() || syncScroll;
196
+ syncScroll = this.inlineStartOverlay.updateStateOfRendering() || syncScroll;
216
197
 
217
- /**
218
- * Runs logic for the overlays after the table is drawn.
219
- */
220
- afterDraw() {
221
- this.syncScrollWithMaster();
222
- _classPrivateFieldGet(_overlays, this).forEach(overlay => {
223
- const hasRenderingStateChanged = overlay.hasRenderingStateChanged();
224
- overlay.updateStateOfRendering('after');
225
- if (hasRenderingStateChanged && !overlay.needFullRender) {
226
- overlay.reset();
198
+ // todo refactoring: move conditions into updateStateOfRendering(),
199
+ if (this.inlineStartOverlay.needFullRender) {
200
+ if (this.topOverlay.needFullRender) {
201
+ syncScroll = this.topInlineStartCornerOverlay.updateStateOfRendering() || syncScroll;
227
202
  }
228
- });
203
+ if (this.bottomOverlay.needFullRender) {
204
+ syncScroll = this.bottomInlineStartCornerOverlay.updateStateOfRendering() || syncScroll;
205
+ }
206
+ }
207
+ return syncScroll;
229
208
  }
230
209
 
231
210
  /**
@@ -465,9 +444,6 @@ class Overlays {
465
444
  * Synchronize overlay scrollbars with the master scrollbar.
466
445
  */
467
446
  syncScrollWithMaster() {
468
- if (!_classPrivateFieldGet(_hasRenderingStateChanged, this)) {
469
- return;
470
- }
471
447
  const master = this.topOverlay.mainTableScrollableElement;
472
448
  const {
473
449
  scrollLeft,
@@ -482,7 +458,6 @@ class Overlays {
482
458
  if (this.inlineStartOverlay.needFullRender) {
483
459
  this.inlineStartOverlay.clone.wtTable.holder.scrollTop = scrollTop; // todo rethink, *overlay.setScroll*()
484
460
  }
485
- _classPrivateFieldSet(_hasRenderingStateChanged, this, false);
486
461
  }
487
462
 
488
463
  /**
@@ -573,8 +548,11 @@ class Overlays {
573
548
 
574
549
  /**
575
550
  * Adjust overlays elements size and master table size.
551
+ *
552
+ * @param {boolean} [force=false] When `true`, it adjust the DOM nodes sizes for all overlays.
576
553
  */
577
554
  adjustElementsSize() {
555
+ let force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
578
556
  const {
579
557
  wtViewport
580
558
  } = this.wot;
@@ -624,9 +602,9 @@ class Overlays {
624
602
  this.hasScrollbarRight = true;
625
603
  }
626
604
  }
627
- this.topOverlay.adjustElementsSize();
628
- this.inlineStartOverlay.adjustElementsSize();
629
- this.bottomOverlay.adjustElementsSize();
605
+ this.topOverlay.adjustElementsSize(force);
606
+ this.inlineStartOverlay.adjustElementsSize(force);
607
+ this.bottomOverlay.adjustElementsSize(force);
630
608
  }
631
609
 
632
610
  /**
@@ -4,13 +4,6 @@ exports.__esModule = true;
4
4
  require("core-js/modules/es.error.cause.js");
5
5
  require("core-js/modules/es.array.push.js");
6
6
  require("core-js/modules/es.array.unscopables.flat.js");
7
- require("core-js/modules/esnext.set.difference.v2.js");
8
- require("core-js/modules/esnext.set.intersection.v2.js");
9
- require("core-js/modules/esnext.set.is-disjoint-from.v2.js");
10
- require("core-js/modules/esnext.set.is-subset-of.v2.js");
11
- require("core-js/modules/esnext.set.is-superset-of.v2.js");
12
- require("core-js/modules/esnext.set.symmetric-difference.v2.js");
13
- require("core-js/modules/esnext.set.union.v2.js");
14
7
  var _element = require("../../../../helpers/dom/element");
15
8
  var _scanner2 = require("./scanner");
16
9
  var _border = _interopRequireDefault(require("./border/border"));
@@ -1,13 +1,6 @@
1
1
  import "core-js/modules/es.error.cause.js";
2
2
  import "core-js/modules/es.array.push.js";
3
3
  import "core-js/modules/es.array.unscopables.flat.js";
4
- import "core-js/modules/esnext.set.difference.v2.js";
5
- import "core-js/modules/esnext.set.intersection.v2.js";
6
- import "core-js/modules/esnext.set.is-disjoint-from.v2.js";
7
- import "core-js/modules/esnext.set.is-subset-of.v2.js";
8
- import "core-js/modules/esnext.set.is-superset-of.v2.js";
9
- import "core-js/modules/esnext.set.symmetric-difference.v2.js";
10
- import "core-js/modules/esnext.set.union.v2.js";
11
4
  function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
12
5
  function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
13
6
  function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
@@ -2,13 +2,6 @@
2
2
 
3
3
  exports.__esModule = true;
4
4
  require("core-js/modules/es.error.cause.js");
5
- require("core-js/modules/esnext.set.difference.v2.js");
6
- require("core-js/modules/esnext.set.intersection.v2.js");
7
- require("core-js/modules/esnext.set.is-disjoint-from.v2.js");
8
- require("core-js/modules/esnext.set.is-subset-of.v2.js");
9
- require("core-js/modules/esnext.set.is-superset-of.v2.js");
10
- require("core-js/modules/esnext.set.symmetric-difference.v2.js");
11
- require("core-js/modules/esnext.set.union.v2.js");
12
5
  var _element = require("../../../../helpers/dom/element");
13
6
  function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
14
7
  function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
@@ -1,11 +1,4 @@
1
1
  import "core-js/modules/es.error.cause.js";
2
- import "core-js/modules/esnext.set.difference.v2.js";
3
- import "core-js/modules/esnext.set.intersection.v2.js";
4
- import "core-js/modules/esnext.set.is-disjoint-from.v2.js";
5
- import "core-js/modules/esnext.set.is-subset-of.v2.js";
6
- import "core-js/modules/esnext.set.is-superset-of.v2.js";
7
- import "core-js/modules/esnext.set.symmetric-difference.v2.js";
8
- import "core-js/modules/esnext.set.union.v2.js";
9
2
  function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
10
3
  function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
11
4
  function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
@@ -251,6 +251,7 @@ class Table {
251
251
  const rowHeadersCount = rowHeaders.length;
252
252
  const columnHeaders = wtSettings.getSetting('columnHeaders');
253
253
  const columnHeadersCount = columnHeaders.length;
254
+ let syncScroll = false;
254
255
  let runFastDraw = fastDraw;
255
256
  if (this.isMaster) {
256
257
  this.holderOffset = (0, _element.offset)(this.holder);
@@ -265,7 +266,7 @@ class Table {
265
266
  }
266
267
  }
267
268
  if (this.isMaster) {
268
- wtOverlays.beforeDraw();
269
+ syncScroll = wtOverlays.updateStateOfRendering();
269
270
  }
270
271
  if (runFastDraw) {
271
272
  if (this.isMaster) {
@@ -306,7 +307,7 @@ class Table {
306
307
  let workspaceWidth;
307
308
  if (this.isMaster) {
308
309
  workspaceWidth = this.dataAccessObject.workspaceWidth;
309
- wtViewport.containerWidth = null;
310
+ this.dataAccessObject.wtViewport.containerWidth = null;
310
311
  this.markOversizedColumnHeaders();
311
312
  }
312
313
  this.adjustColumnHeaderHeights();
@@ -314,10 +315,10 @@ class Table {
314
315
  this.markOversizedRows();
315
316
  }
316
317
  if (this.isMaster) {
317
- wtViewport.createVisibleCalculators();
318
- wtViewport.createPartiallyVisibleCalculators();
319
- wtOverlays.refresh(false);
320
- wtOverlays.applyToDOM();
318
+ this.dataAccessObject.wtViewport.createVisibleCalculators();
319
+ this.dataAccessObject.wtViewport.createPartiallyVisibleCalculators();
320
+ this.dataAccessObject.wtOverlays.refresh(false);
321
+ this.dataAccessObject.wtOverlays.applyToDOM();
321
322
  const hiderWidth = (0, _element.outerWidth)(this.hider);
322
323
  const tableWidth = (0, _element.outerWidth)(this.TABLE);
323
324
  if (hiderWidth !== 0 && tableWidth !== hiderWidth) {
@@ -325,9 +326,9 @@ class Table {
325
326
  this.columnUtils.calculateWidths();
326
327
  this.tableRenderer.renderer.colGroup.render();
327
328
  }
328
- if (workspaceWidth !== wtViewport.getWorkspaceWidth()) {
329
+ if (workspaceWidth !== this.dataAccessObject.wtViewport.getWorkspaceWidth()) {
329
330
  // workspace width changed though to shown/hidden vertical scrollbar. Let's reapply stretching
330
- wtViewport.containerWidth = null;
331
+ this.dataAccessObject.wtViewport.containerWidth = null;
331
332
  this.columnUtils.calculateWidths();
332
333
  this.tableRenderer.renderer.colGroup.render();
333
334
  }
@@ -360,8 +361,8 @@ class Table {
360
361
  } else {
361
362
  this.dataAccessObject.selectionManager.setActiveOverlay(this.facadeGetter()).render(runFastDraw);
362
363
  }
363
- if (this.isMaster) {
364
- wtOverlays.afterDraw();
364
+ if (syncScroll) {
365
+ wtOverlays.syncScrollWithMaster();
365
366
  }
366
367
  this.dataAccessObject.drawn = true;
367
368
  return this;
@@ -247,6 +247,7 @@ class Table {
247
247
  const rowHeadersCount = rowHeaders.length;
248
248
  const columnHeaders = wtSettings.getSetting('columnHeaders');
249
249
  const columnHeadersCount = columnHeaders.length;
250
+ let syncScroll = false;
250
251
  let runFastDraw = fastDraw;
251
252
  if (this.isMaster) {
252
253
  this.holderOffset = offset(this.holder);
@@ -261,7 +262,7 @@ class Table {
261
262
  }
262
263
  }
263
264
  if (this.isMaster) {
264
- wtOverlays.beforeDraw();
265
+ syncScroll = wtOverlays.updateStateOfRendering();
265
266
  }
266
267
  if (runFastDraw) {
267
268
  if (this.isMaster) {
@@ -302,7 +303,7 @@ class Table {
302
303
  let workspaceWidth;
303
304
  if (this.isMaster) {
304
305
  workspaceWidth = this.dataAccessObject.workspaceWidth;
305
- wtViewport.containerWidth = null;
306
+ this.dataAccessObject.wtViewport.containerWidth = null;
306
307
  this.markOversizedColumnHeaders();
307
308
  }
308
309
  this.adjustColumnHeaderHeights();
@@ -310,10 +311,10 @@ class Table {
310
311
  this.markOversizedRows();
311
312
  }
312
313
  if (this.isMaster) {
313
- wtViewport.createVisibleCalculators();
314
- wtViewport.createPartiallyVisibleCalculators();
315
- wtOverlays.refresh(false);
316
- wtOverlays.applyToDOM();
314
+ this.dataAccessObject.wtViewport.createVisibleCalculators();
315
+ this.dataAccessObject.wtViewport.createPartiallyVisibleCalculators();
316
+ this.dataAccessObject.wtOverlays.refresh(false);
317
+ this.dataAccessObject.wtOverlays.applyToDOM();
317
318
  const hiderWidth = outerWidth(this.hider);
318
319
  const tableWidth = outerWidth(this.TABLE);
319
320
  if (hiderWidth !== 0 && tableWidth !== hiderWidth) {
@@ -321,9 +322,9 @@ class Table {
321
322
  this.columnUtils.calculateWidths();
322
323
  this.tableRenderer.renderer.colGroup.render();
323
324
  }
324
- if (workspaceWidth !== wtViewport.getWorkspaceWidth()) {
325
+ if (workspaceWidth !== this.dataAccessObject.wtViewport.getWorkspaceWidth()) {
325
326
  // workspace width changed though to shown/hidden vertical scrollbar. Let's reapply stretching
326
- wtViewport.containerWidth = null;
327
+ this.dataAccessObject.wtViewport.containerWidth = null;
327
328
  this.columnUtils.calculateWidths();
328
329
  this.tableRenderer.renderer.colGroup.render();
329
330
  }
@@ -356,8 +357,8 @@ class Table {
356
357
  } else {
357
358
  this.dataAccessObject.selectionManager.setActiveOverlay(this.facadeGetter()).render(runFastDraw);
358
359
  }
359
- if (this.isMaster) {
360
- wtOverlays.afterDraw();
360
+ if (syncScroll) {
361
+ wtOverlays.syncScrollWithMaster();
361
362
  }
362
363
  this.dataAccessObject.drawn = true;
363
364
  return this;
package/base.js CHANGED
@@ -45,8 +45,8 @@ Handsontable.hooks = _pluginHooks.default.getSingleton();
45
45
  Handsontable.CellCoords = _src.CellCoords;
46
46
  Handsontable.CellRange = _src.CellRange;
47
47
  Handsontable.packageName = 'handsontable';
48
- Handsontable.buildDate = "22/04/2024 08:12:50";
49
- Handsontable.version = "0.0.0-next-1763d65-20240422";
48
+ Handsontable.buildDate = "22/04/2024 11:46:13";
49
+ Handsontable.version = "0.0.0-next-442dd51-20240422";
50
50
  Handsontable.languages = {
51
51
  dictionaryKeys: _registry.dictionaryKeys,
52
52
  getLanguageDictionary: _registry.getLanguageDictionary,
package/base.mjs CHANGED
@@ -35,8 +35,8 @@ Handsontable.hooks = Hooks.getSingleton();
35
35
  Handsontable.CellCoords = CellCoords;
36
36
  Handsontable.CellRange = CellRange;
37
37
  Handsontable.packageName = 'handsontable';
38
- Handsontable.buildDate = "22/04/2024 08:12:56";
39
- Handsontable.version = "0.0.0-next-1763d65-20240422";
38
+ Handsontable.buildDate = "22/04/2024 11:46:19";
39
+ Handsontable.version = "0.0.0-next-442dd51-20240422";
40
40
  Handsontable.languages = {
41
41
  dictionaryKeys,
42
42
  getLanguageDictionary,
package/core.js CHANGED
@@ -4,13 +4,6 @@ exports.__esModule = true;
4
4
  exports.default = Core;
5
5
  require("core-js/modules/es.error.cause.js");
6
6
  require("core-js/modules/es.array.push.js");
7
- require("core-js/modules/esnext.set.difference.v2.js");
8
- require("core-js/modules/esnext.set.intersection.v2.js");
9
- require("core-js/modules/esnext.set.is-disjoint-from.v2.js");
10
- require("core-js/modules/esnext.set.is-subset-of.v2.js");
11
- require("core-js/modules/esnext.set.is-superset-of.v2.js");
12
- require("core-js/modules/esnext.set.symmetric-difference.v2.js");
13
- require("core-js/modules/esnext.set.union.v2.js");
14
7
  require("core-js/modules/web.immediate.js");
15
8
  var _element = require("./helpers/dom/element");
16
9
  var _function = require("./helpers/function");
package/core.mjs CHANGED
@@ -1,12 +1,5 @@
1
1
  import "core-js/modules/es.error.cause.js";
2
2
  import "core-js/modules/es.array.push.js";
3
- import "core-js/modules/esnext.set.difference.v2.js";
4
- import "core-js/modules/esnext.set.intersection.v2.js";
5
- import "core-js/modules/esnext.set.is-disjoint-from.v2.js";
6
- import "core-js/modules/esnext.set.is-subset-of.v2.js";
7
- import "core-js/modules/esnext.set.is-superset-of.v2.js";
8
- import "core-js/modules/esnext.set.symmetric-difference.v2.js";
9
- import "core-js/modules/esnext.set.union.v2.js";
10
3
  import "core-js/modules/web.immediate.js";
11
4
  import { addClass, empty, observeVisibilityChangeOnce, removeClass } from "./helpers/dom/element.mjs";
12
5
  import { isFunction } from "./helpers/function.mjs";
@@ -3,13 +3,6 @@
3
3
  exports.__esModule = true;
4
4
  require("core-js/modules/es.error.cause.js");
5
5
  require("core-js/modules/es.array.push.js");
6
- require("core-js/modules/esnext.set.difference.v2.js");
7
- require("core-js/modules/esnext.set.intersection.v2.js");
8
- require("core-js/modules/esnext.set.is-disjoint-from.v2.js");
9
- require("core-js/modules/esnext.set.is-subset-of.v2.js");
10
- require("core-js/modules/esnext.set.is-superset-of.v2.js");
11
- require("core-js/modules/esnext.set.symmetric-difference.v2.js");
12
- require("core-js/modules/esnext.set.union.v2.js");
13
6
  var _array = require("../../helpers/array");
14
7
  var _utils = require("./utils");
15
8
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
@@ -1,12 +1,5 @@
1
1
  import "core-js/modules/es.error.cause.js";
2
2
  import "core-js/modules/es.array.push.js";
3
- import "core-js/modules/esnext.set.difference.v2.js";
4
- import "core-js/modules/esnext.set.intersection.v2.js";
5
- import "core-js/modules/esnext.set.is-disjoint-from.v2.js";
6
- import "core-js/modules/esnext.set.is-subset-of.v2.js";
7
- import "core-js/modules/esnext.set.is-superset-of.v2.js";
8
- import "core-js/modules/esnext.set.symmetric-difference.v2.js";
9
- import "core-js/modules/esnext.set.union.v2.js";
10
3
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
11
4
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
12
5
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
@@ -2,13 +2,6 @@
2
2
 
3
3
  exports.__esModule = true;
4
4
  require("core-js/modules/es.error.cause.js");
5
- require("core-js/modules/esnext.set.difference.v2.js");
6
- require("core-js/modules/esnext.set.intersection.v2.js");
7
- require("core-js/modules/esnext.set.is-disjoint-from.v2.js");
8
- require("core-js/modules/esnext.set.is-subset-of.v2.js");
9
- require("core-js/modules/esnext.set.is-superset-of.v2.js");
10
- require("core-js/modules/esnext.set.symmetric-difference.v2.js");
11
- require("core-js/modules/esnext.set.union.v2.js");
12
5
  var _pluginHooks = _interopRequireDefault(require("../../../pluginHooks"));
13
6
  var _object = require("../../../helpers/object");
14
7
  var _function = require("../../../helpers/function");
@@ -1,11 +1,4 @@
1
1
  import "core-js/modules/es.error.cause.js";
2
- import "core-js/modules/esnext.set.difference.v2.js";
3
- import "core-js/modules/esnext.set.intersection.v2.js";
4
- import "core-js/modules/esnext.set.is-disjoint-from.v2.js";
5
- import "core-js/modules/esnext.set.is-subset-of.v2.js";
6
- import "core-js/modules/esnext.set.is-superset-of.v2.js";
7
- import "core-js/modules/esnext.set.symmetric-difference.v2.js";
8
- import "core-js/modules/esnext.set.union.v2.js";
9
2
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
10
3
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
11
4
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
@@ -2,22 +2,9 @@
2
2
 
3
3
  exports.__esModule = true;
4
4
  require("core-js/modules/es.error.cause.js");
5
- require("core-js/modules/es.array.push.js");
6
- require("core-js/modules/esnext.set.difference.v2.js");
7
- require("core-js/modules/esnext.set.intersection.v2.js");
8
- require("core-js/modules/esnext.set.is-disjoint-from.v2.js");
9
- require("core-js/modules/esnext.set.is-subset-of.v2.js");
10
- require("core-js/modules/esnext.set.is-superset-of.v2.js");
11
- require("core-js/modules/esnext.set.symmetric-difference.v2.js");
12
- require("core-js/modules/esnext.set.union.v2.js");
13
- function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
14
- function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
15
5
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
16
6
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
17
7
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
18
- function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
19
- 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"); }
20
- var _initOnlyCallback = /*#__PURE__*/new WeakMap();
21
8
  /**
22
9
  * @class ExtendMetaPropertiesMod
23
10
  */
@@ -35,7 +22,11 @@ class ExtendMetaPropertiesMod {
35
22
  * @type {Map}
36
23
  */
37
24
  _defineProperty(this, "propDescriptors", new Map([['ariaTags', {
38
- initOnly: true
25
+ onChange(propName, value, isInitialChange) {
26
+ if (!isInitialChange) {
27
+ throw new Error(`The \`${propName}\` option can not be updated after the Handsontable instance was initialized.`);
28
+ }
29
+ }
39
30
  }], ['fixedColumnsLeft', {
40
31
  target: 'fixedColumnsStart',
41
32
  onChange(propName) {
@@ -48,52 +39,48 @@ class ExtendMetaPropertiesMod {
48
39
  }
49
40
  }
50
41
  }], ['layoutDirection', {
51
- initOnly: true
52
- }], ['renderAllColumns', {
53
- initOnly: true
54
- }], ['renderAllRows', {
55
- initOnly: true
56
- }]]));
57
- /**
58
- * Callback called when the prop is marked as `initOnly`.
59
- *
60
- * @param {string} propName The property name.
61
- * @param {*} value The new value.
62
- * @param {boolean} isInitialChange Is the change initial.
63
- */
64
- _classPrivateFieldInitSpec(this, _initOnlyCallback, (propName, value, isInitialChange) => {
65
- if (!isInitialChange) {
66
- throw new Error(`The \`${propName}\` option can not be updated after the Handsontable is initialized.`);
42
+ onChange(propName, value, isInitialChange) {
43
+ if (!isInitialChange) {
44
+ throw new Error(`The \`${propName}\` option can not be updated after the Handsontable is initialized.`);
45
+ }
67
46
  }
68
- });
47
+ }]
48
+ // Temporary commented out due to the bug in the React wrapper.
49
+ // ['renderAllColumns', {
50
+ // onChange(propName, value, isInitialChange) {
51
+ // if (!isInitialChange) {
52
+ // throw new Error(`The \`${propName}\` option can not be updated after the Handsontable is initialized.`);
53
+ // }
54
+ // }
55
+ // }],
56
+ // ['renderAllRows', {
57
+ // onChange(propName, value, isInitialChange) {
58
+ // if (!isInitialChange) {
59
+ // throw new Error(`The \`${propName}\` option can not be updated after the Handsontable is initialized.`);
60
+ // }
61
+ // }
62
+ // }],
63
+ ]));
69
64
  this.metaManager = metaManager;
70
65
  this.extendMetaProps();
71
66
  }
67
+
72
68
  /**
73
69
  * Extends the meta options based on the object descriptors from the `propDescriptors` list.
74
70
  */
75
71
  extendMetaProps() {
76
72
  this.propDescriptors.forEach((descriptor, alias) => {
77
73
  const {
78
- initOnly,
79
74
  target,
80
- onChange
75
+ onChange = () => {}
81
76
  } = descriptor;
82
77
  const hasTarget = typeof target === 'string';
83
78
  const targetProp = hasTarget ? target : alias;
84
79
  const origProp = `_${targetProp}`;
85
80
  this.metaManager.globalMeta.meta[origProp] = this.metaManager.globalMeta.meta[targetProp];
86
- if (onChange) {
87
- this.installPropWatcher(alias, origProp, onChange);
88
- if (hasTarget) {
89
- this.installPropWatcher(target, origProp, onChange);
90
- }
91
- } else if (initOnly) {
92
- this.installPropWatcher(alias, origProp, _classPrivateFieldGet(_initOnlyCallback, this));
93
- if (!this.metaManager.globalMeta.meta._initOnlySettings) {
94
- this.metaManager.globalMeta.meta._initOnlySettings = [];
95
- }
96
- this.metaManager.globalMeta.meta._initOnlySettings.push(alias);
81
+ this.installPropWatcher(alias, origProp, onChange);
82
+ if (hasTarget) {
83
+ this.installPropWatcher(target, origProp, onChange);
97
84
  }
98
85
  });
99
86
  }