@pie-lib/graphing-solution-set 3.1.0-next.2 → 3.1.0-next.25

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 (84) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/NEXT.CHANGELOG.json +16 -1
  3. package/lib/axis/arrow.js +82 -0
  4. package/lib/axis/arrow.js.map +1 -0
  5. package/lib/axis/axes.js +341 -0
  6. package/lib/axis/axes.js.map +1 -0
  7. package/lib/axis/index.js +28 -0
  8. package/lib/axis/index.js.map +1 -0
  9. package/lib/bg.js +120 -0
  10. package/lib/bg.js.map +1 -0
  11. package/lib/container/actions.js +19 -0
  12. package/lib/container/actions.js.map +1 -0
  13. package/lib/container/index.js +126 -0
  14. package/lib/container/index.js.map +1 -0
  15. package/lib/container/marks.js +24 -0
  16. package/lib/container/marks.js.map +1 -0
  17. package/lib/container/middleware.js +20 -0
  18. package/lib/container/middleware.js.map +1 -0
  19. package/lib/container/reducer.js +19 -0
  20. package/lib/container/reducer.js.map +1 -0
  21. package/lib/coordinates-label.js +88 -0
  22. package/lib/coordinates-label.js.map +1 -0
  23. package/lib/graph-with-controls.js +316 -0
  24. package/lib/graph-with-controls.js.map +1 -0
  25. package/lib/graph.js +372 -0
  26. package/lib/graph.js.map +1 -0
  27. package/lib/grid-setup.js +417 -0
  28. package/lib/grid-setup.js.map +1 -0
  29. package/lib/grid.js +153 -0
  30. package/lib/grid.js.map +1 -0
  31. package/lib/index.js +47 -0
  32. package/lib/index.js.map +1 -0
  33. package/lib/labels.js +212 -0
  34. package/lib/labels.js.map +1 -0
  35. package/lib/mark-label.js +175 -0
  36. package/lib/mark-label.js.map +1 -0
  37. package/lib/toggle-bar.js +265 -0
  38. package/lib/toggle-bar.js.map +1 -0
  39. package/lib/tool-menu.js +221 -0
  40. package/lib/tool-menu.js.map +1 -0
  41. package/lib/tools/index.js +25 -0
  42. package/lib/tools/index.js.map +1 -0
  43. package/lib/tools/line/component.js +105 -0
  44. package/lib/tools/line/component.js.map +1 -0
  45. package/lib/tools/line/index.js +12 -0
  46. package/lib/tools/line/index.js.map +1 -0
  47. package/lib/tools/polygon/component.js +378 -0
  48. package/lib/tools/polygon/component.js.map +1 -0
  49. package/lib/tools/polygon/index.js +101 -0
  50. package/lib/tools/polygon/index.js.map +1 -0
  51. package/lib/tools/polygon/line.js +130 -0
  52. package/lib/tools/polygon/line.js.map +1 -0
  53. package/lib/tools/polygon/polygon.js +150 -0
  54. package/lib/tools/polygon/polygon.js.map +1 -0
  55. package/lib/tools/shared/arrow-head.js +65 -0
  56. package/lib/tools/shared/arrow-head.js.map +1 -0
  57. package/lib/tools/shared/line/index.js +554 -0
  58. package/lib/tools/shared/line/index.js.map +1 -0
  59. package/lib/tools/shared/line/line-path.js +137 -0
  60. package/lib/tools/shared/line/line-path.js.map +1 -0
  61. package/lib/tools/shared/line/with-root-edge.js +132 -0
  62. package/lib/tools/shared/line/with-root-edge.js.map +1 -0
  63. package/lib/tools/shared/point/arrow-point.js +89 -0
  64. package/lib/tools/shared/point/arrow-point.js.map +1 -0
  65. package/lib/tools/shared/point/arrow.js +73 -0
  66. package/lib/tools/shared/point/arrow.js.map +1 -0
  67. package/lib/tools/shared/point/base-point.js +148 -0
  68. package/lib/tools/shared/point/base-point.js.map +1 -0
  69. package/lib/tools/shared/point/index.js +96 -0
  70. package/lib/tools/shared/point/index.js.map +1 -0
  71. package/lib/tools/shared/styles.js +27 -0
  72. package/lib/tools/shared/styles.js.map +1 -0
  73. package/lib/tools/shared/types.js +16 -0
  74. package/lib/tools/shared/types.js.map +1 -0
  75. package/lib/undo-redo.js +69 -0
  76. package/lib/undo-redo.js.map +1 -0
  77. package/lib/use-debounce.js +27 -0
  78. package/lib/use-debounce.js.map +1 -0
  79. package/lib/utils.js +253 -0
  80. package/lib/utils.js.map +1 -0
  81. package/package.json +14 -14
  82. package/src/__tests__/graph-with-controls.test.jsx +41 -0
  83. package/src/__tests__/toggle-bar.test.jsx +41 -0
  84. package/src/bg.jsx +5 -5
