@gridsheet/react-core 0.12.2 → 0.12.4-alpha.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 (309) hide show
  1. package/README.md +1 -1
  2. package/dist/components/Cell.d.ts.map +1 -1
  3. package/dist/components/Emitter.d.ts.map +1 -1
  4. package/dist/components/GridSheet.d.ts.map +1 -1
  5. package/dist/components/HeaderLeftCell.d.ts.map +1 -1
  6. package/dist/components/HeaderTopCell.d.ts.map +1 -1
  7. package/dist/components/Resizer.d.ts.map +1 -1
  8. package/dist/components/SearchBox.d.ts.map +1 -1
  9. package/dist/components/Tabular.d.ts.map +1 -1
  10. package/dist/constants.d.ts.map +1 -1
  11. package/dist/formula/evaluator.d.ts.map +1 -1
  12. package/dist/formula/functions/__base.d.ts.map +1 -1
  13. package/dist/formula/solver.d.ts.map +1 -1
  14. package/dist/index.d.ts +1824 -1
  15. package/dist/index.js +5205 -11
  16. package/dist/lib/structs.d.ts.map +1 -1
  17. package/dist/lib/table.d.ts.map +1 -1
  18. package/dist/lib/time.d.ts.map +1 -1
  19. package/dist/lib/virtualization.d.ts.map +1 -1
  20. package/dist/parsers/core.d.ts.map +1 -1
  21. package/dist/renderers/core.d.ts.map +1 -1
  22. package/dist/store/actions.d.ts.map +1 -1
  23. package/dist/store/index.d.ts.map +1 -1
  24. package/dist/styles/minified.d.ts.map +1 -1
  25. package/dist/types.d.ts.map +1 -1
  26. package/package.json +13 -3
  27. package/dist/components/Cell.d.ts +0 -8
  28. package/dist/components/Cell.js +0 -199
  29. package/dist/components/Cell.js.map +0 -1
  30. package/dist/components/ContextMenu.d.ts +0 -3
  31. package/dist/components/ContextMenu.js +0 -207
  32. package/dist/components/ContextMenu.js.map +0 -1
  33. package/dist/components/Editor.d.ts +0 -3
  34. package/dist/components/Editor.js +0 -304
  35. package/dist/components/Editor.js.map +0 -1
  36. package/dist/components/Emitter.d.ts +0 -9
  37. package/dist/components/Emitter.js +0 -26
  38. package/dist/components/Emitter.js.map +0 -1
  39. package/dist/components/GridSheet.d.ts +0 -4
  40. package/dist/components/GridSheet.js +0 -110
  41. package/dist/components/GridSheet.js.map +0 -1
  42. package/dist/components/HeaderLeftCell.d.ts +0 -7
  43. package/dist/components/HeaderLeftCell.js +0 -67
  44. package/dist/components/HeaderLeftCell.js.map +0 -1
  45. package/dist/components/HeaderTopCell.d.ts +0 -7
  46. package/dist/components/HeaderTopCell.js +0 -68
  47. package/dist/components/HeaderTopCell.js.map +0 -1
  48. package/dist/components/Resizer.d.ts +0 -3
  49. package/dist/components/Resizer.js +0 -83
  50. package/dist/components/Resizer.js.map +0 -1
  51. package/dist/components/SearchBox.d.ts +0 -3
  52. package/dist/components/SearchBox.js +0 -52
  53. package/dist/components/SearchBox.js.map +0 -1
  54. package/dist/components/StoreInitializer.d.ts +0 -4
  55. package/dist/components/StoreInitializer.js +0 -68
  56. package/dist/components/StoreInitializer.js.map +0 -1
  57. package/dist/components/Tabular.d.ts +0 -9
  58. package/dist/components/Tabular.js +0 -84
  59. package/dist/components/Tabular.js.map +0 -1
  60. package/dist/constants.d.ts +0 -18
  61. package/dist/constants.js +0 -21
  62. package/dist/constants.js.map +0 -1
  63. package/dist/formula/evaluator.d.ts +0 -91
  64. package/dist/formula/evaluator.js +0 -541
  65. package/dist/formula/evaluator.js.map +0 -1
  66. package/dist/formula/functions/__base.d.ts +0 -23
  67. package/dist/formula/functions/__base.js +0 -16
  68. package/dist/formula/functions/__base.js.map +0 -1
  69. package/dist/formula/functions/__utils.d.ts +0 -6
  70. package/dist/formula/functions/__utils.js +0 -102
  71. package/dist/formula/functions/__utils.js.map +0 -1
  72. package/dist/formula/functions/abs.d.ts +0 -12
  73. package/dist/formula/functions/abs.js +0 -21
  74. package/dist/formula/functions/abs.js.map +0 -1
  75. package/dist/formula/functions/abs.spec.d.ts +0 -2
  76. package/dist/formula/functions/abs.spec.js +0 -29
  77. package/dist/formula/functions/abs.spec.js.map +0 -1
  78. package/dist/formula/functions/acos.d.ts +0 -12
  79. package/dist/formula/functions/acos.js +0 -29
  80. package/dist/formula/functions/acos.js.map +0 -1
  81. package/dist/formula/functions/add.d.ts +0 -13
  82. package/dist/formula/functions/add.js +0 -50
  83. package/dist/formula/functions/add.js.map +0 -1
  84. package/dist/formula/functions/and.d.ts +0 -19
  85. package/dist/formula/functions/and.js +0 -28
  86. package/dist/formula/functions/and.js.map +0 -1
  87. package/dist/formula/functions/asin.d.ts +0 -12
  88. package/dist/formula/functions/asin.js +0 -29
  89. package/dist/formula/functions/asin.js.map +0 -1
  90. package/dist/formula/functions/atan.d.ts +0 -12
  91. package/dist/formula/functions/atan.js +0 -26
  92. package/dist/formula/functions/atan.js.map +0 -1
  93. package/dist/formula/functions/atan2.d.ts +0 -12
  94. package/dist/formula/functions/atan2.js +0 -32
  95. package/dist/formula/functions/atan2.js.map +0 -1
  96. package/dist/formula/functions/average.d.ts +0 -19
  97. package/dist/formula/functions/average.js +0 -41
  98. package/dist/formula/functions/average.js.map +0 -1
  99. package/dist/formula/functions/col.d.ts +0 -14
  100. package/dist/formula/functions/col.js +0 -30
  101. package/dist/formula/functions/col.js.map +0 -1
  102. package/dist/formula/functions/concat.d.ts +0 -12
  103. package/dist/formula/functions/concat.js +0 -27
  104. package/dist/formula/functions/concat.js.map +0 -1
  105. package/dist/formula/functions/concatenate.d.ts +0 -19
  106. package/dist/formula/functions/concatenate.js +0 -25
  107. package/dist/formula/functions/concatenate.js.map +0 -1
  108. package/dist/formula/functions/cos.d.ts +0 -12
  109. package/dist/formula/functions/cos.js +0 -26
  110. package/dist/formula/functions/cos.js.map +0 -1
  111. package/dist/formula/functions/count.d.ts +0 -19
  112. package/dist/formula/functions/count.js +0 -35
  113. package/dist/formula/functions/count.js.map +0 -1
  114. package/dist/formula/functions/counta.d.ts +0 -19
  115. package/dist/formula/functions/counta.js +0 -35
  116. package/dist/formula/functions/counta.js.map +0 -1
  117. package/dist/formula/functions/countif.d.ts +0 -13
  118. package/dist/formula/functions/countif.js +0 -30
  119. package/dist/formula/functions/countif.js.map +0 -1
  120. package/dist/formula/functions/divide.d.ts +0 -12
  121. package/dist/formula/functions/divide.js +0 -33
  122. package/dist/formula/functions/divide.js.map +0 -1
  123. package/dist/formula/functions/eq.d.ts +0 -12
  124. package/dist/formula/functions/eq.js +0 -25
  125. package/dist/formula/functions/eq.js.map +0 -1
  126. package/dist/formula/functions/exp.d.ts +0 -12
  127. package/dist/formula/functions/exp.js +0 -28
  128. package/dist/formula/functions/exp.js.map +0 -1
  129. package/dist/formula/functions/gt.d.ts +0 -12
  130. package/dist/formula/functions/gt.js +0 -27
  131. package/dist/formula/functions/gt.js.map +0 -1
  132. package/dist/formula/functions/gte.d.ts +0 -12
  133. package/dist/formula/functions/gte.js +0 -27
  134. package/dist/formula/functions/gte.js.map +0 -1
  135. package/dist/formula/functions/hlookup.d.ts +0 -18
  136. package/dist/formula/functions/hlookup.js +0 -74
  137. package/dist/formula/functions/hlookup.js.map +0 -1
  138. package/dist/formula/functions/if.d.ts +0 -17
  139. package/dist/formula/functions/if.js +0 -36
  140. package/dist/formula/functions/if.js.map +0 -1
  141. package/dist/formula/functions/iferror.d.ts +0 -20
  142. package/dist/formula/functions/iferror.js +0 -41
  143. package/dist/formula/functions/iferror.js.map +0 -1
  144. package/dist/formula/functions/iferror.spec.d.ts +0 -2
  145. package/dist/formula/functions/iferror.spec.js +0 -61
  146. package/dist/formula/functions/iferror.spec.js.map +0 -1
  147. package/dist/formula/functions/len.d.ts +0 -12
  148. package/dist/formula/functions/len.js +0 -26
  149. package/dist/formula/functions/len.js.map +0 -1
  150. package/dist/formula/functions/lenb.d.ts +0 -12
  151. package/dist/formula/functions/lenb.js +0 -26
  152. package/dist/formula/functions/lenb.js.map +0 -1
  153. package/dist/formula/functions/ln.d.ts +0 -12
  154. package/dist/formula/functions/ln.js +0 -29
  155. package/dist/formula/functions/ln.js.map +0 -1
  156. package/dist/formula/functions/log.d.ts +0 -12
  157. package/dist/formula/functions/log.js +0 -35
  158. package/dist/formula/functions/log.js.map +0 -1
  159. package/dist/formula/functions/log10.d.ts +0 -12
  160. package/dist/formula/functions/log10.js +0 -29
  161. package/dist/formula/functions/log10.js.map +0 -1
  162. package/dist/formula/functions/lt.d.ts +0 -12
  163. package/dist/formula/functions/lt.js +0 -27
  164. package/dist/formula/functions/lt.js.map +0 -1
  165. package/dist/formula/functions/lte.d.ts +0 -12
  166. package/dist/formula/functions/lte.js +0 -27
  167. package/dist/formula/functions/lte.js.map +0 -1
  168. package/dist/formula/functions/max.d.ts +0 -19
  169. package/dist/formula/functions/max.js +0 -44
  170. package/dist/formula/functions/max.js.map +0 -1
  171. package/dist/formula/functions/min.d.ts +0 -19
  172. package/dist/formula/functions/min.js +0 -44
  173. package/dist/formula/functions/min.js.map +0 -1
  174. package/dist/formula/functions/minus.d.ts +0 -13
  175. package/dist/formula/functions/minus.js +0 -50
  176. package/dist/formula/functions/minus.js.map +0 -1
  177. package/dist/formula/functions/mod.d.ts +0 -12
  178. package/dist/formula/functions/mod.js +0 -31
  179. package/dist/formula/functions/mod.js.map +0 -1
  180. package/dist/formula/functions/mod.spec.d.ts +0 -2
  181. package/dist/formula/functions/mod.spec.js +0 -52
  182. package/dist/formula/functions/mod.spec.js.map +0 -1
  183. package/dist/formula/functions/multiply.d.ts +0 -12
  184. package/dist/formula/functions/multiply.js +0 -27
  185. package/dist/formula/functions/multiply.js.map +0 -1
  186. package/dist/formula/functions/ne.d.ts +0 -12
  187. package/dist/formula/functions/ne.js +0 -25
  188. package/dist/formula/functions/ne.js.map +0 -1
  189. package/dist/formula/functions/not.d.ts +0 -12
  190. package/dist/formula/functions/not.js +0 -30
  191. package/dist/formula/functions/not.js.map +0 -1
  192. package/dist/formula/functions/now.d.ts +0 -9
  193. package/dist/formula/functions/now.js +0 -21
  194. package/dist/formula/functions/now.js.map +0 -1
  195. package/dist/formula/functions/or.d.ts +0 -19
  196. package/dist/formula/functions/or.js +0 -28
  197. package/dist/formula/functions/or.js.map +0 -1
  198. package/dist/formula/functions/pi.d.ts +0 -9
  199. package/dist/formula/functions/pi.js +0 -19
  200. package/dist/formula/functions/pi.js.map +0 -1
  201. package/dist/formula/functions/power.d.ts +0 -12
  202. package/dist/formula/functions/power.js +0 -24
  203. package/dist/formula/functions/power.js.map +0 -1
  204. package/dist/formula/functions/product.d.ts +0 -19
  205. package/dist/formula/functions/product.js +0 -37
  206. package/dist/formula/functions/product.js.map +0 -1
  207. package/dist/formula/functions/radians.d.ts +0 -12
  208. package/dist/formula/functions/radians.js +0 -26
  209. package/dist/formula/functions/radians.js.map +0 -1
  210. package/dist/formula/functions/rand.d.ts +0 -9
  211. package/dist/formula/functions/rand.js +0 -19
  212. package/dist/formula/functions/rand.js.map +0 -1
  213. package/dist/formula/functions/round.d.ts +0 -17
  214. package/dist/formula/functions/round.js +0 -34
  215. package/dist/formula/functions/round.js.map +0 -1
  216. package/dist/formula/functions/rounddown.d.ts +0 -17
  217. package/dist/formula/functions/rounddown.js +0 -34
  218. package/dist/formula/functions/rounddown.js.map +0 -1
  219. package/dist/formula/functions/roundup.d.ts +0 -17
  220. package/dist/formula/functions/roundup.js +0 -34
  221. package/dist/formula/functions/roundup.js.map +0 -1
  222. package/dist/formula/functions/row.d.ts +0 -14
  223. package/dist/formula/functions/row.js +0 -30
  224. package/dist/formula/functions/row.js.map +0 -1
  225. package/dist/formula/functions/sin.d.ts +0 -12
  226. package/dist/formula/functions/sin.js +0 -26
  227. package/dist/formula/functions/sin.js.map +0 -1
  228. package/dist/formula/functions/sqrt.d.ts +0 -12
  229. package/dist/formula/functions/sqrt.js +0 -29
  230. package/dist/formula/functions/sqrt.js.map +0 -1
  231. package/dist/formula/functions/sum.d.ts +0 -19
  232. package/dist/formula/functions/sum.js +0 -44
  233. package/dist/formula/functions/sum.js.map +0 -1
  234. package/dist/formula/functions/sum.spec.d.ts +0 -2
  235. package/dist/formula/functions/sum.spec.js +0 -40
  236. package/dist/formula/functions/sum.spec.js.map +0 -1
  237. package/dist/formula/functions/sumif.d.ts +0 -18
  238. package/dist/formula/functions/sumif.js +0 -59
  239. package/dist/formula/functions/sumif.js.map +0 -1
  240. package/dist/formula/functions/tan.d.ts +0 -12
  241. package/dist/formula/functions/tan.js +0 -26
  242. package/dist/formula/functions/tan.js.map +0 -1
  243. package/dist/formula/functions/uminus.d.ts +0 -12
  244. package/dist/formula/functions/uminus.js +0 -23
  245. package/dist/formula/functions/uminus.js.map +0 -1
  246. package/dist/formula/functions/vlookup.d.ts +0 -18
  247. package/dist/formula/functions/vlookup.js +0 -74
  248. package/dist/formula/functions/vlookup.js.map +0 -1
  249. package/dist/formula/mapping.d.ts +0 -114
  250. package/dist/formula/mapping.js +0 -114
  251. package/dist/formula/mapping.js.map +0 -1
  252. package/dist/formula/solver.d.ts +0 -12
  253. package/dist/formula/solver.js +0 -64
  254. package/dist/formula/solver.js.map +0 -1
  255. package/dist/index.js.map +0 -1
  256. package/dist/lib/autofill.d.ts +0 -17
  257. package/dist/lib/autofill.js +0 -389
  258. package/dist/lib/autofill.js.map +0 -1
  259. package/dist/lib/clipboard.d.ts +0 -3
  260. package/dist/lib/clipboard.js +0 -45
  261. package/dist/lib/clipboard.js.map +0 -1
  262. package/dist/lib/converters.d.ts +0 -10
  263. package/dist/lib/converters.js +0 -127
  264. package/dist/lib/converters.js.map +0 -1
  265. package/dist/lib/structs.d.ts +0 -60
  266. package/dist/lib/structs.js +0 -251
  267. package/dist/lib/structs.js.map +0 -1
  268. package/dist/lib/table.d.ts +0 -299
  269. package/dist/lib/table.js +0 -989
  270. package/dist/lib/table.js.map +0 -1
  271. package/dist/lib/time.d.ts +0 -14
  272. package/dist/lib/time.js +0 -60
  273. package/dist/lib/time.js.map +0 -1
  274. package/dist/lib/virtualization.d.ts +0 -30
  275. package/dist/lib/virtualization.js +0 -114
  276. package/dist/lib/virtualization.js.map +0 -1
  277. package/dist/parsers/core.d.ts +0 -36
  278. package/dist/parsers/core.js +0 -123
  279. package/dist/parsers/core.js.map +0 -1
  280. package/dist/renderers/checkbox.d.ts +0 -5
  281. package/dist/renderers/checkbox.js +0 -10
  282. package/dist/renderers/checkbox.js.map +0 -1
  283. package/dist/renderers/core.d.ts +0 -48
  284. package/dist/renderers/core.js +0 -143
  285. package/dist/renderers/core.js.map +0 -1
  286. package/dist/renderers/thousand_separator.d.ts +0 -5
  287. package/dist/renderers/thousand_separator.js +0 -14
  288. package/dist/renderers/thousand_separator.js.map +0 -1
  289. package/dist/store/actions.d.ts +0 -198
  290. package/dist/store/actions.js +0 -519
  291. package/dist/store/actions.js.map +0 -1
  292. package/dist/store/helpers.d.ts +0 -28
  293. package/dist/store/helpers.js +0 -78
  294. package/dist/store/helpers.js.map +0 -1
  295. package/dist/store/index.d.ts +0 -11
  296. package/dist/store/index.js +0 -3
  297. package/dist/store/index.js.map +0 -1
  298. package/dist/styles/embedder.d.ts +0 -2
  299. package/dist/styles/embedder.js +0 -16
  300. package/dist/styles/embedder.js.map +0 -1
  301. package/dist/styles/minified.d.ts +0 -3
  302. package/dist/styles/minified.js +0 -4
  303. package/dist/styles/minified.js.map +0 -1
  304. package/dist/types.d.ts +0 -213
  305. package/dist/types.js +0 -2
  306. package/dist/types.js.map +0 -1
  307. package/dist/utils.d.ts +0 -2
  308. package/dist/utils.js +0 -7
  309. package/dist/utils.js.map +0 -1
