@pie-lib/graphing 4.1.0-beta.9 → 5.0.0-next.37

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 (361) 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 +51 -41
  171. package/CHANGELOG.json +0 -1
  172. package/CHANGELOG.md +0 -1469
  173. package/lib/axis/arrow.js +0 -79
  174. package/lib/axis/arrow.js.map +0 -1
  175. package/lib/axis/axes.js +0 -329
  176. package/lib/axis/axes.js.map +0 -1
  177. package/lib/axis/index.js +0 -21
  178. package/lib/axis/index.js.map +0 -1
  179. package/lib/bg.js +0 -114
  180. package/lib/bg.js.map +0 -1
  181. package/lib/container/actions.js +0 -18
  182. package/lib/container/actions.js.map +0 -1
  183. package/lib/container/index.js +0 -127
  184. package/lib/container/index.js.map +0 -1
  185. package/lib/container/marks.js +0 -22
  186. package/lib/container/marks.js.map +0 -1
  187. package/lib/container/middleware.js +0 -19
  188. package/lib/container/middleware.js.map +0 -1
  189. package/lib/container/reducer.js +0 -18
  190. package/lib/container/reducer.js.map +0 -1
  191. package/lib/coordinates-label.js +0 -79
  192. package/lib/coordinates-label.js.map +0 -1
  193. package/lib/graph-with-controls.js +0 -294
  194. package/lib/graph-with-controls.js.map +0 -1
  195. package/lib/graph.js +0 -327
  196. package/lib/graph.js.map +0 -1
  197. package/lib/grid-setup.js +0 -414
  198. package/lib/grid-setup.js.map +0 -1
  199. package/lib/grid.js +0 -131
  200. package/lib/grid.js.map +0 -1
  201. package/lib/index.js +0 -47
  202. package/lib/index.js.map +0 -1
  203. package/lib/key-legend.js +0 -201
  204. package/lib/key-legend.js.map +0 -1
  205. package/lib/label-svg-icon.js +0 -50
  206. package/lib/label-svg-icon.js.map +0 -1
  207. package/lib/labels.js +0 -243
  208. package/lib/labels.js.map +0 -1
  209. package/lib/mark-label.js +0 -285
  210. package/lib/mark-label.js.map +0 -1
  211. package/lib/toggle-bar.js +0 -252
  212. package/lib/toggle-bar.js.map +0 -1
  213. package/lib/tool-menu.js +0 -78
  214. package/lib/tool-menu.js.map +0 -1
  215. package/lib/tools/absolute/component.js +0 -29
  216. package/lib/tools/absolute/component.js.map +0 -1
  217. package/lib/tools/absolute/index.js +0 -50
  218. package/lib/tools/absolute/index.js.map +0 -1
  219. package/lib/tools/circle/bg-circle.js +0 -123
  220. package/lib/tools/circle/bg-circle.js.map +0 -1
  221. package/lib/tools/circle/component.js +0 -321
  222. package/lib/tools/circle/component.js.map +0 -1
  223. package/lib/tools/circle/index.js +0 -41
  224. package/lib/tools/circle/index.js.map +0 -1
  225. package/lib/tools/exponential/component.js +0 -28
  226. package/lib/tools/exponential/component.js.map +0 -1
  227. package/lib/tools/exponential/index.js +0 -56
  228. package/lib/tools/exponential/index.js.map +0 -1
  229. package/lib/tools/index.js +0 -86
  230. package/lib/tools/index.js.map +0 -1
  231. package/lib/tools/line/component.js +0 -97
  232. package/lib/tools/line/component.js.map +0 -1
  233. package/lib/tools/line/index.js +0 -11
  234. package/lib/tools/line/index.js.map +0 -1
  235. package/lib/tools/parabola/component.js +0 -28
  236. package/lib/tools/parabola/component.js.map +0 -1
  237. package/lib/tools/parabola/index.js +0 -50
  238. package/lib/tools/parabola/index.js.map +0 -1
  239. package/lib/tools/point/component.js +0 -148
  240. package/lib/tools/point/component.js.map +0 -1
  241. package/lib/tools/point/index.js +0 -24
  242. package/lib/tools/point/index.js.map +0 -1
  243. package/lib/tools/polygon/component.js +0 -437
  244. package/lib/tools/polygon/component.js.map +0 -1
  245. package/lib/tools/polygon/index.js +0 -89
  246. package/lib/tools/polygon/index.js.map +0 -1
  247. package/lib/tools/polygon/line.js +0 -112
  248. package/lib/tools/polygon/line.js.map +0 -1
  249. package/lib/tools/polygon/polygon.js +0 -130
  250. package/lib/tools/polygon/polygon.js.map +0 -1
  251. package/lib/tools/ray/component.js +0 -95
  252. package/lib/tools/ray/component.js.map +0 -1
  253. package/lib/tools/ray/index.js +0 -11
  254. package/lib/tools/ray/index.js.map +0 -1
  255. package/lib/tools/segment/component.js +0 -71
  256. package/lib/tools/segment/component.js.map +0 -1
  257. package/lib/tools/segment/index.js +0 -11
  258. package/lib/tools/segment/index.js.map +0 -1
  259. package/lib/tools/shared/arrow-head.js +0 -111
  260. package/lib/tools/shared/arrow-head.js.map +0 -1
  261. package/lib/tools/shared/icons/CorrectSVG.js +0 -40
  262. package/lib/tools/shared/icons/CorrectSVG.js.map +0 -1
  263. package/lib/tools/shared/icons/IncorrectSVG.js +0 -40
  264. package/lib/tools/shared/icons/IncorrectSVG.js.map +0 -1
  265. package/lib/tools/shared/icons/MissingSVG.js +0 -39
  266. package/lib/tools/shared/icons/MissingSVG.js.map +0 -1
  267. package/lib/tools/shared/line/index.js +0 -550
  268. package/lib/tools/shared/line/index.js.map +0 -1
  269. package/lib/tools/shared/line/line-path.js +0 -118
  270. package/lib/tools/shared/line/line-path.js.map +0 -1
  271. package/lib/tools/shared/line/with-root-edge.js +0 -121
  272. package/lib/tools/shared/line/with-root-edge.js.map +0 -1
  273. package/lib/tools/shared/point/arrow-point.js +0 -72
  274. package/lib/tools/shared/point/arrow-point.js.map +0 -1
  275. package/lib/tools/shared/point/arrow.js +0 -67
  276. package/lib/tools/shared/point/arrow.js.map +0 -1
  277. package/lib/tools/shared/point/base-point.js +0 -157
  278. package/lib/tools/shared/point/base-point.js.map +0 -1
  279. package/lib/tools/shared/point/index.js +0 -68
  280. package/lib/tools/shared/point/index.js.map +0 -1
  281. package/lib/tools/shared/styles.js +0 -33
  282. package/lib/tools/shared/styles.js.map +0 -1
  283. package/lib/tools/shared/types.js +0 -16
  284. package/lib/tools/shared/types.js.map +0 -1
  285. package/lib/tools/sine/component.js +0 -40
  286. package/lib/tools/sine/component.js.map +0 -1
  287. package/lib/tools/sine/index.js +0 -50
  288. package/lib/tools/sine/index.js.map +0 -1
  289. package/lib/tools/vector/component.js +0 -68
  290. package/lib/tools/vector/component.js.map +0 -1
  291. package/lib/tools/vector/index.js +0 -11
  292. package/lib/tools/vector/index.js.map +0 -1
  293. package/lib/undo-redo.js +0 -86
  294. package/lib/undo-redo.js.map +0 -1
  295. package/lib/use-debounce.js +0 -25
  296. package/lib/use-debounce.js.map +0 -1
  297. package/lib/utils.js +0 -229
  298. package/lib/utils.js.map +0 -1
  299. package/src/axis/arrow.jsx +0 -57
  300. package/src/axis/axes.jsx +0 -285
  301. package/src/axis/index.js +0 -3
  302. package/src/bg.jsx +0 -96
  303. package/src/container/actions.js +0 -8
  304. package/src/container/index.jsx +0 -91
  305. package/src/container/marks.js +0 -14
  306. package/src/container/middleware.js +0 -7
  307. package/src/container/reducer.js +0 -5
  308. package/src/coordinates-label.jsx +0 -63
  309. package/src/graph-with-controls.jsx +0 -239
  310. package/src/graph.jsx +0 -303
  311. package/src/grid-setup.jsx +0 -432
  312. package/src/grid.jsx +0 -133
  313. package/src/index.js +0 -7
  314. package/src/key-legend.jsx +0 -142
  315. package/src/label-svg-icon.jsx +0 -39
  316. package/src/labels.jsx +0 -207
  317. package/src/mark-label.jsx +0 -244
  318. package/src/toggle-bar.jsx +0 -224
  319. package/src/tool-menu.jsx +0 -49
  320. package/src/tools/absolute/component.jsx +0 -23
  321. package/src/tools/absolute/index.js +0 -31
  322. package/src/tools/circle/bg-circle.jsx +0 -81
  323. package/src/tools/circle/component.jsx +0 -264
  324. package/src/tools/circle/index.js +0 -25
  325. package/src/tools/exponential/component.jsx +0 -23
  326. package/src/tools/exponential/index.js +0 -39
  327. package/src/tools/index.js +0 -48
  328. package/src/tools/line/component.jsx +0 -93
  329. package/src/tools/line/index.js +0 -4
  330. package/src/tools/parabola/component.jsx +0 -23
  331. package/src/tools/parabola/index.js +0 -31
  332. package/src/tools/point/component.jsx +0 -126
  333. package/src/tools/point/index.js +0 -11
  334. package/src/tools/polygon/component.jsx +0 -409
  335. package/src/tools/polygon/index.js +0 -52
  336. package/src/tools/polygon/line.jsx +0 -74
  337. package/src/tools/polygon/polygon.jsx +0 -110
  338. package/src/tools/ray/component.jsx +0 -92
  339. package/src/tools/ray/index.js +0 -4
  340. package/src/tools/segment/component.jsx +0 -65
  341. package/src/tools/segment/index.js +0 -4
  342. package/src/tools/shared/arrow-head.jsx +0 -102
  343. package/src/tools/shared/icons/CorrectSVG.jsx +0 -32
  344. package/src/tools/shared/icons/IncorrectSVG.jsx +0 -30
  345. package/src/tools/shared/icons/MissingSVG.jsx +0 -31
  346. package/src/tools/shared/line/index.jsx +0 -487
  347. package/src/tools/shared/line/line-path.jsx +0 -80
  348. package/src/tools/shared/line/with-root-edge.jsx +0 -97
  349. package/src/tools/shared/point/arrow-point.jsx +0 -46
  350. package/src/tools/shared/point/arrow.jsx +0 -37
  351. package/src/tools/shared/point/base-point.jsx +0 -121
  352. package/src/tools/shared/point/index.jsx +0 -54
  353. package/src/tools/shared/styles.js +0 -27
  354. package/src/tools/shared/types.js +0 -10
  355. package/src/tools/sine/component.jsx +0 -32
  356. package/src/tools/sine/index.js +0 -33
  357. package/src/tools/vector/component.jsx +0 -56
  358. package/src/tools/vector/index.js +0 -4
  359. package/src/undo-redo.jsx +0 -45
  360. package/src/use-debounce.js +0 -13
  361. package/src/utils.js +0 -224
