forked from quasarframework/quasar
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathQProgress.js
More file actions
82 lines (78 loc) · 1.62 KB
/
QProgress.js
File metadata and controls
82 lines (78 loc) · 1.62 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
import { between } from '../../utils/format'
function width (val) {
return { width: `${val}%` }
}
export default {
name: 'QProgress',
props: {
percentage: {
type: Number,
default: 0
},
color: {
type: String,
default: 'primary'
},
stripe: Boolean,
animate: Boolean,
indeterminate: Boolean,
buffer: Number,
height: {
type: String,
default: '4px'
}
},
computed: {
model () {
return between(this.percentage, 0, 100)
},
bufferModel () {
return between(this.buffer || 0, 0, 100 - this.model)
},
bufferStyle () {
return width(this.bufferModel)
},
trackStyle () {
return width(this.buffer ? 100 - this.buffer : 100)
},
computedClass () {
return `text-${this.color}`
},
computedStyle () {
return { height: this.height }
},
modelClass () {
return {
animate: this.animate,
stripe: this.stripe,
indeterminate: this.indeterminate
}
},
modelStyle () {
return width(this.model)
}
},
render (h) {
return h('div', {
staticClass: 'q-progress',
style: this.computedStyle,
'class': this.computedClass
}, [
this.buffer && !this.indeterminate
? h('div', {
staticClass: 'q-progress-buffer',
style: this.bufferStyle
})
: null,
h('div', {
staticClass: 'q-progress-track',
style: this.trackStyle
}),
h('div', {
staticClass: 'q-progress-model',
style: this.modelStyle,
'class': this.modelClass
})
])
}
}