handsontable 14.0.0-next-dd92f79-20231124 → 14.0.0-next-88de277-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 (89) hide show
  1. package/3rdparty/walkontable/src/overlay/_base.js +2 -2
  2. package/3rdparty/walkontable/src/overlay/_base.mjs +2 -2
  3. package/3rdparty/walkontable/src/renderer/columnHeaders.js +1 -1
  4. package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +2 -2
  5. package/3rdparty/walkontable/src/renderer/rows.js +1 -1
  6. package/3rdparty/walkontable/src/renderer/rows.mjs +2 -2
  7. package/3rdparty/walkontable/src/selection/manager.js +20 -6
  8. package/3rdparty/walkontable/src/selection/manager.mjs +20 -6
  9. package/base.js +2 -2
  10. package/base.mjs +2 -2
  11. package/core.js +1 -1
  12. package/core.mjs +1 -1
  13. package/dataMap/replaceData.js +3 -1
  14. package/dataMap/replaceData.mjs +3 -1
  15. package/dist/handsontable.css +62 -44
  16. package/dist/handsontable.full.css +62 -44
  17. package/dist/handsontable.full.js +123 -302
  18. package/dist/handsontable.full.min.css +5 -5
  19. package/dist/handsontable.full.min.js +64 -64
  20. package/dist/handsontable.js +123 -302
  21. package/dist/handsontable.min.css +5 -5
  22. package/dist/handsontable.min.js +19 -19
  23. package/dist/languages/all.js +2 -24
  24. package/dist/languages/all.min.js +1 -1
  25. package/dist/languages/en-US.js +1 -12
  26. package/dist/languages/en-US.min.js +1 -1
  27. package/dist/languages/pl-PL.js +1 -12
  28. package/dist/languages/pl-PL.min.js +1 -1
  29. package/editors/dateEditor/dateEditor.js +0 -7
  30. package/editors/dateEditor/dateEditor.mjs +1 -8
  31. package/editors/handsontableEditor/handsontableEditor.js +0 -7
  32. package/editors/handsontableEditor/handsontableEditor.mjs +1 -8
  33. package/editors/passwordEditor/passwordEditor.js +4 -0
  34. package/editors/passwordEditor/passwordEditor.mjs +5 -1
  35. package/helpers/a11y.js +2 -2
  36. package/helpers/a11y.mjs +1 -1
  37. package/helpers/dom/element.js +0 -29
  38. package/helpers/dom/element.mjs +0 -28
  39. package/helpers/mixed.js +2 -2
  40. package/helpers/mixed.mjs +2 -2
  41. package/i18n/constants.js +1 -14
  42. package/i18n/constants.mjs +1 -14
  43. package/i18n/languages/en-US.js +1 -12
  44. package/i18n/languages/en-US.mjs +1 -12
  45. package/i18n/languages/pl-PL.js +1 -12
  46. package/i18n/languages/pl-PL.mjs +1 -12
  47. package/languages/all.js +2 -24
  48. package/languages/en-US.js +1 -12
  49. package/languages/en-US.mjs +1 -12
  50. package/languages/index.js +2 -24
  51. package/languages/pl-PL.js +1 -12
  52. package/languages/pl-PL.mjs +1 -12
  53. package/package.json +1 -1
  54. package/plugins/collapsibleColumns/collapsibleColumns.js +2 -3
  55. package/plugins/collapsibleColumns/collapsibleColumns.mjs +3 -4
  56. package/plugins/columnSorting/columnSorting.js +4 -30
  57. package/plugins/columnSorting/columnSorting.mjs +6 -32
  58. package/plugins/contextMenu/menu/menuItemRenderer.js +0 -12
  59. package/plugins/contextMenu/menu/menuItemRenderer.mjs +2 -14
  60. package/plugins/dropdownMenu/dropdownMenu.js +1 -2
  61. package/plugins/dropdownMenu/dropdownMenu.mjs +2 -3
  62. package/plugins/filters/ui/input.js +3 -0
  63. package/plugins/filters/ui/input.mjs +3 -0
  64. package/plugins/hiddenColumns/hiddenColumns.js +0 -44
  65. package/plugins/hiddenColumns/hiddenColumns.mjs +1 -45
  66. package/plugins/hiddenRows/hiddenRows.js +0 -44
  67. package/plugins/hiddenRows/hiddenRows.mjs +1 -45
  68. package/plugins/multiColumnSorting/multiColumnSorting.js +0 -21
  69. package/plugins/multiColumnSorting/multiColumnSorting.mjs +1 -22
  70. package/plugins/nestedRows/nestedRows.js +1 -2
  71. package/plugins/nestedRows/nestedRows.mjs +1 -2
  72. package/plugins/nestedRows/ui/headers.js +3 -3
  73. package/plugins/nestedRows/ui/headers.mjs +4 -4
  74. package/renderers/autocompleteRenderer/autocompleteRenderer.js +0 -3
  75. package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +1 -4
  76. package/renderers/checkboxRenderer/checkboxRenderer.js +0 -1
  77. package/renderers/checkboxRenderer/checkboxRenderer.mjs +0 -1
  78. package/renderers/dateRenderer/dateRenderer.js +0 -5
  79. package/renderers/dateRenderer/dateRenderer.mjs +0 -5
  80. package/renderers/handsontableRenderer/handsontableRenderer.js +0 -5
  81. package/renderers/handsontableRenderer/handsontableRenderer.mjs +0 -5
  82. package/renderers/selectRenderer/selectRenderer.js +0 -5
  83. package/renderers/selectRenderer/selectRenderer.mjs +0 -5
  84. package/selection/highlight/types/focus.js +2 -0
  85. package/selection/highlight/types/focus.mjs +2 -0
  86. package/selection/selection.js +0 -1
  87. package/selection/selection.mjs +0 -1
  88. package/tableView.js +35 -2
  89. package/tableView.mjs +35 -2
@@ -25,8 +25,8 @@
25
25
  * INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING FROM
26
26
  * USE OR INABILITY TO USE THIS SOFTWARE.
27
27
  *
28
- * Version: 14.0.0-next-dd92f79-20231124
29
- * Release date: 22/11/2023 (built at 24/11/2023 11:03:49)
28
+ * Version: 14.0.0-next-88de277-20231127
29
+ * Release date: 29/11/2023 (built at 27/11/2023 10:19:34)
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 11:03:49";
109
- Handsontable.version = "14.0.0-next-dd92f79-20231124";
108
+ Handsontable.buildDate = "27/11/2023 10:19:34";
109
+ Handsontable.version = "14.0.0-next-88de277-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-dd92f79-20231124";
8516
+ const hotVersion = "14.0.0-next-88de277-20231127";
8546
8517
  let keyValidityDate;
8547
8518
  let consoleMessageState = 'invalid';
8548
8519
  let domMessageState = 'invalid';
