@pie-lib/graphing 4.0.23 → 4.0.24-beta.10

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 (69) hide show
  1. package/CHANGELOG.md +0 -92
  2. package/lib/__tests__/bg.test.js +282 -0
  3. package/lib/__tests__/coordinates-label.test.js +276 -0
  4. package/lib/__tests__/graph-with-controls.test.js +275 -0
  5. package/lib/__tests__/graph.test.js +927 -0
  6. package/lib/__tests__/grid-setup.test.js +729 -0
  7. package/lib/__tests__/grid.test.js +29 -0
  8. package/lib/__tests__/key-legend.test.js +321 -0
  9. package/lib/__tests__/label-svg-icon.test.js +373 -0
  10. package/lib/__tests__/labels.test.js +61 -0
  11. package/lib/__tests__/mark-label.test.js +133 -0
  12. package/lib/__tests__/toggle-bar.test.js +197 -0
  13. package/lib/__tests__/tool-menu.test.js +151 -0
  14. package/lib/__tests__/undo-redo.test.js +31 -0
  15. package/lib/__tests__/use-debounce.test.js +24 -0
  16. package/lib/__tests__/utils.js +70 -0
  17. package/lib/__tests__/utils.test.js +123 -0
  18. package/lib/axis/__tests__/arrow.test.js +60 -0
  19. package/lib/axis/__tests__/axes.test.js +195 -0
  20. package/lib/container/__tests__/actions.test.js +108 -0
  21. package/lib/container/__tests__/index.test.js +503 -0
  22. package/lib/container/__tests__/marks.test.js +259 -0
  23. package/lib/container/__tests__/middleware.test.js +244 -0
  24. package/lib/container/__tests__/reducer.test.js +450 -0
  25. package/lib/mark-label.js +7 -197
  26. package/lib/mark-label.js.map +1 -1
  27. package/lib/tools/absolute/__tests__/component.test.js +65 -0
  28. package/lib/tools/circle/__tests__/bg-circle.test.js +33 -0
  29. package/lib/tools/circle/__tests__/component.test.js +615 -0
  30. package/lib/tools/circle/__tests__/index.test.js +576 -0
  31. package/lib/tools/circle/component.js +3 -34
  32. package/lib/tools/circle/component.js.map +1 -1
  33. package/lib/tools/exponential/__tests__/component.test.js +64 -0
  34. package/lib/tools/exponential/__tests__/index.test.js +828 -0
  35. package/lib/tools/line/__tests__/component.test.js +45 -0
  36. package/lib/tools/parabola/__tests__/component.test.js +64 -0
  37. package/lib/tools/parabola/__tests__/index.test.js +564 -0
  38. package/lib/tools/point/__tests__/component.test.js +434 -0
  39. package/lib/tools/point/__tests__/index.test.js +262 -0
  40. package/lib/tools/point/component.js +8 -29
  41. package/lib/tools/point/component.js.map +1 -1
  42. package/lib/tools/polygon/__tests__/component.test.js +485 -0
  43. package/lib/tools/polygon/__tests__/index.test.js +303 -0
  44. package/lib/tools/polygon/__tests__/line.test.js +50 -0
  45. package/lib/tools/polygon/__tests__/polygon.test.js +85 -0
  46. package/lib/tools/polygon/component.js +6 -31
  47. package/lib/tools/polygon/component.js.map +1 -1
  48. package/lib/tools/ray/__tests__/component.test.js +35 -0
  49. package/lib/tools/segment/__tests__/component.test.js +35 -0
  50. package/lib/tools/shared/__tests__/arrow-head.test.js +45 -0
  51. package/lib/tools/shared/line/__tests__/index.test.js +124 -0
  52. package/lib/tools/shared/line/__tests__/line-path.test.js +62 -0
  53. package/lib/tools/shared/line/__tests__/with-root-edge.test.js +90 -0
  54. package/lib/tools/shared/line/index.js +3 -34
  55. package/lib/tools/shared/line/index.js.map +1 -1
  56. package/lib/tools/shared/point/__tests__/arrow-point.test.js +127 -0
  57. package/lib/tools/shared/point/__tests__/base-point.test.js +122 -0
  58. package/lib/tools/sine/__tests__/component.test.js +72 -0
  59. package/lib/tools/vector/__tests__/component.test.js +32 -0
  60. package/package.json +17 -17
  61. package/src/__tests__/graph.test.jsx +1 -76
  62. package/src/__tests__/mark-label.test.jsx +1 -375
  63. package/src/mark-label.jsx +8 -209
  64. package/src/tools/circle/component.jsx +3 -26
  65. package/src/tools/point/__tests__/component.test.jsx +1 -127
  66. package/src/tools/point/component.jsx +8 -21
  67. package/src/tools/polygon/component.jsx +6 -24
  68. package/src/tools/shared/line/index.jsx +3 -26
  69. package/LICENSE.md +0 -5
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
5
+ var _testUtils = require("@pie-lib/test-utils");
6
+ var _react = _interopRequireDefault(require("react"));
7
+ var _withRootEdge = require("../with-root-edge");
8
+ var _utils = require("../../../../__tests__/utils");
9
+ var _plot = require("@pie-lib/plot");
10
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
11
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
12
+ var xy = _plot.utils.xy;
13
+ jest.mock('../index', function () {
14
+ var out = {
15
+ lineBase: jest.fn().mockReturnValue(function () {
16
+ return /*#__PURE__*/_react["default"].createElement("div", null);
17
+ }),
18
+ lineToolComponent: jest.fn().mockReturnValue(function () {
19
+ return /*#__PURE__*/_react["default"].createElement("div", null);
20
+ })
21
+ };
22
+ return out;
23
+ });
24
+ describe('rootEdgeToToFromWrapper', function () {
25
+ var Comp;
26
+ var onChange = jest.fn();
27
+ beforeEach(function () {
28
+ Comp = (0, _withRootEdge.rootEdgeToFromToWrapper)(function () {
29
+ return /*#__PURE__*/_react["default"].createElement("div", null);
30
+ });
31
+ });
32
+ var renderComponent = function renderComponent(extras) {
33
+ var defaults = {
34
+ mark: {
35
+ root: xy(1, 1),
36
+ edge: xy(2, 2)
37
+ },
38
+ onChange: onChange
39
+ };
40
+ var props = _objectSpread(_objectSpread({}, defaults), extras);
41
+ return (0, _testUtils.render)(/*#__PURE__*/_react["default"].createElement(Comp, props));
42
+ };
43
+ it('renders without crashing', function () {
44
+ var _renderComponent = renderComponent(),
45
+ container = _renderComponent.container;
46
+ expect(container.firstChild).toBeInTheDocument();
47
+ });
48
+ it('passes mark as from/to', function () {
49
+ var _renderComponent2 = renderComponent(),
50
+ container = _renderComponent2.container;
51
+ // Component transforms root/edge to from/to internally
52
+ expect(container.firstChild).toBeInTheDocument();
53
+ });
54
+ it('handles onChange with root/edge transformation', function () {
55
+ renderComponent();
56
+ // onChange transformation is tested through component behavior
57
+ expect(onChange).toBeDefined();
58
+ });
59
+ });
60
+ describe('rootEdgeComponent', function () {
61
+ var onChange = jest.fn();
62
+ var Comp;
63
+ var mark;
64
+ beforeEach(function () {
65
+ mark = {
66
+ root: xy(0, 0),
67
+ edge: xy(1, 1)
68
+ };
69
+ Comp = (0, _withRootEdge.rootEdgeComponent)(function () {
70
+ return /*#__PURE__*/_react["default"].createElement("text", null);
71
+ });
72
+ });
73
+ var renderComponent = function renderComponent(extras) {
74
+ var defaults = {
75
+ mark: mark,
76
+ graphProps: (0, _utils.graphProps)(),
77
+ onChange: onChange
78
+ };
79
+ var props = _objectSpread(_objectSpread({}, defaults), extras);
80
+ return (0, _testUtils.render)(/*#__PURE__*/_react["default"].createElement(Comp, props));
81
+ };
82
+ describe('rendering', function () {
83
+ it('renders without crashing', function () {
84
+ var _renderComponent3 = renderComponent(),
85
+ container = _renderComponent3.container;
86
+ expect(container.firstChild).toBeInTheDocument();
87
+ });
88
+ });
89
+ });
90
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdGVzdFV0aWxzIiwicmVxdWlyZSIsIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfd2l0aFJvb3RFZGdlIiwiX3V0aWxzIiwiX3Bsb3QiLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsInh5IiwidXRpbHMiLCJqZXN0IiwibW9jayIsIm91dCIsImxpbmVCYXNlIiwiZm4iLCJtb2NrUmV0dXJuVmFsdWUiLCJjcmVhdGVFbGVtZW50IiwibGluZVRvb2xDb21wb25lbnQiLCJkZXNjcmliZSIsIkNvbXAiLCJvbkNoYW5nZSIsImJlZm9yZUVhY2giLCJyb290RWRnZVRvRnJvbVRvV3JhcHBlciIsInJlbmRlckNvbXBvbmVudCIsImV4dHJhcyIsImRlZmF1bHRzIiwibWFyayIsInJvb3QiLCJlZGdlIiwicHJvcHMiLCJyZW5kZXIiLCJpdCIsIl9yZW5kZXJDb21wb25lbnQiLCJjb250YWluZXIiLCJleHBlY3QiLCJmaXJzdENoaWxkIiwidG9CZUluVGhlRG9jdW1lbnQiLCJfcmVuZGVyQ29tcG9uZW50MiIsInRvQmVEZWZpbmVkIiwicm9vdEVkZ2VDb21wb25lbnQiLCJncmFwaFByb3BzIiwiZ2V0R3JhcGhQcm9wcyIsIl9yZW5kZXJDb21wb25lbnQzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3Rvb2xzL3NoYXJlZC9saW5lL19fdGVzdHNfXy93aXRoLXJvb3QtZWRnZS50ZXN0LmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIgfSBmcm9tICdAcGllLWxpYi90ZXN0LXV0aWxzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyByb290RWRnZUNvbXBvbmVudCwgcm9vdEVkZ2VUb0Zyb21Ub1dyYXBwZXIgfSBmcm9tICcuLi93aXRoLXJvb3QtZWRnZSc7XG5pbXBvcnQgeyBncmFwaFByb3BzIGFzIGdldEdyYXBoUHJvcHMgfSBmcm9tICcuLi8uLi8uLi8uLi9fX3Rlc3RzX18vdXRpbHMnO1xuaW1wb3J0IHsgdXRpbHMgfSBmcm9tICdAcGllLWxpYi9wbG90JztcblxuY29uc3QgeyB4eSB9ID0gdXRpbHM7XG5qZXN0Lm1vY2soJy4uL2luZGV4JywgKCkgPT4ge1xuICBjb25zdCBvdXQgPSB7XG4gICAgbGluZUJhc2U6IGplc3QuZm4oKS5tb2NrUmV0dXJuVmFsdWUoKCkgPT4gPGRpdiAvPiksXG4gICAgbGluZVRvb2xDb21wb25lbnQ6IGplc3QuZm4oKS5tb2NrUmV0dXJuVmFsdWUoKCkgPT4gPGRpdiAvPiksXG4gIH07XG4gIHJldHVybiBvdXQ7XG59KTtcblxuZGVzY3JpYmUoJ3Jvb3RFZGdlVG9Ub0Zyb21XcmFwcGVyJywgKCkgPT4ge1xuICBsZXQgQ29tcDtcbiAgbGV0IG9uQ2hhbmdlID0gamVzdC5mbigpO1xuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBDb21wID0gcm9vdEVkZ2VUb0Zyb21Ub1dyYXBwZXIoKCkgPT4gPGRpdiAvPik7XG4gIH0pO1xuICBjb25zdCByZW5kZXJDb21wb25lbnQgPSAoZXh0cmFzKSA9PiB7XG4gICAgY29uc3QgZGVmYXVsdHMgPSB7XG4gICAgICBtYXJrOiB7IHJvb3Q6IHh5KDEsIDEpLCBlZGdlOiB4eSgyLCAyKSB9LFxuICAgICAgb25DaGFuZ2UsXG4gICAgfTtcbiAgICBjb25zdCBwcm9wcyA9IHsgLi4uZGVmYXVsdHMsIC4uLmV4dHJhcyB9O1xuICAgIHJldHVybiByZW5kZXIoPENvbXAgey4uLnByb3BzfSAvPik7XG4gIH07XG5cbiAgaXQoJ3JlbmRlcnMgd2l0aG91dCBjcmFzaGluZycsICgpID0+IHtcbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyQ29tcG9uZW50KCk7XG4gICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICB9KTtcblxuICBpdCgncGFzc2VzIG1hcmsgYXMgZnJvbS90bycsICgpID0+IHtcbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyQ29tcG9uZW50KCk7XG4gICAgLy8gQ29tcG9uZW50IHRyYW5zZm9ybXMgcm9vdC9lZGdlIHRvIGZyb20vdG8gaW50ZXJuYWxseVxuICAgIGV4cGVjdChjb250YWluZXIuZmlyc3RDaGlsZCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG5cbiAgaXQoJ2hhbmRsZXMgb25DaGFuZ2Ugd2l0aCByb290L2VkZ2UgdHJhbnNmb3JtYXRpb24nLCAoKSA9PiB7XG4gICAgcmVuZGVyQ29tcG9uZW50KCk7XG4gICAgLy8gb25DaGFuZ2UgdHJhbnNmb3JtYXRpb24gaXMgdGVzdGVkIHRocm91Z2ggY29tcG9uZW50IGJlaGF2aW9yXG4gICAgZXhwZWN0KG9uQ2hhbmdlKS50b0JlRGVmaW5lZCgpO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZSgncm9vdEVkZ2VDb21wb25lbnQnLCAoKSA9PiB7XG4gIGxldCBvbkNoYW5nZSA9IGplc3QuZm4oKTtcbiAgbGV0IENvbXA7XG4gIGxldCBtYXJrO1xuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBtYXJrID0geyByb290OiB4eSgwLCAwKSwgZWRnZTogeHkoMSwgMSkgfTtcbiAgICBDb21wID0gcm9vdEVkZ2VDb21wb25lbnQoKCkgPT4gPHRleHQgLz4pO1xuICB9KTtcbiAgY29uc3QgcmVuZGVyQ29tcG9uZW50ID0gKGV4dHJhcykgPT4ge1xuICAgIGNvbnN0IGRlZmF1bHRzID0ge1xuICAgICAgbWFyayxcbiAgICAgIGdyYXBoUHJvcHM6IGdldEdyYXBoUHJvcHMoKSxcbiAgICAgIG9uQ2hhbmdlLFxuICAgIH07XG5cbiAgICBjb25zdCBwcm9wcyA9IHsgLi4uZGVmYXVsdHMsIC4uLmV4dHJhcyB9O1xuICAgIHJldHVybiByZW5kZXIoPENvbXAgey4uLnByb3BzfSAvPik7XG4gIH07XG4gIGRlc2NyaWJlKCdyZW5kZXJpbmcnLCAoKSA9PiB7XG4gICAgaXQoJ3JlbmRlcnMgd2l0aG91dCBjcmFzaGluZycsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJDb21wb25lbnQoKTtcbiAgICAgIGV4cGVjdChjb250YWluZXIuZmlyc3RDaGlsZCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLElBQUFBLFVBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLGFBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLE1BQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLEtBQUEsR0FBQUwsT0FBQTtBQUFzQyxTQUFBTSxRQUFBQyxDQUFBLEVBQUFDLENBQUEsUUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLElBQUEsQ0FBQUosQ0FBQSxPQUFBRyxNQUFBLENBQUFFLHFCQUFBLFFBQUFDLENBQUEsR0FBQUgsTUFBQSxDQUFBRSxxQkFBQSxDQUFBTCxDQUFBLEdBQUFDLENBQUEsS0FBQUssQ0FBQSxHQUFBQSxDQUFBLENBQUFDLE1BQUEsV0FBQU4sQ0FBQSxXQUFBRSxNQUFBLENBQUFLLHdCQUFBLENBQUFSLENBQUEsRUFBQUMsQ0FBQSxFQUFBUSxVQUFBLE9BQUFQLENBQUEsQ0FBQVEsSUFBQSxDQUFBQyxLQUFBLENBQUFULENBQUEsRUFBQUksQ0FBQSxZQUFBSixDQUFBO0FBQUEsU0FBQVUsY0FBQVosQ0FBQSxhQUFBQyxDQUFBLE1BQUFBLENBQUEsR0FBQVksU0FBQSxDQUFBQyxNQUFBLEVBQUFiLENBQUEsVUFB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
@@ -255,10 +255,6 @@ var lineBase = exports.lineBase = function lineBase(Comp, opts) {
255
255
  args[_key] = arguments[_key];
256
256
  }
