handsontable 0.0.0-next-f11b1a2-20231123 → 0.0.0-next-44acfea-20231127

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.

Files changed (55) 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 +2 -2
  4. package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +3 -3
  5. package/3rdparty/walkontable/src/renderer/rows.js +1 -1
  6. package/3rdparty/walkontable/src/renderer/rows.mjs +2 -2
  7. package/3rdparty/walkontable/src/selection/manager.js +8 -8
  8. package/3rdparty/walkontable/src/selection/manager.mjs +8 -8
  9. package/base.js +2 -2
  10. package/base.mjs +2 -2
  11. package/core/focusCatcher/focusDetector.js +1 -1
  12. package/core/focusCatcher/focusDetector.mjs +2 -2
  13. package/dataMap/replaceData.js +3 -1
  14. package/dataMap/replaceData.mjs +3 -1
  15. package/dist/handsontable.css +2 -2
  16. package/dist/handsontable.full.css +2 -2
  17. package/dist/handsontable.full.js +103 -73
  18. package/dist/handsontable.full.min.css +2 -2
  19. package/dist/handsontable.full.min.js +8 -8
  20. package/dist/handsontable.js +103 -73
  21. package/dist/handsontable.min.css +2 -2
  22. package/dist/handsontable.min.js +31 -31
  23. package/editors/dateEditor/dateEditor.js +0 -7
  24. package/editors/dateEditor/dateEditor.mjs +1 -8
  25. package/editors/handsontableEditor/handsontableEditor.js +0 -7
  26. package/editors/handsontableEditor/handsontableEditor.mjs +1 -8
  27. package/editors/passwordEditor/passwordEditor.js +4 -0
  28. package/editors/passwordEditor/passwordEditor.mjs +5 -1
  29. package/helpers/a11y.js +2 -0
  30. package/helpers/a11y.mjs +1 -0
  31. package/helpers/mixed.js +1 -1
  32. package/helpers/mixed.mjs +1 -1
  33. package/package.json +1 -1
  34. package/plugins/filters/filters.js +10 -1
  35. package/plugins/filters/filters.mjs +10 -1
  36. package/plugins/filters/menu/focusController.js +29 -10
  37. package/plugins/filters/menu/focusController.mjs +29 -10
  38. package/plugins/nestedRows/nestedRows.js +3 -0
  39. package/plugins/nestedRows/nestedRows.mjs +3 -0
  40. package/renderers/autocompleteRenderer/autocompleteRenderer.js +0 -3
  41. package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +1 -4
  42. package/renderers/checkboxRenderer/checkboxRenderer.js +0 -1
  43. package/renderers/checkboxRenderer/checkboxRenderer.mjs +0 -1
  44. package/renderers/dateRenderer/dateRenderer.js +0 -5
  45. package/renderers/dateRenderer/dateRenderer.mjs +0 -5
  46. package/renderers/handsontableRenderer/handsontableRenderer.js +0 -5
  47. package/renderers/handsontableRenderer/handsontableRenderer.mjs +0 -5
  48. package/renderers/selectRenderer/selectRenderer.js +0 -5
  49. package/renderers/selectRenderer/selectRenderer.mjs +0 -5
  50. package/selection/highlight/types/focus.js +2 -6
  51. package/selection/highlight/types/focus.mjs +2 -6
  52. package/selection/selection.js +0 -1
  53. package/selection/selection.mjs +0 -1
  54. package/tableView.js +31 -2
  55. 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-f11b1a2-20231123
29
- * Release date: 31/08/2023 (built at 23/11/2023 14:17:27)
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')
@@ -42664,8 +42664,8 @@ Handsontable.hooks = _pluginHooks.default.getSingleton();
42664
42664
  Handsontable.CellCoords = _src.CellCoords;
42665
42665
  Handsontable.CellRange = _src.CellRange;
42666
42666
  Handsontable.packageName = 'handsontable';
