handsontable 0.0.0-next-c8116f8-20240920 → 0.0.0-next-ffdf116-20240926

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

Potentially problematic release.


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

Files changed (33) hide show
  1. package/3rdparty/walkontable/src/selection/border/border.js +1 -1
  2. package/3rdparty/walkontable/src/selection/border/border.mjs +2 -2
  3. package/3rdparty/walkontable/src/table/master.js +1 -1
  4. package/3rdparty/walkontable/src/table/master.mjs +2 -2
  5. package/base.js +2 -2
  6. package/base.mjs +2 -2
  7. package/dist/handsontable.css +2 -2
  8. package/dist/handsontable.full.css +2 -2
  9. package/dist/handsontable.full.js +110 -44
  10. package/dist/handsontable.full.min.css +2 -2
  11. package/dist/handsontable.full.min.js +5 -5
  12. package/dist/handsontable.js +110 -44
  13. package/dist/handsontable.min.css +2 -2
  14. package/dist/handsontable.min.js +5 -5
  15. package/editors/autocompleteEditor/autocompleteEditor.js +31 -14
  16. package/editors/autocompleteEditor/autocompleteEditor.mjs +31 -14
  17. package/editors/baseEditor/baseEditor.js +1 -1
  18. package/editors/baseEditor/baseEditor.mjs +2 -2
  19. package/editors/handsontableEditor/handsontableEditor.js +24 -0
  20. package/editors/handsontableEditor/handsontableEditor.mjs +24 -0
  21. package/editors/textEditor/textEditor.js +2 -2
  22. package/editors/textEditor/textEditor.mjs +3 -3
  23. package/helpers/dom/element.js +4 -17
  24. package/helpers/dom/element.mjs +4 -16
  25. package/helpers/mixed.js +1 -1
  26. package/helpers/mixed.mjs +1 -1
  27. package/package.json +1 -1
  28. package/plugins/contextMenu/menu/menu.js +1 -1
  29. package/plugins/contextMenu/menu/menu.mjs +2 -2
  30. package/plugins/contextMenu/menu/positioner.js +4 -2
  31. package/plugins/contextMenu/menu/positioner.mjs +4 -2
  32. package/tableView.js +36 -0
  33. package/tableView.mjs +36 -0
@@ -412,7 +412,7 @@ class Border {
412
412
  fromTD = fromTH;
413
413
  }
414
414
  }
415
- const style = (0, _element.getComputedStyle)(fromTD, rootWindow);
415
+ const style = rootWindow.getComputedStyle(fromTD);
416
416
  if (parseInt(style.borderTopWidth, 10) > 0) {
417
417
  top += 1;
418
418
  height = height > 0 ? height - 1 : 0;
@@ -1,4 +1,4 @@
1
- import { addClass, hasClass, removeClass, getComputedStyle, getTrimmingContainer, innerWidth, innerHeight, offset, outerHeight, outerWidth } from "../../../../../helpers/dom/element.mjs";
1
+ import { addClass, hasClass, removeClass, getTrimmingContainer, innerWidth, innerHeight, offset, outerHeight, outerWidth } from "../../../../../helpers/dom/element.mjs";
2
2
  import { stopImmediatePropagation } from "../../../../../helpers/dom/event.mjs";
3
3
  import { objectEach } from "../../../../../helpers/object.mjs";
4
4
  import { isMobileBrowser } from "../../../../../helpers/browser.mjs";
@@ -409,7 +409,7 @@ class Border {
409
409
  fromTD = fromTH;
410
410
  }
411
411
  }
