@pie-lib/graphing 2.14.21 → 2.14.22-next.1618

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 (194) hide show
  1. package/CHANGELOG.json +1 -1017
  2. package/CHANGELOG.md +159 -24
  3. package/NEXT.CHANGELOG.json +1 -0
  4. package/lib/axis/axes.js +5 -5
  5. package/lib/axis/axes.js.map +1 -1
  6. package/lib/container/index.js +1 -4
  7. package/lib/container/index.js.map +1 -1
  8. package/lib/coordinates-label.js +5 -3
  9. package/lib/coordinates-label.js.map +1 -1
  10. package/lib/graph-with-controls.js +8 -15
  11. package/lib/graph-with-controls.js.map +1 -1
  12. package/lib/graph.js +29 -12
  13. package/lib/graph.js.map +1 -1
  14. package/lib/grid.js +6 -14
  15. package/lib/grid.js.map +1 -1
  16. package/lib/index.js +8 -0
  17. package/lib/index.js.map +1 -1
  18. package/lib/key-legend.js +246 -0
  19. package/lib/key-legend.js.map +1 -0
  20. package/lib/label-svg-icon.js +56 -0
  21. package/lib/label-svg-icon.js.map +1 -0
  22. package/lib/labels.js +2 -1
  23. package/lib/labels.js.map +1 -1
  24. package/lib/mark-label.js +167 -56
  25. package/lib/mark-label.js.map +1 -1
  26. package/lib/toggle-bar.js +3 -4
  27. package/lib/toggle-bar.js.map +1 -1
  28. package/lib/tool-menu.js +2 -22
  29. package/lib/tool-menu.js.map +1 -1
  30. package/lib/tools/absolute/component.js +35 -0
  31. package/lib/tools/absolute/component.js.map +1 -0
  32. package/lib/tools/absolute/index.js +63 -0
  33. package/lib/tools/absolute/index.js.map +1 -0
  34. package/lib/tools/circle/bg-circle.js +4 -3
  35. package/lib/tools/circle/bg-circle.js.map +1 -1
  36. package/lib/tools/circle/component.js +34 -15
  37. package/lib/tools/circle/component.js.map +1 -1
  38. package/lib/tools/exponential/component.js +34 -0
  39. package/lib/tools/exponential/component.js.map +1 -0
  40. package/lib/tools/exponential/index.js +71 -0
  41. package/lib/tools/exponential/index.js.map +1 -0
  42. package/lib/tools/index.js +26 -6
  43. package/lib/tools/index.js.map +1 -1
  44. package/lib/tools/line/component.js +2 -1
  45. package/lib/tools/line/component.js.map +1 -1
  46. package/lib/tools/parabola/component.js +6 -5
  47. package/lib/tools/parabola/component.js.map +1 -1
  48. package/lib/tools/point/component.js +14 -9
  49. package/lib/tools/point/component.js.map +1 -1
  50. package/lib/tools/polygon/component.js +25 -12
  51. package/lib/tools/polygon/component.js.map +1 -1
  52. package/lib/tools/polygon/line.js +12 -6
  53. package/lib/tools/polygon/line.js.map +1 -1
  54. package/lib/tools/polygon/polygon.js +6 -3
  55. package/lib/tools/polygon/polygon.js.map +1 -1
  56. package/lib/tools/ray/component.js +2 -1
  57. package/lib/tools/ray/component.js.map +1 -1
  58. package/lib/tools/segment/component.js +2 -1
  59. package/lib/tools/segment/component.js.map +1 -1
  60. package/lib/tools/shared/icons/CorrectSVG.js +36 -0
  61. package/lib/tools/shared/icons/CorrectSVG.js.map +1 -0
  62. package/lib/tools/shared/icons/IncorrectSVG.js +36 -0
  63. package/lib/tools/shared/icons/IncorrectSVG.js.map +1 -0
  64. package/lib/tools/shared/icons/MissingSVG.js +35 -0
  65. package/lib/tools/shared/icons/MissingSVG.js.map +1 -0
  66. package/lib/tools/shared/line/index.js +51 -19
  67. package/lib/tools/shared/line/index.js.map +1 -1
  68. package/lib/tools/shared/line/line-path.js +13 -7
  69. package/lib/tools/shared/line/line-path.js.map +1 -1
  70. package/lib/tools/shared/line/with-root-edge.js +19 -8
  71. package/lib/tools/shared/line/with-root-edge.js.map +1 -1
  72. package/lib/tools/shared/point/arrow-point.js +1 -1
  73. package/lib/tools/shared/point/arrow-point.js.map +1 -1
  74. package/lib/tools/shared/point/arrow.js +1 -1
  75. package/lib/tools/shared/point/arrow.js.map +1 -1
  76. package/lib/tools/shared/point/base-point.js +43 -7
  77. package/lib/tools/shared/point/base-point.js.map +1 -1
  78. package/lib/tools/shared/point/index.js +4 -1
  79. package/lib/tools/shared/point/index.js.map +1 -1
  80. package/lib/tools/shared/styles.js +16 -7
  81. package/lib/tools/shared/styles.js.map +1 -1
  82. package/lib/tools/sine/component.js +13 -4
  83. package/lib/tools/sine/component.js.map +1 -1
  84. package/lib/tools/vector/component.js +2 -1
  85. package/lib/tools/vector/component.js.map +1 -1
  86. package/lib/undo-redo.js +0 -1
  87. package/lib/undo-redo.js.map +1 -1
  88. package/lib/utils.js +1 -1
  89. package/lib/utils.js.map +1 -1
  90. package/package.json +12 -7
  91. package/src/__tests__/__snapshots__/graph-with-controls.test.jsx.snap +237 -0
  92. package/src/__tests__/__snapshots__/graph.test.jsx.snap +211 -0
  93. package/src/__tests__/__snapshots__/grid.test.jsx.snap +54 -0
  94. package/src/__tests__/__snapshots__/labels.test.jsx.snap +30 -0
  95. package/src/__tests__/__snapshots__/mark-label.test.jsx.snap +45 -0
  96. package/src/__tests__/__snapshots__/toggle-bar.test.jsx.snap +7 -0
  97. package/src/__tests__/__snapshots__/tool-menu.test.jsx.snap +13 -0
  98. package/src/__tests__/__snapshots__/undo-redo.test.jsx.snap +14 -0
  99. package/src/__tests__/graph-with-controls.test.jsx +147 -0
  100. package/src/__tests__/graph.test.jsx +230 -0
  101. package/src/__tests__/grid.test.jsx +20 -0
  102. package/src/__tests__/labels.test.jsx +38 -0
  103. package/src/__tests__/mark-label.test.jsx +68 -0
  104. package/src/__tests__/toggle-bar.test.jsx +36 -0
  105. package/src/__tests__/tool-menu.test.jsx +29 -0
  106. package/src/__tests__/undo-redo.test.jsx +25 -0
  107. package/src/__tests__/use-debounce.test.js +21 -0
  108. package/src/__tests__/utils.js +38 -0
  109. package/src/__tests__/utils.test.js +151 -0
  110. package/src/axis/__tests__/__snapshots__/arrow.test.jsx.snap +33 -0
  111. package/src/axis/__tests__/__snapshots__/axes.test.jsx.snap +122 -0
  112. package/src/axis/__tests__/arrow.test.jsx +39 -0
  113. package/src/axis/__tests__/axes.test.jsx +220 -0
  114. package/src/axis/axes.jsx +5 -5
  115. package/src/container/index.jsx +2 -4
  116. package/src/coordinates-label.jsx +4 -3
  117. package/src/graph-with-controls.jsx +8 -10
  118. package/src/graph.jsx +22 -10
  119. package/src/grid.jsx +8 -10
  120. package/src/index.js +2 -2
  121. package/src/key-legend.jsx +145 -0
  122. package/src/label-svg-icon.jsx +39 -0
  123. package/src/labels.jsx +2 -1
  124. package/src/mark-label.jsx +149 -52
  125. package/src/toggle-bar.jsx +1 -2
  126. package/src/tool-menu.jsx +3 -26
  127. package/src/tools/absolute/__tests__/component.test.jsx +54 -0
  128. package/src/tools/absolute/component.jsx +23 -0
  129. package/src/tools/absolute/index.js +31 -0
  130. package/src/tools/circle/__tests__/__snapshots__/bg-circle.test.jsx.snap +46 -0
  131. package/src/tools/circle/__tests__/__snapshots__/component.test.jsx.snap +293 -0
  132. package/src/tools/circle/__tests__/bg-circle.test.jsx +28 -0
  133. package/src/tools/circle/__tests__/component.test.jsx +228 -0
  134. package/src/tools/circle/bg-circle.jsx +5 -4
  135. package/src/tools/circle/component.jsx +22 -8
  136. package/src/tools/exponential/__tests__/component.test.jsx +54 -0
  137. package/src/tools/exponential/component.jsx +23 -0
  138. package/src/tools/exponential/index.js +39 -0
  139. package/src/tools/index.js +38 -5
  140. package/src/tools/line/__tests__/__snapshots__/component.test.jsx.snap +20 -0
  141. package/src/tools/line/__tests__/component.test.jsx +36 -0
  142. package/src/tools/line/component.jsx +2 -1
  143. package/src/tools/parabola/__tests__/component.test.jsx +49 -0
  144. package/src/tools/parabola/component.jsx +7 -6
  145. package/src/tools/point/__tests__/__snapshots__/component.test.jsx.snap +40 -0
  146. package/src/tools/point/__tests__/component.test.jsx +66 -0
  147. package/src/tools/point/component.jsx +12 -6
  148. package/src/tools/polygon/__tests__/__snapshots__/component.test.jsx.snap +415 -0
  149. package/src/tools/polygon/__tests__/__snapshots__/line.test.jsx.snap +45 -0
  150. package/src/tools/polygon/__tests__/__snapshots__/polygon.test.jsx.snap +52 -0
  151. package/src/tools/polygon/__tests__/component.test.jsx +226 -0
  152. package/src/tools/polygon/__tests__/index.test.js +65 -0
  153. package/src/tools/polygon/__tests__/line.test.jsx +25 -0
  154. package/src/tools/polygon/__tests__/polygon.test.jsx +44 -0
  155. package/src/tools/polygon/component.jsx +39 -11
  156. package/src/tools/polygon/line.jsx +15 -7
  157. package/src/tools/polygon/polygon.jsx +7 -3
  158. package/src/tools/ray/__tests__/__snapshots__/component.test.jsx.snap +23 -0
  159. package/src/tools/ray/__tests__/component.test.jsx +29 -0
  160. package/src/tools/ray/component.jsx +2 -1
  161. package/src/tools/segment/__tests__/__snapshots__/component.test.jsx.snap +14 -0
  162. package/src/tools/segment/__tests__/component.test.jsx +28 -0
  163. package/src/tools/segment/component.jsx +2 -1
  164. package/src/tools/shared/__tests__/__snapshots__/arrow-head.test.jsx.snap +27 -0
  165. package/src/tools/shared/__tests__/arrow-head.test.jsx +34 -0
  166. package/src/tools/shared/icons/CorrectSVG.jsx +22 -0
  167. package/src/tools/shared/icons/IncorrectSVG.jsx +20 -0
  168. package/src/tools/shared/icons/MissingSVG.jsx +21 -0
  169. package/src/tools/shared/line/__tests__/__snapshots__/index.test.jsx.snap +360 -0
  170. package/src/tools/shared/line/__tests__/__snapshots__/line-path.test.jsx.snap +58 -0
  171. package/src/tools/shared/line/__tests__/__snapshots__/with-root-edge.test.jsx.snap +63 -0
  172. package/src/tools/shared/line/__tests__/index.test.jsx +255 -0
  173. package/src/tools/shared/line/__tests__/line-path.test.jsx +53 -0
  174. package/src/tools/shared/line/__tests__/with-root-edge.test.jsx +73 -0
  175. package/src/tools/shared/line/index.jsx +39 -13
  176. package/src/tools/shared/line/line-path.jsx +18 -7
  177. package/src/tools/shared/line/with-root-edge.jsx +10 -3
  178. package/src/tools/shared/point/__tests__/__snapshots__/arrow-point.test.jsx.snap +56 -0
  179. package/src/tools/shared/point/__tests__/__snapshots__/base-point.test.jsx.snap +44 -0
  180. package/src/tools/shared/point/__tests__/arrow-point.test.jsx +87 -0
  181. package/src/tools/shared/point/__tests__/base-point.test.jsx +84 -0
  182. package/src/tools/shared/point/arrow-point.jsx +4 -1
  183. package/src/tools/shared/point/arrow.jsx +4 -1
  184. package/src/tools/shared/point/base-point.jsx +28 -3
  185. package/src/tools/shared/point/index.jsx +7 -2
  186. package/src/tools/shared/styles.js +8 -3
  187. package/src/tools/sine/__tests__/component.test.jsx +51 -0
  188. package/src/tools/sine/component.jsx +7 -7
  189. package/src/tools/vector/__tests__/__snapshots__/component.test.jsx.snap +12 -0
  190. package/src/tools/vector/__tests__/component.test.jsx +26 -0
  191. package/src/tools/vector/component.jsx +2 -1
  192. package/src/undo-redo.jsx +0 -1
  193. package/src/utils.js +1 -1
  194. package/legacy.png +0 -0
