handsontable 0.0.0-next-a417c2b-20231124 → 0.0.0-next-44acfea-20231127
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of handsontable might be problematic. Click here for more details.
- 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 +1 -1
- package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +2 -2
- package/3rdparty/walkontable/src/renderer/rows.js +1 -1
- package/3rdparty/walkontable/src/renderer/rows.mjs +2 -2
- package/base.js +2 -2
- package/base.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 +49 -45
- package/dist/handsontable.full.min.css +2 -2
- package/dist/handsontable.full.min.js +6 -6
- package/dist/handsontable.js +49 -45
- 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/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/tableView.js +31 -2
- package/tableView.mjs +31 -2
@@ -7,7 +7,6 @@ var _pikaday = _interopRequireDefault(require("pikaday"));
|
|
7
7
|
var _textEditor = require("../textEditor");
|
8
8
|
var _eventManager = _interopRequireDefault(require("../../eventManager"));
|
9
9
|
var _element = require("../../helpers/dom/element");
|
10
|
-
var _a11y = require("../../helpers/a11y");
|
11
10
|
var _object = require("../../helpers/object");
|
12
11
|
var _unicode = require("../../helpers/unicode");
|
13
12
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
@@ -134,9 +133,6 @@ class DateEditor extends _textEditor.TextEditor {
|
|
134
133
|
const editorContext = shortcutManager.getContext('editor');
|
135
134
|
super.open();
|
136
135
|
this.showDatepicker(event);
|
137
|
-
if (this.hot.getSettings().ariaTags) {
|
138
|
-
(0, _element.setAttribute)(this.TD, [(0, _a11y.A11Y_EXPANDED)('true')]);
|
139
|
-
}
|
140
136
|
editorContext.addShortcut({
|
141
137
|
keys: [['Enter']],
|
142
138
|
callback: keyboardEvent => {
|
@@ -162,9 +158,6 @@ class DateEditor extends _textEditor.TextEditor {
|
|
162
158
|
this.hot._registerTimeout(() => {
|
163
159
|
this.hot._refreshBorders();
|
164
160
|
});
|
165
|
-
if (this.TD && this.hot.getSettings().ariaTags) {
|
166
|
-
(0, _element.setAttribute)(this.TD, [(0, _a11y.A11Y_EXPANDED)('false')]);
|
167
|
-
}
|
168
161
|
const shortcutManager = this.hot.getShortcutManager();
|
169
162
|
const editorContext = shortcutManager.getContext('editor');
|
170
163
|
editorContext.removeShortcutsByGroup(SHORTCUTS_GROUP_EDITOR);
|
@@ -6,8 +6,7 @@ import moment from 'moment';
|
|
6
6
|
import Pikaday from 'pikaday';
|
7
7
|
import { TextEditor } from "../textEditor/index.mjs";
|
8
8
|
import EventManager from "../../eventManager.mjs";
|
9
|
-
import { addClass, hasClass, outerHeight, outerWidth
|
10
|
-
import { A11Y_EXPANDED } from "../../helpers/a11y.mjs";
|
9
|
+
import { addClass, hasClass, outerHeight, outerWidth } from "../../helpers/dom/element.mjs";
|
11
10
|
import { deepExtend } from "../../helpers/object.mjs";
|
12
11
|
import { isFunctionKey } from "../../helpers/unicode.mjs";
|
13
12
|
export const EDITOR_TYPE = 'date';
|
@@ -129,9 +128,6 @@ export class DateEditor extends TextEditor {
|
|
129
128
|
const editorContext = shortcutManager.getContext('editor');
|
130
129
|
super.open();
|
131
130
|
this.showDatepicker(event);
|
132
|
-
if (this.hot.getSettings().ariaTags) {
|
133
|
-
setAttribute(this.TD, [A11Y_EXPANDED('true')]);
|
134
|
-
}
|
135
131
|
editorContext.addShortcut({
|
136
132
|
keys: [['Enter']],
|
137
133
|
callback: keyboardEvent => {
|
@@ -157,9 +153,6 @@ export class DateEditor extends TextEditor {
|
|
157
153
|
this.hot._registerTimeout(() => {
|
158
154
|
this.hot._refreshBorders();
|
159
155
|
});
|
160
|
-
if (this.TD && this.hot.getSettings().ariaTags) {
|
161
|
-
setAttribute(this.TD, [A11Y_EXPANDED('false')]);
|
162
|
-
}
|
163
156
|
const shortcutManager = this.hot.getShortcutManager();
|
164
157
|
const editorContext = shortcutManager.getContext('editor');
|
165
158
|
editorContext.removeShortcutsByGroup(SHORTCUTS_GROUP_EDITOR);
|
@@ -6,7 +6,6 @@ var _element = require("../../helpers/dom/element");
|
|
6
6
|
var _event = require("../../helpers/dom/event");
|
7
7
|
var _object = require("../../helpers/object");
|
8
8
|
var _editorManager = require("../../editorManager");
|
9
|
-
var _a11y = require("../../helpers/a11y");
|
10
9
|
const SHORTCUTS_GROUP = 'handsontableEditor';
|
11
10
|
const EDITOR_TYPE = 'handsontable';
|
12
11
|
|
@@ -43,9 +42,6 @@ class HandsontableEditor extends _textEditor.TextEditor {
|
|
43
42
|
}
|
44
43
|
(0, _element.setCaretPosition)(this.TEXTAREA, 0, this.TEXTAREA.value.length);
|
45
44
|
this.refreshDimensions();
|
46
|
-
if (this.hot.getSettings().ariaTags) {
|
47
|
-
(0, _element.setAttribute)(this.TD, [(0, _a11y.A11Y_EXPANDED)('true')]);
|
48
|
-
}
|
49
45
|
}
|
50
46
|
|
51
47
|
/**
|
@@ -57,9 +53,6 @@ class HandsontableEditor extends _textEditor.TextEditor {
|
|
57
53
|
}
|
58
54
|
this.removeHooksByKey('beforeKeyDown');
|
59
55
|
super.close();
|
60
|
-
if (this.TD && this.hot.getSettings().ariaTags) {
|
61
|
-
(0, _element.setAttribute)(this.TD, [(0, _a11y.A11Y_EXPANDED)('false')]);
|
62
|
-
}
|
63
56
|
}
|
64
57
|
|
65
58
|
/**
|
@@ -1,9 +1,8 @@
|
|
1
1
|
import { TextEditor } from "../textEditor/index.mjs";
|
2
|
-
import {
|
2
|
+
import { setCaretPosition } from "../../helpers/dom/element.mjs";
|
3
3
|
import { stopImmediatePropagation } from "../../helpers/dom/event.mjs";
|
4
4
|
import { extend } from "../../helpers/object.mjs";
|
5
5
|
import { SHORTCUTS_GROUP_NAVIGATION } from "../../editorManager.mjs";
|
6
|
-
import { A11Y_EXPANDED } from "../../helpers/a11y.mjs";
|
7
6
|
const SHORTCUTS_GROUP = 'handsontableEditor';
|
8
7
|
export const EDITOR_TYPE = 'handsontable';
|
9
8
|
|
@@ -39,9 +38,6 @@ export class HandsontableEditor extends TextEditor {
|
|
39
38
|
}
|
40
39
|
setCaretPosition(this.TEXTAREA, 0, this.TEXTAREA.value.length);
|
41
40
|
this.refreshDimensions();
|
42
|
-
if (this.hot.getSettings().ariaTags) {
|
43
|
-
setAttribute(this.TD, [A11Y_EXPANDED('true')]);
|
44
|
-
}
|
45
41
|
}
|
46
42
|
|
47
43
|
/**
|
@@ -53,9 +49,6 @@ export class HandsontableEditor extends TextEditor {
|
|
53
49
|
}
|
54
50
|
this.removeHooksByKey('beforeKeyDown');
|
55
51
|
super.close();
|
56
|
-
if (this.TD && this.hot.getSettings().ariaTags) {
|
57
|
-
setAttribute(this.TD, [A11Y_EXPANDED('false')]);
|
58
|
-
}
|
59
52
|
}
|
60
53
|
|
61
54
|
/**
|
@@ -3,6 +3,7 @@
|
|
3
3
|
exports.__esModule = true;
|
4
4
|
var _textEditor = require("../textEditor");
|
5
5
|
var _element = require("../../helpers/dom/element");
|
6
|
+
var _a11y = require("../../helpers/a11y");
|
6
7
|
const EDITOR_TYPE = 'password';
|
7
8
|
|
8
9
|
/**
|
@@ -23,6 +24,9 @@ class PasswordEditor extends _textEditor.TextEditor {
|
|
23
24
|
this.textareaStyle = this.TEXTAREA.style;
|
24
25
|
this.textareaStyle.width = 0;
|
25
26
|
this.textareaStyle.height = 0;
|
27
|
+
if (this.hot.getSettings().ariaTags) {
|
28
|
+
(0, _element.setAttribute)(this.TEXTAREA, [(0, _a11y.A11Y_HIDDEN)()]);
|
29
|
+
}
|
26
30
|
(0, _element.empty)(this.TEXTAREA_PARENT);
|
27
31
|
this.TEXTAREA_PARENT.appendChild(this.TEXTAREA);
|
28
32
|
}
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import { TextEditor } from "../textEditor/index.mjs";
|
2
|
-
import { empty } from "../../helpers/dom/element.mjs";
|
2
|
+
import { empty, setAttribute } from "../../helpers/dom/element.mjs";
|
3
|
+
import { A11Y_HIDDEN } from "../../helpers/a11y.mjs";
|
3
4
|
export const EDITOR_TYPE = 'password';
|
4
5
|
|
5
6
|
/**
|
@@ -19,6 +20,9 @@ export class PasswordEditor extends TextEditor {
|
|
19
20
|
this.textareaStyle = this.TEXTAREA.style;
|
20
21
|
this.textareaStyle.width = 0;
|
21
22
|
this.textareaStyle.height = 0;
|
23
|
+
if (this.hot.getSettings().ariaTags) {
|
24
|
+
setAttribute(this.TEXTAREA, [A11Y_HIDDEN()]);
|
25
|
+
}
|
22
26
|
empty(this.TEXTAREA_PARENT);
|
23
27
|
this.TEXTAREA_PARENT.appendChild(this.TEXTAREA);
|
24
28
|
}
|
package/helpers/a11y.js
CHANGED
@@ -11,6 +11,8 @@ const A11Y_GRIDCELL = () => ['role', 'gridcell'];
|
|
11
11
|
exports.A11Y_GRIDCELL = A11Y_GRIDCELL;
|
12
12
|
const A11Y_ROWHEADER = () => ['role', 'rowheader'];
|
13
13
|
exports.A11Y_ROWHEADER = A11Y_ROWHEADER;
|
14
|
+
const A11Y_ROWGROUP = () => ['role', 'rowgroup'];
|
15
|
+
exports.A11Y_ROWGROUP = A11Y_ROWGROUP;
|
14
16
|
const A11Y_COLUMNHEADER = () => ['role', 'columnheader'];
|
15
17
|
exports.A11Y_COLUMNHEADER = A11Y_COLUMNHEADER;
|
16
18
|
const A11Y_ROW = () => ['role', 'row'];
|
package/helpers/a11y.mjs
CHANGED
@@ -3,6 +3,7 @@ export const A11Y_TREEGRID = () => ['role', 'treegrid'];
|
|
3
3
|
export const A11Y_PRESENTATION = () => ['role', 'presentation'];
|
4
4
|
export const A11Y_GRIDCELL = () => ['role', 'gridcell'];
|
5
5
|
export const A11Y_ROWHEADER = () => ['role', 'rowheader'];
|
6
|
+
export const A11Y_ROWGROUP = () => ['role', 'rowgroup'];
|
6
7
|
export const A11Y_COLUMNHEADER = () => ['role', 'columnheader'];
|
7
8
|
export const A11Y_ROW = () => ['role', 'row'];
|
8
9
|
export const A11Y_MENU = () => ['role', 'menu'];
|
package/helpers/mixed.js
CHANGED
@@ -134,7 +134,7 @@ const domMessages = {
|
|
134
134
|
function _injectProductInfo(key, element) {
|
135
135
|
const hasValidType = !isEmpty(key);
|
136
136
|
const isNonCommercial = typeof key === 'string' && key.toLowerCase() === 'non-commercial-and-evaluation';
|
137
|
-
const hotVersion = "0.0.0-next-
|
137
|
+
const hotVersion = "0.0.0-next-44acfea-20231127";
|
138
138
|
let keyValidityDate;
|
139
139
|
let consoleMessageState = 'invalid';
|
140
140
|
let domMessageState = 'invalid';
|
package/helpers/mixed.mjs
CHANGED
@@ -124,7 +124,7 @@ const domMessages = {
|
|
124
124
|
export function _injectProductInfo(key, element) {
|
125
125
|
const hasValidType = !isEmpty(key);
|
126
126
|
const isNonCommercial = typeof key === 'string' && key.toLowerCase() === 'non-commercial-and-evaluation';
|
127
|
-
const hotVersion = "0.0.0-next-
|
127
|
+
const hotVersion = "0.0.0-next-44acfea-20231127";
|
128
128
|
let keyValidityDate;
|
129
129
|
let consoleMessageState = 'invalid';
|
130
130
|
let domMessageState = 'invalid';
|
package/package.json
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
"url": "https://github.com/handsontable/handsontable/issues"
|
11
11
|
},
|
12
12
|
"author": "Handsoncode <hello@handsontable.com>",
|
13
|
-
"version": "0.0.0-next-
|
13
|
+
"version": "0.0.0-next-44acfea-20231127",
|
14
14
|
"main": "index",
|
15
15
|
"module": "index.mjs",
|
16
16
|
"jsnext:main": "index.mjs",
|
@@ -45,9 +45,6 @@ function autocompleteRenderer(hotInstance, TD, row, col, prop, value, cellProper
|
|
45
45
|
|
46
46
|
TD.insertBefore(ARROW, TD.firstChild);
|
47
47
|
(0, _element.addClass)(TD, 'htAutocomplete');
|
48
|
-
if (isAriaEnabled) {
|
49
|
-
TD.setAttribute(...(0, _a11y.A11Y_HASPOPUP)('listbox'));
|
50
|
-
}
|
51
48
|
if (!hotInstance.acArrowListener) {
|
52
49
|
const eventManager = new _eventManager.default(hotInstance);
|
53
50
|
|
@@ -2,7 +2,7 @@ import { htmlRenderer } from "../htmlRenderer/index.mjs";
|
|
2
2
|
import { textRenderer } from "../textRenderer/index.mjs";
|
3
3
|
import EventManager from "../../eventManager.mjs";
|
4
4
|
import { addClass, hasClass } from "../../helpers/dom/element.mjs";
|
5
|
-
import {
|
5
|
+
import { A11Y_HIDDEN } from "../../helpers/a11y.mjs";
|
6
6
|
export const RENDERER_TYPE = 'autocomplete';
|
7
7
|
|
8
8
|
/**
|
@@ -39,9 +39,6 @@ export function autocompleteRenderer(hotInstance, TD, row, col, prop, value, cel
|
|
39
39
|
|
40
40
|
TD.insertBefore(ARROW, TD.firstChild);
|
41
41
|
addClass(TD, 'htAutocomplete');
|
42
|
-
if (isAriaEnabled) {
|
43
|
-
TD.setAttribute(...A11Y_HASPOPUP('listbox'));
|
44
|
-
}
|
45
42
|
if (!hotInstance.acArrowListener) {
|
46
43
|
const eventManager = new EventManager(hotInstance);
|
47
44
|
|
@@ -295,7 +295,6 @@ function createInput(rootDocument) {
|
|
295
295
|
const input = rootDocument.createElement('input');
|
296
296
|
input.className = 'htCheckboxRendererInput';
|
297
297
|
input.type = 'checkbox';
|
298
|
-
input.setAttribute('autocomplete', 'off');
|
299
298
|
input.setAttribute('tabindex', '-1');
|
300
299
|
return input.cloneNode(false);
|
301
300
|
}
|
@@ -289,7 +289,6 @@ function createInput(rootDocument) {
|
|
289
289
|
const input = rootDocument.createElement('input');
|
290
290
|
input.className = 'htCheckboxRendererInput';
|
291
291
|
input.type = 'checkbox';
|
292
|
-
input.setAttribute('autocomplete', 'off');
|
293
292
|
input.setAttribute('tabindex', '-1');
|
294
293
|
return input.cloneNode(false);
|
295
294
|
}
|
@@ -3,8 +3,6 @@
|
|
3
3
|
exports.__esModule = true;
|
4
4
|
exports.dateRenderer = dateRenderer;
|
5
5
|
var _autocompleteRenderer = require("../autocompleteRenderer");
|
6
|
-
var _a11y = require("../../helpers/a11y");
|
7
|
-
var _element = require("../../helpers/dom/element");
|
8
6
|
const RENDERER_TYPE = 'date';
|
9
7
|
|
10
8
|
/**
|
@@ -22,8 +20,5 @@ const RENDERER_TYPE = 'date';
|
|
22
20
|
exports.RENDERER_TYPE = RENDERER_TYPE;
|
23
21
|
function dateRenderer(hotInstance, TD, row, col, prop, value, cellProperties) {
|
24
22
|
_autocompleteRenderer.autocompleteRenderer.apply(this, [hotInstance, TD, row, col, prop, value, cellProperties]);
|
25
|
-
if (hotInstance.getSettings().ariaTags) {
|
26
|
-
(0, _element.setAttribute)(TD, [(0, _a11y.A11Y_HASPOPUP)('dialog'), (0, _a11y.A11Y_EXPANDED)('false')]);
|
27
|
-
}
|
28
23
|
}
|
29
24
|
dateRenderer.RENDERER_TYPE = RENDERER_TYPE;
|
@@ -1,6 +1,4 @@
|
|
1
1
|
import { autocompleteRenderer } from "../autocompleteRenderer/index.mjs";
|
2
|
-
import { A11Y_EXPANDED, A11Y_HASPOPUP } from "../../helpers/a11y.mjs";
|
3
|
-
import { setAttribute } from "../../helpers/dom/element.mjs";
|
4
2
|
export const RENDERER_TYPE = 'date';
|
5
3
|
|
6
4
|
/**
|
@@ -17,8 +15,5 @@ export const RENDERER_TYPE = 'date';
|
|
17
15
|
*/
|
18
16
|
export function dateRenderer(hotInstance, TD, row, col, prop, value, cellProperties) {
|
19
17
|
autocompleteRenderer.apply(this, [hotInstance, TD, row, col, prop, value, cellProperties]);
|
20
|
-
if (hotInstance.getSettings().ariaTags) {
|
21
|
-
setAttribute(TD, [A11Y_HASPOPUP('dialog'), A11Y_EXPANDED('false')]);
|
22
|
-
}
|
23
18
|
}
|
24
19
|
dateRenderer.RENDERER_TYPE = RENDERER_TYPE;
|
@@ -3,8 +3,6 @@
|
|
3
3
|
exports.__esModule = true;
|
4
4
|
exports.handsontableRenderer = handsontableRenderer;
|
5
5
|
var _autocompleteRenderer = require("../autocompleteRenderer");
|
6
|
-
var _a11y = require("../../helpers/a11y");
|
7
|
-
var _element = require("../../helpers/dom/element");
|
8
6
|
const RENDERER_TYPE = 'handsontable';
|
9
7
|
|
10
8
|
/**
|
@@ -22,8 +20,5 @@ const RENDERER_TYPE = 'handsontable';
|
|
22
20
|
exports.RENDERER_TYPE = RENDERER_TYPE;
|
23
21
|
function handsontableRenderer(hotInstance, TD, row, col, prop, value, cellProperties) {
|
24
22
|
_autocompleteRenderer.autocompleteRenderer.apply(this, [hotInstance, TD, row, col, prop, value, cellProperties]);
|
25
|
-
if (hotInstance.getSettings().ariaTags) {
|
26
|
-
(0, _element.setAttribute)(TD, [(0, _a11y.A11Y_HASPOPUP)('true'), (0, _a11y.A11Y_EXPANDED)('false')]);
|
27
|
-
}
|
28
23
|
}
|
29
24
|
handsontableRenderer.RENDERER_TYPE = RENDERER_TYPE;
|
@@ -1,6 +1,4 @@
|
|
1
1
|
import { autocompleteRenderer } from "../autocompleteRenderer/index.mjs";
|
2
|
-
import { A11Y_EXPANDED, A11Y_HASPOPUP } from "../../helpers/a11y.mjs";
|
3
|
-
import { setAttribute } from "../../helpers/dom/element.mjs";
|
4
2
|
export const RENDERER_TYPE = 'handsontable';
|
5
3
|
|
6
4
|
/**
|
@@ -17,8 +15,5 @@ export const RENDERER_TYPE = 'handsontable';
|
|
17
15
|
*/
|
18
16
|
export function handsontableRenderer(hotInstance, TD, row, col, prop, value, cellProperties) {
|
19
17
|
autocompleteRenderer.apply(this, [hotInstance, TD, row, col, prop, value, cellProperties]);
|
20
|
-
if (hotInstance.getSettings().ariaTags) {
|
21
|
-
setAttribute(TD, [A11Y_HASPOPUP('true'), A11Y_EXPANDED('false')]);
|
22
|
-
}
|
23
18
|
}
|
24
19
|
handsontableRenderer.RENDERER_TYPE = RENDERER_TYPE;
|
@@ -3,8 +3,6 @@
|
|
3
3
|
exports.__esModule = true;
|
4
4
|
exports.selectRenderer = selectRenderer;
|
5
5
|
var _textRenderer = require("../textRenderer");
|
6
|
-
var _a11y = require("../../helpers/a11y");
|
7
|
-
var _element = require("../../helpers/dom/element");
|
8
6
|
const RENDERER_TYPE = 'select';
|
9
7
|
|
10
8
|
/**
|
@@ -20,8 +18,5 @@ const RENDERER_TYPE = 'select';
|
|
20
18
|
exports.RENDERER_TYPE = RENDERER_TYPE;
|
21
19
|
function selectRenderer(hotInstance, TD, row, col, prop, value, cellProperties) {
|
22
20
|
_textRenderer.textRenderer.apply(this, [hotInstance, TD, row, col, prop, value, cellProperties]);
|
23
|
-
if (hotInstance.getSettings().ariaTags) {
|
24
|
-
(0, _element.setAttribute)(TD, ...(0, _a11y.A11Y_HASPOPUP)('listbox'));
|
25
|
-
}
|
26
21
|
}
|
27
22
|
selectRenderer.RENDERER_TYPE = RENDERER_TYPE;
|
@@ -1,6 +1,4 @@
|
|
1
1
|
import { textRenderer } from "../textRenderer/index.mjs";
|
2
|
-
import { A11Y_HASPOPUP } from "../../helpers/a11y.mjs";
|
3
|
-
import { setAttribute } from "../../helpers/dom/element.mjs";
|
4
2
|
export const RENDERER_TYPE = 'select';
|
5
3
|
|
6
4
|
/**
|
@@ -15,8 +13,5 @@ export const RENDERER_TYPE = 'select';
|
|
15
13
|
*/
|
16
14
|
export function selectRenderer(hotInstance, TD, row, col, prop, value, cellProperties) {
|
17
15
|
textRenderer.apply(this, [hotInstance, TD, row, col, prop, value, cellProperties]);
|
18
|
-
if (hotInstance.getSettings().ariaTags) {
|
19
|
-
setAttribute(TD, ...A11Y_HASPOPUP('listbox'));
|
20
|
-
}
|
21
16
|
}
|
22
17
|
selectRenderer.RENDERER_TYPE = RENDERER_TYPE;
|
package/tableView.js
CHANGED
@@ -11,11 +11,13 @@ var _mouseEventHandler = require("./selection/mouseEventHandler");
|
|
11
11
|
var _rootInstance = require("./utils/rootInstance");
|
12
12
|
var _a11y = require("./helpers/a11y");
|
13
13
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
14
|
+
function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
|
14
15
|
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
15
16
|
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
16
17
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
17
18
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
18
19
|
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
20
|
+
function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
|
19
21
|
function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
|
20
22
|
function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
|
21
23
|
function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
|
@@ -32,11 +34,25 @@ var _mouseDown = /*#__PURE__*/new WeakMap();
|
|
32
34
|
var _table = /*#__PURE__*/new WeakMap();
|
33
35
|
var _lastWidth = /*#__PURE__*/new WeakMap();
|
34
36
|
var _lastHeight = /*#__PURE__*/new WeakMap();
|
37
|
+
var _getAriaColcount = /*#__PURE__*/new WeakSet();
|
38
|
+
var _updateAriaColcount = /*#__PURE__*/new WeakSet();
|
35
39
|
class TableView {
|
36
40
|
/**
|
37
41
|
* @param {Hanstontable} hotInstance Instance of {@link Handsontable}.
|
38
42
|
*/
|
39
43
|
constructor(hotInstance) {
|
44
|
+
/**
|
45
|
+
* Update the `aria-colcount` attribute by the provided value.
|
46
|
+
*
|
47
|
+
* @param {number} delta The number of columns to add or remove to the aria tag.
|
48
|
+
*/
|
49
|
+
_classPrivateMethodInitSpec(this, _updateAriaColcount);
|
50
|
+
/**
|
51
|
+
* Return the value of the `aria-colcount` attribute.
|
52
|
+
*
|
53
|
+
* @returns {number} The value of the `aria-colcount` attribute.
|
54
|
+
*/
|
55
|
+
_classPrivateMethodInitSpec(this, _getAriaColcount);
|
40
56
|
/**
|
41
57
|
* Instance of {@link Handsontable}.
|
42
58
|
*
|
@@ -273,7 +289,7 @@ class TableView {
|
|
273
289
|
}
|
274
290
|
if (this.settings.ariaTags) {
|
275
291
|
(0, _element.setAttribute)(_classPrivateFieldGet(this, _table), [(0, _a11y.A11Y_PRESENTATION)()]);
|
276
|
-
(0, _element.setAttribute)(rootElement, [(0, _a11y.A11Y_TREEGRID)(), (0, _a11y.A11Y_ROWCOUNT)(
|
292
|
+
(0, _element.setAttribute)(rootElement, [(0, _a11y.A11Y_TREEGRID)(), (0, _a11y.A11Y_ROWCOUNT)(-1), (0, _a11y.A11Y_COLCOUNT)(this.hot.countCols()), (0, _a11y.A11Y_MULTISELECTABLE)()]);
|
277
293
|
}
|
278
294
|
this.THEAD = rootDocument.createElement('THEAD');
|
279
295
|
_classPrivateFieldGet(this, _table).appendChild(this.THEAD);
|
@@ -666,6 +682,13 @@ class TableView {
|
|
666
682
|
}
|
667
683
|
this.hot.runHooks('afterGetRowHeaderRenderers', headerRenderers);
|
668
684
|
_classPrivateFieldSet(this, _rowHeadersCount, headerRenderers.length);
|
685
|
+
if (this.hot.getSettings().ariaTags) {
|
686
|
+
// Update the aria-colcount attribute.
|
687
|
+
// Only needs to be done once after initialization/data update.
|
688
|
+
if (_classPrivateMethodGet(this, _getAriaColcount, _getAriaColcount2).call(this) === this.hot.countCols()) {
|
689
|
+
_classPrivateMethodGet(this, _updateAriaColcount, _updateAriaColcount2).call(this, _classPrivateFieldGet(this, _rowHeadersCount));
|
690
|
+
}
|
691
|
+
}
|
669
692
|
return headerRenderers;
|
670
693
|
},
|
671
694
|
columnHeaders: () => {
|
@@ -1305,7 +1328,6 @@ class TableView {
|
|
1305
1328
|
getRowHeadersCount() {
|
1306
1329
|
return _classPrivateFieldGet(this, _rowHeadersCount);
|
1307
1330
|
}
|
1308
|
-
|
1309
1331
|
/**
|
1310
1332
|
* Destroys internal WalkOnTable's instance. Detaches all of the bonded listeners.
|
1311
1333
|
*
|
@@ -1316,5 +1338,12 @@ class TableView {
|
|
1316
1338
|
this.eventManager.destroy();
|
1317
1339
|
}
|
1318
1340
|
}
|
1341
|
+
function _getAriaColcount2() {
|
1342
|
+
return parseInt(this.hot.rootElement.getAttribute((0, _a11y.A11Y_COLCOUNT)()[0]), 10);
|
1343
|
+
}
|
1344
|
+
function _updateAriaColcount2(delta) {
|
1345
|
+
const colCount = _classPrivateMethodGet(this, _getAriaColcount, _getAriaColcount2).call(this) + delta;
|
1346
|
+
(0, _element.setAttribute)(this.hot.rootElement, ...(0, _a11y.A11Y_COLCOUNT)(colCount));
|
1347
|
+
}
|
1319
1348
|
var _default = TableView;
|
1320
1349
|
exports.default = _default;
|
package/tableView.mjs
CHANGED
@@ -1,10 +1,12 @@
|
|
1
1
|
import "core-js/modules/es.array.push.js";
|
2
2
|
import "core-js/modules/es.error.cause.js";
|
3
|
+
function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
|
3
4
|
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
4
5
|
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
5
6
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
6
7
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
7
8
|
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
9
|
+
function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
|
8
10
|
function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
|
9
11
|
function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
|
10
12
|
function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
|
@@ -28,11 +30,25 @@ var _mouseDown = /*#__PURE__*/new WeakMap();
|
|
28
30
|
var _table = /*#__PURE__*/new WeakMap();
|
29
31
|
var _lastWidth = /*#__PURE__*/new WeakMap();
|
30
32
|
var _lastHeight = /*#__PURE__*/new WeakMap();
|
33
|
+
var _getAriaColcount = /*#__PURE__*/new WeakSet();
|
34
|
+
var _updateAriaColcount = /*#__PURE__*/new WeakSet();
|
31
35
|
class TableView {
|
32
36
|
/**
|
33
37
|
* @param {Hanstontable} hotInstance Instance of {@link Handsontable}.
|
34
38
|
*/
|
35
39
|
constructor(hotInstance) {
|
40
|
+
/**
|
41
|
+
* Update the `aria-colcount` attribute by the provided value.
|
42
|
+
*
|
43
|
+
* @param {number} delta The number of columns to add or remove to the aria tag.
|
44
|
+
*/
|
45
|
+
_classPrivateMethodInitSpec(this, _updateAriaColcount);
|
46
|
+
/**
|
47
|
+
* Return the value of the `aria-colcount` attribute.
|
48
|
+
*
|
49
|
+
* @returns {number} The value of the `aria-colcount` attribute.
|
50
|
+
*/
|
51
|
+
_classPrivateMethodInitSpec(this, _getAriaColcount);
|
36
52
|
/**
|
37
53
|
* Instance of {@link Handsontable}.
|
38
54
|
*
|
@@ -269,7 +285,7 @@ class TableView {
|
|
269
285
|
}
|
270
286
|
if (this.settings.ariaTags) {
|
271
287
|
setAttribute(_classPrivateFieldGet(this, _table), [A11Y_PRESENTATION()]);
|
272
|
-
setAttribute(rootElement, [A11Y_TREEGRID(), A11Y_ROWCOUNT(
|
288
|
+
setAttribute(rootElement, [A11Y_TREEGRID(), A11Y_ROWCOUNT(-1), A11Y_COLCOUNT(this.hot.countCols()), A11Y_MULTISELECTABLE()]);
|
273
289
|
}
|
274
290
|
this.THEAD = rootDocument.createElement('THEAD');
|
275
291
|
_classPrivateFieldGet(this, _table).appendChild(this.THEAD);
|
@@ -662,6 +678,13 @@ class TableView {
|
|
662
678
|
}
|
663
679
|
this.hot.runHooks('afterGetRowHeaderRenderers', headerRenderers);
|
664
680
|
_classPrivateFieldSet(this, _rowHeadersCount, headerRenderers.length);
|
681
|
+
if (this.hot.getSettings().ariaTags) {
|
682
|
+
// Update the aria-colcount attribute.
|
683
|
+
// Only needs to be done once after initialization/data update.
|
684
|
+
if (_classPrivateMethodGet(this, _getAriaColcount, _getAriaColcount2).call(this) === this.hot.countCols()) {
|
685
|
+
_classPrivateMethodGet(this, _updateAriaColcount, _updateAriaColcount2).call(this, _classPrivateFieldGet(this, _rowHeadersCount));
|
686
|
+
}
|
687
|
+
}
|
665
688
|
return headerRenderers;
|
666
689
|
},
|
667
690
|
columnHeaders: () => {
|
@@ -1301,7 +1324,6 @@ class TableView {
|
|
1301
1324
|
getRowHeadersCount() {
|
1302
1325
|
return _classPrivateFieldGet(this, _rowHeadersCount);
|
1303
1326
|
}
|
1304
|
-
|
1305
1327
|
/**
|
1306
1328
|
* Destroys internal WalkOnTable's instance. Detaches all of the bonded listeners.
|
1307
1329
|
*
|
@@ -1312,4 +1334,11 @@ class TableView {
|
|
1312
1334
|
this.eventManager.destroy();
|
1313
1335
|
}
|
1314
1336
|
}
|
1337
|
+
function _getAriaColcount2() {
|
1338
|
+
return parseInt(this.hot.rootElement.getAttribute(A11Y_COLCOUNT()[0]), 10);
|
1339
|
+
}
|
1340
|
+
function _updateAriaColcount2(delta) {
|
1341
|
+
const colCount = _classPrivateMethodGet(this, _getAriaColcount, _getAriaColcount2).call(this) + delta;
|
1342
|
+
setAttribute(this.hot.rootElement, ...A11Y_COLCOUNT(colCount));
|
1343
|
+
}
|
1315
1344
|
export default TableView;
|