@easyv/charts 1.3.13 → 1.3.15
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/lib/components/Legend.js +3 -1
- package/lib/hooks/useAxes.js +46 -2
- package/lib/utils/index.js +6 -1
- package/package.json +1 -1
- package/src/components/Legend.js +1 -3
- package/src/hooks/useAxes.js +36 -4
- package/src/utils/index.js +3 -1
package/lib/components/Legend.js
CHANGED
|
@@ -93,13 +93,15 @@ var _default = /*#__PURE__*/(0, _react.memo)(function (_ref) {
|
|
|
93
93
|
gridTemplateColumns: 'repeat(' + Math.min(gridTemplateColumns, length) + ', 1fr)'
|
|
94
94
|
}
|
|
95
95
|
}, _series.map(function (series, index) {
|
|
96
|
+
var _series$config, _series$config$line;
|
|
97
|
+
|
|
96
98
|
var type = series.type,
|
|
97
99
|
name = series.name,
|
|
98
100
|
displayName = series.displayName,
|
|
99
101
|
icon = series.icon,
|
|
100
102
|
selected = series.selected;
|
|
101
103
|
|
|
102
|
-
var _icon = (0, _utils.getIcon)(type, icon);
|
|
104
|
+
var _icon = (0, _utils.getIcon)(type, icon, series === null || series === void 0 ? void 0 : (_series$config = series.config) === null || _series$config === void 0 ? void 0 : (_series$config$line = _series$config.line) === null || _series$config$line === void 0 ? void 0 : _series$config$line.type);
|
|
103
105
|
|
|
104
106
|
return /*#__PURE__*/_react["default"].createElement("li", {
|
|
105
107
|
key: index,
|
package/lib/hooks/useAxes.js
CHANGED
|
@@ -21,6 +21,44 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
|
|
|
21
21
|
|
|
22
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
23
|
|
|
24
|
+
var getCount = function getCount(num) {
|
|
25
|
+
var i = 0,
|
|
26
|
+
num_ = Math.abs(num);
|
|
27
|
+
if (num_ < 1) return i;
|
|
28
|
+
|
|
29
|
+
while (num_ > 10) {
|
|
30
|
+
i++;
|
|
31
|
+
num_ = Math.floor(num_ / 10);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
return i;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
var getNewDomain = function getNewDomain(domain, mode, step) {
|
|
38
|
+
var newDomain = [];
|
|
39
|
+
var min = domain[0],
|
|
40
|
+
max = domain[1];
|
|
41
|
+
var minCount = Math.pow(10, getCount(min)),
|
|
42
|
+
maxCount = Math.pow(10, getCount(max));
|
|
43
|
+
|
|
44
|
+
switch (mode) {
|
|
45
|
+
case 'count':
|
|
46
|
+
newDomain[0] = Math.floor(domain[0] / minCount) * minCount;
|
|
47
|
+
newDomain[1] = Math.ceil(domain[1] / maxCount) * maxCount;
|
|
48
|
+
break;
|
|
49
|
+
|
|
50
|
+
case 'step':
|
|
51
|
+
newDomain = [domain[0], domain[0]];
|
|
52
|
+
|
|
53
|
+
while (newDomain[1] < domain[1]) {
|
|
54
|
+
newDomain[1] += step;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
return newDomain;
|
|
60
|
+
};
|
|
61
|
+
|
|
24
62
|
var scales = {
|
|
25
63
|
linear: _d3Scale.scaleLinear,
|
|
26
64
|
log: _d3Scale.scaleLog,
|
|
@@ -70,7 +108,13 @@ var _default = function _default(_ref) {
|
|
|
70
108
|
var start = _paddingOuter / 2;
|
|
71
109
|
var end = length - start;
|
|
72
110
|
var range = direction === 'horizontal' ? [start, end] : direction === 'vertical' ? [end, start] : [0, 0];
|
|
73
|
-
var
|
|
111
|
+
var newDomain = domain;
|
|
112
|
+
|
|
113
|
+
if (type !== 'ordinal' && !isNaN(domain[1])) {
|
|
114
|
+
newDomain = getNewDomain(domain, mode, step);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
var scaler = scales[type]().domain(newDomain).range(range);
|
|
74
118
|
scaler.type = type;
|
|
75
119
|
if (type !== 'ordinal') scaler.nice().clamp(true);
|
|
76
120
|
var allTicks = ticks ? ticks : scaler.ticks ? scaler.ticks(tickCount) : scaler.domain();
|
|
@@ -88,7 +132,7 @@ var _default = function _default(_ref) {
|
|
|
88
132
|
break;
|
|
89
133
|
|
|
90
134
|
case 'step':
|
|
91
|
-
_ticks = (0, _utils2.getYTicksByStep)(
|
|
135
|
+
_ticks = (0, _utils2.getYTicksByStep)(newDomain[1], _ticks[0], +step);
|
|
92
136
|
break;
|
|
93
137
|
}
|
|
94
138
|
}
|
package/lib/utils/index.js
CHANGED
|
@@ -124,10 +124,15 @@ var getColorList = function getColorList(_ref3) {
|
|
|
124
124
|
exports.getColorList = getColorList;
|
|
125
125
|
|
|
126
126
|
var getIcon = function getIcon(type, icon) {
|
|
127
|
+
var lineType = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "solid";
|
|
128
|
+
|
|
127
129
|
switch (type) {
|
|
128
130
|
case 'area':
|
|
129
131
|
case 'line':
|
|
130
|
-
|
|
132
|
+
var color = icon.background;
|
|
133
|
+
return icon ? _objectSpread(_objectSpread(_objectSpread({}, defaultLineIcon), icon), {}, {
|
|
134
|
+
background: lineType == "solid" ? color : "linear-gradient(90deg, ".concat(color, ", ").concat(color, " 66%, transparent 66%) 0 0/33% 100% repeat")
|
|
135
|
+
}) : defaultLineIcon;
|
|
131
136
|
|
|
132
137
|
default:
|
|
133
138
|
return icon ? _objectSpread(_objectSpread({}, defaultIcon), icon) : defaultIcon;
|
package/package.json
CHANGED
package/src/components/Legend.js
CHANGED
|
@@ -30,9 +30,7 @@ export default memo(
|
|
|
30
30
|
formatter,
|
|
31
31
|
}) => {
|
|
32
32
|
if (!show) return null;
|
|
33
|
-
|
|
34
33
|
const _series = sortPie(series, order);
|
|
35
|
-
|
|
36
34
|
const [_alignment, position] = alignment.split(' ');
|
|
37
35
|
const length = _series.length;
|
|
38
36
|
|
|
@@ -66,7 +64,7 @@ export default memo(
|
|
|
66
64
|
>
|
|
67
65
|
{_series.map((series, index) => {
|
|
68
66
|
const { type, name, displayName, icon, selected } = series;
|
|
69
|
-
const _icon = getIcon(type, icon);
|
|
67
|
+
const _icon = getIcon(type, icon, series?.config?.line?.type);
|
|
70
68
|
return (
|
|
71
69
|
<li
|
|
72
70
|
key={index}
|
package/src/hooks/useAxes.js
CHANGED
|
@@ -6,6 +6,36 @@ import {
|
|
|
6
6
|
getYTicks,
|
|
7
7
|
} from '@easyv/utils/lib/common/utils';
|
|
8
8
|
|
|
9
|
+
const getCount = (num)=>{
|
|
10
|
+
let i=0, num_ = Math.abs(num);
|
|
11
|
+
if(num_<1) return i;
|
|
12
|
+
while(num_>10){
|
|
13
|
+
i++;
|
|
14
|
+
num_=Math.floor(num_/10);
|
|
15
|
+
}
|
|
16
|
+
return i;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
const getNewDomain=(domain, mode, step)=>{
|
|
20
|
+
let newDomain=[];
|
|
21
|
+
let min = domain[0], max = domain[1];
|
|
22
|
+
let minCount = Math.pow(10,getCount(min)), maxCount = Math.pow(10,getCount(max));
|
|
23
|
+
|
|
24
|
+
switch(mode){
|
|
25
|
+
case 'count':
|
|
26
|
+
newDomain[0] = Math.floor(domain[0]/minCount)*minCount;
|
|
27
|
+
newDomain[1] = Math.ceil(domain[1]/maxCount)*maxCount;
|
|
28
|
+
break;
|
|
29
|
+
case 'step':
|
|
30
|
+
newDomain = [domain[0],domain[0]];
|
|
31
|
+
while(newDomain[1]<domain[1]){
|
|
32
|
+
newDomain[1]+=step
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
}
|
|
36
|
+
return newDomain;
|
|
37
|
+
}
|
|
38
|
+
|
|
9
39
|
const scales = {
|
|
10
40
|
linear: scaleLinear,
|
|
11
41
|
log: scaleLog,
|
|
@@ -66,8 +96,11 @@ export default ({ axes, context: { width, height } }) => {
|
|
|
66
96
|
: direction === 'vertical'
|
|
67
97
|
? [end, start]
|
|
68
98
|
: [0, 0];
|
|
69
|
-
|
|
70
|
-
|
|
99
|
+
let newDomain = domain;
|
|
100
|
+
if(type !== 'ordinal' && !isNaN(domain[1])){
|
|
101
|
+
newDomain = getNewDomain(domain, mode, step);
|
|
102
|
+
}
|
|
103
|
+
const scaler = scales[type]().domain(newDomain).range(range);
|
|
71
104
|
scaler.type = type;
|
|
72
105
|
|
|
73
106
|
if (type !== 'ordinal') scaler.nice().clamp(true);
|
|
@@ -79,7 +112,6 @@ export default ({ axes, context: { width, height } }) => {
|
|
|
79
112
|
: scaler.domain();
|
|
80
113
|
|
|
81
114
|
let _ticks = allTicks;
|
|
82
|
-
|
|
83
115
|
if (type === 'ordinal') {
|
|
84
116
|
if (carousel === false) {
|
|
85
117
|
_ticks = getTicksOfAxis(_ticks, +tickCount, showLast);
|
|
@@ -96,7 +128,7 @@ export default ({ axes, context: { width, height } }) => {
|
|
|
96
128
|
break;
|
|
97
129
|
case 'step':
|
|
98
130
|
_ticks = getYTicksByStep(
|
|
99
|
-
|
|
131
|
+
newDomain[1],
|
|
100
132
|
_ticks[0],
|
|
101
133
|
+step
|
|
102
134
|
);
|
package/src/utils/index.js
CHANGED
|
@@ -80,14 +80,16 @@ const getColorList = ({ type, pure, linear: { stops, angle, opacity } }) => {
|
|
|
80
80
|
}
|
|
81
81
|
return stops.map(({ color, offset }) => ({ color, offset: offset / 100 }));
|
|
82
82
|
};
|
|
83
|
-
const getIcon = (type, icon) => {
|
|
83
|
+
const getIcon = (type, icon, lineType="solid") => {
|
|
84
84
|
switch (type) {
|
|
85
85
|
case 'area':
|
|
86
86
|
case 'line':
|
|
87
|
+
let color = icon.background;
|
|
87
88
|
return icon
|
|
88
89
|
? {
|
|
89
90
|
...defaultLineIcon,
|
|
90
91
|
...icon,
|
|
92
|
+
background:lineType=="solid"?color:`linear-gradient(90deg, ${color}, ${color} 66%, transparent 66%) 0 0/33% 100% repeat`
|
|
91
93
|
}
|
|
92
94
|
: defaultLineIcon;
|
|
93
95
|
default:
|