@pie-lib/graphing 2.14.22 → 2.15.0-beta.1

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 (193) hide show
  1. package/CHANGELOG.md +13 -80
  2. package/NEXT.CHANGELOG.json +1 -0
  3. package/lib/axis/axes.js +5 -5
  4. package/lib/axis/axes.js.map +1 -1
  5. package/lib/container/index.js +1 -4
  6. package/lib/container/index.js.map +1 -1
  7. package/lib/coordinates-label.js +5 -3
  8. package/lib/coordinates-label.js.map +1 -1
  9. package/lib/graph-with-controls.js +8 -15
  10. package/lib/graph-with-controls.js.map +1 -1
  11. package/lib/graph.js +29 -12
  12. package/lib/graph.js.map +1 -1
  13. package/lib/grid.js +6 -14
  14. package/lib/grid.js.map +1 -1
  15. package/lib/index.js +8 -0
  16. package/lib/index.js.map +1 -1
  17. package/lib/key-legend.js +246 -0
  18. package/lib/key-legend.js.map +1 -0
  19. package/lib/label-svg-icon.js +56 -0
  20. package/lib/label-svg-icon.js.map +1 -0
  21. package/lib/labels.js +2 -1
  22. package/lib/labels.js.map +1 -1
  23. package/lib/mark-label.js +167 -56
  24. package/lib/mark-label.js.map +1 -1
  25. package/lib/toggle-bar.js +3 -4
  26. package/lib/toggle-bar.js.map +1 -1
  27. package/lib/tool-menu.js +2 -22
  28. package/lib/tool-menu.js.map +1 -1
  29. package/lib/tools/absolute/component.js +35 -0
  30. package/lib/tools/absolute/component.js.map +1 -0
  31. package/lib/tools/absolute/index.js +63 -0
  32. package/lib/tools/absolute/index.js.map +1 -0
  33. package/lib/tools/circle/bg-circle.js +4 -3
  34. package/lib/tools/circle/bg-circle.js.map +1 -1
  35. package/lib/tools/circle/component.js +34 -15
  36. package/lib/tools/circle/component.js.map +1 -1
  37. package/lib/tools/exponential/component.js +34 -0
  38. package/lib/tools/exponential/component.js.map +1 -0
  39. package/lib/tools/exponential/index.js +71 -0
  40. package/lib/tools/exponential/index.js.map +1 -0
  41. package/lib/tools/index.js +26 -6
  42. package/lib/tools/index.js.map +1 -1
  43. package/lib/tools/line/component.js +2 -1
  44. package/lib/tools/line/component.js.map +1 -1
  45. package/lib/tools/parabola/component.js +6 -5
  46. package/lib/tools/parabola/component.js.map +1 -1
  47. package/lib/tools/point/component.js +14 -9
  48. package/lib/tools/point/component.js.map +1 -1
  49. package/lib/tools/polygon/component.js +25 -12
  50. package/lib/tools/polygon/component.js.map +1 -1
  51. package/lib/tools/polygon/line.js +12 -6
  52. package/lib/tools/polygon/line.js.map +1 -1
  53. package/lib/tools/polygon/polygon.js +6 -3
  54. package/lib/tools/polygon/polygon.js.map +1 -1
  55. package/lib/tools/ray/component.js +2 -1
  56. package/lib/tools/ray/component.js.map +1 -1
  57. package/lib/tools/segment/component.js +2 -1
  58. package/lib/tools/segment/component.js.map +1 -1
  59. package/lib/tools/shared/icons/CorrectSVG.js +36 -0
  60. package/lib/tools/shared/icons/CorrectSVG.js.map +1 -0
  61. package/lib/tools/shared/icons/IncorrectSVG.js +36 -0
  62. package/lib/tools/shared/icons/IncorrectSVG.js.map +1 -0
  63. package/lib/tools/shared/icons/MissingSVG.js +35 -0
  64. package/lib/tools/shared/icons/MissingSVG.js.map +1 -0
  65. package/lib/tools/shared/line/index.js +51 -19
  66. package/lib/tools/shared/line/index.js.map +1 -1
  67. package/lib/tools/shared/line/line-path.js +13 -7
  68. package/lib/tools/shared/line/line-path.js.map +1 -1
  69. package/lib/tools/shared/line/with-root-edge.js +19 -8
  70. package/lib/tools/shared/line/with-root-edge.js.map +1 -1
  71. package/lib/tools/shared/point/arrow-point.js +1 -1
  72. package/lib/tools/shared/point/arrow-point.js.map +1 -1
  73. package/lib/tools/shared/point/arrow.js +1 -1
  74. package/lib/tools/shared/point/arrow.js.map +1 -1
  75. package/lib/tools/shared/point/base-point.js +43 -7
  76. package/lib/tools/shared/point/base-point.js.map +1 -1
  77. package/lib/tools/shared/point/index.js +4 -1
  78. package/lib/tools/shared/point/index.js.map +1 -1
  79. package/lib/tools/shared/styles.js +16 -7
  80. package/lib/tools/shared/styles.js.map +1 -1
  81. package/lib/tools/sine/component.js +13 -4
  82. package/lib/tools/sine/component.js.map +1 -1
  83. package/lib/tools/vector/component.js +2 -1
  84. package/lib/tools/vector/component.js.map +1 -1
  85. package/lib/undo-redo.js +0 -1
  86. package/lib/undo-redo.js.map +1 -1
  87. package/lib/utils.js +1 -1
  88. package/lib/utils.js.map +1 -1
  89. package/package.json +15 -9
  90. package/src/__tests__/__snapshots__/graph-with-controls.test.jsx.snap +237 -0
  91. package/src/__tests__/__snapshots__/graph.test.jsx.snap +211 -0
  92. package/src/__tests__/__snapshots__/grid.test.jsx.snap +54 -0
  93. package/src/__tests__/__snapshots__/labels.test.jsx.snap +30 -0
  94. package/src/__tests__/__snapshots__/mark-label.test.jsx.snap +45 -0
  95. package/src/__tests__/__snapshots__/toggle-bar.test.jsx.snap +7 -0
  96. package/src/__tests__/__snapshots__/tool-menu.test.jsx.snap +13 -0
  97. package/src/__tests__/__snapshots__/undo-redo.test.jsx.snap +14 -0
  98. package/src/__tests__/graph-with-controls.test.jsx +147 -0
  99. package/src/__tests__/graph.test.jsx +230 -0
  100. package/src/__tests__/grid.test.jsx +20 -0
  101. package/src/__tests__/labels.test.jsx +38 -0
  102. package/src/__tests__/mark-label.test.jsx +68 -0
  103. package/src/__tests__/toggle-bar.test.jsx +36 -0
  104. package/src/__tests__/tool-menu.test.jsx +29 -0
  105. package/src/__tests__/undo-redo.test.jsx +25 -0
  106. package/src/__tests__/use-debounce.test.js +21 -0
  107. package/src/__tests__/utils.js +38 -0
  108. package/src/__tests__/utils.test.js +151 -0
  109. package/src/axis/__tests__/__snapshots__/arrow.test.jsx.snap +33 -0
  110. package/src/axis/__tests__/__snapshots__/axes.test.jsx.snap +122 -0
  111. package/src/axis/__tests__/arrow.test.jsx +39 -0
  112. package/src/axis/__tests__/axes.test.jsx +220 -0
  113. package/src/axis/axes.jsx +5 -5
  114. package/src/container/index.jsx +2 -4
  115. package/src/coordinates-label.jsx +4 -3
  116. package/src/graph-with-controls.jsx +8 -10
  117. package/src/graph.jsx +22 -10
  118. package/src/grid.jsx +8 -10
  119. package/src/index.js +2 -2
  120. package/src/key-legend.jsx +145 -0
  121. package/src/label-svg-icon.jsx +39 -0
  122. package/src/labels.jsx +2 -1
  123. package/src/mark-label.jsx +149 -52
  124. package/src/toggle-bar.jsx +1 -2
  125. package/src/tool-menu.jsx +3 -26
  126. package/src/tools/absolute/__tests__/component.test.jsx +54 -0
  127. package/src/tools/absolute/component.jsx +23 -0
  128. package/src/tools/absolute/index.js +31 -0
  129. package/src/tools/circle/__tests__/__snapshots__/bg-circle.test.jsx.snap +46 -0
  130. package/src/tools/circle/__tests__/__snapshots__/component.test.jsx.snap +293 -0
  131. package/src/tools/circle/__tests__/bg-circle.test.jsx +28 -0
  132. package/src/tools/circle/__tests__/component.test.jsx +228 -0
  133. package/src/tools/circle/bg-circle.jsx +5 -4
  134. package/src/tools/circle/component.jsx +22 -8
  135. package/src/tools/exponential/__tests__/component.test.jsx +54 -0
  136. package/src/tools/exponential/component.jsx +23 -0
  137. package/src/tools/exponential/index.js +39 -0
  138. package/src/tools/index.js +38 -5
  139. package/src/tools/line/__tests__/__snapshots__/component.test.jsx.snap +20 -0
  140. package/src/tools/line/__tests__/component.test.jsx +36 -0
  141. package/src/tools/line/component.jsx +2 -1
  142. package/src/tools/parabola/__tests__/component.test.jsx +49 -0
  143. package/src/tools/parabola/component.jsx +7 -6
  144. package/src/tools/point/__tests__/__snapshots__/component.test.jsx.snap +40 -0
  145. package/src/tools/point/__tests__/component.test.jsx +66 -0
  146. package/src/tools/point/component.jsx +12 -6
  147. package/src/tools/polygon/__tests__/__snapshots__/component.test.jsx.snap +415 -0
  148. package/src/tools/polygon/__tests__/__snapshots__/line.test.jsx.snap +45 -0
  149. package/src/tools/polygon/__tests__/__snapshots__/polygon.test.jsx.snap +52 -0
  150. package/src/tools/polygon/__tests__/component.test.jsx +226 -0
  151. package/src/tools/polygon/__tests__/index.test.js +65 -0
  152. package/src/tools/polygon/__tests__/line.test.jsx +25 -0
  153. package/src/tools/polygon/__tests__/polygon.test.jsx +44 -0
  154. package/src/tools/polygon/component.jsx +39 -11
  155. package/src/tools/polygon/line.jsx +15 -7
  156. package/src/tools/polygon/polygon.jsx +7 -3
  157. package/src/tools/ray/__tests__/__snapshots__/component.test.jsx.snap +23 -0
  158. package/src/tools/ray/__tests__/component.test.jsx +29 -0
  159. package/src/tools/ray/component.jsx +2 -1
  160. package/src/tools/segment/__tests__/__snapshots__/component.test.jsx.snap +14 -0
  161. package/src/tools/segment/__tests__/component.test.jsx +28 -0
  162. package/src/tools/segment/component.jsx +2 -1
  163. package/src/tools/shared/__tests__/__snapshots__/arrow-head.test.jsx.snap +27 -0
  164. package/src/tools/shared/__tests__/arrow-head.test.jsx +34 -0
  165. package/src/tools/shared/icons/CorrectSVG.jsx +22 -0
  166. package/src/tools/shared/icons/IncorrectSVG.jsx +20 -0
  167. package/src/tools/shared/icons/MissingSVG.jsx +21 -0
  168. package/src/tools/shared/line/__tests__/__snapshots__/index.test.jsx.snap +360 -0
  169. package/src/tools/shared/line/__tests__/__snapshots__/line-path.test.jsx.snap +58 -0
  170. package/src/tools/shared/line/__tests__/__snapshots__/with-root-edge.test.jsx.snap +63 -0
  171. package/src/tools/shared/line/__tests__/index.test.jsx +255 -0
  172. package/src/tools/shared/line/__tests__/line-path.test.jsx +53 -0
  173. package/src/tools/shared/line/__tests__/with-root-edge.test.jsx +73 -0
  174. package/src/tools/shared/line/index.jsx +39 -13
  175. package/src/tools/shared/line/line-path.jsx +18 -7
  176. package/src/tools/shared/line/with-root-edge.jsx +10 -3
  177. package/src/tools/shared/point/__tests__/__snapshots__/arrow-point.test.jsx.snap +56 -0
  178. package/src/tools/shared/point/__tests__/__snapshots__/base-point.test.jsx.snap +44 -0
  179. package/src/tools/shared/point/__tests__/arrow-point.test.jsx +87 -0
  180. package/src/tools/shared/point/__tests__/base-point.test.jsx +84 -0
  181. package/src/tools/shared/point/arrow-point.jsx +4 -1
  182. package/src/tools/shared/point/arrow.jsx +4 -1
  183. package/src/tools/shared/point/base-point.jsx +28 -3
  184. package/src/tools/shared/point/index.jsx +7 -2
  185. package/src/tools/shared/styles.js +8 -3
  186. package/src/tools/sine/__tests__/component.test.jsx +51 -0
  187. package/src/tools/sine/component.jsx +7 -7
  188. package/src/tools/vector/__tests__/__snapshots__/component.test.jsx.snap +12 -0
  189. package/src/tools/vector/__tests__/component.test.jsx +26 -0
  190. package/src/tools/vector/component.jsx +2 -1
  191. package/src/undo-redo.jsx +0 -1
  192. package/src/utils.js +1 -1
  193. package/legacy.png +0 -0
@@ -122,18 +122,21 @@ var Polygon = (0, _styles.withStyles)(function (theme) {
122
122
  fill: (0, _colorManipulator.fade)(theme.palette.primary.light, 0.2),
123
123
  // TODO hardcoded color
124
124
  strokeWidth: 2,
125
- stroke: _renderUi.color.secondaryLight()
125
+ stroke: _renderUi.color.defaults.BLACK
126
126
  },
127
127
  open: {
128
128
  fill: (0, _colorManipulator.fade)(theme.palette.primary.light, 0.0),
129
129
  // TODO hardcoded color
130
130
  strokeWidth: 2,
131
- stroke: _renderUi.color.secondaryLight(),
131
+ stroke: _renderUi.color.defaults.BLACK,
132
132
  pointerEvents: 'none'
133
133
  },
134
134
  disabled: _objectSpread({}, (0, _styles2.disabled)('stroke')),
135
135
  correct: _objectSpread({}, (0, _styles2.correct)('stroke')),
136
- incorrect: _objectSpread({}, (0, _styles2.incorrect)('stroke'))
136
+ incorrect: _objectSpread({}, (0, _styles2.incorrect)('stroke')),
137
+ missing: _objectSpread(_objectSpread({}, (0, _styles2.missing)('stroke')), {}, {
138
+ stroke: 'inherit'
139
+ })
137
140
  };
138
141
  })(RawPolygon);
