@semcore/d3-chart 2.1.0 → 2.2.2

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 (114) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +113 -0
  3. package/lib/cjs/Area.js +79 -38
  4. package/lib/cjs/Area.js.map +1 -1
  5. package/lib/cjs/Axis.js +14 -14
  6. package/lib/cjs/Bar.js +14 -12
  7. package/lib/cjs/Bar.js.map +1 -1
  8. package/lib/cjs/Bubble.js +11 -10
  9. package/lib/cjs/Bubble.js.map +1 -1
  10. package/lib/cjs/Donut.js +127 -51
  11. package/lib/cjs/Donut.js.map +1 -1
  12. package/lib/cjs/Dots.js +24 -25
  13. package/lib/cjs/Dots.js.map +1 -1
  14. package/lib/cjs/GroupBar.js +7 -7
  15. package/lib/cjs/GroupBar.js.map +1 -1
  16. package/lib/cjs/HorizontalBar.js +8 -8
  17. package/lib/cjs/Hover.js +4 -4
  18. package/lib/cjs/Line.js +12 -10
  19. package/lib/cjs/Line.js.map +1 -1
  20. package/lib/cjs/Plot.js +3 -3
  21. package/lib/cjs/RadialTree.js +12 -12
  22. package/lib/cjs/ReferenceLine.js +258 -0
  23. package/lib/cjs/ReferenceLine.js.map +1 -0
  24. package/lib/cjs/ResponsiveContainer.js +1 -1
  25. package/lib/cjs/ResponsiveContainer.js.map +1 -1
  26. package/lib/cjs/ScatterPlot.js +8 -7
  27. package/lib/cjs/ScatterPlot.js.map +1 -1
  28. package/lib/cjs/StackBar.js +6 -6
  29. package/lib/cjs/StackedArea.js +7 -7
  30. package/lib/cjs/Tooltip.js +11 -10
  31. package/lib/cjs/Tooltip.js.map +1 -1
  32. package/lib/cjs/Venn.js +7 -7
  33. package/lib/cjs/createElement.js +6 -4
  34. package/lib/cjs/createElement.js.map +1 -1
  35. package/lib/cjs/index.js +8 -0
  36. package/lib/cjs/index.js.map +1 -1
  37. package/lib/cjs/style/dot.shadow.css +10 -5
  38. package/lib/cjs/style/reference-line.shadow.css +37 -0
  39. package/lib/cjs/types/Area.d.ts +1 -0
  40. package/lib/cjs/types/Bar.d.ts +4 -0
  41. package/lib/cjs/types/Bubble.d.ts +6 -1
  42. package/lib/cjs/types/Donut.d.ts +4 -0
  43. package/lib/cjs/types/ReferenceLine.d.ts +31 -0
  44. package/lib/cjs/types/index.d.ts +3 -0
  45. package/lib/es6/Area.js +77 -36
  46. package/lib/es6/Area.js.map +1 -1
  47. package/lib/es6/Axis.js +14 -14
  48. package/lib/es6/Bar.js +14 -12
  49. package/lib/es6/Bar.js.map +1 -1
  50. package/lib/es6/Bubble.js +11 -10
  51. package/lib/es6/Bubble.js.map +1 -1
  52. package/lib/es6/Donut.js +121 -51
  53. package/lib/es6/Donut.js.map +1 -1
  54. package/lib/es6/Dots.js +24 -23
  55. package/lib/es6/Dots.js.map +1 -1
  56. package/lib/es6/GroupBar.js +7 -7
  57. package/lib/es6/GroupBar.js.map +1 -1
  58. package/lib/es6/HorizontalBar.js +8 -8
  59. package/lib/es6/Hover.js +4 -4
  60. package/lib/es6/Line.js +12 -10
  61. package/lib/es6/Line.js.map +1 -1
  62. package/lib/es6/Plot.js +3 -3
  63. package/lib/es6/RadialTree.js +12 -12
  64. package/lib/es6/ReferenceLine.js +244 -0
  65. package/lib/es6/ReferenceLine.js.map +1 -0
  66. package/lib/es6/ResponsiveContainer.js +1 -1
  67. package/lib/es6/ResponsiveContainer.js.map +1 -1
  68. package/lib/es6/ScatterPlot.js +8 -7
  69. package/lib/es6/ScatterPlot.js.map +1 -1
  70. package/lib/es6/StackBar.js +6 -6
  71. package/lib/es6/StackedArea.js +7 -7
  72. package/lib/es6/Tooltip.js +11 -10
  73. package/lib/es6/Tooltip.js.map +1 -1
  74. package/lib/es6/Venn.js +7 -7
  75. package/lib/es6/createElement.js +5 -4
  76. package/lib/es6/createElement.js.map +1 -1
  77. package/lib/es6/index.js +1 -0
  78. package/lib/es6/index.js.map +1 -1
  79. package/lib/es6/style/dot.shadow.css +10 -5
  80. package/lib/es6/style/reference-line.shadow.css +37 -0
  81. package/lib/es6/types/Area.d.ts +1 -0
  82. package/lib/es6/types/Bar.d.ts +4 -0
  83. package/lib/es6/types/Bubble.d.ts +6 -1
  84. package/lib/es6/types/Donut.d.ts +4 -0
  85. package/lib/es6/types/ReferenceLine.d.ts +31 -0
  86. package/lib/es6/types/index.d.ts +3 -0
  87. package/lib/types/Area.d.ts +1 -0
  88. package/lib/types/Bar.d.ts +4 -0
  89. package/lib/types/Bubble.d.ts +6 -1
  90. package/lib/types/Donut.d.ts +4 -0
  91. package/lib/types/ReferenceLine.d.ts +31 -0
  92. package/lib/types/index.d.ts +3 -0
  93. package/package.json +12 -12
  94. package/src/Area.jsx +41 -8
  95. package/src/Bar.jsx +6 -5
  96. package/src/Bubble.jsx +1 -0
  97. package/src/Donut.jsx +96 -29
  98. package/src/Dots.jsx +11 -14
  99. package/src/GroupBar.jsx +1 -1
  100. package/src/Line.jsx +2 -1
  101. package/src/ReferenceLine.jsx +146 -0
  102. package/src/ResponsiveContainer.jsx +1 -1
  103. package/src/ScatterPlot.jsx +1 -0
  104. package/src/Tooltip.jsx +2 -3
  105. package/src/createElement.jsx +6 -4
  106. package/src/index.js +1 -0
  107. package/src/style/dot.shadow.css +10 -5
  108. package/src/style/reference-line.shadow.css +37 -0
  109. package/src/types/Area.d.ts +1 -0
  110. package/src/types/Bar.d.ts +4 -0
  111. package/src/types/Bubble.d.ts +6 -1
  112. package/src/types/Donut.d.ts +4 -0
  113. package/src/types/ReferenceLine.d.ts +31 -0
  114. package/src/types/index.d.ts +3 -0