42667
- Handsontable.buildDate = "23/11/2023 14:17:27";
42668
- Handsontable.version = "0.0.0-next-f11b1a2-20231123";
42667
+ Handsontable.buildDate = "27/11/2023 10:22:39";
42668
+ Handsontable.version = "0.0.0-next-44acfea-20231127";
42669
42669
  Handsontable.languages = {
42670
42670
  dictionaryKeys: _registry.dictionaryKeys,
42671
42671
  getLanguageDictionary: _registry.getLanguageDictionary,
@@ -52786,7 +52786,7 @@ const domMessages = {
52786
52786
  function _injectProductInfo(key, element) {
52787
52787
  const hasValidType = !isEmpty(key);
52788
52788
  const isNonCommercial = typeof key === 'string' && key.toLowerCase() === 'non-commercial-and-evaluation';
52789
- const hotVersion = "0.0.0-next-f11b1a2-20231123";
52789
+ const hotVersion = "0.0.0-next-44acfea-20231127";
52790
52790
  let keyValidityDate;
52791
52791
  let consoleMessageState = 'invalid';
52792
52792
  let domMessageState = 'invalid';
@@ -60038,6 +60038,8 @@ const A11Y_GRIDCELL = () => ['role', 'gridcell'];
60038
60038
  exports.A11Y_GRIDCELL = A11Y_GRIDCELL;
60039
60039
  const A11Y_ROWHEADER = () => ['role', 'rowheader'];
60040
60040
  exports.A11Y_ROWHEADER = A11Y_ROWHEADER;
60041
+ const A11Y_ROWGROUP = () => ['role', 'rowgroup'];
60042
+ exports.A11Y_ROWGROUP = A11Y_ROWGROUP;
60041
60043
  const A11Y_COLUMNHEADER = () => ['role', 'columnheader'];
60042
60044
  exports.A11Y_COLUMNHEADER = A11Y_COLUMNHEADER;
60043
60045
  const A11Y_ROW = () => ['role', 'row'];
@@ -66522,8 +66524,10 @@ var _src = _interopRequireDefault(__webpack_require__(478));
66522
66524
  var _mouseEventHandler = __webpack_require__(548);
66523
66525
  var _rootInstance = __webpack_require__(549);
66524
66526
  var _a11y = __webpack_require__(445);
66527
+ function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
66525
66528
  function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
66526
66529
  function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
66530
+ function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
66527
66531
  /**
66528
66532
  * @class TableView
66529
66533
  * @private
@@ -66535,11 +66539,25 @@ var _mouseDown = /*#__PURE__*/new WeakMap();
66535
66539
  var _table = /*#__PURE__*/new WeakMap();
66536
66540
  var _lastWidth = /*#__PURE__*/new WeakMap();
66537
66541
  var _lastHeight = /*#__PURE__*/new WeakMap();
66542
+ var _getAriaColcount = /*#__PURE__*/new WeakSet();
66543
+ var _updateAriaColcount = /*#__PURE__*/new WeakSet();
66538
66544
  class TableView {
66539
66545
  /**
66540
66546
  * @param {Hanstontable} hotInstance Instance of {@link Handsontable}.
66541
66547
  */
66542
66548
  constructor(hotInstance) {
66549
+ /**
66550
+ * Update the `aria-colcount` attribute by the provided value.
66551
+ *
66552
+ * @param {number} delta The number of columns to add or remove to the aria tag.
66553
+ */
66554
+ _classPrivateMethodInitSpec(this, _updateAriaColcount);
66555
+ /**
66556
+ * Return the value of the `aria-colcount` attribute.
66557
+ *
66558
+ * @returns {number} The value of the `aria-colcount` attribute.
66559
+ */
66560
+ _classPrivateMethodInitSpec(this, _getAriaColcount);
66543
66561
  /**
66544
66562
  * Instance of {@link Handsontable}.
66545
66563
  *
@@ -66776,7 +66794,7 @@ class TableView {
66776
66794
  }
66777
66795
  if (this.settings.ariaTags) {
66778
66796
  (0, _element.setAttribute)((0, _classPrivateFieldGet2.default)(this, _table), [(0, _a11y.A11Y_PRESENTATION)()]);
66779
- (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)()]);
66797
+ (0, _element.setAttribute)(rootElement, [(0, _a11y.A11Y_TREEGRID)(), (0, _a11y.A11Y_ROWCOUNT)(-1), (0, _a11y.A11Y_COLCOUNT)(this.hot.countCols()), (0, _a11y.A11Y_MULTISELECTABLE)()]);
66780
66798
  }
66781
66799
  this.THEAD = rootDocument.createElement('THEAD');
66782
66800
  (0, _classPrivateFieldGet2.default)(this, _table).appendChild(this.THEAD);
@@ -67169,6 +67187,13 @@ class TableView {
67169
67187
  }
67170
67188
  this.hot.runHooks('afterGetRowHeaderRenderers', headerRenderers);
67171
67189
  (0, _classPrivateFieldSet2.default)(this, _rowHeadersCount, headerRenderers.length);
67190
+ if (this.hot.getSettings().ariaTags) {
67191
+ // Update the aria-colcount attribute.
67192
+ // Only needs to be done once after initialization/data update.
67193
+ if (_classPrivateMethodGet(this, _getAriaColcount, _getAriaColcount2).call(this) === this.hot.countCols()) {
67194
+ _classPrivateMethodGet(this, _updateAriaColcount, _updateAriaColcount2).call(this, (0, _classPrivateFieldGet2.default)(this, _rowHeadersCount));
67195
+ }
67196
+ }
67172
67197
  return headerRenderers;
67173
67198
  },
67174
67199
  columnHeaders: () => {
@@ -67808,7 +67833,6 @@ class TableView {
67808
67833
  getRowHeadersCount() {
67809
67834
  return (0, _classPrivateFieldGet2.default)(this, _rowHeadersCount);
67810
67835
  }
67811
-
67812
67836
  /**
67813
67837
  * Destroys internal WalkOnTable's instance. Detaches all of the bonded listeners.
67814
67838
  *
@@ -67819,6 +67843,13 @@ class TableView {
67819
67843
  this.eventManager.destroy();
67820
67844
  }
67821
67845
  }
67846
+ function _getAriaColcount2() {
67847
+ return parseInt(this.hot.rootElement.getAttribute((0, _a11y.A11Y_COLCOUNT)()[0]), 10);
67848
+ }
67849
+ function _updateAriaColcount2(delta) {
67850
+ const colCount = _classPrivateMethodGet(this, _getAriaColcount, _getAriaColcount2).call(this) + delta;
67851
+ (0, _element.setAttribute)(this.hot.rootElement, ...(0, _a11y.A11Y_COLCOUNT)(colCount));
67852
+ }
67822
67853
  var _default = TableView;
67823
67854
  exports["default"] = _default;
67824
67855
 
@@ -73472,7 +73503,7 @@ class ColumnHeadersRenderer extends _base.default {
73472
73503
  columnHeadersCount
73473
73504
  } = this.table;
73474
73505
  if (this.table.isAriaEnabled()) {
73475
- (0, _element.setAttribute)(this.rootNode, [(0, _a11y.A11Y_PRESENTATION)()]);
73506
+ (0, _element.setAttribute)(this.rootNode, [(0, _a11y.A11Y_ROWGROUP)()]);
73476
73507
  }
73477
73508
  for (let rowHeaderIndex = 0; rowHeaderIndex < columnHeadersCount; rowHeaderIndex += 1) {
73478
73509
  const {
@@ -73494,7 +73525,7 @@ class ColumnHeadersRenderer extends _base.default {
73494
73525
  // Remove all accessibility-related attributes for the header to start fresh.
73495
73526
  (0, _element.removeAttribute)(TH, [new RegExp('aria-(.*)'), new RegExp('role')]);
73496
73527
  if (this.table.isAriaEnabled()) {
73497
- (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)()])]);
73528
+ (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)()] : [])]);
73498
73529
  }
73499
73530
  columnHeaderFunctions[rowHeaderIndex](sourceColumnIndex, TH, rowHeaderIndex);
73500
73531
  }
@@ -73646,7 +73677,7 @@ class RowsRenderer extends _base.default {
73646
73677
  the number of rendered rows by specifying the table height and/or turning off the "renderAllRows" option.`);
73647
73678
  }
73648
73679
  if (this.table.isAriaEnabled()) {
73649
- (0, _element.setAttribute)(this.rootNode, [(0, _a11y.A11Y_PRESENTATION)()]);
73680
+ (0, _element.setAttribute)(this.rootNode, [(0, _a11y.A11Y_ROWGROUP)()]);
73650
73681
  }
73651
73682
  this.orderView.setSize(rowsToRender).setOffset(this.table.renderedRowToSource(0)).start();
73652
73683
  for (let visibleRowIndex = 0; visibleRowIndex < rowsToRender; visibleRowIndex++) {
@@ -74719,8 +74750,8 @@ class Overlay {
74719
74750
  rootDocument,
74720
74751
  rootWindow
74721
74752
  } = this.domBindings;
74722
- const clone = rootDocument.createElement('DIV');
74723
- const clonedTable = rootDocument.createElement('TABLE');
74753
+ const clone = rootDocument.createElement('div');
74754
+ const clonedTable = rootDocument.createElement('table');
74724
74755
  const tableParent = wtTable.wtRootElement.parentNode;
74725
74756
  clone.className = `${_constants.CLONE_CLASS_NAMES.get(this.type)} handsontable`;
74726
74757
  clone.setAttribute('dir', this.isRtl() ? 'rtl' : 'ltr');
@@ -77062,12 +77093,12 @@ class SelectionManager {
77062
77093
  }
77063
77094
  const selections = Array.from((0, _classPrivateFieldGet7.default)(this, _selections));
77064
77095
  const classNamesMap = new Map();
77065
- const focusedHeaderAttributesMap = new Map();
77096
+ const headerAttributesMap = new Map();
77066
77097
  for (let i = 0; i < selections.length; i++) {
77067
77098
  const selection = selections[i];
77068
77099
  const {
77069
77100
  className,
77070
- focusedHeaderAttributes,
77101
+ headerAttributes,
77071
77102
  createLayers,
77072
77103
  selectionType
77073
77104
  } = selection.settings;
@@ -77094,12 +77125,12 @@ class SelectionManager {
77094
77125
  } else {
77095
77126
  classNamesMap.set(element, new Map([[className, 1]]));
77096
77127
  }
77097
- if (selectionType === 'focus' && focusedHeaderAttributes) {
77098
- if (!focusedHeaderAttributesMap.has(element)) {
77099
- focusedHeaderAttributesMap.set(element, []);
77128
+ if (headerAttributes) {
77129
+ if (!headerAttributesMap.has(element)) {
77130
+ headerAttributesMap.set(element, []);
77100
77131
  }
77101
77132
  if (element.nodeName === 'TH') {
77102
- focusedHeaderAttributesMap.get(element).push(...focusedHeaderAttributes);
77133
+ headerAttributesMap.get(element).push(...headerAttributes);
77103
77134
  }
77104
77135
  }
77105
77136
  });
@@ -77127,8 +77158,8 @@ class SelectionManager {
77127
77158
  });
77128
77159
 
77129
77160
  // Set the attributes for the headers if they're focused.
77130
- Array.from(focusedHeaderAttributesMap.keys()).forEach(element => {
77131
- (0, _element.setAttribute)(element, [...focusedHeaderAttributesMap.get(element)]);
77161
+ Array.from(headerAttributesMap.keys()).forEach(element => {
77162
+ (0, _element.setAttribute)(element, [...headerAttributesMap.get(element)]);
77132
77163
  });
77133
77164
  }
77134
77165
  }
@@ -83118,7 +83149,6 @@ class Selection {
83118
83149
  this.tableProps = tableProps;
83119
83150
  this.highlight = new _highlight.default({
83120
83151
  headerClassName: settings.currentHeaderClassName,
83121
- headerAttributes: [(0, _a11y.A11Y_SELECTED)()],
83122
83152
  activeHeaderClassName: settings.activeHeaderClassName,
83123
83153
  rowClassName: settings.currentRowClassName,
83124
83154
  columnClassName: settings.currentColClassName,
@@ -84717,27 +84747,23 @@ exports.__esModule = true;
84717
84747
  exports.createHighlight = createHighlight;
84718
84748
  var _src = __webpack_require__(478);
84719
84749
  var _visualSelection = _interopRequireDefault(__webpack_require__(581));
84750
+ var _a11y = __webpack_require__(445);
84720
84751
  /**
84721
84752
  * Creates the new instance of Selection responsible for highlighting currently selected cell. This type of selection
84722
84753
  * can present on the table only one at the time.
84723
84754
  *
84724
84755
  * @param {object} highlightParams A configuration object to create a highlight.
84725
84756
  * @param {Function} highlightParams.cellCornerVisible Function to determine if cell's corner should be visible.
84726
- * @param {Function} highlightParams.cellAttributes Array of cell attributes.
84727
- * @param {Function} highlightParams.headerAttributes Array of header attributes.
84728
84757
  * @returns {Selection}
84729
84758
  */
84730
84759
  function createHighlight(_ref) {
84731
84760
  let {
84732
84761
  cellCornerVisible,
84733
- cellAttributes,
84734
- headerAttributes,
84735
84762
  ...restOptions
84736
84763
  } = _ref;
84737
84764
  return new _visualSelection.default({
84738
84765
  className: 'current',
84739
- cellAttributes,
84740
- focusedHeaderAttributes: headerAttributes,
84766
+ headerAttributes: [(0, _a11y.A11Y_SELECTED)()],
84741
84767
  border: {
84742
84768
  width: 2,
84743
84769
  color: '#4b89ff',
@@ -92846,7 +92872,9 @@ function replaceData(data, setDataMapFunction, callbackFunction, config) {
92846
92872
  hotInstance.render();
92847
92873
  }
92848
92874
  if (hotInstance.getSettings().ariaTags) {
92849
- (0, _element.setAttribute)(hotInstance.rootElement, [(0, _a11y.A11Y_ROWCOUNT)(hotInstance.countRows()), (0, _a11y.A11Y_COLCOUNT)(hotInstance.countCols())]);
92875
+ (0, _element.setAttribute)(hotInstance.rootElement, [(0, _a11y.A11Y_ROWCOUNT)(-1),
92876
+ // If run after initialization, add the number of row headers.
92877
+ (0, _a11y.A11Y_COLCOUNT)(hotInstance.countCols() + (hotInstance.view ? hotInstance.countRowHeaders() : 0))]);
92850
92878
  }
92851
92879
  }
92852
92880
 
@@ -94650,7 +94678,7 @@ function createInputElement(hot) {
94650
94678
  input.type = 'text';
94651
94679
  input.classList.add('htFocusCatcher');
94652
94680
  if (hot.getSettings().ariaTags) {
94653
- (0, _element.setAttribute)(input, [(0, _a11y.A11Y_PRESENTATION)()]);
94681
+ (0, _element.setAttribute)(input, [(0, _a11y.A11Y_PRESENTATION)(), (0, _a11y.A11Y_HIDDEN)()]);
94654
94682
  }
94655
94683
  return input;
94656
94684
  }
@@ -97681,7 +97709,6 @@ var _element = __webpack_require__(302);
97681
97709
  var _event = __webpack_require__(457);
97682
97710
  var _object = __webpack_require__(448);
97683
97711
  var _editorManager = __webpack_require__(451);
97684
- var _a11y = __webpack_require__(445);
97685
97712
  const SHORTCUTS_GROUP = 'handsontableEditor';
97686
97713
  const EDITOR_TYPE = 'handsontable';
97687
97714
 
@@ -97718,9 +97745,6 @@ class HandsontableEditor extends _textEditor.TextEditor {
97718
97745
  }
97719
97746
  (0, _element.setCaretPosition)(this.TEXTAREA, 0, this.TEXTAREA.value.length);
97720
97747
  this.refreshDimensions();
97721
- if (this.hot.getSettings().ariaTags) {
97722
- (0, _element.setAttribute)(this.TD, [(0, _a11y.A11Y_EXPANDED)('true')]);
97723
- }
97724
97748
  }
97725
97749
 
97726
97750
  /**
@@ -97732,9 +97756,6 @@ class HandsontableEditor extends _textEditor.TextEditor {
97732
97756
  }
97733
97757
  this.removeHooksByKey('beforeKeyDown');
97734
97758
  super.close();
97735
- if (this.TD && this.hot.getSettings().ariaTags) {
97736
- (0, _element.setAttribute)(this.TD, [(0, _a11y.A11Y_EXPANDED)('false')]);
97737
- }
97738
97759
  }
97739
97760
 
97740
97761
  /**
@@ -98015,7 +98036,6 @@ var _pikaday = _interopRequireDefault(__webpack_require__(687));
98015
98036
  var _textEditor = __webpack_require__(666);
98016
98037
  var _eventManager = _interopRequireDefault(__webpack_require__(462));
98017
98038
  var _element = __webpack_require__(302);
98018
- var _a11y = __webpack_require__(445);
98019
98039
  var _object = __webpack_require__(448);
98020
98040
  var _unicode = __webpack_require__(456);
98021
98041
  __webpack_require__(688);
@@ -98139,9 +98159,6 @@ class DateEditor extends _textEditor.TextEditor {
98139
98159
  const editorContext = shortcutManager.getContext('editor');
98140
98160
  super.open();
98141
98161
  this.showDatepicker(event);
98142
- if (this.hot.getSettings().ariaTags) {
98143
- (0, _element.setAttribute)(this.TD, [(0, _a11y.A11Y_EXPANDED)('true')]);
98144
- }
98145
98162
  editorContext.addShortcut({
98146
98163
  keys: [['Enter']],
98147
98164
  callback: keyboardEvent => {
@@ -98167,9 +98184,6 @@ class DateEditor extends _textEditor.TextEditor {
98167
98184
  this.hot._registerTimeout(() => {
98168
98185
  this.hot._refreshBorders();
98169
98186
  });
98170
- if (this.TD && this.hot.getSettings().ariaTags) {
98171
- (0, _element.setAttribute)(this.TD, [(0, _a11y.A11Y_EXPANDED)('false')]);
98172
- }
98173
98187
  const shortcutManager = this.hot.getShortcutManager();
98174
98188
  const editorContext = shortcutManager.getContext('editor');
98175
98189
  editorContext.removeShortcutsByGroup(SHORTCUTS_GROUP_EDITOR);
@@ -99718,6 +99732,7 @@ exports.PasswordEditor = _passwordEditor.PasswordEditor;
99718
99732
  exports.__esModule = true;
99719
99733
  var _textEditor = __webpack_require__(666);
99720
99734
  var _element = __webpack_require__(302);
99735
+ var _a11y = __webpack_require__(445);
99721
99736
  const EDITOR_TYPE = 'password';
99722
99737
 
99723
99738
  /**
@@ -99738,6 +99753,9 @@ class PasswordEditor extends _textEditor.TextEditor {
99738
99753
  this.textareaStyle = this.TEXTAREA.style;
99739
99754
  this.textareaStyle.width = 0;
99740
99755
  this.textareaStyle.height = 0;
99756
+ if (this.hot.getSettings().ariaTags) {
99757
+ (0, _element.setAttribute)(this.TEXTAREA, [(0, _a11y.A11Y_HIDDEN)()]);
99758
+ }
99741
99759
  (0, _element.empty)(this.TEXTAREA_PARENT);
99742
99760
  this.TEXTAREA_PARENT.appendChild(this.TEXTAREA);
99743
99761
  }
@@ -100160,9 +100178,6 @@ function autocompleteRenderer(hotInstance, TD, row, col, prop, value, cellProper
100160
100178
 
100161
100179
  TD.insertBefore(ARROW, TD.firstChild);
100162
100180
  (0, _element.addClass)(TD, 'htAutocomplete');
100163
- if (isAriaEnabled) {
100164
- TD.setAttribute(...(0, _a11y.A11Y_HASPOPUP)('listbox'));
100165
- }
100166
100181
  if (!hotInstance.acArrowListener) {
100167
100182
  const eventManager = new _eventManager.default(hotInstance);
100168
100183
 
@@ -100548,7 +100563,6 @@ function createInput(rootDocument) {
100548
100563
  const input = rootDocument.createElement('input');
100549
100564
  input.className = 'htCheckboxRendererInput';
100550
100565
  input.type = 'checkbox';
100551
- input.setAttribute('autocomplete', 'off');
100552
100566
  input.setAttribute('tabindex', '-1');
100553
100567
  return input.cloneNode(false);
100554
100568
  }
@@ -101378,8 +101392,6 @@ exports.dateRenderer = _dateRenderer.dateRenderer;
101378
101392
  exports.__esModule = true;
101379
101393
  exports.dateRenderer = dateRenderer;
101380
101394
  var _autocompleteRenderer = __webpack_require__(700);
101381
- var _a11y = __webpack_require__(445);
101382
- var _element = __webpack_require__(302);
101383
101395
  const RENDERER_TYPE = 'date';
101384
101396
 
101385
101397
  /**
@@ -101397,9 +101409,6 @@ const RENDERER_TYPE = 'date';
101397
101409
  exports.RENDERER_TYPE = RENDERER_TYPE;
101398
101410
  function dateRenderer(hotInstance, TD, row, col, prop, value, cellProperties) {
101399
101411
  _autocompleteRenderer.autocompleteRenderer.apply(this, [hotInstance, TD, row, col, prop, value, cellProperties]);
101400
- if (hotInstance.getSettings().ariaTags) {
101401
- (0, _element.setAttribute)(TD, [(0, _a11y.A11Y_HASPOPUP)('dialog'), (0, _a11y.A11Y_EXPANDED)('false')]);
101402
- }
101403
101412
  }
101404
101413
  dateRenderer.RENDERER_TYPE = RENDERER_TYPE;
101405
101414
 
@@ -101491,8 +101500,6 @@ exports.handsontableRenderer = _handsontableRenderer.handsontableRenderer;
101491
101500
  exports.__esModule = true;
101492
101501
  exports.handsontableRenderer = handsontableRenderer;
101493
101502
  var _autocompleteRenderer = __webpack_require__(700);
101494
- var _a11y = __webpack_require__(445);
101495
- var _element = __webpack_require__(302);
101496
101503
  const RENDERER_TYPE = 'handsontable';
101497
101504
 
101498
101505
  /**
@@ -101510,9 +101517,6 @@ const RENDERER_TYPE = 'handsontable';
101510
101517
  exports.RENDERER_TYPE = RENDERER_TYPE;
101511
101518
  function handsontableRenderer(hotInstance, TD, row, col, prop, value, cellProperties) {
101512
101519
  _autocompleteRenderer.autocompleteRenderer.apply(this, [hotInstance, TD, row, col, prop, value, cellProperties]);
101513
- if (hotInstance.getSettings().ariaTags) {
101514
- (0, _element.setAttribute)(TD, [(0, _a11y.A11Y_HASPOPUP)('true'), (0, _a11y.A11Y_EXPANDED)('false')]);
101515
- }
101516
101520
  }
101517
101521
  handsontableRenderer.RENDERER_TYPE = RENDERER_TYPE;
101518
101522
 
@@ -101635,8 +101639,6 @@ exports.selectRenderer = _selectRenderer.selectRenderer;
101635
101639
  exports.__esModule = true;
101636
101640
  exports.selectRenderer = selectRenderer;
101637
101641
  var _textRenderer = __webpack_require__(673);
101638
- var _a11y = __webpack_require__(445);
101639
- var _element = __webpack_require__(302);
101640
101642
  const RENDERER_TYPE = 'select';
101641
101643
 
101642
101644
  /**
@@ -101652,9 +101654,6 @@ const RENDERER_TYPE = 'select';
101652
101654
  exports.RENDERER_TYPE = RENDERER_TYPE;
101653
101655
  function selectRenderer(hotInstance, TD, row, col, prop, value, cellProperties) {
101654
101656
  _textRenderer.textRenderer.apply(this, [hotInstance, TD, row, col, prop, value, cellProperties]);
101655
- if (hotInstance.getSettings().ariaTags) {
101656
- (0, _element.setAttribute)(TD, ...(0, _a11y.A11Y_HASPOPUP)('listbox'));
101657
- }
101658
101657
  }
101659
101658
  selectRenderer.RENDERER_TYPE = RENDERER_TYPE;
101660
101659
 
@@ -117416,7 +117415,16 @@ class Filters extends _base.BasePlugin {
117416
117415
  // A fake menu item that once focused allows escaping from the focus navigation (using Tab keys)
117417
117416
  // to the menu navigation using arrow keys.
117418
117417
  {
117419
- focus: () => mainMenu.focus()
117418
+ focus: () => {
117419
+ const menuNavigator = mainMenu.getNavigator();
117420
+ const lastSelectedMenuItem = (0, _classPrivateFieldGet2.default)(this, _menuFocusNavigator).getLastMenuPage();
117421
+ mainMenu.focus();
117422
+ if (lastSelectedMenuItem > 0) {
117423
+ menuNavigator.setCurrentPage(lastSelectedMenuItem);
117424
+ } else {
117425
+ menuNavigator.toFirstItem();
117426
+ }
117427
+ }
117420
117428
  }, ...Array.from(this.components).map(_ref => {
117421
117429
  let [, component] = _ref;
117422
117430
  return component.getElements();
@@ -122085,12 +122093,17 @@ const SHORTCUTS_MENU_CONTEXT = 'filters';
122085
122093
  * @returns {Paginator}
122086
122094
  */
122087
122095
  function createMenuFocusController(mainMenu, menuItems) {
122088
- const navigator = (0, _focusNavigator.createFocusNavigator)(menuItems);
122096
+ /**
122097
+ * @type {number} The last selected menu item (before clearing the the menu state after going
122098
+ * into the focus mode triggered by the TAB or SHIFT+TAB keys).
122099
+ */
122100
+ let lastSelectedMenuItem = -1;
122101
+ const focusNavigator = (0, _focusNavigator.createFocusNavigator)(menuItems);
122089
122102
  const updateNavigatorPosition = element => () => {
122090
122103
  if (mainMenu.isOpened()) {
122091
122104
  mainMenu.getKeyboardShortcutsCtrl().listen(SHORTCUTS_MENU_CONTEXT);
122092
122105
  }
122093
- navigator.setCurrentPage(menuItems.indexOf(element));
122106
+ focusNavigator.setCurrentPage(menuItems.indexOf(element));
122094
122107
  };
122095
122108
 
122096
122109
  // update navigator position (internal state) to element that was recently clicked or focused
@@ -122103,7 +122116,7 @@ function createMenuFocusController(mainMenu, menuItems) {
122103
122116
  });
122104
122117
  mainMenu.addLocalHook('afterSelectionChange', selectedItem => {
122105
122118
  if (!selectedItem.key.startsWith('filter_')) {
122106
- navigator.clear();
122119
+ focusNavigator.clear();
122107
122120
  }
122108
122121
  });
122109
122122
 
@@ -122115,7 +122128,7 @@ function createMenuFocusController(mainMenu, menuItems) {
122115
122128
  function addKeyboardShortcuts(menu) {
122116
122129
  const mainMenuShortcutsCtrl = mainMenu.getKeyboardShortcutsCtrl();
122117
122130
  const currentMenuShortcutsCtrl = menu.getKeyboardShortcutsCtrl();
122118
- navigator.clear();
122131
+ focusNavigator.clear();
122119
122132
  currentMenuShortcutsCtrl.addCustomShortcuts([{
122120
122133
  keys: [['Tab'], ['Shift', 'Tab']],
122121
122134
  forwardToContext: mainMenuShortcutsCtrl.getContext(SHORTCUTS_MENU_CONTEXT),
@@ -122132,11 +122145,15 @@ function createMenuFocusController(mainMenu, menuItems) {
122132
122145
  mainMenuShortcutsCtrl.addCustomShortcuts([{
122133
122146
  keys: [['Tab'], ['Shift', 'Tab']],
122134
122147
  callback: event => {
122135
- mainMenu.getNavigator().clear();
122148
+ const menuNavigator = mainMenu.getNavigator();
122149
+ if (menuNavigator.getCurrentPage() > -1) {
122150
+ lastSelectedMenuItem = menuNavigator.getCurrentPage();
122151
+ }
122152
+ menuNavigator.clear();
122136
122153
  if (event.shiftKey) {
122137
- navigator.toPreviousItem();
122154
+ focusNavigator.toPreviousItem();
122138
122155
  } else {
122139
- navigator.toNextItem();
122156
+ focusNavigator.toNextItem();
122140
122157
  }
122141
122158
  }
122142
122159
  }, {
@@ -122148,7 +122165,7 @@ function createMenuFocusController(mainMenu, menuItems) {
122148
122165
  keys: [['Enter'], ['Space']],
122149
122166
  preventDefault: false,
122150
122167
  callback: event => {
122151
- const element = menuItems[navigator.getCurrentPage()];
122168
+ const element = menuItems[focusNavigator.getCurrentPage()];
122152
122169
  if (element instanceof _select.SelectUI) {
122153
122170
  element.openOptions();
122154
122171
  event.preventDefault();
@@ -122174,9 +122191,19 @@ function createMenuFocusController(mainMenu, menuItems) {
122174
122191
  mainMenu.focus();
122175
122192
  mainMenu.getKeyboardShortcutsCtrl().listen(SHORTCUTS_MENU_CONTEXT);
122176
122193
  }
122194
+
122195
+ /**
122196
+ * Retrieves the last selected menu item (before clearing the state after going into the focus mode).
122197
+ *
122198
+ * @returns {number} The last selected menu item.
122199
+ */
122200
+ function getLastMenuPage() {
122201
+ return lastSelectedMenuItem;
122202
+ }
122177
122203
  return {
122178
- ...navigator,
122179
- listen
122204
+ ...focusNavigator,
122205
+ listen,
122206
+ getLastMenuPage
122180
122207
  };
122181
122208
  }
122182
122209
 
@@ -136611,6 +136638,7 @@ class NestedRows extends _base.BasePlugin {
136611
136638
  /**
136612
136639
  * The modifyRowData hook callback.
136613
136640
  *
136641
+ * @private
136614
136642
  * @param {number} row Visual row index.
136615
136643
  * @returns {boolean}
136616
136644
  */
@@ -136624,6 +136652,7 @@ class NestedRows extends _base.BasePlugin {
136624
136652
  /**
136625
136653
  * Modify the source data length to match the length of the nested structure.
136626
136654
  *
136655
+ * @private
136627
136656
  * @returns {number}
136628
136657
  */
136629
136658
  onModifySourceLength() {
@@ -136634,6 +136663,7 @@ class NestedRows extends _base.BasePlugin {
136634
136663
  }
136635
136664
 
136636
136665
  /**
136666
+ * @private
136637
136667
  * @param {number} index The index where the data was spliced.
136638
136668
  * @param {number} amount An amount of items to remove.
136639
136669
  * @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-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}
31
31
  /*!
32
32
  * Pikaday