@easyv/charts 1.4.28 → 1.4.30

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 (91) hide show
  1. package/.babelrc +8 -8
  2. package/.husky/commit-msg +3 -3
  3. package/CHANGELOG.md +18 -18
  4. package/commitlint.config.js +1 -1
  5. package/lib/components/AnimateData.js +16 -8
  6. package/lib/components/Axis.js +134 -87
  7. package/lib/components/Background.js +26 -18
  8. package/lib/components/Band.js +98 -72
  9. package/lib/components/BaseLine.js +46 -33
  10. package/lib/components/Brush.js +46 -29
  11. package/lib/components/Carousel.js +40 -13
  12. package/lib/components/CartesianChart.js +147 -98
  13. package/lib/components/Chart.js +45 -28
  14. package/lib/components/ChartContainer.js +27 -18
  15. package/lib/components/ConicalGradient.js +89 -56
  16. package/lib/components/Control.js +28 -12
  17. package/lib/components/ExtentData.js +17 -9
  18. package/lib/components/FilterData.js +27 -16
  19. package/lib/components/Indicator.js +30 -23
  20. package/lib/components/Label.js +126 -96
  21. package/lib/components/Legend.js +66 -41
  22. package/lib/components/Lighter.js +50 -21
  23. package/lib/components/Line.js +59 -39
  24. package/lib/components/LinearGradient.js +22 -16
  25. package/lib/components/Mapping.js +34 -9
  26. package/lib/components/Marquee.js +30 -14
  27. package/lib/components/PieChart.js +427 -325
  28. package/lib/components/StackData.js +18 -8
  29. package/lib/components/StereoBar.js +105 -65
  30. package/lib/components/TextOverflow.js +21 -8
  31. package/lib/components/Tooltip.js +55 -41
  32. package/lib/components/index.js +29 -0
  33. package/lib/components/pieTooltip.js +101 -44
  34. package/lib/context/index.js +2 -0
  35. package/lib/css/index.module.css +42 -42
  36. package/lib/css/piechart.module.css +26 -26
  37. package/lib/element/ConicGradient.js +35 -29
  38. package/lib/element/Line.js +13 -9
  39. package/lib/element/index.js +2 -0
  40. package/lib/formatter/index.js +2 -0
  41. package/lib/formatter/legend.js +41 -30
  42. package/lib/hooks/index.js +9 -0
  43. package/lib/hooks/useAiData.js +20 -12
  44. package/lib/hooks/useAnimateData.js +21 -8
  45. package/lib/hooks/useAxes.js +117 -67
  46. package/lib/hooks/useCarouselAxisX.js +59 -26
  47. package/lib/hooks/useExtentData.js +47 -15
  48. package/lib/hooks/useFilterData.js +34 -13
  49. package/lib/hooks/useStackData.js +35 -12
  50. package/lib/hooks/useTooltip.js +53 -36
  51. package/lib/index.js +15 -0
  52. package/lib/utils/index.js +247 -95
  53. package/package.json +55 -55
  54. package/src/components/Axis.tsx +1 -1
  55. package/src/components/Background.tsx +61 -61
  56. package/src/components/Band.tsx +274 -274
  57. package/src/components/Brush.js +159 -159
  58. package/src/components/CartesianChart.js +2 -1
  59. package/src/components/Chart.js +101 -99
  60. package/src/components/ChartContainer.tsx +71 -71
  61. package/src/components/ConicalGradient.js +258 -258
  62. package/src/components/Control.jsx +51 -51
  63. package/src/components/ExtentData.js +17 -17
  64. package/src/components/Indicator.js +61 -61
  65. package/src/components/Label.js +275 -275
  66. package/src/components/Legend.js +165 -165
  67. package/src/components/Lighter.jsx +173 -173
  68. package/src/components/Line.js +150 -150
  69. package/src/components/LinearGradient.js +29 -29
  70. package/src/components/PieChart.js +19 -12
  71. package/src/components/PieTooltip.jsx +160 -133
  72. package/src/components/StereoBar.tsx +307 -307
  73. package/src/components/index.js +59 -59
  74. package/src/context/index.js +2 -2
  75. package/src/css/index.module.css +42 -42
  76. package/src/css/piechart.module.css +26 -26
  77. package/src/element/ConicGradient.jsx +55 -55
  78. package/src/element/Line.tsx +33 -33
  79. package/src/element/index.ts +3 -3
  80. package/src/formatter/index.js +1 -1
  81. package/src/formatter/legend.js +92 -92
  82. package/src/hooks/index.js +20 -20
  83. package/src/hooks/useAnimateData.ts +67 -67
  84. package/src/hooks/useExtentData.js +1 -1
  85. package/src/hooks/useFilterData.js +72 -72
  86. package/src/hooks/useStackData.js +101 -101
  87. package/src/hooks/useTooltip.ts +100 -100
  88. package/src/index.js +6 -6
  89. package/src/types/index.d.ts +67 -67
  90. package/src/utils/index.js +757 -757
  91. package/tsconfig.json +23 -23
