handsontable 12.3.1 → 12.3.2-next-bcef33c-20230315

Sign up to get free protection for your applications and to get access to all the features.
Files changed (72) hide show
  1. package/3rdparty/walkontable/src/calculator/viewportColumns.js +31 -9
  2. package/3rdparty/walkontable/src/calculator/viewportColumns.mjs +31 -9
  3. package/3rdparty/walkontable/src/calculator/viewportRows.js +21 -6
  4. package/3rdparty/walkontable/src/calculator/viewportRows.mjs +21 -6
  5. package/3rdparty/walkontable/src/core/_base.js +19 -20
  6. package/3rdparty/walkontable/src/core/_base.mjs +19 -20
  7. package/3rdparty/walkontable/src/scroll.js +14 -3
  8. package/3rdparty/walkontable/src/scroll.mjs +14 -3
  9. package/3rdparty/walkontable/src/table.js +4 -2
  10. package/3rdparty/walkontable/src/table.mjs +4 -2
  11. package/3rdparty/walkontable/src/types.js +1 -0
  12. package/3rdparty/walkontable/src/types.mjs +1 -0
  13. package/3rdparty/walkontable/src/viewport.js +11 -14
  14. package/3rdparty/walkontable/src/viewport.mjs +11 -14
  15. package/CHANGELOG.md +7 -0
  16. package/base.js +2 -2
  17. package/base.mjs +2 -2
  18. package/core.js +32 -21
  19. package/core.mjs +32 -21
  20. package/dataMap/metaManager/metaSchema.js +9 -9
  21. package/dataMap/metaManager/metaSchema.mjs +9 -9
  22. package/dist/handsontable.css +2 -2
  23. package/dist/handsontable.full.css +2 -2
  24. package/dist/handsontable.full.js +4631 -3987
  25. package/dist/handsontable.full.min.css +8 -8
  26. package/dist/handsontable.full.min.js +241 -227
  27. package/dist/handsontable.js +2753 -2435
  28. package/dist/handsontable.min.css +7 -7
  29. package/dist/handsontable.min.js +3 -3
  30. package/dist/languages/all.js +1 -1
  31. package/dist/languages/all.min.js +1 -1
  32. package/dist/languages/zh-CN.js +1 -1
  33. package/dist/languages/zh-CN.min.js +1 -1
  34. package/editors/autocompleteEditor/autocompleteEditor.js +8 -9
  35. package/editors/autocompleteEditor/autocompleteEditor.mjs +8 -9
  36. package/helpers/mixed.js +2 -2
  37. package/helpers/mixed.mjs +2 -2
  38. package/i18n/languages/zh-CN.js +1 -1
  39. package/i18n/languages/zh-CN.mjs +3 -3
  40. package/languages/all.js +1 -1
  41. package/languages/index.js +1 -1
  42. package/languages/zh-CN.js +1 -1
  43. package/languages/zh-CN.mjs +3 -3
  44. package/package.json +12 -13
  45. package/plugins/base/base.js +9 -10
  46. package/plugins/base/base.mjs +9 -10
  47. package/plugins/collapsibleColumns/collapsibleColumns.js +24 -7
  48. package/plugins/collapsibleColumns/collapsibleColumns.mjs +24 -7
  49. package/plugins/copyPaste/copyPaste.js +92 -16
  50. package/plugins/copyPaste/copyPaste.mjs +92 -16
  51. package/plugins/copyPaste/copyableRanges.js +14 -8
  52. package/plugins/copyPaste/copyableRanges.mjs +14 -8
  53. package/plugins/customBorders/customBorders.js +6 -7
  54. package/plugins/customBorders/customBorders.mjs +6 -7
  55. package/plugins/filters/filters.js +0 -8
  56. package/plugins/filters/filters.mjs +0 -8
  57. package/plugins/formulas/formulas.js +34 -7
  58. package/plugins/formulas/formulas.mjs +34 -7
  59. package/plugins/hiddenColumns/hiddenColumns.js +12 -7
  60. package/plugins/hiddenColumns/hiddenColumns.mjs +12 -7
  61. package/plugins/hiddenRows/hiddenRows.js +12 -7
  62. package/plugins/hiddenRows/hiddenRows.mjs +12 -7
  63. package/plugins/nestedHeaders/nestedHeaders.js +26 -7
  64. package/plugins/nestedHeaders/nestedHeaders.mjs +26 -7
  65. package/plugins/nestedHeaders/stateManager/index.js +18 -0
  66. package/plugins/nestedHeaders/stateManager/index.mjs +18 -0
  67. package/plugins/nestedHeaders/stateManager/sourceSettings.js +19 -0
  68. package/plugins/nestedHeaders/stateManager/sourceSettings.mjs +19 -0
  69. package/translations/changesObservable/observer.js +7 -0
  70. package/translations/changesObservable/observer.mjs +7 -0
  71. package/translations/maps/linkedPhysicalIndexToValueMap.js +6 -0
  72. package/translations/maps/linkedPhysicalIndexToValueMap.mjs +6 -0
