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.

@@ -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
  }
@@ -190,12 +190,12 @@ class SelectionManager {
190
190
  }
191
191
  const selections = Array.from(_classPrivateFieldGet(this, _selections));
192
192
  const classNamesMap = new Map();
193
- const focusedHeaderAttributesMap = new Map();
193
+ const headerAttributesMap = new Map();
194
194
  for (let i = 0; i < selections.length; i++) {
195
195
  const selection = selections[i];
196
196
  const {
197
197
  className,
198
- focusedHeaderAttributes,
198
+ headerAttributes,
199
199
  createLayers,
200
200
  selectionType
201
201
  } = selection.settings;
@@ -222,12 +222,12 @@ class SelectionManager {
222
222
  } else {
223
223
  classNamesMap.set(element, new Map([[className, 1]]));
224
224
  }
225
- if (selectionType === 'focus' && focusedHeaderAttributes) {
226
- if (!focusedHeaderAttributesMap.has(element)) {
227
- focusedHeaderAttributesMap.set(element, []);
225
+ if (headerAttributes) {
226
+ if (!headerAttributesMap.has(element)) {
227
+ headerAttributesMap.set(element, []);
228
228
  }
229
229
  if (element.nodeName === 'TH') {
230
- focusedHeaderAttributesMap.get(element).push(...focusedHeaderAttributes);
230
+ headerAttributesMap.get(element).push(...headerAttributes);
231
231
  }
232
232
  }
233
233
  });
@@ -255,8 +255,8 @@ class SelectionManager {
255
255
  });
256
256
 
257
257
  // Set the attributes for the headers if they're focused.
258
- Array.from(focusedHeaderAttributesMap.keys()).forEach(element => {
259
- (0, _element.setAttribute)(element, [...focusedHeaderAttributesMap.get(element)]);
258
+ Array.from(headerAttributesMap.keys()).forEach(element => {
259
+ (0, _element.setAttribute)(element, [...headerAttributesMap.get(element)]);
260
260
  });
261
261
  }
262
262
  }
@@ -186,12 +186,12 @@ export class SelectionManager {
186
186
  }
187
187
  const selections = Array.from(_classPrivateFieldGet(this, _selections));
188
188
  const classNamesMap = new Map();
189
- const focusedHeaderAttributesMap = new Map();
189
+ const headerAttributesMap = new Map();
190
190
  for (let i = 0; i < selections.length; i++) {
191
191
  const selection = selections[i];
192
192
  const {
193
193
  className,
194
- focusedHeaderAttributes,
194
+ headerAttributes,
195
195
  createLayers,
196
196
  selectionType
197
197
  } = selection.settings;
@@ -218,12 +218,12 @@ export class SelectionManager {
218
218
  } else {
219
219
  classNamesMap.set(element, new Map([[className, 1]]));
220
220
  }
221
- if (selectionType === 'focus' && focusedHeaderAttributes) {
222
- if (!focusedHeaderAttributesMap.has(element)) {
223
- focusedHeaderAttributesMap.set(element, []);
221
+ if (headerAttributes) {
222
+ if (!headerAttributesMap.has(element)) {
223
+ headerAttributesMap.set(element, []);
224
224
  }
225
225
  if (element.nodeName === 'TH') {
226
- focusedHeaderAttributesMap.get(element).push(...focusedHeaderAttributes);
226
+ headerAttributesMap.get(element).push(...headerAttributes);
227
227
  }
228
228
  }
229
229
  });
@@ -251,8 +251,8 @@ export class SelectionManager {
251
251
  });
252
252
 
253
253
  // Set the attributes for the headers if they're focused.