@@ -1,59 +1,74 @@
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 _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
9
12
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
+
10
14
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
+
11
16
  var _react = require("react");
17
+
12
18
  var _popmotion = require("popmotion");
19
+
13
20
  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; }
21
+
14
22
  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; }
23
+
15
24
  var initialState = {
16
25
  currentIndex: null,
17
26
  flag: false //表示是否为首次加载,true表示首次加载,不需要立刻执行动画,false表示可以执行轮播动画
18
- };
19
27
 
28
+ };
20
29
  /**
21
30
  * x轴滚动逻辑
22
31
  * @param {Object} axis x轴配置项
23
32
  * @param {Object} config x轴轮播动画的配置项
24
33
  * @returns {Map} 返回经过改变后的x轴,主要是ticks和scaler的range发生了改变
25
34
  */
35
+
26
36
  var _default = function _default(axis, config, isHover) {
27
37
  var isControlChart = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
28
38
  var controlConfig = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;
29
39
  var show = config.show,
30
- interval = config.interval,
31
- duration = config.duration,
32
- hover = config.hover;
40
+ interval = config.interval,
41
+ duration = config.duration,
42
+ hover = config.hover;
33
43
  var time = duration + interval;
34
44
  var tickCount = axis.tickCount,
35
- allTicks = axis.allTicks,
36
- scaler = axis.scaler,
37
- start = axis.start,
38
- end = axis.end,
39
- step = axis.step,
40
- ticks = axis.ticks,
41
- lengthWithoutPaddingOuter = axis.lengthWithoutPaddingOuter;
45
+ allTicks = axis.allTicks,
46
+ scaler = axis.scaler,
47
+ start = axis.start,
48
+ end = axis.end,
49
+ step = axis.step,
50
+ ticks = axis.ticks,
51
+ lengthWithoutPaddingOuter = axis.lengthWithoutPaddingOuter;
42
52
  var tickLength = ticks.length;
53
+
43
54
  var _end = isControlChart && controlConfig ? end / (controlConfig.drag.width / 100) : end;
55
+
44
56
  var controlDragScaler = scaler.copy().range([start, end]);
57
+
45
58
  var _useState = (0, _react.useState)({
46
- scaler: scaler,
47
- step: step,
48
- ticks: ticks
49
- }),
50
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
51
- state = _useState2[0],
52
- setState = _useState2[1];
59
+ scaler: scaler,
60
+ step: step,
61
+ ticks: ticks
62
+ }),
63
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
64
+ state = _useState2[0],
65
+ setState = _useState2[1];
66
+
53
67
  var _useState3 = (0, _react.useState)(initialState),
