system-phone 3.0.49-34 → 3.0.49-35

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 (268) hide show
  1. package/.babelrc +5 -5
  2. package/.editorconfig +9 -9
  3. package/.eslintrc.js +16 -16
  4. package/.gradle/buildOutputCleanup/cache.properties +2 -2
  5. package/CHANGELOG.md +1 -1
  6. package/Dockerfile +3 -3
  7. package/README.md +36 -36
  8. package/SystemPhone.iml +8 -8
  9. package/build/css-loaders.js +34 -34
  10. package/build/dev-client.js +8 -8
  11. package/build/dev-server.js +141 -141
  12. package/build/example-server.js +80 -80
  13. package/build/release.sh +28 -28
  14. package/build/utils.js +71 -71
  15. package/build/webpack.base.conf.js +82 -82
  16. package/build/webpack.dev.conf.js +31 -31
  17. package/build/webpack.example.conf.js +49 -49
  18. package/build/webpack.prod.conf.js +60 -60
  19. package/build/webpack.test.conf.js +31 -31
  20. package/build.gradle +27 -27
  21. package/config/dev.env.js +6 -6
  22. package/config/index.js +38 -38
  23. package/config/prod.env.js +3 -3
  24. package/config/test.env.js +6 -6
  25. package/gradle/wrapper/gradle-wrapper.properties +5 -5
  26. package/gradlew +183 -183
  27. package/gradlew.bat +100 -100
  28. package/index.html +21 -21
  29. package/nginx.conf +304 -304
  30. package/package.json +1 -1
  31. package/release.bat +5 -5
  32. package/src/App.vue +25 -25
  33. package/src/Util.js +415 -415
  34. package/src/android-bootstrap/fonts/glyphicons-halflings-regular.svg +287 -287
  35. package/src/android-bootstrap/less/.csscomb.json +304 -304
  36. package/src/android-bootstrap/less/.csslintrc +19 -19
  37. package/src/android-bootstrap/less/alerts.less +73 -73
  38. package/src/android-bootstrap/less/badges.less +66 -66
  39. package/src/android-bootstrap/less/bootstrap.less +56 -56
  40. package/src/android-bootstrap/less/breadcrumbs.less +26 -26
  41. package/src/android-bootstrap/less/button-groups.less +247 -247
  42. package/src/android-bootstrap/less/buttons.less +173 -173
  43. package/src/android-bootstrap/less/carousel.less +269 -269
  44. package/src/android-bootstrap/less/close.less +34 -34
  45. package/src/android-bootstrap/less/code.less +69 -69
  46. package/src/android-bootstrap/less/component-animations.less +33 -33
  47. package/src/android-bootstrap/less/dropdowns.less +216 -216
  48. package/src/android-bootstrap/less/forms.less +626 -626
  49. package/src/android-bootstrap/less/glyphicons.less +305 -305
  50. package/src/android-bootstrap/less/grid.less +84 -84
  51. package/src/android-bootstrap/less/input-groups.less +167 -167
  52. package/src/android-bootstrap/less/jumbotron.less +52 -52
  53. package/src/android-bootstrap/less/labels.less +64 -64
  54. package/src/android-bootstrap/less/list-group.less +141 -141
  55. package/src/android-bootstrap/less/media.less +66 -66
  56. package/src/android-bootstrap/less/mixins/alerts.less +14 -14
  57. package/src/android-bootstrap/less/mixins/background-variant.less +9 -9
  58. package/src/android-bootstrap/less/mixins/border-radius.less +18 -18
  59. package/src/android-bootstrap/less/mixins/buttons.less +69 -69
  60. package/src/android-bootstrap/less/mixins/center-block.less +7 -7
  61. package/src/android-bootstrap/less/mixins/clearfix.less +22 -22
  62. package/src/android-bootstrap/less/mixins/forms.less +90 -90
  63. package/src/android-bootstrap/less/mixins/gradients.less +59 -59
  64. package/src/android-bootstrap/less/mixins/grid-framework.less +92 -92
  65. package/src/android-bootstrap/less/mixins/grid.less +122 -122
  66. package/src/android-bootstrap/less/mixins/hide-text.less +21 -21
  67. package/src/android-bootstrap/less/mixins/image.less +33 -33
  68. package/src/android-bootstrap/less/mixins/labels.less +12 -12
  69. package/src/android-bootstrap/less/mixins/list-group.less +30 -30
  70. package/src/android-bootstrap/less/mixins/nav-divider.less +10 -10
  71. package/src/android-bootstrap/less/mixins/nav-vertical-align.less +9 -9
  72. package/src/android-bootstrap/less/mixins/opacity.less +8 -8
  73. package/src/android-bootstrap/less/mixins/pagination.less +24 -24
  74. package/src/android-bootstrap/less/mixins/panels.less +24 -24
  75. package/src/android-bootstrap/less/mixins/progress-bar.less +10 -10
  76. package/src/android-bootstrap/less/mixins/reset-filter.less +8 -8
  77. package/src/android-bootstrap/less/mixins/reset-text.less +18 -18
  78. package/src/android-bootstrap/less/mixins/resize.less +6 -6
  79. package/src/android-bootstrap/less/mixins/responsive-visibility.less +15 -15
  80. package/src/android-bootstrap/less/mixins/size.less +10 -10
  81. package/src/android-bootstrap/less/mixins/tab-focus.less +9 -9
  82. package/src/android-bootstrap/less/mixins/table-row.less +44 -44
  83. package/src/android-bootstrap/less/mixins/text-emphasis.less +9 -9
  84. package/src/android-bootstrap/less/mixins/text-overflow.less +8 -8
  85. package/src/android-bootstrap/less/mixins/vendor-prefixes.less +227 -227
  86. package/src/android-bootstrap/less/mixins.less +40 -40
  87. package/src/android-bootstrap/less/modals.less +151 -151
  88. package/src/android-bootstrap/less/navbar.less +660 -660
  89. package/src/android-bootstrap/less/navs.less +290 -290
  90. package/src/android-bootstrap/less/normalize.less +424 -424
  91. package/src/android-bootstrap/less/pager.less +76 -76
  92. package/src/android-bootstrap/less/pagination.less +89 -89
  93. package/src/android-bootstrap/less/panels.less +274 -274
  94. package/src/android-bootstrap/less/popovers.less +131 -131
  95. package/src/android-bootstrap/less/print.less +101 -101
  96. package/src/android-bootstrap/less/progress-bars.less +87 -87
  97. package/src/android-bootstrap/less/responsive-embed.less +35 -35
  98. package/src/android-bootstrap/less/responsive-utilities.less +194 -194
  99. package/src/android-bootstrap/less/scaffolding.less +161 -161
  100. package/src/android-bootstrap/less/tables.less +262 -262
  101. package/src/android-bootstrap/less/theme.less +291 -291
  102. package/src/android-bootstrap/less/thumbnails.less +36 -36
  103. package/src/android-bootstrap/less/tooltip.less +102 -102
  104. package/src/android-bootstrap/less/type.less +303 -303
  105. package/src/android-bootstrap/less/utilities.less +55 -55
  106. package/src/android-bootstrap/less/variables.less +896 -896
  107. package/src/android-bootstrap/less/wells.less +29 -29
  108. package/src/bootstrap/fonts/glyphicons-halflings-regular.svg +287 -287
  109. package/src/bootstrap/less/.csscomb.json +304 -304
  110. package/src/bootstrap/less/.csslintrc +19 -19
  111. package/src/bootstrap/less/alerts.less +73 -73
  112. package/src/bootstrap/less/badges.less +66 -66
  113. package/src/bootstrap/less/bootstrap.less +56 -56
  114. package/src/bootstrap/less/breadcrumbs.less +26 -26
  115. package/src/bootstrap/less/button-groups.less +247 -247
  116. package/src/bootstrap/less/buttons.less +172 -172
  117. package/src/bootstrap/less/carousel.less +269 -269
  118. package/src/bootstrap/less/close.less +34 -34
  119. package/src/bootstrap/less/code.less +69 -69
  120. package/src/bootstrap/less/component-animations.less +33 -33
  121. package/src/bootstrap/less/dropdowns.less +216 -216
  122. package/src/bootstrap/less/forms.less +626 -626
  123. package/src/bootstrap/less/glyphicons.less +305 -305
  124. package/src/bootstrap/less/grid.less +84 -84
  125. package/src/bootstrap/less/input-groups.less +167 -167
  126. package/src/bootstrap/less/jumbotron.less +52 -52
  127. package/src/bootstrap/less/labels.less +64 -64
  128. package/src/bootstrap/less/list-group.less +141 -141
  129. package/src/bootstrap/less/media.less +66 -66
  130. package/src/bootstrap/less/mixins/alerts.less +14 -14
  131. package/src/bootstrap/less/mixins/background-variant.less +9 -9
  132. package/src/bootstrap/less/mixins/border-radius.less +18 -18
  133. package/src/bootstrap/less/mixins/buttons.less +69 -69
  134. package/src/bootstrap/less/mixins/center-block.less +7 -7
  135. package/src/bootstrap/less/mixins/clearfix.less +22 -22
  136. package/src/bootstrap/less/mixins/forms.less +90 -90
  137. package/src/bootstrap/less/mixins/gradients.less +59 -59
  138. package/src/bootstrap/less/mixins/grid-framework.less +92 -92
  139. package/src/bootstrap/less/mixins/grid.less +122 -122
  140. package/src/bootstrap/less/mixins/hide-text.less +21 -21
  141. package/src/bootstrap/less/mixins/image.less +33 -33
  142. package/src/bootstrap/less/mixins/labels.less +12 -12
  143. package/src/bootstrap/less/mixins/list-group.less +30 -30
  144. package/src/bootstrap/less/mixins/nav-divider.less +10 -10
  145. package/src/bootstrap/less/mixins/nav-vertical-align.less +9 -9
  146. package/src/bootstrap/less/mixins/opacity.less +8 -8
  147. package/src/bootstrap/less/mixins/pagination.less +24 -24
  148. package/src/bootstrap/less/mixins/panels.less +24 -24
  149. package/src/bootstrap/less/mixins/progress-bar.less +10 -10
  150. package/src/bootstrap/less/mixins/reset-filter.less +8 -8
  151. package/src/bootstrap/less/mixins/reset-text.less +18 -18
  152. package/src/bootstrap/less/mixins/resize.less +6 -6
  153. package/src/bootstrap/less/mixins/responsive-visibility.less +15 -15
  154. package/src/bootstrap/less/mixins/size.less +10 -10
  155. package/src/bootstrap/less/mixins/tab-focus.less +9 -9
  156. package/src/bootstrap/less/mixins/table-row.less +44 -44
  157. package/src/bootstrap/less/mixins/text-emphasis.less +9 -9
  158. package/src/bootstrap/less/mixins/text-overflow.less +8 -8
  159. package/src/bootstrap/less/mixins/vendor-prefixes.less +227 -227
  160. package/src/bootstrap/less/mixins.less +40 -40
  161. package/src/bootstrap/less/modals.less +151 -151
  162. package/src/bootstrap/less/navbar.less +660 -660
  163. package/src/bootstrap/less/navs.less +286 -286
  164. package/src/bootstrap/less/normalize.less +424 -424
  165. package/src/bootstrap/less/pager.less +76 -76
  166. package/src/bootstrap/less/pagination.less +89 -89
  167. package/src/bootstrap/less/panels.less +275 -275
  168. package/src/bootstrap/less/popovers.less +131 -131
  169. package/src/bootstrap/less/print.less +101 -101
  170. package/src/bootstrap/less/progress-bars.less +87 -87
  171. package/src/bootstrap/less/responsive-embed.less +35 -35
  172. package/src/bootstrap/less/responsive-utilities.less +194 -194
  173. package/src/bootstrap/less/scaffolding.less +161 -161
  174. package/src/bootstrap/less/tables.less +262 -262
  175. package/src/bootstrap/less/theme.less +291 -291
  176. package/src/bootstrap/less/thumbnails.less +36 -36
  177. package/src/bootstrap/less/tooltip.less +102 -102
  178. package/src/bootstrap/less/type.less +303 -303
  179. package/src/bootstrap/less/utilities.less +55 -55
  180. package/src/bootstrap/less/variables.less +895 -895
  181. package/src/bootstrap/less/wells.less +29 -29
  182. package/src/components/AloneLoadParams.vue +26 -26
  183. package/src/components/AlreadyService.vue +193 -193
  184. package/src/components/AttendManage.vue +534 -534
  185. package/src/components/LoadAppdata.vue +38 -38
  186. package/src/components/LoginApp.vue +730 -730
  187. package/src/components/LoginAppNew.vue +587 -587
  188. package/src/components/ModifyPassWord.vue +216 -216
  189. package/src/components/NavBottom.vue +117 -117
  190. package/src/components/NavBottomV.vue +141 -141
  191. package/src/components/NavBottomVVV.vue +185 -185
  192. package/src/components/OnlineManage.vue +256 -256
  193. package/src/components/PhoneAllInfo.vue +68 -68
  194. package/src/components/PhoneChangemeterInfo.vue +116 -116
  195. package/src/components/PhoneInfoTable.vue +39 -39
  196. package/src/components/PhoneMeterInfo.vue +132 -132
  197. package/src/components/PhoneRepairInfo.vue +146 -146
  198. package/src/components/PhoneSafeInfo.vue +101 -101
  199. package/src/components/PhoneSellInfo.vue +123 -123
  200. package/src/components/PhoneSellInfoLite.vue +112 -112
  201. package/src/components/PhoneUser.vue +202 -202
  202. package/src/components/PhoneUserDetil.vue +70 -70
  203. package/src/components/PhoneUserFind.vue +138 -138
  204. package/src/components/RightTree.vue +217 -217
  205. package/src/components/SystemSetUp.vue +330 -330
  206. package/src/components/TabBarPhone.vue +81 -81
  207. package/src/components/Test.vue +14 -14
  208. package/src/components/ToolsPage.vue +182 -182
  209. package/src/components/UploadManage.vue +194 -194
  210. package/src/components/gaomi/NavBottomV.vue +223 -223
  211. package/src/components/gaomi/NavBottomVVVV.vue +210 -210
  212. package/src/components/gaomi/Scroller.vue +63 -63
  213. package/src/components/gaomi/SystemSetUp.vue +186 -186
  214. package/src/components/gaomi/ToolsPage.vue +168 -168
  215. package/src/components/idea/feedBack.vue +150 -150
  216. package/src/components/idea/feedbackAdd.vue +366 -366
  217. package/src/components/info/ConfigInfo.vue +122 -122
  218. package/src/components/info/FindUserInfo.vue +157 -157
  219. package/src/components/info/InfoTable.vue +37 -37
  220. package/src/components/iot/InstructMessage.vue +313 -313
  221. package/src/components/iot/IotBaseInfo.vue +97 -97
  222. package/src/components/iot/IotMeterInfo.vue +77 -77
  223. package/src/components/iot/iotMonitoringMain.vue +501 -501
  224. package/src/components/online/ApplyOnline.vue +581 -581
  225. package/src/components/online/BJZhongRan/ApplyOnline.vue +600 -600
  226. package/src/components/screen/ChargeContentPage.vue +656 -656
  227. package/src/components/screen/ContentPage.vue +611 -611
  228. package/src/components/screen/GongdanContentPage.vue +149 -149
  229. package/src/components/screen/ListCountItem.vue +93 -93
  230. package/src/components/screen/ModuleTitle.vue +48 -48
  231. package/src/components/screen/SafeOrderContentPage.vue +440 -440
  232. package/src/components/screen/SecurityCheckItem.vue +50 -50
  233. package/src/components/screen/TotalItem.vue +76 -76
  234. package/src/components/screen/TotalUserNumber.vue +77 -77
  235. package/src/components/screen/WorkOrderItem.vue +51 -51
  236. package/src/components/screen/WorkOrderRightDownItem.vue +103 -103
  237. package/src/components/screen/WorkOrderRightItem.vue +115 -115
  238. package/src/components/userinfo/paymentQuery.vue +189 -189
  239. package/src/components/userinfo/queryFile.vue +190 -190
  240. package/src/components/wasm.vue +18 -18
  241. package/src/expandcssAndroid.less +521 -521
  242. package/src/index.js +9 -9
  243. package/src/main.js +38 -38
  244. package/src/plugins/GetStringData.js +18 -18
  245. package/src/plugins/LoadParams.js +24 -24
  246. package/src/plugins/const.js +404 -404
  247. package/src/plugins/vue-py.js +37 -37
  248. package/src/services/ConfigService.js +24 -24
  249. package/src/systemphone-gaomi.js +105 -105
  250. package/src/systemphone.js +58 -58
  251. package/src/util/LdapHelper.js +75 -75
  252. package/static/app.json +4 -4
  253. package/static/const.js +404 -404
  254. package/static/globals.txt +74 -74
  255. package/static/layui/font/iconfont.svg +554 -554
  256. package/static/vue-py.js +37 -37
  257. package/static/wasm_exec.js +465 -465
  258. package/test/unit/.eslintrc +5 -5
  259. package/test/unit/TestUtil.js +35 -35
  260. package/test/unit/context.html +20 -20
  261. package/test/unit/index.js +13 -13
  262. package/test/unit/init.js +13 -13
  263. package/test/unit/karma.conf.js +50 -50
  264. package/test/unit/specs/App.spec.js +17 -17
  265. package/test/unit/specs/Test.spec.js +28 -28
  266. package/test/unit/specs/components/LoginApp.spec.js +21 -21
  267. package/test/unit/specs/sevices/ConfigService.spec.js +23 -23
  268. package/test/unit/specs/sevices/GetDBTest.spec.js +28 -28
@@ -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
+ }