handsontable 0.0.0-next-f11b1a2-20231123 → 0.0.0-next-a417c2b-20231124

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of handsontable might be problematic. Click here for more details.

@@ -25,8 +25,8 @@
25
25
  * INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING FROM
26
26
  * USE OR INABILITY TO USE THIS SOFTWARE.
27
27
  *
28
- * Version: 0.0.0-next-f11b1a2-20231123
29
- * Release date: 31/08/2023 (built at 23/11/2023 14:17:27)
28
+ * Version: 0.0.0-next-a417c2b-20231124
29
+ * Release date: 31/08/2023 (built at 24/11/2023 11:00:21)
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 = "23/11/2023 14:17:27";
109
- Handsontable.version = "0.0.0-next-f11b1a2-20231123";
108
+ Handsontable.buildDate = "24/11/2023 11:00:21";
109
+ Handsontable.version = "0.0.0-next-a417c2b-20231124";
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-f11b1a2-20231123";
8517
+ const hotVersion = "0.0.0-next-a417c2b-20231124";
8518
8518
  let keyValidityDate;
8519
8519
  let consoleMessageState = 'invalid';
8520
8520
  let domMessageState = 'invalid';
@@ -22428,7 +22428,7 @@ class ColumnHeadersRenderer extends _base.default {
22428
22428
  // Remove all accessibility-related attributes for the header to start fresh.
22429
22429
  (0, _element.removeAttribute)(TH, [new RegExp('aria-(.*)'), new RegExp('role')]);
22430
22430
  if (this.table.isAriaEnabled()) {
22431
- (0, _element.setAttribute)(TH, [(0, _a11y.A11Y_COLINDEX)(renderedColumnIndex + 1 + this.table.rowHeadersCount), (0, _a11y.A11Y_TABINDEX)(-1), ...(renderedColumnIndex < 0 ? [(0, _a11y.A11Y_PRESENTATION)()] : [(0, _a11y.A11Y_COLUMNHEADER)(), (0, _a11y.A11Y_SCOPE_COL)()])]);
22431
+ (0, _element.setAttribute)(TH, [(0, _a11y.A11Y_COLINDEX)(renderedColumnIndex + 1 + this.table.rowHeadersCount), (0, _a11y.A11Y_TABINDEX)(-1), (0, _a11y.A11Y_COLUMNHEADER)(), ...(renderedColumnIndex >= 0 ? [(0, _a11y.A11Y_SCOPE_COL)()] : [])]);
22432
22432
  }
22433
22433
  columnHeaderFunctions[rowHeaderIndex](sourceColumnIndex, TH, rowHeaderIndex);
22434
22434
  }
@@ -25996,12 +25996,12 @@ class SelectionManager {
25996
25996
  }
25997
25997
  const selections = Array.from((0, _classPrivateFieldGet7.default)(this, _selections));
25998
25998
  const classNamesMap = new Map();
25999
- const focusedHeaderAttributesMap = new Map();
25999
+ const headerAttributesMap = new Map();
26000
26000
  for (let i = 0; i < selections.length; i++) {
26001
26001
  const selection = selections[i];
26002
26002
  const {
26003
26003
  className,
26004
- focusedHeaderAttributes,
26004
+ headerAttributes,
26005
26005
  createLayers,
26006
26006
  selectionType
26007
26007
  } = selection.settings;
@@ -26028,12 +26028,12 @@ class SelectionManager {
26028
26028
  } else {
26029
26029
  classNamesMap.set(element, new Map([[className, 1]]));
26030
26030
  }
26031
- if (selectionType === 'focus' && focusedHeaderAttributes) {
26032
- if (!focusedHeaderAttributesMap.has(element)) {
26033
- focusedHeaderAttributesMap.set(element, []);
26031
+ if (headerAttributes) {
26032
+ if (!headerAttributesMap.has(element)) {
26033
+ headerAttributesMap.set(element, []);
26034
26034
  }
26035
26035
  if (element.nodeName === 'TH') {
26036
- focusedHeaderAttributesMap.get(element).push(...focusedHeaderAttributes);
26036
+ headerAttributesMap.get(element).push(...headerAttributes);
26037
26037
  }
26038
26038
  }
26039
26039
  });
@@ -26061,8 +26061,8 @@ class SelectionManager {
26061
26061
  });
26062
26062
 
26063
26063
  // Set the attributes for the headers if they're focused.
26064
- Array.from(focusedHeaderAttributesMap.keys()).forEach(element => {
26065
- (0, _element.setAttribute)(element, [...focusedHeaderAttributesMap.get(element)]);
26064
+ Array.from(headerAttributesMap.keys()).forEach(element => {
26065
+ (0, _element.setAttribute)(element, [...headerAttributesMap.get(element)]);
26066
26066
  });
26067
26067
  }
26068
26068
  }