@@ -37,7 +37,13 @@ var _reactDom = _interopRequireDefault(require("react-dom"));
37
37
 
38
38
  var _utils = require("../../../utils");
39
39
 
40
- var _excluded = ["classes", "className", "coordinatesOnHover", "x", "y", "disabled", "correctness", "graphProps", "labelNode", "style"];
40
+ var _MissingSVG = _interopRequireDefault(require("../icons/MissingSVG"));
41
+
42
+ var _CorrectSVG = _interopRequireDefault(require("../icons/CorrectSVG"));
43
+
44
+ var _IncorrectSVG = _interopRequireDefault(require("../icons/IncorrectSVG"));
45
+
46
+ var _excluded = ["classes", "className", "coordinatesOnHover", "x", "y", "disabled", "correctness", "graphProps", "labelNode", "style", "onClick", "onTouchStart", "onTouchEnd"];
41
47
 
42
48
  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); }; }
43
49
 
@@ -75,11 +81,34 @@ var RawBp = /*#__PURE__*/function (_React$Component) {
75
81
  graphProps = _this$props.graphProps,
76
82
  labelNode = _this$props.labelNode,
77
83
  style = _this$props.style,
84
+ onClick = _this$props.onClick,
85
+ onTouchStart = _this$props.onTouchStart,
86
+ onTouchEnd = _this$props.onTouchEnd,
78
87
  rest = (0, _objectWithoutProperties2["default"])(_this$props, _excluded);
79
88
  var showCoordinates = this.state.showCoordinates;
80
89
  var scale = graphProps.scale;
81
90
  var r = (0, _utils.thinnerShapesNeeded)(graphProps) ? 5 : 7;
82
- return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("circle", (0, _extends2["default"])({
91
+ var SvgComponent;
92
+
93
+ switch (correctness) {
94
+ case 'missing':
95
+ SvgComponent = _MissingSVG["default"];
96
+ break;
97
+
98
+ case 'correct':
99
+ SvgComponent = _CorrectSVG["default"];
100
+ break;
101
+
102
+ case 'incorrect':
103
+ SvgComponent = _IncorrectSVG["default"];
104
+ break;
105
+
106
+ default:
107
+ SvgComponent = null;
108
+ break;
109
+ }
110
+
111
+ return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("circle", {
83
112
  style: {
84
113
  fill: 'transparent',
85
114
  cursor: 'pointer',
@@ -97,9 +126,12 @@ var RawBp = /*#__PURE__*/function (_React$Component) {
97
126
  return _this2.setState({
98
127
  showCoordinates: false
99
128
  });
100
- }
101
- }, rest)), /*#__PURE__*/_react["default"].createElement("g", (0, _extends2["default"])({
102
- className: (0, _classnames["default"])(classes.point, disabled && classes.disabled, classes[correctness], className),
129
+ },
130
+ onTouchStart: onTouchStart,
131
+ onTouchEnd: onTouchEnd,
132
+ onClick: onClick
133
+ }), /*#__PURE__*/_react["default"].createElement("g", {
134
+ className: (0, _classnames["default"])(classes.point, disabled && classes.disabledSecondary, classes[correctness], className),
103
135
  onMouseEnter: function onMouseEnter() {
104
136
  return _this2.setState({
105
137
  showCoordinates: true
@@ -110,11 +142,15 @@ var RawBp = /*#__PURE__*/function (_React$Component) {
110
142
  showCoordinates: false
111
143
  });
112
144
  }
113
- }, rest), /*#__PURE__*/_react["default"].createElement("circle", (0, _extends2["default"])({}, rest, {
145
+ }, /*#__PURE__*/_react["default"].createElement("circle", (0, _extends2["default"])({}, rest, {
114
146
  r: r,
115
147
  cx: scale.x(x),
116
148
  cy: scale.y(y)
117
- })), labelNode && coordinatesOnHover && showCoordinates && /*#__PURE__*/_reactDom["default"].createPortal( /*#__PURE__*/_react["default"].createElement(_coordinatesLabel["default"], {
149
+ })), SvgComponent && /*#__PURE__*/_react["default"].createElement(SvgComponent, {
150
+ scale: scale,
151
+ x: x,
152
+ y: y
153
+ }), labelNode && coordinatesOnHover && showCoordinates && /*#__PURE__*/_reactDom["default"].createPortal( /*#__PURE__*/_react["default"].createElement(_coordinatesLabel["default"], {
118
154
  graphProps: graphProps,
119
155
  x: x,
120
156
  y: y
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/tools/shared/point/base-point.jsx"],"names":["RawBp","props","state","showCoordinates","classes","className","coordinatesOnHover","x","y","disabled","correctness","graphProps","labelNode","style","rest","scale","r","fill","cursor","pointerEvents","setState","point","ReactDOM","createPortal","React","Component","PropTypes","object","string","bool","number","types","GraphPropsType","isRequired"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { types } from '@pie-lib/plot';\nimport CoordinatesLabel from '../../../coordinates-label';\nimport ReactDOM from 'react-dom';\nimport { thinnerShapesNeeded } from '../../../utils';\n\nexport class RawBp extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n className: PropTypes.string,\n coordinatesOnHover: PropTypes.bool,\n correctness: PropTypes.string,\n disabled: PropTypes.bool,\n labelNode: PropTypes.object,\n x: PropTypes.number,\n y: PropTypes.number,\n graphProps: types.GraphPropsType.isRequired,\n };\n\n constructor(props) {\n super(props);\n this.state = { showCoordinates: false };\n }\n\n render() {\n const {\n classes,\n className,\n coordinatesOnHover,\n x,\n y,\n disabled,\n correctness,\n graphProps,\n labelNode,\n // we need to remove style from props\n // eslint-disable-next-line no-unused-vars,react/prop-types\n style,\n ...rest\n } = this.props;\n const { showCoordinates } = this.state;\n const { scale } = graphProps;\n const r = thinnerShapesNeeded(graphProps) ? 5 : 7;\n\n return (\n <>\n <circle\n style={{ fill: 'transparent', cursor: 'pointer', pointerEvents: 'all' }}\n r={r * 3}\n cx={scale.x(x)}\n cy={scale.y(y)}\n onMouseEnter={() => this.setState({ showCoordinates: true })}\n onMouseLeave={() => this.setState({ showCoordinates: false })}\n {...rest}\n />\n <g\n className={classNames(classes.point, disabled && classes.disabled, classes[correctness], className)}\n onMouseEnter={() => this.setState({ showCoordinates: true })}\n onMouseLeave={() => this.setState({ showCoordinates: false })}\n {...rest}\n >\n <circle {...rest} r={r} cx={scale.x(x)} cy={scale.y(y)} />\n {labelNode &&\n coordinatesOnHover &&\n showCoordinates &&\n ReactDOM.createPortal(<CoordinatesLabel graphProps={graphProps} x={x} y={y} />, labelNode)}\n </g>\n </>\n );\n }\n}\n"],"file":"base-point.js"}
1
+ {"version":3,"sources":["../../../../src/tools/shared/point/base-point.jsx"],"names":["RawBp","props","state","showCoordinates","classes","className","coordinatesOnHover","x","y","disabled","correctness","graphProps","labelNode","style","onClick","onTouchStart","onTouchEnd","rest","scale","r","SvgComponent","MissingSVG","CorrectSVG","IncorrectSVG","fill","cursor","pointerEvents","setState","point","disabledSecondary","ReactDOM","createPortal","React","Component","PropTypes","object","string","bool","number","types","GraphPropsType","isRequired"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { types } from '@pie-lib/plot';\nimport CoordinatesLabel from '../../../coordinates-label';\nimport ReactDOM from 'react-dom';\nimport { thinnerShapesNeeded } from '../../../utils';\nimport MissingSVG from '../icons/MissingSVG';\nimport CorrectSVG from '../icons/CorrectSVG';\nimport IncorrectSVG from '../icons/IncorrectSVG';\n\nexport class RawBp extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n className: PropTypes.string,\n coordinatesOnHover: PropTypes.bool,\n correctness: PropTypes.string,\n disabled: PropTypes.bool,\n labelNode: PropTypes.object,\n x: PropTypes.number,\n y: PropTypes.number,\n graphProps: types.GraphPropsType.isRequired,\n };\n\n constructor(props) {\n super(props);\n this.state = { showCoordinates: false };\n }\n\n render() {\n const {\n classes,\n className,\n coordinatesOnHover,\n x,\n y,\n disabled,\n correctness,\n graphProps,\n labelNode,\n // we need to remove style from props\n // eslint-disable-next-line no-unused-vars,react/prop-types\n style,\n onClick,\n // Refactored RawBp component by isolating onTouchStart and onTouchEnd handlers to the outer circle, resolving erratic touch event behavior.\n // Remaining props are now applied only to the inner circle for improved event handling consistency.\n onTouchStart,\n onTouchEnd,\n ...rest\n } = this.props;\n const { showCoordinates } = this.state;\n const { scale } = graphProps;\n const r = thinnerShapesNeeded(graphProps) ? 5 : 7;\n let SvgComponent;\n switch (correctness) {\n case 'missing':\n SvgComponent = MissingSVG;\n break;\n case 'correct':\n SvgComponent = CorrectSVG;\n break;\n case 'incorrect':\n SvgComponent = IncorrectSVG;\n break;\n default:\n SvgComponent = null;\n break;\n }\n\n return (\n <>\n <circle\n style={{ fill: 'transparent', cursor: 'pointer', pointerEvents: 'all' }}\n r={r * 3}\n cx={scale.x(x)}\n cy={scale.y(y)}\n onMouseEnter={() => this.setState({ showCoordinates: true })}\n onMouseLeave={() => this.setState({ showCoordinates: false })}\n onTouchStart={onTouchStart}\n onTouchEnd={onTouchEnd}\n onClick={onClick}\n />\n <g\n className={classNames(classes.point, disabled && classes.disabledSecondary, classes[correctness], className)}\n onMouseEnter={() => this.setState({ showCoordinates: true })}\n onMouseLeave={() => this.setState({ showCoordinates: false })}\n >\n <circle {...rest} r={r} cx={scale.x(x)} cy={scale.y(y)} />\n {SvgComponent && <SvgComponent scale={scale} x={x} y={y} />}\n {labelNode &&\n coordinatesOnHover &&\n showCoordinates &&\n ReactDOM.createPortal(<CoordinatesLabel graphProps={graphProps} x={x} y={y} />, labelNode)}\n </g>\n </>\n );\n }\n}\n"],"file":"base-point.js"}
@@ -67,12 +67,15 @@ var styles = function styles() {
67
67
  point: {
68
68
  '& circle, & polygon': {
69
69
  cursor: 'pointer',
70
- fill: _renderUi.color.secondary()
70
+ fill: _renderUi.color.defaults.BLACK
71
71
  }
72
72
  },
73
73
  disabled: {
74
74
  '& circle, & polygon': _objectSpread({}, (0, _styles.disabled)())
75
75
  },
76
+ disabledSecondary: {
77
+ '& circle, & polygon': _objectSpread({}, (0, _styles.disabledSecondary)())
78
+ },
76
79
  correct: {
77
80
  '& circle, & polygon': _objectSpread({}, (0, _styles.correct)())
78
81
  },
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/tools/shared/point/index.jsx"],"names":["opts","bounds","props","domain","range","x","y","area","left","top","bottom","right","utils","anchorPoint","fromDelta","delta","point","add","styles","cursor","fill","color","secondary","disabled","correct","incorrect","missing","BasePoint","RawBp","ArrowPoint","RawArrow","Arrow","BaseArrow"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAEA,IAAMA,IAAI,GAAG;AACXC,EAAAA,MAAM,EAAE,gBAACC,KAAD,QAA8B;AAAA,QAApBC,MAAoB,QAApBA,MAAoB;AAAA,QAAZC,KAAY,QAAZA,KAAY;AACpC,QAAQC,CAAR,GAAiBH,KAAjB,CAAQG,CAAR;AAAA,QAAWC,CAAX,GAAiBJ,KAAjB,CAAWI,CAAX;AACA,QAAMC,IAAI,GAAG;AAAEC,MAAAA,IAAI,EAAEH,CAAR;AAAWI,MAAAA,GAAG,EAAEH,CAAhB;AAAmBI,MAAAA,MAAM,EAAEJ,CAA3B;AAA8BK,MAAAA,KAAK,EAAEN;AAArC,KAAb;AAEA,WAAOO,KAAK,CAACX,MAAN,CAAaM,IAAb,EAAmBJ,MAAnB,EAA2BC,KAA3B,CAAP;AACD,GANU;AAOXS,EAAAA,WAAW,EAAE,qBAACX,KAAD,EAAW;AACtB,QAAQG,CAAR,GAAiBH,KAAjB,CAAQG,CAAR;AAAA,QAAWC,CAAX,GAAiBJ,KAAjB,CAAWI,CAAX;AAEA,WAAO;AAAED,MAAAA,CAAC,EAADA,CAAF;AAAKC,MAAAA,CAAC,EAADA;AAAL,KAAP;AACD,GAXU;AAYXQ,EAAAA,SAAS,EAAE,mBAACZ,KAAD,EAAQa,KAAR,EAAkB;AAC3B,WAAOH,KAAK,CAACI,KAAN,CAAYd,KAAZ,EAAmBe,GAAnB,CAAuBL,KAAK,CAACI,KAAN,CAAYD,KAAZ,CAAvB,CAAP;AACD;AAdU,CAAb;;AAiBA,IAAMG,MAAM,GAAG,SAATA,MAAS,GAAM;AACnB,SAAO;AACLF,IAAAA,KAAK,EAAE;AACL,6BAAuB;AACrBG,QAAAA,MAAM,EAAE,SADa;AAErBC,QAAAA,IAAI,EAAEC,gBAAMC,SAAN;AAFe;AADlB,KADF;AAOLC,IAAAA,QAAQ,EAAE;AACR,+CACK,uBADL;AADQ,KAPL;AAYLC,IAAAA,OAAO,EAAE;AACP,+CACK,sBADL;AADO,KAZJ;AAiBLC,IAAAA,SAAS,EAAE;AACT,+CACK,wBADL;AADS,KAjBN;AAsBLC,IAAAA,OAAO,EAAE;AACP,+CACK,sBADL;AADO;AAtBJ,GAAP;AA4BD,CA7BD;;AA+BO,IAAMC,SAAS,GAAG,uBAAWT,MAAX,EAAmB,yBAAclB,IAAd,EAAoB4B,gBAApB,CAAnB,CAAlB;;AACA,IAAMC,UAAU,GAAG,uBAAWX,MAAX,EAAmB,yBAAclB,IAAd,EAAoB8B,oBAApB,CAAnB,CAAnB;;AACA,IAAMC,KAAK,GAAG,uBAAWb,MAAX,EAAmB,yBAAclB,IAAd,EAAoBgC,iBAApB,CAAnB,CAAd","sourcesContent":["import { withStyles } from '@material-ui/core/styles/index';\nimport { gridDraggable } from '@pie-lib/plot';\nimport * as utils from '../../../utils';\nimport { disabled, correct, incorrect, missing } from '../styles';\nimport { RawBp } from './base-point';\nimport { RawArrow } from './arrow-point';\nimport { color } from '@pie-lib/render-ui';\nimport BaseArrow from './arrow';\n\nconst opts = {\n bounds: (props, { domain, range }) => {\n const { x, y } = props;\n const area = { left: x, top: y, bottom: y, right: x };\n\n return utils.bounds(area, domain, range);\n },\n anchorPoint: (props) => {\n const { x, y } = props;\n\n return { x, y };\n },\n fromDelta: (props, delta) => {\n return utils.point(props).add(utils.point(delta));\n },\n};\n\nconst styles = () => {\n return {\n point: {\n '& circle, & polygon': {\n cursor: 'pointer',\n fill: color.secondary(),\n },\n },\n disabled: {\n '& circle, & polygon': {\n ...disabled(),\n },\n },\n correct: {\n '& circle, & polygon': {\n ...correct(),\n },\n },\n incorrect: {\n '& circle, & polygon': {\n ...incorrect(),\n },\n },\n missing: {\n '& circle, & polygon': {\n ...missing(),\n },\n },\n };\n};\n\nexport const BasePoint = withStyles(styles)(gridDraggable(opts)(RawBp));\nexport const ArrowPoint = withStyles(styles)(gridDraggable(opts)(RawArrow));\nexport const Arrow = withStyles(styles)(gridDraggable(opts)(BaseArrow));\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../../src/tools/shared/point/index.jsx"],"names":["opts","bounds","props","domain","range","x","y","area","left","top","bottom","right","utils","anchorPoint","fromDelta","delta","point","add","styles","cursor","fill","color","defaults","BLACK","disabled","disabledSecondary","correct","incorrect","missing","BasePoint","RawBp","ArrowPoint","RawArrow","Arrow","BaseArrow"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAEA,IAAMA,IAAI,GAAG;AACXC,EAAAA,MAAM,EAAE,gBAACC,KAAD,QAA8B;AAAA,QAApBC,MAAoB,QAApBA,MAAoB;AAAA,QAAZC,KAAY,QAAZA,KAAY;AACpC,QAAQC,CAAR,GAAiBH,KAAjB,CAAQG,CAAR;AAAA,QAAWC,CAAX,GAAiBJ,KAAjB,CAAWI,CAAX;AACA,QAAMC,IAAI,GAAG;AAAEC,MAAAA,IAAI,EAAEH,CAAR;AAAWI,MAAAA,GAAG,EAAEH,CAAhB;AAAmBI,MAAAA,MAAM,EAAEJ,CAA3B;AAA8BK,MAAAA,KAAK,EAAEN;AAArC,KAAb;AAEA,WAAOO,KAAK,CAACX,MAAN,CAAaM,IAAb,EAAmBJ,MAAnB,EAA2BC,KAA3B,CAAP;AACD,GANU;AAOXS,EAAAA,WAAW,EAAE,qBAACX,KAAD,EAAW;AACtB,QAAQG,CAAR,GAAiBH,KAAjB,CAAQG,CAAR;AAAA,QAAWC,CAAX,GAAiBJ,KAAjB,CAAWI,CAAX;AAEA,WAAO;AAAED,MAAAA,CAAC,EAADA,CAAF;AAAKC,MAAAA,CAAC,EAADA;AAAL,KAAP;AACD,GAXU;AAYXQ,EAAAA,SAAS,EAAE,mBAACZ,KAAD,EAAQa,KAAR,EAAkB;AAC3B,WAAOH,KAAK,CAACI,KAAN,CAAYd,KAAZ,EAAmBe,GAAnB,CAAuBL,KAAK,CAACI,KAAN,CAAYD,KAAZ,CAAvB,CAAP;AACD;AAdU,CAAb;;AAiBA,IAAMG,MAAM,GAAG,SAATA,MAAS,GAAM;AACnB,SAAO;AACLF,IAAAA,KAAK,EAAE;AACL,6BAAuB;AACrBG,QAAAA,MAAM,EAAE,SADa;AAErBC,QAAAA,IAAI,EAAEC,gBAAMC,QAAN,CAAeC;AAFA;AADlB,KADF;AAOLC,IAAAA,QAAQ,EAAE;AACR,+CACK,uBADL;AADQ,KAPL;AAYLC,IAAAA,iBAAiB,EAAE;AACjB,+CACK,gCADL;AADiB,KAZd;AAiBLC,IAAAA,OAAO,EAAE;AACP,+CACK,sBADL;AADO,KAjBJ;AAsBLC,IAAAA,SAAS,EAAE;AACT,+CACK,wBADL;AADS,KAtBN;AA2BLC,IAAAA,OAAO,EAAE;AACP,+CACK,sBADL;AADO;AA3BJ,GAAP;AAiCD,CAlCD;;AAoCO,IAAMC,SAAS,GAAG,uBAAWX,MAAX,EAAmB,yBAAclB,IAAd,EAAoB8B,gBAApB,CAAnB,CAAlB;;AACA,IAAMC,UAAU,GAAG,uBAAWb,MAAX,EAAmB,yBAAclB,IAAd,EAAoBgC,oBAApB,CAAnB,CAAnB;;AACA,IAAMC,KAAK,GAAG,uBAAWf,MAAX,EAAmB,yBAAclB,IAAd,EAAoBkC,iBAApB,CAAnB,CAAd","sourcesContent":["import { withStyles } from '@material-ui/core/styles/index';\nimport { gridDraggable } from '@pie-lib/plot';\nimport * as utils from '../../../utils';\nimport { disabled, correct, incorrect, missing, disabledSecondary } from '../styles';\nimport { RawBp } from './base-point';\nimport { RawArrow } from './arrow-point';\nimport { color } from '@pie-lib/render-ui';\nimport BaseArrow from './arrow';\n\nconst opts = {\n bounds: (props, { domain, range }) => {\n const { x, y } = props;\n const area = { left: x, top: y, bottom: y, right: x };\n\n return utils.bounds(area, domain, range);\n },\n anchorPoint: (props) => {\n const { x, y } = props;\n\n return { x, y };\n },\n fromDelta: (props, delta) => {\n return utils.point(props).add(utils.point(delta));\n },\n};\n\nconst styles = () => {\n return {\n point: {\n '& circle, & polygon': {\n cursor: 'pointer',\n fill: color.defaults.BLACK,\n },\n },\n disabled: {\n '& circle, & polygon': {\n ...disabled(),\n },\n },\n disabledSecondary: {\n '& circle, & polygon': {\n ...disabledSecondary(),\n },\n },\n correct: {\n '& circle, & polygon': {\n ...correct(),\n },\n },\n incorrect: {\n '& circle, & polygon': {\n ...incorrect(),\n },\n },\n missing: {\n '& circle, & polygon': {\n ...missing(),\n },\n },\n };\n};\n\nexport const BasePoint = withStyles(styles)(gridDraggable(opts)(RawBp));\nexport const ArrowPoint = withStyles(styles)(gridDraggable(opts)(RawArrow));\nexport const Arrow = withStyles(styles)(gridDraggable(opts)(BaseArrow));\n"],"file":"index.js"}
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.missing = exports.incorrect = exports.disabled = exports.correct = void 0;
8
+ exports.missing = exports.incorrect = exports.disabledSecondary = exports.disabled = exports.correct = void 0;
9
9
 
10
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
11
 
@@ -20,29 +20,38 @@ var disabled = function disabled() {
20
20
 
21
21
  exports.disabled = disabled;
22
22
 
23
- var correct = function correct() {
23
+ var disabledSecondary = function disabledSecondary() {
24
24
  var _ref2;
25
25
 
26
26
  var key = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'fill';
27
- return _ref2 = {}, (0, _defineProperty2["default"])(_ref2, key, _renderUi.color.correct()), (0, _defineProperty2["default"])(_ref2, "pointerEvents", 'none'), _ref2;
27
+ return _ref2 = {}, (0, _defineProperty2["default"])(_ref2, key, _renderUi.color.disabledSecondary()), (0, _defineProperty2["default"])(_ref2, "pointerEvents", 'none'), _ref2;
28
+ };
29
+
30
+ exports.disabledSecondary = disabledSecondary;
31
+
32
+ var correct = function correct() {
33
+ var _ref3;
34
+
35
+ var key = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'fill';
36
+ return _ref3 = {}, (0, _defineProperty2["default"])(_ref3, key, _renderUi.color.correctWithIcon()), (0, _defineProperty2["default"])(_ref3, "pointerEvents", 'none'), _ref3;
28
37
  };
29
38
 
30
39
  exports.correct = correct;
31
40
 
32
41
  var incorrect = function incorrect() {
33
- var _ref3;
42
+ var _ref4;
34
43
 
35
44
  var key = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'fill';
36
- return _ref3 = {}, (0, _defineProperty2["default"])(_ref3, key, _renderUi.color.incorrect()), (0, _defineProperty2["default"])(_ref3, "pointerEvents", 'none'), _ref3;
45
+ return _ref4 = {}, (0, _defineProperty2["default"])(_ref4, key, _renderUi.color.incorrectWithIcon()), (0, _defineProperty2["default"])(_ref4, "pointerEvents", 'none'), _ref4;
37
46
  };
38
47
 
39
48
  exports.incorrect = incorrect;
40
49
 
41
50
  var missing = function missing() {
42
- var _ref4;
51
+ var _ref5;
43
52
 
44
53
  var key = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'fill';
45
- return _ref4 = {}, (0, _defineProperty2["default"])(_ref4, key, _renderUi.color.missing()), (0, _defineProperty2["default"])(_ref4, "pointerEvents", 'none'), _ref4;
54
+ return _ref5 = {}, (0, _defineProperty2["default"])(_ref5, key, _renderUi.color.missingWithIcon()), (0, _defineProperty2["default"])(_ref5, "pointerEvents", 'none'), _ref5;
46
55
  };
47
56
 
48
57
  exports.missing = missing;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/tools/shared/styles.js"],"names":["disabled","key","color","correct","incorrect","missing"],"mappings":";;;;;;;;;;;AAAA;;AAEO,IAAMA,QAAQ,GAAG,SAAXA,QAAW;AAAA;;AAAA,MAACC,GAAD,uEAAO,MAAP;AAAA,2DACrBA,GADqB,EACfC,gBAAMF,QAAN,EADe,2DAEP,MAFO;AAAA,CAAjB;;;;AAKA,IAAMG,OAAO,GAAG,SAAVA,OAAU;AAAA;;AAAA,MAACF,GAAD,uEAAO,MAAP;AAAA,6DACpBA,GADoB,EACdC,gBAAMC,OAAN,EADc,4DAEN,MAFM;AAAA,CAAhB;;;;AAIA,IAAMC,SAAS,GAAG,SAAZA,SAAY;AAAA;;AAAA,MAACH,GAAD,uEAAO,MAAP;AAAA,6DACtBA,GADsB,EAChBC,gBAAME,SAAN,EADgB,4DAER,MAFQ;AAAA,CAAlB;;;;AAKA,IAAMC,OAAO,GAAG,SAAVA,OAAU;AAAA;;AAAA,MAACJ,GAAD,uEAAO,MAAP;AAAA,6DACpBA,GADoB,EACdC,gBAAMG,OAAN,EADc,4DAEN,MAFM;AAAA,CAAhB","sourcesContent":["import { color } from '@pie-lib/render-ui';\n\nexport const disabled = (key = 'fill') => ({\n [key]: color.disabled(),\n pointerEvents: 'none',\n});\n\nexport const correct = (key = 'fill') => ({\n [key]: color.correct(),\n pointerEvents: 'none',\n});\nexport const incorrect = (key = 'fill') => ({\n [key]: color.incorrect(),\n pointerEvents: 'none',\n});\n\nexport const missing = (key = 'fill') => ({\n [key]: color.missing(),\n pointerEvents: 'none',\n});\n"],"file":"styles.js"}
1
+ {"version":3,"sources":["../../../src/tools/shared/styles.js"],"names":["disabled","key","color","disabledSecondary","correct","correctWithIcon","incorrect","incorrectWithIcon","missing","missingWithIcon"],"mappings":";;;;;;;;;;;AAAA;;AAEO,IAAMA,QAAQ,GAAG,SAAXA,QAAW;AAAA;;AAAA,MAACC,GAAD,uEAAO,MAAP;AAAA,2DACrBA,GADqB,EACfC,gBAAMF,QAAN,EADe,2DAEP,MAFO;AAAA,CAAjB;;;;AAKA,IAAMG,iBAAiB,GAAG,SAApBA,iBAAoB;AAAA;;AAAA,MAACF,GAAD,uEAAO,MAAP;AAAA,6DAC9BA,GAD8B,EACxBC,gBAAMC,iBAAN,EADwB,4DAEhB,MAFgB;AAAA,CAA1B;;;;AAKA,IAAMC,OAAO,GAAG,SAAVA,OAAU;AAAA;;AAAA,MAACH,GAAD,uEAAO,MAAP;AAAA,6DACpBA,GADoB,EACdC,gBAAMG,eAAN,EADc,4DAEN,MAFM;AAAA,CAAhB;;;;AAIA,IAAMC,SAAS,GAAG,SAAZA,SAAY;AAAA;;AAAA,MAACL,GAAD,uEAAO,MAAP;AAAA,6DACtBA,GADsB,EAChBC,gBAAMK,iBAAN,EADgB,4DAER,MAFQ;AAAA,CAAlB;;;;AAKA,IAAMC,OAAO,GAAG,SAAVA,OAAU;AAAA;;AAAA,MAACP,GAAD,uEAAO,MAAP;AAAA,6DACpBA,GADoB,EACdC,gBAAMO,eAAN,EADc,4DAEN,MAFM;AAAA,CAAhB","sourcesContent":["import { color } from '@pie-lib/render-ui';\n\nexport const disabled = (key = 'fill') => ({\n [key]: color.disabled(),\n pointerEvents: 'none',\n});\n\nexport const disabledSecondary = (key = 'fill') => ({\n [key]: color.disabledSecondary(),\n pointerEvents: 'none',\n});\n\nexport const correct = (key = 'fill') => ({\n [key]: color.correctWithIcon(),\n pointerEvents: 'none',\n});\nexport const incorrect = (key = 'fill') => ({\n [key]: color.incorrectWithIcon(),\n pointerEvents: 'none',\n});\n\nexport const missing = (key = 'fill') => ({\n [key]: color.missingWithIcon(),\n pointerEvents: 'none',\n});\n"],"file":"styles.js"}
@@ -7,18 +7,25 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports["default"] = void 0;
9
9
 
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
10
12
  var _debug = _interopRequireDefault(require("debug"));
11
13
 
12
14
  var _graphingUtils = require("@pie-lib/graphing-utils");
13
15
 
14
16
  var _withRootEdge = require("../shared/line/with-root-edge");
15
17
 
18
+ 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; }
19
+
20
+ 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; }
21
+
16
22
  var log = (0, _debug["default"])('pie-lib:graphing:sine');
17
- log('sine...');
18
23
  var Sine = (0, _withRootEdge.withRootEdge)(function (props) {
19
- var domain = props.graphProps.domain;
20
24
  var root = props.root,
21
- edge = props.edge;
25
+ edge = props.edge,
26
+ graphProps = props.graphProps;
27
+ var domain = graphProps.domain,
28
+ range = graphProps.range;
22
29
 
23
30
  var _getAmplitudeAndFreq = (0, _graphingUtils.getAmplitudeAndFreq)(root, edge),
24
31
  amplitude = _getAmplitudeAndFreq.amplitude,
@@ -26,7 +33,9 @@ var Sine = (0, _withRootEdge.withRootEdge)(function (props) {
26
33
 
27
34
  var interval = freq / _graphingUtils.FREQ_DIVIDER;
28
35
  log('[getPoints] amplitude:', amplitude, 'freq:', freq);
29
- var dataPoints = edge && edge.x === root.x ? [] : (0, _graphingUtils.buildDataPoints)(domain.min, domain.max, root, edge, interval, (0, _graphingUtils.sinY)(amplitude, freq, {
36
+ var dataPoints = edge && edge.x === root.x ? [] : (0, _graphingUtils.buildDataPoints)(_objectSpread(_objectSpread({}, domain), {}, {
37
+ step: interval
38
+ }), range, root, edge, (0, _graphingUtils.sinY)(amplitude, freq, {
30
39
  phase: root.x,
31
40
  vertical: root.y
32
41
  }));
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/tools/sine/component.jsx"],"names":["log","Sine","props","domain","graphProps","root","edge","amplitude","freq","interval","FREQ_DIVIDER","dataPoints","x","min","max","phase","vertical","y","Component"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AAEA,IAAMA,GAAG,GAAG,uBAAM,uBAAN,CAAZ;AAEAA,GAAG,CAAC,SAAD,CAAH;AAEA,IAAMC,IAAI,GAAG,gCAAa,UAACC,KAAD,EAAW;AACnC,MAAQC,MAAR,GAAmBD,KAAK,CAACE,UAAzB,CAAQD,MAAR;AAEA,MAAQE,IAAR,GAAuBH,KAAvB,CAAQG,IAAR;AAAA,MAAcC,IAAd,GAAuBJ,KAAvB,CAAcI,IAAd;;AACA,6BAA4B,wCAAoBD,IAApB,EAA0BC,IAA1B,CAA5B;AAAA,MAAQC,SAAR,wBAAQA,SAAR;AAAA,MAAmBC,IAAnB,wBAAmBA,IAAnB;;AACA,MAAMC,QAAQ,GAAGD,IAAI,GAAGE,2BAAxB;AACAV,EAAAA,GAAG,CAAC,wBAAD,EAA2BO,SAA3B,EAAsC,OAAtC,EAA+CC,IAA/C,CAAH;AAEA,MAAMG,UAAU,GACdL,IAAI,IAAIA,IAAI,CAACM,CAAL,KAAWP,IAAI,CAACO,CAAxB,GACI,EADJ,GAEI,oCACET,MAAM,CAACU,GADT,EAEEV,MAAM,CAACW,GAFT,EAGET,IAHF,EAIEC,IAJF,EAKEG,QALF,EAME,yBAAKF,SAAL,EAAgBC,IAAhB,EAAsB;AAAEO,IAAAA,KAAK,EAAEV,IAAI,CAACO,CAAd;AAAiBI,IAAAA,QAAQ,EAAEX,IAAI,CAACY;AAAhC,GAAtB,CANF,CAHN;AAWA,SAAO;AAAEZ,IAAAA,IAAI,EAAEH,KAAK,CAACG,IAAd;AAAoBC,IAAAA,IAAI,EAAEJ,KAAK,CAACI,IAAhC;AAAsCK,IAAAA,UAAU,EAAVA;AAAtC,GAAP;AACD,CApBY,CAAb;AAsBA,IAAMO,SAAS,GAAG,qCAAkBjB,IAAlB,CAAlB;eACeiB,S","sourcesContent":["import debug from 'debug';\nimport { sinY, buildDataPoints, getAmplitudeAndFreq, FREQ_DIVIDER } from '@pie-lib/graphing-utils';\nimport { withRootEdge, rootEdgeComponent } from '../shared/line/with-root-edge';\n\nconst log = debug('pie-lib:graphing:sine');\n\nlog('sine...');\n\nconst Sine = withRootEdge((props) => {\n const { domain } = props.graphProps;\n\n const { root, edge } = props;\n const { amplitude, freq } = getAmplitudeAndFreq(root, edge);\n const interval = freq / FREQ_DIVIDER;\n log('[getPoints] amplitude:', amplitude, 'freq:', freq);\n\n const dataPoints =\n edge && edge.x === root.x\n ? []\n : buildDataPoints(\n domain.min,\n domain.max,\n root,\n edge,\n interval,\n sinY(amplitude, freq, { phase: root.x, vertical: root.y }),\n );\n return { root: props.root, edge: props.edge, dataPoints };\n});\n\nconst Component = rootEdgeComponent(Sine);\nexport default Component;\n"],"file":"component.js"}
1
+ {"version":3,"sources":["../../../src/tools/sine/component.jsx"],"names":["log","Sine","props","root","edge","graphProps","domain","range","amplitude","freq","interval","FREQ_DIVIDER","dataPoints","x","step","phase","vertical","y","Component"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;AAEA,IAAMA,GAAG,GAAG,uBAAM,uBAAN,CAAZ;AAEA,IAAMC,IAAI,GAAG,gCAAa,UAACC,KAAD,EAAW;AACnC,MAAQC,IAAR,GAAmCD,KAAnC,CAAQC,IAAR;AAAA,MAAcC,IAAd,GAAmCF,KAAnC,CAAcE,IAAd;AAAA,MAAoBC,UAApB,GAAmCH,KAAnC,CAAoBG,UAApB;AACA,MAAQC,MAAR,GAA0BD,UAA1B,CAAQC,MAAR;AAAA,MAAgBC,KAAhB,GAA0BF,UAA1B,CAAgBE,KAAhB;;AAEA,6BAA4B,wCAAoBJ,IAApB,EAA0BC,IAA1B,CAA5B;AAAA,MAAQI,SAAR,wBAAQA,SAAR;AAAA,MAAmBC,IAAnB,wBAAmBA,IAAnB;;AACA,MAAMC,QAAQ,GAAGD,IAAI,GAAGE,2BAAxB;AAEAX,EAAAA,GAAG,CAAC,wBAAD,EAA2BQ,SAA3B,EAAsC,OAAtC,EAA+CC,IAA/C,CAAH;AAEA,MAAMG,UAAU,GACdR,IAAI,IAAIA,IAAI,CAACS,CAAL,KAAWV,IAAI,CAACU,CAAxB,GACI,EADJ,GAEI,oEACOP,MADP;AACeQ,IAAAA,IAAI,EAAEJ;AADrB,MAEEH,KAFF,EAGEJ,IAHF,EAIEC,IAJF,EAKE,yBAAKI,SAAL,EAAgBC,IAAhB,EAAsB;AAAEM,IAAAA,KAAK,EAAEZ,IAAI,CAACU,CAAd;AAAiBG,IAAAA,QAAQ,EAAEb,IAAI,CAACc;AAAhC,GAAtB,CALF,CAHN;AAWA,SAAO;AAAEd,IAAAA,IAAI,EAAED,KAAK,CAACC,IAAd;AAAoBC,IAAAA,IAAI,EAAEF,KAAK,CAACE,IAAhC;AAAsCQ,IAAAA,UAAU,EAAVA;AAAtC,GAAP;AACD,CArBY,CAAb;AAuBA,IAAMM,SAAS,GAAG,qCAAkBjB,IAAlB,CAAlB;eAEeiB,S","sourcesContent":["import debug from 'debug';\nimport { sinY, buildDataPoints, getAmplitudeAndFreq, FREQ_DIVIDER } from '@pie-lib/graphing-utils';\nimport { withRootEdge, rootEdgeComponent } from '../shared/line/with-root-edge';\n\nconst log = debug('pie-lib:graphing:sine');\n\nconst Sine = withRootEdge((props) => {\n const { root, edge, graphProps } = props;\n const { domain, range } = graphProps;\n\n const { amplitude, freq } = getAmplitudeAndFreq(root, edge);\n const interval = freq / FREQ_DIVIDER;\n\n log('[getPoints] amplitude:', amplitude, 'freq:', freq);\n\n const dataPoints =\n edge && edge.x === root.x\n ? []\n : buildDataPoints(\n { ...domain, step: interval },\n range,\n root,\n edge,\n sinY(amplitude, freq, { phase: root.x, vertical: root.y }),\n );\n\n return { root: props.root, edge: props.edge, dataPoints };\n});\n\nconst Component = rootEdgeComponent(Sine);\n\nexport default Component;\n"],"file":"component.js"}
@@ -33,6 +33,7 @@ var lineStyles = function lineStyles(theme) {
33
33
  return {
34
34
  line: _line.styles.line(theme),
35
35
  disabled: _line.styles.disabled(theme),
36
+ disabledSecondary: _line.styles.disabledSecondary(theme),
36
37
  correct: _line.styles.correct(theme, 'stroke'),
37
38
  incorrect: _line.styles.incorrect(theme, 'stroke'),
38
39
  missing: _line.styles.missing(theme, 'stroke')
@@ -58,7 +59,7 @@ var Line = function Line(props) {
58
59
  };
59
60
  var length = (0, _utils.getDistanceBetweenTwoPoints)(startPoint, endPoint);
60
61
  return /*#__PURE__*/_react["default"].createElement("line", (0, _extends2["default"])({
61
- className: (0, _classnames["default"])(classes.line, disabled && classes.disabled, classes[correctness], className),
62
+ className: (0, _classnames["default"])(classes.line, disabled && classes.disabledSecondary, classes[correctness], className),
62
63
  x1: startPoint.x,
63
64
  y1: startPoint.y,
64
65
  x2: endPoint.x,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/tools/vector/component.jsx"],"names":["lineStyles","theme","line","styles","disabled","correct","incorrect","missing","Line","props","className","classes","correctness","scale","graphProps","from","to","rest","startPoint","x","y","endPoint","length","propTypes","PropTypes","string","object","bool","any","types","PointType","StyledLine","Vector","Arrow","Component"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;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;;AAQO,IAAMO,IAAI,GAAG,SAAPA,IAAO,CAACC,KAAD,EAAW;AAC7B,MACEC,SADF,GASID,KATJ,CACEC,SADF;AAAA,MAEEC,OAFF,GASIF,KATJ,CAEEE,OAFF;AAAA,MAGEP,QAHF,GASIK,KATJ,CAGEL,QAHF;AAAA,MAIEQ,WAJF,GASIH,KATJ,CAIEG,WAJF;AAAA,MAKgBC,KALhB,GASIJ,KATJ,CAKEK,UALF,CAKgBD,KALhB;AAAA,MAMEE,IANF,GASIN,KATJ,CAMEM,IANF;AAAA,MAOEC,EAPF,GASIP,KATJ,CAOEO,EAPF;AAAA,MAQKC,IARL,6CASIR,KATJ;AAUA,MAAMS,UAAU,GAAG;AAAEC,IAAAA,CAAC,EAAEN,KAAK,CAACM,CAAN,CAAQJ,IAAI,CAACI,CAAb,CAAL;AAAsBC,IAAAA,CAAC,EAAEP,KAAK,CAACO,CAAN,CAAQL,IAAI,CAACK,CAAb;AAAzB,GAAnB;AACA,MAAMC,QAAQ,GAAG;AAAEF,IAAAA,CAAC,EAAEN,KAAK,CAACM,CAAN,CAAQH,EAAE,CAACG,CAAX,CAAL;AAAoBC,IAAAA,CAAC,EAAEP,KAAK,CAACO,CAAN,CAAQJ,EAAE,CAACI,CAAX;AAAvB,GAAjB;AACA,MAAME,MAAM,GAAG,wCAA4BJ,UAA5B,EAAwCG,QAAxC,CAAf;AAEA,sBACE;AACE,IAAA,SAAS,EAAE,4BAAWV,OAAO,CAACT,IAAnB,EAAyBE,QAAQ,IAAIO,OAAO,CAACP,QAA7C,EAAuDO,OAAO,CAACC,WAAD,CAA9D,EAA6EF,SAA7E,CADb;AAEE,IAAA,EAAE,EAAEQ,UAAU,CAACC,CAFjB;AAGE,IAAA,EAAE,EAAED,UAAU,CAACE,CAHjB;AAIE,IAAA,EAAE,EAAEC,QAAQ,CAACF,CAJf;AAKE,IAAA,EAAE,EAAEE,QAAQ,CAACD,CALf;AAME,IAAA,eAAe,EAAEE,MAAM,GAAG;AAN5B,KAOML,IAPN,EADF;AAWD,CA1BM;;;AA4BPT,IAAI,CAACe,SAAL,GAAiB;AACfb,EAAAA,SAAS,EAAEc,sBAAUC,MADN;AAEfd,EAAAA,OAAO,EAAEa,sBAAUE,MAFJ;AAGftB,EAAAA,QAAQ,EAAEoB,sBAAUG,IAHL;AAIff,EAAAA,WAAW,EAAEY,sBAAUC,MAJR;AAKfX,EAAAA,UAAU,EAAEU,sBAAUI,GALP;AAMfb,EAAAA,IAAI,EAAEc,YAAMC,SANG;AAOfd,EAAAA,EAAE,EAAEa,YAAMC;AAPK,CAAjB;AAUA,IAAMC,UAAU,GAAG,wBAAW/B,UAAX,EAAuBQ,IAAvB,CAAnB;AACA,IAAMwB,MAAM,GAAG,oBAASD,UAAT,EAAqB;AAAEf,EAAAA,EAAE,EAAEiB;AAAN,CAArB,CAAf;AACA,IAAMC,SAAS,GAAG,6BAAkBF,MAAlB,CAAlB;eAEeE,S","sourcesContent":["import { lineToolComponent, lineBase, styles } from '../shared/line';\nimport { Arrow } from '../shared/point';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { types } from '@pie-lib/plot';\nimport classNames from 'classnames';\nimport { withStyles } from '@material-ui/core/styles';\nimport { getDistanceBetweenTwoPoints } from '../../utils';\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});\n\nexport const Line = (props) => {\n const {\n className,\n classes,\n disabled,\n correctness,\n graphProps: { scale },\n from,\n to,\n ...rest\n } = props;\n const startPoint = { x: scale.x(from.x), y: scale.y(from.y) };\n const endPoint = { x: scale.x(to.x), y: scale.y(to.y) };\n const length = getDistanceBetweenTwoPoints(startPoint, endPoint);\n\n return (\n <line\n className={classNames(classes.line, disabled && classes.disabled, classes[correctness], className)}\n x1={startPoint.x}\n y1={startPoint.y}\n x2={endPoint.x}\n y2={endPoint.y}\n strokeDasharray={length - 7}\n {...rest}\n />\n );\n};\n\nLine.propTypes = {\n className: PropTypes.string,\n classes: PropTypes.object,\n disabled: PropTypes.bool,\n correctness: PropTypes.string,\n graphProps: PropTypes.any,\n from: types.PointType,\n to: types.PointType,\n};\n\nconst StyledLine = withStyles(lineStyles)(Line);\nconst Vector = lineBase(StyledLine, { to: Arrow });\nconst Component = lineToolComponent(Vector);\n\nexport default Component;\n"],"file":"component.js"}
1
+ {"version":3,"sources":["../../../src/tools/vector/component.jsx"],"names":["lineStyles","theme","line","styles","disabled","disabledSecondary","correct","incorrect","missing","Line","props","className","classes","correctness","scale","graphProps","from","to","rest","startPoint","x","y","endPoint","length","propTypes","PropTypes","string","object","bool","any","types","PointType","StyledLine","Vector","Arrow","Component"],"mappings":"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","sourcesContent":["import { lineToolComponent, lineBase, styles } from '../shared/line';\nimport { Arrow } from '../shared/point';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { types } from '@pie-lib/plot';\nimport classNames from 'classnames';\nimport { withStyles } from '@material-ui/core/styles';\nimport { getDistanceBetweenTwoPoints } from '../../utils';\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});\n\nexport const Line = (props) => {\n const {\n className,\n classes,\n disabled,\n correctness,\n graphProps: { scale },\n from,\n to,\n ...rest\n } = props;\n const startPoint = { x: scale.x(from.x), y: scale.y(from.y) };\n const endPoint = { x: scale.x(to.x), y: scale.y(to.y) };\n const length = getDistanceBetweenTwoPoints(startPoint, endPoint);\n\n return (\n <line\n className={classNames(classes.line, disabled && classes.disabledSecondary, classes[correctness], className)}\n x1={startPoint.x}\n y1={startPoint.y}\n x2={endPoint.x}\n y2={endPoint.y}\n strokeDasharray={length - 7}\n {...rest}\n />\n );\n};\n\nLine.propTypes = {\n className: PropTypes.string,\n classes: PropTypes.object,\n disabled: PropTypes.bool,\n correctness: PropTypes.string,\n graphProps: PropTypes.any,\n from: types.PointType,\n to: types.PointType,\n};\n\nconst StyledLine = withStyles(lineStyles)(Line);\nconst Vector = lineBase(StyledLine, { to: Arrow });\nconst Component = lineToolComponent(Vector);\n\nexport default Component;\n"],"file":"component.js"}
package/lib/undo-redo.js CHANGED
@@ -109,7 +109,6 @@ var styles = function styles(theme) {
109
109
  return {
110
110
  button: {
111
111
  color: _renderUi.color.text(),
112
- backgroundColor: _renderUi.color.background(),
113
112
  marginBottom: theme.spacing.unit / 2,
114
113
  '&:not(:last-of-type)': {
115
114
  marginRight: theme.spacing.unit / 2
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/undo-redo.jsx"],"names":["translator","Translator","UndoRedo","props","classes","className","onUndo","onRedo","onReset","language","root","button","t","lng","React","Component","PropTypes","object","string","func","isRequired","styles","theme","color","text","backgroundColor","background","marginBottom","spacing","unit","marginRight"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;AAEA,IAAQA,UAAR,GAAuBC,sBAAvB,CAAQD,UAAR;;IAEaE,Q;;;;;;;;;;;;WAWX,kBAAS;AACP,wBAAkE,KAAKC,KAAvE;AAAA,UAAQC,OAAR,eAAQA,OAAR;AAAA,UAAiBC,SAAjB,eAAiBA,SAAjB;AAAA,UAA4BC,MAA5B,eAA4BA,MAA5B;AAAA,UAAoCC,MAApC,eAAoCA,MAApC;AAAA,UAA4CC,OAA5C,eAA4CA,OAA5C;AAAA,UAAqDC,QAArD,eAAqDA,QAArD;AACA,0BACE;AAAK,QAAA,SAAS,EAAE,4BAAWJ,SAAX;AAAhB,sBACE,gCAAC,kBAAD;AAAQ,QAAA,OAAO,EAAE;AAAEK,UAAAA,IAAI,EAAEN,OAAO,CAACO;AAAhB,SAAjB;AAA2C,QAAA,OAAO,EAAE;AAAA,iBAAML,MAAM,CAAC,IAAD,CAAZ;AAAA;AAApD,SACGN,UAAU,CAACY,CAAX,CAAa,aAAb,EAA4B;AAAEC,QAAAA,GAAG,EAAEJ;AAAP,OAA5B,CADH,CADF,eAIE,gCAAC,kBAAD;AAAQ,QAAA,OAAO,EAAE;AAAEC,UAAAA,IAAI,EAAEN,OAAO,CAACO;AAAhB,SAAjB;AAA2C,QAAA,OAAO,EAAE;AAAA,iBAAMJ,MAAM,CAAC,IAAD,CAAZ;AAAA;AAApD,SACGP,UAAU,CAACY,CAAX,CAAa,eAAb,EAA8B;AAAEC,QAAAA,GAAG,EAAEJ;AAAP,OAA9B,CADH,CAJF,eAOE,gCAAC,kBAAD;AAAQ,QAAA,OAAO,EAAE;AAAEC,UAAAA,IAAI,EAAEN,OAAO,CAACO;AAAhB,SAAjB;AAA2C,QAAA,OAAO,EAAE;AAAA,iBAAMH,OAAO,EAAb;AAAA;AAApD,SACGR,UAAU,CAACY,CAAX,CAAa,gBAAb,EAA+B;AAAEC,QAAAA,GAAG,EAAEJ;AAAP,OAA/B,CADH,CAPF,CADF;AAaD;;;EA1B2BK,kBAAMC,S;;;iCAAvBb,Q,eACQ;AACjBE,EAAAA,OAAO,EAAEY,sBAAUC,MADF;AAEjBZ,EAAAA,SAAS,EAAEW,sBAAUE,MAFJ;AAGjBZ,EAAAA,MAAM,EAAEU,sBAAUG,IAAV,CAAeC,UAHN;AAIjBb,EAAAA,MAAM,EAAES,sBAAUG,IAAV,CAAeC,UAJN;AAKjBZ,EAAAA,OAAO,EAAEQ,sBAAUG,IAAV,CAAeC,UALP;AAMjBX,EAAAA,QAAQ,EAAEO,sBAAUE;AANH,C;iCADRhB,Q,kBASW,E;;AAoBxB,IAAMmB,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;AAAA,SAAY;AACzBX,IAAAA,MAAM,EAAE;AACNY,MAAAA,KAAK,EAAEA,gBAAMC,IAAN,EADD;AAENC,MAAAA,eAAe,EAAEF,gBAAMG,UAAN,EAFX;AAGNC,MAAAA,YAAY,EAAEL,KAAK,CAACM,OAAN,CAAcC,IAAd,GAAqB,CAH7B;AAIN,8BAAwB;AACtBC,QAAAA,WAAW,EAAER,KAAK,CAACM,OAAN,CAAcC,IAAd,GAAqB;AADZ;AAJlB;AADiB,GAAZ;AAAA,CAAf;;eAWe,sBAAWR,MAAX,EAAmBnB,QAAnB,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Button from '@material-ui/core/Button';\nimport { withStyles } from '@material-ui/core';\nimport { color } from '@pie-lib/render-ui';\nimport Translator from '@pie-lib/translator';\n\nconst { translator } = Translator;\n\nexport class UndoRedo extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n className: PropTypes.string,\n onUndo: PropTypes.func.isRequired,\n onRedo: PropTypes.func.isRequired,\n onReset: PropTypes.func.isRequired,\n language: PropTypes.string,\n };\n static defaultProps = {};\n\n render() {\n const { classes, className, onUndo, onRedo, onReset, language } = this.props;\n return (\n <div className={classNames(className)}>\n <Button classes={{ root: classes.button }} onClick={() => onUndo(true)}>\n {translator.t('common:undo', { lng: language })}\n </Button>\n <Button classes={{ root: classes.button }} onClick={() => onRedo(true)}>\n {translator.t('graphing.redo', { lng: language })}\n </Button>\n <Button classes={{ root: classes.button }} onClick={() => onReset()}>\n {translator.t('graphing.reset', { lng: language })}\n </Button>\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n button: {\n color: color.text(),\n backgroundColor: color.background(),\n marginBottom: theme.spacing.unit / 2,\n '&:not(:last-of-type)': {\n marginRight: theme.spacing.unit / 2,\n },\n },\n});\n\nexport default withStyles(styles)(UndoRedo);\n"],"file":"undo-redo.js"}
1
+ {"version":3,"sources":["../src/undo-redo.jsx"],"names":["translator","Translator","UndoRedo","props","classes","className","onUndo","onRedo","onReset","language","root","button","t","lng","React","Component","PropTypes","object","string","func","isRequired","styles","theme","color","text","marginBottom","spacing","unit","marginRight"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;AAEA,IAAQA,UAAR,GAAuBC,sBAAvB,CAAQD,UAAR;;IAEaE,Q;;;;;;;;;;;;WAWX,kBAAS;AACP,wBAAkE,KAAKC,KAAvE;AAAA,UAAQC,OAAR,eAAQA,OAAR;AAAA,UAAiBC,SAAjB,eAAiBA,SAAjB;AAAA,UAA4BC,MAA5B,eAA4BA,MAA5B;AAAA,UAAoCC,MAApC,eAAoCA,MAApC;AAAA,UAA4CC,OAA5C,eAA4CA,OAA5C;AAAA,UAAqDC,QAArD,eAAqDA,QAArD;AACA,0BACE;AAAK,QAAA,SAAS,EAAE,4BAAWJ,SAAX;AAAhB,sBACE,gCAAC,kBAAD;AAAQ,QAAA,OAAO,EAAE;AAAEK,UAAAA,IAAI,EAAEN,OAAO,CAACO;AAAhB,SAAjB;AAA2C,QAAA,OAAO,EAAE;AAAA,iBAAML,MAAM,CAAC,IAAD,CAAZ;AAAA;AAApD,SACGN,UAAU,CAACY,CAAX,CAAa,aAAb,EAA4B;AAAEC,QAAAA,GAAG,EAAEJ;AAAP,OAA5B,CADH,CADF,eAIE,gCAAC,kBAAD;AAAQ,QAAA,OAAO,EAAE;AAAEC,UAAAA,IAAI,EAAEN,OAAO,CAACO;AAAhB,SAAjB;AAA2C,QAAA,OAAO,EAAE;AAAA,iBAAMJ,MAAM,CAAC,IAAD,CAAZ;AAAA;AAApD,SACGP,UAAU,CAACY,CAAX,CAAa,eAAb,EAA8B;AAAEC,QAAAA,GAAG,EAAEJ;AAAP,OAA9B,CADH,CAJF,eAOE,gCAAC,kBAAD;AAAQ,QAAA,OAAO,EAAE;AAAEC,UAAAA,IAAI,EAAEN,OAAO,CAACO;AAAhB,SAAjB;AAA2C,QAAA,OAAO,EAAE;AAAA,iBAAMH,OAAO,EAAb;AAAA;AAApD,SACGR,UAAU,CAACY,CAAX,CAAa,gBAAb,EAA+B;AAAEC,QAAAA,GAAG,EAAEJ;AAAP,OAA/B,CADH,CAPF,CADF;AAaD;;;EA1B2BK,kBAAMC,S;;;iCAAvBb,Q,eACQ;AACjBE,EAAAA,OAAO,EAAEY,sBAAUC,MADF;AAEjBZ,EAAAA,SAAS,EAAEW,sBAAUE,MAFJ;AAGjBZ,EAAAA,MAAM,EAAEU,sBAAUG,IAAV,CAAeC,UAHN;AAIjBb,EAAAA,MAAM,EAAES,sBAAUG,IAAV,CAAeC,UAJN;AAKjBZ,EAAAA,OAAO,EAAEQ,sBAAUG,IAAV,CAAeC,UALP;AAMjBX,EAAAA,QAAQ,EAAEO,sBAAUE;AANH,C;iCADRhB,Q,kBASW,E;;AAoBxB,IAAMmB,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;AAAA,SAAY;AACzBX,IAAAA,MAAM,EAAE;AACNY,MAAAA,KAAK,EAAEA,gBAAMC,IAAN,EADD;AAENC,MAAAA,YAAY,EAAEH,KAAK,CAACI,OAAN,CAAcC,IAAd,GAAqB,CAF7B;AAGN,8BAAwB;AACtBC,QAAAA,WAAW,EAAEN,KAAK,CAACI,OAAN,CAAcC,IAAd,GAAqB;AADZ;AAHlB;AADiB,GAAZ;AAAA,CAAf;;eAUe,sBAAWN,MAAX,EAAmBnB,QAAnB,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Button from '@material-ui/core/Button';\nimport { withStyles } from '@material-ui/core';\nimport { color } from '@pie-lib/render-ui';\nimport Translator from '@pie-lib/translator';\n\nconst { translator } = Translator;\n\nexport class UndoRedo extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n className: PropTypes.string,\n onUndo: PropTypes.func.isRequired,\n onRedo: PropTypes.func.isRequired,\n onReset: PropTypes.func.isRequired,\n language: PropTypes.string,\n };\n static defaultProps = {};\n\n render() {\n const { classes, className, onUndo, onRedo, onReset, language } = this.props;\n return (\n <div className={classNames(className)}>\n <Button classes={{ root: classes.button }} onClick={() => onUndo(true)}>\n {translator.t('common:undo', { lng: language })}\n </Button>\n <Button classes={{ root: classes.button }} onClick={() => onRedo(true)}>\n {translator.t('graphing.redo', { lng: language })}\n </Button>\n <Button classes={{ root: classes.button }} onClick={() => onReset()}>\n {translator.t('graphing.reset', { lng: language })}\n </Button>\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n button: {\n color: color.text(),\n marginBottom: theme.spacing.unit / 2,\n '&:not(:last-of-type)': {\n marginRight: theme.spacing.unit / 2,\n },\n },\n});\n\nexport default withStyles(styles)(UndoRedo);\n"],"file":"undo-redo.js"}
package/lib/utils.js CHANGED
@@ -286,7 +286,7 @@ var isDuplicatedMark = function isDuplicatedMark(mark, marks, oldMark) {
286
286
  }
287
287
 
288
288
  var duplicated = filteredMarks.find(function (m) {
289
- if (type === 'circle' || type === 'parabola' || type === 'sine') {
289
+ if (type === 'circle' || type === 'parabola' || type === 'sine' || type === 'absolute' || type === 'exponential') {
290
290
  var root = mark.root,
291
291
  edge = mark.edge;
292
292
  return equalPoints(root, m.root) && equalPoints(edge, m.edge) || type === 'circle' && isSameCircle(m, mark);
package/lib/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/utils.js"],"names":["tickCount","utils","bounds","point","getAngleDeg","arrowDimensions","getTickValues","prop","tickValues","tickVal","min","indexOf","push","Math","round","step","max","filter","tV","countWords","label","words","split","length","findLongestWord","longestWord","replace","sort","a","b","amountToIncreaseWidth","polygonToArea","points","h","area","left","x","top","y","bottom","right","reduce","p","lineToArea","from","to","pointsToArea","isDomainRangeEqual","graphProps","nextGraphProps","domain","range","getRightestPoints","sortedPoints","getMiddleOfTwoPoints","roundNumber","number","parseFloat","toFixed","sameAxes","p1","p2","equalPoints","getDistanceBetweenTicks","axis","size","nbOfTicks","thinnerShapesNeeded","width","height","getAdjustedGraphLimits","domainTicksDistance","rangeTicksDistance","domainPadding","rangePadding","getDistanceBetweenTwoPoints","sqrt","sortPoints","array","checkCollinearity","c","isSameLine","markA","markB","isSameCircle","root","edge","isDuplicatedMark","mark","marks","oldMark","type","building","filteredMarks","m","index","findIndex","splice","duplicated","find"],"mappings":"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","sourcesContent":["import head from 'lodash/head';\nimport tail from 'lodash/tail';\nimport { utils } from '@pie-lib/plot';\nimport invariant from 'invariant';\nimport isEqual from 'lodash/isEqual';\nimport isEmpty from 'lodash/isEmpty';\nimport cloneDeep from 'lodash/cloneDeep';\n\nexport const tickCount = utils.tickCount;\nexport const bounds = utils.bounds;\nexport const point = utils.point;\n\n//TODO: This can be removed?\nexport const getAngleDeg = () => 0;\n//TODO: This can be removed?\nexport const arrowDimensions = () => 0;\n\nexport const getTickValues = (prop) => {\n const tickValues = [];\n let tickVal = 0;\n\n while (tickVal >= prop.min && tickValues.indexOf(tickVal) < 0) {\n tickValues.push(tickVal);\n tickVal = Math.round((tickVal - prop.step) * 10000) / 10000;\n }\n\n tickVal = Math.round(prop.step * 10000) / 10000;\n\n while (tickVal <= prop.max && tickValues.indexOf(tickVal) < 0) {\n tickValues.push(tickVal);\n tickVal = Math.round((tickVal + prop.step) * 10000) / 10000;\n }\n\n // return only ticks that are inside the min-max interval\n if (tickValues) {\n return tickValues.filter((tV) => tV >= prop.min && tV <= prop.max);\n }\n\n return [];\n};\n\nexport const countWords = (label) => {\n if (label == null || isEmpty(label)) {\n return 1;\n }\n\n const words = label.split(' ');\n return words.length;\n};\n\n// findLongestWord is also used in plot\nexport const findLongestWord = (label) => {\n let longestWord = (label || '')\n .replace(/<[^>]+>/g, '')\n .split(' ')\n .sort((a, b) => b.length - a.length);\n\n return longestWord[0].length;\n};\n\n// amountToIncreaseWidth is also used in plot\nexport const amountToIncreaseWidth = (longestWord) => {\n if (!longestWord) {\n return 0;\n }\n\n return longestWord * 10;\n};\n\nexport const polygonToArea = (points) => {\n const h = head(points);\n const area = {\n left: h.x,\n top: h.y,\n bottom: h.y,\n right: h.x,\n };\n return tail(points).reduce((a, p) => {\n a.left = Math.min(a.left, p.x);\n a.top = Math.max(a.top, p.y);\n a.bottom = Math.min(a.bottom, p.y);\n a.right = Math.max(a.right, p.x);\n return a;\n }, area);\n};\n\nexport const lineToArea = (from, to) => pointsToArea(from, to);\n\nexport const pointsToArea = (a, b) => {\n invariant(!!a && !!b, 'a or b is undefined');\n const left = Math.min(a.x, b.x);\n const top = Math.max(a.y, b.y);\n const bottom = Math.min(a.y, b.y);\n const right = Math.max(a.x, b.x);\n return { left, top, bottom, right };\n};\n\nexport const isDomainRangeEqual = (graphProps, nextGraphProps) => {\n return isEqual(graphProps.domain, nextGraphProps.domain) && isEqual(graphProps.range, nextGraphProps.range);\n};\n\nexport const getRightestPoints = (points) => {\n const sortedPoints = cloneDeep(points);\n sortedPoints.sort((a, b) => b.x - a.x);\n\n return { a: sortedPoints[0], b: sortedPoints[1] };\n};\n\nexport const getMiddleOfTwoPoints = (a, b) => ({\n x: (a.x + b.x) / 2,\n y: (a.y + b.y) / 2,\n});\n\nexport const roundNumber = (number) => parseFloat(number.toFixed(4));\n\nexport const sameAxes = (p1, p2) =>\n p1 && p2 && (roundNumber(p1.x) === roundNumber(p2.x) || roundNumber(p1.y) === roundNumber(p2.y));\n\nexport const equalPoints = (p1, p2) =>\n p1 &&\n p2 &&\n isEqual(\n {\n x: roundNumber(p1.x),\n y: roundNumber(p1.y),\n },\n {\n x: roundNumber(p2.x),\n y: roundNumber(p2.y),\n },\n );\n\nconst getDistanceBetweenTicks = (axis, size) => {\n const { min, max, step } = axis;\n const nbOfTicks = (max - min) / step;\n\n return size / nbOfTicks;\n};\n\nexport const thinnerShapesNeeded = (graphProps) => {\n const {\n domain,\n range,\n size: { width, height },\n } = graphProps;\n\n // 14 is the default width of a point\n return getDistanceBetweenTicks(domain, width) < 14 || getDistanceBetweenTicks(range, height) < 14;\n};\n\nexport const getAdjustedGraphLimits = (graphProps) => {\n const {\n domain,\n range,\n size: { width, height },\n } = graphProps;\n const domainTicksDistance = getDistanceBetweenTicks(domain, width);\n const rangeTicksDistance = getDistanceBetweenTicks(range, height);\n\n // 15 is the distance required for the arrow to extend the graph\n const domainPadding = domain.step / (domainTicksDistance / 15);\n const rangePadding = range.step / (rangeTicksDistance / 15);\n\n return {\n domain: {\n min: domain.min - domainPadding,\n max: domain.max + domainPadding,\n },\n range: {\n min: range.min - rangePadding,\n max: range.max + rangePadding,\n },\n };\n};\n\nexport const getDistanceBetweenTwoPoints = (a, b) => Math.sqrt((b.x - a.x) * (b.x - a.x) + (b.y - a.y) * (b.y - a.y));\n\nconst sortPoints = (array) => (array || []).sort((a, b) => a.x - b.x || a.y - b.y);\n\n// check colliniarity of 3 points (source: https://www.geeksforgeeks.org/program-check-three-points-collinear/)\nconst checkCollinearity = (a, b, c) => (a.x - b.x) * (c.y - b.y) === (c.x - b.x) * (a.y - b.y);\n\n// 2 lines are overlapping if all 4 points are collinear\nconst isSameLine = (markA, markB) =>\n checkCollinearity(markA.from, markB.from, markB.to) && checkCollinearity(markA.to, markB.from, markB.to);\n\nconst isSameCircle = (markA, markB) =>\n equalPoints(markA.root, markB.root) &&\n getDistanceBetweenTwoPoints(markB.root, markB.edge) === getDistanceBetweenTwoPoints(markA.root, markA.edge);\n\nexport const isDuplicatedMark = (mark, marks, oldMark) => {\n const { type, building } = mark;\n\n if (building) {\n return false;\n }\n\n const filteredMarks = (marks || []).filter((m) => m.type === type && !m.building);\n const index = filteredMarks.findIndex((m) => isEqual(m, oldMark));\n\n if (index !== -1) {\n filteredMarks.splice(index, 1);\n }\n\n const duplicated = filteredMarks.find((m) => {\n if (type === 'circle' || type === 'parabola' || type === 'sine') {\n const { root, edge } = mark;\n\n return (equalPoints(root, m.root) && equalPoints(edge, m.edge)) || (type === 'circle' && isSameCircle(m, mark));\n } else if (type === 'line' || type === 'ray' || type === 'segment' || type === 'vector') {\n const { from, to } = mark;\n\n return (\n (equalPoints(from, m.from) && equalPoints(to, m.to)) ||\n (equalPoints(from, m.to) && equalPoints(to, m.from)) ||\n (type === 'line' && isSameLine(m, mark))\n );\n } else if (type === 'polygon') {\n return isEqual(sortPoints(cloneDeep(mark.points)), sortPoints(cloneDeep(m.points)));\n } else if (type === 'point') {\n return equalPoints(m, mark);\n }\n });\n\n return !!duplicated;\n};\n"],"file":"utils.js"}
1
+ {"version":3,"sources":["../src/utils.js"],"names":["tickCount","utils","bounds","point","getAngleDeg","arrowDimensions","getTickValues","prop","tickValues","tickVal","min","indexOf","push","Math","round","step","max","filter","tV","countWords","label","words","split","length","findLongestWord","longestWord","replace","sort","a","b","amountToIncreaseWidth","polygonToArea","points","h","area","left","x","top","y","bottom","right","reduce","p","lineToArea","from","to","pointsToArea","isDomainRangeEqual","graphProps","nextGraphProps","domain","range","getRightestPoints","sortedPoints","getMiddleOfTwoPoints","roundNumber","number","parseFloat","toFixed","sameAxes","p1","p2","equalPoints","getDistanceBetweenTicks","axis","size","nbOfTicks","thinnerShapesNeeded","width","height","getAdjustedGraphLimits","domainTicksDistance","rangeTicksDistance","domainPadding","rangePadding","getDistanceBetweenTwoPoints","sqrt","sortPoints","array","checkCollinearity","c","isSameLine","markA","markB","isSameCircle","root","edge","isDuplicatedMark","mark","marks","oldMark","type","building","filteredMarks","m","index","findIndex","splice","duplicated","find"],"mappings":"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","sourcesContent":["import head from 'lodash/head';\nimport tail from 'lodash/tail';\nimport { utils } from '@pie-lib/plot';\nimport invariant from 'invariant';\nimport isEqual from 'lodash/isEqual';\nimport isEmpty from 'lodash/isEmpty';\nimport cloneDeep from 'lodash/cloneDeep';\n\nexport const tickCount = utils.tickCount;\nexport const bounds = utils.bounds;\nexport const point = utils.point;\n\n//TODO: This can be removed?\nexport const getAngleDeg = () => 0;\n//TODO: This can be removed?\nexport const arrowDimensions = () => 0;\n\nexport const getTickValues = (prop) => {\n const tickValues = [];\n let tickVal = 0;\n\n while (tickVal >= prop.min && tickValues.indexOf(tickVal) < 0) {\n tickValues.push(tickVal);\n tickVal = Math.round((tickVal - prop.step) * 10000) / 10000;\n }\n\n tickVal = Math.round(prop.step * 10000) / 10000;\n\n while (tickVal <= prop.max && tickValues.indexOf(tickVal) < 0) {\n tickValues.push(tickVal);\n tickVal = Math.round((tickVal + prop.step) * 10000) / 10000;\n }\n\n // return only ticks that are inside the min-max interval\n if (tickValues) {\n return tickValues.filter((tV) => tV >= prop.min && tV <= prop.max);\n }\n\n return [];\n};\n\nexport const countWords = (label) => {\n if (label == null || isEmpty(label)) {\n return 1;\n }\n\n const words = label.split(' ');\n return words.length;\n};\n\n// findLongestWord is also used in plot\nexport const findLongestWord = (label) => {\n let longestWord = (label || '')\n .replace(/<[^>]+>/g, '')\n .split(' ')\n .sort((a, b) => b.length - a.length);\n\n return longestWord[0].length;\n};\n\n// amountToIncreaseWidth is also used in plot\nexport const amountToIncreaseWidth = (longestWord) => {\n if (!longestWord) {\n return 0;\n }\n\n return longestWord * 10;\n};\n\nexport const polygonToArea = (points) => {\n const h = head(points);\n const area = {\n left: h.x,\n top: h.y,\n bottom: h.y,\n right: h.x,\n };\n return tail(points).reduce((a, p) => {\n a.left = Math.min(a.left, p.x);\n a.top = Math.max(a.top, p.y);\n a.bottom = Math.min(a.bottom, p.y);\n a.right = Math.max(a.right, p.x);\n return a;\n }, area);\n};\n\nexport const lineToArea = (from, to) => pointsToArea(from, to);\n\nexport const pointsToArea = (a, b) => {\n invariant(!!a && !!b, 'a or b is undefined');\n const left = Math.min(a.x, b.x);\n const top = Math.max(a.y, b.y);\n const bottom = Math.min(a.y, b.y);\n const right = Math.max(a.x, b.x);\n return { left, top, bottom, right };\n};\n\nexport const isDomainRangeEqual = (graphProps, nextGraphProps) => {\n return isEqual(graphProps.domain, nextGraphProps.domain) && isEqual(graphProps.range, nextGraphProps.range);\n};\n\nexport const getRightestPoints = (points) => {\n const sortedPoints = cloneDeep(points);\n sortedPoints.sort((a, b) => b.x - a.x);\n\n return { a: sortedPoints[0], b: sortedPoints[1] };\n};\n\nexport const getMiddleOfTwoPoints = (a, b) => ({\n x: (a.x + b.x) / 2,\n y: (a.y + b.y) / 2,\n});\n\nexport const roundNumber = (number) => parseFloat(number.toFixed(4));\n\nexport const sameAxes = (p1, p2) =>\n p1 && p2 && (roundNumber(p1.x) === roundNumber(p2.x) || roundNumber(p1.y) === roundNumber(p2.y));\n\nexport const equalPoints = (p1, p2) =>\n p1 &&\n p2 &&\n isEqual(\n {\n x: roundNumber(p1.x),\n y: roundNumber(p1.y),\n },\n {\n x: roundNumber(p2.x),\n y: roundNumber(p2.y),\n },\n );\n\nconst getDistanceBetweenTicks = (axis, size) => {\n const { min, max, step } = axis;\n const nbOfTicks = (max - min) / step;\n\n return size / nbOfTicks;\n};\n\nexport const thinnerShapesNeeded = (graphProps) => {\n const {\n domain,\n range,\n size: { width, height },\n } = graphProps;\n\n // 14 is the default width of a point\n return getDistanceBetweenTicks(domain, width) < 14 || getDistanceBetweenTicks(range, height) < 14;\n};\n\nexport const getAdjustedGraphLimits = (graphProps) => {\n const {\n domain,\n range,\n size: { width, height },\n } = graphProps;\n const domainTicksDistance = getDistanceBetweenTicks(domain, width);\n const rangeTicksDistance = getDistanceBetweenTicks(range, height);\n\n // 15 is the distance required for the arrow to extend the graph\n const domainPadding = domain.step / (domainTicksDistance / 15);\n const rangePadding = range.step / (rangeTicksDistance / 15);\n\n return {\n domain: {\n min: domain.min - domainPadding,\n max: domain.max + domainPadding,\n },\n range: {\n min: range.min - rangePadding,\n max: range.max + rangePadding,\n },\n };\n};\n\nexport const getDistanceBetweenTwoPoints = (a, b) => Math.sqrt((b.x - a.x) * (b.x - a.x) + (b.y - a.y) * (b.y - a.y));\n\nconst sortPoints = (array) => (array || []).sort((a, b) => a.x - b.x || a.y - b.y);\n\n// check colliniarity of 3 points (source: https://www.geeksforgeeks.org/program-check-three-points-collinear/)\nconst checkCollinearity = (a, b, c) => (a.x - b.x) * (c.y - b.y) === (c.x - b.x) * (a.y - b.y);\n\n// 2 lines are overlapping if all 4 points are collinear\nconst isSameLine = (markA, markB) =>\n checkCollinearity(markA.from, markB.from, markB.to) && checkCollinearity(markA.to, markB.from, markB.to);\n\nconst isSameCircle = (markA, markB) =>\n equalPoints(markA.root, markB.root) &&\n getDistanceBetweenTwoPoints(markB.root, markB.edge) === getDistanceBetweenTwoPoints(markA.root, markA.edge);\n\nexport const isDuplicatedMark = (mark, marks, oldMark) => {\n const { type, building } = mark;\n\n if (building) {\n return false;\n }\n\n const filteredMarks = (marks || []).filter((m) => m.type === type && !m.building);\n const index = filteredMarks.findIndex((m) => isEqual(m, oldMark));\n\n if (index !== -1) {\n filteredMarks.splice(index, 1);\n }\n\n const duplicated = filteredMarks.find((m) => {\n if (type === 'circle' || type === 'parabola' || type === 'sine' || type === 'absolute' || type === 'exponential') {\n const { root, edge } = mark;\n\n return (equalPoints(root, m.root) && equalPoints(edge, m.edge)) || (type === 'circle' && isSameCircle(m, mark));\n } else if (type === 'line' || type === 'ray' || type === 'segment' || type === 'vector') {\n const { from, to } = mark;\n\n return (\n (equalPoints(from, m.from) && equalPoints(to, m.to)) ||\n (equalPoints(from, m.to) && equalPoints(to, m.from)) ||\n (type === 'line' && isSameLine(m, mark))\n );\n } else if (type === 'polygon') {\n return isEqual(sortPoints(cloneDeep(mark.points)), sortPoints(cloneDeep(m.points)));\n } else if (type === 'point') {\n return equalPoints(m, mark);\n }\n });\n\n return !!duplicated;\n};\n"],"file":"utils.js"}
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "2.14.21",
6
+ "version": "2.14.22-next.1618+4ac095ca",
7
7
  "description": "Graphing components",
8
8
  "keywords": [
9
9
  "react",
@@ -18,15 +18,18 @@
18
18
  "dependencies": {
19
19
  "@mapbox/point-geometry": "^0.1.0",
20
20
  "@material-ui/core": "^3.8.3",
21
- "@pie-lib/drag": "^2.2.9",
22
- "@pie-lib/graphing-utils": "^1.1.33",
23
- "@pie-lib/plot": "^2.7.3",
24
- "@pie-lib/render-ui": "^4.15.9",
25
- "@pie-lib/translator": "^2.3.0",
21
+ "@material-ui/icons": "^3.0.2",
22
+ "@pie-lib/drag": "^2.2.10-next.1639+4ac095ca",
23
+ "@pie-lib/editable-html": "^11.1.2-next.1595+4ac095ca",
24
+ "@pie-lib/graphing-utils": "^1.1.34-next.1848+4ac095ca",
25
+ "@pie-lib/plot": "^2.7.4-next.1618+4ac095ca",
26
+ "@pie-lib/render-ui": "^4.15.10-next.1639+4ac095ca",
27
+ "@pie-lib/translator": "^2.3.1-next.1712+4ac095ca",
26
28
  "@vx/axis": "^0.0.189",
27
29
  "@vx/clip-path": "^0.0.189",
28
30
  "@vx/event": "^0.0.189",
29
31
  "@vx/grid": "^0.0.189",
32
+ "@vx/group": "^0.0.183",
30
33
  "@vx/point": "^0.0.189",
31
34
  "@vx/shape": "^0.0.189",
32
35
  "classnames": "^2.2.6",
@@ -35,7 +38,9 @@
35
38
  "debug": "^4.1.1",
36
39
  "invariant": "^2.2.4",
37
40
  "lodash": "^4.17.11",
41
+ "prop-types": "^15.7.2",
38
42
  "react": "^16.8.1",
43
+ "react-dom": "^16.9.0",
39
44
  "react-draggable": "^3.3.0",
40
45
  "react-input-autosize": "^2.2.1",
41
46
  "react-redux": "^6.0.0",
@@ -45,6 +50,6 @@
45
50
  "peerDependencies": {
46
51
  "react": "^16.8.1"
47
52
  },
48
- "gitHead": "cda593dd0aedaadb7e1fd85f12d72ca3bb03d375",
53
+ "gitHead": "4ac095ca931e5fe8f131f28f41dd61093bd55d98",
49
54
  "scripts": {}
50
55
  }