handsontable 0.0.0-next-b3759c7-20241203 → 0.0.0-next-e3ad397-20241203

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.

@@ -180,14 +180,13 @@ class BottomOverlay extends _base.Overlay {
180
180
  rootDocument,
181
181
  rootWindow
182
182
  } = this.domBindings;
183
- const scrollbarWidth = (0, _element.getScrollbarWidth)(rootDocument);
184
183
  const overlayRoot = this.clone.wtTable.holder.parentNode;
185
184
  const overlayRootStyle = overlayRoot.style;
186
185
  const preventOverflow = this.wtSettings.getSetting('preventOverflow');
187
186
  if (this.trimmingContainer !== rootWindow || preventOverflow === 'horizontal') {
188
187
  let width = wtViewport.getWorkspaceWidth();
189
- if (this.wot.wtOverlays.hasScrollbarRight) {
190
- width -= scrollbarWidth;
188
+ if (wtViewport.hasVerticalScroll()) {
189
+ width -= (0, _element.getScrollbarWidth)(rootDocument);
191
190
  }
192
191
  width = Math.min(width, wtTable.wtRootElement.scrollWidth);
193
192
  overlayRootStyle.width = `${width}px`;
@@ -196,7 +195,7 @@ class BottomOverlay extends _base.Overlay {
196
195
  }
197
196
  this.clone.wtTable.holder.style.width = overlayRootStyle.width;
198
197
  let tableHeight = (0, _element.outerHeight)(this.clone.wtTable.TABLE);
199
- if (!this.wot.wtTable.hasDefinedSize()) {
198
+ if (!wtTable.hasDefinedSize()) {
200
199
  tableHeight = 0;
201
200
  }
202
201
  overlayRootStyle.height = `${tableHeight}px`;
@@ -176,14 +176,13 @@ export class BottomOverlay extends Overlay {
176
176
  rootDocument,
177
177
  rootWindow
178
178
  } = this.domBindings;
179
- const scrollbarWidth = getScrollbarWidth(rootDocument);
180
179
  const overlayRoot = this.clone.wtTable.holder.parentNode;
181
180
  const overlayRootStyle = overlayRoot.style;
182
181
  const preventOverflow = this.wtSettings.getSetting('preventOverflow');
183
182
  if (this.trimmingContainer !== rootWindow || preventOverflow === 'horizontal') {
184
183
  let width = wtViewport.getWorkspaceWidth();
185
- if (this.wot.wtOverlays.hasScrollbarRight) {
186
- width -= scrollbarWidth;
184
+ if (wtViewport.hasVerticalScroll()) {
185
+ width -= getScrollbarWidth(rootDocument);
187
186
  }
188
187
  width = Math.min(width, wtTable.wtRootElement.scrollWidth);
189
188
  overlayRootStyle.width = `${width}px`;
@@ -192,7 +191,7 @@ export class BottomOverlay extends Overlay {
192
191
  }
193
192
  this.clone.wtTable.holder.style.width = overlayRootStyle.width;
194
193
  let tableHeight = outerHeight(this.clone.wtTable.TABLE);
195
- if (!this.wot.wtTable.hasDefinedSize()) {
194
+ if (!wtTable.hasDefinedSize()) {
196
195
  tableHeight = 0;
197
196
  }
198
197
  overlayRootStyle.height = `${tableHeight}px`;
@@ -141,20 +141,20 @@ class InlineStartOverlay extends _base.Overlay {
141
141
  */
142
142
  adjustRootElementSize() {
143
143
  const {
144
- wtTable
144
+ wtTable,
145
+ wtViewport
145
146
  } = this.wot;
146
147
  const {
147
148
  rootDocument,
148
149
  rootWindow
149
150
  } = this.domBindings;
150
- const scrollbarHeight = (0, _element.getScrollbarWidth)(rootDocument);
151
151
  const overlayRoot = this.clone.wtTable.holder.parentNode;
152
152
  const overlayRootStyle = overlayRoot.style;
153
153
  const preventOverflow = this.wtSettings.getSetting('preventOverflow');
154
154
  if (this.trimmingContainer !== rootWindow || preventOverflow === 'vertical') {
155
- let height = this.wot.wtViewport.getWorkspaceHeight();
156
- if (this.wot.wtOverlays.hasScrollbarBottom) {
157
- height -= scrollbarHeight;
155
+ let height = wtViewport.getWorkspaceHeight();
156
+ if (wtViewport.hasHorizontalScroll()) {
157
+ height -= (0, _element.getScrollbarWidth)(rootDocument);
158
158
  }
159
159
  height = Math.min(height, wtTable.wtRootElement.scrollHeight);
160
160
  overlayRootStyle.height = `${height}px`;
@@ -137,20 +137,20 @@ export class InlineStartOverlay extends Overlay {
137
137
  */
138
138
  adjustRootElementSize() {
139
139
  const {
140
- wtTable
140
+ wtTable,
141
+ wtViewport
141
142
  } = this.wot;
142
143
  const {
143
144
  rootDocument,
144
145
  rootWindow
145
146
  } = this.domBindings;
146
- const scrollbarHeight = getScrollbarWidth(rootDocument);
147
147
  const overlayRoot = this.clone.wtTable.holder.parentNode;
148
148
  const overlayRootStyle = overlayRoot.style;
149
149
  const preventOverflow = this.wtSettings.getSetting('preventOverflow');
150
150
  if (this.trimmingContainer !== rootWindow || preventOverflow === 'vertical') {
151
- let height = this.wot.wtViewport.getWorkspaceHeight();
152
- if (this.wot.wtOverlays.hasScrollbarBottom) {
153
- height -= scrollbarHeight;
151
+ let height = wtViewport.getWorkspaceHeight();
152
+ if (wtViewport.hasHorizontalScroll()) {
153
+ height -= getScrollbarWidth(rootDocument);
154
154
  }
155
155
  height = Math.min(height, wtTable.wtRootElement.scrollHeight);
156
156
  overlayRootStyle.height = `${height}px`;
@@ -165,20 +165,20 @@ class TopOverlay extends _base.Overlay {
165
165
  */
166
166
  adjustRootElementSize() {
167
167
  const {
168
- wtTable
168
+ wtTable,
169
+ wtViewport
169
170
  } = this.wot;
170
171
  const {
171
172
  rootDocument,
172
173
  rootWindow
173
174
  } = this.domBindings;
174
- const scrollbarWidth = (0, _element.getScrollbarWidth)(rootDocument);
175
175
  const overlayRoot = this.clone.wtTable.holder.parentNode;
176
176
  const overlayRootStyle = overlayRoot.style;
177
177
  const preventOverflow = this.wtSettings.getSetting('preventOverflow');
178
178
  if (this.trimmingContainer !== rootWindow || preventOverflow === 'horizontal') {
179
- let width = this.wot.wtViewport.getWorkspaceWidth();
180
- if (this.wot.wtOverlays.hasScrollbarRight) {
181
- width -= scrollbarWidth;
179
+ let width = wtViewport.getWorkspaceWidth();
180
+ if (wtViewport.hasVerticalScroll()) {
181
+ width -= (0, _element.getScrollbarWidth)(rootDocument);
182
182
  }
183
183
  width = Math.min(width, wtTable.wtRootElement.scrollWidth);
184
184
  overlayRootStyle.width = `${width}px`;
@@ -187,7 +187,7 @@ class TopOverlay extends _base.Overlay {
187
187
  }
188
188
  this.clone.wtTable.holder.style.width = overlayRootStyle.width;
189
189
  let tableHeight = (0, _element.outerHeight)(this.clone.wtTable.TABLE);
190
- if (!this.wot.wtTable.hasDefinedSize()) {
190
+ if (!wtTable.hasDefinedSize()) {
191
191
  tableHeight = 0;
192
192
  }
193
193
  overlayRootStyle.height = `${tableHeight}px`;
@@ -161,20 +161,20 @@ export class TopOverlay extends Overlay {
161
161
  */
162
162
  adjustRootElementSize() {
163
163
  const {
164
- wtTable
164
+ wtTable,
165
+ wtViewport
165
166
  } = this.wot;
166
167
  const {
167
168
  rootDocument,
168
169
  rootWindow
169
170
  } = this.domBindings;
170
- const scrollbarWidth = getScrollbarWidth(rootDocument);
171
171
  const overlayRoot = this.clone.wtTable.holder.parentNode;
172
172
  const overlayRootStyle = overlayRoot.style;
173
173
  const preventOverflow = this.wtSettings.getSetting('preventOverflow');
174
174
  if (this.trimmingContainer !== rootWindow || preventOverflow === 'horizontal') {
175
- let width = this.wot.wtViewport.getWorkspaceWidth();
176
- if (this.wot.wtOverlays.hasScrollbarRight) {
177
- width -= scrollbarWidth;
175
+ let width = wtViewport.getWorkspaceWidth();
176
+ if (wtViewport.hasVerticalScroll()) {
177
+ width -= getScrollbarWidth(rootDocument);
178
178
  }
179
179
  width = Math.min(width, wtTable.wtRootElement.scrollWidth);
180
180
  overlayRootStyle.width = `${width}px`;
@@ -183,7 +183,7 @@ export class TopOverlay extends Overlay {
183
183
  }
184
184
  this.clone.wtTable.holder.style.width = overlayRootStyle.width;
185
185
  let tableHeight = outerHeight(this.clone.wtTable.TABLE);
186
- if (!this.wot.wtTable.hasDefinedSize()) {
186
+ if (!wtTable.hasDefinedSize()) {
187
187
  tableHeight = 0;
188
188
  }
189
189
  overlayRootStyle.height = `${tableHeight}px`;
@@ -166,8 +166,6 @@ class Overlays {
166
166
  const isOverflowHidden = rootWindow.getComputedStyle(wtTable.wtRootElement.parentNode).getPropertyValue('overflow') === 'hidden';
167
167
  this.scrollableElement = isOverflowHidden ? wtTable.holder : (0, _element.getScrollableElement)(wtTable.TABLE);
168
168
  this.initOverlays();
169
- this.hasScrollbarBottom = false;
170
- this.hasScrollbarRight = false;
171
169
  this.destroyed = false;
172
170
  this.keyPressed = false;
173
171
  this.spreaderLastSize = {
@@ -645,24 +643,6 @@ class Overlays {
645
643
  // we need to adjust the hider dimensions by the header border size. (https://github.com/handsontable/dev-handsontable/issues/1772)
646
644
  hiderStyle.width = `${proposedHiderWidth + rowHeaderBorderCompensation}px`;
647
645
  hiderStyle.height = `${proposedHiderHeight + columnHeaderBorderCompensation}px`;
648
- if (this.scrollbarSize > 0) {
649
- // todo refactoring, looking as a part of logic which should be moved outside the class
650
- const {
651
- scrollHeight: rootElemScrollHeight,
652
- scrollWidth: rootElemScrollWidth
653
- } = wtTable.wtRootElement;
654
- const {
655
- scrollHeight: holderScrollHeight,
656
- scrollWidth: holderScrollWidth
657
- } = wtTable.holder;
658
- this.hasScrollbarRight = rootElemScrollHeight < holderScrollHeight;
659
- this.hasScrollbarBottom = rootElemScrollWidth < holderScrollWidth;
660
- if (this.hasScrollbarRight && wtTable.hider.scrollWidth + this.scrollbarSize > rootElemScrollWidth) {
661
- this.hasScrollbarBottom = true;
662
- } else if (this.hasScrollbarBottom && wtTable.hider.scrollHeight + this.scrollbarSize > rootElemScrollHeight) {
663
- this.hasScrollbarRight = true;
664
- }
665
- }
666
646
  this.topOverlay.adjustElementsSize();
667
647
  this.inlineStartOverlay.adjustElementsSize();
668
648
  this.bottomOverlay.adjustElementsSize();
@@ -163,8 +163,6 @@ class Overlays {
163
163
  const isOverflowHidden = rootWindow.getComputedStyle(wtTable.wtRootElement.parentNode).getPropertyValue('overflow') === 'hidden';
164
164
  this.scrollableElement = isOverflowHidden ? wtTable.holder : getScrollableElement(wtTable.TABLE);
165
165
  this.initOverlays();
166
- this.hasScrollbarBottom = false;
167
- this.hasScrollbarRight = false;
168
166
  this.destroyed = false;
169
167
  this.keyPressed = false;
170
168
  this.spreaderLastSize = {
@@ -642,24 +640,6 @@ class Overlays {
642
640
  // we need to adjust the hider dimensions by the header border size. (https://github.com/handsontable/dev-handsontable/issues/1772)
643
641
  hiderStyle.width = `${proposedHiderWidth + rowHeaderBorderCompensation}px`;
644
642
  hiderStyle.height = `${proposedHiderHeight + columnHeaderBorderCompensation}px`;
645
- if (this.scrollbarSize > 0) {
646
- // todo refactoring, looking as a part of logic which should be moved outside the class
647
- const {
648
- scrollHeight: rootElemScrollHeight,
649
- scrollWidth: rootElemScrollWidth
650
- } = wtTable.wtRootElement;
651
- const {
652
- scrollHeight: holderScrollHeight,
653
- scrollWidth: holderScrollWidth
654
- } = wtTable.holder;
655
- this.hasScrollbarRight = rootElemScrollHeight < holderScrollHeight;
656
- this.hasScrollbarBottom = rootElemScrollWidth < holderScrollWidth;
657
- if (this.hasScrollbarRight && wtTable.hider.scrollWidth + this.scrollbarSize > rootElemScrollWidth) {
658
- this.hasScrollbarBottom = true;
659
- } else if (this.hasScrollbarBottom && wtTable.hider.scrollHeight + this.scrollbarSize > rootElemScrollHeight) {
660
- this.hasScrollbarRight = true;
661
- }
662
- }
663
643
  this.topOverlay.adjustElementsSize();
664
644
  this.inlineStartOverlay.adjustElementsSize();
665
645
  this.bottomOverlay.adjustElementsSize();
package/base.js CHANGED
@@ -45,8 +45,8 @@ Handsontable.hooks = _hooks.Hooks.getSingleton();
45
45
  Handsontable.CellCoords = _src.CellCoords;
46
46
  Handsontable.CellRange = _src.CellRange;
47
47
  Handsontable.packageName = 'handsontable';
48
- Handsontable.buildDate = "03/12/2024 12:19:25";
49
- Handsontable.version = "0.0.0-next-b3759c7-20241203";
48
+ Handsontable.buildDate = "03/12/2024 13:40:37";
49
+ Handsontable.version = "0.0.0-next-e3ad397-20241203";
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 = "03/12/2024 12:19:30";
39
- Handsontable.version = "0.0.0-next-b3759c7-20241203";
38
+ Handsontable.buildDate = "03/12/2024 13:40:43";
39
+ Handsontable.version = "0.0.0-next-e3ad397-20241203";
40
40
  Handsontable.languages = {
41
41
  dictionaryKeys,
42
42
  getLanguageDictionary,
package/core.js CHANGED
@@ -1422,7 +1422,7 @@ function Core(rootElement, userSettings) {
1422
1422
  if (!changeSource && typeof row === 'object') {
1423
1423
  changeSource = column;
1424
1424
  }
1425
- const processedChanges = processChanges(changes, source);
1425
+ const processedChanges = processChanges(changes, changeSource);
1426
1426
  instance.runHooks('afterSetDataAtCell', processedChanges, changeSource);
1427
1427
  validateChanges(processedChanges, changeSource, () => {
1428
1428
  applyChanges(processedChanges, changeSource);
package/core.mjs CHANGED
@@ -1417,7 +1417,7 @@ export default function Core(rootElement, userSettings) {
1417
1417
  if (!changeSource && typeof row === 'object') {
1418
1418
  changeSource = column;
1419
1419
  }
1420
- const processedChanges = processChanges(changes, source);
1420
+ const processedChanges = processChanges(changes, changeSource);
1421
1421
  instance.runHooks('afterSetDataAtCell', processedChanges, changeSource);
1422
1422
  validateChanges(processedChanges, changeSource, () => {
1423
1423
  applyChanges(processedChanges, changeSource);
@@ -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-b3759c7-20241203
29
- * Release date: 17/10/2024 (built at 03/12/2024 12:19:52)
28
+ * Version: 0.0.0-next-e3ad397-20241203
29
+ * Release date: 17/10/2024 (built at 03/12/2024 13:41:04)
30
30
  */
31
31
  /**
32
32
  * Fix for bootstrap styles
@@ -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-b3759c7-20241203
29
- * Release date: 17/10/2024 (built at 03/12/2024 12:19:52)
28
+ * Version: 0.0.0-next-e3ad397-20241203
29
+ * Release date: 17/10/2024 (built at 03/12/2024 13:41:04)
30
30
  */
31
31
  /**
32
32
  * Fix for bootstrap styles
@@ -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-b3759c7-20241203
29
- * Release date: 17/10/2024 (built at 03/12/2024 12:19:35)
28
+ * Version: 0.0.0-next-e3ad397-20241203
29
+ * Release date: 17/10/2024 (built at 03/12/2024 13:40:47)
30
30
  */
31
31
  (function webpackUniversalModuleDefinition(root, factory) {
32
32
  if(typeof exports === 'object' && typeof module === 'object')
@@ -42676,8 +42676,8 @@ Handsontable.hooks = _hooks.Hooks.getSingleton();
42676
42676
  Handsontable.CellCoords = _src.CellCoords;
42677
42677
  Handsontable.CellRange = _src.CellRange;
42678
42678
  Handsontable.packageName = 'handsontable';
42679
- Handsontable.buildDate = "03/12/2024 12:19:35";
42680
- Handsontable.version = "0.0.0-next-b3759c7-20241203";
42679
+ Handsontable.buildDate = "03/12/2024 13:40:47";
42680
+ Handsontable.version = "0.0.0-next-e3ad397-20241203";
42681
42681
  Handsontable.languages = {
42682
42682
  dictionaryKeys: _registry.dictionaryKeys,
42683
42683
  getLanguageDictionary: _registry.getLanguageDictionary,
@@ -44122,7 +44122,7 @@ function Core(rootElement, userSettings) {
44122
44122
  if (!changeSource && typeof row === 'object') {
44123
44123
  changeSource = column;
44124
44124
  }
44125
- const processedChanges = processChanges(changes, source);
44125
+ const processedChanges = processChanges(changes, changeSource);
44126
44126
  instance.runHooks('afterSetDataAtCell', processedChanges, changeSource);
44127
44127
  validateChanges(processedChanges, changeSource, () => {
44128
44128
  applyChanges(processedChanges, changeSource);
@@ -53965,7 +53965,7 @@ const domMessages = {
53965
53965
  function _injectProductInfo(key, element) {
53966
53966
  const hasValidType = !isEmpty(key);
53967
53967
  const isNonCommercial = typeof key === 'string' && key.toLowerCase() === 'non-commercial-and-evaluation';
53968
- const hotVersion = "0.0.0-next-b3759c7-20241203";
53968
+ const hotVersion = "0.0.0-next-e3ad397-20241203";
53969
53969
  let keyValidityDate;
53970
53970
  let consoleMessageState = 'invalid';
53971
53971
  let domMessageState = 'invalid';
@@ -73248,8 +73248,6 @@ class Overlays {
73248
73248
  const isOverflowHidden = rootWindow.getComputedStyle(wtTable.wtRootElement.parentNode).getPropertyValue('overflow') === 'hidden';
73249
73249
  this.scrollableElement = isOverflowHidden ? wtTable.holder : (0, _element.getScrollableElement)(wtTable.TABLE);
73250
73250
  this.initOverlays();
73251
- this.hasScrollbarBottom = false;
73252
- this.hasScrollbarRight = false;
73253
73251
  this.destroyed = false;
73254
73252
  this.keyPressed = false;
73255
73253
  this.spreaderLastSize = {
@@ -73727,24 +73725,6 @@ class Overlays {
73727
73725
  // we need to adjust the hider dimensions by the header border size. (https://github.com/handsontable/dev-handsontable/issues/1772)
73728
73726
  hiderStyle.width = `${proposedHiderWidth + rowHeaderBorderCompensation}px`;
73729
73727
  hiderStyle.height = `${proposedHiderHeight + columnHeaderBorderCompensation}px`;
73730
- if (this.scrollbarSize > 0) {
73731
- // todo refactoring, looking as a part of logic which should be moved outside the class
73732
- const {
73733
- scrollHeight: rootElemScrollHeight,
73734
- scrollWidth: rootElemScrollWidth
73735
- } = wtTable.wtRootElement;
73736
- const {
73737
- scrollHeight: holderScrollHeight,
73738
- scrollWidth: holderScrollWidth
73739
- } = wtTable.holder;
73740
- this.hasScrollbarRight = rootElemScrollHeight < holderScrollHeight;
73741
- this.hasScrollbarBottom = rootElemScrollWidth < holderScrollWidth;
73742
- if (this.hasScrollbarRight && wtTable.hider.scrollWidth + this.scrollbarSize > rootElemScrollWidth) {
73743
- this.hasScrollbarBottom = true;
73744
- } else if (this.hasScrollbarBottom && wtTable.hider.scrollHeight + this.scrollbarSize > rootElemScrollHeight) {
73745
- this.hasScrollbarRight = true;
73746
- }
73747
- }
73748
73728
  this.topOverlay.adjustElementsSize();
73749
73729
  this.inlineStartOverlay.adjustElementsSize();
73750
73730
  this.bottomOverlay.adjustElementsSize();
@@ -78519,14 +78499,13 @@ class BottomOverlay extends _base.Overlay {
78519
78499
  rootDocument,
78520
78500
  rootWindow
78521
78501
  } = this.domBindings;
78522
- const scrollbarWidth = (0, _element.getScrollbarWidth)(rootDocument);
78523
78502
  const overlayRoot = this.clone.wtTable.holder.parentNode;
78524
78503
  const overlayRootStyle = overlayRoot.style;
78525
78504
  const preventOverflow = this.wtSettings.getSetting('preventOverflow');
78526
78505
  if (this.trimmingContainer !== rootWindow || preventOverflow === 'horizontal') {
78527
78506
  let width = wtViewport.getWorkspaceWidth();
78528
- if (this.wot.wtOverlays.hasScrollbarRight) {
78529
- width -= scrollbarWidth;
78507
+ if (wtViewport.hasVerticalScroll()) {
78508
+ width -= (0, _element.getScrollbarWidth)(rootDocument);
78530
78509
  }
78531
78510
  width = Math.min(width, wtTable.wtRootElement.scrollWidth);
78532
78511
  overlayRootStyle.width = `${width}px`;
@@ -78535,7 +78514,7 @@ class BottomOverlay extends _base.Overlay {
78535
78514
  }
78536
78515
  this.clone.wtTable.holder.style.width = overlayRootStyle.width;
78537
78516
  let tableHeight = (0, _element.outerHeight)(this.clone.wtTable.TABLE);
78538
- if (!this.wot.wtTable.hasDefinedSize()) {
78517
+ if (!wtTable.hasDefinedSize()) {
78539
78518
  tableHeight = 0;
78540
78519
  }
78541
78520
  overlayRootStyle.height = `${tableHeight}px`;
@@ -79001,20 +78980,20 @@ class InlineStartOverlay extends _base.Overlay {
79001
78980
  */
79002
78981
  adjustRootElementSize() {
79003
78982
  const {
79004
- wtTable
78983
+ wtTable,
78984
+ wtViewport
79005
78985
  } = this.wot;
79006
78986
  const {
79007
78987
  rootDocument,
79008
78988
  rootWindow
79009
78989
  } = this.domBindings;
79010
- const scrollbarHeight = (0, _element.getScrollbarWidth)(rootDocument);
79011
78990
  const overlayRoot = this.clone.wtTable.holder.parentNode;
79012
78991
  const overlayRootStyle = overlayRoot.style;
79013
78992
  const preventOverflow = this.wtSettings.getSetting('preventOverflow');
79014
78993
  if (this.trimmingContainer !== rootWindow || preventOverflow === 'vertical') {
79015
- let height = this.wot.wtViewport.getWorkspaceHeight();
79016
- if (this.wot.wtOverlays.hasScrollbarBottom) {
79017
- height -= scrollbarHeight;
78994
+ let height = wtViewport.getWorkspaceHeight();
78995
+ if (wtViewport.hasHorizontalScroll()) {
78996
+ height -= (0, _element.getScrollbarWidth)(rootDocument);
79018
78997
  }
79019
78998
  height = Math.min(height, wtTable.wtRootElement.scrollHeight);
79020
78999
  overlayRootStyle.height = `${height}px`;
@@ -81384,20 +81363,20 @@ class TopOverlay extends _base.Overlay {
81384
81363
  */
81385
81364
  adjustRootElementSize() {
81386
81365
  const {
81387
- wtTable
81366
+ wtTable,
81367
+ wtViewport
81388
81368
  } = this.wot;
81389
81369
  const {
81390
81370
  rootDocument,
81391
81371
  rootWindow
81392
81372
  } = this.domBindings;
81393
- const scrollbarWidth = (0, _element.getScrollbarWidth)(rootDocument);
81394
81373
  const overlayRoot = this.clone.wtTable.holder.parentNode;
81395
81374
  const overlayRootStyle = overlayRoot.style;
81396
81375
  const preventOverflow = this.wtSettings.getSetting('preventOverflow');
81397
81376
  if (this.trimmingContainer !== rootWindow || preventOverflow === 'horizontal') {
81398
- let width = this.wot.wtViewport.getWorkspaceWidth();
81399
- if (this.wot.wtOverlays.hasScrollbarRight) {
81400
- width -= scrollbarWidth;
81377
+ let width = wtViewport.getWorkspaceWidth();
81378
+ if (wtViewport.hasVerticalScroll()) {
81379
+ width -= (0, _element.getScrollbarWidth)(rootDocument);
81401
81380
  }
81402
81381
  width = Math.min(width, wtTable.wtRootElement.scrollWidth);
81403
81382
  overlayRootStyle.width = `${width}px`;
@@ -81406,7 +81385,7 @@ class TopOverlay extends _base.Overlay {
81406
81385
  }
81407
81386
  this.clone.wtTable.holder.style.width = overlayRootStyle.width;
81408
81387
  let tableHeight = (0, _element.outerHeight)(this.clone.wtTable.TABLE);
81409
- if (!this.wot.wtTable.hasDefinedSize()) {
81388
+ if (!wtTable.hasDefinedSize()) {
81410
81389
  tableHeight = 0;
81411
81390
  }
81412
81391
  overlayRootStyle.height = `${tableHeight}px`;
@@ -26,8 +26,8 @@
26
26
  * INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING FROM
27
27
  * USE OR INABILITY TO USE THIS SOFTWARE.
28
28
  *
29
- * Version: 0.0.0-next-b3759c7-20241203
30
- * Release date: 17/10/2024 (built at 03/12/2024 12:20:26)
29
+ * Version: 0.0.0-next-e3ad397-20241203
30
+ * Release date: 17/10/2024 (built at 03/12/2024 13:41:38)
31
31
  */.handsontable .table td,.handsontable .table th{border-top:none}.handsontable tr{background:#fff}.handsontable td{background-color:inherit}.handsontable .table caption+thead tr:first-child td,.handsontable .table caption+thead tr:first-child th,.handsontable .table colgroup+thead tr:first-child td,.handsontable .table colgroup+thead tr:first-child th,.handsontable .table thead:first-child tr:first-child td,.handsontable .table thead:first-child tr:first-child th{border-top:1px solid #ccc}.handsontable .table-bordered{border:0;border-collapse:separate}.handsontable .table-bordered td,.handsontable .table-bordered th{border-left:none}.handsontable .table-bordered td:first-child,.handsontable .table-bordered th:first-child{border-left:1px solid #ccc}.handsontable .table>tbody>tr>td,.handsontable .table>tbody>tr>th,.handsontable .table>tfoot>tr>td,.handsontable .table>tfoot>tr>th,.handsontable .table>thead>tr>td,.handsontable .table>thead>tr>th{line-height:21px;padding:0}.col-lg-1.handsontable,.col-lg-10.handsontable,.col-lg-11.handsontable,.col-lg-12.handsontable,.col-lg-2.handsontable,.col-lg-3.handsontable,.col-lg-4.handsontable,.col-lg-5.handsontable,.col-lg-6.handsontable,.col-lg-7.handsontable,.col-lg-8.handsontable,.col-lg-9.handsontable,.col-md-1.handsontable,.col-md-10.handsontable,.col-md-11.handsontable,.col-md-12.handsontable,.col-md-2.handsontable,.col-md-3.handsontable,.col-md-4.handsontable,.col-md-5.handsontable,.col-md-6.handsontable,.col-md-7.handsontable,.col-md-8.handsontable,.col-md-9.handsontable .col-sm-1.handsontable,.col-sm-10.handsontable,.col-sm-11.handsontable,.col-sm-12.handsontable,.col-sm-2.handsontable,.col-sm-3.handsontable,.col-sm-4.handsontable,.col-sm-5.handsontable,.col-sm-6.handsontable,.col-sm-7.handsontable,.col-sm-8.handsontable,.col-sm-9.handsontable .col-xs-1.handsontable,.col-xs-10.handsontable,.col-xs-11.handsontable,.col-xs-12.handsontable,.col-xs-2.handsontable,.col-xs-3.handsontable,.col-xs-4.handsontable,.col-xs-5.handsontable,.col-xs-6.handsontable,.col-xs-7.handsontable,.col-xs-8.handsontable,.col-xs-9.handsontable{padding-left:0;padding-right:0}.handsontable .table-striped>tbody>tr:nth-of-type(2n){background-color:#fff}.handsontable .hide{display:none}.handsontable .relative{position:relative}.handsontable .wtHider{position:relative;width:0}.handsontable .wtSpreader{height:auto;position:relative;width:0}.handsontable div,.handsontable input,.handsontable table,.handsontable tbody,.handsontable td,.handsontable textarea,.handsontable th,.handsontable thead{box-sizing:content-box;-webkit-box-sizing:content-box;-moz-box-sizing:content-box}.handsontable input,.handsontable textarea{min-height:auto}.handsontable table.htCore{border-collapse:separate;border-spacing:0;border-width:0;cursor:default;margin:0;max-height:none;max-width:none;outline-width:0;table-layout:fixed;width:0}.handsontable col,.handsontable col.rowHeader{width:50px}.handsontable td,.handsontable th{background-color:#fff;border-bottom:1px solid #ccc;border-left-width:0;border-right:1px solid #ccc;border-top-width:0;empty-cells:show;height:22px;line-height:21px;outline:none;outline-width:0;overflow:hidden;padding:0 4px;vertical-align:top;white-space:pre-wrap}[dir=rtl].handsontable td,[dir=rtl].handsontable th{border-left:1px solid #ccc;border-right-width:0}.handsontable th:last-child{border-bottom:1px solid #ccc;border-left:none;border-right:1px solid #ccc}[dir=rtl].handsontable th:last-child{border-left:1px solid #ccc;border-right:none}.handsontable td:first-of-type,.handsontable th:first-child{border-left:1px solid #ccc}[dir=rtl].handsontable td:first-of-type,[dir=rtl].handsontable th:first-child{border-right:1px solid #ccc}.handsontable .ht_clone_top th:nth-child(2){border-left-width:0;border-right:1px solid #ccc}[dir=rtl].handsontable .ht_clone_top th:nth-child(2){border-left:1px solid #ccc;border-right-width:0}.handsontable.htRowHeaders thead tr th:nth-child(2){border-left:1px solid #ccc}[dir=rtl].handsontable.htRowHeaders thead tr th:nth-child(2){border-right:1px solid #ccc}.handsontable tr:first-child td,.handsontable tr:first-child th{border-top:1px solid #ccc}.ht_master:not(.innerBorderInlineStart):not(.emptyColumns) tbody tr th,.ht_master:not(.innerBorderInlineStart):not(.emptyColumns) thead tr th:first-child,.ht_master:not(.innerBorderInlineStart):not(.emptyColumns)~.handsontable:not(.htGhostTable) tbody tr th,.ht_master:not(.innerBorderInlineStart):not(.emptyColumns)~.handsontable:not(.ht_clone_top):not(.htGhostTable) thead tr th:first-child{border-left:1px solid #ccc;border-right-width:0}[dir=rtl].ht_master:not(.innerBorderInlineStart):not(.emptyColumns) tbody tr th,[dir=rtl].ht_master:not(.innerBorderInlineStart):not(.emptyColumns) thead tr th:first-child,[dir=rtl].ht_master:not(.innerBorderInlineStart):not(.emptyColumns)~.handsontable:not(.htGhostTable) tbody tr th,[dir=rtl].ht_master:not(.innerBorderInlineStart):not(.emptyColumns)~.handsontable:not(.ht_clone_top):not(.htGhostTable) thead tr th:first-child{border-left-width:0;border-right:1px solid #ccc}.ht_master:not(.innerBorderTop):not(.innerBorderBottom) thead tr.lastChild th,.ht_master:not(.innerBorderTop):not(.innerBorderBottom) thead tr:last-child th,.ht_master:not(.innerBorderTop):not(.innerBorderBottom)~.handsontable thead tr.lastChild th,.ht_master:not(.innerBorderTop):not(.innerBorderBottom)~.handsontable thead tr:last-child th{border-bottom-width:0}.handsontable th{background-color:#f0f0f0;color:#222;font-weight:400;text-align:center;white-space:nowrap}.handsontable thead th{padding:0}.handsontable th.active{background-color:#ccc}.handsontable thead th .relative{padding:2px 4px}.handsontable span.colHeader{display:inline-block;line-height:1.1}.handsontable .wtBorder{font-size:0;position:absolute}.handsontable .wtBorder.hidden{display:none!important}.handsontable .wtBorder.current{z-index:10}.handsontable .wtBorder.area{z-index:8}.handsontable .wtBorder.fill{z-index:6}.handsontable .wtBorder.corner{cursor:crosshair;font-size:0}.ht_clone_master{z-index:100}.ht_clone_inline_start{z-index:120}.ht_clone_bottom{z-index:130}.ht_clone_bottom_inline_start_corner{z-index:150}.ht_clone_top{z-index:160}.ht_clone_top_inline_start_corner{z-index:180}.handsontable col.hidden{width:0!important}.handsontable tr.hidden,.handsontable tr.hidden td,.handsontable tr.hidden th{display:none}.ht_clone_bottom,.ht_clone_inline_start,.ht_clone_top,.ht_master{overflow:hidden}.ht_master .wtHolder{overflow:auto}.handsontable .ht_clone_inline_start table.htCore>thead,.handsontable .ht_master table.htCore>tbody>tr>th,.handsontable .ht_master table.htCore>thead{visibility:hidden}.ht_clone_bottom .wtHolder,.ht_clone_inline_start .wtHolder,.ht_clone_top .wtHolder{overflow:hidden}.handsontable{color:#373737;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Helvetica Neue,Arial,sans-serif;font-size:13px;font-weight:400;position:relative;touch-action:manipulation}.handsontable a{color:#104acc}.handsontable.htAutoSize{left:-99000px;position:absolute;top:-99000px;visibility:hidden}.handsontable td.htInvalid{background-color:#ffbeba!important}.handsontable td.htNoWrap{white-space:nowrap}.handsontable td.invisibleSelection,.handsontable th.invisibleSelection{outline:none}.handsontable td.invisibleSelection::selection,.handsontable th.invisibleSelection::selection{background:hsla(0,0%,100%,0)}.hot-display-license-info{color:#373737;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Helvetica Neue,Arial,sans-serif;font-size:10px;font-weight:400;padding:5px 0 3px;text-align:left}.hot-display-license-info a{color:#104acc;font-size:10px}.handsontable .htFocusCatcher{border:0;height:0;margin:0;opacity:0;padding:0;position:absolute;width:0;z-index:-1}.handsontable .manualColumnResizer{cursor:col-resize;height:25px;position:absolute;top:0;width:5px;z-index:210}.handsontable .manualRowResizer{cursor:row-resize;height:5px;left:0;position:absolute;width:50px;z-index:210}.handsontable .manualColumnResizer.active,.handsontable .manualColumnResizer:hover,.handsontable .manualRowResizer.active,.handsontable .manualRowResizer:hover{background-color:#34a9db}.handsontable .manualColumnResizerGuide{background-color:#34a9db;border-left:none;border-right:1px dashed #777;display:none;margin-left:5px;margin-right:unset;position:absolute;right:unset;top:0;width:0}[dir=rtl].handsontable .manualColumnResizerGuide{border-left:1px dashed #777;border-right:none;left:unset;margin-left:unset;margin-right:5px}.handsontable .manualRowResizerGuide{background-color:#34a9db;border-bottom:1px dashed #777;bottom:0;display:none;height:0;left:0;margin-top:5px;position:absolute}.handsontable .manualColumnResizerGuide.active,.handsontable .manualRowResizerGuide.active{display:block;z-index:209}.handsontable td.area,.handsontable td.area-1,.handsontable td.area-2,.handsontable td.area-3,.handsontable td.area-4,.handsontable td.area-5,.handsontable td.area-6,.handsontable td.area-7{position:relative}.handsontable td.area-1:before,.handsontable td.area-2:before,.handsontable td.area-3:before,.handsontable td.area-4:before,.handsontable td.area-5:before,.handsontable td.area-6:before,.handsontable td.area-7:before,.handsontable td.area:before{background:#005eff;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.handsontable td.area:before{opacity:.1}.handsontable td.area-1:before{opacity:.2}.handsontable td.area-2:before{opacity:.27}.handsontable td.area-3:before{opacity:.35}.handsontable td.area-4:before{opacity:.41}.handsontable td.area-5:before{opacity:.47}.handsontable td.area-6:before{opacity:.54}.handsontable td.area-7:before{opacity:.58}.handsontable tbody th.current,.handsontable thead th.current{box-shadow:inset 0 0 0 2px #4b89ff}.handsontable tbody th.ht__highlight,.handsontable thead th.ht__highlight{background-color:#dcdcdc}.handsontable tbody th.ht__active_highlight,.handsontable thead th.ht__active_highlight{background-color:#8eb0e7;color:#000}.handsontableInput{background-color:#fff;border:none;border-radius:0;box-shadow:inset 0 0 0 2px #5292f7;box-sizing:border-box!important;color:#000;display:block;font-family:inherit;font-size:inherit;line-height:21px;margin:0;outline-width:0;padding:1px 5px 0;resize:none}.handsontableInput:focus{outline:none}.handsontableInputHolder{left:0;position:absolute;top:0}.htSelectEditor{position:absolute;select{-webkit-appearance:menulist-button!important;border:2px solid #4b89ff;box-sizing:border-box!important;height:100%;width:100%}}.htSelectEditor select:focus{outline:none}.htSelectEditor .htAutocompleteArrow{display:none}.handsontable .htDimmed{color:#777}.handsontable .htSubmenu{position:relative}.handsontable .htSubmenu :after{color:#777;content:"▶";font-size:9px;position:absolute;right:5px}[dir=rtl].handsontable .htSubmenu :after{content:""}[dir=rtl].handsontable .htSubmenu :before{color:#777;content:"◀";font-size:9px;left:5px;position:absolute}.handsontable .htLeft{text-align:left}.handsontable .htCenter{text-align:center}.handsontable .htRight{text-align:right}.handsontable .htJustify{text-align:justify}.handsontable .htTop{vertical-align:top}.handsontable .htMiddle{vertical-align:middle}.handsontable .htBottom{vertical-align:bottom}.handsontable .htPlaceholder{color:#999}.handsontable.listbox{margin:0}.handsontable.listbox .ht_master table{background:#fff;border:1px solid #ccc;border-collapse:separate}.handsontable.listbox td,.handsontable.listbox th,.handsontable.listbox tr:first-child td,.handsontable.listbox tr:first-child th,.handsontable.listbox tr:last-child th{border-color:transparent!important}.handsontable.listbox td,.handsontable.listbox th{text-overflow:ellipsis;white-space:nowrap}.handsontable.listbox td.htDimmed{color:inherit;cursor:default;font-style:inherit}.handsontable.listbox .wtBorder{visibility:hidden}.handsontable.listbox tr td.current,.handsontable.listbox tr:hover td{background:#eee}.ht_editor_hidden{z-index:-1}.ht_editor_visible{z-index:200}.handsontable td.htSearchResult{background:#fcedd9;color:#583707}.handsontable.mobile,.handsontable.mobile .wtHolder{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-overflow-scrolling:touch}.handsontable.mobile .handsontableInput:focus{-webkit-appearance:none;-webkit-box-shadow:inset 0 0 0 2px #5292f7;-moz-box-shadow:inset 0 0 0 2px #5292f7;box-shadow:inset 0 0 0 2px #5292f7}.handsontable .bottomSelectionHandle,.handsontable .bottomSelectionHandle-HitArea,.handsontable .topSelectionHandle,.handsontable .topSelectionHandle-HitArea{left:-10000px;right:unset;top:-10000px;z-index:9999}[dir=rtl].handsontable .bottomSelectionHandle,[dir=rtl].handsontable .bottomSelectionHandle-HitArea,[dir=rtl].handsontable .topSelectionHandle,[dir=rtl].handsontable .topSelectionHandle-HitArea{left:unset;right:-10000px}.handsontable.hide-tween{-webkit-animation:opacity-hide .3s;animation:opacity-hide .3s;animation-fill-mode:forwards;-webkit-animation-fill-mode:forwards}.handsontable.show-tween{-webkit-animation:opacity-show .3s;animation:opacity-show .3s;animation-fill-mode:forwards;-webkit-animation-fill-mode:forwards}.handsontable .htAutocompleteArrow{color:#bbb;cursor:default;float:right;font-size:10px;text-align:center;width:16px}[dir=rtl].handsontable .htAutocompleteArrow{float:left}.handsontable td.htInvalid .htAutocompleteArrow{color:#555}.handsontable td.htInvalid .htAutocompleteArrow:hover{color:#1a1a1a}.handsontable td .htAutocompleteArrow:hover{color:#777}.handsontable td.area .htAutocompleteArrow{color:#d3d3d3}.handsontable .htCheckboxRendererInput.noValue{opacity:.5}.handsontable .htCheckboxRendererLabel{cursor:pointer;display:inline-block;font-size:inherit;vertical-align:middle}.handsontable .htCheckboxRendererLabel.fullWidth{width:100%}.handsontable .collapsibleIndicator{background:#eee;border:1px solid #a6a6a6;border-radius:10px;-webkit-box-shadow:0 0 0 6px #eee;-moz-box-shadow:0 0 0 6px #eee;box-shadow:0 0 0 3px #eee;color:#222;cursor:pointer;font-size:10px;height:10px;left:unset;line-height:8px;position:absolute;right:5px;text-align:center;top:50%;transform:translateY(-50%);width:10px}[dir=rtl].handsontable .collapsibleIndicator{left:5px;right:unset}.handsontable[dir=ltr] thead th:has(.collapsibleIndicator) div.htRight span.colHeader{margin-right:20px}.handsontable[dir=rtl] thead th:has(.collapsibleIndicator) div.htLeft span.colHeader{margin-left:20px}.handsontable .columnSorting{position:relative}.handsontable[dir=ltr] div.htRight span[class*=ascending],.handsontable[dir=ltr] div.htRight span[class*=descending]{margin-left:-10px;margin-right:10px}.handsontable[dir=rtl] div.htLeft span[class*=ascending],.handsontable[dir=rtl] div.htLeft span[class*=descending]{margin-left:10px;margin-right:-10px}.handsontable[dir=ltr] div.htRight span[class*=ascending]:only-child,.handsontable[dir=ltr] div.htRight span[class*=descending]:only-child{margin-left:-15px;margin-right:15px}.handsontable[dir=rtl] div.htLeft span[class*=ascending]:only-child,.handsontable[dir=rtl] div.htLeft span[class*=descending]:only-child{margin-left:15px;margin-right:-15px}.handsontable .columnSorting.sortAction:hover{cursor:pointer;text-decoration:underline}.handsontable span.colHeader.columnSorting:before{background-position-x:right;background-repeat:no-repeat;background-size:contain;content:"";height:10px;left:unset;margin-top:-6px;padding-left:8px;padding-right:0;position:absolute;right:-9px;top:50%;width:5px}[dir=rtl].handsontable span.colHeader.columnSorting:before{background-position-x:left;left:-9px;padding-left:0;padding-right:8px;right:unset}.handsontable span.colHeader.columnSorting.ascending:before{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAoCAMAAADJ7yrpAAAAKlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKE86IAAAADXRSTlMABBEmRGprlJW72e77tTkTKwAAAFNJREFUeAHtzjkSgCAUBNHPgsoy97+ulGXRqJE5L+xkxoYt2UdsLb5bqFINz+aLuuLn5rIu2RkO3fZpWENimNgiw6iBYRTPMLJjGFxQZ1hxxb/xBI1qC8k39CdKAAAAAElFTkSuQmCC)}.handsontable span.colHeader.columnSorting.descending:before{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAoCAMAAADJ7yrpAAAAKlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKE86IAAAADXRSTlMABBEmRGprlJW72e77tTkTKwAAAFJJREFUeAHtzjkSgCAQRNFmQYUZ7n9dKUvru0TmvPAn3br0QfgdZ5xx6x+rQn23GqTYnq1FDcnuzZIO2WmedVqIRVxgGKEyjNgYRjKGkZ1hFIZ3I70LyM0VtU8AAAAASUVORK5CYII=)}.htGhostTable .htCore span.colHeader.columnSorting:not(.indicatorDisabled):before{content:"*";display:inline-block;padding-right:20px;position:relative}.handsontable .htCommentCell{position:relative}.handsontable .htCommentCell:after{border-left:6px solid transparent;border-right:none;border-top:6px solid #000;content:"";left:unset;position:absolute;right:0;top:0}[dir=rtl].handsontable .htCommentCell:after{border-left:none;border-right:6px solid transparent;left:0;right:unset}.htCommentsContainer .htComments{display:none;position:absolute;z-index:1059}.htCommentsContainer .htCommentTextArea{-webkit-appearance:none;background-color:#fff;border:none;border-left:3px solid #ccc;box-shadow:0 1px 3px rgba(0,0,0,.118),0 1px 2px rgba(0,0,0,.239);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;font-size:12px;height:90px;outline:0!important;padding:5px;width:215px}[dir=rtl].htCommentsContainer .htCommentTextArea{border-left:none;border-right:3px solid #ccc}.htCommentsContainer .htCommentTextArea:focus{border-left:3px solid #5292f7;border-right:none;box-shadow:0 1px 3px rgba(0,0,0,.118),0 1px 2px rgba(0,0,0,.239),inset 0 0 0 1px #5292f7}[dir=rtl].htCommentsContainer .htCommentTextArea:focus{border-left:none;border-right:3px solid #5292f7}
32
32
  /*!
33
33
  * Handsontable ContextMenu