@@ -32052,7 +32052,6 @@ class Selection {
32052
32052
  this.tableProps = tableProps;
32053
32053
  this.highlight = new _highlight.default({
32054
32054
  headerClassName: settings.currentHeaderClassName,
32055
- headerAttributes: [(0, _a11y.A11Y_SELECTED)()],
32056
32055
  activeHeaderClassName: settings.activeHeaderClassName,
32057
32056
  rowClassName: settings.currentRowClassName,
32058
32057
  columnClassName: settings.currentColClassName,
@@ -33651,27 +33650,23 @@ exports.__esModule = true;
33651
33650
  exports.createHighlight = createHighlight;
33652
33651
  var _src = __webpack_require__(147);
33653
33652
  var _visualSelection = _interopRequireDefault(__webpack_require__(250));
33653
+ var _a11y = __webpack_require__(114);
33654
33654
  /**
33655
33655
  * Creates the new instance of Selection responsible for highlighting currently selected cell. This type of selection
33656
33656
  * can present on the table only one at the time.
33657
33657
  *
33658
33658
  * @param {object} highlightParams A configuration object to create a highlight.
33659
33659
  * @param {Function} highlightParams.cellCornerVisible Function to determine if cell's corner should be visible.
33660
- * @param {Function} highlightParams.cellAttributes Array of cell attributes.
33661
- * @param {Function} highlightParams.headerAttributes Array of header attributes.
33662
33660
  * @returns {Selection}
33663
33661
  */
33664
33662
  function createHighlight(_ref) {
33665
33663
  let {
33666
33664
  cellCornerVisible,
33667
- cellAttributes,
33668
- headerAttributes,
33669
33665
  ...restOptions
33670
33666
  } = _ref;
33671
33667
  return new _visualSelection.default({
33672
33668
  className: 'current',
33673
- cellAttributes,
33674
- focusedHeaderAttributes: headerAttributes,
33669
+ headerAttributes: [(0, _a11y.A11Y_SELECTED)()],
33675
33670
  border: {
33676
33671
  width: 2,
33677
33672
  color: '#4b89ff',
@@ -43584,7 +43579,7 @@ function createInputElement(hot) {
43584
43579
  input.type = 'text';
43585
43580
  input.classList.add('htFocusCatcher');
43586
43581
  if (hot.getSettings().ariaTags) {
43587
- (0, _element.setAttribute)(input, [(0, _a11y.A11Y_PRESENTATION)()]);
43582
+ (0, _element.setAttribute)(input, [(0, _a11y.A11Y_PRESENTATION)(), (0, _a11y.A11Y_HIDDEN)()]);
43588
43583
  }
43589
43584
  return input;
43590
43585
  }
@@ -65057,7 +65052,16 @@ class Filters extends _base.BasePlugin {
65057
65052
  // A fake menu item that once focused allows escaping from the focus navigation (using Tab keys)
65058
65053
  // to the menu navigation using arrow keys.
65059
65054
  {
65060
- focus: () => mainMenu.focus()
65055
+ focus: () => {
65056
+ const menuNavigator = mainMenu.getNavigator();
65057
+ const lastSelectedMenuItem = (0, _classPrivateFieldGet2.default)(this, _menuFocusNavigator).getLastMenuPage();
65058
+ mainMenu.focus();
65059
+ if (lastSelectedMenuItem > 0) {
65060
+ menuNavigator.setCurrentPage(lastSelectedMenuItem);
65061
+ } else {
65062
+ menuNavigator.toFirstItem();
65063
+ }
65064
+ }
65061
65065
  }, ...Array.from(this.components).map(_ref => {
65062
65066
  let [, component] = _ref;
65063
65067
  return component.getElements();
@@ -69726,12 +69730,17 @@ const SHORTCUTS_MENU_CONTEXT = 'filters';
69726
69730
  * @returns {Paginator}
69727
69731
  */
69728
69732
  function createMenuFocusController(mainMenu, menuItems) {
69729
- const navigator = (0, _focusNavigator.createFocusNavigator)(menuItems);
69733
+ /**
69734
+ * @type {number} The last selected menu item (before clearing the the menu state after going
69735
+ * into the focus mode triggered by the TAB or SHIFT+TAB keys).
69736
+ */
69737
+ let lastSelectedMenuItem = -1;
69738
+ const focusNavigator = (0, _focusNavigator.createFocusNavigator)(menuItems);
69730
69739
  const updateNavigatorPosition = element => () => {
69731
69740
  if (mainMenu.isOpened()) {
69732
69741
  mainMenu.getKeyboardShortcutsCtrl().listen(SHORTCUTS_MENU_CONTEXT);
69733
69742
  }
69734
- navigator.setCurrentPage(menuItems.indexOf(element));
69743
+ focusNavigator.setCurrentPage(menuItems.indexOf(element));
69735
69744
  };
69736
69745
 
69737
69746
  // update navigator position (internal state) to element that was recently clicked or focused
@@ -69744,7 +69753,7 @@ function createMenuFocusController(mainMenu, menuItems) {
69744
69753
  });
69745
69754
  mainMenu.addLocalHook('afterSelectionChange', selectedItem => {
69746
69755
  if (!selectedItem.key.startsWith('filter_')) {
69747
- navigator.clear();
69756
+ focusNavigator.clear();
69748
69757
  }
69749
69758
  });
69750
69759
 
@@ -69756,7 +69765,7 @@ function createMenuFocusController(mainMenu, menuItems) {
69756
69765
  function addKeyboardShortcuts(menu) {
69757
69766
  const mainMenuShortcutsCtrl = mainMenu.getKeyboardShortcutsCtrl();
69758
69767
  const currentMenuShortcutsCtrl = menu.getKeyboardShortcutsCtrl();
69759
- navigator.clear();
69768
+ focusNavigator.clear();
69760
69769
  currentMenuShortcutsCtrl.addCustomShortcuts([{
69761
69770
  keys: [['Tab'], ['Shift', 'Tab']],
69762
69771
  forwardToContext: mainMenuShortcutsCtrl.getContext(SHORTCUTS_MENU_CONTEXT),
@@ -69773,11 +69782,15 @@ function createMenuFocusController(mainMenu, menuItems) {
69773
69782
  mainMenuShortcutsCtrl.addCustomShortcuts([{
69774
69783
  keys: [['Tab'], ['Shift', 'Tab']],
69775
69784
  callback: event => {
69776
- mainMenu.getNavigator().clear();
69785
+ const menuNavigator = mainMenu.getNavigator();
69786
+ if (menuNavigator.getCurrentPage() > -1) {
69787
+ lastSelectedMenuItem = menuNavigator.getCurrentPage();
69788
+ }
69789
+ menuNavigator.clear();
69777
69790
  if (event.shiftKey) {
69778
- navigator.toPreviousItem();
69791
+ focusNavigator.toPreviousItem();
69779
69792
  } else {
69780
- navigator.toNextItem();
69793
+ focusNavigator.toNextItem();
69781
69794
  }
69782
69795
  }
69783
69796
  }, {
@@ -69789,7 +69802,7 @@ function createMenuFocusController(mainMenu, menuItems) {
69789
69802
  keys: [['Enter'], ['Space']],
69790
69803
  preventDefault: false,
69791
69804
  callback: event => {
69792
- const element = menuItems[navigator.getCurrentPage()];
69805
+ const element = menuItems[focusNavigator.getCurrentPage()];
69793
69806
  if (element instanceof _select.SelectUI) {
69794
69807
  element.openOptions();
69795
69808
  event.preventDefault();
@@ -69815,9 +69828,19 @@ function createMenuFocusController(mainMenu, menuItems) {
69815
69828
  mainMenu.focus();
69816
69829
  mainMenu.getKeyboardShortcutsCtrl().listen(SHORTCUTS_MENU_CONTEXT);
69817
69830
  }
69831
+
69832
+ /**
69833
+ * Retrieves the last selected menu item (before clearing the state after going into the focus mode).
69834
+ *
69835
+ * @returns {number} The last selected menu item.
69836
+ */
69837
+ function getLastMenuPage() {
69838
+ return lastSelectedMenuItem;
69839
+ }
69818
69840
  return {
69819
- ...navigator,
69820
- listen
69841
+ ...focusNavigator,
69842
+ listen,
69843
+ getLastMenuPage
69821
69844
  };
69822
69845
  }
69823
69846
 
@@ -84252,6 +84275,7 @@ class NestedRows extends _base.BasePlugin {
84252
84275
  /**
84253
84276
  * The modifyRowData hook callback.
84254
84277
  *
84278
+ * @private
84255
84279
  * @param {number} row Visual row index.
84256
84280
  * @returns {boolean}
84257
84281
  */
@@ -84265,6 +84289,7 @@ class NestedRows extends _base.BasePlugin {
84265
84289
  /**
84266
84290
  * Modify the source data length to match the length of the nested structure.
84267
84291
  *
84292
+ * @private
84268
84293
  * @returns {number}
84269
84294
  */
84270
84295
  onModifySourceLength() {
@@ -84275,6 +84300,7 @@ class NestedRows extends _base.BasePlugin {
84275
84300
  }
84276
84301
 
84277
84302
  /**
84303
+ * @private
84278
84304
  * @param {number} index The index where the data was spliced.
84279
84305
  * @param {number} amount An amount of items to remove.
84280
84306
  * @param {object} element An element to add.
@@ -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-f11b1a2-20231123
29
- * Release date: 31/08/2023 (built at 23/11/2023 14:17:44)
28
+ * Version: 0.0.0-next-a417c2b-20231124
29
+ * Release date: 31/08/2023 (built at 24/11/2023 11:00:38)
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