@leankylin-sheet/react 5.2.29 → 5.2.30

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/index.umd.js CHANGED
@@ -54989,6 +54989,10 @@
54989
54989
  regexTextbox: "Regular Expression",
54990
54990
  wholeTextbox: "Whole word",
54991
54991
  distinguishTextbox: "Case sensitive",
54992
+ searchTypeLabel: "Search In",
54993
+ searchTypeValue: "Value",
54994
+ searchTypeFormula: "Formula",
54995
+ searchTypeDisplay: "Display Value",
54992
54996
  allReplaceBtn: "Replace All",
54993
54997
  replaceBtn: "Replace",
54994
54998
  allFindBtn: "Find All",
@@ -55361,6 +55365,12 @@
55361
55365
  execfunctionError: "Error in the formula",
55362
55366
  execfunctionSelfError: "The formula cannot refer to its own cell",
55363
55367
  execfunctionSelfErrorResult: "The formula cannot refer to its own cell, which will lead to inaccurate calculation results",
55368
+ execfunctionCircularError: "Circular reference detected. The calculation results may be inaccurate.",
55369
+ circularReferenceTitle: "Circular Reference Error",
55370
+ circularReferenceDescription: "One or more formulas contain a circular reference and may not calculate correctly. A circular reference is any reference within a formula that depends on the result of that same formula.",
55371
+ circularReferenceSheet: "Sheet",
55372
+ circularReferenceCell: "Cell",
55373
+ circularReferenceFormula: "Formula",
55364
55374
  allowRepeatText: "Repeatable",
55365
55375
  allowOptionText: "Optional",
55366
55376
  selectCategory: "Or select a category"
@@ -65565,6 +65575,10 @@
65565
65575
  regexTextbox: "正则表达式匹配",
65566
65576
  wholeTextbox: "整词匹配",
65567
65577
  distinguishTextbox: "区分大小写匹配",
65578
+ searchTypeLabel: "搜索范围",
65579
+ searchTypeValue: "值",
65580
+ searchTypeFormula: "公式",
65581
+ searchTypeDisplay: "显示值",
65568
65582
  allReplaceBtn: "全部替换",
65569
65583
  replaceBtn: "替换",
65570
65584
  allFindBtn: "查找全部",
@@ -65938,6 +65952,12 @@
65938
65952
  execfunctionError: '提示", "公式存在错误',
65939
65953
  execfunctionSelfError: "公式不可引用其本身的单元格",
65940
65954
  execfunctionSelfErrorResult: "公式不可引用其本身的单元格,会导致计算结果不准确",
65955
+ execfunctionCircularError: "公式存在相互引用,会导致计算结果不准确",
65956
+ circularReferenceTitle: "循环引用报错",
65957
+ circularReferenceDescription: "一个或多个公式包含循环引用,可能无法正确计算。循环引用是指某个公式内依赖同一公式结果的任何引用。",
65958
+ circularReferenceSheet: "工作表",
65959
+ circularReferenceCell: "单元格",
65960
+ circularReferenceFormula: "公式",
65941
65961
  allowRepeatText: "可重复",
65942
65962
  allowOptionText: "可选",
65943
65963
  selectCategory: "或选择类别"
@@ -75599,6 +75619,10 @@
75599
75619
  regexTextbox: "Expresión Regular",
75600
75620
  wholeTextbox: "Palabra entera",
75601
75621
  distinguishTextbox: "Distingue mayúsculas y minúsculas",
75622
+ searchTypeLabel: "Buscar en",
75623
+ searchTypeValue: "Valor",
75624
+ searchTypeFormula: "Fórmula",
75625
+ searchTypeDisplay: "Valor mostrado",
75602
75626
  allReplaceBtn: "Reemplazar Todo",
75603
75627
  replaceBtn: "Reemplazar",
75604
75628
  allFindBtn: "Encontrar Todo",
@@ -75944,6 +75968,12 @@
75944
75968
  execfunctionError: "Error en la fórmula",
75945
75969
  execfunctionSelfError: "La fórmula no puede hacer referencia a su propia celda",
75946
75970
  execfunctionSelfErrorResult: "La fórmula no puede hacer referencia a su propia celda, lo que dará lugar a resultados de cálculo inexactos",
75971
+ execfunctionCircularError: "Se ha detectado una referencia circular. Los resultados del cálculo pueden ser inexactos.",
75972
+ circularReferenceTitle: "Error de referencia circular",
75973
+ circularReferenceDescription: "Una o más fórmulas contienen una referencia circular y pueden no calcularse correctamente. Una referencia circular es cualquier referencia dentro de una fórmula que depende del resultado de esa misma fórmula.",
75974
+ circularReferenceSheet: "Hoja",
75975
+ circularReferenceCell: "Celda",
75976
+ circularReferenceFormula: "Fórmula",
75947
75977
  allowRepeatText: "Repetir",
75948
75978
  allowOptionText: "Opción",
75949
75979
  selectCategory: "O selecciona una categoría"
@@ -76122,7 +76152,7 @@
76122
76152
  }
76123
76153
 
