handsontable 0.0.0-next-7b93b7d-20231107 → 0.0.0-next-5f253b5-20231108

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 (42) hide show
  1. package/3rdparty/walkontable/src/cell/coords.js +7 -5
  2. package/3rdparty/walkontable/src/cell/coords.mjs +7 -5
  3. package/base.js +2 -2
  4. package/base.mjs +2 -2
  5. package/dist/handsontable.css +2 -2
  6. package/dist/handsontable.full.css +2 -2
  7. package/dist/handsontable.full.js +102 -51
  8. package/dist/handsontable.full.min.css +2 -2
  9. package/dist/handsontable.full.min.js +10 -10
  10. package/dist/handsontable.js +102 -51
  11. package/dist/handsontable.min.css +2 -2
  12. package/dist/handsontable.min.js +10 -10
  13. package/helpers/mixed.js +1 -1
  14. package/helpers/mixed.mjs +1 -1
  15. package/package.json +1 -1
  16. package/plugins/autofill/autofill.d.ts +0 -1
  17. package/plugins/autofill/autofill.js +1 -0
  18. package/plugins/autofill/autofill.mjs +1 -0
  19. package/plugins/base/base.js +4 -6
  20. package/plugins/base/base.mjs +4 -6
  21. package/plugins/columnSorting/columnSorting.js +2 -1
  22. package/plugins/columnSorting/columnSorting.mjs +2 -1
  23. package/plugins/contextMenu/contextMenu.js +5 -1
  24. package/plugins/contextMenu/contextMenu.mjs +5 -1
  25. package/plugins/contextMenu/predefinedItems/removeColumn.js +1 -1
  26. package/plugins/contextMenu/predefinedItems/removeColumn.mjs +1 -1
  27. package/plugins/contextMenu/predefinedItems/removeRow.js +1 -1
  28. package/plugins/contextMenu/predefinedItems/removeRow.mjs +1 -1
  29. package/plugins/customBorders/customBorders.js +8 -2
  30. package/plugins/customBorders/customBorders.mjs +8 -2
  31. package/plugins/dropdownMenu/dropdownMenu.js +4 -2
  32. package/plugins/dropdownMenu/dropdownMenu.mjs +4 -2
  33. package/plugins/multiColumnSorting/multiColumnSorting.js +2 -1
  34. package/plugins/multiColumnSorting/multiColumnSorting.mjs +2 -1
  35. package/plugins/nestedRows/nestedRows.js +12 -4
  36. package/plugins/nestedRows/nestedRows.mjs +12 -4
  37. package/selection/selection.js +25 -7
  38. package/selection/selection.mjs +25 -7
  39. package/selection/utils.js +24 -14
  40. package/selection/utils.mjs +25 -15
  41. package/shortcuts/manager.js +1 -1
  42. package/shortcuts/manager.mjs +1 -1
