@easyv/charts 1.3.12 → 1.3.14
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/Axis.js +1 -1
- package/lib/components/Band.js +3 -2
- package/lib/hooks/useAxes.js +46 -2
- package/package.json +1 -1
- package/src/components/Axis.tsx +2 -2
- package/src/components/Band.tsx +3 -2
- package/src/hooks/useAxes.js +36 -3
package/lib/components/Axis.js
CHANGED
|
@@ -218,7 +218,7 @@ var Label = function Label(_ref5) {
|
|
|
218
218
|
letterSpacing: letterSpacing,
|
|
219
219
|
dx: "0",
|
|
220
220
|
dy: "0",
|
|
221
|
-
transform: Array.isArray(_label) ? rotate !== 0 ? isVertical ? translateText + 'rotate(' + rotate + ')' : 'rotate(' + rotate + ', ' + x + ', ' + y + ')' : isVertical ? translateText : 'translate(' + translateX + ', ' + translateY + ')' : translateText + 'rotate(' + rotate + ')'
|
|
221
|
+
transform: Array.isArray(_label) ? rotate !== 0 ? isVertical ? translateText + ' rotate(' + rotate + ')' : 'rotate(' + rotate + ', ' + x + ', ' + y + ')' : isVertical ? translateText : 'translate(' + translateX + ', ' + translateY + ')' : translateText + ' rotate(' + rotate + ')'
|
|
222
222
|
}, !!Array.isArray(_label) ? _label.map(function (item, index) {
|
|
223
223
|
return /*#__PURE__*/_react["default"].createElement("tspan", {
|
|
224
224
|
key: index,
|
package/lib/components/Band.js
CHANGED
|
@@ -173,9 +173,10 @@ var _default = /*#__PURE__*/(0, _react.memo)(function (_ref3) {
|
|
|
173
173
|
background: "url(".concat(window.appConfig.ASSETS_URL + headUrl, ") 0 0/100% 100%"),
|
|
174
174
|
width: headWidth,
|
|
175
175
|
height: headHeight,
|
|
176
|
-
left: "50%",
|
|
176
|
+
left: isVertical ? "100%" : "50%",
|
|
177
|
+
top: isVertical ? "50%" : "0",
|
|
177
178
|
zIndex: 1,
|
|
178
|
-
transform: "translate(calc(-50% + ".concat(headTranslate.x, "px), ").concat(headTranslate.y, "px)")
|
|
179
|
+
transform: "translate(calc(-50% + ".concat(headTranslate.x, "px), calc(-50% + ").concat(headTranslate.y, "px))")
|
|
179
180
|
}
|
|
180
181
|
}), /*#__PURE__*/_react["default"].createElement("div", {
|
|
181
182
|
style: {
|
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/package.json
CHANGED
package/src/components/Axis.tsx
CHANGED
|
@@ -217,12 +217,12 @@ const Label: (
|
|
|
217
217
|
Array.isArray(_label)
|
|
218
218
|
? rotate !== 0
|
|
219
219
|
? isVertical
|
|
220
|
-
? translateText + 'rotate(' + rotate + ')'
|
|
220
|
+
? translateText + ' rotate(' + rotate + ')'
|
|
221
221
|
: 'rotate(' + rotate + ', ' + x + ', ' + y + ')'
|
|
222
222
|
: isVertical
|
|
223
223
|
? translateText
|
|
224
224
|
: 'translate(' + translateX + ', ' + translateY + ')'
|
|
225
|
-
: translateText + 'rotate(' + rotate + ')'
|
|
225
|
+
: translateText + ' rotate(' + rotate + ')'
|
|
226
226
|
}
|
|
227
227
|
>
|
|
228
228
|
{!!Array.isArray(_label)
|
package/src/components/Band.tsx
CHANGED
|
@@ -150,9 +150,10 @@ export default memo(
|
|
|
150
150
|
background:`url(${window.appConfig.ASSETS_URL+headUrl}) 0 0/100% 100%`,
|
|
151
151
|
width:headWidth,
|
|
152
152
|
height:headHeight,
|
|
153
|
-
left:"50%",
|
|
153
|
+
left:isVertical?"100%":"50%",
|
|
154
|
+
top:isVertical?"50%":"0",
|
|
154
155
|
zIndex:1,
|
|
155
|
-
transform:`translate(calc(-50% + ${headTranslate.x}px), ${headTranslate.y}px)`
|
|
156
|
+
transform:`translate(calc(-50% + ${headTranslate.x}px), calc(-50% + ${headTranslate.y}px))`
|
|
156
157
|
}}></div>}
|
|
157
158
|
<div
|
|
158
159
|
style={{
|
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);
|
|
@@ -95,7 +128,7 @@ export default ({ axes, context: { width, height } }) => {
|
|
|
95
128
|
break;
|
|
96
129
|
case 'step':
|
|
97
130
|
_ticks = getYTicksByStep(
|
|
98
|
-
|
|
131
|
+
newDomain[1],
|
|
99
132
|
_ticks[0],
|
|
100
133
|
+step
|
|
101
134
|
);
|