139
142
  exports.Polygon = Polygon;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/tools/polygon/polygon.jsx"],"names":["getPointString","points","scale","map","p","scaledPoint","x","y","join","RawPolygon","props","classes","className","disabled","correctness","graphProps","closed","rest","pointString","Tag","open","React","Component","PropTypes","object","string","bool","arrayOf","types","PointType","GraphPropsType","isRequired","Polygon","theme","fill","palette","primary","light","strokeWidth","stroke","color","secondaryLight","pointerEvents","correct","incorrect","bounds","domain","range","area","utils","polygonToArea","anchorPoint","fromDelta","delta","point","add"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { gridDraggable, types } from '@pie-lib/plot';\nimport * as utils from '../../utils';\nimport classNames from 'classnames';\nimport { color } from '@pie-lib/render-ui';\nimport { fade } from '@material-ui/core/styles/colorManipulator';\nimport { correct, disabled, incorrect } from '../shared/styles';\n\nexport const getPointString = (points, scale) => {\n return (points || [])\n .map((p) => {\n const scaledPoint = {\n x: scale.x(p.x),\n y: scale.y(p.y),\n };\n return `${scaledPoint.x},${scaledPoint.y}`;\n })\n .join(' ');\n};\n\nexport class RawPolygon extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n className: PropTypes.string,\n disabled: PropTypes.bool,\n points: PropTypes.arrayOf(types.PointType),\n graphProps: types.GraphPropsType.isRequired,\n closed: PropTypes.bool.isRequired,\n correctness: PropTypes.string,\n };\n\n static defaultProps = {\n points: [],\n };\n\n render() {\n const { points, classes, className, disabled, correctness, graphProps, closed, ...rest } = this.props;\n const { scale } = graphProps;\n\n const pointString = getPointString(points, scale);\n const Tag = closed ? 'polygon' : 'polyline';\n return (\n <Tag\n points={pointString}\n className={classNames(\n closed && classes.closed,\n !closed && classes.open,\n disabled && classes.disabled,\n classes[correctness],\n className,\n )}\n {...rest}\n />\n );\n }\n}\n\nexport const Polygon = withStyles((theme) => ({\n closed: {\n fill: fade(theme.palette.primary.light, 0.2), // TODO hardcoded color\n strokeWidth: 2,\n stroke: color.secondaryLight(),\n },\n open: {\n fill: fade(theme.palette.primary.light, 0.0), // TODO hardcoded color\n strokeWidth: 2,\n stroke: color.secondaryLight(),\n pointerEvents: 'none',\n },\n disabled: {\n ...disabled('stroke'),\n },\n correct: {\n ...correct('stroke'),\n },\n incorrect: {\n ...incorrect('stroke'),\n },\n}))(RawPolygon);\n\nexport default gridDraggable({\n bounds: (props, { domain, range }) => {\n const { points } = props;\n const area = utils.polygonToArea(points);\n return utils.bounds(area, domain, range);\n },\n anchorPoint: (props) => {\n const { points } = props;\n return points[0];\n },\n fromDelta: (props, delta) => {\n const { points } = props;\n\n return points.map((p) => utils.point(p).add(utils.point(delta)));\n },\n})(Polygon);\n"],"file":"polygon.js"}
