handsontable 0.0.0-next-a417c2b-20231124 → 0.0.0-next-44acfea-20231127

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.

Files changed (41) hide show
  1. package/3rdparty/walkontable/src/overlay/_base.js +2 -2
  2. package/3rdparty/walkontable/src/overlay/_base.mjs +2 -2
  3. package/3rdparty/walkontable/src/renderer/columnHeaders.js +1 -1
  4. package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +2 -2
  5. package/3rdparty/walkontable/src/renderer/rows.js +1 -1
  6. package/3rdparty/walkontable/src/renderer/rows.mjs +2 -2
  7. package/base.js +2 -2
  8. package/base.mjs +2 -2
  9. package/dataMap/replaceData.js +3 -1
  10. package/dataMap/replaceData.mjs +3 -1
  11. package/dist/handsontable.css +2 -2
  12. package/dist/handsontable.full.css +2 -2
  13. package/dist/handsontable.full.js +49 -45
  14. package/dist/handsontable.full.min.css +2 -2
  15. package/dist/handsontable.full.min.js +6 -6
  16. package/dist/handsontable.js +49 -45
  17. package/dist/handsontable.min.css +2 -2
  18. package/dist/handsontable.min.js +31 -31
  19. package/editors/dateEditor/dateEditor.js +0 -7
  20. package/editors/dateEditor/dateEditor.mjs +1 -8
  21. package/editors/handsontableEditor/handsontableEditor.js +0 -7
  22. package/editors/handsontableEditor/handsontableEditor.mjs +1 -8
  23. package/editors/passwordEditor/passwordEditor.js +4 -0
  24. package/editors/passwordEditor/passwordEditor.mjs +5 -1
  25. package/helpers/a11y.js +2 -0
  26. package/helpers/a11y.mjs +1 -0
  27. package/helpers/mixed.js +1 -1
  28. package/helpers/mixed.mjs +1 -1
  29. package/package.json +1 -1
  30. package/renderers/autocompleteRenderer/autocompleteRenderer.js +0 -3
  31. package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +1 -4
  32. package/renderers/checkboxRenderer/checkboxRenderer.js +0 -1
  33. package/renderers/checkboxRenderer/checkboxRenderer.mjs +0 -1
  34. package/renderers/dateRenderer/dateRenderer.js +0 -5
  35. package/renderers/dateRenderer/dateRenderer.mjs +0 -5
  36. package/renderers/handsontableRenderer/handsontableRenderer.js +0 -5
  37. package/renderers/handsontableRenderer/handsontableRenderer.mjs +0 -5
  38. package/renderers/selectRenderer/selectRenderer.js +0 -5
  39. package/renderers/selectRenderer/selectRenderer.mjs +0 -5
  40. package/tableView.js +31 -2
  41. package/tableView.mjs +31 -2
@@ -25,8 +25,8 @@
25
25
  * INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING FROM
26
26
  * USE OR INABILITY TO USE THIS SOFTWARE.
27
27
  *
28
- * Version: 0.0.0-next-a417c2b-20231124
29
- * Release date: 31/08/2023 (built at 24/11/2023 11:00:21)
28
+ * Version: 0.0.0-next-44acfea-20231127
29
+ * Release date: 31/08/2023 (built at 27/11/2023 10:22:39)
30
30
  */
