@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
package/lib/es6/Bar.js CHANGED
@@ -24,16 +24,16 @@ var style = (
24
24
  /*__reshadow_css_start__*/
25
25
  _sstyled.insert(
26
26
  /*__inner_css_start__*/
27
- ".___SBar_17amb_gg_{fill:var(--color_10kcl1b);transition-property:height,width,y;transition-duration:var(--duration_10kcl1b);transition-timing-function:ease-in-out}.___SBar_17amb_gg_.__hide_17amb_gg_{display:none}.___SBackground_17amb_gg_{fill:#e4ecf1}"
27
+ ".___SBar_1u1r9_gg_{fill:var(--color_10kcl1b);transition-property:height,width,y;transition-duration:var(--duration_10kcl1b);transition-timing-function:ease-in-out}.___SBar_1u1r9_gg_.__hide_1u1r9_gg_{display:none}.___SBackground_1u1r9_gg_{fill:#e4ecf1}"
28
28
  /*__inner_css_end__*/
29
29
  , "10kcl1b_gg_")
30
30
  /*__reshadow_css_end__*/
31
31
  , {
32
- "__SBar": "___SBar_17amb_gg_",
32
+ "__SBar": "___SBar_1u1r9_gg_",
33
33
  "--color": "--color_10kcl1b",
34
34
  "--duration": "--duration_10kcl1b",
35
- "_hide": "__hide_17amb_gg_",
36
- "__SBackground": "___SBackground_17amb_gg_"
35
+ "_hide": "__hide_1u1r9_gg_",
36
+ "__SBackground": "___SBackground_1u1r9_gg_"
37
37
  });
38
38
 
