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')
@@ -42855,8 +42855,8 @@ Handsontable.hooks = _hooks.Hooks.getSingleton();
42855
42855
  Handsontable.CellCoords = _src.CellCoords;
42856
42856
  Handsontable.CellRange = _src.CellRange;
42857
42857
  Handsontable.packageName = 'handsontable';
42858
- Handsontable.buildDate = "06/02/2025 09:32:28";
42859
- Handsontable.version = "0.0.0-next-e827e93-20250206";
42858
+ Handsontable.buildDate = "10/02/2025 10:14:17";
42859
+ Handsontable.version = "0.0.0-next-21f0f43-20250210";
42860
42860
  Handsontable.languages = {
42861
42861
  dictionaryKeys: _registry.dictionaryKeys,
42862
42862
  getLanguageDictionary: _registry.getLanguageDictionary,
@@ -46374,33 +46374,7 @@ function Core(rootElement, userSettings) {
46374
46374
  * @returns {number}
46375
46375
  */
46376
46376
  this._getColWidthFromSettings = function (col) {
46377
- let width;
46378
-
46379
- // We currently don't support cell meta objects for headers (negative values)
46380
- if (col >= 0) {
46381
- const cellProperties = instance.getCellMeta(0, col);
46382
- width = cellProperties.width;
46383
- }
46384
- if (width === undefined || width === tableMeta.width) {
46385
- width = tableMeta.colWidths;
46386
- }
46387
- if (width !== undefined && width !== null) {
46388
- switch (typeof width) {
46389
- case 'object':
46390
- // array
46391
- width = width[col];
46392
- break;
46393
- case 'function':
46394
- width = width(col);
46395
- break;
46396
- default:
46397
- break;
46398
- }
46399
- if (typeof width === 'string') {
46400
- width = parseInt(width, 10);
46401
- }
46402
- }
46403
- return width;
46377
+ return tableMeta.colWidths[col];
46404
46378
  };
46405
46379
 
46406
46380
  /**
@@ -46414,12 +46388,7 @@ function Core(rootElement, userSettings) {
46414
46388
  * @fires Hooks#modifyColWidth
46415
46389
  */
46416
46390
  this.getColWidth = function (column, source) {
46417
- let width = instance._getColWidthFromSettings(column);
46418
- width = instance.runHooks('modifyColWidth', width, column, source);
46419
- if (width === undefined) {
46420
- width = _src.DEFAULT_COLUMN_WIDTH;
46421
- }
46422
- return width;
46391
+ return instance._getColWidthFromSettings(column);
46423
46392
  };
46424
46393
 
46425
46394
  /**
@@ -46432,24 +46401,7 @@ function Core(rootElement, userSettings) {
46432
46401
  * @returns {number}
46433
46402
  */
46434
46403
  this._getRowHeightFromSettings = function (row) {
46435
- let height = tableMeta.rowHeights;
46436
- if (height !== undefined && height !== null) {
46437
- switch (typeof height) {
46438
- case 'object':
46439
- // array
46440
- height = height[row];
46441
- break;
46442
- case 'function':
46443
- height = height(row);
46444
- break;
46445
- default:
46446
- break;
46447
- }
46448
- if (typeof height === 'string') {
46449
- height = parseInt(height, 10);
46450
- }
46451
- }
46452
- return height;
46404
+ return tableMeta.rowHeights;
46453
46405
  };
46454
46406
 
46455
46407
  /**
@@ -46480,9 +46432,7 @@ function Core(rootElement, userSettings) {
46480
46432
  * @fires Hooks#modifyRowHeight
46481
46433
  */
46482
46434
  this.getRowHeight = function (row, source) {
46483
- let height = instance._getRowHeightFromSettings(row);
46484
- height = instance.runHooks('modifyRowHeight', height, row, source);
46485
- return height;
46435
+ return instance._getRowHeightFromSettings(row);
46486
46436
  };
46487
46437
 
46488
46438
  /**
@@ -54189,7 +54139,7 @@ const domMessages = {
54189
54139
  function _injectProductInfo(key, element) {
54190
54140
  const hasValidType = !isEmpty(key);
54191
54141
  const isNonCommercial = typeof key === 'string' && key.toLowerCase() === 'non-commercial-and-evaluation';
54192
- const hotVersion = "0.0.0-next-e827e93-20250206";
54142
+ const hotVersion = "0.0.0-next-21f0f43-20250210";
54193
54143
  let keyValidityDate;
54194
54144
  let consoleMessageState = 'invalid';
54195
54145
  let domMessageState = 'invalid';
@@ -71321,11 +71271,7 @@ class ViewportColumnsCalculator extends _viewportBase.ViewportBaseCalculator {
71321
71271
  * @returns {number}
71322
71272
  */
71323
71273
  getColumnWidth(column) {
71324
- const width = this.columnWidthFn(column);
71325
- if (isNaN(width)) {
71326
- return DEFAULT_WIDTH;
71327
- }
71328
- return width;
71274
+ return this.columnWidthFn(column);
71329
71275
  }
71330
71276
  }
71331
71277
  exports.ViewportColumnsCalculator = ViewportColumnsCalculator;
@@ -71520,11 +71466,7 @@ class ViewportRowsCalculator extends _viewportBase.ViewportBaseCalculator {
71520
71466
  * @returns {number}
71521
71467
  */
71522
71468
  getRowHeight(row) {
71523
- const rowHeight = this.rowHeightFn(row);
71524
- if (isNaN(rowHeight)) {
71525
- return this.defaultHeight;
71526
- }
71527
- return rowHeight;
71469
+ return this.rowHeightFn(row);
71528
71470
  }
71529
71471
  }
71530
71472
  exports.ViewportRowsCalculator = ViewportRowsCalculator;
@@ -75629,6 +75571,9 @@ class RowHeadersRenderer extends _base.BaseRenderer {
75629
75571
  for (let visibleColumnIndex = 0; visibleColumnIndex < rowHeadersCount; visibleColumnIndex++) {
75630
75572
  orderView.render();
75631
75573
  const TH = orderView.getCurrentNode();
75574
+ if (TH.innerHTML !== '') {
75575
+ continue;
75576
+ }
75632
75577
  TH.className = '';
75633
75578
  TH.removeAttribute('style');
75634
75579
 
@@ -76574,7 +76519,7 @@ var _a11y = __webpack_require__(496);
76574
76519
  */
76575
76520
  class ColumnHeadersRenderer extends _base.BaseRenderer {
76576
76521
  constructor(rootNode) {
76577
- super(null, rootNode); // NodePool is not implemented for this renderer yet
76522
+ super('TR', rootNode); // NodePool is not implemented for this renderer yet
76578
76523
  }
76579
76524
 
76580
76525
  /**
@@ -76642,6 +76587,9 @@ class ColumnHeadersRenderer extends _base.BaseRenderer {
76642
76587
  // eslint-disable-line max-len
76643
76588
  const sourceColumnIndex = this.table.renderedColumnToSource(renderedColumnIndex);
76644
76589
  const TH = TR.childNodes[renderedColumnIndex + rowHeadersCount];
76590
+ if (TH.innerHTML !== '') {
76591
+ continue;
76592
+ }
76645
76593
  TH.className = '';
76646
76594
  TH.removeAttribute('style');
76647
76595
 
@@ -76932,11 +76880,14 @@ class CellsRenderer extends _base.BaseRenderer {
76932
76880
  this.sourceRowIndex = sourceRowIndex;
76933
76881
  const orderView = this.obtainOrderView(TR);
76934
76882
  const rowHeadersView = rowHeaders.obtainOrderView(TR);
76935
- orderView.prependView(rowHeadersView).setSize(columnsToRender).setOffset(0).start();
76883
+ orderView.prependView(rowHeadersView).setSize(columnsToRender).setOffset(this.table.renderedColumnToSource(0)).start();
76936
76884
  for (let visibleColumnIndex = 0; visibleColumnIndex < columnsToRender; visibleColumnIndex++) {
76937
76885
  orderView.render();
76938
76886
  const sourceColumnIndex = this.table.renderedColumnToSource(visibleColumnIndex);
76939
76887
  const TD = orderView.getCurrentNode();
76888
+ if (TD.innerHTML !== '') {
76889
+ continue;
76890
+ }
76940
76891
  if (!(0, _element.hasClass)(TD, 'hide')) {
76941
76892
  // Workaround for hidden columns plugin
76942
76893
  TD.className = '';
@@ -77346,8 +77297,7 @@ class ColumnUtils {
77346
77297
  * @returns {number}
77347
77298
  */
77348
77299
  getWidth(sourceIndex) {
77349
- const width = this.wtSettings.getSetting('columnWidth', sourceIndex) || this.wtSettings.getSetting('defaultColumnWidth');
77350
- return width;
77300
+ return this.wtSettings.getSetting('columnWidth', sourceIndex);
77351
77301
  }
77352
77302
 
77353
77303
  /**
@@ -77357,12 +77307,7 @@ class ColumnUtils {
77357
77307
  * @returns {number}
77358
77308
  */
77359
77309
  getHeaderHeight(level) {
77360
- let height = this.dataAccessObject.stylesHandler.getDefaultRowHeight();
77361
- const oversizedHeight = this.dataAccessObject.wtViewport.oversizedColumnHeaders[level];
77362
- if (oversizedHeight !== undefined) {
77363
- height = height ? Math.max(height, oversizedHeight) : oversizedHeight;
77364
- }
77365
- return height;
77310
+ return this.dataAccessObject.stylesHandler.getDefaultRowHeight();
77366
77311
  }
77367
77312
 
77368
77313
  /**
@@ -77372,28 +77317,13 @@ class ColumnUtils {
77372
77317
  * @returns {number}
77373
77318
  */
77374
77319
  getHeaderWidth(sourceIndex) {
77375
- return this.headerWidths.get(this.dataAccessObject.wtTable.columnFilter.sourceToRendered(sourceIndex));
77320
+ return 50;
77376
77321
  }
77377
77322
 
77378
77323
  /**
77379
77324
  * Calculates column header widths that can be retrieved from the cache.
77380
77325
  */
77381
- calculateWidths() {
77382
- const {
77383
- wtSettings
77384
- } = this;
77385
- let rowHeaderWidthSetting = wtSettings.getSetting('rowHeaderWidth');
77386
- rowHeaderWidthSetting = wtSettings.getSetting('onModifyRowHeaderWidth', rowHeaderWidthSetting);
77387
- if (rowHeaderWidthSetting !== null && rowHeaderWidthSetting !== undefined) {
77388
- const rowHeadersCount = wtSettings.getSetting('rowHeaders').length;
77389
- const defaultColumnWidth = wtSettings.getSetting('defaultColumnWidth');
77390
- for (let visibleColumnIndex = 0; visibleColumnIndex < rowHeadersCount; visibleColumnIndex++) {
77391
- let width = Array.isArray(rowHeaderWidthSetting) ? rowHeaderWidthSetting[visibleColumnIndex] : rowHeaderWidthSetting;
77392
- width = width === null || width === undefined ? defaultColumnWidth : width;
77393
- this.headerWidths.set(visibleColumnIndex, width);
77394
- }
77395
- }
77396
- }
77326
+ calculateWidths() {}
77397
77327
  }
77398
77328
  exports["default"] = ColumnUtils;
77399
77329
 
@@ -77437,12 +77367,7 @@ class RowUtils {
77437
77367
  * @returns {number}
77438
77368
  */
77439
77369
  getHeight(sourceIndex) {
77440
- let height = this.wtSettings.getSetting('rowHeight', sourceIndex);
77441
- const oversizedHeight = this.dataAccessObject.wtViewport.oversizedRows[sourceIndex];
77442
- if (oversizedHeight !== undefined) {
77443
- height = height === undefined ? oversizedHeight : Math.max(height, oversizedHeight);
77444
- }
77445
- return height;
77370
+ return this.wtSettings.getSetting('rowHeight', sourceIndex);
77446
77371
  }
77447
77372
 
77448
77373
  /**
@@ -77453,12 +77378,7 @@ class RowUtils {
77453
77378
  * @returns {number}
77454
77379
  */
77455
77380
  getHeightByOverlayName(sourceIndex, overlayName) {
77456
- let height = this.wtSettings.getSetting('rowHeightByOverlayName', sourceIndex, overlayName);
77457
- const oversizedHeight = this.dataAccessObject.wtViewport.oversizedRows[sourceIndex];
77458
- if (oversizedHeight !== undefined) {
77459
- height = height === undefined ? oversizedHeight : Math.max(height, oversizedHeight);
77460
- }
77461
- return height;
77381
+ return this.wtSettings.getSetting('rowHeight', sourceIndex);
77462
77382
  }
77463
77383
  }
77464
77384
  exports["default"] = RowUtils;
@@ -79455,14 +79375,7 @@ class InlineStartOverlay extends _base.Overlay {
79455
79375
  * @returns {number} Width sum.
79456
79376
  */
79457
79377
  sumCellSizes(from, to) {
79458
- const defaultColumnWidth = this.wtSettings.getSetting('defaultColumnWidth');
79459
- let column = from;
79460
- let sum = 0;
79461
- while (column < to) {
79462
- sum += this.wot.wtTable.getColumnWidth(column) || defaultColumnWidth;
79463
- column += 1;
79464
- }
79465
- return sum;
79378
+ return (to - from) * 80;
79466
79379
  }
79467
79380
 
79468
79381
  /**
@@ -81845,15 +81758,7 @@ class TopOverlay extends _base.Overlay {
81845
81758
  * @returns {number} Height sum.
81846
81759
  */
81847
81760
  sumCellSizes(from, to) {
81848
- const defaultRowHeight = this.wot.stylesHandler.getDefaultRowHeight();
81849
- let row = from;
81850
- let sum = 0;
81851
- while (row < to) {
81852
- const height = this.wot.wtTable.getRowHeight(row);
81853
- sum += height === undefined ? defaultRowHeight : height;
81854
- row += 1;
81855
- }
81856
- return sum;
81761
+ return (to - from) * 29;
81857
81762
  }
81858
81763
 
81859
81764
  /**
@@ -101721,9 +101626,14 @@ function textRenderer(hotInstance, TD, row, col, prop, value, cellProperties) {
101721
101626
  if (cellProperties.trimWhitespace) {
101722
101627
  escaped = escaped.trim();
101723
101628
  }
101724
-
101725
- // this is faster than innerHTML. See: https://github.com/handsontable/handsontable/wiki/JavaScript-&-DOM-performance-tips
101726
- (0, _element.fastInnerText)(TD, escaped);
101629
+ if (TD.firstChild) {
101630
+ (0, _element.fastInnerText)(TD.firstChild, escaped);
101631
+ } else {
101632
+ const div = hotInstance.rootDocument.createElement('div');
101633
+ div.style.height = '20px';
101634
+ TD.appendChild(div);
101635
+ (0, _element.fastInnerText)(div, escaped);
101636
+ }
101727
101637
  }
101728
101638
  textRenderer.RENDERER_TYPE = RENDERER_TYPE;
101729
101639
 
@@ -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