76124
76154
  function moveToEnd(obj) {
76125
- if (document.createRange) {
76155
+ if (document.createRange && obj) {
76126
76156
  if (obj.innerHTML !== obj.innerText || obj.innerHTML === "") {
76127
76157
  obj.focus();
76128
76158
  var range = window.getSelection();
@@ -80021,7 +80051,10 @@
80021
80051
  key: "tryGetCellAsNumber",
80022
80052
  value: function tryGetCellAsNumber(cell) {
80023
80053
  var _cell$ct;
80024
- if ((cell === null || cell === void 0 ? void 0 : (_cell$ct = cell.ct) === null || _cell$ct === void 0 ? void 0 : _cell$ct.t) === "n") {
80054
+ if (lodash.isNil(cell === null || cell === void 0 ? void 0 : cell.v)) {
80055
+ return null;
80056
+ }
80057
+ if ((cell === null || cell === void 0 ? void 0 : (_cell$ct = cell.ct) === null || _cell$ct === void 0 ? void 0 : _cell$ct.t) === "n" && (cell === null || cell === void 0 ? void 0 : cell.v)) {
80025
80058
  var n = Number(cell === null || cell === void 0 ? void 0 : cell.v);
80026
80059
  return Number.isNaN(n) ? cell.v : n;
80027
80060
  }
@@ -80590,17 +80623,27 @@
80590
80623
  result = _ctx$formulaCache$par.result,
80591
80624
  formulaError = _ctx$formulaCache$par.error;
80592
80625
  if (!lodash.isNil(r) && !lodash.isNil(c)) {
80626
+ if (!notInsertFunc) {
80627
+ insertUpdateFunctionGroup(ctx, r, c, id);
80628
+ }
80593
80629
  if (isrefresh) {
80594
80630
  var _data$r;
80595
80631
  var data = getFlowdata(ctx, id);
80596
80632
  var cell = data === null || data === void 0 ? void 0 : (_data$r = data[r]) === null || _data$r === void 0 ? void 0 : _data$r[c];
80597
- if ((cell === null || cell === void 0 ? void 0 : cell.v) !== result) {
80633
+ if ((cell === null || cell === void 0 ? void 0 : cell.v) != result) {
80634
+ var hadFormulaField = cell && "f" in cell;
80635
+ if (!hadFormulaField && data) {
80636
+ if (!data[r]) data[r] = [];
80637
+ if (!data[r][c]) data[r][c] = {
80638
+ f: txt
80639
+ };else data[r][c].f = txt;
80640
+ }
80598
80641
  execFunctionGroup(ctx, r, c, lodash.isNil(formulaError) ? result : formulaError, id);
80642
+ if (!hadFormulaField && data && data[r] && data[r][c]) {
80643
+ delete data[r][c].f;
80644
+ }
80599
80645
  }
80600
80646
  }
80601
- if (!notInsertFunc) {
80602
- insertUpdateFunctionGroup(ctx, r, c, id);
80603
- }
80604
80647
  }
80605
80648
  return [true, lodash.isNil(formulaError) ? result : formulaError, txt];
80606
80649
  }
@@ -80846,6 +80889,66 @@
80846
80889
  updateValueArray.push(formulaObject);
80847
80890
  }
80848
80891
  });
80892
+ var visited = {};
80893
+ var inStack = {};
80894
+ var circularNodes = {};
80895
+ function detectCycle(nodeKey) {
80896
+ inStack[nodeKey] = true;
80897
+ visited[nodeKey] = true;
80898
+ var node = formulaObjects[nodeKey];
80899
+ if (!node) return false;
80900
+ var children = Object.keys(node.chidren);
80901
+ for (var _i13 = 0; _i13 < children.length; _i13 += 1) {
80902
+ var childKey = children[_i13];
80903
+ if (inStack[childKey]) {
80904
+ Object.keys(inStack).forEach(function (key) {
80905
+ if (inStack[key]) {
80906
+ circularNodes[key] = true;
80907
+ }
80908
+ });
80909
+ return true;
80910
+ }
80911
+ if (!visited[childKey] && detectCycle(childKey)) {
80912
+ return true;
80913
+ }
80914
+ }
80915
+ inStack[nodeKey] = false;
80916
+ return false;
80917
+ }
80918
+ Object.keys(formulaObjects).every(function (key) {
80919
+ if (!visited[key]) {
80920
+ detectCycle(key);
80921
+ }
80922
+ return true;
80923
+ });
80924
+ console.log('circularNodes', circularNodes);
80925
+ if (Object.keys(circularNodes).length > 0) {
80926
+ ctx.circularReference = Object.keys(circularNodes).map(function (key) {
80927
+ var _ctx$luckysheetfile$s;
80928
+ var fObj = formulaObjects[key];
80929
+ var sheetIndex = getSheetIndex(ctx, fObj.id);
80930
+ var sheetName = sheetIndex != null ? ((_ctx$luckysheetfile$s = ctx.luckysheetfile[sheetIndex]) === null || _ctx$luckysheetfile$s === void 0 ? void 0 : _ctx$luckysheetfile$s.name) || '' : '';
80931
+ var cellPosition = indexToColumnChar(fObj.c) + (fObj.r + 1);
80932
+ return {
80933
+ sheetName: sheetName,
80934
+ cellPosition: cellPosition,
80935
+ formulaContent: fObj.calc_funcStr
80936
+ };
80937
+ });
80938
+ Object.keys(circularNodes).forEach(function (key) {
80939
+ var fObj = formulaObjects[key];
80940
+ if (fObj) {
80941
+ ctx.groupValuesRefreshData.push({
80942
+ r: fObj.r,
80943
+ c: fObj.c,
80944
+ v: error$2.r,
80945
+ f: fObj.calc_funcStr,
80946
+ id: fObj.id
80947
+ });
80948
+ fObj.level = Math.max;
80949
+ }
80950
+ });
80951
+ }
80849
80952
  var formulaRunList = [];
80850
80953
  var stack = updateValueArray;
80851
80954
  var existsFormulaRunList = {};
@@ -80881,8 +80984,8 @@
80881
80984
  if (_ret === 0) continue;
80882
80985
  }
80883
80986
  formulaRunList.reverse();
80884
- for (var _i13 = 0; _i13 < formulaRunList.length; _i13 += 1) {
80885
- var formulaCell = formulaRunList[_i13];
80987
+ for (var _i14 = 0; _i14 < formulaRunList.length; _i14 += 1) {
80988
+ var formulaCell = formulaRunList[_i14];
80886
80989
  if (formulaCell.level === Math.max) {
80887
80990
  continue;
80888
80991
  }
@@ -80914,26 +81017,26 @@
80914
81017
  var vplen = vp_a.length;
80915
81018
  var vlen = v_a.length;
80916
81019
  if (vplen === vlen) {
80917
- var _i14 = pfri[0];
80918
- var p = vp_a[_i14];
80919
- var n = v_a[_i14];
81020
+ var _i15 = pfri[0];
81021
+ var p = vp_a[_i15];
81022
+ var n = v_a[_i15];
80920
81023
  if (lodash.isNil(p)) {
80921
- if (vp_a.length <= _i14) {
81024
+ if (vp_a.length <= _i15) {
80922
81025
  pfri = [vp_a.length - 1, vp_a.length - 1];
80923
- } else if (v_a.length <= _i14) {
81026
+ } else if (v_a.length <= _i15) {
80924
81027
  pfri = [v_a.length - 1, v_a.length - 1];
80925
81028
  }
80926
81029
  return pfri;
80927
81030
  }
80928
81031
  if (p.length === n.length) {
80929
- if (!lodash.isNil(vp_a[_i14 + 1]) && !lodash.isNil(v_a[_i14 + 1]) && vp_a[_i14 + 1].length < v_a[_i14 + 1].length) {
81032
+ if (!lodash.isNil(vp_a[_i15 + 1]) && !lodash.isNil(v_a[_i15 + 1]) && vp_a[_i15 + 1].length < v_a[_i15 + 1].length) {
80930
81033
  pfri[0] += 1;
80931
81034
  pfri[1] = 1;
80932
81035
  }
80933
81036
  return pfri;
80934
81037
  }
80935
81038
  if (p.length > n.length) {
80936
- if (!lodash.isNil(p) && !lodash.isNil(v_a[_i14 + 1]) && v_a[_i14 + 1].substring(0, 1) === '"' && (p.indexOf("{") > -1 || p.indexOf("}") > -1)) {
81039
+ if (!lodash.isNil(p) && !lodash.isNil(v_a[_i15 + 1]) && v_a[_i15 + 1].substring(0, 1) === '"' && (p.indexOf("{") > -1 || p.indexOf("}") > -1)) {
80937
81040
  pfri[0] += 1;
80938
81041
  pfri[1] = 1;
80939
81042
  }
@@ -80946,34 +81049,34 @@
80946
81049
  return pfri;
80947
81050
  }
80948
81051
  } else if (vplen > vlen) {
80949
- var _i15 = pfri[0];
80950
- var _p = vp_a[_i15];
80951
- var _n = v_a[_i15];
81052
+ var _i16 = pfri[0];
81053
+ var _p = vp_a[_i16];
81054
+ var _n = v_a[_i16];
80952
81055
  if (lodash.isNil(_n)) {
80953
- if (v_a[_i15 - 1].indexOf("{") > -1) {
81056
+ if (v_a[_i16 - 1].indexOf("{") > -1) {
80954
81057
  pfri[0] -= 1;
80955
- var start = v_a[_i15 - 1].search("{");
81058
+ var start = v_a[_i16 - 1].search("{");
80956
81059
  pfri[1] += start;
80957
81060
  } else {
80958
81061
  pfri[0] = 0;
80959
81062
  pfri[1] = 0;
80960
81063
  }
80961
81064
  } else if (_p.length === _n.length) {
80962
- if (!lodash.isNil(v_a[_i15 + 1]) && (v_a[_i15 + 1].substring(0, 1) === '"' || v_a[_i15 + 1].substring(0, 1) === "{" || v_a[_i15 + 1].substring(0, 1) === "}")) {
81065
+ if (!lodash.isNil(v_a[_i16 + 1]) && (v_a[_i16 + 1].substring(0, 1) === '"' || v_a[_i16 + 1].substring(0, 1) === "{" || v_a[_i16 + 1].substring(0, 1) === "}")) {
80963
81066
  pfri[0] += 1;
80964
81067
  pfri[1] = 1;
80965
- } else if (!lodash.isNil(_p) && _p.length > 2 && _p.substring(0, 1) === '"' && _p.substring(_p.length - 1, 1) === '"') ; else if (!lodash.isNil(v_a[_i15]) && v_a[_i15] === '")') {
81068
+ } else if (!lodash.isNil(_p) && _p.length > 2 && _p.substring(0, 1) === '"' && _p.substring(_p.length - 1, 1) === '"') ; else if (!lodash.isNil(v_a[_i16]) && v_a[_i16] === '")') {
80966
81069
  pfri[1] = 1;
80967
- } else if (!lodash.isNil(v_a[_i15]) && v_a[_i15] === '"}') {
81070
+ } else if (!lodash.isNil(v_a[_i16]) && v_a[_i16] === '"}') {
80968
81071
  pfri[1] = 1;
80969
- } else if (!lodash.isNil(v_a[_i15]) && v_a[_i15] === "{)") {
81072
+ } else if (!lodash.isNil(v_a[_i16]) && v_a[_i16] === "{)") {
80970
81073
  pfri[1] = 1;
80971
81074
  } else {
80972
81075
  pfri[1] = _n.length;
80973
81076
  }
80974
81077
  return pfri;
80975
81078
  } else if (_p.length > _n.length) {
80976
- if (!lodash.isNil(v_a[_i15 + 1]) && (v_a[_i15 + 1].substring(0, 1) === '"' || v_a[_i15 + 1].substring(0, 1) === "{" || v_a[_i15 + 1].substring(0, 1) === "}")) {
81079
+ if (!lodash.isNil(v_a[_i16 + 1]) && (v_a[_i16 + 1].substring(0, 1) === '"' || v_a[_i16 + 1].substring(0, 1) === "{" || v_a[_i16 + 1].substring(0, 1) === "}")) {
80977
81080
  pfri[0] += 1;
80978
81081
  pfri[1] = 1;
80979
81082
  }
@@ -80983,9 +81086,9 @@
80983
81086
  }
80984
81087
  return pfri;
80985
81088
  } else if (vplen < vlen) {
80986
- var _i16 = pfri[0];
80987
- var _p2 = vp_a[_i16];
80988
- var _n2 = v_a[_i16];
81089
+ var _i17 = pfri[0];
81090
+ var _p2 = vp_a[_i17];
81091
+ var _n2 = v_a[_i17];
80989
81092
  if (lodash.isNil(_p2)) {
80990
81093
  pfri[0] = v_a.length - 1;
80991
81094
  if (!lodash.isNil(_n2)) {
@@ -80994,9 +81097,9 @@
80994
81097
  pfri[1] = 1;
80995
81098
  }
80996
81099
  } else if (_p2.length === _n2.length) {
80997
- if (vp_a[_i16 + 1] != null && (vp_a[_i16 + 1].substring(0, 1) === '"' || vp_a[_i16 + 1].substring(0, 1) === "{" || vp_a[_i16 + 1].substring(0, 1) === "}")) {
81100
+ if (vp_a[_i17 + 1] != null && (vp_a[_i17 + 1].substring(0, 1) === '"' || vp_a[_i17 + 1].substring(0, 1) === "{" || vp_a[_i17 + 1].substring(0, 1) === "}")) {
80998
81101
  pfri[1] = _n2.length;
80999
- } else if (!lodash.isNil(v_a[_i16 + 1]) && v_a[_i16 + 1].substring(0, 1) === '"' && (v_a[_i16 + 1].substring(0, 1) === "{" || v_a[_i16 + 1].substring(0, 1) === "}")) {
81102
+ } else if (!lodash.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) === "}")) {
81000
81103
  pfri[0] += 1;
81001
81104
  pfri[1] = 1;
81002
81105
  } else if (!lodash.isNil(_n2) && _n2.substring(0, 1) === '"' && _n2.substring(_n2.length - 1, 1) === '"' && _p2.substring(0, 1) === '"' && _p2.substring(_p2.length - 1, 1) === ")") {
@@ -81006,7 +81109,7 @@
81006
81109
  } else {
81007
81110
  pfri[0] = pfri[0] + vlen - vplen;
81008
81111
  if (v_a.length > vp_a.length) {
81009
- pfri[1] = v_a[_i16 + 1].length;
81112
+ pfri[1] = v_a[_i17 + 1].length;
81010
81113
  } else {
81011
81114
  pfri[1] = 1;
81012
81115
  }
@@ -81015,17 +81118,17 @@
81015
81118
  } else if (_p2.length > _n2.length) {
81016
81119
  if (!lodash.isNil(_p2) && _p2.substring(0, 1) === '"') {
81017
81120
  pfri[1] = _n2.length;
81018
- } else if (lodash.isNil(v_a[_i16 + 1]) && /{.*?}/.test(v_a[_i16 + 1])) {
81121
+ } else if (lodash.isNil(v_a[_i17 + 1]) && /{.*?}/.test(v_a[_i17 + 1])) {
81019
81122
  pfri[0] += 1;
81020
- pfri[1] = v_a[_i16 + 1].length;
81021
- } else if (!lodash.isNil(_p2) && v_a[_i16 + 1].substring(0, 1) === '"' && (_p2.indexOf("{") > -1 || _p2.indexOf("}") > -1)) {
81123
+ pfri[1] = v_a[_i17 + 1].length;
81124
+ } else if (!lodash.isNil(_p2) && v_a[_i17 + 1].substring(0, 1) === '"' && (_p2.indexOf("{") > -1 || _p2.indexOf("}") > -1)) {
81022
81125
  pfri[0] += 1;
81023
81126
  pfri[1] = 1;
81024
81127
  } else if (!lodash.isNil(_p2) && (_p2.indexOf("{") > -1 || _p2.indexOf("}") > -1)) ; else if (!lodash.isNil(_p2) && !lodash.startsWith(_p2[0], "=") && lodash.startsWith(_n2, "=")) {
81025
81128
  return [vlen - 1, v_a[vlen - 1].length];
81026
81129
  } else {
81027
81130
  pfri[0] = pfri[0] + vlen - vplen - 1;
81028
- pfri[1] = v_a[(_i16 || 1) - 1].length;
81131
+ pfri[1] = v_a[(_i17 || 1) - 1].length;
81029
81132
  }
81030
81133
  return pfri;
81031
81134
  } else if (_p2.length < _n2.length) {
@@ -81071,8 +81174,9 @@
81071
81174
  sel === null || sel === void 0 ? void 0 : sel.addRange(range);
81072
81175
  el.focus();
81073
81176
  } catch (err) {
81177
+ var _ctx$formulaCache, _ctx$formulaCache$ran;
81074
81178
  console.error(err);
81075
- moveToEnd(ctx.formulaCache.rangeResizeTo[0]);
81179
+ moveToEnd((_ctx$formulaCache = ctx.formulaCache) === null || _ctx$formulaCache === void 0 ? void 0 : (_ctx$formulaCache$ran = _ctx$formulaCache.rangeResizeTo) === null || _ctx$formulaCache$ran === void 0 ? void 0 : _ctx$formulaCache$ran[0]);
81076
81180
  }
81077
81181
  }
81078
81182
  function functionRange(ctx, obj, v, vp) {
@@ -81098,8 +81202,8 @@
81098
81202
  var f = [];
81099
81203
  var s = [];
81100
81204
  var t = [];
81101
- for (var _i17 = 0; _i17 < functionlist.length; _i17 += 1) {
81102
- var item = functionlist[_i17];
81205
+ for (var _i18 = 0; _i18 < functionlist.length; _i18 += 1) {
81206
+ var item = functionlist[_i18];
81103
81207
  var n = item.n;
81104
81208
  if (n === searchtxt) {
81105
81209
  f.unshift(item);
@@ -81155,8 +81259,8 @@
81155
81259
  var _locale2 = locale(ctx),
81156
81260
  functionlist = _locale2.functionlist;
81157
81261
  if (lodash.isEmpty(ctx.formulaCache.functionlistMap)) {
81158
- for (var _i18 = 0; _i18 < functionlist.length; _i18 += 1) {
81159
- ctx.formulaCache.functionlistMap[functionlist[_i18].n] = functionlist[_i18];
81262
+ for (var _i19 = 0; _i19 < functionlist.length; _i19 += 1) {
81263
+ ctx.formulaCache.functionlistMap[functionlist[_i19].n] = functionlist[_i19];
81160
81264
  }
81161
81265
  }
81162
81266
  if (!currSelection) {
@@ -81786,6 +81890,10 @@
81786
81890
  $editor = fxInput;
81787
81891
  $copyTo = cellInput;
81788
81892
  }
81893
+ if (ctx.active_f) {
81894
+ $editor = fxInput;
81895
+ $copyTo = cellInput;
81896
+ }
81789
81897
  var range = "";
81790
81898
  var rf = selected.row[0];
81791
81899
  var cf = selected.column[0];
@@ -81802,6 +81910,7 @@
81802
81910
  var span = $editor.querySelector("span[rangeindex='".concat(ctx.formulaCache.rangechangeindex, "']"));
81803
81911
  if (span) {
81804
81912
  span.innerHTML = range;
81913
+ console.log(333312);
81805
81914
  setCaretPosition(ctx, span, 0, range.length);
81806
81915
  }
81807
81916
  } else if (ctx.active_f) {
@@ -81815,7 +81924,7 @@
81815
81924
  }
81816
81925
  ctx.formulaCache.rangechangeindex = functionHTMLIndex;
81817
81926
  var _span = $editor.querySelector("span[rangeindex='".concat(ctx.formulaCache.rangechangeindex, "']"));
81818
- setCaretPosition(ctx, _span, 0, range.length);
81927
+ setCaretPosition(ctx, _span || $editor, 0, range.length);
81819
81928
  functionHTMLIndex += 1;
81820
81929
  } else {
81821
81930
  var _function_str = "<span class=\"leankylin-formula-functionrange-cell\" rangeindex=\"".concat(functionHTMLIndex, "\" dir=\"auto\" style=\"color:").concat(getHLColor(functionHTMLIndex), ";\">").concat(range, "</span>");
@@ -86826,7 +86935,8 @@
86826
86935
  cpString += "<tr>";
86827
86936
  var _loop4 = function _loop4() {
86828
86937
  var _flowdata$r, _ref2, _data$m, _ref3, _data$v, _data$mc$rs, _data$mc, _data$mc$cs, _data$mc2;
86829
- var data = flowdata === null || flowdata === void 0 ? void 0 : (_flowdata$r = flowdata[r]) === null || _flowdata$r === void 0 ? void 0 : _flowdata$r[c];
86938
+ var cellValue = flowdata === null || flowdata === void 0 ? void 0 : (_flowdata$r = flowdata[r]) === null || _flowdata$r === void 0 ? void 0 : _flowdata$r[c];
86939
+ var data = lodash.omit(cellValue, ["tip"]);
86830
86940
  var value = (_ref2 = (_data$m = data === null || data === void 0 ? void 0 : data.m) !== null && _data$m !== void 0 ? _data$m : data === null || data === void 0 ? void 0 : data.v) !== null && _ref2 !== void 0 ? _ref2 : "";
86831
86941
  var realValue = (_ref3 = (_data$v = data === null || data === void 0 ? void 0 : data.v) !== null && _data$v !== void 0 ? _data$v : data === null || data === void 0 ? void 0 : data.m) !== null && _ref3 !== void 0 ? _ref3 : "";
86832
86942
  var f = (data === null || data === void 0 ? void 0 : data.f) || "";
@@ -90881,43 +90991,64 @@
90881
90991
  delete sheetData.data;
90882
90992
  var copyId = v4();
90883
90993
  sheetData.id = copyId;
90884
- addSheet$1(ctx, undefined, copyId, ctx.luckysheetfile[index$1].isPivotTable, sheetName, sheetData);
90994
+ var _sheetData = hooks.onCopySheetBefore ? hooks.onCopySheetBefore(sheetId, sheetData) : sheetData;
90995
+ addSheet$1(ctx, undefined, copyId, ctx.luckysheetfile[index$1].isPivotTable, sheetName, _sheetData);
90885
90996
  var sheetOrderList = {};
90886
90997
  sheetOrderList[ctx.luckysheetfile[ctx.luckysheetfile.length - 1].id] = order;
90887
90998
  setSheetOrder(ctx, sheetOrderList);
90888
90999
  (_hooks$onCopySheet = hooks.onCopySheet) === null || _hooks$onCopySheet === void 0 ? void 0 : _hooks$onCopySheet.call(hooks, sheetId, copyId);
90889
91000
  }
90890
- function calculateSheetFromula(ctx, id) {
91001
+ function calculateSheetFromula(ctx, id, isrefresh) {
90891
91002
  console.time("calcTime:".concat(id));
90892
- var index$1 = getSheetIndex(ctx, id);
90893
- var luckysheetfile = ctx.luckysheetfile;
90894
- if (!ctx.luckysheetfile[index$1].data) return;
90895
- for (var r = 0; r < ctx.luckysheetfile[index$1].data.length; r += 1) {
90896
- for (var c = 0; c < ctx.luckysheetfile[index$1].data[r].length; c += 1) {
90897
- var cell = ctx.luckysheetfile[index$1].data[r][c];
91003
+ if (isrefresh) {
91004
+ execFunctionGroup(ctx, null, null, null, id, [], true);
91005
+ groupValuesRefresh(ctx);
91006
+ } else {
91007
+ var index$1 = getSheetIndex(ctx, id);
91008
+ var luckysheetfile = ctx.luckysheetfile;
91009
+ var sheetData = luckysheetfile[index$1].data;
91010
+ if (!sheetData) return;
91011
+ var calcChain = luckysheetfile[index$1].calcChain || [];
91012
+ var cellsToUpdate = [];
91013
+ for (var i = 0; i < calcChain.length; i += 1) {
91014
+ var _calcChain$i = calcChain[i],
91015
+ r = _calcChain$i.r,
91016
+ c = _calcChain$i.c;
91017
+ var cell = sheetData[r][c];
90898
91018
  if (!(cell === null || cell === void 0 ? void 0 : cell.f)) {
90899
91019
  continue;
90900
91020
  }
90901
- var result = execfunction(ctx, cell === null || cell === void 0 ? void 0 : cell.f, r, c, id, false, true);
91021
+ var result = execfunction(ctx, cell.f, r, c, id, false, true);
90902
91022
  var newV = result[1];
90903
91023
  if (newV === cell.v) {
90904
91024
  continue;
90905
91025
  }
90906
- setCellValue$1(ctx, r, c, result[1], null, {
91026
+ cellsToUpdate.push({
91027
+ r: r,
91028
+ c: c,
91029
+ v: newV
91030
+ });
91031
+ }
91032
+ for (var _i = 0; _i < cellsToUpdate.length; _i += 1) {
91033
+ var _cellsToUpdate$_i = cellsToUpdate[_i],
91034
+ _r = _cellsToUpdate$_i.r,
91035
+ _c = _cellsToUpdate$_i.c,
91036
+ v = _cellsToUpdate$_i.v;
91037
+ setCellValue$1(ctx, _r, _c, v, null, {
90907
91038
  id: id
90908
91039
  });
90909
91040
  }
90910
91041
  }
90911
- ctx.luckysheetfile = luckysheetfile;
90912
91042
  console.timeEnd("calcTime:".concat(id));
90913
91043
  }
90914
91044
  function updateFunctionGroup(ctx) {
90915
91045
  var luckysheetfile = ctx.luckysheetfile;
90916
91046
  for (var index = 0; index < luckysheetfile.length; index++) {
91047
+ var _ctx$luckysheetfile$i, _ctx$luckysheetfile$i2, _ctx$luckysheetfile$i3;
90917
91048
  var file = luckysheetfile[index];
90918
91049
  var calcChain = [];
90919
- if (!ctx.luckysheetfile[index].data) return;
90920
- for (var r = 0; r < ctx.luckysheetfile[index].data.length; r += 1) {
91050
+ var rows = (_ctx$luckysheetfile$i = (_ctx$luckysheetfile$i2 = ctx.luckysheetfile[index]) === null || _ctx$luckysheetfile$i2 === void 0 ? void 0 : (_ctx$luckysheetfile$i3 = _ctx$luckysheetfile$i2.data) === null || _ctx$luckysheetfile$i3 === void 0 ? void 0 : _ctx$luckysheetfile$i3.length) !== null && _ctx$luckysheetfile$i !== void 0 ? _ctx$luckysheetfile$i : 0;
91051
+ for (var r = 0; r < rows; r += 1) {
90921
91052
  for (var c = 0; c < ctx.luckysheetfile[index].data[r].length; c += 1) {
90922
91053
  var cell = ctx.luckysheetfile[index].data[r][c];
90923
91054
  if (!(cell === null || cell === void 0 ? void 0 : cell.f)) {
@@ -90926,7 +91057,8 @@
90926
91057
  var cc = {
90927
91058
  r: r,
90928
91059
  c: c,
90929
- id: file.id
91060
+ id: file.id,
91061
+ f: cell === null || cell === void 0 ? void 0 : cell.f
90930
91062
  };
90931
91063
  calcChain.push(cc);
90932
91064
  }
@@ -90971,9 +91103,9 @@
90971
91103
  for (var _index = 0; _index < calcChain.length; _index++) {
90972
91104
  var _parseCellReferences;
90973
91105
  var _calcChain$_index = calcChain[_index],
90974
- _r2 = _calcChain$_index.r,
90975
- _c2 = _calcChain$_index.c;
90976
- var cell = file.data[_r2][_c2];
91106
+ _r3 = _calcChain$_index.r,
91107
+ _c3 = _calcChain$_index.c;
91108
+ var cell = file.data[_r3][_c3];
90977
91109
  if (!(cell === null || cell === void 0 ? void 0 : cell.f)) {
90978
91110
  continue;
90979
91111
  }
@@ -90985,8 +91117,8 @@
90985
91117
  });
90986
91118
  if (n) {
90987
91119
  needUpdateCell.push({
90988
- r: _r2,
90989
- c: _c2,
91120
+ r: _r3,
91121
+ c: _c3,
90990
91122
  id: sheetId,
90991
91123
  f: cell.f,
90992
91124
  v: cell.v
@@ -91002,17 +91134,17 @@
91002
91134
  });
91003
91135
  for (var nIndex = 0; nIndex < needUpdateCell.length; nIndex++) {
91004
91136
  var _needUpdateCell$nInde = needUpdateCell[nIndex],
91005
- _r = _needUpdateCell$nInde.r,
91006
- _c = _needUpdateCell$nInde.c,
91137
+ _r2 = _needUpdateCell$nInde.r,
91138
+ _c2 = _needUpdateCell$nInde.c,
91007
91139
  _id = _needUpdateCell$nInde.id,
91008
91140
  _f = _needUpdateCell$nInde.f,
91009
91141
  v = _needUpdateCell$nInde.v;
91010
- var result = execfunction(ctx, _f, _r, _c, _id, undefined, true);
91142
+ var result = execfunction(ctx, _f, _r2, _c2, _id, undefined, true);
91011
91143
  var newV = result[1];
91012
91144
  if (newV === v) {
91013
91145
  continue;
91014
91146
  }
91015
- setCellValue$1(ctx, _r, _c, result[1], null, {
91147
+ setCellValue$1(ctx, _r2, _c2, result[1], null, {
91016
91148
  id: _id
91017
91149
  });
91018
91150
  }
@@ -95445,6 +95577,10 @@
95445
95577
  b1 = c1;
95446
95578
  b2 = c2;
95447
95579
  }
95580
+ var getCellData = function getCellData(r, c) {
95581
+ var _d$r;
95582
+ return lodash.omit(d === null || d === void 0 ? void 0 : (_d$r = d[r]) === null || _d$r === void 0 ? void 0 : _d$r[c], ["tip"]);
95583
+ };
95448
95584
  for (var a = a1; a <= a2; a += 1) {
95449
95585
  var obj = {};
95450
95586
  var arrData = [];
@@ -95457,9 +95593,9 @@
95457
95593
  var _data11;
95458
95594
  var data = void 0;
95459
95595
  if (direction === "down" || direction === "up") {
95460
- data = d[b][a];
95596
+ data = getCellData(b, a);
95461
95597
  } else if (direction === "right" || direction === "left") {
95462
- data = d[a][b];
95598
+ data = getCellData(a, b);
95463
95599
  }
95464
95600
  var str = void 0;
95465
95601
  if (((_data11 = data) === null || _data11 === void 0 ? void 0 : _data11.v) != null && data.f == null) {
@@ -97856,6 +97992,7 @@
97856
97992
  regCheck = _ref.regCheck,
97857
97993
  wordCheck = _ref.wordCheck,
97858
97994
  caseCheck = _ref.caseCheck;
97995
+ var searchType = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : "v";
97859
97996
  var arr = [];
97860
97997
  var obj = {};
97861
97998
  for (var s = 0; s < range.length; s += 1) {
@@ -97867,7 +98004,15 @@
97867
98004
  for (var c = c1; c <= c2; c += 1) {
97868
98005
  var cell = flowdata[r][c];
97869
98006
  if (cell != null) {
97870
- var value = valueShowEs(r, c, flowdata);
98007
+ var value = void 0;
98008
+ if (searchType === "f") {
98009
+ value = cell.f;
98010
+ } else if (searchType === "m") {
98011
+ var _cell$m;
98012
+ value = (_cell$m = cell.m) !== null && _cell$m !== void 0 ? _cell$m : cell.v;
98013
+ } else {
98014
+ value = valueShowEs(r, c, flowdata);
98015
+ }
97871
98016
  if (value === 0) {
97872
98017
  value = value.toString();
97873
98018
  }
@@ -97942,117 +98087,122 @@
97942
98087
  }
97943
98088
  return arr;
97944
98089
  }
98090
+ function searchSheet(searchText, checkModes, sheet) {
98091
+ var searchType = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : "v";
98092
+ var flowdata = sheet.data;
98093
+ if (!flowdata || flowdata.length === 0 || flowdata[0].length === 0) {
98094
+ return [];
98095
+ }
98096
+ var range = [{
98097
+ row: [0, flowdata.length - 1],
98098
+ column: [0, flowdata[0].length - 1]
98099
+ }];
98100
+ return getSearchIndexArr(searchText, range, flowdata, checkModes, searchType);
98101
+ }
97945
98102
  function searchNext(ctx, searchText, checkModes) {
97946
- var _ctx$luckysheet_selec, _ctx$luckysheet_selec2;
98103
+ var _getSheetIndex, _currentSelection$0$r, _currentSelection$, _currentSelection$0$c, _currentSelection$2;
98104
+ var searchType = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : "v";
97947
98105
  var _locale = locale(ctx),
97948
98106
  findAndReplace = _locale.findAndReplace;
97949
- var flowdata = getFlowdata(ctx);
97950
- if (searchText === "" || searchText == null || flowdata == null) {
98107
+ if (searchText === "" || searchText == null) {
97951
98108
  return findAndReplace.searchInputTip;
97952
98109
  }
97953
- var range;
97954
- if (lodash.size(ctx.luckysheet_select_save) === 0 || ((_ctx$luckysheet_selec = ctx.luckysheet_select_save) === null || _ctx$luckysheet_selec === void 0 ? void 0 : _ctx$luckysheet_selec.length) === 1 && ctx.luckysheet_select_save[0].row[0] === ctx.luckysheet_select_save[0].row[1] && ctx.luckysheet_select_save[0].column[0] === ctx.luckysheet_select_save[0].column[1]) {
97955
- range = [{
97956
- row: [0, flowdata.length - 1],
97957
- column: [0, flowdata[0].length - 1],
97958
- row_focus: 0,
97959
- column_focus: 0
97960
- }];
97961
- } else {
97962
- range = lodash.assign([], ctx.luckysheet_select_save);
97963
- }
97964
- var searchIndexArr = getSearchIndexArr(searchText, range, flowdata, checkModes);
97965
- if (searchIndexArr.length === 0) {
98110
+ var sheets = ctx.luckysheetfile;
98111
+ if (!sheets || sheets.length === 0) {
97966
98112
  return findAndReplace.noFindTip;
97967
98113
  }
97968
- var count = 0;
97969
- if (lodash.size(ctx.luckysheet_select_save) === 0 || ((_ctx$luckysheet_selec2 = ctx.luckysheet_select_save) === null || _ctx$luckysheet_selec2 === void 0 ? void 0 : _ctx$luckysheet_selec2.length) === 1 && ctx.luckysheet_select_save[0].row[0] === ctx.luckysheet_select_save[0].row[1] && ctx.luckysheet_select_save[0].column[0] === ctx.luckysheet_select_save[0].column[1]) {
97970
- if (lodash.size(ctx.luckysheet_select_save) === 0) {
97971
- count = 0;
97972
- } else {
97973
- for (var i = 0; i < searchIndexArr.length; i += 1) {
97974
- if (searchIndexArr[i].r === ctx.luckysheet_select_save[0].row[0] && searchIndexArr[i].c === ctx.luckysheet_select_save[0].column[0]) {
97975
- if (i === searchIndexArr.length - 1) {
97976
- count = 0;
97977
- } else {
97978
- count = i + 1;
97979
- }
98114
+ var currentSheetIndex = (_getSheetIndex = getSheetIndex(ctx, ctx.currentSheetId)) !== null && _getSheetIndex !== void 0 ? _getSheetIndex : 0;
98115
+ var currentSelection = ctx.luckysheet_select_save;
98116
+ var currentR = (_currentSelection$0$r = currentSelection === null || currentSelection === void 0 ? void 0 : (_currentSelection$ = currentSelection[0]) === null || _currentSelection$ === void 0 ? void 0 : _currentSelection$.row_focus) !== null && _currentSelection$0$r !== void 0 ? _currentSelection$0$r : -1;
98117
+ var currentC = (_currentSelection$0$c = currentSelection === null || currentSelection === void 0 ? void 0 : (_currentSelection$2 = currentSelection[0]) === null || _currentSelection$2 === void 0 ? void 0 : _currentSelection$2.column_focus) !== null && _currentSelection$0$c !== void 0 ? _currentSelection$0$c : -1;
98118
+ var totalSheets = sheets.length;
98119
+ for (var offset = 0; offset < totalSheets; offset += 1) {
98120
+ var sheetIdx = (currentSheetIndex + offset) % totalSheets;
98121
+ var sheet = sheets[sheetIdx];
98122
+ var matches = searchSheet(searchText, checkModes, sheet, searchType);
98123
+ if (matches.length === 0) continue;
98124
+ var foundMatch = null;
98125
+ if (offset === 0 && currentR >= 0 && currentC >= 0) {
98126
+ for (var i = 0; i < matches.length; i += 1) {
98127
+ var m = matches[i];
98128
+ if (m.r > currentR || m.r === currentR && m.c > currentC) {
98129
+ foundMatch = m;
97980
98130
  break;
97981
98131
  }
97982
98132
  }
97983
98133
  }
97984
- ctx.luckysheet_select_save = normalizeSelection(ctx, [{
97985
- row: [searchIndexArr[count].r, searchIndexArr[count].r],
97986
- column: [searchIndexArr[count].c, searchIndexArr[count].c]
97987
- }]);
97988
- } else {
97989
- var rf = range[range.length - 1].row_focus;
97990
- var cf = range[range.length - 1].column_focus;
97991
- for (var _i = 0; _i < searchIndexArr.length; _i += 1) {
97992
- if (searchIndexArr[_i].r === rf && searchIndexArr[_i].c === cf) {
97993
- if (_i === searchIndexArr.length - 1) {
97994
- count = 0;
97995
- } else {
97996
- count = _i + 1;
97997
- }
97998
- break;
98134
+ if (!foundMatch && offset > 0) {
98135
+ var _matches = _slicedToArray$2(matches, 1);
98136
+ foundMatch = _matches[0];
98137
+ }
98138
+ if (!foundMatch && offset === 0 && matches.length > 0) {
98139
+ var _matches2 = _slicedToArray$2(matches, 1);
98140
+ foundMatch = _matches2[0];
98141
+ if (matches.length === 1 && matches[0].r === currentR && matches[0].c === currentC) {
98142
+ foundMatch = null;
97999
98143
  }
98000
98144
  }
98001
- for (var s = 0; s < range.length; s += 1) {
98002
- var r1 = range[s].row[0];
98003
- var r2 = range[s].row[1];
98004
- var c1 = range[s].column[0];
98005
- var c2 = range[s].column[1];
98006
- if (searchIndexArr[count].r >= r1 && searchIndexArr[count].r <= r2 && searchIndexArr[count].c >= c1 && searchIndexArr[count].c <= c2) {
98007
- var obj = range[s];
98008
- obj.row_focus = searchIndexArr[count].r;
98009
- obj.column_focus = searchIndexArr[count].c;
98010
- range.splice(s, 1);
98011
- range.push(obj);
98012
- break;
98145
+ if (foundMatch) {
98146
+ if (sheetIdx !== currentSheetIndex) {
98147
+ changeSheet(ctx, sheet.id);
98013
98148
  }
98149
+ ctx.luckysheet_select_save = normalizeSelection(ctx, [{
98150
+ row: [foundMatch.r, foundMatch.r],
98151
+ column: [foundMatch.c, foundMatch.c]
98152
+ }]);
98153
+ scrollToHighlightCell(ctx, foundMatch.r, foundMatch.c);
98154
+ return null;
98014
98155
  }
98015
- ctx.luckysheet_select_save = range;
98016
98156
  }
98017
- scrollToHighlightCell(ctx, searchIndexArr[count].r, searchIndexArr[count].c);
98018
- return null;
98157
+ return findAndReplace.noFindTip;
98019
98158
  }
98020
98159
  function searchAll(ctx, searchText, checkModes) {
98021
- var _ctx$luckysheet_selec3;
98022
- var flowdata = getFlowdata(ctx);
98160
+ var searchType = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : "v";
98023
98161
  var searchResult = [];
98024
- if (searchText === "" || searchText == null || flowdata == null) {
98162
+ if (searchText === "" || searchText == null) {
98025
98163
  return searchResult;
98026
98164
  }
98027
- var range;
98028
- if (lodash.size(ctx.luckysheet_select_save) === 0 || ((_ctx$luckysheet_selec3 = ctx.luckysheet_select_save) === null || _ctx$luckysheet_selec3 === void 0 ? void 0 : _ctx$luckysheet_selec3.length) === 1 && ctx.luckysheet_select_save[0].row[0] === ctx.luckysheet_select_save[0].row[1] && ctx.luckysheet_select_save[0].column[0] === ctx.luckysheet_select_save[0].column[1]) {
98029
- range = [{
98030
- row: [0, flowdata.length - 1],
98031
- column: [0, flowdata[0].length - 1]
98032
- }];
98033
- } else {
98034
- range = lodash.assign([], ctx.luckysheet_select_save);
98035
- }
98036
- var searchIndexArr = getSearchIndexArr(searchText, range, flowdata, checkModes);
98037
- if (searchIndexArr.length === 0) {
98165
+ var sheets = ctx.luckysheetfile;
98166
+ if (!sheets || sheets.length === 0) {
98038
98167
  return searchResult;
98039
98168
  }
98040
- for (var i = 0; i < searchIndexArr.length; i += 1) {
98041
- var _ctx$luckysheetfile;
98042
- var value_ShowEs = valueShowEs(searchIndexArr[i].r, searchIndexArr[i].c, flowdata).toString();
98043
- searchResult.push({
98044
- r: searchIndexArr[i].r,
98045
- c: searchIndexArr[i].c,
98046
- sheetName: (_ctx$luckysheetfile = ctx.luckysheetfile[getSheetIndex(ctx, ctx.currentSheetId) || 0]) === null || _ctx$luckysheetfile === void 0 ? void 0 : _ctx$luckysheetfile.name,
98047
- sheetId: ctx.currentSheetId,
98048
- cellPosition: "".concat(chatatABC(searchIndexArr[i].c)).concat(searchIndexArr[i].r + 1),
98049
- value: value_ShowEs
98050
- });
98169
+ var firstMatch = null;
98170
+ for (var sheetIdx = 0; sheetIdx < sheets.length; sheetIdx += 1) {
98171
+ var sheet = sheets[sheetIdx];
98172
+ var matches = searchSheet(searchText, checkModes, sheet, searchType);
98173
+ if (matches.length === 0) continue;
98174
+ var flowdata = sheet.data;
98175
+ if (!flowdata) continue;
98176
+ for (var i = 0; i < matches.length; i += 1) {
98177
+ var match = matches[i];
98178
+ var value_ShowEs = valueShowEs(match.r, match.c, flowdata).toString();
98179
+ searchResult.push({
98180
+ r: match.r,
98181
+ c: match.c,
98182
+ sheetName: sheet.name,
98183
+ sheetId: sheet.id,
98184
+ cellPosition: "".concat(chatatABC(match.c)).concat(match.r + 1),
98185
+ value: value_ShowEs
98186
+ });
98187
+ if (!firstMatch) {
98188
+ firstMatch = {
98189
+ r: match.r,
98190
+ c: match.c,
98191
+ sheetId: sheet.id
98192
+ };
98193
+ }
98194
+ }
98195
+ }
98196
+ if (firstMatch) {
98197
+ if (firstMatch.sheetId !== ctx.currentSheetId) {
98198
+ changeSheet(ctx, firstMatch.sheetId);
98199
+ }
98200
+ ctx.luckysheet_select_save = normalizeSelection(ctx, [{
98201
+ row: [firstMatch.r, firstMatch.r],
98202
+ column: [firstMatch.c, firstMatch.c]
98203
+ }]);
98204
+ scrollToHighlightCell(ctx, firstMatch.r, firstMatch.c);
98051
98205
  }
98052
- ctx.luckysheet_select_save = normalizeSelection(ctx, [{
98053
- row: [searchIndexArr[0].r, searchIndexArr[0].r],
98054
- column: [searchIndexArr[0].c, searchIndexArr[0].c]
98055
- }]);
98056
98206
  return searchResult;
98057
98207
  }
98058
98208
  function onSearchDialogMoveStart(globalCache, e, container) {
@@ -98101,7 +98251,8 @@
98101
98251
  lodash.set(globalCache, "searchDialog.moveProps", undefined);
98102
98252
  }
98103
98253
  function replace(ctx, searchText, replaceText, checkModes) {
98104
- var _ctx$luckysheet_selec4, _ctx$luckysheet_selec5;
98254
+ var _ctx$luckysheet_selec, _ctx$luckysheet_selec2;
98255
+ var searchType = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : "v";
98105
98256
  var _locale2 = locale(ctx),
98106
98257
  findAndReplace = _locale2.findAndReplace;
98107
98258
  var allowEdit = isAllowEdit(ctx);
@@ -98113,7 +98264,7 @@
98113
98264
  return findAndReplace.searchInputTip;
98114
98265
  }
98115
98266
  var range;
98116
- if (lodash.size(ctx.luckysheet_select_save) === 0 || ((_ctx$luckysheet_selec4 = ctx.luckysheet_select_save) === null || _ctx$luckysheet_selec4 === void 0 ? void 0 : _ctx$luckysheet_selec4.length) === 1 && ctx.luckysheet_select_save[0].row[0] === ctx.luckysheet_select_save[0].row[1] && ctx.luckysheet_select_save[0].column[0] === ctx.luckysheet_select_save[0].column[1]) {
98267
+ if (lodash.size(ctx.luckysheet_select_save) === 0 || ((_ctx$luckysheet_selec = ctx.luckysheet_select_save) === null || _ctx$luckysheet_selec === void 0 ? void 0 : _ctx$luckysheet_selec.length) === 1 && ctx.luckysheet_select_save[0].row[0] === ctx.luckysheet_select_save[0].row[1] && ctx.luckysheet_select_save[0].column[0] === ctx.luckysheet_select_save[0].column[1]) {
98117
98268
  range = [{
98118
98269
  row: [0, flowdata.length - 1],
98119
98270
  column: [0, flowdata[0].length - 1]
@@ -98121,12 +98272,12 @@
98121
98272
  } else {
98122
98273
  range = lodash.assign([], ctx.luckysheet_select_save);
98123
98274
  }
98124
- var searchIndexArr = getSearchIndexArr(searchText, range, flowdata, checkModes);
98275
+ var searchIndexArr = getSearchIndexArr(searchText, range, flowdata, checkModes, searchType);
98125
98276
  if (searchIndexArr.length === 0) {
98126
98277
  return findAndReplace.noReplceTip;
98127
98278
  }
98128
98279
  var count = null;
98129
- var last = (_ctx$luckysheet_selec5 = ctx.luckysheet_select_save) === null || _ctx$luckysheet_selec5 === void 0 ? void 0 : _ctx$luckysheet_selec5[ctx.luckysheet_select_save.length - 1];
98280
+ var last = (_ctx$luckysheet_selec2 = ctx.luckysheet_select_save) === null || _ctx$luckysheet_selec2 === void 0 ? void 0 : _ctx$luckysheet_selec2[ctx.luckysheet_select_save.length - 1];
98130
98281
  var rf = last === null || last === void 0 ? void 0 : last.row_focus;
98131
98282
  var cf = last === null || last === void 0 ? void 0 : last.column_focus;
98132
98283
  for (var i = 0; i < searchIndexArr.length; i += 1) {
@@ -98169,7 +98320,8 @@
98169
98320
  return null;
98170
98321
  }
98171
98322
  function replaceAll(ctx, searchText, replaceText, checkModes) {
98172
- var _ctx$luckysheet_selec6;
98323
+ var _ctx$luckysheet_selec3;
98324
+ var searchType = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : "v";
98173
98325
  var _locale3 = locale(ctx),
98174
98326
  findAndReplace = _locale3.findAndReplace;
98175
98327
  var allowEdit = isAllowEdit(ctx);
@@ -98181,7 +98333,7 @@
98181
98333
  return findAndReplace.searchInputTip;
98182
98334
  }
98183
98335
  var range;
98184
- if (lodash.size(ctx.luckysheet_select_save) === 0 || ((_ctx$luckysheet_selec6 = ctx.luckysheet_select_save) === null || _ctx$luckysheet_selec6 === void 0 ? void 0 : _ctx$luckysheet_selec6.length) === 1 && ctx.luckysheet_select_save[0].row[0] === ctx.luckysheet_select_save[0].row[1] && ctx.luckysheet_select_save[0].column[0] === ctx.luckysheet_select_save[0].column[1]) {
98336
+ if (lodash.size(ctx.luckysheet_select_save) === 0 || ((_ctx$luckysheet_selec3 = ctx.luckysheet_select_save) === null || _ctx$luckysheet_selec3 === void 0 ? void 0 : _ctx$luckysheet_selec3.length) === 1 && ctx.luckysheet_select_save[0].row[0] === ctx.luckysheet_select_save[0].row[1] && ctx.luckysheet_select_save[0].column[0] === ctx.luckysheet_select_save[0].column[1]) {
98185
98337
  range = [{
98186
98338
  row: [0, flowdata.length - 1],
98187
98339
  column: [0, flowdata[0].length - 1]
@@ -98189,7 +98341,7 @@
98189
98341
  } else {
98190
98342
  range = lodash.assign([], ctx.luckysheet_select_save);
98191
98343
  }
98192
- var searchIndexArr = getSearchIndexArr(searchText, range, flowdata, checkModes);
98344
+ var searchIndexArr = getSearchIndexArr(searchText, range, flowdata, checkModes, searchType);
98193
98345
  if (searchIndexArr.length === 0) {
98194
98346
  return findAndReplace.noReplceTip;
98195
98347
  }
@@ -98214,9 +98366,9 @@
98214
98366
  } else {
98215
98367
  reg = new RegExp(getRegExpStr(searchText), "ig");
98216
98368
  }
98217
- for (var _i2 = 0; _i2 < searchIndexArr.length; _i2 += 1) {
98218
- var _r = searchIndexArr[_i2].r;
98219
- var _c = searchIndexArr[_i2].c;
98369
+ for (var _i = 0; _i < searchIndexArr.length; _i += 1) {
98370
+ var _r = searchIndexArr[_i].r;
98371
+ var _c = searchIndexArr[_i].c;
98220
98372
  var _v2 = valueShowEs(_r, _c, d).toString().replace(reg, replaceText);
98221
98373
  setCellValue(ctx, _r, _c, d, _v2);
98222
98374
  range.push({
@@ -100651,6 +100803,7 @@
100651
100803
  copyRich: false,
100652
100804
  renderCalcInfo: undefined,
100653
100805
  renderCellOptions: undefined,
100806
+ renderCellTip: undefined,
100654
100807
  renderFreezeCol: undefined,
100655
100808
  renderFreezeRow: undefined,
100656
100809
  renderFilter: undefined,
@@ -101844,7 +101997,7 @@
101844
101997
  }
101845
101998
  }
101846
101999
  function mouseRender(ctx, globalCache, e, cellInput, scrollX, scrollY, container, fxInput) {
101847
- var _ctx$rangeDialog, _ctx$rangeDialog2;
102000
+ var _ctx$rangeDialog;
101848
102001
  var rect = container.getBoundingClientRect();
101849
102002
  if (ctx.luckysheet_scroll_status && !ctx.luckysheet_cols_change_size && !ctx.luckysheet_rows_change_size) {
101850
102003
  var left = ctx.scrollLeft;
@@ -101872,8 +102025,7 @@
101872
102025
  scrollX.scrollLeft = sleft;
101873
102026
  }
101874
102027
  }
101875
- console.log('ctx.rangeDialog?.singleSelect', (_ctx$rangeDialog = ctx.rangeDialog) === null || _ctx$rangeDialog === void 0 ? void 0 : _ctx$rangeDialog.singleSelect);
101876
- if ((_ctx$rangeDialog2 = ctx.rangeDialog) === null || _ctx$rangeDialog2 === void 0 ? void 0 : _ctx$rangeDialog2.singleSelect) {
102028
+ if ((_ctx$rangeDialog = ctx.rangeDialog) === null || _ctx$rangeDialog === void 0 ? void 0 : _ctx$rangeDialog.singleSelect) {
101877
102029
  return;
101878
102030
  }
101879
102031
  if (ctx.luckysheet_select_status) {
@@ -106589,7 +106741,7 @@
106589
106741
  onClick: function onClick() {
106590
106742
  setContext(function (draftCtx) {
106591
106743
  setSelectedCell(undefined);
106592
- var alertMsg = replaceAll(draftCtx, searchText, replaceText, checkMode);
106744
+ var alertMsg = replaceAll(draftCtx, searchText, replaceText, checkMode, searchType);
106593
106745
  showAlert(alertMsg);
106594
106746
  });
106595
106747
  }
@@ -106599,7 +106751,7 @@
106599
106751
  onClick: function onClick() {
106600
106752
  return setContext(function (draftCtx) {
106601
106753
  setSelectedCell(undefined);
106602
- var alertMsg = replace(draftCtx, searchText, replaceText, checkMode);
106754
+ var alertMsg = replace(draftCtx, searchText, replaceText, checkMode, searchType);
106603
106755
  if (alertMsg != null) {
106604
106756
  showAlert(alertMsg);
106605
106757
  }
@@ -106612,7 +106764,7 @@
106612
106764
  return setContext(function (draftCtx) {
106613
106765
  setSelectedCell(undefined);
106614
106766
  if (!searchText) return;
106615
- var res = searchAll(draftCtx, searchText, checkMode);
106767
+ var res = searchAll(draftCtx, searchText, checkMode, searchType);
106616
106768
  setSearchResult(res);
106617
106769
  if (lodash.isEmpty(res)) showAlert(findAndReplace.noFindTip);
106618
106770
  });
@@ -106623,7 +106775,7 @@
106623
106775
  onClick: function onClick() {
106624
106776
  return setContext(function (draftCtx) {
106625
106777
  setSearchResult([]);
106626
- var alertMsg = searchNext(draftCtx, searchText, checkMode);
106778
+ var alertMsg = searchNext(draftCtx, searchText, checkMode, searchType);
106627
106779
  if (alertMsg != null) showAlert(alertMsg);
106628
106780
  });
106629
106781
  }
@@ -108595,6 +108747,133 @@
108595
108747
  }));
108596
108748
  };
108597
108749
 
108750
+ var CircularReferenceDialog = function CircularReferenceDialog() {
108751
+ var _useContext = React.useContext(WorkbookContext),
108752
+ context = _useContext.context,
108753
+ setContext = _useContext.setContext;
108754
+ var _locale = locale(context),
108755
+ formulaMore = _locale.formulaMore;
108756
+ var cells = context.circularReference || [];
108757
+ var _useState = React.useState({
108758
+ x: 0,
108759
+ y: 0
108760
+ }),
108761
+ _useState2 = _slicedToArray(_useState, 2),
108762
+ offset = _useState2[0],
108763
+ setOffset = _useState2[1];
108764
+ var dragRef = React.useRef({
108765
+ dragging: false,
108766
+ startX: 0,
108767
+ startY: 0,
108768
+ initialOffsetX: 0,
108769
+ initialOffsetY: 0
108770
+ });
108771
+ var handleDragStart = React.useCallback(function (e) {
108772
+ dragRef.current = {
108773
+ dragging: true,
108774
+ startX: e.pageX,
108775
+ startY: e.pageY,
108776
+ initialOffsetX: offset.x,
108777
+ initialOffsetY: offset.y
108778
+ };
108779
+ }, [offset]);
108780
+ var handleDragMove = React.useCallback(function (e) {
108781
+ if (!dragRef.current.dragging) return;
108782
+ var dx = e.pageX - dragRef.current.startX;
108783
+ var dy = e.pageY - dragRef.current.startY;
108784
+ setOffset({
108785
+ x: dragRef.current.initialOffsetX + dx,
108786
+ y: dragRef.current.initialOffsetY + dy
108787
+ });
108788
+ }, []);
108789
+ var handleDragEnd = React.useCallback(function () {
108790
+ dragRef.current.dragging = false;
108791
+ }, []);
108792
+ var handleNavigate = function handleNavigate(r, c, sheetId) {
108793
+ setContext(function (draftCtx) {
108794
+ if (sheetId !== draftCtx.currentSheetId) {
108795
+ changeSheet(draftCtx, sheetId);
108796
+ }
108797
+ draftCtx.luckysheet_select_save = normalizeSelection(draftCtx, [{
108798
+ row: [r, r],
108799
+ column: [c, c]
108800
+ }]);
108801
+ scrollToHighlightCell(draftCtx, r, c);
108802
+ });
108803
+ };
108804
+ var handleDismiss = function handleDismiss() {
108805
+ setContext(function (ctx) {
108806
+ delete ctx.circularReference;
108807
+ });
108808
+ };
108809
+ return /*#__PURE__*/React__default['default'].createElement("div", {
108810
+ className: "leankylin-circular-ref-dialog",
108811
+ style: {
108812
+ transform: "translate(".concat(offset.x, "px, ").concat(offset.y, "px)")
108813
+ },
108814
+ onMouseMove: handleDragMove,
108815
+ onMouseUp: handleDragEnd,
108816
+ onMouseLeave: handleDragEnd,
108817
+ onWheelCapture: function onWheelCapture(e) {
108818
+ return e.stopPropagation();
108819
+ }
108820
+ }, /*#__PURE__*/React__default['default'].createElement("div", {
108821
+ className: "leankylin-circular-ref-dialog-title",
108822
+ onMouseDown: handleDragStart
108823
+ }, /*#__PURE__*/React__default['default'].createElement("div", {
108824
+ className: "leankylin-circular-ref-dialog-title-icon"
108825
+ }, /*#__PURE__*/React__default['default'].createElement("svg", {
108826
+ viewBox: "0 0 24 24",
108827
+ fill: "none",
108828
+ stroke: "currentColor",
108829
+ strokeWidth: "2",
108830
+ strokeLinecap: "round",
108831
+ strokeLinejoin: "round"
108832
+ }, /*#__PURE__*/React__default['default'].createElement("circle", {
108833
+ cx: "12",
108834
+ cy: "12",
108835
+ r: "10"
108836
+ }), /*#__PURE__*/React__default['default'].createElement("line", {
108837
+ x1: "12",
108838
+ y1: "8",
108839
+ x2: "12",
108840
+ y2: "12"
108841
+ }), /*#__PURE__*/React__default['default'].createElement("line", {
108842
+ x1: "12",
108843
+ y1: "16",
108844
+ x2: "12.01",
108845
+ y2: "16"
108846
+ }))), /*#__PURE__*/React__default['default'].createElement("span", {
108847
+ className: "leankylin-circular-ref-dialog-title-text"
108848
+ }, formulaMore.circularReferenceTitle)), /*#__PURE__*/React__default['default'].createElement("div", {
108849
+ className: "leankylin-circular-ref-dialog-desc"
108850
+ }, formulaMore.circularReferenceDescription), /*#__PURE__*/React__default['default'].createElement("div", {
108851
+ className: "leankylin-circular-ref-dialog-table-wrap"
108852
+ }, /*#__PURE__*/React__default['default'].createElement("table", {
108853
+ className: "leankylin-circular-ref-dialog-table"
108854
+ }, /*#__PURE__*/React__default['default'].createElement("thead", null, /*#__PURE__*/React__default['default'].createElement("tr", null, /*#__PURE__*/React__default['default'].createElement("th", null, formulaMore.circularReferenceSheet), /*#__PURE__*/React__default['default'].createElement("th", null, formulaMore.circularReferenceCell), /*#__PURE__*/React__default['default'].createElement("th", null, formulaMore.circularReferenceFormula))), /*#__PURE__*/React__default['default'].createElement("tbody", null, cells.map(function (cell, index) {
108855
+ return /*#__PURE__*/React__default['default'].createElement("tr", {
108856
+ key: index,
108857
+ className: "leankylin-circular-ref-dialog-table-row",
108858
+ onClick: function onClick() {
108859
+ return handleNavigate(cell.r, cell.c, cell.sheetId);
108860
+ }
108861
+ }, /*#__PURE__*/React__default['default'].createElement("td", null, /*#__PURE__*/React__default['default'].createElement("span", {
108862
+ className: "leankylin-circular-ref-dialog-table-cell-sheet"
108863
+ }, cell.sheetName || "-")), /*#__PURE__*/React__default['default'].createElement("td", null, /*#__PURE__*/React__default['default'].createElement("span", {
108864
+ className: "leankylin-circular-ref-dialog-table-cell-position"
108865
+ }, cell.cellPosition)), /*#__PURE__*/React__default['default'].createElement("td", null, /*#__PURE__*/React__default['default'].createElement("span", {
108866
+ className: "leankylin-circular-ref-dialog-table-cell-formula"
108867
+ }, cell.formulaContent)));
108868
+ })))), /*#__PURE__*/React__default['default'].createElement("div", {
108869
+ className: "leankylin-circular-ref-dialog-footer"
108870
+ }, /*#__PURE__*/React__default['default'].createElement("button", {
108871
+ type: "button",
108872
+ className: "leankylin-circular-ref-dialog-footer-btn",
108873
+ onClick: handleDismiss
108874
+ }, locale(context).button.confirm)));
108875
+ };
108876
+
108598
108877
  var SheetOverlay = function SheetOverlay() {
108599
108878
  var _refs$cellArea$curren, _refs$cellArea$curren2, _context$luckysheet_s, _context$luckysheet_s2, _context$luckysheet_s3, _context$luckysheet_s4, _context$luckysheet_s5, _context$luckysheet_s6, _context$presences$le, _context$presences, _context$linkCard, _context$rangeDialog;
108600
108879
  var _useContext = React.useContext(WorkbookContext),
@@ -109097,7 +109376,21 @@
109097
109376
  style: {
109098
109377
  left: context.scrollLeft
109099
109378
  }
109100
- }, settings.Footer)))))));
109379
+ }, settings.Footer)))))), context.circularReference && context.circularReference.length > 0 && ( /*#__PURE__*/React__default['default'].createElement("div", {
109380
+ className: "leankylin-circular-ref-overlay",
109381
+ onMouseDown: function onMouseDown(e) {
109382
+ return e.stopPropagation();
109383
+ },
109384
+ onMouseMove: function onMouseMove(e) {
109385
+ return e.stopPropagation();
109386
+ },
109387
+ onMouseUp: function onMouseUp(e) {
109388
+ return e.stopPropagation();
109389
+ },
109390
+ onContextMenu: function onContextMenu(e) {
109391
+ return e.stopPropagation();
109392
+ }
109393
+ }, /*#__PURE__*/React__default['default'].createElement(CircularReferenceDialog, null))));
109101
109394
  };
109102
109395
 
109103
109396
  var Sheet = function Sheet(_ref) {