@pie-lib/graphing 2.16.0-beta.0 → 2.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/CHANGELOG.json +1 -1017
  2. package/CHANGELOG.md +104 -27
  3. package/package.json +13 -9
  4. package/src/axis/axes.jsx +1 -1
  5. package/src/coordinates-label.jsx +1 -1
  6. package/src/graph-with-controls.jsx +1 -1
  7. package/src/grid-setup.jsx +7 -10
  8. package/src/key-legend.jsx +131 -101
  9. package/src/labels.jsx +1 -1
  10. package/src/mark-label.jsx +1 -1
  11. package/src/toggle-bar.jsx +1 -1
  12. package/src/tools/circle/bg-circle.jsx +1 -1
  13. package/src/tools/circle/component.jsx +1 -1
  14. package/src/tools/polygon/line.jsx +1 -1
  15. package/src/tools/polygon/polygon.jsx +3 -3
  16. package/src/tools/shared/line/index.jsx +1 -1
  17. package/src/tools/shared/line/line-path.jsx +1 -1
  18. package/src/tools/shared/point/index.jsx +1 -1
  19. package/src/tools/shared/styles.js +1 -1
  20. package/src/undo-redo.jsx +1 -1
  21. package/lib/__tests__/graph-with-controls.test.js +0 -215
  22. package/lib/__tests__/graph.test.js +0 -290
  23. package/lib/__tests__/grid.test.js +0 -40
  24. package/lib/__tests__/labels.test.js +0 -59
  25. package/lib/__tests__/mark-label.test.js +0 -154
  26. package/lib/__tests__/toggle-bar.test.js +0 -54
  27. package/lib/__tests__/tool-menu.test.js +0 -43
  28. package/lib/__tests__/undo-redo.test.js +0 -42
  29. package/lib/__tests__/use-debounce.test.js +0 -28
  30. package/lib/__tests__/utils.js +0 -72
  31. package/lib/__tests__/utils.test.js +0 -133
  32. package/lib/axis/__tests__/arrow.test.js +0 -68
  33. package/lib/axis/__tests__/axes.test.js +0 -214
  34. package/lib/axis/arrow.js +0 -115
  35. package/lib/axis/axes.js +0 -415
  36. package/lib/axis/index.js +0 -26
  37. package/lib/bg.js +0 -139
  38. package/lib/container/actions.js +0 -24
  39. package/lib/container/index.js +0 -163
  40. package/lib/container/marks.js +0 -27
  41. package/lib/container/middleware.js +0 -25
  42. package/lib/container/reducer.js +0 -25
  43. package/lib/coordinates-label.js +0 -109
  44. package/lib/graph-with-controls.js +0 -359
  45. package/lib/graph.js +0 -371
  46. package/lib/grid-setup.js +0 -462
  47. package/lib/grid.js +0 -176
  48. package/lib/index.js +0 -59
  49. package/lib/key-legend.js +0 -246
  50. package/lib/label-svg-icon.js +0 -56
  51. package/lib/labels.js +0 -299
  52. package/lib/mark-label.js +0 -321
  53. package/lib/toggle-bar.js +0 -336
  54. package/lib/tool-menu.js +0 -112
  55. package/lib/tools/absolute/__tests__/component.test.js +0 -74
  56. package/lib/tools/absolute/component.js +0 -35
  57. package/lib/tools/absolute/index.js +0 -63
  58. package/lib/tools/circle/__tests__/bg-circle.test.js +0 -46
  59. package/lib/tools/circle/__tests__/component.test.js +0 -259
  60. package/lib/tools/circle/bg-circle.js +0 -173
  61. package/lib/tools/circle/component.js +0 -406
  62. package/lib/tools/circle/index.js +0 -51
  63. package/lib/tools/exponential/__tests__/component.test.js +0 -73
  64. package/lib/tools/exponential/component.js +0 -34
  65. package/lib/tools/exponential/index.js +0 -71
  66. package/lib/tools/index.js +0 -99
  67. package/lib/tools/line/__tests__/component.test.js +0 -56
  68. package/lib/tools/line/component.js +0 -103
  69. package/lib/tools/line/index.js +0 -16
  70. package/lib/tools/parabola/__tests__/component.test.js +0 -73
  71. package/lib/tools/parabola/component.js +0 -34
  72. package/lib/tools/parabola/index.js +0 -63
  73. package/lib/tools/point/__tests__/component.test.js +0 -97
  74. package/lib/tools/point/component.js +0 -186
  75. package/lib/tools/point/index.js +0 -32
  76. package/lib/tools/polygon/__tests__/component.test.js +0 -255
  77. package/lib/tools/polygon/__tests__/index.test.js +0 -95
  78. package/lib/tools/polygon/__tests__/line.test.js +0 -43
  79. package/lib/tools/polygon/__tests__/polygon.test.js +0 -73
  80. package/lib/tools/polygon/component.js +0 -518
  81. package/lib/tools/polygon/index.js +0 -106
  82. package/lib/tools/polygon/line.js +0 -157
  83. package/lib/tools/polygon/polygon.js +0 -165
  84. package/lib/tools/ray/__tests__/component.test.js +0 -48
  85. package/lib/tools/ray/component.js +0 -102
  86. package/lib/tools/ray/index.js +0 -16
  87. package/lib/tools/segment/__tests__/component.test.js +0 -48
  88. package/lib/tools/segment/component.js +0 -75
  89. package/lib/tools/segment/index.js +0 -16
  90. package/lib/tools/shared/__tests__/arrow-head.test.js +0 -62
  91. package/lib/tools/shared/arrow-head.js +0 -70
  92. package/lib/tools/shared/icons/CorrectSVG.js +0 -36
  93. package/lib/tools/shared/icons/IncorrectSVG.js +0 -36
  94. package/lib/tools/shared/icons/MissingSVG.js +0 -35
  95. package/lib/tools/shared/line/__tests__/index.test.js +0 -301
  96. package/lib/tools/shared/line/__tests__/line-path.test.js +0 -78
  97. package/lib/tools/shared/line/__tests__/with-root-edge.test.js +0 -122
  98. package/lib/tools/shared/line/index.js +0 -599
  99. package/lib/tools/shared/line/line-path.js +0 -151
  100. package/lib/tools/shared/line/with-root-edge.js +0 -155
  101. package/lib/tools/shared/point/__tests__/arrow-point.test.js +0 -137
  102. package/lib/tools/shared/point/__tests__/base-point.test.js +0 -134
  103. package/lib/tools/shared/point/arrow-point.js +0 -113
  104. package/lib/tools/shared/point/arrow.js +0 -96
  105. package/lib/tools/shared/point/base-point.js +0 -175
  106. package/lib/tools/shared/point/index.js +0 -97
  107. package/lib/tools/shared/styles.js +0 -58
  108. package/lib/tools/shared/types.js +0 -23
  109. package/lib/tools/sine/__tests__/component.test.js +0 -81
  110. package/lib/tools/sine/component.js +0 -51
  111. package/lib/tools/sine/index.js +0 -63
  112. package/lib/tools/vector/__tests__/component.test.js +0 -45
  113. package/lib/tools/vector/component.js +0 -88
  114. package/lib/tools/vector/index.js +0 -16
  115. package/lib/undo-redo.js +0 -123
  116. package/lib/use-debounce.js +0 -32
  117. package/lib/utils.js +0 -307
