handsontable 0.0.0-next-e827e93-20250206 → 0.0.0-next-21f0f43-20250210

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 (41) hide show
  1. package/3rdparty/walkontable/src/calculator/viewportColumns.js +1 -5
  2. package/3rdparty/walkontable/src/calculator/viewportColumns.mjs +1 -5
  3. package/3rdparty/walkontable/src/calculator/viewportRows.js +1 -5
  4. package/3rdparty/walkontable/src/calculator/viewportRows.mjs +1 -5
  5. package/3rdparty/walkontable/src/overlay/inlineStart.js +1 -8
  6. package/3rdparty/walkontable/src/overlay/inlineStart.mjs +1 -8
  7. package/3rdparty/walkontable/src/overlay/top.js +1 -9
  8. package/3rdparty/walkontable/src/overlay/top.mjs +1 -9
  9. package/3rdparty/walkontable/src/renderer/cells.js +4 -1
  10. package/3rdparty/walkontable/src/renderer/cells.mjs +4 -1
  11. package/3rdparty/walkontable/src/renderer/columnHeaders.js +4 -1
  12. package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +4 -1
  13. package/3rdparty/walkontable/src/renderer/rowHeaders.js +3 -0
  14. package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +3 -0
  15. package/3rdparty/walkontable/src/utils/column.js +4 -25
  16. package/3rdparty/walkontable/src/utils/column.mjs +4 -25
  17. package/3rdparty/walkontable/src/utils/row.js +2 -12
  18. package/3rdparty/walkontable/src/utils/row.mjs +2 -12
  19. package/base.js +2 -2
  20. package/base.mjs +2 -2
  21. package/core.js +4 -54
  22. package/core.mjs +4 -54
  23. package/dist/handsontable.css +2 -2
  24. package/dist/handsontable.full.css +2 -2
  25. package/dist/handsontable.full.js +38 -128
  26. package/dist/handsontable.full.min.css +2 -2
  27. package/dist/handsontable.full.min.js +7 -7
  28. package/dist/handsontable.js +38 -128
  29. package/dist/handsontable.min.css +2 -2
  30. package/dist/handsontable.min.js +15 -15
  31. package/helpers/mixed.js +1 -1
  32. package/helpers/mixed.mjs +1 -1
  33. package/package.json +1 -1
  34. package/renderers/textRenderer/textRenderer.js +8 -3
  35. package/renderers/textRenderer/textRenderer.mjs +8 -3
  36. package/styles/handsontable.css +2 -2
  37. package/styles/handsontable.min.css +2 -2
  38. package/styles/ht-theme-horizon.css +2 -2
  39. package/styles/ht-theme-horizon.min.css +2 -2
  40. package/styles/ht-theme-main.css +2 -2
  41. package/styles/ht-theme-main.min.css +2 -2
@@ -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-e827e93-20250206
29
- * Release date: 16/12/2024 (built at 06/02/2025 09:32:28)
28
+ * Version: 0.0.0-next-21f0f43-20250210
29
+ * Release date: 16/12/2024 (built at 10/02/2025 10:14:17)
30
30
  */
