handsontable 0.0.0-next-44acfea-20231127 → 0.0.0-next-28e0541-20231128

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


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

@@ -93,7 +93,10 @@ 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), (0, _a11y.A11Y_COLUMNHEADER)(), ...(renderedColumnIndex >= 0 ? [(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
+ // Adding `role=row` to the corner headers to prevent
98
+ // https://github.com/handsontable/dev-handsontable/issues/1574
99
+ (0, _a11y.A11Y_ROW)()])]);
97
100
  }
98
101
  columnHeaderFunctions[rowHeaderIndex](sourceColumnIndex, TH, rowHeaderIndex);
99
102
  }
@@ -89,7 +89,10 @@ 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), A11Y_COLUMNHEADER(), ...(renderedColumnIndex >= 0 ? [A11Y_SCOPE_COL()] : [])]);
92
+ setAttribute(TH, [A11Y_COLINDEX(renderedColumnIndex + 1 + this.table.rowHeadersCount), A11Y_TABINDEX(-1), A11Y_COLUMNHEADER(), ...(renderedColumnIndex >= 0 ? [A11Y_SCOPE_COL()] : [
93
+ // Adding `role=row` to the corner headers to prevent
94
+ // https://github.com/handsontable/dev-handsontable/issues/1574
95
+ A11Y_ROW()])]);
93
96
  }
94
97
  columnHeaderFunctions[rowHeaderIndex](sourceColumnIndex, TH, rowHeaderIndex);
