@easyv/charts 1.6.11 → 1.6.13

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.
@@ -53,7 +53,8 @@ var _default = exports["default"] = /*#__PURE__*/(0, _react.memo)(function (_ref
53
53
  seriesWidth = _getSeriesInfo.seriesWidth,
54
54
  seriesStart = _getSeriesInfo.seriesStart;
55
55
  var isVertical = direction === "vertical";
56
- var _position = label.position;
56
+ var _position = label.position,
57
+ reverse = label.reverse;
57
58
  return /*#__PURE__*/React.createElement("g", {
58
59
  className: "__easyv-label"
59
60
  }, data.map(function (_ref2, i) {
@@ -91,13 +92,15 @@ var _default = exports["default"] = /*#__PURE__*/(0, _react.memo)(function (_ref
91
92
  y: y,
92
93
  y1: y1,
93
94
  y2: y2,
94
- width: width
95
+ width: width,
96
+ reverse: reverse
95
97
  }) : getHorizontalLabel({
96
98
  position: _position,
97
99
  y: y,
98
100
  y1: y1,
99
101
  y2: y2,
100
- height: height
102
+ height: height,
103
+ reverse: reverse
101
104
  });
102
105
  var attr = isVertical ? _objectSpread(_objectSpread({}, labelPosition), {}, {
103
106
  y: position,
@@ -210,12 +213,15 @@ var getVerticalLabel = function getVerticalLabel(_ref6) {
210
213
  width = _ref6.width,
211
214
  y = _ref6.y,
212
215
  y1 = _ref6.y1,
213
- y2 = _ref6.y2;
216
+ y2 = _ref6.y2,
217
+ _ref6$reverse = _ref6.reverse,
218
+ reverse = _ref6$reverse === void 0 ? true : _ref6$reverse;
219
+ var needReverse = reverse && y < 0;
214
220
  switch (position) {
215
221
  case "start":
216
222
  return {
217
- x: y > 0 ? y2 : y1,
218
- textAnchor: "start"
223
+ x: y2,
224
+ textAnchor: needReverse ? "end" : "start"
219
225
  };
220
226
  case "middle":
221
227
  return {
@@ -224,18 +230,18 @@ var getVerticalLabel = function getVerticalLabel(_ref6) {
224
230
  };
225
231
  case "end":
226
232
  return {
227
- x: y > 0 ? y1 : y2,
228
- textAnchor: "end"
233
+ x: y1,
234
+ textAnchor: needReverse ? "start" : "end"
229
235
  };
230
236
  case "outerStart":
231
237
  return {
232
238
  x: y1,
233
- textAnchor: y > 0 ? "start" : "end"
239
+ textAnchor: needReverse ? "end" : "start"
234
240
  };
235
241
  case "chartStart":
236
242
  return {
237
243
  x: y > 0 ? width : 0,
238
- textAnchor: y > 0 ? "start" : "end"
244
+ textAnchor: y >= 0 ? "start" : "end"
239
245
  };
240
246
  }
241
247
  };
@@ -245,12 +251,15 @@ var getHorizontalLabel = function getHorizontalLabel(_ref7) {
245
251
  height = _ref7.height,
246
252
  y = _ref7.y,
247
253
  y1 = _ref7.y1,
248
- y2 = _ref7.y2;
254
+ y2 = _ref7.y2,
255
+ _ref7$reverse = _ref7.reverse,
256
+ reverse = _ref7$reverse === void 0 ? true : _ref7$reverse;
257
+ var needReverse = reverse && y < 0;
249
258
  switch (position) {
250
259
  case "start":
251
260
  return {
252
- y: y > 0 ? y1 : y2,
253
- dominantBaseline: "text-after-edge"
261
+ y: y1,
262
+ dominantBaseline: needReverse ? "text-before-edge" : "text-after-edge"
254
263
  };
255
264
  case "middle":
256
265
  return {
@@ -259,13 +268,13 @@ var getHorizontalLabel = function getHorizontalLabel(_ref7) {
259
268
  };
260
269
  case "end":
261
270
  return {
262
- y: y > 0 ? y2 : y1,
263
- dominantBaseline: "text-before-edge"
271
+ y: y2,
272
+ dominantBaseline: needReverse ? "text-after-edge" : "text-before-edge"
264
273
  };
265
274
  case "outerStart":
266
275
  return {
267
276
  y: y2,
268
- dominantBaseline: y >= 0 ? "text-after-edge" : "text-before-edge"
277
+ dominantBaseline: needReverse ? "text-before-edge" : "text-after-edge"
269
278
  };
270
279
  case "chartStart":
271
280
  return {
@@ -55,12 +55,12 @@ var _default = exports["default"] = /*#__PURE__*/(0, _react.memo)(function (_ref
55
55
  }) : _objectSpread(_objectSpread({}, translateTip), {}, {
56
56
  x: translateTip.x + position + marginLeft
57
57
  });
58
- if (translate3d.x + tipWidth > width) {
59
- var newPositon = position + marginLeft - tipWidth + translateTip.x;
58
+ if (!isVertical && translate3d.x + tipWidth > width) {
59
+ var newPositon = position + marginLeft - tipWidth - translateTip.x;
60
60
  translate3d.x = newPositon >= 0 ? newPositon : 0;
61
61
  }
62
- if (translate3d.y + tipHeight > height) {
63
- var _newPositon = position + marginTop - tipHeight + translateTip.y;
62
+ if (isVertical && translate3d.y + tipHeight > height) {
63
+ var _newPositon = position + marginTop - tipHeight - translateTip.y;
64
64
  translate3d.y = _newPositon <= 0 ? _newPositon : height - tipHeight;
65
65
  }
66
66
  return (0, _utils.getTranslate3d)(translate3d);
@@ -25,12 +25,18 @@ var pieLegendFormatter = exports.pieLegendFormatter = function pieLegendFormatte
25
25
  textOverflow = _ref2$name.textOverflow,
26
26
  speed = _ref2$name.speed,
27
27
  maxWidth = _ref2$name.maxWidth,
28
+ _ref2$name$translate = _ref2$name.translate,
29
+ nameX = _ref2$name$translate.x,
30
+ nameY = _ref2$name$translate.y,
28
31
  _ref2$value = _ref2.value,
29
32
  showValue = _ref2$value.show,
30
33
  valueFont = _ref2$value.font,
31
34
  valueSameColor = _ref2$value.sameColor,
32
35
  valueGap = _ref2$value.gap,
33
36
  valueAlign = _ref2$value.align,
37
+ _ref2$value$translate = _ref2$value.translate,
38
+ valueX = _ref2$value$translate.x,
39
+ valueY = _ref2$value$translate.y,
34
40
  _ref2$value$suffix = _ref2$value.suffix,
35
41
  showSuffix = _ref2$value$suffix.show,
36
42
  text = _ref2$value$suffix.text,
@@ -43,14 +49,18 @@ var pieLegendFormatter = exports.pieLegendFormatter = function pieLegendFormatte
43
49
  percentFont = _ref2$percent.font,
44
50
  percentSameColor = _ref2$percent.sameColor,
45
51
  percentGap = _ref2$percent.gap,
46
- percentAlign = _ref2$percent.align;
52
+ percentAlign = _ref2$percent.align,
53
+ _ref2$percent$transla = _ref2$percent.translate,
54
+ percentX = _ref2$percent$transla.x,
55
+ percentY = _ref2$percent$transla.y;
47
56
  var seriesColorType = seriesColor.type,
48
57
  pure = seriesColor.pure,
49
58
  stops = seriesColor.linear.stops;
50
59
  var _color = seriesColorType == 'pure' ? pure : stops[0].color;
51
60
  return /*#__PURE__*/React.createElement(React.Fragment, null, icon && /*#__PURE__*/React.createElement("span", {
52
61
  style: _objectSpread(_objectSpread({}, icon), {}, {
53
- marginRight: icon.marginRight
62
+ marginRight: icon.marginRight,
63
+ transform: "translate(".concat(nameX, "px, ").concat(nameY, "px)")
54
64
  })
55
65
  }), /*#__PURE__*/React.createElement("div", {
56
66
  className: showName && showValue && showPercent ? _indexModule["default"].showAllStyle : _indexModule["default"].notShowAllStyle,
@@ -61,16 +71,18 @@ var pieLegendFormatter = exports.pieLegendFormatter = function pieLegendFormatte
61
71
  value: displayName,
62
72
  type: textOverflow,
63
73
  speed: speed,
64
- style: _objectSpread({
74
+ style: _objectSpread(_objectSpread({
65
75
  width: maxWidth,
66
76
  marginLeft: 5
67
- }, (0, _utils.getFontStyle)(nameFont))
77
+ }, (0, _utils.getFontStyle)(nameFont)), {}, {
78
+ transform: "translate(".concat(nameX, "px, ").concat(nameY, "px)")
79
+ })
68
80
  }), showValue && /*#__PURE__*/React.createElement("span", {
69
81
  style: _objectSpread(_objectSpread({
70
82
  whiteSpace: "nowrap"
71
83
  }, (0, _utils.getFontStyle)(valueFont)), {}, {
72
84
  marginLeft: valueGap,
73
- // transform:`translateX(${valueGap}px)`,
85
+ transform: "translate(".concat(valueX, "px,").concat(valueY, "px)"),
74
86
  display: 'flex',
75
87
  flex: 1,
76
88
  color: valueSameColor ? _color : valueFont.color,
@@ -88,7 +100,7 @@ var pieLegendFormatter = exports.pieLegendFormatter = function pieLegendFormatte
88
100
  whiteSpace: "nowrap"
89
101
  }, (0, _utils.getFontStyle)(percentFont)), {}, {
90
102
  marginLeft: percentGap,
91
- // transform:`translateX(${percentGap}px)`,
103
+ transform: "translate(".concat(percentX, "px,").concat(percentY, "px)"),
92
104
  display: "flex",
93
105
  flex: 1,
94
106
  alignItems: 'center',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@easyv/charts",
3
- "version": "1.6.11",
3
+ "version": "1.6.13",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
@@ -34,7 +34,7 @@ export default memo(
34
34
  paddingOuter,
35
35
  });
36
36
  const isVertical = direction === "vertical";
37
- const _position = label.position;
37
+ const { position:_position, reverse } = label;
38
38
  return (
39
39
  <g className="__easyv-label">
40
40
  {data.map(
@@ -74,6 +74,7 @@ export default memo(
74
74
  y1,
75
75
  y2,
76
76
  width,
77
+ reverse
77
78
  })
78
79
  : getHorizontalLabel({
79
80
  position: _position,
@@ -81,6 +82,7 @@ export default memo(
81
82
  y1,
82
83
  y2,
83
84
  height,
85
+ reverse
84
86
  });
85
87
  const attr = isVertical
86
88
  ? {
@@ -182,12 +184,13 @@ const Circle = ({ cx, cy, color, radius }) => (
182
184
  <circle cx={cx} cy={cy} fill={color} r={radius} stroke="none" />
183
185
  );
184
186
 
185
- const getVerticalLabel = ({ position = "outerStart", width, y, y1, y2 }) => {
187
+ const getVerticalLabel = ({ position = "outerStart", width, y, y1, y2, reverse = true }) => {
188
+ const needReverse = reverse && y<0;
186
189
  switch (position) {
187
190
  case "start":
188
191
  return {
189
- x: y > 0 ? y2 : y1,
190
- textAnchor: "start",
192
+ x: y2,
193
+ textAnchor: needReverse?"end":"start",
191
194
  };
192
195
  case "middle":
193
196
  return {
@@ -196,27 +199,28 @@ const getVerticalLabel = ({ position = "outerStart", width, y, y1, y2 }) => {
196
199
  };
197
200
  case "end":
198
201
  return {
199
- x: y > 0 ? y1 : y2,
200
- textAnchor: "end",
202
+ x: y1,
203
+ textAnchor: needReverse?"start":"end",
201
204
  };
202
205
  case "outerStart":
203
206
  return {
204
207
  x: y1,
205
- textAnchor: y > 0 ? "start" : "end",
208
+ textAnchor: needReverse?"end":"start",
206
209
  };
207
210
  case "chartStart":
208
211
  return {
209
212
  x: y > 0 ? width : 0,
210
- textAnchor: y > 0 ? "start" : "end",
213
+ textAnchor: y >= 0 ? "start" : "end",
211
214
  };
212
215
  }
213
216
  };
214
- const getHorizontalLabel = ({ position = "outerStart", height, y, y1, y2 }) => {
217
+ const getHorizontalLabel = ({ position = "outerStart", height, y, y1, y2, reverse = true }) => {
218
+ const needReverse = reverse && y<0;
215
219
  switch (position) {
216
220
  case "start":
217
221
  return {
218
- y: y > 0 ? y1 : y2,
219
- dominantBaseline: "text-after-edge",
222
+ y: y1,
223
+ dominantBaseline: needReverse?"text-before-edge":"text-after-edge",
220
224
  };
221
225
  case "middle":
222
226
  return {
@@ -225,13 +229,13 @@ const getHorizontalLabel = ({ position = "outerStart", height, y, y1, y2 }) => {
225
229
  };
226
230
  case "end":
227
231
  return {
228
- y: y > 0 ? y2 : y1,
229
- dominantBaseline: "text-before-edge",
232
+ y: y2,
233
+ dominantBaseline: needReverse?"text-after-edge":"text-before-edge",
230
234
  };
231
235
  case "outerStart":
232
236
  return {
233
237
  y: y2,
234
- dominantBaseline: y >= 0 ? "text-after-edge" : "text-before-edge",
238
+ dominantBaseline: needReverse?"text-before-edge":"text-after-edge",
235
239
  };
236
240
  case "chartStart":
237
241
  return {
@@ -43,12 +43,12 @@ export default memo(
43
43
  ...translateTip,
44
44
  x: translateTip.x + position + marginLeft,
45
45
  };
46
- if (translate3d.x + tipWidth > width) {
47
- const newPositon = position + marginLeft - tipWidth + translateTip.x;
46
+ if (!isVertical && translate3d.x + tipWidth > width) {
47
+ const newPositon = position + marginLeft - tipWidth - translateTip.x;
48
48
  translate3d.x = newPositon >= 0 ? newPositon : 0;
49
49
  }
50
- if (translate3d.y + tipHeight > height) {
51
- const newPositon = position + marginTop - tipHeight + translateTip.y;
50
+ if (isVertical && translate3d.y + tipHeight > height) {
51
+ const newPositon = position + marginTop - tipHeight - translateTip.y;
52
52
  translate3d.y = newPositon <= 0 ? newPositon : height - tipHeight;
53
53
  }
54
54
  return getTranslate3d(translate3d);
@@ -5,13 +5,17 @@ import { TextOverflow } from '../components';
5
5
  export const pieLegendFormatter = (
6
6
  { displayName, data, percent, series: { color: seriesColor, icon="" } },
7
7
  {
8
- name: { show: showName, font: nameFont, textOverflow, speed, maxWidth },
8
+ name: { show: showName, font: nameFont, textOverflow, speed, maxWidth, translate: { x:nameX, y:nameY } },
9
9
  value: {
10
10
  show: showValue,
11
11
  font: valueFont,
12
12
  sameColor: valueSameColor,
13
13
  gap: valueGap,
14
14
  align: valueAlign,
15
+ translate: {
16
+ x:valueX,
17
+ y:valueY
18
+ },
15
19
  suffix: {
16
20
  show: showSuffix,
17
21
  text,
@@ -24,7 +28,11 @@ export const pieLegendFormatter = (
24
28
  font: percentFont,
25
29
  sameColor: percentSameColor,
26
30
  gap: percentGap,
27
- align: percentAlign
31
+ align: percentAlign,
32
+ translate: {
33
+ x:percentX,
34
+ y:percentY
35
+ }
28
36
  },
29
37
  }
30
38
  ) => {
@@ -37,7 +45,7 @@ export const pieLegendFormatter = (
37
45
  const _color = seriesColorType == 'pure' ? pure : stops[0].color;
38
46
  return (
39
47
  <>
40
- {icon &&<span style={{ ...icon, marginRight: icon.marginRight }} />}
48
+ {icon &&<span style={{ ...icon, marginRight: icon.marginRight, transform:`translate(${nameX}px, ${nameY}px)` }} />}
41
49
  <div
42
50
  className={
43
51
  showName && showValue && showPercent
@@ -50,7 +58,7 @@ export const pieLegendFormatter = (
50
58
  >
51
59
  {showName && (
52
60
  <TextOverflow value={displayName} type={textOverflow} speed={speed} style={{
53
- width:maxWidth, marginLeft: 5, ...getFontStyle(nameFont)
61
+ width:maxWidth, marginLeft: 5, ...getFontStyle(nameFont), transform:`translate(${nameX}px, ${nameY}px)`
54
62
  }}></TextOverflow>
55
63
  )}
56
64
  {showValue && (
@@ -59,7 +67,7 @@ export const pieLegendFormatter = (
59
67
  whiteSpace:"nowrap",
60
68
  ...getFontStyle(valueFont),
61
69
  marginLeft: valueGap,
62
- // transform:`translateX(${valueGap}px)`,
70
+ transform:`translate(${valueX}px,${valueY}px)`,
63
71
  display: 'flex',
64
72
  flex:1,
65
73
  color: valueSameColor ? _color : valueFont.color,
@@ -87,7 +95,7 @@ export const pieLegendFormatter = (
87
95
  whiteSpace:"nowrap",
88
96
  ...getFontStyle(percentFont),
89
97
  marginLeft: percentGap,
90
- // transform:`translateX(${percentGap}px)`,
98
+ transform:`translate(${percentX}px,${percentY}px)`,
91
99
  display:"flex",
92
100
  flex:1,
93
101
  alignItems: 'center',