handsontable 0.0.0-next-2a3a59d-20250212 → 0.0.0-next-b880b30-20250219

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 (64) hide show
  1. package/3rdparty/walkontable/src/overlays.js +24 -0
  2. package/3rdparty/walkontable/src/overlays.mjs +24 -0
  3. package/3rdparty/walkontable/src/utils/orderView/viewDiffer/viewOrder.js +1 -0
  4. package/3rdparty/walkontable/src/utils/orderView/viewDiffer/viewOrder.mjs +1 -0
  5. package/3rdparty/walkontable/src/viewport.js +1 -0
  6. package/3rdparty/walkontable/src/viewport.mjs +1 -0
  7. package/base.js +2 -2
  8. package/base.mjs +2 -2
  9. package/core.js +3 -0
  10. package/core.mjs +3 -0
  11. package/dist/handsontable.css +2 -2
  12. package/dist/handsontable.full.css +2 -2
  13. package/dist/handsontable.full.js +57 -9
  14. package/dist/handsontable.full.min.css +2 -2
  15. package/dist/handsontable.full.min.js +73 -73
  16. package/dist/handsontable.js +57 -9
  17. package/dist/handsontable.min.css +2 -2
  18. package/dist/handsontable.min.js +43 -43
  19. package/dist/languages/all.js +133 -28
  20. package/dist/languages/all.min.js +1 -1
  21. package/dist/languages/fa-IR.js +167 -0
  22. package/dist/languages/fa-IR.min.js +1 -0
  23. package/helpers/mixed.js +1 -1
  24. package/helpers/mixed.mjs +1 -1
  25. package/helpers/number.js +1 -0
  26. package/helpers/number.mjs +1 -0
  27. package/i18n/languages/fa-IR.d.ts +5 -0
  28. package/i18n/languages/fa-IR.js +96 -0
  29. package/i18n/languages/fa-IR.mjs +90 -0
  30. package/i18n/languages/index.d.ts +2 -0
  31. package/i18n/languages/index.js +2 -0
  32. package/i18n/languages/index.mjs +2 -1
  33. package/i18n/phraseFormatters/substituteVariables.js +1 -0
  34. package/i18n/phraseFormatters/substituteVariables.mjs +1 -0
  35. package/languages/all.js +133 -28
  36. package/languages/fa-IR.js +167 -0
  37. package/languages/fa-IR.mjs +92 -0
  38. package/languages/index.js +133 -28
  39. package/languages/index.mjs +2 -1
  40. package/package.json +13 -2
  41. package/plugins/columnSorting/columnStatesManager.js +1 -0
  42. package/plugins/columnSorting/columnStatesManager.mjs +1 -0
  43. package/plugins/comments/comments.js +10 -1
  44. package/plugins/comments/comments.mjs +10 -1
  45. package/plugins/exportFile/types/csv.js +1 -0
  46. package/plugins/exportFile/types/csv.mjs +1 -0
  47. package/plugins/nestedHeaders/nestedHeaders.js +5 -3
  48. package/plugins/nestedHeaders/nestedHeaders.mjs +5 -3
  49. package/plugins/nestedHeaders/stateManager/index.js +1 -0
  50. package/plugins/nestedHeaders/stateManager/index.mjs +1 -0
  51. package/shortcuts/utils.js +1 -0
  52. package/shortcuts/utils.mjs +1 -0
  53. package/styles/handsontable.css +73 -99
  54. package/styles/handsontable.min.css +3 -3
  55. package/styles/ht-theme-horizon.css +5 -2
  56. package/styles/ht-theme-horizon.min.css +3 -3
  57. package/styles/ht-theme-main.css +5 -2
  58. package/styles/ht-theme-main.min.css +3 -3
  59. package/translations/maps/linkedPhysicalIndexToValueMap.js +1 -0
  60. package/translations/maps/linkedPhysicalIndexToValueMap.mjs +1 -0
  61. package/translations/maps/utils/physicallyIndexed.js +1 -0
  62. package/translations/maps/utils/physicallyIndexed.mjs +1 -0
  63. package/utils/dataStructures/priorityMap.js +1 -0
  64. package/utils/dataStructures/priorityMap.mjs +1 -0
