@easyv/charts 1.4.36 → 1.4.38
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/hooks/useAxes.js +26 -10
- package/package.json +1 -1
- package/src/hooks/useAxes.js +22 -12
package/lib/hooks/useAxes.js
CHANGED
|
@@ -35,7 +35,13 @@ var getCount = function getCount(num) {
|
|
|
35
35
|
};
|
|
36
36
|
|
|
37
37
|
var getNewDomain = function getNewDomain(domain, mode, step) {
|
|
38
|
-
var
|
|
38
|
+
var extent = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
|
|
39
|
+
var _extent$min = extent.min,
|
|
40
|
+
bottom = _extent$min === void 0 ? "" : _extent$min,
|
|
41
|
+
_extent$max = extent.max,
|
|
42
|
+
top = _extent$max === void 0 ? "" : _extent$max;
|
|
43
|
+
var newDomain = []; //能进入这个函数,说明extent中min和max至少有一个是缺失的,如果max存在,意味着纵轴上限被固定
|
|
44
|
+
|
|
39
45
|
var min = domain[0],
|
|
40
46
|
max = domain[1];
|
|
41
47
|
var minCount = Math.pow(10, getCount(min)),
|
|
@@ -43,17 +49,26 @@ var getNewDomain = function getNewDomain(domain, mode, step) {
|
|
|
43
49
|
|
|
44
50
|
switch (mode) {
|
|
45
51
|
case "count":
|
|
46
|
-
newDomain[0] = Math.floor(domain[0] / minCount) * minCount;
|
|
47
|
-
newDomain[1] = Math.ceil(domain[1] / maxCount) * maxCount;
|
|
52
|
+
newDomain[0] = bottom != "" ? bottom : Math.floor(domain[0] / minCount) * minCount;
|
|
53
|
+
newDomain[1] = top != "" ? top : Math.ceil(domain[1] / maxCount) * maxCount;
|
|
48
54
|
break;
|
|
49
55
|
|
|
50
56
|
case "step":
|
|
51
|
-
|
|
57
|
+
if (top != "") {
|
|
58
|
+
newDomain = [domain[1], domain[1]];
|
|
59
|
+
|
|
60
|
+
while (newDomain[0] > domain[0]) {
|
|
61
|
+
newDomain[0] -= step;
|
|
62
|
+
}
|
|
63
|
+
} else {
|
|
64
|
+
newDomain = [domain[0], domain[0]];
|
|
52
65
|
|
|
53
|
-
|
|
54
|
-
|
|
66
|
+
while (newDomain[1] < domain[1]) {
|
|
67
|
+
newDomain[1] += step;
|
|
68
|
+
}
|
|
55
69
|
}
|
|
56
70
|
|
|
71
|
+
break;
|
|
57
72
|
}
|
|
58
73
|
|
|
59
74
|
return newDomain;
|
|
@@ -102,6 +117,7 @@ var _default = function _default(_ref) {
|
|
|
102
117
|
var xAxisPositions = [];
|
|
103
118
|
axes.forEach(function (item) {
|
|
104
119
|
var _item$config$label = item.config.label,
|
|
120
|
+
extent = _item$config$label.extent,
|
|
105
121
|
_item$config$label$sh = _item$config$label.showLast,
|
|
106
122
|
showLast = _item$config$label$sh === void 0 ? false : _item$config$label$sh,
|
|
107
123
|
_item$config$label$de = _item$config$label.decimal,
|
|
@@ -316,15 +332,15 @@ var _default = function _default(_ref) {
|
|
|
316
332
|
|
|
317
333
|
var range = _direction === "horizontal" ? [_start, _end] : _direction === "vertical" ? [_end, _start] : [0, 0];
|
|
318
334
|
var newDomain = domain;
|
|
335
|
+
var fixedDomain = extent && extent.min != "" && extent.max != ""; //判断配置项中是否强制了最大最小值,如果已经被强制了,就不计算newDomain
|
|
319
336
|
|
|
320
|
-
if (type !== "ordinal" && !isNaN(domain[1]) && !auto) {
|
|
321
|
-
newDomain = getNewDomain(domain, mode, _step);
|
|
337
|
+
if (type !== "ordinal" && !isNaN(domain[1]) && !auto && !fixedDomain) {
|
|
338
|
+
newDomain = getNewDomain(domain, mode, _step, extent);
|
|
322
339
|
}
|
|
323
340
|
|
|
324
341
|
var scaler = scales[type]().domain(newDomain).range(range);
|
|
325
342
|
scaler.type = type;
|
|
326
|
-
if (type !== "ordinal") scaler.clamp(true);
|
|
327
|
-
|
|
343
|
+
if (type !== "ordinal") scaler.clamp(true);
|
|
328
344
|
var allTicks = ticks ? ticks : scaler.ticks ? scaler.ticks(tickCount) : scaler.domain();
|
|
329
345
|
var _ticks = allTicks;
|
|
330
346
|
|
package/package.json
CHANGED
package/src/hooks/useAxes.js
CHANGED
|
@@ -14,22 +14,32 @@ const getCount = (num) => {
|
|
|
14
14
|
return i;
|
|
15
15
|
};
|
|
16
16
|
|
|
17
|
-
const getNewDomain = (domain, mode, step) => {
|
|
17
|
+
const getNewDomain = (domain, mode, step, extent={}) => {
|
|
18
|
+
const { min:bottom="", max:top="" } = extent;
|
|
18
19
|
let newDomain = [];
|
|
20
|
+
//能进入这个函数,说明extent中min和max至少有一个是缺失的,如果max存在,意味着纵轴上限被固定
|
|
19
21
|
let min = domain[0],
|
|
20
22
|
max = domain[1];
|
|
21
23
|
let minCount = Math.pow(10, getCount(min)),
|
|
22
24
|
maxCount = Math.pow(10, getCount(max));
|
|
23
25
|
switch (mode) {
|
|
24
26
|
case "count":
|
|
25
|
-
newDomain[0] = Math.floor(domain[0] / minCount) * minCount;
|
|
26
|
-
newDomain[1] = Math.ceil(domain[1] / maxCount) * maxCount;
|
|
27
|
+
newDomain[0] = bottom!=""?bottom:Math.floor(domain[0] / minCount) * minCount;
|
|
28
|
+
newDomain[1] = top!=""?top:Math.ceil(domain[1] / maxCount) * maxCount;
|
|
27
29
|
break;
|
|
28
30
|
case "step":
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
newDomain[
|
|
31
|
+
if(top!=""){
|
|
32
|
+
newDomain = [domain[1], domain[1]];
|
|
33
|
+
while (newDomain[0] > domain[0]) {
|
|
34
|
+
newDomain[0] -= step;
|
|
35
|
+
}
|
|
36
|
+
}else{
|
|
37
|
+
newDomain = [domain[0], domain[0]];
|
|
38
|
+
while (newDomain[1] < domain[1]) {
|
|
39
|
+
newDomain[1] += step;
|
|
40
|
+
}
|
|
32
41
|
}
|
|
42
|
+
break;
|
|
33
43
|
}
|
|
34
44
|
return newDomain;
|
|
35
45
|
};
|
|
@@ -72,7 +82,7 @@ export default ({
|
|
|
72
82
|
axes.forEach((item) => {
|
|
73
83
|
const {
|
|
74
84
|
config: {
|
|
75
|
-
label: { showLast = false, decimal = 0 },
|
|
85
|
+
label: { extent, showLast = false, decimal = 0 },
|
|
76
86
|
},
|
|
77
87
|
type,
|
|
78
88
|
orientation,
|
|
@@ -96,7 +106,6 @@ export default ({
|
|
|
96
106
|
clipPosition
|
|
97
107
|
} = item;
|
|
98
108
|
//如果是断轴类型,输出一套完全不同的values
|
|
99
|
-
|
|
100
109
|
/**
|
|
101
110
|
* 获取轴的:朝向direction,起点位置start,终点位置end
|
|
102
111
|
* @param {*} orientation
|
|
@@ -331,13 +340,15 @@ export default ({
|
|
|
331
340
|
? [end, start]
|
|
332
341
|
: [0, 0];
|
|
333
342
|
let newDomain = domain;
|
|
334
|
-
|
|
335
|
-
|
|
343
|
+
const fixedDomain = extent && extent.min!="" && extent.max!=""; //判断配置项中是否强制了最大最小值,如果已经被强制了,就不计算newDomain
|
|
344
|
+
if (type !== "ordinal" && !isNaN(domain[1]) && !auto && !fixedDomain) {
|
|
345
|
+
newDomain = getNewDomain(domain, mode, _step, extent);
|
|
336
346
|
}
|
|
337
347
|
let scaler = scales[type]().domain(newDomain).range(range);
|
|
338
348
|
|
|
339
349
|
scaler.type = type;
|
|
340
|
-
if (type !== "ordinal") scaler.clamp(true);
|
|
350
|
+
if (type !== "ordinal") scaler.clamp(true);
|
|
351
|
+
|
|
341
352
|
const allTicks = ticks
|
|
342
353
|
? ticks
|
|
343
354
|
: scaler.ticks
|
|
@@ -417,7 +428,6 @@ export default ({
|
|
|
417
428
|
});
|
|
418
429
|
}
|
|
419
430
|
});
|
|
420
|
-
|
|
421
431
|
tmp.get("x") && (tmp.get("x").positions = xAxisPositions);
|
|
422
432
|
return tmp;
|
|
423
433
|
}, [axes]);
|