handsontable 14.0.0-next-dd92f79-20231124 → 14.0.0-next-88de277-20231127
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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/3rdparty/walkontable/src/selection/manager.js +20 -6
- package/3rdparty/walkontable/src/selection/manager.mjs +20 -6
- package/base.js +2 -2
- package/base.mjs +2 -2
- package/core.js +1 -1
- package/core.mjs +1 -1
- package/dataMap/replaceData.js +3 -1
- package/dataMap/replaceData.mjs +3 -1
- package/dist/handsontable.css +62 -44
- package/dist/handsontable.full.css +62 -44
- package/dist/handsontable.full.js +123 -302
- package/dist/handsontable.full.min.css +5 -5
- package/dist/handsontable.full.min.js +64 -64
- package/dist/handsontable.js +123 -302
- package/dist/handsontable.min.css +5 -5
- package/dist/handsontable.min.js +19 -19
- package/dist/languages/all.js +2 -24
- package/dist/languages/all.min.js +1 -1
- package/dist/languages/en-US.js +1 -12
- package/dist/languages/en-US.min.js +1 -1
- package/dist/languages/pl-PL.js +1 -12
- package/dist/languages/pl-PL.min.js +1 -1
- 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 -2
- package/helpers/a11y.mjs +1 -1
- package/helpers/dom/element.js +0 -29
- package/helpers/dom/element.mjs +0 -28
- package/helpers/mixed.js +2 -2
- package/helpers/mixed.mjs +2 -2
- package/i18n/constants.js +1 -14
- package/i18n/constants.mjs +1 -14
- package/i18n/languages/en-US.js +1 -12
- package/i18n/languages/en-US.mjs +1 -12
- package/i18n/languages/pl-PL.js +1 -12
- package/i18n/languages/pl-PL.mjs +1 -12
- package/languages/all.js +2 -24
- package/languages/en-US.js +1 -12
- package/languages/en-US.mjs +1 -12
- package/languages/index.js +2 -24
- package/languages/pl-PL.js +1 -12
- package/languages/pl-PL.mjs +1 -12
- package/package.json +1 -1
- package/plugins/collapsibleColumns/collapsibleColumns.js +2 -3
- package/plugins/collapsibleColumns/collapsibleColumns.mjs +3 -4
- package/plugins/columnSorting/columnSorting.js +4 -30
- package/plugins/columnSorting/columnSorting.mjs +6 -32
- package/plugins/contextMenu/menu/menuItemRenderer.js +0 -12
- package/plugins/contextMenu/menu/menuItemRenderer.mjs +2 -14
- package/plugins/dropdownMenu/dropdownMenu.js +1 -2
- package/plugins/dropdownMenu/dropdownMenu.mjs +2 -3
- package/plugins/filters/ui/input.js +3 -0
- package/plugins/filters/ui/input.mjs +3 -0
- package/plugins/hiddenColumns/hiddenColumns.js +0 -44
- package/plugins/hiddenColumns/hiddenColumns.mjs +1 -45
- package/plugins/hiddenRows/hiddenRows.js +0 -44
- package/plugins/hiddenRows/hiddenRows.mjs +1 -45
- package/plugins/multiColumnSorting/multiColumnSorting.js +0 -21
- package/plugins/multiColumnSorting/multiColumnSorting.mjs +1 -22
- package/plugins/nestedRows/nestedRows.js +1 -2
- package/plugins/nestedRows/nestedRows.mjs +1 -2
- package/plugins/nestedRows/ui/headers.js +3 -3
- package/plugins/nestedRows/ui/headers.mjs +4 -4
- 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 -0
- package/selection/highlight/types/focus.mjs +2 -0
- package/selection/selection.js +0 -1
- package/selection/selection.mjs +0 -1
- package/tableView.js +35 -2
- package/tableView.mjs +35 -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 {
|
@@ -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 {
|
@@ -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++) {
|
@@ -1,6 +1,7 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
3
|
exports.__esModule = true;
|
4
|
+
require("core-js/modules/es.array.push.js");
|
4
5
|
require("core-js/modules/es.array.unscopables.flat.js");
|
5
6
|
require("core-js/modules/es.error.cause.js");
|
6
7
|
var _element = require("../../../../helpers/dom/element");
|
@@ -189,10 +190,12 @@ class SelectionManager {
|
|
189
190
|
}
|
190
191
|
const selections = Array.from(_classPrivateFieldGet(this, _selections));
|
191
192
|
const classNamesMap = new Map();
|
193
|
+
const headerAttributesMap = new Map();
|
192
194
|
for (let i = 0; i < selections.length; i++) {
|
193
195
|
const selection = selections[i];
|
194
196
|
const {
|
195
197
|
className,
|
198
|
+
headerAttributes,
|
196
199
|
createLayers,
|
197
200
|
selectionType
|
198
201
|
} = selection.settings;
|
@@ -219,6 +222,14 @@ class SelectionManager {
|
|
219
222
|
} else {
|
220
223
|
classNamesMap.set(element, new Map([[className, 1]]));
|
221
224
|
}
|
225
|
+
if (headerAttributes) {
|
226
|
+
if (!headerAttributesMap.has(element)) {
|
227
|
+
headerAttributesMap.set(element, []);
|
228
|
+
}
|
229
|
+
if (element.nodeName === 'TH') {
|
230
|
+
headerAttributesMap.get(element).push(...headerAttributes);
|
231
|
+
}
|
232
|
+
}
|
222
233
|
});
|
223
234
|
}
|
224
235
|
const corners = selection.getCorners();
|
@@ -226,7 +237,7 @@ class SelectionManager {
|
|
226
237
|
borderInstance === null || borderInstance === void 0 || borderInstance.appear(corners);
|
227
238
|
}
|
228
239
|
classNamesMap.forEach((classNamesLayers, element) => {
|
229
|
-
var _classPrivateFieldGet4
|
240
|
+
var _classPrivateFieldGet4;
|
230
241
|
const classNames = Array.from(classNamesLayers).map(_ref => {
|
231
242
|
let [className, occurrenceCount] = _ref;
|
232
243
|
if (occurrenceCount === 1) {
|
@@ -240,10 +251,13 @@ class SelectionManager {
|
|
240
251
|
(0, _element.addClass)(element, classNames);
|
241
252
|
if (element.nodeName === 'TD' && Array.isArray((_classPrivateFieldGet4 = _classPrivateFieldGet(this, _selections).options) === null || _classPrivateFieldGet4 === void 0 ? void 0 : _classPrivateFieldGet4.cellAttributes)) {
|
242
253
|
(0, _element.setAttribute)(element, _classPrivateFieldGet(this, _selections).options.cellAttributes);
|
243
|
-
} else if (element.nodeName === 'TH' && Array.isArray((_classPrivateFieldGet5 = _classPrivateFieldGet(this, _selections).options) === null || _classPrivateFieldGet5 === void 0 ? void 0 : _classPrivateFieldGet5.headerAttributes)) {
|
244
|
-
(0, _element.setAttribute)(element, _classPrivateFieldGet(this, _selections).options.headerAttributes);
|
245
254
|
}
|
246
255
|
});
|
256
|
+
|
257
|
+
// Set the attributes for the headers if they're focused.
|
258
|
+
Array.from(headerAttributesMap.keys()).forEach(element => {
|
259
|
+
(0, _element.setAttribute)(element, [...headerAttributesMap.get(element)]);
|
260
|
+
});
|
247
261
|
}
|
248
262
|
}
|
249
263
|
exports.SelectionManager = SelectionManager;
|
@@ -256,13 +270,13 @@ function _resetCells2() {
|
|
256
270
|
}
|
257
271
|
}
|
258
272
|
appliedOverlaysClasses.forEach(className => {
|
259
|
-
var
|
273
|
+
var _classPrivateFieldGet5, _classPrivateFieldGet6;
|
260
274
|
const nodes = _classPrivateFieldGet(this, _activeOverlaysWot).wtTable.TABLE.querySelectorAll(`.${className}`);
|
261
275
|
let cellAttributes = [];
|
262
|
-
if (Array.isArray((
|
276
|
+
if (Array.isArray((_classPrivateFieldGet5 = _classPrivateFieldGet(this, _selections).options) === null || _classPrivateFieldGet5 === void 0 ? void 0 : _classPrivateFieldGet5.cellAttributes)) {
|
263
277
|
cellAttributes = _classPrivateFieldGet(this, _selections).options.cellAttributes.map(el => el[0]);
|
264
278
|
}
|
265
|
-
if (Array.isArray((
|
279
|
+
if (Array.isArray((_classPrivateFieldGet6 = _classPrivateFieldGet(this, _selections).options) === null || _classPrivateFieldGet6 === void 0 ? void 0 : _classPrivateFieldGet6.headerAttributes)) {
|
266
280
|
cellAttributes = [...cellAttributes, ..._classPrivateFieldGet(this, _selections).options.headerAttributes.map(el => el[0])];
|
267
281
|
}
|
268
282
|
for (let i = 0, len = nodes.length; i < len; i++) {
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import "core-js/modules/es.array.push.js";
|
1
2
|
import "core-js/modules/es.array.unscopables.flat.js";
|
2
3
|
import "core-js/modules/es.error.cause.js";
|
3
4
|
function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
|
@@ -185,10 +186,12 @@ export class SelectionManager {
|
|
185
186
|
}
|
186
187
|
const selections = Array.from(_classPrivateFieldGet(this, _selections));
|
187
188
|
const classNamesMap = new Map();
|
189
|
+
const headerAttributesMap = new Map();
|
188
190
|
for (let i = 0; i < selections.length; i++) {
|
189
191
|
const selection = selections[i];
|
190
192
|
const {
|
191
193
|
className,
|
194
|
+
headerAttributes,
|
192
195
|
createLayers,
|
193
196
|
selectionType
|
194
197
|
} = selection.settings;
|
@@ -215,6 +218,14 @@ export class SelectionManager {
|
|
215
218
|
} else {
|
216
219
|
classNamesMap.set(element, new Map([[className, 1]]));
|
217
220
|
}
|
221
|
+
if (headerAttributes) {
|
222
|
+
if (!headerAttributesMap.has(element)) {
|
223
|
+
headerAttributesMap.set(element, []);
|
224
|
+
}
|
225
|
+
if (element.nodeName === 'TH') {
|
226
|
+
headerAttributesMap.get(element).push(...headerAttributes);
|
227
|
+
}
|
228
|
+
}
|
218
229
|
});
|
219
230
|
}
|
220
231
|
const corners = selection.getCorners();
|
@@ -222,7 +233,7 @@ export class SelectionManager {
|
|
222
233
|
borderInstance === null || borderInstance === void 0 || borderInstance.appear(corners);
|
223
234
|
}
|
224
235
|
classNamesMap.forEach((classNamesLayers, element) => {
|
225
|
-
var _classPrivateFieldGet4
|
236
|
+
var _classPrivateFieldGet4;
|
226
237
|
const classNames = Array.from(classNamesLayers).map(_ref => {
|
227
238
|
let [className, occurrenceCount] = _ref;
|
228
239
|
if (occurrenceCount === 1) {
|
@@ -236,10 +247,13 @@ export class SelectionManager {
|
|
236
247
|
addClass(element, classNames);
|
237
248
|
if (element.nodeName === 'TD' && Array.isArray((_classPrivateFieldGet4 = _classPrivateFieldGet(this, _selections).options) === null || _classPrivateFieldGet4 === void 0 ? void 0 : _classPrivateFieldGet4.cellAttributes)) {
|
238
249
|
setAttribute(element, _classPrivateFieldGet(this, _selections).options.cellAttributes);
|
239
|
-
} else if (element.nodeName === 'TH' && Array.isArray((_classPrivateFieldGet5 = _classPrivateFieldGet(this, _selections).options) === null || _classPrivateFieldGet5 === void 0 ? void 0 : _classPrivateFieldGet5.headerAttributes)) {
|
240
|
-
setAttribute(element, _classPrivateFieldGet(this, _selections).options.headerAttributes);
|
241
250
|
}
|
242
251
|
});
|
252
|
+
|
253
|
+
// Set the attributes for the headers if they're focused.
|
254
|
+
Array.from(headerAttributesMap.keys()).forEach(element => {
|
255
|
+
setAttribute(element, [...headerAttributesMap.get(element)]);
|
256
|
+
});
|
243
257
|
}
|
244
258
|
}
|
245
259
|
function _resetCells2() {
|
@@ -251,13 +265,13 @@ function _resetCells2() {
|
|
251
265
|
}
|
252
266
|
}
|
253
267
|
appliedOverlaysClasses.forEach(className => {
|
254
|
-
var
|
268
|
+
var _classPrivateFieldGet5, _classPrivateFieldGet6;
|
255
269
|
const nodes = _classPrivateFieldGet(this, _activeOverlaysWot).wtTable.TABLE.querySelectorAll(`.${className}`);
|
256
270
|
let cellAttributes = [];
|
257
|
-
if (Array.isArray((
|
271
|
+
if (Array.isArray((_classPrivateFieldGet5 = _classPrivateFieldGet(this, _selections).options) === null || _classPrivateFieldGet5 === void 0 ? void 0 : _classPrivateFieldGet5.cellAttributes)) {
|
258
272
|
cellAttributes = _classPrivateFieldGet(this, _selections).options.cellAttributes.map(el => el[0]);
|
259
273
|
}
|
260
|
-
if (Array.isArray((
|
274
|
+
if (Array.isArray((_classPrivateFieldGet6 = _classPrivateFieldGet(this, _selections).options) === null || _classPrivateFieldGet6 === void 0 ? void 0 : _classPrivateFieldGet6.headerAttributes)) {
|
261
275
|
cellAttributes = [...cellAttributes, ..._classPrivateFieldGet(this, _selections).options.headerAttributes.map(el => el[0])];
|
262
276
|
}
|
263
277
|
for (let i = 0, len = nodes.length; i < len; i++) {
|
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 = "14.0.0-next-
|
46
|
+
Handsontable.buildDate = "27/11/2023 10:19:22";
|
47
|
+
Handsontable.version = "14.0.0-next-88de277-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 = "14.0.0-next-
|
38
|
+
Handsontable.buildDate = "27/11/2023 10:19:29";
|
39
|
+
Handsontable.version = "14.0.0-next-88de277-20231127";
|
40
40
|
Handsontable.languages = {
|
41
41
|
dictionaryKeys,
|
42
42
|
getLanguageDictionary,
|
package/core.js
CHANGED
@@ -4428,7 +4428,7 @@ function Core(rootElement, userSettings) {
|
|
4428
4428
|
* @function getTranslatedPhrase
|
4429
4429
|
* @since 0.35.0
|
4430
4430
|
* @param {string} dictionaryKey Constant which is dictionary key.
|
4431
|
-
* @param {*}
|
4431
|
+
* @param {*} extraArguments Arguments which will be handled by formatters.
|
4432
4432
|
* @returns {string}
|
4433
4433
|
*/
|
4434
4434
|
this.getTranslatedPhrase = function (dictionaryKey, extraArguments) {
|
package/core.mjs
CHANGED
@@ -4423,7 +4423,7 @@ export default function Core(rootElement, userSettings) {
|
|
4423
4423
|
* @function getTranslatedPhrase
|
4424
4424
|
* @since 0.35.0
|
4425
4425
|
* @param {string} dictionaryKey Constant which is dictionary key.
|
4426
|
-
* @param {*}
|
4426
|
+
* @param {*} extraArguments Arguments which will be handled by formatters.
|
4427
4427
|
* @returns {string}
|
4428
4428
|
*/
|
4429
4429
|
this.getTranslatedPhrase = function (dictionaryKey, extraArguments) {
|
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: 14.0.0-next-
|
29
|
-
* Release date:
|
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
|
/**
|
32
32
|
* Fix for bootstrap styles
|
@@ -504,10 +504,8 @@ innerBorderBottom - Property controlled by bottom overlay
|
|
504
504
|
.handsontable .columnSorting.sortAction:hover {
|
505
505
|
text-decoration: underline;
|
506
506
|
cursor: pointer;
|
507
|
-
}
|
508
|
-
|
509
|
-
/* Arrow position */
|
510
|
-
.handsontable span.colHeader.columnSorting .columnSortingIndicator::before {
|
507
|
+
} /* Arrow position */
|
508
|
+
.handsontable span.colHeader.columnSorting::before {
|
511
509
|
/* Centering start */
|
512
510
|
top: 50%;
|
513
511
|
/* One extra pixel for purpose of proper positioning of sorting arrow, when `font-size` set to default */
|
@@ -527,7 +525,7 @@ innerBorderBottom - Property controlled by bottom overlay
|
|
527
525
|
background-position-x: right;
|
528
526
|
}
|
529
527
|
|
530
|
-
[dir=rtl].handsontable span.colHeader.columnSorting
|
528
|
+
[dir=rtl].handsontable span.colHeader.columnSorting::before {
|
531
529
|
/* Centering end */
|
532
530
|
/* For purpose of continuous mouse over experience, when moving between the `span` and the `::before` elements */
|
533
531
|
padding-right: 8px;
|
@@ -537,12 +535,12 @@ innerBorderBottom - Property controlled by bottom overlay
|
|
537
535
|
background-position-x: left;
|
538
536
|
}
|
539
537
|
|
540
|
-
.handsontable span.colHeader.columnSorting.ascending
|
538
|
+
.handsontable span.colHeader.columnSorting.ascending::before {
|
541
539
|
/* arrow up; 20 x 40 px, scaled to 5 x 10 px; base64 size: 0.3kB */
|
542
540
|
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAoCAMAAADJ7yrpAAAAKlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKE86IAAAADXRSTlMABBEmRGprlJW72e77tTkTKwAAAFNJREFUeAHtzjkSgCAUBNHPgsoy97+ulGXRqJE5L+xkxoYt2UdsLb5bqFINz+aLuuLn5rIu2RkO3fZpWENimNgiw6iBYRTPMLJjGFxQZ1hxxb/xBI1qC8k39CdKAAAAAElFTkSuQmCC);
|
543
541
|
}
|
544
542
|
|
545
|
-
.handsontable span.colHeader.columnSorting.descending
|
543
|
+
.handsontable span.colHeader.columnSorting.descending::before {
|
546
544
|
/* arrow down; 20 x 40 px, scaled to 5 x 10 px; base64 size: 0.3kB */
|
547
545
|
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAoCAMAAADJ7yrpAAAAKlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKE86IAAAADXRSTlMABBEmRGprlJW72e77tTkTKwAAAFJJREFUeAHtzjkSgCAQRNFmQYUZ7n9dKUvru0TmvPAn3br0QfgdZ5xx6x+rQn23GqTYnq1FDcnuzZIO2WmedVqIRVxgGKEyjNgYRjKGkZ1hFIZ3I70LyM0VtU8AAAAASUVORK5CYII=);
|
548
546
|
}
|
@@ -696,7 +694,7 @@ TextRenderer readOnly cell
|
|
696
694
|
position: relative;
|
697
695
|
}
|
698
696
|
|
699
|
-
.handsontable .htSubmenu
|
697
|
+
.handsontable .htSubmenu :after {
|
700
698
|
content: "▶";
|
701
699
|
color: #777;
|
702
700
|
position: absolute;
|
@@ -704,11 +702,11 @@ TextRenderer readOnly cell
|
|
704
702
|
font-size: 9px;
|
705
703
|
}
|
706
704
|
|
707
|
-
[dir=rtl].handsontable .htSubmenu
|
705
|
+
[dir=rtl].handsontable .htSubmenu :after {
|
708
706
|
content: "";
|
709
707
|
}
|
710
708
|
|
711
|
-
[dir=rtl].handsontable .htSubmenu
|
709
|
+
[dir=rtl].handsontable .htSubmenu :before {
|
712
710
|
content: "◀";
|
713
711
|
color: #777;
|
714
712
|
position: absolute;
|
@@ -1476,6 +1474,10 @@ textarea.HandsontableCopyPaste {
|
|
1476
1474
|
border: 1px solid #d2d1d1;
|
1477
1475
|
}
|
1478
1476
|
|
1477
|
+
.handsontable .htUIInputIcon {
|
1478
|
+
position: absolute;
|
1479
|
+
}
|
1480
|
+
|
1479
1481
|
/* Button */
|
1480
1482
|
.handsontable .htUIInput.htUIButton {
|
1481
1483
|
cursor: pointer;
|
@@ -1616,13 +1618,12 @@ textarea.HandsontableCopyPaste {
|
|
1616
1618
|
/*
|
1617
1619
|
* Handsontable HiddenColumns
|
1618
1620
|
*/
|
1619
|
-
.handsontable th.beforeHiddenColumn
|
1620
|
-
.handsontable th.afterHiddenColumn {
|
1621
|
+
.handsontable th.beforeHiddenColumn {
|
1621
1622
|
position: relative;
|
1622
1623
|
}
|
1623
1624
|
|
1624
|
-
.handsontable th.beforeHiddenColumn
|
1625
|
-
.handsontable th.afterHiddenColumn
|
1625
|
+
.handsontable th.beforeHiddenColumn::after,
|
1626
|
+
.handsontable th.afterHiddenColumn::before {
|
1626
1627
|
color: #bbb;
|
1627
1628
|
position: absolute;
|
1628
1629
|
top: 50%;
|
@@ -1630,33 +1631,37 @@ textarea.HandsontableCopyPaste {
|
|
1630
1631
|
transform: translateY(-50%);
|
1631
1632
|
}
|
1632
1633
|
|
1633
|
-
.handsontable th.
|
1634
|
+
.handsontable th.afterHiddenColumn {
|
1635
|
+
position: relative;
|
1636
|
+
}
|
1637
|
+
|
1638
|
+
.handsontable th.beforeHiddenColumn::after {
|
1634
1639
|
right: 1px;
|
1635
|
-
content: "◀";
|
1640
|
+
content: "◀"; /* left arrow */
|
1636
1641
|
}
|
1637
1642
|
|
1638
|
-
[dir=rtl].handsontable th.beforeHiddenColumn
|
1643
|
+
[dir=rtl].handsontable th.beforeHiddenColumn::after {
|
1639
1644
|
right: initial;
|
1640
1645
|
left: 1px;
|
1641
|
-
content: "▶";
|
1646
|
+
content: "▶"; /* right arrow */
|
1642
1647
|
}
|
1643
1648
|
|
1644
|
-
.handsontable th.afterHiddenColumn
|
1649
|
+
.handsontable th.afterHiddenColumn::before {
|
1645
1650
|
left: 1px;
|
1646
|
-
content: "▶";
|
1651
|
+
content: "▶"; /* right arrow */
|
1647
1652
|
}
|
1648
1653
|
|
1649
|
-
[dir=rtl].handsontable th.afterHiddenColumn
|
1654
|
+
[dir=rtl].handsontable th.afterHiddenColumn::before {
|
1650
1655
|
right: 1px;
|
1651
1656
|
left: initial;
|
1652
|
-
content: "◀";
|
1657
|
+
content: "◀"; /* left arrow */
|
1653
1658
|
}
|
1654
1659
|
@charset "UTF-8";
|
1655
1660
|
/*!
|
1656
1661
|
* Handsontable HiddenRows
|
1657
1662
|
*/
|
1658
|
-
.handsontable th.beforeHiddenRow
|
1659
|
-
.handsontable th.afterHiddenRow
|
1663
|
+
.handsontable th.beforeHiddenRow::before,
|
1664
|
+
.handsontable th.afterHiddenRow::after {
|
1660
1665
|
color: #bbb;
|
1661
1666
|
font-size: 6pt;
|
1662
1667
|
line-height: 6pt;
|
@@ -1669,18 +1674,18 @@ textarea.HandsontableCopyPaste {
|
|
1669
1674
|
position: relative;
|
1670
1675
|
}
|
1671
1676
|
|
1672
|
-
.handsontable th.beforeHiddenRow
|
1673
|
-
content: "▲";
|
1677
|
+
.handsontable th.beforeHiddenRow::before {
|
1678
|
+
content: "▲";
|
1674
1679
|
bottom: 2px;
|
1675
1680
|
}
|
1676
1681
|
|
1677
|
-
.handsontable th.afterHiddenRow
|
1678
|
-
content: "▼";
|
1682
|
+
.handsontable th.afterHiddenRow::after {
|
1683
|
+
content: "▼";
|
1679
1684
|
top: 2px;
|
1680
1685
|
}
|
1681
1686
|
|
1682
|
-
.handsontable.ht__selection--rows tbody th.beforeHiddenRow.ht__highlight
|
1683
|
-
.handsontable.ht__selection--rows tbody th.afterHiddenRow.ht__highlight
|
1687
|
+
.handsontable.ht__selection--rows tbody th.beforeHiddenRow.ht__highlight:before,
|
1688
|
+
.handsontable.ht__selection--rows tbody th.afterHiddenRow.ht__highlight:after {
|
1684
1689
|
color: #eee;
|
1685
1690
|
}
|
1686
1691
|
|
@@ -1833,7 +1838,7 @@ textarea.HandsontableCopyPaste {
|
|
1833
1838
|
opacity: 0.58;
|
1834
1839
|
}
|
1835
1840
|
/* Column's number position */
|
1836
|
-
.handsontable span.colHeader.columnSorting
|
1841
|
+
.handsontable span.colHeader.columnSorting::after {
|
1837
1842
|
/* Centering start */
|
1838
1843
|
top: 50%;
|
1839
1844
|
/* Two extra pixels (-2 instead of -4) for purpose of proper positioning of numeric indicators, when `font-size` set to default */
|
@@ -1852,7 +1857,7 @@ textarea.HandsontableCopyPaste {
|
|
1852
1857
|
text-decoration: underline;
|
1853
1858
|
}
|
1854
1859
|
|
1855
|
-
[dir=rtl].handsontable span.colHeader.columnSorting
|
1860
|
+
[dir=rtl].handsontable span.colHeader.columnSorting::after {
|
1856
1861
|
left: -15px;
|
1857
1862
|
right: unset;
|
1858
1863
|
/* For purpose of continuous mouse over experience, when moving between the `::before` and the `::after` elements */
|
@@ -1861,41 +1866,41 @@ textarea.HandsontableCopyPaste {
|
|
1861
1866
|
}
|
1862
1867
|
|
1863
1868
|
/* Workaround for IE9 - IE11, https://stackoverflow.com/a/21902566, https://stackoverflow.com/a/32120247 */
|
1864
|
-
.handsontable span.colHeader.columnSorting
|
1869
|
+
.handsontable span.colHeader.columnSorting::after {
|
1865
1870
|
text-decoration: none;
|
1866
1871
|
}
|
1867
1872
|
|
1868
1873
|
/* We support up to 7 numeric indicators, describing order of column in sorted columns queue */
|
1869
|
-
.handsontable span.colHeader.columnSorting[class^=sort-]
|
1870
|
-
.handsontable span.colHeader.columnSorting[class*=" sort-"]
|
1874
|
+
.handsontable span.colHeader.columnSorting[class^=sort-]::after,
|
1875
|
+
.handsontable span.colHeader.columnSorting[class*=" sort-"]::after {
|
1871
1876
|
content: "+";
|
1872
1877
|
}
|
1873
1878
|
|
1874
|
-
.handsontable span.colHeader.columnSorting.sort-1
|
1879
|
+
.handsontable span.colHeader.columnSorting.sort-1::after {
|
1875
1880
|
content: "1";
|
1876
1881
|
}
|
1877
1882
|
|
1878
|
-
.handsontable span.colHeader.columnSorting.sort-2
|
1883
|
+
.handsontable span.colHeader.columnSorting.sort-2::after {
|
1879
1884
|
content: "2";
|
1880
1885
|
}
|
1881
1886
|
|
1882
|
-
.handsontable span.colHeader.columnSorting.sort-3
|
1887
|
+
.handsontable span.colHeader.columnSorting.sort-3::after {
|
1883
1888
|
content: "3";
|
1884
1889
|
}
|
1885
1890
|
|
1886
|
-
.handsontable span.colHeader.columnSorting.sort-4
|
1891
|
+
.handsontable span.colHeader.columnSorting.sort-4::after {
|
1887
1892
|
content: "4";
|
1888
1893
|
}
|
1889
1894
|
|
1890
|
-
.handsontable span.colHeader.columnSorting.sort-5
|
1895
|
+
.handsontable span.colHeader.columnSorting.sort-5::after {
|
1891
1896
|
content: "5";
|
1892
1897
|
}
|
1893
1898
|
|
1894
|
-
.handsontable span.colHeader.columnSorting.sort-6
|
1899
|
+
.handsontable span.colHeader.columnSorting.sort-6::after {
|
1895
1900
|
content: "6";
|
1896
1901
|
}
|
1897
1902
|
|
1898
|
-
.handsontable span.colHeader.columnSorting.sort-7
|
1903
|
+
.handsontable span.colHeader.columnSorting.sort-7::after {
|
1899
1904
|
content: "7";
|
1900
1905
|
}
|
1901
1906
|
|
@@ -1906,6 +1911,7 @@ textarea.HandsontableCopyPaste {
|
|
1906
1911
|
.handsontable thead th.hiddenHeader:not(:first-of-type) {
|
1907
1912
|
display: none;
|
1908
1913
|
}
|
1914
|
+
@charset "UTF-8";
|
1909
1915
|
.handsontable th.ht_nestingLevels {
|
1910
1916
|
text-align: left;
|
1911
1917
|
padding-left: 7px;
|
@@ -1939,6 +1945,10 @@ textarea.HandsontableCopyPaste {
|
|
1939
1945
|
right: unset;
|
1940
1946
|
}
|
1941
1947
|
|
1948
|
+
.handsontable th span.ht_nestingLevel {
|
1949
|
+
display: inline-block;
|
1950
|
+
}
|
1951
|
+
|
1942
1952
|
.handsontable th span.ht_nestingLevel_empty {
|
1943
1953
|
display: inline-block;
|
1944
1954
|
width: 10px;
|
@@ -1950,6 +1960,14 @@ textarea.HandsontableCopyPaste {
|
|
1950
1960
|
float: right;
|
1951
1961
|
}
|
1952
1962
|
|
1963
|
+
.handsontable th span.ht_nestingLevel::after {
|
1964
|
+
content: "┐";
|
1965
|
+
font-size: 9px;
|
1966
|
+
display: inline-block;
|
1967
|
+
position: relative;
|
1968
|
+
bottom: 3px;
|
1969
|
+
}
|
1970
|
+
|
1953
1971
|
.handsontable th div.ht_nestingButton {
|
1954
1972
|
display: inline-block;
|
1955
1973
|
position: absolute;
|