@@ -1,24 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.changeMarks = exports.addMark = void 0;
7
-
8
- var addMark = function addMark() {
9
- return {
10
- type: 'ADD_MARK'
11
- };
12
- };
13
-
14
- exports.addMark = addMark;
15
-
16
- var changeMarks = function changeMarks(marks) {
17
- return {
18
- type: 'CHANGE_MARKS',
19
- marks: marks
20
- };
21
- };
22
-
23
- exports.changeMarks = changeMarks;
24
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250YWluZXIvYWN0aW9ucy5qcyJdLCJuYW1lcyI6WyJhZGRNYXJrIiwidHlwZSIsImNoYW5nZU1hcmtzIiwibWFya3MiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBTyxJQUFNQSxPQUFPLEdBQUcsU0FBVkEsT0FBVTtBQUFBLFNBQU87QUFDNUJDLElBQUFBLElBQUksRUFBRTtBQURzQixHQUFQO0FBQUEsQ0FBaEI7Ozs7QUFJQSxJQUFNQyxXQUFXLEdBQUcsU0FBZEEsV0FBYyxDQUFDQyxLQUFEO0FBQUEsU0FBWTtBQUNyQ0YsSUFBQUEsSUFBSSxFQUFFLGNBRCtCO0FBRXJDRSxJQUFBQSxLQUFLLEVBQUxBO0FBRnFDLEdBQVo7QUFBQSxDQUFwQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBhZGRNYXJrID0gKCkgPT4gKHtcbiAgdHlwZTogJ0FERF9NQVJLJyxcbn0pO1xuXG5leHBvcnQgY29uc3QgY2hhbmdlTWFya3MgPSAobWFya3MpID0+ICh7XG4gIHR5cGU6ICdDSEFOR0VfTUFSS1MnLFxuICBtYXJrcyxcbn0pO1xuIl19
@@ -1,163 +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["default"] = exports.GraphContainer = void 0;
9
-
10
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
-
12
- var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
-
14
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
-
16
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
-
18
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
19
-
20
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
21
-
22
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
23
-
24
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
25
-
26
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
27
-
28
- var _reactRedux = require("react-redux");
29
-
30
- var _react = _interopRequireDefault(require("react"));
31
-
32
- var _redux = require("redux");
33
-
34
- var _reducer = _interopRequireDefault(require("./reducer"));
35
-
36
- var _actions = require("./actions");
37
-
38
- var _propTypes = _interopRequireDefault(require("prop-types"));
39
-
40
- var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
41
-
42
- var _reduxUndo = require("redux-undo");
43
-
44
- var _graphWithControls = _interopRequireDefault(require("../graph-with-controls"));
45
-
46
- var _middleware = require("./middleware");
47
-
48
- var _excluded = ["onChangeMarks", "marks"];
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
- var mapStateToProps = function mapStateToProps(s) {
55
- return {
56
- marks: s.marks.present
57
- };
58
- };
59
-
60
- var mapDispatchToProps = function mapDispatchToProps(dispatch) {
61
- return {
62
- onChangeMarks: function onChangeMarks(m) {
63
- return dispatch((0, _actions.changeMarks)(m));
64
- },
65
- onUndo: function onUndo() {
66
- return dispatch(_reduxUndo.ActionCreators.undo());
67
- },
68
- onRedo: function onRedo() {
69
- return dispatch(_reduxUndo.ActionCreators.redo());
70
- },
71
- onReset: function onReset() {
72
- return dispatch((0, _actions.changeMarks)([]));
73
- }
74
- };
75
- };
76
-
77
- var GraphContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(_graphWithControls["default"]);
78
- /**
79
- * The graph component entry point with undo/redo
80
- * Redux is an implementation detail, hide it in the react component.
81
- */
82
-
83
- exports.GraphContainer = GraphContainer;
84
-
85
- var Root = /*#__PURE__*/function (_React$Component) {
86
- (0, _inherits2["default"])(Root, _React$Component);
87
-
88
- var _super = _createSuper(Root);
89
-
90
- function Root(props) {
91
- var _this;
92
-
93
- (0, _classCallCheck2["default"])(this, Root);
94
- _this = _super.call(this, props);
95
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onStoreChange", function () {
96
- var _this$props = _this.props,
97
- marks = _this$props.marks,
98
- onChangeMarks = _this$props.onChangeMarks;
99
-
100
- var storeState = _this.store.getState();
101
-
102
- if (!(0, _isEqual["default"])(storeState.marks.present, marks)) {
103
- onChangeMarks(storeState.marks.present);
104
- }
105
- });
106
- var r = (0, _reducer["default"])();
107
- _this.store = (0, _redux.createStore)(r, {
108
- marks: props.marks
109
- }, (0, _redux.applyMiddleware)(_middleware.lastActionMiddleware));
110
-
111
- _this.store.subscribe(_this.onStoreChange);
112
-
113
- return _this;
114
- }
115
-
116
- (0, _createClass2["default"])(Root, [{
117
- key: "componentDidUpdate",
118
- value: function componentDidUpdate(prevProps) {
119
- var marks = this.props.marks;
120
- var storeState = this.store.getState();
121
-
122
- if ((0, _isEqual["default"])(storeState.marks.present, marks)) {
123
- return;
124
- }
125
-
126
- if (!(0, _isEqual["default"])(prevProps.marks, marks)) {
127
- this.store.dispatch((0, _actions.changeMarks)(marks));
128
- }
129
- }
130
- }, {
131
- key: "render",
132
- value: function render() {
133
- // eslint-disable-next-line no-unused-vars
134
- var _this$props2 = this.props,
135
- onChangeMarks = _this$props2.onChangeMarks,
136
- marks = _this$props2.marks,
137
- rest = (0, _objectWithoutProperties2["default"])(_this$props2, _excluded);
138
- var correctnessSet = marks && marks.find(function (m) {
139
- return m.correctness;
140
- });
141
-
142
- if (correctnessSet) {
143
- return /*#__PURE__*/_react["default"].createElement(_graphWithControls["default"], (0, _extends2["default"])({}, rest, {
144
- marks: marks,
145
- disabled: correctnessSet
146
- }));
147
- }
148
-
149
- return /*#__PURE__*/_react["default"].createElement(_reactRedux.Provider, {
150
- store: this.store
151
- }, /*#__PURE__*/_react["default"].createElement(GraphContainer, rest));
152
- }
153
- }]);
154
- return Root;
155
- }(_react["default"].Component);
156
-
157
- (0, _defineProperty2["default"])(Root, "propTypes", {
158
- onChangeMarks: _propTypes["default"].func,
159
- marks: _propTypes["default"].array
160
- });
161
- var _default = Root;
162
- exports["default"] = _default;
163
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250YWluZXIvaW5kZXguanN4Il0sIm5hbWVzIjpbIm1hcFN0YXRlVG9Qcm9wcyIsInMiLCJtYXJrcyIsInByZXNlbnQiLCJtYXBEaXNwYXRjaFRvUHJvcHMiLCJkaXNwYXRjaCIsIm9uQ2hhbmdlTWFya3MiLCJtIiwib25VbmRvIiwiQWN0aW9uQ3JlYXRvcnMiLCJ1bmRvIiwib25SZWRvIiwicmVkbyIsIm9uUmVzZXQiLCJHcmFwaENvbnRhaW5lciIsIkdyYXBoV2l0aENvbnRyb2xzIiwiUm9vdCIsInByb3BzIiwic3RvcmVTdGF0ZSIsInN0b3JlIiwiZ2V0U3RhdGUiLCJyIiwibGFzdEFjdGlvbk1pZGRsZXdhcmUiLCJzdWJzY3JpYmUiLCJvblN0b3JlQ2hhbmdlIiwicHJldlByb3BzIiwicmVzdCIsImNvcnJlY3RuZXNzU2V0IiwiZmluZCIsImNvcnJlY3RuZXNzIiwiUmVhY3QiLCJDb21wb25lbnQiLCJQcm9wVHlwZXMiLCJmdW5jIiwiYXJyYXkiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7OztBQUVBLElBQU1BLGVBQWUsR0FBRyxTQUFsQkEsZUFBa0IsQ0FBQ0MsQ0FBRDtBQUFBLFNBQVE7QUFDOUJDLElBQUFBLEtBQUssRUFBRUQsQ0FBQyxDQUFDQyxLQUFGLENBQVFDO0FBRGUsR0FBUjtBQUFBLENBQXhCOztBQUlBLElBQU1DLGtCQUFrQixHQUFHLFNBQXJCQSxrQkFBcUIsQ0FBQ0MsUUFBRDtBQUFBLFNBQWU7QUFDeENDLElBQUFBLGFBQWEsRUFBRSx1QkFBQ0MsQ0FBRDtBQUFBLGFBQU9GLFFBQVEsQ0FBQywwQkFBWUUsQ0FBWixDQUFELENBQWY7QUFBQSxLQUR5QjtBQUV4Q0MsSUFBQUEsTUFBTSxFQUFFO0FBQUEsYUFBTUgsUUFBUSxDQUFDSSwwQkFBZUMsSUFBZixFQUFELENB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dCB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBQcm92aWRlciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IGFwcGx5TWlkZGxld2FyZSwgY3JlYXRlU3RvcmUgfSBmcm9tICdyZWR1eCc7XG5pbXBvcnQgcmVkdWNlciBmcm9tICcuL3JlZHVjZXInO1xuaW1wb3J0IHsgY2hhbmdlTWFya3MgfSBmcm9tICcuL2FjdGlvbnMnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBpc0VxdWFsIGZyb20gJ2xvZGFzaC9pc0VxdWFsJztcbmltcG9ydCB7IEFjdGlvbkNyZWF0b3JzIH0gZnJvbSAncmVkdXgtdW5kbyc7XG5pbXBvcnQgR3JhcGhXaXRoQ29udHJvbHMgZnJvbSAnLi4vZ3JhcGgtd2l0aC1jb250cm9scyc7XG5pbXBvcnQgeyBsYXN0QWN0aW9uTWlkZGxld2FyZSB9IGZyb20gJy4vbWlkZGxld2FyZSc7XG5cbmNvbnN0IG1hcFN0YXRlVG9Qcm9wcyA9IChzKSA9PiAoe1xuICBtYXJrczogcy5tYXJrcy5wcmVzZW50LFxufSk7XG5cbmNvbnN0IG1hcERpc3BhdGNoVG9Qcm9wcyA9IChkaXNwYXRjaCkgPT4gKHtcbiAgb25DaGFuZ2VNYXJrczogKG0pID0+IGRpc3BhdGNoKGNoYW5nZU1hcmtzKG0pKSxcbiAgb25VbmRvOiAoKSA9PiBkaXNwYXRjaChBY3Rpb25DcmVhdG9ycy51bmRvKCkpLFxuICBvblJlZG86ICgpID0+IGRpc3BhdGNoKEFjdGlvbkNyZWF0b3JzLnJlZG8oKSksXG4gIG9uUmVzZXQ6ICgpID0+IGRpc3BhdGNoKGNoYW5nZU1hcmtzKFtdKSksXG59KTtcblxuZXhwb3J0IGNvbnN0IEdyYXBoQ29udGFpbmVyID0gY29ubmVjdChtYXBTdGF0ZVRvUHJvcHMsIG1hcERpc3BhdGNoVG9Qcm9wcykoR3JhcGhXaXRoQ29udHJvbHMpO1xuXG4vKipcbiAqIFRoZSBncmFwaCBjb21wb25lbnQgZW50cnkgcG9pbnQgd2l0aCB1bmRvL3JlZG9cbiAqIFJlZHV4IGlzIGFuIGltcGxlbWVudGF0aW9uIGRldGFpbCwgaGlkZSBpdCBpbiB0aGUgcmVhY3QgY29tcG9uZW50LlxuICovXG5jbGFzcyBSb290IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBvbkNoYW5nZU1hcmtzOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBtYXJrczogUHJvcFR5cGVzLmFycmF5LFxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuXG4gICAgY29uc3QgciA9IHJlZHVjZXIoKTtcbiAgICB0aGlzLnN0b3JlID0gY3JlYXRlU3RvcmUociwgeyBtYXJrczogcHJvcHMubWFya3MgfSwgYXBwbHlNaWRkbGV3YXJlKGxhc3RBY3Rpb25NaWRkbGV3YXJlKSk7XG5cbiAgICB0aGlzLnN0b3JlLnN1YnNjcmliZSh0aGlzLm9uU3RvcmVDaGFuZ2UpO1xuICB9XG5cbiAgY29tcG9uZW50RGlkVXBkYXRlKHByZXZQcm9wcykge1xuICAgIGNvbnN0IHsgbWFya3MgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3Qgc3RvcmVTdGF0ZSA9IHRoaXMuc3RvcmUuZ2V0U3RhdGUoKTtcblxuICAgIGlmIChpc0VxdWFsKHN0b3JlU3RhdGUubWFya3MucHJlc2VudCwgbWFya3MpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCFpc0VxdWFsKHByZXZQcm9wcy5tYXJrcywgbWFya3MpKSB7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKGNoYW5nZU1hcmtzKG1hcmtzKSk7XG4gICAgfVxuICB9XG5cbiAgb25TdG9yZUNoYW5nZSA9ICgpID0+IHtcbiAgICBjb25zdCB7IG1hcmtzLCBvbkNoYW5nZU1hcmtzIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHN0b3JlU3RhdGUgPSB0aGlzLnN0b3JlLmdldFN0YXRlKCk7XG5cbiAgICBpZiAoIWlzRXF1YWwoc3RvcmVTdGF0ZS5tYXJrcy5wcmVzZW50LCBtYXJrcykpIHtcbiAgICAgIG9uQ2hhbmdlTWFya3Moc3RvcmVTdGF0ZS5tYXJrcy5wcmVzZW50KTtcbiAgICB9XG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xuICAgIGNvbnN0IHsgb25DaGFuZ2VNYXJrcywgbWFya3MsIC4uLnJlc3QgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgY29ycmVjdG5lc3NTZXQgPSBtYXJrcyAmJiBtYXJrcy5maW5kKChtKSA9PiBtLmNvcnJlY3RuZXNzKTtcblxuICAgIGlmIChjb3JyZWN0bmVzc1NldCkge1xuICAgICAgcmV0dXJuIDxHcmFwaFdpdGhDb250cm9scyB7Li4ucmVzdH0gbWFya3M9e21hcmtzfSBkaXNhYmxlZD17Y29ycmVjdG5lc3NTZXR9IC8+O1xuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8UHJvdmlkZXIgc3RvcmU9e3RoaXMuc3RvcmV9PlxuICAgICAgICA8R3JhcGhDb250YWluZXIgey4uLnJlc3R9IC8+XG4gICAgICA8L1Byb3ZpZGVyPlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgUm9vdDtcbiJdfQ==
@@ -1,27 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports["default"] = void 0;
7
-
8
- var marks = function marks() {
9
- var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
10
- var action = arguments.length > 1 ? arguments[1] : undefined;
11
-
12
- switch (action.type) {
13
- case 'CHANGE_MARKS':
14
- if (Array.isArray(action.marks)) {
15
- return action.marks;
16
- } else {
17
- throw new Error('marks must be an array');
18
- }
19
-
20
- default:
21
- return state;
22
- }
23
- };
24
-
25
- var _default = marks;
26
- exports["default"] = _default;
27
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250YWluZXIvbWFya3MuanMiXSwibmFtZXMiOlsibWFya3MiLCJzdGF0ZSIsImFjdGlvbiIsInR5cGUiLCJBcnJheSIsImlzQXJyYXkiLCJFcnJvciJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQU1BLEtBQUssR0FBRyxTQUFSQSxLQUFRLEdBQXdCO0FBQUEsTUFBdkJDLEtBQXVCLHVFQUFmLEVBQWU7QUFBQSxNQUFYQyxNQUFXOztBQUNwQyxVQUFRQSxNQUFNLENBQUNDLElBQWY7QUFDRSxTQUFLLGNBQUw7QUFDRSxVQUFJQyxLQUFLLENBQUNDLE9BQU4sQ0FBY0gsTUFBTSxDQUFDRixLQUFyQixDQUFKLEVBQWlDO0FBQy9CLGVBQU9FLE1BQU0sQ0FBQ0YsS0FBZDtBQUNELE9BRkQsTUFFTztBQUNMLGNBQU0sSUFBSU0sS0FBSixDQUFVLHdCQUFWLENBQU47QUFDRDs7QUFDSDtBQUNFLGFBQU9MLEtBQVA7QUFSSjtBQVVELENBWEQ7O2VBYWVELEsiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBtYXJrcyA9IChzdGF0ZSA9IFtdLCBhY3Rpb24pID0+IHtcbiAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICAgIGNhc2UgJ0NIQU5HRV9NQVJLUyc6XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShhY3Rpb24ubWFya3MpKSB7XG4gICAgICAgIHJldHVybiBhY3Rpb24ubWFya3M7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ21hcmtzIG11c3QgYmUgYW4gYXJyYXknKTtcbiAgICAgIH1cbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHN0YXRlO1xuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBtYXJrcztcbiJdfQ==
@@ -1,25 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.lastActionMiddleware = exports.getLastAction = void 0;
7
- var lastAction = null;
8
-
9
- var getLastAction = function getLastAction() {
10
- return lastAction;
11
- };
12
-
13
- exports.getLastAction = getLastAction;
14
-
15
- var lastActionMiddleware = function lastActionMiddleware() {
16
- return function (next) {
17
- return function (action) {
18
- lastAction = action;
19
- return next(action);
20
- };
21
- };
22
- };
23
-
24
- exports.lastActionMiddleware = lastActionMiddleware;
25
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250YWluZXIvbWlkZGxld2FyZS5qcyJdLCJuYW1lcyI6WyJsYXN0QWN0aW9uIiwiZ2V0TGFzdEFjdGlvbiIsImxhc3RBY3Rpb25NaWRkbGV3YXJlIiwibmV4dCIsImFjdGlvbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBSUEsVUFBVSxHQUFHLElBQWpCOztBQUNPLElBQU1DLGFBQWEsR0FBRyxTQUFoQkEsYUFBZ0I7QUFBQSxTQUFNRCxVQUFOO0FBQUEsQ0FBdEI7Ozs7QUFFQSxJQUFNRSxvQkFBb0IsR0FBRyxTQUF2QkEsb0JBQXVCO0FBQUEsU0FBTSxVQUFDQyxJQUFEO0FBQUEsV0FBVSxVQUFDQyxNQUFELEVBQVk7QUFDOURKLE1BQUFBLFVBQVUsR0FBR0ksTUFBYjtBQUNBLGFBQU9ELElBQUksQ0FBQ0MsTUFBRCxDQUFYO0FBQ0QsS0FIeUM7QUFBQSxHQUFOO0FBQUEsQ0FBN0IiLCJzb3VyY2VzQ29udGVudCI6WyJsZXQgbGFzdEFjdGlvbiA9IG51bGw7XG5leHBvcnQgY29uc3QgZ2V0TGFzdEFjdGlvbiA9ICgpID0+IGxhc3RBY3Rpb247XG5cbmV4cG9ydCBjb25zdCBsYXN0QWN0aW9uTWlkZGxld2FyZSA9ICgpID0+IChuZXh0KSA9PiAoYWN0aW9uKSA9PiB7XG4gIGxhc3RBY3Rpb24gPSBhY3Rpb247XG4gIHJldHVybiBuZXh0KGFjdGlvbik7XG59O1xuIl19
@@ -1,25 +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["default"] = void 0;
9
-
10
- var _redux = require("redux");
11
-
12
- var _marks = _interopRequireDefault(require("./marks"));
13
-
14
- var _reduxUndo = _interopRequireDefault(require("redux-undo"));
15
-
16
- var _default = function _default() {
17
- return (0, _redux.combineReducers)({
18
- marks: (0, _reduxUndo["default"])(_marks["default"], {
19
- debug: false
20
- })
21
- });
22
- };
23
-
24
- exports["default"] = _default;
25
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250YWluZXIvcmVkdWNlci5qcyJdLCJuYW1lcyI6WyJtYXJrcyIsImRlYnVnIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7ZUFFZTtBQUFBLFNBQU0sNEJBQWdCO0FBQUVBLElBQUFBLEtBQUssRUFBRSwyQkFBU0EsaUJBQVQsRUFBZ0I7QUFBRUMsTUFBQUEsS0FBSyxFQUFFO0FBQVQsS0FBaEI7QUFBVCxHQUFoQixDQUFOO0FBQUEsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbWJpbmVSZWR1Y2VycyB9IGZyb20gJ3JlZHV4JztcbmltcG9ydCBtYXJrcyBmcm9tICcuL21hcmtzJztcbmltcG9ydCB1bmRvYWJsZSBmcm9tICdyZWR1eC11bmRvJztcblxuZXhwb3J0IGRlZmF1bHQgKCkgPT4gY29tYmluZVJlZHVjZXJzKHsgbWFya3M6IHVuZG9hYmxlKG1hcmtzLCB7IGRlYnVnOiBmYWxzZSB9KSB9KTtcbiJdfQ==
@@ -1,109 +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.getLabelPosition = exports["default"] = exports.CoordinatesLabel = void 0;
9
-
10
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
-
12
- var _react = _interopRequireDefault(require("react"));
13
-
14
- var _propTypes = _interopRequireDefault(require("prop-types"));
15
-
16
- var _plot = require("@pie-lib/plot");
17
-
18
- var _renderUi = require("@pie-lib/render-ui");
19
-
20
- var _styles = require("@material-ui/core/styles");
21
-
22
- var _InputBase = _interopRequireDefault(require("@material-ui/core/InputBase"));
23
-
24
- var _utils = require("./utils");
25
-
26
- 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; }
27
-
28
- 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; }
29
-
30
- var styles = function styles(theme) {
31
- return {
32
- input: {
33
- fontFamily: theme.typography.fontFamily,
34
- fontSize: theme.typography.fontSize,
35
- borderRadius: '8px',
36
- background: theme.palette.common.white,
37
- color: _renderUi.color.defaults.PRIMARY_DARK
38
- },
39
- inputLabel: {
40
- padding: 0
41
- }
42
- };
43
- };
44
-
45
- var getLabelPosition = function getLabelPosition(graphProps, x, y, labelLength) {
46
- var scale = graphProps.scale,
47
- domain = graphProps.domain,
48
- range = graphProps.range; // treat corner cases for maximum and minimum
49
-
50
- var topShift = y === range.min ? 16 : y === range.max ? 0 : 8;
51
- var leftShift = 10;
52
- var rightEdge = scale.x(x) + labelLength + leftShift;
53
-
54
- if (rightEdge >= scale.x(domain.max)) {
55
- return {
56
- left: scale.x(x) - leftShift - labelLength,
57
- top: scale.y(y) - topShift
58
- };
59
- }
60
-
61
- return {
62
- left: scale.x(x) + leftShift,
63
- top: scale.y(y) - topShift
64
- };
65
- };
66
-
67
- exports.getLabelPosition = getLabelPosition;
68
-
69
- var CoordinatesLabel = function CoordinatesLabel(_ref) {
70
- var x = _ref.x,
71
- y = _ref.y,
72
- graphProps = _ref.graphProps,
73
- classes = _ref.classes;
74
- var label = "(".concat((0, _utils.roundNumber)(x), ", ").concat((0, _utils.roundNumber)(y), ")");
75
- var labelLength = (label.length || 0) * 6;
76
- var labelPosition = getLabelPosition(graphProps, x, y, labelLength);
77
-
78
- var style = _objectSpread({
79
- position: 'absolute',
80
- pointerEvents: 'auto',
81
- width: labelLength,
82
- padding: 0
83
- }, labelPosition);
84
-
85
- return /*#__PURE__*/_react["default"].createElement(_InputBase["default"], {
86
- style: style,
87
- classes: {
88
- input: classes.inputLabel
89
- },
90
- className: classes.input,
91
- value: label,
92
- inputProps: {
93
- ariaLabel: 'naked'
94
- }
95
- });
96
- };
97
-
98
- exports.CoordinatesLabel = CoordinatesLabel;
99
- CoordinatesLabel.propTypes = {
100
- graphProps: _plot.types.GraphPropsType,
101
- classes: _propTypes["default"].object,
102
- x: _propTypes["default"].number,
103
- y: _propTypes["default"].number
104
- };
105
-
106
- var _default = (0, _styles.withStyles)(styles)(CoordinatesLabel);
107
-
108
- exports["default"] = _default;
109
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb29yZGluYXRlcy1sYWJlbC5qc3giXSwibmFtZXMiOlsic3R5bGVzIiwidGhlbWUiLCJpbnB1dCIsImZvbnRGYW1pbHkiLCJ0eXBvZ3JhcGh5IiwiZm9udFNpemUiLCJib3JkZXJSYWRpdXMiLCJiYWNrZ3JvdW5kIiwicGFsZXR0ZSIsImNvbW1vbiIsIndoaXRlIiwiY29sb3IiLCJkZWZhdWx0cyIsIlBSSU1BUllfREFSSyIsImlucHV0TGFiZWwiLCJwYWRkaW5nIiwiZ2V0TGFiZWxQb3NpdGlvbiIsImdyYXBoUHJvcHMiLCJ4IiwieSIsImxhYmVsTGVuZ3RoIiwic2NhbGUiLCJkb21haW4iLCJyYW5nZSIsInRvcFNoaWZ0IiwibWluIiwibWF4IiwibGVmdFNoaWZ0IiwicmlnaHRFZGdlIiwibGVmdCIsInRvcCIsIkNvb3JkaW5hdGVzTGFiZWwiLCJjbGFzc2VzIiwibGFiZWwiLCJsZW5ndGgiLCJsYWJlbFBvc2l0aW9uIiwic3R5bGUiLCJwb3NpdGlvbiIsInBvaW50ZXJFdmVudHMiLCJ3aWR0aCIsImFyaWFMYWJlbCIsInByb3BUeXBlcyIsInR5cGVzIiwiR3JhcGhQcm9wc1R5cGUiLCJQcm9wVHlwZXMiLCJvYmplY3QiLCJudW1iZXIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7OztBQUVBLElBQU1BLE1BQU0sR0FBRyxTQUFUQSxNQUFTLENBQUNDLEtBQUQ7QUFBQSxTQUFZO0FBQ3pCQyxJQUFBQSxLQUFLLEVBQUU7QUFDTEMsTUFBQUEsVUFBVSxFQUFFRixLQUFLLENBQUNHLFVBQU4sQ0FBaUJELFVBRHhCO0FBRUxFLE1BQUFBLFFBQVEsRUFBRUosS0FBSyxDQUFDRyxVQUFOLENBQWlCQyxRQUZ0QjtBQUdMQyxNQUFBQSxZQUFZLEVBQUUsS0FIVDtBQUlMQyxNQUFBQSxVQUFVLEVBQUVOLEtBQUssQ0FBQ08sT0FBTixDQUFjQyxNQUFkLENBQXFCQyxLQUo1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QyxjQURTO0FBRTNCWCxFQUFBQSxPQUFPLEVBQUVZLHNCQUFVQyxNQUZRO0FBRzNCM0IsRUFBQUEsQ0FBQyxFQUFFMEIsc0JBQVVFLE1BSGM7QUFJM0IzQixFQUFBQSxDQUFDLEVBQUV5QixzQkFBVUU7QUFKYyxDQUE3Qjs7ZUFPZSx3QkFBVzlDLE1BQVgsRUFBbUIrQixnQkFBbkIsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgdHlwZXMgfSBmcm9tICdAcGllLWxpYi9wbG90JztcbmltcG9ydCB7IGNvbG9yIH0gZnJvbSAnQHBpZS1saWIvcmVuZGVyLXVpJztcbmltcG9ydCB7IHdpdGhTdHlsZXMgfSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9zdHlsZXMnO1xuaW1wb3J0IElucHV0QmFzZSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9JbnB1dEJhc2UnO1xuaW1wb3J0IHsgcm91bmROdW1iZXIgfSBmcm9tICcuL3V0aWxzJztcblxuY29uc3Qgc3R5bGVzID0gKHRoZW1lKSA9PiAoe1xuICBpbnB1dDoge1xuICAgIGZvbnRGYW1pbHk6IHRoZW1lLnR5cG9ncmFwaHkuZm9udEZhbWlseSxcbiAgICBmb250U2l6ZTogdGhlbWUudHlwb2dyYXBoeS5mb250U2l6ZSxcbiAgICBib3JkZXJSYWRpdXM6ICc4cHgnLFxuICAgIGJhY2tncm91bmQ6IHRoZW1lLnBhbGV0dGUuY29tbW9uLndoaXRlLFxuICAgIGNvbG9yOiBjb2xvci5kZWZhdWx0cy5QUklNQVJZX0RBUkssXG4gIH0sXG4gIGlucHV0TGFiZWw6IHtcbiAgICBwYWRkaW5nOiAwLFxuICB9LFxufSk7XG5cbmV4cG9ydCBjb25zdCBnZXRMYWJlbFBvc2l0aW9uID0gKGdyYXBoUHJvcHMsIHgsIHksIGxhYmVsTGVuZ3RoKSA9PiB7XG4gIGNvbnN0IHsgc2NhbGUsIGRvbWFpbiwgcmFuZ2UgfSA9IGdyYXBoUHJvcHM7XG4gIC8vIHRyZWF0IGNvcm5lciBjYXNlcyBmb3IgbWF4aW11bSBhbmQgbWluaW11bVxuICBjb25zdCB0b3BTaGlmdCA9IHkgPT09IHJhbmdlLm1pbiA/IDE2IDogeSA9PT0gcmFuZ2UubWF4ID8gMCA6IDg7XG4gIGNvbnN0IGxlZnRTaGlmdCA9IDEwO1xuICBjb25zdCByaWdodEVkZ2UgPSBzY2FsZS54KHgpICsgbGFiZWxMZW5ndGggKyBsZWZ0U2hpZnQ7XG5cbiAgaWYgKHJpZ2h0RWRnZSA+PSBzY2FsZS54KGRvbWFpbi5tYXgpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxlZnQ6IHNjYWxlLngoeCkgLSBsZWZ0U2hpZnQgLSBsYWJlbExlbmd0aCxcbiAgICAgIHRvcDogc2NhbGUueSh5KSAtIHRvcFNoaWZ0LFxuICAgIH07XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGxlZnQ6IHNjYWxlLngoeCkgKyBsZWZ0U2hpZnQsXG4gICAgdG9wOiBzY2FsZS55KHkpIC0gdG9wU2hpZnQsXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgQ29vcmRpbmF0ZXNMYWJlbCA9ICh7IHgsIHksIGdyYXBoUHJvcHMsIGNsYXNzZXMgfSkgPT4ge1xuICBjb25zdCBsYWJlbCA9IGAoJHtyb3VuZE51bWJlcih4KX0sICR7cm91bmROdW1iZXIoeSl9KWA7XG4gIGNvbnN0IGxhYmVsTGVuZ3RoID0gKGxhYmVsLmxlbmd0aCB8fCAwKSAqIDY7XG4gIGNvbnN0IGxhYmVsUG9zaXRpb24gPSBnZXRMYWJlbFBvc2l0aW9uKGdyYXBoUHJvcHMsIHgsIHksIGxhYmVsTGVuZ3RoKTtcblxuICBjb25zdCBzdHlsZSA9IHtcbiAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICBwb2ludGVyRXZlbnRzOiAnYXV0bycsXG4gICAgd2lkdGg6IGxhYmVsTGVuZ3RoLFxuICAgIHBhZGRpbmc6IDAsXG4gICAgLi4ubGFiZWxQb3NpdGlvbixcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxJbnB1dEJhc2VcbiAgICAgIHN0eWxlPXtzdHlsZX1cbiAgICAgIGNsYXNzZXM9e3sgaW5wdXQ6IGNsYXNzZXMuaW5wdXRMYWJlbCB9fVxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLmlucHV0fVxuICAgICAgdmFsdWU9e2xhYmVsfVxuICAgICAgaW5wdXRQcm9wcz17eyBhcmlhTGFiZWw6ICduYWtlZCcgfX1cbiAgICAvPlxuICApO1xufTtcblxuQ29vcmRpbmF0ZXNMYWJlbC5wcm9wVHlwZXMgPSB7XG4gIGdyYXBoUHJvcHM6IHR5cGVzLkdyYXBoUHJvcHNUeXBlLFxuICBjbGFzc2VzOiBQcm9wVHlwZXMub2JqZWN0LFxuICB4OiBQcm9wVHlwZXMubnVtYmVyLFxuICB5OiBQcm9wVHlwZXMubnVtYmVyLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgd2l0aFN0eWxlcyhzdHlsZXMpKENvb3JkaW5hdGVzTGFiZWwpO1xuIl19