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

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/CHANGELOG.json +1 -0
  2. package/CHANGELOG.md +449 -0
  3. package/LICENSE.md +5 -0
  4. package/lib/axis/arrow.js +79 -0
  5. package/lib/axis/arrow.js.map +1 -0
  6. package/lib/axis/axes.js +327 -0
  7. package/lib/axis/axes.js.map +1 -0
  8. package/lib/axis/index.js +21 -0
  9. package/lib/axis/index.js.map +1 -0
  10. package/lib/bg.js +114 -0
  11. package/lib/bg.js.map +1 -0
  12. package/lib/container/actions.js +18 -0
  13. package/lib/container/actions.js.map +1 -0
  14. package/lib/container/index.js +129 -0
  15. package/lib/container/index.js.map +1 -0
  16. package/lib/container/marks.js +22 -0
  17. package/lib/container/marks.js.map +1 -0
  18. package/lib/container/middleware.js +19 -0
  19. package/lib/container/middleware.js.map +1 -0
  20. package/lib/container/reducer.js +18 -0
  21. package/lib/container/reducer.js.map +1 -0
  22. package/lib/coordinates-label.js +77 -0
  23. package/lib/coordinates-label.js.map +1 -0
  24. package/lib/graph-with-controls.js +297 -0
  25. package/lib/graph-with-controls.js.map +1 -0
  26. package/lib/graph.js +353 -0
  27. package/lib/graph.js.map +1 -0
  28. package/lib/grid-setup.js +414 -0
  29. package/lib/grid-setup.js.map +1 -0
  30. package/lib/grid.js +131 -0
  31. package/lib/grid.js.map +1 -0
  32. package/lib/index.js +40 -0
  33. package/lib/index.js.map +1 -0
  34. package/lib/labels.js +199 -0
  35. package/lib/labels.js.map +1 -0
  36. package/lib/mark-label.js +159 -0
  37. package/lib/mark-label.js.map +1 -0
  38. package/lib/toggle-bar.js +248 -0
  39. package/lib/toggle-bar.js.map +1 -0
  40. package/lib/tool-menu.js +218 -0
  41. package/lib/tool-menu.js.map +1 -0
  42. package/lib/tools/index.js +24 -0
  43. package/lib/tools/index.js.map +1 -0
  44. package/lib/tools/line/component.js +92 -0
  45. package/lib/tools/line/component.js.map +1 -0
  46. package/lib/tools/line/index.js +11 -0
  47. package/lib/tools/line/index.js.map +1 -0
  48. package/lib/tools/polygon/component.js +358 -0
  49. package/lib/tools/polygon/component.js.map +1 -0
  50. package/lib/tools/polygon/index.js +89 -0
  51. package/lib/tools/polygon/index.js.map +1 -0
  52. package/lib/tools/polygon/line.js +114 -0
  53. package/lib/tools/polygon/line.js.map +1 -0
  54. package/lib/tools/polygon/polygon.js +128 -0
  55. package/lib/tools/polygon/polygon.js.map +1 -0
  56. package/lib/tools/shared/arrow-head.js +62 -0
  57. package/lib/tools/shared/arrow-head.js.map +1 -0
  58. package/lib/tools/shared/line/index.js +539 -0
  59. package/lib/tools/shared/line/index.js.map +1 -0
  60. package/lib/tools/shared/line/line-path.js +121 -0
  61. package/lib/tools/shared/line/line-path.js.map +1 -0
  62. package/lib/tools/shared/line/with-root-edge.js +121 -0
  63. package/lib/tools/shared/line/with-root-edge.js.map +1 -0
  64. package/lib/tools/shared/point/arrow-point.js +86 -0
  65. package/lib/tools/shared/point/arrow-point.js.map +1 -0
  66. package/lib/tools/shared/point/arrow.js +70 -0
  67. package/lib/tools/shared/point/arrow.js.map +1 -0
  68. package/lib/tools/shared/point/base-point.js +137 -0
  69. package/lib/tools/shared/point/base-point.js.map +1 -0
  70. package/lib/tools/shared/point/index.js +80 -0
  71. package/lib/tools/shared/point/index.js.map +1 -0
  72. package/lib/tools/shared/styles.js +26 -0
  73. package/lib/tools/shared/styles.js.map +1 -0
  74. package/lib/tools/shared/types.js +15 -0
  75. package/lib/tools/shared/types.js.map +1 -0
  76. package/lib/undo-redo.js +67 -0
  77. package/lib/undo-redo.js.map +1 -0
  78. package/lib/use-debounce.js +25 -0
  79. package/lib/use-debounce.js.map +1 -0
  80. package/lib/utils.js +235 -0
  81. package/lib/utils.js.map +1 -0
  82. package/package.json +34 -46
  83. package/src/__tests__/bg.test.jsx +250 -0
  84. package/src/__tests__/coordinates-label.test.jsx +243 -0
  85. package/src/__tests__/graph-with-controls.test.jsx +184 -0
  86. package/src/__tests__/graph.test.jsx +93 -0
  87. package/src/__tests__/grid-setup.test.jsx +645 -0
  88. package/src/__tests__/grid.test.jsx +23 -0
  89. package/src/__tests__/labels.test.jsx +41 -0
  90. package/src/__tests__/mark-label.test.jsx +66 -0
  91. package/src/__tests__/toggle-bar.test.jsx +106 -0
  92. package/src/__tests__/tool-menu.test.jsx +453 -0
  93. package/src/__tests__/undo-redo.test.jsx +26 -0
  94. package/src/__tests__/use-debounce.test.js +21 -0
  95. package/src/__tests__/utils.js +41 -0
  96. package/src/__tests__/utils.test.js +105 -0
  97. package/src/axis/__tests__/arrow.test.jsx +43 -0
  98. package/src/axis/__tests__/axes.test.jsx +182 -0
  99. package/src/axis/arrow.jsx +57 -0
  100. package/src/axis/axes.jsx +284 -0
  101. package/src/axis/index.js +3 -0
  102. package/src/bg.jsx +96 -0
  103. package/src/container/__tests__/actions.test.js +105 -0
  104. package/src/container/__tests__/index.test.jsx +227 -0
  105. package/src/container/__tests__/marks.test.js +172 -0
  106. package/src/container/__tests__/middleware.test.js +235 -0
  107. package/src/container/__tests__/reducer.test.js +324 -0
  108. package/src/container/actions.js +8 -0
  109. package/src/container/index.jsx +93 -0
  110. package/src/container/marks.js +14 -0
  111. package/src/container/middleware.js +7 -0
  112. package/src/container/reducer.js +5 -0
  113. package/src/coordinates-label.jsx +62 -0
  114. package/src/graph-with-controls.jsx +242 -0
  115. package/src/graph.jsx +333 -0
  116. package/src/grid-setup.jsx +432 -0
  117. package/src/grid.jsx +133 -0
  118. package/src/index.js +7 -0
  119. package/src/labels.jsx +173 -0
  120. package/src/mark-label.jsx +125 -0
  121. package/src/toggle-bar.jsx +221 -0
  122. package/src/tool-menu.jsx +235 -0
  123. package/src/tools/index.js +8 -0
  124. package/src/tools/line/__tests__/component.test.jsx +37 -0
  125. package/src/tools/line/component.jsx +77 -0
  126. package/src/tools/line/index.js +4 -0
  127. package/src/tools/polygon/__tests__/component.test.jsx +487 -0
  128. package/src/tools/polygon/__tests__/index.test.js +65 -0
  129. package/src/tools/polygon/__tests__/line.test.jsx +23 -0
  130. package/src/tools/polygon/__tests__/polygon.test.jsx +44 -0
  131. package/src/tools/polygon/component.jsx +324 -0
  132. package/src/tools/polygon/index.js +52 -0
  133. package/src/tools/polygon/line.jsx +80 -0
  134. package/src/tools/polygon/polygon.jsx +93 -0
  135. package/src/tools/shared/__tests__/arrow-head.test.jsx +33 -0
  136. package/src/tools/shared/arrow-head.jsx +46 -0
  137. package/src/tools/shared/line/__tests__/index.test.jsx +553 -0
  138. package/src/tools/shared/line/__tests__/line-path.test.jsx +56 -0
  139. package/src/tools/shared/line/__tests__/with-root-edge.test.jsx +488 -0
  140. package/src/tools/shared/line/index.jsx +471 -0
  141. package/src/tools/shared/line/line-path.jsx +85 -0
  142. package/src/tools/shared/line/with-root-edge.jsx +97 -0
  143. package/src/tools/shared/point/__tests__/arrow-point.test.jsx +91 -0
  144. package/src/tools/shared/point/__tests__/arrow.test.jsx +469 -0
  145. package/src/tools/shared/point/__tests__/base-point.test.jsx +87 -0
  146. package/src/tools/shared/point/arrow-point.jsx +60 -0
  147. package/src/tools/shared/point/arrow.jsx +40 -0
  148. package/src/tools/shared/point/base-point.jsx +113 -0
  149. package/src/tools/shared/point/index.jsx +58 -0
  150. package/src/tools/shared/styles.js +20 -0
  151. package/src/tools/shared/types.js +8 -0
  152. package/src/undo-redo.jsx +37 -0
  153. package/src/use-debounce.js +13 -0
  154. package/src/utils.js +230 -0
  155. package/dist/_virtual/_rolldown/runtime.js +0 -23
  156. package/dist/autosize-input.d.ts +0 -10
  157. package/dist/autosize-input.js +0 -66
  158. package/dist/axis/arrow.d.ts +0 -13
  159. package/dist/axis/arrow.js +0 -34
  160. package/dist/axis/axes.d.ts +0 -132
  161. package/dist/axis/axes.js +0 -214
  162. package/dist/axis/index.d.ts +0 -10
  163. package/dist/bg.d.ts +0 -51
  164. package/dist/bg.js +0 -44
  165. package/dist/container/actions.d.ts +0 -15
  166. package/dist/container/actions.js +0 -7
  167. package/dist/container/index.d.ts +0 -58
  168. package/dist/container/index.js +0 -48
  169. package/dist/container/marks.d.ts +0 -10
  170. package/dist/container/marks.js +0 -11
  171. package/dist/container/middleware.d.ts +0 -10
  172. package/dist/container/middleware.js +0 -4
  173. package/dist/container/reducer.d.ts +0 -14
  174. package/dist/container/reducer.js +0 -7
  175. package/dist/coordinates-label.d.ts +0 -50
  176. package/dist/coordinates-label.js +0 -46
  177. package/dist/graph-with-controls.d.ts +0 -85
  178. package/dist/graph-with-controls.js +0 -155
  179. package/dist/graph.d.ts +0 -119
  180. package/dist/graph.js +0 -221
  181. package/dist/grid-setup.d.ts +0 -27
  182. package/dist/grid-setup.js +0 -307
  183. package/dist/grid.d.ts +0 -43
  184. package/dist/grid.js +0 -59
  185. package/dist/index.d.ts +0 -14
  186. package/dist/index.js +0 -6
  187. package/dist/labels.d.ts +0 -73
  188. package/dist/labels.js +0 -134
  189. package/dist/mark-label.d.ts +0 -50
  190. package/dist/mark-label.js +0 -84
  191. package/dist/node_modules/.bun/@visx_axis@3.12.0_f4eacebf2041cd4f/node_modules/@visx/axis/esm/axis/Axis.js +0 -101
  192. package/dist/node_modules/.bun/@visx_axis@3.12.0_f4eacebf2041cd4f/node_modules/@visx/axis/esm/axis/AxisRenderer.js +0 -63
  193. package/dist/node_modules/.bun/@visx_axis@3.12.0_f4eacebf2041cd4f/node_modules/@visx/axis/esm/axis/Ticks.js +0 -44
  194. package/dist/node_modules/.bun/@visx_axis@3.12.0_f4eacebf2041cd4f/node_modules/@visx/axis/esm/constants/orientation.js +0 -9
  195. package/dist/node_modules/.bun/@visx_axis@3.12.0_f4eacebf2041cd4f/node_modules/@visx/axis/esm/utils/createPoint.js +0 -14
  196. package/dist/node_modules/.bun/@visx_axis@3.12.0_f4eacebf2041cd4f/node_modules/@visx/axis/esm/utils/getAxisRangePaddingConfig.js +0 -21
  197. package/dist/node_modules/.bun/@visx_axis@3.12.0_f4eacebf2041cd4f/node_modules/@visx/axis/esm/utils/getLabelTransform.js +0 -16
  198. package/dist/node_modules/.bun/@visx_axis@3.12.0_f4eacebf2041cd4f/node_modules/@visx/axis/esm/utils/getTickFormatter.js +0 -8
  199. package/dist/node_modules/.bun/@visx_axis@3.12.0_f4eacebf2041cd4f/node_modules/@visx/axis/esm/utils/getTickPosition.js +0 -15
  200. package/dist/node_modules/.bun/@visx_grid@3.12.0_f4eacebf2041cd4f/node_modules/@visx/grid/esm/grids/Grid.js +0 -79
  201. package/dist/node_modules/.bun/@visx_grid@3.12.0_f4eacebf2041cd4f/node_modules/@visx/grid/esm/grids/GridColumns.js +0 -79
  202. package/dist/node_modules/.bun/@visx_grid@3.12.0_f4eacebf2041cd4f/node_modules/@visx/grid/esm/grids/GridRows.js +0 -79
  203. package/dist/node_modules/.bun/@visx_grid@3.12.0_f4eacebf2041cd4f/node_modules/@visx/grid/esm/utils/getScaleBandwidth.js +0 -6
  204. package/dist/node_modules/.bun/@visx_group@3.12.0_f4eacebf2041cd4f/node_modules/@visx/group/esm/Group.js +0 -50
  205. package/dist/node_modules/.bun/@visx_point@3.12.0/node_modules/@visx/point/esm/Point.js +0 -18
  206. package/dist/node_modules/.bun/@visx_scale@3.12.0/node_modules/@visx/scale/esm/utils/coerceNumber.js +0 -10
  207. package/dist/node_modules/.bun/@visx_scale@3.12.0/node_modules/@visx/scale/esm/utils/getTicks.js +0 -9
  208. package/dist/node_modules/.bun/@visx_scale@3.12.0/node_modules/@visx/scale/esm/utils/toString.js +0 -6
  209. package/dist/node_modules/.bun/@visx_shape@3.12.0_f4eacebf2041cd4f/node_modules/@visx/shape/esm/shapes/Line.js +0 -47
  210. package/dist/node_modules/.bun/@visx_shape@3.12.0_f4eacebf2041cd4f/node_modules/@visx/shape/lib/shapes/Line.js +0 -53
  211. package/dist/node_modules/.bun/@visx_text@3.12.0_f4eacebf2041cd4f/node_modules/@visx/text/esm/Text.js +0 -57
  212. package/dist/node_modules/.bun/@visx_text@3.12.0_f4eacebf2041cd4f/node_modules/@visx/text/esm/hooks/useText.js +0 -91
  213. package/dist/node_modules/.bun/@visx_text@3.12.0_f4eacebf2041cd4f/node_modules/@visx/text/esm/util/getStringWidth.js +0 -21
  214. package/dist/node_modules/.bun/balanced-match@0.4.2/node_modules/balanced-match/index.js +0 -32
  215. package/dist/node_modules/.bun/balanced-match@1.0.2/node_modules/balanced-match/index.js +0 -33
  216. package/dist/node_modules/.bun/classnames@2.5.1/node_modules/classnames/index.js +0 -32
  217. package/dist/node_modules/.bun/clsx@2.1.1/node_modules/clsx/dist/clsx.js +0 -16
  218. package/dist/node_modules/.bun/invariant@2.2.4/node_modules/invariant/browser.js +0 -28
  219. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_Hash.js +0 -21
  220. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_ListCache.js +0 -21
  221. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_Map.js +0 -10
  222. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_MapCache.js +0 -21
  223. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_Symbol.js +0 -9
  224. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_assocIndexOf.js +0 -14
  225. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseGetTag.js +0 -15
  226. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseIsNative.js +0 -16
  227. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_coreJsData.js +0 -9
  228. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_freeGlobal.js +0 -8
  229. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_getMapData.js +0 -14
  230. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_getNative.js +0 -15
  231. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_getRawTag.js +0 -19
  232. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_getValue.js +0 -11
  233. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_hashClear.js +0 -13
  234. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_hashDelete.js +0 -12
  235. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_hashGet.js +0 -18
  236. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_hashHas.js +0 -14
  237. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_hashSet.js +0 -14
  238. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_isKeyable.js +0 -12
  239. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_isMasked.js +0 -16
  240. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_listCacheClear.js +0 -11
  241. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_listCacheDelete.js +0 -14
  242. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_listCacheGet.js +0 -14
  243. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_listCacheHas.js +0 -13
  244. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_listCacheSet.js +0 -14
  245. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_mapCacheClear.js +0 -19
  246. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_mapCacheDelete.js +0 -14
  247. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_mapCacheGet.js +0 -13
  248. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_mapCacheHas.js +0 -13
  249. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_mapCacheSet.js +0 -14
  250. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_nativeCreate.js +0 -9
  251. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_objectToString.js +0 -12
  252. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_root.js +0 -10
  253. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_toSource.js +0 -20
  254. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/eq.js +0 -11
  255. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/isFunction.js +0 -16
  256. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/isObject.js +0 -12
  257. package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/memoize.js +0 -20
  258. package/dist/node_modules/.bun/math-expression-evaluator@1.4.0/node_modules/math-expression-evaluator/src/formula_evaluator.js +0 -37
  259. package/dist/node_modules/.bun/math-expression-evaluator@1.4.0/node_modules/math-expression-evaluator/src/lexer.js +0 -509
  260. package/dist/node_modules/.bun/math-expression-evaluator@1.4.0/node_modules/math-expression-evaluator/src/math_function.js +0 -108
  261. package/dist/node_modules/.bun/math-expression-evaluator@1.4.0/node_modules/math-expression-evaluator/src/postfix.js +0 -31
  262. package/dist/node_modules/.bun/math-expression-evaluator@1.4.0/node_modules/math-expression-evaluator/src/postfix_evaluator.js +0 -45
  263. package/dist/node_modules/.bun/react-redux@9.3.0_9e2203c65d1d5fa1/node_modules/react-redux/dist/react-redux.js +0 -471
  264. package/dist/node_modules/.bun/reduce-css-calc@1.3.0/node_modules/reduce-css-calc/index.js +0 -49
  265. package/dist/node_modules/.bun/reduce-function-call@1.0.3/node_modules/reduce-function-call/index.js +0 -34
  266. package/dist/node_modules/.bun/redux-undo@1.1.0/node_modules/redux-undo/dist/redux-undo.js +0 -185
  267. package/dist/node_modules/.bun/redux@5.0.1/node_modules/redux/dist/redux.js +0 -198
  268. 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 +0 -53
  269. 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 +0 -51
  270. package/dist/node_modules/.bun/use-sync-external-store@1.6.0_f4eacebf2041cd4f/node_modules/use-sync-external-store/with-selector.js +0 -10
  271. package/dist/toggle-bar.d.ts +0 -40
  272. package/dist/tool-menu.d.ts +0 -21
  273. package/dist/tool-menu.js +0 -188
  274. package/dist/tools/index.d.ts +0 -17
  275. package/dist/tools/index.js +0 -12
  276. package/dist/tools/line/component.d.ts +0 -113
  277. package/dist/tools/line/component.js +0 -58
  278. package/dist/tools/line/index.d.ts +0 -13
  279. package/dist/tools/line/index.js +0 -6
  280. package/dist/tools/polygon/component.d.ts +0 -117
  281. package/dist/tools/polygon/component.js +0 -194
  282. package/dist/tools/polygon/index.d.ts +0 -19
  283. package/dist/tools/polygon/index.js +0 -55
  284. package/dist/tools/polygon/line.d.ts +0 -125
  285. package/dist/tools/polygon/polygon.d.ts +0 -122
  286. package/dist/tools/polygon/polygon.js +0 -62
  287. package/dist/tools/shared/arrow-head.d.ts +0 -43
  288. package/dist/tools/shared/arrow-head.js +0 -37
  289. package/dist/tools/shared/line/index.d.ts +0 -240
  290. package/dist/tools/shared/line/index.js +0 -320
  291. package/dist/tools/shared/line/line-path.d.ts +0 -57
  292. package/dist/tools/shared/line/with-root-edge.d.ts +0 -143
  293. package/dist/tools/shared/point/arrow-point.d.ts +0 -57
  294. package/dist/tools/shared/point/arrow-point.js +0 -47
  295. package/dist/tools/shared/point/arrow.d.ts +0 -46
  296. package/dist/tools/shared/point/arrow.js +0 -36
  297. package/dist/tools/shared/point/base-point.d.ts +0 -50
  298. package/dist/tools/shared/point/base-point.js +0 -88
  299. package/dist/tools/shared/point/index.d.ts +0 -217
  300. package/dist/tools/shared/point/index.js +0 -51
  301. package/dist/tools/shared/styles.d.ts +0 -24
  302. package/dist/tools/shared/styles.js +0 -17
  303. package/dist/tools/shared/types.d.ts +0 -15
  304. package/dist/tools/shared/types.js +0 -10
  305. package/dist/undo-redo.d.ts +0 -20
  306. package/dist/undo-redo.js +0 -33
  307. package/dist/use-debounce.d.ts +0 -9
  308. package/dist/use-debounce.js +0 -13
  309. package/dist/utils.d.ts +0 -58
  310. package/dist/utils.js +0 -72
