@gridsheet/react-core 0.12.0-rc.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 (383) hide show
  1. package/LICENSE +190 -0
  2. package/README.md +84 -0
  3. package/dist/components/Cell.d.ts +8 -0
  4. package/dist/components/Cell.d.ts.map +1 -0
  5. package/dist/components/Cell.js +195 -0
  6. package/dist/components/Cell.js.map +1 -0
  7. package/dist/components/ContextMenu.d.ts +3 -0
  8. package/dist/components/ContextMenu.d.ts.map +1 -0
  9. package/dist/components/ContextMenu.js +207 -0
  10. package/dist/components/ContextMenu.js.map +1 -0
  11. package/dist/components/Editor.d.ts +3 -0
  12. package/dist/components/Editor.d.ts.map +1 -0
  13. package/dist/components/Editor.js +304 -0
  14. package/dist/components/Editor.js.map +1 -0
  15. package/dist/components/Emitter.d.ts +9 -0
  16. package/dist/components/Emitter.d.ts.map +1 -0
  17. package/dist/components/Emitter.js +26 -0
  18. package/dist/components/Emitter.js.map +1 -0
  19. package/dist/components/GridSheet.d.ts +4 -0
  20. package/dist/components/GridSheet.d.ts.map +1 -0
  21. package/dist/components/GridSheet.js +110 -0
  22. package/dist/components/GridSheet.js.map +1 -0
  23. package/dist/components/HeaderLeftCell.d.ts +7 -0
  24. package/dist/components/HeaderLeftCell.d.ts.map +1 -0
  25. package/dist/components/HeaderLeftCell.js +67 -0
  26. package/dist/components/HeaderLeftCell.js.map +1 -0
  27. package/dist/components/HeaderTopCell.d.ts +7 -0
  28. package/dist/components/HeaderTopCell.d.ts.map +1 -0
  29. package/dist/components/HeaderTopCell.js +68 -0
  30. package/dist/components/HeaderTopCell.js.map +1 -0
  31. package/dist/components/Resizer.d.ts +3 -0
  32. package/dist/components/Resizer.d.ts.map +1 -0
  33. package/dist/components/Resizer.js +83 -0
  34. package/dist/components/Resizer.js.map +1 -0
  35. package/dist/components/SearchBox.d.ts +3 -0
  36. package/dist/components/SearchBox.d.ts.map +1 -0
  37. package/dist/components/SearchBox.js +52 -0
  38. package/dist/components/SearchBox.js.map +1 -0
  39. package/dist/components/StoreInitializer.d.ts +4 -0
  40. package/dist/components/StoreInitializer.d.ts.map +1 -0
  41. package/dist/components/StoreInitializer.js +68 -0
  42. package/dist/components/StoreInitializer.js.map +1 -0
  43. package/dist/components/Tabular.d.ts +9 -0
  44. package/dist/components/Tabular.d.ts.map +1 -0
  45. package/dist/components/Tabular.js +84 -0
  46. package/dist/components/Tabular.js.map +1 -0
  47. package/dist/constants.d.ts +18 -0
  48. package/dist/constants.d.ts.map +1 -0
  49. package/dist/constants.js +21 -0
  50. package/dist/constants.js.map +1 -0
  51. package/dist/formula/evaluator.d.ts +91 -0
  52. package/dist/formula/evaluator.d.ts.map +1 -0
  53. package/dist/formula/evaluator.js +541 -0
  54. package/dist/formula/evaluator.js.map +1 -0
  55. package/dist/formula/functions/__base.d.ts +23 -0
  56. package/dist/formula/functions/__base.d.ts.map +1 -0
  57. package/dist/formula/functions/__base.js +16 -0
  58. package/dist/formula/functions/__base.js.map +1 -0
  59. package/dist/formula/functions/__utils.d.ts +6 -0
  60. package/dist/formula/functions/__utils.d.ts.map +1 -0
  61. package/dist/formula/functions/__utils.js +102 -0
  62. package/dist/formula/functions/__utils.js.map +1 -0
  63. package/dist/formula/functions/abs.d.ts +12 -0
  64. package/dist/formula/functions/abs.d.ts.map +1 -0
  65. package/dist/formula/functions/abs.js +21 -0
  66. package/dist/formula/functions/abs.js.map +1 -0
  67. package/dist/formula/functions/abs.spec.d.ts +2 -0
  68. package/dist/formula/functions/abs.spec.d.ts.map +1 -0
  69. package/dist/formula/functions/abs.spec.js +29 -0
  70. package/dist/formula/functions/abs.spec.js.map +1 -0
  71. package/dist/formula/functions/acos.d.ts +12 -0
  72. package/dist/formula/functions/acos.d.ts.map +1 -0
  73. package/dist/formula/functions/acos.js +29 -0
  74. package/dist/formula/functions/acos.js.map +1 -0
  75. package/dist/formula/functions/add.d.ts +13 -0
  76. package/dist/formula/functions/add.d.ts.map +1 -0
  77. package/dist/formula/functions/add.js +50 -0
  78. package/dist/formula/functions/add.js.map +1 -0
  79. package/dist/formula/functions/and.d.ts +19 -0
  80. package/dist/formula/functions/and.d.ts.map +1 -0
  81. package/dist/formula/functions/and.js +28 -0
  82. package/dist/formula/functions/and.js.map +1 -0
  83. package/dist/formula/functions/asin.d.ts +12 -0
  84. package/dist/formula/functions/asin.d.ts.map +1 -0
  85. package/dist/formula/functions/asin.js +29 -0
  86. package/dist/formula/functions/asin.js.map +1 -0
  87. package/dist/formula/functions/atan.d.ts +12 -0
  88. package/dist/formula/functions/atan.d.ts.map +1 -0
  89. package/dist/formula/functions/atan.js +26 -0
  90. package/dist/formula/functions/atan.js.map +1 -0
  91. package/dist/formula/functions/atan2.d.ts +12 -0
  92. package/dist/formula/functions/atan2.d.ts.map +1 -0
  93. package/dist/formula/functions/atan2.js +32 -0
  94. package/dist/formula/functions/atan2.js.map +1 -0
  95. package/dist/formula/functions/average.d.ts +19 -0
  96. package/dist/formula/functions/average.d.ts.map +1 -0
  97. package/dist/formula/functions/average.js +41 -0
  98. package/dist/formula/functions/average.js.map +1 -0
  99. package/dist/formula/functions/col.d.ts +14 -0
  100. package/dist/formula/functions/col.d.ts.map +1 -0
  101. package/dist/formula/functions/col.js +30 -0
  102. package/dist/formula/functions/col.js.map +1 -0
  103. package/dist/formula/functions/concat.d.ts +12 -0
  104. package/dist/formula/functions/concat.d.ts.map +1 -0
  105. package/dist/formula/functions/concat.js +27 -0
  106. package/dist/formula/functions/concat.js.map +1 -0
  107. package/dist/formula/functions/concatenate.d.ts +19 -0
  108. package/dist/formula/functions/concatenate.d.ts.map +1 -0
  109. package/dist/formula/functions/concatenate.js +25 -0
  110. package/dist/formula/functions/concatenate.js.map +1 -0
  111. package/dist/formula/functions/cos.d.ts +12 -0
  112. package/dist/formula/functions/cos.d.ts.map +1 -0
  113. package/dist/formula/functions/cos.js +26 -0
  114. package/dist/formula/functions/cos.js.map +1 -0
  115. package/dist/formula/functions/count.d.ts +19 -0
  116. package/dist/formula/functions/count.d.ts.map +1 -0
  117. package/dist/formula/functions/count.js +35 -0
  118. package/dist/formula/functions/count.js.map +1 -0
  119. package/dist/formula/functions/counta.d.ts +19 -0
  120. package/dist/formula/functions/counta.d.ts.map +1 -0
  121. package/dist/formula/functions/counta.js +35 -0
  122. package/dist/formula/functions/counta.js.map +1 -0
  123. package/dist/formula/functions/countif.d.ts +13 -0
  124. package/dist/formula/functions/countif.d.ts.map +1 -0
  125. package/dist/formula/functions/countif.js +30 -0
  126. package/dist/formula/functions/countif.js.map +1 -0
  127. package/dist/formula/functions/divide.d.ts +12 -0
  128. package/dist/formula/functions/divide.d.ts.map +1 -0
  129. package/dist/formula/functions/divide.js +33 -0
  130. package/dist/formula/functions/divide.js.map +1 -0
  131. package/dist/formula/functions/eq.d.ts +12 -0
  132. package/dist/formula/functions/eq.d.ts.map +1 -0
  133. package/dist/formula/functions/eq.js +25 -0
  134. package/dist/formula/functions/eq.js.map +1 -0
  135. package/dist/formula/functions/exp.d.ts +12 -0
  136. package/dist/formula/functions/exp.d.ts.map +1 -0
  137. package/dist/formula/functions/exp.js +28 -0
  138. package/dist/formula/functions/exp.js.map +1 -0
  139. package/dist/formula/functions/gt.d.ts +12 -0
  140. package/dist/formula/functions/gt.d.ts.map +1 -0
  141. package/dist/formula/functions/gt.js +27 -0
  142. package/dist/formula/functions/gt.js.map +1 -0
  143. package/dist/formula/functions/gte.d.ts +12 -0
  144. package/dist/formula/functions/gte.d.ts.map +1 -0
  145. package/dist/formula/functions/gte.js +27 -0
  146. package/dist/formula/functions/gte.js.map +1 -0
  147. package/dist/formula/functions/hlookup.d.ts +18 -0
  148. package/dist/formula/functions/hlookup.d.ts.map +1 -0
  149. package/dist/formula/functions/hlookup.js +74 -0
  150. package/dist/formula/functions/hlookup.js.map +1 -0
  151. package/dist/formula/functions/if.d.ts +17 -0
  152. package/dist/formula/functions/if.d.ts.map +1 -0
  153. package/dist/formula/functions/if.js +36 -0
  154. package/dist/formula/functions/if.js.map +1 -0
  155. package/dist/formula/functions/iferror.d.ts +20 -0
  156. package/dist/formula/functions/iferror.d.ts.map +1 -0
  157. package/dist/formula/functions/iferror.js +41 -0
  158. package/dist/formula/functions/iferror.js.map +1 -0
  159. package/dist/formula/functions/iferror.spec.d.ts +2 -0
  160. package/dist/formula/functions/iferror.spec.d.ts.map +1 -0
  161. package/dist/formula/functions/iferror.spec.js +61 -0
  162. package/dist/formula/functions/iferror.spec.js.map +1 -0
  163. package/dist/formula/functions/len.d.ts +12 -0
  164. package/dist/formula/functions/len.d.ts.map +1 -0
  165. package/dist/formula/functions/len.js +26 -0
  166. package/dist/formula/functions/len.js.map +1 -0
  167. package/dist/formula/functions/lenb.d.ts +12 -0
  168. package/dist/formula/functions/lenb.d.ts.map +1 -0
  169. package/dist/formula/functions/lenb.js +26 -0
  170. package/dist/formula/functions/lenb.js.map +1 -0
  171. package/dist/formula/functions/ln.d.ts +12 -0
  172. package/dist/formula/functions/ln.d.ts.map +1 -0
  173. package/dist/formula/functions/ln.js +29 -0
  174. package/dist/formula/functions/ln.js.map +1 -0
  175. package/dist/formula/functions/log.d.ts +12 -0
  176. package/dist/formula/functions/log.d.ts.map +1 -0
  177. package/dist/formula/functions/log.js +35 -0
  178. package/dist/formula/functions/log.js.map +1 -0
  179. package/dist/formula/functions/log10.d.ts +12 -0
  180. package/dist/formula/functions/log10.d.ts.map +1 -0
  181. package/dist/formula/functions/log10.js +29 -0
  182. package/dist/formula/functions/log10.js.map +1 -0
  183. package/dist/formula/functions/lt.d.ts +12 -0
  184. package/dist/formula/functions/lt.d.ts.map +1 -0
  185. package/dist/formula/functions/lt.js +27 -0
  186. package/dist/formula/functions/lt.js.map +1 -0
  187. package/dist/formula/functions/lte.d.ts +12 -0
  188. package/dist/formula/functions/lte.d.ts.map +1 -0
  189. package/dist/formula/functions/lte.js +27 -0
  190. package/dist/formula/functions/lte.js.map +1 -0
  191. package/dist/formula/functions/max.d.ts +19 -0
  192. package/dist/formula/functions/max.d.ts.map +1 -0
  193. package/dist/formula/functions/max.js +44 -0
  194. package/dist/formula/functions/max.js.map +1 -0
  195. package/dist/formula/functions/min.d.ts +19 -0
  196. package/dist/formula/functions/min.d.ts.map +1 -0
  197. package/dist/formula/functions/min.js +44 -0
  198. package/dist/formula/functions/min.js.map +1 -0
  199. package/dist/formula/functions/minus.d.ts +13 -0
  200. package/dist/formula/functions/minus.d.ts.map +1 -0
  201. package/dist/formula/functions/minus.js +50 -0
  202. package/dist/formula/functions/minus.js.map +1 -0
  203. package/dist/formula/functions/mod.d.ts +12 -0
  204. package/dist/formula/functions/mod.d.ts.map +1 -0
  205. package/dist/formula/functions/mod.js +31 -0
  206. package/dist/formula/functions/mod.js.map +1 -0
  207. package/dist/formula/functions/mod.spec.d.ts +2 -0
  208. package/dist/formula/functions/mod.spec.d.ts.map +1 -0
  209. package/dist/formula/functions/mod.spec.js +52 -0
  210. package/dist/formula/functions/mod.spec.js.map +1 -0
  211. package/dist/formula/functions/multiply.d.ts +12 -0
  212. package/dist/formula/functions/multiply.d.ts.map +1 -0
  213. package/dist/formula/functions/multiply.js +27 -0
  214. package/dist/formula/functions/multiply.js.map +1 -0
  215. package/dist/formula/functions/ne.d.ts +12 -0
  216. package/dist/formula/functions/ne.d.ts.map +1 -0
  217. package/dist/formula/functions/ne.js +25 -0
  218. package/dist/formula/functions/ne.js.map +1 -0
  219. package/dist/formula/functions/not.d.ts +12 -0
  220. package/dist/formula/functions/not.d.ts.map +1 -0
  221. package/dist/formula/functions/not.js +30 -0
  222. package/dist/formula/functions/not.js.map +1 -0
  223. package/dist/formula/functions/now.d.ts +9 -0
  224. package/dist/formula/functions/now.d.ts.map +1 -0
  225. package/dist/formula/functions/now.js +21 -0
  226. package/dist/formula/functions/now.js.map +1 -0
  227. package/dist/formula/functions/or.d.ts +19 -0
  228. package/dist/formula/functions/or.d.ts.map +1 -0
  229. package/dist/formula/functions/or.js +28 -0
  230. package/dist/formula/functions/or.js.map +1 -0
  231. package/dist/formula/functions/pi.d.ts +9 -0
  232. package/dist/formula/functions/pi.d.ts.map +1 -0
  233. package/dist/formula/functions/pi.js +19 -0
  234. package/dist/formula/functions/pi.js.map +1 -0
  235. package/dist/formula/functions/power.d.ts +12 -0
  236. package/dist/formula/functions/power.d.ts.map +1 -0
  237. package/dist/formula/functions/power.js +24 -0
  238. package/dist/formula/functions/power.js.map +1 -0
  239. package/dist/formula/functions/product.d.ts +19 -0
  240. package/dist/formula/functions/product.d.ts.map +1 -0
  241. package/dist/formula/functions/product.js +37 -0
  242. package/dist/formula/functions/product.js.map +1 -0
  243. package/dist/formula/functions/radians.d.ts +12 -0
  244. package/dist/formula/functions/radians.d.ts.map +1 -0
  245. package/dist/formula/functions/radians.js +26 -0
  246. package/dist/formula/functions/radians.js.map +1 -0
  247. package/dist/formula/functions/rand.d.ts +9 -0
  248. package/dist/formula/functions/rand.d.ts.map +1 -0
  249. package/dist/formula/functions/rand.js +19 -0
  250. package/dist/formula/functions/rand.js.map +1 -0
  251. package/dist/formula/functions/round.d.ts +17 -0
  252. package/dist/formula/functions/round.d.ts.map +1 -0
  253. package/dist/formula/functions/round.js +34 -0
  254. package/dist/formula/functions/round.js.map +1 -0
  255. package/dist/formula/functions/rounddown.d.ts +17 -0
  256. package/dist/formula/functions/rounddown.d.ts.map +1 -0
  257. package/dist/formula/functions/rounddown.js +34 -0
  258. package/dist/formula/functions/rounddown.js.map +1 -0
  259. package/dist/formula/functions/roundup.d.ts +17 -0
  260. package/dist/formula/functions/roundup.d.ts.map +1 -0
  261. package/dist/formula/functions/roundup.js +34 -0
  262. package/dist/formula/functions/roundup.js.map +1 -0
  263. package/dist/formula/functions/row.d.ts +14 -0
  264. package/dist/formula/functions/row.d.ts.map +1 -0
  265. package/dist/formula/functions/row.js +30 -0
  266. package/dist/formula/functions/row.js.map +1 -0
  267. package/dist/formula/functions/sin.d.ts +12 -0
  268. package/dist/formula/functions/sin.d.ts.map +1 -0
  269. package/dist/formula/functions/sin.js +26 -0
  270. package/dist/formula/functions/sin.js.map +1 -0
  271. package/dist/formula/functions/sqrt.d.ts +12 -0
  272. package/dist/formula/functions/sqrt.d.ts.map +1 -0
  273. package/dist/formula/functions/sqrt.js +29 -0
  274. package/dist/formula/functions/sqrt.js.map +1 -0
  275. package/dist/formula/functions/sum.d.ts +19 -0
  276. package/dist/formula/functions/sum.d.ts.map +1 -0
  277. package/dist/formula/functions/sum.js +44 -0
  278. package/dist/formula/functions/sum.js.map +1 -0
  279. package/dist/formula/functions/sum.spec.d.ts +2 -0
  280. package/dist/formula/functions/sum.spec.d.ts.map +1 -0
  281. package/dist/formula/functions/sum.spec.js +40 -0
  282. package/dist/formula/functions/sum.spec.js.map +1 -0
  283. package/dist/formula/functions/sumif.d.ts +18 -0
  284. package/dist/formula/functions/sumif.d.ts.map +1 -0
  285. package/dist/formula/functions/sumif.js +59 -0
  286. package/dist/formula/functions/sumif.js.map +1 -0
  287. package/dist/formula/functions/tan.d.ts +12 -0
  288. package/dist/formula/functions/tan.d.ts.map +1 -0
  289. package/dist/formula/functions/tan.js +26 -0
  290. package/dist/formula/functions/tan.js.map +1 -0
  291. package/dist/formula/functions/uminus.d.ts +12 -0
  292. package/dist/formula/functions/uminus.d.ts.map +1 -0
  293. package/dist/formula/functions/uminus.js +23 -0
  294. package/dist/formula/functions/uminus.js.map +1 -0
  295. package/dist/formula/functions/vlookup.d.ts +18 -0
  296. package/dist/formula/functions/vlookup.d.ts.map +1 -0
  297. package/dist/formula/functions/vlookup.js +74 -0
  298. package/dist/formula/functions/vlookup.js.map +1 -0
  299. package/dist/formula/mapping.d.ts +114 -0
  300. package/dist/formula/mapping.d.ts.map +1 -0
  301. package/dist/formula/mapping.js +114 -0
  302. package/dist/formula/mapping.js.map +1 -0
  303. package/dist/formula/solver.d.ts +12 -0
  304. package/dist/formula/solver.d.ts.map +1 -0
  305. package/dist/formula/solver.js +64 -0
  306. package/dist/formula/solver.js.map +1 -0
  307. package/dist/index.d.ts +12 -0
  308. package/dist/index.d.ts.map +1 -0
  309. package/dist/index.js +11 -0
  310. package/dist/index.js.map +1 -0
  311. package/dist/lib/autofill.d.ts +17 -0
  312. package/dist/lib/autofill.d.ts.map +1 -0
  313. package/dist/lib/autofill.js +389 -0
  314. package/dist/lib/autofill.js.map +1 -0
  315. package/dist/lib/clipboard.d.ts +3 -0
  316. package/dist/lib/clipboard.d.ts.map +1 -0
  317. package/dist/lib/clipboard.js +45 -0
  318. package/dist/lib/clipboard.js.map +1 -0
  319. package/dist/lib/converters.d.ts +10 -0
  320. package/dist/lib/converters.d.ts.map +1 -0
  321. package/dist/lib/converters.js +127 -0
  322. package/dist/lib/converters.js.map +1 -0
  323. package/dist/lib/structs.d.ts +60 -0
  324. package/dist/lib/structs.d.ts.map +1 -0
  325. package/dist/lib/structs.js +251 -0
  326. package/dist/lib/structs.js.map +1 -0
  327. package/dist/lib/table.d.ts +303 -0
  328. package/dist/lib/table.d.ts.map +1 -0
  329. package/dist/lib/table.js +989 -0
  330. package/dist/lib/table.js.map +1 -0
  331. package/dist/lib/time.d.ts +14 -0
  332. package/dist/lib/time.d.ts.map +1 -0
  333. package/dist/lib/time.js +60 -0
  334. package/dist/lib/time.js.map +1 -0
  335. package/dist/lib/virtualization.d.ts +30 -0
  336. package/dist/lib/virtualization.d.ts.map +1 -0
  337. package/dist/lib/virtualization.js +114 -0
  338. package/dist/lib/virtualization.js.map +1 -0
  339. package/dist/parsers/core.d.ts +36 -0
  340. package/dist/parsers/core.d.ts.map +1 -0
  341. package/dist/parsers/core.js +123 -0
  342. package/dist/parsers/core.js.map +1 -0
  343. package/dist/renderers/checkbox.d.ts +5 -0
  344. package/dist/renderers/checkbox.d.ts.map +1 -0
  345. package/dist/renderers/checkbox.js +10 -0
  346. package/dist/renderers/checkbox.js.map +1 -0
  347. package/dist/renderers/core.d.ts +48 -0
  348. package/dist/renderers/core.d.ts.map +1 -0
  349. package/dist/renderers/core.js +143 -0
  350. package/dist/renderers/core.js.map +1 -0
  351. package/dist/renderers/thousand_separator.d.ts +5 -0
  352. package/dist/renderers/thousand_separator.d.ts.map +1 -0
  353. package/dist/renderers/thousand_separator.js +14 -0
  354. package/dist/renderers/thousand_separator.js.map +1 -0
  355. package/dist/store/actions.d.ts +198 -0
  356. package/dist/store/actions.d.ts.map +1 -0
  357. package/dist/store/actions.js +519 -0
  358. package/dist/store/actions.js.map +1 -0
  359. package/dist/store/helpers.d.ts +28 -0
  360. package/dist/store/helpers.d.ts.map +1 -0
  361. package/dist/store/helpers.js +78 -0
  362. package/dist/store/helpers.js.map +1 -0
  363. package/dist/store/index.d.ts +11 -0
  364. package/dist/store/index.d.ts.map +1 -0
  365. package/dist/store/index.js +3 -0
  366. package/dist/store/index.js.map +1 -0
  367. package/dist/styles/embedder.d.ts +2 -0
  368. package/dist/styles/embedder.d.ts.map +1 -0
  369. package/dist/styles/embedder.js +16 -0
  370. package/dist/styles/embedder.js.map +1 -0
  371. package/dist/styles/minified.d.ts +3 -0
  372. package/dist/styles/minified.d.ts.map +1 -0
  373. package/dist/styles/minified.js +4 -0
  374. package/dist/styles/minified.js.map +1 -0
  375. package/dist/types.d.ts +213 -0
  376. package/dist/types.d.ts.map +1 -0
  377. package/dist/types.js +2 -0
  378. package/dist/types.js.map +1 -0
  379. package/dist/utils.d.ts +2 -0
  380. package/dist/utils.d.ts.map +1 -0
  381. package/dist/utils.js +7 -0
  382. package/dist/utils.js.map +1 -0
  383. package/package.json +81 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapping.js","sourceRoot":"","sources":["../../src/formula/mapping.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { Table } from "../lib/table";
