handsontable 0.0.0-next-40cdda4-20240118 → 0.0.0-next-ff99030-20240119

Sign up to get free protection for your applications and to get access to all the features.

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-40cdda4-20240118
29
- * Release date: 16/01/2024 (built at 18/01/2024 13:04:39)
28
+ * Version: 0.0.0-next-ff99030-20240119
29
+ * Release date: 16/01/2024 (built at 19/01/2024 11:00:04)
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 = "18/01/2024 13:04:39";
111
- Handsontable.version = "0.0.0-next-40cdda4-20240118";
110
+ Handsontable.buildDate = "19/01/2024 11:00:04";
111
+ Handsontable.version = "0.0.0-next-ff99030-20240119";
112
112
  Handsontable.languages = {
113
113
  dictionaryKeys: _registry.dictionaryKeys,
114
114
  getLanguageDictionary: _registry.getLanguageDictionary,
@@ -8470,7 +8470,7 @@ const domMessages = {
8470
8470
  function _injectProductInfo(key, element) {
8471
8471
  const hasValidType = !isEmpty(key);
8472
8472
  const isNonCommercial = typeof key === 'string' && key.toLowerCase() === 'non-commercial-and-evaluation';
8473
- const hotVersion = "0.0.0-next-40cdda4-20240118";
8473
+ const hotVersion = "0.0.0-next-ff99030-20240119";
8474
8474
  let keyValidityDate;
8475
8475
  let consoleMessageState = 'invalid';
8476
8476
  let domMessageState = 'invalid';
@@ -11451,7 +11451,8 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
11451
11451
  * @since 14.0.0
11452
11452
  * @event Hooks#beforeViewportScrollVertically
11453
11453
  * @param {number} visualRow Visual row index.
11454
- * @returns {number} Returns modified row index (or the same as passed in the method argument) to which the viewport will be scrolled.
11454
+ * @returns {number | boolean} Returns modified row index (or the same as passed in the method argument) to which
11455
+ * the viewport will be scrolled. If the returned value is `false`, the scrolling will be canceled.
11455
11456
  */
11456
11457
  'beforeViewportScrollVertically',
11457
11458
  /**
@@ -11461,7 +11462,8 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
11461
11462
  * @since 14.0.0
11462
11463
  * @event Hooks#beforeViewportScrollHorizontally
11463
11464
  * @param {number} visualColumn Visual column index.
11464
- * @returns {number} Returns modified column index (or the same as passed in the method argument) to which the viewport will be scrolled.
11465
+ * @returns {number | boolean} Returns modified column index (or the same as passed in the method argument) to which
11466
+ * the viewport will be scrolled. If the returned value is `false`, the scrolling will be canceled.
11465
11467
  */
11466
11468
  'beforeViewportScrollHorizontally',
11467
11469
  /**
@@ -24668,6 +24670,9 @@ class Scroll {
24668
24670
  return false;
24669
24671
  }
24670
24672
  column = this.dataAccessObject.wtSettings.getSetting('onBeforeViewportScrollHorizontally', column);
24673
+ if (!Number.isInteger(column) || column < 0 || column > totalColumns) {
24674
+ return false;
24675
+ }
24671
24676
  const firstColumn = this.getFirstVisibleColumn();
24672
24677
  const lastColumn = this.getLastVisibleColumn();
24673
24678
  let result = false;
@@ -24710,6 +24715,9 @@ class Scroll {
24710
24715
  return false;
24711
24716
  }
24712
24717
  row = this.dataAccessObject.wtSettings.getSetting('onBeforeViewportScrollVertically', row);
24718
+ if (!Number.isInteger(row) || row < 0 || row > totalRows) {
24719
+ return false;
24720
+ }
24713
24721
  const firstRow = this.getFirstVisibleRow();
24714
24722
  const lastRow = this.getLastVisibleRow();
24715
24723
  let result = false;
@@ -33033,8 +33041,8 @@ class Selection {
33033
33041
  } = selectionSchemaNormalizer(selection);
33034
33042
  this.setRangeStartOnly(from.clone(), false);
33035
33043
  this.setRangeEnd(to.clone());
33036
- this.finish();
33037
33044
  });
33045
+ this.finish();
33038
33046
  }
33039
33047
  return isValid;
33040
33048
  }
@@ -64321,6 +64329,8 @@ var _interopRequireDefault = __webpack_require__(1);
64321
64329
  exports.__esModule = true;
64322
64330
  __webpack_require__(77);
64323
64331
  var _defineProperty2 = _interopRequireDefault(__webpack_require__(122));
64332
+ var _classPrivateFieldGet2 = _interopRequireDefault(__webpack_require__(134));
64333
+ var _classPrivateFieldSet2 = _interopRequireDefault(__webpack_require__(137));
64324
64334
  var _base = __webpack_require__(437);
64325
64335
  var _array = __webpack_require__(113);
64326
64336
  var _object = __webpack_require__(117);
@@ -64334,6 +64344,7 @@ var _predefinedItems = __webpack_require__(473);
64334
64344
  __webpack_require__(533);
64335
64345
  var _a11y = __webpack_require__(114);
64336
64346
  function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
64347
+ function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
64337
64348
  function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
64338
64349
  function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
64339
64350
  _pluginHooks.default.getSingleton().register('afterDropdownMenuDefaultOptions');
@@ -64396,6 +64407,7 @@ const SHORTCUTS_GROUP = PLUGIN_KEY;
64396
64407
  * ```
64397
64408
  * :::
64398
64409
  */
64410
+ var _isButtonClicked = /*#__PURE__*/new WeakMap();
64399
64411
  var _addCustomShortcuts = /*#__PURE__*/new WeakSet();
64400
64412
  var _onTableClick = /*#__PURE__*/new WeakSet();
64401
64413
  var _onAfterGetColHeader = /*#__PURE__*/new WeakSet();
@@ -64403,6 +64415,8 @@ var _onMenuBeforeOpen = /*#__PURE__*/new WeakSet();
64403
64415
  var _onMenuAfterOpen = /*#__PURE__*/new WeakSet();
64404
64416
  var _onSubMenuAfterOpen = /*#__PURE__*/new WeakSet();
64405
64417
  var _onMenuAfterClose = /*#__PURE__*/new WeakSet();
64418
+ var _onBeforeViewportScrollHorizontally = /*#__PURE__*/new WeakSet();
64419
+ var _onBeforeOnCellMouseDown = /*#__PURE__*/new WeakSet();
64406
64420
  class DropdownMenu extends _base.BasePlugin {
64407
64421
  static get PLUGIN_KEY() {
64408
64422
  return PLUGIN_KEY;
@@ -64434,6 +64448,21 @@ class DropdownMenu extends _base.BasePlugin {
64434
64448
  super(hotInstance);
64435
64449
 
64436
64450
  // One listener for enable/disable functionality
64451
+ /**
64452
+ * Hook sets the internal flag to `true` when the button is clicked.
64453
+ *
64454
+ * @param {MouseEvent} event The mouse event object.
64455
+ */
64456
+ _classPrivateMethodInitSpec(this, _onBeforeOnCellMouseDown);
64457
+ /**
64458
+ * Hook allows blocking horizontal scroll when the menu is opened by clicking on
64459
+ * the column header button. This prevents from scrolling the viewport (jump effect) when
64460
+ * the button is clicked.
64461
+ *
64462
+ * @param {number} visualColumn Visual column index.
64463
+ * @returns {number | null}
64464
+ */
64465
+ _classPrivateMethodInitSpec(this, _onBeforeViewportScrollHorizontally);
64437
64466
  /**
64438
64467
  * On menu after close listener.
64439
64468
  *
@@ -64498,6 +64527,15 @@ class DropdownMenu extends _base.BasePlugin {
64498
64527
  * @type {Menu}
64499
64528
  */
64500
64529
  (0, _defineProperty2.default)(this, "menu", null);
64530
+ /**
64531
+ * Flag which determines if the button that opens the menu was clicked.
64532
+ *
64533
+ * @type {boolean}
64534
+ */
64535
+ _classPrivateFieldInitSpec(this, _isButtonClicked, {
64536
+ writable: true,
64537
+ value: false
64538
+ });
64501
64539
  this.hot.addHook('afterGetColHeader', (col, TH) => _classPrivateMethodGet(this, _onAfterGetColHeader, _onAfterGetColHeader2).call(this, col, TH));
64502
64540
  }
64503
64541
 
@@ -64523,6 +64561,18 @@ class DropdownMenu extends _base.BasePlugin {
64523
64561
  return;
64524
64562
  }
64525
64563
  this.itemsFactory = new _itemsFactory.ItemsFactory(this.hot, DropdownMenu.DEFAULT_ITEMS);
64564
+ this.addHook('beforeOnCellMouseDown', function () {
64565
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
64566
+ args[_key] = arguments[_key];
64567
+ }
64568
+ return _classPrivateMethodGet(_this, _onBeforeOnCellMouseDown, _onBeforeOnCellMouseDown2).call(_this, ...args);
64569
+ });
64570
+ this.addHook('beforeViewportScrollHorizontally', function () {
64571
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
64572
+ args[_key2] = arguments[_key2];
64573
+ }
64574
+ return _classPrivateMethodGet(_this, _onBeforeViewportScrollHorizontally, _onBeforeViewportScrollHorizontally2).call(_this, ...args);
64575
+ });
64526
64576
  const settings = this.hot.getSettings()[PLUGIN_KEY];
64527
64577
  const predefinedItems = {
64528
64578
  items: this.itemsFactory.getItems(settings)
@@ -64552,8 +64602,8 @@ class DropdownMenu extends _base.BasePlugin {
64552
64602
  this.menu.addLocalHook('afterSubmenuOpen', subMenuInstance => _classPrivateMethodGet(this, _onSubMenuAfterOpen, _onSubMenuAfterOpen2).call(this, subMenuInstance));
64553
64603
  this.menu.addLocalHook('afterClose', () => _classPrivateMethodGet(this, _onMenuAfterClose, _onMenuAfterClose2).call(this));
64554
64604
  this.menu.addLocalHook('executeCommand', function () {
64555
- for (var _len = arguments.length, params = new Array(_len), _key = 0; _key < _len; _key++) {
64556
- params[_key] = arguments[_key];
64605
+ for (var _len3 = arguments.length, params = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
64606
+ params[_key3] = arguments[_key3];
64557
64607
  }
64558
64608
  return _this.executeCommand.call(_this, ...params);
64559
64609
  });
@@ -64726,8 +64776,8 @@ class DropdownMenu extends _base.BasePlugin {
64726
64776
  * @param {*} params Additional parameters passed to the command executor.
64727
64777
  */
64728
64778
  executeCommand(commandName) {
64729
- for (var _len2 = arguments.length, params = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
64730
- params[_key2 - 1] = arguments[_key2];
64779
+ for (var _len4 = arguments.length, params = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {
64780
+ params[_key4 - 1] = arguments[_key4];
64731
64781
  }
64732
64782
  this.commandExecutor.execute(commandName, ...params);
64733
64783
  }
@@ -64771,6 +64821,7 @@ function _onTableClick2(event) {
64771
64821
  if ((0, _element.hasClass)(event.target, BUTTON_CLASS_NAME)) {
64772
64822
  const offset = (0, _utils.getDocumentOffsetByElement)(this.menu.container, this.hot.rootDocument);
64773
64823
  const rect = event.target.getBoundingClientRect();
64824
+ (0, _classPrivateFieldSet2.default)(this, _isButtonClicked, false);
64774
64825
  this.open({
64775
64826
  left: rect.left + offset.left,
64776
64827
  top: rect.top + event.target.offsetHeight + 3 + offset.top
@@ -64832,6 +64883,14 @@ function _onMenuAfterClose2() {
64832
64883
  this.hot.listen();
64833
64884
  this.hot.runHooks('afterDropdownMenuHide', this);
64834
64885
  }
64886
+ function _onBeforeViewportScrollHorizontally2(visualColumn) {
64887
+ return (0, _classPrivateFieldGet2.default)(this, _isButtonClicked) ? null : visualColumn;
64888
+ }
64889
+ function _onBeforeOnCellMouseDown2(event) {
64890
+ if ((0, _element.hasClass)(event.target, BUTTON_CLASS_NAME)) {
64891
+ (0, _classPrivateFieldSet2.default)(this, _isButtonClicked, true);
64892
+ }
64893
+ }
64835
64894
  DropdownMenu.SEPARATOR = {
64836
64895
  name: _predefinedItems.SEPARATOR
64837
64896
  };
@@ -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-40cdda4-20240118
29
- * Release date: 16/01/2024 (built at 18/01/2024 13:04:57)
28
+ * Version: 0.0.0-next-ff99030-20240119
29
+ * Release date: 16/01/2024 (built at 19/01/2024 11:00:21)
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