@pie-lib/graphing-solution-set 4.0.4-next.3 → 4.0.4-next.30

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 (310) hide show
  1. package/dist/_virtual/_rolldown/runtime.js +23 -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 +85 -0
  24. package/dist/graph-with-controls.js +155 -0
  25. package/dist/graph.d.ts +119 -0
  26. package/dist/graph.js +221 -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 +14 -0
  32. package/dist/index.js +6 -0
  33. package/dist/labels.d.ts +73 -0
  34. package/dist/labels.js +134 -0
  35. package/dist/mark-label.d.ts +50 -0
  36. package/dist/mark-label.js +84 -0
  37. package/dist/node_modules/.bun/@visx_axis@3.12.0_f4eacebf2041cd4f/node_modules/@visx/axis/esm/axis/Axis.js +101 -0
  38. package/dist/node_modules/.bun/@visx_axis@3.12.0_f4eacebf2041cd4f/node_modules/@visx/axis/esm/axis/AxisRenderer.js +63 -0
  39. package/dist/node_modules/.bun/@visx_axis@3.12.0_f4eacebf2041cd4f/node_modules/@visx/axis/esm/axis/Ticks.js +44 -0
  40. package/dist/node_modules/.bun/@visx_axis@3.12.0_f4eacebf2041cd4f/node_modules/@visx/axis/esm/constants/orientation.js +9 -0
  41. package/dist/node_modules/.bun/@visx_axis@3.12.0_f4eacebf2041cd4f/node_modules/@visx/axis/esm/utils/createPoint.js +14 -0
  42. package/dist/node_modules/.bun/@visx_axis@3.12.0_f4eacebf2041cd4f/node_modules/@visx/axis/esm/utils/getAxisRangePaddingConfig.js +21 -0
  43. package/dist/node_modules/.bun/@visx_axis@3.12.0_f4eacebf2041cd4f/node_modules/@visx/axis/esm/utils/getLabelTransform.js +16 -0
  44. package/dist/node_modules/.bun/@visx_axis@3.12.0_f4eacebf2041cd4f/node_modules/@visx/axis/esm/utils/getTickFormatter.js +8 -0
  45. package/dist/node_modules/.bun/@visx_axis@3.12.0_f4eacebf2041cd4f/node_modules/@visx/axis/esm/utils/getTickPosition.js +15 -0
  46. package/dist/node_modules/.bun/@visx_grid@3.12.0_f4eacebf2041cd4f/node_modules/@visx/grid/esm/grids/Grid.js +79 -0
  47. package/dist/node_modules/.bun/@visx_grid@3.12.0_f4eacebf2041cd4f/node_modules/@visx/grid/esm/grids/GridColumns.js +79 -0
  48. package/dist/node_modules/.bun/@visx_grid@3.12.0_f4eacebf2041cd4f/node_modules/@visx/grid/esm/grids/GridRows.js +79 -0
  49. package/dist/node_modules/.bun/@visx_grid@3.12.0_f4eacebf2041cd4f/node_modules/@visx/grid/esm/utils/getScaleBandwidth.js +6 -0
  50. package/dist/node_modules/.bun/@visx_group@3.12.0_f4eacebf2041cd4f/node_modules/@visx/group/esm/Group.js +50 -0
  51. package/dist/node_modules/.bun/@visx_point@3.12.0/node_modules/@visx/point/esm/Point.js +18 -0
  52. package/dist/node_modules/.bun/@visx_scale@3.12.0/node_modules/@visx/scale/esm/utils/coerceNumber.js +10 -0
  53. package/dist/node_modules/.bun/@visx_scale@3.12.0/node_modules/@visx/scale/esm/utils/getTicks.js +9 -0
  54. package/dist/node_modules/.bun/@visx_scale@3.12.0/node_modules/@visx/scale/esm/utils/toString.js +6 -0
  55. package/dist/node_modules/.bun/@visx_shape@3.12.0_f4eacebf2041cd4f/node_modules/@visx/shape/esm/shapes/Line.js +47 -0
  56. package/dist/node_modules/.bun/@visx_shape@3.12.0_f4eacebf2041cd4f/node_modules/@visx/shape/lib/shapes/Line.js +53 -0
  57. package/dist/node_modules/.bun/@visx_text@3.12.0_f4eacebf2041cd4f/node_modules/@visx/text/esm/Text.js +57 -0
  58. package/dist/node_modules/.bun/@visx_text@3.12.0_f4eacebf2041cd4f/node_modules/@visx/text/esm/hooks/useText.js +91 -0
  59. package/dist/node_modules/.bun/@visx_text@3.12.0_f4eacebf2041cd4f/node_modules/@visx/text/esm/util/getStringWidth.js +21 -0
  60. package/dist/node_modules/.bun/balanced-match@0.4.2/node_modules/balanced-match/index.js +32 -0
  61. package/dist/node_modules/.bun/balanced-match@1.0.2/node_modules/balanced-match/index.js +33 -0
  62. package/dist/node_modules/.bun/classnames@2.5.1/node_modules/classnames/index.js +32 -0
  63. package/dist/node_modules/.bun/clsx@2.1.1/node_modules/clsx/dist/clsx.js +16 -0
  64. package/dist/node_modules/.bun/invariant@2.2.4/node_modules/invariant/browser.js +28 -0
  65. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_Hash.js +21 -0
  66. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_ListCache.js +21 -0
  67. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_Map.js +10 -0
  68. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_MapCache.js +21 -0
  69. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_Symbol.js +9 -0
  70. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_assocIndexOf.js +14 -0
  71. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseGetTag.js +15 -0
  72. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseIsNative.js +16 -0
  73. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_coreJsData.js +9 -0
  74. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_freeGlobal.js +8 -0
  75. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_getMapData.js +14 -0
  76. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_getNative.js +15 -0
  77. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_getRawTag.js +19 -0
  78. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_getValue.js +11 -0
  79. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_hashClear.js +13 -0
  80. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_hashDelete.js +12 -0
  81. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_hashGet.js +18 -0
  82. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_hashHas.js +14 -0
  83. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_hashSet.js +14 -0
  84. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_isKeyable.js +12 -0
  85. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_isMasked.js +16 -0
  86. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_listCacheClear.js +11 -0
  87. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_listCacheDelete.js +14 -0
  88. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_listCacheGet.js +14 -0
  89. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_listCacheHas.js +13 -0
  90. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_listCacheSet.js +14 -0
  91. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_mapCacheClear.js +19 -0
  92. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_mapCacheDelete.js +14 -0
  93. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_mapCacheGet.js +13 -0
  94. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_mapCacheHas.js +13 -0
  95. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_mapCacheSet.js +14 -0
  96. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_nativeCreate.js +9 -0
  97. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_objectToString.js +12 -0
  98. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_root.js +10 -0
  99. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_toSource.js +20 -0
  100. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/eq.js +11 -0
  101. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/isFunction.js +16 -0
  102. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/isObject.js +12 -0
  103. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/memoize.js +20 -0
  104. package/dist/node_modules/.bun/math-expression-evaluator@1.4.0/node_modules/math-expression-evaluator/src/formula_evaluator.js +37 -0
  105. package/dist/node_modules/.bun/math-expression-evaluator@1.4.0/node_modules/math-expression-evaluator/src/lexer.js +509 -0
  106. package/dist/node_modules/.bun/math-expression-evaluator@1.4.0/node_modules/math-expression-evaluator/src/math_function.js +108 -0
  107. package/dist/node_modules/.bun/math-expression-evaluator@1.4.0/node_modules/math-expression-evaluator/src/postfix.js +31 -0
  108. package/dist/node_modules/.bun/math-expression-evaluator@1.4.0/node_modules/math-expression-evaluator/src/postfix_evaluator.js +45 -0
  109. package/dist/node_modules/.bun/react-redux@9.3.0_9e2203c65d1d5fa1/node_modules/react-redux/dist/react-redux.js +471 -0
  110. package/dist/node_modules/.bun/reduce-css-calc@1.3.0/node_modules/reduce-css-calc/index.js +49 -0
  111. package/dist/node_modules/.bun/reduce-function-call@1.0.3/node_modules/reduce-function-call/index.js +34 -0
  112. package/dist/node_modules/.bun/redux-undo@1.1.0/node_modules/redux-undo/dist/redux-undo.js +185 -0
  113. package/dist/node_modules/.bun/redux@5.0.1/node_modules/redux/dist/redux.js +198 -0
  114. package/dist/node_modules/.bun/use-sync-external-store@1.6.0_f4eacebf2041cd4f/node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.development.js +53 -0
  115. package/dist/node_modules/.bun/use-sync-external-store@1.6.0_f4eacebf2041cd4f/node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.production.js +51 -0
  116. package/dist/node_modules/.bun/use-sync-external-store@1.6.0_f4eacebf2041cd4f/node_modules/use-sync-external-store/with-selector.js +10 -0
  117. package/dist/toggle-bar.d.ts +40 -0
  118. package/dist/tool-menu.d.ts +21 -0
  119. package/dist/tool-menu.js +188 -0
  120. package/dist/tools/index.d.ts +17 -0
  121. package/dist/tools/index.js +12 -0
  122. package/dist/tools/line/component.d.ts +113 -0
  123. package/dist/tools/line/component.js +58 -0
  124. package/dist/tools/line/index.d.ts +13 -0
  125. package/dist/tools/line/index.js +6 -0
  126. package/dist/tools/polygon/component.d.ts +117 -0
  127. package/dist/tools/polygon/component.js +194 -0
  128. package/dist/tools/polygon/index.d.ts +19 -0
  129. package/dist/tools/polygon/index.js +55 -0
  130. package/dist/tools/polygon/line.d.ts +125 -0
  131. package/dist/tools/polygon/polygon.d.ts +122 -0
  132. package/dist/tools/polygon/polygon.js +62 -0
  133. package/dist/tools/shared/arrow-head.d.ts +43 -0
  134. package/dist/tools/shared/arrow-head.js +37 -0
  135. package/dist/tools/shared/line/index.d.ts +240 -0
  136. package/dist/tools/shared/line/index.js +320 -0
  137. package/dist/tools/shared/line/line-path.d.ts +57 -0
  138. package/dist/tools/shared/line/with-root-edge.d.ts +143 -0
  139. package/dist/tools/shared/point/arrow-point.d.ts +57 -0
  140. package/dist/tools/shared/point/arrow-point.js +47 -0
  141. package/dist/tools/shared/point/arrow.d.ts +46 -0
  142. package/dist/tools/shared/point/arrow.js +36 -0
  143. package/dist/tools/shared/point/base-point.d.ts +50 -0
  144. package/dist/tools/shared/point/base-point.js +88 -0
  145. package/dist/tools/shared/point/index.d.ts +217 -0
  146. package/dist/tools/shared/point/index.js +51 -0
  147. package/dist/tools/shared/styles.d.ts +24 -0
  148. package/dist/tools/shared/styles.js +17 -0
  149. package/dist/tools/shared/types.d.ts +15 -0
  150. package/dist/tools/shared/types.js +10 -0
  151. package/dist/undo-redo.d.ts +20 -0
  152. package/dist/undo-redo.js +33 -0
  153. package/dist/use-debounce.d.ts +9 -0
  154. package/dist/use-debounce.js +13 -0
  155. package/dist/utils.d.ts +58 -0
  156. package/dist/utils.js +72 -0
  157. package/package.json +46 -34
  158. package/CHANGELOG.json +0 -1
  159. package/CHANGELOG.md +0 -449
  160. package/LICENSE.md +0 -5
  161. package/lib/axis/arrow.js +0 -79
  162. package/lib/axis/arrow.js.map +0 -1
  163. package/lib/axis/axes.js +0 -327
  164. package/lib/axis/axes.js.map +0 -1
  165. package/lib/axis/index.js +0 -21
  166. package/lib/axis/index.js.map +0 -1
  167. package/lib/bg.js +0 -114
  168. package/lib/bg.js.map +0 -1
  169. package/lib/container/actions.js +0 -18
  170. package/lib/container/actions.js.map +0 -1
  171. package/lib/container/index.js +0 -120
  172. package/lib/container/index.js.map +0 -1
  173. package/lib/container/marks.js +0 -22
  174. package/lib/container/marks.js.map +0 -1
  175. package/lib/container/middleware.js +0 -19
  176. package/lib/container/middleware.js.map +0 -1
  177. package/lib/container/reducer.js +0 -18
  178. package/lib/container/reducer.js.map +0 -1
  179. package/lib/coordinates-label.js +0 -77
  180. package/lib/coordinates-label.js.map +0 -1
  181. package/lib/graph-with-controls.js +0 -297
  182. package/lib/graph-with-controls.js.map +0 -1
  183. package/lib/graph.js +0 -353
  184. package/lib/graph.js.map +0 -1
  185. package/lib/grid-setup.js +0 -414
  186. package/lib/grid-setup.js.map +0 -1
  187. package/lib/grid.js +0 -131
  188. package/lib/grid.js.map +0 -1
  189. package/lib/index.js +0 -40
  190. package/lib/index.js.map +0 -1
  191. package/lib/labels.js +0 -199
  192. package/lib/labels.js.map +0 -1
  193. package/lib/mark-label.js +0 -159
  194. package/lib/mark-label.js.map +0 -1
  195. package/lib/toggle-bar.js +0 -248
  196. package/lib/toggle-bar.js.map +0 -1
  197. package/lib/tool-menu.js +0 -218
  198. package/lib/tool-menu.js.map +0 -1
  199. package/lib/tools/index.js +0 -24
  200. package/lib/tools/index.js.map +0 -1
  201. package/lib/tools/line/component.js +0 -92
  202. package/lib/tools/line/component.js.map +0 -1
  203. package/lib/tools/line/index.js +0 -11
  204. package/lib/tools/line/index.js.map +0 -1
  205. package/lib/tools/polygon/component.js +0 -358
  206. package/lib/tools/polygon/component.js.map +0 -1
  207. package/lib/tools/polygon/index.js +0 -89
  208. package/lib/tools/polygon/index.js.map +0 -1
  209. package/lib/tools/polygon/line.js +0 -114
  210. package/lib/tools/polygon/line.js.map +0 -1
  211. package/lib/tools/polygon/polygon.js +0 -128
  212. package/lib/tools/polygon/polygon.js.map +0 -1
  213. package/lib/tools/shared/arrow-head.js +0 -62
  214. package/lib/tools/shared/arrow-head.js.map +0 -1
  215. package/lib/tools/shared/line/index.js +0 -539
  216. package/lib/tools/shared/line/index.js.map +0 -1
  217. package/lib/tools/shared/line/line-path.js +0 -121
  218. package/lib/tools/shared/line/line-path.js.map +0 -1
  219. package/lib/tools/shared/line/with-root-edge.js +0 -121
  220. package/lib/tools/shared/line/with-root-edge.js.map +0 -1
  221. package/lib/tools/shared/point/arrow-point.js +0 -86
  222. package/lib/tools/shared/point/arrow-point.js.map +0 -1
  223. package/lib/tools/shared/point/arrow.js +0 -70
  224. package/lib/tools/shared/point/arrow.js.map +0 -1
  225. package/lib/tools/shared/point/base-point.js +0 -137
  226. package/lib/tools/shared/point/base-point.js.map +0 -1
  227. package/lib/tools/shared/point/index.js +0 -80
  228. package/lib/tools/shared/point/index.js.map +0 -1
  229. package/lib/tools/shared/styles.js +0 -26
  230. package/lib/tools/shared/styles.js.map +0 -1
  231. package/lib/tools/shared/types.js +0 -15
  232. package/lib/tools/shared/types.js.map +0 -1
  233. package/lib/undo-redo.js +0 -67
  234. package/lib/undo-redo.js.map +0 -1
  235. package/lib/use-debounce.js +0 -25
  236. package/lib/use-debounce.js.map +0 -1
  237. package/lib/utils.js +0 -235
  238. package/lib/utils.js.map +0 -1
  239. package/src/__tests__/bg.test.jsx +0 -250
  240. package/src/__tests__/coordinates-label.test.jsx +0 -243
  241. package/src/__tests__/graph-with-controls.test.jsx +0 -184
  242. package/src/__tests__/graph.test.jsx +0 -93
  243. package/src/__tests__/grid-setup.test.jsx +0 -645
  244. package/src/__tests__/grid.test.jsx +0 -23
  245. package/src/__tests__/labels.test.jsx +0 -41
  246. package/src/__tests__/mark-label.test.jsx +0 -66
  247. package/src/__tests__/toggle-bar.test.jsx +0 -106
  248. package/src/__tests__/tool-menu.test.jsx +0 -453
  249. package/src/__tests__/undo-redo.test.jsx +0 -26
  250. package/src/__tests__/use-debounce.test.js +0 -21
  251. package/src/__tests__/utils.js +0 -41
  252. package/src/__tests__/utils.test.js +0 -105
  253. package/src/axis/__tests__/arrow.test.jsx +0 -43
  254. package/src/axis/__tests__/axes.test.jsx +0 -182
  255. package/src/axis/arrow.jsx +0 -57
  256. package/src/axis/axes.jsx +0 -284
  257. package/src/axis/index.js +0 -3
  258. package/src/bg.jsx +0 -96
  259. package/src/container/__tests__/actions.test.js +0 -105
  260. package/src/container/__tests__/index.test.jsx +0 -227
  261. package/src/container/__tests__/marks.test.js +0 -172
  262. package/src/container/__tests__/middleware.test.js +0 -235
  263. package/src/container/__tests__/reducer.test.js +0 -324
  264. package/src/container/actions.js +0 -8
  265. package/src/container/index.jsx +0 -85
  266. package/src/container/marks.js +0 -14
  267. package/src/container/middleware.js +0 -7
  268. package/src/container/reducer.js +0 -5
  269. package/src/coordinates-label.jsx +0 -62
  270. package/src/graph-with-controls.jsx +0 -242
  271. package/src/graph.jsx +0 -333
  272. package/src/grid-setup.jsx +0 -432
  273. package/src/grid.jsx +0 -133
  274. package/src/index.js +0 -7
  275. package/src/labels.jsx +0 -173
  276. package/src/mark-label.jsx +0 -125
  277. package/src/toggle-bar.jsx +0 -221
  278. package/src/tool-menu.jsx +0 -235
  279. package/src/tools/index.js +0 -8
  280. package/src/tools/line/__tests__/component.test.jsx +0 -37
  281. package/src/tools/line/component.jsx +0 -77
  282. package/src/tools/line/index.js +0 -4
  283. package/src/tools/polygon/__tests__/component.test.jsx +0 -487
  284. package/src/tools/polygon/__tests__/index.test.js +0 -65
  285. package/src/tools/polygon/__tests__/line.test.jsx +0 -23
  286. package/src/tools/polygon/__tests__/polygon.test.jsx +0 -44
  287. package/src/tools/polygon/component.jsx +0 -324
  288. package/src/tools/polygon/index.js +0 -52
  289. package/src/tools/polygon/line.jsx +0 -80
  290. package/src/tools/polygon/polygon.jsx +0 -93
  291. package/src/tools/shared/__tests__/arrow-head.test.jsx +0 -33
  292. package/src/tools/shared/arrow-head.jsx +0 -46
  293. package/src/tools/shared/line/__tests__/index.test.jsx +0 -553
  294. package/src/tools/shared/line/__tests__/line-path.test.jsx +0 -56
  295. package/src/tools/shared/line/__tests__/with-root-edge.test.jsx +0 -488
  296. package/src/tools/shared/line/index.jsx +0 -471
  297. package/src/tools/shared/line/line-path.jsx +0 -85
  298. package/src/tools/shared/line/with-root-edge.jsx +0 -97
  299. package/src/tools/shared/point/__tests__/arrow-point.test.jsx +0 -91
  300. package/src/tools/shared/point/__tests__/arrow.test.jsx +0 -469
  301. package/src/tools/shared/point/__tests__/base-point.test.jsx +0 -87
  302. package/src/tools/shared/point/arrow-point.jsx +0 -60
  303. package/src/tools/shared/point/arrow.jsx +0 -40
  304. package/src/tools/shared/point/base-point.jsx +0 -113
  305. package/src/tools/shared/point/index.jsx +0 -58
  306. package/src/tools/shared/styles.js +0 -20
  307. package/src/tools/shared/types.js +0 -8
  308. package/src/undo-redo.jsx +0 -37
  309. package/src/use-debounce.js +0 -13
  310. package/src/utils.js +0 -230