@@ -8550,7 +8521,7 @@ function _injectProductInfo(key, element) {
8550
8521
  const schemaValidity = _checkKeySchema(key);
8551
8522
  if (hasValidType || isNonCommercial || schemaValidity) {
8552
8523
  if (schemaValidity) {
8553
- const releaseDate = (0, _moment.default)("22/11/2023", 'DD/MM/YYYY');
8524
+ const releaseDate = (0, _moment.default)("29/11/2023", 'DD/MM/YYYY');
8554
8525
  const releaseDays = Math.floor(releaseDate.toDate().getTime() / 8.64e7);
8555
8526
  const keyValidityDays = _extractTime(key);
8556
8527
  keyValidityDate = (0, _moment.default)((keyValidityDays + 1) * 8.64e7, 'x').format('MMMM DD, YYYY');
@@ -9000,6 +8971,8 @@ const A11Y_GRIDCELL = () => ['role', 'gridcell'];
9000
8971
  exports.A11Y_GRIDCELL = A11Y_GRIDCELL;
9001
8972
  const A11Y_ROWHEADER = () => ['role', 'rowheader'];
9002
8973
  exports.A11Y_ROWHEADER = A11Y_ROWHEADER;
8974
+ const A11Y_ROWGROUP = () => ['role', 'rowgroup'];
8975
+ exports.A11Y_ROWGROUP = A11Y_ROWGROUP;
9003
8976
  const A11Y_COLUMNHEADER = () => ['role', 'columnheader'];
9004
8977
  exports.A11Y_COLUMNHEADER = A11Y_COLUMNHEADER;
9005
8978
  const A11Y_ROW = () => ['role', 'row'];
@@ -9024,8 +8997,6 @@ const A11Y_TEXT = () => ['type', 'text'];
9024
8997
  exports.A11Y_TEXT = A11Y_TEXT;
9025
8998
  const A11Y_LABEL = val => ['aria-label', val];
9026
8999
  exports.A11Y_LABEL = A11Y_LABEL;
9027
- const A11Y_DESCRIPTION = val => ['aria-description', val];
9028
- exports.A11Y_DESCRIPTION = A11Y_DESCRIPTION;
9029
9000
  const A11Y_HIDDEN = () => ['aria-hidden', 'true'];
9030
9001
  exports.A11Y_HIDDEN = A11Y_HIDDEN;
9031
9002
  const A11Y_DISABLED = () => ['aria-disabled', 'true'];
@@ -15478,8 +15449,10 @@ var _src = _interopRequireDefault(__webpack_require__(147));
15478
15449
  var _mouseEventHandler = __webpack_require__(217);
15479
15450
  var _rootInstance = __webpack_require__(218);
15480
15451
  var _a11y = __webpack_require__(114);
15452
+ function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
15481
15453
  function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
15482
15454
  function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
15455
+ function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
15483
15456
  /**
15484
15457
  * @class TableView
15485
15458
  * @private
@@ -15491,11 +15464,25 @@ var _mouseDown = /*#__PURE__*/new WeakMap();
15491
15464
  var _table = /*#__PURE__*/new WeakMap();
15492
15465
  var _lastWidth = /*#__PURE__*/new WeakMap();
15493
15466
  var _lastHeight = /*#__PURE__*/new WeakMap();
15467
+ var _getAriaColcount = /*#__PURE__*/new WeakSet();
15468
+ var _updateAriaColcount = /*#__PURE__*/new WeakSet();
15494
15469
  class TableView {
15495
15470
  /**
15496
15471
  * @param {Hanstontable} hotInstance Instance of {@link Handsontable}.
15497
15472
  */
15498
15473
  constructor(hotInstance) {
15474
+ /**
15475
+ * Update the `aria-colcount` attribute by the provided value.
15476
+ *
15477
+ * @param {number} delta The number of columns to add or remove to the aria tag.
15478
+ */
15479
+ _classPrivateMethodInitSpec(this, _updateAriaColcount);
15480
+ /**
15481
+ * Return the value of the `aria-colcount` attribute.
15482
+ *
15483
+ * @returns {number} The value of the `aria-colcount` attribute.
15484
+ */
15485
+ _classPrivateMethodInitSpec(this, _getAriaColcount);
15499
15486
  /**
15500
15487
  * Instance of {@link Handsontable}.
15501
15488
  *
@@ -15732,7 +15719,7 @@ class TableView {
15732
15719
  }
15733
15720
  if (this.settings.ariaTags) {
15734
15721
  (0, _element.setAttribute)((0, _classPrivateFieldGet2.default)(this, _table), [(0, _a11y.A11Y_PRESENTATION)()]);
15735
- (0, _element.setAttribute)(rootElement, [(0, _a11y.A11Y_TREEGRID)(), (0, _a11y.A11Y_ROWCOUNT)(this.hot.countRows()), (0, _a11y.A11Y_COLCOUNT)(this.hot.countCols()), (0, _a11y.A11Y_MULTISELECTABLE)()]);
15722
+ (0, _element.setAttribute)(rootElement, [(0, _a11y.A11Y_TREEGRID)(), (0, _a11y.A11Y_ROWCOUNT)(-1), (0, _a11y.A11Y_COLCOUNT)(this.hot.countCols()), (0, _a11y.A11Y_MULTISELECTABLE)()]);
15736
15723
  }
15737
15724
  this.THEAD = rootDocument.createElement('THEAD');
15738
15725
  (0, _classPrivateFieldGet2.default)(this, _table).appendChild(this.THEAD);
@@ -16125,6 +16112,13 @@ class TableView {
16125
16112
  }
16126
16113
  this.hot.runHooks('afterGetRowHeaderRenderers', headerRenderers);
16127
16114
  (0, _classPrivateFieldSet2.default)(this, _rowHeadersCount, headerRenderers.length);
16115
+ if (this.hot.getSettings().ariaTags) {
16116
+ // Update the aria-colcount attribute.
16117
+ // Only needs to be done once after initialization/data update.
16118
+ if (_classPrivateMethodGet(this, _getAriaColcount, _getAriaColcount2).call(this) === this.hot.countCols()) {
16119
+ _classPrivateMethodGet(this, _updateAriaColcount, _updateAriaColcount2).call(this, (0, _classPrivateFieldGet2.default)(this, _rowHeadersCount));
16120
+ }
16121
+ }
16128
16122
  return headerRenderers;
16129
16123
  },
16130
16124
  columnHeaders: () => {
@@ -16617,6 +16611,10 @@ class TableView {
16617
16611
  const span = rootDocument.createElement('span');
16618
16612
  div.className = 'relative';
16619
16613
  span.className = 'colHeader';
16614
+ if (this.settings.ariaTags) {
16615
+ (0, _element.setAttribute)(div, ...(0, _a11y.A11Y_PRESENTATION)());
16616
+ (0, _element.setAttribute)(span, ...(0, _a11y.A11Y_PRESENTATION)());
16617
+ }
16620
16618
  this.updateCellHeader(span, visualColumnIndex, label, headerLevel);
16621
16619
  div.appendChild(span);
16622
16620
  TH.appendChild(div);
@@ -16760,7 +16758,6 @@ class TableView {
16760
16758
  getRowHeadersCount() {
16761
16759
  return (0, _classPrivateFieldGet2.default)(this, _rowHeadersCount);
16762
16760
  }
16763
-
16764
16761
  /**
16765
16762
  * Destroys internal WalkOnTable's instance. Detaches all of the bonded listeners.
16766
16763
  *
@@ -16771,6 +16768,13 @@ class TableView {
16771
16768
  this.eventManager.destroy();
16772
16769
  }
16773
16770
  }
16771
+ function _getAriaColcount2() {
16772
+ return parseInt(this.hot.rootElement.getAttribute((0, _a11y.A11Y_COLCOUNT)()[0]), 10);
16773
+ }
16774
+ function _updateAriaColcount2(delta) {
16775
+ const colCount = _classPrivateMethodGet(this, _getAriaColcount, _getAriaColcount2).call(this) + delta;
16776
+ (0, _element.setAttribute)(this.hot.rootElement, ...(0, _a11y.A11Y_COLCOUNT)(colCount));
16777
+ }
16774
16778
  var _default = exports["default"] = TableView;
16775
16779
 
16776
16780
  /***/ }),
@@ -22407,7 +22411,7 @@ class ColumnHeadersRenderer extends _base.default {
22407
22411
  columnHeadersCount
22408
22412
  } = this.table;
22409
22413
  if (this.table.isAriaEnabled()) {
22410
- (0, _element.setAttribute)(this.rootNode, [(0, _a11y.A11Y_PRESENTATION)()]);
22414
+ (0, _element.setAttribute)(this.rootNode, [(0, _a11y.A11Y_ROWGROUP)()]);
22411
22415
  }
22412
22416
  for (let rowHeaderIndex = 0; rowHeaderIndex < columnHeadersCount; rowHeaderIndex += 1) {
22413
22417
  const {
@@ -22581,7 +22585,7 @@ class RowsRenderer extends _base.default {
22581
22585
  the number of rendered rows by specifying the table height and/or turning off the "renderAllRows" option.`);
22582
22586
  }
22583
22587
  if (this.table.isAriaEnabled()) {
22584
- (0, _element.setAttribute)(this.rootNode, [(0, _a11y.A11Y_PRESENTATION)()]);
22588
+ (0, _element.setAttribute)(this.rootNode, [(0, _a11y.A11Y_ROWGROUP)()]);
22585
22589
  }
22586
22590
  this.orderView.setSize(rowsToRender).setOffset(this.table.renderedRowToSource(0)).start();
22587
22591
  for (let visibleRowIndex = 0; visibleRowIndex < rowsToRender; visibleRowIndex++) {
@@ -23652,8 +23656,8 @@ class Overlay {
23652
23656
  rootDocument,
23653
23657
  rootWindow
23654
23658
  } = this.domBindings;
23655
- const clone = rootDocument.createElement('DIV');
23656
- const clonedTable = rootDocument.createElement('TABLE');
23659
+ const clone = rootDocument.createElement('div');
23660
+ const clonedTable = rootDocument.createElement('table');
23657
23661
  const tableParent = wtTable.wtRootElement.parentNode;
23658
23662
  clone.className = `${_constants.CLONE_CLASS_NAMES.get(this.type)} handsontable`;
23659
23663
  clone.setAttribute('dir', this.isRtl() ? 'rtl' : 'ltr');
@@ -25788,8 +25792,9 @@ const CORNER_DEFAULT_STYLE = exports.CORNER_DEFAULT_STYLE = Object.freeze({
25788
25792
  __webpack_require__(78);
25789
25793
  var _interopRequireDefault = __webpack_require__(1);
25790
25794
  exports.__esModule = true;
25795
+ __webpack_require__(8);
25791
25796
  __webpack_require__(205);
25792
- var _classPrivateFieldGet8 = _interopRequireDefault(__webpack_require__(133));
25797
+ var _classPrivateFieldGet7 = _interopRequireDefault(__webpack_require__(133));
25793
25798
  var _classPrivateFieldSet2 = _interopRequireDefault(__webpack_require__(136));
25794
25799
  var _element = __webpack_require__(107);
25795
25800
  var _scanner2 = __webpack_require__(206);
@@ -25886,9 +25891,9 @@ class SelectionManager {
25886
25891
  */
25887
25892
  setActiveOverlay(activeWot) {
25888
25893
  (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());
25894
+ (0, _classPrivateFieldGet7.default)(this, _scanner).setActiveOverlay((0, _classPrivateFieldGet7.default)(this, _activeOverlaysWot));
25895
+ if (!(0, _classPrivateFieldGet7.default)(this, _appliedClasses).has((0, _classPrivateFieldGet7.default)(this, _activeOverlaysWot))) {
25896
+ (0, _classPrivateFieldGet7.default)(this, _appliedClasses).set((0, _classPrivateFieldGet7.default)(this, _activeOverlaysWot), new Set());
25892
25897
  }
25893
25898
  return this;
25894
25899
  }
@@ -25899,7 +25904,7 @@ class SelectionManager {
25899
25904
  * @returns {Selection|null}
25900
25905
  */
25901
25906
  getFocusSelection() {
25902
- return (0, _classPrivateFieldGet8.default)(this, _selections) !== null ? (0, _classPrivateFieldGet8.default)(this, _selections).getFocus() : null;
25907
+ return (0, _classPrivateFieldGet7.default)(this, _selections) !== null ? (0, _classPrivateFieldGet7.default)(this, _selections).getFocus() : null;
25903
25908
  }
25904
25909
 
25905
25910
  /**
@@ -25908,7 +25913,7 @@ class SelectionManager {
25908
25913
  * @returns {Selection|null}
25909
25914
  */
25910
25915
  getAreaSelection() {
25911
- return (0, _classPrivateFieldGet8.default)(this, _selections) !== null ? (0, _classPrivateFieldGet8.default)(this, _selections).createLayeredArea() : null;
25916
+ return (0, _classPrivateFieldGet7.default)(this, _selections) !== null ? (0, _classPrivateFieldGet7.default)(this, _selections).createLayeredArea() : null;
25912
25917
  }
25913
25918
 
25914
25919
  /**
@@ -25921,17 +25926,17 @@ class SelectionManager {
25921
25926
  if (!selection.settings.border) {
25922
25927
  return null;
25923
25928
  }
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));
25929
+ if ((0, _classPrivateFieldGet7.default)(this, _selectionBorders).has(selection)) {
25930
+ const borders = (0, _classPrivateFieldGet7.default)(this, _selectionBorders).get(selection);
25931
+ if (borders.has((0, _classPrivateFieldGet7.default)(this, _activeOverlaysWot))) {
25932
+ return borders.get((0, _classPrivateFieldGet7.default)(this, _activeOverlaysWot));
25928
25933
  }
25929
- const border = new _border.default((0, _classPrivateFieldGet8.default)(this, _activeOverlaysWot), selection.settings);
25930
- borders.set((0, _classPrivateFieldGet8.default)(this, _activeOverlaysWot), border);
25934
+ const border = new _border.default((0, _classPrivateFieldGet7.default)(this, _activeOverlaysWot), selection.settings);
25935
+ borders.set((0, _classPrivateFieldGet7.default)(this, _activeOverlaysWot), border);
25931
25936
  return border;
25932
25937
  }
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]]));
25938
+ const border = new _border.default((0, _classPrivateFieldGet7.default)(this, _activeOverlaysWot), selection.settings);
25939
+ (0, _classPrivateFieldGet7.default)(this, _selectionBorders).set(selection, new Map([[(0, _classPrivateFieldGet7.default)(this, _activeOverlaysWot), border]]));
25935
25940
  return border;
25936
25941
  }
25937
25942
 
@@ -25943,7 +25948,7 @@ class SelectionManager {
25943
25948
  */
25944
25949
  getBorderInstances(selection) {
25945
25950
  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 : []);
25951
+ 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
25952
  }
25948
25953
 
25949
25954
  /**
@@ -25952,8 +25957,8 @@ class SelectionManager {
25952
25957
  * @param {Selection} selection The selection instance.
25953
25958
  */
25954
25959
  destroyBorders(selection) {
25955
- (0, _classPrivateFieldGet8.default)(this, _selectionBorders).get(selection).forEach(border => border.destroy());
25956
- (0, _classPrivateFieldGet8.default)(this, _selectionBorders).delete(selection);
25960
+ (0, _classPrivateFieldGet7.default)(this, _selectionBorders).get(selection).forEach(border => border.destroy());
25961
+ (0, _classPrivateFieldGet7.default)(this, _selectionBorders).delete(selection);
25957
25962
  }
25958
25963
 
25959
25964
  /**
@@ -25962,24 +25967,26 @@ class SelectionManager {
25962
25967
  * @param {boolean} fastDraw Indicates the render cycle type (fast/slow).
25963
25968
  */
25964
25969
  render(fastDraw) {
25965
- if ((0, _classPrivateFieldGet8.default)(this, _selections) === null) {
25970
+ if ((0, _classPrivateFieldGet7.default)(this, _selections) === null) {
25966
25971
  return;
25967
25972
  }
25968
25973
  if (fastDraw) {
25969
25974
  // there was no rerender, so we need to remove classNames by ourselves
25970
25975
  _classPrivateMethodGet(this, _resetCells, _resetCells2).call(this);
25971
25976
  }
25972
- const selections = Array.from((0, _classPrivateFieldGet8.default)(this, _selections));
25977
+ const selections = Array.from((0, _classPrivateFieldGet7.default)(this, _selections));
25973
25978
  const classNamesMap = new Map();
25979
+ const headerAttributesMap = new Map();
25974
25980
  for (let i = 0; i < selections.length; i++) {
25975
25981
  const selection = selections[i];
25976
25982
  const {
25977
25983
  className,
25984
+ headerAttributes,
25978
25985
  createLayers,
25979
25986
  selectionType
25980
25987
  } = selection.settings;
25981
- if (!(0, _classPrivateFieldGet8.default)(this, _destroyListeners).has(selection)) {
25982
- (0, _classPrivateFieldGet8.default)(this, _destroyListeners).add(selection);
25988
+ if (!(0, _classPrivateFieldGet7.default)(this, _destroyListeners).has(selection)) {
25989
+ (0, _classPrivateFieldGet7.default)(this, _destroyListeners).add(selection);
25983
25990
  selection.addLocalHook('destroy', () => this.destroyBorders(selection));
25984
25991
  }
25985
25992
  const borderInstance = this.getBorderInstance(selection);
@@ -25989,7 +25996,7 @@ class SelectionManager {
25989
25996
  }
25990
25997
 
25991
25998
  if (className) {
25992
- const elements = (0, _classPrivateFieldGet8.default)(this, _scanner).setActiveSelection(selection).scan();
25999
+ const elements = (0, _classPrivateFieldGet7.default)(this, _scanner).setActiveSelection(selection).scan();
25993
26000
  elements.forEach(element => {
25994
26001
  if (classNamesMap.has(element)) {
25995
26002
  const classNamesLayers = classNamesMap.get(element);
@@ -26001,14 +26008,22 @@ class SelectionManager {
26001
26008
  } else {
26002
26009
  classNamesMap.set(element, new Map([[className, 1]]));
26003
26010
  }
26011
+ if (headerAttributes) {
26012
+ if (!headerAttributesMap.has(element)) {
26013
+ headerAttributesMap.set(element, []);
26014
+ }
26015
+ if (element.nodeName === 'TH') {
26016
+ headerAttributesMap.get(element).push(...headerAttributes);
26017
+ }
26018
+ }
26004
26019
  });
26005
26020
  }
26006
26021
  const corners = selection.getCorners();
26007
- (0, _classPrivateFieldGet8.default)(this, _activeOverlaysWot).getSetting('onBeforeDrawBorders', corners, selectionType);
26022
+ (0, _classPrivateFieldGet7.default)(this, _activeOverlaysWot).getSetting('onBeforeDrawBorders', corners, selectionType);
26008
26023
  borderInstance === null || borderInstance === void 0 || borderInstance.appear(corners);
26009
26024
  }
26010
26025
  classNamesMap.forEach((classNamesLayers, element) => {
26011
- var _classPrivateFieldGet4, _classPrivateFieldGet5;
26026
+ var _classPrivateFieldGet4;
26012
26027
  const classNames = Array.from(classNamesLayers).map(_ref => {
26013
26028
  let [className, occurrenceCount] = _ref;
26014
26029
  if (occurrenceCount === 1) {
@@ -26018,34 +26033,37 @@ class SelectionManager {
26018
26033
  length: occurrenceCount - 1
26019
26034
  }, (_, i) => `${className}-${i + 1}`)];
26020
26035
  }).flat();
26021
- classNames.forEach(className => (0, _classPrivateFieldGet8.default)(this, _appliedClasses).get((0, _classPrivateFieldGet8.default)(this, _activeOverlaysWot)).add(className));
26036
+ classNames.forEach(className => (0, _classPrivateFieldGet7.default)(this, _appliedClasses).get((0, _classPrivateFieldGet7.default)(this, _activeOverlaysWot)).add(className));
26022
26037
  (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);
26038
+ if (element.nodeName === 'TD' && Array.isArray((_classPrivateFieldGet4 = (0, _classPrivateFieldGet7.default)(this, _selections).options) === null || _classPrivateFieldGet4 === void 0 ? void 0 : _classPrivateFieldGet4.cellAttributes)) {
26039
+ (0, _element.setAttribute)(element, (0, _classPrivateFieldGet7.default)(this, _selections).options.cellAttributes);
26027
26040
  }
26028
26041
  });
26042
+
26043
+ // Set the attributes for the headers if they're focused.
26044
+ Array.from(headerAttributesMap.keys()).forEach(element => {
26045
+ (0, _element.setAttribute)(element, [...headerAttributesMap.get(element)]);
26046
+ });
26029
26047
  }
26030
26048
  }
26031
26049
  exports.SelectionManager = SelectionManager;
26032
26050
  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');
26051
+ const appliedOverlaysClasses = (0, _classPrivateFieldGet7.default)(this, _appliedClasses).get((0, _classPrivateFieldGet7.default)(this, _activeOverlaysWot));
26052
+ const classesToRemove = (0, _classPrivateFieldGet7.default)(this, _activeOverlaysWot).wtSettings.getSetting('onBeforeRemoveCellClassNames');
26035
26053
  if (Array.isArray(classesToRemove)) {
26036
26054
  for (let i = 0; i < classesToRemove.length; i++) {
26037
26055
  appliedOverlaysClasses.add(classesToRemove[i]);
26038
26056
  }
26039
26057
  }
26040
26058
  appliedOverlaysClasses.forEach(className => {
26041
- var _classPrivateFieldGet6, _classPrivateFieldGet7;
26042
- const nodes = (0, _classPrivateFieldGet8.default)(this, _activeOverlaysWot).wtTable.TABLE.querySelectorAll(`.${className}`);
26059
+ var _classPrivateFieldGet5, _classPrivateFieldGet6;
26060
+ const nodes = (0, _classPrivateFieldGet7.default)(this, _activeOverlaysWot).wtTable.TABLE.querySelectorAll(`.${className}`);
26043
26061
  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]);
26062
+ if (Array.isArray((_classPrivateFieldGet5 = (0, _classPrivateFieldGet7.default)(this, _selections).options) === null || _classPrivateFieldGet5 === void 0 ? void 0 : _classPrivateFieldGet5.cellAttributes)) {
26063
+ cellAttributes = (0, _classPrivateFieldGet7.default)(this, _selections).options.cellAttributes.map(el => el[0]);
26046
26064
  }
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])];
26065
+ if (Array.isArray((_classPrivateFieldGet6 = (0, _classPrivateFieldGet7.default)(this, _selections).options) === null || _classPrivateFieldGet6 === void 0 ? void 0 : _classPrivateFieldGet6.headerAttributes)) {
26066
+ cellAttributes = [...cellAttributes, ...(0, _classPrivateFieldGet7.default)(this, _selections).options.headerAttributes.map(el => el[0])];
26049
26067
  }
26050
26068
  for (let i = 0, len = nodes.length; i < len; i++) {
26051
26069
  (0, _element.removeClass)(nodes[i], className);
@@ -31687,18 +31705,7 @@ const dictionary = {
31687
31705
  [C.FILTERS_BUTTONS_PLACEHOLDER_VALUE]: 'Value',
31688
31706
  [C.FILTERS_BUTTONS_PLACEHOLDER_SECOND_VALUE]: 'Second value',
31689
31707
  [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.'
31708
+ [C.CHECKBOX_UNCHECKED]: 'Unchecked'
31702
31709
  };
31703
31710
  var _default = exports["default"] = dictionary;
31704
31711
 
@@ -31799,19 +31806,6 @@ const FILTERS_BUTTONS_PLACEHOLDER_SECOND_VALUE = exports.FILTERS_BUTTONS_PLACEHO
31799
31806
  const CHECKBOX_RENDERER_NAMESPACE = exports.CHECKBOX_RENDERER_NAMESPACE = 'CheckboxRenderer:';
31800
31807
  const CHECKBOX_CHECKED = exports.CHECKBOX_CHECKED = `${CHECKBOX_RENDERER_NAMESPACE}checked`;
31801
31808
  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
31809
 
31816
31810
  /***/ }),
31817
31811
  /* 246 */
@@ -31944,7 +31938,6 @@ class Selection {
31944
31938
  this.tableProps = tableProps;
31945
31939
  this.highlight = new _highlight.default({
31946
31940
  headerClassName: settings.currentHeaderClassName,
31947
- headerAttributes: [(0, _a11y.A11Y_SELECTED)()],
31948
31941
  activeHeaderClassName: settings.activeHeaderClassName,
31949
31942
  rowClassName: settings.currentRowClassName,
31950
31943
  columnClassName: settings.currentColClassName,
@@ -33540,6 +33533,7 @@ exports.__esModule = true;
33540
33533
  exports.createHighlight = createHighlight;
33541
33534
  var _src = __webpack_require__(147);
33542
33535
  var _visualSelection = _interopRequireDefault(__webpack_require__(250));
33536
+ var _a11y = __webpack_require__(114);
33543
33537
  /**
33544
33538
  * Creates the new instance of Selection responsible for highlighting currently selected cell. This type of selection
33545
33539
  * can present on the table only one at the time.
@@ -33555,6 +33549,7 @@ function createHighlight(_ref) {
33555
33549
  } = _ref;
33556
33550
  return new _visualSelection.default({
33557
33551
  className: 'current',
33552
+ headerAttributes: [(0, _a11y.A11Y_SELECTED)()],
33558
33553
  border: {
33559
33554
  width: 2,
33560
33555
  color: '#4b89ff',
@@ -41655,7 +41650,9 @@ function replaceData(data, setDataMapFunction, callbackFunction, config) {
41655
41650
  hotInstance.render();
41656
41651
  }
41657
41652
  if (hotInstance.getSettings().ariaTags) {
41658
- (0, _element.setAttribute)(hotInstance.rootElement, [(0, _a11y.A11Y_ROWCOUNT)(hotInstance.countRows()), (0, _a11y.A11Y_COLCOUNT)(hotInstance.countCols())]);
41653
+ (0, _element.setAttribute)(hotInstance.rootElement, [(0, _a11y.A11Y_ROWCOUNT)(-1),
41654
+ // If run after initialization, add the number of row headers.
41655
+ (0, _a11y.A11Y_COLCOUNT)(hotInstance.countCols() + (hotInstance.view ? hotInstance.countRowHeaders() : 0))]);
41659
41656
  }
41660
41657
  }
41661
41658
 
@@ -46440,7 +46437,6 @@ var _element = __webpack_require__(107);
46440
46437
  var _event = __webpack_require__(126);
46441
46438
  var _object = __webpack_require__(117);
46442
46439
  var _editorManager = __webpack_require__(120);
46443
- var _a11y = __webpack_require__(114);
46444
46440
  const SHORTCUTS_GROUP = 'handsontableEditor';
46445
46441
  const EDITOR_TYPE = exports.EDITOR_TYPE = 'handsontable';
46446
46442
 
@@ -46476,9 +46472,6 @@ class HandsontableEditor extends _textEditor.TextEditor {
46476
46472
  }
46477
46473
  (0, _element.setCaretPosition)(this.TEXTAREA, 0, this.TEXTAREA.value.length);
46478
46474
  this.refreshDimensions();
46479
- if (this.hot.getSettings().ariaTags) {
46480
- (0, _element.setAttribute)(this.TD, [(0, _a11y.A11Y_EXPANDED)('true')]);
46481
- }
46482
46475
  }
46483
46476
 
46484
46477
  /**
@@ -46490,9 +46483,6 @@ class HandsontableEditor extends _textEditor.TextEditor {
46490
46483
  }
46491
46484
  this.removeHooksByKey('beforeKeyDown');
46492
46485
  super.close();
46493
- if (this.TD && this.hot.getSettings().ariaTags) {
46494
- (0, _element.setAttribute)(this.TD, [(0, _a11y.A11Y_EXPANDED)('false')]);
46495
- }
46496
46486
  }
46497
46487
 
46498
46488
  /**
@@ -46772,7 +46762,6 @@ var _pikaday = _interopRequireDefault(__webpack_require__(356));
46772
46762
  var _textEditor = __webpack_require__(335);
46773
46763
  var _eventManager = _interopRequireDefault(__webpack_require__(131));
46774
46764
  var _element = __webpack_require__(107);
46775
- var _a11y = __webpack_require__(114);
46776
46765
  var _object = __webpack_require__(117);
46777
46766
  var _unicode = __webpack_require__(125);
46778
46767
  __webpack_require__(357);
@@ -46895,9 +46884,6 @@ class DateEditor extends _textEditor.TextEditor {
46895
46884
  const editorContext = shortcutManager.getContext('editor');
46896
46885
  super.open();
46897
46886
  this.showDatepicker(event);
46898
- if (this.hot.getSettings().ariaTags) {
46899
- (0, _element.setAttribute)(this.TD, [(0, _a11y.A11Y_EXPANDED)('true')]);
46900
- }
46901
46887
  editorContext.addShortcut({
46902
46888
  keys: [['Enter']],
46903
46889
  callback: keyboardEvent => {
@@ -46923,9 +46909,6 @@ class DateEditor extends _textEditor.TextEditor {
46923
46909
  this.hot._registerTimeout(() => {
46924
46910
  this.hot._refreshBorders();
46925
46911
  });
46926
- if (this.TD && this.hot.getSettings().ariaTags) {
46927
- (0, _element.setAttribute)(this.TD, [(0, _a11y.A11Y_EXPANDED)('false')]);
46928
- }
46929
46912
  const shortcutManager = this.hot.getShortcutManager();
46930
46913
  const editorContext = shortcutManager.getContext('editor');
46931
46914
  editorContext.removeShortcutsByGroup(SHORTCUTS_GROUP_EDITOR);
@@ -47183,6 +47166,7 @@ exports.PasswordEditor = _passwordEditor.PasswordEditor;
47183
47166
  exports.__esModule = true;
47184
47167
  var _textEditor = __webpack_require__(335);
47185
47168
  var _element = __webpack_require__(107);
47169
+ var _a11y = __webpack_require__(114);
47186
47170
  const EDITOR_TYPE = exports.EDITOR_TYPE = 'password';
47187
47171
 
47188
47172
  /**
@@ -47202,6 +47186,9 @@ class PasswordEditor extends _textEditor.TextEditor {
47202
47186
  this.textareaStyle = this.TEXTAREA.style;
47203
47187
  this.textareaStyle.width = 0;
47204
47188
  this.textareaStyle.height = 0;
47189
+ if (this.hot.getSettings().ariaTags) {
47190
+ (0, _element.setAttribute)(this.TEXTAREA, [(0, _a11y.A11Y_HIDDEN)()]);
47191
+ }
47205
47192
  (0, _element.empty)(this.TEXTAREA_PARENT);
47206
47193
  this.TEXTAREA_PARENT.appendChild(this.TEXTAREA);
47207
47194
  }
@@ -47621,9 +47608,6 @@ function autocompleteRenderer(hotInstance, TD, row, col, prop, value, cellProper
47621
47608
 
47622
47609
  TD.insertBefore(ARROW, TD.firstChild);
47623
47610
  (0, _element.addClass)(TD, 'htAutocomplete');
47624
- if (isAriaEnabled) {
47625
- TD.setAttribute(...(0, _a11y.A11Y_HASPOPUP)('listbox'));
47626
- }
47627
47611
  if (!hotInstance.acArrowListener) {
47628
47612
  const eventManager = new _eventManager.default(hotInstance);
47629
47613
 
@@ -48007,7 +47991,6 @@ function createInput(rootDocument) {
48007
47991
  const input = rootDocument.createElement('input');
48008
47992
  input.className = 'htCheckboxRendererInput';
48009
47993
  input.type = 'checkbox';
48010
- input.setAttribute('autocomplete', 'off');
48011
47994
  input.setAttribute('tabindex', '-1');
48012
47995
  return input.cloneNode(false);
48013
47996
  }
@@ -48820,8 +48803,6 @@ exports.dateRenderer = _dateRenderer.dateRenderer;
48820
48803
  exports.__esModule = true;
48821
48804
  exports.dateRenderer = dateRenderer;
48822
48805
  var _autocompleteRenderer = __webpack_require__(369);
48823
- var _a11y = __webpack_require__(114);
48824
- var _element = __webpack_require__(107);
48825
48806
  const RENDERER_TYPE = exports.RENDERER_TYPE = 'date';
48826
48807
 
48827
48808
  /**
@@ -48838,9 +48819,6 @@ const RENDERER_TYPE = exports.RENDERER_TYPE = 'date';
48838
48819
  */
48839
48820
  function dateRenderer(hotInstance, TD, row, col, prop, value, cellProperties) {
48840
48821
  _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
48822
  }
48845
48823
  dateRenderer.RENDERER_TYPE = RENDERER_TYPE;
48846
48824
 
@@ -48928,8 +48906,6 @@ exports.handsontableRenderer = _handsontableRenderer.handsontableRenderer;
48928
48906
  exports.__esModule = true;
48929
48907
  exports.handsontableRenderer = handsontableRenderer;
48930
48908
  var _autocompleteRenderer = __webpack_require__(369);
48931
- var _a11y = __webpack_require__(114);
48932
- var _element = __webpack_require__(107);
48933
48909
  const RENDERER_TYPE = exports.RENDERER_TYPE = 'handsontable';
48934
48910
 
48935
48911
  /**
@@ -48946,9 +48922,6 @@ const RENDERER_TYPE = exports.RENDERER_TYPE = 'handsontable';
48946
48922
  */
48947
48923
  function handsontableRenderer(hotInstance, TD, row, col, prop, value, cellProperties) {
48948
48924
  _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
48925
  }
48953
48926
  handsontableRenderer.RENDERER_TYPE = RENDERER_TYPE;
48954
48927
 
@@ -49065,8 +49038,6 @@ exports.selectRenderer = _selectRenderer.selectRenderer;
49065
49038
  exports.__esModule = true;
49066
49039
  exports.selectRenderer = selectRenderer;
49067
49040
  var _textRenderer = __webpack_require__(342);
49068
- var _a11y = __webpack_require__(114);
49069
- var _element = __webpack_require__(107);
49070
49041
  const RENDERER_TYPE = exports.RENDERER_TYPE = 'select';
49071
49042
 
49072
49043
  /**
@@ -49081,9 +49052,6 @@ const RENDERER_TYPE = exports.RENDERER_TYPE = 'select';
49081
49052
  */
49082
49053
  function selectRenderer(hotInstance, TD, row, col, prop, value, cellProperties) {
49083
49054
  _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
49055
  }
49088
49056
  selectRenderer.RENDERER_TYPE = RENDERER_TYPE;
49089
49057
 
@@ -52515,7 +52483,6 @@ var _console = __webpack_require__(129);
52515
52483
  var _element = __webpack_require__(107);
52516
52484
  var _event = __webpack_require__(126);
52517
52485
  var _a11y = __webpack_require__(114);
52518
- var _constants = __webpack_require__(245);
52519
52486
  function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
52520
52487
  function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
52521
52488
  function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
@@ -53046,7 +53013,7 @@ function _onAfterGetColHeader2(column, TH, headerLevel) {
53046
53013
 
53047
53014
  // Add ARIA tags
53048
53015
  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))]);
53016
+ (0, _element.setAttribute)(TH, ...(0, _a11y.A11Y_EXPANDED)(false));
53050
53017
  }
53051
53018
  } else {
53052
53019
  (0, _element.addClass)(collapsibleElement, 'expanded');
@@ -53054,7 +53021,7 @@ function _onAfterGetColHeader2(column, TH, headerLevel) {
53054
53021
 
53055
53022
  // Add ARIA tags
53056
53023
  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))]);
53024
+ (0, _element.setAttribute)(TH, ...(0, _a11y.A11Y_EXPANDED)(true));
53058
53025
  }
53059
53026
  }
53060
53027
  if (isAriaTagsEnabled) {
@@ -53128,7 +53095,6 @@ var _domHelpers = __webpack_require__(441);
53128
53095
  var _rootComparator = __webpack_require__(442);
53129
53096
  var _sortService = __webpack_require__(443);
53130
53097
  var _a11y = __webpack_require__(114);
53131
- var _constants = __webpack_require__(245);
53132
53098
  function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
53133
53099
  function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
53134
53100
  function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
@@ -53137,7 +53103,6 @@ const PLUGIN_PRIORITY = exports.PLUGIN_PRIORITY = 50;
53137
53103
  const APPEND_COLUMN_CONFIG_STRATEGY = exports.APPEND_COLUMN_CONFIG_STRATEGY = 'append';
53138
53104
  const REPLACE_COLUMN_CONFIG_STRATEGY = exports.REPLACE_COLUMN_CONFIG_STRATEGY = 'replace';
53139
53105
  const SHORTCUTS_GROUP = PLUGIN_KEY;
53140
- const SORTING_INDICATOR_CLASS = 'columnSortingIndicator';
53141
53106
  (0, _sortService.registerRootComparator)(PLUGIN_KEY, _rootComparator.rootComparator);
53142
53107
  _pluginHooks.default.getSingleton().register('beforeColumnSort');
53143
53108
  _pluginHooks.default.getSingleton().register('afterColumnSort');
@@ -53780,28 +53745,6 @@ class ColumnSorting extends _base.BasePlugin {
53780
53745
  }
53781
53746
  }
53782
53747
 
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
53748
  /**
53806
53749
  * Overwriting base plugin's `onUpdateSettings` method. Please keep in mind that `onAfterUpdateSettings` isn't called
53807
53750
  * for `updateSettings` in specific situations.
@@ -53830,7 +53773,7 @@ class ColumnSorting extends _base.BasePlugin {
53830
53773
  wasClickableHeaderClicked(event, column) {
53831
53774
  const pluginSettingsForColumn = this.getFirstCellSettings(column)[this.pluginKey];
53832
53775
  const headerActionEnabled = pluginSettingsForColumn.headerAction;
53833
- return headerActionEnabled && ((0, _element.hasClass)(event.target, _utils.HEADER_SPAN_CLASS) || (0, _element.hasClass)(event.target, SORTING_INDICATOR_CLASS));
53776
+ return headerActionEnabled && (0, _element.hasClass)(event.target, _utils.HEADER_SPAN_CLASS);
53834
53777
  }
53835
53778
  /**
53836
53779
  * Callback for the `onAfterOnCellMouseDown` hook.
@@ -53879,14 +53822,12 @@ function _onAfterGetColHeader2(column, TH) {
53879
53822
  return;
53880
53823
  }
53881
53824
  const pluginSettingsForColumn = this.getFirstCellSettings(column)[this.pluginKey];
53882
- const ariaTags = this.hot.getSettings().ariaTags;
53883
53825
  const showSortIndicator = pluginSettingsForColumn.indicator;
53884
53826
  const headerActionEnabled = pluginSettingsForColumn.headerAction;
53885
- const currentSortState = this.columnStatesManager.getSortOrderOfColumn(column);
53886
53827
  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))]);
53828
+ if (this.hot.getSettings().ariaTags) {
53829
+ const currentSortState = this.columnStatesManager.getSortOrderOfColumn(column);
53830
+ (0, _element.setAttribute)(TH, ...(0, _a11y.A11Y_SORT)(currentSortState ? `${currentSortState}ending` : 'none'));
53890
53831
  }
53891
53832
  }
53892
53833
  function _onAfterLoadData2(initialLoad) {
@@ -60422,8 +60363,6 @@ exports.createMenuItemRenderer = createMenuItemRenderer;
60422
60363
  var _utils = __webpack_require__(489);
60423
60364
  var _element = __webpack_require__(107);
60424
60365
  var _a11y = __webpack_require__(114);
60425
- const SUBMENU_INDICATOR_CLASSNAME = 'submenuIndicator';
60426
-
60427
60366
  /**
60428
60367
  * Creates the menu renderer function.
60429
60368
  *
@@ -60456,16 +60395,6 @@ function createMenuItemRenderer(mainTableHot) {
60456
60395
  const isFocusable = !(0, _utils.isItemDisabled)(item, mainTableHot) && !(0, _utils.isItemSelectionDisabled)(item) && !(0, _utils.isItemSeparator)(item);
60457
60396
  (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
60397
  }
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
60398
  TD.className = '';
60470
60399
  TD.appendChild(wrapper);
60471
60400
  if ((0, _utils.isItemSeparator)(item)) {
@@ -63396,7 +63325,6 @@ var _menu = __webpack_require__(483);
63396
63325
  var _pluginHooks = _interopRequireDefault(__webpack_require__(128));
63397
63326
  var _predefinedItems = __webpack_require__(458);
63398
63327
  __webpack_require__(518);
63399
- var _constants = __webpack_require__(245);
63400
63328
  var _a11y = __webpack_require__(114);
63401
63329
  function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
63402
63330
  function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
@@ -63870,7 +63798,7 @@ function _onAfterGetColHeader2(col, TH) {
63870
63798
  button.type = 'button';
63871
63799
  button.tabIndex = -1;
63872
63800
  if (this.hot.getSettings().ariaTags) {
63873
- (0, _element.setAttribute)(button, [(0, _a11y.A11Y_LABEL)(this.hot.getTranslatedPhrase(_constants.COLUMN_HEADER_LABEL_OPEN_MENU))]);
63801
+ (0, _element.setAttribute)(button, [(0, _a11y.A11Y_HIDDEN)(), (0, _a11y.A11Y_LABEL)(' ')]);
63874
63802
  (0, _element.setAttribute)(TH, [(0, _a11y.A11Y_HASPOPUP)('menu')]);
63875
63803
  }
63876
63804
 
@@ -67112,8 +67040,11 @@ class InputUI extends _base.BaseUI {
67112
67040
  */
67113
67041
  build() {
67114
67042
  super.build();
67043
+ const icon = this.hot.rootDocument.createElement('div');
67115
67044
  (0, _classPrivateFieldSet2.default)(this, _input, this._element.firstChild);
67116
67045
  (0, _element.addClass)(this._element, 'htUIInput');
67046
+ (0, _element.addClass)(icon, 'htUIInputIcon');
67047
+ this._element.appendChild(icon);
67117
67048
  this.update();
67118
67049
  }
67119
67050
 
@@ -71954,8 +71885,6 @@ var _pluginHooks = _interopRequireDefault(__webpack_require__(128));
71954
71885
  var _hideColumn = _interopRequireDefault(__webpack_require__(583));
71955
71886
  var _showColumn = _interopRequireDefault(__webpack_require__(584));
71956
71887
  var _translations = __webpack_require__(221);
71957
- var _a11y = __webpack_require__(114);
71958
- var _constants = __webpack_require__(245);
71959
71888
  __webpack_require__(585);
71960
71889
  function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
71961
71890
  function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
@@ -71967,8 +71896,6 @@ _pluginHooks.default.getSingleton().register('beforeUnhideColumns');
71967
71896
  _pluginHooks.default.getSingleton().register('afterUnhideColumns');
71968
71897
  const PLUGIN_KEY = exports.PLUGIN_KEY = 'hiddenColumns';
71969
71898
  const PLUGIN_PRIORITY = exports.PLUGIN_PRIORITY = 310;
71970
- const BEFORE_INDICATOR_CLASSNAME = 'beforeHiddenColumnIndicator';
71971
- const AFTER_INDICATOR_CLASSNAME = 'afterHiddenColumnIndicator';
71972
71899
 
71973
71900
  /* eslint-disable jsdoc/require-description-complete-sentence */
71974
71901
 
@@ -72078,7 +72005,6 @@ const AFTER_INDICATOR_CLASSNAME = 'afterHiddenColumnIndicator';
72078
72005
  */
72079
72006
  var _settings = /*#__PURE__*/new WeakMap();
72080
72007
  var _hiddenColumnsMap = /*#__PURE__*/new WeakMap();
72081
- var _clearIndicatorElements = /*#__PURE__*/new WeakSet();
72082
72008
  var _onModifyColWidth = /*#__PURE__*/new WeakSet();
72083
72009
  var _onAfterGetCellMeta = /*#__PURE__*/new WeakSet();
72084
72010
  var _onModifyCopyableRange = /*#__PURE__*/new WeakSet();
@@ -72128,12 +72054,6 @@ class HiddenColumns extends _base.BasePlugin {
72128
72054
  * @returns {number}
72129
72055
  */
72130
72056
  _classPrivateMethodInitSpec(this, _onModifyColWidth);
72131
- /**
72132
- * Remove the indicator elements from the provided column header element.
72133
- *
72134
- * @param {HTMLElement} TH Column header element.
72135
- */
72136
- _classPrivateMethodInitSpec(this, _clearIndicatorElements);
72137
72057
  /**
72138
72058
  * Cached plugin settings.
72139
72059
  *
@@ -72223,15 +72143,8 @@ class HiddenColumns extends _base.BasePlugin {
72223
72143
  * Disables the plugin functionality for this Handsontable instance.
72224
72144
  */
72225
72145
  disablePlugin() {
72226
- const clearColHeader = (columnIndex, TH) => {
72227
- _classPrivateMethodGet(this, _clearIndicatorElements, _clearIndicatorElements2).call(this, TH);
72228
- };
72229
72146
  this.hot.columnIndexMapper.unregisterMap(this.pluginName);
72230
72147
  (0, _classPrivateFieldSet2.default)(this, _settings, {});
72231
- this.hot.addHook('afterGetColHeader', clearColHeader);
72232
- this.hot.addHookOnce('afterViewRender', () => {
72233
- this.hot.removeHook('afterGetColHeader', clearColHeader);
72234
- });
72235
72148
  super.disablePlugin();
72236
72149
  this.resetCellsMeta();
72237
72150
  }
@@ -72383,11 +72296,6 @@ class HiddenColumns extends _base.BasePlugin {
72383
72296
  }
72384
72297
  }
72385
72298
  exports.HiddenColumns = HiddenColumns;
72386
- function _clearIndicatorElements2(TH) {
72387
- Array.from(TH.querySelectorAll(`.${AFTER_INDICATOR_CLASSNAME}, .${BEFORE_INDICATOR_CLASSNAME}`)).forEach(element => {
72388
- element.remove();
72389
- });
72390
- }
72391
72299
  function _onModifyColWidth2(width, column) {
72392
72300
  // Hook is triggered internally only for the visible columns. Conditional will be handled for the API
72393
72301
  // calls of the `getColWidth` function on not visible indexes.
@@ -72459,35 +72367,14 @@ function _onModifyCopyableRange2(ranges) {
72459
72367
  return newRanges;
72460
72368
  }
72461
72369
  function _onAfterGetColHeader2(column, TH) {
72462
- const areAriaTagsEnabled = this.hot.getSettings().ariaTags;
72463
- const beforeHiddenColumnIndicatorElement = TH.querySelector('.beforeHiddenColumnIndicator');
72464
- const afterHiddenColumnIndicatorElement = TH.querySelector('.afterHiddenColumnIndicator');
72465
72370
  if (!(0, _classPrivateFieldGet2.default)(this, _settings).indicators || column < 0) {
72466
- beforeHiddenColumnIndicatorElement === null || beforeHiddenColumnIndicatorElement === void 0 || beforeHiddenColumnIndicatorElement.remove();
72467
- afterHiddenColumnIndicatorElement === null || afterHiddenColumnIndicatorElement === void 0 || afterHiddenColumnIndicatorElement.remove();
72468
72371
  return;
72469
72372
  }
72470
72373
  const classList = [];
72471
72374
  if (column >= 1 && this.isHidden(column - 1)) {
72472
- if (!afterHiddenColumnIndicatorElement) {
72473
- const attributesToAdd = areAriaTagsEnabled ? [(0, _a11y.A11Y_LABEL)(this.hot.getTranslatedPhrase(_constants.COLUMN_HEADER_LABEL_AFTER_HIDDEN_COLUMN))] : [];
72474
- (0, _element.appendElement)(TH, {
72475
- tagName: 'div',
72476
- attributes: attributesToAdd,
72477
- className: AFTER_INDICATOR_CLASSNAME
72478
- });
72479
- }
72480
72375
  classList.push('afterHiddenColumn');
72481
72376
  }
72482
72377
  if (column < this.hot.countCols() - 1 && this.isHidden(column + 1)) {
72483
- if (!beforeHiddenColumnIndicatorElement) {
72484
- const attributesToAdd = areAriaTagsEnabled ? [(0, _a11y.A11Y_LABEL)(this.hot.getTranslatedPhrase(_constants.COLUMN_HEADER_LABEL_BEFORE_HIDDEN_COLUMN))] : [];
72485
- (0, _element.appendElement)(TH, {
72486
- tagName: 'div',
72487
- attributes: attributesToAdd,
72488
- className: BEFORE_INDICATOR_CLASSNAME
72489
- });
72490
- }
72491
72378
  classList.push('beforeHiddenColumn');
72492
72379
  }
72493
72380
  (0, _element.addClass)(TH, classList);
@@ -72714,8 +72601,6 @@ var _pluginHooks = _interopRequireDefault(__webpack_require__(128));
72714
72601
  var _hideRow = _interopRequireDefault(__webpack_require__(588));
72715
72602
  var _showRow = _interopRequireDefault(__webpack_require__(589));
72716
72603
  var _translations = __webpack_require__(221);
72717
- var _a11y = __webpack_require__(114);
72718
- var _constants = __webpack_require__(245);
72719
72604
  __webpack_require__(590);
72720
72605
  function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
72721
72606
  function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
@@ -72727,8 +72612,6 @@ _pluginHooks.default.getSingleton().register('beforeUnhideRows');
72727
72612
  _pluginHooks.default.getSingleton().register('afterUnhideRows');
72728
72613
  const PLUGIN_KEY = exports.PLUGIN_KEY = 'hiddenRows';
72729
72614
  const PLUGIN_PRIORITY = exports.PLUGIN_PRIORITY = 320;
72730
- const AFTER_INDICATOR_CLASSNAME = 'afterHiddenRowIndicator';
72731
- const BEFORE_INDICATOR_CLASSNAME = 'beforeHiddenRowIndicator';
72732
72615
 
72733
72616
  /* eslint-disable jsdoc/require-description-complete-sentence */
72734
72617
 
@@ -72838,7 +72721,6 @@ const BEFORE_INDICATOR_CLASSNAME = 'beforeHiddenRowIndicator';
72838
72721
  */
72839
72722
  var _settings = /*#__PURE__*/new WeakMap();
72840
72723
  var _hiddenRowsMap = /*#__PURE__*/new WeakMap();
72841
- var _clearIndicatorElements = /*#__PURE__*/new WeakSet();
72842
72724
  var _onModifyRowHeight = /*#__PURE__*/new WeakSet();
72843
72725
  var _onAfterGetCellMeta = /*#__PURE__*/new WeakSet();
72844
72726
  var _onModifyCopyableRange = /*#__PURE__*/new WeakSet();
@@ -72888,12 +72770,6 @@ class HiddenRows extends _base.BasePlugin {
72888
72770
  * @returns {number}
72889
72771
  */
72890
72772
  _classPrivateMethodInitSpec(this, _onModifyRowHeight);
72891
- /**
72892
- * Remove the indicator elements from the provided row header element.
72893
- *
72894
- * @param {HTMLElement} TH Column header element.
72895
- */
72896
- _classPrivateMethodInitSpec(this, _clearIndicatorElements);
72897
72773
  /**
72898
72774
  * Cached settings from Handsontable settings.
72899
72775
  *
@@ -72983,15 +72859,8 @@ class HiddenRows extends _base.BasePlugin {
72983
72859
  * Disables the plugin functionality for this Handsontable instance.
72984
72860
  */
72985
72861
  disablePlugin() {
72986
- const clearRowHeader = (columnIndex, TH) => {
72987
- _classPrivateMethodGet(this, _clearIndicatorElements, _clearIndicatorElements2).call(this, TH);
72988
- };
72989
72862
  this.hot.rowIndexMapper.unregisterMap(this.pluginName);
72990
72863
  (0, _classPrivateFieldSet2.default)(this, _settings, {});
72991
- this.hot.addHook('afterGetRowHeader', clearRowHeader);
72992
- this.hot.addHookOnce('afterViewRender', () => {
72993
- this.hot.removeHook('afterGetRowHeader', clearRowHeader);
72994
- });
72995
72864
  super.disablePlugin();
72996
72865
  this.resetCellsMeta();
72997
72866
  }
@@ -73140,11 +73009,6 @@ class HiddenRows extends _base.BasePlugin {
73140
73009
  }
73141
73010
  }
73142
73011
  exports.HiddenRows = HiddenRows;
73143
- function _clearIndicatorElements2(TH) {
73144
- Array.from(TH.querySelectorAll(`.${AFTER_INDICATOR_CLASSNAME}, .${BEFORE_INDICATOR_CLASSNAME}`)).forEach(element => {
73145
- element.remove();
73146
- });
73147
- }
73148
73012
  function _onModifyRowHeight2(height, row) {
73149
73013
  // Hook is triggered internally only for the visible rows. Conditional will be handled for the API
73150
73014
  // calls of the `getRowHeight` function on not visible indexes.
@@ -73211,35 +73075,14 @@ function _onModifyCopyableRange2(ranges) {
73211
73075
  return newRanges;
73212
73076
  }
73213
73077
  function _onAfterGetRowHeader2(row, TH) {
73214
- const areAriaTagsEnabled = this.hot.getSettings().ariaTags;
73215
- const beforeHiddenRowIndicatorElement = TH.querySelector('.beforeHiddenRowIndicator');
73216
- const afterHiddenRowIndicatorElement = TH.querySelector('.afterHiddenRowIndicator');
73217
73078
  if (!(0, _classPrivateFieldGet2.default)(this, _settings).indicators || row < 0) {
73218
- beforeHiddenRowIndicatorElement === null || beforeHiddenRowIndicatorElement === void 0 || beforeHiddenRowIndicatorElement.remove();
73219
- afterHiddenRowIndicatorElement === null || afterHiddenRowIndicatorElement === void 0 || afterHiddenRowIndicatorElement.remove();
73220
73079
  return;
73221
73080
  }
73222
73081
  const classList = [];
73223
73082
  if (row >= 1 && this.isHidden(row - 1)) {
73224
- if (!afterHiddenRowIndicatorElement) {
73225
- const attributesToAdd = areAriaTagsEnabled ? [(0, _a11y.A11Y_LABEL)(this.hot.getTranslatedPhrase(_constants.ROW_HEADER_LABEL_AFTER_HIDDEN_ROW))] : [];
73226
- (0, _element.appendElement)(TH, {
73227
- tagName: 'div',
73228
- attributes: attributesToAdd,
73229
- className: AFTER_INDICATOR_CLASSNAME
73230
- });
73231
- }
73232
73083
  classList.push('afterHiddenRow');
73233
73084
  }
73234
73085
  if (row < this.hot.countRows() - 1 && this.isHidden(row + 1)) {
73235
- if (!beforeHiddenRowIndicatorElement) {
73236
- const attributesToAdd = areAriaTagsEnabled ? [(0, _a11y.A11Y_LABEL)(this.hot.getTranslatedPhrase(_constants.ROW_HEADER_LABEL_BEFORE_HIDDEN_ROW))] : [];
73237
- (0, _element.appendElement)(TH, {
73238
- tagName: 'div',
73239
- attributes: attributesToAdd,
73240
- className: BEFORE_INDICATOR_CLASSNAME
73241
- });
73242
- }
73243
73086
  classList.push('beforeHiddenRow');
73244
73087
  }
73245
73088
  (0, _element.addClass)(TH, classList);
@@ -79725,8 +79568,6 @@ var _element = __webpack_require__(107);
79725
79568
  var _rootComparator = __webpack_require__(623);
79726
79569
  var _utils2 = __webpack_require__(624);
79727
79570
  var _domHelpers = __webpack_require__(625);
79728
- var _a11y = __webpack_require__(114);
79729
- var _constants = __webpack_require__(245);
79730
79571
  __webpack_require__(626);
79731
79572
  const PLUGIN_KEY = exports.PLUGIN_KEY = 'multiColumnSorting';
79732
79573
  const PLUGIN_PRIORITY = exports.PLUGIN_PRIORITY = 170;
@@ -79986,25 +79827,6 @@ class MultiColumnSorting extends _columnSorting.ColumnSorting {
79986
79827
  }
79987
79828
  }
79988
79829
 
79989
- /**
79990
- * Update sorting indicator.
79991
- *
79992
- * @private
79993
- * @param {number} column Visual column index.
79994
- * @param {HTMLElement} headerSpanElement Header span element.
79995
- */
79996
- updateSortingIndicator(column, headerSpanElement) {
79997
- super.updateSortingIndicator(column, headerSpanElement);
79998
- const indicatorElement = headerSpanElement.querySelector('.columnSortingIndicator');
79999
- if (!indicatorElement || !this.hot.getSettings().ariaTags || !this.columnStatesManager.isColumnSorted(column) || this.columnStatesManager.getNumberOfSortedColumns() <= 1) {
80000
- return;
80001
- }
80002
- const multiColumnSortingOrder = this.columnStatesManager.getIndexOfColumnInSortQueue(column) + 1;
80003
- const a11yLabelAttribute = (0, _a11y.A11Y_LABEL)(`${this.hot.getTranslatedPhrase(_constants.COLUMN_HEADER_LABEL_MULTI_COLUMN_SORT_ORDER)} ${multiColumnSortingOrder}.`);
80004
- (0, _element.removeAttribute)(indicatorElement, (0, _a11y.A11Y_HIDDEN)()[0]);
80005
- (0, _element.setAttribute)(indicatorElement, ...a11yLabelAttribute);
80006
- }
80007
-
80008
79830
  /**
80009
79831
  * Overwriting base plugin's `onUpdateSettings` method. Please keep in mind that `onAfterUpdateSettings` isn't called
80010
79832
  * for `updateSettings` in specific situations.
@@ -83978,8 +83800,7 @@ class NestedRows extends _base.BasePlugin {
83978
83800
  /**
83979
83801
  * Updates the plugin's state.
83980
83802
  *
83981
- * This method is executed when [`updateSettings()`](@/api/core.md#updatesettings) is invoked with any of the
83982
- * following configuration options:
83803
+ * This method is executed when [`updateSettings()`](@/api/core.md#updatesettings) is invoked with any of the following configuration options:
83983
83804
  * - [`nestedRows`](@/api/options.md#nestedrows)
83984
83805
  */
83985
83806
  updatePlugin() {
@@ -85431,7 +85252,6 @@ var _number = __webpack_require__(141);
85431
85252
  var _element = __webpack_require__(107);
85432
85253
  var _base = _interopRequireDefault(__webpack_require__(650));
85433
85254
  var _a11y = __webpack_require__(114);
85434
- var _constants = __webpack_require__(245);
85435
85255
  /**
85436
85256
  * Class responsible for the UI in the Nested Rows' row headers.
85437
85257
  *
@@ -85449,6 +85269,7 @@ class HeadersUI extends _base.default {
85449
85269
  return {
85450
85270
  indicatorContainer: 'ht_nestingLevels',
85451
85271
  parent: 'ht_nestingParent',
85272
+ indicator: 'ht_nestingLevel',
85452
85273
  emptyIndicator: 'ht_nestingLevel_empty',
85453
85274
  button: 'ht_nestingButton',
85454
85275
  expandButton: 'ht_nestingExpand',
@@ -85526,12 +85347,12 @@ class HeadersUI extends _base.default {
85526
85347
  if (this.collapsingUI.areChildrenCollapsed(rowIndex)) {
85527
85348
  (0, _element.addClass)(buttonsContainer, `${HeadersUI.CSS_CLASSES.button} ${HeadersUI.CSS_CLASSES.expandButton}`);
85528
85349
  if (ariaEnabled) {
85529
- (0, _element.setAttribute)(TH, [(0, _a11y.A11Y_EXPANDED)(false), (0, _a11y.A11Y_DESCRIPTION)(this.hot.getTranslatedPhrase(_constants.ROW_HEADER_DESCRIPTION_EXPAND_ROW))]);
85350
+ (0, _element.setAttribute)(TH, [(0, _a11y.A11Y_EXPANDED)(false)]);
85530
85351
  }
85531
85352
  } else {
85532
85353
  (0, _element.addClass)(buttonsContainer, `${HeadersUI.CSS_CLASSES.button} ${HeadersUI.CSS_CLASSES.collapseButton}`);
85533
85354
  if (ariaEnabled) {
85534
- (0, _element.setAttribute)(TH, [(0, _a11y.A11Y_EXPANDED)(true), (0, _a11y.A11Y_DESCRIPTION)(this.hot.getTranslatedPhrase(_constants.ROW_HEADER_DESCRIPTION_COLLAPSE_ROW))]);
85355
+ (0, _element.setAttribute)(TH, [(0, _a11y.A11Y_EXPANDED)(true)]);
85535
85356
  }
85536
85357
  }
85537
85358
  innerDiv.appendChild(buttonsContainer);