31
31
  (function webpackUniversalModuleDefinition(root, factory) {
32
32
  if(typeof exports === 'object' && typeof module === 'object')
@@ -105,8 +105,8 @@ Handsontable.hooks = _pluginHooks.default.getSingleton();
105
105
  Handsontable.CellCoords = _src.CellCoords;
106
106
  Handsontable.CellRange = _src.CellRange;
107
107
  Handsontable.packageName = 'handsontable';
108
- Handsontable.buildDate = "24/11/2023 11:00:21";
109
- Handsontable.version = "0.0.0-next-a417c2b-20231124";
108
+ Handsontable.buildDate = "27/11/2023 10:22:39";
109
+ Handsontable.version = "0.0.0-next-44acfea-20231127";
110
110
  Handsontable.languages = {
111
111
  dictionaryKeys: _registry.dictionaryKeys,
112
112
  getLanguageDictionary: _registry.getLanguageDictionary,
@@ -8514,7 +8514,7 @@ const domMessages = {
8514
8514
  function _injectProductInfo(key, element) {
8515
8515
  const hasValidType = !isEmpty(key);
8516
8516
  const isNonCommercial = typeof key === 'string' && key.toLowerCase() === 'non-commercial-and-evaluation';
8517
- const hotVersion = "0.0.0-next-a417c2b-20231124";
8517
+ const hotVersion = "0.0.0-next-44acfea-20231127";
8518
8518
  let keyValidityDate;
8519
8519
  let consoleMessageState = 'invalid';
8520
8520
  let domMessageState = 'invalid';
@@ -8972,6 +8972,8 @@ const A11Y_GRIDCELL = () => ['role', 'gridcell'];
8972
8972
  exports.A11Y_GRIDCELL = A11Y_GRIDCELL;
8973
8973
  const A11Y_ROWHEADER = () => ['role', 'rowheader'];
8974
8974
  exports.A11Y_ROWHEADER = A11Y_ROWHEADER;
8975
+ const A11Y_ROWGROUP = () => ['role', 'rowgroup'];
8976
+ exports.A11Y_ROWGROUP = A11Y_ROWGROUP;
8975
8977
  const A11Y_COLUMNHEADER = () => ['role', 'columnheader'];
8976
8978
  exports.A11Y_COLUMNHEADER = A11Y_COLUMNHEADER;
8977
8979
  const A11Y_ROW = () => ['role', 'row'];
@@ -15456,8 +15458,10 @@ var _src = _interopRequireDefault(__webpack_require__(147));
15456
15458
  var _mouseEventHandler = __webpack_require__(217);
15457
15459
  var _rootInstance = __webpack_require__(218);
15458
15460
  var _a11y = __webpack_require__(114);
15461
+ function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
15459
15462
  function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
15460
15463
  function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
15464
+ function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
15461
15465
  /**
15462
15466
  * @class TableView
15463
15467
  * @private
@@ -15469,11 +15473,25 @@ var _mouseDown = /*#__PURE__*/new WeakMap();
15469
15473
  var _table = /*#__PURE__*/new WeakMap();
15470
15474
  var _lastWidth = /*#__PURE__*/new WeakMap();
15471
15475
  var _lastHeight = /*#__PURE__*/new WeakMap();
15476
+ var _getAriaColcount = /*#__PURE__*/new WeakSet();
15477
+ var _updateAriaColcount = /*#__PURE__*/new WeakSet();
15472
15478
  class TableView {
15473
15479
  /**
15474
15480
  * @param {Hanstontable} hotInstance Instance of {@link Handsontable}.
15475
15481
  */
15476
15482
  constructor(hotInstance) {
15483
+ /**
15484
+ * Update the `aria-colcount` attribute by the provided value.
15485
+ *
15486
+ * @param {number} delta The number of columns to add or remove to the aria tag.
15487
+ */
15488
+ _classPrivateMethodInitSpec(this, _updateAriaColcount);
15489
+ /**
15490
+ * Return the value of the `aria-colcount` attribute.
15491
+ *
15492
+ * @returns {number} The value of the `aria-colcount` attribute.
15493
+ */
15494
+ _classPrivateMethodInitSpec(this, _getAriaColcount);
15477
15495
  /**
15478
15496
  * Instance of {@link Handsontable}.
15479
15497
  *
@@ -15710,7 +15728,7 @@ class TableView {
15710
15728
  }
15711
15729
  if (this.settings.ariaTags) {
15712
15730
  (0, _element.setAttribute)((0, _classPrivateFieldGet2.default)(this, _table), [(0, _a11y.A11Y_PRESENTATION)()]);
15713
- (0, _element.setAttribute)(rootElement, [(0, _a11y.A11Y_TREEGRID)(), (0, _a11y.A11Y_ROWCOUNT)(this.hot.countRows()), (0, _a11y.A11Y_COLCOUNT)(this.hot.countCols()), (0, _a11y.A11Y_MULTISELECTABLE)()]);
15731
+ (0, _element.setAttribute)(rootElement, [(0, _a11y.A11Y_TREEGRID)(), (0, _a11y.A11Y_ROWCOUNT)(-1), (0, _a11y.A11Y_COLCOUNT)(this.hot.countCols()), (0, _a11y.A11Y_MULTISELECTABLE)()]);
15714
15732
  }
15715
15733
  this.THEAD = rootDocument.createElement('THEAD');
15716
15734
  (0, _classPrivateFieldGet2.default)(this, _table).appendChild(this.THEAD);
@@ -16103,6 +16121,13 @@ class TableView {
16103
16121
  }
16104
16122
  this.hot.runHooks('afterGetRowHeaderRenderers', headerRenderers);
16105
16123
  (0, _classPrivateFieldSet2.default)(this, _rowHeadersCount, headerRenderers.length);
16124
+ if (this.hot.getSettings().ariaTags) {
16125
+ // Update the aria-colcount attribute.
16126
+ // Only needs to be done once after initialization/data update.
16127
+ if (_classPrivateMethodGet(this, _getAriaColcount, _getAriaColcount2).call(this) === this.hot.countCols()) {
16128
+ _classPrivateMethodGet(this, _updateAriaColcount, _updateAriaColcount2).call(this, (0, _classPrivateFieldGet2.default)(this, _rowHeadersCount));
16129
+ }
16130
+ }
16106
16131
  return headerRenderers;
16107
16132
  },
16108
16133
  columnHeaders: () => {
@@ -16742,7 +16767,6 @@ class TableView {
16742
16767
  getRowHeadersCount() {
16743
16768
  return (0, _classPrivateFieldGet2.default)(this, _rowHeadersCount);
16744
16769
  }
16745
-
16746
16770
  /**
16747
16771
  * Destroys internal WalkOnTable's instance. Detaches all of the bonded listeners.
16748
16772
  *
@@ -16753,6 +16777,13 @@ class TableView {
16753
16777
  this.eventManager.destroy();
16754
16778
  }
16755
16779
  }
16780
+ function _getAriaColcount2() {
16781
+ return parseInt(this.hot.rootElement.getAttribute((0, _a11y.A11Y_COLCOUNT)()[0]), 10);
16782
+ }
16783
+ function _updateAriaColcount2(delta) {
16784
+ const colCount = _classPrivateMethodGet(this, _getAriaColcount, _getAriaColcount2).call(this) + delta;
16785
+ (0, _element.setAttribute)(this.hot.rootElement, ...(0, _a11y.A11Y_COLCOUNT)(colCount));
16786
+ }
16756
16787
  var _default = TableView;
16757
16788
  exports["default"] = _default;
16758
16789
 
@@ -22406,7 +22437,7 @@ class ColumnHeadersRenderer extends _base.default {
22406
22437
  columnHeadersCount
22407
22438
  } = this.table;
22408
22439
  if (this.table.isAriaEnabled()) {
22409
- (0, _element.setAttribute)(this.rootNode, [(0, _a11y.A11Y_PRESENTATION)()]);
22440
+ (0, _element.setAttribute)(this.rootNode, [(0, _a11y.A11Y_ROWGROUP)()]);
22410
22441
  }
22411
22442
  for (let rowHeaderIndex = 0; rowHeaderIndex < columnHeadersCount; rowHeaderIndex += 1) {
22412
22443
  const {
@@ -22580,7 +22611,7 @@ class RowsRenderer extends _base.default {
22580
22611
  the number of rendered rows by specifying the table height and/or turning off the "renderAllRows" option.`);
22581
22612
  }
22582
22613
  if (this.table.isAriaEnabled()) {
22583
- (0, _element.setAttribute)(this.rootNode, [(0, _a11y.A11Y_PRESENTATION)()]);
22614
+ (0, _element.setAttribute)(this.rootNode, [(0, _a11y.A11Y_ROWGROUP)()]);
22584
22615
  }
22585
22616
  this.orderView.setSize(rowsToRender).setOffset(this.table.renderedRowToSource(0)).start();
22586
22617
  for (let visibleRowIndex = 0; visibleRowIndex < rowsToRender; visibleRowIndex++) {
@@ -23653,8 +23684,8 @@ class Overlay {
23653
23684
  rootDocument,
23654
23685
  rootWindow
23655
23686
  } = this.domBindings;
23656
- const clone = rootDocument.createElement('DIV');
23657
- const clonedTable = rootDocument.createElement('TABLE');
23687
+ const clone = rootDocument.createElement('div');
23688
+ const clonedTable = rootDocument.createElement('table');
23658
23689
  const tableParent = wtTable.wtRootElement.parentNode;
23659
23690
  clone.className = `${_constants.CLONE_CLASS_NAMES.get(this.type)} handsontable`;
23660
23691
  clone.setAttribute('dir', this.isRtl() ? 'rtl' : 'ltr');
@@ -41775,7 +41806,9 @@ function replaceData(data, setDataMapFunction, callbackFunction, config) {
41775
41806
  hotInstance.render();
41776
41807
  }
41777
41808
  if (hotInstance.getSettings().ariaTags) {
41778
- (0, _element.setAttribute)(hotInstance.rootElement, [(0, _a11y.A11Y_ROWCOUNT)(hotInstance.countRows()), (0, _a11y.A11Y_COLCOUNT)(hotInstance.countCols())]);
41809
+ (0, _element.setAttribute)(hotInstance.rootElement, [(0, _a11y.A11Y_ROWCOUNT)(-1),
41810
+ // If run after initialization, add the number of row headers.
41811
+ (0, _a11y.A11Y_COLCOUNT)(hotInstance.countCols() + (hotInstance.view ? hotInstance.countRowHeaders() : 0))]);
41779
41812
  }
41780
41813
  }
41781
41814
 
@@ -46610,7 +46643,6 @@ var _element = __webpack_require__(107);
46610
46643
  var _event = __webpack_require__(126);
46611
46644
  var _object = __webpack_require__(117);
46612
46645
  var _editorManager = __webpack_require__(120);
46613
- var _a11y = __webpack_require__(114);
46614
46646
  const SHORTCUTS_GROUP = 'handsontableEditor';
46615
46647
  const EDITOR_TYPE = 'handsontable';
46616
46648
 
@@ -46647,9 +46679,6 @@ class HandsontableEditor extends _textEditor.TextEditor {
46647
46679
  }
46648
46680
  (0, _element.setCaretPosition)(this.TEXTAREA, 0, this.TEXTAREA.value.length);
46649
46681
  this.refreshDimensions();
46650
- if (this.hot.getSettings().ariaTags) {
46651
- (0, _element.setAttribute)(this.TD, [(0, _a11y.A11Y_EXPANDED)('true')]);
46652
- }
46653
46682
  }
46654
46683
 
46655
46684
  /**
@@ -46661,9 +46690,6 @@ class HandsontableEditor extends _textEditor.TextEditor {
46661
46690
  }
46662
46691
  this.removeHooksByKey('beforeKeyDown');
46663
46692
  super.close();
46664
- if (this.TD && this.hot.getSettings().ariaTags) {
46665
- (0, _element.setAttribute)(this.TD, [(0, _a11y.A11Y_EXPANDED)('false')]);
46666
- }
46667
46693
  }
46668
46694
 
46669
46695
  /**
@@ -46944,7 +46970,6 @@ var _pikaday = _interopRequireDefault(__webpack_require__(356));
46944
46970
  var _textEditor = __webpack_require__(335);
46945
46971
  var _eventManager = _interopRequireDefault(__webpack_require__(131));
46946
46972
  var _element = __webpack_require__(107);
46947
- var _a11y = __webpack_require__(114);
46948
46973
  var _object = __webpack_require__(117);
46949
46974
  var _unicode = __webpack_require__(125);
46950
46975
  __webpack_require__(357);
@@ -47068,9 +47093,6 @@ class DateEditor extends _textEditor.TextEditor {
47068
47093
  const editorContext = shortcutManager.getContext('editor');
47069
47094
  super.open();
47070
47095
  this.showDatepicker(event);
47071
- if (this.hot.getSettings().ariaTags) {
47072
- (0, _element.setAttribute)(this.TD, [(0, _a11y.A11Y_EXPANDED)('true')]);
47073
- }
47074
47096
  editorContext.addShortcut({
47075
47097
  keys: [['Enter']],
47076
47098
  callback: keyboardEvent => {
@@ -47096,9 +47118,6 @@ class DateEditor extends _textEditor.TextEditor {
47096
47118
  this.hot._registerTimeout(() => {
47097
47119
  this.hot._refreshBorders();
47098
47120
  });
47099
- if (this.TD && this.hot.getSettings().ariaTags) {
47100
- (0, _element.setAttribute)(this.TD, [(0, _a11y.A11Y_EXPANDED)('false')]);
47101
- }
47102
47121
  const shortcutManager = this.hot.getShortcutManager();
47103
47122
  const editorContext = shortcutManager.getContext('editor');
47104
47123
  editorContext.removeShortcutsByGroup(SHORTCUTS_GROUP_EDITOR);
@@ -47358,6 +47377,7 @@ exports.PasswordEditor = _passwordEditor.PasswordEditor;
47358
47377
  exports.__esModule = true;
47359
47378
  var _textEditor = __webpack_require__(335);
47360
47379
  var _element = __webpack_require__(107);
47380
+ var _a11y = __webpack_require__(114);
47361
47381
  const EDITOR_TYPE = 'password';
47362
47382
 
47363
47383
  /**
@@ -47378,6 +47398,9 @@ class PasswordEditor extends _textEditor.TextEditor {
47378
47398
  this.textareaStyle = this.TEXTAREA.style;
47379
47399
  this.textareaStyle.width = 0;
47380
47400
  this.textareaStyle.height = 0;
47401
+ if (this.hot.getSettings().ariaTags) {
47402
+ (0, _element.setAttribute)(this.TEXTAREA, [(0, _a11y.A11Y_HIDDEN)()]);
47403
+ }
47381
47404
  (0, _element.empty)(this.TEXTAREA_PARENT);
47382
47405
  this.TEXTAREA_PARENT.appendChild(this.TEXTAREA);
47383
47406
  }
@@ -47800,9 +47823,6 @@ function autocompleteRenderer(hotInstance, TD, row, col, prop, value, cellProper
47800
47823
 
47801
47824
  TD.insertBefore(ARROW, TD.firstChild);
47802
47825
  (0, _element.addClass)(TD, 'htAutocomplete');
47803
- if (isAriaEnabled) {
47804
- TD.setAttribute(...(0, _a11y.A11Y_HASPOPUP)('listbox'));
47805
- }
47806
47826
  if (!hotInstance.acArrowListener) {
47807
47827
  const eventManager = new _eventManager.default(hotInstance);
47808
47828
 
@@ -48188,7 +48208,6 @@ function createInput(rootDocument) {
48188
48208
  const input = rootDocument.createElement('input');
48189
48209
  input.className = 'htCheckboxRendererInput';
48190
48210
  input.type = 'checkbox';
48191
- input.setAttribute('autocomplete', 'off');
48192
48211
  input.setAttribute('tabindex', '-1');
48193
48212
  return input.cloneNode(false);
48194
48213
  }
@@ -49014,8 +49033,6 @@ exports.dateRenderer = _dateRenderer.dateRenderer;
49014
49033
  exports.__esModule = true;
49015
49034
  exports.dateRenderer = dateRenderer;
49016
49035
  var _autocompleteRenderer = __webpack_require__(369);
49017
- var _a11y = __webpack_require__(114);
49018
- var _element = __webpack_require__(107);
49019
49036
  const RENDERER_TYPE = 'date';
49020
49037
 
49021
49038
  /**
@@ -49033,9 +49050,6 @@ const RENDERER_TYPE = 'date';
49033
49050
  exports.RENDERER_TYPE = RENDERER_TYPE;
49034
49051
  function dateRenderer(hotInstance, TD, row, col, prop, value, cellProperties) {
49035
49052
  _autocompleteRenderer.autocompleteRenderer.apply(this, [hotInstance, TD, row, col, prop, value, cellProperties]);
49036
- if (hotInstance.getSettings().ariaTags) {
49037
- (0, _element.setAttribute)(TD, [(0, _a11y.A11Y_HASPOPUP)('dialog'), (0, _a11y.A11Y_EXPANDED)('false')]);
49038
- }
49039
49053
  }
49040
49054
  dateRenderer.RENDERER_TYPE = RENDERER_TYPE;
49041
49055
 
@@ -49127,8 +49141,6 @@ exports.handsontableRenderer = _handsontableRenderer.handsontableRenderer;
49127
49141
  exports.__esModule = true;
49128
49142
  exports.handsontableRenderer = handsontableRenderer;
49129
49143
  var _autocompleteRenderer = __webpack_require__(369);
49130
- var _a11y = __webpack_require__(114);
49131
- var _element = __webpack_require__(107);
49132
49144
  const RENDERER_TYPE = 'handsontable';
49133
49145
 
49134
49146
  /**
@@ -49146,9 +49158,6 @@ const RENDERER_TYPE = 'handsontable';
49146
49158
  exports.RENDERER_TYPE = RENDERER_TYPE;
49147
49159
  function handsontableRenderer(hotInstance, TD, row, col, prop, value, cellProperties) {
49148
49160
  _autocompleteRenderer.autocompleteRenderer.apply(this, [hotInstance, TD, row, col, prop, value, cellProperties]);
49149
- if (hotInstance.getSettings().ariaTags) {
49150
- (0, _element.setAttribute)(TD, [(0, _a11y.A11Y_HASPOPUP)('true'), (0, _a11y.A11Y_EXPANDED)('false')]);
49151
- }
49152
49161
  }
49153
49162
  handsontableRenderer.RENDERER_TYPE = RENDERER_TYPE;
49154
49163
 
@@ -49271,8 +49280,6 @@ exports.selectRenderer = _selectRenderer.selectRenderer;
49271
49280
  exports.__esModule = true;
49272
49281
  exports.selectRenderer = selectRenderer;
49273
49282
  var _textRenderer = __webpack_require__(342);
49274
- var _a11y = __webpack_require__(114);
49275
- var _element = __webpack_require__(107);
49276
49283
  const RENDERER_TYPE = 'select';
49277
49284
 
49278
49285
  /**
@@ -49288,9 +49295,6 @@ const RENDERER_TYPE = 'select';
49288
49295
  exports.RENDERER_TYPE = RENDERER_TYPE;
49289
49296
  function selectRenderer(hotInstance, TD, row, col, prop, value, cellProperties) {
49290
49297
  _textRenderer.textRenderer.apply(this, [hotInstance, TD, row, col, prop, value, cellProperties]);
49291
- if (hotInstance.getSettings().ariaTags) {
49292
- (0, _element.setAttribute)(TD, ...(0, _a11y.A11Y_HASPOPUP)('listbox'));
49293
- }
49294
49298
  }
49295
49299
  selectRenderer.RENDERER_TYPE = RENDERER_TYPE;
49296
49300
 
@@ -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-a417c2b-20231124
29
- * Release date: 31/08/2023 (built at 24/11/2023 11:00:38)
28
+ * Version: 0.0.0-next-44acfea-20231127
29
+ * Release date: 31/08/2023 (built at 27/11/2023 10:22:57)
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