@semcore/d3-chart 1.5.1 → 1.5.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 (64) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/lib/cjs/Area.js +11 -9
  3. package/lib/cjs/Area.js.map +1 -1
  4. package/lib/cjs/Axis.js +12 -12
  5. package/lib/cjs/Bar.js +17 -13
  6. package/lib/cjs/Bar.js.map +1 -1
  7. package/lib/cjs/Donut.js +3 -3
  8. package/lib/cjs/Dots.js +10 -8
  9. package/lib/cjs/Dots.js.map +1 -1
  10. package/lib/cjs/GroupBar.js +7 -7
  11. package/lib/cjs/GroupBar.js.map +1 -1
  12. package/lib/cjs/HorizontalBar.js +17 -13
  13. package/lib/cjs/HorizontalBar.js.map +1 -1
  14. package/lib/cjs/Hover.js +9 -7
  15. package/lib/cjs/Hover.js.map +1 -1
  16. package/lib/cjs/Line.js +10 -8
  17. package/lib/cjs/Line.js.map +1 -1
  18. package/lib/cjs/Plot.js +4 -6
  19. package/lib/cjs/Plot.js.map +1 -1
  20. package/lib/cjs/StackBar.js +38 -14
  21. package/lib/cjs/StackBar.js.map +1 -1
  22. package/lib/cjs/StackedArea.js +10 -9
  23. package/lib/cjs/StackedArea.js.map +1 -1
  24. package/lib/cjs/Tooltip.js +5 -5
  25. package/lib/cjs/Venn.js +3 -3
  26. package/lib/es6/Area.js +11 -9
  27. package/lib/es6/Area.js.map +1 -1
  28. package/lib/es6/Axis.js +12 -12
  29. package/lib/es6/Bar.js +17 -13
  30. package/lib/es6/Bar.js.map +1 -1
  31. package/lib/es6/Donut.js +3 -3
  32. package/lib/es6/Dots.js +9 -8
  33. package/lib/es6/Dots.js.map +1 -1
  34. package/lib/es6/GroupBar.js +7 -7
  35. package/lib/es6/GroupBar.js.map +1 -1
  36. package/lib/es6/HorizontalBar.js +17 -13
  37. package/lib/es6/HorizontalBar.js.map +1 -1
  38. package/lib/es6/Hover.js +8 -7
  39. package/lib/es6/Hover.js.map +1 -1
  40. package/lib/es6/Line.js +10 -8
  41. package/lib/es6/Line.js.map +1 -1
  42. package/lib/es6/Plot.js +4 -5
  43. package/lib/es6/Plot.js.map +1 -1
  44. package/lib/es6/StackBar.js +38 -14
  45. package/lib/es6/StackBar.js.map +1 -1
  46. package/lib/es6/StackedArea.js +10 -9
  47. package/lib/es6/StackedArea.js.map +1 -1
  48. package/lib/es6/Tooltip.js +5 -5
  49. package/lib/es6/Venn.js +3 -3
  50. package/lib/types/Bar.d.ts +1 -1
  51. package/lib/types/HorizontalBar.d.ts +1 -1
  52. package/package.json +1 -1
  53. package/src/Area.js +2 -2
  54. package/src/Bar.js +13 -9
  55. package/src/Dots.js +9 -5
  56. package/src/GroupBar.js +6 -2
  57. package/src/HorizontalBar.js +14 -9
  58. package/src/Hover.js +5 -4
  59. package/src/Line.js +2 -2
  60. package/src/Plot.js +4 -5
  61. package/src/StackBar.js +24 -7
  62. package/src/StackedArea.js +3 -2
  63. package/src/types/Bar.d.ts +1 -1
  64. package/src/types/HorizontalBar.d.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Plot.js"],"names":["React","createComponent","Component","Root","sstyled","Box","EventEmitter","eventToPoint","trottle","PlotRoot","props","createRef","e","scale","asProps","eventEmitter","emit","xScale","yScale","rootRef","current","pX","pY","range","minX","maxX","maxY","minY","data","width","height","$rootProps","size","SPlot","styles","handlerMouseMove","handlerMouseLeave"],"mappings":"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","sourcesContent":["import React from 'react';\nimport createComponent, { Component, Root, sstyled } from '@semcore/core';\nimport { Box } from '@semcore/flex-box';\nimport EventEmitter from '@semcore/utils/lib/eventEmitter';\nimport { eventToPoint } from './utils';\nimport trottle from '@semcore/utils/lib/rafTrottle';\n\nclass PlotRoot extends Component {\n static displayName = 'Plot';\n\n constructor(props) {\n super(props);\n this.eventEmitter = props.eventEmitter || new EventEmitter();\n }\n\n static defaultProps = () => ({\n width: 0,\n height: 0,\n });\n\n rootRef = React.createRef();\n\n handlerMouseMove = trottle((e) => {\n const { scale } = this.asProps;\n this.eventEmitter.emit(`onMouseMoveRoot`, e);\n\n if (scale) {\n const [xScale, yScale] = scale;\n const [pX, pY] = eventToPoint(e, this.rootRef.current);\n const [minX, maxX] = xScale.range();\n const [maxY, minY] = yScale.range();\n\n if (pX >= minX && pX <= maxX && (pY >= minY && pY <= maxY)) {\n this.eventEmitter.emit('onMouseMoveChart', e);\n } else {\n this.eventEmitter.emit('onMouseLeaveChart', e);\n }\n }\n });\n\n handlerMouseLeave = trottle((e) => {\n this.eventEmitter.emit(`onMouseLeaveRoot`, e);\n this.eventEmitter.emit('onMouseLeaveChart', e);\n });\n\n setContext() {\n const { scale, data, width, height } = this.asProps;\n return {\n $rootProps: {\n size: [width, height],\n data: data,\n scale: scale,\n eventEmitter: this.eventEmitter,\n rootRef: this.rootRef,\n },\n };\n }\n\n render() {\n const SPlot = Root;\n const { styles, width, height } = this.asProps;\n\n if (!width || !height) return null;\n\n return sstyled(styles)(\n <SPlot\n render={Box}\n tag=\"svg\"\n __excludeProps={['data', 'scale']}\n ref={this.rootRef}\n onMouseMove={this.handlerMouseMove}\n onMouseLeave={this.handlerMouseLeave}\n />,\n );\n }\n}\n\nexport default createComponent(PlotRoot);\n"],"file":"Plot.js"}
1
+ {"version":3,"sources":["../../src/Plot.js"],"names":["React","createComponent","Component","Root","sstyled","Box","EventEmitter","eventToPoint","PlotRoot","props","createRef","e","scale","asProps","eventEmitter","emit","xScale","yScale","rootRef","current","pX","pY","range","minX","maxX","maxY","minY","data","width","height","$rootProps","size","SPlot","styles","handlerMouseMove","handlerMouseLeave"],"mappings":"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","sourcesContent":["import React from 'react';\nimport createComponent, { Component, Root, sstyled } from '@semcore/core';\nimport { Box } from '@semcore/flex-box';\nimport EventEmitter from '@semcore/utils/lib/eventEmitter';\nimport { eventToPoint } from './utils';\n\nclass PlotRoot extends Component {\n static displayName = 'Plot';\n\n constructor(props) {\n super(props);\n this.eventEmitter = props.eventEmitter || new EventEmitter();\n }\n\n static defaultProps = () => ({\n width: 0,\n height: 0,\n });\n\n rootRef = React.createRef();\n\n handlerMouseMove = (e) => {\n const { scale } = this.asProps;\n this.eventEmitter.emit(`onMouseMoveRoot`, e);\n\n if (scale) {\n const [xScale, yScale] = scale;\n const [pX, pY] = eventToPoint(e, this.rootRef.current);\n const [minX, maxX] = xScale.range();\n const [maxY, minY] = yScale.range();\n\n if (pX >= minX && pX <= maxX && (pY >= minY && pY <= maxY)) {\n this.eventEmitter.emit('onMouseMoveChart', e);\n } else {\n this.eventEmitter.emit('onMouseLeaveChart', e);\n }\n }\n };\n\n handlerMouseLeave = (e) => {\n this.eventEmitter.emit(`onMouseLeaveRoot`, e);\n this.eventEmitter.emit('onMouseLeaveChart', e);\n };\n\n setContext() {\n const { scale, data, width, height } = this.asProps;\n return {\n $rootProps: {\n size: [width, height],\n data: data,\n scale: scale,\n eventEmitter: this.eventEmitter,\n rootRef: this.rootRef,\n },\n };\n }\n\n render() {\n const SPlot = Root;\n const { styles, width, height } = this.asProps;\n\n if (!width || !height) return null;\n\n return sstyled(styles)(\n <SPlot\n render={Box}\n tag=\"svg\"\n __excludeProps={['data', 'scale']}\n ref={this.rootRef}\n onMouseMove={this.handlerMouseMove}\n onMouseLeave={this.handlerMouseLeave}\n />,\n );\n }\n}\n\nexport default createComponent(PlotRoot);\n"],"file":"Plot.js"}
@@ -27,14 +27,14 @@ var _ref = (
27
27
  /*__reshadow_css_start__*/
28
28
  __css__(
29
29
  /*__inner_css_start__*/
30
- ".___SBar_cvfrl_gg_{fill:var(--color);transition-property:height,width,y;transition-duration:var(--duration);transition-timing-function:ease-in-out}.___SBar_cvfrl_gg_.__hide_cvfrl_gg_{display:none}.___SBackground_cvfrl_gg_{fill:#e4ecf1}"
30
+ ".___SBar_1v8ah_gg_{fill:var(--color);transition-property:height,width,y;transition-duration:var(--duration);transition-timing-function:ease-in-out}.___SBar_1v8ah_gg_.__hide_1v8ah_gg_{display:none}.___SBackground_1v8ah_gg_{fill:#e4ecf1}"
31
31
  /*__inner_css_end__*/
32
- , "1gayd85_gg_")
32
+ , "ikr3qt_gg_")
33
33
  /*__reshadow_css_end__*/
34
34
  , {
35
- "__SBar": "___SBar_cvfrl_gg_",
36
- "_hide": "__hide_cvfrl_gg_",
37
- "__SBackground": "___SBackground_cvfrl_gg_"
35
+ "__SBar": "___SBar_1v8ah_gg_",
36
+ "_hide": "__hide_1v8ah_gg_",
37
+ "__SBackground": "___SBackground_1v8ah_gg_"
38
38
  }),
