@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.
- package/dist/api/range.d.ts +9 -0
- package/dist/index.esm.js +96 -40
- package/dist/index.js +96 -40
- package/package.json +2 -2
package/dist/api/range.d.ts
CHANGED
|
@@ -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
|
-
|
|
56208
|
-
|
|
56209
|
-
|
|
56210
|
-
|
|
56211
|
-
|
|
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
|
-
|
|
56324
|
-
|
|
56325
|
-
|
|
56326
|
-
|
|
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
|
|
56726
|
-
|
|
56727
|
-
|
|
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
|
-
|
|
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
|
-
|
|
56218
|
-
|
|
56219
|
-
|
|
56220
|
-
|
|
56221
|
-
|
|
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
|
-
|
|
56334
|
-
|
|
56335
|
-
|
|
56336
|
-
|
|
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
|
|
56736
|
-
|
|
56737
|
-
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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",
|