handsontable 0.0.0-next-e2a5d5f-20250221 → 0.0.0-next-326182b-20250225

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


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

Files changed (36) 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/selection/scanner.js +1 -1
  4. package/3rdparty/walkontable/src/selection/scanner.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 +35 -17
  10. package/dist/handsontable.full.min.css +2 -2
  11. package/dist/handsontable.full.min.js +10 -10
  12. package/dist/handsontable.js +35 -17
  13. package/dist/handsontable.min.css +2 -2
  14. package/dist/handsontable.min.js +8 -8
  15. package/focusManager.js +1 -1
  16. package/focusManager.mjs +2 -2
  17. package/helpers/dom/element.d.ts +1 -0
  18. package/helpers/dom/element.js +13 -0
  19. package/helpers/dom/element.mjs +12 -0
  20. package/helpers/dom/event.js +2 -1
  21. package/helpers/dom/event.mjs +2 -1
  22. package/helpers/mixed.js +1 -1
  23. package/helpers/mixed.mjs +1 -1
  24. package/package.json +1 -1
  25. package/plugins/copyPaste/copyPaste.js +3 -3
  26. package/plugins/copyPaste/copyPaste.mjs +4 -4
  27. package/plugins/mergeCells/mergeCells.js +7 -3
  28. package/plugins/mergeCells/mergeCells.mjs +7 -3
  29. package/renderers/checkboxRenderer/checkboxRenderer.js +1 -1
  30. package/renderers/checkboxRenderer/checkboxRenderer.mjs +2 -2
  31. package/styles/handsontable.css +10 -2
  32. package/styles/handsontable.min.css +3 -3
  33. package/styles/ht-theme-horizon.css +2 -2
  34. package/styles/ht-theme-horizon.min.css +2 -2
  35. package/styles/ht-theme-main.css +2 -2
  36. package/styles/ht-theme-main.min.css +2 -2