1
+ {"version":3,"sources":["../../../src/tools/polygon/polygon.jsx"],"names":["getPointString","points","scale","map","p","scaledPoint","x","y","join","RawPolygon","props","classes","className","disabled","correctness","graphProps","closed","rest","pointString","Tag","open","React","Component","PropTypes","object","string","bool","arrayOf","types","PointType","GraphPropsType","isRequired","Polygon","theme","fill","palette","primary","light","strokeWidth","stroke","color","defaults","BLACK","pointerEvents","correct","incorrect","missing","bounds","domain","range","area","utils","polygonToArea","anchorPoint","fromDelta","delta","point","add"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { gridDraggable, types } from '@pie-lib/plot';\nimport * as utils from '../../utils';\nimport classNames from 'classnames';\nimport { color } from '@pie-lib/render-ui';\nimport { fade } from '@material-ui/core/styles/colorManipulator';\nimport { correct, disabled, incorrect, missing } from '../shared/styles';\n\nexport const getPointString = (points, scale) => {\n return (points || [])\n .map((p) => {\n const scaledPoint = {\n x: scale.x(p.x),\n y: scale.y(p.y),\n };\n return `${scaledPoint.x},${scaledPoint.y}`;\n })\n .join(' ');\n};\n\nexport class RawPolygon extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n className: PropTypes.string,\n disabled: PropTypes.bool,\n points: PropTypes.arrayOf(types.PointType),\n graphProps: types.GraphPropsType.isRequired,\n closed: PropTypes.bool.isRequired,\n correctness: PropTypes.string,\n };\n\n static defaultProps = {\n points: [],\n };\n\n render() {\n const { points, classes, className, disabled, correctness, graphProps, closed, ...rest } = this.props;\n const { scale } = graphProps;\n\n const pointString = getPointString(points, scale);\n const Tag = closed ? 'polygon' : 'polyline';\n return (\n <Tag\n points={pointString}\n className={classNames(\n closed && classes.closed,\n !closed && classes.open,\n disabled && classes.disabled,\n classes[correctness],\n className,\n )}\n {...rest}\n />\n );\n }\n}\n\nexport const Polygon = withStyles((theme) => ({\n closed: {\n fill: fade(theme.palette.primary.light, 0.2), // TODO hardcoded color\n strokeWidth: 2,\n stroke: color.defaults.BLACK,\n },\n open: {\n fill: fade(theme.palette.primary.light, 0.0), // TODO hardcoded color\n strokeWidth: 2,\n stroke: color.defaults.BLACK,\n pointerEvents: 'none',\n },\n disabled: {\n ...disabled('stroke'),\n },\n correct: {\n ...correct('stroke'),\n },\n incorrect: {\n ...incorrect('stroke'),\n },\n missing: {\n ...missing('stroke'),\n stroke: 'inherit',\n },\n}))(RawPolygon);\n\nexport default gridDraggable({\n bounds: (props, { domain, range }) => {\n const { points } = props;\n const area = utils.polygonToArea(points);\n return utils.bounds(area, domain, range);\n },\n anchorPoint: (props) => {\n const { points } = props;\n return points[0];\n },\n fromDelta: (props, delta) => {\n const { points } = props;\n\n return points.map((p) => utils.point(p).add(utils.point(delta)));\n },\n})(Polygon);\n"],"file":"polygon.js"}
@@ -37,6 +37,7 @@ var rayStyles = function rayStyles(theme) {
37
37
  enabledArrow: _line.styles.arrow(theme),
38
38
  disabledArrow: _line.styles.disabledArrow(theme),
39
39
  disabled: _line.styles.disabled(theme),
40
+ disabledSecondary: _line.styles.disabledSecondary(theme),
40
41
  correct: _line.styles.correct(theme, 'stroke'),
41
42
  correctArrow: _line.styles.correct(theme),
42
43
  incorrect: _line.styles.incorrect(theme, 'stroke'),
@@ -77,7 +78,7 @@ var RayLine = function RayLine(props) {
77
78
  x2: scale.x(aToB.x),
78
79
  y2: scale.y(aToB.y)
79
80
  }, rest, {
80
- className: (0, _classnames["default"])(classes.line, disabled && classes.disabled, classes[correctness], className),
81
+ className: (0, _classnames["default"])(classes.line, disabled && classes.disabledSecondary, classes[correctness], className),
81
82
  markerEnd: "url(#".concat(props.markerId || markerId, "-").concat(suffix, ")")
82
83
  })));
83
84
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/tools/ray/component.jsx"],"names":["rayStyles","theme","line","styles","enabledArrow","arrow","disabledArrow","disabled","correct","correctArrow","incorrect","incorrectArrow","missing","missingArrow","RayLine","props","markerId","graphProps","from","to","classes","correctness","className","rest","scale","domain","range","trig","edges","aToB","suffix","x","y","propTypes","PropTypes","object","string","bool","any","types","PointType","StyledRay","Ray","Component"],"mappings":"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","sourcesContent":["import { lineToolComponent, lineBase, styles } from '../shared/line';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { ArrowMarker, genUid } from '../shared/arrow-head';\nimport { trig, types } from '@pie-lib/plot';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport { thinnerShapesNeeded, getAdjustedGraphLimits } from '../../utils';\n\nconst rayStyles = (theme) => ({\n line: styles.line(theme),\n enabledArrow: styles.arrow(theme),\n disabledArrow: styles.disabledArrow(theme),\n disabled: styles.disabled(theme),\n correct: styles.correct(theme, 'stroke'),\n correctArrow: styles.correct(theme),\n incorrect: styles.incorrect(theme, 'stroke'),\n incorrectArrow: styles.incorrect(theme),\n missing: styles.missing(theme, 'stroke'),\n missingArrow: styles.missing(theme),\n});\n\nexport const RayLine = (props) => {\n const markerId = genUid();\n const { graphProps, from, to, classes, disabled, correctness, className, ...rest } = props;\n const { scale } = graphProps;\n const { domain, range } = getAdjustedGraphLimits(graphProps);\n const [aToB] = trig.edges(domain, range)(from, to);\n const suffix = correctness || (disabled && 'disabled') || 'enabled';\n\n return (\n <g>\n <defs>\n <ArrowMarker\n size={thinnerShapesNeeded(graphProps) ? 4 : 5}\n id={`${props.markerId || markerId}-${suffix}`}\n className={classNames(classes[`${suffix}Arrow`])}\n />\n </defs>\n <line\n x1={scale.x(from.x)}\n y1={scale.y(from.y)}\n x2={scale.x(aToB.x)}\n y2={scale.y(aToB.y)}\n {...rest}\n className={classNames(classes.line, disabled && classes.disabled, classes[correctness], className)}\n markerEnd={`url(#${props.markerId || markerId}-${suffix})`}\n />\n </g>\n );\n};\n\nRayLine.propTypes = {\n classes: PropTypes.object,\n className: PropTypes.string,\n disabled: PropTypes.bool,\n correctness: PropTypes.string,\n graphProps: PropTypes.any,\n from: types.PointType,\n to: types.PointType,\n markerId: PropTypes.string,\n};\n\nconst StyledRay = withStyles(rayStyles)(RayLine);\n\nconst Ray = lineBase(StyledRay);\nconst Component = lineToolComponent(Ray);\n\nexport default Component;\n"],"file":"component.js"}
1
+ {"version":3,"sources":["../../../src/tools/ray/component.jsx"],"names":["rayStyles","theme","line","styles","enabledArrow","arrow","disabledArrow","disabled","disabledSecondary","correct","correctArrow","incorrect","incorrectArrow","missing","missingArrow","RayLine","props","markerId","graphProps","from","to","classes","correctness","className","rest","scale","domain","range","trig","edges","aToB","suffix","x","y","propTypes","PropTypes","object","string","bool","any","types","PointType","StyledRay","Ray","Component"],"mappings":";;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAEA,IAAMA,SAAS,GAAG,SAAZA,SAAY,CAACC,KAAD;AAAA,SAAY;AAC5BC,IAAAA,IAAI,EAAEC,aAAOD,IAAP,CAAYD,KAAZ,CADsB;AAE5BG,IAAAA,YAAY,EAAED,aAAOE,KAAP,CAAaJ,KAAb,CAFc;AAG5BK,IAAAA,aAAa,EAAEH,aAAOG,aAAP,CAAqBL,KAArB,CAHa;AAI5BM,IAAAA,QAAQ,EAAEJ,aAAOI,QAAP,CAAgBN,KAAhB,CAJkB;AAK5BO,IAAAA,iBAAiB,EAAEL,aAAOK,iBAAP,CAAyBP,KAAzB,CALS;AAM5BQ,IAAAA,OAAO,EAAEN,aAAOM,OAAP,CAAeR,KAAf,EAAsB,QAAtB,CANmB;AAO5BS,IAAAA,YAAY,EAAEP,aAAOM,OAAP,CAAeR,KAAf,CAPc;AAQ5BU,IAAAA,SAAS,EAAER,aAAOQ,SAAP,CAAiBV,KAAjB,EAAwB,QAAxB,CARiB;AAS5BW,IAAAA,cAAc,EAAET,aAAOQ,SAAP,CAAiBV,KAAjB,CATY;AAU5BY,IAAAA,OAAO,EAAEV,aAAOU,OAAP,CAAeZ,KAAf,EAAsB,QAAtB,CAVmB;AAW5Ba,IAAAA,YAAY,EAAEX,aAAOU,OAAP,CAAeZ,KAAf;AAXc,GAAZ;AAAA,CAAlB;;AAcO,IAAMc,OAAO,GAAG,SAAVA,OAAU,CAACC,KAAD,EAAW;AAChC,MAAMC,QAAQ,GAAG,wBAAjB;AACA,MAAQC,UAAR,GAAqFF,KAArF,CAAQE,UAAR;AAAA,MAAoBC,IAApB,GAAqFH,KAArF,CAAoBG,IAApB;AAAA,MAA0BC,EAA1B,GAAqFJ,KAArF,CAA0BI,EAA1B;AAAA,MAA8BC,OAA9B,GAAqFL,KAArF,CAA8BK,OAA9B;AAAA,MAAuCd,QAAvC,GAAqFS,KAArF,CAAuCT,QAAvC;AAAA,MAAiDe,WAAjD,GAAqFN,KAArF,CAAiDM,WAAjD;AAAA,MAA8DC,SAA9D,GAAqFP,KAArF,CAA8DO,SAA9D;AAAA,MAA4EC,IAA5E,6CAAqFR,KAArF;AACA,MAAQS,KAAR,GAAkBP,UAAlB,CAAQO,KAAR;;AACA,8BAA0B,mCAAuBP,UAAvB,CAA1B;AAAA,MAAQQ,MAAR,yBAAQA,MAAR;AAAA,MAAgBC,KAAhB,yBAAgBA,KAAhB;;AACA,oBAAeC,WAAKC,KAAL,CAAWH,MAAX,EAAmBC,KAAnB,EAA0BR,IAA1B,EAAgCC,EAAhC,CAAf;AAAA;AAAA,MAAOU,IAAP;;AACA,MAAMC,MAAM,GAAGT,WAAW,IAAKf,QAAQ,IAAI,UAA5B,IAA2C,SAA1D;AAEA,sBACE,wDACE,2DACE,gCAAC,sBAAD;AACE,IAAA,IAAI,EAAE,gCAAoBW,UAApB,IAAkC,CAAlC,GAAsC,CAD9C;AAEE,IAAA,EAAE,YAAKF,KAAK,CAACC,QAAN,IAAkBA,QAAvB,cAAmCc,MAAnC,CAFJ;AAGE,IAAA,SAAS,EAAE,4BAAWV,OAAO,WAAIU,MAAJ,WAAlB;AAHb,IADF,CADF,eAQE;AACE,IAAA,EAAE,EAAEN,KAAK,CAACO,CAAN,CAAQb,IAAI,CAACa,CAAb,CADN;AAEE,IAAA,EAAE,EAAEP,KAAK,CAACQ,CAAN,CAAQd,IAAI,CAACc,CAAb,CAFN;AAGE,IAAA,EAAE,EAAER,KAAK,CAACO,CAAN,CAAQF,IAAI,CAACE,CAAb,CAHN;AAIE,IAAA,EAAE,EAAEP,KAAK,CAACQ,CAAN,CAAQH,IAAI,CAACG,CAAb;AAJN,KAKMT,IALN;AAME,IAAA,SAAS,EAAE,4BAAWH,OAAO,CAACnB,IAAnB,EAAyBK,QAAQ,IAAIc,OAAO,CAACb,iBAA7C,EAAgEa,OAAO,CAACC,WAAD,CAAvE,EAAsFC,SAAtF,CANb;AAOE,IAAA,SAAS,iBAAUP,KAAK,CAACC,QAAN,IAAkBA,QAA5B,cAAwCc,MAAxC;AAPX,KARF,CADF;AAoBD,CA5BM;;;AA8BPhB,OAAO,CAACmB,SAAR,GAAoB;AAClBb,EAAAA,OAAO,EAAEc,sBAAUC,MADD;AAElBb,EAAAA,SAAS,EAAEY,sBAAUE,MAFH;AAGlB9B,EAAAA,QAAQ,EAAE4B,sBAAUG,IAHF;AAIlBhB,EAAAA,WAAW,EAAEa,sBAAUE,MAJL;AAKlBnB,EAAAA,UAAU,EAAEiB,sBAAUI,GALJ;AAMlBpB,EAAAA,IAAI,EAAEqB,YAAMC,SANM;AAOlBrB,EAAAA,EAAE,EAAEoB,YAAMC,SAPQ;AAQlBxB,EAAAA,QAAQ,EAAEkB,sBAAUE;AARF,CAApB;AAWA,IAAMK,SAAS,GAAG,wBAAW1C,SAAX,EAAsBe,OAAtB,CAAlB;AAEA,IAAM4B,GAAG,GAAG,oBAASD,SAAT,CAAZ;AACA,IAAME,SAAS,GAAG,6BAAkBD,GAAlB,CAAlB;eAEeC,S","sourcesContent":["import { lineToolComponent, lineBase, styles } from '../shared/line';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { ArrowMarker, genUid } from '../shared/arrow-head';\nimport { trig, types } from '@pie-lib/plot';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport { thinnerShapesNeeded, getAdjustedGraphLimits } from '../../utils';\n\nconst rayStyles = (theme) => ({\n line: styles.line(theme),\n enabledArrow: styles.arrow(theme),\n disabledArrow: styles.disabledArrow(theme),\n disabled: styles.disabled(theme),\n disabledSecondary: styles.disabledSecondary(theme),\n correct: styles.correct(theme, 'stroke'),\n correctArrow: styles.correct(theme),\n incorrect: styles.incorrect(theme, 'stroke'),\n incorrectArrow: styles.incorrect(theme),\n missing: styles.missing(theme, 'stroke'),\n missingArrow: styles.missing(theme),\n});\n\nexport const RayLine = (props) => {\n const markerId = genUid();\n const { graphProps, from, to, classes, disabled, correctness, className, ...rest } = props;\n const { scale } = graphProps;\n const { domain, range } = getAdjustedGraphLimits(graphProps);\n const [aToB] = trig.edges(domain, range)(from, to);\n const suffix = correctness || (disabled && 'disabled') || 'enabled';\n\n return (\n <g>\n <defs>\n <ArrowMarker\n size={thinnerShapesNeeded(graphProps) ? 4 : 5}\n id={`${props.markerId || markerId}-${suffix}`}\n className={classNames(classes[`${suffix}Arrow`])}\n />\n </defs>\n <line\n x1={scale.x(from.x)}\n y1={scale.y(from.y)}\n x2={scale.x(aToB.x)}\n y2={scale.y(aToB.y)}\n {...rest}\n className={classNames(classes.line, disabled && classes.disabledSecondary, classes[correctness], className)}\n markerEnd={`url(#${props.markerId || markerId}-${suffix})`}\n />\n </g>\n );\n};\n\nRayLine.propTypes = {\n classes: PropTypes.object,\n className: PropTypes.string,\n disabled: PropTypes.bool,\n correctness: PropTypes.string,\n graphProps: PropTypes.any,\n from: types.PointType,\n to: types.PointType,\n markerId: PropTypes.string,\n};\n\nconst StyledRay = withStyles(rayStyles)(RayLine);\n\nconst Ray = lineBase(StyledRay);\nconst Component = lineToolComponent(Ray);\n\nexport default Component;\n"],"file":"component.js"}
@@ -29,6 +29,7 @@ var lineStyles = function lineStyles(theme) {
29
29
  return {
30
30
  line: _line.styles.line(theme),
31
31
  disabled: _line.styles.disabled(theme),
32
+ disabledSecondary: _line.styles.disabledSecondary(theme),
32
33
  correct: _line.styles.correct(theme, 'stroke'),
33
34
  incorrect: _line.styles.incorrect(theme, 'stroke'),
34
35
  missing: _line.styles.missing(theme, 'stroke')
@@ -52,7 +53,7 @@ var Line = function Line(props) {
52
53
  y1: scale.y(from.y),
53
54
  x2: scale.x(to.x),
54
55
  y2: scale.y(to.y),
55
- className: (0, _classnames["default"])(classes.line, disabled && classes.disabled, classes[correctness], className)
56
+ className: (0, _classnames["default"])(classes.line, disabled && classes.disabledSecondary, classes[correctness], className)
56
57
  }, rest));
57
58
  };
58
59
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/tools/segment/component.jsx"],"names":["lineStyles","theme","line","styles","disabled","correct","incorrect","missing","Line","props","className","classes","correctness","graphProps","from","to","rest","scale","x","y","propTypes","PropTypes","string","object","bool","any","types","PointType","StyledLine","Segment","Component"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;AACA;;;;AAEA,IAAMA,UAAU,GAAG,SAAbA,UAAa,CAACC,KAAD;AAAA,SAAY;AAC7BC,IAAAA,IAAI,EAAEC,aAAOD,IAAP,CAAYD,KAAZ,CADuB;AAE7BG,IAAAA,QAAQ,EAAED,aAAOC,QAAP,CAAgBH,KAAhB,CAFmB;AAG7BI,IAAAA,OAAO,EAAEF,aAAOE,OAAP,CAAeJ,KAAf,EAAsB,QAAtB,CAHoB;AAI7BK,IAAAA,SAAS,EAAEH,aAAOG,SAAP,CAAiBL,KAAjB,EAAwB,QAAxB,CAJkB;AAK7BM,IAAAA,OAAO,EAAEJ,aAAOI,OAAP,CAAeN,KAAf,EAAsB,QAAtB;AALoB,GAAZ;AAAA,CAAnB;;AAOO,IAAMO,IAAI,GAAG,SAAPA,IAAO,CAACC,KAAD,EAAW;AAC7B,MAAQC,SAAR,GAAqFD,KAArF,CAAQC,SAAR;AAAA,MAAmBC,OAAnB,GAAqFF,KAArF,CAAmBE,OAAnB;AAAA,MAA4BC,WAA5B,GAAqFH,KAArF,CAA4BG,WAA5B;AAAA,MAAyCR,QAAzC,GAAqFK,KAArF,CAAyCL,QAAzC;AAAA,MAAmDS,UAAnD,GAAqFJ,KAArF,CAAmDI,UAAnD;AAAA,MAA+DC,IAA/D,GAAqFL,KAArF,CAA+DK,IAA/D;AAAA,MAAqEC,EAArE,GAAqFN,KAArF,CAAqEM,EAArE;AAAA,MAA4EC,IAA5E,6CAAqFP,KAArF;AACA,MAAQQ,KAAR,GAAkBJ,UAAlB,CAAQI,KAAR;AAEA,sBACE;AACE,IAAA,MAAM,EAAC,OADT;AAEE,IAAA,WAAW,EAAC,GAFd;AAGE,IAAA,EAAE,EAAEA,KAAK,CAACC,CAAN,CAAQJ,IAAI,CAACI,CAAb,CAHN;AAIE,IAAA,EAAE,EAAED,KAAK,CAACE,CAAN,CAAQL,IAAI,CAACK,CAAb,CAJN;AAKE,IAAA,EAAE,EAAEF,KAAK,CAACC,CAAN,CAAQH,EAAE,CAACG,CAAX,CALN;AAME,IAAA,EAAE,EAAED,KAAK,CAACE,CAAN,CAAQJ,EAAE,CAACI,CAAX,CANN;AAOE,IAAA,SAAS,EAAE,4BAAWR,OAAO,CAACT,IAAnB,EAAyBE,QAAQ,IAAIO,OAAO,CAACP,QAA7C,EAAuDO,OAAO,CAACC,WAAD,CAA9D,EAA6EF,SAA7E;AAPb,KAQMM,IARN,EADF;AAYD,CAhBM;;;AAkBPR,IAAI,CAACY,SAAL,GAAiB;AACfV,EAAAA,SAAS,EAAEW,sBAAUC,MADN;AAEfX,EAAAA,OAAO,EAAEU,sBAAUE,MAFJ;AAGfX,EAAAA,WAAW,EAAES,sBAAUC,MAHR;AAIflB,EAAAA,QAAQ,EAAEiB,sBAAUG,IAJL;AAKfX,EAAAA,UAAU,EAAEQ,sBAAUI,GALP;AAMfX,EAAAA,IAAI,EAAEY,YAAMC,SANG;AAOfZ,EAAAA,EAAE,EAAEW,YAAMC;AAPK,CAAjB;AAUA,IAAMC,UAAU,GAAG,wBAAW5B,UAAX,EAAuBQ,IAAvB,CAAnB;AACA,IAAMqB,OAAO,GAAG,oBAASD,UAAT,CAAhB;AACA,IAAME,SAAS,GAAG,6BAAkBD,OAAlB,CAAlB;eAEeC,S","sourcesContent":["import { lineToolComponent, lineBase, styles } from '../shared/line';\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { types } from '@pie-lib/plot';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\n\nconst lineStyles = (theme) => ({\n line: styles.line(theme),\n disabled: styles.disabled(theme),\n correct: styles.correct(theme, 'stroke'),\n incorrect: styles.incorrect(theme, 'stroke'),\n missing: styles.missing(theme, 'stroke'),\n});\nexport const Line = (props) => {\n const { className, classes, correctness, disabled, graphProps, from, to, ...rest } = props;\n const { scale } = graphProps;\n\n return (\n <line\n stroke=\"green\"\n strokeWidth=\"6\"\n x1={scale.x(from.x)}\n y1={scale.y(from.y)}\n x2={scale.x(to.x)}\n y2={scale.y(to.y)}\n className={classNames(classes.line, disabled && classes.disabled, classes[correctness], className)}\n {...rest}\n />\n );\n};\n\nLine.propTypes = {\n className: PropTypes.string,\n classes: PropTypes.object,\n correctness: PropTypes.string,\n disabled: PropTypes.bool,\n graphProps: PropTypes.any,\n from: types.PointType,\n to: types.PointType,\n};\n\nconst StyledLine = withStyles(lineStyles)(Line);\nconst Segment = lineBase(StyledLine);\nconst Component = lineToolComponent(Segment);\n\nexport default Component;\n"],"file":"component.js"}
1
+ {"version":3,"sources":["../../../src/tools/segment/component.jsx"],"names":["lineStyles","theme","line","styles","disabled","disabledSecondary","correct","incorrect","missing","Line","props","className","classes","correctness","graphProps","from","to","rest","scale","x","y","propTypes","PropTypes","string","object","bool","any","types","PointType","StyledLine","Segment","Component"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;AACA;;;;AAEA,IAAMA,UAAU,GAAG,SAAbA,UAAa,CAACC,KAAD;AAAA,SAAY;AAC7BC,IAAAA,IAAI,EAAEC,aAAOD,IAAP,CAAYD,KAAZ,CADuB;AAE7BG,IAAAA,QAAQ,EAAED,aAAOC,QAAP,CAAgBH,KAAhB,CAFmB;AAG7BI,IAAAA,iBAAiB,EAAEF,aAAOE,iBAAP,CAAyBJ,KAAzB,CAHU;AAI7BK,IAAAA,OAAO,EAAEH,aAAOG,OAAP,CAAeL,KAAf,EAAsB,QAAtB,CAJoB;AAK7BM,IAAAA,SAAS,EAAEJ,aAAOI,SAAP,CAAiBN,KAAjB,EAAwB,QAAxB,CALkB;AAM7BO,IAAAA,OAAO,EAAEL,aAAOK,OAAP,CAAeP,KAAf,EAAsB,QAAtB;AANoB,GAAZ;AAAA,CAAnB;;AAQO,IAAMQ,IAAI,GAAG,SAAPA,IAAO,CAACC,KAAD,EAAW;AAC7B,MAAQC,SAAR,GAAqFD,KAArF,CAAQC,SAAR;AAAA,MAAmBC,OAAnB,GAAqFF,KAArF,CAAmBE,OAAnB;AAAA,MAA4BC,WAA5B,GAAqFH,KAArF,CAA4BG,WAA5B;AAAA,MAAyCT,QAAzC,GAAqFM,KAArF,CAAyCN,QAAzC;AAAA,MAAmDU,UAAnD,GAAqFJ,KAArF,CAAmDI,UAAnD;AAAA,MAA+DC,IAA/D,GAAqFL,KAArF,CAA+DK,IAA/D;AAAA,MAAqEC,EAArE,GAAqFN,KAArF,CAAqEM,EAArE;AAAA,MAA4EC,IAA5E,6CAAqFP,KAArF;AACA,MAAQQ,KAAR,GAAkBJ,UAAlB,CAAQI,KAAR;AAEA,sBACE;AACE,IAAA,MAAM,EAAC,OADT;AAEE,IAAA,WAAW,EAAC,GAFd;AAGE,IAAA,EAAE,EAAEA,KAAK,CAACC,CAAN,CAAQJ,IAAI,CAACI,CAAb,CAHN;AAIE,IAAA,EAAE,EAAED,KAAK,CAACE,CAAN,CAAQL,IAAI,CAACK,CAAb,CAJN;AAKE,IAAA,EAAE,EAAEF,KAAK,CAACC,CAAN,CAAQH,EAAE,CAACG,CAAX,CALN;AAME,IAAA,EAAE,EAAED,KAAK,CAACE,CAAN,CAAQJ,EAAE,CAACI,CAAX,CANN;AAOE,IAAA,SAAS,EAAE,4BAAWR,OAAO,CAACV,IAAnB,EAAyBE,QAAQ,IAAIQ,OAAO,CAACP,iBAA7C,EAAgEO,OAAO,CAACC,WAAD,CAAvE,EAAsFF,SAAtF;AAPb,KAQMM,IARN,EADF;AAYD,CAhBM;;;AAkBPR,IAAI,CAACY,SAAL,GAAiB;AACfV,EAAAA,SAAS,EAAEW,sBAAUC,MADN;AAEfX,EAAAA,OAAO,EAAEU,sBAAUE,MAFJ;AAGfX,EAAAA,WAAW,EAAES,sBAAUC,MAHR;AAIfnB,EAAAA,QAAQ,EAAEkB,sBAAUG,IAJL;AAKfX,EAAAA,UAAU,EAAEQ,sBAAUI,GALP;AAMfX,EAAAA,IAAI,EAAEY,YAAMC,SANG;AAOfZ,EAAAA,EAAE,EAAEW,YAAMC;AAPK,CAAjB;AAUA,IAAMC,UAAU,GAAG,wBAAW7B,UAAX,EAAuBS,IAAvB,CAAnB;AACA,IAAMqB,OAAO,GAAG,oBAASD,UAAT,CAAhB;AACA,IAAME,SAAS,GAAG,6BAAkBD,OAAlB,CAAlB;eAEeC,S","sourcesContent":["import { lineToolComponent, lineBase, styles } from '../shared/line';\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { types } from '@pie-lib/plot';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\n\nconst lineStyles = (theme) => ({\n line: styles.line(theme),\n disabled: styles.disabled(theme),\n disabledSecondary: styles.disabledSecondary(theme),\n correct: styles.correct(theme, 'stroke'),\n incorrect: styles.incorrect(theme, 'stroke'),\n missing: styles.missing(theme, 'stroke'),\n});\nexport const Line = (props) => {\n const { className, classes, correctness, disabled, graphProps, from, to, ...rest } = props;\n const { scale } = graphProps;\n\n return (\n <line\n stroke=\"green\"\n strokeWidth=\"6\"\n x1={scale.x(from.x)}\n y1={scale.y(from.y)}\n x2={scale.x(to.x)}\n y2={scale.y(to.y)}\n className={classNames(classes.line, disabled && classes.disabledSecondary, classes[correctness], className)}\n {...rest}\n />\n );\n};\n\nLine.propTypes = {\n className: PropTypes.string,\n classes: PropTypes.object,\n correctness: PropTypes.string,\n disabled: PropTypes.bool,\n graphProps: PropTypes.any,\n from: types.PointType,\n to: types.PointType,\n};\n\nconst StyledLine = withStyles(lineStyles)(Line);\nconst Segment = lineBase(StyledLine);\nconst Component = lineToolComponent(Segment);\n\nexport default Component;\n"],"file":"component.js"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var CorrectSVG = function CorrectSVG(_ref) {
13
+ var scale = _ref.scale,
14
+ x = _ref.x,
15
+ y = _ref.y;
16
+ return /*#__PURE__*/_react["default"].createElement("svg", {
17
+ width: "11",
18
+ height: "13",
19
+ viewBox: "0 0 14 14",
20
+ fill: "none",
21
+ stroke: "#ffffff",
22
+ x: scale.x(x) - 5,
23
+ y: scale.y(y) - 6,
24
+ style: {
25
+ pointerEvents: 'none'
26
+ },
27
+ xmlns: "http://www.w3.org/2000/svg"
28
+ }, /*#__PURE__*/_react["default"].createElement("path", {
29
+ d: "M10.1953 2.46875C10.3125 2.35156 10.5 2.35156 10.5938 2.46875L11.2734 3.125C11.3672 3.24219 11.3672 3.42969 11.2734 3.52344L4.24219 10.5547C4.125 10.6719 3.96094 10.6719 3.84375 10.5547L0.703125 7.4375C0.609375 7.32031 0.609375 7.13281 0.703125 7.03906L1.38281 6.35938C1.47656 6.26562 1.66406 6.26562 1.78125 6.35938L4.03125 8.63281L10.1953 2.46875Z",
30
+ fill: "white"
31
+ }));
32
+ };
33
+
34
+ var _default = CorrectSVG;
35
+ exports["default"] = _default;
36
+ //# sourceMappingURL=CorrectSVG.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/tools/shared/icons/CorrectSVG.jsx"],"names":["CorrectSVG","scale","x","y","pointerEvents"],"mappings":";;;;;;;;;AAAA;;AAEA,IAAMA,UAAU,GAAG,SAAbA,UAAa;AAAA,MAAGC,KAAH,QAAGA,KAAH;AAAA,MAAUC,CAAV,QAAUA,CAAV;AAAA,MAAaC,CAAb,QAAaA,CAAb;AAAA,sBACjB;AACE,IAAA,KAAK,EAAC,IADR;AAEE,IAAA,MAAM,EAAC,IAFT;AAGE,IAAA,OAAO,EAAC,WAHV;AAIE,IAAA,IAAI,EAAC,MAJP;AAKE,IAAA,MAAM,EAAC,SALT;AAME,IAAA,CAAC,EAAEF,KAAK,CAACC,CAAN,CAAQA,CAAR,IAAa,CANlB;AAOE,IAAA,CAAC,EAAED,KAAK,CAACE,CAAN,CAAQA,CAAR,IAAa,CAPlB;AAQE,IAAA,KAAK,EAAE;AAAEC,MAAAA,aAAa,EAAE;AAAjB,KART;AASE,IAAA,KAAK,EAAC;AATR,kBAWE;AACE,IAAA,CAAC,EAAC,+VADJ;AAEE,IAAA,IAAI,EAAC;AAFP,IAXF,CADiB;AAAA,CAAnB;;eAmBeJ,U","sourcesContent":["import React from 'react';\n\nconst CorrectSVG = ({ scale, x, y }) => (\n <svg\n width=\"11\"\n height=\"13\"\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n stroke=\"#ffffff\"\n x={scale.x(x) - 5}\n y={scale.y(y) - 6}\n style={{ pointerEvents: 'none' }}\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M10.1953 2.46875C10.3125 2.35156 10.5 2.35156 10.5938 2.46875L11.2734 3.125C11.3672 3.24219 11.3672 3.42969 11.2734 3.52344L4.24219 10.5547C4.125 10.6719 3.96094 10.6719 3.84375 10.5547L0.703125 7.4375C0.609375 7.32031 0.609375 7.13281 0.703125 7.03906L1.38281 6.35938C1.47656 6.26562 1.66406 6.26562 1.78125 6.35938L4.03125 8.63281L10.1953 2.46875Z\"\n fill=\"white\"\n />\n </svg>\n);\n\nexport default CorrectSVG;\n"],"file":"CorrectSVG.js"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var IncorrectSVG = function IncorrectSVG(_ref) {
13
+ var scale = _ref.scale,
14
+ x = _ref.x,
15
+ y = _ref.y;
16
+ return /*#__PURE__*/_react["default"].createElement("svg", {
17
+ width: "14px",
18
+ height: "14px",
19
+ viewBox: "0 0 24 24",
20
+ fill: "none",
21
+ stroke: "#ffffff",
22
+ strokeWidth: "2",
23
+ x: scale.x(x) - 7,
24
+ y: scale.y(y) - 7,
25
+ style: {
26
+ pointerEvents: 'none'
27
+ },
28
+ xmlns: "http://www.w3.org/2000/svg"
29
+ }, /*#__PURE__*/_react["default"].createElement("path", {
30
+ d: "M17.705 7.705l-1.41-1.41L12 10.59 7.705 6.295l-1.41 1.41L10.59 12l-4.295 4.295 1.41 1.41L12 13.41l4.295 4.295 1.41-1.41L13.41 12l4.295-4.295z"
31
+ }));
32
+ };
33
+
34
+ var _default = IncorrectSVG;
35
+ exports["default"] = _default;
36
+ //# sourceMappingURL=IncorrectSVG.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/tools/shared/icons/IncorrectSVG.jsx"],"names":["IncorrectSVG","scale","x","y","pointerEvents"],"mappings":";;;;;;;;;AAAA;;AAEA,IAAMA,YAAY,GAAG,SAAfA,YAAe;AAAA,MAAGC,KAAH,QAAGA,KAAH;AAAA,MAAUC,CAAV,QAAUA,CAAV;AAAA,MAAaC,CAAb,QAAaA,CAAb;AAAA,sBACnB;AACE,IAAA,KAAK,EAAC,MADR;AAEE,IAAA,MAAM,EAAC,MAFT;AAGE,IAAA,OAAO,EAAC,WAHV;AAIE,IAAA,IAAI,EAAC,MAJP;AAKE,IAAA,MAAM,EAAC,SALT;AAME,IAAA,WAAW,EAAC,GANd;AAOE,IAAA,CAAC,EAAEF,KAAK,CAACC,CAAN,CAAQA,CAAR,IAAa,CAPlB;AAQE,IAAA,CAAC,EAAED,KAAK,CAACE,CAAN,CAAQA,CAAR,IAAa,CARlB;AASE,IAAA,KAAK,EAAE;AAAEC,MAAAA,aAAa,EAAE;AAAjB,KATT;AAUE,IAAA,KAAK,EAAC;AAVR,kBAYE;AAAM,IAAA,CAAC,EAAC;AAAR,IAZF,CADmB;AAAA,CAArB;;eAiBeJ,Y","sourcesContent":["import React from 'react';\n\nconst IncorrectSVG = ({ scale, x, y }) => (\n <svg\n width=\"14px\"\n height=\"14px\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"#ffffff\"\n strokeWidth=\"2\"\n x={scale.x(x) - 7}\n y={scale.y(y) - 7}\n style={{ pointerEvents: 'none' }}\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M17.705 7.705l-1.41-1.41L12 10.59 7.705 6.295l-1.41 1.41L10.59 12l-4.295 4.295 1.41 1.41L12 13.41l4.295 4.295 1.41-1.41L13.41 12l4.295-4.295z\"></path>\n </svg>\n);\n\nexport default IncorrectSVG;\n"],"file":"IncorrectSVG.js"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var MissingSVG = function MissingSVG(_ref) {
13
+ var scale = _ref.scale,
14
+ x = _ref.x,
15
+ y = _ref.y;
16
+ return /*#__PURE__*/_react["default"].createElement("svg", {
17
+ width: "9",
18
+ height: "10",
19
+ viewBox: "0 0 9 10",
20
+ fill: "none",
21
+ xmlns: "http://www.w3.org/2000/svg",
22
+ x: scale.x(x) - 4.5,
23
+ y: scale.y(y) - 5,
24
+ style: {
25
+ pointerEvents: 'none'
26
+ }
27
+ }, /*#__PURE__*/_react["default"].createElement("path", {
28
+ d: "M0.125 3.76562V1.34375C0.125 1.08984 0.320312 0.875 0.59375 0.875H3.01562C3.13281 0.875 3.25 0.992188 3.25 1.10938V1.89062C3.25 2.02734 3.13281 2.125 3.01562 2.125H1.375V3.76562C1.375 3.90234 1.25781 4 1.14062 4H0.359375C0.222656 4 0.125 3.90234 0.125 3.76562ZM5.75 1.10938C5.75 0.992188 5.84766 0.875 5.98438 0.875H8.40625C8.66016 0.875 8.875 1.08984 8.875 1.34375V3.76562C8.875 3.90234 8.75781 4 8.64062 4H7.85938C7.72266 4 7.625 3.90234 7.625 3.76562V2.125H5.98438C5.84766 2.125 5.75 2.02734 5.75 1.89062V1.10938ZM8.64062 6.5C8.75781 6.5 8.875 6.61719 8.875 6.73438V9.15625C8.875 9.42969 8.66016 9.625 8.40625 9.625H5.98438C5.84766 9.625 5.75 9.52734 5.75 9.39062V8.60938C5.75 8.49219 5.84766 8.375 5.98438 8.375H7.625V6.73438C7.625 6.61719 7.72266 6.5 7.85938 6.5H8.64062ZM3.25 9.39062C3.25 9.52734 3.13281 9.625 3.01562 9.625H0.59375C0.320312 9.625 0.125 9.42969 0.125 9.15625V6.73438C0.125 6.61719 0.222656 6.5 0.359375 6.5H1.14062C1.25781 6.5 1.375 6.61719 1.375 6.73438V8.375H3.01562C3.13281 8.375 3.25 8.49219 3.25 8.60938V9.39062Z",
29
+ fill: "white"
30
+ }));
31
+ };
32
+
33
+ var _default = MissingSVG;
34
+ exports["default"] = _default;
35
+ //# sourceMappingURL=MissingSVG.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/tools/shared/icons/MissingSVG.jsx"],"names":["MissingSVG","scale","x","y","pointerEvents"],"mappings":";;;;;;;;;AAAA;;AAEA,IAAMA,UAAU,GAAG,SAAbA,UAAa;AAAA,MAAGC,KAAH,QAAGA,KAAH;AAAA,MAAUC,CAAV,QAAUA,CAAV;AAAA,MAAaC,CAAb,QAAaA,CAAb;AAAA,sBACjB;AACE,IAAA,KAAK,EAAC,GADR;AAEE,IAAA,MAAM,EAAC,IAFT;AAGE,IAAA,OAAO,EAAC,UAHV;AAIE,IAAA,IAAI,EAAC,MAJP;AAKE,IAAA,KAAK,EAAC,4BALR;AAME,IAAA,CAAC,EAAEF,KAAK,CAACC,CAAN,CAAQA,CAAR,IAAa,GANlB;AAOE,IAAA,CAAC,EAAED,KAAK,CAACE,CAAN,CAAQA,CAAR,IAAa,CAPlB;AAQE,IAAA,KAAK,EAAE;AAAEC,MAAAA,aAAa,EAAE;AAAjB;AART,kBAUE;AACE,IAAA,CAAC,EAAC,khCADJ;AAEE,IAAA,IAAI,EAAC;AAFP,IAVF,CADiB;AAAA,CAAnB;;eAkBeJ,U","sourcesContent":["import React from 'react';\n\nconst MissingSVG = ({ scale, x, y }) => (\n <svg\n width=\"9\"\n height=\"10\"\n viewBox=\"0 0 9 10\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n x={scale.x(x) - 4.5}\n y={scale.y(y) - 5}\n style={{ pointerEvents: 'none' }}\n >\n <path\n d=\"M0.125 3.76562V1.34375C0.125 1.08984 0.320312 0.875 0.59375 0.875H3.01562C3.13281 0.875 3.25 0.992188 3.25 1.10938V1.89062C3.25 2.02734 3.13281 2.125 3.01562 2.125H1.375V3.76562C1.375 3.90234 1.25781 4 1.14062 4H0.359375C0.222656 4 0.125 3.90234 0.125 3.76562ZM5.75 1.10938C5.75 0.992188 5.84766 0.875 5.98438 0.875H8.40625C8.66016 0.875 8.875 1.08984 8.875 1.34375V3.76562C8.875 3.90234 8.75781 4 8.64062 4H7.85938C7.72266 4 7.625 3.90234 7.625 3.76562V2.125H5.98438C5.84766 2.125 5.75 2.02734 5.75 1.89062V1.10938ZM8.64062 6.5C8.75781 6.5 8.875 6.61719 8.875 6.73438V9.15625C8.875 9.42969 8.66016 9.625 8.40625 9.625H5.98438C5.84766 9.625 5.75 9.52734 5.75 9.39062V8.60938C5.75 8.49219 5.84766 8.375 5.98438 8.375H7.625V6.73438C7.625 6.61719 7.72266 6.5 7.85938 6.5H8.64062ZM3.25 9.39062C3.25 9.52734 3.13281 9.625 3.01562 9.625H0.59375C0.320312 9.625 0.125 9.42969 0.125 9.15625V6.73438C0.125 6.61719 0.222656 6.5 0.359375 6.5H1.14062C1.25781 6.5 1.375 6.61719 1.375 6.73438V8.375H3.01562C3.13281 8.375 3.25 8.49219 3.25 8.60938V9.39062Z\"\n fill=\"white\"\n />\n </svg>\n);\n\nexport default MissingSVG;\n"],"file":"MissingSVG.js"}
@@ -117,7 +117,11 @@ var lineToolComponent = function lineToolComponent(Component) {
117
117
  mark: undefined
118
118
  }, function () {
119
119
  var type = update.type;
120
- var shouldNotChange = type && (type === 'parabola' || type === 'sine') && (0, _utils.sameAxes)(update.from, update.to);
120
+ var shouldNotChange = type && (type === 'parabola' || type === 'sine' || type === 'absolute' || type === 'exponential') && (0, _utils.sameAxes)(update.from, update.to);
121
+
122
+ if (!shouldNotChange && type && type === 'exponential' && update.from && update.to) {
123
+ shouldNotChange = update.from.y === 0 || update.to.y === 0 || update.from.y * update.to.y < 0;
124
+ }
121
125
 
122
126
  if (!(0, _isEqual["default"])(mark, update) && !shouldNotChange) {
123
127
  onChange(mark, update);
@@ -188,7 +192,8 @@ var lineToolComponent = function lineToolComponent(Component) {
188
192
  onClick = _this$props3.onClick,
189
193
  labelNode = _this$props3.labelNode,
190
194
  labelModeEnabled = _this$props3.labelModeEnabled,
191
- coordinatesOnHover = _this$props3.coordinatesOnHover;
195
+ coordinatesOnHover = _this$props3.coordinatesOnHover,
196
+ limitLabeling = _this$props3.limitLabeling;
192
197
  var mark = this.state.mark ? this.state.mark : this.props.mark;
193
198
  var from = (0, _cloneDeep["default"])(mark.from);
194
199
  var to = (0, _cloneDeep["default"])(mark.to);
@@ -221,7 +226,8 @@ var lineToolComponent = function lineToolComponent(Component) {
221
226
  onDragStart: this.startDrag,
222
227
  onDragStop: this.stopDrag,
223
228
  labelNode: labelNode,
224
- labelModeEnabled: labelModeEnabled
229
+ labelModeEnabled: labelModeEnabled,
230
+ limitLabeling: limitLabeling
225
231
  });
226
232
  }
227
233
  }]);
