@easyv/charts 1.4.37 → 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.
@@ -35,7 +35,13 @@ var getCount = function getCount(num) {
35
35
  };
36
36
 
37
37
  var getNewDomain = function getNewDomain(domain, mode, step) {
38
- var newDomain = [];
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
- newDomain = [domain[0], domain[0]];
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
- while (newDomain[1] < domain[1]) {
54
- newDomain[1] += step;
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;
@@ -320,7 +335,7 @@ var _default = function _default(_ref) {
320
335
  var fixedDomain = extent && extent.min != "" && extent.max != ""; //判断配置项中是否强制了最大最小值,如果已经被强制了,就不计算newDomain
321
336
 
322
337
  if (type !== "ordinal" && !isNaN(domain[1]) && !auto && !fixedDomain) {
323
- newDomain = getNewDomain(domain, mode, _step);
338
+ newDomain = getNewDomain(domain, mode, _step, extent);
324
339
  }
325
340
 
326
341
  var scaler = scales[type]().domain(newDomain).range(range);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@easyv/charts",
3
- "version": "1.4.37",
3
+ "version": "1.4.38",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
@@ -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
- newDomain = [domain[0], domain[0]];
30
- while (newDomain[1] < domain[1]) {
31
- newDomain[1] += step;
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
  };
@@ -332,7 +342,7 @@ export default ({
332
342
  let newDomain = domain;
333
343
  const fixedDomain = extent && extent.min!="" && extent.max!=""; //判断配置项中是否强制了最大最小值,如果已经被强制了,就不计算newDomain
334
344
  if (type !== "ordinal" && !isNaN(domain[1]) && !auto && !fixedDomain) {
335
- newDomain = getNewDomain(domain, mode, _step);
345
+ newDomain = getNewDomain(domain, mode, _step, extent);
336
346
  }
337
347
  let scaler = scales[type]().domain(newDomain).range(range);
338
348