handsontable 14.0.0-next-104f8c6-20231124 → 14.0.0-next-23212d5-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.
Files changed (85) hide show
  1. package/3rdparty/walkontable/src/renderer/columnHeaders.js +1 -1
  2. package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +1 -1
  3. package/3rdparty/walkontable/src/selection/manager.js +20 -6
  4. package/3rdparty/walkontable/src/selection/manager.mjs +20 -6
  5. package/base.js +2 -2
  6. package/base.mjs +2 -2
  7. package/core/focusCatcher/focusDetector.js +1 -1
  8. package/core/focusCatcher/focusDetector.mjs +2 -2
  9. package/core.js +1 -1
  10. package/core.mjs +1 -1
  11. package/dist/handsontable.css +62 -44
  12. package/dist/handsontable.full.css +62 -44
  13. package/dist/handsontable.full.js +119 -306
  14. package/dist/handsontable.full.min.css +5 -5
  15. package/dist/handsontable.full.min.js +64 -64
  16. package/dist/handsontable.js +119 -306
  17. package/dist/handsontable.min.css +5 -5
  18. package/dist/handsontable.min.js +19 -19
  19. package/dist/languages/all.js +2 -24
  20. package/dist/languages/all.min.js +1 -1
  21. package/dist/languages/en-US.js +1 -12
  22. package/dist/languages/en-US.min.js +1 -1
  23. package/dist/languages/pl-PL.js +1 -12
  24. package/dist/languages/pl-PL.min.js +1 -1
  25. package/editors/dateEditor/dateEditor.js +0 -7
  26. package/editors/dateEditor/dateEditor.mjs +1 -8
  27. package/editors/handsontableEditor/handsontableEditor.js +0 -7
  28. package/editors/handsontableEditor/handsontableEditor.mjs +1 -8
  29. package/helpers/a11y.js +0 -2
  30. package/helpers/a11y.mjs +0 -1
  31. package/helpers/dom/element.js +0 -29
  32. package/helpers/dom/element.mjs +0 -28
  33. package/helpers/mixed.js +1 -1
  34. package/helpers/mixed.mjs +1 -1
  35. package/i18n/constants.js +1 -14
  36. package/i18n/constants.mjs +1 -14
  37. package/i18n/languages/en-US.js +1 -12
  38. package/i18n/languages/en-US.mjs +1 -12
  39. package/i18n/languages/pl-PL.js +1 -12
  40. package/i18n/languages/pl-PL.mjs +1 -12
  41. package/languages/all.js +2 -24
  42. package/languages/en-US.js +1 -12
  43. package/languages/en-US.mjs +1 -12
  44. package/languages/index.js +2 -24
  45. package/languages/pl-PL.js +1 -12
  46. package/languages/pl-PL.mjs +1 -12
  47. package/package.json +1 -1
  48. package/plugins/collapsibleColumns/collapsibleColumns.js +2 -3
  49. package/plugins/collapsibleColumns/collapsibleColumns.mjs +3 -4
  50. package/plugins/columnSorting/columnSorting.js +4 -30
  51. package/plugins/columnSorting/columnSorting.mjs +6 -32
  52. package/plugins/contextMenu/menu/menuItemRenderer.js +0 -12
  53. package/plugins/contextMenu/menu/menuItemRenderer.mjs +2 -14
  54. package/plugins/dropdownMenu/dropdownMenu.js +1 -2
  55. package/plugins/dropdownMenu/dropdownMenu.mjs +2 -3
  56. package/plugins/filters/filters.js +10 -1
  57. package/plugins/filters/filters.mjs +10 -1
  58. package/plugins/filters/menu/focusController.js +29 -10
  59. package/plugins/filters/menu/focusController.mjs +29 -10
  60. package/plugins/filters/ui/input.js +3 -0
  61. package/plugins/filters/ui/input.mjs +3 -0
  62. package/plugins/hiddenColumns/hiddenColumns.js +0 -44
  63. package/plugins/hiddenColumns/hiddenColumns.mjs +1 -45
  64. package/plugins/hiddenRows/hiddenRows.js +0 -44
  65. package/plugins/hiddenRows/hiddenRows.mjs +1 -45
  66. package/plugins/multiColumnSorting/multiColumnSorting.js +0 -21
  67. package/plugins/multiColumnSorting/multiColumnSorting.mjs +1 -22
  68. package/plugins/nestedRows/nestedRows.js +1 -2
  69. package/plugins/nestedRows/nestedRows.mjs +1 -2
  70. package/plugins/nestedRows/ui/headers.js +3 -3
  71. package/plugins/nestedRows/ui/headers.mjs +4 -4
  72. package/renderers/autocompleteRenderer/autocompleteRenderer.js +0 -3
  73. package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +1 -4
  74. package/renderers/dateRenderer/dateRenderer.js +0 -5
  75. package/renderers/dateRenderer/dateRenderer.mjs +0 -5
  76. package/renderers/handsontableRenderer/handsontableRenderer.js +0 -5
  77. package/renderers/handsontableRenderer/handsontableRenderer.mjs +0 -5
  78. package/renderers/selectRenderer/selectRenderer.js +0 -5
  79. package/renderers/selectRenderer/selectRenderer.mjs +0 -5
  80. package/selection/highlight/types/focus.js +2 -0
  81. package/selection/highlight/types/focus.mjs +2 -0
  82. package/selection/selection.js +0 -1
  83. package/selection/selection.mjs +0 -1
  84. package/tableView.js +4 -0
  85. package/tableView.mjs +4 -0
@@ -25,8 +25,8 @@
25
25
  * INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING FROM
26
26
  * USE OR INABILITY TO USE THIS SOFTWARE.
27
27
  *
28
- * Version: 14.0.0-next-104f8c6-20231124
29
- * Release date: 22/11/2023 (built at 24/11/2023 09:59:19)
28
+ * Version: 14.0.0-next-23212d5-20231127
29
+ * Release date: 22/11/2023 (built at 27/11/2023 08:13:56)
30
30
  */
31
31
  (function webpackUniversalModuleDefinition(root, factory) {
32
32
  if(typeof exports === 'object' && typeof module === 'object')
@@ -105,8 +105,8 @@ Handsontable.hooks = _pluginHooks.default.getSingleton();
105
105
  Handsontable.CellCoords = _src.CellCoords;
106
106
  Handsontable.CellRange = _src.CellRange;
107
107
  Handsontable.packageName = 'handsontable';
108
- Handsontable.buildDate = "24/11/2023 09:59:19";
109
- Handsontable.version = "14.0.0-next-104f8c6-20231124";
108
+ Handsontable.buildDate = "27/11/2023 08:13:56";
109
+ Handsontable.version = "14.0.0-next-23212d5-20231127";
110
110
  Handsontable.languages = {
111
111
  dictionaryKeys: _registry.dictionaryKeys,
112
112
  getLanguageDictionary: _registry.getLanguageDictionary,
@@ -4587,7 +4587,7 @@ function Core(rootElement, userSettings) {
4587
4587
  * @function getTranslatedPhrase
4588
4588
  * @since 0.35.0
4589
4589
  * @param {string} dictionaryKey Constant which is dictionary key.
4590
- * @param {*} [extraArguments] Arguments which will be handled by formatters.
4590
+ * @param {*} extraArguments Arguments which will be handled by formatters.
4591
4591
  * @returns {string}
4592
4592
  */
4593
4593
  this.getTranslatedPhrase = function (dictionaryKey, extraArguments) {
@@ -7114,7 +7114,6 @@ module.exports = typeof Bun == 'function' && Bun && typeof Bun.version == 'strin
7114
7114
  exports.__esModule = true;
7115
7115
  exports.addClass = addClass;
7116
7116
  exports.addEvent = addEvent;
7117
- exports.appendElement = appendElement;
7118
7117
  exports.clearTextSelection = clearTextSelection;
7119
7118
  exports.closest = closest;
7120
7119
  exports.closestDown = closestDown;
@@ -8249,34 +8248,6 @@ function runWithSelectedContendEditableElement(element, callback) {
8249
8248
  removeContentEditableFromElementAndDeselect(element, invisibleSelection);
8250
8249
  }
8251
8250
 
8252
- /**
8253
- * Creates a new DOM element and appends it to the parent element with the provided class name(s) and attributes.
8254
- *
8255
- * @param {HTMLElement} parentElement The parent element.
8256
- * @param {object} properties The properties object.
8257
- * @param {string} properties.tagName The type of the new element.
8258
- * @param {string|string[]} properties.className Class name as string or array of strings.
8259
- * @param {Array[]} properties.attributes An array containing the attributes to be added. Each element of the array
8260
- * should be an array in a form of `[attributeName, attributeValue]`.
8261
- * @returns {HTMLElement} The created div element.
8262
- */
8263
- function appendElement(parentElement, _ref) {
8264
- let {
8265
- tagName,
8266
- className,
8267
- attributes
8268
- } = _ref;
8269
- const element = parentElement.ownerDocument.createElement(tagName);
8270
- if (className) {
8271
- addClass(element, className);
8272
- }
8273
- if (attributes && attributes.length) {
8274
- setAttribute(element, attributes);
8275
- }
8276
- parentElement.appendChild(element);
8277
- return element;
8278
- }
8279
-
8280
8251
  /***/ }),
8281
8252
  /* 108 */
8282
8253
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
@@ -8542,7 +8513,7 @@ const domMessages = {
8542
8513
  function _injectProductInfo(key, element) {
8543
8514
  const hasValidType = !isEmpty(key);
8544
8515
  const isNonCommercial = typeof key === 'string' && key.toLowerCase() === 'non-commercial-and-evaluation';
8545
- const hotVersion = "14.0.0-next-104f8c6-20231124";
8516
+ const hotVersion = "14.0.0-next-23212d5-20231127";
8546
8517
  let keyValidityDate;
8547
8518
  let consoleMessageState = 'invalid';
8548
8519
  let domMessageState = 'invalid';
@@ -9024,8 +8995,6 @@ const A11Y_TEXT = () => ['type', 'text'];
9024
8995
  exports.A11Y_TEXT = A11Y_TEXT;
9025
8996
  const A11Y_LABEL = val => ['aria-label', val];
9026
8997
  exports.A11Y_LABEL = A11Y_LABEL;
9027
- const A11Y_DESCRIPTION = val => ['aria-description', val];
9028
- exports.A11Y_DESCRIPTION = A11Y_DESCRIPTION;
9029
8998
  const A11Y_HIDDEN = () => ['aria-hidden', 'true'];
9030
8999
  exports.A11Y_HIDDEN = A11Y_HIDDEN;
9031
9000
  const A11Y_DISABLED = () => ['aria-disabled', 'true'];
@@ -16617,6 +16586,10 @@ class TableView {
16617
16586
  const span = rootDocument.createElement('span');
16618
16587
  div.className = 'relative';
16619
16588
  span.className = 'colHeader';
16589
+ if (this.settings.ariaTags) {
16590
+ (0, _element.setAttribute)(div, ...(0, _a11y.A11Y_PRESENTATION)());
16591
+ (0, _element.setAttribute)(span, ...(0, _a11y.A11Y_PRESENTATION)());
16592
+ }
16620
16593
  this.updateCellHeader(span, visualColumnIndex, label, headerLevel);
16621
16594
  div.appendChild(span);
16622
16595
  TH.appendChild(div);
@@ -22429,7 +22402,7 @@ class ColumnHeadersRenderer extends _base.default {
22429
22402
  // Remove all accessibility-related attributes for the header to start fresh.
22430
22403
  (0, _element.removeAttribute)(TH, [new RegExp('aria-(.*)'), new RegExp('role')]);
22431
22404
  if (this.table.isAriaEnabled()) {
22432
- (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)()])]);
22405
+ (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)()] : [])]);
22433
22406
  }
