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

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 (80) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/lib/axis/arrow.js +79 -0
  3. package/lib/axis/arrow.js.map +1 -0
  4. package/lib/axis/axes.js +325 -0
  5. package/lib/axis/axes.js.map +1 -0
  6. package/lib/axis/index.js +21 -0
  7. package/lib/axis/index.js.map +1 -0
  8. package/lib/bg.js +111 -0
  9. package/lib/bg.js.map +1 -0
  10. package/lib/container/actions.js +18 -0
  11. package/lib/container/actions.js.map +1 -0
  12. package/lib/container/index.js +120 -0
  13. package/lib/container/index.js.map +1 -0
  14. package/lib/container/marks.js +22 -0
  15. package/lib/container/marks.js.map +1 -0
  16. package/lib/container/middleware.js +19 -0
  17. package/lib/container/middleware.js.map +1 -0
  18. package/lib/container/reducer.js +18 -0
  19. package/lib/container/reducer.js.map +1 -0
  20. package/lib/coordinates-label.js +77 -0
  21. package/lib/coordinates-label.js.map +1 -0
  22. package/lib/graph-with-controls.js +298 -0
  23. package/lib/graph-with-controls.js.map +1 -0
  24. package/lib/graph.js +354 -0
  25. package/lib/graph.js.map +1 -0
  26. package/lib/grid-setup.js +406 -0
  27. package/lib/grid-setup.js.map +1 -0
  28. package/lib/grid.js +131 -0
  29. package/lib/grid.js.map +1 -0
  30. package/lib/index.js +40 -0
  31. package/lib/index.js.map +1 -0
  32. package/lib/labels.js +199 -0
  33. package/lib/labels.js.map +1 -0
  34. package/lib/mark-label.js +159 -0
  35. package/lib/mark-label.js.map +1 -0
  36. package/lib/toggle-bar.js +248 -0
  37. package/lib/toggle-bar.js.map +1 -0
  38. package/lib/tool-menu.js +218 -0
  39. package/lib/tool-menu.js.map +1 -0
  40. package/lib/tools/index.js +24 -0
  41. package/lib/tools/index.js.map +1 -0
  42. package/lib/tools/line/component.js +92 -0
  43. package/lib/tools/line/component.js.map +1 -0
  44. package/lib/tools/line/index.js +11 -0
  45. package/lib/tools/line/index.js.map +1 -0
  46. package/lib/tools/polygon/component.js +360 -0
  47. package/lib/tools/polygon/component.js.map +1 -0
  48. package/lib/tools/polygon/index.js +89 -0
  49. package/lib/tools/polygon/index.js.map +1 -0
  50. package/lib/tools/polygon/line.js +114 -0
  51. package/lib/tools/polygon/line.js.map +1 -0
  52. package/lib/tools/polygon/polygon.js +131 -0
  53. package/lib/tools/polygon/polygon.js.map +1 -0
  54. package/lib/tools/shared/arrow-head.js +62 -0
  55. package/lib/tools/shared/arrow-head.js.map +1 -0
  56. package/lib/tools/shared/line/index.js +541 -0
  57. package/lib/tools/shared/line/index.js.map +1 -0
  58. package/lib/tools/shared/line/line-path.js +121 -0
  59. package/lib/tools/shared/line/line-path.js.map +1 -0
  60. package/lib/tools/shared/line/with-root-edge.js +121 -0
  61. package/lib/tools/shared/line/with-root-edge.js.map +1 -0
  62. package/lib/tools/shared/point/arrow-point.js +86 -0
  63. package/lib/tools/shared/point/arrow-point.js.map +1 -0
  64. package/lib/tools/shared/point/arrow.js +70 -0
  65. package/lib/tools/shared/point/arrow.js.map +1 -0
  66. package/lib/tools/shared/point/base-point.js +137 -0
  67. package/lib/tools/shared/point/base-point.js.map +1 -0
  68. package/lib/tools/shared/point/index.js +80 -0
  69. package/lib/tools/shared/point/index.js.map +1 -0
  70. package/lib/tools/shared/styles.js +26 -0
  71. package/lib/tools/shared/styles.js.map +1 -0
  72. package/lib/tools/shared/types.js +15 -0
  73. package/lib/tools/shared/types.js.map +1 -0
  74. package/lib/undo-redo.js +67 -0
  75. package/lib/undo-redo.js.map +1 -0
  76. package/lib/use-debounce.js +25 -0
  77. package/lib/use-debounce.js.map +1 -0
  78. package/lib/utils.js +239 -0
  79. package/lib/utils.js.map +1 -0
  80. package/package.json +9 -9
package/CHANGELOG.md CHANGED
@@ -3,6 +3,14 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [3.1.0-next.4](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing-solution-set@3.1.0-next.2...@pie-lib/graphing-solution-set@3.1.0-next.4) (2026-01-27)
7
+
8
+ **Note:** Version bump only for package @pie-lib/graphing-solution-set
9
+
10
+
11
+
12
+
13
+
6
14
  # [3.1.0-next.2](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing-solution-set@3.1.0-next.1...@pie-lib/graphing-solution-set@3.1.0-next.2) (2026-01-26)
7
15
 