31
31
  (function webpackUniversalModuleDefinition(root, factory) {
32
32
  if(typeof exports === 'object' && typeof module === 'object')
@@ -104,8 +104,8 @@ Handsontable.hooks = _hooks.Hooks.getSingleton();
104
104
  Handsontable.CellCoords = _src.CellCoords;
105
105
  Handsontable.CellRange = _src.CellRange;
106
106
  Handsontable.packageName = 'handsontable';
107
- Handsontable.buildDate = "06/02/2025 09:32:28";
108
- Handsontable.version = "0.0.0-next-e827e93-20250206";
107
+ Handsontable.buildDate = "10/02/2025 10:14:17";
108
+ Handsontable.version = "0.0.0-next-21f0f43-20250210";
109
109
  Handsontable.languages = {
110
110
  dictionaryKeys: _registry.dictionaryKeys,
111
111
  getLanguageDictionary: _registry.getLanguageDictionary,
@@ -3626,33 +3626,7 @@ function Core(rootElement, userSettings) {
3626
3626
  * @returns {number}
3627
3627
  */
3628
3628
  this._getColWidthFromSettings = function (col) {
3629
- let width;
3630
-
3631
- // We currently don't support cell meta objects for headers (negative values)
3632
- if (col >= 0) {
3633
- const cellProperties = instance.getCellMeta(0, col);
3634
- width = cellProperties.width;
3635
- }
3636
- if (width === undefined || width === tableMeta.width) {
3637
- width = tableMeta.colWidths;
3638
- }
3639
- if (width !== undefined && width !== null) {
3640
- switch (typeof width) {
3641
- case 'object':
3642
- // array
3643
- width = width[col];
3644
- break;
3645
- case 'function':
3646
- width = width(col);
3647
- break;
3648
- default:
3649
- break;
3650
- }
3651
- if (typeof width === 'string') {
3652
- width = parseInt(width, 10);
3653
- }
3654
- }
3655
- return width;
3629
+ return tableMeta.colWidths[col];
3656
3630
  };
3657
3631
 
3658
3632
  /**
@@ -3666,12 +3640,7 @@ function Core(rootElement, userSettings) {
3666
3640
  * @fires Hooks#modifyColWidth
3667
3641
  */
3668
3642
  this.getColWidth = function (column, source) {
3669
- let width = instance._getColWidthFromSettings(column);
3670
- width = instance.runHooks('modifyColWidth', width, column, source);
3671
- if (width === undefined) {
3672
- width = _src.DEFAULT_COLUMN_WIDTH;
3673
- }
3674
- return width;
3643
+ return instance._getColWidthFromSettings(column);
3675
3644
  };
3676
3645
 
3677
3646
  /**
@@ -3684,24 +3653,7 @@ function Core(rootElement, userSettings) {
3684
3653
  * @returns {number}
3685
3654
  */
3686
3655
  this._getRowHeightFromSettings = function (row) {
3687
- let height = tableMeta.rowHeights;
3688
- if (height !== undefined && height !== null) {
3689
- switch (typeof height) {
3690
- case 'object':
3691
- // array
3692
- height = height[row];
3693
- break;
3694
- case 'function':
3695
- height = height(row);
3696
- break;
3697
- default:
3698
- break;
3699
- }
3700
- if (typeof height === 'string') {
3701
- height = parseInt(height, 10);
3702
- }
3703
- }
3704
- return height;
3656
+ return tableMeta.rowHeights;
3705
3657
  };
3706
3658
 
3707
3659
  /**
@@ -3732,9 +3684,7 @@ function Core(rootElement, userSettings) {
3732
3684
  * @fires Hooks#modifyRowHeight
3733
3685
  */
3734
3686
  this.getRowHeight = function (row, source) {
3735
- let height = instance._getRowHeightFromSettings(row);
3736
- height = instance.runHooks('modifyRowHeight', height, row, source);
3737
- return height;
3687
+ return instance._getRowHeightFromSettings(row);
3738
3688
  };
3739
3689
 
3740
3690
  /**
@@ -10104,7 +10054,7 @@ const domMessages = {
10104
10054
  function _injectProductInfo(key, element) {
10105
10055
  const hasValidType = !isEmpty(key);
10106
10056
  const isNonCommercial = typeof key === 'string' && key.toLowerCase() === 'non-commercial-and-evaluation';
10107
- const hotVersion = "0.0.0-next-e827e93-20250206";
10057
+ const hotVersion = "0.0.0-next-21f0f43-20250210";
10108
10058
  let keyValidityDate;
10109
10059
  let consoleMessageState = 'invalid';
10110
10060
  let domMessageState = 'invalid';
@@ -20423,11 +20373,7 @@ class ViewportColumnsCalculator extends _viewportBase.ViewportBaseCalculator {
20423
20373
  * @returns {number}
20424
20374
  */
20425
20375
  getColumnWidth(column) {
20426
- const width = this.columnWidthFn(column);
20427
- if (isNaN(width)) {
20428
- return DEFAULT_WIDTH;
20429
- }
20430
- return width;
20376
+ return this.columnWidthFn(column);
20431
20377
  }
20432
20378
  }
20433
20379
  exports.ViewportColumnsCalculator = ViewportColumnsCalculator;
@@ -20622,11 +20568,7 @@ class ViewportRowsCalculator extends _viewportBase.ViewportBaseCalculator {
20622
20568
  * @returns {number}
20623
20569
  */
20624
20570
  getRowHeight(row) {
20625
- const rowHeight = this.rowHeightFn(row);
20626
- if (isNaN(rowHeight)) {
20627
- return this.defaultHeight;
20628
- }
20629
- return rowHeight;
20571
+ return this.rowHeightFn(row);
20630
20572
  }
20631
20573
  }
20632
20574
  exports.ViewportRowsCalculator = ViewportRowsCalculator;
@@ -24731,6 +24673,9 @@ class RowHeadersRenderer extends _base.BaseRenderer {
24731
24673
  for (let visibleColumnIndex = 0; visibleColumnIndex < rowHeadersCount; visibleColumnIndex++) {
24732
24674
  orderView.render();
24733
24675
  const TH = orderView.getCurrentNode();
24676
+ if (TH.innerHTML !== '') {
24677
+ continue;
24678
+ }
24734
24679
  TH.className = '';
24735
24680
  TH.removeAttribute('style');
24736
24681
 
@@ -25676,7 +25621,7 @@ var _a11y = __webpack_require__(162);
25676
25621
  */
25677
25622
  class ColumnHeadersRenderer extends _base.BaseRenderer {
25678
25623
  constructor(rootNode) {
25679
- super(null, rootNode); // NodePool is not implemented for this renderer yet
25624
+ super('TR', rootNode); // NodePool is not implemented for this renderer yet
25680
25625
  }
25681
25626
 
25682
25627
  /**
@@ -25744,6 +25689,9 @@ class ColumnHeadersRenderer extends _base.BaseRenderer {
25744
25689
  // eslint-disable-line max-len
25745
25690
  const sourceColumnIndex = this.table.renderedColumnToSource(renderedColumnIndex);
25746
25691
  const TH = TR.childNodes[renderedColumnIndex + rowHeadersCount];
25692
+ if (TH.innerHTML !== '') {
25693
+ continue;
25694
+ }
25747
25695
  TH.className = '';
25748
25696
  TH.removeAttribute('style');
25749
25697
 
@@ -26034,11 +25982,14 @@ class CellsRenderer extends _base.BaseRenderer {
26034
25982
  this.sourceRowIndex = sourceRowIndex;
26035
25983
  const orderView = this.obtainOrderView(TR);
26036
25984
  const rowHeadersView = rowHeaders.obtainOrderView(TR);
26037
- orderView.prependView(rowHeadersView).setSize(columnsToRender).setOffset(0).start();
25985
+ orderView.prependView(rowHeadersView).setSize(columnsToRender).setOffset(this.table.renderedColumnToSource(0)).start();
26038
25986
  for (let visibleColumnIndex = 0; visibleColumnIndex < columnsToRender; visibleColumnIndex++) {
26039
25987
  orderView.render();
26040
25988
  const sourceColumnIndex = this.table.renderedColumnToSource(visibleColumnIndex);
26041
25989
  const TD = orderView.getCurrentNode();
25990
+ if (TD.innerHTML !== '') {
25991
+ continue;
25992
+ }
26042
25993
  if (!(0, _element.hasClass)(TD, 'hide')) {
26043
25994
  // Workaround for hidden columns plugin
26044
25995
  TD.className = '';
@@ -26448,8 +26399,7 @@ class ColumnUtils {
26448
26399
  * @returns {number}
26449
26400
  */
26450
26401
  getWidth(sourceIndex) {
26451
- const width = this.wtSettings.getSetting('columnWidth', sourceIndex) || this.wtSettings.getSetting('defaultColumnWidth');
26452
- return width;
26402
+ return this.wtSettings.getSetting('columnWidth', sourceIndex);
26453
26403
  }
26454
26404
 
26455
26405
  /**
@@ -26459,12 +26409,7 @@ class ColumnUtils {
26459
26409
  * @returns {number}
26460
26410
  */
26461
26411
  getHeaderHeight(level) {
26462
- let height = this.dataAccessObject.stylesHandler.getDefaultRowHeight();
26463
- const oversizedHeight = this.dataAccessObject.wtViewport.oversizedColumnHeaders[level];
26464
- if (oversizedHeight !== undefined) {
26465
- height = height ? Math.max(height, oversizedHeight) : oversizedHeight;
26466
- }
26467
- return height;
26412
+ return this.dataAccessObject.stylesHandler.getDefaultRowHeight();
26468
26413
  }
26469
26414
 
26470
26415
  /**
@@ -26474,28 +26419,13 @@ class ColumnUtils {
26474
26419
  * @returns {number}
26475
26420
  */
26476
26421
  getHeaderWidth(sourceIndex) {
26477
- return this.headerWidths.get(this.dataAccessObject.wtTable.columnFilter.sourceToRendered(sourceIndex));
26422
+ return 50;
26478
26423
  }
26479
26424
 
26480
26425
  /**
26481
26426
  * Calculates column header widths that can be retrieved from the cache.
26482
26427
  */
26483
- calculateWidths() {
26484
- const {
26485
- wtSettings
26486
- } = this;
26487
- let rowHeaderWidthSetting = wtSettings.getSetting('rowHeaderWidth');
26488
- rowHeaderWidthSetting = wtSettings.getSetting('onModifyRowHeaderWidth', rowHeaderWidthSetting);
26489
- if (rowHeaderWidthSetting !== null && rowHeaderWidthSetting !== undefined) {
26490
- const rowHeadersCount = wtSettings.getSetting('rowHeaders').length;
26491
- const defaultColumnWidth = wtSettings.getSetting('defaultColumnWidth');
26492
- for (let visibleColumnIndex = 0; visibleColumnIndex < rowHeadersCount; visibleColumnIndex++) {
26493
- let width = Array.isArray(rowHeaderWidthSetting) ? rowHeaderWidthSetting[visibleColumnIndex] : rowHeaderWidthSetting;
26494
- width = width === null || width === undefined ? defaultColumnWidth : width;
26495
- this.headerWidths.set(visibleColumnIndex, width);
26496
- }
26497
- }
26498
- }
26428
+ calculateWidths() {}
26499
26429
  }
26500
26430
  exports["default"] = ColumnUtils;
26501
26431
 
@@ -26539,12 +26469,7 @@ class RowUtils {
26539
26469
  * @returns {number}
26540
26470
  */
26541
26471
  getHeight(sourceIndex) {
26542
- let height = this.wtSettings.getSetting('rowHeight', sourceIndex);
26543
- const oversizedHeight = this.dataAccessObject.wtViewport.oversizedRows[sourceIndex];
26544
- if (oversizedHeight !== undefined) {
26545
- height = height === undefined ? oversizedHeight : Math.max(height, oversizedHeight);
26546
- }
26547
- return height;
26472
+ return this.wtSettings.getSetting('rowHeight', sourceIndex);
26548
26473
  }
26549
26474
 
26550
26475
  /**
@@ -26555,12 +26480,7 @@ class RowUtils {
26555
26480
  * @returns {number}
26556
26481
  */
26557
26482
  getHeightByOverlayName(sourceIndex, overlayName) {
26558
- let height = this.wtSettings.getSetting('rowHeightByOverlayName', sourceIndex, overlayName);
26559
- const oversizedHeight = this.dataAccessObject.wtViewport.oversizedRows[sourceIndex];
26560
- if (oversizedHeight !== undefined) {
26561
- height = height === undefined ? oversizedHeight : Math.max(height, oversizedHeight);
26562
- }
26563
- return height;
26483
+ return this.wtSettings.getSetting('rowHeight', sourceIndex);
26564
26484
  }
26565
26485
  }
26566
26486
  exports["default"] = RowUtils;
@@ -28557,14 +28477,7 @@ class InlineStartOverlay extends _base.Overlay {
28557
28477
  * @returns {number} Width sum.
28558
28478
  */
28559
28479
  sumCellSizes(from, to) {
28560
- const defaultColumnWidth = this.wtSettings.getSetting('defaultColumnWidth');
28561
- let column = from;
28562
- let sum = 0;
28563
- while (column < to) {
28564
- sum += this.wot.wtTable.getColumnWidth(column) || defaultColumnWidth;
28565
- column += 1;
28566
- }
28567
- return sum;
28480
+ return (to - from) * 80;
28568
28481
  }
28569
28482
 
28570
28483
  /**
@@ -30947,15 +30860,7 @@ class TopOverlay extends _base.Overlay {
30947
30860
  * @returns {number} Height sum.
30948
30861
  */
30949
30862
  sumCellSizes(from, to) {
30950
- const defaultRowHeight = this.wot.stylesHandler.getDefaultRowHeight();
30951
- let row = from;
30952
- let sum = 0;
30953
- while (row < to) {
30954
- const height = this.wot.wtTable.getRowHeight(row);
30955
- sum += height === undefined ? defaultRowHeight : height;
30956
- row += 1;
30957
- }
30958
- return sum;
30863
+ return (to - from) * 29;
30959
30864
  }
30960
30865
 
30961
30866
  /**
@@ -50823,9 +50728,14 @@ function textRenderer(hotInstance, TD, row, col, prop, value, cellProperties) {
50823
50728
  if (cellProperties.trimWhitespace) {
50824
50729
  escaped = escaped.trim();
50825
50730
  }
50826
-
50827
- // this is faster than innerHTML. See: https://github.com/handsontable/handsontable/wiki/JavaScript-&-DOM-performance-tips
50828
- (0, _element.fastInnerText)(TD, escaped);
50731
+ if (TD.firstChild) {
50732
+ (0, _element.fastInnerText)(TD.firstChild, escaped);
50733
+ } else {
50734
+ const div = hotInstance.rootDocument.createElement('div');
50735
+ div.style.height = '20px';
50736
+ TD.appendChild(div);
50737
+ (0, _element.fastInnerText)(div, escaped);
50738
+ }
50829
50739
  }
50830
50740
  textRenderer.RENDERER_TYPE = RENDERER_TYPE;
50831
50741
 
@@ -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-e827e93-20250206
30
- * Release date: 16/12/2024 (built at 06/02/2025 09:33:19)
29
+ * Version: 0.0.0-next-21f0f43-20250210
30
+ * Release date: 16/12/2024 (built at 10/02/2025 10:15:08)
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