@@ -1,389 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"autofill.js","sourceRoot":"","sources":["../../src/lib/autofill.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { StoreType, AreaType } from "../types";
2
- export declare const clip: (store: StoreType) => AreaType;
3
- //# sourceMappingURL=clipboard.d.ts.map
@@ -1,45 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,10 +0,0 @@
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
@@ -1,127 +0,0 @@
1
- import { DEFAULT_ALPHABET_CACHE_SIZE } from "../constants";
2
- const ALPHABET = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
3
- const N2C_CACHE = new Map();
4
- const C2N_CACHE = new Map();
5
- const getColumnLetterFromNumber = (key, cacheSize = DEFAULT_ALPHABET_CACHE_SIZE) => {
6
- const cached = N2C_CACHE.get(--key);
7
- if (cached != null) {
8
- return cached;
9
- }
10
- if (key === 0) {
11
- return "";
12
- }
13
- let num = key;
14
- let result = "";
15
- do {
16
- result = ALPHABET[--num % 26] + result;
17
- num = Math.floor(num / 26);
18
- } while (num > 0);
19
- N2C_CACHE.set(key, result);
20
- const it = N2C_CACHE.keys();
21
- for (let st = it.next(); N2C_CACHE.size > cacheSize; st = it.next()) {
22
- N2C_CACHE.delete(st.value);
23
- }
24
- return result;
25
- };
26
- const getNumberFromColumnLetter = (key, cacheSize = DEFAULT_ALPHABET_CACHE_SIZE) => {
27
- const cached = C2N_CACHE.get(key);
28
- if (cached != null) {
29
- return cached;
30
- }
31
- if (key === "") {
32
- return 0;
33
- }
34
- let alpha = key;
35
- let result = 0;
36
- for (let digit = 0; digit < alpha.length; digit++) {
37
- const a = alpha[alpha.length - digit - 1];
38
- const num = ALPHABET.indexOf(a) + 1;
39
- result += Math.pow(ALPHABET.length, digit) * num;
40
- }
41
- C2N_CACHE.set(key, result);
42
- const it = C2N_CACHE.keys();
43
- for (let st = it.next(); C2N_CACHE.size > cacheSize; st = it.next()) {
44
- C2N_CACHE.delete(st.value);
45
- }
46
- return result;
47
- };
48
- export const x2c = (x) => {
49
- if (x === 0) {
50
- return "";
51
- }
52
- const c = getColumnLetterFromNumber(x + 1);
53
- return x < 0 ? `$${c}` : c;
54
- };
55
- export const c2x = (col, absolute = false) => {
56
- const n = getNumberFromColumnLetter(col);
57
- return absolute ? -n : n;
58
- };
59
- export const y2r = (y) => {
60
- if (y === 0) {
61
- return "";
62
- }
63
- return y < 0 ? `$${y}` : String(y);
64
- };
65
- export const r2y = (row, absolute = false) => {
66
- if (typeof row === "string") {
67
- row = parseInt(row, 10);
68
- }
69
- return absolute ? -row : row;
70
- };
71
- export const p2a = ({ y, x }) => {
72
- return `${x2c(x)}${y2r(y)}`;
73
- };
74
- const restoreDoubleQuote = (text) => text.replace(/\x00/g, '"');
75
- export const tsv2matrix = (tsv) => {
76
- tsv = tsv.replace(/""/g, "\x00");
77
- const rows = [[]];
78
- let row = rows[0];
79
- let entering = false;
80
- let word = "";
81
- for (let i = 0; i < tsv.length; i++) {
82
- const s = tsv[i];
83
- if (s === "\n" && !entering) {
84
- row.push(restoreDoubleQuote(word));
85
- word = "";
86
- row = [];
87
- rows.push(row);
88
- continue;
89
- }
90
- if (s === "\t") {
91
- row.push(restoreDoubleQuote(word));
92
- word = "";
93
- continue;
94
- }
95
- if (s === '"' && !entering && word === "") {
96
- entering = true;
97
- continue;
98
- }
99
- if (s === '"' && entering) {
100
- entering = false;
101
- continue;
102
- }
103
- word += s;
104
- }
105
- if (word) {
106
- row.push(restoreDoubleQuote(word));
107
- }
108
- return rows;
109
- };
110
- export const a2p = (address) => {
111
- const m = address.match(/(\$)?([A-Z]*)(\$)?([0-9]*)/);
112
- if (m == null) {
113
- console.error("invalid address", address);
114
- return { y: 1, x: 1 };
115
- }
116
- const [_, absoluteCol, col, absoluteRow, row] = m.slice();
117
- return { y: r2y(row, !!absoluteRow) || 0, x: c2x(col, !!absoluteCol) || 0 };
118
- };
119
- export const grantAddressAbsolute = (address, absCol, absRow) => {
120
- const m = address.match(/([A-Z]*)([0-9]*)/);
121
- if (m == null) {
122
- return;
123
- }
124
- const [_, col, row] = m.slice();
125
- return `${absCol ? "$" : ""}${col}${absRow ? "$" : ""}${row}`;
126
- };
127
- //# sourceMappingURL=converters.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"converters.js","sourceRoot":"","sources":["../../src/lib/converters.ts"],"names":[],"mappings":"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"}