handsontable 0.0.0-next-317e00f-20240111 → 0.0.0-next-d247bd5-20240112

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-317e00f-20240111
29
- * Release date: 30/11/2023 (built at 11/01/2024 09:03:45)
28
+ * Version: 0.0.0-next-d247bd5-20240112
29
+ * Release date: 30/11/2023 (built at 12/01/2024 10:49:13)
30
30
  */
31
31
  (function webpackUniversalModuleDefinition(root, factory) {
32
32
  if(typeof exports === 'object' && typeof module === 'object')
@@ -107,8 +107,8 @@ Handsontable.hooks = _pluginHooks.default.getSingleton();
107
107
  Handsontable.CellCoords = _src.CellCoords;
108
108
  Handsontable.CellRange = _src.CellRange;
109
109
  Handsontable.packageName = 'handsontable';
110
- Handsontable.buildDate = "11/01/2024 09:03:45";
111
- Handsontable.version = "0.0.0-next-317e00f-20240111";
110
+ Handsontable.buildDate = "12/01/2024 10:49:13";
111
+ Handsontable.version = "0.0.0-next-d247bd5-20240112";
112
112
  Handsontable.languages = {
113
113
  dictionaryKeys: _registry.dictionaryKeys,
114
114
  getLanguageDictionary: _registry.getLanguageDictionary,
@@ -8511,7 +8511,7 @@ const domMessages = {
8511
8511
  function _injectProductInfo(key, element) {
8512
8512
  const hasValidType = !isEmpty(key);
8513
8513
  const isNonCommercial = typeof key === 'string' && key.toLowerCase() === 'non-commercial-and-evaluation';
8514
- const hotVersion = "0.0.0-next-317e00f-20240111";
8514
+ const hotVersion = "0.0.0-next-d247bd5-20240112";
8515
8515
  let keyValidityDate;
8516
8516
  let consoleMessageState = 'invalid';
8517
8517
  let domMessageState = 'invalid';
@@ -10139,7 +10139,6 @@ class EditorManager {
10139
10139
  *
10140
10140
  * @param {MouseEvent} event The mouse event object.
10141
10141
  * @param {object} coords The cell coordinates.
10142
- * @param {HTMLTableCellElement|HTMLTableHeaderCellElement} elem The element which triggers the action.
10143
10142
  */
10144
10143
  _classPrivateMethodInitSpec(this, _onCellDblClick);
10145
10144
  /**
@@ -10330,6 +10329,19 @@ class EditorManager {
10330
10329
  this.clearActiveEditor();
10331
10330
  return;
10332
10331
  }
10332
+ const selection = this.hot.getSelectedRangeLast();
10333
+ let allowOpening = this.hot.runHooks('beforeBeginEditing', selection.highlight.row, selection.highlight.col, newInitialValue, event, enableFullEditMode);
10334
+
10335
+ // If the above hook does not return boolean apply default behavior which disallows opening
10336
+ // an editor after double mouse click for non-contiguous selection (while pressing Ctrl/Cmd) and
10337
+ // for multiple selected cells (while pressing SHIFT).
10338
+ if (event instanceof MouseEvent && typeof allowOpening !== 'boolean') {
10339
+ allowOpening = this.hot.selection.getLayerLevel() === 0 && selection.isSingle();
10340
+ }
10341
+ if (allowOpening === false) {
10342
+ this.clearActiveEditor();
10343
+ return;
10344
+ }
10333
10345
  if (!this.activeEditor) {
10334
10346
  this.hot.scrollToFocusedCell();
10335
10347
  this.prepareEditor();
@@ -10483,9 +10495,8 @@ function _onAfterDocumentKeyDown2(event) {
10483
10495
  }
10484
10496
  }
10485
10497
  }
10486
- function _onCellDblClick2(event, coords, elem) {
10487
- // may be TD or TH
10488
- if (elem.nodeName === 'TD') {
10498
+ function _onCellDblClick2(event, coords) {
10499
+ if (coords.isCell()) {
10489
10500
  this.openEditor(null, event, true);
10490
10501
  }
10491
10502
  }
@@ -13324,6 +13335,24 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
13324
13335
  * @param {number} finalElementPosition The final row index of the detached element.
13325
13336
  */
13326
13337
  'afterDetachChild',
13338
+ /**
13339
+ * Fired before the editor is opened and rendered.
13340
+ *
13341
+ * @since 14.1.0
13342
+ * @event Hooks#beforeBeginEditing
13343
+ * @param {number} row Visual row index of the edited cell.
13344
+ * @param {number} column Visual column index of the edited cell.
13345
+ * @param {*} initialValue The initial editor value.
13346
+ * @param {MouseEvent | KeyboardEvent} event The event which was responsible for opening the editor.
13347
+ * @param {boolean} fullEditMode `true` if the editor is opened in full edit mode, `false` otherwise.
13348
+ * Editor opened in full edit mode does not close after pressing Arrow keys.
13349
+ * @returns {boolean | undefined} If the callback returns `false,` the editor won't be opened after
13350
+ * the mouse double click or after pressing the Enter key. Returning `undefined` (or other value
13351
+ * than boolean) will result in default behavior, which disallows opening an editor for non-contiguous
13352
+ * selection (while pressing Ctrl/Cmd) and for multiple selected cells (while pressing SHIFT).
13353
+ * Returning `true` removes those restrictions.
13354
+ */
13355
+ 'beforeBeginEditing',
13327
13356
  /**
13328
13357
  * Fired after the editor is opened and rendered.
13329
13358
  *
@@ -71314,6 +71343,7 @@ function _onEngineSheetAdded2(addedSheetDisplayName) {
71314
71343
  this.hot.runHooks('afterSheetAdded', addedSheetDisplayName);
71315
71344
  }
71316
71345
  function _onEngineSheetRenamed2(oldDisplayName, newDisplayName) {
71346
+ this.sheetName = newDisplayName;
71317
71347
  this.hot.runHooks('afterSheetRenamed', oldDisplayName, newDisplayName);
71318
71348
  }
71319
71349
  function _onEngineSheetRemoved2(removedSheetDisplayName, changes) {
@@ -72296,7 +72326,7 @@ class AxisSyncer {
72296
72326
  return;
72297
72327
  }
72298
72328
  const newSequence = (0, _classPrivateFieldGet2.default)(this, _indexMapper).getIndexesSequence();
72299
- if (source === 'update') {
72329
+ if (source === 'update' && newSequence.length > 0) {
72300
72330
  const relativeTransformation = (0, _classPrivateFieldGet2.default)(this, _indexesSequence).map(index => newSequence.indexOf(index));
72301
72331
  const sheetDimensions = (0, _classPrivateFieldGet2.default)(this, _indexSyncer).getEngine().getSheetDimensions((0, _classPrivateFieldGet2.default)(this, _indexSyncer).getSheetId());
72302
72332
  let sizeForAxis;
@@ -77522,9 +77552,20 @@ var _onBeforeDrawAreaBorders = /*#__PURE__*/new WeakSet();
77522
77552
  var _onAfterModifyTransformStart = /*#__PURE__*/new WeakSet();
77523
77553
  var _onAfterDrawSelection = /*#__PURE__*/new WeakSet();
77524
77554
  var _onBeforeRemoveCellClassNames = /*#__PURE__*/new WeakSet();
77555
+ var _onBeforeBeginEditing = /*#__PURE__*/new WeakSet();
77525
77556
  class MergeCells extends _base.BasePlugin {
77526
77557
  constructor() {
77527
77558
  super(...arguments);
77559
+ /**
77560
+ * Allows to prevent opening the editor while more than one merged cell is selected.
77561
+ *
77562
+ * @param {number} row Visual row index of the edited cell.
77563
+ * @param {number} column Visual column index of the edited cell.
77564
+ * @param {string | null} initialValue The initial editor value.
77565
+ * @param {MouseEvent | KeyboardEvent} event The event which was responsible for opening the editor.
77566
+ * @returns {boolean | undefined}
77567
+ */
77568
+ _classPrivateMethodInitSpec(this, _onBeforeBeginEditing);
77528
77569
  /**
77529
77570
  * `beforeRemoveCellClassNames` hook callback. Used to remove additional class name from all cells in the table.
77530
77571
  *
@@ -77883,6 +77924,12 @@ class MergeCells extends _base.BasePlugin {
77883
77924
  }
77884
77925
  return _classPrivateMethodGet(_this, _onBeforeRemoveCellClassNames, _onBeforeRemoveCellClassNames2).call(_this, ...args);
77885
77926
  });
77927
+ this.addHook('beforeBeginEditing', function () {
77928
+ for (var _len24 = arguments.length, args = new Array(_len24), _key24 = 0; _key24 < _len24; _key24++) {
77929
+ args[_key24] = arguments[_key24];
77930
+ }
77931
+ return _classPrivateMethodGet(_this, _onBeforeBeginEditing, _onBeforeBeginEditing2).call(_this, ...args);
77932
+ });
77886
77933
  this.addHook('beforeUndoStackChange', (action, source) => {
77887
77934
  if (source === 'MergeCells') {
77888
77935
  return false;
@@ -78715,6 +78762,19 @@ function _onAfterDrawSelection2(currentRow, currentColumn, cornersOfSelection, l
78715
78762
  function _onBeforeRemoveCellClassNames2() {
78716
78763
  return this.selectionCalculations.getSelectedMergedCellClassNameToRemove();
78717
78764
  }
78765
+ function _onBeforeBeginEditing2(row, column, initialValue, event) {
78766
+ if (!(event instanceof MouseEvent)) {
78767
+ return;
78768
+ }
78769
+ const selection = this.hot.getSelectedRangeLast();
78770
+ const mergeCell = this.mergedCellsCollection.getByRange(selection);
78771
+ if (!mergeCell) {
78772
+ return;
78773
+ }
78774
+ const from = this.hot._createCellCoords(mergeCell.row, mergeCell.col);
78775
+ const to = this.hot._createCellCoords(mergeCell.row + mergeCell.rowspan - 1, mergeCell.col + mergeCell.colspan - 1);
78776
+ return this.hot.selection.getLayerLevel() === 0 && selection.isEqual(this.hot._createCellRange(from, from, to));
78777
+ }
78718
78778
 
78719
78779
  /***/ }),
78720
78780
  /* 622 */
@@ -78797,7 +78857,7 @@ class MergedCellsCollection {
78797
78857
  }
78798
78858
 
78799
78859
  /**
78800
- * Get a merged cell containing the provided range.
78860
+ * Get the first-found merged cell containing the provided range.
78801
78861
  *
78802
78862
  * @param {CellRange|object} range The range to search merged cells for.
78803
78863
  * @returns {MergedCellCoords|boolean}
@@ -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-317e00f-20240111
29
- * Release date: 30/11/2023 (built at 11/01/2024 09:04:02)
28
+ * Version: 0.0.0-next-d247bd5-20240112
29
+ * Release date: 30/11/2023 (built at 12/01/2024 10:49:30)
30
30
  */.handsontable .table td,.handsontable .table th{border-top:none}.handsontable tr{background:#fff}.handsontable td{background-color:inherit}.handsontable .table caption+thead tr:first-child td,.handsontable .table caption+thead tr:first-child th,.handsontable .table colgroup+thead tr:first-child td,.handsontable .table colgroup+thead tr:first-child th,.handsontable .table thead:first-child tr:first-child td,.handsontable .table thead:first-child tr:first-child th{border-top:1px solid #ccc}.handsontable .table-bordered{border:0;border-collapse:separate}.handsontable .table-bordered td,.handsontable .table-bordered th{border-left:none}.handsontable .table-bordered td:first-child,.handsontable .table-bordered th:first-child{border-left:1px solid #ccc}.handsontable .table>tbody>tr>td,.handsontable .table>tbody>tr>th,.handsontable .table>tfoot>tr>td,.handsontable .table>tfoot>tr>th,.handsontable .table>thead>tr>td,.handsontable .table>thead>tr>th{line-height:21px;padding:0}.col-lg-1.handsontable,.col-lg-10.handsontable,.col-lg-11.handsontable,.col-lg-12.handsontable,.col-lg-2.handsontable,.col-lg-3.handsontable,.col-lg-4.handsontable,.col-lg-5.handsontable,.col-lg-6.handsontable,.col-lg-7.handsontable,.col-lg-8.handsontable,.col-lg-9.handsontable,.col-md-1.handsontable,.col-md-10.handsontable,.col-md-11.handsontable,.col-md-12.handsontable,.col-md-2.handsontable,.col-md-3.handsontable,.col-md-4.handsontable,.col-md-5.handsontable,.col-md-6.handsontable,.col-md-7.handsontable,.col-md-8.handsontable,.col-md-9.handsontable .col-sm-1.handsontable,.col-sm-10.handsontable,.col-sm-11.handsontable,.col-sm-12.handsontable,.col-sm-2.handsontable,.col-sm-3.handsontable,.col-sm-4.handsontable,.col-sm-5.handsontable,.col-sm-6.handsontable,.col-sm-7.handsontable,.col-sm-8.handsontable,.col-sm-9.handsontable .col-xs-1.handsontable,.col-xs-10.handsontable,.col-xs-11.handsontable,.col-xs-12.handsontable,.col-xs-2.handsontable,.col-xs-3.handsontable,.col-xs-4.handsontable,.col-xs-5.handsontable,.col-xs-6.handsontable,.col-xs-7.handsontable,.col-xs-8.handsontable,.col-xs-9.handsontable{padding-left:0;padding-right:0}.handsontable .table-striped>tbody>tr:nth-of-type(2n){background-color:#fff}.handsontable{position:relative}.handsontable .hide{display:none}.handsontable .relative{position:relative}.handsontable .wtHider{width:0}.handsontable .wtSpreader{height:auto;position:relative;width:0}.handsontable div,.handsontable input,.handsontable table,.handsontable tbody,.handsontable td,.handsontable textarea,.handsontable th,.handsontable thead{box-sizing:content-box;-webkit-box-sizing:content-box;-moz-box-sizing:content-box}.handsontable input,.handsontable textarea{min-height:auto}.handsontable table.htCore{border-collapse:separate;border-spacing:0;border-width:0;cursor:default;margin:0;max-height:none;max-width:none;outline-width:0;table-layout:fixed;width:0}.handsontable col,.handsontable col.rowHeader{width:50px}.handsontable td,.handsontable th{background-color:#fff;border-bottom:1px solid #ccc;border-left-width:0;border-right:1px solid #ccc;border-top-width:0;empty-cells:show;height:22px;line-height:21px;outline:none;outline-width:0;overflow:hidden;padding:0 4px;vertical-align:top;white-space:pre-wrap}[dir=rtl].handsontable td,[dir=rtl].handsontable th{border-left:1px solid #ccc;border-right-width:0}.handsontable th:last-child{border-bottom:1px solid #ccc;border-left:none;border-right:1px solid #ccc}[dir=rtl].handsontable th:last-child{border-left:1px solid #ccc;border-right:none}.handsontable td:first-of-type,.handsontable th:first-child,.handsontable th:nth-child(2){border-left:1px solid #ccc}[dir=rtl].handsontable td:first-of-type,[dir=rtl].handsontable th:first-child,[dir=rtl].handsontable th:nth-child(2){border-right:1px solid #ccc}.handsontable .ht_clone_top th:nth-child(2){border-left-width:0;border-right:1px solid #ccc}[dir=rtl].handsontable .ht_clone_top th:nth-child(2){border-left:1px solid #ccc;border-right-width:0}.handsontable.htRowHeaders thead tr th:nth-child(2){border-left:1px solid #ccc}[dir=rtl].handsontable.htRowHeaders thead tr th:nth-child(2){border-right:1px solid #ccc}.handsontable tr:first-child td,.handsontable tr:first-child th{border-top:1px solid #ccc}.ht_master:not(.innerBorderInlineStart):not(.emptyColumns)~.handsontable tbody tr th,.ht_master:not(.innerBorderInlineStart):not(.emptyColumns)~.handsontable:not(.ht_clone_top) thead tr th:first-child{border-left:1px solid #ccc;border-right-width:0}[dir=rtl].ht_master:not(.innerBorderInlineStart):not(.emptyColumns)~.handsontable tbody tr th,[dir=rtl].ht_master:not(.innerBorderInlineStart):not(.emptyColumns)~.handsontable:not(.ht_clone_top) thead tr th:first-child{border-left-width:0;border-right:1px solid #ccc}.ht_master:not(.innerBorderTop):not(.innerBorderBottom) thead tr.lastChild th,.ht_master:not(.innerBorderTop):not(.innerBorderBottom) thead tr:last-child th,.ht_master:not(.innerBorderTop):not(.innerBorderBottom)~.handsontable thead tr.lastChild th,.ht_master:not(.innerBorderTop):not(.innerBorderBottom)~.handsontable thead tr:last-child th{border-bottom-width:0}.handsontable th{background-color:#f0f0f0;color:#222;font-weight:400;text-align:center;white-space:nowrap}.handsontable thead th{padding:0}.handsontable th.active{background-color:#ccc}.handsontable thead th .relative{padding:2px 4px}.handsontable span.colHeader{display:inline-block;line-height:1.1}.handsontable .wtBorder{font-size:0;position:absolute}.handsontable .wtBorder.hidden{display:none!important}.handsontable .wtBorder.current{z-index:10}.handsontable .wtBorder.area{z-index:8}.handsontable .wtBorder.fill{z-index:6}.handsontable .wtBorder.corner{cursor:crosshair;font-size:0}.ht_clone_master{z-index:100}.ht_clone_inline_start{z-index:120}.ht_clone_bottom{z-index:130}.ht_clone_bottom_inline_start_corner{z-index:150}.ht_clone_top{z-index:160}.ht_clone_top_inline_start_corner{z-index:180}.handsontable col.hidden{width:0!important}.handsontable tr.hidden,.handsontable tr.hidden td,.handsontable tr.hidden th{display:none}.ht_clone_bottom,.ht_clone_inline_start,.ht_clone_top,.ht_master{overflow:hidden}.ht_master .wtHolder{overflow:auto}.handsontable .ht_clone_inline_start 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;touch-action:manipulation}.handsontable a{color:#104acc}.handsontable.htAutoSize{left:-99000px;position:absolute;top:-99000px;visibility:hidden}.handsontable td.htInvalid{background-color:#ffbeba!important}.handsontable td.htNoWrap{white-space:nowrap}.handsontable td.invisibleSelection,.handsontable th.invisibleSelection{outline:none}.handsontable td.invisibleSelection::selection,.handsontable th.invisibleSelection::selection{background:hsla(0,0%,100%,0)}.hot-display-license-info{color:#373737;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Helvetica Neue,Arial,sans-serif;font-size:10px;font-weight:400;padding:5px 0 3px;text-align:left}.hot-display-license-info a{color:#104acc;font-size:10px}.handsontable .htFocusCatcher{border:0;height:0;margin:0;opacity:0;padding:0;position:absolute;width:0;z-index:-1}.handsontable .manualColumnResizer{cursor:col-resize;height:25px;position:absolute;top:0;width:5px;z-index:210}.handsontable .manualRowResizer{cursor:row-resize;height:5px;left:0;position:absolute;width:50px;z-index:210}.handsontable .manualColumnResizer.active,.handsontable .manualColumnResizer:hover,.handsontable .manualRowResizer.active,.handsontable .manualRowResizer:hover{background-color:#34a9db}.handsontable .manualColumnResizerGuide{background-color:#34a9db;border-left:none;border-right:1px dashed #777;display:none;margin-left:5px;margin-right:unset;position:absolute;right:unset;top:0;width:0}[dir=rtl].handsontable .manualColumnResizerGuide{border-left:1px dashed #777;border-right:none;left:unset;margin-left:unset;margin-right:5px}.handsontable .manualRowResizerGuide{background-color:#34a9db;border-bottom:1px dashed #777;bottom:0;display:none;height:0;left:0;margin-top:5px;position:absolute}.handsontable .manualColumnResizerGuide.active,.handsontable .manualRowResizerGuide.active{display:block;z-index:209}.handsontable .columnSorting{position:relative}.handsontable .columnSorting.sortAction:hover{cursor:pointer;text-decoration:underline}.handsontable span.colHeader.columnSorting: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 td.area,.handsontable td.area-1,.handsontable td.area-2,.handsontable td.area-3,.handsontable td.area-4,.handsontable td.area-5,.handsontable td.area-6,.handsontable td.area-7{position:relative}.handsontable td.area-1:before,.handsontable td.area-2:before,.handsontable td.area-3:before,.handsontable td.area-4:before,.handsontable td.area-5:before,.handsontable td.area-6:before,.handsontable td.area-7:before,.handsontable td.area:before{background:#005eff;bottom:0;bottom:-100%\9;content:"";left:0;position:absolute;right:0;top:0}@media (-ms-high-contrast:none),screen and (-ms-high-contrast:active){.handsontable td.area-1:before,.handsontable td.area-2:before,.handsontable td.area-3:before,.handsontable td.area-4:before,.handsontable td.area-5:before,.handsontable td.area-6:before,.handsontable td.area-7:before,.handsontable td.area:before{bottom:-100%}}.handsontable td.area:before{opacity:.1}.handsontable td.area-1:before{opacity:.2}.handsontable td.area-2:before{opacity:.27}.handsontable td.area-3:before{opacity:.35}.handsontable td.area-4:before{opacity:.41}.handsontable td.area-5:before{opacity:.47}.handsontable td.area-6:before{opacity:.54}.handsontable td.area-7:before{opacity:.58}.handsontable tbody th.current,.handsontable thead th.current{box-shadow:inset 0 0 0 2px #4b89ff}.handsontable tbody th.ht__highlight,.handsontable thead th.ht__highlight{background-color:#dcdcdc}.handsontable tbody th.ht__active_highlight,.handsontable thead th.ht__active_highlight{background-color:#8eb0e7;color:#000}.handsontableInput{background-color:#fff;border:none;border-radius:0;box-shadow:inset 0 0 0 2px #5292f7;color:#000;display:block;font-family:inherit;font-size:inherit;line-height:21px;margin:0;outline-width:0;padding:1px 5px 0;resize:none}.handsontableInput:focus{outline:none}.handsontableInputHolder{left:0;position:absolute;top:0}.htSelectEditor{-webkit-appearance:menulist-button!important;position:absolute;width:auto}.htSelectEditor:focus{outline:none}.handsontable .htDimmed{color:#777}.handsontable .htSubmenu{position:relative}.handsontable .htSubmenu :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 .collapsibleIndicator{background:#eee;border:1px solid #a6a6a6;border-radius:10px;-webkit-box-shadow:0 0 0 6px #eee;-moz-box-shadow:0 0 0 6px #eee;box-shadow:0 0 0 3px #eee;color:#222;cursor:pointer;font-size:10px;height:10px;left:unset;line-height:8px;position:absolute;right:5px;text-align:center;top:50%;transform:translateY(-50%);width:10px}[dir=rtl].handsontable .collapsibleIndicator{left:5px;right:unset}.handsontable.mobile,.handsontable.mobile .wtHolder{-webkit-touch-callout:none;-webkit-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{display:inline-block}.handsontable .htCheckboxRendererInput.noValue{opacity:.5}.handsontable .htCheckboxRendererLabel{cursor:pointer;display:inline-block;font-size:inherit;vertical-align:middle}.handsontable .htCheckboxRendererLabel.fullWidth{width:100%}.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}
31
31
  /*!
32
32
  * Handsontable ContextMenu