handsontable 14.0.0-next-dd92f79-20231124 → 14.0.0-next-88de277-20231127

Sign up to get free protection for your applications and to get access to all the features.
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);