@@ -1,553 +0,0 @@
1
- import { lineBase, lineTool, lineToolComponent } from '../index';
2
- import { utils } from '@pie-lib/plot';
3
- import { render } from '@pie-lib/test-utils';
4
- import React from 'react';
5
- import { graphProps as getGraphProps } from '../../../../__tests__/utils';
6
-
7
- const { xy } = utils;
8
- const xyLabel = (x, y, label) => ({ x, y, label });
9
-
10
- describe('lineTool', () => {
11
- describe('addPoint', () => {
12
- let toolbar;
13
-
14
- beforeEach(() => {
15
- toolbar = lineTool('lineType', () => <div />)();
16
- });
17
-
18
- it('returns a building mark when no existing mark', () => {
19
- const result = toolbar.addPoint(xy(1, 1));
20
- expect(result).toEqual({
21
- type: 'lineType',
22
- building: true,
23
- from: xy(1, 1),
24
- });
25
- });
26
-
27
- it('returns a complete mark when adding second point', () => {
28
- const result = toolbar.addPoint(xy(1, 1), { from: xy(0, 0) });
29
- expect(result).toEqual({
30
- building: false,
31
- from: xy(0, 0),
32
- to: xy(1, 1),
33
- });
34
- });
35
-
36
- it('returns same mark if point equals existing from point', () => {
37
- const existingMark = { from: xy(1, 1), building: true };
38
- const result = toolbar.addPoint(xy(1, 1), existingMark);
39
- expect(result).toEqual(existingMark);
40
- });
41
-
42
- it('handles adding point with root property', () => {
43
- const existingMark = { root: xy(1, 1), building: true };
44
- const result = toolbar.addPoint(xy(1, 1), existingMark);
45
- expect(result).toEqual(existingMark);
46
- });
47
-
48
- it('creates different types correctly', () => {
49
- const lineA = lineTool('lineA', () => <div />)();
50
- const lineB = lineTool('lineB', () => <div />)();
51
-
52
- const resultA = lineA.addPoint(xy(1, 1));
53
- const resultB = lineB.addPoint(xy(1, 1));
54
-
55
- expect(resultA.type).toBe('lineA');
56
- expect(resultB.type).toBe('lineB');
57
- });
58
-
59
- it('preserves building state correctly', () => {
60
- const building = toolbar.addPoint(xy(1, 1));
61
- expect(building.building).toBe(true);
62
-
63
- const complete = toolbar.addPoint(xy(2, 2), building);
64
- expect(complete.building).toBe(false);
65
- });
66
- });
67
-
68
- describe('Component property', () => {
69
- it('stores the provided Component', () => {
70
- const TestComp = () => <div>Test</div>;
71
- const tool = lineTool('test', TestComp)();
72
- expect(tool.Component).toBe(TestComp);
73
- });
74
-
75
- it('stores the correct type', () => {
76
- const tool = lineTool('customType', () => <div />)();
77
- expect(tool.type).toBe('customType');
78
- });
79
- });
80
- });
81
-
82
- describe('lineToolComponent', () => {
83
- let Comp;
84
- let mark;
85
- let onChange;
86
-
87
- beforeEach(() => {
88
- onChange = jest.fn();
89
- Comp = lineToolComponent(() => <text data-testid="line-component" />);
90
- mark = { from: xy(0, 0), to: xy(1, 1), type: 'line' };
91
- });
92
-
93
- const renderComponent = (extras) => {
94
- const defaults = {
95
- mark,
96
- onChange,
97
- graphProps: getGraphProps(),
98
- };
99
- const props = { ...defaults, ...extras };
100
- return render(<Comp {...props} />);
101
- };
102
-
103
- describe('rendering', () => {
104
- it('renders without crashing', () => {
105
- const { container } = renderComponent();
106
- expect(container.firstChild).toBeInTheDocument();
107
- });
108
-
109
- it('renders with building mark', () => {
110
- const buildingMark = { from: xy(0, 0), building: true, type: 'line' };
111
- const { container } = renderComponent({ mark: buildingMark });
112
- expect(container.firstChild).toBeInTheDocument();
113
- });
114
-
115
- it('renders with background mark', () => {
116
- const bgMark = { from: xy(0, 0), to: xy(1, 1), isBackground: true, type: 'line' };
117
- const { container } = renderComponent({ mark: bgMark });
118
- expect(container.firstChild).toBeInTheDocument();
119
- });
120
-
121
- it('renders with disabled mark', () => {
122
- const disabledMark = { from: xy(0, 0), to: xy(1, 1), disabled: true, type: 'line' };
123
- const { container } = renderComponent({ mark: disabledMark });
124
- expect(container.firstChild).toBeInTheDocument();
125
- });
126
-
127
- it('renders with correctness states', () => {
128
- const correctMark = { from: xy(0, 0), to: xy(1, 1), correctness: 'correct', type: 'line' };
129
- const { container } = renderComponent({ mark: correctMark });
130
- expect(container.firstChild).toBeInTheDocument();
131
- });
132
-
133
- it('renders with middle point', () => {
134
- const markWithMiddle = { from: xy(0, 0), to: xy(1, 1), middle: xy(0.5, 0.5), type: 'line' };
135
- const { container } = renderComponent({ mark: markWithMiddle });
136
- expect(container.firstChild).toBeInTheDocument();
137
- });
138
-
139
- it('renders with fill color', () => {
140
- const coloredMark = { from: xy(0, 0), to: xy(1, 1), fill: '#ff0000', type: 'line' };
141
- const { container } = renderComponent({ mark: coloredMark });
142
- expect(container.firstChild).toBeInTheDocument();
143
- });
144
-
145
- it('renders with gssLineData', () => {
146
- const gssLineData = { selectedTool: 'lineA' };
147
- const { container } = renderComponent({ gssLineData });
148
- expect(container.firstChild).toBeInTheDocument();
149
- });
150
-
151
- it('renders with labelNode', () => {
152
- const labelNode = document.createElement('foreignObject');
153
- const { container } = renderComponent({ labelNode });
154
- expect(container.firstChild).toBeInTheDocument();
155
- });
156
-
157
- it('renders with coordinatesOnHover enabled', () => {
158
- const { container } = renderComponent({ coordinatesOnHover: true });
159
- expect(container.firstChild).toBeInTheDocument();
160
- });
161
-
162
- it('renders with labelModeEnabled', () => {
163
- const { container } = renderComponent({ labelModeEnabled: true });
164
- expect(container.firstChild).toBeInTheDocument();
165
- });
166
- });
167
-
168
- describe('state management', () => {
169
- it('initializes with empty state', () => {
170
- const { container } = renderComponent();
171
- expect(container.firstChild).toBeInTheDocument();
172
- // State should be empty initially
173
- });
174
-
175
- it('handles mark updates through props', () => {
176
- const { rerender, container } = renderComponent();
177
- const updatedMark = { from: xy(1, 1), to: xy(2, 2), type: 'line' };
178
-
179
- rerender(<Comp mark={updatedMark} onChange={onChange} graphProps={getGraphProps()} />);
180
- expect(container.firstChild).toBeInTheDocument();
181
- });
182
- });
183
-
184
- describe('background mark handling', () => {
185
- it('disables from point when mark is background', () => {
186
- const bgMark = {
187
- from: xy(0, 0),
188
- to: xy(1, 1),
189
- isBackground: true,
190
- type: 'line',
191
- };
192
- const { container } = renderComponent({ mark: bgMark });
193
- expect(container.firstChild).toBeInTheDocument();
194
- // from.disabled should be true
195
- });
196
-
197
- it('disables to point when mark is background', () => {
198
- const bgMark = {
199
- from: xy(0, 0),
200
- to: xy(1, 1),
201
- isBackground: true,
202
- type: 'line',
203
- };
204
- const { container } = renderComponent({ mark: bgMark });
205
- expect(container.firstChild).toBeInTheDocument();
206
- // to.disabled should be true
207
- });
208
-
209
- it('disables middle point when mark is background', () => {
210
- const bgMark = {
211
- from: xy(0, 0),
212
- to: xy(1, 1),
213
- middle: xy(0.5, 0.5),
214
- isBackground: true,
215
- type: 'line',
216
- };
217
- const { container } = renderComponent({ mark: bgMark });
218
- expect(container.firstChild).toBeInTheDocument();
219
- // middle.disabled should be true
220
- });
221
- });
222
-
223
- describe('edge cases', () => {
224
- it('handles mark without to point', () => {
225
- const incompleteMark = { from: xy(0, 0), type: 'line' };
226
- const { container } = renderComponent({ mark: incompleteMark });
227
- expect(container.firstChild).toBeInTheDocument();
228
- });
229
-
230
- it('handles mark with only from point', () => {
231
- const singlePointMark = { from: xy(0, 0), building: true, type: 'line' };
232
- const { container } = renderComponent({ mark: singlePointMark });
233
- expect(container.firstChild).toBeInTheDocument();
234
- });
235
-
236
- it('handles different line types', () => {
237
- const parabola = { from: xy(0, 0), to: xy(1, 1), type: 'parabola' };
238
- const sine = { from: xy(0, 0), to: xy(1, 1), type: 'sine' };
239
- const absolute = { from: xy(0, 0), to: xy(1, 1), type: 'absolute' };
240
- const exponential = { from: xy(0, 0), to: xy(1, 1), type: 'exponential' };
241
-
242
- render(<Comp mark={parabola} onChange={onChange} graphProps={getGraphProps()} />);
243
- render(<Comp mark={sine} onChange={onChange} graphProps={getGraphProps()} />);
244
- render(<Comp mark={absolute} onChange={onChange} graphProps={getGraphProps()} />);
245
- render(<Comp mark={exponential} onChange={onChange} graphProps={getGraphProps()} />);
246
- });
247
- });
248
- });
249
-
250
- describe('lineBase', () => {
251
- let Comp;
252
- let onChange;
253
- let changeMarkProps;
254
- let onClick;
255
-
256
- beforeEach(() => {
257
- onChange = jest.fn();
258
- changeMarkProps = jest.fn();
259
- onClick = jest.fn();
260
- Comp = lineBase(() => <text data-testid="line-base" />);
261
- });
262
-
263
- const renderComponent = (extras) => {
264
- const defaults = {
265
- onChange,
266
- changeMarkProps,
267
- onClick,
268
- graphProps: getGraphProps(),
269
- from: xy(0, 0),
270
- to: xy(1, 1),
271
- };
272
- const props = { ...defaults, ...extras };
273
- return render(<Comp {...props} />);
274
- };
275
-
276
- const labelNode = document.createElement('foreignObject');
277
- const renderWithLabels = (extras = {}) =>
278
- renderComponent({
279
- ...extras,
280
- labelNode: labelNode,
281
- from: xyLabel(0, 0, 'A'),
282
- to: xyLabel(1, 1, 'B'),
283
- });
284
-
285
- describe('rendering', () => {
286
- it('renders without crashing', () => {
287
- const { container } = renderComponent();
288
- expect(container.firstChild).toBeInTheDocument();
289
- });
290
-
291
- it('renders with labels', () => {
292
- const { container } = renderWithLabels();
293
- expect(container.firstChild).toBeInTheDocument();
294
- });
295
-
296
- it('renders with middle point label', () => {
297
- const { container } = renderComponent({
298
- labelNode,
299
- middle: xyLabel(0.5, 0.5, 'M'),
300
- });
301
- expect(container.firstChild).toBeInTheDocument();
302
- });
303
-
304
- it('renders with only from label', () => {
305
- const { container } = renderComponent({
306
- labelNode,
307
- from: xyLabel(0, 0, 'Start'),
308
- to: xy(1, 1),
309
- });
310
- expect(container.firstChild).toBeInTheDocument();
311
- });
312
-
313
- it('renders with only to label', () => {
314
- const { container } = renderComponent({
315
- labelNode,
316
- from: xy(0, 0),
317
- to: xyLabel(1, 1, 'End'),
318
- });
319
- expect(container.firstChild).toBeInTheDocument();
320
- });
321
-
322
- it('renders with all three labels', () => {
323
- const { container } = renderComponent({
324
- labelNode,
325
- from: xyLabel(0, 0, 'A'),
326
- to: xyLabel(1, 1, 'B'),
327
- middle: xyLabel(0.5, 0.5, 'M'),
328
- });
329
- expect(container.firstChild).toBeInTheDocument();
330
- });
331
- });
332
-
333
- describe('gssLineData handling', () => {
334
- it('renders normally without gssLineData', () => {
335
- const { container } = renderComponent();
336
- expect(container.firstChild).toBeInTheDocument();
337
- });
338
-
339
- it('renders with gssLineData when solutionSet is selected', () => {
340
- const gssLineData = { selectedTool: 'solutionSet' };
341
- const { container } = renderComponent({ gssLineData });
342
- expect(container.firstChild).toBeInTheDocument();
343
- });
344
-
345
- it('renders with gssLineData when lineA is selected', () => {
346
- const gssLineData = { selectedTool: 'lineA' };
347
- const { container } = renderComponent({ gssLineData });
348
- expect(container.firstChild).toBeInTheDocument();
349
- });
350
-
351
- it('renders with gssLineData when lineB is selected', () => {
352
- const gssLineData = { selectedTool: 'lineB' };
353
- const { container } = renderComponent({ gssLineData });
354
- expect(container.firstChild).toBeInTheDocument();
355
- });
356
- });
357
-
358
- describe('disabled state', () => {
359
- it('renders when disabled', () => {
360
- const { container } = renderComponent({ disabled: true });
361
- expect(container.firstChild).toBeInTheDocument();
362
- });
363
-
364
- it('renders when not disabled', () => {
365
- const { container } = renderComponent({ disabled: false });
366
- expect(container.firstChild).toBeInTheDocument();
367
- });
368
- });
369
-
370
- describe('correctness states', () => {
371
- it('renders with correct state', () => {
372
- const { container } = renderComponent({ correctness: 'correct' });
373
- expect(container.firstChild).toBeInTheDocument();
374
- });
375
-
376
- it('renders with incorrect state', () => {
377
- const { container } = renderComponent({ correctness: 'incorrect' });
378
- expect(container.firstChild).toBeInTheDocument();
379
- });
380
-
381
- it('renders with missing state', () => {
382
- const { container } = renderComponent({ correctness: 'missing' });
383
- expect(container.firstChild).toBeInTheDocument();
384
- });
385
-
386
- it('renders without correctness', () => {
387
- const { container } = renderComponent({ correctness: undefined });
388
- expect(container.firstChild).toBeInTheDocument();
389
- });
390
- });
391
-
392
- describe('fill color', () => {
393
- it('renders with custom fill color', () => {
394
- const { container } = renderComponent({ fill: '#ff0000' });
395
- expect(container.firstChild).toBeInTheDocument();
396
- });
397
-
398
- it('renders without fill color', () => {
399
- const { container } = renderComponent({ fill: undefined });
400
- expect(container.firstChild).toBeInTheDocument();
401
- });
402
- });
403
-
404
- describe('coordinates on hover', () => {
405
- it('renders with coordinatesOnHover enabled', () => {
406
- const { container } = renderComponent({ coordinatesOnHover: true });
407
- expect(container.firstChild).toBeInTheDocument();
408
- });
409
-
410
- it('renders with coordinatesOnHover disabled', () => {
411
- const { container } = renderComponent({ coordinatesOnHover: false });
412
- expect(container.firstChild).toBeInTheDocument();
413
- });
414
- });
415
-
416
- describe('label mode', () => {
417
- it('renders with labelModeEnabled', () => {
418
- const { container } = renderComponent({
419
- labelModeEnabled: true,
420
- labelNode,
421
- });
422
- expect(container.firstChild).toBeInTheDocument();
423
- });
424
-
425
- it('renders without labelModeEnabled', () => {
426
- const { container } = renderComponent({
427
- labelModeEnabled: false,
428
- labelNode,
429
- });
430
- expect(container.firstChild).toBeInTheDocument();
431
- });
432
- });
433
-
434
- describe('drag callbacks', () => {
435
- it('renders with onDragStart callback', () => {
436
- const onDragStart = jest.fn();
437
- const { container } = renderComponent({ onDragStart });
438
- expect(container.firstChild).toBeInTheDocument();
439
- });
440
-
441
- it('renders with onDragStop callback', () => {
442
- const onDragStop = jest.fn();
443
- const { container } = renderComponent({ onDragStop });
444
- expect(container.firstChild).toBeInTheDocument();
445
- });
446
-
447
- it('renders with both drag callbacks', () => {
448
- const onDragStart = jest.fn();
449
- const onDragStop = jest.fn();
450
- const { container } = renderComponent({ onDragStart, onDragStop });
451
- expect(container.firstChild).toBeInTheDocument();
452
- });
453
- });
454
-
455
- describe('edge cases', () => {
456
- it('handles equal from and to points', () => {
457
- const { container } = renderComponent({
458
- from: xy(1, 1),
459
- to: xy(1, 1),
460
- });
461
- expect(container.firstChild).toBeInTheDocument();
462
- });
463
-
464
- it('handles negative coordinates', () => {
465
- const { container } = renderComponent({
466
- from: xy(-5, -5),
467
- to: xy(-1, -1),
468
- });
469
- expect(container.firstChild).toBeInTheDocument();
470
- });
471
-
472
- it('handles large coordinate values', () => {
473
- const { container } = renderComponent({
474
- from: xy(100, 100),
475
- to: xy(200, 200),
476
- });
477
- expect(container.firstChild).toBeInTheDocument();
478
- });
479
-
480
- it('handles decimal coordinates', () => {
481
- const { container } = renderComponent({
482
- from: xy(0.5, 0.5),
483
- to: xy(1.5, 1.5),
484
- });
485
- expect(container.firstChild).toBeInTheDocument();
486
- });
487
-
488
- it('handles vertical lines', () => {
489
- const { container } = renderComponent({
490
- from: xy(1, 0),
491
- to: xy(1, 5),
492
- });
493
- expect(container.firstChild).toBeInTheDocument();
494
- });
495
-
496
- it('handles horizontal lines', () => {
497
- const { container } = renderComponent({
498
- from: xy(0, 1),
499
- to: xy(5, 1),
500
- });
501
- expect(container.firstChild).toBeInTheDocument();
502
- });
503
-
504
- it('handles empty label strings', () => {
505
- const { container } = renderComponent({
506
- labelNode,
507
- from: xyLabel(0, 0, ''),
508
- to: xyLabel(1, 1, ''),
509
- });
510
- expect(container.firstChild).toBeInTheDocument();
511
- });
512
- });
513
-
514
- describe('integration scenarios', () => {
515
- it('renders complete line with all features', () => {
516
- const { container } = renderComponent({
517
- from: xyLabel(0, 0, 'Start'),
518
- to: xyLabel(5, 5, 'End'),
519
- middle: xyLabel(2.5, 2.5, 'Middle'),
520
- labelNode,
521
- coordinatesOnHover: true,
522
- labelModeEnabled: true,
523
- disabled: false,
524
- correctness: 'correct',
525
- fill: '#00ff00',
526
- gssLineData: { selectedTool: 'lineA' },
527
- onDragStart: jest.fn(),
528
- onDragStop: jest.fn(),
529
- });
530
- expect(container.firstChild).toBeInTheDocument();
531
- });
532
-
533
- it('renders disabled background line', () => {
534
- const { container } = renderComponent({
535
- from: xy(0, 0),
536
- to: xy(1, 1),
537
- disabled: true,
538
- correctness: 'incorrect',
539
- });
540
- expect(container.firstChild).toBeInTheDocument();
541
- });
542
-
543
- it('renders solution set mode', () => {
544
- const { container } = renderComponent({
545
- from: xy(0, 0),
546
- to: xy(1, 1),
547
- gssLineData: { selectedTool: 'solutionSet' },
548
- labelNode,
549
- });
550
- expect(container.firstChild).toBeInTheDocument();
551
- });
552
- });
553
- });
@@ -1,56 +0,0 @@
1
- import { render } from '@pie-lib/test-utils';
2
- import React from 'react';
3
- import { graphProps as getGraphProps } from '../../../../__tests__/utils';
4
- import { utils } from '@pie-lib/plot';
5
- import * as lineUtils from '../../../../utils';
6
-
7
- const { xy } = utils;
8
-
9
- const { bounds, pointsToArea } = lineUtils;
10
- jest.mock('../../../../utils', () => {
11
- const a = jest.requireActual('../../../../utils');
12
- return {
13
- pointsToArea: jest.fn().mockReturnValue({}),
14
- bounds: jest.fn().mockReturnValue({}),
15
- point: a.point,
16
- };
17
- });
18
-
19
- jest.mock('@pie-lib/plot', () => {
20
- const a = jest.requireActual('@pie-lib/plot');
21
- return {
22
- gridDraggable: jest.fn((opts) => (Comp) => Comp),
23
- types: a.types,
24
- utils: a.utils,
25
- };
26
- });
27
-
28
- describe('LinePath', () => {
29
- let LinePath;
30
- let onChange = jest.fn();
31
- beforeEach(() => {
32
- LinePath = require('../line-path').LinePath;
33
- });
34
- const renderComponent = (extras) => {
35
- const defaults = {
36
- classes: {},
37
- className: 'className',
38
- onChange,
39
- graphProps: getGraphProps(),
40
- from: xy(0, 0, 0),
41
- to: xy(1, 1, 0),
42
- data: [
43
- [0, 0],
44
- [1, 1],
45
- ],
46
- };
47
- const props = { ...defaults, ...extras };
48
- return render(<LinePath {...props} />);
49
- };
50
- describe('rendering', () => {
51
- it('renders without crashing', () => {
52
- const { container } = renderComponent();
53
- expect(container.firstChild).toBeInTheDocument();
54
- });
55
- });
56
- });