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.
- 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
|