@semcore/d3-chart 2.1.0 → 2.2.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.
- package/CHANGELOG.md +14 -0
- package/lib/cjs/Area.js +70 -29
- package/lib/cjs/Area.js.map +1 -1
- package/lib/cjs/Bar.js +6 -4
- package/lib/cjs/Bar.js.map +1 -1
- package/lib/cjs/Bubble.js +1 -0
- package/lib/cjs/Bubble.js.map +1 -1
- package/lib/cjs/Donut.js +120 -44
- package/lib/cjs/Donut.js.map +1 -1
- package/lib/cjs/Dots.js +24 -25
- package/lib/cjs/Dots.js.map +1 -1
- package/lib/cjs/GroupBar.js +7 -7
- package/lib/cjs/GroupBar.js.map +1 -1
- package/lib/cjs/Line.js +4 -2
- package/lib/cjs/Line.js.map +1 -1
- package/lib/cjs/ReferenceLine.js +258 -0
- package/lib/cjs/ReferenceLine.js.map +1 -0
- package/lib/cjs/ResponsiveContainer.js +1 -1
- package/lib/cjs/ResponsiveContainer.js.map +1 -1
- package/lib/cjs/ScatterPlot.js +1 -0
- package/lib/cjs/ScatterPlot.js.map +1 -1
- package/lib/cjs/StackBar.js +6 -6
- package/lib/cjs/StackedArea.js +7 -7
- package/lib/cjs/Tooltip.js +3 -2
- package/lib/cjs/Tooltip.js.map +1 -1
- package/lib/cjs/createElement.js +4 -3
- package/lib/cjs/createElement.js.map +1 -1
- package/lib/cjs/index.js +8 -0
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/style/dot.shadow.css +10 -5
- package/lib/cjs/style/reference-line.shadow.css +37 -0
- package/lib/cjs/types/Area.d.ts +1 -0
- package/lib/cjs/types/Bar.d.ts +4 -0
- package/lib/cjs/types/Bubble.d.ts +6 -1
- package/lib/cjs/types/Donut.d.ts +4 -0
- package/lib/cjs/types/ReferenceLine.d.ts +31 -0
- package/lib/cjs/types/index.d.ts +3 -0
- package/lib/es6/Area.js +68 -27
- package/lib/es6/Area.js.map +1 -1
- package/lib/es6/Bar.js +6 -4
- package/lib/es6/Bar.js.map +1 -1
- package/lib/es6/Bubble.js +1 -0
- package/lib/es6/Bubble.js.map +1 -1
- package/lib/es6/Donut.js +114 -44
- package/lib/es6/Donut.js.map +1 -1
- package/lib/es6/Dots.js +24 -23
- package/lib/es6/Dots.js.map +1 -1
- package/lib/es6/GroupBar.js +7 -7
- package/lib/es6/GroupBar.js.map +1 -1
- package/lib/es6/Line.js +4 -2
- package/lib/es6/Line.js.map +1 -1
- package/lib/es6/ReferenceLine.js +244 -0
- package/lib/es6/ReferenceLine.js.map +1 -0
- package/lib/es6/ResponsiveContainer.js +1 -1
- package/lib/es6/ResponsiveContainer.js.map +1 -1
- package/lib/es6/ScatterPlot.js +1 -0
- package/lib/es6/ScatterPlot.js.map +1 -1
- package/lib/es6/StackBar.js +6 -6
- package/lib/es6/StackedArea.js +7 -7
- package/lib/es6/Tooltip.js +3 -2
- package/lib/es6/Tooltip.js.map +1 -1
- package/lib/es6/createElement.js +3 -3
- package/lib/es6/createElement.js.map +1 -1
- package/lib/es6/index.js +1 -0
- package/lib/es6/index.js.map +1 -1
- package/lib/es6/style/dot.shadow.css +10 -5
- package/lib/es6/style/reference-line.shadow.css +37 -0
- package/lib/es6/types/Area.d.ts +1 -0
- package/lib/es6/types/Bar.d.ts +4 -0
- package/lib/es6/types/Bubble.d.ts +6 -1
- package/lib/es6/types/Donut.d.ts +4 -0
- package/lib/es6/types/ReferenceLine.d.ts +31 -0
- package/lib/es6/types/index.d.ts +3 -0
- package/lib/types/Area.d.ts +1 -0
- package/lib/types/Bar.d.ts +4 -0
- package/lib/types/Bubble.d.ts +6 -1
- package/lib/types/Donut.d.ts +4 -0
- package/lib/types/ReferenceLine.d.ts +31 -0
- package/lib/types/index.d.ts +3 -0
- package/package.json +11 -11
- package/src/Area.jsx +41 -8
- package/src/Bar.jsx +6 -5
- package/src/Bubble.jsx +1 -0
- package/src/Donut.jsx +96 -29
- package/src/Dots.jsx +11 -14
- package/src/GroupBar.jsx +1 -1
- package/src/Line.jsx +2 -1
- package/src/ReferenceLine.jsx +146 -0
- package/src/ResponsiveContainer.jsx +1 -1
- package/src/ScatterPlot.jsx +1 -0
- package/src/Tooltip.jsx +2 -3
- package/src/createElement.jsx +4 -2
- package/src/index.js +1 -0
- package/src/style/dot.shadow.css +10 -5
- package/src/style/reference-line.shadow.css +37 -0
- package/src/types/Area.d.ts +1 -0
- package/src/types/Bar.d.ts +4 -0
- package/src/types/Bubble.d.ts +6 -1
- package/src/types/Donut.d.ts +4 -0
- package/src/types/ReferenceLine.d.ts +31 -0
- package/src/types/index.d.ts +3 -0
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,20 @@
|
|
|
2
2
|
|
|
3
3
|
CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/).
|
|
4
4
|
|
|
5
|
+
## [2.2.0] - 2022-06-30
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- Added index to Bubble chart
|
|
10
|
+
- Added property minimal height `hMin` for Bar (`<Bar hMin={...}/>`)
|
|
11
|
+
- Added property `active` for `Donut.Pie`
|
|
12
|
+
|
|
13
|
+
### Fixed
|
|
14
|
+
|
|
15
|
+
- Exclude props from html for `Tooltip.Dot`
|
|
16
|
+
- Recalculate position for `Dot` after update scale
|
|
17
|
+
- Optimization render `Dot`
|
|
18
|
+
|
|
5
19
|
## [2.1.0] - 2022-06-01
|
|
6
20
|
|
|
7
21
|
### Changed
|
package/lib/cjs/Area.js
CHANGED
|
@@ -37,6 +37,8 @@ var _ClipPath = _interopRequireDefault(require("./ClipPath"));
|
|
|
37
37
|
|
|
38
38
|
var _uniqueID = _interopRequireDefault(require("@semcore/utils/lib/uniqueID"));
|
|
39
39
|
|
|
40
|
+
var _findComponent = _interopRequireDefault(require("@semcore/utils/lib/findComponent"));
|
|
41
|
+
|
|
40
42
|
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); }; }
|
|
41
43
|
|
|
42
44
|
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; } }
|
|
@@ -102,6 +104,23 @@ var AreaRoot = /*#__PURE__*/function (_Component) {
|
|
|
102
104
|
color: color
|
|
103
105
|
};
|
|
104
106
|
}
|
|
107
|
+
}, {
|
|
108
|
+
key: "getLineProps",
|
|
109
|
+
value: function getLineProps() {
|
|
110
|
+
var _this$asProps3 = this.asProps,
|
|
111
|
+
duration = _this$asProps3.duration,
|
|
112
|
+
color = _this$asProps3.color,
|
|
113
|
+
data = _this$asProps3.data,
|
|
114
|
+
d3Line = _this$asProps3.d3Line,
|
|
115
|
+
uid = _this$asProps3.uid;
|
|
116
|
+
return {
|
|
117
|
+
uid: uid,
|
|
118
|
+
data: data,
|
|
119
|
+
d3: d3Line,
|
|
120
|
+
color: color,
|
|
121
|
+
duration: duration
|
|
122
|
+
};
|
|
123
|
+
}
|
|
105
124
|
}, {
|
|
106
125
|
key: "render",
|
|
107
126
|
value: function render() {
|
|
@@ -109,17 +128,19 @@ var AreaRoot = /*#__PURE__*/function (_Component) {
|
|
|
109
128
|
|
|
110
129
|
var SArea = this.Element;
|
|
111
130
|
var SAreaLine = 'path';
|
|
112
|
-
var _this$
|
|
113
|
-
styles = _this$
|
|
114
|
-
hide = _this$
|
|
115
|
-
d3 = _this$
|
|
116
|
-
d3Line = _this$
|
|
117
|
-
data = _this$
|
|
118
|
-
color = _this$
|
|
119
|
-
uid = _this$
|
|
120
|
-
size = _this$
|
|
121
|
-
duration = _this$
|
|
122
|
-
|
|
131
|
+
var _this$asProps4 = this.asProps,
|
|
132
|
+
styles = _this$asProps4.styles,
|
|
133
|
+
hide = _this$asProps4.hide,
|
|
134
|
+
d3 = _this$asProps4.d3,
|
|
135
|
+
d3Line = _this$asProps4.d3Line,
|
|
136
|
+
data = _this$asProps4.data,
|
|
137
|
+
color = _this$asProps4.color,
|
|
138
|
+
uid = _this$asProps4.uid,
|
|
139
|
+
size = _this$asProps4.size,
|
|
140
|
+
duration = _this$asProps4.duration,
|
|
141
|
+
Children = _this$asProps4.Children;
|
|
142
|
+
var advanceMode = !!(0, _findComponent["default"])(Children, [Area.Line.displayName]);
|
|
143
|
+
return _ref = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, !advanceMode && /*#__PURE__*/_react["default"].createElement(SAreaLine, _ref.cn("SAreaLine", {
|
|
123
144
|
"clipPath": "url(#".concat(uid, ")"),
|
|
124
145
|
"d": d3Line(data),
|
|
125
146
|
"color": color,
|
|
@@ -150,19 +171,19 @@ var AreaRoot = /*#__PURE__*/function (_Component) {
|
|
|
150
171
|
(0, _defineProperty2["default"])(AreaRoot, "displayName", 'Area');
|
|
151
172
|
(0, _defineProperty2["default"])(AreaRoot, "style", style);
|
|
152
173
|
(0, _defineProperty2["default"])(AreaRoot, "enhance", [(0, _uniqueID["default"])()]);
|
|
153
|
-
(0, _defineProperty2["default"])(AreaRoot, "defaultProps", function (
|
|
154
|
-
var x =
|
|
155
|
-
y =
|
|
156
|
-
y0 =
|
|
157
|
-
$rootProps =
|
|
158
|
-
|
|
159
|
-
curve =
|
|
160
|
-
scale =
|
|
161
|
-
|
|
162
|
-
var
|
|
163
|
-
|
|
164
|
-
xScale =
|
|
165
|
-
yScale =
|
|
174
|
+
(0, _defineProperty2["default"])(AreaRoot, "defaultProps", function (_ref4) {
|
|
175
|
+
var x = _ref4.x,
|
|
176
|
+
y = _ref4.y,
|
|
177
|
+
y0 = _ref4.y0,
|
|
178
|
+
$rootProps = _ref4.$rootProps,
|
|
179
|
+
_ref4$curve = _ref4.curve,
|
|
180
|
+
curve = _ref4$curve === void 0 ? _d3Shape.curveLinear : _ref4$curve,
|
|
181
|
+
scale = _ref4.scale;
|
|
182
|
+
|
|
183
|
+
var _ref5 = scale || $rootProps.scale,
|
|
184
|
+
_ref6 = (0, _slicedToArray2["default"])(_ref5, 2),
|
|
185
|
+
xScale = _ref6[0],
|
|
186
|
+
yScale = _ref6[1];
|
|
166
187
|
|
|
167
188
|
var yRange = yScale.range();
|
|
168
189
|
return {
|
|
@@ -182,16 +203,35 @@ var AreaRoot = /*#__PURE__*/function (_Component) {
|
|
|
182
203
|
};
|
|
183
204
|
});
|
|
184
205
|
|
|
185
|
-
function
|
|
206
|
+
function Line(props) {
|
|
186
207
|
var _ref2;
|
|
187
208
|
|
|
209
|
+
var SAreaLine = props.Element,
|
|
210
|
+
styles = props.styles,
|
|
211
|
+
d3 = props.d3,
|
|
212
|
+
data = props.data,
|
|
213
|
+
color = props.color,
|
|
214
|
+
duration = props.duration,
|
|
215
|
+
uid = props.uid;
|
|
216
|
+
return _ref2 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SAreaLine, _ref2.cn("SAreaLine", {
|
|
217
|
+
"render": "path",
|
|
218
|
+
"clipPath": "url(#".concat(uid, ")"),
|
|
219
|
+
"d": d3(data),
|
|
220
|
+
"color": color,
|
|
221
|
+
"use:duration": "".concat(duration, "ms")
|
|
222
|
+
}));
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
function Null(props) {
|
|
226
|
+
var _ref3;
|
|
227
|
+
|
|
188
228
|
var SNull = props.Element,
|
|
189
229
|
styles = props.styles,
|
|
190
230
|
d3 = props.d3,
|
|
191
231
|
data = props.data,
|
|
192
232
|
hide = props.hide,
|
|
193
233
|
color = props.color;
|
|
194
|
-
return
|
|
234
|
+
return _ref3 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SNull, _ref3.cn("SNull", {
|
|
195
235
|
"render": "path",
|
|
196
236
|
"d": d3(data),
|
|
197
237
|
"hide": hide,
|
|
@@ -199,10 +239,11 @@ function Null(props) {
|
|
|
199
239
|
}));
|
|
200
240
|
}
|
|
201
241
|
|
|
202
|
-
var
|
|
242
|
+
var Area = (0, _createElement["default"])(AreaRoot, {
|
|
203
243
|
Dots: _Dots["default"],
|
|
204
|
-
Null: Null
|
|
244
|
+
Null: Null,
|
|
245
|
+
Line: Line
|
|
205
246
|
});
|
|
206
|
-
|
|
247
|
+
var _default = Area;
|
|
207
248
|
exports["default"] = _default;
|
|
208
249
|
//# sourceMappingURL=Area.js.map
|
package/lib/cjs/Area.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Area.jsx"],"names":["AreaRoot","asProps","x","y","color","data","d3Line","d3","SArea","Element","SAreaLine","styles","hide","
|
|
1
|
+
{"version":3,"sources":["../../src/Area.jsx"],"names":["AreaRoot","asProps","x","y","color","data","d3Line","d3","duration","uid","SArea","Element","SAreaLine","styles","hide","size","Children","advanceMode","Area","Line","displayName","rect","setAttribute","Component","style","y0","$rootProps","curve","curveLinear","scale","xScale","yScale","yRange","range","defined","p","y1","props","Null","SNull","Dots"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAGA;;AAHA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;IAIMA,Q;;;;;;;;;;;;WAyBJ,wBAAe;AACb,0BAAsC,KAAKC,OAA3C;AAAA,UAAQC,CAAR,iBAAQA,CAAR;AAAA,UAAWC,CAAX,iBAAWA,CAAX;AAAA,UAAcC,KAAd,iBAAcA,KAAd;AAAA,UAAqBC,IAArB,iBAAqBA,IAArB;AAAA,UAA2BC,MAA3B,iBAA2BA,MAA3B;AAEA,aAAO;AACLJ,QAAAA,CAAC,EAADA,CADK;AAELC,QAAAA,CAAC,EAADA,CAFK;AAGLE,QAAAA,IAAI,EAAJA,IAHK;AAILE,QAAAA,EAAE,EAAED,MAJC;AAKLF,QAAAA,KAAK,EAALA;AALK,OAAP;AAOD;;;WAED,wBAAe;AACb,2BAAsC,KAAKH,OAA3C;AAAA,UAAQC,CAAR,kBAAQA,CAAR;AAAA,UAAWC,CAAX,kBAAWA,CAAX;AAAA,UAAcC,KAAd,kBAAcA,KAAd;AAAA,UAAqBC,IAArB,kBAAqBA,IAArB;AAAA,UAA2BC,MAA3B,kBAA2BA,MAA3B;AACA,aAAO;AACLD,QAAAA,IAAI,EAAE,wBAAYA,IAAZ,EAAkB,4BAAgBH,CAAhB,EAAmBC,CAAnB,CAAlB,EAAyCA,CAAzC,CADD;AAELI,QAAAA,EAAE,EAAED,MAFC;AAGLF,QAAAA,KAAK,EAALA;AAHK,OAAP;AAKD;;;WAED,wBAAe;AACb,2BAA+C,KAAKH,OAApD;AAAA,UAAQO,QAAR,kBAAQA,QAAR;AAAA,UAAkBJ,KAAlB,kBAAkBA,KAAlB;AAAA,UAAyBC,IAAzB,kBAAyBA,IAAzB;AAAA,UAA+BC,MAA/B,kBAA+BA,MAA/B;AAAA,UAAuCG,GAAvC,kBAAuCA,GAAvC;AAEA,aAAO;AACLA,QAAAA,GAAG,EAAHA,GADK;AAELJ,QAAAA,IAAI,EAAJA,IAFK;AAGLE,QAAAA,EAAE,EAAED,MAHC;AAILF,QAAAA,KAAK,EAALA,KAJK;AAKLI,QAAAA,QAAQ,EAARA;AALK,OAAP;AAOD;;;WAED,kBAAS;AAAA;;AACP,UAAME,KAAK,GAAG,KAAKC,OAAnB;AACA,UAAMC,SAAS,GAAG,MAAlB;AACA,2BAAiF,KAAKX,OAAtF;AAAA,UAAQY,MAAR,kBAAQA,MAAR;AAAA,UAAgBC,IAAhB,kBAAgBA,IAAhB;AAAA,UAAsBP,EAAtB,kBAAsBA,EAAtB;AAAA,UAA0BD,MAA1B,kBAA0BA,MAA1B;AAAA,UAAkCD,IAAlC,kBAAkCA,IAAlC;AAAA,UAAwCD,KAAxC,kBAAwCA,KAAxC;AAAA,UAA+CK,GAA/C,kBAA+CA,GAA/C;AAAA,UAAoDM,IAApD,kBAAoDA,IAApD;AAAA,UAA0DP,QAA1D,kBAA0DA,QAA1D;AAAA,UAAoEQ,QAApE,kBAAoEA,QAApE;AACA,UAAMC,WAAW,GAAG,CAAC,CAAC,+BAAcD,QAAd,EAAwB,CAACE,IAAI,CAACC,IAAL,CAAUC,WAAX,CAAxB,CAAtB;AAEA,oBAAO,mBAAQP,MAAR,CAAP,eACE,kEACG,CAACI,WAAD,iBACC,gCAAC,SAAD;AAAA,mCACoBR,GADpB;AAAA,aAEKH,MAAM,CAACD,IAAD,CAFX;AAAA,iBAGSD,KAHT;AAAA,kCAImBI,QAJnB;AAAA,SAFJ,eASE,gCAAC,KAAD;AAAA,mCACoBC,GADpB;AAAA,kBAES,MAFT;AAAA,aAGKF,EAAE,CAACF,IAAD,CAHP;AAAA,gBAIQS,IAJR;AAAA,iBAKSV,KALT;AAAA,kCAMmBI,QANnB;AAAA,SATF,EAiBGA,QAAQ,iBACP,gCAAC,oBAAD;AAAA,2BACmB,yBAACa,IAAD,EAAU;AACzBA,UAAAA,IAAI,CAACC,YAAL,CAAkB,OAAlB,EAA2BP,IAAI,CAAC,CAAD,CAA/B;AACD,SAHH;AAAA,cAIMN,GAJN;AAAA,aAKI,GALJ;AAAA,aAMI,GANJ;AAAA,iBAOS,CAPT;AAAA,kBAQUM,IAAI,CAAC,CAAD,CARd;AAAA,sCASuBP,QATvB;AAAA,SAlBJ,CADF;AAiCD;;;EAjGoBe,e;;iCAAjBvB,Q,iBACiB,M;iCADjBA,Q,WAEWwB,K;iCAFXxB,Q,aAGa,CAAC,2BAAD,C;iCAHbA,Q,kBAKkB,iBAA0D;AAAA,MAAvDE,CAAuD,SAAvDA,CAAuD;AAAA,MAApDC,CAAoD,SAApDA,CAAoD;AAAA,MAAjDsB,EAAiD,SAAjDA,EAAiD;AAAA,MAA7CC,UAA6C,SAA7CA,UAA6C;AAAA,0BAAjCC,KAAiC;AAAA,MAAjCA,KAAiC,4BAAzBC,oBAAyB;AAAA,MAAZC,KAAY,SAAZA,KAAY;;AAC9E,cAAyBA,KAAK,IAAIH,UAAU,CAACG,KAA7C;AAAA;AAAA,MAAOC,MAAP;AAAA,MAAeC,MAAf;;AACA,MAAMC,MAAM,GAAGD,MAAM,CAACE,KAAP,EAAf;AAEA,SAAO;AACL1B,IAAAA,EAAE,EAAE,qBACD2B,OADC,CACO,wBAAYhC,CAAZ,EAAeC,CAAf,CADP,EAEDwB,KAFC,CAEKA,KAFL,EAGDzB,CAHC,CAGC,UAACiC,CAAD;AAAA,aAAO,6BAAiBL,MAAjB,EAAyBK,CAAC,CAACjC,CAAD,CAA1B,CAAP;AAAA,KAHD,EAIDuB,EAJC,CAIE,UAACU,CAAD;AAAA,aAAQA,CAAC,CAACV,EAAD,CAAD,GAAQ,6BAAiBM,MAAjB,EAAyBI,CAAC,CAACV,EAAD,CAA1B,CAAR,GAA0CO,MAAM,CAAC,CAAD,CAAxD;AAAA,KAJF,EAKDI,EALC,CAKE,UAACD,CAAD;AAAA,aAAO,6BAAiBJ,MAAjB,EAAyBI,CAAC,CAAChC,CAAD,CAA1B,CAAP;AAAA,KALF,CADC;AAOLG,IAAAA,MAAM,EAAE,qBACL4B,OADK,CACG,wBAAYhC,CAAZ,EAAeC,CAAf,CADH,EAELwB,KAFK,CAECA,KAFD,EAGLzB,CAHK,CAGH,UAACiC,CAAD;AAAA,aAAO,6BAAiBL,MAAjB,EAAyBK,CAAC,CAACjC,CAAD,CAA1B,CAAP;AAAA,KAHG,EAILC,CAJK,CAIH,UAACgC,CAAD;AAAA,aAAO,6BAAiBJ,MAAjB,EAAyBI,CAAC,CAAChC,CAAD,CAA1B,CAAP;AAAA,KAJG,CAPH;AAYLK,IAAAA,QAAQ,EAAE;AAZL,GAAP;AAcD,C;;AA6EH,SAASW,IAAT,CAAckB,KAAd,EAAqB;AAAA;;AACnB,MAAiBzB,SAAjB,GAAuEyB,KAAvE,CAAQ1B,OAAR;AAAA,MAA4BE,MAA5B,GAAuEwB,KAAvE,CAA4BxB,MAA5B;AAAA,MAAoCN,EAApC,GAAuE8B,KAAvE,CAAoC9B,EAApC;AAAA,MAAwCF,IAAxC,GAAuEgC,KAAvE,CAAwChC,IAAxC;AAAA,MAA8CD,KAA9C,GAAuEiC,KAAvE,CAA8CjC,KAA9C;AAAA,MAAqDI,QAArD,GAAuE6B,KAAvE,CAAqD7B,QAArD;AAAA,MAA+DC,GAA/D,GAAuE4B,KAAvE,CAA+D5B,GAA/D;AACA,iBAAO,mBAAQI,MAAR,CAAP,eACE,gCAAC,SAAD;AAAA,cACS,MADT;AAAA,+BAEoBJ,GAFpB;AAAA,SAGKF,EAAE,CAACF,IAAD,CAHP;AAAA,aAISD,KAJT;AAAA,8BAKmBI,QALnB;AAAA,KADF;AASD;;AAED,SAAS8B,IAAT,CAAcD,KAAd,EAAqB;AAAA;;AACnB,MAAiBE,KAAjB,GAA0DF,KAA1D,CAAQ1B,OAAR;AAAA,MAAwBE,MAAxB,GAA0DwB,KAA1D,CAAwBxB,MAAxB;AAAA,MAAgCN,EAAhC,GAA0D8B,KAA1D,CAAgC9B,EAAhC;AAAA,MAAoCF,IAApC,GAA0DgC,KAA1D,CAAoChC,IAApC;AAAA,MAA0CS,IAA1C,GAA0DuB,KAA1D,CAA0CvB,IAA1C;AAAA,MAAgDV,KAAhD,GAA0DiC,KAA1D,CAAgDjC,KAAhD;AACA,iBAAO,mBAAQS,MAAR,CAAP,eAAuB,gCAAC,KAAD;AAAA,cAAc,MAAd;AAAA,SAAwBN,EAAE,CAACF,IAAD,CAA1B;AAAA,YAAwCS,IAAxC;AAAA,aAAqDV;AAArD,KAAvB;AACD;;AAED,IAAMc,IAAI,GAAG,+BAAclB,QAAd,EAAwB;AACnCwC,EAAAA,IAAI,EAAJA,gBADmC;AAEnCF,EAAAA,IAAI,EAAJA,IAFmC;AAGnCnB,EAAAA,IAAI,EAAJA;AAHmC,CAAxB,CAAb;eAMeD,I","sourcesContent":["import React from 'react';\nimport { area, curveLinear, line } from 'd3-shape';\nimport Dots from './Dots';\nimport { Component, sstyled } from '@semcore/core';\nimport createElement from './createElement';\nimport { definedData, scaleOfBandwidth, getNullData, definedNullData } from './utils';\nimport ClipPath from './ClipPath';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\nimport findComponent from '@semcore/utils/lib/findComponent';\n\nimport style from './style/area.shadow.css';\n\nclass AreaRoot extends Component {\n static displayName = 'Area';\n static style = style;\n static enhance = [uniqueIDEnhancement()];\n\n static defaultProps = ({ x, y, y0, $rootProps, curve = curveLinear, scale }) => {\n const [xScale, yScale] = scale || $rootProps.scale;\n const yRange = yScale.range();\n\n return {\n d3: area()\n .defined(definedData(x, y))\n .curve(curve)\n .x((p) => scaleOfBandwidth(xScale, p[x]))\n .y0((p) => (p[y0] ? scaleOfBandwidth(yScale, p[y0]) : yRange[0]))\n .y1((p) => scaleOfBandwidth(yScale, p[y])),\n d3Line: line()\n .defined(definedData(x, y))\n .curve(curve)\n .x((p) => scaleOfBandwidth(xScale, p[x]))\n .y((p) => scaleOfBandwidth(yScale, p[y])),\n duration: 500,\n };\n };\n\n getDotsProps() {\n const { x, y, color, data, d3Line } = this.asProps;\n\n return {\n x,\n y,\n data,\n d3: d3Line,\n color,\n };\n }\n\n getNullProps() {\n const { x, y, color, data, d3Line } = this.asProps;\n return {\n data: getNullData(data, definedNullData(x, y), y),\n d3: d3Line,\n color,\n };\n }\n\n getLineProps() {\n const { duration, color, data, d3Line, uid } = this.asProps;\n\n return {\n uid,\n data,\n d3: d3Line,\n color,\n duration,\n };\n }\n\n render() {\n const SArea = this.Element;\n const SAreaLine = 'path';\n const { styles, hide, d3, d3Line, data, color, uid, size, duration, Children } = this.asProps;\n const advanceMode = !!findComponent(Children, [Area.Line.displayName]);\n\n return sstyled(styles)(\n <>\n {!advanceMode && (\n <SAreaLine\n clipPath={`url(#${uid})`}\n d={d3Line(data)}\n color={color}\n use:duration={`${duration}ms`}\n />\n )}\n <SArea\n clipPath={`url(#${uid})`}\n render=\"path\"\n d={d3(data)}\n hide={hide}\n color={color}\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 Line(props) {\n const { Element: SAreaLine, styles, d3, data, color, duration, uid } = props;\n return sstyled(styles)(\n <SAreaLine\n render=\"path\"\n clipPath={`url(#${uid})`}\n d={d3(data)}\n color={color}\n use:duration={`${duration}ms`}\n />,\n );\n}\n\nfunction Null(props) {\n const { Element: SNull, styles, d3, data, hide, color } = props;\n return sstyled(styles)(<SNull render=\"path\" d={d3(data)} hide={hide} color={color} />);\n}\n\nconst Area = createElement(AreaRoot, {\n Dots,\n Null,\n Line,\n});\n\nexport default Area;\n"],"file":"Area.js"}
|
package/lib/cjs/Bar.js
CHANGED
|
@@ -118,15 +118,16 @@ var BarRoot = /*#__PURE__*/function (_Component) {
|
|
|
118
118
|
duration = _this$asProps3.duration,
|
|
119
119
|
uid = _this$asProps3.uid,
|
|
120
120
|
r = _this$asProps3.r,
|
|
121
|
+
hMin = _this$asProps3.hMin,
|
|
121
122
|
widthProps = _this$asProps3.width;
|
|
122
123
|
|
|
123
124
|
var _scale = (0, _slicedToArray2["default"])(scale, 2),
|
|
124
125
|
xScale = _scale[0],
|
|
125
126
|
yScale = _scale[1];
|
|
126
127
|
|
|
127
|
-
var barY = yScale(Math.max(d[y0] ?? 0, d[y])) + offset[1];
|
|
128
|
+
var barY = yScale(Math.max(d[y0] ?? 0, d[y])) + offset[1] - (Object.is(d[y], 0) ? hMin : 0);
|
|
128
129
|
var barX = xScale(d[x]) + offset[0];
|
|
129
|
-
var height = Math.abs(yScale(d[y]) - Math.min(yScale(yScale.domain()[0]), yScale(d[y0] ?? 0)));
|
|
130
|
+
var height = Math.abs(yScale(d[y]) - Math.min(yScale(yScale.domain()[0]), yScale(d[y0] ?? 0))) || hMin;
|
|
130
131
|
var width = widthProps || (0, _utils.getBandwidth)(xScale);
|
|
131
132
|
var dSvg = getRect({
|
|
132
133
|
x: barX,
|
|
@@ -134,7 +135,7 @@ var BarRoot = /*#__PURE__*/function (_Component) {
|
|
|
134
135
|
width: width,
|
|
135
136
|
height: height,
|
|
136
137
|
radius: Array.isArray(r) ? r[i] : r,
|
|
137
|
-
position: d[y] > 0 ? 'top' : 'bottom'
|
|
138
|
+
position: d[y] > 0 || Object.is(d[y], 0) ? 'top' : 'bottom'
|
|
138
139
|
});
|
|
139
140
|
return _ref = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SBar, _ref.cn("SBar", {
|
|
140
141
|
"key": "bar-".concat(i),
|
|
@@ -181,7 +182,8 @@ var BarRoot = /*#__PURE__*/function (_Component) {
|
|
|
181
182
|
(0, _defineProperty2["default"])(BarRoot, "defaultProps", {
|
|
182
183
|
offset: [0, 0],
|
|
183
184
|
duration: 500,
|
|
184
|
-
r: 2
|
|
185
|
+
r: 2,
|
|
186
|
+
hMin: 4
|
|
185
187
|
});
|
|
186
188
|
|
|
187
189
|
function Background(props) {
|
package/lib/cjs/Bar.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Bar.jsx"],"names":["BarRoot","props","index","asProps","x","data","value","duration","uid","selectRect","selection","selectAll","selectRectNode","node","getAttribute","transition","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","Component","style","Background","SBackground","yRange","range","bandwidth"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAEA;;AAFA;;AACA;;AAEA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;IAIMA,O;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"sources":["../../src/Bar.jsx"],"names":["BarRoot","props","index","asProps","x","data","value","duration","uid","selectRect","selection","selectAll","selectRectNode","node","getAttribute","transition","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","Component","style","Background","SBackground","yRange","range","bandwidth"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAEA;;AAFA;;AACA;;AAEA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;IAIMA,O;;;;;;;;;;;;WAYJ,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,GAAG,gCAAaC,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,CAACM,UAAX,GAAwBR,QAAxB,CAAiCA,QAAjC,EAA2CS,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,2BAcI,KAAKlB,OAdT;AAAA,UACEmB,MADF,kBACEA,MADF;AAAA,UAEEC,KAFF,kBAEEA,KAFF;AAAA,UAGEnB,CAHF,kBAGEA,CAHF;AAAA,UAIEoB,CAJF,kBAIEA,CAJF;AAAA,UAKEC,EALF,kBAKEA,EALF;AAAA,UAMEC,KANF,kBAMEA,KANF;AAAA,UAOEC,IAPF,kBAOEA,IAPF;AAAA,UAQEC,MARF,kBAQEA,MARF;AAAA,UASErB,QATF,kBASEA,QATF;AAAA,UAUEC,GAVF,kBAUEA,GAVF;AAAA,UAWEqB,CAXF,kBAWEA,CAXF;AAAA,UAYEC,IAZF,kBAYEA,IAZF;AAAA,UAaSC,UAbT,kBAaEC,KAbF;;AAgBA,mDAAyBN,KAAzB;AAAA,UAAOO,MAAP;AAAA,UAAeC,MAAf;;AACA,UAAMC,IAAI,GAAGD,MAAM,CAACE,IAAI,CAACC,GAAL,CAASnB,CAAC,CAACO,EAAD,CAAD,IAAS,CAAlB,EAAqBP,CAAC,CAACM,CAAD,CAAtB,CAAD,CAAN,GAAqCI,MAAM,CAAC,CAAD,CAA3C,IAAkDU,MAAM,CAACC,EAAP,CAAUrB,CAAC,CAACM,CAAD,CAAX,EAAgB,CAAhB,IAAqBM,IAArB,GAA4B,CAA9E,CAAb;AACA,UAAMU,IAAI,GAAGP,MAAM,CAACf,CAAC,CAACd,CAAD,CAAF,CAAN,GAAewB,MAAM,CAAC,CAAD,CAAlC;AACA,UAAMa,MAAM,GACVL,IAAI,CAACM,GAAL,CAASR,MAAM,CAAChB,CAAC,CAACM,CAAD,CAAF,CAAN,GAAeY,IAAI,CAACO,GAAL,CAAST,MAAM,CAACA,MAAM,CAACU,MAAP,GAAgB,CAAhB,CAAD,CAAf,EAAqCV,MAAM,CAAChB,CAAC,CAACO,EAAD,CAAD,IAAS,CAAV,CAA3C,CAAxB,KAAqFK,IADvF;AAEA,UAAME,KAAK,GAAGD,UAAU,IAAI,yBAAaE,MAAb,CAA5B;AACA,UAAMY,IAAI,GAAGC,OAAO,CAAC;AACnB1C,QAAAA,CAAC,EAAEoC,IADgB;AAEnBhB,QAAAA,CAAC,EAAEW,IAFgB;AAGnBH,QAAAA,KAAK,EAALA,KAHmB;AAInBS,QAAAA,MAAM,EAANA,MAJmB;AAKnBM,QAAAA,MAAM,EAAEC,KAAK,CAACC,OAAN,CAAcpB,CAAd,IAAmBA,CAAC,CAACV,CAAD,CAApB,GAA0BU,CALf;AAMnBqB,QAAAA,QAAQ,EAAEhC,CAAC,CAACM,CAAD,CAAD,GAAO,CAAP,IAAYc,MAAM,CAACC,EAAP,CAAUrB,CAAC,CAACM,CAAD,CAAX,EAAgB,CAAhB,CAAZ,GAAiC,KAAjC,GAAyC;AANhC,OAAD,CAApB;AASA,oBAAO,mBAAQF,MAAR,CAAP,eACE,gCAAC,IAAD;AAAA,6BACcH,CADd;AAAA,kBAES,MAFT;AAAA,mCAGoBX,GAHpB;AAAA,0BAIkB,CAAC,MAAD,EAAS,OAAT,EAAkB,OAAlB,CAJlB;AAAA,4BAKmB,OALnB;AAAA,iBAMSU,CANT;AAAA,iBAOSC,CAPT;AAAA,gBAQQQ,IARR;AAAA,iBASSJ,KATT;AAAA,aAUKiB,IAVL;AAAA,aAWKL,IAXL;AAAA,iBAYSH,KAZT;AAAA,kBAaUS,MAbV;AAAA,aAcKI,IAdL;AAAA,kCAemBtC,QAfnB;AAAA,SADF;AAmBD;;;WACD,kBAAS;AACP,2BAAsC,KAAKJ,OAA3C;AAAA,UAAQE,IAAR,kBAAQA,IAAR;AAAA,UAAcG,GAAd,kBAAcA,GAAd;AAAA,UAAmB2C,IAAnB,kBAAmBA,IAAnB;AAAA,UAAyB5C,QAAzB,kBAAyBA,QAAzB;AACA,0BACE,kEACGF,IAAI,CAAC+C,GAAL,CAAS,KAAKC,SAAL,CAAeC,IAAf,CAAoB,IAApB,CAAT,CADH,EAEG/C,QAAQ,iBACP,gCAAC,oBAAD;AACE,QAAA,GAAG,YAAKC,GAAL,eADL;AAEE,QAAA,EAAE,EAAEA,GAFN;AAGE,QAAA,CAAC,EAAC,GAHJ;AAIE,QAAA,CAAC,EAAE2C,IAAI,CAAC,CAAD,CAJT;AAKE,QAAA,KAAK,EAAEA,IAAI,CAAC,CAAD,CALb;AAME,QAAA,MAAM,YAAKA,IAAI,CAAC,CAAD,CAAT;AANR,QAHJ,CADF;AAeD;;;EA3GmBI,e;;iCAAhBvD,O,iBACiB,K;iCADjBA,O,WAEWwD,K;iCAFXxD,O,aAGa,CAAC,2BAAD,C;iCAHbA,O,kBAKkB;AACpB4B,EAAAA,MAAM,EAAE,CAAC,CAAD,EAAI,CAAJ,CADY;AAEpBrB,EAAAA,QAAQ,EAAE,GAFU;AAGpBsB,EAAAA,CAAC,EAAE,CAHiB;AAIpBC,EAAAA,IAAI,EAAE;AAJc,C;;AAyGxB,SAAS2B,UAAT,CAAoBxD,KAApB,EAA2B;AAAA;;AACzB,MAAiByD,WAAjB,GAAuDzD,KAAvD,CAAQoB,OAAR;AAAA,MAA8BC,MAA9B,GAAuDrB,KAAvD,CAA8BqB,MAA9B;AAAA,MAAsCI,KAAtC,GAAuDzB,KAAvD,CAAsCyB,KAAtC;AAAA,MAA6CpB,KAA7C,GAAuDL,KAAvD,CAA6CK,KAA7C;;AAEA,gDAAyBoB,KAAzB;AAAA,MAAOO,MAAP;AAAA,MAAeC,MAAf;;AACA,MAAMyB,MAAM,GAAGzB,MAAM,CAAC0B,KAAP,EAAf;AAEA,iBAAO,mBAAQtC,MAAR,CAAP,eACE,gCAAC,WAAD;AAAA,cACS,MADT;AAAA,wBAEmB,OAFnB;AAAA,aAGSW,MAAM,CAAC4B,SAAP,EAHT;AAAA,cAIUF,MAAM,CAAC,CAAD,CAAN,GAAYA,MAAM,CAAC,CAAD,CAJ5B;AAAA,SAKK1B,MAAM,CAAC3B,KAAD,CALX;AAAA,SAMKqD,MAAM,CAAC,CAAD;AANX,KADF;AAUD;;AAED,SAASb,OAAT,QAA4D;AAAA,MAAzC1C,CAAyC,SAAzCA,CAAyC;AAAA,MAAtCoB,CAAsC,SAAtCA,CAAsC;AAAA,MAAnCQ,KAAmC,SAAnCA,KAAmC;AAAA,MAA5BS,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,wBAAY9C,CAAZ,EAAeoB,CAAf,EAAkBQ,KAAlB,EAAyBS,MAAzB,EAAiCM,MAAjC,EAAyC,IAAzC,EAA+C,IAA/C,EAAqD,KAArD,EAA4D,KAA5D,CAAP;AACF,WAAO,wBAAY3C,CAAZ,EAAeoB,CAAf,EAAkBQ,KAAlB,EAAyBS,MAAzB,EAAiCM,MAAjC,EAAyC,KAAzC,EAAgD,KAAhD,EAAuD,IAAvD,EAA6D,IAA7D,CAAP;AACD;;AACD,SAAO,wBAAY3C,CAAZ,EAAeoB,CAAf,EAAkBQ,KAAlB,EAAyBS,MAAzB,EAAiCM,MAAjC,CAAP;AACD;;eAEc,+BAAc/C,OAAd,EAAuB;AAAEyD,EAAAA,UAAU,EAAVA;AAAF,CAAvB,C","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/cjs/Bubble.js
CHANGED
|
@@ -198,6 +198,7 @@ var BubbleRoot = /*#__PURE__*/function (_Component) {
|
|
|
198
198
|
"color": d[color] ?? color
|
|
199
199
|
}), "+"), /*#__PURE__*/_react["default"].createElement(SBubble, _ref.cn("SBubble", {
|
|
200
200
|
"id": "".concat(uid).concat(uid),
|
|
201
|
+
"index": i,
|
|
201
202
|
"render": "circle",
|
|
202
203
|
"clipPath": "url(#".concat(uid, ")"),
|
|
203
204
|
"cx": xScale(d[x]) + offset[0],
|
package/lib/cjs/Bubble.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Bubble.jsx"],"names":["BubbleRoot","document","createElement","visible","props","x","clientX","y","clientY","eventEmitter","asProps","virtualElement","getBoundingClientRect","generateGetBoundingClientRect","CONSTANT","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","transition","_","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","Component","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 +\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":["BubbleRoot","document","createElement","visible","props","x","clientX","y","clientY","eventEmitter","asProps","virtualElement","getBoundingClientRect","generateGetBoundingClientRect","CONSTANT","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","transition","_","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","Component","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 +\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"}
|