@semcore/d3-chart 1.0.0 → 1.3.1-0

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 (55) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/lib/cjs/Area.js +2 -1
  3. package/lib/cjs/Area.js.map +1 -1
  4. package/lib/cjs/Bar.js +44 -12
  5. package/lib/cjs/Bar.js.map +1 -1
  6. package/lib/cjs/ClipPath.js +1 -1
  7. package/lib/cjs/ClipPath.js.map +1 -1
  8. package/lib/cjs/Donut.js +125 -57
  9. package/lib/cjs/Donut.js.map +1 -1
  10. package/lib/cjs/GroupBar.js +5 -5
  11. package/lib/cjs/HorizontalBar.js +45 -9
  12. package/lib/cjs/HorizontalBar.js.map +1 -1
  13. package/lib/cjs/Hover.js +24 -6
  14. package/lib/cjs/Hover.js.map +1 -1
  15. package/lib/cjs/Line.js +2 -1
  16. package/lib/cjs/Line.js.map +1 -1
  17. package/lib/cjs/StackBar.js +6 -6
  18. package/lib/cjs/StackBar.js.map +1 -1
  19. package/lib/cjs/StackedArea.js +6 -6
  20. package/lib/cjs/utils.js +67 -1
  21. package/lib/cjs/utils.js.map +1 -1
  22. package/lib/es6/Area.js +3 -2
  23. package/lib/es6/Area.js.map +1 -1
  24. package/lib/es6/Bar.js +42 -11
  25. package/lib/es6/Bar.js.map +1 -1
  26. package/lib/es6/ClipPath.js +1 -1
  27. package/lib/es6/ClipPath.js.map +1 -1
  28. package/lib/es6/Donut.js +124 -56
  29. package/lib/es6/Donut.js.map +1 -1
  30. package/lib/es6/GroupBar.js +5 -5
  31. package/lib/es6/HorizontalBar.js +44 -9
  32. package/lib/es6/HorizontalBar.js.map +1 -1
  33. package/lib/es6/Hover.js +24 -7
  34. package/lib/es6/Hover.js.map +1 -1
  35. package/lib/es6/Line.js +3 -2
  36. package/lib/es6/Line.js.map +1 -1
  37. package/lib/es6/StackBar.js +6 -6
  38. package/lib/es6/StackBar.js.map +1 -1
  39. package/lib/es6/StackedArea.js +6 -6
  40. package/lib/es6/utils.js +61 -1
  41. package/lib/es6/utils.js.map +1 -1
  42. package/lib/types/Bar.d.ts +4 -0
  43. package/lib/types/HorizontalBar.d.ts +4 -0
  44. package/package.json +5 -4
  45. package/src/Area.js +3 -3
  46. package/src/Bar.js +58 -20
  47. package/src/ClipPath.js +1 -1
  48. package/src/Donut.js +61 -4
  49. package/src/HorizontalBar.js +46 -7
  50. package/src/Hover.js +17 -23
  51. package/src/Line.js +3 -3
  52. package/src/StackBar.js +1 -1
  53. package/src/types/Bar.d.ts +4 -0
  54. package/src/types/HorizontalBar.d.ts +4 -0
  55. package/src/utils.js +52 -1
@@ -42,14 +42,14 @@ var _ref = (
42
42
  /*__reshadow_css_start__*/
43
43
  (0, _core.__css__)(
44
44
  /*__inner_css_start__*/
45
- ".___SBar_icqax_gg_{fill:var(--color);transition-property:height,width,y;transition-duration:var(--duration);transition-timing-function:ease-in-out}.___SBar_icqax_gg_.__hide_icqax_gg_{display:none}.___SBackground_icqax_gg_{fill:#e4ecf1}"
45
+ ".___SBar_1hsyh_gg_{fill:var(--color);transition-property:height,width,y;transition-duration:var(--duration);transition-timing-function:ease-in-out}.___SBar_1hsyh_gg_.__hide_1hsyh_gg_{display:none}.___SBackground_1hsyh_gg_{fill:#e4ecf1}"
46
46
  /*__inner_css_end__*/
47
- , "1xgn2id_gg_")
47
+ , "f6nc1h_gg_")
48
48
  /*__reshadow_css_end__*/
49
49
  , {
50
- "__SBar": "___SBar_icqax_gg_",
51
- "_hide": "__hide_icqax_gg_",
52
- "__SBackground": "___SBackground_icqax_gg_"
50
+ "__SBar": "___SBar_1hsyh_gg_",
51
+ "_hide": "__hide_1hsyh_gg_",
52
+ "__SBackground": "___SBackground_1hsyh_gg_"
53
53
  }),
54
54
  style = (0, _extends2["default"])({}, _ref);
55
55
 
@@ -25,11 +25,13 @@ var _core = require("@semcore/core");
25
25
 
26
26
  var _react = _interopRequireDefault(require("react"));
27
27
 
28
+ var _uniqueID = _interopRequireDefault(require("@semcore/utils/lib/uniqueID"));
29
+
28
30
  var _createElement = _interopRequireDefault(require("./createElement"));
29
31
 
30
32
  var _ClipPath = _interopRequireDefault(require("./ClipPath"));
31
33
 
32
- var _uniqueID = _interopRequireDefault(require("@semcore/utils/lib/uniqueID"));
34
+ var _utils = require("./utils");
33
35
 
34
36
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
35
37
 
