system-clients 3.2.54 → 3.2.55-furuike

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 (260) hide show
  1. package/.babelrc +5 -5
  2. package/.editorconfig +9 -9
  3. package/.eslintrc.js +16 -16
  4. package/.gradle/7.4/checksums/checksums.lock +0 -0
  5. package/.gradle/7.4/dependencies-accessors/dependencies-accessors.lock +0 -0
  6. package/.gradle/{7.5.1 → 7.4}/executionHistory/executionHistory.bin +0 -0
  7. package/.gradle/7.4/executionHistory/executionHistory.lock +0 -0
  8. package/.gradle/{7.5.1 → 7.4}/fileHashes/fileHashes.bin +0 -0
  9. package/.gradle/7.4/fileHashes/fileHashes.lock +0 -0
  10. package/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  11. package/.gradle/buildOutputCleanup/cache.properties +2 -2
  12. package/.gradle/buildOutputCleanup/outputFiles.bin +0 -0
  13. package/.gradle/file-system.probe +0 -0
  14. package/CHANGELOG.md +51 -51
  15. package/README.md +36 -36
  16. package/SystemClient.iml +8 -8
  17. package/build/css-loaders.js +34 -34
  18. package/build/dev-client.js +8 -8
  19. package/build/example-server.js +80 -80
  20. package/build/release.sh +28 -28
  21. package/build/utils.js +71 -71
  22. package/build/webpack.base.conf.js +85 -85
  23. package/build/webpack.dev.conf.js +31 -31
  24. package/build/webpack.example.conf.js +49 -49
  25. package/build/webpack.prod.conf.js +60 -60
  26. package/build/webpack.test.conf.js +31 -31
  27. package/build.gradle +6 -6
  28. package/config/dev.env.js +6 -6
  29. package/config/index.js +38 -38
  30. package/config/prod.env.js +3 -3
  31. package/config/test.env.js +6 -6
  32. package/doc/Login.md +7 -7
  33. package/examples/LoginPage/App.vue +21 -21
  34. package/examples/LoginPage/index.html +11 -11
  35. package/examples/LoginPage/main.js +15 -15
  36. package/examples/ReadCard/App.vue +23 -23
  37. package/examples/ReadCard/index.html +11 -11
  38. package/examples/ReadCard/main.js +12 -12
  39. package/gradle/wrapper/gradle-wrapper.jar +0 -0
  40. package/gradle/wrapper/gradle-wrapper.properties +1 -1
  41. package/index.html +21 -21
  42. package/package.json +1 -1
  43. package/release.bat +5 -5
  44. package/src/App.vue +24 -24
  45. package/src/LodopFuncs.js +123 -123
  46. package/src/assets/binding.svg +1 -1
  47. package/src/assets/unbind.svg +1 -1
  48. package/src/assets//345/205/254/345/221/212.svg +1 -1
  49. package/src/assets//347/207/203/346/260/224/347/274/264/350/264/271.eps +116 -116
  50. package/src/assets//350/201/224/347/263/273/346/210/221/344/273/254.svg +1 -1
  51. package/src/components/List.vue +51 -51
  52. package/src/components/Main.vue +785 -785
  53. package/src/components/TabButton.vue +201 -201
  54. package/src/components/Table.js +74 -74
  55. package/src/components/Tabs.vue +67 -67
  56. package/src/components/Util.js +343 -343
  57. package/src/components/addressManage/AddressCascadingMenu.vue +145 -145
  58. package/src/components/equipment/EquipmentManage.vue +65 -65
  59. package/src/components/equipment/PcAdd.vue +105 -105
  60. package/src/components/equipment/PcList.vue +119 -119
  61. package/src/components/equipment/PcManage.vue +60 -60
  62. package/src/components/equipment/PhoneAdd.vue +107 -107
  63. package/src/components/equipment/PhoneList.vue +112 -112
  64. package/src/components/equipment/PhoneManage.vue +60 -60
  65. package/src/components/equipment/PosAdd.vue +323 -323
  66. package/src/components/equipment/PosList.vue +294 -294
  67. package/src/components/equipment/PosManage.vue +138 -138
  68. package/src/components/equipment/PosManageBoth.vue +125 -125
  69. package/src/components/equipment/PosParamAdd.vue +236 -236
  70. package/src/components/equipment/PosParamList.vue +121 -121
  71. package/src/components/equipment/PosParamManage.vue +51 -51
  72. package/src/components/materialManage/materialData.vue +44 -44
  73. package/src/components/materialManage/materialList.vue +255 -255
  74. package/src/components/parammanage/ParamManage.vue +42 -42
  75. package/src/components/parammanage/ParamManages.vue +43 -43
  76. package/src/components/parammanage/ParamPage.vue +336 -336
  77. package/src/components/parammanage/ParamPages.vue +222 -222
  78. package/src/components/parammanage/SinglePage.vue +235 -235
  79. package/src/components/parammanage/SinglePages.vue +167 -167
  80. package/src/components/server/AddChangeMsg.vue +66 -66
  81. package/src/components/server/ChangeDeclare.vue +45 -45
  82. package/src/components/server/IconTree.vue +26 -26
  83. package/src/components/server/ImageVieweTest.vue +56 -56
  84. package/src/components/server/ImageViewer.vue +350 -350
  85. package/src/components/server/LeftTree.vue +111 -111
  86. package/src/components/server/LoadData.vue +55 -55
  87. package/src/components/server/Login.vue +1 -1
  88. package/src/components/server/LoginPage.vue +235 -235
  89. package/src/components/server/LoginView.vue +128 -128
  90. package/src/components/server/Menu.vue +188 -188
  91. package/src/components/server/ModifyPw.vue +111 -111
  92. package/src/components/server/PcdBuildingSelect.vue +241 -241
  93. package/src/components/server/ResSelect.vue +155 -155
  94. package/src/components/server/ResSelectGroup.vue +198 -198
  95. package/src/components/server/RightTree.vue +348 -348
  96. package/src/components/server/RoleSelector.vue +88 -88
  97. package/src/components/server/TestResSelect.vue +58 -58
  98. package/src/components/server/TestResSelectGroup.vue +388 -388
  99. package/src/components/server/TestRightTree.vue +42 -42
  100. package/src/filiale/chengtou/Login.vue +537 -537
  101. package/src/filiale/chengtou/system.js +5 -5
  102. package/src/filiale/dongguan/Login.vue +900 -900
  103. package/src/filiale/dongguan/Main.vue +715 -715
  104. package/src/filiale/dongguan/system.js +6 -6
  105. package/src/filiale/furuike/Login.vue +583 -583
  106. package/src/filiale/furuike/Main.vue +826 -827
  107. package/src/filiale/furuike/system.js +7 -7
  108. package/src/filiale/konggang/Login.vue +470 -470
  109. package/src/filiale/konggang/system.js +7 -7
  110. package/src/filiale/qianneng/Main.vue +816 -816
  111. package/src/filiale/qianneng/ModifyPw.vue +107 -107
  112. package/src/filiale/qianneng/system.js +8 -8
  113. package/src/filiale/rizhao/LeftTree.vue +111 -111
  114. package/src/filiale/rizhao/Login.vue +791 -791
  115. package/src/filiale/rizhao/Main.vue +611 -611
  116. package/src/filiale/rizhao/system.js +14 -14
  117. package/src/filiale/tongchuan/Login.vue +561 -561
  118. package/src/filiale/tongchuan/system.js +7 -7
  119. package/src/filiale/wenxi/Login.vue +535 -535
  120. package/src/filiale/wenxi/Main.vue +785 -785
  121. package/src/filiale/wenxi/system.js +10 -10
  122. package/src/filiale/yuchuan/Login.vue +889 -889
  123. package/src/filiale/yuchuan/Main.vue +773 -773
  124. package/src/filiale/yuchuan/system.js +10 -10
  125. package/src/filiale/zhoukou/Main.vue +807 -807
  126. package/src/filiale/zhoukou/system.js +6 -6
  127. package/src/index.js +7 -7
  128. package/src/plugins/EncryptUtil.js +53 -53
  129. package/src/plugins/GetLoginInfoService.js +521 -521
  130. package/src/plugins/HeatGetLoginInfoService.js +491 -491
  131. package/src/plugins/validation.js +15 -15
  132. package/src/project/ProjectPage.vue +24 -24
  133. package/src/project/State.js +17 -17
  134. package/src/stores/AppData.js +38 -38
  135. package/src/stores/HeatAppData.js +38 -38
  136. package/src/styles/fonts/glyphicons-halflings-regular.svg +288 -288
  137. package/src/styles/less/.csscomb.json +304 -304
  138. package/src/styles/less/.csslintrc +19 -19
  139. package/src/styles/less/alerts.less +73 -73
  140. package/src/styles/less/aofeng/animate.min.css +10 -10
  141. package/src/styles/less/aofeng/expandcss.less +569 -569
  142. package/src/styles/less/aofeng/login.less +367 -367
  143. package/src/styles/less/aofeng/standard.less +2507 -2507
  144. package/src/styles/less/aofeng/themeOne/BinaryTemplate.less +686 -686
  145. package/src/styles/less/aofeng/themeOne/loginStyle.less +1586 -1586
  146. package/src/styles/less/aofeng/themeOne/systemStyle.less +2650 -2650
  147. package/src/styles/less/aofeng/themeOne.less +17 -17
  148. package/src/styles/less/aofeng/themeTwo/newStyle1.less +415 -415
  149. package/src/styles/less/aofeng/themeTwo.less +3 -3
  150. package/src/styles/less/badges.less +66 -66
  151. package/src/styles/less/bootstrap.less +66 -66
  152. package/src/styles/less/breadcrumbs.less +26 -26
  153. package/src/styles/less/button-groups.less +247 -247
  154. package/src/styles/less/buttons.less +172 -172
  155. package/src/styles/less/carousel.less +269 -269
  156. package/src/styles/less/close.less +34 -34
  157. package/src/styles/less/code.less +69 -69
  158. package/src/styles/less/component-animations.less +33 -33
  159. package/src/styles/less/dropdowns.less +216 -216
  160. package/src/styles/less/fonts-list.less +25 -25
  161. package/src/styles/less/forms.less +626 -626
  162. package/src/styles/less/glyphicons.less +305 -305
  163. package/src/styles/less/grid.less +84 -84
  164. package/src/styles/less/input-groups.less +167 -167
  165. package/src/styles/less/jumbotron.less +52 -52
  166. package/src/styles/less/labels.less +64 -64
  167. package/src/styles/less/list-group.less +141 -141
  168. package/src/styles/less/manageStyle/manageChile.less +180 -180
  169. package/src/styles/less/manageStyle/manageStyle/manageChile.less +180 -180
  170. package/src/styles/less/manageStyle/manageStyle/manageStyle.less +1102 -1102
  171. package/src/styles/less/manageStyle/manageStyle/safeStyle.less +498 -498
  172. package/src/styles/less/manageStyle/manageStyle.less +1102 -1102
  173. package/src/styles/less/manageStyle/safeStyle.less +498 -498
  174. package/src/styles/less/media.less +66 -66
  175. package/src/styles/less/mixins/alerts.less +14 -14
  176. package/src/styles/less/mixins/background-variant.less +9 -9
  177. package/src/styles/less/mixins/border-radius.less +18 -18
  178. package/src/styles/less/mixins/buttons.less +69 -69
  179. package/src/styles/less/mixins/center-block.less +7 -7
  180. package/src/styles/less/mixins/clearfix.less +22 -22
  181. package/src/styles/less/mixins/forms.less +90 -90
  182. package/src/styles/less/mixins/gradients.less +59 -59
  183. package/src/styles/less/mixins/grid-framework.less +92 -92
  184. package/src/styles/less/mixins/grid.less +122 -122
  185. package/src/styles/less/mixins/hide-text.less +21 -21
  186. package/src/styles/less/mixins/image.less +33 -33
  187. package/src/styles/less/mixins/labels.less +12 -12
  188. package/src/styles/less/mixins/list-group.less +30 -30
  189. package/src/styles/less/mixins/nav-divider.less +10 -10
  190. package/src/styles/less/mixins/nav-vertical-align.less +9 -9
  191. package/src/styles/less/mixins/opacity.less +8 -8
  192. package/src/styles/less/mixins/pagination.less +24 -24
  193. package/src/styles/less/mixins/panels.less +24 -24
  194. package/src/styles/less/mixins/progress-bar.less +10 -10
  195. package/src/styles/less/mixins/reset-filter.less +8 -8
  196. package/src/styles/less/mixins/reset-text.less +18 -18
  197. package/src/styles/less/mixins/resize.less +6 -6
  198. package/src/styles/less/mixins/responsive-visibility.less +15 -15
  199. package/src/styles/less/mixins/size.less +10 -10
  200. package/src/styles/less/mixins/tab-focus.less +9 -9
  201. package/src/styles/less/mixins/table-row.less +44 -44
  202. package/src/styles/less/mixins/text-emphasis.less +9 -9
  203. package/src/styles/less/mixins/text-overflow.less +8 -8
  204. package/src/styles/less/mixins/vendor-prefixes.less +227 -227
  205. package/src/styles/less/mixins.less +40 -40
  206. package/src/styles/less/modals.less +151 -151
  207. package/src/styles/less/navbar.less +660 -660
  208. package/src/styles/less/navs.less +285 -285
  209. package/src/styles/less/normalize.less +424 -424
  210. package/src/styles/less/pager.less +76 -76
  211. package/src/styles/less/pagination.less +89 -89
  212. package/src/styles/less/panels.less +275 -275
  213. package/src/styles/less/popovers.less +131 -131
  214. package/src/styles/less/print.less +101 -101
  215. package/src/styles/less/progress-bars.less +87 -87
  216. package/src/styles/less/responsive-embed.less +35 -35
  217. package/src/styles/less/responsive-utilities.less +194 -194
  218. package/src/styles/less/scaffolding.less +161 -161
  219. package/src/styles/less/stand.less +207 -207
  220. package/src/styles/less/tables.less +312 -312
  221. package/src/styles/less/theme.less +291 -291
  222. package/src/styles/less/thumbnails.less +36 -36
  223. package/src/styles/less/tooltip.less +102 -102
  224. package/src/styles/less/type.less +316 -316
  225. package/src/styles/less/utilities.less +55 -55
  226. package/src/styles/less/variables.less +899 -899
  227. package/src/styles/less/wells.less +29 -29
  228. package/src/system.js +1 -5
  229. package/src/systemphone.js +11 -11
  230. package/src/util/Daiban.json +12 -12
  231. package/src/util/LdapHelper.js +75 -75
  232. package/test/e2e/custom-assertions/elementCount.js +26 -26
  233. package/test/e2e/nightwatch.conf.js +40 -40
  234. package/test/e2e/runner.js +30 -30
  235. package/test/e2e/specs/test.js +14 -14
  236. package/test/unit/.eslintrc +5 -5
  237. package/test/unit/index.js +13 -13
  238. package/test/unit/init.js +10 -10
  239. package/test/unit/karma.conf.js +49 -49
  240. package/test/unit/specs/base64.spec.js +5 -5
  241. package/test/unit/specs/components/parammanage/ParamPage.spec.js +20 -20
  242. package/test/unit/specs/components/parammanage/SinglePage.spec.js +20 -20
  243. package/test/unit/specs/components/server/LeftTree/App.vue +18 -18
  244. package/test/unit/specs/components/server/LeftTree/LeftTree.spec.js +22 -22
  245. package/test/unit/specs/components/server/LoadData.spec.js +24 -24
  246. package/test/unit/specs/components/server/Login.spec.js +61 -61
  247. package/test/unit/specs/components/server/RightTree.spec.js +50 -50
  248. package/test/unit/specs/plugins/GetLoginInfoService.spec.js +55 -55
  249. package/test/unit/test.html +76 -76
  250. package/yarn-error.log +6896 -6896
  251. package/.gradle/7.5.1/checksums/checksums.lock +0 -0
  252. package/.gradle/7.5.1/dependencies-accessors/dependencies-accessors.lock +0 -0
  253. package/.gradle/7.5.1/executionHistory/executionHistory.lock +0 -0
  254. package/.gradle/7.5.1/fileHashes/fileHashes.lock +0 -0
  255. package/gradlew +0 -240
  256. package/gradlew.bat +0 -91
  257. package/src/components/common/ProgressBase.vue +0 -83
  258. /package/.gradle/{7.5.1 → 7.4}/dependencies-accessors/gc.properties +0 -0
  259. /package/.gradle/{7.5.1 → 7.4}/fileChanges/last-build.bin +0 -0
  260. /package/.gradle/{7.5.1 → 7.4}/gc.properties +0 -0
@@ -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
+ }