handsontable 0.0.0-next-827c165-20240604 → 0.0.0-next-4a6df4e-20240606
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of handsontable might be problematic. Click here for more details.
- package/base.js +2 -2
- package/base.mjs +2 -2
- package/dist/handsontable.css +2 -2
- package/dist/handsontable.full.css +2 -2
- package/dist/handsontable.full.js +199 -95
- package/dist/handsontable.full.min.css +2 -2
- package/dist/handsontable.full.min.js +42 -42
- package/dist/handsontable.js +199 -95
- package/dist/handsontable.min.css +2 -2
- package/dist/handsontable.min.js +8 -8
- package/helpers/mixed.js +1 -1
- package/helpers/mixed.mjs +1 -1
- package/package.json +1 -1
- package/plugins/mergeCells/cellCoords.js +19 -1
- package/plugins/mergeCells/cellCoords.mjs +19 -1
- package/plugins/mergeCells/cellsCollection.js +120 -37
- package/plugins/mergeCells/cellsCollection.mjs +120 -37
- package/plugins/mergeCells/mergeCells.js +39 -31
- package/plugins/mergeCells/mergeCells.mjs +39 -31
- package/selection/transformation.js +14 -20
- package/selection/transformation.mjs +14 -20
- package/shortcuts/context.d.ts +1 -1
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/04/2024 (built at
|
28
|
+
* Version: 0.0.0-next-4a6df4e-20240606
|
29
|
+
* Release date: 16/04/2024 (built at 06/06/2024 08:24:33)
|
30
30
|
*/
|
31
31
|
(function webpackUniversalModuleDefinition(root, factory) {
|
32
32
|
if(typeof exports === 'object' && typeof module === 'object')
|
@@ -107,8 +107,8 @@ Handsontable.hooks = _pluginHooks.default.getSingleton();
|
|
107
107
|
Handsontable.CellCoords = _src.CellCoords;
|
108
108
|
Handsontable.CellRange = _src.CellRange;
|
109
109
|
Handsontable.packageName = 'handsontable';
|
110
|
-
Handsontable.buildDate = "
|
111
|
-
Handsontable.version = "0.0.0-next-
|
110
|
+
Handsontable.buildDate = "06/06/2024 08:24:33";
|
111
|
+
Handsontable.version = "0.0.0-next-4a6df4e-20240606";
|
112
112
|
Handsontable.languages = {
|
113
113
|
dictionaryKeys: _registry.dictionaryKeys,
|
114
114
|
getLanguageDictionary: _registry.getLanguageDictionary,
|
@@ -9129,7 +9129,7 @@ const domMessages = {
|
|
9129
9129
|
function _injectProductInfo(key, element) {
|
9130
9130
|
const hasValidType = !isEmpty(key);
|
9131
9131
|
const isNonCommercial = typeof key === 'string' && key.toLowerCase() === 'non-commercial-and-evaluation';
|
9132
|
-
const hotVersion = "0.0.0-next-
|
9132
|
+
const hotVersion = "0.0.0-next-4a6df4e-20240606";
|
9133
9133
|
let keyValidityDate;
|
9134
9134
|
let consoleMessageState = 'invalid';
|
9135
9135
|
let domMessageState = 'invalid';
|
@@ -35768,27 +35768,21 @@ class Transformation {
|
|
35768
35768
|
const topStartCorner = cellRange.getTopStartCorner();
|
35769
35769
|
const topEndCorner = cellRange.getTopEndCorner();
|
35770
35770
|
const bottomEndCorner = cellRange.getBottomEndCorner();
|
35771
|
-
|
35772
|
-
|
35773
|
-
col
|
35774
|
-
}
|
35775
|
-
|
35776
|
-
|
35777
|
-
|
35778
|
-
|
35779
|
-
|
35780
|
-
|
35781
|
-
|
35782
|
-
|
35783
|
-
|
35784
|
-
|
35785
|
-
|
35786
|
-
coords.row = _assertClassBrand(_Transformation_brand, this, _findFirstNonHiddenZeroBasedRow).call(this, topStartCorner.row, bottomEndCorner.row) + restDelta.row;
|
35787
|
-
}
|
35788
|
-
} else if (delta.row > 0) {
|
35789
|
-
if (toRow <= highlightRow && coords.row > highlightRow) {
|
35790
|
-
coords.row = _assertClassBrand(_Transformation_brand, this, _findFirstNonHiddenZeroBasedRow).call(this, bottomEndCorner.row, topStartCorner.row) + restDelta.row;
|
35791
|
-
}
|
35771
|
+
if (delta.col < 0 && toColumn >= highlightColumn && coords.col < highlightColumn) {
|
35772
|
+
const columnRestDelta = coords.col - highlightColumn;
|
35773
|
+
coords.col = _assertClassBrand(_Transformation_brand, this, _findFirstNonHiddenZeroBasedColumn).call(this, topStartCorner.col, topEndCorner.col) + columnRestDelta;
|
35774
|
+
} else if (delta.col > 0 && toColumn <= highlightColumn && coords.col > highlightColumn) {
|
35775
|
+
const endColumnIndex = _assertClassBrand(_Transformation_brand, this, _findFirstNonHiddenZeroBasedColumn).call(this, topEndCorner.col, topStartCorner.col);
|
35776
|
+
const columnRestDelta = Math.max(coords.col - endColumnIndex, 1);
|
35777
|
+
coords.col = endColumnIndex + columnRestDelta;
|
35778
|
+
}
|
35779
|
+
if (delta.row < 0 && toRow >= highlightRow && coords.row < highlightRow) {
|
35780
|
+
const rowRestDelta = coords.row - highlightRow;
|
35781
|
+
coords.row = _assertClassBrand(_Transformation_brand, this, _findFirstNonHiddenZeroBasedRow).call(this, topStartCorner.row, bottomEndCorner.row) + rowRestDelta;
|
35782
|
+
} else if (delta.row > 0 && toRow <= highlightRow && coords.row > highlightRow) {
|
35783
|
+
const bottomRowIndex = _assertClassBrand(_Transformation_brand, this, _findFirstNonHiddenZeroBasedRow).call(this, bottomEndCorner.row, topStartCorner.row);
|
35784
|
+
const rowRestDelta = Math.max(coords.row - bottomRowIndex, 1);
|
35785
|
+
coords.row = bottomRowIndex + rowRestDelta;
|
35792
35786
|
}
|
35793
35787
|
const {
|
35794
35788
|
rowDir,
|
@@ -79743,36 +79737,42 @@ class MergeCells extends _base.BasePlugin {
|
|
79743
79737
|
* @param {Array|boolean} settings The settings provided to the plugin.
|
79744
79738
|
*/
|
79745
79739
|
generateFromSettings(settings) {
|
79746
|
-
if (Array.isArray(settings)) {
|
79747
|
-
|
79748
|
-
|
79749
|
-
|
79750
|
-
|
79740
|
+
if (!Array.isArray(settings)) {
|
79741
|
+
return;
|
79742
|
+
}
|
79743
|
+
const validSettings = settings.filter(mergeCellInfo => this.validateSetting(mergeCellInfo));
|
79744
|
+
const nonOverlappingSettings = this.mergedCellsCollection.filterOverlappingMergeCells(validSettings);
|
79745
|
+
const populatedNulls = [];
|
79746
|
+
nonOverlappingSettings.forEach(mergeCellInfo => {
|
79747
|
+
const {
|
79748
|
+
row,
|
79749
|
+
col,
|
79750
|
+
rowspan,
|
79751
|
+
colspan
|
79752
|
+
} = mergeCellInfo;
|
79753
|
+
const from = this.hot._createCellCoords(row, col);
|
79754
|
+
const to = this.hot._createCellCoords(row + rowspan - 1, col + colspan - 1);
|
79755
|
+
const mergeRange = this.hot._createCellRange(from, from, to);
|
79756
|
+
|
79757
|
+
// Merging without data population.
|
79758
|
+
this.mergeRange(mergeRange, true, true);
|
79759
|
+
for (let r = row; r < row + rowspan; r++) {
|
79760
|
+
for (let c = col; c < col + colspan; c++) {
|
79761
|
+
// Not resetting a cell representing a merge area's value.
|
79762
|
+
if (r !== row || c !== col) {
|
79763
|
+
populatedNulls.push([r, c, null]);
|
79764
|
+
}
|
79751
79765
|
}
|
79752
|
-
const highlight = this.hot._createCellCoords(setting.row, setting.col);
|
79753
|
-
const rangeEnd = this.hot._createCellCoords(setting.row + setting.rowspan - 1, setting.col + setting.colspan - 1);
|
79754
|
-
const mergeRange = this.hot._createCellRange(highlight, highlight, rangeEnd);
|
79755
|
-
|
79756
|
-
// Merging without data population.
|
79757
|
-
this.mergeRange(mergeRange, true, true);
|
79758
|
-
(0, _number.rangeEach)(setting.row, setting.row + setting.rowspan - 1, rowIndex => {
|
79759
|
-
(0, _number.rangeEach)(setting.col, setting.col + setting.colspan - 1, columnIndex => {
|
79760
|
-
// Not resetting a cell representing a merge area's value.
|
79761
|
-
if ((rowIndex === setting.row && columnIndex === setting.col) === false) {
|
79762
|
-
populatedNulls.push([rowIndex, columnIndex, null]);
|
79763
|
-
}
|
79764
|
-
});
|
79765
|
-
});
|
79766
|
-
});
|
79767
|
-
|
79768
|
-
// There are no merged cells. Thus, no data population is needed.
|
79769
|
-
if (populatedNulls.length === 0) {
|
79770
|
-
return;
|
79771
79766
|
}
|
79767
|
+
});
|
79772
79768
|
|
79773
|
-
|
79774
|
-
|
79769
|
+
// There are no merged cells. Thus, no data population is needed.
|
79770
|
+
if (populatedNulls.length === 0) {
|
79771
|
+
return;
|
79775
79772
|
}
|
79773
|
+
|
79774
|
+
// TODO: Change the `source` argument to a more meaningful value, e.g. `${this.pluginName}.clearCells`.
|
79775
|
+
this.hot.setDataAtCell(populatedNulls, undefined, undefined, this.pluginName);
|
79776
79776
|
}
|
79777
79777
|
|
79778
79778
|
/**
|
@@ -79878,7 +79878,7 @@ class MergeCells extends _base.BasePlugin {
|
|
79878
79878
|
});
|
79879
79879
|
});
|
79880
79880
|
this.hot.setCellMeta(mergeParent.row, mergeParent.col, 'spanned', true);
|
79881
|
-
const mergedCellAdded = this.mergedCellsCollection.add(mergeParent);
|
79881
|
+
const mergedCellAdded = this.mergedCellsCollection.add(mergeParent, auto);
|
79882
79882
|
if (mergedCellAdded) {
|
79883
79883
|
if (preventPopulation) {
|
79884
79884
|
populationInfo = [mergeParent.row, mergeParent.col, clearedData];
|
@@ -80422,9 +80422,9 @@ function _addMergeActionsToContextMenu(defaultOptions) {
|
|
80422
80422
|
*/
|
80423
80423
|
function _onAfterRenderer(TD, row, col) {
|
80424
80424
|
const mergedCell = this.mergedCellsCollection.get(row, col);
|
80425
|
-
|
80426
|
-
|
80427
|
-
|
80425
|
+
if ((0, _object.isObject)(mergedCell)) {
|
80426
|
+
// We shouldn't override data in the collection.
|
80427
|
+
const mergedCellCopy = (0, _object.clone)(mergedCell);
|
80428
80428
|
const {
|
80429
80429
|
rowIndexMapper: rowMapper,
|
80430
80430
|
columnIndexMapper: columnMapper
|
@@ -80449,8 +80449,10 @@ function _onAfterRenderer(TD, row, col) {
|
|
80449
80449
|
mergedCellCopy.rowspan = Math.min(mergedCellCopy.rowspan, maxRowSpan);
|
80450
80450
|
// The `colSpan` property for a `TD` element should be at most equal to number of rendered columns in the merge area.
|
80451
80451
|
mergedCellCopy.colspan = Math.min(mergedCellCopy.colspan, maxColSpan);
|
80452
|
+
(0, _utils.applySpanProperties)(TD, mergedCellCopy, row, col);
|
80453
|
+
} else {
|
80454
|
+
(0, _utils.applySpanProperties)(TD, null, row, col);
|
80452
80455
|
}
|
80453
|
-
(0, _utils.applySpanProperties)(TD, mergedCellCopy, row, col);
|
80454
80456
|
}
|
80455
80457
|
/**
|
80456
80458
|
* Clears the last selected coordinates before setting a new selection range.
|
@@ -80785,9 +80787,15 @@ class MergedCellsCollection {
|
|
80785
80787
|
/**
|
80786
80788
|
* Array of merged cells.
|
80787
80789
|
*
|
80788
|
-
* @type {
|
80790
|
+
* @type {MergedCellCoords[]}
|
80789
80791
|
*/
|
80790
80792
|
(0, _defineProperty2.default)(this, "mergedCells", []);
|
80793
|
+
/**
|
80794
|
+
* Matrix of cells (row, col) that points to the instances of the MergedCellCoords objects.
|
80795
|
+
*
|
80796
|
+
* @type {Array}
|
80797
|
+
*/
|
80798
|
+
(0, _defineProperty2.default)(this, "mergedCellsMatrix", new Map());
|
80791
80799
|
/**
|
80792
80800
|
* The Handsontable instance.
|
80793
80801
|
*
|
@@ -80819,16 +80827,11 @@ class MergedCellsCollection {
|
|
80819
80827
|
* @returns {MergedCellCoords|boolean} Returns a wanted merged cell on success and `false` on failure.
|
80820
80828
|
*/
|
80821
80829
|
get(row, column) {
|
80822
|
-
|
80823
|
-
|
80824
|
-
|
80825
|
-
|
80826
|
-
|
80827
|
-
return false;
|
80828
|
-
}
|
80829
|
-
return true;
|
80830
|
-
});
|
80831
|
-
return result;
|
80830
|
+
var _this$mergedCellsMatr;
|
80831
|
+
if (!this.mergedCellsMatrix.has(row)) {
|
80832
|
+
return false;
|
80833
|
+
}
|
80834
|
+
return (_this$mergedCellsMatr = this.mergedCellsMatrix.get(row).get(column)) !== null && _this$mergedCellsMatr !== void 0 ? _this$mergedCellsMatr : false;
|
80832
80835
|
}
|
80833
80836
|
|
80834
80837
|
/**
|
@@ -80838,9 +80841,8 @@ class MergedCellsCollection {
|
|
80838
80841
|
* @returns {MergedCellCoords|boolean}
|
80839
80842
|
*/
|
80840
80843
|
getByRange(range) {
|
80841
|
-
const mergedCells = this.mergedCells;
|
80842
80844
|
let result = false;
|
80843
|
-
(0, _array.arrayEach)(mergedCells, mergedCell => {
|
80845
|
+
(0, _array.arrayEach)(this.mergedCells, mergedCell => {
|
80844
80846
|
if (mergedCell.row <= range.from.row && mergedCell.row + mergedCell.rowspan - 1 >= range.to.row && mergedCell.col <= range.from.col && mergedCell.col + mergedCell.colspan - 1 >= range.to.col) {
|
80845
80847
|
result = mergedCell;
|
80846
80848
|
return result;
|
@@ -80850,6 +80852,59 @@ class MergedCellsCollection {
|
|
80850
80852
|
return result;
|
80851
80853
|
}
|
80852
80854
|
|
80855
|
+
/**
|
80856
|
+
* Filters merge cells objects provided by users from overlapping cells.
|
80857
|
+
*
|
80858
|
+
* @param {{ row: number, col: number, rowspan: number, colspan: number }} mergedCellsInfo The merged cell information object.
|
80859
|
+
* Has to contain `row`, `col`, `colspan` and `rowspan` properties.
|
80860
|
+
* @returns {Array<{ row: number, col: number, rowspan: number, colspan: number }>}
|
80861
|
+
*/
|
80862
|
+
filterOverlappingMergeCells(mergedCellsInfo) {
|
80863
|
+
const occupiedCells = new Set();
|
80864
|
+
this.mergedCells.forEach(mergedCell => {
|
80865
|
+
const {
|
80866
|
+
row,
|
80867
|
+
col,
|
80868
|
+
colspan,
|
80869
|
+
rowspan
|
80870
|
+
} = mergedCell;
|
80871
|
+
for (let r = row; r < row + rowspan; r++) {
|
80872
|
+
for (let c = col; c < col + colspan; c++) {
|
80873
|
+
occupiedCells.add(`r${r},c${c}`);
|
80874
|
+
}
|
80875
|
+
}
|
80876
|
+
});
|
80877
|
+
const filteredMergeCells = mergedCellsInfo.filter(mergedCell => {
|
80878
|
+
const {
|
80879
|
+
row,
|
80880
|
+
col,
|
80881
|
+
colspan,
|
80882
|
+
rowspan
|
80883
|
+
} = mergedCell;
|
80884
|
+
const localOccupiedCells = new Set();
|
80885
|
+
let isOverlapping = false;
|
80886
|
+
for (let r = row; r < row + rowspan; r++) {
|
80887
|
+
for (let c = col; c < col + colspan; c++) {
|
80888
|
+
const cellId = `r${r},c${c}`;
|
80889
|
+
if (occupiedCells.has(cellId)) {
|
80890
|
+
(0, _console.warn)(MergedCellsCollection.IS_OVERLAPPING_WARNING(mergedCell));
|
80891
|
+
isOverlapping = true;
|
80892
|
+
break;
|
80893
|
+
}
|
80894
|
+
localOccupiedCells.add(cellId);
|
80895
|
+
}
|
80896
|
+
if (isOverlapping) {
|
80897
|
+
break;
|
80898
|
+
}
|
80899
|
+
}
|
80900
|
+
if (!isOverlapping) {
|
80901
|
+
occupiedCells.add(...localOccupiedCells);
|
80902
|
+
}
|
80903
|
+
return !isOverlapping;
|
80904
|
+
});
|
80905
|
+
return filteredMergeCells;
|
80906
|
+
}
|
80907
|
+
|
80853
80908
|
/**
|
80854
80909
|
* Get a merged cell contained in the provided range.
|
80855
80910
|
*
|
@@ -80859,7 +80914,6 @@ class MergedCellsCollection {
|
|
80859
80914
|
*/
|
80860
80915
|
getWithinRange(range) {
|
80861
80916
|
let countPartials = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
80862
|
-
const mergedCells = this.mergedCells;
|
80863
80917
|
const foundMergedCells = [];
|
80864
80918
|
let testedRange = range;
|
80865
80919
|
if (!testedRange.includesRange) {
|
@@ -80867,7 +80921,7 @@ class MergedCellsCollection {
|
|
80867
80921
|
const to = this.hot._createCellCoords(testedRange.to.row, testedRange.to.col);
|
80868
80922
|
testedRange = this.hot._createCellRange(from, from, to);
|
80869
80923
|
}
|
80870
|
-
(0, _array.arrayEach)(mergedCells, mergedCell => {
|
80924
|
+
(0, _array.arrayEach)(this.mergedCells, mergedCell => {
|
80871
80925
|
const mergedCellTopLeft = this.hot._createCellCoords(mergedCell.row, mergedCell.col);
|
80872
80926
|
const mergedCellBottomRight = this.hot._createCellCoords(mergedCell.row + mergedCell.rowspan - 1, mergedCell.col + mergedCell.colspan - 1);
|
80873
80927
|
const mergedCellRange = this.hot._createCellRange(mergedCellTopLeft, mergedCellTopLeft, mergedCellBottomRight);
|
@@ -80886,22 +80940,24 @@ class MergedCellsCollection {
|
|
80886
80940
|
* Add a merged cell to the container.
|
80887
80941
|
*
|
80888
80942
|
* @param {object} mergedCellInfo The merged cell information object. Has to contain `row`, `col`, `colspan` and `rowspan` properties.
|
80943
|
+
* @param {boolean} [auto=false] `true` if called internally by the plugin (usually in batch).
|
80889
80944
|
* @returns {MergedCellCoords|boolean} Returns the new merged cell on success and `false` on failure.
|
80890
80945
|
*/
|
80891
80946
|
add(mergedCellInfo) {
|
80892
|
-
|
80947
|
+
let auto = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
80893
80948
|
const row = mergedCellInfo.row;
|
80894
80949
|
const column = mergedCellInfo.col;
|
80895
80950
|
const rowspan = mergedCellInfo.rowspan;
|
80896
80951
|
const colspan = mergedCellInfo.colspan;
|
80897
80952
|
const newMergedCell = new _cellCoords.default(row, column, rowspan, colspan, this.hot._createCellCoords, this.hot._createCellRange);
|
80898
80953
|
const alreadyExists = this.get(row, column);
|
80899
|
-
const isOverlapping = this.isOverlapping(newMergedCell);
|
80954
|
+
const isOverlapping = auto ? false : this.isOverlapping(newMergedCell);
|
80900
80955
|
if (!alreadyExists && !isOverlapping) {
|
80901
80956
|
if (this.hot) {
|
80902
80957
|
newMergedCell.normalize(this.hot);
|
80903
80958
|
}
|
80904
|
-
mergedCells.push(newMergedCell);
|
80959
|
+
this.mergedCells.push(newMergedCell);
|
80960
|
+
_assertClassBrand(_MergedCellsCollection_brand, this, _addMergedCellToMatrix).call(this, newMergedCell);
|
80905
80961
|
return newMergedCell;
|
80906
80962
|
}
|
80907
80963
|
(0, _console.warn)(MergedCellsCollection.IS_OVERLAPPING_WARNING(newMergedCell));
|
@@ -80917,12 +80973,12 @@ class MergedCellsCollection {
|
|
80917
80973
|
* @returns {MergedCellCoords|boolean} Returns the removed merged cell on success and `false` on failure.
|
80918
80974
|
*/
|
80919
80975
|
remove(row, column) {
|
80920
|
-
const
|
80921
|
-
const
|
80922
|
-
|
80923
|
-
|
80924
|
-
|
80925
|
-
return
|
80976
|
+
const mergedCell = this.get(row, column);
|
80977
|
+
const mergedCellIndex = mergedCell ? this.mergedCells.indexOf(mergedCell) : -1;
|
80978
|
+
if (mergedCell && mergedCellIndex !== -1) {
|
80979
|
+
this.mergedCells.splice(mergedCellIndex, 1);
|
80980
|
+
_assertClassBrand(_MergedCellsCollection_brand, this, _removeMergedCellFromMatrix).call(this, mergedCell);
|
80981
|
+
return mergedCell;
|
80926
80982
|
}
|
80927
80983
|
return false;
|
80928
80984
|
}
|
@@ -80931,16 +80987,16 @@ class MergedCellsCollection {
|
|
80931
80987
|
* Clear all the merged cells.
|
80932
80988
|
*/
|
80933
80989
|
clear() {
|
80934
|
-
const mergedCells = this.mergedCells;
|
80935
80990
|
const mergedCellParentsToClear = [];
|
80936
80991
|
const hiddenCollectionElements = [];
|
80937
|
-
(0, _array.arrayEach)(mergedCells, mergedCell => {
|
80992
|
+
(0, _array.arrayEach)(this.mergedCells, mergedCell => {
|
80938
80993
|
const TD = this.hot.getCell(mergedCell.row, mergedCell.col);
|
80939
80994
|
if (TD) {
|
80940
80995
|
mergedCellParentsToClear.push([TD, this.get(mergedCell.row, mergedCell.col), mergedCell.row, mergedCell.col]);
|
80941
80996
|
}
|
80942
80997
|
});
|
80943
80998
|
this.mergedCells.length = 0;
|
80999
|
+
this.mergedCellsMatrix = new Map();
|
80944
81000
|
(0, _array.arrayEach)(mergedCellParentsToClear, (mergedCell, i) => {
|
80945
81001
|
(0, _number.rangeEach)(0, mergedCell.rowspan - 1, j => {
|
80946
81002
|
(0, _number.rangeEach)(0, mergedCell.colspan - 1, k => {
|
@@ -80963,23 +81019,21 @@ class MergedCellsCollection {
|
|
80963
81019
|
}
|
80964
81020
|
|
80965
81021
|
/**
|
80966
|
-
* Check if the provided merged cell overlaps with the others
|
81022
|
+
* Check if the provided merged cell overlaps with the others already added.
|
80967
81023
|
*
|
80968
81024
|
* @param {MergedCellCoords} mergedCell The merged cell to check against all others in the container.
|
80969
81025
|
* @returns {boolean} `true` if the provided merged cell overlaps with the others, `false` otherwise.
|
80970
81026
|
*/
|
80971
81027
|
isOverlapping(mergedCell) {
|
80972
|
-
const mergedCellRange =
|
80973
|
-
let
|
80974
|
-
|
80975
|
-
const
|
80976
|
-
if (
|
80977
|
-
|
80978
|
-
return false;
|
81028
|
+
const mergedCellRange = mergedCell.getRange();
|
81029
|
+
for (let i = 0; i < this.mergedCells.length; i++) {
|
81030
|
+
const otherMergedCell = this.mergedCells[i];
|
81031
|
+
const otherMergedCellRange = otherMergedCell.getRange();
|
81032
|
+
if (otherMergedCellRange.overlaps(mergedCellRange)) {
|
81033
|
+
return true;
|
80979
81034
|
}
|
80980
|
-
|
80981
|
-
|
80982
|
-
return result;
|
81035
|
+
}
|
81036
|
+
return false;
|
80983
81037
|
}
|
80984
81038
|
|
80985
81039
|
/**
|
@@ -81114,15 +81168,24 @@ class MergedCellsCollection {
|
|
81114
81168
|
default:
|
81115
81169
|
}
|
81116
81170
|
(0, _array.arrayEach)(this.mergedCells, currentMerge => {
|
81171
|
+
_assertClassBrand(_MergedCellsCollection_brand, this, _removeMergedCellFromMatrix).call(this, currentMerge);
|
81117
81172
|
currentMerge.shift(shiftVector, index);
|
81173
|
+
_assertClassBrand(_MergedCellsCollection_brand, this, _addMergedCellToMatrix).call(this, currentMerge);
|
81118
81174
|
});
|
81119
81175
|
(0, _number.rangeEachReverse)(this.mergedCells.length - 1, 0, i => {
|
81120
81176
|
const currentMerge = this.mergedCells[i];
|
81121
81177
|
if (currentMerge && currentMerge.removed) {
|
81122
81178
|
this.mergedCells.splice(this.mergedCells.indexOf(currentMerge), 1);
|
81179
|
+
_assertClassBrand(_MergedCellsCollection_brand, this, _removeMergedCellFromMatrix).call(this, currentMerge);
|
81123
81180
|
}
|
81124
81181
|
});
|
81125
81182
|
}
|
81183
|
+
|
81184
|
+
/**
|
81185
|
+
* Adds a merged cell to the matrix.
|
81186
|
+
*
|
81187
|
+
* @param {MergedCellCoords} mergedCell The merged cell to add.
|
81188
|
+
*/
|
81126
81189
|
}
|
81127
81190
|
function _getNonIntersectingIndexes(range, axis) {
|
81128
81191
|
let scanDirection = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
|
@@ -81151,6 +81214,28 @@ function _getNonIntersectingIndexes(range, axis) {
|
|
81151
81214
|
return Array.from(set);
|
81152
81215
|
})));
|
81153
81216
|
}
|
81217
|
+
function _addMergedCellToMatrix(mergedCell) {
|
81218
|
+
for (let row = mergedCell.row; row < mergedCell.row + mergedCell.rowspan; row++) {
|
81219
|
+
for (let col = mergedCell.col; col < mergedCell.col + mergedCell.colspan; col++) {
|
81220
|
+
if (!this.mergedCellsMatrix.has(row)) {
|
81221
|
+
this.mergedCellsMatrix.set(row, new Map());
|
81222
|
+
}
|
81223
|
+
this.mergedCellsMatrix.get(row).set(col, mergedCell);
|
81224
|
+
}
|
81225
|
+
}
|
81226
|
+
}
|
81227
|
+
/**
|
81228
|
+
* Removes a merged cell from the matrix.
|
81229
|
+
*
|
81230
|
+
* @param {MergedCellCoords} mergedCell The merged cell to remove.
|
81231
|
+
*/
|
81232
|
+
function _removeMergedCellFromMatrix(mergedCell) {
|
81233
|
+
for (let row = mergedCell.row; row < mergedCell.row + mergedCell.rowspan; row++) {
|
81234
|
+
for (let col = mergedCell.col; col < mergedCell.col + mergedCell.colspan; col++) {
|
81235
|
+
this.mergedCellsMatrix.get(row).delete(col);
|
81236
|
+
}
|
81237
|
+
}
|
81238
|
+
}
|
81154
81239
|
var _default = exports["default"] = MergedCellsCollection;
|
81155
81240
|
|
81156
81241
|
/***/ }),
|
@@ -81162,14 +81247,21 @@ var _default = exports["default"] = MergedCellsCollection;
|
|
81162
81247
|
|
81163
81248
|
var _interopRequireDefault = __webpack_require__(1);
|
81164
81249
|
exports.__esModule = true;
|
81250
|
+
__webpack_require__(8);
|
81165
81251
|
var _defineProperty2 = _interopRequireDefault(__webpack_require__(153));
|
81166
81252
|
var _templateLiteralTag = __webpack_require__(143);
|
81253
|
+
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
81254
|
+
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
81255
|
+
function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
|
81256
|
+
function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
|
81257
|
+
function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); }
|
81167
81258
|
/**
|
81168
81259
|
* The `MergedCellCoords` class represents a single merged cell.
|
81169
81260
|
*
|
81170
81261
|
* @private
|
81171
81262
|
* @class MergedCellCoords
|
81172
81263
|
*/
|
81264
|
+
var _cellRange = /*#__PURE__*/new WeakMap();
|
81173
81265
|
class MergedCellCoords {
|
81174
81266
|
constructor(row, column, rowspan, colspan, cellCoordsFactory, cellRangeFactory) {
|
81175
81267
|
/**
|
@@ -81214,6 +81306,12 @@ class MergedCellCoords {
|
|
81214
81306
|
* @type {Function}
|
81215
81307
|
*/
|
81216
81308
|
(0, _defineProperty2.default)(this, "cellRangeFactory", void 0);
|
81309
|
+
/**
|
81310
|
+
* The cached range coordinates of the merged cell.
|
81311
|
+
*
|
81312
|
+
* @type {CellRange}
|
81313
|
+
*/
|
81314
|
+
_classPrivateFieldInitSpec(this, _cellRange, null);
|
81217
81315
|
this.row = row;
|
81218
81316
|
this.col = column;
|
81219
81317
|
this.rowspan = rowspan;
|
@@ -81335,6 +81433,7 @@ class MergedCellCoords {
|
|
81335
81433
|
if (this.col + this.colspan > totalColumns - 1) {
|
81336
81434
|
this.colspan = totalColumns - this.col;
|
81337
81435
|
}
|
81436
|
+
_classPrivateFieldSet(_cellRange, this, null);
|
81338
81437
|
}
|
81339
81438
|
|
81340
81439
|
/**
|
@@ -81399,6 +81498,7 @@ class MergedCellCoords {
|
|
81399
81498
|
// removing the whole merge
|
81400
81499
|
if (changeStart <= mergeStart && changeEnd >= mergeEnd) {
|
81401
81500
|
this.removed = true;
|
81501
|
+
_classPrivateFieldSet(_cellRange, this, null);
|
81402
81502
|
return false;
|
81403
81503
|
|
81404
81504
|
// removing the merge partially, including the beginning
|
@@ -81418,6 +81518,7 @@ class MergedCellCoords {
|
|
81418
81518
|
this[span] -= removedPart;
|
81419
81519
|
}
|
81420
81520
|
}
|
81521
|
+
_classPrivateFieldSet(_cellRange, this, null);
|
81421
81522
|
return true;
|
81422
81523
|
}
|
81423
81524
|
|
@@ -81468,7 +81569,10 @@ class MergedCellCoords {
|
|
81468
81569
|
* @returns {CellRange}
|
81469
81570
|
*/
|
81470
81571
|
getRange() {
|
81471
|
-
|
81572
|
+
if (!_classPrivateFieldGet(_cellRange, this)) {
|
81573
|
+
_classPrivateFieldSet(_cellRange, this, this.cellRangeFactory(this.cellCoordsFactory(this.row, this.col), this.cellCoordsFactory(this.row, this.col), this.cellCoordsFactory(this.getLastRow(), this.getLastColumn())));
|
81574
|
+
}
|
81575
|
+
return _classPrivateFieldGet(_cellRange, this);
|
81472
81576
|
}
|
81473
81577
|
}
|
81474
81578
|
var _default = exports["default"] = MergedCellCoords;
|
@@ -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/04/2024 (built at
|
28
|
+
* Version: 0.0.0-next-4a6df4e-20240606
|
29
|
+
* Release date: 16/04/2024 (built at 06/06/2024 08:24:50)
|
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{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)~.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 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;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-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{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
|