package/lib/es6/Axis.js CHANGED
@@ -27,23 +27,23 @@ var style = (
27
27
  /*__reshadow_css_start__*/
28
28
  _sstyled.insert(
29
29
  /*__inner_css_start__*/
30
- ".___SAxis_1gnbc_gg_{stroke:#c4c7cf}.___SAxis_1gnbc_gg_.__hide_1gnbc_gg_{display:none}.___STick_1gnbc_gg_{font-size:12px;fill:#6c6e79}.___STick_1gnbc_gg_.__hide_1gnbc_gg_{display:none}.___SGrid_1gnbc_gg_{fill:transparent;stroke:#e0e1e9}.___STitle_1gnbc_gg_{font-size:12px;fill:#6c6e79;transform-origin:var(--transform-origin_1kokr81)}.___STitle_1gnbc_gg_._position_top_1gnbc_gg_{text-anchor:middle}.___STitle_1gnbc_gg_._position_bottom_1gnbc_gg_{text-anchor:middle;alignment-baseline:hanging}.___STitle_1gnbc_gg_._position_right_1gnbc_gg_{transform:rotate(-90deg);alignment-baseline:middle;text-anchor:middle}.___STitle_1gnbc_gg_._position_left_1gnbc_gg_{transform:rotate(-90deg);text-anchor:middle;alignment-baseline:middle}.___STick_1gnbc_gg_._position_top_1gnbc_gg_{transform:translateY(-12px);text-anchor:middle}.___STick_1gnbc_gg_._position_bottom_1gnbc_gg_{transform:translateY(12px);text-anchor:middle;alignment-baseline:hanging}.___STick_1gnbc_gg_._position_right_1gnbc_gg_{transform:translateX(16px);text-anchor:start;alignment-baseline:middle}.___STick_1gnbc_gg_._position_left_1gnbc_gg_{transform:translateX(-16px);text-anchor:end;alignment-baseline:middle}.___STick_1gnbc_gg_._position_custom_0_1gnbc_gg_{transform:translateY(12px);text-anchor:middle;alignment-baseline:hanging}.___STick_1gnbc_gg_._position_custom_1_1gnbc_gg_{transform:translateX(-16px);text-anchor:end;alignment-baseline:middle}"
30
+ ".___SAxis_foe7j_gg_{stroke:#c4c7cf}.___SAxis_foe7j_gg_.__hide_foe7j_gg_{display:none}.___STick_foe7j_gg_{font-size:12px;fill:#6c6e79}.___STick_foe7j_gg_.__hide_foe7j_gg_{display:none}.___SGrid_foe7j_gg_{fill:transparent;stroke:#e0e1e9}.___STitle_foe7j_gg_{font-size:12px;fill:#6c6e79;transform-origin:var(--transform-origin_foe7j)}.___STitle_foe7j_gg_._position_top_foe7j_gg_{text-anchor:middle}.___STitle_foe7j_gg_._position_bottom_foe7j_gg_{text-anchor:middle;alignment-baseline:hanging}.___STitle_foe7j_gg_._position_right_foe7j_gg_{transform:rotate(-90deg);alignment-baseline:middle;text-anchor:middle}.___STitle_foe7j_gg_._position_left_foe7j_gg_{transform:rotate(-90deg);text-anchor:middle;alignment-baseline:middle}.___STick_foe7j_gg_._position_top_foe7j_gg_{transform:translateY(-12px);text-anchor:middle}.___STick_foe7j_gg_._position_bottom_foe7j_gg_{transform:translateY(12px);text-anchor:middle;alignment-baseline:hanging}.___STick_foe7j_gg_._position_right_foe7j_gg_{transform:translateX(16px);text-anchor:start;alignment-baseline:middle}.___STick_foe7j_gg_._position_left_foe7j_gg_{transform:translateX(-16px);text-anchor:end;alignment-baseline:middle}.___STick_foe7j_gg_._position_custom_0_foe7j_gg_{transform:translateY(12px);text-anchor:middle;alignment-baseline:hanging}.___STick_foe7j_gg_._position_custom_1_foe7j_gg_{transform:translateX(-16px);text-anchor:end;alignment-baseline:middle}"
31
31
  /*__inner_css_end__*/
32
- , "1kokr81_gg_")
32
+ , "foe7j_gg_")
33
33
  /*__reshadow_css_end__*/
34
34
  , {
35
- "__SAxis": "___SAxis_1gnbc_gg_",
36
- "_hide": "__hide_1gnbc_gg_",
37
- "__STick": "___STick_1gnbc_gg_",
38
- "__SGrid": "___SGrid_1gnbc_gg_",
39
- "__STitle": "___STitle_1gnbc_gg_",
40
- "--transform-origin": "--transform-origin_1kokr81",
41
- "_position_top": "_position_top_1gnbc_gg_",
42
- "_position_bottom": "_position_bottom_1gnbc_gg_",
43
- "_position_right": "_position_right_1gnbc_gg_",
44
- "_position_left": "_position_left_1gnbc_gg_",
45
- "_position_custom_0": "_position_custom_0_1gnbc_gg_",
46
- "_position_custom_1": "_position_custom_1_1gnbc_gg_"
35
+ "__SAxis": "___SAxis_foe7j_gg_",
36
+ "_hide": "__hide_foe7j_gg_",
37
+ "__STick": "___STick_foe7j_gg_",
38
+ "__SGrid": "___SGrid_foe7j_gg_",
39
+ "__STitle": "___STitle_foe7j_gg_",
40
+ "--transform-origin": "--transform-origin_foe7j",
41
+ "_position_top": "_position_top_foe7j_gg_",
42
+ "_position_bottom": "_position_bottom_foe7j_gg_",
43
+ "_position_right": "_position_right_foe7j_gg_",
44
+ "_position_left": "_position_left_foe7j_gg_",
45
+ "_position_custom_0": "_position_custom_0_foe7j_gg_",
46
+ "_position_custom_1": "_position_custom_1_foe7j_gg_"
47
47
  });
48
48
  var CUSTOM_0 = Symbol('custom_0');
49
49
  var CUSTOM_1 = Symbol('custom_1');
package/lib/es6/Bar.js CHANGED
@@ -24,17 +24,17 @@ var style = (
24
24
  /*__reshadow_css_start__*/
25
25
  _sstyled.insert(
26
26
  /*__inner_css_start__*/
27
- ".___SBar_1fm2a_gg_{fill:#2bb3ff;transition-property:height,width,y;transition-duration:var(--duration_1iw4ich);transition-timing-function:ease-in-out}.___SBar_1fm2a_gg_.__color_1fm2a_gg_{fill:var(--color_1iw4ich)}.___SBar_1fm2a_gg_.__hide_1fm2a_gg_{display:none}.___SBackground_1fm2a_gg_{fill:#c4c7cf}"
27
+ ".___SBar_q3h40_gg_{fill:#2bb3ff;transition-property:height,width,y;transition-duration:var(--duration_q3h40);transition-timing-function:ease-in-out}.___SBar_q3h40_gg_.__color_q3h40_gg_{fill:var(--color_q3h40)}.___SBar_q3h40_gg_.__hide_q3h40_gg_{display:none}.___SBackground_q3h40_gg_{fill:#c4c7cf}"
28
28
  /*__inner_css_end__*/
29
- , "1iw4ich_gg_")
29
+ , "q3h40_gg_")
30
30
  /*__reshadow_css_end__*/
31
31
  , {
32
- "__SBar": "___SBar_1fm2a_gg_",
33
- "--duration": "--duration_1iw4ich",
34
- "_color": "__color_1fm2a_gg_",
35
- "--color": "--color_1iw4ich",
36
- "_hide": "__hide_1fm2a_gg_",
37
- "__SBackground": "___SBackground_1fm2a_gg_"
32
+ "__SBar": "___SBar_q3h40_gg_",
33
+ "--duration": "--duration_q3h40",
34
+ "_color": "__color_q3h40_gg_",
35
+ "--color": "--color_q3h40",
36
+ "_hide": "__hide_q3h40_gg_",
37
+ "__SBackground": "___SBackground_q3h40_gg_"
38
38
  });
39
39
 
