@easyv/charts 1.6.23 → 1.6.25

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.
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
10
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
+ var _react = _interopRequireWildcard(require("react"));
12
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
13
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
14
+ var _default = exports["default"] = /*#__PURE__*/(0, _react.memo)(function (props) {
15
+ var value = props.value,
16
+ _props$config = props.config,
17
+ fontFamily = _props$config.fontFamily,
18
+ separator = _props$config.separator,
19
+ show = _props$config.show,
20
+ splitCount = _props$config.splitCount,
21
+ style = _props$config.style,
22
+ _props$config$margin = _props$config.margin,
23
+ left = _props$config$margin.left,
24
+ right = _props$config$margin.right;
25
+ var stringValue = String(value);
26
+ var _stringValue$split = stringValue.split('.'),
27
+ _stringValue$split2 = (0, _slicedToArray2["default"])(_stringValue$split, 2),
28
+ intValueString = _stringValue$split2[0],
29
+ _stringValue$split2$ = _stringValue$split2[1],
30
+ pointValueSting = _stringValue$split2$ === void 0 ? '' : _stringValue$split2$;
31
+ var intArray = [];
32
+ var pointArray = (0, _toConsumableArray2["default"])(pointValueSting);
33
+ (0, _toConsumableArray2["default"])(intValueString).forEach(function (i, index) {
34
+ !(intValueString.length - index - 1) || (intValueString.length - index - 1) % splitCount ? intArray.push(i) : (intArray.push(i), intArray.push('分隔符'));
35
+ });
36
+ return show ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, intArray.map(function (v, index) {
37
+ return /*#__PURE__*/_react["default"].createElement("span", {
38
+ key: 'int_' + index,
39
+ style: {
40
+ fontFamily: v === '分隔符' && style != 'default' ? fontFamily : 'inherit',
41
+ marginLeft: v === '分隔符' ? left : 0,
42
+ marginRight: v === '分隔符' ? right : 0
43
+ }
44
+ }, v === '分隔符' ? style == 'custom' && separator ? separator : ',' : v);
45
+ }), pointArray.length ? /*#__PURE__*/_react["default"].createElement("span", null, ".") : null, pointArray.map(function (v, index) {
46
+ return /*#__PURE__*/_react["default"].createElement("span", {
47
+ key: 'point_' + index
48
+ }, v);
49
+ })) : value;
50
+ });
@@ -143,6 +143,12 @@ Object.defineProperty(exports, "PieTooltip", {
143
143
  return _PieTooltip.PieTooltip;
144
144
  }
145
145
  });
