@leankylin-sheet/core 6.0.3 → 7.0.1
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 +1 -1
- package/dist/index.esm.js +76 -49
- package/dist/index.js +76 -49
- package/dist/modules/formula.d.ts +1 -0
- package/package.json +2 -2
package/dist/api/range.d.ts
CHANGED
|
@@ -28,5 +28,5 @@ export declare function registerExecFunctionExist(ctx: Context, sheet: {
|
|
|
28
28
|
c: number;
|
|
29
29
|
}>): void;
|
|
30
30
|
export declare function setCellValuesByRange(ctx: Context, data: any[][], range: SingleRange, cellInput: HTMLDivElement | null, options?: CommonOptions, setMerge?: boolean): void;
|
|
31
|
-
export declare function setCellValues(ctx: Context, data: any[], cellInput: HTMLDivElement | null): void;
|
|
31
|
+
export declare function setCellValues(ctx: Context, data: any[], cellInput: HTMLDivElement | null, skipCalcDev?: boolean): void;
|
|
32
32
|
export declare function setCellFormatByRange(ctx: Context, attr: keyof Cell, value: any, range: Range | SingleRange, options?: CommonOptions): void;
|
package/dist/index.esm.js
CHANGED
|
@@ -35581,6 +35581,7 @@ var FormulaCache = /*#__PURE__*/function () {
|
|
|
35581
35581
|
this.functionlistMap = void 0;
|
|
35582
35582
|
this.execFunctionExist = void 0;
|
|
35583
35583
|
this.execFunctionGlobalData = void 0;
|
|
35584
|
+
this._lastDataRowCache = null;
|
|
35584
35585
|
var that = this;
|
|
35585
35586
|
this.data_parm_index = 0;
|
|
35586
35587
|
this.selectingRangeIndex = -1;
|
|
@@ -35614,8 +35615,13 @@ var FormulaCache = /*#__PURE__*/function () {
|
|
|
35614
35615
|
startRow = 0;
|
|
35615
35616
|
}
|
|
35616
35617
|
if (endRow === -1) {
|
|
35617
|
-
var
|
|
35618
|
-
|
|
35618
|
+
var sheetCache = that._lastDataRowCache;
|
|
35619
|
+
if (sheetCache && sheetCache[id] !== undefined) {
|
|
35620
|
+
endRow = sheetCache[id];
|
|
35621
|
+
} else {
|
|
35622
|
+
var _flowdata$length;
|
|
35623
|
+
endRow = (_flowdata$length = flowdata === null || flowdata === void 0 ? void 0 : flowdata.length) !== null && _flowdata$length !== void 0 ? _flowdata$length : 0;
|
|
35624
|
+
}
|
|
35619
35625
|
}
|
|
35620
35626
|
if (startCol === -1) {
|
|
35621
35627
|
startCol = 0;
|
|
@@ -35754,6 +35760,7 @@ function getcellrange(ctx, txt, formulaId) {
|
|
|
35754
35760
|
return true;
|
|
35755
35761
|
});
|
|
35756
35762
|
} else {
|
|
35763
|
+
var _ctx$active_f;
|
|
35757
35764
|
var _i = formulaId;
|
|
35758
35765
|
if (_.isNil(_i)) {
|
|
35759
35766
|
_i = ctx.currentSheetId;
|
|
@@ -35766,7 +35773,7 @@ function getcellrange(ctx, txt, formulaId) {
|
|
|
35766
35773
|
return null;
|
|
35767
35774
|
}
|
|
35768
35775
|
sheettxt = luckysheetfile[index].name;
|
|
35769
|
-
sheetId = luckysheetfile[index].id;
|
|
35776
|
+
sheetId = ((_ctx$active_f = ctx.active_f) === null || _ctx$active_f === void 0 ? void 0 : _ctx$active_f.sheetId) || luckysheetfile[index].id;
|
|
35770
35777
|
sheetdata = flowdata;
|
|
35771
35778
|
rangetxt = txt;
|
|
35772
35779
|
}
|
|
@@ -36594,17 +36601,31 @@ function execFunctionGroup(ctx, origin_r, origin_c, value, id, data) {
|
|
|
36594
36601
|
}
|
|
36595
36602
|
formulaRunList.reverse();
|
|
36596
36603
|
console.timeEnd('execFunctionGroup-before');
|
|
36604
|
+
var lastDataRowSheets = Object.create(null);
|
|
36605
|
+
for (var _i14 = 0; _i14 < formulaRunList.length; _i14++) {
|
|
36606
|
+
var sheetId = formulaRunList[_i14].id;
|
|
36607
|
+
if (lastDataRowSheets[sheetId] !== undefined) continue;
|
|
36608
|
+
var fd = getFlowdata(ctx, sheetId);
|
|
36609
|
+
var lastDataRow = 0;
|
|
36610
|
+
if (fd) {
|
|
36611
|
+
for (var r = fd.length - 1; r >= 0; r--) {
|
|
36612
|
+
if (fd[r] && fd[r].join('')) {
|
|
36613
|
+
lastDataRow = r;
|
|
36614
|
+
break;
|
|
36615
|
+
}
|
|
36616
|
+
}
|
|
36617
|
+
}
|
|
36618
|
+
lastDataRowSheets[sheetId] = lastDataRow;
|
|
36619
|
+
}
|
|
36620
|
+
ctx.formulaCache._lastDataRowCache = lastDataRowSheets;
|
|
36597
36621
|
console.time('formulaRunList');
|
|
36598
36622
|
console.log('formulaRunList', formulaRunList);
|
|
36599
|
-
var
|
|
36600
|
-
|
|
36601
|
-
for (var _i14 = 0; _i14 < formulaRunList.length; _i14 += 1) {
|
|
36602
|
-
var formulaCell = formulaRunList[_i14];
|
|
36623
|
+
for (var _i15 = 0; _i15 < formulaRunList.length; _i15 += 1) {
|
|
36624
|
+
var formulaCell = formulaRunList[_i15];
|
|
36603
36625
|
if (formulaCell.level === Math.max) {
|
|
36604
36626
|
continue;
|
|
36605
36627
|
}
|
|
36606
36628
|
var calc_funcStr = formulaCell.calc_funcStr;
|
|
36607
|
-
var sTime = +new Date();
|
|
36608
36629
|
var v = execfunction(ctx, calc_funcStr, formulaCell.r, formulaCell.c, formulaCell.id, false, notInsertFunc);
|
|
36609
36630
|
ctx.groupValuesRefreshData.push({
|
|
36610
36631
|
r: formulaCell.r,
|
|
@@ -36618,12 +36639,9 @@ function execFunctionGroup(ctx, origin_r, origin_c, value, id, data) {
|
|
|
36618
36639
|
v: v[1],
|
|
36619
36640
|
f: v[2]
|
|
36620
36641
|
};
|
|
36621
|
-
var eTime = +new Date();
|
|
36622
|
-
map[calc_funcStr] = eTime - sTime;
|
|
36623
36642
|
}
|
|
36624
|
-
var eeTime = +new Date();
|
|
36625
|
-
console.log('map', map, eeTime - ssTime);
|
|
36626
36643
|
console.timeEnd('formulaRunList');
|
|
36644
|
+
ctx.formulaCache._lastDataRowCache = null;
|
|
36627
36645
|
ctx.formulaCache.execFunctionExist = undefined;
|
|
36628
36646
|
}
|
|
36629
36647
|
function findrangeindex(ctx, v, vp) {
|
|
@@ -36637,26 +36655,26 @@ function findrangeindex(ctx, v, vp) {
|
|
|
36637
36655
|
var vplen = vp_a.length;
|
|
36638
36656
|
var vlen = v_a.length;
|
|
36639
36657
|
if (vplen === vlen) {
|
|
36640
|
-
var
|
|
36641
|
-
var p = vp_a[
|
|
36642
|
-
var n = v_a[
|
|
36658
|
+
var _i16 = pfri[0];
|
|
36659
|
+
var p = vp_a[_i16];
|
|
36660
|
+
var n = v_a[_i16];
|
|
36643
36661
|
if (_.isNil(p)) {
|
|
36644
|
-
if (vp_a.length <=
|
|
36662
|
+
if (vp_a.length <= _i16) {
|
|
36645
36663
|
pfri = [vp_a.length - 1, vp_a.length - 1];
|
|
36646
|
-
} else if (v_a.length <=
|
|
36664
|
+
} else if (v_a.length <= _i16) {
|
|
36647
36665
|
pfri = [v_a.length - 1, v_a.length - 1];
|
|
36648
36666
|
}
|
|
36649
36667
|
return pfri;
|
|
36650
36668
|
}
|
|
36651
36669
|
if (p.length === n.length) {
|
|
36652
|
-
if (!_.isNil(vp_a[
|
|
36670
|
+
if (!_.isNil(vp_a[_i16 + 1]) && !_.isNil(v_a[_i16 + 1]) && vp_a[_i16 + 1].length < v_a[_i16 + 1].length) {
|
|
36653
36671
|
pfri[0] += 1;
|
|
36654
36672
|
pfri[1] = 1;
|
|
36655
36673
|
}
|
|
36656
36674
|
return pfri;
|
|
36657
36675
|
}
|
|
36658
36676
|
if (p.length > n.length) {
|
|
36659
|
-
if (!_.isNil(p) && !_.isNil(v_a[
|
|
36677
|
+
if (!_.isNil(p) && !_.isNil(v_a[_i16 + 1]) && v_a[_i16 + 1].substring(0, 1) === '"' && (p.indexOf("{") > -1 || p.indexOf("}") > -1)) {
|
|
36660
36678
|
pfri[0] += 1;
|
|
36661
36679
|
pfri[1] = 1;
|
|
36662
36680
|
}
|
|
@@ -36669,34 +36687,34 @@ function findrangeindex(ctx, v, vp) {
|
|
|
36669
36687
|
return pfri;
|
|
36670
36688
|
}
|
|
36671
36689
|
} else if (vplen > vlen) {
|
|
36672
|
-
var
|
|
36673
|
-
var _p = vp_a[
|
|
36674
|
-
var _n = v_a[
|
|
36690
|
+
var _i17 = pfri[0];
|
|
36691
|
+
var _p = vp_a[_i17];
|
|
36692
|
+
var _n = v_a[_i17];
|
|
36675
36693
|
if (_.isNil(_n)) {
|
|
36676
|
-
if (v_a[
|
|
36694
|
+
if (v_a[_i17 - 1].indexOf("{") > -1) {
|
|
36677
36695
|
pfri[0] -= 1;
|
|
36678
|
-
var start = v_a[
|
|
36696
|
+
var start = v_a[_i17 - 1].search("{");
|
|
36679
36697
|
pfri[1] += start;
|
|
36680
36698
|
} else {
|
|
36681
36699
|
pfri[0] = 0;
|
|
36682
36700
|
pfri[1] = 0;
|
|
36683
36701
|
}
|
|
36684
36702
|
} else if (_p.length === _n.length) {
|
|
36685
|
-
if (!_.isNil(v_a[
|
|
36703
|
+
if (!_.isNil(v_a[_i17 + 1]) && (v_a[_i17 + 1].substring(0, 1) === '"' || v_a[_i17 + 1].substring(0, 1) === "{" || v_a[_i17 + 1].substring(0, 1) === "}")) {
|
|
36686
36704
|
pfri[0] += 1;
|
|
36687
36705
|
pfri[1] = 1;
|
|
36688
|
-
} else if (!_.isNil(_p) && _p.length > 2 && _p.substring(0, 1) === '"' && _p.substring(_p.length - 1, 1) === '"') ; else if (!_.isNil(v_a[
|
|
36706
|
+
} else if (!_.isNil(_p) && _p.length > 2 && _p.substring(0, 1) === '"' && _p.substring(_p.length - 1, 1) === '"') ; else if (!_.isNil(v_a[_i17]) && v_a[_i17] === '")') {
|
|
36689
36707
|
pfri[1] = 1;
|
|
36690
|
-
} else if (!_.isNil(v_a[
|
|
36708
|
+
} else if (!_.isNil(v_a[_i17]) && v_a[_i17] === '"}') {
|
|
36691
36709
|
pfri[1] = 1;
|
|
36692
|
-
} else if (!_.isNil(v_a[
|
|
36710
|
+
} else if (!_.isNil(v_a[_i17]) && v_a[_i17] === "{)") {
|
|
36693
36711
|
pfri[1] = 1;
|
|
36694
36712
|
} else {
|
|
36695
36713
|
pfri[1] = _n.length;
|
|
36696
36714
|
}
|
|
36697
36715
|
return pfri;
|
|
36698
36716
|
} else if (_p.length > _n.length) {
|
|
36699
|
-
if (!_.isNil(v_a[
|
|
36717
|
+
if (!_.isNil(v_a[_i17 + 1]) && (v_a[_i17 + 1].substring(0, 1) === '"' || v_a[_i17 + 1].substring(0, 1) === "{" || v_a[_i17 + 1].substring(0, 1) === "}")) {
|
|
36700
36718
|
pfri[0] += 1;
|
|
36701
36719
|
pfri[1] = 1;
|
|
36702
36720
|
}
|
|
@@ -36706,17 +36724,17 @@ function findrangeindex(ctx, v, vp) {
|
|
|
36706
36724
|
}
|
|
36707
36725
|
return pfri;
|
|
36708
36726
|
} else if (vplen < vlen) {
|
|
36709
|
-
var
|
|
36710
|
-
var _p2 = vp_a[
|
|
36711
|
-
var _n2 = v_a[
|
|
36727
|
+
var _i18 = pfri[0];
|
|
36728
|
+
var _p2 = vp_a[_i18];
|
|
36729
|
+
var _n2 = v_a[_i18];
|
|
36712
36730
|
if (_.isNil(_p2)) {
|
|
36713
36731
|
pfri[0] = v_a.length - 1;
|
|
36714
36732
|
var last = v_a[pfri[0]];
|
|
36715
36733
|
pfri[1] = _.isNil(last) ? 1 : last.length;
|
|
36716
36734
|
} else if (_p2.length === _n2.length) {
|
|
36717
|
-
if (vp_a[
|
|
36735
|
+
if (vp_a[_i18 + 1] != null && (vp_a[_i18 + 1].substring(0, 1) === '"' || vp_a[_i18 + 1].substring(0, 1) === "{" || vp_a[_i18 + 1].substring(0, 1) === "}")) {
|
|
36718
36736
|
pfri[1] = _n2.length;
|
|
36719
|
-
} else if (!_.isNil(v_a[
|
|
36737
|
+
} else if (!_.isNil(v_a[_i18 + 1]) && v_a[_i18 + 1].substring(0, 1) === '"' && (v_a[_i18 + 1].substring(0, 1) === "{" || v_a[_i18 + 1].substring(0, 1) === "}")) {
|
|
36720
36738
|
pfri[0] += 1;
|
|
36721
36739
|
pfri[1] = 1;
|
|
36722
36740
|
} else if (!_.isNil(_n2) && _n2.substring(0, 1) === '"' && _n2.substring(_n2.length - 1, 1) === '"' && _p2.substring(0, 1) === '"' && _p2.substring(_p2.length - 1, 1) === ")") {
|
|
@@ -36726,7 +36744,7 @@ function findrangeindex(ctx, v, vp) {
|
|
|
36726
36744
|
} else {
|
|
36727
36745
|
pfri[0] = pfri[0] + vlen - vplen;
|
|
36728
36746
|
if (v_a.length > vp_a.length) {
|
|
36729
|
-
pfri[1] = v_a[
|
|
36747
|
+
pfri[1] = v_a[_i18 + 1].length;
|
|
36730
36748
|
} else {
|
|
36731
36749
|
pfri[1] = 1;
|
|
36732
36750
|
}
|
|
@@ -36735,17 +36753,17 @@ function findrangeindex(ctx, v, vp) {
|
|
|
36735
36753
|
} else if (_p2.length > _n2.length) {
|
|
36736
36754
|
if (!_.isNil(_p2) && _p2.substring(0, 1) === '"') {
|
|
36737
36755
|
pfri[1] = _n2.length;
|
|
36738
|
-
} else if (_.isNil(v_a[
|
|
36756
|
+
} else if (_.isNil(v_a[_i18 + 1]) && /{.*?}/.test(v_a[_i18 + 1])) {
|
|
36739
36757
|
pfri[0] += 1;
|
|
36740
|
-
pfri[1] = v_a[
|
|
36741
|
-
} else if (!_.isNil(_p2) && v_a[
|
|
36758
|
+
pfri[1] = v_a[_i18 + 1].length;
|
|
36759
|
+
} else if (!_.isNil(_p2) && v_a[_i18 + 1].substring(0, 1) === '"' && (_p2.indexOf("{") > -1 || _p2.indexOf("}") > -1)) {
|
|
36742
36760
|
pfri[0] += 1;
|
|
36743
36761
|
pfri[1] = 1;
|
|
36744
36762
|
} else if (!_.isNil(_p2) && (_p2.indexOf("{") > -1 || _p2.indexOf("}") > -1)) ; else if (!_.isNil(_p2) && !_.startsWith(_p2[0], "=") && _.startsWith(_n2, "=")) {
|
|
36745
36763
|
return [vlen - 1, v_a[vlen - 1].length];
|
|
36746
36764
|
} else {
|
|
36747
36765
|
pfri[0] = pfri[0] + vlen - vplen - 1;
|
|
36748
|
-
pfri[1] = v_a[(
|
|
36766
|
+
pfri[1] = v_a[(_i18 || 1) - 1].length;
|
|
36749
36767
|
}
|
|
36750
36768
|
return pfri;
|
|
36751
36769
|
} else if (_p2.length < _n2.length) {
|
|
@@ -36792,9 +36810,9 @@ function locateTextOffset(node, offset) {
|
|
|
36792
36810
|
text = walker.nextNode();
|
|
36793
36811
|
}
|
|
36794
36812
|
var acc = 0;
|
|
36795
|
-
for (var
|
|
36813
|
+
for (var _i19 = 0; _i19 < texts.length; _i19 += 1) {
|
|
36796
36814
|
var _item$textContent$len, _item$textContent;
|
|
36797
|
-
var item = texts[
|
|
36815
|
+
var item = texts[_i19];
|
|
36798
36816
|
var len = (_item$textContent$len = (_item$textContent = item.textContent) === null || _item$textContent === void 0 ? void 0 : _item$textContent.length) !== null && _item$textContent$len !== void 0 ? _item$textContent$len : 0;
|
|
36799
36817
|
if (offset <= acc + len) {
|
|
36800
36818
|
return [item, Math.max(0, offset - acc)];
|
|
@@ -36880,8 +36898,8 @@ function searchFunction(ctx, searchtxt) {
|
|
|
36880
36898
|
var f = [];
|
|
36881
36899
|
var s = [];
|
|
36882
36900
|
var t = [];
|
|
36883
|
-
for (var
|
|
36884
|
-
var item = functionlist[
|
|
36901
|
+
for (var _i20 = 0; _i20 < functionlist.length; _i20 += 1) {
|
|
36902
|
+
var item = functionlist[_i20];
|
|
36885
36903
|
var n = item.n;
|
|
36886
36904
|
if (n === searchtxt) {
|
|
36887
36905
|
f.unshift(item);
|
|
@@ -36937,8 +36955,8 @@ function helpFunctionExe($editer, currSelection, ctx) {
|
|
|
36937
36955
|
var _locale2 = locale(ctx),
|
|
36938
36956
|
functionlist = _locale2.functionlist;
|
|
36939
36957
|
if (_.isEmpty(ctx.formulaCache.functionlistMap)) {
|
|
36940
|
-
for (var
|
|
36941
|
-
ctx.formulaCache.functionlistMap[functionlist[
|
|
36958
|
+
for (var _i21 = 0; _i21 < functionlist.length; _i21 += 1) {
|
|
36959
|
+
ctx.formulaCache.functionlistMap[functionlist[_i21].n] = functionlist[_i21];
|
|
36942
36960
|
}
|
|
36943
36961
|
}
|
|
36944
36962
|
if (!currSelection) {
|
|
@@ -37571,7 +37589,7 @@ function functionStrChange(txt, type, rc, orient, stindex, step, sheetName, isCu
|
|
|
37571
37589
|
return function_str;
|
|
37572
37590
|
}
|
|
37573
37591
|
function rangeSetValue(ctx, cellInput, selected, fxInput) {
|
|
37574
|
-
var _document$activeEleme, _ctx$
|
|
37592
|
+
var _document$activeEleme, _ctx$active_f2;
|
|
37575
37593
|
var $editor = cellInput;
|
|
37576
37594
|
var $copyTo = fxInput;
|
|
37577
37595
|
if (((_document$activeEleme = document.activeElement) === null || _document$activeEleme === void 0 ? void 0 : _document$activeEleme.id) === "luckysheet-functionbox-cell") {
|
|
@@ -37585,7 +37603,7 @@ function rangeSetValue(ctx, cellInput, selected, fxInput) {
|
|
|
37585
37603
|
var range = "";
|
|
37586
37604
|
var rf = selected.row[0];
|
|
37587
37605
|
var cf = selected.column[0];
|
|
37588
|
-
var sheetId = ((_ctx$
|
|
37606
|
+
var sheetId = ((_ctx$active_f2 = ctx.active_f) === null || _ctx$active_f2 === void 0 ? void 0 : _ctx$active_f2.sheetId) || ctx.formulaCache.rangetosheet;
|
|
37589
37607
|
if (ctx.config.merge != null && "".concat(rf, "_").concat(cf) in ctx.config.merge) {
|
|
37590
37608
|
range = getRangetxt(ctx, ctx.currentSheetId, {
|
|
37591
37609
|
column: [cf, cf],
|
|
@@ -47615,6 +47633,9 @@ function setNextSheet(draftCtx, nextSheetId, refs) {
|
|
|
47615
47633
|
draftCtx.zoomRatio = sheet.zoomRatio || 1;
|
|
47616
47634
|
cancelActiveImgItem(draftCtx, refs.globalCache);
|
|
47617
47635
|
cancelNormalSelected(draftCtx);
|
|
47636
|
+
if (draftCtx.active_f) {
|
|
47637
|
+
createRangeHightlight(draftCtx, refs.cellInput.current.innerHTML);
|
|
47638
|
+
}
|
|
47618
47639
|
if (isBack) {
|
|
47619
47640
|
draftCtx.luckysheetCellUpdate = luckysheetCellUpdate;
|
|
47620
47641
|
draftCtx.active_f = undefined;
|
|
@@ -57195,6 +57216,7 @@ function setCellValuesByRange(ctx, data, range, cellInput) {
|
|
|
57195
57216
|
}
|
|
57196
57217
|
function setCellValues(ctx, data, cellInput) {
|
|
57197
57218
|
var _data$, _data$2;
|
|
57219
|
+
var skipCalcDev = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
|
57198
57220
|
if (data == null) {
|
|
57199
57221
|
throw INVALID_PARAMS;
|
|
57200
57222
|
}
|
|
@@ -57217,7 +57239,12 @@ function setCellValues(ctx, data, cellInput) {
|
|
|
57217
57239
|
c = _data$j.c,
|
|
57218
57240
|
v = _data$j.v,
|
|
57219
57241
|
ops = _data$j.ops;
|
|
57220
|
-
|
|
57242
|
+
if (skipCalcDev) {
|
|
57243
|
+
var _sheet = getSheet(ctx, ops || {});
|
|
57244
|
+
setCellValueInBatch(ctx, _sheet, r, c, v, cellInput, []);
|
|
57245
|
+
} else {
|
|
57246
|
+
setCellValue$1(ctx, r, c, v, cellInput, ops);
|
|
57247
|
+
}
|
|
57221
57248
|
}
|
|
57222
57249
|
cancelNormalSelected(ctx);
|
|
57223
57250
|
return;
|
|
@@ -57239,7 +57266,7 @@ function setCellValues(ctx, data, cellInput) {
|
|
|
57239
57266
|
}
|
|
57240
57267
|
setCellValueInBatch(ctx, sheet, _r, _c, _v, cellInput, formulaCells);
|
|
57241
57268
|
}
|
|
57242
|
-
if (formulaCells.length === 0 && changedData.length === 0) {
|
|
57269
|
+
if (skipCalcDev || formulaCells.length === 0 && changedData.length === 0) {
|
|
57243
57270
|
cancelNormalSelected(ctx);
|
|
57244
57271
|
return;
|
|
57245
57272
|
}
|
package/dist/index.js
CHANGED
|
@@ -35591,6 +35591,7 @@ var FormulaCache = /*#__PURE__*/function () {
|
|
|
35591
35591
|
this.functionlistMap = void 0;
|
|
35592
35592
|
this.execFunctionExist = void 0;
|
|
35593
35593
|
this.execFunctionGlobalData = void 0;
|
|
35594
|
+
this._lastDataRowCache = null;
|
|
35594
35595
|
var that = this;
|
|
35595
35596
|
this.data_parm_index = 0;
|
|
35596
35597
|
this.selectingRangeIndex = -1;
|
|
@@ -35624,8 +35625,13 @@ var FormulaCache = /*#__PURE__*/function () {
|
|
|
35624
35625
|
startRow = 0;
|
|
35625
35626
|
}
|
|
35626
35627
|
if (endRow === -1) {
|
|
35627
|
-
var
|
|
35628
|
-
|
|
35628
|
+
var sheetCache = that._lastDataRowCache;
|
|
35629
|
+
if (sheetCache && sheetCache[id] !== undefined) {
|
|
35630
|
+
endRow = sheetCache[id];
|
|
35631
|
+
} else {
|
|
35632
|
+
var _flowdata$length;
|
|
35633
|
+
endRow = (_flowdata$length = flowdata === null || flowdata === void 0 ? void 0 : flowdata.length) !== null && _flowdata$length !== void 0 ? _flowdata$length : 0;
|
|
35634
|
+
}
|
|
35629
35635
|
}
|
|
35630
35636
|
if (startCol === -1) {
|
|
35631
35637
|
startCol = 0;
|
|
@@ -35764,6 +35770,7 @@ function getcellrange(ctx, txt, formulaId) {
|
|
|
35764
35770
|
return true;
|
|
35765
35771
|
});
|
|
35766
35772
|
} else {
|
|
35773
|
+
var _ctx$active_f;
|
|
35767
35774
|
var _i = formulaId;
|
|
35768
35775
|
if (___default['default'].isNil(_i)) {
|
|
35769
35776
|
_i = ctx.currentSheetId;
|
|
@@ -35776,7 +35783,7 @@ function getcellrange(ctx, txt, formulaId) {
|
|
|
35776
35783
|
return null;
|
|
35777
35784
|
}
|
|
35778
35785
|
sheettxt = luckysheetfile[index].name;
|
|
35779
|
-
sheetId = luckysheetfile[index].id;
|
|
35786
|
+
sheetId = ((_ctx$active_f = ctx.active_f) === null || _ctx$active_f === void 0 ? void 0 : _ctx$active_f.sheetId) || luckysheetfile[index].id;
|
|
35780
35787
|
sheetdata = flowdata;
|
|
35781
35788
|
rangetxt = txt;
|
|
35782
35789
|
}
|
|
@@ -36604,17 +36611,31 @@ function execFunctionGroup(ctx, origin_r, origin_c, value, id, data) {
|
|
|
36604
36611
|
}
|
|
36605
36612
|
formulaRunList.reverse();
|
|
36606
36613
|
console.timeEnd('execFunctionGroup-before');
|
|
36614
|
+
var lastDataRowSheets = Object.create(null);
|
|
36615
|
+
for (var _i14 = 0; _i14 < formulaRunList.length; _i14++) {
|
|
36616
|
+
var sheetId = formulaRunList[_i14].id;
|
|
36617
|
+
if (lastDataRowSheets[sheetId] !== undefined) continue;
|
|
36618
|
+
var fd = getFlowdata(ctx, sheetId);
|
|
36619
|
+
var lastDataRow = 0;
|
|
36620
|
+
if (fd) {
|
|
36621
|
+
for (var r = fd.length - 1; r >= 0; r--) {
|
|
36622
|
+
if (fd[r] && fd[r].join('')) {
|
|
36623
|
+
lastDataRow = r;
|
|
36624
|
+
break;
|
|
36625
|
+
}
|
|
36626
|
+
}
|
|
36627
|
+
}
|
|
36628
|
+
lastDataRowSheets[sheetId] = lastDataRow;
|
|
36629
|
+
}
|
|
36630
|
+
ctx.formulaCache._lastDataRowCache = lastDataRowSheets;
|
|
36607
36631
|
console.time('formulaRunList');
|
|
36608
36632
|
console.log('formulaRunList', formulaRunList);
|
|
36609
|
-
var
|
|
36610
|
-
|
|
36611
|
-
for (var _i14 = 0; _i14 < formulaRunList.length; _i14 += 1) {
|
|
36612
|
-
var formulaCell = formulaRunList[_i14];
|
|
36633
|
+
for (var _i15 = 0; _i15 < formulaRunList.length; _i15 += 1) {
|
|
36634
|
+
var formulaCell = formulaRunList[_i15];
|
|
36613
36635
|
if (formulaCell.level === Math.max) {
|
|
36614
36636
|
continue;
|
|
36615
36637
|
}
|
|
36616
36638
|
var calc_funcStr = formulaCell.calc_funcStr;
|
|
36617
|
-
var sTime = +new Date();
|
|
36618
36639
|
var v = execfunction(ctx, calc_funcStr, formulaCell.r, formulaCell.c, formulaCell.id, false, notInsertFunc);
|
|
36619
36640
|
ctx.groupValuesRefreshData.push({
|
|
36620
36641
|
r: formulaCell.r,
|
|
@@ -36628,12 +36649,9 @@ function execFunctionGroup(ctx, origin_r, origin_c, value, id, data) {
|
|
|
36628
36649
|
v: v[1],
|
|
36629
36650
|
f: v[2]
|
|
36630
36651
|
};
|
|
36631
|
-
var eTime = +new Date();
|
|
36632
|
-
map[calc_funcStr] = eTime - sTime;
|
|
36633
36652
|
}
|
|
36634
|
-
var eeTime = +new Date();
|
|
36635
|
-
console.log('map', map, eeTime - ssTime);
|
|
36636
36653
|
console.timeEnd('formulaRunList');
|
|
36654
|
+
ctx.formulaCache._lastDataRowCache = null;
|
|
36637
36655
|
ctx.formulaCache.execFunctionExist = undefined;
|
|
36638
36656
|
}
|
|
36639
36657
|
function findrangeindex(ctx, v, vp) {
|
|
@@ -36647,26 +36665,26 @@ function findrangeindex(ctx, v, vp) {
|
|
|
36647
36665
|
var vplen = vp_a.length;
|
|
36648
36666
|
var vlen = v_a.length;
|
|
36649
36667
|
if (vplen === vlen) {
|
|
36650
|
-
var
|
|
36651
|
-
var p = vp_a[
|
|
36652
|
-
var n = v_a[
|
|
36668
|
+
var _i16 = pfri[0];
|
|
36669
|
+
var p = vp_a[_i16];
|
|
36670
|
+
var n = v_a[_i16];
|
|
36653
36671
|
if (___default['default'].isNil(p)) {
|
|
36654
|
-
if (vp_a.length <=
|
|
36672
|
+
if (vp_a.length <= _i16) {
|
|
36655
36673
|
pfri = [vp_a.length - 1, vp_a.length - 1];
|
|
36656
|
-
} else if (v_a.length <=
|
|
36674
|
+
} else if (v_a.length <= _i16) {
|
|
36657
36675
|
pfri = [v_a.length - 1, v_a.length - 1];
|
|
36658
36676
|
}
|
|
36659
36677
|
return pfri;
|
|
36660
36678
|
}
|
|
36661
36679
|
if (p.length === n.length) {
|
|
36662
|
-
if (!___default['default'].isNil(vp_a[
|
|
36680
|
+
if (!___default['default'].isNil(vp_a[_i16 + 1]) && !___default['default'].isNil(v_a[_i16 + 1]) && vp_a[_i16 + 1].length < v_a[_i16 + 1].length) {
|
|
36663
36681
|
pfri[0] += 1;
|
|
36664
36682
|
pfri[1] = 1;
|
|
36665
36683
|
}
|
|
36666
36684
|
return pfri;
|
|
36667
36685
|
}
|
|
36668
36686
|
if (p.length > n.length) {
|
|
36669
|
-
if (!___default['default'].isNil(p) && !___default['default'].isNil(v_a[
|
|
36687
|
+
if (!___default['default'].isNil(p) && !___default['default'].isNil(v_a[_i16 + 1]) && v_a[_i16 + 1].substring(0, 1) === '"' && (p.indexOf("{") > -1 || p.indexOf("}") > -1)) {
|
|
36670
36688
|
pfri[0] += 1;
|
|
36671
36689
|
pfri[1] = 1;
|
|
36672
36690
|
}
|
|
@@ -36679,34 +36697,34 @@ function findrangeindex(ctx, v, vp) {
|
|
|
36679
36697
|
return pfri;
|
|
36680
36698
|
}
|
|
36681
36699
|
} else if (vplen > vlen) {
|
|
36682
|
-
var
|
|
36683
|
-
var _p = vp_a[
|
|
36684
|
-
var _n = v_a[
|
|
36700
|
+
var _i17 = pfri[0];
|
|
36701
|
+
var _p = vp_a[_i17];
|
|
36702
|
+
var _n = v_a[_i17];
|
|
36685
36703
|
if (___default['default'].isNil(_n)) {
|
|
36686
|
-
if (v_a[
|
|
36704
|
+
if (v_a[_i17 - 1].indexOf("{") > -1) {
|
|
36687
36705
|
pfri[0] -= 1;
|
|
36688
|
-
var start = v_a[
|
|
36706
|
+
var start = v_a[_i17 - 1].search("{");
|
|
36689
36707
|
pfri[1] += start;
|
|
36690
36708
|
} else {
|
|
36691
36709
|
pfri[0] = 0;
|
|
36692
36710
|
pfri[1] = 0;
|
|
36693
36711
|
}
|
|
36694
36712
|
} else if (_p.length === _n.length) {
|
|
36695
|
-
if (!___default['default'].isNil(v_a[
|
|
36713
|
+
if (!___default['default'].isNil(v_a[_i17 + 1]) && (v_a[_i17 + 1].substring(0, 1) === '"' || v_a[_i17 + 1].substring(0, 1) === "{" || v_a[_i17 + 1].substring(0, 1) === "}")) {
|
|
36696
36714
|
pfri[0] += 1;
|
|
36697
36715
|
pfri[1] = 1;
|
|
36698
|
-
} else if (!___default['default'].isNil(_p) && _p.length > 2 && _p.substring(0, 1) === '"' && _p.substring(_p.length - 1, 1) === '"') ; else if (!___default['default'].isNil(v_a[
|
|
36716
|
+
} else if (!___default['default'].isNil(_p) && _p.length > 2 && _p.substring(0, 1) === '"' && _p.substring(_p.length - 1, 1) === '"') ; else if (!___default['default'].isNil(v_a[_i17]) && v_a[_i17] === '")') {
|
|
36699
36717
|
pfri[1] = 1;
|
|
36700
|
-
} else if (!___default['default'].isNil(v_a[
|
|
36718
|
+
} else if (!___default['default'].isNil(v_a[_i17]) && v_a[_i17] === '"}') {
|
|
36701
36719
|
pfri[1] = 1;
|
|
36702
|
-
} else if (!___default['default'].isNil(v_a[
|
|
36720
|
+
} else if (!___default['default'].isNil(v_a[_i17]) && v_a[_i17] === "{)") {
|
|
36703
36721
|
pfri[1] = 1;
|
|
36704
36722
|
} else {
|
|
36705
36723
|
pfri[1] = _n.length;
|
|
36706
36724
|
}
|
|
36707
36725
|
return pfri;
|
|
36708
36726
|
} else if (_p.length > _n.length) {
|
|
36709
|
-
if (!___default['default'].isNil(v_a[
|
|
36727
|
+
if (!___default['default'].isNil(v_a[_i17 + 1]) && (v_a[_i17 + 1].substring(0, 1) === '"' || v_a[_i17 + 1].substring(0, 1) === "{" || v_a[_i17 + 1].substring(0, 1) === "}")) {
|
|
36710
36728
|
pfri[0] += 1;
|
|
36711
36729
|
pfri[1] = 1;
|
|
36712
36730
|
}
|
|
@@ -36716,17 +36734,17 @@ function findrangeindex(ctx, v, vp) {
|
|
|
36716
36734
|
}
|
|
36717
36735
|
return pfri;
|
|
36718
36736
|
} else if (vplen < vlen) {
|
|
36719
|
-
var
|
|
36720
|
-
var _p2 = vp_a[
|
|
36721
|
-
var _n2 = v_a[
|
|
36737
|
+
var _i18 = pfri[0];
|
|
36738
|
+
var _p2 = vp_a[_i18];
|
|
36739
|
+
var _n2 = v_a[_i18];
|
|
36722
36740
|
if (___default['default'].isNil(_p2)) {
|
|
36723
36741
|
pfri[0] = v_a.length - 1;
|
|
36724
36742
|
var last = v_a[pfri[0]];
|
|
36725
36743
|
pfri[1] = ___default['default'].isNil(last) ? 1 : last.length;
|
|
36726
36744
|
} else if (_p2.length === _n2.length) {
|
|
36727
|
-
if (vp_a[
|
|
36745
|
+
if (vp_a[_i18 + 1] != null && (vp_a[_i18 + 1].substring(0, 1) === '"' || vp_a[_i18 + 1].substring(0, 1) === "{" || vp_a[_i18 + 1].substring(0, 1) === "}")) {
|
|
36728
36746
|
pfri[1] = _n2.length;
|
|
36729
|
-
} else if (!___default['default'].isNil(v_a[
|
|
36747
|
+
} else if (!___default['default'].isNil(v_a[_i18 + 1]) && v_a[_i18 + 1].substring(0, 1) === '"' && (v_a[_i18 + 1].substring(0, 1) === "{" || v_a[_i18 + 1].substring(0, 1) === "}")) {
|
|
36730
36748
|
pfri[0] += 1;
|
|
36731
36749
|
pfri[1] = 1;
|
|
36732
36750
|
} else if (!___default['default'].isNil(_n2) && _n2.substring(0, 1) === '"' && _n2.substring(_n2.length - 1, 1) === '"' && _p2.substring(0, 1) === '"' && _p2.substring(_p2.length - 1, 1) === ")") {
|
|
@@ -36736,7 +36754,7 @@ function findrangeindex(ctx, v, vp) {
|
|
|
36736
36754
|
} else {
|
|
36737
36755
|
pfri[0] = pfri[0] + vlen - vplen;
|
|
36738
36756
|
if (v_a.length > vp_a.length) {
|
|
36739
|
-
pfri[1] = v_a[
|
|
36757
|
+
pfri[1] = v_a[_i18 + 1].length;
|
|
36740
36758
|
} else {
|
|
36741
36759
|
pfri[1] = 1;
|
|
36742
36760
|
}
|
|
@@ -36745,17 +36763,17 @@ function findrangeindex(ctx, v, vp) {
|
|
|
36745
36763
|
} else if (_p2.length > _n2.length) {
|
|
36746
36764
|
if (!___default['default'].isNil(_p2) && _p2.substring(0, 1) === '"') {
|
|
36747
36765
|
pfri[1] = _n2.length;
|
|
36748
|
-
} else if (___default['default'].isNil(v_a[
|
|
36766
|
+
} else if (___default['default'].isNil(v_a[_i18 + 1]) && /{.*?}/.test(v_a[_i18 + 1])) {
|
|
36749
36767
|
pfri[0] += 1;
|
|
36750
|
-
pfri[1] = v_a[
|
|
36751
|
-
} else if (!___default['default'].isNil(_p2) && v_a[
|
|
36768
|
+
pfri[1] = v_a[_i18 + 1].length;
|
|
36769
|
+
} else if (!___default['default'].isNil(_p2) && v_a[_i18 + 1].substring(0, 1) === '"' && (_p2.indexOf("{") > -1 || _p2.indexOf("}") > -1)) {
|
|
36752
36770
|
pfri[0] += 1;
|
|
36753
36771
|
pfri[1] = 1;
|
|
36754
36772
|
} else if (!___default['default'].isNil(_p2) && (_p2.indexOf("{") > -1 || _p2.indexOf("}") > -1)) ; else if (!___default['default'].isNil(_p2) && !___default['default'].startsWith(_p2[0], "=") && ___default['default'].startsWith(_n2, "=")) {
|
|
36755
36773
|
return [vlen - 1, v_a[vlen - 1].length];
|
|
36756
36774
|
} else {
|
|
36757
36775
|
pfri[0] = pfri[0] + vlen - vplen - 1;
|
|
36758
|
-
pfri[1] = v_a[(
|
|
36776
|
+
pfri[1] = v_a[(_i18 || 1) - 1].length;
|
|
36759
36777
|
}
|
|
36760
36778
|
return pfri;
|
|
36761
36779
|
} else if (_p2.length < _n2.length) {
|
|
@@ -36802,9 +36820,9 @@ function locateTextOffset(node, offset) {
|
|
|
36802
36820
|
text = walker.nextNode();
|
|
36803
36821
|
}
|
|
36804
36822
|
var acc = 0;
|
|
36805
|
-
for (var
|
|
36823
|
+
for (var _i19 = 0; _i19 < texts.length; _i19 += 1) {
|
|
36806
36824
|
var _item$textContent$len, _item$textContent;
|
|
36807
|
-
var item = texts[
|
|
36825
|
+
var item = texts[_i19];
|
|
36808
36826
|
var len = (_item$textContent$len = (_item$textContent = item.textContent) === null || _item$textContent === void 0 ? void 0 : _item$textContent.length) !== null && _item$textContent$len !== void 0 ? _item$textContent$len : 0;
|
|
36809
36827
|
if (offset <= acc + len) {
|
|
36810
36828
|
return [item, Math.max(0, offset - acc)];
|
|
@@ -36890,8 +36908,8 @@ function searchFunction(ctx, searchtxt) {
|
|
|
36890
36908
|
var f = [];
|
|
36891
36909
|
var s = [];
|
|
36892
36910
|
var t = [];
|
|
36893
|
-
for (var
|
|
36894
|
-
var item = functionlist[
|
|
36911
|
+
for (var _i20 = 0; _i20 < functionlist.length; _i20 += 1) {
|
|
36912
|
+
var item = functionlist[_i20];
|
|
36895
36913
|
var n = item.n;
|
|
36896
36914
|
if (n === searchtxt) {
|
|
36897
36915
|
f.unshift(item);
|
|
@@ -36947,8 +36965,8 @@ function helpFunctionExe($editer, currSelection, ctx) {
|
|
|
36947
36965
|
var _locale2 = locale(ctx),
|
|
36948
36966
|
functionlist = _locale2.functionlist;
|
|
36949
36967
|
if (___default['default'].isEmpty(ctx.formulaCache.functionlistMap)) {
|
|
36950
|
-
for (var
|
|
36951
|
-
ctx.formulaCache.functionlistMap[functionlist[
|
|
36968
|
+
for (var _i21 = 0; _i21 < functionlist.length; _i21 += 1) {
|
|
36969
|
+
ctx.formulaCache.functionlistMap[functionlist[_i21].n] = functionlist[_i21];
|
|
36952
36970
|
}
|
|
36953
36971
|
}
|
|
36954
36972
|
if (!currSelection) {
|
|
@@ -37581,7 +37599,7 @@ function functionStrChange(txt, type, rc, orient, stindex, step, sheetName, isCu
|
|
|
37581
37599
|
return function_str;
|
|
37582
37600
|
}
|
|
37583
37601
|
function rangeSetValue(ctx, cellInput, selected, fxInput) {
|
|
37584
|
-
var _document$activeEleme, _ctx$
|
|
37602
|
+
var _document$activeEleme, _ctx$active_f2;
|
|
37585
37603
|
var $editor = cellInput;
|
|
37586
37604
|
var $copyTo = fxInput;
|
|
37587
37605
|
if (((_document$activeEleme = document.activeElement) === null || _document$activeEleme === void 0 ? void 0 : _document$activeEleme.id) === "luckysheet-functionbox-cell") {
|
|
@@ -37595,7 +37613,7 @@ function rangeSetValue(ctx, cellInput, selected, fxInput) {
|
|
|
37595
37613
|
var range = "";
|
|
37596
37614
|
var rf = selected.row[0];
|
|
37597
37615
|
var cf = selected.column[0];
|
|
37598
|
-
var sheetId = ((_ctx$
|
|
37616
|
+
var sheetId = ((_ctx$active_f2 = ctx.active_f) === null || _ctx$active_f2 === void 0 ? void 0 : _ctx$active_f2.sheetId) || ctx.formulaCache.rangetosheet;
|
|
37599
37617
|
if (ctx.config.merge != null && "".concat(rf, "_").concat(cf) in ctx.config.merge) {
|
|
37600
37618
|
range = getRangetxt(ctx, ctx.currentSheetId, {
|
|
37601
37619
|
column: [cf, cf],
|
|
@@ -47625,6 +47643,9 @@ function setNextSheet(draftCtx, nextSheetId, refs) {
|
|
|
47625
47643
|
draftCtx.zoomRatio = sheet.zoomRatio || 1;
|
|
47626
47644
|
cancelActiveImgItem(draftCtx, refs.globalCache);
|
|
47627
47645
|
cancelNormalSelected(draftCtx);
|
|
47646
|
+
if (draftCtx.active_f) {
|
|
47647
|
+
createRangeHightlight(draftCtx, refs.cellInput.current.innerHTML);
|
|
47648
|
+
}
|
|
47628
47649
|
if (isBack) {
|
|
47629
47650
|
draftCtx.luckysheetCellUpdate = luckysheetCellUpdate;
|
|
47630
47651
|
draftCtx.active_f = undefined;
|
|
@@ -57205,6 +57226,7 @@ function setCellValuesByRange(ctx, data, range, cellInput) {
|
|
|
57205
57226
|
}
|
|
57206
57227
|
function setCellValues(ctx, data, cellInput) {
|
|
57207
57228
|
var _data$, _data$2;
|
|
57229
|
+
var skipCalcDev = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
|
57208
57230
|
if (data == null) {
|
|
57209
57231
|
throw INVALID_PARAMS;
|
|
57210
57232
|
}
|
|
@@ -57227,7 +57249,12 @@ function setCellValues(ctx, data, cellInput) {
|
|
|
57227
57249
|
c = _data$j.c,
|
|
57228
57250
|
v = _data$j.v,
|
|
57229
57251
|
ops = _data$j.ops;
|
|
57230
|
-
|
|
57252
|
+
if (skipCalcDev) {
|
|
57253
|
+
var _sheet = getSheet(ctx, ops || {});
|
|
57254
|
+
setCellValueInBatch(ctx, _sheet, r, c, v, cellInput, []);
|
|
57255
|
+
} else {
|
|
57256
|
+
setCellValue$1(ctx, r, c, v, cellInput, ops);
|
|
57257
|
+
}
|
|
57231
57258
|
}
|
|
57232
57259
|
cancelNormalSelected(ctx);
|
|
57233
57260
|
return;
|
|
@@ -57249,7 +57276,7 @@ function setCellValues(ctx, data, cellInput) {
|
|
|
57249
57276
|
}
|
|
57250
57277
|
setCellValueInBatch(ctx, sheet, _r, _c, _v, cellInput, formulaCells);
|
|
57251
57278
|
}
|
|
57252
|
-
if (formulaCells.length === 0 && changedData.length === 0) {
|
|
57279
|
+
if (skipCalcDev || formulaCells.length === 0 && changedData.length === 0) {
|
|
57253
57280
|
cancelNormalSelected(ctx);
|
|
57254
57281
|
return;
|
|
57255
57282
|
}
|
|
@@ -24,6 +24,7 @@ export declare class FormulaCache {
|
|
|
24
24
|
functionlistMap: any;
|
|
25
25
|
execFunctionExist?: any[];
|
|
26
26
|
execFunctionGlobalData: any;
|
|
27
|
+
_lastDataRowCache: Record<string, number> | null;
|
|
27
28
|
constructor();
|
|
28
29
|
tryGetCellAsNumber(cell: Cell): string | number | boolean | null;
|
|
29
30
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@leankylin-sheet/core",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "7.0.1",
|
|
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": "
|
|
16
|
+
"@leankylin-sheet/formula-parser": "7.0.1",
|
|
17
17
|
"dayjs": "^1.11.0",
|
|
18
18
|
"immer": "^9.0.12",
|
|
19
19
|
"lodash": "^4.17.21",
|