system-clients 3.3.5 → 4.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (203) hide show
  1. package/.eslintrc.js +16 -16
  2. package/SystemClient.iml +8 -8
  3. package/build/webpack.base.conf.js +85 -85
  4. package/build.gradle +6 -6
  5. package/examples/LoginPage/App.vue +21 -21
  6. package/examples/LoginPage/index.html +11 -11
  7. package/examples/LoginPage/main.js +15 -15
  8. package/index.html +21 -21
  9. package/package.json +1 -1
  10. package/src/App.vue +24 -24
  11. package/src/LodopFuncs.js +155 -155
  12. package/src/components/Main.vue +935 -935
  13. package/src/components/TabButton.vue +201 -201
  14. package/src/components/Tabs.vue +67 -67
  15. package/src/components/Util.js +343 -343
  16. package/src/components/addressManage/AddressCascadingMenu.vue +145 -145
  17. package/src/components/common/ProgressBase.vue +83 -83
  18. package/src/components/equipment/EquipmentManage.vue +83 -83
  19. package/src/components/equipment/PcAdd.vue +115 -115
  20. package/src/components/equipment/PcList.vue +119 -119
  21. package/src/components/equipment/PcManage.vue +61 -61
  22. package/src/components/equipment/PhoneAdd.vue +118 -118
  23. package/src/components/equipment/PhoneList.vue +113 -113
  24. package/src/components/equipment/PhoneManage.vue +61 -61
  25. package/src/components/equipment/PosAdd.vue +319 -319
  26. package/src/components/equipment/PosList.vue +292 -292
  27. package/src/components/equipment/PosManage.vue +138 -138
  28. package/src/components/equipment/PosManageBoth.vue +125 -125
  29. package/src/components/equipment/PosParamAdd.vue +236 -236
  30. package/src/components/equipment/PosParamList.vue +121 -121
  31. package/src/components/equipment/PosParamManage.vue +51 -51
  32. package/src/components/materialManage/materialData.vue +44 -44
  33. package/src/components/materialManage/materialList.vue +255 -255
  34. package/src/components/parammanage/ParamManage.vue +42 -42
  35. package/src/components/parammanage/ParamPage.vue +337 -337
  36. package/src/components/parammanage/ParamPages.vue +222 -222
  37. package/src/components/parammanage/SinglePage.vue +235 -235
  38. package/src/components/parammanage/SinglePages.vue +167 -167
  39. package/src/components/server/AddChangeMsg.vue +66 -66
  40. package/src/components/server/ChangeDeclare.vue +45 -45
  41. package/src/components/server/ImageVieweTest.vue +56 -56
  42. package/src/components/server/ImageViewer.vue +350 -350
  43. package/src/components/server/LeftTree.vue +111 -111
  44. package/src/components/server/LoadData.vue +55 -55
  45. package/src/components/server/LoginPage.vue +235 -235
  46. package/src/components/server/LoginView.vue +128 -128
  47. package/src/components/server/Menu.vue +188 -188
  48. package/src/components/server/ModifyPw.vue +126 -126
  49. package/src/components/server/PcdBuildingSelect.vue +243 -243
  50. package/src/components/server/ResSelect.vue +172 -169
  51. package/src/components/server/ResSelectGroup.vue +211 -211
  52. package/src/components/server/RightTree.vue +348 -348
  53. package/src/components/server/RoleSelector.vue +90 -90
  54. package/src/components/server/TestResSelect.vue +58 -58
  55. package/src/components/server/TestResSelectGroup.vue +388 -388
  56. package/src/filiale/baole/Login.vue +570 -570
  57. package/src/filiale/baole/system.js +5 -5
  58. package/src/filiale/bayan/PosAdd.vue +368 -323
  59. package/src/filiale/bayan/PosList.vue +341 -297
  60. package/src/filiale/bayan/PosManage.vue +138 -138
  61. package/src/filiale/bayan/system.js +6 -6
  62. package/src/filiale/chengtou/Login.vue +539 -539
  63. package/src/filiale/chengtou/system.js +5 -5
  64. package/src/filiale/dongguan/Login.vue +902 -902
  65. package/src/filiale/dongguan/Main.vue +717 -717
  66. package/src/filiale/dongguan/system.js +6 -6
  67. package/src/filiale/furuike/Login.vue +587 -587
  68. package/src/filiale/furuike/Main.vue +840 -840
  69. package/src/filiale/furuike/system.js +7 -7
  70. package/src/filiale/gehua/Main.vue +809 -809
  71. package/src/filiale/gehua/system.js +6 -6
  72. package/src/filiale/konggang/Login.vue +472 -472
  73. package/src/filiale/konggang/system.js +7 -7
  74. package/src/filiale/qianneng/Login.vue +584 -584
  75. package/src/filiale/qianneng/Main.vue +818 -818
  76. package/src/filiale/qianneng/ModifyPw.vue +108 -108
  77. package/src/filiale/qianneng/system.js +11 -11
  78. package/src/filiale/rizhao/LeftTree.vue +111 -111
  79. package/src/filiale/rizhao/Login.vue +793 -793
  80. package/src/filiale/rizhao/Main.vue +611 -611
  81. package/src/filiale/rizhao/system.js +14 -14
  82. package/src/filiale/ruihua/Login.vue +576 -576
  83. package/src/filiale/ruihua/system.js +5 -5
  84. package/src/filiale/shiquan/Login.vue +566 -566
  85. package/src/filiale/shiquan/system.js +8 -8
  86. package/src/filiale/tianyi/Login.vue +573 -573
  87. package/src/filiale/tianyi/system.js +5 -5
  88. package/src/filiale/tongchuan/Login.vue +563 -563
  89. package/src/filiale/tongchuan/Main.vue +1021 -1021
  90. package/src/filiale/tongchuan/system.js +7 -7
  91. package/src/filiale/weinan/Main.vue +924 -924
  92. package/src/filiale/weinan/system.js +7 -7
  93. package/src/filiale/wenxi/Login.vue +537 -537
  94. package/src/filiale/wenxi/Main.vue +787 -787
  95. package/src/filiale/wenxi/system.js +10 -10
  96. package/src/filiale/wuhai/LeftTree.vue +141 -141
  97. package/src/filiale/wuhai/Main.vue +810 -810
  98. package/src/filiale/wuhai/system.js +10 -10
  99. package/src/filiale/yuchuan/Login.vue +891 -891
  100. package/src/filiale/yuchuan/Main.vue +866 -866
  101. package/src/filiale/yuchuan/system.js +10 -10
  102. package/src/filiale/zhoukou/Main.vue +809 -809
  103. package/src/filiale/zhoukou/system.js +6 -6
  104. package/src/plugins/EncryptUtil.js +53 -53
  105. package/src/plugins/HeatGetLoginInfoService.js +491 -491
  106. package/src/plugins/validation.js +15 -15
  107. package/src/project/State.js +17 -17
  108. package/src/stores/AppData.js +38 -38
  109. package/src/stores/HeatAppData.js +38 -38
  110. package/src/styles/fonts/glyphicons-halflings-regular.svg +288 -288
  111. package/src/styles/less/.csscomb.json +304 -304
  112. package/src/styles/less/.csslintrc +19 -19
  113. package/src/styles/less/alerts.less +73 -73
  114. package/src/styles/less/aofeng/animate.min.css +10 -10
  115. package/src/styles/less/aofeng/expandcss.less +569 -569
  116. package/src/styles/less/aofeng/login.less +367 -367
  117. package/src/styles/less/aofeng/standard.less +2507 -2507
  118. package/src/styles/less/aofeng/themeOne/BinaryTemplate.less +690 -690
  119. package/src/styles/less/aofeng/themeOne/loginStyle.less +1586 -1586
  120. package/src/styles/less/aofeng/themeOne/systemStyle.less +2650 -2650
  121. package/src/styles/less/aofeng/themeOne.less +17 -17
  122. package/src/styles/less/aofeng/themeTwo/newStyle1.less +415 -415
  123. package/src/styles/less/aofeng/themeTwo.less +3 -3
  124. package/src/styles/less/badges.less +66 -66
  125. package/src/styles/less/bootstrap.less +66 -66
  126. package/src/styles/less/breadcrumbs.less +26 -26
  127. package/src/styles/less/button-groups.less +247 -247
  128. package/src/styles/less/buttons.less +172 -172
  129. package/src/styles/less/carousel.less +269 -269
  130. package/src/styles/less/close.less +34 -34
  131. package/src/styles/less/code.less +69 -69
  132. package/src/styles/less/component-animations.less +33 -33
  133. package/src/styles/less/dropdowns.less +216 -216
  134. package/src/styles/less/fonts-list.less +25 -25
  135. package/src/styles/less/forms.less +626 -626
  136. package/src/styles/less/glyphicons.less +305 -305
  137. package/src/styles/less/grid.less +84 -84
  138. package/src/styles/less/input-groups.less +167 -167
  139. package/src/styles/less/jumbotron.less +52 -52
  140. package/src/styles/less/labels.less +64 -64
  141. package/src/styles/less/list-group.less +141 -141
  142. package/src/styles/less/manageStyle/manageChile.less +180 -180
  143. package/src/styles/less/manageStyle/manageStyle/manageChile.less +180 -180
  144. package/src/styles/less/manageStyle/manageStyle/manageStyle.less +1102 -1102
  145. package/src/styles/less/manageStyle/manageStyle/safeStyle.less +498 -498
  146. package/src/styles/less/manageStyle/manageStyle.less +1102 -1102
  147. package/src/styles/less/manageStyle/safeStyle.less +498 -498
  148. package/src/styles/less/media.less +66 -66
  149. package/src/styles/less/mixins/alerts.less +14 -14
  150. package/src/styles/less/mixins/background-variant.less +9 -9
  151. package/src/styles/less/mixins/border-radius.less +18 -18
  152. package/src/styles/less/mixins/buttons.less +69 -69
  153. package/src/styles/less/mixins/center-block.less +7 -7
  154. package/src/styles/less/mixins/clearfix.less +22 -22
  155. package/src/styles/less/mixins/forms.less +90 -90
  156. package/src/styles/less/mixins/gradients.less +59 -59
  157. package/src/styles/less/mixins/grid-framework.less +92 -92
  158. package/src/styles/less/mixins/grid.less +122 -122
  159. package/src/styles/less/mixins/hide-text.less +21 -21
  160. package/src/styles/less/mixins/image.less +33 -33
  161. package/src/styles/less/mixins/labels.less +12 -12
  162. package/src/styles/less/mixins/list-group.less +30 -30
  163. package/src/styles/less/mixins/nav-divider.less +10 -10
  164. package/src/styles/less/mixins/nav-vertical-align.less +9 -9
  165. package/src/styles/less/mixins/opacity.less +8 -8
  166. package/src/styles/less/mixins/pagination.less +24 -24
  167. package/src/styles/less/mixins/panels.less +24 -24
  168. package/src/styles/less/mixins/progress-bar.less +10 -10
  169. package/src/styles/less/mixins/reset-filter.less +8 -8
  170. package/src/styles/less/mixins/reset-text.less +18 -18
  171. package/src/styles/less/mixins/resize.less +6 -6
  172. package/src/styles/less/mixins/responsive-visibility.less +15 -15
  173. package/src/styles/less/mixins/size.less +10 -10
  174. package/src/styles/less/mixins/tab-focus.less +9 -9
  175. package/src/styles/less/mixins/table-row.less +44 -44
  176. package/src/styles/less/mixins/text-emphasis.less +9 -9
  177. package/src/styles/less/mixins/text-overflow.less +8 -8
  178. package/src/styles/less/mixins/vendor-prefixes.less +227 -227
  179. package/src/styles/less/mixins.less +40 -40
  180. package/src/styles/less/modals.less +151 -151
  181. package/src/styles/less/navbar.less +660 -660
  182. package/src/styles/less/navs.less +285 -285
  183. package/src/styles/less/normalize.less +424 -424
  184. package/src/styles/less/pager.less +76 -76
  185. package/src/styles/less/pagination.less +89 -89
  186. package/src/styles/less/panels.less +275 -275
  187. package/src/styles/less/popovers.less +131 -131
  188. package/src/styles/less/print.less +101 -101
  189. package/src/styles/less/progress-bars.less +87 -87
  190. package/src/styles/less/responsive-embed.less +35 -35
  191. package/src/styles/less/responsive-utilities.less +194 -194
  192. package/src/styles/less/scaffolding.less +161 -161
  193. package/src/styles/less/stand.less +207 -207
  194. package/src/styles/less/tables.less +312 -312
  195. package/src/styles/less/theme.less +291 -291
  196. package/src/styles/less/thumbnails.less +36 -36
  197. package/src/styles/less/tooltip.less +102 -102
  198. package/src/styles/less/type.less +316 -316
  199. package/src/styles/less/utilities.less +55 -55
  200. package/src/styles/less/variables.less +899 -899
  201. package/src/styles/less/wells.less +29 -29
  202. package/src/util/Daiban.json +12 -12
  203. package/yarn-error.log +6896 -6896
