@fileverse-dev/fortune-core 1.0.2-mod-11 → 1.0.2-mod-12

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.js CHANGED
@@ -9005,6 +9005,7 @@ var en = {
9005
9005
  moreFormats: "More formats",
9006
9006
  "border-all": "Border All",
9007
9007
  "merge-all": "Merge All Cell",
9008
+ format: "Format",
9008
9009
  font: "Font",
9009
9010
  "font-size": "Font size",
9010
9011
  bold: "Bold (Ctrl+B)",
@@ -9134,7 +9135,30 @@ var en = {
9134
9135
  tipInputNumberLimit: "The increase range is limited to 1-100",
9135
9136
  tipRowHeightLimit: "Row height must be between 0 ~ 545",
9136
9137
  tipColumnWidthLimit: "The column width must be between 0 ~ 2038",
9137
- pageInfoFull: "Total ${total},${totalPage} page,All data displayed"
9138
+ pageInfoFull: "Total ${total},${totalPage} page,All data displayed",
9139
+ sheetIsFocused: "Sheet focus lock enabled.",
9140
+ sheetNotFocused: "Sheet focus lock disabled.",
9141
+ sheetSrIntro: "To toggle sheet focus to assist with toolbar and other non-sheet navigation, use Shift, Control, F.",
9142
+ currentCellInput: "Current cell input",
9143
+ newSheet: "New sheet",
9144
+ sheetOptions: "Sheet options",
9145
+ Dropdown: "Dropdown",
9146
+ zoomIn: "Zoom in",
9147
+ zoomOut: "Zoom out",
9148
+ toggleSheetFocusShortcut: "Toggle sheet focus lock: Shift, Control, F.",
9149
+ selectRangeShortcut: "Select range: Shift, arrow keys.",
9150
+ autoFillDownShortcut: "Auto-fill selection down from first cell: Control or Meta key, D.",
9151
+ autoFillRightShortcut: "Auto-fill selection right from first cell: Control or Meta key, R.",
9152
+ boldTextShortcut: "Bold text: Control or Meta key, B.",
9153
+ copyShortcut: "Copy: Control or Meta key, C.",
9154
+ pasteShortcut: "Paste: Control or Meta key, V.",
9155
+ undoShortcut: "Undo: Control or Meta key, Z.",
9156
+ redoShortcut: "Redo: Control or Meta key, Shift, Z.",
9157
+ deleteCellContentShortcut: "Delete cell content: Delete or Backspace.",
9158
+ confirmCellEditShortcut: "Confirm cell edit and move down: Enter.",
9159
+ moveRightShortcut: "Move right: Tab.",
9160
+ moveLeftShortcut: "Move left: Shift, Tab.",
9161
+ shortcuts: "Keyboard Shortcuts"
9138
9162
  },
9139
9163
  currencyDetail: [{
9140
9164
  name: "RMB",
@@ -9731,7 +9755,7 @@ var en = {
9731
9755
  }, {
9732
9756
  name: "Indian Rupee",
9733
9757
  pos: "before",
9734
- value: "?"
9758
+ value: ""
9735
9759
  }, {
9736
9760
  name: "Indonesian Rupiah",
9737
9761
  pos: "before",
@@ -9761,6 +9785,19 @@ var en = {
9761
9785
  pos: "before",
9762
9786
  value: "FCFA"
9763
9787
  }],
9788
+ numberFmtList: [{
9789
+ name: "Volts",
9790
+ pos: "after",
9791
+ value: "V"
9792
+ }, {
9793
+ name: "Ampere",
9794
+ pos: "after",
9795
+ value: "A"
9796
+ }, {
9797
+ name: "Ohms",
9798
+ pos: "after",
9799
+ value: "Ω"
9800
+ }],
9764
9801
  defaultFmt: function defaultFmt(currency) {
9765
9802
  return [{
9766
9803
  text: "Auto",
@@ -19541,6 +19578,7 @@ var zh = {
19541
19578
  moreFormats: "更多格式",
19542
19579
  "border-all": "所有边框",
19543
19580
  "merge-all": "全部合并单元格",
19581
+ format: "格式",
19544
19582
  font: "字体",
19545
19583
  "font-size": "字号",
19546
19584
  bold: "粗体 (Ctrl+B)",
@@ -19670,7 +19708,30 @@ var zh = {
19670
19708
  tipInputNumberLimit: "增加范围限制在1-100",
19671
19709
  tipRowHeightLimit: "行高必须在0 ~ 545之间",
19672
19710
  tipColumnWidthLimit: "列宽必须在0 ~ 2038之间",
19673
- pageInfoFull: "共${total}条,${totalPage}页,已显示全部数据"
19711
+ pageInfoFull: "共${total}条,${totalPage}页,已显示全部数据",
19712
+ sheetIsFocused: "已启用工作表焦点锁定。",
19713
+ sheetNotFocused: "工作表焦点锁定已禁用。",
19714
+ sheetSrIntro: "要切换工作表焦点以辅助工具栏和其他非工作表导航,请使用 Shift、Control、F。",
19715
+ currentCellInput: "当前单元格输入",
19716
+ newSheet: "新表",
19717
+ sheetOptions: "图纸选项",
19718
+ Dropdown: "下拉菜单",
19719
+ zoomIn: "放大",
19720
+ zoomOut: "缩小",
19721
+ toggleSheetFocusShortcut: "切换表格焦点锁定: Shift, Control, F。",
19722
+ selectRangeShortcut: "选择范围: Shift, 方向键。",
19723
+ autoFillDownShortcut: "从首个单元格向下自动填充: Control 或 Meta 键, D。",
19724
+ autoFillRightShortcut: "从首个单元格向右自动填充: Control 或 Meta 键, R。",
19725
+ boldTextShortcut: "加粗文本: Control 或 Meta 键, B。",
19726
+ copyShortcut: "复制: Control 或 Meta 键, C。",
19727
+ pasteShortcut: "粘贴: Control 或 Meta 键, V。",
19728
+ undoShortcut: "撤销: Control 或 Meta 键, Z。",
19729
+ redoShortcut: "重做: Control 或 Meta 键, Shift, Z。",
19730
+ deleteCellContentShortcut: "删除单元格内容: Delete 或 Backspace。",
19731
+ confirmCellEditShortcut: "确认编辑并向下移动: Enter。",
19732
+ moveRightShortcut: "向右移动: Tab。",
19733
+ moveLeftShortcut: "向左移动: Shift, Tab。",
19734
+ shortcuts: "键盘快捷键"
19674
19735
  },
19675
19736
  currencyDetail: [{
19676
19737
  name: "人民币",
@@ -20297,6 +20358,19 @@ var zh = {
20297
20358
  pos: "before",
20298
20359
  value: "FCFA"
20299
20360
  }],
20361
+ numberFmtList: [{
20362
+ name: "Volts",
20363
+ pos: "after",
20364
+ value: "V"
20365
+ }, {
20366
+ name: "Ampere",
20367
+ pos: "after",
20368
+ value: "A"
20369
+ }, {
20370
+ name: "Ohms",
20371
+ pos: "after",
20372
+ value: "Ω"
20373
+ }],
20300
20374
  defaultFmt: function defaultFmt(currency) {
20301
20375
  return [{
20302
20376
  text: "自动",
@@ -30105,6 +30179,7 @@ var es = {
30105
30179
  numberDecrease: "Menos decimales",
30106
30180
  numberIncrease: "Más decimales",
30107
30181
  moreFormats: "Más formatos",
30182
+ format: "Formato",
30108
30183
  font: "Fuente",
30109
30184
  "font-size": "Tamaño Fuente",
30110
30185
  bold: "Negrita (Ctrl+B)",
@@ -30222,7 +30297,30 @@ var es = {
30222
30297
  tipInputNumberLimit: "El rango de aumento está limitado a 1-100",
30223
30298
  tipRowHeightLimit: "La altura de la fila debe estar entre 0 ~ 545",
30224
30299
  tipColumnWidthLimit: "El ancho de la columna debe estar entre 0 ~ 2038",
30225
- pageInfoFull: "Total ${total},página ${totalPage},Se muestran todos los datos"
30300
+ pageInfoFull: "Total ${total},página ${totalPage},Se muestran todos los datos",
30301
+ sheetIsFocused: "Bloqueo de enfoque de hoja habilitado.",
30302
+ sheetNotFocused: "Bloqueo de enfoque de hoja desactivado.",
30303
+ sheetSrIntro: "Para alternar el foco de la hoja para ayudar con la barra de herramientas y otra navegación que no sea de hoja, use Mayús, Control, F.",
30304
+ currentCellInput: "Entrada de celda actual",
30305
+ newSheet: "Nueva hoja",
30306
+ sheetOptions: "Opciones de hoja",
30307
+ Dropdown: "Menú desplegable",
30308
+ zoomIn: "Dar un golpe de zoom",
30309
+ zoomOut: "alejar",
30310
+ toggleSheetFocusShortcut: "Alternar bloqueo de enfoque de hoja: Shift, Control, F.",
30311
+ selectRangeShortcut: "Seleccionar rango: Shift, teclas de flecha.",
30312
+ autoFillDownShortcut: "Autocompletar selección hacia abajo desde la primera celda: Control o Meta, D.",
30313
+ autoFillRightShortcut: "Autocompletar selección hacia la derecha desde la primera celda: Control o Meta, R.",
30314
+ boldTextShortcut: "Texto en negrita: Control o Meta, B.",
30315
+ copyShortcut: "Copiar: Control o Meta, C.",
30316
+ pasteShortcut: "Pegar: Control o Meta, V.",
30317
+ undoShortcut: "Deshacer: Control o Meta, Z.",
30318
+ redoShortcut: "Rehacer: Control o Meta, Shift, Z.",
30319
+ deleteCellContentShortcut: "Eliminar contenido de celda: Delete o Backspace.",
30320
+ confirmCellEditShortcut: "Confirmar edición de celda y mover hacia abajo: Enter.",
30321
+ moveRightShortcut: "Mover a la derecha: Tab.",
30322
+ moveLeftShortcut: "Mover a la izquierda: Shift, Tab.",
30323
+ shortcuts: "Atajos de teclado"
30226
30324
  },
30227
30325
  currencyDetail: {
30228
30326
  RMB: "RMB",
@@ -30383,6 +30481,19 @@ var es = {
30383
30481
  ChileanPeso: "Chilean Peso",
30384
30482
  CFAFrancBEAC: "CFA Franc BEAC"
30385
30483
  },
30484
+ numberFmtList: [{
30485
+ name: "Volts",
30486
+ pos: "after",
30487
+ value: "V"
30488
+ }, {
30489
+ name: "Ampere",
30490
+ pos: "after",
30491
+ value: "A"
30492
+ }, {
30493
+ name: "Ohms",
30494
+ pos: "after",
30495
+ value: "Ω"
30496
+ }],
30386
30497
  defaultFmt: function defaultFmt(currency) {
30387
30498
  return [{
30388
30499
  text: "Automático",
@@ -40131,6 +40242,7 @@ var hi = {
40131
40242
  "number-decrease": "दशमलव स्थान घटाएँ",
40132
40243
  "number-increase": "दशमलव स्थान बढ़ाएँ",
40133
40244
  moreFormats: "अधिक फॉर्मेट",
40245
+ format: "प्रारूप",
40134
40246
  "border-all": "सभी सीमाएँ",
40135
40247
  "merge-all": "सभी सेल मिलाएँ",
40136
40248
  font: "फ़ॉन्ट",
@@ -40262,7 +40374,30 @@ var hi = {
40262
40374
  tipInputNumberLimit: "वृद्धि सीमा 1-100 तक सीमित है",
40263
40375
  tipRowHeightLimit: "पंक्ति की ऊँचाई 0 ~ 545 के बीच होनी चाहिए",
40264
40376
  tipColumnWidthLimit: "कॉलम की चौड़ाई 0 ~ 2038 के बीच होनी चाहिए",
40265
- pageInfoFull: "कुल ${total},${totalPage} पृष्ठ,सभी डेटा प्रदर्शित"
40377
+ pageInfoFull: "कुल ${total},${totalPage} पृष्ठ,सभी डेटा प्रदर्शित",
40378
+ sheetIsFocused: "शीट फोकस लॉक सक्षम।",
40379
+ sheetNotFocused: "शीट फ़ोकस लॉक अक्षम किया गया.",
40380
+ sheetSrIntro: "टूलबार और अन्य गैर-शीट नेविगेशन में सहायता के लिए शीट फ़ोकस को टॉगल करने के लिए, Shift, Control, F का उपयोग करें।",
40381
+ currentCellInput: "वर्तमान सेल इनपुट",
40382
+ newSheet: "नई शीट",
40383
+ sheetOptions: "शीट विकल्प",
40384
+ Dropdown: "ड्रॉप डाउन",
40385
+ zoomIn: "ज़ूम इन",
40386
+ zoomOut: "ज़ूम आउट",
40387
+ toggleSheetFocusShortcut: "Alternar bloqueo de enfoque de hoja: Shift, Control, F.",
40388
+ selectRangeShortcut: "Seleccionar rango: Shift, teclas de flecha.",
40389
+ autoFillDownShortcut: "Autocompletar selección hacia abajo desde la primera celda: Control o Meta, D.",
40390
+ autoFillRightShortcut: "Autocompletar selección hacia la derecha desde la primera celda: Control o Meta, R.",
40391
+ boldTextShortcut: "Texto en negrita: Control o Meta, B.",
40392
+ copyShortcut: "Copiar: Control o Meta, C.",
40393
+ pasteShortcut: "Pegar: Control o Meta, V.",
40394
+ undoShortcut: "Deshacer: Control o Meta, Z.",
40395
+ redoShortcut: "Rehacer: Control o Meta, Shift, Z.",
40396
+ deleteCellContentShortcut: "Eliminar contenido de celda: Delete o Backspace.",
40397
+ confirmCellEditShortcut: "Confirmar edición de celda y mover hacia abajo: Enter.",
40398
+ moveRightShortcut: "Mover a la derecha: Tab.",
40399
+ moveLeftShortcut: "Mover a la izquierda: Shift, Tab.",
40400
+ shortcuts: "कुंजीपटल अल्प मार्ग"
40266
40401
  },
40267
40402
  currencyDetail: [{
40268
40403
  name: "चीनी युआन",
@@ -40889,6 +41024,19 @@ var hi = {
40889
41024
  pos: "before",
40890
41025
  value: "FCFA"
40891
41026
  }],
41027
+ numberFmtList: [{
41028
+ name: "Volts",
41029
+ pos: "after",
41030
+ value: "V"
41031
+ }, {
41032
+ name: "Ampere",
41033
+ pos: "after",
41034
+ value: "A"
41035
+ }, {
41036
+ name: "Ohms",
41037
+ pos: "after",
41038
+ value: "Ω"
41039
+ }],
40892
41040
  defaultFmt: function defaultFmt(currency) {
40893
41041
  return [{
40894
41042
  text: "स्वचालित",
@@ -50665,6 +50813,7 @@ var zh_tw = {
50665
50813
  numberDecrease: "减少小數位數",
50666
50814
  numberIncrease: "新增小數位數",
50667
50815
  moreFormats: "更多格式",
50816
+ format: "格式",
50668
50817
  font: "字體",
50669
50818
  "font-size": "字型大小",
50670
50819
  bold: "粗體(Ctrl+B)",
@@ -50783,7 +50932,30 @@ var zh_tw = {
50783
50932
  tipInputNumberLimit: "新增範圍限制在1-100",
50784
50933
  tipRowHeightLimit: "行高必須在0 ~ 545之間",
50785
50934
  tipColumnWidthLimit: "列寬必須在0 ~ 2038之間",
50786
- pageInfoFull: "共${total}條,${totalPage}頁,已顯示全部數據"
50935
+ pageInfoFull: "共${total}條,${totalPage}頁,已顯示全部數據",
50936
+ sheetIsFocused: "已啟用工作表焦點鎖定。",
50937
+ sheetNotFocused: "工作表焦點鎖定已停用。",
50938
+ sheetSrIntro: "若要切換工作表焦點以輔助工具列和其他非工作表導航,請使用 Shift、Control、F。",
50939
+ currentCellInput: "目前儲存格輸入",
50940
+ newSheet: "新表",
50941
+ sheetOptions: "圖紙選項",
50942
+ Dropdown: "下拉式選單",
50943
+ zoomIn: "放大",
50944
+ zoomOut: "縮小",
50945
+ toggleSheetFocusShortcut: "切換工作表焦點鎖定: Shift, Control, F。",
50946
+ selectRangeShortcut: "選擇範圍: Shift, 方向鍵。",
50947
+ autoFillDownShortcut: "從第一個儲存格向下自動填充: Control 或 Meta 鍵, D。",
50948
+ autoFillRightShortcut: "從第一個儲存格向右自動填充: Control 或 Meta 鍵, R。",
50949
+ boldTextShortcut: "加粗文字: Control 或 Meta 鍵, B。",
50950
+ copyShortcut: "複製: Control 或 Meta 鍵, C。",
50951
+ pasteShortcut: "貼上: Control 或 Meta 鍵, V。",
50952
+ undoShortcut: "復原: Control 或 Meta 鍵, Z。",
50953
+ redoShortcut: "重做: Control 或 Meta 鍵, Shift, Z。",
50954
+ deleteCellContentShortcut: "刪除儲存格內容: Delete 或 Backspace。",
50955
+ confirmCellEditShortcut: "確認編輯並向下移動: Enter。",
50956
+ moveRightShortcut: "向右移動: Tab。",
50957
+ moveLeftShortcut: "向左移動: Shift, Tab。",
50958
+ shortcuts: "鍵盤快速鍵"
50787
50959
  },
50788
50960
  currencyDetail: {
50789
50961
  RMB: "人民幣",
@@ -50944,6 +51116,19 @@ var zh_tw = {
50944
51116
  ChileanPeso: "智利比索",
50945
51117
  CFAFrancBEAC: "中非金融合作法郎"
50946
51118
  },
51119
+ numberFmtList: [{
51120
+ name: "Volts",
51121
+ pos: "after",
51122
+ value: "V"
51123
+ }, {
51124
+ name: "Ampere",
51125
+ pos: "after",
51126
+ value: "A"
51127
+ }, {
51128
+ name: "Ohms",
51129
+ pos: "after",
51130
+ value: "Ω"
51131
+ }],
50947
51132
  defaultFmt: function defaultFmt(currency) {
50948
51133
  return [{
50949
51134
  text: "自動",
@@ -53145,6 +53330,7 @@ function getCellTextInfo(cell, renderCtx, sheetCtx, option, ctx) {
53145
53330
  }
53146
53331
  } else {
53147
53332
  value = value.toString();
53333
+ var parsedTextHeight = 0;
53148
53334
  while (_i5 <= value.length) {
53149
53335
  var str = value.substring(anchor, _i5);
53150
53336
  var _measureText3 = getMeasureText(str, renderCtx, sheetCtx);
@@ -53240,6 +53426,8 @@ function getCellTextInfo(cell, renderCtx, sheetCtx, option, ctx) {
53240
53426
  });
53241
53427
  splitIndex += 1;
53242
53428
  spaceOrTwoByte = null;
53429
+ parsedTextHeight += preTextHeight;
53430
+ if (parsedTextHeight >= cellHeight) break;
53243
53431
  } else {
53244
53432
  spaceOrTwoByte = null;
53245
53433
  anchor = _i5 - 1;
@@ -53256,6 +53444,8 @@ function getCellTextInfo(cell, renderCtx, sheetCtx, option, ctx) {
53256
53444
  fs: fontSize
53257
53445
  });
53258
53446
  splitIndex += 1;
53447
+ parsedTextHeight += preTextHeight;
53448
+ if (parsedTextHeight >= cellHeight) break;
53259
53449
  }
53260
53450
  } else if (_i5 === value.length) {
53261
53451
  if (___default['default'].isNil(text_all_split[splitIndex])) {
@@ -53635,9 +53825,9 @@ function isRealNum(val) {
53635
53825
  }
53636
53826
  return !Number.isNaN(Number(val));
53637
53827
  }
53638
- function checkDateTime(str) {
53639
- var reg1 = /^(\d{4})-(\d{1,2})-(\d{1,2})(\s(\d{1,2}):(\d{1,2})(:(\d{1,2}))?)?$/;
53640
- var reg2 = /^(\d{4})\/(\d{1,2})\/(\d{1,2})(\s(\d{1,2}):(\d{1,2})(:(\d{1,2}))?)?$/;
53828
+ function checkDateTime(str, format) {
53829
+ var reg1 = format === "24" ? /^(\d{4})-(\d{1,2})-(\d{1,2})(\s(\d{1,2}):(\d{1,2})(:(\d{1,2}))?)?$/ : /^(\d{4})-(\d{1,2})-(\d{1,2})(\s(\d{1,2}):(\d{1,2})(:(\d{1,2}))?)?\s?(AM|PM)?$/;
53830
+ var reg2 = format === "24" ? /^(\d{4})\/(\d{1,2})\/(\d{1,2})(\s(\d{1,2}):(\d{1,2})(:(\d{1,2}))?)?$/ : /^(\d{4})\/(\d{1,2})\/(\d{1,2})(\s(\d{1,2}):(\d{1,2})(:(\d{1,2}))?)?\s?(AM|PM)?$/;
53641
53831
  if (!reg1.test(str) && !reg2.test(str)) {
53642
53832
  return false;
53643
53833
  }
@@ -53664,10 +53854,11 @@ function checkDateTime(str) {
53664
53854
  return true;
53665
53855
  }
53666
53856
  function isdatetime(s) {
53857
+ var format = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "24";
53667
53858
  if (s === null || s.toString().length < 5) {
53668
53859
  return false;
53669
53860
  }
53670
- if (checkDateTime(s)) {
53861
+ if (checkDateTime(s, format)) {
53671
53862
  return true;
53672
53863
  }
53673
53864
  return false;
@@ -53797,6 +53988,8 @@ function hasPartMC(ctx, cfg, r1, r2, c1, c2) {
53797
53988
  return ret;
53798
53989
  }
53799
53990
 
53991
+ var JAN_1_1900 = 1;
53992
+ var DEC_31_9999 = 2958465;
53800
53993
  var SSF = {};
53801
53994
  var make_ssf = function make_ssf(SSF) {
53802
53995
  SSF.version = "0.11.2";
@@ -53954,8 +54147,44 @@ var make_ssf = function make_ssf(SSF) {
53954
54147
  var q = Math.floor(sgn * P / Q);
53955
54148
  return [q, sgn * P - q * Q, Q];
53956
54149
  }
54150
+ function convert_to_seconds(timeStr) {
54151
+ var hours, minutes;
54152
+ if (timeStr.includes("AM") || timeStr.includes("PM")) {
54153
+ // Handle hh:mm AM/PM format
54154
+ var match = timeStr.match(/^(\d{1,2}):(\d{2})\s?(AM|PM)$/i);
54155
+ if (!match) return NaN;
54156
+ hours = parseInt(match[1], 10);
54157
+ minutes = parseInt(match[2], 10);
54158
+ var period = match[3].toUpperCase();
54159
+ if (hours < 1 || hours > 12 || minutes < 0 || minutes >= 60) {
54160
+ return NaN;
54161
+ }
54162
+
54163
+ // Convert to 24-hour format
54164
+ if (period === "PM" && hours !== 12) {
54165
+ hours += 12;
54166
+ } else if (period === "AM" && hours === 12) {
54167
+ hours = 0;
54168
+ }
54169
+ } else {
54170
+ // Handle hh:mm format
54171
+ var _timeStr$split$map = timeStr.split(":").map(Number),
54172
+ _timeStr$split$map2 = _slicedToArray(_timeStr$split$map, 2),
54173
+ hourPart = _timeStr$split$map2[0],
54174
+ minutePart = _timeStr$split$map2[1];
54175
+ hours = hourPart;
54176
+ minutes = minutePart;
54177
+ if (isNaN(hours) || isNaN(minutes) || hours < 0 || hours > 23 || minutes < 0 || minutes >= 60) {
54178
+ return NaN;
54179
+ }
54180
+ }
54181
+
54182
+ // Convert to seconds
54183
+ return hours * 3600 + minutes * 60;
54184
+ }
53957
54185
  function parse_date_code(v, opts, b2) {
53958
- if (v > 2958465 || v < 0) return null;
54186
+ var _v$includes;
54187
+ if (v > DEC_31_9999 || v < JAN_1_1900) return null;
53959
54188
  var date = v | 0,
53960
54189
  time = Math.floor(86400 * (v - date)),
53961
54190
  dow = 0;
@@ -53998,6 +54227,9 @@ var make_ssf = function make_ssf(SSF) {
53998
54227
  if (date < 60) dow = (dow + 6) % 7;
53999
54228
  if (b2) dow = fix_hijri(d, dout);
54000
54229
  }
54230
+ if ((v === null || v === void 0 ? void 0 : (_v$includes = v.includes) === null || _v$includes === void 0 ? void 0 : _v$includes.call(v, ':')) && isNaN(time)) {
54231
+ time = convert_to_seconds(v);
54232
+ }
54001
54233
  out.y = dout[0];
54002
54234
  out.m = dout[1];
54003
54235
  out.d = dout[2];
@@ -54901,7 +55133,7 @@ var make_ssf = function make_ssf(SSF) {
54901
55133
  break;
54902
55134
  default:
54903
55135
  // if ("¤฿BsBr₵₡₫ƒFtRs.₭kr£₤Lm₥₦₱PQRSkRp৲৳R$S/.〒₮₩¥NT¥zł₴₪៛руб€$,$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP".indexOf(c) === -1) throw new Error('unrecognized character ' + c + ' in ' + fmt);
54904
- if ("¤฿BsBr₵₡₫ƒFtRs.₭kr£₤Lm₥₦₱PQRSkRp৲৳R$S/.〒₮₩¥NT¥zł₴₪៛руб€₹$,$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP$¥LekdinAf$dhAflRial?£BirrKzMOPPGKRsGsB/R$ррlevkrKMzBsPNuFBuKPkrRD$NfkCFA?CVEGMDFrCDHTGNAfLFdjKGSFGGHSRielKCFknKshLSLL£LtRFRONArRfMWKRMMURsMROS/KMDLMTnRC$kr€GELCHFSLLSCRDbSZLSDGSOSSomFCFPTShT$VUVQUGXгрнsomWSTNT$FtDramRpZMWFCFA".indexOf(c) === -1) throw new Error("unrecognized character " + c + " in " + fmt);
55136
+ if ("Ω¤฿BsBr₵₡₫ƒFtRs.₭kr£₤Lm₥₦₱PQRSkRp৲৳R$S/.〒₮₩¥NT¥zł₴₪៛руб€₹$,$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP$¥LekdinAf$dhAflRial?£BirrKzMOPPGKRsGsB/R$ррlevkrKMzBsPNuFBuKPkrRD$NfkCFA?CVEGMDFrCDHTGNAfLFdjKGSFGGHSRielKCFknKshLSLL£LtRFRONArRfMWKRMMURsMROS/KMDLMTnRC$kr€GELCHFSLLSCRDbSZLSDGSOSSomFCFPTShT$VUVQUGXгрнsomWSTNT$FtDramRpZMWFCFA".indexOf(c) === -1) throw new Error("unrecognized character " + c + " in " + fmt);
54905
55137
  out[out.length] = {
54906
55138
  t: "t",
54907
55139
  v: c
@@ -55576,7 +55808,7 @@ function genarate(value) {
55576
55808
  t: "n"
55577
55809
  };
55578
55810
  v = parseFloat(value);
55579
- } else if (isdatetime(value) && (value.toString().indexOf(".") > -1 || value.toString().indexOf(":") > -1 || value.toString().length < 16)) {
55811
+ } else if (isdatetime(value, "24") && (value.toString().indexOf(".") > -1 || value.toString().indexOf(":") > -1 || value.toString().length < 16)) {
55580
55812
  v = datenum_local(parseDate(value.toString().replace(/-/g, "/")));
55581
55813
  if (v.toString().indexOf(".") > -1) {
55582
55814
  if (value.toString().length > 18) {
@@ -55591,6 +55823,21 @@ function genarate(value) {
55591
55823
  }
55592
55824
  ct.t = "d";
55593
55825
  m = SSF.format(ct.fa, v);
55826
+ } else if (isdatetime(value, "12") && (value.toString().indexOf(".") > -1 || value.toString().indexOf(":") > -1 || value.toString().length < 20)) {
55827
+ v = datenum_local(parseDate(value.toString().replace(/-/g, "/").replace(/(AM|PM)/gi, " $1").replace(/ +/g, " ")));
55828
+ if (v.toString().indexOf(".") > -1) {
55829
+ if (value.toString().length > 20) {
55830
+ ct.fa = "yyyy-MM-dd hh:mm:ss AM/PM";
55831
+ } else if (value.toString().length > 13) {
55832
+ ct.fa = "yyyy-MM-dd hh:mm AM/PM";
55833
+ } else {
55834
+ ct.fa = "yyyy-MM-dd";
55835
+ }
55836
+ } else {
55837
+ ct.fa = "yyyy-MM-dd";
55838
+ }
55839
+ ct.t = "d";
55840
+ m = SSF.format(ct.fa, v);
55594
55841
  } else {
55595
55842
  m = value;
55596
55843
  ct.fa = "General";
@@ -55690,6 +55937,203 @@ function colLocation(x, visibleCol) {
55690
55937
  return colLocationByIndex(col_index, visibleCol);
55691
55938
  }
55692
55939
 
55940
+ function setFormulaCellInfo(ctx, formulaCell, data) {
55941
+ var key = "r".concat(formulaCell.r, "c").concat(formulaCell.c, "i").concat(formulaCell.id);
55942
+ var calc_funcStr = getcellFormula(ctx, formulaCell.r, formulaCell.c, formulaCell.id, data);
55943
+ if (___default['default'].isNil(calc_funcStr)) {
55944
+ var _ctx$formulaCache$for;
55945
+ (_ctx$formulaCache$for = ctx.formulaCache.formulaCellInfoMap) === null || _ctx$formulaCache$for === void 0 ? true : delete _ctx$formulaCache$for[key];
55946
+ return;
55947
+ }
55948
+ var txt1 = calc_funcStr.toUpperCase();
55949
+ var isOffsetFunc = txt1.indexOf("INDIRECT(") > -1 || txt1.indexOf("OFFSET(") > -1 || txt1.indexOf("INDEX(") > -1;
55950
+ var formulaDependency = [];
55951
+ if (isOffsetFunc) {
55952
+ isFunctionRange(ctx, calc_funcStr, null, null, formulaCell.id, null, function (str_nb) {
55953
+ var range = getcellrange(ctx, ___default['default'].trim(str_nb), formulaCell.id, data);
55954
+ if (!___default['default'].isNil(range)) {
55955
+ formulaDependency.push(range);
55956
+ }
55957
+ });
55958
+ } else if (!(calc_funcStr.substring(0, 2) === '="' && calc_funcStr.substring(calc_funcStr.length - 1, 1) === '"')) {
55959
+ var point = 0;
55960
+ var squote = -1;
55961
+ var dquote = -1;
55962
+ var formulaTextArray = [];
55963
+ var sq_end_array = [];
55964
+ var calc_funcStr_length = calc_funcStr.length;
55965
+ for (var j = 0; j < calc_funcStr_length; j += 1) {
55966
+ var char = calc_funcStr.charAt(j);
55967
+ if (char === "'" && dquote === -1) {
55968
+ if (squote === -1) {
55969
+ if (point !== j) {
55970
+ formulaTextArray.push.apply(formulaTextArray, _toConsumableArray(calc_funcStr.substring(point, j).split(/==|!=|<>|<=|>=|[,()=+-/*%&^><]/)));
55971
+ }
55972
+ squote = j;
55973
+ point = j;
55974
+ } else {
55975
+ if (j < calc_funcStr_length - 1 && calc_funcStr.charAt(j + 1) === "'") {
55976
+ j += 1;
55977
+ } else {
55978
+ point = j + 1;
55979
+ formulaTextArray.push(calc_funcStr.substring(squote, point));
55980
+ sq_end_array.push(formulaTextArray.length - 1);
55981
+ squote = -1;
55982
+ }
55983
+ }
55984
+ } else if (char === '"' && squote === -1) {
55985
+ if (dquote === -1) {
55986
+ if (point !== j) {
55987
+ formulaTextArray.push.apply(formulaTextArray, _toConsumableArray(calc_funcStr.substring(point, j).split(/==|!=|<>|<=|>=|[,()=+-/*%&^><]/)));
55988
+ }
55989
+ dquote = j;
55990
+ point = j;
55991
+ } else {
55992
+ if (j < calc_funcStr_length - 1 && calc_funcStr.charAt(j + 1) === '"') {
55993
+ j += 1;
55994
+ } else {
55995
+ point = j + 1;
55996
+ formulaTextArray.push(calc_funcStr.substring(dquote, point));
55997
+ dquote = -1;
55998
+ }
55999
+ }
56000
+ }
56001
+ }
56002
+ if (point !== calc_funcStr_length) {
56003
+ formulaTextArray.push.apply(formulaTextArray, _toConsumableArray(calc_funcStr.substring(point, calc_funcStr_length).split(/==|!=|<>|<=|>=|[,()=+-/*%&^><]/)));
56004
+ }
56005
+ for (var _j = sq_end_array.length - 1; _j >= 0; _j -= 1) {
56006
+ if (sq_end_array[_j] !== formulaTextArray.length - 1) {
56007
+ formulaTextArray[sq_end_array[_j]] += formulaTextArray[sq_end_array[_j] + 1];
56008
+ formulaTextArray.splice(sq_end_array[_j] + 1, 1);
56009
+ }
56010
+ }
56011
+ for (var _j2 = 0; _j2 < formulaTextArray.length; _j2 += 1) {
56012
+ var t = formulaTextArray[_j2];
56013
+ if (t.length <= 1) {
56014
+ continue;
56015
+ }
56016
+ if (t.substring(0, 1) === '"' && t.substring(t.length - 1, 1) === '"' || !iscelldata(t)) {
56017
+ continue;
56018
+ }
56019
+ var range = getcellrange(ctx, ___default['default'].trim(t), formulaCell.id, data);
56020
+ if (___default['default'].isNil(range)) {
56021
+ continue;
56022
+ }
56023
+ formulaDependency.push(range);
56024
+ }
56025
+ }
56026
+ var item = {
56027
+ formulaDependency: formulaDependency,
56028
+ calc_funcStr: calc_funcStr,
56029
+ key: key,
56030
+ r: formulaCell.r,
56031
+ c: formulaCell.c,
56032
+ id: formulaCell.id,
56033
+ parents: {},
56034
+ chidren: {},
56035
+ color: "w"
56036
+ };
56037
+ if (!ctx.formulaCache.formulaCellInfoMap) ctx.formulaCache.formulaCellInfoMap = {};
56038
+ ctx.formulaCache.formulaCellInfoMap[key] = item;
56039
+ }
56040
+ function executeAffectedFormulas(ctx, formulaRunList, calcChains) {
56041
+ var calcChainSet = new Set();
56042
+ calcChains.forEach(function (item) {
56043
+ calcChainSet.add("".concat(item.r, "_").concat(item.c, "_").concat(item.id));
56044
+ });
56045
+ for (var i = 0; i < formulaRunList.length; i += 1) {
56046
+ var formulaCell = formulaRunList[i];
56047
+ if (formulaCell.level === Math.max) {
56048
+ continue;
56049
+ }
56050
+ var calc_funcStr = formulaCell.calc_funcStr;
56051
+ var v = execfunction(ctx, calc_funcStr, formulaCell.r, formulaCell.c, formulaCell.id, calcChainSet);
56052
+ ctx.groupValuesRefreshData.push({
56053
+ r: formulaCell.r,
56054
+ c: formulaCell.c,
56055
+ v: v[1],
56056
+ f: v[2],
56057
+ spe: v[3],
56058
+ id: formulaCell.id
56059
+ });
56060
+ ctx.formulaCache.execFunctionGlobalData["".concat(formulaCell.r, "_").concat(formulaCell.c, "_").concat(formulaCell.id)] = {
56061
+ v: v[1],
56062
+ f: v[2]
56063
+ };
56064
+ }
56065
+ }
56066
+ function getFormulaRunList(updateValueArray, formulaCellInfoMap) {
56067
+ var formulaRunList = [];
56068
+ var stack = updateValueArray;
56069
+ var existsFormulaRunList = {};
56070
+ var _loop = function _loop() {
56071
+ var formulaObject = stack.pop();
56072
+ if (___default['default'].isNil(formulaObject) || formulaObject.key in existsFormulaRunList) {
56073
+ return 0; // continue
56074
+ }
56075
+ if (formulaObject.color === "b") {
56076
+ formulaObject.color = "w";
56077
+ formulaRunList.push(formulaObject);
56078
+ existsFormulaRunList[formulaObject.key] = 1;
56079
+ return 0; // continue
56080
+ }
56081
+ var cacheStack = [];
56082
+ Object.keys(formulaObject.parents).forEach(function (parentKey) {
56083
+ var parentFormulaObject = formulaCellInfoMap[parentKey];
56084
+ if (!___default['default'].isNil(parentFormulaObject)) {
56085
+ cacheStack.push(parentFormulaObject);
56086
+ }
56087
+ });
56088
+ if (cacheStack.length === 0) {
56089
+ formulaRunList.push(formulaObject);
56090
+ existsFormulaRunList[formulaObject.key] = 1;
56091
+ } else {
56092
+ formulaObject.color = "b";
56093
+ stack.push(formulaObject);
56094
+ stack = stack.concat(cacheStack);
56095
+ }
56096
+ },
56097
+ _ret;
56098
+ while (stack.length > 0) {
56099
+ _ret = _loop();
56100
+ if (_ret === 0) continue;
56101
+ }
56102
+ formulaRunList.reverse();
56103
+ return formulaRunList;
56104
+ }
56105
+ var arrayMatch = function arrayMatch(arrayMatchCache, formulaDependency, _formulaCellInfoMap, _updateValueObjects, func) {
56106
+ for (var a = 0; a < formulaDependency.length; a += 1) {
56107
+ var range = formulaDependency[a];
56108
+ var cacheKey = "r".concat(range.row[0]).concat(range.row[1], "c").concat(range.column[0]).concat(range.column[1], "id").concat(range.sheetId);
56109
+ if (cacheKey in arrayMatchCache) {
56110
+ var amc = arrayMatchCache[cacheKey];
56111
+ amc.forEach(function (item) {
56112
+ func(item.key, item.r, item.c, item.sheetId);
56113
+ });
56114
+ } else {
56115
+ var functionArr = [];
56116
+ for (var r = range.row[0]; r <= range.row[1]; r += 1) {
56117
+ for (var c = range.column[0]; c <= range.column[1]; c += 1) {
56118
+ var key = "r".concat(r, "c").concat(c, "i").concat(range.sheetId);
56119
+ func(key, r, c, range.sheetId);
56120
+ if (_formulaCellInfoMap && key in _formulaCellInfoMap || _updateValueObjects && key in _updateValueObjects) {
56121
+ functionArr.push({
56122
+ key: key,
56123
+ r: r,
56124
+ c: c,
56125
+ sheetId: range.sheetId
56126
+ });
56127
+ }
56128
+ }
56129
+ }
56130
+ if (_formulaCellInfoMap || _updateValueObjects) {
56131
+ arrayMatchCache[cacheKey] = functionArr;
56132
+ }
56133
+ }
56134
+ }
56135
+ };
56136
+
55693
56137
  var functionHTMLIndex = 0;
55694
56138
  var rangeIndexes = [];
55695
56139
  var operatorPriority = {
@@ -55711,6 +56155,9 @@ var sheetNameRegexp = "(".concat(simpleSheetName, "|").concat(quotedSheetName, "
55711
56155
  var rowColumnRegexp = "[$]?[A-Za-z]+[$]?[0-9]+";
55712
56156
  var rowColumnWithSheetName = "(?:".concat(sheetNameRegexp, ")?(").concat(rowColumnRegexp, ")");
55713
56157
  var LABEL_EXTRACT_REGEXP = new RegExp("^".concat(rowColumnWithSheetName, "(?:[:]").concat(rowColumnWithSheetName, ")?$"));
56158
+ function isFormula(value) {
56159
+ return ___default['default'].isString(value) && value.slice(0, 1) === "=" && value.length > 1;
56160
+ }
55714
56161
  var FormulaCache = /*#__PURE__*/function () {
55715
56162
  function FormulaCache() {
55716
56163
  _classCallCheck(this, FormulaCache);
@@ -55737,11 +56184,13 @@ var FormulaCache = /*#__PURE__*/function () {
55737
56184
  this.functionlistMap = void 0;
55738
56185
  this.execFunctionExist = void 0;
55739
56186
  this.execFunctionGlobalData = void 0;
56187
+ this.formulaCellInfoMap = void 0;
55740
56188
  var that = this;
55741
56189
  this.data_parm_index = 0;
55742
56190
  this.selectingRangeIndex = -1;
55743
56191
  this.functionlistMap = {};
55744
56192
  this.execFunctionGlobalData = {};
56193
+ this.formulaCellInfoMap = null;
55745
56194
  this.cellTextToIndexList = {};
55746
56195
  this.parser = new formulaParser.Parser();
55747
56196
  this.parser.on("callCellValue", function (cellCoord, options, done) {
@@ -55802,6 +56251,38 @@ var FormulaCache = /*#__PURE__*/function () {
55802
56251
  }
55803
56252
  return cell === null || cell === void 0 ? void 0 : cell.v;
55804
56253
  }
56254
+ }, {
56255
+ key: "updateFormulaCache",
56256
+ value: function updateFormulaCache(ctx, history, type, data) {
56257
+ function requestUpdate(value) {
56258
+ if (value instanceof Object) {
56259
+ if (!___default['default'].isNil(value.r) && !___default['default'].isNil(value.c)) {
56260
+ var _history$options;
56261
+ setFormulaCellInfo(ctx, {
56262
+ r: value.r,
56263
+ c: value.c,
56264
+ id: value.id || ((_history$options = history.options) === null || _history$options === void 0 ? void 0 : _history$options.id) || ctx.currentSheetId
56265
+ }, data);
56266
+ }
56267
+ }
56268
+ }
56269
+ var changesHistory = type === "undo" ? history.inversePatches : history.patches;
56270
+ changesHistory.forEach(function (patch) {
56271
+ var _patch$value;
56272
+ if (isFormula((_patch$value = patch.value) === null || _patch$value === void 0 ? void 0 : _patch$value.f) || patch.value === null || patch.path[5] === "f") {
56273
+ requestUpdate({
56274
+ r: patch.path[3],
56275
+ c: patch.path[4]
56276
+ });
56277
+ } else if (Array.isArray(patch.value)) {
56278
+ patch.value.forEach(function (value) {
56279
+ requestUpdate(value);
56280
+ });
56281
+ } else {
56282
+ requestUpdate(patch.value);
56283
+ }
56284
+ });
56285
+ }
55805
56286
  }]);
55806
56287
  }();
55807
56288
  function parseElement(eleString) {
@@ -55866,14 +56347,14 @@ function addToCellIndexList(ctx, txt, infoObj) {
55866
56347
  ctx.formulaCache.cellTextToIndexList["".concat(txt, "_").concat(infoObj.sheetId)] = infoObj;
55867
56348
  }
55868
56349
  }
55869
- function getcellrange(ctx, txt, formulaId) {
56350
+ function getcellrange(ctx, txt, formulaId, data) {
55870
56351
  if (___default['default'].isNil(txt) || txt.length === 0) {
55871
56352
  return null;
55872
56353
  }
55873
- var flowdata = getFlowdata(ctx, formulaId);
56354
+ var flowdata = data || getFlowdata(ctx, formulaId);
55874
56355
  var sheettxt = "";
55875
56356
  var rangetxt = "";
55876
- var sheetId = null;
56357
+ var sheetId;
55877
56358
  var sheetdata = null;
55878
56359
  var luckysheetfile = ctx.luckysheetfile;
55879
56360
  if (txt.indexOf("!") > -1) {
@@ -55937,8 +56418,8 @@ function getcellrange(ctx, txt, formulaId) {
55937
56418
  return null;
55938
56419
  }
55939
56420
  var rangetxtArr = rangetxt.split(":");
55940
- var row = [];
55941
- var col = [];
56421
+ var row = [-1, -1];
56422
+ var col = [-1, -1];
55942
56423
  row[0] = parseInt(rangetxtArr[0].replace(/[^0-9]/g, ""), 10) - 1;
55943
56424
  row[1] = parseInt(rangetxtArr[1].replace(/[^0-9]/g, ""), 10) - 1;
55944
56425
  if (Number.isNaN(row[0])) {
@@ -56250,7 +56731,7 @@ function delFunctionGroup(ctx, r, c, id) {
56250
56731
  var calcChain = file.calcChain;
56251
56732
  if (!___default['default'].isNil(calcChain)) {
56252
56733
  var modified = false;
56253
- var calcChainClone = ___default['default'].cloneDeep(calcChain);
56734
+ var calcChainClone = calcChain.slice();
56254
56735
  for (var _i4 = 0; _i4 < calcChainClone.length; _i4 += 1) {
56255
56736
  var calc = calcChainClone[_i4];
56256
56737
  if (calc.r === r && calc.c === c && calc.id === id) {
@@ -56266,7 +56747,7 @@ function delFunctionGroup(ctx, r, c, id) {
56266
56747
  var dynamicArray = file.dynamicArray;
56267
56748
  if (!___default['default'].isNil(dynamicArray)) {
56268
56749
  var _modified = false;
56269
- var dynamicArrayClone = ___default['default'].cloneDeep(dynamicArray);
56750
+ var dynamicArrayClone = dynamicArray.slice();
56270
56751
  for (var _i5 = 0; _i5 < dynamicArrayClone.length; _i5 += 1) {
56271
56752
  var _calc = dynamicArrayClone[_i5];
56272
56753
  if (_calc.r === r && _calc.c === c && (___default['default'].isNil(_calc.id) || _calc.id === id)) {
@@ -56434,6 +56915,13 @@ function groupValuesRefresh(ctx) {
56434
56915
  ctx.groupValuesRefreshData = [];
56435
56916
  }
56436
56917
  }
56918
+ function setFormulaCellInfoMap(ctx, calcChains, data) {
56919
+ if (___default['default'].isNil(calcChains)) return;
56920
+ for (var _i1 = 0; _i1 < calcChains.length; _i1 += 1) {
56921
+ var formulaCell = calcChains[_i1];
56922
+ setFormulaCellInfo(ctx, formulaCell, data);
56923
+ }
56924
+ }
56437
56925
  function execFunctionGroup(ctx, origin_r, origin_c, value, id, data) {
56438
56926
  var isForce = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : false;
56439
56927
  if (___default['default'].isNil(data)) {
@@ -56454,168 +56942,32 @@ function execFunctionGroup(ctx, origin_r, origin_c, value, id, data) {
56454
56942
  ctx.formulaCache.execFunctionGlobalData["".concat(origin_r, "_").concat(origin_c, "_").concat(id)] = _cellCache$[0];
56455
56943
  }
56456
56944
  var calcChains = getAllFunctionGroup(ctx);
56457
- var formulaObjects = {};
56458
- var sheets = ctx.luckysheetfile;
56459
- var sheetData = {};
56460
- for (var _i1 = 0; _i1 < sheets.length; _i1 += 1) {
56461
- var sheet = sheets[_i1];
56462
- sheetData[sheet.id] = sheet.data;
56463
- }
56464
- var updateValueOjects = {};
56465
- var updateValueArray = [];
56945
+ var updateValueObjects = {};
56466
56946
  if (___default['default'].isNil(ctx.formulaCache.execFunctionExist)) {
56467
56947
  var key = "r".concat(origin_r, "c").concat(origin_c, "i").concat(id);
56468
- updateValueOjects[key] = 1;
56948
+ updateValueObjects[key] = 1;
56469
56949
  } else {
56470
56950
  for (var x = 0; x < ctx.formulaCache.execFunctionExist.length; x += 1) {
56471
56951
  var cell = ctx.formulaCache.execFunctionExist[x];
56472
56952
  var _key = "r".concat(cell.r, "c").concat(cell.c, "i").concat(cell.i);
56473
- updateValueOjects[_key] = 1;
56953
+ updateValueObjects[_key] = 1;
56474
56954
  }
56475
56955
  }
56476
- var arrayMatchCache = {};
56477
- var arrayMatch = function arrayMatch(formulaArray, _formulaObjects, _updateValueOjects, func) {
56478
- for (var a = 0; a < formulaArray.length; a += 1) {
56479
- var range = formulaArray[a];
56480
- var cacheKey = "r".concat(range.row[0]).concat(range.row[1], "c").concat(range.column[0]).concat(range.column[1], "id").concat(range.sheetId);
56481
- if (cacheKey in arrayMatchCache) {
56482
- var amc = arrayMatchCache[cacheKey];
56483
- amc.forEach(function (item) {
56484
- func(item.key, item.r, item.c, item.sheetId);
56485
- });
56486
- } else {
56487
- var functionArr = [];
56488
- for (var r = range.row[0]; r <= range.row[1]; r += 1) {
56489
- for (var c = range.column[0]; c <= range.column[1]; c += 1) {
56490
- var _key2 = "r".concat(r, "c").concat(c, "i").concat(range.sheetId);
56491
- func(_key2, r, c, range.sheetId);
56492
- if (_formulaObjects && _key2 in _formulaObjects || _updateValueOjects && _key2 in _updateValueOjects) {
56493
- functionArr.push({
56494
- key: _key2,
56495
- r: r,
56496
- c: c,
56497
- sheetId: range.sheetId
56498
- });
56499
- }
56500
- }
56501
- }
56502
- if (_formulaObjects || _updateValueOjects) {
56503
- arrayMatchCache[cacheKey] = functionArr;
56504
- }
56505
- }
56506
- }
56507
- };
56508
- var _loop = function _loop() {
56509
- var formulaCell = calcChains[_i10];
56510
- var key = "r".concat(formulaCell.r, "c").concat(formulaCell.c, "i").concat(formulaCell.id);
56511
- var calc_funcStr = getcellFormula(ctx, formulaCell.r, formulaCell.c, formulaCell.id);
56512
- if (___default['default'].isNil(calc_funcStr)) {
56513
- return 1; // continue
56514
- }
56515
- var txt1 = calc_funcStr.toUpperCase();
56516
- var isOffsetFunc = txt1.indexOf("INDIRECT(") > -1 || txt1.indexOf("OFFSET(") > -1 || txt1.indexOf("INDEX(") > -1;
56517
- var formulaArray = [];
56518
- if (isOffsetFunc) {
56519
- isFunctionRange(ctx, calc_funcStr, null, null, formulaCell.id, null, function (str_nb) {
56520
- var range = getcellrange(ctx, ___default['default'].trim(str_nb), formulaCell.id);
56521
- if (!___default['default'].isNil(range)) {
56522
- formulaArray.push(range);
56523
- }
56524
- });
56525
- } else if (!(calc_funcStr.substring(0, 2) === '="' && calc_funcStr.substring(calc_funcStr.length - 1, 1) === '"')) {
56526
- var point = 0;
56527
- var squote = -1;
56528
- var dquote = -1;
56529
- var formulaTextArray = [];
56530
- var sq_end_array = [];
56531
- var calc_funcStr_length = calc_funcStr.length;
56532
- for (var j = 0; j < calc_funcStr_length; j += 1) {
56533
- var char = calc_funcStr.charAt(j);
56534
- if (char === "'" && dquote === -1) {
56535
- if (squote === -1) {
56536
- if (point !== j) {
56537
- formulaTextArray.push.apply(formulaTextArray, _toConsumableArray(calc_funcStr.substring(point, j).split(/==|!=|<>|<=|>=|[,()=+-/*%&^><]/)));
56538
- }
56539
- squote = j;
56540
- point = j;
56541
- } else {
56542
- if (j < calc_funcStr_length - 1 && calc_funcStr.charAt(j + 1) === "'") {
56543
- j += 1;
56544
- } else {
56545
- point = j + 1;
56546
- formulaTextArray.push(calc_funcStr.substring(squote, point));
56547
- sq_end_array.push(formulaTextArray.length - 1);
56548
- squote = -1;
56549
- }
56550
- }
56551
- }
56552
- if (char === '"' && squote === -1) {
56553
- if (dquote === -1) {
56554
- if (point !== j) {
56555
- formulaTextArray.push.apply(formulaTextArray, _toConsumableArray(calc_funcStr.substring(point, j).split(/==|!=|<>|<=|>=|[,()=+-/*%&^><]/)));
56556
- }
56557
- dquote = j;
56558
- point = j;
56559
- } else {
56560
- if (j < calc_funcStr_length - 1 && calc_funcStr.charAt(j + 1) === '"') {
56561
- j += 1;
56562
- } else {
56563
- point = j + 1;
56564
- formulaTextArray.push(calc_funcStr.substring(dquote, point));
56565
- dquote = -1;
56566
- }
56567
- }
56568
- }
56569
- }
56570
- if (point !== calc_funcStr_length) {
56571
- formulaTextArray.push.apply(formulaTextArray, _toConsumableArray(calc_funcStr.substring(point, calc_funcStr_length).split(/==|!=|<>|<=|>=|[,()=+-/*%&^><]/)));
56572
- }
56573
- for (var _j = sq_end_array.length - 1; _j >= 0; _j -= 1) {
56574
- if (sq_end_array[_j] !== formulaTextArray.length - 1) {
56575
- formulaTextArray[sq_end_array[_j]] += formulaTextArray[sq_end_array[_j] + 1];
56576
- formulaTextArray.splice(sq_end_array[_j] + 1, 1);
56577
- }
56578
- }
56579
- for (var _j2 = 0; _j2 < formulaTextArray.length; _j2 += 1) {
56580
- var t = formulaTextArray[_j2];
56581
- if (t.length <= 1) {
56582
- continue;
56583
- }
56584
- if (t.substring(0, 1) === '"' && t.substring(t.length - 1, 1) === '"' || !iscelldata(t)) {
56585
- continue;
56586
- }
56587
- var range = getcellrange(ctx, ___default['default'].trim(t), formulaCell.id);
56588
- if (___default['default'].isNil(range)) {
56589
- continue;
56590
- }
56591
- formulaArray.push(range);
56592
- }
56593
- }
56594
- var item = {
56595
- formulaArray: formulaArray,
56596
- calc_funcStr: calc_funcStr,
56597
- key: key,
56598
- r: formulaCell.r,
56599
- c: formulaCell.c,
56600
- id: formulaCell.id,
56601
- parents: {},
56602
- chidren: {},
56603
- color: "w"
56604
- };
56605
- formulaObjects[key] = item;
56606
- };
56607
- for (var _i10 = 0; _i10 < calcChains.length; _i10 += 1) {
56608
- if (_loop()) continue;
56956
+ if (!ctx.formulaCache.formulaCellInfoMap || ___default['default'].isEmpty(ctx.formulaCache.formulaCellInfoMap)) {
56957
+ ctx.formulaCache.formulaCellInfoMap = {};
56958
+ setFormulaCellInfoMap(ctx, calcChains, data);
56609
56959
  }
56610
- Object.keys(formulaObjects).forEach(function (key) {
56611
- var formulaObject = formulaObjects[key];
56612
- arrayMatch(formulaObject.formulaArray, formulaObjects, updateValueOjects, function (childKey) {
56613
- if (childKey in formulaObjects) {
56614
- var childFormulaObject = formulaObjects[childKey];
56615
- formulaObject.chidren[childKey] = 1;
56960
+ var formulaCellInfoMap = ctx.formulaCache.formulaCellInfoMap;
56961
+ var updateValueArray = [];
56962
+ var arrayMatchCache = {};
56963
+ Object.keys(formulaCellInfoMap).forEach(function (key) {
56964
+ var formulaObject = formulaCellInfoMap[key];
56965
+ arrayMatch(arrayMatchCache, formulaObject.formulaDependency, formulaCellInfoMap, updateValueObjects, function (childKey) {
56966
+ if (childKey in formulaCellInfoMap) {
56967
+ var childFormulaObject = formulaCellInfoMap[childKey];
56616
56968
  childFormulaObject.parents[key] = 1;
56617
56969
  }
56618
- if (!isForce && childKey in updateValueOjects) {
56970
+ if (!isForce && childKey in updateValueObjects) {
56619
56971
  updateValueArray.push(formulaObject);
56620
56972
  }
56621
56973
  });
@@ -56623,65 +56975,8 @@ function execFunctionGroup(ctx, origin_r, origin_c, value, id, data) {
56623
56975
  updateValueArray.push(formulaObject);
56624
56976
  }
56625
56977
  });
56626
- var formulaRunList = [];
56627
- var stack = updateValueArray;
56628
- var existsFormulaRunList = {};
56629
- var _loop2 = function _loop2() {
56630
- var formulaObject = stack.pop();
56631
- if (___default['default'].isNil(formulaObject) || formulaObject.key in existsFormulaRunList) {
56632
- return 0; // continue
56633
- }
56634
- if (formulaObject.color === "b") {
56635
- formulaRunList.push(formulaObject);
56636
- existsFormulaRunList[formulaObject.key] = 1;
56637
- return 0; // continue
56638
- }
56639
- var cacheStack = [];
56640
- Object.keys(formulaObject.parents).forEach(function (parentKey) {
56641
- var parentFormulaObject = formulaObjects[parentKey];
56642
- if (!___default['default'].isNil(parentFormulaObject)) {
56643
- cacheStack.push(parentFormulaObject);
56644
- }
56645
- });
56646
- if (cacheStack.length === 0) {
56647
- formulaRunList.push(formulaObject);
56648
- existsFormulaRunList[formulaObject.key] = 1;
56649
- } else {
56650
- formulaObject.color = "b";
56651
- stack.push(formulaObject);
56652
- stack = stack.concat(cacheStack);
56653
- }
56654
- },
56655
- _ret;
56656
- while (stack.length > 0) {
56657
- _ret = _loop2();
56658
- if (_ret === 0) continue;
56659
- }
56660
- formulaRunList.reverse();
56661
- var calcChainSet = new Set();
56662
- calcChains.forEach(function (item) {
56663
- calcChainSet.add("".concat(item.r, "_").concat(item.c, "_").concat(item.id));
56664
- });
56665
- for (var _i11 = 0; _i11 < formulaRunList.length; _i11 += 1) {
56666
- var formulaCell = formulaRunList[_i11];
56667
- if (formulaCell.level === Math.max) {
56668
- continue;
56669
- }
56670
- var calc_funcStr = formulaCell.calc_funcStr;
56671
- var v = execfunction(ctx, calc_funcStr, formulaCell.r, formulaCell.c, formulaCell.id, calcChainSet);
56672
- ctx.groupValuesRefreshData.push({
56673
- r: formulaCell.r,
56674
- c: formulaCell.c,
56675
- v: v[1],
56676
- f: v[2],
56677
- spe: v[3],
56678
- id: formulaCell.id
56679
- });
56680
- ctx.formulaCache.execFunctionGlobalData["".concat(formulaCell.r, "_").concat(formulaCell.c, "_").concat(formulaCell.id)] = {
56681
- v: v[1],
56682
- f: v[2]
56683
- };
56684
- }
56978
+ var formulaRunList = getFormulaRunList(updateValueArray, formulaCellInfoMap);
56979
+ executeAffectedFormulas(ctx, formulaRunList, calcChains);
56685
56980
  ctx.formulaCache.execFunctionExist = undefined;
56686
56981
  }
56687
56982
  function findrangeindex(ctx, v, vp) {
@@ -56695,26 +56990,26 @@ function findrangeindex(ctx, v, vp) {
56695
56990
  var vplen = vp_a.length;
56696
56991
  var vlen = v_a.length;
56697
56992
  if (vplen === vlen) {
56698
- var _i12 = pfri[0];
56699
- var p = vp_a[_i12];
56700
- var n = v_a[_i12];
56993
+ var _i10 = pfri[0];
56994
+ var p = vp_a[_i10];
56995
+ var n = v_a[_i10];
56701
56996
  if (___default['default'].isNil(p)) {
56702
- if (vp_a.length <= _i12) {
56997
+ if (vp_a.length <= _i10) {
56703
56998
  pfri = [vp_a.length - 1, vp_a.length - 1];
56704
- } else if (v_a.length <= _i12) {
56999
+ } else if (v_a.length <= _i10) {
56705
57000
  pfri = [v_a.length - 1, v_a.length - 1];
56706
57001
  }
56707
57002
  return pfri;
56708
57003
  }
56709
57004
  if (p.length === n.length) {
56710
- if (!___default['default'].isNil(vp_a[_i12 + 1]) && !___default['default'].isNil(v_a[_i12 + 1]) && vp_a[_i12 + 1].length < v_a[_i12 + 1].length) {
57005
+ if (!___default['default'].isNil(vp_a[_i10 + 1]) && !___default['default'].isNil(v_a[_i10 + 1]) && vp_a[_i10 + 1].length < v_a[_i10 + 1].length) {
56711
57006
  pfri[0] += 1;
56712
57007
  pfri[1] = 1;
56713
57008
  }
56714
57009
  return pfri;
56715
57010
  }
56716
57011
  if (p.length > n.length) {
56717
- if (!___default['default'].isNil(p) && !___default['default'].isNil(v_a[_i12 + 1]) && v_a[_i12 + 1].substring(0, 1) === '"' && (p.indexOf("{") > -1 || p.indexOf("}") > -1)) {
57012
+ if (!___default['default'].isNil(p) && !___default['default'].isNil(v_a[_i10 + 1]) && v_a[_i10 + 1].substring(0, 1) === '"' && (p.indexOf("{") > -1 || p.indexOf("}") > -1)) {
56718
57013
  pfri[0] += 1;
56719
57014
  pfri[1] = 1;
56720
57015
  }
@@ -56727,34 +57022,34 @@ function findrangeindex(ctx, v, vp) {
56727
57022
  return pfri;
56728
57023
  }
56729
57024
  } else if (vplen > vlen) {
56730
- var _i13 = pfri[0];
56731
- var _p = vp_a[_i13];
56732
- var _n = v_a[_i13];
57025
+ var _i11 = pfri[0];
57026
+ var _p = vp_a[_i11];
57027
+ var _n = v_a[_i11];
56733
57028
  if (___default['default'].isNil(_n)) {
56734
- if (v_a[_i13 - 1].indexOf("{") > -1) {
57029
+ if (v_a[_i11 - 1].indexOf("{") > -1) {
56735
57030
  pfri[0] -= 1;
56736
- var start = v_a[_i13 - 1].search("{");
57031
+ var start = v_a[_i11 - 1].search("{");
56737
57032
  pfri[1] += start;
56738
57033
  } else {
56739
57034
  pfri[0] = 0;
56740
57035
  pfri[1] = 0;
56741
57036
  }
56742
57037
  } else if (_p.length === _n.length) {
56743
- if (!___default['default'].isNil(v_a[_i13 + 1]) && (v_a[_i13 + 1].substring(0, 1) === '"' || v_a[_i13 + 1].substring(0, 1) === "{" || v_a[_i13 + 1].substring(0, 1) === "}")) {
57038
+ if (!___default['default'].isNil(v_a[_i11 + 1]) && (v_a[_i11 + 1].substring(0, 1) === '"' || v_a[_i11 + 1].substring(0, 1) === "{" || v_a[_i11 + 1].substring(0, 1) === "}")) {
56744
57039
  pfri[0] += 1;
56745
57040
  pfri[1] = 1;
56746
- } 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[_i13]) && v_a[_i13] === '")') {
57041
+ } 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[_i11]) && v_a[_i11] === '")') {
56747
57042
  pfri[1] = 1;
56748
- } else if (!___default['default'].isNil(v_a[_i13]) && v_a[_i13] === '"}') {
57043
+ } else if (!___default['default'].isNil(v_a[_i11]) && v_a[_i11] === '"}') {
56749
57044
  pfri[1] = 1;
56750
- } else if (!___default['default'].isNil(v_a[_i13]) && v_a[_i13] === "{)") {
57045
+ } else if (!___default['default'].isNil(v_a[_i11]) && v_a[_i11] === "{)") {
56751
57046
  pfri[1] = 1;
56752
57047
  } else {
56753
57048
  pfri[1] = _n.length;
56754
57049
  }
56755
57050
  return pfri;
56756
57051
  } else if (_p.length > _n.length) {
56757
- if (!___default['default'].isNil(v_a[_i13 + 1]) && (v_a[_i13 + 1].substring(0, 1) === '"' || v_a[_i13 + 1].substring(0, 1) === "{" || v_a[_i13 + 1].substring(0, 1) === "}")) {
57052
+ if (!___default['default'].isNil(v_a[_i11 + 1]) && (v_a[_i11 + 1].substring(0, 1) === '"' || v_a[_i11 + 1].substring(0, 1) === "{" || v_a[_i11 + 1].substring(0, 1) === "}")) {
56758
57053
  pfri[0] += 1;
56759
57054
  pfri[1] = 1;
56760
57055
  }
@@ -56764,9 +57059,9 @@ function findrangeindex(ctx, v, vp) {
56764
57059
  }
56765
57060
  return pfri;
56766
57061
  } else if (vplen < vlen) {
56767
- var _i14 = pfri[0];
56768
- var _p2 = vp_a[_i14];
56769
- var _n2 = v_a[_i14];
57062
+ var _i12 = pfri[0];
57063
+ var _p2 = vp_a[_i12];
57064
+ var _n2 = v_a[_i12];
56770
57065
  if (___default['default'].isNil(_p2)) {
56771
57066
  pfri[0] = v_a.length - 1;
56772
57067
  if (!___default['default'].isNil(_n2)) {
@@ -56775,9 +57070,9 @@ function findrangeindex(ctx, v, vp) {
56775
57070
  pfri[1] = 1;
56776
57071
  }
56777
57072
  } else if (_p2.length === _n2.length) {
56778
- if (vp_a[_i14 + 1] != null && (vp_a[_i14 + 1].substring(0, 1) === '"' || vp_a[_i14 + 1].substring(0, 1) === "{" || vp_a[_i14 + 1].substring(0, 1) === "}")) {
57073
+ if (vp_a[_i12 + 1] != null && (vp_a[_i12 + 1].substring(0, 1) === '"' || vp_a[_i12 + 1].substring(0, 1) === "{" || vp_a[_i12 + 1].substring(0, 1) === "}")) {
56779
57074
  pfri[1] = _n2.length;
56780
- } else if (!___default['default'].isNil(v_a[_i14 + 1]) && v_a[_i14 + 1].substring(0, 1) === '"' && (v_a[_i14 + 1].substring(0, 1) === "{" || v_a[_i14 + 1].substring(0, 1) === "}")) {
57075
+ } else if (!___default['default'].isNil(v_a[_i12 + 1]) && v_a[_i12 + 1].substring(0, 1) === '"' && (v_a[_i12 + 1].substring(0, 1) === "{" || v_a[_i12 + 1].substring(0, 1) === "}")) {
56781
57076
  pfri[0] += 1;
56782
57077
  pfri[1] = 1;
56783
57078
  } 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) === ")") {
@@ -56787,7 +57082,7 @@ function findrangeindex(ctx, v, vp) {
56787
57082
  } else {
56788
57083
  pfri[0] = pfri[0] + vlen - vplen;
56789
57084
  if (v_a.length > vp_a.length) {
56790
- pfri[1] = v_a[_i14 + 1].length;
57085
+ pfri[1] = v_a[_i12 + 1].length;
56791
57086
  } else {
56792
57087
  pfri[1] = 1;
56793
57088
  }
@@ -56796,17 +57091,17 @@ function findrangeindex(ctx, v, vp) {
56796
57091
  } else if (_p2.length > _n2.length) {
56797
57092
  if (!___default['default'].isNil(_p2) && _p2.substring(0, 1) === '"') {
56798
57093
  pfri[1] = _n2.length;
56799
- } else if (___default['default'].isNil(v_a[_i14 + 1]) && /{.*?}/.test(v_a[_i14 + 1])) {
57094
+ } else if (___default['default'].isNil(v_a[_i12 + 1]) && /{.*?}/.test(v_a[_i12 + 1])) {
56800
57095
  pfri[0] += 1;
56801
- pfri[1] = v_a[_i14 + 1].length;
56802
- } else if (!___default['default'].isNil(_p2) && v_a[_i14 + 1].substring(0, 1) === '"' && (_p2.indexOf("{") > -1 || _p2.indexOf("}") > -1)) {
57096
+ pfri[1] = v_a[_i12 + 1].length;
57097
+ } else if (!___default['default'].isNil(_p2) && v_a[_i12 + 1].substring(0, 1) === '"' && (_p2.indexOf("{") > -1 || _p2.indexOf("}") > -1)) {
56803
57098
  pfri[0] += 1;
56804
57099
  pfri[1] = 1;
56805
57100
  } 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, "=")) {
56806
57101
  return [vlen - 1, v_a[vlen - 1].length];
56807
57102
  } else {
56808
57103
  pfri[0] = pfri[0] + vlen - vplen - 1;
56809
- pfri[1] = v_a[(_i14 || 1) - 1].length;
57104
+ pfri[1] = v_a[(_i12 || 1) - 1].length;
56810
57105
  }
56811
57106
  return pfri;
56812
57107
  } else if (_p2.length < _n2.length) {
@@ -56828,7 +57123,7 @@ function createRangeHightlight(ctx, inputInnerHtmlStr) {
56828
57123
  if (rangeIndex === ignoreRangeIndex) return;
56829
57124
  var cellrange = getcellrange(ctx, ele.textContent || "");
56830
57125
  if (rangeIndex === ctx.formulaCache.selectingRangeIndex || cellrange == null) return;
56831
- if (cellrange.sheetId === ctx.currentSheetId || cellrange.sheetId === -1 && ctx.formulaCache.rangetosheet === ctx.currentSheetId) {
57126
+ if (cellrange.sheetId === ctx.currentSheetId || !cellrange.sheetId && ctx.formulaCache.rangetosheet === ctx.currentSheetId) {
56832
57127
  var rect = seletedHighlistByindex(ctx, cellrange.row[0], cellrange.row[1], cellrange.column[0], cellrange.column[1]);
56833
57128
  if (rect) {
56834
57129
  formulaRanges.push(_objectSpread2(_objectSpread2({
@@ -56880,8 +57175,8 @@ function searchFunction(ctx, searchtxt) {
56880
57175
  var s = [];
56881
57176
  var t = [];
56882
57177
  var result_i = 0;
56883
- for (var _i15 = 0; _i15 < functionlist.length; _i15 += 1) {
56884
- var item = functionlist[_i15];
57178
+ for (var _i13 = 0; _i13 < functionlist.length; _i13 += 1) {
57179
+ var item = functionlist[_i13];
56885
57180
  var n = item.n;
56886
57181
  if (n === searchtxt) {
56887
57182
  f.unshift(item);
@@ -56943,8 +57238,8 @@ function helpFunctionExe($editer, currSelection, ctx) {
56943
57238
  var _locale2 = locale(ctx),
56944
57239
  functionlist = _locale2.functionlist;
56945
57240
  if (___default['default'].isEmpty(ctx.formulaCache.functionlistMap)) {
56946
- for (var _i16 = 0; _i16 < functionlist.length; _i16 += 1) {
56947
- ctx.formulaCache.functionlistMap[functionlist[_i16].n] = functionlist[_i16];
57241
+ for (var _i14 = 0; _i14 < functionlist.length; _i14 += 1) {
57242
+ ctx.formulaCache.functionlistMap[functionlist[_i14].n] = functionlist[_i14];
56948
57243
  }
56949
57244
  }
56950
57245
  if (!currSelection) {
@@ -58111,17 +58406,19 @@ function setConditionRules(ctx, protection, generalDialog, conditionformat, rule
58111
58406
  var v = rules.rulesValue;
58112
58407
  var rangeArr = getRangeByTxt(ctx, v);
58113
58408
  if (rangeArr.length > 1) {
58114
- var r1 = rangeArr[0].row[0];
58115
- var r2 = rangeArr[0].row[1];
58116
- var c1 = rangeArr[0].column[0];
58117
- var c2 = rangeArr[0].column[1];
58409
+ var _rangeArr$, _rangeArr$2, _rangeArr$3, _rangeArr$4;
58410
+ var r1 = (_rangeArr$ = rangeArr[0]) === null || _rangeArr$ === void 0 ? void 0 : _rangeArr$.row[0];
58411
+ var r2 = (_rangeArr$2 = rangeArr[0]) === null || _rangeArr$2 === void 0 ? void 0 : _rangeArr$2.row[1];
58412
+ var c1 = (_rangeArr$3 = rangeArr[0]) === null || _rangeArr$3 === void 0 ? void 0 : _rangeArr$3.column[0];
58413
+ var c2 = (_rangeArr$4 = rangeArr[0]) === null || _rangeArr$4 === void 0 ? void 0 : _rangeArr$4.column[1];
58118
58414
  if (r1 === r2 && c1 === c2) {
58415
+ var _rangeArr$5, _rangeArr$6;
58119
58416
  var d = getFlowdata(ctx);
58120
- if (!d) return;
58417
+ if (!d || ___default['default'].isNil(r1) || ___default['default'].isNil(c1)) return;
58121
58418
  v = getCellValue(r1, c1, d);
58122
58419
  conditionRange.push({
58123
- row: rangeArr[0].row,
58124
- column: rangeArr[0].column
58420
+ row: rangeArr === null || rangeArr === void 0 ? void 0 : (_rangeArr$5 = rangeArr[0]) === null || _rangeArr$5 === void 0 ? void 0 : _rangeArr$5.row,
58421
+ column: rangeArr === null || rangeArr === void 0 ? void 0 : (_rangeArr$6 = rangeArr[0]) === null || _rangeArr$6 === void 0 ? void 0 : _rangeArr$6.column
58125
58422
  });
58126
58423
  conditionValue.push(v);
58127
58424
  } else {
@@ -58143,17 +58440,19 @@ function setConditionRules(ctx, protection, generalDialog, conditionformat, rule
58143
58440
  return;
58144
58441
  }
58145
58442
  if (rangeArr1.length === 1) {
58146
- var _r = rangeArr1[0].row[0];
58147
- var _r2 = rangeArr1[0].row[1];
58148
- var _c = rangeArr1[0].column[0];
58149
- var _c2 = rangeArr1[0].column[1];
58443
+ var _rangeArr1$, _rangeArr1$2, _rangeArr1$3, _rangeArr1$4;
58444
+ var _r = (_rangeArr1$ = rangeArr1[0]) === null || _rangeArr1$ === void 0 ? void 0 : _rangeArr1$.row[0];
58445
+ var _r2 = (_rangeArr1$2 = rangeArr1[0]) === null || _rangeArr1$2 === void 0 ? void 0 : _rangeArr1$2.row[1];
58446
+ var _c = (_rangeArr1$3 = rangeArr1[0]) === null || _rangeArr1$3 === void 0 ? void 0 : _rangeArr1$3.column[0];
58447
+ var _c2 = (_rangeArr1$4 = rangeArr1[0]) === null || _rangeArr1$4 === void 0 ? void 0 : _rangeArr1$4.column[1];
58150
58448
  if (_r === _r2 && _c === _c2) {
58449
+ var _rangeArr1$5, _rangeArr1$6;
58151
58450
  var _d = getFlowdata(ctx);
58152
- if (!_d) return;
58451
+ if (!_d || ___default['default'].isNil(_r) || ___default['default'].isNil(_c)) return;
58153
58452
  v1 = getCellValue(_r, _c, _d);
58154
58453
  conditionRange.push({
58155
- row: rangeArr1[0].row,
58156
- column: rangeArr1[0].column
58454
+ row: rangeArr1 === null || rangeArr1 === void 0 ? void 0 : (_rangeArr1$5 = rangeArr1[0]) === null || _rangeArr1$5 === void 0 ? void 0 : _rangeArr1$5.row,
58455
+ column: rangeArr1 === null || rangeArr1 === void 0 ? void 0 : (_rangeArr1$6 = rangeArr1[0]) === null || _rangeArr1$6 === void 0 ? void 0 : _rangeArr1$6.column
58157
58456
  });
58158
58457
  conditionValue.push(v1);
58159
58458
  } else {
@@ -58173,17 +58472,19 @@ function setConditionRules(ctx, protection, generalDialog, conditionformat, rule
58173
58472
  return;
58174
58473
  }
58175
58474
  if (rangeArr2.length === 1) {
58176
- var _r3 = rangeArr2[0].row[0];
58177
- var _r4 = rangeArr2[0].row[1];
58178
- var _c3 = rangeArr2[0].column[0];
58179
- var _c4 = rangeArr2[0].column[1];
58475
+ var _rangeArr2$, _rangeArr2$2, _rangeArr2$3, _rangeArr2$4;
58476
+ var _r3 = (_rangeArr2$ = rangeArr2[0]) === null || _rangeArr2$ === void 0 ? void 0 : _rangeArr2$.row[0];
58477
+ var _r4 = (_rangeArr2$2 = rangeArr2[0]) === null || _rangeArr2$2 === void 0 ? void 0 : _rangeArr2$2.row[1];
58478
+ var _c3 = (_rangeArr2$3 = rangeArr2[0]) === null || _rangeArr2$3 === void 0 ? void 0 : _rangeArr2$3.column[0];
58479
+ var _c4 = (_rangeArr2$4 = rangeArr2[0]) === null || _rangeArr2$4 === void 0 ? void 0 : _rangeArr2$4.column[1];
58180
58480
  if (_r3 === _r4 && _c3 === _c4) {
58481
+ var _rangeArr2$5, _rangeArr2$6;
58181
58482
  var _d2 = getFlowdata(ctx);
58182
- if (!_d2) return;
58483
+ if (!_d2 || ___default['default'].isNil(_r3) || ___default['default'].isNil(_c3)) return;
58183
58484
  v2 = getCellValue(_r3, _c3, _d2);
58184
58485
  conditionRange.push({
58185
- row: rangeArr2[0].row,
58186
- column: rangeArr2[0].column
58486
+ row: rangeArr2 === null || rangeArr2 === void 0 ? void 0 : (_rangeArr2$5 = rangeArr2[0]) === null || _rangeArr2$5 === void 0 ? void 0 : _rangeArr2$5.row,
58487
+ column: rangeArr2 === null || rangeArr2 === void 0 ? void 0 : (_rangeArr2$6 = rangeArr2[0]) === null || _rangeArr2$6 === void 0 ? void 0 : _rangeArr2$6.column
58187
58488
  });
58188
58489
  } else {
58189
58490
  ctx.warnDialog = conditionformat.onlySingleCell;
@@ -58584,7 +58885,7 @@ function compute(ctx, ruleArr, d) {
58584
58885
  if (___default['default'].isNil(_cell7) || ___default['default'].isNil(_cell7.v) || isRealNull(_cell7.v)) {
58585
58886
  continue;
58586
58887
  }
58587
- if (_cell7.v >= vSmall && _cell7.v <= vBig) {
58888
+ if (typeof _cell7.v === "number" && _cell7.v >= vSmall && _cell7.v <= vBig) {
58588
58889
  if ("".concat(_r1, "_").concat(_c1) in computeMap) {
58589
58890
  computeMap["".concat(_r1, "_").concat(_c1)].textColor = textColor;
58590
58891
  computeMap["".concat(_r1, "_").concat(_c1)].cellColor = cellColor;
@@ -59306,14 +59607,15 @@ function dataRangeSelection(ctx, cache, rangT, type, value) {
59306
59607
  ctx.rangeDialog.type = type;
59307
59608
  ctx.rangeDialog.rangeTxt = value;
59308
59609
  if (ctx.luckysheet_select_save && !!rangT) {
59309
- var _ctx$formulaRangeSele, _ctx$formulaRangeSele2;
59610
+ var _range$, _range$2, _ctx$formulaRangeSele, _ctx$formulaRangeSele2;
59310
59611
  var last = ctx.luckysheet_select_save[ctx.luckysheet_select_save.length - 1];
59311
59612
  var row_index = last.row_focus;
59312
59613
  var col_index = last.column_focus;
59313
59614
  ctx.luckysheetCellUpdate = [row_index, col_index];
59314
59615
  var range = getRangeByTxt(ctx, rangT);
59315
- var r = range[0].row;
59316
- var c = range[0].column;
59616
+ var r = (_range$ = range[0]) === null || _range$ === void 0 ? void 0 : _range$.row;
59617
+ var c = (_range$2 = range[0]) === null || _range$2 === void 0 ? void 0 : _range$2.column;
59618
+ if (___default['default'].isNil(r) || ___default['default'].isNil(c)) return;
59317
59619
  var row_pre = rowLocationByIndex(r[0], ctx.visibledatarow)[0];
59318
59620
  var row = rowLocationByIndex(r[1], ctx.visibledatarow)[1];
59319
59621
  var col_pre = colLocationByIndex(c[0], ctx.visibledatacolumn)[0];
@@ -59333,9 +59635,9 @@ function getDropdownList(ctx, txt) {
59333
59635
  var list = [];
59334
59636
  if (iscelldata(txt)) {
59335
59637
  var range = getcellrange(ctx, txt);
59336
- var index = getSheetIndex(ctx, range.sheetId);
59638
+ var index = getSheetIndex(ctx, (range === null || range === void 0 ? void 0 : range.sheetId) || ctx.currentSheetId);
59337
59639
  var d = ctx.luckysheetfile[index].data;
59338
- if (!d) return [];
59640
+ if (!d || !range) return [];
59339
59641
  for (var r = range.row[0]; r <= range.row[1]; r += 1) {
59340
59642
  for (var c = range.column[0]; c <= range.column[1]; c += 1) {
59341
59643
  if (!d[r]) {
@@ -59909,18 +60211,18 @@ function setDropcownValue(ctx, value, arr) {
59909
60211
  jfrefreshgrid(ctx, null, undefined);
59910
60212
  }
59911
60213
  function confirmMessage(ctx, generalDialog, dataVerification) {
59912
- var _ctx$dataVerification0, _ctx$dataVerification1;
60214
+ var _ctx$dataVerification0, _ctx$dataVerification1, _range, _range2, _range3, _range4;
59913
60215
  var range = getRangeByTxt(ctx, (_ctx$dataVerification0 = ctx.dataVerification) === null || _ctx$dataVerification0 === void 0 ? void 0 : (_ctx$dataVerification1 = _ctx$dataVerification0.dataRegulation) === null || _ctx$dataVerification1 === void 0 ? void 0 : _ctx$dataVerification1.rangeTxt);
59914
60216
  if (range.length === 0) {
59915
60217
  ctx.warnDialog = generalDialog.noSeletionError;
59916
60218
  return false;
59917
60219
  }
59918
- var str = range[range.length - 1].row[0];
59919
- var edr = range[range.length - 1].row[1];
59920
- var stc = range[range.length - 1].column[0];
59921
- var edc = range[range.length - 1].column[1];
60220
+ var str = (_range = range[range.length - 1]) === null || _range === void 0 ? void 0 : _range.row[0];
60221
+ var edr = (_range2 = range[range.length - 1]) === null || _range2 === void 0 ? void 0 : _range2.row[1];
60222
+ var stc = (_range3 = range[range.length - 1]) === null || _range3 === void 0 ? void 0 : _range3.column[0];
60223
+ var edc = (_range4 = range[range.length - 1]) === null || _range4 === void 0 ? void 0 : _range4.column[1];
59922
60224
  var d = getFlowdata(ctx);
59923
- if (!d) return false;
60225
+ if (!d || ___default['default'].isNil(str) || ___default['default'].isNil(edr) || ___default['default'].isNil(stc) || ___default['default'].isNil(edc)) return false;
59924
60226
  if (str < 0) {
59925
60227
  str = 0;
59926
60228
  }
@@ -60510,7 +60812,6 @@ function updateCell(ctx, r, c, $input, value, canvas) {
60510
60812
  delete curv.ct.s;
60511
60813
  curv.ct.t = "g";
60512
60814
  curv.ct.fa = "General";
60513
- curv.tb = "1";
60514
60815
  value = "";
60515
60816
  } else if (isCurInline) {
60516
60817
  if (!___default['default'].isPlainObject(curv)) {
@@ -60521,7 +60822,6 @@ function updateCell(ctx, r, c, $input, value, canvas) {
60521
60822
  if (!curv.ct) {
60522
60823
  curv.ct = {};
60523
60824
  curv.ct.fa = "General";
60524
- curv.tb = "1";
60525
60825
  }
60526
60826
  curv.ct.t = "inlineStr";
60527
60827
  curv.ct.s = convertSpanToShareString($input.querySelectorAll("span"), curv);
@@ -60570,7 +60870,7 @@ function updateCell(ctx, r, c, $input, value, canvas) {
60570
60870
  var dynamicArrayItem = null;
60571
60871
  if (___default['default'].isPlainObject(curv)) {
60572
60872
  if (!isCurInline) {
60573
- if (___default['default'].isString(value) && value.slice(0, 1) === "=" && value.length > 1) {
60873
+ if (isFormula(value)) {
60574
60874
  var _d$r;
60575
60875
  var v = execfunction(ctx, value, r, c, undefined, undefined, true);
60576
60876
  curv = ___default['default'].cloneDeep((d === null || d === void 0 ? void 0 : (_d$r = d[r]) === null || _d$r === void 0 ? void 0 : _d$r[c]) || {});
@@ -60592,7 +60892,7 @@ function updateCell(ctx, r, c, $input, value, canvas) {
60592
60892
  }
60593
60893
  } else if (___default['default'].isPlainObject(value)) {
60594
60894
  var valueFunction = value.f;
60595
- if (___default['default'].isString(valueFunction) && valueFunction.slice(0, 1) === "=" && valueFunction.length > 1) {
60895
+ if (isFormula(valueFunction)) {
60596
60896
  var _d$r2;
60597
60897
  var _v2 = execfunction(ctx, valueFunction, r, c, undefined, undefined, true);
60598
60898
  curv = ___default['default'].cloneDeep((d === null || d === void 0 ? void 0 : (_d$r2 = d[r]) === null || _d$r2 === void 0 ? void 0 : _d$r2[c]) || {});
@@ -60636,7 +60936,7 @@ function updateCell(ctx, r, c, $input, value, canvas) {
60636
60936
  }
60637
60937
  value = curv;
60638
60938
  } else {
60639
- if (___default['default'].isString(value) && value.slice(0, 1) === "=" && value.length > 1) {
60939
+ if (isFormula(value)) {
60640
60940
  var _v4 = execfunction(ctx, value, r, c, undefined, undefined, true);
60641
60941
  value = {
60642
60942
  v: _v4[1],
@@ -60655,7 +60955,7 @@ function updateCell(ctx, r, c, $input, value, canvas) {
60655
60955
  }
60656
60956
  } else if (___default['default'].isPlainObject(value)) {
60657
60957
  var _valueFunction = value.f;
60658
- if (___default['default'].isString(_valueFunction) && _valueFunction.slice(0, 1) === "=" && _valueFunction.length > 1) {
60958
+ if (isFormula(_valueFunction)) {
60659
60959
  var _v5 = execfunction(ctx, _valueFunction, r, c, undefined, undefined, true);
60660
60960
  var _v6 = _slicedToArray(_v5, 3);
60661
60961
  value.v = _v6[1];
@@ -60713,6 +61013,11 @@ function updateCell(ctx, r, c, $input, value, canvas) {
60713
61013
  afterUpdateCell === null || afterUpdateCell === void 0 ? void 0 : afterUpdateCell(r, c, oldValue, newValue);
60714
61014
  });
60715
61015
  }
61016
+ setFormulaCellInfo(ctx, {
61017
+ r: r,
61018
+ c: c,
61019
+ id: ctx.currentSheetId
61020
+ });
60716
61021
  ctx.formulaCache.execFunctionGlobalData = null;
60717
61022
  }
60718
61023
  function getOrigincell(ctx, r, c, i) {
@@ -61110,6 +61415,8 @@ var clipboard = /*#__PURE__*/function () {
61110
61415
  });
61111
61416
  document.execCommand("selectAll");
61112
61417
  document.execCommand("copy");
61418
+ var plainText = ele.innerText || ele.textContent || "";
61419
+ sessionStorage.setItem("localClipboard", plainText);
61113
61420
  setTimeout(function () {
61114
61421
  var _ele, _previouslyFocusedEle;
61115
61422
  (_ele = ele) === null || _ele === void 0 ? void 0 : _ele.blur();
@@ -61395,7 +61702,7 @@ function pasteHandlerOfPaintModel(ctx, copyRange) {
61395
61702
  }
61396
61703
  dataVerification["".concat(h, "_").concat(c)] = c_dataVerification["".concat(c_r1 + h - mth, "_").concat(c_c1 + c - mtc)];
61397
61704
  }
61398
- if (_.isPlainObject(x[c]) && x[c].mc) {
61705
+ if (___default['default'].isPlainObject(x[c]) && x[c].mc) {
61399
61706
  if (x[c].mc.rs) {
61400
61707
  delete cfg.merge["".concat(x[c].mc.r, "_").concat(x[c].mc.c)];
61401
61708
  }
@@ -61405,7 +61712,7 @@ function pasteHandlerOfPaintModel(ctx, copyRange) {
61405
61712
  if (copyData[h - mth] != null && copyData[h - mth][c - mtc] != null) {
61406
61713
  value = copyData[h - mth][c - mtc];
61407
61714
  }
61408
- if (_.isPlainObject(x[c])) {
61715
+ if (___default['default'].isPlainObject(x[c])) {
61409
61716
  if (x[c].ct && x[c].ct.t === "inlineStr" && value) {
61410
61717
  delete value.ct;
61411
61718
  } else {
@@ -62656,25 +62963,21 @@ function deleteSelectedCellText(ctx) {
62656
62963
  var _r4 = selection[_s].row[1];
62657
62964
  var _c3 = selection[_s].column[0];
62658
62965
  var _c4 = selection[_s].column[1];
62659
- for (var r = _r3; r <= _r4; r += 1) {
62660
- for (var c = _c3; c <= _c4; c += 1) {
62661
- if (___default['default'].isPlainObject(d[r][c])) {
62662
- var cell = d[r][c];
62663
- delete cell.m;
62664
- delete cell.v;
62665
- if (cell.f != null) {
62666
- delete cell.f;
62667
- delFunctionGroup(ctx, r, c, ctx.currentSheetId);
62668
- delete cell.spl;
62966
+ var sheetIndex = getSheetIndex(ctx, ctx.currentSheetId);
62967
+ if (sheetIndex !== null && ctx.luckysheetfile[sheetIndex].data) {
62968
+ var _ctx$luckysheetfile$s;
62969
+ var _ref = (_ctx$luckysheetfile$s = ctx.luckysheetfile[sheetIndex]) !== null && _ctx$luckysheetfile$s !== void 0 ? _ctx$luckysheetfile$s : {},
62970
+ _ref$data = _ref.data,
62971
+ data = _ref$data === void 0 ? [] : _ref$data;
62972
+ for (var r = _r3; r <= _r4; r += 1) {
62973
+ for (var c = _c3; c <= _c4; c += 1) {
62974
+ if (!data[r]) data[r] = [];
62975
+ if (data[r] && data[r][c]) {
62976
+ data[r][c] = {};
62669
62977
  }
62670
- if (cell.ct != null && cell.ct.t === "inlineStr") {
62671
- delete cell.ct;
62978
+ if (hyperlinkMap && hyperlinkMap["".concat(r, "_").concat(c)]) {
62979
+ delete hyperlinkMap["".concat(r, "_").concat(c)];
62672
62980
  }
62673
- } else {
62674
- d[r][c] = null;
62675
- }
62676
- if (hyperlinkMap && hyperlinkMap["".concat(r, "_").concat(c)]) {
62677
- delete hyperlinkMap["".concat(r, "_").concat(c)];
62678
62981
  }
62679
62982
  }
62680
62983
  }
@@ -62683,7 +62986,6 @@ function deleteSelectedCellText(ctx) {
62683
62986
  return "success";
62684
62987
  }
62685
62988
  function selectIsOverlap(ctx, range) {
62686
- console.log("selectIsOverlap", ctx, range);
62687
62989
  return false;
62688
62990
  }
62689
62991
  function selectAll(ctx) {
@@ -62828,7 +63130,7 @@ function defaultContext(refs) {
62828
63130
  defaultrowNum: 84,
62829
63131
  addDefaultRows: 50,
62830
63132
  fullscreenmode: true,
62831
- devicePixelRatio: (globalThis || window).devicePixelRatio,
63133
+ devicePixelRatio: (typeof globalThis !== "undefined" ? globalThis : window).devicePixelRatio,
62832
63134
  contextMenu: {},
62833
63135
  sheetTabContextMenu: {},
62834
63136
  currentSheetId: "",
@@ -63048,6 +63350,7 @@ function defaultContext(refs) {
63048
63350
  defaultFontSize: 10,
63049
63351
  luckysheetPaintModelOn: false,
63050
63352
  luckysheetPaintSingle: false,
63353
+ sheetFocused: true,
63051
63354
  defaultCell: {
63052
63355
  bl: 0,
63053
63356
  ct: {
@@ -65659,6 +65962,7 @@ function insertRowCol(ctx, op) {
65659
65962
  }
65660
65963
  }
65661
65964
  refreshLocalMergeData(merge_new, file);
65965
+ ctx.formulaCache.formulaCellInfoMap = null;
65662
65966
  }
65663
65967
  function deleteRowCol(ctx, op) {
65664
65968
  var type = op.type;
@@ -66386,6 +66690,7 @@ function deleteRowCol(ctx, op) {
66386
66690
  file.dataVerification = newDataVerification;
66387
66691
  file.hyperlink = newHyperlink;
66388
66692
  refreshLocalMergeData(merge_new, file);
66693
+ ctx.formulaCache.formulaCellInfoMap = null;
66389
66694
  if (file.id === ctx.currentSheetId) {
66390
66695
  ctx.config = cfg;
66391
66696
  }
@@ -66676,12 +66981,22 @@ function copySheet(ctx, sheetId) {
66676
66981
  sheetOrderList[ctx.luckysheetfile[ctx.luckysheetfile.length - 1].id] = order;
66677
66982
  setSheetOrder(ctx, sheetOrderList);
66678
66983
  }
66679
- function calculateSheetFromula(ctx, id) {
66984
+ function calculateSheetFromula(ctx, id, range) {
66680
66985
  var index$1 = getSheetIndex(ctx, id);
66681
66986
  if (!ctx.luckysheetfile[index$1].data) return;
66682
- for (var r = 0; r < ctx.luckysheetfile[index$1].data.length; r += 1) {
66683
- for (var c = 0; c < ctx.luckysheetfile[index$1].data[r].length; c += 1) {
66987
+ if (!range) {
66988
+ range = {
66989
+ row: [0, ctx.luckysheetfile[index$1].data.length - 1],
66990
+ column: [0, ctx.luckysheetfile[index$1].data[0].length - 1]
66991
+ };
66992
+ }
66993
+ var rowCount = range.row[1] - range.row[0] + 1;
66994
+ var columnCount = range.column[1] - range.column[0] + 1;
66995
+ for (var _r = 0; _r < rowCount; _r += 1) {
66996
+ for (var _c = 0; _c < columnCount; _c += 1) {
66684
66997
  var _ctx$luckysheetfile$i, _ctx$luckysheetfile$i2;
66998
+ var r = range.row[0] + _r;
66999
+ var c = range.column[0] + _c;
66685
67000
  if (!((_ctx$luckysheetfile$i = ctx.luckysheetfile[index$1].data[r][c]) === null || _ctx$luckysheetfile$i === void 0 ? void 0 : _ctx$luckysheetfile$i.f)) {
66686
67001
  continue;
66687
67002
  }
@@ -66691,6 +67006,15 @@ function calculateSheetFromula(ctx, id) {
66691
67006
  }
66692
67007
  }
66693
67008
  }
67009
+ function calculateFormula(ctx, id, range) {
67010
+ if (id) {
67011
+ calculateSheetFromula(ctx, id, range);
67012
+ return;
67013
+ }
67014
+ ___default['default'].forEach(ctx.luckysheetfile, function (sheet_obj) {
67015
+ calculateSheetFromula(ctx, sheet_obj.id, range);
67016
+ });
67017
+ }
66694
67018
 
66695
67019
  function storeSheetParam(ctx) {
66696
67020
  var index = getSheetIndex(ctx, ctx.currentSheetId);
@@ -66835,6 +67159,11 @@ function updateSheet(ctx, newData) {
66835
67159
  for (var i = 0; i < data.length; i += 1) {
66836
67160
  for (var j = 0; j < data[i].length; j += 1) {
66837
67161
  expandedData[i][j] = data[i][j];
67162
+ setFormulaCellInfo(ctx, {
67163
+ r: i,
67164
+ c: j,
67165
+ id: newDatum.id
67166
+ }, data);
66838
67167
  }
66839
67168
  }
66840
67169
  newDatum.data = expandedData;
@@ -66844,7 +67173,16 @@ function updateSheet(ctx, newData) {
66844
67173
  ctx.luckysheetfile[index] = newDatum;
66845
67174
  }
66846
67175
  } else if (newDatum.celldata != null) {
67176
+ var _newDatum$celldata;
66847
67177
  initSheetData(ctx, index, newDatum);
67178
+ var _index = getSheetIndex(ctx, newDatum.id);
67179
+ (_newDatum$celldata = newDatum.celldata) === null || _newDatum$celldata === void 0 ? void 0 : _newDatum$celldata.forEach(function (d) {
67180
+ setFormulaCellInfo(ctx, {
67181
+ r: d.r,
67182
+ c: d.c,
67183
+ id: newDatum.id
67184
+ }, ctx.luckysheetfile[_index].data);
67185
+ });
66848
67186
  }
66849
67187
  });
66850
67188
  }
@@ -67138,6 +67476,11 @@ function runExecFunction(ctx, range, index, data) {
67138
67476
  for (var s = 0; s < range.length; s += 1) {
67139
67477
  for (var r = range[s].row[0]; r <= range[s].row[1]; r += 1) {
67140
67478
  for (var c = range[s].column[0]; c <= range[s].column[1]; c += 1) {
67479
+ setFormulaCellInfo(ctx, {
67480
+ r: r,
67481
+ c: c,
67482
+ id: index
67483
+ }, data);
67141
67484
  ctx.formulaCache.execFunctionExist.push({
67142
67485
  r: r,
67143
67486
  c: c,
@@ -67442,7 +67785,7 @@ function goToLink(ctx, r, c, linkType, linkAddress, scrollbarX, scrollbarY) {
67442
67785
  scrollbarX.scrollLeft = col_pre;
67443
67786
  scrollbarY.scrollLeft = row_pre;
67444
67787
  ctx.luckysheet_select_save = normalizeSelection(ctx, [range]);
67445
- changeSheet(ctx, range.sheetId);
67788
+ changeSheet(ctx, range.sheetId || ctx.currentSheetId);
67446
67789
  }
67447
67790
  ctx.linkCard = undefined;
67448
67791
  }
@@ -68421,6 +68764,13 @@ function autoSelectionFormula(ctx, cellInput, fxInput, formula, cache) {
68421
68764
  });
68422
68765
  if (!isfalse) {
68423
68766
  ctx.formulaCache.execFunctionExist.reverse();
68767
+ ctx.formulaCache.execFunctionExist.forEach(function (formulaCell) {
68768
+ setFormulaCellInfo(ctx, {
68769
+ r: formulaCell.r,
68770
+ c: formulaCell.c,
68771
+ id: ctx.currentSheetId
68772
+ }, flowdata);
68773
+ });
68424
68774
  execFunctionGroup(ctx, null, null, null, null, flowdata);
68425
68775
  ctx.formulaCache.execFunctionGlobalData = null;
68426
68776
  }
@@ -68798,7 +69148,9 @@ function handleBorder(ctx, type, borderColor, borderStyle) {
68798
69148
  function handleMerge(ctx, type) {
68799
69149
  var allowEdit = isAllowEdit(ctx);
68800
69150
  if (!allowEdit) return;
68801
- if (selectIsOverlap(ctx)) ;
69151
+ if (selectIsOverlap()) {
69152
+ return;
69153
+ }
68802
69154
  if (ctx.config.merge != null) {
68803
69155
  var has_PartMC = false;
68804
69156
  if (!ctx.luckysheet_select_save) return;
@@ -76281,7 +76633,7 @@ var index = /*#__PURE__*/Object.freeze({
76281
76633
  hideSheet: hideSheet,
76282
76634
  showSheet: showSheet,
76283
76635
  copySheet: copySheet,
76284
- calculateSheetFromula: calculateSheetFromula,
76636
+ calculateFormula: calculateFormula,
76285
76637
  addSheet: addSheet$1,
76286
76638
  deleteSheet: deleteSheet$1,
76287
76639
  updateSheet: updateSheet$1,
@@ -76389,7 +76741,7 @@ function handleCopy(ctx) {
76389
76741
  isSameCol = false;
76390
76742
  }
76391
76743
  }
76392
- if (!isSameRow && !isSameCol || selectIsOverlap(ctx)) {
76744
+ if (!isSameRow && !isSameCol || selectIsOverlap()) {
76393
76745
  return;
76394
76746
  }
76395
76747
  }
@@ -76587,6 +76939,72 @@ function handleWithCtrlOrMetaKey(ctx, cache, e, cellInput, fxInput, handleUndo,
76587
76939
  return;
76588
76940
  } else if (e.code === "KeyA") {
76589
76941
  selectAll(ctx);
76942
+ } else if (e.code === "KeyD") {
76943
+ if (!ctx.luckysheet_select_save || ctx.luckysheet_select_save.length === 0) {
76944
+ return;
76945
+ }
76946
+ e.preventDefault();
76947
+ e.stopPropagation();
76948
+ var selectedRange = ctx.luckysheet_select_save[0];
76949
+ var row = selectedRange.row,
76950
+ column = selectedRange.column;
76951
+ if (!row || !column) return;
76952
+ if (!isAllowEdit(ctx)) return;
76953
+ for (var col = column[0]; col <= column[1]; col += 1) {
76954
+ var _flowdata$row$;
76955
+ var sourceCell = flowdata === null || flowdata === void 0 ? void 0 : (_flowdata$row$ = flowdata[row[0]]) === null || _flowdata$row$ === void 0 ? void 0 : _flowdata$row$[col];
76956
+ if (!sourceCell) continue;
76957
+ var sourceValue = sourceCell.v;
76958
+ var sourceFormula = sourceCell.f;
76959
+ var _loop = function _loop(r) {
76960
+ if (sourceFormula) {
76961
+ var newFormula = sourceFormula.replace(/(\$?[A-Z]+)(\$?)(\d+)/g, function (match, colRef, dollar, rowNum) {
76962
+ return dollar ? match : "".concat(colRef).concat(parseInt(rowNum, 10) + (r - row[0]));
76963
+ });
76964
+ updateCell(ctx, r, col, null, newFormula);
76965
+ } else {
76966
+ updateCell(ctx, r, col, null, sourceValue);
76967
+ }
76968
+ };
76969
+ for (var r = row[0] + 1; r <= row[1]; r += 1) {
76970
+ _loop(r);
76971
+ }
76972
+ }
76973
+ jfrefreshgrid(ctx, null, undefined);
76974
+ } else if (e.code === "KeyR") {
76975
+ if (!ctx.luckysheet_select_save || ctx.luckysheet_select_save.length === 0) {
76976
+ return;
76977
+ }
76978
+ e.preventDefault();
76979
+ e.stopPropagation();
76980
+ var _selectedRange = ctx.luckysheet_select_save[0];
76981
+ var _row = _selectedRange.row,
76982
+ _column = _selectedRange.column;
76983
+ if (!_row || !_column) return;
76984
+ if (!isAllowEdit(ctx)) return;
76985
+ for (var _r = _row[0]; _r <= _row[1]; _r += 1) {
76986
+ var _flowdata$_r;
76987
+ var _sourceCell = flowdata === null || flowdata === void 0 ? void 0 : (_flowdata$_r = flowdata[_r]) === null || _flowdata$_r === void 0 ? void 0 : _flowdata$_r[_column[0]];
76988
+ if (!_sourceCell) continue;
76989
+ var _sourceValue = _sourceCell.v;
76990
+ var _sourceFormula = _sourceCell.f;
76991
+ var _loop2 = function _loop2(c) {
76992
+ if (_sourceFormula) {
76993
+ var newFormula = _sourceFormula.replace(/(\$?[A-Z]+)(\$?)(\d+)/g, function (match, colRef, dollar, rowNum) {
76994
+ if (dollar) return match;
76995
+ var colIndex = colRef.charCodeAt(0) - 65 + (c - _column[0]);
76996
+ return "".concat(String.fromCharCode(65 + colIndex)).concat(rowNum);
76997
+ });
76998
+ updateCell(ctx, _r, c, null, newFormula);
76999
+ } else {
77000
+ updateCell(ctx, _r, c, null, _sourceValue);
77001
+ }
77002
+ };
77003
+ for (var c = _column[0] + 1; c <= _column[1]; c += 1) {
77004
+ _loop2(c);
77005
+ }
77006
+ }
77007
+ jfrefreshgrid(ctx, null, undefined);
76590
77008
  }
76591
77009
  e.preventDefault();
76592
77010
  }
@@ -76647,6 +77065,27 @@ function handleGlobalKeyDown(ctx, cellInput, fxInput, e, cache, handleUndo, hand
76647
77065
  if (ctx.luckysheetCellUpdate.length > 0 && kstr !== "Enter" && kstr !== "Tab" && kstr !== "ArrowUp" && kstr !== "ArrowDown" && kstr !== "ArrowLeft" && kstr !== "ArrowRight") {
76648
77066
  return;
76649
77067
  }
77068
+ if (e.ctrlKey && e.shiftKey && kstr === "F") {
77069
+ ctx.sheetFocused = !ctx.sheetFocused;
77070
+ e.preventDefault();
77071
+ if (ctx.sheetFocused) {
77072
+ var selectedCell = document.querySelector(".luckysheet-cell-input");
77073
+ if (selectedCell) {
77074
+ selectedCell.setAttribute("tabindex", "-1");
77075
+ selectedCell.focus();
77076
+ }
77077
+ } else {
77078
+ var toolbar = document.querySelector(".fortune-toolbar");
77079
+ if (toolbar) {
77080
+ toolbar.setAttribute("tabindex", "-1");
77081
+ toolbar.focus();
77082
+ }
77083
+ }
77084
+ return;
77085
+ }
77086
+ if (!ctx.sheetFocused) {
77087
+ return;
77088
+ }
76650
77089
  if (kstr === "Enter") {
76651
77090
  if (!allowEdit) return;
76652
77091
  handleGlobalEnter(ctx, cellInput, e, canvas);
@@ -76687,7 +77126,7 @@ function handleGlobalKeyDown(ctx, cellInput, fxInput, e, cache, handleUndo, hand
76687
77126
  handleShiftWithArrowKey(ctx, e);
76688
77127
  } else if (kstr === "Escape") {
76689
77128
  ctx.contextMenu = {};
76690
- } else if (kstr === "Delete" || kstr === "Backspace") {
77129
+ } else if (kstr.toLowerCase() === "delete" || kstr.toLowerCase() === "backspace") {
76691
77130
  if (!allowEdit) return;
76692
77131
  if (ctx.activeImg != null) {
76693
77132
  removeActiveImage(ctx);
@@ -78496,6 +78935,11 @@ function postPasteCut(ctx, source, target, RowlChange) {
78496
78935
  ctx.formulaCache.execFunctionExist = [];
78497
78936
  for (var r = source.range.row[0]; r <= source.range.row[1]; r += 1) {
78498
78937
  for (var c = source.range.column[0]; c <= source.range.column[1]; c += 1) {
78938
+ setFormulaCellInfo(ctx, {
78939
+ r: r,
78940
+ c: c,
78941
+ id: source.sheetId
78942
+ });
78499
78943
  if ("".concat(r, "_").concat(c, "_").concat(source.sheetId) in execF_rc) {
78500
78944
  continue;
78501
78945
  }
@@ -78509,6 +78953,11 @@ function postPasteCut(ctx, source, target, RowlChange) {
78509
78953
  }
78510
78954
  for (var _r = target.range.row[0]; _r <= target.range.row[1]; _r += 1) {
78511
78955
  for (var _c = target.range.column[0]; _c <= target.range.column[1]; _c += 1) {
78956
+ setFormulaCellInfo(ctx, {
78957
+ r: _r,
78958
+ c: _c,
78959
+ id: source.sheetId
78960
+ });
78512
78961
  if ("".concat(_r, "_").concat(_c, "_").concat(target.sheetId) in execF_rc) {
78513
78962
  continue;
78514
78963
  }
@@ -80035,6 +80484,8 @@ exports.insertUpdateFunctionGroup = insertUpdateFunctionGroup;
80035
80484
  exports.inverseRowColOptions = inverseRowColOptions;
80036
80485
  exports.isAllSelectedCellsInStatus = isAllSelectedCellsInStatus;
80037
80486
  exports.isAllowEdit = isAllowEdit;
80487
+ exports.isFormula = isFormula;
80488
+ exports.isFunctionRange = isFunctionRange;
80038
80489
  exports.isInlineStringCT = isInlineStringCT;
80039
80490
  exports.isInlineStringCell = isInlineStringCell;
80040
80491
  exports.isLinkValid = isLinkValid;
@@ -80130,6 +80581,7 @@ exports.setCellValue = setCellValue;
80130
80581
  exports.setConditionRules = setConditionRules;
80131
80582
  exports.setDropcownValue = setDropcownValue;
80132
80583
  exports.setEditingComment = setEditingComment;
80584
+ exports.setFormulaCellInfoMap = setFormulaCellInfoMap;
80133
80585
  exports.showComments = showComments;
80134
80586
  exports.showDropCellSelection = showDropCellSelection;
80135
80587
  exports.showHideAllComments = showHideAllComments;