handsontable 0.0.0-next-b0410df-20240415 → 0.0.0-next-c99a89d-20240418

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 (56) hide show
  1. package/3rdparty/walkontable/src/overlay/_base.js +24 -20
  2. package/3rdparty/walkontable/src/overlay/_base.mjs +24 -20
  3. package/3rdparty/walkontable/src/overlay/bottom.js +3 -6
  4. package/3rdparty/walkontable/src/overlay/bottom.mjs +3 -6
  5. package/3rdparty/walkontable/src/overlay/inlineStart.js +3 -6
  6. package/3rdparty/walkontable/src/overlay/inlineStart.mjs +3 -6
  7. package/3rdparty/walkontable/src/overlay/top.js +3 -6
  8. package/3rdparty/walkontable/src/overlay/top.mjs +3 -6
  9. package/3rdparty/walkontable/src/overlays.js +46 -24
  10. package/3rdparty/walkontable/src/overlays.mjs +46 -24
  11. package/3rdparty/walkontable/src/table.js +10 -11
  12. package/3rdparty/walkontable/src/table.mjs +10 -11
  13. package/CHANGELOG.md +27 -0
  14. package/base.js +2 -2
  15. package/base.mjs +2 -2
  16. package/dataMap/metaManager/mods/extendMetaProperties.js +37 -31
  17. package/dataMap/metaManager/mods/extendMetaProperties.mjs +37 -31
  18. package/dist/handsontable.css +2 -2
  19. package/dist/handsontable.full.css +2 -2
  20. package/dist/handsontable.full.js +150 -130
  21. package/dist/handsontable.full.min.css +2 -2
  22. package/dist/handsontable.full.min.js +8 -8
  23. package/dist/handsontable.js +150 -130
  24. package/dist/handsontable.min.css +2 -2
  25. package/dist/handsontable.min.js +8 -8
  26. package/helpers/mixed.js +2 -2
  27. package/helpers/mixed.mjs +2 -2
  28. package/package.json +1 -1
  29. package/plugins/autoRowSize/autoRowSize.js +2 -2
  30. package/plugins/autoRowSize/autoRowSize.mjs +2 -2
  31. package/plugins/collapsibleColumns/collapsibleColumns.js +1 -1
  32. package/plugins/collapsibleColumns/collapsibleColumns.mjs +1 -1
  33. package/plugins/filters/filters.js +1 -1
  34. package/plugins/filters/filters.mjs +1 -1
  35. package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +1 -1
  36. package/plugins/hiddenColumns/contextMenuItem/hideColumn.mjs +1 -1
  37. package/plugins/hiddenColumns/contextMenuItem/showColumn.js +1 -1
  38. package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +1 -1
  39. package/plugins/hiddenRows/contextMenuItem/hideRow.js +1 -1
  40. package/plugins/hiddenRows/contextMenuItem/hideRow.mjs +1 -1
  41. package/plugins/hiddenRows/contextMenuItem/showRow.js +1 -1
  42. package/plugins/hiddenRows/contextMenuItem/showRow.mjs +1 -1
  43. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +1 -1
  44. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.mjs +1 -1
  45. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +1 -1
  46. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.mjs +1 -1
  47. package/plugins/manualColumnMove/manualColumnMove.js +1 -1
  48. package/plugins/manualColumnMove/manualColumnMove.mjs +1 -1
  49. package/plugins/manualColumnResize/manualColumnResize.js +2 -2
  50. package/plugins/manualColumnResize/manualColumnResize.mjs +2 -2
  51. package/plugins/manualRowMove/manualRowMove.js +1 -1
  52. package/plugins/manualRowMove/manualRowMove.mjs +1 -1
  53. package/plugins/manualRowResize/manualRowResize.js +2 -2
  54. package/plugins/manualRowResize/manualRowResize.mjs +2 -2
  55. package/tableView.js +1 -4
  56. package/tableView.mjs +1 -4
@@ -25,8 +25,8 @@
25
25
  * INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING FROM
26
26
  * USE OR INABILITY TO USE THIS SOFTWARE.
27
27
  *
28
- * Version: 0.0.0-next-b0410df-20240415
29
- * Release date: 06/03/2024 (built at 15/04/2024 07:38:51)
28
+ * Version: 0.0.0-next-c99a89d-20240418
29
+ * Release date: 16/04/2024 (built at 18/04/2024 11:00:07)
30
30
  */