@@ -47,6 +47,8 @@ class CellCoords {
47
47
  */
48
48
  _defineProperty(this, "col", null);
49
49
  /**
50
+ * A flag which determines if the coordinates run in RTL mode.
51
+ *
50
52
  * @type {boolean}
51
53
  */
52
54
  _classPrivateFieldInitSpec(this, _isRtl, {
@@ -107,17 +109,17 @@ class CellCoords {
107
109
  }
108
110
 
109
111
  /**
110
- * Checks if another set of coordinates (`cellCoords`)
112
+ * Checks if another set of coordinates (`coords`)
111
113
  * is equal to the coordinates in your `CellCoords` instance.
112
114
  *
113
- * @param {CellCoords} cellCoords Coordinates to check.
115
+ * @param {CellCoords} coords Coordinates to check.
114
116
  * @returns {boolean}
115
117
  */
116
- isEqual(cellCoords) {
117
- if (cellCoords === this) {
118
+ isEqual(coords) {
119
+ if (coords === this) {
118
120
  return true;
119
121
  }
120
- return this.row === cellCoords.row && this.col === cellCoords.col;
122
+ return this.row === coords.row && this.col === coords.col;
121
123
  }
122
124
 
123
125
  /**
@@ -44,6 +44,8 @@ class CellCoords {
44
44
  */
45
45
  _defineProperty(this, "col", null);
46
46
  /**
47
+ * A flag which determines if the coordinates run in RTL mode.
48
+ *
47
49
  * @type {boolean}
48
50
  */
49
51
  _classPrivateFieldInitSpec(this, _isRtl, {
@@ -104,17 +106,17 @@ class CellCoords {
104
106
  }
105
107
 
106
108
  /**
107
- * Checks if another set of coordinates (`cellCoords`)
109
+ * Checks if another set of coordinates (`coords`)
108
110
  * is equal to the coordinates in your `CellCoords` instance.
109
111
  *
110
- * @param {CellCoords} cellCoords Coordinates to check.
112
+ * @param {CellCoords} coords Coordinates to check.
111
113
  * @returns {boolean}
112
114
  */
113
- isEqual(cellCoords) {
114
- if (cellCoords === this) {
115
+ isEqual(coords) {
116
+ if (coords === this) {
115
117
  return true;
116
118
  }
117
- return this.row === cellCoords.row && this.col === cellCoords.col;
119
+ return this.row === coords.row && this.col === coords.col;
118
120
  }
119
121
 
120
122
  /**
package/base.js CHANGED
@@ -43,8 +43,8 @@ Handsontable.hooks = _pluginHooks.default.getSingleton();
43
43
  Handsontable.CellCoords = _src.CellCoords;
44
44
  Handsontable.CellRange = _src.CellRange;
45
45
  Handsontable.packageName = 'handsontable';
46
- Handsontable.buildDate = "07/11/2023 14:24:30";
47
- Handsontable.version = "0.0.0-next-7b93b7d-20231107";
46
+ Handsontable.buildDate = "08/11/2023 12:09:51";
47
+ Handsontable.version = "0.0.0-next-5f253b5-20231108";
48
48
  Handsontable.languages = {
49
49
  dictionaryKeys: _registry.dictionaryKeys,
50
50
  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 = "07/11/2023 14:24:41";
39
- Handsontable.version = "0.0.0-next-7b93b7d-20231107";
38
+ Handsontable.buildDate = "08/11/2023 12:10:05";
39
+ Handsontable.version = "0.0.0-next-5f253b5-20231108";
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-7b93b7d-20231107
29
- * Release date: 31/08/2023 (built at 07/11/2023 14:24:49)
28
+ * Version: 0.0.0-next-5f253b5-20231108
29
+ * Release date: 31/08/2023 (built at 08/11/2023 12:10:16)
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-7b93b7d-20231107
29
- * Release date: 31/08/2023 (built at 07/11/2023 14:24:49)
28
+ * Version: 0.0.0-next-5f253b5-20231108
29
+ * Release date: 31/08/2023 (built at 08/11/2023 12:10:16)
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-7b93b7d-20231107
29
- * Release date: 31/08/2023 (built at 07/11/2023 14:24:49)
28
+ * Version: 0.0.0-next-5f253b5-20231108
29
+ * Release date: 31/08/2023 (built at 08/11/2023 12:10:16)
30
30
  */
31
31
  (function webpackUniversalModuleDefinition(root, factory) {
32
32
  if(typeof exports === 'object' && typeof module === 'object')
@@ -42664,8 +42664,8 @@ Handsontable.hooks = _pluginHooks.default.getSingleton();
42664
42664
  Handsontable.CellCoords = _src.CellCoords;
42665
42665
  Handsontable.CellRange = _src.CellRange;
42666
42666
  Handsontable.packageName = 'handsontable';
42667
- Handsontable.buildDate = "07/11/2023 14:24:49";
42668
- Handsontable.version = "0.0.0-next-7b93b7d-20231107";
42667
+ Handsontable.buildDate = "08/11/2023 12:10:16";
42668
+ Handsontable.version = "0.0.0-next-5f253b5-20231108";
42669
42669
  Handsontable.languages = {
42670
42670
  dictionaryKeys: _registry.dictionaryKeys,
42671
42671
  getLanguageDictionary: _registry.getLanguageDictionary,
@@ -52800,7 +52800,7 @@ const domMessages = {
52800
52800
  function _injectProductInfo(key, element) {
52801
52801
  const hasValidType = !isEmpty(key);
52802
52802
  const isNonCommercial = typeof key === 'string' && key.toLowerCase() === 'non-commercial-and-evaluation';
52803
- const hotVersion = "0.0.0-next-7b93b7d-20231107";
52803
+ const hotVersion = "0.0.0-next-5f253b5-20231108";
52804
52804
  let keyValidityDate;
52805
52805
  let consoleMessageState = 'invalid';
52806
52806
  let domMessageState = 'invalid';
@@ -68654,6 +68654,8 @@ class CellCoords {
68654
68654
  */
68655
68655
  (0, _defineProperty2.default)(this, "col", null);
68656
68656
  /**
68657
+ * A flag which determines if the coordinates run in RTL mode.
68658
+ *
68657
68659
  * @type {boolean}
68658
68660
  */
68659
68661
  _classPrivateFieldInitSpec(this, _isRtl, {
@@ -68714,17 +68716,17 @@ class CellCoords {
68714
68716
  }
68715
68717
 
68716
68718
  /**
68717
- * Checks if another set of coordinates (`cellCoords`)
68719
+ * Checks if another set of coordinates (`coords`)
68718
68720
  * is equal to the coordinates in your `CellCoords` instance.
68719
68721
  *
68720
- * @param {CellCoords} cellCoords Coordinates to check.
68722
+ * @param {CellCoords} coords Coordinates to check.
68721
68723
  * @returns {boolean}
68722
68724
  */
68723
- isEqual(cellCoords) {
68724
- if (cellCoords === this) {
68725
+ isEqual(coords) {
68726
+ if (coords === this) {
68725
68727
  return true;
68726
68728
  }
68727
- return this.row === cellCoords.row && this.col === cellCoords.col;
68729
+ return this.row === coords.row && this.col === coords.col;
68728
68730
  }
68729
68731
 
68730
68732
  /**
@@ -83062,7 +83064,6 @@ __webpack_require__(273);
83062
83064
  var _defineProperty2 = _interopRequireDefault(__webpack_require__(452));
83063
83065
  var _classPrivateFieldSet2 = _interopRequireDefault(__webpack_require__(467));
83064
83066
  var _classPrivateFieldGet2 = _interopRequireDefault(__webpack_require__(464));
83065
- var _src = __webpack_require__(478);
83066
83067
  var _highlight = _interopRequireWildcard(__webpack_require__(579));
83067
83068
  var _range = _interopRequireDefault(__webpack_require__(590));
83068
83069
  var _object = __webpack_require__(448);
@@ -83612,6 +83613,18 @@ class Selection {
83612
83613
  return this.settings.fillHandle && !this.tableProps.isEditorOpened() && !this.isMultiple();
83613
83614
  }
83614
83615
 
83616
+ /**
83617
+ * Returns `true` if the cell coordinates are visible (renderable).
83618
+ *
83619
+ * @private
83620
+ * @param {CellCoords} coords The cell coordinates to check.
83621
+ * @returns {boolean}
83622
+ */
83623
+ isCellVisible(coords) {
83624
+ const renderableCoords = this.tableProps.visualToRenderableCoords(coords);
83625
+ return renderableCoords.row !== null && renderableCoords.col !== null;
83626
+ }
83627
+
83615
83628
  /**
83616
83629
  * Returns `true` if the area corner should be visible.
83617
83630
  *
@@ -83714,6 +83727,7 @@ class Selection {
83714
83727
  * @returns {boolean} Returns `true` if selection was successful, `false` otherwise.
83715
83728
  */
83716
83729
  selectCells(selectionRanges) {
83730
+ var _this2 = this;
83717
83731
  const selectionType = (0, _utils.detectSelectionType)(selectionRanges);
83718
83732
  if (selectionType === _utils.SELECTION_TYPE_EMPTY) {
83719
83733
  return false;
@@ -83723,6 +83737,12 @@ class Selection {
83723
83737
  columnEnd/columnPropEnd]]) or as an array of CellRange objects.`);
83724
83738
  }
83725
83739
  const selectionSchemaNormalizer = (0, _utils.normalizeSelectionFactory)(selectionType, {
83740
+ createCellCoords: function () {
83741
+ return _this2.tableProps.createCellCoords(...arguments);
83742
+ },
83743
+ createCellRange: function () {
83744
+ return _this2.tableProps.createCellRange(...arguments);
83745
+ },
83726
83746
  propToCol: prop => this.tableProps.propToCol(prop),
83727
83747
  keepDirection: true
83728
83748
  });
@@ -83775,9 +83795,9 @@ class Selection {
83775
83795
  const countCols = this.tableProps.countCols();
83776
83796
  const countColHeaders = this.tableProps.countColHeaders();
83777
83797
  const columnHeaderLastIndex = countColHeaders === 0 ? 0 : -countColHeaders;
83778
- const fromCoords = new _src.CellCoords(columnHeaderLastIndex, start);
83779
- const toCoords = new _src.CellCoords(countRows - 1, end);
83780
- const isValid = new _src.CellRange(fromCoords, fromCoords, toCoords).isValid({
83798
+ const fromCoords = this.tableProps.createCellCoords(columnHeaderLastIndex, start);
83799
+ const toCoords = this.tableProps.createCellCoords(countRows - 1, end);
83800
+ const isValid = this.tableProps.createCellRange(fromCoords, fromCoords, toCoords).isValid({
83781
83801
  countRows,
83782
83802
  countCols,
83783
83803
  countRowHeaders: 0,
@@ -83820,9 +83840,9 @@ class Selection {
83820
83840
  const countCols = this.tableProps.countCols();
83821
83841
  const countRowHeaders = this.tableProps.countRowHeaders();
83822
83842
  const rowHeaderLastIndex = countRowHeaders === 0 ? 0 : -countRowHeaders;
83823
- const fromCoords = new _src.CellCoords(startRow, rowHeaderLastIndex);
83824
- const toCoords = new _src.CellCoords(endRow, countCols - 1);
83825
- const isValid = new _src.CellRange(fromCoords, fromCoords, toCoords).isValid({
83843
+ const fromCoords = this.tableProps.createCellCoords(startRow, rowHeaderLastIndex);
83844
+ const toCoords = this.tableProps.createCellCoords(endRow, countCols - 1);
83845
+ const isValid = this.tableProps.createCellRange(fromCoords, fromCoords, toCoords).isValid({
83826
83846
  countRows,
83827
83847
  countCols,
83828
83848
  countRowHeaders,
@@ -85413,7 +85433,9 @@ function detectSelectionType(selectionRanges) {
85413
85433
  * Factory function designed for normalization data schema from different data structures of the selection ranges.
85414
85434
  *
85415
85435
  * @param {number} type Selection type which will be processed.
85416
- * @param {object} [options] The normalization options.
85436
+ * @param {object} options The normalization options.
85437
+ * @param {function(number, number): CellCoords} options.createCellCoords The factory function that returns an instance of the `CellCoords` class.
85438
+ * @param {function(CellCoords, CellCoords, CellCoords): CellRange} options.createCellRange The factory function that returns an instance of the `CellRange` class.
85417
85439
  * @param {boolean} [options.keepDirection=false] If `true`, the coordinates which contain the direction of the
85418
85440
  * selected cells won't be changed. Otherwise, the selection will be
85419
85441
  * normalized to values starting from top-left to bottom-right.
@@ -85423,6 +85445,8 @@ function detectSelectionType(selectionRanges) {
85423
85445
  */
85424
85446
  function normalizeSelectionFactory(type) {
85425
85447
  let {
85448
+ createCellCoords,
85449
+ createCellRange,
85426
85450
  keepDirection = false,
85427
85451
  propToCol
85428
85452
  } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
@@ -85459,9 +85483,9 @@ function normalizeSelectionFactory(type) {
85459
85483
  rowEnd = Math.max(origRowStart, origRowEnd);
85460
85484
  columnEnd = Math.max(origColumnStart, origColumnEnd);
85461
85485
  }
85462
- const from = new _src.CellCoords(rowStart, columnStart);
85463
- const to = new _src.CellCoords(rowEnd, columnEnd);
85464
- return new _src.CellRange(from, from, to);
85486
+ const from = createCellCoords(rowStart, columnStart);
85487
+ const to = createCellCoords(rowEnd, columnEnd);
85488
+ return createCellRange(from, from, to);
85465
85489
  };
85466
85490
  }
85467
85491
 
@@ -85471,22 +85495,25 @@ function normalizeSelectionFactory(type) {
85471
85495
  * contains an array of arrays. The single item contains at index 0 visual column index from the selection was
85472
85496
  * started and at index 1 distance as a count of selected columns.
85473
85497
  *
85474
- * @param {Array[]|CellRange[]} selectionRanges Selection ranges produced by Handsontable.
85498
+ * @param {Core} hotInstance The Handsontable instance.
85475
85499
  * @returns {Array[]} Returns an array of arrays with ranges defines in that schema:
85476
85500
  * `[[visualColumnStart, distance], [visualColumnStart, distance], ...]`.
85477
85501
  * The column distances are always created starting from the left (zero index) to the
85478
85502
  * right (the latest column index).
85479
85503
  */
85480
- function transformSelectionToColumnDistance(selectionRanges) {
85481
- const selectionType = detectSelectionType(selectionRanges);
85504
+ function transformSelectionToColumnDistance(hotInstance) {
85505
+ const selectionType = detectSelectionType(hotInstance.getSelected());
85482
85506
  if (selectionType === SELECTION_TYPE_UNRECOGNIZED || selectionType === SELECTION_TYPE_EMPTY) {
85483
85507
  return [];
85484
85508
  }
85485
- const selectionSchemaNormalizer = normalizeSelectionFactory(selectionType);
85509
+ const selectionSchemaNormalizer = normalizeSelectionFactory(selectionType, {
85510
+ createCellCoords: hotInstance._createCellCoords.bind(hotInstance),
85511
+ createCellRange: hotInstance._createCellRange.bind(hotInstance)
85512
+ });
85486
85513
  const unorderedIndexes = new Set();
85487
85514
 
85488
85515
  // Iterate through all ranges and collect all column indexes which are not saved yet.
85489
- (0, _array.arrayEach)(selectionRanges, selection => {
85516
+ (0, _array.arrayEach)(hotInstance.getSelected(), selection => {
85490
85517
  const {
85491
85518
  from,
85492
85519
  to
@@ -85519,22 +85546,25 @@ function transformSelectionToColumnDistance(selectionRanges) {
85519
85546
  * contains an array of arrays. The single item contains at index 0 visual column index from the selection was
85520
85547
  * started and at index 1 distance as a count of selected columns.
85521
85548
  *
85522
- * @param {Array[]|CellRange[]} selectionRanges Selection ranges produced by Handsontable.
85549
+ * @param {Core} hotInstance The Handsontable instance.
85523
85550
  * @returns {Array[]} Returns an array of arrays with ranges defines in that schema:
85524
85551
  * `[[visualColumnStart, distance], [visualColumnStart, distance], ...]`.
85525
85552
  * The column distances are always created starting from the left (zero index) to the
85526
85553
  * right (the latest column index).
85527
85554
  */
85528
- function transformSelectionToRowDistance(selectionRanges) {
85529
- const selectionType = detectSelectionType(selectionRanges);
85555
+ function transformSelectionToRowDistance(hotInstance) {
85556
+ const selectionType = detectSelectionType(hotInstance.getSelected());
85530
85557
  if (selectionType === SELECTION_TYPE_UNRECOGNIZED || selectionType === SELECTION_TYPE_EMPTY) {
85531
85558
  return [];
85532
85559
  }
85533
- const selectionSchemaNormalizer = normalizeSelectionFactory(selectionType);
85560
+ const selectionSchemaNormalizer = normalizeSelectionFactory(selectionType, {
85561
+ createCellCoords: hotInstance._createCellCoords.bind(hotInstance),
85562
+ createCellRange: hotInstance._createCellRange.bind(hotInstance)
85563
+ });
85534
85564
  const unorderedIndexes = new Set();
85535
85565
 
85536
85566
  // Iterate through all ranges and collect all column indexes which are not saved yet.
85537
- (0, _array.arrayEach)(selectionRanges, selection => {
85567
+ (0, _array.arrayEach)(hotInstance.getSelected(), selection => {
85538
85568
  const {
85539
85569
  from,
85540
85570
  to
@@ -94782,7 +94812,7 @@ const createShortcutManager = _ref => {
94782
94812
  captureCtrl,
94783
94813
  forwardToContext
94784
94814
  } = shortcuts[index];
94785
- if (runOnlyIf(event) !== false) {
94815
+ if (runOnlyIf(event) === true) {
94786
94816
  isCtrlKeySilenced = captureCtrl;
94787
94817
  isExecutionCancelled = callback(event, keys) === false;
94788
94818
  isCtrlKeySilenced = false;
@@ -102696,9 +102726,8 @@ class BasePlugin {
102696
102726
  * Disable plugin for this Handsontable instance.
102697
102727
  */
102698
102728
  disablePlugin() {
102699
- if (this.eventManager) {
102700
- this.eventManager.clear();
102701
- }
102729
+ var _this$eventManager;
102730
+ (_this$eventManager = this.eventManager) === null || _this$eventManager === void 0 || _this$eventManager.clear();
102702
102731
  this.clearHooks();
102703
102732
  this.enabled = false;
102704
102733
  }
@@ -102792,9 +102821,8 @@ class BasePlugin {
102792
102821
  * Destroy plugin.
102793
102822
  */
102794
102823
  destroy() {
102795
- if (this.eventManager) {
102796
- this.eventManager.destroy();
102797
- }
102824
+ var _this$eventManager2;
102825
+ (_this$eventManager2 = this.eventManager) === null || _this$eventManager2 === void 0 || _this$eventManager2.destroy();
102798
102826
  this.clearHooks();
102799
102827
  (0, _object.objectEach)(this, (value, property) => {
102800
102828
  if (property !== 'hot') {
@@ -103648,6 +103676,7 @@ class Autofill extends _base.BasePlugin {
103648
103676
  /**
103649
103677
  * Specifies if can insert new rows if needed.
103650
103678
  *
103679
+ * @private
103651
103680
  * @type {boolean}
103652
103681
  */
103653
103682
  (0, _defineProperty2.default)(this, "autoInsertRow", false);
@@ -105958,7 +105987,8 @@ class ColumnSorting extends _base.BasePlugin {
105958
105987
  },
105959
105988
  runOnlyIf: () => {
105960
105989
  var _this$hot$getSelected;
105961
- return (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight.isHeader();
105990
+ const highlight = (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight;
105991
+ return highlight && this.hot.selection.isCellVisible(highlight) && highlight.isHeader();
105962
105992
  },
105963
105993
  group: SHORTCUTS_GROUP
105964
105994
  });
@@ -110302,7 +110332,7 @@ function removeColumnItem() {
110302
110332
  return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_REMOVE_COLUMN, pluralForm);
110303
110333
  },
110304
110334
  callback() {
110305
- this.alter('remove_col', (0, _utils.transformSelectionToColumnDistance)(this.getSelected()), null, 'ContextMenu.removeColumn');
110335
+ this.alter('remove_col', (0, _utils.transformSelectionToColumnDistance)(this), null, 'ContextMenu.removeColumn');
110306
110336
  },
110307
110337
  disabled() {
110308
110338
  if (!this.isColumnModificationAllowed()) {
@@ -110368,7 +110398,7 @@ function removeRowItem() {
110368
110398
  callback() {
110369
110399
  // TODO: Please keep in mind that below `1` may be improper. The table's way of work, before change `f1747b3912ea3b21fe423fd102ca94c87db81379` was restored.
110370
110400
  // There is still problem when removing more than one row.
110371
- this.alter('remove_row', (0, _utils.transformSelectionToRowDistance)(this.getSelected()), 1, 'ContextMenu.removeRow');
110401
+ this.alter('remove_row', (0, _utils.transformSelectionToRowDistance)(this), 1, 'ContextMenu.removeRow');
110372
110402
  },
110373
110403
  disabled() {
110374
110404
  const range = this.getSelectedRangeLast();
@@ -110923,7 +110953,11 @@ class ContextMenu extends _base.BasePlugin {
110923
110953
  above: -rect.height
110924
110954
  });
110925
110955
  },
110926
- runOnlyIf: () => this.hot.getSelectedRangeLast() && !this.menu.isOpened(),
110956
+ runOnlyIf: () => {
110957
+ var _this$hot$getSelected;
110958
+ const highlight = (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight;
110959
+ return highlight && this.hot.selection.isCellVisible(highlight) && !this.menu.isOpened();
110960
+ },
110927
110961
  group: SHORTCUTS_GROUP
110928
110962
  });
110929
110963
  }
@@ -114697,7 +114731,10 @@ class CustomBorders extends _base.BasePlugin {
114697
114731
  normBorder = (0, _utils.normalizeBorder)(borderObject);
114698
114732
  }
114699
114733
  const selectionType = (0, _selection.detectSelectionType)(selectionRanges);
114700
- const selectionSchemaNormalizer = (0, _selection.normalizeSelectionFactory)(selectionType);
114734
+ const selectionSchemaNormalizer = (0, _selection.normalizeSelectionFactory)(selectionType, {
114735
+ createCellCoords: this.hot._createCellCoords.bind(this.hot),
114736
+ createCellRange: this.hot._createCellRange.bind(this.hot)
114737
+ });
114701
114738
  (0, _array.arrayEach)(selectionRanges, selection => {
114702
114739
  selectionSchemaNormalizer(selection).forAll((row, col) => {
114703
114740
  (0, _array.arrayEach)(borderKeys, borderKey => {
@@ -114740,7 +114777,10 @@ class CustomBorders extends _base.BasePlugin {
114740
114777
  return this.savedBorders;
114741
114778
  }
114742
114779
  const selectionType = (0, _selection.detectSelectionType)(selectionRanges);
114743
- const selectionSchemaNormalizer = (0, _selection.normalizeSelectionFactory)(selectionType);
114780
+ const selectionSchemaNormalizer = (0, _selection.normalizeSelectionFactory)(selectionType, {
114781
+ createCellCoords: this.hot._createCellCoords.bind(this.hot),
114782
+ createCellRange: this.hot._createCellRange.bind(this.hot)
114783
+ });
114744
114784
  const selectedBorders = [];
114745
114785
  (0, _array.arrayEach)(selectionRanges, selection => {
114746
114786
  selectionSchemaNormalizer(selection).forAll((row, col) => {
@@ -116315,7 +116355,8 @@ class DropdownMenu extends _base.BasePlugin {
116315
116355
  callback,
116316
116356
  runOnlyIf: () => {
116317
116357
  var _this$hot$getSelected;
116318
- return ((_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight.isHeader()) && !this.menu.isOpened();
116358
+ const highlight = (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight;
116359
+ return highlight && this.hot.selection.isCellVisible(highlight) && highlight.isHeader() && !this.menu.isOpened();
116319
116360
  },
116320
116361
  captureCtrl: true,
116321
116362
  group: SHORTCUTS_GROUP
@@ -116324,7 +116365,8 @@ class DropdownMenu extends _base.BasePlugin {
116324
116365
  callback,
116325
116366
  runOnlyIf: () => {
116326
116367
  var _this$hot$getSelected2;
116327
- return ((_this$hot$getSelected2 = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected2 === void 0 ? void 0 : _this$hot$getSelected2.highlight.isCell()) && !this.menu.isOpened();
116368
+ const highlight = (_this$hot$getSelected2 = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected2 === void 0 ? void 0 : _this$hot$getSelected2.highlight;
116369
+ return highlight && this.hot.selection.isCellVisible(highlight) && highlight.isCell() && !this.menu.isOpened();
116328
116370
  },
116329
116371
  group: SHORTCUTS_GROUP
116330
116372
  }]);
@@ -132408,7 +132450,8 @@ class MultiColumnSorting extends _columnSorting.ColumnSorting {
132408
132450
  },
132409
132451
  runOnlyIf: () => {
132410
132452
  var _this$hot$getSelected;
132411
- return (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight.isHeader();
132453
+ const highlight = (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight;
132454
+ return highlight && this.hot.selection.isCellVisible(highlight) && highlight.isHeader();
132412
132455
  },
132413
132456
  group: SHORTCUTS_GROUP
132414
132457
  });
@@ -136212,7 +136255,6 @@ exports.PLUGIN_PRIORITY = PLUGIN_PRIORITY;
136212
136255
  const SHORTCUTS_GROUP = PLUGIN_KEY;
136213
136256
 
136214
136257
  /* eslint-disable jsdoc/require-description-complete-sentence */
136215
-
136216
136258
  /**
136217
136259
  * Error message for the wrong data type error.
136218
136260
  */
@@ -136383,6 +136425,8 @@ class NestedRows extends _base.BasePlugin {
136383
136425
  */
136384
136426
  (0, _defineProperty2.default)(this, "collapsedRowsMap", null);
136385
136427
  /**
136428
+ * Allows skipping the render cycle if set as `true`.
136429
+ *
136386
136430
  * @type {boolean}
136387
136431
  */
136388
136432
  _classPrivateFieldInitSpec(this, _skipRender, {
@@ -136390,6 +136434,8 @@ class NestedRows extends _base.BasePlugin {
136390
136434
  value: false
136391
136435
  });
136392
136436
  /**
136437
+ * Allows skipping the internal Core methods call if set as `true`.
136438
+ *
136393
136439
  * @type {boolean}
136394
136440
  */
136395
136441
  _classPrivateFieldInitSpec(this, _skipCoreAPIModifiers, {
@@ -136583,7 +136629,8 @@ class NestedRows extends _base.BasePlugin {
136583
136629
  },
136584
136630
  runOnlyIf: () => {
136585
136631
  var _this$hot$getSelected;
136586
- return (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight.isHeader();
136632
+ const highlight = (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight;
136633
+ return highlight && this.hot.selection.isCellVisible(highlight) && highlight.isHeader();
136587
136634
  },
136588
136635
  group: SHORTCUTS_GROUP
136589
136636
  });
@@ -136600,6 +136647,8 @@ class NestedRows extends _base.BasePlugin {
136600
136647
  /**
136601
136648
  * Enable the modify hook skipping flag - allows retrieving the data from Handsontable without this plugin's
136602
136649
  * modifications.
136650
+ *
136651
+ * @private
136603
136652
  */
136604
136653
  disableCoreAPIModifiers() {
136605
136654
  (0, _classPrivateFieldSet2.default)(this, _skipCoreAPIModifiers, true);
@@ -136607,6 +136656,8 @@ class NestedRows extends _base.BasePlugin {
136607
136656
 
136608
136657
  /**
136609
136658
  * Disable the modify hook skipping flag.
136659
+ *
136660
+ * @private
136610
136661
  */
136611
136662
  enableCoreAPIModifiers() {
136612
136663
  (0, _classPrivateFieldSet2.default)(this, _skipCoreAPIModifiers, false);
@@ -136678,7 +136729,7 @@ function _onAfterGetRowHeader2(row, TH) {
136678
136729
  this.headersUI.appendLevelIndicators(row, TH);
136679
136730
  }
136680
136731
  function _onModifyRowHeaderWidth2(rowHeaderWidth) {
136681
- return this.headersUI.rowHeaderWidthCache || rowHeaderWidth;
136732
+ return Math.max(this.headersUI.rowHeaderWidthCache, rowHeaderWidth);
136682
136733
  }
136683
136734
  function _onAfterRemoveRow2(index, amount, logicRows, source) {
136684
136735
  if (source === this.pluginName) {
@@ -136688,7 +136739,7 @@ function _onAfterRemoveRow2(index, amount, logicRows, source) {
136688
136739
  (0, _classPrivateFieldSet2.default)(this, _skipRender, false);
136689
136740
  this.headersUI.updateRowHeaderWidth();
136690
136741
  this.collapsingUI.collapsedRowsStash.applyStash();
136691
- }, 0);
136742
+ });
136692
136743
  }
136693
136744
  function _onBeforeRemoveRow2(index, amount, physicalRows) {
136694
136745
  const modifiedPhysicalRows = Array.from(physicalRows.reduce((removedRows, physicalIndex) => {
@@ -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-7b93b7d-20231107
29
- * Release date: 31/08/2023 (built at 07/11/2023 14:25:18)
28
+ * Version: 0.0.0-next-5f253b5-20231108
29
+ * Release date: 31/08/2023 (built at 08/11/2023 12:10:54)
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,.handsontable th:nth-child(2){border-left:1px solid #ccc}[dir=rtl].handsontable td:first-of-type,[dir=rtl].handsontable th:first-child,[dir=rtl].handsontable th:nth-child(2){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)~.handsontable tbody tr th,.ht_master:not(.innerBorderInlineStart):not(.emptyColumns)~.handsontable:not(.ht_clone_top) thead tr th:first-child{border-left:1px solid #ccc;border-right-width:0}[dir=rtl].ht_master:not(.innerBorderInlineStart):not(.emptyColumns)~.handsontable tbody tr th,[dir=rtl].ht_master:not(.innerBorderInlineStart):not(.emptyColumns)~.handsontable:not(.ht_clone_top) 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 thead,.handsontable .ht_master thead,.handsontable .ht_master tr th{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 .columnSorting{position:relative}.handsontable .columnSorting.sortAction:hover{cursor:pointer;text-decoration:underline}.handsontable span.colHeader.columnSorting .columnSortingIndicator: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 .columnSortingIndicator:before{background-position-x:left;left:-9px;padding-left:0;padding-right:8px;right:unset}.handsontable span.colHeader.columnSorting.ascending .columnSortingIndicator:before{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAoCAMAAADJ7yrpAAAAKlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKE86IAAAADXRSTlMABBEmRGprlJW72e77tTkTKwAAAFNJREFUeAHtzjkSgCAUBNHPgsoy97+ulGXRqJE5L+xkxoYt2UdsLb5bqFINz+aLuuLn5rIu2RkO3fZpWENimNgiw6iBYRTPMLJjGFxQZ1hxxb/xBI1qC8k39CdKAAAAAElFTkSuQmCC)}.handsontable span.colHeader.columnSorting.descending .columnSortingIndicator: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 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;bottom:-100%\9;content:"";left:0;position:absolute;right:0;top:0}@media (-ms-high-contrast:none),screen and (-ms-high-contrast:active){.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{bottom:-100%}}.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;position:absolute;width:auto}.htSelectEditor:focus{outline:none}.handsontable .htDimmed{color:#777}.handsontable .htSubmenu{position:relative}.handsontable .htSubmenu .submenuIndicator:after{color:#777;content:"▶";font-size:9px;position:absolute;right:5px}[dir=rtl].handsontable .htSubmenu .submenuIndicator:after{content:""}[dir=rtl].handsontable .htSubmenu .submenuIndicator: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 .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.mobile,.handsontable.mobile .wtHolder{-webkit-touch-callout:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-overflow-scrolling:touch;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.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