@pie-lib/graphing-solution-set 2.20.0 → 2.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/CHANGELOG.md +6 -10
  2. package/lib/axis/arrow.js +115 -0
  3. package/lib/axis/arrow.js.map +1 -0
  4. package/lib/axis/axes.js +415 -0
  5. package/lib/axis/axes.js.map +1 -0
  6. package/lib/axis/index.js +26 -0
  7. package/lib/axis/index.js.map +1 -0
  8. package/lib/bg.js +139 -0
  9. package/lib/bg.js.map +1 -0
  10. package/lib/container/actions.js +24 -0
  11. package/lib/container/actions.js.map +1 -0
  12. package/lib/container/index.js +166 -0
  13. package/lib/container/index.js.map +1 -0
  14. package/lib/container/marks.js +27 -0
  15. package/lib/container/marks.js.map +1 -0
  16. package/lib/container/middleware.js +25 -0
  17. package/lib/container/middleware.js.map +1 -0
  18. package/lib/container/reducer.js +25 -0
  19. package/lib/container/reducer.js.map +1 -0
  20. package/lib/coordinates-label.js +109 -0
  21. package/lib/coordinates-label.js.map +1 -0
  22. package/lib/graph-with-controls.js +372 -0
  23. package/lib/graph-with-controls.js.map +1 -0
  24. package/lib/graph.js +419 -0
  25. package/lib/graph.js.map +1 -0
  26. package/lib/grid-setup.js +462 -0
  27. package/lib/grid-setup.js.map +1 -0
  28. package/lib/grid.js +176 -0
  29. package/lib/grid.js.map +1 -0
  30. package/lib/index.js +51 -0
  31. package/lib/index.js.map +1 -0
  32. package/lib/labels.js +299 -0
  33. package/lib/labels.js.map +1 -0
  34. package/lib/mark-label.js +208 -0
  35. package/lib/mark-label.js.map +1 -0
  36. package/lib/toggle-bar.js +336 -0
  37. package/lib/toggle-bar.js.map +1 -0
  38. package/lib/tool-menu.js +325 -0
  39. package/lib/tool-menu.js.map +1 -0
  40. package/lib/tools/index.js +29 -0
  41. package/lib/tools/index.js.map +1 -0
  42. package/lib/tools/line/component.js +106 -0
  43. package/lib/tools/line/component.js.map +1 -0
  44. package/lib/tools/line/index.js +16 -0
  45. package/lib/tools/line/index.js.map +1 -0
  46. package/lib/tools/polygon/component.js +457 -0
  47. package/lib/tools/polygon/component.js.map +1 -0
  48. package/lib/tools/polygon/index.js +106 -0
  49. package/lib/tools/polygon/index.js.map +1 -0
  50. package/lib/tools/polygon/line.js +151 -0
  51. package/lib/tools/polygon/line.js.map +1 -0
  52. package/lib/tools/polygon/polygon.js +171 -0
  53. package/lib/tools/polygon/polygon.js.map +1 -0
  54. package/lib/tools/shared/arrow-head.js +75 -0
  55. package/lib/tools/shared/arrow-head.js.map +1 -0
  56. package/lib/tools/shared/line/index.js +637 -0
  57. package/lib/tools/shared/line/index.js.map +1 -0
  58. package/lib/tools/shared/line/line-path.js +145 -0
  59. package/lib/tools/shared/line/line-path.js.map +1 -0
  60. package/lib/tools/shared/line/with-root-edge.js +155 -0
  61. package/lib/tools/shared/line/with-root-edge.js.map +1 -0
  62. package/lib/tools/shared/point/arrow-point.js +113 -0
  63. package/lib/tools/shared/point/arrow-point.js.map +1 -0
  64. package/lib/tools/shared/point/arrow.js +96 -0
  65. package/lib/tools/shared/point/arrow.js.map +1 -0
  66. package/lib/tools/shared/point/base-point.js +151 -0
  67. package/lib/tools/shared/point/base-point.js.map +1 -0
  68. package/lib/tools/shared/point/index.js +94 -0
  69. package/lib/tools/shared/point/index.js.map +1 -0
  70. package/lib/tools/shared/styles.js +49 -0
  71. package/lib/tools/shared/styles.js.map +1 -0
  72. package/lib/tools/shared/types.js +19 -0
  73. package/lib/tools/shared/types.js.map +1 -0
  74. package/lib/undo-redo.js +107 -0
  75. package/lib/undo-redo.js.map +1 -0
  76. package/lib/use-debounce.js +32 -0
  77. package/lib/use-debounce.js.map +1 -0
  78. package/lib/utils.js +314 -0
  79. package/lib/utils.js.map +1 -0
  80. package/package.json +9 -9
  81. package/src/__tests__/graph-with-controls.test.jsx +1 -1
  82. package/src/__tests__/graph.test.jsx +1 -1
  83. package/src/tools/line/__tests__/component.test.jsx +2 -2
  84. package/src/tools/shared/point/__tests__/arrow-point.test.jsx +2 -2
  85. package/src/tools/shared/point/__tests__/base-point.test.jsx +2 -2