95
98
  }
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 = "27/11/2023 10:22:28";
47
- Handsontable.version = "0.0.0-next-44acfea-20231127";
46
+ Handsontable.buildDate = "28/11/2023 12:40:28";
47
+ Handsontable.version = "0.0.0-next-28e0541-20231128";
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 = "27/11/2023 10:22:34";
39
- Handsontable.version = "0.0.0-next-44acfea-20231127";
38
+ Handsontable.buildDate = "28/11/2023 12:40:34";
39
+ Handsontable.version = "0.0.0-next-28e0541-20231128";
40
40
  Handsontable.languages = {
41
41
  dictionaryKeys,
42
42
  getLanguageDictionary,
@@ -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-44acfea-20231127
29
- * Release date: 31/08/2023 (built at 27/11/2023 10:22:39)
28
+ * Version: 0.0.0-next-28e0541-20231128
29
+ * Release date: 31/08/2023 (built at 28/11/2023 12:40:40)
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-44acfea-20231127
29
- * Release date: 31/08/2023 (built at 27/11/2023 10:22:39)
28
+ * Version: 0.0.0-next-28e0541-20231128
29
+ * Release date: 31/08/2023 (built at 28/11/2023 12:40:40)
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-44acfea-20231127
29
- * Release date: 31/08/2023 (built at 27/11/2023 10:22:39)
28
+ * Version: 0.0.0-next-28e0541-20231128
29
+ * Release date: 31/08/2023 (built at 28/11/2023 12:40:40)
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 = "27/11/2023 10:22:39";
42668
- Handsontable.version = "0.0.0-next-44acfea-20231127";
42667
+ Handsontable.buildDate = "28/11/2023 12:40:40";
42668
+ Handsontable.version = "0.0.0-next-28e0541-20231128";
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-44acfea-20231127";
52789
+ const hotVersion = "0.0.0-next-28e0541-20231128";
52790
52790
  let keyValidityDate;
52791
52791
  let consoleMessageState = 'invalid';
52792
52792
  let domMessageState = 'invalid';
@@ -65255,10 +65255,11 @@ function getListenersCounter() {
65255
65255
  __webpack_require__(273);
65256
65256
  var _interopRequireDefault = __webpack_require__(196);
65257
65257
  exports.__esModule = true;
65258
- var _classPrivateFieldGet5 = _interopRequireDefault(__webpack_require__(464));
65258
+ var _classPrivateFieldGet7 = _interopRequireDefault(__webpack_require__(464));
65259
65259
  var _classPrivateFieldSet2 = _interopRequireDefault(__webpack_require__(467));
65260
65260
  var _console = __webpack_require__(460);
65261
65261
  var _element = __webpack_require__(302);
65262
+ var _function = __webpack_require__(446);
65262
65263
  function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
65263
65264
  function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
65264
65265
  function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
@@ -65283,9 +65284,10 @@ var _hot = /*#__PURE__*/new WeakMap();
65283
65284
  var _focusMode = /*#__PURE__*/new WeakMap();
65284
65285
  var _refocusDelay = /*#__PURE__*/new WeakMap();
65285
65286
  var _refocusElementGetter = /*#__PURE__*/new WeakMap();
65286
- var _getCurrentHighlightCoords = /*#__PURE__*/new WeakSet();
65287
+ var _debouncedSelect = /*#__PURE__*/new WeakMap();
65287
65288
  var _getSelectedCell = /*#__PURE__*/new WeakSet();
65288
- var _manageFocus = /*#__PURE__*/new WeakSet();
65289
+ var _focusCell = /*#__PURE__*/new WeakSet();
65290
+ var _focusEditorElement = /*#__PURE__*/new WeakSet();
65289
65291
  var _onUpdateSettings = /*#__PURE__*/new WeakSet();
65290
65292
  class FocusManager {
65291
65293
  constructor(hotInstance) {
@@ -65293,29 +65295,23 @@ class FocusManager {
65293
65295
  /**
65294
65296
  * Update the manager configuration after calling `updateSettings`.
65295
65297
  *
65296
- * @private
65297
65298
  * @param {object} newSettings The new settings passed to the `updateSettings` method.
65298
65299
  */
65299
65300
  _classPrivateMethodInitSpec(this, _onUpdateSettings);
65300
65301
  /**
65301
- * Manage the browser's focus after cell selection.
65302
- *
65303
- * @private
65302
+ * Manage the browser's focus after cell selection end.
65304
65303
  */
65305
- _classPrivateMethodInitSpec(this, _manageFocus);
65304
+ _classPrivateMethodInitSpec(this, _focusEditorElement);
65306
65305
  /**
65307
- * Get and return the currently selected and highlighted cell/header element.
65308
- *
65309
- * @private
65310
- * @returns {HTMLTableCellElement}
65306
+ * Manage the browser's focus after each cell selection change.
65311
65307
  */
65312
- _classPrivateMethodInitSpec(this, _getSelectedCell);
65308
+ _classPrivateMethodInitSpec(this, _focusCell);
65313
65309
  /**
65314
- * Get the coordinates of the highlight of the currently selected cell/header.
65310
+ * Get and return the currently selected and highlighted cell/header element.
65315
65311
  *
65316
- * @returns {CellCoords}
65312
+ * @param {Function} callback Callback function to be called after the cell element is retrieved.
65317
65313
  */
65318
- _classPrivateMethodInitSpec(this, _getCurrentHighlightCoords);
65314
+ _classPrivateMethodInitSpec(this, _getSelectedCell);
65319
65315
  /**
65320
65316
  * The Handsontable instance.
65321
65317
  */
@@ -65331,7 +65327,7 @@ class FocusManager {
65331
65327
  * - 'mixed' - The browser's focus switches from the lastly selected cell element to the currently active editor's
65332
65328
  * `TEXTAREA` element after a delay defined in the manager.
65333
65329
  *
65334
- * @type {string}
65330
+ * @type {'cell' | 'mixed'}
65335
65331
  */
65336
65332
  _classPrivateFieldInitSpec(this, _focusMode, {
65337
65333
  writable: true,
@@ -65357,20 +65353,35 @@ class FocusManager {
65357
65353
  writable: true,
65358
65354
  value: null
65359
65355
  });
65356
+ /**
65357
+ * Map of the debounced `select` functions.
65358
+ *
65359
+ * @type {Map<number, Function>}
65360
+ */
65361
+ _classPrivateFieldInitSpec(this, _debouncedSelect, {
65362
+ writable: true,
65363
+ value: new Map()
65364
+ });
65360
65365
  const hotSettings = hotInstance.getSettings();
65361
65366
  (0, _classPrivateFieldSet2.default)(this, _hot, hotInstance);
65362
65367
  (0, _classPrivateFieldSet2.default)(this, _focusMode, hotSettings.imeFastEdit ? FOCUS_MODES.MIXED : FOCUS_MODES.CELL);
65363
- (0, _classPrivateFieldGet5.default)(this, _hot).addHook('afterUpdateSettings', function () {
65368
+ (0, _classPrivateFieldGet7.default)(this, _hot).addHook('afterUpdateSettings', function () {
65364
65369
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
65365
65370
  args[_key] = arguments[_key];
65366
65371
  }
65367
65372
  return _classPrivateMethodGet(_this, _onUpdateSettings, _onUpdateSettings2).call(_this, ...args);
65368
65373
  });
65369
- (0, _classPrivateFieldGet5.default)(this, _hot).addHook('afterSelection', function () {
65374
+ (0, _classPrivateFieldGet7.default)(this, _hot).addHook('afterSelection', function () {
65370
65375
  for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
65371
65376
  args[_key2] = arguments[_key2];
65372
65377
  }
65373
- return _classPrivateMethodGet(_this, _manageFocus, _manageFocus2).call(_this, ...args);
65378
+ return _classPrivateMethodGet(_this, _focusCell, _focusCell2).call(_this, ...args);
65379
+ });
65380
+ (0, _classPrivateFieldGet7.default)(this, _hot).addHook('afterSelectionEnd', function () {
65381
+ for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
65382
+ args[_key3] = arguments[_key3];
65383
+ }
65384
+ return _classPrivateMethodGet(_this, _focusEditorElement, _focusEditorElement2).call(_this, ...args);
65374
65385
  });
65375
65386
  }
65376
65387
 
@@ -65380,7 +65391,7 @@ class FocusManager {
65380
65391
  * @returns {'cell' | 'mixed'}
65381
65392
  */
65382
65393
  getFocusMode() {
65383
- return (0, _classPrivateFieldGet5.default)(this, _focusMode);
65394
+ return (0, _classPrivateFieldGet7.default)(this, _focusMode);
65384
65395
  }
65385
65396
 
65386
65397
  /**
@@ -65403,7 +65414,7 @@ class FocusManager {
65403
65414
  * @returns {number} Delay in milliseconds.
65404
65415
  */
65405
65416
  getRefocusDelay() {
65406
- return (0, _classPrivateFieldGet5.default)(this, _refocusDelay);
65417
+ return (0, _classPrivateFieldGet7.default)(this, _refocusDelay);
65407
65418
  }
65408
65419
 
65409
65420
  /**
@@ -65431,11 +65442,11 @@ class FocusManager {
65431
65442
  * @returns {HTMLTextAreaElement|HTMLElement|undefined}
65432
65443
  */
65433
65444
  getRefocusElement() {
65434
- if (typeof (0, _classPrivateFieldGet5.default)(this, _refocusElementGetter) === 'function') {
65435
- return (0, _classPrivateFieldGet5.default)(this, _refocusElementGetter).call(this);
65445
+ if (typeof (0, _classPrivateFieldGet7.default)(this, _refocusElementGetter) === 'function') {
65446
+ return (0, _classPrivateFieldGet7.default)(this, _refocusElementGetter).call(this);
65436
65447
  } else {
65437
65448
  var _classPrivateFieldGet2;
65438
- return (_classPrivateFieldGet2 = (0, _classPrivateFieldGet5.default)(this, _hot).getActiveEditor()) === null || _classPrivateFieldGet2 === void 0 ? void 0 : _classPrivateFieldGet2.TEXTAREA;
65449
+ return (_classPrivateFieldGet2 = (0, _classPrivateFieldGet7.default)(this, _hot).getActiveEditor()) === null || _classPrivateFieldGet2 === void 0 ? void 0 : _classPrivateFieldGet2.TEXTAREA;
65439
65450
  }
65440
65451
  }
65441
65452
 
@@ -65445,17 +65456,26 @@ class FocusManager {
65445
65456
  * @param {HTMLTableCellElement} [selectedCell] The highlighted cell/header element.
65446
65457
  */
65447
65458
  focusOnHighlightedCell(selectedCell) {
65448
- var _classPrivateFieldGet3;
65449
- const currentHighlightCoords = _classPrivateMethodGet(this, _getCurrentHighlightCoords, _getCurrentHighlightCoords2).call(this);
65450
- const currentlySelectedHighlight = selectedCell || _classPrivateMethodGet(this, _getSelectedCell, _getSelectedCell2).call(this);
65451
- let elementToBeFocused = (0, _classPrivateFieldGet5.default)(this, _hot).runHooks('modifyFocusedElement', currentHighlightCoords.row, currentHighlightCoords.col, currentlySelectedHighlight);
65452
- if (!(elementToBeFocused instanceof HTMLElement)) {
65453
- elementToBeFocused = currentlySelectedHighlight;
65454
- }
65455
- if (elementToBeFocused && !((_classPrivateFieldGet3 = (0, _classPrivateFieldGet5.default)(this, _hot).getActiveEditor()) !== null && _classPrivateFieldGet3 !== void 0 && _classPrivateFieldGet3.isOpened())) {
65456
- elementToBeFocused.focus({
65457
- preventScroll: true
65458
- });
65459
+ const focusElement = element => {
65460
+ var _classPrivateFieldGet3, _classPrivateFieldGet4;
65461
+ const currentHighlightCoords = (_classPrivateFieldGet3 = (0, _classPrivateFieldGet7.default)(this, _hot).getSelectedRangeLast()) === null || _classPrivateFieldGet3 === void 0 ? void 0 : _classPrivateFieldGet3.highlight;
65462
+ if (!currentHighlightCoords || !element) {
65463
+ return;
65464
+ }
65465
+ let elementToBeFocused = (0, _classPrivateFieldGet7.default)(this, _hot).runHooks('modifyFocusedElement', currentHighlightCoords.row, currentHighlightCoords.col, element);
65466
+ if (!(elementToBeFocused instanceof HTMLElement)) {
65467
+ elementToBeFocused = element;
65468
+ }
65469
+ if (elementToBeFocused && !((_classPrivateFieldGet4 = (0, _classPrivateFieldGet7.default)(this, _hot).getActiveEditor()) !== null && _classPrivateFieldGet4 !== void 0 && _classPrivateFieldGet4.isOpened())) {
65470
+ elementToBeFocused.focus({
65471
+ preventScroll: true
65472
+ });
65473
+ }
65474
+ };
65475
+ if (selectedCell) {
65476
+ focusElement(selectedCell);
65477
+ } else {
65478
+ _classPrivateMethodGet(this, _getSelectedCell, _getSelectedCell2).call(this, element => focusElement(element));
65459
65479
  }
65460
65480
  }
65461
65481
 
@@ -65463,49 +65483,63 @@ class FocusManager {
65463
65483
  * Set the focus to the active editor's `TEXTAREA` element after the provided delay. If no delay is provided, it
65464
65484
  * will be taken from the manager's configuration.
65465
65485
  *
65466
- * @param {number} delay Delay in milliseconds.
65486
+ * @param {number} [delay] Delay in milliseconds.
65467
65487
  */
65468
65488
  refocusToEditorTextarea() {
65469
- var _classPrivateFieldGet4;
65470
- let delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : (0, _classPrivateFieldGet5.default)(this, _refocusDelay);
65489
+ var _classPrivateFieldGet5;
65490
+ let delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : (0, _classPrivateFieldGet7.default)(this, _refocusDelay);
65471
65491
  const refocusElement = this.getRefocusElement();
65472
65492
 
65473
65493
  // Re-focus on the editor's `TEXTAREA` element (or a predefined element) if the `imeFastEdit` option is enabled.
65474
- if ((0, _classPrivateFieldGet5.default)(this, _hot).getSettings().imeFastEdit && !((_classPrivateFieldGet4 = (0, _classPrivateFieldGet5.default)(this, _hot).getActiveEditor()) !== null && _classPrivateFieldGet4 !== void 0 && _classPrivateFieldGet4.isOpened()) && !!refocusElement) {
65475
- (0, _classPrivateFieldGet5.default)(this, _hot)._registerTimeout(() => {
65476
- refocusElement.select();
65477
- }, delay);
65494
+ if ((0, _classPrivateFieldGet7.default)(this, _hot).getSettings().imeFastEdit && !((_classPrivateFieldGet5 = (0, _classPrivateFieldGet7.default)(this, _hot).getActiveEditor()) !== null && _classPrivateFieldGet5 !== void 0 && _classPrivateFieldGet5.isOpened()) && !!refocusElement) {
65495
+ if (!(0, _classPrivateFieldGet7.default)(this, _debouncedSelect).has(delay)) {
65496
+ (0, _classPrivateFieldGet7.default)(this, _debouncedSelect).set(delay, (0, _function.debounce)(() => {
65497
+ refocusElement.select();
65498
+ }, delay));
65499
+ }
65500
+ (0, _classPrivateFieldGet7.default)(this, _debouncedSelect).get(delay)();
65478
65501
  }
65479
65502
  }
65480
65503
  }
65481
65504
  exports.FocusManager = FocusManager;
65482
- function _getCurrentHighlightCoords2() {
65483
- const lastSelectedRange = (0, _classPrivateFieldGet5.default)(this, _hot).getSelectedRangeLast();
65484
- return lastSelectedRange.highlight;
65505
+ function _getSelectedCell2(callback) {
65506
+ var _classPrivateFieldGet6;
65507
+ const highlight = (_classPrivateFieldGet6 = (0, _classPrivateFieldGet7.default)(this, _hot).getSelectedRangeLast()) === null || _classPrivateFieldGet6 === void 0 ? void 0 : _classPrivateFieldGet6.highlight;
65508
+ if (!highlight) {
65509
+ callback(null);
65510
+ return;
65511
+ }
65512
+ const cell = (0, _classPrivateFieldGet7.default)(this, _hot).getCell(highlight.row, highlight.col, true);
65513
+ if (cell === null) {
65514
+ (0, _classPrivateFieldGet7.default)(this, _hot).addHookOnce('afterScroll', () => {
65515
+ callback((0, _classPrivateFieldGet7.default)(this, _hot).getCell(highlight.row, highlight.col, true));
65516
+ });
65517
+ } else {
65518
+ callback(cell);
65519
+ }
65485
65520
  }
65486
- function _getSelectedCell2() {
65487
- const selectedCellCoords = _classPrivateMethodGet(this, _getCurrentHighlightCoords, _getCurrentHighlightCoords2).call(this);
65488
- return (0, _classPrivateFieldGet5.default)(this, _hot).getCell(selectedCellCoords.row, selectedCellCoords.col, true);
65521
+ function _focusCell2() {
65522
+ _classPrivateMethodGet(this, _getSelectedCell, _getSelectedCell2).call(this, selectedCell => {
65523
+ const {
65524
+ activeElement
65525
+ } = (0, _classPrivateFieldGet7.default)(this, _hot).rootDocument;
65526
+
65527
+ // Blurring the `activeElement` removes the unwanted border around the focusable element (#6877)
65528
+ // and resets the `document.activeElement` property. The blurring should happen only when the
65529
+ // previously selected input element has not belonged to the Handsontable editor. If blurring is
65530
+ // triggered for all elements, there is a problem with the disappearing IME editor (#9672).
65531
+ if (activeElement && (0, _element.isOutsideInput)(activeElement)) {
65532
+ activeElement.blur();
65533
+ }
65534
+ this.focusOnHighlightedCell(selectedCell);
65535
+ });
65489
65536
  }
65490
- function _manageFocus2() {
65491
- const selectedCell = _classPrivateMethodGet(this, _getSelectedCell, _getSelectedCell2).call(this);
65492
- const {
65493
- activeElement
65494
- } = (0, _classPrivateFieldGet5.default)(this, _hot).rootDocument;
65495
-
65496
- // Blurring the `activeElement` removes the unwanted border around the focusable element (#6877)
65497
- // and resets the `document.activeElement` property. The blurring should happen only when the
65498
- // previously selected input element has not belonged to the Handsontable editor. If blurring is
65499
- // triggered for all elements, there is a problem with the disappearing IME editor (#9672).
65500
- if (activeElement && (0, _element.isOutsideInput)(activeElement)) {
65501
- activeElement.blur();
65502
- }
65503
- this.focusOnHighlightedCell(selectedCell);
65504
- if (this.getFocusMode() === FOCUS_MODES.MIXED && selectedCell.nodeName === 'TD') {
65505
- (0, _classPrivateFieldGet5.default)(this, _hot).addHookOnce('afterSelectionEnd', () => {
65537
+ function _focusEditorElement2() {
65538
+ _classPrivateMethodGet(this, _getSelectedCell, _getSelectedCell2).call(this, selectedCell => {
65539
+ if (this.getFocusMode() === FOCUS_MODES.MIXED && selectedCell.nodeName === 'TD') {
65506
65540
  this.refocusToEditorTextarea();
65507
- });
65508
- }
65541
+ }
65542
+ });
65509
65543
  }
65510
65544
  function _onUpdateSettings2(newSettings) {
65511
65545
  if (newSettings.imeFastEdit && this.getFocusMode() !== FOCUS_MODES.MIXED) {
@@ -73525,7 +73559,10 @@ class ColumnHeadersRenderer extends _base.default {
73525
73559
  // Remove all accessibility-related attributes for the header to start fresh.
73526
73560
  (0, _element.removeAttribute)(TH, [new RegExp('aria-(.*)'), new RegExp('role')]);
73527
73561
  if (this.table.isAriaEnabled()) {
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)()] : [])]);
73562
+ (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)()] : [
73563
+ // Adding `role=row` to the corner headers to prevent
73564
+ // https://github.com/handsontable/dev-handsontable/issues/1574
73565
+ (0, _a11y.A11Y_ROW)()])]);
73529
73566
  }
73530
73567
  columnHeaderFunctions[rowHeaderIndex](sourceColumnIndex, TH, rowHeaderIndex);
73531
73568
  }
@@ -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-44acfea-20231127
29
- * Release date: 31/08/2023 (built at 27/11/2023 10:22:57)
28
+ * Version: 0.0.0-next-28e0541-20231128
29
+ * Release date: 31/08/2023 (built at 28/11/2023 12:40: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