@pie-lib/graphing 4.0.4-next.9 → 4.0.5-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (475) hide show
  1. package/dist/_virtual/_rolldown/runtime.js +23 -0
  2. package/dist/axis/arrow.d.ts +13 -0
  3. package/dist/axis/arrow.js +34 -0
  4. package/dist/axis/axes.d.ts +132 -0
  5. package/dist/axis/axes.js +214 -0
  6. package/dist/axis/index.d.ts +10 -0
  7. package/dist/bg.d.ts +51 -0
  8. package/dist/bg.js +44 -0
  9. package/dist/container/actions.d.ts +15 -0
  10. package/dist/container/actions.js +7 -0
  11. package/dist/container/index.d.ts +26 -0
  12. package/dist/container/index.js +50 -0
  13. package/dist/container/marks.d.ts +10 -0
  14. package/dist/container/marks.js +11 -0
  15. package/dist/container/middleware.d.ts +10 -0
  16. package/dist/container/middleware.js +4 -0
  17. package/dist/container/reducer.d.ts +12 -0
  18. package/dist/container/reducer.js +7 -0
  19. package/dist/coordinates-label.d.ts +50 -0
  20. package/dist/coordinates-label.js +46 -0
  21. package/dist/graph-with-controls.d.ts +88 -0
  22. package/dist/graph-with-controls.js +154 -0
  23. package/dist/graph.d.ts +126 -0
  24. package/dist/graph.js +209 -0
  25. package/dist/grid-setup.d.ts +27 -0
  26. package/dist/grid-setup.js +307 -0
  27. package/dist/grid.d.ts +43 -0
  28. package/dist/grid.js +59 -0
  29. package/dist/index.d.ts +15 -0
  30. package/dist/index.js +7 -0
  31. package/dist/key-legend.d.ts +21 -0
  32. package/dist/key-legend.js +231 -0
  33. package/dist/label-svg-icon.d.ts +18 -0
  34. package/dist/label-svg-icon.js +42 -0
  35. package/dist/labels.d.ts +37 -0
  36. package/dist/labels.js +152 -0
  37. package/dist/mark-label.d.ts +58 -0
  38. package/dist/mark-label.js +172 -0
  39. package/dist/node_modules/.bun/@babel_runtime@7.29.7/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js +7 -0
  40. package/dist/node_modules/.bun/@babel_runtime@7.29.7/node_modules/@babel/runtime/helpers/esm/defineProperty.js +12 -0
  41. package/dist/node_modules/.bun/@babel_runtime@7.29.7/node_modules/@babel/runtime/helpers/esm/extends.js +12 -0
  42. package/dist/node_modules/.bun/@babel_runtime@7.29.7/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js +7 -0
  43. package/dist/node_modules/.bun/@babel_runtime@7.29.7/node_modules/@babel/runtime/helpers/esm/objectSpread2.js +25 -0
  44. package/dist/node_modules/.bun/@babel_runtime@7.29.7/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js +12 -0
  45. package/dist/node_modules/.bun/@babel_runtime@7.29.7/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js +8 -0
  46. package/dist/node_modules/.bun/@babel_runtime@7.29.7/node_modules/@babel/runtime/helpers/esm/toPrimitive.js +14 -0
  47. package/dist/node_modules/.bun/@babel_runtime@7.29.7/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js +9 -0
  48. package/dist/node_modules/.bun/@babel_runtime@7.29.7/node_modules/@babel/runtime/helpers/esm/typeof.js +11 -0
  49. package/dist/node_modules/.bun/@visx_axis@3.12.0_f4eacebf2041cd4f/node_modules/@visx/axis/esm/axis/Axis.js +100 -0
  50. package/dist/node_modules/.bun/@visx_axis@3.12.0_f4eacebf2041cd4f/node_modules/@visx/axis/esm/axis/AxisRenderer.js +61 -0
  51. package/dist/node_modules/.bun/@visx_axis@3.12.0_f4eacebf2041cd4f/node_modules/@visx/axis/esm/axis/Ticks.js +42 -0
  52. package/dist/node_modules/.bun/@visx_axis@3.12.0_f4eacebf2041cd4f/node_modules/@visx/axis/esm/constants/orientation.js +9 -0
  53. package/dist/node_modules/.bun/@visx_axis@3.12.0_f4eacebf2041cd4f/node_modules/@visx/axis/esm/utils/createPoint.js +14 -0
  54. package/dist/node_modules/.bun/@visx_axis@3.12.0_f4eacebf2041cd4f/node_modules/@visx/axis/esm/utils/getAxisRangePaddingConfig.js +21 -0
  55. package/dist/node_modules/.bun/@visx_axis@3.12.0_f4eacebf2041cd4f/node_modules/@visx/axis/esm/utils/getLabelTransform.js +16 -0
  56. package/dist/node_modules/.bun/@visx_axis@3.12.0_f4eacebf2041cd4f/node_modules/@visx/axis/esm/utils/getTickFormatter.js +8 -0
  57. package/dist/node_modules/.bun/@visx_axis@3.12.0_f4eacebf2041cd4f/node_modules/@visx/axis/esm/utils/getTickPosition.js +15 -0
  58. package/dist/node_modules/.bun/@visx_curve@3.12.0/node_modules/@visx/curve/esm/index.js +2 -0
  59. package/dist/node_modules/.bun/@visx_grid@3.12.0_f4eacebf2041cd4f/node_modules/@visx/grid/esm/grids/Grid.js +78 -0
  60. package/dist/node_modules/.bun/@visx_grid@3.12.0_f4eacebf2041cd4f/node_modules/@visx/grid/esm/grids/GridColumns.js +79 -0
  61. package/dist/node_modules/.bun/@visx_grid@3.12.0_f4eacebf2041cd4f/node_modules/@visx/grid/esm/grids/GridRows.js +79 -0
  62. package/dist/node_modules/.bun/@visx_grid@3.12.0_f4eacebf2041cd4f/node_modules/@visx/grid/esm/utils/getScaleBandwidth.js +6 -0
  63. package/dist/node_modules/.bun/@visx_group@3.12.0_f4eacebf2041cd4f/node_modules/@visx/group/esm/Group.js +49 -0
  64. package/dist/node_modules/.bun/@visx_point@3.12.0/node_modules/@visx/point/esm/Point.js +18 -0
  65. package/dist/node_modules/.bun/@visx_scale@3.12.0/node_modules/@visx/scale/esm/utils/coerceNumber.js +10 -0
  66. package/dist/node_modules/.bun/@visx_scale@3.12.0/node_modules/@visx/scale/esm/utils/getTicks.js +9 -0
  67. package/dist/node_modules/.bun/@visx_scale@3.12.0/node_modules/@visx/scale/esm/utils/toString.js +6 -0
  68. package/dist/node_modules/.bun/@visx_shape@3.12.0_f4eacebf2041cd4f/node_modules/@visx/shape/esm/shapes/Line.js +46 -0
  69. package/dist/node_modules/.bun/@visx_shape@3.12.0_f4eacebf2041cd4f/node_modules/@visx/shape/esm/shapes/LinePath.js +49 -0
  70. package/dist/node_modules/.bun/@visx_shape@3.12.0_f4eacebf2041cd4f/node_modules/@visx/shape/esm/util/D3ShapeFactories.js +9 -0
  71. package/dist/node_modules/.bun/@visx_shape@3.12.0_f4eacebf2041cd4f/node_modules/@visx/shape/esm/util/setNumberOrNumberAccessor.js +6 -0
  72. package/dist/node_modules/.bun/@visx_shape@3.12.0_f4eacebf2041cd4f/node_modules/@visx/shape/lib/shapes/Line.js +52 -0
  73. package/dist/node_modules/.bun/@visx_text@3.12.0_f4eacebf2041cd4f/node_modules/@visx/text/esm/Text.js +57 -0
  74. package/dist/node_modules/.bun/@visx_text@3.12.0_f4eacebf2041cd4f/node_modules/@visx/text/esm/hooks/useText.js +91 -0
  75. package/dist/node_modules/.bun/@visx_text@3.12.0_f4eacebf2041cd4f/node_modules/@visx/text/esm/util/getStringWidth.js +21 -0
  76. package/dist/node_modules/.bun/balanced-match@0.4.2/node_modules/balanced-match/index.js +32 -0
  77. package/dist/node_modules/.bun/balanced-match@1.0.2/node_modules/balanced-match/index.js +33 -0
  78. package/dist/node_modules/.bun/hoist-non-react-statics@3.3.2/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js +68 -0
  79. package/dist/node_modules/.bun/invariant@2.2.4/node_modules/invariant/browser.js +28 -0
  80. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_Hash.js +21 -0
  81. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_ListCache.js +21 -0
  82. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_Map.js +10 -0
  83. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_MapCache.js +21 -0
  84. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_Symbol.js +9 -0
  85. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_assocIndexOf.js +14 -0
  86. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseGetTag.js +15 -0
  87. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseIsNative.js +16 -0
  88. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_coreJsData.js +9 -0
  89. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_freeGlobal.js +8 -0
  90. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_getMapData.js +14 -0
  91. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_getNative.js +15 -0
  92. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_getRawTag.js +19 -0
  93. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_getValue.js +11 -0
  94. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_hashClear.js +13 -0
  95. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_hashDelete.js +12 -0
  96. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_hashGet.js +18 -0
  97. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_hashHas.js +14 -0
  98. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_hashSet.js +14 -0
  99. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_isKeyable.js +12 -0
  100. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_isMasked.js +16 -0
  101. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_listCacheClear.js +11 -0
  102. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_listCacheDelete.js +14 -0
  103. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_listCacheGet.js +14 -0
  104. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_listCacheHas.js +13 -0
  105. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_listCacheSet.js +14 -0
  106. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_mapCacheClear.js +19 -0
  107. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_mapCacheDelete.js +14 -0
  108. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_mapCacheGet.js +13 -0
  109. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_mapCacheHas.js +13 -0
  110. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_mapCacheSet.js +14 -0
  111. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_nativeCreate.js +9 -0
  112. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_objectToString.js +12 -0
  113. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_root.js +10 -0
  114. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_toSource.js +20 -0
  115. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/eq.js +11 -0
  116. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/isFunction.js +16 -0
  117. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/isObject.js +12 -0
  118. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/memoize.js +20 -0
  119. package/dist/node_modules/.bun/math-expression-evaluator@1.4.0/node_modules/math-expression-evaluator/src/formula_evaluator.js +37 -0
  120. package/dist/node_modules/.bun/math-expression-evaluator@1.4.0/node_modules/math-expression-evaluator/src/lexer.js +509 -0
  121. package/dist/node_modules/.bun/math-expression-evaluator@1.4.0/node_modules/math-expression-evaluator/src/math_function.js +108 -0
  122. package/dist/node_modules/.bun/math-expression-evaluator@1.4.0/node_modules/math-expression-evaluator/src/postfix.js +31 -0
  123. package/dist/node_modules/.bun/math-expression-evaluator@1.4.0/node_modules/math-expression-evaluator/src/postfix_evaluator.js +45 -0
  124. package/dist/node_modules/.bun/react-input-autosize@2.2.2_f4eacebf2041cd4f/node_modules/react-input-autosize/lib/AutosizeInput.js +216 -0
  125. package/dist/node_modules/.bun/react-is@16.13.1/node_modules/react-is/cjs/react-is.development.js +82 -0
  126. package/dist/node_modules/.bun/react-is@16.13.1/node_modules/react-is/cjs/react-is.production.min.js +62 -0
  127. package/dist/node_modules/.bun/react-is@16.13.1/node_modules/react-is/index.js +10 -0
  128. package/dist/node_modules/.bun/react-redux@6.0.1_926323a638b43722/node_modules/react-redux/es/components/Context.js +5 -0
  129. package/dist/node_modules/.bun/react-redux@6.0.1_926323a638b43722/node_modules/react-redux/es/components/Provider.js +47 -0
  130. package/dist/node_modules/.bun/react-redux@6.0.1_926323a638b43722/node_modules/react-redux/es/components/connectAdvanced.js +95 -0
  131. package/dist/node_modules/.bun/react-redux@6.0.1_926323a638b43722/node_modules/react-redux/es/connect/connect.js +52 -0
  132. package/dist/node_modules/.bun/react-redux@6.0.1_926323a638b43722/node_modules/react-redux/es/connect/mapDispatchToProps.js +23 -0
  133. package/dist/node_modules/.bun/react-redux@6.0.1_926323a638b43722/node_modules/react-redux/es/connect/mapStateToProps.js +13 -0
  134. package/dist/node_modules/.bun/react-redux@6.0.1_926323a638b43722/node_modules/react-redux/es/connect/mergeProps.js +26 -0
  135. package/dist/node_modules/.bun/react-redux@6.0.1_926323a638b43722/node_modules/react-redux/es/connect/selectorFactory.js +41 -0
  136. package/dist/node_modules/.bun/react-redux@6.0.1_926323a638b43722/node_modules/react-redux/es/connect/verifySubselectors.js +11 -0
  137. package/dist/node_modules/.bun/react-redux@6.0.1_926323a638b43722/node_modules/react-redux/es/connect/wrapMapToProps.js +28 -0
  138. package/dist/node_modules/.bun/react-redux@6.0.1_926323a638b43722/node_modules/react-redux/es/index.js +4 -0
  139. package/dist/node_modules/.bun/react-redux@6.0.1_926323a638b43722/node_modules/react-redux/es/utils/isPlainObject.js +10 -0
  140. package/dist/node_modules/.bun/react-redux@6.0.1_926323a638b43722/node_modules/react-redux/es/utils/shallowEqual.js +15 -0
  141. package/dist/node_modules/.bun/react-redux@6.0.1_926323a638b43722/node_modules/react-redux/es/utils/verifyPlainObject.js +8 -0
  142. package/dist/node_modules/.bun/react-redux@6.0.1_926323a638b43722/node_modules/react-redux/es/utils/warning.js +9 -0
  143. package/dist/node_modules/.bun/reduce-css-calc@1.3.0/node_modules/reduce-css-calc/index.js +49 -0
  144. package/dist/node_modules/.bun/reduce-function-call@1.0.3/node_modules/reduce-function-call/index.js +34 -0
  145. package/dist/node_modules/.bun/redux-undo@1.1.0/node_modules/redux-undo/dist/redux-undo.js +185 -0
  146. package/dist/node_modules/.bun/redux@4.2.1/node_modules/redux/es/redux.js +225 -0
  147. package/dist/toggle-bar.d.ts +40 -0
  148. package/dist/toggle-bar.js +155 -0
  149. package/dist/tool-menu.d.ts +29 -0
  150. package/dist/tool-menu.js +41 -0
  151. package/dist/tools/absolute/component.d.ts +16 -0
  152. package/dist/tools/absolute/component.js +15 -0
  153. package/dist/tools/absolute/index.d.ts +20 -0
  154. package/dist/tools/absolute/index.js +32 -0
  155. package/dist/tools/circle/bg-circle.d.ts +116 -0
  156. package/dist/tools/circle/bg-circle.js +72 -0
  157. package/dist/tools/circle/component.d.ts +83 -0
  158. package/dist/tools/circle/component.js +195 -0
  159. package/dist/tools/circle/index.d.ts +20 -0
  160. package/dist/tools/circle/index.js +22 -0
  161. package/dist/tools/exponential/component.d.ts +16 -0
  162. package/dist/tools/exponential/component.js +14 -0
  163. package/dist/tools/exponential/index.d.ts +20 -0
  164. package/dist/tools/exponential/index.js +32 -0
  165. package/dist/tools/index.d.ts +27 -0
  166. package/dist/tools/index.js +55 -0
  167. package/dist/tools/line/component.d.ts +124 -0
  168. package/dist/tools/line/component.js +72 -0
  169. package/dist/tools/line/index.d.ts +13 -0
  170. package/dist/tools/line/index.js +6 -0
  171. package/dist/tools/parabola/component.d.ts +16 -0
  172. package/dist/tools/parabola/component.js +14 -0
  173. package/dist/tools/parabola/index.d.ts +20 -0
  174. package/dist/tools/parabola/index.js +32 -0
  175. package/dist/tools/point/component.d.ts +50 -0
  176. package/dist/tools/point/component.js +85 -0
  177. package/dist/tools/point/index.d.ts +15 -0
  178. package/dist/tools/point/index.js +13 -0
  179. package/dist/tools/polygon/component.d.ts +117 -0
  180. package/dist/tools/polygon/component.js +262 -0
  181. package/dist/tools/polygon/index.d.ts +19 -0
  182. package/dist/tools/polygon/index.js +55 -0
  183. package/dist/tools/polygon/line.d.ts +125 -0
  184. package/dist/tools/polygon/line.js +63 -0
  185. package/dist/tools/polygon/polygon.d.ts +122 -0
  186. package/dist/tools/polygon/polygon.js +74 -0
  187. package/dist/tools/ray/component.d.ts +101 -0
  188. package/dist/tools/ray/component.js +71 -0
  189. package/dist/tools/ray/index.d.ts +13 -0
  190. package/dist/tools/ray/index.js +6 -0
  191. package/dist/tools/segment/component.d.ts +100 -0
  192. package/dist/tools/segment/component.js +52 -0
  193. package/dist/tools/segment/index.d.ts +13 -0
  194. package/dist/tools/segment/index.js +6 -0
  195. package/dist/tools/shared/arrow-head.d.ts +51 -0
  196. package/dist/tools/shared/arrow-head.js +63 -0
  197. package/dist/tools/shared/icons/CorrectSVG.d.ts +26 -0
  198. package/dist/tools/shared/icons/CorrectSVG.js +29 -0
  199. package/dist/tools/shared/icons/IncorrectSVG.d.ts +26 -0
  200. package/dist/tools/shared/icons/IncorrectSVG.js +27 -0
  201. package/dist/tools/shared/icons/MissingSVG.d.ts +26 -0
  202. package/dist/tools/shared/icons/MissingSVG.js +28 -0
  203. package/dist/tools/shared/line/index.d.ts +245 -0
  204. package/dist/tools/shared/line/index.js +319 -0
  205. package/dist/tools/shared/line/line-path.d.ts +57 -0
  206. package/dist/tools/shared/line/line-path.js +71 -0
  207. package/dist/tools/shared/line/with-root-edge.d.ts +142 -0
  208. package/dist/tools/shared/line/with-root-edge.js +73 -0
  209. package/dist/tools/shared/point/arrow-point.d.ts +56 -0
  210. package/dist/tools/shared/point/arrow-point.js +41 -0
  211. package/dist/tools/shared/point/arrow.d.ts +45 -0
  212. package/dist/tools/shared/point/arrow.js +35 -0
  213. package/dist/tools/shared/point/base-point.d.ts +52 -0
  214. package/dist/tools/shared/point/base-point.js +103 -0
  215. package/dist/tools/shared/point/index.d.ts +216 -0
  216. package/dist/tools/shared/point/index.js +45 -0
  217. package/dist/tools/shared/styles.d.ts +29 -0
  218. package/dist/tools/shared/styles.js +20 -0
  219. package/dist/tools/shared/types.d.ts +21 -0
  220. package/dist/tools/shared/types.js +11 -0
  221. package/dist/tools/sine/component.d.ts +16 -0
  222. package/dist/tools/sine/component.js +22 -0
  223. package/dist/tools/sine/index.d.ts +20 -0
  224. package/dist/tools/sine/index.js +32 -0
  225. package/dist/tools/vector/component.d.ts +100 -0
  226. package/dist/tools/vector/component.js +44 -0
  227. package/dist/tools/vector/index.d.ts +13 -0
  228. package/dist/tools/vector/index.js +6 -0
  229. package/dist/undo-redo.d.ts +22 -0
  230. package/dist/undo-redo.js +47 -0
  231. package/dist/use-debounce.d.ts +9 -0
  232. package/dist/use-debounce.js +13 -0
  233. package/dist/utils.d.ts +61 -0
  234. package/dist/utils.js +75 -0
  235. package/package.json +35 -25
  236. package/CHANGELOG.json +0 -1
  237. package/CHANGELOG.md +0 -1461
  238. package/LICENSE.md +0 -5
  239. package/lib/axis/arrow.js +0 -79
  240. package/lib/axis/arrow.js.map +0 -1
  241. package/lib/axis/axes.js +0 -329
  242. package/lib/axis/axes.js.map +0 -1
  243. package/lib/axis/index.js +0 -21
  244. package/lib/axis/index.js.map +0 -1
  245. package/lib/bg.js +0 -114
  246. package/lib/bg.js.map +0 -1
  247. package/lib/container/actions.js +0 -18
  248. package/lib/container/actions.js.map +0 -1
  249. package/lib/container/index.js +0 -118
  250. package/lib/container/index.js.map +0 -1
  251. package/lib/container/marks.js +0 -22
  252. package/lib/container/marks.js.map +0 -1
  253. package/lib/container/middleware.js +0 -19
  254. package/lib/container/middleware.js.map +0 -1
  255. package/lib/container/reducer.js +0 -18
  256. package/lib/container/reducer.js.map +0 -1
  257. package/lib/coordinates-label.js +0 -79
  258. package/lib/coordinates-label.js.map +0 -1
  259. package/lib/graph-with-controls.js +0 -294
  260. package/lib/graph-with-controls.js.map +0 -1
  261. package/lib/graph.js +0 -327
  262. package/lib/graph.js.map +0 -1
  263. package/lib/grid-setup.js +0 -414
  264. package/lib/grid-setup.js.map +0 -1
  265. package/lib/grid.js +0 -131
  266. package/lib/grid.js.map +0 -1
  267. package/lib/index.js +0 -47
  268. package/lib/index.js.map +0 -1
  269. package/lib/key-legend.js +0 -201
  270. package/lib/key-legend.js.map +0 -1
  271. package/lib/label-svg-icon.js +0 -50
  272. package/lib/label-svg-icon.js.map +0 -1
  273. package/lib/labels.js +0 -243
  274. package/lib/labels.js.map +0 -1
  275. package/lib/mark-label.js +0 -285
  276. package/lib/mark-label.js.map +0 -1
  277. package/lib/toggle-bar.js +0 -252
  278. package/lib/toggle-bar.js.map +0 -1
  279. package/lib/tool-menu.js +0 -78
  280. package/lib/tool-menu.js.map +0 -1
  281. package/lib/tools/absolute/component.js +0 -29
  282. package/lib/tools/absolute/component.js.map +0 -1
  283. package/lib/tools/absolute/index.js +0 -50
  284. package/lib/tools/absolute/index.js.map +0 -1
  285. package/lib/tools/circle/bg-circle.js +0 -123
  286. package/lib/tools/circle/bg-circle.js.map +0 -1
  287. package/lib/tools/circle/component.js +0 -321
  288. package/lib/tools/circle/component.js.map +0 -1
  289. package/lib/tools/circle/index.js +0 -41
  290. package/lib/tools/circle/index.js.map +0 -1
  291. package/lib/tools/exponential/component.js +0 -28
  292. package/lib/tools/exponential/component.js.map +0 -1
  293. package/lib/tools/exponential/index.js +0 -56
  294. package/lib/tools/exponential/index.js.map +0 -1
  295. package/lib/tools/index.js +0 -86
  296. package/lib/tools/index.js.map +0 -1
  297. package/lib/tools/line/component.js +0 -97
  298. package/lib/tools/line/component.js.map +0 -1
  299. package/lib/tools/line/index.js +0 -11
  300. package/lib/tools/line/index.js.map +0 -1
  301. package/lib/tools/parabola/component.js +0 -28
  302. package/lib/tools/parabola/component.js.map +0 -1
  303. package/lib/tools/parabola/index.js +0 -50
  304. package/lib/tools/parabola/index.js.map +0 -1
  305. package/lib/tools/point/component.js +0 -148
  306. package/lib/tools/point/component.js.map +0 -1
  307. package/lib/tools/point/index.js +0 -24
  308. package/lib/tools/point/index.js.map +0 -1
  309. package/lib/tools/polygon/component.js +0 -437
  310. package/lib/tools/polygon/component.js.map +0 -1
  311. package/lib/tools/polygon/index.js +0 -89
  312. package/lib/tools/polygon/index.js.map +0 -1
  313. package/lib/tools/polygon/line.js +0 -115
  314. package/lib/tools/polygon/line.js.map +0 -1
  315. package/lib/tools/polygon/polygon.js +0 -130
  316. package/lib/tools/polygon/polygon.js.map +0 -1
  317. package/lib/tools/ray/component.js +0 -95
  318. package/lib/tools/ray/component.js.map +0 -1
  319. package/lib/tools/ray/index.js +0 -11
  320. package/lib/tools/ray/index.js.map +0 -1
  321. package/lib/tools/segment/component.js +0 -70
  322. package/lib/tools/segment/component.js.map +0 -1
  323. package/lib/tools/segment/index.js +0 -11
  324. package/lib/tools/segment/index.js.map +0 -1
  325. package/lib/tools/shared/arrow-head.js +0 -111
  326. package/lib/tools/shared/arrow-head.js.map +0 -1
  327. package/lib/tools/shared/icons/CorrectSVG.js +0 -40
  328. package/lib/tools/shared/icons/CorrectSVG.js.map +0 -1
  329. package/lib/tools/shared/icons/IncorrectSVG.js +0 -40
  330. package/lib/tools/shared/icons/IncorrectSVG.js.map +0 -1
  331. package/lib/tools/shared/icons/MissingSVG.js +0 -39
  332. package/lib/tools/shared/icons/MissingSVG.js.map +0 -1
  333. package/lib/tools/shared/line/index.js +0 -550
  334. package/lib/tools/shared/line/index.js.map +0 -1
  335. package/lib/tools/shared/line/line-path.js +0 -121
  336. package/lib/tools/shared/line/line-path.js.map +0 -1
  337. package/lib/tools/shared/line/with-root-edge.js +0 -121
  338. package/lib/tools/shared/line/with-root-edge.js.map +0 -1
  339. package/lib/tools/shared/point/arrow-point.js +0 -72
  340. package/lib/tools/shared/point/arrow-point.js.map +0 -1
  341. package/lib/tools/shared/point/arrow.js +0 -67
  342. package/lib/tools/shared/point/arrow.js.map +0 -1
  343. package/lib/tools/shared/point/base-point.js +0 -157
  344. package/lib/tools/shared/point/base-point.js.map +0 -1
  345. package/lib/tools/shared/point/index.js +0 -68
  346. package/lib/tools/shared/point/index.js.map +0 -1
  347. package/lib/tools/shared/styles.js +0 -33
  348. package/lib/tools/shared/styles.js.map +0 -1
  349. package/lib/tools/shared/types.js +0 -16
  350. package/lib/tools/shared/types.js.map +0 -1
  351. package/lib/tools/sine/component.js +0 -40
  352. package/lib/tools/sine/component.js.map +0 -1
  353. package/lib/tools/sine/index.js +0 -50
  354. package/lib/tools/sine/index.js.map +0 -1
  355. package/lib/tools/vector/component.js +0 -68
  356. package/lib/tools/vector/component.js.map +0 -1
  357. package/lib/tools/vector/index.js +0 -11
  358. package/lib/tools/vector/index.js.map +0 -1
  359. package/lib/undo-redo.js +0 -86
  360. package/lib/undo-redo.js.map +0 -1
  361. package/lib/use-debounce.js +0 -25
  362. package/lib/use-debounce.js.map +0 -1
  363. package/lib/utils.js +0 -229
  364. package/lib/utils.js.map +0 -1
  365. package/src/__tests__/bg.test.jsx +0 -250
  366. package/src/__tests__/coordinates-label.test.jsx +0 -243
  367. package/src/__tests__/graph-with-controls.test.jsx +0 -198
  368. package/src/__tests__/graph.test.jsx +0 -721
  369. package/src/__tests__/grid-setup.test.jsx +0 -645
  370. package/src/__tests__/grid.test.jsx +0 -22
  371. package/src/__tests__/key-legend.test.jsx +0 -260
  372. package/src/__tests__/label-svg-icon.test.jsx +0 -278
  373. package/src/__tests__/labels.test.jsx +0 -55
  374. package/src/__tests__/mark-label.test.jsx +0 -63
  375. package/src/__tests__/toggle-bar.test.jsx +0 -146
  376. package/src/__tests__/tool-menu.test.jsx +0 -115
  377. package/src/__tests__/undo-redo.test.jsx +0 -24
  378. package/src/__tests__/use-debounce.test.js +0 -21
  379. package/src/__tests__/utils.js +0 -41
  380. package/src/__tests__/utils.test.js +0 -105
  381. package/src/axis/__tests__/arrow.test.jsx +0 -38
  382. package/src/axis/__tests__/axes.test.jsx +0 -216
  383. package/src/axis/arrow.jsx +0 -57
  384. package/src/axis/axes.jsx +0 -285
  385. package/src/axis/index.js +0 -3
  386. package/src/bg.jsx +0 -96
  387. package/src/container/__tests__/actions.test.js +0 -105
  388. package/src/container/__tests__/index.test.jsx +0 -319
  389. package/src/container/__tests__/marks.test.js +0 -172
  390. package/src/container/__tests__/middleware.test.js +0 -235
  391. package/src/container/__tests__/reducer.test.js +0 -324
  392. package/src/container/actions.js +0 -8
  393. package/src/container/index.jsx +0 -83
  394. package/src/container/marks.js +0 -14
  395. package/src/container/middleware.js +0 -7
  396. package/src/container/reducer.js +0 -5
  397. package/src/coordinates-label.jsx +0 -63
  398. package/src/graph-with-controls.jsx +0 -239
  399. package/src/graph.jsx +0 -303
  400. package/src/grid-setup.jsx +0 -432
  401. package/src/grid.jsx +0 -133
  402. package/src/index.js +0 -7
  403. package/src/key-legend.jsx +0 -142
  404. package/src/label-svg-icon.jsx +0 -39
  405. package/src/labels.jsx +0 -207
  406. package/src/mark-label.jsx +0 -244
  407. package/src/toggle-bar.jsx +0 -224
  408. package/src/tool-menu.jsx +0 -49
  409. package/src/tools/absolute/__tests__/component.test.jsx +0 -53
  410. package/src/tools/absolute/component.jsx +0 -23
  411. package/src/tools/absolute/index.js +0 -31
  412. package/src/tools/circle/__tests__/bg-circle.test.jsx +0 -26
  413. package/src/tools/circle/__tests__/component.test.jsx +0 -494
  414. package/src/tools/circle/__tests__/index.test.js +0 -480
  415. package/src/tools/circle/bg-circle.jsx +0 -81
  416. package/src/tools/circle/component.jsx +0 -264
  417. package/src/tools/circle/index.js +0 -25
  418. package/src/tools/exponential/__tests__/component.test.jsx +0 -53
  419. package/src/tools/exponential/__tests__/index.test.js +0 -729
  420. package/src/tools/exponential/component.jsx +0 -23
  421. package/src/tools/exponential/index.js +0 -39
  422. package/src/tools/index.js +0 -48
  423. package/src/tools/line/__tests__/component.test.jsx +0 -37
  424. package/src/tools/line/component.jsx +0 -93
  425. package/src/tools/line/index.js +0 -4
  426. package/src/tools/parabola/__tests__/component.test.jsx +0 -48
  427. package/src/tools/parabola/__tests__/index.test.js +0 -470
  428. package/src/tools/parabola/component.jsx +0 -23
  429. package/src/tools/parabola/index.js +0 -31
  430. package/src/tools/point/__tests__/component.test.jsx +0 -349
  431. package/src/tools/point/__tests__/index.test.js +0 -241
  432. package/src/tools/point/component.jsx +0 -126
  433. package/src/tools/point/index.js +0 -11
  434. package/src/tools/polygon/__tests__/component.test.jsx +0 -471
  435. package/src/tools/polygon/__tests__/index.test.js +0 -294
  436. package/src/tools/polygon/__tests__/line.test.jsx +0 -35
  437. package/src/tools/polygon/__tests__/polygon.test.jsx +0 -61
  438. package/src/tools/polygon/component.jsx +0 -409
  439. package/src/tools/polygon/index.js +0 -52
  440. package/src/tools/polygon/line.jsx +0 -84
  441. package/src/tools/polygon/polygon.jsx +0 -110
  442. package/src/tools/ray/__tests__/component.test.jsx +0 -29
  443. package/src/tools/ray/component.jsx +0 -92
  444. package/src/tools/ray/index.js +0 -4
  445. package/src/tools/segment/__tests__/component.test.jsx +0 -28
  446. package/src/tools/segment/component.jsx +0 -53
  447. package/src/tools/segment/index.js +0 -4
  448. package/src/tools/shared/__tests__/arrow-head.test.jsx +0 -31
  449. package/src/tools/shared/arrow-head.jsx +0 -102
  450. package/src/tools/shared/icons/CorrectSVG.jsx +0 -32
  451. package/src/tools/shared/icons/IncorrectSVG.jsx +0 -30
  452. package/src/tools/shared/icons/MissingSVG.jsx +0 -31
  453. package/src/tools/shared/line/__tests__/index.test.jsx +0 -109
  454. package/src/tools/shared/line/__tests__/line-path.test.jsx +0 -53
  455. package/src/tools/shared/line/__tests__/with-root-edge.test.jsx +0 -73
  456. package/src/tools/shared/line/index.jsx +0 -487
  457. package/src/tools/shared/line/line-path.jsx +0 -90
  458. package/src/tools/shared/line/with-root-edge.jsx +0 -97
  459. package/src/tools/shared/point/__tests__/arrow-point.test.jsx +0 -91
  460. package/src/tools/shared/point/__tests__/base-point.test.jsx +0 -87
  461. package/src/tools/shared/point/arrow-point.jsx +0 -46
  462. package/src/tools/shared/point/arrow.jsx +0 -37
  463. package/src/tools/shared/point/base-point.jsx +0 -121
  464. package/src/tools/shared/point/index.jsx +0 -54
  465. package/src/tools/shared/styles.js +0 -27
  466. package/src/tools/shared/types.js +0 -10
  467. package/src/tools/sine/__tests__/component.test.jsx +0 -51
  468. package/src/tools/sine/component.jsx +0 -32
  469. package/src/tools/sine/index.js +0 -33
  470. package/src/tools/vector/__tests__/component.test.jsx +0 -25
  471. package/src/tools/vector/component.jsx +0 -56
  472. package/src/tools/vector/index.js +0 -4
  473. package/src/undo-redo.jsx +0 -45
  474. package/src/use-debounce.js +0 -13
  475. package/src/utils.js +0 -224
