handsontable 0.0.0-next-0d98d67-20250210 → 0.0.0-next-8a82cea-20250211
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of handsontable might be problematic. Click here for more details.
- package/3rdparty/walkontable/src/calculator/viewportColumns.js +5 -1
- package/3rdparty/walkontable/src/calculator/viewportColumns.mjs +5 -1
- package/3rdparty/walkontable/src/calculator/viewportRows.js +5 -1
- package/3rdparty/walkontable/src/calculator/viewportRows.mjs +5 -1
- package/3rdparty/walkontable/src/overlay/inlineStart.js +8 -1
- package/3rdparty/walkontable/src/overlay/inlineStart.mjs +8 -1
- package/3rdparty/walkontable/src/overlay/top.js +9 -1
- package/3rdparty/walkontable/src/overlay/top.mjs +9 -1
- package/3rdparty/walkontable/src/renderer/cells.js +1 -4
- package/3rdparty/walkontable/src/renderer/cells.mjs +1 -4
- package/3rdparty/walkontable/src/renderer/columnHeaders.js +1 -4
- package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +1 -4
- package/3rdparty/walkontable/src/renderer/rowHeaders.js +0 -3
- package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +0 -3
- package/3rdparty/walkontable/src/table.js +146 -5
- package/3rdparty/walkontable/src/table.mjs +146 -5
- package/3rdparty/walkontable/src/utils/column.js +25 -4
- package/3rdparty/walkontable/src/utils/column.mjs +25 -4
- package/3rdparty/walkontable/src/utils/row.js +12 -2
- package/3rdparty/walkontable/src/utils/row.mjs +12 -2
- package/3rdparty/walkontable/src/viewport.js +36 -2
- package/3rdparty/walkontable/src/viewport.mjs +36 -2
- package/base.js +2 -2
- package/base.mjs +2 -2
- package/core.js +54 -4
- package/core.mjs +54 -4
- package/dist/handsontable.css +2 -2
- package/dist/handsontable.full.css +2 -2
- package/dist/handsontable.full.js +333 -56
- package/dist/handsontable.full.min.css +2 -2
- package/dist/handsontable.full.min.js +9 -9
- package/dist/handsontable.js +322 -51
- package/dist/handsontable.min.css +2 -2
- package/dist/handsontable.min.js +15 -15
- package/helpers/mixed.js +1 -1
- package/helpers/mixed.mjs +1 -1
- package/package.json +1 -1
- package/plugins/copyPaste/copyPaste.js +12 -6
- package/plugins/copyPaste/copyPaste.mjs +12 -6
- package/renderers/textRenderer/textRenderer.js +3 -8
- package/renderers/textRenderer/textRenderer.mjs +3 -8
- package/styles/handsontable.css +2 -2
- package/styles/handsontable.min.css +2 -2
- package/styles/ht-theme-horizon.css +2 -2
- package/styles/ht-theme-horizon.min.css +2 -2
- package/styles/ht-theme-main.css +2 -2
- package/styles/ht-theme-main.min.css +2 -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: 0.0.0-next-
|
|
29
|
-
* Release date: 16/12/2024 (built at
|
|
28
|
+
* Version: 0.0.0-next-8a82cea-20250211
|
|
29
|
+
* Release date: 16/12/2024 (built at 11/02/2025 10:17:45)
|
|
30
30
|
*/
|
|
31
31
|
(function webpackUniversalModuleDefinition(root, factory) {
|
|
32
32
|
if(typeof exports === 'object' && typeof module === 'object')
|
|
@@ -104,8 +104,8 @@ Handsontable.hooks = _hooks.Hooks.getSingleton();
|
|
|
104
104
|
Handsontable.CellCoords = _src.CellCoords;
|
|
105
105
|
Handsontable.CellRange = _src.CellRange;
|
|
106
106
|
Handsontable.packageName = 'handsontable';
|
|
107
|
-
Handsontable.buildDate = "
|
|
108
|
-
Handsontable.version = "0.0.0-next-
|
|
107
|
+
Handsontable.buildDate = "11/02/2025 10:17:45";
|
|
108
|
+
Handsontable.version = "0.0.0-next-8a82cea-20250211";
|
|
109
109
|
Handsontable.languages = {
|
|
110
110
|
dictionaryKeys: _registry.dictionaryKeys,
|
|
111
111
|
getLanguageDictionary: _registry.getLanguageDictionary,
|
|
@@ -3626,7 +3626,33 @@ function Core(rootElement, userSettings) {
|
|
|
3626
3626
|
* @returns {number}
|
|
3627
3627
|
*/
|
|
3628
3628
|
this._getColWidthFromSettings = function (col) {
|
|
3629
|
-
|
|
3629
|
+
let width;
|
|
3630
|
+
|
|
3631
|
+
// We currently don't support cell meta objects for headers (negative values)
|
|
3632
|
+
if (col >= 0) {
|
|
3633
|
+
const cellProperties = instance.getCellMeta(0, col);
|
|
3634
|
+
width = cellProperties.width;
|
|
3635
|
+
}
|
|
3636
|
+
if (width === undefined || width === tableMeta.width) {
|
|
3637
|
+
width = tableMeta.colWidths;
|
|
3638
|
+
}
|
|
3639
|
+
if (width !== undefined && width !== null) {
|
|
3640
|
+
switch (typeof width) {
|
|
3641
|
+
case 'object':
|
|
3642
|
+
// array
|
|
3643
|
+
width = width[col];
|
|
3644
|
+
break;
|
|
3645
|
+
case 'function':
|
|
3646
|
+
width = width(col);
|
|
3647
|
+
break;
|
|
3648
|
+
default:
|
|
3649
|
+
break;
|
|
3650
|
+
}
|
|
3651
|
+
if (typeof width === 'string') {
|
|
3652
|
+
width = parseInt(width, 10);
|
|
3653
|
+
}
|
|
3654
|
+
}
|
|
3655
|
+
return width;
|
|
3630
3656
|
};
|
|
3631
3657
|
|
|
3632
3658
|
/**
|
|
@@ -3640,7 +3666,12 @@ function Core(rootElement, userSettings) {
|
|
|
3640
3666
|
* @fires Hooks#modifyColWidth
|
|
3641
3667
|
*/
|
|
3642
3668
|
this.getColWidth = function (column, source) {
|
|
3643
|
-
|
|
3669
|
+
let width = instance._getColWidthFromSettings(column);
|
|
3670
|
+
width = instance.runHooks('modifyColWidth', width, column, source);
|
|
3671
|
+
if (width === undefined) {
|
|
3672
|
+
width = _src.DEFAULT_COLUMN_WIDTH;
|
|
3673
|
+
}
|
|
3674
|
+
return width;
|
|
3644
3675
|
};
|
|
3645
3676
|
|
|
3646
3677
|
/**
|
|
@@ -3653,7 +3684,24 @@ function Core(rootElement, userSettings) {
|
|
|
3653
3684
|
* @returns {number}
|
|
3654
3685
|
*/
|
|
3655
3686
|
this._getRowHeightFromSettings = function (row) {
|
|
3656
|
-
|
|
3687
|
+
let height = tableMeta.rowHeights;
|
|
3688
|
+
if (height !== undefined && height !== null) {
|
|
3689
|
+
switch (typeof height) {
|
|
3690
|
+
case 'object':
|
|
3691
|
+
// array
|
|
3692
|
+
height = height[row];
|
|
3693
|
+
break;
|
|
3694
|
+
case 'function':
|
|
3695
|
+
height = height(row);
|
|
3696
|
+
break;
|
|
3697
|
+
default:
|
|
3698
|
+
break;
|
|
3699
|
+
}
|
|
3700
|
+
if (typeof height === 'string') {
|
|
3701
|
+
height = parseInt(height, 10);
|
|
3702
|
+
}
|
|
3703
|
+
}
|
|
3704
|
+
return height;
|
|
3657
3705
|
};
|
|
3658
3706
|
|
|
3659
3707
|
/**
|
|
@@ -3684,7 +3732,9 @@ function Core(rootElement, userSettings) {
|
|
|
3684
3732
|
* @fires Hooks#modifyRowHeight
|
|
3685
3733
|
*/
|
|
3686
3734
|
this.getRowHeight = function (row, source) {
|
|
3687
|
-
|
|
3735
|
+
let height = instance._getRowHeightFromSettings(row);
|
|
3736
|
+
height = instance.runHooks('modifyRowHeight', height, row, source);
|
|
3737
|
+
return height;
|
|
3688
3738
|
};
|
|
3689
3739
|
|
|
3690
3740
|
/**
|
|
@@ -10054,7 +10104,7 @@ const domMessages = {
|
|
|
10054
10104
|
function _injectProductInfo(key, element) {
|
|
10055
10105
|
const hasValidType = !isEmpty(key);
|
|
10056
10106
|
const isNonCommercial = typeof key === 'string' && key.toLowerCase() === 'non-commercial-and-evaluation';
|
|
10057
|
-
const hotVersion = "0.0.0-next-
|
|
10107
|
+
const hotVersion = "0.0.0-next-8a82cea-20250211";
|
|
10058
10108
|
let keyValidityDate;
|
|
10059
10109
|
let consoleMessageState = 'invalid';
|
|
10060
10110
|
let domMessageState = 'invalid';
|
|
@@ -20373,7 +20423,11 @@ class ViewportColumnsCalculator extends _viewportBase.ViewportBaseCalculator {
|
|
|
20373
20423
|
* @returns {number}
|
|
20374
20424
|
*/
|
|
20375
20425
|
getColumnWidth(column) {
|
|
20376
|
-
|
|
20426
|
+
const width = this.columnWidthFn(column);
|
|
20427
|
+
if (isNaN(width)) {
|
|
20428
|
+
return DEFAULT_WIDTH;
|
|
20429
|
+
}
|
|
20430
|
+
return width;
|
|
20377
20431
|
}
|
|
20378
20432
|
}
|
|
20379
20433
|
exports.ViewportColumnsCalculator = ViewportColumnsCalculator;
|
|
@@ -20568,7 +20622,11 @@ class ViewportRowsCalculator extends _viewportBase.ViewportBaseCalculator {
|
|
|
20568
20622
|
* @returns {number}
|
|
20569
20623
|
*/
|
|
20570
20624
|
getRowHeight(row) {
|
|
20571
|
-
|
|
20625
|
+
const rowHeight = this.rowHeightFn(row);
|
|
20626
|
+
if (isNaN(rowHeight)) {
|
|
20627
|
+
return this.defaultHeight;
|
|
20628
|
+
}
|
|
20629
|
+
return rowHeight;
|
|
20572
20630
|
}
|
|
20573
20631
|
}
|
|
20574
20632
|
exports.ViewportRowsCalculator = ViewportRowsCalculator;
|
|
@@ -23554,6 +23612,16 @@ class Table {
|
|
|
23554
23612
|
this.resetOversizedRows();
|
|
23555
23613
|
this.tableRenderer.setActiveOverlayName(this.name).setViewportSize(this.getRenderedRowsCount(), this.getRenderedColumnsCount()).setFilters(this.rowFilter, this.columnFilter).render();
|
|
23556
23614
|
if (this.isMaster) {
|
|
23615
|
+
this.markOversizedColumnHeaders();
|
|
23616
|
+
}
|
|
23617
|
+
this.adjustColumnHeaderHeights();
|
|
23618
|
+
if (this.isMaster || this.is(_overlay.CLONE_BOTTOM)) {
|
|
23619
|
+
this.markOversizedRows();
|
|
23620
|
+
}
|
|
23621
|
+
if (this.isMaster) {
|
|
23622
|
+
if (!this.wtSettings.getSetting('externalRowCalculator')) {
|
|
23623
|
+
wtViewport.createVisibleCalculators();
|
|
23624
|
+
}
|
|
23557
23625
|
wtOverlays.refresh(false);
|
|
23558
23626
|
wtOverlays.applyToDOM();
|
|
23559
23627
|
this.wtSettings.getSetting('onDraw', true);
|
|
@@ -23595,18 +23663,85 @@ class Table {
|
|
|
23595
23663
|
/**
|
|
23596
23664
|
* @param {number} col The visual column index.
|
|
23597
23665
|
*/
|
|
23598
|
-
markIfOversizedColumnHeader(col) {
|
|
23666
|
+
markIfOversizedColumnHeader(col) {
|
|
23667
|
+
const sourceColIndex = this.columnFilter.renderedToSource(col);
|
|
23668
|
+
let level = this.wtSettings.getSetting('columnHeaders').length;
|
|
23669
|
+
const defaultRowHeight = this.dataAccessObject.stylesHandler.getDefaultRowHeight();
|
|
23670
|
+
let previousColHeaderHeight;
|
|
23671
|
+
let currentHeader;
|
|
23672
|
+
let currentHeaderHeight;
|
|
23673
|
+
const columnHeaderHeightSetting = this.wtSettings.getSetting('columnHeaderHeight') || [];
|
|
23674
|
+
while (level) {
|
|
23675
|
+
level -= 1;
|
|
23676
|
+
previousColHeaderHeight = this.getColumnHeaderHeight(level);
|
|
23677
|
+
currentHeader = this.getColumnHeader(sourceColIndex, level);
|
|
23678
|
+
if (!currentHeader) {
|
|
23679
|
+
/* eslint-disable no-continue */
|
|
23680
|
+
continue;
|
|
23681
|
+
}
|
|
23682
|
+
currentHeaderHeight = (0, _element.innerHeight)(currentHeader);
|
|
23683
|
+
if (!previousColHeaderHeight && defaultRowHeight < currentHeaderHeight || previousColHeaderHeight < currentHeaderHeight) {
|
|
23684
|
+
this.dataAccessObject.wtViewport.oversizedColumnHeaders[level] = currentHeaderHeight;
|
|
23685
|
+
}
|
|
23686
|
+
if (Array.isArray(columnHeaderHeightSetting)) {
|
|
23687
|
+
if (columnHeaderHeightSetting[level] !== null && columnHeaderHeightSetting[level] !== undefined) {
|
|
23688
|
+
this.dataAccessObject.wtViewport.oversizedColumnHeaders[level] = columnHeaderHeightSetting[level];
|
|
23689
|
+
}
|
|
23690
|
+
} else if (!isNaN(columnHeaderHeightSetting)) {
|
|
23691
|
+
this.dataAccessObject.wtViewport.oversizedColumnHeaders[level] = columnHeaderHeightSetting;
|
|
23692
|
+
}
|
|
23693
|
+
if (this.dataAccessObject.wtViewport.oversizedColumnHeaders[level] < (columnHeaderHeightSetting[level] || columnHeaderHeightSetting)) {
|
|
23694
|
+
this.dataAccessObject.wtViewport.oversizedColumnHeaders[level] = columnHeaderHeightSetting[level] || columnHeaderHeightSetting; // eslint-disable-line max-len
|
|
23695
|
+
}
|
|
23696
|
+
}
|
|
23697
|
+
}
|
|
23599
23698
|
|
|
23600
23699
|
/**
|
|
23601
23700
|
*
|
|
23602
23701
|
*/
|
|
23603
|
-
adjustColumnHeaderHeights() {
|
|
23702
|
+
adjustColumnHeaderHeights() {
|
|
23703
|
+
const {
|
|
23704
|
+
wtSettings
|
|
23705
|
+
} = this;
|
|
23706
|
+
const children = this.THEAD.childNodes;
|
|
23707
|
+
const oversizedColumnHeaders = this.dataAccessObject.wtViewport.oversizedColumnHeaders;
|
|
23708
|
+
const columnHeaders = wtSettings.getSetting('columnHeaders');
|
|
23709
|
+
for (let i = 0, len = columnHeaders.length; i < len; i++) {
|
|
23710
|
+
if (oversizedColumnHeaders[i]) {
|
|
23711
|
+
if (!children[i] || children[i].childNodes.length === 0) {
|
|
23712
|
+
return;
|
|
23713
|
+
}
|
|
23714
|
+
children[i].childNodes[0].style.height = `${oversizedColumnHeaders[i]}px`;
|
|
23715
|
+
}
|
|
23716
|
+
}
|
|
23717
|
+
}
|
|
23604
23718
|
|
|
23605
23719
|
/**
|
|
23606
23720
|
* Resets cache of row heights. The cache should be cached for each render cycle in a case
|
|
23607
23721
|
* when new cell values have content which increases/decreases cell height.
|
|
23608
23722
|
*/
|
|
23609
|
-
resetOversizedRows() {
|
|
23723
|
+
resetOversizedRows() {
|
|
23724
|
+
const {
|
|
23725
|
+
wtSettings
|
|
23726
|
+
} = this;
|
|
23727
|
+
const {
|
|
23728
|
+
wtViewport
|
|
23729
|
+
} = this.dataAccessObject;
|
|
23730
|
+
if (!this.isMaster && !this.is(_overlay.CLONE_BOTTOM)) {
|
|
23731
|
+
return;
|
|
23732
|
+
}
|
|
23733
|
+
if (!wtSettings.getSetting('externalRowCalculator')) {
|
|
23734
|
+
const rowsToRender = this.getRenderedRowsCount();
|
|
23735
|
+
|
|
23736
|
+
// Reset the oversized row cache for rendered rows
|
|
23737
|
+
for (let visibleRowIndex = 0; visibleRowIndex < rowsToRender; visibleRowIndex++) {
|
|
23738
|
+
const sourceRow = this.rowFilter.renderedToSource(visibleRowIndex);
|
|
23739
|
+
if (wtViewport.oversizedRows && wtViewport.oversizedRows[sourceRow]) {
|
|
23740
|
+
wtViewport.oversizedRows[sourceRow] = undefined;
|
|
23741
|
+
}
|
|
23742
|
+
}
|
|
23743
|
+
}
|
|
23744
|
+
}
|
|
23610
23745
|
|
|
23611
23746
|
/**
|
|
23612
23747
|
* Get cell element at coords.
|
|
@@ -23804,7 +23939,46 @@ class Table {
|
|
|
23804
23939
|
/**
|
|
23805
23940
|
* Check if any of the rendered rows is higher than expected, and if so, cache them.
|
|
23806
23941
|
*/
|
|
23807
|
-
markOversizedRows() {
|
|
23942
|
+
markOversizedRows() {
|
|
23943
|
+
if (this.wtSettings.getSetting('externalRowCalculator')) {
|
|
23944
|
+
return;
|
|
23945
|
+
}
|
|
23946
|
+
let rowCount = this.TBODY.childNodes.length;
|
|
23947
|
+
const expectedTableHeight = rowCount * this.dataAccessObject.stylesHandler.getDefaultRowHeight();
|
|
23948
|
+
const actualTableHeight = (0, _element.innerHeight)(this.TBODY) - 1;
|
|
23949
|
+
const borderBoxSizing = this.wot.stylesHandler.areCellsBorderBox();
|
|
23950
|
+
const rowHeightFn = borderBoxSizing ? _element.outerHeight : _element.innerHeight;
|
|
23951
|
+
const borderCompensation = borderBoxSizing ? 0 : 1;
|
|
23952
|
+
const firstRowBorderCompensation = borderBoxSizing ? 1 : 0;
|
|
23953
|
+
let previousRowHeight;
|
|
23954
|
+
let rowCurrentHeight;
|
|
23955
|
+
let sourceRowIndex;
|
|
23956
|
+
let currentTr;
|
|
23957
|
+
let rowHeader;
|
|
23958
|
+
if (expectedTableHeight === actualTableHeight && !this.wtSettings.getSetting('fixedRowsBottom')) {
|
|
23959
|
+
// If the actual table height equals rowCount * default single row height, no row is oversized -> no need to iterate over them
|
|
23960
|
+
return;
|
|
23961
|
+
}
|
|
23962
|
+
while (rowCount) {
|
|
23963
|
+
rowCount -= 1;
|
|
23964
|
+
sourceRowIndex = this.rowFilter.renderedToSource(rowCount);
|
|
23965
|
+
previousRowHeight = this.getRowHeight(sourceRowIndex);
|
|
23966
|
+
currentTr = this.getTrForRow(sourceRowIndex);
|
|
23967
|
+
rowHeader = currentTr.querySelector('th');
|
|
23968
|
+
const topBorderCompensation = sourceRowIndex === 0 ? firstRowBorderCompensation : 0;
|
|
23969
|
+
if (rowHeader) {
|
|
23970
|
+
rowCurrentHeight = rowHeightFn(rowHeader);
|
|
23971
|
+
} else {
|
|
23972
|
+
rowCurrentHeight = rowHeightFn(currentTr) - borderCompensation;
|
|
23973
|
+
}
|
|
23974
|
+
if (!previousRowHeight && this.dataAccessObject.stylesHandler.getDefaultRowHeight() < rowCurrentHeight - topBorderCompensation || previousRowHeight < rowCurrentHeight) {
|
|
23975
|
+
if (!borderBoxSizing) {
|
|
23976
|
+
rowCurrentHeight += 1;
|
|
23977
|
+
}
|
|
23978
|
+
this.dataAccessObject.wtViewport.oversizedRows[sourceRowIndex] = rowCurrentHeight;
|
|
23979
|
+
}
|
|
23980
|
+
}
|
|
23981
|
+
}
|
|
23808
23982
|
|
|
23809
23983
|
/**
|
|
23810
23984
|
* @param {number} row The visual row index.
|
|
@@ -24119,7 +24293,32 @@ class Table {
|
|
|
24119
24293
|
* @returns {number}
|
|
24120
24294
|
*/
|
|
24121
24295
|
_modifyRowHeaderWidth(rowHeaderWidthFactory) {
|
|
24122
|
-
|
|
24296
|
+
let widths = (0, _function.isFunction)(rowHeaderWidthFactory) ? rowHeaderWidthFactory() : null;
|
|
24297
|
+
if (Array.isArray(widths)) {
|
|
24298
|
+
widths = [...widths];
|
|
24299
|
+
widths[widths.length - 1] = this._correctRowHeaderWidth(widths[widths.length - 1]);
|
|
24300
|
+
} else {
|
|
24301
|
+
widths = this._correctRowHeaderWidth(widths);
|
|
24302
|
+
}
|
|
24303
|
+
return widths;
|
|
24304
|
+
}
|
|
24305
|
+
|
|
24306
|
+
/**
|
|
24307
|
+
* Correct row header width if necessary.
|
|
24308
|
+
*
|
|
24309
|
+
* @private
|
|
24310
|
+
* @param {number} width The width to process.
|
|
24311
|
+
* @returns {number}
|
|
24312
|
+
*/
|
|
24313
|
+
_correctRowHeaderWidth(width) {
|
|
24314
|
+
let rowHeaderWidth = width;
|
|
24315
|
+
if (typeof width !== 'number') {
|
|
24316
|
+
rowHeaderWidth = this.wtSettings.getSetting('defaultColumnWidth');
|
|
24317
|
+
}
|
|
24318
|
+
if (this.correctHeaderWidth) {
|
|
24319
|
+
rowHeaderWidth += 1;
|
|
24320
|
+
}
|
|
24321
|
+
return rowHeaderWidth;
|
|
24123
24322
|
}
|
|
24124
24323
|
}
|
|
24125
24324
|
var _default = exports["default"] = Table;
|
|
@@ -24532,9 +24731,6 @@ class RowHeadersRenderer extends _base.BaseRenderer {
|
|
|
24532
24731
|
for (let visibleColumnIndex = 0; visibleColumnIndex < rowHeadersCount; visibleColumnIndex++) {
|
|
24533
24732
|
orderView.render();
|
|
24534
24733
|
const TH = orderView.getCurrentNode();
|
|
24535
|
-
if (TH.innerHTML !== '') {
|
|
24536
|
-
continue;
|
|
24537
|
-
}
|
|
24538
24734
|
TH.className = '';
|
|
24539
24735
|
TH.removeAttribute('style');
|
|
24540
24736
|
|
|
@@ -25480,7 +25676,7 @@ var _a11y = __webpack_require__(162);
|
|
|
25480
25676
|
*/
|
|
25481
25677
|
class ColumnHeadersRenderer extends _base.BaseRenderer {
|
|
25482
25678
|
constructor(rootNode) {
|
|
25483
|
-
super(
|
|
25679
|
+
super(null, rootNode); // NodePool is not implemented for this renderer yet
|
|
25484
25680
|
}
|
|
25485
25681
|
|
|
25486
25682
|
/**
|
|
@@ -25548,9 +25744,6 @@ class ColumnHeadersRenderer extends _base.BaseRenderer {
|
|
|
25548
25744
|
// eslint-disable-line max-len
|
|
25549
25745
|
const sourceColumnIndex = this.table.renderedColumnToSource(renderedColumnIndex);
|
|
25550
25746
|
const TH = TR.childNodes[renderedColumnIndex + rowHeadersCount];
|
|
25551
|
-
if (TH.innerHTML !== '') {
|
|
25552
|
-
continue;
|
|
25553
|
-
}
|
|
25554
25747
|
TH.className = '';
|
|
25555
25748
|
TH.removeAttribute('style');
|
|
25556
25749
|
|
|
@@ -25841,14 +26034,11 @@ class CellsRenderer extends _base.BaseRenderer {
|
|
|
25841
26034
|
this.sourceRowIndex = sourceRowIndex;
|
|
25842
26035
|
const orderView = this.obtainOrderView(TR);
|
|
25843
26036
|
const rowHeadersView = rowHeaders.obtainOrderView(TR);
|
|
25844
|
-
orderView.prependView(rowHeadersView).setSize(columnsToRender).setOffset(
|
|
26037
|
+
orderView.prependView(rowHeadersView).setSize(columnsToRender).setOffset(0).start();
|
|
25845
26038
|
for (let visibleColumnIndex = 0; visibleColumnIndex < columnsToRender; visibleColumnIndex++) {
|
|
25846
26039
|
orderView.render();
|
|
25847
26040
|
const sourceColumnIndex = this.table.renderedColumnToSource(visibleColumnIndex);
|
|
25848
26041
|
const TD = orderView.getCurrentNode();
|
|
25849
|
-
if (TD.innerHTML !== '') {
|
|
25850
|
-
continue;
|
|
25851
|
-
}
|
|
25852
26042
|
if (!(0, _element.hasClass)(TD, 'hide')) {
|
|
25853
26043
|
// Workaround for hidden columns plugin
|
|
25854
26044
|
TD.className = '';
|
|
@@ -26258,7 +26448,8 @@ class ColumnUtils {
|
|
|
26258
26448
|
* @returns {number}
|
|
26259
26449
|
*/
|
|
26260
26450
|
getWidth(sourceIndex) {
|
|
26261
|
-
|
|
26451
|
+
const width = this.wtSettings.getSetting('columnWidth', sourceIndex) || this.wtSettings.getSetting('defaultColumnWidth');
|
|
26452
|
+
return width;
|
|
26262
26453
|
}
|
|
26263
26454
|
|
|
26264
26455
|
/**
|
|
@@ -26268,7 +26459,12 @@ class ColumnUtils {
|
|
|
26268
26459
|
* @returns {number}
|
|
26269
26460
|
*/
|
|
26270
26461
|
getHeaderHeight(level) {
|
|
26271
|
-
|
|
26462
|
+
let height = this.dataAccessObject.stylesHandler.getDefaultRowHeight();
|
|
26463
|
+
const oversizedHeight = this.dataAccessObject.wtViewport.oversizedColumnHeaders[level];
|
|
26464
|
+
if (oversizedHeight !== undefined) {
|
|
26465
|
+
height = height ? Math.max(height, oversizedHeight) : oversizedHeight;
|
|
26466
|
+
}
|
|
26467
|
+
return height;
|
|
26272
26468
|
}
|
|
26273
26469
|
|
|
26274
26470
|
/**
|
|
@@ -26278,13 +26474,28 @@ class ColumnUtils {
|
|
|
26278
26474
|
* @returns {number}
|
|
26279
26475
|
*/
|
|
26280
26476
|
getHeaderWidth(sourceIndex) {
|
|
26281
|
-
return
|
|
26477
|
+
return this.headerWidths.get(this.dataAccessObject.wtTable.columnFilter.sourceToRendered(sourceIndex));
|
|
26282
26478
|
}
|
|
26283
26479
|
|
|
26284
26480
|
/**
|
|
26285
26481
|
* Calculates column header widths that can be retrieved from the cache.
|
|
26286
26482
|
*/
|
|
26287
|
-
calculateWidths() {
|
|
26483
|
+
calculateWidths() {
|
|
26484
|
+
const {
|
|
26485
|
+
wtSettings
|
|
26486
|
+
} = this;
|
|
26487
|
+
let rowHeaderWidthSetting = wtSettings.getSetting('rowHeaderWidth');
|
|
26488
|
+
rowHeaderWidthSetting = wtSettings.getSetting('onModifyRowHeaderWidth', rowHeaderWidthSetting);
|
|
26489
|
+
if (rowHeaderWidthSetting !== null && rowHeaderWidthSetting !== undefined) {
|
|
26490
|
+
const rowHeadersCount = wtSettings.getSetting('rowHeaders').length;
|
|
26491
|
+
const defaultColumnWidth = wtSettings.getSetting('defaultColumnWidth');
|
|
26492
|
+
for (let visibleColumnIndex = 0; visibleColumnIndex < rowHeadersCount; visibleColumnIndex++) {
|
|
26493
|
+
let width = Array.isArray(rowHeaderWidthSetting) ? rowHeaderWidthSetting[visibleColumnIndex] : rowHeaderWidthSetting;
|
|
26494
|
+
width = width === null || width === undefined ? defaultColumnWidth : width;
|
|
26495
|
+
this.headerWidths.set(visibleColumnIndex, width);
|
|
26496
|
+
}
|
|
26497
|
+
}
|
|
26498
|
+
}
|
|
26288
26499
|
}
|
|
26289
26500
|
exports["default"] = ColumnUtils;
|
|
26290
26501
|
|
|
@@ -26328,7 +26539,12 @@ class RowUtils {
|
|
|
26328
26539
|
* @returns {number}
|
|
26329
26540
|
*/
|
|
26330
26541
|
getHeight(sourceIndex) {
|
|
26331
|
-
|
|
26542
|
+
let height = this.wtSettings.getSetting('rowHeight', sourceIndex);
|
|
26543
|
+
const oversizedHeight = this.dataAccessObject.wtViewport.oversizedRows[sourceIndex];
|
|
26544
|
+
if (oversizedHeight !== undefined) {
|
|
26545
|
+
height = height === undefined ? oversizedHeight : Math.max(height, oversizedHeight);
|
|
26546
|
+
}
|
|
26547
|
+
return height;
|
|
26332
26548
|
}
|
|
26333
26549
|
|
|
26334
26550
|
/**
|
|
@@ -26339,7 +26555,12 @@ class RowUtils {
|
|
|
26339
26555
|
* @returns {number}
|
|
26340
26556
|
*/
|
|
26341
26557
|
getHeightByOverlayName(sourceIndex, overlayName) {
|
|
26342
|
-
|
|
26558
|
+
let height = this.wtSettings.getSetting('rowHeightByOverlayName', sourceIndex, overlayName);
|
|
26559
|
+
const oversizedHeight = this.dataAccessObject.wtViewport.oversizedRows[sourceIndex];
|
|
26560
|
+
if (oversizedHeight !== undefined) {
|
|
26561
|
+
height = height === undefined ? oversizedHeight : Math.max(height, oversizedHeight);
|
|
26562
|
+
}
|
|
26563
|
+
return height;
|
|
26343
26564
|
}
|
|
26344
26565
|
}
|
|
26345
26566
|
exports["default"] = RowUtils;
|
|
@@ -28336,7 +28557,14 @@ class InlineStartOverlay extends _base.Overlay {
|
|
|
28336
28557
|
* @returns {number} Width sum.
|
|
28337
28558
|
*/
|
|
28338
28559
|
sumCellSizes(from, to) {
|
|
28339
|
-
|
|
28560
|
+
const defaultColumnWidth = this.wtSettings.getSetting('defaultColumnWidth');
|
|
28561
|
+
let column = from;
|
|
28562
|
+
let sum = 0;
|
|
28563
|
+
while (column < to) {
|
|
28564
|
+
sum += this.wot.wtTable.getColumnWidth(column) || defaultColumnWidth;
|
|
28565
|
+
column += 1;
|
|
28566
|
+
}
|
|
28567
|
+
return sum;
|
|
28340
28568
|
}
|
|
28341
28569
|
|
|
28342
28570
|
/**
|
|
@@ -30719,7 +30947,15 @@ class TopOverlay extends _base.Overlay {
|
|
|
30719
30947
|
* @returns {number} Height sum.
|
|
30720
30948
|
*/
|
|
30721
30949
|
sumCellSizes(from, to) {
|
|
30722
|
-
|
|
30950
|
+
const defaultRowHeight = this.wot.stylesHandler.getDefaultRowHeight();
|
|
30951
|
+
let row = from;
|
|
30952
|
+
let sum = 0;
|
|
30953
|
+
while (row < to) {
|
|
30954
|
+
const height = this.wot.wtTable.getRowHeight(row);
|
|
30955
|
+
sum += height === undefined ? defaultRowHeight : height;
|
|
30956
|
+
row += 1;
|
|
30957
|
+
}
|
|
30958
|
+
return sum;
|
|
30723
30959
|
}
|
|
30724
30960
|
|
|
30725
30961
|
/**
|
|
@@ -31432,6 +31668,7 @@ class Viewport {
|
|
|
31432
31668
|
this.domBindings = domBindings;
|
|
31433
31669
|
this.wtSettings = wtSettings;
|
|
31434
31670
|
this.wtTable = wtTable;
|
|
31671
|
+
this.oversizedRows = [];
|
|
31435
31672
|
this.oversizedColumnHeaders = [];
|
|
31436
31673
|
this.hasOversizedColumnHeadersMarked = {};
|
|
31437
31674
|
this.clientHeight = 0;
|
|
@@ -31586,14 +31823,47 @@ class Viewport {
|
|
|
31586
31823
|
* @returns {number}
|
|
31587
31824
|
*/
|
|
31588
31825
|
getColumnHeaderHeight() {
|
|
31589
|
-
|
|
31826
|
+
const columnHeaders = this.wtSettings.getSetting('columnHeaders');
|
|
31827
|
+
if (!columnHeaders.length) {
|
|
31828
|
+
this.columnHeaderHeight = 0;
|
|
31829
|
+
} else if (isNaN(this.columnHeaderHeight)) {
|
|
31830
|
+
this.columnHeaderHeight = (0, _element.outerHeight)(this.wtTable.THEAD);
|
|
31831
|
+
}
|
|
31832
|
+
return this.columnHeaderHeight;
|
|
31590
31833
|
}
|
|
31591
31834
|
|
|
31592
31835
|
/**
|
|
31593
31836
|
* @returns {number}
|
|
31594
31837
|
*/
|
|
31595
31838
|
getRowHeaderWidth() {
|
|
31596
|
-
|
|
31839
|
+
const rowHeadersWidthSetting = this.wtSettings.getSetting('rowHeaderWidth');
|
|
31840
|
+
const rowHeaders = this.wtSettings.getSetting('rowHeaders');
|
|
31841
|
+
if (rowHeadersWidthSetting) {
|
|
31842
|
+
this.rowHeaderWidth = 0;
|
|
31843
|
+
for (let i = 0, len = rowHeaders.length; i < len; i++) {
|
|
31844
|
+
this.rowHeaderWidth += rowHeadersWidthSetting[i] || rowHeadersWidthSetting;
|
|
31845
|
+
}
|
|
31846
|
+
}
|
|
31847
|
+
if (isNaN(this.rowHeaderWidth)) {
|
|
31848
|
+
if (rowHeaders.length) {
|
|
31849
|
+
let TH = this.wtTable.TABLE.querySelector('TH');
|
|
31850
|
+
this.rowHeaderWidth = 0;
|
|
31851
|
+
for (let i = 0, len = rowHeaders.length; i < len; i++) {
|
|
31852
|
+
if (TH) {
|
|
31853
|
+
this.rowHeaderWidth += (0, _element.outerWidth)(TH);
|
|
31854
|
+
TH = TH.nextSibling;
|
|
31855
|
+
} else {
|
|
31856
|
+
// yes this is a cheat but it worked like that before, just taking assumption from CSS instead of measuring.
|
|
31857
|
+
// TODO: proper fix
|
|
31858
|
+
this.rowHeaderWidth += 50;
|
|
31859
|
+
}
|
|
31860
|
+
}
|
|
31861
|
+
} else {
|
|
31862
|
+
this.rowHeaderWidth = 0;
|
|
31863
|
+
}
|
|
31864
|
+
}
|
|
31865
|
+
this.rowHeaderWidth = this.wtSettings.getSetting('onModifyRowHeaderWidth', this.rowHeaderWidth) || this.rowHeaderWidth;
|
|
31866
|
+
return this.rowHeaderWidth;
|
|
31597
31867
|
}
|
|
31598
31868
|
|
|
31599
31869
|
/**
|
|
@@ -50553,14 +50823,9 @@ function textRenderer(hotInstance, TD, row, col, prop, value, cellProperties) {
|
|
|
50553
50823
|
if (cellProperties.trimWhitespace) {
|
|
50554
50824
|
escaped = escaped.trim();
|
|
50555
50825
|
}
|
|
50556
|
-
|
|
50557
|
-
|
|
50558
|
-
|
|
50559
|
-
const div = hotInstance.rootDocument.createElement('div');
|
|
50560
|
-
div.style.height = '20px';
|
|
50561
|
-
TD.appendChild(div);
|
|
50562
|
-
(0, _element.fastInnerText)(div, escaped);
|
|
50563
|
-
}
|
|
50826
|
+
|
|
50827
|
+
// this is faster than innerHTML. See: https://github.com/handsontable/handsontable/wiki/JavaScript-&-DOM-performance-tips
|
|
50828
|
+
(0, _element.fastInnerText)(TD, escaped);
|
|
50564
50829
|
}
|
|
50565
50830
|
textRenderer.RENDERER_TYPE = RENDERER_TYPE;
|
|
50566
50831
|
|
|
@@ -66418,10 +66683,12 @@ class CopyPaste extends _base.BasePlugin {
|
|
|
66418
66683
|
* @private
|
|
66419
66684
|
*/
|
|
66420
66685
|
onCopy(event) {
|
|
66421
|
-
var _event$target;
|
|
66686
|
+
var _event$target, _this$hot$getSelected;
|
|
66422
66687
|
const focusedElement = this.hot.getFocusManager().getRefocusElement();
|
|
66423
66688
|
const isHotInput = (_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.hasAttribute('data-hot-input');
|
|
66424
|
-
|
|
66689
|
+
const selectedCell = (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight;
|
|
66690
|
+
const TD = selectedCell ? this.hot.getCell(selectedCell.row, selectedCell.col, true) : null;
|
|
66691
|
+
if (!this.hot.isListening() && !_classPrivateFieldGet(_isTriggeredByCopy, this) || this.isEditorOpened() || event.target instanceof HTMLElement && (isHotInput && event.target !== focusedElement || !isHotInput && event.target !== this.hot.rootDocument.body && TD !== event.target)) {
|
|
66425
66692
|
return;
|
|
66426
66693
|
}
|
|
66427
66694
|
event.preventDefault();
|
|
@@ -66451,10 +66718,12 @@ class CopyPaste extends _base.BasePlugin {
|
|
|
66451
66718
|
* @private
|
|
66452
66719
|
*/
|
|
66453
66720
|
onCut(event) {
|
|
66454
|
-
var _event$target2;
|
|
66721
|
+
var _event$target2, _this$hot$getSelected2;
|
|
66455
66722
|
const focusedElement = this.hot.getFocusManager().getRefocusElement();
|
|
66456
66723
|
const isHotInput = (_event$target2 = event.target) === null || _event$target2 === void 0 ? void 0 : _event$target2.hasAttribute('data-hot-input');
|
|
66457
|
-
|
|
66724
|
+
const selectedCell = (_this$hot$getSelected2 = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected2 === void 0 ? void 0 : _this$hot$getSelected2.highlight;
|
|
66725
|
+
const TD = selectedCell ? this.hot.getCell(selectedCell.row, selectedCell.col, true) : null;
|
|
66726
|
+
if (!this.hot.isListening() && !_classPrivateFieldGet(_isTriggeredByCut, this) || this.isEditorOpened() || event.target instanceof HTMLElement && (isHotInput && event.target !== focusedElement || !isHotInput && event.target !== this.hot.rootDocument.body && TD !== event.target)) {
|
|
66458
66727
|
return;
|
|
66459
66728
|
}
|
|
66460
66729
|
event.preventDefault();
|
|
@@ -66483,10 +66752,12 @@ class CopyPaste extends _base.BasePlugin {
|
|
|
66483
66752
|
* @private
|
|
66484
66753
|
*/
|
|
66485
66754
|
onPaste(event) {
|
|
66486
|
-
var _event$target3;
|
|
66755
|
+
var _event$target3, _this$hot$getSelected3;
|
|
66487
66756
|
const focusedElement = this.hot.getFocusManager().getRefocusElement();
|
|
66488
66757
|
const isHotInput = (_event$target3 = event.target) === null || _event$target3 === void 0 ? void 0 : _event$target3.hasAttribute('data-hot-input');
|
|
66489
|
-
|
|
66758
|
+
const selectedCell = (_this$hot$getSelected3 = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected3 === void 0 ? void 0 : _this$hot$getSelected3.highlight;
|
|
66759
|
+
const TD = selectedCell ? this.hot.getCell(selectedCell.row, selectedCell.col, true) : null;
|
|
66760
|
+
if (!this.hot.isListening() || this.isEditorOpened() || !this.hot.getSelected() || event.target instanceof HTMLElement && (isHotInput && event.target !== focusedElement || !isHotInput && event.target !== this.hot.rootDocument.body && TD !== event.target)) {
|
|
66490
66761
|
return;
|
|
66491
66762
|
}
|
|
66492
66763
|
event.preventDefault();
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
* INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING FROM
|
|
27
27
|
* USE OR INABILITY TO USE THIS SOFTWARE.
|
|
28
28
|
*
|
|
29
|
-
* Version: 0.0.0-next-
|
|
30
|
-
* Release date: 16/12/2024 (built at
|
|
29
|
+
* Version: 0.0.0-next-8a82cea-20250211
|
|
30
|
+
* Release date: 16/12/2024 (built at 11/02/2025 10:18:36)
|
|
31
31
|
*/.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 .hide{display:none}.handsontable .relative{position:relative}.handsontable .wtHider{position:relative;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{border-left:1px solid #ccc}[dir=rtl].handsontable td:first-of-type,[dir=rtl].handsontable th:first-child{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) tbody tr th,.ht_master:not(.innerBorderInlineStart):not(.emptyColumns) thead tr th:first-child,.ht_master:not(.innerBorderInlineStart):not(.emptyColumns)~.handsontable:not(.htGhostTable) tbody tr th,.ht_master:not(.innerBorderInlineStart):not(.emptyColumns)~.handsontable:not(.ht_clone_top):not(.htGhostTable) thead tr th:first-child{border-left:1px solid #ccc;border-right-width:0}[dir=rtl].ht_master:not(.innerBorderInlineStart):not(.emptyColumns) tbody tr th,[dir=rtl].ht_master:not(.innerBorderInlineStart):not(.emptyColumns) thead tr th:first-child,[dir=rtl].ht_master:not(.innerBorderInlineStart):not(.emptyColumns)~.handsontable:not(.htGhostTable) tbody tr th,[dir=rtl].ht_master:not(.innerBorderInlineStart):not(.emptyColumns)~.handsontable:not(.ht_clone_top):not(.htGhostTable) 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 table.htCore>thead,.handsontable .ht_master table.htCore>tbody>tr>th,.handsontable .ht_master table.htCore>thead{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;position:relative;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 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;content:"";left:0;position:absolute;right:0;top:0}.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;box-sizing:border-box!important;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{position:absolute;select{-webkit-appearance:menulist-button!important;border:2px solid #4b89ff;box-sizing:border-box!important;height:100%;width:100%}}.htSelectEditor select:focus{outline:none}.htSelectEditor .htAutocompleteArrow{display: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.mobile,.handsontable.mobile .wtHolder{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-overflow-scrolling:touch}.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.noValue{opacity:.5}.handsontable .htCheckboxRendererLabel{cursor:pointer;display:inline-block;font-size:inherit;vertical-align:middle}.handsontable .htCheckboxRendererLabel.fullWidth{width:100%}.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[dir=ltr] thead th:has(.collapsibleIndicator) div.htRight span.colHeader{margin-right:20px}.handsontable[dir=rtl] thead th:has(.collapsibleIndicator) div.htLeft span.colHeader{margin-left:20px}.handsontable .columnSorting{position:relative}.handsontable[dir=ltr] div.htRight span[class*=ascending],.handsontable[dir=ltr] div.htRight span[class*=descending]{margin-left:-10px;margin-right:10px}.handsontable[dir=rtl] div.htLeft span[class*=ascending],.handsontable[dir=rtl] div.htLeft span[class*=descending]{margin-left:10px;margin-right:-10px}.handsontable[dir=ltr] div.htRight span[class*=ascending]:only-child,.handsontable[dir=ltr] div.htRight span[class*=descending]:only-child{margin-left:-15px;margin-right:15px}.handsontable[dir=rtl] div.htLeft span[class*=ascending]:only-child,.handsontable[dir=rtl] div.htLeft span[class*=descending]:only-child{margin-left:15px;margin-right:-15px}.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.htGhostTable table thead th{border-bottom-width:0}.handsontable.htGhostTable table tbody tr td,.handsontable.htGhostTable table tbody tr th{border-top-width:0}.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}
|
|
32
32
|
/*!
|
|
33
33
|
* Handsontable ContextMenu
|