@easyv/charts 1.4.15 → 1.4.16

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