257
257
  _this2 = _callSuper(this, LineBase, [].concat(args));
258
- // which of from/to/middle has its label edited, null if none
259
- (0, _defineProperty2["default"])(_this2, "state", {
260
- editingLabel: null
261
- });
262
258
  (0, _defineProperty2["default"])(_this2, "onChangePoint", function (point) {
263
259
  var _this2$props = _this2.props,
264
260
  middle = _this2$props.middle,
@@ -333,13 +329,6 @@ var lineBase = exports.lineBase = function lineBase(Comp, opts) {
333
329
  }
334
330
  changeMarkProps((0, _defineProperty2["default"])({}, type, update));
335
331
  });
336
- (0, _defineProperty2["default"])(_this2, "stopEditingLabel", function () {
337
- if (_this2.state.editingLabel !== null) {
338
- _this2.setState({
339
- editingLabel: null
340
- });
341
- }
342
- });
343
332
  (0, _defineProperty2["default"])(_this2, "clickPoint", function (point, type, data) {
344
333
  var _this2$props5 = _this2.props,
345
334
  changeMarkProps = _this2$props5.changeMarkProps,
@@ -372,12 +361,9 @@ var lineBase = exports.lineBase = function lineBase(Comp, opts) {
372
361
  }, type, _objectSpread({
373
362
  label: ''
374
363
  }, point)));
