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 CHANGED
@@ -45,8 +45,8 @@ Handsontable.hooks = _pluginHooks.default.getSingleton();
45
45
  Handsontable.CellCoords = _src.CellCoords;
46
46
  Handsontable.CellRange = _src.CellRange;
47
47
  Handsontable.packageName = 'handsontable';
48
- Handsontable.buildDate = "04/06/2024 07:44:43";
49
- Handsontable.version = "0.0.0-next-827c165-20240604";
48
+ Handsontable.buildDate = "06/06/2024 08:24:23";
49
+ Handsontable.version = "0.0.0-next-4a6df4e-20240606";
50
50
  Handsontable.languages = {
51
51
  dictionaryKeys: _registry.dictionaryKeys,
52
52
  getLanguageDictionary: _registry.getLanguageDictionary,
package/base.mjs CHANGED
@@ -35,8 +35,8 @@ Handsontable.hooks = Hooks.getSingleton();
35
35
  Handsontable.CellCoords = CellCoords;
36
36
  Handsontable.CellRange = CellRange;
37
37
  Handsontable.packageName = 'handsontable';
38
- Handsontable.buildDate = "04/06/2024 07:44:50";
39
- Handsontable.version = "0.0.0-next-827c165-20240604";
38
+ Handsontable.buildDate = "06/06/2024 08:24:29";
39
+ Handsontable.version = "0.0.0-next-4a6df4e-20240606";
40
40
  Handsontable.languages = {
41
41
  dictionaryKeys,
42
42
  getLanguageDictionary,
@@ -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-827c165-20240604
29
- * Release date: 16/04/2024 (built at 04/06/2024 07:44:55)
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
  /**
32
32
  * Fix for bootstrap styles
@@ -25,8 +25,8 @@
25
25
  * INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING FROM
26
26
  * USE OR INABILITY TO USE THIS SOFTWARE.
27
27
  *
28
- * Version: 0.0.0-next-827c165-20240604
29
- * Release date: 16/04/2024 (built at 04/06/2024 07:44:55)
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
  /**
32
32
  * Fix for bootstrap styles
@@ -25,8 +25,8 @@
25
25
  * INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING FROM
26
26
  * USE OR INABILITY TO USE THIS SOFTWARE.
27
27
  *
28
- * Version: 0.0.0-next-827c165-20240604
29
- * Release date: 16/04/2024 (built at 04/06/2024 07:44:55)
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')
@@ -42675,8 +42675,8 @@ Handsontable.hooks = _pluginHooks.default.getSingleton();
42675
42675
  Handsontable.CellCoords = _src.CellCoords;
42676
42676
  Handsontable.CellRange = _src.CellRange;
42677
42677
  Handsontable.packageName = 'handsontable';
42678
- Handsontable.buildDate = "04/06/2024 07:44:55";
42679
- Handsontable.version = "0.0.0-next-827c165-20240604";
42678
+ Handsontable.buildDate = "06/06/2024 08:24:33";
42679
+ Handsontable.version = "0.0.0-next-4a6df4e-20240606";
42680
42680
  Handsontable.languages = {
42681
42681
  dictionaryKeys: _registry.dictionaryKeys,
42682
42682
  getLanguageDictionary: _registry.getLanguageDictionary,
@@ -53274,7 +53274,7 @@ const domMessages = {
53274
53274
  function _injectProductInfo(key, element) {
53275
53275
  const hasValidType = !isEmpty(key);
53276
53276
  const isNonCommercial = typeof key === 'string' && key.toLowerCase() === 'non-commercial-and-evaluation';
53277
- const hotVersion = "0.0.0-next-827c165-20240604";
53277
+ const hotVersion = "0.0.0-next-4a6df4e-20240606";
53278
53278
  let keyValidityDate;
53279
53279
  let consoleMessageState = 'invalid';
53280
53280
  let domMessageState = 'invalid';
@@ -86726,27 +86726,21 @@ class Transformation {
86726
86726
  const topStartCorner = cellRange.getTopStartCorner();
86727
86727
  const topEndCorner = cellRange.getTopEndCorner();
86728
86728
  const bottomEndCorner = cellRange.getBottomEndCorner();
86729
- const restDelta = {
86730
- row: coords.row - highlightRow,
86731
- col: coords.col - highlightColumn
86732
- };
86733
- if (delta.col < 0) {
86734
- if (toColumn >= highlightColumn && coords.col < highlightColumn) {
86735
- coords.col = _assertClassBrand(_Transformation_brand, this, _findFirstNonHiddenZeroBasedColumn).call(this, topStartCorner.col, topEndCorner.col) + restDelta.col;
86736
- }
86737
- } else if (delta.col > 0) {
86738
- if (toColumn <= highlightColumn && coords.col > highlightColumn) {
86739
- coords.col = _assertClassBrand(_Transformation_brand, this, _findFirstNonHiddenZeroBasedColumn).call(this, topEndCorner.col, topStartCorner.col) + restDelta.col;
86740
- }
86741
- }
86742
- if (delta.row < 0) {
86743
- if (toRow >= highlightRow && coords.row < highlightRow) {
86744
- coords.row = _assertClassBrand(_Transformation_brand, this, _findFirstNonHiddenZeroBasedRow).call(this, topStartCorner.row, bottomEndCorner.row) + restDelta.row;
86745
- }
86746
- } else if (delta.row > 0) {
86747
- if (toRow <= highlightRow && coords.row > highlightRow) {
86748
- coords.row = _assertClassBrand(_Transformation_brand, this, _findFirstNonHiddenZeroBasedRow).call(this, bottomEndCorner.row, topStartCorner.row) + restDelta.row;
86749
- }
86729
+ if (delta.col < 0 && toColumn >= highlightColumn && coords.col < highlightColumn) {
86730
+ const columnRestDelta = coords.col - highlightColumn;
86731
+ coords.col = _assertClassBrand(_Transformation_brand, this, _findFirstNonHiddenZeroBasedColumn).call(this, topStartCorner.col, topEndCorner.col) + columnRestDelta;
86732
+ } else if (delta.col > 0 && toColumn <= highlightColumn && coords.col > highlightColumn) {
86733
+ const endColumnIndex = _assertClassBrand(_Transformation_brand, this, _findFirstNonHiddenZeroBasedColumn).call(this, topEndCorner.col, topStartCorner.col);
86734
+ const columnRestDelta = Math.max(coords.col - endColumnIndex, 1);
86735
+ coords.col = endColumnIndex + columnRestDelta;
86736
+ }
86737
+ if (delta.row < 0 && toRow >= highlightRow && coords.row < highlightRow) {
86738
+ const rowRestDelta = coords.row - highlightRow;
86739
+ coords.row = _assertClassBrand(_Transformation_brand, this, _findFirstNonHiddenZeroBasedRow).call(this, topStartCorner.row, bottomEndCorner.row) + rowRestDelta;
86740
+ } else if (delta.row > 0 && toRow <= highlightRow && coords.row > highlightRow) {
86741
+ const bottomRowIndex = _assertClassBrand(_Transformation_brand, this, _findFirstNonHiddenZeroBasedRow).call(this, bottomEndCorner.row, topStartCorner.row);
86742
+ const rowRestDelta = Math.max(coords.row - bottomRowIndex, 1);
86743
+ coords.row = bottomRowIndex + rowRestDelta;
86750
86744
  }
86751
86745
  const {
86752
86746
  rowDir,
@@ -131643,36 +131637,42 @@ class MergeCells extends _base.BasePlugin {
131643
131637
  * @param {Array|boolean} settings The settings provided to the plugin.
131644
131638
  */
131645
131639
  generateFromSettings(settings) {
131646
- if (Array.isArray(settings)) {
131647
- const populatedNulls = [];
131648
- (0, _array.arrayEach)(settings, setting => {
131649
- if (!this.validateSetting(setting)) {
131650
- return;
131640
+ if (!Array.isArray(settings)) {
131641
+ return;
131642
+ }
131643
+ const validSettings = settings.filter(mergeCellInfo => this.validateSetting(mergeCellInfo));
131644
+ const nonOverlappingSettings = this.mergedCellsCollection.filterOverlappingMergeCells(validSettings);
131645
+ const populatedNulls = [];
131646
+ nonOverlappingSettings.forEach(mergeCellInfo => {
131647
+ const {
131648
+ row,
131649
+ col,
131650
+ rowspan,
131651
+ colspan
131652
+ } = mergeCellInfo;
131653
+ const from = this.hot._createCellCoords(row, col);
131654
+ const to = this.hot._createCellCoords(row + rowspan - 1, col + colspan - 1);
131655
+ const mergeRange = this.hot._createCellRange(from, from, to);
131656
+
131657
+ // Merging without data population.
131658
+ this.mergeRange(mergeRange, true, true);
131659
+ for (let r = row; r < row + rowspan; r++) {
131660
+ for (let c = col; c < col + colspan; c++) {
131661
+ // Not resetting a cell representing a merge area's value.
131662
+ if (r !== row || c !== col) {
131663
+ populatedNulls.push([r, c, null]);
131664
+ }
131651
131665
  }
131652
- const highlight = this.hot._createCellCoords(setting.row, setting.col);
131653
- const rangeEnd = this.hot._createCellCoords(setting.row + setting.rowspan - 1, setting.col + setting.colspan - 1);
131654
- const mergeRange = this.hot._createCellRange(highlight, highlight, rangeEnd);
131655
-
131656
- // Merging without data population.
131657
- this.mergeRange(mergeRange, true, true);
131658
- (0, _number.rangeEach)(setting.row, setting.row + setting.rowspan - 1, rowIndex => {
131659
- (0, _number.rangeEach)(setting.col, setting.col + setting.colspan - 1, columnIndex => {
131660
- // Not resetting a cell representing a merge area's value.
131661
- if ((rowIndex === setting.row && columnIndex === setting.col) === false) {
131662
- populatedNulls.push([rowIndex, columnIndex, null]);
131663
- }
131664
- });
131665
- });
131666
- });
131667
-
131668
- // There are no merged cells. Thus, no data population is needed.
131669
- if (populatedNulls.length === 0) {
131670
- return;
131671
131666
  }
131667
+ });
131672
131668
 
131673
- // TODO: Change the `source` argument to a more meaningful value, e.g. `${this.pluginName}.clearCells`.
131674
- this.hot.setDataAtCell(populatedNulls, undefined, undefined, this.pluginName);
131669
+ // There are no merged cells. Thus, no data population is needed.
131670
+ if (populatedNulls.length === 0) {
131671
+ return;
131675
131672
  }
131673
+
131674
+ // TODO: Change the `source` argument to a more meaningful value, e.g. `${this.pluginName}.clearCells`.
131675
+ this.hot.setDataAtCell(populatedNulls, undefined, undefined, this.pluginName);
131676
131676
  }
131677
131677
 
131678
131678
  /**
@@ -131778,7 +131778,7 @@ class MergeCells extends _base.BasePlugin {
131778
131778
  });
131779
131779
  });
131780
131780
  this.hot.setCellMeta(mergeParent.row, mergeParent.col, 'spanned', true);
131781
- const mergedCellAdded = this.mergedCellsCollection.add(mergeParent);
131781
+ const mergedCellAdded = this.mergedCellsCollection.add(mergeParent, auto);
131782
131782
  if (mergedCellAdded) {
131783
131783
  if (preventPopulation) {
131784
131784
  populationInfo = [mergeParent.row, mergeParent.col, clearedData];
@@ -132322,9 +132322,9 @@ function _addMergeActionsToContextMenu(defaultOptions) {
132322
132322
  */
132323
132323
  function _onAfterRenderer(TD, row, col) {
132324
132324
  const mergedCell = this.mergedCellsCollection.get(row, col);
132325
- // We shouldn't override data in the collection.
132326
- const mergedCellCopy = (0, _object.isObject)(mergedCell) ? (0, _object.clone)(mergedCell) : undefined;
132327
- if ((0, _object.isObject)(mergedCellCopy)) {
132325
+ if ((0, _object.isObject)(mergedCell)) {
132326
+ // We shouldn't override data in the collection.
132327
+ const mergedCellCopy = (0, _object.clone)(mergedCell);
132328
132328
  const {
132329
132329
  rowIndexMapper: rowMapper,
132330
132330
  columnIndexMapper: columnMapper
@@ -132349,8 +132349,10 @@ function _onAfterRenderer(TD, row, col) {
132349
132349
  mergedCellCopy.rowspan = Math.min(mergedCellCopy.rowspan, maxRowSpan);
132350
132350
  // The `colSpan` property for a `TD` element should be at most equal to number of rendered columns in the merge area.
132351
132351
  mergedCellCopy.colspan = Math.min(mergedCellCopy.colspan, maxColSpan);
132352
+ (0, _utils.applySpanProperties)(TD, mergedCellCopy, row, col);
132353
+ } else {
132354
+ (0, _utils.applySpanProperties)(TD, null, row, col);
132352
132355
  }
132353
- (0, _utils.applySpanProperties)(TD, mergedCellCopy, row, col);
132354
132356
  }
132355
132357
  /**
132356
132358
  * Clears the last selected coordinates before setting a new selection range.
@@ -132685,9 +132687,15 @@ class MergedCellsCollection {
132685
132687
  /**
132686
132688
  * Array of merged cells.
132687
132689
  *
132688
- * @type {Array}
132690
+ * @type {MergedCellCoords[]}
132689
132691
  */
132690
132692
  (0, _defineProperty2.default)(this, "mergedCells", []);
132693
+ /**
132694
+ * Matrix of cells (row, col) that points to the instances of the MergedCellCoords objects.
132695
+ *
132696
+ * @type {Array}
132697
+ */
132698
+ (0, _defineProperty2.default)(this, "mergedCellsMatrix", new Map());
132691
132699
  /**
132692
132700
  * The Handsontable instance.
132693
132701
  *
@@ -132719,16 +132727,11 @@ class MergedCellsCollection {
132719
132727
  * @returns {MergedCellCoords|boolean} Returns a wanted merged cell on success and `false` on failure.
132720
132728
  */
132721
132729
  get(row, column) {
132722
- const mergedCells = this.mergedCells;
132723
- let result = false;
132724
- (0, _array.arrayEach)(mergedCells, mergedCell => {
132725
- if (mergedCell.row <= row && mergedCell.row + mergedCell.rowspan - 1 >= row && mergedCell.col <= column && mergedCell.col + mergedCell.colspan - 1 >= column) {
132726
- result = mergedCell;
132727
- return false;
132728
- }
132729
- return true;
132730
- });
132731
- return result;
132730
+ var _this$mergedCellsMatr;
132731
+ if (!this.mergedCellsMatrix.has(row)) {
132732
+ return false;
132733
+ }
132734
+ return (_this$mergedCellsMatr = this.mergedCellsMatrix.get(row).get(column)) !== null && _this$mergedCellsMatr !== void 0 ? _this$mergedCellsMatr : false;
132732
132735
  }
132733
132736
 
132734
132737
  /**
@@ -132738,9 +132741,8 @@ class MergedCellsCollection {
132738
132741
  * @returns {MergedCellCoords|boolean}
132739
132742
  */
132740
132743
  getByRange(range) {
132741
- const mergedCells = this.mergedCells;
132742
132744
  let result = false;
132743
- (0, _array.arrayEach)(mergedCells, mergedCell => {
132745
+ (0, _array.arrayEach)(this.mergedCells, mergedCell => {
132744
132746
  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) {
132745
132747
  result = mergedCell;
132746
132748
  return result;
@@ -132750,6 +132752,59 @@ class MergedCellsCollection {
132750
132752
  return result;
132751
132753
  }
132752
132754
 
132755
+ /**
132756
+ * Filters merge cells objects provided by users from overlapping cells.
132757
+ *
132758
+ * @param {{ row: number, col: number, rowspan: number, colspan: number }} mergedCellsInfo The merged cell information object.
132759
+ * Has to contain `row`, `col`, `colspan` and `rowspan` properties.
132760
+ * @returns {Array<{ row: number, col: number, rowspan: number, colspan: number }>}
132761
+ */
132762
+ filterOverlappingMergeCells(mergedCellsInfo) {
132763
+ const occupiedCells = new Set();
132764
+ this.mergedCells.forEach(mergedCell => {
132765
+ const {
132766
+ row,
132767
+ col,
132768
+ colspan,
132769
+ rowspan
132770
+ } = mergedCell;
132771
+ for (let r = row; r < row + rowspan; r++) {
132772
+ for (let c = col; c < col + colspan; c++) {
132773
+ occupiedCells.add(`r${r},c${c}`);
132774
+ }
132775
+ }
132776
+ });
132777
+ const filteredMergeCells = mergedCellsInfo.filter(mergedCell => {
132778
+ const {
132779
+ row,
132780
+ col,
132781
+ colspan,
132782
+ rowspan
132783
+ } = mergedCell;
132784
+ const localOccupiedCells = new Set();
132785
+ let isOverlapping = false;
132786
+ for (let r = row; r < row + rowspan; r++) {
132787
+ for (let c = col; c < col + colspan; c++) {
132788
+ const cellId = `r${r},c${c}`;
132789
+ if (occupiedCells.has(cellId)) {
132790
+ (0, _console.warn)(MergedCellsCollection.IS_OVERLAPPING_WARNING(mergedCell));
132791
+ isOverlapping = true;
132792
+ break;
132793
+ }
132794
+ localOccupiedCells.add(cellId);
132795
+ }
132796
+ if (isOverlapping) {
132797
+ break;
132798
+ }
132799
+ }
132800
+ if (!isOverlapping) {
132801
+ occupiedCells.add(...localOccupiedCells);
132802
+ }
132803
+ return !isOverlapping;
132804
+ });
132805
+ return filteredMergeCells;
132806
+ }
132807
+
132753
132808
  /**
132754
132809
  * Get a merged cell contained in the provided range.
132755
132810
  *
@@ -132759,7 +132814,6 @@ class MergedCellsCollection {
132759
132814
  */
132760
132815
  getWithinRange(range) {
132761
132816
  let countPartials = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
132762
- const mergedCells = this.mergedCells;
132763
132817
  const foundMergedCells = [];
132764
132818
  let testedRange = range;
132765
132819
  if (!testedRange.includesRange) {
@@ -132767,7 +132821,7 @@ class MergedCellsCollection {
132767
132821
  const to = this.hot._createCellCoords(testedRange.to.row, testedRange.to.col);
132768
132822
  testedRange = this.hot._createCellRange(from, from, to);
132769
132823
  }
132770
- (0, _array.arrayEach)(mergedCells, mergedCell => {
132824
+ (0, _array.arrayEach)(this.mergedCells, mergedCell => {
132771
132825
  const mergedCellTopLeft = this.hot._createCellCoords(mergedCell.row, mergedCell.col);
132772
132826
  const mergedCellBottomRight = this.hot._createCellCoords(mergedCell.row + mergedCell.rowspan - 1, mergedCell.col + mergedCell.colspan - 1);
132773
132827
  const mergedCellRange = this.hot._createCellRange(mergedCellTopLeft, mergedCellTopLeft, mergedCellBottomRight);
@@ -132786,22 +132840,24 @@ class MergedCellsCollection {
132786
132840
  * Add a merged cell to the container.
132787
132841
  *
132788
132842
  * @param {object} mergedCellInfo The merged cell information object. Has to contain `row`, `col`, `colspan` and `rowspan` properties.
132843
+ * @param {boolean} [auto=false] `true` if called internally by the plugin (usually in batch).
132789
132844
  * @returns {MergedCellCoords|boolean} Returns the new merged cell on success and `false` on failure.
132790
132845
  */
132791
132846
  add(mergedCellInfo) {
132792
- const mergedCells = this.mergedCells;
132847
+ let auto = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
132793
132848
  const row = mergedCellInfo.row;
132794
132849
  const column = mergedCellInfo.col;
132795
132850
  const rowspan = mergedCellInfo.rowspan;
132796
132851
  const colspan = mergedCellInfo.colspan;
132797
132852
  const newMergedCell = new _cellCoords.default(row, column, rowspan, colspan, this.hot._createCellCoords, this.hot._createCellRange);
132798
132853
  const alreadyExists = this.get(row, column);
132799
- const isOverlapping = this.isOverlapping(newMergedCell);
132854
+ const isOverlapping = auto ? false : this.isOverlapping(newMergedCell);
132800
132855
  if (!alreadyExists && !isOverlapping) {
132801
132856
  if (this.hot) {
132802
132857
  newMergedCell.normalize(this.hot);
132803
132858
  }
132804
- mergedCells.push(newMergedCell);
132859
+ this.mergedCells.push(newMergedCell);
132860
+ _assertClassBrand(_MergedCellsCollection_brand, this, _addMergedCellToMatrix).call(this, newMergedCell);
132805
132861
  return newMergedCell;
132806
132862
  }
132807
132863
  (0, _console.warn)(MergedCellsCollection.IS_OVERLAPPING_WARNING(newMergedCell));
@@ -132817,12 +132873,12 @@ class MergedCellsCollection {
132817
132873
  * @returns {MergedCellCoords|boolean} Returns the removed merged cell on success and `false` on failure.
132818
132874
  */
132819
132875
  remove(row, column) {
132820
- const mergedCells = this.mergedCells;
132821
- const wantedCollection = this.get(row, column);
132822
- const wantedCollectionIndex = wantedCollection ? this.mergedCells.indexOf(wantedCollection) : -1;
132823
- if (wantedCollection && wantedCollectionIndex !== -1) {
132824
- mergedCells.splice(wantedCollectionIndex, 1);
132825
- return wantedCollection;
132876
+ const mergedCell = this.get(row, column);
132877
+ const mergedCellIndex = mergedCell ? this.mergedCells.indexOf(mergedCell) : -1;
132878
+ if (mergedCell && mergedCellIndex !== -1) {
132879
+ this.mergedCells.splice(mergedCellIndex, 1);
132880
+ _assertClassBrand(_MergedCellsCollection_brand, this, _removeMergedCellFromMatrix).call(this, mergedCell);
132881
+ return mergedCell;
132826
132882
  }
132827
132883
  return false;
132828
132884
  }
@@ -132831,16 +132887,16 @@ class MergedCellsCollection {
132831
132887
  * Clear all the merged cells.
132832
132888
  */
132833
132889
  clear() {
132834
- const mergedCells = this.mergedCells;
132835
132890
  const mergedCellParentsToClear = [];
132836
132891
  const hiddenCollectionElements = [];
132837
- (0, _array.arrayEach)(mergedCells, mergedCell => {
132892
+ (0, _array.arrayEach)(this.mergedCells, mergedCell => {
132838
132893
  const TD = this.hot.getCell(mergedCell.row, mergedCell.col);
132839
132894
  if (TD) {
132840
132895
  mergedCellParentsToClear.push([TD, this.get(mergedCell.row, mergedCell.col), mergedCell.row, mergedCell.col]);
132841
132896
  }
132842
132897
  });
132843
132898
  this.mergedCells.length = 0;
132899
+ this.mergedCellsMatrix = new Map();
132844
132900
  (0, _array.arrayEach)(mergedCellParentsToClear, (mergedCell, i) => {
132845
132901
  (0, _number.rangeEach)(0, mergedCell.rowspan - 1, j => {
132846
132902
  (0, _number.rangeEach)(0, mergedCell.colspan - 1, k => {
@@ -132863,23 +132919,21 @@ class MergedCellsCollection {
132863
132919
  }
132864
132920
 
132865
132921
  /**
132866
- * Check if the provided merged cell overlaps with the others in the container.
132922
+ * Check if the provided merged cell overlaps with the others already added.
132867
132923
  *
132868
132924
  * @param {MergedCellCoords} mergedCell The merged cell to check against all others in the container.
132869
132925
  * @returns {boolean} `true` if the provided merged cell overlaps with the others, `false` otherwise.
132870
132926
  */
132871
132927
  isOverlapping(mergedCell) {
132872
- const mergedCellRange = this.hot._createCellRange(this.hot._createCellCoords(0, 0), this.hot._createCellCoords(mergedCell.row, mergedCell.col), this.hot._createCellCoords(mergedCell.row + mergedCell.rowspan - 1, mergedCell.col + mergedCell.colspan - 1));
132873
- let result = false;
132874
- (0, _array.arrayEach)(this.mergedCells, col => {
132875
- const currentRange = this.hot._createCellRange(this.hot._createCellCoords(0, 0), this.hot._createCellCoords(col.row, col.col), this.hot._createCellCoords(col.row + col.rowspan - 1, col.col + col.colspan - 1));
132876
- if (currentRange.overlaps(mergedCellRange)) {
132877
- result = true;
132878
- return false;
132928
+ const mergedCellRange = mergedCell.getRange();
132929
+ for (let i = 0; i < this.mergedCells.length; i++) {
132930
+ const otherMergedCell = this.mergedCells[i];
132931
+ const otherMergedCellRange = otherMergedCell.getRange();
132932
+ if (otherMergedCellRange.overlaps(mergedCellRange)) {
132933
+ return true;
132879
132934
  }
132880
- return true;
132881
- });
132882
- return result;
132935
+ }
132936
+ return false;
132883
132937
  }
132884
132938
 
132885
132939
  /**
@@ -133014,15 +133068,24 @@ class MergedCellsCollection {
133014
133068
  default:
133015
133069
  }
133016
133070
  (0, _array.arrayEach)(this.mergedCells, currentMerge => {
133071
+ _assertClassBrand(_MergedCellsCollection_brand, this, _removeMergedCellFromMatrix).call(this, currentMerge);
133017
133072
  currentMerge.shift(shiftVector, index);
133073
+ _assertClassBrand(_MergedCellsCollection_brand, this, _addMergedCellToMatrix).call(this, currentMerge);
133018
133074
  });
133019
133075
  (0, _number.rangeEachReverse)(this.mergedCells.length - 1, 0, i => {
133020
133076
  const currentMerge = this.mergedCells[i];
133021
133077
  if (currentMerge && currentMerge.removed) {
133022
133078
  this.mergedCells.splice(this.mergedCells.indexOf(currentMerge), 1);
133079
+ _assertClassBrand(_MergedCellsCollection_brand, this, _removeMergedCellFromMatrix).call(this, currentMerge);
133023
133080
  }
133024
133081
  });
133025
133082
  }
133083
+
133084
+ /**
133085
+ * Adds a merged cell to the matrix.
133086
+ *
133087
+ * @param {MergedCellCoords} mergedCell The merged cell to add.
133088
+ */
133026
133089
  }
133027
133090
  function _getNonIntersectingIndexes(range, axis) {
133028
133091
  let scanDirection = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
@@ -133051,6 +133114,28 @@ function _getNonIntersectingIndexes(range, axis) {
133051
133114
  return Array.from(set);
133052
133115
  })));
133053
133116
  }
133117
+ function _addMergedCellToMatrix(mergedCell) {
133118
+ for (let row = mergedCell.row; row < mergedCell.row + mergedCell.rowspan; row++) {
133119
+ for (let col = mergedCell.col; col < mergedCell.col + mergedCell.colspan; col++) {
133120
+ if (!this.mergedCellsMatrix.has(row)) {
133121
+ this.mergedCellsMatrix.set(row, new Map());
133122
+ }
133123
+ this.mergedCellsMatrix.get(row).set(col, mergedCell);
133124
+ }
133125
+ }
133126
+ }
133127
+ /**
133128
+ * Removes a merged cell from the matrix.
133129
+ *
133130
+ * @param {MergedCellCoords} mergedCell The merged cell to remove.
133131
+ */
133132
+ function _removeMergedCellFromMatrix(mergedCell) {
133133
+ for (let row = mergedCell.row; row < mergedCell.row + mergedCell.rowspan; row++) {
133134
+ for (let col = mergedCell.col; col < mergedCell.col + mergedCell.colspan; col++) {
133135
+ this.mergedCellsMatrix.get(row).delete(col);
133136
+ }
133137
+ }
133138
+ }
133054
133139
  var _default = exports["default"] = MergedCellsCollection;
133055
133140
 
133056
133141
  /***/ }),
@@ -133062,14 +133147,21 @@ var _default = exports["default"] = MergedCellsCollection;
133062
133147
 
133063
133148
  var _interopRequireDefault = __webpack_require__(197);
133064
133149
  exports.__esModule = true;
133150
+ __webpack_require__(204);
133065
133151
  var _defineProperty2 = _interopRequireDefault(__webpack_require__(487));
133066
133152
  var _templateLiteralTag = __webpack_require__(477);
133153
+ function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
133154
+ function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
133155
+ function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
133156
+ function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
133157
+ 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"); }
133067
133158
  /**
133068
133159
  * The `MergedCellCoords` class represents a single merged cell.
133069
133160
  *
133070
133161
  * @private
133071
133162
  * @class MergedCellCoords
133072
133163
  */
133164
+ var _cellRange = /*#__PURE__*/new WeakMap();
133073
133165
  class MergedCellCoords {
133074
133166
  constructor(row, column, rowspan, colspan, cellCoordsFactory, cellRangeFactory) {
133075
133167
  /**
@@ -133114,6 +133206,12 @@ class MergedCellCoords {
133114
133206
  * @type {Function}
133115
133207
  */
133116
133208
  (0, _defineProperty2.default)(this, "cellRangeFactory", void 0);
133209
+ /**
133210
+ * The cached range coordinates of the merged cell.
133211
+ *
133212
+ * @type {CellRange}
133213
+ */
133214
+ _classPrivateFieldInitSpec(this, _cellRange, null);
133117
133215
  this.row = row;
133118
133216
  this.col = column;
133119
133217
  this.rowspan = rowspan;
@@ -133235,6 +133333,7 @@ class MergedCellCoords {
133235
133333
  if (this.col + this.colspan > totalColumns - 1) {
133236
133334
  this.colspan = totalColumns - this.col;
133237
133335
  }
133336
+ _classPrivateFieldSet(_cellRange, this, null);
133238
133337
  }
133239
133338
 
133240
133339
  /**
@@ -133299,6 +133398,7 @@ class MergedCellCoords {
133299
133398
  // removing the whole merge
133300
133399
  if (changeStart <= mergeStart && changeEnd >= mergeEnd) {
133301
133400
  this.removed = true;
133401
+ _classPrivateFieldSet(_cellRange, this, null);
133302
133402
  return false;
133303
133403
 
133304
133404
  // removing the merge partially, including the beginning
@@ -133318,6 +133418,7 @@ class MergedCellCoords {
133318
133418
  this[span] -= removedPart;
133319
133419
  }
133320
133420
  }
133421
+ _classPrivateFieldSet(_cellRange, this, null);
133321
133422
  return true;
133322
133423
  }
133323
133424
 
@@ -133368,7 +133469,10 @@ class MergedCellCoords {
133368
133469
  * @returns {CellRange}
133369
133470
  */
133370
133471
  getRange() {
133371
- return this.cellRangeFactory(this.cellCoordsFactory(this.row, this.col), this.cellCoordsFactory(this.row, this.col), this.cellCoordsFactory(this.getLastRow(), this.getLastColumn()));
133472
+ if (!_classPrivateFieldGet(_cellRange, this)) {
133473
+ _classPrivateFieldSet(_cellRange, this, this.cellRangeFactory(this.cellCoordsFactory(this.row, this.col), this.cellCoordsFactory(this.row, this.col), this.cellCoordsFactory(this.getLastRow(), this.getLastColumn())));
133474
+ }
133475
+ return _classPrivateFieldGet(_cellRange, this);
133372
133476
  }
133373
133477
  }
133374
133478
  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-827c165-20240604
29
- * Release date: 16/04/2024 (built at 04/06/2024 07:45:14)
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}
31
31
  /*!
32
32
  * Pikaday