@easyv/charts 1.7.36 → 1.7.37
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.
- package/.babelrc +8 -8
- package/CHANGELOG.md +18 -18
- package/commitlint.config.js +1 -1
- package/lib/components/Background.js +2 -2
- package/lib/components/Band.js +2 -2
- package/lib/components/Brush.js +2 -2
- package/lib/components/Chart.js +2 -2
- package/lib/components/ChartContainer.js +2 -2
- package/lib/components/ConicalGradient.js +21 -21
- package/lib/components/ExtentData.js +2 -2
- package/lib/components/Indicator.js +2 -2
- package/lib/components/Label.js +2 -2
- package/lib/components/Legend.js +38 -6
- package/lib/components/Lighter.js +2 -2
- package/lib/components/Line.js +2 -2
- package/lib/components/LinearGradient.js +2 -2
- package/lib/components/StereoBar.js +2 -2
- package/lib/css/index.module.css +39 -42
- package/lib/css/piechart.module.css +26 -26
- package/lib/formatter/legend.js +55 -50
- package/lib/hooks/useAnimateData.js +6 -6
- package/lib/hooks/useFilterData.js +5 -5
- package/lib/hooks/useStackData.js +5 -5
- package/lib/hooks/useTooltip.js +11 -11
- package/package.json +54 -54
- package/src/components/Background.tsx +61 -61
- package/src/components/Band.tsx +334 -334
- package/src/components/Brush.js +159 -159
- package/src/components/Chart.js +157 -157
- package/src/components/ChartContainer.tsx +71 -71
- package/src/components/ConicalGradient.js +258 -258
- package/src/components/Control.jsx +242 -242
- package/src/components/ExtentData.js +18 -18
- package/src/components/Indicator.js +61 -61
- package/src/components/Label.js +262 -262
- package/src/components/Legend.js +289 -267
- package/src/components/Lighter.jsx +173 -173
- package/src/components/Line.js +153 -153
- package/src/components/LinearGradient.js +29 -29
- package/src/components/PieTooltip.jsx +160 -160
- package/src/components/SplitText.tsx +70 -70
- package/src/components/StereoBar.tsx +307 -307
- package/src/components/index.js +61 -61
- package/src/context/index.js +2 -2
- package/src/css/index.module.css +39 -42
- package/src/css/piechart.module.css +26 -26
- package/src/element/ConicGradient.jsx +55 -55
- package/src/element/Line.tsx +33 -33
- package/src/element/index.ts +3 -3
- package/src/formatter/index.js +1 -1
- package/src/formatter/legend.js +122 -115
- package/src/hooks/index.js +20 -20
- package/src/hooks/useAnimateData.ts +68 -68
- package/src/hooks/useFilterData.js +77 -77
- package/src/hooks/useStackData.js +140 -140
- package/src/hooks/useTooltip.ts +103 -103
- package/src/index.js +6 -6
- package/src/types/index.d.ts +68 -68
- package/src/utils/index.js +812 -812
- package/tsconfig.json +23 -23
package/lib/formatter/legend.js
CHANGED
|
@@ -11,54 +11,60 @@ var _utils = require("../utils");
|
|
|
11
11
|
var _components = require("../components");
|
|
12
12
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
13
13
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
14
|
-
var pieLegendFormatter = exports.pieLegendFormatter = function pieLegendFormatter(
|
|
15
|
-
var displayName =
|
|
16
|
-
data =
|
|
17
|
-
percent =
|
|
18
|
-
|
|
19
|
-
seriesColor =
|
|
20
|
-
|
|
21
|
-
icon =
|
|
22
|
-
|
|
23
|
-
showName =
|
|
24
|
-
nameFont =
|
|
25
|
-
textOverflow =
|
|
26
|
-
speed =
|
|
27
|
-
maxWidth =
|
|
28
|
-
|
|
29
|
-
nameX =
|
|
30
|
-
nameY =
|
|
31
|
-
|
|
32
|
-
showValue =
|
|
33
|
-
valueFont =
|
|
34
|
-
valueSameColor =
|
|
35
|
-
valueGap =
|
|
36
|
-
valueAlign =
|
|
37
|
-
|
|
38
|
-
valueX =
|
|
39
|
-
valueY =
|
|
40
|
-
splitConfig =
|
|
41
|
-
|
|
42
|
-
showSuffix =
|
|
43
|
-
text =
|
|
44
|
-
fontSize =
|
|
45
|
-
|
|
46
|
-
x =
|
|
47
|
-
y =
|
|
48
|
-
|
|
49
|
-
showPercent =
|
|
50
|
-
percentFont =
|
|
51
|
-
percentSameColor =
|
|
52
|
-
percentGap =
|
|
53
|
-
percentAlign =
|
|
54
|
-
|
|
55
|
-
percentX =
|
|
56
|
-
percentY =
|
|
14
|
+
var pieLegendFormatter = exports.pieLegendFormatter = function pieLegendFormatter(series, props) {
|
|
15
|
+
var displayName = series.displayName,
|
|
16
|
+
data = series.data,
|
|
17
|
+
percent = series.percent,
|
|
18
|
+
_series$series = series.series,
|
|
19
|
+
seriesColor = _series$series.color,
|
|
20
|
+
_series$series$icon = _series$series.icon,
|
|
21
|
+
icon = _series$series$icon === void 0 ? "" : _series$series$icon,
|
|
22
|
+
_props$name = props.name,
|
|
23
|
+
showName = _props$name.show,
|
|
24
|
+
nameFont = _props$name.font,
|
|
25
|
+
textOverflow = _props$name.textOverflow,
|
|
26
|
+
speed = _props$name.speed,
|
|
27
|
+
maxWidth = _props$name.maxWidth,
|
|
28
|
+
_props$name$translate = _props$name.translate,
|
|
29
|
+
nameX = _props$name$translate.x,
|
|
30
|
+
nameY = _props$name$translate.y,
|
|
31
|
+
_props$value = props.value,
|
|
32
|
+
showValue = _props$value.show,
|
|
33
|
+
valueFont = _props$value.font,
|
|
34
|
+
valueSameColor = _props$value.sameColor,
|
|
35
|
+
valueGap = _props$value.gap,
|
|
36
|
+
valueAlign = _props$value.align,
|
|
37
|
+
_props$value$translat = _props$value.translate,
|
|
38
|
+
valueX = _props$value$translat.x,
|
|
39
|
+
valueY = _props$value$translat.y,
|
|
40
|
+
splitConfig = _props$value.splitConfig,
|
|
41
|
+
_props$value$suffix = _props$value.suffix,
|
|
42
|
+
showSuffix = _props$value$suffix.show,
|
|
43
|
+
text = _props$value$suffix.text,
|
|
44
|
+
fontSize = _props$value$suffix.fontSize,
|
|
45
|
+
_props$value$suffix$t = _props$value$suffix.translate,
|
|
46
|
+
x = _props$value$suffix$t.x,
|
|
47
|
+
y = _props$value$suffix$t.y,
|
|
48
|
+
_props$percent = props.percent,
|
|
49
|
+
showPercent = _props$percent.show,
|
|
50
|
+
percentFont = _props$percent.font,
|
|
51
|
+
percentSameColor = _props$percent.sameColor,
|
|
52
|
+
percentGap = _props$percent.gap,
|
|
53
|
+
percentAlign = _props$percent.align,
|
|
54
|
+
_props$percent$transl = _props$percent.translate,
|
|
55
|
+
percentX = _props$percent$transl.x,
|
|
56
|
+
percentY = _props$percent$transl.y;
|
|
57
57
|
var seriesColorType = seriesColor.type,
|
|
58
58
|
pure = seriesColor.pure,
|
|
59
59
|
stops = seriesColor.linear.stops;
|
|
60
60
|
var _color = seriesColorType == 'pure' ? pure : stops[0].color;
|
|
61
61
|
var textMarginLeft = 5;
|
|
62
|
+
|
|
63
|
+
// 1. 计算每列宽度(加上间距)
|
|
64
|
+
var columns = [];
|
|
65
|
+
if (showName) columns.push("".concat(props.nameMaxWidth, "px"));
|
|
66
|
+
if (showValue) columns.push("".concat(props.valueMaxWidth + valueGap, "px"));
|
|
67
|
+
if (showPercent) columns.push("".concat(props.percentMaxWidth + percentGap, "px"));
|
|
62
68
|
return /*#__PURE__*/React.createElement(React.Fragment, null, icon && /*#__PURE__*/React.createElement("span", {
|
|
63
69
|
style: _objectSpread(_objectSpread({}, icon), {}, {
|
|
64
70
|
marginRight: icon.marginRight,
|
|
@@ -67,7 +73,8 @@ var pieLegendFormatter = exports.pieLegendFormatter = function pieLegendFormatte
|
|
|
67
73
|
}), /*#__PURE__*/React.createElement("div", {
|
|
68
74
|
className: showName && showValue && showPercent ? _indexModule["default"].showAllStyle : _indexModule["default"].notShowAllStyle,
|
|
69
75
|
style: {
|
|
70
|
-
width: "calc( 100% + ".concat(textMarginLeft + valueGap + percentGap, "px )")
|
|
76
|
+
width: "calc( 100% + ".concat(textMarginLeft + valueGap + percentGap, "px )"),
|
|
77
|
+
gridTemplateColumns: columns.join(' ')
|
|
71
78
|
}
|
|
72
79
|
}, showName && /*#__PURE__*/React.createElement(_components.TextOverflow, {
|
|
73
80
|
value: displayName,
|
|
@@ -85,11 +92,10 @@ var pieLegendFormatter = exports.pieLegendFormatter = function pieLegendFormatte
|
|
|
85
92
|
}, (0, _utils.getFontStyle)(valueFont)), {}, {
|
|
86
93
|
marginLeft: valueGap,
|
|
87
94
|
transform: "translate(".concat(valueX, "px,").concat(valueY, "px)"),
|
|
88
|
-
display: 'flex',
|
|
89
|
-
flex: 1,
|
|
90
95
|
color: valueSameColor ? _color : valueFont.color,
|
|
91
96
|
alignItems: 'center',
|
|
92
|
-
justifyContent: valueAlign == "left" ? "flex-start" : valueAlign == "right" ? "flex-end" : 'center'
|
|
97
|
+
justifyContent: valueAlign == "left" ? "flex-start" : valueAlign == "right" ? "flex-end" : 'center',
|
|
98
|
+
textAlign: valueAlign === "left" ? "left" : valueAlign === "right" ? "right" : "center"
|
|
93
99
|
})
|
|
94
100
|
}, /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement(_components.SplitText, {
|
|
95
101
|
value: data.y,
|
|
@@ -106,11 +112,10 @@ var pieLegendFormatter = exports.pieLegendFormatter = function pieLegendFormatte
|
|
|
106
112
|
}, (0, _utils.getFontStyle)(percentFont)), {}, {
|
|
107
113
|
marginLeft: percentGap,
|
|
108
114
|
transform: "translate(".concat(percentX, "px,").concat(percentY, "px)"),
|
|
109
|
-
|
|
110
|
-
flex: 1,
|
|
115
|
+
color: percentSameColor ? _color : percentFont.color,
|
|
111
116
|
alignItems: 'center',
|
|
112
117
|
justifyContent: percentAlign == "left" ? "flex-start" : percentAlign == "right" ? "flex-end" : 'center',
|
|
113
|
-
|
|
118
|
+
textAlign: percentAlign === "left" ? "left" : percentAlign === "right" ? "right" : "center"
|
|
114
119
|
})
|
|
115
120
|
}, percent + '%')));
|
|
116
121
|
};
|
|
@@ -11,12 +11,12 @@ var _react = require("react");
|
|
|
11
11
|
var _popmotion = require("popmotion");
|
|
12
12
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
13
13
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
14
|
-
/**
|
|
15
|
-
* 图表数据动画
|
|
16
|
-
* @param {Array} data data列表
|
|
17
|
-
* @param {boolean} dataAnimation 是否开启数据增长动画
|
|
18
|
-
* @param {boolean} active 是否处于活跃状态,false为休眠
|
|
19
|
-
* @returns 改变后的数据
|
|
14
|
+
/**
|
|
15
|
+
* 图表数据动画
|
|
16
|
+
* @param {Array} data data列表
|
|
17
|
+
* @param {boolean} dataAnimation 是否开启数据增长动画
|
|
18
|
+
* @param {boolean} active 是否处于活跃状态,false为休眠
|
|
19
|
+
* @returns 改变后的数据
|
|
20
20
|
*/
|
|
21
21
|
var _default = exports["default"] = function _default(data, dataAnimation, active) {
|
|
22
22
|
var _useState = (0, _react.useState)([]),
|
|
@@ -42,11 +42,11 @@ var getSelected = function getSelected(selected, name) {
|
|
|
42
42
|
return tmp;
|
|
43
43
|
};
|
|
44
44
|
|
|
45
|
-
/**
|
|
46
|
-
* 图例点击状态管理
|
|
47
|
-
* @param {Array} data 数据
|
|
48
|
-
* @param {Map} series 系列
|
|
49
|
-
* @returns {Array} 返回筛选后的数据和是否选中状态,及控制选中函数
|
|
45
|
+
/**
|
|
46
|
+
* 图例点击状态管理
|
|
47
|
+
* @param {Array} data 数据
|
|
48
|
+
* @param {Map} series 系列
|
|
49
|
+
* @returns {Array} 返回筛选后的数据和是否选中状态,及控制选中函数
|
|
50
50
|
*/
|
|
51
51
|
var _default = exports["default"] = function _default(_ref) {
|
|
52
52
|
var data = _ref.data,
|
|
@@ -109,11 +109,11 @@ var mergeDataAndSeries = function mergeDataAndSeries(data, _series) {
|
|
|
109
109
|
});
|
|
110
110
|
});
|
|
111
111
|
};
|
|
112
|
-
/**
|
|
113
|
-
* 计算堆叠数据
|
|
114
|
-
* @param {Array} data 数据
|
|
115
|
-
* @param {Map} series 系列
|
|
116
|
-
* @returns {Array} 返回堆叠后的数据,由一开始的{x, y, s}变成{data: {x, y, s}, bound: [start, end], index}
|
|
112
|
+
/**
|
|
113
|
+
* 计算堆叠数据
|
|
114
|
+
* @param {Array} data 数据
|
|
115
|
+
* @param {Map} series 系列
|
|
116
|
+
* @returns {Array} 返回堆叠后的数据,由一开始的{x, y, s}变成{data: {x, y, s}, bound: [start, end], index}
|
|
117
117
|
*/
|
|
118
118
|
var _default = exports["default"] = function _default(_ref2) {
|
|
119
119
|
var data = _ref2.data,
|
package/lib/hooks/useTooltip.js
CHANGED
|
@@ -10,17 +10,17 @@ var _react = require("react");
|
|
|
10
10
|
var _utils = require("../utils");
|
|
11
11
|
var callback = function callback() {};
|
|
12
12
|
|
|
13
|
-
/**
|
|
14
|
-
* 主要用于轴类图表,返回当前选中的是哪一个x
|
|
15
|
-
* @param {Array} svg svg的dom实例
|
|
16
|
-
* @param {Number} marginLeft 左间距
|
|
17
|
-
* @param {Number} marginTop 上间距
|
|
18
|
-
* @param {Number} width 宽
|
|
19
|
-
* @param {Number} height 高
|
|
20
|
-
* @param {Number} axisX 类目轴
|
|
21
|
-
* @param {Object} config 轮播动画参数
|
|
22
|
-
* @param {Boolean} active 组件是否处于活跃状态
|
|
23
|
-
* @returns {Object} 返回被选中的名称,坐标,选中方法
|
|
13
|
+
/**
|
|
14
|
+
* 主要用于轴类图表,返回当前选中的是哪一个x
|
|
15
|
+
* @param {Array} svg svg的dom实例
|
|
16
|
+
* @param {Number} marginLeft 左间距
|
|
17
|
+
* @param {Number} marginTop 上间距
|
|
18
|
+
* @param {Number} width 宽
|
|
19
|
+
* @param {Number} height 高
|
|
20
|
+
* @param {Number} axisX 类目轴
|
|
21
|
+
* @param {Object} config 轮播动画参数
|
|
22
|
+
* @param {Boolean} active 组件是否处于活跃状态
|
|
23
|
+
* @returns {Object} 返回被选中的名称,坐标,选中方法
|
|
24
24
|
*/
|
|
25
25
|
var _default = exports["default"] = function _default(_ref) {
|
|
26
26
|
var svg = _ref.svg,
|
package/package.json
CHANGED
|
@@ -1,55 +1,55 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@easyv/charts",
|
|
3
|
-
"version": "1.7.
|
|
4
|
-
"description": "",
|
|
5
|
-
"main": "lib/index.js",
|
|
6
|
-
"scripts": {
|
|
7
|
-
"make": "babel src -d lib --extensions .ts,.tsx,.js,.jsx && cp -r src/css lib",
|
|
8
|
-
"prepare": "husky install"
|
|
9
|
-
},
|
|
10
|
-
"keywords": [],
|
|
11
|
-
"author": "",
|
|
12
|
-
"license": "ISC",
|
|
13
|
-
"devDependencies": {
|
|
14
|
-
"@babel/cli": "^7.17.10",
|
|
15
|
-
"@babel/core": "^7.26.0",
|
|
16
|
-
"@babel/plugin-proposal-class-properties": "^7.16.7",
|
|
17
|
-
"@babel/plugin-proposal-export-default-from": "^7.16.7",
|
|
18
|
-
"@babel/plugin-transform-runtime": "^7.17.10",
|
|
19
|
-
"@babel/preset-env": "^7.26.0",
|
|
20
|
-
"@babel/preset-react": "^7.16.7",
|
|
21
|
-
"@babel/preset-typescript": "^7.16.7",
|
|
22
|
-
"@commitlint/cli": "^17.6.7",
|
|
23
|
-
"@commitlint/config-conventional": "^16.2.4",
|
|
24
|
-
"@types/d3": "^7.0.0",
|
|
25
|
-
"@types/react": "^18.0.12",
|
|
26
|
-
"@types/react-dom": "^18.0.5",
|
|
27
|
-
"babel-plugin-transform-import-styles": "^0.0.11",
|
|
28
|
-
"babel-preset-env": "^1.7.0",
|
|
29
|
-
"cz-conventional-changelog": "^3.3.0",
|
|
30
|
-
"husky": "^7.0.4",
|
|
31
|
-
"load-styles": "^2.0.0",
|
|
32
|
-
"standard-version": "^9.3.2"
|
|
33
|
-
},
|
|
34
|
-
"dependencies": {
|
|
35
|
-
"@easyv/utils": "^0.0.50",
|
|
36
|
-
"d3v7": "npm:d3@^7.0.0",
|
|
37
|
-
"gitignore": "^0.7.0",
|
|
38
|
-
"mrm": "^4.0.0",
|
|
39
|
-
"popmotion": "^9.3.6",
|
|
40
|
-
"react": "^17.0.2",
|
|
41
|
-
"svg-path-properties": "^1.0.11",
|
|
42
|
-
"svg-points": "^6.0.1",
|
|
43
|
-
"yarn": "^1.22.19"
|
|
44
|
-
},
|
|
45
|
-
"config": {
|
|
46
|
-
"commitizen": {
|
|
47
|
-
"path": "./node_modules/cz-conventional-changelog"
|
|
48
|
-
}
|
|
49
|
-
},
|
|
50
|
-
"standard-version": {
|
|
51
|
-
"skip": {
|
|
52
|
-
"commit": true
|
|
53
|
-
}
|
|
54
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@easyv/charts",
|
|
3
|
+
"version": "1.7.37",
|
|
4
|
+
"description": "",
|
|
5
|
+
"main": "lib/index.js",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"make": "babel src -d lib --extensions .ts,.tsx,.js,.jsx && cp -r src/css lib",
|
|
8
|
+
"prepare": "husky install"
|
|
9
|
+
},
|
|
10
|
+
"keywords": [],
|
|
11
|
+
"author": "",
|
|
12
|
+
"license": "ISC",
|
|
13
|
+
"devDependencies": {
|
|
14
|
+
"@babel/cli": "^7.17.10",
|
|
15
|
+
"@babel/core": "^7.26.0",
|
|
16
|
+
"@babel/plugin-proposal-class-properties": "^7.16.7",
|
|
17
|
+
"@babel/plugin-proposal-export-default-from": "^7.16.7",
|
|
18
|
+
"@babel/plugin-transform-runtime": "^7.17.10",
|
|
19
|
+
"@babel/preset-env": "^7.26.0",
|
|
20
|
+
"@babel/preset-react": "^7.16.7",
|
|
21
|
+
"@babel/preset-typescript": "^7.16.7",
|
|
22
|
+
"@commitlint/cli": "^17.6.7",
|
|
23
|
+
"@commitlint/config-conventional": "^16.2.4",
|
|
24
|
+
"@types/d3": "^7.0.0",
|
|
25
|
+
"@types/react": "^18.0.12",
|
|
26
|
+
"@types/react-dom": "^18.0.5",
|
|
27
|
+
"babel-plugin-transform-import-styles": "^0.0.11",
|
|
28
|
+
"babel-preset-env": "^1.7.0",
|
|
29
|
+
"cz-conventional-changelog": "^3.3.0",
|
|
30
|
+
"husky": "^7.0.4",
|
|
31
|
+
"load-styles": "^2.0.0",
|
|
32
|
+
"standard-version": "^9.3.2"
|
|
33
|
+
},
|
|
34
|
+
"dependencies": {
|
|
35
|
+
"@easyv/utils": "^0.0.50",
|
|
36
|
+
"d3v7": "npm:d3@^7.0.0",
|
|
37
|
+
"gitignore": "^0.7.0",
|
|
38
|
+
"mrm": "^4.0.0",
|
|
39
|
+
"popmotion": "^9.3.6",
|
|
40
|
+
"react": "^17.0.2",
|
|
41
|
+
"svg-path-properties": "^1.0.11",
|
|
42
|
+
"svg-points": "^6.0.1",
|
|
43
|
+
"yarn": "^1.22.19"
|
|
44
|
+
},
|
|
45
|
+
"config": {
|
|
46
|
+
"commitizen": {
|
|
47
|
+
"path": "./node_modules/cz-conventional-changelog"
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
"standard-version": {
|
|
51
|
+
"skip": {
|
|
52
|
+
"commit": true
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
55
|
}
|
|
@@ -1,61 +1,61 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 轴类图背景
|
|
3
|
-
*/
|
|
4
|
-
import React from 'react';
|
|
5
|
-
import { getSeriesInfo } from '../utils';
|
|
6
|
-
|
|
7
|
-
export default ({
|
|
8
|
-
axis: { ticks, scaler, step, direction },
|
|
9
|
-
bandLength,
|
|
10
|
-
config: {
|
|
11
|
-
background,
|
|
12
|
-
seriesIntervalWidth: paddingInner,
|
|
13
|
-
paddingInner: paddingOuter,
|
|
14
|
-
},
|
|
15
|
-
length,
|
|
16
|
-
}: {
|
|
17
|
-
axis: {
|
|
18
|
-
ticks: Array<string>;
|
|
19
|
-
scaler: Function;
|
|
20
|
-
step: number;
|
|
21
|
-
direction: string;
|
|
22
|
-
};
|
|
23
|
-
bandLength: number;
|
|
24
|
-
config: {
|
|
25
|
-
background: string;
|
|
26
|
-
seriesIntervalWidth: number;
|
|
27
|
-
paddingInner: number;
|
|
28
|
-
};
|
|
29
|
-
length: number;
|
|
30
|
-
}) => {
|
|
31
|
-
const isVertical: boolean = direction === 'vertical';
|
|
32
|
-
|
|
33
|
-
const { width: bandwidth } = getSeriesInfo({
|
|
34
|
-
step,
|
|
35
|
-
bandLength,
|
|
36
|
-
paddingInner,
|
|
37
|
-
paddingOuter,
|
|
38
|
-
});
|
|
39
|
-
|
|
40
|
-
const size = isVertical
|
|
41
|
-
? {
|
|
42
|
-
width: length,
|
|
43
|
-
height: bandwidth,
|
|
44
|
-
}
|
|
45
|
-
: {
|
|
46
|
-
width: bandwidth,
|
|
47
|
-
height: length,
|
|
48
|
-
};
|
|
49
|
-
return ticks.map((tick, index: number) => {
|
|
50
|
-
return (
|
|
51
|
-
<rect
|
|
52
|
-
key={index}
|
|
53
|
-
{...size}
|
|
54
|
-
x={isVertical ? 0 : scaler(tick) - bandwidth / 2}
|
|
55
|
-
y={isVertical ? scaler(tick) - bandwidth / 2 : 0}
|
|
56
|
-
fill={background}
|
|
57
|
-
stroke='none'
|
|
58
|
-
/>
|
|
59
|
-
);
|
|
60
|
-
});
|
|
61
|
-
};
|
|
1
|
+
/**
|
|
2
|
+
* 轴类图背景
|
|
3
|
+
*/
|
|
4
|
+
import React from 'react';
|
|
5
|
+
import { getSeriesInfo } from '../utils';
|
|
6
|
+
|
|
7
|
+
export default ({
|
|
8
|
+
axis: { ticks, scaler, step, direction },
|
|
9
|
+
bandLength,
|
|
10
|
+
config: {
|
|
11
|
+
background,
|
|
12
|
+
seriesIntervalWidth: paddingInner,
|
|
13
|
+
paddingInner: paddingOuter,
|
|
14
|
+
},
|
|
15
|
+
length,
|
|
16
|
+
}: {
|
|
17
|
+
axis: {
|
|
18
|
+
ticks: Array<string>;
|
|
19
|
+
scaler: Function;
|
|
20
|
+
step: number;
|
|
21
|
+
direction: string;
|
|
22
|
+
};
|
|
23
|
+
bandLength: number;
|
|
24
|
+
config: {
|
|
25
|
+
background: string;
|
|
26
|
+
seriesIntervalWidth: number;
|
|
27
|
+
paddingInner: number;
|
|
28
|
+
};
|
|
29
|
+
length: number;
|
|
30
|
+
}) => {
|
|
31
|
+
const isVertical: boolean = direction === 'vertical';
|
|
32
|
+
|
|
33
|
+
const { width: bandwidth } = getSeriesInfo({
|
|
34
|
+
step,
|
|
35
|
+
bandLength,
|
|
36
|
+
paddingInner,
|
|
37
|
+
paddingOuter,
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
const size = isVertical
|
|
41
|
+
? {
|
|
42
|
+
width: length,
|
|
43
|
+
height: bandwidth,
|
|
44
|
+
}
|
|
45
|
+
: {
|
|
46
|
+
width: bandwidth,
|
|
47
|
+
height: length,
|
|
48
|
+
};
|
|
49
|
+
return ticks.map((tick, index: number) => {
|
|
50
|
+
return (
|
|
51
|
+
<rect
|
|
52
|
+
key={index}
|
|
53
|
+
{...size}
|
|
54
|
+
x={isVertical ? 0 : scaler(tick) - bandwidth / 2}
|
|
55
|
+
y={isVertical ? scaler(tick) - bandwidth / 2 : 0}
|
|
56
|
+
fill={background}
|
|
57
|
+
stroke='none'
|
|
58
|
+
/>
|
|
59
|
+
);
|
|
60
|
+
});
|
|
61
|
+
};
|