375
-
376
- // MarkLabel focuses itself once it is rendered - it also holds on to the focus if the model
377
- // that comes back from the host (api save) remounts the input.
378
- _this2.setState({
379
- editingLabel: type
380
- });
364
+ if (_this2.input[type]) {
365
+ _this2.input[type].focus();
366
+ }
381
367
  });
382
368
  // IMPORTANT, do not remove
383
369
  (0, _defineProperty2["default"])(_this2, "input", {});
@@ -385,16 +371,6 @@ var lineBase = exports.lineBase = function lineBase(Comp, opts) {
385
371
  }
386
372
  (0, _inherits2["default"])(LineBase, _React$Component2);
387
373
  return (0, _createClass2["default"])(LineBase, [{
388
- key: "componentDidUpdate",
389
- value: function componentDidUpdate(prevProps) {
390
- // leaving label mode closes any label that is still being edited
391
- if (prevProps.labelModeEnabled && !this.props.labelModeEnabled && this.state.editingLabel !== null) {
392
- this.setState({
393
- editingLabel: null
394
- });
395
- }
396
- }
397
- }, {
398
374
  key: "render",
399
375
  value: function render() {
400
376
  var _this3 = this;
@@ -411,7 +387,6 @@ var lineBase = exports.lineBase = function lineBase(Comp, opts) {
411
387
  onClick = _this$props4.onClick,
412
388
  labelNode = _this$props4.labelNode,
413
389
  labelModeEnabled = _this$props4.labelModeEnabled;
414
- var editingLabel = this.state.editingLabel;
415
390
  var common = {
416
391
  graphProps: graphProps,
417
392
  onDragStart: onDragStart,
@@ -430,11 +405,9 @@ var lineBase = exports.lineBase = function lineBase(Comp, opts) {
430
405
  inputRef: function inputRef(r) {
431
406
  return _this3.input.from = r;
432
407
  },
433
- autoFocus: editingLabel === 'from',
434
408
  disabled: !labelModeEnabled,
435
409
  mark: from,
436
410
  graphProps: graphProps,
437
- onBlur: this.stopEditingLabel,
438
411
  onChange: function onChange(label) {
439
412
  return _this3.labelChange(_objectSpread(_objectSpread({}, from), {}, {
440
413
  label: label
@@ -447,11 +420,9 @@ var lineBase = exports.lineBase = function lineBase(Comp, opts) {
447
420
  inputRef: function inputRef(r) {
448
421
  return _this3.input.to = r;
449
422
  },
450
- autoFocus: editingLabel === 'to',
451
423
  disabled: !labelModeEnabled,
452
424
  mark: to,
453
425
  graphProps: graphProps,
454
- onBlur: this.stopEditingLabel,
455
426
  onChange: function onChange(label) {
456
427
  return _this3.labelChange(_objectSpread(_objectSpread({}, to), {}, {
457
428
  label: label
@@ -464,11 +435,9 @@ var lineBase = exports.lineBase = function lineBase(Comp, opts) {
464
435
  inputRef: function inputRef(r) {
465
436
  return _this3.input.middle = r;
466
437
  },
467
- autoFocus: editingLabel === 'middle',
468
438
  disabled: !labelModeEnabled,
469
439
  mark: middle,
470
440
  graphProps: graphProps,
471
- onBlur: this.stopEditingLabel,
472
441
  onChange: function onChange(label) {
473
442
  return _this3.labelChange(_objectSpread(_objectSpread({}, middle), {}, {
474
443
  label: label
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_lodashEs","_point","_plot","_propTypes","_styles","_reactDom","_markLabel","_renderUi","_utils","_styles2","_callSuper","t","o","e","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","prototype","valueOf","call","ownKeys","r","Object","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","push","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","StyledLineGroup","styled","_ref","disabled","correctness","fill","stroke","color","defaults","BLACK","strokeWidth","transition","PRIMARY_DARK","disabledSecondary","correct","incorrect","missing","strokeDasharray","lineTool","exports","type","Component","addPoint","point","mark","equalPoints","root","building","from","to","lineToolComponent","_LineToolComponent","_React$Component","LineToolComponent","props","_this","_classCallCheck2","onDragStart","setState","_this$props","onChange","onDragStop","update","state","undefined","shouldNotChange","sameAxes","y","isEqual","_ref2","middle","_ref3","_this$props2","_inherits2","_createClass2","key","value","render","_this$props3","graphProps","onClick","labelNode","labelModeEnabled","coordinatesOnHover","limitLabeling","cloneDeep","isBackground","createElement","changeMark","changeMarkProps","startDrag","stopDrag","React","types","ToolPropTypeFields","GraphPropsType","isRequired","PropTypes","bool","func","PointType","dragOpts","bounds","_ref4","domain","range","area","utils","lineToArea","anchorPoint","fromDelta","delta","add","lineBase","Comp","opts","DraggableComp","gridDraggable","FromPoint","BasePoint","ToPoint","LineBase","_React$Component2","_this2","_len","args","Array","_key","concat","editingLabel","_this2$props","getMiddleOfTwoPoints","_ref5","draggedFrom","draggedTo","_this2$props2","label","updated","_this2$props3","onChangePoint","_this2$props4","isEmpty","data","_this2$props5","stripEmptyLabel","componentDidUpdate","prevProps","_this3","_this$props4","common","angle","trig","toDegrees","fromLabelNode","toLabelNode","lineLabelNode","hasOwnProperty","ReactDOM","createPortal","inputRef","input","autoFocus","onBlur","stopEditingLabel","labelChange","_extends2","onDrag","dragComp","clickPoint","x","dragFrom","dragTo","string","object","styles","line","arrow","disabledArrow","theme"],"sources":["../../../../src/tools/shared/line/index.jsx"],"sourcesContent":["import React from 'react';\nimport { cloneDeep, isEmpty, isEqual } from 'lodash-es';\nimport { BasePoint } from '../point';\nimport { gridDraggable, trig, types, utils } from '@pie-lib/plot';\nimport PropTypes from 'prop-types';\nimport { correct, disabled, disabledSecondary, incorrect, missing } from '../styles';\nimport ReactDOM from 'react-dom';\nimport MarkLabel from '../../../mark-label';\nimport { color } from '@pie-lib/render-ui';\nimport { equalPoints, getMiddleOfTwoPoints, sameAxes, stripEmptyLabel } from '../../../utils';\nimport { styled } from '@mui/material/styles';\n\nconst StyledLineGroup = styled('g')(({ disabled, correctness }) => ({\n '& line:not(.hit-area)': {\n fill: 'transparent',\n stroke: color.defaults.BLACK,\n strokeWidth: 3,\n transition: 'stroke 200ms ease-in, stroke-width 200ms ease-in',\n '&:hover': {\n strokeWidth: 6,\n stroke: color.defaults.PRIMARY_DARK,\n },\n },\n ...(disabled && {\n '& line:not(.hit-area)': {\n ...disabledSecondary('stroke'),\n strokeWidth: 2,\n },\n }),\n ...(correctness === 'correct' && {\n '& line:not(.hit-area)': {\n ...correct('stroke'),\n },\n }),\n ...(correctness === 'incorrect' && {\n '& line:not(.hit-area)': {\n ...incorrect('stroke'),\n },\n }),\n ...(correctness === 'missing' && {\n '& line:not(.hit-area)': {\n ...missing('stroke'),\n strokeWidth: 1,\n strokeDasharray: '4 3',\n },\n }),\n}));\n\nexport const lineTool = (type, Component) => () => ({\n type,\n Component,\n addPoint: (point, mark) => {\n if (mark && equalPoints(mark.root, point)) {\n return mark;\n }\n\n if (!mark) {\n return {\n type,\n building: true,\n from: point,\n };\n }\n\n if (equalPoints(point, mark.from)) {\n return { ...mark };\n }\n\n return { ...mark, building: false, to: point };\n },\n});\n\nexport const lineToolComponent = (Component) => {\n return class LineToolComponent extends React.Component {\n static propTypes = {\n ...types.ToolPropTypeFields,\n graphProps: types.GraphPropsType.isRequired,\n limitLabeling: PropTypes.bool,\n changeMarkProps: PropTypes.func,\n disabled: PropTypes.bool,\n from: types.PointType,\n to: types.PointType,\n labelModeEnabled: PropTypes.bool,\n onClick: PropTypes.func,\n };\n\n constructor(props) {\n super(props);\n this.state = {};\n }\n\n startDrag = () => {\n const { onDragStart } = this.props;\n this.setState({ mark: { ...this.props.mark } });\n if (onDragStart) onDragStart();\n };\n\n stopDrag = () => {\n const { onChange, mark, onDragStop } = this.props;\n const update = { ...this.state.mark };\n\n this.setState({ mark: undefined }, () => {\n const { type } = update;\n let shouldNotChange =\n type &&\n (type === 'parabola' || type === 'sine' || type === 'absolute' || type === 'exponential') &&\n sameAxes(update.from, update.to);\n if (!shouldNotChange && type && type === 'exponential' && update.from && update.to) {\n shouldNotChange = update.from.y === 0 || update.to.y === 0 || update.from.y * update.to.y < 0;\n }\n if (!isEqual(mark, update) && !shouldNotChange) {\n onChange(mark, update);\n }\n if (onDragStop) onDragStop();\n });\n };\n\n changeMark = ({ from, to, middle }) => {\n let mark = { ...this.state.mark, from, to };\n\n if (middle) {\n mark = { ...mark, middle };\n }\n\n this.setState({ mark });\n };\n\n changeMarkProps = ({ from, to, middle }) => {\n const { onChange, mark } = this.props;\n let update = { ...mark, ...this.state.mark };\n\n if (from) {\n update = { ...update, from };\n }\n\n if (to) {\n update = { ...update, to };\n }\n\n if (middle) {\n update = { ...update, middle };\n }\n\n if (!isEqual(mark, update)) {\n onChange(mark, update);\n }\n };\n\n render() {\n const { graphProps, onClick, labelNode, labelModeEnabled, coordinatesOnHover, limitLabeling } = this.props;\n const mark = this.state.mark ? this.state.mark : this.props.mark;\n\n const from = cloneDeep(mark.from);\n const to = cloneDeep(mark.to);\n const middle = cloneDeep(mark.middle);\n\n // SET DISABLED\n // if it's a background mark, we need to force disable it\n if (from && mark.isBackground) {\n from.disabled = true;\n }\n\n if (to && mark.isBackground) {\n to.disabled = true;\n }\n\n if (middle && mark.isBackground) {\n middle.disabled = true;\n }\n\n return (\n <Component\n disabled={mark.disabled}\n coordinatesOnHover={coordinatesOnHover}\n correctness={mark.correctness}\n from={from}\n to={to}\n middle={middle}\n graphProps={graphProps}\n onChange={this.changeMark}\n changeMarkProps={this.changeMarkProps}\n onClick={onClick}\n onDragStart={this.startDrag}\n onDragStop={this.stopDrag}\n labelNode={labelNode}\n labelModeEnabled={labelModeEnabled}\n limitLabeling={limitLabeling}\n />\n );\n }\n };\n};\n\nconst dragOpts = () => ({\n bounds: (props, { domain, range }) => {\n const area = utils.lineToArea(props.from, props.to);\n return utils.bounds(area, domain, range);\n },\n anchorPoint: (props) => {\n const { from } = props;\n return from;\n },\n fromDelta: (props, delta) => {\n const { from, to } = props;\n return {\n from: utils.point(from).add(utils.point(delta)),\n to: utils.point(to).add(utils.point(delta)),\n };\n },\n});\n\nexport const lineBase = (Comp, opts) => {\n const DraggableComp = gridDraggable(dragOpts())(Comp);\n\n const FromPoint = opts && opts.from ? opts.from : BasePoint;\n const ToPoint = opts && opts.to ? opts.to : BasePoint;\n\n class LineBase extends React.Component {\n static propTypes = {\n coordinatesOnHover: PropTypes.bool,\n graphProps: types.GraphPropsType,\n from: types.PointType,\n to: types.PointType,\n middle: types.PointType,\n onChange: PropTypes.func,\n onDragStart: PropTypes.func,\n onDragStop: PropTypes.func,\n onClick: PropTypes.func,\n correctness: PropTypes.string,\n disabled: PropTypes.bool,\n limitLabeling: PropTypes.bool,\n changeMarkProps: PropTypes.func,\n labelModeEnabled: PropTypes.bool,\n labelNode: PropTypes.object,\n };\n\n // which of from/to/middle has its label edited, null if none\n state = { editingLabel: null };\n\n componentDidUpdate(prevProps) {\n // leaving label mode closes any label that is still being edited\n if (prevProps.labelModeEnabled && !this.props.labelModeEnabled && this.state.editingLabel !== null) {\n this.setState({ editingLabel: null });\n }\n }\n\n onChangePoint = (point) => {\n const { middle, onChange } = this.props;\n const { from, to } = point;\n\n // because point.from.label and point.to.label can be different\n if (!equalPoints(from, to)) {\n if (middle) {\n point.middle = { ...middle, ...getMiddleOfTwoPoints(from, to) };\n }\n\n onChange(point);\n }\n };\n\n dragComp = ({ from: draggedFrom, to: draggedTo }) => {\n const { from, to, onChange, middle } = this.props;\n\n if (from.label) {\n draggedFrom.label = from.label;\n }\n\n if (to.label) {\n draggedTo.label = to.label;\n }\n\n const updated = { from: draggedFrom, to: draggedTo };\n\n if (middle) {\n updated.middle = { ...middle, ...getMiddleOfTwoPoints(draggedFrom, draggedTo) };\n }\n\n onChange(updated);\n };\n\n dragFrom = (draggedFrom) => {\n const { from, to } = this.props;\n\n if (from.label) {\n draggedFrom.label = from.label;\n }\n\n if (!equalPoints(draggedFrom, to)) {\n this.onChangePoint({ from: draggedFrom, to: to });\n }\n };\n\n dragTo = (draggedTo) => {\n const { from, to } = this.props;\n\n if (to.label) {\n draggedTo.label = to.label;\n }\n\n if (!equalPoints(from, draggedTo)) {\n this.onChangePoint({ from: from, to: draggedTo });\n }\n };\n\n labelChange = (point, type) => {\n const { changeMarkProps } = this.props;\n const update = { ...point };\n\n if (!point.label || isEmpty(point.label)) {\n delete update.label;\n }\n\n changeMarkProps({ [type]: update });\n };\n\n stopEditingLabel = () => {\n if (this.state.editingLabel !== null) {\n this.setState({ editingLabel: null });\n }\n };\n\n clickPoint = (point, type, data) => {\n const { changeMarkProps, disabled, from, to, middle, labelModeEnabled, limitLabeling, onClick } = this.props;\n\n if (!labelModeEnabled) {\n onClick(point || data);\n return;\n }\n\n if (disabled) {\n return;\n }\n\n // limit labeling the points of the line\n if (limitLabeling) {\n return;\n }\n\n if (type === 'middle' && !point && from && to) {\n point = { ...point, ...getMiddleOfTwoPoints(from, to) };\n }\n\n changeMarkProps({\n from: stripEmptyLabel(from),\n to: stripEmptyLabel(to),\n middle: stripEmptyLabel(middle),\n [type]: { label: '', ...point },\n });\n\n // MarkLabel focuses itself once it is rendered - it also holds on to the focus if the model\n // that comes back from the host (api save) remounts the input.\n this.setState({ editingLabel: type });\n };\n\n // IMPORTANT, do not remove\n input = {};\n\n render() {\n const {\n coordinatesOnHover,\n graphProps,\n onDragStart,\n onDragStop,\n from,\n to,\n middle,\n disabled,\n correctness,\n onClick,\n labelNode,\n labelModeEnabled,\n } = this.props;\n const { editingLabel } = this.state;\n const common = { graphProps, onDragStart, onDragStop, disabled, correctness, onClick };\n const angle = to ? trig.toDegrees(trig.angle(from, to)) : 0;\n\n let fromLabelNode = null;\n let toLabelNode = null;\n let lineLabelNode = null;\n\n if (labelNode) {\n if (from && Object.prototype.hasOwnProperty.call(from, 'label')) {\n fromLabelNode = ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input.from = r)}\n autoFocus={editingLabel === 'from'}\n disabled={!labelModeEnabled}\n mark={from}\n graphProps={graphProps}\n onBlur={this.stopEditingLabel}\n onChange={(label) => this.labelChange({ ...from, label }, 'from')}\n />,\n labelNode,\n );\n }\n\n if (to && Object.prototype.hasOwnProperty.call(to, 'label')) {\n toLabelNode = ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input.to = r)}\n autoFocus={editingLabel === 'to'}\n disabled={!labelModeEnabled}\n mark={to}\n graphProps={graphProps}\n onBlur={this.stopEditingLabel}\n onChange={(label) => this.labelChange({ ...to, label }, 'to')}\n />,\n labelNode,\n );\n }\n\n if (middle && Object.prototype.hasOwnProperty.call(middle, 'label')) {\n lineLabelNode = ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input.middle = r)}\n autoFocus={editingLabel === 'middle'}\n disabled={!labelModeEnabled}\n mark={middle}\n graphProps={graphProps}\n onBlur={this.stopEditingLabel}\n onChange={(label) => this.labelChange({ ...middle, label }, 'middle')}\n />,\n labelNode,\n );\n }\n }\n\n return (\n <StyledLineGroup disabled={disabled} correctness={correctness}>\n {to && (\n <DraggableComp\n from={from}\n to={to}\n middle={middle}\n onDrag={this.dragComp}\n {...common}\n onClick={(data) => this.clickPoint(middle, 'middle', data)}\n />\n )}\n {lineLabelNode}\n\n <FromPoint\n x={from.x}\n y={from.y}\n labelNode={labelNode}\n coordinatesOnHover={coordinatesOnHover}\n onDrag={this.dragFrom}\n {...common}\n onClick={(data) => this.clickPoint(from, 'from', data)}\n />\n {fromLabelNode}\n\n {to && (\n <ToPoint\n x={to.x}\n y={to.y}\n angle={angle} //angle + 45}\n labelNode={labelNode}\n coordinatesOnHover={coordinatesOnHover}\n onDrag={this.dragTo}\n {...common}\n onClick={(data) => this.clickPoint(to, 'to', data)}\n />\n )}\n {toLabelNode}\n </StyledLineGroup>\n );\n }\n }\n\n return LineBase;\n};\n\nexport const styles = {\n line: () => ({\n fill: 'transparent',\n stroke: color.defaults.BLACK,\n strokeWidth: 3,\n transition: 'stroke 200ms ease-in, stroke-width 200ms ease-in',\n '&:hover': {\n strokeWidth: 6,\n stroke: color.defaults.PRIMARY_DARK,\n },\n }),\n arrow: () => ({\n fill: color.defaults.BLACK,\n }),\n disabledArrow: () => ({\n ...disabledSecondary(),\n }),\n disabledSecondary: () => ({\n ...disabledSecondary('stroke'),\n strokeWidth: 2,\n }),\n disabled: () => ({\n ...disabled('stroke'),\n strokeWidth: 2,\n }),\n correct: (theme, key) => ({\n ...correct(key),\n }),\n incorrect: (theme, key) => ({\n ...incorrect(key),\n }),\n missing: (theme, key) => ({\n ...missing(key),\n strokeWidth: 1,\n strokeDasharray: '4 3',\n }),\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_lodashEs","_point","_plot","_propTypes","_styles","_reactDom","_markLabel","_renderUi","_utils","_styles2","_callSuper","t","o","e","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","prototype","valueOf","call","ownKeys","r","Object","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","push","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","StyledLineGroup","styled","_ref","disabled","correctness","fill","stroke","color","defaults","BLACK","strokeWidth","transition","PRIMARY_DARK","disabledSecondary","correct","incorrect","missing","strokeDasharray","lineTool","exports","type","Component","addPoint","point","mark","equalPoints","root","building","from","to","lineToolComponent","_LineToolComponent","_React$Component","LineToolComponent","props","_this","_classCallCheck2","onDragStart","setState","_this$props","onChange","onDragStop","update","state","undefined","shouldNotChange","sameAxes","y","isEqual","_ref2","middle","_ref3","_this$props2","_inherits2","_createClass2","key","value","render","_this$props3","graphProps","onClick","labelNode","labelModeEnabled","coordinatesOnHover","limitLabeling","cloneDeep","isBackground","createElement","changeMark","changeMarkProps","startDrag","stopDrag","React","types","ToolPropTypeFields","GraphPropsType","isRequired","PropTypes","bool","func","PointType","dragOpts","bounds","_ref4","domain","range","area","utils","lineToArea","anchorPoint","fromDelta","delta","add","lineBase","Comp","opts","DraggableComp","gridDraggable","FromPoint","BasePoint","ToPoint","LineBase","_React$Component2","_this2","_len","args","Array","_key","concat","_this2$props","getMiddleOfTwoPoints","_ref5","draggedFrom","draggedTo","_this2$props2","label","updated","_this2$props3","onChangePoint","_this2$props4","isEmpty","data","_this2$props5","stripEmptyLabel","input","focus","_this3","_this$props4","common","angle","trig","toDegrees","fromLabelNode","toLabelNode","lineLabelNode","hasOwnProperty","ReactDOM","createPortal","inputRef","labelChange","_extends2","onDrag","dragComp","clickPoint","x","dragFrom","dragTo","string","object","styles","line","arrow","disabledArrow","theme"],"sources":["../../../../src/tools/shared/line/index.jsx"],"sourcesContent":["import React from 'react';\nimport { cloneDeep, isEmpty, isEqual } from 'lodash-es';\nimport { BasePoint } from '../point';\nimport { gridDraggable, trig, types, utils } from '@pie-lib/plot';\nimport PropTypes from 'prop-types';\nimport { correct, disabled, disabledSecondary, incorrect, missing } from '../styles';\nimport ReactDOM from 'react-dom';\nimport MarkLabel from '../../../mark-label';\nimport { color } from '@pie-lib/render-ui';\nimport { equalPoints, getMiddleOfTwoPoints, sameAxes, stripEmptyLabel } from '../../../utils';\nimport { styled } from '@mui/material/styles';\n\nconst StyledLineGroup = styled('g')(({ disabled, correctness }) => ({\n '& line:not(.hit-area)': {\n fill: 'transparent',\n stroke: color.defaults.BLACK,\n strokeWidth: 3,\n transition: 'stroke 200ms ease-in, stroke-width 200ms ease-in',\n '&:hover': {\n strokeWidth: 6,\n stroke: color.defaults.PRIMARY_DARK,\n },\n },\n ...(disabled && {\n '& line:not(.hit-area)': {\n ...disabledSecondary('stroke'),\n strokeWidth: 2,\n },\n }),\n ...(correctness === 'correct' && {\n '& line:not(.hit-area)': {\n ...correct('stroke'),\n },\n }),\n ...(correctness === 'incorrect' && {\n '& line:not(.hit-area)': {\n ...incorrect('stroke'),\n },\n }),\n ...(correctness === 'missing' && {\n '& line:not(.hit-area)': {\n ...missing('stroke'),\n strokeWidth: 1,\n strokeDasharray: '4 3',\n },\n }),\n}));\n\nexport const lineTool = (type, Component) => () => ({\n type,\n Component,\n addPoint: (point, mark) => {\n if (mark && equalPoints(mark.root, point)) {\n return mark;\n }\n\n if (!mark) {\n return {\n type,\n building: true,\n from: point,\n };\n }\n\n if (equalPoints(point, mark.from)) {\n return { ...mark };\n }\n\n return { ...mark, building: false, to: point };\n },\n});\n\nexport const lineToolComponent = (Component) => {\n return class LineToolComponent extends React.Component {\n static propTypes = {\n ...types.ToolPropTypeFields,\n graphProps: types.GraphPropsType.isRequired,\n limitLabeling: PropTypes.bool,\n changeMarkProps: PropTypes.func,\n disabled: PropTypes.bool,\n from: types.PointType,\n to: types.PointType,\n labelModeEnabled: PropTypes.bool,\n onClick: PropTypes.func,\n };\n\n constructor(props) {\n super(props);\n this.state = {};\n }\n\n startDrag = () => {\n const { onDragStart } = this.props;\n this.setState({ mark: { ...this.props.mark } });\n if (onDragStart) onDragStart();\n };\n\n stopDrag = () => {\n const { onChange, mark, onDragStop } = this.props;\n const update = { ...this.state.mark };\n\n this.setState({ mark: undefined }, () => {\n const { type } = update;\n let shouldNotChange =\n type &&\n (type === 'parabola' || type === 'sine' || type === 'absolute' || type === 'exponential') &&\n sameAxes(update.from, update.to);\n if (!shouldNotChange && type && type === 'exponential' && update.from && update.to) {\n shouldNotChange = update.from.y === 0 || update.to.y === 0 || update.from.y * update.to.y < 0;\n }\n if (!isEqual(mark, update) && !shouldNotChange) {\n onChange(mark, update);\n }\n if (onDragStop) onDragStop();\n });\n };\n\n changeMark = ({ from, to, middle }) => {\n let mark = { ...this.state.mark, from, to };\n\n if (middle) {\n mark = { ...mark, middle };\n }\n\n this.setState({ mark });\n };\n\n changeMarkProps = ({ from, to, middle }) => {\n const { onChange, mark } = this.props;\n let update = { ...mark, ...this.state.mark };\n\n if (from) {\n update = { ...update, from };\n }\n\n if (to) {\n update = { ...update, to };\n }\n\n if (middle) {\n update = { ...update, middle };\n }\n\n if (!isEqual(mark, update)) {\n onChange(mark, update);\n }\n };\n\n render() {\n const { graphProps, onClick, labelNode, labelModeEnabled, coordinatesOnHover, limitLabeling } = this.props;\n const mark = this.state.mark ? this.state.mark : this.props.mark;\n\n const from = cloneDeep(mark.from);\n const to = cloneDeep(mark.to);\n const middle = cloneDeep(mark.middle);\n\n // SET DISABLED\n // if it's a background mark, we need to force disable it\n if (from && mark.isBackground) {\n from.disabled = true;\n }\n\n if (to && mark.isBackground) {\n to.disabled = true;\n }\n\n if (middle && mark.isBackground) {\n middle.disabled = true;\n }\n\n return (\n <Component\n disabled={mark.disabled}\n coordinatesOnHover={coordinatesOnHover}\n correctness={mark.correctness}\n from={from}\n to={to}\n middle={middle}\n graphProps={graphProps}\n onChange={this.changeMark}\n changeMarkProps={this.changeMarkProps}\n onClick={onClick}\n onDragStart={this.startDrag}\n onDragStop={this.stopDrag}\n labelNode={labelNode}\n labelModeEnabled={labelModeEnabled}\n limitLabeling={limitLabeling}\n />\n );\n }\n };\n};\n\nconst dragOpts = () => ({\n bounds: (props, { domain, range }) => {\n const area = utils.lineToArea(props.from, props.to);\n return utils.bounds(area, domain, range);\n },\n anchorPoint: (props) => {\n const { from } = props;\n return from;\n },\n fromDelta: (props, delta) => {\n const { from, to } = props;\n return {\n from: utils.point(from).add(utils.point(delta)),\n to: utils.point(to).add(utils.point(delta)),\n };\n },\n});\n\nexport const lineBase = (Comp, opts) => {\n const DraggableComp = gridDraggable(dragOpts())(Comp);\n\n const FromPoint = opts && opts.from ? opts.from : BasePoint;\n const ToPoint = opts && opts.to ? opts.to : BasePoint;\n\n class LineBase extends React.Component {\n static propTypes = {\n coordinatesOnHover: PropTypes.bool,\n graphProps: types.GraphPropsType,\n from: types.PointType,\n to: types.PointType,\n middle: types.PointType,\n onChange: PropTypes.func,\n onDragStart: PropTypes.func,\n onDragStop: PropTypes.func,\n onClick: PropTypes.func,\n correctness: PropTypes.string,\n disabled: PropTypes.bool,\n limitLabeling: PropTypes.bool,\n changeMarkProps: PropTypes.func,\n labelModeEnabled: PropTypes.bool,\n labelNode: PropTypes.object,\n };\n\n onChangePoint = (point) => {\n const { middle, onChange } = this.props;\n const { from, to } = point;\n\n // because point.from.label and point.to.label can be different\n if (!equalPoints(from, to)) {\n if (middle) {\n point.middle = { ...middle, ...getMiddleOfTwoPoints(from, to) };\n }\n\n onChange(point);\n }\n };\n\n dragComp = ({ from: draggedFrom, to: draggedTo }) => {\n const { from, to, onChange, middle } = this.props;\n\n if (from.label) {\n draggedFrom.label = from.label;\n }\n\n if (to.label) {\n draggedTo.label = to.label;\n }\n\n const updated = { from: draggedFrom, to: draggedTo };\n\n if (middle) {\n updated.middle = { ...middle, ...getMiddleOfTwoPoints(draggedFrom, draggedTo) };\n }\n\n onChange(updated);\n };\n\n dragFrom = (draggedFrom) => {\n const { from, to } = this.props;\n\n if (from.label) {\n draggedFrom.label = from.label;\n }\n\n if (!equalPoints(draggedFrom, to)) {\n this.onChangePoint({ from: draggedFrom, to: to });\n }\n };\n\n dragTo = (draggedTo) => {\n const { from, to } = this.props;\n\n if (to.label) {\n draggedTo.label = to.label;\n }\n\n if (!equalPoints(from, draggedTo)) {\n this.onChangePoint({ from: from, to: draggedTo });\n }\n };\n\n labelChange = (point, type) => {\n const { changeMarkProps } = this.props;\n const update = { ...point };\n\n if (!point.label || isEmpty(point.label)) {\n delete update.label;\n }\n\n changeMarkProps({ [type]: update });\n };\n\n clickPoint = (point, type, data) => {\n const { changeMarkProps, disabled, from, to, middle, labelModeEnabled, limitLabeling, onClick } = this.props;\n\n if (!labelModeEnabled) {\n onClick(point || data);\n return;\n }\n\n if (disabled) {\n return;\n }\n\n // limit labeling the points of the line\n if (limitLabeling) {\n return;\n }\n\n if (type === 'middle' && !point && from && to) {\n point = { ...point, ...getMiddleOfTwoPoints(from, to) };\n }\n\n changeMarkProps({\n from: stripEmptyLabel(from),\n to: stripEmptyLabel(to),\n middle: stripEmptyLabel(middle),\n [type]: { label: '', ...point },\n });\n\n if (this.input[type]) {\n this.input[type].focus();\n }\n };\n\n // IMPORTANT, do not remove\n input = {};\n\n render() {\n const {\n coordinatesOnHover,\n graphProps,\n onDragStart,\n onDragStop,\n from,\n to,\n middle,\n disabled,\n correctness,\n onClick,\n labelNode,\n labelModeEnabled,\n } = this.props;\n const common = { graphProps, onDragStart, onDragStop, disabled, correctness, onClick };\n const angle = to ? trig.toDegrees(trig.angle(from, to)) : 0;\n\n let fromLabelNode = null;\n let toLabelNode = null;\n let lineLabelNode = null;\n\n if (labelNode) {\n if (from && Object.prototype.hasOwnProperty.call(from, 'label')) {\n fromLabelNode = ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input.from = r)}\n disabled={!labelModeEnabled}\n mark={from}\n graphProps={graphProps}\n onChange={(label) => this.labelChange({ ...from, label }, 'from')}\n />,\n labelNode,\n );\n }\n\n if (to && Object.prototype.hasOwnProperty.call(to, 'label')) {\n toLabelNode = ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input.to = r)}\n disabled={!labelModeEnabled}\n mark={to}\n graphProps={graphProps}\n onChange={(label) => this.labelChange({ ...to, label }, 'to')}\n />,\n labelNode,\n );\n }\n\n if (middle && Object.prototype.hasOwnProperty.call(middle, 'label')) {\n lineLabelNode = ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input.middle = r)}\n disabled={!labelModeEnabled}\n mark={middle}\n graphProps={graphProps}\n onChange={(label) => this.labelChange({ ...middle, label }, 'middle')}\n />,\n labelNode,\n );\n }\n }\n\n return (\n <StyledLineGroup disabled={disabled} correctness={correctness}>\n {to && (\n <DraggableComp\n from={from}\n to={to}\n middle={middle}\n onDrag={this.dragComp}\n {...common}\n onClick={(data) => this.clickPoint(middle, 'middle', data)}\n />\n )}\n {lineLabelNode}\n\n <FromPoint\n x={from.x}\n y={from.y}\n labelNode={labelNode}\n coordinatesOnHover={coordinatesOnHover}\n onDrag={this.dragFrom}\n {...common}\n onClick={(data) => this.clickPoint(from, 'from', data)}\n />\n {fromLabelNode}\n\n {to && (\n <ToPoint\n x={to.x}\n y={to.y}\n angle={angle} //angle + 45}\n labelNode={labelNode}\n coordinatesOnHover={coordinatesOnHover}\n onDrag={this.dragTo}\n {...common}\n onClick={(data) => this.clickPoint(to, 'to', data)}\n />\n )}\n {toLabelNode}\n </StyledLineGroup>\n );\n }\n }\n\n return LineBase;\n};\n\nexport const styles = {\n line: () => ({\n fill: 'transparent',\n stroke: color.defaults.BLACK,\n strokeWidth: 3,\n transition: 'stroke 200ms ease-in, stroke-width 200ms ease-in',\n '&:hover': {\n strokeWidth: 6,\n stroke: color.defaults.PRIMARY_DARK,\n },\n }),\n arrow: () => ({\n fill: color.defaults.BLACK,\n }),\n disabledArrow: () => ({\n ...disabledSecondary(),\n }),\n disabledSecondary: () => ({\n ...disabledSecondary('stroke'),\n strokeWidth: 2,\n }),\n disabled: () => ({\n ...disabled('stroke'),\n strokeWidth: 2,\n }),\n correct: (theme, key) => ({\n ...correct(key),\n }),\n incorrect: (theme, key) => ({\n ...incorrect(key),\n }),\n missing: (theme, key) => ({\n ...missing(key),\n strokeWidth: 1,\n strokeDasharray: '4 3',\n }),\n};\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,127 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
5
+ var _testUtils = require("@pie-lib/test-utils");
6
+ var _react = _interopRequireDefault(require("react"));
7
+ var _index = require("../index");
8
+ var _utils = require("../../../../__tests__/utils");
9
+ var _utils2 = require("../../../../utils");
10
+ var _plot = require("@pie-lib/plot");
11
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
12
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
13
+ var xy = _plot.utils.xy;
14
+ jest.mock('../../../../utils', function () {
15
+ var _jest$requireActual = jest.requireActual('../../../../utils'),
16
+ point = _jest$requireActual.point,
17
+ getAngleDeg = _jest$requireActual.getAngleDeg,
18
+ arrowDimensions = _jest$requireActual.arrowDimensions;
19
+ return {
20
+ bounds: jest.fn(),
21
+ point: point,
22
+ getAngleDeg: getAngleDeg,
23
+ arrowDimensions: arrowDimensions
24
+ };
25
+ });
26
+ jest.mock('@pie-lib/plot', function () {
27
+ var _jest$requireActual2 = jest.requireActual('@pie-lib/plot'),
28
+ types = _jest$requireActual2.types,
29
+ utils = _jest$requireActual2.utils;
30
+ return {
31
+ gridDraggable: jest.fn(function (opts) {
32
+ return function (Comp) {
33
+ return Comp;
34
+ };
35
+ }),
36
+ types: types,
37
+ utils: utils
38
+ };
39
+ });
40
+ describe('ArrowPoint', function () {
41
+ var onChange = jest.fn();
42
+ var renderComponent = function renderComponent(extras) {
43
+ var defaults = {
44
+ classes: {},
45
+ className: 'className',
46
+ onChange: onChange,
47
+ graphProps: (0, _utils.graphProps)(),
48
+ from: xy(0, 0),
49
+ to: xy(1, 1),
50
+ x: 0,
51
+ y: 0
52
+ };
53
+ var props = _objectSpread(_objectSpread({}, defaults), extras);
54
+ return (0, _testUtils.render)(/*#__PURE__*/_react["default"].createElement(_index.ArrowPoint, props));
55
+ };
56
+ describe('rendering', function () {
57
+ it('renders without crashing', function () {
58
+ var _renderComponent = renderComponent(),
59
+ container = _renderComponent.container;
60
+ expect(container.firstChild).toBeInTheDocument();
61
+ });
62
+ });
63
+ describe('gridDraggable options', function () {
64
+ var opts;
65
+ var domain;
66
+ var range;
67
+ beforeEach(function () {
68
+ domain = {
69
+ min: 0,
70
+ max: 1,
71
+ step: 1
72
+ };
73
+ range = {
74
+ min: 0,
75
+ max: 1,
76
+ step: 1
77
+ };
78
+ renderComponent();
79
+ opts = _plot.gridDraggable.mock.calls[_plot.gridDraggable.mock.calls.length - 1][0];
80
+ });
81
+ describe('bounds', function () {
82
+ it('calls utils.bounds with area', function () {
83
+ var result = opts.bounds({
84
+ x: 0,
85
+ y: 0
86
+ }, {
87
+ domain: domain,
88
+ range: range
89
+ });
90
+ expect(_utils2.bounds).toHaveBeenCalledWith({
91
+ left: 0,
92
+ top: 0,
93
+ bottom: 0,
94
+ right: 0
95
+ }, domain, range);
96
+ });
97
+ });
98
+ describe('anchorPoint', function () {
99
+ it('returns x/y', function () {
100
+ var result = opts.anchorPoint({
101
+ x: 0,
102
+ y: 0
103
+ });
104
+ expect(result).toEqual({
105
+ x: 0,
106
+ y: 0
107
+ });
108
+ });
109
+ });
110
+ describe('fromDelta', function () {
111
+ it('returns a new point from the x/y + delta', function () {
112
+ var result = opts.fromDelta({
113
+ x: -1,
114
+ y: 0
115
+ }, {
116
+ x: 1,
117
+ y: 3
118
+ });
119
+ expect(result).toEqual({
120
+ x: 0,
121
+ y: 3
122
+ });
123
+ });
124
+ });
125
+ });
126
+ });
127
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdGVzdFV0aWxzIiwicmVxdWlyZSIsIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfaW5kZXgiLCJfdXRpbHMiLCJfdXRpbHMyIiwiX3Bsb3QiLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsInh5IiwidXRpbHMiLCJqZXN0IiwibW9jayIsIl9qZXN0JHJlcXVpcmVBY3R1YWwiLCJyZXF1aXJlQWN0dWFsIiwicG9pbnQiLCJnZXRBbmdsZURlZyIsImFycm93RGltZW5zaW9ucyIsImJvdW5kcyIsImZuIiwiX2plc3QkcmVxdWlyZUFjdHVhbDIiLCJ0eXBlcyIsImdyaWREcmFnZ2FibGUiLCJvcHRzIiwiQ29tcCIsImRlc2NyaWJlIiwib25DaGFuZ2UiLCJyZW5kZXJDb21wb25lbnQiLCJleHRyYXMiLCJkZWZhdWx0cyIsImNsYXNzZXMiLCJjbGFzc05hbWUiLCJncmFwaFByb3BzIiwiZnJvbSIsInRvIiwieCIsInkiLCJwcm9wcyIsInJlbmRlciIsImNyZWF0ZUVsZW1lbnQiLCJBcnJvd1BvaW50IiwiaXQiLCJfcmVuZGVyQ29tcG9uZW50IiwiY29udGFpbmVyIiwiZXhwZWN0IiwiZmlyc3RDaGlsZCIsInRvQmVJblRoZURvY3VtZW50IiwiZG9tYWluIiwicmFuZ2UiLCJiZWZvcmVFYWNoIiwibWluIiwibWF4Iiwic3RlcCIsImNhbGxzIiwicmVzdWx0IiwidG9IYXZlQmVlbkNhbGxlZFdpdGgiLCJsZWZ0IiwidG9wIiwiYm90dG9tIiwicmlnaHQiLCJhbmNob3JQb2ludCIsInRvRXF1YWwiLCJmcm9tRGVsdGEiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvdG9vbHMvc2hhcmVkL3BvaW50L19fdGVzdHNfXy9hcnJvdy1wb2ludC50ZXN0LmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIgfSBmcm9tICdAcGllLWxpYi90ZXN0LXV0aWxzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBBcnJvd1BvaW50IH0gZnJvbSAnLi4vaW5kZXgnO1xuaW1wb3J0IHsgZ3JhcGhQcm9wcyB9IGZyb20gJy4uLy4uLy4uLy4uL19fdGVzdHNfXy91dGlscyc7XG5pbXBvcnQgeyBib3VuZHMgfSBmcm9tICcuLi8uLi8uLi8uLi91dGlscyc7XG5pbXBvcnQgeyBncmlkRHJhZ2dhYmxlLCB1dGlscyB9IGZyb20gJ0BwaWUtbGliL3Bsb3QnO1xuXG5jb25zdCB7IHh5IH0gPSB1dGlscztcbmplc3QubW9jaygnLi4vLi4vLi4vLi4vdXRpbHMnLCAoKSA9PiB7XG4gIGNvbnN0IHsgcG9pbnQsIGdldEFuZ2xlRGVnLCBhcnJvd0RpbWVuc2lvbnMgfSA9IGplc3QucmVxdWlyZUFjdHVhbCgnLi4vLi4vLi4vLi4vdXRpbHMnKTtcbiAgcmV0dXJuIHtcbiAgICBib3VuZHM6IGplc3QuZm4oKSxcbiAgICBwb2ludCxcbiAgICBnZXRBbmdsZURlZyxcbiAgICBhcnJvd0RpbWVuc2lvbnMsXG4gIH07XG59KTtcblxuamVzdC5tb2NrKCdAcGllLWxpYi9wbG90JywgKCkgPT4ge1xuICBjb25zdCB7IHR5cGVzLCB1dGlscyB9ID0gamVzdC5yZXF1aXJlQWN0dWFsKCdAcGllLWxpYi9wbG90Jyk7XG4gIHJldHVybiB7XG4gICAgZ3JpZERyYWdnYWJsZTogamVzdC5mbigob3B0cykgPT4gKENvbXApID0+IENvbXApLFxuICAgIHR5cGVzLFxuICAgIHV0aWxzLFxuICB9O1xufSk7XG5cbmRlc2NyaWJlKCdBcnJvd1BvaW50JywgKCkgPT4ge1xuICBsZXQgb25DaGFuZ2UgPSBqZXN0LmZuKCk7XG4gIGNvbnN0IHJlbmRlckNvbXBvbmVudCA9IChleHRyYXMpID0+IHtcbiAgICBjb25zdCBkZWZhdWx0cyA9IHtcbiAgICAgIGNsYXNzZXM6IHt9LFxuICAgICAgY2xhc3NOYW1lOiAnY2xhc3NOYW1lJyxcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgZ3JhcGhQcm9wczogZ3JhcGhQcm9wcygpLFxuICAgICAgZnJvbTogeHkoMCwgMCksXG4gICAgICB0bzogeHkoMSwgMSksXG4gICAgICB4OiAwLFxuICAgICAgeTogMCxcbiAgICB9O1xuICAgIGNvbnN0IHByb3BzID0geyAuLi5kZWZhdWx0cywgLi4uZXh0cmFzIH07XG4gICAgcmV0dXJuIHJlbmRlcig8QXJyb3dQb2ludCB7Li4ucHJvcHN9IC8+KTtcbiAgfTtcblxuICBkZXNjcmliZSgncmVuZGVyaW5nJywgKCkgPT4ge1xuICAgIGl0KCdyZW5kZXJzIHdpdGhvdXQgY3Jhc2hpbmcnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyQ29tcG9uZW50KCk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdncmlkRHJhZ2dhYmxlIG9wdGlvbnMnLCAoKSA9PiB7XG4gICAgbGV0IG9wdHM7XG4gICAgbGV0IGRvbWFpbjtcbiAgICBsZXQgcmFuZ2U7XG4gICAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgICBkb21haW4gPSB7XG4gICAgICAgIG1pbjogMCxcbiAgICAgICAgbWF4OiAxLFxuICAgICAgICBzdGVwOiAxLFxuICAgICAgfTtcbiAgICAgIHJhbmdlID0ge1xuICAgICAgICBtaW46IDAsXG4gICAgICAgIG1heDogMSxcbiAgICAgICAgc3RlcDogMSxcbiAgICAgIH07XG4gICAgICByZW5kZXJDb21wb25lbnQoKTtcbiAgICAgIG9wdHMgPSBncmlkRHJhZ2dhYmxlLm1vY2suY2FsbHNbZ3JpZERyYWdnYWJsZS5tb2NrLmNhbGxzLmxlbmd0aCAtIDFdWzBdO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ2JvdW5kcycsICgpID0+IHtcbiAgICAgIGl0KCdjYWxscyB1dGlscy5ib3VuZHMgd2l0aCBhcmVhJywgKCkgPT4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBvcHRzLmJvdW5kcyh7IHg6IDAsIHk6IDAgfSwgeyBkb21haW4sIHJhbmdlIH0pO1xuICAgICAgICBleHBlY3QoYm91bmRzKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCh7IGxlZnQ6IDAsIHRvcDogMCwgYm90dG9tOiAwLCByaWdodDogMCB9LCBkb21haW4sIHJhbmdlKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIGRlc2NyaWJlKCdhbmNob3JQb2ludCcsICgpID0+IHtcbiAgICAgIGl0KCdyZXR1cm5zIHgveScsICgpID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gb3B0cy5hbmNob3JQb2ludCh7IHg6IDAsIHk6IDAgfSk7XG4gICAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoeyB4OiAwLCB5OiAwIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgnZnJvbURlbHRhJywgKCkgPT4ge1xuICAgICAgaXQoJ3JldHVybnMgYSBuZXcgcG9pbnQgZnJvbSB0aGUgeC95ICsgZGVsdGEnLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IG9wdHMuZnJvbURlbHRhKHsgeDogLTEsIHk6IDAgfSwgeyB4OiAxLCB5OiAzIH0pO1xuICAgICAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKHsgeDogMCwgeTogMyB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUEsSUFBQUEsVUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsTUFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFB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