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

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 (215) hide show
  1. package/CHANGELOG.md +21 -72
  2. package/NEXT.CHANGELOG.json +1 -0
  3. package/package.json +15 -9
  4. package/src/__tests__/__snapshots__/graph-with-controls.test.jsx.snap +237 -0
  5. package/src/__tests__/__snapshots__/graph.test.jsx.snap +211 -0
  6. package/src/__tests__/__snapshots__/grid.test.jsx.snap +54 -0
  7. package/src/__tests__/__snapshots__/labels.test.jsx.snap +30 -0
  8. package/src/__tests__/__snapshots__/mark-label.test.jsx.snap +45 -0
  9. package/src/__tests__/__snapshots__/toggle-bar.test.jsx.snap +7 -0
  10. package/src/__tests__/__snapshots__/tool-menu.test.jsx.snap +13 -0
  11. package/src/__tests__/__snapshots__/undo-redo.test.jsx.snap +14 -0
  12. package/src/__tests__/graph-with-controls.test.jsx +147 -0
  13. package/src/__tests__/graph.test.jsx +230 -0
  14. package/src/__tests__/grid.test.jsx +20 -0
  15. package/src/__tests__/labels.test.jsx +38 -0
  16. package/src/__tests__/mark-label.test.jsx +68 -0
  17. package/src/__tests__/toggle-bar.test.jsx +36 -0
  18. package/src/__tests__/tool-menu.test.jsx +29 -0
  19. package/src/__tests__/undo-redo.test.jsx +25 -0
  20. package/src/__tests__/use-debounce.test.js +21 -0
  21. package/src/__tests__/utils.js +38 -0
  22. package/src/__tests__/utils.test.js +151 -0
  23. package/src/axis/__tests__/__snapshots__/arrow.test.jsx.snap +33 -0
  24. package/src/axis/__tests__/__snapshots__/axes.test.jsx.snap +122 -0
  25. package/src/axis/__tests__/arrow.test.jsx +39 -0
  26. package/src/axis/__tests__/axes.test.jsx +220 -0
  27. package/src/axis/axes.jsx +5 -5
  28. package/src/container/index.jsx +2 -4
  29. package/src/coordinates-label.jsx +4 -3
  30. package/src/graph-with-controls.jsx +8 -10
  31. package/src/graph.jsx +22 -10
  32. package/src/grid.jsx +8 -10
  33. package/src/index.js +2 -2
  34. package/src/key-legend.jsx +145 -0
  35. package/src/label-svg-icon.jsx +39 -0
  36. package/src/labels.jsx +2 -1
  37. package/src/mark-label.jsx +149 -52
  38. package/src/toggle-bar.jsx +1 -2
  39. package/src/tool-menu.jsx +3 -26
  40. package/src/tools/absolute/__tests__/component.test.jsx +54 -0
  41. package/src/tools/absolute/component.jsx +23 -0
  42. package/src/tools/absolute/index.js +31 -0
  43. package/src/tools/circle/__tests__/__snapshots__/bg-circle.test.jsx.snap +46 -0
  44. package/src/tools/circle/__tests__/__snapshots__/component.test.jsx.snap +293 -0
  45. package/src/tools/circle/__tests__/bg-circle.test.jsx +28 -0
  46. package/src/tools/circle/__tests__/component.test.jsx +228 -0
  47. package/src/tools/circle/bg-circle.jsx +5 -4
  48. package/src/tools/circle/component.jsx +22 -8
  49. package/src/tools/exponential/__tests__/component.test.jsx +54 -0
  50. package/src/tools/exponential/component.jsx +23 -0
  51. package/src/tools/exponential/index.js +39 -0
  52. package/src/tools/index.js +38 -5
  53. package/src/tools/line/__tests__/__snapshots__/component.test.jsx.snap +20 -0
  54. package/src/tools/line/__tests__/component.test.jsx +36 -0
  55. package/src/tools/line/component.jsx +2 -1
  56. package/src/tools/parabola/__tests__/component.test.jsx +49 -0
  57. package/src/tools/parabola/component.jsx +7 -6
  58. package/src/tools/point/__tests__/__snapshots__/component.test.jsx.snap +40 -0
  59. package/src/tools/point/__tests__/component.test.jsx +66 -0
  60. package/src/tools/point/component.jsx +12 -6
  61. package/src/tools/polygon/__tests__/__snapshots__/component.test.jsx.snap +415 -0
  62. package/src/tools/polygon/__tests__/__snapshots__/line.test.jsx.snap +45 -0
  63. package/src/tools/polygon/__tests__/__snapshots__/polygon.test.jsx.snap +52 -0
  64. package/src/tools/polygon/__tests__/component.test.jsx +226 -0
  65. package/src/tools/polygon/__tests__/index.test.js +65 -0
  66. package/src/tools/polygon/__tests__/line.test.jsx +25 -0
  67. package/src/tools/polygon/__tests__/polygon.test.jsx +44 -0
  68. package/src/tools/polygon/component.jsx +39 -11
  69. package/src/tools/polygon/line.jsx +15 -7
  70. package/src/tools/polygon/polygon.jsx +7 -3
  71. package/src/tools/ray/__tests__/__snapshots__/component.test.jsx.snap +23 -0
  72. package/src/tools/ray/__tests__/component.test.jsx +29 -0
  73. package/src/tools/ray/component.jsx +2 -1
  74. package/src/tools/segment/__tests__/__snapshots__/component.test.jsx.snap +14 -0
  75. package/src/tools/segment/__tests__/component.test.jsx +28 -0
  76. package/src/tools/segment/component.jsx +2 -1
  77. package/src/tools/shared/__tests__/__snapshots__/arrow-head.test.jsx.snap +27 -0
  78. package/src/tools/shared/__tests__/arrow-head.test.jsx +34 -0
  79. package/src/tools/shared/icons/CorrectSVG.jsx +22 -0
  80. package/src/tools/shared/icons/IncorrectSVG.jsx +20 -0
  81. package/src/tools/shared/icons/MissingSVG.jsx +21 -0
  82. package/src/tools/shared/line/__tests__/__snapshots__/index.test.jsx.snap +360 -0
  83. package/src/tools/shared/line/__tests__/__snapshots__/line-path.test.jsx.snap +58 -0
  84. package/src/tools/shared/line/__tests__/__snapshots__/with-root-edge.test.jsx.snap +63 -0
  85. package/src/tools/shared/line/__tests__/index.test.jsx +255 -0
  86. package/src/tools/shared/line/__tests__/line-path.test.jsx +53 -0
  87. package/src/tools/shared/line/__tests__/with-root-edge.test.jsx +73 -0
  88. package/src/tools/shared/line/index.jsx +39 -13
  89. package/src/tools/shared/line/line-path.jsx +18 -7
  90. package/src/tools/shared/line/with-root-edge.jsx +10 -3
  91. package/src/tools/shared/point/__tests__/__snapshots__/arrow-point.test.jsx.snap +56 -0
  92. package/src/tools/shared/point/__tests__/__snapshots__/base-point.test.jsx.snap +44 -0
  93. package/src/tools/shared/point/__tests__/arrow-point.test.jsx +87 -0
  94. package/src/tools/shared/point/__tests__/base-point.test.jsx +84 -0
  95. package/src/tools/shared/point/arrow-point.jsx +4 -1
  96. package/src/tools/shared/point/arrow.jsx +4 -1
  97. package/src/tools/shared/point/base-point.jsx +28 -3
  98. package/src/tools/shared/point/index.jsx +7 -2
  99. package/src/tools/shared/styles.js +8 -3
  100. package/src/tools/sine/__tests__/component.test.jsx +51 -0
  101. package/src/tools/sine/component.jsx +7 -7
  102. package/src/tools/vector/__tests__/__snapshots__/component.test.jsx.snap +12 -0
  103. package/src/tools/vector/__tests__/component.test.jsx +26 -0
  104. package/src/tools/vector/component.jsx +2 -1
  105. package/src/undo-redo.jsx +0 -1
  106. package/src/utils.js +1 -1
  107. package/legacy.png +0 -0
  108. package/lib/axis/arrow.js +0 -115
  109. package/lib/axis/arrow.js.map +0 -1
  110. package/lib/axis/axes.js +0 -415
  111. package/lib/axis/axes.js.map +0 -1
  112. package/lib/axis/index.js +0 -26
  113. package/lib/axis/index.js.map +0 -1
  114. package/lib/bg.js +0 -139
  115. package/lib/bg.js.map +0 -1
  116. package/lib/container/actions.js +0 -24
  117. package/lib/container/actions.js.map +0 -1
  118. package/lib/container/index.js +0 -166
  119. package/lib/container/index.js.map +0 -1
  120. package/lib/container/marks.js +0 -27
  121. package/lib/container/marks.js.map +0 -1
  122. package/lib/container/middleware.js +0 -25
  123. package/lib/container/middleware.js.map +0 -1
  124. package/lib/container/reducer.js +0 -25
  125. package/lib/container/reducer.js.map +0 -1
  126. package/lib/coordinates-label.js +0 -107
  127. package/lib/coordinates-label.js.map +0 -1
  128. package/lib/graph-with-controls.js +0 -366
  129. package/lib/graph-with-controls.js.map +0 -1
  130. package/lib/graph.js +0 -354
  131. package/lib/graph.js.map +0 -1
  132. package/lib/grid-setup.js +0 -462
  133. package/lib/grid-setup.js.map +0 -1
  134. package/lib/grid.js +0 -184
  135. package/lib/grid.js.map +0 -1
  136. package/lib/index.js +0 -51
  137. package/lib/index.js.map +0 -1
  138. package/lib/labels.js +0 -298
  139. package/lib/labels.js.map +0 -1
  140. package/lib/mark-label.js +0 -210
  141. package/lib/mark-label.js.map +0 -1
  142. package/lib/toggle-bar.js +0 -337
  143. package/lib/toggle-bar.js.map +0 -1
  144. package/lib/tool-menu.js +0 -132
  145. package/lib/tool-menu.js.map +0 -1
  146. package/lib/tools/circle/bg-circle.js +0 -172
  147. package/lib/tools/circle/bg-circle.js.map +0 -1
  148. package/lib/tools/circle/component.js +0 -387
  149. package/lib/tools/circle/component.js.map +0 -1
  150. package/lib/tools/circle/index.js +0 -51
  151. package/lib/tools/circle/index.js.map +0 -1
  152. package/lib/tools/index.js +0 -79
  153. package/lib/tools/index.js.map +0 -1
  154. package/lib/tools/line/component.js +0 -102
  155. package/lib/tools/line/component.js.map +0 -1
  156. package/lib/tools/line/index.js +0 -16
  157. package/lib/tools/line/index.js.map +0 -1
  158. package/lib/tools/parabola/component.js +0 -33
  159. package/lib/tools/parabola/component.js.map +0 -1
  160. package/lib/tools/parabola/index.js +0 -63
  161. package/lib/tools/parabola/index.js.map +0 -1
  162. package/lib/tools/point/component.js +0 -181
  163. package/lib/tools/point/component.js.map +0 -1
  164. package/lib/tools/point/index.js +0 -32
  165. package/lib/tools/point/index.js.map +0 -1
  166. package/lib/tools/polygon/component.js +0 -505
  167. package/lib/tools/polygon/component.js.map +0 -1
  168. package/lib/tools/polygon/index.js +0 -106
  169. package/lib/tools/polygon/index.js.map +0 -1
  170. package/lib/tools/polygon/line.js +0 -151
  171. package/lib/tools/polygon/line.js.map +0 -1
  172. package/lib/tools/polygon/polygon.js +0 -162
  173. package/lib/tools/polygon/polygon.js.map +0 -1
  174. package/lib/tools/ray/component.js +0 -101
  175. package/lib/tools/ray/component.js.map +0 -1
  176. package/lib/tools/ray/index.js +0 -16
  177. package/lib/tools/ray/index.js.map +0 -1
  178. package/lib/tools/segment/component.js +0 -74
  179. package/lib/tools/segment/component.js.map +0 -1
  180. package/lib/tools/segment/index.js +0 -16
  181. package/lib/tools/segment/index.js.map +0 -1
  182. package/lib/tools/shared/arrow-head.js +0 -70
  183. package/lib/tools/shared/arrow-head.js.map +0 -1
  184. package/lib/tools/shared/line/index.js +0 -567
  185. package/lib/tools/shared/line/index.js.map +0 -1
  186. package/lib/tools/shared/line/line-path.js +0 -145
  187. package/lib/tools/shared/line/line-path.js.map +0 -1
  188. package/lib/tools/shared/line/with-root-edge.js +0 -144
  189. package/lib/tools/shared/line/with-root-edge.js.map +0 -1
  190. package/lib/tools/shared/point/arrow-point.js +0 -113
  191. package/lib/tools/shared/point/arrow-point.js.map +0 -1
  192. package/lib/tools/shared/point/arrow.js +0 -96
  193. package/lib/tools/shared/point/arrow.js.map +0 -1
  194. package/lib/tools/shared/point/base-point.js +0 -139
  195. package/lib/tools/shared/point/base-point.js.map +0 -1
  196. package/lib/tools/shared/point/index.js +0 -94
  197. package/lib/tools/shared/point/index.js.map +0 -1
  198. package/lib/tools/shared/styles.js +0 -49
  199. package/lib/tools/shared/styles.js.map +0 -1
  200. package/lib/tools/shared/types.js +0 -23
  201. package/lib/tools/shared/types.js.map +0 -1
  202. package/lib/tools/sine/component.js +0 -42
  203. package/lib/tools/sine/component.js.map +0 -1
  204. package/lib/tools/sine/index.js +0 -63
  205. package/lib/tools/sine/index.js.map +0 -1
  206. package/lib/tools/vector/component.js +0 -87
  207. package/lib/tools/vector/component.js.map +0 -1
  208. package/lib/tools/vector/index.js +0 -16
  209. package/lib/tools/vector/index.js.map +0 -1
  210. package/lib/undo-redo.js +0 -124
  211. package/lib/undo-redo.js.map +0 -1
  212. package/lib/use-debounce.js +0 -32
  213. package/lib/use-debounce.js.map +0 -1
  214. package/lib/utils.js +0 -307
  215. package/lib/utils.js.map +0 -1
