@leankylin-sheet/core 5.2.46 → 5.2.48

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.
@@ -18,6 +18,15 @@ export declare function getSelectionCoordinates(ctx: Context): string[];
18
18
  export declare function getCellsByRange(ctx: Context, range: Selection, options?: CommonOptions): (Cell | null)[][];
19
19
  export declare function getHtmlByRange(ctx: Context, range: Range, options?: CommonOptions): string | null;
20
20
  export declare function setSelection(ctx: Context, range: Range, options: CommonOptions): void;
21
+ export declare function registerExecFunctionExist(ctx: Context, sheet: {
22
+ id?: string;
23
+ }, formulaCells: Array<{
24
+ r: number;
25
+ c: number;
26
+ }>, modified: Array<{
27
+ r: number;
28
+ c: number;
29
+ }>): void;
21
30
  export declare function setCellValuesByRange(ctx: Context, data: any[][], range: SingleRange, cellInput: HTMLDivElement | null, options?: CommonOptions, setMerge?: boolean): void;
22
31
  export declare function setCellValues(ctx: Context, data: any[], cellInput: HTMLDivElement | null): void;
23
32
  export declare function setCellFormatByRange(ctx: Context, attr: keyof Cell, value: any, range: Range | SingleRange, options?: CommonOptions): void;
