@fileverse-dev/fortune-core 1.1.0 → 1.1.2

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.
Files changed (346) hide show
  1. package/{dist/packages/core/src → es}/api/cell.d.ts +10 -10
  2. package/es/api/cell.js +204 -0
  3. package/{dist/packages/core/src → es}/api/common.d.ts +71 -66
  4. package/es/api/common.js +79 -0
  5. package/{dist/packages/core/src → es}/api/errors.d.ts +2 -2
  6. package/es/api/errors.js +2 -0
  7. package/{dist/packages/core/src → es}/api/index.d.ts +9 -9
  8. package/es/api/index.js +8 -0
  9. package/{dist/packages/core/src → es}/api/merge.d.ts +5 -5
  10. package/es/api/merge.js +15 -0
  11. package/{dist/packages/core/src → es}/api/range.d.ts +22 -22
  12. package/es/api/range.js +123 -0
  13. package/{dist/packages/core/src → es}/api/rowcol.d.ts +14 -14
  14. package/es/api/rowcol.js +207 -0
  15. package/{dist/packages/core/src → es}/api/sheet.d.ts +10 -10
  16. package/es/api/sheet.js +128 -0
  17. package/{dist/packages/core/src → es}/api/workbook.d.ts +15 -15
  18. package/es/api/workbook.js +85 -0
  19. package/{dist/packages/core/src → es}/canvas.d.ts +46 -46
  20. package/es/canvas.js +1350 -0
  21. package/{dist/packages/core/src → es}/context.d.ts +198 -197
  22. package/es/context.js +381 -0
  23. package/{dist/packages/core/src → es}/events/copy.d.ts +2 -2
  24. package/es/events/copy.js +78 -0
  25. package/{dist/packages/core/src → es}/events/index.d.ts +4 -4
  26. package/es/events/index.js +4 -0
  27. package/{dist/packages/core/src → es}/events/keyboard.d.ts +6 -6
  28. package/es/events/keyboard.js +360 -0
  29. package/{dist/packages/core/src → es}/events/mouse.d.ts +22 -22
  30. package/es/events/mouse.js +1725 -0
  31. package/{dist/packages/core/src → es}/events/paste.d.ts +4 -3
  32. package/es/events/paste.js +1416 -0
  33. package/{dist/packages/core/src → es}/index.d.ts +10 -10
  34. package/es/index.js +10 -0
  35. package/{dist/packages/core/src → es}/locale/en.d.ts +993 -992
  36. package/es/locale/en.js +10140 -0
  37. package/{dist/packages/core/src → es}/locale/es.d.ts +1134 -1134
  38. package/es/locale/es.js +10010 -0
  39. package/{dist/packages/core/src → es}/locale/hi.d.ts +1030 -1030
  40. package/es/locale/hi.js +10550 -0
  41. package/{dist/packages/core/src → es}/locale/index.d.ts +1049 -1049
  42. package/es/locale/index.js +23 -0
  43. package/{dist/packages/core/src → es}/locale/zh.d.ts +1048 -1048
  44. package/es/locale/zh.js +10568 -0
  45. package/{dist/packages/core/src → es}/locale/zh_tw.d.ts +1187 -1187
  46. package/es/locale/zh_tw.js +10072 -0
  47. package/{dist/packages/core/src → es}/modules/ConditionFormat.d.ts +17 -17
  48. package/es/modules/ConditionFormat.js +1258 -0
  49. package/{dist/packages/core/src → es}/modules/border.d.ts +3 -3
  50. package/es/modules/border.js +1240 -0
  51. package/{dist/packages/core/src → es}/modules/cell.d.ts +32 -32
  52. package/es/modules/cell.js +1092 -0
  53. package/{dist/packages/core/src → es}/modules/clipboard.d.ts +3 -3
  54. package/es/modules/clipboard.js +36 -0
  55. package/{dist/packages/core/src → es}/modules/color.d.ts +1 -1
  56. package/es/modules/color.js +1 -0
  57. package/{dist/packages/core/src → es}/modules/comment.d.ts +97 -97
  58. package/es/modules/comment.js +597 -0
  59. package/{dist/packages/core/src → es}/modules/conditionalFormat.d.ts +2 -2
  60. package/es/modules/conditionalFormat.js +441 -0
  61. package/{dist/packages/core/src → es}/modules/cursor.d.ts +3 -3
  62. package/es/modules/cursor.js +62 -0
  63. package/{dist/packages/core/src → es}/modules/dataVerification.d.ts +11 -11
  64. package/es/modules/dataVerification.js +701 -0
  65. package/{dist/packages/core/src → es}/modules/dropCell.d.ts +10 -10
  66. package/es/modules/dropCell.js +2267 -0
  67. package/{dist/packages/core/src → es}/modules/filter.d.ts +45 -45
  68. package/es/modules/filter.js +434 -0
  69. package/{dist/packages/core/src → es}/modules/format.d.ts +6 -6
  70. package/es/modules/format.js +323 -0
  71. package/{dist/packages/core/src → es}/modules/formula.d.ts +54 -54
  72. package/es/modules/formula.js +2346 -0
  73. package/{dist/packages/core/src → es}/modules/freeze.d.ts +5 -5
  74. package/es/modules/freeze.js +148 -0
  75. package/{dist/packages/core/src → es}/modules/hyperlink.d.ts +21 -21
  76. package/es/modules/hyperlink.js +216 -0
  77. package/{dist/packages/core/src → es}/modules/iframe.d.ts +12 -12
  78. package/es/modules/iframe.js +220 -0
  79. package/{dist/packages/core/src → es}/modules/image.d.ts +31 -31
  80. package/es/modules/image.js +253 -0
  81. package/{dist/packages/core/src → es}/modules/index.d.ts +36 -36
  82. package/es/modules/index.js +36 -0
  83. package/{dist/packages/core/src → es}/modules/inline-string.d.ts +36 -36
  84. package/es/modules/inline-string.js +437 -0
  85. package/{dist/packages/core/src → es}/modules/location.d.ts +6 -6
  86. package/es/modules/location.js +46 -0
  87. package/{dist/packages/core/src → es}/modules/locationCondition.d.ts +21 -21
  88. package/es/modules/locationCondition.js +218 -0
  89. package/{dist/packages/core/src → es}/modules/merge.d.ts +3 -3
  90. package/es/modules/merge.js +216 -0
  91. package/{dist/packages/core/src → es}/modules/mobile.d.ts +5 -5
  92. package/es/modules/mobile.js +33 -0
  93. package/{dist/packages/core/src → es}/modules/moveCells.d.ts +5 -5
  94. package/es/modules/moveCells.js +348 -0
  95. package/{dist/packages/core/src → es}/modules/protection.d.ts +5 -5
  96. package/es/modules/protection.js +96 -0
  97. package/{dist/packages/core/src → es}/modules/refresh.d.ts +3 -3
  98. package/es/modules/refresh.js +34 -0
  99. package/{dist/packages/core/src → es}/modules/rowcol.d.ts +19 -19
  100. package/es/modules/rowcol.js +1922 -0
  101. package/{dist/packages/core/src → es}/modules/screenshot.d.ts +2 -2
  102. package/es/modules/screenshot.js +90 -0
  103. package/{dist/packages/core/src → es}/modules/searchReplace.d.ts +36 -36
  104. package/es/modules/searchReplace.js +388 -0
  105. package/{dist/packages/core/src → es}/modules/selection.d.ts +50 -46
  106. package/es/modules/selection.js +1856 -0
  107. package/{dist/packages/core/src → es}/modules/sheet.d.ts +10 -10
  108. package/es/modules/sheet.js +237 -0
  109. package/{dist/packages/core/src → es}/modules/sort.d.ts +7 -7
  110. package/es/modules/sort.js +134 -0
  111. package/{dist/packages/core/src → es}/modules/splitColumn.d.ts +5 -5
  112. package/es/modules/splitColumn.js +126 -0
  113. package/es/modules/ssf.js +1533 -0
  114. package/{dist/packages/core/src → es}/modules/text.d.ts +10 -10
  115. package/es/modules/text.js +1207 -0
  116. package/{dist/packages/core/src → es}/modules/toolbar.d.ts +32 -32
  117. package/es/modules/toolbar.js +970 -0
  118. package/{dist/packages/core/src → es}/modules/validation.d.ts +19 -19
  119. package/es/modules/validation.js +190 -0
  120. package/{dist/packages/core/src → es}/modules/zoom.d.ts +3 -3
  121. package/es/modules/zoom.js +29 -0
  122. package/{dist/packages/core/src → es}/settings.d.ts +100 -100
  123. package/es/settings.js +36 -0
  124. package/{dist/packages/core/src → es}/types.d.ts +380 -371
  125. package/es/types.js +1 -0
  126. package/{dist/packages/core/src → es}/utils/freeze.d.ts +7 -7
  127. package/es/utils/freeze.js +86 -0
  128. package/{dist/packages/core/src → es}/utils/index.d.ts +19 -18
  129. package/es/utils/index.js +198 -0
  130. package/{dist/packages/core/src → es}/utils/patch.d.ts +37 -37
  131. package/es/utils/patch.js +381 -0
  132. package/lib/api/cell.d.ts +10 -0
  133. package/lib/api/cell.js +215 -0
  134. package/lib/api/common.d.ts +71 -0
  135. package/lib/api/common.js +88 -0
  136. package/lib/api/errors.d.ts +2 -0
  137. package/lib/api/errors.js +8 -0
  138. package/lib/api/index.d.ts +9 -0
  139. package/lib/api/index.js +101 -0
  140. package/lib/api/merge.d.ts +5 -0
  141. package/lib/api/merge.js +22 -0
  142. package/lib/api/range.d.ts +22 -0
  143. package/lib/api/range.js +138 -0
  144. package/lib/api/rowcol.d.ts +14 -0
  145. package/lib/api/rowcol.js +222 -0
  146. package/lib/api/sheet.d.ts +10 -0
  147. package/lib/api/sheet.js +145 -0
  148. package/lib/api/workbook.d.ts +15 -0
  149. package/lib/api/workbook.js +98 -0
  150. package/lib/canvas.d.ts +46 -0
  151. package/lib/canvas.js +1356 -0
  152. package/lib/context.d.ts +198 -0
  153. package/lib/context.js +393 -0
  154. package/lib/events/copy.d.ts +2 -0
  155. package/lib/events/copy.js +85 -0
  156. package/lib/events/index.d.ts +4 -0
  157. package/lib/events/index.js +49 -0
  158. package/lib/events/keyboard.d.ts +6 -0
  159. package/lib/events/keyboard.js +370 -0
  160. package/lib/events/mouse.d.ts +22 -0
  161. package/lib/events/mouse.js +1744 -0
  162. package/lib/events/paste.d.ts +4 -0
  163. package/lib/events/paste.js +1425 -0
  164. package/lib/index.d.ts +10 -0
  165. package/lib/index.js +109 -0
  166. package/lib/locale/en.d.ts +993 -0
  167. package/lib/locale/en.js +10146 -0
  168. package/lib/locale/es.d.ts +1134 -0
  169. package/lib/locale/es.js +10016 -0
  170. package/lib/locale/hi.d.ts +1030 -0
  171. package/lib/locale/hi.js +10556 -0
  172. package/lib/locale/index.d.ts +1049 -0
  173. package/lib/locale/index.js +29 -0
  174. package/lib/locale/zh.d.ts +1048 -0
  175. package/lib/locale/zh.js +10574 -0
  176. package/lib/locale/zh_tw.d.ts +1187 -0
  177. package/lib/locale/zh_tw.js +10078 -0
  178. package/lib/modules/ConditionFormat.d.ts +17 -0
  179. package/lib/modules/ConditionFormat.js +1273 -0
  180. package/lib/modules/border.d.ts +3 -0
  181. package/lib/modules/border.js +1248 -0
  182. package/lib/modules/cell.d.ts +32 -0
  183. package/lib/modules/cell.js +1122 -0
  184. package/lib/modules/clipboard.d.ts +3 -0
  185. package/lib/modules/clipboard.js +42 -0
  186. package/lib/modules/color.d.ts +1 -0
  187. package/lib/modules/color.js +7 -0
  188. package/lib/modules/comment.d.ts +97 -0
  189. package/lib/modules/comment.js +625 -0
  190. package/lib/modules/conditionalFormat.d.ts +2 -0
  191. package/lib/modules/conditionalFormat.js +447 -0
  192. package/lib/modules/cursor.d.ts +3 -0
  193. package/lib/modules/cursor.js +70 -0
  194. package/lib/modules/dataVerification.d.ts +11 -0
  195. package/lib/modules/dataVerification.js +716 -0
  196. package/lib/modules/dropCell.d.ts +10 -0
  197. package/lib/modules/dropCell.js +2283 -0
  198. package/lib/modules/filter.d.ts +45 -0
  199. package/lib/modules/filter.js +448 -0
  200. package/lib/modules/format.d.ts +6 -0
  201. package/lib/modules/format.js +334 -0
  202. package/lib/modules/formula.d.ts +54 -0
  203. package/lib/modules/formula.js +2375 -0
  204. package/lib/modules/freeze.d.ts +5 -0
  205. package/lib/modules/freeze.js +158 -0
  206. package/lib/modules/hyperlink.d.ts +21 -0
  207. package/lib/modules/hyperlink.js +232 -0
  208. package/lib/modules/iframe.d.ts +12 -0
  209. package/lib/modules/iframe.js +236 -0
  210. package/lib/modules/image.d.ts +31 -0
  211. package/lib/modules/image.js +272 -0
  212. package/lib/modules/index.d.ts +36 -0
  213. package/lib/modules/index.js +401 -0
  214. package/lib/modules/inline-string.d.ts +36 -0
  215. package/lib/modules/inline-string.js +452 -0
  216. package/lib/modules/location.d.ts +6 -0
  217. package/lib/modules/location.js +57 -0
  218. package/lib/modules/locationCondition.d.ts +21 -0
  219. package/lib/modules/locationCondition.js +229 -0
  220. package/lib/modules/merge.d.ts +3 -0
  221. package/lib/modules/merge.js +223 -0
  222. package/lib/modules/mobile.d.ts +5 -0
  223. package/lib/modules/mobile.js +41 -0
  224. package/lib/modules/moveCells.d.ts +5 -0
  225. package/lib/modules/moveCells.js +357 -0
  226. package/lib/modules/protection.d.ts +5 -0
  227. package/lib/modules/protection.js +106 -0
  228. package/lib/modules/refresh.d.ts +3 -0
  229. package/lib/modules/refresh.js +40 -0
  230. package/lib/modules/rowcol.d.ts +19 -0
  231. package/lib/modules/rowcol.js +1935 -0
  232. package/lib/modules/screenshot.d.ts +2 -0
  233. package/lib/modules/screenshot.js +96 -0
  234. package/lib/modules/searchReplace.d.ts +36 -0
  235. package/lib/modules/searchReplace.js +402 -0
  236. package/lib/modules/selection.d.ts +50 -0
  237. package/lib/modules/selection.js +1889 -0
  238. package/lib/modules/sheet.d.ts +10 -0
  239. package/lib/modules/sheet.js +250 -0
  240. package/lib/modules/sort.d.ts +7 -0
  241. package/lib/modules/sort.js +143 -0
  242. package/lib/modules/splitColumn.d.ts +5 -0
  243. package/lib/modules/splitColumn.js +136 -0
  244. package/lib/modules/ssf.js +1539 -0
  245. package/lib/modules/text.d.ts +10 -0
  246. package/lib/modules/text.js +1221 -0
  247. package/lib/modules/toolbar.d.ts +32 -0
  248. package/lib/modules/toolbar.js +1003 -0
  249. package/lib/modules/validation.d.ts +19 -0
  250. package/lib/modules/validation.js +205 -0
  251. package/lib/modules/zoom.d.ts +3 -0
  252. package/lib/modules/zoom.js +36 -0
  253. package/lib/settings.d.ts +100 -0
  254. package/lib/settings.js +42 -0
  255. package/lib/types.d.ts +380 -0
  256. package/lib/types.js +5 -0
  257. package/lib/utils/freeze.d.ts +7 -0
  258. package/lib/utils/freeze.js +92 -0
  259. package/lib/utils/index.d.ts +19 -0
  260. package/lib/utils/index.js +258 -0
  261. package/lib/utils/patch.d.ts +37 -0
  262. package/lib/utils/patch.js +392 -0
  263. package/package.json +7 -6
  264. package/dist/index.esm.js +0 -80255
  265. package/dist/index.js +0 -80601
  266. package/dist/packages/react/src/components/ChangeColor/index.d.ts +0 -7
  267. package/dist/packages/react/src/components/ConditionFormat/ConditionRules.d.ts +0 -6
  268. package/dist/packages/react/src/components/ConditionFormat/index.d.ts +0 -7
  269. package/dist/packages/react/src/components/ContextMenu/Divider.d.ts +0 -3
  270. package/dist/packages/react/src/components/ContextMenu/FilterMenu.d.ts +0 -3
  271. package/dist/packages/react/src/components/ContextMenu/Menu.d.ts +0 -8
  272. package/dist/packages/react/src/components/ContextMenu/SheetTab.d.ts +0 -4
  273. package/dist/packages/react/src/components/ContextMenu/index.d.ts +0 -5
  274. package/dist/packages/react/src/components/CustomSort/index.d.ts +0 -4
  275. package/dist/packages/react/src/components/DataVerification/DropdownList.d.ts +0 -4
  276. package/dist/packages/react/src/components/DataVerification/RangeDialog.d.ts +0 -4
  277. package/dist/packages/react/src/components/DataVerification/getDisplayedRangeTxt.d.ts +0 -2
  278. package/dist/packages/react/src/components/DataVerification/index.d.ts +0 -4
  279. package/dist/packages/react/src/components/Dialog/index.d.ts +0 -15
  280. package/dist/packages/react/src/components/DuneChartsInputModal/DuneChartsInputModal.d.ts +0 -11
  281. package/dist/packages/react/src/components/DunePreview/DunePreview.d.ts +0 -13
  282. package/dist/packages/react/src/components/FilterOption/index.d.ts +0 -5
  283. package/dist/packages/react/src/components/FormatSearch/index.d.ts +0 -6
  284. package/dist/packages/react/src/components/FormulaSearch/index.d.ts +0 -5
  285. package/dist/packages/react/src/components/FxEditor/NameBox.d.ts +0 -3
  286. package/dist/packages/react/src/components/FxEditor/index.d.ts +0 -4
  287. package/dist/packages/react/src/components/IFrameBoxs/iFrameBoxs.d.ts +0 -4
  288. package/dist/packages/react/src/components/ImgBoxs/index.d.ts +0 -3
  289. package/dist/packages/react/src/components/LinkEidtCard/index.d.ts +0 -5
  290. package/dist/packages/react/src/components/LocationCondition/index.d.ts +0 -3
  291. package/dist/packages/react/src/components/MessageBox/index.d.ts +0 -9
  292. package/dist/packages/react/src/components/NotationBoxes/index.d.ts +0 -3
  293. package/dist/packages/react/src/components/ResetColumnWidth/index.d.ts +0 -2
  294. package/dist/packages/react/src/components/SVGDefines.d.ts +0 -5
  295. package/dist/packages/react/src/components/SVGIcon.d.ts +0 -9
  296. package/dist/packages/react/src/components/SearchReplace/index.d.ts +0 -6
  297. package/dist/packages/react/src/components/Sheet/index.d.ts +0 -8
  298. package/dist/packages/react/src/components/SheetList/SheetHiddenButton.d.ts +0 -8
  299. package/dist/packages/react/src/components/SheetList/SheetListItem.d.ts +0 -9
  300. package/dist/packages/react/src/components/SheetList/index.d.ts +0 -4
  301. package/dist/packages/react/src/components/SheetOverlay/ColumnHeader.d.ts +0 -3
  302. package/dist/packages/react/src/components/SheetOverlay/ContentEditable.d.ts +0 -11
  303. package/dist/packages/react/src/components/SheetOverlay/FormulaHint/index.d.ts +0 -4
  304. package/dist/packages/react/src/components/SheetOverlay/FormulaSearch/constant.d.ts +0 -63
  305. package/dist/packages/react/src/components/SheetOverlay/FormulaSearch/index.d.ts +0 -4
  306. package/dist/packages/react/src/components/SheetOverlay/InputBox.d.ts +0 -3
  307. package/dist/packages/react/src/components/SheetOverlay/RowHeader.d.ts +0 -3
  308. package/dist/packages/react/src/components/SheetOverlay/ScrollBar/index.d.ts +0 -7
  309. package/dist/packages/react/src/components/SheetOverlay/index.d.ts +0 -4
  310. package/dist/packages/react/src/components/SheetTab/SheetItem.d.ts +0 -8
  311. package/dist/packages/react/src/components/SheetTab/index.d.ts +0 -4
  312. package/dist/packages/react/src/components/SplitColumn/index.d.ts +0 -3
  313. package/dist/packages/react/src/components/Toolbar/Button.d.ts +0 -12
  314. package/dist/packages/react/src/components/Toolbar/ColorPicker.d.ts +0 -6
  315. package/dist/packages/react/src/components/Toolbar/Combo.d.ts +0 -12
  316. package/dist/packages/react/src/components/Toolbar/CustomBorder.d.ts +0 -7
  317. package/dist/packages/react/src/components/Toolbar/CustomButton.d.ts +0 -11
  318. package/dist/packages/react/src/components/Toolbar/CustomColor.d.ts +0 -8
  319. package/dist/packages/react/src/components/Toolbar/CustomIcon.d.ts +0 -9
  320. package/dist/packages/react/src/components/Toolbar/Divider.d.ts +0 -4
  321. package/dist/packages/react/src/components/Toolbar/MoreItemsContainer.d.ts +0 -6
  322. package/dist/packages/react/src/components/Toolbar/Select.d.ts +0 -14
  323. package/dist/packages/react/src/components/Toolbar/index.d.ts +0 -10
  324. package/dist/packages/react/src/components/Workbook/api.d.ts +0 -1177
  325. package/dist/packages/react/src/components/Workbook/index.d.ts +0 -1185
  326. package/dist/packages/react/src/components/ZoomControl/index.d.ts +0 -4
  327. package/dist/packages/react/src/components/index.d.ts +0 -4
  328. package/dist/packages/react/src/constants.d.ts +0 -1
  329. package/dist/packages/react/src/context/index.d.ts +0 -25
  330. package/dist/packages/react/src/context/modal.d.ts +0 -10
  331. package/dist/packages/react/src/hooks/useAlert.d.ts +0 -4
  332. package/dist/packages/react/src/hooks/useDialog.d.ts +0 -5
  333. package/dist/packages/react/src/hooks/useOutsideClick.d.ts +0 -2
  334. package/dist/packages/react/src/hooks/usePrevious.d.ts +0 -2
  335. package/dist/packages/react/src/index.d.ts +0 -1
  336. package/dist/packages/react/src/utils/datepickerStyles.d.ts +0 -2
  337. package/dist/stories/API.stories.d.ts +0 -1210
  338. package/dist/stories/Collabration.stories.d.ts +0 -2359
  339. package/dist/stories/Features.stories.d.ts +0 -9430
  340. package/dist/stories/data/cell.d.ts +0 -983
  341. package/dist/stories/data/dataVerification.d.ts +0 -131
  342. package/dist/stories/data/empty.d.ts +0 -10
  343. package/dist/stories/data/formula.d.ts +0 -362
  344. package/dist/stories/data/freeze.d.ts +0 -34
  345. package/dist/stories/data/protected.d.ts +0 -40
  346. package/dist/stories/utils.d.ts +0 -1
