File tree 5 files changed +68
-3
lines changed
docs/app/pages/Components/Input
5 files changed +68
-3
lines changed Original file line number Diff line number Diff line change 1
1
<example src="./examples/TextFields.vue " />
2
2
<example src="./examples/ErrorsMessages.vue " />
3
+ <example src="./examples/Counters.vue " />
3
4
4
5
<template >
5
6
<page-container centered :title =" $t('pages.input.title')" >
18
19
19
20
<code-example title =" Validation" :component =" examples['errors-messages']" />
20
21
</div >
22
+
23
+ <div class =" page-container-section" >
24
+ <h2 >Character count</h2 >
25
+
26
+ <code-example title =" Counter" :component =" examples['counters']" />
27
+ </div >
21
28
</page-container >
22
29
</template >
23
30
Original file line number Diff line number Diff line change
1
+ <template >
2
+ <div >
3
+ <md-field >
4
+ <label >Required Field</label >
5
+ <md-input required maxlength =" 30" />
6
+ </md-field >
7
+
8
+ <md-field >
9
+ <label >Autogrow</label >
10
+ <md-textarea md-autogrow required maxlength =" 200" />
11
+ </md-field >
12
+
13
+ <md-field >
14
+ <label >Textarea</label >
15
+ <md-textarea required maxlength =" 80" />
16
+ </md-field >
17
+ </div >
18
+ </template >
19
+
20
+ <script >
21
+ export default {
22
+ name: ' Counters'
23
+ }
24
+ </script >
Original file line number Diff line number Diff line change 1
1
<template >
2
2
<div class =" md-field" :class =" [$mdActiveTheme, fieldClasses]" >
3
3
<slot />
4
+
5
+ <span class =" md-count" v-if =" hasCounter" >{{ valueLength }} / {{ state.maxlength }}</span >
4
6
</div >
5
7
</template >
6
8
13
15
state: {}
14
16
},
15
17
props: {
16
- mdInline: Boolean
18
+ mdInline: Boolean ,
19
+ mdCounter: {
20
+ type: Boolean ,
21
+ default: true
22
+ }
17
23
},
18
24
data : () => ({
19
25
state: {
23
29
required: false ,
24
30
placeholder: false ,
25
31
textarea: false ,
26
- autogrow: false
32
+ autogrow: false ,
33
+ maxlength: null
27
34
}
28
35
}),
29
36
computed: {
37
+ hasCounter () {
38
+ return this .mdCounter && this .state .maxlength
39
+ },
40
+ hasValue () {
41
+ return this .state .value && this .state .value .length > 0
42
+ },
43
+ valueLength () {
44
+ if (this .state .value ) {
45
+ return this .state .value .length
46
+ }
47
+
48
+ return 0
49
+ },
30
50
fieldClasses () {
31
51
return {
32
52
' md-inline' : this .mdInline ,
68
88
& :after {
69
89
height : 1px ;
70
90
position : absolute ;
71
- top : 47 px ;
91
+ bottom : 0 ;
72
92
right : 0 ;
73
93
left : 0 ;
74
94
z-index : 1 ;
233
253
padding : 0 16px ;
234
254
}
235
255
256
+ .md-count {
257
+ right : 6px ;
258
+ bottom : 2px ;
259
+ }
260
+
236
261
& :hover ,
237
262
& .md-focused {
238
263
& :before {
Original file line number Diff line number Diff line change @@ -32,6 +32,9 @@ export default {
32
32
} ,
33
33
required ( ) {
34
34
this . setRequired ( )
35
+ } ,
36
+ maxlength ( ) {
37
+ this . setMaxlength ( )
35
38
}
36
39
} ,
37
40
methods : {
@@ -47,6 +50,9 @@ export default {
47
50
setRequired ( ) {
48
51
this . state . required = Boolean ( this . required )
49
52
} ,
53
+ setMaxlength ( ) {
54
+ this . state . maxlength = parseInt ( this . maxlength , 10 )
55
+ } ,
50
56
onFocus ( ) {
51
57
this . state . focused = true
52
58
} ,
@@ -62,5 +68,6 @@ export default {
62
68
this . setPlaceholder ( )
63
69
this . setDisabled ( )
64
70
this . setRequired ( )
71
+ this . setMaxlength ( )
65
72
}
66
73
}
Original file line number Diff line number Diff line change 7
7
8
8
9
9
.md-helper-text ,
10
+ .md-count ,
10
11
label {
11
12
color : rgba (#000 , .54 );
12
13
}
49
50
}
50
51
51
52
.md-helper-text ,
53
+ .md-count ,
52
54
label {
53
55
color : rgba (#fff , .7 );
54
56
}
You can’t perform that action at this time.
0 commit comments