@@ -509,6 +509,30 @@ class Overlays {
509
509
  _classPrivateFieldSet(_hasRenderingStateChanged, this, false);
510
510
  }
511
511
 
512
+ /**
513
+ * Update the main scrollable elements for all the overlays.
514
+ */
515
+ updateMainScrollableElements() {
516
+ this.eventManager.clearEvents(true);
517
+ this.inlineStartOverlay.updateMainScrollableElement();
518
+ this.topOverlay.updateMainScrollableElement();
519
+ if (this.bottomOverlay.needFullRender) {
520
+ this.bottomOverlay.updateMainScrollableElement();
521
+ }
522
+ const {
523
+ wtTable
524
+ } = this;
525
+ const {
526
+ rootWindow
527
+ } = this.domBindings;
528
+ if (rootWindow.getComputedStyle(wtTable.wtRootElement.parentNode).getPropertyValue('overflow') === 'hidden') {
529
+ this.scrollableElement = wtTable.holder;
530
+ } else {
531
+ this.scrollableElement = (0, _element.getScrollableElement)(wtTable.TABLE);
532
+ }
533
+ this.registerListeners();
534
+ }
535
+
512
536
  /**
513
537
  *
514
538
  */
@@ -506,6 +506,30 @@ class Overlays {
506
506
  _classPrivateFieldSet(_hasRenderingStateChanged, this, false);
507
507
  }
508
508
 
509
+ /**
510
+ * Update the main scrollable elements for all the overlays.
511
+ */
512
+ updateMainScrollableElements() {
513
+ this.eventManager.clearEvents(true);
514
+ this.inlineStartOverlay.updateMainScrollableElement();
515
+ this.topOverlay.updateMainScrollableElement();
516
+ if (this.bottomOverlay.needFullRender) {
517
+ this.bottomOverlay.updateMainScrollableElement();
518
+ }
519
+ const {
520
+ wtTable
521
+ } = this;
522
+ const {
523
+ rootWindow
524
+ } = this.domBindings;
525
+ if (rootWindow.getComputedStyle(wtTable.wtRootElement.parentNode).getPropertyValue('overflow') === 'hidden') {
526
+ this.scrollableElement = wtTable.holder;
527
+ } else {
528
+ this.scrollableElement = getScrollableElement(wtTable.TABLE);
529
+ }
530
+ this.registerListeners();
531
+ }
532
+
509
533
  /**
510
534
  *
511
535
  */
@@ -3,6 +3,7 @@
3
3
  exports.__esModule = true;
4
4
  require("core-js/modules/es.error.cause.js");
5
5
  require("core-js/modules/es.array.unshift.js");
6
+ require("core-js/modules/esnext.iterator.constructor.js");
6
7
  require("core-js/modules/esnext.iterator.map.js");
7
8
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
8
9
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
@@ -1,5 +1,6 @@
1
1
  import "core-js/modules/es.error.cause.js";
2
2
  import "core-js/modules/es.array.unshift.js";
3
+ import "core-js/modules/esnext.iterator.constructor.js";
3
4
  import "core-js/modules/esnext.iterator.map.js";
4
5
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
5
6
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  exports.__esModule = true;
4
+ require("core-js/modules/esnext.iterator.constructor.js");
4
5
  require("core-js/modules/esnext.iterator.map.js");
5
6
  var _element = require("../../../helpers/dom/element");
6
7
  var _object = require("../../../helpers/object");
@@ -1,3 +1,4 @@
1
+ import "core-js/modules/esnext.iterator.constructor.js";
1
2
  import "core-js/modules/esnext.iterator.map.js";
2
3
  import { getScrollbarWidth, offset, outerHeight, outerWidth } from "../../../helpers/dom/element.mjs";
3
4
  import { objectEach } from "../../../helpers/object.mjs";
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 = "12/02/2025 11:26:22";
49
- Handsontable.version = "0.0.0-next-2a3a59d-20250212";
48
+ Handsontable.buildDate = "19/02/2025 09:48:19";
49
+ Handsontable.version = "0.0.0-next-b880b30-20250219";
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 = "12/02/2025 11:26:27";
39
- Handsontable.version = "0.0.0-next-2a3a59d-20250212";
38
+ Handsontable.buildDate = "19/02/2025 09:48:24";
39
+ Handsontable.version = "0.0.0-next-b880b30-20250219";
40
40
  Handsontable.languages = {
41
41
  dictionaryKeys,
42
42
  getLanguageDictionary,
package/core.js CHANGED
@@ -2431,6 +2431,9 @@ function Core(rootElement, userSettings) {
2431
2431
  instance.view.render();
2432
2432
  instance.view._wt.wtOverlays.adjustElementsSize();
2433
2433
  }
2434
+ if (!init && instance.view && (currentHeight === '' || height === '' || height === undefined) && currentHeight !== height) {
2435
+ instance.view._wt.wtOverlays.updateMainScrollableElements();
2436
+ }
2434
2437
  };