@@ -364,11 +370,29 @@ var lineBase = function lineBase(Comp, opts) {
364
370
 
365
371
  changeMarkProps((0, _defineProperty2["default"])({}, type, update));
366
372
  });
367
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "clickPoint", function (point, type) {
373
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "clickPoint", function (point, type, data) {
368
374
  var _this2$props5 = _this2.props,
369
375
  changeMarkProps = _this2$props5.changeMarkProps,
376
+ disabled = _this2$props5.disabled,
370
377
  from = _this2$props5.from,
371
- to = _this2$props5.to;
378
+ to = _this2$props5.to,
379
+ labelModeEnabled = _this2$props5.labelModeEnabled,
380
+ limitLabeling = _this2$props5.limitLabeling,
381
+ onClick = _this2$props5.onClick;
382
+
383
+ if (!labelModeEnabled) {
384
+ onClick(point || data);
385
+ return;
386
+ }
387
+
388
+ if (disabled) {
389
+ return;
390
+ } // limit labeling the points of the line
391
+
392
+
393
+ if (limitLabeling) {
394
+ return;
395
+ }
372
396
 
373
397
  if (type === 'middle' && !point && from && to) {
374
398
  point = _objectSpread(_objectSpread({}, point), (0, _utils.getMiddleOfTwoPoints)(from, to));
@@ -476,9 +500,9 @@ var lineBase = function lineBase(Comp, opts) {
476
500
  middle: middle,
477
501
  onDrag: this.dragComp
478
502
  }, common, {
479
- onClick: labelModeEnabled ? function () {
480
- return _this3.clickPoint(middle, 'middle');
481
- } : common.onClick
503
+ onClick: function onClick(data) {
504
+ return _this3.clickPoint(middle, 'middle', data);
505
+ }
482
506
  })), lineLabelNode, /*#__PURE__*/_react["default"].createElement(FromPoint, (0, _extends2["default"])({
483
507
  x: from.x,
484
508
  y: from.y,
@@ -486,9 +510,9 @@ var lineBase = function lineBase(Comp, opts) {
486
510
  coordinatesOnHover: coordinatesOnHover,
487
511
  onDrag: this.dragFrom
488
512
  }, common, {
489
- onClick: labelModeEnabled ? function () {
490
- return _this3.clickPoint(from, 'from');
491
- } : common.onClick
513
+ onClick: function onClick(data) {
514
+ return _this3.clickPoint(from, 'from', data);
515
+ }
492
516
  })), fromLabelNode, to && /*#__PURE__*/_react["default"].createElement(ToPoint, (0, _extends2["default"])({
493
517
  x: to.x,
494
518
  y: to.y,
@@ -498,9 +522,9 @@ var lineBase = function lineBase(Comp, opts) {
498
522
  coordinatesOnHover: coordinatesOnHover,
499
523
  onDrag: this.dragTo
500
524
  }, common, {
501
- onClick: labelModeEnabled ? function () {
502
- return _this3.clickPoint(to, 'to');
503
- } : common.onClick
525
+ onClick: function onClick(data) {
526
+ return _this3.clickPoint(to, 'to', data);
527
+ }
504
528
  })), toLabelNode);
505
529
  }
506
530
  }]);