40
40
  var BarRoot = /*#__PURE__*/function (_Component) {
@@ -99,15 +99,16 @@ var BarRoot = /*#__PURE__*/function (_Component) {
99
99
  duration = _this$asProps3.duration,
100
100
  uid = _this$asProps3.uid,
101
101
  r = _this$asProps3.r,
102
+ hMin = _this$asProps3.hMin,
102
103
  widthProps = _this$asProps3.width;
103
104
 
104
105
  var _scale = _slicedToArray(scale, 2),
105
106
  xScale = _scale[0],
106
107
  yScale = _scale[1];
107
108
 
108
- var barY = yScale(Math.max(d[y0] ?? 0, d[y])) + offset[1];
109
+ var barY = yScale(Math.max(d[y0] ?? 0, d[y])) + offset[1] - (Object.is(d[y], 0) ? hMin : 0);
109
110
  var barX = xScale(d[x]) + offset[0];
110
- var height = Math.abs(yScale(d[y]) - Math.min(yScale(yScale.domain()[0]), yScale(d[y0] ?? 0)));
111
+ var height = Math.abs(yScale(d[y]) - Math.min(yScale(yScale.domain()[0]), yScale(d[y0] ?? 0))) || hMin;
111
112
  var width = widthProps || getBandwidth(xScale);
112
113
  var dSvg = getRect({
113
114
  x: barX,
@@ -115,7 +116,7 @@ var BarRoot = /*#__PURE__*/function (_Component) {
115
116
  width: width,
116
117
  height: height,
117
118
  radius: Array.isArray(r) ? r[i] : r,
118
- position: d[y] > 0 ? 'top' : 'bottom'
119
+ position: d[y] > 0 || Object.is(d[y], 0) ? 'top' : 'bottom'
119
120
  });
120
121
  return _ref = sstyled(styles), /*#__PURE__*/React.createElement(SBar, _ref.cn("SBar", {
121
122
  "key": "bar-".concat(i),
@@ -166,7 +167,8 @@ _defineProperty(BarRoot, "enhance", [uniqueIDEnhancement()]);
166
167
  _defineProperty(BarRoot, "defaultProps", {
167
168
  offset: [0, 0],
168
169
  duration: 500,
169
- r: 2
170
+ r: 2,
171
+ hMin: 4
170
172
  });
171
173
 
172
174
  function Background(props) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Bar.jsx"],"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":";;;;;;;;;;;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,UAAT,QAA2B,eAA3B;AACA,SAASC,SAAT,EAAoBC,OAApB,QAAmC,eAAnC;AACA,OAAOC,mBAAP,MAAgC,6BAAhC;AACA,OAAOC,aAAP,MAA0B,iBAA1B;AACA,OAAOC,QAAP,MAAqB,YAArB;AACA,SAASC,YAAT,EAAuBC,WAAvB,QAA0C,SAA1C;;;;;;;;;;;;;;;;;;;;IAIMC,O;;;;;;;;;;;;;WAWJ,4BAAmBC,KAAnB,EAA0BC,KAA1B,EAAiC;AAC/B,0BAAoB,KAAKC,OAAzB;AAAA,UAAQC,CAAR,iBAAQA,CAAR;AAAA,UAAWC,IAAX,iBAAWA,IAAX;AACA,aAAO;AACLC,QAAAA,KAAK,EAAED,IAAI,CAACH,KAAD,CAAJ,CAAYE,CAAZ;AADF,OAAP;AAGD;;;WAED,wBAAe;AACb,2BAA0B,KAAKD,OAA/B;AAAA,UAAQI,QAAR,kBAAQA,QAAR;AAAA,UAAkBC,GAAlB,kBAAkBA,GAAlB;AACA,UAAMC,UAAU,GAAGjB,UAAU,GAAGkB,SAAb,GAAyBC,SAAzB,YAAuCH,GAAvC,WAAnB;AACA,UAAMI,cAAc,GAAGH,UAAU,CAACI,IAAX,EAAvB;;AAEA,UAAIN,QAAQ,GAAG,CAAX,IAAgBK,cAAhB,IAAkCA,cAAc,CAACE,YAAf,CAA4B,GAA5B,MAAqC,GAA3E,EAAgF;AAC9EL,QAAAA,UAAU,CAACjB,UAAX,GAAwBe,QAAxB,CAAiCA,QAAjC,EAA2CQ,IAA3C,CAAgD,GAAhD,EAAqD,CAArD;AACD;AACF;;;WAED,8BAAqB;AACnB,WAAKC,YAAL;AACD;;;WAED,6BAAoB;AAClB,WAAKA,YAAL;AACD;;;WAED,mBAAUC,CAAV,EAAaC,CAAb,EAAgB;AAAA;;AACd,UAAMC,IAAI,GAAG,KAAKC,OAAlB;AACA,2BAaI,KAAKjB,OAbT;AAAA,UACEkB,MADF,kBACEA,MADF;AAAA,UAEEC,KAFF,kBAEEA,KAFF;AAAA,UAGElB,CAHF,kBAGEA,CAHF;AAAA,UAIEmB,CAJF,kBAIEA,CAJF;AAAA,UAKEC,EALF,kBAKEA,EALF;AAAA,UAMEC,KANF,kBAMEA,KANF;AAAA,UAOEC,IAPF,kBAOEA,IAPF;AAAA,UAQEC,MARF,kBAQEA,MARF;AAAA,UASEpB,QATF,kBASEA,QATF;AAAA,UAUEC,GAVF,kBAUEA,GAVF;AAAA,UAWEoB,CAXF,kBAWEA,CAXF;AAAA,UAYSC,UAZT,kBAYEC,KAZF;;AAeA,kCAAyBL,KAAzB;AAAA,UAAOM,MAAP;AAAA,UAAeC,MAAf;;AACA,UAAMC,IAAI,GAAGD,MAAM,CAACE,IAAI,CAACC,GAAL,CAASlB,CAAC,CAACO,EAAD,CAAD,IAAS,CAAlB,EAAqBP,CAAC,CAACM,CAAD,CAAtB,CAAD,CAAN,GAAqCI,MAAM,CAAC,CAAD,CAAxD;AACA,UAAMS,IAAI,GAAGL,MAAM,CAACd,CAAC,CAACb,CAAD,CAAF,CAAN,GAAeuB,MAAM,CAAC,CAAD,CAAlC;AACA,UAAMU,MAAM,GAAGH,IAAI,CAACI,GAAL,CACbN,MAAM,CAACf,CAAC,CAACM,CAAD,CAAF,CAAN,GAAeW,IAAI,CAACK,GAAL,CAASP,MAAM,CAACA,MAAM,CAACQ,MAAP,GAAgB,CAAhB,CAAD,CAAf,EAAqCR,MAAM,CAACf,CAAC,CAACO,EAAD,CAAD,IAAS,CAAV,CAA3C,CADF,CAAf;AAGA,UAAMM,KAAK,GAAGD,UAAU,IAAI/B,YAAY,CAACiC,MAAD,CAAxC;AACA,UAAMU,IAAI,GAAGC,OAAO,CAAC;AACnBtC,QAAAA,CAAC,EAAEgC,IADgB;AAEnBb,QAAAA,CAAC,EAAEU,IAFgB;AAGnBH,QAAAA,KAAK,EAALA,KAHmB;AAInBO,QAAAA,MAAM,EAANA,MAJmB;AAKnBM,QAAAA,MAAM,EAAEC,KAAK,CAACC,OAAN,CAAcjB,CAAd,IAAmBA,CAAC,CAACV,CAAD,CAApB,GAA0BU,CALf;AAMnBkB,QAAAA,QAAQ,EAAE7B,CAAC,CAACM,CAAD,CAAD,GAAO,CAAP,GAAW,KAAX,GAAmB;AANV,OAAD,CAApB;AASA,oBAAO7B,OAAO,CAAC2B,MAAD,CAAd,eACE,oBAAC,IAAD;AAAA,6BACcH,CADd;AAAA,kBAES,MAFT;AAAA,mCAGoBV,GAHpB;AAAA,0BAIkB,CAAC,MAAD,EAAS,OAAT,EAAkB,OAAlB,CAJlB;AAAA,4BAKmB,OALnB;AAAA,iBAMSS,CANT;AAAA,iBAOSC,CAPT;AAAA,gBAQQQ,IARR;AAAA,iBASSJ,KATT;AAAA,aAUKc,IAVL;AAAA,aAWKH,IAXL;AAAA,iBAYSH,KAZT;AAAA,kBAaUO,MAbV;AAAA,aAcKI,IAdL;AAAA,kCAemBlC,QAfnB;AAAA,SADF;AAmBD;;;WACD,kBAAS;AACP,2BAAsC,KAAKJ,OAA3C;AAAA,UAAQE,IAAR,kBAAQA,IAAR;AAAA,UAAcG,GAAd,kBAAcA,GAAd;AAAA,UAAmBuC,IAAnB,kBAAmBA,IAAnB;AAAA,UAAyBxC,QAAzB,kBAAyBA,QAAzB;AACA,0BACE,0CACGF,IAAI,CAAC2C,GAAL,CAAS,KAAKC,SAAL,CAAeC,IAAf,CAAoB,IAApB,CAAT,CADH,EAEG3C,QAAQ,iBACP,oBAAC,QAAD;AACE,QAAA,GAAG,YAAKC,GAAL,eADL;AAEE,QAAA,EAAE,EAAEA,GAFN;AAGE,QAAA,CAAC,EAAC,GAHJ;AAIE,QAAA,CAAC,EAAEuC,IAAI,CAAC,CAAD,CAJT;AAKE,QAAA,KAAK,EAAEA,IAAI,CAAC,CAAD,CALb;AAME,QAAA,MAAM,YAAKA,IAAI,CAAC,CAAD,CAAT;AANR,QAHJ,CADF;AAeD;;;;EA1GmBtD,S;;gBAAhBO,O,iBACiB,K;;gBADjBA,O,WAEWmD,K;;gBAFXnD,O,aAGa,CAACL,mBAAmB,EAApB,C;;gBAHbK,O,kBAKkB;AACpB2B,EAAAA,MAAM,EAAE,CAAC,CAAD,EAAI,CAAJ,CADY;AAEpBpB,EAAAA,QAAQ,EAAE,GAFU;AAGpBqB,EAAAA,CAAC,EAAE;AAHiB,C;;AAwGxB,SAASwB,UAAT,CAAoBnD,KAApB,EAA2B;AAAA;;AACzB,MAAiBoD,WAAjB,GAAuDpD,KAAvD,CAAQmB,OAAR;AAAA,MAA8BC,MAA9B,GAAuDpB,KAAvD,CAA8BoB,MAA9B;AAAA,MAAsCI,KAAtC,GAAuDxB,KAAvD,CAAsCwB,KAAtC;AAAA,MAA6CnB,KAA7C,GAAuDL,KAAvD,CAA6CK,KAA7C;;AAEA,+BAAyBmB,KAAzB;AAAA,MAAOM,MAAP;AAAA,MAAeC,MAAf;;AACA,MAAMsB,MAAM,GAAGtB,MAAM,CAACuB,KAAP,EAAf;AAEA,iBAAO7D,OAAO,CAAC2B,MAAD,CAAd,eACE,oBAAC,WAAD;AAAA,cACS,MADT;AAAA,wBAEmB,OAFnB;AAAA,aAGSU,MAAM,CAACyB,SAAP,EAHT;AAAA,cAIUF,MAAM,CAAC,CAAD,CAAN,GAAYA,MAAM,CAAC,CAAD,CAJ5B;AAAA,SAKKvB,MAAM,CAACzB,KAAD,CALX;AAAA,SAMKgD,MAAM,CAAC,CAAD;AANX,KADF;AAUD;;AAED,SAASZ,OAAT,QAA4D;AAAA,MAAzCtC,CAAyC,SAAzCA,CAAyC;AAAA,MAAtCmB,CAAsC,SAAtCA,CAAsC;AAAA,MAAnCO,KAAmC,SAAnCA,KAAmC;AAAA,MAA5BO,MAA4B,SAA5BA,MAA4B;AAAA,MAApBM,MAAoB,SAApBA,MAAoB;AAAA,MAAZG,QAAY,SAAZA,QAAY;AAC1D,MAAIT,MAAM,IAAIM,MAAd,EAAsB,OAAO,EAAP;;AACtB,MAAIA,MAAJ,EAAY;AACV,QAAIG,QAAQ,KAAK,KAAjB,EACE,OAAO/C,WAAW,CAACK,CAAD,EAAImB,CAAJ,EAAOO,KAAP,EAAcO,MAAd,EAAsBM,MAAtB,EAA8B,IAA9B,EAAoC,IAApC,EAA0C,KAA1C,EAAiD,KAAjD,CAAlB;AACF,WAAO5C,WAAW,CAACK,CAAD,EAAImB,CAAJ,EAAOO,KAAP,EAAcO,MAAd,EAAsBM,MAAtB,EAA8B,KAA9B,EAAqC,KAArC,EAA4C,IAA5C,EAAkD,IAAlD,CAAlB;AACD;;AACD,SAAO5C,WAAW,CAACK,CAAD,EAAImB,CAAJ,EAAOO,KAAP,EAAcO,MAAd,EAAsBM,MAAtB,CAAlB;AACD;;AAED,eAAe/C,aAAa,CAACI,OAAD,EAAU;AAAEoD,EAAAA,UAAU,EAAVA;AAAF,CAAV,CAA5B","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 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().selection().selectAll(`#${uid} rect`);\n const selectRectNode = selectRect.node();\n\n if (duration > 0 && selectRectNode && selectRectNode.getAttribute('y') !== '0') {\n selectRect.transition().duration(duration).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"}
1
+ {"version":3,"sources":["../../src/Bar.jsx"],"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","hMin","widthProps","width","xScale","yScale","barY","Math","max","Object","is","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 offset: [0, 0],\n duration: 500,\n r: 2,\n hMin: 4,\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().selection().selectAll(`#${uid} rect`);\n const selectRectNode = selectRect.node();\n\n if (duration > 0 && selectRectNode && selectRectNode.getAttribute('y') !== '0') {\n selectRect.transition().duration(duration).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 hMin,\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] - (Object.is(d[y], 0) ? hMin : 0);\n const barX = xScale(d[x]) + offset[0];\n const height =\n Math.abs(yScale(d[y]) - Math.min(yScale(yScale.domain()[0]), yScale(d[y0] ?? 0))) || hMin;\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 || Object.is(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/Bubble.js CHANGED
@@ -30,19 +30,19 @@ var style = (
30
30
  /*__reshadow_css_start__*/
31
31
  _sstyled.insert(
32
32
  /*__inner_css_start__*/
33
- ".___SBubble_1hkv5_gg_{fill:#2bb3ff;stroke:#fff;stroke-width:2px;transition-property:cx,cy;transition-duration:var(--duration_no5xh6);transition-timing-function:ease-in-out;opacity:.5}.___SBubble_1hkv5_gg_:hover{opacity:.8}.___SBubble_1hkv5_gg_.__color_1hkv5_gg_{fill:var(--color_no5xh6)}.___SCenter_1hkv5_gg_{text-anchor:middle;font-size:11px;stroke:#2bb3ff}.___SCenter_1hkv5_gg_.__color_1hkv5_gg_{stroke:var(--color_no5xh6)}.___SLabel_1hkv5_gg_{fill:#2bb3ff}.___SLabel_1hkv5_gg_._position_right_1hkv5_gg_{text-anchor:end}.___SLabel_1hkv5_gg_._position_left_1hkv5_gg_{text-anchor:start}.___SLabel_1hkv5_gg_.__color_1hkv5_gg_{fill:var(--color_no5xh6)}"
33
+ ".___SBubble_mlz14_gg_{fill:#2bb3ff;stroke:#fff;stroke-width:2px;transition-property:cx,cy;transition-duration:var(--duration_mlz14);transition-timing-function:ease-in-out;opacity:.5}.___SBubble_mlz14_gg_:hover{opacity:.8}.___SBubble_mlz14_gg_.__color_mlz14_gg_{fill:var(--color_mlz14)}.___SCenter_mlz14_gg_{text-anchor:middle;font-size:11px;stroke:#2bb3ff}.___SCenter_mlz14_gg_.__color_mlz14_gg_{stroke:var(--color_mlz14)}.___SLabel_mlz14_gg_{fill:#2bb3ff}.___SLabel_mlz14_gg_._position_right_mlz14_gg_{text-anchor:end}.___SLabel_mlz14_gg_._position_left_mlz14_gg_{text-anchor:start}.___SLabel_mlz14_gg_.__color_mlz14_gg_{fill:var(--color_mlz14)}"
34
34
  /*__inner_css_end__*/
35
- , "no5xh6_gg_")
35
+ , "mlz14_gg_")
36
36
  /*__reshadow_css_end__*/
37
37
  , {
38
- "__SBubble": "___SBubble_1hkv5_gg_",
39
- "--duration": "--duration_no5xh6",
40
- "_color": "__color_1hkv5_gg_",
41
- "--color": "--color_no5xh6",
42
- "__SCenter": "___SCenter_1hkv5_gg_",
43
- "__SLabel": "___SLabel_1hkv5_gg_",
44
- "_position_right": "_position_right_1hkv5_gg_",
45
- "_position_left": "_position_left_1hkv5_gg_"
38
+ "__SBubble": "___SBubble_mlz14_gg_",
39
+ "--duration": "--duration_mlz14",
40
+ "_color": "__color_mlz14_gg_",
41
+ "--color": "--color_mlz14",
42
+ "__SCenter": "___SCenter_mlz14_gg_",
43
+ "__SLabel": "___SLabel_mlz14_gg_",
44
+ "_position_right": "_position_right_mlz14_gg_",
45
+ "_position_left": "_position_left_mlz14_gg_"
46
46
  });
47
47
  import ClipPath from './ClipPath';
48
48
  import { scaleSqrt } from 'd3-scale';
@@ -177,6 +177,7 @@ var BubbleRoot = /*#__PURE__*/function (_Component) {
177
177
  "color": d[color] ?? color
178
178
  }), "+"), /*#__PURE__*/React.createElement(SBubble, _ref.cn("SBubble", {
179
179
  "id": "".concat(uid).concat(uid),
180
+ "index": i,
180
181
  "render": "circle",
181
182
  "clipPath": "url(#".concat(uid, ")"),
182
183
  "cx": xScale(d[x]) + offset[0],
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Bubble.jsx"],"names":["React","Component","sstyled","canUseDOM","CONSTANT","measureText","createElement","uniqueIDEnhancement","transition","ClipPath","scaleSqrt","BubbleRoot","document","visible","props","x","clientX","y","clientY","eventEmitter","asProps","virtualElement","getBoundingClientRect","generateGetBoundingClientRect","VIRTUAL_ELEMENT","emit","width","height","top","right","bottom","left","duration","uid","data","value","z","domain","Math","max","map","el","range","selectRect","selection","selectAll","attr","selectRectNode","node","_","ind","animationCircle","d","i","color","scale","offset","styles","label","markedCross","size","xScale","yScale","SBubble","Element","SCenter","SLabel","margin","min","labelPosition","labelDistance","bindHandlerTooltip","xIndex","xSize","abs","ySize","xMargin","yMargin","renderCircle","bind","style","Bubble"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Component, sstyled } from '@semcore/core';\nimport canUseDOM from '@semcore/utils/lib/canUseDOM';\nimport { CONSTANT, measureText } from './utils';\nimport createElement from './createElement';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\nimport { transition } from 'd3-transition';\nimport style from './style/bubble.shadow.css';\nimport ClipPath from './ClipPath';\nimport { scaleSqrt } from 'd3-scale';\n\nclass BubbleRoot extends Component {\n static displayName = 'Bubble';\n static style = style;\n static enhance = [uniqueIDEnhancement()];\n\n static defaultProps = {\n offset: [0, 0],\n duration: 500,\n markedCross: true,\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 bindHandlerTooltip =\n (visible, props) =>\n ({ clientX: x, clientY: y }) => {\n const { eventEmitter } = this.asProps;\n this.virtualElement.getBoundingClientRect = this.generateGetBoundingClientRect(x, y);\n this.virtualElement[CONSTANT.VIRTUAL_ELEMENT] = true;\n eventEmitter.emit('onTooltipVisible', visible, props, this.virtualElement);\n };\n\n animationCircle() {\n const { duration, uid, data, value } = this.asProps;\n const z = scaleSqrt()\n .domain([0, Math.max(...data.map((el) => el[value]))])\n .range([5.5, 50.5]);\n\n const selectRect = transition().selection().selectAll(`[id^=${uid}${uid}]`).attr('r', 0);\n\n const selectRectNode = selectRect.node();\n if (duration > 0 && selectRectNode) {\n selectRect\n .transition()\n .duration(duration)\n .attr('r', function (_, ind) {\n return z(data[ind][value]);\n });\n }\n }\n\n componentDidUpdate() {\n this.animationCircle();\n }\n\n componentDidMount() {\n this.animationCircle();\n }\n\n renderCircle(d, i) {\n const {\n color,\n scale,\n x,\n y,\n offset,\n styles,\n uid,\n duration,\n value,\n label,\n markedCross,\n size,\n data,\n } = this.asProps;\n const [xScale, yScale] = scale;\n\n const SBubble = this.Element;\n const SCenter = 'text';\n const SLabel = 'text';\n const z = scaleSqrt()\n .domain([0, Math.max(...data.map((el) => el[value]))])\n .range([5.5, 50.5]);\n\n const margin = Math.min(xScale.range()[0], xScale.range()[1]);\n\n const labelPosition =\n size[0] - 2 * margin - (xScale(d[x]) + offset[0] + z(d[value])) < measureText(d[label])\n ? 'right'\n : 'left';\n const labelDistance = {\n right: xScale(d[x]) + offset[0] - z(d[value]),\n left: xScale(d[x]) + offset[0] + z(d[value]),\n }[labelPosition];\n\n return sstyled(styles)(\n <g\n key={`circle(#${i})`}\n onMouseMove={this.bindHandlerTooltip(true, { ...this.props, xIndex: i })}\n onMouseLeave={this.bindHandlerTooltip(false, { ...this.props, xIndex: i })}\n >\n {markedCross && (\n <SCenter\n x={xScale(d[x]) + offset[0]}\n y={yScale(d[y]) + offset[1]}\n dy=\".3em\"\n clipPath={`url(#${uid})`}\n color={d[color] ?? color}\n >\n &#43;\n </SCenter>\n )}\n <SBubble\n id={`${uid}${uid}`}\n render=\"circle\"\n clipPath={`url(#${uid})`}\n cx={xScale(d[x]) + offset[0]}\n cy={yScale(d[y]) + offset[1]}\n color={d[color]}\n r={z(d[value])}\n use:duration={`${duration}ms`}\n />\n {d[label] && (\n <SLabel\n x={labelDistance}\n y={yScale(d[y]) + offset[1]}\n dy=\".3em\"\n clipPath={`url(#${uid})`}\n position={labelPosition}\n color={d[color]}\n >\n {d[label]}\n </SLabel>\n )}\n </g>,\n );\n }\n\n render() {\n const { data, uid, scale } = this.asProps;\n const [xScale, yScale] = scale;\n const xSize = Math.abs(xScale.range()[0] - xScale.range()[1]);\n const ySize = Math.abs(yScale.range()[0] - yScale.range()[1]);\n const xMargin = Math.min(xScale.range()[0], xScale.range()[1]);\n const yMargin = Math.min(yScale.range()[0], yScale.range()[1]);\n\n return (\n <>\n {data.map(this.renderCircle.bind(this))}\n {data.map(this.animationCircle.bind(this))}\n <ClipPath id={uid} x={xMargin} y={yMargin} width={`${xSize}px`} height={`${ySize}px`} />\n </>\n );\n }\n}\n\nconst Bubble = createElement(BubbleRoot);\n\nexport default Bubble;\n"],"file":"Bubble.js"}
1
+ {"version":3,"sources":["../../src/Bubble.jsx"],"names":["React","Component","sstyled","canUseDOM","CONSTANT","measureText","createElement","uniqueIDEnhancement","transition","ClipPath","scaleSqrt","BubbleRoot","document","visible","props","x","clientX","y","clientY","eventEmitter","asProps","virtualElement","getBoundingClientRect","generateGetBoundingClientRect","VIRTUAL_ELEMENT","emit","width","height","top","right","bottom","left","duration","uid","data","value","z","domain","Math","max","map","el","range","selectRect","selection","selectAll","attr","selectRectNode","node","_","ind","animationCircle","d","i","color","scale","offset","styles","label","markedCross","size","xScale","yScale","SBubble","Element","SCenter","SLabel","margin","min","labelPosition","labelDistance","bindHandlerTooltip","xIndex","xSize","abs","ySize","xMargin","yMargin","renderCircle","bind","style","Bubble"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Component, sstyled } from '@semcore/core';\nimport canUseDOM from '@semcore/utils/lib/canUseDOM';\nimport { CONSTANT, measureText } from './utils';\nimport createElement from './createElement';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\nimport { transition } from 'd3-transition';\nimport style from './style/bubble.shadow.css';\nimport ClipPath from './ClipPath';\nimport { scaleSqrt } from 'd3-scale';\n\nclass BubbleRoot extends Component {\n static displayName = 'Bubble';\n static style = style;\n static enhance = [uniqueIDEnhancement()];\n\n static defaultProps = {\n offset: [0, 0],\n duration: 500,\n markedCross: true,\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 bindHandlerTooltip =\n (visible, props) =>\n ({ clientX: x, clientY: y }) => {\n const { eventEmitter } = this.asProps;\n this.virtualElement.getBoundingClientRect = this.generateGetBoundingClientRect(x, y);\n this.virtualElement[CONSTANT.VIRTUAL_ELEMENT] = true;\n eventEmitter.emit('onTooltipVisible', visible, props, this.virtualElement);\n };\n\n animationCircle() {\n const { duration, uid, data, value } = this.asProps;\n const z = scaleSqrt()\n .domain([0, Math.max(...data.map((el) => el[value]))])\n .range([5.5, 50.5]);\n\n const selectRect = transition().selection().selectAll(`[id^=${uid}${uid}]`).attr('r', 0);\n\n const selectRectNode = selectRect.node();\n if (duration > 0 && selectRectNode) {\n selectRect\n .transition()\n .duration(duration)\n .attr('r', function (_, ind) {\n return z(data[ind][value]);\n });\n }\n }\n\n componentDidUpdate() {\n this.animationCircle();\n }\n\n componentDidMount() {\n this.animationCircle();\n }\n\n renderCircle(d, i) {\n const {\n color,\n scale,\n x,\n y,\n offset,\n styles,\n uid,\n duration,\n value,\n label,\n markedCross,\n size,\n data,\n } = this.asProps;\n const [xScale, yScale] = scale;\n\n const SBubble = this.Element;\n const SCenter = 'text';\n const SLabel = 'text';\n const z = scaleSqrt()\n .domain([0, Math.max(...data.map((el) => el[value]))])\n .range([5.5, 50.5]);\n\n const margin = Math.min(xScale.range()[0], xScale.range()[1]);\n\n const labelPosition =\n size[0] - 2 * margin - (xScale(d[x]) + offset[0] + z(d[value])) < measureText(d[label])\n ? 'right'\n : 'left';\n const labelDistance = {\n right: xScale(d[x]) + offset[0] - z(d[value]),\n left: xScale(d[x]) + offset[0] + z(d[value]),\n }[labelPosition];\n\n return sstyled(styles)(\n <g\n key={`circle(#${i})`}\n onMouseMove={this.bindHandlerTooltip(true, { ...this.props, xIndex: i })}\n onMouseLeave={this.bindHandlerTooltip(false, { ...this.props, xIndex: i })}\n >\n {markedCross && (\n <SCenter\n x={xScale(d[x]) + offset[0]}\n y={yScale(d[y]) + offset[1]}\n dy=\".3em\"\n clipPath={`url(#${uid})`}\n color={d[color] ?? color}\n >\n &#43;\n </SCenter>\n )}\n <SBubble\n id={`${uid}${uid}`}\n index={i}\n render=\"circle\"\n clipPath={`url(#${uid})`}\n cx={xScale(d[x]) + offset[0]}\n cy={yScale(d[y]) + offset[1]}\n color={d[color]}\n r={z(d[value])}\n use:duration={`${duration}ms`}\n />\n {d[label] && (\n <SLabel\n x={labelDistance}\n y={yScale(d[y]) + offset[1]}\n dy=\".3em\"\n clipPath={`url(#${uid})`}\n position={labelPosition}\n color={d[color]}\n >\n {d[label]}\n </SLabel>\n )}\n </g>,\n );\n }\n\n render() {\n const { data, uid, scale } = this.asProps;\n const [xScale, yScale] = scale;\n const xSize = Math.abs(xScale.range()[0] - xScale.range()[1]);\n const ySize = Math.abs(yScale.range()[0] - yScale.range()[1]);\n const xMargin = Math.min(xScale.range()[0], xScale.range()[1]);\n const yMargin = Math.min(yScale.range()[0], yScale.range()[1]);\n\n return (\n <>\n {data.map(this.renderCircle.bind(this))}\n {data.map(this.animationCircle.bind(this))}\n <ClipPath id={uid} x={xMargin} y={yMargin} width={`${xSize}px`} height={`${ySize}px`} />\n </>\n );\n }\n}\n\nconst Bubble = createElement(BubbleRoot);\n\nexport default Bubble;\n"],"file":"Bubble.js"}
package/lib/es6/Donut.js CHANGED
@@ -1,3 +1,4 @@
1
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
1
2
  import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
3
  import _createClass from "@babel/runtime/helpers/createClass";
3
4
  import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
@@ -7,12 +8,17 @@ import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
7
8
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
8
9
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
9
10
  import { sstyled as _sstyled } from "@semcore/core";
11
+ var _excluded = ["Element", "styles", "d3Arc", "data", "color", "$animationActivePie", "active", "d3ArcOut"];
12
+
13
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
14
+
15
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
10
16
 
11
17
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
12
18
 
13
19
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
14
20
 
15
- import React from 'react';
21
+ import React, { useEffect, useState } from 'react';
16
22
  import { arc, pie } from 'd3-shape';
17
23
  import { Component, sstyled } from '@semcore/core';
18
24
  import canUseDOM from '@semcore/utils/lib/canUseDOM';
@@ -28,23 +34,25 @@ var style = (
28
34
  /*__reshadow_css_start__*/
29
35
  _sstyled.insert(
30
36
  /*__inner_css_start__*/
31
- ".___SPie_60wu6_gg_{stroke:#fff;fill:#2bb3ff}.___SPie_60wu6_gg_.__color_60wu6_gg_{fill:var(--color_q6oc02)}.___SEmptyData_60wu6_gg_{fill:#e0e1e9}.___SEmptyData_60wu6_gg_.__color_60wu6_gg_{fill:var(--color_q6oc02)}.___SLabel_60wu6_gg_{text-anchor:middle;vertical-anchor:middle}"
37
+ ".___SPie_c6o4e_gg_{stroke:#fff;fill:#2bb3ff}.___SPie_c6o4e_gg_.__color_c6o4e_gg_{fill:var(--color_c6o4e)}.___SEmptyData_c6o4e_gg_{fill:#e0e1e9}.___SEmptyData_c6o4e_gg_.__color_c6o4e_gg_{fill:var(--color_c6o4e)}.___SLabel_c6o4e_gg_{text-anchor:middle;vertical-anchor:middle}"
32
38
  /*__inner_css_end__*/
33
- , "q6oc02_gg_")
39
+ , "c6o4e_gg_")
34
40
  /*__reshadow_css_end__*/
35
41
  , {
36
- "__SPie": "___SPie_60wu6_gg_",
37
- "_color": "__color_60wu6_gg_",
38
- "--color": "--color_q6oc02",
39
- "__SEmptyData": "___SEmptyData_60wu6_gg_",
40
- "__SLabel": "___SLabel_60wu6_gg_"
42
+ "__SPie": "___SPie_c6o4e_gg_",
43
+ "_color": "__color_c6o4e_gg_",
44
+ "--color": "--color_c6o4e",
45
+ "__SEmptyData": "___SEmptyData_c6o4e_gg_",
46
+ "__SLabel": "___SLabel_c6o4e_gg_"
41
47
  });
42
48
  var DEFAULT_INSTANCE = Symbol('DEFAULT_INSTANCE');
43
49
 
44
50
  function animationInitialPie(_ref4) {
45
51
  var halfsize = _ref4.halfsize,
46
52
  d3Arc = _ref4.d3Arc,
47
- arcs = _ref4.arcs;
53
+ d3ArcOut = _ref4.d3ArcOut,
54
+ arcs = _ref4.arcs,
55
+ activeIndexPie = _ref4.activeIndexPie;
48
56
  return function (_, ind) {
49
57
  var d = arcs[ind];
50
58
  if (!d) return function () {
@@ -55,7 +63,7 @@ function animationInitialPie(_ref4) {
55
63
  return function (t) {
56
64
  d.startAngle = iStart(t);
57
65
  d.endAngle = iEnd(t);
58
- return d3Arc(d);
66
+ return ind === activeIndexPie ? d3ArcOut(d) : d3Arc(d);
59
67
  };
60
68
  };
61
69
  }
@@ -143,6 +151,8 @@ var DonutRoot = /*#__PURE__*/function (_Component) {
143
151
 
144
152
  _defineProperty(_assertThisInitialized(_this), "virtualElement", canUseDOM() ? document.createElement('div') : {});
145
153
 
154
+ _defineProperty(_assertThisInitialized(_this), "activeIndexPie", undefined);
155
+
146
156
  _defineProperty(_assertThisInitialized(_this), "bindHandlerTooltip", function (visible, props) {
147
157
  return function (_ref8) {
148
158
  var x = _ref8.clientX,
@@ -154,15 +164,39 @@ var DonutRoot = /*#__PURE__*/function (_Component) {
154
164
  };
155
165
  });
156
166
 
167
+ _defineProperty(_assertThisInitialized(_this), "animationActivePie", function (props) {
168
+ var _this$asProps = _this.asProps,
169
+ duration = _this$asProps.duration,
170
+ innerRadius = _this$asProps.innerRadius;
171
+ var active = props.active,
172
+ data = props.data,
173
+ selector = props.selector;
174
+ innerRadius = innerRadius > increaseFactor ? innerRadius - increaseFactor : innerRadius;
175
+ var outerRadius = getOuterRadius(_this.asProps);
176
+ active ? animationHoverPie({
177
+ d: data,
178
+ selector: "#".concat(_this.id, " ").concat(selector),
179
+ duration: duration === 0 ? 0 : 300,
180
+ innerRadius: innerRadius,
181
+ outerRadius: [outerRadius, outerRadius + increaseFactor]
182
+ }) : animationHoverPie({
183
+ d: data,
184
+ selector: "#".concat(_this.id, " ").concat(selector),
185
+ duration: duration === 0 ? 0 : 300,
186
+ innerRadius: innerRadius,
187
+ outerRadius: [outerRadius + increaseFactor, outerRadius]
188
+ });
189
+ });
190
+
157
191
  return _this;
158
192
  }
159
193
 
160
194
  _createClass(DonutRoot, [{
161
195
  key: "id",
162
196
  get: function get() {
163
- var _this$asProps = this.asProps,
164
- uid = _this$asProps.uid,
165
- id = _this$asProps.id;
197
+ var _this$asProps2 = this.asProps,
198
+ uid = _this$asProps2.uid,
199
+ id = _this$asProps2.id;
166
200
  return id || uid;
167
201
  }
168
202
  }, {
@@ -184,10 +218,10 @@ var DonutRoot = /*#__PURE__*/function (_Component) {
184
218
  }, {
185
219
  key: "getArcs",
186
220
  value: function getArcs() {
187
- var _this$asProps2 = this.asProps,
188
- Children = _this$asProps2.Children,
189
- data = _this$asProps2.data,
190
- d3Pie = _this$asProps2.d3Pie;
221
+ var _this$asProps3 = this.asProps,
222
+ Children = _this$asProps3.Children,
223
+ data = _this$asProps3.data,
224
+ d3Pie = _this$asProps3.d3Pie;
191
225
  var pieData = Object.entries(data);
192
226
 
193
227
  if (d3Pie[DEFAULT_INSTANCE]) {
@@ -226,39 +260,40 @@ var DonutRoot = /*#__PURE__*/function (_Component) {
226
260
  }
227
261
  }, {
228
262
  key: "getPieProps",
229
- value: function getPieProps(props) {
263
+ value: function getPieProps(props, ind) {
230
264
  var _this2 = this;
231
265
 
232
- var _this$asProps3 = this.asProps,
233
- d3Arc = _this$asProps3.d3Arc,
234
- duration = _this$asProps3.duration,
235
- innerRadius = _this$asProps3.innerRadius;
236
- innerRadius = innerRadius > increaseFactor ? innerRadius - increaseFactor : innerRadius;
237
- var outerRadius = getOuterRadius(this.asProps);
266
+ var _this$asProps4 = this.asProps,
267
+ d3Arc = _this$asProps4.d3Arc,
268
+ d3ArcOut = _this$asProps4.d3ArcOut;
269
+ var active = props.active;
238
270
  var data = this.arcs.find(function (arc) {
239
271
  return arc.data[0] === props.dataKey;
240
272
  });
273
+
274
+ if (active) {
275
+ this.activeIndexPie = ind;
276
+ }
277
+
241
278
  return {
242
279
  data: data,
243
280
  d3Arc: d3Arc,
281
+ d3ArcOut: d3ArcOut,
282
+ $animationActivePie: this.animationActivePie,
244
283
  onMouseMove: this.bindHandlerTooltip(true, props),
245
284
  onMouseLeave: this.bindHandlerTooltip(false, props),
246
285
  onMouseOver: function onMouseOver(e) {
247
- animationHoverPie({
248
- d: data,
249
- selector: "#".concat(_this2.id, " [d=\"").concat(e.target.getAttribute('d'), "\"]"),
250
- duration: duration === 0 ? 0 : 300,
251
- innerRadius: innerRadius,
252
- outerRadius: [outerRadius, outerRadius + increaseFactor]
286
+ !active && _this2.animationActivePie({
287
+ active: true,
288
+ data: data,
289
+ selector: "[d=\"".concat(e.target.getAttribute('d'), "\"]")
253
290
  });
254
291
  },
255
292
  onMouseOut: function onMouseOut(e) {
256
- animationHoverPie({
257
- d: data,
258
- selector: "#".concat(_this2.id, " [d=\"").concat(e.target.getAttribute('d'), "\"]"),
259
- duration: duration === 0 ? 0 : 300,
260
- innerRadius: innerRadius,
261
- outerRadius: [outerRadius + increaseFactor, outerRadius]
293
+ !active && _this2.animationActivePie({
294
+ active: false,
295
+ data: data,
296
+ selector: "[d=\"".concat(e.target.getAttribute('d'), "\"]")
262
297
  });
263
298
  }
264
299
  };
@@ -274,11 +309,11 @@ var DonutRoot = /*#__PURE__*/function (_Component) {
274
309
  }, {
275
310
  key: "componentDidUpdate",
276
311
  value: function componentDidUpdate(prevProps) {
277
- var _this$asProps4 = this.asProps,
278
- data = _this$asProps4.data,
279
- duration = _this$asProps4.duration,
280
- d3Arc = _this$asProps4.d3Arc,
281
- halfsize = _this$asProps4.halfsize;
312
+ var _this$asProps5 = this.asProps,
313
+ data = _this$asProps5.data,
314
+ duration = _this$asProps5.duration,
315
+ d3Arc = _this$asProps5.d3Arc,
316
+ halfsize = _this$asProps5.halfsize;
282
317
  var arcs = this.arcs;
283
318
 
284
319
  if (prevProps.$rootProps.data !== data && duration > 0) {
@@ -292,10 +327,11 @@ var DonutRoot = /*#__PURE__*/function (_Component) {
292
327
  }, {
293
328
  key: "componentDidMount",
294
329
  value: function componentDidMount() {
295
- var _this$asProps5 = this.asProps,
296
- duration = _this$asProps5.duration,
297
- d3Arc = _this$asProps5.d3Arc,
298
- halfsize = _this$asProps5.halfsize;
330
+ var _this$asProps6 = this.asProps,
331
+ duration = _this$asProps6.duration,
332
+ d3Arc = _this$asProps6.d3Arc,
333
+ halfsize = _this$asProps6.halfsize,
334
+ d3ArcOut = _this$asProps6.d3ArcOut;
299
335
  var arcs = this.arcs;
300
336
 
301
337
  if (duration > 0) {
@@ -304,16 +340,18 @@ var DonutRoot = /*#__PURE__*/function (_Component) {
304
340
  }).transition().duration(duration).attrTween('d', animationInitialPie({
305
341
  halfsize: halfsize,
306
342
  d3Arc: d3Arc,
307
- arcs: arcs
343
+ d3ArcOut: d3ArcOut,
344
+ arcs: arcs,
345
+ activeIndexPie: this.activeIndexPie
308
346
  }));
309
347
  }
310
348
  }
311
349
  }, {
312
350
  key: "render",
313
351
  value: function render() {
314
- var _this$asProps6 = this.asProps,
315
- halfsize = _this$asProps6.halfsize,
316
- size = _this$asProps6.size;
352
+ var _this$asProps7 = this.asProps,
353
+ halfsize = _this$asProps7.halfsize,
354
+ size = _this$asProps7.size;
317
355
 
318
356
  var _size2 = _slicedToArray(size, 2),
319
357
  width = _size2[0],
@@ -352,6 +390,11 @@ _defineProperty(DonutRoot, "defaultProps", function (_ref18) {
352
390
  halfsize: halfsize,
353
391
  outerRadius: outerRadius
354
392
  })).innerRadius(innerRadius > increaseFactor ? innerRadius - increaseFactor : innerRadius);
393
+ var d3ArcOut = arc().outerRadius(getOuterRadius({
394
+ size: size,
395
+ halfsize: halfsize,
396
+ outerRadius: outerRadius
397
+ }) + increaseFactor).innerRadius(innerRadius > increaseFactor ? innerRadius - increaseFactor : innerRadius);
355
398
  var d3Pie = pie().sort(null).value(function (_ref19) {
356
399
  var _ref20 = _slicedToArray(_ref19, 2),
357
400
  value = _ref20[1];
@@ -367,6 +410,7 @@ _defineProperty(DonutRoot, "defaultProps", function (_ref18) {
367
410
  return {
368
411
  d3Pie: d3Pie,
369
412
  d3Arc: d3Arc,
413
+ d3ArcOut: d3ArcOut,
370
414
  duration: 500
371
415
  };
372
416
  });
@@ -378,11 +422,37 @@ function Pie(_ref15) {
378
422
  styles = _ref15.styles,
379
423
  d3Arc = _ref15.d3Arc,
380
424
  data = _ref15.data,
381
- color = _ref15.color;
425
+ color = _ref15.color,
426
+ $animationActivePie = _ref15.$animationActivePie,
427
+ active = _ref15.active,
428
+ d3ArcOut = _ref15.d3ArcOut,
429
+ other = _objectWithoutProperties(_ref15, _excluded);
430
+
431
+ var _useState = useState(false),
432
+ _useState2 = _slicedToArray(_useState, 2),
433
+ isMount = _useState2[0],
434
+ setIsMount = _useState2[1];
435
+
436
+ useEffect(function () {
437
+ //you should't run animation for first render
438
+ if (!isMount) {
439
+ setIsMount(true);
440
+ return;
441
+ }
442
+
443
+ if (active !== undefined && active !== null) {
444
+ //name must unique on page
445
+ $animationActivePie(_objectSpread(_objectSpread({}, other), {}, {
446
+ active: active,
447
+ data: data,
448
+ selector: "[name=\"".concat(other.name, "\"]")
449
+ }));
450
+ }
451
+ }, [active]);
382
452
  return _ref = sstyled(styles), /*#__PURE__*/React.createElement(SPie, _ref.cn("SPie", {
383
453
  "render": "path",
384
454
  "color": color,
385
- "d": d3Arc(data)
455
+ "d": active ? d3ArcOut(data) : d3Arc(data)
386
456
  }));
387
457
  }
388
458