2435
2438
 
2436
2439
  /**
package/core.mjs CHANGED
@@ -2426,6 +2426,9 @@ export default function Core(rootElement, userSettings) {
2426
2426
  instance.view.render();
2427
2427
  instance.view._wt.wtOverlays.adjustElementsSize();
2428
2428
  }
2429
+ if (!init && instance.view && (currentHeight === '' || height === '' || height === undefined) && currentHeight !== height) {
2430
+ instance.view._wt.wtOverlays.updateMainScrollableElements();
2431
+ }
2429
2432
  };
2430
2433
 
2431
2434
  /**
@@ -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-2a3a59d-20250212
29
- * Release date: 16/12/2024 (built at 12/02/2025 11:26:50)
28
+ * Version: 0.0.0-next-b880b30-20250219
29
+ * Release date: 16/12/2024 (built at 19/02/2025 09:48:46)
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-2a3a59d-20250212
29
- * Release date: 16/12/2024 (built at 12/02/2025 11:26:50)
28
+ * Version: 0.0.0-next-b880b30-20250219
29
+ * Release date: 16/12/2024 (built at 19/02/2025 09:48:46)
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-2a3a59d-20250212
29
- * Release date: 16/12/2024 (built at 12/02/2025 11:26:32)
28
+ * Version: 0.0.0-next-b880b30-20250219
29
+ * Release date: 16/12/2024 (built at 19/02/2025 09:48:29)
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 = "12/02/2025 11:26:32";
42859
- Handsontable.version = "0.0.0-next-2a3a59d-20250212";
42858
+ Handsontable.buildDate = "19/02/2025 09:48:29";
42859
+ Handsontable.version = "0.0.0-next-b880b30-20250219";
42860
42860
  Handsontable.languages = {
42861
42861
  dictionaryKeys: _registry.dictionaryKeys,
42862
42862
  getLanguageDictionary: _registry.getLanguageDictionary,
@@ -45310,6 +45310,9 @@ function Core(rootElement, userSettings) {
45310
45310
  instance.view.render();
45311
45311
  instance.view._wt.wtOverlays.adjustElementsSize();
45312
45312
  }
45313
+ if (!init && instance.view && (currentHeight === '' || height === '' || height === undefined) && currentHeight !== height) {
45314
+ instance.view._wt.wtOverlays.updateMainScrollableElements();
45315
+ }
45313
45316
  };
45314
45317
 
45315
45318
  /**
@@ -54195,7 +54198,7 @@ const domMessages = {
54195
54198
  function _injectProductInfo(key, element) {
54196
54199
  const hasValidType = !isEmpty(key);
54197
54200
  const isNonCommercial = typeof key === 'string' && key.toLowerCase() === 'non-commercial-and-evaluation';
54198
- const hotVersion = "0.0.0-next-2a3a59d-20250212";
54201
+ const hotVersion = "0.0.0-next-b880b30-20250219";
54199
54202
  let keyValidityDate;
54200
54203
  let consoleMessageState = 'invalid';
54201
54204
  let domMessageState = 'invalid';
@@ -68107,6 +68110,7 @@ function unifyPluginArguments(pluginName, pluginClass, priority) {
68107
68110
  exports.__esModule = true;
68108
68111
  exports.createPriorityMap = createPriorityMap;
68109
68112
  __webpack_require__(201);
68113
+ __webpack_require__(311);
68110
68114
  __webpack_require__(338);
68111
68115
  var _number = __webpack_require__(534);
68112
68116
  var _function = __webpack_require__(497);
@@ -68196,6 +68200,7 @@ __webpack_require__(303);
68196
68200
  __webpack_require__(305);
68197
68201
  __webpack_require__(307);
68198
68202
  __webpack_require__(309);
68203
+ __webpack_require__(311);
68199
68204
  __webpack_require__(338);
68200
68205
  /* eslint-disable jsdoc/require-description-complete-sentence */