@@ -352,7 +352,7 @@ class Border {
352
352
  fromTD = wtTable.getCell(this.wot.createCellCoords(fromRow, fromColumn));
353
353
  } else {
354
354
  fromTD = wtTable.getCell(this.wot.createCellCoords(fromRow, fromColumn));
355
- if (!(fromTD instanceof HTMLElement)) {
355
+ if (!(0, _element.isHTMLElement)(fromTD)) {
356
356
  this.disappear();
357
357
  return;
358
358
  }
@@ -1,4 +1,4 @@
1
- import { addClass, hasClass, removeClass, getTrimmingContainer, innerWidth, innerHeight, offset, outerHeight, outerWidth } from "../../../../../helpers/dom/element.mjs";
1
+ import { addClass, hasClass, removeClass, getTrimmingContainer, innerWidth, innerHeight, offset, outerHeight, outerWidth, isHTMLElement } 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";
@@ -349,7 +349,7 @@ class Border {
349
349
  fromTD = wtTable.getCell(this.wot.createCellCoords(fromRow, fromColumn));
350
350
  } else {
351
351
  fromTD = wtTable.getCell(this.wot.createCellCoords(fromRow, fromColumn));
352
- if (!(fromTD instanceof HTMLElement)) {
352
+ if (!isHTMLElement(fromTD)) {
353
353
  this.disappear();
354
354
  return;
355
355
  }
@@ -273,7 +273,7 @@ function _scanCellsRange(callback) {
273
273
  }
274
274
  } else {
275
275
  const cell = wtTable.getCell(_classPrivateFieldGet(_activeOverlaysWot, this).createCellCoords(topRow, startColumn));
276
- if (!(cell instanceof HTMLElement)) {
276
+ if (!(0, _element.isHTMLElement)(cell)) {
277
277
  return;
278
278
  }
279
279
  }
@@ -13,7 +13,7 @@ function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
13
13
  function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
14
14
  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"); }
15
15
  /* eslint-disable no-continue */
16
- import { addClass } from "../../../../helpers/dom/element.mjs";
16
+ import { addClass, isHTMLElement } from "../../../../helpers/dom/element.mjs";
17
17
  /**
18
18
  * Selection scanner module scans the rendered cells and headers and if it finds an intersection with
19
19
  * the coordinates of the Selection class (highlight) it returns the DOM elements.
@@ -270,7 +270,7 @@ function _scanCellsRange(callback) {
270
270
  }
271
271
  } else {
272
272
  const cell = wtTable.getCell(_classPrivateFieldGet(_activeOverlaysWot, this).createCellCoords(topRow, startColumn));
273
- if (!(cell instanceof HTMLElement)) {
273
+ if (!isHTMLElement(cell)) {
274
274
  return;
275
275
  }
276
276
  }
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 = "21/02/2025 11:46:14";
49
- Handsontable.version = "0.0.0-next-e2a5d5f-20250221";
48
+ Handsontable.buildDate = "25/02/2025 10:15:53";
49
+ Handsontable.version = "0.0.0-next-326182b-20250225";
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 = "21/02/2025 11:46:19";
39
- Handsontable.version = "0.0.0-next-e2a5d5f-20250221";
38
+ Handsontable.buildDate = "25/02/2025 10:15:59";
39
+ Handsontable.version = "0.0.0-next-326182b-20250225";
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-e2a5d5f-20250221
29
- * Release date: 20/02/2025 (built at 21/02/2025 11:46:41)
28
+ * Version: 0.0.0-next-326182b-20250225
29
+ * Release date: 20/02/2025 (built at 25/02/2025 10:16:21)
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-e2a5d5f-20250221
29
- * Release date: 20/02/2025 (built at 21/02/2025 11:46:41)
28
+ * Version: 0.0.0-next-326182b-20250225
29
+ * Release date: 20/02/2025 (built at 25/02/2025 10:16:21)
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-e2a5d5f-20250221
29
- * Release date: 20/02/2025 (built at 21/02/2025 11:46:23)
28
+ * Version: 0.0.0-next-326182b-20250225
29
+ * Release date: 20/02/2025 (built at 25/02/2025 10:16:04)
30
30
  */
31
31
  (function webpackUniversalModuleDefinition(root, factory) {
32
32
  if(typeof exports === 'object' && typeof module === 'object')
@@ -42855,8 +42855,8 @@ Handsontable.hooks = _hooks.Hooks.getSingleton();
42855
42855
  Handsontable.CellCoords = _src.CellCoords;
42856
42856
  Handsontable.CellRange = _src.CellRange;
42857
42857
  Handsontable.packageName = 'handsontable';
42858
- Handsontable.buildDate = "21/02/2025 11:46:23";
42859
- Handsontable.version = "0.0.0-next-e2a5d5f-20250221";
42858
+ Handsontable.buildDate = "25/02/2025 10:16:04";
42859
+ Handsontable.version = "0.0.0-next-326182b-20250225";
42860
42860
  Handsontable.languages = {
42861
42861
  dictionaryKeys: _registry.dictionaryKeys,
42862
42862
  getLanguageDictionary: _registry.getLanguageDictionary,
@@ -51410,6 +51410,7 @@ exports.innerHeight = innerHeight;
51410
51410
  exports.innerWidth = innerWidth;
51411
51411
  exports.isChildOf = isChildOf;
51412
51412
  exports.isDetached = isDetached;
51413
+ exports.isHTMLElement = isHTMLElement;
51413
51414
  exports.isInput = isInput;
51414
51415
  exports.isOutsideInput = isOutsideInput;
51415
51416
  exports.isThisHotChild = isThisHotChild;
@@ -52554,6 +52555,18 @@ function runWithSelectedContendEditableElement(element, callback) {
52554
52555
  removeContentEditableFromElementAndDeselect(element, invisibleSelection);
52555
52556
  }
52556
52557
 
52558
+ /**
52559
+ * Check if the element is HTMLElement.
52560
+ *
52561
+ * @param {*} element Element to check.
52562
+ * @returns {boolean} `true` if the element is HTMLElement.
52563
+ */
52564
+ function isHTMLElement(element) {
52565
+ var _element$ownerDocumen;
52566
+ const OwnElement = element === null || element === void 0 || (_element$ownerDocumen = element.ownerDocument) === null || _element$ownerDocumen === void 0 ? void 0 : _element$ownerDocumen.defaultView.Element;
52567
+ return !!(OwnElement && OwnElement !== null && element instanceof OwnElement);
52568
+ }
52569
+
52557
52570
  /***/ }),
52558
52571
  /* 352 */
52559
52572
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
@@ -54162,7 +54175,7 @@ const domMessages = {
54162
54175
  function _injectProductInfo(key, element) {
54163
54176
  const hasValidType = !isEmpty(key);
54164
54177
  const isNonCommercial = typeof key === 'string' && key.toLowerCase() === 'non-commercial-and-evaluation';
54165
- const hotVersion = "0.0.0-next-e2a5d5f-20250221";
54178
+ const hotVersion = "0.0.0-next-326182b-20250225";
54166
54179
  let keyValidityDate;
54167
54180
  let consoleMessageState = 'invalid';
54168
54181
  let domMessageState = 'invalid';
@@ -63156,7 +63169,7 @@ function isKey(keyCode, baseCode) {
63156
63169
 
63157
63170
  /***/ }),
63158
63171
  /* 509 */
63159
- /***/ ((__unused_webpack_module, exports) => {
63172
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
63160
63173
 
63161
63174
  "use strict";
63162
63175
 
@@ -63168,6 +63181,7 @@ exports.isRightClick = isRightClick;
63168
63181
  exports.isTouchEvent = isTouchEvent;
63169
63182
  exports.offsetRelativeTo = offsetRelativeTo;
63170
63183
  exports.stopImmediatePropagation = stopImmediatePropagation;
63184
+ var _element = __webpack_require__(351);
63171
63185
  /**
63172
63186
  * Prevent other listeners of the same event from being called.
63173
63187
  *
@@ -63231,7 +63245,7 @@ function offsetRelativeTo(event, untilElement) {
63231
63245
  y: event.offsetY
63232
63246
  };
63233
63247
  let element = event.target;
63234
- if (!(untilElement instanceof HTMLElement) || element !== untilElement && element.contains(untilElement)) {
63248
+ if (!(0, _element.isHTMLElement)(untilElement) || element !== untilElement && element.contains(untilElement)) {
63235
63249
  return offset;
63236
63250
  }
63237
63251
  while (element !== untilElement) {
@@ -67314,7 +67328,7 @@ class FocusManager {
67314
67328
  return;
67315
67329
  }
67316
67330
  let elementToBeFocused = _classPrivateFieldGet(_hot, this).runHooks('modifyFocusedElement', currentHighlightCoords.row, currentHighlightCoords.col, element);
67317
- if (!(elementToBeFocused instanceof HTMLElement)) {
67331
+ if (!(0, _element.isHTMLElement)(elementToBeFocused)) {
67318
67332
  elementToBeFocused = element;
67319
67333
  }
67320
67334
  if (elementToBeFocused && !((_classPrivateFieldGet4 = _classPrivateFieldGet(_hot, this).getActiveEditor()) !== null && _classPrivateFieldGet4 !== void 0 && _classPrivateFieldGet4.isOpened())) {
@@ -80742,7 +80756,7 @@ function _scanCellsRange(callback) {
80742
80756
  }
80743
80757
  } else {
80744
80758
  const cell = wtTable.getCell(_classPrivateFieldGet(_activeOverlaysWot, this).createCellCoords(topRow, startColumn));
80745
- if (!(cell instanceof HTMLElement)) {
80759
+ if (!(0, _element.isHTMLElement)(cell)) {
80746
80760
  return;
80747
80761
  }
80748
80762
  }
@@ -81130,7 +81144,7 @@ class Border {
81130
81144
  fromTD = wtTable.getCell(this.wot.createCellCoords(fromRow, fromColumn));
81131
81145
  } else {
81132
81146
  fromTD = wtTable.getCell(this.wot.createCellCoords(fromRow, fromColumn));
81133
- if (!(fromTD instanceof HTMLElement)) {
81147
+ if (!(0, _element.isHTMLElement)(fromTD)) {
81134
81148
  this.disappear();
81135
81149
  return;
81136
81150
  }
@@ -105201,7 +105215,7 @@ function checkboxRenderer(hotInstance, TD, row, col, prop, value, cellProperties
105201
105215
  continue;
105202
105216
  }
105203
105217
  const cell = hotInstance.getCell(visualRow, visualColumn);
105204
- if (cell instanceof HTMLElement) {
105218
+ if ((0, _element.isHTMLElement)(cell)) {
105205
105219
  const checkboxes = cell.querySelectorAll('input[type=checkbox]');
105206
105220
  if (checkboxes.length > 0) {
105207
105221
  return true;
@@ -124027,7 +124041,7 @@ class CopyPaste extends _base.BasePlugin {
124027
124041
  const isHotInput = (_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.hasAttribute('data-hot-input');
124028
124042
  const selectedCell = (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight;
124029
124043
  const TD = selectedCell ? this.hot.getCell(selectedCell.row, selectedCell.col, true) : null;
124030
- if (!this.hot.isListening() && !_classPrivateFieldGet(_isTriggeredByCopy, this) || this.isEditorOpened() || event.target instanceof HTMLElement && (isHotInput && event.target !== focusedElement || !isHotInput && event.target !== this.hot.rootDocument.body && TD !== event.target)) {
124044
+ if (!this.hot.isListening() && !_classPrivateFieldGet(_isTriggeredByCopy, this) || this.isEditorOpened() || (0, _element.isHTMLElement)(event.target) && (isHotInput && event.target !== focusedElement || !isHotInput && event.target !== this.hot.rootDocument.body && TD !== event.target)) {
124031
124045
  return;
124032
124046
  }
124033
124047
  event.preventDefault();
@@ -124062,7 +124076,7 @@ class CopyPaste extends _base.BasePlugin {
124062
124076
  const isHotInput = (_event$target2 = event.target) === null || _event$target2 === void 0 ? void 0 : _event$target2.hasAttribute('data-hot-input');
124063
124077
  const selectedCell = (_this$hot$getSelected2 = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected2 === void 0 ? void 0 : _this$hot$getSelected2.highlight;
124064
124078
  const TD = selectedCell ? this.hot.getCell(selectedCell.row, selectedCell.col, true) : null;
124065
- if (!this.hot.isListening() && !_classPrivateFieldGet(_isTriggeredByCut, this) || this.isEditorOpened() || event.target instanceof HTMLElement && (isHotInput && event.target !== focusedElement || !isHotInput && event.target !== this.hot.rootDocument.body && TD !== event.target)) {
124079
+ if (!this.hot.isListening() && !_classPrivateFieldGet(_isTriggeredByCut, this) || this.isEditorOpened() || (0, _element.isHTMLElement)(event.target) && (isHotInput && event.target !== focusedElement || !isHotInput && event.target !== this.hot.rootDocument.body && TD !== event.target)) {
124066
124080
  return;
124067
124081
  }
124068
124082
  event.preventDefault();
@@ -124096,7 +124110,7 @@ class CopyPaste extends _base.BasePlugin {
124096
124110
  const isHotInput = (_event$target3 = event.target) === null || _event$target3 === void 0 ? void 0 : _event$target3.hasAttribute('data-hot-input');
124097
124111
  const selectedCell = (_this$hot$getSelected3 = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected3 === void 0 ? void 0 : _this$hot$getSelected3.highlight;
124098
124112
  const TD = selectedCell ? this.hot.getCell(selectedCell.row, selectedCell.col, true) : null;
124099
- if (!this.hot.isListening() || this.isEditorOpened() || !this.hot.getSelected() || event.target instanceof HTMLElement && (isHotInput && event.target !== focusedElement || !isHotInput && event.target !== this.hot.rootDocument.body && TD !== event.target)) {
124113
+ if (!this.hot.isListening() || this.isEditorOpened() || !this.hot.getSelected() || (0, _element.isHTMLElement)(event.target) && (isHotInput && event.target !== focusedElement || !isHotInput && event.target !== this.hot.rootDocument.body && TD !== event.target)) {
124100
124114
  return;
124101
124115
  }
124102
124116
  event.preventDefault();
@@ -141254,12 +141268,16 @@ function _onModifyRowHeightByOverlayName(height, row, overlayType) {
141254
141268
  * @returns {number}
141255
141269
  */
141256
141270
  function _sumCellsHeights(row, rowspan) {
141257
- const stylesHandler = this.hot.view.getStylesHandler();
141258
- const defaultHeight = this.hot.view.getDefaultRowHeight();
141271
+ const {
141272
+ view,
141273
+ rowIndexMapper
141274
+ } = this.hot;
141275
+ const stylesHandler = view.getStylesHandler();
141276
+ const defaultHeight = view.getDefaultRowHeight();
141259
141277
  const autoRowSizePlugin = this.hot.getPlugin('autoRowSize');
141260
141278
  let height = 0;
141261
141279
  for (let i = row; i < row + rowspan; i++) {
141262
- if (!this.hot.rowIndexMapper.isHidden(i)) {
141280
+ if (!rowIndexMapper.isHidden(i)) {
141263
141281
  var _autoRowSizePlugin$ge;
141264
141282
  height += (_autoRowSizePlugin$ge = autoRowSizePlugin === null || autoRowSizePlugin === void 0 ? void 0 : autoRowSizePlugin.getRowHeight(i)) !== null && _autoRowSizePlugin$ge !== void 0 ? _autoRowSizePlugin$ge : defaultHeight;
141265
141283
  if (i === 0 && !stylesHandler.isClassicTheme()) {
@@ -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-e2a5d5f-20250221
30
- * Release date: 20/02/2025 (built at 21/02/2025 11:47:15)
29
+ * Version: 0.0.0-next-326182b-20250225
30
+ * Release date: 20/02/2025 (built at 25/02/2025 10:16:57)
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.htGhostTable table thead th{border-bottom-width:0}.handsontable.htGhostTable table tbody tr td,.handsontable.htGhostTable table tbody tr th{border-top-width:0}.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