@pie-lib/graphing 3.1.0-next.2 → 3.1.0-next.26
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.
- package/CHANGELOG.md +8 -0
- package/NEXT.CHANGELOG.json +16 -1
- package/lib/axis/arrow.js +82 -0
- package/lib/axis/arrow.js.map +1 -0
- package/lib/axis/axes.js +343 -0
- package/lib/axis/axes.js.map +1 -0
- package/lib/axis/index.js +28 -0
- package/lib/axis/index.js.map +1 -0
- package/lib/bg.js +120 -0
- package/lib/bg.js.map +1 -0
- package/lib/container/actions.js +19 -0
- package/lib/container/actions.js.map +1 -0
- package/lib/container/index.js +122 -0
- package/lib/container/index.js.map +1 -0
- package/lib/container/marks.js +24 -0
- package/lib/container/marks.js.map +1 -0
- package/lib/container/middleware.js +20 -0
- package/lib/container/middleware.js.map +1 -0
- package/lib/container/reducer.js +19 -0
- package/lib/container/reducer.js.map +1 -0
- package/lib/coordinates-label.js +90 -0
- package/lib/coordinates-label.js.map +1 -0
- package/lib/graph-with-controls.js +312 -0
- package/lib/graph-with-controls.js.map +1 -0
- package/lib/graph.js +332 -0
- package/lib/graph.js.map +1 -0
- package/lib/grid-setup.js +417 -0
- package/lib/grid-setup.js.map +1 -0
- package/lib/grid.js +153 -0
- package/lib/grid.js.map +1 -0
- package/lib/index.js +54 -0
- package/lib/index.js.map +1 -0
- package/lib/key-legend.js +202 -0
- package/lib/key-legend.js.map +1 -0
- package/lib/label-svg-icon.js +51 -0
- package/lib/label-svg-icon.js.map +1 -0
- package/lib/labels.js +256 -0
- package/lib/labels.js.map +1 -0
- package/lib/mark-label.js +293 -0
- package/lib/mark-label.js.map +1 -0
- package/lib/toggle-bar.js +265 -0
- package/lib/toggle-bar.js.map +1 -0
- package/lib/tool-menu.js +81 -0
- package/lib/tool-menu.js.map +1 -0
- package/lib/tools/absolute/component.js +30 -0
- package/lib/tools/absolute/component.js.map +1 -0
- package/lib/tools/absolute/index.js +60 -0
- package/lib/tools/absolute/index.js.map +1 -0
- package/lib/tools/circle/bg-circle.js +138 -0
- package/lib/tools/circle/bg-circle.js.map +1 -0
- package/lib/tools/circle/component.js +332 -0
- package/lib/tools/circle/component.js.map +1 -0
- package/lib/tools/circle/index.js +51 -0
- package/lib/tools/circle/index.js.map +1 -0
- package/lib/tools/exponential/component.js +29 -0
- package/lib/tools/exponential/component.js.map +1 -0
- package/lib/tools/exponential/index.js +66 -0
- package/lib/tools/exponential/index.js.map +1 -0
- package/lib/tools/index.js +87 -0
- package/lib/tools/index.js.map +1 -0
- package/lib/tools/line/component.js +84 -0
- package/lib/tools/line/component.js.map +1 -0
- package/lib/tools/line/index.js +12 -0
- package/lib/tools/line/index.js.map +1 -0
- package/lib/tools/parabola/component.js +29 -0
- package/lib/tools/parabola/component.js.map +1 -0
- package/lib/tools/parabola/index.js +60 -0
- package/lib/tools/parabola/index.js.map +1 -0
- package/lib/tools/point/component.js +150 -0
- package/lib/tools/point/component.js.map +1 -0
- package/lib/tools/point/index.js +34 -0
- package/lib/tools/point/index.js.map +1 -0
- package/lib/tools/polygon/component.js +439 -0
- package/lib/tools/polygon/component.js.map +1 -0
- package/lib/tools/polygon/index.js +101 -0
- package/lib/tools/polygon/index.js.map +1 -0
- package/lib/tools/polygon/line.js +129 -0
- package/lib/tools/polygon/line.js.map +1 -0
- package/lib/tools/polygon/polygon.js +150 -0
- package/lib/tools/polygon/polygon.js.map +1 -0
- package/lib/tools/ray/component.js +94 -0
- package/lib/tools/ray/component.js.map +1 -0
- package/lib/tools/ray/index.js +12 -0
- package/lib/tools/ray/index.js.map +1 -0
- package/lib/tools/segment/component.js +67 -0
- package/lib/tools/segment/component.js.map +1 -0
- package/lib/tools/segment/index.js +12 -0
- package/lib/tools/segment/index.js.map +1 -0
- package/lib/tools/shared/arrow-head.js +125 -0
- package/lib/tools/shared/arrow-head.js.map +1 -0
- package/lib/tools/shared/icons/CorrectSVG.js +41 -0
- package/lib/tools/shared/icons/CorrectSVG.js.map +1 -0
- package/lib/tools/shared/icons/IncorrectSVG.js +41 -0
- package/lib/tools/shared/icons/IncorrectSVG.js.map +1 -0
- package/lib/tools/shared/icons/MissingSVG.js +40 -0
- package/lib/tools/shared/icons/MissingSVG.js.map +1 -0
- package/lib/tools/shared/line/index.js +558 -0
- package/lib/tools/shared/line/index.js.map +1 -0
- package/lib/tools/shared/line/line-path.js +135 -0
- package/lib/tools/shared/line/line-path.js.map +1 -0
- package/lib/tools/shared/line/with-root-edge.js +132 -0
- package/lib/tools/shared/line/with-root-edge.js.map +1 -0
- package/lib/tools/shared/point/arrow-point.js +75 -0
- package/lib/tools/shared/point/arrow-point.js.map +1 -0
- package/lib/tools/shared/point/arrow.js +70 -0
- package/lib/tools/shared/point/arrow.js.map +1 -0
- package/lib/tools/shared/point/base-point.js +173 -0
- package/lib/tools/shared/point/base-point.js.map +1 -0
- package/lib/tools/shared/point/index.js +69 -0
- package/lib/tools/shared/point/index.js.map +1 -0
- package/lib/tools/shared/styles.js +31 -0
- package/lib/tools/shared/styles.js.map +1 -0
- package/lib/tools/shared/types.js +17 -0
- package/lib/tools/shared/types.js.map +1 -0
- package/lib/tools/sine/component.js +50 -0
- package/lib/tools/sine/component.js.map +1 -0
- package/lib/tools/sine/index.js +60 -0
- package/lib/tools/sine/index.js.map +1 -0
- package/lib/tools/vector/component.js +78 -0
- package/lib/tools/vector/component.js.map +1 -0
- package/lib/tools/vector/index.js +12 -0
- package/lib/tools/vector/index.js.map +1 -0
- package/lib/undo-redo.js +85 -0
- package/lib/undo-redo.js.map +1 -0
- package/lib/use-debounce.js +27 -0
- package/lib/use-debounce.js.map +1 -0
- package/lib/utils.js +243 -0
- package/lib/utils.js.map +1 -0
- package/package.json +13 -13
- package/src/__tests__/graph-with-controls.test.jsx +41 -0
- package/src/__tests__/toggle-bar.test.jsx +41 -0
- package/src/__tests__/tool-menu.test.jsx +41 -0
- 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,122 @@
|
|
|
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
|
+
require("core-js/modules/es.array.find.js");
|
|
11
|
+
require("core-js/modules/es.object.to-string.js");
|
|
12
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
13
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
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 _reactRedux = require("react-redux");
|
|
21
|
+
var _react = _interopRequireDefault(require("react"));
|
|
22
|
+
var _redux = require("redux");
|
|
23
|
+
var _reducer = _interopRequireDefault(require("./reducer"));
|
|
24
|
+
var _actions = require("./actions");
|
|
25
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
26
|
+
var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
|
|
27
|
+
var _reduxUndo = require("redux-undo");
|
|
28
|
+
var _graphWithControls = _interopRequireDefault(require("../graph-with-controls"));
|
|
29
|
+
var _middleware = require("./middleware");
|
|
30
|
+
var _excluded = ["onChangeMarks", "marks"];
|
|
31
|
+
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)); }
|
|
32
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
33
|
+
var mapStateToProps = function mapStateToProps(s) {
|
|
34
|
+
return {
|
|
35
|
+
marks: s.marks.present
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
var mapDispatchToProps = function mapDispatchToProps(dispatch) {
|
|
39
|
+
return {
|
|
40
|
+
onChangeMarks: function onChangeMarks(m) {
|
|
41
|
+
return dispatch((0, _actions.changeMarks)(m));
|
|
42
|
+
},
|
|
43
|
+
onUndo: function onUndo() {
|
|
44
|
+
return dispatch(_reduxUndo.ActionCreators.undo());
|
|
45
|
+
},
|
|
46
|
+
onRedo: function onRedo() {
|
|
47
|
+
return dispatch(_reduxUndo.ActionCreators.redo());
|
|
48
|
+
},
|
|
49
|
+
onReset: function onReset() {
|
|
50
|
+
return dispatch((0, _actions.changeMarks)([]));
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
};
|
|
54
|
+
var GraphContainer = exports.GraphContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(_graphWithControls["default"]);
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* The graph component entry point with undo/redo
|
|
58
|
+
* Redux is an implementation detail, hide it in the react component.
|
|
59
|
+
*/
|
|
60
|
+
var Root = /*#__PURE__*/function (_React$Component) {
|
|
61
|
+
function Root(props) {
|
|
62
|
+
var _this;
|
|
63
|
+
(0, _classCallCheck2["default"])(this, Root);
|
|
64
|
+
_this = _callSuper(this, Root, [props]);
|
|
65
|
+
(0, _defineProperty2["default"])(_this, "onStoreChange", function () {
|
|
66
|
+
var _this$props = _this.props,
|
|
67
|
+
marks = _this$props.marks,
|
|
68
|
+
onChangeMarks = _this$props.onChangeMarks;
|
|
69
|
+
var storeState = _this.store.getState();
|
|
70
|
+
if (!(0, _isEqual["default"])(storeState.marks.present, marks)) {
|
|
71
|
+
onChangeMarks(storeState.marks.present);
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
var r = (0, _reducer["default"])();
|
|
75
|
+
_this.store = (0, _redux.createStore)(r, {
|
|
76
|
+
marks: props.marks
|
|
77
|
+
}, (0, _redux.applyMiddleware)(_middleware.lastActionMiddleware));
|
|
78
|
+
_this.store.subscribe(_this.onStoreChange);
|
|
79
|
+
return _this;
|
|
80
|
+
}
|
|
81
|
+
(0, _inherits2["default"])(Root, _React$Component);
|
|
82
|
+
return (0, _createClass2["default"])(Root, [{
|
|
83
|
+
key: "componentDidUpdate",
|
|
84
|
+
value: function componentDidUpdate(prevProps) {
|
|
85
|
+
var marks = this.props.marks;
|
|
86
|
+
var storeState = this.store.getState();
|
|
87
|
+
if ((0, _isEqual["default"])(storeState.marks.present, marks)) {
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
if (!(0, _isEqual["default"])(prevProps.marks, marks)) {
|
|
91
|
+
this.store.dispatch((0, _actions.changeMarks)(marks));
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}, {
|
|
95
|
+
key: "render",
|
|
96
|
+
value: function render() {
|
|
97
|
+
// eslint-disable-next-line no-unused-vars
|
|
98
|
+
var _this$props2 = this.props,
|
|
99
|
+
onChangeMarks = _this$props2.onChangeMarks,
|
|
100
|
+
marks = _this$props2.marks,
|
|
101
|
+
rest = (0, _objectWithoutProperties2["default"])(_this$props2, _excluded);
|
|
102
|
+
var correctnessSet = marks && marks.find(function (m) {
|
|
103
|
+
return m.correctness;
|
|
104
|
+
});
|
|
105
|
+
if (correctnessSet) {
|
|
106
|
+
return /*#__PURE__*/_react["default"].createElement(_graphWithControls["default"], (0, _extends2["default"])({}, rest, {
|
|
107
|
+
marks: marks,
|
|
108
|
+
disabled: correctnessSet
|
|
109
|
+
}));
|
|
110
|
+
}
|
|
111
|
+
return /*#__PURE__*/_react["default"].createElement(_reactRedux.Provider, {
|
|
112
|
+
store: this.store
|
|
113
|
+
}, /*#__PURE__*/_react["default"].createElement(GraphContainer, rest));
|
|
114
|
+
}
|
|
115
|
+
}]);
|
|
116
|
+
}(_react["default"].Component);
|
|
117
|
+
(0, _defineProperty2["default"])(Root, "propTypes", {
|
|
118
|
+
onChangeMarks: _propTypes["default"].func,
|
|
119
|
+
marks: _propTypes["default"].array
|
|
120
|
+
});
|
|
121
|
+
var _default = exports["default"] = Root;
|
|
122
|
+
//# 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","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 } 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\n if (!isEqual(storeState.marks.present, marks)) {\n onChangeMarks(storeState.marks.present);\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,90 @@
|
|
|
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.PRIMARY_DARK,
|
|
37
|
+
'& .MuiInputBase-input': {
|
|
38
|
+
padding: 0
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
// eslint-disable-next-line react/prop-types
|
|
44
|
+
var getLabelPosition = exports.getLabelPosition = function getLabelPosition(graphProps, x, y, labelLength) {
|
|
45
|
+
var scale = graphProps.scale,
|
|
46
|
+
domain = graphProps.domain,
|
|
47
|
+
range = graphProps.range;
|
|
48
|
+
// treat corner cases for maximum and minimum
|
|
49
|
+
var topShift = y === range.min ? 16 : y === range.max ? 0 : 8;
|
|
50
|
+
var leftShift = 10;
|
|
51
|
+
var rightEdge = scale.x(x) + labelLength + leftShift;
|
|
52
|
+
if (rightEdge >= scale.x(domain.max)) {
|
|
53
|
+
return {
|
|
54
|
+
left: scale.x(x) - leftShift - labelLength,
|
|
55
|
+
top: scale.y(y) - topShift
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
return {
|
|
59
|
+
left: scale.x(x) + leftShift,
|
|
60
|
+
top: scale.y(y) - topShift
|
|
61
|
+
};
|
|
62
|
+
};
|
|
63
|
+
var CoordinatesLabel = exports.CoordinatesLabel = function CoordinatesLabel(_ref2) {
|
|
64
|
+
var x = _ref2.x,
|
|
65
|
+
y = _ref2.y,
|
|
66
|
+
graphProps = _ref2.graphProps;
|
|
67
|
+
var label = "(".concat((0, _utils.roundNumber)(x), ", ").concat((0, _utils.roundNumber)(y), ")");
|
|
68
|
+
var labelLength = (label.length || 0) * 6;
|
|
69
|
+
var labelPosition = getLabelPosition(graphProps, x, y, labelLength);
|
|
70
|
+
var style = _objectSpread({
|
|
71
|
+
position: 'absolute',
|
|
72
|
+
pointerEvents: 'auto',
|
|
73
|
+
width: labelLength,
|
|
74
|
+
padding: 0
|
|
75
|
+
}, labelPosition);
|
|
76
|
+
return /*#__PURE__*/_react["default"].createElement(StyledInputBase, {
|
|
77
|
+
style: style,
|
|
78
|
+
value: label,
|
|
79
|
+
inputProps: {
|
|
80
|
+
ariaLabel: 'naked'
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
};
|
|
84
|
+
CoordinatesLabel.propTypes = {
|
|
85
|
+
graphProps: _plot.types.GraphPropsType,
|
|
86
|
+
x: _propTypes["default"].number,
|
|
87
|
+
y: _propTypes["default"].number
|
|
88
|
+
};
|
|
89
|
+
var _default = exports["default"] = CoordinatesLabel;
|
|
90
|
+
//# 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","PRIMARY_DARK","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.PRIMARY_DARK,\n '& .MuiInputBase-input': {\n padding: 0,\n },\n}));\n\n// eslint-disable-next-line react/prop-types\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":[]}
|