68201
68206
  /**
@@ -73843,6 +73848,30 @@ class Overlays {
73843
73848
  _classPrivateFieldSet(_hasRenderingStateChanged, this, false);
73844
73849
  }
73845
73850
 
73851
+ /**
73852
+ * Update the main scrollable elements for all the overlays.
73853
+ */
73854
+ updateMainScrollableElements() {
73855
+ this.eventManager.clearEvents(true);
73856
+ this.inlineStartOverlay.updateMainScrollableElement();
73857
+ this.topOverlay.updateMainScrollableElement();
73858
+ if (this.bottomOverlay.needFullRender) {
73859
+ this.bottomOverlay.updateMainScrollableElement();
73860
+ }
73861
+ const {
73862
+ wtTable
73863
+ } = this;
73864
+ const {
73865
+ rootWindow
73866
+ } = this.domBindings;
73867
+ if (rootWindow.getComputedStyle(wtTable.wtRootElement.parentNode).getPropertyValue('overflow') === 'hidden') {
73868
+ this.scrollableElement = wtTable.holder;
73869
+ } else {
73870
+ this.scrollableElement = (0, _element.getScrollableElement)(wtTable.TABLE);
73871
+ }
73872
+ this.registerListeners();
73873
+ }
73874
+
73846
73875
  /**
73847
73876
  *
73848
73877
  */
@@ -76230,6 +76259,7 @@ exports.ViewDiffer = ViewDiffer;
76230
76259
  var _interopRequireDefault = __webpack_require__(197);
76231
76260
  exports.__esModule = true;
76232
76261
  __webpack_require__(576);
76262
+ __webpack_require__(311);
76233
76263
  __webpack_require__(338);
76234
76264
  var _defineProperty2 = _interopRequireDefault(__webpack_require__(504));
