@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,129 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = exports.GraphContainer = void 0;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
12
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
13
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
14
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
16
+ var _reactRedux = require("react-redux");
17
+ var _react = _interopRequireDefault(require("react"));
18
+ var _redux = require("redux");
19
+ var _reducer = _interopRequireDefault(require("./reducer"));
20
+ var _actions = require("./actions");
21
+ var _propTypes = _interopRequireDefault(require("prop-types"));
22
+ var _lodashEs = require("lodash-es");
23
+ var _reduxUndo = require("redux-undo");
24
+ var _graphWithControls = _interopRequireDefault(require("../graph-with-controls"));
25
+ var _middleware = require("./middleware");
26
+ var _excluded = ["onChangeMarks", "marks"];
27
+ function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
28
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
29
+ var mapStateToProps = function mapStateToProps(s) {
30
+ return {
31
+ marks: s.marks.present
32
+ };
33
+ };
34
+ var mapDispatchToProps = function mapDispatchToProps(dispatch) {
35
+ return {
36
+ onChangeMarks: function onChangeMarks(m) {
37
+ return dispatch((0, _actions.changeMarks)(m));
38
+ },
39
+ onUndo: function onUndo() {
40
+ return dispatch(_reduxUndo.ActionCreators.undo());
41
+ },
42
+ onRedo: function onRedo() {
43
+ return dispatch(_reduxUndo.ActionCreators.redo());
44
+ },
45
+ onReset: function onReset() {
46
+ return dispatch((0, _actions.changeMarks)([]));
47
+ }
48
+ };
49
+ };
50
+ var GraphContainer = exports.GraphContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(_graphWithControls["default"]);
51
+
52
+ /**
53
+ * The graph component entry point with undo/redo
54
+ * Redux is an implementation detail, hide it in the react component.
55
+ */
56
+ var Root = /*#__PURE__*/function (_React$Component) {
57
+ function Root(props) {
58
+ var _this;
59
+ (0, _classCallCheck2["default"])(this, Root);
60
+ _this = _callSuper(this, Root, [props]);
61
+ (0, _defineProperty2["default"])(_this, "onStoreChange", function () {
62
+ var _this$props = _this.props,
63
+ marks = _this$props.marks,
64
+ onChangeMarks = _this$props.onChangeMarks;
65
+ var storeState = _this.store.getState();
66
+ var lastAction = (0, _middleware.getLastAction)();
67
+ var isUndoOperation = lastAction.type.includes('UNDO') || lastAction.type.includes('REDO');
68
+ if (!(0, _lodashEs.isEqual)(storeState.marks.present, marks)) {
69
+ onChangeMarks(storeState.marks.present, isUndoOperation);
70
+ }
71
+ });
72
+ var r = (0, _reducer["default"])();
73
+ _this.store = (0, _redux.createStore)(r, {
74
+ marks: props.marks
75
+ }, (0, _redux.applyMiddleware)(_middleware.lastActionMiddleware));
76
+ _this.store.subscribe(_this.onStoreChange);
77
+ return _this;
78
+ }
79
+ (0, _inherits2["default"])(Root, _React$Component);
80
+ return (0, _createClass2["default"])(Root, [{
81
+ key: "componentDidUpdate",
82
+ value: function componentDidUpdate(prevProps) {
83
+ var marks = this.props.marks;
84
+ var storeState = this.store.getState();
85
+ if ((0, _lodashEs.isEqual)(storeState.marks.present, marks)) {
86
+ return;
87
+ }
88
+ if (!(0, _lodashEs.isEqual)(prevProps.marks, marks)) {
89
+ // Don't dispatch marks that have correctness (evaluate mode marks) into the undo history.
90
+ // These marks are already handled in render() via the correctnessSet path and bypass the
91
+ // Redux store entirely. Dispatching them would pollute the undo history and cause the graph
92
+ // to show the correct answer when the user presses undo after returning to gather mode.
93
+ var hasCorrectness = marks && marks.find(function (m) {
94
+ return m.correctness;
95
+ });
96
+ if (!hasCorrectness) {
97
+ this.store.dispatch((0, _actions.changeMarks)(marks));
98
+ }
99
+ }
100
+ }
101
+ }, {
102
+ key: "render",
103
+ value: function render() {
104
+ // eslint-disable-next-line no-unused-vars
105
+ var _this$props2 = this.props,
106
+ onChangeMarks = _this$props2.onChangeMarks,
107
+ marks = _this$props2.marks,
108
+ rest = (0, _objectWithoutProperties2["default"])(_this$props2, _excluded);
109
+ var correctnessSet = marks && marks.find(function (m) {
110
+ return m.correctness;
111
+ });
112
+ if (correctnessSet) {
113
+ return /*#__PURE__*/_react["default"].createElement(_graphWithControls["default"], (0, _extends2["default"])({}, rest, {
114
+ marks: marks,
115
+ disabled: correctnessSet
116
+ }));
117
+ }
118
+ return /*#__PURE__*/_react["default"].createElement(_reactRedux.Provider, {
119
+ store: this.store
120
+ }, /*#__PURE__*/_react["default"].createElement(GraphContainer, rest));
121
+ }
122
+ }]);
123
+ }(_react["default"].Component);
124
+ (0, _defineProperty2["default"])(Root, "propTypes", {
125
+ onChangeMarks: _propTypes["default"].func,
126
+ marks: _propTypes["default"].array
127
+ });
128
+ var _default = exports["default"] = Root;
129
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["_reactRedux","require","_react","_interopRequireDefault","_redux","_reducer","_actions","_propTypes","_lodashEs","_reduxUndo","_graphWithControls","_middleware","_excluded","_callSuper","t","o","e","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","prototype","valueOf","call","mapStateToProps","s","marks","present","mapDispatchToProps","dispatch","onChangeMarks","m","changeMarks","onUndo","ActionCreators","undo","onRedo","redo","onReset","GraphContainer","exports","connect","GraphWithControls","Root","_React$Component","props","_this","_classCallCheck2","_defineProperty2","_this$props","storeState","store","getState","lastAction","getLastAction","isUndoOperation","type","includes","isEqual","r","reducer","createStore","applyMiddleware","lastActionMiddleware","subscribe","onStoreChange","_inherits2","_createClass2","key","value","componentDidUpdate","prevProps","hasCorrectness","find","correctness","render","_this$props2","rest","_objectWithoutProperties2","correctnessSet","createElement","_extends2","disabled","Provider","React","Component","PropTypes","func","array","_default"],"sources":["../../src/container/index.jsx"],"sourcesContent":["import { connect, Provider } from 'react-redux';\nimport React from 'react';\nimport { applyMiddleware, createStore } from 'redux';\nimport reducer from './reducer';\nimport { changeMarks } from './actions';\nimport PropTypes from 'prop-types';\nimport { isEqual } from 'lodash-es';\nimport { ActionCreators } from 'redux-undo';\nimport GraphWithControls from '../graph-with-controls';\nimport { getLastAction, lastActionMiddleware } from './middleware';\n\nconst mapStateToProps = (s) => ({\n marks: s.marks.present,\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n onChangeMarks: (m) => dispatch(changeMarks(m)),\n onUndo: () => dispatch(ActionCreators.undo()),\n onRedo: () => dispatch(ActionCreators.redo()),\n onReset: () => dispatch(changeMarks([])),\n});\n\nexport const GraphContainer = connect(mapStateToProps, mapDispatchToProps)(GraphWithControls);\n\n/**\n * The graph component entry point with undo/redo\n * Redux is an implementation detail, hide it in the react component.\n */\nclass Root extends React.Component {\n static propTypes = {\n onChangeMarks: PropTypes.func,\n marks: PropTypes.array,\n };\n\n constructor(props) {\n super(props);\n\n const r = reducer();\n this.store = createStore(r, { marks: props.marks }, applyMiddleware(lastActionMiddleware));\n\n this.store.subscribe(this.onStoreChange);\n }\n\n componentDidUpdate(prevProps) {\n const { marks } = this.props;\n const storeState = this.store.getState();\n\n if (isEqual(storeState.marks.present, marks)) {\n return;\n }\n\n if (!isEqual(prevProps.marks, marks)) {\n // Don't dispatch marks that have correctness (evaluate mode marks) into the undo history.\n // These marks are already handled in render() via the correctnessSet path and bypass the\n // Redux store entirely. Dispatching them would pollute the undo history and cause the graph\n // to show the correct answer when the user presses undo after returning to gather mode.\n const hasCorrectness = marks && marks.find((m) => m.correctness);\n\n if (!hasCorrectness) {\n this.store.dispatch(changeMarks(marks));\n }\n }\n }\n\n onStoreChange = () => {\n const { marks, onChangeMarks } = this.props;\n const storeState = this.store.getState();\n const lastAction = getLastAction();\n const isUndoOperation = lastAction.type.includes('UNDO') || lastAction.type.includes('REDO');\n\n if (!isEqual(storeState.marks.present, marks)) {\n onChangeMarks(storeState.marks.present, isUndoOperation);\n }\n };\n\n render() {\n // eslint-disable-next-line no-unused-vars\n const { onChangeMarks, marks, ...rest } = this.props;\n const correctnessSet = marks && marks.find((m) => m.correctness);\n\n if (correctnessSet) {\n return <GraphWithControls {...rest} marks={marks} disabled={correctnessSet} />;\n }\n\n return (\n <Provider store={this.store}>\n <GraphContainer {...rest} />\n </Provider>\n );\n }\n}\n\nexport default Root;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ var marks = function marks() {
8
+ var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
9
+ var action = arguments.length > 1 ? arguments[1] : undefined;
10
+ switch (action.type) {
11
+ case 'CHANGE_MARKS':
12
+ if (Array.isArray(action.marks)) {
13
+ return action.marks;
14
+ } else {
15
+ throw new Error('marks must be an array');
16
+ }
17
+ default:
18
+ return state;
19
+ }
20
+ };
21
+ var _default = exports["default"] = marks;
22
+ //# sourceMappingURL=marks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"marks.js","names":["marks","state","arguments","length","undefined","action","type","Array","isArray","Error","_default","exports"],"sources":["../../src/container/marks.js"],"sourcesContent":["const marks = (state = [], action) => {\n switch (action.type) {\n case 'CHANGE_MARKS':\n if (Array.isArray(action.marks)) {\n return action.marks;\n } else {\n throw new Error('marks must be an array');\n }\n default:\n return state;\n }\n};\n\nexport default marks;\n"],"mappings":";;;;;;AAAA,IAAMA,KAAK,GAAG,SAARA,KAAKA,CAAA,EAA2B;EAAA,IAAvBC,KAAK,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EAAA,IAAEG,MAAM,GAAAH,SAAA,CAAAC,MAAA,OAAAD,SAAA,MAAAE,SAAA;EAC/B,QAAQC,MAAM,CAACC,IAAI;IACjB,KAAK,cAAc;MACjB,IAAIC,KAAK,CAACC,OAAO,CAACH,MAAM,CAACL,KAAK,CAAC,EAAE;QAC/B,OAAOK,MAAM,CAACL,KAAK;MACrB,CAAC,MAAM;QACL,MAAM,IAAIS,KAAK,CAAC,wBAAwB,CAAC;MAC3C;IACF;MACE,OAAOR,KAAK;EAChB;AACF,CAAC;AAAC,IAAAS,QAAA,GAAAC,OAAA,cAEaX,KAAK","ignoreList":[]}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.lastActionMiddleware = exports.getLastAction = void 0;
7
+ var lastAction = null;
8
+ var getLastAction = exports.getLastAction = function getLastAction() {
9
+ return lastAction;
10
+ };
11
+ var lastActionMiddleware = exports.lastActionMiddleware = function lastActionMiddleware() {
12
+ return function (next) {
13
+ return function (action) {
14
+ lastAction = action;
15
+ return next(action);
16
+ };
17
+ };
18
+ };
19
+ //# sourceMappingURL=middleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware.js","names":["lastAction","getLastAction","exports","lastActionMiddleware","next","action"],"sources":["../../src/container/middleware.js"],"sourcesContent":["let lastAction = null;\nexport const getLastAction = () => lastAction;\n\nexport const lastActionMiddleware = () => (next) => (action) => {\n lastAction = action;\n return next(action);\n};\n"],"mappings":";;;;;;AAAA,IAAIA,UAAU,GAAG,IAAI;AACd,IAAMC,aAAa,GAAAC,OAAA,CAAAD,aAAA,GAAG,SAAhBA,aAAaA,CAAA;EAAA,OAASD,UAAU;AAAA;AAEtC,IAAMG,oBAAoB,GAAAD,OAAA,CAAAC,oBAAA,GAAG,SAAvBA,oBAAoBA,CAAA;EAAA,OAAS,UAACC,IAAI;IAAA,OAAK,UAACC,MAAM,EAAK;MAC9DL,UAAU,GAAGK,MAAM;MACnB,OAAOD,IAAI,CAACC,MAAM,CAAC;IACrB,CAAC;EAAA;AAAA","ignoreList":[]}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _redux = require("redux");
9
+ var _marks = _interopRequireDefault(require("./marks"));
10
+ var _reduxUndo = _interopRequireDefault(require("redux-undo"));
11
+ var _default = exports["default"] = function _default() {
12
+ return (0, _redux.combineReducers)({
13
+ marks: (0, _reduxUndo["default"])(_marks["default"], {
14
+ debug: false
15
+ })
16
+ });
17
+ };
18
+ //# sourceMappingURL=reducer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reducer.js","names":["_redux","require","_marks","_interopRequireDefault","_reduxUndo","_default","exports","combineReducers","marks","undoable","debug"],"sources":["../../src/container/reducer.js"],"sourcesContent":["import { combineReducers } from 'redux';\nimport marks from './marks';\nimport undoable from 'redux-undo';\n\nexport default () => combineReducers({ marks: undoable(marks, { debug: false }) });\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,UAAA,GAAAD,sBAAA,CAAAF,OAAA;AAAkC,IAAAI,QAAA,GAAAC,OAAA,cAEnB,SAAAD,SAAA;EAAA,OAAM,IAAAE,sBAAe,EAAC;IAAEC,KAAK,EAAE,IAAAC,qBAAQ,EAACD,iBAAK,EAAE;MAAEE,KAAK,EAAE;IAAM,CAAC;EAAE,CAAC,CAAC;AAAA","ignoreList":[]}
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.getLabelPosition = exports["default"] = exports.CoordinatesLabel = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+ var _plot = require("@pie-lib/plot");
12
+ var _renderUi = require("@pie-lib/render-ui");
13
+ var _styles = require("@mui/material/styles");
14
+ var _InputBase = _interopRequireDefault(require("@mui/material/InputBase"));
15
+ var _utils = require("./utils");
16
+ 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; }
17
+ 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; }
18
+ var StyledInputBase = (0, _styles.styled)(_InputBase["default"])(function (_ref) {
19
+ var theme = _ref.theme;
20
+ return {
21
+ fontFamily: theme.typography.fontFamily,
22
+ fontSize: theme.typography.fontSize,
23
+ borderRadius: '8px',
24
+ background: theme.palette.common.white,
25
+ color: _renderUi.color.defaults.BLACK,
26
+ '& .MuiInputBase-input': {
27
+ padding: 0
28
+ }
29
+ };
30
+ });
31
+ var getLabelPosition = exports.getLabelPosition = function getLabelPosition(graphProps, x, y, labelLength) {
32
+ var scale = graphProps.scale,
33
+ domain = graphProps.domain,
34
+ range = graphProps.range;
35
+ // treat corner cases for maximum and minimum
36
+ var topShift = y === range.min ? 16 : y === range.max ? 0 : 8;
37
+ var leftShift = 10;
38
+ var rightEdge = scale.x(x) + labelLength + leftShift;
39
+ if (rightEdge >= scale.x(domain.max)) {
40
+ return {
41
+ left: scale.x(x) - leftShift - labelLength,
42
+ top: scale.y(y) - topShift
43
+ };
44
+ }
45
+ return {
46
+ left: scale.x(x) + leftShift,
47
+ top: scale.y(y) - topShift
48
+ };
49
+ };
50
+ var CoordinatesLabel = exports.CoordinatesLabel = function CoordinatesLabel(_ref2) {
51
+ var x = _ref2.x,
52
+ y = _ref2.y,
53
+ graphProps = _ref2.graphProps;
54
+ var label = "(".concat((0, _utils.roundNumber)(x), ", ").concat((0, _utils.roundNumber)(y), ")");
55
+ var labelLength = (label.length || 0) * 6;
56
+ var labelPosition = getLabelPosition(graphProps, x, y, labelLength);
57
+ var style = _objectSpread({
58
+ position: 'absolute',
59
+ pointerEvents: 'auto',
60
+ width: labelLength,
61
+ padding: 0
62
+ }, labelPosition);
63
+ return /*#__PURE__*/_react["default"].createElement(StyledInputBase, {
64
+ style: style,
65
+ value: label,
66
+ inputProps: {
67
+ ariaLabel: 'naked'
68
+ }
69
+ });
70
+ };
71
+ CoordinatesLabel.propTypes = {
72
+ graphProps: _plot.types.GraphPropsType,
73
+ x: _propTypes["default"].number,
74
+ y: _propTypes["default"].number
75
+ };
76
+ var _default = exports["default"] = CoordinatesLabel;
77
+ //# sourceMappingURL=coordinates-label.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coordinates-label.js","names":["_react","_interopRequireDefault","require","_propTypes","_plot","_renderUi","_styles","_InputBase","_utils","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","StyledInputBase","styled","InputBase","_ref","theme","fontFamily","typography","fontSize","borderRadius","background","palette","common","white","color","defaults","BLACK","padding","getLabelPosition","exports","graphProps","x","y","labelLength","scale","domain","range","topShift","min","max","leftShift","rightEdge","left","top","CoordinatesLabel","_ref2","label","concat","roundNumber","labelPosition","style","position","pointerEvents","width","createElement","value","inputProps","ariaLabel","propTypes","types","GraphPropsType","PropTypes","number","_default"],"sources":["../src/coordinates-label.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { types } from '@pie-lib/plot';\nimport { color } from '@pie-lib/render-ui';\nimport { styled } from '@mui/material/styles';\nimport InputBase from '@mui/material/InputBase';\nimport { roundNumber } from './utils';\n\nconst StyledInputBase = styled(InputBase)(({ theme }) => ({\n fontFamily: theme.typography.fontFamily,\n fontSize: theme.typography.fontSize,\n borderRadius: '8px',\n background: theme.palette.common.white,\n color: color.defaults.BLACK,\n '& .MuiInputBase-input': {\n padding: 0,\n },\n}));\n\nexport const getLabelPosition = (graphProps, x, y, labelLength) => {\n const { scale, domain, range } = graphProps;\n // treat corner cases for maximum and minimum\n const topShift = y === range.min ? 16 : y === range.max ? 0 : 8;\n const leftShift = 10;\n const rightEdge = scale.x(x) + labelLength + leftShift;\n\n if (rightEdge >= scale.x(domain.max)) {\n return {\n left: scale.x(x) - leftShift - labelLength,\n top: scale.y(y) - topShift,\n };\n }\n\n return {\n left: scale.x(x) + leftShift,\n top: scale.y(y) - topShift,\n };\n};\n\nexport const CoordinatesLabel = ({ x, y, graphProps }) => {\n const label = `(${roundNumber(x)}, ${roundNumber(y)})`;\n const labelLength = (label.length || 0) * 6;\n const labelPosition = getLabelPosition(graphProps, x, y, labelLength);\n\n const style = {\n position: 'absolute',\n pointerEvents: 'auto',\n width: labelLength,\n padding: 0,\n ...labelPosition,\n };\n\n return <StyledInputBase style={style} value={label} inputProps={{ ariaLabel: 'naked' }} />;\n};\n\nCoordinatesLabel.propTypes = {\n graphProps: types.GraphPropsType,\n x: PropTypes.number,\n y: PropTypes.number,\n};\n\nexport default CoordinatesLabel;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,297 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.toolIsAvailable = exports.setToolbarAvailability = exports.getAvailableTool = exports.filterByVisibleToolTypes = exports.filterByValidToolTypes = exports["default"] = exports.GraphWithControls = void 0;
9
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
10
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
11
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
12
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
13
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+ var _react = _interopRequireDefault(require("react"));
16
+ var _propTypes = _interopRequireDefault(require("prop-types"));
17
+ var _styles = require("@mui/material/styles");
18
+ var _classnames = _interopRequireDefault(require("classnames"));
19
+ var _lodashEs = require("lodash-es");
20
+ var _renderUi = require("@pie-lib/render-ui");
21
+ var _toolMenu = _interopRequireDefault(require("./tool-menu"));
22
+ var _graph = _interopRequireWildcard(require("./graph"));
23
+ var _undoRedo = _interopRequireDefault(require("./undo-redo"));
24
+ var _tools = require("./tools");
25
+ var _material = require("@mui/material");
26
+ var _ExpandMore = _interopRequireDefault(require("@mui/icons-material/ExpandMore"));
27
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
28
+ function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
29
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
30
+ 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; }
31
+ 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; }
32
+ var setToolbarAvailability = exports.setToolbarAvailability = function setToolbarAvailability(toolbarTools) {
33
+ return _tools.toolsArr.map(function (tA) {
34
+ return _objectSpread(_objectSpread({}, tA), {}, {
35
+ toolbar: !!toolbarTools.find(function (t) {
36
+ return t === tA.type;
37
+ })
38
+ });
39
+ }) || [];
40
+ };
41
+ var toolIsAvailable = exports.toolIsAvailable = function toolIsAvailable(tools, currentTool) {
42
+ return currentTool && tools && (tools.find(function (tool) {
43
+ return tool.type === currentTool.type;
44
+ }) || {}).toolbar;
45
+ };
46
+ var getAvailableTool = exports.getAvailableTool = function getAvailableTool(tools) {
47
+ return tools.find(function (tool) {
48
+ return tool.toolbar;
49
+ });
50
+ };
51
+ var filterByValidToolTypes = exports.filterByValidToolTypes = function filterByValidToolTypes(backgroundMarks) {
52
+ return backgroundMarks.filter(function (bM) {
53
+ return !!_tools.allTools.find(function (tool) {
54
+ return tool === bM.type;
55
+ });
56
+ });
57
+ };
58
+ var filterByVisibleToolTypes = exports.filterByVisibleToolTypes = function filterByVisibleToolTypes(toolbarTools, marks) {
59
+ return marks.filter(function (bM) {
60
+ return !!toolbarTools.find(function (tool) {
61
+ return tool === bM.type;
62
+ });
63
+ });
64
+ };
65
+ var getDefaultCurrentTool = function getDefaultCurrentTool(toolType) {
66
+ return _tools.toolsArr.find(function (tool) {
67
+ return tool.type === toolType;
68
+ }) || null;
69
+ };
70
+ var GraphWithControlsRoot = (0, _styles.styled)('div')(function () {
71
+ return {
72
+ display: 'flex',
73
+ flexDirection: 'column',
74
+ width: 'min-content'
75
+ };
76
+ });
77
+ var Controls = (0, _styles.styled)('div')(function () {
78
+ return {
79
+ display: 'flex',
80
+ justifyContent: 'space-between',
81
+ padding: 'calc(1.25rem - 12px) calc(1.25rem - 12px) 1.25rem',
82
+ color: _renderUi.color.text(),
83
+ backgroundColor: '#9FA8DA',
84
+ '& button': {
85
+ fontSize: '0.875rem',
86
+ padding: '0.25rem .3rem',
87
+ width: '5rem'
88
+ }
89
+ };
90
+ });
91
+ var StyledAccordion = (0, _styles.styled)(_material.Accordion)(function () {
92
+ return {
93
+ backgroundColor: _renderUi.color.primaryLight(),
94
+ width: '100%',
95
+ boxShadow: 'none'
96
+ };
97
+ });
98
+ var StyledAccordionSummary = (0, _styles.styled)(_material.AccordionSummary)(function (_ref) {
99
+ var theme = _ref.theme;
100
+ return {
101
+ padding: "0 ".concat(theme.spacing(1)),
102
+ minHeight: '32px !important',
103
+ '& .MuiAccordionSummary-content': {
104
+ margin: '4px 0 !important'
105
+ }
106
+ };
107
+ });
108
+ var StyledAccordionDetails = (0, _styles.styled)(_material.AccordionDetails)(function (_ref2) {
109
+ var theme = _ref2.theme;
110
+ return {
111
+ padding: 0,
112
+ marginTop: theme.spacing(1),
113
+ display: 'flex',
114
+ justifyContent: 'space-between'
115
+ };
116
+ });
117
+ var UndoRedoOuterDiv = (0, _styles.styled)('div')(function () {
118
+ return {
119
+ display: 'flex',
120
+ flexDirection: 'column',
121
+ marginTop: '.5rem'
122
+ };
123
+ });
124
+ var Collapsible = function Collapsible(_ref3) {
125
+ var children = _ref3.children,
126
+ title = _ref3.title;
127
+ return /*#__PURE__*/_react["default"].createElement(StyledAccordion, {
128
+ square: true,
129
+ disableGutters: true
130
+ }, /*#__PURE__*/_react["default"].createElement(StyledAccordionSummary, {
131
+ expandIcon: /*#__PURE__*/_react["default"].createElement(_ExpandMore["default"], null)
132
+ }, /*#__PURE__*/_react["default"].createElement(_material.Typography, {
133
+ variant: "subtitle1"
134
+ }, title)), /*#__PURE__*/_react["default"].createElement(StyledAccordionDetails, null, children));
135
+ };
136
+ Collapsible.propTypes = {
137
+ children: _propTypes["default"].node,
138
+ title: _propTypes["default"].string
139
+ };
140
+ var GraphWithControls = exports.GraphWithControls = /*#__PURE__*/function (_React$Component) {
141
+ function GraphWithControls(props) {
142
+ var _this;
143
+ (0, _classCallCheck2["default"])(this, GraphWithControls);
144
+ _this = _callSuper(this, GraphWithControls, [props]);
145
+ (0, _defineProperty2["default"])(_this, "changeCurrentTool", function (tool, tools) {
146
+ return _this.setState({
147
+ currentTool: tools.find(function (t) {
148
+ return t.type === tool;
149
+ })
150
+ });
151
+ });
152
+ (0, _defineProperty2["default"])(_this, "toggleLabelMode", function () {
153
+ return _this.setState(function (state) {
154
+ return {
155
+ labelModeEnabled: !state.labelModeEnabled
156
+ };
157
+ });
158
+ });
159
+ _this.state = {
160
+ currentTool: getDefaultCurrentTool(props.defaultTool),
161
+ labelModeEnabled: false
162
+ };
163
+ return _this;
164
+ }
165
+ (0, _inherits2["default"])(GraphWithControls, _React$Component);
166
+ return (0, _createClass2["default"])(GraphWithControls, [{
167
+ key: "componentDidUpdate",
168
+ value: function componentDidUpdate(prevProps) {
169
+ var defaultTool = this.props.defaultTool;
170
+ if (prevProps.defaultTool !== defaultTool) {
171
+ var currentTool = getDefaultCurrentTool(defaultTool);
172
+ this.setState({
173
+ currentTool: currentTool
174
+ });
175
+ }
176
+ }
177
+ }, {
178
+ key: "render",
179
+ value: function render() {
180
+ var _this2 = this;
181
+ var _this$state = this.state,
182
+ currentTool = _this$state.currentTool,
183
+ labelModeEnabled = _this$state.labelModeEnabled;
184
+ var _this$props = this.props,
185
+ axesSettings = _this$props.axesSettings,
186
+ className = _this$props.className,
187
+ coordinatesOnHover = _this$props.coordinatesOnHover,
188
+ collapsibleToolbar = _this$props.collapsibleToolbar,
189
+ collapsibleToolbarTitle = _this$props.collapsibleToolbarTitle,
190
+ disabled = _this$props.disabled,
191
+ disabledLabels = _this$props.disabledLabels,
192
+ disabledTitle = _this$props.disabledTitle,
193
+ domain = _this$props.domain,
194
+ labels = _this$props.labels,
195
+ labelsPlaceholders = _this$props.labelsPlaceholders,
196
+ onChangeLabels = _this$props.onChangeLabels,
197
+ onChangeMarks = _this$props.onChangeMarks,
198
+ onChangeTitle = _this$props.onChangeTitle,
199
+ onUndo = _this$props.onUndo,
200
+ onRedo = _this$props.onRedo,
201
+ range = _this$props.range,
202
+ size = _this$props.size,
203
+ showLabels = _this$props.showLabels,
204
+ showPixelGuides = _this$props.showPixelGuides,
205
+ showTitle = _this$props.showTitle,
206
+ title = _this$props.title,
207
+ titlePlaceholder = _this$props.titlePlaceholder,
208
+ language = _this$props.language,
209
+ _this$props$disableTo = _this$props.disableToolbar,
210
+ disableToolbar = _this$props$disableTo === void 0 ? false : _this$props$disableTo,
211
+ gssLineData = _this$props.gssLineData,
212
+ onChangeGssLineData = _this$props.onChangeGssLineData,
213
+ onSolutionSetSelected = _this$props.onSolutionSetSelected,
214
+ onCustomReset = _this$props.onCustomReset;
215
+ var _this$props2 = this.props,
216
+ backgroundMarks = _this$props2.backgroundMarks,
217
+ marks = _this$props2.marks,
218
+ toolbarTools = _this$props2.toolbarTools;
219
+ toolbarTools = (0, _lodashEs.uniq)(toolbarTools || []).filter(function (tT) {
220
+ return !!(0, _lodashEs.isString)(tT);
221
+ }) || [];
222
+ backgroundMarks = filterByValidToolTypes(backgroundMarks || []);
223
+ marks = filterByVisibleToolTypes(toolbarTools, marks || []);
224
+ if (gssLineData && gssLineData.lineA && marks[0] && marks[0].type === 'line') marks[0].fill = gssLineData.lineA.lineType;
225
+ if (gssLineData && gssLineData.lineB && marks[1] && marks[1].type === 'line') marks[1].fill = gssLineData.lineB.lineType;
226
+ var tools = setToolbarAvailability(toolbarTools);
227
+ if (!currentTool || !toolIsAvailable(tools, currentTool)) {
228
+ currentTool = getAvailableTool(tools);
229
+ }
230
+ var gssActions = gssLineData && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_toolMenu["default"], {
231
+ numberOfLines: gssLineData.numberOfLines,
232
+ gssLineData: gssLineData,
233
+ onChange: onChangeGssLineData,
234
+ disabled: !!disabled,
235
+ language: language
236
+ }), !disabled && /*#__PURE__*/_react["default"].createElement(UndoRedoOuterDiv, null, /*#__PURE__*/_react["default"].createElement(_undoRedo["default"], {
237
+ onUndo: onUndo,
238
+ onRedo: onRedo,
239
+ onReset: onCustomReset,
240
+ language: language
241
+ })));
242
+ return /*#__PURE__*/_react["default"].createElement(GraphWithControlsRoot, {
243
+ className: (0, _classnames["default"])(className)
244
+ }, !disableToolbar && /*#__PURE__*/_react["default"].createElement(Controls, null, collapsibleToolbar ? /*#__PURE__*/_react["default"].createElement(Collapsible, {
245
+ title: collapsibleToolbarTitle
246
+ }, gssActions) : gssActions), /*#__PURE__*/_react["default"].createElement("div", {
247
+ ref: function ref(r) {
248
+ return _this2.labelNode = r;
249
+ }
250
+ }), /*#__PURE__*/_react["default"].createElement(_graph["default"], {
251
+ axesSettings: axesSettings,
252
+ backgroundMarks: backgroundMarks,
253
+ coordinatesOnHover: coordinatesOnHover,
254
+ currentTool: currentTool,
255
+ disabledLabels: disabledLabels,
256
+ disabledTitle: disabledTitle,
257
+ domain: domain,
258
+ labels: labels,
259
+ labelModeEnabled: labelModeEnabled,
260
+ labelsPlaceholders: labelsPlaceholders,
261
+ marks: marks,
262
+ onChangeMarks: !disabled ? onChangeMarks : undefined,
263
+ onChangeLabels: onChangeLabels,
264
+ onChangeTitle: onChangeTitle,
265
+ range: range,
266
+ size: size,
267
+ showLabels: showLabels,
268
+ showPixelGuides: showPixelGuides,
269
+ showTitle: showTitle,
270
+ title: title,
271
+ titlePlaceholder: titlePlaceholder,
272
+ tools: tools,
273
+ gssLineData: gssLineData,
274
+ onSolutionSetSelected: onSolutionSetSelected,
275
+ disabled: !!disabled
276
+ }));
277
+ }
278
+ }]);
279
+ }(_react["default"].Component);
280
+ (0, _defineProperty2["default"])(GraphWithControls, "propTypes", _objectSpread(_objectSpread({}, _graph.graphPropTypes), {}, {
281
+ onUndo: _propTypes["default"].func,
282
+ onRedo: _propTypes["default"].func,
283
+ onReset: _propTypes["default"].func,
284
+ toolbarTools: _propTypes["default"].arrayOf(_propTypes["default"].string),
285
+ language: _propTypes["default"].string
286
+ }));
287
+ (0, _defineProperty2["default"])(GraphWithControls, "defaultProps", {
288
+ collapsibleToolbar: false,
289
+ collapsibleToolbarTitle: '',
290
+ disabledLabels: false,
291
+ disabledTitle: false,
292
+ showLabels: true,
293
+ showTitle: true,
294
+ toolbarTools: []
295
+ });
296
+ var _default = exports["default"] = GraphWithControls;
297
+ //# sourceMappingURL=graph-with-controls.js.map