@easyv/charts 1.4.16 → 1.4.17

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 (46) hide show
  1. package/lib/components/AnimateData.js +16 -8
  2. package/lib/components/Axis.js +128 -82
  3. package/lib/components/Background.js +24 -16
  4. package/lib/components/Band.js +89 -62
  5. package/lib/components/BaseLine.js +41 -29
  6. package/lib/components/Brush.js +46 -29
  7. package/lib/components/Carousel.js +40 -13
  8. package/lib/components/CartesianChart.js +98 -78
  9. package/lib/components/Chart.js +36 -23
  10. package/lib/components/ChartContainer.js +27 -18
  11. package/lib/components/ConicalGradient.js +68 -35
  12. package/lib/components/ExtentData.js +17 -9
  13. package/lib/components/FilterData.js +27 -16
  14. package/lib/components/Indicator.js +8 -6
  15. package/lib/components/Label.js +112 -82
  16. package/lib/components/Legend.js +66 -41
  17. package/lib/components/Lighter.js +48 -19
  18. package/lib/components/Line.js +59 -39
  19. package/lib/components/LinearGradient.js +20 -14
  20. package/lib/components/Mapping.js +34 -9
  21. package/lib/components/Marquee.js +30 -14
  22. package/lib/components/PieChart.js +400 -306
  23. package/lib/components/StackData.js +18 -8
  24. package/lib/components/StereoBar.js +105 -65
  25. package/lib/components/TextOverflow.js +25 -9
  26. package/lib/components/Tooltip.js +55 -41
  27. package/lib/components/index.js +27 -0
  28. package/lib/context/index.js +2 -0
  29. package/lib/element/ConicGradient.js +35 -29
  30. package/lib/element/Line.js +13 -9
  31. package/lib/element/index.js +2 -0
  32. package/lib/formatter/index.js +2 -0
  33. package/lib/formatter/legend.js +41 -30
  34. package/lib/hooks/index.js +8 -0
  35. package/lib/hooks/useAnimateData.js +16 -3
  36. package/lib/hooks/useAxes.js +115 -65
  37. package/lib/hooks/useCarouselAxisX.js +56 -26
  38. package/lib/hooks/useExtentData.js +46 -14
  39. package/lib/hooks/useFilterData.js +29 -8
  40. package/lib/hooks/useStackData.js +30 -7
  41. package/lib/hooks/useTooltip.js +43 -26
  42. package/lib/index.js +15 -0
  43. package/lib/utils/index.js +247 -95
  44. package/package.json +1 -1
  45. package/src/components/CartesianChart.js +6 -6
  46. package/src/components/TextOverflow.tsx +4 -1
@@ -1,56 +1,72 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
4
5
  var _typeof = require("@babel/runtime/helpers/typeof");
6
+
5
7
  Object.defineProperty(exports, "__esModule", {
6
8
  value: true
7
9
  });
8
10
  exports["default"] = void 0;
11
+
9
12
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
+
10
14
  var _react = _interopRequireWildcard(require("react"));
15
+
11
16
  var _d3v = require("d3v7");
17
+
12
18
  var _utils = require("@easyv/utils/lib/common/utils");
19
+
13
20
  var _indexModule = _interopRequireDefault(require("../css/index.module.css"));
21
+
14
22
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
23
+
15
24
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
25
+
16
26
  /**
17
27
  * 饼图装饰内圈
18
28
  */