31
31
  (function webpackUniversalModuleDefinition(root, factory) {
32
32
  if(typeof exports === 'object' && typeof module === 'object')
@@ -42644,8 +42644,8 @@ Handsontable.hooks = _pluginHooks.default.getSingleton();
42644
42644
  Handsontable.CellCoords = _src.CellCoords;
42645
42645
  Handsontable.CellRange = _src.CellRange;
42646
42646
  Handsontable.packageName = 'handsontable';
42647
- Handsontable.buildDate = "15/04/2024 07:38:51";
42648
- Handsontable.version = "0.0.0-next-b0410df-20240415";
42647
+ Handsontable.buildDate = "18/04/2024 11:00:07";
42648
+ Handsontable.version = "0.0.0-next-c99a89d-20240418";
42649
42649
  Handsontable.languages = {
42650
42650
  dictionaryKeys: _registry.dictionaryKeys,
42651
42651
  getLanguageDictionary: _registry.getLanguageDictionary,
@@ -52620,7 +52620,7 @@ const domMessages = {
52620
52620
  function _injectProductInfo(key, element) {
52621
52621
  const hasValidType = !isEmpty(key);
52622
52622
  const isNonCommercial = typeof key === 'string' && key.toLowerCase() === 'non-commercial-and-evaluation';
52623
- const hotVersion = "0.0.0-next-b0410df-20240415";
52623
+ const hotVersion = "0.0.0-next-c99a89d-20240418";
52624
52624
  let keyValidityDate;
52625
52625
  let consoleMessageState = 'invalid';
52626
52626
  let domMessageState = 'invalid';
@@ -52628,7 +52628,7 @@ function _injectProductInfo(key, element) {
52628
52628
  const schemaValidity = _checkKeySchema(key);
52629
52629
  if (hasValidType || isNonCommercial || schemaValidity) {
52630
52630
  if (schemaValidity) {
52631
- const releaseDate = (0, _moment.default)("06/03/2024", 'DD/MM/YYYY');
52631
+ const releaseDate = (0, _moment.default)("16/04/2024", 'DD/MM/YYYY');
52632
52632
  const releaseDays = Math.floor(releaseDate.toDate().getTime() / 8.64e7);
52633
52633
  const keyValidityDays = _extractTime(key);
52634
52634
  keyValidityDate = (0, _moment.default)((keyValidityDays + 1) * 8.64e7, 'x').format('MMMM DD, YYYY');
@@ -66842,15 +66842,12 @@ class TableView {
66842
66842
 
66843
66843
  /**
66844
66844
  * Adjust overlays elements size and master table size.
66845
- *
66846
- * @param {boolean} [force=false] When `true`, it adjust the DOM nodes sizes for all overlays.
66847
66845
  */
66848
66846
  adjustElementsSize() {
66849
- let force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
66850
66847
  if (this.hot.isRenderSuspended()) {
66851
66848
  this.postponedAdjustElementsSize = true;
66852
66849
  } else {
66853
- this._wt.wtOverlays.adjustElementsSize(force);
66850
+ this._wt.wtOverlays.adjustElementsSize();
66854
66851
  }
66855
66852
  }
66856
66853
 
@@ -70627,6 +70624,7 @@ var _default = exports["default"] = Event;
70627
70624
 
70628
70625
  var _interopRequireDefault = __webpack_require__(197);
70629
70626
  exports.__esModule = true;
70627
+ __webpack_require__(204);
70630
70628
  __webpack_require__(286);
70631
70629
  var _defineProperty2 = _interopRequireDefault(__webpack_require__(454));
70632
70630
  var _element = __webpack_require__(303);
@@ -70635,9 +70633,16 @@ var _array = __webpack_require__(445);
70635
70633
  var _unicode = __webpack_require__(458);
70636
70634
  var _browser = __webpack_require__(448);
70637
70635
  var _overlay = __webpack_require__(498);
70636
+ function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
70637
+ function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
70638
+ function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
70639
+ function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
70640
+ 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"); }
70638
70641
  /**
70639
70642
  * @class Overlays
70640
70643
  */
70644
+ var _overlays = /*#__PURE__*/new WeakMap();
70645
+ var _hasRenderingStateChanged = /*#__PURE__*/new WeakMap();
70641
70646
  class Overlays {
70642
70647
  /**
70643
70648
  * @param {Walkontable} wotInstance The Walkontable instance. @todo refactoring remove.
@@ -70655,6 +70660,12 @@ class Overlays {
70655
70660
  * @type {Walkontable}
70656
70661
  */
70657
70662
  (0, _defineProperty2.default)(this, "wot", null);
70663
+ /**
70664
+ * An array of the all overlays.
70665
+ *
70666
+ * @type {Overlay[]}
70667
+ */
70668
+ _classPrivateFieldInitSpec(this, _overlays, []);
70658
70669
  /**
70659
70670
  * Refer to the TopOverlay instance.
70660
70671
  *
@@ -70704,6 +70715,12 @@ class Overlays {
70704
70715
  * @type {Settings}
70705
70716
  */
70706
70717
  (0, _defineProperty2.default)(this, "wtSettings", null);
70718
+ /**
70719
+ * Indicates whether the rendering state has changed for one of the overlays.
70720
+ *
70721
+ * @type {boolean}
70722
+ */
70723
+ _classPrivateFieldInitSpec(this, _hasRenderingStateChanged, false);
70707
70724
  /**
70708
70725
  * The instance of the ResizeObserver that observes the size of the Walkontable wrapper element.
70709
70726
  * In case of the size change detection the `onContainerElementResize` is fired.
@@ -70763,7 +70780,7 @@ class Overlays {
70763
70780
  */
70764
70781
  getOverlays() {
70765
70782
  let includeMaster = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
70766
- const overlays = [this.topOverlay, this.topInlineStartCornerOverlay, this.inlineStartOverlay, this.bottomOverlay, this.bottomInlineStartCornerOverlay];
70783
+ const overlays = [..._classPrivateFieldGet(_overlays, this)];
70767
70784
  if (includeMaster) {
70768
70785
  overlays.push(this.wtTable);
70769
70786
  }
@@ -70808,29 +70825,31 @@ class Overlays {
70808
70825
  // TODO cond. Has no any visual impact. They're initially hidden in same way like left, top, and bottom overlays.
70809
70826
  this.topInlineStartCornerOverlay = new _overlay.TopInlineStartCornerOverlay(...args, this.topOverlay, this.inlineStartOverlay);
70810
70827
  this.bottomInlineStartCornerOverlay = new _overlay.BottomInlineStartCornerOverlay(...args, this.bottomOverlay, this.inlineStartOverlay);
70828
+ _classPrivateFieldSet(_overlays, this, [this.topOverlay, this.bottomOverlay, this.inlineStartOverlay, this.topInlineStartCornerOverlay, this.bottomInlineStartCornerOverlay]);
70811
70829
  }
70812
70830
 
70813
70831
  /**
70814
- * Update state of rendering, check if changed.
70815
- *
70816
- * @package
70817
- * @returns {boolean} Returns `true` if changes applied to overlay needs scroll synchronization.
70832
+ * Runs logic for the overlays before the table is drawn.
70818
70833
  */
70819
- updateStateOfRendering() {
70820
- let syncScroll = this.topOverlay.updateStateOfRendering();
70821
- syncScroll = this.bottomOverlay.updateStateOfRendering() || syncScroll;
70822
- syncScroll = this.inlineStartOverlay.updateStateOfRendering() || syncScroll;
70834
+ beforeDraw() {
70835
+ _classPrivateFieldSet(_hasRenderingStateChanged, this, _classPrivateFieldGet(_overlays, this).reduce((acc, overlay) => {
70836
+ return overlay.hasRenderingStateChanged() || acc;
70837
+ }, false));
70838
+ _classPrivateFieldGet(_overlays, this).forEach(overlay => overlay.updateStateOfRendering('before'));
70839
+ }
70823
70840
 
70824
- // todo refactoring: move conditions into updateStateOfRendering(),
70825
- if (this.inlineStartOverlay.needFullRender) {
70826
- if (this.topOverlay.needFullRender) {
70827
- syncScroll = this.topInlineStartCornerOverlay.updateStateOfRendering() || syncScroll;
70828
- }
70829
- if (this.bottomOverlay.needFullRender) {
70830
- syncScroll = this.bottomInlineStartCornerOverlay.updateStateOfRendering() || syncScroll;
70841
+ /**
70842
+ * Runs logic for the overlays after the table is drawn.
70843
+ */
70844
+ afterDraw() {
70845
+ this.syncScrollWithMaster();
70846
+ _classPrivateFieldGet(_overlays, this).forEach(overlay => {
70847
+ const hasRenderingStateChanged = overlay.hasRenderingStateChanged();
70848
+ overlay.updateStateOfRendering('after');
70849
+ if (hasRenderingStateChanged && !overlay.needFullRender) {
70850
+ overlay.reset();
70831
70851
  }
70832
- }
70833
- return syncScroll;
70852
+ });
70834
70853
  }
70835
70854
 
70836
70855
  /**
@@ -71070,6 +71089,9 @@ class Overlays {
71070
71089
  * Synchronize overlay scrollbars with the master scrollbar.
71071
71090
  */
71072
71091
  syncScrollWithMaster() {
71092
+ if (!_classPrivateFieldGet(_hasRenderingStateChanged, this)) {
71093
+ return;
71094
+ }
71073
71095
  const master = this.topOverlay.mainTableScrollableElement;
71074
71096
  const {
71075
71097
  scrollLeft,
@@ -71084,6 +71106,7 @@ class Overlays {
71084
71106
  if (this.inlineStartOverlay.needFullRender) {
71085
71107
  this.inlineStartOverlay.clone.wtTable.holder.scrollTop = scrollTop; // todo rethink, *overlay.setScroll*()
71086
71108
  }
71109
+ _classPrivateFieldSet(_hasRenderingStateChanged, this, false);
71087
71110
  }
71088
71111
 
71089
71112
  /**
@@ -71174,11 +71197,8 @@ class Overlays {
71174
71197
 
71175
71198
  /**
71176
71199
  * Adjust overlays elements size and master table size.
71177
- *
71178
- * @param {boolean} [force=false] When `true`, it adjust the DOM nodes sizes for all overlays.
71179
71200
  */
71180
71201
  adjustElementsSize() {
71181
- let force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
71182
71202
  const {
71183
71203
  wtViewport
71184
71204
  } = this.wot;
@@ -71228,9 +71248,9 @@ class Overlays {
71228
71248
  this.hasScrollbarRight = true;
71229
71249
  }
71230
71250
  }
71231
- this.topOverlay.adjustElementsSize(force);
71232
- this.inlineStartOverlay.adjustElementsSize(force);
71233
- this.bottomOverlay.adjustElementsSize(force);
71251
+ this.topOverlay.adjustElementsSize();
71252
+ this.inlineStartOverlay.adjustElementsSize();
71253
+ this.bottomOverlay.adjustElementsSize();
71234
71254
  }
71235
71255
 
71236
71256
  /**
@@ -71753,7 +71773,6 @@ class Table {
71753
71773
  const rowHeadersCount = rowHeaders.length;
71754
71774
  const columnHeaders = wtSettings.getSetting('columnHeaders');
71755
71775
  const columnHeadersCount = columnHeaders.length;
71756
- let syncScroll = false;
71757
71776
  let runFastDraw = fastDraw;
71758
71777
  if (this.isMaster) {
71759
71778
  this.holderOffset = (0, _element.offset)(this.holder);
@@ -71768,7 +71787,7 @@ class Table {
71768
71787
  }
71769
71788
  }
71770
71789
  if (this.isMaster) {
71771
- syncScroll = wtOverlays.updateStateOfRendering();
71790
+ wtOverlays.beforeDraw();
71772
71791
  }
71773
71792
  if (runFastDraw) {
71774
71793
  if (this.isMaster) {
@@ -71809,7 +71828,7 @@ class Table {
71809
71828
  let workspaceWidth;
71810
71829
  if (this.isMaster) {
71811
71830
  workspaceWidth = this.dataAccessObject.workspaceWidth;
71812
- this.dataAccessObject.wtViewport.containerWidth = null;
71831
+ wtViewport.containerWidth = null;
71813
71832
  this.markOversizedColumnHeaders();
71814
71833
  }
71815
71834
  this.adjustColumnHeaderHeights();
@@ -71817,10 +71836,10 @@ class Table {
71817
71836
  this.markOversizedRows();
71818
71837
  }
71819
71838
  if (this.isMaster) {
71820
- this.dataAccessObject.wtViewport.createVisibleCalculators();
71821
- this.dataAccessObject.wtViewport.createPartiallyVisibleCalculators();
71822
- this.dataAccessObject.wtOverlays.refresh(false);
71823
- this.dataAccessObject.wtOverlays.applyToDOM();
71839
+ wtViewport.createVisibleCalculators();
71840
+ wtViewport.createPartiallyVisibleCalculators();
71841
+ wtOverlays.refresh(false);
71842
+ wtOverlays.applyToDOM();
71824
71843
  const hiderWidth = (0, _element.outerWidth)(this.hider);
71825
71844
  const tableWidth = (0, _element.outerWidth)(this.TABLE);
71826
71845
  if (hiderWidth !== 0 && tableWidth !== hiderWidth) {
@@ -71828,9 +71847,9 @@ class Table {
71828
71847
  this.columnUtils.calculateWidths();
71829
71848
  this.tableRenderer.renderer.colGroup.render();
71830
71849
  }
71831
- if (workspaceWidth !== this.dataAccessObject.wtViewport.getWorkspaceWidth()) {
71850
+ if (workspaceWidth !== wtViewport.getWorkspaceWidth()) {
71832
71851
  // workspace width changed though to shown/hidden vertical scrollbar. Let's reapply stretching
71833
- this.dataAccessObject.wtViewport.containerWidth = null;
71852
+ wtViewport.containerWidth = null;
71834
71853
  this.columnUtils.calculateWidths();
71835
71854
  this.tableRenderer.renderer.colGroup.render();
71836
71855
  }
@@ -71863,8 +71882,8 @@ class Table {
71863
71882
  } else {
71864
71883
  this.dataAccessObject.selectionManager.setActiveOverlay(this.facadeGetter()).render(runFastDraw);
71865
71884
  }
71866
- if (syncScroll) {
71867
- wtOverlays.syncScrollWithMaster();
71885
+ if (this.isMaster) {
71886
+ wtOverlays.afterDraw();
71868
71887
  }
71869
71888
  this.dataAccessObject.drawn = true;
71870
71889
  return this;
@@ -74920,7 +74939,6 @@ __webpack_require__(204);
74920
74939
  var _defineProperty2 = _interopRequireDefault(__webpack_require__(454));
74921
74940
  var _element = __webpack_require__(303);
74922
74941
  var _object = __webpack_require__(449);
74923
- var _array = __webpack_require__(445);
74924
74942
  var _console = __webpack_require__(462);
74925
74943
  var _constants = __webpack_require__(525);
74926
74944
  var _clone = _interopRequireDefault(__webpack_require__(526));
@@ -74973,24 +74991,35 @@ class Overlay {
74973
74991
  this.holder = holder;
74974
74992
  this.wtRootElement = wtRootElement;
74975
74993
  this.trimmingContainer = (0, _element.getTrimmingContainer)(this.hider.parentNode.parentNode);
74976
- this.updateStateOfRendering();
74994
+ this.needFullRender = this.shouldBeRendered();
74977
74995
  this.clone = this.makeClone();
74978
74996
  }
74979
74997
 
74980
74998
  /**
74981
- * Update internal state of object with an information about the need of full rendering of the overlay.
74999
+ * Checks if the overlay rendering state has changed.
74982
75000
  *
74983
- * @returns {boolean} Returns `true` if the state has changed since the last check.
75001
+ * @returns {boolean}
74984
75002
  */
74985
- updateStateOfRendering() {
74986
- // todo refactoring: conceive introducing final state machine, normal -> changed (once) -> needs-full-render -> ...? -> normal
74987
- const previousState = this.needFullRender;
74988
- this.needFullRender = this.shouldBeRendered();
74989
- const changed = previousState !== this.needFullRender;
74990
- if (changed && !this.needFullRender) {
74991
- this.reset();
75003
+ hasRenderingStateChanged() {
75004
+ return this.needFullRender !== this.shouldBeRendered();
75005
+ }
75006
+
75007
+ /**
75008
+ * Updates internal state with an information about the need of full rendering of the overlay in the next draw cycles.
75009
+ *
75010
+ * If the state is changed to render the overlay, the `needFullRender` property is set to `true` which means that
75011
+ * the overlay will be fully rendered in the current draw cycle. If the state is changed to not render the overlay,
75012
+ * the `needFullRender` property is set to `false` which means that the overlay will be fully rendered in the
75013
+ * current draw cycle but it will not be rendered in the next draw cycles.
75014
+ *
75015
+ * @param {'before' | 'after'} drawPhase The phase of the rendering process.
75016
+ */
75017
+ updateStateOfRendering(drawPhase) {
75018
+ if (drawPhase === 'before' && this.shouldBeRendered()) {
75019
+ this.needFullRender = true;
75020
+ } else if (drawPhase === 'after' && !this.shouldBeRendered()) {
75021
+ this.needFullRender = false;
74992
75022
  }
74993
- return changed;
74994
75023
  }
74995
75024
 
74996
75025
  /**
@@ -75217,27 +75246,21 @@ class Overlay {
75217
75246
  */
75218
75247
  refresh() {
75219
75248
  let fastDraw = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
75220
- // When hot settings are changed we allow to refresh overlay once before blocking
75221
- const nextCycleRenderFlag = this.shouldBeRendered();
75222
- if (this.clone && (this.needFullRender || nextCycleRenderFlag)) {
75249
+ if (this.needFullRender) {
75223
75250
  this.clone.draw(fastDraw);
75224
75251
  }
75225
- this.needFullRender = nextCycleRenderFlag;
75226
75252
  }
75227
75253
 
75228
75254
  /**
75229
75255
  * Reset overlay styles to initial values.
75230
75256
  */
75231
75257
  reset() {
75232
- if (!this.clone) {
75233
- return;
75234
- }
75235
75258
  const holder = this.clone.wtTable.holder; // todo refactoring: DEMETER
75236
75259
  const hider = this.clone.wtTable.hider; // todo refactoring: DEMETER
75237
75260
  const holderStyle = holder.style;
75238
75261
  const hiderStyle = hider.style;
75239
75262
  const rootStyle = holder.parentNode.style;
75240
- (0, _array.arrayEach)([holderStyle, hiderStyle, rootStyle], style => {
75263
+ [holderStyle, hiderStyle, rootStyle].forEach(style => {
75241
75264
  style.width = '';
75242
75265
  style.height = '';
75243
75266
  });
@@ -76057,7 +76080,7 @@ class BottomOverlay extends _base.Overlay {
76057
76080
  * @returns {boolean}
76058
76081
  */
76059
76082
  resetFixedPosition() {
76060
- if (!this.needFullRender || !this.wot.wtTable.holder.parentNode) {
76083
+ if (!this.needFullRender || !this.shouldBeRendered() || !this.wot.wtTable.holder.parentNode) {
76061
76084
  // removed from DOM
76062
76085
  return false;
76063
76086
  }
@@ -76154,14 +76177,11 @@ class BottomOverlay extends _base.Overlay {
76154
76177
  }
76155
76178
 
76156
76179
  /**
76157
- * Adjust overlay root element, childs and master table element sizes (width, height).
76158
- *
76159
- * @param {boolean} [force=false] When `true`, it adjusts the DOM nodes sizes for that overlay.
76180
+ * Adjust overlay root element, children and master table element sizes (width, height).
76160
76181
  */
76161
76182
  adjustElementsSize() {
76162
- let force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
76163
76183
  this.updateTrimmingContainer();
76164
- if (this.needFullRender || force) {
76184
+ if (this.needFullRender) {
76165
76185
  this.adjustRootElementSize();
76166
76186
  this.adjustRootChildrenSize();
76167
76187
  }
@@ -76574,7 +76594,7 @@ class InlineStartOverlay extends _base.Overlay {
76574
76594
  const {
76575
76595
  wtTable
76576
76596
  } = this.wot;
76577
- if (!this.needFullRender || !wtTable.holder.parentNode) {
76597
+ if (!this.needFullRender || !this.shouldBeRendered() || !wtTable.holder.parentNode) {
76578
76598
  // removed from DOM
76579
76599
  return false;
76580
76600
  }
@@ -76646,14 +76666,11 @@ class InlineStartOverlay extends _base.Overlay {
76646
76666
  }
76647
76667
 
76648
76668
  /**
76649
- * Adjust overlay root element, childs and master table element sizes (width, height).
76650
- *
76651
- * @param {boolean} [force=false] When `true`, it adjusts the DOM nodes sizes for that overlay.
76669
+ * Adjust overlay root element, children and master table element sizes (width, height).
76652
76670
  */
76653
76671
  adjustElementsSize() {
76654
- let force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
76655
76672
  this.updateTrimmingContainer();
76656
- if (this.needFullRender || force) {
76673
+ if (this.needFullRender) {
76657
76674
  this.adjustRootElementSize();
76658
76675
  this.adjustRootChildrenSize();
76659
76676
  }
@@ -78878,7 +78895,7 @@ class TopOverlay extends _base.Overlay {
78878
78895
  * @returns {boolean}
78879
78896
  */
78880
78897
  resetFixedPosition() {
78881
- if (!this.needFullRender || !this.wot.wtTable.holder.parentNode) {
78898
+ if (!this.needFullRender || !this.shouldBeRendered() || !this.wot.wtTable.holder.parentNode) {
78882
78899
  // removed from DOM
78883
78900
  return false;
78884
78901
  }
@@ -78966,14 +78983,11 @@ class TopOverlay extends _base.Overlay {
78966
78983
  }
78967
78984
 
78968
78985
  /**
78969
- * Adjust overlay root element, childs and master table element sizes (width, height).
78970
- *
78971
- * @param {boolean} [force=false] When `true`, it adjusts the DOM nodes sizes for that overlay.
78986
+ * Adjust overlay root element, children and master table element sizes (width, height).
78972
78987
  */
78973
78988
  adjustElementsSize() {
78974
- let force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
78975
78989
  this.updateTrimmingContainer();
78976
- if (this.needFullRender || force) {
78990
+ if (this.needFullRender) {
78977
78991
  this.adjustRootElementSize();
78978
78992
  this.adjustRootChildrenSize();
78979
78993
  }
@@ -93601,7 +93615,13 @@ exports.DynamicCellMetaMod = DynamicCellMetaMod;
93601
93615
  var _interopRequireDefault = __webpack_require__(197);
93602
93616
  exports.__esModule = true;
93603
93617
  __webpack_require__(204);
93618
+ __webpack_require__(286);
93604
93619
  var _defineProperty2 = _interopRequireDefault(__webpack_require__(454));
93620
+ function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
93621
+ function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
93622
+ function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
93623
+ 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"); }
93624
+ var _initOnlyCallback = /*#__PURE__*/new WeakMap();
93605
93625
  /**
93606
93626
  * @class ExtendMetaPropertiesMod
93607
93627
  */
@@ -93619,11 +93639,7 @@ class ExtendMetaPropertiesMod {
93619
93639
  * @type {Map}
93620
93640
  */
93621
93641
  (0, _defineProperty2.default)(this, "propDescriptors", new Map([['ariaTags', {
93622
- onChange(propName, value, isInitialChange) {
93623
- if (!isInitialChange) {
93624
- throw new Error(`The \`${propName}\` option can not be updated after the Handsontable instance was initialized.`);
93625
- }
93626
- }
93642
+ initOnly: true
93627
93643
  }], ['fixedColumnsLeft', {
93628
93644
  target: 'fixedColumnsStart',
93629
93645
  onChange(propName) {
@@ -93636,48 +93652,52 @@ class ExtendMetaPropertiesMod {
93636
93652
  }
93637
93653
  }
93638
93654
  }], ['layoutDirection', {
93639
- onChange(propName, value, isInitialChange) {
93640
- if (!isInitialChange) {
93641
- throw new Error(`The \`${propName}\` option can not be updated after the Handsontable is initialized.`);
93642
- }
93655
+ initOnly: true
93656
+ }], ['renderAllColumns', {
93657
+ initOnly: true
93658
+ }], ['renderAllRows', {
93659
+ initOnly: true
93660
+ }]]));
93661
+ /**
93662
+ * Callback called when the prop is marked as `initOnly`.
93663
+ *
93664
+ * @param {string} propName The property name.
93665
+ * @param {*} value The new value.
93666
+ * @param {boolean} isInitialChange Is the change initial.
93667
+ */
93668
+ _classPrivateFieldInitSpec(this, _initOnlyCallback, (propName, value, isInitialChange) => {
93669
+ if (!isInitialChange) {
93670
+ throw new Error(`The \`${propName}\` option can not be updated after the Handsontable is initialized.`);
93643
93671
  }
93644
- }]
93645
- // Temporary commented out due to the bug in the React wrapper.
93646
- // ['renderAllColumns', {
93647
- // onChange(propName, value, isInitialChange) {
93648
- // if (!isInitialChange) {
93649
- // throw new Error(`The \`${propName}\` option can not be updated after the Handsontable is initialized.`);
93650
- // }
93651
- // }
93652
- // }],
93653
- // ['renderAllRows', {
93654
- // onChange(propName, value, isInitialChange) {
93655
- // if (!isInitialChange) {
93656
- // throw new Error(`The \`${propName}\` option can not be updated after the Handsontable is initialized.`);
93657
- // }
93658
- // }
93659
- // }],
93660
- ]));
93672
+ });
93661
93673
  this.metaManager = metaManager;
93662
93674
  this.extendMetaProps();
93663
93675
  }
93664
-
93665
93676
  /**
93666
93677
  * Extends the meta options based on the object descriptors from the `propDescriptors` list.
93667
93678
  */
93668
93679
  extendMetaProps() {
93669
93680
  this.propDescriptors.forEach((descriptor, alias) => {
93670
93681
  const {
93682
+ initOnly,
93671
93683
  target,
93672
- onChange = () => {}
93684
+ onChange
93673
93685
  } = descriptor;
93674
93686
  const hasTarget = typeof target === 'string';
93675
93687
  const targetProp = hasTarget ? target : alias;
93676
93688
  const origProp = `_${targetProp}`;
93677
93689
  this.metaManager.globalMeta.meta[origProp] = this.metaManager.globalMeta.meta[targetProp];
93678
- this.installPropWatcher(alias, origProp, onChange);
93679
- if (hasTarget) {
93680
- this.installPropWatcher(target, origProp, onChange);
93690
+ if (onChange) {
93691
+ this.installPropWatcher(alias, origProp, onChange);
93692
+ if (hasTarget) {
93693
+ this.installPropWatcher(target, origProp, onChange);
93694
+ }
93695
+ } else if (initOnly) {
93696
+ this.installPropWatcher(alias, origProp, _classPrivateFieldGet(_initOnlyCallback, this));
93697
+ if (!this.metaManager.globalMeta.meta._initOnlySettings) {
93698
+ this.metaManager.globalMeta.meta._initOnlySettings = [];
93699
+ }
93700
+ this.metaManager.globalMeta.meta._initOnlySettings.push(alias);
93681
93701
  }
93682
93702
  });
93683
93703
  }
@@ -105291,7 +105311,7 @@ class AutoRowSize extends _base.BasePlugin {
105291
105311
  this.inProgress = false;
105292
105312
 
105293
105313
  // @TODO Should call once per render cycle, currently fired separately in different plugins
105294
- this.hot.view.adjustElementsSize(true);
105314
+ this.hot.view.adjustElementsSize();
105295
105315
 
105296
105316
  // tmp
105297
105317
  if (this.hot.view._wt.wtOverlays.inlineStartOverlay.needFullRender) {
@@ -105315,7 +105335,7 @@ class AutoRowSize extends _base.BasePlugin {
105315
105335
  loop();
105316
105336
  } else {
105317
105337
  this.inProgress = false;
105318
- this.hot.view.adjustElementsSize(false);
105338
+ this.hot.view.adjustElementsSize();
105319
105339
  }
105320
105340
  }
105321
105341
 
@@ -106313,7 +106333,7 @@ class CollapsibleColumns extends _base.BasePlugin {
106313
106333
  }
106314
106334
  this.hot.runHooks(actionTranslator.afterHook, currentCollapsedColumns, destinationCollapsedColumns, isActionPossible, isActionPerformed);
106315
106335
  this.hot.render();
106316
- this.hot.view.adjustElementsSize(true);
106336
+ this.hot.view.adjustElementsSize();
106317
106337
  }
106318
106338
 
106319
106339
  /**
@@ -118290,7 +118310,7 @@ class Filters extends _base.BasePlugin {
118290
118310
  }
118291
118311
  }
118292
118312
  this.hot.runHooks('afterFilter', conditions);
118293
- this.hot.view.adjustElementsSize(true);
118313
+ this.hot.view.adjustElementsSize();
118294
118314
  this.hot.render();
118295
118315
  if (this.hot.selection.isSelected()) {
118296
118316
  this.hot.selectCell(navigableHeaders ? -1 : 0, this.hot.getSelectedRangeLast().highlight.col);
@@ -125662,7 +125682,7 @@ function hideColumnItem(hiddenColumnsPlugin) {
125662
125682
  this.deselectCell();
125663
125683
  }
125664
125684
  this.render();
125665
- this.view.adjustElementsSize(true);
125685
+ this.view.adjustElementsSize();
125666
125686
  },
125667
125687
  disabled: false,
125668
125688
  hidden() {
@@ -125714,7 +125734,7 @@ function showColumnItem(hiddenColumnsPlugin) {
125714
125734
  // We render columns at first. It was needed for getting fixed columns.
125715
125735
  // Please take a look at #6864 for broader description.
125716
125736
  this.render();
125717
- this.view.adjustElementsSize(true);
125737
+ this.view.adjustElementsSize();
125718
125738
  const allColumnsSelected = endVisualColumn - startVisualColumn + 1 === this.countCols();
125719
125739
 
125720
125740
  // When all headers needs to be selected then do nothing. The header selection is
@@ -126354,7 +126374,7 @@ function hideRowItem(hiddenRowsPlugin) {
126354
126374
  this.deselectCell();
126355
126375
  }
126356
126376
  this.render();
126357
- this.view.adjustElementsSize(true);
126377
+ this.view.adjustElementsSize();
126358
126378
  },
126359
126379
  disabled: false,
126360
126380
  hidden() {
@@ -126406,7 +126426,7 @@ function showRowItem(hiddenRowsPlugin) {
126406
126426
  // We render rows at first. It was needed for getting fixed rows.
126407
126427
  // Please take a look at #6864 for broader description.
126408
126428
  this.render();
126409
- this.view.adjustElementsSize(true);
126429
+ this.view.adjustElementsSize();
126410
126430
  const allRowsSelected = endVisualRow - startVisualRow + 1 === this.countRows();
126411
126431
 
126412
126432
  // When all headers needs to be selected then do nothing. The header selection is
@@ -126720,7 +126740,7 @@ function freezeColumnItem(manualColumnFreezePlugin) {
126720
126740
  }] = selected;
126721
126741
  manualColumnFreezePlugin.freezeColumn(selectedColumn);
126722
126742
  this.render();
126723
- this.view.adjustElementsSize(true);
126743
+ this.view.adjustElementsSize();
126724
126744
  },
126725
126745
  hidden() {
126726
126746
  const selection = this.getSelectedRange();
@@ -126767,7 +126787,7 @@ function unfreezeColumnItem(manualColumnFreezePlugin) {
126767
126787
  }] = selected;
126768
126788
  manualColumnFreezePlugin.unfreezeColumn(selectedColumn);
126769
126789
  this.render();
126770
- this.view.adjustElementsSize(true);
126790
+ this.view.adjustElementsSize();
126771
126791
  },
126772
126792
  hidden() {
126773
126793
  const selection = this.getSelectedRange();
@@ -127469,7 +127489,7 @@ function _onMouseUp() {
127469
127489
  if (movePerformed === true) {
127470
127490
  this.persistentStateSave();
127471
127491
  this.hot.render();
127472
- this.hot.view.adjustElementsSize(true);
127492
+ this.hot.view.adjustElementsSize();
127473
127493
  const selectionStart = this.hot.toVisualColumn(firstMovedPhysicalColumn);
127474
127494
  const selectionEnd = selectionStart + columnsLen - 1;
127475
127495
  this.hot.selectColumns(selectionStart, selectionEnd);
@@ -128165,7 +128185,7 @@ class ManualColumnResize extends _base.BasePlugin {
128165
128185
  const render = () => {
128166
128186
  this.hot.forceFullRender = true;
128167
128187
  this.hot.view.render(); // updates all
128168
- this.hot.view.adjustElementsSize(true);
128188
+ this.hot.view.adjustElementsSize();
128169
128189
  };
128170
128190
  const resize = (column, forceRender) => {
128171
128191
  const hookNewSize = this.hot.runHooks('beforeColumnResize', _classPrivateFieldGet(_newSize, this), column, true);
@@ -128330,7 +128350,7 @@ function _onMouseUp() {
128330
128350
  const render = () => {
128331
128351
  this.hot.forceFullRender = true;
128332
128352
  this.hot.view.render(); // updates all
128333
- this.hot.view.adjustElementsSize(true);
128353
+ this.hot.view.adjustElementsSize();
128334
128354
  };
128335
128355
  const resize = (column, forceRender) => {
128336
128356
  this.hot.runHooks('beforeColumnResize', _classPrivateFieldGet(_newSize, this), column, false);
@@ -129052,7 +129072,7 @@ function _onMouseUp() {
129052
129072
  if (movePerformed === true) {
129053
129073
  this.persistentStateSave();
129054
129074
  this.hot.render();
129055
- this.hot.view.adjustElementsSize(true);
129075
+ this.hot.view.adjustElementsSize();
129056
129076
  const selectionStart = this.hot.toVisualRow(firstMovedPhysicalRow);
129057
129077
  const selectionEnd = selectionStart + rowsLen - 1;
129058
129078
  this.hot.selectRows(selectionStart, selectionEnd);
@@ -129739,7 +129759,7 @@ class ManualRowResize extends _base.BasePlugin {
129739
129759
  const render = () => {
129740
129760
  this.hot.forceFullRender = true;
129741
129761
  this.hot.view.render(); // updates all
129742
- this.hot.view.adjustElementsSize(true);
129762
+ this.hot.view.adjustElementsSize();
129743
129763
  };
129744
129764
  const resize = (row, forceRender) => {
129745
129765
  const hookNewSize = this.hot.runHooks('beforeRowResize', this.getActualRowHeight(row), row, true);
@@ -129868,7 +129888,7 @@ function _onMouseUp() {
129868
129888
  const render = () => {
129869
129889
  this.hot.forceFullRender = true;
129870
129890
  this.hot.view.render(); // updates all
129871
- this.hot.view.adjustElementsSize(true);
129891
+ this.hot.view.adjustElementsSize();
129872
129892
  };
129873
129893
  const runHooks = (row, forceRender) => {
129874
129894
  this.hot.runHooks('beforeRowResize', this.getActualRowHeight(row), row, false);