@pie-lib/graphing 4.0.5-next.34 → 4.0.5-next.35

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 (410) hide show
  1. package/dist/_virtual/_rolldown/runtime.js +20 -0
  2. package/dist/autosize-input.d.ts +10 -0
  3. package/dist/autosize-input.js +66 -0
  4. package/dist/axis/arrow.d.ts +13 -0
  5. package/dist/axis/arrow.js +34 -0
  6. package/dist/axis/axes.d.ts +132 -0
  7. package/dist/axis/axes.js +214 -0
  8. package/dist/axis/index.d.ts +10 -0
  9. package/dist/bg.d.ts +51 -0
  10. package/dist/bg.js +44 -0
  11. package/dist/container/actions.d.ts +15 -0
  12. package/dist/container/actions.js +7 -0
  13. package/dist/container/index.d.ts +58 -0
  14. package/dist/container/index.js +48 -0
  15. package/dist/container/marks.d.ts +10 -0
  16. package/dist/container/marks.js +11 -0
  17. package/dist/container/middleware.d.ts +10 -0
  18. package/dist/container/middleware.js +4 -0
  19. package/dist/container/reducer.d.ts +14 -0
  20. package/dist/container/reducer.js +7 -0
  21. package/dist/coordinates-label.d.ts +50 -0
  22. package/dist/coordinates-label.js +46 -0
  23. package/dist/graph-with-controls.d.ts +88 -0
  24. package/dist/graph-with-controls.js +156 -0
  25. package/dist/graph.d.ts +126 -0
  26. package/dist/graph.js +209 -0
  27. package/dist/grid-setup.d.ts +27 -0
  28. package/dist/grid-setup.js +307 -0
  29. package/dist/grid.d.ts +43 -0
  30. package/dist/grid.js +59 -0
  31. package/dist/index.d.ts +15 -0
  32. package/dist/index.js +7 -0
  33. package/dist/key-legend.d.ts +21 -0
  34. package/dist/key-legend.js +231 -0
  35. package/dist/label-svg-icon.d.ts +18 -0
  36. package/dist/label-svg-icon.js +42 -0
  37. package/dist/labels.d.ts +37 -0
  38. package/dist/labels.js +152 -0
  39. package/dist/mark-label.d.ts +60 -0
  40. package/dist/mark-label.js +222 -0
  41. package/dist/node_modules/.bun/@visx_axis@4.0.0_d84c32d47042070f/node_modules/@visx/axis/esm/axis/Axis.js +67 -0
  42. package/dist/node_modules/.bun/@visx_axis@4.0.0_d84c32d47042070f/node_modules/@visx/axis/esm/axis/AxisRenderer.js +66 -0
  43. package/dist/node_modules/.bun/@visx_axis@4.0.0_d84c32d47042070f/node_modules/@visx/axis/esm/axis/Ticks.js +39 -0
  44. package/dist/node_modules/.bun/@visx_axis@4.0.0_d84c32d47042070f/node_modules/@visx/axis/esm/constants/orientation.js +9 -0
  45. package/dist/node_modules/.bun/@visx_axis@4.0.0_d84c32d47042070f/node_modules/@visx/axis/esm/utils/createPoint.js +14 -0
  46. package/dist/node_modules/.bun/@visx_axis@4.0.0_d84c32d47042070f/node_modules/@visx/axis/esm/utils/getAxisRangePaddingConfig.js +13 -0
  47. package/dist/node_modules/.bun/@visx_axis@4.0.0_d84c32d47042070f/node_modules/@visx/axis/esm/utils/getLabelTransform.js +16 -0
  48. package/dist/node_modules/.bun/@visx_axis@4.0.0_d84c32d47042070f/node_modules/@visx/axis/esm/utils/getTickFormatter.js +8 -0
  49. package/dist/node_modules/.bun/@visx_axis@4.0.0_d84c32d47042070f/node_modules/@visx/axis/esm/utils/getTickPosition.js +14 -0
  50. package/dist/node_modules/.bun/@visx_grid@4.0.0_d84c32d47042070f/node_modules/@visx/grid/esm/grids/Grid.js +43 -0
  51. package/dist/node_modules/.bun/@visx_grid@4.0.0_d84c32d47042070f/node_modules/@visx/grid/esm/grids/GridColumns.js +46 -0
  52. package/dist/node_modules/.bun/@visx_grid@4.0.0_d84c32d47042070f/node_modules/@visx/grid/esm/grids/GridRows.js +46 -0
  53. package/dist/node_modules/.bun/@visx_grid@4.0.0_d84c32d47042070f/node_modules/@visx/grid/esm/utils/getScaleBandwidth.js +6 -0
  54. package/dist/node_modules/.bun/@visx_group@4.0.0_d84c32d47042070f/node_modules/@visx/group/esm/Group.js +17 -0
  55. package/dist/node_modules/.bun/@visx_point@4.0.0/node_modules/@visx/point/esm/Point.js +20 -0
  56. package/dist/node_modules/.bun/@visx_scale@4.0.0/node_modules/@visx/scale/esm/utils/coerceNumber.js +10 -0
  57. package/dist/node_modules/.bun/@visx_scale@4.0.0/node_modules/@visx/scale/esm/utils/getTicks.js +7 -0
  58. package/dist/node_modules/.bun/@visx_scale@4.0.0/node_modules/@visx/scale/esm/utils/toString.js +6 -0
  59. package/dist/node_modules/.bun/@visx_shape@4.0.0_d84c32d47042070f/node_modules/@visx/shape/esm/shapes/Line.js +27 -0
  60. package/dist/node_modules/.bun/@visx_shape@4.0.0_d84c32d47042070f/node_modules/@visx/shape/esm/shapes/LinePath.js +24 -0
  61. package/dist/node_modules/.bun/@visx_shape@4.0.0_d84c32d47042070f/node_modules/@visx/shape/esm/util/D3ShapeFactories.js +9 -0
  62. package/dist/node_modules/.bun/@visx_shape@4.0.0_d84c32d47042070f/node_modules/@visx/shape/esm/util/setNumberOrNumberAccessor.js +6 -0
  63. package/dist/node_modules/.bun/@visx_text@4.0.0_d84c32d47042070f/node_modules/@visx/text/esm/Text.js +27 -0
  64. package/dist/node_modules/.bun/@visx_text@4.0.0_d84c32d47042070f/node_modules/@visx/text/esm/hooks/useText.js +68 -0
  65. package/dist/node_modules/.bun/@visx_text@4.0.0_d84c32d47042070f/node_modules/@visx/text/esm/util/getStringWidth.js +19 -0
  66. package/dist/node_modules/.bun/@visx_text@4.0.0_d84c32d47042070f/node_modules/@visx/text/esm/util/memoize.js +13 -0
  67. package/dist/node_modules/.bun/@visx_vendor@4.0.0/node_modules/@visx/vendor/esm/d3-shape.js +8 -0
  68. package/dist/node_modules/.bun/balanced-match@0.4.2/node_modules/balanced-match/index.js +32 -0
  69. package/dist/node_modules/.bun/balanced-match@1.0.2/node_modules/balanced-match/index.js +33 -0
  70. package/dist/node_modules/.bun/classnames@2.5.1/node_modules/classnames/index.js +32 -0
  71. package/dist/node_modules/.bun/clsx@2.1.1/node_modules/clsx/dist/clsx.js +16 -0
  72. package/dist/node_modules/.bun/invariant@2.2.4/node_modules/invariant/browser.js +28 -0
  73. package/dist/node_modules/.bun/math-expression-evaluator@1.4.0/node_modules/math-expression-evaluator/src/formula_evaluator.js +37 -0
  74. package/dist/node_modules/.bun/math-expression-evaluator@1.4.0/node_modules/math-expression-evaluator/src/lexer.js +509 -0
  75. package/dist/node_modules/.bun/math-expression-evaluator@1.4.0/node_modules/math-expression-evaluator/src/math_function.js +108 -0
  76. package/dist/node_modules/.bun/math-expression-evaluator@1.4.0/node_modules/math-expression-evaluator/src/postfix.js +31 -0
  77. package/dist/node_modules/.bun/math-expression-evaluator@1.4.0/node_modules/math-expression-evaluator/src/postfix_evaluator.js +45 -0
  78. package/dist/node_modules/.bun/reduce-css-calc@1.3.0/node_modules/reduce-css-calc/index.js +49 -0
  79. package/dist/node_modules/.bun/reduce-function-call@1.0.3/node_modules/reduce-function-call/index.js +34 -0
  80. package/dist/node_modules/.bun/redux-undo@1.1.0/node_modules/redux-undo/dist/redux-undo.js +185 -0
  81. package/dist/node_modules/.bun/redux@5.0.1/node_modules/redux/dist/redux.js +198 -0
  82. package/dist/toggle-bar.d.ts +40 -0
  83. package/dist/toggle-bar.js +155 -0
  84. package/dist/tool-menu.d.ts +29 -0
  85. package/dist/tool-menu.js +41 -0
  86. package/dist/tools/absolute/component.d.ts +16 -0
  87. package/dist/tools/absolute/component.js +15 -0
  88. package/dist/tools/absolute/index.d.ts +20 -0
  89. package/dist/tools/absolute/index.js +32 -0
  90. package/dist/tools/circle/bg-circle.d.ts +116 -0
  91. package/dist/tools/circle/bg-circle.js +72 -0
  92. package/dist/tools/circle/component.d.ts +88 -0
  93. package/dist/tools/circle/component.js +208 -0
  94. package/dist/tools/circle/index.d.ts +20 -0
  95. package/dist/tools/circle/index.js +22 -0
  96. package/dist/tools/exponential/component.d.ts +16 -0
  97. package/dist/tools/exponential/component.js +14 -0
  98. package/dist/tools/exponential/index.d.ts +20 -0
  99. package/dist/tools/exponential/index.js +32 -0
  100. package/dist/tools/index.d.ts +27 -0
  101. package/dist/tools/index.js +55 -0
  102. package/dist/tools/line/component.d.ts +124 -0
  103. package/dist/tools/line/component.js +72 -0
  104. package/dist/tools/line/index.d.ts +13 -0
  105. package/dist/tools/line/index.js +6 -0
  106. package/dist/tools/parabola/component.d.ts +16 -0
  107. package/dist/tools/parabola/component.js +14 -0
  108. package/dist/tools/parabola/index.d.ts +20 -0
  109. package/dist/tools/parabola/index.js +32 -0
  110. package/dist/tools/point/component.d.ts +52 -0
  111. package/dist/tools/point/component.js +91 -0
  112. package/dist/tools/point/index.d.ts +15 -0
  113. package/dist/tools/point/index.js +13 -0
  114. package/dist/tools/polygon/component.d.ts +125 -0
  115. package/dist/tools/polygon/component.js +271 -0
  116. package/dist/tools/polygon/index.d.ts +19 -0
  117. package/dist/tools/polygon/index.js +55 -0
  118. package/dist/tools/polygon/line.d.ts +125 -0
  119. package/dist/tools/polygon/line.js +63 -0
  120. package/dist/tools/polygon/polygon.d.ts +122 -0
  121. package/dist/tools/polygon/polygon.js +74 -0
  122. package/dist/tools/ray/component.d.ts +101 -0
  123. package/dist/tools/ray/component.js +71 -0
  124. package/dist/tools/ray/index.d.ts +13 -0
  125. package/dist/tools/ray/index.js +6 -0
  126. package/dist/tools/segment/component.d.ts +100 -0
  127. package/dist/tools/segment/component.js +52 -0
  128. package/dist/tools/segment/index.d.ts +13 -0
  129. package/dist/tools/segment/index.js +6 -0
  130. package/dist/tools/shared/arrow-head.d.ts +51 -0
  131. package/dist/tools/shared/arrow-head.js +63 -0
  132. package/dist/tools/shared/icons/CorrectSVG.d.ts +26 -0
  133. package/dist/tools/shared/icons/CorrectSVG.js +29 -0
  134. package/dist/tools/shared/icons/IncorrectSVG.d.ts +26 -0
  135. package/dist/tools/shared/icons/IncorrectSVG.js +27 -0
  136. package/dist/tools/shared/icons/MissingSVG.d.ts +26 -0
  137. package/dist/tools/shared/icons/MissingSVG.js +28 -0
  138. package/dist/tools/shared/line/index.d.ts +251 -0
  139. package/dist/tools/shared/line/index.js +332 -0
  140. package/dist/tools/shared/line/line-path.d.ts +57 -0
  141. package/dist/tools/shared/line/line-path.js +71 -0
  142. package/dist/tools/shared/line/with-root-edge.d.ts +148 -0
  143. package/dist/tools/shared/line/with-root-edge.js +73 -0
  144. package/dist/tools/shared/point/arrow-point.d.ts +56 -0
  145. package/dist/tools/shared/point/arrow-point.js +41 -0
  146. package/dist/tools/shared/point/arrow.d.ts +45 -0
  147. package/dist/tools/shared/point/arrow.js +35 -0
  148. package/dist/tools/shared/point/base-point.d.ts +52 -0
  149. package/dist/tools/shared/point/base-point.js +103 -0
  150. package/dist/tools/shared/point/index.d.ts +216 -0
  151. package/dist/tools/shared/point/index.js +45 -0
  152. package/dist/tools/shared/styles.d.ts +29 -0
  153. package/dist/tools/shared/styles.js +20 -0
  154. package/dist/tools/shared/types.d.ts +21 -0
  155. package/dist/tools/shared/types.js +11 -0
  156. package/dist/tools/sine/component.d.ts +16 -0
  157. package/dist/tools/sine/component.js +22 -0
  158. package/dist/tools/sine/index.d.ts +20 -0
  159. package/dist/tools/sine/index.js +32 -0
  160. package/dist/tools/vector/component.d.ts +100 -0
  161. package/dist/tools/vector/component.js +44 -0
  162. package/dist/tools/vector/index.d.ts +13 -0
  163. package/dist/tools/vector/index.js +6 -0
  164. package/dist/undo-redo.d.ts +22 -0
  165. package/dist/undo-redo.js +47 -0
  166. package/dist/use-debounce.d.ts +9 -0
  167. package/dist/use-debounce.js +13 -0
  168. package/dist/utils.d.ts +61 -0
  169. package/dist/utils.js +75 -0
  170. package/package.json +59 -42
  171. package/CHANGELOG.json +0 -1
  172. package/CHANGELOG.md +0 -1469
  173. package/LICENSE.md +0 -5
  174. package/lib/axis/arrow.js +0 -79
  175. package/lib/axis/arrow.js.map +0 -1
  176. package/lib/axis/axes.js +0 -329
  177. package/lib/axis/axes.js.map +0 -1
  178. package/lib/axis/index.js +0 -21
  179. package/lib/axis/index.js.map +0 -1
  180. package/lib/bg.js +0 -114
  181. package/lib/bg.js.map +0 -1
  182. package/lib/container/actions.js +0 -18
  183. package/lib/container/actions.js.map +0 -1
  184. package/lib/container/index.js +0 -127
  185. package/lib/container/index.js.map +0 -1
  186. package/lib/container/marks.js +0 -22
  187. package/lib/container/marks.js.map +0 -1
  188. package/lib/container/middleware.js +0 -19
  189. package/lib/container/middleware.js.map +0 -1
  190. package/lib/container/reducer.js +0 -18
  191. package/lib/container/reducer.js.map +0 -1
  192. package/lib/coordinates-label.js +0 -79
  193. package/lib/coordinates-label.js.map +0 -1
  194. package/lib/graph-with-controls.js +0 -294
  195. package/lib/graph-with-controls.js.map +0 -1
  196. package/lib/graph.js +0 -327
  197. package/lib/graph.js.map +0 -1
  198. package/lib/grid-setup.js +0 -414
  199. package/lib/grid-setup.js.map +0 -1
  200. package/lib/grid.js +0 -131
  201. package/lib/grid.js.map +0 -1
  202. package/lib/index.js +0 -47
  203. package/lib/index.js.map +0 -1
  204. package/lib/key-legend.js +0 -201
  205. package/lib/key-legend.js.map +0 -1
  206. package/lib/label-svg-icon.js +0 -50
  207. package/lib/label-svg-icon.js.map +0 -1
  208. package/lib/labels.js +0 -243
  209. package/lib/labels.js.map +0 -1
  210. package/lib/mark-label.js +0 -285
  211. package/lib/mark-label.js.map +0 -1
  212. package/lib/toggle-bar.js +0 -252
  213. package/lib/toggle-bar.js.map +0 -1
  214. package/lib/tool-menu.js +0 -78
  215. package/lib/tool-menu.js.map +0 -1
  216. package/lib/tools/absolute/component.js +0 -29
  217. package/lib/tools/absolute/component.js.map +0 -1
  218. package/lib/tools/absolute/index.js +0 -50
  219. package/lib/tools/absolute/index.js.map +0 -1
  220. package/lib/tools/circle/bg-circle.js +0 -123
  221. package/lib/tools/circle/bg-circle.js.map +0 -1
  222. package/lib/tools/circle/component.js +0 -321
  223. package/lib/tools/circle/component.js.map +0 -1
  224. package/lib/tools/circle/index.js +0 -41
  225. package/lib/tools/circle/index.js.map +0 -1
  226. package/lib/tools/exponential/component.js +0 -28
  227. package/lib/tools/exponential/component.js.map +0 -1
  228. package/lib/tools/exponential/index.js +0 -56
  229. package/lib/tools/exponential/index.js.map +0 -1
  230. package/lib/tools/index.js +0 -86
  231. package/lib/tools/index.js.map +0 -1
  232. package/lib/tools/line/component.js +0 -97
  233. package/lib/tools/line/component.js.map +0 -1
  234. package/lib/tools/line/index.js +0 -11
  235. package/lib/tools/line/index.js.map +0 -1
  236. package/lib/tools/parabola/component.js +0 -28
  237. package/lib/tools/parabola/component.js.map +0 -1
  238. package/lib/tools/parabola/index.js +0 -50
  239. package/lib/tools/parabola/index.js.map +0 -1
  240. package/lib/tools/point/component.js +0 -148
  241. package/lib/tools/point/component.js.map +0 -1
  242. package/lib/tools/point/index.js +0 -24
  243. package/lib/tools/point/index.js.map +0 -1
  244. package/lib/tools/polygon/component.js +0 -437
  245. package/lib/tools/polygon/component.js.map +0 -1
  246. package/lib/tools/polygon/index.js +0 -89
  247. package/lib/tools/polygon/index.js.map +0 -1
  248. package/lib/tools/polygon/line.js +0 -112
  249. package/lib/tools/polygon/line.js.map +0 -1
  250. package/lib/tools/polygon/polygon.js +0 -130
  251. package/lib/tools/polygon/polygon.js.map +0 -1
  252. package/lib/tools/ray/component.js +0 -95
  253. package/lib/tools/ray/component.js.map +0 -1
  254. package/lib/tools/ray/index.js +0 -11
  255. package/lib/tools/ray/index.js.map +0 -1
  256. package/lib/tools/segment/component.js +0 -71
  257. package/lib/tools/segment/component.js.map +0 -1
  258. package/lib/tools/segment/index.js +0 -11
  259. package/lib/tools/segment/index.js.map +0 -1
  260. package/lib/tools/shared/arrow-head.js +0 -111
  261. package/lib/tools/shared/arrow-head.js.map +0 -1
  262. package/lib/tools/shared/icons/CorrectSVG.js +0 -40
  263. package/lib/tools/shared/icons/CorrectSVG.js.map +0 -1
  264. package/lib/tools/shared/icons/IncorrectSVG.js +0 -40
  265. package/lib/tools/shared/icons/IncorrectSVG.js.map +0 -1
  266. package/lib/tools/shared/icons/MissingSVG.js +0 -39
  267. package/lib/tools/shared/icons/MissingSVG.js.map +0 -1
  268. package/lib/tools/shared/line/index.js +0 -550
  269. package/lib/tools/shared/line/index.js.map +0 -1
  270. package/lib/tools/shared/line/line-path.js +0 -118
  271. package/lib/tools/shared/line/line-path.js.map +0 -1
  272. package/lib/tools/shared/line/with-root-edge.js +0 -121
  273. package/lib/tools/shared/line/with-root-edge.js.map +0 -1
  274. package/lib/tools/shared/point/arrow-point.js +0 -72
  275. package/lib/tools/shared/point/arrow-point.js.map +0 -1
  276. package/lib/tools/shared/point/arrow.js +0 -67
  277. package/lib/tools/shared/point/arrow.js.map +0 -1
  278. package/lib/tools/shared/point/base-point.js +0 -157
  279. package/lib/tools/shared/point/base-point.js.map +0 -1
  280. package/lib/tools/shared/point/index.js +0 -68
  281. package/lib/tools/shared/point/index.js.map +0 -1
  282. package/lib/tools/shared/styles.js +0 -33
  283. package/lib/tools/shared/styles.js.map +0 -1
  284. package/lib/tools/shared/types.js +0 -16
  285. package/lib/tools/shared/types.js.map +0 -1
  286. package/lib/tools/sine/component.js +0 -40
  287. package/lib/tools/sine/component.js.map +0 -1
  288. package/lib/tools/sine/index.js +0 -50
  289. package/lib/tools/sine/index.js.map +0 -1
  290. package/lib/tools/vector/component.js +0 -68
  291. package/lib/tools/vector/component.js.map +0 -1
  292. package/lib/tools/vector/index.js +0 -11
  293. package/lib/tools/vector/index.js.map +0 -1
  294. package/lib/undo-redo.js +0 -86
  295. package/lib/undo-redo.js.map +0 -1
  296. package/lib/use-debounce.js +0 -25
  297. package/lib/use-debounce.js.map +0 -1
  298. package/lib/utils.js +0 -229
  299. package/lib/utils.js.map +0 -1
  300. package/src/__tests__/bg.test.jsx +0 -250
  301. package/src/__tests__/coordinates-label.test.jsx +0 -243
  302. package/src/__tests__/graph-with-controls.test.jsx +0 -198
  303. package/src/__tests__/graph.test.jsx +0 -721
  304. package/src/__tests__/grid-setup.test.jsx +0 -645
  305. package/src/__tests__/grid.test.jsx +0 -22
  306. package/src/__tests__/key-legend.test.jsx +0 -260
  307. package/src/__tests__/label-svg-icon.test.jsx +0 -278
  308. package/src/__tests__/labels.test.jsx +0 -55
  309. package/src/__tests__/mark-label.test.jsx +0 -63
  310. package/src/__tests__/toggle-bar.test.jsx +0 -146
  311. package/src/__tests__/tool-menu.test.jsx +0 -115
  312. package/src/__tests__/undo-redo.test.jsx +0 -24
  313. package/src/__tests__/use-debounce.test.js +0 -21
  314. package/src/__tests__/utils.js +0 -41
  315. package/src/__tests__/utils.test.js +0 -105
  316. package/src/axis/__tests__/arrow.test.jsx +0 -38
  317. package/src/axis/__tests__/axes.test.jsx +0 -216
  318. package/src/axis/arrow.jsx +0 -57
  319. package/src/axis/axes.jsx +0 -285
  320. package/src/axis/index.js +0 -3
  321. package/src/bg.jsx +0 -96
  322. package/src/container/__tests__/actions.test.js +0 -105
  323. package/src/container/__tests__/index.test.jsx +0 -319
  324. package/src/container/__tests__/marks.test.js +0 -172
  325. package/src/container/__tests__/middleware.test.js +0 -235
  326. package/src/container/__tests__/reducer.test.js +0 -324
  327. package/src/container/actions.js +0 -8
  328. package/src/container/index.jsx +0 -91
  329. package/src/container/marks.js +0 -14
  330. package/src/container/middleware.js +0 -7
  331. package/src/container/reducer.js +0 -5
  332. package/src/coordinates-label.jsx +0 -63
  333. package/src/graph-with-controls.jsx +0 -239
  334. package/src/graph.jsx +0 -303
  335. package/src/grid-setup.jsx +0 -432
  336. package/src/grid.jsx +0 -133
  337. package/src/index.js +0 -7
  338. package/src/key-legend.jsx +0 -142
  339. package/src/label-svg-icon.jsx +0 -39
  340. package/src/labels.jsx +0 -207
  341. package/src/mark-label.jsx +0 -244
  342. package/src/toggle-bar.jsx +0 -224
  343. package/src/tool-menu.jsx +0 -49
  344. package/src/tools/absolute/__tests__/component.test.jsx +0 -53
  345. package/src/tools/absolute/component.jsx +0 -23
  346. package/src/tools/absolute/index.js +0 -31
  347. package/src/tools/circle/__tests__/bg-circle.test.jsx +0 -26
  348. package/src/tools/circle/__tests__/component.test.jsx +0 -494
  349. package/src/tools/circle/__tests__/index.test.js +0 -480
  350. package/src/tools/circle/bg-circle.jsx +0 -81
  351. package/src/tools/circle/component.jsx +0 -264
  352. package/src/tools/circle/index.js +0 -25
  353. package/src/tools/exponential/__tests__/component.test.jsx +0 -53
  354. package/src/tools/exponential/__tests__/index.test.js +0 -729
  355. package/src/tools/exponential/component.jsx +0 -23
  356. package/src/tools/exponential/index.js +0 -39
  357. package/src/tools/index.js +0 -48
  358. package/src/tools/line/__tests__/component.test.jsx +0 -37
  359. package/src/tools/line/component.jsx +0 -93
  360. package/src/tools/line/index.js +0 -4
  361. package/src/tools/parabola/__tests__/component.test.jsx +0 -48
  362. package/src/tools/parabola/__tests__/index.test.js +0 -470
  363. package/src/tools/parabola/component.jsx +0 -23
  364. package/src/tools/parabola/index.js +0 -31
  365. package/src/tools/point/__tests__/component.test.jsx +0 -349
  366. package/src/tools/point/__tests__/index.test.js +0 -241
  367. package/src/tools/point/component.jsx +0 -126
  368. package/src/tools/point/index.js +0 -11
  369. package/src/tools/polygon/__tests__/component.test.jsx +0 -471
  370. package/src/tools/polygon/__tests__/index.test.js +0 -294
  371. package/src/tools/polygon/__tests__/line.test.jsx +0 -35
  372. package/src/tools/polygon/__tests__/polygon.test.jsx +0 -61
  373. package/src/tools/polygon/component.jsx +0 -409
  374. package/src/tools/polygon/index.js +0 -52
  375. package/src/tools/polygon/line.jsx +0 -74
  376. package/src/tools/polygon/polygon.jsx +0 -110
  377. package/src/tools/ray/__tests__/component.test.jsx +0 -29
  378. package/src/tools/ray/component.jsx +0 -92
  379. package/src/tools/ray/index.js +0 -4
  380. package/src/tools/segment/__tests__/component.test.jsx +0 -28
  381. package/src/tools/segment/component.jsx +0 -65
  382. package/src/tools/segment/index.js +0 -4
  383. package/src/tools/shared/__tests__/arrow-head.test.jsx +0 -31
  384. package/src/tools/shared/arrow-head.jsx +0 -102
  385. package/src/tools/shared/icons/CorrectSVG.jsx +0 -32
  386. package/src/tools/shared/icons/IncorrectSVG.jsx +0 -30
  387. package/src/tools/shared/icons/MissingSVG.jsx +0 -31
  388. package/src/tools/shared/line/__tests__/index.test.jsx +0 -109
  389. package/src/tools/shared/line/__tests__/line-path.test.jsx +0 -53
  390. package/src/tools/shared/line/__tests__/with-root-edge.test.jsx +0 -73
  391. package/src/tools/shared/line/index.jsx +0 -487
  392. package/src/tools/shared/line/line-path.jsx +0 -80
  393. package/src/tools/shared/line/with-root-edge.jsx +0 -97
  394. package/src/tools/shared/point/__tests__/arrow-point.test.jsx +0 -91
  395. package/src/tools/shared/point/__tests__/base-point.test.jsx +0 -87
  396. package/src/tools/shared/point/arrow-point.jsx +0 -46
  397. package/src/tools/shared/point/arrow.jsx +0 -37
  398. package/src/tools/shared/point/base-point.jsx +0 -121
  399. package/src/tools/shared/point/index.jsx +0 -54
  400. package/src/tools/shared/styles.js +0 -27
  401. package/src/tools/shared/types.js +0 -10
  402. package/src/tools/sine/__tests__/component.test.jsx +0 -51
  403. package/src/tools/sine/component.jsx +0 -32
  404. package/src/tools/sine/index.js +0 -33
  405. package/src/tools/vector/__tests__/component.test.jsx +0 -25
  406. package/src/tools/vector/component.jsx +0 -56
  407. package/src/tools/vector/index.js +0 -4
  408. package/src/undo-redo.jsx +0 -45
  409. package/src/use-debounce.js +0 -13
  410. package/src/utils.js +0 -224