@@ -88,15 +90,25 @@ var HorizontalBarRoot = /*#__PURE__*/function (_Component) {
88
90
  hide = _this$asProps2.hide,
89
91
  offset = _this$asProps2.offset,
90
92
  uid = _this$asProps2.uid,
91
- duration = _this$asProps2.duration;
93
+ duration = _this$asProps2.duration,
94
+ r = _this$asProps2.r,
95
+ $index = _this$asProps2.$index,
96
+ heightProps = _this$asProps2.height,
97
+ onMouseMove = _this$asProps2.onMouseMove,
98
+ onMouseLeave = _this$asProps2.onMouseLeave;
92
99
 
93
100
  var _scale = (0, _slicedToArray2["default"])(scale, 2),
94
101
  xScale = _scale[0],
95
102
  yScale = _scale[1];
96
103
 
104
+ var barY = yScale(d[y]) + offset[1];
105
+ var barX = xScale(Math.min((_d$x = d[x0]) !== null && _d$x !== void 0 ? _d$x : 0, d[x])) + offset[0];
106
+ var height = heightProps || (0, _utils.getBandwidth)(yScale);
107
+ 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)));
108
+ var isRounded = r !== 0;
97
109
  return _ref = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SBar, _ref.cn("SBar", {
98
110
  "key": "horizontal-bar-".concat(i),
99
- "render": "rect",
111
+ "render": "path",
100
112
  "clipPath": "url(#".concat(uid, ")"),
101
113
  "__excludeProps": ['data', 'scale', 'value'],
102
114
  "childrenPosition": "above",
@@ -104,11 +116,17 @@ var HorizontalBarRoot = /*#__PURE__*/function (_Component) {
104
116
  "index": i,
105
117
  "hide": hide,
106
118
  "color": color,
107
- "width": Math.abs(xScale(d[x]) - Math.max(xScale(xScale.domain()[0]), xScale((_d$x = d[x0]) !== null && _d$x !== void 0 ? _d$x : 0))),
108
- "height": yScale.bandwidth(),
109
- "x": xScale(Math.min((_d$x2 = d[x0]) !== null && _d$x2 !== void 0 ? _d$x2 : 0, d[x])) + offset[0],
110
- "y": yScale(d[y]) + offset[1],
111
- "use:duration": "".concat(duration, "ms")
119
+ "d": getHorizontalRect({
120
+ x: isRounded ? d[x] > 0 ? barX : barX - r : barX,
121
+ y: barY,
122
+ width: isRounded ? width + r : width,
123
+ height: height,
124
+ radius: r,
125
+ position: d[x] > 0 ? 'right' : 'left'
126
+ }),
127
+ "use:duration": "".concat(duration, "ms"),
128
+ "onMouseMove": onMouseMove,
129
+ "onMouseLeave": onMouseLeave
112
130
  }));
113
131
  }
114
132
  }, {
@@ -141,7 +159,8 @@ var HorizontalBarRoot = /*#__PURE__*/function (_Component) {
141
159
  (0, _defineProperty2["default"])(HorizontalBarRoot, "defaultProps", {
142
160
  color: '#50aef4',
143
161
  offset: [0, 0],
144
- duration: 500
162
+ duration: 500,
163
+ r: 2
145
164
  });
146
165
 
147
166
  function Background(props) {
@@ -167,6 +186,23 @@ function Background(props) {
167
186
  }));
168
187
  }
169
188
 
