index.wxs
2.3 KB
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
/* eslint-disable */
var utils = require('../wxs/utils.wxs');
function tabClass(active, ellipsis) {
var classes = ['tab-class'];
if (active) {
classes.push('tab-active-class');
}
if (ellipsis) {
classes.push('van-ellipsis');
}
return classes.join(' ');
}
function tabStyle(
active,
ellipsis,
color,
type,
disabled,
activeColor,
inactiveColor,
swipeThreshold,
scrollable
) {
var styles = [];
var isCard = type === 'card';
// card theme color
if (color && isCard) {
styles.push('border-color:' + color);
if (!disabled) {
if (active) {
styles.push('background-color:' + color);
} else {
styles.push('color:' + color);
}
}
}
var titleColor = active ? activeColor : inactiveColor;
if (titleColor) {
styles.push('color:' + titleColor);
}
if (scrollable && ellipsis) {
styles.push('flex-basis:' + 88 / swipeThreshold + '%');
}
return styles.join(';');
}
function tabCardTypeBorderStyle(color, type) {
var isCard = type === 'card';
var styles = [];
if (isCard && color) {
styles.push('border-color:' + color);
}
return styles.join(';');
}
function trackStyle(data) {
if (!data.animated) {
return '';
}
return [
['left', -100 * data.currentIndex + '%'],
['-webkit-transition-duration', data.duration + 's'],
['transition-duration: ', data.duration + 's'],
]
.map(function (item) {
return item.join(':');
})
.join(';');
}
function lineStyle(data) {
var styles = [
['width', utils.addUnit(data.lineWidth)],
['transform', 'translateX(' + data.lineOffsetLeft + 'px)'],
['-webkit-transform', 'translateX(' + data.lineOffsetLeft + 'px)'],
];
if (data.color) {
styles.push(['background-color', data.color]);
}
if (data.lineHeight !== -1) {
styles.push(['height', utils.addUnit(data.lineHeight)]);
styles.push(['border-radius', utils.addUnit(data.lineHeight)]);
}
if (!data.skipTransition) {
styles.push(['transition-duration', data.duration + 's']);
styles.push(['-webkit-transition-duration', data.duration + 's']);
}
return styles
.map(function (item) {
return item.join(':');
})
.join(';');
}
module.exports = {
tabClass: tabClass,
tabStyle: tabStyle,
trackStyle: trackStyle,
lineStyle: lineStyle,
tabCardTypeBorderStyle: tabCardTypeBorderStyle,
};