handsontable 14.0.0-next-8a9a717-20231121 → 14.0.0-next-dd92f79-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.
@@ -93,7 +93,7 @@ class ColumnHeadersRenderer extends _base.default {
93
93
  // Remove all accessibility-related attributes for the header to start fresh.
94
94
  (0, _element.removeAttribute)(TH, [new RegExp('aria-(.*)'), new RegExp('role')]);
95
95
  if (this.table.isAriaEnabled()) {
96
- (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)()])]);
96
+ (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)()] : [])]);
97
97
  }
98
98
  columnHeaderFunctions[rowHeaderIndex](sourceColumnIndex, TH, rowHeaderIndex);
99
99
  }
@@ -89,7 +89,7 @@ export default class ColumnHeadersRenderer extends BaseRenderer {
89
89
  // Remove all accessibility-related attributes for the header to start fresh.
90
90
  removeAttribute(TH, [new RegExp('aria-(.*)'), new RegExp('role')]);
91
91
  if (this.table.isAriaEnabled()) {
92
- setAttribute(TH, [A11Y_COLINDEX(renderedColumnIndex + 1 + this.table.rowHeadersCount), A11Y_TABINDEX(-1), ...(renderedColumnIndex < 0 ? [A11Y_PRESENTATION()] : [A11Y_COLUMNHEADER(), A11Y_SCOPE_COL()])]);
92
+ setAttribute(TH, [A11Y_COLINDEX(renderedColumnIndex + 1 + this.table.rowHeadersCount), A11Y_TABINDEX(-1), A11Y_COLUMNHEADER(), ...(renderedColumnIndex >= 0 ? [A11Y_SCOPE_COL()] : [])]);
93
93
  }
94
94
  columnHeaderFunctions[rowHeaderIndex](sourceColumnIndex, TH, rowHeaderIndex);
95
95
  }
package/base.js CHANGED
@@ -43,8 +43,8 @@ Handsontable.hooks = _pluginHooks.default.getSingleton();
43
43
  Handsontable.CellCoords = _src.CellCoords;
44
44
  Handsontable.CellRange = _src.CellRange;
45
45
  Handsontable.packageName = 'handsontable';
