handsontable 0.0.0-next-fcd6191-20240619 → 0.0.0-next-3c01700-20240619

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


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

package/base.js CHANGED
@@ -45,8 +45,8 @@ Handsontable.hooks = _pluginHooks.default.getSingleton();
45
45
  Handsontable.CellCoords = _src.CellCoords;
46
46
  Handsontable.CellRange = _src.CellRange;
47
47
  Handsontable.packageName = 'handsontable';
48
- Handsontable.buildDate = "19/06/2024 07:21:05";
49
- Handsontable.version = "0.0.0-next-fcd6191-20240619";
48
+ Handsontable.buildDate = "19/06/2024 08:00:27";
49
+ Handsontable.version = "0.0.0-next-3c01700-20240619";
50
50
  Handsontable.languages = {
51
51
  dictionaryKeys: _registry.dictionaryKeys,
52
52
  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 = "19/06/2024 07:21:11";
39
- Handsontable.version = "0.0.0-next-fcd6191-20240619";
38
+ Handsontable.buildDate = "19/06/2024 08:00:33";
39
+ Handsontable.version = "0.0.0-next-3c01700-20240619";
40
40
  Handsontable.languages = {
41
41
  dictionaryKeys,
42
42
  getLanguageDictionary,
package/core.js CHANGED
@@ -1109,16 +1109,17 @@ function Core(rootElement, userSettings) {
1109
1109
  */
1110
1110
  function validateChanges(changes, source, callback) {
1111
1111
  if (!changes.length) {
1112
+ callback();
1112
1113
  return;
1113
1114
  }
1114
1115
  const activeEditor = instance.getActiveEditor();
1115
1116
  const waitingForValidator = new ValidatorsQueue();
1116
1117
  let shouldBeCanceled = true;
1117
- waitingForValidator.onQueueEmpty = isValid => {
1118
+ waitingForValidator.onQueueEmpty = () => {
1118
1119
  if (activeEditor && shouldBeCanceled) {
1119
1120
  activeEditor.cancelChanges();
1120
1121
  }
1121
- callback(isValid); // called when async validators are resolved and beforeChange was not async
1122
+ callback(); // called when async validators are resolved and beforeChange was not async
1122
1123
  };
1123
1124
  for (let i = changes.length - 1; i >= 0; i--) {
1124
1125
  const [row, prop,, newValue] = changes[i];
@@ -1150,11 +1151,6 @@ function Core(rootElement, userSettings) {
1150
1151
  shouldBeCanceled = false;
1151
1152
  changes.splice(index, 1); // cancel the change
1152
1153
  cellPropertiesReference.valid = true; // we cancelled the change, so cell value is still valid
1153
-
1154
- const cell = instance.getCell(cellPropertiesReference.visualRow, cellPropertiesReference.visualCol);
1155
- if (cell !== null) {
1156
- (0, _element.removeClass)(cell, tableMeta.invalidCellClassName);
1157
- }
1158
1154
  }
1159
1155
  waitingForValidator.removeValidatorFormQueue();
1160
1156
  };
@@ -1174,11 +1170,7 @@ function Core(rootElement, userSettings) {
1174
1170
  * @fires Hooks#afterChange
1175
1171
  */
1176
1172
  function applyChanges(changes, source) {
1177
- let i = changes.length - 1;
1178
- if (i < 0) {
1179
- return;
1180
- }
1181
- for (; i >= 0; i--) {
1173
+ for (let i = changes.length - 1; i >= 0; i--) {
1182
1174
  let skipThisChange = false;
1183
1175
  if (changes[i] === null) {
1184
1176
  changes.splice(i, 1);
@@ -1221,17 +1213,23 @@ function Core(rootElement, userSettings) {
1221
1213
  }
1222
1214
  datamap.set(changes[i][0], changes[i][1], changes[i][3]);
1223
1215
  }
1224
- instance.forceFullRender = true; // used when data was changed
1225
- grid.adjustRowsAndCols();
1226
- instance.runHooks('beforeChangeRender', changes, source);
1227
- editorManager.closeEditor();
1228
- instance.view.render();
1229
- editorManager.prepareEditor();
1230
- instance.view.adjustElementsSize();
1231
- instance.runHooks('afterChange', changes, source || 'edit');
1232
- const activeEditor = instance.getActiveEditor();
1233
- if (activeEditor && (0, _mixed.isDefined)(activeEditor.refreshValue)) {
1234
- activeEditor.refreshValue();
1216
+ const hasChanges = changes.length > 0;
1217
+ instance.forceFullRender = true; // used when data was changed or when all cells need to be re-rendered
1218
+
1219
+ if (hasChanges) {
1220
+ grid.adjustRowsAndCols();
1221
+ instance.runHooks('beforeChangeRender', changes, source);
1222
+ editorManager.closeEditor();
1223
+ instance.view.render();
1224
+ editorManager.prepareEditor();
1225
+ instance.view.adjustElementsSize();
1226
+ instance.runHooks('afterChange', changes, source || 'edit');
1227
+ const activeEditor = instance.getActiveEditor();
1228
+ if (activeEditor && (0, _mixed.isDefined)(activeEditor.refreshValue)) {
1229
+ activeEditor.refreshValue();
1230
+ }
1231
+ } else {
1232
+ instance.view.render();
1235
1233
  }
1236
1234
  }
1237
1235
 
@@ -1791,7 +1789,7 @@ function Core(rootElement, userSettings) {
1791
1789
  this.render = function () {
1792
1790
  if (this.view) {
1793
1791
  this.renderCall = true;
1794
- this.forceFullRender = true; // used when data was changed
1792
+ this.forceFullRender = true; // used when data was changed or when all cells need to be re-rendered
1795
1793
 
1796
1794
  if (!this.isRenderSuspended()) {
1797
1795
  instance.view.render();
package/core.mjs CHANGED
@@ -1104,16 +1104,17 @@ export default function Core(rootElement, userSettings) {
1104
1104
  */
1105
1105
  function validateChanges(changes, source, callback) {
1106
1106
  if (!changes.length) {
1107
+ callback();
1107
1108
  return;
1108
1109
  }
1109
1110
  const activeEditor = instance.getActiveEditor();
1110
1111
  const waitingForValidator = new ValidatorsQueue();
1111
1112
  let shouldBeCanceled = true;
1112
- waitingForValidator.onQueueEmpty = isValid => {
1113
+ waitingForValidator.onQueueEmpty = () => {
1113
1114
  if (activeEditor && shouldBeCanceled) {
1114
1115
  activeEditor.cancelChanges();
1115
1116
  }
1116
- callback(isValid); // called when async validators are resolved and beforeChange was not async
1117
+ callback(); // called when async validators are resolved and beforeChange was not async
1117
1118
  };
1118
1119
  for (let i = changes.length - 1; i >= 0; i--) {
1119
1120
  const [row, prop,, newValue] = changes[i];
@@ -1145,11 +1146,6 @@ export default function Core(rootElement, userSettings) {
1145
1146
  shouldBeCanceled = false;
1146
1147
  changes.splice(index, 1); // cancel the change
1147
1148
  cellPropertiesReference.valid = true; // we cancelled the change, so cell value is still valid
1148
-
1149
- const cell = instance.getCell(cellPropertiesReference.visualRow, cellPropertiesReference.visualCol);
1150
- if (cell !== null) {
1151
- removeClass(cell, tableMeta.invalidCellClassName);
1152
- }
1153
1149
  }
1154
1150
  waitingForValidator.removeValidatorFormQueue();
1155
1151
  };
@@ -1169,11 +1165,7 @@ export default function Core(rootElement, userSettings) {
1169
1165
  * @fires Hooks#afterChange
1170
1166
  */
1171
1167
  function applyChanges(changes, source) {
1172
- let i = changes.length - 1;
1173
- if (i < 0) {
1174
- return;
1175
- }
1176
- for (; i >= 0; i--) {
1168
+ for (let i = changes.length - 1; i >= 0; i--) {
1177
1169
  let skipThisChange = false;
1178
1170
  if (changes[i] === null) {
1179
1171
  changes.splice(i, 1);
@@ -1216,17 +1208,23 @@ export default function Core(rootElement, userSettings) {
1216
1208
  }
1217
1209
  datamap.set(changes[i][0], changes[i][1], changes[i][3]);
1218
1210
  }
1219
- instance.forceFullRender = true; // used when data was changed
1220
- grid.adjustRowsAndCols();
1221
- instance.runHooks('beforeChangeRender', changes, source);
1222
- editorManager.closeEditor();
1223
- instance.view.render();
1224
- editorManager.prepareEditor();
1225
- instance.view.adjustElementsSize();
1226
- instance.runHooks('afterChange', changes, source || 'edit');
1227
- const activeEditor = instance.getActiveEditor();
1228
- if (activeEditor && isDefined(activeEditor.refreshValue)) {
1229
- activeEditor.refreshValue();
1211
+ const hasChanges = changes.length > 0;
1212
+ instance.forceFullRender = true; // used when data was changed or when all cells need to be re-rendered
1213
+
1214
+ if (hasChanges) {
1215
+ grid.adjustRowsAndCols();
1216
+ instance.runHooks('beforeChangeRender', changes, source);
1217
+ editorManager.closeEditor();
1218
+ instance.view.render();
1219
+ editorManager.prepareEditor();
1220
+ instance.view.adjustElementsSize();
1221
+ instance.runHooks('afterChange', changes, source || 'edit');
1222
+ const activeEditor = instance.getActiveEditor();
1223
+ if (activeEditor && isDefined(activeEditor.refreshValue)) {
1224
+ activeEditor.refreshValue();
1225
+ }
1226
+ } else {
1227
+ instance.view.render();
1230
1228
  }
1231
1229
  }
1232
1230
 
@@ -1786,7 +1784,7 @@ export default function Core(rootElement, userSettings) {
1786
1784
  this.render = function () {
1787
1785
  if (this.view) {
1788
1786
  this.renderCall = true;
1789
- this.forceFullRender = true; // used when data was changed
1787
+ this.forceFullRender = true; // used when data was changed or when all cells need to be re-rendered
1790
1788
 
1791
1789
  if (!this.isRenderSuspended()) {
1792
1790
  instance.view.render();
@@ -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-fcd6191-20240619
29
- * Release date: 11/06/2024 (built at 19/06/2024 07:21:15)
28
+ * Version: 0.0.0-next-3c01700-20240619
29
+ * Release date: 11/06/2024 (built at 19/06/2024 08:00:37)
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: 0.0.0-next-fcd6191-20240619
29
- * Release date: 11/06/2024 (built at 19/06/2024 07:21:15)
28
+ * Version: 0.0.0-next-3c01700-20240619
29
+ * Release date: 11/06/2024 (built at 19/06/2024 08:00:37)
30
30
  */
31
31
  /**
32
32
  * Fix for bootstrap styles