@gridsheet/react-core 0.12.4-alpha.2 → 0.12.4-beta.1

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 (385) hide show
  1. package/dist/components/Cell.d.ts +8 -0
  2. package/dist/components/Cell.d.ts.map +1 -0
  3. package/dist/components/Cell.js +206 -0
  4. package/dist/components/Cell.js.map +1 -0
  5. package/dist/components/ContextMenu.d.ts +3 -0
  6. package/dist/components/ContextMenu.d.ts.map +1 -0
  7. package/dist/components/ContextMenu.js +214 -0
  8. package/dist/components/ContextMenu.js.map +1 -0
  9. package/dist/components/Editor.d.ts +3 -0
  10. package/dist/components/Editor.d.ts.map +1 -0
  11. package/dist/components/Editor.js +308 -0
  12. package/dist/components/Editor.js.map +1 -0
  13. package/dist/components/Emitter.d.ts +9 -0
  14. package/dist/components/Emitter.d.ts.map +1 -0
  15. package/dist/components/Emitter.js +33 -0
  16. package/dist/components/Emitter.js.map +1 -0
  17. package/dist/components/GridSheet.d.ts +4 -0
  18. package/dist/components/GridSheet.d.ts.map +1 -0
  19. package/dist/components/GridSheet.js +137 -0
  20. package/dist/components/GridSheet.js.map +1 -0
  21. package/dist/components/HeaderLeftCell.d.ts +7 -0
  22. package/dist/components/HeaderLeftCell.d.ts.map +1 -0
  23. package/dist/components/HeaderLeftCell.js +72 -0
  24. package/dist/components/HeaderLeftCell.js.map +1 -0
  25. package/dist/components/HeaderTopCell.d.ts +7 -0
  26. package/dist/components/HeaderTopCell.d.ts.map +1 -0
  27. package/dist/components/HeaderTopCell.js +73 -0
  28. package/dist/components/HeaderTopCell.js.map +1 -0
  29. package/dist/components/Resizer.d.ts +3 -0
  30. package/dist/components/Resizer.d.ts.map +1 -0
  31. package/dist/components/Resizer.js +91 -0
  32. package/dist/components/Resizer.js.map +1 -0
  33. package/dist/components/SearchBox.d.ts +3 -0
  34. package/dist/components/SearchBox.d.ts.map +1 -0
  35. package/dist/components/SearchBox.js +61 -0
  36. package/dist/components/SearchBox.js.map +1 -0
  37. package/dist/components/StoreInitializer.d.ts +4 -0
  38. package/dist/components/StoreInitializer.d.ts.map +1 -0
  39. package/dist/components/StoreInitializer.js +75 -0
  40. package/dist/components/StoreInitializer.js.map +1 -0
  41. package/dist/components/Tabular.d.ts +9 -0
  42. package/dist/components/Tabular.d.ts.map +1 -0
  43. package/dist/components/Tabular.js +92 -0
  44. package/dist/components/Tabular.js.map +1 -0
  45. package/dist/constants.d.ts +18 -0
  46. package/dist/constants.d.ts.map +1 -0
  47. package/dist/constants.js +28 -0
  48. package/dist/constants.js.map +1 -0
  49. package/dist/formula/evaluator.d.ts +91 -0
  50. package/dist/formula/evaluator.d.ts.map +1 -0
  51. package/dist/formula/evaluator.js +557 -0
  52. package/dist/formula/evaluator.js.map +1 -0
  53. package/dist/formula/functions/__base.d.ts +23 -0
  54. package/dist/formula/functions/__base.d.ts.map +1 -0
  55. package/dist/formula/functions/__base.js +20 -0
  56. package/dist/formula/functions/__base.js.map +1 -0
  57. package/dist/formula/functions/__utils.d.ts +6 -0
  58. package/dist/formula/functions/__utils.d.ts.map +1 -0
  59. package/dist/formula/functions/__utils.js +110 -0
  60. package/dist/formula/functions/__utils.js.map +1 -0
  61. package/dist/formula/functions/abs.d.ts +12 -0
  62. package/dist/formula/functions/abs.d.ts.map +1 -0
  63. package/dist/formula/functions/abs.js +25 -0
  64. package/dist/formula/functions/abs.js.map +1 -0
  65. package/dist/formula/functions/abs.spec.d.ts +2 -0
  66. package/dist/formula/functions/abs.spec.d.ts.map +1 -0
  67. package/dist/formula/functions/abs.spec.js +31 -0
  68. package/dist/formula/functions/abs.spec.js.map +1 -0
  69. package/dist/formula/functions/acos.d.ts +12 -0
  70. package/dist/formula/functions/acos.d.ts.map +1 -0
  71. package/dist/formula/functions/acos.js +33 -0
  72. package/dist/formula/functions/acos.js.map +1 -0
  73. package/dist/formula/functions/add.d.ts +13 -0
  74. package/dist/formula/functions/add.d.ts.map +1 -0
  75. package/dist/formula/functions/add.js +54 -0
  76. package/dist/formula/functions/add.js.map +1 -0
  77. package/dist/formula/functions/and.d.ts +19 -0
  78. package/dist/formula/functions/and.d.ts.map +1 -0
  79. package/dist/formula/functions/and.js +32 -0
  80. package/dist/formula/functions/and.js.map +1 -0
  81. package/dist/formula/functions/asin.d.ts +12 -0
  82. package/dist/formula/functions/asin.d.ts.map +1 -0
  83. package/dist/formula/functions/asin.js +33 -0
  84. package/dist/formula/functions/asin.js.map +1 -0
  85. package/dist/formula/functions/atan.d.ts +12 -0
  86. package/dist/formula/functions/atan.d.ts.map +1 -0
  87. package/dist/formula/functions/atan.js +30 -0
  88. package/dist/formula/functions/atan.js.map +1 -0
  89. package/dist/formula/functions/atan2.d.ts +12 -0
  90. package/dist/formula/functions/atan2.d.ts.map +1 -0
  91. package/dist/formula/functions/atan2.js +36 -0
  92. package/dist/formula/functions/atan2.js.map +1 -0
  93. package/dist/formula/functions/average.d.ts +19 -0
  94. package/dist/formula/functions/average.d.ts.map +1 -0
  95. package/dist/formula/functions/average.js +45 -0
  96. package/dist/formula/functions/average.js.map +1 -0
  97. package/dist/formula/functions/col.d.ts +14 -0
  98. package/dist/formula/functions/col.d.ts.map +1 -0
  99. package/dist/formula/functions/col.js +34 -0
  100. package/dist/formula/functions/col.js.map +1 -0
  101. package/dist/formula/functions/concat.d.ts +12 -0
  102. package/dist/formula/functions/concat.d.ts.map +1 -0
  103. package/dist/formula/functions/concat.js +31 -0
  104. package/dist/formula/functions/concat.js.map +1 -0
  105. package/dist/formula/functions/concatenate.d.ts +19 -0
  106. package/dist/formula/functions/concatenate.d.ts.map +1 -0
  107. package/dist/formula/functions/concatenate.js +29 -0
  108. package/dist/formula/functions/concatenate.js.map +1 -0
  109. package/dist/formula/functions/cos.d.ts +12 -0
  110. package/dist/formula/functions/cos.d.ts.map +1 -0
  111. package/dist/formula/functions/cos.js +30 -0
  112. package/dist/formula/functions/cos.js.map +1 -0
  113. package/dist/formula/functions/count.d.ts +19 -0
  114. package/dist/formula/functions/count.d.ts.map +1 -0
  115. package/dist/formula/functions/count.js +39 -0
  116. package/dist/formula/functions/count.js.map +1 -0
  117. package/dist/formula/functions/counta.d.ts +19 -0
  118. package/dist/formula/functions/counta.d.ts.map +1 -0
  119. package/dist/formula/functions/counta.js +39 -0
  120. package/dist/formula/functions/counta.js.map +1 -0
  121. package/dist/formula/functions/countif.d.ts +13 -0
  122. package/dist/formula/functions/countif.d.ts.map +1 -0
  123. package/dist/formula/functions/countif.js +34 -0
  124. package/dist/formula/functions/countif.js.map +1 -0
  125. package/dist/formula/functions/divide.d.ts +12 -0
  126. package/dist/formula/functions/divide.d.ts.map +1 -0
  127. package/dist/formula/functions/divide.js +37 -0
  128. package/dist/formula/functions/divide.js.map +1 -0
  129. package/dist/formula/functions/eq.d.ts +12 -0
  130. package/dist/formula/functions/eq.d.ts.map +1 -0
  131. package/dist/formula/functions/eq.js +29 -0
  132. package/dist/formula/functions/eq.js.map +1 -0
  133. package/dist/formula/functions/exp.d.ts +12 -0
  134. package/dist/formula/functions/exp.d.ts.map +1 -0
  135. package/dist/formula/functions/exp.js +32 -0
  136. package/dist/formula/functions/exp.js.map +1 -0
  137. package/dist/formula/functions/gt.d.ts +12 -0
  138. package/dist/formula/functions/gt.d.ts.map +1 -0
  139. package/dist/formula/functions/gt.js +31 -0
  140. package/dist/formula/functions/gt.js.map +1 -0
  141. package/dist/formula/functions/gte.d.ts +12 -0
  142. package/dist/formula/functions/gte.d.ts.map +1 -0
  143. package/dist/formula/functions/gte.js +31 -0
  144. package/dist/formula/functions/gte.js.map +1 -0
  145. package/dist/formula/functions/hlookup.d.ts +18 -0
  146. package/dist/formula/functions/hlookup.d.ts.map +1 -0
  147. package/dist/formula/functions/hlookup.js +78 -0
  148. package/dist/formula/functions/hlookup.js.map +1 -0
  149. package/dist/formula/functions/if.d.ts +17 -0
  150. package/dist/formula/functions/if.d.ts.map +1 -0
  151. package/dist/formula/functions/if.js +40 -0
  152. package/dist/formula/functions/if.js.map +1 -0
  153. package/dist/formula/functions/iferror.d.ts +20 -0
  154. package/dist/formula/functions/iferror.d.ts.map +1 -0
  155. package/dist/formula/functions/iferror.js +45 -0
  156. package/dist/formula/functions/iferror.js.map +1 -0
  157. package/dist/formula/functions/iferror.spec.d.ts +2 -0
  158. package/dist/formula/functions/iferror.spec.d.ts.map +1 -0
  159. package/dist/formula/functions/iferror.spec.js +63 -0
  160. package/dist/formula/functions/iferror.spec.js.map +1 -0
  161. package/dist/formula/functions/len.d.ts +12 -0
  162. package/dist/formula/functions/len.d.ts.map +1 -0
  163. package/dist/formula/functions/len.js +30 -0
  164. package/dist/formula/functions/len.js.map +1 -0
  165. package/dist/formula/functions/lenb.d.ts +12 -0
  166. package/dist/formula/functions/lenb.d.ts.map +1 -0
  167. package/dist/formula/functions/lenb.js +30 -0
  168. package/dist/formula/functions/lenb.js.map +1 -0
  169. package/dist/formula/functions/ln.d.ts +12 -0
  170. package/dist/formula/functions/ln.d.ts.map +1 -0
  171. package/dist/formula/functions/ln.js +33 -0
  172. package/dist/formula/functions/ln.js.map +1 -0
  173. package/dist/formula/functions/log.d.ts +12 -0
  174. package/dist/formula/functions/log.d.ts.map +1 -0
  175. package/dist/formula/functions/log.js +39 -0
  176. package/dist/formula/functions/log.js.map +1 -0
  177. package/dist/formula/functions/log10.d.ts +12 -0
  178. package/dist/formula/functions/log10.d.ts.map +1 -0
  179. package/dist/formula/functions/log10.js +33 -0
  180. package/dist/formula/functions/log10.js.map +1 -0
  181. package/dist/formula/functions/lt.d.ts +12 -0
  182. package/dist/formula/functions/lt.d.ts.map +1 -0
  183. package/dist/formula/functions/lt.js +31 -0
  184. package/dist/formula/functions/lt.js.map +1 -0
  185. package/dist/formula/functions/lte.d.ts +12 -0
  186. package/dist/formula/functions/lte.d.ts.map +1 -0
  187. package/dist/formula/functions/lte.js +31 -0
  188. package/dist/formula/functions/lte.js.map +1 -0
  189. package/dist/formula/functions/max.d.ts +19 -0
  190. package/dist/formula/functions/max.d.ts.map +1 -0
  191. package/dist/formula/functions/max.js +48 -0
  192. package/dist/formula/functions/max.js.map +1 -0
  193. package/dist/formula/functions/min.d.ts +19 -0
  194. package/dist/formula/functions/min.d.ts.map +1 -0
  195. package/dist/formula/functions/min.js +48 -0
  196. package/dist/formula/functions/min.js.map +1 -0
  197. package/dist/formula/functions/minus.d.ts +13 -0
  198. package/dist/formula/functions/minus.d.ts.map +1 -0
  199. package/dist/formula/functions/minus.js +54 -0
  200. package/dist/formula/functions/minus.js.map +1 -0
  201. package/dist/formula/functions/mod.d.ts +12 -0
  202. package/dist/formula/functions/mod.d.ts.map +1 -0
  203. package/dist/formula/functions/mod.js +35 -0
  204. package/dist/formula/functions/mod.js.map +1 -0
  205. package/dist/formula/functions/mod.spec.d.ts +2 -0
  206. package/dist/formula/functions/mod.spec.d.ts.map +1 -0
  207. package/dist/formula/functions/mod.spec.js +54 -0
  208. package/dist/formula/functions/mod.spec.js.map +1 -0
  209. package/dist/formula/functions/multiply.d.ts +12 -0
  210. package/dist/formula/functions/multiply.d.ts.map +1 -0
  211. package/dist/formula/functions/multiply.js +31 -0
  212. package/dist/formula/functions/multiply.js.map +1 -0
  213. package/dist/formula/functions/ne.d.ts +12 -0
  214. package/dist/formula/functions/ne.d.ts.map +1 -0
  215. package/dist/formula/functions/ne.js +29 -0
  216. package/dist/formula/functions/ne.js.map +1 -0
  217. package/dist/formula/functions/not.d.ts +12 -0
  218. package/dist/formula/functions/not.d.ts.map +1 -0
  219. package/dist/formula/functions/not.js +34 -0
  220. package/dist/formula/functions/not.js.map +1 -0
  221. package/dist/formula/functions/now.d.ts +9 -0
  222. package/dist/formula/functions/now.d.ts.map +1 -0
  223. package/dist/formula/functions/now.js +25 -0
  224. package/dist/formula/functions/now.js.map +1 -0
  225. package/dist/formula/functions/or.d.ts +19 -0
  226. package/dist/formula/functions/or.d.ts.map +1 -0
  227. package/dist/formula/functions/or.js +32 -0
  228. package/dist/formula/functions/or.js.map +1 -0
  229. package/dist/formula/functions/pi.d.ts +9 -0
  230. package/dist/formula/functions/pi.d.ts.map +1 -0
  231. package/dist/formula/functions/pi.js +23 -0
  232. package/dist/formula/functions/pi.js.map +1 -0
  233. package/dist/formula/functions/power.d.ts +12 -0
  234. package/dist/formula/functions/power.d.ts.map +1 -0
  235. package/dist/formula/functions/power.js +28 -0
  236. package/dist/formula/functions/power.js.map +1 -0
  237. package/dist/formula/functions/product.d.ts +19 -0
  238. package/dist/formula/functions/product.d.ts.map +1 -0
  239. package/dist/formula/functions/product.js +41 -0
  240. package/dist/formula/functions/product.js.map +1 -0
  241. package/dist/formula/functions/radians.d.ts +12 -0
  242. package/dist/formula/functions/radians.d.ts.map +1 -0
  243. package/dist/formula/functions/radians.js +30 -0
  244. package/dist/formula/functions/radians.js.map +1 -0
  245. package/dist/formula/functions/rand.d.ts +9 -0
  246. package/dist/formula/functions/rand.d.ts.map +1 -0
  247. package/dist/formula/functions/rand.js +23 -0
  248. package/dist/formula/functions/rand.js.map +1 -0
  249. package/dist/formula/functions/round.d.ts +17 -0
  250. package/dist/formula/functions/round.d.ts.map +1 -0
  251. package/dist/formula/functions/round.js +38 -0
  252. package/dist/formula/functions/round.js.map +1 -0
  253. package/dist/formula/functions/rounddown.d.ts +17 -0
  254. package/dist/formula/functions/rounddown.d.ts.map +1 -0
  255. package/dist/formula/functions/rounddown.js +38 -0
  256. package/dist/formula/functions/rounddown.js.map +1 -0
  257. package/dist/formula/functions/roundup.d.ts +17 -0
  258. package/dist/formula/functions/roundup.d.ts.map +1 -0
  259. package/dist/formula/functions/roundup.js +38 -0
  260. package/dist/formula/functions/roundup.js.map +1 -0
  261. package/dist/formula/functions/row.d.ts +14 -0
  262. package/dist/formula/functions/row.d.ts.map +1 -0
  263. package/dist/formula/functions/row.js +34 -0
  264. package/dist/formula/functions/row.js.map +1 -0
  265. package/dist/formula/functions/sin.d.ts +12 -0
  266. package/dist/formula/functions/sin.d.ts.map +1 -0
  267. package/dist/formula/functions/sin.js +30 -0
  268. package/dist/formula/functions/sin.js.map +1 -0
  269. package/dist/formula/functions/sqrt.d.ts +12 -0
  270. package/dist/formula/functions/sqrt.d.ts.map +1 -0
  271. package/dist/formula/functions/sqrt.js +33 -0
  272. package/dist/formula/functions/sqrt.js.map +1 -0
  273. package/dist/formula/functions/sum.d.ts +19 -0
  274. package/dist/formula/functions/sum.d.ts.map +1 -0
  275. package/dist/formula/functions/sum.js +48 -0
  276. package/dist/formula/functions/sum.js.map +1 -0
  277. package/dist/formula/functions/sum.spec.d.ts +2 -0
  278. package/dist/formula/functions/sum.spec.d.ts.map +1 -0
  279. package/dist/formula/functions/sum.spec.js +42 -0
  280. package/dist/formula/functions/sum.spec.js.map +1 -0
  281. package/dist/formula/functions/sumif.d.ts +18 -0
  282. package/dist/formula/functions/sumif.d.ts.map +1 -0
  283. package/dist/formula/functions/sumif.js +63 -0
  284. package/dist/formula/functions/sumif.js.map +1 -0
  285. package/dist/formula/functions/tan.d.ts +12 -0
  286. package/dist/formula/functions/tan.d.ts.map +1 -0
  287. package/dist/formula/functions/tan.js +30 -0
  288. package/dist/formula/functions/tan.js.map +1 -0
  289. package/dist/formula/functions/uminus.d.ts +12 -0
  290. package/dist/formula/functions/uminus.d.ts.map +1 -0
  291. package/dist/formula/functions/uminus.js +27 -0
  292. package/dist/formula/functions/uminus.js.map +1 -0
  293. package/dist/formula/functions/vlookup.d.ts +18 -0
  294. package/dist/formula/functions/vlookup.d.ts.map +1 -0
  295. package/dist/formula/functions/vlookup.js +78 -0
  296. package/dist/formula/functions/vlookup.js.map +1 -0
  297. package/dist/formula/mapping.d.ts +114 -0
  298. package/dist/formula/mapping.d.ts.map +1 -0
  299. package/dist/formula/mapping.js +117 -0
  300. package/dist/formula/mapping.js.map +1 -0
  301. package/dist/formula/solver.d.ts +12 -0
  302. package/dist/formula/solver.d.ts.map +1 -0
  303. package/dist/formula/solver.js +69 -0
  304. package/dist/formula/solver.js.map +1 -0
  305. package/dist/index.d.ts +12 -0
  306. package/dist/index.d.ts.map +1 -0
  307. package/dist/index.js +31 -5182
  308. package/dist/index.js.map +1 -0
  309. package/dist/lib/autofill.d.ts +17 -0
  310. package/dist/lib/autofill.d.ts.map +1 -0
  311. package/dist/lib/autofill.js +393 -0
  312. package/dist/lib/autofill.js.map +1 -0
  313. package/dist/lib/clipboard.d.ts +3 -0
  314. package/dist/lib/clipboard.d.ts.map +1 -0
  315. package/dist/lib/clipboard.js +49 -0
  316. package/dist/lib/clipboard.js.map +1 -0
  317. package/dist/lib/converters.d.ts +10 -0
  318. package/dist/lib/converters.d.ts.map +1 -0
  319. package/dist/lib/converters.js +138 -0
  320. package/dist/lib/converters.js.map +1 -0
  321. package/dist/lib/hooks.d.ts +1 -0
  322. package/dist/lib/hooks.d.ts.map +1 -0
  323. package/dist/lib/hooks.js +2 -0
  324. package/dist/lib/hooks.js.map +1 -0
  325. package/dist/lib/structs.d.ts +60 -0
  326. package/dist/lib/structs.d.ts.map +1 -0
  327. package/dist/lib/structs.js +279 -0
  328. package/dist/lib/structs.js.map +1 -0
  329. package/dist/lib/table.d.ts +297 -0
  330. package/dist/lib/table.d.ts.map +1 -0
  331. package/dist/lib/table.js +990 -0
  332. package/dist/lib/table.js.map +1 -0
  333. package/dist/lib/time.d.ts +14 -0
  334. package/dist/lib/time.d.ts.map +1 -0
  335. package/dist/lib/time.js +64 -0
  336. package/dist/lib/time.js.map +1 -0
  337. package/dist/lib/virtualization.d.ts +21 -0
  338. package/dist/lib/virtualization.d.ts.map +1 -0
  339. package/dist/lib/virtualization.js +127 -0
  340. package/dist/lib/virtualization.js.map +1 -0
  341. package/dist/parsers/core.d.ts +36 -0
  342. package/dist/parsers/core.d.ts.map +1 -0
  343. package/dist/parsers/core.js +127 -0
  344. package/dist/parsers/core.js.map +1 -0
  345. package/dist/renderers/checkbox.d.ts +5 -0
  346. package/dist/renderers/checkbox.d.ts.map +1 -0
  347. package/dist/renderers/checkbox.js +16 -0
  348. package/dist/renderers/checkbox.js.map +1 -0
  349. package/dist/renderers/core.d.ts +48 -0
  350. package/dist/renderers/core.d.ts.map +1 -0
  351. package/dist/renderers/core.js +147 -0
  352. package/dist/renderers/core.js.map +1 -0
  353. package/dist/renderers/thousand_separator.d.ts +5 -0
  354. package/dist/renderers/thousand_separator.d.ts.map +1 -0
  355. package/dist/renderers/thousand_separator.js +17 -0
  356. package/dist/renderers/thousand_separator.js.map +1 -0
  357. package/dist/store/actions.d.ts +198 -0
  358. package/dist/store/actions.d.ts.map +1 -0
  359. package/dist/store/actions.js +524 -0
  360. package/dist/store/actions.js.map +1 -0
  361. package/dist/store/helpers.d.ts +28 -0
  362. package/dist/store/helpers.d.ts.map +1 -0
  363. package/dist/store/helpers.js +84 -0
  364. package/dist/store/helpers.js.map +1 -0
  365. package/dist/store/index.d.ts +11 -0
  366. package/dist/store/index.d.ts.map +1 -0
  367. package/dist/store/index.js +29 -0
  368. package/dist/store/index.js.map +1 -0
  369. package/dist/styles/embedder.d.ts +2 -0
  370. package/dist/styles/embedder.d.ts.map +1 -0
  371. package/dist/styles/embedder.js +20 -0
  372. package/dist/styles/embedder.js.map +1 -0
  373. package/dist/styles/minified.d.ts +3 -0
  374. package/dist/styles/minified.d.ts.map +1 -0
  375. package/dist/styles/minified.js +7 -0
  376. package/dist/styles/minified.js.map +1 -0
  377. package/dist/types.d.ts +218 -0
  378. package/dist/types.d.ts.map +1 -0
  379. package/dist/types.js +3 -0
  380. package/dist/types.js.map +1 -0
  381. package/dist/utils.d.ts +2 -0
  382. package/dist/utils.d.ts.map +1 -0
  383. package/dist/utils.js +11 -0
  384. package/dist/utils.js.map +1 -0
  385. package/package.json +6 -14
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,oDAAmD;AAA1C,sGAAA,SAAS,OAAA;AAClB,gDAAsD;AAA7C,yGAAA,cAAc,OAAA;AACvB,yCAA+D;AAAtD,gGAAA,QAAQ,OAAA;AACjB,uCAAyD;AAAhD,8FAAA,MAAM,OAAA;AACf,yCAAqF;AAA5E,gGAAA,KAAK,OAAA;AAAE,gGAAA,KAAK,OAAA;AAAE,0GAAA,eAAe,OAAA;AAAE,gHAAA,qBAAqB,OAAA;AAC7D,+CAAgE;AAAvD,iGAAA,GAAG,OAAA;AAAE,iGAAA,GAAG,OAAA;AAAE,iGAAA,GAAG,OAAA;AAAE,iGAAA,GAAG,OAAA;AAAE,iGAAA,GAAG,OAAA;AAAE,iGAAA,GAAG,OAAA;AAUrC,qEAAgF;AAAvE,oIAAA,8BAA8B,OAAA;AACvC,iDAA6D;AAApD,iHAAA,qBAAqB,OAAA;AAC9B,qDAA0D;AAAjD,sGAAA,YAAY,OAAA;AACrB,qCAAoC;AAA3B,8FAAA,KAAK,OAAA"}
@@ -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,393 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Autofill = void 0;
4
+ const date_fns_1 = require("date-fns");
5
+ const structs_1 = require("./structs");
6
+ const converters_1 = require("./converters");
7
+ const evaluator_1 = require("../formula/evaluator");
8
+ const time_1 = require("./time");
9
+ const BORDER_AUTOFILL_DRAGGING = "dashed 1px #000000";
10
+ const DirectionMapping = {
11
+ left: ["horizontal", -1],
12
+ right: ["horizontal", 1],
13
+ up: ["vertical", -1],
14
+ down: ["vertical", 1],
15
+ };
16
+ class Autofill {
17
+ constructor(store, draggingTo) {
18
+ const { table, choosing, selectingZone } = store;
19
+ this.src = (0, structs_1.complementSelectingArea)((0, structs_1.zoneToArea)(selectingZone), choosing);
20
+ this.direction = this.suggestDirection(draggingTo);
21
+ this.dst = this.getDestinationArea(draggingTo);
22
+ this.table = table;
23
+ }
24
+ get applied() {
25
+ const [orientation, sign] = DirectionMapping[this.direction];
26
+ const matrix = this.table.getMatrix({ area: this.src, evaluates: false });
27
+ const srcShape = (0, structs_1.areaShape)(Object.assign(Object.assign({}, this.src), { base: 1 }));
28
+ const dstShape = (0, structs_1.areaShape)(Object.assign(Object.assign({}, this.dst), { base: 1 }));
29
+ const diff = {};
30
+ if (orientation === "horizontal") {
31
+ for (let i = 0; i < dstShape.height; i++) {
32
+ const patterns = this.getChangePatterns(matrix[i]);
33
+ for (let j = 0; j < dstShape.width; j++) {
34
+ const baseCell = matrix[i % srcShape.height][j % srcShape.width];
35
+ const x = sign > 0 ? this.dst.left + j : this.dst.right - j;
36
+ const px = sign > 0 ? j % srcShape.width : (srcShape.width - 1 - (j % srcShape.width)) % srcShape.width;
37
+ diff[(0, converters_1.p2a)({ y: this.dst.top + i, x })] = Object.assign(Object.assign({}, baseCell), { value: patterns[px].next().value });
38
+ }
39
+ }
40
+ }
41
+ else {
42
+ for (let i = 0; i < dstShape.width; i++) {
43
+ const patterns = this.getChangePatterns(matrix.map((row) => row[i]));
44
+ for (let j = 0; j < dstShape.height; j++) {
45
+ const baseCell = matrix[i % srcShape.height][j % srcShape.width];
46
+ const y = sign > 0 ? this.dst.top + j : this.dst.bottom - j;
47
+ const py = sign > 0 ? j % srcShape.height : (srcShape.height - 1 - (j % srcShape.height)) % srcShape.height;
48
+ diff[(0, converters_1.p2a)({ y, x: this.dst.left + i })] = Object.assign(Object.assign({}, baseCell), { value: patterns[py].next().value });
49
+ }
50
+ }
51
+ }
52
+ const table = this.table.update({
53
+ diff,
54
+ reflection: {
55
+ selectingZone: (0, structs_1.areaToZone)(this.src),
56
+ }
57
+ });
58
+ return table;
59
+ }
60
+ get wholeArea() {
61
+ return (0, structs_1.concatAreas)(this.src, this.dst);
62
+ }
63
+ getCellStyle(target) {
64
+ const { x, y } = target;
65
+ const style = {};
66
+ const { top, left, bottom, right } = this.src;
67
+ switch (this.direction) {
68
+ case "left": {
69
+ if (this.dst.left <= x && x <= this.dst.right) {
70
+ if (top === y) {
71
+ style.borderTop = BORDER_AUTOFILL_DRAGGING;
72
+ }
73
+ if (bottom === y - 1) {
74
+ style.borderTop = BORDER_AUTOFILL_DRAGGING;
75
+ }
76
+ }
77
+ if (this.dst.left === x && top <= y && y <= bottom) {
78
+ style.borderLeft = BORDER_AUTOFILL_DRAGGING;
79
+ }
80
+ break;
81
+ }
82
+ case "right": {
83
+ if (this.dst.left <= x && x <= this.dst.right) {
84
+ if (top === y) {
85
+ style.borderTop = BORDER_AUTOFILL_DRAGGING;
86
+ }
87
+ if (bottom === y - 1) {
88
+ style.borderTop = BORDER_AUTOFILL_DRAGGING;
89
+ }
90
+ }
91
+ if (this.dst.right === x - 1 && top <= y && y <= bottom) {
92
+ style.borderLeft = BORDER_AUTOFILL_DRAGGING;
93
+ }
94
+ break;
95
+ }
96
+ case "up": {
97
+ if (this.dst.top <= y && y <= this.dst.bottom) {
98
+ if (left === x) {
99
+ style.borderLeft = BORDER_AUTOFILL_DRAGGING;
100
+ }
101
+ if (right === x - 1) {
102
+ style.borderLeft = BORDER_AUTOFILL_DRAGGING;
103
+ }
104
+ }
105
+ if (this.dst.top === y && left <= x && x <= right) {
106
+ style.borderTop = BORDER_AUTOFILL_DRAGGING;
107
+ }
108
+ break;
109
+ }
110
+ case "down": {
111
+ if (this.dst.top <= y && y <= this.dst.bottom) {
112
+ if (left === x) {
113
+ style.borderLeft = BORDER_AUTOFILL_DRAGGING;
114
+ }
115
+ if (right === x - 1) {
116
+ style.borderLeft = BORDER_AUTOFILL_DRAGGING;
117
+ }
118
+ }
119
+ if (this.dst.bottom === y - 1 && left <= x && x <= right) {
120
+ style.borderTop = BORDER_AUTOFILL_DRAGGING;
121
+ }
122
+ break;
123
+ }
124
+ }
125
+ return style;
126
+ }
127
+ getDestinationArea(autofillDraggingTo) {
128
+ const { x, y } = autofillDraggingTo;
129
+ const { top, left, bottom, right } = this.src;
130
+ switch (this.direction) {
131
+ case "left":
132
+ return { top, bottom, left: x, right: left - 1 };
133
+ case "right":
134
+ return { top, bottom, left: right + 1, right: x };
135
+ case "up":
136
+ return { left, right, top: y, bottom: top - 1 };
137
+ case "down":
138
+ return { left, right, top: bottom + 1, bottom: y };
139
+ }
140
+ return this.src;
141
+ }
142
+ suggestDirection(draggingTo) {
143
+ const { top, left, bottom, right } = this.src;
144
+ let horizontal = 0, vertical = 0;
145
+ if (draggingTo.x < left) {
146
+ horizontal = draggingTo.x - left;
147
+ }
148
+ else if (draggingTo.x > right) {
149
+ horizontal = draggingTo.x - right;
150
+ }
151
+ if (draggingTo.y < top) {
152
+ vertical = draggingTo.y - top;
153
+ }
154
+ else if (draggingTo.y > bottom) {
155
+ vertical = draggingTo.y - bottom;
156
+ }
157
+ // diagonal
158
+ if (Math.abs(horizontal) > 0 && Math.abs(vertical) > 0) {
159
+ if (Math.abs(horizontal) > Math.abs(vertical)) {
160
+ return horizontal < 0 ? "left" : "right";
161
+ }
162
+ return vertical < 0 ? "up" : "down";
163
+ }
164
+ if (horizontal !== 0) {
165
+ return horizontal < 0 ? "left" : "right";
166
+ }
167
+ if (vertical !== 0) {
168
+ return vertical < 0 ? "up" : "down";
169
+ }
170
+ return "down";
171
+ }
172
+ ;
173
+ getChangePatterns(cells) {
174
+ const result = [];
175
+ const groups = groupByType(cells);
176
+ const [orientation, sign] = DirectionMapping[this.direction];
177
+ groups.forEach((group) => {
178
+ const lastValue = sign > 0 ? group.last : group.first;
179
+ switch (group.kind) {
180
+ case "other": {
181
+ result.push(pass(group.first));
182
+ return;
183
+ }
184
+ case "formula": {
185
+ const value = group.first;
186
+ const table = this.table;
187
+ function* generateFormula() {
188
+ let slide = 0;
189
+ const skip = cells.length * sign;
190
+ while (true) {
191
+ slide += skip;
192
+ yield (0, evaluator_1.convertFormulaAbsolute)({
193
+ value,
194
+ table,
195
+ slideY: orientation === "vertical" ? slide : 0,
196
+ slideX: orientation === "horizontal" ? slide : 0,
197
+ });
198
+ }
199
+ }
200
+ result.push(generateFormula());
201
+ return;
202
+ }
203
+ case "number": {
204
+ if (!group.equidistant) {
205
+ result.push(pass(group.first), ...group.nexts.map((v) => pass(v)));
206
+ return;
207
+ }
208
+ function* generateNumber() {
209
+ let value = lastValue;
210
+ const skip = group.numericDelta * sign;
211
+ while (true) {
212
+ value += skip;
213
+ yield value;
214
+ }
215
+ }
216
+ const g = generateNumber();
217
+ result.push(g, ...group.nexts.map(() => g));
218
+ return;
219
+ }
220
+ case "date": {
221
+ const next = (d) => {
222
+ return sign > 0 ? group.timeDelta.add(d) : group.timeDelta.sub(d);
223
+ };
224
+ if (!group.equidistant) {
225
+ result.push(pass(group.first), ...group.nexts.map((v) => pass(v)));
226
+ return;
227
+ }
228
+ function* generateDate() {
229
+ let value = lastValue;
230
+ while (true) {
231
+ value = next(value);
232
+ yield new Date(value);
233
+ }
234
+ }
235
+ const g = generateDate();
236
+ result.push(g, ...group.nexts.map(() => g));
237
+ return;
238
+ }
239
+ case "string+number": {
240
+ if (!group.equidistant) {
241
+ result.push(pass(group.first), ...group.nexts.map((v) => pass(v)));
242
+ return;
243
+ }
244
+ function* generateStringNumber() {
245
+ const { prefix } = extractStringNumber(group.first);
246
+ const { number: lastNumber } = extractStringNumber(lastValue);
247
+ let value = lastNumber;
248
+ const skip = group.numericDelta * sign;
249
+ while (true) {
250
+ value += skip;
251
+ yield `${prefix}${Math.abs(value)}`;
252
+ }
253
+ }
254
+ const g = generateStringNumber();
255
+ result.push(g, ...group.nexts.map(() => g));
256
+ return;
257
+ }
258
+ }
259
+ });
260
+ return result;
261
+ }
262
+ }
263
+ exports.Autofill = Autofill;
264
+ function* pass(value) {
265
+ while (true) {
266
+ yield value;
267
+ }
268
+ }
269
+ const StringNumberPattern = new RegExp('(.+?)(\\d+)$');
270
+ const extractStringNumber = (value) => {
271
+ const match = value.match(StringNumberPattern);
272
+ if (match) {
273
+ const [, prefix, n] = match;
274
+ return { prefix, number: Number(n) };
275
+ }
276
+ return { prefix: "", number: 0 };
277
+ };
278
+ class TypedGroup {
279
+ constructor(value) {
280
+ this.timeDelta = time_1.TimeDelta.create();
281
+ this.numericDelta = 0;
282
+ this.equidistant = true;
283
+ this.first = value;
284
+ this.nexts = [];
285
+ this.kind = this.discriminate(value);
286
+ }
287
+ discriminate(value) {
288
+ let kind = value instanceof Date ? "date" : typeof value;
289
+ if (kind === "number" || kind === "date") {
290
+ return kind;
291
+ }
292
+ if (kind === "string" && value[0] === "=") {
293
+ return "formula";
294
+ }
295
+ else if (kind === "string" && value.match(StringNumberPattern)) {
296
+ return "string+number";
297
+ }
298
+ return "other";
299
+ }
300
+ get last() {
301
+ if (this.nexts.length === 0) {
302
+ return this.first;
303
+ }
304
+ return this.nexts[this.nexts.length - 1];
305
+ }
306
+ add(value) {
307
+ const kind = this.discriminate(value);
308
+ if (this.kind !== kind || kind === "other" || kind === "formula") {
309
+ return new TypedGroup(value);
310
+ }
311
+ if (this.nexts.length === 0) {
312
+ switch (kind) {
313
+ case "date": {
314
+ this.timeDelta = new time_1.TimeDelta(value, this.first);
315
+ break;
316
+ }
317
+ case "number": {
318
+ this.numericDelta = value - this.first;
319
+ break;
320
+ }
321
+ case "string+number": {
322
+ const { prefix: prefix1, number: number1 } = extractStringNumber(this.first);
323
+ const { prefix: prefix2, number: number2 } = extractStringNumber(value);
324
+ if (prefix1 === prefix2) {
325
+ this.numericDelta = number2 - number1;
326
+ }
327
+ break;
328
+ }
329
+ }
330
+ }
331
+ this.nexts.push(value);
332
+ }
333
+ subdivide() {
334
+ if (this.nexts.length === 0) {
335
+ return [];
336
+ }
337
+ const news = [];
338
+ let lastGroup = this;
339
+ switch (this.kind) {
340
+ case "date": {
341
+ const eq = this.nexts.every((v, i) => i === 0 || (0, date_fns_1.isEqual)(v, this.timeDelta.add(this.nexts[i - 1])));
342
+ this.equidistant = eq;
343
+ return [];
344
+ }
345
+ case "number": {
346
+ const eq = this.nexts.every((v, i) => i === 0 || v === this.first + this.numericDelta * (i + 1));
347
+ this.equidistant = eq;
348
+ return [];
349
+ }
350
+ case "string+number": {
351
+ let { prefix: basePrefix, number: baseNumber } = extractStringNumber(this.first);
352
+ for (let i = 0; i < lastGroup.nexts.length; i++) {
353
+ const next = lastGroup.nexts[i];
354
+ const { prefix, number } = extractStringNumber(next);
355
+ if (basePrefix !== prefix) {
356
+ const nexts = this.nexts.splice(i, this.nexts.length);
357
+ lastGroup = new TypedGroup(nexts.splice(0, 1)[0]);
358
+ nexts.forEach(lastGroup.add.bind(lastGroup));
359
+ news.push(lastGroup, ...lastGroup.subdivide());
360
+ break;
361
+ }
362
+ else {
363
+ const { number: firstNumber } = extractStringNumber(lastGroup.first);
364
+ if (number !== firstNumber + (i + 1) * lastGroup.numericDelta) {
365
+ lastGroup.equidistant = false;
366
+ }
367
+ }
368
+ }
369
+ break;
370
+ }
371
+ }
372
+ return news;
373
+ }
374
+ }
375
+ function groupByType(cells) {
376
+ var _a, _b;
377
+ let group = new TypedGroup((_a = cells[0]) === null || _a === void 0 ? void 0 : _a.value);
378
+ const groups = [group];
379
+ for (let i = 1; i < cells.length; i++) {
380
+ const value = (_b = cells[i]) === null || _b === void 0 ? void 0 : _b.value;
381
+ const nextGroup = group.add(value);
382
+ if (nextGroup) {
383
+ groups.push(nextGroup);
384
+ group = nextGroup;
385
+ }
386
+ }
387
+ for (let i = groups.length - 1; i >= 0; i--) {
388
+ const group = groups[i];
389
+ groups.splice(i + 1, 0, ...group.subdivide());
390
+ }
391
+ return groups;
392
+ }
393
+ //# 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,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.clip = void 0;
4
+ const structs_1 = require("./structs");
5
+ const solver_1 = require("../formula/solver");
6
+ const clip = (store) => {
7
+ const { selectingZone, choosing, editorRef, table } = store;
8
+ const { y, x } = choosing;
9
+ let selectingArea = (0, structs_1.zoneToArea)(selectingZone);
10
+ let area = selectingArea;
11
+ if (area.left === -1) {
12
+ area = { top: y, left: x, bottom: y, right: x };
13
+ }
14
+ const input = editorRef.current;
15
+ const trimmed = table.trim(area);
16
+ const tsv = table2tsv(trimmed);
17
+ if (navigator.clipboard) {
18
+ navigator.clipboard.writeText(tsv);
19
+ }
20
+ else if (input != null) {
21
+ input.value = tsv;
22
+ input.focus();
23
+ input.select();
24
+ document.execCommand("copy");
25
+ input.value = "";
26
+ input.blur();
27
+ }
28
+ return area;
29
+ };
30
+ exports.clip = clip;
31
+ const table2tsv = (table) => {
32
+ const lines = [];
33
+ const matrix = (0, solver_1.solveTable)({ table, raise: false });
34
+ matrix.forEach((row, i) => {
35
+ const cols = [];
36
+ row.forEach((col, j) => {
37
+ const value = table.stringify({ y: i, x: j }, col);
38
+ if (value.indexOf("\n") !== -1) {
39
+ cols.push(`"${value.replace(/"/g, '""')}"`);
40
+ }
41
+ else {
42
+ cols.push(value);
43
+ }
44
+ });
45
+ lines.push(cols.join("\t"));
46
+ });
47
+ return lines.join("\n");
48
+ };
49
+ //# sourceMappingURL=clipboard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clipboard.js","sourceRoot":"","sources":["../../src/lib/clipboard.ts"],"names":[],"mappings":";;;AAEA,uCAAuC;AACvC,8CAA+C;AAGxC,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,IAAA,oBAAU,EAAC,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;AAvBW,QAAA,IAAI,QAuBf;AAEF,MAAM,SAAS,GAAG,CAAC,KAAY,EAAU,EAAE;IACzC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,MAAM,GAAG,IAAA,mBAAU,EAAC,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"}
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.grantAddressAbsolute = exports.a2p = exports.tsv2matrix = exports.p2a = exports.r2y = exports.y2r = exports.c2x = exports.x2c = void 0;
4
+ const constants_1 = require("../constants");
5
+ const ALPHABET = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
6
+ const N2C_CACHE = new Map();
7
+ const C2N_CACHE = new Map();
8
+ const getColumnLetterFromNumber = (key, cacheSize = constants_1.DEFAULT_ALPHABET_CACHE_SIZE) => {
9
+ const cached = N2C_CACHE.get(--key);
10
+ if (cached != null) {
11
+ return cached;
12
+ }
13
+ if (key === 0) {
14
+ return "";
15
+ }
16
+ let num = key;
17
+ let result = "";
18
+ do {
19
+ result = ALPHABET[--num % 26] + result;
20
+ num = Math.floor(num / 26);
21
+ } while (num > 0);
22
+ N2C_CACHE.set(key, result);
23
+ const it = N2C_CACHE.keys();
24
+ for (let st = it.next(); N2C_CACHE.size > cacheSize; st = it.next()) {
25
+ N2C_CACHE.delete(st.value);
26
+ }
27
+ return result;
28
+ };
29
+ const getNumberFromColumnLetter = (key, cacheSize = constants_1.DEFAULT_ALPHABET_CACHE_SIZE) => {
30
+ const cached = C2N_CACHE.get(key);
31
+ if (cached != null) {
32
+ return cached;
33
+ }
34
+ if (key === "") {
35
+ return 0;
36
+ }
37
+ let alpha = key;
38
+ let result = 0;
39
+ for (let digit = 0; digit < alpha.length; digit++) {
40
+ const a = alpha[alpha.length - digit - 1];
41
+ const num = ALPHABET.indexOf(a) + 1;
42
+ result += Math.pow(ALPHABET.length, digit) * num;
43
+ }
44
+ C2N_CACHE.set(key, result);
45
+ const it = C2N_CACHE.keys();
46
+ for (let st = it.next(); C2N_CACHE.size > cacheSize; st = it.next()) {
47
+ C2N_CACHE.delete(st.value);
48
+ }
49
+ return result;
50
+ };
51
+ const x2c = (x) => {
52
+ if (x === 0) {
53
+ return "";
54
+ }
55
+ const c = getColumnLetterFromNumber(x + 1);
56
+ return x < 0 ? `$${c}` : c;
57
+ };
58
+ exports.x2c = x2c;
59
+ const c2x = (col, absolute = false) => {
60
+ const n = getNumberFromColumnLetter(col);
61
+ return absolute ? -n : n;
62
+ };
63
+ exports.c2x = c2x;
64
+ const y2r = (y) => {
65
+ if (y === 0) {
66
+ return "";
67
+ }
68
+ return y < 0 ? `$${y}` : String(y);
69
+ };
70
+ exports.y2r = y2r;
71
+ const r2y = (row, absolute = false) => {
72
+ if (typeof row === "string") {
73
+ row = parseInt(row, 10);
74
+ }
75
+ return absolute ? -row : row;
76
+ };
77
+ exports.r2y = r2y;
78
+ const p2a = ({ y, x }) => {
79
+ return `${(0, exports.x2c)(x)}${(0, exports.y2r)(y)}`;
80
+ };
81
+ exports.p2a = p2a;
82
+ const restoreDoubleQuote = (text) => text.replace(/\x00/g, '"');
83
+ const tsv2matrix = (tsv) => {
84
+ tsv = tsv.replace(/""/g, "\x00");
85
+ const rows = [[]];
86
+ let row = rows[0];
87
+ let entering = false;
88
+ let word = "";
89
+ for (let i = 0; i < tsv.length; i++) {
90
+ const s = tsv[i];
91
+ if (s === "\n" && !entering) {
92
+ row.push(restoreDoubleQuote(word));
93
+ word = "";
94
+ row = [];
95
+ rows.push(row);
96
+ continue;
97
+ }
98
+ if (s === "\t") {
99
+ row.push(restoreDoubleQuote(word));
100
+ word = "";
101
+ continue;
102
+ }
103
+ if (s === '"' && !entering && word === "") {
104
+ entering = true;
105
+ continue;
106
+ }
107
+ if (s === '"' && entering) {
108
+ entering = false;
109
+ continue;
110
+ }
111
+ word += s;
112
+ }
113
+ if (word) {
114
+ row.push(restoreDoubleQuote(word));
115
+ }
116
+ return rows;
117
+ };
118
+ exports.tsv2matrix = tsv2matrix;
119
+ const a2p = (address) => {
120
+ const m = address.match(/(\$)?([A-Z]*)(\$)?([0-9]*)/);
121
+ if (m == null) {
122
+ console.error("invalid address", address);
123
+ return { y: 1, x: 1 };
124
+ }
125
+ const [_, absoluteCol, col, absoluteRow, row] = m.slice();
126
+ return { y: (0, exports.r2y)(row, !!absoluteRow) || 0, x: (0, exports.c2x)(col, !!absoluteCol) || 0 };
127
+ };
128
+ exports.a2p = a2p;
129
+ const grantAddressAbsolute = (address, absCol, absRow) => {
130
+ const m = address.match(/([A-Z]*)([0-9]*)/);
131
+ if (m == null) {
132
+ return;
133
+ }
134
+ const [_, col, row] = m.slice();
135
+ return `${absCol ? "$" : ""}${col}${absRow ? "$" : ""}${row}`;
136
+ };
137
+ exports.grantAddressAbsolute = grantAddressAbsolute;
138
+ //# sourceMappingURL=converters.js.map