package/lib/utils.js DELETED
@@ -1,229 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.tickCount = exports.thinnerShapesNeeded = exports.stripEmptyLabel = exports.sameAxes = exports.roundNumber = exports.polygonToArea = exports.pointsToArea = exports.point = exports.lineToArea = exports.isDuplicatedMark = exports.isDomainRangeEqual = exports.getTickValues = exports.getRightestPoints = exports.getMiddleOfTwoPoints = exports.getDistanceBetweenTwoPoints = exports.getAngleDeg = exports.getAdjustedGraphLimits = exports.findLongestWord = exports.equalPoints = exports.countWords = exports.bounds = exports.arrowDimensions = exports.amountToIncreaseWidth = void 0;
8
- var _plot = require("@pie-lib/plot");
9
- var _invariant = _interopRequireDefault(require("invariant"));
10
- var _lodashEs = require("lodash-es");
11
- var stripEmptyLabel = exports.stripEmptyLabel = function stripEmptyLabel(pt) {
12
- return (pt === null || pt === void 0 ? void 0 : pt.label) === '' ? (0, _lodashEs.omit)(pt, 'label') : pt;
13
- };
14
- var tickCount = exports.tickCount = _plot.utils.tickCount;
15
- var bounds = exports.bounds = _plot.utils.bounds;
16
- var point = exports.point = _plot.utils.point;
17
-
18
- //TODO: This can be removed?
19
- var getAngleDeg = exports.getAngleDeg = function getAngleDeg() {
20
- return 0;
21
- };
22
- //TODO: This can be removed?
23
- var arrowDimensions = exports.arrowDimensions = function arrowDimensions() {
24
- return 0;
25
- };
26
- var getTickValues = exports.getTickValues = function getTickValues(prop) {
27
- var tickValues = [];
28
- var tickVal = 0;
29
- while (tickVal >= prop.min && tickValues.indexOf(tickVal) < 0) {
30
- tickValues.push(tickVal);
31
- tickVal = Math.round((tickVal - prop.step) * 10000) / 10000;
32
- }
33
- tickVal = Math.round(prop.step * 10000) / 10000;
34
- while (tickVal <= prop.max && tickValues.indexOf(tickVal) < 0) {
35
- tickValues.push(tickVal);
36
- tickVal = Math.round((tickVal + prop.step) * 10000) / 10000;
37
- }
38
-
39
- // return only ticks that are inside the min-max interval
40
- if (tickValues) {
41
- return tickValues.filter(function (tV) {
42
- return tV >= prop.min && tV <= prop.max;
43
- });
44
- }
45
- return [];
46
- };
47
- var countWords = exports.countWords = function countWords(label) {
48
- if (label == null || (0, _lodashEs.isEmpty)(label)) {
49
- return 1;
50
- }
51
- var words = label.split(' ');
52
- return words.length;
53
- };
54
-
55
- // findLongestWord is also used in plot
56
- var findLongestWord = exports.findLongestWord = function findLongestWord(label) {
57
- var longestWord = (label || '').replace(/<[^>]+>/g, '').split(' ').sort(function (a, b) {
58
- return b.length - a.length;
59
- });
60
- return longestWord[0].length;
61
- };
62
-
63
- // amountToIncreaseWidth is also used in plot
64
- var amountToIncreaseWidth = exports.amountToIncreaseWidth = function amountToIncreaseWidth(longestWord) {
65
- if (!longestWord) {
66
- return 0;
67
- }
68
- return longestWord * 10;
69
- };
70
- var polygonToArea = exports.polygonToArea = function polygonToArea(points) {
71
- var h = (0, _lodashEs.head)(points);
72
- var area = {
73
- left: h.x,
74
- top: h.y,
75
- bottom: h.y,
76
- right: h.x
77
- };
78
- return (0, _lodashEs.tail)(points).reduce(function (a, p) {
79
- a.left = Math.min(a.left, p.x);
80
- a.top = Math.max(a.top, p.y);
81
- a.bottom = Math.min(a.bottom, p.y);
82
- a.right = Math.max(a.right, p.x);
83
- return a;
84
- }, area);
85
- };
86
- var lineToArea = exports.lineToArea = function lineToArea(from, to) {
87
- return pointsToArea(from, to);
88
- };
89
- var pointsToArea = exports.pointsToArea = function pointsToArea(a, b) {
90
- (0, _invariant["default"])(!!a && !!b, 'a or b is undefined');
91
- var left = Math.min(a.x, b.x);
92
- var top = Math.max(a.y, b.y);
93
- var bottom = Math.min(a.y, b.y);
94
- var right = Math.max(a.x, b.x);
95
- return {
96
- left: left,
97
- top: top,
98
- bottom: bottom,
99
- right: right
100
- };
101
- };
102
- var isDomainRangeEqual = exports.isDomainRangeEqual = function isDomainRangeEqual(graphProps, nextGraphProps) {
103
- return (0, _lodashEs.isEqual)(graphProps.domain, nextGraphProps.domain) && (0, _lodashEs.isEqual)(graphProps.range, nextGraphProps.range);
104
- };
105
- var getRightestPoints = exports.getRightestPoints = function getRightestPoints(points) {
106
- var sortedPoints = (0, _lodashEs.cloneDeep)(points);
107
- sortedPoints.sort(function (a, b) {
108
- return b.x - a.x;
109
- });
110
- return {
111
- a: sortedPoints[0],
112
- b: sortedPoints[1]
113
- };
114
- };
115
- var getMiddleOfTwoPoints = exports.getMiddleOfTwoPoints = function getMiddleOfTwoPoints(a, b) {
116
- return {
117
- x: (a.x + b.x) / 2,
118
- y: (a.y + b.y) / 2
119
- };
120
- };
121
- var roundNumber = exports.roundNumber = function roundNumber(number) {
122
- return parseFloat(number.toFixed(4));
123
- };
124
- var sameAxes = exports.sameAxes = function sameAxes(p1, p2) {
125
- return p1 && p2 && (roundNumber(p1.x) === roundNumber(p2.x) || roundNumber(p1.y) === roundNumber(p2.y));
126
- };
127
- var equalPoints = exports.equalPoints = function equalPoints(p1, p2) {
128
- return p1 && p2 && (0, _lodashEs.isEqual)({
129
- x: roundNumber(p1.x),
130
- y: roundNumber(p1.y)
131
- }, {
132
- x: roundNumber(p2.x),
133
- y: roundNumber(p2.y)
134
- });
135
- };
136
- var getDistanceBetweenTicks = function getDistanceBetweenTicks(axis, size) {
137
- var min = axis.min,
138
- max = axis.max,
139
- step = axis.step;
140
- var nbOfTicks = (max - min) / step;
141
- return size / nbOfTicks;
142
- };
143
- var thinnerShapesNeeded = exports.thinnerShapesNeeded = function thinnerShapesNeeded(graphProps) {
144
- var domain = graphProps.domain,
145
- range = graphProps.range,
146
- _graphProps$size = graphProps.size,
147
- width = _graphProps$size.width,
148
- height = _graphProps$size.height;
149
-
150
- // 14 is the default width of a point
151
- return getDistanceBetweenTicks(domain, width) < 14 || getDistanceBetweenTicks(range, height) < 14;
152
- };
153
- var getAdjustedGraphLimits = exports.getAdjustedGraphLimits = function getAdjustedGraphLimits(graphProps) {
154
- var domain = graphProps.domain,
155
- range = graphProps.range,
156
- _graphProps$size2 = graphProps.size,
157
- width = _graphProps$size2.width,
158
- height = _graphProps$size2.height;
159
- var domainTicksDistance = getDistanceBetweenTicks(domain, width);
160
- var rangeTicksDistance = getDistanceBetweenTicks(range, height);
161
-
162
- // 15 is the distance required for the arrow to extend the graph
163
- var domainPadding = domain.step / (domainTicksDistance / 15);
164
- var rangePadding = range.step / (rangeTicksDistance / 15);
165
- return {
166
- domain: {
167
- min: domain.min - domainPadding,
168
- max: domain.max + domainPadding
169
- },
170
- range: {
171
- min: range.min - rangePadding,
172
- max: range.max + rangePadding
173
- }
174
- };
175
- };
176
- var getDistanceBetweenTwoPoints = exports.getDistanceBetweenTwoPoints = function getDistanceBetweenTwoPoints(a, b) {
177
- return Math.sqrt((b.x - a.x) * (b.x - a.x) + (b.y - a.y) * (b.y - a.y));
178
- };
179
- var sortPoints = function sortPoints(array) {
180
- return (array || []).sort(function (a, b) {
181
- return a.x - b.x || a.y - b.y;
182
- });
183
- };
184
-
185
- // check colliniarity of 3 points (source: https://www.geeksforgeeks.org/program-check-three-points-collinear/)
186
- var checkCollinearity = function checkCollinearity(a, b, c) {
187
- return (a.x - b.x) * (c.y - b.y) === (c.x - b.x) * (a.y - b.y);
188
- };
189
-
190
- // 2 lines are overlapping if all 4 points are collinear
191
- var isSameLine = function isSameLine(markA, markB) {
192
- return checkCollinearity(markA.from, markB.from, markB.to) && checkCollinearity(markA.to, markB.from, markB.to);
193
- };
194
- var isSameCircle = function isSameCircle(markA, markB) {
195
- return equalPoints(markA.root, markB.root) && getDistanceBetweenTwoPoints(markB.root, markB.edge) === getDistanceBetweenTwoPoints(markA.root, markA.edge);
196
- };
197
- var isDuplicatedMark = exports.isDuplicatedMark = function isDuplicatedMark(mark, marks, oldMark) {
198
- var type = mark.type,
199
- building = mark.building;
200
- if (building) {
201
- return false;
202
- }
203
- var filteredMarks = (marks || []).filter(function (m) {
204
- return m.type === type && !m.building;
205
- });
206
- var index = filteredMarks.findIndex(function (m) {
207
- return (0, _lodashEs.isEqual)(m, oldMark);
208
- });
209
- if (index !== -1) {
210
- filteredMarks.splice(index, 1);
211
- }
212
- var duplicated = filteredMarks.find(function (m) {
213
- if (type === 'circle' || type === 'parabola' || type === 'sine' || type === 'absolute' || type === 'exponential') {
214
- var root = mark.root,
215
- edge = mark.edge;
216
- return equalPoints(root, m.root) && equalPoints(edge, m.edge) || type === 'circle' && isSameCircle(m, mark);
217
- } else if (type === 'line' || type === 'ray' || type === 'segment' || type === 'vector') {
218
- var from = mark.from,
219
- to = mark.to;
220
- return equalPoints(from, m.from) && equalPoints(to, m.to) || equalPoints(from, m.to) && equalPoints(to, m.from) || type === 'line' && isSameLine(m, mark);
221
- } else if (type === 'polygon') {
222
- return (0, _lodashEs.isEqual)(sortPoints((0, _lodashEs.cloneDeep)(mark.points)), sortPoints((0, _lodashEs.cloneDeep)(m.points)));
223
- } else if (type === 'point') {
224
- return equalPoints(m, mark);
225
- }
226
- });
227
- return !!duplicated;
228
- };
229
- //# sourceMappingURL=utils.js.map
package/lib/utils.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","names":["_plot","require","_invariant","_interopRequireDefault","_lodashEs","stripEmptyLabel","exports","pt","label","omit","tickCount","utils","bounds","point","getAngleDeg","arrowDimensions","getTickValues","prop","tickValues","tickVal","min","indexOf","push","Math","round","step","max","filter","tV","countWords","isEmpty","words","split","length","findLongestWord","longestWord","replace","sort","a","b","amountToIncreaseWidth","polygonToArea","points","h","head","area","left","x","top","y","bottom","right","tail","reduce","p","lineToArea","from","to","pointsToArea","invariant","isDomainRangeEqual","graphProps","nextGraphProps","isEqual","domain","range","getRightestPoints","sortedPoints","cloneDeep","getMiddleOfTwoPoints","roundNumber","number","parseFloat","toFixed","sameAxes","p1","p2","equalPoints","getDistanceBetweenTicks","axis","size","nbOfTicks","thinnerShapesNeeded","_graphProps$size","width","height","getAdjustedGraphLimits","_graphProps$size2","domainTicksDistance","rangeTicksDistance","domainPadding","rangePadding","getDistanceBetweenTwoPoints","sqrt","sortPoints","array","checkCollinearity","c","isSameLine","markA","markB","isSameCircle","root","edge","isDuplicatedMark","mark","marks","oldMark","type","building","filteredMarks","m","index","findIndex","splice","duplicated","find"],"sources":["../src/utils.js"],"sourcesContent":["import { utils } from '@pie-lib/plot';\nimport invariant from 'invariant';\nimport { cloneDeep, head, isEmpty, isEqual, omit, tail } from 'lodash-es';\n\nexport const stripEmptyLabel = (pt) => (pt?.label === '' ? omit(pt, 'label') : pt);\n\nexport const tickCount = utils.tickCount;\nexport const bounds = utils.bounds;\nexport const point = utils.point;\n\n//TODO: This can be removed?\nexport const getAngleDeg = () => 0;\n//TODO: This can be removed?\nexport const arrowDimensions = () => 0;\n\nexport const getTickValues = (prop) => {\n const tickValues = [];\n let tickVal = 0;\n\n while (tickVal >= prop.min && tickValues.indexOf(tickVal) < 0) {\n tickValues.push(tickVal);\n tickVal = Math.round((tickVal - prop.step) * 10000) / 10000;\n }\n\n tickVal = Math.round(prop.step * 10000) / 10000;\n\n while (tickVal <= prop.max && tickValues.indexOf(tickVal) < 0) {\n tickValues.push(tickVal);\n tickVal = Math.round((tickVal + prop.step) * 10000) / 10000;\n }\n\n // return only ticks that are inside the min-max interval\n if (tickValues) {\n return tickValues.filter((tV) => tV >= prop.min && tV <= prop.max);\n }\n\n return [];\n};\n\nexport const countWords = (label) => {\n if (label == null || isEmpty(label)) {\n return 1;\n }\n\n const words = label.split(' ');\n return words.length;\n};\n\n// findLongestWord is also used in plot\nexport const findLongestWord = (label) => {\n let longestWord = (label || '')\n .replace(/<[^>]+>/g, '')\n .split(' ')\n .sort((a, b) => b.length - a.length);\n\n return longestWord[0].length;\n};\n\n// amountToIncreaseWidth is also used in plot\nexport const amountToIncreaseWidth = (longestWord) => {\n if (!longestWord) {\n return 0;\n }\n\n return longestWord * 10;\n};\n\nexport const polygonToArea = (points) => {\n const h = head(points);\n const area = {\n left: h.x,\n top: h.y,\n bottom: h.y,\n right: h.x,\n };\n return tail(points).reduce((a, p) => {\n a.left = Math.min(a.left, p.x);\n a.top = Math.max(a.top, p.y);\n a.bottom = Math.min(a.bottom, p.y);\n a.right = Math.max(a.right, p.x);\n return a;\n }, area);\n};\n\nexport const lineToArea = (from, to) => pointsToArea(from, to);\n\nexport const pointsToArea = (a, b) => {\n invariant(!!a && !!b, 'a or b is undefined');\n const left = Math.min(a.x, b.x);\n const top = Math.max(a.y, b.y);\n const bottom = Math.min(a.y, b.y);\n const right = Math.max(a.x, b.x);\n return { left, top, bottom, right };\n};\n\nexport const isDomainRangeEqual = (graphProps, nextGraphProps) => {\n return isEqual(graphProps.domain, nextGraphProps.domain) && isEqual(graphProps.range, nextGraphProps.range);\n};\n\nexport const getRightestPoints = (points) => {\n const sortedPoints = cloneDeep(points);\n sortedPoints.sort((a, b) => b.x - a.x);\n\n return { a: sortedPoints[0], b: sortedPoints[1] };\n};\n\nexport const getMiddleOfTwoPoints = (a, b) => ({\n x: (a.x + b.x) / 2,\n y: (a.y + b.y) / 2,\n});\n\nexport const roundNumber = (number) => parseFloat(number.toFixed(4));\n\nexport const sameAxes = (p1, p2) =>\n p1 && p2 && (roundNumber(p1.x) === roundNumber(p2.x) || roundNumber(p1.y) === roundNumber(p2.y));\n\nexport const equalPoints = (p1, p2) =>\n p1 &&\n p2 &&\n isEqual(\n {\n x: roundNumber(p1.x),\n y: roundNumber(p1.y),\n },\n {\n x: roundNumber(p2.x),\n y: roundNumber(p2.y),\n },\n );\n\nconst getDistanceBetweenTicks = (axis, size) => {\n const { min, max, step } = axis;\n const nbOfTicks = (max - min) / step;\n\n return size / nbOfTicks;\n};\n\nexport const thinnerShapesNeeded = (graphProps) => {\n const {\n domain,\n range,\n size: { width, height },\n } = graphProps;\n\n // 14 is the default width of a point\n return getDistanceBetweenTicks(domain, width) < 14 || getDistanceBetweenTicks(range, height) < 14;\n};\n\nexport const getAdjustedGraphLimits = (graphProps) => {\n const {\n domain,\n range,\n size: { width, height },\n } = graphProps;\n const domainTicksDistance = getDistanceBetweenTicks(domain, width);\n const rangeTicksDistance = getDistanceBetweenTicks(range, height);\n\n // 15 is the distance required for the arrow to extend the graph\n const domainPadding = domain.step / (domainTicksDistance / 15);\n const rangePadding = range.step / (rangeTicksDistance / 15);\n\n return {\n domain: {\n min: domain.min - domainPadding,\n max: domain.max + domainPadding,\n },\n range: {\n min: range.min - rangePadding,\n max: range.max + rangePadding,\n },\n };\n};\n\nexport const getDistanceBetweenTwoPoints = (a, b) => Math.sqrt((b.x - a.x) * (b.x - a.x) + (b.y - a.y) * (b.y - a.y));\n\nconst sortPoints = (array) => (array || []).sort((a, b) => a.x - b.x || a.y - b.y);\n\n// check colliniarity of 3 points (source: https://www.geeksforgeeks.org/program-check-three-points-collinear/)\nconst checkCollinearity = (a, b, c) => (a.x - b.x) * (c.y - b.y) === (c.x - b.x) * (a.y - b.y);\n\n// 2 lines are overlapping if all 4 points are collinear\nconst isSameLine = (markA, markB) =>\n checkCollinearity(markA.from, markB.from, markB.to) && checkCollinearity(markA.to, markB.from, markB.to);\n\nconst isSameCircle = (markA, markB) =>\n equalPoints(markA.root, markB.root) &&\n getDistanceBetweenTwoPoints(markB.root, markB.edge) === getDistanceBetweenTwoPoints(markA.root, markA.edge);\n\nexport const isDuplicatedMark = (mark, marks, oldMark) => {\n const { type, building } = mark;\n\n if (building) {\n return false;\n }\n\n const filteredMarks = (marks || []).filter((m) => m.type === type && !m.building);\n const index = filteredMarks.findIndex((m) => isEqual(m, oldMark));\n\n if (index !== -1) {\n filteredMarks.splice(index, 1);\n }\n\n const duplicated = filteredMarks.find((m) => {\n if (type === 'circle' || type === 'parabola' || type === 'sine' || type === 'absolute' || type === 'exponential') {\n const { root, edge } = mark;\n\n return (equalPoints(root, m.root) && equalPoints(edge, m.edge)) || (type === 'circle' && isSameCircle(m, mark));\n } else if (type === 'line' || type === 'ray' || type === 'segment' || type === 'vector') {\n const { from, to } = mark;\n\n return (\n (equalPoints(from, m.from) && equalPoints(to, m.to)) ||\n (equalPoints(from, m.to) && equalPoints(to, m.from)) ||\n (type === 'line' && isSameLine(m, mark))\n );\n } else if (type === 'polygon') {\n return isEqual(sortPoints(cloneDeep(mark.points)), sortPoints(cloneDeep(m.points)));\n } else if (type === 'point') {\n return equalPoints(m, mark);\n }\n });\n\n return !!duplicated;\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,250 +0,0 @@
1
- import React from 'react';
2
- import { render } from '@pie-lib/test-utils';
3
- import { select } from 'd3-selection';
4
- import Bg from '../bg';
5
-
6
- jest.mock('d3-selection', () => ({
7
- select: jest.fn(),
8
- pointer: jest.fn(() => [50, 50]),
9
- }));
10
-
11
- describe('Bg', () => {
12
- let defaultProps;
13
- let mockRect;
14
- let clickHandler;
15
-
16
- beforeEach(() => {
17
- clickHandler = null;
18
- mockRect = {
19
- on: jest.fn((event, handler) => {
20
- if (event === 'click') {
21
- clickHandler = handler;
22
- }
23
- }),
24
- node: jest.fn(() => ({})),
25
- };
26
-
27
- select.mockReturnValue(mockRect);
28
-
29
- defaultProps = {
30
- width: 500,
31
- height: 400,
32
- onClick: jest.fn(),
33
- graphProps: {
34
- domain: { min: -10, max: 10, step: 1, label: 'x', axisLabel: 'X' },
35
- range: { min: -10, max: 10, step: 1, label: 'y', axisLabel: 'Y' },
36
- size: { width: 500, height: 400 },
37
- scale: {
38
- x: {
39
- invert: jest.fn((val) => val / 10),
40
- },
41
- y: {
42
- invert: jest.fn((val) => val / 10),
43
- },
44
- },
45
- },
46
- };
47
- });
48
-
49
- describe('rendering', () => {
50
- it('renders without crashing', () => {
51
- const { container } = render(<Bg {...defaultProps} />);
52
- expect(container).toBeTruthy();
53
- });
54
-
55
- it('renders a rect element', () => {
56
- const { container } = render(<Bg {...defaultProps} />);
57
- const rect = container.querySelector('rect');
58
- expect(rect).toBeTruthy();
59
- });
60
-
61
- it('applies correct dimensions', () => {
62
- const { container } = render(<Bg {...defaultProps} />);
63
- const rect = container.querySelector('rect');
64
-
65
- // Width and height should be expanded by padding * 2
66
- const padding = 10; // default padding
67
- expect(rect.getAttribute('width')).toBe(String(defaultProps.width + padding * 2));
68
- expect(rect.getAttribute('height')).toBe(String(defaultProps.height + padding * 2));
69
- });
70
-
71
- it('applies correct transform', () => {
72
- const { container } = render(<Bg {...defaultProps} />);
73
- const rect = container.querySelector('rect');
74
- const padding = 10;
75
-
76
- expect(rect.getAttribute('transform')).toBe(`translate(-${padding}, -${padding})`);
77
- });
78
-
79
- it('sets fill opacity to make it invisible', () => {
80
- const { container } = render(<Bg {...defaultProps} />);
81
- const rect = container.querySelector('rect');
82
-
83
- expect(rect.getAttribute('fill-opacity')).toBe('0.0');
84
- });
85
- });
86
-
87
- describe('componentDidMount', () => {
88
- it('attaches click handler to rect', () => {
89
- render(<Bg {...defaultProps} />);
90
-
91
- expect(select).toHaveBeenCalled();
92
- expect(mockRect.on).toHaveBeenCalledWith('click', expect.any(Function));
93
- });
94
- });
95
-
96
- describe('getRectPadding', () => {
97
- it('returns 10 for normal graphs', () => {
98
- const { container } = render(<Bg {...defaultProps} />);
99
- const rect = container.querySelector('rect');
100
- const padding = 10;
101
-
102
- expect(rect.getAttribute('width')).toBe(String(defaultProps.width + padding * 2));
103
- });
104
-
105
- it('returns 6 for graphs with thinner shapes', () => {
106
- const props = {
107
- ...defaultProps,
108
- graphProps: {
109
- ...defaultProps.graphProps,
110
- domain: { min: -100, max: 100, step: 1, label: 'x', axisLabel: 'X' },
111
- },
112
- };
113
-
114
- const { container } = render(<Bg {...props} />);
115
- const rect = container.querySelector('rect');
116
- const padding = 6;
117
-
118
- expect(rect.getAttribute('width')).toBe(String(props.width + padding * 2));
119
- });
120
- });
121
-
122
- describe('onRectClick', () => {
123
- it('calls onClick with snapped coordinates', () => {
124
- const { pointer } = require('d3-selection');
125
- pointer.mockReturnValue([100, 100]);
126
-
127
- render(<Bg {...defaultProps} />);
128
-
129
- const event = new MouseEvent('click');
130
- clickHandler(event);
131
-
132
- expect(defaultProps.onClick).toHaveBeenCalled();
133
- const calledWith = defaultProps.onClick.mock.calls[0][0];
134
- expect(calledWith).toHaveProperty('x');
135
- expect(calledWith).toHaveProperty('y');
136
- });
137
-
138
- it('snaps coordinates to nearest tick', () => {
139
- const { pointer } = require('d3-selection');
140
-
141
- render(<Bg {...defaultProps} />);
142
-
143
- const event = new MouseEvent('click');
144
- clickHandler(event);
145
-
146
- expect(defaultProps.onClick).toHaveBeenCalled();
147
- const { x, y } = defaultProps.onClick.mock.calls[0][0];
148
-
149
- expect(Number.isInteger(x) || x.toString().length <= 4).toBe(true);
150
- expect(Number.isInteger(y) || y.toString().length <= 4).toBe(true);
151
- });
152
-
153
- it('accounts for padding when converting coordinates', () => {
154
- const { pointer } = require('d3-selection');
155
- const coords = [50, 50];
156
- pointer.mockReturnValue(coords);
157
-
158
- render(<Bg {...defaultProps} />);
159
-
160
- const event = new MouseEvent('click');
161
- clickHandler(event);
162
-
163
- expect(defaultProps.graphProps.scale.x.invert).toHaveBeenCalled();
164
- expect(defaultProps.graphProps.scale.y.invert).toHaveBeenCalled();
165
- });
166
- });
167
-
168
- describe('shouldComponentUpdate', () => {
169
- it('returns true when width changes', () => {
170
- const { rerender } = render(<Bg {...defaultProps} />);
171
- const newProps = {
172
- ...defaultProps,
173
- width: 600,
174
- graphProps: {
175
- ...defaultProps.graphProps,
176
- size: { width: 600, height: defaultProps.height },
177
- },
178
- };
179
-
180
- expect(() => {
181
- rerender(<Bg {...newProps} />);
182
- }).not.toThrow();
183
- });
184
-
185
- it('returns true when height changes', () => {
186
- const { rerender } = render(<Bg {...defaultProps} />);
187
- const newProps = {
188
- ...defaultProps,
189
- height: 500,
190
- graphProps: {
191
- ...defaultProps.graphProps,
192
- size: { width: defaultProps.width, height: 500 },
193
- },
194
- };
195
-
196
- expect(() => {
197
- rerender(<Bg {...newProps} />);
198
- }).not.toThrow();
199
- });
200
-
201
- it('returns true when graphProps domain/range changes', () => {
202
- const { rerender } = render(<Bg {...defaultProps} />);
203
- const newProps = {
204
- ...defaultProps,
205
- graphProps: {
206
- ...defaultProps.graphProps,
207
- domain: { min: -5, max: 5, step: 1, label: 'x', axisLabel: 'X' },
208
- },
209
- };
210
-
211
- expect(() => {
212
- rerender(<Bg {...newProps} />);
213
- }).not.toThrow();
214
- });
215
- });
216
-
217
- describe('edge cases', () => {
218
- it('handles zero dimensions', () => {
219
- const props = { ...defaultProps, width: 0, height: 0 };
220
- const { container } = render(<Bg {...props} />);
221
- const rect = container.querySelector('rect');
222
-
223
- expect(rect).toBeTruthy();
224
- });
225
-
226
- it('handles large dimensions', () => {
227
- const props = { ...defaultProps, width: 10000, height: 10000 };
228
- const { container } = render(<Bg {...props} />);
229
- const rect = container.querySelector('rect');
230
-
231
- expect(rect).toBeTruthy();
232
- expect(rect.getAttribute('width')).toBe('10020');
233
- expect(rect.getAttribute('height')).toBe('10020');
234
- });
235
-
236
- it('handles negative coordinates in domain/range', () => {
237
- const props = {
238
- ...defaultProps,
239
- graphProps: {
240
- ...defaultProps.graphProps,
241
- domain: { min: -100, max: -10, step: 1, label: 'x', axisLabel: 'X' },
242
- range: { min: -100, max: -10, step: 1, label: 'y', axisLabel: 'Y' },
243
- },
244
- };
245
-
246
- const { container } = render(<Bg {...props} />);
247
- expect(container.querySelector('rect')).toBeTruthy();
248
- });
249
- });
250
- });