@pie-lib/graphing-solution-set 4.1.0-beta.7 → 5.0.0-next.35

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (332) hide show
  1. package/dist/_virtual/_rolldown/runtime.js +20 -0
  2. package/dist/autosize-input.d.ts +10 -0
  3. package/dist/autosize-input.js +66 -0
  4. package/dist/axis/arrow.d.ts +13 -0
  5. package/dist/axis/arrow.js +34 -0
  6. package/dist/axis/axes.d.ts +132 -0
  7. package/dist/axis/axes.js +214 -0
  8. package/dist/axis/index.d.ts +10 -0
  9. package/dist/bg.d.ts +51 -0
  10. package/dist/bg.js +44 -0
  11. package/dist/container/actions.d.ts +15 -0
  12. package/dist/container/actions.js +7 -0
  13. package/dist/container/index.d.ts +58 -0
  14. package/dist/container/index.js +48 -0
  15. package/dist/container/marks.d.ts +10 -0
  16. package/dist/container/marks.js +11 -0
  17. package/dist/container/middleware.d.ts +10 -0
  18. package/dist/container/middleware.js +4 -0
  19. package/dist/container/reducer.d.ts +14 -0
  20. package/dist/container/reducer.js +7 -0
  21. package/dist/coordinates-label.d.ts +50 -0
  22. package/dist/coordinates-label.js +46 -0
  23. package/dist/graph-with-controls.d.ts +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@4.0.0_d84c32d47042070f/node_modules/@visx/axis/esm/axis/Axis.js +67 -0
  38. package/dist/node_modules/.bun/@visx_axis@4.0.0_d84c32d47042070f/node_modules/@visx/axis/esm/axis/AxisRenderer.js +66 -0
  39. package/dist/node_modules/.bun/@visx_axis@4.0.0_d84c32d47042070f/node_modules/@visx/axis/esm/axis/Ticks.js +39 -0
  40. package/dist/node_modules/.bun/@visx_axis@4.0.0_d84c32d47042070f/node_modules/@visx/axis/esm/constants/orientation.js +9 -0
  41. package/dist/node_modules/.bun/@visx_axis@4.0.0_d84c32d47042070f/node_modules/@visx/axis/esm/utils/createPoint.js +14 -0
  42. package/dist/node_modules/.bun/@visx_axis@4.0.0_d84c32d47042070f/node_modules/@visx/axis/esm/utils/getAxisRangePaddingConfig.js +13 -0
  43. package/dist/node_modules/.bun/@visx_axis@4.0.0_d84c32d47042070f/node_modules/@visx/axis/esm/utils/getLabelTransform.js +16 -0
  44. package/dist/node_modules/.bun/@visx_axis@4.0.0_d84c32d47042070f/node_modules/@visx/axis/esm/utils/getTickFormatter.js +8 -0
  45. package/dist/node_modules/.bun/@visx_axis@4.0.0_d84c32d47042070f/node_modules/@visx/axis/esm/utils/getTickPosition.js +14 -0
  46. package/dist/node_modules/.bun/@visx_grid@4.0.0_d84c32d47042070f/node_modules/@visx/grid/esm/grids/Grid.js +43 -0
  47. package/dist/node_modules/.bun/@visx_grid@4.0.0_d84c32d47042070f/node_modules/@visx/grid/esm/grids/GridColumns.js +46 -0
  48. package/dist/node_modules/.bun/@visx_grid@4.0.0_d84c32d47042070f/node_modules/@visx/grid/esm/grids/GridRows.js +46 -0
  49. package/dist/node_modules/.bun/@visx_grid@4.0.0_d84c32d47042070f/node_modules/@visx/grid/esm/utils/getScaleBandwidth.js +6 -0
  50. package/dist/node_modules/.bun/@visx_group@4.0.0_d84c32d47042070f/node_modules/@visx/group/esm/Group.js +17 -0
  51. package/dist/node_modules/.bun/@visx_point@4.0.0/node_modules/@visx/point/esm/Point.js +20 -0
  52. package/dist/node_modules/.bun/@visx_scale@4.0.0/node_modules/@visx/scale/esm/utils/coerceNumber.js +10 -0
  53. package/dist/node_modules/.bun/@visx_scale@4.0.0/node_modules/@visx/scale/esm/utils/getTicks.js +7 -0
  54. package/dist/node_modules/.bun/@visx_scale@4.0.0/node_modules/@visx/scale/esm/utils/toString.js +6 -0
  55. package/dist/node_modules/.bun/@visx_shape@4.0.0_d84c32d47042070f/node_modules/@visx/shape/esm/shapes/Line.js +27 -0
  56. package/dist/node_modules/.bun/@visx_text@4.0.0_d84c32d47042070f/node_modules/@visx/text/esm/Text.js +27 -0
  57. package/dist/node_modules/.bun/@visx_text@4.0.0_d84c32d47042070f/node_modules/@visx/text/esm/hooks/useText.js +68 -0
  58. package/dist/node_modules/.bun/@visx_text@4.0.0_d84c32d47042070f/node_modules/@visx/text/esm/util/getStringWidth.js +19 -0
  59. package/dist/node_modules/.bun/@visx_text@4.0.0_d84c32d47042070f/node_modules/@visx/text/esm/util/memoize.js +13 -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/math-expression-evaluator@1.4.0/node_modules/math-expression-evaluator/src/formula_evaluator.js +37 -0
  66. package/dist/node_modules/.bun/math-expression-evaluator@1.4.0/node_modules/math-expression-evaluator/src/lexer.js +509 -0
  67. package/dist/node_modules/.bun/math-expression-evaluator@1.4.0/node_modules/math-expression-evaluator/src/math_function.js +108 -0
  68. package/dist/node_modules/.bun/math-expression-evaluator@1.4.0/node_modules/math-expression-evaluator/src/postfix.js +31 -0
  69. package/dist/node_modules/.bun/math-expression-evaluator@1.4.0/node_modules/math-expression-evaluator/src/postfix_evaluator.js +45 -0
  70. package/dist/node_modules/.bun/reduce-css-calc@1.3.0/node_modules/reduce-css-calc/index.js +49 -0
  71. package/dist/node_modules/.bun/reduce-function-call@1.0.3/node_modules/reduce-function-call/index.js +34 -0
  72. package/dist/node_modules/.bun/redux-undo@1.1.0/node_modules/redux-undo/dist/redux-undo.js +185 -0
  73. package/dist/node_modules/.bun/redux@5.0.1/node_modules/redux/dist/redux.js +198 -0
  74. package/dist/toggle-bar.d.ts +40 -0
  75. package/dist/tool-menu.d.ts +21 -0
  76. package/dist/tool-menu.js +188 -0
  77. package/dist/tools/index.d.ts +17 -0
  78. package/dist/tools/index.js +12 -0
  79. package/dist/tools/line/component.d.ts +113 -0
  80. package/dist/tools/line/component.js +58 -0
  81. package/dist/tools/line/index.d.ts +13 -0
  82. package/dist/tools/line/index.js +6 -0
  83. package/dist/tools/polygon/component.d.ts +117 -0
  84. package/dist/tools/polygon/component.js +194 -0
  85. package/dist/tools/polygon/index.d.ts +19 -0
  86. package/dist/tools/polygon/index.js +55 -0
  87. package/dist/tools/polygon/line.d.ts +125 -0
  88. package/dist/tools/polygon/polygon.d.ts +122 -0
  89. package/dist/tools/polygon/polygon.js +62 -0
  90. package/dist/tools/shared/arrow-head.d.ts +43 -0
  91. package/dist/tools/shared/arrow-head.js +37 -0
  92. package/dist/tools/shared/line/index.d.ts +240 -0
  93. package/dist/tools/shared/line/index.js +320 -0
  94. package/dist/tools/shared/line/line-path.d.ts +57 -0
  95. package/dist/tools/shared/line/with-root-edge.d.ts +143 -0
  96. package/dist/tools/shared/point/arrow-point.d.ts +57 -0
  97. package/dist/tools/shared/point/arrow-point.js +47 -0
  98. package/dist/tools/shared/point/arrow.d.ts +46 -0
  99. package/dist/tools/shared/point/arrow.js +36 -0
  100. package/dist/tools/shared/point/base-point.d.ts +50 -0
  101. package/dist/tools/shared/point/base-point.js +88 -0
  102. package/dist/tools/shared/point/index.d.ts +217 -0
  103. package/dist/tools/shared/point/index.js +51 -0
  104. package/dist/tools/shared/styles.d.ts +24 -0
  105. package/dist/tools/shared/styles.js +17 -0
  106. package/dist/tools/shared/types.d.ts +15 -0
  107. package/dist/tools/shared/types.js +10 -0
  108. package/dist/undo-redo.d.ts +20 -0
  109. package/dist/undo-redo.js +33 -0
  110. package/dist/use-debounce.d.ts +9 -0
  111. package/dist/use-debounce.js +13 -0
  112. package/dist/utils.d.ts +58 -0
  113. package/dist/utils.js +72 -0
  114. package/package.json +52 -42
  115. package/CHANGELOG.json +0 -1
  116. package/CHANGELOG.md +0 -449
  117. package/lib/__tests__/bg.test.js +0 -282
  118. package/lib/__tests__/bg.test.js.map +0 -1
  119. package/lib/__tests__/coordinates-label.test.js +0 -276
  120. package/lib/__tests__/coordinates-label.test.js.map +0 -1
  121. package/lib/__tests__/graph-with-controls.test.js +0 -256
  122. package/lib/__tests__/graph-with-controls.test.js.map +0 -1
  123. package/lib/__tests__/graph.test.js +0 -113
  124. package/lib/__tests__/graph.test.js.map +0 -1
  125. package/lib/__tests__/grid-setup.test.js +0 -729
  126. package/lib/__tests__/grid-setup.test.js.map +0 -1
  127. package/lib/__tests__/grid.test.js +0 -29
  128. package/lib/__tests__/grid.test.js.map +0 -1
  129. package/lib/__tests__/labels.test.js +0 -45
  130. package/lib/__tests__/labels.test.js.map +0 -1
  131. package/lib/__tests__/mark-label.test.js +0 -133
  132. package/lib/__tests__/mark-label.test.js.map +0 -1
  133. package/lib/__tests__/toggle-bar.test.js +0 -146
  134. package/lib/__tests__/toggle-bar.test.js.map +0 -1
  135. package/lib/__tests__/tool-menu.test.js +0 -540
  136. package/lib/__tests__/tool-menu.test.js.map +0 -1
  137. package/lib/__tests__/undo-redo.test.js +0 -31
  138. package/lib/__tests__/undo-redo.test.js.map +0 -1
  139. package/lib/__tests__/use-debounce.test.js +0 -24
  140. package/lib/__tests__/use-debounce.test.js.map +0 -1
  141. package/lib/__tests__/utils.js +0 -70
  142. package/lib/__tests__/utils.js.map +0 -1
  143. package/lib/__tests__/utils.test.js +0 -123
  144. package/lib/__tests__/utils.test.js.map +0 -1
  145. package/lib/axis/__tests__/arrow.test.js +0 -60
  146. package/lib/axis/__tests__/arrow.test.js.map +0 -1
  147. package/lib/axis/__tests__/axes.test.js +0 -160
  148. package/lib/axis/__tests__/axes.test.js.map +0 -1
  149. package/lib/axis/arrow.js +0 -79
  150. package/lib/axis/arrow.js.map +0 -1
  151. package/lib/axis/axes.js +0 -327
  152. package/lib/axis/axes.js.map +0 -1
  153. package/lib/axis/index.js +0 -21
  154. package/lib/axis/index.js.map +0 -1
  155. package/lib/bg.js +0 -114
  156. package/lib/bg.js.map +0 -1
  157. package/lib/container/__tests__/actions.test.js +0 -108
  158. package/lib/container/__tests__/actions.test.js.map +0 -1
  159. package/lib/container/__tests__/index.test.js +0 -346
  160. package/lib/container/__tests__/index.test.js.map +0 -1
  161. package/lib/container/__tests__/marks.test.js +0 -259
  162. package/lib/container/__tests__/marks.test.js.map +0 -1
  163. package/lib/container/__tests__/middleware.test.js +0 -244
  164. package/lib/container/__tests__/middleware.test.js.map +0 -1
  165. package/lib/container/__tests__/reducer.test.js +0 -450
  166. package/lib/container/__tests__/reducer.test.js.map +0 -1
  167. package/lib/container/actions.js +0 -18
  168. package/lib/container/actions.js.map +0 -1
  169. package/lib/container/index.js +0 -129
  170. package/lib/container/index.js.map +0 -1
  171. package/lib/container/marks.js +0 -22
  172. package/lib/container/marks.js.map +0 -1
  173. package/lib/container/middleware.js +0 -19
  174. package/lib/container/middleware.js.map +0 -1
  175. package/lib/container/reducer.js +0 -18
  176. package/lib/container/reducer.js.map +0 -1
  177. package/lib/coordinates-label.js +0 -77
  178. package/lib/coordinates-label.js.map +0 -1
  179. package/lib/graph-with-controls.js +0 -297
  180. package/lib/graph-with-controls.js.map +0 -1
  181. package/lib/graph.js +0 -353
  182. package/lib/graph.js.map +0 -1
  183. package/lib/grid-setup.js +0 -414
  184. package/lib/grid-setup.js.map +0 -1
  185. package/lib/grid.js +0 -131
  186. package/lib/grid.js.map +0 -1
  187. package/lib/index.js +0 -40
  188. package/lib/index.js.map +0 -1
  189. package/lib/labels.js +0 -199
  190. package/lib/labels.js.map +0 -1
  191. package/lib/mark-label.js +0 -159
  192. package/lib/mark-label.js.map +0 -1
  193. package/lib/toggle-bar.js +0 -248
  194. package/lib/toggle-bar.js.map +0 -1
  195. package/lib/tool-menu.js +0 -218
  196. package/lib/tool-menu.js.map +0 -1
  197. package/lib/tools/index.js +0 -24
  198. package/lib/tools/index.js.map +0 -1
  199. package/lib/tools/line/__tests__/component.test.js +0 -45
  200. package/lib/tools/line/__tests__/component.test.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/__tests__/component.test.js +0 -501
  206. package/lib/tools/polygon/__tests__/component.test.js.map +0 -1
  207. package/lib/tools/polygon/__tests__/index.test.js +0 -92
  208. package/lib/tools/polygon/__tests__/index.test.js.map +0 -1
  209. package/lib/tools/polygon/__tests__/line.test.js +0 -30
  210. package/lib/tools/polygon/__tests__/line.test.js.map +0 -1
  211. package/lib/tools/polygon/__tests__/polygon.test.js +0 -61
  212. package/lib/tools/polygon/__tests__/polygon.test.js.map +0 -1
  213. package/lib/tools/polygon/component.js +0 -358
  214. package/lib/tools/polygon/component.js.map +0 -1
  215. package/lib/tools/polygon/index.js +0 -89
  216. package/lib/tools/polygon/index.js.map +0 -1
  217. package/lib/tools/polygon/line.js +0 -114
  218. package/lib/tools/polygon/line.js.map +0 -1
  219. package/lib/tools/polygon/polygon.js +0 -128
  220. package/lib/tools/polygon/polygon.js.map +0 -1
  221. package/lib/tools/shared/__tests__/arrow-head.test.js +0 -45
  222. package/lib/tools/shared/__tests__/arrow-head.test.js.map +0 -1
  223. package/lib/tools/shared/arrow-head.js +0 -62
  224. package/lib/tools/shared/arrow-head.js.map +0 -1
  225. package/lib/tools/shared/line/__tests__/index.test.js +0 -725
  226. package/lib/tools/shared/line/__tests__/index.test.js.map +0 -1
  227. package/lib/tools/shared/line/__tests__/line-path.test.js +0 -64
  228. package/lib/tools/shared/line/__tests__/line-path.test.js.map +0 -1
  229. package/lib/tools/shared/line/__tests__/with-root-edge.test.js +0 -618
  230. package/lib/tools/shared/line/__tests__/with-root-edge.test.js.map +0 -1
  231. package/lib/tools/shared/line/index.js +0 -539
  232. package/lib/tools/shared/line/index.js.map +0 -1
  233. package/lib/tools/shared/line/line-path.js +0 -121
  234. package/lib/tools/shared/line/line-path.js.map +0 -1
  235. package/lib/tools/shared/line/with-root-edge.js +0 -121
  236. package/lib/tools/shared/line/with-root-edge.js.map +0 -1
  237. package/lib/tools/shared/point/__tests__/arrow-point.test.js +0 -127
  238. package/lib/tools/shared/point/__tests__/arrow-point.test.js.map +0 -1
  239. package/lib/tools/shared/point/__tests__/arrow.test.js +0 -619
  240. package/lib/tools/shared/point/__tests__/arrow.test.js.map +0 -1
  241. package/lib/tools/shared/point/__tests__/base-point.test.js +0 -122
  242. package/lib/tools/shared/point/__tests__/base-point.test.js.map +0 -1
  243. package/lib/tools/shared/point/arrow-point.js +0 -86
  244. package/lib/tools/shared/point/arrow-point.js.map +0 -1
  245. package/lib/tools/shared/point/arrow.js +0 -70
  246. package/lib/tools/shared/point/arrow.js.map +0 -1
  247. package/lib/tools/shared/point/base-point.js +0 -137
  248. package/lib/tools/shared/point/base-point.js.map +0 -1
  249. package/lib/tools/shared/point/index.js +0 -80
  250. package/lib/tools/shared/point/index.js.map +0 -1
  251. package/lib/tools/shared/styles.js +0 -26
  252. package/lib/tools/shared/styles.js.map +0 -1
  253. package/lib/tools/shared/types.js +0 -15
  254. package/lib/tools/shared/types.js.map +0 -1
  255. package/lib/undo-redo.js +0 -67
  256. package/lib/undo-redo.js.map +0 -1
  257. package/lib/use-debounce.js +0 -25
  258. package/lib/use-debounce.js.map +0 -1
  259. package/lib/utils.js +0 -235
  260. package/lib/utils.js.map +0 -1
  261. package/src/__tests__/bg.test.jsx +0 -250
  262. package/src/__tests__/coordinates-label.test.jsx +0 -243
  263. package/src/__tests__/graph-with-controls.test.jsx +0 -184
  264. package/src/__tests__/graph.test.jsx +0 -93
  265. package/src/__tests__/grid-setup.test.jsx +0 -645
  266. package/src/__tests__/grid.test.jsx +0 -23
  267. package/src/__tests__/labels.test.jsx +0 -41
  268. package/src/__tests__/mark-label.test.jsx +0 -66
  269. package/src/__tests__/toggle-bar.test.jsx +0 -106
  270. package/src/__tests__/tool-menu.test.jsx +0 -453
  271. package/src/__tests__/undo-redo.test.jsx +0 -26
  272. package/src/__tests__/use-debounce.test.js +0 -21
  273. package/src/__tests__/utils.js +0 -41
  274. package/src/__tests__/utils.test.js +0 -105
  275. package/src/axis/__tests__/arrow.test.jsx +0 -43
  276. package/src/axis/__tests__/axes.test.jsx +0 -182
  277. package/src/axis/arrow.jsx +0 -57
  278. package/src/axis/axes.jsx +0 -284
  279. package/src/axis/index.js +0 -3
  280. package/src/bg.jsx +0 -96
  281. package/src/container/__tests__/actions.test.js +0 -105
  282. package/src/container/__tests__/index.test.jsx +0 -227
  283. package/src/container/__tests__/marks.test.js +0 -172
  284. package/src/container/__tests__/middleware.test.js +0 -235
  285. package/src/container/__tests__/reducer.test.js +0 -324
  286. package/src/container/actions.js +0 -8
  287. package/src/container/index.jsx +0 -93
  288. package/src/container/marks.js +0 -14
  289. package/src/container/middleware.js +0 -7
  290. package/src/container/reducer.js +0 -5
  291. package/src/coordinates-label.jsx +0 -62
  292. package/src/graph-with-controls.jsx +0 -242
  293. package/src/graph.jsx +0 -333
  294. package/src/grid-setup.jsx +0 -432
  295. package/src/grid.jsx +0 -133
  296. package/src/index.js +0 -7
  297. package/src/labels.jsx +0 -173
  298. package/src/mark-label.jsx +0 -125
  299. package/src/toggle-bar.jsx +0 -221
  300. package/src/tool-menu.jsx +0 -235
  301. package/src/tools/index.js +0 -8
  302. package/src/tools/line/__tests__/component.test.jsx +0 -37
  303. package/src/tools/line/component.jsx +0 -77
  304. package/src/tools/line/index.js +0 -4
  305. package/src/tools/polygon/__tests__/component.test.jsx +0 -487
  306. package/src/tools/polygon/__tests__/index.test.js +0 -65
  307. package/src/tools/polygon/__tests__/line.test.jsx +0 -23
  308. package/src/tools/polygon/__tests__/polygon.test.jsx +0 -44
  309. package/src/tools/polygon/component.jsx +0 -324
  310. package/src/tools/polygon/index.js +0 -52
  311. package/src/tools/polygon/line.jsx +0 -80
  312. package/src/tools/polygon/polygon.jsx +0 -93
  313. package/src/tools/shared/__tests__/arrow-head.test.jsx +0 -33
  314. package/src/tools/shared/arrow-head.jsx +0 -46
  315. package/src/tools/shared/line/__tests__/index.test.jsx +0 -553
  316. package/src/tools/shared/line/__tests__/line-path.test.jsx +0 -56
  317. package/src/tools/shared/line/__tests__/with-root-edge.test.jsx +0 -488
  318. package/src/tools/shared/line/index.jsx +0 -471
  319. package/src/tools/shared/line/line-path.jsx +0 -85
  320. package/src/tools/shared/line/with-root-edge.jsx +0 -97
  321. package/src/tools/shared/point/__tests__/arrow-point.test.jsx +0 -91
  322. package/src/tools/shared/point/__tests__/arrow.test.jsx +0 -469
  323. package/src/tools/shared/point/__tests__/base-point.test.jsx +0 -87
  324. package/src/tools/shared/point/arrow-point.jsx +0 -60
  325. package/src/tools/shared/point/arrow.jsx +0 -40
  326. package/src/tools/shared/point/base-point.jsx +0 -113
  327. package/src/tools/shared/point/index.jsx +0 -58
  328. package/src/tools/shared/styles.js +0 -20
  329. package/src/tools/shared/types.js +0 -8
  330. package/src/undo-redo.jsx +0 -37
  331. package/src/use-debounce.js +0 -13
  332. package/src/utils.js +0 -230