189
+ function getHorizontalRect(_ref3) {
190
+ var x = _ref3.x,
191
+ y = _ref3.y,
192
+ width = _ref3.width,
193
+ height = _ref3.height,
194
+ radius = _ref3.radius,
195
+ position = _ref3.position;
196
+ if (width <= radius) return '';
197
+
198
+ if (radius) {
199
+ if (position === 'right') return (0, _utils.roundedPath)(x, y, width, height, radius, false, true, false, true);
200
+ return (0, _utils.roundedPath)(x, y, width, height, radius, true, false, true, false);
201
+ }
202
+
203
+ return (0, _utils.roundedPath)(x, y, width, height, radius);
204
+ }
205
+
170
206
  var _default = (0, _createElement["default"])(HorizontalBarRoot, {
171
207
  Background: Background
172
208
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/HorizontalBar.js"],"names":["HorizontalBarRoot","props","index","asProps","data","y","value","d","i","SBar","Element","styles","color","x","x0","scale","hide","offset","uid","duration","xScale","yScale","Math","abs","max","domain","bandwidth","min","size","map","renderBar","bind","rect","setAttribute","Component","style","Background","SBackground","xRange","range"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Component, sstyled } from '@semcore/core';\nimport createElement from './createElement';\nimport ClipPath from './ClipPath';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\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 };\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 { styles, color, x, x0, y, scale, hide, offset, uid, duration } = this.asProps;\n const [xScale, yScale] = scale;\n\n return sstyled(styles)(\n <SBar\n key={`horizontal-bar-${i}`}\n render=\"rect\"\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 width={Math.abs(xScale(d[x]) - Math.max(xScale(xScale.domain()[0]), xScale(d[x0] ?? 0)))}\n height={yScale.bandwidth()}\n x={xScale(Math.min(d[x0] ?? 0, d[x])) + offset[0]}\n y={yScale(d[y]) + offset[1]}\n use:duration={`${duration}ms`}\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\nexport default createElement(HorizontalBarRoot, { Background });\n"],"file":"HorizontalBar.js"}
1
+ {"version":3,"sources":["../../src/HorizontalBar.js"],"names":["HorizontalBarRoot","props","index","asProps","data","y","value","d","i","SBar","Element","styles","color","x","x0","scale","hide","offset","uid","duration","r","$index","heightProps","height","onMouseMove","onMouseLeave","xScale","yScale","barY","barX","Math","min","width","abs","max","domain","isRounded","getHorizontalRect","radius","position","size","map","renderBar","bind","rect","setAttribute","Component","style","Background","SBackground","xRange","range","bandwidth"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AACA;;AADA;;AAEA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;IAIMA,iB;;;;;;;;;;;;WAYJ,4BAAmBC,KAAnB,EAA0BC,KAA1B,EAAiC;AAAA,0BACX,KAAKC,OADM;AAAA,UACvBC,IADuB,iBACvBA,IADuB;AAAA,UACjBC,CADiB,iBACjBA,CADiB;AAE/B,aAAO;AACLC,QAAAA,KAAK,EAAEF,IAAI,CAACF,KAAD,CAAJ,CAAYG,CAAZ;AADF,OAAP;AAGD;;;WAED,mBAAUE,CAAV,EAAaC,CAAb,EAAgB;AAAA;;AACd,UAAMC,IAAI,GAAG,KAAKC,OAAlB;AADc,2BAkBV,KAAKP,OAlBK;AAAA,UAGZQ,MAHY,kBAGZA,MAHY;AAAA,UAIZC,KAJY,kBAIZA,KAJY;AAAA,UAKZC,CALY,kBAKZA,CALY;AAAA,UAMZC,EANY,kBAMZA,EANY;AAAA,UAOZT,CAPY,kBAOZA,CAPY;AAAA,UAQZU,KARY,kBAQZA,KARY;AAAA,UASZC,IATY,kBASZA,IATY;AAAA,UAUZC,MAVY,kBAUZA,MAVY;AAAA,UAWZC,GAXY,kBAWZA,GAXY;AAAA,UAYZC,QAZY,kBAYZA,QAZY;AAAA,UAaZC,CAbY,kBAaZA,CAbY;AAAA,UAcZC,MAdY,kBAcZA,MAdY;AAAA,UAeJC,WAfI,kBAeZC,MAfY;AAAA,UAgBZC,WAhBY,kBAgBZA,WAhBY;AAAA,UAiBZC,YAjBY,kBAiBZA,YAjBY;;AAAA,mDAmBWV,KAnBX;AAAA,UAmBPW,MAnBO;AAAA,UAmBCC,MAnBD;;AAoBd,UAAMC,IAAI,GAAGD,MAAM,CAACpB,CAAC,CAACF,CAAD,CAAF,CAAN,GAAeY,MAAM,CAAC,CAAD,CAAlC;AACA,UAAMY,IAAI,GAAGH,MAAM,CAACI,IAAI,CAACC,GAAL,SAASxB,CAAC,CAACO,EAAD,CAAV,uCAAkB,CAAlB,EAAqBP,CAAC,CAACM,CAAD,CAAtB,CAAD,CAAN,GAAqCI,MAAM,CAAC,CAAD,CAAxD;AACA,UAAMM,MAAM,GAAGD,WAAW,IAAI,yBAAaK,MAAb,CAA9B;AACA,UAAMK,KAAK,GAAGF,IAAI,CAACG,GAAL,CAASP,MAAM,CAACnB,CAAC,CAACM,CAAD,CAAF,CAAN,GAAeiB,IAAI,CAACI,GAAL,CAASR,MAAM,CAACA,MAAM,CAACS,MAAP,GAAgB,CAAhB,CAAD,CAAf,EAAqCT,MAAM,UAACnB,CAAC,CAACO,EAAD,CAAF,yCAAU,CAAV,CAA3C,CAAxB,CAAd;AACA,UAAMsB,SAAS,GAAGhB,CAAC,KAAK,CAAxB;AAEA,oBAAO,mBAAQT,MAAR,CAAP,eACE,gCAAC,IAAD;AAAA,wCACyBH,CADzB;AAAA,kBAES,MAFT;AAAA,mCAGoBU,GAHpB;AAAA,0BAIkB,CAAC,MAAD,EAAS,OAAT,EAAkB,OAAlB,CAJlB;AAAA,4BAKmB,OALnB;AAAA,iBAMSX,CANT;AAAA,iBAOSC,CAPT;AAAA,gBAQQQ,IARR;AAAA,iBASSJ,KATT;AAAA,aAUKyB,iBAAiB,CAAC;AACnBxB,UAAAA,CAAC,EAAEuB,SAAS,GAAI7B,CAAC,CAACM,CAAD,CAAD,GAAO,CAAP,GAAWgB,IAAX,GAAkBA,IAAI,GAAGT,CAA7B,GAAkCS,IAD3B;AAEnBxB,UAAAA,CAAC,EAAEuB,IAFgB;AAGnBI,UAAAA,KAAK,EAAEI,SAAS,GAAGJ,KAAK,GAAGZ,CAAX,GAAeY,KAHZ;AAInBT,UAAAA,MAAM,EAANA,MAJmB;AAKnBe,UAAAA,MAAM,EAAElB,CALW;AAMnBmB,UAAAA,QAAQ,EAAEhC,CAAC,CAACM,CAAD,CAAD,GAAO,CAAP,GAAW,OAAX,GAAqB;AANZ,SAAD,CAVtB;AAAA,kCAkBmBM,QAlBnB;AAAA,uBAmBeK,WAnBf;AAAA,wBAoBgBC;AApBhB,SADF;AAwBD;;;WAED,kBAAS;AAAA,2BAC+B,KAAKtB,OADpC;AAAA,UACCC,IADD,kBACCA,IADD;AAAA,UACOc,GADP,kBACOA,GADP;AAAA,UACYsB,IADZ,kBACYA,IADZ;AAAA,UACkBrB,QADlB,kBACkBA,QADlB;AAGP,0BACE,kEACGf,IAAI,CAACqC,GAAL,CAAS,KAAKC,SAAL,CAAeC,IAAf,CAAoB,IAApB,CAAT,CADH,EAEGxB,QAAQ,iBACP,gCAAC,oBAAD;AACE,QAAA,eAAe,EAAE,yBAACyB,IAAD,EAAU;AACzBA,UAAAA,IAAI,CAACC,YAAL,CAAkB,OAAlB,EAA2BL,IAAI,CAAC,CAAD,CAA/B;AACD,SAHH;AAIE,QAAA,EAAE,EAAEtB,GAJN;AAKE,QAAA,CAAC,EAAC,GALJ;AAME,QAAA,CAAC,EAAC,GANJ;AAOE,QAAA,KAAK,EAAE,CAPT;AAQE,QAAA,MAAM,EAAEsB,IAAI,CAAC,CAAD,CARd;AASE,QAAA,UAAU,kBAAWrB,QAAX;AATZ,QAHJ,CADF;AAkBD;;;EA5F6B2B,e;;iCAA1B9C,iB,iBACiB,e;iCADjBA,iB,aAEa,CAAC,2BAAD,C;iCAFbA,iB,WAGW+C,K;iCAHX/C,iB,kBAKkB;AACpBY,EAAAA,KAAK,EAAE,SADa;AAEpBK,EAAAA,MAAM,EAAE,CAAC,CAAD,EAAI,CAAJ,CAFY;AAGpBE,EAAAA,QAAQ,EAAE,GAHU;AAIpBC,EAAAA,CAAC,EAAE;AAJiB,C;;AA0FxB,SAAS4B,UAAT,CAAoB/C,KAApB,EAA2B;AAAA;;AAAA,MACRgD,WADQ,GAC8BhD,KAD9B,CACjBS,OADiB;AAAA,MACKC,MADL,GAC8BV,KAD9B,CACKU,MADL;AAAA,MACaI,KADb,GAC8Bd,KAD9B,CACac,KADb;AAAA,MACoBT,KADpB,GAC8BL,KAD9B,CACoBK,KADpB;;AAAA,gDAEAS,KAFA;AAAA,MAElBW,MAFkB;AAAA,MAEVC,MAFU;;AAGzB,MAAMuB,MAAM,GAAGxB,MAAM,CAACyB,KAAP,EAAf;AAEA,iBAAO,mBAAQxC,MAAR,CAAP,eACE,gCAAC,WAAD;AAAA,cACS,MADT;AAAA,wBAEmB,OAFnB;AAAA,aAGSuC,MAAM,CAAC,CAAD,CAAN,GAAYA,MAAM,CAAC,CAAD,CAH3B;AAAA,cAIUvB,MAAM,CAACyB,SAAP,EAJV;AAAA,SAKKF,MAAM,CAAC,CAAD,CALX;AAAA,SAMKvB,MAAM,CAACrB,KAAD;AANX,KADF;AAUD;;AAED,SAAS+B,iBAAT,QAAsE;AAAA,MAAzCxB,CAAyC,SAAzCA,CAAyC;AAAA,MAAtCR,CAAsC,SAAtCA,CAAsC;AAAA,MAAnC2B,KAAmC,SAAnCA,KAAmC;AAAA,MAA5BT,MAA4B,SAA5BA,MAA4B;AAAA,MAApBe,MAAoB,SAApBA,MAAoB;AAAA,MAAZC,QAAY,SAAZA,QAAY;AACpE,MAAIP,KAAK,IAAIM,MAAb,EAAqB,OAAO,EAAP;;AACrB,MAAIA,MAAJ,EAAY;AACV,QAAIC,QAAQ,KAAK,OAAjB,EACE,OAAO,wBAAY1B,CAAZ,EAAeR,CAAf,EAAkB2B,KAAlB,EAAyBT,MAAzB,EAAiCe,MAAjC,EAAyC,KAAzC,EAAgD,IAAhD,EAAsD,KAAtD,EAA6D,IAA7D,CAAP;AACF,WAAO,wBAAYzB,CAAZ,EAAeR,CAAf,EAAkB2B,KAAlB,EAAyBT,MAAzB,EAAiCe,MAAjC,EAAyC,IAAzC,EAA+C,KAA/C,EAAsD,IAAtD,EAA4D,KAA5D,CAAP;AACD;;AACD,SAAO,wBAAYzB,CAAZ,EAAeR,CAAf,EAAkB2B,KAAlB,EAAyBT,MAAzB,EAAiCe,MAAjC,CAAP;AACD;;eAEc,+BAActC,iBAAd,EAAiC;AAAEgD,EAAAA,UAAU,EAAVA;AAAF,CAAjC,C","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 $index,\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"}
package/lib/cjs/Hover.js CHANGED
@@ -31,6 +31,8 @@ var _createElement = _interopRequireDefault(require("./createElement"));
31
31
 
32
32
  var _rafTrottle = _interopRequireDefault(require("@semcore/utils/lib/rafTrottle"));
33
33
 
34
+ var _canUseDOM = _interopRequireDefault(require("@semcore/utils/lib/canUseDOM"));
35
+
34
36
  var _utils = require("./utils");
35
37
 
36
38
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
@@ -70,7 +72,7 @@ var Hover = /*#__PURE__*/function (_Component) {
70
72
  xIndex: null,
71
73
  yIndex: null
72
74
  });
73
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "hoverRef", /*#__PURE__*/_react["default"].createRef());
75
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "virtualElement", (0, _canUseDOM["default"])() ? document.createElement('div') : {});
74
76
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handlerMouseMoveRoot", (0, _rafTrottle["default"])(function (e) {
75
77
  var _this$asProps = _this.asProps,