@@ -0,0 +1,235 @@
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import { Button, Radio, Typography } from '@mui/material';
4
+ import { styled } from '@mui/material/styles';
5
+
6
+ export class ToolMenu extends React.Component {
7
+ static propTypes = {
8
+ gssLineData: PropTypes.object,
9
+ disabled: PropTypes.bool,
10
+ onChange: PropTypes.func,
11
+ };
12
+
13
+ onChangeRadioValue = (event) => {
14
+ let { gssLineData, onChange } = this.props;
15
+ let oldSelectedTool = gssLineData.selectedTool;
16
+ gssLineData.selectedTool = event.target.value;
17
+ onChange(gssLineData, oldSelectedTool);
18
+ };
19
+
20
+ lineTypeChange = (line, type) => {
21
+ let { gssLineData, onChange } = this.props;
22
+ let oldSelectedTool = gssLineData.selectedTool;
23
+ gssLineData[`line${line}`].lineType = type;
24
+ onChange(gssLineData, oldSelectedTool);
25
+ };
26
+
27
+ render() {
28
+ const { gssLineData, disabled } = this.props;
29
+
30
+ return (
31
+ <Root>
32
+ <div className="selectLineRadioGroup">
33
+ {/* LINE A */}
34
+ <div className="radioFieldOuter">
35
+ <div className="radioFieldInner">
36
+ <Radio
37
+ name="select-line-radio-buttons"
38
+ onChange={this.onChangeRadioValue}
39
+ value="lineA"
40
+ disabled={!!disabled}
41
+ checked={gssLineData.selectedTool === 'lineA'}
42
+ className="lineTypeRadio"
43
+ />
44
+ <Typography className="lineNameFont">Line A</Typography>
45
+ </div>
46
+ <div className="radioFieldButtons">
47
+ <Button
48
+ size="small"
49
+ variant="contained"
50
+ color={gssLineData.lineA.lineType === 'Solid' ? 'primary' : 'inherit'}
51
+ disabled={!!disabled}
52
+ onClick={() => this.lineTypeChange('A', 'Solid')}
53
+ className={
54
+ gssLineData.lineA.lineType === 'Solid'
55
+ ? disabled
56
+ ? 'lineTypeButtonLeftSelectedDisabled'
57
+ : 'lineTypeButtonLeftSelected'
58
+ : disabled
59
+ ? 'lineTypeButtonLeftUnSelectedDisabled'
60
+ : 'lineTypeButtonLeftUnSelected'
61
+ }
62
+ >
63
+ {gssLineData.lineA.lineType === 'Solid' && '✔'} Solid
64
+ </Button>
65
+
66
+ <Button
67
+ size="small"
68
+ variant="contained"
69
+ color={gssLineData.lineA.lineType === 'Dashed' ? 'primary' : 'inherit'}
70
+ disabled={!!disabled}
71
+ onClick={() => this.lineTypeChange('A', 'Dashed')}
72
+ className={
73
+ gssLineData.lineA.lineType === 'Dashed'
74
+ ? disabled
75
+ ? 'lineTypeButtonRightSelectedDisabled'
76
+ : 'lineTypeButtonRightSelected'
77
+ : disabled
78
+ ? 'lineTypeButtonRightUnSelectedDisabled'
79
+ : 'lineTypeButtonRightUnSelected'
80
+ }
81
+ >
82
+ {gssLineData.lineA.lineType === 'Dashed' && '✔'} Dashed
83
+ </Button>
84
+ </div>
85
+ </div>
86
+
87
+ {/* LINE B (if applicable) */}
88
+ {gssLineData.numberOfLines === 2 && (
89
+ <div className="radioFieldOuter">
90
+ <div className="radioFieldInner">
91
+ <Radio
92
+ name="select-line-radio-buttons"
93
+ onChange={this.onChangeRadioValue}
94
+ value="lineB"
95
+ disabled={!!disabled}
96
+ checked={gssLineData.selectedTool === 'lineB'}
97
+ className="lineTypeRadio"
98
+ />
99
+ <Typography className="lineNameFont">Line B</Typography>
100
+ </div>
101
+ <div className="radioFieldButtons">
102
+ <Button
103
+ size="small"
104
+ variant="contained"
105
+ color={gssLineData.lineB.lineType === 'Solid' ? 'primary' : 'inherit'}
106
+ disabled={!!disabled}
107
+ onClick={() => this.lineTypeChange('B', 'Solid')}
108
+ className={
109
+ gssLineData.lineB.lineType === 'Solid'
110
+ ? disabled
111
+ ? 'lineTypeButtonLeftSelectedDisabled'
112
+ : 'lineTypeButtonLeftSelected'
113
+ : disabled
114
+ ? 'lineTypeButtonLeftUnSelectedDisabled'
115
+ : 'lineTypeButtonLeftUnSelected'
116
+ }
117
+ >
118
+ {gssLineData.lineB.lineType === 'Solid' && '✔'} Solid
119
+ </Button>
120
+
121
+ <Button
122
+ size="small"
123
+ variant="contained"
124
+ color={gssLineData.lineB.lineType === 'Dashed' ? 'primary' : 'inherit'}
125
+ disabled={!!disabled}
126
+ onClick={() => this.lineTypeChange('B', 'Dashed')}
127
+ className={
128
+ gssLineData.lineB.lineType === 'Dashed'
129
+ ? disabled
130
+ ? 'lineTypeButtonRightSelectedDisabled'
131
+ : 'lineTypeButtonRightSelected'
132
+ : disabled
133
+ ? 'lineTypeButtonRightUnSelectedDisabled'
134
+ : 'lineTypeButtonRightUnSelected'
135
+ }
136
+ >
137
+ {gssLineData.lineB.lineType === 'Dashed' && '✔'} Dashed
138
+ </Button>
139
+ </div>
140
+ </div>
141
+ )}
142
+
143
+ {/* SOLUTION SET */}
144
+ <div className="radioFieldOuter">
145
+ <div className="radioFieldInner">
146
+ <Radio
147
+ name="select-line-radio-buttons"
148
+ onChange={this.onChangeRadioValue}
149
+ value="solutionSet"
150
+ disabled={!!disabled}
151
+ checked={gssLineData.selectedTool === 'solutionSet'}
152
+ className="lineTypeRadio"
153
+ />
154
+ <Typography className="lineNameFont">Solution Set</Typography>
155
+ </div>
156
+ </div>
157
+ </div>
158
+ </Root>
159
+ );
160
+ }
161
+ }
162
+
163
+ const Root = styled('div')(() => ({
164
+ '& .selectLineRadioGroup': {
165
+ display: 'flex',
166
+ flexWrap: 'wrap',
167
+ flexDirection: 'row',
168
+ },
169
+ '& .radioFieldOuter': {
170
+ display: 'flex',
171
+ flexWrap: 'wrap',
172
+ flexDirection: 'column',
173
+ },
174
+ '& .radioFieldInner': {
175
+ display: 'flex',
176
+ flexWrap: 'wrap',
177
+ flexDirection: 'row',
178
+ alignItems: 'center',
179
+ },
180
+ '& .radioFieldButtons': {
181
+ display: 'flex',
182
+ flexWrap: 'wrap',
183
+ flexDirection: 'row',
184
+ padding: '0 .9rem',
185
+ },
186
+ '& .lineNameFont': {
187
+ fontWeight: 'bold',
188
+ padding: '0 5px 0 0',
189
+ },
190
+ '& .lineTypeRadio': {
191
+ color: '#000000 !important',
192
+ },
193
+ '& .lineTypeButtonLeftSelected': {
194
+ textTransform: 'none',
195
+ border: '1px solid #3E4EB1',
196
+ backgroundColor: '#3E4EB1 !important',
197
+ color: '#FFFFFF !important',
198
+ borderRadius: '4px 0 0 4px',
199
+ },
200
+ '& .lineTypeButtonLeftUnSelected': {
201
+ textTransform: 'none',
202
+ border: '1px solid #3E4EB1',
203
+ backgroundColor: '#FFFFFF !important',
204
+ color: '#3E4EB1 !important',
205
+ borderRadius: '4px 0 0 4px',
206
+ },
207
+ '& .lineTypeButtonRightSelected': {
208
+ textTransform: 'none',
209
+ border: '1px solid #3E4EB1',
210
+ backgroundColor: '#3E4EB1 !important',
211
+ color: '#FFFFFF !important',
212
+ borderRadius: '0 4px 4px 0',
213
+ },
214
+ '& .lineTypeButtonRightUnSelected': {
215
+ textTransform: 'none',
216
+ border: '1px solid #3E4EB1',
217
+ backgroundColor: '#FFFFFF !important',
218
+ color: '#3E4EB1 !important',
219
+ borderRadius: '0 4px 4px 0',
220
+ },
221
+ '& .lineTypeButtonLeftSelectedDisabled, & .lineTypeButtonRightSelectedDisabled': {
222
+ backgroundColor: '#3E4EB1 !important',
223
+ color: '#FFFFFF !important',
224
+ cursor: 'default',
225
+ pointerEvents: 'none',
226
+ },
227
+ '& .lineTypeButtonLeftUnSelectedDisabled, & .lineTypeButtonRightUnSelectedDisabled': {
228
+ backgroundColor: '#FFFFFF !important',
229
+ color: '#3E4EB1 !important',
230
+ cursor: 'default',
231
+ pointerEvents: 'none',
232
+ },
233
+ }));
234
+
235
+ export default ToolMenu;
@@ -0,0 +1,8 @@
1
+ import { tool as polygon } from './polygon';
2
+ import { tool as line } from './line';
3
+
4
+ const allTools = ['line', 'polygon'];
5
+
6
+ const toolsArr = [line(), polygon()];
7
+
8
+ export { allTools, toolsArr, line, polygon };
@@ -0,0 +1,37 @@
1
+ import { render } from '@pie-lib/test-utils';
2
+ import React from 'react';
3
+ import { ArrowedLine } from '../component';
4
+ import { graphProps as getGraphProps } from '../../../__tests__/utils';
5
+
6
+ jest.mock('@pie-lib/plot', () => {
7
+ const a = jest.requireActual('@pie-lib/plot');
8
+ return {
9
+ types: a.types,
10
+ gridDraggable: a.gridDraggable,
11
+ utils: a.utils,
12
+ trig: {
13
+ edges: jest.fn(() => jest.fn().mockReturnValue([0, 0])),
14
+ },
15
+ };
16
+ });
17
+
18
+ describe('ArrowedLine', () => {
19
+ let onChange = jest.fn();
20
+ const renderComponent = (extras) => {
21
+ const defaults = {
22
+ classes: {},
23
+ className: 'className',
24
+ onChange,
25
+ markerId: '1',
26
+ graphProps: getGraphProps(),
27
+ };
28
+ const props = { ...defaults, ...extras };
29
+ return render(<ArrowedLine {...props} />);
30
+ };
31
+ describe('rendering', () => {
32
+ it('renders without crashing', () => {
33
+ const { container } = renderComponent();
34
+ expect(container.firstChild).toBeInTheDocument();
35
+ });
36
+ });
37
+ });
@@ -0,0 +1,77 @@
1
+ import { lineBase, lineToolComponent, styles } from '../shared/line';
2
+ import React from 'react';
3
+ import PropTypes from 'prop-types';
4
+ import { trig, types } from '@pie-lib/plot';
5
+ import { styled } from '@mui/material/styles';
6
+ import { ArrowMarker, genUid } from '../shared/arrow-head';
7
+ import { getAdjustedGraphLimits, thinnerShapesNeeded } from '../../utils';
8
+
9
+ const StyledLine = styled('line', {
10
+ shouldForwardProp: (prop) => !['fill', 'disabled', 'correctness'].includes(prop),
11
+ })(({ theme, fill, disabled, correctness }) => ({
12
+ ...(fill === 'Solid' ? styles.line(theme) : styles.dashedLine(theme)),
13
+ ...(disabled && styles.disabled(theme)),
14
+ ...(correctness === 'correct' && styles.correct(theme, 'stroke')),
15
+ ...(correctness === 'incorrect' && styles.incorrect(theme, 'stroke')),
16
+ ...(correctness === 'missing' && styles.missing(theme, 'stroke')),
17
+ }));
18
+
19
+ const StyledArrowMarker = styled(ArrowMarker, {
20
+ shouldForwardProp: (prop) => !['suffix'].includes(prop),
21
+ })(({ theme, suffix }) => ({
22
+ ...(suffix === 'enabled' && styles.arrow(theme)),
23
+ ...(suffix === 'disabled' && styles.disabledArrow(theme)),
24
+ ...(suffix === 'correct' && styles.correct(theme)),
25
+ ...(suffix === 'incorrect' && styles.incorrect(theme)),
26
+ ...(suffix === 'missing' && styles.missing(theme)),
27
+ }));
28
+
29
+ export const ArrowedLine = (props) => {
30
+ const markerId = genUid();
31
+ const { className, correctness, disabled, graphProps, fill = 'Solid', from, to, ...rest } = props;
32
+ const { scale } = graphProps;
33
+ const { domain, range } = getAdjustedGraphLimits(graphProps);
34
+ const [eFrom, eTo] = trig.edges(domain, range)(from, to);
35
+ const suffix = correctness || (disabled && 'disabled') || 'enabled';
36
+
37
+ return (
38
+ <g>
39
+ <defs>
40
+ <StyledArrowMarker
41
+ size={thinnerShapesNeeded(graphProps) ? 4 : 5}
42
+ id={`${props.markerId || markerId}-${suffix}`}
43
+ suffix={suffix}
44
+ />
45
+ </defs>
46
+ <StyledLine
47
+ x1={scale.x(eFrom.x)}
48
+ y1={scale.y(eFrom.y)}
49
+ x2={scale.x(eTo.x)}
50
+ y2={scale.y(eTo.y)}
51
+ fill={fill}
52
+ disabled={disabled}
53
+ correctness={correctness}
54
+ className={className}
55
+ markerEnd={`url(#${props.markerId || markerId}-${suffix})`}
56
+ markerStart={`url(#${props.markerId || markerId}-${suffix})`}
57
+ {...rest}
58
+ />
59
+ </g>
60
+ );
61
+ };
62
+
63
+ ArrowedLine.propTypes = {
64
+ className: PropTypes.string,
65
+ fill: PropTypes.string,
66
+ correctness: PropTypes.string,
67
+ disabled: PropTypes.bool,
68
+ graphProps: types.GraphPropsType,
69
+ from: types.PointType,
70
+ to: types.PointType,
71
+ markerId: PropTypes.string,
72
+ };
73
+
74
+ const Line = lineBase(ArrowedLine);
75
+ const Component = lineToolComponent(Line);
76
+
77
+ export default Component;
@@ -0,0 +1,4 @@
1
+ import Line from './component';
2
+ import { lineTool } from '../shared/line';
3
+
4
+ export const tool = lineTool('line', Line);