39
39
  var BarRoot = /*#__PURE__*/function (_Component) {
@@ -108,7 +108,14 @@ var BarRoot = /*#__PURE__*/function (_Component) {
108
108
  var barX = xScale(d[x]) + offset[0];
109
109
  var height = Math.abs(yScale(d[y]) - Math.min(yScale(yScale.domain()[0]), yScale((_d$y2 = d[y0]) !== null && _d$y2 !== void 0 ? _d$y2 : 0)));
110
110
  var width = widthProps || getBandwidth(xScale);
111
- var isRounded = r !== 0;
111
+ var dSvg = getRect({
112
+ x: barX,
113
+ y: barY,
114
+ width: width,
115
+ height: height,
116
+ radius: Array.isArray(r) ? r[i] : r,
117
+ position: d[y] > 0 ? 'top' : 'bottom'
118
+ });
112
119
  return _ref = sstyled(styles), /*#__PURE__*/React.createElement(SBar, _ref.cn("SBar", {
113
120
  "key": "bar-".concat(i),
114
121
  "render": "path",
@@ -119,14 +126,11 @@ var BarRoot = /*#__PURE__*/function (_Component) {
119
126
  "index": i,
120
127
  "hide": hide,
121
128
  "color": color,
122
- "d": getRect({
123
- x: barX,
124
- y: isRounded ? d[y] > 0 ? barY - r : barY : barY,
125
- width: width,
126
- height: isRounded ? height + r : height,
127
- radius: r,
128
- position: d[y] > 0 ? 'top' : 'bottom'
129
- }),
129
+ "x": barX,
130
+ "y": barY,
131
+ "width": width,
132
+ "height": height,
133
+ "d": dSvg,
130
134
  "use:duration": "".concat(duration, "ms")
131
135
  }));
132
136
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Bar.js"],"names":["React","transition","Component","sstyled","uniqueIDEnhancement","createElement","ClipPath","getBandwidth","roundedPath","BarRoot","props","index","asProps","x","data","value","duration","uid","selectRect","selection","selectAll","selectRectNode","node","getAttribute","attr","animationBar","d","i","SBar","Element","styles","color","y","y0","scale","hide","offset","r","widthProps","width","xScale","yScale","barY","Math","max","barX","height","abs","min","domain","isRounded","getRect","radius","position","size","map","renderBar","bind","style","Background","SBackground","yRange","range","bandwidth"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { transition } from 'd3-transition';\nimport { Component, sstyled } from '@semcore/core';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\nimport createElement from './createElement';\nimport ClipPath from './ClipPath';\nimport { getBandwidth, roundedPath } from './utils';\n\nimport style from './style/bar.shadow.css';\n\nclass BarRoot extends Component {\n static displayName = 'Bar';\n static style = style;\n static enhance = [uniqueIDEnhancement()];\n\n static defaultProps = {\n color: '#50aef4',\n offset: [0, 0],\n duration: 500,\n r: 2,\n };\n\n getBackgroundProps(props, index) {\n const { x, data } = this.asProps;\n return {\n value: data[index][x],\n };\n }\n\n animationBar() {\n const { duration, uid } = this.asProps;\n const selectRect = transition()\n .selection()\n .selectAll(`#${uid} rect`);\n const selectRectNode = selectRect.node();\n\n if (duration > 0 && selectRectNode && selectRectNode.getAttribute('y') !== '0') {\n selectRect\n .transition()\n .duration(duration)\n .attr('y', 0);\n }\n }\n\n componentDidUpdate() {\n this.animationBar();\n }\n\n componentDidMount() {\n this.animationBar();\n }\n\n renderBar(d, i) {\n const SBar = this.Element;\n const {\n styles,\n color,\n x,\n y,\n y0,\n scale,\n hide,\n offset,\n duration,\n uid,\n r,\n width: widthProps,\n } = this.asProps;\n\n const [xScale, yScale] = scale;\n const barY = yScale(Math.max(d[y0] ?? 0, d[y])) + offset[1];\n const barX = xScale(d[x]) + offset[0];\n const height = Math.abs(\n yScale(d[y]) - Math.min(yScale(yScale.domain()[0]), yScale(d[y0] ?? 0)),\n );\n const width = widthProps || getBandwidth(xScale);\n const isRounded = r !== 0;\n\n return sstyled(styles)(\n <SBar\n key={`bar-${i}`}\n render=\"path\"\n clipPath={`url(#${uid})`}\n __excludeProps={['data', 'scale', 'value']}\n childrenPosition=\"above\"\n value={d}\n index={i}\n hide={hide}\n color={color}\n d={getRect({\n x: barX,\n y: isRounded ? (d[y] > 0 ? barY - r : barY) : barY,\n width,\n height: isRounded ? height + r : height,\n radius: r,\n position: d[y] > 0 ? 'top' : 'bottom',\n })}\n use:duration={`${duration}ms`}\n />,\n );\n }\n render() {\n const { data, uid, size, duration } = this.asProps;\n return (\n <>\n {data.map(this.renderBar.bind(this))}\n {duration && (\n <ClipPath\n key={`${uid}-animation`}\n id={uid}\n x=\"0\"\n y={size[1]}\n width={size[0]}\n height={`${size[1]}px`}\n />\n )}\n </>\n );\n }\n}\n\nfunction Background(props) {\n const { Element: SBackground, styles, scale, value } = props;\n\n const [xScale, yScale] = scale;\n const yRange = yScale.range();\n\n return sstyled(styles)(\n <SBackground\n render=\"rect\"\n childrenPosition=\"above\"\n width={xScale.bandwidth()}\n height={yRange[0] - yRange[1]}\n x={xScale(value)}\n y={yRange[1]}\n />,\n );\n}\n\nfunction getRect({ x, y, width, height, radius, position }) {\n if (height <= radius) return '';\n if (radius) {\n if (position === 'top')\n return roundedPath(x, y, width, height, radius, true, true, false, false);\n return roundedPath(x, y, width, height, radius, false, false, true, true);\n }\n return roundedPath(x, y, width, height, radius);\n}\n\nexport default createElement(BarRoot, { Background });\n"],"file":"Bar.js"}
1
+ {"version":3,"sources":["../../src/Bar.js"],"names":["React","transition","Component","sstyled","uniqueIDEnhancement","createElement","ClipPath","getBandwidth","roundedPath","BarRoot","props","index","asProps","x","data","value","duration","uid","selectRect","selection","selectAll","selectRectNode","node","getAttribute","attr","animationBar","d","i","SBar","Element","styles","color","y","y0","scale","hide","offset","r","widthProps","width","xScale","yScale","barY","Math","max","barX","height","abs","min","domain","dSvg","getRect","radius","Array","isArray","position","size","map","renderBar","bind","style","Background","SBackground","yRange","range","bandwidth"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { transition } from 'd3-transition';\nimport { Component, sstyled } from '@semcore/core';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\nimport createElement from './createElement';\nimport ClipPath from './ClipPath';\nimport { getBandwidth, roundedPath } from './utils';\n\nimport style from './style/bar.shadow.css';\n\nclass BarRoot extends Component {\n static displayName = 'Bar';\n static style = style;\n static enhance = [uniqueIDEnhancement()];\n\n static defaultProps = {\n color: '#50aef4',\n offset: [0, 0],\n duration: 500,\n r: 2,\n };\n\n getBackgroundProps(props, index) {\n const { x, data } = this.asProps;\n return {\n value: data[index][x],\n };\n }\n\n animationBar() {\n const { duration, uid } = this.asProps;\n const selectRect = transition()\n .selection()\n .selectAll(`#${uid} rect`);\n const selectRectNode = selectRect.node();\n\n if (duration > 0 && selectRectNode && selectRectNode.getAttribute('y') !== '0') {\n selectRect\n .transition()\n .duration(duration)\n .attr('y', 0);\n }\n }\n\n componentDidUpdate() {\n this.animationBar();\n }\n\n componentDidMount() {\n this.animationBar();\n }\n\n renderBar(d, i) {\n const SBar = this.Element;\n const {\n styles,\n color,\n x,\n y,\n y0,\n scale,\n hide,\n offset,\n duration,\n uid,\n r,\n width: widthProps,\n } = this.asProps;\n\n const [xScale, yScale] = scale;\n const barY = yScale(Math.max(d[y0] ?? 0, d[y])) + offset[1];\n const barX = xScale(d[x]) + offset[0];\n const height = Math.abs(\n yScale(d[y]) - Math.min(yScale(yScale.domain()[0]), yScale(d[y0] ?? 0)),\n );\n const width = widthProps || getBandwidth(xScale);\n const dSvg = getRect({\n x: barX,\n y: barY,\n width,\n height,\n radius: Array.isArray(r) ? r[i] : r,\n position: d[y] > 0 ? 'top' : 'bottom',\n });\n\n return sstyled(styles)(\n <SBar\n key={`bar-${i}`}\n render=\"path\"\n clipPath={`url(#${uid})`}\n __excludeProps={['data', 'scale', 'value']}\n childrenPosition=\"above\"\n value={d}\n index={i}\n hide={hide}\n color={color}\n x={barX}\n y={barY}\n width={width}\n height={height}\n d={dSvg}\n use:duration={`${duration}ms`}\n />,\n );\n }\n render() {\n const { data, uid, size, duration } = this.asProps;\n return (\n <>\n {data.map(this.renderBar.bind(this))}\n {duration && (\n <ClipPath\n key={`${uid}-animation`}\n id={uid}\n x=\"0\"\n y={size[1]}\n width={size[0]}\n height={`${size[1]}px`}\n />\n )}\n </>\n );\n }\n}\n\nfunction Background(props) {\n const { Element: SBackground, styles, scale, value } = props;\n\n const [xScale, yScale] = scale;\n const yRange = yScale.range();\n\n return sstyled(styles)(\n <SBackground\n render=\"rect\"\n childrenPosition=\"above\"\n width={xScale.bandwidth()}\n height={yRange[0] - yRange[1]}\n x={xScale(value)}\n y={yRange[1]}\n />,\n );\n}\n\nfunction getRect({ x, y, width, height, radius, position }) {\n if (height <= radius) return '';\n if (radius) {\n if (position === 'top')\n return roundedPath(x, y, width, height, radius, true, true, false, false);\n return roundedPath(x, y, width, height, radius, false, false, true, true);\n }\n return roundedPath(x, y, width, height, radius);\n}\n\nexport default createElement(BarRoot, { Background });\n"],"file":"Bar.js"}
package/lib/es6/Donut.js CHANGED
@@ -28,14 +28,14 @@ var style = (
28
28
  /*__reshadow_css_start__*/
29
29
  _sstyled.insert(
30
30
  /*__inner_css_start__*/
31
- ".___SPie_101rw_gg_{stroke:#fff;fill:var(--color_3mch97)}.___SLabel_101rw_gg_{text-anchor:middle;vertical-anchor:middle}"
31
+ ".___SPie_1ar8h_gg_{stroke:#fff;fill:var(--color_3mch97)}.___SLabel_1ar8h_gg_{text-anchor:middle;vertical-anchor:middle}"
32
32
  /*__inner_css_end__*/
33
33
  , "3mch97_gg_")
34
34
  /*__reshadow_css_end__*/
35
35
  , {
36
- "__SPie": "___SPie_101rw_gg_",
36
+ "__SPie": "___SPie_1ar8h_gg_",
37
37
  "--color": "--color_3mch97",
38
- "__SLabel": "___SLabel_101rw_gg_"
38
+ "__SLabel": "___SLabel_1ar8h_gg_"
39
39
  });
40
40
  var DEFAULT_INSTANCE = Symbol('DEFAULT_INSTANCE');
41
41
 
package/lib/es6/Dots.js CHANGED
@@ -7,22 +7,23 @@ import { sstyled } from '@semcore/core';
7
7
  import { eventToPoint, invert } from './utils';
8
8
  import createElement from './createElement';
9
9
  import { FadeInOut } from '@semcore/animation';
10
+ import trottle from '@semcore/utils/lib/rafTrottle';
10
11
 
11
12
  /*__reshadow-styles__:"./style/dot.shadow.css"*/
12
13
  var style = (
13
14
  /*__reshadow_css_start__*/
14
15
  _sstyled.insert(
15
16
  /*__inner_css_start__*/
16
- ".___SDot_w2tzj_gg_{stroke-width:2px;stroke:#fff;r:6px;fill:var(--color_8nea8t);transition-property:cx,cy;transition-duration:var(--duration_8nea8t);transition-timing-function:ease-in-out}.___SDot_w2tzj_gg_.__hide_w2tzj_gg_{display:none}.___SDot_w2tzj_gg_.__active_w2tzj_gg_{r:8px}"
17
+ ".___SDot_vvre7_gg_{stroke-width:2px;stroke:#fff;r:6px;fill:var(--color_8nea8t);transition-property:cx,cy;transition-duration:var(--duration_8nea8t);transition-timing-function:ease-in-out}.___SDot_vvre7_gg_.__hide_vvre7_gg_{display:none}.___SDot_vvre7_gg_.__active_vvre7_gg_{r:8px}"
17
18
  /*__inner_css_end__*/
18
19
  , "8nea8t_gg_")
19
20
  /*__reshadow_css_end__*/
20
21
  , {
21
- "__SDot": "___SDot_w2tzj_gg_",
22
+ "__SDot": "___SDot_vvre7_gg_",
22
23
  "--color": "--color_8nea8t",
23
24
  "--duration": "--duration_8nea8t",
24
- "_hide": "__hide_w2tzj_gg_",
25
- "_active": "__active_w2tzj_gg_"
25
+ "_hide": "__hide_vvre7_gg_",
26
+ "_active": "__active_vvre7_gg_"
26
27
  });
27
28
 
28
29
  function Dots(props) {
@@ -49,7 +50,7 @@ function Dots(props) {
49
50
  activeIndex = _useState2[0],
50
51
  setActiveIndex = _useState2[1];
51
52
 
52
- var handlerMouseMoveRoot = useCallback(function (e) {
53
+ var handlerMouseMoveRoot = useCallback(trottle(function (e) {
53
54
  var _scale = _slicedToArray(scale, 1),
54
55
  xScale = _scale[0];
55
56
 
@@ -59,10 +60,10 @@ function Dots(props) {
59
60
 
60
61
  var vX = invert(xScale, pX);
61
62
  setActiveIndex(bisect(data, vX));
62
- }, [scale, data]);
63
- var handlerMouseLeaveRoot = useCallback(function () {
63
+ }), [scale, data]);
64
+ var handlerMouseLeaveRoot = useCallback(trottle(function () {
64
65
  setActiveIndex(null);
65
- }, []);
66
+ }), []);
66
67
  useEffect(function () {
67
68
  var unsubscribeMouseMoveRoot = eventEmitter.subscribe('onMouseMoveChart', function (e) {
68
69
  e.persist();
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Dots.js"],"names":["bisector","React","useCallback","useEffect","useState","sstyled","eventToPoint","invert","createElement","FadeInOut","Dots","props","SDot","Element","styles","data","color","d3","x","y","eventEmitter","display","hide","rootRef","scale","duration","bisect","d","center","activeIndex","setActiveIndex","handlerMouseMoveRoot","e","xScale","current","pX","vX","handlerMouseLeaveRoot","unsubscribeMouseMoveRoot","subscribe","persist","unsubscribeMouseLeaveRoot","renderCircle","forwardRef","ref","reduce","acc","i","isPrev","defined","isNext","active","push","style"],"mappings":"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","sourcesContent":["import { bisector } from 'd3-array';\nimport React, { useCallback, useEffect, useState } from 'react';\nimport { sstyled } from '@semcore/core';\nimport { eventToPoint, invert } from './utils';\nimport createElement from './createElement';\nimport { FadeInOut } from '@semcore/animation';\n\nimport style from './style/dot.shadow.css';\n\nfunction Dots(props) {\n const {\n Element: SDot,\n styles,\n data,\n color,\n d3,\n x,\n y,\n eventEmitter,\n display,\n hide,\n rootRef,\n scale,\n duration = 500,\n } = props;\n const bisect = bisector((d) => d[x]).center;\n const [activeIndex, setActiveIndex] = useState(null);\n\n const handlerMouseMoveRoot = useCallback(\n (e) => {\n const [xScale] = scale;\n const [pX] = eventToPoint(e, rootRef.current);\n const vX = invert(xScale, pX);\n setActiveIndex(bisect(data, vX));\n },\n [scale, data],\n );\n\n const handlerMouseLeaveRoot = useCallback(() => {\n setActiveIndex(null);\n }, []);\n\n useEffect(() => {\n const unsubscribeMouseMoveRoot = eventEmitter.subscribe('onMouseMoveChart', (e) => {\n e.persist();\n handlerMouseMoveRoot(e);\n });\n\n const unsubscribeMouseLeaveRoot = eventEmitter.subscribe(\n 'onMouseLeaveChart',\n handlerMouseLeaveRoot,\n );\n\n return () => {\n unsubscribeMouseMoveRoot();\n unsubscribeMouseLeaveRoot();\n };\n }, [eventEmitter, data, x, y]);\n\n const renderCircle = useCallback(\n React.forwardRef((props, ref) => {\n return <FadeInOut ref={ref} tag=\"circle\" {...props} />;\n }),\n [props],\n );\n\n return data.reduce((acc, d, i) => {\n const isPrev = d3.defined()(data[i - 1] || {});\n const isNext = d3.defined()(data[i + 1] || {});\n const active = i === activeIndex;\n if (!d3.defined()(d)) return acc;\n acc.push(\n sstyled(styles)(\n <SDot\n key={i}\n render={renderCircle}\n visible={display || i === activeIndex || (!isPrev && !isNext)}\n __excludeProps={['data', 'scale', 'value', 'display']}\n value={d}\n index={i}\n cx={d3.x()(d)}\n cy={d3.y()(d)}\n active={active}\n hide={hide}\n color={color}\n use:duration={`${duration}ms`}\n />,\n ),\n );\n return acc;\n }, []);\n}\n\nDots.style = style;\n\nexport default createElement(Dots);\n"],"file":"Dots.js"}
1
+ {"version":3,"sources":["../../src/Dots.js"],"names":["bisector","React","useCallback","useEffect","useState","sstyled","eventToPoint","invert","createElement","FadeInOut","trottle","Dots","props","SDot","Element","styles","data","color","d3","x","y","eventEmitter","display","hide","rootRef","scale","duration","bisect","d","center","activeIndex","setActiveIndex","handlerMouseMoveRoot","e","xScale","current","pX","vX","handlerMouseLeaveRoot","unsubscribeMouseMoveRoot","subscribe","persist","unsubscribeMouseLeaveRoot","renderCircle","forwardRef","ref","reduce","acc","i","isPrev","defined","isNext","active","push","style"],"mappings":"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","sourcesContent":["import { bisector } from 'd3-array';\nimport React, { useCallback, useEffect, useState } from 'react';\nimport { sstyled } from '@semcore/core';\nimport { eventToPoint, invert } from './utils';\nimport createElement from './createElement';\nimport { FadeInOut } from '@semcore/animation';\nimport trottle from '@semcore/utils/lib/rafTrottle';\n\nimport style from './style/dot.shadow.css';\n\nfunction Dots(props) {\n const {\n Element: SDot,\n styles,\n data,\n color,\n d3,\n x,\n y,\n eventEmitter,\n display,\n hide,\n rootRef,\n scale,\n duration = 500,\n } = props;\n const bisect = bisector((d) => d[x]).center;\n const [activeIndex, setActiveIndex] = useState(null);\n\n const handlerMouseMoveRoot = useCallback(\n trottle((e) => {\n const [xScale] = scale;\n const [pX] = eventToPoint(e, rootRef.current);\n const vX = invert(xScale, pX);\n setActiveIndex(bisect(data, vX));\n }),\n [scale, data],\n );\n\n const handlerMouseLeaveRoot = useCallback(\n trottle(() => {\n setActiveIndex(null);\n }),\n [],\n );\n\n useEffect(() => {\n const unsubscribeMouseMoveRoot = eventEmitter.subscribe('onMouseMoveChart', (e) => {\n e.persist();\n handlerMouseMoveRoot(e);\n });\n\n const unsubscribeMouseLeaveRoot = eventEmitter.subscribe(\n 'onMouseLeaveChart',\n handlerMouseLeaveRoot,\n );\n\n return () => {\n unsubscribeMouseMoveRoot();\n unsubscribeMouseLeaveRoot();\n };\n }, [eventEmitter, data, x, y]);\n\n const renderCircle = useCallback(\n React.forwardRef((props, ref) => {\n return <FadeInOut ref={ref} tag=\"circle\" {...props} />;\n }),\n [props],\n );\n\n return data.reduce((acc, d, i) => {\n const isPrev = d3.defined()(data[i - 1] || {});\n const isNext = d3.defined()(data[i + 1] || {});\n const active = i === activeIndex;\n if (!d3.defined()(d)) return acc;\n acc.push(\n sstyled(styles)(\n <SDot\n key={i}\n render={renderCircle}\n visible={display || i === activeIndex || (!isPrev && !isNext)}\n __excludeProps={['data', 'scale', 'value', 'display']}\n value={d}\n index={i}\n cx={d3.x()(d)}\n cy={d3.y()(d)}\n active={active}\n hide={hide}\n color={color}\n use:duration={`${duration}ms`}\n />,\n ),\n );\n return acc;\n }, []);\n}\n\nDots.style = style;\n\nexport default createElement(Dots);\n"],"file":"Dots.js"}
@@ -22,14 +22,14 @@ var _ref = (
22
22
  /*__reshadow_css_start__*/
23
23
  __css__(
24
24
  /*__inner_css_start__*/
25
- ".___SBar_za91s_gg_{fill:var(--color);transition-property:height,width,y;transition-duration:var(--duration);transition-timing-function:ease-in-out}.___SBar_za91s_gg_.__hide_za91s_gg_{display:none}.___SBackground_za91s_gg_{fill:#e4ecf1}"
25
+ ".___SBar_1e14r_gg_{fill:var(--color);transition-property:height,width,y;transition-duration:var(--duration);transition-timing-function:ease-in-out}.___SBar_1e14r_gg_.__hide_1e14r_gg_{display:none}.___SBackground_1e14r_gg_{fill:#e4ecf1}"
26
26
  /*__inner_css_end__*/
27
- , "7vf7ud_gg_")
27
+ , "1oqq379_gg_")
28
28
  /*__reshadow_css_end__*/
29
29
  , {
30
- "__SBar": "___SBar_za91s_gg_",
31
- "_hide": "__hide_za91s_gg_",
32
- "__SBackground": "___SBackground_za91s_gg_"
30
+ "__SBar": "___SBar_1e14r_gg_",
31
+ "_hide": "__hide_1e14r_gg_",
32
+ "__SBackground": "___SBackground_1e14r_gg_"
33
33
  }),
34
34
  style = _extends({}, _ref);
35
35
 
@@ -56,11 +56,11 @@ var GroupBarRoot = /*#__PURE__*/function (_Component) {
56
56
  var xyScale = x ? scale[0] : scale[1];
57
57
  if (scaleGroup) return scaleGroup;
58
58
  var domain = React.Children.toArray(getOriginChildren(Children)).reduce(function (acc, child) {
59
- if ( /*#__PURE__*/React.isValidElement(child) && child.type === GroupBar.Bar) {
59
+ if ( /*#__PURE__*/React.isValidElement(child) && child.type === GroupBar.Bar && !child.props.hide) {
60
60
  acc.push(child.props.y);
61
61
  }
62
62
 
63
- if ( /*#__PURE__*/React.isValidElement(child) && child.type === GroupBar.HorizontalBar) {
63
+ if ( /*#__PURE__*/React.isValidElement(child) && child.type === GroupBar.HorizontalBar && !child.props.hide) {
64
64
  acc.push(child.props.x);
65
65
  }
66
66
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/GroupBar.js"],"names":["React","Component","getOriginChildren","createElement","Bar","HorizontalBar","GroupBarRoot","asProps","Children","scale","scaleGroup","x","xyScale","domain","toArray","reduce","acc","child","isValidElement","type","GroupBar","push","props","y","copy","range","bandwidth","paddingInner","paddingOuter","offset","width","height","Element","getScaleGroup","style"],"mappings":"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","sourcesContent":["import React from 'react';\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\nclass GroupBarRoot extends Component {\n static displayName = 'GroupBar';\n\n static style = style;\n\n getScaleGroup() {\n const { Children, scale, scaleGroup, x } = this.asProps;\n // TODO: классный костыль =)\n const xyScale = x ? scale[0] : scale[1];\n\n if (scaleGroup) return scaleGroup;\n\n const domain = React.Children.toArray(getOriginChildren(Children)).reduce((acc, child) => {\n if (React.isValidElement(child) && child.type === GroupBar.Bar) {\n acc.push(child.props.y);\n }\n if (React.isValidElement(child) && child.type === GroupBar.HorizontalBar) {\n acc.push(child.props.x);\n }\n return acc;\n }, []);\n\n return xyScale\n .copy()\n .range([0, xyScale.bandwidth()])\n .domain(domain)\n .paddingInner(xyScale.paddingOuter())\n .paddingOuter(0);\n }\n\n getBarProps({ y }) {\n const { x } = this.asProps;\n\n return {\n offset: [this.scaleGroup(y), 0],\n width: this.scaleGroup.bandwidth(),\n x,\n };\n }\n\n getHorizontalBarProps({ x }) {\n const { y } = this.asProps;\n\n return {\n offset: [0, this.scaleGroup(x)],\n height: this.scaleGroup.bandwidth(),\n y,\n };\n }\n\n render() {\n const Element = this.Element;\n this.scaleGroup = this.getScaleGroup();\n return <Element render=\"g\" childrenPosition=\"inside\" scaleGroup={this.scaleGroup} />;\n }\n}\n\nconst GroupBar = createElement(GroupBarRoot, {\n Bar,\n HorizontalBar,\n});\n\nexport default GroupBar;\n"],"file":"GroupBar.js"}
1
+ {"version":3,"sources":["../../src/GroupBar.js"],"names":["React","Component","getOriginChildren","createElement","Bar","HorizontalBar","GroupBarRoot","asProps","Children","scale","scaleGroup","x","xyScale","domain","toArray","reduce","acc","child","isValidElement","type","GroupBar","props","hide","push","y","copy","range","bandwidth","paddingInner","paddingOuter","offset","width","height","Element","getScaleGroup","style"],"mappings":"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","sourcesContent":["import React from 'react';\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\nclass GroupBarRoot extends Component {\n static displayName = 'GroupBar';\n\n static style = style;\n\n getScaleGroup() {\n const { Children, scale, scaleGroup, x } = this.asProps;\n // TODO: классный костыль =)\n const xyScale = x ? scale[0] : scale[1];\n\n if (scaleGroup) return scaleGroup;\n\n const domain = React.Children.toArray(getOriginChildren(Children)).reduce((acc, child) => {\n if (React.isValidElement(child) && child.type === GroupBar.Bar && !child.props.hide) {\n acc.push(child.props.y);\n }\n if (\n React.isValidElement(child) &&\n child.type === GroupBar.HorizontalBar &&\n !child.props.hide\n ) {\n acc.push(child.props.x);\n }\n return acc;\n }, []);\n\n return xyScale\n .copy()\n .range([0, xyScale.bandwidth()])\n .domain(domain)\n .paddingInner(xyScale.paddingOuter())\n .paddingOuter(0);\n }\n\n getBarProps({ y }) {\n const { x } = this.asProps;\n\n return {\n offset: [this.scaleGroup(y), 0],\n width: this.scaleGroup.bandwidth(),\n x,\n };\n }\n\n getHorizontalBarProps({ x }) {\n const { y } = this.asProps;\n\n return {\n offset: [0, this.scaleGroup(x)],\n height: this.scaleGroup.bandwidth(),\n y,\n };\n }\n\n render() {\n const Element = this.Element;\n this.scaleGroup = this.getScaleGroup();\n return <Element render=\"g\" childrenPosition=\"inside\" scaleGroup={this.scaleGroup} />;\n }\n}\n\nconst GroupBar = createElement(GroupBarRoot, {\n Bar,\n HorizontalBar,\n});\n\nexport default GroupBar;\n"],"file":"GroupBar.js"}
@@ -23,16 +23,16 @@ var style = (
23
23
  /*__reshadow_css_start__*/
24
24
  _sstyled.insert(
25
25
  /*__inner_css_start__*/
26
- ".___SBar_17amb_gg_{fill:var(--color_10kcl1b);transition-property:height,width,y;transition-duration:var(--duration_10kcl1b);transition-timing-function:ease-in-out}.___SBar_17amb_gg_.__hide_17amb_gg_{display:none}.___SBackground_17amb_gg_{fill:#e4ecf1}"
26
+ ".___SBar_1u1r9_gg_{fill:var(--color_10kcl1b);transition-property:height,width,y;transition-duration:var(--duration_10kcl1b);transition-timing-function:ease-in-out}.___SBar_1u1r9_gg_.__hide_1u1r9_gg_{display:none}.___SBackground_1u1r9_gg_{fill:#e4ecf1}"
27
27
  /*__inner_css_end__*/
28
28
  , "10kcl1b_gg_")
29
29
  /*__reshadow_css_end__*/
30
30
  , {
31
- "__SBar": "___SBar_17amb_gg_",
31
+ "__SBar": "___SBar_1u1r9_gg_",
32
32
  "--color": "--color_10kcl1b",
33
33
  "--duration": "--duration_10kcl1b",
34
- "_hide": "__hide_17amb_gg_",
35
- "__SBackground": "___SBackground_17amb_gg_"
34
+ "_hide": "__hide_1u1r9_gg_",
35
+ "__SBackground": "___SBackground_1u1r9_gg_"
36
36
  });
37
37
 
38
38
  var HorizontalBarRoot = /*#__PURE__*/function (_Component) {
@@ -86,7 +86,14 @@ var HorizontalBarRoot = /*#__PURE__*/function (_Component) {
86
86
  var barX = xScale(Math.min((_d$x = d[x0]) !== null && _d$x !== void 0 ? _d$x : 0, d[x])) + offset[0];
87
87
  var height = heightProps || getBandwidth(yScale);
88
88
  var width = Math.abs(xScale(d[x]) - Math.max(xScale(xScale.domain()[0]), xScale((_d$x2 = d[x0]) !== null && _d$x2 !== void 0 ? _d$x2 : 0)));
89
- var isRounded = r !== 0;
89
+ var dSvg = getHorizontalRect({
90
+ x: barX,
91
+ y: barY,
92
+ width: width,
93
+ height: height,
94
+ radius: Array.isArray(r) ? r[i] : r,
95
+ position: d[x] > 0 ? 'right' : 'left'
96
+ });
90
97
  return _ref = sstyled(styles), /*#__PURE__*/React.createElement(SBar, _ref.cn("SBar", {
91
98
  "key": "horizontal-bar-".concat(i),
92
99
  "render": "path",
@@ -97,14 +104,11 @@ var HorizontalBarRoot = /*#__PURE__*/function (_Component) {
97
104
  "index": i,
98
105
  "hide": hide,
99
106
  "color": color,
100
- "d": getHorizontalRect({
101
- x: isRounded ? d[x] > 0 ? barX : barX - r : barX,
102
- y: barY,
103
- width: isRounded ? width + r : width,
104
- height: height,
105
- radius: r,
106
- position: d[x] > 0 ? 'right' : 'left'
107
- }),
107
+ "x": barX,
108
+ "y": barY,
109
+ "width": width,
110
+ "height": height,
111
+ "d": dSvg,
108
112
  "use:duration": "".concat(duration, "ms"),
109
113
  "onMouseMove": onMouseMove,
110
114
  "onMouseLeave": onMouseLeave
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/HorizontalBar.js"],"names":["React","Component","sstyled","uniqueIDEnhancement","createElement","ClipPath","getBandwidth","roundedPath","HorizontalBarRoot","props","index","asProps","data","y","value","d","i","SBar","Element","styles","color","x","x0","scale","hide","offset","uid","duration","r","heightProps","height","onMouseMove","onMouseLeave","xScale","yScale","barY","barX","Math","min","width","abs","max","domain","isRounded","getHorizontalRect","radius","position","size","map","renderBar","bind","rect","setAttribute","style","Background","SBackground","xRange","range","bandwidth"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Component, sstyled } from '@semcore/core';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\nimport createElement from './createElement';\nimport ClipPath from './ClipPath';\nimport { getBandwidth, roundedPath } from './utils';\n\nimport style from './style/bar.shadow.css';\n\nclass HorizontalBarRoot extends Component {\n static displayName = 'HorizontalBar';\n static enhance = [uniqueIDEnhancement()];\n static style = style;\n\n static defaultProps = {\n color: '#50aef4',\n offset: [0, 0],\n duration: 500,\n r: 2,\n };\n\n getBackgroundProps(props, index) {\n const { data, y } = this.asProps;\n return {\n value: data[index][y],\n };\n }\n\n renderBar(d, i) {\n const SBar = this.Element;\n const {\n styles,\n color,\n x,\n x0,\n y,\n scale,\n hide,\n offset,\n uid,\n duration,\n r,\n height: heightProps,\n onMouseMove,\n onMouseLeave,\n } = this.asProps;\n const [xScale, yScale] = scale;\n const barY = yScale(d[y]) + offset[1];\n const barX = xScale(Math.min(d[x0] ?? 0, d[x])) + offset[0];\n const height = heightProps || getBandwidth(yScale);\n const width = Math.abs(xScale(d[x]) - Math.max(xScale(xScale.domain()[0]), xScale(d[x0] ?? 0)));\n const isRounded = r !== 0;\n\n return sstyled(styles)(\n <SBar\n key={`horizontal-bar-${i}`}\n render=\"path\"\n clipPath={`url(#${uid})`}\n __excludeProps={['data', 'scale', 'value']}\n childrenPosition=\"above\"\n value={d}\n index={i}\n hide={hide}\n color={color}\n d={getHorizontalRect({\n x: isRounded ? (d[x] > 0 ? barX : barX - r) : barX,\n y: barY,\n width: isRounded ? width + r : width,\n height,\n radius: r,\n position: d[x] > 0 ? 'right' : 'left',\n })}\n use:duration={`${duration}ms`}\n onMouseMove={onMouseMove}\n onMouseLeave={onMouseLeave}\n />,\n );\n }\n\n render() {\n const { data, uid, size, duration } = this.asProps;\n\n return (\n <>\n {data.map(this.renderBar.bind(this))}\n {duration && (\n <ClipPath\n setAttributeTag={(rect) => {\n rect.setAttribute('width', size[0]);\n }}\n id={uid}\n x=\"0\"\n y=\"0\"\n width={0}\n height={size[1]}\n transition={`width ${duration}ms ease-in-out`}\n />\n )}\n </>\n );\n }\n}\n\nfunction Background(props) {\n const { Element: SBackground, styles, scale, value } = props;\n const [xScale, yScale] = scale;\n const xRange = xScale.range();\n\n return sstyled(styles)(\n <SBackground\n render=\"rect\"\n childrenPosition=\"above\"\n width={xRange[1] - xRange[0]}\n height={yScale.bandwidth()}\n x={xRange[0]}\n y={yScale(value)}\n />,\n );\n}\n\nfunction getHorizontalRect({ x, y, width, height, radius, position }) {\n if (width <= radius) return '';\n if (radius) {\n if (position === 'right')\n return roundedPath(x, y, width, height, radius, false, true, false, true);\n return roundedPath(x, y, width, height, radius, true, false, true, false);\n }\n return roundedPath(x, y, width, height, radius);\n}\n\nexport default createElement(HorizontalBarRoot, { Background });\n"],"file":"HorizontalBar.js"}
1
+ {"version":3,"sources":["../../src/HorizontalBar.js"],"names":["React","Component","sstyled","uniqueIDEnhancement","createElement","ClipPath","getBandwidth","roundedPath","HorizontalBarRoot","props","index","asProps","data","y","value","d","i","SBar","Element","styles","color","x","x0","scale","hide","offset","uid","duration","r","heightProps","height","onMouseMove","onMouseLeave","xScale","yScale","barY","barX","Math","min","width","abs","max","domain","dSvg","getHorizontalRect","radius","Array","isArray","position","size","map","renderBar","bind","rect","setAttribute","style","Background","SBackground","xRange","range","bandwidth"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Component, sstyled } from '@semcore/core';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\nimport createElement from './createElement';\nimport ClipPath from './ClipPath';\nimport { getBandwidth, roundedPath } from './utils';\n\nimport style from './style/bar.shadow.css';\n\nclass HorizontalBarRoot extends Component {\n static displayName = 'HorizontalBar';\n static enhance = [uniqueIDEnhancement()];\n static style = style;\n\n static defaultProps = {\n color: '#50aef4',\n offset: [0, 0],\n duration: 500,\n r: 2,\n };\n\n getBackgroundProps(props, index) {\n const { data, y } = this.asProps;\n return {\n value: data[index][y],\n };\n }\n\n renderBar(d, i) {\n const SBar = this.Element;\n const {\n styles,\n color,\n x,\n x0,\n y,\n scale,\n hide,\n offset,\n uid,\n duration,\n r,\n height: heightProps,\n onMouseMove,\n onMouseLeave,\n } = this.asProps;\n\n const [xScale, yScale] = scale;\n const barY = yScale(d[y]) + offset[1];\n const barX = xScale(Math.min(d[x0] ?? 0, d[x])) + offset[0];\n const height = heightProps || getBandwidth(yScale);\n const width = Math.abs(xScale(d[x]) - Math.max(xScale(xScale.domain()[0]), xScale(d[x0] ?? 0)));\n const dSvg = getHorizontalRect({\n x: barX,\n y: barY,\n width,\n height,\n radius: Array.isArray(r) ? r[i] : r,\n position: d[x] > 0 ? 'right' : 'left',\n });\n\n return sstyled(styles)(\n <SBar\n key={`horizontal-bar-${i}`}\n render=\"path\"\n clipPath={`url(#${uid})`}\n __excludeProps={['data', 'scale', 'value']}\n childrenPosition=\"above\"\n value={d}\n index={i}\n hide={hide}\n color={color}\n x={barX}\n y={barY}\n width={width}\n height={height}\n d={dSvg}\n use:duration={`${duration}ms`}\n onMouseMove={onMouseMove}\n onMouseLeave={onMouseLeave}\n />,\n );\n }\n\n render() {\n const { data, uid, size, duration } = this.asProps;\n\n return (\n <>\n {data.map(this.renderBar.bind(this))}\n {duration && (\n <ClipPath\n setAttributeTag={(rect) => {\n rect.setAttribute('width', size[0]);\n }}\n id={uid}\n x=\"0\"\n y=\"0\"\n width={0}\n height={size[1]}\n transition={`width ${duration}ms ease-in-out`}\n />\n )}\n </>\n );\n }\n}\n\nfunction Background(props) {\n const { Element: SBackground, styles, scale, value } = props;\n const [xScale, yScale] = scale;\n const xRange = xScale.range();\n\n return sstyled(styles)(\n <SBackground\n render=\"rect\"\n childrenPosition=\"above\"\n width={xRange[1] - xRange[0]}\n height={yScale.bandwidth()}\n x={xRange[0]}\n y={yScale(value)}\n />,\n );\n}\n\nfunction getHorizontalRect({ x, y, width, height, radius, position }) {\n if (width <= radius) return '';\n if (radius) {\n if (position === 'right')\n return roundedPath(x, y, width, height, radius, false, true, false, true);\n return roundedPath(x, y, width, height, radius, true, false, true, false);\n }\n return roundedPath(x, y, width, height, radius);\n}\n\nexport default createElement(HorizontalBarRoot, { Background });\n"],"file":"HorizontalBar.js"}
package/lib/es6/Hover.js CHANGED
@@ -17,19 +17,20 @@ import { Component, sstyled } from '@semcore/core';
17
17
  import createElement from './createElement';
18
18
  import canUseDOM from '@semcore/utils/lib/canUseDOM';
19
19
  import { scaleOfBandwidth, getIndexFromData, eventToPoint, invert, CONSTANT } from './utils';
20
+ import trottle from '@semcore/utils/lib/rafTrottle';
20
21
 
21
22
  /*__reshadow-styles__:"./style/hover.shadow.css"*/
22
23
  var style = (
23
24
  /*__reshadow_css_start__*/
24
25
  _sstyled.insert(
25
26
  /*__inner_css_start__*/
26
- ".___SHoverLine_8imgf_gg_{stroke:#a6b0b3}.___SHoverRect_8imgf_gg_{fill:rgba(152,170,175,.3)}"
27
+ ".___SHoverLine_wqcps_gg_{stroke:#a6b0b3}.___SHoverRect_wqcps_gg_{fill:rgba(152,170,175,.3)}"
27
28
  /*__inner_css_end__*/
28
29
  , "1tjsi7e_gg_")
29
30
  /*__reshadow_css_end__*/
30
31
  , {
31
- "__SHoverLine": "___SHoverLine_8imgf_gg_",
32
- "__SHoverRect": "___SHoverRect_8imgf_gg_"
32
+ "__SHoverLine": "___SHoverLine_wqcps_gg_",
33
+ "__SHoverRect": "___SHoverRect_wqcps_gg_"
33
34
  });
34
35
 
35
36
  var Hover = /*#__PURE__*/function (_Component) {
@@ -55,7 +56,7 @@ var Hover = /*#__PURE__*/function (_Component) {
55
56
 
56
57
  _defineProperty(_assertThisInitialized(_this), "virtualElement", canUseDOM() ? document.createElement('div') : {});
57
58
 
58
- _defineProperty(_assertThisInitialized(_this), "handlerMouseMoveRoot", function (e) {
59
+ _defineProperty(_assertThisInitialized(_this), "handlerMouseMoveRoot", trottle(function (e) {
59
60
  var _this$asProps = _this.asProps,
60
61
  eventEmitter = _this$asProps.eventEmitter,
61
62
  data = _this$asProps.data,
@@ -89,9 +90,9 @@ var Hover = /*#__PURE__*/function (_Component) {
89
90
  _this.setState(state, function () {
90
91
  eventEmitter.emit('onTooltipVisible', xIndex !== null || yIndex !== null, state, _this.virtualElement);
91
92
  });
92
- });
93
+ }));
93
94
 
94
- _defineProperty(_assertThisInitialized(_this), "handlerMouseLeaveRoot", function () {
95
+ _defineProperty(_assertThisInitialized(_this), "handlerMouseLeaveRoot", trottle(function () {
95
96
  var state = {
96
97
  xIndex: null,
97
98
  yIndex: null
@@ -100,7 +101,7 @@ var Hover = /*#__PURE__*/function (_Component) {
100
101
  _this.setState(state, function () {
101
102
  _this.asProps.eventEmitter.emit('onTooltipVisible', false, state);
102
103
  });
103
- });
104
+ }));
104
105
 
105
106
  return _this;
106
107
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Hover.js"],"names":["React","Component","sstyled","createElement","canUseDOM","scaleOfBandwidth","getIndexFromData","eventToPoint","invert","CONSTANT","Hover","xIndex","yIndex","document","e","asProps","eventEmitter","data","scale","x","y","rootRef","clientX","clientY","xScale","yScale","current","pX","pY","vX","vY","undefined","state","virtualElement","getBoundingClientRect","generateGetBoundingClientRect","VIRTUAL_ELEMENT","setState","emit","width","height","top","right","bottom","left","unsubscribeMouseMoveRoot","subscribe","persist","handlerMouseMoveRoot","unsubscribeMouseLeaveRoot","handlerMouseLeaveRoot","style","HoverLineRoot","SHoverLine","Element","styles","xRange","range","yRange","x1","y1","HoverRectRoot","SHoverRect","step","paddingInner","HoverLine","HoverRect"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Component, sstyled } from '@semcore/core';\nimport createElement from './createElement';\nimport canUseDOM from '@semcore/utils/lib/canUseDOM';\nimport { scaleOfBandwidth, getIndexFromData, eventToPoint, invert, CONSTANT } from './utils';\n\nimport style from './style/hover.shadow.css';\n\nclass Hover extends Component {\n static style = style;\n\n state = {\n xIndex: null,\n yIndex: null,\n };\n\n virtualElement = canUseDOM() ? document.createElement('div') : {};\n\n generateGetBoundingClientRect(x = 0, y = 0) {\n return () => ({ width: 0, height: 0, top: y, right: x, bottom: y, left: x });\n }\n\n handlerMouseMoveRoot = (e) => {\n const { eventEmitter, data, scale, x, y, rootRef } = this.asProps;\n const { clientX, clientY } = e;\n const [xScale, yScale] = scale;\n const [pX, pY] = eventToPoint(e, rootRef.current);\n const vX = invert(xScale, pX);\n const vY = invert(yScale, pY);\n const xIndex =\n x === undefined || vX === undefined ? null : getIndexFromData(data, xScale, x, vX);\n const yIndex =\n y === undefined || vY === undefined ? null : getIndexFromData(data, yScale, y, vY);\n const state = { xIndex, yIndex };\n this.virtualElement.getBoundingClientRect = this.generateGetBoundingClientRect(\n clientX,\n clientY,\n );\n this.virtualElement[CONSTANT.VIRTUAL_ELEMENT] = true;\n\n this.setState(state, () => {\n eventEmitter.emit(\n 'onTooltipVisible',\n xIndex !== null || yIndex !== null,\n state,\n this.virtualElement,\n );\n });\n };\n\n handlerMouseLeaveRoot = () => {\n const state = {\n xIndex: null,\n yIndex: null,\n };\n this.setState(state, () => {\n this.asProps.eventEmitter.emit('onTooltipVisible', false, state);\n });\n };\n\n componentDidMount() {\n const { eventEmitter } = this.asProps;\n this.unsubscribeMouseMoveRoot = eventEmitter.subscribe('onMouseMoveChart', (e) => {\n e.persist();\n this.handlerMouseMoveRoot(e);\n });\n this.unsubscribeMouseLeaveRoot = eventEmitter.subscribe(\n 'onMouseLeaveChart',\n this.handlerMouseLeaveRoot,\n );\n }\n\n componentWillUnmount() {\n if (this.unsubscribeMouseMoveRoot) {\n this.unsubscribeMouseMoveRoot();\n }\n if (this.unsubscribeMouseLeaveRoot) {\n this.unsubscribeMouseLeaveRoot();\n }\n }\n}\n\nclass HoverLineRoot extends Hover {\n static displayName = 'HoverLine';\n\n render() {\n const SHoverLine = this.Element;\n const { styles, x, y, data, scale } = this.asProps;\n const { xIndex, yIndex } = this.state;\n const [xScale, yScale] = scale;\n\n const xRange = xScale.range();\n const yRange = yScale.range();\n const x1 = xIndex !== null ? scaleOfBandwidth(xScale, data[xIndex][x]) : undefined;\n const y1 = yIndex !== null ? scaleOfBandwidth(yScale, data[yIndex][y]) : undefined;\n\n return sstyled(styles)(\n <>\n {xIndex !== null ? (\n <SHoverLine render=\"line\" index={xIndex} x1={x1} y1={yRange[0]} x2={x1} y2={yRange[1]} />\n ) : null}\n {yIndex !== null ? (\n <SHoverLine render=\"line\" index={yIndex} x1={xRange[0]} y1={y1} x2={xRange[1]} y2={y1} />\n ) : null}\n </>,\n );\n }\n}\n\nclass HoverRectRoot extends Hover {\n static displayName = 'HoverRect';\n\n render() {\n const SHoverRect = this.Element;\n const { styles, x, y, data, scale } = this.asProps;\n const { xIndex, yIndex } = this.state;\n const [xScale, yScale] = scale;\n\n const xRange = xScale.range();\n const yRange = yScale.range();\n\n return sstyled(styles)(\n <>\n {xIndex !== null ? (\n <SHoverRect\n render=\"rect\"\n index={xIndex}\n width={xScale.step() - xScale.paddingInner() / 2}\n height={yRange[0] - yRange[1]}\n x={xScale(data[xIndex][x]) - (xScale.step() * xScale.paddingInner()) / 2}\n y={yRange[1]}\n />\n ) : null}\n {yIndex !== null ? (\n <SHoverRect\n render=\"rect\"\n index={yIndex}\n width={xRange[1] - xRange[0]}\n height={yScale.step() - yScale.paddingInner() / 2}\n x={xRange[0]}\n y={yScale(data[yIndex][y]) - (yScale.step() * yScale.paddingInner()) / 2}\n />\n ) : null}\n </>,\n );\n }\n}\n\nconst HoverLine = createElement(HoverLineRoot);\nconst HoverRect = createElement(HoverRectRoot);\n\nexport { HoverLine, HoverRect };\n"],"file":"Hover.js"}
1
+ {"version":3,"sources":["../../src/Hover.js"],"names":["React","Component","sstyled","createElement","canUseDOM","scaleOfBandwidth","getIndexFromData","eventToPoint","invert","CONSTANT","trottle","Hover","xIndex","yIndex","document","e","asProps","eventEmitter","data","scale","x","y","rootRef","clientX","clientY","xScale","yScale","current","pX","pY","vX","vY","undefined","state","virtualElement","getBoundingClientRect","generateGetBoundingClientRect","VIRTUAL_ELEMENT","setState","emit","width","height","top","right","bottom","left","unsubscribeMouseMoveRoot","subscribe","persist","handlerMouseMoveRoot","unsubscribeMouseLeaveRoot","handlerMouseLeaveRoot","style","HoverLineRoot","SHoverLine","Element","styles","xRange","range","yRange","x1","y1","HoverRectRoot","SHoverRect","step","paddingInner","HoverLine","HoverRect"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Component, sstyled } from '@semcore/core';\nimport createElement from './createElement';\nimport canUseDOM from '@semcore/utils/lib/canUseDOM';\nimport { scaleOfBandwidth, getIndexFromData, eventToPoint, invert, CONSTANT } from './utils';\nimport trottle from '@semcore/utils/lib/rafTrottle';\n\nimport style from './style/hover.shadow.css';\n\nclass Hover extends Component {\n static style = style;\n\n state = {\n xIndex: null,\n yIndex: null,\n };\n\n virtualElement = canUseDOM() ? document.createElement('div') : {};\n\n generateGetBoundingClientRect(x = 0, y = 0) {\n return () => ({ width: 0, height: 0, top: y, right: x, bottom: y, left: x });\n }\n\n handlerMouseMoveRoot = trottle((e) => {\n const { eventEmitter, data, scale, x, y, rootRef } = this.asProps;\n const { clientX, clientY } = e;\n const [xScale, yScale] = scale;\n const [pX, pY] = eventToPoint(e, rootRef.current);\n const vX = invert(xScale, pX);\n const vY = invert(yScale, pY);\n const xIndex =\n x === undefined || vX === undefined ? null : getIndexFromData(data, xScale, x, vX);\n const yIndex =\n y === undefined || vY === undefined ? null : getIndexFromData(data, yScale, y, vY);\n const state = { xIndex, yIndex };\n this.virtualElement.getBoundingClientRect = this.generateGetBoundingClientRect(\n clientX,\n clientY,\n );\n this.virtualElement[CONSTANT.VIRTUAL_ELEMENT] = true;\n\n this.setState(state, () => {\n eventEmitter.emit(\n 'onTooltipVisible',\n xIndex !== null || yIndex !== null,\n state,\n this.virtualElement,\n );\n });\n });\n\n handlerMouseLeaveRoot = trottle(() => {\n const state = {\n xIndex: null,\n yIndex: null,\n };\n this.setState(state, () => {\n this.asProps.eventEmitter.emit('onTooltipVisible', false, state);\n });\n });\n\n componentDidMount() {\n const { eventEmitter } = this.asProps;\n this.unsubscribeMouseMoveRoot = eventEmitter.subscribe('onMouseMoveChart', (e) => {\n e.persist();\n this.handlerMouseMoveRoot(e);\n });\n this.unsubscribeMouseLeaveRoot = eventEmitter.subscribe(\n 'onMouseLeaveChart',\n this.handlerMouseLeaveRoot,\n );\n }\n\n componentWillUnmount() {\n if (this.unsubscribeMouseMoveRoot) {\n this.unsubscribeMouseMoveRoot();\n }\n if (this.unsubscribeMouseLeaveRoot) {\n this.unsubscribeMouseLeaveRoot();\n }\n }\n}\n\nclass HoverLineRoot extends Hover {\n static displayName = 'HoverLine';\n\n render() {\n const SHoverLine = this.Element;\n const { styles, x, y, data, scale } = this.asProps;\n const { xIndex, yIndex } = this.state;\n const [xScale, yScale] = scale;\n\n const xRange = xScale.range();\n const yRange = yScale.range();\n const x1 = xIndex !== null ? scaleOfBandwidth(xScale, data[xIndex][x]) : undefined;\n const y1 = yIndex !== null ? scaleOfBandwidth(yScale, data[yIndex][y]) : undefined;\n\n return sstyled(styles)(\n <>\n {xIndex !== null ? (\n <SHoverLine render=\"line\" index={xIndex} x1={x1} y1={yRange[0]} x2={x1} y2={yRange[1]} />\n ) : null}\n {yIndex !== null ? (\n <SHoverLine render=\"line\" index={yIndex} x1={xRange[0]} y1={y1} x2={xRange[1]} y2={y1} />\n ) : null}\n </>,\n );\n }\n}\n\nclass HoverRectRoot extends Hover {\n static displayName = 'HoverRect';\n\n render() {\n const SHoverRect = this.Element;\n const { styles, x, y, data, scale } = this.asProps;\n const { xIndex, yIndex } = this.state;\n const [xScale, yScale] = scale;\n\n const xRange = xScale.range();\n const yRange = yScale.range();\n\n return sstyled(styles)(\n <>\n {xIndex !== null ? (\n <SHoverRect\n render=\"rect\"\n index={xIndex}\n width={xScale.step() - xScale.paddingInner() / 2}\n height={yRange[0] - yRange[1]}\n x={xScale(data[xIndex][x]) - (xScale.step() * xScale.paddingInner()) / 2}\n y={yRange[1]}\n />\n ) : null}\n {yIndex !== null ? (\n <SHoverRect\n render=\"rect\"\n index={yIndex}\n width={xRange[1] - xRange[0]}\n height={yScale.step() - yScale.paddingInner() / 2}\n x={xRange[0]}\n y={yScale(data[yIndex][y]) - (yScale.step() * yScale.paddingInner()) / 2}\n />\n ) : null}\n </>,\n );\n }\n}\n\nconst HoverLine = createElement(HoverLineRoot);\nconst HoverRect = createElement(HoverRectRoot);\n\nexport { HoverLine, HoverRect };\n"],"file":"Hover.js"}
package/lib/es6/Line.js CHANGED
@@ -25,16 +25,16 @@ var style = (
25
25
  /*__reshadow_css_start__*/
26
26
  _sstyled.insert(
27
27
  /*__inner_css_start__*/
28
- ".___SLine_1f96p_gg_{fill:transparent;stroke-width:3;stroke:var(--color_153xqfw);transition-property:d;transition-duration:var(--duration_153xqfw);transition-timing-function:ease-in-out}.___SLine_1f96p_gg_.__hide_1f96p_gg_{display:none}.___SNull_1f96p_gg_{fill:transparent;stroke:#98aaaf;stroke-dasharray:4}.___SNull_1f96p_gg_.__hide_1f96p_gg_{display:none}"
28
+ ".___SLine_d1qcq_gg_{fill:transparent;stroke-width:3;stroke:var(--color_153xqfw);transition-property:d;transition-duration:var(--duration_153xqfw);transition-timing-function:ease-in-out}.___SLine_d1qcq_gg_.__hide_d1qcq_gg_{display:none}.___SNull_d1qcq_gg_{fill:transparent;stroke:#98aaaf;stroke-dasharray:4}.___SNull_d1qcq_gg_.__hide_d1qcq_gg_{display:none}"
29
29
  /*__inner_css_end__*/
30
30
  , "153xqfw_gg_")
31
31
  /*__reshadow_css_end__*/
32
32
  , {
33
- "__SLine": "___SLine_1f96p_gg_",
33
+ "__SLine": "___SLine_d1qcq_gg_",
34
34
  "--color": "--color_153xqfw",
35
35
  "--duration": "--duration_153xqfw",
36
- "_hide": "__hide_1f96p_gg_",
37
- "__SNull": "___SNull_1f96p_gg_"
36
+ "_hide": "__hide_d1qcq_gg_",
37
+ "__SNull": "___SNull_d1qcq_gg_"
38
38
  });
39
39
 
40
40
  var LineRoot = /*#__PURE__*/function (_Component) {
@@ -129,11 +129,13 @@ _defineProperty(LineRoot, "defaultProps", function (_ref3) {
129
129
  y = _ref3.y,
130
130
  $rootProps = _ref3.$rootProps,
131
131
  _ref3$curve = _ref3.curve,
132
- curve = _ref3$curve === void 0 ? curveLinear : _ref3$curve;
132
+ curve = _ref3$curve === void 0 ? curveLinear : _ref3$curve,
133
+ scale = _ref3.scale;
133
134
 
134
- var _$rootProps$scale = _slicedToArray($rootProps.scale, 2),
135
- xScale = _$rootProps$scale[0],
136
- yScale = _$rootProps$scale[1];
135
+ var _ref4 = scale || $rootProps.scale,
136
+ _ref5 = _slicedToArray(_ref4, 2),
137
+ xScale = _ref5[0],
138
+ yScale = _ref5[1];
137
139
 
138
140
  return {
139
141
  d3: d3Line().defined(definedData(x, y)).curve(curve).x(function (p) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Line.js"],"names":["React","curveLinear","line","d3Line","Component","sstyled","createElement","definedData","definedNullData","scaleOfBandwidth","getNullData","Dots","ClipPath","uniqueIDEnhancement","LineRoot","asProps","x","y","d3","color","data","SLine","Element","styles","hide","uid","size","duration","rect","setAttribute","style","$rootProps","curve","scale","xScale","yScale","defined","p","Null","props","SNull"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { curveLinear, line as d3Line } from 'd3-shape';\nimport { Component, sstyled } from '@semcore/core';\nimport createElement from './createElement';\nimport { definedData, definedNullData, scaleOfBandwidth, getNullData } from './utils';\nimport Dots from './Dots';\nimport ClipPath from './ClipPath';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\n\nimport style from './style/line.shadow.css';\n\nclass LineRoot extends Component {\n static displayName = 'Line';\n static style = style;\n static enhance = [uniqueIDEnhancement()];\n\n static defaultProps = ({ x, y, $rootProps, curve = curveLinear }) => {\n const [xScale, yScale] = $rootProps.scale;\n return {\n d3: d3Line()\n .defined(definedData(x, y))\n .curve(curve)\n .x((p) => scaleOfBandwidth(xScale, p[x]))\n .y((p) => scaleOfBandwidth(yScale, p[y])),\n color: '#50aef4',\n duration: 500,\n };\n };\n\n getDotsProps() {\n const { x, y, d3, color } = this.asProps;\n return {\n x,\n y,\n d3,\n color,\n };\n }\n\n getNullProps() {\n const { x, y, d3, color, data } = this.asProps;\n return {\n d3,\n // TODO: vertical\n data: getNullData(data, definedNullData(x, y), y),\n color,\n };\n }\n\n render() {\n const SLine = this.Element;\n const { styles, hide, color, uid, size, d3, data, duration } = this.asProps;\n return sstyled(styles)(\n <>\n <SLine\n clipPath={`url(#${uid})`}\n render=\"path\"\n hide={hide}\n color={color}\n d={d3(data)}\n use:duration={`${duration}ms`}\n />\n {duration && (\n <ClipPath\n setAttributeTag={(rect) => {\n rect.setAttribute('width', size[0]);\n }}\n id={uid}\n x=\"0\"\n y=\"0\"\n width={0}\n height={size[1]}\n transition={`width ${duration}ms ease-in-out`}\n />\n )}\n </>,\n );\n }\n}\n\nfunction Null(props) {\n const { Element: SNull, styles, d3, data, hide } = props;\n return sstyled(styles)(<SNull render=\"path\" d={d3(data)} hide={hide} />);\n}\n\nexport default createElement(LineRoot, {\n Dots,\n Null,\n});\n"],"file":"Line.js"}
1
+ {"version":3,"sources":["../../src/Line.js"],"names":["React","curveLinear","line","d3Line","Component","sstyled","createElement","definedData","definedNullData","scaleOfBandwidth","getNullData","Dots","ClipPath","uniqueIDEnhancement","LineRoot","asProps","x","y","d3","color","data","SLine","Element","styles","hide","uid","size","duration","rect","setAttribute","style","$rootProps","curve","scale","xScale","yScale","defined","p","Null","props","SNull"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { curveLinear, line as d3Line } from 'd3-shape';\nimport { Component, sstyled } from '@semcore/core';\nimport createElement from './createElement';\nimport { definedData, definedNullData, scaleOfBandwidth, getNullData } from './utils';\nimport Dots from './Dots';\nimport ClipPath from './ClipPath';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\n\nimport style from './style/line.shadow.css';\n\nclass LineRoot extends Component {\n static displayName = 'Line';\n static style = style;\n static enhance = [uniqueIDEnhancement()];\n\n static defaultProps = ({ x, y, $rootProps, curve = curveLinear, scale }) => {\n const [xScale, yScale] = scale || $rootProps.scale;\n return {\n d3: d3Line()\n .defined(definedData(x, y))\n .curve(curve)\n .x((p) => scaleOfBandwidth(xScale, p[x]))\n .y((p) => scaleOfBandwidth(yScale, p[y])),\n color: '#50aef4',\n duration: 500,\n };\n };\n\n getDotsProps() {\n const { x, y, d3, color } = this.asProps;\n return {\n x,\n y,\n d3,\n color,\n };\n }\n\n getNullProps() {\n const { x, y, d3, color, data } = this.asProps;\n return {\n d3,\n // TODO: vertical\n data: getNullData(data, definedNullData(x, y), y),\n color,\n };\n }\n\n render() {\n const SLine = this.Element;\n const { styles, hide, color, uid, size, d3, data, duration } = this.asProps;\n return sstyled(styles)(\n <>\n <SLine\n clipPath={`url(#${uid})`}\n render=\"path\"\n hide={hide}\n color={color}\n d={d3(data)}\n use:duration={`${duration}ms`}\n />\n {duration && (\n <ClipPath\n setAttributeTag={(rect) => {\n rect.setAttribute('width', size[0]);\n }}\n id={uid}\n x=\"0\"\n y=\"0\"\n width={0}\n height={size[1]}\n transition={`width ${duration}ms ease-in-out`}\n />\n )}\n </>,\n );\n }\n}\n\nfunction Null(props) {\n const { Element: SNull, styles, d3, data, hide } = props;\n return sstyled(styles)(<SNull render=\"path\" d={d3(data)} hide={hide} />);\n}\n\nexport default createElement(LineRoot, {\n Dots,\n Null,\n});\n"],"file":"Line.js"}
package/lib/es6/Plot.js CHANGED
@@ -21,7 +21,6 @@ import createComponent, { Component, Root, sstyled } from '@semcore/core';
21
21
  import { Box } from '@semcore/flex-box';
22
22
  import EventEmitter from '@semcore/utils/lib/eventEmitter';
23
23
  import { eventToPoint } from './utils';
24
- import trottle from '@semcore/utils/lib/rafTrottle';
25
24
 
26
25
  var PlotRoot = /*#__PURE__*/function (_Component) {
27
26
  _inherits(PlotRoot, _Component);
@@ -37,7 +36,7 @@ var PlotRoot = /*#__PURE__*/function (_Component) {
37
36
 
38
37
  _defineProperty(_assertThisInitialized(_this), "rootRef", /*#__PURE__*/React.createRef());
39
38
 
40
- _defineProperty(_assertThisInitialized(_this), "handlerMouseMove", trottle(function (e) {
39
+ _defineProperty(_assertThisInitialized(_this), "handlerMouseMove", function (e) {
41
40
  var scale = _this.asProps.scale;
42
41
 
43
42
  _this.eventEmitter.emit("onMouseMoveRoot", e);
@@ -68,13 +67,13 @@ var PlotRoot = /*#__PURE__*/function (_Component) {
68
67
  _this.eventEmitter.emit('onMouseLeaveChart', e);
69
68
  }
70
69
  }
71
- }));
70
+ });
72
71
 
73
- _defineProperty(_assertThisInitialized(_this), "handlerMouseLeave", trottle(function (e) {
72
+ _defineProperty(_assertThisInitialized(_this), "handlerMouseLeave", function (e) {
74
73
  _this.eventEmitter.emit("onMouseLeaveRoot", e);
75
74
 
76
75
  _this.eventEmitter.emit('onMouseLeaveChart', e);
77
- }));
76
+ });
78
77
 
79
78
  _this.eventEmitter = props.eventEmitter || new EventEmitter();
80
79
  return _this;