@@ -531,22 +555,27 @@ var styles = {
531
555
  line: function line() {
532
556
  return {
533
557
  fill: 'transparent',
534
- stroke: _renderUi.color.primaryLight(),
558
+ stroke: _renderUi.color.defaults.BLACK,
535
559
  strokeWidth: 3,
536
560
  transition: 'stroke 200ms ease-in, stroke-width 200ms ease-in',
537
561
  '&:hover': {
538
562
  strokeWidth: 6,
539
- stroke: _renderUi.color.primaryDark()
563
+ stroke: _renderUi.color.defaults.PRIMARY_DARK
540
564
  }
541
565
  };
542
566
  },
543
567
  arrow: function arrow() {
544
568
  return {
545
- fill: _renderUi.color.secondary()
569
+ fill: _renderUi.color.defaults.BLACK
546
570
  };
547
571
  },
548
572
  disabledArrow: function disabledArrow() {
549
- return _objectSpread({}, (0, _styles.disabled)());
573
+ return _objectSpread({}, (0, _styles.disabledSecondary)());
574
+ },
575
+ disabledSecondary: function disabledSecondary() {
576
+ return _objectSpread(_objectSpread({}, (0, _styles.disabledSecondary)('stroke')), {}, {
577
+ strokeWidth: 2
578
+ });
550
579
  },
551
580
  disabled: function disabled() {
552
581
  return _objectSpread(_objectSpread({}, (0, _styles.disabled)('stroke')), {}, {
@@ -560,7 +589,10 @@ var styles = {
560
589
  return _objectSpread({}, (0, _styles.incorrect)(key));
561
590
  },
562
591
  missing: function missing(theme, key) {
563
- return _objectSpread({}, (0, _styles.missing)(key));
592
+ return _objectSpread(_objectSpread({}, (0, _styles.missing)(key)), {}, {
593
+ strokeWidth: 1,
594
+ strokeDasharray: '4 3'
595
+ });
564
596
  }
565
597
  };
566
598
  exports.styles = styles;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/tools/shared/line/index.jsx"],"names":["lineTool","type","Component","addPoint","point","mark","root","building","from","to","lineToolComponent","props","setState","onChange","update","state","undefined","shouldNotChange","middle","graphProps","onClick","labelNode","labelModeEnabled","coordinatesOnHover","isBackground","disabled","correctness","changeMark","changeMarkProps","startDrag","stopDrag","React","types","ToolPropTypeFields","GraphPropsType","isRequired","dragOpts","bounds","domain","range","area","utils","lineToArea","anchorPoint","fromDelta","delta","add","lineBase","Comp","opts","DraggableComp","FromPoint","BasePoint","ToPoint","LineBase","draggedFrom","draggedTo","label","updated","onChangePoint","input","focus","onDragStart","onDragStop","common","angle","trig","toDegrees","fromLabelNode","toLabelNode","lineLabelNode","hasOwnProperty","ReactDOM","createPortal","r","labelChange","dragComp","clickPoint","x","y","dragFrom","dragTo","PropTypes","bool","PointType","func","string","object","styles","line","fill","stroke","color","primaryLight","strokeWidth","transition","primaryDark","arrow","secondary","disabledArrow","correct","theme","key","incorrect","missing"],"mappings":"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","sourcesContent":["import React from 'react';\nimport isEqual from 'lodash/isEqual';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { BasePoint } from '../point';\nimport { types, utils, gridDraggable, trig } from '@pie-lib/plot';\nimport PropTypes from 'prop-types';\nimport { disabled, correct, incorrect, missing } from '../styles';\nimport ReactDOM from 'react-dom';\nimport MarkLabel from '../../../mark-label';\nimport isEmpty from 'lodash/isEmpty';\nimport { color } from '@pie-lib/render-ui';\nimport { getMiddleOfTwoPoints, equalPoints, sameAxes } from '../../../utils';\n\nexport const lineTool = (type, Component) => () => ({\n type,\n Component,\n addPoint: (point, mark) => {\n if (mark && equalPoints(mark.root, point)) {\n return mark;\n }\n\n if (!mark) {\n return {\n type,\n building: true,\n from: point,\n };\n }\n\n if (equalPoints(point, mark.from)) {\n return { ...mark };\n }\n\n return { ...mark, building: false, to: point };\n },\n});\n\nexport const lineToolComponent = (Component) => {\n return class LineToolComponent extends React.Component {\n static propTypes = {\n ...types.ToolPropTypeFields,\n graphProps: types.GraphPropsType.isRequired,\n };\n\n constructor(props) {\n super(props);\n this.state = {};\n }\n\n startDrag = () => this.setState({ mark: { ...this.props.mark } });\n\n stopDrag = () => {\n const { onChange, mark } = this.props;\n const update = { ...this.state.mark };\n\n this.setState({ mark: undefined }, () => {\n const { type } = update;\n const shouldNotChange = type && (type === 'parabola' || type === 'sine') && sameAxes(update.from, update.to);\n\n if (!isEqual(mark, update) && !shouldNotChange) {\n onChange(mark, update);\n }\n });\n };\n\n changeMark = ({ from, to, middle }) => {\n let mark = { ...this.state.mark, from, to };\n\n if (middle) {\n mark = { ...mark, middle };\n }\n\n this.setState({ mark });\n };\n\n changeMarkProps = ({ from, to, middle }) => {\n const { onChange, mark } = this.props;\n let update = { ...mark, ...this.state.mark };\n\n if (from) {\n update = { ...update, from };\n }\n\n if (to) {\n update = { ...update, to };\n }\n\n if (middle) {\n update = { ...update, middle };\n }\n\n if (!isEqual(mark, update)) {\n onChange(mark, update);\n }\n };\n\n render() {\n const { graphProps, onClick, labelNode, labelModeEnabled, coordinatesOnHover } = this.props;\n const mark = this.state.mark ? this.state.mark : this.props.mark;\n\n const from = cloneDeep(mark.from);\n const to = cloneDeep(mark.to);\n const middle = cloneDeep(mark.middle);\n\n // SET DISABLED\n // if it's a background mark, we need to force disable it\n if (from && mark.isBackground) {\n from.disabled = true;\n }\n\n if (to && mark.isBackground) {\n to.disabled = true;\n }\n\n if (middle && mark.isBackground) {\n middle.disabled = true;\n }\n\n return (\n <Component\n disabled={mark.disabled}\n coordinatesOnHover={coordinatesOnHover}\n correctness={mark.correctness}\n from={from}\n to={to}\n middle={middle}\n graphProps={graphProps}\n onChange={this.changeMark}\n changeMarkProps={this.changeMarkProps}\n onClick={onClick}\n onDragStart={this.startDrag}\n onDragStop={this.stopDrag}\n labelNode={labelNode}\n labelModeEnabled={labelModeEnabled}\n />\n );\n }\n };\n};\n\nconst dragOpts = () => ({\n bounds: (props, { domain, range }) => {\n const area = utils.lineToArea(props.from, props.to);\n return utils.bounds(area, domain, range);\n },\n anchorPoint: (props) => {\n const { from } = props;\n return from;\n },\n fromDelta: (props, delta) => {\n const { from, to } = props;\n return {\n from: utils.point(from).add(utils.point(delta)),\n to: utils.point(to).add(utils.point(delta)),\n };\n },\n});\n\nexport const lineBase = (Comp, opts) => {\n const DraggableComp = gridDraggable(dragOpts())(Comp);\n\n const FromPoint = opts && opts.from ? opts.from : BasePoint;\n const ToPoint = opts && opts.to ? opts.to : BasePoint;\n\n class LineBase extends React.Component {\n static propTypes = {\n coordinatesOnHover: PropTypes.bool,\n graphProps: types.GraphPropsType,\n from: types.PointType,\n to: types.PointType,\n middle: types.PointType,\n onChange: PropTypes.func,\n onDragStart: PropTypes.func,\n onDragStop: PropTypes.func,\n onClick: PropTypes.func,\n correctness: PropTypes.string,\n disabled: PropTypes.bool,\n labelNode: PropTypes.object,\n labelModeEnabled: PropTypes.bool,\n changeMarkProps: PropTypes.func,\n };\n\n onChangePoint = (point) => {\n const { middle, onChange } = this.props;\n const { from, to } = point;\n\n // because point.from.label and point.to.label can be different\n if (!equalPoints(from, to)) {\n if (middle) {\n point.middle = { ...middle, ...getMiddleOfTwoPoints(from, to) };\n }\n\n onChange(point);\n }\n };\n\n dragComp = ({ from: draggedFrom, to: draggedTo }) => {\n const { from, to, onChange, middle } = this.props;\n\n if (from.label) {\n draggedFrom.label = from.label;\n }\n\n if (to.label) {\n draggedTo.label = to.label;\n }\n\n const updated = { from: draggedFrom, to: draggedTo };\n\n if (middle) {\n updated.middle = { ...middle, ...getMiddleOfTwoPoints(draggedFrom, draggedTo) };\n }\n\n onChange(updated);\n };\n\n dragFrom = (draggedFrom) => {\n const { from, to } = this.props;\n\n if (from.label) {\n draggedFrom.label = from.label;\n }\n\n if (!equalPoints(draggedFrom, to)) {\n this.onChangePoint({ from: draggedFrom, to: to });\n }\n };\n\n dragTo = (draggedTo) => {\n const { from, to } = this.props;\n\n if (to.label) {\n draggedTo.label = to.label;\n }\n\n if (!equalPoints(from, draggedTo)) {\n this.onChangePoint({ from: from, to: draggedTo });\n }\n };\n\n labelChange = (point, type) => {\n const { changeMarkProps } = this.props;\n const update = { ...point };\n\n if (!point.label || isEmpty(point.label)) {\n delete update.label;\n }\n\n changeMarkProps({ [type]: update });\n };\n\n clickPoint = (point, type) => {\n const { changeMarkProps, from, to } = this.props;\n\n if (type === 'middle' && !point && from && to) {\n point = { ...point, ...getMiddleOfTwoPoints(from, to) };\n }\n\n changeMarkProps({ from, to, [type]: { label: '', ...point } });\n\n if (this.input[type]) {\n this.input[type].focus();\n }\n };\n\n // IMPORTANT, do not remove\n input = {};\n\n render() {\n const {\n coordinatesOnHover,\n graphProps,\n onDragStart,\n onDragStop,\n from,\n to,\n middle,\n disabled,\n correctness,\n onClick,\n labelNode,\n labelModeEnabled,\n } = this.props;\n const common = { graphProps, onDragStart, onDragStop, disabled, correctness, onClick };\n const angle = to ? trig.toDegrees(trig.angle(from, to)) : 0;\n\n let fromLabelNode = null;\n let toLabelNode = null;\n let lineLabelNode = null;\n\n if (labelNode) {\n if (from && from.hasOwnProperty('label')) {\n fromLabelNode = ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input.from = r)}\n disabled={!labelModeEnabled}\n mark={from}\n graphProps={graphProps}\n onChange={(label) => this.labelChange({ ...from, label }, 'from')}\n />,\n labelNode,\n );\n }\n\n if (to && to.hasOwnProperty('label')) {\n toLabelNode = ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input.to = r)}\n disabled={!labelModeEnabled}\n mark={to}\n graphProps={graphProps}\n onChange={(label) => this.labelChange({ ...to, label }, 'to')}\n />,\n labelNode,\n );\n }\n\n if (middle && middle.hasOwnProperty('label')) {\n lineLabelNode = ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input.middle = r)}\n disabled={!labelModeEnabled}\n mark={middle}\n graphProps={graphProps}\n onChange={(label) => this.labelChange({ ...middle, label }, 'middle')}\n />,\n labelNode,\n );\n }\n }\n\n return (\n <g>\n {to && (\n <DraggableComp\n from={from}\n to={to}\n middle={middle}\n onDrag={this.dragComp}\n {...common}\n onClick={labelModeEnabled ? () => this.clickPoint(middle, 'middle') : common.onClick}\n />\n )}\n {lineLabelNode}\n\n <FromPoint\n x={from.x}\n y={from.y}\n labelNode={labelNode}\n coordinatesOnHover={coordinatesOnHover}\n onDrag={this.dragFrom}\n {...common}\n onClick={labelModeEnabled ? () => this.clickPoint(from, 'from') : common.onClick}\n />\n {fromLabelNode}\n\n {to && (\n <ToPoint\n x={to.x}\n y={to.y}\n angle={angle} //angle + 45}\n labelNode={labelNode}\n coordinatesOnHover={coordinatesOnHover}\n onDrag={this.dragTo}\n {...common}\n onClick={labelModeEnabled ? () => this.clickPoint(to, 'to') : common.onClick}\n />\n )}\n {toLabelNode}\n </g>\n );\n }\n }\n\n return LineBase;\n};\n\nexport const styles = {\n line: () => ({\n fill: 'transparent',\n stroke: color.primaryLight(),\n strokeWidth: 3,\n transition: 'stroke 200ms ease-in, stroke-width 200ms ease-in',\n '&:hover': {\n strokeWidth: 6,\n stroke: color.primaryDark(),\n },\n }),\n arrow: () => ({\n fill: color.secondary(),\n }),\n disabledArrow: () => ({\n ...disabled(),\n }),\n disabled: () => ({\n ...disabled('stroke'),\n strokeWidth: 2,\n }),\n correct: (theme, key) => ({\n ...correct(key),\n }),\n incorrect: (theme, key) => ({\n ...incorrect(key),\n }),\n missing: (theme, key) => ({\n ...missing(key),\n }),\n};\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../../src/tools/shared/line/index.jsx"],"names":["lineTool","type","Component","addPoint","point","mark","root","building","from","to","lineToolComponent","props","setState","onChange","update","state","undefined","shouldNotChange","y","middle","graphProps","onClick","labelNode","labelModeEnabled","coordinatesOnHover","limitLabeling","isBackground","disabled","correctness","changeMark","changeMarkProps","startDrag","stopDrag","React","types","ToolPropTypeFields","GraphPropsType","isRequired","dragOpts","bounds","domain","range","area","utils","lineToArea","anchorPoint","fromDelta","delta","add","lineBase","Comp","opts","DraggableComp","FromPoint","BasePoint","ToPoint","LineBase","draggedFrom","draggedTo","label","updated","onChangePoint","data","input","focus","onDragStart","onDragStop","common","angle","trig","toDegrees","fromLabelNode","toLabelNode","lineLabelNode","hasOwnProperty","ReactDOM","createPortal","r","labelChange","dragComp","clickPoint","x","dragFrom","dragTo","PropTypes","bool","PointType","func","string","object","styles","line","fill","stroke","color","defaults","BLACK","strokeWidth","transition","PRIMARY_DARK","arrow","disabledArrow","disabledSecondary","correct","theme","key","incorrect","missing","strokeDasharray"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAEO,IAAMA,QAAQ,GAAG,SAAXA,QAAW,CAACC,IAAD,EAAOC,SAAP;AAAA,SAAqB;AAAA,WAAO;AAClDD,MAAAA,IAAI,EAAJA,IADkD;AAElDC,MAAAA,SAAS,EAATA,SAFkD;AAGlDC,MAAAA,QAAQ,EAAE,kBAACC,KAAD,EAAQC,IAAR,EAAiB;AACzB,YAAIA,IAAI,IAAI,wBAAYA,IAAI,CAACC,IAAjB,EAAuBF,KAAvB,CAAZ,EAA2C;AACzC,iBAAOC,IAAP;AACD;;AAED,YAAI,CAACA,IAAL,EAAW;AACT,iBAAO;AACLJ,YAAAA,IAAI,EAAJA,IADK;AAELM,YAAAA,QAAQ,EAAE,IAFL;AAGLC,YAAAA,IAAI,EAAEJ;AAHD,WAAP;AAKD;;AAED,YAAI,wBAAYA,KAAZ,EAAmBC,IAAI,CAACG,IAAxB,CAAJ,EAAmC;AACjC,mCAAYH,IAAZ;AACD;;AAED,+CAAYA,IAAZ;AAAkBE,UAAAA,QAAQ,EAAE,KAA5B;AAAmCE,UAAAA,EAAE,EAAEL;AAAvC;AACD;AArBiD,KAAP;AAAA,GAArB;AAAA,CAAjB;;;;AAwBA,IAAMM,iBAAiB,GAAG,SAApBA,iBAAoB,CAACR,SAAD,EAAe;AAAA;;AAC9C;AAAA;;AAAA;;AAME,+BAAYS,KAAZ,EAAmB;AAAA;;AAAA;AACjB,gCAAMA,KAAN;AADiB,oGAKP;AAAA,eAAM,MAAKC,QAAL,CAAc;AAAEP,UAAAA,IAAI,oBAAO,MAAKM,KAAL,CAAWN,IAAlB;AAAN,SAAd,CAAN;AAAA,OALO;AAAA,mGAOR,YAAM;AACf,0BAA2B,MAAKM,KAAhC;AAAA,YAAQE,QAAR,eAAQA,QAAR;AAAA,YAAkBR,IAAlB,eAAkBA,IAAlB;;AACA,YAAMS,MAAM,qBAAQ,MAAKC,KAAL,CAAWV,IAAnB,CAAZ;;AAEA,cAAKO,QAAL,CAAc;AAAEP,UAAAA,IAAI,EAAEW;AAAR,SAAd,EAAmC,YAAM;AACvC,cAAQf,IAAR,GAAiBa,MAAjB,CAAQb,IAAR;AACA,cAAIgB,eAAe,GACjBhB,IAAI,KACHA,IAAI,KAAK,UAAT,IAAuBA,IAAI,KAAK,MAAhC,IAA0CA,IAAI,KAAK,UAAnD,IAAiEA,IAAI,KAAK,aADvE,CAAJ,IAEA,qBAASa,MAAM,CAACN,IAAhB,EAAsBM,MAAM,CAACL,EAA7B,CAHF;;AAIA,cAAI,CAACQ,eAAD,IAAoBhB,IAApB,IAA4BA,IAAI,KAAK,aAArC,IAAsDa,MAAM,CAACN,IAA7D,IAAqEM,MAAM,CAACL,EAAhF,EAAoF;AAClFQ,YAAAA,eAAe,GAAGH,MAAM,CAACN,IAAP,CAAYU,CAAZ,KAAkB,CAAlB,IAAuBJ,MAAM,CAACL,EAAP,CAAUS,CAAV,KAAgB,CAAvC,IAA4CJ,MAAM,CAACN,IAAP,CAAYU,CAAZ,GAAgBJ,MAAM,CAACL,EAAP,CAAUS,CAA1B,GAA8B,CAA5F;AACD;;AACD,cAAI,CAAC,yBAAQb,IAAR,EAAcS,MAAd,CAAD,IAA0B,CAACG,eAA/B,EAAgD;AAC9CJ,YAAAA,QAAQ,CAACR,IAAD,EAAOS,MAAP,CAAR;AACD;AACF,SAZD;AAaD,OAxBkB;AAAA,qGA0BN,gBAA0B;AAAA,YAAvBN,IAAuB,QAAvBA,IAAuB;AAAA,YAAjBC,EAAiB,QAAjBA,EAAiB;AAAA,YAAbU,MAAa,QAAbA,MAAa;;AACrC,YAAId,IAAI,mCAAQ,MAAKU,KAAL,CAAWV,IAAnB;AAAyBG,UAAAA,IAAI,EAAJA,IAAzB;AAA+BC,UAAAA,EAAE,EAAFA;AAA/B,UAAR;;AAEA,YAAIU,MAAJ,EAAY;AACVd,UAAAA,IAAI,mCAAQA,IAAR;AAAcc,YAAAA,MAAM,EAANA;AAAd,YAAJ;AACD;;AAED,cAAKP,QAAL,CAAc;AAAEP,UAAAA,IAAI,EAAJA;AAAF,SAAd;AACD,OAlCkB;AAAA,0GAoCD,iBAA0B;AAAA,YAAvBG,IAAuB,SAAvBA,IAAuB;AAAA,YAAjBC,EAAiB,SAAjBA,EAAiB;AAAA,YAAbU,MAAa,SAAbA,MAAa;AAC1C,2BAA2B,MAAKR,KAAhC;AAAA,YAAQE,QAAR,gBAAQA,QAAR;AAAA,YAAkBR,IAAlB,gBAAkBA,IAAlB;;AACA,YAAIS,MAAM,mCAAQT,IAAR,GAAiB,MAAKU,KAAL,CAAWV,IAA5B,CAAV;;AAEA,YAAIG,IAAJ,EAAU;AACRM,UAAAA,MAAM,mCAAQA,MAAR;AAAgBN,YAAAA,IAAI,EAAJA;AAAhB,YAAN;AACD;;AAED,YAAIC,EAAJ,EAAQ;AACNK,UAAAA,MAAM,mCAAQA,MAAR;AAAgBL,YAAAA,EAAE,EAAFA;AAAhB,YAAN;AACD;;AAED,YAAIU,MAAJ,EAAY;AACVL,UAAAA,MAAM,mCAAQA,MAAR;AAAgBK,YAAAA,MAAM,EAANA;AAAhB,YAAN;AACD;;AAED,YAAI,CAAC,yBAAQd,IAAR,EAAcS,MAAd,CAAL,EAA4B;AAC1BD,UAAAA,QAAQ,CAACR,IAAD,EAAOS,MAAP,CAAR;AACD;AACF,OAvDkB;AAEjB,YAAKC,KAAL,GAAa,EAAb;AAFiB;AAGlB;;AATH;AAAA;AAAA,aA+DE,kBAAS;AACP,2BAAgG,KAAKJ,KAArG;AAAA,YAAQS,UAAR,gBAAQA,UAAR;AAAA,YAAoBC,OAApB,gBAAoBA,OAApB;AAAA,YAA6BC,SAA7B,gBAA6BA,SAA7B;AAAA,YAAwCC,gBAAxC,gBAAwCA,gBAAxC;AAAA,YAA0DC,kBAA1D,gBAA0DA,kBAA1D;AAAA,YAA8EC,aAA9E,gBAA8EA,aAA9E;AACA,YAAMpB,IAAI,GAAG,KAAKU,KAAL,CAAWV,IAAX,GAAkB,KAAKU,KAAL,CAAWV,IAA7B,GAAoC,KAAKM,KAAL,CAAWN,IAA5D;AAEA,YAAMG,IAAI,GAAG,2BAAUH,IAAI,CAACG,IAAf,CAAb;AACA,YAAMC,EAAE,GAAG,2BAAUJ,IAAI,CAACI,EAAf,CAAX;AACA,YAAMU,MAAM,GAAG,2BAAUd,IAAI,CAACc,MAAf,CAAf,CANO,CAQP;AACA;;AACA,YAAIX,IAAI,IAAIH,IAAI,CAACqB,YAAjB,EAA+B;AAC7BlB,UAAAA,IAAI,CAACmB,QAAL,GAAgB,IAAhB;AACD;;AAED,YAAIlB,EAAE,IAAIJ,IAAI,CAACqB,YAAf,EAA6B;AAC3BjB,UAAAA,EAAE,CAACkB,QAAH,GAAc,IAAd;AACD;;AAED,YAAIR,MAAM,IAAId,IAAI,CAACqB,YAAnB,EAAiC;AAC/BP,UAAAA,MAAM,CAACQ,QAAP,GAAkB,IAAlB;AACD;;AAED,4BACE,gCAAC,SAAD;AACE,UAAA,QAAQ,EAAEtB,IAAI,CAACsB,QADjB;AAEE,UAAA,kBAAkB,EAAEH,kBAFtB;AAGE,UAAA,WAAW,EAAEnB,IAAI,CAACuB,WAHpB;AAIE,UAAA,IAAI,EAAEpB,IAJR;AAKE,UAAA,EAAE,EAAEC,EALN;AAME,UAAA,MAAM,EAAEU,MANV;AAOE,UAAA,UAAU,EAAEC,UAPd;AAQE,UAAA,QAAQ,EAAE,KAAKS,UARjB;AASE,UAAA,eAAe,EAAE,KAAKC,eATxB;AAUE,UAAA,OAAO,EAAET,OAVX;AAWE,UAAA,WAAW,EAAE,KAAKU,SAXpB;AAYE,UAAA,UAAU,EAAE,KAAKC,QAZnB;AAaE,UAAA,SAAS,EAAEV,SAbb;AAcE,UAAA,gBAAgB,EAAEC,gBAdpB;AAeE,UAAA,aAAa,EAAEE;AAfjB,UADF;AAmBD;AAxGH;AAAA;AAAA,IAAuCQ,kBAAM/B,SAA7C,yFAEOgC,YAAMC,kBAFb;AAGIf,IAAAA,UAAU,EAAEc,YAAME,cAAN,CAAqBC;AAHrC;AA0GD,CA3GM;;;;AA6GP,IAAMC,QAAQ,GAAG,SAAXA,QAAW;AAAA,SAAO;AACtBC,IAAAA,MAAM,EAAE,gBAAC5B,KAAD,SAA8B;AAAA,UAApB6B,MAAoB,SAApBA,MAAoB;AAAA,UAAZC,KAAY,SAAZA,KAAY;;AACpC,UAAMC,IAAI,GAAGC,YAAMC,UAAN,CAAiBjC,KAAK,CAACH,IAAvB,EAA6BG,KAAK,CAACF,EAAnC,CAAb;;AACA,aAAOkC,YAAMJ,MAAN,CAAaG,IAAb,EAAmBF,MAAnB,EAA2BC,KAA3B,CAAP;AACD,KAJqB;AAKtBI,IAAAA,WAAW,EAAE,qBAAClC,KAAD,EAAW;AACtB,UAAQH,IAAR,GAAiBG,KAAjB,CAAQH,IAAR;AACA,aAAOA,IAAP;AACD,KARqB;AAStBsC,IAAAA,SAAS,EAAE,mBAACnC,KAAD,EAAQoC,KAAR,EAAkB;AAC3B,UAAQvC,IAAR,GAAqBG,KAArB,CAAQH,IAAR;AAAA,UAAcC,EAAd,GAAqBE,KAArB,CAAcF,EAAd;AACA,aAAO;AACLD,QAAAA,IAAI,EAAEmC,YAAMvC,KAAN,CAAYI,IAAZ,EAAkBwC,GAAlB,CAAsBL,YAAMvC,KAAN,CAAY2C,KAAZ,CAAtB,CADD;AAELtC,QAAAA,EAAE,EAAEkC,YAAMvC,KAAN,CAAYK,EAAZ,EAAgBuC,GAAhB,CAAoBL,YAAMvC,KAAN,CAAY2C,KAAZ,CAApB;AAFC,OAAP;AAID;AAfqB,GAAP;AAAA,CAAjB;;AAkBO,IAAME,QAAQ,GAAG,SAAXA,QAAW,CAACC,IAAD,EAAOC,IAAP,EAAgB;AACtC,MAAMC,aAAa,GAAG,yBAAcd,QAAQ,EAAtB,EAA0BY,IAA1B,CAAtB;AAEA,MAAMG,SAAS,GAAGF,IAAI,IAAIA,IAAI,CAAC3C,IAAb,GAAoB2C,IAAI,CAAC3C,IAAzB,GAAgC8C,gBAAlD;AACA,MAAMC,OAAO,GAAGJ,IAAI,IAAIA,IAAI,CAAC1C,EAAb,GAAkB0C,IAAI,CAAC1C,EAAvB,GAA4B6C,gBAA5C;;AAJsC,MAMhCE,QANgC;AAAA;;AAAA;;AAAA;AAAA;;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA,yGAwBpB,UAACpD,KAAD,EAAW;AACzB,2BAA6B,OAAKO,KAAlC;AAAA,YAAQQ,MAAR,gBAAQA,MAAR;AAAA,YAAgBN,QAAhB,gBAAgBA,QAAhB;AACA,YAAQL,IAAR,GAAqBJ,KAArB,CAAQI,IAAR;AAAA,YAAcC,EAAd,GAAqBL,KAArB,CAAcK,EAAd,CAFyB,CAIzB;;AACA,YAAI,CAAC,wBAAYD,IAAZ,EAAkBC,EAAlB,CAAL,EAA4B;AAC1B,cAAIU,MAAJ,EAAY;AACVf,YAAAA,KAAK,CAACe,MAAN,mCAAoBA,MAApB,GAA+B,iCAAqBX,IAArB,EAA2BC,EAA3B,CAA/B;AACD;;AAEDI,UAAAA,QAAQ,CAACT,KAAD,CAAR;AACD;AACF,OApCmC;AAAA,oGAsCzB,iBAA0C;AAAA,YAAjCqD,WAAiC,SAAvCjD,IAAuC;AAAA,YAAhBkD,SAAgB,SAApBjD,EAAoB;AACnD,4BAAuC,OAAKE,KAA5C;AAAA,YAAQH,IAAR,iBAAQA,IAAR;AAAA,YAAcC,EAAd,iBAAcA,EAAd;AAAA,YAAkBI,QAAlB,iBAAkBA,QAAlB;AAAA,YAA4BM,MAA5B,iBAA4BA,MAA5B;;AAEA,YAAIX,IAAI,CAACmD,KAAT,EAAgB;AACdF,UAAAA,WAAW,CAACE,KAAZ,GAAoBnD,IAAI,CAACmD,KAAzB;AACD;;AAED,YAAIlD,EAAE,CAACkD,KAAP,EAAc;AACZD,UAAAA,SAAS,CAACC,KAAV,GAAkBlD,EAAE,CAACkD,KAArB;AACD;;AAED,YAAMC,OAAO,GAAG;AAAEpD,UAAAA,IAAI,EAAEiD,WAAR;AAAqBhD,UAAAA,EAAE,EAAEiD;AAAzB,SAAhB;;AAEA,YAAIvC,MAAJ,EAAY;AACVyC,UAAAA,OAAO,CAACzC,MAAR,mCAAsBA,MAAtB,GAAiC,iCAAqBsC,WAArB,EAAkCC,SAAlC,CAAjC;AACD;;AAED7C,QAAAA,QAAQ,CAAC+C,OAAD,CAAR;AACD,OAxDmC;AAAA,oGA0DzB,UAACH,WAAD,EAAiB;AAC1B,4BAAqB,OAAK9C,KAA1B;AAAA,YAAQH,IAAR,iBAAQA,IAAR;AAAA,YAAcC,EAAd,iBAAcA,EAAd;;AAEA,YAAID,IAAI,CAACmD,KAAT,EAAgB;AACdF,UAAAA,WAAW,CAACE,KAAZ,GAAoBnD,IAAI,CAACmD,KAAzB;AACD;;AAED,YAAI,CAAC,wBAAYF,WAAZ,EAAyBhD,EAAzB,CAAL,EAAmC;AACjC,iBAAKoD,aAAL,CAAmB;AAAErD,YAAAA,IAAI,EAAEiD,WAAR;AAAqBhD,YAAAA,EAAE,EAAEA;AAAzB,WAAnB;AACD;AACF,OApEmC;AAAA,kGAsE3B,UAACiD,SAAD,EAAe;AACtB,4BAAqB,OAAK/C,KAA1B;AAAA,YAAQH,IAAR,iBAAQA,IAAR;AAAA,YAAcC,EAAd,iBAAcA,EAAd;;AAEA,YAAIA,EAAE,CAACkD,KAAP,EAAc;AACZD,UAAAA,SAAS,CAACC,KAAV,GAAkBlD,EAAE,CAACkD,KAArB;AACD;;AAED,YAAI,CAAC,wBAAYnD,IAAZ,EAAkBkD,SAAlB,CAAL,EAAmC;AACjC,iBAAKG,aAAL,CAAmB;AAAErD,YAAAA,IAAI,EAAEA,IAAR;AAAcC,YAAAA,EAAE,EAAEiD;AAAlB,WAAnB;AACD;AACF,OAhFmC;AAAA,uGAkFtB,UAACtD,KAAD,EAAQH,IAAR,EAAiB;AAC7B,YAAQ6B,eAAR,GAA4B,OAAKnB,KAAjC,CAAQmB,eAAR;;AACA,YAAMhB,MAAM,qBAAQV,KAAR,CAAZ;;AAEA,YAAI,CAACA,KAAK,CAACuD,KAAP,IAAgB,yBAAQvD,KAAK,CAACuD,KAAd,CAApB,EAA0C;AACxC,iBAAO7C,MAAM,CAAC6C,KAAd;AACD;;AAED7B,QAAAA,eAAe,sCAAI7B,IAAJ,EAAWa,MAAX,EAAf;AACD,OA3FmC;AAAA,sGA6FvB,UAACV,KAAD,EAAQH,IAAR,EAAc6D,IAAd,EAAuB;AAClC,4BAA0F,OAAKnD,KAA/F;AAAA,YAAQmB,eAAR,iBAAQA,eAAR;AAAA,YAAyBH,QAAzB,iBAAyBA,QAAzB;AAAA,YAAmCnB,IAAnC,iBAAmCA,IAAnC;AAAA,YAAyCC,EAAzC,iBAAyCA,EAAzC;AAAA,YAA6Cc,gBAA7C,iBAA6CA,gBAA7C;AAAA,YAA+DE,aAA/D,iBAA+DA,aAA/D;AAAA,YAA8EJ,OAA9E,iBAA8EA,OAA9E;;AAEA,YAAI,CAACE,gBAAL,EAAuB;AACrBF,UAAAA,OAAO,CAACjB,KAAK,IAAI0D,IAAV,CAAP;AACA;AACD;;AAED,YAAInC,QAAJ,EAAc;AACZ;AACD,SAViC,CAYlC;;;AACA,YAAIF,aAAJ,EAAmB;AACjB;AACD;;AAED,YAAIxB,IAAI,KAAK,QAAT,IAAqB,CAACG,KAAtB,IAA+BI,IAA/B,IAAuCC,EAA3C,EAA+C;AAC7CL,UAAAA,KAAK,mCAAQA,KAAR,GAAkB,iCAAqBI,IAArB,EAA2BC,EAA3B,CAAlB,CAAL;AACD;;AAEDqB,QAAAA,eAAe;AAAGtB,UAAAA,IAAI,EAAJA,IAAH;AAASC,UAAAA,EAAE,EAAFA;AAAT,WAAcR,IAAd;AAAuB0D,UAAAA,KAAK,EAAE;AAA9B,WAAqCvD,KAArC,GAAf;;AAEA,YAAI,OAAK2D,KAAL,CAAW9D,IAAX,CAAJ,EAAsB;AACpB,iBAAK8D,KAAL,CAAW9D,IAAX,EAAiB+D,KAAjB;AACD;AACF,OAvHmC;AAAA,iGA0H5B,EA1H4B;AAAA;AAAA;;AAAA;AAAA;AAAA,aA4HpC,kBAAS;AAAA;;AACP,2BAaI,KAAKrD,KAbT;AAAA,YACEa,kBADF,gBACEA,kBADF;AAAA,YAEEJ,UAFF,gBAEEA,UAFF;AAAA,YAGE6C,WAHF,gBAGEA,WAHF;AAAA,YAIEC,UAJF,gBAIEA,UAJF;AAAA,YAKE1D,IALF,gBAKEA,IALF;AAAA,YAMEC,EANF,gBAMEA,EANF;AAAA,YAOEU,MAPF,gBAOEA,MAPF;AAAA,YAQEQ,QARF,gBAQEA,QARF;AAAA,YASEC,WATF,gBASEA,WATF;AAAA,YAUEP,OAVF,gBAUEA,OAVF;AAAA,YAWEC,SAXF,gBAWEA,SAXF;AAAA,YAYEC,gBAZF,gBAYEA,gBAZF;AAcA,YAAM4C,MAAM,GAAG;AAAE/C,UAAAA,UAAU,EAAVA,UAAF;AAAc6C,UAAAA,WAAW,EAAXA,WAAd;AAA2BC,UAAAA,UAAU,EAAVA,UAA3B;AAAuCvC,UAAAA,QAAQ,EAARA,QAAvC;AAAiDC,UAAAA,WAAW,EAAXA,WAAjD;AAA8DP,UAAAA,OAAO,EAAPA;AAA9D,SAAf;AACA,YAAM+C,KAAK,GAAG3D,EAAE,GAAG4D,WAAKC,SAAL,CAAeD,WAAKD,KAAL,CAAW5D,IAAX,EAAiBC,EAAjB,CAAf,CAAH,GAA0C,CAA1D;AAEA,YAAI8D,aAAa,GAAG,IAApB;AACA,YAAIC,WAAW,GAAG,IAAlB;AACA,YAAIC,aAAa,GAAG,IAApB;;AAEA,YAAInD,SAAJ,EAAe;AACb,cAAId,IAAI,IAAIA,IAAI,CAACkE,cAAL,CAAoB,OAApB,CAAZ,EAA0C;AACxCH,YAAAA,aAAa,gBAAGI,qBAASC,YAAT,eACd,gCAAC,qBAAD;AACE,cAAA,QAAQ,EAAE,kBAACC,CAAD;AAAA,uBAAQ,MAAI,CAACd,KAAL,CAAWvD,IAAX,GAAkBqE,CAA1B;AAAA,eADZ;AAEE,cAAA,QAAQ,EAAE,CAACtD,gBAFb;AAGE,cAAA,IAAI,EAAEf,IAHR;AAIE,cAAA,UAAU,EAAEY,UAJd;AAKE,cAAA,QAAQ,EAAE,kBAACuC,KAAD;AAAA,uBAAW,MAAI,CAACmB,WAAL,iCAAsBtE,IAAtB;AAA4BmD,kBAAAA,KAAK,EAALA;AAA5B,oBAAqC,MAArC,CAAX;AAAA;AALZ,cADc,EAQdrC,SARc,CAAhB;AAUD;;AAED,cAAIb,EAAE,IAAIA,EAAE,CAACiE,cAAH,CAAkB,OAAlB,CAAV,EAAsC;AACpCF,YAAAA,WAAW,gBAAGG,qBAASC,YAAT,eACZ,gCAAC,qBAAD;AACE,cAAA,QAAQ,EAAE,kBAACC,CAAD;AAAA,uBAAQ,MAAI,CAACd,KAAL,CAAWtD,EAAX,GAAgBoE,CAAxB;AAAA,eADZ;AAEE,cAAA,QAAQ,EAAE,CAACtD,gBAFb;AAGE,cAAA,IAAI,EAAEd,EAHR;AAIE,cAAA,UAAU,EAAEW,UAJd;AAKE,cAAA,QAAQ,EAAE,kBAACuC,KAAD;AAAA,uBAAW,MAAI,CAACmB,WAAL,iCAAsBrE,EAAtB;AAA0BkD,kBAAAA,KAAK,EAALA;AAA1B,oBAAmC,IAAnC,CAAX;AAAA;AALZ,cADY,EAQZrC,SARY,CAAd;AAUD;;AAED,cAAIH,MAAM,IAAIA,MAAM,CAACuD,cAAP,CAAsB,OAAtB,CAAd,EAA8C;AAC5CD,YAAAA,aAAa,gBAAGE,qBAASC,YAAT,eACd,gCAAC,qBAAD;AACE,cAAA,QAAQ,EAAE,kBAACC,CAAD;AAAA,uBAAQ,MAAI,CAACd,KAAL,CAAW5C,MAAX,GAAoB0D,CAA5B;AAAA,eADZ;AAEE,cAAA,QAAQ,EAAE,CAACtD,gBAFb;AAGE,cAAA,IAAI,EAAEJ,MAHR;AAIE,cAAA,UAAU,EAAEC,UAJd;AAKE,cAAA,QAAQ,EAAE,kBAACuC,KAAD;AAAA,uBAAW,MAAI,CAACmB,WAAL,iCAAsB3D,MAAtB;AAA8BwC,kBAAAA,KAAK,EAALA;AAA9B,oBAAuC,QAAvC,CAAX;AAAA;AALZ,cADc,EAQdrC,SARc,CAAhB;AAUD;AACF;;AAED,4BACE,2CACGb,EAAE,iBACD,gCAAC,aAAD;AACE,UAAA,IAAI,EAAED,IADR;AAEE,UAAA,EAAE,EAAEC,EAFN;AAGE,UAAA,MAAM,EAAEU,MAHV;AAIE,UAAA,MAAM,EAAE,KAAK4D;AAJf,WAKMZ,MALN;AAME,UAAA,OAAO,EAAE,iBAACL,IAAD;AAAA,mBAAU,MAAI,CAACkB,UAAL,CAAgB7D,MAAhB,EAAwB,QAAxB,EAAkC2C,IAAlC,CAAV;AAAA;AANX,WAFJ,EAWGW,aAXH,eAaE,gCAAC,SAAD;AACE,UAAA,CAAC,EAAEjE,IAAI,CAACyE,CADV;AAEE,UAAA,CAAC,EAAEzE,IAAI,CAACU,CAFV;AAGE,UAAA,SAAS,EAAEI,SAHb;AAIE,UAAA,kBAAkB,EAAEE,kBAJtB;AAKE,UAAA,MAAM,EAAE,KAAK0D;AALf,WAMMf,MANN;AAOE,UAAA,OAAO,EAAE,iBAACL,IAAD;AAAA,mBAAU,MAAI,CAACkB,UAAL,CAAgBxE,IAAhB,EAAsB,MAAtB,EAA8BsD,IAA9B,CAAV;AAAA;AAPX,WAbF,EAsBGS,aAtBH,EAwBG9D,EAAE,iBACD,gCAAC,OAAD;AACE,UAAA,CAAC,EAAEA,EAAE,CAACwE,CADR;AAEE,UAAA,CAAC,EAAExE,EAAE,CAACS,CAFR;AAGE,UAAA,KAAK,EAAEkD,KAHT,CAGgB;AAHhB;AAIE,UAAA,SAAS,EAAE9C,SAJb;AAKE,UAAA,kBAAkB,EAAEE,kBALtB;AAME,UAAA,MAAM,EAAE,KAAK2D;AANf,WAOMhB,MAPN;AAQE,UAAA,OAAO,EAAE,iBAACL,IAAD;AAAA,mBAAU,MAAI,CAACkB,UAAL,CAAgBvE,EAAhB,EAAoB,IAApB,EAA0BqD,IAA1B,CAAV;AAAA;AARX,WAzBJ,EAoCGU,WApCH,CADF;AAwCD;AAnOmC;AAAA;AAAA,IAMfvC,kBAAM/B,SANS;;AAAA,mCAMhCsD,QANgC,eAOjB;AACjBhC,IAAAA,kBAAkB,EAAE4D,sBAAUC,IADb;AAEjBjE,IAAAA,UAAU,EAAEc,YAAME,cAFD;AAGjB5B,IAAAA,IAAI,EAAE0B,YAAMoD,SAHK;AAIjB7E,IAAAA,EAAE,EAAEyB,YAAMoD,SAJO;AAKjBnE,IAAAA,MAAM,EAAEe,YAAMoD,SALG;AAMjBzE,IAAAA,QAAQ,EAAEuE,sBAAUG,IANH;AAOjBtB,IAAAA,WAAW,EAAEmB,sBAAUG,IAPN;AAQjBrB,IAAAA,UAAU,EAAEkB,sBAAUG,IARL;AASjBlE,IAAAA,OAAO,EAAE+D,sBAAUG,IATF;AAUjB3D,IAAAA,WAAW,EAAEwD,sBAAUI,MAVN;AAWjB7D,IAAAA,QAAQ,EAAEyD,sBAAUC,IAXH;AAYjB/D,IAAAA,SAAS,EAAE8D,sBAAUK,MAZJ;AAajBlE,IAAAA,gBAAgB,EAAE6D,sBAAUC,IAbX;AAcjBvD,IAAAA,eAAe,EAAEsD,sBAAUG;AAdV,GAPiB;AAsOtC,SAAO/B,QAAP;AACD,CAvOM;;;AAyOA,IAAMkC,MAAM,GAAG;AACpBC,EAAAA,IAAI,EAAE;AAAA,WAAO;AACXC,MAAAA,IAAI,EAAE,aADK;AAEXC,MAAAA,MAAM,EAAEC,gBAAMC,QAAN,CAAeC,KAFZ;AAGXC,MAAAA,WAAW,EAAE,CAHF;AAIXC,MAAAA,UAAU,EAAE,kDAJD;AAKX,iBAAW;AACTD,QAAAA,WAAW,EAAE,CADJ;AAETJ,QAAAA,MAAM,EAAEC,gBAAMC,QAAN,CAAeI;AAFd;AALA,KAAP;AAAA,GADc;AAWpBC,EAAAA,KAAK,EAAE;AAAA,WAAO;AACZR,MAAAA,IAAI,EAAEE,gBAAMC,QAAN,CAAeC;AADT,KAAP;AAAA,GAXa;AAcpBK,EAAAA,aAAa,EAAE;AAAA,6BACV,gCADU;AAAA,GAdK;AAiBpBC,EAAAA,iBAAiB,EAAE;AAAA,2CACd,+BAAkB,QAAlB,CADc;AAEjBL,MAAAA,WAAW,EAAE;AAFI;AAAA,GAjBC;AAqBpBtE,EAAAA,QAAQ,EAAE;AAAA,2CACL,sBAAS,QAAT,CADK;AAERsE,MAAAA,WAAW,EAAE;AAFL;AAAA,GArBU;AAyBpBM,EAAAA,OAAO,EAAE,iBAACC,KAAD,EAAQC,GAAR;AAAA,6BACJ,qBAAQA,GAAR,CADI;AAAA,GAzBW;AA4BpBC,EAAAA,SAAS,EAAE,mBAACF,KAAD,EAAQC,GAAR;AAAA,6BACN,uBAAUA,GAAV,CADM;AAAA,GA5BS;AA+BpBE,EAAAA,OAAO,EAAE,iBAACH,KAAD,EAAQC,GAAR;AAAA,2CACJ,qBAAQA,GAAR,CADI;AAEPR,MAAAA,WAAW,EAAE,CAFN;AAGPW,MAAAA,eAAe,EAAE;AAHV;AAAA;AA/BW,CAAf","sourcesContent":["import React from 'react';\nimport isEqual from 'lodash/isEqual';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { BasePoint } from '../point';\nimport { types, utils, gridDraggable, trig } from '@pie-lib/plot';\nimport PropTypes from 'prop-types';\nimport { disabled, disabledSecondary, correct, incorrect, missing } from '../styles';\nimport ReactDOM from 'react-dom';\nimport MarkLabel from '../../../mark-label';\nimport isEmpty from 'lodash/isEmpty';\nimport { color } from '@pie-lib/render-ui';\nimport { getMiddleOfTwoPoints, equalPoints, sameAxes } from '../../../utils';\n\nexport const lineTool = (type, Component) => () => ({\n type,\n Component,\n addPoint: (point, mark) => {\n if (mark && equalPoints(mark.root, point)) {\n return mark;\n }\n\n if (!mark) {\n return {\n type,\n building: true,\n from: point,\n };\n }\n\n if (equalPoints(point, mark.from)) {\n return { ...mark };\n }\n\n return { ...mark, building: false, to: point };\n },\n});\n\nexport const lineToolComponent = (Component) => {\n return class LineToolComponent extends React.Component {\n static propTypes = {\n ...types.ToolPropTypeFields,\n graphProps: types.GraphPropsType.isRequired,\n };\n\n constructor(props) {\n super(props);\n this.state = {};\n }\n\n startDrag = () => this.setState({ mark: { ...this.props.mark } });\n\n stopDrag = () => {\n const { onChange, mark } = this.props;\n const update = { ...this.state.mark };\n\n this.setState({ mark: undefined }, () => {\n const { type } = update;\n let shouldNotChange =\n type &&\n (type === 'parabola' || type === 'sine' || type === 'absolute' || type === 'exponential') &&\n sameAxes(update.from, update.to);\n if (!shouldNotChange && type && type === 'exponential' && update.from && update.to) {\n shouldNotChange = update.from.y === 0 || update.to.y === 0 || update.from.y * update.to.y < 0;\n }\n if (!isEqual(mark, update) && !shouldNotChange) {\n onChange(mark, update);\n }\n });\n };\n\n changeMark = ({ from, to, middle }) => {\n let mark = { ...this.state.mark, from, to };\n\n if (middle) {\n mark = { ...mark, middle };\n }\n\n this.setState({ mark });\n };\n\n changeMarkProps = ({ from, to, middle }) => {\n const { onChange, mark } = this.props;\n let update = { ...mark, ...this.state.mark };\n\n if (from) {\n update = { ...update, from };\n }\n\n if (to) {\n update = { ...update, to };\n }\n\n if (middle) {\n update = { ...update, middle };\n }\n\n if (!isEqual(mark, update)) {\n onChange(mark, update);\n }\n };\n\n render() {\n const { graphProps, onClick, labelNode, labelModeEnabled, coordinatesOnHover, limitLabeling } = this.props;\n const mark = this.state.mark ? this.state.mark : this.props.mark;\n\n const from = cloneDeep(mark.from);\n const to = cloneDeep(mark.to);\n const middle = cloneDeep(mark.middle);\n\n // SET DISABLED\n // if it's a background mark, we need to force disable it\n if (from && mark.isBackground) {\n from.disabled = true;\n }\n\n if (to && mark.isBackground) {\n to.disabled = true;\n }\n\n if (middle && mark.isBackground) {\n middle.disabled = true;\n }\n\n return (\n <Component\n disabled={mark.disabled}\n coordinatesOnHover={coordinatesOnHover}\n correctness={mark.correctness}\n from={from}\n to={to}\n middle={middle}\n graphProps={graphProps}\n onChange={this.changeMark}\n changeMarkProps={this.changeMarkProps}\n onClick={onClick}\n onDragStart={this.startDrag}\n onDragStop={this.stopDrag}\n labelNode={labelNode}\n labelModeEnabled={labelModeEnabled}\n limitLabeling={limitLabeling}\n />\n );\n }\n };\n};\n\nconst dragOpts = () => ({\n bounds: (props, { domain, range }) => {\n const area = utils.lineToArea(props.from, props.to);\n return utils.bounds(area, domain, range);\n },\n anchorPoint: (props) => {\n const { from } = props;\n return from;\n },\n fromDelta: (props, delta) => {\n const { from, to } = props;\n return {\n from: utils.point(from).add(utils.point(delta)),\n to: utils.point(to).add(utils.point(delta)),\n };\n },\n});\n\nexport const lineBase = (Comp, opts) => {\n const DraggableComp = gridDraggable(dragOpts())(Comp);\n\n const FromPoint = opts && opts.from ? opts.from : BasePoint;\n const ToPoint = opts && opts.to ? opts.to : BasePoint;\n\n class LineBase extends React.Component {\n static propTypes = {\n coordinatesOnHover: PropTypes.bool,\n graphProps: types.GraphPropsType,\n from: types.PointType,\n to: types.PointType,\n middle: types.PointType,\n onChange: PropTypes.func,\n onDragStart: PropTypes.func,\n onDragStop: PropTypes.func,\n onClick: PropTypes.func,\n correctness: PropTypes.string,\n disabled: PropTypes.bool,\n labelNode: PropTypes.object,\n labelModeEnabled: PropTypes.bool,\n changeMarkProps: PropTypes.func,\n };\n\n onChangePoint = (point) => {\n const { middle, onChange } = this.props;\n const { from, to } = point;\n\n // because point.from.label and point.to.label can be different\n if (!equalPoints(from, to)) {\n if (middle) {\n point.middle = { ...middle, ...getMiddleOfTwoPoints(from, to) };\n }\n\n onChange(point);\n }\n };\n\n dragComp = ({ from: draggedFrom, to: draggedTo }) => {\n const { from, to, onChange, middle } = this.props;\n\n if (from.label) {\n draggedFrom.label = from.label;\n }\n\n if (to.label) {\n draggedTo.label = to.label;\n }\n\n const updated = { from: draggedFrom, to: draggedTo };\n\n if (middle) {\n updated.middle = { ...middle, ...getMiddleOfTwoPoints(draggedFrom, draggedTo) };\n }\n\n onChange(updated);\n };\n\n dragFrom = (draggedFrom) => {\n const { from, to } = this.props;\n\n if (from.label) {\n draggedFrom.label = from.label;\n }\n\n if (!equalPoints(draggedFrom, to)) {\n this.onChangePoint({ from: draggedFrom, to: to });\n }\n };\n\n dragTo = (draggedTo) => {\n const { from, to } = this.props;\n\n if (to.label) {\n draggedTo.label = to.label;\n }\n\n if (!equalPoints(from, draggedTo)) {\n this.onChangePoint({ from: from, to: draggedTo });\n }\n };\n\n labelChange = (point, type) => {\n const { changeMarkProps } = this.props;\n const update = { ...point };\n\n if (!point.label || isEmpty(point.label)) {\n delete update.label;\n }\n\n changeMarkProps({ [type]: update });\n };\n\n clickPoint = (point, type, data) => {\n const { changeMarkProps, disabled, from, to, labelModeEnabled, limitLabeling, onClick } = this.props;\n\n if (!labelModeEnabled) {\n onClick(point || data);\n return;\n }\n\n if (disabled) {\n return;\n }\n\n // limit labeling the points of the line\n if (limitLabeling) {\n return;\n }\n\n if (type === 'middle' && !point && from && to) {\n point = { ...point, ...getMiddleOfTwoPoints(from, to) };\n }\n\n changeMarkProps({ from, to, [type]: { label: '', ...point } });\n\n if (this.input[type]) {\n this.input[type].focus();\n }\n };\n\n // IMPORTANT, do not remove\n input = {};\n\n render() {\n const {\n coordinatesOnHover,\n graphProps,\n onDragStart,\n onDragStop,\n from,\n to,\n middle,\n disabled,\n correctness,\n onClick,\n labelNode,\n labelModeEnabled,\n } = this.props;\n const common = { graphProps, onDragStart, onDragStop, disabled, correctness, onClick };\n const angle = to ? trig.toDegrees(trig.angle(from, to)) : 0;\n\n let fromLabelNode = null;\n let toLabelNode = null;\n let lineLabelNode = null;\n\n if (labelNode) {\n if (from && from.hasOwnProperty('label')) {\n fromLabelNode = ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input.from = r)}\n disabled={!labelModeEnabled}\n mark={from}\n graphProps={graphProps}\n onChange={(label) => this.labelChange({ ...from, label }, 'from')}\n />,\n labelNode,\n );\n }\n\n if (to && to.hasOwnProperty('label')) {\n toLabelNode = ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input.to = r)}\n disabled={!labelModeEnabled}\n mark={to}\n graphProps={graphProps}\n onChange={(label) => this.labelChange({ ...to, label }, 'to')}\n />,\n labelNode,\n );\n }\n\n if (middle && middle.hasOwnProperty('label')) {\n lineLabelNode = ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input.middle = r)}\n disabled={!labelModeEnabled}\n mark={middle}\n graphProps={graphProps}\n onChange={(label) => this.labelChange({ ...middle, label }, 'middle')}\n />,\n labelNode,\n );\n }\n }\n\n return (\n <g>\n {to && (\n <DraggableComp\n from={from}\n to={to}\n middle={middle}\n onDrag={this.dragComp}\n {...common}\n onClick={(data) => this.clickPoint(middle, 'middle', data)}\n />\n )}\n {lineLabelNode}\n\n <FromPoint\n x={from.x}\n y={from.y}\n labelNode={labelNode}\n coordinatesOnHover={coordinatesOnHover}\n onDrag={this.dragFrom}\n {...common}\n onClick={(data) => this.clickPoint(from, 'from', data)}\n />\n {fromLabelNode}\n\n {to && (\n <ToPoint\n x={to.x}\n y={to.y}\n angle={angle} //angle + 45}\n labelNode={labelNode}\n coordinatesOnHover={coordinatesOnHover}\n onDrag={this.dragTo}\n {...common}\n onClick={(data) => this.clickPoint(to, 'to', data)}\n />\n )}\n {toLabelNode}\n </g>\n );\n }\n }\n\n return LineBase;\n};\n\nexport const styles = {\n line: () => ({\n fill: 'transparent',\n stroke: color.defaults.BLACK,\n strokeWidth: 3,\n transition: 'stroke 200ms ease-in, stroke-width 200ms ease-in',\n '&:hover': {\n strokeWidth: 6,\n stroke: color.defaults.PRIMARY_DARK,\n },\n }),\n arrow: () => ({\n fill: color.defaults.BLACK,\n }),\n disabledArrow: () => ({\n ...disabledSecondary(),\n }),\n disabledSecondary: () => ({\n ...disabledSecondary('stroke'),\n strokeWidth: 2,\n }),\n disabled: () => ({\n ...disabled('stroke'),\n strokeWidth: 2,\n }),\n correct: (theme, key) => ({\n ...correct(key),\n }),\n incorrect: (theme, key) => ({\n ...incorrect(key),\n }),\n missing: (theme, key) => ({\n ...missing(key),\n strokeWidth: 1,\n strokeDasharray: '4 3',\n }),\n};\n"],"file":"index.js"}
@@ -84,10 +84,10 @@ var RawLinePath = /*#__PURE__*/function (_React$Component) {
84
84
 
85
85
  return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(vx.LinePath, (0, _extends2["default"])({
86
86
  data: data,
87
- className: (0, _classnames["default"])(classes.drawLine, disabled && classes.disabled, classes[correctness], className)
87
+ className: (0, _classnames["default"])(classes.drawLine, disabled && classes.disabledSecondary, classes[correctness], className)
88
88
  }, rest)), /*#__PURE__*/_react["default"].createElement(vx.LinePath, (0, _extends2["default"])({
89
89
  data: data,
90
- className: (0, _classnames["default"])(classes.line, isDragging && classes.dragging, disabled && classes.disabled, classes[correctness], className)
90
+ className: (0, _classnames["default"])(classes.line, isDragging && classes.dragging, disabled && classes.disabledSecondary, classes[correctness], className)
91
91
  }, rest)));
92
92
  }
93
93
  }]);
@@ -113,8 +113,8 @@ exports.RawLinePath = RawLinePath;
113
113
 
114
114
  var dragging = function dragging() {
115
115
  return {
116
- strokeWidth: 7,
117
- stroke: _renderUi.color.secondaryLight()
116
+ strokeWidth: 4,
117
+ stroke: _renderUi.color.defaults.BLACK
118
118
  };
119
119
  };
120
120
 
@@ -123,10 +123,10 @@ var LinePath = (0, _styles.withStyles)(function (theme) {
123
123
  drawLine: {
124
124
  fill: 'none',
125
125
  strokeWidth: 2,
126
- stroke: _renderUi.color.secondaryLight()
126
+ stroke: _renderUi.color.black()
127
127
  },
128
128
  line: {
129
- strokeWidth: 6,
129
+ strokeWidth: 3,
130
130
  fill: 'none',
131
131
  transition: 'stroke-width 200ms ease-in, stroke 200ms ease-in',
132
132
  stroke: 'transparent',
@@ -136,9 +136,15 @@ var LinePath = (0, _styles.withStyles)(function (theme) {
136
136
  disabled: _objectSpread(_objectSpread({}, (0, _styles2.disabled)('stroke')), {}, {
137
137
  strokeWidth: 2
138
138
  }),
139
+ disabledSecondary: _objectSpread(_objectSpread({}, (0, _styles2.disabledSecondary)('stroke')), {}, {
140
+ strokeWidth: 2
141
+ }),
139
142
  correct: _objectSpread({}, (0, _styles2.correct)('stroke')),
140
143
  incorrect: _objectSpread({}, (0, _styles2.incorrect)('stroke')),
141
- missing: _objectSpread({}, (0, _styles2.missing)('stroke'))
144
+ missing: _objectSpread(_objectSpread({}, (0, _styles2.missing)('stroke')), {}, {
145
+ strokeWidth: 1,
146
+ strokeDasharray: '4 3'
147
+ })
142
148
  };
143
149
  })(RawLinePath);
144
150
  exports.LinePath = LinePath;