@fileverse-dev/fortune-core 1.0.5 → 1.0.7

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