@@ -303,13 +303,10 @@ var Viewport = /*#__PURE__*/function () {
303
303
  height = this.getViewportHeight();
304
304
  }
305
305
  var pos = this.dataAccessObject.topScrollPosition - this.dataAccessObject.topParentOffset;
306
- if (pos < 0) {
307
- pos = 0;
308
- }
309
306
  var fixedRowsTop = wtSettings.getSetting('fixedRowsTop');
310
307
  var fixedRowsBottom = wtSettings.getSetting('fixedRowsBottom');
311
308
  var totalRows = wtSettings.getSetting('totalRows');
312
- if (fixedRowsTop) {
309
+ if (fixedRowsTop && pos >= 0) {
313
310
  fixedRowsHeight = this.dataAccessObject.topOverlay.sumCellSizes(0, fixedRowsTop);
314
311
  pos += fixedRowsHeight;
315
312
  height -= fixedRowsHeight;
@@ -354,11 +351,8 @@ var Viewport = /*#__PURE__*/function () {
354
351
  var width = this.getViewportWidth();
355
352
  var pos = Math.abs(this.dataAccessObject.inlineStartScrollPosition) - this.dataAccessObject.inlineStartParentOffset;
356
353
  this.columnHeaderHeight = NaN;
357
- if (pos < 0) {
358
- pos = 0;
359
- }
360
354
  var fixedColumnsStart = wtSettings.getSetting('fixedColumnsStart');
361
- if (fixedColumnsStart) {
355
+ if (fixedColumnsStart && pos >= 0) {
362
356
  var fixedColumnsWidth = this.dataAccessObject.inlineStartOverlay.sumCellSizes(0, fixedColumnsStart);
363
357
  pos += fixedColumnsWidth;
364
358
  width -= fixedColumnsWidth;
@@ -368,7 +362,7 @@ var Viewport = /*#__PURE__*/function () {
368
362
  }
369
363
  return new _calculator.ViewportColumnsCalculator({
370
364
  viewportSize: width,
371
- scrollOffset: Math.abs(pos),
365
+ scrollOffset: pos,
372
366
  totalItems: wtSettings.getSetting('totalColumns'),
373
367
  itemSizeFn: function itemSizeFn(sourceCol) {
374
368
  return wtTable.getColumnWidth(sourceCol);
@@ -378,7 +372,8 @@ var Viewport = /*#__PURE__*/function () {
378
372
  stretchMode: wtSettings.getSetting('stretchH'),
379
373
  stretchingItemWidthFn: function stretchingItemWidthFn(stretchedWidth, column) {
380
374
  return wtSettings.getSetting('onBeforeStretchingColumnWidth', stretchedWidth, column);
381
- }
375
+ },
376
+ inlineStartOffset: this.dataAccessObject.inlineStartParentOffset
382
377
  });
383
378
  }
384
379
 
@@ -438,11 +433,12 @@ var Viewport = /*#__PURE__*/function () {
438
433
  return false;
439
434
  }
440
435
  var startRow = proposedRowsVisibleCalculator.startRow,
441
- endRow = proposedRowsVisibleCalculator.endRow;
436
+ endRow = proposedRowsVisibleCalculator.endRow,
437
+ isVisibleInTrimmingContainer = proposedRowsVisibleCalculator.isVisibleInTrimmingContainer;
442
438
 
443
439
  // if there are no fully visible rows at all, return false
444
440
  if (startRow === null && endRow === null) {
445
- return false;
441
+ return !isVisibleInTrimmingContainer;
446
442
  }
447
443
  var _this$rowsRenderCalcu = this.rowsRenderCalculator,
448
444
  renderedStartRow = _this$rowsRenderCalcu.startRow,
@@ -470,11 +466,12 @@ var Viewport = /*#__PURE__*/function () {
470
466
  return false;
471
467
  }
472
468
  var startColumn = proposedColumnsVisibleCalculator.startColumn,
473
- endColumn = proposedColumnsVisibleCalculator.endColumn;
469
+ endColumn = proposedColumnsVisibleCalculator.endColumn,
470
+ isVisibleInTrimmingContainer = proposedColumnsVisibleCalculator.isVisibleInTrimmingContainer;
474
471
 
475
472
  // if there are no fully visible columns at all, return false
476
473
  if (startColumn === null && endColumn === null) {
477
- return false;
474
+ return !isVisibleInTrimmingContainer;
478
475
  }
479
476
  var _this$columnsRenderCa = this.columnsRenderCalculator,
480
477
  renderedStartColumn = _this$columnsRenderCa.startColumn,
@@ -299,13 +299,10 @@ var Viewport = /*#__PURE__*/function () {
299
299
  height = this.getViewportHeight();
300
300
  }
301
301
  var pos = this.dataAccessObject.topScrollPosition - this.dataAccessObject.topParentOffset;
302
- if (pos < 0) {
303
- pos = 0;
304
- }
305
302
  var fixedRowsTop = wtSettings.getSetting('fixedRowsTop');
306
303
  var fixedRowsBottom = wtSettings.getSetting('fixedRowsBottom');
307
304
  var totalRows = wtSettings.getSetting('totalRows');
308
- if (fixedRowsTop) {
305
+ if (fixedRowsTop && pos >= 0) {
309
306
  fixedRowsHeight = this.dataAccessObject.topOverlay.sumCellSizes(0, fixedRowsTop);
310
307
  pos += fixedRowsHeight;
311
308
  height -= fixedRowsHeight;
@@ -350,11 +347,8 @@ var Viewport = /*#__PURE__*/function () {
350
347
  var width = this.getViewportWidth();
351
348
  var pos = Math.abs(this.dataAccessObject.inlineStartScrollPosition) - this.dataAccessObject.inlineStartParentOffset;
352
349
  this.columnHeaderHeight = NaN;
353
- if (pos < 0) {
354
- pos = 0;
355
- }
356
350
  var fixedColumnsStart = wtSettings.getSetting('fixedColumnsStart');
357
- if (fixedColumnsStart) {
351
+ if (fixedColumnsStart && pos >= 0) {
358
352
  var fixedColumnsWidth = this.dataAccessObject.inlineStartOverlay.sumCellSizes(0, fixedColumnsStart);
359
353
  pos += fixedColumnsWidth;
360
354
  width -= fixedColumnsWidth;
@@ -364,7 +358,7 @@ var Viewport = /*#__PURE__*/function () {
364
358
  }
365
359
  return new ViewportColumnsCalculator({
366
360
  viewportSize: width,
367
- scrollOffset: Math.abs(pos),
361
+ scrollOffset: pos,
368
362
  totalItems: wtSettings.getSetting('totalColumns'),
369
363
  itemSizeFn: function itemSizeFn(sourceCol) {
370
364
  return wtTable.getColumnWidth(sourceCol);
@@ -374,7 +368,8 @@ var Viewport = /*#__PURE__*/function () {
374
368
  stretchMode: wtSettings.getSetting('stretchH'),
375
369
  stretchingItemWidthFn: function stretchingItemWidthFn(stretchedWidth, column) {
376
370
  return wtSettings.getSetting('onBeforeStretchingColumnWidth', stretchedWidth, column);
377
- }
371
+ },
372
+ inlineStartOffset: this.dataAccessObject.inlineStartParentOffset
378
373
  });
379
374
  }
380
375
 
@@ -434,11 +429,12 @@ var Viewport = /*#__PURE__*/function () {
434
429
  return false;
435
430
  }
436
431
  var startRow = proposedRowsVisibleCalculator.startRow,
437
- endRow = proposedRowsVisibleCalculator.endRow;
432
+ endRow = proposedRowsVisibleCalculator.endRow,
433
+ isVisibleInTrimmingContainer = proposedRowsVisibleCalculator.isVisibleInTrimmingContainer;
438
434
 
439
435
  // if there are no fully visible rows at all, return false
440
436
  if (startRow === null && endRow === null) {
441
- return false;
437
+ return !isVisibleInTrimmingContainer;
442
438
  }
443
439
  var _this$rowsRenderCalcu = this.rowsRenderCalculator,
444
440
  renderedStartRow = _this$rowsRenderCalcu.startRow,
@@ -466,11 +462,12 @@ var Viewport = /*#__PURE__*/function () {
466
462
  return false;
467
463
  }
468
464
  var startColumn = proposedColumnsVisibleCalculator.startColumn,
469
- endColumn = proposedColumnsVisibleCalculator.endColumn;
465
+ endColumn = proposedColumnsVisibleCalculator.endColumn,
466
+ isVisibleInTrimmingContainer = proposedColumnsVisibleCalculator.isVisibleInTrimmingContainer;
470
467
 
471
468
  // if there are no fully visible columns at all, return false
472
469
  if (startColumn === null && endColumn === null) {
473
- return false;
470
+ return !isVisibleInTrimmingContainer;
474
471
  }
475
472
  var _this$columnsRenderCa = this.columnsRenderCalculator,
476
473
  renderedStartColumn = _this$columnsRenderCa.startColumn,
package/CHANGELOG.md CHANGED
@@ -9,6 +9,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
9
9
 
10
10
  <!-- UNVERSIONED -->
11
11
 
12
+ ## [12.3.2] - 2023-03-22
13
+
14
+ ### Fixed
15
+ - Fixed a problem with the checkboxes from the filtering dropdown resetting their state after scrolling the table out of the viewport by preventing the table from triggering a 'full' render every time it was outside the viewport + Fixed an issue where clicking on a cell in some specific configurations of the RTL mode would scroll the table sideways. [#10206](https://github.com/handsontable/handsontable/pull/10206)
16
+ - Using `getDataAtCol` and `getDataAtProp` for dataset with large number of rows won't break the table [#9772](https://github.com/handsontable/handsontable/issues/9772)
17
+ - React: Removed deprecated React method from the wrapper. [#10263](https://github.com/handsontable/handsontable/pull/10263)
18
+
12
19
  ## [12.3.1] - 2023-02-06
13
20
 
14
21
  ### Added
package/base.js CHANGED
@@ -46,8 +46,8 @@ Handsontable.hooks = _pluginHooks.default.getSingleton();
46
46
  Handsontable.CellCoords = _src.CellCoords;
47
47
  Handsontable.CellRange = _src.CellRange;
48
48
  Handsontable.packageName = 'handsontable';
49
- Handsontable.buildDate = "06/02/2023 12:34:53";
50
- Handsontable.version = "12.3.1";
49
+ Handsontable.buildDate = "15/03/2023 11:33:58";
50
+ Handsontable.version = "12.3.2-next-bcef33c-20230315";
51
51
  Handsontable.languages = {
52
52
  dictionaryKeys: _registry.dictionaryKeys,
53
53
  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 = "06/02/2023 12:34:58";
39
- Handsontable.version = "12.3.1";
38
+ Handsontable.buildDate = "15/03/2023 11:34:14";
39
+ Handsontable.version = "12.3.2-next-bcef33c-20230315";
40
40
  Handsontable.languages = {
41
41
  dictionaryKeys: dictionaryKeys,
42
42
  getLanguageDictionary: getLanguageDictionary,
package/core.js CHANGED
@@ -2750,8 +2750,14 @@ function Core(rootElement, userSettings) {
2750
2750
  * @returns {Array} Array of cell values.
2751
2751
  */
2752
2752
  this.getDataAtCol = function (column) {
2753
- var _ref13;
2754
- return (_ref13 = []).concat.apply(_ref13, _toConsumableArray(datamap.getRange(instance._createCellCoords(0, column), instance._createCellCoords(tableMeta.data.length - 1, column), datamap.DESTINATION_RENDERER)));
2753
+ var columnData = [];
2754
+ var dataByRows = datamap.getRange(instance._createCellCoords(0, column), instance._createCellCoords(tableMeta.data.length - 1, column), datamap.DESTINATION_RENDERER);
2755
+ for (var i = 0; i < dataByRows.length; i += 1) {
2756
+ for (var j = 0; j < dataByRows[i].length; j += 1) {
2757
+ columnData.push(dataByRows[i][j]);
2758
+ }
2759
+ }
2760
+ return columnData;
2755
2761
  };
2756
2762
 
2757
2763
  /**
@@ -2765,9 +2771,14 @@ function Core(rootElement, userSettings) {
2765
2771
  */
2766
2772
  // TODO: Getting data from `datamap` should work on visual indexes.
2767
2773
  this.getDataAtProp = function (prop) {
2768
- var _ref14;
2769
- var range = datamap.getRange(instance._createCellCoords(0, datamap.propToCol(prop)), instance._createCellCoords(tableMeta.data.length - 1, datamap.propToCol(prop)), datamap.DESTINATION_RENDERER);
2770
- return (_ref14 = []).concat.apply(_ref14, _toConsumableArray(range));
2774
+ var columnData = [];
2775
+ var dataByRows = datamap.getRange(instance._createCellCoords(0, datamap.propToCol(prop)), instance._createCellCoords(tableMeta.data.length - 1, datamap.propToCol(prop)), datamap.DESTINATION_RENDERER);
2776
+ for (var i = 0; i < dataByRows.length; i += 1) {
2777
+ for (var j = 0; j < dataByRows[i].length; j += 1) {
2778
+ columnData.push(dataByRows[i][j]);
2779
+ }
2780
+ }
2781
+ return columnData;
2771
2782
  };
2772
2783
 
2773
2784
  /**
@@ -2852,21 +2863,21 @@ function Core(rootElement, userSettings) {
2852
2863
  var isThereAnySetSourceListener = this.hasHook('afterSetSourceDataAtCell');
2853
2864
  var changesForHook = [];
2854
2865
  if (isThereAnySetSourceListener) {
2855
- (0, _array.arrayEach)(input, function (_ref15) {
2856
- var _ref16 = _slicedToArray(_ref15, 3),
2857
- changeRow = _ref16[0],
2858
- changeProp = _ref16[1],
2859
- changeValue = _ref16[2];
2866
+ (0, _array.arrayEach)(input, function (_ref13) {
2867
+ var _ref14 = _slicedToArray(_ref13, 3),
2868
+ changeRow = _ref14[0],
2869
+ changeProp = _ref14[1],
2870
+ changeValue = _ref14[2];
2860
2871
  changesForHook.push([changeRow, changeProp, dataSource.getAtCell(changeRow, changeProp),
2861
2872
  // The previous value.
2862
2873
  changeValue]);
2863
2874
  });
2864
2875
  }
2865
- (0, _array.arrayEach)(input, function (_ref17) {
2866
- var _ref18 = _slicedToArray(_ref17, 3),
2867
- changeRow = _ref18[0],
2868
- changeProp = _ref18[1],
2869
- changeValue = _ref18[2];
2876
+ (0, _array.arrayEach)(input, function (_ref15) {
2877
+ var _ref16 = _slicedToArray(_ref15, 3),
2878
+ changeRow = _ref16[0],
2879
+ changeProp = _ref16[1],
2880
+ changeValue = _ref16[2];
2870
2881
  dataSource.setAtCell(changeRow, changeProp, changeValue);
2871
2882
  });
2872
2883
  if (isThereAnySetSourceListener) {
@@ -2985,9 +2996,9 @@ function Core(rootElement, userSettings) {
2985
2996
  * @fires Hooks#afterRemoveCellMeta
2986
2997
  */
2987
2998
  this.removeCellMeta = function (row, column, key) {
2988
- var _ref19 = [this.toPhysicalRow(row), this.toPhysicalColumn(column)],
2989
- physicalRow = _ref19[0],
2990
- physicalColumn = _ref19[1];
2999
+ var _ref17 = [this.toPhysicalRow(row), this.toPhysicalColumn(column)],
3000
+ physicalRow = _ref17[0],
3001
+ physicalColumn = _ref17[1];
2991
3002
  var cachedValue = metaManager.getCellMetaKeyValue(physicalRow, physicalColumn, key);
2992
3003
  var hookResult = instance.runHooks('beforeRemoveCellMeta', row, column, key, cachedValue);
2993
3004
  if (hookResult !== false) {
@@ -4067,9 +4078,9 @@ function Core(rootElement, userSettings) {
4067
4078
  instance.batchExecution(function () {
4068
4079
  instance.rowIndexMapper.unregisterAll();
4069
4080
  instance.columnIndexMapper.unregisterAll();
4070
- pluginsRegistry.getItems().forEach(function (_ref20) {
4071
- var _ref21 = _slicedToArray(_ref20, 2),
4072
- plugin = _ref21[1];
4081
+ pluginsRegistry.getItems().forEach(function (_ref18) {
4082
+ var _ref19 = _slicedToArray(_ref18, 2),
4083
+ plugin = _ref19[1];
4073
4084
  plugin.destroy();
4074
4085
  });
4075
4086
  pluginsRegistry.clear();
package/core.mjs CHANGED
@@ -2745,8 +2745,14 @@ export default function Core(rootElement, userSettings) {
2745
2745
  * @returns {Array} Array of cell values.
2746
2746
  */
2747
2747
  this.getDataAtCol = function (column) {
2748
- var _ref13;
2749
- return (_ref13 = []).concat.apply(_ref13, _toConsumableArray(datamap.getRange(instance._createCellCoords(0, column), instance._createCellCoords(tableMeta.data.length - 1, column), datamap.DESTINATION_RENDERER)));
2748
+ var columnData = [];
2749
+ var dataByRows = datamap.getRange(instance._createCellCoords(0, column), instance._createCellCoords(tableMeta.data.length - 1, column), datamap.DESTINATION_RENDERER);
2750
+ for (var i = 0; i < dataByRows.length; i += 1) {
2751
+ for (var j = 0; j < dataByRows[i].length; j += 1) {
2752
+ columnData.push(dataByRows[i][j]);
2753
+ }
2754
+ }
2755
+ return columnData;
2750
2756
  };
2751
2757
 
2752
2758
  /**
@@ -2760,9 +2766,14 @@ export default function Core(rootElement, userSettings) {
2760
2766
  */
2761
2767
  // TODO: Getting data from `datamap` should work on visual indexes.
2762
2768
  this.getDataAtProp = function (prop) {
2763
- var _ref14;
2764
- var range = datamap.getRange(instance._createCellCoords(0, datamap.propToCol(prop)), instance._createCellCoords(tableMeta.data.length - 1, datamap.propToCol(prop)), datamap.DESTINATION_RENDERER);
2765
- return (_ref14 = []).concat.apply(_ref14, _toConsumableArray(range));
2769
+ var columnData = [];
2770
+ var dataByRows = datamap.getRange(instance._createCellCoords(0, datamap.propToCol(prop)), instance._createCellCoords(tableMeta.data.length - 1, datamap.propToCol(prop)), datamap.DESTINATION_RENDERER);
2771
+ for (var i = 0; i < dataByRows.length; i += 1) {
2772
+ for (var j = 0; j < dataByRows[i].length; j += 1) {
2773
+ columnData.push(dataByRows[i][j]);
2774
+ }
2775
+ }
2776
+ return columnData;
2766
2777
  };
2767
2778
 
2768
2779
  /**
@@ -2847,21 +2858,21 @@ export default function Core(rootElement, userSettings) {
2847
2858
  var isThereAnySetSourceListener = this.hasHook('afterSetSourceDataAtCell');
2848
2859
  var changesForHook = [];
2849
2860
  if (isThereAnySetSourceListener) {
2850
- arrayEach(input, function (_ref15) {
2851
- var _ref16 = _slicedToArray(_ref15, 3),
2852
- changeRow = _ref16[0],
2853
- changeProp = _ref16[1],
2854
- changeValue = _ref16[2];
2861
+ arrayEach(input, function (_ref13) {
2862
+ var _ref14 = _slicedToArray(_ref13, 3),
2863
+ changeRow = _ref14[0],
2864
+ changeProp = _ref14[1],
2865
+ changeValue = _ref14[2];
2855
2866
  changesForHook.push([changeRow, changeProp, dataSource.getAtCell(changeRow, changeProp),
2856
2867
  // The previous value.
2857
2868
  changeValue]);
2858
2869
  });
2859
2870
  }
2860
- arrayEach(input, function (_ref17) {
2861
- var _ref18 = _slicedToArray(_ref17, 3),
2862
- changeRow = _ref18[0],
2863
- changeProp = _ref18[1],
2864
- changeValue = _ref18[2];
2871
+ arrayEach(input, function (_ref15) {
2872
+ var _ref16 = _slicedToArray(_ref15, 3),
2873
+ changeRow = _ref16[0],
2874
+ changeProp = _ref16[1],
2875
+ changeValue = _ref16[2];
2865
2876
  dataSource.setAtCell(changeRow, changeProp, changeValue);
2866
2877
  });
2867
2878
  if (isThereAnySetSourceListener) {
@@ -2980,9 +2991,9 @@ export default function Core(rootElement, userSettings) {
2980
2991
  * @fires Hooks#afterRemoveCellMeta
2981
2992
  */
2982
2993
  this.removeCellMeta = function (row, column, key) {
2983
- var _ref19 = [this.toPhysicalRow(row), this.toPhysicalColumn(column)],
2984
- physicalRow = _ref19[0],
2985
- physicalColumn = _ref19[1];
2994
+ var _ref17 = [this.toPhysicalRow(row), this.toPhysicalColumn(column)],
2995
+ physicalRow = _ref17[0],
2996
+ physicalColumn = _ref17[1];
2986
2997
  var cachedValue = metaManager.getCellMetaKeyValue(physicalRow, physicalColumn, key);
2987
2998
  var hookResult = instance.runHooks('beforeRemoveCellMeta', row, column, key, cachedValue);
2988
2999
  if (hookResult !== false) {
@@ -4062,9 +4073,9 @@ export default function Core(rootElement, userSettings) {
4062
4073
  instance.batchExecution(function () {
4063
4074
  instance.rowIndexMapper.unregisterAll();
4064
4075
  instance.columnIndexMapper.unregisterAll();
4065
- pluginsRegistry.getItems().forEach(function (_ref20) {
4066
- var _ref21 = _slicedToArray(_ref20, 2),
4067
- plugin = _ref21[1];
4076
+ pluginsRegistry.getItems().forEach(function (_ref18) {
4077
+ var _ref19 = _slicedToArray(_ref18, 2),
4078
+ plugin = _ref19[1];
4068
4079
  plugin.destroy();
4069
4080
  });
4070
4081
  pluginsRegistry.clear();
@@ -826,10 +826,10 @@ var _default = function _default() {
826
826
  *
827
827
  * | Option | Possible settings |
828
828
  * | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ |
829
- * | `indicator` | `true`: Display an arrow icon in the column header, to indicate a sortable column<br>`false`: Don't display the arrow icon in the column header |
829
+ * | `indicator` | `true`: Display the arrow icon in the column header, to indicate a sortable column<br>`false`: Don't display the arrow icon in the column header |
830
830
  * | `headerAction` | `true`: Enable clicking on the column header to sort the column<br>`false`: Disable clicking on the column header to sort the column |
831
831
  * | `sortEmptyCells` | `true`: Sort empty cells as well<br>`false`: Place empty cells at the end |
832
- * | `compareFunctionFactory` | A [custom compare function](@/guides/rows/row-sorting.md#custom-compare-functions) |
832
+ * | `compareFunctionFactory` | A [custom compare function](@/guides/rows/rows-sorting.md#add-a-custom-comparator) |
833
833
  *
834
834
  * If you set the `columnSorting` option to an object,
835
835
  * you can also sort individual columns at Handsontable's initialization.
@@ -842,8 +842,8 @@ var _default = function _default() {
842
842
  * | `sortOrder` | `'asc'` \| `'desc'` | The sorting order:<br>`'asc'`: ascending<br>`'desc'`: descending |
843
843
  *
844
844
  * Read more:
845
- * - [Row sorting](@/guides/rows/row-sorting.md)
846
- * - [Row sorting: Custom compare functions](@/guides/rows/row-sorting.md#custom-compare-functions)
845
+ * - [Rows sorting](@/guides/rows/rows-sorting.md)
846
+ * - [Rows sorting: Custom compare functions](@/guides/rows/rows-sorting.md#add-a-custom-comparator)
847
847
  * - [`multiColumnSorting`](#multiColumnSorting)
848
848
  *
849
849
  * @memberof Options#
@@ -860,7 +860,7 @@ var _default = function _default() {
860
860
  * columnSorting: {
861
861
  * // sort empty cells as well
862
862
  * sortEmptyCells: true,
863
- * // display an arrow icon in the column header
863
+ * // display the arrow icon in the column header
864
864
  * indicator: true,
865
865
  * // disable clicking on the column header to sort the column
866
866
  * headerAction: false,
@@ -3049,10 +3049,10 @@ var _default = function _default() {
3049
3049
  *
3050
3050
  * | Option | Possible settings |
3051
3051
  * | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ |
3052
- * | `indicator` | `true`: Display an arrow icon in the column header, to indicate a sortable column<br>`false`: Don't display the arrow icon in the column header |
3052
+ * | `indicator` | `true`: Display the arrow icon in the column header, to indicate a sortable column<br>`false`: Don't display the arrow icon in the column header |
3053
3053
  * | `headerAction` | `true`: Enable clicking on the column header to sort the column<br>`false`: Disable clicking on the column header to sort the column |
3054
3054
  * | `sortEmptyCells` | `true`: Sort empty cells as well<br>`false`: Place empty cells at the end |
3055
- * | `compareFunctionFactory` | A [custom compare function](@/guides/rows/row-sorting.md#custom-compare-functions) |
3055
+ * | `compareFunctionFactory` | A [custom compare function](@/guides/rows/rows-sorting.md#add-a-custom-comparator) |
3056
3056
  *
3057
3057
  * If you set the `multiColumnSorting` option to an object,
3058
3058
  * you can also sort individual columns at Handsontable's initialization.
@@ -3065,7 +3065,7 @@ var _default = function _default() {
3065
3065
  * | `sortOrder` | `'asc'` \| `'desc'` | The sorting order:<br>`'asc'`: ascending<br>`'desc'`: descending |
3066
3066
  *
3067
3067
  * Read more:
3068
- * - [Row sorting](@/guides/rows/row-sorting.md)
3068
+ * - [Rows sorting](@/guides/rows/rows-sorting.md)
3069
3069
  * - [`columnSorting`](#columnSorting)
3070
3070
  *
3071
3071
  * @memberof Options#
@@ -3082,7 +3082,7 @@ var _default = function _default() {
3082
3082
  * multiColumnSorting: {
3083
3083
  * // sort empty cells as well
3084
3084
  * sortEmptyCells: true,
3085
- * // display an arrow icon in the column header
3085
+ * // display the arrow icon in the column header
3086
3086
  * indicator: true,
3087
3087
  * // disable clicking on the column header to sort the column
3088
3088
  * headerAction: false,
@@ -822,10 +822,10 @@ export default (function () {
822
822
  *
823
823
  * | Option | Possible settings |
824
824
  * | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ |
825
- * | `indicator` | `true`: Display an arrow icon in the column header, to indicate a sortable column<br>`false`: Don't display the arrow icon in the column header |
825
+ * | `indicator` | `true`: Display the arrow icon in the column header, to indicate a sortable column<br>`false`: Don't display the arrow icon in the column header |
826
826
  * | `headerAction` | `true`: Enable clicking on the column header to sort the column<br>`false`: Disable clicking on the column header to sort the column |
827
827
  * | `sortEmptyCells` | `true`: Sort empty cells as well<br>`false`: Place empty cells at the end |
828
- * | `compareFunctionFactory` | A [custom compare function](@/guides/rows/row-sorting.md#custom-compare-functions) |
828
+ * | `compareFunctionFactory` | A [custom compare function](@/guides/rows/rows-sorting.md#add-a-custom-comparator) |
829
829
  *
830
830
  * If you set the `columnSorting` option to an object,
831
831
  * you can also sort individual columns at Handsontable's initialization.
@@ -838,8 +838,8 @@ export default (function () {
838
838
  * | `sortOrder` | `'asc'` \| `'desc'` | The sorting order:<br>`'asc'`: ascending<br>`'desc'`: descending |
839
839
  *
840
840
  * Read more:
841
- * - [Row sorting](@/guides/rows/row-sorting.md)
842
- * - [Row sorting: Custom compare functions](@/guides/rows/row-sorting.md#custom-compare-functions)
841
+ * - [Rows sorting](@/guides/rows/rows-sorting.md)
842
+ * - [Rows sorting: Custom compare functions](@/guides/rows/rows-sorting.md#add-a-custom-comparator)
843
843
  * - [`multiColumnSorting`](#multiColumnSorting)
844
844
  *
845
845
  * @memberof Options#
@@ -856,7 +856,7 @@ export default (function () {
856
856
  * columnSorting: {
857
857
  * // sort empty cells as well
858
858
  * sortEmptyCells: true,
859
- * // display an arrow icon in the column header
859
+ * // display the arrow icon in the column header
860
860
  * indicator: true,
861
861
  * // disable clicking on the column header to sort the column
862
862
  * headerAction: false,
@@ -3045,10 +3045,10 @@ export default (function () {
3045
3045
  *
3046
3046
  * | Option | Possible settings |
3047
3047
  * | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ |
3048
- * | `indicator` | `true`: Display an arrow icon in the column header, to indicate a sortable column<br>`false`: Don't display the arrow icon in the column header |
3048
+ * | `indicator` | `true`: Display the arrow icon in the column header, to indicate a sortable column<br>`false`: Don't display the arrow icon in the column header |
3049
3049
  * | `headerAction` | `true`: Enable clicking on the column header to sort the column<br>`false`: Disable clicking on the column header to sort the column |
3050
3050
  * | `sortEmptyCells` | `true`: Sort empty cells as well<br>`false`: Place empty cells at the end |
3051
- * | `compareFunctionFactory` | A [custom compare function](@/guides/rows/row-sorting.md#custom-compare-functions) |
3051
+ * | `compareFunctionFactory` | A [custom compare function](@/guides/rows/rows-sorting.md#add-a-custom-comparator) |
3052
3052
  *
3053
3053
  * If you set the `multiColumnSorting` option to an object,
3054
3054
  * you can also sort individual columns at Handsontable's initialization.
@@ -3061,7 +3061,7 @@ export default (function () {
3061
3061
  * | `sortOrder` | `'asc'` \| `'desc'` | The sorting order:<br>`'asc'`: ascending<br>`'desc'`: descending |
3062
3062
  *
3063
3063
  * Read more:
3064
- * - [Row sorting](@/guides/rows/row-sorting.md)
3064
+ * - [Rows sorting](@/guides/rows/rows-sorting.md)
3065
3065
  * - [`columnSorting`](#columnSorting)
3066
3066
  *
3067
3067
  * @memberof Options#
@@ -3078,7 +3078,7 @@ export default (function () {
3078
3078
  * multiColumnSorting: {
3079
3079
  * // sort empty cells as well
3080
3080
  * sortEmptyCells: true,
3081
- * // display an arrow icon in the column header
3081
+ * // display the arrow icon in the column header
3082
3082
  * indicator: true,
3083
3083
  * // disable clicking on the column header to sort the column
3084
3084
  * headerAction: false,
@@ -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: 12.3.1
29
- * Release date: 06/02/2023 (built at 06/02/2023 12:35:03)
28
+ * Version: 12.3.2-next-bcef33c-20230315
29
+ * Release date: 22/03/2023 (built at 15/03/2023 11:34:29)
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: 12.3.1
29
- * Release date: 06/02/2023 (built at 06/02/2023 12:35:03)
28
+ * Version: 12.3.2-next-bcef33c-20230315
29
+ * Release date: 22/03/2023 (built at 15/03/2023 11:34:29)
30
30
  */
31
31
  /**
32
32
  * Fix for bootstrap styles