22434
22407
  columnHeaderFunctions[rowHeaderIndex](sourceColumnIndex, TH, rowHeaderIndex);
22435
22408
  }
@@ -25788,8 +25761,9 @@ const CORNER_DEFAULT_STYLE = exports.CORNER_DEFAULT_STYLE = Object.freeze({
25788
25761
  __webpack_require__(78);
25789
25762
  var _interopRequireDefault = __webpack_require__(1);
25790
25763
  exports.__esModule = true;
25764
+ __webpack_require__(8);
25791
25765
  __webpack_require__(205);
25792
- var _classPrivateFieldGet8 = _interopRequireDefault(__webpack_require__(133));
25766
+ var _classPrivateFieldGet7 = _interopRequireDefault(__webpack_require__(133));
25793
25767
  var _classPrivateFieldSet2 = _interopRequireDefault(__webpack_require__(136));
25794
25768
  var _element = __webpack_require__(107);
25795
25769
  var _scanner2 = __webpack_require__(206);
@@ -25886,9 +25860,9 @@ class SelectionManager {
25886
25860
  */
25887
25861
  setActiveOverlay(activeWot) {
25888
25862
  (0, _classPrivateFieldSet2.default)(this, _activeOverlaysWot, activeWot);
25889
- (0, _classPrivateFieldGet8.default)(this, _scanner).setActiveOverlay((0, _classPrivateFieldGet8.default)(this, _activeOverlaysWot));
25890
- if (!(0, _classPrivateFieldGet8.default)(this, _appliedClasses).has((0, _classPrivateFieldGet8.default)(this, _activeOverlaysWot))) {
25891
- (0, _classPrivateFieldGet8.default)(this, _appliedClasses).set((0, _classPrivateFieldGet8.default)(this, _activeOverlaysWot), new Set());
25863
+ (0, _classPrivateFieldGet7.default)(this, _scanner).setActiveOverlay((0, _classPrivateFieldGet7.default)(this, _activeOverlaysWot));
25864
+ if (!(0, _classPrivateFieldGet7.default)(this, _appliedClasses).has((0, _classPrivateFieldGet7.default)(this, _activeOverlaysWot))) {
25865
+ (0, _classPrivateFieldGet7.default)(this, _appliedClasses).set((0, _classPrivateFieldGet7.default)(this, _activeOverlaysWot), new Set());
25892
25866
  }
25893
25867
  return this;
25894
25868
  }
@@ -25899,7 +25873,7 @@ class SelectionManager {
25899
25873
  * @returns {Selection|null}
25900
25874
  */
25901
25875
  getFocusSelection() {
25902
- return (0, _classPrivateFieldGet8.default)(this, _selections) !== null ? (0, _classPrivateFieldGet8.default)(this, _selections).getFocus() : null;
25876
+ return (0, _classPrivateFieldGet7.default)(this, _selections) !== null ? (0, _classPrivateFieldGet7.default)(this, _selections).getFocus() : null;
25903
25877
  }
25904
25878
 
25905
25879
  /**
@@ -25908,7 +25882,7 @@ class SelectionManager {
25908
25882
  * @returns {Selection|null}
25909
25883
  */
25910
25884
  getAreaSelection() {
25911
- return (0, _classPrivateFieldGet8.default)(this, _selections) !== null ? (0, _classPrivateFieldGet8.default)(this, _selections).createLayeredArea() : null;
25885
+ return (0, _classPrivateFieldGet7.default)(this, _selections) !== null ? (0, _classPrivateFieldGet7.default)(this, _selections).createLayeredArea() : null;
25912
25886
  }
25913
25887
 
25914
25888
  /**
@@ -25921,17 +25895,17 @@ class SelectionManager {
25921
25895
  if (!selection.settings.border) {
25922
25896
  return null;
25923
25897
  }
25924
- if ((0, _classPrivateFieldGet8.default)(this, _selectionBorders).has(selection)) {
25925
- const borders = (0, _classPrivateFieldGet8.default)(this, _selectionBorders).get(selection);
25926
- if (borders.has((0, _classPrivateFieldGet8.default)(this, _activeOverlaysWot))) {
25927
- return borders.get((0, _classPrivateFieldGet8.default)(this, _activeOverlaysWot));
25898
+ if ((0, _classPrivateFieldGet7.default)(this, _selectionBorders).has(selection)) {
25899
+ const borders = (0, _classPrivateFieldGet7.default)(this, _selectionBorders).get(selection);
25900
+ if (borders.has((0, _classPrivateFieldGet7.default)(this, _activeOverlaysWot))) {
25901
+ return borders.get((0, _classPrivateFieldGet7.default)(this, _activeOverlaysWot));
25928
25902
  }
25929
- const border = new _border.default((0, _classPrivateFieldGet8.default)(this, _activeOverlaysWot), selection.settings);
25930
- borders.set((0, _classPrivateFieldGet8.default)(this, _activeOverlaysWot), border);
25903
+ const border = new _border.default((0, _classPrivateFieldGet7.default)(this, _activeOverlaysWot), selection.settings);
25904
+ borders.set((0, _classPrivateFieldGet7.default)(this, _activeOverlaysWot), border);
25931
25905
  return border;
25932
25906
  }
25933
- const border = new _border.default((0, _classPrivateFieldGet8.default)(this, _activeOverlaysWot), selection.settings);
25934
- (0, _classPrivateFieldGet8.default)(this, _selectionBorders).set(selection, new Map([[(0, _classPrivateFieldGet8.default)(this, _activeOverlaysWot), border]]));
25907
+ const border = new _border.default((0, _classPrivateFieldGet7.default)(this, _activeOverlaysWot), selection.settings);
25908
+ (0, _classPrivateFieldGet7.default)(this, _selectionBorders).set(selection, new Map([[(0, _classPrivateFieldGet7.default)(this, _activeOverlaysWot), border]]));
25935
25909
  return border;
25936
25910
  }
25937
25911
 
@@ -25943,7 +25917,7 @@ class SelectionManager {
25943
25917
  */
25944
25918
  getBorderInstances(selection) {
25945
25919
  var _classPrivateFieldGet2, _classPrivateFieldGet3;
25946
- return Array.from((_classPrivateFieldGet2 = (_classPrivateFieldGet3 = (0, _classPrivateFieldGet8.default)(this, _selectionBorders).get(selection)) === null || _classPrivateFieldGet3 === void 0 ? void 0 : _classPrivateFieldGet3.values()) !== null && _classPrivateFieldGet2 !== void 0 ? _classPrivateFieldGet2 : []);
25920
+ return Array.from((_classPrivateFieldGet2 = (_classPrivateFieldGet3 = (0, _classPrivateFieldGet7.default)(this, _selectionBorders).get(selection)) === null || _classPrivateFieldGet3 === void 0 ? void 0 : _classPrivateFieldGet3.values()) !== null && _classPrivateFieldGet2 !== void 0 ? _classPrivateFieldGet2 : []);
25947
25921
  }
25948
25922
 
25949
25923
  /**
@@ -25952,8 +25926,8 @@ class SelectionManager {
25952
25926
  * @param {Selection} selection The selection instance.
25953
25927
  */
25954
25928
  destroyBorders(selection) {
25955
- (0, _classPrivateFieldGet8.default)(this, _selectionBorders).get(selection).forEach(border => border.destroy());
25956
- (0, _classPrivateFieldGet8.default)(this, _selectionBorders).delete(selection);
25929
+ (0, _classPrivateFieldGet7.default)(this, _selectionBorders).get(selection).forEach(border => border.destroy());
25930
+ (0, _classPrivateFieldGet7.default)(this, _selectionBorders).delete(selection);
25957
25931
  }
25958
25932
 
25959
25933
  /**
@@ -25962,24 +25936,26 @@ class SelectionManager {
25962
25936
  * @param {boolean} fastDraw Indicates the render cycle type (fast/slow).
25963
25937
  */
25964
25938
  render(fastDraw) {
25965
- if ((0, _classPrivateFieldGet8.default)(this, _selections) === null) {
25939
+ if ((0, _classPrivateFieldGet7.default)(this, _selections) === null) {
25966
25940
  return;
25967
25941
  }
25968
25942
  if (fastDraw) {
25969
25943
  // there was no rerender, so we need to remove classNames by ourselves
25970
25944
  _classPrivateMethodGet(this, _resetCells, _resetCells2).call(this);
25971
25945
  }
25972
- const selections = Array.from((0, _classPrivateFieldGet8.default)(this, _selections));
25946
+ const selections = Array.from((0, _classPrivateFieldGet7.default)(this, _selections));
25973
25947
  const classNamesMap = new Map();
25948
+ const headerAttributesMap = new Map();
25974
25949
  for (let i = 0; i < selections.length; i++) {
25975
25950
  const selection = selections[i];
25976
25951
  const {
25977
25952
  className,
25953
+ headerAttributes,
25978
25954
  createLayers,
25979
25955
  selectionType
25980
25956
  } = selection.settings;
25981
- if (!(0, _classPrivateFieldGet8.default)(this, _destroyListeners).has(selection)) {
25982
- (0, _classPrivateFieldGet8.default)(this, _destroyListeners).add(selection);
25957
+ if (!(0, _classPrivateFieldGet7.default)(this, _destroyListeners).has(selection)) {
25958
+ (0, _classPrivateFieldGet7.default)(this, _destroyListeners).add(selection);
25983
25959
  selection.addLocalHook('destroy', () => this.destroyBorders(selection));
25984
25960
  }
25985
25961
  const borderInstance = this.getBorderInstance(selection);
@@ -25989,7 +25965,7 @@ class SelectionManager {
25989
25965
  }
25990
25966
 
25991
25967
  if (className) {
25992
- const elements = (0, _classPrivateFieldGet8.default)(this, _scanner).setActiveSelection(selection).scan();
25968
+ const elements = (0, _classPrivateFieldGet7.default)(this, _scanner).setActiveSelection(selection).scan();
25993
25969
  elements.forEach(element => {
25994
25970
  if (classNamesMap.has(element)) {
25995
25971
  const classNamesLayers = classNamesMap.get(element);
@@ -26001,14 +25977,22 @@ class SelectionManager {
26001
25977
  } else {
26002
25978
  classNamesMap.set(element, new Map([[className, 1]]));
26003
25979
  }
25980
+ if (headerAttributes) {
25981
+ if (!headerAttributesMap.has(element)) {
25982
+ headerAttributesMap.set(element, []);
25983
+ }
25984
+ if (element.nodeName === 'TH') {
25985
+ headerAttributesMap.get(element).push(...headerAttributes);
25986
+ }
25987
+ }
26004
25988
  });
26005
25989
  }
26006
25990
  const corners = selection.getCorners();
26007
- (0, _classPrivateFieldGet8.default)(this, _activeOverlaysWot).getSetting('onBeforeDrawBorders', corners, selectionType);
25991
+ (0, _classPrivateFieldGet7.default)(this, _activeOverlaysWot).getSetting('onBeforeDrawBorders', corners, selectionType);
26008
25992
  borderInstance === null || borderInstance === void 0 || borderInstance.appear(corners);
26009
25993
  }
26010
25994
  classNamesMap.forEach((classNamesLayers, element) => {
26011
- var _classPrivateFieldGet4, _classPrivateFieldGet5;
25995
+ var _classPrivateFieldGet4;
26012
25996
  const classNames = Array.from(classNamesLayers).map(_ref => {
26013
25997
  let [className, occurrenceCount] = _ref;
26014
25998
  if (occurrenceCount === 1) {
@@ -26018,34 +26002,37 @@ class SelectionManager {
26018
26002
  length: occurrenceCount - 1
26019
26003
  }, (_, i) => `${className}-${i + 1}`)];
26020
26004
  }).flat();
26021
- classNames.forEach(className => (0, _classPrivateFieldGet8.default)(this, _appliedClasses).get((0, _classPrivateFieldGet8.default)(this, _activeOverlaysWot)).add(className));
26005
+ classNames.forEach(className => (0, _classPrivateFieldGet7.default)(this, _appliedClasses).get((0, _classPrivateFieldGet7.default)(this, _activeOverlaysWot)).add(className));
26022
26006
  (0, _element.addClass)(element, classNames);
26023
- if (element.nodeName === 'TD' && Array.isArray((_classPrivateFieldGet4 = (0, _classPrivateFieldGet8.default)(this, _selections).options) === null || _classPrivateFieldGet4 === void 0 ? void 0 : _classPrivateFieldGet4.cellAttributes)) {
26024
- (0, _element.setAttribute)(element, (0, _classPrivateFieldGet8.default)(this, _selections).options.cellAttributes);
26025
- } else if (element.nodeName === 'TH' && Array.isArray((_classPrivateFieldGet5 = (0, _classPrivateFieldGet8.default)(this, _selections).options) === null || _classPrivateFieldGet5 === void 0 ? void 0 : _classPrivateFieldGet5.headerAttributes)) {
26026
- (0, _element.setAttribute)(element, (0, _classPrivateFieldGet8.default)(this, _selections).options.headerAttributes);
26007
+ if (element.nodeName === 'TD' && Array.isArray((_classPrivateFieldGet4 = (0, _classPrivateFieldGet7.default)(this, _selections).options) === null || _classPrivateFieldGet4 === void 0 ? void 0 : _classPrivateFieldGet4.cellAttributes)) {
26008
+ (0, _element.setAttribute)(element, (0, _classPrivateFieldGet7.default)(this, _selections).options.cellAttributes);
26027
26009
  }
26028
26010
  });
26011
+
26012
+ // Set the attributes for the headers if they're focused.
26013
+ Array.from(headerAttributesMap.keys()).forEach(element => {
26014
+ (0, _element.setAttribute)(element, [...headerAttributesMap.get(element)]);
26015
+ });
26029
26016
  }
26030
26017
  }
26031
26018
  exports.SelectionManager = SelectionManager;
26032
26019
  function _resetCells2() {
26033
- const appliedOverlaysClasses = (0, _classPrivateFieldGet8.default)(this, _appliedClasses).get((0, _classPrivateFieldGet8.default)(this, _activeOverlaysWot));
26034
- const classesToRemove = (0, _classPrivateFieldGet8.default)(this, _activeOverlaysWot).wtSettings.getSetting('onBeforeRemoveCellClassNames');
26020
+ const appliedOverlaysClasses = (0, _classPrivateFieldGet7.default)(this, _appliedClasses).get((0, _classPrivateFieldGet7.default)(this, _activeOverlaysWot));
26021
+ const classesToRemove = (0, _classPrivateFieldGet7.default)(this, _activeOverlaysWot).wtSettings.getSetting('onBeforeRemoveCellClassNames');
26035
26022
  if (Array.isArray(classesToRemove)) {
26036
26023
  for (let i = 0; i < classesToRemove.length; i++) {
26037
26024
  appliedOverlaysClasses.add(classesToRemove[i]);
26038
26025
  }
26039
26026
  }
26040
26027
  appliedOverlaysClasses.forEach(className => {
26041
- var _classPrivateFieldGet6, _classPrivateFieldGet7;
26042
- const nodes = (0, _classPrivateFieldGet8.default)(this, _activeOverlaysWot).wtTable.TABLE.querySelectorAll(`.${className}`);
26028
+ var _classPrivateFieldGet5, _classPrivateFieldGet6;
26029
+ const nodes = (0, _classPrivateFieldGet7.default)(this, _activeOverlaysWot).wtTable.TABLE.querySelectorAll(`.${className}`);
26043
26030
  let cellAttributes = [];
26044
- if (Array.isArray((_classPrivateFieldGet6 = (0, _classPrivateFieldGet8.default)(this, _selections).options) === null || _classPrivateFieldGet6 === void 0 ? void 0 : _classPrivateFieldGet6.cellAttributes)) {
26045
- cellAttributes = (0, _classPrivateFieldGet8.default)(this, _selections).options.cellAttributes.map(el => el[0]);
26031
+ if (Array.isArray((_classPrivateFieldGet5 = (0, _classPrivateFieldGet7.default)(this, _selections).options) === null || _classPrivateFieldGet5 === void 0 ? void 0 : _classPrivateFieldGet5.cellAttributes)) {
26032
+ cellAttributes = (0, _classPrivateFieldGet7.default)(this, _selections).options.cellAttributes.map(el => el[0]);
26046
26033
  }
26047
- if (Array.isArray((_classPrivateFieldGet7 = (0, _classPrivateFieldGet8.default)(this, _selections).options) === null || _classPrivateFieldGet7 === void 0 ? void 0 : _classPrivateFieldGet7.headerAttributes)) {
26048
- cellAttributes = [...cellAttributes, ...(0, _classPrivateFieldGet8.default)(this, _selections).options.headerAttributes.map(el => el[0])];
26034
+ if (Array.isArray((_classPrivateFieldGet6 = (0, _classPrivateFieldGet7.default)(this, _selections).options) === null || _classPrivateFieldGet6 === void 0 ? void 0 : _classPrivateFieldGet6.headerAttributes)) {
26035
+ cellAttributes = [...cellAttributes, ...(0, _classPrivateFieldGet7.default)(this, _selections).options.headerAttributes.map(el => el[0])];
26049
26036
  }
26050
26037
  for (let i = 0, len = nodes.length; i < len; i++) {
26051
26038
  (0, _element.removeClass)(nodes[i], className);
@@ -31687,18 +31674,7 @@ const dictionary = {
31687
31674
  [C.FILTERS_BUTTONS_PLACEHOLDER_VALUE]: 'Value',
31688
31675
  [C.FILTERS_BUTTONS_PLACEHOLDER_SECOND_VALUE]: 'Second value',
31689
31676
  [C.CHECKBOX_CHECKED]: 'Checked',
31690
- [C.CHECKBOX_UNCHECKED]: 'Unchecked',
31691
- [C.COLUMN_HEADER_DESCRIPTION_EXPAND_COLUMN]: 'Press ENTER to expand column.',
31692
- [C.COLUMN_HEADER_DESCRIPTION_COLLAPSE_COLUMN]: 'Press ENTER to collapse column.',
31693
- [C.COLUMN_HEADER_DESCRIPTION_SORT_ROWS]: 'Press ENTER to change sorting.',
31694
- [C.COLUMN_HEADER_LABEL_MULTI_COLUMN_SORT_ORDER]: 'Multi-column sorting order:',
31695
- [C.COLUMN_HEADER_LABEL_OPEN_MENU]: 'Press CTRL/CMD+ENTER to open menu.',
31696
- [C.COLUMN_HEADER_LABEL_BEFORE_HIDDEN_COLUMN]: 'The next column is hidden.',
31697
- [C.COLUMN_HEADER_LABEL_AFTER_HIDDEN_COLUMN]: 'The previous column is hidden.',
31698
- [C.ROW_HEADER_DESCRIPTION_EXPAND_ROW]: 'Press ENTER to expand row.',
31699
- [C.ROW_HEADER_DESCRIPTION_COLLAPSE_ROW]: 'Press ENTER to collapse row.',
31700
- [C.ROW_HEADER_LABEL_BEFORE_HIDDEN_ROW]: 'The next row is hidden.',
31701
- [C.ROW_HEADER_LABEL_AFTER_HIDDEN_ROW]: 'The previous row is hidden.'
31677
+ [C.CHECKBOX_UNCHECKED]: 'Unchecked'
31702
31678
  };
31703
31679
  var _default = exports["default"] = dictionary;
31704
31680
 
@@ -31799,19 +31775,6 @@ const FILTERS_BUTTONS_PLACEHOLDER_SECOND_VALUE = exports.FILTERS_BUTTONS_PLACEHO
31799
31775
  const CHECKBOX_RENDERER_NAMESPACE = exports.CHECKBOX_RENDERER_NAMESPACE = 'CheckboxRenderer:';
31800
31776
  const CHECKBOX_CHECKED = exports.CHECKBOX_CHECKED = `${CHECKBOX_RENDERER_NAMESPACE}checked`;
31801
31777
  const CHECKBOX_UNCHECKED = exports.CHECKBOX_UNCHECKED = `${CHECKBOX_RENDERER_NAMESPACE}unchecked`;
31802
- const COLUMN_HEADER_NAMESPACE = exports.COLUMN_HEADER_NAMESPACE = 'ColumnHeader:';
31803
- const COLUMN_HEADER_DESCRIPTION_EXPAND_COLUMN = exports.COLUMN_HEADER_DESCRIPTION_EXPAND_COLUMN = `${COLUMN_HEADER_NAMESPACE}description.expandColumn`;
31804
- const COLUMN_HEADER_DESCRIPTION_COLLAPSE_COLUMN = exports.COLUMN_HEADER_DESCRIPTION_COLLAPSE_COLUMN = `${COLUMN_HEADER_NAMESPACE}description.collapseColumn`;
31805
- const COLUMN_HEADER_DESCRIPTION_SORT_ROWS = exports.COLUMN_HEADER_DESCRIPTION_SORT_ROWS = `${COLUMN_HEADER_NAMESPACE}description.sortRows`;
31806
- const COLUMN_HEADER_LABEL_MULTI_COLUMN_SORT_ORDER = exports.COLUMN_HEADER_LABEL_MULTI_COLUMN_SORT_ORDER = `${COLUMN_HEADER_NAMESPACE}label.multiColumnSortOrder`;
31807
- const COLUMN_HEADER_LABEL_OPEN_MENU = exports.COLUMN_HEADER_LABEL_OPEN_MENU = `${COLUMN_HEADER_NAMESPACE}label.openMenu`;
31808
- const COLUMN_HEADER_LABEL_BEFORE_HIDDEN_COLUMN = exports.COLUMN_HEADER_LABEL_BEFORE_HIDDEN_COLUMN = `${COLUMN_HEADER_NAMESPACE}label.beforeHiddenColumn`;
31809
- const COLUMN_HEADER_LABEL_AFTER_HIDDEN_COLUMN = exports.COLUMN_HEADER_LABEL_AFTER_HIDDEN_COLUMN = `${COLUMN_HEADER_NAMESPACE}label.afterHiddenColumn`;
31810
- const ROW_HEADER_NAMESPACE = exports.ROW_HEADER_NAMESPACE = 'RowHeader:';
31811
- const ROW_HEADER_DESCRIPTION_EXPAND_ROW = exports.ROW_HEADER_DESCRIPTION_EXPAND_ROW = `${ROW_HEADER_NAMESPACE}description.expandRow`;
31812
- const ROW_HEADER_DESCRIPTION_COLLAPSE_ROW = exports.ROW_HEADER_DESCRIPTION_COLLAPSE_ROW = `${ROW_HEADER_NAMESPACE}description.collapseRow`;
31813
- const ROW_HEADER_LABEL_BEFORE_HIDDEN_ROW = exports.ROW_HEADER_LABEL_BEFORE_HIDDEN_ROW = `${ROW_HEADER_NAMESPACE}label.beforeHiddenRow`;
31814
- const ROW_HEADER_LABEL_AFTER_HIDDEN_ROW = exports.ROW_HEADER_LABEL_AFTER_HIDDEN_ROW = `${ROW_HEADER_NAMESPACE}label.afterHiddenRow`;
31815
31778
 
31816
31779
  /***/ }),
31817
31780
  /* 246 */
@@ -31944,7 +31907,6 @@ class Selection {
31944
31907
  this.tableProps = tableProps;
31945
31908
  this.highlight = new _highlight.default({
31946
31909
  headerClassName: settings.currentHeaderClassName,
31947
- headerAttributes: [(0, _a11y.A11Y_SELECTED)()],
31948
31910
  activeHeaderClassName: settings.activeHeaderClassName,
31949
31911
  rowClassName: settings.currentRowClassName,
31950
31912
  columnClassName: settings.currentColClassName,
@@ -33540,6 +33502,7 @@ exports.__esModule = true;
33540
33502
  exports.createHighlight = createHighlight;
33541
33503
  var _src = __webpack_require__(147);
33542
33504
  var _visualSelection = _interopRequireDefault(__webpack_require__(250));
33505
+ var _a11y = __webpack_require__(114);
33543
33506
  /**
33544
33507
  * Creates the new instance of Selection responsible for highlighting currently selected cell. This type of selection
33545
33508
  * can present on the table only one at the time.
@@ -33555,6 +33518,7 @@ function createHighlight(_ref) {
33555
33518
  } = _ref;
33556
33519
  return new _visualSelection.default({
33557
33520
  className: 'current',
33521
+ headerAttributes: [(0, _a11y.A11Y_SELECTED)()],
33558
33522
  border: {
33559
33523
  width: 2,
33560
33524
  color: '#4b89ff',
@@ -43419,7 +43383,7 @@ function createInputElement(hot) {
43419
43383
  input.type = 'text';
43420
43384
  input.classList.add('htFocusCatcher');
43421
43385
  if (hot.getSettings().ariaTags) {
43422
- (0, _element.setAttribute)(input, [(0, _a11y.A11Y_PRESENTATION)()]);
43386
+ (0, _element.setAttribute)(input, [(0, _a11y.A11Y_PRESENTATION)(), (0, _a11y.A11Y_HIDDEN)()]);
43423
43387
  }
43424
43388
  return input;
43425
43389
  }
@@ -46440,7 +46404,6 @@ var _element = __webpack_require__(107);
46440
46404
  var _event = __webpack_require__(126);
46441
46405
  var _object = __webpack_require__(117);
46442
46406
  var _editorManager = __webpack_require__(120);
46443
- var _a11y = __webpack_require__(114);
46444
46407
  const SHORTCUTS_GROUP = 'handsontableEditor';
46445
46408
  const EDITOR_TYPE = exports.EDITOR_TYPE = 'handsontable';
46446
46409
 
@@ -46476,9 +46439,6 @@ class HandsontableEditor extends _textEditor.TextEditor {
46476
46439
  }
46477
46440
  (0, _element.setCaretPosition)(this.TEXTAREA, 0, this.TEXTAREA.value.length);
46478
46441
  this.refreshDimensions();
46479
- if (this.hot.getSettings().ariaTags) {
46480
- (0, _element.setAttribute)(this.TD, [(0, _a11y.A11Y_EXPANDED)('true')]);
46481
- }
46482
46442
  }
46483
46443
 
46484
46444
  /**
@@ -46490,9 +46450,6 @@ class HandsontableEditor extends _textEditor.TextEditor {
46490
46450
  }
46491
46451
  this.removeHooksByKey('beforeKeyDown');
46492
46452
  super.close();
46493
- if (this.TD && this.hot.getSettings().ariaTags) {
46494
- (0, _element.setAttribute)(this.TD, [(0, _a11y.A11Y_EXPANDED)('false')]);
46495
- }
46496
46453
  }
46497
46454
 
46498
46455
  /**
@@ -46772,7 +46729,6 @@ var _pikaday = _interopRequireDefault(__webpack_require__(356));
46772
46729
  var _textEditor = __webpack_require__(335);
46773
46730
  var _eventManager = _interopRequireDefault(__webpack_require__(131));
46774
46731
  var _element = __webpack_require__(107);
46775
- var _a11y = __webpack_require__(114);
46776
46732
  var _object = __webpack_require__(117);
46777
46733
  var _unicode = __webpack_require__(125);
46778
46734
  __webpack_require__(357);
@@ -46895,9 +46851,6 @@ class DateEditor extends _textEditor.TextEditor {
46895
46851
  const editorContext = shortcutManager.getContext('editor');
46896
46852
  super.open();
46897
46853
  this.showDatepicker(event);
46898
- if (this.hot.getSettings().ariaTags) {
46899
- (0, _element.setAttribute)(this.TD, [(0, _a11y.A11Y_EXPANDED)('true')]);
46900
- }
46901
46854
  editorContext.addShortcut({
46902
46855
  keys: [['Enter']],
46903
46856
  callback: keyboardEvent => {
@@ -46923,9 +46876,6 @@ class DateEditor extends _textEditor.TextEditor {
46923
46876
  this.hot._registerTimeout(() => {
46924
46877
  this.hot._refreshBorders();
46925
46878
  });
46926
- if (this.TD && this.hot.getSettings().ariaTags) {
46927
- (0, _element.setAttribute)(this.TD, [(0, _a11y.A11Y_EXPANDED)('false')]);
46928
- }
46929
46879
  const shortcutManager = this.hot.getShortcutManager();
46930
46880
  const editorContext = shortcutManager.getContext('editor');
46931
46881
  editorContext.removeShortcutsByGroup(SHORTCUTS_GROUP_EDITOR);
@@ -47621,9 +47571,6 @@ function autocompleteRenderer(hotInstance, TD, row, col, prop, value, cellProper
47621
47571
 
47622
47572
  TD.insertBefore(ARROW, TD.firstChild);
47623
47573
  (0, _element.addClass)(TD, 'htAutocomplete');
47624
- if (isAriaEnabled) {
47625
- TD.setAttribute(...(0, _a11y.A11Y_HASPOPUP)('listbox'));
47626
- }
47627
47574
  if (!hotInstance.acArrowListener) {
47628
47575
  const eventManager = new _eventManager.default(hotInstance);
47629
47576
 
@@ -48820,8 +48767,6 @@ exports.dateRenderer = _dateRenderer.dateRenderer;
48820
48767
  exports.__esModule = true;
48821
48768
  exports.dateRenderer = dateRenderer;
48822
48769
  var _autocompleteRenderer = __webpack_require__(369);
48823
- var _a11y = __webpack_require__(114);
48824
- var _element = __webpack_require__(107);
48825
48770
  const RENDERER_TYPE = exports.RENDERER_TYPE = 'date';
48826
48771
 
48827
48772
  /**
@@ -48838,9 +48783,6 @@ const RENDERER_TYPE = exports.RENDERER_TYPE = 'date';
48838
48783
  */
48839
48784
  function dateRenderer(hotInstance, TD, row, col, prop, value, cellProperties) {
48840
48785
  _autocompleteRenderer.autocompleteRenderer.apply(this, [hotInstance, TD, row, col, prop, value, cellProperties]);
48841
- if (hotInstance.getSettings().ariaTags) {
48842
- (0, _element.setAttribute)(TD, [(0, _a11y.A11Y_HASPOPUP)('dialog'), (0, _a11y.A11Y_EXPANDED)('false')]);
48843
- }
48844
48786
  }
48845
48787
  dateRenderer.RENDERER_TYPE = RENDERER_TYPE;
48846
48788
 
@@ -48928,8 +48870,6 @@ exports.handsontableRenderer = _handsontableRenderer.handsontableRenderer;
48928
48870
  exports.__esModule = true;
48929
48871
  exports.handsontableRenderer = handsontableRenderer;
48930
48872
  var _autocompleteRenderer = __webpack_require__(369);
48931
- var _a11y = __webpack_require__(114);
48932
- var _element = __webpack_require__(107);
48933
48873
  const RENDERER_TYPE = exports.RENDERER_TYPE = 'handsontable';
48934
48874
 
48935
48875
  /**
@@ -48946,9 +48886,6 @@ const RENDERER_TYPE = exports.RENDERER_TYPE = 'handsontable';
48946
48886
  */
48947
48887
  function handsontableRenderer(hotInstance, TD, row, col, prop, value, cellProperties) {
48948
48888
  _autocompleteRenderer.autocompleteRenderer.apply(this, [hotInstance, TD, row, col, prop, value, cellProperties]);
48949
- if (hotInstance.getSettings().ariaTags) {
48950
- (0, _element.setAttribute)(TD, [(0, _a11y.A11Y_HASPOPUP)('true'), (0, _a11y.A11Y_EXPANDED)('false')]);
48951
- }
48952
48889
  }
48953
48890
  handsontableRenderer.RENDERER_TYPE = RENDERER_TYPE;
48954
48891
 
@@ -49065,8 +49002,6 @@ exports.selectRenderer = _selectRenderer.selectRenderer;
49065
49002
  exports.__esModule = true;
49066
49003
  exports.selectRenderer = selectRenderer;
49067
49004
  var _textRenderer = __webpack_require__(342);
49068
- var _a11y = __webpack_require__(114);
49069
- var _element = __webpack_require__(107);
49070
49005
  const RENDERER_TYPE = exports.RENDERER_TYPE = 'select';
49071
49006
 
49072
49007
  /**
@@ -49081,9 +49016,6 @@ const RENDERER_TYPE = exports.RENDERER_TYPE = 'select';
49081
49016
  */
49082
49017
  function selectRenderer(hotInstance, TD, row, col, prop, value, cellProperties) {
49083
49018
  _textRenderer.textRenderer.apply(this, [hotInstance, TD, row, col, prop, value, cellProperties]);
49084
- if (hotInstance.getSettings().ariaTags) {
49085
- (0, _element.setAttribute)(TD, ...(0, _a11y.A11Y_HASPOPUP)('listbox'));
49086
- }
49087
49019
  }
49088
49020
  selectRenderer.RENDERER_TYPE = RENDERER_TYPE;
49089
49021
 
@@ -52515,7 +52447,6 @@ var _console = __webpack_require__(129);
52515
52447
  var _element = __webpack_require__(107);
52516
52448
  var _event = __webpack_require__(126);
52517
52449
  var _a11y = __webpack_require__(114);
52518
- var _constants = __webpack_require__(245);
52519
52450
  function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
52520
52451
  function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
52521
52452
  function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
@@ -53046,7 +52977,7 @@ function _onAfterGetColHeader2(column, TH, headerLevel) {
53046
52977
 
53047
52978
  // Add ARIA tags
53048
52979
  if (isAriaTagsEnabled) {
53049
- (0, _element.setAttribute)(TH, [(0, _a11y.A11Y_EXPANDED)(false), (0, _a11y.A11Y_DESCRIPTION)(this.hot.getTranslatedPhrase(_constants.COLUMN_HEADER_DESCRIPTION_EXPAND_COLUMN))]);
52980
+ (0, _element.setAttribute)(TH, ...(0, _a11y.A11Y_EXPANDED)(false));
53050
52981
  }
53051
52982
  } else {
53052
52983
  (0, _element.addClass)(collapsibleElement, 'expanded');
@@ -53054,7 +52985,7 @@ function _onAfterGetColHeader2(column, TH, headerLevel) {
53054
52985
 
53055
52986
  // Add ARIA tags
53056
52987
  if (isAriaTagsEnabled) {
53057
- (0, _element.setAttribute)(TH, [(0, _a11y.A11Y_EXPANDED)(true), (0, _a11y.A11Y_DESCRIPTION)(this.hot.getTranslatedPhrase(_constants.COLUMN_HEADER_DESCRIPTION_COLLAPSE_COLUMN))]);
52988
+ (0, _element.setAttribute)(TH, ...(0, _a11y.A11Y_EXPANDED)(true));
53058
52989
  }
53059
52990
  }
53060
52991
  if (isAriaTagsEnabled) {
@@ -53128,7 +53059,6 @@ var _domHelpers = __webpack_require__(441);
53128
53059
  var _rootComparator = __webpack_require__(442);
53129
53060
  var _sortService = __webpack_require__(443);
53130
53061
  var _a11y = __webpack_require__(114);
53131
- var _constants = __webpack_require__(245);
53132
53062
  function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
53133
53063
  function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
53134
53064
  function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
@@ -53137,7 +53067,6 @@ const PLUGIN_PRIORITY = exports.PLUGIN_PRIORITY = 50;
53137
53067
  const APPEND_COLUMN_CONFIG_STRATEGY = exports.APPEND_COLUMN_CONFIG_STRATEGY = 'append';
53138
53068
  const REPLACE_COLUMN_CONFIG_STRATEGY = exports.REPLACE_COLUMN_CONFIG_STRATEGY = 'replace';
53139
53069
  const SHORTCUTS_GROUP = PLUGIN_KEY;
53140
- const SORTING_INDICATOR_CLASS = 'columnSortingIndicator';
53141
53070
  (0, _sortService.registerRootComparator)(PLUGIN_KEY, _rootComparator.rootComparator);
53142
53071
  _pluginHooks.default.getSingleton().register('beforeColumnSort');
53143
53072
  _pluginHooks.default.getSingleton().register('afterColumnSort');
@@ -53780,28 +53709,6 @@ class ColumnSorting extends _base.BasePlugin {
53780
53709
  }
53781
53710
  }
53782
53711
 
53783
- /**
53784
- * Update sorting indicator.
53785
- *
53786
- * @private
53787
- * @param {number} column Visual column index.
53788
- * @param {HTMLElement} headerSpanElement Header span element.
53789
- */
53790
- updateSortingIndicator(column, headerSpanElement) {
53791
- const pluginSettingsForColumn = this.getFirstCellSettings(column)[this.pluginKey];
53792
- const ariaTags = this.hot.getSettings().ariaTags;
53793
- const showSortIndicator = pluginSettingsForColumn.indicator;
53794
- const isColumnSorted = this.columnStatesManager.isColumnSorted(column);
53795
- const indicatorElement = headerSpanElement.querySelector(`.${SORTING_INDICATOR_CLASS}`);
53796
- if (showSortIndicator && isColumnSorted && !indicatorElement) {
53797
- (0, _element.appendElement)(headerSpanElement, {
53798
- tagName: 'div',
53799
- className: SORTING_INDICATOR_CLASS,
53800
- attributes: ariaTags ? [(0, _a11y.A11Y_HIDDEN)()] : []
53801
- });
53802
- }
53803
- }
53804
-
53805
53712
  /**
53806
53713
  * Overwriting base plugin's `onUpdateSettings` method. Please keep in mind that `onAfterUpdateSettings` isn't called
53807
53714
  * for `updateSettings` in specific situations.
@@ -53830,7 +53737,7 @@ class ColumnSorting extends _base.BasePlugin {
53830
53737
  wasClickableHeaderClicked(event, column) {
53831
53738
  const pluginSettingsForColumn = this.getFirstCellSettings(column)[this.pluginKey];
53832
53739
  const headerActionEnabled = pluginSettingsForColumn.headerAction;
53833
- return headerActionEnabled && ((0, _element.hasClass)(event.target, _utils.HEADER_SPAN_CLASS) || (0, _element.hasClass)(event.target, SORTING_INDICATOR_CLASS));
53740
+ return headerActionEnabled && (0, _element.hasClass)(event.target, _utils.HEADER_SPAN_CLASS);
53834
53741
  }
53835
53742
  /**
53836
53743
  * Callback for the `onAfterOnCellMouseDown` hook.
@@ -53879,14 +53786,12 @@ function _onAfterGetColHeader2(column, TH) {
53879
53786
  return;
53880
53787
  }
53881
53788
  const pluginSettingsForColumn = this.getFirstCellSettings(column)[this.pluginKey];
53882
- const ariaTags = this.hot.getSettings().ariaTags;
53883
53789
  const showSortIndicator = pluginSettingsForColumn.indicator;
53884
53790
  const headerActionEnabled = pluginSettingsForColumn.headerAction;
53885
- const currentSortState = this.columnStatesManager.getSortOrderOfColumn(column);
53886
53791
  this.updateHeaderClasses(headerSpanElement, this.columnStatesManager, column, showSortIndicator, headerActionEnabled);
53887
- this.updateSortingIndicator(column, headerSpanElement);
53888
- if (ariaTags) {
53889
- (0, _element.setAttribute)(TH, [(0, _a11y.A11Y_SORT)(currentSortState ? `${currentSortState}ending` : 'none'), (0, _a11y.A11Y_DESCRIPTION)(this.hot.getTranslatedPhrase(_constants.COLUMN_HEADER_DESCRIPTION_SORT_ROWS))]);
53792
+ if (this.hot.getSettings().ariaTags) {
53793
+ const currentSortState = this.columnStatesManager.getSortOrderOfColumn(column);
53794
+ (0, _element.setAttribute)(TH, ...(0, _a11y.A11Y_SORT)(currentSortState ? `${currentSortState}ending` : 'none'));
53890
53795
  }
53891
53796
  }
53892
53797
  function _onAfterLoadData2(initialLoad) {
@@ -60422,8 +60327,6 @@ exports.createMenuItemRenderer = createMenuItemRenderer;
60422
60327
  var _utils = __webpack_require__(489);
60423
60328
  var _element = __webpack_require__(107);
60424
60329
  var _a11y = __webpack_require__(114);
60425
- const SUBMENU_INDICATOR_CLASSNAME = 'submenuIndicator';
60426
-
60427
60330
  /**
60428
60331
  * Creates the menu renderer function.
60429
60332
  *
@@ -60456,16 +60359,6 @@ function createMenuItemRenderer(mainTableHot) {
60456
60359
  const isFocusable = !(0, _utils.isItemDisabled)(item, mainTableHot) && !(0, _utils.isItemSelectionDisabled)(item) && !(0, _utils.isItemSeparator)(item);
60457
60360
  (0, _element.setAttribute)(TD, [(0, _a11y.A11Y_MENU_ITEM)(), (0, _a11y.A11Y_LABEL)(itemValue), ...(isFocusable ? [(0, _a11y.A11Y_TABINDEX)(-1)] : []), ...((0, _utils.isItemDisabled)(item, mainTableHot) ? [(0, _a11y.A11Y_DISABLED)()] : []), ...((0, _utils.isItemSubMenu)(item) ? [(0, _a11y.A11Y_EXPANDED)(false)] : [])]);
60458
60361
  }
60459
- if ((0, _utils.isItemSubMenu)(item)) {
60460
- const submenuIndicatorElement = TD.querySelector('.submenuIndicator');
60461
- if (!submenuIndicatorElement) {
60462
- (0, _element.appendElement)(TD, {
60463
- tagName: 'div',
60464
- attributes: mainTableHot.getSettings().ariaTags ? [(0, _a11y.A11Y_HIDDEN)()] : [],
60465
- className: SUBMENU_INDICATOR_CLASSNAME
60466
- });
60467
- }
60468
- }
60469
60362
  TD.className = '';
60470
60363
  TD.appendChild(wrapper);
60471
60364
  if ((0, _utils.isItemSeparator)(item)) {
@@ -63396,7 +63289,6 @@ var _menu = __webpack_require__(483);
63396
63289
  var _pluginHooks = _interopRequireDefault(__webpack_require__(128));
63397
63290
  var _predefinedItems = __webpack_require__(458);
63398
63291
  __webpack_require__(518);
63399
- var _constants = __webpack_require__(245);
63400
63292
  var _a11y = __webpack_require__(114);
63401
63293
  function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
63402
63294
  function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
@@ -63870,7 +63762,7 @@ function _onAfterGetColHeader2(col, TH) {
63870
63762
  button.type = 'button';
63871
63763
  button.tabIndex = -1;
63872
63764
  if (this.hot.getSettings().ariaTags) {
63873
- (0, _element.setAttribute)(button, [(0, _a11y.A11Y_LABEL)(this.hot.getTranslatedPhrase(_constants.COLUMN_HEADER_LABEL_OPEN_MENU))]);
63765
+ (0, _element.setAttribute)(button, [(0, _a11y.A11Y_HIDDEN)(), (0, _a11y.A11Y_LABEL)(' ')]);
63874
63766
  (0, _element.setAttribute)(TH, [(0, _a11y.A11Y_HASPOPUP)('menu')]);
63875
63767
  }
63876
63768
 
@@ -64808,7 +64700,16 @@ class Filters extends _base.BasePlugin {
64808
64700
  // A fake menu item that once focused allows escaping from the focus navigation (using Tab keys)
64809
64701
  // to the menu navigation using arrow keys.
64810
64702
  {
64811
- focus: () => mainMenu.focus()
64703
+ focus: () => {
64704
+ const menuNavigator = mainMenu.getNavigator();
64705
+ const lastSelectedMenuItem = (0, _classPrivateFieldGet2.default)(this, _menuFocusNavigator).getLastMenuPage();
64706
+ mainMenu.focus();
64707
+ if (lastSelectedMenuItem > 0) {
64708
+ menuNavigator.setCurrentPage(lastSelectedMenuItem);
64709
+ } else {
64710
+ menuNavigator.toFirstItem();
64711
+ }
64712
+ }
64812
64713
  }, ...Array.from(this.components).map(_ref => {
64813
64714
  let [, component] = _ref;
64814
64715
  return component.getElements();
@@ -67103,8 +67004,11 @@ class InputUI extends _base.BaseUI {
67103
67004
  */
67104
67005
  build() {
67105
67006
  super.build();
67007
+ const icon = this.hot.rootDocument.createElement('div');
67106
67008
  (0, _classPrivateFieldSet2.default)(this, _input, this._element.firstChild);
67107
67009
  (0, _element.addClass)(this._element, 'htUIInput');
67010
+ (0, _element.addClass)(icon, 'htUIInputIcon');
67011
+ this._element.appendChild(icon);
67108
67012
  this.update();
67109
67013
  }
67110
67014
 
@@ -69435,12 +69339,17 @@ const SHORTCUTS_MENU_CONTEXT = 'filters';
69435
69339
  * @returns {Paginator}
69436
69340
  */
69437
69341
  function createMenuFocusController(mainMenu, menuItems) {
69438
- const navigator = (0, _focusNavigator.createFocusNavigator)(menuItems);
69342
+ /**
69343
+ * @type {number} The last selected menu item (before clearing the the menu state after going
69344
+ * into the focus mode triggered by the TAB or SHIFT+TAB keys).
69345
+ */
69346
+ let lastSelectedMenuItem = -1;
69347
+ const focusNavigator = (0, _focusNavigator.createFocusNavigator)(menuItems);
69439
69348
  const updateNavigatorPosition = element => () => {
69440
69349
  if (mainMenu.isOpened()) {
69441
69350
  mainMenu.getKeyboardShortcutsCtrl().listen(SHORTCUTS_MENU_CONTEXT);
69442
69351
  }
69443
- navigator.setCurrentPage(menuItems.indexOf(element));
69352
+ focusNavigator.setCurrentPage(menuItems.indexOf(element));
69444
69353
  };
69445
69354
 
69446
69355
  // update navigator position (internal state) to element that was recently clicked or focused
@@ -69453,7 +69362,7 @@ function createMenuFocusController(mainMenu, menuItems) {
69453
69362
  });
69454
69363
  mainMenu.addLocalHook('afterSelectionChange', selectedItem => {
69455
69364
  if (!selectedItem.key.startsWith('filter_')) {
69456
- navigator.clear();
69365
+ focusNavigator.clear();
69457
69366
  }
69458
69367
  });
69459
69368
 
@@ -69465,7 +69374,7 @@ function createMenuFocusController(mainMenu, menuItems) {
69465
69374
  function addKeyboardShortcuts(menu) {
69466
69375
  const mainMenuShortcutsCtrl = mainMenu.getKeyboardShortcutsCtrl();
69467
69376
  const currentMenuShortcutsCtrl = menu.getKeyboardShortcutsCtrl();
69468
- navigator.clear();
69377
+ focusNavigator.clear();
69469
69378
  currentMenuShortcutsCtrl.addCustomShortcuts([{
69470
69379
  keys: [['Tab'], ['Shift', 'Tab']],
69471
69380
  forwardToContext: mainMenuShortcutsCtrl.getContext(SHORTCUTS_MENU_CONTEXT),
@@ -69482,11 +69391,15 @@ function createMenuFocusController(mainMenu, menuItems) {
69482
69391
  mainMenuShortcutsCtrl.addCustomShortcuts([{
69483
69392
  keys: [['Tab'], ['Shift', 'Tab']],
69484
69393
  callback: event => {
69485
- mainMenu.getNavigator().clear();
69394
+ const menuNavigator = mainMenu.getNavigator();
69395
+ if (menuNavigator.getCurrentPage() > -1) {
69396
+ lastSelectedMenuItem = menuNavigator.getCurrentPage();
69397
+ }
69398
+ menuNavigator.clear();
69486
69399
  if (event.shiftKey) {
69487
- navigator.toPreviousItem();
69400
+ focusNavigator.toPreviousItem();
69488
69401
  } else {
69489
- navigator.toNextItem();
69402
+ focusNavigator.toNextItem();
69490
69403
  }
69491
69404
  }
69492
69405
  }, {
@@ -69498,7 +69411,7 @@ function createMenuFocusController(mainMenu, menuItems) {
69498
69411
  keys: [['Enter'], ['Space']],
69499
69412
  preventDefault: false,
69500
69413
  callback: event => {
69501
- const element = menuItems[navigator.getCurrentPage()];
69414
+ const element = menuItems[focusNavigator.getCurrentPage()];
69502
69415
  if (element instanceof _select.SelectUI) {
69503
69416
  element.openOptions();
69504
69417
  event.preventDefault();
@@ -69524,9 +69437,19 @@ function createMenuFocusController(mainMenu, menuItems) {
69524
69437
  mainMenu.focus();
69525
69438
  mainMenu.getKeyboardShortcutsCtrl().listen(SHORTCUTS_MENU_CONTEXT);
69526
69439
  }
69440
+
69441
+ /**
69442
+ * Retrieves the last selected menu item (before clearing the state after going into the focus mode).
69443
+ *
69444
+ * @returns {number} The last selected menu item.
69445
+ */
69446
+ function getLastMenuPage() {
69447
+ return lastSelectedMenuItem;
69448
+ }
69527
69449
  return {
69528
- ...navigator,
69529
- listen
69450
+ ...focusNavigator,
69451
+ listen,
69452
+ getLastMenuPage
69530
69453
  };
69531
69454
  }
69532
69455
 
@@ -71926,8 +71849,6 @@ var _pluginHooks = _interopRequireDefault(__webpack_require__(128));
71926
71849
  var _hideColumn = _interopRequireDefault(__webpack_require__(583));
71927
71850
  var _showColumn = _interopRequireDefault(__webpack_require__(584));
71928
71851
  var _translations = __webpack_require__(221);
71929
- var _a11y = __webpack_require__(114);
71930
- var _constants = __webpack_require__(245);
71931
71852
  __webpack_require__(585);
71932
71853
  function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
71933
71854
  function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
@@ -71939,8 +71860,6 @@ _pluginHooks.default.getSingleton().register('beforeUnhideColumns');
71939
71860
  _pluginHooks.default.getSingleton().register('afterUnhideColumns');
71940
71861
  const PLUGIN_KEY = exports.PLUGIN_KEY = 'hiddenColumns';
71941
71862
  const PLUGIN_PRIORITY = exports.PLUGIN_PRIORITY = 310;
71942
- const BEFORE_INDICATOR_CLASSNAME = 'beforeHiddenColumnIndicator';
71943
- const AFTER_INDICATOR_CLASSNAME = 'afterHiddenColumnIndicator';
71944
71863
 
71945
71864
  /* eslint-disable jsdoc/require-description-complete-sentence */
71946
71865
 
@@ -72050,7 +71969,6 @@ const AFTER_INDICATOR_CLASSNAME = 'afterHiddenColumnIndicator';
72050
71969
  */
72051
71970
  var _settings = /*#__PURE__*/new WeakMap();
72052
71971
  var _hiddenColumnsMap = /*#__PURE__*/new WeakMap();
72053
- var _clearIndicatorElements = /*#__PURE__*/new WeakSet();
72054
71972
  var _onModifyColWidth = /*#__PURE__*/new WeakSet();
72055
71973
  var _onAfterGetCellMeta = /*#__PURE__*/new WeakSet();
72056
71974
  var _onModifyCopyableRange = /*#__PURE__*/new WeakSet();
@@ -72100,12 +72018,6 @@ class HiddenColumns extends _base.BasePlugin {
72100
72018
  * @returns {number}
72101
72019
  */
72102
72020
  _classPrivateMethodInitSpec(this, _onModifyColWidth);
72103
- /**
72104
- * Remove the indicator elements from the provided column header element.
72105
- *
72106
- * @param {HTMLElement} TH Column header element.
72107
- */
72108
- _classPrivateMethodInitSpec(this, _clearIndicatorElements);
72109
72021
  /**
72110
72022
  * Cached plugin settings.
72111
72023
  *
@@ -72195,15 +72107,8 @@ class HiddenColumns extends _base.BasePlugin {
72195
72107
  * Disables the plugin functionality for this Handsontable instance.
72196
72108
  */
72197
72109
  disablePlugin() {
72198
- const clearColHeader = (columnIndex, TH) => {
72199
- _classPrivateMethodGet(this, _clearIndicatorElements, _clearIndicatorElements2).call(this, TH);
72200
- };
72201
72110
  this.hot.columnIndexMapper.unregisterMap(this.pluginName);
72202
72111
  (0, _classPrivateFieldSet2.default)(this, _settings, {});
72203
- this.hot.addHook('afterGetColHeader', clearColHeader);
72204
- this.hot.addHookOnce('afterViewRender', () => {
72205
- this.hot.removeHook('afterGetColHeader', clearColHeader);
72206
- });
72207
72112
  super.disablePlugin();
72208
72113
  this.resetCellsMeta();
72209
72114
  }
@@ -72355,11 +72260,6 @@ class HiddenColumns extends _base.BasePlugin {
72355
72260
  }
72356
72261
  }
72357
72262
  exports.HiddenColumns = HiddenColumns;
72358
- function _clearIndicatorElements2(TH) {
72359
- Array.from(TH.querySelectorAll(`.${AFTER_INDICATOR_CLASSNAME}, .${BEFORE_INDICATOR_CLASSNAME}`)).forEach(element => {
72360
- element.remove();
72361
- });
72362
- }
72363
72263
  function _onModifyColWidth2(width, column) {
72364
72264
  // Hook is triggered internally only for the visible columns. Conditional will be handled for the API
72365
72265
  // calls of the `getColWidth` function on not visible indexes.
@@ -72431,35 +72331,14 @@ function _onModifyCopyableRange2(ranges) {
72431
72331
  return newRanges;
72432
72332
  }
72433
72333
  function _onAfterGetColHeader2(column, TH) {
72434
- const areAriaTagsEnabled = this.hot.getSettings().ariaTags;
72435
- const beforeHiddenColumnIndicatorElement = TH.querySelector('.beforeHiddenColumnIndicator');
72436
- const afterHiddenColumnIndicatorElement = TH.querySelector('.afterHiddenColumnIndicator');
72437
72334
  if (!(0, _classPrivateFieldGet2.default)(this, _settings).indicators || column < 0) {
72438
- beforeHiddenColumnIndicatorElement === null || beforeHiddenColumnIndicatorElement === void 0 || beforeHiddenColumnIndicatorElement.remove();
72439
- afterHiddenColumnIndicatorElement === null || afterHiddenColumnIndicatorElement === void 0 || afterHiddenColumnIndicatorElement.remove();
72440
72335
  return;
72441
72336
  }
72442
72337
  const classList = [];
72443
72338
  if (column >= 1 && this.isHidden(column - 1)) {
72444
- if (!afterHiddenColumnIndicatorElement) {
72445
- const attributesToAdd = areAriaTagsEnabled ? [(0, _a11y.A11Y_LABEL)(this.hot.getTranslatedPhrase(_constants.COLUMN_HEADER_LABEL_AFTER_HIDDEN_COLUMN))] : [];
72446
- (0, _element.appendElement)(TH, {
72447
- tagName: 'div',
72448
- attributes: attributesToAdd,
72449
- className: AFTER_INDICATOR_CLASSNAME
72450
- });
72451
- }
72452
72339
  classList.push('afterHiddenColumn');
72453
72340
  }
72454
72341
  if (column < this.hot.countCols() - 1 && this.isHidden(column + 1)) {
72455
- if (!beforeHiddenColumnIndicatorElement) {
72456
- const attributesToAdd = areAriaTagsEnabled ? [(0, _a11y.A11Y_LABEL)(this.hot.getTranslatedPhrase(_constants.COLUMN_HEADER_LABEL_BEFORE_HIDDEN_COLUMN))] : [];
72457
- (0, _element.appendElement)(TH, {
72458
- tagName: 'div',
72459
- attributes: attributesToAdd,
72460
- className: BEFORE_INDICATOR_CLASSNAME
72461
- });
72462
- }
72463
72342
  classList.push('beforeHiddenColumn');
72464
72343
  }
72465
72344
  (0, _element.addClass)(TH, classList);
@@ -72686,8 +72565,6 @@ var _pluginHooks = _interopRequireDefault(__webpack_require__(128));
72686
72565
  var _hideRow = _interopRequireDefault(__webpack_require__(588));
72687
72566
  var _showRow = _interopRequireDefault(__webpack_require__(589));
72688
72567
  var _translations = __webpack_require__(221);
72689
- var _a11y = __webpack_require__(114);
72690
- var _constants = __webpack_require__(245);
72691
72568
  __webpack_require__(590);
72692
72569
  function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
72693
72570
  function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
@@ -72699,8 +72576,6 @@ _pluginHooks.default.getSingleton().register('beforeUnhideRows');
72699
72576
  _pluginHooks.default.getSingleton().register('afterUnhideRows');
72700
72577
  const PLUGIN_KEY = exports.PLUGIN_KEY = 'hiddenRows';
72701
72578
  const PLUGIN_PRIORITY = exports.PLUGIN_PRIORITY = 320;
72702
- const AFTER_INDICATOR_CLASSNAME = 'afterHiddenRowIndicator';
72703
- const BEFORE_INDICATOR_CLASSNAME = 'beforeHiddenRowIndicator';
72704
72579
 
72705
72580
  /* eslint-disable jsdoc/require-description-complete-sentence */
72706
72581
 
@@ -72810,7 +72685,6 @@ const BEFORE_INDICATOR_CLASSNAME = 'beforeHiddenRowIndicator';
72810
72685
  */
72811
72686
  var _settings = /*#__PURE__*/new WeakMap();
72812
72687
  var _hiddenRowsMap = /*#__PURE__*/new WeakMap();
72813
- var _clearIndicatorElements = /*#__PURE__*/new WeakSet();
72814
72688
  var _onModifyRowHeight = /*#__PURE__*/new WeakSet();
72815
72689
  var _onAfterGetCellMeta = /*#__PURE__*/new WeakSet();
72816
72690
  var _onModifyCopyableRange = /*#__PURE__*/new WeakSet();
@@ -72860,12 +72734,6 @@ class HiddenRows extends _base.BasePlugin {
72860
72734
  * @returns {number}
72861
72735
  */
72862
72736
  _classPrivateMethodInitSpec(this, _onModifyRowHeight);
72863
- /**
72864
- * Remove the indicator elements from the provided row header element.
72865
- *
72866
- * @param {HTMLElement} TH Column header element.
72867
- */
72868
- _classPrivateMethodInitSpec(this, _clearIndicatorElements);
72869
72737
  /**
72870
72738
  * Cached settings from Handsontable settings.
72871
72739
  *
@@ -72955,15 +72823,8 @@ class HiddenRows extends _base.BasePlugin {
72955
72823
  * Disables the plugin functionality for this Handsontable instance.
72956
72824
  */
72957
72825
  disablePlugin() {
72958
- const clearRowHeader = (columnIndex, TH) => {
72959
- _classPrivateMethodGet(this, _clearIndicatorElements, _clearIndicatorElements2).call(this, TH);
72960
- };
72961
72826
  this.hot.rowIndexMapper.unregisterMap(this.pluginName);
72962
72827
  (0, _classPrivateFieldSet2.default)(this, _settings, {});
72963
- this.hot.addHook('afterGetRowHeader', clearRowHeader);
72964
- this.hot.addHookOnce('afterViewRender', () => {
72965
- this.hot.removeHook('afterGetRowHeader', clearRowHeader);
72966
- });
72967
72828
  super.disablePlugin();
72968
72829
  this.resetCellsMeta();
72969
72830
  }
@@ -73112,11 +72973,6 @@ class HiddenRows extends _base.BasePlugin {
73112
72973
  }
73113
72974
  }
73114
72975
  exports.HiddenRows = HiddenRows;
73115
- function _clearIndicatorElements2(TH) {
73116
- Array.from(TH.querySelectorAll(`.${AFTER_INDICATOR_CLASSNAME}, .${BEFORE_INDICATOR_CLASSNAME}`)).forEach(element => {
73117
- element.remove();
73118
- });
73119
- }
73120
72976
  function _onModifyRowHeight2(height, row) {
73121
72977
  // Hook is triggered internally only for the visible rows. Conditional will be handled for the API
73122
72978
  // calls of the `getRowHeight` function on not visible indexes.
@@ -73183,35 +73039,14 @@ function _onModifyCopyableRange2(ranges) {
73183
73039
  return newRanges;
73184
73040
  }
73185
73041
  function _onAfterGetRowHeader2(row, TH) {
73186
- const areAriaTagsEnabled = this.hot.getSettings().ariaTags;
73187
- const beforeHiddenRowIndicatorElement = TH.querySelector('.beforeHiddenRowIndicator');
73188
- const afterHiddenRowIndicatorElement = TH.querySelector('.afterHiddenRowIndicator');
73189
73042
  if (!(0, _classPrivateFieldGet2.default)(this, _settings).indicators || row < 0) {
73190
- beforeHiddenRowIndicatorElement === null || beforeHiddenRowIndicatorElement === void 0 || beforeHiddenRowIndicatorElement.remove();
73191
- afterHiddenRowIndicatorElement === null || afterHiddenRowIndicatorElement === void 0 || afterHiddenRowIndicatorElement.remove();
73192
73043
  return;
73193
73044
  }
73194
73045
  const classList = [];
73195
73046
  if (row >= 1 && this.isHidden(row - 1)) {
73196
- if (!afterHiddenRowIndicatorElement) {
73197
- const attributesToAdd = areAriaTagsEnabled ? [(0, _a11y.A11Y_LABEL)(this.hot.getTranslatedPhrase(_constants.ROW_HEADER_LABEL_AFTER_HIDDEN_ROW))] : [];
73198
- (0, _element.appendElement)(TH, {
73199
- tagName: 'div',
73200
- attributes: attributesToAdd,
73201
- className: AFTER_INDICATOR_CLASSNAME
73202
- });
73203
- }
73204
73047
  classList.push('afterHiddenRow');
73205
73048
  }
73206
73049
  if (row < this.hot.countRows() - 1 && this.isHidden(row + 1)) {
73207
- if (!beforeHiddenRowIndicatorElement) {
73208
- const attributesToAdd = areAriaTagsEnabled ? [(0, _a11y.A11Y_LABEL)(this.hot.getTranslatedPhrase(_constants.ROW_HEADER_LABEL_BEFORE_HIDDEN_ROW))] : [];
73209
- (0, _element.appendElement)(TH, {
73210
- tagName: 'div',
73211
- attributes: attributesToAdd,
73212
- className: BEFORE_INDICATOR_CLASSNAME
73213
- });
73214
- }
73215
73050
  classList.push('beforeHiddenRow');
73216
73051
  }
73217
73052
  (0, _element.addClass)(TH, classList);
@@ -79697,8 +79532,6 @@ var _element = __webpack_require__(107);
79697
79532
  var _rootComparator = __webpack_require__(623);
79698
79533
  var _utils2 = __webpack_require__(624);
79699
79534
  var _domHelpers = __webpack_require__(625);
79700
- var _a11y = __webpack_require__(114);
79701
- var _constants = __webpack_require__(245);
79702
79535
  __webpack_require__(626);
79703
79536
  const PLUGIN_KEY = exports.PLUGIN_KEY = 'multiColumnSorting';
79704
79537
  const PLUGIN_PRIORITY = exports.PLUGIN_PRIORITY = 170;
@@ -79958,25 +79791,6 @@ class MultiColumnSorting extends _columnSorting.ColumnSorting {
79958
79791
  }
79959
79792
  }
79960
79793
 
79961
- /**
79962
- * Update sorting indicator.
79963
- *
79964
- * @private
79965
- * @param {number} column Visual column index.
79966
- * @param {HTMLElement} headerSpanElement Header span element.
79967
- */
79968
- updateSortingIndicator(column, headerSpanElement) {
79969
- super.updateSortingIndicator(column, headerSpanElement);
79970
- const indicatorElement = headerSpanElement.querySelector('.columnSortingIndicator');
79971
- if (!indicatorElement || !this.hot.getSettings().ariaTags || !this.columnStatesManager.isColumnSorted(column) || this.columnStatesManager.getNumberOfSortedColumns() <= 1) {
79972
- return;
79973
- }
79974
- const multiColumnSortingOrder = this.columnStatesManager.getIndexOfColumnInSortQueue(column) + 1;
79975
- const a11yLabelAttribute = (0, _a11y.A11Y_LABEL)(`${this.hot.getTranslatedPhrase(_constants.COLUMN_HEADER_LABEL_MULTI_COLUMN_SORT_ORDER)} ${multiColumnSortingOrder}.`);
79976
- (0, _element.removeAttribute)(indicatorElement, (0, _a11y.A11Y_HIDDEN)()[0]);
79977
- (0, _element.setAttribute)(indicatorElement, ...a11yLabelAttribute);
79978
- }
79979
-
79980
79794
  /**
79981
79795
  * Overwriting base plugin's `onUpdateSettings` method. Please keep in mind that `onAfterUpdateSettings` isn't called
79982
79796
  * for `updateSettings` in specific situations.
@@ -83950,8 +83764,7 @@ class NestedRows extends _base.BasePlugin {
83950
83764
  /**
83951
83765
  * Updates the plugin's state.
83952
83766
  *
83953
- * This method is executed when [`updateSettings()`](@/api/core.md#updatesettings) is invoked with any of the
83954
- * following configuration options:
83767
+ * This method is executed when [`updateSettings()`](@/api/core.md#updatesettings) is invoked with any of the following configuration options:
83955
83768
  * - [`nestedRows`](@/api/options.md#nestedrows)
83956
83769
  */
83957
83770
  updatePlugin() {
@@ -85403,7 +85216,6 @@ var _number = __webpack_require__(141);
85403
85216
  var _element = __webpack_require__(107);
85404
85217
  var _base = _interopRequireDefault(__webpack_require__(650));
85405
85218
  var _a11y = __webpack_require__(114);
85406
- var _constants = __webpack_require__(245);
85407
85219
  /**
85408
85220
  * Class responsible for the UI in the Nested Rows' row headers.
85409
85221
  *
@@ -85421,6 +85233,7 @@ class HeadersUI extends _base.default {
85421
85233
  return {
85422
85234
  indicatorContainer: 'ht_nestingLevels',
85423
85235
  parent: 'ht_nestingParent',
85236
+ indicator: 'ht_nestingLevel',
85424
85237
  emptyIndicator: 'ht_nestingLevel_empty',
85425
85238
  button: 'ht_nestingButton',
85426
85239
  expandButton: 'ht_nestingExpand',
@@ -85498,12 +85311,12 @@ class HeadersUI extends _base.default {
85498
85311
  if (this.collapsingUI.areChildrenCollapsed(rowIndex)) {
85499
85312
  (0, _element.addClass)(buttonsContainer, `${HeadersUI.CSS_CLASSES.button} ${HeadersUI.CSS_CLASSES.expandButton}`);
85500
85313
  if (ariaEnabled) {
85501
- (0, _element.setAttribute)(TH, [(0, _a11y.A11Y_EXPANDED)(false), (0, _a11y.A11Y_DESCRIPTION)(this.hot.getTranslatedPhrase(_constants.ROW_HEADER_DESCRIPTION_EXPAND_ROW))]);
85314
+ (0, _element.setAttribute)(TH, [(0, _a11y.A11Y_EXPANDED)(false)]);
85502
85315
  }
85503
85316
  } else {
85504
85317
  (0, _element.addClass)(buttonsContainer, `${HeadersUI.CSS_CLASSES.button} ${HeadersUI.CSS_CLASSES.collapseButton}`);
85505
85318
  if (ariaEnabled) {
85506
- (0, _element.setAttribute)(TH, [(0, _a11y.A11Y_EXPANDED)(true), (0, _a11y.A11Y_DESCRIPTION)(this.hot.getTranslatedPhrase(_constants.ROW_HEADER_DESCRIPTION_COLLAPSE_ROW))]);
85319
+ (0, _element.setAttribute)(TH, [(0, _a11y.A11Y_EXPANDED)(true)]);
85507
85320
  }
85508
85321
  }
85509
85322
  innerDiv.appendChild(buttonsContainer);