handsontable 14.0.0-next-23212d5-20231127 → 14.0.0-next-477622d-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/overlay/_base.js +2 -2
- package/3rdparty/walkontable/src/overlay/_base.mjs +2 -2
- package/3rdparty/walkontable/src/renderer/columnHeaders.js +5 -2
- package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +6 -3
- 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 +155 -82
- package/dist/handsontable.full.min.css +2 -2
- package/dist/handsontable.full.min.js +6 -6
- package/dist/handsontable.js +155 -82
- package/dist/handsontable.min.css +2 -2
- package/dist/handsontable.min.js +6 -6
- package/editors/passwordEditor/passwordEditor.js +4 -0
- package/editors/passwordEditor/passwordEditor.mjs +5 -1
- package/focusManager.js +92 -58
- package/focusManager.mjs +92 -58
- package/helpers/a11y.js +2 -0
- package/helpers/a11y.mjs +1 -0
- package/helpers/mixed.js +2 -2
- package/helpers/mixed.mjs +2 -2
- package/package.json +1 -1
- package/renderers/checkboxRenderer/checkboxRenderer.js +0 -1
- package/renderers/checkboxRenderer/checkboxRenderer.mjs +0 -1
- package/tableView.js +31 -2
- package/tableView.mjs +31 -2
package/dist/handsontable.js
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-477622d-20231128
|
29
|
+
* Release date: 29/11/2023 (built at 28/11/2023 12:48:17)
|
30
30
|
*/
|
31
31
|
(function webpackUniversalModuleDefinition(root, factory) {
|
32
32
|
if(typeof exports === 'object' && typeof module === 'object')
|
@@ -105,8 +105,8 @@ Handsontable.hooks = _pluginHooks.default.getSingleton();
|
|
105
105
|
Handsontable.CellCoords = _src.CellCoords;
|
106
106
|
Handsontable.CellRange = _src.CellRange;
|
107
107
|
Handsontable.packageName = 'handsontable';
|
108
|
-
Handsontable.buildDate = "
|
109
|
-
Handsontable.version = "14.0.0-next-
|
108
|
+
Handsontable.buildDate = "28/11/2023 12:48:17";
|
109
|
+
Handsontable.version = "14.0.0-next-477622d-20231128";
|
110
110
|
Handsontable.languages = {
|
111
111
|
dictionaryKeys: _registry.dictionaryKeys,
|
112
112
|
getLanguageDictionary: _registry.getLanguageDictionary,
|
@@ -8513,7 +8513,7 @@ const domMessages = {
|
|
8513
8513
|
function _injectProductInfo(key, element) {
|
8514
8514
|
const hasValidType = !isEmpty(key);
|
8515
8515
|
const isNonCommercial = typeof key === 'string' && key.toLowerCase() === 'non-commercial-and-evaluation';
|
8516
|
-
const hotVersion = "14.0.0-next-
|
8516
|
+
const hotVersion = "14.0.0-next-477622d-20231128";
|
8517
8517
|
let keyValidityDate;
|
8518
8518
|
let consoleMessageState = 'invalid';
|
8519
8519
|
let domMessageState = 'invalid';
|
@@ -8521,7 +8521,7 @@ function _injectProductInfo(key, element) {
|
|
8521
8521
|
const schemaValidity = _checkKeySchema(key);
|
8522
8522
|
if (hasValidType || isNonCommercial || schemaValidity) {
|
8523
8523
|
if (schemaValidity) {
|
8524
|
-
const releaseDate = (0, _moment.default)("
|
8524
|
+
const releaseDate = (0, _moment.default)("29/11/2023", 'DD/MM/YYYY');
|
8525
8525
|
const releaseDays = Math.floor(releaseDate.toDate().getTime() / 8.64e7);
|
8526
8526
|
const keyValidityDays = _extractTime(key);
|
8527
8527
|
keyValidityDate = (0, _moment.default)((keyValidityDays + 1) * 8.64e7, 'x').format('MMMM DD, YYYY');
|
@@ -8971,6 +8971,8 @@ const A11Y_GRIDCELL = () => ['role', 'gridcell'];
|
|
8971
8971
|
exports.A11Y_GRIDCELL = A11Y_GRIDCELL;
|
8972
8972
|
const A11Y_ROWHEADER = () => ['role', 'rowheader'];
|
8973
8973
|
exports.A11Y_ROWHEADER = A11Y_ROWHEADER;
|
8974
|
+
const A11Y_ROWGROUP = () => ['role', 'rowgroup'];
|
8975
|
+
exports.A11Y_ROWGROUP = A11Y_ROWGROUP;
|
8974
8976
|
const A11Y_COLUMNHEADER = () => ['role', 'columnheader'];
|
8975
8977
|
exports.A11Y_COLUMNHEADER = A11Y_COLUMNHEADER;
|
8976
8978
|
const A11Y_ROW = () => ['role', 'row'];
|
@@ -14180,10 +14182,11 @@ function getListenersCounter() {
|
|
14180
14182
|
__webpack_require__(78);
|
14181
14183
|
var _interopRequireDefault = __webpack_require__(1);
|
14182
14184
|
exports.__esModule = true;
|
14183
|
-
var
|
14185
|
+
var _classPrivateFieldGet7 = _interopRequireDefault(__webpack_require__(133));
|
14184
14186
|
var _classPrivateFieldSet2 = _interopRequireDefault(__webpack_require__(136));
|
14185
14187
|
var _console = __webpack_require__(129);
|
14186
14188
|
var _element = __webpack_require__(107);
|
14189
|
+
var _function = __webpack_require__(115);
|
14187
14190
|
function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
|
14188
14191
|
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
14189
14192
|
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
@@ -14208,9 +14211,10 @@ var _hot = /*#__PURE__*/new WeakMap();
|
|
14208
14211
|
var _focusMode = /*#__PURE__*/new WeakMap();
|
14209
14212
|
var _refocusDelay = /*#__PURE__*/new WeakMap();
|
14210
14213
|
var _refocusElementGetter = /*#__PURE__*/new WeakMap();
|
14211
|
-
var
|
14214
|
+
var _debouncedSelect = /*#__PURE__*/new WeakMap();
|
14212
14215
|
var _getSelectedCell = /*#__PURE__*/new WeakSet();
|
14213
|
-
var
|
14216
|
+
var _focusCell = /*#__PURE__*/new WeakSet();
|
14217
|
+
var _focusEditorElement = /*#__PURE__*/new WeakSet();
|
14214
14218
|
var _onUpdateSettings = /*#__PURE__*/new WeakSet();
|
14215
14219
|
class FocusManager {
|
14216
14220
|
constructor(hotInstance) {
|
@@ -14218,29 +14222,23 @@ class FocusManager {
|
|
14218
14222
|
/**
|
14219
14223
|
* Update the manager configuration after calling `updateSettings`.
|
14220
14224
|
*
|
14221
|
-
* @private
|
14222
14225
|
* @param {object} newSettings The new settings passed to the `updateSettings` method.
|
14223
14226
|
*/
|
14224
14227
|
_classPrivateMethodInitSpec(this, _onUpdateSettings);
|
14225
14228
|
/**
|
14226
|
-
* Manage the browser's focus after cell selection.
|
14227
|
-
*
|
14228
|
-
* @private
|
14229
|
+
* Manage the browser's focus after cell selection end.
|
14229
14230
|
*/
|
14230
|
-
_classPrivateMethodInitSpec(this,
|
14231
|
+
_classPrivateMethodInitSpec(this, _focusEditorElement);
|
14231
14232
|
/**
|
14232
|
-
*
|
14233
|
-
*
|
14234
|
-
* @private
|
14235
|
-
* @returns {HTMLTableCellElement}
|
14233
|
+
* Manage the browser's focus after each cell selection change.
|
14236
14234
|
*/
|
14237
|
-
_classPrivateMethodInitSpec(this,
|
14235
|
+
_classPrivateMethodInitSpec(this, _focusCell);
|
14238
14236
|
/**
|
14239
|
-
* Get
|
14237
|
+
* Get and return the currently selected and highlighted cell/header element.
|
14240
14238
|
*
|
14241
|
-
* @
|
14239
|
+
* @param {Function} callback Callback function to be called after the cell element is retrieved.
|
14242
14240
|
*/
|
14243
|
-
_classPrivateMethodInitSpec(this,
|
14241
|
+
_classPrivateMethodInitSpec(this, _getSelectedCell);
|
14244
14242
|
/**
|
14245
14243
|
* The Handsontable instance.
|
14246
14244
|
*/
|
@@ -14256,7 +14254,7 @@ class FocusManager {
|
|
14256
14254
|
* - 'mixed' - The browser's focus switches from the lastly selected cell element to the currently active editor's
|
14257
14255
|
* `TEXTAREA` element after a delay defined in the manager.
|
14258
14256
|
*
|
14259
|
-
* @type {
|
14257
|
+
* @type {'cell' | 'mixed'}
|
14260
14258
|
*/
|
14261
14259
|
_classPrivateFieldInitSpec(this, _focusMode, {
|
14262
14260
|
writable: true,
|
@@ -14282,20 +14280,35 @@ class FocusManager {
|
|
14282
14280
|
writable: true,
|
14283
14281
|
value: null
|
14284
14282
|
});
|
14283
|
+
/**
|
14284
|
+
* Map of the debounced `select` functions.
|
14285
|
+
*
|
14286
|
+
* @type {Map<number, Function>}
|
14287
|
+
*/
|
14288
|
+
_classPrivateFieldInitSpec(this, _debouncedSelect, {
|
14289
|
+
writable: true,
|
14290
|
+
value: new Map()
|
14291
|
+
});
|
14285
14292
|
const hotSettings = hotInstance.getSettings();
|
14286
14293
|
(0, _classPrivateFieldSet2.default)(this, _hot, hotInstance);
|
14287
14294
|
(0, _classPrivateFieldSet2.default)(this, _focusMode, hotSettings.imeFastEdit ? FOCUS_MODES.MIXED : FOCUS_MODES.CELL);
|
14288
|
-
(0,
|
14295
|
+
(0, _classPrivateFieldGet7.default)(this, _hot).addHook('afterUpdateSettings', function () {
|
14289
14296
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
14290
14297
|
args[_key] = arguments[_key];
|
14291
14298
|
}
|
14292
14299
|
return _classPrivateMethodGet(_this, _onUpdateSettings, _onUpdateSettings2).call(_this, ...args);
|
14293
14300
|
});
|
14294
|
-
(0,
|
14301
|
+
(0, _classPrivateFieldGet7.default)(this, _hot).addHook('afterSelection', function () {
|
14295
14302
|
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
14296
14303
|
args[_key2] = arguments[_key2];
|
14297
14304
|
}
|
14298
|
-
return _classPrivateMethodGet(_this,
|
14305
|
+
return _classPrivateMethodGet(_this, _focusCell, _focusCell2).call(_this, ...args);
|
14306
|
+
});
|
14307
|
+
(0, _classPrivateFieldGet7.default)(this, _hot).addHook('afterSelectionEnd', function () {
|
14308
|
+
for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
|
14309
|
+
args[_key3] = arguments[_key3];
|
14310
|
+
}
|
14311
|
+
return _classPrivateMethodGet(_this, _focusEditorElement, _focusEditorElement2).call(_this, ...args);
|
14299
14312
|
});
|
14300
14313
|
}
|
14301
14314
|
|
@@ -14305,7 +14318,7 @@ class FocusManager {
|
|
14305
14318
|
* @returns {'cell' | 'mixed'}
|
14306
14319
|
*/
|
14307
14320
|
getFocusMode() {
|
14308
|
-
return (0,
|
14321
|
+
return (0, _classPrivateFieldGet7.default)(this, _focusMode);
|
14309
14322
|
}
|
14310
14323
|
|
14311
14324
|
/**
|
@@ -14328,7 +14341,7 @@ class FocusManager {
|
|
14328
14341
|
* @returns {number} Delay in milliseconds.
|
14329
14342
|
*/
|
14330
14343
|
getRefocusDelay() {
|
14331
|
-
return (0,
|
14344
|
+
return (0, _classPrivateFieldGet7.default)(this, _refocusDelay);
|
14332
14345
|
}
|
14333
14346
|
|
14334
14347
|
/**
|
@@ -14356,11 +14369,11 @@ class FocusManager {
|
|
14356
14369
|
* @returns {HTMLTextAreaElement|HTMLElement|undefined}
|
14357
14370
|
*/
|
14358
14371
|
getRefocusElement() {
|
14359
|
-
if (typeof (0,
|
14360
|
-
return (0,
|
14372
|
+
if (typeof (0, _classPrivateFieldGet7.default)(this, _refocusElementGetter) === 'function') {
|
14373
|
+
return (0, _classPrivateFieldGet7.default)(this, _refocusElementGetter).call(this);
|
14361
14374
|
} else {
|
14362
14375
|
var _classPrivateFieldGet2;
|
14363
|
-
return (_classPrivateFieldGet2 = (0,
|
14376
|
+
return (_classPrivateFieldGet2 = (0, _classPrivateFieldGet7.default)(this, _hot).getActiveEditor()) === null || _classPrivateFieldGet2 === void 0 ? void 0 : _classPrivateFieldGet2.TEXTAREA;
|
14364
14377
|
}
|
14365
14378
|
}
|
14366
14379
|
|
@@ -14370,17 +14383,26 @@ class FocusManager {
|
|
14370
14383
|
* @param {HTMLTableCellElement} [selectedCell] The highlighted cell/header element.
|
14371
14384
|
*/
|
14372
14385
|
focusOnHighlightedCell(selectedCell) {
|
14373
|
-
|
14374
|
-
|
14375
|
-
|
14376
|
-
|
14377
|
-
|
14378
|
-
|
14379
|
-
|
14380
|
-
|
14381
|
-
|
14382
|
-
|
14383
|
-
|
14386
|
+
const focusElement = element => {
|
14387
|
+
var _classPrivateFieldGet3, _classPrivateFieldGet4;
|
14388
|
+
const currentHighlightCoords = (_classPrivateFieldGet3 = (0, _classPrivateFieldGet7.default)(this, _hot).getSelectedRangeLast()) === null || _classPrivateFieldGet3 === void 0 ? void 0 : _classPrivateFieldGet3.highlight;
|
14389
|
+
if (!currentHighlightCoords || !element) {
|
14390
|
+
return;
|
14391
|
+
}
|
14392
|
+
let elementToBeFocused = (0, _classPrivateFieldGet7.default)(this, _hot).runHooks('modifyFocusedElement', currentHighlightCoords.row, currentHighlightCoords.col, element);
|
14393
|
+
if (!(elementToBeFocused instanceof HTMLElement)) {
|
14394
|
+
elementToBeFocused = element;
|
14395
|
+
}
|
14396
|
+
if (elementToBeFocused && !((_classPrivateFieldGet4 = (0, _classPrivateFieldGet7.default)(this, _hot).getActiveEditor()) !== null && _classPrivateFieldGet4 !== void 0 && _classPrivateFieldGet4.isOpened())) {
|
14397
|
+
elementToBeFocused.focus({
|
14398
|
+
preventScroll: true
|
14399
|
+
});
|
14400
|
+
}
|
14401
|
+
};
|
14402
|
+
if (selectedCell) {
|
14403
|
+
focusElement(selectedCell);
|
14404
|
+
} else {
|
14405
|
+
_classPrivateMethodGet(this, _getSelectedCell, _getSelectedCell2).call(this, element => focusElement(element));
|
14384
14406
|
}
|
14385
14407
|
}
|
14386
14408
|
|
@@ -14388,49 +14410,63 @@ class FocusManager {
|
|
14388
14410
|
* Set the focus to the active editor's `TEXTAREA` element after the provided delay. If no delay is provided, it
|
14389
14411
|
* will be taken from the manager's configuration.
|
14390
14412
|
*
|
14391
|
-
* @param {number} delay Delay in milliseconds.
|
14413
|
+
* @param {number} [delay] Delay in milliseconds.
|
14392
14414
|
*/
|
14393
14415
|
refocusToEditorTextarea() {
|
14394
|
-
var
|
14395
|
-
let delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : (0,
|
14416
|
+
var _classPrivateFieldGet5;
|
14417
|
+
let delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : (0, _classPrivateFieldGet7.default)(this, _refocusDelay);
|
14396
14418
|
const refocusElement = this.getRefocusElement();
|
14397
14419
|
|
14398
14420
|
// Re-focus on the editor's `TEXTAREA` element (or a predefined element) if the `imeFastEdit` option is enabled.
|
14399
|
-
if ((0,
|
14400
|
-
(0,
|
14401
|
-
|
14402
|
-
|
14421
|
+
if ((0, _classPrivateFieldGet7.default)(this, _hot).getSettings().imeFastEdit && !((_classPrivateFieldGet5 = (0, _classPrivateFieldGet7.default)(this, _hot).getActiveEditor()) !== null && _classPrivateFieldGet5 !== void 0 && _classPrivateFieldGet5.isOpened()) && !!refocusElement) {
|
14422
|
+
if (!(0, _classPrivateFieldGet7.default)(this, _debouncedSelect).has(delay)) {
|
14423
|
+
(0, _classPrivateFieldGet7.default)(this, _debouncedSelect).set(delay, (0, _function.debounce)(() => {
|
14424
|
+
refocusElement.select();
|
14425
|
+
}, delay));
|
14426
|
+
}
|
14427
|
+
(0, _classPrivateFieldGet7.default)(this, _debouncedSelect).get(delay)();
|
14403
14428
|
}
|
14404
14429
|
}
|
14405
14430
|
}
|
14406
14431
|
exports.FocusManager = FocusManager;
|
14407
|
-
function
|
14408
|
-
|
14409
|
-
|
14432
|
+
function _getSelectedCell2(callback) {
|
14433
|
+
var _classPrivateFieldGet6;
|
14434
|
+
const highlight = (_classPrivateFieldGet6 = (0, _classPrivateFieldGet7.default)(this, _hot).getSelectedRangeLast()) === null || _classPrivateFieldGet6 === void 0 ? void 0 : _classPrivateFieldGet6.highlight;
|
14435
|
+
if (!highlight) {
|
14436
|
+
callback(null);
|
14437
|
+
return;
|
14438
|
+
}
|
14439
|
+
const cell = (0, _classPrivateFieldGet7.default)(this, _hot).getCell(highlight.row, highlight.col, true);
|
14440
|
+
if (cell === null) {
|
14441
|
+
(0, _classPrivateFieldGet7.default)(this, _hot).addHookOnce('afterScroll', () => {
|
14442
|
+
callback((0, _classPrivateFieldGet7.default)(this, _hot).getCell(highlight.row, highlight.col, true));
|
14443
|
+
});
|
14444
|
+
} else {
|
14445
|
+
callback(cell);
|
14446
|
+
}
|
14410
14447
|
}
|
14411
|
-
function
|
14412
|
-
|
14413
|
-
|
14448
|
+
function _focusCell2() {
|
14449
|
+
_classPrivateMethodGet(this, _getSelectedCell, _getSelectedCell2).call(this, selectedCell => {
|
14450
|
+
const {
|
14451
|
+
activeElement
|
14452
|
+
} = (0, _classPrivateFieldGet7.default)(this, _hot).rootDocument;
|
14453
|
+
|
14454
|
+
// Blurring the `activeElement` removes the unwanted border around the focusable element (#6877)
|
14455
|
+
// and resets the `document.activeElement` property. The blurring should happen only when the
|
14456
|
+
// previously selected input element has not belonged to the Handsontable editor. If blurring is
|
14457
|
+
// triggered for all elements, there is a problem with the disappearing IME editor (#9672).
|
14458
|
+
if (activeElement && (0, _element.isOutsideInput)(activeElement)) {
|
14459
|
+
activeElement.blur();
|
14460
|
+
}
|
14461
|
+
this.focusOnHighlightedCell(selectedCell);
|
14462
|
+
});
|
14414
14463
|
}
|
14415
|
-
function
|
14416
|
-
|
14417
|
-
|
14418
|
-
activeElement
|
14419
|
-
} = (0, _classPrivateFieldGet5.default)(this, _hot).rootDocument;
|
14420
|
-
|
14421
|
-
// Blurring the `activeElement` removes the unwanted border around the focusable element (#6877)
|
14422
|
-
// and resets the `document.activeElement` property. The blurring should happen only when the
|
14423
|
-
// previously selected input element has not belonged to the Handsontable editor. If blurring is
|
14424
|
-
// triggered for all elements, there is a problem with the disappearing IME editor (#9672).
|
14425
|
-
if (activeElement && (0, _element.isOutsideInput)(activeElement)) {
|
14426
|
-
activeElement.blur();
|
14427
|
-
}
|
14428
|
-
this.focusOnHighlightedCell(selectedCell);
|
14429
|
-
if (this.getFocusMode() === FOCUS_MODES.MIXED && selectedCell.nodeName === 'TD') {
|
14430
|
-
(0, _classPrivateFieldGet5.default)(this, _hot).addHookOnce('afterSelectionEnd', () => {
|
14464
|
+
function _focusEditorElement2() {
|
14465
|
+
_classPrivateMethodGet(this, _getSelectedCell, _getSelectedCell2).call(this, selectedCell => {
|
14466
|
+
if (this.getFocusMode() === FOCUS_MODES.MIXED && selectedCell.nodeName === 'TD') {
|
14431
14467
|
this.refocusToEditorTextarea();
|
14432
|
-
}
|
14433
|
-
}
|
14468
|
+
}
|
14469
|
+
});
|
14434
14470
|
}
|
14435
14471
|
function _onUpdateSettings2(newSettings) {
|
14436
14472
|
if (newSettings.imeFastEdit && this.getFocusMode() !== FOCUS_MODES.MIXED) {
|
@@ -15447,8 +15483,10 @@ var _src = _interopRequireDefault(__webpack_require__(147));
|
|
15447
15483
|
var _mouseEventHandler = __webpack_require__(217);
|
15448
15484
|
var _rootInstance = __webpack_require__(218);
|
15449
15485
|
var _a11y = __webpack_require__(114);
|
15486
|
+
function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
|
15450
15487
|
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
15451
15488
|
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
15489
|
+
function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
|
15452
15490
|
/**
|
15453
15491
|
* @class TableView
|
15454
15492
|
* @private
|
@@ -15460,11 +15498,25 @@ var _mouseDown = /*#__PURE__*/new WeakMap();
|
|
15460
15498
|
var _table = /*#__PURE__*/new WeakMap();
|
15461
15499
|
var _lastWidth = /*#__PURE__*/new WeakMap();
|
15462
15500
|
var _lastHeight = /*#__PURE__*/new WeakMap();
|
15501
|
+
var _getAriaColcount = /*#__PURE__*/new WeakSet();
|
15502
|
+
var _updateAriaColcount = /*#__PURE__*/new WeakSet();
|
15463
15503
|
class TableView {
|
15464
15504
|
/**
|
15465
15505
|
* @param {Hanstontable} hotInstance Instance of {@link Handsontable}.
|
15466
15506
|
*/
|
15467
15507
|
constructor(hotInstance) {
|
15508
|
+
/**
|
15509
|
+
* Update the `aria-colcount` attribute by the provided value.
|
15510
|
+
*
|
15511
|
+
* @param {number} delta The number of columns to add or remove to the aria tag.
|
15512
|
+
*/
|
15513
|
+
_classPrivateMethodInitSpec(this, _updateAriaColcount);
|
15514
|
+
/**
|
15515
|
+
* Return the value of the `aria-colcount` attribute.
|
15516
|
+
*
|
15517
|
+
* @returns {number} The value of the `aria-colcount` attribute.
|
15518
|
+
*/
|
15519
|
+
_classPrivateMethodInitSpec(this, _getAriaColcount);
|
15468
15520
|
/**
|
15469
15521
|
* Instance of {@link Handsontable}.
|
15470
15522
|
*
|
@@ -15701,7 +15753,7 @@ class TableView {
|
|
15701
15753
|
}
|
15702
15754
|
if (this.settings.ariaTags) {
|
15703
15755
|
(0, _element.setAttribute)((0, _classPrivateFieldGet2.default)(this, _table), [(0, _a11y.A11Y_PRESENTATION)()]);
|
15704
|
-
(0, _element.setAttribute)(rootElement, [(0, _a11y.A11Y_TREEGRID)(), (0, _a11y.A11Y_ROWCOUNT)(
|
15756
|
+
(0, _element.setAttribute)(rootElement, [(0, _a11y.A11Y_TREEGRID)(), (0, _a11y.A11Y_ROWCOUNT)(-1), (0, _a11y.A11Y_COLCOUNT)(this.hot.countCols()), (0, _a11y.A11Y_MULTISELECTABLE)()]);
|
15705
15757
|
}
|
15706
15758
|
this.THEAD = rootDocument.createElement('THEAD');
|
15707
15759
|
(0, _classPrivateFieldGet2.default)(this, _table).appendChild(this.THEAD);
|
@@ -16094,6 +16146,13 @@ class TableView {
|
|
16094
16146
|
}
|
16095
16147
|
this.hot.runHooks('afterGetRowHeaderRenderers', headerRenderers);
|
16096
16148
|
(0, _classPrivateFieldSet2.default)(this, _rowHeadersCount, headerRenderers.length);
|
16149
|
+
if (this.hot.getSettings().ariaTags) {
|
16150
|
+
// Update the aria-colcount attribute.
|
16151
|
+
// Only needs to be done once after initialization/data update.
|
16152
|
+
if (_classPrivateMethodGet(this, _getAriaColcount, _getAriaColcount2).call(this) === this.hot.countCols()) {
|
16153
|
+
_classPrivateMethodGet(this, _updateAriaColcount, _updateAriaColcount2).call(this, (0, _classPrivateFieldGet2.default)(this, _rowHeadersCount));
|
16154
|
+
}
|
16155
|
+
}
|
16097
16156
|
return headerRenderers;
|
16098
16157
|
},
|
16099
16158
|
columnHeaders: () => {
|
@@ -16733,7 +16792,6 @@ class TableView {
|
|
16733
16792
|
getRowHeadersCount() {
|
16734
16793
|
return (0, _classPrivateFieldGet2.default)(this, _rowHeadersCount);
|
16735
16794
|
}
|
16736
|
-
|
16737
16795
|
/**
|
16738
16796
|
* Destroys internal WalkOnTable's instance. Detaches all of the bonded listeners.
|
16739
16797
|
*
|
@@ -16744,6 +16802,13 @@ class TableView {
|
|
16744
16802
|
this.eventManager.destroy();
|
16745
16803
|
}
|
16746
16804
|
}
|
16805
|
+
function _getAriaColcount2() {
|
16806
|
+
return parseInt(this.hot.rootElement.getAttribute((0, _a11y.A11Y_COLCOUNT)()[0]), 10);
|
16807
|
+
}
|
16808
|
+
function _updateAriaColcount2(delta) {
|
16809
|
+
const colCount = _classPrivateMethodGet(this, _getAriaColcount, _getAriaColcount2).call(this) + delta;
|
16810
|
+
(0, _element.setAttribute)(this.hot.rootElement, ...(0, _a11y.A11Y_COLCOUNT)(colCount));
|
16811
|
+
}
|
16747
16812
|
var _default = exports["default"] = TableView;
|
16748
16813
|
|
16749
16814
|
/***/ }),
|
@@ -22380,7 +22445,7 @@ class ColumnHeadersRenderer extends _base.default {
|
|
22380
22445
|
columnHeadersCount
|
22381
22446
|
} = this.table;
|
22382
22447
|
if (this.table.isAriaEnabled()) {
|
22383
|
-
(0, _element.setAttribute)(this.rootNode, [(0, _a11y.
|
22448
|
+
(0, _element.setAttribute)(this.rootNode, [(0, _a11y.A11Y_ROWGROUP)()]);
|
22384
22449
|
}
|
22385
22450
|
for (let rowHeaderIndex = 0; rowHeaderIndex < columnHeadersCount; rowHeaderIndex += 1) {
|
22386
22451
|
const {
|
@@ -22402,7 +22467,10 @@ class ColumnHeadersRenderer extends _base.default {
|
|
22402
22467
|
// Remove all accessibility-related attributes for the header to start fresh.
|
22403
22468
|
(0, _element.removeAttribute)(TH, [new RegExp('aria-(.*)'), new RegExp('role')]);
|
22404
22469
|
if (this.table.isAriaEnabled()) {
|
22405
|
-
(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)()] : [
|
22470
|
+
(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)()] : [
|
22471
|
+
// Adding `role=row` to the corner headers to prevent
|
22472
|
+
// https://github.com/handsontable/dev-handsontable/issues/1574
|
22473
|
+
(0, _a11y.A11Y_ROW)()])]);
|
22406
22474
|
}
|
22407
22475
|
columnHeaderFunctions[rowHeaderIndex](sourceColumnIndex, TH, rowHeaderIndex);
|
22408
22476
|
}
|
@@ -22554,7 +22622,7 @@ class RowsRenderer extends _base.default {
|
|
22554
22622
|
the number of rendered rows by specifying the table height and/or turning off the "renderAllRows" option.`);
|
22555
22623
|
}
|
22556
22624
|
if (this.table.isAriaEnabled()) {
|
22557
|
-
(0, _element.setAttribute)(this.rootNode, [(0, _a11y.
|
22625
|
+
(0, _element.setAttribute)(this.rootNode, [(0, _a11y.A11Y_ROWGROUP)()]);
|
22558
22626
|
}
|
22559
22627
|
this.orderView.setSize(rowsToRender).setOffset(this.table.renderedRowToSource(0)).start();
|
22560
22628
|
for (let visibleRowIndex = 0; visibleRowIndex < rowsToRender; visibleRowIndex++) {
|
@@ -23625,8 +23693,8 @@ class Overlay {
|
|
23625
23693
|
rootDocument,
|
23626
23694
|
rootWindow
|
23627
23695
|
} = this.domBindings;
|
23628
|
-
const clone = rootDocument.createElement('
|
23629
|
-
const clonedTable = rootDocument.createElement('
|
23696
|
+
const clone = rootDocument.createElement('div');
|
23697
|
+
const clonedTable = rootDocument.createElement('table');
|
23630
23698
|
const tableParent = wtTable.wtRootElement.parentNode;
|
23631
23699
|
clone.className = `${_constants.CLONE_CLASS_NAMES.get(this.type)} handsontable`;
|
23632
23700
|
clone.setAttribute('dir', this.isRtl() ? 'rtl' : 'ltr');
|
@@ -41619,7 +41687,9 @@ function replaceData(data, setDataMapFunction, callbackFunction, config) {
|
|
41619
41687
|
hotInstance.render();
|
41620
41688
|
}
|
41621
41689
|
if (hotInstance.getSettings().ariaTags) {
|
41622
|
-
(0, _element.setAttribute)(hotInstance.rootElement, [(0, _a11y.A11Y_ROWCOUNT)(
|
41690
|
+
(0, _element.setAttribute)(hotInstance.rootElement, [(0, _a11y.A11Y_ROWCOUNT)(-1),
|
41691
|
+
// If run after initialization, add the number of row headers.
|
41692
|
+
(0, _a11y.A11Y_COLCOUNT)(hotInstance.countCols() + (hotInstance.view ? hotInstance.countRowHeaders() : 0))]);
|
41623
41693
|
}
|
41624
41694
|
}
|
41625
41695
|
|
@@ -47133,6 +47203,7 @@ exports.PasswordEditor = _passwordEditor.PasswordEditor;
|
|
47133
47203
|
exports.__esModule = true;
|
47134
47204
|
var _textEditor = __webpack_require__(335);
|
47135
47205
|
var _element = __webpack_require__(107);
|
47206
|
+
var _a11y = __webpack_require__(114);
|
47136
47207
|
const EDITOR_TYPE = exports.EDITOR_TYPE = 'password';
|
47137
47208
|
|
47138
47209
|
/**
|
@@ -47152,6 +47223,9 @@ class PasswordEditor extends _textEditor.TextEditor {
|
|
47152
47223
|
this.textareaStyle = this.TEXTAREA.style;
|
47153
47224
|
this.textareaStyle.width = 0;
|
47154
47225
|
this.textareaStyle.height = 0;
|
47226
|
+
if (this.hot.getSettings().ariaTags) {
|
47227
|
+
(0, _element.setAttribute)(this.TEXTAREA, [(0, _a11y.A11Y_HIDDEN)()]);
|
47228
|
+
}
|
47155
47229
|
(0, _element.empty)(this.TEXTAREA_PARENT);
|
47156
47230
|
this.TEXTAREA_PARENT.appendChild(this.TEXTAREA);
|
47157
47231
|
}
|
@@ -47954,7 +48028,6 @@ function createInput(rootDocument) {
|
|
47954
48028
|
const input = rootDocument.createElement('input');
|
47955
48029
|
input.className = 'htCheckboxRendererInput';
|
47956
48030
|
input.type = 'checkbox';
|
47957
|
-
input.setAttribute('autocomplete', 'off');
|
47958
48031
|
input.setAttribute('tabindex', '-1');
|
47959
48032
|
return input.cloneNode(false);
|
47960
48033
|
}
|
@@ -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-477622d-20231128
|
29
|
+
* Release date: 29/11/2023 (built at 28/11/2023 12:48:34)
|
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}.handsontable .htAutocompleteArrow{color:#bbb;cursor:default;float:right;font-size:10px;text-align:center;width:16px}[dir=rtl].handsontable .htAutocompleteArrow{float:left}.handsontable td.htInvalid .htAutocompleteArrow{color:#555}.handsontable td.htInvalid .htAutocompleteArrow:hover{color:#1a1a1a}.handsontable td .htAutocompleteArrow:hover{color:#777}.handsontable td.area .htAutocompleteArrow{color:#d3d3d3}.handsontable .htCheckboxRendererInput{display:inline-block}.handsontable .htCheckboxRendererInput.noValue{opacity:.5}.handsontable .htCheckboxRendererLabel{cursor:pointer;display:inline-block;font-size:inherit;vertical-align:middle}.handsontable .htCheckboxRendererLabel.fullWidth{width:100%}.handsontable .htCommentCell{position:relative}.handsontable .htCommentCell:after{border-left:6px solid transparent;border-right:none;border-top:6px solid #000;content:"";left:unset;position:absolute;right:0;top:0}[dir=rtl].handsontable .htCommentCell:after{border-left:none;border-right:6px solid transparent;left:0;right:unset}.htCommentsContainer .htComments{display:none;position:absolute;z-index:1059}.htCommentsContainer .htCommentTextArea{-webkit-appearance:none;background-color:#fff;border:none;border-left:3px solid #ccc;box-shadow:0 1px 3px rgba(0,0,0,.118),0 1px 2px rgba(0,0,0,.239);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;font-size:12px;height:90px;outline:0!important;padding:5px;width:215px}[dir=rtl].htCommentsContainer .htCommentTextArea{border-left:none;border-right:3px solid #ccc}.htCommentsContainer .htCommentTextArea:focus{border-left:3px solid #5292f7;border-right:none;box-shadow:0 1px 3px rgba(0,0,0,.118),0 1px 2px rgba(0,0,0,.239),inset 0 0 0 1px #5292f7}[dir=rtl].htCommentsContainer .htCommentTextArea:focus{border-left:none;border-right:3px solid #5292f7}
|
31
31
|
/*!
|
32
32
|
* Handsontable ContextMenu
|