package/dist/index.esm.js CHANGED
@@ -42667,6 +42667,7 @@ function deepClear(ctx) {
42667
42667
  if (allowEdit === false) {
42668
42668
  return "allowEdit";
42669
42669
  }
42670
+ var hasVChange = false;
42670
42671
  var selection = ctx.luckysheet_select_save;
42671
42672
  if (selection && !_.isEmpty(selection)) {
42672
42673
  var d = getFlowdata(ctx);
@@ -42678,8 +42679,11 @@ function deepClear(ctx) {
42678
42679
  var c2 = selection[s].column[1];
42679
42680
  for (var r = r1; r <= r2; r += 1) {
42680
42681
  for (var c = c1; c <= c2; c += 1) {
42681
- var _d$r2;
42682
+ var _d$r2, _d$r3, _d$r3$c, _d$r4, _d$r4$c;
42682
42683
  var cell = d === null || d === void 0 ? void 0 : (_d$r2 = d[r]) === null || _d$r2 === void 0 ? void 0 : _d$r2[c];
42684
+ if ((d === null || d === void 0 ? void 0 : (_d$r3 = d[r]) === null || _d$r3 === void 0 ? void 0 : (_d$r3$c = _d$r3[c]) === null || _d$r3$c === void 0 ? void 0 : _d$r3$c.v) !== undefined || (d === null || d === void 0 ? void 0 : (_d$r4 = d[r]) === null || _d$r4 === void 0 ? void 0 : (_d$r4$c = _d$r4[c]) === null || _d$r4$c === void 0 ? void 0 : _d$r4$c.f) !== undefined) {
42685
+ hasVChange = true;
42686
+ }
42683
42687
  d[r][c] = null;
42684
42688
  if ((cell === null || cell === void 0 ? void 0 : cell.f) != null) ;
42685
42689
  if (hyperlinkMap && hyperlinkMap["".concat(r, "_").concat(c)]) {
@@ -42689,6 +42693,9 @@ function deepClear(ctx) {
42689
42693
  }
42690
42694
  }
42691
42695
  }
42696
+ if (!hasVChange) {
42697
+ return "success-no-v-change";
42698
+ }
42692
42699
  return "success";
42693
42700
  }
42694
42701
  function deleteSelectedCellText(ctx, deep) {
@@ -42699,6 +42706,7 @@ function deleteSelectedCellText(ctx, deep) {
42699
42706
  if (allowEdit === false) {
42700
42707
  return "allowEdit";
42701
42708
  }
42709
+ var hasVChange = false;
42702
42710
  var selection = ctx.luckysheet_select_save;
42703
42711
  if (selection && !_.isEmpty(selection)) {
42704
42712
  var d = getFlowdata(ctx);
@@ -42725,6 +42733,10 @@ function deleteSelectedCellText(ctx, deep) {
42725
42733
  var _c4 = selection[_s].column[1];
42726
42734
  for (var r = _r3; r <= _r4; r += 1) {
42727
42735
  for (var c = _c3; c <= _c4; c += 1) {
42736
+ var _d$r5, _d$r5$c, _d$r6, _d$r6$c;
42737
+ if ((d === null || d === void 0 ? void 0 : (_d$r5 = d[r]) === null || _d$r5 === void 0 ? void 0 : (_d$r5$c = _d$r5[c]) === null || _d$r5$c === void 0 ? void 0 : _d$r5$c.v) !== undefined || (d === null || d === void 0 ? void 0 : (_d$r6 = d[r]) === null || _d$r6 === void 0 ? void 0 : (_d$r6$c = _d$r6[c]) === null || _d$r6$c === void 0 ? void 0 : _d$r6$c.f) !== undefined) {
42738
+ hasVChange = true;
42739
+ }
42728
42740
  if (_.isPlainObject(d[r][c])) {
42729
42741
  var cell = d[r][c];
42730
42742
  delete cell.m;
@@ -42746,6 +42758,9 @@ function deleteSelectedCellText(ctx, deep) {
42746
42758
  }
42747
42759
  }
42748
42760
  }
42761
+ if (!hasVChange) {
42762
+ return "success-no-v-change";
42763
+ }
42749
42764
  return "success";
42750
42765
  }
42751
42766
  function selectIsOverlap(ctx, range) {
@@ -56197,6 +56212,7 @@ function setCellValueInBatch(ctx, sheet, row, column, value, cellInput, formulaC
56197
56212
  data[row][column] = {};
56198
56213
  }
56199
56214
  var cell = data[row][column];
56215
+ var oldF = cell.f;
56200
56216
  if (value.f != null && value.v == null) {
56201
56217
  curv.f = value.f;
56202
56218
  if (value.ct != null) {
@@ -56204,19 +56220,20 @@ function setCellValueInBatch(ctx, sheet, row, column, value, cellInput, formulaC
56204
56220
  }
56205
56221
  Object.assign(cell, curv);
56206
56222
  if (_.isString(value.f)) {
56207
- formulaCells.push({
56208
- r: row,
56209
- c: column,
56210
- f: value.f,
56211
- ct: value.ct
56212
- });
56223
+ if (value.f !== oldF) {
56224
+ formulaCells.push({
56225
+ r: row,
56226
+ c: column,
56227
+ f: value.f,
56228
+ ct: value.ct
56229
+ });
56230
+ }
56213
56231
  } else {
56214
56232
  updateCell(ctx, row, column, cellInput, curv);
56215
56233
  }
56216
56234
  } else {
56217
56235
  var needupdateFdev = false;
56218
56236
  var needUpdateM = false;
56219
- var oldF = cell.f;
56220
56237
  var nf = value.f;
56221
56238
  var oldV = cell.v;
56222
56239
  var nv = value.v;
@@ -56319,12 +56336,15 @@ function setCellValueInBatch(ctx, sheet, row, column, value, cellInput, formulaC
56319
56336
  data[row][column] = {};
56320
56337
  }
56321
56338
  var _cell = data[row][column];
56339
+ var _oldF = _cell.f;
56322
56340
  _cell.f = text;
56323
- formulaCells.push({
56324
- r: row,
56325
- c: column,
56326
- f: text
56327
- });
56341
+ if (_oldF !== text) {
56342
+ formulaCells.push({
56343
+ r: row,
56344
+ c: column,
56345
+ f: text
56346
+ });
56347
+ }
56328
56348
  } else if (text.substr(0, 5) === "<span") {
56329
56349
  updateCell(ctx, row, column, cellInput, value);
56330
56350
  } else {
@@ -56650,6 +56670,54 @@ function setSelection(ctx, range, options) {
56650
56670
  ctx.luckysheet_select_save = sheet.luckysheet_select_save;
56651
56671
  }
56652
56672
  }
56673
+ function registerExecFunctionExist(ctx, sheet, formulaCells, modified) {
56674
+ var seen = new Set();
56675
+ var exist = [];
56676
+ var pushUnique = function pushUnique(r, c) {
56677
+ var key = "".concat(r, "_").concat(c);
56678
+ if (seen.has(key)) return;
56679
+ seen.add(key);
56680
+ exist.push({
56681
+ r: r,
56682
+ c: c,
56683
+ i: sheet.id
56684
+ });
56685
+ };
56686
+ for (var i = 0; i < formulaCells.length; i += 1) {
56687
+ pushUnique(formulaCells[i].r, formulaCells[i].c);
56688
+ }
56689
+ for (var _i = 0; _i < modified.length; _i += 1) {
56690
+ pushUnique(modified[_i].r, modified[_i].c);
56691
+ }
56692
+ ctx.formulaCache.execFunctionExist = exist;
56693
+ }
56694
+ function isCellValueUnchanged(sheet, r, c, v) {
56695
+ var _sheet$data, _sheet$data$r;
56696
+ if (_typeof(v) === 'object' && !('f' in v) && !('v' in v)) {
56697
+ return true;
56698
+ }
56699
+ var oldCell = (_sheet$data = sheet.data) === null || _sheet$data === void 0 ? void 0 : (_sheet$data$r = _sheet$data[r]) === null || _sheet$data$r === void 0 ? void 0 : _sheet$data$r[c];
56700
+ if (oldCell == null) return false;
56701
+ if (v == null || v.toString().length === 0) return false;
56702
+ var newF;
56703
+ var newV;
56704
+ if (v instanceof Object) {
56705
+ newF = v.f;
56706
+ newV = v.v;
56707
+ } else if (typeof v === "string" && v[0] === "=") {
56708
+ newF = v;
56709
+ } else {
56710
+ newV = v;
56711
+ }
56712
+ var oldF = oldCell.f;
56713
+ if (newF != null || oldF != null) {
56714
+ if (newF !== oldF) return false;
56715
+ if (newV == null) return true;
56716
+ return String(newV) === String(oldCell.v);
56717
+ }
56718
+ if (newV == null) return false;
56719
+ return String(newV) === String(oldCell.v);
56720
+ }
56653
56721
  function setCellValuesByRange(ctx, data, range, cellInput) {
56654
56722
  var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};
56655
56723
  var setMerge = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;
@@ -56722,18 +56790,9 @@ function setCellValuesByRange(ctx, data, range, cellInput) {
56722
56790
  sheet.config = cfg;
56723
56791
  }
56724
56792
  if (modifiedCells.length > 0) {
56725
- ctx.formulaCache.execFunctionExist = formulaCells.map(function (fc) {
56726
- return {
56727
- r: fc.r,
56728
- c: fc.c,
56729
- i: sheet.id
56730
- };
56731
- });
56732
- for (var k = 0; k < modifiedCells.length; k += 1) {
56733
- ctx.formulaCache.execFunctionExist.push(modifiedCells[k]);
56734
- }
56735
- for (var _k = 0; _k < formulaCells.length; _k += 1) {
56736
- var fc = formulaCells[_k];
56793
+ registerExecFunctionExist(ctx, sheet, formulaCells, modifiedCells);
56794
+ for (var k = 0; k < formulaCells.length; k += 1) {
56795
+ var fc = formulaCells[k];
56737
56796
  var v = execfunction(ctx, fc.f, fc.r, fc.c, sheet.id, false, true);
56738
56797
  setCellValue(ctx, fc.r, fc.c, flowdata, {
56739
56798
  v: v[1],
@@ -56781,27 +56840,21 @@ function setCellValues(ctx, data, cellInput) {
56781
56840
  throw SHEET_NOT_FOUND;
56782
56841
  }
56783
56842
  var formulaCells = [];
56843
+ var changedData = [];
56784
56844
  for (var _j = 0; _j < data.length; _j += 1) {
56785
56845
  var _data$_j = data[_j],
56786
56846
  _r = _data$_j.r,
56787
56847
  _c = _data$_j.c,
56788
56848
  _v = _data$_j.v;
56849
+ if (!isCellValueUnchanged(sheet, _r, _c, _v)) {
56850
+ changedData.push(data[_j]);
56851
+ }
56789
56852
  setCellValueInBatch(ctx, sheet, _r, _c, _v, cellInput, formulaCells);
56790
56853
  }
56791
- ctx.formulaCache.execFunctionExist = formulaCells.map(function (fc) {
56792
- return {
56793
- r: fc.r,
56794
- c: fc.c,
56795
- i: sheet.id
56796
- };
56797
- });
56798
- for (var _j2 = 0; _j2 < data.length; _j2 += 1) {
56799
- ctx.formulaCache.execFunctionExist.push({
56800
- r: data[_j2].r,
56801
- c: data[_j2].c,
56802
- i: sheet.id
56803
- });
56854
+ if (formulaCells.length === 0 && changedData.length === 0) {
56855
+ return;
56804
56856
  }
56857
+ registerExecFunctionExist(ctx, sheet, formulaCells, changedData);
56805
56858
  for (var k = 0; k < formulaCells.length; k += 1) {
56806
56859
  var fc = formulaCells[k];
56807
56860
  var val = execfunction(ctx, fc.f, fc.r, fc.c, sheet.id, false, true);
@@ -56940,6 +56993,7 @@ var index = /*#__PURE__*/Object.freeze({
56940
56993
  getCellsByRange: getCellsByRange,
56941
56994
  getHtmlByRange: getHtmlByRange,
56942
56995
  setSelection: setSelection,
56996
+ registerExecFunctionExist: registerExecFunctionExist,
56943
56997
  setCellValuesByRange: setCellValuesByRange,
56944
56998
  setCellValues: setCellValues,
56945
56999
  setCellFormatByRange: setCellFormatByRange,
@@ -57322,9 +57376,11 @@ function handleGlobalKeyDown(ctx, cellInput, fxInput, e, cache, handleUndo, hand
57322
57376
  if (ctx.activeImg != null) {
57323
57377
  removeActiveImage(ctx);
57324
57378
  } else {
57325
- deleteSelectedCellText(ctx);
57379
+ var flag = deleteSelectedCellText(ctx);
57380
+ if (flag === "success") {
57381
+ jfrefreshgrid(ctx, null, undefined);
57382
+ }
57326
57383
  }
57327
- jfrefreshgrid(ctx, null, undefined);
57328
57384
  e.preventDefault();
57329
57385
  } else if (kstr === "ArrowUp" || kstr === "ArrowDown" || kstr === "ArrowLeft" || kstr === "ArrowRight") {
57330
57386
  handleArrowKey(ctx, e);
package/dist/index.js CHANGED
@@ -42677,6 +42677,7 @@ function deepClear(ctx) {
42677
42677
  if (allowEdit === false) {
42678
42678
  return "allowEdit";
42679
42679
  }
42680
+ var hasVChange = false;
42680
42681
  var selection = ctx.luckysheet_select_save;
42681
42682
  if (selection && !___default['default'].isEmpty(selection)) {
42682
42683
  var d = getFlowdata(ctx);
@@ -42688,8 +42689,11 @@ function deepClear(ctx) {
42688
42689
  var c2 = selection[s].column[1];
42689
42690
  for (var r = r1; r <= r2; r += 1) {
42690
42691
  for (var c = c1; c <= c2; c += 1) {
42691
- var _d$r2;
42692
+ var _d$r2, _d$r3, _d$r3$c, _d$r4, _d$r4$c;
42692
42693
  var cell = d === null || d === void 0 ? void 0 : (_d$r2 = d[r]) === null || _d$r2 === void 0 ? void 0 : _d$r2[c];
42694
+ if ((d === null || d === void 0 ? void 0 : (_d$r3 = d[r]) === null || _d$r3 === void 0 ? void 0 : (_d$r3$c = _d$r3[c]) === null || _d$r3$c === void 0 ? void 0 : _d$r3$c.v) !== undefined || (d === null || d === void 0 ? void 0 : (_d$r4 = d[r]) === null || _d$r4 === void 0 ? void 0 : (_d$r4$c = _d$r4[c]) === null || _d$r4$c === void 0 ? void 0 : _d$r4$c.f) !== undefined) {
42695
+ hasVChange = true;
42696
+ }
42693
42697
  d[r][c] = null;
42694
42698
  if ((cell === null || cell === void 0 ? void 0 : cell.f) != null) ;
42695
42699
  if (hyperlinkMap && hyperlinkMap["".concat(r, "_").concat(c)]) {
@@ -42699,6 +42703,9 @@ function deepClear(ctx) {
42699
42703
  }
42700
42704
  }
42701
42705
  }
42706
+ if (!hasVChange) {
42707
+ return "success-no-v-change";
42708
+ }
42702
42709
  return "success";
42703
42710
  }
42704
42711
  function deleteSelectedCellText(ctx, deep) {
@@ -42709,6 +42716,7 @@ function deleteSelectedCellText(ctx, deep) {
42709
42716
  if (allowEdit === false) {
42710
42717
  return "allowEdit";
42711
42718
  }
42719
+ var hasVChange = false;
42712
42720
  var selection = ctx.luckysheet_select_save;
42713
42721
  if (selection && !___default['default'].isEmpty(selection)) {
42714
42722
  var d = getFlowdata(ctx);
@@ -42735,6 +42743,10 @@ function deleteSelectedCellText(ctx, deep) {
42735
42743
  var _c4 = selection[_s].column[1];
42736
42744
  for (var r = _r3; r <= _r4; r += 1) {
42737
42745
  for (var c = _c3; c <= _c4; c += 1) {
42746
+ var _d$r5, _d$r5$c, _d$r6, _d$r6$c;
42747
+ if ((d === null || d === void 0 ? void 0 : (_d$r5 = d[r]) === null || _d$r5 === void 0 ? void 0 : (_d$r5$c = _d$r5[c]) === null || _d$r5$c === void 0 ? void 0 : _d$r5$c.v) !== undefined || (d === null || d === void 0 ? void 0 : (_d$r6 = d[r]) === null || _d$r6 === void 0 ? void 0 : (_d$r6$c = _d$r6[c]) === null || _d$r6$c === void 0 ? void 0 : _d$r6$c.f) !== undefined) {
42748
+ hasVChange = true;
42749
+ }
42738
42750
  if (___default['default'].isPlainObject(d[r][c])) {
42739
42751
  var cell = d[r][c];
42740
42752
  delete cell.m;
@@ -42756,6 +42768,9 @@ function deleteSelectedCellText(ctx, deep) {
42756
42768
  }
42757
42769
  }
42758
42770
  }
42771
+ if (!hasVChange) {
42772
+ return "success-no-v-change";
42773
+ }
42759
42774
  return "success";
42760
42775
  }
42761
42776
  function selectIsOverlap(ctx, range) {
@@ -56207,6 +56222,7 @@ function setCellValueInBatch(ctx, sheet, row, column, value, cellInput, formulaC
56207
56222
  data[row][column] = {};
56208
56223
  }
56209
56224
  var cell = data[row][column];
56225
+ var oldF = cell.f;
56210
56226
  if (value.f != null && value.v == null) {
56211
56227
  curv.f = value.f;
56212
56228
  if (value.ct != null) {
@@ -56214,19 +56230,20 @@ function setCellValueInBatch(ctx, sheet, row, column, value, cellInput, formulaC
56214
56230
  }
56215
56231
  Object.assign(cell, curv);
56216
56232
  if (___default['default'].isString(value.f)) {
56217
- formulaCells.push({
56218
- r: row,
56219
- c: column,
56220
- f: value.f,
56221
- ct: value.ct
56222
- });
56233
+ if (value.f !== oldF) {
56234
+ formulaCells.push({
56235
+ r: row,
56236
+ c: column,
56237
+ f: value.f,
56238
+ ct: value.ct
56239
+ });
56240
+ }
56223
56241
  } else {
56224
56242
  updateCell(ctx, row, column, cellInput, curv);
56225
56243
  }
56226
56244
  } else {
56227
56245
  var needupdateFdev = false;
56228
56246
  var needUpdateM = false;
56229
- var oldF = cell.f;
56230
56247
  var nf = value.f;
56231
56248
  var oldV = cell.v;
56232
56249
  var nv = value.v;
@@ -56329,12 +56346,15 @@ function setCellValueInBatch(ctx, sheet, row, column, value, cellInput, formulaC
56329
56346
  data[row][column] = {};
56330
56347
  }
56331
56348
  var _cell = data[row][column];
56349
+ var _oldF = _cell.f;
56332
56350
  _cell.f = text;
56333
- formulaCells.push({
56334
- r: row,
56335
- c: column,
56336
- f: text
56337
- });
56351
+ if (_oldF !== text) {
56352
+ formulaCells.push({
56353
+ r: row,
56354
+ c: column,
56355
+ f: text
56356
+ });
56357
+ }
56338
56358
  } else if (text.substr(0, 5) === "<span") {
56339
56359
  updateCell(ctx, row, column, cellInput, value);
56340
56360
  } else {
@@ -56660,6 +56680,54 @@ function setSelection(ctx, range, options) {
56660
56680
  ctx.luckysheet_select_save = sheet.luckysheet_select_save;
56661
56681
  }
56662
56682
  }
56683
+ function registerExecFunctionExist(ctx, sheet, formulaCells, modified) {
56684
+ var seen = new Set();
56685
+ var exist = [];
56686
+ var pushUnique = function pushUnique(r, c) {
56687
+ var key = "".concat(r, "_").concat(c);
56688
+ if (seen.has(key)) return;
56689
+ seen.add(key);
56690
+ exist.push({
56691
+ r: r,
56692
+ c: c,
56693
+ i: sheet.id
56694
+ });
56695
+ };
56696
+ for (var i = 0; i < formulaCells.length; i += 1) {
56697
+ pushUnique(formulaCells[i].r, formulaCells[i].c);
56698
+ }
56699
+ for (var _i = 0; _i < modified.length; _i += 1) {
56700
+ pushUnique(modified[_i].r, modified[_i].c);
56701
+ }
56702
+ ctx.formulaCache.execFunctionExist = exist;
56703
+ }
56704
+ function isCellValueUnchanged(sheet, r, c, v) {
56705
+ var _sheet$data, _sheet$data$r;
56706
+ if (_typeof(v) === 'object' && !('f' in v) && !('v' in v)) {
56707
+ return true;
56708
+ }
56709
+ var oldCell = (_sheet$data = sheet.data) === null || _sheet$data === void 0 ? void 0 : (_sheet$data$r = _sheet$data[r]) === null || _sheet$data$r === void 0 ? void 0 : _sheet$data$r[c];
56710
+ if (oldCell == null) return false;
56711
+ if (v == null || v.toString().length === 0) return false;
56712
+ var newF;
56713
+ var newV;
56714
+ if (v instanceof Object) {
56715
+ newF = v.f;
56716
+ newV = v.v;
56717
+ } else if (typeof v === "string" && v[0] === "=") {
56718
+ newF = v;
56719
+ } else {
56720
+ newV = v;
56721
+ }
56722
+ var oldF = oldCell.f;
56723
+ if (newF != null || oldF != null) {
56724
+ if (newF !== oldF) return false;
56725
+ if (newV == null) return true;
56726
+ return String(newV) === String(oldCell.v);
56727
+ }
56728
+ if (newV == null) return false;
56729
+ return String(newV) === String(oldCell.v);
56730
+ }
56663
56731
  function setCellValuesByRange(ctx, data, range, cellInput) {
56664
56732
  var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};
56665
56733
  var setMerge = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;
@@ -56732,18 +56800,9 @@ function setCellValuesByRange(ctx, data, range, cellInput) {
56732
56800
  sheet.config = cfg;
56733
56801
  }
56734
56802
  if (modifiedCells.length > 0) {
56735
- ctx.formulaCache.execFunctionExist = formulaCells.map(function (fc) {
56736
- return {
56737
- r: fc.r,
56738
- c: fc.c,
56739
- i: sheet.id
56740
- };
56741
- });
56742
- for (var k = 0; k < modifiedCells.length; k += 1) {
56743
- ctx.formulaCache.execFunctionExist.push(modifiedCells[k]);
56744
- }
56745
- for (var _k = 0; _k < formulaCells.length; _k += 1) {
56746
- var fc = formulaCells[_k];
56803
+ registerExecFunctionExist(ctx, sheet, formulaCells, modifiedCells);
56804
+ for (var k = 0; k < formulaCells.length; k += 1) {
56805
+ var fc = formulaCells[k];
56747
56806
  var v = execfunction(ctx, fc.f, fc.r, fc.c, sheet.id, false, true);
56748
56807
  setCellValue(ctx, fc.r, fc.c, flowdata, {
56749
56808
  v: v[1],
@@ -56791,27 +56850,21 @@ function setCellValues(ctx, data, cellInput) {
56791
56850
  throw SHEET_NOT_FOUND;
56792
56851
  }
56793
56852
  var formulaCells = [];
56853
+ var changedData = [];
56794
56854
  for (var _j = 0; _j < data.length; _j += 1) {
56795
56855
  var _data$_j = data[_j],
56796
56856
  _r = _data$_j.r,
56797
56857
  _c = _data$_j.c,
56798
56858
  _v = _data$_j.v;
56859
+ if (!isCellValueUnchanged(sheet, _r, _c, _v)) {
56860
+ changedData.push(data[_j]);
56861
+ }
56799
56862
  setCellValueInBatch(ctx, sheet, _r, _c, _v, cellInput, formulaCells);
56800
56863
  }
56801
- ctx.formulaCache.execFunctionExist = formulaCells.map(function (fc) {
56802
- return {
56803
- r: fc.r,
56804
- c: fc.c,
56805
- i: sheet.id
56806
- };
56807
- });
56808
- for (var _j2 = 0; _j2 < data.length; _j2 += 1) {
56809
- ctx.formulaCache.execFunctionExist.push({
56810
- r: data[_j2].r,
56811
- c: data[_j2].c,
56812
- i: sheet.id
56813
- });
56864
+ if (formulaCells.length === 0 && changedData.length === 0) {
56865
+ return;
56814
56866
  }
56867
+ registerExecFunctionExist(ctx, sheet, formulaCells, changedData);
56815
56868
  for (var k = 0; k < formulaCells.length; k += 1) {
56816
56869
  var fc = formulaCells[k];
56817
56870
  var val = execfunction(ctx, fc.f, fc.r, fc.c, sheet.id, false, true);
@@ -56950,6 +57003,7 @@ var index = /*#__PURE__*/Object.freeze({
56950
57003
  getCellsByRange: getCellsByRange,
56951
57004
  getHtmlByRange: getHtmlByRange,
56952
57005
  setSelection: setSelection,
57006
+ registerExecFunctionExist: registerExecFunctionExist,
56953
57007
  setCellValuesByRange: setCellValuesByRange,
56954
57008
  setCellValues: setCellValues,
56955
57009
  setCellFormatByRange: setCellFormatByRange,
@@ -57332,9 +57386,11 @@ function handleGlobalKeyDown(ctx, cellInput, fxInput, e, cache, handleUndo, hand
57332
57386
  if (ctx.activeImg != null) {
57333
57387
  removeActiveImage(ctx);
57334
57388
  } else {
57335
- deleteSelectedCellText(ctx);
57389
+ var flag = deleteSelectedCellText(ctx);
57390
+ if (flag === "success") {
57391
+ jfrefreshgrid(ctx, null, undefined);
57392
+ }
57336
57393
  }
57337
- jfrefreshgrid(ctx, null, undefined);
57338
57394
  e.preventDefault();
57339
57395
  } else if (kstr === "ArrowUp" || kstr === "ArrowDown" || kstr === "ArrowLeft" || kstr === "ArrowRight") {
57340
57396
  handleArrowKey(ctx, e);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leankylin-sheet/core",
3
- "version": "5.2.46",
3
+ "version": "5.2.48",
4
4
  "main": "dist/index.js",
5
5
  "module": "dist/index.esm.js",
6
6
  "typings": "dist/index.d.ts",
@@ -13,7 +13,7 @@
13
13
  "build": "father-build"
14
14
  },
15
15
  "dependencies": {
16
- "@leankylin-sheet/formula-parser": "5.2.46",
16
+ "@leankylin-sheet/formula-parser": "5.2.48",
17
17
  "dayjs": "^1.11.0",
18
18
  "immer": "^9.0.12",
19
19
  "lodash": "^4.17.21",