54
- _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
55
- status = _useState4[0],
56
- setStatus = _useState4[1];
68
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
69
+ status = _useState4[0],
70
+ setStatus = _useState4[1];
71
+
57
72
  (0, _react.useEffect)(function () {
58
73
  if (show && time && tickLength > tickCount) {
59
74
  setStatus({
@@ -66,6 +81,7 @@ var _default = function _default(axis, config, isHover) {
66
81
  }, [show, time, tickCount, tickLength]);
67
82
  (0, _react.useEffect)(function () {
68
83
  var handler;
84
+
69
85
  if (!(hover && isHover) && show && time && tickLength > tickCount) {
70
86
  handler = setInterval(function () {
71
87
  setStatus(function (_ref) {
@@ -78,6 +94,7 @@ var _default = function _default(axis, config, isHover) {
78
94
  });
79
95
  }, time * 1000);
80
96
  }
97
+
81
98
  return function () {
82
99
  handler && clearInterval(handler);
83
100
  };
@@ -85,11 +102,14 @@ var _default = function _default(axis, config, isHover) {
85
102
  (0, _react.useEffect)(function () {
86
103
  var animation;
87
104
  var currentIndex = status.currentIndex,
88
- flag = status.flag;
105
+ flag = status.flag;
106
+
89
107
  if (currentIndex !== null) {
90
108
  var _step = lengthWithoutPaddingOuter / tickCount;
109
+
91
110
  if (flag) {
92
111
  var _ticks = allTicks.slice(currentIndex, tickCount);
112
+
93
113
  setState({
94
114
  step: _step,
95
115
  ticks: _ticks,
@@ -104,10 +124,13 @@ var _default = function _default(axis, config, isHover) {
104
124
  onPlay: function onPlay() {
105
125
  setState(function (axis) {
106
126
  var ticks = axis.ticks,
107
- scaler = axis.scaler;
127
+ scaler = axis.scaler;
128
+
108
129
  var _ticks2 = (0, _slicedToArray2["default"])(ticks, 1),
109
- tick = _ticks2[0];
130
+ tick = _ticks2[0];
131
+
110
132
  var _ticks = [tick].concat((0, _toConsumableArray2["default"])(getTicks(allTicks, currentIndex, tickCount)));
133
+
111
134
  return _objectSpread(_objectSpread({}, axis), {}, {
112
135
  ticks: _ticks,
113
136
  scaler: scaler.copy().range([start, _end + _step]).domain(_ticks)
@@ -117,7 +140,7 @@ var _default = function _default(axis, config, isHover) {
117
140
  onUpdate: function onUpdate(v) {
118
141
  setState(function (axis) {
119
142
  var scaler = axis.scaler,
120
- step = axis.step;
143
+ step = axis.step;
121
144
  return _objectSpread(_objectSpread({}, axis), {}, {
122
145
  scaler: scaler.copy().range([start + step * v, _end + step + step * v])
123
146
  });
@@ -126,8 +149,10 @@ var _default = function _default(axis, config, isHover) {
126
149
  onComplete: function onComplete() {
127
150
  setState(function (axis) {
128
151
  var scaler = axis.scaler,
129
- ticks = axis.ticks;
152
+ ticks = axis.ticks;
153
+
130
154
  var _ticks = ticks.slice(1, ticks.length);
155
+
131
156
  return _objectSpread(_objectSpread({}, axis), {}, {
132
157
  ticks: _ticks,
133
158
  scaler: scaler.copy().range([start, _end]).domain(_ticks)
@@ -138,12 +163,14 @@ var _default = function _default(axis, config, isHover) {
138
163
  }
139
164
  } else {
140
165
  var _ticks3 = scaler.type == "linear" ? scaler.domain() : allTicks;
166
+
141
167
  setState({
142
168
  step: step,
143
169
  scaler: scaler.copy().domain(_ticks3).range([start, _end]),
144
170
  ticks: ticks
145
171
  });
146
172
  }
173
+
147
174
  return function () {
148
175
  animation && animation.stop();
149
176
  };
@@ -155,16 +182,22 @@ var _default = function _default(axis, config, isHover) {
155
182
  isControlChart: isControlChart
156
183
  });
157
184
  };
185
+
158
186
  exports["default"] = _default;
187
+
159
188
  var getTicks = function getTicks(ticks, currentIndex, length) {
160
189
  var _currentIndex = +currentIndex;
190
+
161
191
  var ticksLength = ticks.length;
162
192
  if (ticksLength <= length) return ticks;
193
+
163
194
  var _end = _currentIndex + length;
195
+
164
196
  if (ticksLength < _end) {
165
197
  var prev = ticks.slice(_currentIndex, ticksLength);
166
198
  var next = ticks.slice(0, _end - ticksLength);
167
199
  return [].concat((0, _toConsumableArray2["default"])(prev), (0, _toConsumableArray2["default"])(next));
168
200
  }
201
+
169
202
  return ticks.slice(_currentIndex, _end);
170
203
  };
@@ -1,18 +1,28 @@
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 _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
+
9
12
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
+
10
14
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
15
+
11
16
  var _react = require("react");
17
+
12
18
  var _d3v = require("d3v7");
19
+
13
20
  var _utils = require("../utils");
21
+
14
22
  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; }
23
+
15
24
  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; }
25
+
16
26
  var stackData = function stackData(data, series) {
17
27
  var dataMap = (0, _d3v.group)(data, function (d) {
18
28
  return d.x;
@@ -25,11 +35,14 @@ var stackData = function stackData(data, series) {
25
35
  dataMap.forEach(function (value) {
26
36
  var arr = [];
27
37
  (0, _utils.resetStacks)(stacks);
38
+
28
39
  for (var i = 0, j = value.length; i < j; i++) {
29
40
  var d = value[i];
30
41
  var stack = series.get(d.s);
42
+
31
43
  if (d && d.y !== undefined && !isNaN(d.y)) {
32
44
  var currentStack = (0, _utils.getCurrentStack)(stack, stacks);
45
+
33
46
  if (stack && currentStack) {
34
47
  if (d.y >= 0) {
35
48
  currentStack.positive += d.y;
@@ -43,13 +56,13 @@ var stackData = function stackData(data, series) {
43
56
  }
44
57
  }
45
58
  }
59
+
46
60
  min = Math.min.apply(Math, arr.concat([min]));
47
61
  max = Math.max.apply(Math, arr.concat([max]));
48
62
  });
49
63
  dataMap.clear();
50
- return [min || 0, max || (min || 0) + 100];
64
+ return [min || 0, max == undefined ? (min || 0) + 100 : max];
51
65
  };
52
-
53
66
  /**
54
67
  * 计算轴的domain
55
68
  * @param {Array} axes x轴列表
@@ -57,65 +70,81 @@ var stackData = function stackData(data, series) {
57
70
  * @param {Object} data 数据列表
58
71
  * @returns {Array} 返回带domain的轴
59
72
  */
73
+
74
+
60
75
  var _default = function _default(_ref) {
61
76
  var axes = _ref.axes,
62
- series = _ref.series,
63
- data = _ref.data;
77
+ series = _ref.series,
78
+ data = _ref.data;
79
+
64
80
  var _series = (0, _react.useMemo)(function () {
65
81
  return (0, _utils.seriesYOrZ)(series);
66
82
  }, [series]);
83
+
67
84
  var _useMemo = (0, _react.useMemo)(function () {
68
- return (0, _utils.dataYOrZ)(data, _series);
69
- }, [data, _series]),
70
- dataY = _useMemo.y,
71
- dataZ = _useMemo.z;
85
+ return (0, _utils.dataYOrZ)(data, _series);
86
+ }, [data, _series]),
87
+ dataY = _useMemo.y,
88
+ dataZ = _useMemo.z;
89
+
72
90
  var x = (0, _react.useMemo)(function () {
73
91
  return (0, _toConsumableArray2["default"])((0, _d3v.group)(data, function (d) {
74
92
  return d.x;
75
93
  }).keys());
76
94
  }, [data]);
77
95
  var y = stackData(dataY, _series.y);
78
- var z = stackData(dataZ, _series.z);
79
- //clipAxisMode如果是auto根据clipDifferenceValue设置clipValue
96
+ var z = stackData(dataZ, _series.z); //clipAxisMode如果是auto根据clipDifferenceValue设置clipValue
97
+
80
98
  return axes.map(function (item) {
81
99
  var axisType = item.axisType,
82
- domain = item.domain,
83
- type = item.type;
100
+ domain = item.domain,
101
+ type = item.type;
102
+
84
103
  switch (axisType) {
85
104
  case "x":
86
105
  return _objectSpread(_objectSpread({}, item), {}, {
87
106
  domain: type == "linear" ? (0, _d3v.extent)(x) : x
88
107
  });
108
+
89
109
  case "y":
90
110
  {
91
111
  if (item.axisType == "y" && item.isClipAxis === true && item.clipAxisMode == "auto") {
92
112
  var _dataY = dataY.map(function (_item) {
93
113
  return _item.y;
94
114
  });
115
+
95
116
  var _clipValue = Infinity;
117
+
96
118
  if (_dataY.length >= 2) {
97
119
  _dataY.sort(function (a, b) {
98
120
  return a - b;
99
121
  });
122
+
100
123
  var clipDifferenceValueArr = [];
124
+
101
125
  for (var i = 0; i < _dataY.length - 1; i++) {
102
126
  clipDifferenceValueArr.push(_dataY[i + 1] - _dataY[i]);
103
127
  }
128
+
104
129
  var max = (0, _d3v.max)(clipDifferenceValueArr);
130
+
105
131
  if (max >= item.clipDifferenceValue) {
106
132
  var index = clipDifferenceValueArr.indexOf(max);
107
133
  _clipValue = _dataY[index];
108
134
  }
109
135
  }
136
+
110
137
  return _objectSpread(_objectSpread({}, item), {}, {
111
138
  domain: domain ? getDomain(y, domain) : y,
112
139
  clipValue: _clipValue
113
140
  });
114
141
  }
142
+
115
143
  return _objectSpread(_objectSpread({}, item), {}, {
116
144
  domain: domain ? getDomain(y, domain) : y
117
145
  });
118
146
  }
147
+
119
148
  case "z":
120
149
  return _objectSpread(_objectSpread({}, item), {}, {
121
150
  domain: domain ? getDomain(z, domain) : z
@@ -123,12 +152,15 @@ var _default = function _default(_ref) {
123
152
  }
124
153
  });
125
154
  };
155
+
126
156
  exports["default"] = _default;
157
+
127
158
  var getDomain = function getDomain(_ref2, _ref3) {
128
159
  var _ref4 = (0, _slicedToArray2["default"])(_ref2, 2),
129
- min1 = _ref4[0],
130
- max1 = _ref4[1];
160
+ min1 = _ref4[0],
161
+ max1 = _ref4[1];
162
+
131
163
  var min = _ref3.min,
132
- max = _ref3.max;
164
+ max = _ref3.max;
133
165
  return [min !== "" ? +min : min1, max !== "" ? +max : max1];
134
166
  };
@@ -1,26 +1,39 @@
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 _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
9
12
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
+
10
14
  var _react = require("react");
15
+
11
16
  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; }
17
+
12
18
  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; }
19
+
13
20
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
21
+
14
22
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
15
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
23
+
24
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
25
+
16
26
  var getInitialSelected = function getInitialSelected(series) {
17
27
  var status = new Map();
28
+
18
29
  var _iterator = _createForOfIteratorHelper(series.entries()),
19
- _step;
30
+ _step;
31
+
20
32
  try {
21
33
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
22
34
  var _step$value = (0, _slicedToArray2["default"])(_step.value, 1),
23
- name = _step$value[0];
35
+ name = _step$value[0];
36
+
24
37
  status.set(name, true);
25
38
  }
26
39
  } catch (err) {
@@ -28,8 +41,10 @@ var getInitialSelected = function getInitialSelected(series) {
28
41
  } finally {
29
42
  _iterator.f();
30
43
  }
44
+
31
45
  return status;
32
46
  };
47
+
33
48
  var getSelected = function getSelected(selected, name) {
34
49
  var tmp = new Map();
35
50
  selected.forEach(function (value, key) {
@@ -41,20 +56,23 @@ var getSelected = function getSelected(selected, name) {
41
56
  });
42
57
  return tmp;
43
58
  };
44
-
45
- /**
46
- * 图例点击状态管理
47
- * @param {Array} data 数据
48
- * @param {Map} series 系列
49
- * @returns {Array} 返回筛选后的数据和是否选中状态,及控制选中函数
59
+ /**
60
+ * 图例点击状态管理
61
+ * @param {Array} data 数据
62
+ * @param {Map} series 系列
63
+ * @returns {Array} 返回筛选后的数据和是否选中状态,及控制选中函数
50
64
  */
65
+
66
+
51
67
  var _default = function _default(_ref) {
52
68
  var data = _ref.data,
53
- series = _ref.series;
69
+ series = _ref.series;
70
+
54
71
  var _useState = (0, _react.useState)(getInitialSelected(series)),
55
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
56
- selected = _useState2[0],
57
- setSelected = _useState2[1];
72
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
73
+ selected = _useState2[0],
74
+ setSelected = _useState2[1];
75
+
58
76
  var _series = (0, _react.useMemo)(function () {
59
77
  var tmp = new Map();
60
78
  series.forEach(function (currentSeries, key) {
@@ -65,12 +83,14 @@ var _default = function _default(_ref) {
65
83
  });
66
84
  return tmp;
67
85
  }, [selected, series]);
86
+
68
87
  var _data = (0, _react.useMemo)(function () {
69
88
  return data.filter(function (_ref2) {
70
89
  var s = _ref2.s;
71
90
  return s && _series.get(s) && _series.get(s).selected;
72
91
  });
73
92
  }, [data, _series]);
93
+
74
94
  var onClick = (0, _react.useCallback)(function (name) {
75
95
  setSelected(function (selected) {
76
96
  return getSelected(selected, name);
@@ -89,4 +109,5 @@ var _default = function _default(_ref) {
89
109
  })
90
110
  }, onClick];
91
111
  };
112
+
92
113
  exports["default"] = _default;
@@ -1,24 +1,35 @@
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 _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
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 _d3v = require("d3v7");
19
+
13
20
  var _utils = require("../utils");
21
+
14
22
  var _excluded = ["name"];
23
+
15
24
  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; }
25
+
16
26
  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; }
27
+
17
28
  var getSeriesMap = function getSeriesMap(series) {
18
29
  var seriesMap = new Map();
19
30
  series.forEach(function (_ref) {
20
31
  var name = _ref.name,
21
- rest = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
32
+ rest = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
22
33
  seriesMap.set(name, _objectSpread(_objectSpread({}, rest), {}, {
23
34
  name: name,
24
35
  data: []
@@ -26,22 +37,27 @@ var getSeriesMap = function getSeriesMap(series) {
26
37
  });
27
38
  return seriesMap;
28
39
  };
40
+
29
41
  var resetStackData = function resetStackData(series) {
30
42
  series.forEach(function (series) {
31
43
  series.data = [];
32
44
  });
33
45
  };
46
+
34
47
  var setStackData = function setStackData(data, series, stacks) {
35
48
  var dataMap = (0, _d3v.group)(data, function (d) {
36
49
  return d.x;
37
50
  });
38
51
  dataMap.forEach(function (value) {
39
52
  (0, _utils.resetStacks)(stacks);
53
+
40
54
  for (var i = 0, j = value.length; i < j; i++) {
41
55
  var d = value[i];
42
56
  var currentSeries = series.get(d.s);
57
+
43
58
  if (d && d.y !== undefined && !isNaN(d.y)) {
44
59
  var currentStack = (0, _utils.getCurrentStack)(currentSeries, stacks);
60
+
45
61
  if (currentSeries && currentStack) {
46
62
  if (d.y >= 0) {
47
63
  currentSeries.data.push({
@@ -71,34 +87,40 @@ var setStackData = function setStackData(data, series, stacks) {
71
87
  dataMap.clear();
72
88
  return series;
73
89
  };
74
-
75
- /**
76
- * 计算堆叠数据
77
- * @param {Array} data 数据
78
- * @param {Map} series 系列
79
- * @returns {Array} 返回堆叠后的数据,由一开始的{x, y, s}变成{data: {x, y, s}, bound: [start, end], index}
90
+ /**
91
+ * 计算堆叠数据
92
+ * @param {Array} data 数据
93
+ * @param {Map} series 系列
94
+ * @returns {Array} 返回堆叠后的数据,由一开始的{x, y, s}变成{data: {x, y, s}, bound: [start, end], index}
80
95
  */
96
+
97
+
81
98
  var _default = function _default(_ref2) {
82
99
  var data = _ref2.data,
83
- series = _ref2.series;
100
+ series = _ref2.series;
101
+
84
102
  var _series = (0, _react.useMemo)(function () {
85
103
  var stacks = (0, _utils.getStacks)(series);
104
+
86
105
  var _series = getSeriesMap(series);
106
+
87
107
  return {
88
108
  stacks: stacks,
89
109
  series: (0, _utils.seriesYOrZ)(_series)
90
110
  };
91
111
  }, [series]);
112
+
92
113
  var _data = (0, _react.useMemo)(function () {
93
114
  return (0, _utils.dataYOrZ)(data, _series.series);
94
115
  }, [data, _series]);
116
+
95
117
  var tmp = (0, _react.useMemo)(function () {
96
118
  var dataY = _data.y,
97
- dataZ = _data.z;
119
+ dataZ = _data.z;
98
120
  var stacks = _series.stacks,
99
- _series$series = _series.series,
100
- seriesY = _series$series.y,
101
- seriesZ = _series$series.z;
121
+ _series$series = _series.series,
122
+ seriesY = _series$series.y,
123
+ seriesZ = _series$series.z;
102
124
  resetStackData(seriesY);
103
125
  resetStackData(seriesZ);
104
126
  setStackData(dataY, seriesY, stacks);
@@ -112,4 +134,5 @@ var _default = function _default(_ref2) {
112
134
  }, [_data, _series]);
113
135
  return tmp;
114
136
  };
137
+
115
138
  exports["default"] = _default;