handsontable 0.0.0-next-ae2e00f-20231213 → 0.0.0-next-0416ebd-20231214

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-ae2e00f-20231213
29
- * Release date: 30/11/2023 (built at 13/12/2023 14:05:52)
28
+ * Version: 0.0.0-next-0416ebd-20231214
29
+ * Release date: 30/11/2023 (built at 14/12/2023 11:10:00)
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 = "13/12/2023 14:05:52";
111
- Handsontable.version = "0.0.0-next-ae2e00f-20231213";
110
+ Handsontable.buildDate = "14/12/2023 11:10:00";
111
+ Handsontable.version = "0.0.0-next-0416ebd-20231214";
112
112
  Handsontable.languages = {
113
113
  dictionaryKeys: _registry.dictionaryKeys,
114
114
  getLanguageDictionary: _registry.getLanguageDictionary,
@@ -8515,7 +8515,7 @@ const domMessages = {
8515
8515
  function _injectProductInfo(key, element) {
8516
8516
  const hasValidType = !isEmpty(key);
8517
8517
  const isNonCommercial = typeof key === 'string' && key.toLowerCase() === 'non-commercial-and-evaluation';
8518
- const hotVersion = "0.0.0-next-ae2e00f-20231213";
8518
+ const hotVersion = "0.0.0-next-0416ebd-20231214";
8519
8519
  let keyValidityDate;
8520
8520
  let consoleMessageState = 'invalid';
8521
8521
  let domMessageState = 'invalid';
@@ -13979,6 +13979,7 @@ let listenersCounter = 0;
13979
13979
  * Event DOM manager for internal use in Handsontable.
13980
13980
  *
13981
13981
  * @class EventManager
13982
+ * @util
13982
13983
  */
13983
13984
  class EventManager {
13984
13985
  /**
@@ -14011,7 +14012,6 @@ class EventManager {
14011
14012
  addEventListener(element, eventName, callback) {
14012
14013
  let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
14013
14014
  /**
14014
- * @private
14015
14015
  * @param {Event} event The event object.
14016
14016
  */
14017
14017
  function callbackProxy(event) {
@@ -14171,7 +14171,6 @@ function extendEvent(event) {
14171
14171
  }
14172
14172
  var _default = exports["default"] = EventManager;
14173
14173
  /**
14174
- * @private
14175
14174
  * @returns {number}
14176
14175
  */
14177
14176
  function getListenersCounter() {
@@ -87355,7 +87354,6 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
87355
87354
  var _interopRequireDefault = __webpack_require__(1);
87356
87355
  exports.__esModule = true;
87357
87356
  __webpack_require__(8);
87358
- __webpack_require__(670);
87359
87357
  var _pluginHooks = _interopRequireDefault(__webpack_require__(128));
87360
87358
  var _array = __webpack_require__(113);
87361
87359
  var _number = __webpack_require__(141);
@@ -87412,30 +87410,11 @@ function UndoRedo(instance) {
87412
87410
  instance.addHook('afterCreateRow', (index, amount, source) => {
87413
87411
  plugin.done(() => new UndoRedo.CreateRowAction(index, amount), source);
87414
87412
  });
87415
- const getCellMetas = (fromRow, toRow, fromColumn, toColumn) => {
87416
- const genericKeys = ['visualRow', 'visualCol', 'row', 'col', 'prop'];
87417
- const genericKeysLength = genericKeys.length;
87418
- const cellMetas = [];
87419
- (0, _number.rangeEach)(fromColumn, toColumn, columnIndex => {
87420
- (0, _number.rangeEach)(fromRow, toRow, rowIndex => {
87421
- const cellMeta = instance.getCellMeta(rowIndex, columnIndex);
87422
- if (Object.keys(cellMeta).length !== genericKeysLength) {
87423
- const uniqueMeta = Object.fromEntries(Object.entries(cellMeta).filter(_ref => {
87424
- let [key] = _ref;
87425
- return genericKeys.includes(key) === false;
87426
- }));
87427
- cellMetas.push([cellMeta.visualRow, cellMeta.visualCol, uniqueMeta]);
87428
- }
87429
- });
87430
- });
87431
- return cellMetas;
87432
- };
87433
87413
  instance.addHook('beforeRemoveRow', (index, amount, logicRows, source) => {
87434
87414
  const wrappedAction = () => {
87435
87415
  const physicalRowIndex = instance.toPhysicalRow(index);
87436
- const lastRowIndex = physicalRowIndex + amount - 1;
87437
87416
  const removedData = (0, _object.deepClone)(plugin.instance.getSourceData(physicalRowIndex, 0, physicalRowIndex + amount - 1, plugin.instance.countSourceCols() - 1));
87438
- return new UndoRedo.RemoveRowAction(physicalRowIndex, removedData, instance.getSettings().fixedRowsBottom, instance.getSettings().fixedRowsTop, instance.rowIndexMapper.getIndexesSequence(), getCellMetas(physicalRowIndex, lastRowIndex, 0, instance.countCols() - 1));
87417
+ return new UndoRedo.RemoveRowAction(physicalRowIndex, removedData, instance.getSettings().fixedRowsBottom, instance.getSettings().fixedRowsTop, instance.rowIndexMapper.getIndexesSequence());
87439
87418
  };
87440
87419
  plugin.done(wrappedAction, source);
87441
87420
  });
@@ -87446,14 +87425,13 @@ function UndoRedo(instance) {
87446
87425
  const wrappedAction = () => {
87447
87426
  const originalData = plugin.instance.getSourceDataArray();
87448
87427
  const columnIndex = (plugin.instance.countCols() + index) % plugin.instance.countCols();
87449
- const lastColumnIndex = columnIndex + amount - 1;
87450
87428
  const removedData = [];
87451
87429
  const headers = [];
87452
87430
  const indexes = [];
87453
87431
  (0, _number.rangeEach)(originalData.length - 1, i => {
87454
87432
  const column = [];
87455
87433
  const origRow = originalData[i];
87456
- (0, _number.rangeEach)(columnIndex, lastColumnIndex, j => {
87434
+ (0, _number.rangeEach)(columnIndex, columnIndex + (amount - 1), j => {
87457
87435
  column.push(origRow[instance.toPhysicalColumn(j)]);
87458
87436
  });
87459
87437
  removedData.push(column);
@@ -87468,7 +87446,7 @@ function UndoRedo(instance) {
87468
87446
  }
87469
87447
  const columnsMap = instance.columnIndexMapper.getIndexesSequence();
87470
87448
  const rowsMap = instance.rowIndexMapper.getIndexesSequence();
87471
- return new UndoRedo.RemoveColumnAction(columnIndex, indexes, removedData, headers, columnsMap, rowsMap, instance.getSettings().fixedColumnsStart, getCellMetas(0, instance.countRows(), columnIndex, lastColumnIndex));
87449
+ return new UndoRedo.RemoveColumnAction(columnIndex, indexes, removedData, headers, columnsMap, rowsMap, instance.getSettings().fixedColumnsStart);
87472
87450
  };
87473
87451
  plugin.done(wrappedAction, source);
87474
87452
  });
@@ -87736,6 +87714,32 @@ UndoRedo.ChangeAction.prototype.undo = function (instance, undoneCallback) {
87736
87714
  instance.undoRedo.doneActions.pop();
87737
87715
  }
87738
87716
  }
87717
+ const selectedLast = instance.getSelectedLast();
87718
+ if (selectedLast !== undefined) {
87719
+ const [changedRow, changedColumn] = data[0];
87720
+ const [selectedRow, selectedColumn] = selectedLast;
87721
+ const firstFullyVisibleRow = instance.view.getFirstFullyVisibleRow();
87722
+ const firstFullyVisibleColumn = instance.view.getFirstFullyVisibleColumn();
87723
+ const isInVerticalViewPort = changedRow >= firstFullyVisibleRow;
87724
+ const isInHorizontalViewPort = changedColumn >= firstFullyVisibleColumn;
87725
+ const isInViewport = isInVerticalViewPort && isInHorizontalViewPort;
87726
+ const isChangedSelection = selectedRow !== changedRow || selectedColumn !== changedColumn;
87727
+
87728
+ // Performing scroll only when selection has been changed right after editing a cell.
87729
+ if (isInViewport === false && isChangedSelection === true) {
87730
+ const scrollConfig = {
87731
+ row: changedRow,
87732
+ col: changedColumn
87733
+ };
87734
+ if (isInVerticalViewPort === false) {
87735
+ scrollConfig.verticalSnap = 'top';
87736
+ }
87737
+ if (isInHorizontalViewPort === false) {
87738
+ scrollConfig.horizontalSnap = 'start';
87739
+ }
87740
+ instance.scrollViewportTo(scrollConfig);
87741
+ }
87742
+ }
87739
87743
  instance.selectCells(this.selected, false, false);
87740
87744
  };
87741
87745
  UndoRedo.ChangeAction.prototype.redo = function (instance, onFinishCallback) {
@@ -87786,16 +87790,14 @@ UndoRedo.CreateRowAction.prototype.redo = function (instance, redoneCallback) {
87786
87790
  * @param {number} fixedRowsBottom Number of fixed rows on the bottom. Remove row action change it sometimes.
87787
87791
  * @param {number} fixedRowsTop Number of fixed rows on the top. Remove row action change it sometimes.
87788
87792
  * @param {Array} rowIndexesSequence Row index sequence taken from the row index mapper.
87789
- * @param {Array} removedCellMetas List of removed cell metas.
87790
87793
  */
87791
- UndoRedo.RemoveRowAction = function (index, data, fixedRowsBottom, fixedRowsTop, rowIndexesSequence, removedCellMetas) {
87794
+ UndoRedo.RemoveRowAction = function (index, data, fixedRowsBottom, fixedRowsTop, rowIndexesSequence) {
87792
87795
  this.index = index;
87793
87796
  this.data = data;
87794
87797
  this.actionType = 'remove_row';
87795
87798
  this.fixedRowsBottom = fixedRowsBottom;
87796
87799
  this.fixedRowsTop = fixedRowsTop;
87797
87800
  this.rowIndexesSequence = rowIndexesSequence;
87798
- this.removedCellMetas = removedCellMetas;
87799
87801
  };
87800
87802
  (0, _object.inherit)(UndoRedo.RemoveRowAction, UndoRedo.Action);
87801
87803
  UndoRedo.RemoveRowAction.prototype.undo = function (instance, undoneCallback) {
@@ -87814,10 +87816,6 @@ UndoRedo.RemoveRowAction.prototype.undo = function (instance, undoneCallback) {
87814
87816
  });
87815
87817
  });
87816
87818
  instance.alter('insert_row_above', this.index, this.data.length, 'UndoRedo.undo');
87817
- this.removedCellMetas.forEach(_ref2 => {
87818
- let [rowIndex, columnIndex, cellMeta] = _ref2;
87819
- instance.setCellMetaObject(rowIndex, columnIndex, cellMeta);
87820
- });
87821
87819
  instance.addHookOnce('afterViewRender', undoneCallback);
87822
87820
  instance.setSourceDataAtCell(changes, null, null, 'UndoRedo.undo');
87823
87821
  instance.rowIndexMapper.setIndexesSequence(this.rowIndexesSequence);
@@ -87860,9 +87858,8 @@ UndoRedo.CreateColumnAction.prototype.redo = function (instance, redoneCallback)
87860
87858
  * @param {number[]} columnPositions The column position.
87861
87859
  * @param {number[]} rowPositions The row position.
87862
87860
  * @param {number} fixedColumnsStart Number of fixed columns on the left. Remove column action change it sometimes.
87863
- * @param {Array} removedCellMetas List of removed cell metas.
87864
87861
  */
87865
- UndoRedo.RemoveColumnAction = function (index, indexes, data, headers, columnPositions, rowPositions, fixedColumnsStart, removedCellMetas) {
87862
+ UndoRedo.RemoveColumnAction = function (index, indexes, data, headers, columnPositions, rowPositions, fixedColumnsStart) {
87866
87863
  // eslint-disable-line max-len
87867
87864
  this.index = index;
87868
87865
  this.indexes = indexes;
@@ -87873,7 +87870,6 @@ UndoRedo.RemoveColumnAction = function (index, indexes, data, headers, columnPos
87873
87870
  this.rowPositions = rowPositions.slice(0);
87874
87871
  this.actionType = 'remove_col';
87875
87872
  this.fixedColumnsStart = fixedColumnsStart;
87876
- this.removedCellMetas = removedCellMetas;
87877
87873
  };
87878
87874
  (0, _object.inherit)(UndoRedo.RemoveColumnAction, UndoRedo.Action);
87879
87875
  UndoRedo.RemoveColumnAction.prototype.undo = function (instance, undoneCallback) {
@@ -87903,10 +87899,6 @@ UndoRedo.RemoveColumnAction.prototype.undo = function (instance, undoneCallback)
87903
87899
  instance.getSettings().colHeaders[ascendingIndexes[columnIndex]] = headerData;
87904
87900
  });
87905
87901
  }
87906
- this.removedCellMetas.forEach(_ref3 => {
87907
- let [rowIndex, columnIndex, cellMeta] = _ref3;
87908
- instance.setCellMetaObject(rowIndex, columnIndex, cellMeta);
87909
- });
87910
87902
  instance.batchExecution(() => {
87911
87903
  // Restore row sequence in a case when all columns are removed. the original
87912
87904
  // row sequence is lost in that case.
@@ -88225,222 +88217,6 @@ var _default = exports["default"] = UndoRedo;
88225
88217
 
88226
88218
  /***/ }),
88227
88219
  /* 670 */
88228
- /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
88229
-
88230
- "use strict";
88231
-
88232
- var $ = __webpack_require__(9);
88233
- var iterate = __webpack_require__(671);
88234
- var createProperty = __webpack_require__(677);
88235
-
88236
- // `Object.fromEntries` method
88237
- // https://github.com/tc39/proposal-object-from-entries
88238
- $({ target: 'Object', stat: true }, {
88239
- fromEntries: function fromEntries(iterable) {
88240
- var obj = {};
88241
- iterate(iterable, function (k, v) {
88242
- createProperty(obj, k, v);
88243
- }, { AS_ENTRIES: true });
88244
- return obj;
88245
- }
88246
- });
88247
-
88248
-
88249
- /***/ }),
88250
- /* 671 */
88251
- /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88252
-
88253
- "use strict";
88254
-
88255
- var bind = __webpack_require__(97);
88256
- var call = __webpack_require__(14);
88257
- var anObject = __webpack_require__(53);
88258
- var tryToString = __webpack_require__(38);
88259
- var isArrayIteratorMethod = __webpack_require__(672);
88260
- var lengthOfArrayLike = __webpack_require__(70);
88261
- var isPrototypeOf = __webpack_require__(31);
88262
- var getIterator = __webpack_require__(674);
88263
- var getIteratorMethod = __webpack_require__(675);
88264
- var iteratorClose = __webpack_require__(676);
88265
-
88266
- var $TypeError = TypeError;
88267
-
88268
- var Result = function (stopped, result) {
88269
- this.stopped = stopped;
88270
- this.result = result;
88271
- };
88272
-
88273
- var ResultPrototype = Result.prototype;
88274
-
88275
- module.exports = function (iterable, unboundFunction, options) {
88276
- var that = options && options.that;
88277
- var AS_ENTRIES = !!(options && options.AS_ENTRIES);
88278
- var IS_RECORD = !!(options && options.IS_RECORD);
88279
- var IS_ITERATOR = !!(options && options.IS_ITERATOR);
88280
- var INTERRUPTED = !!(options && options.INTERRUPTED);
88281
- var fn = bind(unboundFunction, that);
88282
- var iterator, iterFn, index, length, result, next, step;
88283
-
88284
- var stop = function (condition) {
88285
- if (iterator) iteratorClose(iterator, 'normal', condition);
88286
- return new Result(true, condition);
88287
- };
88288
-
88289
- var callFn = function (value) {
88290
- if (AS_ENTRIES) {
88291
- anObject(value);
88292
- return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);
88293
- } return INTERRUPTED ? fn(value, stop) : fn(value);
88294
- };
88295
-
88296
- if (IS_RECORD) {
88297
- iterator = iterable.iterator;
88298
- } else if (IS_ITERATOR) {
88299
- iterator = iterable;
88300
- } else {
88301
- iterFn = getIteratorMethod(iterable);
88302
- if (!iterFn) throw new $TypeError(tryToString(iterable) + ' is not iterable');
88303
- // optimisation for array iterators
88304
- if (isArrayIteratorMethod(iterFn)) {
88305
- for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {
88306
- result = callFn(iterable[index]);
88307
- if (result && isPrototypeOf(ResultPrototype, result)) return result;
88308
- } return new Result(false);
88309
- }
88310
- iterator = getIterator(iterable, iterFn);
88311
- }
88312
-
88313
- next = IS_RECORD ? iterable.next : iterator.next;
88314
- while (!(step = call(next, iterator)).done) {
88315
- try {
88316
- result = callFn(step.value);
88317
- } catch (error) {
88318
- iteratorClose(iterator, 'throw', error);
88319
- }
88320
- if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;
88321
- } return new Result(false);
88322
- };
88323
-
88324
-
88325
- /***/ }),
88326
- /* 672 */
88327
- /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88328
-
88329
- "use strict";
88330
-
88331
- var wellKnownSymbol = __webpack_require__(40);
88332
- var Iterators = __webpack_require__(673);
88333
-
88334
- var ITERATOR = wellKnownSymbol('iterator');
88335
- var ArrayPrototype = Array.prototype;
88336
-
88337
- // check on default Array iterator
88338
- module.exports = function (it) {
88339
- return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);
88340
- };
88341
-
88342
-
88343
- /***/ }),
88344
- /* 673 */
88345
- /***/ ((module) => {
88346
-
88347
- "use strict";
88348
-
88349
- module.exports = {};
88350
-
88351
-
88352
- /***/ }),
88353
- /* 674 */
88354
- /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88355
-
88356
- "use strict";
88357
-
88358
- var call = __webpack_require__(14);
88359
- var aCallable = __webpack_require__(37);
88360
- var anObject = __webpack_require__(53);
88361
- var tryToString = __webpack_require__(38);
88362
- var getIteratorMethod = __webpack_require__(675);
88363
-
88364
- var $TypeError = TypeError;
88365
-
88366
- module.exports = function (argument, usingIterator) {
88367
- var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;
88368
- if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));
88369
- throw new $TypeError(tryToString(argument) + ' is not iterable');
88370
- };
88371
-
88372
-
88373
- /***/ }),
88374
- /* 675 */
88375
- /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88376
-
88377
- "use strict";
88378
-
88379
- var classof = __webpack_require__(88);
88380
- var getMethod = __webpack_require__(36);
88381
- var isNullOrUndefined = __webpack_require__(23);
88382
- var Iterators = __webpack_require__(673);
88383
- var wellKnownSymbol = __webpack_require__(40);
88384
-
88385
- var ITERATOR = wellKnownSymbol('iterator');
88386
-
88387
- module.exports = function (it) {
88388
- if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)
88389
- || getMethod(it, '@@iterator')
88390
- || Iterators[classof(it)];
88391
- };
88392
-
88393
-
88394
- /***/ }),
88395
- /* 676 */
88396
- /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88397
-
88398
- "use strict";
88399
-
88400
- var call = __webpack_require__(14);
88401
- var anObject = __webpack_require__(53);
88402
- var getMethod = __webpack_require__(36);
88403
-
88404
- module.exports = function (iterator, kind, value) {
88405
- var innerResult, innerError;
88406
- anObject(iterator);
88407
- try {
88408
- innerResult = getMethod(iterator, 'return');
88409
- if (!innerResult) {
88410
- if (kind === 'throw') throw value;
88411
- return value;
88412
- }
88413
- innerResult = call(innerResult, iterator);
88414
- } catch (error) {
88415
- innerError = true;
88416
- innerResult = error;
88417
- }
88418
- if (kind === 'throw') throw value;
88419
- if (innerError) throw innerResult;
88420
- anObject(innerResult);
88421
- return value;
88422
- };
88423
-
88424
-
88425
- /***/ }),
88426
- /* 677 */
88427
- /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88428
-
88429
- "use strict";
88430
-
88431
- var toPropertyKey = __webpack_require__(24);
88432
- var definePropertyModule = __webpack_require__(51);
88433
- var createPropertyDescriptor = __webpack_require__(17);
88434
-
88435
- module.exports = function (object, key, value) {
88436
- var propertyKey = toPropertyKey(key);
88437
- if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));
88438
- else object[propertyKey] = value;
88439
- };
88440
-
88441
-
88442
- /***/ }),
88443
- /* 678 */
88444
88220
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
88445
88221
 
88446
88222
  "use strict";
@@ -88549,7 +88325,7 @@ exports.CellRange = _base.CellRange;
88549
88325
  var _registry = __webpack_require__(350);
88550
88326
  var _eventManager = _interopRequireWildcard(__webpack_require__(131));
88551
88327
  var _translations = __webpack_require__(224);
88552
- var _jquery = _interopRequireDefault(__webpack_require__(678));
88328
+ var _jquery = _interopRequireDefault(__webpack_require__(670));
88553
88329
  var _ghostTable = _interopRequireDefault(__webpack_require__(428));
88554
88330
  var parseTableHelpers = _interopRequireWildcard(__webpack_require__(138));
88555
88331
  var arrayHelpers = _interopRequireWildcard(__webpack_require__(113));
@@ -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-ae2e00f-20231213
29
- * Release date: 30/11/2023 (built at 13/12/2023 14:06:09)
28
+ * Version: 0.0.0-next-0416ebd-20231214
29
+ * Release date: 30/11/2023 (built at 14/12/2023 11:10:17)
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 thead,.handsontable .ht_master thead,.handsontable .ht_master tr th{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-tap-highlight-color:rgba(0,0,0,0);-webkit-overflow-scrolling:touch;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.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