handsontable 12.3.1 → 12.3.2-next-e75de58-20230322

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 +1156 -494
  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
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 = "22/03/2023 11:52:55";
50
+ Handsontable.version = "12.3.2-next-e75de58-20230322";
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 = "22/03/2023 11:53:11";
39
+ Handsontable.version = "12.3.2-next-e75de58-20230322";
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-e75de58-20230322
29
+ * Release date: 22/03/2023 (built at 22/03/2023 11:53:25)
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-e75de58-20230322
29
+ * Release date: 22/03/2023 (built at 22/03/2023 11:53:25)
30
30
  */
31
31
  /**
32
32
  * Fix for bootstrap styles