handsontable 0.0.0-next-20342c9-20241216 → 0.0.0-next-f26c313-20241217

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.

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 = "16/12/2024 15:02:01";
49
- Handsontable.version = "0.0.0-next-20342c9-20241216";
48
+ Handsontable.buildDate = "17/12/2024 09:08:00";
49
+ Handsontable.version = "0.0.0-next-f26c313-20241217";
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 = "16/12/2024 15:02:06";
39
- Handsontable.version = "0.0.0-next-20342c9-20241216";
38
+ Handsontable.buildDate = "17/12/2024 09:08:06";
39
+ Handsontable.version = "0.0.0-next-f26c313-20241217";
40
40
  Handsontable.languages = {
41
41
  dictionaryKeys,
42
42
  getLanguageDictionary,
@@ -8,7 +8,9 @@ const CELL_TYPE = exports.CELL_TYPE = 'dropdown';
8
8
  const DropdownCellType = exports.DropdownCellType = {
9
9
  CELL_TYPE,
10
10
  editor: _dropdownEditor.DropdownEditor,
11
- // displays small gray arrow on right side of the cell
12
11
  renderer: _dropdownRenderer.dropdownRenderer,
13
- validator: _dropdownValidator.dropdownValidator
12
+ // displays small gray arrow on right side of the cell
13
+ validator: _dropdownValidator.dropdownValidator,
14
+ filter: false,
15
+ strict: true
14
16
  };
@@ -5,7 +5,9 @@ export const CELL_TYPE = 'dropdown';
5
5
  export const DropdownCellType = {
6
6
  CELL_TYPE,
7
7
  editor: DropdownEditor,
8
- // displays small gray arrow on right side of the cell
9
8
  renderer: dropdownRenderer,
10
- validator: dropdownValidator
9
+ // displays small gray arrow on right side of the cell
10
+ validator: dropdownValidator,
11
+ filter: false,
12
+ strict: true
11
13
  };
@@ -2992,11 +2992,13 @@ var _default = () => {
2992
2992
  *
2993
2993
  * You can set the `mergeCells` option to one of the following:
2994
2994
  *
2995
- * | Setting | Description |
2996
- * | ------------------- | --------------------------------------------------------------------------------------------------- |
2997
- * | `true` | Enable the [`MergeCells`](@/api/mergeCells.md) plugin |
2998
- * | `false` | Disable the [`MergeCells`](@/api/mergeCells.md) plugin |
2999
- * | An array of objects | - Enable the [`MergeCells`](@/api/mergeCells.md) plugin<br>- Merge specific cells at initialization |
2995
+ * | Setting | Description |
2996
+ * | --------------------- | --------------------------------------------------------------------------------------------------- |
2997
+ * | `true` | Enable the [`MergeCells`](@/api/mergeCells.md) plugin |
2998
+ * | `false` | Disable the [`MergeCells`](@/api/mergeCells.md) plugin |
2999
+ * | An array of objects | - Enable the [`MergeCells`](@/api/mergeCells.md) plugin<br>- Merge specific cells at initialization |
3000
+ * | { virtualized: true } | Enable the [`MergeCells`](@/api/mergeCells.md) plugin with enabled virtualization mode |
3001
+ *
3000
3002
  *
3001
3003
  * To merge specific cells at Handsontable's initialization,
3002
3004
  * set the `mergeCells` option to an array of objects, with the following properties:
@@ -3031,6 +3033,20 @@ var _default = () => {
3031
3033
  * // merge cells from cell (5,6) to cell (3,3)
3032
3034
  * {row: 5, col: 6, rowspan: 3, colspan: 3}
3033
3035
  * ],
3036
+ *
3037
+ * // enable the `MergeCells` plugin with enabled virtualization mode
3038
+ * // and merge specific cells at initialization
3039
+ * mergeCells: {
3040
+ * virtualized: true,
3041
+ * cells: [
3042
+ * // merge cells from cell (1,1) to cell (3,3)
3043
+ * {row: 1, col: 1, rowspan: 3, colspan: 3},
3044
+ * // merge cells from cell (3,4) to cell (2,2)
3045
+ * {row: 3, col: 4, rowspan: 2, colspan: 2},
3046
+ * // merge cells from cell (5,6) to cell (3,3)
3047
+ * {row: 5, col: 6, rowspan: 3, colspan: 3}
3048
+ * ],
3049
+ * },
3034
3050
  * ```
3035
3051
  */
3036
3052
  mergeCells: false,
@@ -2989,11 +2989,13 @@ export default () => {
2989
2989
  *
2990
2990
  * You can set the `mergeCells` option to one of the following:
2991
2991
  *
2992
- * | Setting | Description |
2993
- * | ------------------- | --------------------------------------------------------------------------------------------------- |
2994
- * | `true` | Enable the [`MergeCells`](@/api/mergeCells.md) plugin |
2995
- * | `false` | Disable the [`MergeCells`](@/api/mergeCells.md) plugin |
2996
- * | An array of objects | - Enable the [`MergeCells`](@/api/mergeCells.md) plugin<br>- Merge specific cells at initialization |
2992
+ * | Setting | Description |
2993
+ * | --------------------- | --------------------------------------------------------------------------------------------------- |
2994
+ * | `true` | Enable the [`MergeCells`](@/api/mergeCells.md) plugin |
2995
+ * | `false` | Disable the [`MergeCells`](@/api/mergeCells.md) plugin |
2996
+ * | An array of objects | - Enable the [`MergeCells`](@/api/mergeCells.md) plugin<br>- Merge specific cells at initialization |
2997
+ * | { virtualized: true } | Enable the [`MergeCells`](@/api/mergeCells.md) plugin with enabled virtualization mode |
2998
+ *
2997
2999
  *
2998
3000
  * To merge specific cells at Handsontable's initialization,
2999
3001
  * set the `mergeCells` option to an array of objects, with the following properties:
@@ -3028,6 +3030,20 @@ export default () => {
3028
3030
  * // merge cells from cell (5,6) to cell (3,3)
3029
3031
  * {row: 5, col: 6, rowspan: 3, colspan: 3}
3030
3032
  * ],
3033
+ *
3034
+ * // enable the `MergeCells` plugin with enabled virtualization mode
3035
+ * // and merge specific cells at initialization
3036
+ * mergeCells: {
3037
+ * virtualized: true,
3038
+ * cells: [
3039
+ * // merge cells from cell (1,1) to cell (3,3)
3040
+ * {row: 1, col: 1, rowspan: 3, colspan: 3},
3041
+ * // merge cells from cell (3,4) to cell (2,2)
3042
+ * {row: 3, col: 4, rowspan: 2, colspan: 2},
3043
+ * // merge cells from cell (5,6) to cell (3,3)
3044
+ * {row: 5, col: 6, rowspan: 3, colspan: 3}
3045
+ * ],
3046
+ * },
3031
3047
  * ```
3032
3048
  */
3033
3049
  mergeCells: false,
@@ -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-20342c9-20241216
29
- * Release date: 16/12/2024 (built at 16/12/2024 15:02:27)
28
+ * Version: 0.0.0-next-f26c313-20241217
29
+ * Release date: 16/12/2024 (built at 17/12/2024 09:08:29)
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-20342c9-20241216
29
- * Release date: 16/12/2024 (built at 16/12/2024 15:02:27)
28
+ * Version: 0.0.0-next-f26c313-20241217
29
+ * Release date: 16/12/2024 (built at 17/12/2024 09:08:29)
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-20342c9-20241216
29
- * Release date: 16/12/2024 (built at 16/12/2024 15:02:10)
28
+ * Version: 0.0.0-next-f26c313-20241217
29
+ * Release date: 16/12/2024 (built at 17/12/2024 09:08:11)
30
30
  */
31
31
  (function webpackUniversalModuleDefinition(root, factory) {
32
32
  if(typeof exports === 'object' && typeof module === 'object')
@@ -42676,8 +42676,8 @@ Handsontable.hooks = _hooks.Hooks.getSingleton();
42676
42676
  Handsontable.CellCoords = _src.CellCoords;
42677
42677
  Handsontable.CellRange = _src.CellRange;
42678
42678
  Handsontable.packageName = 'handsontable';
42679
- Handsontable.buildDate = "16/12/2024 15:02:10";
42680
- Handsontable.version = "0.0.0-next-20342c9-20241216";
42679
+ Handsontable.buildDate = "17/12/2024 09:08:11";
42680
+ Handsontable.version = "0.0.0-next-f26c313-20241217";
42681
42681
  Handsontable.languages = {
42682
42682
  dictionaryKeys: _registry.dictionaryKeys,
42683
42683
  getLanguageDictionary: _registry.getLanguageDictionary,
@@ -53962,7 +53962,7 @@ const domMessages = {
53962
53962
  function _injectProductInfo(key, element) {
53963
53963
  const hasValidType = !isEmpty(key);
53964
53964
  const isNonCommercial = typeof key === 'string' && key.toLowerCase() === 'non-commercial-and-evaluation';
53965
- const hotVersion = "0.0.0-next-20342c9-20241216";
53965
+ const hotVersion = "0.0.0-next-f26c313-20241217";
53966
53966
  let keyValidityDate;
53967
53967
  let consoleMessageState = 'invalid';
53968
53968
  let domMessageState = 'invalid';
@@ -68429,6 +68429,7 @@ var _mouseDown = /*#__PURE__*/new WeakMap();
68429
68429
  var _table = /*#__PURE__*/new WeakMap();
68430
68430
  var _lastWidth = /*#__PURE__*/new WeakMap();
68431
68431
  var _lastHeight = /*#__PURE__*/new WeakMap();
68432
+ var _mouseDownLastPos = /*#__PURE__*/new WeakMap();
68432
68433
  var _TableView_brand = /*#__PURE__*/new WeakSet();
68433
68434
  class TableView {
68434
68435
  /**
@@ -68540,6 +68541,12 @@ class TableView {
68540
68541
  * @type {number}
68541
68542
  */
68542
68543
  _classPrivateFieldInitSpec(this, _lastHeight, 0);
68544
+ /**
68545
+ * The last mouse position of the mousedown event.
68546
+ *
68547
+ * @type {{ x: number, y: number } | null}
68548
+ */
68549
+ _classPrivateFieldInitSpec(this, _mouseDownLastPos, null);
68543
68550
  this.hot = hotInstance;
68544
68551
  this.eventManager = new _eventManager.default(this.hot);
68545
68552
  this.settings = this.hot.getSettings();
@@ -69185,6 +69192,10 @@ class TableView {
69185
69192
  this.hot.listen();
69186
69193
  this.activeWt = wt;
69187
69194
  _classPrivateFieldSet(_mouseDown, this, true);
69195
+ _classPrivateFieldSet(_mouseDownLastPos, this, {
69196
+ x: event.clientX,
69197
+ y: event.clientY
69198
+ });
69188
69199
  this.hot.runHooks('beforeOnCellMouseDown', event, visualCoords, TD, controller);
69189
69200
  if ((0, _event.isImmediatePropagationStopped)(event)) {
69190
69201
  return;
@@ -69234,7 +69245,11 @@ class TableView {
69234
69245
  if ((0, _event.isImmediatePropagationStopped)(event)) {
69235
69246
  return;
69236
69247
  }
69237
- if (_classPrivateFieldGet(_mouseDown, this)) {
69248
+
69249
+ // Ignore mouseover events when the mouse has not moved. This solves an issue (#dev-1479) where
69250
+ // column resizing triggered by the long text in the cell causes the mouseover event to be fired,
69251
+ // thus selecting multiple cells with no user intention.
69252
+ if (_classPrivateFieldGet(_mouseDown, this) && (!_classPrivateFieldGet(_mouseDownLastPos, this) || _classPrivateFieldGet(_mouseDownLastPos, this).x !== event.clientX || _classPrivateFieldGet(_mouseDownLastPos, this).y !== event.clientY)) {
69238
69253
  (0, _mouseEventHandler.handleMouseEvent)(event, {
69239
69254
  coords: visualCoords,
69240
69255
  selection: this.hot.selection,
@@ -69244,6 +69259,7 @@ class TableView {
69244
69259
  }
69245
69260
  this.hot.runHooks('afterOnCellMouseOver', event, visualCoords, TD);
69246
69261
  this.activeWt = this._wt;
69262
+ _classPrivateFieldSet(_mouseDownLastPos, this, null);
69247
69263
  },
69248
69264
  onCellMouseUp: (event, coords, TD, wt) => {
69249
69265
  const visualCoords = this.translateFromRenderableToVisualCoords(coords);
@@ -93859,11 +93875,13 @@ var _default = () => {
93859
93875
  *
93860
93876
  * You can set the `mergeCells` option to one of the following:
93861
93877
  *
93862
- * | Setting | Description |
93863
- * | ------------------- | --------------------------------------------------------------------------------------------------- |
93864
- * | `true` | Enable the [`MergeCells`](@/api/mergeCells.md) plugin |
93865
- * | `false` | Disable the [`MergeCells`](@/api/mergeCells.md) plugin |
93866
- * | An array of objects | - Enable the [`MergeCells`](@/api/mergeCells.md) plugin<br>- Merge specific cells at initialization |
93878
+ * | Setting | Description |
93879
+ * | --------------------- | --------------------------------------------------------------------------------------------------- |
93880
+ * | `true` | Enable the [`MergeCells`](@/api/mergeCells.md) plugin |
93881
+ * | `false` | Disable the [`MergeCells`](@/api/mergeCells.md) plugin |
93882
+ * | An array of objects | - Enable the [`MergeCells`](@/api/mergeCells.md) plugin<br>- Merge specific cells at initialization |
93883
+ * | { virtualized: true } | Enable the [`MergeCells`](@/api/mergeCells.md) plugin with enabled virtualization mode |
93884
+ *
93867
93885
  *
93868
93886
  * To merge specific cells at Handsontable's initialization,
93869
93887
  * set the `mergeCells` option to an array of objects, with the following properties:
@@ -93898,6 +93916,20 @@ var _default = () => {
93898
93916
  * // merge cells from cell (5,6) to cell (3,3)
93899
93917
  * {row: 5, col: 6, rowspan: 3, colspan: 3}
93900
93918
  * ],
93919
+ *
93920
+ * // enable the `MergeCells` plugin with enabled virtualization mode
93921
+ * // and merge specific cells at initialization
93922
+ * mergeCells: {
93923
+ * virtualized: true,
93924
+ * cells: [
93925
+ * // merge cells from cell (1,1) to cell (3,3)
93926
+ * {row: 1, col: 1, rowspan: 3, colspan: 3},
93927
+ * // merge cells from cell (3,4) to cell (2,2)
93928
+ * {row: 3, col: 4, rowspan: 2, colspan: 2},
93929
+ * // merge cells from cell (5,6) to cell (3,3)
93930
+ * {row: 5, col: 6, rowspan: 3, colspan: 3}
93931
+ * ],
93932
+ * },
93901
93933
  * ```
93902
93934
  */
93903
93935
  mergeCells: false,
@@ -101698,9 +101730,7 @@ class AutocompleteEditor extends _handsontableEditor.HandsontableEditor {
101698
101730
  }
101699
101731
  const orderByRelevanceLength = Array.isArray(orderByRelevance) ? orderByRelevance.length : 0;
101700
101732
  if (filterSetting === false) {
101701
- if (orderByRelevanceLength) {
101702
- highlightIndex = orderByRelevance[0];
101703
- }
101733
+ highlightIndex = orderByRelevanceLength > 0 ? orderByRelevance[0] : 0;
101704
101734
  } else {
101705
101735
  const sorted = [];
101706
101736
  for (let i = 0, choicesCount = choices.length; i < choicesCount; i++) {
@@ -103638,7 +103668,6 @@ exports.__esModule = true;
103638
103668
  __webpack_require__(311);
103639
103669
  __webpack_require__(323);
103640
103670
  var _autocompleteEditor = __webpack_require__(762);
103641
- var _hooks = __webpack_require__(511);
103642
103671
  const EDITOR_TYPE = exports.EDITOR_TYPE = 'dropdown';
103643
103672
 
103644
103673
  /**
@@ -103659,24 +103688,12 @@ class DropdownEditor extends _autocompleteEditor.AutocompleteEditor {
103659
103688
  * @param {object} cellProperties The cell meta object (see {@link Core#getCellMeta}).
103660
103689
  */
103661
103690
  prepare(row, col, prop, td, value, cellProperties) {
103691
+ cellProperties.filter = false;
103692
+ cellProperties.strict = true;
103662
103693
  super.prepare(row, col, prop, td, value, cellProperties);
103663
- this.cellProperties.filter = false;
103664
- this.cellProperties.strict = true;
103665
103694
  }
103666
103695
  }
103667
103696
  exports.DropdownEditor = DropdownEditor;
103668
- _hooks.Hooks.getSingleton().add('beforeValidate', function (value, row, col) {
103669
- const visualColumnIndex = this.propToCol(col);
103670
- if (Number.isInteger(visualColumnIndex)) {
103671
- const cellMeta = this.getCellMeta(row, visualColumnIndex);
103672
- if (cellMeta.editor === DropdownEditor) {
103673
- if (cellMeta.strict === undefined) {
103674
- cellMeta.filter = false;
103675
- cellMeta.strict = true;
103676
- }
103677
- }
103678
- }
103679
- });
103680
103697
 
103681
103698
  /***/ }),
103682
103699
  /* 773 */
@@ -111133,9 +111150,11 @@ const CELL_TYPE = exports.CELL_TYPE = 'dropdown';
111133
111150
  const DropdownCellType = exports.DropdownCellType = {
111134
111151
  CELL_TYPE,
111135
111152
  editor: _dropdownEditor.DropdownEditor,
111136
- // displays small gray arrow on right side of the cell
111137
111153
  renderer: _dropdownRenderer.dropdownRenderer,
111138
- validator: _dropdownValidator.dropdownValidator
111154
+ // displays small gray arrow on right side of the cell
111155
+ validator: _dropdownValidator.dropdownValidator,
111156
+ filter: false,
111157
+ strict: true
111139
111158
  };
111140
111159
 
111141
111160
  /***/ }),
@@ -149196,8 +149215,6 @@ class RowMoveController {
149196
149215
  const rowsLen = rows.length;
149197
149216
  let startRow = 0;
149198
149217
  let endRow = 0;
149199
- let selection = null;
149200
- let lastColIndex = null;
149201
149218
  if (this.movedToCollapsed) {
149202
149219
  let physicalDropIndex = null;
149203
149220
  if (rows[rowsLen - 1] < dropIndex) {
@@ -149216,10 +149233,7 @@ class RowMoveController {
149216
149233
  startRow = dropIndex;
149217
149234
  endRow = startRow + rowsLen - 1;
149218
149235
  }
149219
- selection = this.hot.selection;
149220
- lastColIndex = this.hot.countCols() - 1;
149221
- selection.setRangeStart(this.hot._createCellCoords(startRow, 0));
149222
- selection.setRangeEnd(this.hot._createCellCoords(endRow, lastColIndex), true);
149236
+ this.hot.selectCells([[startRow, 0, endRow, this.hot.countCols() - 1]], false);
149223
149237
  }
149224
149238
 
149225
149239
  // TODO: Reimplementation of function which is inside the `ManualRowMove` plugin.
@@ -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-20342c9-20241216
30
- * Release date: 16/12/2024 (built at 16/12/2024 15:03:01)
29
+ * Version: 0.0.0-next-f26c313-20241217
30
+ * Release date: 16/12/2024 (built at 17/12/2024 09:09:04)
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