1
1
<template >
2
2
<li class =" rule-select-category__root" >
3
3
<label class =" rule-select-category__header" >
4
- <input
5
- type =" checkbox"
6
- v-model =" shown"
7
- style =" display :none "
8
- >
4
+ <input type =" checkbox" v-model =" shown" style =" display :none " >
9
5
<md-icon :kind =" shown ? 'expand_more' : 'chevron_right'" />
10
6
{{ category.name }}
11
7
<span class =" rule-select-category__count" >
12
8
({{ countChecked }} / {{ countAll }})
13
9
</span >
14
10
</label >
15
- <ul
16
- class =" rule-select-category__rules"
17
- v-if =" shown"
18
- >
11
+ <ul v-if =" shown" class =" rule-select-category__rules" >
19
12
<li >
20
13
<label class =" rule-select-category__rule" >
21
- <input
22
- type =" checkbox"
23
- v-model =" allRules"
24
- :true-value =" 2"
25
- :false-value =" 0"
26
- @change =" emitChangeEvent"
27
- >
28
- (all rules)
14
+ <div class =" rule-select-category__rule-checkbox" >
15
+ <input
16
+ type =" checkbox"
17
+ v-model =" allRules"
18
+ :true-value =" 2"
19
+ :false-value =" 0"
20
+ @change =" emitChangeEvent"
21
+ >
22
+ </div >
23
+ <div class =" rule-select-category__rule-name" >
24
+ (all rules)
25
+ </div >
29
26
</label >
30
27
</li >
31
- <li
32
- v-for =" rule of category.rules"
28
+ <li v-for =" rule of category.rules"
33
29
:key =" rule.name"
34
30
:title =" rule.description"
35
31
>
36
32
<label class =" rule-select-category__rule" >
37
- <input
38
- type =" checkbox"
39
- v-model =" config.rules[rule.name]"
40
- :true-value =" 2"
41
- :false-value =" 0"
42
- @change =" emitChangeEvent"
43
- >
44
- {{ stripPrefix(rule.name) }}
33
+ <div class =" rule-select-category__rule-checkbox" >
34
+ <input
35
+ type =" checkbox"
36
+ v-model =" config.rules[rule.name]"
37
+ :true-value =" 2"
38
+ :false-value =" 0"
39
+ @change =" emitChangeEvent"
40
+ >
41
+ </div >
42
+ <div class =" rule-select-category__rule-name" >
43
+ {{ stripPrefix(rule.name) }}
44
+ </div >
45
+ <a class =" rule-select-category__rule-link" :href =" url(rule.name)" target =" _blank" >
46
+ <md-icon kind =" launch" title =" Open document" />
47
+ </a >
45
48
</label >
46
49
</li >
47
50
</ul >
50
53
51
54
<script >
52
55
import MdIcon from " ./md-icon.vue"
56
+ import { getRuleUrl } from " ./eslint.js"
53
57
54
58
export default {
55
59
name: " RuleSelectCategory" ,
@@ -105,6 +109,8 @@ export default {
105
109
emitChangeEvent () {
106
110
this .$emit (" change" )
107
111
},
112
+
113
+ url: getRuleUrl,
108
114
},
109
115
}
110
116
</script >
@@ -136,7 +142,8 @@ export default {
136
142
}
137
143
138
144
.rule-select-category__rule {
139
- display : block ;
145
+ display : flex ;
146
+ align-items : center ;
140
147
padding : 4px ;
141
148
padding-left : 16px ;
142
149
border-bottom : 1px solid #E8F5E9 ;
@@ -145,8 +152,17 @@ li:last-child > .rule-select-category__rule {
145
152
border-bottom : 1px solid #4CAF50 ;
146
153
}
147
154
148
- .rule-select-category__rule > input [type = checkbox ] {
149
- vertical-align : middle ;
155
+ .rule-select-category__rule-checkbox {
156
+ flex-shrink : 0 ;
157
+ padding-top : 4px ; /* align to the rule name */
158
+ padding-right : 4px ;
159
+ }
160
+ .rule-select-category__rule-name {
161
+ flex-grow : 1 ;
162
+ }
163
+ .rule-select-category__rule-link {
164
+ display : block ;
165
+ flex-shrink : 0 ;
150
166
}
151
167
152
168
.rule-select-category__header :hover ,
0 commit comments