handsontable 0.0.0-next-d4ae6d7-20221205 → 0.0.0-next-21b8f14-20221206

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.

Potentially problematic release.


This version of handsontable might be problematic. Click here for more details.

@@ -25,8 +25,8 @@
25
25
  * INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING FROM
26
26
  * USE OR INABILITY TO USE THIS SOFTWARE.
27
27
  *
28
- * Version: 0.0.0-next-d4ae6d7-20221205
29
- * Release date: 25/10/2022 (built at 05/12/2022 10:27:39)
28
+ * Version: 0.0.0-next-21b8f14-20221206
29
+ * Release date: 25/10/2022 (built at 06/12/2022 11:15:30)
30
30
  */
31
31
  (function webpackUniversalModuleDefinition(root, factory) {
32
32
  if(typeof exports === 'object' && typeof module === 'object')
@@ -2846,7 +2846,7 @@ var domMessages = {
2846
2846
  function _injectProductInfo(key, element) {
2847
2847
  var hasValidType = !isEmpty(key);
2848
2848
  var isNonCommercial = typeof key === 'string' && key.toLowerCase() === 'non-commercial-and-evaluation';
2849
- var hotVersion = "0.0.0-next-d4ae6d7-20221205";
2849
+ var hotVersion = "0.0.0-next-21b8f14-20221206";
2850
2850
  var keyValidityDate;
2851
2851
  var consoleMessageState = 'invalid';
2852
2852
  var domMessageState = 'invalid';
@@ -21101,7 +21101,7 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
21101
21101
  * @private
21102
21102
  * @param {Array[]} changes An array of changes in format [[row, prop, oldValue, value], ...].
21103
21103
  * @param {string} [source] String that identifies source of hook call
21104
- * ([list of all available sources]{@link http://docs.handsontable.com/tutorial-using-callbacks.html#page-source-definition}).
21104
+ * ([list of all available sources]{@link https://handsontable.com/docs/javascript-data-grid/events-and-hooks/#handsontable-hooks}).
21105
21105
  */
21106
21106
  }, {
21107
21107
  key: "onAfterSetDataAtCell",
@@ -21162,7 +21162,7 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
21162
21162
  * @private
21163
21163
  * @param {Array[]} changes An array of changes in format [[row, column, oldValue, value], ...].
21164
21164
  * @param {string} [source] String that identifies source of hook call
21165
- * ([list of all available sources]{@link http://docs.handsontable.com/tutorial-using-callbacks.html#page-source-definition}).
21165
+ * ([list of all available sources]{@link https://handsontable.com/docs/javascript-data-grid/events-and-hooks/#handsontable-hooks}).
21166
21166
  */
21167
21167
  }, {
21168
21168
  key: "onAfterSetSourceDataAtCell",
@@ -21277,7 +21277,7 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
21277
21277
  * @param {number} row Represents the visual index of first newly created row in the data source array.
21278
21278
  * @param {number} amount Number of newly created rows in the data source array.
21279
21279
  * @param {string} [source] String that identifies source of hook call
21280
- * ([list of all available sources]{@link http://docs.handsontable.com/tutorial-using-callbacks.html#page-source-definition}).
21280
+ * ([list of all available sources]{@link https://handsontable.com/docs/javascript-data-grid/events-and-hooks/#handsontable-hooks}).
21281
21281
  */
21282
21282
  }, {
21283
21283
  key: "onAfterCreateRow",
@@ -21296,7 +21296,7 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
21296
21296
  * @param {number} col Represents the visual index of first newly created column in the data source.
21297
21297
  * @param {number} amount Number of newly created columns in the data source.
21298
21298
  * @param {string} [source] String that identifies source of hook call
21299
- * ([list of all available sources]{@link http://docs.handsontable.com/tutorial-using-callbacks.html#page-source-definition}).
21299
+ * ([list of all available sources]{@link https://handsontable.com/docs/javascript-data-grid/events-and-hooks/#handsontable-hooks}).
21300
21300
  */
21301
21301
  }, {
21302
21302
  key: "onAfterCreateCol",
@@ -21316,7 +21316,7 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
21316
21316
  * @param {number} amount An amount of removed rows.
21317
21317
  * @param {number[]} physicalRows An array of physical rows removed from the data source.
21318
21318
  * @param {string} [source] String that identifies source of hook call
21319
- * ([list of all available sources]{@link http://docs.handsontable.com/tutorial-using-callbacks.html#page-source-definition}).
21319
+ * ([list of all available sources]{@link https://handsontable.com/docs/javascript-data-grid/events-and-hooks/#handsontable-hooks}).
21320
21320
  */
21321
21321
  }, {
21322
21322
  key: "onAfterRemoveRow",
@@ -21342,7 +21342,7 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
21342
21342
  * @param {number} amount An amount of removed columns.
21343
21343
  * @param {number[]} physicalColumns An array of physical columns removed from the data source.
21344
21344
  * @param {string} [source] String that identifies source of hook call
21345
- * ([list of all available sources]{@link http://docs.handsontable.com/tutorial-using-callbacks.html#page-source-definition}).
21345
+ * ([list of all available sources]{@link https://handsontable.com/docs/javascript-data-grid/events-and-hooks/#handsontable-hooks}).
21346
21346
  */
21347
21347
  }, {
21348
21348
  key: "onAfterRemoveCol",
@@ -22642,7 +22642,7 @@ var deprecationWarns = new Set();
22642
22642
  *
22643
22643
  * ::: only-for react
22644
22644
  * To use these methods, associate a Handsontable instance with your instance
22645
- * of the [`HotTable` component](@/guides/getting-started/installation.md#hottable-component),
22645
+ * of the [`HotTable` component](@/guides/getting-started/installation.md#use-the-hottable-component),
22646
22646
  * by using React's `ref` feature (read more on the [Instance methods](@/guides/getting-started/react-methods.md) page).
22647
22647
  * :::
22648
22648
  *
@@ -23079,6 +23079,7 @@ function Core(rootElement, userSettings) {
23079
23079
  rowDelta = _datamap$createRow.delta,
23080
23080
  startRowPhysicalIndex = _datamap$createRow.startPhysicalIndex;
23081
23081
  if (rowDelta) {
23082
+ metaManager.createRow(startRowPhysicalIndex, amount);
23082
23083
  var currentSelectedRange = selection.selectedRange.current();
23083
23084
  var currentFromRange = currentSelectedRange === null || currentSelectedRange === void 0 ? void 0 : currentSelectedRange.from;
23084
23085
  var currentFromRow = currentFromRange === null || currentFromRange === void 0 ? void 0 : currentFromRange.row;
@@ -23134,6 +23135,7 @@ function Core(rootElement, userSettings) {
23134
23135
  colDelta = _datamap$createCol.delta,
23135
23136
  startColumnPhysicalIndex = _datamap$createCol.startPhysicalIndex;
23136
23137
  if (colDelta) {
23138
+ metaManager.createColumn(startColumnPhysicalIndex, amount);
23137
23139
  if (Array.isArray(tableMeta.colHeaders)) {
23138
23140
  var spliceArray = [instance.toVisualColumn(startColumnPhysicalIndex), 0];
23139
23141
  spliceArray.length += colDelta; // inserts empty (undefined) elements at the end of an array
@@ -23196,6 +23198,7 @@ function Core(rootElement, userSettings) {
23196
23198
  if (!wasRemoved) {
23197
23199
  return;
23198
23200
  }
23201
+ metaManager.removeRow(instance.toPhysicalRow(calcIndex), groupAmount);
23199
23202
  var totalRows = instance.countRows();
23200
23203
  var fixedRowsTop = tableMeta.fixedRowsTop;
23201
23204
  if (fixedRowsTop >= calcIndex + 1) {
@@ -23241,6 +23244,7 @@ function Core(rootElement, userSettings) {
23241
23244
  if (!wasRemoved) {
23242
23245
  return;
23243
23246
  }
23247
+ metaManager.removeColumn(physicalColumnIndex, groupAmount);
23244
23248
  var fixedColumnsStart = tableMeta.fixedColumnsStart;
23245
23249
  if (fixedColumnsStart >= calcIndex + 1) {
23246
23250
  tableMeta.fixedColumnsStart -= Math.min(groupAmount, fixedColumnsStart - calcIndex);
@@ -23822,7 +23826,9 @@ function Core(rootElement, userSettings) {
23822
23826
  source: source
23823
23827
  }),
23824
23828
  numberOfCreatedRows = _datamap$createRow2.delta;
23825
- if (numberOfCreatedRows === 0) {
23829
+ if (numberOfCreatedRows >= 1) {
23830
+ metaManager.createRow(null, numberOfCreatedRows);
23831
+ } else {
23826
23832
  skipThisChange = true;
23827
23833
  break;
23828
23834
  }
@@ -23834,7 +23840,9 @@ function Core(rootElement, userSettings) {
23834
23840
  source: source
23835
23841
  }),
23836
23842
  numberOfCreatedColumns = _datamap$createCol2.delta;
23837
- if (numberOfCreatedColumns === 0) {
23843
+ if (numberOfCreatedColumns >= 1) {
23844
+ metaManager.createColumn(null, numberOfCreatedColumns);
23845
+ } else {
23838
23846
  skipThisChange = true;
23839
23847
  break;
23840
23848
  }
@@ -24659,7 +24667,6 @@ function Core(rootElement, userSettings) {
24659
24667
  dataSource: dataSource,
24660
24668
  internalSource: 'updateData',
24661
24669
  source: source,
24662
- metaManager: metaManager,
24663
24670
  firstRun: firstRun
24664
24671
  });
24665
24672
  };
@@ -24702,7 +24709,6 @@ function Core(rootElement, userSettings) {
24702
24709
  dataSource: dataSource,
24703
24710
  internalSource: 'loadData',
24704
24711
  source: source,
24705
- metaManager: metaManager,
24706
24712
  firstRun: firstRun
24707
24713
  });
24708
24714
  };
@@ -31583,8 +31589,8 @@ __webpack_require__(63);
31583
31589
  __webpack_require__(46);
31584
31590
  __webpack_require__(77);
31585
31591
  __webpack_require__(34);
31586
- __webpack_require__(22);
31587
31592
  __webpack_require__(19);
31593
+ __webpack_require__(22);
31588
31594
  __webpack_require__(31);
31589
31595
  __webpack_require__(21);
31590
31596
  var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(29));
@@ -31631,9 +31637,9 @@ var DataMap = /*#__PURE__*/function () {
31631
31637
  /**
31632
31638
  * @param {object} instance Instance of Handsontable.
31633
31639
  * @param {Array} data Array of arrays or array of objects containing data.
31634
- * @param {MetaManager} metaManager The meta manager instance.
31640
+ * @param {TableMeta} tableMeta The table meta instance.
31635
31641
  */
31636
- function DataMap(instance, data, metaManager) {
31642
+ function DataMap(instance, data, tableMeta) {
31637
31643
  (0, _classCallCheck2.default)(this, DataMap);
31638
31644
  /**
31639
31645
  * Instance of {@link Handsontable}.
@@ -31643,12 +31649,12 @@ var DataMap = /*#__PURE__*/function () {
31643
31649
  */
31644
31650
  this.instance = instance;
31645
31651
  /**
31646
- * Instance of {@link MetaManager}.
31652
+ * Instance of {@link TableMeta}.
31647
31653
  *
31648
31654
  * @private
31649
- * @type {MetaManager}
31655
+ * @type {TableMeta}
31650
31656
  */
31651
- this.metaManager = metaManager;
31657
+ this.tableMeta = tableMeta;
31652
31658
  /**
31653
31659
  * Reference to the original dataset.
31654
31660
  *
@@ -31686,7 +31692,7 @@ var DataMap = /*#__PURE__*/function () {
31686
31692
  if (typeof schema === 'undefined') {
31687
31693
  throw new Error('trying to create `columns` definition but you didn\'t provide `schema` nor `data`');
31688
31694
  }
31689
- var columns = this.instance.getSettings().columns;
31695
+ var columns = this.tableMeta.columns;
31690
31696
  var i;
31691
31697
  this.colToPropCache = [];
31692
31698
  this.propToColCache = new Map();
@@ -31699,7 +31705,7 @@ var DataMap = /*#__PURE__*/function () {
31699
31705
  columnsLen = schemaLen > 0 ? schemaLen : this.countFirstRowKeys();
31700
31706
  columnsAsFunc = true;
31701
31707
  } else {
31702
- var maxCols = this.instance.getSettings().maxCols;
31708
+ var maxCols = this.tableMeta.maxCols;
31703
31709
  columnsLen = Math.min(maxCols, columns.length);
31704
31710
  }
31705
31711
  for (i = 0; i < columnsLen; i++) {
@@ -31821,7 +31827,7 @@ var DataMap = /*#__PURE__*/function () {
31821
31827
  }, {
31822
31828
  key: "getSchema",
31823
31829
  value: function getSchema() {
31824
- var schema = this.instance.getSettings().dataSchema;
31830
+ var schema = this.tableMeta.dataSchema;
31825
31831
  if (schema) {
31826
31832
  if (typeof schema === 'function') {
31827
31833
  return schema();
@@ -31883,17 +31889,15 @@ var DataMap = /*#__PURE__*/function () {
31883
31889
  }
31884
31890
  var continueProcess = this.instance.runHooks('beforeCreateRow', rowIndex, amount, source);
31885
31891
  if (continueProcess === false || physicalRowIndex === null) {
31886
- return {
31887
- delta: 0
31888
- };
31892
+ return 0;
31889
31893
  }
31890
- var maxRows = this.instance.getSettings().maxRows;
31894
+ var maxRows = this.tableMeta.maxRows;
31891
31895
  var columnCount = this.getSchema().length;
31892
31896
  var rowsToAdd = [];
31893
31897
  var _loop = function _loop() {
31894
31898
  var row = null;
31895
31899
  if (_this2.instance.dataType === 'array') {
31896
- if (_this2.instance.getSettings().dataSchema) {
31900
+ if (_this2.tableMeta.dataSchema) {
31897
31901
  // Clone template array
31898
31902
  row = (0, _object.deepClone)(_this2.getSchema());
31899
31903
  } else {
@@ -31904,7 +31908,7 @@ var DataMap = /*#__PURE__*/function () {
31904
31908
  });
31905
31909
  }
31906
31910
  } else if (_this2.instance.dataType === 'function') {
31907
- row = _this2.instance.getSettings().dataSchema(rowIndex + numberOfCreatedRows);
31911
+ row = _this2.tableMeta.dataSchema(rowIndex + numberOfCreatedRows);
31908
31912
  } else {
31909
31913
  row = {};
31910
31914
  (0, _object.deepExtend)(row, _this2.getSchema());
@@ -31927,14 +31931,6 @@ var DataMap = /*#__PURE__*/function () {
31927
31931
  if (this.instance.countSourceRows() === rowsToAdd.length) {
31928
31932
  this.instance.columnIndexMapper.initToLength(this.instance.getInitialColumnCount());
31929
31933
  }
31930
- if (numberOfCreatedRows > 0) {
31931
- if (index === void 0 || index === null) {
31932
- // Creates the meta rows at the end of the rows collection.
31933
- this.metaManager.createRow(null, numberOfCreatedRows);
31934
- } else if (source !== 'auto') {
31935
- this.metaManager.createRow(physicalRowIndex, amount);
31936
- }
31937
- }
31938
31934
  this.instance.runHooks('afterCreateRow', newVisualRowIndex, numberOfCreatedRows, source);
31939
31935
  this.instance.forceFullRender = true; // used when data was changed
31940
31936
 
@@ -31968,7 +31964,7 @@ var DataMap = /*#__PURE__*/function () {
31968
31964
  throw new Error('Cannot create new column. When data source in an object, ' + 'you can only have as much columns as defined in first data row, data schema or in the \'columns\' setting.' + 'If you want to be able to add new columns, you have to use array datasource.');
31969
31965
  }
31970
31966
  var dataSource = this.dataSource;
31971
- var maxCols = this.instance.getSettings().maxCols;
31967
+ var maxCols = this.tableMeta.maxCols;
31972
31968
  var countSourceCols = this.instance.countSourceCols();
31973
31969
  var columnIndex = index;
31974
31970
  if (typeof columnIndex !== 'number' || columnIndex >= countSourceCols) {
@@ -31976,9 +31972,7 @@ var DataMap = /*#__PURE__*/function () {
31976
31972
  }
31977
31973
  var continueProcess = this.instance.runHooks('beforeCreateCol', columnIndex, amount, source);
31978
31974
  if (continueProcess === false) {
31979
- return {
31980
- delta: 0
31981
- };
31975
+ return 0;
31982
31976
  }
31983
31977
  var physicalColumnIndex = countSourceCols;
31984
31978
  if (columnIndex < this.instance.countCols()) {
@@ -32014,14 +32008,6 @@ var DataMap = /*#__PURE__*/function () {
32014
32008
  nrOfColumns += 1;
32015
32009
  }
32016
32010
  this.instance.columnIndexMapper.insertIndexes(columnIndex, numberOfCreatedCols);
32017
- if (numberOfCreatedCols > 0) {
32018
- if (index === void 0 || index === null) {
32019
- // Creates the meta columns at the end of the columns collection.
32020
- this.metaManager.createColumn(null, numberOfCreatedCols);
32021
- } else if (source !== 'auto') {
32022
- this.metaManager.createColumn(startPhysicalIndex, amount);
32023
- }
32024
- }
32025
32011
  var newVisualColumnIndex = this.instance.toVisualColumn(startPhysicalIndex);
32026
32012
  this.instance.runHooks('afterCreateCol', newVisualColumnIndex, numberOfCreatedCols, source);
32027
32013
  this.instance.forceFullRender = true; // used when data was changed
@@ -32046,7 +32032,6 @@ var DataMap = /*#__PURE__*/function () {
32046
32032
  }, {
32047
32033
  key: "removeRow",
32048
32034
  value: function removeRow(index) {
32049
- var _this3 = this;
32050
32035
  var amount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
32051
32036
  var source = arguments.length > 2 ? arguments[2] : undefined;
32052
32037
  var rowIndex = Number.isInteger(index) ? index : -amount; // -amount = taking indexes from the end.
@@ -32067,19 +32052,13 @@ var DataMap = /*#__PURE__*/function () {
32067
32052
  // TODO: Function `removeRow` should validate fully, probably above.
32068
32053
  if (rowIndex < this.instance.countRows()) {
32069
32054
  this.instance.rowIndexMapper.removeIndexes(removedPhysicalIndexes);
32070
- var customDefinedColumns = (0, _mixed.isDefined)(this.instance.getSettings().columns) || (0, _mixed.isDefined)(this.instance.getSettings().dataSchema);
32055
+ var customDefinedColumns = (0, _mixed.isDefined)(this.tableMeta.columns) || (0, _mixed.isDefined)(this.tableMeta.dataSchema);
32071
32056
 
32072
32057
  // All rows have been removed. There shouldn't be any columns.
32073
32058
  if (this.instance.rowIndexMapper.getNotTrimmedIndexesLength() === 0 && customDefinedColumns === false) {
32074
32059
  this.instance.columnIndexMapper.setIndexesSequence([]);
32075
32060
  }
32076
32061
  }
32077
- var descendingPhysicalRows = removedPhysicalIndexes.slice(0).sort(function (a, b) {
32078
- return b - a;
32079
- });
32080
- descendingPhysicalRows.forEach(function (rowPhysicalIndex) {
32081
- _this3.metaManager.removeRow(rowPhysicalIndex, 1);
32082
- });
32083
32062
  this.instance.runHooks('afterRemoveRow', rowIndex, numberOfRemovedIndexes, removedPhysicalIndexes, source);
32084
32063
  this.instance.forceFullRender = true; // used when data was changed
32085
32064
 
@@ -32101,56 +32080,51 @@ var DataMap = /*#__PURE__*/function () {
32101
32080
  value: function removeCol(index) {
32102
32081
  var amount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
32103
32082
  var source = arguments.length > 2 ? arguments[2] : undefined;
32104
- if (this.instance.dataType === 'object' || this.instance.getSettings().columns) {
32083
+ if (this.instance.dataType === 'object' || this.tableMeta.columns) {
32105
32084
  throw new Error('cannot remove column with object data source or columns option specified');
32106
32085
  }
32107
32086
  var columnIndex = typeof index !== 'number' ? -amount : index;
32108
32087
  columnIndex = (this.instance.countCols() + columnIndex) % this.instance.countCols();
32109
- var removedPhysicalIndexes = this.visualColumnsToPhysical(columnIndex, amount);
32110
- var descendingPhysicalColumns = removedPhysicalIndexes.slice(0).sort(function (a, b) {
32088
+ var logicColumns = this.visualColumnsToPhysical(columnIndex, amount);
32089
+ var descendingLogicColumns = logicColumns.slice(0).sort(function (a, b) {
32111
32090
  return b - a;
32112
32091
  });
32113
- var actionWasNotCancelled = this.instance.runHooks('beforeRemoveCol', columnIndex, amount, removedPhysicalIndexes, source);
32092
+ var actionWasNotCancelled = this.instance.runHooks('beforeRemoveCol', columnIndex, amount, logicColumns, source);
32114
32093
  if (actionWasNotCancelled === false) {
32115
32094
  return false;
32116
32095
  }
32117
32096
  var isTableUniform = true;
32118
- var removedColumnsCount = descendingPhysicalColumns.length;
32097
+ var removedColumnsCount = descendingLogicColumns.length;
32119
32098
  var data = this.dataSource;
32120
32099
  for (var c = 0; c < removedColumnsCount; c++) {
32121
- if (isTableUniform && removedPhysicalIndexes[0] !== removedPhysicalIndexes[c] - c) {
32100
+ if (isTableUniform && logicColumns[0] !== logicColumns[c] - c) {
32122
32101
  isTableUniform = false;
32123
32102
  }
32124
32103
  }
32125
32104
  if (isTableUniform) {
32126
32105
  for (var r = 0, rlen = this.instance.countSourceRows(); r < rlen; r++) {
32127
- data[r].splice(removedPhysicalIndexes[0], amount);
32128
- if (r === 0) {
32129
- this.metaManager.removeColumn(removedPhysicalIndexes[0], amount);
32130
- }
32106
+ data[r].splice(logicColumns[0], amount);
32131
32107
  }
32132
32108
  } else {
32133
32109
  for (var _r = 0, _rlen = this.instance.countSourceRows(); _r < _rlen; _r++) {
32134
32110
  for (var _c = 0; _c < removedColumnsCount; _c++) {
32135
- data[_r].splice(descendingPhysicalColumns[_c], 1);
32136
- if (_r === 0) {
32137
- this.metaManager.removeColumn(descendingPhysicalColumns[_c], 1);
32138
- }
32111
+ data[_r].splice(descendingLogicColumns[_c], 1);
32139
32112
  }
32140
32113
  }
32141
32114
  }
32142
32115
 
32143
32116
  // TODO: Function `removeCol` should validate fully, probably above.
32144
32117
  if (columnIndex < this.instance.countCols()) {
32145
- this.instance.columnIndexMapper.removeIndexes(removedPhysicalIndexes);
32118
+ this.instance.columnIndexMapper.removeIndexes(logicColumns);
32146
32119
 
32147
32120
  // All columns have been removed. There shouldn't be any rows.
32148
32121
  if (this.instance.columnIndexMapper.getNotTrimmedIndexesLength() === 0) {
32149
32122
  this.instance.rowIndexMapper.setIndexesSequence([]);
32150
32123
  }
32151
32124
  }
32152
- this.instance.runHooks('afterRemoveCol', columnIndex, amount, removedPhysicalIndexes, source);
32125
+ this.instance.runHooks('afterRemoveCol', columnIndex, amount, logicColumns, source);
32153
32126
  this.instance.forceFullRender = true; // used when data was changed
32127
+
32154
32128
  this.refreshDuckSchema();
32155
32129
  return true;
32156
32130
  }
@@ -32222,7 +32196,7 @@ var DataMap = /*#__PURE__*/function () {
32222
32196
  }, {
32223
32197
  key: "spliceData",
32224
32198
  value: function spliceData(index, deleteCount, elements) {
32225
- var _this4 = this;
32199
+ var _this3 = this;
32226
32200
  var continueSplicing = this.instance.runHooks('beforeDataSplice', index, deleteCount, elements);
32227
32201
  if (continueSplicing !== false) {
32228
32202
  var newData = [].concat((0, _toConsumableArray2.default)(this.dataSource.slice(0, index)), (0, _toConsumableArray2.default)(elements), (0, _toConsumableArray2.default)(this.dataSource.slice(index)));
@@ -32233,7 +32207,7 @@ var DataMap = /*#__PURE__*/function () {
32233
32207
  // Pushing to array instead of using `splice`, because Babel changes the code to one that uses the `apply` method.
32234
32208
  // The used method was cause of the problem described within #7840.
32235
32209
  newData.forEach(function (row) {
32236
- return _this4.dataSource.push(row);
32210
+ return _this3.dataSource.push(row);
32237
32211
  });
32238
32212
  }
32239
32213
  }
@@ -32442,7 +32416,7 @@ var DataMap = /*#__PURE__*/function () {
32442
32416
  }, {
32443
32417
  key: "getLength",
32444
32418
  value: function getLength() {
32445
- var maxRowsFromSettings = this.instance.getSettings().maxRows;
32419
+ var maxRowsFromSettings = this.tableMeta.maxRows;
32446
32420
  var maxRows;
32447
32421
  if (maxRowsFromSettings < 0 || maxRowsFromSettings === 0) {
32448
32422
  maxRows = 0;
@@ -32501,8 +32475,8 @@ var DataMap = /*#__PURE__*/function () {
32501
32475
  var r;
32502
32476
  var c;
32503
32477
  var row;
32504
- var maxRows = this.instance.getSettings().maxRows;
32505
- var maxCols = this.instance.getSettings().maxCols;
32478
+ var maxRows = this.tableMeta.maxRows;
32479
+ var maxCols = this.tableMeta.maxCols;
32506
32480
  if (maxRows === 0 || maxCols === 0) {
32507
32481
  return [];
32508
32482
  }
@@ -32559,7 +32533,7 @@ var DataMap = /*#__PURE__*/function () {
32559
32533
  key: "destroy",
32560
32534
  value: function destroy() {
32561
32535
  this.instance = null;
32562
- this.metaManager = null;
32536
+ this.tableMeta = null;
32563
32537
  this.dataSource = null;
32564
32538
  this.duckSchema = null;
32565
32539
  this.colToPropCache.length = 0;
@@ -32667,7 +32641,7 @@ var _object = __webpack_require__(12);
32667
32641
  * ::: only-for react
32668
32642
  *
32669
32643
  * To apply configuration options, pass them as individual props
32670
- * of the [`HotTable`](@/guides/getting-started/installation.md##hottable-component)
32644
+ * of the [`HotTable`](@/guides/getting-started/installation.md#use-the-hottable-component)
32671
32645
  * or [`HotColumn`](@/guides/columns/react-hot-column.md) components.
32672
32646
  *
32673
32647
  * Read more on the [Configuration options](@/guides/getting-started/configuration-options.md) page.
@@ -32697,10 +32671,10 @@ var _object = __webpack_require__(12);
32697
32671
  * :::
32698
32672
  *
32699
32673
  * Depending on your needs, you can apply [configuration options](@/api/options.md) to different elements of your grid:
32700
- * - [The entire grid](@/guides/getting-started/configuration-options.md#setting-grid-options)
32701
- * - [Individual columns](@/guides/getting-started/configuration-options.md#setting-column-options)
32702
- * - [Individual rows](@/guides/getting-started/configuration-options.md#setting-row-options)
32703
- * - [Individual cells](@/guides/getting-started/configuration-options.md#setting-cell-options)
32674
+ * - [The entire grid](@/guides/getting-started/configuration-options.md#set-grid-options)
32675
+ * - [Individual columns](@/guides/getting-started/configuration-options.md#set-column-options)
32676
+ * - [Individual rows](@/guides/getting-started/configuration-options.md#set-row-options)
32677
+ * - [Individual cells](@/guides/getting-started/configuration-options.md#set-cell-options)
32704
32678
  * - [Individual grid elements, based on any logic you implement](@/guides/getting-started/configuration-options.md#implementing-custom-logic)
32705
32679
  *
32706
32680
  * Read more:
@@ -33021,14 +32995,16 @@ var _default = function _default() {
33021
32995
  */
33022
32996
  autoRowSize: void 0,
33023
32997
  /**
33024
- * The `autoWrapCol` option determines what happens to current cell selection when you navigate to the grid's top or bottom edge.
32998
+ * With [`autoWrapCol`](#autowrapcol) enabled:
32999
+ * - When you select a bottom-most cell, pressing <kbd>**↓**</kbd> takes you to the top-most cell of the next column.
33000
+ * - When you select a top-most cell, pressing <kbd>**↑**</kbd> takes you to the bottom-most cell of the previous column.
33025
33001
  *
33026
- * You can set the `autoWrapCol` option to one of the following:
33002
+ * You can set the [`autoWrapCol`](#autowrapcol) option to one of the following:
33027
33003
  *
33028
- * | Setting | Description |
33029
- * | ----------------- | ----------------------------------------------------------------------------------------------------------------------- |
33030
- * | `true` | On reaching the grid's top or bottom edge<br>- Jump to the opposite edge<br>- Select a cell in the previous/next column |
33031
- * | `false` (default) | On reaching the grid's top or bottom edge, stop |
33004
+ * | Setting | Description |
33005
+ * | ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
33006
+ * | `true` | When you select a bottom-most cell, pressing <kbd>**↓**</kbd> takes you to the top-most cell of the next column.<br><br>When you select a top-most cell, pressing <kbd>**↑**</kbd> takes you to the bottom-most cell of the previous column. |
33007
+ * | `false` (default) | When you select a bottom-most cell, pressing <kbd>**↓**</kbd> doesn't do anything.<br><br>When you select a top-most cell, pressing <kbd>**↑**</kbd> doesn't do anything. |
33032
33008
  *
33033
33009
  * @memberof Options#
33034
33010
  * @type {boolean}
@@ -33037,20 +33013,29 @@ var _default = function _default() {
33037
33013
  *
33038
33014
  * @example
33039
33015
  * ```js
33040
- * // on reaching the grid's top or bottom edge, jump to the opposite edge
33016
+ * // when you select a bottom-most cell, pressing doesn't do anything
33017
+ * // when you select a top-most cell, pressing ⬆ doesn't do anything
33018
+ * autoWrapCol: false, // default setting
33019
+ *
33020
+ * // when you select a bottom-most cell, pressing ⬇ takes you to the top-most cell of the next column
33021
+ * // when you select a top-most cell, pressing ⬆ takes you to the bottom-most cell of the previous column
33041
33022
  * autoWrapCol: true,
33042
33023
  * ```
33043
33024
  */
33044
33025
  autoWrapCol: false,
33045
33026
  /**
33046
- * The `autoWrapRow` option determines what happens to current cell selection when you navigate to the grid's left or right edge.
33027
+ * With [`autoWrapRow`](#autoWrapRow) enabled:
33028
+ * - When you select the first cell of a row, pressing <kbd>**←**</kbd>* takes you to the last cell of the row above.
33029
+ * - When you select the last cell of a row, pressing <kbd>**→**</kbd>* takes you to the first cell of the row below.
33030
+ *
33031
+ * You can set the [`autoWrapRow`](#autoWrapRow) option to one of the following:
33047
33032
  *
33048
- * You can set the `autoWrapRow` option to one of the following:
33033
+ * | Setting | Description |
33034
+ * | ----------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
33035
+ * | `true` | When you select the first cell of a row, pressing <kbd>**←**</kbd>* takes you to the last cell of the row above.<br><br>When you select the last cell of a row, pressing <kbd>**→**</kbd>* takes you to the first cell of the row below. |
33036
+ * | `false` (default) | When you select the first cell of a row, pressing <kbd>**←**</kbd>* doesn't do anything.<br><br>When you select the last cell of a row, pressing <kbd>**→**</kbd>* doesn't do anything. |
33049
33037
  *
33050
- * | Setting | Description |
33051
- * | ----------------- | ---------------------------------------------------------------------------------------------------------------------------- |
33052
- * | `true` | On reaching the grid's left or right edge:<br>- Jump to the grid's opposite edge<br>- Select a cell in the previous/next row |
33053
- * | `false` (default) | On reaching the grid's left or right edge, stop |
33038
+ * \* The exact key depends on your [`layoutDirection`](#layoutdirection) configuration.
33054
33039
  *
33055
33040
  * @memberof Options#
33056
33041
  * @type {boolean}
@@ -33059,7 +33044,12 @@ var _default = function _default() {
33059
33044
  *
33060
33045
  * @example
33061
33046
  * ```js
33062
- * // on reaching the grid's left or right edge, jump to the opposite edge
33047
+ * // when you select the first cell of a row, pressing doesn't do anything
33048
+ * // when you select the last cell of a row, pressing ➡️ doesn't do anything
33049
+ * autoWrapRow: false, // default setting
33050
+ *
33051
+ * // when you select the first cell of a row, pressing ⬅ takes you to the last cell of the row above
33052
+ * // when you select the last cell of a row, pressing ➡️ takes you to the first cell of the row below
33063
33053
  * autoWrapRow: true,
33064
33054
  * ```
33065
33055
  */
@@ -33093,11 +33083,11 @@ var _default = function _default() {
33093
33083
  /**
33094
33084
  * The `cell` option lets you apply [configuration options](@/guides/getting-started/configuration-options.md) to individual cells.
33095
33085
  *
33096
- * The `cell` option overwrites the [top-level grid options](@/guides/getting-started/configuration-options.md#setting-grid-options),
33086
+ * The `cell` option overwrites the [top-level grid options](@/guides/getting-started/configuration-options.md#set-grid-options),
33097
33087
  * and the [`columns`](#columns) options.
33098
33088
  *
33099
33089
  * Read more:
33100
- * - [Configuration options: Setting cell options](@/guides/getting-started/configuration-options.md#setting-cell-options)
33090
+ * - [Configuration options: Setting cell options](@/guides/getting-started/configuration-options.md#set-cell-options)
33101
33091
  * - [`columns`](#columns)
33102
33092
  *
33103
33093
  * @memberof Options#
@@ -33134,8 +33124,8 @@ var _default = function _default() {
33134
33124
  * | `prop` | No | String \| Number | If [`data`](#data) is set to an [array of arrays](@/guides/getting-started/binding-to-data.md#array-of-arrays), `prop` is the same number as `column`.<br><br>If [`data`](#data) is set to an [array of objects](@/guides/getting-started/binding-to-data.md#array-of-objects), `prop` is a property name for the column's data object. |
33135
33125
  *
33136
33126
  * Read more:
33137
- * - [Configuration options: Implementing custom logic](@/guides/getting-started/configuration-options.md#implementing-custom-logic)
33138
- * - [Configuration options: Setting row options](@/guides/getting-started/configuration-options.md#setting-row-options)
33127
+ * - [Configuration options: Implementing custom logic](@/guides/getting-started/configuration-options.md#implement-custom-logic)
33128
+ * - [Configuration options: Setting row options](@/guides/getting-started/configuration-options.md#set-row-options)
33139
33129
  * - [`columns`](#columns)
33140
33130
  * - [`cell`](#cell)
33141
33131
  *
@@ -33352,12 +33342,12 @@ var _default = function _default() {
33352
33342
  * - An array of objects (each object represents one column)
33353
33343
  * - A function that returns an array of objects
33354
33344
  *
33355
- * The `columns` option overwrites the [top-level grid options](@/guides/getting-started/configuration-options.md#setting-grid-options).
33345
+ * The `columns` option overwrites the [top-level grid options](@/guides/getting-started/configuration-options.md#set-grid-options).
33356
33346
  *
33357
33347
  * When you use `columns`, the [`startCols`](#startCols), [`minCols`](#minCols), and [`maxCols`](#maxCols) options are ignored.
33358
33348
  *
33359
33349
  * Read more:
33360
- * - [Configuration options: Setting column options](@/guides/getting-started/configuration-options.md#setting-column-options)
33350
+ * - [Configuration options: Setting column options](@/guides/getting-started/configuration-options.md#set-column-options)
33361
33351
  * - [`startCols`](#startCols)
33362
33352
  * - [`minCols`](#minCols)
33363
33353
  * - [`maxCols`](#maxCols)
@@ -33490,12 +33480,12 @@ var _default = function _default() {
33490
33480
  * | `type` | `'sum'` \| `'min'` \| `'max'` \| `'count'` \| `'average'` \| `'custom'` | [Summary function](@/guides/columns/column-summary.md#step-3-calculate-your-summary) |
33491
33481
  * | `destinationRow` | A number | [Destination cell's row coordinate](@/guides/columns/column-summary.md#step-4-provide-the-destination-cell-s-coordinates) |
33492
33482
  * | `destinationColumn` | A number | [Destination cell's column coordinate](@/guides/columns/column-summary.md#step-4-provide-the-destination-cell-s-coordinates) |
33493
- * | `forceNumeric` | `true` \| `false` | [Treat non-numerics as numerics](@/guides/columns/column-summary.md#forcing-numeric-values) |
33483
+ * | `forceNumeric` | `true` \| `false` | [Treat non-numerics as numerics](@/guides/columns/column-summary.md#force-numeric-values) |
33494
33484
  * | `reversedRowCoords` | `true` \| `false` | [Reverse row coordinates](@/guides/columns/column-summary.md#step-5-make-room-for-the-destination-cell) |
33495
- * | `suppressDataTypeErrors` | `true` \| `false` | [Suppress data type errors](@/guides/columns/column-summary.md#throwing-data-type-errors) |
33485
+ * | `suppressDataTypeErrors` | `true` \| `false` | [Suppress data type errors](@/guides/columns/column-summary.md#throw-data-type-errors) |
33496
33486
  * | `readOnly` | `true` \| `false` | Make summary cell read-only |
33497
- * | `roundFloat` | `true` \| `false` | [Round summary result](@/guides/columns/column-summary.md#rounding-a-column-summary-result) |
33498
- * | `customFunction` | A function | [Custom summary function](@/guides/columns/column-summary.md#implementing-a-custom-summary-function) |
33487
+ * | `roundFloat` | `true` \| `false` | [Round summary result](@/guides/columns/column-summary.md#round-a-column-summary-result) |
33488
+ * | `customFunction` | A function | [Custom summary function](@/guides/columns/column-summary.md#implement-a-custom-summary-function) |
33499
33489
  *
33500
33490
  * Read more:
33501
33491
  * - [Column summary](@/guides/columns/column-summary.md)
@@ -33673,13 +33663,13 @@ var _default = function _default() {
33673
33663
  * | `false` | Disable the [`ContextMenu`](@/api/contextMenu.md) plugin |
33674
33664
  * | `true` | - Enable the [`ContextMenu`](@/api/contextMenu.md) plugin<br>- Use the [default context menu options](@/guides/accessories-and-menus/context-menu.md#context-menu-with-default-options) |
33675
33665
  * | An array | - Enable the [`ContextMenu`](@/api/contextMenu.md) plugin<br>- Modify [individual context menu options](@/guides/accessories-and-menus/context-menu.md#context-menu-with-specific-options) |
33676
- * | An object | - Enable the [`ContextMenu`](@/api/contextMenu.md) plugin<br>- Apply a [custom context menu configuration](@/guides/accessories-and-menus/context-menu.md#context-menu-with-fully-custom-configuration) |
33666
+ * | An object | - Enable the [`ContextMenu`](@/api/contextMenu.md) plugin<br>- Apply a [custom context menu configuration](@/guides/accessories-and-menus/context-menu.md#context-menu-with-a-fully-custom-configuration) |
33677
33667
  *
33678
33668
  * Read more:
33679
33669
  * - [Context menu](@/guides/accessories-and-menus/context-menu.md)
33680
33670
  * - [Context menu: Context menu with default options](@/guides/accessories-and-menus/context-menu.md#context-menu-with-default-options)
33681
33671
  * - [Context menu: Context menu with specific options](@/guides/accessories-and-menus/context-menu.md#context-menu-with-specific-options)
33682
- * - [Context menu: Context menu with fully custom configuration options](@/guides/accessories-and-menus/context-menu.md#context-menu-with-fully-custom-configuration)
33672
+ * - [Context menu: Context menu with fully custom configuration options](@/guides/accessories-and-menus/context-menu.md#context-menu-with-a-fully-custom-configuration)
33683
33673
  * - [Plugins: `ContextMenu`](@/api/contextMenu.md)
33684
33674
  *
33685
33675
  * @memberof Options#
@@ -35176,7 +35166,7 @@ var _default = function _default() {
35176
35166
  *
35177
35167
  * You can set the layout direction only at Handsontable's [initialization](@/guides/getting-started/installation.md#initialize-handsontable). Any change of the `layoutDirection` option after the initialization (e.g. using the [`updateSettings()`](@/api/core.md#updatesettings) method) is ignored.
35178
35168
  *
35179
- * You can set the `layoutDirection` option only [for the entire grid](@/guides/getting-started/configuration-options.md#setting-grid-options).
35169
+ * You can set the `layoutDirection` option only [for the entire grid](@/guides/getting-started/configuration-options.md#set-grid-options).
35180
35170
  * You can't set it for individual columns, rows, or cells.
35181
35171
  *
35182
35172
  * You can set the `layoutDirection` option to one of the following strings:
@@ -35248,8 +35238,8 @@ var _default = function _default() {
35248
35238
  * The `locale` option configures Handsontable's [locale](@/guides/internationalization/locale.md) settings.
35249
35239
  *
35250
35240
  * You can set the `locale` option to any valid and canonicalized Unicode BCP 47 locale tag,
35251
- * both for the [entire grid](@/guides/internationalization/locale.md#setting-the-grid-s-locale),
35252
- * and for [individual columns](@/guides/internationalization/locale.md#setting-a-column-s-locale).
35241
+ * both for the [entire grid](@/guides/internationalization/locale.md#set-the-grid-s-locale),
35242
+ * and for [individual columns](@/guides/internationalization/locale.md#set-a-column-s-locale).
35253
35243
  *
35254
35244
  * Read more:
35255
35245
  * - [Locale](@/guides/internationalization/locale.md)
@@ -35902,7 +35892,7 @@ var _default = function _default() {
35902
35892
  * | `true` | Enable the [`PersistentState`](@/api/persistentState.md) plugin |
35903
35893
  *
35904
35894
  * Read more:
35905
- * - [Saving data: Saving data locally](@/guides/getting-started/saving-data.md#saving-data-locally)
35895
+ * - [Saving data: Saving data locally](@/guides/getting-started/saving-data.md#save-data-locally)
35906
35896
  * - [Plugins: `PersistentState`](@/api/persistentState.md)
35907
35897
  *
35908
35898
  * @memberof Options#
@@ -36345,7 +36335,7 @@ var _default = function _default() {
36345
36335
  * | `'multiple'` | Allow the user to select multiple ranges of cells at a time. |
36346
36336
  *
36347
36337
  * Read more:
36348
- * - [Selection: Selecting ranges](@/guides/cell-features/selection.md#selecting-ranges)
36338
+ * - [Selection: Selecting ranges](@/guides/cell-features/selection.md#select-ranges)
36349
36339
  *
36350
36340
  * @memberof Options#
36351
36341
  * @type {string}
@@ -36436,7 +36426,7 @@ var _default = function _default() {
36436
36426
  * | `true` | - Disable pasting data into this column<br>- On pasting, paste data into the next column to the right |
36437
36427
  *
36438
36428
  * Read more:
36439
- * - [Configuration options: Setting column options](@/guides/getting-started/configuration-options.md#setting-column-options)
36429
+ * - [Configuration options: Setting column options](@/guides/getting-started/configuration-options.md#set-column-options)
36440
36430
  *
36441
36431
  * @memberof Options#
36442
36432
  * @type {boolean}
@@ -36469,7 +36459,7 @@ var _default = function _default() {
36469
36459
  * | `true` | - Disable pasting data into this row<br>- On pasting, paste data into the row below |
36470
36460
  *
36471
36461
  * Read more:
36472
- * - [Configuration options: Setting row options](@/guides/getting-started/configuration-options.md#setting-row-options)
36462
+ * - [Configuration options: Setting row options](@/guides/getting-started/configuration-options.md#set-row-options)
36473
36463
  *
36474
36464
  * @memberof Options#
36475
36465
  * @type {boolean}
@@ -41570,8 +41560,8 @@ Handsontable.hooks = _pluginHooks.default.getSingleton();
41570
41560
  Handsontable.CellCoords = _src.CellCoords;
41571
41561
  Handsontable.CellRange = _src.CellRange;
41572
41562
  Handsontable.packageName = 'handsontable';
41573
- Handsontable.buildDate = "05/12/2022 10:27:39";
41574
- Handsontable.version = "0.0.0-next-d4ae6d7-20221205";
41563
+ Handsontable.buildDate = "06/12/2022 11:15:30";
41564
+ Handsontable.version = "0.0.0-next-21b8f14-20221206";
41575
41565
  Handsontable.languages = {
41576
41566
  dictionaryKeys: _registry.dictionaryKeys,
41577
41567
  getLanguageDictionary: _registry.getLanguageDictionary,
@@ -56241,7 +56231,6 @@ function replaceData(data, setDataMapFunction, callbackFunction, config) {
56241
56231
  dataSource = config.dataSource,
56242
56232
  internalSource = config.internalSource,
56243
56233
  source = config.source,
56244
- metaManager = config.metaManager,
56245
56234
  firstRun = config.firstRun;
56246
56235
  var capitalizedInternalSource = (0, _string.toUpperCaseFirst)(internalSource);
56247
56236
  var tableMeta = hotInstance.getSettings();
@@ -56256,7 +56245,7 @@ function replaceData(data, setDataMapFunction, callbackFunction, config) {
56256
56245
  dataMap.destroy();
56257
56246
  }
56258
56247
  data = hotInstance.runHooks("before".concat(capitalizedInternalSource), data, firstRun, source);
56259
- var newDataMap = new _dataMap.default(hotInstance, data, metaManager);
56248
+ var newDataMap = new _dataMap.default(hotInstance, data, tableMeta);
56260
56249
 
56261
56250
  // We need to apply the new dataMap immediately, because of some asynchronous logic in the
56262
56251
  // `autoRowSize`/`autoColumnSize` plugins.
@@ -56576,7 +56565,7 @@ var _recorder = __webpack_require__(497);
56576
56565
  * @param {object} options The manager's options
56577
56566
  * @param {EventTarget} options.ownerWindow A starting `window` element
56578
56567
  * @param {Function} options.handleEvent A condition on which `event` is handled.
56579
- * @param {Function} options.beforeKeyDown A hook fired before the `keydown` event is handled. You can use it to [block a keyboard shortcut's actions](@/guides/accessories-and-menus/keyboard-shortcuts.md#blocking-a-keyboard-shortcut-s-actions).
56568
+ * @param {Function} options.beforeKeyDown A hook fired before the `keydown` event is handled. You can use it to [block a keyboard shortcut's actions](@/guides/accessories-and-menus/keyboard-shortcuts.md#block-a-keyboard-shortcut-s-actions).
56580
56569
  * @param {Function} options.afterKeyDown A hook fired after the `keydown` event is handled
56581
56570
  */
56582
56571
  var createShortcutManager = function createShortcutManager(_ref) {
@@ -66752,7 +66741,7 @@ var PLUGIN_PRIORITY = 220;
66752
66741
  * The `ColumnSummary` plugin lets you [easily summarize your columns](@/guides/columns/column-summary.md).
66753
66742
  *
66754
66743
  * You can use the [built-in summary functions](@/guides/columns/column-summary.md#built-in-summary-functions),
66755
- * or implement a [custom summary function](@/guides/columns/column-summary.md#implementing-a-custom-summary-function).
66744
+ * or implement a [custom summary function](@/guides/columns/column-summary.md#implement-a-custom-summary-function).
66756
66745
  *
66757
66746
  * For each column summary, you can set the following configuration options:
66758
66747
  *
@@ -66763,12 +66752,12 @@ var PLUGIN_PRIORITY = 220;
66763
66752
  * | `type` | Yes | String | - | [Sets a summary function](@/guides/columns/column-summary.md#step-3-calculate-your-summary) |
66764
66753
  * | `destinationRow` | Yes | Number | - | [Sets the destination cell's row coordinate](@/guides/columns/column-summary.md#step-4-provide-the-destination-cell-s-coordinates) |
66765
66754
  * | `destinationColumn` | Yes | Number | - | [Sets the destination cell's column coordinate](@/guides/columns/column-summary.md#step-4-provide-the-destination-cell-s-coordinates) |
66766
- * | `forceNumeric` | No | Boolean | `false` | [Forces the summary to treat non-numerics as numerics](@/guides/columns/column-summary.md#forcing-numeric-values) |
66755
+ * | `forceNumeric` | No | Boolean | `false` | [Forces the summary to treat non-numerics as numerics](@/guides/columns/column-summary.md#force-numeric-values) |
66767
66756
  * | `reversedRowCoords` | No | Boolean | `false` | [Reverses row coordinates](@/guides/columns/column-summary.md#step-5-make-room-for-the-destination-cell) |
66768
- * | `suppressDataTypeErrors` | No | Boolean | `true` | [Suppresses data type errors](@/guides/columns/column-summary.md#throwing-data-type-errors) |
66757
+ * | `suppressDataTypeErrors` | No | Boolean | `true` | [Suppresses data type errors](@/guides/columns/column-summary.md#throw-data-type-errors) |
66769
66758
  * | `readOnly` | No | Boolean | `true` | Makes summary cell read-only |
66770
- * | `roundFloat` | No | Number | - | [Rounds summary result](@/guides/columns/column-summary.md#rounding-a-column-summary-result) |
66771
- * | `customFunction` | No | Function | - | [Lets you add a custom summary function](@/guides/columns/column-summary.md#implementing-a-custom-summary-function) |
66759
+ * | `roundFloat` | No | Number | - | [Rounds summary result](@/guides/columns/column-summary.md#round-a-column-summary-result) |
66760
+ * | `customFunction` | No | Function | - | [Lets you add a custom summary function](@/guides/columns/column-summary.md#implement-a-custom-summary-function) |
66772
66761
  *
66773
66762
  * @example
66774
66763
  * ::: only-for javascript
@@ -67738,6 +67727,15 @@ var Endpoints = /*#__PURE__*/function () {
67738
67727
  var useOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
67739
67728
  var alterRowOffset = endpoint.alterRowOffset || 0;
67740
67729
  var alterColOffset = endpoint.alterColumnOffset || 0;
67730
+ var _ref = [this.hot.toVisualRow(endpoint.destinationRow), this.hot.toVisualColumn(endpoint.destinationColumn)],
67731
+ visualRowIndex = _ref[0],
67732
+ visualColumnIndex = _ref[1];
67733
+ if (visualColumnIndex !== null && visualRowIndex !== null) {
67734
+ // Clear the meta on the "old" indexes
67735
+ var cellMeta = this.hot.getCellMeta(visualRowIndex, visualColumnIndex);
67736
+ cellMeta.readOnly = false;
67737
+ cellMeta.className = '';
67738
+ }
67741
67739
  this.cellsToSetCache.push([this.hot.toVisualRow(endpoint.destinationRow + (useOffset ? alterRowOffset : 0)), this.hot.toVisualColumn(endpoint.destinationColumn + (useOffset ? alterColOffset : 0)), '']);
67742
67740
  }
67743
67741
 
@@ -67752,14 +67750,17 @@ var Endpoints = /*#__PURE__*/function () {
67752
67750
  key: "setEndpointValue",
67753
67751
  value: function setEndpointValue(endpoint, source) {
67754
67752
  var render = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
67753
+ // We'll need the reversed offset values, because cellMeta will be shifted AGAIN afterwards.
67754
+ var reverseRowOffset = -1 * endpoint.alterRowOffset || 0;
67755
+ var reverseColOffset = -1 * endpoint.alterColumnOffset || 0;
67755
67756
  var visualEndpointRowIndex = this.hot.toVisualRow(endpoint.destinationRow);
67756
67757
  if (endpoint.destinationRow >= this.hot.countRows() || endpoint.destinationColumn >= this.hot.countCols()) {
67757
67758
  this.throwOutOfBoundsWarning();
67758
67759
  return;
67759
67760
  }
67760
- var destinationVisualRow = this.hot.toVisualRow(endpoint.destinationRow);
67761
+ var destinationVisualRow = this.hot.toVisualRow(endpoint.destinationRow + reverseRowOffset);
67761
67762
  if (destinationVisualRow !== null) {
67762
- var cellMeta = this.hot.getCellMeta(destinationVisualRow, endpoint.destinationColumn);
67763
+ var cellMeta = this.hot.getCellMeta(destinationVisualRow, endpoint.destinationColumn + reverseColOffset);
67763
67764
  if (source === 'init' || cellMeta.readOnly !== endpoint.readOnly) {
67764
67765
  cellMeta.readOnly = endpoint.readOnly;
67765
67766
  cellMeta.className = 'columnSummaryResult';