@@ -1,70 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.genUid = exports.ArrowMarker = exports.ArrowHead = void 0;
9
-
10
- var _react = _interopRequireDefault(require("react"));
11
-
12
- var _propTypes = _interopRequireDefault(require("prop-types"));
13
-
14
- var ArrowHead = function ArrowHead(_ref) {
15
- var size = _ref.size,
16
- transform = _ref.transform,
17
- points = _ref.points;
18
- return /*#__PURE__*/_react["default"].createElement("polygon", {
19
- points: points || "0,0 ".concat(size, ",").concat(size / 2, " 0,").concat(size),
20
- transform: transform
21
- });
22
- };
23
-
24
- exports.ArrowHead = ArrowHead;
25
- ArrowHead.propTypes = {
26
- points: _propTypes["default"].string,
27
- size: _propTypes["default"].number,
28
- transform: _propTypes["default"].string
29
- };
30
- ArrowHead.defaultProps = {
31
- points: '',
32
- size: 10,
33
- transform: ''
34
- };
35
-
36
- var genUid = function genUid() {
37
- var v = (Math.random() * 1000).toFixed(0);
38
- return "arrow-".concat(v);
39
- };
40
-
41
- exports.genUid = genUid;
42
-
43
- var ArrowMarker = function ArrowMarker(_ref2) {
44
- var id = _ref2.id,
45
- size = _ref2.size,
46
- className = _ref2.className;
47
- return /*#__PURE__*/_react["default"].createElement("marker", {
48
- id: id,
49
- viewBox: "0 0 ".concat(size, " ").concat(size),
50
- refX: size / 2,
51
- refY: size / 2,
52
- markerWidth: size,
53
- markerHeight: size,
54
- orient: "auto-start-reverse",
55
- className: className
56
- }, /*#__PURE__*/_react["default"].createElement(ArrowHead, {
57
- size: size
58
- }));
59
- };
60
-
61
- exports.ArrowMarker = ArrowMarker;
62
- ArrowMarker.propTypes = {
63
- id: _propTypes["default"].string,
64
- size: _propTypes["default"].number,
65
- className: _propTypes["default"].string
66
- };
67
- ArrowMarker.defaultProps = {
68
- size: 5
69
- };
70
- //# sourceMappingURL=arrow-head.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/tools/shared/arrow-head.jsx"],"names":["ArrowHead","size","transform","points","propTypes","PropTypes","string","number","defaultProps","genUid","v","Math","random","toFixed","ArrowMarker","id","className"],"mappings":";;;;;;;;;AAAA;;AACA;;AAEO,IAAMA,SAAS,GAAG,SAAZA,SAAY;AAAA,MAAGC,IAAH,QAAGA,IAAH;AAAA,MAASC,SAAT,QAASA,SAAT;AAAA,MAAoBC,MAApB,QAAoBA,MAApB;AAAA,sBACvB;AAAS,IAAA,MAAM,EAAEA,MAAM,kBAAWF,IAAX,cAAmBA,IAAI,GAAG,CAA1B,gBAAiCA,IAAjC,CAAvB;AAAgE,IAAA,SAAS,EAAEC;AAA3E,IADuB;AAAA,CAAlB;;;AAGPF,SAAS,CAACI,SAAV,GAAsB;AACpBD,EAAAA,MAAM,EAAEE,sBAAUC,MADE;AAEpBL,EAAAA,IAAI,EAAEI,sBAAUE,MAFI;AAGpBL,EAAAA,SAAS,EAAEG,sBAAUC;AAHD,CAAtB;AAKAN,SAAS,CAACQ,YAAV,GAAyB;AACvBL,EAAAA,MAAM,EAAE,EADe;AAEvBF,EAAAA,IAAI,EAAE,EAFiB;AAGvBC,EAAAA,SAAS,EAAE;AAHY,CAAzB;;AAKO,IAAMO,MAAM,GAAG,SAATA,MAAS,GAAM;AAC1B,MAAMC,CAAC,GAAG,CAACC,IAAI,CAACC,MAAL,KAAgB,IAAjB,EAAuBC,OAAvB,CAA+B,CAA/B,CAAV;AACA,yBAAgBH,CAAhB;AACD,CAHM;;;;AAIA,IAAMI,WAAW,GAAG,SAAdA,WAAc,QAA6B;AAAA,MAA1BC,EAA0B,SAA1BA,EAA0B;AAAA,MAAtBd,IAAsB,SAAtBA,IAAsB;AAAA,MAAhBe,SAAgB,SAAhBA,SAAgB;AACtD,sBACE;AACE,IAAA,EAAE,EAAED,EADN;AAEE,IAAA,OAAO,gBAASd,IAAT,cAAiBA,IAAjB,CAFT;AAGE,IAAA,IAAI,EAAEA,IAAI,GAAG,CAHf;AAIE,IAAA,IAAI,EAAEA,IAAI,GAAG,CAJf;AAKE,IAAA,WAAW,EAAEA,IALf;AAME,IAAA,YAAY,EAAEA,IANhB;AAOE,IAAA,MAAM,EAAC,oBAPT;AAQE,IAAA,SAAS,EAAEe;AARb,kBAUE,gCAAC,SAAD;AAAW,IAAA,IAAI,EAAEf;AAAjB,IAVF,CADF;AAcD,CAfM;;;AAgBPa,WAAW,CAACV,SAAZ,GAAwB;AACtBW,EAAAA,EAAE,EAAEV,sBAAUC,MADQ;AAEtBL,EAAAA,IAAI,EAAEI,sBAAUE,MAFM;AAGtBS,EAAAA,SAAS,EAAEX,sBAAUC;AAHC,CAAxB;AAKAQ,WAAW,CAACN,YAAZ,GAA2B;AACzBP,EAAAA,IAAI,EAAE;AADmB,CAA3B","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nexport const ArrowHead = ({ size, transform, points }) => (\n <polygon points={points || `0,0 ${size},${size / 2} 0,${size}`} transform={transform} />\n);\nArrowHead.propTypes = {\n points: PropTypes.string,\n size: PropTypes.number,\n transform: PropTypes.string,\n};\nArrowHead.defaultProps = {\n points: '',\n size: 10,\n transform: '',\n};\nexport const genUid = () => {\n const v = (Math.random() * 1000).toFixed(0);\n return `arrow-${v}`;\n};\nexport const ArrowMarker = ({ id, size, className }) => {\n return (\n <marker\n id={id}\n viewBox={`0 0 ${size} ${size}`}\n refX={size / 2}\n refY={size / 2}\n markerWidth={size}\n markerHeight={size}\n orient=\"auto-start-reverse\"\n className={className}\n >\n <ArrowHead size={size} />\n </marker>\n );\n};\nArrowMarker.propTypes = {\n id: PropTypes.string,\n size: PropTypes.number,\n className: PropTypes.string,\n};\nArrowMarker.defaultProps = {\n size: 5,\n};\n"],"file":"arrow-head.js"}
@@ -1,567 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.styles = exports.lineToolComponent = exports.lineTool = exports.lineBase = void 0;
9
-
10
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
-
12
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
-
14
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
-
16
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
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 _isEqual = _interopRequireDefault(require("lodash/isEqual"));
29
-
30
- var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
31
-
32
- var _point = require("../point");
33
-
34
- var _plot = require("@pie-lib/plot");
35
-
36
- var _propTypes = _interopRequireDefault(require("prop-types"));
37
-
38
- var _styles = require("../styles");
39
-
40
- var _reactDom = _interopRequireDefault(require("react-dom"));
41
-
42
- var _markLabel = _interopRequireDefault(require("../../../mark-label"));
43
-
44
- var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
45
-
46
- var _renderUi = require("@pie-lib/render-ui");
47
-
48
- var _utils = require("../../../utils");
49
-
50
- 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); }; }
51
-
52
- 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; } }
53
-
54
- 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; }
55
-
56
- 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; }
57
-
58
- var lineTool = function lineTool(type, Component) {
59
- return function () {
60
- return {
61
- type: type,
62
- Component: Component,
63
- addPoint: function addPoint(point, mark) {
64
- if (mark && (0, _utils.equalPoints)(mark.root, point)) {
65
- return mark;
66
- }
67
-
68
- if (!mark) {
69
- return {
70
- type: type,
71
- building: true,
72
- from: point
73
- };
74
- }
75
-
76
- if ((0, _utils.equalPoints)(point, mark.from)) {
77
- return _objectSpread({}, mark);
78
- }
79
-
80
- return _objectSpread(_objectSpread({}, mark), {}, {
81
- building: false,
82
- to: point
83
- });
84
- }
85
- };
86
- };
87
- };
88
-
89
- exports.lineTool = lineTool;
90
-
91
- var lineToolComponent = function lineToolComponent(Component) {
92
- var _class;
93
-
94
- return _class = /*#__PURE__*/function (_React$Component) {
95
- (0, _inherits2["default"])(LineToolComponent, _React$Component);
96
-
97
- var _super = _createSuper(LineToolComponent);
98
-
99
- function LineToolComponent(props) {
100
- var _this;
101
-
102
- (0, _classCallCheck2["default"])(this, LineToolComponent);
103
- _this = _super.call(this, props);
104
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "startDrag", function () {
105
- return _this.setState({
106
- mark: _objectSpread({}, _this.props.mark)
107
- });
108
- });
109
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "stopDrag", function () {
110
- var _this$props = _this.props,
111
- onChange = _this$props.onChange,
112
- mark = _this$props.mark;
113
-
114
- var update = _objectSpread({}, _this.state.mark);
115
-
116
- _this.setState({
117
- mark: undefined
118
- }, function () {
119
- var type = update.type;
120
- var shouldNotChange = type && (type === 'parabola' || type === 'sine') && (0, _utils.sameAxes)(update.from, update.to);
121
-
122
- if (!(0, _isEqual["default"])(mark, update) && !shouldNotChange) {
123
- onChange(mark, update);
124
- }
125
- });
126
- });
127
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeMark", function (_ref) {
128
- var from = _ref.from,
129
- to = _ref.to,
130
- middle = _ref.middle;
131
-
132
- var mark = _objectSpread(_objectSpread({}, _this.state.mark), {}, {
133
- from: from,
134
- to: to
135
- });
136
-
137
- if (middle) {
138
- mark = _objectSpread(_objectSpread({}, mark), {}, {
139
- middle: middle
140
- });
141
- }
142
-
143
- _this.setState({
144
- mark: mark
145
- });
146
- });
147
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeMarkProps", function (_ref2) {
148
- var from = _ref2.from,
149
- to = _ref2.to,
150
- middle = _ref2.middle;
151
- var _this$props2 = _this.props,
152
- onChange = _this$props2.onChange,
153
- mark = _this$props2.mark;
154
-
155
- var update = _objectSpread(_objectSpread({}, mark), _this.state.mark);
156
-
157
- if (from) {
158
- update = _objectSpread(_objectSpread({}, update), {}, {
159
- from: from
160
- });
161
- }
162
-
163
- if (to) {
164
- update = _objectSpread(_objectSpread({}, update), {}, {
165
- to: to
166
- });
167
- }
168
-
169
- if (middle) {
170
- update = _objectSpread(_objectSpread({}, update), {}, {
171
- middle: middle
172
- });
173
- }
174
-
175
- if (!(0, _isEqual["default"])(mark, update)) {
176
- onChange(mark, update);
177
- }
178
- });
179
- _this.state = {};
180
- return _this;
181
- }
182
-
183
- (0, _createClass2["default"])(LineToolComponent, [{
184
- key: "render",
185
- value: function render() {
186
- var _this$props3 = this.props,
187
- graphProps = _this$props3.graphProps,
188
- onClick = _this$props3.onClick,
189
- labelNode = _this$props3.labelNode,
190
- labelModeEnabled = _this$props3.labelModeEnabled,
191
- coordinatesOnHover = _this$props3.coordinatesOnHover;
192
- var mark = this.state.mark ? this.state.mark : this.props.mark;
193
- var from = (0, _cloneDeep["default"])(mark.from);
194
- var to = (0, _cloneDeep["default"])(mark.to);
195
- var middle = (0, _cloneDeep["default"])(mark.middle); // SET DISABLED
196
- // if it's a background mark, we need to force disable it
197
-
198
- if (from && mark.isBackground) {
199
- from.disabled = true;
200
- }
201
-
202
- if (to && mark.isBackground) {
203
- to.disabled = true;
204
- }
205
-
206
- if (middle && mark.isBackground) {
207
- middle.disabled = true;
208
- }
209
-
210
- return /*#__PURE__*/_react["default"].createElement(Component, {
211
- disabled: mark.disabled,
212
- coordinatesOnHover: coordinatesOnHover,
213
- correctness: mark.correctness,
214
- from: from,
215
- to: to,
216
- middle: middle,
217
- graphProps: graphProps,
218
- onChange: this.changeMark,
219
- changeMarkProps: this.changeMarkProps,
220
- onClick: onClick,
221
- onDragStart: this.startDrag,
222
- onDragStop: this.stopDrag,
223
- labelNode: labelNode,
224
- labelModeEnabled: labelModeEnabled
225
- });
226
- }
227
- }]);
228
- return LineToolComponent;
229
- }(_react["default"].Component), (0, _defineProperty2["default"])(_class, "propTypes", _objectSpread(_objectSpread({}, _plot.types.ToolPropTypeFields), {}, {
230
- graphProps: _plot.types.GraphPropsType.isRequired
231
- })), _class;
232
- };
233
-
234
- exports.lineToolComponent = lineToolComponent;
235
-
236
- var dragOpts = function dragOpts() {
237
- return {
238
- bounds: function bounds(props, _ref3) {
239
- var domain = _ref3.domain,
240
- range = _ref3.range;
241
-
242
- var area = _plot.utils.lineToArea(props.from, props.to);
243
-
244
- return _plot.utils.bounds(area, domain, range);
245
- },
246
- anchorPoint: function anchorPoint(props) {
247
- var from = props.from;
248
- return from;
249
- },
250
- fromDelta: function fromDelta(props, delta) {
251
- var from = props.from,
252
- to = props.to;
253
- return {
254
- from: _plot.utils.point(from).add(_plot.utils.point(delta)),
255
- to: _plot.utils.point(to).add(_plot.utils.point(delta))
256
- };
257
- }
258
- };
259
- };
260
-
261
- var lineBase = function lineBase(Comp, opts) {
262
- var DraggableComp = (0, _plot.gridDraggable)(dragOpts())(Comp);
263
- var FromPoint = opts && opts.from ? opts.from : _point.BasePoint;
264
- var ToPoint = opts && opts.to ? opts.to : _point.BasePoint;
265
-
266
- var LineBase = /*#__PURE__*/function (_React$Component2) {
267
- (0, _inherits2["default"])(LineBase, _React$Component2);
268
-
269
- var _super2 = _createSuper(LineBase);
270
-
271
- function LineBase() {
272
- var _this2;
273
-
274
- (0, _classCallCheck2["default"])(this, LineBase);
275
-
276
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
277
- args[_key] = arguments[_key];
278
- }
279
-
280
- _this2 = _super2.call.apply(_super2, [this].concat(args));
281
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "onChangePoint", function (point) {
282
- var _this2$props = _this2.props,
283
- middle = _this2$props.middle,
284
- onChange = _this2$props.onChange;
285
- var from = point.from,
286
- to = point.to; // because point.from.label and point.to.label can be different
287
-
288
- if (!(0, _utils.equalPoints)(from, to)) {
289
- if (middle) {
290
- point.middle = _objectSpread(_objectSpread({}, middle), (0, _utils.getMiddleOfTwoPoints)(from, to));
291
- }
292
-
293
- onChange(point);
294
- }
295
- });
296
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "dragComp", function (_ref4) {
297
- var draggedFrom = _ref4.from,
298
- draggedTo = _ref4.to;
299
- var _this2$props2 = _this2.props,
300
- from = _this2$props2.from,
301
- to = _this2$props2.to,
302
- onChange = _this2$props2.onChange,
303
- middle = _this2$props2.middle;
304
-
305
- if (from.label) {
306
- draggedFrom.label = from.label;
307
- }
308
-
309
- if (to.label) {
310
- draggedTo.label = to.label;
311
- }
312
-
313
- var updated = {
314
- from: draggedFrom,
315
- to: draggedTo
316
- };
317
-
318
- if (middle) {
319
- updated.middle = _objectSpread(_objectSpread({}, middle), (0, _utils.getMiddleOfTwoPoints)(draggedFrom, draggedTo));
320
- }
321
-
322
- onChange(updated);
323
- });
324
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "dragFrom", function (draggedFrom) {
325
- var _this2$props3 = _this2.props,
326
- from = _this2$props3.from,
327
- to = _this2$props3.to;
328
-
329
- if (from.label) {
330
- draggedFrom.label = from.label;
331
- }
332
-
333
- if (!(0, _utils.equalPoints)(draggedFrom, to)) {
334
- _this2.onChangePoint({
335
- from: draggedFrom,
336
- to: to
337
- });
338
- }
339
- });
340
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "dragTo", function (draggedTo) {
341
- var _this2$props4 = _this2.props,
342
- from = _this2$props4.from,
343
- to = _this2$props4.to;
344
-
345
- if (to.label) {
346
- draggedTo.label = to.label;
347
- }
348
-
349
- if (!(0, _utils.equalPoints)(from, draggedTo)) {
350
- _this2.onChangePoint({
351
- from: from,
352
- to: draggedTo
353
- });
354
- }
355
- });
356
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "labelChange", function (point, type) {
357
- var changeMarkProps = _this2.props.changeMarkProps;
358
-
359
- var update = _objectSpread({}, point);
360
-
361
- if (!point.label || (0, _isEmpty["default"])(point.label)) {
362
- delete update.label;
363
- }
364
-
365
- changeMarkProps((0, _defineProperty2["default"])({}, type, update));
366
- });
367
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "clickPoint", function (point, type) {
368
- var _this2$props5 = _this2.props,
369
- changeMarkProps = _this2$props5.changeMarkProps,
370
- from = _this2$props5.from,
371
- to = _this2$props5.to;
372
-
373
- if (type === 'middle' && !point && from && to) {
374
- point = _objectSpread(_objectSpread({}, point), (0, _utils.getMiddleOfTwoPoints)(from, to));
375
- }
376
-
377
- changeMarkProps((0, _defineProperty2["default"])({
378
- from: from,
379
- to: to
380
- }, type, _objectSpread({
381
- label: ''
382
- }, point)));
383
-
384
- if (_this2.input[type]) {
385
- _this2.input[type].focus();
386
- }
387
- });
388
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "input", {});
389
- return _this2;
390
- }
391
-
392
- (0, _createClass2["default"])(LineBase, [{
393
- key: "render",
394
- value: function render() {
395
- var _this3 = this;
396
-
397
- var _this$props4 = this.props,
398
- coordinatesOnHover = _this$props4.coordinatesOnHover,
399
- graphProps = _this$props4.graphProps,
400
- onDragStart = _this$props4.onDragStart,
401
- onDragStop = _this$props4.onDragStop,
402
- from = _this$props4.from,
403
- to = _this$props4.to,
404
- middle = _this$props4.middle,
405
- disabled = _this$props4.disabled,
406
- correctness = _this$props4.correctness,
407
- onClick = _this$props4.onClick,
408
- labelNode = _this$props4.labelNode,
409
- labelModeEnabled = _this$props4.labelModeEnabled;
410
- var common = {
411
- graphProps: graphProps,
412
- onDragStart: onDragStart,
413
- onDragStop: onDragStop,
414
- disabled: disabled,
415
- correctness: correctness,
416
- onClick: onClick
417
- };
418
- var angle = to ? _plot.trig.toDegrees(_plot.trig.angle(from, to)) : 0;
419
- var fromLabelNode = null;
420
- var toLabelNode = null;
421
- var lineLabelNode = null;
422
-
423
- if (labelNode) {
424
- if (from && from.hasOwnProperty('label')) {
425
- fromLabelNode = /*#__PURE__*/_reactDom["default"].createPortal( /*#__PURE__*/_react["default"].createElement(_markLabel["default"], {
426
- inputRef: function inputRef(r) {
427
- return _this3.input.from = r;
428
- },
429
- disabled: !labelModeEnabled,
430
- mark: from,
431
- graphProps: graphProps,
432
- onChange: function onChange(label) {
433
- return _this3.labelChange(_objectSpread(_objectSpread({}, from), {}, {
434
- label: label
435
- }), 'from');
436
- }
437
- }), labelNode);
438
- }
439
-
440
- if (to && to.hasOwnProperty('label')) {
441
- toLabelNode = /*#__PURE__*/_reactDom["default"].createPortal( /*#__PURE__*/_react["default"].createElement(_markLabel["default"], {
442
- inputRef: function inputRef(r) {
443
- return _this3.input.to = r;
444
- },
445
- disabled: !labelModeEnabled,
446
- mark: to,
447
- graphProps: graphProps,
448
- onChange: function onChange(label) {
449
- return _this3.labelChange(_objectSpread(_objectSpread({}, to), {}, {
450
- label: label
451
- }), 'to');
452
- }
453
- }), labelNode);
454
- }
455
-
456
- if (middle && middle.hasOwnProperty('label')) {
457
- lineLabelNode = /*#__PURE__*/_reactDom["default"].createPortal( /*#__PURE__*/_react["default"].createElement(_markLabel["default"], {
458
- inputRef: function inputRef(r) {
459
- return _this3.input.middle = r;
460
- },
461
- disabled: !labelModeEnabled,
462
- mark: middle,
463
- graphProps: graphProps,
464
- onChange: function onChange(label) {
465
- return _this3.labelChange(_objectSpread(_objectSpread({}, middle), {}, {
466
- label: label
467
- }), 'middle');
468
- }
469
- }), labelNode);
470
- }
471
- }
472
-
473
- return /*#__PURE__*/_react["default"].createElement("g", null, to && /*#__PURE__*/_react["default"].createElement(DraggableComp, (0, _extends2["default"])({
474
- from: from,
475
- to: to,
476
- middle: middle,
477
- onDrag: this.dragComp
478
- }, common, {
479
- onClick: labelModeEnabled ? function () {
480
- return _this3.clickPoint(middle, 'middle');
481
- } : common.onClick
482
- })), lineLabelNode, /*#__PURE__*/_react["default"].createElement(FromPoint, (0, _extends2["default"])({
483
- x: from.x,
484
- y: from.y,
485
- labelNode: labelNode,
486
- coordinatesOnHover: coordinatesOnHover,
487
- onDrag: this.dragFrom
488
- }, common, {
489
- onClick: labelModeEnabled ? function () {
490
- return _this3.clickPoint(from, 'from');
491
- } : common.onClick
492
- })), fromLabelNode, to && /*#__PURE__*/_react["default"].createElement(ToPoint, (0, _extends2["default"])({
493
- x: to.x,
494
- y: to.y,
495
- angle: angle //angle + 45}
496
- ,
497
- labelNode: labelNode,
498
- coordinatesOnHover: coordinatesOnHover,
499
- onDrag: this.dragTo
500
- }, common, {
501
- onClick: labelModeEnabled ? function () {
502
- return _this3.clickPoint(to, 'to');
503
- } : common.onClick
504
- })), toLabelNode);
505
- }
506
- }]);
507
- return LineBase;
508
- }(_react["default"].Component);
509
-
510
- (0, _defineProperty2["default"])(LineBase, "propTypes", {
511
- coordinatesOnHover: _propTypes["default"].bool,
512
- graphProps: _plot.types.GraphPropsType,
513
- from: _plot.types.PointType,
514
- to: _plot.types.PointType,
515
- middle: _plot.types.PointType,
516
- onChange: _propTypes["default"].func,
517
- onDragStart: _propTypes["default"].func,
518
- onDragStop: _propTypes["default"].func,
519
- onClick: _propTypes["default"].func,
520
- correctness: _propTypes["default"].string,
521
- disabled: _propTypes["default"].bool,
522
- labelNode: _propTypes["default"].object,
523
- labelModeEnabled: _propTypes["default"].bool,
524
- changeMarkProps: _propTypes["default"].func
525
- });
526
- return LineBase;
527
- };
528
-
529
- exports.lineBase = lineBase;
530
- var styles = {
531
- line: function line() {
532
- return {
533
- fill: 'transparent',
534
- stroke: _renderUi.color.primaryLight(),
535
- strokeWidth: 3,
536
- transition: 'stroke 200ms ease-in, stroke-width 200ms ease-in',
537
- '&:hover': {
538
- strokeWidth: 6,
539
- stroke: _renderUi.color.primaryDark()
540
- }
541
- };
542
- },
543
- arrow: function arrow() {
544
- return {
545
- fill: _renderUi.color.secondary()
546
- };
547
- },
548
- disabledArrow: function disabledArrow() {
549
- return _objectSpread({}, (0, _styles.disabled)());
550
- },
551
- disabled: function disabled() {
552
- return _objectSpread(_objectSpread({}, (0, _styles.disabled)('stroke')), {}, {
553
- strokeWidth: 2
554
- });
555
- },
556
- correct: function correct(theme, key) {
557
- return _objectSpread({}, (0, _styles.correct)(key));
558
- },
559
- incorrect: function incorrect(theme, key) {
560
- return _objectSpread({}, (0, _styles.incorrect)(key));
561
- },
562
- missing: function missing(theme, key) {
563
- return _objectSpread({}, (0, _styles.missing)(key));
564
- }
565
- };
566
- exports.styles = styles;
567
- //# sourceMappingURL=index.js.map