@@ -1,540 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
5
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
6
- var _testUtils = require("@pie-lib/test-utils");
7
- var _react = _interopRequireDefault(require("react"));
8
- var _toolMenu = _interopRequireDefault(require("../tool-menu"));
9
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
10
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
11
- describe('ToolMenu', function () {
12
- var onChange;
13
- var tools = ['one', 'two'];
14
- beforeEach(function () {
15
- onChange = jest.fn();
16
- });
17
- var renderComponent = function renderComponent(extras) {
18
- var defaults = {
19
- classes: {},
20
- className: 'className',
21
- onChange: onChange,
22
- currentTool: tools[0],
23
- tools: tools,
24
- gssLineData: {
25
- selectedTool: 'lineA',
26
- numberOfLines: 2,
27
- lineA: {
28
- lineType: 'Solid'
29
- },
30
- lineB: {
31
- lineType: 'Solid'
32
- }
33
- }
34
- };
35
- var props = _objectSpread(_objectSpread({}, defaults), extras);
36
- return (0, _testUtils.render)(/*#__PURE__*/_react["default"].createElement(_toolMenu["default"], props));
37
- };
38
- describe('rendering', function () {
39
- it('renders without crashing', function () {
40
- var _renderComponent = renderComponent(),
41
- container = _renderComponent.container;
42
- expect(container.firstChild).toBeInTheDocument();
43
- });
44
- it('renders Line A radio button', function () {
45
- var _renderComponent2 = renderComponent(),
46
- getByText = _renderComponent2.getByText;
47
- expect(getByText('Line A')).toBeInTheDocument();
48
- });
49
- it('renders Line B radio button when numberOfLines is 2', function () {
50
- var _renderComponent3 = renderComponent(),
51
- getByText = _renderComponent3.getByText;
52
- expect(getByText('Line B')).toBeInTheDocument();
53
- });
54
- it('does not render Line B radio button when numberOfLines is 1', function () {
55
- var _renderComponent4 = renderComponent({
56
- gssLineData: {
57
- selectedTool: 'lineA',
58
- numberOfLines: 1,
59
- lineA: {
60
- lineType: 'Solid'
61
- },
62
- lineB: {
63
- lineType: 'Solid'
64
- }
65
- }
66
- }),
67
- queryByText = _renderComponent4.queryByText;
68
- expect(queryByText('Line B')).not.toBeInTheDocument();
69
- });
70
- it('renders Solution Set radio button', function () {
71
- var _renderComponent5 = renderComponent(),
72
- getByText = _renderComponent5.getByText;
73
- expect(getByText('Solution Set')).toBeInTheDocument();
74
- });
75
- it('renders Solid and Dashed buttons for Line A', function () {
76
- var _renderComponent6 = renderComponent(),
77
- getAllByText = _renderComponent6.getAllByText;
78
- var solidButtons = getAllByText(/Solid/);
79
- var dashedButtons = getAllByText(/Dashed/);
80
- expect(solidButtons.length).toBeGreaterThan(0);
81
- expect(dashedButtons.length).toBeGreaterThan(0);
82
- });
83
- it('shows checkmark on selected line type for Line A', function () {
84
- var _renderComponent7 = renderComponent({
85
- gssLineData: {
86
- selectedTool: 'lineA',
87
- numberOfLines: 2,
88
- lineA: {
89
- lineType: 'Solid'
90
- },
91
- lineB: {
92
- lineType: 'Dashed'
93
- }
94
- }
95
- }),
96
- getAllByText = _renderComponent7.getAllByText;
97
- var solidButtons = getAllByText(/✔ Solid/);
98
- expect(solidButtons.length).toBeGreaterThan(0);
99
- });
100
- it('disables all controls when disabled prop is true', function () {
101
- var _renderComponent8 = renderComponent({
102
- disabled: true
103
- }),
104
- getAllByRole = _renderComponent8.getAllByRole;
105
- var radios = getAllByRole('radio');
106
- var buttons = getAllByRole('button');
107
- radios.forEach(function (radio) {
108
- expect(radio).toBeDisabled();
109
- });
110
- buttons.forEach(function (button) {
111
- expect(button).toBeDisabled();
112
- });
113
- });
114
- });
115
- describe('onChangeRadioValue', function () {
116
- it('calls onChange with updated selectedTool when lineA radio is clicked', function () {
117
- var _renderComponent9 = renderComponent({
118
- gssLineData: {
119
- selectedTool: 'solutionSet',
120
- numberOfLines: 2,
121
- lineA: {
122
- lineType: 'Solid'
123
- },
124
- lineB: {
125
- lineType: 'Solid'
126
- }
127
- }
128
- }),
129
- getAllByRole = _renderComponent9.getAllByRole;
130
- var radios = getAllByRole('radio');
131
- var lineARadio = radios.find(function (r) {
132
- return r.value === 'lineA';
133
- });
134
- _testUtils.fireEvent.click(lineARadio);
135
- expect(onChange).toHaveBeenCalledTimes(1);
136
- var _onChange$mock$calls$ = (0, _slicedToArray2["default"])(onChange.mock.calls[0], 2),
137
- updatedData = _onChange$mock$calls$[0],
138
- oldSelectedTool = _onChange$mock$calls$[1];
139
- expect(updatedData.selectedTool).toBe('lineA');
140
- expect(oldSelectedTool).toBe('solutionSet');
141
- });
142
- it('calls onChange with updated selectedTool when lineB radio is clicked', function () {
143
- var _renderComponent0 = renderComponent({
144
- gssLineData: {
145
- selectedTool: 'lineA',
146
- numberOfLines: 2,
147
- lineA: {
148
- lineType: 'Solid'
149
- },
150
- lineB: {
151
- lineType: 'Solid'
152
- }
153
- }
154
- }),
155
- getAllByRole = _renderComponent0.getAllByRole;
156
- var radios = getAllByRole('radio');
157
- var lineBRadio = radios.find(function (r) {
158
- return r.value === 'lineB';
159
- });
160
- _testUtils.fireEvent.click(lineBRadio);
161
- expect(onChange).toHaveBeenCalledTimes(1);
162
- var _onChange$mock$calls$2 = (0, _slicedToArray2["default"])(onChange.mock.calls[0], 2),
163
- updatedData = _onChange$mock$calls$2[0],
164
- oldSelectedTool = _onChange$mock$calls$2[1];
165
- expect(updatedData.selectedTool).toBe('lineB');
166
- expect(oldSelectedTool).toBe('lineA');
167
- });
168
- it('calls onChange with updated selectedTool when solutionSet radio is clicked', function () {
169
- var _renderComponent1 = renderComponent({
170
- gssLineData: {
171
- selectedTool: 'lineA',
172
- numberOfLines: 2,
173
- lineA: {
174
- lineType: 'Solid'
175
- },
176
- lineB: {
177
- lineType: 'Solid'
178
- }
179
- }
180
- }),
181
- getAllByRole = _renderComponent1.getAllByRole;
182
- var radios = getAllByRole('radio');
183
- var solutionSetRadio = radios.find(function (r) {
184
- return r.value === 'solutionSet';
185
- });
186
- _testUtils.fireEvent.click(solutionSetRadio);
187
- expect(onChange).toHaveBeenCalledTimes(1);
188
- var _onChange$mock$calls$3 = (0, _slicedToArray2["default"])(onChange.mock.calls[0], 2),
189
- updatedData = _onChange$mock$calls$3[0],
190
- oldSelectedTool = _onChange$mock$calls$3[1];
191
- expect(updatedData.selectedTool).toBe('solutionSet');
192
- expect(oldSelectedTool).toBe('lineA');
193
- });
194
- it('preserves other gssLineData properties when changing selectedTool', function () {
195
- var _renderComponent10 = renderComponent({
196
- gssLineData: {
197
- selectedTool: 'lineA',
198
- numberOfLines: 2,
199
- lineA: {
200
- lineType: 'Dashed'
201
- },
202
- lineB: {
203
- lineType: 'Solid'
204
- }
205
- }
206
- }),
207
- getAllByRole = _renderComponent10.getAllByRole;
208
- var radios = getAllByRole('radio');
209
- var lineBRadio = radios.find(function (r) {
210
- return r.value === 'lineB';
211
- });
212
- _testUtils.fireEvent.click(lineBRadio);
213
- var _onChange$mock$calls$4 = (0, _slicedToArray2["default"])(onChange.mock.calls[0], 1),
214
- updatedData = _onChange$mock$calls$4[0];
215
- expect(updatedData.lineA.lineType).toBe('Dashed');
216
- expect(updatedData.lineB.lineType).toBe('Solid');
217
- expect(updatedData.numberOfLines).toBe(2);
218
- });
219
- it('does not call onChange when disabled', function () {
220
- var _renderComponent11 = renderComponent({
221
- disabled: true,
222
- gssLineData: {
223
- selectedTool: 'lineA',
224
- numberOfLines: 2,
225
- lineA: {
226
- lineType: 'Solid'
227
- },
228
- lineB: {
229
- lineType: 'Solid'
230
- }
231
- }
232
- }),
233
- getAllByRole = _renderComponent11.getAllByRole;
234
- var radios = getAllByRole('radio');
235
- var lineBRadio = radios.find(function (r) {
236
- return r.value === 'lineB';
237
- });
238
-
239
- // Disabled radios should not fire change events
240
- expect(lineBRadio).toBeDisabled();
241
- });
242
- });
243
- describe('lineTypeChange', function () {
244
- it('calls onChange with updated lineType for Line A when Solid button is clicked', function () {
245
- var _renderComponent12 = renderComponent({
246
- gssLineData: {
247
- selectedTool: 'lineA',
248
- numberOfLines: 2,
249
- lineA: {
250
- lineType: 'Dashed'
251
- },
252
- lineB: {
253
- lineType: 'Solid'
254
- }
255
- }
256
- }),
257
- getAllByText = _renderComponent12.getAllByText;
258
- var solidButtons = getAllByText(/Solid/);
259
- // First solid button should be for Line A
260
- _testUtils.fireEvent.click(solidButtons[0]);
261
- expect(onChange).toHaveBeenCalledTimes(1);
262
- var _onChange$mock$calls$5 = (0, _slicedToArray2["default"])(onChange.mock.calls[0], 2),
263
- updatedData = _onChange$mock$calls$5[0],
264
- oldSelectedTool = _onChange$mock$calls$5[1];
265
- expect(updatedData.lineA.lineType).toBe('Solid');
266
- expect(oldSelectedTool).toBe('lineA');
267
- });
268
- it('calls onChange with updated lineType for Line A when Dashed button is clicked', function () {
269
- var _renderComponent13 = renderComponent({
270
- gssLineData: {
271
- selectedTool: 'lineA',
272
- numberOfLines: 2,
273
- lineA: {
274
- lineType: 'Solid'
275
- },
276
- lineB: {
277
- lineType: 'Solid'
278
- }
279
- }
280
- }),
281
- getAllByText = _renderComponent13.getAllByText;
282
- var dashedButtons = getAllByText(/Dashed/);
283
- // First dashed button should be for Line A
284
- _testUtils.fireEvent.click(dashedButtons[0]);
285
- expect(onChange).toHaveBeenCalledTimes(1);
286
- var _onChange$mock$calls$6 = (0, _slicedToArray2["default"])(onChange.mock.calls[0], 2),
287
- updatedData = _onChange$mock$calls$6[0],
288
- oldSelectedTool = _onChange$mock$calls$6[1];
289
- expect(updatedData.lineA.lineType).toBe('Dashed');
290
- expect(oldSelectedTool).toBe('lineA');
291
- });
292
- it('calls onChange with updated lineType for Line B when Solid button is clicked', function () {
293
- var _renderComponent14 = renderComponent({
294
- gssLineData: {
295
- selectedTool: 'lineB',
296
- numberOfLines: 2,
297
- lineA: {
298
- lineType: 'Solid'
299
- },
300
- lineB: {
301
- lineType: 'Dashed'
302
- }
303
- }
304
- }),
305
- getAllByText = _renderComponent14.getAllByText;
306
- var solidButtons = getAllByText(/Solid/);
307
- // Second solid button should be for Line B
308
- _testUtils.fireEvent.click(solidButtons[1]);
309
- expect(onChange).toHaveBeenCalledTimes(1);
310
- var _onChange$mock$calls$7 = (0, _slicedToArray2["default"])(onChange.mock.calls[0], 2),
311
- updatedData = _onChange$mock$calls$7[0],
312
- oldSelectedTool = _onChange$mock$calls$7[1];
313
- expect(updatedData.lineB.lineType).toBe('Solid');
314
- expect(oldSelectedTool).toBe('lineB');
315
- });
316
- it('calls onChange with updated lineType for Line B when Dashed button is clicked', function () {
317
- var _renderComponent15 = renderComponent({
318
- gssLineData: {
319
- selectedTool: 'lineB',
320
- numberOfLines: 2,
321
- lineA: {
322
- lineType: 'Solid'
323
- },
324
- lineB: {
325
- lineType: 'Solid'
326
- }
327
- }
328
- }),
329
- getAllByText = _renderComponent15.getAllByText;
330
- var dashedButtons = getAllByText(/Dashed/);
331
- // Second dashed button should be for Line B
332
- _testUtils.fireEvent.click(dashedButtons[1]);
333
- expect(onChange).toHaveBeenCalledTimes(1);
334
- var _onChange$mock$calls$8 = (0, _slicedToArray2["default"])(onChange.mock.calls[0], 2),
335
- updatedData = _onChange$mock$calls$8[0],
336
- oldSelectedTool = _onChange$mock$calls$8[1];
337
- expect(updatedData.lineB.lineType).toBe('Dashed');
338
- expect(oldSelectedTool).toBe('lineB');
339
- });
340
- it('preserves other line properties when changing Line A lineType', function () {
341
- var _renderComponent16 = renderComponent({
342
- gssLineData: {
343
- selectedTool: 'lineA',
344
- numberOfLines: 2,
345
- lineA: {
346
- lineType: 'Solid'
347
- },
348
- lineB: {
349
- lineType: 'Dashed'
350
- }
351
- }
352
- }),
353
- getAllByText = _renderComponent16.getAllByText;
354
- var dashedButtons = getAllByText(/Dashed/);
355
- _testUtils.fireEvent.click(dashedButtons[0]);
356
- var _onChange$mock$calls$9 = (0, _slicedToArray2["default"])(onChange.mock.calls[0], 1),
357
- updatedData = _onChange$mock$calls$9[0];
358
- expect(updatedData.lineA.lineType).toBe('Dashed');
359
- expect(updatedData.lineB.lineType).toBe('Dashed');
360
- expect(updatedData.selectedTool).toBe('lineA');
361
- expect(updatedData.numberOfLines).toBe(2);
362
- });
363
- it('preserves other line properties when changing Line B lineType', function () {
364
- var _renderComponent17 = renderComponent({
365
- gssLineData: {
366
- selectedTool: 'lineB',
367
- numberOfLines: 2,
368
- lineA: {
369
- lineType: 'Dashed'
370
- },
371
- lineB: {
372
- lineType: 'Solid'
373
- }
374
- }
375
- }),
376
- getAllByText = _renderComponent17.getAllByText;
377
- var dashedButtons = getAllByText(/Dashed/);
378
- _testUtils.fireEvent.click(dashedButtons[1]);
379
- var _onChange$mock$calls$0 = (0, _slicedToArray2["default"])(onChange.mock.calls[0], 1),
380
- updatedData = _onChange$mock$calls$0[0];
381
- expect(updatedData.lineA.lineType).toBe('Dashed');
382
- expect(updatedData.lineB.lineType).toBe('Dashed');
383
- expect(updatedData.selectedTool).toBe('lineB');
384
- expect(updatedData.numberOfLines).toBe(2);
385
- });
386
- it('handles multiple line type changes correctly', function () {
387
- var _renderComponent18 = renderComponent({
388
- gssLineData: {
389
- selectedTool: 'lineA',
390
- numberOfLines: 2,
391
- lineA: {
392
- lineType: 'Solid'
393
- },
394
- lineB: {
395
- lineType: 'Solid'
396
- }
397
- }
398
- }),
399
- getAllByText = _renderComponent18.getAllByText;
400
-
401
- // Change Line A to Dashed
402
- var dashedButtons = getAllByText(/Dashed/);
403
- _testUtils.fireEvent.click(dashedButtons[0]);
404
- expect(onChange).toHaveBeenCalledTimes(1);
405
- var _onChange$mock$calls$1 = (0, _slicedToArray2["default"])(onChange.mock.calls[0], 1),
406
- updatedData = _onChange$mock$calls$1[0];
407
- expect(updatedData.lineA.lineType).toBe('Dashed');
408
-
409
- // Change Line B to Dashed
410
- dashedButtons = getAllByText(/Dashed/);
411
- _testUtils.fireEvent.click(dashedButtons[1]);
412
- expect(onChange).toHaveBeenCalledTimes(2);
413
- var _onChange$mock$calls$10 = (0, _slicedToArray2["default"])(onChange.mock.calls[1], 1);
414
- updatedData = _onChange$mock$calls$10[0];
415
- expect(updatedData.lineB.lineType).toBe('Dashed');
416
- });
417
- it('does not call onChange when line type button is disabled', function () {
418
- var _renderComponent19 = renderComponent({
419
- disabled: true,
420
- gssLineData: {
421
- selectedTool: 'lineA',
422
- numberOfLines: 2,
423
- lineA: {
424
- lineType: 'Solid'
425
- },
426
- lineB: {
427
- lineType: 'Solid'
428
- }
429
- }
430
- }),
431
- getAllByRole = _renderComponent19.getAllByRole;
432
- var buttons = getAllByRole('button');
433
- buttons.forEach(function (button) {
434
- expect(button).toBeDisabled();
435
- });
436
- });
437
- it('maintains correct state when clicking same line type that is already selected', function () {
438
- var _renderComponent20 = renderComponent({
439
- gssLineData: {
440
- selectedTool: 'lineA',
441
- numberOfLines: 2,
442
- lineA: {
443
- lineType: 'Solid'
444
- },
445
- lineB: {
446
- lineType: 'Solid'
447
- }
448
- }
449
- }),
450
- getAllByText = _renderComponent20.getAllByText;
451
- var solidButtons = getAllByText(/Solid/);
452
- _testUtils.fireEvent.click(solidButtons[0]); // Click Solid when already Solid
453
-
454
- expect(onChange).toHaveBeenCalledTimes(1);
455
- var _onChange$mock$calls$11 = (0, _slicedToArray2["default"])(onChange.mock.calls[0], 1),
456
- updatedData = _onChange$mock$calls$11[0];
457
- expect(updatedData.lineA.lineType).toBe('Solid');
458
- });
459
- });
460
- describe('integration tests', function () {
461
- it('allows switching selected tool and changing line type in sequence', function () {
462
- var _renderComponent21 = renderComponent({
463
- gssLineData: {
464
- selectedTool: 'lineA',
465
- numberOfLines: 2,
466
- lineA: {
467
- lineType: 'Solid'
468
- },
469
- lineB: {
470
- lineType: 'Solid'
471
- }
472
- }
473
- }),
474
- getAllByRole = _renderComponent21.getAllByRole,
475
- getAllByText = _renderComponent21.getAllByText;
476
-
477
- // Switch to Line B
478
- var radios = getAllByRole('radio');
479
- var lineBRadio = radios.find(function (r) {
480
- return r.value === 'lineB';
481
- });
482
- _testUtils.fireEvent.click(lineBRadio);
483
- expect(onChange).toHaveBeenCalledTimes(1);
484
- var _onChange$mock$calls$12 = (0, _slicedToArray2["default"])(onChange.mock.calls[0], 1),
485
- updatedData = _onChange$mock$calls$12[0];
486
- expect(updatedData.selectedTool).toBe('lineB');
487
-
488
- // Change Line B to Dashed
489
- var dashedButtons = getAllByText(/Dashed/);
490
- _testUtils.fireEvent.click(dashedButtons[1]);
491
- expect(onChange).toHaveBeenCalledTimes(2);
492
- var _onChange$mock$calls$13 = (0, _slicedToArray2["default"])(onChange.mock.calls[1], 1);
493
- updatedData = _onChange$mock$calls$13[0];
494
- expect(updatedData.lineB.lineType).toBe('Dashed');
495
- });
496
- it('handles complete workflow of switching between all tools and changing line types', function () {
497
- var _renderComponent22 = renderComponent({
498
- gssLineData: {
499
- selectedTool: 'lineA',
500
- numberOfLines: 2,
501
- lineA: {
502
- lineType: 'Solid'
503
- },
504
- lineB: {
505
- lineType: 'Solid'
506
- }
507
- }
508
- }),
509
- getAllByRole = _renderComponent22.getAllByRole,
510
- getAllByText = _renderComponent22.getAllByText;
511
-
512
- // Change Line A to Dashed
513
- var dashedButtons = getAllByText(/Dashed/);
514
- _testUtils.fireEvent.click(dashedButtons[0]);
515
- expect(onChange.mock.calls[0][0].lineA.lineType).toBe('Dashed');
516
-
517
- // Switch to Line B
518
- var radios = getAllByRole('radio');
519
- var lineBRadio = radios.find(function (r) {
520
- return r.value === 'lineB';
521
- });
522
- _testUtils.fireEvent.click(lineBRadio);
523
- expect(onChange.mock.calls[1][0].selectedTool).toBe('lineB');
524
-
525
- // Change Line B to Dashed
526
- dashedButtons = getAllByText(/Dashed/);
527
- _testUtils.fireEvent.click(dashedButtons[1]);
528
- expect(onChange.mock.calls[2][0].lineB.lineType).toBe('Dashed');
529
-
530
- // Switch to Solution Set
531
- var solutionSetRadio = radios.find(function (r) {
532
- return r.value === 'solutionSet';
533
- });
534
- _testUtils.fireEvent.click(solutionSetRadio);
535
- expect(onChange.mock.calls[3][0].selectedTool).toBe('solutionSet');
536
- expect(onChange).toHaveBeenCalledTimes(4);
537
- });
538
- });
539
- });
540
- //# sourceMappingURL=tool-menu.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tool-menu.test.js","names":["_testUtils","require","_react","_interopRequireDefault","_toolMenu","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","describe","onChange","tools","beforeEach","jest","fn","renderComponent","extras","defaults","classes","className","currentTool","gssLineData","selectedTool","numberOfLines","lineA","lineType","lineB","props","render","createElement","it","_renderComponent","container","expect","firstChild","toBeInTheDocument","_renderComponent2","getByText","_renderComponent3","_renderComponent4","queryByText","not","_renderComponent5","_renderComponent6","getAllByText","solidButtons","dashedButtons","toBeGreaterThan","_renderComponent7","_renderComponent8","disabled","getAllByRole","radios","buttons","radio","toBeDisabled","button","_renderComponent9","lineARadio","find","value","fireEvent","click","toHaveBeenCalledTimes","_onChange$mock$calls$","_slicedToArray2","mock","calls","updatedData","oldSelectedTool","toBe","_renderComponent0","lineBRadio","_onChange$mock$calls$2","_renderComponent1","solutionSetRadio","_onChange$mock$calls$3","_renderComponent10","_onChange$mock$calls$4","_renderComponent11","_renderComponent12","_onChange$mock$calls$5","_renderComponent13","_onChange$mock$calls$6","_renderComponent14","_onChange$mock$calls$7","_renderComponent15","_onChange$mock$calls$8","_renderComponent16","_onChange$mock$calls$9","_renderComponent17","_onChange$mock$calls$0","_renderComponent18","_onChange$mock$calls$1","_onChange$mock$calls$10","_renderComponent19","_renderComponent20","_onChange$mock$calls$11","_renderComponent21","_onChange$mock$calls$12","_onChange$mock$calls$13","_renderComponent22"],"sources":["../../src/__tests__/tool-menu.test.jsx"],"sourcesContent":["import { fireEvent, render } from '@pie-lib/test-utils';\nimport React from 'react';\n\nimport ToolMenu from '../tool-menu';\n\ndescribe('ToolMenu', () => {\n let onChange;\n const tools = ['one', 'two'];\n\n beforeEach(() => {\n onChange = jest.fn();\n });\n\n const renderComponent = (extras) => {\n const defaults = {\n classes: {},\n className: 'className',\n onChange,\n currentTool: tools[0],\n tools,\n gssLineData: {\n selectedTool: 'lineA',\n numberOfLines: 2,\n lineA: { lineType: 'Solid' },\n lineB: { lineType: 'Solid' },\n },\n };\n const props = { ...defaults, ...extras };\n return render(<ToolMenu {...props} />);\n };\n\n describe('rendering', () => {\n it('renders without crashing', () => {\n const { container } = renderComponent();\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('renders Line A radio button', () => {\n const { getByText } = renderComponent();\n expect(getByText('Line A')).toBeInTheDocument();\n });\n\n it('renders Line B radio button when numberOfLines is 2', () => {\n const { getByText } = renderComponent();\n expect(getByText('Line B')).toBeInTheDocument();\n });\n\n it('does not render Line B radio button when numberOfLines is 1', () => {\n const { queryByText } = renderComponent({\n gssLineData: {\n selectedTool: 'lineA',\n numberOfLines: 1,\n lineA: { lineType: 'Solid' },\n lineB: { lineType: 'Solid' },\n },\n });\n expect(queryByText('Line B')).not.toBeInTheDocument();\n });\n\n it('renders Solution Set radio button', () => {\n const { getByText } = renderComponent();\n expect(getByText('Solution Set')).toBeInTheDocument();\n });\n\n it('renders Solid and Dashed buttons for Line A', () => {\n const { getAllByText } = renderComponent();\n const solidButtons = getAllByText(/Solid/);\n const dashedButtons = getAllByText(/Dashed/);\n expect(solidButtons.length).toBeGreaterThan(0);\n expect(dashedButtons.length).toBeGreaterThan(0);\n });\n\n it('shows checkmark on selected line type for Line A', () => {\n const { getAllByText } = renderComponent({\n gssLineData: {\n selectedTool: 'lineA',\n numberOfLines: 2,\n lineA: { lineType: 'Solid' },\n lineB: { lineType: 'Dashed' },\n },\n });\n const solidButtons = getAllByText(/✔ Solid/);\n expect(solidButtons.length).toBeGreaterThan(0);\n });\n\n it('disables all controls when disabled prop is true', () => {\n const { getAllByRole } = renderComponent({ disabled: true });\n const radios = getAllByRole('radio');\n const buttons = getAllByRole('button');\n\n radios.forEach((radio) => {\n expect(radio).toBeDisabled();\n });\n\n buttons.forEach((button) => {\n expect(button).toBeDisabled();\n });\n });\n });\n\n describe('onChangeRadioValue', () => {\n it('calls onChange with updated selectedTool when lineA radio is clicked', () => {\n const { getAllByRole } = renderComponent({\n gssLineData: {\n selectedTool: 'solutionSet',\n numberOfLines: 2,\n lineA: { lineType: 'Solid' },\n lineB: { lineType: 'Solid' },\n },\n });\n\n const radios = getAllByRole('radio');\n const lineARadio = radios.find((r) => r.value === 'lineA');\n\n fireEvent.click(lineARadio);\n\n expect(onChange).toHaveBeenCalledTimes(1);\n const [updatedData, oldSelectedTool] = onChange.mock.calls[0];\n expect(updatedData.selectedTool).toBe('lineA');\n expect(oldSelectedTool).toBe('solutionSet');\n });\n\n it('calls onChange with updated selectedTool when lineB radio is clicked', () => {\n const { getAllByRole } = renderComponent({\n gssLineData: {\n selectedTool: 'lineA',\n numberOfLines: 2,\n lineA: { lineType: 'Solid' },\n lineB: { lineType: 'Solid' },\n },\n });\n\n const radios = getAllByRole('radio');\n const lineBRadio = radios.find((r) => r.value === 'lineB');\n\n fireEvent.click(lineBRadio);\n\n expect(onChange).toHaveBeenCalledTimes(1);\n const [updatedData, oldSelectedTool] = onChange.mock.calls[0];\n expect(updatedData.selectedTool).toBe('lineB');\n expect(oldSelectedTool).toBe('lineA');\n });\n\n it('calls onChange with updated selectedTool when solutionSet radio is clicked', () => {\n const { getAllByRole } = renderComponent({\n gssLineData: {\n selectedTool: 'lineA',\n numberOfLines: 2,\n lineA: { lineType: 'Solid' },\n lineB: { lineType: 'Solid' },\n },\n });\n\n const radios = getAllByRole('radio');\n const solutionSetRadio = radios.find((r) => r.value === 'solutionSet');\n\n fireEvent.click(solutionSetRadio);\n\n expect(onChange).toHaveBeenCalledTimes(1);\n const [updatedData, oldSelectedTool] = onChange.mock.calls[0];\n expect(updatedData.selectedTool).toBe('solutionSet');\n expect(oldSelectedTool).toBe('lineA');\n });\n\n it('preserves other gssLineData properties when changing selectedTool', () => {\n const { getAllByRole } = renderComponent({\n gssLineData: {\n selectedTool: 'lineA',\n numberOfLines: 2,\n lineA: { lineType: 'Dashed' },\n lineB: { lineType: 'Solid' },\n },\n });\n\n const radios = getAllByRole('radio');\n const lineBRadio = radios.find((r) => r.value === 'lineB');\n\n fireEvent.click(lineBRadio);\n\n const [updatedData] = onChange.mock.calls[0];\n expect(updatedData.lineA.lineType).toBe('Dashed');\n expect(updatedData.lineB.lineType).toBe('Solid');\n expect(updatedData.numberOfLines).toBe(2);\n });\n\n it('does not call onChange when disabled', () => {\n const { getAllByRole } = renderComponent({\n disabled: true,\n gssLineData: {\n selectedTool: 'lineA',\n numberOfLines: 2,\n lineA: { lineType: 'Solid' },\n lineB: { lineType: 'Solid' },\n },\n });\n\n const radios = getAllByRole('radio');\n const lineBRadio = radios.find((r) => r.value === 'lineB');\n\n // Disabled radios should not fire change events\n expect(lineBRadio).toBeDisabled();\n });\n });\n\n describe('lineTypeChange', () => {\n it('calls onChange with updated lineType for Line A when Solid button is clicked', () => {\n const { getAllByText } = renderComponent({\n gssLineData: {\n selectedTool: 'lineA',\n numberOfLines: 2,\n lineA: { lineType: 'Dashed' },\n lineB: { lineType: 'Solid' },\n },\n });\n\n const solidButtons = getAllByText(/Solid/);\n // First solid button should be for Line A\n fireEvent.click(solidButtons[0]);\n\n expect(onChange).toHaveBeenCalledTimes(1);\n const [updatedData, oldSelectedTool] = onChange.mock.calls[0];\n expect(updatedData.lineA.lineType).toBe('Solid');\n expect(oldSelectedTool).toBe('lineA');\n });\n\n it('calls onChange with updated lineType for Line A when Dashed button is clicked', () => {\n const { getAllByText } = renderComponent({\n gssLineData: {\n selectedTool: 'lineA',\n numberOfLines: 2,\n lineA: { lineType: 'Solid' },\n lineB: { lineType: 'Solid' },\n },\n });\n\n const dashedButtons = getAllByText(/Dashed/);\n // First dashed button should be for Line A\n fireEvent.click(dashedButtons[0]);\n\n expect(onChange).toHaveBeenCalledTimes(1);\n const [updatedData, oldSelectedTool] = onChange.mock.calls[0];\n expect(updatedData.lineA.lineType).toBe('Dashed');\n expect(oldSelectedTool).toBe('lineA');\n });\n\n it('calls onChange with updated lineType for Line B when Solid button is clicked', () => {\n const { getAllByText } = renderComponent({\n gssLineData: {\n selectedTool: 'lineB',\n numberOfLines: 2,\n lineA: { lineType: 'Solid' },\n lineB: { lineType: 'Dashed' },\n },\n });\n\n const solidButtons = getAllByText(/Solid/);\n // Second solid button should be for Line B\n fireEvent.click(solidButtons[1]);\n\n expect(onChange).toHaveBeenCalledTimes(1);\n const [updatedData, oldSelectedTool] = onChange.mock.calls[0];\n expect(updatedData.lineB.lineType).toBe('Solid');\n expect(oldSelectedTool).toBe('lineB');\n });\n\n it('calls onChange with updated lineType for Line B when Dashed button is clicked', () => {\n const { getAllByText } = renderComponent({\n gssLineData: {\n selectedTool: 'lineB',\n numberOfLines: 2,\n lineA: { lineType: 'Solid' },\n lineB: { lineType: 'Solid' },\n },\n });\n\n const dashedButtons = getAllByText(/Dashed/);\n // Second dashed button should be for Line B\n fireEvent.click(dashedButtons[1]);\n\n expect(onChange).toHaveBeenCalledTimes(1);\n const [updatedData, oldSelectedTool] = onChange.mock.calls[0];\n expect(updatedData.lineB.lineType).toBe('Dashed');\n expect(oldSelectedTool).toBe('lineB');\n });\n\n it('preserves other line properties when changing Line A lineType', () => {\n const { getAllByText } = renderComponent({\n gssLineData: {\n selectedTool: 'lineA',\n numberOfLines: 2,\n lineA: { lineType: 'Solid' },\n lineB: { lineType: 'Dashed' },\n },\n });\n\n const dashedButtons = getAllByText(/Dashed/);\n fireEvent.click(dashedButtons[0]);\n\n const [updatedData] = onChange.mock.calls[0];\n expect(updatedData.lineA.lineType).toBe('Dashed');\n expect(updatedData.lineB.lineType).toBe('Dashed');\n expect(updatedData.selectedTool).toBe('lineA');\n expect(updatedData.numberOfLines).toBe(2);\n });\n\n it('preserves other line properties when changing Line B lineType', () => {\n const { getAllByText } = renderComponent({\n gssLineData: {\n selectedTool: 'lineB',\n numberOfLines: 2,\n lineA: { lineType: 'Dashed' },\n lineB: { lineType: 'Solid' },\n },\n });\n\n const dashedButtons = getAllByText(/Dashed/);\n fireEvent.click(dashedButtons[1]);\n\n const [updatedData] = onChange.mock.calls[0];\n expect(updatedData.lineA.lineType).toBe('Dashed');\n expect(updatedData.lineB.lineType).toBe('Dashed');\n expect(updatedData.selectedTool).toBe('lineB');\n expect(updatedData.numberOfLines).toBe(2);\n });\n\n it('handles multiple line type changes correctly', () => {\n const { getAllByText } = renderComponent({\n gssLineData: {\n selectedTool: 'lineA',\n numberOfLines: 2,\n lineA: { lineType: 'Solid' },\n lineB: { lineType: 'Solid' },\n },\n });\n\n // Change Line A to Dashed\n let dashedButtons = getAllByText(/Dashed/);\n fireEvent.click(dashedButtons[0]);\n\n expect(onChange).toHaveBeenCalledTimes(1);\n let [updatedData] = onChange.mock.calls[0];\n expect(updatedData.lineA.lineType).toBe('Dashed');\n\n // Change Line B to Dashed\n dashedButtons = getAllByText(/Dashed/);\n fireEvent.click(dashedButtons[1]);\n\n expect(onChange).toHaveBeenCalledTimes(2);\n [updatedData] = onChange.mock.calls[1];\n expect(updatedData.lineB.lineType).toBe('Dashed');\n });\n\n it('does not call onChange when line type button is disabled', () => {\n const { getAllByRole } = renderComponent({\n disabled: true,\n gssLineData: {\n selectedTool: 'lineA',\n numberOfLines: 2,\n lineA: { lineType: 'Solid' },\n lineB: { lineType: 'Solid' },\n },\n });\n\n const buttons = getAllByRole('button');\n\n buttons.forEach((button) => {\n expect(button).toBeDisabled();\n });\n });\n\n it('maintains correct state when clicking same line type that is already selected', () => {\n const { getAllByText } = renderComponent({\n gssLineData: {\n selectedTool: 'lineA',\n numberOfLines: 2,\n lineA: { lineType: 'Solid' },\n lineB: { lineType: 'Solid' },\n },\n });\n\n const solidButtons = getAllByText(/Solid/);\n fireEvent.click(solidButtons[0]); // Click Solid when already Solid\n\n expect(onChange).toHaveBeenCalledTimes(1);\n const [updatedData] = onChange.mock.calls[0];\n expect(updatedData.lineA.lineType).toBe('Solid');\n });\n });\n\n describe('integration tests', () => {\n it('allows switching selected tool and changing line type in sequence', () => {\n const { getAllByRole, getAllByText } = renderComponent({\n gssLineData: {\n selectedTool: 'lineA',\n numberOfLines: 2,\n lineA: { lineType: 'Solid' },\n lineB: { lineType: 'Solid' },\n },\n });\n\n // Switch to Line B\n const radios = getAllByRole('radio');\n const lineBRadio = radios.find((r) => r.value === 'lineB');\n fireEvent.click(lineBRadio);\n\n expect(onChange).toHaveBeenCalledTimes(1);\n let [updatedData] = onChange.mock.calls[0];\n expect(updatedData.selectedTool).toBe('lineB');\n\n // Change Line B to Dashed\n const dashedButtons = getAllByText(/Dashed/);\n fireEvent.click(dashedButtons[1]);\n\n expect(onChange).toHaveBeenCalledTimes(2);\n [updatedData] = onChange.mock.calls[1];\n expect(updatedData.lineB.lineType).toBe('Dashed');\n });\n\n it('handles complete workflow of switching between all tools and changing line types', () => {\n const { getAllByRole, getAllByText } = renderComponent({\n gssLineData: {\n selectedTool: 'lineA',\n numberOfLines: 2,\n lineA: { lineType: 'Solid' },\n lineB: { lineType: 'Solid' },\n },\n });\n\n // Change Line A to Dashed\n let dashedButtons = getAllByText(/Dashed/);\n fireEvent.click(dashedButtons[0]);\n expect(onChange.mock.calls[0][0].lineA.lineType).toBe('Dashed');\n\n // Switch to Line B\n const radios = getAllByRole('radio');\n const lineBRadio = radios.find((r) => r.value === 'lineB');\n fireEvent.click(lineBRadio);\n expect(onChange.mock.calls[1][0].selectedTool).toBe('lineB');\n\n // Change Line B to Dashed\n dashedButtons = getAllByText(/Dashed/);\n fireEvent.click(dashedButtons[1]);\n expect(onChange.mock.calls[2][0].lineB.lineType).toBe('Dashed');\n\n // Switch to Solution Set\n const solutionSetRadio = radios.find((r) => r.value === 'solutionSet');\n fireEvent.click(solutionSetRadio);\n expect(onChange.mock.calls[3][0].selectedTool).toBe('solutionSet');\n\n expect(onChange).toHaveBeenCalledTimes(4);\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -1,31 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
5
- var _testUtils = require("@pie-lib/test-utils");
6
- var _react = _interopRequireDefault(require("react"));
7
- var _undoRedo = _interopRequireDefault(require("../undo-redo"));
8
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
9
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
10
- describe('UndoRedo', function () {
11
- var onUndo = jest.fn();
12
- var onRedo = jest.fn();
13
- var onReset = jest.fn();
14
- var renderComponent = function renderComponent(extras) {
15
- var defaults = {
16
- onUndo: onUndo,
17
- onRedo: onRedo,
18
- onReset: onReset
19
- };
20
- var props = _objectSpread(_objectSpread({}, defaults), extras);
21
- return (0, _testUtils.render)(/*#__PURE__*/_react["default"].createElement(_undoRedo["default"], props));
22
- };
23
- describe('rendering', function () {
24
- it('renders without crashing', function () {
25
- var _renderComponent = renderComponent(),
26
- container = _renderComponent.container;
27
- expect(container.firstChild).toBeInTheDocument();
28
- });
29
- });
30
- });
31
- //# sourceMappingURL=undo-redo.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"undo-redo.test.js","names":["_testUtils","require","_react","_interopRequireDefault","_undoRedo","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","describe","onUndo","jest","fn","onRedo","onReset","renderComponent","extras","defaults","props","render","createElement","it","_renderComponent","container","expect","firstChild","toBeInTheDocument"],"sources":["../../src/__tests__/undo-redo.test.jsx"],"sourcesContent":["import { render } from '@pie-lib/test-utils';\nimport React from 'react';\nimport UndoRedo from '../undo-redo';\n\ndescribe('UndoRedo', () => {\n let onUndo = jest.fn();\n let onRedo = jest.fn();\n let onReset = jest.fn();\n\n const renderComponent = (extras) => {\n const defaults = {\n onUndo,\n onRedo,\n onReset,\n };\n const props = { ...defaults, ...extras };\n return render(<UndoRedo {...props} />);\n };\n\n describe('rendering', () => {\n it('renders without crashing', () => {\n const { container } = renderComponent();\n expect(container.firstChild).toBeInTheDocument();\n });\n });\n});\n"],"mappings":";;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,SAAA,GAAAD,sBAAA,CAAAF,OAAA;AAAoC,SAAAI,QAAAC,CAAA,EAAAC,CAAA,QAAAC,CAAA,GAAAC,MAAA,CAAAC,IAAA,CAAAJ,CAAA,OAAAG,MAAA,CAAAE,qBAAA,QAAAC,CAAA,GAAAH,MAAA,CAAAE,qBAAA,CAAAL,CAAA,GAAAC,CAAA,KAAAK,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAN,CAAA,WAAAE,MAAA,CAAAK,wBAAA,CAAAR,CAAA,EAAAC,CAAA,EAAAQ,UAAA,OAAAP,CAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,CAAA,EAAAI,CAAA,YAAAJ,CAAA;AAAA,SAAAU,cAAAZ,CAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAY,SAAA,CAAAC,MAAA,EAAAb,CAAA,UAAAC,CAAA,WAAAW,SAAA,CAAAZ,CAAA,IAAAY,SAAA,CAAAZ,CAAA,QAAAA,CAAA,OAAAF,OAAA,CAAAI,MAAA,CAAAD,CAAA,OAAAa,OAAA,WAAAd,CAAA,QAAAe,gBAAA,aAAAhB,CAAA,EAAAC,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAE,MAAA,CAAAc,yBAAA,GAAAd,MAAA,CAAAe,gBAAA,CAAAlB,CAAA,EAAAG,MAAA,CAAAc,yBAAA,CAAAf,CAAA,KAAAH,OAAA,CAAAI,MAAA,CAAAD,CAAA,GAAAa,OAAA,WAAAd,CAAA,IAAAE,MAAA,CAAAgB,cAAA,CAAAnB,CAAA,EAAAC,CAAA,EAAAE,MAAA,CAAAK,wBAAA,CAAAN,CAAA,EAAAD,CAAA,iBAAAD,CAAA;AAEpCoB,QAAQ,CAAC,UAAU,EAAE,YAAM;EACzB,IAAIC,MAAM,GAAGC,IAAI,CAACC,EAAE,CAAC,CAAC;EACtB,IAAIC,MAAM,GAAGF,IAAI,CAACC,EAAE,CAAC,CAAC;EACtB,IAAIE,OAAO,GAAGH,IAAI,CAACC,EAAE,CAAC,CAAC;EAEvB,IAAMG,eAAe,GAAG,SAAlBA,eAAeA,CAAIC,MAAM,EAAK;IAClC,IAAMC,QAAQ,GAAG;MACfP,MAAM,EAANA,MAAM;MACNG,MAAM,EAANA,MAAM;MACNC,OAAO,EAAPA;IACF,CAAC;IACD,IAAMI,KAAK,GAAAjB,aAAA,CAAAA,aAAA,KAAQgB,QAAQ,GAAKD,MAAM,CAAE;IACxC,OAAO,IAAAG,iBAAM,eAAClC,MAAA,YAAAmC,aAAA,CAACjC,SAAA,WAAQ,EAAK+B,KAAQ,CAAC,CAAC;EACxC,CAAC;EAEDT,QAAQ,CAAC,WAAW,EAAE,YAAM;IAC1BY,EAAE,CAAC,0BAA0B,EAAE,YAAM;MACnC,IAAAC,gBAAA,GAAsBP,eAAe,CAAC,CAAC;QAA/BQ,SAAS,GAAAD,gBAAA,CAATC,SAAS;MACjBC,MAAM,CAACD,SAAS,CAACE,UAAU,CAAC,CAACC,iBAAiB,CAAC,CAAC;IAClD,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}