@pie-lib/charting 4.5.6 → 4.5.11-next.256

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 (43) hide show
  1. package/CHANGELOG.json +105 -0
  2. package/CHANGELOG.md +16 -20
  3. package/lib/axes.js +84 -36
  4. package/lib/axes.js.map +1 -1
  5. package/lib/bars/bar.js +17 -13
  6. package/lib/bars/bar.js.map +1 -1
  7. package/lib/bars/common/bars.js +27 -21
  8. package/lib/bars/common/bars.js.map +1 -1
  9. package/lib/bars/histogram.js +17 -13
  10. package/lib/bars/histogram.js.map +1 -1
  11. package/lib/chart.js +55 -37
  12. package/lib/chart.js.map +1 -1
  13. package/lib/common/drag-handle.js +24 -18
  14. package/lib/common/drag-handle.js.map +1 -1
  15. package/lib/common/styles.js +1 -1
  16. package/lib/grid.js +17 -13
  17. package/lib/grid.js.map +1 -1
  18. package/lib/line/common/drag-handle.js +20 -14
  19. package/lib/line/common/drag-handle.js.map +1 -1
  20. package/lib/line/common/line.js +38 -30
  21. package/lib/line/common/line.js.map +1 -1
  22. package/lib/line/line-cross.js +23 -17
  23. package/lib/line/line-cross.js.map +1 -1
  24. package/lib/line/line-dot.js +21 -15
  25. package/lib/line/line-dot.js.map +1 -1
  26. package/lib/mark-label.js +37 -11
  27. package/lib/mark-label.js.map +1 -1
  28. package/lib/plot/common/plot.js +27 -21
  29. package/lib/plot/common/plot.js.map +1 -1
  30. package/lib/plot/dot.js +18 -14
  31. package/lib/plot/dot.js.map +1 -1
  32. package/lib/plot/line.js +19 -15
  33. package/lib/plot/line.js.map +1 -1
  34. package/lib/tool-menu.js +19 -15
  35. package/lib/tool-menu.js.map +1 -1
  36. package/lib/utils.js +79 -26
  37. package/lib/utils.js.map +1 -1
  38. package/package.json +3 -3
  39. package/src/axes.jsx +72 -29
  40. package/src/chart.jsx +31 -6
  41. package/src/line/common/line.jsx +1 -1
  42. package/src/mark-label.jsx +15 -4
  43. package/src/utils.js +75 -19
@@ -1,9 +1,11 @@
1
1
  "use strict";
2
2
 
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
6
- exports["default"] = exports.Bars = exports.RawBar = void 0;
8
+ exports["default"] = exports.RawBar = exports.Bars = void 0;
7
9
 
8
10
  var _react = _interopRequireDefault(require("react"));
9
11
 
@@ -25,43 +27,47 @@ var _utils = require("../../utils");
25
27
 
26
28
  var _dragHandle = _interopRequireWildcard(require("../../common/drag-handle"));
27
29
 
28
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj["default"] = obj; return newObj; } }
30
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
29
31
 
30
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
32
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
31
33
 
32
- function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
34
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
33
35
 
34
36
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
35
37
 
36
38
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
37
39
 
38
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
40
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
39
41
 
40
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
42
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
41
43
 
42
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
44
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
45
+
46
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
47
+
48
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
43
49
 
44
50
  function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
45
51
 
46
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
52
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
47
53
 
48
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
54
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
49
55
 
50
56
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
51
57
 
52
58
  var log = (0, _debug["default"])('pie-lib:chart:bars');
53
59
 