package/src/bg.jsx DELETED
@@ -1,96 +0,0 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import { pointer, select } from 'd3-selection';
4
- import { types, utils } from '@pie-lib/plot';
5
- import { getTickValues, thinnerShapesNeeded } from './utils';
6
-
7
- export default class Bg extends React.Component {
8
- static propTypes = {
9
- width: PropTypes.number.isRequired,
10
- height: PropTypes.number.isRequired,
11
- onClick: PropTypes.func.isRequired,
12
- graphProps: types.GraphPropsType.isRequired,
13
- };
14
-
15
- static defaultProps = {};
16
-
17
- componentDidMount() {
18
- const rect = select(this.rect);
19
-
20
- rect.on('click', (event) => this.onRectClick(rect, event));
21
- }
22
-
23
- shouldComponentUpdate(nextProps) {
24
- return (
25
- !utils.isDomainRangeEqual(this.props.graphProps, nextProps.graphProps) ||
26
- this.props.width !== nextProps.width ||
27
- this.props.height !== nextProps.height
28
- );
29
- }
30
-
31
- getRectPadding = () => {
32
- const { graphProps } = this.props;
33
-
34
- return thinnerShapesNeeded(graphProps) ? 6 : 10;
35
- };
36
-
37
- /**
38
- * Note: we use d3 click + pointer to give us domain values directly.
39
- * Saves us having to calculate them ourselves from a MouseEvent.
40
- */
41
- onRectClick = (rect, event) => {
42
- const { onClick, graphProps } = this.props;
43
- const { scale } = graphProps;
44
-
45
- const padding = this.getRectPadding();
46
- const coords = pointer(event, rect.node());
47
-
48
- // decrease the padding from coordinates to indicate the correct point clicked
49
- const x = scale.x.invert(coords[0] - padding);
50
- const y = scale.y.invert(coords[1] - padding);
51
-
52
- const rowTicks = getTickValues(graphProps.range);
53
- const columnTicks = getTickValues(graphProps.domain);
54
-
55
- const closest = (ticks, value) => {
56
- return (
57
- ticks.length &&
58
- ticks.reduce((prev, curr) => {
59
- const currentDistance = Math.abs(curr - value);
60
- const previousDistance = Math.abs(prev - value);
61
-
62
- return currentDistance <= previousDistance ? curr : prev;
63
- })
64
- );
65
- };
66
-
67
- let snapped = {};
68
-
69
- if (columnTicks.indexOf(x) >= 0 && rowTicks.indexOf(y) >= 0) {
70
- snapped.x = x;
71
- snapped.y = y;
72
- } else {
73
- snapped.x = closest(columnTicks, x);
74
- snapped.y = closest(rowTicks, y);
75
- }
76
-
77
- onClick(snapped);
78
- };
79
-
80
- render() {
81
- const { width, height } = this.props;
82
- const padding = this.getRectPadding();
83
-
84
- // expand the size of clickable area so a small area outside the edges of the grid lines to be clickable
85
- return (
86
- <rect
87
- ref={(rect) => (this.rect = rect)}
88
- transform={`translate(-${padding}, -${padding})`}
89
- fill="red"
90
- fillOpacity="0.0"
91
- width={width + padding * 2}
92
- height={height + padding * 2}
93
- />
94
- );
95
- }
96
- }
@@ -1,8 +0,0 @@
1
- export const addMark = () => ({
2
- type: 'ADD_MARK',
3
- });
4
-
5
- export const changeMarks = (marks) => ({
6
- type: 'CHANGE_MARKS',
7
- marks,
8
- });
@@ -1,91 +0,0 @@
1
- import { connect, Provider } from 'react-redux';
2
- import React from 'react';
3
- import { applyMiddleware, createStore } from 'redux';
4
- import reducer from './reducer';
5
- import { changeMarks } from './actions';
6
- import PropTypes from 'prop-types';
7
- import { isEqual } from 'lodash-es';
8
- import { ActionCreators } from 'redux-undo';
9
- import GraphWithControls from '../graph-with-controls';
10
- import { lastActionMiddleware } from './middleware';
11
-
12
- const mapStateToProps = (s) => ({
13
- marks: s.marks.present,
14
- });
15
-
16
- const mapDispatchToProps = (dispatch) => ({
17
- onChangeMarks: (m) => dispatch(changeMarks(m)),
18
- onUndo: () => dispatch(ActionCreators.undo()),
19
- onRedo: () => dispatch(ActionCreators.redo()),
20
- onReset: () => dispatch(changeMarks([])),
21
- });
22
-
23
- export const GraphContainer = connect(mapStateToProps, mapDispatchToProps)(GraphWithControls);
24
-
25
- /**
26
- * The graph component entry point with undo/redo
27
- * Redux is an implementation detail, hide it in the react component.
28
- */
29
- class Root extends React.Component {
30
- static propTypes = {
31
- onChangeMarks: PropTypes.func,
32
- marks: PropTypes.array,
33
- };
34
-
35
- constructor(props) {
36
- super(props);
37
-
38
- const r = reducer();
39
- this.store = createStore(r, { marks: props.marks }, applyMiddleware(lastActionMiddleware));
40
-
41
- this.store.subscribe(this.onStoreChange);
42
- }
43
-
44
- componentDidUpdate(prevProps) {
45
- const { marks } = this.props;
46
- const storeState = this.store.getState();
47
-
48
- if (isEqual(storeState.marks.present, marks)) {
49
- return;
50
- }
51
-
52
- if (!isEqual(prevProps.marks, marks)) {
53
- // Don't dispatch marks that have correctness (evaluate mode marks) into the undo history.
54
- // These marks are already handled in render() via the correctnessSet path and bypass the
55
- // Redux store entirely. Dispatching them would pollute the undo history and cause the graph
56
- // to show the correct answer when the user presses undo after returning to gather mode.
57
- const hasCorrectness = marks && marks.find((m) => m.correctness);
58
-
59
- if (!hasCorrectness) {
60
- this.store.dispatch(changeMarks(marks));
61
- }
62
- }
63
- }
64
-
65
- onStoreChange = () => {
66
- const { marks, onChangeMarks } = this.props;
67
- const storeState = this.store.getState();
68
-
69
- if (!isEqual(storeState.marks.present, marks)) {
70
- onChangeMarks(storeState.marks.present);
71
- }
72
- };
73
-
74
- render() {
75
- // eslint-disable-next-line no-unused-vars
76
- const { onChangeMarks, marks, ...rest } = this.props;
77
- const correctnessSet = marks && marks.find((m) => m.correctness);
78
-
79
- if (correctnessSet) {
80
- return <GraphWithControls {...rest} marks={marks} disabled={correctnessSet} />;
81
- }
82
-
83
- return (
84
- <Provider store={this.store}>
85
- <GraphContainer {...rest} />
86
- </Provider>
87
- );
88
- }
89
- }
90
-
91
- export default Root;
@@ -1,14 +0,0 @@
1
- const marks = (state = [], action) => {
2
- switch (action.type) {
3
- case 'CHANGE_MARKS':
4
- if (Array.isArray(action.marks)) {
5
- return action.marks;
6
- } else {
7
- throw new Error('marks must be an array');
8
- }
9
- default:
10
- return state;
11
- }
12
- };
13
-
14
- export default marks;
@@ -1,7 +0,0 @@
1
- let lastAction = null;
2
- export const getLastAction = () => lastAction;
3
-
4
- export const lastActionMiddleware = () => (next) => (action) => {
5
- lastAction = action;
6
- return next(action);
7
- };
@@ -1,5 +0,0 @@
1
- import { combineReducers } from 'redux';
2
- import marks from './marks';
3
- import undoable from 'redux-undo';
4
-
5
- export default () => combineReducers({ marks: undoable(marks, { debug: false }) });
@@ -1,63 +0,0 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import { types } from '@pie-lib/plot';
4
- import { color } from '@pie-lib/render-ui';
5
- import { styled } from '@mui/material/styles';
6
- import InputBase from '@mui/material/InputBase';
7
- import { roundNumber } from './utils';
8
-
9
- const StyledInputBase = styled(InputBase)(({ theme }) => ({
10
- fontFamily: theme.typography.fontFamily,
11
- fontSize: theme.typography.fontSize,
12
- borderRadius: '8px',
13
- background: theme.palette.common.white,
14
- color: color.defaults.PRIMARY_DARK,
15
- '& .MuiInputBase-input': {
16
- padding: 0,
17
- },
18
- }));
19
-
20
- // eslint-disable-next-line react/prop-types
21
- export const getLabelPosition = (graphProps, x, y, labelLength) => {
22
- const { scale, domain, range } = graphProps;
23
- // treat corner cases for maximum and minimum
24
- const topShift = y === range.min ? 16 : y === range.max ? 0 : 8;
25
- const leftShift = 10;
26
- const rightEdge = scale.x(x) + labelLength + leftShift;
27
-
28
- if (rightEdge >= scale.x(domain.max)) {
29
- return {
30
- left: scale.x(x) - leftShift - labelLength,
31
- top: scale.y(y) - topShift,
32
- };
33
- }
34
-
35
- return {
36
- left: scale.x(x) + leftShift,
37
- top: scale.y(y) - topShift,
38
- };
39
- };
40
-
41
- export const CoordinatesLabel = ({ x, y, graphProps }) => {
42
- const label = `(${roundNumber(x)}, ${roundNumber(y)})`;
43
- const labelLength = (label.length || 0) * 6;
44
- const labelPosition = getLabelPosition(graphProps, x, y, labelLength);
45
-
46
- const style = {
47
- position: 'absolute',
48
- pointerEvents: 'auto',
49
- width: labelLength,
50
- padding: 0,
51
- ...labelPosition,
52
- };
53
-
54
- return <StyledInputBase style={style} value={label} inputProps={{ ariaLabel: 'naked' }} />;
55
- };
56
-
57
- CoordinatesLabel.propTypes = {
58
- graphProps: types.GraphPropsType,
59
- x: PropTypes.number,
60
- y: PropTypes.number,
61
- };
62
-
63
- export default CoordinatesLabel;
@@ -1,239 +0,0 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import { styled } from '@mui/material/styles';
4
- import { isString, uniq } from 'lodash-es';
5
- import { color } from '@pie-lib/render-ui';
6
-
7
- import ToolMenu from './tool-menu';
8
- import Graph, { graphPropTypes } from './graph';
9
- import UndoRedo from './undo-redo';
10
- import { allTools, toolsArr } from './tools';
11
- import { Accordion, AccordionDetails, AccordionSummary, Typography } from '@mui/material';
12
- import ExpandMoreIcon from '@mui/icons-material/ExpandMore';
13
-
14
- const StyledGraphContainer = styled('div')({
15
- display: 'flex',
16
- flexDirection: 'column',
17
- width: 'min-content',
18
- });
19
-
20
- const StyledControls = styled('div')(({ theme }) => ({
21
- display: 'flex',
22
- justifyContent: 'space-between',
23
- padding: theme.spacing(1),
24
- color: color.text(),
25
- backgroundColor: color.primaryLight(),
26
- '& button': {
27
- fontSize: theme.typography.fontSize,
28
- },
29
- }));
30
-
31
- const StyledAccordion = styled(Accordion)({
32
- backgroundColor: color.primaryLight(),
33
- width: '100%',
34
- });
35
-
36
- const StyledAccordionSummary = styled(AccordionSummary)(({ theme }) => ({
37
- padding: `0 ${theme.spacing(1)}`,
38
- minHeight: '32px !important',
39
- '& .MuiAccordionSummary-content': {
40
- margin: '4px 0 !important',
41
- },
42
- }));
43
-
44
- const StyledAccordionDetails = styled(AccordionDetails)(({ theme }) => ({
45
- padding: 0,
46
- marginTop: theme.spacing(1),
47
- display: 'flex',
48
- justifyContent: 'space-between',
49
- }));
50
-
51
- export const setToolbarAvailability = (toolbarTools) =>
52
- toolsArr.map((tA) => ({ ...tA, toolbar: !!toolbarTools.find((t) => t === tA.type) })) || [];
53
-
54
- export const toolIsAvailable = (tools, currentTool) =>
55
- currentTool && tools && (tools.find((tool) => tool.type === currentTool.type) || {}).toolbar;
56
-
57
- export const getAvailableTool = (tools) => tools.find((tool) => tool.toolbar);
58
-
59
- export const filterByValidToolTypes = (backgroundMarks) =>
60
- backgroundMarks.filter((bM) => !!allTools.find((tool) => tool === bM.type));
61
-
62
- export const filterByVisibleToolTypes = (toolbarTools, marks) =>
63
- marks.filter((bM) => !!toolbarTools.find((tool) => tool === bM.type));
64
-
65
- const getDefaultCurrentTool = (toolType) => toolsArr.find((tool) => tool.type === toolType) || null;
66
-
67
- const Collapsible = ({ children, title }) => (
68
- <StyledAccordion
69
- elevation={0}
70
- disableGutters={true}
71
- square={true}
72
- TransitionProps={{ timeout: { enter: 225, exit: 195 } }}
73
- >
74
- <StyledAccordionSummary expandIcon={<ExpandMoreIcon />}>
75
- <Typography variant="subheading">{title}</Typography>
76
- </StyledAccordionSummary>
77
- <StyledAccordionDetails>{children}</StyledAccordionDetails>
78
- </StyledAccordion>
79
- );
80
-
81
- Collapsible.propTypes = {
82
- children: PropTypes.array,
83
- title: PropTypes.string,
84
- };
85
-
86
- export class GraphWithControls extends React.Component {
87
- static propTypes = {
88
- ...graphPropTypes,
89
- onUndo: PropTypes.func,
90
- onRedo: PropTypes.func,
91
- onReset: PropTypes.func,
92
- toolbarTools: PropTypes.arrayOf(PropTypes.string), // array of tool types that have to be displayed in the toolbar, same shape as 'allTools'
93
- language: PropTypes.string,
94
- };
95
-
96
- static defaultProps = {
97
- collapsibleToolbar: false,
98
- collapsibleToolbarTitle: '',
99
- disabledLabels: false,
100
- disabledTitle: false,
101
- showLabels: true,
102
- showTitle: true,
103
- toolbarTools: [],
104
- };
105
-
106
- constructor(props) {
107
- super(props);
108
-
109
- this.state = {
110
- currentTool: getDefaultCurrentTool(props.defaultTool),
111
- labelModeEnabled: false,
112
- };
113
- }
114
-
115
- componentDidUpdate(prevProps) {
116
- const { defaultTool } = this.props;
117
-
118
- if (prevProps.defaultTool !== defaultTool) {
119
- const currentTool = getDefaultCurrentTool(defaultTool);
120
-
121
- this.setState({ currentTool });
122
- }
123
- }
124
-
125
- changeCurrentTool = (tool, tools) =>
126
- this.setState({ currentTool: tools.find((t) => t.type === tool), labelModeEnabled: tool === 'label' });
127
-
128
- render() {
129
- let { currentTool, labelModeEnabled } = this.state;
130
- const {
131
- axesSettings,
132
- className,
133
- coordinatesOnHover,
134
- collapsibleToolbar,
135
- collapsibleToolbarTitle,
136
- disabled,
137
- disabledLabels,
138
- disabledTitle,
139
- domain,
140
- draggableTools,
141
- labels,
142
- labelsPlaceholders,
143
- onChangeLabels,
144
- onChangeMarks,
145
- onChangeTitle,
146
- onChangeTools,
147
- onUndo,
148
- onRedo,
149
- onReset,
150
- range,
151
- size,
152
- showLabels,
153
- showPixelGuides,
154
- showTitle,
155
- title,
156
- titlePlaceholder,
157
- language,
158
- removeIncompleteTool,
159
- limitLabeling,
160
- } = this.props;
161
- let { backgroundMarks, marks, toolbarTools } = this.props;
162
-
163
- // make sure only valid tool types are kept (string) and without duplicates
164
- toolbarTools = uniq(toolbarTools || []).filter((tT) => !!isString(tT)) || [];
165
-
166
- // keep only the backgroundMarks that have valid types
167
- backgroundMarks = filterByValidToolTypes(backgroundMarks || []);
168
-
169
- // keep only the marks that have types which appear in toolbar
170
- marks = filterByVisibleToolTypes(toolbarTools, marks || []);
171
-
172
- const tools = setToolbarAvailability(toolbarTools);
173
-
174
- // set current tool if there's no current tool or if the existing one is no longer available
175
- if (!currentTool || !toolIsAvailable(tools, currentTool)) {
176
- currentTool = getAvailableTool(tools);
177
- }
178
-
179
- const graphActions = (
180
- <React.Fragment>
181
- <ToolMenu
182
- currentToolType={currentTool && currentTool.type}
183
- disabled={!!disabled}
184
- draggableTools={draggableTools}
185
- labelModeEnabled={labelModeEnabled}
186
- onChange={(tool) => this.changeCurrentTool(tool, tools)}
187
- toolbarTools={toolbarTools}
188
- onChangeTools={onChangeTools}
189
- language={language}
190
- />
191
-
192
- {!disabled && <UndoRedo onUndo={onUndo} onRedo={onRedo} onReset={onReset} language={language} />}
193
- </React.Fragment>
194
- );
195
-
196
- return (
197
- <StyledGraphContainer className={className}>
198
- <StyledControls>
199
- {collapsibleToolbar ? (
200
- <Collapsible title={collapsibleToolbarTitle}>{graphActions}</Collapsible>
201
- ) : (
202
- graphActions
203
- )}
204
- </StyledControls>
205
-
206
- <div ref={(r) => (this.labelNode = r)} />
207
-
208
- <Graph
209
- axesSettings={axesSettings}
210
- backgroundMarks={backgroundMarks}
211
- coordinatesOnHover={coordinatesOnHover}
212
- currentTool={currentTool}
213
- disabledLabels={disabledLabels}
214
- disabledTitle={disabledTitle}
215
- domain={domain}
216
- labels={labels}
217
- labelModeEnabled={labelModeEnabled}
218
- labelsPlaceholders={labelsPlaceholders}
219
- marks={marks}
220
- onChangeMarks={!disabled ? onChangeMarks : undefined}
221
- onChangeLabels={onChangeLabels}
222
- onChangeTitle={onChangeTitle}
223
- range={range}
224
- size={size}
225
- showLabels={showLabels}
226
- showPixelGuides={showPixelGuides}
227
- showTitle={showTitle}
228
- title={title}
229
- titlePlaceholder={titlePlaceholder}
230
- tools={tools}
231
- removeIncompleteTool={removeIncompleteTool}
232
- limitLabeling={limitLabeling}
233
- />
234
- </StyledGraphContainer>
235
- );
236
- }
237
- }
238
-
239
- export default GraphWithControls;