412
- const style = getComputedStyle(fromTD, rootWindow);
412
+ const style = rootWindow.getComputedStyle(fromTD);
413
413
  if (parseInt(style.borderTopWidth, 10) > 0) {
414
414
  top += 1;
415
415
  height = height > 0 ? height - 1 : 0;
@@ -61,7 +61,7 @@ class MasterTable extends _table.default {
61
61
  } else {
62
62
  trimmingElementParent.appendChild(cloneNode);
63
63
  }
64
- const cloneHeight = parseInt((0, _element.getComputedStyle)(cloneNode, rootWindow).height, 10);
64
+ const cloneHeight = parseInt(rootWindow.getComputedStyle(cloneNode).height, 10);
65
65
  trimmingElementParent.removeChild(cloneNode);
66
66
  if (cloneHeight === 0) {
67
67
  height = 0;
@@ -1,4 +1,4 @@
1
- import { getStyle, getComputedStyle, getTrimmingContainer, isVisible } from "./../../../../helpers/dom/element.mjs";
1
+ import { getStyle, getTrimmingContainer, isVisible } from "./../../../../helpers/dom/element.mjs";
2
2
  import Table from "../table.mjs";
3
3
  import calculatedRows from "./mixin/calculatedRows.mjs";
4
4
  import calculatedColumns from "./mixin/calculatedColumns.mjs";
@@ -57,7 +57,7 @@ class MasterTable extends Table {
57
57
  } else {
58
58
  trimmingElementParent.appendChild(cloneNode);
59
59
  }
60
- const cloneHeight = parseInt(getComputedStyle(cloneNode, rootWindow).height, 10);
60
+ const cloneHeight = parseInt(rootWindow.getComputedStyle(cloneNode).height, 10);
61
61
  trimmingElementParent.removeChild(cloneNode);
62
62
  if (cloneHeight === 0) {
63
63
  height = 0;
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 = "20/09/2024 09:23:42";
49
- Handsontable.version = "0.0.0-next-c8116f8-20240920";
48
+ Handsontable.buildDate = "26/09/2024 10:52:47";
49
+ Handsontable.version = "0.0.0-next-ffdf116-20240926";
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 = "20/09/2024 09:23:47";
39
- Handsontable.version = "0.0.0-next-c8116f8-20240920";
38
+ Handsontable.buildDate = "26/09/2024 10:52:53";
39
+ Handsontable.version = "0.0.0-next-ffdf116-20240926";
40
40
  Handsontable.languages = {
41
41
  dictionaryKeys,
42
42
  getLanguageDictionary,
@@ -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-c8116f8-20240920
29
- * Release date: 30/07/2024 (built at 20/09/2024 09:23:52)
28
+ * Version: 0.0.0-next-ffdf116-20240926
29
+ * Release date: 30/07/2024 (built at 26/09/2024 10:52:57)
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-c8116f8-20240920
29
- * Release date: 30/07/2024 (built at 20/09/2024 09:23:52)
28
+ * Version: 0.0.0-next-ffdf116-20240926
29
+ * Release date: 30/07/2024 (built at 26/09/2024 10:52:57)
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-c8116f8-20240920
29
- * Release date: 30/07/2024 (built at 20/09/2024 09:23:52)
28
+ * Version: 0.0.0-next-ffdf116-20240926
29
+ * Release date: 30/07/2024 (built at 26/09/2024 10:52:57)
30
30
  */
31
31
  (function webpackUniversalModuleDefinition(root, factory) {
32
32
  if(typeof exports === 'object' && typeof module === 'object')
@@ -42675,8 +42675,8 @@ Handsontable.hooks = _pluginHooks.default.getSingleton();
42675
42675
  Handsontable.CellCoords = _src.CellCoords;
42676
42676
  Handsontable.CellRange = _src.CellRange;
42677
42677
  Handsontable.packageName = 'handsontable';
42678
- Handsontable.buildDate = "20/09/2024 09:23:52";
42679
- Handsontable.version = "0.0.0-next-c8116f8-20240920";
42678
+ Handsontable.buildDate = "26/09/2024 10:52:57";
42679
+ Handsontable.version = "0.0.0-next-ffdf116-20240926";
42680
42680
  Handsontable.languages = {
42681
42681
  dictionaryKeys: _registry.dictionaryKeys,
42682
42682
  getLanguageDictionary: _registry.getLanguageDictionary,
@@ -50439,7 +50439,6 @@ exports.empty = empty;
50439
50439
  exports.fastInnerHTML = fastInnerHTML;
50440
50440
  exports.fastInnerText = fastInnerText;
50441
50441
  exports.getCaretPosition = getCaretPosition;
50442
- exports.getComputedStyle = getComputedStyle;
50443
50442
  exports.getCssTransform = getCssTransform;
50444
50443
  exports.getFrameElement = getFrameElement;
50445
50444
  exports.getMaximumScrollLeft = getMaximumScrollLeft;
@@ -50917,6 +50916,7 @@ function fastInnerText(element, content) {
50917
50916
  */
50918
50917
  function isVisible(element) {
50919
50918
  const documentElement = element.ownerDocument.documentElement;
50919
+ const windowElement = element.ownerDocument.defaultView;
50920
50920
  let next = element;
50921
50921
  while (next !== documentElement) {
50922
50922
  // until <html> reached
@@ -50939,7 +50939,7 @@ function isVisible(element) {
50939
50939
  } else {
50940
50940
  return false; // this is a node detached from document in IE8
50941
50941
  }
50942
- } else if (getComputedStyle(next).display === 'none') {
50942
+ } else if (windowElement.getComputedStyle(next).display === 'none') {
50943
50943
  return false;
50944
50944
  }
50945
50945
  next = next.parentNode;
@@ -51129,7 +51129,7 @@ function getTrimmingContainer(base) {
51129
51129
  if (el.style.overflow !== 'visible' && el.style.overflow !== '') {
51130
51130
  return el;
51131
51131
  }
51132
- const computedStyle = getComputedStyle(el, rootWindow);
51132
+ const computedStyle = rootWindow.getComputedStyle(el);
51133
51133
  const allowedProperties = ['scroll', 'hidden', 'auto'];
51134
51134
  const property = computedStyle.getPropertyValue('overflow');
51135
51135
  const propertyY = computedStyle.getPropertyValue('overflow-y');
@@ -51167,7 +51167,7 @@ function getStyle(element, prop) {
51167
51167
  if (styleProp !== '' && styleProp !== undefined) {
51168
51168
  return styleProp;
51169
51169
  }
51170
- const computedStyle = getComputedStyle(element, rootWindow);
51170
+ const computedStyle = rootWindow.getComputedStyle(element);
51171
51171
  if (computedStyle[prop] !== '' && computedStyle[prop] !== undefined) {
51172
51172
  return computedStyle[prop];
51173
51173
  }
@@ -51195,19 +51195,6 @@ function matchesCSSRules(element, rule) {
51195
51195
  return result;
51196
51196
  }
51197
51197
 
51198
- /**
51199
- * Returns a computed style object for the provided element. (Needed if style is declared in external stylesheet).
51200
- *
51201
- * @param {HTMLElement} element An element to get style from.
51202
- * @param {Window} [rootWindow] The document window owner.
51203
- * @returns {IEElementStyle|CssStyle} Elements computed style object.
51204
- */
51205
- // eslint-disable-next-line no-restricted-globals
51206
- function getComputedStyle(element) {
51207
- let rootWindow = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : window;
51208
- return element.currentStyle || rootWindow.getComputedStyle(element);
51209
- }
51210
-
51211
51198
  /**
51212
51199
  * Returns the element's outer width.
51213
51200
  *
@@ -53398,7 +53385,7 @@ const domMessages = {
53398
53385
  function _injectProductInfo(key, element) {
53399
53386
  const hasValidType = !isEmpty(key);
53400
53387
  const isNonCommercial = typeof key === 'string' && key.toLowerCase() === 'non-commercial-and-evaluation';
53401
- const hotVersion = "0.0.0-next-c8116f8-20240920";
53388
+ const hotVersion = "0.0.0-next-ffdf116-20240926";
53402
53389
  let keyValidityDate;
53403
53390
  let consoleMessageState = 'invalid';
53404
53391
  let domMessageState = 'invalid';
@@ -69170,6 +69157,42 @@ class TableView {
69170
69157
  isVisible() {
69171
69158
  return this._wt.wtTable.isVisible();
69172
69159
  }
69160
+
69161
+ /**
69162
+ * Checks if the table has a horizontal scrollbar.
69163
+ *
69164
+ * @returns {boolean}
69165
+ */
69166
+ hasVerticalScroll() {
69167
+ return this._wt.wtViewport.hasVerticalScroll();
69168
+ }
69169
+
69170
+ /**
69171
+ * Checks if the table has a vertical scrollbar.
69172
+ *
69173
+ * @returns {boolean}
69174
+ */
69175
+ hasHorizontalScroll() {
69176
+ return this._wt.wtViewport.hasHorizontalScroll();
69177
+ }
69178
+
69179
+ /**
69180
+ * Gets the table's width.
69181
+ *
69182
+ * @returns {boolean}
69183
+ */
69184
+ getTableWidth() {
69185
+ return this._wt.wtTable.getWidth();
69186
+ }
69187
+
69188
+ /**
69189
+ * Gets the table's height.
69190
+ *
69191
+ * @returns {boolean}
69192
+ */
69193
+ getTableHeight() {
69194
+ return this._wt.wtTable.getHeight();
69195
+ }
69173
69196
  /**
69174
69197
  * Destroys internal WalkOnTable's instance. Detaches all of the bonded listeners.
69175
69198
  *
@@ -79948,7 +79971,7 @@ class Border {
79948
79971
  fromTD = fromTH;
79949
79972
  }
79950
79973
  }
79951
- const style = (0, _element.getComputedStyle)(fromTD, rootWindow);
79974
+ const style = rootWindow.getComputedStyle(fromTD);
79952
79975
  if (parseInt(style.borderTopWidth, 10) > 0) {
79953
79976
  top += 1;
79954
79977
  height = height > 0 ? height - 1 : 0;
@@ -81247,7 +81270,7 @@ class MasterTable extends _table.default {
81247
81270
  } else {
81248
81271
  trimmingElementParent.appendChild(cloneNode);
81249
81272
  }
81250
- const cloneHeight = parseInt((0, _element.getComputedStyle)(cloneNode, rootWindow).height, 10);
81273
+ const cloneHeight = parseInt(rootWindow.getComputedStyle(cloneNode).height, 10);
81251
81274
  trimmingElementParent.removeChild(cloneNode);
81252
81275
  if (cloneHeight === 0) {
81253
81276
  height = 0;
@@ -96622,7 +96645,7 @@ class BaseEditor {
96622
96645
  } else if (['top', 'master', 'bottom'].includes(overlayName)) {
96623
96646
  cellStartOffset += firstColumnOffset - horizontalScrollPosition;
96624
96647
  }
96625
- const cellComputedStyle = (0, _element.getComputedStyle)(this.TD, this.hot.rootWindow);
96648
+ const cellComputedStyle = rootWindow.getComputedStyle(this.TD);
96626
96649
  const borderPhysicalWidthProp = this.hot.isRtl() ? 'borderRightWidth' : 'borderLeftWidth';
96627
96650
  const inlineStartBorderCompensation = parseInt(cellComputedStyle[borderPhysicalWidthProp], 10) > 0 ? 0 : 1;
96628
96651
  const topBorderCompensation = parseInt(cellComputedStyle.borderTopWidth, 10) > 0 ? 0 : 1;
@@ -99472,11 +99495,11 @@ class TextEditor extends _baseEditor.BaseEditor {
99472
99495
  this.textareaParentStyle.top = `${top}px`;
99473
99496
  this.textareaParentStyle[this.hot.isRtl() ? 'right' : 'left'] = `${start}px`;
99474
99497
  this.showEditableElement();
99475
- const cellComputedStyle = (0, _element.getComputedStyle)(this.TD, this.hot.rootWindow);
99498
+ const cellComputedStyle = this.hot.rootWindow.getComputedStyle(this.TD);
99476
99499
  this.TEXTAREA.style.fontSize = cellComputedStyle.fontSize;
99477
99500
  this.TEXTAREA.style.fontFamily = cellComputedStyle.fontFamily;
99478
99501
  this.TEXTAREA.style.backgroundColor = this.TD.style.backgroundColor;
99479
- const textareaComputedStyle = (0, _element.getComputedStyle)(this.TEXTAREA);
99502
+ const textareaComputedStyle = this.hot.rootWindow.getComputedStyle(this.TEXTAREA);
99480
99503
  const horizontalPadding = parseInt(textareaComputedStyle.paddingLeft, 10) + parseInt(textareaComputedStyle.paddingRight, 10);
99481
99504
  const verticalPadding = parseInt(textareaComputedStyle.paddingTop, 10) + parseInt(textareaComputedStyle.paddingBottom, 10);
99482
99505
  const finalWidth = width - horizontalPadding;
@@ -100135,7 +100158,6 @@ var _element = __webpack_require__(334);
100135
100158
  var _mixed = __webpack_require__(337);
100136
100159
  var _string = __webpack_require__(335);
100137
100160
  var _unicode = __webpack_require__(491);
100138
- var _browser = __webpack_require__(481);
100139
100161
  var _textRenderer = __webpack_require__(729);
100140
100162
  var _a11y = __webpack_require__(479);
100141
100163
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
@@ -100306,15 +100328,11 @@ class AutocompleteEditor extends _handsontableEditor.HandsontableEditor {
100306
100328
  } = this;
100307
100329
  this.showEditableElement();
100308
100330
  this.focus();
100309
- let scrollbarWidth = (0, _element.getScrollbarWidth)();
100310
- if (scrollbarWidth === 0 && (0, _browser.isMacOS)()) {
100311
- scrollbarWidth += 15; // default scroll bar width if scroll bars are visible only when scrolling
100312
- }
100313
100331
  this.addHook('beforeKeyDown', event => this.onBeforeKeyDown(event));
100314
100332
  this.htEditor.updateSettings({
100315
100333
  colWidths: trimDropdown ? [(0, _element.outerWidth)(this.TEXTAREA) - 2] : undefined,
100316
- width: trimDropdown ? (0, _element.outerWidth)(this.TEXTAREA) + scrollbarWidth : undefined,
100317
100334
  autoColumnSize: true,
100335
+ autoRowSize: true,
100318
100336
  renderer: (hotInstance, TD, row, col, prop, value, cellProperties) => {
100319
100337
  (0, _textRenderer.textRenderer)(hotInstance, TD, row, col, prop, value, cellProperties);
100320
100338
  const {
@@ -100473,7 +100491,7 @@ class AutocompleteEditor extends _handsontableEditor.HandsontableEditor {
100473
100491
  }
100474
100492
  const textareaOffset = (0, _element.offset)(this.TEXTAREA);
100475
100493
  const textareaHeight = (0, _element.outerHeight)(this.TEXTAREA);
100476
- const dropdownHeight = this.getDropdownHeight();
100494
+ const dropdownHeight = this.getHeight();
100477
100495
  const trimmingContainerScrollTop = trimmingContainer.scrollTop;
100478
100496
  const headersHeight = (0, _element.outerHeight)(this.hot.view._wt.wtTable.THEAD);
100479
100497
  const containerOffset = (0, _element.offset)(trimmingContainer);
@@ -100546,12 +100564,18 @@ class AutocompleteEditor extends _handsontableEditor.HandsontableEditor {
100546
100564
  * @private
100547
100565
  */
100548
100566
  updateDropdownDimensions() {
100549
- const currentDropdownWidth = this.htEditor.getColWidth(0) + (0, _element.getScrollbarWidth)(this.hot.rootDocument) + 2;
100550
100567
  const trimDropdown = this.cellProperties.trimDropdown;
100568
+ const width = trimDropdown ? this.getWidth() : undefined;
100569
+ const height = this.getHeight();
100551
100570
  this.htEditor.updateSettings({
100552
- height: this.getDropdownHeight(),
100553
- width: trimDropdown ? undefined : currentDropdownWidth
100571
+ width,
100572
+ height
100554
100573
  });
100574
+ if (trimDropdown && this.htEditor.view.hasVerticalScroll()) {
100575
+ this.htEditor.updateSettings({
100576
+ width: width + (0, _element.getScrollbarWidth)(this.hot.rootDocument)
100577
+ });
100578
+ }
100555
100579
  this.htEditor.view._wt.wtTable.alignOverlaysWithTrimmingContainer();
100556
100580
  }
100557
100581
 
@@ -100587,10 +100611,26 @@ class AutocompleteEditor extends _handsontableEditor.HandsontableEditor {
100587
100611
  * @private
100588
100612
  * @returns {number}
100589
100613
  */
100590
- getDropdownHeight() {
100591
- const firstRowHeight = this.htEditor.getRowHeight(0) || 23;
100592
- const visibleRows = this.cellProperties.visibleRows;
100593
- return this.strippedChoices.length >= visibleRows ? visibleRows * firstRowHeight : this.strippedChoices.length * firstRowHeight + 8; // eslint-disable-line max-len
100614
+ getHeight() {
100615
+ const containerStyle = this.hot.rootWindow.getComputedStyle(this.htContainer.querySelector('.htCore'));
100616
+ const borderVerticalCompensation = parseInt(containerStyle.borderTopWidth, 10) + parseInt(containerStyle.borderBottomWidth, 10);
100617
+ const maxItems = Math.min(this.cellProperties.visibleRows, this.strippedChoices.length);
100618
+ const height = Array.from({
100619
+ length: maxItems
100620
+ }, (_, i) => i).reduce((h, index) => h + this.htEditor.getRowHeight(index), 0);
100621
+ return height + borderVerticalCompensation + 1;
100622
+ }
100623
+
100624
+ /**
100625
+ * Calculates and return the internal Handsontable's width.
100626
+ *
100627
+ * @private
100628
+ * @returns {number}
100629
+ */
100630
+ getWidth() {
100631
+ const containerStyle = this.hot.rootWindow.getComputedStyle(this.htContainer.querySelector('.htCore'));
100632
+ const borderHorizontalCompensation = parseInt(containerStyle.borderInlineStartWidth, 10) + parseInt(containerStyle.borderInlineEndWidth, 10);
100633
+ return this.htEditor.getColWidth(0) + borderHorizontalCompensation;
100594
100634
  }
100595
100635
 
100596
100636
  /**
@@ -100733,6 +100773,10 @@ class HandsontableEditor extends _textEditor.TextEditor {
100733
100773
  }
100734
100774
  (0, _element.setCaretPosition)(this.TEXTAREA, 0, this.TEXTAREA.value.length);
100735
100775
  this.refreshDimensions();
100776
+ this.htEditor.updateSettings({
100777
+ width: this.getWidth(),
100778
+ height: this.getHeight()
100779
+ });
100736
100780
  }
100737
100781
 
100738
100782
  /**
@@ -100839,6 +100883,26 @@ class HandsontableEditor extends _textEditor.TextEditor {
100839
100883
  super.finishEditing(restoreOriginalValue, ctrlDown, callback);
100840
100884
  }
100841
100885
 
100886
+ /**
100887
+ * Calculates and return the internal Handsontable's height.
100888
+ *
100889
+ * @private
100890
+ * @returns {number}
100891
+ */
100892
+ getHeight() {
100893
+ return this.htEditor.view.getTableHeight();
100894
+ }
100895
+
100896
+ /**
100897
+ * Calculates and return the internal Handsontable's width.
100898
+ *
100899
+ * @private
100900
+ * @returns {number}
100901
+ */
100902
+ getWidth() {
100903
+ return this.htEditor.view.getTableWidth();
100904
+ }
100905
+
100842
100906
  /**
100843
100907
  * Assigns afterDestroy callback to prevent memory leaks.
100844
100908
  *
@@ -114527,7 +114591,7 @@ class Menu {
114527
114591
  */
114528
114592
  get tableBorderWidth() {
114529
114593
  if (_classPrivateFieldGet(_tableBorderWidth, this) === undefined && this.hotMenu) {
114530
- _classPrivateFieldSet(_tableBorderWidth, this, parseInt((0, _element.getComputedStyle)(this.hotMenu.view._wt.wtTable.TABLE).borderWidth, 10));
114594
+ _classPrivateFieldSet(_tableBorderWidth, this, parseInt(this.hotMenu.rootWindow.getComputedStyle(this.hotMenu.view._wt.wtTable.TABLE).borderWidth, 10));
114531
114595
  }
114532
114596
  return _classPrivateFieldGet(_tableBorderWidth, this);
114533
114597
  }
@@ -115317,7 +115381,8 @@ class Positioner {
115317
115381
  setPositionOnRightOfCursor() {
115318
115382
  let left = _classPrivateFieldGet(_cursor, this).left;
115319
115383
  if (_classPrivateFieldGet(_parentContainer, this)) {
115320
- const borderRightWidth = Number.parseInt(getComputedStyle(_classPrivateFieldGet(_parentContainer, this).querySelector('.htCore')).borderRightWidth, 10);
115384
+ const rootWindow = _classPrivateFieldGet(_parentContainer, this).ownerDocument.defaultView;
115385
+ const borderRightWidth = Number.parseInt(rootWindow.getComputedStyle(_classPrivateFieldGet(_parentContainer, this).querySelector('.htCore')).borderRightWidth, 10);
115321
115386
  left += _classPrivateFieldGet(_cursor, this).cellWidth + borderRightWidth;
115322
115387
  } else {
115323
115388
  left += _classPrivateFieldGet(_offset, this).right;
@@ -115331,7 +115396,8 @@ class Positioner {
115331
115396
  setPositionOnLeftOfCursor() {
115332
115397
  let left = _classPrivateFieldGet(_offset, this).left + _classPrivateFieldGet(_cursor, this).left - _classPrivateFieldGet(_container, this).offsetWidth;
115333
115398
  if (_classPrivateFieldGet(_parentContainer, this)) {
115334
- const borderLeftWidth = Number.parseInt(getComputedStyle(_classPrivateFieldGet(_parentContainer, this).querySelector('.htCore')).borderLeftWidth, 10);
115399
+ const rootWindow = _classPrivateFieldGet(_parentContainer, this).ownerDocument.defaultView;
115400
+ const borderLeftWidth = Number.parseInt(rootWindow.getComputedStyle(_classPrivateFieldGet(_parentContainer, this).querySelector('.htCore')).borderLeftWidth, 10);
115335
115401
  left -= borderLeftWidth;
115336
115402
  }
115337
115403
  _classPrivateFieldGet(_container, this).style.left = `${left}px`;
@@ -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-c8116f8-20240920
29
- * Release date: 30/07/2024 (built at 20/09/2024 09:24:10)
28
+ * Version: 0.0.0-next-ffdf116-20240926
29
+ * Release date: 30/07/2024 (built at 26/09/2024 10:53:15)
30
30
  */.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{position:relative}.handsontable .hide{display:none}.handsontable .relative{position:relative}.handsontable .wtHider{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;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;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{-webkit-appearance:menulist-button!important;border:2px solid #4b89ff;position:absolute;width:auto}.htSelectEditor:focus{outline: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}
31
31
  /*!
32
32
  * Pikaday