2
+ import { MatrixType } from "../types";
3
+ export declare const solveFormula: ({ value, table, raise, }: {
4
+ value: any;
5
+ table: Table;
6
+ raise?: boolean | undefined;
7
+ }) => any;
8
+ export declare const solveTable: ({ table, raise, }: {
9
+ table: Table;
10
+ raise?: boolean | undefined;
11
+ }) => MatrixType<any>;
12
+ //# sourceMappingURL=solver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solver.d.ts","sourceRoot":"","sources":["../../src/formula/solver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAMtC,eAAO,MAAM,YAAY;WAKhB,GAAG;WACH,KAAK;;SAwBb,CAAC;AAEF,eAAO,MAAM,UAAU;WAId,KAAK;;qBAoCb,CAAC"}
@@ -0,0 +1,64 @@
1
+ import { Special } from "../constants";
2
+ import { Table } from "../lib/table";
3
+ import { FormulaError, Lexer, Parser } from "./evaluator";
4
+ import { p2a } from "../lib/converters";
5
+ const SOLVING = new Special("solving");
6
+ export const solveFormula = ({ value, table, raise = true, }) => {
7
+ var _a;
8
+ let solved = value;
9
+ if (typeof value === "string") {
10
+ if (value.charAt(0) === "=") {
11
+ try {
12
+ const lexer = new Lexer(value.substring(1));
13
+ lexer.tokenize();
14
+ const parser = new Parser(lexer.tokens);
15
+ const expr = parser.build();
16
+ solved = (_a = expr === null || expr === void 0 ? void 0 : expr.evaluate) === null || _a === void 0 ? void 0 : _a.call(expr, { table });
17
+ }
18
+ catch (e) {
19
+ if (raise) {
20
+ throw e;
21
+ }
22
+ return null;
23
+ }
24
+ }
25
+ }
26
+ if (solved instanceof Table) {
27
+ solved = solveTable({ table: solved, raise })[0][0];
28
+ }
29
+ return solved;
30
+ };
31
+ export const solveTable = ({ table, raise = true, }) => {
32
+ const area = table.getArea();
33
+ return table.getMatrixFlatten({ area, evaluates: false }).map((row, i) => {
34
+ const y = area.top + i;
35
+ return row.map((value, j) => {
36
+ const x = area.left + j;
37
+ const address = p2a({ y, x });
38
+ const cache = table.getSolvedCache(address);
39
+ try {
40
+ if (cache === SOLVING) {
41
+ throw new FormulaError("#RFF!", "References are circulating.", new Error(value));
42
+ }
43
+ else if (cache instanceof FormulaError) {
44
+ throw cache;
45
+ }
46
+ else if (cache != null) {
47
+ return cache;
48
+ }
49
+ table.setSolvedCache(address, SOLVING);
50
+ const solved = solveFormula({ value, table, raise });
51
+ table.setSolvedCache(address, solved);
52
+ return solved;
53
+ }
54
+ catch (e) {
55
+ table.setSolvedCache(address, e);
56
+ if (raise) {
57
+ throw e;
58
+ }
59
+ return null;
60
+ }
61
+ });
62
+ });
63
+ };
64
+ //# sourceMappingURL=solver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solver.js","sourceRoot":"","sources":["../../src/formula/solver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export { GridSheet } from "./components/GridSheet";
2
+ export { createTableRef } from "./components/Tabular";
3
+ export { Renderer, RendererMixinType } from "./renderers/core";
4
+ export { Parser, ParserMixinType } from "./parsers/core";
5
+ export { oa2aa, aa2oa, generateInitial, generateInitialSimple } from "./lib/structs";
6
+ export { x2c, c2x, y2r, r2y, p2a, a2p } from "./lib/converters";
7
+ export { MatrixType, CellType, FeedbackType, OptionsType, WriterType, CellsByAddressType, CellsByIdType, } from "./types";
8
+ export { ThousandSeparatorRendererMixin } from "./renderers/thousand_separator";
9
+ export { CheckboxRendererMixin } from "./renderers/checkbox";
10
+ export { BaseFunction } from "./formula/functions/__base";
11
+ export { Table } from "./lib/table";
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACrF,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EACL,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,UAAU,EACV,kBAAkB,EAClB,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,11 @@
1
+ export { GridSheet } from "./components/GridSheet";
2
+ export { createTableRef } from "./components/Tabular";
3
+ export { Renderer } from "./renderers/core";
4
+ export { Parser } from "./parsers/core";
5
+ export { oa2aa, aa2oa, generateInitial, generateInitialSimple } from "./lib/structs";
6
+ export { x2c, c2x, y2r, r2y, p2a, a2p } from "./lib/converters";
7
+ export { ThousandSeparatorRendererMixin } from "./renderers/thousand_separator";
8
+ export { CheckboxRendererMixin } from "./renderers/checkbox";
9
+ export { BaseFunction } from "./formula/functions/__base";
10
+ export { Table } from "./lib/table";
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAqB,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAmB,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACrF,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAUhE,OAAO,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,17 @@
1
+ import React from "react";
2
+ import { AreaType, PointType, StoreType } from "../types";
3
+ import { Table } from "../lib/table";
4
+ export declare class Autofill {
5
+ private readonly src;
6
+ private readonly dst;
7
+ private readonly direction;
8
+ private readonly table;
9
+ constructor(store: StoreType, draggingTo: PointType);
10
+ get applied(): Table;
11
+ get wholeArea(): AreaType;
12
+ getCellStyle(target: PointType): React.CSSProperties;
13
+ private getDestinationArea;
14
+ private suggestDirection;
15
+ private getChangePatterns;
16
+ }
17
+ //# sourceMappingURL=autofill.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autofill.d.ts","sourceRoot":"","sources":["../../src/lib/autofill.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EAAC,QAAQ,EAAgC,SAAS,EAAE,SAAS,EAAC,MAAM,UAAU,CAAC;AACtF,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAmBrC,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAW;IAC/B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAW;IAC/B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;gBAClB,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS;IAQnD,IAAW,OAAO,IAAI,KAAK,CAmC1B;IAED,IAAW,SAAS,aAEnB;IAEM,YAAY,CAAC,MAAM,EAAE,SAAS;IAmErC,OAAO,CAAC,kBAAkB;IAgB1B,OAAO,CAAC,gBAAgB;IA+BxB,OAAO,CAAC,iBAAiB;CAyF1B"}
@@ -0,0 +1,389 @@
1
+ import { isEqual } from 'date-fns';
2
+ import { areaShape, areaToZone, complementSelectingArea, concatAreas, zoneToArea } from "./structs";
3
+ import { p2a } from "./converters";
4
+ import { convertFormulaAbsolute } from "../formula/evaluator";
5
+ import { TimeDelta } from "./time";
6
+ const BORDER_AUTOFILL_DRAGGING = "dashed 1px #000000";
7
+ const DirectionMapping = {
8
+ left: ["horizontal", -1],
9
+ right: ["horizontal", 1],
10
+ up: ["vertical", -1],
11
+ down: ["vertical", 1],
12
+ };
13
+ export class Autofill {
14
+ constructor(store, draggingTo) {
15
+ const { table, choosing, selectingZone } = store;
16
+ this.src = complementSelectingArea(zoneToArea(selectingZone), choosing);
17
+ this.direction = this.suggestDirection(draggingTo);
18
+ this.dst = this.getDestinationArea(draggingTo);
19
+ this.table = table;
20
+ }
21
+ get applied() {
22
+ const [orientation, sign] = DirectionMapping[this.direction];
23
+ const matrix = this.table.getMatrix({ area: this.src, evaluates: false });
24
+ const srcShape = areaShape(Object.assign(Object.assign({}, this.src), { base: 1 }));
25
+ const dstShape = areaShape(Object.assign(Object.assign({}, this.dst), { base: 1 }));
26
+ const diff = {};
27
+ if (orientation === "horizontal") {
28
+ for (let i = 0; i < dstShape.height; i++) {
29
+ const patterns = this.getChangePatterns(matrix[i]);
30
+ for (let j = 0; j < dstShape.width; j++) {
31
+ const baseCell = matrix[i % srcShape.height][j % srcShape.width];
32
+ const x = sign > 0 ? this.dst.left + j : this.dst.right - j;
33
+ const px = sign > 0 ? j % srcShape.width : (srcShape.width - 1 - (j % srcShape.width)) % srcShape.width;
34
+ diff[p2a({ y: this.dst.top + i, x })] = Object.assign(Object.assign({}, baseCell), { value: patterns[px].next().value });
35
+ }
36
+ }
37
+ }
38
+ else {
39
+ for (let i = 0; i < dstShape.width; i++) {
40
+ const patterns = this.getChangePatterns(matrix.map((row) => row[i]));
41
+ for (let j = 0; j < dstShape.height; j++) {
42
+ const baseCell = matrix[i % srcShape.height][j % srcShape.width];
43
+ const y = sign > 0 ? this.dst.top + j : this.dst.bottom - j;
44
+ const py = sign > 0 ? j % srcShape.height : (srcShape.height - 1 - (j % srcShape.height)) % srcShape.height;
45
+ diff[p2a({ y, x: this.dst.left + i })] = Object.assign(Object.assign({}, baseCell), { value: patterns[py].next().value });
46
+ }
47
+ }
48
+ }
49
+ const table = this.table.update({
50
+ diff,
51
+ reflection: {
52
+ selectingZone: areaToZone(this.src),
53
+ }
54
+ });
55
+ return table;
56
+ }
57
+ get wholeArea() {
58
+ return concatAreas(this.src, this.dst);
59
+ }
60
+ getCellStyle(target) {
61
+ const { x, y } = target;
62
+ const style = {};
63
+ const { top, left, bottom, right } = this.src;
64
+ switch (this.direction) {
65
+ case "left": {
66
+ if (this.dst.left <= x && x <= this.dst.right) {
67
+ if (top === y) {
68
+ style.borderTop = BORDER_AUTOFILL_DRAGGING;
69
+ }
70
+ if (bottom === y - 1) {
71
+ style.borderTop = BORDER_AUTOFILL_DRAGGING;
72
+ }
73
+ }
74
+ if (this.dst.left === x && top <= y && y <= bottom) {
75
+ style.borderLeft = BORDER_AUTOFILL_DRAGGING;
76
+ }
77
+ break;
78
+ }
79
+ case "right": {
80
+ if (this.dst.left <= x && x <= this.dst.right) {
81
+ if (top === y) {
82
+ style.borderTop = BORDER_AUTOFILL_DRAGGING;
83
+ }
84
+ if (bottom === y - 1) {
85
+ style.borderTop = BORDER_AUTOFILL_DRAGGING;
86
+ }
87
+ }
88
+ if (this.dst.right === x - 1 && top <= y && y <= bottom) {
89
+ style.borderLeft = BORDER_AUTOFILL_DRAGGING;
90
+ }
91
+ break;
92
+ }
93
+ case "up": {
94
+ if (this.dst.top <= y && y <= this.dst.bottom) {
95
+ if (left === x) {
96
+ style.borderLeft = BORDER_AUTOFILL_DRAGGING;
97
+ }
98
+ if (right === x - 1) {
99
+ style.borderLeft = BORDER_AUTOFILL_DRAGGING;
100
+ }
101
+ }
102
+ if (this.dst.top === y && left <= x && x <= right) {
103
+ style.borderTop = BORDER_AUTOFILL_DRAGGING;
104
+ }
105
+ break;
106
+ }
107
+ case "down": {
108
+ if (this.dst.top <= y && y <= this.dst.bottom) {
109
+ if (left === x) {
110
+ style.borderLeft = BORDER_AUTOFILL_DRAGGING;
111
+ }
112
+ if (right === x - 1) {
113
+ style.borderLeft = BORDER_AUTOFILL_DRAGGING;
114
+ }
115
+ }
116
+ if (this.dst.bottom === y - 1 && left <= x && x <= right) {
117
+ style.borderTop = BORDER_AUTOFILL_DRAGGING;
118
+ }
119
+ break;
120
+ }
121
+ }
122
+ return style;
123
+ }
124
+ getDestinationArea(autofillDraggingTo) {
125
+ const { x, y } = autofillDraggingTo;
126
+ const { top, left, bottom, right } = this.src;
127
+ switch (this.direction) {
128
+ case "left":
129
+ return { top, bottom, left: x, right: left - 1 };
130
+ case "right":
131
+ return { top, bottom, left: right + 1, right: x };
132
+ case "up":
133
+ return { left, right, top: y, bottom: top - 1 };
134
+ case "down":
135
+ return { left, right, top: bottom + 1, bottom: y };
136
+ }
137
+ return this.src;
138
+ }
139
+ suggestDirection(draggingTo) {
140
+ const { top, left, bottom, right } = this.src;
141
+ let horizontal = 0, vertical = 0;
142
+ if (draggingTo.x < left) {
143
+ horizontal = draggingTo.x - left;
144
+ }
145
+ else if (draggingTo.x > right) {
146
+ horizontal = draggingTo.x - right;
147
+ }
148
+ if (draggingTo.y < top) {
149
+ vertical = draggingTo.y - top;
150
+ }
151
+ else if (draggingTo.y > bottom) {
152
+ vertical = draggingTo.y - bottom;
153
+ }
154
+ // diagonal
155
+ if (Math.abs(horizontal) > 0 && Math.abs(vertical) > 0) {
156
+ if (Math.abs(horizontal) > Math.abs(vertical)) {
157
+ return horizontal < 0 ? "left" : "right";
158
+ }
159
+ return vertical < 0 ? "up" : "down";
160
+ }
161
+ if (horizontal !== 0) {
162
+ return horizontal < 0 ? "left" : "right";
163
+ }
164
+ if (vertical !== 0) {
165
+ return vertical < 0 ? "up" : "down";
166
+ }
167
+ return "down";
168
+ }
169
+ ;
170
+ getChangePatterns(cells) {
171
+ const result = [];
172
+ const groups = groupByType(cells);
173
+ const [orientation, sign] = DirectionMapping[this.direction];
174
+ groups.forEach((group) => {
175
+ const lastValue = sign > 0 ? group.last : group.first;
176
+ switch (group.kind) {
177
+ case "other": {
178
+ result.push(pass(group.first));
179
+ return;
180
+ }
181
+ case "formula": {
182
+ const value = group.first;
183
+ const table = this.table;
184
+ function* generateFormula() {
185
+ let slide = 0;
186
+ const skip = cells.length * sign;
187
+ while (true) {
188
+ slide += skip;
189
+ yield convertFormulaAbsolute({
190
+ value,
191
+ table,
192
+ slideY: orientation === "vertical" ? slide : 0,
193
+ slideX: orientation === "horizontal" ? slide : 0,
194
+ });
195
+ }
196
+ }
197
+ result.push(generateFormula());
198
+ return;
199
+ }
200
+ case "number": {
201
+ if (!group.equidistant) {
202
+ result.push(pass(group.first), ...group.nexts.map((v) => pass(v)));
203
+ return;
204
+ }
205
+ function* generateNumber() {
206
+ let value = lastValue;
207
+ const skip = group.numericDelta * sign;
208
+ while (true) {
209
+ value += skip;
210
+ yield value;
211
+ }
212
+ }
213
+ const g = generateNumber();
214
+ result.push(g, ...group.nexts.map(() => g));
215
+ return;
216
+ }
217
+ case "date": {
218
+ const next = (d) => {
219
+ return sign > 0 ? group.timeDelta.add(d) : group.timeDelta.sub(d);
220
+ };
221
+ if (!group.equidistant) {
222
+ result.push(pass(group.first), ...group.nexts.map((v) => pass(v)));
223
+ return;
224
+ }
225
+ function* generateDate() {
226
+ let value = lastValue;
227
+ while (true) {
228
+ value = next(value);
229
+ yield new Date(value);
230
+ }
231
+ }
232
+ const g = generateDate();
233
+ result.push(g, ...group.nexts.map(() => g));
234
+ return;
235
+ }
236
+ case "string+number": {
237
+ if (!group.equidistant) {
238
+ result.push(pass(group.first), ...group.nexts.map((v) => pass(v)));
239
+ return;
240
+ }
241
+ function* generateStringNumber() {
242
+ const { prefix } = extractStringNumber(group.first);
243
+ const { number: lastNumber } = extractStringNumber(lastValue);
244
+ let value = lastNumber;
245
+ const skip = group.numericDelta * sign;
246
+ while (true) {
247
+ value += skip;
248
+ yield `${prefix}${Math.abs(value)}`;
249
+ }
250
+ }
251
+ const g = generateStringNumber();
252
+ result.push(g, ...group.nexts.map(() => g));
253
+ return;
254
+ }
255
+ }
256
+ });
257
+ return result;
258
+ }
259
+ }
260
+ function* pass(value) {
261
+ while (true) {
262
+ yield value;
263
+ }
264
+ }
265
+ const StringNumberPattern = new RegExp('(.+?)(\\d+)$');
266
+ const extractStringNumber = (value) => {
267
+ const match = value.match(StringNumberPattern);
268
+ if (match) {
269
+ const [, prefix, n] = match;
270
+ return { prefix, number: Number(n) };
271
+ }
272
+ return { prefix: "", number: 0 };
273
+ };
274
+ class TypedGroup {
275
+ constructor(value) {
276
+ this.timeDelta = TimeDelta.create();
277
+ this.numericDelta = 0;
278
+ this.equidistant = true;
279
+ this.first = value;
280
+ this.nexts = [];
281
+ this.kind = this.discriminate(value);
282
+ }
283
+ discriminate(value) {
284
+ let kind = value instanceof Date ? "date" : typeof value;
285
+ if (kind === "number" || kind === "date") {
286
+ return kind;
287
+ }
288
+ if (kind === "string" && value[0] === "=") {
289
+ return "formula";
290
+ }
291
+ else if (kind === "string" && value.match(StringNumberPattern)) {
292
+ return "string+number";
293
+ }
294
+ return "other";
295
+ }
296
+ get last() {
297
+ if (this.nexts.length === 0) {
298
+ return this.first;
299
+ }
300
+ return this.nexts[this.nexts.length - 1];
301
+ }
302
+ add(value) {
303
+ const kind = this.discriminate(value);
304
+ if (this.kind !== kind || kind === "other" || kind === "formula") {
305
+ return new TypedGroup(value);
306
+ }
307
+ if (this.nexts.length === 0) {
308
+ switch (kind) {
309
+ case "date": {
310
+ this.timeDelta = new TimeDelta(value, this.first);
311
+ break;
312
+ }
313
+ case "number": {
314
+ this.numericDelta = value - this.first;
315
+ break;
316
+ }
317
+ case "string+number": {
318
+ const { prefix: prefix1, number: number1 } = extractStringNumber(this.first);
319
+ const { prefix: prefix2, number: number2 } = extractStringNumber(value);
320
+ if (prefix1 === prefix2) {
321
+ this.numericDelta = number2 - number1;
322
+ }
323
+ break;
324
+ }
325
+ }
326
+ }
327
+ this.nexts.push(value);
328
+ }
329
+ subdivide() {
330
+ if (this.nexts.length === 0) {
331
+ return [];
332
+ }
333
+ const news = [];
334
+ let lastGroup = this;
335
+ switch (this.kind) {
336
+ case "date": {
337
+ const eq = this.nexts.every((v, i) => i === 0 || isEqual(v, this.timeDelta.add(this.nexts[i - 1])));
338
+ this.equidistant = eq;
339
+ return [];
340
+ }
341
+ case "number": {
342
+ const eq = this.nexts.every((v, i) => i === 0 || v === this.first + this.numericDelta * (i + 1));
343
+ this.equidistant = eq;
344
+ return [];
345
+ }
346
+ case "string+number": {
347
+ let { prefix: basePrefix, number: baseNumber } = extractStringNumber(this.first);
348
+ for (let i = 0; i < lastGroup.nexts.length; i++) {
349
+ const next = lastGroup.nexts[i];
350
+ const { prefix, number } = extractStringNumber(next);
351
+ if (basePrefix !== prefix) {
352
+ const nexts = this.nexts.splice(i, this.nexts.length);
353
+ lastGroup = new TypedGroup(nexts.splice(0, 1)[0]);
354
+ nexts.forEach(lastGroup.add.bind(lastGroup));
355
+ news.push(lastGroup, ...lastGroup.subdivide());
356
+ break;
357
+ }
358
+ else {
359
+ const { number: firstNumber } = extractStringNumber(lastGroup.first);
360
+ if (number !== firstNumber + (i + 1) * lastGroup.numericDelta) {
361
+ lastGroup.equidistant = false;
362
+ }
363
+ }
364
+ }
365
+ break;
366
+ }
367
+ }
368
+ return news;
369
+ }
370
+ }
371
+ function groupByType(cells) {
372
+ var _a, _b;
373
+ let group = new TypedGroup((_a = cells[0]) === null || _a === void 0 ? void 0 : _a.value);
374
+ const groups = [group];
375
+ for (let i = 1; i < cells.length; i++) {
376
+ const value = (_b = cells[i]) === null || _b === void 0 ? void 0 : _b.value;
377
+ const nextGroup = group.add(value);
378
+ if (nextGroup) {
379
+ groups.push(nextGroup);
380
+ group = nextGroup;
381
+ }
382
+ }
383
+ for (let i = groups.length - 1; i >= 0; i--) {
384
+ const group = groups[i];
385
+ groups.splice(i + 1, 0, ...group.subdivide());
386
+ }
387
+ return groups;
388
+ }
389
+ //# sourceMappingURL=autofill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autofill.js","sourceRoot":"","sources":["../../src/lib/autofill.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { StoreType, AreaType } from "../types";
2
+ export declare const clip: (store: StoreType) => AreaType;
3
+ //# sourceMappingURL=clipboard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clipboard.d.ts","sourceRoot":"","sources":["../../src/lib/clipboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAa,MAAM,UAAU,CAAC;AAM1D,eAAO,MAAM,IAAI,UAAW,SAAS,KAAG,QAuBvC,CAAC"}
@@ -0,0 +1,45 @@
1
+ import { zoneToArea } from "./structs";
2
+ import { solveTable } from "../formula/solver";
3
+ export const clip = (store) => {
4
+ const { selectingZone, choosing, editorRef, table } = store;
5
+ const { y, x } = choosing;
6
+ let selectingArea = zoneToArea(selectingZone);
7
+ let area = selectingArea;
8
+ if (area.left === -1) {
9
+ area = { top: y, left: x, bottom: y, right: x };
10
+ }
11
+ const input = editorRef.current;
12
+ const trimmed = table.trim(area);
13
+ const tsv = table2tsv(trimmed);
14
+ if (navigator.clipboard) {
15
+ navigator.clipboard.writeText(tsv);
16
+ }
17
+ else if (input != null) {
18
+ input.value = tsv;
19
+ input.focus();
20
+ input.select();
21
+ document.execCommand("copy");
22
+ input.value = "";
23
+ input.blur();
24
+ }
25
+ return area;
26
+ };
27
+ const table2tsv = (table) => {
28
+ const lines = [];
29
+ const matrix = solveTable({ table, raise: false });
30
+ matrix.forEach((row, i) => {
31
+ const cols = [];
32
+ row.forEach((col, j) => {
33
+ const value = table.stringify({ y: i, x: j }, col);
34
+ if (value.indexOf("\n") !== -1) {
35
+ cols.push(`"${value.replace(/"/g, '""')}"`);
36
+ }
37
+ else {
38
+ cols.push(value);
39
+ }
40
+ });
41
+ lines.push(cols.join("\t"));
42
+ });
43
+ return lines.join("\n");
44
+ };
45
+ //# sourceMappingURL=clipboard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clipboard.js","sourceRoot":"","sources":["../../src/lib/clipboard.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAG/C,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,KAAgB,EAAY,EAAE;IACjD,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IAC5D,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,QAAQ,CAAC;IAC1B,IAAI,aAAa,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;IAC9C,IAAI,IAAI,GAAG,aAAa,CAAC;IACzB,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE;QACpB,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;KACjD;IACD,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC;IAChC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAE/B,IAAI,SAAS,CAAC,SAAS,EAAE;QACvB,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;KACpC;SAAM,IAAI,KAAK,IAAI,IAAI,EAAE;QACxB,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC;QAClB,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,KAAK,CAAC,MAAM,EAAE,CAAC;QACf,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC7B,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;QACjB,KAAK,CAAC,IAAI,EAAE,CAAC;KACd;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,KAAY,EAAU,EAAE;IACzC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACnD,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;QACxB,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;YACrB,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;YACnD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;gBAC9B,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;aAC7C;iBAAM;gBACL,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAClB;QACH,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { Address, PointType } from "../types";
2
+ export declare const x2c: (x: number) => string;
3
+ export declare const c2x: (col: string, absolute?: boolean) => number;
4
+ export declare const y2r: (y: number) => string;
5
+ export declare const r2y: (row: number | string, absolute?: boolean) => number;
6
+ export declare const p2a: ({ y, x }: PointType) => string;
7
+ export declare const tsv2matrix: (tsv: string) => string[][];
8
+ export declare const a2p: (address: Address) => PointType;
9
+ export declare const grantAddressAbsolute: (address: Address, absCol: boolean, absRow: boolean) => string | undefined;
10
+ //# sourceMappingURL=converters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"converters.d.ts","sourceRoot":"","sources":["../../src/lib/converters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AA4D9C,eAAO,MAAM,GAAG,MAAO,MAAM,KAAG,MAM/B,CAAC;AAEF,eAAO,MAAM,GAAG,QAAS,MAAM,yBAAqB,MAGnD,CAAC;AAEF,eAAO,MAAM,GAAG,MAAO,MAAM,WAK5B,CAAC;AAEF,eAAO,MAAM,GAAG,QAAS,MAAM,GAAG,MAAM,+BAKvC,CAAC;AAEF,eAAO,MAAM,GAAG,aAAc,SAAS,WAEtC,CAAC;AAIF,eAAO,MAAM,UAAU,QAAS,MAAM,KAAG,MAAM,EAAE,EAkChD,CAAC;AAEF,eAAO,MAAM,GAAG,YAAa,OAAO,KAAG,SAQtC,CAAC;AAEF,eAAO,MAAM,oBAAoB,YACtB,OAAO,UACR,OAAO,UACP,OAAO,uBAQhB,CAAC"}