@@ -0,0 +1,2375 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.FormulaCache = void 0;
7
+ exports.createFormulaRangeSelect = createFormulaRangeSelect;
8
+ exports.createRangeHightlight = createRangeHightlight;
9
+ exports.delFunctionGroup = delFunctionGroup;
10
+ exports.execFunctionGroup = execFunctionGroup;
11
+ exports.execfunction = execfunction;
12
+ exports.functionCopy = functionCopy;
13
+ exports.functionHTMLGenerate = functionHTMLGenerate;
14
+ exports.functionStrChange = functionStrChange;
15
+ exports.getAllFunctionGroup = getAllFunctionGroup;
16
+ exports.getcellrange = getcellrange;
17
+ exports.getrangeseleciton = getrangeseleciton;
18
+ exports.groupValuesRefresh = groupValuesRefresh;
19
+ exports.handleFormulaInput = handleFormulaInput;
20
+ exports.insertUpdateFunctionGroup = insertUpdateFunctionGroup;
21
+ exports.iscelldata = iscelldata;
22
+ exports.israngeseleciton = israngeseleciton;
23
+ exports.onFormulaRangeDragEnd = onFormulaRangeDragEnd;
24
+ exports.rangeDrag = rangeDrag;
25
+ exports.rangeDragColumn = rangeDragColumn;
26
+ exports.rangeDragRow = rangeDragRow;
27
+ exports.rangeHightlightselected = rangeHightlightselected;
28
+ exports.rangeSetValue = rangeSetValue;
29
+ exports.setCaretPosition = setCaretPosition;
30
+ var _lodash = _interopRequireDefault(require("lodash"));
31
+ var _formulaParser = require("@fileverse-dev/formula-parser");
32
+ var _context = require("../context");
33
+ var _utils = require("../utils");
34
+ var _cell = require("./cell");
35
+ var _validation = require("./validation");
36
+ var _cursor = require("./cursor");
37
+ var _locale = require("../locale");
38
+ var _color = require("./color");
39
+ var _location = require("./location");
40
+ var _2 = require(".");
41
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
42
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
43
+ var __assign = void 0 && (void 0).__assign || function () {
44
+ __assign = Object.assign || function (t) {
45
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
46
+ s = arguments[i];
47
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
48
+ }
49
+ return t;
50
+ };
51
+ return __assign.apply(this, arguments);
52
+ };
53
+ var __spreadArray = void 0 && (void 0).__spreadArray || function (to, from, pack) {
54
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
55
+ if (ar || !(i in from)) {
56
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
57
+ ar[i] = from[i];
58
+ }
59
+ }
60
+ return to.concat(ar || Array.prototype.slice.call(from));
61
+ };
62
+ var functionHTMLIndex = 0;
63
+ var rangeIndexes = [];
64
+ var operatorPriority = {
65
+ "^": 0,
66
+ "%": 1,
67
+ "*": 1,
68
+ "/": 1,
69
+ "+": 2,
70
+ "-": 2
71
+ };
72
+ var operatorArr = "==|!=|<>|<=|>=|=|+|-|>|<|/|*|%|&|^".split("|");
73
+ var operatorjson = {};
74
+ for (var i = 0; i < operatorArr.length; i += 1) {
75
+ operatorjson[operatorArr[i].toString()] = 1;
76
+ }
77
+ var simpleSheetName = "[A-Za-z0-9_\xC0-\u02AF]+";
78
+ var quotedSheetName = "'(?:(?!').|'')*'";
79
+ var sheetNameRegexp = "(".concat(simpleSheetName, "|").concat(quotedSheetName, ")!");
80
+ var rowColumnRegexp = "[$]?[A-Za-z]+[$]?[0-9]+";
81
+ var rowColumnWithSheetName = "(?:".concat(sheetNameRegexp, ")?(").concat(rowColumnRegexp, ")");
82
+ var LABEL_EXTRACT_REGEXP = new RegExp("^".concat(rowColumnWithSheetName, "(?:[:]").concat(rowColumnWithSheetName, ")?$"));
83
+ var FormulaCache = exports.FormulaCache = function () {
84
+ function FormulaCache() {
85
+ var that = this;
86
+ this.data_parm_index = 0;
87
+ this.selectingRangeIndex = -1;
88
+ this.functionlistMap = {};
89
+ this.execFunctionGlobalData = {};
90
+ this.cellTextToIndexList = {};
91
+ this.parser = new _formulaParser.Parser();
92
+ this.parser.on("callCellValue", function (cellCoord, options, done) {
93
+ var _a, _b;
94
+ var context = that.parser.context;
95
+ var id = cellCoord.sheetName == null ? options.sheetId : (0, _utils.getSheetIdByName)(context, cellCoord.sheetName);
96
+ if (id == null) throw Error(_formulaParser.ERROR_REF);
97
+ var flowdata = (0, _context.getFlowdata)(context, id);
98
+ var cell = ((_a = context === null || context === void 0 ? void 0 : context.formulaCache.execFunctionGlobalData) === null || _a === void 0 ? void 0 : _a["".concat(cellCoord.row.index, "_").concat(cellCoord.column.index, "_").concat(id)]) || ((_b = flowdata === null || flowdata === void 0 ? void 0 : flowdata[cellCoord.row.index]) === null || _b === void 0 ? void 0 : _b[cellCoord.column.index]);
99
+ var v = that.tryGetCellAsNumber(cell);
100
+ done(v);
101
+ });
102
+ this.parser.on("callRangeValue", function (startCellCoord, endCellCoord, options, done) {
103
+ var _a, _b, _c, _d, _e, _f, _g, _h;
104
+ var context = that.parser.context;
105
+ var id = startCellCoord.sheetName == null ? options.sheetId : (0, _utils.getSheetIdByName)(context, startCellCoord.sheetName);
106
+ if (id == null) throw Error(_formulaParser.ERROR_REF);
107
+ var flowdata = (0, _context.getFlowdata)(context, id);
108
+ var fragment = [];
109
+ var startRow = startCellCoord.row.index;
110
+ var endRow = endCellCoord.row.index;
111
+ var startCol = startCellCoord.column.index;
112
+ var endCol = endCellCoord.column.index;
113
+ var emptyRow = startRow === -1 || endRow === -1;
114
+ var emptyCol = startCol === -1 || endCol === -1;
115
+ if (emptyRow) {
116
+ startRow = 0;
117
+ endRow = (_a = flowdata === null || flowdata === void 0 ? void 0 : flowdata.length) !== null && _a !== void 0 ? _a : 0;
118
+ }
119
+ if (emptyCol) {
120
+ startCol = 0;
121
+ endCol = (_b = flowdata === null || flowdata === void 0 ? void 0 : flowdata[0].length) !== null && _b !== void 0 ? _b : 0;
122
+ }
123
+ if (emptyRow && emptyCol) throw Error(_formulaParser.ERROR_REF);
124
+ var cryptoDenomination = "";
125
+ var cryptoDecimal = 0;
126
+ for (var row = startRow; row <= endRow; row += 1) {
127
+ var colFragment = [];
128
+ for (var col = startCol; col <= endCol; col += 1) {
129
+ if (_typeof(options) === "object" && row === options.row && col === options.column) {
130
+ continue;
131
+ }
132
+ var cell = ((_c = context === null || context === void 0 ? void 0 : context.formulaCache.execFunctionGlobalData) === null || _c === void 0 ? void 0 : _c["".concat(row, "_").concat(col, "_").concat(id)]) || ((_d = flowdata === null || flowdata === void 0 ? void 0 : flowdata[row]) === null || _d === void 0 ? void 0 : _d[col]);
133
+ var v = that.tryGetCellAsNumber(cell);
134
+ if ((((_e = cell === null || cell === void 0 ? void 0 : cell.m) === null || _e === void 0 ? void 0 : _e.includes("ETH")) || ((_f = cell === null || cell === void 0 ? void 0 : cell.m) === null || _f === void 0 ? void 0 : _f.includes("SOL")) || ((_g = cell === null || cell === void 0 ? void 0 : cell.m) === null || _g === void 0 ? void 0 : _g.includes("BTC"))) && cryptoDenomination !== "Error") {
135
+ var visualString = cell === null || cell === void 0 ? void 0 : cell.m.split(" ");
136
+ if (cryptoDenomination !== "" && cryptoDenomination !== visualString[1]) {
137
+ cryptoDenomination = "Error";
138
+ } else {
139
+ cryptoDenomination = visualString[1];
140
+ }
141
+ cryptoDecimal = visualString[0].includes(".") ? (_h = visualString[0].split(".")[1]) === null || _h === void 0 ? void 0 : _h.length : 0;
142
+ }
143
+ colFragment.push(v);
144
+ }
145
+ fragment.push(colFragment);
146
+ }
147
+ if (cryptoDenomination === "Error") {
148
+ cryptoDenomination = "";
149
+ cryptoDecimal = 0;
150
+ }
151
+ if (fragment) {
152
+ done(fragment, cryptoDenomination, cryptoDecimal);
153
+ }
154
+ });
155
+ }
156
+ FormulaCache.prototype.tryGetCellAsNumber = function (cell) {
157
+ var _a, _b, _c, _d;
158
+ var isCryptoDeno = typeof (cell === null || cell === void 0 ? void 0 : cell.m) === "string" ? ((_a = cell === null || cell === void 0 ? void 0 : cell.m) === null || _a === void 0 ? void 0 : _a.includes("ETH")) || ((_b = cell === null || cell === void 0 ? void 0 : cell.m) === null || _b === void 0 ? void 0 : _b.includes("SOL")) || ((_c = cell === null || cell === void 0 ? void 0 : cell.m) === null || _c === void 0 ? void 0 : _c.includes("BTC")) : false;
159
+ if (isCryptoDeno && typeof (cell === null || cell === void 0 ? void 0 : cell.m) === "string") {
160
+ var splitedNumberString = cell.m.split(" ")[0];
161
+ return Number(splitedNumberString);
162
+ }
163
+ if (((_d = cell === null || cell === void 0 ? void 0 : cell.ct) === null || _d === void 0 ? void 0 : _d.t) === "n") {
164
+ var n = Number(cell === null || cell === void 0 ? void 0 : cell.v);
165
+ return Number.isNaN(n) ? cell.v : n;
166
+ }
167
+ return cell === null || cell === void 0 ? void 0 : cell.v;
168
+ };
169
+ return FormulaCache;
170
+ }();
171
+ function parseElement(eleString) {
172
+ return new DOMParser().parseFromString(eleString, "text/html").body.childNodes[0];
173
+ }
174
+ function iscelldata(txt) {
175
+ var val = txt.split("!");
176
+ var rangetxt;
177
+ if (val.length > 1) {
178
+ rangetxt = val[1];
179
+ } else {
180
+ rangetxt = val[0];
181
+ }
182
+ var realRangeRegex = /^(\$?[A-Za-z]+\$?\d+|\$?[A-Za-z]+):(\$?[A-Za-z]+\$?\d+|\$?[A-Za-z]+)$/;
183
+ if (rangetxt.includes(":") && !realRangeRegex.test(rangetxt)) {
184
+ return false;
185
+ }
186
+ var reg_cell = /^(([a-zA-Z]+)|([$][a-zA-Z]+))(([0-9]+)|([$][0-9]+))$/g;
187
+ var reg_cellRange = /^(((([a-zA-Z]+)|([$][a-zA-Z]+))(([0-9]+)|([$][0-9]+)))|((([a-zA-Z]+)|([$][a-zA-Z]+))))$/g;
188
+ if (rangetxt.indexOf(":") === -1) {
189
+ var row_1 = parseInt(rangetxt.replace(/[^0-9]/g, ""), 10) - 1;
190
+ var col_1 = (0, _utils.columnCharToIndex)(rangetxt.replace(/[^A-Za-z]/g, ""));
191
+ if (!Number.isNaN(row_1) && !Number.isNaN(col_1) && rangetxt.toString().match(reg_cell)) {
192
+ return true;
193
+ }
194
+ if (!Number.isNaN(row_1)) {
195
+ return false;
196
+ }
197
+ if (!Number.isNaN(col_1)) {
198
+ return false;
199
+ }
200
+ return false;
201
+ }
202
+ reg_cellRange = /^(((([a-zA-Z]+)|([$][a-zA-Z]+))(([0-9]+)|([$][0-9]+)))|((([a-zA-Z]+)|([$][a-zA-Z]+)))|((([0-9]+)|([$][0-9]+s))))$/g;
203
+ var rangetxtArr = rangetxt.split(":");
204
+ var row = [];
205
+ var col = [];
206
+ row[0] = parseInt(rangetxtArr[0].replace(/[^0-9]/g, ""), 10) - 1;
207
+ row[1] = parseInt(rangetxtArr[1].replace(/[^0-9]/g, ""), 10) - 1;
208
+ if (row[0] > row[1]) {
209
+ return false;
210
+ }
211
+ col[0] = (0, _utils.columnCharToIndex)(rangetxtArr[0].replace(/[^A-Za-z]/g, ""));
212
+ col[1] = (0, _utils.columnCharToIndex)(rangetxtArr[1].replace(/[^A-Za-z]/g, ""));
213
+ if (col[0] > col[1]) {
214
+ return false;
215
+ }
216
+ if (rangetxtArr[0].toString().match(reg_cellRange) && rangetxtArr[1].toString().match(reg_cellRange)) {
217
+ return true;
218
+ }
219
+ return false;
220
+ }
221
+ function addToCellIndexList(ctx, txt, infoObj) {
222
+ if (_lodash.default.isNil(txt) || txt.length === 0 || _lodash.default.isNil(infoObj)) {
223
+ return;
224
+ }
225
+ if (_lodash.default.isNil(ctx.formulaCache.cellTextToIndexList)) {
226
+ ctx.formulaCache.cellTextToIndexList = {};
227
+ }
228
+ if (txt.indexOf("!") > -1) {
229
+ txt = txt.replace(/\\'/g, "'").replace(/''/g, "'");
230
+ ctx.formulaCache.cellTextToIndexList[txt] = infoObj;
231
+ } else {
232
+ ctx.formulaCache.cellTextToIndexList["".concat(txt, "_").concat(infoObj.sheetId)] = infoObj;
233
+ }
234
+ }
235
+ function getcellrange(ctx, txt, formulaId) {
236
+ if (_lodash.default.isNil(txt) || txt.length === 0) {
237
+ return null;
238
+ }
239
+ var flowdata = (0, _context.getFlowdata)(ctx, formulaId);
240
+ var sheettxt = "";
241
+ var rangetxt = "";
242
+ var sheetId = null;
243
+ var sheetdata = null;
244
+ var luckysheetfile = ctx.luckysheetfile;
245
+ if (txt.indexOf("!") > -1) {
246
+ if (txt in ctx.formulaCache.cellTextToIndexList) {
247
+ return ctx.formulaCache.cellTextToIndexList[txt];
248
+ }
249
+ var matchRes = txt.match(LABEL_EXTRACT_REGEXP);
250
+ if (matchRes == null) {
251
+ return null;
252
+ }
253
+ var sheettxt1 = matchRes[1],
254
+ starttxt1 = matchRes[2],
255
+ sheettxt2 = matchRes[3],
256
+ starttxt2 = matchRes[4];
257
+ if (sheettxt2 != null && sheettxt1 !== sheettxt2) {
258
+ return null;
259
+ }
260
+ rangetxt = starttxt2 ? "".concat(starttxt1, ":").concat(starttxt2) : starttxt1;
261
+ sheettxt = sheettxt1.replace(/^'|'$/g, "").replace(/\\'/g, "'").replace(/''/g, "'");
262
+ _lodash.default.forEach(luckysheetfile, function (f) {
263
+ if (sheettxt === f.name) {
264
+ sheetId = f.id;
265
+ sheetdata = f.data;
266
+ return false;
267
+ }
268
+ return true;
269
+ });
270
+ } else {
271
+ var i = formulaId;
272
+ if (_lodash.default.isNil(i)) {
273
+ i = ctx.currentSheetId;
274
+ }
275
+ if ("".concat(txt, "_").concat(i) in ctx.formulaCache.cellTextToIndexList) {
276
+ return ctx.formulaCache.cellTextToIndexList["".concat(txt, "_").concat(i)];
277
+ }
278
+ var index = (0, _utils.getSheetIndex)(ctx, i);
279
+ if (_lodash.default.isNil(index)) {
280
+ return null;
281
+ }
282
+ sheettxt = luckysheetfile[index].name;
283
+ sheetId = luckysheetfile[index].id;
284
+ sheetdata = flowdata;
285
+ rangetxt = txt;
286
+ }
287
+ if (_lodash.default.isNil(sheetdata)) {
288
+ return null;
289
+ }
290
+ if (rangetxt.indexOf(":") === -1) {
291
+ var row_2 = parseInt(rangetxt.replace(/[^0-9]/g, ""), 10) - 1;
292
+ var col_2 = (0, _utils.columnCharToIndex)(rangetxt.replace(/[^A-Za-z]/g, ""));
293
+ if (!Number.isNaN(row_2) && !Number.isNaN(col_2)) {
294
+ var item_1 = {
295
+ row: [row_2, row_2],
296
+ column: [col_2, col_2],
297
+ sheetId: sheetId
298
+ };
299
+ addToCellIndexList(ctx, txt, item_1);
300
+ return item_1;
301
+ }
302
+ return null;
303
+ }
304
+ var rangetxtArr = rangetxt.split(":");
305
+ var row = [];
306
+ var col = [];
307
+ row[0] = parseInt(rangetxtArr[0].replace(/[^0-9]/g, ""), 10) - 1;
308
+ row[1] = parseInt(rangetxtArr[1].replace(/[^0-9]/g, ""), 10) - 1;
309
+ if (Number.isNaN(row[0])) {
310
+ row[0] = 0;
311
+ }
312
+ if (Number.isNaN(row[1])) {
313
+ row[1] = sheetdata.length - 1;
314
+ }
315
+ if (row[0] > row[1]) {
316
+ return null;
317
+ }
318
+ col[0] = (0, _utils.columnCharToIndex)(rangetxtArr[0].replace(/[^A-Za-z]/g, ""));
319
+ col[1] = (0, _utils.columnCharToIndex)(rangetxtArr[1].replace(/[^A-Za-z]/g, ""));
320
+ if (Number.isNaN(col[0])) {
321
+ col[0] = 0;
322
+ }
323
+ if (Number.isNaN(col[1])) {
324
+ col[1] = sheetdata[0].length - 1;
325
+ }
326
+ if (col[0] > col[1]) {
327
+ return null;
328
+ }
329
+ var item = {
330
+ row: row,
331
+ column: col,
332
+ sheetId: sheetId
333
+ };
334
+ addToCellIndexList(ctx, txt, item);
335
+ return item;
336
+ }
337
+ function calPostfixExpression(cal) {
338
+ if (cal.length === 0) {
339
+ return "";
340
+ }
341
+ var stack = [];
342
+ for (var i = cal.length - 1; i >= 0; i -= 1) {
343
+ var c = cal[i];
344
+ if (c in operatorjson) {
345
+ var s2 = stack.pop();
346
+ var s1 = stack.pop();
347
+ var str = "luckysheet_compareWith(".concat(s1, ",'").concat(c, "', ").concat(s2, ")");
348
+ stack.push(str);
349
+ } else {
350
+ stack.push(c);
351
+ }
352
+ }
353
+ if (stack.length > 0) {
354
+ return stack[0];
355
+ }
356
+ return "";
357
+ }
358
+ function checkSpecialFunctionRange(ctx, function_str, r, c, id, dynamicArray_compute, cellRangeFunction) {
359
+ if (function_str.substring(0, 30) === "luckysheet_getSpecialReference" || function_str.substring(0, 20) === "luckysheet_function.") {
360
+ if (function_str.substring(0, 20) === "luckysheet_function.") {
361
+ var funcName = function_str.split(".")[1];
362
+ if (!_lodash.default.isNil(funcName)) {
363
+ funcName = funcName.toUpperCase();
364
+ if (funcName !== "INDIRECT" && funcName !== "OFFSET" && funcName !== "INDEX") {
365
+ return;
366
+ }
367
+ }
368
+ }
369
+ try {
370
+ ctx.calculateSheetId = id;
371
+ var str = function_str.split(",")[function_str.split(",").length - 1].split("'")[1].split("'")[0];
372
+ var str_nb = _lodash.default.trim(str);
373
+ if (iscelldata(str_nb)) {
374
+ if (typeof cellRangeFunction === "function") {
375
+ cellRangeFunction(str_nb);
376
+ }
377
+ }
378
+ } catch (_a) {}
379
+ }
380
+ }
381
+ function isFunctionRange(ctx, txt, r, c, id, dynamicArray_compute, cellRangeFunction) {
382
+ var _a;
383
+ if (txt.substring(0, 1) === "=") {
384
+ txt = txt.substring(1);
385
+ }
386
+ var funcstack = txt.split("");
387
+ var i = 0;
388
+ var str = "";
389
+ var function_str = "";
390
+ var matchConfig = {
391
+ bracket: 0,
392
+ comma: 0,
393
+ squote: 0,
394
+ dquote: 0,
395
+ compare: 0,
396
+ braces: 0
397
+ };
398
+ var cal1 = [];
399
+ var cal2 = [];
400
+ var bracket = [];
401
+ var firstSQ = -1;
402
+ while (i < funcstack.length) {
403
+ var s = funcstack[i];
404
+ if (s === "(" && matchConfig.squote === 0 && matchConfig.dquote === 0 && matchConfig.braces === 0) {
405
+ if (str.length > 0 && bracket.length === 0) {
406
+ str = str.toUpperCase();
407
+ if (str.indexOf(":") > -1) {
408
+ var funcArray = str.split(":");
409
+ function_str += "luckysheet_getSpecialReference(true,'".concat(_lodash.default.trim(funcArray[0]).replace(/'/g, "\\'"), "', luckysheet_function.").concat(funcArray[1], ".f(#lucky#");
410
+ } else {
411
+ function_str += "luckysheet_function.".concat(str, ".f(");
412
+ }
413
+ bracket.push(1);
414
+ str = "";
415
+ } else if (bracket.length === 0) {
416
+ function_str += "(";
417
+ bracket.push(0);
418
+ str = "";
419
+ } else {
420
+ bracket.push(0);
421
+ str += s;
422
+ }
423
+ } else if (s === ")" && matchConfig.squote === 0 && matchConfig.dquote === 0 && matchConfig.braces === 0) {
424
+ bracket.pop();
425
+ if (bracket.length === 0) {
426
+ var functionS = isFunctionRange(ctx, str, r, c, id, dynamicArray_compute, cellRangeFunction);
427
+ if (functionS.indexOf("#lucky#") > -1) {
428
+ functionS = "".concat(functionS.replace(/#lucky#/g, ""), ")");
429
+ }
430
+ function_str += "".concat(functionS, ")");
431
+ str = "";
432
+ } else {
433
+ str += s;
434
+ }
435
+ } else if (s === "{" && matchConfig.squote === 0 && matchConfig.dquote === 0) {
436
+ str += "{";
437
+ matchConfig.braces += 1;
438
+ } else if (s === "}" && matchConfig.squote === 0 && matchConfig.dquote === 0) {
439
+ str += "}";
440
+ matchConfig.braces -= 1;
441
+ } else if (s === '"' && matchConfig.squote === 0) {
442
+ if (matchConfig.dquote > 0) {
443
+ if (i < funcstack.length - 1 && funcstack[i + 1] === '"') {
444
+ i += 1;
445
+ str += "\x7F";
446
+ } else {
447
+ matchConfig.dquote -= 1;
448
+ str += '"';
449
+ }
450
+ } else {
451
+ matchConfig.dquote += 1;
452
+ str += '"';
453
+ }
454
+ } else if (s === "'" && matchConfig.dquote === 0) {
455
+ str += "'";
456
+ if (matchConfig.squote > 0) {
457
+ if (i < funcstack.length - 1 && funcstack[i + 1] === "'") {
458
+ i += 1;
459
+ str += "'";
460
+ } else {
461
+ matchConfig.squote -= 1;
462
+ }
463
+ } else {
464
+ matchConfig.squote += 1;
465
+ firstSQ = i;
466
+ }
467
+ } else if (s === "," && matchConfig.squote === 0 && matchConfig.dquote === 0 && matchConfig.braces === 0) {
468
+ if (bracket.length <= 1) {
469
+ var functionS = isFunctionRange(ctx, str, r, c, id, dynamicArray_compute, cellRangeFunction);
470
+ if (functionS.indexOf("#lucky#") > -1) {
471
+ functionS = "".concat(functionS.replace(/#lucky#/g, ""), ")");
472
+ }
473
+ function_str += "".concat(functionS, ",");
474
+ str = "";
475
+ } else {
476
+ str += ",";
477
+ }
478
+ } else if (s in operatorjson && matchConfig.squote === 0 && matchConfig.dquote === 0 && matchConfig.braces === 0) {
479
+ var s_next = "";
480
+ var op = operatorPriority;
481
+ if (i + 1 < funcstack.length) {
482
+ s_next = funcstack[i + 1];
483
+ }
484
+ if (s + s_next in operatorjson) {
485
+ if (bracket.length === 0) {
486
+ if (_lodash.default.trim(str).length > 0) {
487
+ cal2.unshift(isFunctionRange(ctx, _lodash.default.trim(str), r, c, id, dynamicArray_compute, cellRangeFunction));
488
+ } else if (_lodash.default.trim(function_str).length > 0) {
489
+ cal2.unshift(_lodash.default.trim(function_str));
490
+ }
491
+ if (cal1[0] in operatorjson) {
492
+ var stackCeilPri = op[cal1[0]];
493
+ while (cal1.length > 0 && !_lodash.default.isNil(stackCeilPri)) {
494
+ cal2.unshift(cal1.shift());
495
+ stackCeilPri = op[cal1[0]];
496
+ }
497
+ }
498
+ cal1.unshift(s + s_next);
499
+ function_str = "";
500
+ str = "";
501
+ } else {
502
+ str += s + s_next;
503
+ }
504
+ i += 1;
505
+ } else {
506
+ if (bracket.length === 0) {
507
+ if (_lodash.default.trim(str).length > 0) {
508
+ cal2.unshift(isFunctionRange(ctx, _lodash.default.trim(str), r, c, id, dynamicArray_compute, cellRangeFunction));
509
+ } else if (_lodash.default.trim(function_str).length > 0) {
510
+ cal2.unshift(_lodash.default.trim(function_str));
511
+ }
512
+ if (cal1[0] in operatorjson) {
513
+ var stackCeilPri = op[cal1[0]];
514
+ stackCeilPri = _lodash.default.isNil(stackCeilPri) ? 1000 : stackCeilPri;
515
+ var sPri = op[s];
516
+ sPri = _lodash.default.isNil(sPri) ? 1000 : sPri;
517
+ while (cal1.length > 0 && sPri >= stackCeilPri) {
518
+ cal2.unshift(cal1.shift());
519
+ stackCeilPri = op[cal1[0]];
520
+ stackCeilPri = _lodash.default.isNil(stackCeilPri) ? 1000 : stackCeilPri;
521
+ }
522
+ }
523
+ cal1.unshift(s);
524
+ function_str = "";
525
+ str = "";
526
+ } else {
527
+ str += s;
528
+ }
529
+ }
530
+ } else {
531
+ if (matchConfig.dquote === 0 && matchConfig.squote === 0) {
532
+ str += _lodash.default.trim(s);
533
+ } else {
534
+ str += s;
535
+ }
536
+ }
537
+ if (i === funcstack.length - 1) {
538
+ var endstr = "";
539
+ var str_nb = _lodash.default.trim(str).replace(/'/g, "\\'");
540
+ if (iscelldata(str_nb) && str_nb.substring(0, 1) !== ":") {
541
+ endstr = "luckysheet_getcelldata('".concat(str_nb, "')");
542
+ } else if (str_nb.substring(0, 1) === ":") {
543
+ str_nb = str_nb.substring(1);
544
+ if (iscelldata(str_nb)) {
545
+ endstr = "luckysheet_getSpecialReference(false,".concat(function_str, ",'").concat(str_nb, "')");
546
+ }
547
+ } else {
548
+ str = _lodash.default.trim(str);
549
+ var regx = /{.*?}/;
550
+ if (regx.test(str) && str.substring(0, 1) !== '"' && str.substring(str.length - 1, 1) !== '"') {
551
+ var arraytxt = (_a = regx.exec(str)) === null || _a === void 0 ? void 0 : _a[0];
552
+ var arraystart = str.search(regx);
553
+ if (arraystart > 0) {
554
+ endstr += str.substring(0, arraystart);
555
+ }
556
+ endstr += "luckysheet_getarraydata('".concat(arraytxt, "')");
557
+ if (arraystart + arraytxt.length < str.length) {
558
+ endstr += str.substring(arraystart + arraytxt.length, str.length);
559
+ }
560
+ } else {
561
+ endstr = str;
562
+ }
563
+ }
564
+ if (endstr.length > 0) {
565
+ cal2.unshift(endstr);
566
+ }
567
+ if (cal1.length > 0) {
568
+ if (function_str.length > 0) {
569
+ cal2.unshift(function_str);
570
+ function_str = "";
571
+ }
572
+ while (cal1.length > 0) {
573
+ cal2.unshift(cal1.shift());
574
+ }
575
+ }
576
+ if (cal2.length > 0) {
577
+ function_str = calPostfixExpression(cal2);
578
+ } else {
579
+ function_str += endstr;
580
+ }
581
+ }
582
+ i += 1;
583
+ }
584
+ checkSpecialFunctionRange(ctx, function_str, r, c, id, dynamicArray_compute, cellRangeFunction);
585
+ return function_str;
586
+ }
587
+ function getAllFunctionGroup(ctx) {
588
+ var luckysheetfile = ctx.luckysheetfile;
589
+ var ret = [];
590
+ for (var i = 0; i < luckysheetfile.length; i += 1) {
591
+ var file = luckysheetfile[i];
592
+ var calcChain = file.calcChain;
593
+ var dynamicArray_compute = file.dynamicArray_compute;
594
+ if (_lodash.default.isNil(calcChain)) {
595
+ calcChain = [];
596
+ }
597
+ if (_lodash.default.isNil(dynamicArray_compute)) {
598
+ dynamicArray_compute = [];
599
+ }
600
+ ret = ret.concat(calcChain);
601
+ for (var j = 0; j < dynamicArray_compute.length; j += 1) {
602
+ var d = dynamicArray_compute[0];
603
+ ret.push({
604
+ r: d.r,
605
+ c: d.c,
606
+ id: d.id
607
+ });
608
+ }
609
+ }
610
+ return ret;
611
+ }
612
+ function delFunctionGroup(ctx, r, c, id) {
613
+ if (_lodash.default.isNil(id)) {
614
+ id = ctx.currentSheetId;
615
+ }
616
+ var file = ctx.luckysheetfile[(0, _utils.getSheetIndex)(ctx, id)];
617
+ var calcChain = file.calcChain;
618
+ if (!_lodash.default.isNil(calcChain)) {
619
+ var modified = false;
620
+ var calcChainClone = _lodash.default.cloneDeep(calcChain);
621
+ for (var i = 0; i < calcChainClone.length; i += 1) {
622
+ var calc = calcChainClone[i];
623
+ if (calc.r === r && calc.c === c && calc.id === id) {
624
+ calcChainClone.splice(i, 1);
625
+ modified = true;
626
+ break;
627
+ }
628
+ }
629
+ if (modified) {
630
+ file.calcChain = calcChainClone;
631
+ }
632
+ }
633
+ var dynamicArray = file.dynamicArray;
634
+ if (!_lodash.default.isNil(dynamicArray)) {
635
+ var modified = false;
636
+ var dynamicArrayClone = _lodash.default.cloneDeep(dynamicArray);
637
+ for (var i = 0; i < dynamicArrayClone.length; i += 1) {
638
+ var calc = dynamicArrayClone[i];
639
+ if (calc.r === r && calc.c === c && (_lodash.default.isNil(calc.id) || calc.id === id)) {
640
+ dynamicArrayClone.splice(i, 1);
641
+ modified = true;
642
+ break;
643
+ }
644
+ }
645
+ if (modified) {
646
+ file.dynamicArray = dynamicArrayClone;
647
+ }
648
+ }
649
+ }
650
+ function checkBracketNum(fp) {
651
+ var bra_l = fp.match(/\(/g);
652
+ var bra_r = fp.match(/\)/g);
653
+ var bra_tl_txt = fp.match(/(['"])(?:(?!\1).)*?\1/g);
654
+ var bra_tr_txt = fp.match(/(['"])(?:(?!\1).)*?\1/g);
655
+ var bra_l_len = 0;
656
+ var bra_r_len = 0;
657
+ if (!_lodash.default.isNil(bra_l)) {
658
+ bra_l_len += bra_l.length;
659
+ }
660
+ if (!_lodash.default.isNil(bra_r)) {
661
+ bra_r_len += bra_r.length;
662
+ }
663
+ var bra_tl_len = 0;
664
+ var bra_tr_len = 0;
665
+ if (!_lodash.default.isNil(bra_tl_txt)) {
666
+ for (var i = 0; i < bra_tl_txt.length; i += 1) {
667
+ var bra_tl = bra_tl_txt[i].match(/\(/g);
668
+ if (!_lodash.default.isNil(bra_tl)) {
669
+ bra_tl_len += bra_tl.length;
670
+ }
671
+ }
672
+ }
673
+ if (!_lodash.default.isNil(bra_tr_txt)) {
674
+ for (var i = 0; i < bra_tr_txt.length; i += 1) {
675
+ var bra_tr = bra_tr_txt[i].match(/\)/g);
676
+ if (!_lodash.default.isNil(bra_tr)) {
677
+ bra_tr_len += bra_tr.length;
678
+ }
679
+ }
680
+ }
681
+ bra_l_len -= bra_tl_len;
682
+ bra_r_len -= bra_tr_len;
683
+ if (bra_l_len !== bra_r_len) {
684
+ return false;
685
+ }
686
+ return true;
687
+ }
688
+ function insertUpdateFunctionGroup(ctx, r, c, id, calcChainSet) {
689
+ if (_lodash.default.isNil(id)) {
690
+ id = ctx.currentSheetId;
691
+ }
692
+ var luckysheetfile = ctx.luckysheetfile;
693
+ var idx = (0, _utils.getSheetIndex)(ctx, id);
694
+ if (_lodash.default.isNil(idx)) {
695
+ return;
696
+ }
697
+ var file = luckysheetfile[idx];
698
+ var calcChain = file.calcChain;
699
+ if (_lodash.default.isNil(calcChain)) {
700
+ calcChain = [];
701
+ }
702
+ if (calcChainSet) {
703
+ if (calcChainSet.has("".concat(r, "_").concat(c, "_").concat(id))) return;
704
+ } else {
705
+ for (var i = 0; i < calcChain.length; i += 1) {
706
+ var calc = calcChain[i];
707
+ if (calc.r === r && calc.c === c && calc.id === id) {
708
+ return;
709
+ }
710
+ }
711
+ }
712
+ var cc = {
713
+ r: r,
714
+ c: c,
715
+ id: id
716
+ };
717
+ calcChain.push(cc);
718
+ file.calcChain = calcChain;
719
+ ctx.luckysheetfile = luckysheetfile;
720
+ }
721
+ function execfunction(ctx, txt, r, c, id, calcChainSet, isrefresh, notInsertFunc) {
722
+ if (txt.indexOf(_validation.error.r) > -1) {
723
+ return [false, _validation.error.r, txt];
724
+ }
725
+ if (!checkBracketNum(txt)) {
726
+ txt += ")";
727
+ }
728
+ if (_lodash.default.isNil(id)) {
729
+ id = ctx.currentSheetId;
730
+ }
731
+ ctx.calculateSheetId = id;
732
+ ctx.formulaCache.parser.context = ctx;
733
+ var parsedResponse = ctx.formulaCache.parser.parse(txt.substring(1), {
734
+ sheetId: id || ctx.currentSheetId,
735
+ row: r,
736
+ column: c
737
+ });
738
+ var formulaError = parsedResponse.error;
739
+ var result = parsedResponse.result;
740
+ if (Object.prototype.toString.call(result) === "[object Date]" && !_lodash.default.isNil(result)) {
741
+ result = result.toString();
742
+ }
743
+ if (!_lodash.default.isNil(r) && !_lodash.default.isNil(c)) {
744
+ if (isrefresh) {
745
+ var finalResult_1 = result;
746
+ if (ctx.formulaCache.parser.cryptoDenomination && ctx.formulaCache.parser.cryptoDenomination !== "" && (typeof result === "number" || typeof result === "string")) {
747
+ var resultStr = Number(result).toFixed(ctx.formulaCache.parser.cryptoDecimals).toLowerCase();
748
+ finalResult_1 = "".concat(resultStr, " ").concat(ctx.formulaCache.parser.cryptoDenomination);
749
+ }
750
+ execFunctionGroup(ctx, r, c, _lodash.default.isNil(formulaError) ? finalResult_1 : formulaError, id);
751
+ }
752
+ if (!notInsertFunc) {
753
+ insertUpdateFunctionGroup(ctx, r, c, id, calcChainSet);
754
+ }
755
+ }
756
+ var finalResult = result;
757
+ if (ctx.formulaCache.parser.cryptoDenomination && ctx.formulaCache.parser.cryptoDenomination !== "" && (typeof result === "number" || typeof result === "string")) {
758
+ var resultStr = Number(result).toFixed(ctx.formulaCache.parser.cryptoDecimals).toLowerCase();
759
+ finalResult = "".concat(resultStr, " ").concat(ctx.formulaCache.parser.cryptoDenomination);
760
+ }
761
+ return [true, _lodash.default.isNil(formulaError) ? finalResult : formulaError, txt];
762
+ }
763
+ function insertUpdateDynamicArray(ctx, dynamicArrayItem) {
764
+ var r = dynamicArrayItem.r,
765
+ c = dynamicArrayItem.c;
766
+ var id = dynamicArrayItem.id;
767
+ if (_lodash.default.isNil(id)) {
768
+ id = ctx.currentSheetId;
769
+ }
770
+ var luckysheetfile = ctx.luckysheetfile;
771
+ var idx = (0, _utils.getSheetIndex)(ctx, id);
772
+ if (idx == null) return [];
773
+ var file = luckysheetfile[idx];
774
+ var dynamicArray = file.dynamicArray;
775
+ if (_lodash.default.isNil(dynamicArray)) {
776
+ dynamicArray = [];
777
+ }
778
+ for (var i = 0; i < dynamicArray.length; i += 1) {
779
+ var calc = dynamicArray[i];
780
+ if (calc.r === r && calc.c === c && calc.id === id) {
781
+ calc.data = dynamicArrayItem.data;
782
+ calc.f = dynamicArrayItem.f;
783
+ return dynamicArray;
784
+ }
785
+ }
786
+ dynamicArray.push(dynamicArrayItem);
787
+ return dynamicArray;
788
+ }
789
+ function groupValuesRefresh(ctx) {
790
+ var luckysheetfile = ctx.luckysheetfile;
791
+ if (ctx.groupValuesRefreshData.length > 0) {
792
+ for (var i = 0; i < ctx.groupValuesRefreshData.length; i += 1) {
793
+ var item = ctx.groupValuesRefreshData[i];
794
+ var idx = (0, _utils.getSheetIndex)(ctx, item.id);
795
+ if (idx == null) continue;
796
+ var file = luckysheetfile[idx];
797
+ var data = file.data;
798
+ if (_lodash.default.isNil(data)) {
799
+ continue;
800
+ }
801
+ var updateValue = {};
802
+ if (!_lodash.default.isNil(item.spe)) {
803
+ if (item.spe.type === "sparklines") {
804
+ updateValue.spl = item.spe.data;
805
+ } else if (item.spe.type === "dynamicArrayItem") {
806
+ file.dynamicArray = insertUpdateDynamicArray(ctx, item.spe.data);
807
+ }
808
+ }
809
+ updateValue.v = item.v;
810
+ updateValue.f = item.f;
811
+ (0, _cell.setCellValue)(ctx, item.r, item.c, data, updateValue);
812
+ }
813
+ ctx.groupValuesRefreshData = [];
814
+ }
815
+ }
816
+ function execFunctionGroup(ctx, origin_r, origin_c, value, id, data, isForce) {
817
+ if (isForce === void 0) {
818
+ isForce = false;
819
+ }
820
+ if (_lodash.default.isNil(data)) {
821
+ data = (0, _context.getFlowdata)(ctx);
822
+ }
823
+ if (_lodash.default.isNil(ctx.formulaCache.execFunctionGlobalData)) {
824
+ ctx.formulaCache.execFunctionGlobalData = {};
825
+ }
826
+ if (_lodash.default.isNil(id)) {
827
+ id = ctx.currentSheetId;
828
+ }
829
+ if (!_lodash.default.isNil(value)) {
830
+ var cellCache = [[{
831
+ v: undefined
832
+ }]];
833
+ (0, _cell.setCellValue)(ctx, 0, 0, cellCache, value);
834
+ ctx.formulaCache.execFunctionGlobalData["".concat(origin_r, "_").concat(origin_c, "_").concat(id)] = cellCache[0][0];
835
+ }
836
+ var calcChains = getAllFunctionGroup(ctx);
837
+ var formulaObjects = {};
838
+ var sheets = ctx.luckysheetfile;
839
+ var sheetData = {};
840
+ for (var i = 0; i < sheets.length; i += 1) {
841
+ var sheet = sheets[i];
842
+ sheetData[sheet.id] = sheet.data;
843
+ }
844
+ var updateValueOjects = {};
845
+ var updateValueArray = [];
846
+ if (_lodash.default.isNil(ctx.formulaCache.execFunctionExist)) {
847
+ var key = "r".concat(origin_r, "c").concat(origin_c, "i").concat(id);
848
+ updateValueOjects[key] = 1;
849
+ } else {
850
+ for (var x = 0; x < ctx.formulaCache.execFunctionExist.length; x += 1) {
851
+ var cell = ctx.formulaCache.execFunctionExist[x];
852
+ var key = "r".concat(cell.r, "c").concat(cell.c, "i").concat(cell.i);
853
+ updateValueOjects[key] = 1;
854
+ }
855
+ }
856
+ var arrayMatchCache = {};
857
+ var arrayMatch = function arrayMatch(formulaArray, _formulaObjects, _updateValueOjects, func) {
858
+ for (var a = 0; a < formulaArray.length; a += 1) {
859
+ var range = formulaArray[a];
860
+ var cacheKey = "r".concat(range.row[0]).concat(range.row[1], "c").concat(range.column[0]).concat(range.column[1], "id").concat(range.sheetId);
861
+ if (cacheKey in arrayMatchCache) {
862
+ var amc = arrayMatchCache[cacheKey];
863
+ amc.forEach(function (item) {
864
+ func(item.key, item.r, item.c, item.sheetId);
865
+ });
866
+ } else {
867
+ var functionArr = [];
868
+ for (var r = range.row[0]; r <= range.row[1]; r += 1) {
869
+ for (var c = range.column[0]; c <= range.column[1]; c += 1) {
870
+ var key = "r".concat(r, "c").concat(c, "i").concat(range.sheetId);
871
+ func(key, r, c, range.sheetId);
872
+ if (_formulaObjects && key in _formulaObjects || _updateValueOjects && key in _updateValueOjects) {
873
+ functionArr.push({
874
+ key: key,
875
+ r: r,
876
+ c: c,
877
+ sheetId: range.sheetId
878
+ });
879
+ }
880
+ }
881
+ }
882
+ if (_formulaObjects || _updateValueOjects) {
883
+ arrayMatchCache[cacheKey] = functionArr;
884
+ }
885
+ }
886
+ }
887
+ };
888
+ var _loop_1 = function _loop_1(i) {
889
+ var formulaCell = calcChains[i];
890
+ var key = "r".concat(formulaCell.r, "c").concat(formulaCell.c, "i").concat(formulaCell.id);
891
+ var calc_funcStr = (0, _cell.getcellFormula)(ctx, formulaCell.r, formulaCell.c, formulaCell.id);
892
+ if (_lodash.default.isNil(calc_funcStr)) {
893
+ return "continue";
894
+ }
895
+ var txt1 = calc_funcStr.toUpperCase();
896
+ var isOffsetFunc = txt1.indexOf("INDIRECT(") > -1 || txt1.indexOf("OFFSET(") > -1 || txt1.indexOf("INDEX(") > -1;
897
+ var formulaArray = [];
898
+ if (isOffsetFunc) {
899
+ isFunctionRange(ctx, calc_funcStr, null, null, formulaCell.id, null, function (str_nb) {
900
+ var range = getcellrange(ctx, _lodash.default.trim(str_nb), formulaCell.id);
901
+ if (!_lodash.default.isNil(range)) {
902
+ formulaArray.push(range);
903
+ }
904
+ });
905
+ } else if (!(calc_funcStr.substring(0, 2) === '="' && calc_funcStr.substring(calc_funcStr.length - 1, 1) === '"')) {
906
+ var point = 0;
907
+ var squote = -1;
908
+ var dquote = -1;
909
+ var formulaTextArray = [];
910
+ var sq_end_array = [];
911
+ var calc_funcStr_length = calc_funcStr.length;
912
+ for (var j = 0; j < calc_funcStr_length; j += 1) {
913
+ var char = calc_funcStr.charAt(j);
914
+ if (char === "'" && dquote === -1) {
915
+ if (squote === -1) {
916
+ if (point !== j) {
917
+ formulaTextArray.push.apply(formulaTextArray, calc_funcStr.substring(point, j).split(/==|!=|<>|<=|>=|[,()=+-/*%&^><]/));
918
+ }
919
+ squote = j;
920
+ point = j;
921
+ } else {
922
+ if (j < calc_funcStr_length - 1 && calc_funcStr.charAt(j + 1) === "'") {
923
+ j += 1;
924
+ } else {
925
+ point = j + 1;
926
+ formulaTextArray.push(calc_funcStr.substring(squote, point));
927
+ sq_end_array.push(formulaTextArray.length - 1);
928
+ squote = -1;
929
+ }
930
+ }
931
+ }
932
+ if (char === '"' && squote === -1) {
933
+ if (dquote === -1) {
934
+ if (point !== j) {
935
+ formulaTextArray.push.apply(formulaTextArray, calc_funcStr.substring(point, j).split(/==|!=|<>|<=|>=|[,()=+-/*%&^><]/));
936
+ }
937
+ dquote = j;
938
+ point = j;
939
+ } else {
940
+ if (j < calc_funcStr_length - 1 && calc_funcStr.charAt(j + 1) === '"') {
941
+ j += 1;
942
+ } else {
943
+ point = j + 1;
944
+ formulaTextArray.push(calc_funcStr.substring(dquote, point));
945
+ dquote = -1;
946
+ }
947
+ }
948
+ }
949
+ }
950
+ if (point !== calc_funcStr_length) {
951
+ formulaTextArray.push.apply(formulaTextArray, calc_funcStr.substring(point, calc_funcStr_length).split(/==|!=|<>|<=|>=|[,()=+-/*%&^><]/));
952
+ }
953
+ for (var j = sq_end_array.length - 1; j >= 0; j -= 1) {
954
+ if (sq_end_array[j] !== formulaTextArray.length - 1) {
955
+ formulaTextArray[sq_end_array[j]] += formulaTextArray[sq_end_array[j] + 1];
956
+ formulaTextArray.splice(sq_end_array[j] + 1, 1);
957
+ }
958
+ }
959
+ for (var j = 0; j < formulaTextArray.length; j += 1) {
960
+ var t = formulaTextArray[j];
961
+ if (t.length <= 1) {
962
+ continue;
963
+ }
964
+ if (t.substring(0, 1) === '"' && t.substring(t.length - 1, 1) === '"' || !iscelldata(t)) {
965
+ continue;
966
+ }
967
+ var range = getcellrange(ctx, _lodash.default.trim(t), formulaCell.id);
968
+ if (_lodash.default.isNil(range)) {
969
+ continue;
970
+ }
971
+ formulaArray.push(range);
972
+ }
973
+ }
974
+ var item = {
975
+ formulaArray: formulaArray,
976
+ calc_funcStr: calc_funcStr,
977
+ key: key,
978
+ r: formulaCell.r,
979
+ c: formulaCell.c,
980
+ id: formulaCell.id,
981
+ parents: {},
982
+ chidren: {},
983
+ color: "w"
984
+ };
985
+ formulaObjects[key] = item;
986
+ };
987
+ for (var i = 0; i < calcChains.length; i += 1) {
988
+ _loop_1(i);
989
+ }
990
+ Object.keys(formulaObjects).forEach(function (key) {
991
+ var formulaObject = formulaObjects[key];
992
+ arrayMatch(formulaObject.formulaArray, formulaObjects, updateValueOjects, function (childKey) {
993
+ if (childKey in formulaObjects) {
994
+ var childFormulaObject = formulaObjects[childKey];
995
+ formulaObject.chidren[childKey] = 1;
996
+ childFormulaObject.parents[key] = 1;
997
+ }
998
+ if (!isForce && childKey in updateValueOjects) {
999
+ updateValueArray.push(formulaObject);
1000
+ }
1001
+ });
1002
+ if (isForce) {
1003
+ updateValueArray.push(formulaObject);
1004
+ }
1005
+ });
1006
+ var formulaRunList = [];
1007
+ var stack = updateValueArray;
1008
+ var existsFormulaRunList = {};
1009
+ var _loop_2 = function _loop_2() {
1010
+ var formulaObject = stack.pop();
1011
+ if (_lodash.default.isNil(formulaObject) || formulaObject.key in existsFormulaRunList) {
1012
+ return "continue";
1013
+ }
1014
+ if (formulaObject.color === "b") {
1015
+ formulaRunList.push(formulaObject);
1016
+ existsFormulaRunList[formulaObject.key] = 1;
1017
+ return "continue";
1018
+ }
1019
+ var cacheStack = [];
1020
+ Object.keys(formulaObject.parents).forEach(function (parentKey) {
1021
+ var parentFormulaObject = formulaObjects[parentKey];
1022
+ if (!_lodash.default.isNil(parentFormulaObject)) {
1023
+ cacheStack.push(parentFormulaObject);
1024
+ }
1025
+ });
1026
+ if (cacheStack.length === 0) {
1027
+ formulaRunList.push(formulaObject);
1028
+ existsFormulaRunList[formulaObject.key] = 1;
1029
+ } else {
1030
+ formulaObject.color = "b";
1031
+ stack.push(formulaObject);
1032
+ stack = stack.concat(cacheStack);
1033
+ }
1034
+ };
1035
+ while (stack.length > 0) {
1036
+ _loop_2();
1037
+ }
1038
+ formulaRunList.reverse();
1039
+ var calcChainSet = new Set();
1040
+ calcChains.forEach(function (item) {
1041
+ calcChainSet.add("".concat(item.r, "_").concat(item.c, "_").concat(item.id));
1042
+ });
1043
+ for (var i = 0; i < formulaRunList.length; i += 1) {
1044
+ var formulaCell = formulaRunList[i];
1045
+ if (formulaCell.level === Math.max) {
1046
+ continue;
1047
+ }
1048
+ var calc_funcStr = formulaCell.calc_funcStr;
1049
+ var v = execfunction(ctx, calc_funcStr, formulaCell.r, formulaCell.c, formulaCell.id, calcChainSet);
1050
+ ctx.groupValuesRefreshData.push({
1051
+ r: formulaCell.r,
1052
+ c: formulaCell.c,
1053
+ v: v[1],
1054
+ f: v[2],
1055
+ spe: v[3],
1056
+ id: formulaCell.id
1057
+ });
1058
+ ctx.formulaCache.execFunctionGlobalData["".concat(formulaCell.r, "_").concat(formulaCell.c, "_").concat(formulaCell.id)] = {
1059
+ v: v[1],
1060
+ f: v[2]
1061
+ };
1062
+ }
1063
+ ctx.formulaCache.execFunctionExist = undefined;
1064
+ }
1065
+ function findrangeindex(ctx, v, vp) {
1066
+ var re = /<span.*?>/g;
1067
+ var v_a = v.replace(re, "").split("</span>");
1068
+ var vp_a = vp.replace(re, "").split("</span>");
1069
+ v_a.pop();
1070
+ if (vp_a[vp_a.length - 1] === "") vp_a.pop();
1071
+ var pfri = ctx.formulaCache.functionRangeIndex;
1072
+ if (pfri == null) return [];
1073
+ var vplen = vp_a.length;
1074
+ var vlen = v_a.length;
1075
+ if (vplen === vlen) {
1076
+ var i = pfri[0];
1077
+ var p = vp_a[i];
1078
+ var n = v_a[i];
1079
+ if (_lodash.default.isNil(p)) {
1080
+ if (vp_a.length <= i) {
1081
+ pfri = [vp_a.length - 1, vp_a.length - 1];
1082
+ } else if (v_a.length <= i) {
1083
+ pfri = [v_a.length - 1, v_a.length - 1];
1084
+ }
1085
+ return pfri;
1086
+ }
1087
+ if (p.length === n.length) {
1088
+ if (!_lodash.default.isNil(vp_a[i + 1]) && !_lodash.default.isNil(v_a[i + 1]) && vp_a[i + 1].length < v_a[i + 1].length) {
1089
+ pfri[0] += 1;
1090
+ pfri[1] = 1;
1091
+ }
1092
+ return pfri;
1093
+ }
1094
+ if (p.length > n.length) {
1095
+ if (!_lodash.default.isNil(p) && !_lodash.default.isNil(v_a[i + 1]) && v_a[i + 1].substring(0, 1) === '"' && (p.indexOf("{") > -1 || p.indexOf("}") > -1)) {
1096
+ pfri[0] += 1;
1097
+ pfri[1] = 1;
1098
+ }
1099
+ return pfri;
1100
+ }
1101
+ if (p.length < n.length) {
1102
+ if (pfri[1] > n.length) {
1103
+ pfri[1] = n.length;
1104
+ }
1105
+ return pfri;
1106
+ }
1107
+ } else if (vplen > vlen) {
1108
+ var i = pfri[0];
1109
+ var p = vp_a[i];
1110
+ var n = v_a[i];
1111
+ if (_lodash.default.isNil(n)) {
1112
+ if (v_a[i - 1].indexOf("{") > -1) {
1113
+ pfri[0] -= 1;
1114
+ var start = v_a[i - 1].search("{");
1115
+ pfri[1] += start;
1116
+ } else {
1117
+ pfri[0] = 0;
1118
+ pfri[1] = 0;
1119
+ }
1120
+ } else if (p.length === n.length) {
1121
+ if (!_lodash.default.isNil(v_a[i + 1]) && (v_a[i + 1].substring(0, 1) === '"' || v_a[i + 1].substring(0, 1) === "{" || v_a[i + 1].substring(0, 1) === "}")) {
1122
+ pfri[0] += 1;
1123
+ pfri[1] = 1;
1124
+ } else if (!_lodash.default.isNil(p) && p.length > 2 && p.substring(0, 1) === '"' && p.substring(p.length - 1, 1) === '"') {} else if (!_lodash.default.isNil(v_a[i]) && v_a[i] === '")') {
1125
+ pfri[1] = 1;
1126
+ } else if (!_lodash.default.isNil(v_a[i]) && v_a[i] === '"}') {
1127
+ pfri[1] = 1;
1128
+ } else if (!_lodash.default.isNil(v_a[i]) && v_a[i] === "{)") {
1129
+ pfri[1] = 1;
1130
+ } else {
1131
+ pfri[1] = n.length;
1132
+ }
1133
+ return pfri;
1134
+ } else if (p.length > n.length) {
1135
+ if (!_lodash.default.isNil(v_a[i + 1]) && (v_a[i + 1].substring(0, 1) === '"' || v_a[i + 1].substring(0, 1) === "{" || v_a[i + 1].substring(0, 1) === "}")) {
1136
+ pfri[0] += 1;
1137
+ pfri[1] = 1;
1138
+ }
1139
+ return pfri;
1140
+ } else if (p.length < n.length) {
1141
+ return pfri;
1142
+ }
1143
+ return pfri;
1144
+ } else if (vplen < vlen) {
1145
+ var i = pfri[0];
1146
+ var p = vp_a[i];
1147
+ var n = v_a[i];
1148
+ if (_lodash.default.isNil(p)) {
1149
+ pfri[0] = v_a.length - 1;
1150
+ if (!_lodash.default.isNil(n)) {
1151
+ pfri[1] = n.length;
1152
+ } else {
1153
+ pfri[1] = 1;
1154
+ }
1155
+ } else if (p.length === n.length) {
1156
+ if (vp_a[i + 1] != null && (vp_a[i + 1].substring(0, 1) === '"' || vp_a[i + 1].substring(0, 1) === "{" || vp_a[i + 1].substring(0, 1) === "}")) {
1157
+ pfri[1] = n.length;
1158
+ } else if (!_lodash.default.isNil(v_a[i + 1]) && v_a[i + 1].substring(0, 1) === '"' && (v_a[i + 1].substring(0, 1) === "{" || v_a[i + 1].substring(0, 1) === "}")) {
1159
+ pfri[0] += 1;
1160
+ pfri[1] = 1;
1161
+ } else if (!_lodash.default.isNil(n) && n.substring(0, 1) === '"' && n.substring(n.length - 1, 1) === '"' && p.substring(0, 1) === '"' && p.substring(p.length - 1, 1) === ")") {
1162
+ pfri[1] = n.length;
1163
+ } else if (!_lodash.default.isNil(n) && n.substring(0, 1) === "{" && n.substring(n.length - 1, 1) === "}" && p.substring(0, 1) === "{" && p.substring(p.length - 1, 1) === ")") {
1164
+ pfri[1] = n.length;
1165
+ } else {
1166
+ pfri[0] = pfri[0] + vlen - vplen;
1167
+ if (v_a.length > vp_a.length) {
1168
+ pfri[1] = v_a[i + 1].length;
1169
+ } else {
1170
+ pfri[1] = 1;
1171
+ }
1172
+ }
1173
+ return pfri;
1174
+ } else if (p.length > n.length) {
1175
+ if (!_lodash.default.isNil(p) && p.substring(0, 1) === '"') {
1176
+ pfri[1] = n.length;
1177
+ } else if (_lodash.default.isNil(v_a[i + 1]) && /{.*?}/.test(v_a[i + 1])) {
1178
+ pfri[0] += 1;
1179
+ pfri[1] = v_a[i + 1].length;
1180
+ } else if (!_lodash.default.isNil(p) && v_a[i + 1].substring(0, 1) === '"' && (p.indexOf("{") > -1 || p.indexOf("}") > -1)) {
1181
+ pfri[0] += 1;
1182
+ pfri[1] = 1;
1183
+ } else if (!_lodash.default.isNil(p) && (p.indexOf("{") > -1 || p.indexOf("}") > -1)) {} else if (!_lodash.default.isNil(p) && !_lodash.default.startsWith(p[0], "=") && _lodash.default.startsWith(n, "=")) {
1184
+ return [vlen - 1, v_a[vlen - 1].length];
1185
+ } else {
1186
+ pfri[0] = pfri[0] + vlen - vplen - 1;
1187
+ pfri[1] = v_a[(i || 1) - 1].length;
1188
+ }
1189
+ return pfri;
1190
+ } else if (p.length < n.length) {
1191
+ return pfri;
1192
+ }
1193
+ return pfri;
1194
+ }
1195
+ return null;
1196
+ }
1197
+ function createFormulaRangeSelect(ctx, select) {
1198
+ ctx.formulaRangeSelect = select;
1199
+ }
1200
+ function createRangeHightlight(ctx, inputInnerHtmlStr, ignoreRangeIndex) {
1201
+ if (ignoreRangeIndex === void 0) {
1202
+ ignoreRangeIndex = -1;
1203
+ }
1204
+ var $span = parseElement("<div>".concat(inputInnerHtmlStr, "</div>"));
1205
+ var formulaRanges = [];
1206
+ $span.querySelectorAll("span.fortune-formula-functionrange-cell").forEach(function (ele) {
1207
+ var rangeIndex = parseInt(ele.getAttribute("rangeindex") || "0", 10);
1208
+ if (rangeIndex === ignoreRangeIndex) return;
1209
+ var cellrange = getcellrange(ctx, ele.textContent || "");
1210
+ if (rangeIndex === ctx.formulaCache.selectingRangeIndex || cellrange == null) return;
1211
+ if (cellrange.sheetId === ctx.currentSheetId || cellrange.sheetId === -1 && ctx.formulaCache.rangetosheet === ctx.currentSheetId) {
1212
+ var rect = (0, _2.seletedHighlistByindex)(ctx, cellrange.row[0], cellrange.row[1], cellrange.column[0], cellrange.column[1]);
1213
+ if (rect) {
1214
+ formulaRanges.push(__assign(__assign({
1215
+ rangeIndex: rangeIndex
1216
+ }, rect), {
1217
+ backgroundColor: _color.colors[rangeIndex]
1218
+ }));
1219
+ }
1220
+ }
1221
+ });
1222
+ ctx.formulaRangeHighlight = formulaRanges;
1223
+ }
1224
+ function setCaretPosition(ctx, textDom, children, pos) {
1225
+ var _a, _b;
1226
+ try {
1227
+ var el = textDom;
1228
+ var range = document.createRange();
1229
+ var sel = window.getSelection();
1230
+ var mainSpan = document.querySelector(".luckysheet-formula-text-string");
1231
+ var textContent = ((_b = (_a = mainSpan === null || mainSpan === void 0 ? void 0 : mainSpan.firstChild) === null || _a === void 0 ? void 0 : _a.nodeValue) === null || _b === void 0 ? void 0 : _b.trim()) || "";
1232
+ var innerSpan = mainSpan === null || mainSpan === void 0 ? void 0 : mainSpan.querySelector(".fortune-formula-functionrange-cell");
1233
+ if (innerSpan && mainSpan) {
1234
+ textContent += innerSpan.textContent;
1235
+ el.innerHTML = textContent;
1236
+ }
1237
+ range.setStart(el.childNodes[children], pos);
1238
+ range.collapse(true);
1239
+ sel === null || sel === void 0 ? void 0 : sel.removeAllRanges();
1240
+ sel === null || sel === void 0 ? void 0 : sel.addRange(range);
1241
+ el.focus();
1242
+ } catch (err) {
1243
+ console.error(err);
1244
+ (0, _cursor.moveToEnd)(ctx.formulaCache.rangeResizeTo[0]);
1245
+ }
1246
+ }
1247
+ function functionRange(ctx, obj, v, vp) {
1248
+ if (window.getSelection) {
1249
+ var currSelection = window.getSelection();
1250
+ if (!currSelection) return;
1251
+ var fri = findrangeindex(ctx, v, vp);
1252
+ if (_lodash.default.isNil(fri)) {
1253
+ currSelection.selectAllChildren(obj);
1254
+ currSelection.collapseToEnd();
1255
+ } else {
1256
+ setCaretPosition(ctx, obj.querySelectorAll("span")[fri[0]], 0, fri[1]);
1257
+ }
1258
+ } else if (document.selection) {
1259
+ ctx.formulaCache.functionRangeIndex.moveToElementText(obj);
1260
+ ctx.formulaCache.functionRangeIndex.collapse(false);
1261
+ ctx.formulaCache.functionRangeIndex.select();
1262
+ }
1263
+ }
1264
+ function searchFunction(ctx, searchtxt) {
1265
+ var functionlist = (0, _locale.locale)(ctx).functionlist;
1266
+ var f = [];
1267
+ var s = [];
1268
+ var t = [];
1269
+ var result_i = 0;
1270
+ for (var i = 0; i < functionlist.length; i += 1) {
1271
+ var item = functionlist[i];
1272
+ var n = item.n;
1273
+ if (n === searchtxt) {
1274
+ f.unshift(item);
1275
+ result_i += 1;
1276
+ } else if (_lodash.default.startsWith(n, searchtxt)) {
1277
+ s.unshift(item);
1278
+ result_i += 1;
1279
+ } else if (n.indexOf(searchtxt) > -1) {
1280
+ t.unshift(item);
1281
+ result_i += 1;
1282
+ }
1283
+ if (result_i >= 10) {
1284
+ break;
1285
+ }
1286
+ }
1287
+ var list = __spreadArray(__spreadArray(__spreadArray([], f, true), s, true), t, true);
1288
+ if (list.length <= 0) {
1289
+ return;
1290
+ }
1291
+ ctx.functionCandidates = list;
1292
+ }
1293
+ function getrangeseleciton() {
1294
+ var _a, _b, _c, _d, _e;
1295
+ var currSelection = window.getSelection();
1296
+ if (!currSelection) return null;
1297
+ var anchorNode = currSelection.anchorNode,
1298
+ anchorOffset = currSelection.anchorOffset;
1299
+ if (!anchorNode) return null;
1300
+ if (((_b = (_a = anchorNode.parentNode) === null || _a === void 0 ? void 0 : _a.nodeName) === null || _b === void 0 ? void 0 : _b.toLowerCase()) === "span" && anchorOffset !== 0) {
1301
+ var txt = _lodash.default.trim(anchorNode.textContent || "");
1302
+ if (txt.length === 0 && anchorNode.parentNode.previousSibling) {
1303
+ var ahr = anchorNode.parentNode.previousSibling;
1304
+ txt = _lodash.default.trim(ahr.textContent || "");
1305
+ return ahr;
1306
+ }
1307
+ return anchorNode.parentNode;
1308
+ }
1309
+ var anchorElement = anchorNode;
1310
+ if (anchorElement.id === "luckysheet-rich-text-editor" || anchorElement.id === "luckysheet-functionbox-cell") {
1311
+ var txt = _lodash.default.trim((_c = _lodash.default.last(anchorElement.querySelectorAll("span"))) === null || _c === void 0 ? void 0 : _c.innerText);
1312
+ if (txt.length === 0 && anchorElement.querySelectorAll("span").length > 1) {
1313
+ var ahr = anchorElement.querySelectorAll("span");
1314
+ txt = _lodash.default.trim(ahr[ahr.length - 2].innerText);
1315
+ return ahr === null || ahr === void 0 ? void 0 : ahr[0];
1316
+ }
1317
+ return _lodash.default.last(anchorElement.querySelectorAll("span"));
1318
+ }
1319
+ if (((_d = anchorNode === null || anchorNode === void 0 ? void 0 : anchorNode.parentElement) === null || _d === void 0 ? void 0 : _d.id) === "luckysheet-rich-text-editor" || ((_e = anchorNode === null || anchorNode === void 0 ? void 0 : anchorNode.parentElement) === null || _e === void 0 ? void 0 : _e.id) === "luckysheet-functionbox-cell" || anchorOffset === 0) {
1320
+ var newAnchorNode = anchorOffset === 0 ? anchorNode === null || anchorNode === void 0 ? void 0 : anchorNode.parentNode : anchorNode;
1321
+ if (newAnchorNode === null || newAnchorNode === void 0 ? void 0 : newAnchorNode.previousSibling) {
1322
+ return newAnchorNode === null || newAnchorNode === void 0 ? void 0 : newAnchorNode.previousSibling;
1323
+ }
1324
+ }
1325
+ return null;
1326
+ }
1327
+ function helpFunctionExe($editer, currSelection, ctx) {
1328
+ var _a;
1329
+ var functionlist = (0, _locale.locale)(ctx).functionlist;
1330
+ if (_lodash.default.isEmpty(ctx.formulaCache.functionlistMap)) {
1331
+ for (var i_1 = 0; i_1 < functionlist.length; i_1 += 1) {
1332
+ ctx.formulaCache.functionlistMap[functionlist[i_1].n] = functionlist[i_1];
1333
+ }
1334
+ }
1335
+ if (!currSelection) {
1336
+ return null;
1337
+ }
1338
+ var $prev = currSelection;
1339
+ var $span = $editer.querySelectorAll("span");
1340
+ var currentIndex = _lodash.default.indexOf((_a = currSelection.parentNode) === null || _a === void 0 ? void 0 : _a.childNodes, currSelection);
1341
+ var i = currentIndex;
1342
+ if ($prev == null) {
1343
+ return null;
1344
+ }
1345
+ var funcName = null;
1346
+ var paramindex = null;
1347
+ if ($span[i].classList.contains("luckysheet-formula-text-func")) {
1348
+ funcName = $span[i].textContent;
1349
+ } else {
1350
+ var $cur = null;
1351
+ var exceptIndex = [-1, -1];
1352
+ while (--i > 0) {
1353
+ $cur = $span[i];
1354
+ if ($cur.classList.contains("luckysheet-formula-text-func") || _lodash.default.trim($cur.textContent || "").toUpperCase() in ctx.formulaCache.functionlistMap) {
1355
+ funcName = $cur.textContent;
1356
+ paramindex = null;
1357
+ var endstate = true;
1358
+ for (var a = i; a <= currentIndex; a += 1) {
1359
+ if (!paramindex) {
1360
+ paramindex = 0;
1361
+ }
1362
+ if (a >= exceptIndex[0] && a <= exceptIndex[1]) {
1363
+ continue;
1364
+ }
1365
+ $cur = $span[a];
1366
+ if ($cur.classList.contains("luckysheet-formula-text-rpar")) {
1367
+ exceptIndex = [i, a];
1368
+ funcName = null;
1369
+ endstate = false;
1370
+ break;
1371
+ }
1372
+ if ($cur.classList.contains("luckysheet-formula-text-comma")) {
1373
+ paramindex += 1;
1374
+ }
1375
+ }
1376
+ if (endstate) {
1377
+ break;
1378
+ }
1379
+ }
1380
+ }
1381
+ }
1382
+ return funcName;
1383
+ }
1384
+ function rangeHightlightselected(ctx, $editor) {
1385
+ var currSelection = getrangeseleciton();
1386
+ if (!currSelection) return;
1387
+ var currText = _lodash.default.trim(currSelection.textContent || "");
1388
+ if (currText === "=") {
1389
+ var functionlist = (0, _locale.locale)(ctx).functionlist;
1390
+ ctx.defaultCandidates = functionlist.filter(function (d) {
1391
+ return d.t === 20;
1392
+ }).slice(0, 11);
1393
+ var funcName = helpFunctionExe($editor, currSelection, ctx);
1394
+ ctx.functionHint = funcName === null || funcName === void 0 ? void 0 : funcName.toUpperCase();
1395
+ return;
1396
+ }
1397
+ if (currText === null || currText === void 0 ? void 0 : currText.match(/^[a-zA-Z_]+$/)) {
1398
+ ctx.defaultCandidates = [];
1399
+ searchFunction(ctx, currText.toUpperCase());
1400
+ ctx.functionHint = null;
1401
+ } else {
1402
+ var funcName = helpFunctionExe($editor, currSelection, ctx);
1403
+ ctx.functionHint = funcName === null || funcName === void 0 ? void 0 : funcName.toUpperCase();
1404
+ ctx.functionCandidates = [];
1405
+ }
1406
+ }
1407
+ function functionHTML(txt) {
1408
+ if (txt.substr(0, 1) === "=") {
1409
+ txt = txt.substr(1);
1410
+ }
1411
+ var funcstack = txt.split("");
1412
+ var i = 0;
1413
+ var str = "";
1414
+ var function_str = "";
1415
+ var matchConfig = {
1416
+ bracket: 0,
1417
+ comma: 0,
1418
+ squote: 0,
1419
+ dquote: 0,
1420
+ braces: 0
1421
+ };
1422
+ while (i < funcstack.length) {
1423
+ var s = funcstack[i];
1424
+ if (s === "(" && matchConfig.squote === 0 && matchConfig.dquote === 0 && matchConfig.braces === 0) {
1425
+ matchConfig.bracket += 1;
1426
+ if (str.length > 0) {
1427
+ function_str += "<span dir=\"auto\" class=\"luckysheet-formula-text-func\">".concat(str, "</span><span dir=\"auto\" class=\"luckysheet-formula-text-lpar\">(</span>");
1428
+ } else {
1429
+ function_str += '<span dir="auto" class="luckysheet-formula-text-lpar">(</span>';
1430
+ }
1431
+ str = "";
1432
+ } else if (s === ")" && matchConfig.squote === 0 && matchConfig.dquote === 0 && matchConfig.braces === 0) {
1433
+ matchConfig.bracket -= 1;
1434
+ function_str += "".concat(functionHTML(str), "<span dir=\"auto\" class=\"luckysheet-formula-text-rpar\">)</span>");
1435
+ str = "";
1436
+ } else if (s === "{" && matchConfig.squote === 0 && matchConfig.dquote === 0) {
1437
+ str += "{";
1438
+ matchConfig.braces += 1;
1439
+ } else if (s === "}" && matchConfig.squote === 0 && matchConfig.dquote === 0) {
1440
+ str += "}";
1441
+ matchConfig.braces -= 1;
1442
+ } else if (s === '"' && matchConfig.squote === 0) {
1443
+ if (matchConfig.dquote > 0) {
1444
+ if (str.length > 0) {
1445
+ function_str += "".concat(str, "\"</span>");
1446
+ } else {
1447
+ function_str += '"</span>';
1448
+ }
1449
+ matchConfig.dquote -= 1;
1450
+ str = "";
1451
+ } else {
1452
+ matchConfig.dquote += 1;
1453
+ if (str.length > 0) {
1454
+ function_str += "".concat(functionHTML(str), "<span dir=\"auto\" class=\"luckysheet-formula-text-string\">\"");
1455
+ } else {
1456
+ function_str += '<span dir="auto" class="luckysheet-formula-text-string">"';
1457
+ }
1458
+ str = "";
1459
+ }
1460
+ } else if (s === "'" && matchConfig.dquote === 0) {
1461
+ str += "'";
1462
+ matchConfig.squote = matchConfig.squote === 0 ? 1 : 0;
1463
+ } else if (s === "," && matchConfig.squote === 0 && matchConfig.dquote === 0 && matchConfig.braces === 0) {
1464
+ function_str += "".concat(functionHTML(str), "<span dir=\"auto\" class=\"luckysheet-formula-text-comma\">,</span>");
1465
+ str = "";
1466
+ } else if (s === "&" && matchConfig.squote === 0 && matchConfig.dquote === 0 && matchConfig.braces === 0) {
1467
+ if (str.length > 0) {
1468
+ function_str += "".concat(functionHTML(str), "<span dir=\"auto\" class=\"luckysheet-formula-text-calc\">") + "&" + "</span>";
1469
+ str = "";
1470
+ } else {
1471
+ function_str += '<span dir="auto" class="luckysheet-formula-text-calc">' + "&" + "</span>";
1472
+ }
1473
+ } else if (s in operatorjson && matchConfig.squote === 0 && matchConfig.dquote === 0 && matchConfig.braces === 0) {
1474
+ var s_next = "";
1475
+ if (i + 1 < funcstack.length) {
1476
+ s_next = funcstack[i + 1];
1477
+ }
1478
+ var p = i - 1;
1479
+ var s_pre = null;
1480
+ if (p >= 0) {
1481
+ do {
1482
+ s_pre = funcstack[p];
1483
+ p -= 1;
1484
+ } while (p >= 0 && s_pre === " ");
1485
+ }
1486
+ if (s + s_next in operatorjson) {
1487
+ if (str.length > 0) {
1488
+ function_str += "".concat(functionHTML(str), "<span dir=\"auto\" class=\"luckysheet-formula-text-calc\">").concat(s).concat(s_next, "</span>");
1489
+ str = "";
1490
+ } else {
1491
+ function_str += "<span dir=\"auto\" class=\"luckysheet-formula-text-calc\">".concat(s).concat(s_next, "</span>");
1492
+ }
1493
+ i += 1;
1494
+ } else if (!/[^0-9]/.test(s_next) && s === "-" && (s_pre === "(" || _lodash.default.isNil(s_pre) || s_pre === "," || s_pre === " " || s_pre in operatorjson)) {
1495
+ str += s;
1496
+ } else {
1497
+ if (str.length > 0) {
1498
+ function_str += "".concat(functionHTML(str), "<span dir=\"auto\" class=\"luckysheet-formula-text-calc\">").concat(s, "</span>");
1499
+ str = "";
1500
+ } else {
1501
+ function_str += "<span dir=\"auto\" class=\"luckysheet-formula-text-calc\">".concat(s, "</span>");
1502
+ }
1503
+ }
1504
+ } else {
1505
+ str += s;
1506
+ }
1507
+ if (i === funcstack.length - 1) {
1508
+ if (iscelldata(_lodash.default.trim(str))) {
1509
+ var rangeIndex = rangeIndexes.length > functionHTMLIndex ? rangeIndexes[functionHTMLIndex] : functionHTMLIndex;
1510
+ function_str += "<span class=\"fortune-formula-functionrange-cell\" rangeindex=\"".concat(rangeIndex, "\" dir=\"auto\" style=\"color:").concat(_color.colors[rangeIndex], ";\">").concat(str, "</span>");
1511
+ functionHTMLIndex += 1;
1512
+ } else if (matchConfig.dquote > 0) {
1513
+ function_str += "".concat(str, "</span>");
1514
+ } else if (str.indexOf("</span>") === -1 && str.length > 0) {
1515
+ var regx = /{.*?}/;
1516
+ if (regx.test(_lodash.default.trim(str))) {
1517
+ var arraytxt = regx.exec(str)[0];
1518
+ var arraystart = str.search(regx);
1519
+ var alltxt = "";
1520
+ if (arraystart > 0) {
1521
+ alltxt += "<span dir=\"auto\" class=\"luckysheet-formula-text-color\">".concat(str.substr(0, arraystart), "</span>");
1522
+ }
1523
+ alltxt += "<span dir=\"auto\" style=\"color:#959a05\" class=\"luckysheet-formula-text-array\">".concat(arraytxt, "</span>");
1524
+ if (arraystart + arraytxt.length < str.length) {
1525
+ alltxt += "<span dir=\"auto\" class=\"luckysheet-formula-text-color\">".concat(str.substr(arraystart + arraytxt.length, str.length), "</span>");
1526
+ }
1527
+ function_str += alltxt;
1528
+ } else {
1529
+ function_str += "<span dir=\"auto\" class=\"luckysheet-formula-text-color\">".concat(str, "</span>");
1530
+ }
1531
+ }
1532
+ }
1533
+ i += 1;
1534
+ }
1535
+ return function_str;
1536
+ }
1537
+ function functionHTMLGenerate(txt) {
1538
+ if (txt.length === 0 || txt.substring(0, 1) !== "=") {
1539
+ return txt;
1540
+ }
1541
+ functionHTMLIndex = 0;
1542
+ return "<span dir=\"auto\" class=\"luckysheet-formula-text-color\">=</span>".concat(functionHTML(txt));
1543
+ }
1544
+ function getRangeIndexes($editor) {
1545
+ var res = [];
1546
+ $editor.querySelectorAll("span.fortune-formula-functionrange-cell").forEach(function (ele) {
1547
+ var indexStr = ele.getAttribute("rangeindex");
1548
+ if (indexStr) {
1549
+ var rangeIndex = parseInt(indexStr, 10);
1550
+ res.push(rangeIndex);
1551
+ }
1552
+ });
1553
+ return res;
1554
+ }
1555
+ function handleFormulaInput(ctx, $copyTo, $editor, kcode, preText, refreshRangeSelect) {
1556
+ var _a, _b, _c, _d, _e, _f;
1557
+ if (refreshRangeSelect === void 0) {
1558
+ refreshRangeSelect = true;
1559
+ }
1560
+ try {
1561
+ var value1 = void 0;
1562
+ var value1txt = preText !== null && preText !== void 0 ? preText : $editor.innerText;
1563
+ var value = $editor.innerText;
1564
+ value = (0, _utils.escapeScriptTag)(value);
1565
+ if (value.length > 0 && value.substring(0, 1) === "=" && (kcode !== 229 || value.length === 1)) {
1566
+ if (!refreshRangeSelect) rangeIndexes = getRangeIndexes($editor);
1567
+ value = functionHTMLGenerate(value);
1568
+ if (!refreshRangeSelect && functionHTMLIndex < rangeIndexes.length) refreshRangeSelect = true;
1569
+ value1 = functionHTMLGenerate(value1txt);
1570
+ rangeIndexes = [];
1571
+ if (window.getSelection) {
1572
+ var currSelection = window.getSelection();
1573
+ if (!currSelection) return;
1574
+ if (((_a = currSelection.anchorNode) === null || _a === void 0 ? void 0 : _a.nodeName.toLowerCase()) === "div") {
1575
+ var editorlen = $editor.querySelectorAll("span").length;
1576
+ if (editorlen > 0) ctx.formulaCache.functionRangeIndex = [editorlen - 1, (_b = $editor.querySelectorAll("span").item(editorlen - 1).textContent) === null || _b === void 0 ? void 0 : _b.length];
1577
+ } else {
1578
+ ctx.formulaCache.functionRangeIndex = [_lodash.default.indexOf((_e = (_d = (_c = currSelection.anchorNode) === null || _c === void 0 ? void 0 : _c.parentNode) === null || _d === void 0 ? void 0 : _d.parentNode) === null || _e === void 0 ? void 0 : _e.childNodes, (_f = currSelection.anchorNode) === null || _f === void 0 ? void 0 : _f.parentNode), currSelection.anchorOffset];
1579
+ }
1580
+ } else {
1581
+ var textRange = document.selection.createRange();
1582
+ ctx.formulaCache.functionRangeIndex = textRange;
1583
+ }
1584
+ $editor.innerHTML = value;
1585
+ if ($copyTo) $copyTo.innerHTML = value;
1586
+ functionRange(ctx, $editor, value, value1);
1587
+ if (refreshRangeSelect) {
1588
+ (0, _2.cancelFunctionrangeSelected)(ctx);
1589
+ if (kcode !== 46) {
1590
+ createRangeHightlight(ctx, value);
1591
+ }
1592
+ ctx.formulaCache.rangestart = false;
1593
+ ctx.formulaCache.rangedrag_column_start = false;
1594
+ ctx.formulaCache.rangedrag_row_start = false;
1595
+ rangeHightlightselected(ctx, $editor);
1596
+ }
1597
+ } else if (_lodash.default.startsWith(value1txt, "=") && !_lodash.default.startsWith(value, "=")) {
1598
+ if ($copyTo) $copyTo.innerHTML = value;
1599
+ $editor.innerHTML = (0, _utils.escapeHTMLTag)(value);
1600
+ } else if (!_lodash.default.startsWith(value1txt, "=")) {
1601
+ if (!$copyTo) return;
1602
+ if ($copyTo.id === "luckysheet-rich-text-editor") {
1603
+ if (!_lodash.default.startsWith($copyTo.innerHTML, "<span")) {
1604
+ $copyTo.innerHTML = (0, _utils.escapeHTMLTag)(value);
1605
+ }
1606
+ } else {
1607
+ $copyTo.innerHTML = (0, _utils.escapeHTMLTag)(value);
1608
+ }
1609
+ }
1610
+ } catch (_error) {
1611
+ console.log(_error);
1612
+ }
1613
+ }
1614
+ function isfreezonFuc(txt) {
1615
+ var row = txt.replace(/[^0-9]/g, "");
1616
+ var col = txt.replace(/[^A-Za-z]/g, "");
1617
+ var row$ = txt.substr(txt.indexOf(row) - 1, 1);
1618
+ var col$ = txt.substr(txt.indexOf(col) - 1, 1);
1619
+ var ret = [false, false];
1620
+ if (row$ === "$") {
1621
+ ret[0] = true;
1622
+ }
1623
+ if (col$ === "$") {
1624
+ ret[1] = true;
1625
+ }
1626
+ return ret;
1627
+ }
1628
+ function functionStrChange_range(txt, type, rc, orient, stindex, step) {
1629
+ var val = txt.split("!");
1630
+ var rangetxt;
1631
+ var prefix = "";
1632
+ if (val.length > 1) {
1633
+ rangetxt = val[1];
1634
+ prefix = "".concat(val[0], "!");
1635
+ } else {
1636
+ rangetxt = val[0];
1637
+ }
1638
+ var r1;
1639
+ var r2;
1640
+ var c1;
1641
+ var c2;
1642
+ var $row0;
1643
+ var $row1;
1644
+ var $col0;
1645
+ var $col1;
1646
+ if (rangetxt.indexOf(":") === -1) {
1647
+ r1 = parseInt(rangetxt.replace(/[^0-9]/g, ""), 10) - 1;
1648
+ r2 = r1;
1649
+ c1 = (0, _utils.columnCharToIndex)(rangetxt.replace(/[^A-Za-z]/g, ""));
1650
+ c2 = c1;
1651
+ var freezonFuc = isfreezonFuc(rangetxt);
1652
+ $row0 = freezonFuc[0] ? "$" : "";
1653
+ $row1 = $row0;
1654
+ $col0 = freezonFuc[1] ? "$" : "";
1655
+ $col1 = $col0;
1656
+ } else {
1657
+ rangetxt = rangetxt.split(":");
1658
+ r1 = parseInt(rangetxt[0].replace(/[^0-9]/g, ""), 10) - 1;
1659
+ r2 = parseInt(rangetxt[1].replace(/[^0-9]/g, ""), 10) - 1;
1660
+ if (r1 > r2) {
1661
+ return txt;
1662
+ }
1663
+ c1 = (0, _utils.columnCharToIndex)(rangetxt[0].replace(/[^A-Za-z]/g, ""));
1664
+ c2 = (0, _utils.columnCharToIndex)(rangetxt[1].replace(/[^A-Za-z]/g, ""));
1665
+ if (c1 > c2) {
1666
+ return txt;
1667
+ }
1668
+ var freezonFuc0 = isfreezonFuc(rangetxt[0]);
1669
+ $row0 = freezonFuc0[0] ? "$" : "";
1670
+ $col0 = freezonFuc0[1] ? "$" : "";
1671
+ var freezonFuc1 = isfreezonFuc(rangetxt[1]);
1672
+ $row1 = freezonFuc1[0] ? "$" : "";
1673
+ $col1 = freezonFuc1[1] ? "$" : "";
1674
+ }
1675
+ if (type === "del") {
1676
+ if (rc === "row") {
1677
+ if (r1 >= stindex && r2 <= stindex + step - 1) {
1678
+ return _validation.error.r;
1679
+ }
1680
+ if (r1 > stindex + step - 1) {
1681
+ r1 -= step;
1682
+ } else if (r1 >= stindex) {
1683
+ r1 = stindex;
1684
+ }
1685
+ if (r2 > stindex + step - 1) {
1686
+ r2 -= step;
1687
+ } else if (r2 >= stindex) {
1688
+ r2 = stindex - 1;
1689
+ }
1690
+ if (r1 < 0) {
1691
+ r1 = 0;
1692
+ }
1693
+ if (r2 < r1) {
1694
+ r2 = r1;
1695
+ }
1696
+ } else if (rc === "col") {
1697
+ if (c1 >= stindex && c2 <= stindex + step - 1) {
1698
+ return _validation.error.r;
1699
+ }
1700
+ if (c1 > stindex + step - 1) {
1701
+ c1 -= step;
1702
+ } else if (c1 >= stindex) {
1703
+ c1 = stindex;
1704
+ }
1705
+ if (c2 > stindex + step - 1) {
1706
+ c2 -= step;
1707
+ } else if (c2 >= stindex) {
1708
+ c2 = stindex - 1;
1709
+ }
1710
+ if (c1 < 0) {
1711
+ c1 = 0;
1712
+ }
1713
+ if (c2 < c1) {
1714
+ c2 = c1;
1715
+ }
1716
+ }
1717
+ if (r1 === r2 && c1 === c2) {
1718
+ if (!Number.isNaN(r1) && !Number.isNaN(c1)) {
1719
+ return prefix + $col0 + (0, _utils.indexToColumnChar)(c1) + $row0 + (r1 + 1);
1720
+ }
1721
+ if (!Number.isNaN(r1)) {
1722
+ return prefix + $row0 + (r1 + 1);
1723
+ }
1724
+ if (!Number.isNaN(c1)) {
1725
+ return prefix + $col0 + (0, _utils.indexToColumnChar)(c1);
1726
+ }
1727
+ return txt;
1728
+ }
1729
+ if (Number.isNaN(c1) && Number.isNaN(c2)) {
1730
+ return "".concat(prefix + $row0 + (r1 + 1), ":").concat($row1).concat(r2 + 1);
1731
+ }
1732
+ if (Number.isNaN(r1) && Number.isNaN(r2)) {
1733
+ return "".concat(prefix + $col0 + (0, _utils.indexToColumnChar)(c1), ":").concat($col1).concat((0, _utils.indexToColumnChar)(c2));
1734
+ }
1735
+ return "".concat(prefix + $col0 + (0, _utils.indexToColumnChar)(c1) + $row0 + (r1 + 1), ":").concat($col1).concat((0, _utils.indexToColumnChar)(c2)).concat($row1).concat(r2 + 1);
1736
+ }
1737
+ if (type === "add") {
1738
+ if (rc === "row") {
1739
+ if (orient === "lefttop") {
1740
+ if (r1 >= stindex) {
1741
+ r1 += step;
1742
+ }
1743
+ if (r2 >= stindex) {
1744
+ r2 += step;
1745
+ }
1746
+ } else if (orient === "rightbottom") {
1747
+ if (r1 > stindex) {
1748
+ r1 += step;
1749
+ }
1750
+ if (r2 > stindex) {
1751
+ r2 += step;
1752
+ }
1753
+ }
1754
+ } else if (rc === "col") {
1755
+ if (orient === "lefttop") {
1756
+ if (c1 >= stindex) {
1757
+ c1 += step;
1758
+ }
1759
+ if (c2 >= stindex) {
1760
+ c2 += step;
1761
+ }
1762
+ } else if (orient === "rightbottom") {
1763
+ if (c1 > stindex) {
1764
+ c1 += step;
1765
+ }
1766
+ if (c2 > stindex) {
1767
+ c2 += step;
1768
+ }
1769
+ }
1770
+ }
1771
+ if (r1 === r2 && c1 === c2) {
1772
+ if (!Number.isNaN(r1) && !Number.isNaN(c1)) {
1773
+ return prefix + $col0 + (0, _utils.indexToColumnChar)(c1) + $row0 + (r1 + 1);
1774
+ }
1775
+ if (!Number.isNaN(r1)) {
1776
+ return prefix + $row0 + (r1 + 1);
1777
+ }
1778
+ if (!Number.isNaN(c1)) {
1779
+ return prefix + $col0 + (0, _utils.indexToColumnChar)(c1);
1780
+ }
1781
+ return txt;
1782
+ }
1783
+ if (Number.isNaN(c1) && Number.isNaN(c2)) {
1784
+ return "".concat(prefix + $row0 + (r1 + 1), ":").concat($row1).concat(r2 + 1);
1785
+ }
1786
+ if (Number.isNaN(r1) && Number.isNaN(r2)) {
1787
+ return "".concat(prefix + $col0 + (0, _utils.indexToColumnChar)(c1), ":").concat($col1).concat((0, _utils.indexToColumnChar)(c2));
1788
+ }
1789
+ return "".concat(prefix + $col0 + (0, _utils.indexToColumnChar)(c1) + $row0 + (r1 + 1), ":").concat($col1).concat((0, _utils.indexToColumnChar)(c2)).concat($row1).concat(r2 + 1);
1790
+ }
1791
+ return "";
1792
+ }
1793
+ function israngeseleciton(ctx, istooltip) {
1794
+ var _a, _b, _c;
1795
+ if (istooltip == null) {
1796
+ istooltip = false;
1797
+ }
1798
+ var currSelection = window.getSelection();
1799
+ if (currSelection == null) return false;
1800
+ var anchor = currSelection.anchorNode;
1801
+ if (!(anchor === null || anchor === void 0 ? void 0 : anchor.textContent)) return false;
1802
+ var anchorOffset = currSelection.anchorOffset;
1803
+ var anchorElement = anchor;
1804
+ var parentElement = anchor.parentNode;
1805
+ if (((_a = anchor === null || anchor === void 0 ? void 0 : anchor.parentNode) === null || _a === void 0 ? void 0 : _a.nodeName.toLowerCase()) === "span" && anchorOffset !== 0) {
1806
+ var txt = _lodash.default.trim(anchor.textContent);
1807
+ var lasttxt = "";
1808
+ if (txt.length === 0 && anchor.parentNode.previousSibling) {
1809
+ var ahr = anchor.parentNode.previousSibling;
1810
+ txt = _lodash.default.trim(ahr.textContent || "");
1811
+ lasttxt = txt.substring(txt.length - 1, 1);
1812
+ ctx.formulaCache.rangeSetValueTo = anchor.parentNode;
1813
+ } else {
1814
+ lasttxt = txt.substring(anchorOffset - 1, 1);
1815
+ ctx.formulaCache.rangeSetValueTo = anchor.parentNode;
1816
+ }
1817
+ if (istooltip && (lasttxt === "(" || lasttxt === ",") || !istooltip && (lasttxt === "(" || lasttxt === "," || lasttxt === "=" || lasttxt in operatorjson || lasttxt === "&")) {
1818
+ return true;
1819
+ }
1820
+ } else if (anchorElement.id === "luckysheet-rich-text-editor" || anchorElement.id === "luckysheet-functionbox-cell") {
1821
+ var txt = _lodash.default.trim((_b = _lodash.default.last(anchorElement.querySelectorAll("span"))) === null || _b === void 0 ? void 0 : _b.innerText);
1822
+ ctx.formulaCache.rangeSetValueTo = _lodash.default.last(anchorElement.querySelectorAll("span"));
1823
+ if (txt.length === 0 && anchorElement.querySelectorAll("span").length > 1) {
1824
+ var ahr = anchorElement.querySelectorAll("span");
1825
+ txt = _lodash.default.trim(ahr[ahr.length - 2].innerText);
1826
+ txt = _lodash.default.trim(ahr[ahr.length - 2].innerText);
1827
+ ctx.formulaCache.rangeSetValueTo = ahr;
1828
+ }
1829
+ var lasttxt = txt.substring(txt.length - 1, 1);
1830
+ if (istooltip && (lasttxt === "(" || lasttxt === ",") || !istooltip && (lasttxt === "(" || lasttxt === "," || lasttxt === "=" || lasttxt in operatorjson || lasttxt === "&")) {
1831
+ return true;
1832
+ }
1833
+ } else if (parentElement.id === "luckysheet-rich-text-editor" || parentElement.id === "luckysheet-functionbox-cell" || anchorOffset === 0) {
1834
+ if (anchorOffset === 0) {
1835
+ anchor = anchor.parentNode;
1836
+ }
1837
+ if (!anchor) return false;
1838
+ if (((_c = anchor.previousSibling) === null || _c === void 0 ? void 0 : _c.textContent) == null) return false;
1839
+ if (anchor.previousSibling) {
1840
+ var txt = _lodash.default.trim(anchor.previousSibling.textContent);
1841
+ var lasttxt = txt.substring(txt.length - 1, 1);
1842
+ ctx.formulaCache.rangeSetValueTo = anchor.previousSibling;
1843
+ if (istooltip && (lasttxt === "(" || lasttxt === ",") || !istooltip && (lasttxt === "(" || lasttxt === "," || lasttxt === "=" || lasttxt in operatorjson || lasttxt === "&")) {
1844
+ return true;
1845
+ }
1846
+ }
1847
+ }
1848
+ return false;
1849
+ }
1850
+ function functionStrChange(txt, type, rc, orient, stindex, step) {
1851
+ if (!txt) {
1852
+ return "";
1853
+ }
1854
+ if (txt.substring(0, 1) === "=") {
1855
+ txt = txt.substring(1);
1856
+ }
1857
+ var funcstack = txt.split("");
1858
+ var i = 0;
1859
+ var str = "";
1860
+ var function_str = "";
1861
+ var matchConfig = {
1862
+ bracket: 0,
1863
+ comma: 0,
1864
+ squote: 0,
1865
+ dquote: 0
1866
+ };
1867
+ while (i < funcstack.length) {
1868
+ var s = funcstack[i];
1869
+ if (s === "(" && matchConfig.dquote === 0) {
1870
+ matchConfig.bracket += 1;
1871
+ if (str.length > 0) {
1872
+ function_str += "".concat(str, "(");
1873
+ } else {
1874
+ function_str += "(";
1875
+ }
1876
+ str = "";
1877
+ } else if (s === ")" && matchConfig.dquote === 0) {
1878
+ matchConfig.bracket -= 1;
1879
+ function_str += "".concat(functionStrChange(str, type, rc, orient, stindex, step), ")");
1880
+ str = "";
1881
+ } else if (s === '"' && matchConfig.squote === 0) {
1882
+ if (matchConfig.dquote > 0) {
1883
+ function_str += "".concat(str, "\"");
1884
+ matchConfig.dquote -= 1;
1885
+ str = "";
1886
+ } else {
1887
+ matchConfig.dquote += 1;
1888
+ str += '"';
1889
+ }
1890
+ } else if (s === "," && matchConfig.dquote === 0) {
1891
+ function_str += "".concat(functionStrChange(str, type, rc, orient, stindex, step), ",");
1892
+ str = "";
1893
+ } else if (s === "&" && matchConfig.dquote === 0) {
1894
+ if (str.length > 0) {
1895
+ function_str += "".concat(functionStrChange(str, type, rc, orient, stindex, step), "&");
1896
+ str = "";
1897
+ } else {
1898
+ function_str += "&";
1899
+ }
1900
+ } else if (s in operatorjson && matchConfig.dquote === 0) {
1901
+ var s_next = "";
1902
+ if (i + 1 < funcstack.length) {
1903
+ s_next = funcstack[i + 1];
1904
+ }
1905
+ var p = i - 1;
1906
+ var s_pre = null;
1907
+ if (p >= 0) {
1908
+ do {
1909
+ s_pre = funcstack[p -= 1];
1910
+ } while (p >= 0 && s_pre === " ");
1911
+ }
1912
+ if (s + s_next in operatorjson) {
1913
+ if (str.length > 0) {
1914
+ function_str += functionStrChange(str, type, rc, orient, stindex, step) + s + s_next;
1915
+ str = "";
1916
+ } else {
1917
+ function_str += s + s_next;
1918
+ }
1919
+ i += 1;
1920
+ } else if (!/[^0-9]/.test(s_next) && s === "-" && (s_pre === "(" || s_pre == null || s_pre === "," || s_pre === " " || s_pre in operatorjson)) {
1921
+ str += s;
1922
+ } else {
1923
+ if (str.length > 0) {
1924
+ function_str += functionStrChange(str, type, rc, orient, stindex, step) + s;
1925
+ str = "";
1926
+ } else {
1927
+ function_str += s;
1928
+ }
1929
+ }
1930
+ } else {
1931
+ str += s;
1932
+ }
1933
+ if (i === funcstack.length - 1) {
1934
+ if (iscelldata(_lodash.default.trim(str))) {
1935
+ function_str += functionStrChange_range(_lodash.default.trim(str), type, rc, orient, stindex, step);
1936
+ } else {
1937
+ function_str += _lodash.default.trim(str);
1938
+ }
1939
+ }
1940
+ i += 1;
1941
+ }
1942
+ return function_str;
1943
+ }
1944
+ function rangeSetValue(ctx, cellInput, selected, fxInput) {
1945
+ var _a, _b, _c, _d, _e;
1946
+ var $editor = cellInput;
1947
+ var $copyTo = fxInput;
1948
+ if (((_a = document.activeElement) === null || _a === void 0 ? void 0 : _a.id) === "luckysheet-functionbox-cell") {
1949
+ $editor = fxInput;
1950
+ $copyTo = cellInput;
1951
+ }
1952
+ var range = "";
1953
+ var rf = selected.row[0];
1954
+ var cf = selected.column[0];
1955
+ if (ctx.config.merge != null && "".concat(rf, "_").concat(cf) in ctx.config.merge) {
1956
+ range = (0, _cell.getRangetxt)(ctx, ctx.currentSheetId, {
1957
+ column: [cf, cf],
1958
+ row: [rf, rf]
1959
+ }, ctx.formulaCache.rangetosheet);
1960
+ } else {
1961
+ range = (0, _cell.getRangetxt)(ctx, ctx.currentSheetId, selected, ctx.formulaCache.rangetosheet);
1962
+ }
1963
+ if (!israngeseleciton(ctx) && (ctx.formulaCache.rangestart || ctx.formulaCache.rangedrag_column_start || ctx.formulaCache.rangedrag_row_start)) {
1964
+ var span = $editor.querySelector("span[rangeindex='".concat(ctx.formulaCache.rangechangeindex, "']"));
1965
+ if (span) {
1966
+ span.innerHTML = range;
1967
+ setCaretPosition(ctx, span, 0, range.length);
1968
+ }
1969
+ } else {
1970
+ var function_str = "<span class=\"fortune-formula-functionrange-cell\" rangeindex=\"".concat(functionHTMLIndex, "\" dir=\"auto\" style=\"color:").concat(_color.colors[functionHTMLIndex], ";\">").concat(range, "</span>");
1971
+ var newEle = parseElement(function_str);
1972
+ var refEle = ctx.formulaCache.rangeSetValueTo;
1973
+ if (refEle && refEle.parentNode) {
1974
+ var leftPar = (_b = document.getElementsByClassName("luckysheet-formula-text-lpar")) === null || _b === void 0 ? void 0 : _b[0];
1975
+ if ((_c = leftPar === null || leftPar === void 0 ? void 0 : leftPar.parentElement) === null || _c === void 0 ? void 0 : _c.classList.contains("luckysheet-formula-text-color")) {
1976
+ (_e = (_d = document.getElementsByClassName("luckysheet-formula-text-lpar")) === null || _d === void 0 ? void 0 : _d[0].parentNode) === null || _e === void 0 ? void 0 : _e.appendChild(newEle);
1977
+ } else {
1978
+ refEle.parentNode.insertBefore(newEle, refEle.nextSibling);
1979
+ }
1980
+ } else {
1981
+ $editor.appendChild(newEle);
1982
+ }
1983
+ ctx.formulaCache.rangechangeindex = functionHTMLIndex;
1984
+ var span = $editor.querySelector("span[rangeindex='".concat(ctx.formulaCache.rangechangeindex, "']"));
1985
+ setCaretPosition(ctx, span, 0, range.length);
1986
+ functionHTMLIndex += 1;
1987
+ }
1988
+ if ($copyTo) $copyTo.innerHTML = $editor.innerHTML;
1989
+ }
1990
+ function onFormulaRangeDragEnd(ctx) {
1991
+ if (ctx.formulaCache.func_selectedrange) {
1992
+ var _a = ctx.formulaCache.func_selectedrange,
1993
+ left = _a.left_move,
1994
+ top_1 = _a.top_move,
1995
+ width = _a.width_move,
1996
+ height = _a.height_move;
1997
+ if (left != null && top_1 != null && width != null && height != null && (ctx.formulaCache.rangestart || ctx.formulaCache.rangedrag_column_start || ctx.formulaCache.rangedrag_row_start)) ctx.formulaRangeSelect = {
1998
+ rangeIndex: ctx.formulaCache.rangeIndex || 0,
1999
+ left: left,
2000
+ top: top_1,
2001
+ width: width,
2002
+ height: height
2003
+ };
2004
+ }
2005
+ ctx.formulaCache.selectingRangeIndex = -1;
2006
+ }
2007
+ function setRangeSelect(container, left, top, height, width) {
2008
+ var rangeElement = container.querySelector(".fortune-formula-functionrange-select");
2009
+ if (rangeElement == null) return;
2010
+ rangeElement.style.left = "".concat(left, "px");
2011
+ rangeElement.style.top = "".concat(top, "px");
2012
+ rangeElement.style.height = "".concat(height, "px");
2013
+ rangeElement.style.width = "".concat(width, "px");
2014
+ }
2015
+ function rangeDrag(ctx, e, cellInput, scrollLeft, scrollTop, container, fxInput) {
2016
+ var func_selectedrange = ctx.formulaCache.func_selectedrange;
2017
+ if (!func_selectedrange || func_selectedrange.left == null || func_selectedrange.height == null || func_selectedrange.top == null || func_selectedrange.width == null) return;
2018
+ var rect = container.getBoundingClientRect();
2019
+ var x = e.pageX - rect.left - ctx.rowHeaderWidth + scrollLeft;
2020
+ var y = e.pageY - rect.top - ctx.columnHeaderHeight + scrollTop;
2021
+ var _a = (0, _location.rowLocation)(y, ctx.visibledatarow),
2022
+ row_pre = _a[0],
2023
+ row = _a[1],
2024
+ row_index = _a[2];
2025
+ var _b = (0, _location.colLocation)(x, ctx.visibledatacolumn),
2026
+ col_pre = _b[0],
2027
+ col = _b[1],
2028
+ col_index = _b[2];
2029
+ var top = 0;
2030
+ var height = 0;
2031
+ var rowseleted = [];
2032
+ if (func_selectedrange.top > row_pre) {
2033
+ top = row_pre;
2034
+ height = func_selectedrange.top + func_selectedrange.height - row_pre;
2035
+ rowseleted = [row_index, func_selectedrange.row[1]];
2036
+ } else if (func_selectedrange.top === row_pre) {
2037
+ top = row_pre;
2038
+ height = func_selectedrange.top + func_selectedrange.height - row_pre;
2039
+ rowseleted = [row_index, func_selectedrange.row[0]];
2040
+ } else {
2041
+ top = func_selectedrange.top;
2042
+ height = row - func_selectedrange.top - 1;
2043
+ rowseleted = [func_selectedrange.row[0], row_index];
2044
+ }
2045
+ var left = 0;
2046
+ var width = 0;
2047
+ var columnseleted = [];
2048
+ if (func_selectedrange.left > col_pre) {
2049
+ left = col_pre;
2050
+ width = func_selectedrange.left + func_selectedrange.width - col_pre;
2051
+ columnseleted = [col_index, func_selectedrange.column[1]];
2052
+ } else if (func_selectedrange.left === col_pre) {
2053
+ left = col_pre;
2054
+ width = func_selectedrange.left + func_selectedrange.width - col_pre;
2055
+ columnseleted = [col_index, func_selectedrange.column[0]];
2056
+ } else {
2057
+ left = func_selectedrange.left;
2058
+ width = col - func_selectedrange.left - 1;
2059
+ columnseleted = [func_selectedrange.column[0], col_index];
2060
+ }
2061
+ var changeparam = (0, _cell.mergeMoveMain)(ctx, columnseleted, rowseleted, func_selectedrange, top, height, left, width);
2062
+ if (changeparam != null) {
2063
+ columnseleted = changeparam[0], rowseleted = changeparam[1], top = changeparam[2], height = changeparam[3], left = changeparam[4], width = changeparam[5];
2064
+ }
2065
+ func_selectedrange.row = rowseleted;
2066
+ func_selectedrange.column = columnseleted;
2067
+ func_selectedrange.left_move = left;
2068
+ func_selectedrange.width_move = width;
2069
+ func_selectedrange.top_move = top;
2070
+ func_selectedrange.height_move = height;
2071
+ rangeSetValue(ctx, cellInput, {
2072
+ row: rowseleted,
2073
+ column: columnseleted
2074
+ }, fxInput);
2075
+ setRangeSelect(container, left, top, height, width);
2076
+ e.preventDefault();
2077
+ }
2078
+ function rangeDragColumn(ctx, e, cellInput, scrollLeft, scrollTop, container, fxInput) {
2079
+ var func_selectedrange = ctx.formulaCache.func_selectedrange;
2080
+ if (!func_selectedrange || func_selectedrange.left == null || func_selectedrange.height == null || func_selectedrange.top == null || func_selectedrange.width == null) return;
2081
+ var mouse = (0, _location.mousePosition)(e.pageX, e.pageY, ctx);
2082
+ var x = mouse[0] + scrollLeft;
2083
+ var visibledatarow = ctx.visibledatarow;
2084
+ var row_index = visibledatarow.length - 1;
2085
+ var row = visibledatarow[row_index];
2086
+ var row_pre = 0;
2087
+ var _a = (0, _location.colLocation)(x, ctx.visibledatacolumn),
2088
+ col_pre = _a[0],
2089
+ col = _a[1],
2090
+ col_index = _a[2];
2091
+ var left = 0;
2092
+ var width = 0;
2093
+ var columnseleted = [];
2094
+ if (func_selectedrange.left > col_pre) {
2095
+ left = col_pre;
2096
+ width = func_selectedrange.left + func_selectedrange.width - col_pre;
2097
+ columnseleted = [col_index, func_selectedrange.column[1]];
2098
+ } else if (func_selectedrange.left === col_pre) {
2099
+ left = col_pre;
2100
+ width = func_selectedrange.left + func_selectedrange.width - col_pre;
2101
+ columnseleted = [col_index, func_selectedrange.column[0]];
2102
+ } else {
2103
+ left = func_selectedrange.left;
2104
+ width = col - func_selectedrange.left - 1;
2105
+ columnseleted = [func_selectedrange.column[0], col_index];
2106
+ }
2107
+ var changeparam = (0, _cell.mergeMoveMain)(ctx, columnseleted, [0, row_index], func_selectedrange, row_pre, row - row_pre - 1, left, width);
2108
+ if (changeparam != null) {
2109
+ columnseleted = changeparam[0], left = changeparam[4], width = changeparam[5];
2110
+ }
2111
+ func_selectedrange.column = columnseleted;
2112
+ func_selectedrange.left_move = left;
2113
+ func_selectedrange.width_move = width;
2114
+ rangeSetValue(ctx, cellInput, {
2115
+ row: [null, null],
2116
+ column: columnseleted
2117
+ }, fxInput);
2118
+ setRangeSelect(container, left, row_pre, row - row_pre - 1, width);
2119
+ }
2120
+ function rangeDragRow(ctx, e, cellInput, scrollLeft, scrollTop, container, fxInput) {
2121
+ var func_selectedrange = ctx.formulaCache.func_selectedrange;
2122
+ if (!func_selectedrange || func_selectedrange.left == null || func_selectedrange.height == null || func_selectedrange.top == null || func_selectedrange.width == null) return;
2123
+ var mouse = (0, _location.mousePosition)(e.pageX, e.pageY, ctx);
2124
+ var y = mouse[1] + scrollTop;
2125
+ var _a = (0, _location.rowLocation)(y, ctx.visibledatarow),
2126
+ row_pre = _a[0],
2127
+ row = _a[1],
2128
+ row_index = _a[2];
2129
+ var visibledatacolumn = ctx.visibledatacolumn;
2130
+ var col_index = visibledatacolumn.length - 1;
2131
+ var col = visibledatacolumn[col_index];
2132
+ var col_pre = 0;
2133
+ var top = 0;
2134
+ var height = 0;
2135
+ var rowseleted = [];
2136
+ if (func_selectedrange.top > row_pre) {
2137
+ top = row_pre;
2138
+ height = func_selectedrange.top + func_selectedrange.height - row_pre;
2139
+ rowseleted = [row_index, func_selectedrange.row[1]];
2140
+ } else if (func_selectedrange.top === row_pre) {
2141
+ top = row_pre;
2142
+ height = func_selectedrange.top + func_selectedrange.height - row_pre;
2143
+ rowseleted = [row_index, func_selectedrange.row[0]];
2144
+ } else {
2145
+ top = func_selectedrange.top;
2146
+ height = row - func_selectedrange.top - 1;
2147
+ rowseleted = [func_selectedrange.row[0], row_index];
2148
+ }
2149
+ var changeparam = (0, _cell.mergeMoveMain)(ctx, [0, col_index], rowseleted, func_selectedrange, top, height, col_pre, col - col_pre - 1);
2150
+ if (changeparam != null) {
2151
+ rowseleted = changeparam[1], top = changeparam[2], height = changeparam[3];
2152
+ }
2153
+ func_selectedrange.row = rowseleted;
2154
+ func_selectedrange.top_move = top;
2155
+ func_selectedrange.height_move = height;
2156
+ rangeSetValue(ctx, cellInput, {
2157
+ row: rowseleted,
2158
+ column: [null, null]
2159
+ }, fxInput);
2160
+ setRangeSelect(container, col_pre, top, height, col - col_pre - 1);
2161
+ }
2162
+ function updateparam(orient, txt, step) {
2163
+ var val = txt.split("!");
2164
+ var rangetxt;
2165
+ var prefix = "";
2166
+ if (val.length > 1) {
2167
+ rangetxt = val[1];
2168
+ prefix = "".concat(val[0], "!");
2169
+ } else {
2170
+ rangetxt = val[0];
2171
+ }
2172
+ if (rangetxt.indexOf(":") === -1) {
2173
+ var row_3 = parseInt(rangetxt.replace(/[^0-9]/g, ""), 10);
2174
+ var col_3 = (0, _utils.columnCharToIndex)(rangetxt.replace(/[^A-Za-z]/g, ""));
2175
+ var freezonFuc = isfreezonFuc(rangetxt);
2176
+ var $row = freezonFuc[0] ? "$" : "";
2177
+ var $col = freezonFuc[1] ? "$" : "";
2178
+ if (orient === "u" && !freezonFuc[0]) {
2179
+ row_3 -= step;
2180
+ } else if (orient === "r" && !freezonFuc[1]) {
2181
+ col_3 += step;
2182
+ } else if (orient === "l" && !freezonFuc[1]) {
2183
+ col_3 -= step;
2184
+ } else if (orient === "d" && !freezonFuc[0]) {
2185
+ row_3 += step;
2186
+ }
2187
+ if (!Number.isNaN(row_3) && !Number.isNaN(col_3)) {
2188
+ return prefix + $col + (0, _utils.indexToColumnChar)(col_3) + $row + row_3;
2189
+ }
2190
+ if (!Number.isNaN(row_3)) {
2191
+ return prefix + $row + row_3;
2192
+ }
2193
+ if (!Number.isNaN(col_3)) {
2194
+ return prefix + $col + (0, _utils.indexToColumnChar)(col_3);
2195
+ }
2196
+ return txt;
2197
+ }
2198
+ rangetxt = rangetxt.split(":");
2199
+ var row = [];
2200
+ var col = [];
2201
+ row[0] = parseInt(rangetxt[0].replace(/[^0-9]/g, ""), 10);
2202
+ row[1] = parseInt(rangetxt[1].replace(/[^0-9]/g, ""), 10);
2203
+ if (row[0] > row[1]) {
2204
+ return txt;
2205
+ }
2206
+ col[0] = (0, _utils.columnCharToIndex)(rangetxt[0].replace(/[^A-Za-z]/g, ""));
2207
+ col[1] = (0, _utils.columnCharToIndex)(rangetxt[1].replace(/[^A-Za-z]/g, ""));
2208
+ if (col[0] > col[1]) {
2209
+ return txt;
2210
+ }
2211
+ var freezonFuc0 = isfreezonFuc(rangetxt[0]);
2212
+ var freezonFuc1 = isfreezonFuc(rangetxt[1]);
2213
+ var $row0 = freezonFuc0[0] ? "$" : "";
2214
+ var $col0 = freezonFuc0[1] ? "$" : "";
2215
+ var $row1 = freezonFuc1[0] ? "$" : "";
2216
+ var $col1 = freezonFuc1[1] ? "$" : "";
2217
+ if (orient === "u") {
2218
+ if (!freezonFuc0[0]) {
2219
+ row[0] -= step;
2220
+ }
2221
+ if (!freezonFuc1[0]) {
2222
+ row[1] -= step;
2223
+ }
2224
+ } else if (orient === "r") {
2225
+ if (!freezonFuc0[1]) {
2226
+ col[0] += step;
2227
+ }
2228
+ if (!freezonFuc1[1]) {
2229
+ col[1] += step;
2230
+ }
2231
+ } else if (orient === "l") {
2232
+ if (!freezonFuc0[1]) {
2233
+ col[0] -= step;
2234
+ }
2235
+ if (!freezonFuc1[1]) {
2236
+ col[1] -= step;
2237
+ }
2238
+ } else if (orient === "d") {
2239
+ if (!freezonFuc0[0]) {
2240
+ row[0] += step;
2241
+ }
2242
+ if (!freezonFuc1[0]) {
2243
+ row[1] += step;
2244
+ }
2245
+ }
2246
+ if (row[0] < 0 || col[0] < 0) {
2247
+ return _validation.error.r;
2248
+ }
2249
+ if (Number.isNaN(col[0]) && Number.isNaN(col[1])) {
2250
+ return "".concat(prefix + $row0 + row[0], ":").concat($row1).concat(row[1]);
2251
+ }
2252
+ if (Number.isNaN(row[0]) && Number.isNaN(row[1])) {
2253
+ return "".concat(prefix + $col0 + (0, _utils.indexToColumnChar)(col[0]), ":").concat($col1).concat((0, _utils.indexToColumnChar)(col[1]));
2254
+ }
2255
+ return "".concat(prefix + $col0 + (0, _utils.indexToColumnChar)(col[0]) + $row0 + row[0], ":").concat($col1).concat((0, _utils.indexToColumnChar)(col[1])).concat($row1).concat(row[1]);
2256
+ }
2257
+ function downparam(txt, step) {
2258
+ return updateparam("d", txt, step);
2259
+ }
2260
+ function upparam(txt, step) {
2261
+ return updateparam("u", txt, step);
2262
+ }
2263
+ function leftparam(txt, step) {
2264
+ return updateparam("l", txt, step);
2265
+ }
2266
+ function rightparam(txt, step) {
2267
+ return updateparam("r", txt, step);
2268
+ }
2269
+ function functionCopy(ctx, txt, mode, step) {
2270
+ if (mode == null) {
2271
+ mode = "down";
2272
+ }
2273
+ if (step == null) {
2274
+ step = 1;
2275
+ }
2276
+ if (txt.substring(0, 1) === "=") {
2277
+ txt = txt.substring(1);
2278
+ }
2279
+ var funcstack = txt.split("");
2280
+ var i = 0;
2281
+ var str = "";
2282
+ var function_str = "";
2283
+ var matchConfig = {
2284
+ bracket: 0,
2285
+ comma: 0,
2286
+ squote: 0,
2287
+ dquote: 0
2288
+ };
2289
+ while (i < funcstack.length) {
2290
+ var s = funcstack[i];
2291
+ if (s === "(" && matchConfig.dquote === 0) {
2292
+ matchConfig.bracket += 1;
2293
+ if (str.length > 0) {
2294
+ function_str += "".concat(str, "(");
2295
+ } else {
2296
+ function_str += "(";
2297
+ }
2298
+ str = "";
2299
+ } else if (s === ")" && matchConfig.dquote === 0) {
2300
+ matchConfig.bracket -= 1;
2301
+ function_str += "".concat(functionCopy(ctx, str, mode, step), ")");
2302
+ str = "";
2303
+ } else if (s === '"' && matchConfig.squote === 0) {
2304
+ if (matchConfig.dquote > 0) {
2305
+ function_str += "".concat(str, "\"");
2306
+ matchConfig.dquote -= 1;
2307
+ str = "";
2308
+ } else {
2309
+ matchConfig.dquote += 1;
2310
+ str += '"';
2311
+ }
2312
+ } else if (s === "," && matchConfig.dquote === 0) {
2313
+ function_str += "".concat(functionCopy(ctx, str, mode, step), ",");
2314
+ str = "";
2315
+ } else if (s === "&" && matchConfig.dquote === 0) {
2316
+ if (str.length > 0) {
2317
+ function_str += "".concat(functionCopy(ctx, str, mode, step), "&");
2318
+ str = "";
2319
+ } else {
2320
+ function_str += "&";
2321
+ }
2322
+ } else if (s in operatorjson && matchConfig.dquote === 0) {
2323
+ var s_next = "";
2324
+ if (i + 1 < funcstack.length) {
2325
+ s_next = funcstack[i + 1];
2326
+ }
2327
+ var p = i - 1;
2328
+ var s_pre = null;
2329
+ if (p >= 0) {
2330
+ do {
2331
+ s_pre = funcstack[p];
2332
+ p -= 1;
2333
+ } while (p >= 0 && s_pre === " ");
2334
+ }
2335
+ if (s + s_next in operatorjson) {
2336
+ if (str.length > 0) {
2337
+ function_str += functionCopy(ctx, str, mode, step) + s + s_next;
2338
+ str = "";
2339
+ } else {
2340
+ function_str += s + s_next;
2341
+ }
2342
+ i += 1;
2343
+ } else if (!/[^0-9]/.test(s_next) && s === "-" && (s_pre === "(" || s_pre == null || s_pre === "," || s_pre === " " || s_pre in operatorjson)) {
2344
+ str += s;
2345
+ } else {
2346
+ if (str.length > 0) {
2347
+ function_str += functionCopy(ctx, str, mode, step) + s;
2348
+ str = "";
2349
+ } else {
2350
+ function_str += s;
2351
+ }
2352
+ }
2353
+ } else {
2354
+ str += s;
2355
+ }
2356
+ if (i === funcstack.length - 1) {
2357
+ if (iscelldata(_lodash.default.trim(str))) {
2358
+ if (mode === "down") {
2359
+ function_str += downparam(_lodash.default.trim(str), step);
2360
+ } else if (mode === "up") {
2361
+ function_str += upparam(_lodash.default.trim(str), step);
2362
+ } else if (mode === "left") {
2363
+ function_str += leftparam(_lodash.default.trim(str), step);
2364
+ } else if (mode === "right") {
2365
+ function_str += rightparam(_lodash.default.trim(str), step);
2366
+ }
2367
+ } else {
2368
+ function_str += _lodash.default.trim(str);
2369
+ }
2370
+ }
2371
+ i += 1;
2372
+ }
2373
+ function_str = function_str.replace(/NaN/g, "");
2374
+ return function_str;
2375
+ }