handsontable 12.3.1 → 12.3.2-next-e75de58-20230322
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/3rdparty/walkontable/src/calculator/viewportColumns.js +31 -9
- package/3rdparty/walkontable/src/calculator/viewportColumns.mjs +31 -9
- package/3rdparty/walkontable/src/calculator/viewportRows.js +21 -6
- package/3rdparty/walkontable/src/calculator/viewportRows.mjs +21 -6
- package/3rdparty/walkontable/src/core/_base.js +19 -20
- package/3rdparty/walkontable/src/core/_base.mjs +19 -20
- package/3rdparty/walkontable/src/scroll.js +14 -3
- package/3rdparty/walkontable/src/scroll.mjs +14 -3
- package/3rdparty/walkontable/src/table.js +4 -2
- package/3rdparty/walkontable/src/table.mjs +4 -2
- package/3rdparty/walkontable/src/types.js +1 -0
- package/3rdparty/walkontable/src/types.mjs +1 -0
- package/3rdparty/walkontable/src/viewport.js +11 -14
- package/3rdparty/walkontable/src/viewport.mjs +11 -14
- package/CHANGELOG.md +1156 -494
- package/base.js +2 -2
- package/base.mjs +2 -2
- package/core.js +32 -21
- package/core.mjs +32 -21
- package/dataMap/metaManager/metaSchema.js +9 -9
- package/dataMap/metaManager/metaSchema.mjs +9 -9
- package/dist/handsontable.css +2 -2
- package/dist/handsontable.full.css +2 -2
- package/dist/handsontable.full.js +4631 -3987
- package/dist/handsontable.full.min.css +8 -8
- package/dist/handsontable.full.min.js +241 -227
- package/dist/handsontable.js +2753 -2435
- package/dist/handsontable.min.css +7 -7
- package/dist/handsontable.min.js +3 -3
- package/dist/languages/all.js +1 -1
- package/dist/languages/all.min.js +1 -1
- package/dist/languages/zh-CN.js +1 -1
- package/dist/languages/zh-CN.min.js +1 -1
- package/editors/autocompleteEditor/autocompleteEditor.js +8 -9
- package/editors/autocompleteEditor/autocompleteEditor.mjs +8 -9
- package/helpers/mixed.js +2 -2
- package/helpers/mixed.mjs +2 -2
- package/i18n/languages/zh-CN.js +1 -1
- package/i18n/languages/zh-CN.mjs +3 -3
- package/languages/all.js +1 -1
- package/languages/index.js +1 -1
- package/languages/zh-CN.js +1 -1
- package/languages/zh-CN.mjs +3 -3
- package/package.json +12 -13
- package/plugins/base/base.js +9 -10
- package/plugins/base/base.mjs +9 -10
- package/plugins/collapsibleColumns/collapsibleColumns.js +24 -7
- package/plugins/collapsibleColumns/collapsibleColumns.mjs +24 -7
- package/plugins/copyPaste/copyPaste.js +92 -16
- package/plugins/copyPaste/copyPaste.mjs +92 -16
- package/plugins/copyPaste/copyableRanges.js +14 -8
- package/plugins/copyPaste/copyableRanges.mjs +14 -8
- package/plugins/customBorders/customBorders.js +6 -7
- package/plugins/customBorders/customBorders.mjs +6 -7
- package/plugins/filters/filters.js +0 -8
- package/plugins/filters/filters.mjs +0 -8
- package/plugins/formulas/formulas.js +34 -7
- package/plugins/formulas/formulas.mjs +34 -7
- package/plugins/hiddenColumns/hiddenColumns.js +12 -7
- package/plugins/hiddenColumns/hiddenColumns.mjs +12 -7
- package/plugins/hiddenRows/hiddenRows.js +12 -7
- package/plugins/hiddenRows/hiddenRows.mjs +12 -7
- package/plugins/nestedHeaders/nestedHeaders.js +26 -7
- package/plugins/nestedHeaders/nestedHeaders.mjs +26 -7
- package/plugins/nestedHeaders/stateManager/index.js +18 -0
- package/plugins/nestedHeaders/stateManager/index.mjs +18 -0
- package/plugins/nestedHeaders/stateManager/sourceSettings.js +19 -0
- package/plugins/nestedHeaders/stateManager/sourceSettings.mjs +19 -0
- package/translations/changesObservable/observer.js +7 -0
- package/translations/changesObservable/observer.mjs +7 -0
- package/translations/maps/linkedPhysicalIndexToValueMap.js +6 -0
- 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 = "
|
50
|
-
Handsontable.version = "12.3.
|
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 = "
|
39
|
-
Handsontable.version = "12.3.
|
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
|
2754
|
-
|
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
|
2769
|
-
var
|
2770
|
-
|
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 (
|
2856
|
-
var
|
2857
|
-
changeRow =
|
2858
|
-
changeProp =
|
2859
|
-
changeValue =
|
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 (
|
2866
|
-
var
|
2867
|
-
changeRow =
|
2868
|
-
changeProp =
|
2869
|
-
changeValue =
|
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
|
2989
|
-
physicalRow =
|
2990
|
-
physicalColumn =
|
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 (
|
4071
|
-
var
|
4072
|
-
plugin =
|
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
|
2749
|
-
|
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
|
2764
|
-
var
|
2765
|
-
|
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 (
|
2851
|
-
var
|
2852
|
-
changeRow =
|
2853
|
-
changeProp =
|
2854
|
-
changeValue =
|
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 (
|
2861
|
-
var
|
2862
|
-
changeRow =
|
2863
|
-
changeProp =
|
2864
|
-
changeValue =
|
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
|
2984
|
-
physicalRow =
|
2985
|
-
physicalColumn =
|
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 (
|
4066
|
-
var
|
4067
|
-
plugin =
|
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
|
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/
|
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
|
-
* - [
|
846
|
-
* - [
|
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
|
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
|
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/
|
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
|
-
* - [
|
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
|
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
|
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/
|
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
|
-
* - [
|
842
|
-
* - [
|
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
|
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
|
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/
|
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
|
-
* - [
|
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
|
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,
|
package/dist/handsontable.css
CHANGED
@@ -25,8 +25,8 @@
|
|
25
25
|
* INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING FROM
|
26
26
|
* USE OR INABILITY TO USE THIS SOFTWARE.
|
27
27
|
*
|
28
|
-
* Version: 12.3.
|
29
|
-
* Release date:
|
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.
|
29
|
-
* Release date:
|
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
|