39
39
  style = _extends({}, _ref);
40
40
 
@@ -62,11 +62,11 @@ var StackBarRoot = /*#__PURE__*/function (_Component) {
62
62
 
63
63
  if (stack[DEFAULT_INSTANCE]) {
64
64
  var keys = React.Children.toArray(getOriginChildren(Children)).reduce(function (acc, child) {
65
- if ( /*#__PURE__*/React.isValidElement(child) && child.type === StackBar.Bar) {
65
+ if ( /*#__PURE__*/React.isValidElement(child) && child.type === StackBar.Bar && !child.props.hide) {
66
66
  acc.push(child.props.y);
67
67
  }
68
68
 
69
- if ( /*#__PURE__*/React.isValidElement(child) && child.type === StackBar.HorizontalBar) {
69
+ if ( /*#__PURE__*/React.isValidElement(child) && child.type === StackBar.HorizontalBar && !child.props.hide) {
70
70
  acc.push(child.props.x);
71
71
  }
72
72
 
@@ -80,10 +80,21 @@ var StackBarRoot = /*#__PURE__*/function (_Component) {
80
80
  }, {
81
81
  key: "getBarProps",
82
82
  value: function getBarProps(_ref2) {
83
+ var _this = this;
84
+
83
85
  var y = _ref2.y;
84
- var x = this.asProps.x;
85
- var series = this.series.find(function (s) {
86
+ var _this$asProps2 = this.asProps,
87
+ x = _this$asProps2.x,
88
+ r = _this$asProps2.r;
89
+ var seriesIndex = this.series.findIndex(function (s) {
86
90
  return s.key === y;
91
+ }); // or [] if hide bar
92
+
93
+ var series = this.series[seriesIndex] || [];
94
+ var rBar = series.map(function (s, i) {
95
+ return _this.series.slice(seriesIndex + 1).some(function (bar) {
96
+ return bar[i][0] !== bar[i][1];
97
+ }) ? 0 : r;
87
98
  });
88
99
  return {
89
100
  data: series.map(function (s) {
@@ -92,17 +103,28 @@ var StackBarRoot = /*#__PURE__*/function (_Component) {
92
103
  return _objectSpread(_objectSpread({}, s.data), {}, (_objectSpread2 = {}, _defineProperty(_objectSpread2, y, s[1]), _defineProperty(_objectSpread2, XY0, s[0]), _objectSpread2));
93
104
  }),
94
105
  y0: XY0,
95
- x: x
106
+ x: x,
107
+ r: rBar
96
108
  };
97
109
  }
98
110
  }, {
99
111
  key: "getHorizontalBarProps",
100
112
  value: function getHorizontalBarProps(_ref3) {
113
+ var _this2 = this;
114
+
101
115
  var x = _ref3.x;
102
- var y = this.asProps.y;
103
- var series = this.series.find(function (s) {
116
+ var _this$asProps3 = this.asProps,
117
+ y = _this$asProps3.y,
118
+ r = _this$asProps3.r;
119
+ var seriesIndex = this.series.findIndex(function (s) {
104
120
  return s.key === x;
105
121
  });
122
+ var series = this.series[seriesIndex];
123
+ var rBar = series.map(function (s, i) {
124
+ return _this2.series.slice(seriesIndex + 1).some(function (bar) {
125
+ return bar[i][0] !== bar[i][1];
126
+ }) ? 0 : r;
127
+ });
106
128
  return {
107
129
  data: series.map(function (s) {
108
130
  var _objectSpread3;
@@ -110,7 +132,8 @@ var StackBarRoot = /*#__PURE__*/function (_Component) {
110
132
  return _objectSpread(_objectSpread({}, s.data), {}, (_objectSpread3 = {}, _defineProperty(_objectSpread3, x, s[1]), _defineProperty(_objectSpread3, XY0, s[0]), _objectSpread3));
111
133
  }),
112
134
  x0: XY0,
113
- y: y
135
+ y: y,
136
+ r: rBar
114
137
  };
115
138
  }
116
139
  }, {
@@ -136,7 +159,8 @@ _defineProperty(StackBarRoot, "defaultProps", function () {
136
159
  var stack = d3Stack();
137
160
  stack[DEFAULT_INSTANCE] = true;
138
161
  return {
139
- stack: stack
162
+ stack: stack,
163
+ r: 2
140
164
  };
141
165
  });
142
166
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/StackBar.js"],"names":["React","stack","d3Stack","Component","getOriginChildren","createElement","Bar","HorizontalBar","DEFAULT_INSTANCE","Symbol","XY0","StackBarRoot","asProps","Children","data","keys","toArray","reduce","acc","child","isValidElement","type","StackBar","push","props","y","x","series","find","s","key","map","y0","x0","Element","getSeries","style"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { stack as d3Stack } from 'd3-shape';\nimport { Component } from '@semcore/core';\nimport getOriginChildren from '@semcore/utils/lib/getOriginChildren';\nimport createElement from './createElement';\nimport Bar from './Bar';\nimport HorizontalBar from './HorizontalBar';\n\nimport style from './style/bar.shadow.css';\n\nconst DEFAULT_INSTANCE = Symbol('DEFAULT_INSTANCE');\nconst XY0 = Symbol('XY0');\n\nclass StackBarRoot extends Component {\n static displayName = 'StackBar';\n\n static style = style;\n\n static defaultProps = () => {\n const stack = d3Stack();\n stack[DEFAULT_INSTANCE] = true;\n return { stack };\n };\n\n getSeries() {\n const { Children, data, stack } = this.asProps;\n\n if (stack[DEFAULT_INSTANCE]) {\n const keys = React.Children.toArray(getOriginChildren(Children)).reduce((acc, child) => {\n if (React.isValidElement(child) && child.type === StackBar.Bar) {\n acc.push(child.props.y);\n }\n if (React.isValidElement(child) && child.type === StackBar.HorizontalBar) {\n acc.push(child.props.x);\n }\n return acc;\n }, []);\n stack.keys(keys);\n }\n\n return stack(data);\n }\n\n getBarProps({ y }) {\n const { x } = this.asProps;\n\n const series = this.series.find((s) => s.key === y);\n\n return {\n data: series.map((s) => ({\n ...s.data,\n [y]: s[1],\n [XY0]: s[0],\n })),\n y0: XY0,\n x,\n };\n }\n\n getHorizontalBarProps({ x }) {\n const { y } = this.asProps;\n\n const series = this.series.find((s) => s.key === x);\n\n return {\n data: series.map((s) => ({\n ...s.data,\n [x]: s[1],\n [XY0]: s[0],\n })),\n x0: XY0,\n y,\n };\n }\n\n render() {\n const Element = this.Element;\n this.series = this.getSeries();\n return <Element render=\"g\" series={this.series} />;\n }\n}\n\nconst StackBar = createElement(StackBarRoot, {\n Bar,\n HorizontalBar,\n});\n\nexport default StackBar;\n"],"file":"StackBar.js"}
1
+ {"version":3,"sources":["../../src/StackBar.js"],"names":["React","stack","d3Stack","Component","getOriginChildren","createElement","Bar","HorizontalBar","DEFAULT_INSTANCE","Symbol","XY0","StackBarRoot","asProps","Children","data","keys","toArray","reduce","acc","child","isValidElement","type","StackBar","props","hide","push","y","x","r","seriesIndex","series","findIndex","s","key","rBar","map","i","slice","some","bar","y0","x0","Element","getSeries","style"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { stack as d3Stack } from 'd3-shape';\nimport { Component } from '@semcore/core';\nimport getOriginChildren from '@semcore/utils/lib/getOriginChildren';\nimport createElement from './createElement';\nimport Bar from './Bar';\nimport HorizontalBar from './HorizontalBar';\n\nimport style from './style/bar.shadow.css';\n\nconst DEFAULT_INSTANCE = Symbol('DEFAULT_INSTANCE');\nconst XY0 = Symbol('XY0');\n\nclass StackBarRoot extends Component {\n static displayName = 'StackBar';\n\n static style = style;\n\n static defaultProps = () => {\n const stack = d3Stack();\n stack[DEFAULT_INSTANCE] = true;\n return { stack, r: 2 };\n };\n\n getSeries() {\n const { Children, data, stack } = this.asProps;\n\n if (stack[DEFAULT_INSTANCE]) {\n const keys = React.Children.toArray(getOriginChildren(Children)).reduce((acc, child) => {\n if (React.isValidElement(child) && child.type === StackBar.Bar && !child.props.hide) {\n acc.push(child.props.y);\n }\n if (\n React.isValidElement(child) &&\n child.type === StackBar.HorizontalBar &&\n !child.props.hide\n ) {\n acc.push(child.props.x);\n }\n return acc;\n }, []);\n stack.keys(keys);\n }\n\n return stack(data);\n }\n\n getBarProps({ y }) {\n const { x, r } = this.asProps;\n\n const seriesIndex = this.series.findIndex((s) => s.key === y);\n // or [] if hide bar\n const series = this.series[seriesIndex] || [];\n\n const rBar = series.map((s, i) =>\n this.series.slice(seriesIndex + 1).some((bar) => bar[i][0] !== bar[i][1]) ? 0 : r,\n );\n\n return {\n data: series.map((s) => ({\n ...s.data,\n [y]: s[1],\n [XY0]: s[0],\n })),\n y0: XY0,\n x,\n r: rBar,\n };\n }\n\n getHorizontalBarProps({ x }) {\n const { y, r } = this.asProps;\n\n const seriesIndex = this.series.findIndex((s) => s.key === x);\n const series = this.series[seriesIndex];\n\n const rBar = series.map((s, i) =>\n this.series.slice(seriesIndex + 1).some((bar) => bar[i][0] !== bar[i][1]) ? 0 : r,\n );\n\n return {\n data: series.map((s) => ({\n ...s.data,\n [x]: s[1],\n [XY0]: s[0],\n })),\n x0: XY0,\n y,\n r: rBar,\n };\n }\n\n render() {\n const Element = this.Element;\n this.series = this.getSeries();\n return <Element render=\"g\" series={this.series} />;\n }\n}\n\nconst StackBar = createElement(StackBarRoot, {\n Bar,\n HorizontalBar,\n});\n\nexport default StackBar;\n"],"file":"StackBar.js"}
@@ -26,15 +26,15 @@ var _ref = (
26
26
  /*__reshadow_css_start__*/
27
27
  __css__(
28
28
  /*__inner_css_start__*/
29
- ".___SArea_1ew6d_gg_{fill:var(--color);fill-opacity:.4}.___SAreaLine_1ew6d_gg_{stroke:var(--color);stroke-width:3;fill:transparent}.___SArea_1ew6d_gg_,.___SAreaLine_1ew6d_gg_{transition-property:d;transition-duration:var(--duration);transition-timing-function:ease-in-out}.___SNull_1ew6d_gg_{fill:transparent;stroke:#bdc4c6;stroke-dasharray:4}.___SNull_1ew6d_gg_.__hide_1ew6d_gg_{display:none}"
29
+ ".___SArea_iztho_gg_{fill:var(--color);fill-opacity:.4}.___SAreaLine_iztho_gg_{stroke:var(--color);stroke-width:3;fill:transparent}.___SArea_iztho_gg_,.___SAreaLine_iztho_gg_{transition-property:d;transition-duration:var(--duration);transition-timing-function:ease-in-out}.___SNull_iztho_gg_{fill:transparent;stroke:#bdc4c6;stroke-dasharray:4}.___SNull_iztho_gg_.__hide_iztho_gg_{display:none}"
30
30
  /*__inner_css_end__*/
31
- , "qdy0ju_gg_")
31
+ , "w67b23_gg_")
32
32
  /*__reshadow_css_end__*/
33
33
  , {
34
- "__SArea": "___SArea_1ew6d_gg_",
35
- "__SAreaLine": "___SAreaLine_1ew6d_gg_",
36
- "__SNull": "___SNull_1ew6d_gg_",
37
- "_hide": "__hide_1ew6d_gg_"
34
+ "__SArea": "___SArea_iztho_gg_",
35
+ "__SAreaLine": "___SAreaLine_iztho_gg_",
36
+ "__SNull": "___SNull_iztho_gg_",
37
+ "_hide": "__hide_iztho_gg_"
38
38
  }),
39
39
  style = _extends({}, _ref);
40
40
 
@@ -62,7 +62,7 @@ var StackedAreaRoot = /*#__PURE__*/function (_Component) {
62
62
 
63
63
  if (stack[DEFAULT_INSTANCE]) {
64
64
  var keys = React.Children.toArray(getOriginChildren(Children)).reduce(function (acc, child) {
65
- if ( /*#__PURE__*/React.isValidElement(child) && child.type === StackedArea.Area) {
65
+ if ( /*#__PURE__*/React.isValidElement(child) && child.type === StackedArea.Area && !child.props.hide) {
66
66
  acc.push(child.props.y);
67
67
  }
68
68
 
@@ -77,10 +77,11 @@ var StackedAreaRoot = /*#__PURE__*/function (_Component) {
77
77
  key: "getAreaProps",
78
78
  value: function getAreaProps(_ref2) {
79
79
  var y = _ref2.y;
80
- var x = this.asProps.x;
80
+ var x = this.asProps.x; // or [] if hide area
81
+
81
82
  var series = this.series.find(function (s) {
82
83
  return s.key === y;
83
- });
84
+ }) || [];
84
85
  return {
85
86
  data: series.map(function (s) {
86
87
  var _objectSpread2;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/StackedArea.js"],"names":["React","stack","d3Stack","Component","getOriginChildren","createElement","Area","DEFAULT_INSTANCE","Symbol","Y0","StackedAreaRoot","asProps","Children","data","keys","toArray","reduce","acc","child","isValidElement","type","StackedArea","push","props","y","reverse","x","series","find","s","key","map","y0","Element","getSeries","style"],"mappings":";;;;;;;;;;;;;;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,KAAK,IAAIC,OAAlB,QAAiC,UAAjC;AACA,SAASC,SAAT,sBAA0B,eAA1B;AACA,OAAOC,iBAAP,MAA8B,sCAA9B;AACA,OAAOC,aAAP,MAA0B,iBAA1B;AACA,OAAOC,IAAP,MAAiB,QAAjB;;;;;;;;;;;;;;;;;;;AAIA,IAAMC,gBAAgB,GAAGC,MAAM,CAAC,kBAAD,CAA/B;AACA,IAAMC,EAAE,GAAGD,MAAM,CAAC,IAAD,CAAjB;;IAEME,e;;;;;;;;;;;;;WAWJ,qBAAY;AAAA,0BACwB,KAAKC,OAD7B;AAAA,UACFC,QADE,iBACFA,QADE;AAAA,UACQC,IADR,iBACQA,IADR;AAAA,UACcZ,KADd,iBACcA,KADd;;AAGV,UAAIA,KAAK,CAACM,gBAAD,CAAT,EAA6B;AAC3B,YAAMO,IAAI,GAAGd,KAAK,CAACY,QAAN,CAAeG,OAAf,CAAuBX,iBAAiB,CAACQ,QAAD,CAAxC,EAAoDI,MAApD,CAA2D,UAACC,GAAD,EAAMC,KAAN,EAAgB;AACtF,cAAI,cAAAlB,KAAK,CAACmB,cAAN,CAAqBD,KAArB,KAA+BA,KAAK,CAACE,IAAN,KAAeC,WAAW,CAACf,IAA9D,EAAoE;AAClEW,YAAAA,GAAG,CAACK,IAAJ,CAASJ,KAAK,CAACK,KAAN,CAAYC,CAArB;AACD;;AACD,iBAAOP,GAAP;AACD,SALY,EAKV,EALU,CAAb;AAMAhB,QAAAA,KAAK,CAACa,IAAN,CAAWA,IAAI,CAACW,OAAL,EAAX;AACD;;AAED,aAAOxB,KAAK,CAACY,IAAD,CAAZ;AACD;;;WAED,6BAAoB;AAAA,UAALW,CAAK,SAALA,CAAK;AAAA,UACVE,CADU,GACJ,KAAKf,OADD,CACVe,CADU;AAElB,UAAMC,MAAM,GAAG,KAAKA,MAAL,CAAYC,IAAZ,CAAiB,UAACC,CAAD;AAAA,eAAOA,CAAC,CAACC,GAAF,KAAUN,CAAjB;AAAA,OAAjB,CAAf;AACA,aAAO;AACLX,QAAAA,IAAI,EAAEc,MAAM,CAACI,GAAP,CAAW,UAACF,CAAD;AAAA;;AAAA,iDACZA,CAAC,CAAChB,IADU,6DAGdW,CAHc,EAGVK,CAAC,CAAChB,IAAF,CAAOW,CAAP,MAAc,IAAd,GAAqB,IAArB,GAA4BK,CAAC,CAAC,CAAD,CAHnB,mCAIdpB,EAJc,EAIToB,CAAC,CAAC,CAAD,CAJQ;AAAA,SAAX,CADD;AAOLG,QAAAA,EAAE,EAAEvB,EAPC;AAQLiB,QAAAA,CAAC,EAADA;AARK,OAAP;AAUD;;;WAED,kBAAS;AACP,UAAMO,OAAO,GAAG,KAAKA,OAArB;AACA,WAAKN,MAAL,GAAc,KAAKO,SAAL,EAAd;AACA,0BAAO,oBAAC,OAAD;AAAS,QAAA,MAAM,EAAC,GAAhB;AAAoB,QAAA,MAAM,EAAE,KAAKP;AAAjC,QAAP;AACD;;;;EA9C2BxB,S;;gBAAxBO,e,iBACiB,a;;gBADjBA,e,WAGWyB,K;;gBAHXzB,e,kBAKkB,YAAM;AAC1B,MAAMT,KAAK,GAAGC,OAAO,EAArB;AACAD,EAAAA,KAAK,CAACM,gBAAD,CAAL,GAA0B,IAA1B;AACA,SAAO;AAAEN,IAAAA,KAAK,EAALA;AAAF,GAAP;AACD,C;;AAwCH,IAAMoB,WAAW,GAAGhB,aAAa,CAACK,eAAD,EAAkB;AAAEJ,EAAAA,IAAI,EAAJA;AAAF,CAAlB,CAAjC;AAEA,eAAee,WAAf","sourcesContent":["import React from 'react';\nimport { stack as d3Stack } from 'd3-shape';\nimport { Component } from '@semcore/core';\nimport getOriginChildren from '@semcore/utils/lib/getOriginChildren';\nimport createElement from './createElement';\nimport Area from './Area';\n\nimport style from './style/area.shadow.css';\n\nconst DEFAULT_INSTANCE = Symbol('DEFAULT_INSTANCE');\nconst Y0 = Symbol('Y0');\n\nclass StackedAreaRoot extends Component {\n static displayName = 'StackedArea';\n\n static style = style;\n\n static defaultProps = () => {\n const stack = d3Stack();\n stack[DEFAULT_INSTANCE] = true;\n return { stack };\n };\n\n getSeries() {\n const { Children, data, stack } = this.asProps;\n\n if (stack[DEFAULT_INSTANCE]) {\n const keys = React.Children.toArray(getOriginChildren(Children)).reduce((acc, child) => {\n if (React.isValidElement(child) && child.type === StackedArea.Area) {\n acc.push(child.props.y);\n }\n return acc;\n }, []);\n stack.keys(keys.reverse());\n }\n\n return stack(data);\n }\n\n getAreaProps({ y }) {\n const { x } = this.asProps;\n const series = this.series.find((s) => s.key === y);\n return {\n data: series.map((s) => ({\n ...s.data,\n // if null is passed in the data, then we pass it, because d3 null leads to 0\n [y]: s.data[y] === null ? null : s[1],\n [Y0]: s[0],\n })),\n y0: Y0,\n x,\n };\n }\n\n render() {\n const Element = this.Element;\n this.series = this.getSeries();\n return <Element render=\"g\" series={this.series} />;\n }\n}\n\nconst StackedArea = createElement(StackedAreaRoot, { Area });\n\nexport default StackedArea;\n"],"file":"StackedArea.js"}
1
+ {"version":3,"sources":["../../src/StackedArea.js"],"names":["React","stack","d3Stack","Component","getOriginChildren","createElement","Area","DEFAULT_INSTANCE","Symbol","Y0","StackedAreaRoot","asProps","Children","data","keys","toArray","reduce","acc","child","isValidElement","type","StackedArea","props","hide","push","y","reverse","x","series","find","s","key","map","y0","Element","getSeries","style"],"mappings":";;;;;;;;;;;;;;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,KAAK,IAAIC,OAAlB,QAAiC,UAAjC;AACA,SAASC,SAAT,sBAA0B,eAA1B;AACA,OAAOC,iBAAP,MAA8B,sCAA9B;AACA,OAAOC,aAAP,MAA0B,iBAA1B;AACA,OAAOC,IAAP,MAAiB,QAAjB;;;;;;;;;;;;;;;;;;;AAIA,IAAMC,gBAAgB,GAAGC,MAAM,CAAC,kBAAD,CAA/B;AACA,IAAMC,EAAE,GAAGD,MAAM,CAAC,IAAD,CAAjB;;IAEME,e;;;;;;;;;;;;;WAWJ,qBAAY;AAAA,0BACwB,KAAKC,OAD7B;AAAA,UACFC,QADE,iBACFA,QADE;AAAA,UACQC,IADR,iBACQA,IADR;AAAA,UACcZ,KADd,iBACcA,KADd;;AAGV,UAAIA,KAAK,CAACM,gBAAD,CAAT,EAA6B;AAC3B,YAAMO,IAAI,GAAGd,KAAK,CAACY,QAAN,CAAeG,OAAf,CAAuBX,iBAAiB,CAACQ,QAAD,CAAxC,EAAoDI,MAApD,CAA2D,UAACC,GAAD,EAAMC,KAAN,EAAgB;AACtF,cAAI,cAAAlB,KAAK,CAACmB,cAAN,CAAqBD,KAArB,KAA+BA,KAAK,CAACE,IAAN,KAAeC,WAAW,CAACf,IAA1D,IAAkE,CAACY,KAAK,CAACI,KAAN,CAAYC,IAAnF,EAAyF;AACvFN,YAAAA,GAAG,CAACO,IAAJ,CAASN,KAAK,CAACI,KAAN,CAAYG,CAArB;AACD;;AACD,iBAAOR,GAAP;AACD,SALY,EAKV,EALU,CAAb;AAMAhB,QAAAA,KAAK,CAACa,IAAN,CAAWA,IAAI,CAACY,OAAL,EAAX;AACD;;AAED,aAAOzB,KAAK,CAACY,IAAD,CAAZ;AACD;;;WAED,6BAAoB;AAAA,UAALY,CAAK,SAALA,CAAK;AAAA,UACVE,CADU,GACJ,KAAKhB,OADD,CACVgB,CADU,EAElB;;AACA,UAAMC,MAAM,GAAG,KAAKA,MAAL,CAAYC,IAAZ,CAAiB,UAACC,CAAD;AAAA,eAAOA,CAAC,CAACC,GAAF,KAAUN,CAAjB;AAAA,OAAjB,KAAwC,EAAvD;AACA,aAAO;AACLZ,QAAAA,IAAI,EAAEe,MAAM,CAACI,GAAP,CAAW,UAACF,CAAD;AAAA;;AAAA,iDACZA,CAAC,CAACjB,IADU,6DAGdY,CAHc,EAGVK,CAAC,CAACjB,IAAF,CAAOY,CAAP,MAAc,IAAd,GAAqB,IAArB,GAA4BK,CAAC,CAAC,CAAD,CAHnB,mCAIdrB,EAJc,EAITqB,CAAC,CAAC,CAAD,CAJQ;AAAA,SAAX,CADD;AAOLG,QAAAA,EAAE,EAAExB,EAPC;AAQLkB,QAAAA,CAAC,EAADA;AARK,OAAP;AAUD;;;WAED,kBAAS;AACP,UAAMO,OAAO,GAAG,KAAKA,OAArB;AACA,WAAKN,MAAL,GAAc,KAAKO,SAAL,EAAd;AACA,0BAAO,oBAAC,OAAD;AAAS,QAAA,MAAM,EAAC,GAAhB;AAAoB,QAAA,MAAM,EAAE,KAAKP;AAAjC,QAAP;AACD;;;;EA/C2BzB,S;;gBAAxBO,e,iBACiB,a;;gBADjBA,e,WAGW0B,K;;gBAHX1B,e,kBAKkB,YAAM;AAC1B,MAAMT,KAAK,GAAGC,OAAO,EAArB;AACAD,EAAAA,KAAK,CAACM,gBAAD,CAAL,GAA0B,IAA1B;AACA,SAAO;AAAEN,IAAAA,KAAK,EAALA;AAAF,GAAP;AACD,C;;AAyCH,IAAMoB,WAAW,GAAGhB,aAAa,CAACK,eAAD,EAAkB;AAAEJ,EAAAA,IAAI,EAAJA;AAAF,CAAlB,CAAjC;AAEA,eAAee,WAAf","sourcesContent":["import React from 'react';\nimport { stack as d3Stack } from 'd3-shape';\nimport { Component } from '@semcore/core';\nimport getOriginChildren from '@semcore/utils/lib/getOriginChildren';\nimport createElement from './createElement';\nimport Area from './Area';\n\nimport style from './style/area.shadow.css';\n\nconst DEFAULT_INSTANCE = Symbol('DEFAULT_INSTANCE');\nconst Y0 = Symbol('Y0');\n\nclass StackedAreaRoot extends Component {\n static displayName = 'StackedArea';\n\n static style = style;\n\n static defaultProps = () => {\n const stack = d3Stack();\n stack[DEFAULT_INSTANCE] = true;\n return { stack };\n };\n\n getSeries() {\n const { Children, data, stack } = this.asProps;\n\n if (stack[DEFAULT_INSTANCE]) {\n const keys = React.Children.toArray(getOriginChildren(Children)).reduce((acc, child) => {\n if (React.isValidElement(child) && child.type === StackedArea.Area && !child.props.hide) {\n acc.push(child.props.y);\n }\n return acc;\n }, []);\n stack.keys(keys.reverse());\n }\n\n return stack(data);\n }\n\n getAreaProps({ y }) {\n const { x } = this.asProps;\n // or [] if hide area\n const series = this.series.find((s) => s.key === y) || [];\n return {\n data: series.map((s) => ({\n ...s.data,\n // if null is passed in the data, then we pass it, because d3 null leads to 0\n [y]: s.data[y] === null ? null : s[1],\n [Y0]: s[0],\n })),\n y0: Y0,\n x,\n };\n }\n\n render() {\n const Element = this.Element;\n this.series = this.getSeries();\n return <Element render=\"g\" series={this.series} />;\n }\n}\n\nconst StackedArea = createElement(StackedAreaRoot, { Area });\n\nexport default StackedArea;\n"],"file":"StackedArea.js"}
@@ -33,15 +33,15 @@ var style = (
33
33
  /*__reshadow_css_start__*/
34
34
  _sstyled.insert(
35
35
  /*__inner_css_start__*/
36
- ".___STooltip_1tt9g_gg_{position:relative;background-color:#fff;border-radius:3px;border:1px solid #bdc4c6;box-sizing:border-box;box-shadow:0 2px 5px 0 rgba(0,0,0,.25),0 -2px 5px -2px rgba(0,0,0,.25);padding:12px}.___STitle_1tt9g_gg_{font-size:12px;line-height:1.5;color:#757575;margin-bottom:8px}.___SDotGroup_1tt9g_gg_{display:flex;align-items:center}.___SDot_1tt9g_gg_{width:8px;height:8px;border-radius:50%;margin-right:8px;background:var(--color_1vsdjfi)}"
36
+ ".___STooltip_1exb3_gg_{position:relative;background-color:#fff;border-radius:3px;border:1px solid #bdc4c6;box-sizing:border-box;box-shadow:0 2px 5px 0 rgba(0,0,0,.25),0 -2px 5px -2px rgba(0,0,0,.25);padding:12px}.___STitle_1exb3_gg_{font-size:12px;line-height:1.5;color:#757575;margin-bottom:8px}.___SDotGroup_1exb3_gg_{display:flex;align-items:center}.___SDot_1exb3_gg_{width:8px;height:8px;border-radius:50%;margin-right:8px;background:var(--color_1vsdjfi)}"
37
37
  /*__inner_css_end__*/
38
38
  , "1vsdjfi_gg_")
39
39
  /*__reshadow_css_end__*/
40
40
  , {
41
- "__STooltip": "___STooltip_1tt9g_gg_",
42
- "__STitle": "___STitle_1tt9g_gg_",
43
- "__SDotGroup": "___SDotGroup_1tt9g_gg_",
44
- "__SDot": "___SDot_1tt9g_gg_",
41
+ "__STooltip": "___STooltip_1exb3_gg_",
42
+ "__STitle": "___STitle_1exb3_gg_",
43
+ "__SDotGroup": "___SDotGroup_1exb3_gg_",
44
+ "__SDot": "___SDot_1exb3_gg_",
45
45
  "--color": "--color_1vsdjfi"
46
46
  });
47
47
 
package/lib/es6/Venn.js CHANGED
@@ -26,15 +26,15 @@ var style = (
26
26
  /*__reshadow_css_start__*/
27
27
  _sstyled.insert(
28
28
  /*__inner_css_start__*/
29
- ".___SCircle_1p0jc_gg_{fill:var(--color_v23pgz);stroke:#fff;stroke-width:2px;fill-opacity:.5;transition-property:cx,cy;transition-duration:var(--duration_v23pgz);transition-timing-function:ease-in-out}.___SCircle_1p0jc_gg_:hover{fill-opacity:.7}.___SIntersection_1p0jc_gg_{stroke:#fff;stroke-width:2px;fill-opacity:0}.___SIntersection_1p0jc_gg_:hover{fill-opacity:.1}"
29
+ ".___SCircle_1qcib_gg_{fill:var(--color_v23pgz);stroke:#fff;stroke-width:2px;fill-opacity:.5;transition-property:cx,cy;transition-duration:var(--duration_v23pgz);transition-timing-function:ease-in-out}.___SCircle_1qcib_gg_:hover{fill-opacity:.7}.___SIntersection_1qcib_gg_{stroke:#fff;stroke-width:2px;fill-opacity:0}.___SIntersection_1qcib_gg_:hover{fill-opacity:.1}"
30
30
  /*__inner_css_end__*/
31
31
  , "v23pgz_gg_")
32
32
  /*__reshadow_css_end__*/
33
33
  , {
34
- "__SCircle": "___SCircle_1p0jc_gg_",
34
+ "__SCircle": "___SCircle_1qcib_gg_",
35
35
  "--color": "--color_v23pgz",
36
36
  "--duration": "--duration_v23pgz",
37
- "__SIntersection": "___SIntersection_1p0jc_gg_"
37
+ "__SIntersection": "___SIntersection_1qcib_gg_"
38
38
  });
39
39
 
40
40
  var VennRoot = /*#__PURE__*/function (_Component) {
@@ -18,7 +18,7 @@ export interface IBarProps extends IContext {
18
18
  /** Radius of curvature
19
19
  * @default 2
20
20
  */
21
- r?: number;
21
+ r?: number | number[];
22
22
  }
23
23
 
24
24
  export interface IBarContext {
@@ -17,7 +17,7 @@ export interface IHorizontalBarProps extends IContext {
17
17
  /** Radius of curvature
18
18
  * @default 2
19
19
  */
20
- r?: number;
20
+ r?: number | number[];
21
21
  }
22
22
 
23
23
  declare const HorizontalBar: (<T>(
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@semcore/d3-chart",
3
3
  "description": "SEMRush D3 Chart Component",
4
- "version": "1.5.1",
4
+ "version": "1.5.5",
5
5
  "main": "lib/cjs/index.js",
6
6
  "module": "lib/es6/index.js",
7
7
  "typings": "lib/types/index.d.ts",
package/src/Area.js CHANGED
@@ -14,8 +14,8 @@ class AreaRoot extends Component {
14
14
  static style = style;
15
15
  static enhance = [uniqueIDEnhancement()];
16
16
 
17
- static defaultProps = ({ x, y, y0, $rootProps, curve = curveLinear }) => {
18
- const [xScale, yScale] = $rootProps.scale;
17
+ static defaultProps = ({ x, y, y0, $rootProps, curve = curveLinear, scale }) => {
18
+ const [xScale, yScale] = scale || $rootProps.scale;
19
19
  const yRange = yScale.range();
20
20
 
21
21
  return {
package/src/Bar.js CHANGED
@@ -74,7 +74,14 @@ class BarRoot extends Component {
74
74
  yScale(d[y]) - Math.min(yScale(yScale.domain()[0]), yScale(d[y0] ?? 0)),
75
75
  );
76
76
  const width = widthProps || getBandwidth(xScale);
77
- const isRounded = r !== 0;
77
+ const dSvg = getRect({
78
+ x: barX,
79
+ y: barY,
80
+ width,
81
+ height,
82
+ radius: Array.isArray(r) ? r[i] : r,
83
+ position: d[y] > 0 ? 'top' : 'bottom',
84
+ });
78
85
 
79
86
  return sstyled(styles)(
80
87
  <SBar
@@ -87,14 +94,11 @@ class BarRoot extends Component {
87
94
  index={i}
88
95
  hide={hide}
89
96
  color={color}
90
- d={getRect({
91
- x: barX,
92
- y: isRounded ? (d[y] > 0 ? barY - r : barY) : barY,
93
- width,
94
- height: isRounded ? height + r : height,
95
- radius: r,
96
- position: d[y] > 0 ? 'top' : 'bottom',
97
- })}
97
+ x={barX}
98
+ y={barY}
99
+ width={width}
100
+ height={height}
101
+ d={dSvg}
98
102
  use:duration={`${duration}ms`}
99
103
  />,
100
104
  );
package/src/Dots.js CHANGED
@@ -4,6 +4,7 @@ import { sstyled } from '@semcore/core';
4
4
  import { eventToPoint, invert } from './utils';
5
5
  import createElement from './createElement';
6
6
  import { FadeInOut } from '@semcore/animation';
7
+ import trottle from '@semcore/utils/lib/rafTrottle';
7
8
 
8
9
  import style from './style/dot.shadow.css';
9
10
 
@@ -27,18 +28,21 @@ function Dots(props) {
27
28
  const [activeIndex, setActiveIndex] = useState(null);
28
29
 
29
30
  const handlerMouseMoveRoot = useCallback(
30
- (e) => {
31
+ trottle((e) => {
31
32
  const [xScale] = scale;
32
33
  const [pX] = eventToPoint(e, rootRef.current);
33
34
  const vX = invert(xScale, pX);
34
35
  setActiveIndex(bisect(data, vX));
35
- },
36
+ }),
36
37
  [scale, data],
37
38
  );
38
39
 
39
- const handlerMouseLeaveRoot = useCallback(() => {
40
- setActiveIndex(null);
41
- }, []);
40
+ const handlerMouseLeaveRoot = useCallback(
41
+ trottle(() => {
42
+ setActiveIndex(null);
43
+ }),
44
+ [],
45
+ );
42
46
 
43
47
  useEffect(() => {
44
48
  const unsubscribeMouseMoveRoot = eventEmitter.subscribe('onMouseMoveChart', (e) => {
package/src/GroupBar.js CHANGED
@@ -20,10 +20,14 @@ class GroupBarRoot extends Component {
20
20
  if (scaleGroup) return scaleGroup;
21
21
 
22
22
  const domain = React.Children.toArray(getOriginChildren(Children)).reduce((acc, child) => {
23
- if (React.isValidElement(child) && child.type === GroupBar.Bar) {
23
+ if (React.isValidElement(child) && child.type === GroupBar.Bar && !child.props.hide) {
24
24
  acc.push(child.props.y);
25
25
  }
26
- if (React.isValidElement(child) && child.type === GroupBar.HorizontalBar) {
26
+ if (
27
+ React.isValidElement(child) &&
28
+ child.type === GroupBar.HorizontalBar &&
29
+ !child.props.hide
30
+ ) {
27
31
  acc.push(child.props.x);
28
32
  }
29
33
  return acc;
@@ -44,12 +44,20 @@ class HorizontalBarRoot extends Component {
44
44
  onMouseMove,
45
45
  onMouseLeave,
46
46
  } = this.asProps;
47
+
47
48
  const [xScale, yScale] = scale;
48
49
  const barY = yScale(d[y]) + offset[1];
49
50
  const barX = xScale(Math.min(d[x0] ?? 0, d[x])) + offset[0];
50
51
  const height = heightProps || getBandwidth(yScale);
51
52
  const width = Math.abs(xScale(d[x]) - Math.max(xScale(xScale.domain()[0]), xScale(d[x0] ?? 0)));
52
- const isRounded = r !== 0;
53
+ const dSvg = getHorizontalRect({
54
+ x: barX,
55
+ y: barY,
56
+ width,
57
+ height,
58
+ radius: Array.isArray(r) ? r[i] : r,
59
+ position: d[x] > 0 ? 'right' : 'left',
60
+ });
53
61
 
54
62
  return sstyled(styles)(
55
63
  <SBar
@@ -62,14 +70,11 @@ class HorizontalBarRoot extends Component {
62
70
  index={i}
63
71
  hide={hide}
64
72
  color={color}
65
- d={getHorizontalRect({
66
- x: isRounded ? (d[x] > 0 ? barX : barX - r) : barX,
67
- y: barY,
68
- width: isRounded ? width + r : width,
69
- height,
70
- radius: r,
71
- position: d[x] > 0 ? 'right' : 'left',
72
- })}
73
+ x={barX}
74
+ y={barY}
75
+ width={width}
76
+ height={height}
77
+ d={dSvg}
73
78
  use:duration={`${duration}ms`}
74
79
  onMouseMove={onMouseMove}
75
80
  onMouseLeave={onMouseLeave}
package/src/Hover.js CHANGED
@@ -3,6 +3,7 @@ import { Component, sstyled } from '@semcore/core';
3
3
  import createElement from './createElement';
4
4
  import canUseDOM from '@semcore/utils/lib/canUseDOM';
5
5
  import { scaleOfBandwidth, getIndexFromData, eventToPoint, invert, CONSTANT } from './utils';
6
+ import trottle from '@semcore/utils/lib/rafTrottle';
6
7
 
7
8
  import style from './style/hover.shadow.css';
8
9
 
@@ -20,7 +21,7 @@ class Hover extends Component {
20
21
  return () => ({ width: 0, height: 0, top: y, right: x, bottom: y, left: x });
21
22
  }
22
23
 
23
- handlerMouseMoveRoot = (e) => {
24
+ handlerMouseMoveRoot = trottle((e) => {
24
25
  const { eventEmitter, data, scale, x, y, rootRef } = this.asProps;
25
26
  const { clientX, clientY } = e;
26
27
  const [xScale, yScale] = scale;
@@ -46,9 +47,9 @@ class Hover extends Component {
46
47
  this.virtualElement,
47
48
  );
48
49
  });
49
- };
50
+ });
50
51
 
51
- handlerMouseLeaveRoot = () => {
52
+ handlerMouseLeaveRoot = trottle(() => {
52
53
  const state = {
53
54
  xIndex: null,
54
55
  yIndex: null,
@@ -56,7 +57,7 @@ class Hover extends Component {
56
57
  this.setState(state, () => {
57
58
  this.asProps.eventEmitter.emit('onTooltipVisible', false, state);
58
59
  });
59
- };
60
+ });
60
61
 
61
62
  componentDidMount() {
62
63
  const { eventEmitter } = this.asProps;
package/src/Line.js CHANGED
@@ -14,8 +14,8 @@ class LineRoot extends Component {
14
14
  static style = style;
15
15
  static enhance = [uniqueIDEnhancement()];
16
16
 
17
- static defaultProps = ({ x, y, $rootProps, curve = curveLinear }) => {
18
- const [xScale, yScale] = $rootProps.scale;
17
+ static defaultProps = ({ x, y, $rootProps, curve = curveLinear, scale }) => {
18
+ const [xScale, yScale] = scale || $rootProps.scale;
19
19
  return {
20
20
  d3: d3Line()
21
21
  .defined(definedData(x, y))
package/src/Plot.js CHANGED
@@ -3,7 +3,6 @@ import createComponent, { Component, Root, sstyled } from '@semcore/core';
3
3
  import { Box } from '@semcore/flex-box';
4
4
  import EventEmitter from '@semcore/utils/lib/eventEmitter';
5
5
  import { eventToPoint } from './utils';
6
- import trottle from '@semcore/utils/lib/rafTrottle';
7
6
 
8
7
  class PlotRoot extends Component {
9
8
  static displayName = 'Plot';
@@ -20,7 +19,7 @@ class PlotRoot extends Component {
20
19
 
21
20
  rootRef = React.createRef();
22
21
 
23
- handlerMouseMove = trottle((e) => {
22
+ handlerMouseMove = (e) => {
24
23
  const { scale } = this.asProps;
25
24
  this.eventEmitter.emit(`onMouseMoveRoot`, e);
26
25
 
@@ -36,12 +35,12 @@ class PlotRoot extends Component {
36
35
  this.eventEmitter.emit('onMouseLeaveChart', e);
37
36
  }
38
37
  }
39
- });
38
+ };
40
39
 
41
- handlerMouseLeave = trottle((e) => {
40
+ handlerMouseLeave = (e) => {
42
41
  this.eventEmitter.emit(`onMouseLeaveRoot`, e);
43
42
  this.eventEmitter.emit('onMouseLeaveChart', e);
44
- });
43
+ };
45
44
 
46
45
  setContext() {
47
46
  const { scale, data, width, height } = this.asProps;
package/src/StackBar.js CHANGED
@@ -19,7 +19,7 @@ class StackBarRoot extends Component {
19
19
  static defaultProps = () => {
20
20
  const stack = d3Stack();
21
21
  stack[DEFAULT_INSTANCE] = true;
22
- return { stack };
22
+ return { stack, r: 2 };
23
23
  };
24
24
 
25
25
  getSeries() {
@@ -27,10 +27,14 @@ class StackBarRoot extends Component {
27
27
 
28
28
  if (stack[DEFAULT_INSTANCE]) {
29
29
  const keys = React.Children.toArray(getOriginChildren(Children)).reduce((acc, child) => {
30
- if (React.isValidElement(child) && child.type === StackBar.Bar) {
30
+ if (React.isValidElement(child) && child.type === StackBar.Bar && !child.props.hide) {
31
31
  acc.push(child.props.y);
32
32
  }
33
- if (React.isValidElement(child) && child.type === StackBar.HorizontalBar) {
33
+ if (
34
+ React.isValidElement(child) &&
35
+ child.type === StackBar.HorizontalBar &&
36
+ !child.props.hide
37
+ ) {
34
38
  acc.push(child.props.x);
35
39
  }
36
40
  return acc;
@@ -42,9 +46,15 @@ class StackBarRoot extends Component {
42
46
  }
43
47
 
44
48
  getBarProps({ y }) {
45
- const { x } = this.asProps;
49
+ const { x, r } = this.asProps;
46
50
 
47
- const series = this.series.find((s) => s.key === y);
51
+ const seriesIndex = this.series.findIndex((s) => s.key === y);
52
+ // or [] if hide bar
53
+ const series = this.series[seriesIndex] || [];
54
+
55
+ const rBar = series.map((s, i) =>
56
+ this.series.slice(seriesIndex + 1).some((bar) => bar[i][0] !== bar[i][1]) ? 0 : r,
57
+ );
48
58
 
49
59
  return {
50
60
  data: series.map((s) => ({
@@ -54,13 +64,19 @@ class StackBarRoot extends Component {
54
64
  })),
55
65
  y0: XY0,
56
66
  x,
67
+ r: rBar,
57
68
  };
58
69
  }
59
70
 
60
71
  getHorizontalBarProps({ x }) {
61
- const { y } = this.asProps;
72
+ const { y, r } = this.asProps;
73
+
74
+ const seriesIndex = this.series.findIndex((s) => s.key === x);
75
+ const series = this.series[seriesIndex];
62
76
 
63
- const series = this.series.find((s) => s.key === x);
77
+ const rBar = series.map((s, i) =>
78
+ this.series.slice(seriesIndex + 1).some((bar) => bar[i][0] !== bar[i][1]) ? 0 : r,
79
+ );
64
80
 
65
81
  return {
66
82
  data: series.map((s) => ({
@@ -70,6 +86,7 @@ class StackBarRoot extends Component {
70
86
  })),
71
87
  x0: XY0,
72
88
  y,
89
+ r: rBar,
73
90
  };
74
91
  }
75
92
 
@@ -26,7 +26,7 @@ class StackedAreaRoot extends Component {
26
26
 
27
27
  if (stack[DEFAULT_INSTANCE]) {
28
28
  const keys = React.Children.toArray(getOriginChildren(Children)).reduce((acc, child) => {
29
- if (React.isValidElement(child) && child.type === StackedArea.Area) {
29
+ if (React.isValidElement(child) && child.type === StackedArea.Area && !child.props.hide) {
30
30
  acc.push(child.props.y);
31
31
  }
32
32
  return acc;
@@ -39,7 +39,8 @@ class StackedAreaRoot extends Component {
39
39
 
40
40
  getAreaProps({ y }) {
41
41
  const { x } = this.asProps;
42
- const series = this.series.find((s) => s.key === y);
42
+ // or [] if hide area
43
+ const series = this.series.find((s) => s.key === y) || [];
43
44
  return {
44
45
  data: series.map((s) => ({
45
46
  ...s.data,