@@ -1,645 +0,0 @@
1
- import React from 'react';
2
- import { fireEvent, render, waitFor } from '@pie-lib/test-utils';
3
- import GridSetup from '../grid-setup';
4
-
5
- const mockOnChange = jest.fn();
6
- const mockOnChangeView = jest.fn();
7
-
8
- const defaultProps = {
9
- domain: {
10
- min: -5,
11
- max: 5,
12
- step: 1,
13
- labelStep: 1,
14
- axisLabel: 'x',
15
- },
16
- range: {
17
- min: -5,
18
- max: 5,
19
- step: 1,
20
- labelStep: 1,
21
- axisLabel: 'y',
22
- },
23
- size: {
24
- width: 480,
25
- height: 480,
26
- },
27
- sizeConstraints: {
28
- min: 300,
29
- max: 900,
30
- step: 10,
31
- },
32
- includeAxes: true,
33
- standardGrid: false,
34
- displayedFields: {
35
- axisLabel: { enabled: true, label: 'Axis Label' },
36
- min: { enabled: true, label: 'Min' },
37
- max: { enabled: true, label: 'Max' },
38
- step: { enabled: true, label: 'Interval' },
39
- labelStep: { enabled: true, label: 'Label Interval' },
40
- dimensionsEnabled: true,
41
- includeAxesEnabled: true,
42
- standardGridEnabled: true,
43
- },
44
- gridValues: {
45
- domain: [1, 2, 5, 10],
46
- range: [1, 2, 5, 10],
47
- },
48
- labelValues: {
49
- domain: [0, 1, 2],
50
- range: [0, 1, 2],
51
- },
52
- onChange: mockOnChange,
53
- onChangeView: mockOnChangeView,
54
- };
55
-
56
- describe('GridSetup', () => {
57
- beforeEach(() => {
58
- jest.clearAllMocks();
59
- });
60
-
61
- describe('rendering', () => {
62
- it('renders without crashing', () => {
63
- const { container } = render(<GridSetup {...defaultProps} />);
64
- expect(container).toBeTruthy();
65
- });
66
-
67
- it('renders accordion with title', () => {
68
- const { getByText } = render(<GridSetup {...defaultProps} />);
69
- expect(getByText('Customize Grid Setup')).toBeTruthy();
70
- });
71
-
72
- it('renders Include axes toggle when enabled', () => {
73
- const { getByText } = render(<GridSetup {...defaultProps} />);
74
- expect(getByText('Include axes and labels?')).toBeTruthy();
75
- });
76
-
77
- it('does not render Include axes toggle when disabled', () => {
78
- const props = {
79
- ...defaultProps,
80
- displayedFields: {
81
- ...defaultProps.displayedFields,
82
- includeAxesEnabled: false,
83
- },
84
- };
85
- const { queryByText } = render(<GridSetup {...props} />);
86
- expect(queryByText('Include axes and labels?')).toBeFalsy();
87
- });
88
-
89
- it('renders standard grid toggle when enabled', () => {
90
- const { getByText } = render(<GridSetup {...defaultProps} />);
91
- expect(getByText('Constrain to standard coordinate grid?')).toBeTruthy();
92
- });
93
-
94
- it('does not render standard grid toggle when disabled', () => {
95
- const props = {
96
- ...defaultProps,
97
- displayedFields: {
98
- ...defaultProps.displayedFields,
99
- standardGridEnabled: false,
100
- },
101
- };
102
- const { queryByText } = render(<GridSetup {...props} />);
103
- expect(queryByText('Constrain to standard coordinate grid?')).toBeFalsy();
104
- });
105
-
106
- it('renders dimensions section when enabled', () => {
107
- const { getByText } = render(<GridSetup {...defaultProps} />);
108
- expect(getByText('Dimensions(px)')).toBeTruthy();
109
- expect(getByText(/Min 300, Max 900/)).toBeTruthy();
110
- });
111
-
112
- it('does not render dimensions section when disabled', () => {
113
- const props = {
114
- ...defaultProps,
115
- displayedFields: {
116
- ...defaultProps.displayedFields,
117
- dimensionsEnabled: false,
118
- },
119
- };
120
- const { queryByText } = render(<GridSetup {...props} />);
121
- expect(queryByText('Dimensions(px)')).toBeFalsy();
122
- });
123
- });
124
-
125
- describe('axes configuration', () => {
126
- it('renders axis headers when includeAxes is true', () => {
127
- const { container } = render(<GridSetup {...defaultProps} />);
128
- const xAxisHeader = container.querySelector('i');
129
- expect(xAxisHeader?.textContent).toBe('x');
130
- });
131
-
132
- it('renders min/max fields when enabled', () => {
133
- const { getAllByLabelText } = render(<GridSetup {...defaultProps} />);
134
- const minFields = getAllByLabelText('Min');
135
- const maxFields = getAllByLabelText('Max');
136
- expect(minFields.length).toBe(2); // domain and range
137
- expect(maxFields.length).toBe(2); // domain and range
138
- });
139
-
140
- it('does not render min/max fields when disabled', () => {
141
- const props = {
142
- ...defaultProps,
143
- displayedFields: {
144
- ...defaultProps.displayedFields,
145
- min: { enabled: false },
146
- max: { enabled: false },
147
- },
148
- };
149
- const { queryByLabelText } = render(<GridSetup {...props} />);
150
- expect(queryByLabelText('Min')).toBeFalsy();
151
- expect(queryByLabelText('Max')).toBeFalsy();
152
- });
153
-
154
- it('renders axis label fields when enabled', () => {
155
- const { getAllByText } = render(<GridSetup {...defaultProps} />);
156
- const axisLabelFields = getAllByText('Axis Label');
157
- expect(axisLabelFields.length).toBe(2); // domain and range
158
- });
159
-
160
- it('does not render axis label fields when disabled', () => {
161
- const props = {
162
- ...defaultProps,
163
- displayedFields: {
164
- ...defaultProps.displayedFields,
165
- axisLabel: { enabled: false },
166
- },
167
- };
168
- const { queryByText } = render(<GridSetup {...props} />);
169
- expect(queryByText('Axis Label')).toBeFalsy();
170
- });
171
-
172
- it('renders step and labelStep fields when enabled', () => {
173
- const { getAllByLabelText } = render(<GridSetup {...defaultProps} />);
174
- const intervalFields = getAllByLabelText('Interval');
175
- const labelIntervalFields = getAllByLabelText('Label Interval');
176
- expect(intervalFields.length).toBe(2); // domain and range
177
- expect(labelIntervalFields.length).toBe(2); // domain and range
178
- });
179
-
180
- it('does not render step fields when disabled', () => {
181
- const props = {
182
- ...defaultProps,
183
- displayedFields: {
184
- ...defaultProps.displayedFields,
185
- step: { enabled: false },
186
- },
187
- };
188
- const { queryByLabelText } = render(<GridSetup {...props} />);
189
- expect(queryByLabelText('Interval')).toBeFalsy();
190
- });
191
-
192
- it('does not render labelStep fields when disabled', () => {
193
- const props = {
194
- ...defaultProps,
195
- displayedFields: {
196
- ...defaultProps.displayedFields,
197
- labelStep: { enabled: false },
198
- },
199
- };
200
- const { queryByLabelText } = render(<GridSetup {...props} />);
201
- expect(queryByLabelText('Label Interval')).toBeFalsy();
202
- });
203
-
204
- it('displays axis visibility hint when min/max enabled', () => {
205
- const { getByText } = render(<GridSetup {...defaultProps} />);
206
- expect(
207
- getByText('If you want the axis to be visible, use a zero or negative Min Value, and a positive Max Value'),
208
- ).toBeTruthy();
209
- });
210
-
211
- it('displays unnumbered gridlines hint when labelStep enabled', () => {
212
- const { getByText } = render(<GridSetup {...defaultProps} />);
213
- expect(getByText('For unnumbered gridlines, enter a label interval of 0')).toBeTruthy();
214
- });
215
- });
216
-
217
- describe('gridlines configuration', () => {
218
- it('renders gridlines config when includeAxes is false', () => {
219
- const props = {
220
- ...defaultProps,
221
- includeAxes: false,
222
- };
223
- const { getByLabelText } = render(<GridSetup {...props} />);
224
- expect(getByLabelText('Number of Vertical Gridlines')).toBeTruthy();
225
- expect(getByLabelText('Number of Horizontal Gridlines')).toBeTruthy();
226
- });
227
-
228
- it('does not render axes config when includeAxes is false', () => {
229
- const props = {
230
- ...defaultProps,
231
- includeAxes: false,
232
- };
233
- const { queryByText } = render(<GridSetup {...props} />);
234
- expect(queryByText('Axis Label')).toBeFalsy();
235
- });
236
-
237
- it('does not render gridlines config when max is disabled', () => {
238
- const props = {
239
- ...defaultProps,
240
- includeAxes: false,
241
- displayedFields: {
242
- ...defaultProps.displayedFields,
243
- max: { enabled: false },
244
- },
245
- };
246
- const { queryByLabelText } = render(<GridSetup {...props} />);
247
- expect(queryByLabelText('Number of Vertical Gridlines')).toBeFalsy();
248
- expect(queryByLabelText('Number of Horizontal Gridlines')).toBeFalsy();
249
- });
250
- });
251
-
252
- describe('user interactions', () => {
253
- it('calls onChange when includeAxes toggle is clicked', () => {
254
- const { container } = render(<GridSetup {...defaultProps} />);
255
- const toggleInput = container.querySelector('input[type="checkbox"]');
256
-
257
- fireEvent.click(toggleInput);
258
-
259
- expect(mockOnChange).toHaveBeenCalledWith(
260
- expect.objectContaining({
261
- includeAxes: false,
262
- }),
263
- );
264
- });
265
-
266
- it('calls onChange with proper config when includeAxes is disabled', () => {
267
- const { container } = render(<GridSetup {...defaultProps} />);
268
- const toggleInput = container.querySelector('input[type="checkbox"]');
269
-
270
- fireEvent.click(toggleInput);
271
-
272
- expect(mockOnChange).toHaveBeenCalledWith(
273
- expect.objectContaining({
274
- includeAxes: false,
275
- domain: expect.objectContaining({
276
- min: 1,
277
- max: 5,
278
- step: 1,
279
- labelStep: 0,
280
- }),
281
- range: expect.objectContaining({
282
- min: 1,
283
- max: 5,
284
- step: 1,
285
- labelStep: 0,
286
- }),
287
- }),
288
- );
289
- });
290
-
291
- it('calls onChange with proper config when includeAxes is enabled', () => {
292
- const props = {
293
- ...defaultProps,
294
- includeAxes: false,
295
- };
296
- const { container } = render(<GridSetup {...props} />);
297
- const toggleInputs = container.querySelectorAll('input[type="checkbox"]');
298
- const includeAxesToggle = toggleInputs[0]; // First toggle is includeAxes
299
-
300
- fireEvent.click(includeAxesToggle);
301
-
302
- expect(mockOnChange).toHaveBeenCalledWith(
303
- expect.objectContaining({
304
- includeAxes: true,
305
- domain: expect.objectContaining({
306
- labelStep: 1,
307
- }),
308
- range: expect.objectContaining({
309
- labelStep: 1,
310
- }),
311
- }),
312
- );
313
- });
314
-
315
- it('calls onChange when standardGrid toggle is clicked', () => {
316
- const { container } = render(<GridSetup {...defaultProps} />);
317
- const toggleInputs = container.querySelectorAll('input[type="checkbox"]');
318
- const standardGridToggle = toggleInputs[1]; // Second toggle is standardGrid
319
-
320
- fireEvent.click(standardGridToggle);
321
-
322
- expect(mockOnChange).toHaveBeenCalledWith(
323
- expect.objectContaining({
324
- standardGrid: true,
325
- graph: expect.objectContaining({
326
- width: 480,
327
- height: 480,
328
- }),
329
- }),
330
- );
331
- });
332
-
333
- it('calls onChange when width is changed', async () => {
334
- const { getAllByLabelText } = render(<GridSetup {...defaultProps} />);
335
- const widthInput = getAllByLabelText('Width')[0];
336
-
337
- fireEvent.change(widthInput, { target: { value: '500' } });
338
- fireEvent.blur(widthInput);
339
-
340
- await waitFor(() => {
341
- expect(mockOnChange).toHaveBeenCalledWith(
342
- expect.objectContaining({
343
- graph: expect.objectContaining({
344
- width: 500,
345
- }),
346
- }),
347
- );
348
- });
349
- });
350
-
351
- it('calls onChange when height is changed', async () => {
352
- const { getAllByLabelText } = render(<GridSetup {...defaultProps} />);
353
- const heightInput = getAllByLabelText('Height')[0];
354
-
355
- fireEvent.change(heightInput, { target: { value: '520' } });
356
- fireEvent.blur(heightInput);
357
-
358
- await waitFor(() => {
359
- expect(mockOnChange).toHaveBeenCalledWith(
360
- expect.objectContaining({
361
- graph: expect.objectContaining({
362
- height: 520,
363
- }),
364
- }),
365
- );
366
- });
367
- });
368
-
369
- it('updates both width and height when standardGrid is true', async () => {
370
- const props = {
371
- ...defaultProps,
372
- standardGrid: true,
373
- };
374
- const { getAllByLabelText } = render(<GridSetup {...props} />);
375
- const widthInput = getAllByLabelText('Width')[0];
376
-
377
- fireEvent.change(widthInput, { target: { value: '600' } });
378
- fireEvent.blur(widthInput);
379
-
380
- await waitFor(() => {
381
- expect(mockOnChange).toHaveBeenCalledWith(
382
- expect.objectContaining({
383
- graph: expect.objectContaining({
384
- width: 600,
385
- height: 600,
386
- }),
387
- }),
388
- );
389
- });
390
- });
391
-
392
- it('calls onChange when domain min is changed', async () => {
393
- const { getAllByLabelText } = render(<GridSetup {...defaultProps} />);
394
- const minInputs = getAllByLabelText('Min');
395
- const domainMinInput = minInputs[0];
396
-
397
- fireEvent.change(domainMinInput, { target: { value: '-10' } });
398
- fireEvent.blur(domainMinInput);
399
-
400
- await waitFor(() => {
401
- expect(mockOnChange).toHaveBeenCalledWith(
402
- expect.objectContaining({
403
- domain: expect.objectContaining({
404
- min: -10,
405
- }),
406
- }),
407
- );
408
- });
409
- });
410
-
411
- it('calls onChange when domain max is changed', async () => {
412
- const { getAllByLabelText } = render(<GridSetup {...defaultProps} />);
413
- const maxInputs = getAllByLabelText('Max');
414
- const domainMaxInput = maxInputs[0];
415
-
416
- fireEvent.change(domainMaxInput, { target: { value: '10' } });
417
- fireEvent.blur(domainMaxInput);
418
-
419
- await waitFor(() => {
420
- expect(mockOnChange).toHaveBeenCalledWith(
421
- expect.objectContaining({
422
- domain: expect.objectContaining({
423
- max: 10,
424
- }),
425
- }),
426
- );
427
- });
428
- });
429
-
430
- it('calls onChange when range min is changed', async () => {
431
- const { getAllByLabelText } = render(<GridSetup {...defaultProps} />);
432
- const minInputs = getAllByLabelText('Min');
433
- const rangeMinInput = minInputs[1];
434
-
435
- fireEvent.change(rangeMinInput, { target: { value: '-8' } });
436
- fireEvent.blur(rangeMinInput);
437
-
438
- await waitFor(() => {
439
- expect(mockOnChange).toHaveBeenCalledWith(
440
- expect.objectContaining({
441
- range: expect.objectContaining({
442
- min: -8,
443
- }),
444
- }),
445
- );
446
- });
447
- });
448
-
449
- it('calls onChange when range max is changed', async () => {
450
- const { getAllByLabelText } = render(<GridSetup {...defaultProps} />);
451
- const maxInputs = getAllByLabelText('Max');
452
- const rangeMaxInput = maxInputs[1];
453
-
454
- fireEvent.change(rangeMaxInput, { target: { value: '12' } });
455
- fireEvent.blur(rangeMaxInput);
456
-
457
- await waitFor(() => {
458
- expect(mockOnChange).toHaveBeenCalledWith(
459
- expect.objectContaining({
460
- range: expect.objectContaining({
461
- max: 12,
462
- }),
463
- }),
464
- );
465
- });
466
- });
467
-
468
- it('updates both domain and range when standardGrid is true and domain changes', async () => {
469
- const props = {
470
- ...defaultProps,
471
- standardGrid: true,
472
- };
473
- const { getAllByLabelText } = render(<GridSetup {...props} />);
474
- const minInputs = getAllByLabelText('Min');
475
- const domainMinInput = minInputs[0];
476
-
477
- fireEvent.change(domainMinInput, { target: { value: '-15' } });
478
- fireEvent.blur(domainMinInput);
479
-
480
- await waitFor(() => {
481
- expect(mockOnChange).toHaveBeenCalledWith(
482
- expect.objectContaining({
483
- domain: expect.objectContaining({
484
- min: -15,
485
- }),
486
- range: expect.objectContaining({
487
- min: -15,
488
- }),
489
- }),
490
- );
491
- });
492
- });
493
-
494
- it('does not update range when domain axisLabel changes with standardGrid', async () => {
495
- const props = {
496
- ...defaultProps,
497
- standardGrid: true,
498
- };
499
- const { container } = render(<GridSetup {...props} />);
500
-
501
- // EditableHTML change is harder to trigger, but we can test the handler directly
502
- // by verifying the range doesn't get the axisLabel value from domain
503
- const axisLabelInputs = container.querySelectorAll('[contenteditable="true"]');
504
-
505
- if (axisLabelInputs.length > 0) {
506
- fireEvent.input(axisLabelInputs[0], { target: { innerHTML: 'X-Axis' } });
507
-
508
- await waitFor(() => {
509
- if (mockOnChange.mock.calls.length > 0) {
510
- const lastCall = mockOnChange.mock.calls[mockOnChange.mock.calls.length - 1][0];
511
- // range.axisLabel should not be 'X-Axis', it should keep its original value
512
- expect(lastCall.range?.axisLabel).not.toBe('X-Axis');
513
- }
514
- });
515
- }
516
- });
517
-
518
- it('calls onChangeView when accordion is toggled', () => {
519
- const { container } = render(<GridSetup {...defaultProps} />);
520
- const accordionSummary = container.querySelector('[aria-expanded]');
521
-
522
- fireEvent.click(accordionSummary);
523
-
524
- expect(mockOnChangeView).toHaveBeenCalled();
525
- });
526
- });
527
-
528
- describe('disabled states', () => {
529
- it('disables range fields when standardGrid is true', () => {
530
- const props = {
531
- ...defaultProps,
532
- standardGrid: true,
533
- };
534
- const { getAllByLabelText } = render(<GridSetup {...props} />);
535
- const minInputs = getAllByLabelText('Min');
536
- const rangeMinInput = minInputs[1];
537
-
538
- expect(rangeMinInput).toBeDisabled();
539
- });
540
-
541
- it('disables height field when standardGrid is true', () => {
542
- const props = {
543
- ...defaultProps,
544
- standardGrid: true,
545
- };
546
- const { getAllByLabelText } = render(<GridSetup {...props} />);
547
- const heightInput = getAllByLabelText('Height')[0];
548
-
549
- expect(heightInput).toBeDisabled();
550
- });
551
-
552
- it('disables horizontal gridlines field when standardGrid is true and includeAxes is false', () => {
553
- const props = {
554
- ...defaultProps,
555
- includeAxes: false,
556
- standardGrid: true,
557
- };
558
- const { getByLabelText } = render(<GridSetup {...props} />);
559
- const horizontalGridlinesInput = getByLabelText('Number of Horizontal Gridlines');
560
-
561
- expect(horizontalGridlinesInput).toBeDisabled();
562
- });
563
- });
564
-
565
- describe('GridConfig component', () => {
566
- it('renders step field when enabled', () => {
567
- const { getAllByLabelText } = render(<GridSetup {...defaultProps} />);
568
- const intervalFields = getAllByLabelText('Interval');
569
- expect(intervalFields.length).toBeGreaterThan(0);
570
- });
571
-
572
- it('renders labelStep field when enabled', () => {
573
- const { getAllByLabelText } = render(<GridSetup {...defaultProps} />);
574
- const labelIntervalFields = getAllByLabelText('Label Interval');
575
- expect(labelIntervalFields.length).toBeGreaterThan(0);
576
- });
577
-
578
- it('does not render when both step and labelStep are disabled', () => {
579
- const props = {
580
- ...defaultProps,
581
- displayedFields: {
582
- ...defaultProps.displayedFields,
583
- step: { enabled: false },
584
- labelStep: { enabled: false },
585
- },
586
- };
587
- const { queryByLabelText } = render(<GridSetup {...props} />);
588
- expect(queryByLabelText('Interval')).toBeFalsy();
589
- expect(queryByLabelText('Label Interval')).toBeFalsy();
590
- });
591
- });
592
-
593
- describe('AxisConfig component', () => {
594
- it('renders x-axis header', () => {
595
- const { container } = render(<GridSetup {...defaultProps} />);
596
- const headers = container.querySelectorAll('i');
597
- const xAxisHeader = Array.from(headers).find((h) => h.textContent === 'x');
598
- expect(xAxisHeader).toBeTruthy();
599
- });
600
-
601
- it('renders y-axis header', () => {
602
- const { container } = render(<GridSetup {...defaultProps} />);
603
- const headers = container.querySelectorAll('i');
604
- const yAxisHeader = Array.from(headers).find((h) => h.textContent === 'y');
605
- expect(yAxisHeader).toBeTruthy();
606
- });
607
-
608
- it('does not render headers when all fields are disabled', () => {
609
- const props = {
610
- ...defaultProps,
611
- displayedFields: {
612
- ...defaultProps.displayedFields,
613
- min: { enabled: false },
614
- max: { enabled: false },
615
- axisLabel: { enabled: false },
616
- step: { enabled: false },
617
- labelStep: { enabled: false },
618
- },
619
- };
620
- const { container } = render(<GridSetup {...props} />);
621
- const headers = container.querySelectorAll('i');
622
- const axisHeaders = Array.from(headers).filter((h) => h.textContent === 'x' || h.textContent === 'y');
623
- expect(axisHeaders.length).toBe(0);
624
- });
625
- });
626
-
627
- describe('Accordion behavior', () => {
628
- it('renders with correct transition props', () => {
629
- const { container } = render(<GridSetup {...defaultProps} />);
630
- const accordion = container.querySelector('.MuiAccordion-root');
631
- expect(accordion).toBeTruthy();
632
- });
633
-
634
- it('expands and collapses accordion', () => {
635
- const { container } = render(<GridSetup {...defaultProps} />);
636
- const accordionSummary = container.querySelector('[aria-expanded]');
637
-
638
- expect(accordionSummary.getAttribute('aria-expanded')).toBe('false');
639
-
640
- fireEvent.click(accordionSummary);
641
-
642
- expect(mockOnChangeView).toHaveBeenCalled();
643
- });
644
- });
645
- });
@@ -1,22 +0,0 @@
1
- import React from 'react';
2
- import { render } from '@pie-lib/test-utils';
3
- import { Grid } from '../grid';
4
- import { graphProps } from './utils';
5
-
6
- describe('Grid', () => {
7
- const renderComponent = (extras) => {
8
- const defaults = {
9
- classes: {},
10
- className: 'className',
11
- graphProps: graphProps(),
12
- };
13
- const props = { ...defaults, ...extras };
14
- return render(<Grid {...props} />);
15
- };
16
- describe('rendering', () => {
17
- it('renders without crashing', () => {
18
- const { container } = renderComponent();
19
- expect(container.firstChild).toBeInTheDocument();
20
- });
21
- });
22
- });