handsontable 0.0.0-next-f11b1a2-20231123 → 0.0.0-next-44acfea-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.
Potentially problematic release.
This version of handsontable might be problematic. Click here for more details.
- package/3rdparty/walkontable/src/overlay/_base.js +2 -2
- package/3rdparty/walkontable/src/overlay/_base.mjs +2 -2
- package/3rdparty/walkontable/src/renderer/columnHeaders.js +2 -2
- package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +3 -3
- package/3rdparty/walkontable/src/renderer/rows.js +1 -1
- package/3rdparty/walkontable/src/renderer/rows.mjs +2 -2
- package/3rdparty/walkontable/src/selection/manager.js +8 -8
- package/3rdparty/walkontable/src/selection/manager.mjs +8 -8
- package/base.js +2 -2
- package/base.mjs +2 -2
- package/core/focusCatcher/focusDetector.js +1 -1
- package/core/focusCatcher/focusDetector.mjs +2 -2
- package/dataMap/replaceData.js +3 -1
- package/dataMap/replaceData.mjs +3 -1
- package/dist/handsontable.css +2 -2
- package/dist/handsontable.full.css +2 -2
- package/dist/handsontable.full.js +103 -73
- package/dist/handsontable.full.min.css +2 -2
- package/dist/handsontable.full.min.js +8 -8
- package/dist/handsontable.js +103 -73
- package/dist/handsontable.min.css +2 -2
- package/dist/handsontable.min.js +31 -31
- package/editors/dateEditor/dateEditor.js +0 -7
- package/editors/dateEditor/dateEditor.mjs +1 -8
- package/editors/handsontableEditor/handsontableEditor.js +0 -7
- package/editors/handsontableEditor/handsontableEditor.mjs +1 -8
- package/editors/passwordEditor/passwordEditor.js +4 -0
- package/editors/passwordEditor/passwordEditor.mjs +5 -1
- package/helpers/a11y.js +2 -0
- package/helpers/a11y.mjs +1 -0
- package/helpers/mixed.js +1 -1
- package/helpers/mixed.mjs +1 -1
- package/package.json +1 -1
- package/plugins/filters/filters.js +10 -1
- package/plugins/filters/filters.mjs +10 -1
- package/plugins/filters/menu/focusController.js +29 -10
- package/plugins/filters/menu/focusController.mjs +29 -10
- package/plugins/nestedRows/nestedRows.js +3 -0
- package/plugins/nestedRows/nestedRows.mjs +3 -0
- package/renderers/autocompleteRenderer/autocompleteRenderer.js +0 -3
- package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +1 -4
- package/renderers/checkboxRenderer/checkboxRenderer.js +0 -1
- package/renderers/checkboxRenderer/checkboxRenderer.mjs +0 -1
- package/renderers/dateRenderer/dateRenderer.js +0 -5
- package/renderers/dateRenderer/dateRenderer.mjs +0 -5
- package/renderers/handsontableRenderer/handsontableRenderer.js +0 -5
- package/renderers/handsontableRenderer/handsontableRenderer.mjs +0 -5
- package/renderers/selectRenderer/selectRenderer.js +0 -5
- package/renderers/selectRenderer/selectRenderer.mjs +0 -5
- package/selection/highlight/types/focus.js +2 -6
- package/selection/highlight/types/focus.mjs +2 -6
- package/selection/selection.js +0 -1
- package/selection/selection.mjs +0 -1
- package/tableView.js +31 -2
- package/tableView.mjs +31 -2
|
@@ -249,8 +249,8 @@ class Overlay {
|
|
|
249
249
|
rootDocument,
|
|
250
250
|
rootWindow
|
|
251
251
|
} = this.domBindings;
|
|
252
|
-
const clone = rootDocument.createElement('
|
|
253
|
-
const clonedTable = rootDocument.createElement('
|
|
252
|
+
const clone = rootDocument.createElement('div');
|
|
253
|
+
const clonedTable = rootDocument.createElement('table');
|
|
254
254
|
const tableParent = wtTable.wtRootElement.parentNode;
|
|
255
255
|
clone.className = `${_constants.CLONE_CLASS_NAMES.get(this.type)} handsontable`;
|
|
256
256
|
clone.setAttribute('dir', this.isRtl() ? 'rtl' : 'ltr');
|
|
@@ -245,8 +245,8 @@ export class Overlay {
|
|
|
245
245
|
rootDocument,
|
|
246
246
|
rootWindow
|
|
247
247
|
} = this.domBindings;
|
|
248
|
-
const clone = rootDocument.createElement('
|
|
249
|
-
const clonedTable = rootDocument.createElement('
|
|
248
|
+
const clone = rootDocument.createElement('div');
|
|
249
|
+
const clonedTable = rootDocument.createElement('table');
|
|
250
250
|
const tableParent = wtTable.wtRootElement.parentNode;
|
|
251
251
|
clone.className = `${CLONE_CLASS_NAMES.get(this.type)} handsontable`;
|
|
252
252
|
clone.setAttribute('dir', this.isRtl() ? 'rtl' : 'ltr');
|
|
@@ -71,7 +71,7 @@ class ColumnHeadersRenderer extends _base.default {
|
|
|
71
71
|
columnHeadersCount
|
|
72
72
|
} = this.table;
|
|
73
73
|
if (this.table.isAriaEnabled()) {
|
|
74
|
-
(0, _element.setAttribute)(this.rootNode, [(0, _a11y.
|
|
74
|
+
(0, _element.setAttribute)(this.rootNode, [(0, _a11y.A11Y_ROWGROUP)()]);
|
|
75
75
|
}
|
|
76
76
|
for (let rowHeaderIndex = 0; rowHeaderIndex < columnHeadersCount; rowHeaderIndex += 1) {
|
|
77
77
|
const {
|
|
@@ -93,7 +93,7 @@ class ColumnHeadersRenderer extends _base.default {
|
|
|
93
93
|
// Remove all accessibility-related attributes for the header to start fresh.
|
|
94
94
|
(0, _element.removeAttribute)(TH, [new RegExp('aria-(.*)'), new RegExp('role')]);
|
|
95
95
|
if (this.table.isAriaEnabled()) {
|
|
96
|
-
(0, _element.setAttribute)(TH, [(0, _a11y.A11Y_COLINDEX)(renderedColumnIndex + 1 + this.table.rowHeadersCount), (0, _a11y.A11Y_TABINDEX)(-1),
|
|
96
|
+
(0, _element.setAttribute)(TH, [(0, _a11y.A11Y_COLINDEX)(renderedColumnIndex + 1 + this.table.rowHeadersCount), (0, _a11y.A11Y_TABINDEX)(-1), (0, _a11y.A11Y_COLUMNHEADER)(), ...(renderedColumnIndex >= 0 ? [(0, _a11y.A11Y_SCOPE_COL)()] : [])]);
|
|
97
97
|
}
|
|
98
98
|
columnHeaderFunctions[rowHeaderIndex](sourceColumnIndex, TH, rowHeaderIndex);
|
|
99
99
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { empty, setAttribute, removeAttribute } from "./../../../../helpers/dom/element.mjs";
|
|
2
2
|
import BaseRenderer from "./_base.mjs";
|
|
3
|
-
import { A11Y_COLINDEX, A11Y_COLUMNHEADER,
|
|
3
|
+
import { A11Y_COLINDEX, A11Y_COLUMNHEADER, A11Y_ROW, A11Y_ROWGROUP, A11Y_ROWINDEX, A11Y_SCOPE_COL, A11Y_TABINDEX } from "../../../../helpers/a11y.mjs";
|
|
4
4
|
/**
|
|
5
5
|
* Column headers renderer responsible for managing (inserting, tracking, rendering) TR and TH elements.
|
|
6
6
|
*
|
|
@@ -67,7 +67,7 @@ export default class ColumnHeadersRenderer extends BaseRenderer {
|
|
|
67
67
|
columnHeadersCount
|
|
68
68
|
} = this.table;
|
|
69
69
|
if (this.table.isAriaEnabled()) {
|
|
70
|
-
setAttribute(this.rootNode, [
|
|
70
|
+
setAttribute(this.rootNode, [A11Y_ROWGROUP()]);
|
|
71
71
|
}
|
|
72
72
|
for (let rowHeaderIndex = 0; rowHeaderIndex < columnHeadersCount; rowHeaderIndex += 1) {
|
|
73
73
|
const {
|
|
@@ -89,7 +89,7 @@ export default class ColumnHeadersRenderer extends BaseRenderer {
|
|
|
89
89
|
// Remove all accessibility-related attributes for the header to start fresh.
|
|
90
90
|
removeAttribute(TH, [new RegExp('aria-(.*)'), new RegExp('role')]);
|
|
91
91
|
if (this.table.isAriaEnabled()) {
|
|
92
|
-
setAttribute(TH, [A11Y_COLINDEX(renderedColumnIndex + 1 + this.table.rowHeadersCount), A11Y_TABINDEX(-1), ...(renderedColumnIndex
|
|
92
|
+
setAttribute(TH, [A11Y_COLINDEX(renderedColumnIndex + 1 + this.table.rowHeadersCount), A11Y_TABINDEX(-1), A11Y_COLUMNHEADER(), ...(renderedColumnIndex >= 0 ? [A11Y_SCOPE_COL()] : [])]);
|
|
93
93
|
}
|
|
94
94
|
columnHeaderFunctions[rowHeaderIndex](sourceColumnIndex, TH, rowHeaderIndex);
|
|
95
95
|
}
|
|
@@ -61,7 +61,7 @@ class RowsRenderer extends _base.default {
|
|
|
61
61
|
the number of rendered rows by specifying the table height and/or turning off the "renderAllRows" option.`);
|
|
62
62
|
}
|
|
63
63
|
if (this.table.isAriaEnabled()) {
|
|
64
|
-
(0, _element.setAttribute)(this.rootNode, [(0, _a11y.
|
|
64
|
+
(0, _element.setAttribute)(this.rootNode, [(0, _a11y.A11Y_ROWGROUP)()]);
|
|
65
65
|
}
|
|
66
66
|
this.orderView.setSize(rowsToRender).setOffset(this.table.renderedRowToSource(0)).start();
|
|
67
67
|
for (let visibleRowIndex = 0; visibleRowIndex < rowsToRender; visibleRowIndex++) {
|
|
@@ -7,7 +7,7 @@ import { toSingleLine } from "./../../../../helpers/templateLiteralTag.mjs";
|
|
|
7
7
|
import { OrderView } from "./../utils/orderView/index.mjs";
|
|
8
8
|
import BaseRenderer from "./_base.mjs";
|
|
9
9
|
import { setAttribute } from "../../../../helpers/dom/element.mjs";
|
|
10
|
-
import {
|
|
10
|
+
import { A11Y_ROW, A11Y_ROWGROUP, A11Y_ROWINDEX } from "../../../../helpers/a11y.mjs";
|
|
11
11
|
let performanceWarningAppeared = false;
|
|
12
12
|
|
|
13
13
|
/**
|
|
@@ -57,7 +57,7 @@ export default class RowsRenderer extends BaseRenderer {
|
|
|
57
57
|
the number of rendered rows by specifying the table height and/or turning off the "renderAllRows" option.`);
|
|
58
58
|
}
|
|
59
59
|
if (this.table.isAriaEnabled()) {
|
|
60
|
-
setAttribute(this.rootNode, [
|
|
60
|
+
setAttribute(this.rootNode, [A11Y_ROWGROUP()]);
|
|
61
61
|
}
|
|
62
62
|
this.orderView.setSize(rowsToRender).setOffset(this.table.renderedRowToSource(0)).start();
|
|
63
63
|
for (let visibleRowIndex = 0; visibleRowIndex < rowsToRender; visibleRowIndex++) {
|
|
@@ -190,12 +190,12 @@ class SelectionManager {
|
|
|
190
190
|
}
|
|
191
191
|
const selections = Array.from(_classPrivateFieldGet(this, _selections));
|
|
192
192
|
const classNamesMap = new Map();
|
|
193
|
-
const
|
|
193
|
+
const headerAttributesMap = new Map();
|
|
194
194
|
for (let i = 0; i < selections.length; i++) {
|
|
195
195
|
const selection = selections[i];
|
|
196
196
|
const {
|
|
197
197
|
className,
|
|
198
|
-
|
|
198
|
+
headerAttributes,
|
|
199
199
|
createLayers,
|
|
200
200
|
selectionType
|
|
201
201
|
} = selection.settings;
|
|
@@ -222,12 +222,12 @@ class SelectionManager {
|
|
|
222
222
|
} else {
|
|
223
223
|
classNamesMap.set(element, new Map([[className, 1]]));
|
|
224
224
|
}
|
|
225
|
-
if (
|
|
226
|
-
if (!
|
|
227
|
-
|
|
225
|
+
if (headerAttributes) {
|
|
226
|
+
if (!headerAttributesMap.has(element)) {
|
|
227
|
+
headerAttributesMap.set(element, []);
|
|
228
228
|
}
|
|
229
229
|
if (element.nodeName === 'TH') {
|
|
230
|
-
|
|
230
|
+
headerAttributesMap.get(element).push(...headerAttributes);
|
|
231
231
|
}
|
|
232
232
|
}
|
|
233
233
|
});
|
|
@@ -255,8 +255,8 @@ class SelectionManager {
|
|
|
255
255
|
});
|
|
256
256
|
|
|
257
257
|
// Set the attributes for the headers if they're focused.
|
|
258
|
-
Array.from(
|
|
259
|
-
(0, _element.setAttribute)(element, [...
|
|
258
|
+
Array.from(headerAttributesMap.keys()).forEach(element => {
|
|
259
|
+
(0, _element.setAttribute)(element, [...headerAttributesMap.get(element)]);
|
|
260
260
|
});
|
|
261
261
|
}
|
|
262
262
|
}
|
|
@@ -186,12 +186,12 @@ export class SelectionManager {
|
|
|
186
186
|
}
|
|
187
187
|
const selections = Array.from(_classPrivateFieldGet(this, _selections));
|
|
188
188
|
const classNamesMap = new Map();
|
|
189
|
-
const
|
|
189
|
+
const headerAttributesMap = new Map();
|
|
190
190
|
for (let i = 0; i < selections.length; i++) {
|
|
191
191
|
const selection = selections[i];
|
|
192
192
|
const {
|
|
193
193
|
className,
|
|
194
|
-
|
|
194
|
+
headerAttributes,
|
|
195
195
|
createLayers,
|
|
196
196
|
selectionType
|
|
197
197
|
} = selection.settings;
|
|
@@ -218,12 +218,12 @@ export class SelectionManager {
|
|
|
218
218
|
} else {
|
|
219
219
|
classNamesMap.set(element, new Map([[className, 1]]));
|
|
220
220
|
}
|
|
221
|
-
if (
|
|
222
|
-
if (!
|
|
223
|
-
|
|
221
|
+
if (headerAttributes) {
|
|
222
|
+
if (!headerAttributesMap.has(element)) {
|
|
223
|
+
headerAttributesMap.set(element, []);
|
|
224
224
|
}
|
|
225
225
|
if (element.nodeName === 'TH') {
|
|
226
|
-
|
|
226
|
+
headerAttributesMap.get(element).push(...headerAttributes);
|
|
227
227
|
}
|
|
228
228
|
}
|
|
229
229
|
});
|
|
@@ -251,8 +251,8 @@ export class SelectionManager {
|
|
|
251
251
|
});
|
|
252
252
|
|
|
253
253
|
// Set the attributes for the headers if they're focused.
|
|
254
|
-
Array.from(
|
|
255
|
-
setAttribute(element, [...
|
|
254
|
+
Array.from(headerAttributesMap.keys()).forEach(element => {
|
|
255
|
+
setAttribute(element, [...headerAttributesMap.get(element)]);
|
|
256
256
|
});
|
|
257
257
|
}
|
|
258
258
|
}
|
package/base.js
CHANGED
|
@@ -43,8 +43,8 @@ Handsontable.hooks = _pluginHooks.default.getSingleton();
|
|
|
43
43
|
Handsontable.CellCoords = _src.CellCoords;
|
|
44
44
|
Handsontable.CellRange = _src.CellRange;
|
|
45
45
|
Handsontable.packageName = 'handsontable';
|
|
46
|
-
Handsontable.buildDate = "
|
|
47
|
-
Handsontable.version = "0.0.0-next-
|
|
46
|
+
Handsontable.buildDate = "27/11/2023 10:22:28";
|
|
47
|
+
Handsontable.version = "0.0.0-next-44acfea-20231127";
|
|
48
48
|
Handsontable.languages = {
|
|
49
49
|
dictionaryKeys: _registry.dictionaryKeys,
|
|
50
50
|
getLanguageDictionary: _registry.getLanguageDictionary,
|
package/base.mjs
CHANGED
|
@@ -35,8 +35,8 @@ Handsontable.hooks = Hooks.getSingleton();
|
|
|
35
35
|
Handsontable.CellCoords = CellCoords;
|
|
36
36
|
Handsontable.CellRange = CellRange;
|
|
37
37
|
Handsontable.packageName = 'handsontable';
|
|
38
|
-
Handsontable.buildDate = "
|
|
39
|
-
Handsontable.version = "0.0.0-next-
|
|
38
|
+
Handsontable.buildDate = "27/11/2023 10:22:34";
|
|
39
|
+
Handsontable.version = "0.0.0-next-44acfea-20231127";
|
|
40
40
|
Handsontable.languages = {
|
|
41
41
|
dictionaryKeys,
|
|
42
42
|
getLanguageDictionary,
|
|
@@ -57,7 +57,7 @@ function createInputElement(hot) {
|
|
|
57
57
|
input.type = 'text';
|
|
58
58
|
input.classList.add('htFocusCatcher');
|
|
59
59
|
if (hot.getSettings().ariaTags) {
|
|
60
|
-
(0, _element.setAttribute)(input, [(0, _a11y.A11Y_PRESENTATION)()]);
|
|
60
|
+
(0, _element.setAttribute)(input, [(0, _a11y.A11Y_PRESENTATION)(), (0, _a11y.A11Y_HIDDEN)()]);
|
|
61
61
|
}
|
|
62
62
|
return input;
|
|
63
63
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { setAttribute } from "../../helpers/dom/element.mjs";
|
|
2
|
-
import { A11Y_PRESENTATION } from "../../helpers/a11y.mjs";
|
|
2
|
+
import { A11Y_PRESENTATION, A11Y_HIDDEN } from "../../helpers/a11y.mjs";
|
|
3
3
|
/**
|
|
4
4
|
* Installs a focus detector module. The module appends two input elements into the DOM side by side.
|
|
5
5
|
* When the first input is focused, then it means that a user entered to the component using the TAB key
|
|
@@ -53,7 +53,7 @@ function createInputElement(hot) {
|
|
|
53
53
|
input.type = 'text';
|
|
54
54
|
input.classList.add('htFocusCatcher');
|
|
55
55
|
if (hot.getSettings().ariaTags) {
|
|
56
|
-
setAttribute(input, [A11Y_PRESENTATION()]);
|
|
56
|
+
setAttribute(input, [A11Y_PRESENTATION(), A11Y_HIDDEN()]);
|
|
57
57
|
}
|
|
58
58
|
return input;
|
|
59
59
|
}
|
package/dataMap/replaceData.js
CHANGED
|
@@ -114,6 +114,8 @@ function replaceData(data, setDataMapFunction, callbackFunction, config) {
|
|
|
114
114
|
hotInstance.render();
|
|
115
115
|
}
|
|
116
116
|
if (hotInstance.getSettings().ariaTags) {
|
|
117
|
-
(0, _element.setAttribute)(hotInstance.rootElement, [(0, _a11y.A11Y_ROWCOUNT)(
|
|
117
|
+
(0, _element.setAttribute)(hotInstance.rootElement, [(0, _a11y.A11Y_ROWCOUNT)(-1),
|
|
118
|
+
// If run after initialization, add the number of row headers.
|
|
119
|
+
(0, _a11y.A11Y_COLCOUNT)(hotInstance.countCols() + (hotInstance.view ? hotInstance.countRowHeaders() : 0))]);
|
|
118
120
|
}
|
|
119
121
|
}
|
package/dataMap/replaceData.mjs
CHANGED
|
@@ -109,7 +109,9 @@ function replaceData(data, setDataMapFunction, callbackFunction, config) {
|
|
|
109
109
|
hotInstance.render();
|
|
110
110
|
}
|
|
111
111
|
if (hotInstance.getSettings().ariaTags) {
|
|
112
|
-
setAttribute(hotInstance.rootElement, [A11Y_ROWCOUNT(
|
|
112
|
+
setAttribute(hotInstance.rootElement, [A11Y_ROWCOUNT(-1),
|
|
113
|
+
// If run after initialization, add the number of row headers.
|
|
114
|
+
A11Y_COLCOUNT(hotInstance.countCols() + (hotInstance.view ? hotInstance.countRowHeaders() : 0))]);
|
|
113
115
|
}
|
|
114
116
|
}
|
|
115
117
|
export { replaceData };
|
package/dist/handsontable.css
CHANGED
|
@@ -25,8 +25,8 @@
|
|
|
25
25
|
* INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING FROM
|
|
26
26
|
* USE OR INABILITY TO USE THIS SOFTWARE.
|
|
27
27
|
*
|
|
28
|
-
* Version: 0.0.0-next-
|
|
29
|
-
* Release date: 31/08/2023 (built at
|
|
28
|
+
* Version: 0.0.0-next-44acfea-20231127
|
|
29
|
+
* Release date: 31/08/2023 (built at 27/11/2023 10:22:39)
|
|
30
30
|
*/
|
|
31
31
|
/**
|
|
32
32
|
* Fix for bootstrap styles
|
|
@@ -25,8 +25,8 @@
|
|
|
25
25
|
* INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING FROM
|
|
26
26
|
* USE OR INABILITY TO USE THIS SOFTWARE.
|
|
27
27
|
*
|
|
28
|
-
* Version: 0.0.0-next-
|
|
29
|
-
* Release date: 31/08/2023 (built at
|
|
28
|
+
* Version: 0.0.0-next-44acfea-20231127
|
|
29
|
+
* Release date: 31/08/2023 (built at 27/11/2023 10:22:39)
|
|
30
30
|
*/
|
|
31
31
|
/**
|
|
32
32
|
* Fix for bootstrap styles
|