@fileverse-dev/fortune-core 1.0.26 → 2.0.0

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/index.esm.js +80254 -0
  2. package/dist/index.js +80600 -0
  3. package/{es → dist/packages/core/src}/api/cell.d.ts +10 -10
  4. package/{lib → dist/packages/core/src}/api/common.d.ts +66 -71
  5. package/{es → dist/packages/core/src}/api/errors.d.ts +2 -2
  6. package/{es → dist/packages/core/src}/api/index.d.ts +9 -9
  7. package/{es → dist/packages/core/src}/api/merge.d.ts +5 -5
  8. package/{lib → dist/packages/core/src}/api/range.d.ts +22 -22
  9. package/{lib → dist/packages/core/src}/api/rowcol.d.ts +14 -14
  10. package/{lib → dist/packages/core/src}/api/sheet.d.ts +10 -10
  11. package/{lib → dist/packages/core/src}/api/workbook.d.ts +15 -15
  12. package/{lib → dist/packages/core/src}/canvas.d.ts +46 -46
  13. package/{es → dist/packages/core/src}/context.d.ts +197 -198
  14. package/{es → dist/packages/core/src}/events/copy.d.ts +2 -2
  15. package/{lib → dist/packages/core/src}/events/index.d.ts +4 -4
  16. package/{lib → dist/packages/core/src}/events/keyboard.d.ts +6 -6
  17. package/{es → dist/packages/core/src}/events/mouse.d.ts +22 -22
  18. package/{es → dist/packages/core/src}/events/paste.d.ts +3 -3
  19. package/{lib → dist/packages/core/src}/index.d.ts +10 -10
  20. package/{lib → dist/packages/core/src}/locale/en.d.ts +992 -992
  21. package/{lib → dist/packages/core/src}/locale/es.d.ts +1134 -1134
  22. package/{lib → dist/packages/core/src}/locale/hi.d.ts +1030 -1030
  23. package/{lib → dist/packages/core/src}/locale/index.d.ts +1049 -1049
  24. package/{es → dist/packages/core/src}/locale/zh.d.ts +1048 -1048
  25. package/{lib → dist/packages/core/src}/locale/zh_tw.d.ts +1187 -1187
  26. package/{lib → dist/packages/core/src}/modules/ConditionFormat.d.ts +17 -17
  27. package/{lib → dist/packages/core/src}/modules/border.d.ts +3 -3
  28. package/{lib → dist/packages/core/src}/modules/cell.d.ts +32 -32
  29. package/{es → dist/packages/core/src}/modules/clipboard.d.ts +3 -3
  30. package/{es → dist/packages/core/src}/modules/color.d.ts +1 -1
  31. package/{lib → dist/packages/core/src}/modules/comment.d.ts +97 -97
  32. package/{es → dist/packages/core/src}/modules/conditionalFormat.d.ts +2 -2
  33. package/{es → dist/packages/core/src}/modules/cursor.d.ts +3 -3
  34. package/{es → dist/packages/core/src}/modules/dataVerification.d.ts +11 -11
  35. package/{es → dist/packages/core/src}/modules/dropCell.d.ts +10 -10
  36. package/{lib → dist/packages/core/src}/modules/filter.d.ts +45 -45
  37. package/{es → dist/packages/core/src}/modules/format.d.ts +6 -6
  38. package/{lib → dist/packages/core/src}/modules/formula.d.ts +54 -54
  39. package/{es → dist/packages/core/src}/modules/freeze.d.ts +5 -5
  40. package/{es → dist/packages/core/src}/modules/hyperlink.d.ts +21 -21
  41. package/{lib → dist/packages/core/src}/modules/iframe.d.ts +12 -12
  42. package/{es → dist/packages/core/src}/modules/image.d.ts +31 -31
  43. package/{es → dist/packages/core/src}/modules/index.d.ts +36 -36
  44. package/{lib → dist/packages/core/src}/modules/inline-string.d.ts +36 -36
  45. package/{es → dist/packages/core/src}/modules/location.d.ts +6 -6
  46. package/{es → dist/packages/core/src}/modules/locationCondition.d.ts +21 -21
  47. package/{es → dist/packages/core/src}/modules/merge.d.ts +3 -3
  48. package/{es → dist/packages/core/src}/modules/mobile.d.ts +5 -5
  49. package/{lib → dist/packages/core/src}/modules/moveCells.d.ts +5 -5
  50. package/{lib → dist/packages/core/src}/modules/protection.d.ts +5 -5
  51. package/{lib → dist/packages/core/src}/modules/refresh.d.ts +3 -3
  52. package/{es → dist/packages/core/src}/modules/rowcol.d.ts +19 -19
  53. package/{lib → dist/packages/core/src}/modules/screenshot.d.ts +2 -2
  54. package/{es → dist/packages/core/src}/modules/searchReplace.d.ts +36 -36
  55. package/{lib → dist/packages/core/src}/modules/selection.d.ts +46 -46
  56. package/{es → dist/packages/core/src}/modules/sheet.d.ts +10 -10
  57. package/{es → dist/packages/core/src}/modules/sort.d.ts +7 -7
  58. package/{es → dist/packages/core/src}/modules/splitColumn.d.ts +5 -5
  59. package/{es → dist/packages/core/src}/modules/text.d.ts +10 -10
  60. package/{lib → dist/packages/core/src}/modules/toolbar.d.ts +32 -32
  61. package/{es → dist/packages/core/src}/modules/validation.d.ts +19 -19
  62. package/{es → dist/packages/core/src}/modules/zoom.d.ts +3 -3
  63. package/{es → dist/packages/core/src}/settings.d.ts +100 -100
  64. package/{es → dist/packages/core/src}/types.d.ts +371 -376
  65. package/{es → dist/packages/core/src}/utils/freeze.d.ts +7 -7
  66. package/{es → dist/packages/core/src}/utils/index.d.ts +18 -19
  67. package/{lib → dist/packages/core/src}/utils/patch.d.ts +37 -37
  68. package/dist/packages/react/src/components/ChangeColor/index.d.ts +7 -0
  69. package/dist/packages/react/src/components/ConditionFormat/ConditionRules.d.ts +6 -0
  70. package/dist/packages/react/src/components/ConditionFormat/index.d.ts +7 -0
  71. package/dist/packages/react/src/components/ContextMenu/Divider.d.ts +3 -0
  72. package/dist/packages/react/src/components/ContextMenu/FilterMenu.d.ts +3 -0
  73. package/dist/packages/react/src/components/ContextMenu/Menu.d.ts +8 -0
  74. package/dist/packages/react/src/components/ContextMenu/SheetTab.d.ts +4 -0
  75. package/dist/packages/react/src/components/ContextMenu/index.d.ts +5 -0
  76. package/dist/packages/react/src/components/CustomSort/index.d.ts +4 -0
  77. package/dist/packages/react/src/components/DataVerification/DropdownList.d.ts +4 -0
  78. package/dist/packages/react/src/components/DataVerification/RangeDialog.d.ts +4 -0
  79. package/dist/packages/react/src/components/DataVerification/getDisplayedRangeTxt.d.ts +2 -0
  80. package/dist/packages/react/src/components/DataVerification/index.d.ts +4 -0
  81. package/dist/packages/react/src/components/Dialog/index.d.ts +15 -0
  82. package/dist/packages/react/src/components/DuneChartsInputModal/DuneChartsInputModal.d.ts +11 -0
  83. package/dist/packages/react/src/components/DunePreview/DunePreview.d.ts +13 -0
  84. package/dist/packages/react/src/components/FilterOption/index.d.ts +5 -0
  85. package/dist/packages/react/src/components/FormatSearch/index.d.ts +6 -0
  86. package/dist/packages/react/src/components/FormulaSearch/index.d.ts +5 -0
  87. package/dist/packages/react/src/components/FxEditor/NameBox.d.ts +3 -0
  88. package/dist/packages/react/src/components/FxEditor/index.d.ts +4 -0
  89. package/dist/packages/react/src/components/IFrameBoxs/iFrameBoxs.d.ts +4 -0
  90. package/dist/packages/react/src/components/ImgBoxs/index.d.ts +3 -0
  91. package/dist/packages/react/src/components/LinkEidtCard/index.d.ts +5 -0
  92. package/dist/packages/react/src/components/LocationCondition/index.d.ts +3 -0
  93. package/dist/packages/react/src/components/MessageBox/index.d.ts +9 -0
  94. package/dist/packages/react/src/components/NotationBoxes/index.d.ts +3 -0
  95. package/dist/packages/react/src/components/ResetColumnWidth/index.d.ts +2 -0
  96. package/dist/packages/react/src/components/SVGDefines.d.ts +5 -0
  97. package/dist/packages/react/src/components/SVGIcon.d.ts +9 -0
  98. package/dist/packages/react/src/components/SearchReplace/index.d.ts +6 -0
  99. package/dist/packages/react/src/components/Sheet/index.d.ts +8 -0
  100. package/dist/packages/react/src/components/SheetList/SheetHiddenButton.d.ts +8 -0
  101. package/dist/packages/react/src/components/SheetList/SheetListItem.d.ts +9 -0
  102. package/dist/packages/react/src/components/SheetList/index.d.ts +4 -0
  103. package/dist/packages/react/src/components/SheetOverlay/ColumnHeader.d.ts +3 -0
  104. package/dist/packages/react/src/components/SheetOverlay/ContentEditable.d.ts +11 -0
  105. package/dist/packages/react/src/components/SheetOverlay/FormulaHint/index.d.ts +4 -0
  106. package/dist/packages/react/src/components/SheetOverlay/FormulaSearch/constant.d.ts +63 -0
  107. package/dist/packages/react/src/components/SheetOverlay/FormulaSearch/index.d.ts +4 -0
  108. package/dist/packages/react/src/components/SheetOverlay/InputBox.d.ts +3 -0
  109. package/dist/packages/react/src/components/SheetOverlay/RowHeader.d.ts +3 -0
  110. package/dist/packages/react/src/components/SheetOverlay/ScrollBar/index.d.ts +7 -0
  111. package/dist/packages/react/src/components/SheetOverlay/index.d.ts +4 -0
  112. package/dist/packages/react/src/components/SheetTab/SheetItem.d.ts +8 -0
  113. package/dist/packages/react/src/components/SheetTab/index.d.ts +4 -0
  114. package/dist/packages/react/src/components/SplitColumn/index.d.ts +3 -0
  115. package/dist/packages/react/src/components/Toolbar/Button.d.ts +12 -0
  116. package/dist/packages/react/src/components/Toolbar/ColorPicker.d.ts +6 -0
  117. package/dist/packages/react/src/components/Toolbar/Combo.d.ts +12 -0
  118. package/dist/packages/react/src/components/Toolbar/CustomBorder.d.ts +7 -0
  119. package/dist/packages/react/src/components/Toolbar/CustomButton.d.ts +11 -0
  120. package/dist/packages/react/src/components/Toolbar/CustomColor.d.ts +8 -0
  121. package/dist/packages/react/src/components/Toolbar/CustomIcon.d.ts +9 -0
  122. package/dist/packages/react/src/components/Toolbar/Divider.d.ts +4 -0
  123. package/dist/packages/react/src/components/Toolbar/MoreItemsContainer.d.ts +6 -0
  124. package/dist/packages/react/src/components/Toolbar/Select.d.ts +14 -0
  125. package/dist/packages/react/src/components/Toolbar/index.d.ts +10 -0
  126. package/dist/packages/react/src/components/Workbook/api.d.ts +1177 -0
  127. package/dist/packages/react/src/components/Workbook/index.d.ts +1185 -0
  128. package/dist/packages/react/src/components/ZoomControl/index.d.ts +4 -0
  129. package/dist/packages/react/src/components/index.d.ts +4 -0
  130. package/dist/packages/react/src/constants.d.ts +1 -0
  131. package/dist/packages/react/src/context/index.d.ts +25 -0
  132. package/dist/packages/react/src/context/modal.d.ts +10 -0
  133. package/dist/packages/react/src/hooks/useAlert.d.ts +4 -0
  134. package/dist/packages/react/src/hooks/useDialog.d.ts +5 -0
  135. package/dist/packages/react/src/hooks/useOutsideClick.d.ts +2 -0
  136. package/dist/packages/react/src/hooks/usePrevious.d.ts +2 -0
  137. package/dist/packages/react/src/index.d.ts +1 -0
  138. package/dist/packages/react/src/utils/datepickerStyles.d.ts +2 -0
  139. package/dist/stories/API.stories.d.ts +1210 -0
  140. package/dist/stories/Collabration.stories.d.ts +2359 -0
  141. package/dist/stories/Features.stories.d.ts +9430 -0
  142. package/dist/stories/data/cell.d.ts +983 -0
  143. package/dist/stories/data/dataVerification.d.ts +131 -0
  144. package/dist/stories/data/empty.d.ts +10 -0
  145. package/dist/stories/data/formula.d.ts +362 -0
  146. package/dist/stories/data/freeze.d.ts +34 -0
  147. package/dist/stories/data/protected.d.ts +40 -0
  148. package/dist/stories/utils.d.ts +1 -0
  149. package/package.json +6 -7
  150. package/es/api/cell.js +0 -204
  151. package/es/api/common.d.ts +0 -71
  152. package/es/api/common.js +0 -79
  153. package/es/api/errors.js +0 -2
  154. package/es/api/index.js +0 -8
  155. package/es/api/merge.js +0 -15
  156. package/es/api/range.d.ts +0 -22
  157. package/es/api/range.js +0 -123
  158. package/es/api/rowcol.d.ts +0 -14
  159. package/es/api/rowcol.js +0 -207
  160. package/es/api/sheet.d.ts +0 -10
  161. package/es/api/sheet.js +0 -128
  162. package/es/api/workbook.d.ts +0 -15
  163. package/es/api/workbook.js +0 -85
  164. package/es/canvas.d.ts +0 -46
  165. package/es/canvas.js +0 -1350
  166. package/es/context.js +0 -381
  167. package/es/events/copy.js +0 -78
  168. package/es/events/index.d.ts +0 -4
  169. package/es/events/index.js +0 -4
  170. package/es/events/keyboard.d.ts +0 -6
  171. package/es/events/keyboard.js +0 -332
  172. package/es/events/mouse.js +0 -1725
  173. package/es/events/paste.js +0 -1378
  174. package/es/index.d.ts +0 -10
  175. package/es/index.js +0 -10
  176. package/es/locale/en.d.ts +0 -992
  177. package/es/locale/en.js +0 -10564
  178. package/es/locale/es.d.ts +0 -1134
  179. package/es/locale/es.js +0 -10010
  180. package/es/locale/hi.d.ts +0 -1030
  181. package/es/locale/hi.js +0 -10550
  182. package/es/locale/index.d.ts +0 -1049
  183. package/es/locale/index.js +0 -23
  184. package/es/locale/zh.js +0 -10568
  185. package/es/locale/zh_tw.d.ts +0 -1187
  186. package/es/locale/zh_tw.js +0 -10072
  187. package/es/modules/ConditionFormat.d.ts +0 -17
  188. package/es/modules/ConditionFormat.js +0 -1258
  189. package/es/modules/border.d.ts +0 -3
  190. package/es/modules/border.js +0 -1240
  191. package/es/modules/cell.d.ts +0 -32
  192. package/es/modules/cell.js +0 -1055
  193. package/es/modules/clipboard.js +0 -36
  194. package/es/modules/color.js +0 -1
  195. package/es/modules/comment.d.ts +0 -97
  196. package/es/modules/comment.js +0 -597
  197. package/es/modules/conditionalFormat.js +0 -441
  198. package/es/modules/cursor.js +0 -62
  199. package/es/modules/dataVerification.js +0 -701
  200. package/es/modules/dropCell.js +0 -2267
  201. package/es/modules/filter.d.ts +0 -45
  202. package/es/modules/filter.js +0 -434
  203. package/es/modules/format.js +0 -323
  204. package/es/modules/formula.d.ts +0 -54
  205. package/es/modules/formula.js +0 -2301
  206. package/es/modules/freeze.js +0 -148
  207. package/es/modules/hyperlink.js +0 -216
  208. package/es/modules/iframe.d.ts +0 -12
  209. package/es/modules/iframe.js +0 -220
  210. package/es/modules/image.js +0 -253
  211. package/es/modules/index.js +0 -36
  212. package/es/modules/inline-string.d.ts +0 -36
  213. package/es/modules/inline-string.js +0 -437
  214. package/es/modules/location.js +0 -46
  215. package/es/modules/locationCondition.js +0 -218
  216. package/es/modules/merge.js +0 -216
  217. package/es/modules/mobile.js +0 -33
  218. package/es/modules/moveCells.d.ts +0 -5
  219. package/es/modules/moveCells.js +0 -348
  220. package/es/modules/protection.d.ts +0 -5
  221. package/es/modules/protection.js +0 -96
  222. package/es/modules/refresh.d.ts +0 -3
  223. package/es/modules/refresh.js +0 -34
  224. package/es/modules/rowcol.js +0 -1922
  225. package/es/modules/screenshot.d.ts +0 -2
  226. package/es/modules/screenshot.js +0 -90
  227. package/es/modules/searchReplace.js +0 -388
  228. package/es/modules/selection.d.ts +0 -46
  229. package/es/modules/selection.js +0 -1674
  230. package/es/modules/sheet.js +0 -237
  231. package/es/modules/sort.js +0 -134
  232. package/es/modules/splitColumn.js +0 -126
  233. package/es/modules/ssf.js +0 -1533
  234. package/es/modules/text.js +0 -1207
  235. package/es/modules/toolbar.d.ts +0 -32
  236. package/es/modules/toolbar.js +0 -970
  237. package/es/modules/validation.js +0 -190
  238. package/es/modules/zoom.js +0 -29
  239. package/es/settings.js +0 -36
  240. package/es/types.js +0 -1
  241. package/es/utils/freeze.js +0 -86
  242. package/es/utils/index.js +0 -198
  243. package/es/utils/patch.d.ts +0 -37
  244. package/es/utils/patch.js +0 -381
  245. package/lib/api/cell.d.ts +0 -10
  246. package/lib/api/cell.js +0 -215
  247. package/lib/api/common.js +0 -88
  248. package/lib/api/errors.d.ts +0 -2
  249. package/lib/api/errors.js +0 -8
  250. package/lib/api/index.d.ts +0 -9
  251. package/lib/api/index.js +0 -101
  252. package/lib/api/merge.d.ts +0 -5
  253. package/lib/api/merge.js +0 -22
  254. package/lib/api/range.js +0 -138
  255. package/lib/api/rowcol.js +0 -222
  256. package/lib/api/sheet.js +0 -145
  257. package/lib/api/workbook.js +0 -98
  258. package/lib/canvas.js +0 -1356
  259. package/lib/context.d.ts +0 -198
  260. package/lib/context.js +0 -393
  261. package/lib/events/copy.d.ts +0 -2
  262. package/lib/events/copy.js +0 -85
  263. package/lib/events/index.js +0 -49
  264. package/lib/events/keyboard.js +0 -342
  265. package/lib/events/mouse.d.ts +0 -22
  266. package/lib/events/mouse.js +0 -1744
  267. package/lib/events/paste.d.ts +0 -3
  268. package/lib/events/paste.js +0 -1386
  269. package/lib/index.js +0 -109
  270. package/lib/locale/en.js +0 -10570
  271. package/lib/locale/es.js +0 -10016
  272. package/lib/locale/hi.js +0 -10556
  273. package/lib/locale/index.js +0 -29
  274. package/lib/locale/zh.d.ts +0 -1048
  275. package/lib/locale/zh.js +0 -10574
  276. package/lib/locale/zh_tw.js +0 -10078
  277. package/lib/modules/ConditionFormat.js +0 -1273
  278. package/lib/modules/border.js +0 -1248
  279. package/lib/modules/cell.js +0 -1085
  280. package/lib/modules/clipboard.d.ts +0 -3
  281. package/lib/modules/clipboard.js +0 -42
  282. package/lib/modules/color.d.ts +0 -1
  283. package/lib/modules/color.js +0 -7
  284. package/lib/modules/comment.js +0 -625
  285. package/lib/modules/conditionalFormat.d.ts +0 -2
  286. package/lib/modules/conditionalFormat.js +0 -447
  287. package/lib/modules/cursor.d.ts +0 -3
  288. package/lib/modules/cursor.js +0 -70
  289. package/lib/modules/dataVerification.d.ts +0 -11
  290. package/lib/modules/dataVerification.js +0 -716
  291. package/lib/modules/dropCell.d.ts +0 -10
  292. package/lib/modules/dropCell.js +0 -2283
  293. package/lib/modules/filter.js +0 -448
  294. package/lib/modules/format.d.ts +0 -6
  295. package/lib/modules/format.js +0 -334
  296. package/lib/modules/formula.js +0 -2330
  297. package/lib/modules/freeze.d.ts +0 -5
  298. package/lib/modules/freeze.js +0 -158
  299. package/lib/modules/hyperlink.d.ts +0 -21
  300. package/lib/modules/hyperlink.js +0 -232
  301. package/lib/modules/iframe.js +0 -236
  302. package/lib/modules/image.d.ts +0 -31
  303. package/lib/modules/image.js +0 -272
  304. package/lib/modules/index.d.ts +0 -36
  305. package/lib/modules/index.js +0 -401
  306. package/lib/modules/inline-string.js +0 -452
  307. package/lib/modules/location.d.ts +0 -6
  308. package/lib/modules/location.js +0 -57
  309. package/lib/modules/locationCondition.d.ts +0 -21
  310. package/lib/modules/locationCondition.js +0 -229
  311. package/lib/modules/merge.d.ts +0 -3
  312. package/lib/modules/merge.js +0 -223
  313. package/lib/modules/mobile.d.ts +0 -5
  314. package/lib/modules/mobile.js +0 -41
  315. package/lib/modules/moveCells.js +0 -357
  316. package/lib/modules/protection.js +0 -106
  317. package/lib/modules/refresh.js +0 -40
  318. package/lib/modules/rowcol.d.ts +0 -19
  319. package/lib/modules/rowcol.js +0 -1935
  320. package/lib/modules/screenshot.js +0 -96
  321. package/lib/modules/searchReplace.d.ts +0 -36
  322. package/lib/modules/searchReplace.js +0 -402
  323. package/lib/modules/selection.js +0 -1703
  324. package/lib/modules/sheet.d.ts +0 -10
  325. package/lib/modules/sheet.js +0 -250
  326. package/lib/modules/sort.d.ts +0 -7
  327. package/lib/modules/sort.js +0 -143
  328. package/lib/modules/splitColumn.d.ts +0 -5
  329. package/lib/modules/splitColumn.js +0 -136
  330. package/lib/modules/ssf.js +0 -1539
  331. package/lib/modules/text.d.ts +0 -10
  332. package/lib/modules/text.js +0 -1221
  333. package/lib/modules/toolbar.js +0 -1003
  334. package/lib/modules/validation.d.ts +0 -19
  335. package/lib/modules/validation.js +0 -205
  336. package/lib/modules/zoom.d.ts +0 -3
  337. package/lib/modules/zoom.js +0 -36
  338. package/lib/settings.d.ts +0 -100
  339. package/lib/settings.js +0 -42
  340. package/lib/types.d.ts +0 -376
  341. package/lib/types.js +0 -5
  342. package/lib/utils/freeze.d.ts +0 -7
  343. package/lib/utils/freeze.js +0 -92
  344. package/lib/utils/index.d.ts +0 -19
  345. package/lib/utils/index.js +0 -258
  346. package/lib/utils/patch.js +0 -392
@@ -1,2330 +0,0 @@
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
- }