handsontable 0.0.0-next-21f0f43-20250210 → 0.0.0-next-8951d31-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.

@@ -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-21f0f43-20250210
29
- * Release date: 16/12/2024 (built at 10/02/2025 10:14:17)
28
+ * Version: 0.0.0-next-8951d31-20250210
29
+ * Release date: 16/12/2024 (built at 10/02/2025 11:00:22)
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 = "10/02/2025 10:14:17";
108
- Handsontable.version = "0.0.0-next-21f0f43-20250210";
107
+ Handsontable.buildDate = "10/02/2025 11:00:22";
108
+ Handsontable.version = "0.0.0-next-8951d31-20250210";
109
109
  Handsontable.languages = {
110
110
  dictionaryKeys: _registry.dictionaryKeys,
111
111
  getLanguageDictionary: _registry.getLanguageDictionary,
@@ -10054,7 +10054,7 @@ const domMessages = {
10054
10054
  function _injectProductInfo(key, element) {
10055
10055
  const hasValidType = !isEmpty(key);
10056
10056
  const isNonCommercial = typeof key === 'string' && key.toLowerCase() === 'non-commercial-and-evaluation';
10057
- const hotVersion = "0.0.0-next-21f0f43-20250210";
10057
+ const hotVersion = "0.0.0-next-8951d31-20250210";
10058
10058
  let keyValidityDate;
10059
10059
  let consoleMessageState = 'invalid';
10060
10060
  let domMessageState = 'invalid';
@@ -23554,16 +23554,6 @@ class Table {
23554
23554
  this.resetOversizedRows();
23555
23555
  this.tableRenderer.setActiveOverlayName(this.name).setViewportSize(this.getRenderedRowsCount(), this.getRenderedColumnsCount()).setFilters(this.rowFilter, this.columnFilter).render();
23556
23556
  if (this.isMaster) {
23557
- this.markOversizedColumnHeaders();
23558
- }
23559
- this.adjustColumnHeaderHeights();
23560
- if (this.isMaster || this.is(_overlay.CLONE_BOTTOM)) {
23561
- this.markOversizedRows();
23562
- }
23563
- if (this.isMaster) {
23564
- if (!this.wtSettings.getSetting('externalRowCalculator')) {
23565
- wtViewport.createVisibleCalculators();
23566
- }
23567
23557
  wtOverlays.refresh(false);
23568
23558
  wtOverlays.applyToDOM();
23569
23559
  this.wtSettings.getSetting('onDraw', true);
@@ -23605,85 +23595,18 @@ class Table {
23605
23595
  /**
23606
23596
  * @param {number} col The visual column index.
23607
23597
  */
23608
- markIfOversizedColumnHeader(col) {
23609
- const sourceColIndex = this.columnFilter.renderedToSource(col);
23610
- let level = this.wtSettings.getSetting('columnHeaders').length;
23611
- const defaultRowHeight = this.dataAccessObject.stylesHandler.getDefaultRowHeight();
23612
- let previousColHeaderHeight;
23613
- let currentHeader;
23614
- let currentHeaderHeight;
23615
- const columnHeaderHeightSetting = this.wtSettings.getSetting('columnHeaderHeight') || [];
23616
- while (level) {
23617
- level -= 1;
23618
- previousColHeaderHeight = this.getColumnHeaderHeight(level);
23619
- currentHeader = this.getColumnHeader(sourceColIndex, level);
23620
- if (!currentHeader) {
23621
- /* eslint-disable no-continue */
23622
- continue;
23623
- }
23624
- currentHeaderHeight = (0, _element.innerHeight)(currentHeader);
23625
- if (!previousColHeaderHeight && defaultRowHeight < currentHeaderHeight || previousColHeaderHeight < currentHeaderHeight) {
23626
- this.dataAccessObject.wtViewport.oversizedColumnHeaders[level] = currentHeaderHeight;
23627
- }
23628
- if (Array.isArray(columnHeaderHeightSetting)) {
23629
- if (columnHeaderHeightSetting[level] !== null && columnHeaderHeightSetting[level] !== undefined) {
23630
- this.dataAccessObject.wtViewport.oversizedColumnHeaders[level] = columnHeaderHeightSetting[level];
23631
- }
23632
- } else if (!isNaN(columnHeaderHeightSetting)) {
23633
- this.dataAccessObject.wtViewport.oversizedColumnHeaders[level] = columnHeaderHeightSetting;
23634
- }
23635
- if (this.dataAccessObject.wtViewport.oversizedColumnHeaders[level] < (columnHeaderHeightSetting[level] || columnHeaderHeightSetting)) {
23636
- this.dataAccessObject.wtViewport.oversizedColumnHeaders[level] = columnHeaderHeightSetting[level] || columnHeaderHeightSetting; // eslint-disable-line max-len
23637
- }
23638
- }
23639
- }
23598
+ markIfOversizedColumnHeader(col) {}
23640
23599
 
23641
23600
  /**
23642
23601
  *
23643
23602
  */
23644
- adjustColumnHeaderHeights() {
23645
- const {
23646
- wtSettings
23647
- } = this;
23648
- const children = this.THEAD.childNodes;
23649
- const oversizedColumnHeaders = this.dataAccessObject.wtViewport.oversizedColumnHeaders;
23650
- const columnHeaders = wtSettings.getSetting('columnHeaders');
23651
- for (let i = 0, len = columnHeaders.length; i < len; i++) {
23652
- if (oversizedColumnHeaders[i]) {
23653
- if (!children[i] || children[i].childNodes.length === 0) {
23654
- return;
23655
- }
23656
- children[i].childNodes[0].style.height = `${oversizedColumnHeaders[i]}px`;
23657
- }
23658
- }
23659
- }
23603
+ adjustColumnHeaderHeights() {}
23660
23604
 
23661
23605
  /**
23662
23606
  * Resets cache of row heights. The cache should be cached for each render cycle in a case
23663
23607
  * when new cell values have content which increases/decreases cell height.
23664
23608
  */
23665
- resetOversizedRows() {
23666
- const {
23667
- wtSettings
23668
- } = this;
23669
- const {
23670
- wtViewport
23671
- } = this.dataAccessObject;
23672
- if (!this.isMaster && !this.is(_overlay.CLONE_BOTTOM)) {
23673
- return;
23674
- }
23675
- if (!wtSettings.getSetting('externalRowCalculator')) {
23676
- const rowsToRender = this.getRenderedRowsCount();
23677
-
23678
- // Reset the oversized row cache for rendered rows
23679
- for (let visibleRowIndex = 0; visibleRowIndex < rowsToRender; visibleRowIndex++) {
23680
- const sourceRow = this.rowFilter.renderedToSource(visibleRowIndex);
23681
- if (wtViewport.oversizedRows && wtViewport.oversizedRows[sourceRow]) {
23682
- wtViewport.oversizedRows[sourceRow] = undefined;
23683
- }
23684
- }
23685
- }
23686
- }
23609
+ resetOversizedRows() {}
23687
23610
 
23688
23611
  /**
23689
23612
  * Get cell element at coords.
@@ -23881,46 +23804,7 @@ class Table {
23881
23804
  /**
23882
23805
  * Check if any of the rendered rows is higher than expected, and if so, cache them.
23883
23806
  */
23884
- markOversizedRows() {
23885
- if (this.wtSettings.getSetting('externalRowCalculator')) {
23886
- return;
23887
- }
23888
- let rowCount = this.TBODY.childNodes.length;
23889
- const expectedTableHeight = rowCount * this.dataAccessObject.stylesHandler.getDefaultRowHeight();
23890
- const actualTableHeight = (0, _element.innerHeight)(this.TBODY) - 1;
23891
- const borderBoxSizing = this.wot.stylesHandler.areCellsBorderBox();
23892
- const rowHeightFn = borderBoxSizing ? _element.outerHeight : _element.innerHeight;
23893
- const borderCompensation = borderBoxSizing ? 0 : 1;
23894
- const firstRowBorderCompensation = borderBoxSizing ? 1 : 0;
23895
- let previousRowHeight;
23896
- let rowCurrentHeight;
23897
- let sourceRowIndex;
23898
- let currentTr;
23899
- let rowHeader;
23900
- if (expectedTableHeight === actualTableHeight && !this.wtSettings.getSetting('fixedRowsBottom')) {
23901
- // If the actual table height equals rowCount * default single row height, no row is oversized -> no need to iterate over them
23902
- return;
23903
- }
23904
- while (rowCount) {
23905
- rowCount -= 1;
23906
- sourceRowIndex = this.rowFilter.renderedToSource(rowCount);
23907
- previousRowHeight = this.getRowHeight(sourceRowIndex);
23908
- currentTr = this.getTrForRow(sourceRowIndex);
23909
- rowHeader = currentTr.querySelector('th');
23910
- const topBorderCompensation = sourceRowIndex === 0 ? firstRowBorderCompensation : 0;
23911
- if (rowHeader) {
23912
- rowCurrentHeight = rowHeightFn(rowHeader);
23913
- } else {
23914
- rowCurrentHeight = rowHeightFn(currentTr) - borderCompensation;
23915
- }
23916
- if (!previousRowHeight && this.dataAccessObject.stylesHandler.getDefaultRowHeight() < rowCurrentHeight - topBorderCompensation || previousRowHeight < rowCurrentHeight) {
23917
- if (!borderBoxSizing) {
23918
- rowCurrentHeight += 1;
23919
- }
23920
- this.dataAccessObject.wtViewport.oversizedRows[sourceRowIndex] = rowCurrentHeight;
23921
- }
23922
- }
23923
- }
23807
+ markOversizedRows() {}
23924
23808
 
23925
23809
  /**
23926
23810
  * @param {number} row The visual row index.
@@ -24235,32 +24119,7 @@ class Table {
24235
24119
  * @returns {number}
24236
24120
  */
24237
24121
  _modifyRowHeaderWidth(rowHeaderWidthFactory) {
24238
- let widths = (0, _function.isFunction)(rowHeaderWidthFactory) ? rowHeaderWidthFactory() : null;
24239
- if (Array.isArray(widths)) {
24240
- widths = [...widths];
24241
- widths[widths.length - 1] = this._correctRowHeaderWidth(widths[widths.length - 1]);
24242
- } else {
24243
- widths = this._correctRowHeaderWidth(widths);
24244
- }
24245
- return widths;
24246
- }
24247
-
24248
- /**
24249
- * Correct row header width if necessary.
24250
- *
24251
- * @private
24252
- * @param {number} width The width to process.
24253
- * @returns {number}
24254
- */
24255
- _correctRowHeaderWidth(width) {
24256
- let rowHeaderWidth = width;
24257
- if (typeof width !== 'number') {
24258
- rowHeaderWidth = this.wtSettings.getSetting('defaultColumnWidth');
24259
- }
24260
- if (this.correctHeaderWidth) {
24261
- rowHeaderWidth += 1;
24262
- }
24263
- return rowHeaderWidth;
24122
+ return 50;
24264
24123
  }
24265
24124
  }
24266
24125
  var _default = exports["default"] = Table;
@@ -31573,7 +31432,6 @@ class Viewport {
31573
31432
  this.domBindings = domBindings;
31574
31433
  this.wtSettings = wtSettings;
31575
31434
  this.wtTable = wtTable;
31576
- this.oversizedRows = [];
31577
31435
  this.oversizedColumnHeaders = [];
31578
31436
  this.hasOversizedColumnHeadersMarked = {};
31579
31437
  this.clientHeight = 0;
@@ -31728,47 +31586,14 @@ class Viewport {
31728
31586
  * @returns {number}
31729
31587
  */
31730
31588
  getColumnHeaderHeight() {
31731
- const columnHeaders = this.wtSettings.getSetting('columnHeaders');
31732
- if (!columnHeaders.length) {
31733
- this.columnHeaderHeight = 0;
31734
- } else if (isNaN(this.columnHeaderHeight)) {
31735
- this.columnHeaderHeight = (0, _element.outerHeight)(this.wtTable.THEAD);
31736
- }
31737
- return this.columnHeaderHeight;
31589
+ return 59;
31738
31590
  }
31739
31591
 
31740
31592
  /**
31741
31593
  * @returns {number}
31742
31594
  */
31743
31595
  getRowHeaderWidth() {
31744
- const rowHeadersWidthSetting = this.wtSettings.getSetting('rowHeaderWidth');
31745
- const rowHeaders = this.wtSettings.getSetting('rowHeaders');
31746
- if (rowHeadersWidthSetting) {
31747
- this.rowHeaderWidth = 0;
31748
- for (let i = 0, len = rowHeaders.length; i < len; i++) {
31749
- this.rowHeaderWidth += rowHeadersWidthSetting[i] || rowHeadersWidthSetting;
31750
- }
31751
- }
31752
- if (isNaN(this.rowHeaderWidth)) {
31753
- if (rowHeaders.length) {
31754
- let TH = this.wtTable.TABLE.querySelector('TH');
31755
- this.rowHeaderWidth = 0;
31756
- for (let i = 0, len = rowHeaders.length; i < len; i++) {
31757
- if (TH) {
31758
- this.rowHeaderWidth += (0, _element.outerWidth)(TH);
31759
- TH = TH.nextSibling;
31760
- } else {
31761
- // yes this is a cheat but it worked like that before, just taking assumption from CSS instead of measuring.
31762
- // TODO: proper fix
31763
- this.rowHeaderWidth += 50;
31764
- }
31765
- }
31766
- } else {
31767
- this.rowHeaderWidth = 0;
31768
- }
31769
- }
31770
- this.rowHeaderWidth = this.wtSettings.getSetting('onModifyRowHeaderWidth', this.rowHeaderWidth) || this.rowHeaderWidth;
31771
- return this.rowHeaderWidth;
31596
+ return 50;
31772
31597
  }
31773
31598
 
31774
31599
  /**
@@ -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-21f0f43-20250210
30
- * Release date: 16/12/2024 (built at 10/02/2025 10:15:08)
29
+ * Version: 0.0.0-next-8951d31-20250210
30
+ * Release date: 16/12/2024 (built at 10/02/2025 11:01:13)
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