handsontable 14.0.0-next-88de277-20231127 → 14.0.0-next-8492c6c-20231128
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/renderer/columnHeaders.js +4 -1
- package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +4 -1
- package/base.js +2 -2
- package/base.mjs +2 -2
- package/dist/handsontable.css +2 -2
- package/dist/handsontable.full.css +2 -2
- package/dist/handsontable.full.js +119 -75
- package/dist/handsontable.full.min.css +2 -2
- package/dist/handsontable.full.min.js +6 -6
- package/dist/handsontable.js +119 -75
- package/dist/handsontable.min.css +2 -2
- package/dist/handsontable.min.js +6 -6
- package/focusManager.js +92 -58
- package/focusManager.mjs +92 -58
- package/helpers/mixed.js +1 -1
- package/helpers/mixed.mjs +1 -1
- package/package.json +1 -1
- package/plugins/contextMenu/contextMenu.js +1 -1
- package/plugins/contextMenu/contextMenu.mjs +1 -1
- package/shortcuts/utils.js +8 -1
- package/shortcuts/utils.mjs +8 -1
@@ -93,7 +93,10 @@ 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), (0, _a11y.A11Y_COLUMNHEADER)(), ...(renderedColumnIndex >= 0 ? [(0, _a11y.A11Y_SCOPE_COL)()] : [
|
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
|
+
// Adding `role=row` to the corner headers to prevent
|
98
|
+
// https://github.com/handsontable/dev-handsontable/issues/1574
|
99
|
+
(0, _a11y.A11Y_ROW)()])]);
|
97
100
|
}
|
98
101
|
columnHeaderFunctions[rowHeaderIndex](sourceColumnIndex, TH, rowHeaderIndex);
|
99
102
|
}
|
@@ -89,7 +89,10 @@ 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), A11Y_COLUMNHEADER(), ...(renderedColumnIndex >= 0 ? [A11Y_SCOPE_COL()] : [
|
92
|
+
setAttribute(TH, [A11Y_COLINDEX(renderedColumnIndex + 1 + this.table.rowHeadersCount), A11Y_TABINDEX(-1), A11Y_COLUMNHEADER(), ...(renderedColumnIndex >= 0 ? [A11Y_SCOPE_COL()] : [
|
93
|
+
// Adding `role=row` to the corner headers to prevent
|
94
|
+
// https://github.com/handsontable/dev-handsontable/issues/1574
|
95
|
+
A11Y_ROW()])]);
|
93
96
|
}
|
94
97
|
columnHeaderFunctions[rowHeaderIndex](sourceColumnIndex, TH, rowHeaderIndex);
|
95
98
|
}
|
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 = "28/11/2023 14:01:11";
|
47
|
+
Handsontable.version = "14.0.0-next-8492c6c-20231128";
|
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 = "28/11/2023 14:01:17";
|
39
|
+
Handsontable.version = "14.0.0-next-8492c6c-20231128";
|
40
40
|
Handsontable.languages = {
|
41
41
|
dictionaryKeys,
|
42
42
|
getLanguageDictionary,
|
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: 29/11/2023 (built at
|
28
|
+
* Version: 14.0.0-next-8492c6c-20231128
|
29
|
+
* Release date: 29/11/2023 (built at 28/11/2023 14:01:22)
|
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: 14.0.0-next-
|
29
|
-
* Release date: 29/11/2023 (built at
|
28
|
+
* Version: 14.0.0-next-8492c6c-20231128
|
29
|
+
* Release date: 29/11/2023 (built at 28/11/2023 14:01:22)
|
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: 14.0.0-next-
|
29
|
-
* Release date: 29/11/2023 (built at
|
28
|
+
* Version: 14.0.0-next-8492c6c-20231128
|
29
|
+
* Release date: 29/11/2023 (built at 28/11/2023 14:01:22)
|
30
30
|
*/
|
31
31
|
(function webpackUniversalModuleDefinition(root, factory) {
|
32
32
|
if(typeof exports === 'object' && typeof module === 'object')
|
@@ -43033,8 +43033,8 @@ Handsontable.hooks = _pluginHooks.default.getSingleton();
|
|
43033
43033
|
Handsontable.CellCoords = _src.CellCoords;
|
43034
43034
|
Handsontable.CellRange = _src.CellRange;
|
43035
43035
|
Handsontable.packageName = 'handsontable';
|
43036
|
-
Handsontable.buildDate = "
|
43037
|
-
Handsontable.version = "14.0.0-next-
|
43036
|
+
Handsontable.buildDate = "28/11/2023 14:01:22";
|
43037
|
+
Handsontable.version = "14.0.0-next-8492c6c-20231128";
|
43038
43038
|
Handsontable.languages = {
|
43039
43039
|
dictionaryKeys: _registry.dictionaryKeys,
|
43040
43040
|
getLanguageDictionary: _registry.getLanguageDictionary,
|
@@ -53154,7 +53154,7 @@ const domMessages = {
|
|
53154
53154
|
function _injectProductInfo(key, element) {
|
53155
53155
|
const hasValidType = !isEmpty(key);
|
53156
53156
|
const isNonCommercial = typeof key === 'string' && key.toLowerCase() === 'non-commercial-and-evaluation';
|
53157
|
-
const hotVersion = "14.0.0-next-
|
53157
|
+
const hotVersion = "14.0.0-next-8492c6c-20231128";
|
53158
53158
|
let keyValidityDate;
|
53159
53159
|
let consoleMessageState = 'invalid';
|
53160
53160
|
let domMessageState = 'invalid';
|
@@ -65617,10 +65617,11 @@ function getListenersCounter() {
|
|
65617
65617
|
__webpack_require__(275);
|
65618
65618
|
var _interopRequireDefault = __webpack_require__(198);
|
65619
65619
|
exports.__esModule = true;
|
65620
|
-
var
|
65620
|
+
var _classPrivateFieldGet7 = _interopRequireDefault(__webpack_require__(466));
|
65621
65621
|
var _classPrivateFieldSet2 = _interopRequireDefault(__webpack_require__(469));
|
65622
65622
|
var _console = __webpack_require__(462);
|
65623
65623
|
var _element = __webpack_require__(304);
|
65624
|
+
var _function = __webpack_require__(448);
|
65624
65625
|
function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
|
65625
65626
|
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
65626
65627
|
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
@@ -65645,9 +65646,10 @@ var _hot = /*#__PURE__*/new WeakMap();
|
|
65645
65646
|
var _focusMode = /*#__PURE__*/new WeakMap();
|
65646
65647
|
var _refocusDelay = /*#__PURE__*/new WeakMap();
|
65647
65648
|
var _refocusElementGetter = /*#__PURE__*/new WeakMap();
|
65648
|
-
var
|
65649
|
+
var _debouncedSelect = /*#__PURE__*/new WeakMap();
|
65649
65650
|
var _getSelectedCell = /*#__PURE__*/new WeakSet();
|
65650
|
-
var
|
65651
|
+
var _focusCell = /*#__PURE__*/new WeakSet();
|
65652
|
+
var _focusEditorElement = /*#__PURE__*/new WeakSet();
|
65651
65653
|
var _onUpdateSettings = /*#__PURE__*/new WeakSet();
|
65652
65654
|
class FocusManager {
|
65653
65655
|
constructor(hotInstance) {
|
@@ -65655,29 +65657,23 @@ class FocusManager {
|
|
65655
65657
|
/**
|
65656
65658
|
* Update the manager configuration after calling `updateSettings`.
|
65657
65659
|
*
|
65658
|
-
* @private
|
65659
65660
|
* @param {object} newSettings The new settings passed to the `updateSettings` method.
|
65660
65661
|
*/
|
65661
65662
|
_classPrivateMethodInitSpec(this, _onUpdateSettings);
|
65662
65663
|
/**
|
65663
|
-
* Manage the browser's focus after cell selection.
|
65664
|
-
*
|
65665
|
-
* @private
|
65664
|
+
* Manage the browser's focus after cell selection end.
|
65666
65665
|
*/
|
65667
|
-
_classPrivateMethodInitSpec(this,
|
65666
|
+
_classPrivateMethodInitSpec(this, _focusEditorElement);
|
65668
65667
|
/**
|
65669
|
-
*
|
65670
|
-
*
|
65671
|
-
* @private
|
65672
|
-
* @returns {HTMLTableCellElement}
|
65668
|
+
* Manage the browser's focus after each cell selection change.
|
65673
65669
|
*/
|
65674
|
-
_classPrivateMethodInitSpec(this,
|
65670
|
+
_classPrivateMethodInitSpec(this, _focusCell);
|
65675
65671
|
/**
|
65676
|
-
* Get
|
65672
|
+
* Get and return the currently selected and highlighted cell/header element.
|
65677
65673
|
*
|
65678
|
-
* @
|
65674
|
+
* @param {Function} callback Callback function to be called after the cell element is retrieved.
|
65679
65675
|
*/
|
65680
|
-
_classPrivateMethodInitSpec(this,
|
65676
|
+
_classPrivateMethodInitSpec(this, _getSelectedCell);
|
65681
65677
|
/**
|
65682
65678
|
* The Handsontable instance.
|
65683
65679
|
*/
|
@@ -65693,7 +65689,7 @@ class FocusManager {
|
|
65693
65689
|
* - 'mixed' - The browser's focus switches from the lastly selected cell element to the currently active editor's
|
65694
65690
|
* `TEXTAREA` element after a delay defined in the manager.
|
65695
65691
|
*
|
65696
|
-
* @type {
|
65692
|
+
* @type {'cell' | 'mixed'}
|
65697
65693
|
*/
|
65698
65694
|
_classPrivateFieldInitSpec(this, _focusMode, {
|
65699
65695
|
writable: true,
|
@@ -65719,20 +65715,35 @@ class FocusManager {
|
|
65719
65715
|
writable: true,
|
65720
65716
|
value: null
|
65721
65717
|
});
|
65718
|
+
/**
|
65719
|
+
* Map of the debounced `select` functions.
|
65720
|
+
*
|
65721
|
+
* @type {Map<number, Function>}
|
65722
|
+
*/
|
65723
|
+
_classPrivateFieldInitSpec(this, _debouncedSelect, {
|
65724
|
+
writable: true,
|
65725
|
+
value: new Map()
|
65726
|
+
});
|
65722
65727
|
const hotSettings = hotInstance.getSettings();
|
65723
65728
|
(0, _classPrivateFieldSet2.default)(this, _hot, hotInstance);
|
65724
65729
|
(0, _classPrivateFieldSet2.default)(this, _focusMode, hotSettings.imeFastEdit ? FOCUS_MODES.MIXED : FOCUS_MODES.CELL);
|
65725
|
-
(0,
|
65730
|
+
(0, _classPrivateFieldGet7.default)(this, _hot).addHook('afterUpdateSettings', function () {
|
65726
65731
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
65727
65732
|
args[_key] = arguments[_key];
|
65728
65733
|
}
|
65729
65734
|
return _classPrivateMethodGet(_this, _onUpdateSettings, _onUpdateSettings2).call(_this, ...args);
|
65730
65735
|
});
|
65731
|
-
(0,
|
65736
|
+
(0, _classPrivateFieldGet7.default)(this, _hot).addHook('afterSelection', function () {
|
65732
65737
|
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
65733
65738
|
args[_key2] = arguments[_key2];
|
65734
65739
|
}
|
65735
|
-
return _classPrivateMethodGet(_this,
|
65740
|
+
return _classPrivateMethodGet(_this, _focusCell, _focusCell2).call(_this, ...args);
|
65741
|
+
});
|
65742
|
+
(0, _classPrivateFieldGet7.default)(this, _hot).addHook('afterSelectionEnd', function () {
|
65743
|
+
for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
|
65744
|
+
args[_key3] = arguments[_key3];
|
65745
|
+
}
|
65746
|
+
return _classPrivateMethodGet(_this, _focusEditorElement, _focusEditorElement2).call(_this, ...args);
|
65736
65747
|
});
|
65737
65748
|
}
|
65738
65749
|
|
@@ -65742,7 +65753,7 @@ class FocusManager {
|
|
65742
65753
|
* @returns {'cell' | 'mixed'}
|
65743
65754
|
*/
|
65744
65755
|
getFocusMode() {
|
65745
|
-
return (0,
|
65756
|
+
return (0, _classPrivateFieldGet7.default)(this, _focusMode);
|
65746
65757
|
}
|
65747
65758
|
|
65748
65759
|
/**
|
@@ -65765,7 +65776,7 @@ class FocusManager {
|
|
65765
65776
|
* @returns {number} Delay in milliseconds.
|
65766
65777
|
*/
|
65767
65778
|
getRefocusDelay() {
|
65768
|
-
return (0,
|
65779
|
+
return (0, _classPrivateFieldGet7.default)(this, _refocusDelay);
|
65769
65780
|
}
|
65770
65781
|
|
65771
65782
|
/**
|
@@ -65793,11 +65804,11 @@ class FocusManager {
|
|
65793
65804
|
* @returns {HTMLTextAreaElement|HTMLElement|undefined}
|
65794
65805
|
*/
|
65795
65806
|
getRefocusElement() {
|
65796
|
-
if (typeof (0,
|
65797
|
-
return (0,
|
65807
|
+
if (typeof (0, _classPrivateFieldGet7.default)(this, _refocusElementGetter) === 'function') {
|
65808
|
+
return (0, _classPrivateFieldGet7.default)(this, _refocusElementGetter).call(this);
|
65798
65809
|
} else {
|
65799
65810
|
var _classPrivateFieldGet2;
|
65800
|
-
return (_classPrivateFieldGet2 = (0,
|
65811
|
+
return (_classPrivateFieldGet2 = (0, _classPrivateFieldGet7.default)(this, _hot).getActiveEditor()) === null || _classPrivateFieldGet2 === void 0 ? void 0 : _classPrivateFieldGet2.TEXTAREA;
|
65801
65812
|
}
|
65802
65813
|
}
|
65803
65814
|
|
@@ -65807,17 +65818,26 @@ class FocusManager {
|
|
65807
65818
|
* @param {HTMLTableCellElement} [selectedCell] The highlighted cell/header element.
|
65808
65819
|
*/
|
65809
65820
|
focusOnHighlightedCell(selectedCell) {
|
65810
|
-
|
65811
|
-
|
65812
|
-
|
65813
|
-
|
65814
|
-
|
65815
|
-
|
65816
|
-
|
65817
|
-
|
65818
|
-
|
65819
|
-
|
65820
|
-
|
65821
|
+
const focusElement = element => {
|
65822
|
+
var _classPrivateFieldGet3, _classPrivateFieldGet4;
|
65823
|
+
const currentHighlightCoords = (_classPrivateFieldGet3 = (0, _classPrivateFieldGet7.default)(this, _hot).getSelectedRangeLast()) === null || _classPrivateFieldGet3 === void 0 ? void 0 : _classPrivateFieldGet3.highlight;
|
65824
|
+
if (!currentHighlightCoords || !element) {
|
65825
|
+
return;
|
65826
|
+
}
|
65827
|
+
let elementToBeFocused = (0, _classPrivateFieldGet7.default)(this, _hot).runHooks('modifyFocusedElement', currentHighlightCoords.row, currentHighlightCoords.col, element);
|
65828
|
+
if (!(elementToBeFocused instanceof HTMLElement)) {
|
65829
|
+
elementToBeFocused = element;
|
65830
|
+
}
|
65831
|
+
if (elementToBeFocused && !((_classPrivateFieldGet4 = (0, _classPrivateFieldGet7.default)(this, _hot).getActiveEditor()) !== null && _classPrivateFieldGet4 !== void 0 && _classPrivateFieldGet4.isOpened())) {
|
65832
|
+
elementToBeFocused.focus({
|
65833
|
+
preventScroll: true
|
65834
|
+
});
|
65835
|
+
}
|
65836
|
+
};
|
65837
|
+
if (selectedCell) {
|
65838
|
+
focusElement(selectedCell);
|
65839
|
+
} else {
|
65840
|
+
_classPrivateMethodGet(this, _getSelectedCell, _getSelectedCell2).call(this, element => focusElement(element));
|
65821
65841
|
}
|
65822
65842
|
}
|
65823
65843
|
|
@@ -65825,49 +65845,63 @@ class FocusManager {
|
|
65825
65845
|
* Set the focus to the active editor's `TEXTAREA` element after the provided delay. If no delay is provided, it
|
65826
65846
|
* will be taken from the manager's configuration.
|
65827
65847
|
*
|
65828
|
-
* @param {number} delay Delay in milliseconds.
|
65848
|
+
* @param {number} [delay] Delay in milliseconds.
|
65829
65849
|
*/
|
65830
65850
|
refocusToEditorTextarea() {
|
65831
|
-
var
|
65832
|
-
let delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : (0,
|
65851
|
+
var _classPrivateFieldGet5;
|
65852
|
+
let delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : (0, _classPrivateFieldGet7.default)(this, _refocusDelay);
|
65833
65853
|
const refocusElement = this.getRefocusElement();
|
65834
65854
|
|
65835
65855
|
// Re-focus on the editor's `TEXTAREA` element (or a predefined element) if the `imeFastEdit` option is enabled.
|
65836
|
-
if ((0,
|
65837
|
-
(0,
|
65838
|
-
|
65839
|
-
|
65856
|
+
if ((0, _classPrivateFieldGet7.default)(this, _hot).getSettings().imeFastEdit && !((_classPrivateFieldGet5 = (0, _classPrivateFieldGet7.default)(this, _hot).getActiveEditor()) !== null && _classPrivateFieldGet5 !== void 0 && _classPrivateFieldGet5.isOpened()) && !!refocusElement) {
|
65857
|
+
if (!(0, _classPrivateFieldGet7.default)(this, _debouncedSelect).has(delay)) {
|
65858
|
+
(0, _classPrivateFieldGet7.default)(this, _debouncedSelect).set(delay, (0, _function.debounce)(() => {
|
65859
|
+
refocusElement.select();
|
65860
|
+
}, delay));
|
65861
|
+
}
|
65862
|
+
(0, _classPrivateFieldGet7.default)(this, _debouncedSelect).get(delay)();
|
65840
65863
|
}
|
65841
65864
|
}
|
65842
65865
|
}
|
65843
65866
|
exports.FocusManager = FocusManager;
|
65844
|
-
function
|
65845
|
-
|
65846
|
-
|
65867
|
+
function _getSelectedCell2(callback) {
|
65868
|
+
var _classPrivateFieldGet6;
|
65869
|
+
const highlight = (_classPrivateFieldGet6 = (0, _classPrivateFieldGet7.default)(this, _hot).getSelectedRangeLast()) === null || _classPrivateFieldGet6 === void 0 ? void 0 : _classPrivateFieldGet6.highlight;
|
65870
|
+
if (!highlight) {
|
65871
|
+
callback(null);
|
65872
|
+
return;
|
65873
|
+
}
|
65874
|
+
const cell = (0, _classPrivateFieldGet7.default)(this, _hot).getCell(highlight.row, highlight.col, true);
|
65875
|
+
if (cell === null) {
|
65876
|
+
(0, _classPrivateFieldGet7.default)(this, _hot).addHookOnce('afterScroll', () => {
|
65877
|
+
callback((0, _classPrivateFieldGet7.default)(this, _hot).getCell(highlight.row, highlight.col, true));
|
65878
|
+
});
|
65879
|
+
} else {
|
65880
|
+
callback(cell);
|
65881
|
+
}
|
65847
65882
|
}
|
65848
|
-
function
|
65849
|
-
|
65850
|
-
|
65883
|
+
function _focusCell2() {
|
65884
|
+
_classPrivateMethodGet(this, _getSelectedCell, _getSelectedCell2).call(this, selectedCell => {
|
65885
|
+
const {
|
65886
|
+
activeElement
|
65887
|
+
} = (0, _classPrivateFieldGet7.default)(this, _hot).rootDocument;
|
65888
|
+
|
65889
|
+
// Blurring the `activeElement` removes the unwanted border around the focusable element (#6877)
|
65890
|
+
// and resets the `document.activeElement` property. The blurring should happen only when the
|
65891
|
+
// previously selected input element has not belonged to the Handsontable editor. If blurring is
|
65892
|
+
// triggered for all elements, there is a problem with the disappearing IME editor (#9672).
|
65893
|
+
if (activeElement && (0, _element.isOutsideInput)(activeElement)) {
|
65894
|
+
activeElement.blur();
|
65895
|
+
}
|
65896
|
+
this.focusOnHighlightedCell(selectedCell);
|
65897
|
+
});
|
65851
65898
|
}
|
65852
|
-
function
|
65853
|
-
|
65854
|
-
|
65855
|
-
activeElement
|
65856
|
-
} = (0, _classPrivateFieldGet5.default)(this, _hot).rootDocument;
|
65857
|
-
|
65858
|
-
// Blurring the `activeElement` removes the unwanted border around the focusable element (#6877)
|
65859
|
-
// and resets the `document.activeElement` property. The blurring should happen only when the
|
65860
|
-
// previously selected input element has not belonged to the Handsontable editor. If blurring is
|
65861
|
-
// triggered for all elements, there is a problem with the disappearing IME editor (#9672).
|
65862
|
-
if (activeElement && (0, _element.isOutsideInput)(activeElement)) {
|
65863
|
-
activeElement.blur();
|
65864
|
-
}
|
65865
|
-
this.focusOnHighlightedCell(selectedCell);
|
65866
|
-
if (this.getFocusMode() === FOCUS_MODES.MIXED && selectedCell.nodeName === 'TD') {
|
65867
|
-
(0, _classPrivateFieldGet5.default)(this, _hot).addHookOnce('afterSelectionEnd', () => {
|
65899
|
+
function _focusEditorElement2() {
|
65900
|
+
_classPrivateMethodGet(this, _getSelectedCell, _getSelectedCell2).call(this, selectedCell => {
|
65901
|
+
if (this.getFocusMode() === FOCUS_MODES.MIXED && selectedCell.nodeName === 'TD') {
|
65868
65902
|
this.refocusToEditorTextarea();
|
65869
|
-
}
|
65870
|
-
}
|
65903
|
+
}
|
65904
|
+
});
|
65871
65905
|
}
|
65872
65906
|
function _onUpdateSettings2(newSettings) {
|
65873
65907
|
if (newSettings.imeFastEdit && this.getFocusMode() !== FOCUS_MODES.MIXED) {
|
@@ -73868,7 +73902,10 @@ class ColumnHeadersRenderer extends _base.default {
|
|
73868
73902
|
// Remove all accessibility-related attributes for the header to start fresh.
|
73869
73903
|
(0, _element.removeAttribute)(TH, [new RegExp('aria-(.*)'), new RegExp('role')]);
|
73870
73904
|
if (this.table.isAriaEnabled()) {
|
73871
|
-
(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)()] : [
|
73905
|
+
(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)()] : [
|
73906
|
+
// Adding `role=row` to the corner headers to prevent
|
73907
|
+
// https://github.com/handsontable/dev-handsontable/issues/1574
|
73908
|
+
(0, _a11y.A11Y_ROW)()])]);
|
73872
73909
|
}
|
73873
73910
|
columnHeaderFunctions[rowHeaderIndex](sourceColumnIndex, TH, rowHeaderIndex);
|
73874
73911
|
}
|
@@ -95339,6 +95376,7 @@ const getKeysList = normalizedKeys => {
|
|
95339
95376
|
*/
|
95340
95377
|
exports.getKeysList = getKeysList;
|
95341
95378
|
const codeToKeyRegExp = new RegExp('^(?:Key|Digit)([A-Z0-9])$');
|
95379
|
+
const keyCodeNames = new Set(['Backquote', 'Minus', 'Equal', 'BracketLeft', 'BracketRight', 'Backslash', 'Semicolon', 'Quote', 'Comma', 'Period', 'Slash']);
|
95342
95380
|
|
95343
95381
|
/**
|
95344
95382
|
* Normalizes a keyboard event key value to a key before its modification. When the keyboard event
|
@@ -95355,7 +95393,13 @@ const normalizeEventKey = _ref => {
|
|
95355
95393
|
key,
|
95356
95394
|
code
|
95357
95395
|
} = _ref;
|
95358
|
-
|
95396
|
+
let normalizedKey = key;
|
95397
|
+
if (codeToKeyRegExp.test(code)) {
|
95398
|
+
normalizedKey = code.replace(codeToKeyRegExp, '$1');
|
95399
|
+
} else if (keyCodeNames.has(code)) {
|
95400
|
+
normalizedKey = code;
|
95401
|
+
}
|
95402
|
+
return normalizedKey.toLowerCase();
|
95359
95403
|
};
|
95360
95404
|
exports.normalizeEventKey = normalizeEventKey;
|
95361
95405
|
|
@@ -110943,7 +110987,7 @@ class ContextMenu extends _base.BasePlugin {
|
|
110943
110987
|
*/
|
110944
110988
|
registerShortcuts() {
|
110945
110989
|
this.hot.getShortcutManager().getContext('grid').addShortcut({
|
110946
|
-
keys: [['Control/Meta', 'Shift', '
|
110990
|
+
keys: [['Control/Meta', 'Shift', 'Backslash'], ['Shift', 'F10']],
|
110947
110991
|
callback: () => {
|
110948
110992
|
const {
|
110949
110993
|
highlight
|
@@ -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: 29/11/2023 (built at
|
28
|
+
* Version: 14.0.0-next-8492c6c-20231128
|
29
|
+
* Release date: 29/11/2023 (built at 28/11/2023 14:01:40)
|
30
30
|
*/.handsontable .table td,.handsontable .table th{border-top:none}.handsontable tr{background:#fff}.handsontable td{background-color:inherit}.handsontable .table caption+thead tr:first-child td,.handsontable .table caption+thead tr:first-child th,.handsontable .table colgroup+thead tr:first-child td,.handsontable .table colgroup+thead tr:first-child th,.handsontable .table thead:first-child tr:first-child td,.handsontable .table thead:first-child tr:first-child th{border-top:1px solid #ccc}.handsontable .table-bordered{border:0;border-collapse:separate}.handsontable .table-bordered td,.handsontable .table-bordered th{border-left:none}.handsontable .table-bordered td:first-child,.handsontable .table-bordered th:first-child{border-left:1px solid #ccc}.handsontable .table>tbody>tr>td,.handsontable .table>tbody>tr>th,.handsontable .table>tfoot>tr>td,.handsontable .table>tfoot>tr>th,.handsontable .table>thead>tr>td,.handsontable .table>thead>tr>th{line-height:21px;padding:0}.col-lg-1.handsontable,.col-lg-10.handsontable,.col-lg-11.handsontable,.col-lg-12.handsontable,.col-lg-2.handsontable,.col-lg-3.handsontable,.col-lg-4.handsontable,.col-lg-5.handsontable,.col-lg-6.handsontable,.col-lg-7.handsontable,.col-lg-8.handsontable,.col-lg-9.handsontable,.col-md-1.handsontable,.col-md-10.handsontable,.col-md-11.handsontable,.col-md-12.handsontable,.col-md-2.handsontable,.col-md-3.handsontable,.col-md-4.handsontable,.col-md-5.handsontable,.col-md-6.handsontable,.col-md-7.handsontable,.col-md-8.handsontable,.col-md-9.handsontable .col-sm-1.handsontable,.col-sm-10.handsontable,.col-sm-11.handsontable,.col-sm-12.handsontable,.col-sm-2.handsontable,.col-sm-3.handsontable,.col-sm-4.handsontable,.col-sm-5.handsontable,.col-sm-6.handsontable,.col-sm-7.handsontable,.col-sm-8.handsontable,.col-sm-9.handsontable .col-xs-1.handsontable,.col-xs-10.handsontable,.col-xs-11.handsontable,.col-xs-12.handsontable,.col-xs-2.handsontable,.col-xs-3.handsontable,.col-xs-4.handsontable,.col-xs-5.handsontable,.col-xs-6.handsontable,.col-xs-7.handsontable,.col-xs-8.handsontable,.col-xs-9.handsontable{padding-left:0;padding-right:0}.handsontable .table-striped>tbody>tr:nth-of-type(2n){background-color:#fff}.handsontable{position:relative}.handsontable .hide{display:none}.handsontable .relative{position:relative}.handsontable .wtHider{width:0}.handsontable .wtSpreader{height:auto;position:relative;width:0}.handsontable div,.handsontable input,.handsontable table,.handsontable tbody,.handsontable td,.handsontable textarea,.handsontable th,.handsontable thead{box-sizing:content-box;-webkit-box-sizing:content-box;-moz-box-sizing:content-box}.handsontable input,.handsontable textarea{min-height:auto}.handsontable table.htCore{border-collapse:separate;border-spacing:0;border-width:0;cursor:default;margin:0;max-height:none;max-width:none;outline-width:0;table-layout:fixed;width:0}.handsontable col,.handsontable col.rowHeader{width:50px}.handsontable td,.handsontable th{background-color:#fff;border-bottom:1px solid #ccc;border-left-width:0;border-right:1px solid #ccc;border-top-width:0;empty-cells:show;height:22px;line-height:21px;outline:none;outline-width:0;overflow:hidden;padding:0 4px;vertical-align:top;white-space:pre-wrap}[dir=rtl].handsontable td,[dir=rtl].handsontable th{border-left:1px solid #ccc;border-right-width:0}.handsontable th:last-child{border-bottom:1px solid #ccc;border-left:none;border-right:1px solid #ccc}[dir=rtl].handsontable th:last-child{border-left:1px solid #ccc;border-right:none}.handsontable td:first-of-type,.handsontable th:first-child,.handsontable th:nth-child(2){border-left:1px solid #ccc}[dir=rtl].handsontable td:first-of-type,[dir=rtl].handsontable th:first-child,[dir=rtl].handsontable th:nth-child(2){border-right:1px solid #ccc}.handsontable .ht_clone_top th:nth-child(2){border-left-width:0;border-right:1px solid #ccc}[dir=rtl].handsontable .ht_clone_top th:nth-child(2){border-left:1px solid #ccc;border-right-width:0}.handsontable.htRowHeaders thead tr th:nth-child(2){border-left:1px solid #ccc}[dir=rtl].handsontable.htRowHeaders thead tr th:nth-child(2){border-right:1px solid #ccc}.handsontable tr:first-child td,.handsontable tr:first-child th{border-top:1px solid #ccc}.ht_master:not(.innerBorderInlineStart):not(.emptyColumns)~.handsontable tbody tr th,.ht_master:not(.innerBorderInlineStart):not(.emptyColumns)~.handsontable:not(.ht_clone_top) thead tr th:first-child{border-left:1px solid #ccc;border-right-width:0}[dir=rtl].ht_master:not(.innerBorderInlineStart):not(.emptyColumns)~.handsontable tbody tr th,[dir=rtl].ht_master:not(.innerBorderInlineStart):not(.emptyColumns)~.handsontable:not(.ht_clone_top) thead tr th:first-child{border-left-width:0;border-right:1px solid #ccc}.ht_master:not(.innerBorderTop):not(.innerBorderBottom) thead tr.lastChild th,.ht_master:not(.innerBorderTop):not(.innerBorderBottom) thead tr:last-child th,.ht_master:not(.innerBorderTop):not(.innerBorderBottom)~.handsontable thead tr.lastChild th,.ht_master:not(.innerBorderTop):not(.innerBorderBottom)~.handsontable thead tr:last-child th{border-bottom-width:0}.handsontable th{background-color:#f0f0f0;color:#222;font-weight:400;text-align:center;white-space:nowrap}.handsontable thead th{padding:0}.handsontable th.active{background-color:#ccc}.handsontable thead th .relative{padding:2px 4px}.handsontable span.colHeader{display:inline-block;line-height:1.1}.handsontable .wtBorder{font-size:0;position:absolute}.handsontable .wtBorder.hidden{display:none!important}.handsontable .wtBorder.current{z-index:10}.handsontable .wtBorder.area{z-index:8}.handsontable .wtBorder.fill{z-index:6}.handsontable .wtBorder.corner{cursor:crosshair;font-size:0}.ht_clone_master{z-index:100}.ht_clone_inline_start{z-index:120}.ht_clone_bottom{z-index:130}.ht_clone_bottom_inline_start_corner{z-index:150}.ht_clone_top{z-index:160}.ht_clone_top_inline_start_corner{z-index:180}.handsontable col.hidden{width:0!important}.handsontable tr.hidden,.handsontable tr.hidden td,.handsontable tr.hidden th{display:none}.ht_clone_bottom,.ht_clone_inline_start,.ht_clone_top,.ht_master{overflow:hidden}.ht_master .wtHolder{overflow:auto}.handsontable .ht_clone_inline_start thead,.handsontable .ht_master thead,.handsontable .ht_master tr th{visibility:hidden}.ht_clone_bottom .wtHolder,.ht_clone_inline_start .wtHolder,.ht_clone_top .wtHolder{overflow:hidden}.handsontable{color:#373737;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Helvetica Neue,Arial,sans-serif;font-size:13px;font-weight:400;touch-action:manipulation}.handsontable a{color:#104acc}.handsontable.htAutoSize{left:-99000px;position:absolute;top:-99000px;visibility:hidden}.handsontable td.htInvalid{background-color:#ffbeba!important}.handsontable td.htNoWrap{white-space:nowrap}.handsontable td.invisibleSelection,.handsontable th.invisibleSelection{outline:none}.handsontable td.invisibleSelection::selection,.handsontable th.invisibleSelection::selection{background:hsla(0,0%,100%,0)}.hot-display-license-info{color:#373737;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Helvetica Neue,Arial,sans-serif;font-size:10px;font-weight:400;padding:5px 0 3px;text-align:left}.hot-display-license-info a{color:#104acc;font-size:10px}.handsontable .htFocusCatcher{border:0;height:0;margin:0;opacity:0;padding:0;position:absolute;width:0;z-index:-1}.handsontable .manualColumnResizer{cursor:col-resize;height:25px;position:absolute;top:0;width:5px;z-index:210}.handsontable .manualRowResizer{cursor:row-resize;height:5px;left:0;position:absolute;width:50px;z-index:210}.handsontable .manualColumnResizer.active,.handsontable .manualColumnResizer:hover,.handsontable .manualRowResizer.active,.handsontable .manualRowResizer:hover{background-color:#34a9db}.handsontable .manualColumnResizerGuide{background-color:#34a9db;border-left:none;border-right:1px dashed #777;display:none;margin-left:5px;margin-right:unset;position:absolute;right:unset;top:0;width:0}[dir=rtl].handsontable .manualColumnResizerGuide{border-left:1px dashed #777;border-right:none;left:unset;margin-left:unset;margin-right:5px}.handsontable .manualRowResizerGuide{background-color:#34a9db;border-bottom:1px dashed #777;bottom:0;display:none;height:0;left:0;margin-top:5px;position:absolute}.handsontable .manualColumnResizerGuide.active,.handsontable .manualRowResizerGuide.active{display:block;z-index:209}.handsontable .columnSorting{position:relative}.handsontable .columnSorting.sortAction:hover{cursor:pointer;text-decoration:underline}.handsontable span.colHeader.columnSorting:before{background-position-x:right;background-repeat:no-repeat;background-size:contain;content:"";height:10px;left:unset;margin-top:-6px;padding-left:8px;padding-right:0;position:absolute;right:-9px;top:50%;width:5px}[dir=rtl].handsontable span.colHeader.columnSorting:before{background-position-x:left;left:-9px;padding-left:0;padding-right:8px;right:unset}.handsontable span.colHeader.columnSorting.ascending:before{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAoCAMAAADJ7yrpAAAAKlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKE86IAAAADXRSTlMABBEmRGprlJW72e77tTkTKwAAAFNJREFUeAHtzjkSgCAUBNHPgsoy97+ulGXRqJE5L+xkxoYt2UdsLb5bqFINz+aLuuLn5rIu2RkO3fZpWENimNgiw6iBYRTPMLJjGFxQZ1hxxb/xBI1qC8k39CdKAAAAAElFTkSuQmCC)}.handsontable span.colHeader.columnSorting.descending:before{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAoCAMAAADJ7yrpAAAAKlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKE86IAAAADXRSTlMABBEmRGprlJW72e77tTkTKwAAAFJJREFUeAHtzjkSgCAQRNFmQYUZ7n9dKUvru0TmvPAn3br0QfgdZ5xx6x+rQn23GqTYnq1FDcnuzZIO2WmedVqIRVxgGKEyjNgYRjKGkZ1hFIZ3I70LyM0VtU8AAAAASUVORK5CYII=)}.htGhostTable .htCore span.colHeader.columnSorting:not(.indicatorDisabled):before{content:"*";display:inline-block;padding-right:20px;position:relative}.handsontable td.area,.handsontable td.area-1,.handsontable td.area-2,.handsontable td.area-3,.handsontable td.area-4,.handsontable td.area-5,.handsontable td.area-6,.handsontable td.area-7{position:relative}.handsontable td.area-1:before,.handsontable td.area-2:before,.handsontable td.area-3:before,.handsontable td.area-4:before,.handsontable td.area-5:before,.handsontable td.area-6:before,.handsontable td.area-7:before,.handsontable td.area:before{background:#005eff;bottom:0;bottom:-100%\9;content:"";left:0;position:absolute;right:0;top:0}@media (-ms-high-contrast:none),screen and (-ms-high-contrast:active){.handsontable td.area-1:before,.handsontable td.area-2:before,.handsontable td.area-3:before,.handsontable td.area-4:before,.handsontable td.area-5:before,.handsontable td.area-6:before,.handsontable td.area-7:before,.handsontable td.area:before{bottom:-100%}}.handsontable td.area:before{opacity:.1}.handsontable td.area-1:before{opacity:.2}.handsontable td.area-2:before{opacity:.27}.handsontable td.area-3:before{opacity:.35}.handsontable td.area-4:before{opacity:.41}.handsontable td.area-5:before{opacity:.47}.handsontable td.area-6:before{opacity:.54}.handsontable td.area-7:before{opacity:.58}.handsontable tbody th.current,.handsontable thead th.current{box-shadow:inset 0 0 0 2px #4b89ff}.handsontable tbody th.ht__highlight,.handsontable thead th.ht__highlight{background-color:#dcdcdc}.handsontable tbody th.ht__active_highlight,.handsontable thead th.ht__active_highlight{background-color:#8eb0e7;color:#000}.handsontableInput{background-color:#fff;border:none;border-radius:0;box-shadow:inset 0 0 0 2px #5292f7;color:#000;display:block;font-family:inherit;font-size:inherit;line-height:21px;margin:0;outline-width:0;padding:1px 5px 0;resize:none}.handsontableInput:focus{outline:none}.handsontableInputHolder{left:0;position:absolute;top:0}.htSelectEditor{-webkit-appearance:menulist-button!important;position:absolute;width:auto}.htSelectEditor:focus{outline:none}.handsontable .htDimmed{color:#777}.handsontable .htSubmenu{position:relative}.handsontable .htSubmenu :after{color:#777;content:"▶";font-size:9px;position:absolute;right:5px}[dir=rtl].handsontable .htSubmenu :after{content:""}[dir=rtl].handsontable .htSubmenu :before{color:#777;content:"◀";font-size:9px;left:5px;position:absolute}.handsontable .htLeft{text-align:left}.handsontable .htCenter{text-align:center}.handsontable .htRight{text-align:right}.handsontable .htJustify{text-align:justify}.handsontable .htTop{vertical-align:top}.handsontable .htMiddle{vertical-align:middle}.handsontable .htBottom{vertical-align:bottom}.handsontable .htPlaceholder{color:#999}.handsontable.listbox{margin:0}.handsontable.listbox .ht_master table{background:#fff;border:1px solid #ccc;border-collapse:separate}.handsontable.listbox td,.handsontable.listbox th,.handsontable.listbox tr:first-child td,.handsontable.listbox tr:first-child th,.handsontable.listbox tr:last-child th{border-color:transparent!important}.handsontable.listbox td,.handsontable.listbox th{text-overflow:ellipsis;white-space:nowrap}.handsontable.listbox td.htDimmed{color:inherit;cursor:default;font-style:inherit}.handsontable.listbox .wtBorder{visibility:hidden}.handsontable.listbox tr td.current,.handsontable.listbox tr:hover td{background:#eee}.ht_editor_hidden{z-index:-1}.ht_editor_visible{z-index:200}.handsontable td.htSearchResult{background:#fcedd9;color:#583707}.handsontable .collapsibleIndicator{background:#eee;border:1px solid #a6a6a6;border-radius:10px;-webkit-box-shadow:0 0 0 6px #eee;-moz-box-shadow:0 0 0 6px #eee;box-shadow:0 0 0 3px #eee;color:#222;cursor:pointer;font-size:10px;height:10px;left:unset;line-height:8px;position:absolute;right:5px;text-align:center;top:50%;transform:translateY(-50%);width:10px}[dir=rtl].handsontable .collapsibleIndicator{left:5px;right:unset}.handsontable.mobile,.handsontable.mobile .wtHolder{-webkit-touch-callout:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-overflow-scrolling:touch;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.handsontable.mobile .handsontableInput:focus{-webkit-appearance:none;-webkit-box-shadow:inset 0 0 0 2px #5292f7;-moz-box-shadow:inset 0 0 0 2px #5292f7;box-shadow:inset 0 0 0 2px #5292f7}.handsontable .bottomSelectionHandle,.handsontable .bottomSelectionHandle-HitArea,.handsontable .topSelectionHandle,.handsontable .topSelectionHandle-HitArea{left:-10000px;right:unset;top:-10000px;z-index:9999}[dir=rtl].handsontable .bottomSelectionHandle,[dir=rtl].handsontable .bottomSelectionHandle-HitArea,[dir=rtl].handsontable .topSelectionHandle,[dir=rtl].handsontable .topSelectionHandle-HitArea{left:unset;right:-10000px}.handsontable.hide-tween{-webkit-animation:opacity-hide .3s;animation:opacity-hide .3s;animation-fill-mode:forwards;-webkit-animation-fill-mode:forwards}.handsontable.show-tween{-webkit-animation:opacity-show .3s;animation:opacity-show .3s;animation-fill-mode:forwards;-webkit-animation-fill-mode:forwards}
|
31
31
|
/*!
|
32
32
|
* Pikaday
|