146
+ Object.defineProperty(exports, "SplitText", {
147
+ enumerable: true,
148
+ get: function get() {
149
+ return _SplitText["default"];
150
+ }
151
+ });
146
152
  Object.defineProperty(exports, "StackData", {
147
153
  enumerable: true,
148
154
  get: function get() {
@@ -194,4 +200,5 @@ var _TextOverflow = _interopRequireDefault(require("./TextOverflow"));
194
200
  var _BaseLine = _interopRequireDefault(require("./BaseLine"));
195
201
  var _Control = _interopRequireDefault(require("./Control"));
196
202
  var _PieTooltip = require("./PieTooltip");
203
+ var _SplitText = _interopRequireDefault(require("./SplitText"));
197
204
  var Area = exports.Area = _Line["default"];
@@ -37,6 +37,7 @@ var pieLegendFormatter = exports.pieLegendFormatter = function pieLegendFormatte
37
37
  _ref2$value$translate = _ref2$value.translate,
38
38
  valueX = _ref2$value$translate.x,
39
39
  valueY = _ref2$value$translate.y,
40
+ splitConfig = _ref2$value.splitConfig,
40
41
  _ref2$value$suffix = _ref2$value.suffix,
41
42
  showSuffix = _ref2$value$suffix.show,
42
43
  text = _ref2$value$suffix.text,
@@ -90,7 +91,10 @@ var pieLegendFormatter = exports.pieLegendFormatter = function pieLegendFormatte
90
91
  alignItems: 'center',
91
92
  justifyContent: valueAlign == "left" ? "flex-start" : valueAlign == "right" ? "flex-end" : 'center'
92
93
  })
93
- }, /*#__PURE__*/React.createElement("span", null, data.y), showSuffix && /*#__PURE__*/React.createElement("span", {
94
+ }, /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement(_components.SplitText, {
95
+ value: data.y,
96
+ config: splitConfig
97
+ })), showSuffix && /*#__PURE__*/React.createElement("span", {
94
98
  style: {
95
99
  whiteSpace: "nowrap",
96
100
  fontSize: fontSize,
@@ -16,7 +16,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
16
16
  var getCount = function getCount(num) {
17
17
  var i = 0,
18
18
  num_ = Math.abs(num);
19
- if (num_ < 1) return i;
19
+ if (num_ < 1) return 0;
20
20
  while (num_ > 10) {
21
21
  i++;
22
22
  num_ = Math.floor(num_ / 10);
@@ -57,6 +57,8 @@ var getNewDomain = function getNewDomain(domain, mode, step) {
57
57
  case "count":
58
58
  newDomain[0] = bottom != "" ? bottom : Math.floor(domain[0] / minCount) * minCount;
59
59
  newDomain[1] = top != "" ? top : maxCount == 1 ? domain[1] : Math.ceil(domain[1] / maxCount) * maxCount;
60
+ if (newDomain[0] > 0 && newDomain[0] < 10 && defaultBottom === "") newDomain[0] = 0;
61
+ if (newDomain[1] < 0 && newDomain[1] > -10 && defaultTop === "") newDomain[1] = 0;
60
62
  break;
61
63
  case "step":
62
64
  if (defaultTop != "") {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@easyv/charts",
3
- "version": "1.6.23",
3
+ "version": "1.6.25",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
@@ -0,0 +1,70 @@
1
+ import React, { memo } from 'react';
2
+
3
+ type SplitConfig = {
4
+ fontFamily: string;
5
+ separator: string;
6
+ show: boolean;
7
+ splitCount: number;
8
+ style: 'custom' | 'default';
9
+ margin: {
10
+ left: number;
11
+ right: number;
12
+ };
13
+ };
14
+
15
+ interface SplitProps {
16
+ value: number | string;
17
+ config: SplitConfig;
18
+ }
19
+
20
+ export default memo((props: SplitProps) => {
21
+ const {
22
+ value,
23
+ config: {
24
+ fontFamily,
25
+ separator,
26
+ show,
27
+ splitCount,
28
+ style,
29
+ margin: { left, right },
30
+ },
31
+ } = props;
32
+
33
+ const stringValue = String(value);
34
+ const [intValueString, pointValueSting = ''] = stringValue.split('.');
35
+
36
+ const intArray: (string | '分隔符')[] = [];
37
+
38
+ const pointArray = [...pointValueSting];
39
+
40
+ [...intValueString].forEach((i, index) => {
41
+ !(intValueString.length - index - 1) || (intValueString.length - index - 1) % splitCount
42
+ ? intArray.push(i)
43
+ : (intArray.push(i), intArray.push('分隔符'));
44
+ });
45
+
46
+ return show ? (
47
+ <>
48
+ {intArray.map((v, index) => {
49
+ return (
50
+ <span
51
+ key={'int_' + index}
52
+ style={{
53
+ fontFamily: v === '分隔符' && style != 'default' ? fontFamily : 'inherit',
54
+ marginLeft: v === '分隔符' ? left : 0,
55
+ marginRight: v === '分隔符' ? right : 0,
56
+ }}
57
+ >
58
+ {v === '分隔符' ? (style == 'custom' && separator ? separator : ',') : v}
59
+ </span>
60
+ );
61
+ })}
62
+ {pointArray.length ? <span>.</span> : null}
63
+ {pointArray.map((v, index) => {
64
+ return <span key={'point_' + index}>{v}</span>;
65
+ })}
66
+ </>
67
+ ) : (
68
+ value
69
+ );
70
+ });
@@ -25,6 +25,7 @@ import TextOverflow from './TextOverflow';
25
25
  import BaseLine from './BaseLine';
26
26
  import Control from './Control';
27
27
  import { PieTooltip } from './PieTooltip';
28
+ import SplitText from './SplitText';
28
29
 
29
30
  const Area = Line;
30
31
  export {
@@ -55,5 +56,6 @@ export {
55
56
  Chart,
56
57
  ConicalGradient,
57
58
  BaseLine,
58
- PieTooltip
59
+ PieTooltip,
60
+ SplitText
59
61
  };
@@ -1,6 +1,6 @@
1
1
  import css from '../css/index.module.css';
2
2
  import { getFontStyle } from '../utils';
3
- import { TextOverflow } from '../components';
3
+ import { TextOverflow, SplitText } from '../components';
4
4
 
5
5
  export const pieLegendFormatter = (
6
6
  { displayName, data, percent, series: { color: seriesColor, icon="" } },
@@ -16,6 +16,7 @@ export const pieLegendFormatter = (
16
16
  x:valueX,
17
17
  y:valueY
18
18
  },
19
+ splitConfig,
19
20
  suffix: {
20
21
  show: showSuffix,
21
22
  text,
@@ -77,7 +78,7 @@ export const pieLegendFormatter = (
77
78
  justifyContent: valueAlign=="left"?"flex-start":valueAlign=="right"?"flex-end":'center',
78
79
  }}
79
80
  >
80
- <span>{data.y}</span>
81
+ <span><SplitText value={data.y} config={splitConfig} /></span>
81
82
  {showSuffix && (
82
83
  <span
83
84
  style={{
@@ -6,7 +6,7 @@ import { getYTicksByStep, getYTicks } from "@easyv/utils/lib/common/utils";
6
6
  const getCount = (num) => {
7
7
  let i = 0,
8
8
  num_ = Math.abs(num);
9
- if (num_ < 1) return i;
9
+ if (num_ < 1) return 0;
10
10
  while (num_ > 10) {
11
11
  i++;
12
12
  num_ = Math.floor(num_ / 10);
@@ -27,11 +27,12 @@ const getNewDomain = (
27
27
  percentageExtent;
28
28
  let bottom = defaultBottom,
29
29
  top = defaultTop;
30
-
30
+
31
31
  let newDomain = [];
32
32
  //能进入这个函数,说明extent中min和max至少有一个是缺失的,如果max存在,意味着纵轴上限被固定
33
33
  let min = domain[0],
34
34
  max = domain[1];
35
+
35
36
  let minCount = Math.pow(10, getCount(min)),
36
37
  maxCount = Math.pow(10, getCount(max));
37
38
  //轴标签,范围模式,百分比模式
@@ -41,13 +42,14 @@ const getNewDomain = (
41
42
  bottom = (min * _min) / 100;
42
43
  top = (max * _max) / 100;
43
44
  }
44
-
45
45
  switch (mode) {
46
46
  case "count":
47
47
  newDomain[0] =
48
48
  bottom != "" ? bottom : Math.floor(domain[0] / minCount) * minCount;
49
49
  newDomain[1] =
50
50
  top != "" ? top : maxCount==1?domain[1]:Math.ceil(domain[1] / maxCount) * maxCount;
51
+ if(newDomain[0]>0 && newDomain[0]<10 && defaultBottom==="")newDomain[0] = 0;
52
+ if(newDomain[1]<0 && newDomain[1]>-10 && defaultTop==="")newDomain[1] = 0;
51
53
  break;
52
54
  case "step":
53
55
  if (defaultTop != "") {