1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
import {offsetThickness, verticalAxisThickness, horizontalAxisThickness} from '../../modules/axis';
function setVal(axis) {
let val = Object.assign({},axis);
if (val.orient && val.orient === 'x') {
val.target = val.orient;
val.orient = 'bottom';
} else if (val.orient && val.orient === 'y') {
val.target = val.orient;
val.orient = 'left';
}
let isHorizontal = val.target === 'x';
if (!('showDomain' in val)) val.showDomain = true;
if (!('showTicks' in val)) val.showTicks = true;
if (!('compressTicks' in val)) val.compressTicks = false;
if (!('showTitle' in val)) val.showTitle = true;
if (!('orient' in val)) val.orient = (isHorizontal ? 'bottom' : 'left');
if (!('thickness' in val)) {
val.thickness = (isHorizontal ? horizontalAxisThickness : verticalAxisThickness);
val.thickness += val.tickPadding ? val.tickPadding : 0;
val.thickness += val.showTitle ? offsetThickness * 2: 0;
val.thickness += val.showTicks ? offsetThickness : 0;
val.defaultThickness = val.thickness;
}
if (!('autoTickFormat' in val) && !('format' in val)) val.autoTickFormat = false;
return val;
}
function axis (axis, adding = true) {
let val;
if (!arguments.length) return this.__attrs__.axis;
if (Array.isArray(axis)) {
this.__attrs__.axis = axis.map(setVal);
axis.forEach(d=> this.__execs__.axis[d.target] = {});
return this;
} else if (typeof axis === 'string') {
val = {target: axis};
val = setVal(val);
} else if (typeof axis === 'object') {
val = Object.assign({},axis);
val = setVal(val);
}
let findIndex = this.__attrs__.axis.findIndex(d => d.target === val.target && d.orient === val.orient);
if (adding) {
if (findIndex >= 0) {
this.__attrs__.axis.splice(findIndex, 1, val);
} else {
this.__attrs__.axis.push(val);
}
if (!this.__execs__.axis[val.target]) this.__execs__.axis[val.target] = {};
} else {
if (findIndex >= 0) {
this.__attrs__.axis.splice(findIndex, 1);
}
}
return this;
}
export default axis;