8
16
  **Note:** Version bump only for package @pie-lib/graphing-solution-set
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = exports.Arrow = void 0;
8
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
11
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
12
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
13
+ var _react = _interopRequireDefault(require("react"));
14
+ var _propTypes = _interopRequireDefault(require("prop-types"));
15
+ var _styles = require("@mui/material/styles");
16
+ var _plot = require("@pie-lib/plot");
17
+ 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)); }
18
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
19
+ var StyledPath = (0, _styles.styled)('path')(function (_ref) {
20
+ var theme = _ref.theme;
21
+ return {
22
+ fill: "var(--arrow-color, ".concat(theme.palette.common.black, ")")
23
+ };
24
+ });
25
+ var Arrow = exports.Arrow = /*#__PURE__*/function (_React$Component) {
26
+ function Arrow() {
27
+ (0, _classCallCheck2["default"])(this, Arrow);
28
+ return _callSuper(this, Arrow, arguments);
29
+ }
30
+ (0, _inherits2["default"])(Arrow, _React$Component);
31
+ return (0, _createClass2["default"])(Arrow, [{
32
+ key: "render",
33
+ value: function render() {
34
+ var _this$props = this.props,
35
+ x = _this$props.x,
36
+ y = _this$props.y,
37
+ className = _this$props.className,
38
+ scale = _this$props.scale;
39
+ var direction = this.props.direction || 'left';
40
+ var xv = scale.x(x);
41
+ var yv = scale.y(y);
42
+ var transform = '';
43
+ var getTransform = function getTransform(x, y, rotate) {
44
+ return "translate(".concat(x, ", ").concat(y, ") rotate(").concat(rotate, ")");
45
+ };
46
+ if (direction === 'left') {
47
+ transform = getTransform(xv - 15, yv, 0);
48
+ }
49
+ if (direction === 'right') {
50
+ transform = getTransform(xv + 15, yv, 180);
51
+ }
52
+ if (direction === 'up') {
53
+ transform = getTransform(xv, yv - 15, 90);
54
+ }
55
+ if (direction === 'down') {
56
+ transform = getTransform(xv, yv + 15, 270);
57
+ }
58
+ return /*#__PURE__*/_react["default"].createElement(StyledPath, {
59
+ d: "m 0,0 8,-5 0,10 -8,-5",
60
+ transform: transform,
61
+ className: className
62
+ });
63
+ }
64
+ }]);
65
+ }(_react["default"].Component);
66
+ Arrow.propTypes = {
67
+ y: _propTypes["default"].number,
68
+ x: _propTypes["default"].number,
69
+ direction: _propTypes["default"].oneOf(['left', 'right', 'up', 'down']),
70
+ className: _propTypes["default"].string,
71
+ scale: _plot.types.ScaleType.isRequired
72
+ };
73
+ Arrow.defaultProps = {
74
+ y: 0,
75
+ x: 0,
76
+ direction: 'left'
77
+ };
78
+ var _default = exports["default"] = Arrow;
79
+ //# sourceMappingURL=arrow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arrow.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_plot","_callSuper","t","o","e","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","prototype","valueOf","call","StyledPath","styled","_ref","theme","fill","concat","palette","common","black","Arrow","exports","_React$Component","_classCallCheck2","arguments","_inherits2","_createClass2","key","value","render","_this$props","props","x","y","className","scale","direction","xv","yv","transform","getTransform","rotate","createElement","d","React","Component","propTypes","PropTypes","number","oneOf","string","types","ScaleType","isRequired","defaultProps","_default"],"sources":["../../src/axis/arrow.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { styled } from '@mui/material/styles';\nimport { types } from '@pie-lib/plot';\n\nconst StyledPath = styled('path')(({ theme }) => ({\n fill: `var(--arrow-color, ${theme.palette.common.black})`,\n}));\n\nexport class Arrow extends React.Component {\n render() {\n const { x, y, className, scale } = this.props;\n let direction = this.props.direction || 'left';\n\n const xv = scale.x(x);\n const yv = scale.y(y);\n\n let transform = '';\n\n const getTransform = (x, y, rotate) => `translate(${x}, ${y}) rotate(${rotate})`;\n\n if (direction === 'left') {\n transform = getTransform(xv - 15, yv, 0);\n }\n\n if (direction === 'right') {\n transform = getTransform(xv + 15, yv, 180);\n }\n\n if (direction === 'up') {\n transform = getTransform(xv, yv - 15, 90);\n }\n\n if (direction === 'down') {\n transform = getTransform(xv, yv + 15, 270);\n }\n\n return <StyledPath d=\"m 0,0 8,-5 0,10 -8,-5\" transform={transform} className={className} />;\n }\n}\n\nArrow.propTypes = {\n y: PropTypes.number,\n x: PropTypes.number,\n direction: PropTypes.oneOf(['left', 'right', 'up', 'down']),\n className: PropTypes.string,\n scale: types.ScaleType.isRequired,\n};\n\nArrow.defaultProps = {\n y: 0,\n x: 0,\n direction: 'left',\n};\n\nexport default Arrow;\n"],"mappings":";;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AAEA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AAAsC,SAAAI,WAAAC,CAAA,EAAAC,CAAA,EAAAC,CAAA,WAAAD,CAAA,OAAAE,gBAAA,aAAAF,CAAA,OAAAG,2BAAA,aAAAJ,CAAA,EAAAK,yBAAA,KAAAC,OAAA,CAAAC,SAAA,CAAAN,CAAA,EAAAC,CAAA,YAAAC,gBAAA,aAAAH,CAAA,EAAAQ,WAAA,IAAAP,CAAA,CAAAQ,KAAA,CAAAT,CAAA,EAAAE,CAAA;AAAA,SAAAG,0BAAA,cAAAL,CAAA,IAAAU,OAAA,CAAAC,SAAA,CAAAC,OAAA,CAAAC,IAAA,CAAAP,OAAA,CAAAC,SAAA,CAAAG,OAAA,iCAAAV,CAAA,aAAAK,yBAAA,YAAAA,0BAAA,aAAAL,CAAA;AAEtC,IAAMc,UAAU,GAAG,IAAAC,cAAM,EAAC,MAAM,CAAC,CAAC,UAAAC,IAAA;EAAA,IAAGC,KAAK,GAAAD,IAAA,CAALC,KAAK;EAAA,OAAQ;IAChDC,IAAI,wBAAAC,MAAA,CAAwBF,KAAK,CAACG,OAAO,CAACC,MAAM,CAACC,KAAK;EACxD,CAAC;AAAA,CAAC,CAAC;AAAC,IAESC,KAAK,GAAAC,OAAA,CAAAD,KAAA,0BAAAE,gBAAA;EAAA,SAAAF,MAAA;IAAA,IAAAG,gBAAA,mBAAAH,KAAA;IAAA,OAAAxB,UAAA,OAAAwB,KAAA,EAAAI,SAAA;EAAA;EAAA,IAAAC,UAAA,aAAAL,KAAA,EAAAE,gBAAA;EAAA,WAAAI,aAAA,aAAAN,KAAA;IAAAO,GAAA;IAAAC,KAAA,EAChB,SAAAC,MAAMA,CAAA,EAAG;MACP,IAAAC,WAAA,GAAmC,IAAI,CAACC,KAAK;QAArCC,CAAC,GAAAF,WAAA,CAADE,CAAC;QAAEC,CAAC,GAAAH,WAAA,CAADG,CAAC;QAAEC,SAAS,GAAAJ,WAAA,CAATI,SAAS;QAAEC,KAAK,GAAAL,WAAA,CAALK,KAAK;MAC9B,IAAIC,SAAS,GAAG,IAAI,CAACL,KAAK,CAACK,SAAS,IAAI,MAAM;MAE9C,IAAMC,EAAE,GAAGF,KAAK,CAACH,CAAC,CAACA,CAAC,CAAC;MACrB,IAAMM,EAAE,GAAGH,KAAK,CAACF,CAAC,CAACA,CAAC,CAAC;MAErB,IAAIM,SAAS,GAAG,EAAE;MAElB,IAAMC,YAAY,GAAG,SAAfA,YAAYA,CAAIR,CAAC,EAAEC,CAAC,EAAEQ,MAAM;QAAA,oBAAAzB,MAAA,CAAkBgB,CAAC,QAAAhB,MAAA,CAAKiB,CAAC,eAAAjB,MAAA,CAAYyB,MAAM;MAAA,CAAG;MAEhF,IAAIL,SAAS,KAAK,MAAM,EAAE;QACxBG,SAAS,GAAGC,YAAY,CAACH,EAAE,GAAG,EAAE,EAAEC,EAAE,EAAE,CAAC,CAAC;MAC1C;MAEA,IAAIF,SAAS,KAAK,OAAO,EAAE;QACzBG,SAAS,GAAGC,YAAY,CAACH,EAAE,GAAG,EAAE,EAAEC,EAAE,EAAE,GAAG,CAAC;MAC5C;MAEA,IAAIF,SAAS,KAAK,IAAI,EAAE;QACtBG,SAAS,GAAGC,YAAY,CAACH,EAAE,EAAEC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;MAC3C;MAEA,IAAIF,SAAS,KAAK,MAAM,EAAE;QACxBG,SAAS,GAAGC,YAAY,CAACH,EAAE,EAAEC,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC;MAC5C;MAEA,oBAAOhD,MAAA,YAAAoD,aAAA,CAAC/B,UAAU;QAACgC,CAAC,EAAC,uBAAuB;QAACJ,SAAS,EAAEA,SAAU;QAACL,SAAS,EAAEA;MAAU,CAAE,CAAC;IAC7F;EAAC;AAAA,EA7BwBU,iBAAK,CAACC,SAAS;AAgC1CzB,KAAK,CAAC0B,SAAS,GAAG;EAChBb,CAAC,EAAEc,qBAAS,CAACC,MAAM;EACnBhB,CAAC,EAAEe,qBAAS,CAACC,MAAM;EACnBZ,SAAS,EAAEW,qBAAS,CAACE,KAAK,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;EAC3Df,SAAS,EAAEa,qBAAS,CAACG,MAAM;EAC3Bf,KAAK,EAAEgB,WAAK,CAACC,SAAS,CAACC;AACzB,CAAC;AAEDjC,KAAK,CAACkC,YAAY,GAAG;EACnBrB,CAAC,EAAE,CAAC;EACJD,CAAC,EAAE,CAAC;EACJI,SAAS,EAAE;AACb,CAAC;AAAC,IAAAmB,QAAA,GAAAlC,OAAA,cAEaD,KAAK","ignoreList":[]}
@@ -0,0 +1,325 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.sharedValues = exports.firstNegativeValue = exports["default"] = exports.RawYAxis = exports.RawXAxis = exports.AxisPropTypes = void 0;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
10
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
11
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
12
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
13
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+ var _react = _interopRequireDefault(require("react"));
16
+ var _axis = require("@visx/axis");
17
+ var _plot = require("@pie-lib/plot");
18
+ var _propTypes = _interopRequireDefault(require("prop-types"));
19
+ var _arrow = _interopRequireDefault(require("./arrow"));
20
+ var _styles = require("@mui/material/styles");
21
+ var _utils = require("../utils");
22
+ var _renderUi = require("@pie-lib/render-ui");
23
+ 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; }
24
+ 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; }
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 AxisPropTypes = exports.AxisPropTypes = {
28
+ includeArrows: _propTypes["default"].object,
29
+ graphProps: _propTypes["default"].object
30
+ };
31
+ var AxisDefaultProps = {
32
+ includeArrows: {
33
+ left: true,
34
+ right: true,
35
+ up: true,
36
+ down: true
37
+ }
38
+ };
39
+ var StyledAxesGroup = (0, _styles.styled)('g')(function () {
40
+ return {
41
+ '& .visx-axis-line': {
42
+ stroke: '#8a92c0',
43
+ strokeWidth: 4
44
+ },
45
+ '& .visx-axis-tick': {
46
+ fill: _renderUi.color.defaults.BLACK,
47
+ '& > line': {
48
+ stroke: '#8a92c0'
49
+ }
50
+ }
51
+ };
52
+ });
53
+ var LabelContainer = (0, _styles.styled)('div')(function (_ref) {
54
+ var theme = _ref.theme;
55
+ return {
56
+ fontSize: theme.typography.fontSize
57
+ };
58
+ });
59
+ var AxisLabelHolder = (0, _styles.styled)('div')(function (_ref2) {
60
+ var theme = _ref2.theme;
61
+ return {
62
+ padding: 0,
63
+ margin: 0,
64
+ textAlign: 'center',
65
+ '* > *': {
66
+ margin: 0,
67
+ padding: 0
68
+ },
69
+ fontSize: theme.typography.fontSize
70
+ };
71
+ });
72
+ var StyledArrow = (0, _styles.styled)(_arrow["default"])({
73
+ fill: '#8a92c0'
74
+ });
75
+ var tickLabelStyles = {
76
+ fontFamily: 'Roboto',
77
+ fontSize: '14px',
78
+ cursor: 'inherit'
79
+ };
80
+ var sharedValues = exports.sharedValues = function sharedValues(firstNegativeX, firstNegativeY, distanceFromOriginToFirstNegativeX, distanceFromOriginToFirstNegativeY, deltaAllowance, dy) {
81
+ var result = [];
82
+ if (firstNegativeX === firstNegativeY && distanceFromOriginToFirstNegativeX - deltaAllowance < distanceFromOriginToFirstNegativeY && distanceFromOriginToFirstNegativeY < distanceFromOriginToFirstNegativeX + deltaAllowance && distanceFromOriginToFirstNegativeX - deltaAllowance < dy && dy < distanceFromOriginToFirstNegativeX + deltaAllowance) {
83
+ result.push(firstNegativeX);
84
+ }
85
+ return result;
86
+ };
87
+ var firstNegativeValue = exports.firstNegativeValue = function firstNegativeValue(interval) {
88
+ return (interval || []).find(function (element) {
89
+ return element < 0;
90
+ });
91
+ };
92
+ var RawXAxis = exports.RawXAxis = /*#__PURE__*/function (_React$Component) {
93
+ function RawXAxis() {
94
+ (0, _classCallCheck2["default"])(this, RawXAxis);
95
+ return _callSuper(this, RawXAxis, arguments);
96
+ }
97
+ (0, _inherits2["default"])(RawXAxis, _React$Component);
98
+ return (0, _createClass2["default"])(RawXAxis, [{
99
+ key: "render",
100
+ value: function render() {
101
+ var _this$props = this.props,
102
+ includeArrows = _this$props.includeArrows,
103
+ graphProps = _this$props.graphProps,
104
+ columnTicksValues = _this$props.columnTicksValues,
105
+ skipValues = _this$props.skipValues,
106
+ distanceFromOriginToFirstNegativeY = _this$props.distanceFromOriginToFirstNegativeY,
107
+ dy = _this$props.dy;
108
+ var _ref3 = graphProps || {},
109
+ scale = _ref3.scale,
110
+ domain = _ref3.domain,
111
+ size = _ref3.size,
112
+ range = _ref3.range;
113
+ var labelProps = function labelProps(label) {
114
+ var y = skipValues && skipValues[0] === label ? distanceFromOriginToFirstNegativeY + 4 : dy;
115
+ return _objectSpread(_objectSpread({}, tickLabelStyles), {}, {
116
+ textAnchor: 'middle',
117
+ y: y,
118
+ dx: label === 0 ? -10 : 0,
119
+ dy: label === 0 ? -7 : 0
120
+ });
121
+ };
122
+ var necessaryRows = (0, _utils.countWords)(domain.axisLabel);
123
+ var longestWord = (0, _utils.findLongestWord)(domain.axisLabel);
124
+ var necessaryWidth = (0, _utils.amountToIncreaseWidth)(longestWord) + 2;
125
+ return /*#__PURE__*/_react["default"].createElement(StyledAxesGroup, null, /*#__PURE__*/_react["default"].createElement(_axis.Axis, {
126
+ scale: scale.x,
127
+ top: scale.y(0),
128
+ left: 0,
129
+ label: domain.label,
130
+ rangePadding: 8,
131
+ tickFormat: function tickFormat(value) {
132
+ return value;
133
+ },
134
+ tickLabelProps: labelProps,
135
+ tickValues: columnTicksValues,
136
+ hideZero: !(domain.labelStep || range.labelStep) && domain.min <= 0
137
+ }), includeArrows && includeArrows.left && /*#__PURE__*/_react["default"].createElement(StyledArrow, {
138
+ direction: "left",
139
+ x: domain.min,
140
+ y: 0,
141
+ scale: scale
142
+ }), includeArrows && includeArrows.right && /*#__PURE__*/_react["default"].createElement(StyledArrow, {
143
+ direction: "right",
144
+ x: domain.max,
145
+ y: 0,
146
+ scale: scale
147
+ }), domain.axisLabel && /*#__PURE__*/_react["default"].createElement("foreignObject", {
148
+ x: size.width + 17,
149
+ y: scale.y(0) - 9,
150
+ width: necessaryWidth,
151
+ height: 20 * necessaryRows
152
+ }, /*#__PURE__*/_react["default"].createElement(LabelContainer, {
153
+ dangerouslySetInnerHTML: {
154
+ __html: domain.axisLabel
155
+ }
156
+ })));
157
+ }
158
+ }]);
159
+ }(_react["default"].Component);
160
+ (0, _defineProperty2["default"])(RawXAxis, "propTypes", _objectSpread(_objectSpread({}, AxisPropTypes), {}, {
161
+ graphProps: _plot.types.GraphPropsType.isRequired
162
+ }));
163
+ (0, _defineProperty2["default"])(RawXAxis, "defaultProps", AxisDefaultProps);
164
+ var XAxis = RawXAxis;
165
+ var RawYAxis = exports.RawYAxis = /*#__PURE__*/function (_React$Component2) {
166
+ function RawYAxis() {
167
+ (0, _classCallCheck2["default"])(this, RawYAxis);
168
+ return _callSuper(this, RawYAxis, arguments);
169
+ }
170
+ (0, _inherits2["default"])(RawYAxis, _React$Component2);
171
+ return (0, _createClass2["default"])(RawYAxis, [{
172
+ key: "render",
173
+ value: function render() {
174
+ var _this$props2 = this.props,
175
+ includeArrows = _this$props2.includeArrows,
176
+ graphProps = _this$props2.graphProps,
177
+ skipValues = _this$props2.skipValues,
178
+ rowTickValues = _this$props2.rowTickValues;
179
+ var _ref4 = graphProps || {},
180
+ scale = _ref4.scale,
181
+ range = _ref4.range,
182
+ size = _ref4.size;
183
+ var necessaryWidth = range.axisLabel ? (0, _utils.amountToIncreaseWidth)(range.axisLabel.length) : 0;
184
+ var customTickFormat = function customTickFormat(value) {
185
+ return skipValues && skipValues.indexOf(value) >= 0 ? '' : value;
186
+ };
187
+ return /*#__PURE__*/_react["default"].createElement(StyledAxesGroup, null, /*#__PURE__*/_react["default"].createElement(_axis.Axis, {
188
+ orientation: 'left',
189
+ scale: scale.y,
190
+ top: 0,
191
+ height: size.height,
192
+ left: scale.x(0),
193
+ label: range.label,
194
+ labelProps: {
195
+ 'data-pie-readable': false
196
+ },
197
+ rangePadding: 8,
198
+ tickLength: 10,
199
+ tickFormat: customTickFormat,
200
+ tickLabelProps: function tickLabelProps(value) {
201
+ var digits = value.toLocaleString().replace(/[.-]/g, '').length || 1;
202
+ return _objectSpread(_objectSpread({}, tickLabelStyles), {}, {
203
+ dy: 4,
204
+ dx: -10 - digits * 9,
205
+ 'data-pie-readable': false
206
+ });
207
+ },
208
+ hideZero: true,
209
+ tickTextAnchor: 'bottom',
210
+ tickValues: rowTickValues
211
+ }), includeArrows && includeArrows.down && /*#__PURE__*/_react["default"].createElement(StyledArrow, {
212
+ direction: "down",
213
+ x: 0,
214
+ y: range.min,
215
+ scale: scale
216
+ }), includeArrows && includeArrows.up && /*#__PURE__*/_react["default"].createElement(StyledArrow, {
217
+ direction: "up",
218
+ x: 0,
219
+ y: range.max,
220
+ scale: scale
221
+ }), range.axisLabel && /*#__PURE__*/_react["default"].createElement("foreignObject", {
222
+ x: scale.x(0) - necessaryWidth / 2,
223
+ y: -33,
224
+ width: necessaryWidth,
225
+ height: "20"
226
+ }, /*#__PURE__*/_react["default"].createElement(_renderUi.Readable, {
227
+ "false": true
228
+ }, /*#__PURE__*/_react["default"].createElement(AxisLabelHolder, {
229
+ dangerouslySetInnerHTML: {
230
+ __html: range.axisLabel
231
+ }
232
+ }))));
233
+ }
234
+ }]);
235
+ }(_react["default"].Component);
236
+ (0, _defineProperty2["default"])(RawYAxis, "propTypes", _objectSpread(_objectSpread({}, AxisPropTypes), {}, {
237
+ graphProps: _plot.types.GraphPropsType.isRequired
238
+ }));
239
+ (0, _defineProperty2["default"])(RawYAxis, "defaultProps", AxisDefaultProps);
240
+ var YAxis = RawYAxis;
241
+ var Axes = exports["default"] = /*#__PURE__*/function (_React$Component3) {
242
+ function Axes() {
243
+ var _this;
244
+ (0, _classCallCheck2["default"])(this, Axes);
245
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
246
+ args[_key] = arguments[_key];
247
+ }
248
+ _this = _callSuper(this, Axes, [].concat(args));
249
+ (0, _defineProperty2["default"])(_this, "xValues", function () {
250
+ var graphProps = _this.props.graphProps;
251
+ var _ref5 = graphProps || {},
252
+ scale = _ref5.scale,
253
+ domain = _ref5.domain;
254
+ if (!domain || !scale) {
255
+ return;
256
+ }
257
+ var ticks = (0, _utils.getTickValues)(_objectSpread(_objectSpread({}, domain), {}, {
258
+ step: domain.labelStep
259
+ }));
260
+ var negative = firstNegativeValue(ticks);
261
+ return {
262
+ columnTicksValues: ticks,
263
+ firstNegativeX: negative,
264
+ distanceFromOriginToFirstNegativeX: Math.abs(scale.y(0) - scale.y(negative))
265
+ };
266
+ });
267
+ (0, _defineProperty2["default"])(_this, "yValues", function () {
268
+ var graphProps = _this.props.graphProps;
269
+ var _ref6 = graphProps || {},
270
+ scale = _ref6.scale,
271
+ range = _ref6.range;
272
+ if (!range || !scale) {
273
+ return;
274
+ }
275
+ var ticks = (0, _utils.getTickValues)(_objectSpread(_objectSpread({}, range), {}, {
276
+ step: range.labelStep
277
+ }));
278
+ var negative = firstNegativeValue(ticks);
279
+ return {
280
+ rowTickValues: ticks,
281
+ firstNegativeY: negative,
282
+ distanceFromOriginToFirstNegativeY: Math.abs(scale.x(0) - scale.x(negative))
283
+ };
284
+ });
285
+ return _this;
286
+ }
287
+ (0, _inherits2["default"])(Axes, _React$Component3);
288
+ return (0, _createClass2["default"])(Axes, [{
289
+ key: "render",
290
+ value: function render() {
291
+ var graphProps = this.props.graphProps;
292
+ var _ref7 = graphProps || {},
293
+ domain = _ref7.domain,
294
+ range = _ref7.range;
295
+ var _this$xValues = this.xValues(),
296
+ columnTicksValues = _this$xValues.columnTicksValues,
297
+ firstNegativeX = _this$xValues.firstNegativeX,
298
+ distanceFromOriginToFirstNegativeX = _this$xValues.distanceFromOriginToFirstNegativeX;
299
+ var _this$yValues = this.yValues(),
300
+ rowTickValues = _this$yValues.rowTickValues,
301
+ firstNegativeY = _this$yValues.firstNegativeY,
302
+ distanceFromOriginToFirstNegativeY = _this$yValues.distanceFromOriginToFirstNegativeY;
303
+ var deltaAllowance = 6;
304
+ var dy = 25;
305
+ var skipValues = sharedValues(firstNegativeX, firstNegativeY, distanceFromOriginToFirstNegativeX, distanceFromOriginToFirstNegativeY, deltaAllowance, dy);
306
+
307
+ // each axis has to be displayed only if the domain & range include it
308
+ return /*#__PURE__*/_react["default"].createElement(StyledAxesGroup, null, range.min <= 0 ? /*#__PURE__*/_react["default"].createElement(XAxis, (0, _extends2["default"])({}, this.props, {
309
+ skipValues: skipValues,
310
+ columnTicksValues: columnTicksValues,
311
+ distanceFromOriginToFirstNegativeY: distanceFromOriginToFirstNegativeY,
312
+ dy: dy
313
+ })) : null, domain.min <= 0 ? /*#__PURE__*/_react["default"].createElement(YAxis, (0, _extends2["default"])({}, this.props, {
314
+ skipValues: skipValues,
315
+ rowTickValues: rowTickValues,
316
+ distanceFromOriginToFirstNegativeX: distanceFromOriginToFirstNegativeX
317
+ })) : null);
318
+ }
319
+ }]);
320
+ }(_react["default"].Component);
321
+ (0, _defineProperty2["default"])(Axes, "propTypes", _objectSpread(_objectSpread({}, AxisPropTypes), {}, {
322
+ graphProps: _plot.types.GraphPropsType.isRequired
323
+ }));
324
+ (0, _defineProperty2["default"])(Axes, "defaultProps", AxisDefaultProps);
325
+ //# sourceMappingURL=axes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"axes.js","names":["_react","_interopRequireDefault","require","_axis","_plot","_propTypes","_arrow","_styles","_utils","_renderUi","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","_callSuper","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","Boolean","prototype","valueOf","call","AxisPropTypes","exports","includeArrows","PropTypes","object","graphProps","AxisDefaultProps","left","right","up","down","StyledAxesGroup","styled","stroke","strokeWidth","fill","color","defaults","BLACK","LabelContainer","_ref","theme","fontSize","typography","AxisLabelHolder","_ref2","padding","margin","textAlign","StyledArrow","Arrow","tickLabelStyles","fontFamily","cursor","sharedValues","firstNegativeX","firstNegativeY","distanceFromOriginToFirstNegativeX","distanceFromOriginToFirstNegativeY","deltaAllowance","dy","result","firstNegativeValue","interval","find","element","RawXAxis","_React$Component","_classCallCheck2","_inherits2","_createClass2","key","value","render","_this$props","props","columnTicksValues","skipValues","_ref3","scale","domain","size","range","labelProps","label","y","textAnchor","dx","necessaryRows","countWords","axisLabel","longestWord","findLongestWord","necessaryWidth","amountToIncreaseWidth","createElement","Axis","x","top","rangePadding","tickFormat","tickLabelProps","tickValues","hideZero","labelStep","min","direction","max","width","height","dangerouslySetInnerHTML","__html","React","Component","types","GraphPropsType","isRequired","XAxis","RawYAxis","_React$Component2","_this$props2","rowTickValues","_ref4","customTickFormat","indexOf","orientation","tickLength","digits","toLocaleString","replace","tickTextAnchor","Readable","YAxis","Axes","_React$Component3","_this","_len","args","Array","_key","concat","_ref5","ticks","getTickValues","step","negative","Math","abs","_ref6","_ref7","_this$xValues","xValues","_this$yValues","yValues","_extends2"],"sources":["../../src/axis/axes.jsx"],"sourcesContent":["import React from 'react';\nimport { Axis } from '@visx/axis';\nimport { types } from '@pie-lib/plot';\nimport PropTypes from 'prop-types';\nimport Arrow from './arrow';\nimport { styled } from '@mui/material/styles';\nimport { countWords, findLongestWord, amountToIncreaseWidth, getTickValues } from '../utils';\nimport { color, Readable } from '@pie-lib/render-ui';\n\nexport const AxisPropTypes = {\n includeArrows: PropTypes.object,\n graphProps: PropTypes.object,\n};\n\nconst AxisDefaultProps = {\n includeArrows: {\n left: true,\n right: true,\n up: true,\n down: true,\n },\n};\n\nconst StyledAxesGroup = styled('g')(() => ({\n '& .visx-axis-line': {\n stroke: '#8a92c0',\n strokeWidth: 4,\n },\n '& .visx-axis-tick': {\n fill: color.defaults.BLACK,\n '& > line': {\n stroke: '#8a92c0',\n },\n },\n}));\n\nconst LabelContainer = styled('div')(({ theme }) => ({\n fontSize: theme.typography.fontSize,\n}));\n\nconst AxisLabelHolder = styled('div')(({ theme }) => ({\n padding: 0,\n margin: 0,\n textAlign: 'center',\n '* > *': {\n margin: 0,\n padding: 0,\n },\n fontSize: theme.typography.fontSize,\n}));\n\nconst StyledArrow = styled(Arrow)({\n fill: '#8a92c0',\n});\n\nconst tickLabelStyles = {\n fontFamily: 'Roboto',\n fontSize: '14px',\n cursor: 'inherit',\n};\n\nexport const sharedValues = (\n firstNegativeX,\n firstNegativeY,\n distanceFromOriginToFirstNegativeX,\n distanceFromOriginToFirstNegativeY,\n deltaAllowance,\n dy,\n) => {\n let result = [];\n\n if (\n firstNegativeX === firstNegativeY &&\n distanceFromOriginToFirstNegativeX - deltaAllowance < distanceFromOriginToFirstNegativeY &&\n distanceFromOriginToFirstNegativeY < distanceFromOriginToFirstNegativeX + deltaAllowance &&\n distanceFromOriginToFirstNegativeX - deltaAllowance < dy &&\n dy < distanceFromOriginToFirstNegativeX + deltaAllowance\n ) {\n result.push(firstNegativeX);\n }\n\n return result;\n};\n\nexport const firstNegativeValue = (interval) => (interval || []).find((element) => element < 0);\n\nexport class RawXAxis extends React.Component {\n static propTypes = {\n ...AxisPropTypes,\n graphProps: types.GraphPropsType.isRequired,\n };\n static defaultProps = AxisDefaultProps;\n\n render() {\n const {\n includeArrows,\n graphProps,\n columnTicksValues,\n skipValues,\n distanceFromOriginToFirstNegativeY,\n dy,\n } = this.props;\n const { scale, domain, size, range } = graphProps || {};\n\n const labelProps = (label) => {\n const y = skipValues && skipValues[0] === label ? distanceFromOriginToFirstNegativeY + 4 : dy;\n\n return {\n ...tickLabelStyles,\n textAnchor: 'middle',\n y: y,\n dx: label === 0 ? -10 : 0,\n dy: label === 0 ? -7 : 0,\n };\n };\n\n const necessaryRows = countWords(domain.axisLabel);\n const longestWord = findLongestWord(domain.axisLabel);\n const necessaryWidth = amountToIncreaseWidth(longestWord) + 2;\n\n return (\n <StyledAxesGroup>\n <Axis\n scale={scale.x}\n top={scale.y(0)}\n left={0}\n label={domain.label}\n rangePadding={8}\n tickFormat={(value) => value}\n tickLabelProps={labelProps}\n tickValues={columnTicksValues}\n hideZero={!(domain.labelStep || range.labelStep) && domain.min <= 0}\n />\n {includeArrows && includeArrows.left && (\n <StyledArrow direction=\"left\" x={domain.min} y={0} scale={scale} />\n )}\n {includeArrows && includeArrows.right && (\n <StyledArrow direction=\"right\" x={domain.max} y={0} scale={scale} />\n )}\n {domain.axisLabel && (\n <foreignObject x={size.width + 17} y={scale.y(0) - 9} width={necessaryWidth} height={20 * necessaryRows}>\n <LabelContainer dangerouslySetInnerHTML={{ __html: domain.axisLabel }} />\n </foreignObject>\n )}\n </StyledAxesGroup>\n );\n }\n}\n\nconst XAxis = RawXAxis;\n\nexport class RawYAxis extends React.Component {\n static propTypes = {\n ...AxisPropTypes,\n graphProps: types.GraphPropsType.isRequired,\n };\n static defaultProps = AxisDefaultProps;\n\n render() {\n const { includeArrows, graphProps, skipValues, rowTickValues } = this.props;\n const { scale, range, size } = graphProps || {};\n\n const necessaryWidth = range.axisLabel ? amountToIncreaseWidth(range.axisLabel.length) : 0;\n\n const customTickFormat = (value) => (skipValues && skipValues.indexOf(value) >= 0 ? '' : value);\n\n return (\n <StyledAxesGroup>\n <Axis\n orientation={'left'}\n scale={scale.y}\n top={0}\n height={size.height}\n left={scale.x(0)}\n label={range.label}\n labelProps={{ 'data-pie-readable': false }}\n rangePadding={8}\n tickLength={10}\n tickFormat={customTickFormat}\n tickLabelProps={(value) => {\n let digits = value.toLocaleString().replace(/[.-]/g, '').length || 1;\n\n return {\n ...tickLabelStyles,\n dy: 4,\n dx: -10 - digits * 9,\n 'data-pie-readable': false,\n };\n }}\n hideZero={true}\n tickTextAnchor={'bottom'}\n tickValues={rowTickValues}\n />\n {includeArrows && includeArrows.down && (\n <StyledArrow direction=\"down\" x={0} y={range.min} scale={scale} />\n )}\n {includeArrows && includeArrows.up && (\n <StyledArrow direction=\"up\" x={0} y={range.max} scale={scale} />\n )}\n {range.axisLabel && (\n <foreignObject x={scale.x(0) - necessaryWidth / 2} y={-33} width={necessaryWidth} height=\"20\">\n <Readable false>\n <AxisLabelHolder dangerouslySetInnerHTML={{ __html: range.axisLabel }} />\n </Readable>\n </foreignObject>\n )}\n </StyledAxesGroup>\n );\n }\n}\n\nconst YAxis = RawYAxis;\n\nexport default class Axes extends React.Component {\n static propTypes = {\n ...AxisPropTypes,\n graphProps: types.GraphPropsType.isRequired,\n };\n static defaultProps = AxisDefaultProps;\n\n xValues = () => {\n const { graphProps } = this.props;\n const { scale, domain } = graphProps || {};\n\n if (!domain || !scale) {\n return;\n }\n\n const ticks = getTickValues({ ...domain, step: domain.labelStep });\n const negative = firstNegativeValue(ticks);\n\n return {\n columnTicksValues: ticks,\n firstNegativeX: negative,\n distanceFromOriginToFirstNegativeX: Math.abs(scale.y(0) - scale.y(negative)),\n };\n };\n\n yValues = () => {\n const { graphProps } = this.props;\n const { scale, range } = graphProps || {};\n\n if (!range || !scale) {\n return;\n }\n\n const ticks = getTickValues({ ...range, step: range.labelStep });\n const negative = firstNegativeValue(ticks);\n\n return {\n rowTickValues: ticks,\n firstNegativeY: negative,\n distanceFromOriginToFirstNegativeY: Math.abs(scale.x(0) - scale.x(negative)),\n };\n };\n\n render() {\n const { graphProps } = this.props;\n const { domain, range } = graphProps || {};\n const { columnTicksValues, firstNegativeX, distanceFromOriginToFirstNegativeX } = this.xValues();\n const { rowTickValues, firstNegativeY, distanceFromOriginToFirstNegativeY } = this.yValues();\n const deltaAllowance = 6;\n const dy = 25;\n\n const skipValues = sharedValues(\n firstNegativeX,\n firstNegativeY,\n distanceFromOriginToFirstNegativeX,\n distanceFromOriginToFirstNegativeY,\n deltaAllowance,\n dy,\n );\n\n // each axis has to be displayed only if the domain & range include it\n return (\n <StyledAxesGroup>\n {range.min <= 0 ? (\n <XAxis\n {...this.props}\n skipValues={skipValues}\n columnTicksValues={columnTicksValues}\n distanceFromOriginToFirstNegativeY={distanceFromOriginToFirstNegativeY}\n dy={dy}\n />\n ) : null}\n {domain.min <= 0 ? (\n <YAxis\n {...this.props}\n skipValues={skipValues}\n rowTickValues={rowTickValues}\n distanceFromOriginToFirstNegativeX={distanceFromOriginToFirstNegativeX}\n />\n ) : null}\n </StyledAxesGroup>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ Object.defineProperty(exports, "Axes", {
8
+ enumerable: true,
9
+ get: function get() {
10
+ return _axes["default"];
11
+ }
12
+ });
13
+ Object.defineProperty(exports, "AxisPropTypes", {
14
+ enumerable: true,
15
+ get: function get() {
16
+ return _axes.AxisPropTypes;
17
+ }
18
+ });
19
+ var _axes = _interopRequireWildcard(require("./axes"));
20
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["_axes","_interopRequireWildcard","require","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor"],"sources":["../../src/axis/index.js"],"sourcesContent":["import Axes, { AxisPropTypes } from './axes';\nexport { Axes, AxisPropTypes };\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AAA6C,SAAAD,wBAAAE,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAJ,uBAAA,YAAAA,wBAAAE,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,mBAAAT,CAAA,iBAAAA,CAAA,gBAAAU,OAAA,CAAAV,CAAA,0BAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,cAAAM,EAAA,IAAAd,CAAA,gBAAAc,EAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,EAAA,OAAAP,CAAA,IAAAD,CAAA,GAAAW,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAnB,CAAA,EAAAc,EAAA,OAAAP,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAM,EAAA,EAAAP,CAAA,IAAAC,CAAA,CAAAM,EAAA,IAAAd,CAAA,CAAAc,EAAA,WAAAN,CAAA,KAAAR,CAAA,EAAAC,CAAA","ignoreList":[]}
package/lib/bg.js ADDED
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
11
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
12
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
13
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
+ var _react = _interopRequireDefault(require("react"));
15
+ var _propTypes = _interopRequireDefault(require("prop-types"));
16
+ var _d3Selection = require("d3-selection");
17
+ var _plot = require("@pie-lib/plot");
18
+ var _utils = require("./utils");
19
+ 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)); }
20
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
21
+ var Bg = exports["default"] = /*#__PURE__*/function (_React$Component) {
22
+ function Bg() {
23
+ var _this;
24
+ (0, _classCallCheck2["default"])(this, Bg);
25
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
26
+ args[_key] = arguments[_key];
27
+ }
28
+ _this = _callSuper(this, Bg, [].concat(args));
29
+ (0, _defineProperty2["default"])(_this, "getRectPadding", function () {
30
+ var graphProps = _this.props.graphProps;
31
+ return (0, _utils.thinnerShapesNeeded)(graphProps) ? 6 : 10;
32
+ });
33
+ /**
34
+ * Note: we use d3 click + mouse to give us domain values directly.
35
+ * Saves us having to calculate them ourselves from a MouseEvent.
36
+ */
37
+ (0, _defineProperty2["default"])(_this, "onRectClick", function (rect) {
38
+ var _this$props = _this.props,
39
+ onClick = _this$props.onClick,
40
+ graphProps = _this$props.graphProps;
41
+ var scale = graphProps.scale;
42
+ var padding = _this.getRectPadding();
43
+ var coords = (0, _d3Selection.mouse)(rect._groups[0][0]);
44
+
45
+ // decrease the padding from coordinates to indicate the correct point clicked
46
+ var x = scale.x.invert(coords[0] - padding);
47
+ var y = scale.y.invert(coords[1] - padding);
48
+ var rowTicks = (0, _utils.getTickValues)(graphProps.range);
49
+ var columnTicks = (0, _utils.getTickValues)(graphProps.domain);
50
+ var closest = function closest(ticks, value) {
51
+ return ticks.length && ticks.reduce(function (prev, curr) {
52
+ var currentDistance = Math.abs(curr - value);
53
+ var previousDistance = Math.abs(prev - value);
54
+ return currentDistance <= previousDistance ? curr : prev;
55
+ });
56
+ };
57
+ var snapped = {};
58
+ if (columnTicks.indexOf(x) >= 0 && rowTicks.indexOf(y) >= 0) {
59
+ snapped.x = x;
60
+ snapped.y = y;
61
+ } else {
62
+ snapped.x = closest(columnTicks, x);
63
+ snapped.y = closest(rowTicks, y);
64
+ }
65
+ onClick(snapped);
66
+ });
67
+ return _this;
68
+ }
69
+ (0, _inherits2["default"])(Bg, _React$Component);
70
+ return (0, _createClass2["default"])(Bg, [{
71
+ key: "componentDidMount",
72
+ value: function componentDidMount() {
73
+ var rect = (0, _d3Selection.select)(this.rect);
74
+ rect.on('click', this.onRectClick.bind(this, rect));
75
+ }
76
+ }, {
77
+ key: "shouldComponentUpdate",
78
+ value: function shouldComponentUpdate(nextProps) {
79
+ return !_plot.utils.isDomainRangeEqual(this.props.graphProps, nextProps.graphProps) || this.props.width !== nextProps.width || this.props.height !== nextProps.height;
80
+ }
81
+ }, {
82
+ key: "render",
83
+ value: function render() {
84
+ var _this2 = this;
85
+ var _this$props2 = this.props,
86
+ width = _this$props2.width,
87
+ height = _this$props2.height;
88
+ var padding = this.getRectPadding();
89
+
90
+ // expand the size of clickable area so a small area outside the edges of the grid lines to be clickable
91
+ return /*#__PURE__*/_react["default"].createElement("rect", {
92
+ ref: function ref(rect) {
93
+ return _this2.rect = rect;
94
+ },
95
+ transform: "translate(-".concat(padding, ", -").concat(padding, ")"),
96
+ fill: "red",
97
+ fillOpacity: "0.0",
98
+ width: width + padding * 2,
99
+ height: height + padding * 2
100
+ });
101
+ }
102
+ }]);
103
+ }(_react["default"].Component);
104
+ (0, _defineProperty2["default"])(Bg, "propTypes", {
105
+ width: _propTypes["default"].number.isRequired,
106
+ height: _propTypes["default"].number.isRequired,
107
+ onClick: _propTypes["default"].func.isRequired,
108
+ graphProps: _plot.types.GraphPropsType.isRequired
109
+ });
110
+ (0, _defineProperty2["default"])(Bg, "defaultProps", {});
111
+ //# 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","_this$props","onClick","scale","padding","getRectPadding","coords","mouse","_groups","x","invert","y","rowTicks","getTickValues","range","columnTicks","domain","closest","ticks","value","reduce","prev","curr","currentDistance","Math","abs","previousDistance","snapped","indexOf","_inherits2","_createClass2","key","componentDidMount","select","on","onRectClick","bind","shouldComponentUpdate","nextProps","utils","isDomainRangeEqual","width","height","render","_this2","_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, mouse } 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', this.onRectClick.bind(this, rect));\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 + mouse to give us domain values directly.\n * Saves us having to calculate them ourselves from a MouseEvent.\n */\n onRectClick = (rect) => {\n const { onClick, graphProps } = this.props;\n const { scale } = graphProps;\n\n const padding = this.getRectPadding();\n const coords = mouse(rect._groups[0][0]);\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":[]}