254
- Array.from(focusedHeaderAttributesMap.keys()).forEach(element => {
255
- setAttribute(element, [...focusedHeaderAttributesMap.get(element)]);
254
+ Array.from(headerAttributesMap.keys()).forEach(element => {
255
+ setAttribute(element, [...headerAttributesMap.get(element)]);
256
256
  });
257
257
  }
258
258
  }
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 = "23/11/2023 14:17:16";
47
- Handsontable.version = "0.0.0-next-f11b1a2-20231123";
46
+ Handsontable.buildDate = "24/11/2023 11:00:10";
47
+ Handsontable.version = "0.0.0-next-a417c2b-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 = "23/11/2023 14:17:22";
39
- Handsontable.version = "0.0.0-next-f11b1a2-20231123";
38
+ Handsontable.buildDate = "24/11/2023 11:00:16";
39
+ Handsontable.version = "0.0.0-next-a417c2b-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: 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
  /**
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: 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
  /**
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: 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')
@@ -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 = "24/11/2023 11:00:21";
42668
+ Handsontable.version = "0.0.0-next-a417c2b-20231124";
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-a417c2b-20231124";
52790
52790
  let keyValidityDate;
52791
52791
  let consoleMessageState = 'invalid';
52792
52792
  let domMessageState = 'invalid';
@@ -73494,7 +73494,7 @@ class ColumnHeadersRenderer extends _base.default {
73494
73494
  // Remove all accessibility-related attributes for the header to start fresh.
73495
73495
  (0, _element.removeAttribute)(TH, [new RegExp('aria-(.*)'), new RegExp('role')]);
73496
73496
  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)()])]);
73497
+ (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
73498
  }
73499
73499
  columnHeaderFunctions[rowHeaderIndex](sourceColumnIndex, TH, rowHeaderIndex);
73500
73500
  }
@@ -77062,12 +77062,12 @@ class SelectionManager {
77062
77062
  }
77063
77063
  const selections = Array.from((0, _classPrivateFieldGet7.default)(this, _selections));
77064
77064
  const classNamesMap = new Map();
77065
- const focusedHeaderAttributesMap = new Map();
77065
+ const headerAttributesMap = new Map();
77066
77066
  for (let i = 0; i < selections.length; i++) {
77067
77067
  const selection = selections[i];
77068
77068
  const {
77069
77069
  className,
77070
- focusedHeaderAttributes,
77070
+ headerAttributes,
77071
77071
  createLayers,
77072
77072
  selectionType
77073
77073
  } = selection.settings;
@@ -77094,12 +77094,12 @@ class SelectionManager {
77094
77094
  } else {
77095
77095
  classNamesMap.set(element, new Map([[className, 1]]));
77096
77096
  }
77097
- if (selectionType === 'focus' && focusedHeaderAttributes) {
77098
- if (!focusedHeaderAttributesMap.has(element)) {
77099
- focusedHeaderAttributesMap.set(element, []);
77097
+ if (headerAttributes) {
77098
+ if (!headerAttributesMap.has(element)) {
77099
+ headerAttributesMap.set(element, []);
77100
77100
  }
77101
77101
  if (element.nodeName === 'TH') {
77102
- focusedHeaderAttributesMap.get(element).push(...focusedHeaderAttributes);
77102
+ headerAttributesMap.get(element).push(...headerAttributes);
77103
77103
  }
77104
77104
  }
77105
77105
  });
@@ -77127,8 +77127,8 @@ class SelectionManager {
77127
77127
  });
77128
77128
 
77129
77129
  // 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)]);
77130
+ Array.from(headerAttributesMap.keys()).forEach(element => {
77131
+ (0, _element.setAttribute)(element, [...headerAttributesMap.get(element)]);
77132
77132
  });
77133
77133
  }
77134
77134
  }
@@ -83118,7 +83118,6 @@ class Selection {
83118
83118
  this.tableProps = tableProps;
83119
83119
  this.highlight = new _highlight.default({
83120
83120
  headerClassName: settings.currentHeaderClassName,
83121
- headerAttributes: [(0, _a11y.A11Y_SELECTED)()],
83122
83121
  activeHeaderClassName: settings.activeHeaderClassName,
83123
83122
  rowClassName: settings.currentRowClassName,
83124
83123
  columnClassName: settings.currentColClassName,
@@ -84717,27 +84716,23 @@ exports.__esModule = true;
84717
84716
  exports.createHighlight = createHighlight;
84718
84717
  var _src = __webpack_require__(478);
84719
84718
  var _visualSelection = _interopRequireDefault(__webpack_require__(581));
84719
+ var _a11y = __webpack_require__(445);
84720
84720
  /**
84721
84721
  * Creates the new instance of Selection responsible for highlighting currently selected cell. This type of selection
84722
84722
  * can present on the table only one at the time.
84723
84723
  *
84724
84724
  * @param {object} highlightParams A configuration object to create a highlight.
84725
84725
  * @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
84726
  * @returns {Selection}
84729
84727
  */