@@ -1,247 +1,247 @@
1
- //
2
- // Button groups
3
- // --------------------------------------------------
4
-
5
- // Make the div behave like a button
6
- .btn-group,
7
- .btn-group-vertical {
8
- position: relative;
9
- display: inline-block;
10
- vertical-align: middle; // match .btn alignment given font-size hack above
11
- > .btn {
12
- position: relative;
13
- float: left;
14
- // Bring the "active" button to the front
15
- &:hover,
16
- &:focus,
17
- &:active,
18
- &.active {
19
- z-index: 2;
20
- }
21
- }
22
- }
23
-
24
- // Prevent double borders when buttons are next to each other
25
- .btn-group {
26
- .btn + .btn,
27
- .btn + .btn-group,
28
- .btn-group + .btn,
29
- .btn-group + .btn-group {
30
- margin-left: -1px;
31
- }
32
- }
33
-
34
- // Optional: Group multiple button groups together for a toolbar
35
- .btn-toolbar {
36
- margin-left: -5px; // Offset the first child's margin
37
- &:extend(.clearfix all);
38
-
39
- .btn,
40
- .btn-group,
41
- .input-group {
42
- float: left;
43
- }
44
- > .btn,
45
- > .btn-group,
46
- > .input-group {
47
- margin-left: 5px;
48
- }
49
- }
50
-
51
- .btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
52
- border-radius: 0;
53
- }
54
-
55
- // Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match
56
- .btn-group > .btn:first-child {
57
- margin-left: 0;
58
- &:not(:last-child):not(.dropdown-toggle) {
59
- .border-right-radius(0);
60
- }
61
- }
62
- // Need .dropdown-toggle since :last-child doesn't apply given a .dropdown-menu immediately after it
63
- .btn-group > .btn:last-child:not(:first-child),
64
- .btn-group > .dropdown-toggle:not(:first-child) {
65
- .border-left-radius(0);
66
- }
67
-
68
- // Custom edits for including btn-groups within btn-groups (useful for including dropdown buttons within a btn-group)
69
- .btn-group > .btn-group {
70
- float: left;
71
- }
72
- .btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
73
- border-radius: 0;
74
- }
75
- .btn-group > .btn-group:first-child:not(:last-child) {
76
- > .btn:last-child,
77
- > .dropdown-toggle {
78
- .border-right-radius(0);
79
- }
80
- }
81
- .btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
82
- .border-left-radius(0);
83
- }
84
-
85
- // On active and open, don't show outline
86
- .btn-group .dropdown-toggle:active,
87
- .btn-group.open .dropdown-toggle {
88
- outline: 0;
89
- }
90
-
91
-
92
- // Sizing
93
- //
94
- // Remix the default button sizing classes into new ones for easier manipulation.
95
-
96
- .btn-group-xs > .btn { &:extend(.btn-xs); }
97
- .btn-group-sm > .btn { &:extend(.btn-sm); }
98
- .btn-group-lg > .btn { &:extend(.btn-lg); }
99
-
100
-
101
- // Split button dropdowns
102
- // ----------------------
103
-
104
- // Give the line between buttons some depth
105
- .btn-group > .btn + .dropdown-toggle {
106
- padding-left: 8px;
107
- padding-right: 8px;
108
- }
109
- .btn-group > .btn-lg + .dropdown-toggle {
110
- padding-left: 12px;
111
- padding-right: 12px;
112
- }
113
-
114
- // The clickable button for toggling the menu
115
- // Remove the gradient and set the same inset shadow as the :active state
116
- .btn-group.open .dropdown-toggle {
117
- .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
118
-
119
- // Show no shadow for `.btn-link` since it has no other button styles.
120
- &.btn-link {
121
- .box-shadow(none);
122
- }
123
- }
124
-
125
-
126
- // Reposition the caret
127
- .btn .caret {
128
- margin-left: 0;
129
- }
130
- // Carets in other button sizes
131
- .btn-lg .caret {
132
- border-width: @caret-width-large @caret-width-large 0;
133
- border-bottom-width: 0;
134
- }
135
- // Upside down carets for .dropup
136
- .dropup .btn-lg .caret {
137
- border-width: 0 @caret-width-large @caret-width-large;
138
- }
139
-
140
-
141
- // Vertical button groups
142
- // ----------------------
143
-
144
- .btn-group-vertical {
145
- > .btn,
146
- > .btn-group,
147
- > .btn-group > .btn {
148
- display: block;
149
- float: none;
150
- width: 100%;
151
- max-width: 100%;
152
- }
153
-
154
- // Clear floats so dropdown menus can be properly placed
155
- > .btn-group {
156
- &:extend(.clearfix all);
157
- > .btn {
158
- float: none;
159
- }
160
- }
161
-
162
- > .btn + .btn,
163
- > .btn + .btn-group,
164
- > .btn-group + .btn,
165
- > .btn-group + .btn-group {
166
- margin-top: -1px;
167
- margin-left: 0;
168
- }
169
- }
170
-
171
- .btn-group-vertical > .btn {
172
- &:not(:first-child):not(:last-child) {
173
- border-radius: 0;
174
- }
175
- &:first-child:not(:last-child) {
176
- border-top-right-radius: @btn-border-radius-base;
177
- .border-bottom-radius(0);
178
- }
179
- &:last-child:not(:first-child) {
180
- border-bottom-left-radius: @btn-border-radius-base;
181
- .border-top-radius(0);
182
- }
183
- }
184
- .btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
185
- border-radius: 0;
186
- }
187
- .btn-group-vertical > .btn-group:first-child:not(:last-child) {
188
- > .btn:last-child,
189
- > .dropdown-toggle {
190
- .border-bottom-radius(0);
191
- }
192
- }
193
- .btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
194
- .border-top-radius(0);
195
- }
196
-
197
-
198
- // Justified button groups
199
- // ----------------------
200
-
201
- .btn-group-justified {
202
- display: table;
203
- width: 100%;
204
- table-layout: fixed;
205
- border-collapse: separate;
206
- > .btn,
207
- > .btn-group {
208
- float: none;
209
- display: table-cell;
210
- width: 1%;
211
- }
212
- > .btn-group .btn {
213
- width: 100%;
214
- }
215
-
216
- > .btn-group .dropdown-menu {
217
- left: auto;
218
- }
219
- }
220
-
221
- .btn-group .btn {
222
- margin-bottom: 0px;
223
- }
224
-
225
- // Checkbox and radio options
226
- //
227
- // In order to support the browser's form validation feedback, powered by the
228
- // `required` attribute, we have to "hide" the inputs via `clip`. We cannot use
229
- // `display: none;` or `visibility: hidden;` as that also hides the popover.
230
- // Simply visually hiding the inputs via `opacity` would leave them clickable in
231
- // certain cases which is prevented by using `clip` and `pointer-events`.
232
- // This way, we ensure a DOM element is visible to position the popover from.
233
- //
234
- // See https://github.com/twbs/bootstrap/pull/12794 and
235
- // https://github.com/twbs/bootstrap/pull/14559 for more information.
236
-
237
- [data-toggle="buttons"] {
238
- > .btn,
239
- > .btn-group > .btn {
240
- input[type="radio"],
241
- input[type="checkbox"] {
242
- position: absolute;
243
- clip: rect(0,0,0,0);
244
- pointer-events: none;
245
- }
246
- }
247
- }
1
+ //
2
+ // Button groups
3
+ // --------------------------------------------------
4
+
5
+ // Make the div behave like a button
6
+ .btn-group,
7
+ .btn-group-vertical {
8
+ position: relative;
9
+ display: inline-block;
10
+ vertical-align: middle; // match .btn alignment given font-size hack above
11
+ > .btn {
12
+ position: relative;
13
+ float: left;
14
+ // Bring the "active" button to the front
15
+ &:hover,
16
+ &:focus,
17
+ &:active,
18
+ &.active {
19
+ z-index: 2;
20
+ }
21
+ }
22
+ }
23
+
24
+ // Prevent double borders when buttons are next to each other
25
+ .btn-group {
26
+ .btn + .btn,
27
+ .btn + .btn-group,
28
+ .btn-group + .btn,
29
+ .btn-group + .btn-group {
30
+ margin-left: -1px;
31
+ }
32
+ }
33
+
34
+ // Optional: Group multiple button groups together for a toolbar
35
+ .btn-toolbar {
36
+ margin-left: -5px; // Offset the first child's margin
37
+ &:extend(.clearfix all);
38
+
39
+ .btn,
40
+ .btn-group,
41
+ .input-group {
42
+ float: left;
43
+ }
44
+ > .btn,
45
+ > .btn-group,
46
+ > .input-group {
47
+ margin-left: 5px;
48
+ }
49
+ }
50
+
51
+ .btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
52
+ border-radius: 0;
53
+ }
54
+
55
+ // Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match
56
+ .btn-group > .btn:first-child {
57
+ margin-left: 0;
58
+ &:not(:last-child):not(.dropdown-toggle) {
59
+ .border-right-radius(0);
60
+ }
61
+ }
62
+ // Need .dropdown-toggle since :last-child doesn't apply given a .dropdown-menu immediately after it
63
+ .btn-group > .btn:last-child:not(:first-child),
64
+ .btn-group > .dropdown-toggle:not(:first-child) {
65
+ .border-left-radius(0);
66
+ }
67
+
68
+ // Custom edits for including btn-groups within btn-groups (useful for including dropdown buttons within a btn-group)
69
+ .btn-group > .btn-group {
70
+ float: left;
71
+ }
72
+ .btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
73
+ border-radius: 0;
74
+ }
75
+ .btn-group > .btn-group:first-child:not(:last-child) {
76
+ > .btn:last-child,
77
+ > .dropdown-toggle {
78
+ .border-right-radius(0);
79
+ }
80
+ }
81
+ .btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
82
+ .border-left-radius(0);
83
+ }
84
+
85
+ // On active and open, don't show outline
86
+ .btn-group .dropdown-toggle:active,
87
+ .btn-group.open .dropdown-toggle {
88
+ outline: 0;
89
+ }
90
+
91
+
92
+ // Sizing
93
+ //
94
+ // Remix the default button sizing classes into new ones for easier manipulation.
95
+
96
+ .btn-group-xs > .btn { &:extend(.btn-xs); }
97
+ .btn-group-sm > .btn { &:extend(.btn-sm); }
98
+ .btn-group-lg > .btn { &:extend(.btn-lg); }
99
+
100
+
101
+ // Split button dropdowns
102
+ // ----------------------
103
+
104
+ // Give the line between buttons some depth
105
+ .btn-group > .btn + .dropdown-toggle {
106
+ padding-left: 8px;
107
+ padding-right: 8px;
108
+ }
109
+ .btn-group > .btn-lg + .dropdown-toggle {
110
+ padding-left: 12px;
111
+ padding-right: 12px;
112
+ }
113
+
114
+ // The clickable button for toggling the menu
115
+ // Remove the gradient and set the same inset shadow as the :active state
116
+ .btn-group.open .dropdown-toggle {
117
+ .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
118
+
119
+ // Show no shadow for `.btn-link` since it has no other button styles.
120
+ &.btn-link {
121
+ .box-shadow(none);
122
+ }
123
+ }
124
+
125
+
126
+ // Reposition the caret
127
+ .btn .caret {
128
+ margin-left: 0;
129
+ }
130
+ // Carets in other button sizes
131
+ .btn-lg .caret {
132
+ border-width: @caret-width-large @caret-width-large 0;
133
+ border-bottom-width: 0;
134
+ }
135
+ // Upside down carets for .dropup
136
+ .dropup .btn-lg .caret {
137
+ border-width: 0 @caret-width-large @caret-width-large;
138
+ }
139
+
140
+
141
+ // Vertical button groups
142
+ // ----------------------
143
+
144
+ .btn-group-vertical {
145
+ > .btn,
146
+ > .btn-group,
147
+ > .btn-group > .btn {
148
+ display: block;
149
+ float: none;
150
+ width: 100%;
151
+ max-width: 100%;
152
+ }
153
+
154
+ // Clear floats so dropdown menus can be properly placed
155
+ > .btn-group {
156
+ &:extend(.clearfix all);
157
+ > .btn {
158
+ float: none;
159
+ }
160
+ }
161
+
162
+ > .btn + .btn,
163
+ > .btn + .btn-group,
164
+ > .btn-group + .btn,
165
+ > .btn-group + .btn-group {
166
+ margin-top: -1px;
167
+ margin-left: 0;
168
+ }
169
+ }
170
+
171
+ .btn-group-vertical > .btn {
172
+ &:not(:first-child):not(:last-child) {
173
+ border-radius: 0;
174
+ }
175
+ &:first-child:not(:last-child) {
176
+ border-top-right-radius: @btn-border-radius-base;
177
+ .border-bottom-radius(0);
178
+ }
179
+ &:last-child:not(:first-child) {
180
+ border-bottom-left-radius: @btn-border-radius-base;
181
+ .border-top-radius(0);
182
+ }
183
+ }
184
+ .btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
185
+ border-radius: 0;
186
+ }
187
+ .btn-group-vertical > .btn-group:first-child:not(:last-child) {
188
+ > .btn:last-child,
189
+ > .dropdown-toggle {
190
+ .border-bottom-radius(0);
191
+ }
192
+ }
193
+ .btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
194
+ .border-top-radius(0);
195
+ }
196
+
197
+
198
+ // Justified button groups
199
+ // ----------------------
200
+
201
+ .btn-group-justified {
202
+ display: table;
203
+ width: 100%;
204
+ table-layout: fixed;
205
+ border-collapse: separate;
206
+ > .btn,
207
+ > .btn-group {
208
+ float: none;
209
+ display: table-cell;
210
+ width: 1%;
211
+ }
212
+ > .btn-group .btn {
213
+ width: 100%;
214
+ }
215
+
216
+ > .btn-group .dropdown-menu {
217
+ left: auto;
218
+ }
219
+ }
220
+
221
+ .btn-group .btn {
222
+ margin-bottom: 0px;
223
+ }
224
+
225
+ // Checkbox and radio options
226
+ //
227
+ // In order to support the browser's form validation feedback, powered by the
228
+ // `required` attribute, we have to "hide" the inputs via `clip`. We cannot use
229
+ // `display: none;` or `visibility: hidden;` as that also hides the popover.
230
+ // Simply visually hiding the inputs via `opacity` would leave them clickable in
231
+ // certain cases which is prevented by using `clip` and `pointer-events`.
232
+ // This way, we ensure a DOM element is visible to position the popover from.
233
+ //
234
+ // See https://github.com/twbs/bootstrap/pull/12794 and
235
+ // https://github.com/twbs/bootstrap/pull/14559 for more information.
236
+
237
+ [data-toggle="buttons"] {
238
+ > .btn,
239
+ > .btn-group > .btn {
240
+ input[type="radio"],
241
+ input[type="checkbox"] {
242
+ position: absolute;
243
+ clip: rect(0,0,0,0);
244
+ pointer-events: none;
245
+ }
246
+ }
247
+ }