46
- Handsontable.buildDate = "21/11/2023 13:09:19";
47
- Handsontable.version = "14.0.0-next-8a9a717-20231121";
46
+ Handsontable.buildDate = "24/11/2023 11:03:39";
47
+ Handsontable.version = "14.0.0-next-dd92f79-20231124";
48
48
  Handsontable.languages = {
49
49
  dictionaryKeys: _registry.dictionaryKeys,
50
50
  getLanguageDictionary: _registry.getLanguageDictionary,
package/base.mjs CHANGED
@@ -35,8 +35,8 @@ Handsontable.hooks = Hooks.getSingleton();
35
35
  Handsontable.CellCoords = CellCoords;
36
36
  Handsontable.CellRange = CellRange;
37
37
  Handsontable.packageName = 'handsontable';
38
- Handsontable.buildDate = "21/11/2023 13:09:25";
39
- Handsontable.version = "14.0.0-next-8a9a717-20231121";
38
+ Handsontable.buildDate = "24/11/2023 11:03:45";
39
+ Handsontable.version = "14.0.0-next-dd92f79-20231124";
40
40
  Handsontable.languages = {
41
41
  dictionaryKeys,
42
42
  getLanguageDictionary,
@@ -57,7 +57,7 @@ function createInputElement(hot) {
57
57
  input.type = 'text';
58
58
  input.classList.add('htFocusCatcher');
59
59
  if (hot.getSettings().ariaTags) {
60
- (0, _element.setAttribute)(input, [(0, _a11y.A11Y_PRESENTATION)()]);
60
+ (0, _element.setAttribute)(input, [(0, _a11y.A11Y_PRESENTATION)(), (0, _a11y.A11Y_HIDDEN)()]);
61
61
  }
62
62
  return input;
63
63
  }
@@ -1,5 +1,5 @@
1
1
  import { setAttribute } from "../../helpers/dom/element.mjs";
2
- import { A11Y_PRESENTATION } from "../../helpers/a11y.mjs";
2
+ import { A11Y_PRESENTATION, A11Y_HIDDEN } from "../../helpers/a11y.mjs";
3
3
  /**
4
4
  * Installs a focus detector module. The module appends two input elements into the DOM side by side.
5
5
  * When the first input is focused, then it means that a user entered to the component using the TAB key
@@ -53,7 +53,7 @@ function createInputElement(hot) {
53
53
  input.type = 'text';
54
54
  input.classList.add('htFocusCatcher');
55
55
  if (hot.getSettings().ariaTags) {
56
- setAttribute(input, [A11Y_PRESENTATION()]);
56
+ setAttribute(input, [A11Y_PRESENTATION(), A11Y_HIDDEN()]);
57
57
  }
58
58
  return input;
59
59
  }
@@ -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: 14.0.0-next-8a9a717-20231121
29
- * Release date: 22/11/2023 (built at 21/11/2023 13:09:30)
28
+ * Version: 14.0.0-next-dd92f79-20231124
29
+ * Release date: 22/11/2023 (built at 24/11/2023 11:03:49)
30
30
  */
31
31
  /**
32
32
  * Fix for bootstrap styles
@@ -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: 14.0.0-next-8a9a717-20231121
29
- * Release date: 22/11/2023 (built at 21/11/2023 13:09:30)
28
+ * Version: 14.0.0-next-dd92f79-20231124
29
+ * Release date: 22/11/2023 (built at 24/11/2023 11:03:49)
30
30
  */
31
31
  /**
32
32
  * Fix for bootstrap styles
@@ -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: 14.0.0-next-8a9a717-20231121
29
- * Release date: 22/11/2023 (built at 21/11/2023 13:09:30)
28
+ * Version: 14.0.0-next-dd92f79-20231124
29
+ * Release date: 22/11/2023 (built at 24/11/2023 11:03:49)
30
30
  */
31
31
  (function webpackUniversalModuleDefinition(root, factory) {
32
32
  if(typeof exports === 'object' && typeof module === 'object')
@@ -43033,8 +43033,8 @@ Handsontable.hooks = _pluginHooks.default.getSingleton();
43033
43033
  Handsontable.CellCoords = _src.CellCoords;
43034
43034
  Handsontable.CellRange = _src.CellRange;
43035
43035
  Handsontable.packageName = 'handsontable';
43036
- Handsontable.buildDate = "21/11/2023 13:09:30";
43037
- Handsontable.version = "14.0.0-next-8a9a717-20231121";
43036
+ Handsontable.buildDate = "24/11/2023 11:03:49";
43037
+ Handsontable.version = "14.0.0-next-dd92f79-20231124";
43038
43038
  Handsontable.languages = {
43039
43039
  dictionaryKeys: _registry.dictionaryKeys,
43040
43040
  getLanguageDictionary: _registry.getLanguageDictionary,
@@ -53183,7 +53183,7 @@ const domMessages = {
53183
53183
  function _injectProductInfo(key, element) {
53184
53184
  const hasValidType = !isEmpty(key);
53185
53185
  const isNonCommercial = typeof key === 'string' && key.toLowerCase() === 'non-commercial-and-evaluation';
53186
- const hotVersion = "14.0.0-next-8a9a717-20231121";
53186
+ const hotVersion = "14.0.0-next-dd92f79-20231124";
53187
53187
  let keyValidityDate;
53188
53188
  let consoleMessageState = 'invalid';
53189
53189
  let domMessageState = 'invalid';
@@ -73864,7 +73864,7 @@ class ColumnHeadersRenderer extends _base.default {
73864
73864
  // Remove all accessibility-related attributes for the header to start fresh.
73865
73865
  (0, _element.removeAttribute)(TH, [new RegExp('aria-(.*)'), new RegExp('role')]);
73866
73866
  if (this.table.isAriaEnabled()) {
73867
- (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)()])]);
73867
+ (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)()] : [])]);
73868
73868
  }
73869
73869
  columnHeaderFunctions[rowHeaderIndex](sourceColumnIndex, TH, rowHeaderIndex);
73870
73870
  }