19
29
  var _default = function _default(_ref) {
20
30
  var width = _ref.width,
21
- height = _ref.height,
22
- centerX = _ref.centerX,
23
- centerY = _ref.centerY,
24
- radius = _ref.radius,
25
- _ref$config = _ref.config,
26
- show = _ref$config.show,
27
- innerRadius = _ref$config.innerRadius,
28
- outerRadius = _ref$config.outerRadius,
29
- opacity = _ref$config.opacity,
30
- speed = _ref$config.speed,
31
- direction = _ref$config.direction,
32
- arcs = _ref.arcs;
31
+ height = _ref.height,
32
+ centerX = _ref.centerX,
33
+ centerY = _ref.centerY,
34
+ radius = _ref.radius,
35
+ _ref$config = _ref.config,
36
+ show = _ref$config.show,
37
+ innerRadius = _ref$config.innerRadius,
38
+ outerRadius = _ref$config.outerRadius,
39
+ opacity = _ref$config.opacity,
40
+ speed = _ref$config.speed,
41
+ direction = _ref$config.direction,
42
+ arcs = _ref.arcs;
33
43
  if (!show) return null;
44
+
34
45
  var _useState = (0, _react.useState)(null),
35
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
36
- canvas = _useState2[0],
37
- setCanvas = _useState2[1];
46
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
47
+ canvas = _useState2[0],
48
+ setCanvas = _useState2[1];
49
+
38
50
  (0, _react.useEffect)(function () {
39
51
  if (arcs && arcs.length > 0 && canvas && canvas.getContext('2d')) {
40
52
  var _radius = radius * devicePixelRatio;
53
+
41
54
  var context = canvas.getContext('2d');
42
55
  context.clearRect(0, 0, width * devicePixelRatio, height * devicePixelRatio);
43
56
  context.save();
44
57
  context.translate(centerX * devicePixelRatio, centerY * devicePixelRatio);
45
58
  context.beginPath();
46
- var _arc = (0, _d3v.arc)().innerRadius(innerRadius * _radius).outerRadius(outerRadius * _radius)
47
- // .padAngle(axis.pole.padAngle)
59
+
60
+ var _arc = (0, _d3v.arc)().innerRadius(innerRadius * _radius).outerRadius(outerRadius * _radius) // .padAngle(axis.pole.padAngle)
48
61
  // .cornerRadius(axis.pole.cornerRadius)
49
62
  .context(context);
63
+
50
64
  arcs.forEach(function (element) {
51
65
  var startAngle = element.arc.startAngle()();
52
66
  var endAngle = element.arc.endAngle()();
67
+
53
68
  _arc.startAngle(startAngle).endAngle(endAngle)();
69
+
54
70
  context.fillStyle = 'rgba(255, 255, 255, 0)';
55
71
  context.fill();
56
72
  });
@@ -59,18 +75,20 @@ var _default = function _default(_ref) {
59
75
  var conic = new ConicalGradient();
60
76
  arcs.reduce(function (reduced, _ref2) {
61
77
  var percent = _ref2.percent,
62
- _ref2$series$color = _ref2.series.color,
63
- type = _ref2$series$color.type,
64
- pure = _ref2$series$color.pure,
65
- stops = _ref2$series$color.linear.stops;
78
+ _ref2$series$color = _ref2.series.color,
79
+ type = _ref2$series$color.type,
80
+ pure = _ref2$series$color.pure,
81
+ stops = _ref2$series$color.linear.stops;
66
82
  var result = reduced + percent / 100;
67
83
  var color = type == 'pure' ? pure : stops[0].color;
84
+
68
85
  if (!!color) {
69
86
  var _converColor = (0, _utils.converColor)(color, 1),
70
- r = _converColor.r,
71
- g = _converColor.g,
72
- b = _converColor.b,
73
- a = _converColor.a;
87
+ r = _converColor.r,
88
+ g = _converColor.g,
89
+ b = _converColor.b,
90
+ a = _converColor.a;
91
+
74
92
  conic.addColorStop(reduced, {
75
93
  r: r,
76
94
  g: g,
@@ -84,6 +102,7 @@ var _default = function _default(_ref) {
84
102
  a: a
85
103
  });
86
104
  }
105
+
87
106
  return result;
88
107
  }, 0);
89
108
  conic.fill(context, 0, 0, _radius, 0, 2 * Math.PI, false);
@@ -111,11 +130,15 @@ var _default = function _default(_ref) {
111
130
  /**
112
131
  * ConicalGradient
113
132
  */
133
+
134
+
114
135
  exports["default"] = _default;
136
+
115
137
  function ConicalGradient() {
116
138
  this._offsets = [];
117
139
  this._colors = [];
118
140
  }
141
+
119
142
  ConicalGradient.prototype = {
120
143
  /**
121
144
  * addColorStop
@@ -125,15 +148,19 @@ ConicalGradient.prototype = {
125
148
  */
126
149
  addColorStop: function addColorStop(offset, color) {
127
150
  this._offsets.push(offset);
151
+
128
152
  this._colors.push(color);
153
+
129
154
  return this;
130
155
  },
156
+
131
157
  /**
132
158
  * _offsetsReverse (array.forEach callback)
133
159
  */
134
160
  _offsetsReverse: function _offsetsReverse(offset, index, array) {
135
161
  array[index] = 1 - offset;
136
162
  },
163
+
137
164
  /**
138
165
  * fill
139
166
  *
@@ -154,6 +181,7 @@ ConicalGradient.prototype = {
154
181
  startAngle %= TWO_PI;
155
182
  if (endAngle < 0) endAngle = endAngle % TWO_PI + TWO_PI;
156
183
  endAngle %= TWO_PI;
184
+
157
185
  if (anticlockwise) {
158
186
  // 逆时针
159
187
  var swap = startAngle;
@@ -163,9 +191,11 @@ ConicalGradient.prototype = {
163
191
  offsets.reverse();
164
192
  offsets.forEach(this._offsetsReverse);
165
193
  }
194
+
166
195
  if (startAngle > endAngle || Math.abs(endAngle - startAngle) < 0.0001) {
167
196
  endAngle += TWO_PI;
168
197
  }
198
+
169
199
  var colorsLength = colors.length;
170
200
  var currentColorIndex = 0;
171
201
  var currentColor = colors[currentColorIndex];
@@ -178,21 +208,22 @@ ConicalGradient.prototype = {
178
208
  var arcStartAngle = startAngle;
179
209
  var arcEndAngle;
180
210
  var r1 = currentColor.r,
181
- g1 = currentColor.g,
182
- b1 = currentColor.b,
183
- a1 = currentColor.a,
184
- r2 = nextColor.r,
185
- g2 = nextColor.g,
186
- b2 = nextColor.b,
187
- a2 = nextColor.a;
211
+ g1 = currentColor.g,
212
+ b1 = currentColor.b,
213
+ a1 = currentColor.a,
214
+ r2 = nextColor.r,
215
+ g2 = nextColor.g,
216
+ b2 = nextColor.b,
217
+ a2 = nextColor.a;
188
218
  if (!a1 && a1 !== 0) a1 = 1;
189
219
  if (!a2 && a2 !== 0) a2 = 1;
190
220
  var rd = r2 - r1,
191
- gd = g2 - g1,
192
- bd = b2 - b1,
193
- ad = a2 - a1;
221
+ gd = g2 - g1,
222
+ bd = b2 - b1,
223
+ ad = a2 - a1;
194
224
  var t, r, g, b, a;
195
225
  context.save();
226
+
196
227
  for (var i = 0, n = 1 / totalAngleDeg; i < 1; i += n) {
197
228
  if (i >= currentOffset) {
198
229
  currentColorIndex++;
@@ -221,6 +252,7 @@ ConicalGradient.prototype = {
221
252
  currentOffset = offsets[currentColorIndex];
222
253
  offsetDist = currentOffset - prevOffset;
223
254
  }
255
+
224
256
  t = (i - prevOffset) / offsetDist;
225
257
  r = rd * t + r1 & 255;
226
258
  g = gd * t + g1 & 255;
@@ -235,6 +267,7 @@ ConicalGradient.prototype = {
235
267
  context.fill();
236
268
  arcStartAngle += stepAngleRad;
237
269
  }
270
+
238
271
  context.restore();
239
272
  return this;
240
273
  }
@@ -1,30 +1,37 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports["default"] = void 0;
9
+
8
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+
9
12
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
+
10
14
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
15
+
11
16
  var _react = require("react");
17
+
12
18
  var _hooks = require("../hooks");
19
+
13
20
  var _excluded = ["axes", "series"],
14
- _excluded2 = ["config", "data"];
15
- /**
16
- * 计算X/Y/Z轴的domain,具体的逻辑在useExtentData(HOC)
17
- */
21
+ _excluded2 = ["config", "data"];
22
+
18
23
  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; }
24
+
19
25
  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) { (0, _defineProperty2["default"])(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; }
26
+
20
27
  var _default = function _default(Component) {
21
28
  return /*#__PURE__*/(0, _react.memo)(function (_ref) {
22
29
  var _ref$config = _ref.config,
23
- axes = _ref$config.axes,
24
- series = _ref$config.series,
25
- config = (0, _objectWithoutProperties2["default"])(_ref$config, _excluded),
26
- data = _ref.data,
27
- props = (0, _objectWithoutProperties2["default"])(_ref, _excluded2);
30
+ axes = _ref$config.axes,
31
+ series = _ref$config.series,
32
+ config = (0, _objectWithoutProperties2["default"])(_ref$config, _excluded),
33
+ data = _ref.data,
34
+ props = (0, _objectWithoutProperties2["default"])(_ref, _excluded2);
28
35
  return /*#__PURE__*/React.createElement(Component, (0, _extends2["default"])({}, props, {
29
36
  config: _objectSpread(_objectSpread({}, config), {}, {
30
37
  axes: (0, _hooks.useExtentData)({
@@ -38,4 +45,5 @@ var _default = function _default(Component) {
38
45
  }));
39
46
  });
40
47
  };
48
+
41
49
  exports["default"] = _default;
@@ -1,39 +1,49 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports["default"] = void 0;
9
+
8
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+
9
12
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
+
10
14
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
+
11
16
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
17
+
12
18
  var _react = require("react");
19
+
13
20
  var _hooks = require("../hooks");
21
+
14
22
  var _excluded = ["series"],
15
- _excluded2 = ["config", "data"];
16
- /**
17
- * 点击图例进行数据筛选,具体逻辑在useFilterData(HOC)
18
- */
23
+ _excluded2 = ["config", "data"];
24
+
19
25
  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; }
26
+
20
27
  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) { (0, _defineProperty2["default"])(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; }
28
+
21
29
  var _default = function _default(Component) {
22
30
  return /*#__PURE__*/(0, _react.memo)(function (_ref) {
23
31
  var _ref$config = _ref.config,
24
- series = _ref$config.series,
25
- config = (0, _objectWithoutProperties2["default"])(_ref$config, _excluded),
26
- data = _ref.data,
27
- props = (0, _objectWithoutProperties2["default"])(_ref, _excluded2);
32
+ series = _ref$config.series,
33
+ config = (0, _objectWithoutProperties2["default"])(_ref$config, _excluded),
34
+ data = _ref.data,
35
+ props = (0, _objectWithoutProperties2["default"])(_ref, _excluded2);
36
+
28
37
  var _useFilterData = (0, _hooks.useFilterData)({
29
- series: series,
30
- data: data
31
- }),
32
- _useFilterData2 = (0, _slicedToArray2["default"])(_useFilterData, 2),
33
- _useFilterData2$ = _useFilterData2[0],
34
- _series = _useFilterData2$.series,
35
- filteredData = _useFilterData2$.data,
36
- filterData = _useFilterData2[1];
38
+ series: series,
39
+ data: data
40
+ }),
41
+ _useFilterData2 = (0, _slicedToArray2["default"])(_useFilterData, 2),
42
+ _useFilterData2$ = _useFilterData2[0],
43
+ _series = _useFilterData2$.series,
44
+ filteredData = _useFilterData2$.data,
45
+ filterData = _useFilterData2[1];
46
+
37
47
  return /*#__PURE__*/React.createElement(Component, (0, _extends2["default"])({}, props, {
38
48
  config: _objectSpread(_objectSpread({}, config), {}, {
39
49
  series: _series
@@ -43,4 +53,5 @@ var _default = function _default(Component) {
43
53
  }));
44
54
  });
45
55
  };
56
+
46
57
  exports["default"] = _default;
@@ -4,17 +4,18 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports["default"] = void 0;
7
+
7
8
  /**
8
9
  * 轴类图表移上去的指示框背景
9
10
  */
10
11
  var _default = function _default(_ref) {
11
12
  var color = _ref.color,
12
- height = _ref.height,
13
- width = _ref.width,
14
- _ref$x = _ref.x,
15
- x = _ref$x === void 0 ? 0 : _ref$x,
16
- _ref$y = _ref.y,
17
- y = _ref$y === void 0 ? 0 : _ref$y;
13
+ height = _ref.height,
14
+ width = _ref.width,
15
+ _ref$x = _ref.x,
16
+ x = _ref$x === void 0 ? 0 : _ref$x,
17
+ _ref$y = _ref.y,
18
+ y = _ref$y === void 0 ? 0 : _ref$y;
18
19
  return /*#__PURE__*/React.createElement("rect", {
19
20
  width: width,
20
21
  height: height,
@@ -24,4 +25,5 @@ var _default = function _default(_ref) {
24
25
  stroke: "none"
25
26
  });
26
27
  };
28
+
27
29
  exports["default"] = _default;