76
78
  eventEmitter = _this$asProps.eventEmitter,
@@ -79,6 +81,8 @@ var Hover = /*#__PURE__*/function (_Component) {
79
81
  x = _this$asProps.x,
80
82
  y = _this$asProps.y,
81
83
  rootRef = _this$asProps.rootRef;
84
+ var clientX = e.clientX,
85
+ clientY = e.clientY;
82
86
 
83
87
  var _scale = (0, _slicedToArray2["default"])(scale, 2),
84
88
  xScale = _scale[0],
@@ -97,9 +101,11 @@ var Hover = /*#__PURE__*/function (_Component) {
97
101
  xIndex: xIndex,
98
102
  yIndex: yIndex
99
103
  };
104
+ _this.virtualElement.getBoundingClientRect = _this.generateGetBoundingClientRect(clientX, clientY);
105
+ _this.virtualElement[_utils.CONSTANT.VIRTUAL_ELEMENT] = true;
100
106
 
101
107
  _this.setState(state, function () {
102
- eventEmitter.emit('onTooltipVisible', xIndex !== null || yIndex !== null, state, _this.hoverRef.current);
108
+ eventEmitter.emit('onTooltipVisible', xIndex !== null || yIndex !== null, state, _this.virtualElement);
103
109
  });
104
110
  }));
105
111
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handlerMouseLeaveRoot", (0, _rafTrottle["default"])(function () {
@@ -116,6 +122,22 @@ var Hover = /*#__PURE__*/function (_Component) {
116
122
  }
117
123
 