84730
84728
  function createHighlight(_ref) {
84731
84729
  let {
84732
84730
  cellCornerVisible,
84733
- cellAttributes,
84734
- headerAttributes,
84735
84731
  ...restOptions
84736
84732
  } = _ref;
84737
84733
  return new _visualSelection.default({
84738
84734
  className: 'current',
84739
- cellAttributes,
84740
- focusedHeaderAttributes: headerAttributes,
84735
+ headerAttributes: [(0, _a11y.A11Y_SELECTED)()],
84741
84736
  border: {
84742
84737
  width: 2,
84743
84738
  color: '#4b89ff',
@@ -94650,7 +94645,7 @@ function createInputElement(hot) {
94650
94645
  input.type = 'text';
94651
94646
  input.classList.add('htFocusCatcher');
94652
94647
  if (hot.getSettings().ariaTags) {
94653
- (0, _element.setAttribute)(input, [(0, _a11y.A11Y_PRESENTATION)()]);
94648
+ (0, _element.setAttribute)(input, [(0, _a11y.A11Y_PRESENTATION)(), (0, _a11y.A11Y_HIDDEN)()]);
94654
94649
  }
94655
94650
  return input;
94656
94651
  }
@@ -117416,7 +117411,16 @@ class Filters extends _base.BasePlugin {
117416
117411
  // A fake menu item that once focused allows escaping from the focus navigation (using Tab keys)
117417
117412
  // to the menu navigation using arrow keys.
117418
117413
  {
117419
- focus: () => mainMenu.focus()
117414
+ focus: () => {
117415
+ const menuNavigator = mainMenu.getNavigator();
117416
+ const lastSelectedMenuItem = (0, _classPrivateFieldGet2.default)(this, _menuFocusNavigator).getLastMenuPage();
117417
+ mainMenu.focus();
117418
+ if (lastSelectedMenuItem > 0) {
117419
+ menuNavigator.setCurrentPage(lastSelectedMenuItem);
117420
+ } else {
117421
+ menuNavigator.toFirstItem();
117422
+ }
117423
+ }
117420
117424
  }, ...Array.from(this.components).map(_ref => {
117421
117425
  let [, component] = _ref;
117422
117426
  return component.getElements();
@@ -122085,12 +122089,17 @@ const SHORTCUTS_MENU_CONTEXT = 'filters';
122085
122089
  * @returns {Paginator}
122086
122090
  */
122087
122091
  function createMenuFocusController(mainMenu, menuItems) {
122088
- const navigator = (0, _focusNavigator.createFocusNavigator)(menuItems);
122092
+ /**
122093
+ * @type {number} The last selected menu item (before clearing the the menu state after going
122094
+ * into the focus mode triggered by the TAB or SHIFT+TAB keys).
122095
+ */
122096
+ let lastSelectedMenuItem = -1;
122097
+ const focusNavigator = (0, _focusNavigator.createFocusNavigator)(menuItems);
122089
122098
  const updateNavigatorPosition = element => () => {
122090
122099
  if (mainMenu.isOpened()) {
122091
122100
  mainMenu.getKeyboardShortcutsCtrl().listen(SHORTCUTS_MENU_CONTEXT);
122092
122101
  }
122093
- navigator.setCurrentPage(menuItems.indexOf(element));
122102
+ focusNavigator.setCurrentPage(menuItems.indexOf(element));
122094
122103
  };
122095
122104
 
122096
122105
  // update navigator position (internal state) to element that was recently clicked or focused
@@ -122103,7 +122112,7 @@ function createMenuFocusController(mainMenu, menuItems) {
122103
122112
  });
122104
122113
  mainMenu.addLocalHook('afterSelectionChange', selectedItem => {
122105
122114
  if (!selectedItem.key.startsWith('filter_')) {
122106
- navigator.clear();
122115
+ focusNavigator.clear();
122107
122116
  }
122108
122117
  });
122109
122118
 
@@ -122115,7 +122124,7 @@ function createMenuFocusController(mainMenu, menuItems) {
122115
122124
  function addKeyboardShortcuts(menu) {
122116
122125
  const mainMenuShortcutsCtrl = mainMenu.getKeyboardShortcutsCtrl();
122117
122126
  const currentMenuShortcutsCtrl = menu.getKeyboardShortcutsCtrl();
122118
- navigator.clear();
122127
+ focusNavigator.clear();
122119
122128
  currentMenuShortcutsCtrl.addCustomShortcuts([{
122120
122129
  keys: [['Tab'], ['Shift', 'Tab']],
122121
122130
  forwardToContext: mainMenuShortcutsCtrl.getContext(SHORTCUTS_MENU_CONTEXT),
@@ -122132,11 +122141,15 @@ function createMenuFocusController(mainMenu, menuItems) {
122132
122141
  mainMenuShortcutsCtrl.addCustomShortcuts([{
122133
122142
  keys: [['Tab'], ['Shift', 'Tab']],
122134
122143
  callback: event => {
122135
- mainMenu.getNavigator().clear();
122144
+ const menuNavigator = mainMenu.getNavigator();
122145
+ if (menuNavigator.getCurrentPage() > -1) {
122146
+ lastSelectedMenuItem = menuNavigator.getCurrentPage();
122147
+ }
122148
+ menuNavigator.clear();
122136
122149
  if (event.shiftKey) {
122137
- navigator.toPreviousItem();
122150
+ focusNavigator.toPreviousItem();
122138
122151
  } else {
122139
- navigator.toNextItem();
122152
+ focusNavigator.toNextItem();
122140
122153
  }
122141
122154
  }
122142
122155
  }, {
@@ -122148,7 +122161,7 @@ function createMenuFocusController(mainMenu, menuItems) {
122148
122161
  keys: [['Enter'], ['Space']],
122149
122162
  preventDefault: false,
122150
122163
  callback: event => {
122151
- const element = menuItems[navigator.getCurrentPage()];
122164
+ const element = menuItems[focusNavigator.getCurrentPage()];
122152
122165
  if (element instanceof _select.SelectUI) {
122153
122166
  element.openOptions();
122154
122167
  event.preventDefault();
@@ -122174,9 +122187,19 @@ function createMenuFocusController(mainMenu, menuItems) {
122174
122187
  mainMenu.focus();
122175
122188
  mainMenu.getKeyboardShortcutsCtrl().listen(SHORTCUTS_MENU_CONTEXT);
122176
122189
  }
122190
+
122191
+ /**
122192
+ * Retrieves the last selected menu item (before clearing the state after going into the focus mode).
122193
+ *
122194
+ * @returns {number} The last selected menu item.
122195
+ */
122196
+ function getLastMenuPage() {
122197
+ return lastSelectedMenuItem;
122198
+ }
122177
122199
  return {
122178
- ...navigator,
122179
- listen
122200
+ ...focusNavigator,
122201
+ listen,
122202
+ getLastMenuPage
122180
122203
  };
122181
122204
  }
122182
122205
 
@@ -136611,6 +136634,7 @@ class NestedRows extends _base.BasePlugin {
136611
136634
  /**
136612
136635
  * The modifyRowData hook callback.
136613
136636
  *
136637
+ * @private
136614
136638
  * @param {number} row Visual row index.
136615
136639
  * @returns {boolean}
136616
136640
  */
@@ -136624,6 +136648,7 @@ class NestedRows extends _base.BasePlugin {
136624
136648
  /**
136625
136649
  * Modify the source data length to match the length of the nested structure.
136626
136650
  *
136651
+ * @private
136627
136652
  * @returns {number}
136628
136653
  */
136629
136654
  onModifySourceLength() {
@@ -136634,6 +136659,7 @@ class NestedRows extends _base.BasePlugin {
136634
136659
  }
136635
136660
 
136636
136661
  /**
136662
+ * @private
136637
136663
  * @param {number} index The index where the data was spliced.
136638
136664
  * @param {number} amount An amount of items to remove.
136639
136665
  * @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}
31
31
  /*!
32
32
  * Pikaday