@@ -94854,7 +94854,7 @@ function createInputElement(hot) {
94854
94854
  input.type = 'text';
94855
94855
  input.classList.add('htFocusCatcher');
94856
94856
  if (hot.getSettings().ariaTags) {
94857
- (0, _element.setAttribute)(input, [(0, _a11y.A11Y_PRESENTATION)()]);
94857
+ (0, _element.setAttribute)(input, [(0, _a11y.A11Y_PRESENTATION)(), (0, _a11y.A11Y_HIDDEN)()]);
94858
94858
  }
94859
94859
  return input;
94860
94860
  }
@@ -117536,7 +117536,16 @@ class Filters extends _base.BasePlugin {
117536
117536
  // A fake menu item that once focused allows escaping from the focus navigation (using Tab keys)
117537
117537
  // to the menu navigation using arrow keys.
117538
117538
  {
117539
- focus: () => mainMenu.focus()
117539
+ focus: () => {
117540
+ const menuNavigator = mainMenu.getNavigator();
117541
+ const lastSelectedMenuItem = (0, _classPrivateFieldGet2.default)(this, _menuFocusNavigator).getLastMenuPage();
117542
+ mainMenu.focus();
117543
+ if (lastSelectedMenuItem > 0) {
117544
+ menuNavigator.setCurrentPage(lastSelectedMenuItem);
117545
+ } else {
117546
+ menuNavigator.toFirstItem();
117547
+ }
117548
+ }
117540
117549
  }, ...Array.from(this.components).map(_ref => {
117541
117550
  let [, component] = _ref;
117542
117551
  return component.getElements();
@@ -122163,12 +122172,17 @@ const SHORTCUTS_MENU_CONTEXT = 'filters';
122163
122172
  * @returns {Paginator}
122164
122173
  */
122165
122174
  function createMenuFocusController(mainMenu, menuItems) {
122166
- const navigator = (0, _focusNavigator.createFocusNavigator)(menuItems);
122175
+ /**
122176
+ * @type {number} The last selected menu item (before clearing the the menu state after going
122177
+ * into the focus mode triggered by the TAB or SHIFT+TAB keys).
122178
+ */
122179
+ let lastSelectedMenuItem = -1;
122180
+ const focusNavigator = (0, _focusNavigator.createFocusNavigator)(menuItems);
122167
122181
  const updateNavigatorPosition = element => () => {
122168
122182
  if (mainMenu.isOpened()) {
122169
122183
  mainMenu.getKeyboardShortcutsCtrl().listen(SHORTCUTS_MENU_CONTEXT);
122170
122184
  }
122171
- navigator.setCurrentPage(menuItems.indexOf(element));
122185
+ focusNavigator.setCurrentPage(menuItems.indexOf(element));
122172
122186
  };
122173
122187
 
122174
122188
  // update navigator position (internal state) to element that was recently clicked or focused
@@ -122181,7 +122195,7 @@ function createMenuFocusController(mainMenu, menuItems) {
122181
122195
  });
122182
122196
  mainMenu.addLocalHook('afterSelectionChange', selectedItem => {
122183
122197
  if (!selectedItem.key.startsWith('filter_')) {
122184
- navigator.clear();
122198
+ focusNavigator.clear();
122185
122199
  }
122186
122200
  });
122187
122201
 
@@ -122193,7 +122207,7 @@ function createMenuFocusController(mainMenu, menuItems) {
122193
122207
  function addKeyboardShortcuts(menu) {
122194
122208
  const mainMenuShortcutsCtrl = mainMenu.getKeyboardShortcutsCtrl();
122195
122209
  const currentMenuShortcutsCtrl = menu.getKeyboardShortcutsCtrl();
122196
- navigator.clear();
122210
+ focusNavigator.clear();
122197
122211
  currentMenuShortcutsCtrl.addCustomShortcuts([{
122198
122212
  keys: [['Tab'], ['Shift', 'Tab']],
122199
122213
  forwardToContext: mainMenuShortcutsCtrl.getContext(SHORTCUTS_MENU_CONTEXT),
@@ -122210,11 +122224,15 @@ function createMenuFocusController(mainMenu, menuItems) {
122210
122224
  mainMenuShortcutsCtrl.addCustomShortcuts([{
122211
122225
  keys: [['Tab'], ['Shift', 'Tab']],
122212
122226
  callback: event => {
122213
- mainMenu.getNavigator().clear();
122227
+ const menuNavigator = mainMenu.getNavigator();
122228
+ if (menuNavigator.getCurrentPage() > -1) {
122229
+ lastSelectedMenuItem = menuNavigator.getCurrentPage();
122230
+ }
122231
+ menuNavigator.clear();
122214
122232
  if (event.shiftKey) {
122215
- navigator.toPreviousItem();
122233
+ focusNavigator.toPreviousItem();
122216
122234
  } else {
122217
- navigator.toNextItem();
122235
+ focusNavigator.toNextItem();
122218
122236
  }
122219
122237
  }
122220
122238
  }, {
@@ -122226,7 +122244,7 @@ function createMenuFocusController(mainMenu, menuItems) {
122226
122244
  keys: [['Enter'], ['Space']],
122227
122245
  preventDefault: false,
122228
122246
  callback: event => {
122229
- const element = menuItems[navigator.getCurrentPage()];
122247
+ const element = menuItems[focusNavigator.getCurrentPage()];
122230
122248
  if (element instanceof _select.SelectUI) {
122231
122249
  element.openOptions();
122232
122250
  event.preventDefault();
@@ -122252,9 +122270,19 @@ function createMenuFocusController(mainMenu, menuItems) {
122252
122270
  mainMenu.focus();
122253
122271
  mainMenu.getKeyboardShortcutsCtrl().listen(SHORTCUTS_MENU_CONTEXT);
122254
122272
  }
122273
+
122274
+ /**
122275
+ * Retrieves the last selected menu item (before clearing the state after going into the focus mode).
122276
+ *
122277
+ * @returns {number} The last selected menu item.
122278
+ */
122279
+ function getLastMenuPage() {
122280
+ return lastSelectedMenuItem;
122281
+ }
122255
122282
  return {
122256
- ...navigator,
122257
- listen
122283
+ ...focusNavigator,
122284
+ listen,
122285
+ getLastMenuPage
122258
122286
  };
122259
122287
  }
122260
122288
 
@@ -136753,6 +136781,7 @@ class NestedRows extends _base.BasePlugin {
136753
136781
  /**
136754
136782
  * The modifyRowData hook callback.
136755
136783
  *
136784
+ * @private
136756
136785
  * @param {number} row Visual row index.
136757
136786
  * @returns {boolean}
136758
136787
  */
@@ -136766,6 +136795,7 @@ class NestedRows extends _base.BasePlugin {
136766
136795
  /**
136767
136796
  * Modify the source data length to match the length of the nested structure.
136768
136797
  *
136798
+ * @private
136769
136799
  * @returns {number}
136770
136800
  */
136771
136801
  onModifySourceLength() {
@@ -136776,6 +136806,7 @@ class NestedRows extends _base.BasePlugin {
136776
136806
  }
136777
136807
 
136778
136808
  /**
136809
+ * @private
136779
136810
  * @param {number} index The index where the data was spliced.
136780
136811
  * @param {number} amount An amount of items to remove.
136781
136812
  * @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: 14.0.0-next-8a9a717-20231121
29
- * Release date: 22/11/2023 (built at 21/11/2023 13:09:49)
28
+ * Version: 14.0.0-next-dd92f79-20231124
29
+ * Release date: 22/11/2023 (built at 24/11/2023 11:04:07)
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 .columnSortingIndicator: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 .columnSortingIndicator:before{background-position-x:left;left:-9px;padding-left:0;padding-right:8px;right:unset}.handsontable span.colHeader.columnSorting.ascending .columnSortingIndicator:before{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAoCAMAAADJ7yrpAAAAKlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKE86IAAAADXRSTlMABBEmRGprlJW72e77tTkTKwAAAFNJREFUeAHtzjkSgCAUBNHPgsoy97+ulGXRqJE5L+xkxoYt2UdsLb5bqFINz+aLuuLn5rIu2RkO3fZpWENimNgiw6iBYRTPMLJjGFxQZ1hxxb/xBI1qC8k39CdKAAAAAElFTkSuQmCC)}.handsontable span.colHeader.columnSorting.descending .columnSortingIndicator: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 .submenuIndicator:after{color:#777;content:"▶";font-size:9px;position:absolute;right:5px}[dir=rtl].handsontable .htSubmenu .submenuIndicator:after{content:""}[dir=rtl].handsontable .htSubmenu .submenuIndicator: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}
31
31
  /*!
32
32
  * Pikaday