118
124
  (0, _createClass2["default"])(Hover, [{
125
+ key: "generateGetBoundingClientRect",
126
+ value: function generateGetBoundingClientRect() {
127
+ var x = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
128
+ var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
129
+ return function () {
130
+ return {
131
+ width: 0,
132
+ height: 0,
133
+ top: y,
134
+ right: x,
135
+ bottom: y,
136
+ left: x
137
+ };
138
+ };
139
+ }
140
+ }, {
119
141
  key: "componentDidMount",
120
142
  value: function componentDidMount() {
121
143
  var _this2 = this;
@@ -181,7 +203,6 @@ var HoverLineRoot = /*#__PURE__*/function (_Hover) {
181
203
  var y1 = yIndex !== null ? (0, _utils.scaleOfBandwidth)(yScale, data[yIndex][y]) : undefined;
182
204
  return _ref = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, xIndex !== null ? /*#__PURE__*/_react["default"].createElement(SHoverLine, _ref.cn("SHoverLine", {
183
205
  "render": "line",
184
- "ref": this.hoverRef,
185
206
  "index": xIndex,
186
207
  "x1": x1,
187
208
  "y1": yRange[0],
@@ -189,7 +210,6 @@ var HoverLineRoot = /*#__PURE__*/function (_Hover) {
189
210
  "y2": yRange[1]
190
211
  })) : null, yIndex !== null ? /*#__PURE__*/_react["default"].createElement(SHoverLine, _ref.cn("SHoverLine", {
191
212
  "render": "line",
192
- "ref": this.hoverRef,
193
213
  "index": yIndex,
194
214
  "x1": xRange[0],
195
215
  "y1": y1,
@@ -237,7 +257,6 @@ var HoverRectRoot = /*#__PURE__*/function (_Hover2) {
237
257
  var yRange = yScale.range();
238
258
  return _ref2 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, xIndex !== null ? /*#__PURE__*/_react["default"].createElement(SHoverRect, _ref2.cn("SHoverRect", {
239
259
  "render": "rect",
240
- "ref": this.hoverRef,
241
260
  "index": xIndex,
242
261
  "width": xScale.step() - xScale.paddingInner() / 2,
243
262
  "height": yRange[0] - yRange[1],
@@ -245,7 +264,6 @@ var HoverRectRoot = /*#__PURE__*/function (_Hover2) {
245
264
  "y": yRange[1]
246
265
  })) : null, yIndex !== null ? /*#__PURE__*/_react["default"].createElement(SHoverRect, _ref2.cn("SHoverRect", {
247
266
  "render": "rect",
248
- "ref": this.hoverRef,
249
267
  "index": yIndex,
250
268
  "width": xRange[1] - xRange[0],
251
269
  "height": yScale.step() - yScale.paddingInner() / 2,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Hover.js"],"names":["Hover","xIndex","yIndex","React","createRef","e","asProps","eventEmitter","data","scale","x","y","rootRef","xScale","yScale","current","pX","pY","vX","vY","undefined","state","setState","emit","hoverRef","unsubscribeMouseMoveRoot","subscribe","persist","handlerMouseMoveRoot","unsubscribeMouseLeaveRoot","handlerMouseLeaveRoot","Component","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 trottle from '@semcore/utils/lib/rafTrottle';\nimport { scaleOfBandwidth, getIndexFromData, eventToPoint, invert } 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 hoverRef = React.createRef();\n\n handlerMouseMoveRoot = trottle((e) => {\n const { eventEmitter, data, scale, x, y, rootRef } = this.asProps;\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.setState(state, () => {\n eventEmitter.emit(\n 'onTooltipVisible',\n xIndex !== null || yIndex !== null,\n state,\n this.hoverRef.current,\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('onMouseMoveRoot', (e) => {\n e.persist();\n this.handlerMouseMoveRoot(e);\n });\n this.unsubscribeMouseLeaveRoot = eventEmitter.subscribe(\n 'onMouseLeaveRoot',\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\n render=\"line\"\n ref={this.hoverRef}\n index={xIndex}\n x1={x1}\n y1={yRange[0]}\n x2={x1}\n y2={yRange[1]}\n />\n ) : null}\n {yIndex !== null ? (\n <SHoverLine\n render=\"line\"\n ref={this.hoverRef}\n index={yIndex}\n x1={xRange[0]}\n y1={y1}\n x2={xRange[1]}\n y2={y1}\n />\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 ref={this.hoverRef}\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 ref={this.hoverRef}\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":["Hover","xIndex","yIndex","document","createElement","e","asProps","eventEmitter","data","scale","x","y","rootRef","clientX","clientY","xScale","yScale","current","pX","pY","vX","vY","undefined","state","virtualElement","getBoundingClientRect","generateGetBoundingClientRect","CONSTANT","VIRTUAL_ELEMENT","setState","emit","width","height","top","right","bottom","left","unsubscribeMouseMoveRoot","subscribe","persist","handlerMouseMoveRoot","unsubscribeMouseLeaveRoot","handlerMouseLeaveRoot","Component","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 trottle from '@semcore/utils/lib/rafTrottle';\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 = 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('onMouseMoveRoot', (e) => {\n e.persist();\n this.handlerMouseMoveRoot(e);\n });\n this.unsubscribeMouseLeaveRoot = eventEmitter.subscribe(\n 'onMouseLeaveRoot',\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/cjs/Line.js CHANGED
@@ -89,6 +89,7 @@ var LineRoot = /*#__PURE__*/function (_Component) {
89
89
  key: "getNullProps",
90
90
  value: function getNullProps() {
91
91
  var _this$asProps2 = this.asProps,
92
+ x = _this$asProps2.x,
92
93
  y = _this$asProps2.y,
93
94
  d3 = _this$asProps2.d3,
94
95
  color = _this$asProps2.color,
@@ -96,7 +97,7 @@ var LineRoot = /*#__PURE__*/function (_Component) {
96
97
  return {
97
98
  d3: d3,
98
99
  // TODO: vertical
99
- data: (0, _utils.getNullData)(data, d3.defined(), y),
100
+ data: (0, _utils.getNullData)(data, (0, _utils.definedNullData)(x, y), y),
100
101
  color: color
101
102
  };
102
103
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Line.js"],"names":["LineRoot","asProps","x","y","d3","color","duration","delay","data","defined","SLine","Element","styles","hide","uid","size","rect","setAttribute","Component","style","$rootProps","curve","curveLinear","scale","xScale","yScale","p","Null","props","SNull","Dots"],"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, 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, duration } = this.asProps;\n return {\n x,\n y,\n d3,\n color,\n delay: duration,\n };\n }\n\n getNullProps() {\n const { y, d3, color, data } = this.asProps;\n return {\n d3,\n // TODO: vertical\n data: getNullData(data, d3.defined(), 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":["LineRoot","asProps","x","y","d3","color","duration","delay","data","SLine","Element","styles","hide","uid","size","rect","setAttribute","Component","style","$rootProps","curve","curveLinear","scale","xScale","yScale","defined","p","Null","props","SNull","Dots"],"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, duration } = this.asProps;\n return {\n x,\n y,\n d3,\n color,\n delay: duration,\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"}
@@ -48,14 +48,14 @@ var _ref = (
48
48
  /*__reshadow_css_start__*/
49
49
  (0, _core.__css__)(
50
50
  /*__inner_css_start__*/
51
- ".___SBar_16xcp_gg_{fill:var(--color);transition-property:height,width,y;transition-duration:var(--duration);transition-timing-function:ease-in-out}.___SBar_16xcp_gg_.__hide_16xcp_gg_{display:none}.___SBackground_16xcp_gg_{fill:#e4ecf1}"
51
+ ".___SBar_1d6c4_gg_{fill:var(--color);transition-property:height,width,y;transition-duration:var(--duration);transition-timing-function:ease-in-out}.___SBar_1d6c4_gg_.__hide_1d6c4_gg_{display:none}.___SBackground_1d6c4_gg_{fill:#e4ecf1}"
52
52
  /*__inner_css_end__*/
53
- , "11dolh1_gg_")
53
+ , "1umd7lh_gg_")
54
54
  /*__reshadow_css_end__*/
55
55
  , {
56
- "__SBar": "___SBar_16xcp_gg_",
57
- "_hide": "__hide_16xcp_gg_",
58
- "__SBackground": "___SBackground_16xcp_gg_"
56
+ "__SBar": "___SBar_1d6c4_gg_",
57
+ "_hide": "__hide_1d6c4_gg_",
58
+ "__SBackground": "___SBackground_1d6c4_gg_"
59
59
  }),
60
60
  style = (0, _extends2["default"])({}, _ref);
61
61
 
@@ -93,7 +93,7 @@ var StackBarRoot = /*#__PURE__*/function (_Component) {
93
93
  return acc;
94
94
  }, []);
95
95
 
96
- stack.keys(keys.reverse());
96
+ stack.keys(keys);
97
97
  }
98
98
 
99
99
  return stack(data);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/StackBar.js"],"names":["DEFAULT_INSTANCE","Symbol","XY0","StackBarRoot","asProps","Children","data","stack","keys","React","toArray","reduce","acc","child","isValidElement","type","StackBar","Bar","push","props","y","HorizontalBar","x","reverse","series","find","s","key","map","y0","x0","Element","getSeries","Component","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.reverse());\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":["DEFAULT_INSTANCE","Symbol","XY0","StackBarRoot","asProps","Children","data","stack","keys","React","toArray","reduce","acc","child","isValidElement","type","StackBar","Bar","push","props","y","HorizontalBar","x","series","find","s","key","map","y0","x0","Element","getSeries","Component","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"}
@@ -46,15 +46,15 @@ var _ref = (
46
46
  /*__reshadow_css_start__*/
47
47
  (0, _core.__css__)(
48
48
  /*__inner_css_start__*/
49
- ".___SArea_1dtc7_gg_{fill:var(--color);fill-opacity:.4}.___SAreaLine_1dtc7_gg_{stroke:var(--color);stroke-width:3;fill:transparent}.___SArea_1dtc7_gg_,.___SAreaLine_1dtc7_gg_{transition-property:d;transition-duration:var(--duration);transition-timing-function:ease-in-out}.___SNull_1dtc7_gg_{fill:transparent;stroke:#bdc4c6;stroke-dasharray:4}.___SNull_1dtc7_gg_.__hide_1dtc7_gg_{display:none}"
49
+ ".___SArea_12fdd_gg_{fill:var(--color);fill-opacity:.4}.___SAreaLine_12fdd_gg_{stroke:var(--color);stroke-width:3;fill:transparent}.___SArea_12fdd_gg_,.___SAreaLine_12fdd_gg_{transition-property:d;transition-duration:var(--duration);transition-timing-function:ease-in-out}.___SNull_12fdd_gg_{fill:transparent;stroke:#bdc4c6;stroke-dasharray:4}.___SNull_12fdd_gg_.__hide_12fdd_gg_{display:none}"
50
50
  /*__inner_css_end__*/
51
- , "1gp6fny_gg_")
51
+ , "75xku6_gg_")
52
52
  /*__reshadow_css_end__*/
53
53
  , {
54
- "__SArea": "___SArea_1dtc7_gg_",
55
- "__SAreaLine": "___SAreaLine_1dtc7_gg_",
56
- "__SNull": "___SNull_1dtc7_gg_",
57
- "_hide": "__hide_1dtc7_gg_"
54
+ "__SArea": "___SArea_12fdd_gg_",
55
+ "__SAreaLine": "___SAreaLine_12fdd_gg_",
56
+ "__SNull": "___SNull_12fdd_gg_",
57
+ "_hide": "__hide_12fdd_gg_"
58
58
  }),
59
59
  style = (0, _extends2["default"])({}, _ref);
60
60
 
package/lib/cjs/utils.js CHANGED
@@ -7,11 +7,14 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.eventToPoint = eventToPoint;
9
9
  exports.invert = invert;
10
+ exports.definedNullData = definedNullData;
10
11
  exports.definedData = definedData;
11
12
  exports.scaleOfBandwidth = scaleOfBandwidth;
12
13
  exports.minMax = minMax;
13
14
  exports.getNullData = getNullData;
14
15
  exports.getIndexFromData = getIndexFromData;
16
+ exports.roundedPath = roundedPath;
17
+ exports.getBandwidth = getBandwidth;
15
18
  exports.CONSTANT = void 0;
16
19
 
17
20
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
@@ -42,12 +45,18 @@ function invert(scale, value) {
42
45
  return (0, _d3Scale.scaleQuantize)().domain(range[0] <= range[1] ? range : range.slice().reverse()).range(range[0] <= range[1] ? domain : domain.slice().reverse())(value);
43
46
  }
44
47
 
45
- function definedData(x, y) {
48
+ function definedNullData(x, y) {
46
49
  return function (p) {
47
50
  return p[x] !== null && p[y] !== null;
48
51
  };
49
52
  }
50
53
 
54
+ function definedData(x, y) {
55
+ return function (p) {
56
+ return p[x] !== null && p[x] !== undefined && p[y] !== null && p[y] !== undefined;
57
+ };
58
+ }
59
+
51
60
  function scaleOfBandwidth(scale, value) {
52
61
  return scale.bandwidth ? scale(value) + scale.bandwidth() / 2 : scale(value);
53
62
  }
@@ -113,4 +122,61 @@ function getIndexFromData(data, scale, key, value) {
113
122
  return null;
114
123
  }
115
124
  }
125
+
126
+ function roundedPath(x, y, w, h, r) {
127
+ var tl = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;
128
+ var tr = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : false;
129
+ var bl = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : false;
130
+ var br = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : false;
131
+ var retval;
132
+ retval = 'M' + (x + r) + ',' + y;
133
+ retval += 'h' + (w - 2 * r);
134
+
135
+ if (tr) {
136
+ retval += 'a' + r + ',' + r + ' 0 0 1 ' + r + ',' + r;
137
+ } else {
138
+ retval += 'h' + r;
139
+ retval += 'v' + r;
140
+ }
141
+
142
+ retval += 'v' + (h - 2 * r);
143
+
144
+ if (br) {
145
+ retval += 'a' + r + ',' + r + ' 0 0 1 ' + -r + ',' + r;
146
+ } else {
147
+ retval += 'v' + r;
148
+ retval += 'h' + -r;
149
+ }
150
+
151
+ retval += 'h' + (2 * r - w);
152
+
153
+ if (bl) {
154
+ retval += 'a' + r + ',' + r + ' 0 0 1 ' + -r + ',' + -r;
155
+ } else {
156
+ retval += 'h' + -r;
157
+ retval += 'v' + -r;
158
+ }
159
+
160
+ retval += 'v' + (2 * r - h);
161
+
162
+ if (tl) {
163
+ retval += 'a' + r + ',' + r + ' 0 0 1 ' + r + ',' + -r;
164
+ } else {
165
+ retval += 'v' + -r;
166
+ retval += 'h' + r;
167
+ }
168
+
169
+ retval += 'z';
170
+ return retval;
171
+ }
172
+
173
+ function getBandwidth(scale) {
174
+ if ('bandwidth' in scale) {
175
+ return scale.bandwidth();
176
+ }
177
+
178
+ var range = scale.range();
179
+ var domain = scale.domain();
180
+ return Math.abs(range[range.length - 1] - range[0]) / domain.length;
181
+ }
116
182
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils.js"],"names":["CONSTANT","VIRTUAL_ELEMENT","Symbol","eventToPoint","event","svgRoot","node","currentTarget","target","rect","getBoundingClientRect","clientX","left","clientLeft","clientY","top","clientTop","invert","scale","value","range","domain","slice","reverse","definedData","x","y","p","scaleOfBandwidth","bandwidth","minMax","data","key","d","getNullData","defined","name","reduce","acc","i","push","prev","next","defNext","find","length","defPrev","getIndexFromData","bisect","center","step","index","findIndex","console","warn"],"mappings":"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","sourcesContent":["import { extent, bisector } from 'd3-array';\nimport { scaleQuantize } from 'd3-scale';\n\nconst CONSTANT = {\n VIRTUAL_ELEMENT: Symbol('VIRTUAL_ELEMENT'),\n};\n\nexport { CONSTANT };\n\nexport function eventToPoint(event, svgRoot) {\n const node = event.currentTarget || event.target;\n const rect = svgRoot.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n}\n\nexport function invert(scale, value) {\n if (scale.invert) return scale.invert(value);\n\n const range = scale.range();\n const domain = scale.domain();\n\n return scaleQuantize()\n .domain(range[0] <= range[1] ? range : range.slice().reverse())\n .range(range[0] <= range[1] ? domain : domain.slice().reverse())(value);\n}\n\nexport function definedData(x, y) {\n return (p) => p[x] !== null && p[y] !== null;\n}\n\nexport function scaleOfBandwidth(scale, value) {\n return scale.bandwidth ? scale(value) + scale.bandwidth() / 2 : scale(value);\n}\n\nexport function minMax(data, key) {\n if (typeof key === 'string') {\n return extent(data, (d) => d[key]);\n }\n return extent(data, key);\n}\n\nexport function getNullData(data, defined, name) {\n return data.reduce((acc, d, i, data) => {\n if (defined(d)) {\n acc.push({\n [name]: null,\n });\n } else {\n const prev = data[i - 1];\n const next = data[i + 1];\n\n if (i === 0) {\n const defNext = data.find(defined);\n acc.push({\n ...d,\n [name]: defNext ? defNext[name] : null,\n });\n }\n\n // prev\n if (prev && defined(prev)) {\n acc.push(prev);\n }\n\n // next\n if (next && defined(next)) {\n acc.push(next);\n }\n\n if (data.length - 1 === i) {\n const defPrev = data\n .slice()\n .reverse()\n .find(defined);\n acc.push({\n ...d,\n [name]: defPrev ? defPrev[name] : null,\n });\n }\n }\n return acc;\n }, []);\n}\n\nexport function getIndexFromData(data, scale, key, value) {\n // detect line chart\n if ('invert' in scale && typeof scale.invert === 'function') {\n const bisect = bisector((d) => d[key]).center;\n return bisect(data, value);\n }\n // detect bar chart\n else if ('step' in scale && typeof scale.step !== 'undefined') {\n const index = data.findIndex((d) => d[key] === value);\n return index >= 0 ? index : null;\n } else {\n console.warn('[d3-chart/utils/getIndexFromData] encountered incompatible scale type');\n return null;\n }\n}\n"],"file":"utils.js"}
1
+ {"version":3,"sources":["../../src/utils.js"],"names":["CONSTANT","VIRTUAL_ELEMENT","Symbol","eventToPoint","event","svgRoot","node","currentTarget","target","rect","getBoundingClientRect","clientX","left","clientLeft","clientY","top","clientTop","invert","scale","value","range","domain","slice","reverse","definedNullData","x","y","p","definedData","undefined","scaleOfBandwidth","bandwidth","minMax","data","key","d","getNullData","defined","name","reduce","acc","i","push","prev","next","defNext","find","length","defPrev","getIndexFromData","bisect","center","step","index","findIndex","console","warn","roundedPath","w","h","r","tl","tr","bl","br","retval","getBandwidth","Math","abs"],"mappings":"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","sourcesContent":["import { extent, bisector } from 'd3-array';\nimport { scaleQuantize } from 'd3-scale';\n\nconst CONSTANT = {\n VIRTUAL_ELEMENT: Symbol('VIRTUAL_ELEMENT'),\n};\n\nexport { CONSTANT };\n\nexport function eventToPoint(event, svgRoot) {\n const node = event.currentTarget || event.target;\n const rect = svgRoot.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n}\n\nexport function invert(scale, value) {\n if (scale.invert) return scale.invert(value);\n\n const range = scale.range();\n const domain = scale.domain();\n\n return scaleQuantize()\n .domain(range[0] <= range[1] ? range : range.slice().reverse())\n .range(range[0] <= range[1] ? domain : domain.slice().reverse())(value);\n}\n\nexport function definedNullData(x, y) {\n return (p) => p[x] !== null && p[y] !== null;\n}\n\nexport function definedData(x, y) {\n return (p) => {\n return p[x] !== null && p[x] !== undefined && (p[y] !== null && p[y] !== undefined);\n };\n}\n\nexport function scaleOfBandwidth(scale, value) {\n return scale.bandwidth ? scale(value) + scale.bandwidth() / 2 : scale(value);\n}\n\nexport function minMax(data, key) {\n if (typeof key === 'string') {\n return extent(data, (d) => d[key]);\n }\n return extent(data, key);\n}\n\nexport function getNullData(data, defined, name) {\n return data.reduce((acc, d, i, data) => {\n if (defined(d)) {\n acc.push({\n [name]: null,\n });\n } else {\n const prev = data[i - 1];\n const next = data[i + 1];\n\n if (i === 0) {\n const defNext = data.find(defined);\n acc.push({\n ...d,\n [name]: defNext ? defNext[name] : null,\n });\n }\n\n // prev\n if (prev && defined(prev)) {\n acc.push(prev);\n }\n\n // next\n if (next && defined(next)) {\n acc.push(next);\n }\n\n if (data.length - 1 === i) {\n const defPrev = data\n .slice()\n .reverse()\n .find(defined);\n acc.push({\n ...d,\n [name]: defPrev ? defPrev[name] : null,\n });\n }\n }\n return acc;\n }, []);\n}\n\nexport function getIndexFromData(data, scale, key, value) {\n // detect line chart\n if ('invert' in scale && typeof scale.invert === 'function') {\n const bisect = bisector((d) => d[key]).center;\n return bisect(data, value);\n }\n // detect bar chart\n else if ('step' in scale && typeof scale.step !== 'undefined') {\n const index = data.findIndex((d) => d[key] === value);\n return index >= 0 ? index : null;\n } else {\n console.warn('[d3-chart/utils/getIndexFromData] encountered incompatible scale type');\n return null;\n }\n}\n\nexport function roundedPath(x, y, w, h, r, tl = false, tr = false, bl = false, br = false) {\n let retval;\n retval = 'M' + (x + r) + ',' + y;\n retval += 'h' + (w - 2 * r);\n if (tr) {\n retval += 'a' + r + ',' + r + ' 0 0 1 ' + r + ',' + r;\n } else {\n retval += 'h' + r;\n retval += 'v' + r;\n }\n retval += 'v' + (h - 2 * r);\n if (br) {\n retval += 'a' + r + ',' + r + ' 0 0 1 ' + -r + ',' + r;\n } else {\n retval += 'v' + r;\n retval += 'h' + -r;\n }\n retval += 'h' + (2 * r - w);\n if (bl) {\n retval += 'a' + r + ',' + r + ' 0 0 1 ' + -r + ',' + -r;\n } else {\n retval += 'h' + -r;\n retval += 'v' + -r;\n }\n retval += 'v' + (2 * r - h);\n if (tl) {\n retval += 'a' + r + ',' + r + ' 0 0 1 ' + r + ',' + -r;\n } else {\n retval += 'v' + -r;\n retval += 'h' + r;\n }\n retval += 'z';\n return retval;\n}\n\nexport function getBandwidth(scale) {\n if ('bandwidth' in scale) {\n return scale.bandwidth();\n }\n\n const range = scale.range();\n const domain = scale.domain();\n return Math.abs(range[range.length - 1] - range[0]) / domain.length;\n}\n"],"file":"utils.js"}
package/lib/es6/Area.js CHANGED
@@ -16,7 +16,7 @@ import { area, curveLinear, line } from 'd3-shape';
16
16
  import Dots from './Dots';
17
17
  import { Component, sstyled } from '@semcore/core';
18
18
  import createElement from './createElement';
19
- import { definedData, scaleOfBandwidth, getNullData } from './utils';
19
+ import { definedData, scaleOfBandwidth, getNullData, definedNullData } from './utils';
20
20
  import ClipPath from './ClipPath';
21
21
  import uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';
22
22
 
@@ -70,12 +70,13 @@ var AreaRoot = /*#__PURE__*/function (_Component) {
70
70
  key: "getNullProps",
71
71
  value: function getNullProps() {
72
72
  var _this$asProps2 = this.asProps,
73
+ x = _this$asProps2.x,
73
74
  y = _this$asProps2.y,
74
75
  color = _this$asProps2.color,
75
76
  data = _this$asProps2.data,
76
77
  d3Line = _this$asProps2.d3Line;
77
78
  return {
78
- data: getNullData(data, d3Line.defined(), y),
79
+ data: getNullData(data, definedNullData(x, y), y),
79
80
  d3: d3Line,
80
81
  color: color
81
82
  };