package/lib/bg.js ADDED
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.object.define-property.js");
4
+ require("core-js/modules/es.reflect.construct.js");
5
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
+ Object.defineProperty(exports, "__esModule", {
7
+ value: true
8
+ });
9
+ exports["default"] = void 0;
10
+ require("core-js/modules/es.array.concat.js");
11
+ require("core-js/modules/es.array.index-of.js");
12
+ require("core-js/modules/es.array.reduce.js");
13
+ require("core-js/modules/es.object.to-string.js");
14
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
16
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
17
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
18
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
20
+ var _react = _interopRequireDefault(require("react"));
21
+ var _propTypes = _interopRequireDefault(require("prop-types"));
22
+ var _d3Selection = require("d3-selection");
23
+ var _plot = require("@pie-lib/plot");
24
+ var _utils = require("./utils");
25
+ function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
26
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
27
+ var Bg = exports["default"] = /*#__PURE__*/function (_React$Component) {
28
+ function Bg() {
29
+ var _this;
30
+ (0, _classCallCheck2["default"])(this, Bg);
31
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
32
+ args[_key] = arguments[_key];
33
+ }
34
+ _this = _callSuper(this, Bg, [].concat(args));
35
+ (0, _defineProperty2["default"])(_this, "getRectPadding", function () {
36
+ var graphProps = _this.props.graphProps;
37
+ return (0, _utils.thinnerShapesNeeded)(graphProps) ? 6 : 10;
38
+ });
39
+ /**
40
+ * Note: we use d3 click + pointer to give us domain values directly.
41
+ * Saves us having to calculate them ourselves from a MouseEvent.
42
+ */
43
+ (0, _defineProperty2["default"])(_this, "onRectClick", function (rect, event) {
44
+ var _this$props = _this.props,
45
+ onClick = _this$props.onClick,
46
+ graphProps = _this$props.graphProps;
47
+ var scale = graphProps.scale;
48
+ var padding = _this.getRectPadding();
49
+ var coords = (0, _d3Selection.pointer)(event, rect.node());
50
+
51
+ // decrease the padding from coordinates to indicate the correct point clicked
52
+ var x = scale.x.invert(coords[0] - padding);
53
+ var y = scale.y.invert(coords[1] - padding);
54
+ var rowTicks = (0, _utils.getTickValues)(graphProps.range);
55
+ var columnTicks = (0, _utils.getTickValues)(graphProps.domain);
56
+ var closest = function closest(ticks, value) {
57
+ return ticks.length && ticks.reduce(function (prev, curr) {
58
+ var currentDistance = Math.abs(curr - value);
59
+ var previousDistance = Math.abs(prev - value);
60
+ return currentDistance <= previousDistance ? curr : prev;
61
+ });
62
+ };
63
+ var snapped = {};
64
+ if (columnTicks.indexOf(x) >= 0 && rowTicks.indexOf(y) >= 0) {
65
+ snapped.x = x;
66
+ snapped.y = y;
67
+ } else {
68
+ snapped.x = closest(columnTicks, x);
69
+ snapped.y = closest(rowTicks, y);
70
+ }
71
+ onClick(snapped);
72
+ });
73
+ return _this;
74
+ }
75
+ (0, _inherits2["default"])(Bg, _React$Component);
76
+ return (0, _createClass2["default"])(Bg, [{
77
+ key: "componentDidMount",
78
+ value: function componentDidMount() {
79
+ var _this2 = this;
80
+ var rect = (0, _d3Selection.select)(this.rect);
81
+ rect.on('click', function (event) {
82
+ return _this2.onRectClick(rect, event);
83
+ });
84
+ }
85
+ }, {
86
+ key: "shouldComponentUpdate",
87
+ value: function shouldComponentUpdate(nextProps) {
88
+ return !_plot.utils.isDomainRangeEqual(this.props.graphProps, nextProps.graphProps) || this.props.width !== nextProps.width || this.props.height !== nextProps.height;
89
+ }
90
+ }, {
91
+ key: "render",
92
+ value: function render() {
93
+ var _this3 = this;
94
+ var _this$props2 = this.props,
95
+ width = _this$props2.width,
96
+ height = _this$props2.height;
97
+ var padding = this.getRectPadding();
98
+
99
+ // expand the size of clickable area so a small area outside the edges of the grid lines to be clickable
100
+ return /*#__PURE__*/_react["default"].createElement("rect", {
101
+ ref: function ref(rect) {
102
+ return _this3.rect = rect;
103
+ },
104
+ transform: "translate(-".concat(padding, ", -").concat(padding, ")"),
105
+ fill: "red",
106
+ fillOpacity: "0.0",
107
+ width: width + padding * 2,
108
+ height: height + padding * 2
109
+ });
110
+ }
111
+ }]);
112
+ }(_react["default"].Component);
113
+ (0, _defineProperty2["default"])(Bg, "propTypes", {
114
+ width: _propTypes["default"].number.isRequired,
115
+ height: _propTypes["default"].number.isRequired,
116
+ onClick: _propTypes["default"].func.isRequired,
117
+ graphProps: _plot.types.GraphPropsType.isRequired
118
+ });
119
+ (0, _defineProperty2["default"])(Bg, "defaultProps", {});
120
+ //# sourceMappingURL=bg.js.map
package/lib/bg.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bg.js","names":["_react","_interopRequireDefault","require","_propTypes","_d3Selection","_plot","_utils","_callSuper","t","o","e","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","prototype","valueOf","call","Bg","exports","_React$Component","_this","_classCallCheck2","_len","arguments","length","args","Array","_key","concat","_defineProperty2","graphProps","props","thinnerShapesNeeded","rect","event","_this$props","onClick","scale","padding","getRectPadding","coords","pointer","node","x","invert","y","rowTicks","getTickValues","range","columnTicks","domain","closest","ticks","value","reduce","prev","curr","currentDistance","Math","abs","previousDistance","snapped","indexOf","_inherits2","_createClass2","key","componentDidMount","_this2","select","on","onRectClick","shouldComponentUpdate","nextProps","utils","isDomainRangeEqual","width","height","render","_this3","_this$props2","createElement","ref","transform","fill","fillOpacity","React","Component","PropTypes","number","isRequired","func","types","GraphPropsType"],"sources":["../src/bg.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { select, pointer } from 'd3-selection';\nimport { types, utils } from '@pie-lib/plot';\nimport { getTickValues, thinnerShapesNeeded } from './utils';\n\nexport default class Bg extends React.Component {\n static propTypes = {\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n onClick: PropTypes.func.isRequired,\n graphProps: types.GraphPropsType.isRequired,\n };\n\n static defaultProps = {};\n\n componentDidMount() {\n const rect = select(this.rect);\n\n rect.on('click', (event) => this.onRectClick(rect, event));\n }\n\n shouldComponentUpdate(nextProps) {\n return (\n !utils.isDomainRangeEqual(this.props.graphProps, nextProps.graphProps) ||\n this.props.width !== nextProps.width ||\n this.props.height !== nextProps.height\n );\n }\n\n getRectPadding = () => {\n const { graphProps } = this.props;\n\n return thinnerShapesNeeded(graphProps) ? 6 : 10;\n };\n\n /**\n * Note: we use d3 click + pointer to give us domain values directly.\n * Saves us having to calculate them ourselves from a MouseEvent.\n */\n onRectClick = (rect, event) => {\n const { onClick, graphProps } = this.props;\n const { scale } = graphProps;\n\n const padding = this.getRectPadding();\n const coords = pointer(event, rect.node());\n\n // decrease the padding from coordinates to indicate the correct point clicked\n const x = scale.x.invert(coords[0] - padding);\n const y = scale.y.invert(coords[1] - padding);\n\n const rowTicks = getTickValues(graphProps.range);\n const columnTicks = getTickValues(graphProps.domain);\n\n const closest = (ticks, value) => {\n return (\n ticks.length &&\n ticks.reduce((prev, curr) => {\n const currentDistance = Math.abs(curr - value);\n const previousDistance = Math.abs(prev - value);\n\n return currentDistance <= previousDistance ? curr : prev;\n })\n );\n };\n\n let snapped = {};\n\n if (columnTicks.indexOf(x) >= 0 && rowTicks.indexOf(y) >= 0) {\n snapped.x = x;\n snapped.y = y;\n } else {\n snapped.x = closest(columnTicks, x);\n snapped.y = closest(rowTicks, y);\n }\n\n onClick(snapped);\n };\n\n render() {\n const { width, height } = this.props;\n const padding = this.getRectPadding();\n\n // expand the size of clickable area so a small area outside the edges of the grid lines to be clickable\n return (\n <rect\n ref={(rect) => (this.rect = rect)}\n transform={`translate(-${padding}, -${padding})`}\n fill=\"red\"\n fillOpacity=\"0.0\"\n width={width + padding * 2}\n height={height + padding * 2}\n />\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.object.define-property.js");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.changeMarks = exports.addMark = void 0;
8
+ var addMark = exports.addMark = function addMark() {
9
+ return {
10
+ type: 'ADD_MARK'
11
+ };
12
+ };
13
+ var changeMarks = exports.changeMarks = function changeMarks(marks) {
14
+ return {
15
+ type: 'CHANGE_MARKS',
16
+ marks: marks
17
+ };
18
+ };
19
+ //# sourceMappingURL=actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.js","names":["addMark","exports","type","changeMarks","marks"],"sources":["../../src/container/actions.js"],"sourcesContent":["export const addMark = () => ({\n type: 'ADD_MARK',\n});\n\nexport const changeMarks = (marks) => ({\n type: 'CHANGE_MARKS',\n marks,\n});\n"],"mappings":";;;;;;;AAAO,IAAMA,OAAO,GAAAC,OAAA,CAAAD,OAAA,GAAG,SAAVA,OAAOA,CAAA;EAAA,OAAU;IAC5BE,IAAI,EAAE;EACR,CAAC;AAAA,CAAC;AAEK,IAAMC,WAAW,GAAAF,OAAA,CAAAE,WAAA,GAAG,SAAdA,WAAWA,CAAIC,KAAK;EAAA,OAAM;IACrCF,IAAI,EAAE,cAAc;IACpBE,KAAK,EAALA;EACF,CAAC;AAAA,CAAC","ignoreList":[]}
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.object.define-property.js");
4
+ require("core-js/modules/es.reflect.construct.js");
5
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
+ Object.defineProperty(exports, "__esModule", {
7
+ value: true
8
+ });
9
+ exports["default"] = exports.GraphContainer = void 0;
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
12
+ require("core-js/modules/es.array.find.js");
13
+ require("core-js/modules/es.array.includes.js");
14
+ require("core-js/modules/es.object.to-string.js");
15
+ require("core-js/modules/es.string.includes.js");
16
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
17
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
18
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
20
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
21
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
22
+ var _reactRedux = require("react-redux");
23
+ var _react = _interopRequireDefault(require("react"));
24
+ var _redux = require("redux");
25
+ var _reducer = _interopRequireDefault(require("./reducer"));
26
+ var _actions = require("./actions");
27
+ var _propTypes = _interopRequireDefault(require("prop-types"));
28
+ var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
29
+ var _reduxUndo = require("redux-undo");
30
+ var _graphWithControls = _interopRequireDefault(require("../graph-with-controls"));
31
+ var _middleware = require("./middleware");
32
+ var _excluded = ["onChangeMarks", "marks"];
33
+ function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
34
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
35
+ var mapStateToProps = function mapStateToProps(s) {
36
+ return {
37
+ marks: s.marks.present
38
+ };
39
+ };
40
+ var mapDispatchToProps = function mapDispatchToProps(dispatch) {
41
+ return {
42
+ onChangeMarks: function onChangeMarks(m) {
43
+ return dispatch((0, _actions.changeMarks)(m));
44
+ },
45
+ onUndo: function onUndo() {
46
+ return dispatch(_reduxUndo.ActionCreators.undo());
47
+ },
48
+ onRedo: function onRedo() {
49
+ return dispatch(_reduxUndo.ActionCreators.redo());
50
+ },
51
+ onReset: function onReset() {
52
+ return dispatch((0, _actions.changeMarks)([]));
53
+ }
54
+ };
55
+ };
56
+ var GraphContainer = exports.GraphContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(_graphWithControls["default"]);
57
+
58
+ /**
59
+ * The graph component entry point with undo/redo
60
+ * Redux is an implementation detail, hide it in the react component.
61
+ */
62
+ var Root = /*#__PURE__*/function (_React$Component) {
63
+ function Root(props) {
64
+ var _this;
65
+ (0, _classCallCheck2["default"])(this, Root);
66
+ _this = _callSuper(this, Root, [props]);
67
+ (0, _defineProperty2["default"])(_this, "onStoreChange", function () {
68
+ var _this$props = _this.props,
69
+ marks = _this$props.marks,
70
+ onChangeMarks = _this$props.onChangeMarks;
71
+ var storeState = _this.store.getState();
72
+ var lastAction = (0, _middleware.getLastAction)();
73
+ var isUndoOperation = lastAction.type.includes('UNDO') || lastAction.type.includes('REDO');
74
+ if (!(0, _isEqual["default"])(storeState.marks.present, marks)) {
75
+ onChangeMarks(storeState.marks.present, isUndoOperation);
76
+ }
77
+ });
78
+ var r = (0, _reducer["default"])();
79
+ _this.store = (0, _redux.createStore)(r, {
80
+ marks: props.marks
81
+ }, (0, _redux.applyMiddleware)(_middleware.lastActionMiddleware));
82
+ _this.store.subscribe(_this.onStoreChange);
83
+ return _this;
84
+ }
85
+ (0, _inherits2["default"])(Root, _React$Component);
86
+ return (0, _createClass2["default"])(Root, [{
87
+ key: "componentDidUpdate",
88
+ value: function componentDidUpdate(prevProps) {
89
+ var marks = this.props.marks;
90
+ var storeState = this.store.getState();
91
+ if ((0, _isEqual["default"])(storeState.marks.present, marks)) {
92
+ return;
93
+ }
94
+ if (!(0, _isEqual["default"])(prevProps.marks, marks)) {
95
+ this.store.dispatch((0, _actions.changeMarks)(marks));
96
+ }
97
+ }
98
+ }, {
99
+ key: "render",
100
+ value: function render() {
101
+ // eslint-disable-next-line no-unused-vars
102
+ var _this$props2 = this.props,
103
+ onChangeMarks = _this$props2.onChangeMarks,
104
+ marks = _this$props2.marks,
105
+ rest = (0, _objectWithoutProperties2["default"])(_this$props2, _excluded);
106
+ var correctnessSet = marks && marks.find(function (m) {
107
+ return m.correctness;
108
+ });
109
+ if (correctnessSet) {
110
+ return /*#__PURE__*/_react["default"].createElement(_graphWithControls["default"], (0, _extends2["default"])({}, rest, {
111
+ marks: marks,
112
+ disabled: correctnessSet
113
+ }));
114
+ }
115
+ return /*#__PURE__*/_react["default"].createElement(_reactRedux.Provider, {
116
+ store: this.store
117
+ }, /*#__PURE__*/_react["default"].createElement(GraphContainer, rest));
118
+ }
119
+ }]);
120
+ }(_react["default"].Component);
121
+ (0, _defineProperty2["default"])(Root, "propTypes", {
122
+ onChangeMarks: _propTypes["default"].func,
123
+ marks: _propTypes["default"].array
124
+ });
125
+ var _default = exports["default"] = Root;
126
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["_reactRedux","require","_react","_interopRequireDefault","_redux","_reducer","_actions","_propTypes","_isEqual","_reduxUndo","_graphWithControls","_middleware","_excluded","_callSuper","t","o","e","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","prototype","valueOf","call","mapStateToProps","s","marks","present","mapDispatchToProps","dispatch","onChangeMarks","m","changeMarks","onUndo","ActionCreators","undo","onRedo","redo","onReset","GraphContainer","exports","connect","GraphWithControls","Root","_React$Component","props","_this","_classCallCheck2","_defineProperty2","_this$props","storeState","store","getState","lastAction","getLastAction","isUndoOperation","type","includes","isEqual","r","reducer","createStore","applyMiddleware","lastActionMiddleware","subscribe","onStoreChange","_inherits2","_createClass2","key","value","componentDidUpdate","prevProps","render","_this$props2","rest","_objectWithoutProperties2","correctnessSet","find","correctness","createElement","_extends2","disabled","Provider","React","Component","PropTypes","func","array","_default"],"sources":["../../src/container/index.jsx"],"sourcesContent":["import { connect } from 'react-redux';\nimport React from 'react';\nimport { Provider } from 'react-redux';\nimport { applyMiddleware, createStore } from 'redux';\nimport reducer from './reducer';\nimport { changeMarks } from './actions';\nimport PropTypes from 'prop-types';\nimport isEqual from 'lodash/isEqual';\nimport { ActionCreators } from 'redux-undo';\nimport GraphWithControls from '../graph-with-controls';\nimport { lastActionMiddleware, getLastAction } from './middleware';\n\nconst mapStateToProps = (s) => ({\n marks: s.marks.present,\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n onChangeMarks: (m) => dispatch(changeMarks(m)),\n onUndo: () => dispatch(ActionCreators.undo()),\n onRedo: () => dispatch(ActionCreators.redo()),\n onReset: () => dispatch(changeMarks([])),\n});\n\nexport const GraphContainer = connect(mapStateToProps, mapDispatchToProps)(GraphWithControls);\n\n/**\n * The graph component entry point with undo/redo\n * Redux is an implementation detail, hide it in the react component.\n */\nclass Root extends React.Component {\n static propTypes = {\n onChangeMarks: PropTypes.func,\n marks: PropTypes.array,\n };\n\n constructor(props) {\n super(props);\n\n const r = reducer();\n this.store = createStore(r, { marks: props.marks }, applyMiddleware(lastActionMiddleware));\n\n this.store.subscribe(this.onStoreChange);\n }\n\n componentDidUpdate(prevProps) {\n const { marks } = this.props;\n const storeState = this.store.getState();\n\n if (isEqual(storeState.marks.present, marks)) {\n return;\n }\n\n if (!isEqual(prevProps.marks, marks)) {\n this.store.dispatch(changeMarks(marks));\n }\n }\n\n onStoreChange = () => {\n const { marks, onChangeMarks } = this.props;\n const storeState = this.store.getState();\n const lastAction = getLastAction();\n const isUndoOperation = lastAction.type.includes('UNDO') || lastAction.type.includes('REDO');\n\n if (!isEqual(storeState.marks.present, marks)) {\n onChangeMarks(storeState.marks.present, isUndoOperation);\n }\n };\n\n render() {\n // eslint-disable-next-line no-unused-vars\n const { onChangeMarks, marks, ...rest } = this.props;\n const correctnessSet = marks && marks.find((m) => m.correctness);\n\n if (correctnessSet) {\n return <GraphWithControls {...rest} marks={marks} disabled={correctnessSet} />;\n }\n\n return (\n <Provider store={this.store}>\n <GraphContainer {...rest} />\n </Provider>\n );\n }\n}\n\nexport default Root;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.object.define-property.js");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ require("core-js/modules/es.array.is-array.js");
9
+ var marks = function marks() {
10
+ var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
11
+ var action = arguments.length > 1 ? arguments[1] : undefined;
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
+ default:
20
+ return state;
21
+ }
22
+ };
23
+ var _default = exports["default"] = marks;
24
+ //# sourceMappingURL=marks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"marks.js","names":["marks","state","arguments","length","undefined","action","type","Array","isArray","Error","_default","exports"],"sources":["../../src/container/marks.js"],"sourcesContent":["const marks = (state = [], action) => {\n switch (action.type) {\n case 'CHANGE_MARKS':\n if (Array.isArray(action.marks)) {\n return action.marks;\n } else {\n throw new Error('marks must be an array');\n }\n default:\n return state;\n }\n};\n\nexport default marks;\n"],"mappings":";;;;;;;;AAAA,IAAMA,KAAK,GAAG,SAARA,KAAKA,CAAA,EAA2B;EAAA,IAAvBC,KAAK,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EAAA,IAAEG,MAAM,GAAAH,SAAA,CAAAC,MAAA,OAAAD,SAAA,MAAAE,SAAA;EAC/B,QAAQC,MAAM,CAACC,IAAI;IACjB,KAAK,cAAc;MACjB,IAAIC,KAAK,CAACC,OAAO,CAACH,MAAM,CAACL,KAAK,CAAC,EAAE;QAC/B,OAAOK,MAAM,CAACL,KAAK;MACrB,CAAC,MAAM;QACL,MAAM,IAAIS,KAAK,CAAC,wBAAwB,CAAC;MAC3C;IACF;MACE,OAAOR,KAAK;EAChB;AACF,CAAC;AAAC,IAAAS,QAAA,GAAAC,OAAA,cAEaX,KAAK","ignoreList":[]}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.object.define-property.js");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.lastActionMiddleware = exports.getLastAction = void 0;
8
+ var lastAction = null;
9
+ var getLastAction = exports.getLastAction = function getLastAction() {
10
+ return lastAction;
11
+ };
12
+ var lastActionMiddleware = exports.lastActionMiddleware = function lastActionMiddleware() {
13
+ return function (next) {
14
+ return function (action) {
15
+ lastAction = action;
16
+ return next(action);
17
+ };
18
+ };
19
+ };
20
+ //# sourceMappingURL=middleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware.js","names":["lastAction","getLastAction","exports","lastActionMiddleware","next","action"],"sources":["../../src/container/middleware.js"],"sourcesContent":["let lastAction = null;\nexport const getLastAction = () => lastAction;\n\nexport const lastActionMiddleware = () => (next) => (action) => {\n lastAction = action;\n return next(action);\n};\n"],"mappings":";;;;;;;AAAA,IAAIA,UAAU,GAAG,IAAI;AACd,IAAMC,aAAa,GAAAC,OAAA,CAAAD,aAAA,GAAG,SAAhBA,aAAaA,CAAA;EAAA,OAASD,UAAU;AAAA;AAEtC,IAAMG,oBAAoB,GAAAD,OAAA,CAAAC,oBAAA,GAAG,SAAvBA,oBAAoBA,CAAA;EAAA,OAAS,UAACC,IAAI;IAAA,OAAK,UAACC,MAAM,EAAK;MAC9DL,UAAU,GAAGK,MAAM;MACnB,OAAOD,IAAI,CAACC,MAAM,CAAC;IACrB,CAAC;EAAA;AAAA","ignoreList":[]}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.object.define-property.js");
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+ var _redux = require("redux");
10
+ var _marks = _interopRequireDefault(require("./marks"));
11
+ var _reduxUndo = _interopRequireDefault(require("redux-undo"));
12
+ var _default = exports["default"] = function _default() {
13
+ return (0, _redux.combineReducers)({
14
+ marks: (0, _reduxUndo["default"])(_marks["default"], {
15
+ debug: false
16
+ })
17
+ });
18
+ };
19
+ //# sourceMappingURL=reducer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reducer.js","names":["_redux","require","_marks","_interopRequireDefault","_reduxUndo","_default","exports","combineReducers","marks","undoable","debug"],"sources":["../../src/container/reducer.js"],"sourcesContent":["import { combineReducers } from 'redux';\nimport marks from './marks';\nimport undoable from 'redux-undo';\n\nexport default () => combineReducers({ marks: undoable(marks, { debug: false }) });\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,UAAA,GAAAD,sBAAA,CAAAF,OAAA;AAAkC,IAAAI,QAAA,GAAAC,OAAA,cAEnB,SAAAD,SAAA;EAAA,OAAM,IAAAE,sBAAe,EAAC;IAAEC,KAAK,EAAE,IAAAC,qBAAQ,EAACD,iBAAK,EAAE;MAAEE,KAAK,EAAE;IAAM,CAAC;EAAE,CAAC,CAAC;AAAA","ignoreList":[]}
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.symbol.js");
4
+ require("core-js/modules/es.array.filter.js");
5
+ require("core-js/modules/es.array.for-each.js");
6
+ require("core-js/modules/es.object.define-properties.js");
7
+ require("core-js/modules/es.object.define-property.js");
8
+ require("core-js/modules/es.object.get-own-property-descriptor.js");
9
+ require("core-js/modules/es.object.get-own-property-descriptors.js");
10
+ require("core-js/modules/es.object.keys.js");
11
+ require("core-js/modules/es.object.to-string.js");
12
+ require("core-js/modules/web.dom-collections.for-each.js");
13
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
14
+ Object.defineProperty(exports, "__esModule", {
15
+ value: true
16
+ });
17
+ exports.getLabelPosition = exports["default"] = exports.CoordinatesLabel = void 0;
18
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
19
+ require("core-js/modules/es.array.concat.js");
20
+ var _react = _interopRequireDefault(require("react"));
21
+ var _propTypes = _interopRequireDefault(require("prop-types"));
22
+ var _plot = require("@pie-lib/plot");
23
+ var _renderUi = require("@pie-lib/render-ui");
24
+ var _styles = require("@mui/material/styles");
25
+ var _InputBase = _interopRequireDefault(require("@mui/material/InputBase"));
26
+ var _utils = require("./utils");
27
+ 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; }
28
+ 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; }
29
+ var StyledInputBase = (0, _styles.styled)(_InputBase["default"])(function (_ref) {
30
+ var theme = _ref.theme;
31
+ return {
32
+ fontFamily: theme.typography.fontFamily,
33
+ fontSize: theme.typography.fontSize,
34
+ borderRadius: '8px',
35
+ background: theme.palette.common.white,
36
+ color: _renderUi.color.defaults.BLACK,
37
+ '& .MuiInputBase-input': {
38
+ padding: 0
39
+ }
40
+ };
41
+ });
42
+ var getLabelPosition = exports.getLabelPosition = function getLabelPosition(graphProps, x, y, labelLength) {
43
+ var scale = graphProps.scale,
44
+ domain = graphProps.domain,
45
+ range = graphProps.range;
46
+ // treat corner cases for maximum and minimum
47
+ var topShift = y === range.min ? 16 : y === range.max ? 0 : 8;
48
+ var leftShift = 10;
49
+ var rightEdge = scale.x(x) + labelLength + leftShift;
50
+ if (rightEdge >= scale.x(domain.max)) {
51
+ return {
52
+ left: scale.x(x) - leftShift - labelLength,
53
+ top: scale.y(y) - topShift
54
+ };
55
+ }
56
+ return {
57
+ left: scale.x(x) + leftShift,
58
+ top: scale.y(y) - topShift
59
+ };
60
+ };
61
+ var CoordinatesLabel = exports.CoordinatesLabel = function CoordinatesLabel(_ref2) {
62
+ var x = _ref2.x,
63
+ y = _ref2.y,
64
+ graphProps = _ref2.graphProps;
65
+ var label = "(".concat((0, _utils.roundNumber)(x), ", ").concat((0, _utils.roundNumber)(y), ")");
66
+ var labelLength = (label.length || 0) * 6;
67
+ var labelPosition = getLabelPosition(graphProps, x, y, labelLength);
68
+ var style = _objectSpread({
69
+ position: 'absolute',
70
+ pointerEvents: 'auto',
71
+ width: labelLength,
72
+ padding: 0
73
+ }, labelPosition);
74
+ return /*#__PURE__*/_react["default"].createElement(StyledInputBase, {
75
+ style: style,
76
+ value: label,
77
+ inputProps: {
78
+ ariaLabel: 'naked'
79
+ }
80
+ });
81
+ };
82
+ CoordinatesLabel.propTypes = {
83
+ graphProps: _plot.types.GraphPropsType,
84
+ x: _propTypes["default"].number,
85
+ y: _propTypes["default"].number
86
+ };
87
+ var _default = exports["default"] = CoordinatesLabel;
88
+ //# sourceMappingURL=coordinates-label.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coordinates-label.js","names":["_react","_interopRequireDefault","require","_propTypes","_plot","_renderUi","_styles","_InputBase","_utils","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","StyledInputBase","styled","InputBase","_ref","theme","fontFamily","typography","fontSize","borderRadius","background","palette","common","white","color","defaults","BLACK","padding","getLabelPosition","exports","graphProps","x","y","labelLength","scale","domain","range","topShift","min","max","leftShift","rightEdge","left","top","CoordinatesLabel","_ref2","label","concat","roundNumber","labelPosition","style","position","pointerEvents","width","createElement","value","inputProps","ariaLabel","propTypes","types","GraphPropsType","PropTypes","number","_default"],"sources":["../src/coordinates-label.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { types } from '@pie-lib/plot';\nimport { color } from '@pie-lib/render-ui';\nimport { styled } from '@mui/material/styles';\nimport InputBase from '@mui/material/InputBase';\nimport { roundNumber } from './utils';\n\nconst StyledInputBase = styled(InputBase)(({ theme }) => ({\n fontFamily: theme.typography.fontFamily,\n fontSize: theme.typography.fontSize,\n borderRadius: '8px',\n background: theme.palette.common.white,\n color: color.defaults.BLACK,\n '& .MuiInputBase-input': {\n padding: 0,\n },\n}));\n\nexport const getLabelPosition = (graphProps, x, y, labelLength) => {\n const { scale, domain, range } = graphProps;\n // treat corner cases for maximum and minimum\n const topShift = y === range.min ? 16 : y === range.max ? 0 : 8;\n const leftShift = 10;\n const rightEdge = scale.x(x) + labelLength + leftShift;\n\n if (rightEdge >= scale.x(domain.max)) {\n return {\n left: scale.x(x) - leftShift - labelLength,\n top: scale.y(y) - topShift,\n };\n }\n\n return {\n left: scale.x(x) + leftShift,\n top: scale.y(y) - topShift,\n };\n};\n\nexport const CoordinatesLabel = ({ x, y, graphProps }) => {\n const label = `(${roundNumber(x)}, ${roundNumber(y)})`;\n const labelLength = (label.length || 0) * 6;\n const labelPosition = getLabelPosition(graphProps, x, y, labelLength);\n\n const style = {\n position: 'absolute',\n pointerEvents: 'auto',\n width: labelLength,\n padding: 0,\n ...labelPosition,\n };\n\n return (\n <StyledInputBase\n style={style}\n value={label}\n inputProps={{ ariaLabel: 'naked' }}\n />\n );\n};\n\nCoordinatesLabel.propTypes = {\n graphProps: types.GraphPropsType,\n x: PropTypes.number,\n y: PropTypes.number,\n};\n\nexport default CoordinatesLabel;\n"],"mappings":"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","ignoreList":[]}