76235
76265
  /**
@@ -82549,6 +82579,7 @@ var _default = exports["default"] = MasterTable;
82549
82579
 
82550
82580
 
82551
82581
  exports.__esModule = true;
82582
+ __webpack_require__(311);
82552
82583
  __webpack_require__(338);
82553
82584
  var _element = __webpack_require__(351);
82554
82585
  var _object = __webpack_require__(499);
@@ -85187,6 +85218,7 @@ exports.IndexMap = IndexMap;
85187
85218
  exports.__esModule = true;
85188
85219
  exports.getListWithInsertedItems = getListWithInsertedItems;
85189
85220
  exports.getListWithRemovedItems = getListWithRemovedItems;
85221
+ __webpack_require__(311);
85190
85222
  __webpack_require__(338);
85191
85223
  var _function = __webpack_require__(497);
85192
85224
  var _array = __webpack_require__(495);
@@ -85231,6 +85263,7 @@ function getListWithRemovedItems(indexedValues, removedIndexes) {
85231
85263
 
85232
85264
  var _interopRequireDefault = __webpack_require__(197);
85233
85265
  exports.__esModule = true;
85266
+ __webpack_require__(311);
85234
85267
  __webpack_require__(338);
85235
85268
  var _defineProperty2 = _interopRequireDefault(__webpack_require__(504));
85236
85269
  var _indexMap = __webpack_require__(632);
@@ -100586,6 +100619,7 @@ exports.createContext = createContext;
100586
100619
 
100587
100620
 
100588
100621
  exports.__esModule = true;
100622
+ __webpack_require__(311);
100589
100623
  __webpack_require__(338);
100590
100624
  // This file handles key-name discrepancies between browsers.
100591
100625
  // For the list of discrepancies, go to: https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values.
@@ -116724,6 +116758,7 @@ function _onBeforeOnCellMouseDown(event, coords, TD, controller) {
116724
116758
 
116725
116759
  var _interopRequireDefault = __webpack_require__(197);
116726
116760
  exports.__esModule = true;
116761
+ __webpack_require__(311);
116727
116762
  __webpack_require__(338);
116728
116763
  var _defineProperty2 = _interopRequireDefault(__webpack_require__(504));
116729
116764
  var _object = __webpack_require__(499);
@@ -118956,7 +118991,7 @@ class Comments extends _base.BasePlugin {
118956
118991
  keys: [['Shift', 'Tab'], ['Tab']],
118957
118992
  forwardToContext: manager.getContext('grid'),
118958
118993
  callback: () => {
118959
- _classPrivateFieldGet(_editor, this).setValue(_classPrivateFieldGet(_commentValueBeforeSave, this));
118994
+ _classPrivateFieldGet(_editor, this).setValue(_classPrivateFieldGet(_editor, this).getValue());
118960
118995
  this.hide();
118961
118996
  manager.setActiveContextName('grid');
118962
118997
  },
@@ -118988,6 +119023,7 @@ class Comments extends _base.BasePlugin {
118988
119023
  this.eventManager.addEventListener(rootDocument, 'mouseup', () => _assertClassBrand(_Comments_brand, this, _onMouseUp).call(this));
118989
119024
  this.eventManager.addEventListener(editorElement, 'focus', () => _assertClassBrand(_Comments_brand, this, _onEditorFocus).call(this));
118990
119025
  this.eventManager.addEventListener(editorElement, 'blur', () => _assertClassBrand(_Comments_brand, this, _onEditorBlur).call(this));
119026
+ this.eventManager.addEventListener(this.getEditorInputElement(), 'mousedown', event => _assertClassBrand(_Comments_brand, this, _onInputElementMouseDown).call(this, event));
118991
119027
  }
118992
119028
 
118993
119029
  /**
@@ -119352,6 +119388,14 @@ function _onMouseDown(event) {
119352
119388
  }
119353
119389
  }
119354
119390
  }
119391
+ /**
119392
+ * Prevent recognizing clicking on the comment editor as clicking outside of table.
119393
+ *
119394
+ * @param {MouseEvent} event The `mousedown` event.
119395
+ */
119396
+ function _onInputElementMouseDown(event) {
119397
+ event.stopPropagation();
119398
+ }
119355
119399
  /**
119356
119400
  * `mouseover` event callback.
119357
119401
  *
@@ -127260,6 +127304,7 @@ function typeFactory(type, dataProvider, options) {
127260
127304
 
127261
127305
  var _interopRequireDefault = __webpack_require__(197);
127262
127306
  exports.__esModule = true;
127307
+ __webpack_require__(311);
127263
127308
  __webpack_require__(338);
127264
127309
  var _array = __webpack_require__(495);
127265
127310
  var _mixed = __webpack_require__(354);
@@ -145210,9 +145255,11 @@ function _onBeforeSelectColumns(from, to, highlight) {
145210
145255
  * @param {Array} renderersArray Array of renderers.
145211
145256
  */
145212
145257
  function _onAfterGetColumnHeaderRenderers(renderersArray) {
145213
- renderersArray.length = 0;
145214
- for (let headerLayer = 0; headerLayer < _classPrivateFieldGet(_stateManager, this).getLayersCount(); headerLayer++) {
145215
- renderersArray.push(this.headerRendererFactory(headerLayer));
145258
+ if (_classPrivateFieldGet(_stateManager, this).getLayersCount() > 0) {
145259
+ renderersArray.length = 0;
145260
+ for (let headerLayer = 0; headerLayer < _classPrivateFieldGet(_stateManager, this).getLayersCount(); headerLayer++) {
145261
+ renderersArray.push(this.headerRendererFactory(headerLayer));
145262
+ }
145216
145263
  }
145217
145264
  }
145218
145265
  /**
@@ -145321,6 +145368,7 @@ var _interopRequireDefault = __webpack_require__(197);
145321
145368
  exports.__esModule = true;
145322
145369
  __webpack_require__(201);
145323
145370
  __webpack_require__(283);
145371
+ __webpack_require__(311);
145324
145372
  __webpack_require__(338);
145325
145373
  var _array = __webpack_require__(495);
145326
145374
  var _sourceSettings2 = _interopRequireDefault(__webpack_require__(1046));
@@ -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-2a3a59d-20250212
30
- * Release date: 16/12/2024 (built at 12/02/2025 11:27:24)
29
+ * Version: 0.0.0-next-b880b30-20250219
30
+ * Release date: 16/12/2024 (built at 19/02/2025 09:49:21)
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