@@ -0,0 +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","y","middle","graphProps","onClick","labelNode","labelModeEnabled","coordinatesOnHover","gssLineData","isBackground","disabled","correctness","fill","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","selectedTool","angle","trig","toDegrees","fromLabelNode","toLabelNode","lineLabelNode","hasOwnProperty","ReactDOM","createPortal","r","labelChange","x","dragComp","clickPoint","dragFrom","dragTo","PropTypes","bool","PointType","func","string","object","styles","line","stroke","color","defaults","BLACK","strokeWidth","transition","dashedLine","strokeDasharray","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 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, gssLineData } = 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 fill={mark && mark.fill}\n gssLineData={gssLineData}\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 fill: PropTypes.string,\n gssLineData: PropTypes.object,\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, onClick } = this.props;\n\n if (!labelModeEnabled) {\n onClick(point || data);\n return;\n }\n\n if (disabled) {\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 fill,\n gssLineData,\n onDragStart,\n onDragStop,\n from,\n to,\n middle,\n disabled,\n correctness,\n onClick,\n labelNode,\n labelModeEnabled,\n } = this.props;\n let common = { graphProps, fill, onDragStart, onDragStop, disabled, correctness, onClick };\n if (gssLineData && gssLineData.selectedTool === 'solutionSet') {\n //removing dragging option for line if solution set is clicked.\n common = { graphProps, fill, disabled, correctness, onClick };\n }\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 if (gssLineData && gssLineData.selectedTool === 'solutionSet') {\n //removing dragging feature of line and point if solution set is true.\n return (\n <g>\n {to && <DraggableComp from={from} to={to} middle={middle} {...common} />}\n {lineLabelNode}\n\n <FromPoint\n x={from.x}\n y={from.y}\n labelNode={labelNode}\n coordinatesOnHover={coordinatesOnHover}\n {...common}\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 {...common}\n />\n )}\n {toLabelNode}\n </g>\n );\n } else {\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\n return LineBase;\n};\n\nexport const styles = {\n line: () => ({\n fill: 'transparent',\n stroke: color.defaults.BLACK,\n strokeWidth: 4,\n transition: 'stroke 200ms ease-in, stroke-width 200ms ease-in',\n '&:hover': {\n strokeWidth: 6,\n stroke: color.defaults.BLACK,\n },\n }),\n dashedLine: () => ({\n fill: 'transparent',\n stroke: color.defaults.BLACK,\n strokeWidth: 4,\n transition: 'stroke 200ms ease-in, stroke-width 200ms ease-in',\n '&:hover': {\n strokeWidth: 6,\n stroke: color.defaults.BLACK,\n },\n strokeDasharray: '3,3',\n }),\n arrow: () => ({\n fill: color.defaults.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"}
@@ -0,0 +1,145 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.RawLinePath = exports.LinePath = void 0;
11
+
12
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
+
14
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
15
+
16
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
17
+
18
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
19
+
20
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
21
+
22
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
23
+
24
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
25
+
26
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
27
+
28
+ var _react = _interopRequireDefault(require("react"));
29
+
30
+ var _propTypes = _interopRequireDefault(require("prop-types"));
31
+
32
+ var _styles = require("@material-ui/core/styles");
33
+
34
+ var _plot = require("@pie-lib/plot");
35
+
36
+ var _classnames = _interopRequireDefault(require("classnames"));
37
+
38
+ var _styles2 = require("../styles");
39
+
40
+ var vx = _interopRequireWildcard(require("@vx/shape"));
41
+
42
+ var _renderUi = require("@pie-lib/render-ui");
43
+
44
+ var _excluded = ["data", "classes", "className", "disabled", "correctness", "from", "to", "graphProps", "isDragging"];
45
+
46
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
47
+
48
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
49
+
50
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
51
+
52
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
53
+
54
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
55
+
56
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
57
+
58
+ var RawLinePath = /*#__PURE__*/function (_React$Component) {
59
+ (0, _inherits2["default"])(RawLinePath, _React$Component);
60
+
61
+ var _super = _createSuper(RawLinePath);
62
+
63
+ function RawLinePath() {
64
+ (0, _classCallCheck2["default"])(this, RawLinePath);
65
+ return _super.apply(this, arguments);
66
+ }
67
+
68
+ (0, _createClass2["default"])(RawLinePath, [{
69
+ key: "render",
70
+ value: function render() {
71
+ /* eslint-disable no-unused-vars */
72
+ var _this$props = this.props,
73
+ data = _this$props.data,
74
+ classes = _this$props.classes,
75
+ className = _this$props.className,
76
+ disabled = _this$props.disabled,
77
+ correctness = _this$props.correctness,
78
+ from = _this$props.from,
79
+ to = _this$props.to,
80
+ graphProps = _this$props.graphProps,
81
+ isDragging = _this$props.isDragging,
82
+ rest = (0, _objectWithoutProperties2["default"])(_this$props, _excluded);
83
+ /* eslint-enable */
84
+
85
+ return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(vx.LinePath, (0, _extends2["default"])({
86
+ data: data,
87
+ className: (0, _classnames["default"])(classes.drawLine, disabled && classes.disabled, classes[correctness], className)
88
+ }, rest)), /*#__PURE__*/_react["default"].createElement(vx.LinePath, (0, _extends2["default"])({
89
+ data: data,
90
+ className: (0, _classnames["default"])(classes.line, isDragging && classes.dragging, disabled && classes.disabled, classes[correctness], className)
91
+ }, rest)));
92
+ }
93
+ }]);
94
+ return RawLinePath;
95
+ }(_react["default"].Component);
96
+
97
+ exports.RawLinePath = RawLinePath;
98
+ (0, _defineProperty2["default"])(RawLinePath, "propTypes", {
99
+ className: _propTypes["default"].string,
100
+ classes: _propTypes["default"].object,
101
+ data: _propTypes["default"].arrayOf(_propTypes["default"].arrayOf(_propTypes["default"].number)),
102
+ graphProps: _plot.types.GraphPropsType.isRequired,
103
+ disabled: _propTypes["default"].bool,
104
+ correctness: _propTypes["default"].string,
105
+ from: _plot.types.PointType,
106
+ to: _plot.types.PointType,
107
+ isDragging: _propTypes["default"].bool
108
+ });
109
+ (0, _defineProperty2["default"])(RawLinePath, "defaultProps", {
110
+ from: {},
111
+ to: {}
112
+ });
113
+
114
+ var dragging = function dragging() {
115
+ return {
116
+ strokeWidth: 7,
117
+ stroke: _renderUi.color.defaults.BLACK
118
+ };
119
+ };
120
+
121
+ var LinePath = (0, _styles.withStyles)(function (theme) {
122
+ return {
123
+ drawLine: {
124
+ fill: 'none',
125
+ strokeWidth: 2,
126
+ stroke: _renderUi.color.secondaryLight()
127
+ },
128
+ line: {
129
+ strokeWidth: 6,
130
+ fill: 'none',
131
+ transition: 'stroke-width 200ms ease-in, stroke 200ms ease-in',
132
+ stroke: 'transparent',
133
+ '&:hover': dragging(theme)
134
+ },
135
+ dragging: dragging(theme),
136
+ disabled: _objectSpread(_objectSpread({}, (0, _styles2.disabled)('stroke')), {}, {
137
+ strokeWidth: 2
138
+ }),
139
+ correct: _objectSpread({}, (0, _styles2.correct)('stroke')),
140
+ incorrect: _objectSpread({}, (0, _styles2.incorrect)('stroke')),
141
+ missing: _objectSpread({}, (0, _styles2.missing)('stroke'))
142
+ };
143
+ })(RawLinePath);
144
+ exports.LinePath = LinePath;
145
+ //# sourceMappingURL=line-path.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/tools/shared/line/line-path.jsx"],"names":["RawLinePath","props","data","classes","className","disabled","correctness","from","to","graphProps","isDragging","rest","drawLine","line","dragging","React","Component","PropTypes","string","object","arrayOf","number","types","GraphPropsType","isRequired","bool","PointType","strokeWidth","stroke","color","defaults","BLACK","LinePath","theme","fill","secondaryLight","transition","correct","incorrect","missing"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { types } from '@pie-lib/plot';\nimport classNames from 'classnames';\nimport { disabled, correct, incorrect, missing } from '../styles';\nimport * as vx from '@vx/shape';\nimport { color } from '@pie-lib/render-ui';\n\nexport class RawLinePath extends React.Component {\n static propTypes = {\n className: PropTypes.string,\n classes: PropTypes.object,\n data: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.number)),\n graphProps: types.GraphPropsType.isRequired,\n disabled: PropTypes.bool,\n correctness: PropTypes.string,\n from: types.PointType,\n to: types.PointType,\n isDragging: PropTypes.bool,\n };\n\n static defaultProps = {\n from: {},\n to: {},\n };\n\n render() {\n /* eslint-disable no-unused-vars */\n const { data, classes, className, disabled, correctness, from, to, graphProps, isDragging, ...rest } = this.props;\n /* eslint-enable */\n\n return (\n <React.Fragment>\n <vx.LinePath\n data={data}\n className={classNames(classes.drawLine, disabled && classes.disabled, classes[correctness], className)}\n {...rest}\n />\n <vx.LinePath\n data={data}\n className={classNames(\n classes.line,\n isDragging && classes.dragging,\n disabled && classes.disabled,\n classes[correctness],\n className,\n )}\n {...rest}\n />\n </React.Fragment>\n );\n }\n}\n\nconst dragging = () => ({\n strokeWidth: 7,\n stroke: color.defaults.BLACK,\n});\n\nexport const LinePath = withStyles((theme) => ({\n drawLine: {\n fill: 'none',\n strokeWidth: 2,\n stroke: color.secondaryLight(),\n },\n line: {\n strokeWidth: 6,\n fill: 'none',\n transition: 'stroke-width 200ms ease-in, stroke 200ms ease-in',\n stroke: 'transparent',\n '&:hover': dragging(theme),\n },\n dragging: dragging(theme),\n disabled: {\n ...disabled('stroke'),\n strokeWidth: 2,\n },\n correct: {\n ...correct('stroke'),\n },\n incorrect: {\n ...incorrect('stroke'),\n },\n missing: {\n ...missing('stroke'),\n },\n}))(RawLinePath);\n"],"file":"line-path.js"}
@@ -0,0 +1,155 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.withRootEdge = exports.rootEdgeToFromToWrapper = exports.rootEdgeComponent = void 0;
9
+
10
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
+
12
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
+
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+
16
+ var _react = _interopRequireDefault(require("react"));
17
+
18
+ var _propTypes = _interopRequireDefault(require("prop-types"));
19
+
20
+ var _plot = require("@pie-lib/plot");
21
+
22
+ var _linePath = require("./line-path");
23
+
24
+ var _curve = require("@vx/curve");
25
+
26
+ var _index = require("./index");
27
+
28
+ var _excluded = ["graphProps", "from", "to", "onClick", "onDragStart", "onDragStop", "onChange", "disabled", "correctness"];
29
+
30
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
31
+
32
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
33
+
34
+ var toRootEdge = function toRootEdge(m) {
35
+ var out = _objectSpread({}, m);
36
+
37
+ out.root = _objectSpread({}, m.from);
38
+ out.edge = m.to ? _objectSpread({}, m.to) : undefined;
39
+ delete out.from;
40
+ delete out.to;
41
+ return out;
42
+ };
43
+
44
+ var toFromTo = function toFromTo(m) {
45
+ var out = _objectSpread({}, m);
46
+
47
+ out.from = _objectSpread({}, m.root);
48
+ out.to = m.edge ? _objectSpread({}, m.edge) : undefined;
49
+ delete out.root;
50
+ delete out.edge;
51
+ return out;
52
+ };
53
+
54
+ var rootEdgeToFromToWrapper = function rootEdgeToFromToWrapper(BaseComp) {
55
+ var Wrapper = function Wrapper(props) {
56
+ var m = toFromTo(props.mark);
57
+
58
+ var onChange = function onChange(current, next) {
59
+ props.onChange(toRootEdge(current), toRootEdge(next));
60
+ };
61
+
62
+ return /*#__PURE__*/_react["default"].createElement(BaseComp, (0, _extends2["default"])({}, props, {
63
+ mark: m,
64
+ onChange: onChange
65
+ }));
66
+ };
67
+
68
+ Wrapper.propTypes = {
69
+ onChange: _propTypes["default"].func,
70
+ mark: _propTypes["default"].object
71
+ };
72
+ return Wrapper;
73
+ };
74
+
75
+ exports.rootEdgeToFromToWrapper = rootEdgeToFromToWrapper;
76
+
77
+ var rootEdgeComponent = function rootEdgeComponent(RootEdgeComp) {
78
+ var BaseComponent = (0, _index.lineToolComponent)(RootEdgeComp);
79
+ return rootEdgeToFromToWrapper(BaseComponent);
80
+ };
81
+
82
+ exports.rootEdgeComponent = rootEdgeComponent;
83
+
84
+ var withPointsGenerationLinePath = function withPointsGenerationLinePath(getPoints) {
85
+ var LinePathComponent = function LinePathComponent(props) {
86
+ var graphProps = props.graphProps,
87
+ from = props.from,
88
+ to = props.to,
89
+ onClick = props.onClick,
90
+ onDragStart = props.onDragStart,
91
+ onDragStop = props.onDragStop,
92
+ onChange = props.onChange,
93
+ disabled = props.disabled,
94
+ correctness = props.correctness,
95
+ rest = (0, _objectWithoutProperties2["default"])(props, _excluded);
96
+
97
+ var _getPoints = getPoints({
98
+ graphProps: props.graphProps,
99
+ root: from,
100
+ edge: to
101
+ }),
102
+ dataPoints = _getPoints.dataPoints,
103
+ _getPoints$enableCurv = _getPoints.enableCurve,
104
+ enableCurve = _getPoints$enableCurv === void 0 ? true : _getPoints$enableCurv;
105
+
106
+ var raw = dataPoints.map(function (d) {
107
+ return [graphProps.scale.x(d.x), graphProps.scale.y(d.y)];
108
+ });
109
+ var common = {
110
+ onClick: onClick,
111
+ graphProps: graphProps,
112
+ onDragStart: onDragStart,
113
+ onDragStop: onDragStop,
114
+ onChange: onChange,
115
+ disabled: disabled,
116
+ correctness: correctness
117
+ };
118
+
119
+ if (!enableCurve) {
120
+ return /*#__PURE__*/_react["default"].createElement(_linePath.LinePath, (0, _extends2["default"])({
121
+ data: raw,
122
+ from: from,
123
+ to: to
124
+ }, common, rest));
125
+ } else {
126
+ return /*#__PURE__*/_react["default"].createElement(_linePath.LinePath, (0, _extends2["default"])({
127
+ data: raw,
128
+ from: from,
129
+ to: to,
130
+ curve: _curve.curveMonotoneX
131
+ }, common, rest));
132
+ }
133
+ };
134
+
135
+ LinePathComponent.propTypes = {
136
+ graphProps: _plot.types.GraphPropsType.isRequired,
137
+ from: _plot.types.PointType.isRequired,
138
+ to: _plot.types.PointType,
139
+ onClick: _propTypes["default"].func,
140
+ onDragStart: _propTypes["default"].func,
141
+ onDragStop: _propTypes["default"].func,
142
+ onChange: _propTypes["default"].func,
143
+ disabled: _propTypes["default"].bool,
144
+ correctness: _propTypes["default"].string
145
+ };
146
+ return LinePathComponent;
147
+ };
148
+
149
+ var withRootEdge = function withRootEdge(getPoints) {
150
+ var LinePathComp = withPointsGenerationLinePath(getPoints);
151
+ return (0, _index.lineBase)(LinePathComp);
152
+ };
153
+
154
+ exports.withRootEdge = withRootEdge;
155
+ //# sourceMappingURL=with-root-edge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/tools/shared/line/with-root-edge.jsx"],"names":["toRootEdge","m","out","root","from","edge","to","undefined","toFromTo","rootEdgeToFromToWrapper","BaseComp","Wrapper","props","mark","onChange","current","next","propTypes","PropTypes","func","object","rootEdgeComponent","RootEdgeComp","BaseComponent","withPointsGenerationLinePath","getPoints","LinePathComponent","graphProps","onClick","onDragStart","onDragStop","disabled","correctness","rest","dataPoints","enableCurve","raw","map","d","scale","x","y","common","curveMonotoneX","types","GraphPropsType","isRequired","PointType","bool","string","withRootEdge","LinePathComp"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { types } from '@pie-lib/plot';\nimport { LinePath } from './line-path';\nimport { curveMonotoneX } from '@vx/curve';\nimport { lineBase, lineToolComponent } from './index';\n\nconst toRootEdge = (m) => {\n const out = { ...m };\n out.root = { ...m.from };\n out.edge = m.to ? { ...m.to } : undefined;\n delete out.from;\n delete out.to;\n return out;\n};\n\nconst toFromTo = (m) => {\n const out = { ...m };\n out.from = { ...m.root };\n out.to = m.edge ? { ...m.edge } : undefined;\n delete out.root;\n delete out.edge;\n return out;\n};\n\nexport const rootEdgeToFromToWrapper = (BaseComp) => {\n const Wrapper = (props) => {\n const m = toFromTo(props.mark);\n\n const onChange = (current, next) => {\n props.onChange(toRootEdge(current), toRootEdge(next));\n };\n\n return <BaseComp {...props} mark={m} onChange={onChange} />;\n };\n\n Wrapper.propTypes = {\n onChange: PropTypes.func,\n mark: PropTypes.object,\n };\n\n return Wrapper;\n};\n\nexport const rootEdgeComponent = (RootEdgeComp) => {\n const BaseComponent = lineToolComponent(RootEdgeComp);\n return rootEdgeToFromToWrapper(BaseComponent);\n};\n\nconst withPointsGenerationLinePath = (getPoints) => {\n const LinePathComponent = (props) => {\n const { graphProps, from, to, onClick, onDragStart, onDragStop, onChange, disabled, correctness, ...rest } = props;\n\n const { dataPoints, enableCurve = true } = getPoints({\n graphProps: props.graphProps,\n root: from,\n edge: to,\n });\n\n const raw = dataPoints.map((d) => [graphProps.scale.x(d.x), graphProps.scale.y(d.y)]);\n\n const common = {\n onClick,\n graphProps,\n onDragStart,\n onDragStop,\n onChange,\n disabled,\n correctness,\n };\n\n if (!enableCurve) {\n return <LinePath data={raw} from={from} to={to} {...common} {...rest} />;\n } else {\n return <LinePath data={raw} from={from} to={to} curve={curveMonotoneX} {...common} {...rest} />;\n }\n };\n\n LinePathComponent.propTypes = {\n graphProps: types.GraphPropsType.isRequired,\n from: types.PointType.isRequired,\n to: types.PointType,\n onClick: PropTypes.func,\n onDragStart: PropTypes.func,\n onDragStop: PropTypes.func,\n onChange: PropTypes.func,\n disabled: PropTypes.bool,\n correctness: PropTypes.string,\n };\n\n return LinePathComponent;\n};\n\nexport const withRootEdge = (getPoints) => {\n const LinePathComp = withPointsGenerationLinePath(getPoints);\n return lineBase(LinePathComp);\n};\n"],"file":"with-root-edge.js"}
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.RawArrow = void 0;
9
+
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+
12
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
+
14
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
+
16
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
+
18
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
+
20
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
21
+
22
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
+
24
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
+
26
+ var _react = _interopRequireDefault(require("react"));
27
+
28
+ var _propTypes = _interopRequireDefault(require("prop-types"));
29
+
30
+ var _classnames = _interopRequireDefault(require("classnames"));
31
+
32
+ var _plot = require("@pie-lib/plot");
33
+
34
+ var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
35
+
36
+ var _utils = require("../../../utils");
37
+
38
+ var _excluded = ["classes", "className", "x", "y", "disabled", "correctness", "graphProps", "from", "to"];
39
+
40
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
41
+
42
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
43
+
44
+ var RawArrow = /*#__PURE__*/function (_React$Component) {
45
+ (0, _inherits2["default"])(RawArrow, _React$Component);
46
+
47
+ var _super = _createSuper(RawArrow);
48
+
49
+ function RawArrow() {
50
+ (0, _classCallCheck2["default"])(this, RawArrow);
51
+ return _super.apply(this, arguments);
52
+ }
53
+
54
+ (0, _createClass2["default"])(RawArrow, [{
55
+ key: "render",
56
+ value: function render() {
57
+ var _this$props = this.props,
58
+ classes = _this$props.classes,
59
+ className = _this$props.className,
60
+ x = _this$props.x,
61
+ y = _this$props.y,
62
+ disabled = _this$props.disabled,
63
+ correctness = _this$props.correctness,
64
+ graphProps = _this$props.graphProps,
65
+ from = _this$props.from,
66
+ to = _this$props.to,
67
+ rest = (0, _objectWithoutProperties2["default"])(_this$props, _excluded); // x & y are the initial coordinates for the arrow
68
+ // from & to are used only to calculate the angle that the arrow should be rotated with
69
+
70
+ var scale = graphProps.scale;
71
+ var angle = (0, _utils.getAngleDeg)(from.x, from.y, to.x, to.y);
72
+ var points = '';
73
+
74
+ if ((0, _isEqual["default"])(from, to)) {
75
+ points = '0,0 0,0 0,0';
76
+ } else {
77
+ points = "0,0 ".concat(_utils.arrowDimensions.vector, ",").concat(_utils.arrowDimensions.vector * 2, " \n -").concat(_utils.arrowDimensions.vector, ",").concat(_utils.arrowDimensions.vector * 2);
78
+ }
79
+
80
+ return /*#__PURE__*/_react["default"].createElement("g", (0, _extends2["default"])({
81
+ className: (0, _classnames["default"])(classes.point, disabled && classes.disabled, classes[correctness], className)
82
+ }, rest), /*#__PURE__*/_react["default"].createElement("polygon", {
83
+ points: points,
84
+ transform: "\n translate(".concat(scale.x(x), ", ").concat(scale.y(y), ")\n rotate(").concat(angle, " 0 0)")
85
+ }));
86
+ }
87
+ }]);
88
+ return RawArrow;
89
+ }(_react["default"].Component);
90
+
91
+ exports.RawArrow = RawArrow;
92
+ (0, _defineProperty2["default"])(RawArrow, "propTypes", {
93
+ classes: _propTypes["default"].object,
94
+ className: _propTypes["default"].string,
95
+ correctness: _propTypes["default"].string,
96
+ disabled: _propTypes["default"].bool,
97
+ x: _propTypes["default"].number,
98
+ y: _propTypes["default"].number,
99
+ from: _propTypes["default"].shape({
100
+ x: _propTypes["default"].number,
101
+ y: _propTypes["default"].number
102
+ }).isRequired,
103
+ to: _propTypes["default"].shape({
104
+ x: _propTypes["default"].number,
105
+ y: _propTypes["default"].number
106
+ }),
107
+ graphProps: _plot.types.GraphPropsType.isRequired
108
+ });
109
+ (0, _defineProperty2["default"])(RawArrow, "defaultProps", {
110
+ from: {},
111
+ to: {}
112
+ });
113
+ //# sourceMappingURL=arrow-point.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/tools/shared/point/arrow-point.jsx"],"names":["RawArrow","props","classes","className","x","y","disabled","correctness","graphProps","from","to","rest","scale","angle","points","arrowDimensions","vector","point","React","Component","PropTypes","object","string","bool","number","shape","isRequired","types","GraphPropsType"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;IAEaA,Q;;;;;;;;;;;;WAwBX,kBAAS;AACP,wBAA2F,KAAKC,KAAhG;AAAA,UAAQC,OAAR,eAAQA,OAAR;AAAA,UAAiBC,SAAjB,eAAiBA,SAAjB;AAAA,UAA4BC,CAA5B,eAA4BA,CAA5B;AAAA,UAA+BC,CAA/B,eAA+BA,CAA/B;AAAA,UAAkCC,QAAlC,eAAkCA,QAAlC;AAAA,UAA4CC,WAA5C,eAA4CA,WAA5C;AAAA,UAAyDC,UAAzD,eAAyDA,UAAzD;AAAA,UAAqEC,IAArE,eAAqEA,IAArE;AAAA,UAA2EC,EAA3E,eAA2EA,EAA3E;AAAA,UAAkFC,IAAlF,qEADO,CAEP;AACA;;AAEA,UAAQC,KAAR,GAAkBJ,UAAlB,CAAQI,KAAR;AACA,UAAMC,KAAK,GAAG,wBAAYJ,IAAI,CAACL,CAAjB,EAAoBK,IAAI,CAACJ,CAAzB,EAA4BK,EAAE,CAACN,CAA/B,EAAkCM,EAAE,CAACL,CAArC,CAAd;AAEA,UAAIS,MAAM,GAAG,EAAb;;AAEA,UAAI,yBAAQL,IAAR,EAAcC,EAAd,CAAJ,EAAuB;AACrBI,QAAAA,MAAM,GAAG,aAAT;AACD,OAFD,MAEO;AACLA,QAAAA,MAAM,iBAAUC,uBAAgBC,MAA1B,cAAoCD,uBAAgBC,MAAhB,GAAyB,CAA7D,uBACHD,uBAAgBC,MADb,cACuBD,uBAAgBC,MAAhB,GAAyB,CADhD,CAAN;AAED;;AAED,0BACE;AAAG,QAAA,SAAS,EAAE,4BAAWd,OAAO,CAACe,KAAnB,EAA0BX,QAAQ,IAAIJ,OAAO,CAACI,QAA9C,EAAwDJ,OAAO,CAACK,WAAD,CAA/D,EAA8EJ,SAA9E;AAAd,SAA4GQ,IAA5G,gBACE;AACE,QAAA,MAAM,EAAEG,MADV;AAEE,QAAA,SAAS,kCACGF,KAAK,CAACR,CAAN,CAAQA,CAAR,CADH,eACkBQ,KAAK,CAACP,CAAN,CAAQA,CAAR,CADlB,iCAEAQ,KAFA;AAFX,QADF,CADF;AAUD;;;EAnD2BK,kBAAMC,S;;;iCAAvBnB,Q,eACQ;AACjBE,EAAAA,OAAO,EAAEkB,sBAAUC,MADF;AAEjBlB,EAAAA,SAAS,EAAEiB,sBAAUE,MAFJ;AAGjBf,EAAAA,WAAW,EAAEa,sBAAUE,MAHN;AAIjBhB,EAAAA,QAAQ,EAAEc,sBAAUG,IAJH;AAKjBnB,EAAAA,CAAC,EAAEgB,sBAAUI,MALI;AAMjBnB,EAAAA,CAAC,EAAEe,sBAAUI,MANI;AAOjBf,EAAAA,IAAI,EAAEW,sBAAUK,KAAV,CAAgB;AACpBrB,IAAAA,CAAC,EAAEgB,sBAAUI,MADO;AAEpBnB,IAAAA,CAAC,EAAEe,sBAAUI;AAFO,GAAhB,EAGHE,UAVc;AAWjBhB,EAAAA,EAAE,EAAEU,sBAAUK,KAAV,CAAgB;AAClBrB,IAAAA,CAAC,EAAEgB,sBAAUI,MADK;AAElBnB,IAAAA,CAAC,EAAEe,sBAAUI;AAFK,GAAhB,CAXa;AAejBhB,EAAAA,UAAU,EAAEmB,YAAMC,cAAN,CAAqBF;AAfhB,C;iCADR1B,Q,kBAmBW;AACpBS,EAAAA,IAAI,EAAE,EADc;AAEpBC,EAAAA,EAAE,EAAE;AAFgB,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { types } from '@pie-lib/plot';\nimport isEqual from 'lodash/isEqual';\nimport { getAngleDeg, arrowDimensions } from '../../../utils';\n\nexport class RawArrow extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n className: PropTypes.string,\n correctness: PropTypes.string,\n disabled: PropTypes.bool,\n x: PropTypes.number,\n y: PropTypes.number,\n from: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n }).isRequired,\n to: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n }),\n graphProps: types.GraphPropsType.isRequired,\n };\n\n static defaultProps = {\n from: {},\n to: {},\n };\n\n render() {\n const { classes, className, x, y, disabled, correctness, graphProps, from, to, ...rest } = this.props;\n // x & y are the initial coordinates for the arrow\n // from & to are used only to calculate the angle that the arrow should be rotated with\n\n const { scale } = graphProps;\n const angle = getAngleDeg(from.x, from.y, to.x, to.y);\n\n let points = '';\n\n if (isEqual(from, to)) {\n points = '0,0 0,0 0,0';\n } else {\n points = `0,0 ${arrowDimensions.vector},${arrowDimensions.vector * 2} \n -${arrowDimensions.vector},${arrowDimensions.vector * 2}`;\n }\n\n return (\n <g className={classNames(classes.point, disabled && classes.disabled, classes[correctness], className)} {...rest}>\n <polygon\n points={points}\n transform={`\n translate(${scale.x(x)}, ${scale.y(y)})\n rotate(${angle} 0 0)`}\n />\n </g>\n );\n }\n}\n"],"file":"arrow-point.js"}
@@ -0,0 +1,96 @@
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 _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+
12
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
+
14
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
+
16
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
+
18
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
+
20
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
21
+
22
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
+
24
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
+
26
+ var _react = _interopRequireDefault(require("react"));
27
+
28
+ var _propTypes = _interopRequireDefault(require("prop-types"));
29
+
30
+ var _classnames = _interopRequireDefault(require("classnames"));
31
+
32
+ var _plot = require("@pie-lib/plot");
33
+
34
+ var _arrowHead = require("../arrow-head");
35
+
36
+ var _utils = require("../../../utils");
37
+
38
+ var _excluded = ["classes", "angle", "className", "x", "y", "disabled", "correctness", "graphProps"];
39
+
40
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
41
+
42
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
43
+
44
+ var Arrow = /*#__PURE__*/function (_React$Component) {
45
+ (0, _inherits2["default"])(Arrow, _React$Component);
46
+
47
+ var _super = _createSuper(Arrow);
48
+
49
+ function Arrow() {
50
+ (0, _classCallCheck2["default"])(this, Arrow);
51
+ return _super.apply(this, arguments);
52
+ }
53
+
54
+ (0, _createClass2["default"])(Arrow, [{
55
+ key: "render",
56
+ value: function render() {
57
+ var _this$props = this.props,
58
+ classes = _this$props.classes,
59
+ angle = _this$props.angle,
60
+ className = _this$props.className,
61
+ x = _this$props.x,
62
+ y = _this$props.y,
63
+ disabled = _this$props.disabled,
64
+ correctness = _this$props.correctness,
65
+ graphProps = _this$props.graphProps,
66
+ rest = (0, _objectWithoutProperties2["default"])(_this$props, _excluded);
67
+ var size = (0, _utils.thinnerShapesNeeded)(graphProps) ? 12 : 14;
68
+ var scale = graphProps.scale;
69
+ var scaledX = scale.x(x);
70
+ var scaledY = scale.y(y);
71
+ var transform = "rotate(".concat(-angle, ", ").concat(scaledX, ",").concat(scaledY, ")");
72
+ var points = "".concat(scaledX, ",").concat(scaledY, "\n ").concat(scaledX - size, ",").concat(scaledY - size / 2, "\n ").concat(scaledX - size, ", ").concat(scaledY + size / 2);
73
+ return /*#__PURE__*/_react["default"].createElement("g", (0, _extends2["default"])({
74
+ className: (0, _classnames["default"])(classes.point, disabled && classes.disabled, classes[correctness], className)
75
+ }, rest), /*#__PURE__*/_react["default"].createElement(_arrowHead.ArrowHead, {
76
+ size: size,
77
+ transform: transform,
78
+ points: points
79
+ }));
80
+ }
81
+ }]);
82
+ return Arrow;
83
+ }(_react["default"].Component);
84
+
85
+ exports["default"] = Arrow;
86
+ (0, _defineProperty2["default"])(Arrow, "propTypes", {
87
+ classes: _propTypes["default"].object,
88
+ className: _propTypes["default"].string,
89
+ correctness: _propTypes["default"].string,
90
+ disabled: _propTypes["default"].bool,
91
+ x: _propTypes["default"].number.isRequired,
92
+ y: _propTypes["default"].number.isRequired,
93
+ angle: _propTypes["default"].number.isRequired,
94
+ graphProps: _plot.types.GraphPropsType.isRequired
95
+ });
96
+ //# sourceMappingURL=arrow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/tools/shared/point/arrow.jsx"],"names":["Arrow","props","classes","angle","className","x","y","disabled","correctness","graphProps","rest","size","scale","scaledX","scaledY","transform","points","point","React","Component","PropTypes","object","string","bool","number","isRequired","types","GraphPropsType"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;IAEqBA,K;;;;;;;;;;;;WAYnB,kBAAS;AACP,wBAAwF,KAAKC,KAA7F;AAAA,UAAQC,OAAR,eAAQA,OAAR;AAAA,UAAiBC,KAAjB,eAAiBA,KAAjB;AAAA,UAAwBC,SAAxB,eAAwBA,SAAxB;AAAA,UAAmCC,CAAnC,eAAmCA,CAAnC;AAAA,UAAsCC,CAAtC,eAAsCA,CAAtC;AAAA,UAAyCC,QAAzC,eAAyCA,QAAzC;AAAA,UAAmDC,WAAnD,eAAmDA,WAAnD;AAAA,UAAgEC,UAAhE,eAAgEA,UAAhE;AAAA,UAA+EC,IAA/E;AAEA,UAAMC,IAAI,GAAG,gCAAoBF,UAApB,IAAkC,EAAlC,GAAuC,EAApD;AACA,UAAQG,KAAR,GAAkBH,UAAlB,CAAQG,KAAR;AAEA,UAAMC,OAAO,GAAGD,KAAK,CAACP,CAAN,CAAQA,CAAR,CAAhB;AACA,UAAMS,OAAO,GAAGF,KAAK,CAACN,CAAN,CAAQA,CAAR,CAAhB;AAEA,UAAMS,SAAS,oBAAa,CAACZ,KAAd,eAAwBU,OAAxB,cAAmCC,OAAnC,MAAf;AACA,UAAME,MAAM,aAAMH,OAAN,cAAiBC,OAAjB,uBACND,OAAO,GAAGF,IADJ,cACYG,OAAO,GAAGH,IAAI,GAAG,CAD7B,uBAENE,OAAO,GAAGF,IAFJ,eAEaG,OAAO,GAAGH,IAAI,GAAG,CAF9B,CAAZ;AAIA,0BACE;AAAG,QAAA,SAAS,EAAE,4BAAWT,OAAO,CAACe,KAAnB,EAA0BV,QAAQ,IAAIL,OAAO,CAACK,QAA9C,EAAwDL,OAAO,CAACM,WAAD,CAA/D,EAA8EJ,SAA9E;AAAd,SAA4GM,IAA5G,gBACE,gCAAC,oBAAD;AAAW,QAAA,IAAI,EAAEC,IAAjB;AAAuB,QAAA,SAAS,EAAEI,SAAlC;AAA6C,QAAA,MAAM,EAAEC;AAArD,QADF,CADF;AAKD;;;EA/BgCE,kBAAMC,S;;;iCAApBnB,K,eACA;AACjBE,EAAAA,OAAO,EAAEkB,sBAAUC,MADF;AAEjBjB,EAAAA,SAAS,EAAEgB,sBAAUE,MAFJ;AAGjBd,EAAAA,WAAW,EAAEY,sBAAUE,MAHN;AAIjBf,EAAAA,QAAQ,EAAEa,sBAAUG,IAJH;AAKjBlB,EAAAA,CAAC,EAAEe,sBAAUI,MAAV,CAAiBC,UALH;AAMjBnB,EAAAA,CAAC,EAAEc,sBAAUI,MAAV,CAAiBC,UANH;AAOjBtB,EAAAA,KAAK,EAAEiB,sBAAUI,MAAV,CAAiBC,UAPP;AAQjBhB,EAAAA,UAAU,EAAEiB,YAAMC,cAAN,CAAqBF;AARhB,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { types } from '@pie-lib/plot';\nimport { ArrowHead } from '../arrow-head';\nimport { thinnerShapesNeeded } from '../../../utils';\n\nexport default class Arrow extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n className: PropTypes.string,\n correctness: PropTypes.string,\n disabled: PropTypes.bool,\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired,\n angle: PropTypes.number.isRequired,\n graphProps: types.GraphPropsType.isRequired,\n };\n\n render() {\n const { classes, angle, className, x, y, disabled, correctness, graphProps, ...rest } = this.props;\n\n const size = thinnerShapesNeeded(graphProps) ? 12 : 14;\n const { scale } = graphProps;\n\n const scaledX = scale.x(x);\n const scaledY = scale.y(y);\n\n const transform = `rotate(${-angle}, ${scaledX},${scaledY})`;\n const points = `${scaledX},${scaledY}\n ${scaledX - size},${scaledY - size / 2}\n ${scaledX - size}, ${scaledY + size / 2}`;\n\n return (\n <g className={classNames(classes.point, disabled && classes.disabled, classes[correctness], className)} {...rest}>\n <ArrowHead size={size} transform={transform} points={points} />\n </g>\n );\n }\n}\n"],"file":"arrow.js"}