54
- var RawBar =
55
- /*#__PURE__*/
56
- function (_React$Component) {
60
+ var RawBar = /*#__PURE__*/function (_React$Component) {
57
61
  _inherits(RawBar, _React$Component);
58
62
 
63
+ var _super = _createSuper(RawBar);
64
+
59
65
  function RawBar(props) {
60
66
  var _this;
61
67
 
62
68
  _classCallCheck(this, RawBar);
63
69
 
64
- _this = _possibleConstructorReturn(this, _getPrototypeOf(RawBar).call(this, props));
70
+ _this = _super.call(this, props);
65
71
 
66
72
  _defineProperty(_assertThisInitialized(_this), "setDragValue", function (dragValue) {
67
73
  return _this.setState({
@@ -125,13 +131,13 @@ function (_React$Component) {
125
131
  var yy = range.max - rawY;
126
132
  log('label:', label, 'barX:', barX, 'v: ', v, 'barHeight:', barHeight, 'barWidth: ', barWidth);
127
133
  var Component = interactive ? _dragHandle["default"] : _dragHandle.DragHandle;
128
- return _react["default"].createElement(_react["default"].Fragment, null, _react["default"].createElement(_shape.Bar, {
134
+ return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_shape.Bar, {
129
135
  x: barX,
130
136
  y: scale.y(yy),
131
137
  width: barWidth,
132
138
  height: barHeight,
133
139
  className: classes.bar
134
- }), _react["default"].createElement(Component, {
140
+ }), /*#__PURE__*/_react["default"].createElement(Component, {
135
141
  x: barX,
136
142
  y: v,
137
143
  interactive: interactive,
@@ -174,15 +180,15 @@ var Bar = (0, _index.withStyles)(function () {
174
180
  };
175
181
  })(RawBar);
176
182
 
177
- var Bars =
178
- /*#__PURE__*/
179
- function (_React$Component2) {
183
+ var Bars = /*#__PURE__*/function (_React$Component2) {
180
184
  _inherits(Bars, _React$Component2);
181
185
 
186
+ var _super2 = _createSuper(Bars);
187
+
182
188
  function Bars() {
183
189
  _classCallCheck(this, Bars);
184
190
 
185
- return _possibleConstructorReturn(this, _getPrototypeOf(Bars).apply(this, arguments));
191
+ return _super2.apply(this, arguments);
186
192
  }
187
193
 
188
194
  _createClass(Bars, [{
@@ -193,8 +199,8 @@ function (_React$Component2) {
193
199
  graphProps = _this$props3.graphProps,
194
200
  xBand = _this$props3.xBand,
195
201
  _onChangeCategory = _this$props3.onChangeCategory;
196
- return _react["default"].createElement(_group.Group, null, (data || []).map(function (d, index) {
197
- return _react["default"].createElement(Bar, {
202
+ return /*#__PURE__*/_react["default"].createElement(_group.Group, null, (data || []).map(function (d, index) {
203
+ return /*#__PURE__*/_react["default"].createElement(Bar, {
198
204
  value: d.value,
199
205
  interactive: d.interactive,
200
206
  label: d.label,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/bars/common/bars.jsx"],"names":["log","RawBar","props","dragValue","setState","label","onChangeCategory","state","undefined","value","setDragValue","existing","next","graphProps","classes","xBand","index","interactive","correctness","scale","range","v","Number","isFinite","barWidth","bandwidth","barHeight","y","max","barX","rawY","yy","Component","DraggableHandle","DragHandle","bar","dragStop","React","PropTypes","func","number","object","string","isRequired","types","GraphPropsType","bool","shape","Bar","fill","color","primaryLight","Bars","data","map","d","category","array"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { types } from '@pie-lib/plot';\nimport { Group } from '@vx/group';\nimport { color } from '@pie-lib/render-ui';\nimport { Bar as VxBar } from '@vx/shape';\nimport { withStyles } from '@material-ui/core/styles/index';\nimport debug from 'debug';\nimport { bandKey } from '../../utils';\nimport DraggableHandle, { DragHandle } from '../../common/drag-handle';\n\nconst log = debug('pie-lib:chart:bars');\n\nexport class RawBar extends React.Component {\n static propTypes = {\n onChangeCategory: PropTypes.func,\n value: PropTypes.number,\n classes: PropTypes.object,\n label: PropTypes.string,\n xBand: PropTypes.func,\n index: PropTypes.number.isRequired,\n graphProps: types.GraphPropsType.isRequired,\n interactive: PropTypes.bool,\n correctness: PropTypes.shape({\n value: PropTypes.string,\n label: PropTypes.string\n })\n };\n\n constructor(props) {\n super(props);\n this.state = {\n dragValue: undefined\n };\n }\n\n setDragValue = dragValue => this.setState({ dragValue });\n\n dragStop = () => {\n const { label, onChangeCategory } = this.props;\n const { dragValue } = this.state;\n log('[dragStop]', dragValue);\n\n if (dragValue !== undefined) {\n onChangeCategory({ label, value: dragValue });\n }\n\n this.setDragValue(undefined);\n };\n\n dragValue = (existing, next) => {\n log('[dragValue] next:', next);\n\n this.setDragValue(next);\n };\n\n render() {\n const {\n graphProps,\n value,\n label,\n classes,\n xBand,\n index,\n interactive,\n correctness\n } = this.props;\n const { scale, range } = graphProps;\n const { dragValue } = this.state;\n\n const v = Number.isFinite(dragValue) ? dragValue : value;\n const barWidth = xBand.bandwidth();\n const barHeight = scale.y(range.max - v);\n const barX = xBand(bandKey({ label }, index));\n const rawY = range.max - v;\n const yy = range.max - rawY;\n log('label:', label, 'barX:', barX, 'v: ', v, 'barHeight:', barHeight, 'barWidth: ', barWidth);\n\n const Component = interactive ? DraggableHandle : DragHandle;\n\n return (\n <React.Fragment>\n <VxBar\n x={barX}\n y={scale.y(yy)}\n width={barWidth}\n height={barHeight}\n className={classes.bar}\n />\n <Component\n x={barX}\n y={v}\n interactive={interactive}\n width={barWidth}\n onDrag={v => this.dragValue(value, v)}\n onDragStop={this.dragStop}\n graphProps={graphProps}\n correctness={correctness}\n />\n </React.Fragment>\n );\n }\n}\n\nconst Bar = withStyles(() => ({\n bar: {\n fill: color.primaryLight()\n }\n}))(RawBar);\n\nexport class Bars extends React.Component {\n static propTypes = {\n data: PropTypes.array,\n onChangeCategory: PropTypes.func,\n xBand: PropTypes.func,\n graphProps: types.GraphPropsType.isRequired\n };\n\n render() {\n const { data, graphProps, xBand, onChangeCategory } = this.props;\n return (\n <Group>\n {(data || []).map((d, index) => (\n <Bar\n value={d.value}\n interactive={d.interactive}\n label={d.label}\n xBand={xBand}\n index={index}\n key={`bar-${d.label}-${d.value}-${index}`}\n onChangeCategory={category => onChangeCategory(index, category)}\n graphProps={graphProps}\n correctness={d.correctness}\n />\n ))}\n </Group>\n );\n }\n}\n\nexport default Bars;\n"],"file":"bars.js"}
1
+ {"version":3,"sources":["../../../src/bars/common/bars.jsx"],"names":["log","RawBar","props","dragValue","setState","label","onChangeCategory","state","undefined","value","setDragValue","existing","next","graphProps","classes","xBand","index","interactive","correctness","scale","range","v","Number","isFinite","barWidth","bandwidth","barHeight","y","max","barX","rawY","yy","Component","DraggableHandle","DragHandle","bar","dragStop","React","PropTypes","func","number","object","string","isRequired","types","GraphPropsType","bool","shape","Bar","fill","color","primaryLight","Bars","data","map","d","category","array"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { types } from '@pie-lib/plot';\nimport { Group } from '@vx/group';\nimport { color } from '@pie-lib/render-ui';\nimport { Bar as VxBar } from '@vx/shape';\nimport { withStyles } from '@material-ui/core/styles/index';\nimport debug from 'debug';\nimport { bandKey } from '../../utils';\nimport DraggableHandle, { DragHandle } from '../../common/drag-handle';\n\nconst log = debug('pie-lib:chart:bars');\n\nexport class RawBar extends React.Component {\n static propTypes = {\n onChangeCategory: PropTypes.func,\n value: PropTypes.number,\n classes: PropTypes.object,\n label: PropTypes.string,\n xBand: PropTypes.func,\n index: PropTypes.number.isRequired,\n graphProps: types.GraphPropsType.isRequired,\n interactive: PropTypes.bool,\n correctness: PropTypes.shape({\n value: PropTypes.string,\n label: PropTypes.string\n })\n };\n\n constructor(props) {\n super(props);\n this.state = {\n dragValue: undefined\n };\n }\n\n setDragValue = dragValue => this.setState({ dragValue });\n\n dragStop = () => {\n const { label, onChangeCategory } = this.props;\n const { dragValue } = this.state;\n log('[dragStop]', dragValue);\n\n if (dragValue !== undefined) {\n onChangeCategory({ label, value: dragValue });\n }\n\n this.setDragValue(undefined);\n };\n\n dragValue = (existing, next) => {\n log('[dragValue] next:', next);\n\n this.setDragValue(next);\n };\n\n render() {\n const {\n graphProps,\n value,\n label,\n classes,\n xBand,\n index,\n interactive,\n correctness\n } = this.props;\n const { scale, range } = graphProps;\n const { dragValue } = this.state;\n\n const v = Number.isFinite(dragValue) ? dragValue : value;\n const barWidth = xBand.bandwidth();\n const barHeight = scale.y(range.max - v);\n const barX = xBand(bandKey({ label }, index));\n const rawY = range.max - v;\n const yy = range.max - rawY;\n log('label:', label, 'barX:', barX, 'v: ', v, 'barHeight:', barHeight, 'barWidth: ', barWidth);\n\n const Component = interactive ? DraggableHandle : DragHandle;\n\n return (\n <React.Fragment>\n <VxBar\n x={barX}\n y={scale.y(yy)}\n width={barWidth}\n height={barHeight}\n className={classes.bar}\n />\n <Component\n x={barX}\n y={v}\n interactive={interactive}\n width={barWidth}\n onDrag={v => this.dragValue(value, v)}\n onDragStop={this.dragStop}\n graphProps={graphProps}\n correctness={correctness}\n />\n </React.Fragment>\n );\n }\n}\n\nconst Bar = withStyles(() => ({\n bar: {\n fill: color.primaryLight()\n }\n}))(RawBar);\n\nexport class Bars extends React.Component {\n static propTypes = {\n data: PropTypes.array,\n onChangeCategory: PropTypes.func,\n xBand: PropTypes.func,\n graphProps: types.GraphPropsType.isRequired\n };\n\n render() {\n const { data, graphProps, xBand, onChangeCategory } = this.props;\n return (\n <Group>\n {(data || []).map((d, index) => (\n <Bar\n value={d.value}\n interactive={d.interactive}\n label={d.label}\n xBand={xBand}\n index={index}\n key={`bar-${d.label}-${d.value}-${index}`}\n onChangeCategory={category => onChangeCategory(index, category)}\n graphProps={graphProps}\n correctness={d.correctness}\n />\n ))}\n </Group>\n );\n }\n}\n\nexport default Bars;\n"],"file":"bars.js"}
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
2
 
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
@@ -17,37 +19,39 @@ var _bars = _interopRequireDefault(require("./common/bars"));
17
19
 
18
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
19
21
 
20
- function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
21
-
22
22
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
23
23
 
24
24
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
25
25
 
26
26
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
27
27
 
28
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
28
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
29
29
 
30
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
30
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
31
31
 
32
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
32
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
33
33
 
34
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
34
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
35
35
 
36
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
36
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
37
37
 
38
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
38
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
39
+
40
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
41
+
42
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
39
43
 
40
44
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
41
45
 
42
- var Histogram =
43
- /*#__PURE__*/
44
- function (_React$Component) {
46
+ var Histogram = /*#__PURE__*/function (_React$Component) {
45
47
  _inherits(Histogram, _React$Component);
46
48
 
49
+ var _super = _createSuper(Histogram);
50
+
47
51
  function Histogram() {
48
52
  _classCallCheck(this, Histogram);
49
53
 
50
- return _possibleConstructorReturn(this, _getPrototypeOf(Histogram).apply(this, arguments));
54
+ return _super.apply(this, arguments);
51
55
  }
52
56
 
53
57
  _createClass(Histogram, [{
@@ -64,7 +68,7 @@ function (_React$Component) {
64
68
  size = _ref$size === void 0 ? {} : _ref$size;
65
69
 
66
70
  var xBand = (0, _utils.dataToXBand)(scale.x, data, size.width, 'histogram');
67
- return _react["default"].createElement(_bars["default"], _extends({}, props, {
71
+ return /*#__PURE__*/_react["default"].createElement(_bars["default"], _extends({}, props, {
68
72
  xBand: xBand
69
73
  }));
70
74
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/bars/histogram.js"],"names":["Histogram","props","data","graphProps","scale","size","xBand","x","width","React","Component","PropTypes","array","onChange","func","types","GraphPropsType","isRequired","type","name"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;IAEaA,S;;;;;;;;;;;;;6BAOF;AACP,UAAMC,KAAK,GAAG,KAAKA,KAAnB;AADO,UAECC,IAFD,GAEsBD,KAFtB,CAECC,IAFD;AAAA,UAEOC,UAFP,GAEsBF,KAFtB,CAEOE,UAFP;;AAAA,iBAG2BA,UAAU,IAAI,EAHzC;AAAA,4BAGCC,KAHD;AAAA,UAGCA,KAHD,2BAGS,EAHT;AAAA,2BAGaC,IAHb;AAAA,UAGaA,IAHb,0BAGoB,EAHpB;;AAIP,UAAMC,KAAK,GAAG,wBAAYF,KAAK,CAACG,CAAlB,EAAqBL,IAArB,EAA2BG,IAAI,CAACG,KAAhC,EAAuC,WAAvC,CAAd;AAEA,aAAO,gCAAC,gBAAD,eAAUP,KAAV;AAAiB,QAAA,KAAK,EAAEK;AAAxB,SAAP;AACD;;;;EAd4BG,kBAAMC,S;;;;gBAAxBV,S,eACQ;AACjBE,EAAAA,IAAI,EAAES,sBAAUC,KADC;AAEjBC,EAAAA,QAAQ,EAAEF,sBAAUG,IAFH;AAGjBX,EAAAA,UAAU,EAAEY,YAAMC,cAAN,CAAqBC;AAHhB,C;;eAgBN;AAAA,SAAO;AACpBC,IAAAA,IAAI,EAAE,WADc;AAEpBR,IAAAA,SAAS,EAAEV,SAFS;AAGpBmB,IAAAA,IAAI,EAAE;AAHc,GAAP;AAAA,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { types } from '@pie-lib/plot';\nimport { dataToXBand } from '../utils';\nimport Bars from './common/bars';\n\nexport class Histogram extends React.Component {\n static propTypes = {\n data: PropTypes.array,\n onChange: PropTypes.func,\n graphProps: types.GraphPropsType.isRequired\n };\n\n render() {\n const props = this.props;\n const { data, graphProps } = props;\n const { scale = {}, size = {} } = graphProps || {};\n const xBand = dataToXBand(scale.x, data, size.width, 'histogram');\n\n return <Bars {...props} xBand={xBand} />;\n }\n}\n\nexport default () => ({\n type: 'histogram',\n Component: Histogram,\n name: 'Histogram'\n});\n"],"file":"histogram.js"}
1
+ {"version":3,"sources":["../../src/bars/histogram.js"],"names":["Histogram","props","data","graphProps","scale","size","xBand","x","width","React","Component","PropTypes","array","onChange","func","types","GraphPropsType","isRequired","type","name"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEaA,S;;;;;;;;;;;;;WAOX,kBAAS;AACP,UAAMC,KAAK,GAAG,KAAKA,KAAnB;AACA,UAAQC,IAAR,GAA6BD,KAA7B,CAAQC,IAAR;AAAA,UAAcC,UAAd,GAA6BF,KAA7B,CAAcE,UAAd;;AACA,iBAAkCA,UAAU,IAAI,EAAhD;AAAA,4BAAQC,KAAR;AAAA,UAAQA,KAAR,2BAAgB,EAAhB;AAAA,2BAAoBC,IAApB;AAAA,UAAoBA,IAApB,0BAA2B,EAA3B;;AACA,UAAMC,KAAK,GAAG,wBAAYF,KAAK,CAACG,CAAlB,EAAqBL,IAArB,EAA2BG,IAAI,CAACG,KAAhC,EAAuC,WAAvC,CAAd;AAEA,0BAAO,gCAAC,gBAAD,eAAUP,KAAV;AAAiB,QAAA,KAAK,EAAEK;AAAxB,SAAP;AACD;;;;EAd4BG,kBAAMC,S;;;;gBAAxBV,S,eACQ;AACjBE,EAAAA,IAAI,EAAES,sBAAUC,KADC;AAEjBC,EAAAA,QAAQ,EAAEF,sBAAUG,IAFH;AAGjBX,EAAAA,UAAU,EAAEY,YAAMC,cAAN,CAAqBC;AAHhB,C;;eAgBN;AAAA,SAAO;AACpBC,IAAAA,IAAI,EAAE,WADc;AAEpBR,IAAAA,SAAS,EAAEV,SAFS;AAGpBmB,IAAAA,IAAI,EAAE;AAHc,GAAP;AAAA,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { types } from '@pie-lib/plot';\nimport { dataToXBand } from '../utils';\nimport Bars from './common/bars';\n\nexport class Histogram extends React.Component {\n static propTypes = {\n data: PropTypes.array,\n onChange: PropTypes.func,\n graphProps: types.GraphPropsType.isRequired\n };\n\n render() {\n const props = this.props;\n const { data, graphProps } = props;\n const { scale = {}, size = {} } = graphProps || {};\n const xBand = dataToXBand(scale.x, data, size.width, 'histogram');\n\n return <Bars {...props} xBand={xBand} />;\n }\n}\n\nexport default () => ({\n type: 'histogram',\n Component: Histogram,\n name: 'Histogram'\n});\n"],"file":"histogram.js"}
package/lib/chart.js CHANGED
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
2
 
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
@@ -33,50 +35,54 @@ var _chartTypes = _interopRequireDefault(require("./chart-types"));
33
35
 
34
36
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
35
37
 
36
- function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
37
-
38
38
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
39
39
 
40
- function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
40
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
41
+
42
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
43
+
44
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
41
45
 
42
- function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
46
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
43
47
 
44
- function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
48
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
45
49
 
46
- function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }
50
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
47
51
 
48
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
52
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
49
53
 
50
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
54
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
51
55
 
52
56
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
53
57
 
54
58
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
55
59
 
56
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
60
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
57
61
 
58
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
62
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
59
63
 
60
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
64
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
65
+
66
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
67
+
68
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
61
69
 
62
70
  function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
63
71
 
64
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
72
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
65
73
 
66
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
74
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
67
75
 
68
76
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
69
77
 
70
78
  var log = (0, _debug["default"])('pie-lib:charts:chart');
71
79
 
72
- var Chart =
73
- /*#__PURE__*/
74
- function (_React$Component) {
80
+ var Chart = /*#__PURE__*/function (_React$Component) {
75
81
  _inherits(Chart, _React$Component);
76
82
 
77
- function Chart() {
78
- var _getPrototypeOf2;
83
+ var _super = _createSuper(Chart);
79
84
 
85
+ function Chart() {
80
86
  var _this;
81
87
 
82
88
  _classCallCheck(this, Chart);
@@ -85,7 +91,7 @@ function (_React$Component) {
85
91
  args[_key] = arguments[_key];
86
92
  }
87
93
 
88
- _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Chart)).call.apply(_getPrototypeOf2, [this].concat(args)));
94
+ _this = _super.call.apply(_super, [this].concat(args));
89
95
 
90
96
  _defineProperty(_assertThisInitialized(_this), "state", {
91
97
  charts: [_chartTypes["default"].Bar(), _chartTypes["default"].Histogram(), _chartTypes["default"].LineDot(), _chartTypes["default"].LineCross(), _chartTypes["default"].DotPlot(), _chartTypes["default"].LinePlot()]
@@ -126,7 +132,7 @@ function (_React$Component) {
126
132
  var _this$props = _this.props,
127
133
  data = _this$props.data,
128
134
  onDataChange = _this$props.onDataChange;
129
- data[integerIndex] = _objectSpread({}, data[integerIndex], {}, newCategory);
135
+ data[integerIndex] = _objectSpread(_objectSpread({}, data[integerIndex]), newCategory);
130
136
  onDataChange(data);
131
137
  }
132
138
  });
@@ -148,11 +154,12 @@ function (_React$Component) {
148
154
  _defineProperty(_assertThisInitialized(_this), "getFilteredCategories", function () {
149
155
  var _this$props3 = _this.props,
150
156
  data = _this$props3.data,
151
- editCategoryEnabled = _this$props3.editCategoryEnabled;
157
+ editCategoryEnabled = _this$props3.editCategoryEnabled,
158
+ addCategoryEnabled = _this$props3.addCategoryEnabled;
152
159
  return data ? data.map(function (d) {
153
- return _objectSpread({}, d, {
160
+ return _objectSpread(_objectSpread({}, d), {}, {
154
161
  editable: !d.initial || d.initial && editCategoryEnabled,
155
- deletable: !d.initial
162
+ deletable: !d.initial || d.initial && addCategoryEnabled
156
163
  });
157
164
  }) : [];
158
165
  });
@@ -172,7 +179,8 @@ function (_React$Component) {
172
179
  range = _this$props4.range,
173
180
  size = _this$props4.size,
174
181
  title = _this$props4.title,
175
- addCategoryEnabled = _this$props4.addCategoryEnabled;
182
+ addCategoryEnabled = _this$props4.addCategoryEnabled,
183
+ theme = _this$props4.theme;
176
184
  var chartType = this.props.chartType;
177
185
 
178
186
  var _ref = size || {},
@@ -183,7 +191,8 @@ function (_React$Component) {
183
191
  ChartComponent = _this$getChart.ChartComponent;
184
192
 
185
193
  var categories = this.getFilteredCategories();
186
- var correctValues = (0, _utils.getDomainAndRangeByChartType)(domain, range, chartType);
194
+ var labelFontSize = theme && theme.typography && theme.typography.fontSize || 14;
195
+ var correctValues = (0, _utils.getDomainAndRangeByChartType)(domain, range, size, chartType, labelFontSize);
187
196
 
188
197
  var _getGridLinesAndAxisB = (0, _utils.getGridLinesAndAxisByChartType)(correctValues.range, chartType),
189
198
  verticalLines = _getGridLinesAndAxisB.verticalLines,
@@ -217,41 +226,41 @@ function (_React$Component) {
217
226
  var top = (0, _utils.getTopPadding)(barWidth);
218
227
  var rootCommon = (0, _cloneDeep["default"])(common);
219
228
  rootCommon.graphProps.size.height += top;
220
- return _react["default"].createElement("div", {
229
+ return /*#__PURE__*/_react["default"].createElement("div", {
221
230
  className: (0, _classnames["default"])(classes["class"], className)
222
- }, _react["default"].createElement("div", {
231
+ }, /*#__PURE__*/_react["default"].createElement("div", {
223
232
  className: classes.controls
224
- }, _react["default"].createElement(_toolMenu["default"], {
233
+ }, /*#__PURE__*/_react["default"].createElement(_toolMenu["default"], {
225
234
  className: classes.toolMenu,
226
235
  disabled: !addCategoryEnabled,
227
236
  addCategory: function addCategory() {
228
237
  return _this2.addCategory(chartType, correctValues.range);
229
238
  }
230
- })), _react["default"].createElement(_plot.Root, _extends({
239
+ })), /*#__PURE__*/_react["default"].createElement(_plot.Root, _extends({
231
240
  title: title,
232
241
  classes: classes,
233
242
  rootRef: function rootRef(r) {
234
243
  return _this2.rootNode = r;
235
244
  }
236
- }, rootCommon), _react["default"].createElement(_grid["default"], _extends({}, common, {
245
+ }, rootCommon), /*#__PURE__*/_react["default"].createElement(_grid["default"], _extends({}, common, {
237
246
  xBand: xBand,
238
247
  rowTickValues: horizontalLines,
239
248
  columnTickValues: verticalLines
240
- })), _react["default"].createElement(_axes["default"], _extends({}, common, {
249
+ })), /*#__PURE__*/_react["default"].createElement(_axes["default"], _extends({}, common, {
241
250
  categories: categories,
242
251
  xBand: xBand,
243
252
  leftAxis: leftAxis,
244
253
  onChange: this.changeData,
245
254
  onChangeCategory: this.changeCategory,
246
255
  top: top
247
- })), _react["default"].createElement("mask", {
256
+ })), /*#__PURE__*/_react["default"].createElement("mask", {
248
257
  id: "myMask"
249
- }, _react["default"].createElement("rect", _extends({}, maskSize, {
258
+ }, /*#__PURE__*/_react["default"].createElement("rect", _extends({}, maskSize, {
250
259
  fill: "white"
251
- }))), _react["default"].createElement("g", {
260
+ }))), /*#__PURE__*/_react["default"].createElement("g", {
252
261
  id: "marks",
253
262
  mask: "url('#myMask')"
254
- }, _react["default"].createElement(ChartComponent, _extends({}, common, {
263
+ }, /*#__PURE__*/_react["default"].createElement(ChartComponent, _extends({}, common, {
255
264
  data: categories,
256
265
  onChange: this.changeData,
257
266
  onChangeCategory: this.changeCategory
@@ -295,7 +304,8 @@ _defineProperty(Chart, "propTypes", {
295
304
  onDataChange: _propTypes["default"].func,
296
305
  addCategoryEnabled: _propTypes["default"].bool,
297
306
  editCategoryEnabled: _propTypes["default"].bool,
298
- categoryDefaultLabel: _propTypes["default"].string
307
+ categoryDefaultLabel: _propTypes["default"].string,
308
+ theme: _propTypes["default"].object
299
309
  });
300
310
 
301
311
  _defineProperty(Chart, "defaultProps", {
@@ -321,13 +331,21 @@ var styles = function styles(theme) {
321
331
  borderLeft: "solid 1px ".concat(_renderUi.color.primaryDark()),
322
332
  borderRight: "solid 1px ".concat(_renderUi.color.primaryDark())
323
333
  },
334
+ root: {
335
+ overflow: 'hidden'
336
+ },
337
+ svg: {
338
+ overflow: 'visible'
339
+ },
324
340
  toolMenu: {
325
341
  minHeight: '36px'
326
342
  }
327
343
  };
328
344
  };
329
345
 
330
- var _default = (0, _styles.withStyles)(styles)(Chart);
346
+ var _default = (0, _styles.withStyles)(styles, {
347
+ withTheme: true
348
+ })(Chart);
331
349
 
332
350
  exports["default"] = _default;
333
351
  //# sourceMappingURL=chart.js.map
package/lib/chart.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/chart.jsx"],"names":["log","Chart","charts","chartTypes","Bar","Histogram","LineDot","LineCross","DotPlot","LinePlot","props","state","chartType","ChartComponent","chart","find","type","Component","data","onDataChange","index","newCategory","integerIndex","parseInt","range","categoryDefaultLabel","label","value","step","deletable","editable","interactive","editCategoryEnabled","map","d","initial","classes","className","domain","size","title","addCategoryEnabled","width","height","getChart","categories","getFilteredCategories","correctValues","verticalLines","horizontalLines","leftAxis","common","graphProps","rootNode","maskSize","x","y","scale","xBand","bandWidth","bandwidth","barWidth","max","length","top","rootCommon","controls","toolMenu","addCategory","r","changeData","changeCategory","React","PropTypes","object","isRequired","string","shape","number","min","axisLabel","arrayOf","labelStep","array","func","bool","styles","theme","graphBox","transform","display","justifyContent","padding","spacing","unit","backgroundColor","color","primaryLight","borderTop","primaryDark","borderBottom","borderLeft","borderRight","minHeight"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport { Root, createGraphProps } from '@pie-lib/plot';\nimport cloneDeep from 'lodash/cloneDeep';\nimport ChartGrid from './grid';\nimport ChartAxes from './axes';\nimport debug from 'debug';\nimport { color } from '@pie-lib/render-ui';\nimport {\n dataToXBand,\n getDomainAndRangeByChartType,\n getGridLinesAndAxisByChartType,\n getTopPadding\n} from './utils';\nimport ToolMenu from './tool-menu';\nimport chartTypes from './chart-types';\n\nconst log = debug('pie-lib:charts:chart');\n\nexport class Chart extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n chartType: PropTypes.string.isRequired,\n size: PropTypes.shape({\n width: PropTypes.number,\n height: PropTypes.number\n }),\n domain: PropTypes.shape({\n label: PropTypes.string,\n min: PropTypes.number,\n max: PropTypes.number,\n axisLabel: PropTypes.string\n }),\n data: PropTypes.arrayOf(PropTypes.shape({ label: PropTypes.string, value: PropTypes.number })),\n range: PropTypes.shape({\n label: PropTypes.string,\n min: PropTypes.number,\n max: PropTypes.number,\n step: PropTypes.number,\n labelStep: PropTypes.number,\n axisLabel: PropTypes.string\n }),\n charts: PropTypes.array,\n title: PropTypes.string,\n onDataChange: PropTypes.func,\n addCategoryEnabled: PropTypes.bool,\n editCategoryEnabled: PropTypes.bool,\n categoryDefaultLabel: PropTypes.string\n };\n\n static defaultProps = {\n size: {\n width: 480,\n height: 480\n }\n };\n\n state = {\n charts: [\n chartTypes.Bar(),\n chartTypes.Histogram(),\n chartTypes.LineDot(),\n chartTypes.LineCross(),\n chartTypes.DotPlot(),\n chartTypes.LinePlot()\n ]\n };\n\n getChart = () => {\n const charts = this.props.charts || this.state.charts;\n let { chartType } = this.props;\n let ChartComponent = null;\n let chart = null;\n\n if (chartType) {\n chart = charts && charts.find(chart => chart.type === chartType);\n ChartComponent = chart && chart.Component;\n } else {\n chart = charts && charts[0];\n ChartComponent = chart && chart.Component;\n chartType = chart && chart.type;\n }\n\n return {\n type: chartType,\n ChartComponent\n };\n };\n\n changeData = data => {\n const { onDataChange } = this.props;\n\n onDataChange(data);\n };\n\n changeCategory = (index, newCategory) => {\n const integerIndex = parseInt(index, 10);\n\n if (integerIndex >= 0) {\n const { data, onDataChange } = this.props;\n data[integerIndex] = {\n ...data[integerIndex],\n ...newCategory\n };\n\n onDataChange(data);\n }\n };\n\n addCategory = (chartType, range) => {\n const { onDataChange, data, categoryDefaultLabel } = this.props;\n\n onDataChange([\n ...data,\n {\n label: categoryDefaultLabel || 'New Bar',\n value: range.step,\n deletable: true,\n editable: true,\n interactive: true\n }\n ]);\n };\n\n getFilteredCategories = () => {\n const { data, editCategoryEnabled } = this.props;\n\n return data\n ? data.map(d => ({\n ...d,\n editable: !d.initial || (d.initial && editCategoryEnabled),\n deletable: !d.initial\n }))\n : [];\n };\n\n render() {\n const { classes, className, domain, range, size, title, addCategoryEnabled } = this.props;\n let { chartType } = this.props;\n const { width, height } = size || {};\n\n const { ChartComponent } = this.getChart();\n const categories = this.getFilteredCategories();\n const correctValues = getDomainAndRangeByChartType(domain, range, chartType);\n const { verticalLines, horizontalLines, leftAxis } = getGridLinesAndAxisByChartType(\n correctValues.range,\n chartType\n );\n const common = {\n graphProps: createGraphProps(\n correctValues.domain,\n correctValues.range,\n size,\n () => this.rootNode\n )\n };\n log('[render] common:', common);\n\n const maskSize = { x: -10, y: -10, width: width + 20, height: height + 20 };\n const { scale } = common.graphProps;\n const xBand = dataToXBand(scale.x, categories, width, chartType);\n\n if (!ChartComponent) {\n return null;\n }\n\n const bandWidth = xBand.bandwidth();\n // for chartType \"line\", bandWidth will be 0, so we have to calculate it\n const barWidth = bandWidth || scale.x(correctValues.domain.max) / categories.length;\n\n // if there are many categories, we have to rotate their names in order to fit\n // and we have to add extra value on top of some items\n const top = getTopPadding(barWidth);\n const rootCommon = cloneDeep(common);\n rootCommon.graphProps.size.height += top;\n\n return (\n <div className={classNames(classes.class, className)}>\n <div className={classes.controls}>\n <ToolMenu\n className={classes.toolMenu}\n disabled={!addCategoryEnabled}\n addCategory={() => this.addCategory(chartType, correctValues.range)}\n />\n </div>\n <Root title={title} classes={classes} rootRef={r => (this.rootNode = r)} {...rootCommon}>\n <ChartGrid\n {...common}\n xBand={xBand}\n rowTickValues={horizontalLines}\n columnTickValues={verticalLines}\n />\n <ChartAxes\n {...common}\n categories={categories}\n xBand={xBand}\n leftAxis={leftAxis}\n onChange={this.changeData}\n onChangeCategory={this.changeCategory}\n top={top}\n />\n <mask id=\"myMask\">\n <rect {...maskSize} fill=\"white\" />\n </mask>\n <g id=\"marks\" mask=\"url('#myMask')\">\n <ChartComponent\n {...common}\n data={categories}\n onChange={this.changeData}\n onChangeCategory={this.changeCategory}\n />\n </g>\n </Root>\n </div>\n );\n }\n}\n\nconst styles = theme => ({\n graphBox: {\n transform: 'translate(60px, 35px)'\n },\n controls: {\n width: 'inherit',\n display: 'flex',\n justifyContent: 'space-between',\n padding: theme.spacing.unit,\n backgroundColor: color.primaryLight(),\n borderTop: `solid 1px ${color.primaryDark()}`,\n borderBottom: `solid 0px ${color.primaryDark()}`,\n borderLeft: `solid 1px ${color.primaryDark()}`,\n borderRight: `solid 1px ${color.primaryDark()}`\n },\n toolMenu: {\n minHeight: '36px'\n }\n});\n\nexport default withStyles(styles)(Chart);\n"],"file":"chart.js"}
1
+ {"version":3,"sources":["../src/chart.jsx"],"names":["log","Chart","charts","chartTypes","Bar","Histogram","LineDot","LineCross","DotPlot","LinePlot","props","state","chartType","ChartComponent","chart","find","type","Component","data","onDataChange","index","newCategory","integerIndex","parseInt","range","categoryDefaultLabel","label","value","step","deletable","editable","interactive","editCategoryEnabled","addCategoryEnabled","map","d","initial","classes","className","domain","size","title","theme","width","height","getChart","categories","getFilteredCategories","labelFontSize","typography","fontSize","correctValues","verticalLines","horizontalLines","leftAxis","common","graphProps","rootNode","maskSize","x","y","scale","xBand","bandWidth","bandwidth","barWidth","max","length","top","rootCommon","controls","toolMenu","addCategory","r","changeData","changeCategory","React","PropTypes","object","isRequired","string","shape","number","min","axisLabel","arrayOf","labelStep","array","func","bool","styles","graphBox","transform","display","justifyContent","padding","spacing","unit","backgroundColor","color","primaryLight","borderTop","primaryDark","borderBottom","borderLeft","borderRight","root","overflow","svg","minHeight","withTheme"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport { Root, createGraphProps } from '@pie-lib/plot';\nimport cloneDeep from 'lodash/cloneDeep';\nimport ChartGrid from './grid';\nimport ChartAxes from './axes';\nimport debug from 'debug';\nimport { color } from '@pie-lib/render-ui';\nimport {\n dataToXBand,\n getDomainAndRangeByChartType,\n getGridLinesAndAxisByChartType,\n getTopPadding\n} from './utils';\nimport ToolMenu from './tool-menu';\nimport chartTypes from './chart-types';\n\nconst log = debug('pie-lib:charts:chart');\n\nexport class Chart extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n chartType: PropTypes.string.isRequired,\n size: PropTypes.shape({\n width: PropTypes.number,\n height: PropTypes.number\n }),\n domain: PropTypes.shape({\n label: PropTypes.string,\n min: PropTypes.number,\n max: PropTypes.number,\n axisLabel: PropTypes.string\n }),\n data: PropTypes.arrayOf(PropTypes.shape({ label: PropTypes.string, value: PropTypes.number })),\n range: PropTypes.shape({\n label: PropTypes.string,\n min: PropTypes.number,\n max: PropTypes.number,\n step: PropTypes.number,\n labelStep: PropTypes.number,\n axisLabel: PropTypes.string\n }),\n charts: PropTypes.array,\n title: PropTypes.string,\n onDataChange: PropTypes.func,\n addCategoryEnabled: PropTypes.bool,\n editCategoryEnabled: PropTypes.bool,\n categoryDefaultLabel: PropTypes.string,\n theme: PropTypes.object\n };\n\n static defaultProps = {\n size: {\n width: 480,\n height: 480\n }\n };\n\n state = {\n charts: [\n chartTypes.Bar(),\n chartTypes.Histogram(),\n chartTypes.LineDot(),\n chartTypes.LineCross(),\n chartTypes.DotPlot(),\n chartTypes.LinePlot()\n ]\n };\n\n getChart = () => {\n const charts = this.props.charts || this.state.charts;\n let { chartType } = this.props;\n let ChartComponent = null;\n let chart = null;\n\n if (chartType) {\n chart = charts && charts.find(chart => chart.type === chartType);\n ChartComponent = chart && chart.Component;\n } else {\n chart = charts && charts[0];\n ChartComponent = chart && chart.Component;\n chartType = chart && chart.type;\n }\n\n return {\n type: chartType,\n ChartComponent\n };\n };\n\n changeData = data => {\n const { onDataChange } = this.props;\n\n onDataChange(data);\n };\n\n changeCategory = (index, newCategory) => {\n const integerIndex = parseInt(index, 10);\n\n if (integerIndex >= 0) {\n const { data, onDataChange } = this.props;\n data[integerIndex] = {\n ...data[integerIndex],\n ...newCategory\n };\n\n onDataChange(data);\n }\n };\n\n addCategory = (chartType, range) => {\n const { onDataChange, data, categoryDefaultLabel } = this.props;\n\n onDataChange([\n ...data,\n {\n label: categoryDefaultLabel || 'New Bar',\n value: range.step,\n deletable: true,\n editable: true,\n interactive: true\n }\n ]);\n };\n\n getFilteredCategories = () => {\n const { data, editCategoryEnabled, addCategoryEnabled } = this.props;\n\n return data\n ? data.map(d => ({\n ...d,\n editable: !d.initial || (d.initial && editCategoryEnabled),\n deletable: !d.initial || (d.initial && addCategoryEnabled)\n }))\n : [];\n };\n\n render() {\n const {\n classes,\n className,\n domain,\n range,\n size,\n title,\n addCategoryEnabled,\n theme\n } = this.props;\n let { chartType } = this.props;\n const { width, height } = size || {};\n\n const { ChartComponent } = this.getChart();\n const categories = this.getFilteredCategories();\n\n const labelFontSize = (theme && theme.typography && theme.typography.fontSize) || 14;\n const correctValues = getDomainAndRangeByChartType(\n domain,\n range,\n size,\n chartType,\n labelFontSize\n );\n\n const { verticalLines, horizontalLines, leftAxis } = getGridLinesAndAxisByChartType(\n correctValues.range,\n chartType\n );\n const common = {\n graphProps: createGraphProps(\n correctValues.domain,\n correctValues.range,\n size,\n () => this.rootNode\n )\n };\n log('[render] common:', common);\n\n const maskSize = { x: -10, y: -10, width: width + 20, height: height + 20 };\n const { scale } = common.graphProps;\n const xBand = dataToXBand(scale.x, categories, width, chartType);\n\n if (!ChartComponent) {\n return null;\n }\n\n const bandWidth = xBand.bandwidth();\n // for chartType \"line\", bandWidth will be 0, so we have to calculate it\n const barWidth = bandWidth || scale.x(correctValues.domain.max) / categories.length;\n\n // if there are many categories, we have to rotate their names in order to fit\n // and we have to add extra value on top of some items\n const top = getTopPadding(barWidth);\n const rootCommon = cloneDeep(common);\n rootCommon.graphProps.size.height += top;\n\n return (\n <div className={classNames(classes.class, className)}>\n <div className={classes.controls}>\n <ToolMenu\n className={classes.toolMenu}\n disabled={!addCategoryEnabled}\n addCategory={() => this.addCategory(chartType, correctValues.range)}\n />\n </div>\n <Root title={title} classes={classes} rootRef={r => (this.rootNode = r)} {...rootCommon}>\n <ChartGrid\n {...common}\n xBand={xBand}\n rowTickValues={horizontalLines}\n columnTickValues={verticalLines}\n />\n <ChartAxes\n {...common}\n categories={categories}\n xBand={xBand}\n leftAxis={leftAxis}\n onChange={this.changeData}\n onChangeCategory={this.changeCategory}\n top={top}\n />\n <mask id=\"myMask\">\n <rect {...maskSize} fill=\"white\" />\n </mask>\n <g id=\"marks\" mask=\"url('#myMask')\">\n <ChartComponent\n {...common}\n data={categories}\n onChange={this.changeData}\n onChangeCategory={this.changeCategory}\n />\n </g>\n </Root>\n </div>\n );\n }\n}\n\nconst styles = theme => ({\n graphBox: {\n transform: 'translate(60px, 35px)'\n },\n controls: {\n width: 'inherit',\n display: 'flex',\n justifyContent: 'space-between',\n padding: theme.spacing.unit,\n backgroundColor: color.primaryLight(),\n borderTop: `solid 1px ${color.primaryDark()}`,\n borderBottom: `solid 0px ${color.primaryDark()}`,\n borderLeft: `solid 1px ${color.primaryDark()}`,\n borderRight: `solid 1px ${color.primaryDark()}`\n },\n root: {\n overflow: 'hidden'\n },\n svg: {\n overflow: 'visible'\n },\n toolMenu: {\n minHeight: '36px'\n }\n});\n\nexport default withStyles(styles, { withTheme: true })(Chart);\n"],"file":"chart.js"}