0da040b4 by 杨建斌

add

0 parents
Showing 135 changed files with 17154 additions and 0 deletions
1 叮嗒出行微信端
...\ No newline at end of file ...\ No newline at end of file
1 /*!
2 * Bootstrap v3.3.6 (http://getbootstrap.com)
3 * Copyright 2011-2015 Twitter, Inc.
4 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5 */
6 .btn-default,
7 .btn-primary,
8 .btn-success,
9 .btn-info,
10 .btn-warning,
11 .btn-danger {
12 text-shadow: 0 -1px 0 rgba(0, 0, 0, .2);
13 -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);
14 box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);
15 }
16 .btn-default:active,
17 .btn-primary:active,
18 .btn-success:active,
19 .btn-info:active,
20 .btn-warning:active,
21 .btn-danger:active,
22 .btn-default.active,
23 .btn-primary.active,
24 .btn-success.active,
25 .btn-info.active,
26 .btn-warning.active,
27 .btn-danger.active {
28 -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
29 box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
30 }
31 .btn-default.disabled,
32 .btn-primary.disabled,
33 .btn-success.disabled,
34 .btn-info.disabled,
35 .btn-warning.disabled,
36 .btn-danger.disabled,
37 .btn-default[disabled],
38 .btn-primary[disabled],
39 .btn-success[disabled],
40 .btn-info[disabled],
41 .btn-warning[disabled],
42 .btn-danger[disabled],
43 fieldset[disabled] .btn-default,
44 fieldset[disabled] .btn-primary,
45 fieldset[disabled] .btn-success,
46 fieldset[disabled] .btn-info,
47 fieldset[disabled] .btn-warning,
48 fieldset[disabled] .btn-danger {
49 -webkit-box-shadow: none;
50 box-shadow: none;
51 }
52 .btn-default .badge,
53 .btn-primary .badge,
54 .btn-success .badge,
55 .btn-info .badge,
56 .btn-warning .badge,
57 .btn-danger .badge {
58 text-shadow: none;
59 }
60 .btn:active,
61 .btn.active {
62 background-image: none;
63 }
64 .btn-default {
65 text-shadow: 0 1px 0 #fff;
66 background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%);
67 background-image: -o-linear-gradient(top, #fff 0%, #e0e0e0 100%);
68 background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e0e0e0));
69 background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%);
70 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);
71 filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
72 background-repeat: repeat-x;
73 border-color: #dbdbdb;
74 border-color: #ccc;
75 }
76 .btn-default:hover,
77 .btn-default:focus {
78 background-color: #e0e0e0;
79 background-position: 0 -15px;
80 }
81 .btn-default:active,
82 .btn-default.active {
83 background-color: #e0e0e0;
84 border-color: #dbdbdb;
85 }
86 .btn-default.disabled,
87 .btn-default[disabled],
88 fieldset[disabled] .btn-default,
89 .btn-default.disabled:hover,
90 .btn-default[disabled]:hover,
91 fieldset[disabled] .btn-default:hover,
92 .btn-default.disabled:focus,
93 .btn-default[disabled]:focus,
94 fieldset[disabled] .btn-default:focus,
95 .btn-default.disabled.focus,
96 .btn-default[disabled].focus,
97 fieldset[disabled] .btn-default.focus,
98 .btn-default.disabled:active,
99 .btn-default[disabled]:active,
100 fieldset[disabled] .btn-default:active,
101 .btn-default.disabled.active,
102 .btn-default[disabled].active,
103 fieldset[disabled] .btn-default.active {
104 background-color: #e0e0e0;
105 background-image: none;
106 }
107 .btn-primary {
108 background-image: -webkit-linear-gradient(top, #337ab7 0%, #265a88 100%);
109 background-image: -o-linear-gradient(top, #337ab7 0%, #265a88 100%);
110 background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#265a88));
111 background-image: linear-gradient(to bottom, #337ab7 0%, #265a88 100%);
112 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);
113 filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
114 background-repeat: repeat-x;
115 border-color: #245580;
116 }
117 .btn-primary:hover,
118 .btn-primary:focus {
119 background-color: #265a88;
120 background-position: 0 -15px;
121 }
122 .btn-primary:active,
123 .btn-primary.active {
124 background-color: #265a88;
125 border-color: #245580;
126 }
127 .btn-primary.disabled,
128 .btn-primary[disabled],
129 fieldset[disabled] .btn-primary,
130 .btn-primary.disabled:hover,
131 .btn-primary[disabled]:hover,
132 fieldset[disabled] .btn-primary:hover,
133 .btn-primary.disabled:focus,
134 .btn-primary[disabled]:focus,
135 fieldset[disabled] .btn-primary:focus,
136 .btn-primary.disabled.focus,
137 .btn-primary[disabled].focus,
138 fieldset[disabled] .btn-primary.focus,
139 .btn-primary.disabled:active,
140 .btn-primary[disabled]:active,
141 fieldset[disabled] .btn-primary:active,
142 .btn-primary.disabled.active,
143 .btn-primary[disabled].active,
144 fieldset[disabled] .btn-primary.active {
145 background-color: #265a88;
146 background-image: none;
147 }
148 .btn-success {
149 background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);
150 background-image: -o-linear-gradient(top, #5cb85c 0%, #419641 100%);
151 background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#419641));
152 background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%);
153 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);
154 filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
155 background-repeat: repeat-x;
156 border-color: #3e8f3e;
157 }
158 .btn-success:hover,
159 .btn-success:focus {
160 background-color: #419641;
161 background-position: 0 -15px;
162 }
163 .btn-success:active,
164 .btn-success.active {
165 background-color: #419641;
166 border-color: #3e8f3e;
167 }
168 .btn-success.disabled,
169 .btn-success[disabled],
170 fieldset[disabled] .btn-success,
171 .btn-success.disabled:hover,
172 .btn-success[disabled]:hover,
173 fieldset[disabled] .btn-success:hover,
174 .btn-success.disabled:focus,
175 .btn-success[disabled]:focus,
176 fieldset[disabled] .btn-success:focus,
177 .btn-success.disabled.focus,
178 .btn-success[disabled].focus,
179 fieldset[disabled] .btn-success.focus,
180 .btn-success.disabled:active,
181 .btn-success[disabled]:active,
182 fieldset[disabled] .btn-success:active,
183 .btn-success.disabled.active,
184 .btn-success[disabled].active,
185 fieldset[disabled] .btn-success.active {
186 background-color: #419641;
187 background-image: none;
188 }
189 .btn-info {
190 background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
191 background-image: -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
192 background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#2aabd2));
193 background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);
194 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);
195 filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
196 background-repeat: repeat-x;
197 border-color: #28a4c9;
198 }
199 .btn-info:hover,
200 .btn-info:focus {
201 background-color: #2aabd2;
202 background-position: 0 -15px;
203 }
204 .btn-info:active,
205 .btn-info.active {
206 background-color: #2aabd2;
207 border-color: #28a4c9;
208 }
209 .btn-info.disabled,
210 .btn-info[disabled],
211 fieldset[disabled] .btn-info,
212 .btn-info.disabled:hover,
213 .btn-info[disabled]:hover,
214 fieldset[disabled] .btn-info:hover,
215 .btn-info.disabled:focus,
216 .btn-info[disabled]:focus,
217 fieldset[disabled] .btn-info:focus,
218 .btn-info.disabled.focus,
219 .btn-info[disabled].focus,
220 fieldset[disabled] .btn-info.focus,
221 .btn-info.disabled:active,
222 .btn-info[disabled]:active,
223 fieldset[disabled] .btn-info:active,
224 .btn-info.disabled.active,
225 .btn-info[disabled].active,
226 fieldset[disabled] .btn-info.active {
227 background-color: #2aabd2;
228 background-image: none;
229 }
230 .btn-warning {
231 background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
232 background-image: -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
233 background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#eb9316));
234 background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);
235 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);
236 filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
237 background-repeat: repeat-x;
238 border-color: #e38d13;
239 }
240 .btn-warning:hover,
241 .btn-warning:focus {
242 background-color: #eb9316;
243 background-position: 0 -15px;
244 }
245 .btn-warning:active,
246 .btn-warning.active {
247 background-color: #eb9316;
248 border-color: #e38d13;
249 }
250 .btn-warning.disabled,
251 .btn-warning[disabled],
252 fieldset[disabled] .btn-warning,
253 .btn-warning.disabled:hover,
254 .btn-warning[disabled]:hover,
255 fieldset[disabled] .btn-warning:hover,
256 .btn-warning.disabled:focus,
257 .btn-warning[disabled]:focus,
258 fieldset[disabled] .btn-warning:focus,
259 .btn-warning.disabled.focus,
260 .btn-warning[disabled].focus,
261 fieldset[disabled] .btn-warning.focus,
262 .btn-warning.disabled:active,
263 .btn-warning[disabled]:active,
264 fieldset[disabled] .btn-warning:active,
265 .btn-warning.disabled.active,
266 .btn-warning[disabled].active,
267 fieldset[disabled] .btn-warning.active {
268 background-color: #eb9316;
269 background-image: none;
270 }
271 .btn-danger {
272 background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
273 background-image: -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
274 background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c12e2a));
275 background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);
276 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);
277 filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
278 background-repeat: repeat-x;
279 border-color: #b92c28;
280 }
281 .btn-danger:hover,
282 .btn-danger:focus {
283 background-color: #c12e2a;
284 background-position: 0 -15px;
285 }
286 .btn-danger:active,
287 .btn-danger.active {
288 background-color: #c12e2a;
289 border-color: #b92c28;
290 }
291 .btn-danger.disabled,
292 .btn-danger[disabled],
293 fieldset[disabled] .btn-danger,
294 .btn-danger.disabled:hover,
295 .btn-danger[disabled]:hover,
296 fieldset[disabled] .btn-danger:hover,
297 .btn-danger.disabled:focus,
298 .btn-danger[disabled]:focus,
299 fieldset[disabled] .btn-danger:focus,
300 .btn-danger.disabled.focus,
301 .btn-danger[disabled].focus,
302 fieldset[disabled] .btn-danger.focus,
303 .btn-danger.disabled:active,
304 .btn-danger[disabled]:active,
305 fieldset[disabled] .btn-danger:active,
306 .btn-danger.disabled.active,
307 .btn-danger[disabled].active,
308 fieldset[disabled] .btn-danger.active {
309 background-color: #c12e2a;
310 background-image: none;
311 }
312 .thumbnail,
313 .img-thumbnail {
314 -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
315 box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
316 }
317 .dropdown-menu > li > a:hover,
318 .dropdown-menu > li > a:focus {
319 background-color: #e8e8e8;
320 background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
321 background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
322 background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8));
323 background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
324 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
325 background-repeat: repeat-x;
326 }
327 .dropdown-menu > .active > a,
328 .dropdown-menu > .active > a:hover,
329 .dropdown-menu > .active > a:focus {
330 background-color: #2e6da4;
331 background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
332 background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
333 background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));
334 background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);
335 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);
336 background-repeat: repeat-x;
337 }
338 .navbar-default {
339 background-image: -webkit-linear-gradient(top, #fff 0%, #f8f8f8 100%);
340 background-image: -o-linear-gradient(top, #fff 0%, #f8f8f8 100%);
341 background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#f8f8f8));
342 background-image: linear-gradient(to bottom, #fff 0%, #f8f8f8 100%);
343 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);
344 filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
345 background-repeat: repeat-x;
346 border-radius: 4px;
347 -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);
348 box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);
349 }
350 .navbar-default .navbar-nav > .open > a,
351 .navbar-default .navbar-nav > .active > a {
352 background-image: -webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);
353 background-image: -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);
354 background-image: -webkit-gradient(linear, left top, left bottom, from(#dbdbdb), to(#e2e2e2));
355 background-image: linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%);
356 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);
357 background-repeat: repeat-x;
358 -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
359 box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
360 }
361 .navbar-brand,
362 .navbar-nav > li > a {
363 text-shadow: 0 1px 0 rgba(255, 255, 255, .25);
364 }
365 .navbar-inverse {
366 background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%);
367 background-image: -o-linear-gradient(top, #3c3c3c 0%, #222 100%);
368 background-image: -webkit-gradient(linear, left top, left bottom, from(#3c3c3c), to(#222));
369 background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%);
370 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);
371 filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
372 background-repeat: repeat-x;
373 border-radius: 4px;
374 }
375 .navbar-inverse .navbar-nav > .open > a,
376 .navbar-inverse .navbar-nav > .active > a {
377 background-image: -webkit-linear-gradient(top, #080808 0%, #0f0f0f 100%);
378 background-image: -o-linear-gradient(top, #080808 0%, #0f0f0f 100%);
379 background-image: -webkit-gradient(linear, left top, left bottom, from(#080808), to(#0f0f0f));
380 background-image: linear-gradient(to bottom, #080808 0%, #0f0f0f 100%);
381 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);
382 background-repeat: repeat-x;
383 -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
384 box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
385 }
386 .navbar-inverse .navbar-brand,
387 .navbar-inverse .navbar-nav > li > a {
388 text-shadow: 0 -1px 0 rgba(0, 0, 0, .25);
389 }
390 .navbar-static-top,
391 .navbar-fixed-top,
392 .navbar-fixed-bottom {
393 border-radius: 0;
394 }
395 @media (max-width: 767px) {
396 .navbar .navbar-nav .open .dropdown-menu > .active > a,
397 .navbar .navbar-nav .open .dropdown-menu > .active > a:hover,
398 .navbar .navbar-nav .open .dropdown-menu > .active > a:focus {
399 color: #fff;
400 background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
401 background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
402 background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));
403 background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);
404 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);
405 background-repeat: repeat-x;
406 }
407 }
408 .alert {
409 text-shadow: 0 1px 0 rgba(255, 255, 255, .2);
410 -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);
411 box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);
412 }
413 .alert-success {
414 background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
415 background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
416 background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#c8e5bc));
417 background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);
418 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);
419 background-repeat: repeat-x;
420 border-color: #b2dba1;
421 }
422 .alert-info {
423 background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
424 background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
425 background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#b9def0));
426 background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);
427 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);
428 background-repeat: repeat-x;
429 border-color: #9acfea;
430 }
431 .alert-warning {
432 background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
433 background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
434 background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#f8efc0));
435 background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);
436 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);
437 background-repeat: repeat-x;
438 border-color: #f5e79e;
439 }
440 .alert-danger {
441 background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
442 background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
443 background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#e7c3c3));
444 background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);
445 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);
446 background-repeat: repeat-x;
447 border-color: #dca7a7;
448 }
449 .progress {
450 background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
451 background-image: -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
452 background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#f5f5f5));
453 background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);
454 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);
455 background-repeat: repeat-x;
456 }
457 .progress-bar {
458 background-image: -webkit-linear-gradient(top, #337ab7 0%, #286090 100%);
459 background-image: -o-linear-gradient(top, #337ab7 0%, #286090 100%);
460 background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#286090));
461 background-image: linear-gradient(to bottom, #337ab7 0%, #286090 100%);
462 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);
463 background-repeat: repeat-x;
464 }
465 .progress-bar-success {
466 background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);
467 background-image: -o-linear-gradient(top, #5cb85c 0%, #449d44 100%);
468 background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#449d44));
469 background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);
470 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);
471 background-repeat: repeat-x;
472 }
473 .progress-bar-info {
474 background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
475 background-image: -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
476 background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#31b0d5));
477 background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);
478 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);
479 background-repeat: repeat-x;
480 }
481 .progress-bar-warning {
482 background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
483 background-image: -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
484 background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#ec971f));
485 background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);
486 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);
487 background-repeat: repeat-x;
488 }
489 .progress-bar-danger {
490 background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);
491 background-image: -o-linear-gradient(top, #d9534f 0%, #c9302c 100%);
492 background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c9302c));
493 background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);
494 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);
495 background-repeat: repeat-x;
496 }
497 .progress-bar-striped {
498 background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
499 background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
500 background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
501 }
502 .list-group {
503 border-radius: 4px;
504 -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
505 box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
506 }
507 .list-group-item.active,
508 .list-group-item.active:hover,
509 .list-group-item.active:focus {
510 text-shadow: 0 -1px 0 #286090;
511 background-image: -webkit-linear-gradient(top, #337ab7 0%, #2b669a 100%);
512 background-image: -o-linear-gradient(top, #337ab7 0%, #2b669a 100%);
513 background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2b669a));
514 background-image: linear-gradient(to bottom, #337ab7 0%, #2b669a 100%);
515 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);
516 background-repeat: repeat-x;
517 border-color: #2b669a;
518 }
519 .list-group-item.active .badge,
520 .list-group-item.active:hover .badge,
521 .list-group-item.active:focus .badge {
522 text-shadow: none;
523 }
524 .panel {
525 -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
526 box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
527 }
528 .panel-default > .panel-heading {
529 background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
530 background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
531 background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8));
532 background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
533 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
534 background-repeat: repeat-x;
535 }
536 .panel-primary > .panel-heading {
537 background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
538 background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
539 background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));
540 background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);
541 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);
542 background-repeat: repeat-x;
543 }
544 .panel-success > .panel-heading {
545 background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
546 background-image: -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
547 background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#d0e9c6));
548 background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);
549 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);
550 background-repeat: repeat-x;
551 }
552 .panel-info > .panel-heading {
553 background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
554 background-image: -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
555 background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#c4e3f3));
556 background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);
557 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);
558 background-repeat: repeat-x;
559 }
560 .panel-warning > .panel-heading {
561 background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
562 background-image: -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
563 background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#faf2cc));
564 background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);
565 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);
566 background-repeat: repeat-x;
567 }
568 .panel-danger > .panel-heading {
569 background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
570 background-image: -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
571 background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#ebcccc));
572 background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);
573 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);
574 background-repeat: repeat-x;
575 }
576 .well {
577 background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
578 background-image: -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
579 background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e8e8), to(#f5f5f5));
580 background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);
581 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);
582 background-repeat: repeat-x;
583 border-color: #dcdcdc;
584 -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);
585 box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);
586 }
587 /*# sourceMappingURL=bootstrap-theme.css.map */
1 {"version":3,"sources":["bootstrap-theme.css","less/theme.less","less/mixins/vendor-prefixes.less","less/mixins/gradients.less","less/mixins/reset-filter.less"],"names":[],"mappings":"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","file":"bootstrap-theme.css","sourcesContent":["/*!\n * Bootstrap v3.3.6 (http://getbootstrap.com)\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n.btn-default,\n.btn-primary,\n.btn-success,\n.btn-info,\n.btn-warning,\n.btn-danger {\n text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.btn-default:active,\n.btn-primary:active,\n.btn-success:active,\n.btn-info:active,\n.btn-warning:active,\n.btn-danger:active,\n.btn-default.active,\n.btn-primary.active,\n.btn-success.active,\n.btn-info.active,\n.btn-warning.active,\n.btn-danger.active {\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn-default.disabled,\n.btn-primary.disabled,\n.btn-success.disabled,\n.btn-info.disabled,\n.btn-warning.disabled,\n.btn-danger.disabled,\n.btn-default[disabled],\n.btn-primary[disabled],\n.btn-success[disabled],\n.btn-info[disabled],\n.btn-warning[disabled],\n.btn-danger[disabled],\nfieldset[disabled] .btn-default,\nfieldset[disabled] .btn-primary,\nfieldset[disabled] .btn-success,\nfieldset[disabled] .btn-info,\nfieldset[disabled] .btn-warning,\nfieldset[disabled] .btn-danger {\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn-default .badge,\n.btn-primary .badge,\n.btn-success .badge,\n.btn-info .badge,\n.btn-warning .badge,\n.btn-danger .badge {\n text-shadow: none;\n}\n.btn:active,\n.btn.active {\n background-image: none;\n}\n.btn-default {\n background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%);\n background-image: -o-linear-gradient(top, #fff 0%, #e0e0e0 100%);\n background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #dbdbdb;\n text-shadow: 0 1px 0 #fff;\n border-color: #ccc;\n}\n.btn-default:hover,\n.btn-default:focus {\n background-color: #e0e0e0;\n background-position: 0 -15px;\n}\n.btn-default:active,\n.btn-default.active {\n background-color: #e0e0e0;\n border-color: #dbdbdb;\n}\n.btn-default.disabled,\n.btn-default[disabled],\nfieldset[disabled] .btn-default,\n.btn-default.disabled:hover,\n.btn-default[disabled]:hover,\nfieldset[disabled] .btn-default:hover,\n.btn-default.disabled:focus,\n.btn-default[disabled]:focus,\nfieldset[disabled] .btn-default:focus,\n.btn-default.disabled.focus,\n.btn-default[disabled].focus,\nfieldset[disabled] .btn-default.focus,\n.btn-default.disabled:active,\n.btn-default[disabled]:active,\nfieldset[disabled] .btn-default:active,\n.btn-default.disabled.active,\n.btn-default[disabled].active,\nfieldset[disabled] .btn-default.active {\n background-color: #e0e0e0;\n background-image: none;\n}\n.btn-primary {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #265a88 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #265a88 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #265a88 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #245580;\n}\n.btn-primary:hover,\n.btn-primary:focus {\n background-color: #265a88;\n background-position: 0 -15px;\n}\n.btn-primary:active,\n.btn-primary.active {\n background-color: #265a88;\n border-color: #245580;\n}\n.btn-primary.disabled,\n.btn-primary[disabled],\nfieldset[disabled] .btn-primary,\n.btn-primary.disabled:hover,\n.btn-primary[disabled]:hover,\nfieldset[disabled] .btn-primary:hover,\n.btn-primary.disabled:focus,\n.btn-primary[disabled]:focus,\nfieldset[disabled] .btn-primary:focus,\n.btn-primary.disabled.focus,\n.btn-primary[disabled].focus,\nfieldset[disabled] .btn-primary.focus,\n.btn-primary.disabled:active,\n.btn-primary[disabled]:active,\nfieldset[disabled] .btn-primary:active,\n.btn-primary.disabled.active,\n.btn-primary[disabled].active,\nfieldset[disabled] .btn-primary.active {\n background-color: #265a88;\n background-image: none;\n}\n.btn-success {\n background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);\n background-image: -o-linear-gradient(top, #5cb85c 0%, #419641 100%);\n background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #3e8f3e;\n}\n.btn-success:hover,\n.btn-success:focus {\n background-color: #419641;\n background-position: 0 -15px;\n}\n.btn-success:active,\n.btn-success.active {\n background-color: #419641;\n border-color: #3e8f3e;\n}\n.btn-success.disabled,\n.btn-success[disabled],\nfieldset[disabled] .btn-success,\n.btn-success.disabled:hover,\n.btn-success[disabled]:hover,\nfieldset[disabled] .btn-success:hover,\n.btn-success.disabled:focus,\n.btn-success[disabled]:focus,\nfieldset[disabled] .btn-success:focus,\n.btn-success.disabled.focus,\n.btn-success[disabled].focus,\nfieldset[disabled] .btn-success.focus,\n.btn-success.disabled:active,\n.btn-success[disabled]:active,\nfieldset[disabled] .btn-success:active,\n.btn-success.disabled.active,\n.btn-success[disabled].active,\nfieldset[disabled] .btn-success.active {\n background-color: #419641;\n background-image: none;\n}\n.btn-info {\n background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);\n background-image: -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);\n background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #28a4c9;\n}\n.btn-info:hover,\n.btn-info:focus {\n background-color: #2aabd2;\n background-position: 0 -15px;\n}\n.btn-info:active,\n.btn-info.active {\n background-color: #2aabd2;\n border-color: #28a4c9;\n}\n.btn-info.disabled,\n.btn-info[disabled],\nfieldset[disabled] .btn-info,\n.btn-info.disabled:hover,\n.btn-info[disabled]:hover,\nfieldset[disabled] .btn-info:hover,\n.btn-info.disabled:focus,\n.btn-info[disabled]:focus,\nfieldset[disabled] .btn-info:focus,\n.btn-info.disabled.focus,\n.btn-info[disabled].focus,\nfieldset[disabled] .btn-info.focus,\n.btn-info.disabled:active,\n.btn-info[disabled]:active,\nfieldset[disabled] .btn-info:active,\n.btn-info.disabled.active,\n.btn-info[disabled].active,\nfieldset[disabled] .btn-info.active {\n background-color: #2aabd2;\n background-image: none;\n}\n.btn-warning {\n background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);\n background-image: -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);\n background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #e38d13;\n}\n.btn-warning:hover,\n.btn-warning:focus {\n background-color: #eb9316;\n background-position: 0 -15px;\n}\n.btn-warning:active,\n.btn-warning.active {\n background-color: #eb9316;\n border-color: #e38d13;\n}\n.btn-warning.disabled,\n.btn-warning[disabled],\nfieldset[disabled] .btn-warning,\n.btn-warning.disabled:hover,\n.btn-warning[disabled]:hover,\nfieldset[disabled] .btn-warning:hover,\n.btn-warning.disabled:focus,\n.btn-warning[disabled]:focus,\nfieldset[disabled] .btn-warning:focus,\n.btn-warning.disabled.focus,\n.btn-warning[disabled].focus,\nfieldset[disabled] .btn-warning.focus,\n.btn-warning.disabled:active,\n.btn-warning[disabled]:active,\nfieldset[disabled] .btn-warning:active,\n.btn-warning.disabled.active,\n.btn-warning[disabled].active,\nfieldset[disabled] .btn-warning.active {\n background-color: #eb9316;\n background-image: none;\n}\n.btn-danger {\n background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);\n background-image: -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%);\n background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #b92c28;\n}\n.btn-danger:hover,\n.btn-danger:focus {\n background-color: #c12e2a;\n background-position: 0 -15px;\n}\n.btn-danger:active,\n.btn-danger.active {\n background-color: #c12e2a;\n border-color: #b92c28;\n}\n.btn-danger.disabled,\n.btn-danger[disabled],\nfieldset[disabled] .btn-danger,\n.btn-danger.disabled:hover,\n.btn-danger[disabled]:hover,\nfieldset[disabled] .btn-danger:hover,\n.btn-danger.disabled:focus,\n.btn-danger[disabled]:focus,\nfieldset[disabled] .btn-danger:focus,\n.btn-danger.disabled.focus,\n.btn-danger[disabled].focus,\nfieldset[disabled] .btn-danger.focus,\n.btn-danger.disabled:active,\n.btn-danger[disabled]:active,\nfieldset[disabled] .btn-danger:active,\n.btn-danger.disabled.active,\n.btn-danger[disabled].active,\nfieldset[disabled] .btn-danger.active {\n background-color: #c12e2a;\n background-image: none;\n}\n.thumbnail,\n.img-thumbnail {\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n}\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);\n background-color: #e8e8e8;\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n background-color: #2e6da4;\n}\n.navbar-default {\n background-image: -webkit-linear-gradient(top, #ffffff 0%, #f8f8f8 100%);\n background-image: -o-linear-gradient(top, #ffffff 0%, #f8f8f8 100%);\n background-image: linear-gradient(to bottom, #ffffff 0%, #f8f8f8 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);\n}\n.navbar-default .navbar-nav > .open > a,\n.navbar-default .navbar-nav > .active > a {\n background-image: -webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);\n background-image: -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);\n background-image: linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);\n -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);\n}\n.navbar-brand,\n.navbar-nav > li > a {\n text-shadow: 0 1px 0 rgba(255, 255, 255, 0.25);\n}\n.navbar-inverse {\n background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%);\n background-image: -o-linear-gradient(top, #3c3c3c 0%, #222 100%);\n background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n border-radius: 4px;\n}\n.navbar-inverse .navbar-nav > .open > a,\n.navbar-inverse .navbar-nav > .active > a {\n background-image: -webkit-linear-gradient(top, #080808 0%, #0f0f0f 100%);\n background-image: -o-linear-gradient(top, #080808 0%, #0f0f0f 100%);\n background-image: linear-gradient(to bottom, #080808 0%, #0f0f0f 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);\n -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);\n box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);\n}\n.navbar-inverse .navbar-brand,\n.navbar-inverse .navbar-nav > li > a {\n text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\n.navbar-static-top,\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n border-radius: 0;\n}\n@media (max-width: 767px) {\n .navbar .navbar-nav .open .dropdown-menu > .active > a,\n .navbar .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #fff;\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n }\n}\n.alert {\n text-shadow: 0 1px 0 rgba(255, 255, 255, 0.2);\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n.alert-success {\n background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);\n background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);\n background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);\n border-color: #b2dba1;\n}\n.alert-info {\n background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);\n background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%);\n background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);\n border-color: #9acfea;\n}\n.alert-warning {\n background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);\n background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);\n background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);\n border-color: #f5e79e;\n}\n.alert-danger {\n background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);\n background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);\n background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);\n border-color: #dca7a7;\n}\n.progress {\n background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);\n background-image: -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);\n background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);\n}\n.progress-bar {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #286090 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #286090 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #286090 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);\n}\n.progress-bar-success {\n background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);\n background-image: -o-linear-gradient(top, #5cb85c 0%, #449d44 100%);\n background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);\n}\n.progress-bar-info {\n background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);\n background-image: -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);\n background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);\n}\n.progress-bar-warning {\n background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);\n background-image: -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);\n background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);\n}\n.progress-bar-danger {\n background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);\n background-image: -o-linear-gradient(top, #d9534f 0%, #c9302c 100%);\n background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);\n}\n.progress-bar-striped {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.list-group {\n border-radius: 4px;\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n text-shadow: 0 -1px 0 #286090;\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2b669a 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2b669a 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2b669a 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);\n border-color: #2b669a;\n}\n.list-group-item.active .badge,\n.list-group-item.active:hover .badge,\n.list-group-item.active:focus .badge {\n text-shadow: none;\n}\n.panel {\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n.panel-default > .panel-heading {\n background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);\n}\n.panel-primary > .panel-heading {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n}\n.panel-success > .panel-heading {\n background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);\n background-image: -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);\n background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);\n}\n.panel-info > .panel-heading {\n background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);\n background-image: -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);\n background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);\n}\n.panel-warning > .panel-heading {\n background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);\n background-image: -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);\n background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);\n}\n.panel-danger > .panel-heading {\n background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);\n background-image: -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%);\n background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);\n}\n.well {\n background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);\n background-image: -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);\n background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);\n border-color: #dcdcdc;\n -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);\n box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);\n}\n/*# sourceMappingURL=bootstrap-theme.css.map */","/*!\n * Bootstrap v3.3.6 (http://getbootstrap.com)\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\n//\n// Load core variables and mixins\n// --------------------------------------------------\n\n@import \"variables.less\";\n@import \"mixins.less\";\n\n\n//\n// Buttons\n// --------------------------------------------------\n\n// Common styles\n.btn-default,\n.btn-primary,\n.btn-success,\n.btn-info,\n.btn-warning,\n.btn-danger {\n text-shadow: 0 -1px 0 rgba(0,0,0,.2);\n @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 1px rgba(0,0,0,.075);\n .box-shadow(@shadow);\n\n // Reset the shadow\n &:active,\n &.active {\n .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));\n }\n\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n .box-shadow(none);\n }\n\n .badge {\n text-shadow: none;\n }\n}\n\n// Mixin for generating new styles\n.btn-styles(@btn-color: #555) {\n #gradient > .vertical(@start-color: @btn-color; @end-color: darken(@btn-color, 12%));\n .reset-filter(); // Disable gradients for IE9 because filter bleeds through rounded corners; see https://github.com/twbs/bootstrap/issues/10620\n background-repeat: repeat-x;\n border-color: darken(@btn-color, 14%);\n\n &:hover,\n &:focus {\n background-color: darken(@btn-color, 12%);\n background-position: 0 -15px;\n }\n\n &:active,\n &.active {\n background-color: darken(@btn-color, 12%);\n border-color: darken(@btn-color, 14%);\n }\n\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n &,\n &:hover,\n &:focus,\n &.focus,\n &:active,\n &.active {\n background-color: darken(@btn-color, 12%);\n background-image: none;\n }\n }\n}\n\n// Common styles\n.btn {\n // Remove the gradient for the pressed/active state\n &:active,\n &.active {\n background-image: none;\n }\n}\n\n// Apply the mixin to the buttons\n.btn-default { .btn-styles(@btn-default-bg); text-shadow: 0 1px 0 #fff; border-color: #ccc; }\n.btn-primary { .btn-styles(@btn-primary-bg); }\n.btn-success { .btn-styles(@btn-success-bg); }\n.btn-info { .btn-styles(@btn-info-bg); }\n.btn-warning { .btn-styles(@btn-warning-bg); }\n.btn-danger { .btn-styles(@btn-danger-bg); }\n\n\n//\n// Images\n// --------------------------------------------------\n\n.thumbnail,\n.img-thumbnail {\n .box-shadow(0 1px 2px rgba(0,0,0,.075));\n}\n\n\n//\n// Dropdowns\n// --------------------------------------------------\n\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n #gradient > .vertical(@start-color: @dropdown-link-hover-bg; @end-color: darken(@dropdown-link-hover-bg, 5%));\n background-color: darken(@dropdown-link-hover-bg, 5%);\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));\n background-color: darken(@dropdown-link-active-bg, 5%);\n}\n\n\n//\n// Navbar\n// --------------------------------------------------\n\n// Default navbar\n.navbar-default {\n #gradient > .vertical(@start-color: lighten(@navbar-default-bg, 10%); @end-color: @navbar-default-bg);\n .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered\n border-radius: @navbar-border-radius;\n @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 5px rgba(0,0,0,.075);\n .box-shadow(@shadow);\n\n .navbar-nav > .open > a,\n .navbar-nav > .active > a {\n #gradient > .vertical(@start-color: darken(@navbar-default-link-active-bg, 5%); @end-color: darken(@navbar-default-link-active-bg, 2%));\n .box-shadow(inset 0 3px 9px rgba(0,0,0,.075));\n }\n}\n.navbar-brand,\n.navbar-nav > li > a {\n text-shadow: 0 1px 0 rgba(255,255,255,.25);\n}\n\n// Inverted navbar\n.navbar-inverse {\n #gradient > .vertical(@start-color: lighten(@navbar-inverse-bg, 10%); @end-color: @navbar-inverse-bg);\n .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered; see https://github.com/twbs/bootstrap/issues/10257\n border-radius: @navbar-border-radius;\n .navbar-nav > .open > a,\n .navbar-nav > .active > a {\n #gradient > .vertical(@start-color: @navbar-inverse-link-active-bg; @end-color: lighten(@navbar-inverse-link-active-bg, 2.5%));\n .box-shadow(inset 0 3px 9px rgba(0,0,0,.25));\n }\n\n .navbar-brand,\n .navbar-nav > li > a {\n text-shadow: 0 -1px 0 rgba(0,0,0,.25);\n }\n}\n\n// Undo rounded corners in static and fixed navbars\n.navbar-static-top,\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n border-radius: 0;\n}\n\n// Fix active state of dropdown items in collapsed mode\n@media (max-width: @grid-float-breakpoint-max) {\n .navbar .navbar-nav .open .dropdown-menu > .active > a {\n &,\n &:hover,\n &:focus {\n color: #fff;\n #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));\n }\n }\n}\n\n\n//\n// Alerts\n// --------------------------------------------------\n\n// Common styles\n.alert {\n text-shadow: 0 1px 0 rgba(255,255,255,.2);\n @shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 2px rgba(0,0,0,.05);\n .box-shadow(@shadow);\n}\n\n// Mixin for generating new styles\n.alert-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 7.5%));\n border-color: darken(@color, 15%);\n}\n\n// Apply the mixin to the alerts\n.alert-success { .alert-styles(@alert-success-bg); }\n.alert-info { .alert-styles(@alert-info-bg); }\n.alert-warning { .alert-styles(@alert-warning-bg); }\n.alert-danger { .alert-styles(@alert-danger-bg); }\n\n\n//\n// Progress bars\n// --------------------------------------------------\n\n// Give the progress background some depth\n.progress {\n #gradient > .vertical(@start-color: darken(@progress-bg, 4%); @end-color: @progress-bg)\n}\n\n// Mixin for generating new styles\n.progress-bar-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 10%));\n}\n\n// Apply the mixin to the progress bars\n.progress-bar { .progress-bar-styles(@progress-bar-bg); }\n.progress-bar-success { .progress-bar-styles(@progress-bar-success-bg); }\n.progress-bar-info { .progress-bar-styles(@progress-bar-info-bg); }\n.progress-bar-warning { .progress-bar-styles(@progress-bar-warning-bg); }\n.progress-bar-danger { .progress-bar-styles(@progress-bar-danger-bg); }\n\n// Reset the striped class because our mixins don't do multiple gradients and\n// the above custom styles override the new `.progress-bar-striped` in v3.2.0.\n.progress-bar-striped {\n #gradient > .striped();\n}\n\n\n//\n// List groups\n// --------------------------------------------------\n\n.list-group {\n border-radius: @border-radius-base;\n .box-shadow(0 1px 2px rgba(0,0,0,.075));\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n text-shadow: 0 -1px 0 darken(@list-group-active-bg, 10%);\n #gradient > .vertical(@start-color: @list-group-active-bg; @end-color: darken(@list-group-active-bg, 7.5%));\n border-color: darken(@list-group-active-border, 7.5%);\n\n .badge {\n text-shadow: none;\n }\n}\n\n\n//\n// Panels\n// --------------------------------------------------\n\n// Common styles\n.panel {\n .box-shadow(0 1px 2px rgba(0,0,0,.05));\n}\n\n// Mixin for generating new styles\n.panel-heading-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 5%));\n}\n\n// Apply the mixin to the panel headings only\n.panel-default > .panel-heading { .panel-heading-styles(@panel-default-heading-bg); }\n.panel-primary > .panel-heading { .panel-heading-styles(@panel-primary-heading-bg); }\n.panel-success > .panel-heading { .panel-heading-styles(@panel-success-heading-bg); }\n.panel-info > .panel-heading { .panel-heading-styles(@panel-info-heading-bg); }\n.panel-warning > .panel-heading { .panel-heading-styles(@panel-warning-heading-bg); }\n.panel-danger > .panel-heading { .panel-heading-styles(@panel-danger-heading-bg); }\n\n\n//\n// Wells\n// --------------------------------------------------\n\n.well {\n #gradient > .vertical(@start-color: darken(@well-bg, 5%); @end-color: @well-bg);\n border-color: darken(@well-bg, 10%);\n @shadow: inset 0 1px 3px rgba(0,0,0,.05), 0 1px 0 rgba(255,255,255,.1);\n .box-shadow(@shadow);\n}\n","// Vendor Prefixes\n//\n// All vendor mixins are deprecated as of v3.2.0 due to the introduction of\n// Autoprefixer in our Gruntfile. They have been removed in v4.\n\n// - Animations\n// - Backface visibility\n// - Box shadow\n// - Box sizing\n// - Content columns\n// - Hyphens\n// - Placeholder text\n// - Transformations\n// - Transitions\n// - User Select\n\n\n// Animations\n.animation(@animation) {\n -webkit-animation: @animation;\n -o-animation: @animation;\n animation: @animation;\n}\n.animation-name(@name) {\n -webkit-animation-name: @name;\n animation-name: @name;\n}\n.animation-duration(@duration) {\n -webkit-animation-duration: @duration;\n animation-duration: @duration;\n}\n.animation-timing-function(@timing-function) {\n -webkit-animation-timing-function: @timing-function;\n animation-timing-function: @timing-function;\n}\n.animation-delay(@delay) {\n -webkit-animation-delay: @delay;\n animation-delay: @delay;\n}\n.animation-iteration-count(@iteration-count) {\n -webkit-animation-iteration-count: @iteration-count;\n animation-iteration-count: @iteration-count;\n}\n.animation-direction(@direction) {\n -webkit-animation-direction: @direction;\n animation-direction: @direction;\n}\n.animation-fill-mode(@fill-mode) {\n -webkit-animation-fill-mode: @fill-mode;\n animation-fill-mode: @fill-mode;\n}\n\n// Backface visibility\n// Prevent browsers from flickering when using CSS 3D transforms.\n// Default value is `visible`, but can be changed to `hidden`\n\n.backface-visibility(@visibility) {\n -webkit-backface-visibility: @visibility;\n -moz-backface-visibility: @visibility;\n backface-visibility: @visibility;\n}\n\n// Drop shadows\n//\n// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's\n// supported browsers that have box shadow capabilities now support it.\n\n.box-shadow(@shadow) {\n -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1\n box-shadow: @shadow;\n}\n\n// Box sizing\n.box-sizing(@boxmodel) {\n -webkit-box-sizing: @boxmodel;\n -moz-box-sizing: @boxmodel;\n box-sizing: @boxmodel;\n}\n\n// CSS3 Content Columns\n.content-columns(@column-count; @column-gap: @grid-gutter-width) {\n -webkit-column-count: @column-count;\n -moz-column-count: @column-count;\n column-count: @column-count;\n -webkit-column-gap: @column-gap;\n -moz-column-gap: @column-gap;\n column-gap: @column-gap;\n}\n\n// Optional hyphenation\n.hyphens(@mode: auto) {\n word-wrap: break-word;\n -webkit-hyphens: @mode;\n -moz-hyphens: @mode;\n -ms-hyphens: @mode; // IE10+\n -o-hyphens: @mode;\n hyphens: @mode;\n}\n\n// Placeholder text\n.placeholder(@color: @input-color-placeholder) {\n // Firefox\n &::-moz-placeholder {\n color: @color;\n opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526\n }\n &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+\n &::-webkit-input-placeholder { color: @color; } // Safari and Chrome\n}\n\n// Transformations\n.scale(@ratio) {\n -webkit-transform: scale(@ratio);\n -ms-transform: scale(@ratio); // IE9 only\n -o-transform: scale(@ratio);\n transform: scale(@ratio);\n}\n.scale(@ratioX; @ratioY) {\n -webkit-transform: scale(@ratioX, @ratioY);\n -ms-transform: scale(@ratioX, @ratioY); // IE9 only\n -o-transform: scale(@ratioX, @ratioY);\n transform: scale(@ratioX, @ratioY);\n}\n.scaleX(@ratio) {\n -webkit-transform: scaleX(@ratio);\n -ms-transform: scaleX(@ratio); // IE9 only\n -o-transform: scaleX(@ratio);\n transform: scaleX(@ratio);\n}\n.scaleY(@ratio) {\n -webkit-transform: scaleY(@ratio);\n -ms-transform: scaleY(@ratio); // IE9 only\n -o-transform: scaleY(@ratio);\n transform: scaleY(@ratio);\n}\n.skew(@x; @y) {\n -webkit-transform: skewX(@x) skewY(@y);\n -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+\n -o-transform: skewX(@x) skewY(@y);\n transform: skewX(@x) skewY(@y);\n}\n.translate(@x; @y) {\n -webkit-transform: translate(@x, @y);\n -ms-transform: translate(@x, @y); // IE9 only\n -o-transform: translate(@x, @y);\n transform: translate(@x, @y);\n}\n.translate3d(@x; @y; @z) {\n -webkit-transform: translate3d(@x, @y, @z);\n transform: translate3d(@x, @y, @z);\n}\n.rotate(@degrees) {\n -webkit-transform: rotate(@degrees);\n -ms-transform: rotate(@degrees); // IE9 only\n -o-transform: rotate(@degrees);\n transform: rotate(@degrees);\n}\n.rotateX(@degrees) {\n -webkit-transform: rotateX(@degrees);\n -ms-transform: rotateX(@degrees); // IE9 only\n -o-transform: rotateX(@degrees);\n transform: rotateX(@degrees);\n}\n.rotateY(@degrees) {\n -webkit-transform: rotateY(@degrees);\n -ms-transform: rotateY(@degrees); // IE9 only\n -o-transform: rotateY(@degrees);\n transform: rotateY(@degrees);\n}\n.perspective(@perspective) {\n -webkit-perspective: @perspective;\n -moz-perspective: @perspective;\n perspective: @perspective;\n}\n.perspective-origin(@perspective) {\n -webkit-perspective-origin: @perspective;\n -moz-perspective-origin: @perspective;\n perspective-origin: @perspective;\n}\n.transform-origin(@origin) {\n -webkit-transform-origin: @origin;\n -moz-transform-origin: @origin;\n -ms-transform-origin: @origin; // IE9 only\n transform-origin: @origin;\n}\n\n\n// Transitions\n\n.transition(@transition) {\n -webkit-transition: @transition;\n -o-transition: @transition;\n transition: @transition;\n}\n.transition-property(@transition-property) {\n -webkit-transition-property: @transition-property;\n transition-property: @transition-property;\n}\n.transition-delay(@transition-delay) {\n -webkit-transition-delay: @transition-delay;\n transition-delay: @transition-delay;\n}\n.transition-duration(@transition-duration) {\n -webkit-transition-duration: @transition-duration;\n transition-duration: @transition-duration;\n}\n.transition-timing-function(@timing-function) {\n -webkit-transition-timing-function: @timing-function;\n transition-timing-function: @timing-function;\n}\n.transition-transform(@transition) {\n -webkit-transition: -webkit-transform @transition;\n -moz-transition: -moz-transform @transition;\n -o-transition: -o-transform @transition;\n transition: transform @transition;\n}\n\n\n// User select\n// For selecting text on the page\n\n.user-select(@select) {\n -webkit-user-select: @select;\n -moz-user-select: @select;\n -ms-user-select: @select; // IE10+\n user-select: @select;\n}\n","// Gradients\n\n#gradient {\n\n // Horizontal gradient, from left to right\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n // Vertical gradient, from top to bottom\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {\n background-repeat: repeat-x;\n background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(@deg, @start-color, @end-color); // Opera 12\n background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n }\n .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .radial(@inner-color: #555; @outer-color: #333) {\n background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);\n background-image: radial-gradient(circle, @inner-color, @outer-color);\n background-repeat: no-repeat;\n }\n .striped(@color: rgba(255,255,255,.15); @angle: 45deg) {\n background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n }\n}\n","// Reset filters for IE\n//\n// When you need to remove a gradient background, do not forget to use this to reset\n// the IE filter for IE9 and below.\n\n.reset-filter() {\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(enabled = false)\"));\n}\n"]}
...\ No newline at end of file ...\ No newline at end of file
1 /*!
2 * Bootstrap v3.3.6 (http://getbootstrap.com)
3 * Copyright 2011-2015 Twitter, Inc.
4 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5 */.btn-danger,.btn-default,.btn-info,.btn-primary,.btn-success,.btn-warning{text-shadow:0 -1px 0 rgba(0,0,0,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-danger.active,.btn-danger:active,.btn-default.active,.btn-default:active,.btn-info.active,.btn-info:active,.btn-primary.active,.btn-primary:active,.btn-success.active,.btn-success:active,.btn-warning.active,.btn-warning:active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-danger.disabled,.btn-danger[disabled],.btn-default.disabled,.btn-default[disabled],.btn-info.disabled,.btn-info[disabled],.btn-primary.disabled,.btn-primary[disabled],.btn-success.disabled,.btn-success[disabled],.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-danger,fieldset[disabled] .btn-default,fieldset[disabled] .btn-info,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-success,fieldset[disabled] .btn-warning{-webkit-box-shadow:none;box-shadow:none}.btn-danger .badge,.btn-default .badge,.btn-info .badge,.btn-primary .badge,.btn-success .badge,.btn-warning .badge{text-shadow:none}.btn.active,.btn:active{background-image:none}.btn-default{text-shadow:0 1px 0 #fff;background-image:-webkit-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-o-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e0e0e0));background-image:linear-gradient(to bottom,#fff 0,#e0e0e0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#dbdbdb;border-color:#ccc}.btn-default:focus,.btn-default:hover{background-color:#e0e0e0;background-position:0 -15px}.btn-default.active,.btn-default:active{background-color:#e0e0e0;border-color:#dbdbdb}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled.focus,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled].focus,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#e0e0e0;background-image:none}.btn-primary{background-image:-webkit-linear-gradient(top,#337ab7 0,#265a88 100%);background-image:-o-linear-gradient(top,#337ab7 0,#265a88 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#265a88));background-image:linear-gradient(to bottom,#337ab7 0,#265a88 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#245580}.btn-primary:focus,.btn-primary:hover{background-color:#265a88;background-position:0 -15px}.btn-primary.active,.btn-primary:active{background-color:#265a88;border-color:#245580}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled.focus,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled].focus,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#265a88;background-image:none}.btn-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#419641));background-image:linear-gradient(to bottom,#5cb85c 0,#419641 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#3e8f3e}.btn-success:focus,.btn-success:hover{background-color:#419641;background-position:0 -15px}.btn-success.active,.btn-success:active{background-color:#419641;border-color:#3e8f3e}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled.focus,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled].focus,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#419641;background-image:none}.btn-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#2aabd2));background-image:linear-gradient(to bottom,#5bc0de 0,#2aabd2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#28a4c9}.btn-info:focus,.btn-info:hover{background-color:#2aabd2;background-position:0 -15px}.btn-info.active,.btn-info:active{background-color:#2aabd2;border-color:#28a4c9}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled.focus,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled].focus,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#2aabd2;background-image:none}.btn-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#eb9316));background-image:linear-gradient(to bottom,#f0ad4e 0,#eb9316 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#e38d13}.btn-warning:focus,.btn-warning:hover{background-color:#eb9316;background-position:0 -15px}.btn-warning.active,.btn-warning:active{background-color:#eb9316;border-color:#e38d13}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled.focus,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled].focus,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#eb9316;background-image:none}.btn-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c12e2a));background-image:linear-gradient(to bottom,#d9534f 0,#c12e2a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#b92c28}.btn-danger:focus,.btn-danger:hover{background-color:#c12e2a;background-position:0 -15px}.btn-danger.active,.btn-danger:active{background-color:#c12e2a;border-color:#b92c28}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled.focus,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled].focus,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#c12e2a;background-image:none}.img-thumbnail,.thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{background-color:#e8e8e8;background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{background-color:#2e6da4;background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}.navbar-default{background-image:-webkit-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-o-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#f8f8f8));background-image:linear-gradient(to bottom,#fff 0,#f8f8f8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075)}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.open>a{background-image:-webkit-linear-gradient(top,#dbdbdb 0,#e2e2e2 100%);background-image:-o-linear-gradient(top,#dbdbdb 0,#e2e2e2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dbdbdb),to(#e2e2e2));background-image:linear-gradient(to bottom,#dbdbdb 0,#e2e2e2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.075);box-shadow:inset 0 3px 9px rgba(0,0,0,.075)}.navbar-brand,.navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,.25)}.navbar-inverse{background-image:-webkit-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-o-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#3c3c3c),to(#222));background-image:linear-gradient(to bottom,#3c3c3c 0,#222 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-radius:4px}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.open>a{background-image:-webkit-linear-gradient(top,#080808 0,#0f0f0f 100%);background-image:-o-linear-gradient(top,#080808 0,#0f0f0f 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#080808),to(#0f0f0f));background-image:linear-gradient(to bottom,#080808 0,#0f0f0f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.25);box-shadow:inset 0 3px 9px rgba(0,0,0,.25)}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,.25)}.navbar-fixed-bottom,.navbar-fixed-top,.navbar-static-top{border-radius:0}@media (max-width:767px){.navbar .navbar-nav .open .dropdown-menu>.active>a,.navbar .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}}.alert{text-shadow:0 1px 0 rgba(255,255,255,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05)}.alert-success{background-image:-webkit-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#c8e5bc));background-image:linear-gradient(to bottom,#dff0d8 0,#c8e5bc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);background-repeat:repeat-x;border-color:#b2dba1}.alert-info{background-image:-webkit-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#b9def0));background-image:linear-gradient(to bottom,#d9edf7 0,#b9def0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);background-repeat:repeat-x;border-color:#9acfea}.alert-warning{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#f8efc0));background-image:linear-gradient(to bottom,#fcf8e3 0,#f8efc0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);background-repeat:repeat-x;border-color:#f5e79e}.alert-danger{background-image:-webkit-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-o-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#e7c3c3));background-image:linear-gradient(to bottom,#f2dede 0,#e7c3c3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);background-repeat:repeat-x;border-color:#dca7a7}.progress{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#f5f5f5));background-image:linear-gradient(to bottom,#ebebeb 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x}.progress-bar{background-image:-webkit-linear-gradient(top,#337ab7 0,#286090 100%);background-image:-o-linear-gradient(top,#337ab7 0,#286090 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#286090));background-image:linear-gradient(to bottom,#337ab7 0,#286090 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);background-repeat:repeat-x}.progress-bar-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#449d44));background-image:linear-gradient(to bottom,#5cb85c 0,#449d44 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);background-repeat:repeat-x}.progress-bar-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#31b0d5));background-image:linear-gradient(to bottom,#5bc0de 0,#31b0d5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);background-repeat:repeat-x}.progress-bar-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#ec971f));background-image:linear-gradient(to bottom,#f0ad4e 0,#ec971f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);background-repeat:repeat-x}.progress-bar-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c9302c));background-image:linear-gradient(to bottom,#d9534f 0,#c9302c 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);background-repeat:repeat-x}.progress-bar-striped{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.list-group{border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{text-shadow:0 -1px 0 #286090;background-image:-webkit-linear-gradient(top,#337ab7 0,#2b669a 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2b669a 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2b669a));background-image:linear-gradient(to bottom,#337ab7 0,#2b669a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);background-repeat:repeat-x;border-color:#2b669a}.list-group-item.active .badge,.list-group-item.active:focus .badge,.list-group-item.active:hover .badge{text-shadow:none}.panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.05);box-shadow:0 1px 2px rgba(0,0,0,.05)}.panel-default>.panel-heading{background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x}.panel-primary>.panel-heading{background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}.panel-success>.panel-heading{background-image:-webkit-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#d0e9c6));background-image:linear-gradient(to bottom,#dff0d8 0,#d0e9c6 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);background-repeat:repeat-x}.panel-info>.panel-heading{background-image:-webkit-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#c4e3f3));background-image:linear-gradient(to bottom,#d9edf7 0,#c4e3f3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);background-repeat:repeat-x}.panel-warning>.panel-heading{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#faf2cc));background-image:linear-gradient(to bottom,#fcf8e3 0,#faf2cc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);background-repeat:repeat-x}.panel-danger>.panel-heading{background-image:-webkit-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-o-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#ebcccc));background-image:linear-gradient(to bottom,#f2dede 0,#ebcccc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);background-repeat:repeat-x}.well{background-image:-webkit-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#e8e8e8),to(#f5f5f5));background-image:linear-gradient(to bottom,#e8e8e8 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x;border-color:#dcdcdc;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1)}
6 /*# sourceMappingURL=bootstrap-theme.min.css.map */
...\ No newline at end of file ...\ No newline at end of file
1 {"version":3,"sources":["less/theme.less","less/mixins/vendor-prefixes.less","less/mixins/gradients.less","less/mixins/reset-filter.less"],"names":[],"mappings":"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"}
...\ No newline at end of file ...\ No newline at end of file
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
1 {"version":3,"sources":["less/normalize.less","less/print.less","bootstrap.css","dist/css/bootstrap.css","less/glyphicons.less","less/scaffolding.less","less/mixins/vendor-prefixes.less","less/mixins/tab-focus.less","less/mixins/image.less","less/type.less","less/mixins/text-emphasis.less","less/mixins/background-variant.less","less/mixins/text-overflow.less","less/code.less","less/grid.less","less/mixins/grid.less","less/mixins/grid-framework.less","less/tables.less","less/mixins/table-row.less","less/forms.less","less/mixins/forms.less","less/buttons.less","less/mixins/buttons.less","less/mixins/opacity.less","less/component-animations.less","less/dropdowns.less","less/mixins/nav-divider.less","less/mixins/reset-filter.less","less/button-groups.less","less/mixins/border-radius.less","less/input-groups.less","less/navs.less","less/navbar.less","less/mixins/nav-vertical-align.less","less/utilities.less","less/breadcrumbs.less","less/pagination.less","less/mixins/pagination.less","less/pager.less","less/labels.less","less/mixins/labels.less","less/badges.less","less/jumbotron.less","less/thumbnails.less","less/alerts.less","less/mixins/alerts.less","less/progress-bars.less","less/mixins/gradients.less","less/mixins/progress-bar.less","less/media.less","less/list-group.less","less/mixins/list-group.less","less/panels.less","less/mixins/panels.less","less/responsive-embed.less","less/wells.less","less/close.less","less/modals.less","less/tooltip.less","less/mixins/reset-text.less","less/popovers.less","less/carousel.less","less/mixins/clearfix.less","less/mixins/center-block.less","less/mixins/hide-text.less","less/responsive-utilities.less","less/mixins/responsive-visibility.less"],"names":[],"mappings":"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DG,edkkDH,MAAA,aclkDG,edqkDH,MAAA,acrkDG,edwkDH,MAAA,IcxkDG,ed2kDH,MAAA,ac3kDG,ed8kDH,MAAA,ac9kDG,edilDH,MAAA,IcjlDG,edolDH,MAAA,ac/kDG,edklDH,MAAA,YcjmDG,edomDH,MAAA,KcpmDG,gBdumDH,KAAA,KcvmDG,gBd0mDH,KAAA,ac1mDG,gBd6mDH,KAAA,ac7mDG,edgnDH,KAAA,IchnDG,edmnDH,KAAA,acnnDG,edsnDH,KAAA,actnDG,edynDH,KAAA,IcznDG,ed4nDH,KAAA,ac5nDG,ed+nDH,KAAA,ac/nDG,edkoDH,KAAA,IcloDG,edqoDH,KAAA,achoDG,edmoDH,KAAA,YcpnDG,edunDH,KAAA,KcvnDG,kBd0nDH,YAAA,Kc1nDG,kBd6nDH,YAAA,ac7nDG,kBdgoDH,YAAA,achoDG,iBdmoDH,YAAA,IcnoDG,iBdsoDH,YAAA,actoDG,iBdyoDH,YAAA,aczoDG,iBd4oDH,YAAA,Ic5oDG,iBd+oDH,YAAA,ac/oDG,iBdkpDH,YAAA,aclpDG,iBdqpDH,YAAA,IcrpDG,iBdwpDH,YAAA,acxpDG,iBd2pDH,YAAA,Yc7rDG,iBACE,YAAA,EAOJ,yBACE,UAAA,WAAA,WAAA,WAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,Ud2rDD,MAAA,Kc3rDC,Wd8rDD,MAAA,Kc9rDC,WdisDD,MAAA,acjsDC,WdosDD,MAAA,acpsDC,UdusDD,MAAA,IcvsDC,Ud0sDD,MAAA,ac1sDC,Ud6sDD,MAAA,ac7sDC,UdgtDD,MAAA,IchtDC,UdmtDD,MAAA,acntDC,UdstDD,MAAA,acttDC,UdytDD,MAAA,IcztDC,Ud4tDD,MAAA,ac7sDC,UdgtDD,MAAA,YchtDC,gBdmtDD,MAAA,KcntDC,gBdstDD,MAAA,acttDC,gBdytDD,MAAA,acztDC,ed4tDD,MAAA,Ic5tDC,ed+tDD,MAAA,ac/tDC,edkuDD,MAAA,acluDC,edquDD,MAAA,IcruDC,edwuDD,MAAA,acxuDC,ed2uDD,MAAA,ac3uDC,ed8uDD,MAAA,Ic9uDC,edivDD,MAAA,ac5uDC,ed+uDD,MAAA,Yc9vDC,ediwDD,MAAA,KcjwDC,gBdowDD,KAAA,KcpwDC,gBduwDD,KAAA,acvwDC,gBd0wDD,KAAA,ac1wDC,ed6wDD,KAAA,Ic7wDC,edgxDD,KAAA,achxDC,edmxDD,KAAA,acnxDC,edsxDD,KAAA,IctxDC,edyxDD,KAAA,aczxDC,ed4xDD,KAAA,ac5xDC,ed+xDD,KAAA,Ic/xDC,edkyDD,KAAA,ac7xDC,edgyDD,KAAA,YcjxDC,edoxDD,KAAA,KcpxDC,kBduxDD,YAAA,KcvxDC,kBd0xDD,YAAA,ac1xDC,kBd6xDD,YAAA,ac7xDC,iBdgyDD,YAAA,IchyDC,iBdmyDD,YAAA,acnyDC,iBdsyDD,YAAA,actyDC,iBdyyDD,YAAA,IczyDC,iBd4yDD,YAAA,ac5yDC,iBd+yDD,YAAA,ac/yDC,iBdkzDD,YAAA,IclzDC,iBdqzDD,YAAA,acrzDC,iBdwzDD,YAAA,YY/yDD,iBE3CE,YAAA,GAQF,yBACE,UAAA,WAAA,WAAA,WAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,Udy1DD,MAAA,Kcz1DC,Wd41DD,MAAA,Kc51DC,Wd+1DD,MAAA,ac/1DC,Wdk2DD,MAAA,acl2DC,Udq2DD,MAAA,Icr2DC,Udw2DD,MAAA,acx2DC,Ud22DD,MAAA,ac32DC,Ud82DD,MAAA,Ic92DC,Udi3DD,MAAA,acj3DC,Udo3DD,MAAA,acp3DC,Udu3DD,MAAA,Icv3DC,Ud03DD,MAAA,ac32DC,Ud82DD,MAAA,Yc92DC,gBdi3DD,MAAA,Kcj3DC,gBdo3DD,MAAA,acp3DC,gBdu3DD,MAAA,acv3DC,ed03DD,MAAA,Ic13DC,ed63DD,MAAA,ac73DC,edg4DD,MAAA,ach4DC,edm4DD,MAAA,Icn4DC,eds4DD,MAAA,act4DC,edy4DD,MAAA,acz4DC,ed44DD,MAAA,Ic54DC,ed+4DD,MAAA,ac14DC,ed64DD,MAAA,Yc55DC,ed+5DD,MAAA,Kc/5DC,gBdk6DD,KAAA,Kcl6DC,gBdq6DD,KAAA,acr6DC,gBdw6DD,KAAA,acx6DC,ed26DD,KAAA,Ic36DC,ed86DD,KAAA,ac96DC,edi7DD,KAAA,acj7DC,edo7DD,KAAA,Icp7DC,edu7DD,KAAA,acv7DC,ed07DD,KAAA,ac17DC,ed67DD,KAAA,Ic77DC,edg8DD,KAAA,ac37DC,ed87DD,KAAA,Yc/6DC,edk7DD,KAAA,Kcl7DC,kBdq7DD,YAAA,Kcr7DC,kBdw7DD,YAAA,acx7DC,kBd27DD,YAAA,ac37DC,iBd87DD,YAAA,Ic97DC,iBdi8DD,YAAA,acj8DC,iBdo8DD,YAAA,acp8DC,iBdu8DD,YAAA,Icv8DC,iBd08DD,YAAA,ac18DC,iBd68DD,YAAA,ac78DC,iBdg9DD,YAAA,Ich9DC,iBdm9DD,YAAA,acn9DC,iBds9DD,YAAA,YY18DD,iBE9CE,YAAA,GAQF,0BACE,UAAA,WAAA,WAAA,WAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,Udu/DD,MAAA,Kcv/DC,Wd0/DD,MAAA,Kc1/DC,Wd6/DD,MAAA,ac7/DC,WdggED,MAAA,achgEC,UdmgED,MAAA,IcngEC,UdsgED,MAAA,actgEC,UdygED,MAAA,aczgEC,Ud4gED,MAAA,Ic5gEC,Ud+gED,MAAA,ac/gEC,UdkhED,MAAA,aclhEC,UdqhED,MAAA,IcrhEC,UdwhED,MAAA,aczgEC,Ud4gED,MAAA,Yc5gEC,gBd+gED,MAAA,Kc/gEC,gBdkhED,MAAA,aclhEC,gBdqhED,MAAA,acrhEC,edwhED,MAAA,IcxhEC,ed2hED,MAAA,ac3hEC,ed8hED,MAAA,ac9hEC,ediiED,MAAA,IcjiEC,edoiED,MAAA,acpiEC,eduiED,MAAA,acviEC,ed0iED,MAAA,Ic1iEC,ed6iED,MAAA,acxiEC,ed2iED,MAAA,Yc1jEC,ed6jED,MAAA,Kc7jEC,gBdgkED,KAAA,KchkEC,gBdmkED,KAAA,acnkEC,gBdskED,KAAA,actkEC,edykED,KAAA,IczkEC,ed4kED,KAAA,ac5kEC,ed+kED,KAAA,ac/kEC,edklED,KAAA,IcllEC,edqlED,KAAA,acrlEC,edwlED,KAAA,acxlEC,ed2lED,KAAA,Ic3lEC,ed8lED,KAAA,aczlEC,ed4lED,KAAA,Yc7kEC,e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pC,cAGA,ejB8DA,wBACQ,OAAA,YJ65FT,OAAA,kBmB56FG,mBAAA,KlBw7FM,WAAY,KkBt7FhB,QAAA,IASN,eC3DE,yBACA,eAAA,KpBo+FD,aoBj+FC,MAAA,KnB6+FA,iBAAkB,KmB3+FhB,aAAA,KpBq+FH,mBoBn+FO,mBAEN,MAAA,KACE,iBAAA,QACA,aAAA,QpBo+FH,mBoBj+FC,MAAA,KnB6+FA,iBAAkB,QAClB,aAAc,QmBz+FR,oBADJ,oBpBo+FH,mCoBj+FG,MAAA,KnB6+FF,iBAAkB,QAClB,aAAc,QmBz+FN,0BnB++FV,0BAHA,0BmB7+FM,0BnB++FN,0BAHA,0BDFC,yCoB3+FK,yCnB++FN,yCmB1+FE,MAAA,KnBk/FA,iBAAkB,QAClB,aAAc,QmB3+FZ,oBpBm+FH,oBoBn+FG,mCnBg/FF,iBAAkB,KmB5+FV,4BnBi/FV,4BAHA,4BDHC,6BCOD,6BAHA,6BkB99FA,sCClBM,sCnBi/FN,sCmB3+FI,iBAAA,KACA,aAAA,KDcJ,oBC9DE,MAAA,KACA,iBAAA,KpB6hGD,aoB1hGC,MAAA,KnBsiGA,iBAAkB,QmBpiGhB,aAAA,QpB8hGH,mBoB5hGO,mBAEN,MAAA,KACE,iBAAA,QACA,aAAA,QpB6hGH,mBoB1hGC,MAAA,KnBsiGA,iBAAkB,QAClB,aAAc,QmBliGR,oBADJ,oBpB6hGH,mCoB1hGG,MAAA,KnBsiGF,iBAAkB,QAClB,aAAc,QmBliGN,0BnBwiGV,0BAHA,0BmBtiGM,0BnBwiGN,0BAHA,0BDFC,yCoBpiGK,yCnBwiGN,yCmBniGE,MAAA,KnB2iGA,iBAAkB,QAClB,aAAc,QmBpiGZ,oBpB4hGH,oBoB5hGG,mCnByiGF,iBAAkB,KmBriGV,4BnB0iGV,4BAHA,4BDHC,6BCOD,6BAHA,6BkBphGA,sCCrBM,sCnB0iGN,sCmBpiGI,iBAAA,QACA,aAAA,QDkBJ,oBClEE,MAAA,QACA,iBAAA,KpBslGD,aoBnlGC,MAAA,KnB+lGA,iBAAkB,QmB7lGhB,aAAA,QpBulGH,mBoBrlGO,mBAEN,MAAA,KACE,iBAAA,QACA,aAAA,QpBslGH,mBoBnlGC,MAAA,KnB+lGA,iBAAkB,QAClB,aAAc,QmB3lGR,oBADJ,oBpBslGH,mCoBnlGG,MAAA,KnB+lGF,iBAAkB,QAClB,aAAc,QmB3lGN,0BnBimGV,0BAHA,0BmB/lGM,0BnBimGN,0BAHA,0BDFC,yCoB7lGK,yCnBimGN,yCmB5lGE,MAAA,KnBomGA,iBAAkB,QAClB,aAAc,QmB7lGZ,oBpBqlGH,oBoBrlGG,mCnBkmGF,iBAAkB,KmB9lGV,4BnBmmGV,4BAHA,4BDHC,6BCOD,6BAHA,6BkBzkGA,sCCzBM,sCnBmmGN,sCmB7lGI,iBAAA,QACA,aAAA,QDsBJ,oBCtEE,MAAA,QACA,iBAAA,KpB+oGD,UoB5oGC,MAAA,KnBwpGA,iBAAkB,QmBtpGhB,aAAA,QpBgpGH,gBoB9oGO,gBAEN,MAAA,KACE,iBAAA,QACA,aAAA,QpB+oGH,gBoB5oGC,MAAA,KnBwpGA,iBAAkB,QAClB,aAAc,QmBppGR,iBADJ,iBpB+oGH,gCoB5oGG,MAAA,KnBwpGF,iBAAkB,QAClB,aAAc,QmBppGN,uBnB0pGV,uBAHA,uBmBxpGM,uBnB0pGN,uBAHA,uBDFC,sCoBtpGK,sCnB0pGN,sCmBrpGE,MAAA,KnB6pGA,iBAAkB,QAClB,aAAc,QmBtpGZ,iBpB8oGH,iBoB9oGG,gCnB2pGF,iBAAkB,KmBvpGV,yBnB4pGV,yBAHA,yBDHC,0BCOD,0BAHA,0BkB9nGA,mCC7BM,mCnB4pGN,mCmBtpGI,iBAAA,QACA,aAAA,QD0BJ,iBC1EE,MAAA,QACA,iBAAA,KpBwsGD,aoBrsGC,MAAA,KnBitGA,iBAAkB,QmB/sGhB,aAAA,QpBysGH,mBoBvsGO,mBAEN,MAAA,KACE,iBAAA,QACA,aAAA,QpBwsGH,mBoBrsGC,MAAA,KnBitGA,iBAAkB,QAClB,aAAc,QmB7sGR,oBADJ,oBpBwsGH,mCoBrsGG,MAAA,KnBitGF,iBAAkB,QAClB,aAAc,QmB7sGN,0BnBmtGV,0BAHA,0BmBjtGM,0BnBmtGN,0BAHA,0BDFC,yCoB/sGK,yCnBmtGN,yCmB9sGE,MAAA,KnBstGA,iBAAkB,QAClB,aAAc,QmB/sGZ,oBpBusGH,oBoBvsGG,mCnBotGF,iBAAkB,KmBh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mBAKJ,qBAEE,MAAA,QvBvCA,cACC,QAAA,KAAA,K3By0KF,iBAAA,QkDxxKC,WAAY,IAAI,MAAM,KjDozKtB,2BAA4B,IiDjzK1B,0BAAA,IAHJ,mBAAA,mCAMM,cAAA,ElD2xKL,oCkDtxKG,oDjDkzKF,aAAc,IAAI,EiDhzKZ,cAAA,EvBtEL,4D3Bg2KF,4EkDpxKG,WAAA,EjDgzKF,uBAAwB,IiD9yKlB,wBAAA,IvBtEL,0D3B81KF,0EkD7yKC,cAAe,EvB1Df,2BAAA,IACC,0BAAA,IuB0FH,+EAEI,uBAAA,ElDixKH,wBAAA,EkD7wKC,wDlDgxKD,iBAAA,EC4BD,0BACE,iBAAkB,EiDryKpB,8BlD6wKC,ckD7wKD,gCjD0yKE,cAAe,EiD1yKjB,sCAQM,sBlD2wKL,wCC4BC,cAAe,K0Bx5Kf,aAAA,KuByGF,wDlDwxKC,0BC4BC,uBAAwB,IACxB,wBAAyB,IiDrzK3B,yFAoBQ,yFlD2wKP,2DkD5wKO,2DjDwyKN,uBAAwB,IACxB,wBAAyB,IAK3B,wGiDj0KA,wGjD+zKA,wGDtBC,wGCuBD,0EiDh0KA,0EjD8zKA,0EiDtyKU,0EjD8yKR,uBAAwB,IAK1B,uGiD30KA,uGjDy0KA,uGDtBC,uGCuBD,yEiD10KA,yEjDw0KA,yEiD5yKU,yEvB7HR,wBAAA,IuBiGF,sDlDwzKC,yBC4BC,2BAA4B,IAC5B,0BAA2B,IiD3yKrB,qFA1CR,qFAyCQ,wDlDsxKP,wDC4BC,2BAA4B,IAC5B,0BAA2B,IAG7B,oGDtBC,oGCwBD,oGiDj2KA,oGjD81KA,uEiDhzKU,uEjDkzKV,uEiDh2KA,uEjDs2KE,0BAA2B,IAG7B,mGDtBC,mGCwBD,mGiD32KA,mGjDw2KA,sEiDtzKU,sEjDwzKV,sEiD12KA,sEjDg3KE,2BAA4B,IiDrzK1B,0BlD8xKH,qCkDz1KD,0BAAA,qCA+DI,WAAA,IAAA,MAAA,KA/DJ,kDAAA,kDAmEI,WAAA,EAnEJ,uBAAA,yCjD83KE,OAAQ,EiDpzKA,+CjDwzKV,+CiDl4KA,+CjDo4KA,+CAEA,+CANA,+CDjBC,iECoBD,iEiDn4KA,iEjDq4KA,iEAEA,iEANA,iEAWE,YAAa,EiD9zKL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1MG,QAAS,oB/Dm2MV,c+Dr2MC,c/Ds2MH,QAAA,sB+Dj2MG,yB/Dq2MD,kBACF,QAAA,iB+Dj2MG,yB/Dq2MD,mBACF,QAAA,kBgEn6MC,yBhEu6MC,yBgEt6MD,QAAA,wBACA,+CAAU,YhE26MT,QAAA,gBC4BD,iB+Dr8MU,QAAA,gBhE86MX,c+Dx2MG,QAAS,oB/D42MV,c+D92MC,c/D+2MH,QAAA,sB+D12MG,+C/D82MD,kBACF,QAAA,iB+D12MG,+C/D82MD,mBACF,QAAA,kBgEj8MC,+ChEq8MC,yBgEp8MD,QAAA,wBACA,gDAAU,YhEy8MT,QAAA,gBC4BD,iB+Dn+MU,QAAA,gBhE48MX,c+Dj3MG,QAAS,oB/Dq3MV,c+Dv3MC,c/Dw3MH,QAAA,sB+Dn3MG,gD/Du3MD,kBACF,QAAA,iB+Dn3MG,gD/Du3MD,mBACF,QAAA,kBgE/9MC,gDhEm+MC,yBgEl+MD,QAAA,wBACA,0BAAU,YhEu+MT,QAAA,gBC4BD,iB+DjgNU,QAAA,gBhE0+MX,c+D13MG,QAAS,oB/D83MV,c+Dh4MC,c/Di4MH,QAAA,sB+D53MG,0B/Dg4MD,kBACF,QAAA,iB+D53MG,0B/Dg4MD,mBACF,QAAA,kBgEr/MC,0BhEy/MC,yBACF,QAAA,wBgE1/MC,yBhE8/MC,WACF,QAAA,gBgE//MC,+ChEmgNC,WACF,QAAA,gBgEpgNC,gDhEwgNC,WACF,QAAA,gBAGA,0B+Dn3MC,WA4BE,QAAS,gBC5LX,eAAU,QAAA,eACV,aAAU,ehE4hNT,QAAA,gBC4BD,oB+DtjNU,QAAA,gBhE+hNX,iB+Dj4MG,QAAS,oBAMX,iB/D83MD,iB+Dz2MG,QAAS,sB/D82MZ,qB+Dl4MC,QAAS,e/Dq4MV,a+D/3MC,qBAcE,QAAS,iB/Ds3MZ,sB+Dn4MC,QAAS,e/Ds4MV,a+Dh4MC,sBAOE,QAAS,kB/D83MZ,4B+D/3MC,QAAS,eCpLT,ahEujNC,4BACF,QAAA,wBC6BD,aACE,cACE,QAAS"}
...\ No newline at end of file ...\ No newline at end of file
This diff could not be displayed because it is too large.
1 /*!
2 * Bootstrap v3.3.6 (http://getbootstrap.com)
3 * Copyright 2011-2015 Twitter, Inc.
4 * Licensed under the MIT license
5 */
6
7 if (typeof jQuery === 'undefined') {
8 throw new Error('Bootstrap\'s JavaScript requires jQuery')
9 }
10
11 +function ($) {
12 'use strict';
13 var version = $.fn.jquery.split(' ')[0].split('.')
14 if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1) || (version[0] > 2)) {
15 throw new Error('Bootstrap\'s JavaScript requires jQuery version 1.9.1 or higher, but lower than version 3')
16 }
17 }(jQuery);
18
19 /* ========================================================================
20 * Bootstrap: transition.js v3.3.6
21 * http://getbootstrap.com/javascript/#transitions
22 * ========================================================================
23 * Copyright 2011-2015 Twitter, Inc.
24 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
25 * ======================================================================== */
26
27
28 +function ($) {
29 'use strict';
30
31 // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)
32 // ============================================================
33
34 function transitionEnd() {
35 var el = document.createElement('bootstrap')
36
37 var transEndEventNames = {
38 WebkitTransition : 'webkitTransitionEnd',
39 MozTransition : 'transitionend',
40 OTransition : 'oTransitionEnd otransitionend',
41 transition : 'transitionend'
42 }
43
44 for (var name in transEndEventNames) {
45 if (el.style[name] !== undefined) {
46 return { end: transEndEventNames[name] }
47 }
48 }
49
50 return false // explicit for ie8 ( ._.)
51 }
52
53 // http://blog.alexmaccaw.com/css-transitions
54 $.fn.emulateTransitionEnd = function (duration) {
55 var called = false
56 var $el = this
57 $(this).one('bsTransitionEnd', function () { called = true })
58 var callback = function () { if (!called) $($el).trigger($.support.transition.end) }
59 setTimeout(callback, duration)
60 return this
61 }
62
63 $(function () {
64 $.support.transition = transitionEnd()
65
66 if (!$.support.transition) return
67
68 $.event.special.bsTransitionEnd = {
69 bindType: $.support.transition.end,
70 delegateType: $.support.transition.end,
71 handle: function (e) {
72 if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)
73 }
74 }
75 })
76
77 }(jQuery);
78
79 /* ========================================================================
80 * Bootstrap: alert.js v3.3.6
81 * http://getbootstrap.com/javascript/#alerts
82 * ========================================================================
83 * Copyright 2011-2015 Twitter, Inc.
84 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
85 * ======================================================================== */
86
87
88 +function ($) {
89 'use strict';
90
91 // ALERT CLASS DEFINITION
92 // ======================
93
94 var dismiss = '[data-dismiss="alert"]'
95 var Alert = function (el) {
96 $(el).on('click', dismiss, this.close)
97 }
98
99 Alert.VERSION = '3.3.6'
100
101 Alert.TRANSITION_DURATION = 150
102
103 Alert.prototype.close = function (e) {
104 var $this = $(this)
105 var selector = $this.attr('data-target')
106
107 if (!selector) {
108 selector = $this.attr('href')
109 selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
110 }
111
112 var $parent = $(selector)
113
114 if (e) e.preventDefault()
115
116 if (!$parent.length) {
117 $parent = $this.closest('.alert')
118 }
119
120 $parent.trigger(e = $.Event('close.bs.alert'))
121
122 if (e.isDefaultPrevented()) return
123
124 $parent.removeClass('in')
125
126 function removeElement() {
127 // detach from parent, fire event then clean up data
128 $parent.detach().trigger('closed.bs.alert').remove()
129 }
130
131 $.support.transition && $parent.hasClass('fade') ?
132 $parent
133 .one('bsTransitionEnd', removeElement)
134 .emulateTransitionEnd(Alert.TRANSITION_DURATION) :
135 removeElement()
136 }
137
138
139 // ALERT PLUGIN DEFINITION
140 // =======================
141
142 function Plugin(option) {
143 return this.each(function () {
144 var $this = $(this)
145 var data = $this.data('bs.alert')
146
147 if (!data) $this.data('bs.alert', (data = new Alert(this)))
148 if (typeof option == 'string') data[option].call($this)
149 })
150 }
151
152 var old = $.fn.alert
153
154 $.fn.alert = Plugin
155 $.fn.alert.Constructor = Alert
156
157
158 // ALERT NO CONFLICT
159 // =================
160
161 $.fn.alert.noConflict = function () {
162 $.fn.alert = old
163 return this
164 }
165
166
167 // ALERT DATA-API
168 // ==============
169
170 $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close)
171
172 }(jQuery);
173
174 /* ========================================================================
175 * Bootstrap: button.js v3.3.6
176 * http://getbootstrap.com/javascript/#buttons
177 * ========================================================================
178 * Copyright 2011-2015 Twitter, Inc.
179 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
180 * ======================================================================== */
181
182
183 +function ($) {
184 'use strict';
185
186 // BUTTON PUBLIC CLASS DEFINITION
187 // ==============================
188
189 var Button = function (element, options) {
190 this.$element = $(element)
191 this.options = $.extend({}, Button.DEFAULTS, options)
192 this.isLoading = false
193 }
194
195 Button.VERSION = '3.3.6'
196
197 Button.DEFAULTS = {
198 loadingText: 'loading...'
199 }
200
201 Button.prototype.setState = function (state) {
202 var d = 'disabled'
203 var $el = this.$element
204 var val = $el.is('input') ? 'val' : 'html'
205 var data = $el.data()
206
207 state += 'Text'
208
209 if (data.resetText == null) $el.data('resetText', $el[val]())
210
211 // push to event loop to allow forms to submit
212 setTimeout($.proxy(function () {
213 $el[val](data[state] == null ? this.options[state] : data[state])
214
215 if (state == 'loadingText') {
216 this.isLoading = true
217 $el.addClass(d).attr(d, d)
218 } else if (this.isLoading) {
219 this.isLoading = false
220 $el.removeClass(d).removeAttr(d)
221 }
222 }, this), 0)
223 }
224
225 Button.prototype.toggle = function () {
226 var changed = true
227 var $parent = this.$element.closest('[data-toggle="buttons"]')
228
229 if ($parent.length) {
230 var $input = this.$element.find('input')
231 if ($input.prop('type') == 'radio') {
232 if ($input.prop('checked')) changed = false
233 $parent.find('.active').removeClass('active')
234 this.$element.addClass('active')
235 } else if ($input.prop('type') == 'checkbox') {
236 if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false
237 this.$element.toggleClass('active')
238 }
239 $input.prop('checked', this.$element.hasClass('active'))
240 if (changed) $input.trigger('change')
241 } else {
242 this.$element.attr('aria-pressed', !this.$element.hasClass('active'))
243 this.$element.toggleClass('active')
244 }
245 }
246
247
248 // BUTTON PLUGIN DEFINITION
249 // ========================
250
251 function Plugin(option) {
252 return this.each(function () {
253 var $this = $(this)
254 var data = $this.data('bs.button')
255 var options = typeof option == 'object' && option
256
257 if (!data) $this.data('bs.button', (data = new Button(this, options)))
258
259 if (option == 'toggle') data.toggle()
260 else if (option) data.setState(option)
261 })
262 }
263
264 var old = $.fn.button
265
266 $.fn.button = Plugin
267 $.fn.button.Constructor = Button
268
269
270 // BUTTON NO CONFLICT
271 // ==================
272
273 $.fn.button.noConflict = function () {
274 $.fn.button = old
275 return this
276 }
277
278
279 // BUTTON DATA-API
280 // ===============
281
282 $(document)
283 .on('click.bs.button.data-api', '[data-toggle^="button"]', function (e) {
284 var $btn = $(e.target)
285 if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')
286 Plugin.call($btn, 'toggle')
287 if (!($(e.target).is('input[type="radio"]') || $(e.target).is('input[type="checkbox"]'))) e.preventDefault()
288 })
289 .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^="button"]', function (e) {
290 $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))
291 })
292
293 }(jQuery);
294
295 /* ========================================================================
296 * Bootstrap: carousel.js v3.3.6
297 * http://getbootstrap.com/javascript/#carousel
298 * ========================================================================
299 * Copyright 2011-2015 Twitter, Inc.
300 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
301 * ======================================================================== */
302
303
304 +function ($) {
305 'use strict';
306
307 // CAROUSEL CLASS DEFINITION
308 // =========================
309
310 var Carousel = function (element, options) {
311 this.$element = $(element)
312 this.$indicators = this.$element.find('.carousel-indicators')
313 this.options = options
314 this.paused = null
315 this.sliding = null
316 this.interval = null
317 this.$active = null
318 this.$items = null
319
320 this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this))
321
322 this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element
323 .on('mouseenter.bs.carousel', $.proxy(this.pause, this))
324 .on('mouseleave.bs.carousel', $.proxy(this.cycle, this))
325 }
326
327 Carousel.VERSION = '3.3.6'
328
329 Carousel.TRANSITION_DURATION = 600
330
331 Carousel.DEFAULTS = {
332 interval: 5000,
333 pause: 'hover',
334 wrap: true,
335 keyboard: true
336 }
337
338 Carousel.prototype.keydown = function (e) {
339 if (/input|textarea/i.test(e.target.tagName)) return
340 switch (e.which) {
341 case 37: this.prev(); break
342 case 39: this.next(); break
343 default: return
344 }
345
346 e.preventDefault()
347 }
348
349 Carousel.prototype.cycle = function (e) {
350 e || (this.paused = false)
351
352 this.interval && clearInterval(this.interval)
353
354 this.options.interval
355 && !this.paused
356 && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))
357
358 return this
359 }
360
361 Carousel.prototype.getItemIndex = function (item) {
362 this.$items = item.parent().children('.item')
363 return this.$items.index(item || this.$active)
364 }
365
366 Carousel.prototype.getItemForDirection = function (direction, active) {
367 var activeIndex = this.getItemIndex(active)
368 var willWrap = (direction == 'prev' && activeIndex === 0)
369 || (direction == 'next' && activeIndex == (this.$items.length - 1))
370 if (willWrap && !this.options.wrap) return active
371 var delta = direction == 'prev' ? -1 : 1
372 var itemIndex = (activeIndex + delta) % this.$items.length
373 return this.$items.eq(itemIndex)
374 }
375
376 Carousel.prototype.to = function (pos) {
377 var that = this
378 var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active'))
379
380 if (pos > (this.$items.length - 1) || pos < 0) return
381
382 if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, "slid"
383 if (activeIndex == pos) return this.pause().cycle()
384
385 return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos))
386 }
387
388 Carousel.prototype.pause = function (e) {
389 e || (this.paused = true)
390
391 if (this.$element.find('.next, .prev').length && $.support.transition) {
392 this.$element.trigger($.support.transition.end)
393 this.cycle(true)
394 }
395
396 this.interval = clearInterval(this.interval)
397
398 return this
399 }
400
401 Carousel.prototype.next = function () {
402 if (this.sliding) return
403 return this.slide('next')
404 }
405
406 Carousel.prototype.prev = function () {
407 if (this.sliding) return
408 return this.slide('prev')
409 }
410
411 Carousel.prototype.slide = function (type, next) {
412 var $active = this.$element.find('.item.active')
413 var $next = next || this.getItemForDirection(type, $active)
414 var isCycling = this.interval
415 var direction = type == 'next' ? 'left' : 'right'
416 var that = this
417
418 if ($next.hasClass('active')) return (this.sliding = false)
419
420 var relatedTarget = $next[0]
421 var slideEvent = $.Event('slide.bs.carousel', {
422 relatedTarget: relatedTarget,
423 direction: direction
424 })
425 this.$element.trigger(slideEvent)
426 if (slideEvent.isDefaultPrevented()) return
427
428 this.sliding = true
429
430 isCycling && this.pause()
431
432 if (this.$indicators.length) {
433 this.$indicators.find('.active').removeClass('active')
434 var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)])
435 $nextIndicator && $nextIndicator.addClass('active')
436 }
437
438 var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, "slid"
439 if ($.support.transition && this.$element.hasClass('slide')) {
440 $next.addClass(type)
441 $next[0].offsetWidth // force reflow
442 $active.addClass(direction)
443 $next.addClass(direction)
444 $active
445 .one('bsTransitionEnd', function () {
446 $next.removeClass([type, direction].join(' ')).addClass('active')
447 $active.removeClass(['active', direction].join(' '))
448 that.sliding = false
449 setTimeout(function () {
450 that.$element.trigger(slidEvent)
451 }, 0)
452 })
453 .emulateTransitionEnd(Carousel.TRANSITION_DURATION)
454 } else {
455 $active.removeClass('active')
456 $next.addClass('active')
457 this.sliding = false
458 this.$element.trigger(slidEvent)
459 }
460
461 isCycling && this.cycle()
462
463 return this
464 }
465
466
467 // CAROUSEL PLUGIN DEFINITION
468 // ==========================
469
470 function Plugin(option) {
471 return this.each(function () {
472 var $this = $(this)
473 var data = $this.data('bs.carousel')
474 var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option)
475 var action = typeof option == 'string' ? option : options.slide
476
477 if (!data) $this.data('bs.carousel', (data = new Carousel(this, options)))
478 if (typeof option == 'number') data.to(option)
479 else if (action) data[action]()
480 else if (options.interval) data.pause().cycle()
481 })
482 }
483
484 var old = $.fn.carousel
485
486 $.fn.carousel = Plugin
487 $.fn.carousel.Constructor = Carousel
488
489
490 // CAROUSEL NO CONFLICT
491 // ====================
492
493 $.fn.carousel.noConflict = function () {
494 $.fn.carousel = old
495 return this
496 }
497
498
499 // CAROUSEL DATA-API
500 // =================
501
502 var clickHandler = function (e) {
503 var href
504 var $this = $(this)
505 var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) // strip for ie7
506 if (!$target.hasClass('carousel')) return
507 var options = $.extend({}, $target.data(), $this.data())
508 var slideIndex = $this.attr('data-slide-to')
509 if (slideIndex) options.interval = false
510
511 Plugin.call($target, options)
512
513 if (slideIndex) {
514 $target.data('bs.carousel').to(slideIndex)
515 }
516
517 e.preventDefault()
518 }
519
520 $(document)
521 .on('click.bs.carousel.data-api', '[data-slide]', clickHandler)
522 .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler)
523
524 $(window).on('load', function () {
525 $('[data-ride="carousel"]').each(function () {
526 var $carousel = $(this)
527 Plugin.call($carousel, $carousel.data())
528 })
529 })
530
531 }(jQuery);
532
533 /* ========================================================================
534 * Bootstrap: collapse.js v3.3.6
535 * http://getbootstrap.com/javascript/#collapse
536 * ========================================================================
537 * Copyright 2011-2015 Twitter, Inc.
538 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
539 * ======================================================================== */
540
541
542 +function ($) {
543 'use strict';
544
545 // COLLAPSE PUBLIC CLASS DEFINITION
546 // ================================
547
548 var Collapse = function (element, options) {
549 this.$element = $(element)
550 this.options = $.extend({}, Collapse.DEFAULTS, options)
551 this.$trigger = $('[data-toggle="collapse"][href="#' + element.id + '"],' +
552 '[data-toggle="collapse"][data-target="#' + element.id + '"]')
553 this.transitioning = null
554
555 if (this.options.parent) {
556 this.$parent = this.getParent()
557 } else {
558 this.addAriaAndCollapsedClass(this.$element, this.$trigger)
559 }
560
561 if (this.options.toggle) this.toggle()
562 }
563
564 Collapse.VERSION = '3.3.6'
565
566 Collapse.TRANSITION_DURATION = 350
567
568 Collapse.DEFAULTS = {
569 toggle: true
570 }
571
572 Collapse.prototype.dimension = function () {
573 var hasWidth = this.$element.hasClass('width')
574 return hasWidth ? 'width' : 'height'
575 }
576
577 Collapse.prototype.show = function () {
578 if (this.transitioning || this.$element.hasClass('in')) return
579
580 var activesData
581 var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing')
582
583 if (actives && actives.length) {
584 activesData = actives.data('bs.collapse')
585 if (activesData && activesData.transitioning) return
586 }
587
588 var startEvent = $.Event('show.bs.collapse')
589 this.$element.trigger(startEvent)
590 if (startEvent.isDefaultPrevented()) return
591
592 if (actives && actives.length) {
593 Plugin.call(actives, 'hide')
594 activesData || actives.data('bs.collapse', null)
595 }
596
597 var dimension = this.dimension()
598
599 this.$element
600 .removeClass('collapse')
601 .addClass('collapsing')[dimension](0)
602 .attr('aria-expanded', true)
603
604 this.$trigger
605 .removeClass('collapsed')
606 .attr('aria-expanded', true)
607
608 this.transitioning = 1
609
610 var complete = function () {
611 this.$element
612 .removeClass('collapsing')
613 .addClass('collapse in')[dimension]('')
614 this.transitioning = 0
615 this.$element
616 .trigger('shown.bs.collapse')
617 }
618
619 if (!$.support.transition) return complete.call(this)
620
621 var scrollSize = $.camelCase(['scroll', dimension].join('-'))
622
623 this.$element
624 .one('bsTransitionEnd', $.proxy(complete, this))
625 .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize])
626 }
627
628 Collapse.prototype.hide = function () {
629 if (this.transitioning || !this.$element.hasClass('in')) return
630
631 var startEvent = $.Event('hide.bs.collapse')
632 this.$element.trigger(startEvent)
633 if (startEvent.isDefaultPrevented()) return
634
635 var dimension = this.dimension()
636
637 this.$element[dimension](this.$element[dimension]())[0].offsetHeight
638
639 this.$element
640 .addClass('collapsing')
641 .removeClass('collapse in')
642 .attr('aria-expanded', false)
643
644 this.$trigger
645 .addClass('collapsed')
646 .attr('aria-expanded', false)
647
648 this.transitioning = 1
649
650 var complete = function () {
651 this.transitioning = 0
652 this.$element
653 .removeClass('collapsing')
654 .addClass('collapse')
655 .trigger('hidden.bs.collapse')
656 }
657
658 if (!$.support.transition) return complete.call(this)
659
660 this.$element
661 [dimension](0)
662 .one('bsTransitionEnd', $.proxy(complete, this))
663 .emulateTransitionEnd(Collapse.TRANSITION_DURATION)
664 }
665
666 Collapse.prototype.toggle = function () {
667 this[this.$element.hasClass('in') ? 'hide' : 'show']()
668 }
669
670 Collapse.prototype.getParent = function () {
671 return $(this.options.parent)
672 .find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]')
673 .each($.proxy(function (i, element) {
674 var $element = $(element)
675 this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)
676 }, this))
677 .end()
678 }
679
680 Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {
681 var isOpen = $element.hasClass('in')
682
683 $element.attr('aria-expanded', isOpen)
684 $trigger
685 .toggleClass('collapsed', !isOpen)
686 .attr('aria-expanded', isOpen)
687 }
688
689 function getTargetFromTrigger($trigger) {
690 var href
691 var target = $trigger.attr('data-target')
692 || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7
693
694 return $(target)
695 }
696
697
698 // COLLAPSE PLUGIN DEFINITION
699 // ==========================
700
701 function Plugin(option) {
702 return this.each(function () {
703 var $this = $(this)
704 var data = $this.data('bs.collapse')
705 var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)
706
707 if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false
708 if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))
709 if (typeof option == 'string') data[option]()
710 })
711 }
712
713 var old = $.fn.collapse
714
715 $.fn.collapse = Plugin
716 $.fn.collapse.Constructor = Collapse
717
718
719 // COLLAPSE NO CONFLICT
720 // ====================
721
722 $.fn.collapse.noConflict = function () {
723 $.fn.collapse = old
724 return this
725 }
726
727
728 // COLLAPSE DATA-API
729 // =================
730
731 $(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) {
732 var $this = $(this)
733
734 if (!$this.attr('data-target')) e.preventDefault()
735
736 var $target = getTargetFromTrigger($this)
737 var data = $target.data('bs.collapse')
738 var option = data ? 'toggle' : $this.data()
739
740 Plugin.call($target, option)
741 })
742
743 }(jQuery);
744
745 /* ========================================================================
746 * Bootstrap: dropdown.js v3.3.6
747 * http://getbootstrap.com/javascript/#dropdowns
748 * ========================================================================
749 * Copyright 2011-2015 Twitter, Inc.
750 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
751 * ======================================================================== */
752
753
754 +function ($) {
755 'use strict';
756
757 // DROPDOWN CLASS DEFINITION
758 // =========================
759
760 var backdrop = '.dropdown-backdrop'
761 var toggle = '[data-toggle="dropdown"]'
762 var Dropdown = function (element) {
763 $(element).on('click.bs.dropdown', this.toggle)
764 }
765
766 Dropdown.VERSION = '3.3.6'
767
768 function getParent($this) {
769 var selector = $this.attr('data-target')
770
771 if (!selector) {
772 selector = $this.attr('href')
773 selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
774 }
775
776 var $parent = selector && $(selector)
777
778 return $parent && $parent.length ? $parent : $this.parent()
779 }
780
781 function clearMenus(e) {
782 if (e && e.which === 3) return
783 $(backdrop).remove()
784 $(toggle).each(function () {
785 var $this = $(this)
786 var $parent = getParent($this)
787 var relatedTarget = { relatedTarget: this }
788
789 if (!$parent.hasClass('open')) return
790
791 if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return
792
793 $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))
794
795 if (e.isDefaultPrevented()) return
796
797 $this.attr('aria-expanded', 'false')
798 $parent.removeClass('open').trigger($.Event('hidden.bs.dropdown', relatedTarget))
799 })
800 }
801
802 Dropdown.prototype.toggle = function (e) {
803 var $this = $(this)
804
805 if ($this.is('.disabled, :disabled')) return
806
807 var $parent = getParent($this)
808 var isActive = $parent.hasClass('open')
809
810 clearMenus()
811
812 if (!isActive) {
813 if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {
814 // if mobile we use a backdrop because click events don't delegate
815 $(document.createElement('div'))
816 .addClass('dropdown-backdrop')
817 .insertAfter($(this))
818 .on('click', clearMenus)
819 }
820
821 var relatedTarget = { relatedTarget: this }
822 $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))
823
824 if (e.isDefaultPrevented()) return
825
826 $this
827 .trigger('focus')
828 .attr('aria-expanded', 'true')
829
830 $parent
831 .toggleClass('open')
832 .trigger($.Event('shown.bs.dropdown', relatedTarget))
833 }
834
835 return false
836 }
837
838 Dropdown.prototype.keydown = function (e) {
839 if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return
840
841 var $this = $(this)
842
843 e.preventDefault()
844 e.stopPropagation()
845
846 if ($this.is('.disabled, :disabled')) return
847
848 var $parent = getParent($this)
849 var isActive = $parent.hasClass('open')
850
851 if (!isActive && e.which != 27 || isActive && e.which == 27) {
852 if (e.which == 27) $parent.find(toggle).trigger('focus')
853 return $this.trigger('click')
854 }
855
856 var desc = ' li:not(.disabled):visible a'
857 var $items = $parent.find('.dropdown-menu' + desc)
858
859 if (!$items.length) return
860
861 var index = $items.index(e.target)
862
863 if (e.which == 38 && index > 0) index-- // up
864 if (e.which == 40 && index < $items.length - 1) index++ // down
865 if (!~index) index = 0
866
867 $items.eq(index).trigger('focus')
868 }
869
870
871 // DROPDOWN PLUGIN DEFINITION
872 // ==========================
873
874 function Plugin(option) {
875 return this.each(function () {
876 var $this = $(this)
877 var data = $this.data('bs.dropdown')
878
879 if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))
880 if (typeof option == 'string') data[option].call($this)
881 })
882 }
883
884 var old = $.fn.dropdown
885
886 $.fn.dropdown = Plugin
887 $.fn.dropdown.Constructor = Dropdown
888
889
890 // DROPDOWN NO CONFLICT
891 // ====================
892
893 $.fn.dropdown.noConflict = function () {
894 $.fn.dropdown = old
895 return this
896 }
897
898
899 // APPLY TO STANDARD DROPDOWN ELEMENTS
900 // ===================================
901
902 $(document)
903 .on('click.bs.dropdown.data-api', clearMenus)
904 .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
905 .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)
906 .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)
907 .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown)
908
909 }(jQuery);
910
911 /* ========================================================================
912 * Bootstrap: modal.js v3.3.6
913 * http://getbootstrap.com/javascript/#modals
914 * ========================================================================
915 * Copyright 2011-2015 Twitter, Inc.
916 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
917 * ======================================================================== */
918
919
920 +function ($) {
921 'use strict';
922
923 // MODAL CLASS DEFINITION
924 // ======================
925
926 var Modal = function (element, options) {
927 this.options = options
928 this.$body = $(document.body)
929 this.$element = $(element)
930 this.$dialog = this.$element.find('.modal-dialog')
931 this.$backdrop = null
932 this.isShown = null
933 this.originalBodyPad = null
934 this.scrollbarWidth = 0
935 this.ignoreBackdropClick = false
936
937 if (this.options.remote) {
938 this.$element
939 .find('.modal-content')
940 .load(this.options.remote, $.proxy(function () {
941 this.$element.trigger('loaded.bs.modal')
942 }, this))
943 }
944 }
945
946 Modal.VERSION = '3.3.6'
947
948 Modal.TRANSITION_DURATION = 300
949 Modal.BACKDROP_TRANSITION_DURATION = 150
950
951 Modal.DEFAULTS = {
952 backdrop: true,
953 keyboard: true,
954 show: true
955 }
956
957 Modal.prototype.toggle = function (_relatedTarget) {
958 return this.isShown ? this.hide() : this.show(_relatedTarget)
959 }
960
961 Modal.prototype.show = function (_relatedTarget) {
962 var that = this
963 var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })
964
965 this.$element.trigger(e)
966
967 if (this.isShown || e.isDefaultPrevented()) return
968
969 this.isShown = true
970
971 this.checkScrollbar()
972 this.setScrollbar()
973 this.$body.addClass('modal-open')
974
975 this.escape()
976 this.resize()
977
978 this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this))
979
980 this.$dialog.on('mousedown.dismiss.bs.modal', function () {
981 that.$element.one('mouseup.dismiss.bs.modal', function (e) {
982 if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true
983 })
984 })
985
986 this.backdrop(function () {
987 var transition = $.support.transition && that.$element.hasClass('fade')
988
989 if (!that.$element.parent().length) {
990 that.$element.appendTo(that.$body) // don't move modals dom position
991 }
992
993 that.$element
994 .show()
995 .scrollTop(0)
996
997 that.adjustDialog()
998
999 if (transition) {
1000 that.$element[0].offsetWidth // force reflow
1001 }
1002
1003 that.$element.addClass('in')
1004
1005 that.enforceFocus()
1006
1007 var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })
1008
1009 transition ?
1010 that.$dialog // wait for modal to slide in
1011 .one('bsTransitionEnd', function () {
1012 that.$element.trigger('focus').trigger(e)
1013 })
1014 .emulateTransitionEnd(Modal.TRANSITION_DURATION) :
1015 that.$element.trigger('focus').trigger(e)
1016 })
1017 }
1018
1019 Modal.prototype.hide = function (e) {
1020 if (e) e.preventDefault()
1021
1022 e = $.Event('hide.bs.modal')
1023
1024 this.$element.trigger(e)
1025
1026 if (!this.isShown || e.isDefaultPrevented()) return
1027
1028 this.isShown = false
1029
1030 this.escape()
1031 this.resize()
1032
1033 $(document).off('focusin.bs.modal')
1034
1035 this.$element
1036 .removeClass('in')
1037 .off('click.dismiss.bs.modal')
1038 .off('mouseup.dismiss.bs.modal')
1039
1040 this.$dialog.off('mousedown.dismiss.bs.modal')
1041
1042 $.support.transition && this.$element.hasClass('fade') ?
1043 this.$element
1044 .one('bsTransitionEnd', $.proxy(this.hideModal, this))
1045 .emulateTransitionEnd(Modal.TRANSITION_DURATION) :
1046 this.hideModal()
1047 }
1048
1049 Modal.prototype.enforceFocus = function () {
1050 $(document)
1051 .off('focusin.bs.modal') // guard against infinite focus loop
1052 .on('focusin.bs.modal', $.proxy(function (e) {
1053 if (this.$element[0] !== e.target && !this.$element.has(e.target).length) {
1054 this.$element.trigger('focus')
1055 }
1056 }, this))
1057 }
1058
1059 Modal.prototype.escape = function () {
1060 if (this.isShown && this.options.keyboard) {
1061 this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) {
1062 e.which == 27 && this.hide()
1063 }, this))
1064 } else if (!this.isShown) {
1065 this.$element.off('keydown.dismiss.bs.modal')
1066 }
1067 }
1068
1069 Modal.prototype.resize = function () {
1070 if (this.isShown) {
1071 $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this))
1072 } else {
1073 $(window).off('resize.bs.modal')
1074 }
1075 }
1076
1077 Modal.prototype.hideModal = function () {
1078 var that = this
1079 this.$element.hide()
1080 this.backdrop(function () {
1081 that.$body.removeClass('modal-open')
1082 that.resetAdjustments()
1083 that.resetScrollbar()
1084 that.$element.trigger('hidden.bs.modal')
1085 })
1086 }
1087
1088 Modal.prototype.removeBackdrop = function () {
1089 this.$backdrop && this.$backdrop.remove()
1090 this.$backdrop = null
1091 }
1092
1093 Modal.prototype.backdrop = function (callback) {
1094 var that = this
1095 var animate = this.$element.hasClass('fade') ? 'fade' : ''
1096
1097 if (this.isShown && this.options.backdrop) {
1098 var doAnimate = $.support.transition && animate
1099
1100 this.$backdrop = $(document.createElement('div'))
1101 .addClass('modal-backdrop ' + animate)
1102 .appendTo(this.$body)
1103
1104 this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {
1105 if (this.ignoreBackdropClick) {
1106 this.ignoreBackdropClick = false
1107 return
1108 }
1109 if (e.target !== e.currentTarget) return
1110 this.options.backdrop == 'static'
1111 ? this.$element[0].focus()
1112 : this.hide()
1113 }, this))
1114
1115 if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
1116
1117 this.$backdrop.addClass('in')
1118
1119 if (!callback) return
1120
1121 doAnimate ?
1122 this.$backdrop
1123 .one('bsTransitionEnd', callback)
1124 .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :
1125 callback()
1126
1127 } else if (!this.isShown && this.$backdrop) {
1128 this.$backdrop.removeClass('in')
1129
1130 var callbackRemove = function () {
1131 that.removeBackdrop()
1132 callback && callback()
1133 }
1134 $.support.transition && this.$element.hasClass('fade') ?
1135 this.$backdrop
1136 .one('bsTransitionEnd', callbackRemove)
1137 .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :
1138 callbackRemove()
1139
1140 } else if (callback) {
1141 callback()
1142 }
1143 }
1144
1145 // these following methods are used to handle overflowing modals
1146
1147 Modal.prototype.handleUpdate = function () {
1148 this.adjustDialog()
1149 }
1150
1151 Modal.prototype.adjustDialog = function () {
1152 var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight
1153
1154 this.$element.css({
1155 paddingLeft: !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '',
1156 paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : ''
1157 })
1158 }
1159
1160 Modal.prototype.resetAdjustments = function () {
1161 this.$element.css({
1162 paddingLeft: '',
1163 paddingRight: ''
1164 })
1165 }
1166
1167 Modal.prototype.checkScrollbar = function () {
1168 var fullWindowWidth = window.innerWidth
1169 if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8
1170 var documentElementRect = document.documentElement.getBoundingClientRect()
1171 fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left)
1172 }
1173 this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth
1174 this.scrollbarWidth = this.measureScrollbar()
1175 }
1176
1177 Modal.prototype.setScrollbar = function () {
1178 var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)
1179 this.originalBodyPad = document.body.style.paddingRight || ''
1180 if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)
1181 }
1182
1183 Modal.prototype.resetScrollbar = function () {
1184 this.$body.css('padding-right', this.originalBodyPad)
1185 }
1186
1187 Modal.prototype.measureScrollbar = function () { // thx walsh
1188 var scrollDiv = document.createElement('div')
1189 scrollDiv.className = 'modal-scrollbar-measure'
1190 this.$body.append(scrollDiv)
1191 var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth
1192 this.$body[0].removeChild(scrollDiv)
1193 return scrollbarWidth
1194 }
1195
1196
1197 // MODAL PLUGIN DEFINITION
1198 // =======================
1199
1200 function Plugin(option, _relatedTarget) {
1201 return this.each(function () {
1202 var $this = $(this)
1203 var data = $this.data('bs.modal')
1204 var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)
1205
1206 if (!data) $this.data('bs.modal', (data = new Modal(this, options)))
1207 if (typeof option == 'string') data[option](_relatedTarget)
1208 else if (options.show) data.show(_relatedTarget)
1209 })
1210 }
1211
1212 var old = $.fn.modal
1213
1214 $.fn.modal = Plugin
1215 $.fn.modal.Constructor = Modal
1216
1217
1218 // MODAL NO CONFLICT
1219 // =================
1220
1221 $.fn.modal.noConflict = function () {
1222 $.fn.modal = old
1223 return this
1224 }
1225
1226
1227 // MODAL DATA-API
1228 // ==============
1229
1230 $(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) {
1231 var $this = $(this)
1232 var href = $this.attr('href')
1233 var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) // strip for ie7
1234 var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())
1235
1236 if ($this.is('a')) e.preventDefault()
1237
1238 $target.one('show.bs.modal', function (showEvent) {
1239 if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown
1240 $target.one('hidden.bs.modal', function () {
1241 $this.is(':visible') && $this.trigger('focus')
1242 })
1243 })
1244 Plugin.call($target, option, this)
1245 })
1246
1247 }(jQuery);
1248
1249 /* ========================================================================
1250 * Bootstrap: tooltip.js v3.3.6
1251 * http://getbootstrap.com/javascript/#tooltip
1252 * Inspired by the original jQuery.tipsy by Jason Frame
1253 * ========================================================================
1254 * Copyright 2011-2015 Twitter, Inc.
1255 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
1256 * ======================================================================== */
1257
1258
1259 +function ($) {
1260 'use strict';
1261
1262 // TOOLTIP PUBLIC CLASS DEFINITION
1263 // ===============================
1264
1265 var Tooltip = function (element, options) {
1266 this.type = null
1267 this.options = null
1268 this.enabled = null
1269 this.timeout = null
1270 this.hoverState = null
1271 this.$element = null
1272 this.inState = null
1273
1274 this.init('tooltip', element, options)
1275 }
1276
1277 Tooltip.VERSION = '3.3.6'
1278
1279 Tooltip.TRANSITION_DURATION = 150
1280
1281 Tooltip.DEFAULTS = {
1282 animation: true,
1283 placement: 'top',
1284 selector: false,
1285 template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
1286 trigger: 'hover focus',
1287 title: '',
1288 delay: 0,
1289 html: false,
1290 container: false,
1291 viewport: {
1292 selector: 'body',
1293 padding: 0
1294 }
1295 }
1296
1297 Tooltip.prototype.init = function (type, element, options) {
1298 this.enabled = true
1299 this.type = type
1300 this.$element = $(element)
1301 this.options = this.getOptions(options)
1302 this.$viewport = this.options.viewport && $($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport))
1303 this.inState = { click: false, hover: false, focus: false }
1304
1305 if (this.$element[0] instanceof document.constructor && !this.options.selector) {
1306 throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!')
1307 }
1308
1309 var triggers = this.options.trigger.split(' ')
1310
1311 for (var i = triggers.length; i--;) {
1312 var trigger = triggers[i]
1313
1314 if (trigger == 'click') {
1315 this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))
1316 } else if (trigger != 'manual') {
1317 var eventIn = trigger == 'hover' ? 'mouseenter' : 'focusin'
1318 var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'
1319
1320 this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))
1321 this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))
1322 }
1323 }
1324
1325 this.options.selector ?
1326 (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :
1327 this.fixTitle()
1328 }
1329
1330 Tooltip.prototype.getDefaults = function () {
1331 return Tooltip.DEFAULTS
1332 }
1333
1334 Tooltip.prototype.getOptions = function (options) {
1335 options = $.extend({}, this.getDefaults(), this.$element.data(), options)
1336
1337 if (options.delay && typeof options.delay == 'number') {
1338 options.delay = {
1339 show: options.delay,
1340 hide: options.delay
1341 }
1342 }
1343
1344 return options
1345 }
1346
1347 Tooltip.prototype.getDelegateOptions = function () {
1348 var options = {}
1349 var defaults = this.getDefaults()
1350
1351 this._options && $.each(this._options, function (key, value) {
1352 if (defaults[key] != value) options[key] = value
1353 })
1354
1355 return options
1356 }
1357
1358 Tooltip.prototype.enter = function (obj) {
1359 var self = obj instanceof this.constructor ?
1360 obj : $(obj.currentTarget).data('bs.' + this.type)
1361
1362 if (!self) {
1363 self = new this.constructor(obj.currentTarget, this.getDelegateOptions())
1364 $(obj.currentTarget).data('bs.' + this.type, self)
1365 }
1366
1367 if (obj instanceof $.Event) {
1368 self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true
1369 }
1370
1371 if (self.tip().hasClass('in') || self.hoverState == 'in') {
1372 self.hoverState = 'in'
1373 return
1374 }
1375
1376 clearTimeout(self.timeout)
1377
1378 self.hoverState = 'in'
1379
1380 if (!self.options.delay || !self.options.delay.show) return self.show()
1381
1382 self.timeout = setTimeout(function () {
1383 if (self.hoverState == 'in') self.show()
1384 }, self.options.delay.show)
1385 }
1386
1387 Tooltip.prototype.isInStateTrue = function () {
1388 for (var key in this.inState) {
1389 if (this.inState[key]) return true
1390 }
1391
1392 return false
1393 }
1394
1395 Tooltip.prototype.leave = function (obj) {
1396 var self = obj instanceof this.constructor ?
1397 obj : $(obj.currentTarget).data('bs.' + this.type)
1398
1399 if (!self) {
1400 self = new this.constructor(obj.currentTarget, this.getDelegateOptions())
1401 $(obj.currentTarget).data('bs.' + this.type, self)
1402 }
1403
1404 if (obj instanceof $.Event) {
1405 self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false
1406 }
1407
1408 if (self.isInStateTrue()) return
1409
1410 clearTimeout(self.timeout)
1411
1412 self.hoverState = 'out'
1413
1414 if (!self.options.delay || !self.options.delay.hide) return self.hide()
1415
1416 self.timeout = setTimeout(function () {
1417 if (self.hoverState == 'out') self.hide()
1418 }, self.options.delay.hide)
1419 }
1420
1421 Tooltip.prototype.show = function () {
1422 var e = $.Event('show.bs.' + this.type)
1423
1424 if (this.hasContent() && this.enabled) {
1425 this.$element.trigger(e)
1426
1427 var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0])
1428 if (e.isDefaultPrevented() || !inDom) return
1429 var that = this
1430
1431 var $tip = this.tip()
1432
1433 var tipId = this.getUID(this.type)
1434
1435 this.setContent()
1436 $tip.attr('id', tipId)
1437 this.$element.attr('aria-describedby', tipId)
1438
1439 if (this.options.animation) $tip.addClass('fade')
1440
1441 var placement = typeof this.options.placement == 'function' ?
1442 this.options.placement.call(this, $tip[0], this.$element[0]) :
1443 this.options.placement
1444
1445 var autoToken = /\s?auto?\s?/i
1446 var autoPlace = autoToken.test(placement)
1447 if (autoPlace) placement = placement.replace(autoToken, '') || 'top'
1448
1449 $tip
1450 .detach()
1451 .css({ top: 0, left: 0, display: 'block' })
1452 .addClass(placement)
1453 .data('bs.' + this.type, this)
1454
1455 this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)
1456 this.$element.trigger('inserted.bs.' + this.type)
1457
1458 var pos = this.getPosition()
1459 var actualWidth = $tip[0].offsetWidth
1460 var actualHeight = $tip[0].offsetHeight
1461
1462 if (autoPlace) {
1463 var orgPlacement = placement
1464 var viewportDim = this.getPosition(this.$viewport)
1465
1466 placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top' :
1467 placement == 'top' && pos.top - actualHeight < viewportDim.top ? 'bottom' :
1468 placement == 'right' && pos.right + actualWidth > viewportDim.width ? 'left' :
1469 placement == 'left' && pos.left - actualWidth < viewportDim.left ? 'right' :
1470 placement
1471
1472 $tip
1473 .removeClass(orgPlacement)
1474 .addClass(placement)
1475 }
1476
1477 var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)
1478
1479 this.applyPlacement(calculatedOffset, placement)
1480
1481 var complete = function () {
1482 var prevHoverState = that.hoverState
1483 that.$element.trigger('shown.bs.' + that.type)
1484 that.hoverState = null
1485
1486 if (prevHoverState == 'out') that.leave(that)
1487 }
1488
1489 $.support.transition && this.$tip.hasClass('fade') ?
1490 $tip
1491 .one('bsTransitionEnd', complete)
1492 .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :
1493 complete()
1494 }
1495 }
1496
1497 Tooltip.prototype.applyPlacement = function (offset, placement) {
1498 var $tip = this.tip()
1499 var width = $tip[0].offsetWidth
1500 var height = $tip[0].offsetHeight
1501
1502 // manually read margins because getBoundingClientRect includes difference
1503 var marginTop = parseInt($tip.css('margin-top'), 10)
1504 var marginLeft = parseInt($tip.css('margin-left'), 10)
1505
1506 // we must check for NaN for ie 8/9
1507 if (isNaN(marginTop)) marginTop = 0
1508 if (isNaN(marginLeft)) marginLeft = 0
1509
1510 offset.top += marginTop
1511 offset.left += marginLeft
1512
1513 // $.fn.offset doesn't round pixel values
1514 // so we use setOffset directly with our own function B-0
1515 $.offset.setOffset($tip[0], $.extend({
1516 using: function (props) {
1517 $tip.css({
1518 top: Math.round(props.top),
1519 left: Math.round(props.left)
1520 })
1521 }
1522 }, offset), 0)
1523
1524 $tip.addClass('in')
1525
1526 // check to see if placing tip in new offset caused the tip to resize itself
1527 var actualWidth = $tip[0].offsetWidth
1528 var actualHeight = $tip[0].offsetHeight
1529
1530 if (placement == 'top' && actualHeight != height) {
1531 offset.top = offset.top + height - actualHeight
1532 }
1533
1534 var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight)
1535
1536 if (delta.left) offset.left += delta.left
1537 else offset.top += delta.top
1538
1539 var isVertical = /top|bottom/.test(placement)
1540 var arrowDelta = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight
1541 var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight'
1542
1543 $tip.offset(offset)
1544 this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical)
1545 }
1546
1547 Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) {
1548 this.arrow()
1549 .css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')
1550 .css(isVertical ? 'top' : 'left', '')
1551 }
1552
1553 Tooltip.prototype.setContent = function () {
1554 var $tip = this.tip()
1555 var title = this.getTitle()
1556
1557 $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)
1558 $tip.removeClass('fade in top bottom left right')
1559 }
1560
1561 Tooltip.prototype.hide = function (callback) {
1562 var that = this
1563 var $tip = $(this.$tip)
1564 var e = $.Event('hide.bs.' + this.type)
1565
1566 function complete() {
1567 if (that.hoverState != 'in') $tip.detach()
1568 that.$element
1569 .removeAttr('aria-describedby')
1570 .trigger('hidden.bs.' + that.type)
1571 callback && callback()
1572 }
1573
1574 this.$element.trigger(e)
1575
1576 if (e.isDefaultPrevented()) return
1577
1578 $tip.removeClass('in')
1579
1580 $.support.transition && $tip.hasClass('fade') ?
1581 $tip
1582 .one('bsTransitionEnd', complete)
1583 .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :
1584 complete()
1585
1586 this.hoverState = null
1587
1588 return this
1589 }
1590
1591 Tooltip.prototype.fixTitle = function () {
1592 var $e = this.$element
1593 if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') {
1594 $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')
1595 }
1596 }
1597
1598 Tooltip.prototype.hasContent = function () {
1599 return this.getTitle()
1600 }
1601
1602 Tooltip.prototype.getPosition = function ($element) {
1603 $element = $element || this.$element
1604
1605 var el = $element[0]
1606 var isBody = el.tagName == 'BODY'
1607
1608 var elRect = el.getBoundingClientRect()
1609 if (elRect.width == null) {
1610 // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093
1611 elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top })
1612 }
1613 var elOffset = isBody ? { top: 0, left: 0 } : $element.offset()
1614 var scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() }
1615 var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null
1616
1617 return $.extend({}, elRect, scroll, outerDims, elOffset)
1618 }
1619
1620 Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {
1621 return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } :
1622 placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :
1623 placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :
1624 /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }
1625
1626 }
1627
1628 Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) {
1629 var delta = { top: 0, left: 0 }
1630 if (!this.$viewport) return delta
1631
1632 var viewportPadding = this.options.viewport && this.options.viewport.padding || 0
1633 var viewportDimensions = this.getPosition(this.$viewport)
1634
1635 if (/right|left/.test(placement)) {
1636 var topEdgeOffset = pos.top - viewportPadding - viewportDimensions.scroll
1637 var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight
1638 if (topEdgeOffset < viewportDimensions.top) { // top overflow
1639 delta.top = viewportDimensions.top - topEdgeOffset
1640 } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow
1641 delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset
1642 }
1643 } else {
1644 var leftEdgeOffset = pos.left - viewportPadding
1645 var rightEdgeOffset = pos.left + viewportPadding + actualWidth
1646 if (leftEdgeOffset < viewportDimensions.left) { // left overflow
1647 delta.left = viewportDimensions.left - leftEdgeOffset
1648 } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow
1649 delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset
1650 }
1651 }
1652
1653 return delta
1654 }
1655
1656 Tooltip.prototype.getTitle = function () {
1657 var title
1658 var $e = this.$element
1659 var o = this.options
1660
1661 title = $e.attr('data-original-title')
1662 || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title)
1663
1664 return title
1665 }
1666
1667 Tooltip.prototype.getUID = function (prefix) {
1668 do prefix += ~~(Math.random() * 1000000)
1669 while (document.getElementById(prefix))
1670 return prefix
1671 }
1672
1673 Tooltip.prototype.tip = function () {
1674 if (!this.$tip) {
1675 this.$tip = $(this.options.template)
1676 if (this.$tip.length != 1) {
1677 throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!')
1678 }
1679 }
1680 return this.$tip
1681 }
1682
1683 Tooltip.prototype.arrow = function () {
1684 return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))
1685 }
1686
1687 Tooltip.prototype.enable = function () {
1688 this.enabled = true
1689 }
1690
1691 Tooltip.prototype.disable = function () {
1692 this.enabled = false
1693 }
1694
1695 Tooltip.prototype.toggleEnabled = function () {
1696 this.enabled = !this.enabled
1697 }
1698
1699 Tooltip.prototype.toggle = function (e) {
1700 var self = this
1701 if (e) {
1702 self = $(e.currentTarget).data('bs.' + this.type)
1703 if (!self) {
1704 self = new this.constructor(e.currentTarget, this.getDelegateOptions())
1705 $(e.currentTarget).data('bs.' + this.type, self)
1706 }
1707 }
1708
1709 if (e) {
1710 self.inState.click = !self.inState.click
1711 if (self.isInStateTrue()) self.enter(self)
1712 else self.leave(self)
1713 } else {
1714 self.tip().hasClass('in') ? self.leave(self) : self.enter(self)
1715 }
1716 }
1717
1718 Tooltip.prototype.destroy = function () {
1719 var that = this
1720 clearTimeout(this.timeout)
1721 this.hide(function () {
1722 that.$element.off('.' + that.type).removeData('bs.' + that.type)
1723 if (that.$tip) {
1724 that.$tip.detach()
1725 }
1726 that.$tip = null
1727 that.$arrow = null
1728 that.$viewport = null
1729 })
1730 }
1731
1732
1733 // TOOLTIP PLUGIN DEFINITION
1734 // =========================
1735
1736 function Plugin(option) {
1737 return this.each(function () {
1738 var $this = $(this)
1739 var data = $this.data('bs.tooltip')
1740 var options = typeof option == 'object' && option
1741
1742 if (!data && /destroy|hide/.test(option)) return
1743 if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))
1744 if (typeof option == 'string') data[option]()
1745 })
1746 }
1747
1748 var old = $.fn.tooltip
1749
1750 $.fn.tooltip = Plugin
1751 $.fn.tooltip.Constructor = Tooltip
1752
1753
1754 // TOOLTIP NO CONFLICT
1755 // ===================
1756
1757 $.fn.tooltip.noConflict = function () {
1758 $.fn.tooltip = old
1759 return this
1760 }
1761
1762 }(jQuery);
1763
1764 /* ========================================================================
1765 * Bootstrap: popover.js v3.3.6
1766 * http://getbootstrap.com/javascript/#popovers
1767 * ========================================================================
1768 * Copyright 2011-2015 Twitter, Inc.
1769 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
1770 * ======================================================================== */
1771
1772
1773 +function ($) {
1774 'use strict';
1775
1776 // POPOVER PUBLIC CLASS DEFINITION
1777 // ===============================
1778
1779 var Popover = function (element, options) {
1780 this.init('popover', element, options)
1781 }
1782
1783 if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')
1784
1785 Popover.VERSION = '3.3.6'
1786
1787 Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {
1788 placement: 'right',
1789 trigger: 'click',
1790 content: '',
1791 template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
1792 })
1793
1794
1795 // NOTE: POPOVER EXTENDS tooltip.js
1796 // ================================
1797
1798 Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype)
1799
1800 Popover.prototype.constructor = Popover
1801
1802 Popover.prototype.getDefaults = function () {
1803 return Popover.DEFAULTS
1804 }
1805
1806 Popover.prototype.setContent = function () {
1807 var $tip = this.tip()
1808 var title = this.getTitle()
1809 var content = this.getContent()
1810
1811 $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)
1812 $tip.find('.popover-content').children().detach().end()[ // we use append for html objects to maintain js events
1813 this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text'
1814 ](content)
1815
1816 $tip.removeClass('fade top bottom left right in')
1817
1818 // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do
1819 // this manually by checking the contents.
1820 if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide()
1821 }
1822
1823 Popover.prototype.hasContent = function () {
1824 return this.getTitle() || this.getContent()
1825 }
1826
1827 Popover.prototype.getContent = function () {
1828 var $e = this.$element
1829 var o = this.options
1830
1831 return $e.attr('data-content')
1832 || (typeof o.content == 'function' ?
1833 o.content.call($e[0]) :
1834 o.content)
1835 }
1836
1837 Popover.prototype.arrow = function () {
1838 return (this.$arrow = this.$arrow || this.tip().find('.arrow'))
1839 }
1840
1841
1842 // POPOVER PLUGIN DEFINITION
1843 // =========================
1844
1845 function Plugin(option) {
1846 return this.each(function () {
1847 var $this = $(this)
1848 var data = $this.data('bs.popover')
1849 var options = typeof option == 'object' && option
1850
1851 if (!data && /destroy|hide/.test(option)) return
1852 if (!data) $this.data('bs.popover', (data = new Popover(this, options)))
1853 if (typeof option == 'string') data[option]()
1854 })
1855 }
1856
1857 var old = $.fn.popover
1858
1859 $.fn.popover = Plugin
1860 $.fn.popover.Constructor = Popover
1861
1862
1863 // POPOVER NO CONFLICT
1864 // ===================
1865
1866 $.fn.popover.noConflict = function () {
1867 $.fn.popover = old
1868 return this
1869 }
1870
1871 }(jQuery);
1872
1873 /* ========================================================================
1874 * Bootstrap: scrollspy.js v3.3.6
1875 * http://getbootstrap.com/javascript/#scrollspy
1876 * ========================================================================
1877 * Copyright 2011-2015 Twitter, Inc.
1878 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
1879 * ======================================================================== */
1880
1881
1882 +function ($) {
1883 'use strict';
1884
1885 // SCROLLSPY CLASS DEFINITION
1886 // ==========================
1887
1888 function ScrollSpy(element, options) {
1889 this.$body = $(document.body)
1890 this.$scrollElement = $(element).is(document.body) ? $(window) : $(element)
1891 this.options = $.extend({}, ScrollSpy.DEFAULTS, options)
1892 this.selector = (this.options.target || '') + ' .nav li > a'
1893 this.offsets = []
1894 this.targets = []
1895 this.activeTarget = null
1896 this.scrollHeight = 0
1897
1898 this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this))
1899 this.refresh()
1900 this.process()
1901 }
1902
1903 ScrollSpy.VERSION = '3.3.6'
1904
1905 ScrollSpy.DEFAULTS = {
1906 offset: 10
1907 }
1908
1909 ScrollSpy.prototype.getScrollHeight = function () {
1910 return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)
1911 }
1912
1913 ScrollSpy.prototype.refresh = function () {
1914 var that = this
1915 var offsetMethod = 'offset'
1916 var offsetBase = 0
1917
1918 this.offsets = []
1919 this.targets = []
1920 this.scrollHeight = this.getScrollHeight()
1921
1922 if (!$.isWindow(this.$scrollElement[0])) {
1923 offsetMethod = 'position'
1924 offsetBase = this.$scrollElement.scrollTop()
1925 }
1926
1927 this.$body
1928 .find(this.selector)
1929 .map(function () {
1930 var $el = $(this)
1931 var href = $el.data('target') || $el.attr('href')
1932 var $href = /^#./.test(href) && $(href)
1933
1934 return ($href
1935 && $href.length
1936 && $href.is(':visible')
1937 && [[$href[offsetMethod]().top + offsetBase, href]]) || null
1938 })
1939 .sort(function (a, b) { return a[0] - b[0] })
1940 .each(function () {
1941 that.offsets.push(this[0])
1942 that.targets.push(this[1])
1943 })
1944 }
1945
1946 ScrollSpy.prototype.process = function () {
1947 var scrollTop = this.$scrollElement.scrollTop() + this.options.offset
1948 var scrollHeight = this.getScrollHeight()
1949 var maxScroll = this.options.offset + scrollHeight - this.$scrollElement.height()
1950 var offsets = this.offsets
1951 var targets = this.targets
1952 var activeTarget = this.activeTarget
1953 var i
1954
1955 if (this.scrollHeight != scrollHeight) {
1956 this.refresh()
1957 }
1958
1959 if (scrollTop >= maxScroll) {
1960 return activeTarget != (i = targets[targets.length - 1]) && this.activate(i)
1961 }
1962
1963 if (activeTarget && scrollTop < offsets[0]) {
1964 this.activeTarget = null
1965 return this.clear()
1966 }
1967
1968 for (i = offsets.length; i--;) {
1969 activeTarget != targets[i]
1970 && scrollTop >= offsets[i]
1971 && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1])
1972 && this.activate(targets[i])
1973 }
1974 }
1975
1976 ScrollSpy.prototype.activate = function (target) {
1977 this.activeTarget = target
1978
1979 this.clear()
1980
1981 var selector = this.selector +
1982 '[data-target="' + target + '"],' +
1983 this.selector + '[href="' + target + '"]'
1984
1985 var active = $(selector)
1986 .parents('li')
1987 .addClass('active')
1988
1989 if (active.parent('.dropdown-menu').length) {
1990 active = active
1991 .closest('li.dropdown')
1992 .addClass('active')
1993 }
1994
1995 active.trigger('activate.bs.scrollspy')
1996 }
1997
1998 ScrollSpy.prototype.clear = function () {
1999 $(this.selector)
2000 .parentsUntil(this.options.target, '.active')
2001 .removeClass('active')
2002 }
2003
2004
2005 // SCROLLSPY PLUGIN DEFINITION
2006 // ===========================
2007
2008 function Plugin(option) {
2009 return this.each(function () {
2010 var $this = $(this)
2011 var data = $this.data('bs.scrollspy')
2012 var options = typeof option == 'object' && option
2013
2014 if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options)))
2015 if (typeof option == 'string') data[option]()
2016 })
2017 }
2018
2019 var old = $.fn.scrollspy
2020
2021 $.fn.scrollspy = Plugin
2022 $.fn.scrollspy.Constructor = ScrollSpy
2023
2024
2025 // SCROLLSPY NO CONFLICT
2026 // =====================
2027
2028 $.fn.scrollspy.noConflict = function () {
2029 $.fn.scrollspy = old
2030 return this
2031 }
2032
2033
2034 // SCROLLSPY DATA-API
2035 // ==================
2036
2037 $(window).on('load.bs.scrollspy.data-api', function () {
2038 $('[data-spy="scroll"]').each(function () {
2039 var $spy = $(this)
2040 Plugin.call($spy, $spy.data())
2041 })
2042 })
2043
2044 }(jQuery);
2045
2046 /* ========================================================================
2047 * Bootstrap: tab.js v3.3.6
2048 * http://getbootstrap.com/javascript/#tabs
2049 * ========================================================================
2050 * Copyright 2011-2015 Twitter, Inc.
2051 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
2052 * ======================================================================== */
2053
2054
2055 +function ($) {
2056 'use strict';
2057
2058 // TAB CLASS DEFINITION
2059 // ====================
2060
2061 var Tab = function (element) {
2062 // jscs:disable requireDollarBeforejQueryAssignment
2063 this.element = $(element)
2064 // jscs:enable requireDollarBeforejQueryAssignment
2065 }
2066
2067 Tab.VERSION = '3.3.6'
2068
2069 Tab.TRANSITION_DURATION = 150
2070
2071 Tab.prototype.show = function () {
2072 var $this = this.element
2073 var $ul = $this.closest('ul:not(.dropdown-menu)')
2074 var selector = $this.data('target')
2075
2076 if (!selector) {
2077 selector = $this.attr('href')
2078 selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
2079 }
2080
2081 if ($this.parent('li').hasClass('active')) return
2082
2083 var $previous = $ul.find('.active:last a')
2084 var hideEvent = $.Event('hide.bs.tab', {
2085 relatedTarget: $this[0]
2086 })
2087 var showEvent = $.Event('show.bs.tab', {
2088 relatedTarget: $previous[0]
2089 })
2090
2091 $previous.trigger(hideEvent)
2092 $this.trigger(showEvent)
2093
2094 if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return
2095
2096 var $target = $(selector)
2097
2098 this.activate($this.closest('li'), $ul)
2099 this.activate($target, $target.parent(), function () {
2100 $previous.trigger({
2101 type: 'hidden.bs.tab',
2102 relatedTarget: $this[0]
2103 })
2104 $this.trigger({
2105 type: 'shown.bs.tab',
2106 relatedTarget: $previous[0]
2107 })
2108 })
2109 }
2110
2111 Tab.prototype.activate = function (element, container, callback) {
2112 var $active = container.find('> .active')
2113 var transition = callback
2114 && $.support.transition
2115 && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length)
2116
2117 function next() {
2118 $active
2119 .removeClass('active')
2120 .find('> .dropdown-menu > .active')
2121 .removeClass('active')
2122 .end()
2123 .find('[data-toggle="tab"]')
2124 .attr('aria-expanded', false)
2125
2126 element
2127 .addClass('active')
2128 .find('[data-toggle="tab"]')
2129 .attr('aria-expanded', true)
2130
2131 if (transition) {
2132 element[0].offsetWidth // reflow for transition
2133 element.addClass('in')
2134 } else {
2135 element.removeClass('fade')
2136 }
2137
2138 if (element.parent('.dropdown-menu').length) {
2139 element
2140 .closest('li.dropdown')
2141 .addClass('active')
2142 .end()
2143 .find('[data-toggle="tab"]')
2144 .attr('aria-expanded', true)
2145 }
2146
2147 callback && callback()
2148 }
2149
2150 $active.length && transition ?
2151 $active
2152 .one('bsTransitionEnd', next)
2153 .emulateTransitionEnd(Tab.TRANSITION_DURATION) :
2154 next()
2155
2156 $active.removeClass('in')
2157 }
2158
2159
2160 // TAB PLUGIN DEFINITION
2161 // =====================
2162
2163 function Plugin(option) {
2164 return this.each(function () {
2165 var $this = $(this)
2166 var data = $this.data('bs.tab')
2167
2168 if (!data) $this.data('bs.tab', (data = new Tab(this)))
2169 if (typeof option == 'string') data[option]()
2170 })
2171 }
2172
2173 var old = $.fn.tab
2174
2175 $.fn.tab = Plugin
2176 $.fn.tab.Constructor = Tab
2177
2178
2179 // TAB NO CONFLICT
2180 // ===============
2181
2182 $.fn.tab.noConflict = function () {
2183 $.fn.tab = old
2184 return this
2185 }
2186
2187
2188 // TAB DATA-API
2189 // ============
2190
2191 var clickHandler = function (e) {
2192 e.preventDefault()
2193 Plugin.call($(this), 'show')
2194 }
2195
2196 $(document)
2197 .on('click.bs.tab.data-api', '[data-toggle="tab"]', clickHandler)
2198 .on('click.bs.tab.data-api', '[data-toggle="pill"]', clickHandler)
2199
2200 }(jQuery);
2201
2202 /* ========================================================================
2203 * Bootstrap: affix.js v3.3.6
2204 * http://getbootstrap.com/javascript/#affix
2205 * ========================================================================
2206 * Copyright 2011-2015 Twitter, Inc.
2207 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
2208 * ======================================================================== */
2209
2210
2211 +function ($) {
2212 'use strict';
2213
2214 // AFFIX CLASS DEFINITION
2215 // ======================
2216
2217 var Affix = function (element, options) {
2218 this.options = $.extend({}, Affix.DEFAULTS, options)
2219
2220 this.$target = $(this.options.target)
2221 .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))
2222 .on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this))
2223
2224 this.$element = $(element)
2225 this.affixed = null
2226 this.unpin = null
2227 this.pinnedOffset = null
2228
2229 this.checkPosition()
2230 }
2231
2232 Affix.VERSION = '3.3.6'
2233
2234 Affix.RESET = 'affix affix-top affix-bottom'
2235
2236 Affix.DEFAULTS = {
2237 offset: 0,
2238 target: window
2239 }
2240
2241 Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) {
2242 var scrollTop = this.$target.scrollTop()
2243 var position = this.$element.offset()
2244 var targetHeight = this.$target.height()
2245
2246 if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false
2247
2248 if (this.affixed == 'bottom') {
2249 if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom'
2250 return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom'
2251 }
2252
2253 var initializing = this.affixed == null
2254 var colliderTop = initializing ? scrollTop : position.top
2255 var colliderHeight = initializing ? targetHeight : height
2256
2257 if (offsetTop != null && scrollTop <= offsetTop) return 'top'
2258 if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom'
2259
2260 return false
2261 }
2262
2263 Affix.prototype.getPinnedOffset = function () {
2264 if (this.pinnedOffset) return this.pinnedOffset
2265 this.$element.removeClass(Affix.RESET).addClass('affix')
2266 var scrollTop = this.$target.scrollTop()
2267 var position = this.$element.offset()
2268 return (this.pinnedOffset = position.top - scrollTop)
2269 }
2270
2271 Affix.prototype.checkPositionWithEventLoop = function () {
2272 setTimeout($.proxy(this.checkPosition, this), 1)
2273 }
2274
2275 Affix.prototype.checkPosition = function () {
2276 if (!this.$element.is(':visible')) return
2277
2278 var height = this.$element.height()
2279 var offset = this.options.offset
2280 var offsetTop = offset.top
2281 var offsetBottom = offset.bottom
2282 var scrollHeight = Math.max($(document).height(), $(document.body).height())
2283
2284 if (typeof offset != 'object') offsetBottom = offsetTop = offset
2285 if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element)
2286 if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)
2287
2288 var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom)
2289
2290 if (this.affixed != affix) {
2291 if (this.unpin != null) this.$element.css('top', '')
2292
2293 var affixType = 'affix' + (affix ? '-' + affix : '')
2294 var e = $.Event(affixType + '.bs.affix')
2295
2296 this.$element.trigger(e)
2297
2298 if (e.isDefaultPrevented()) return
2299
2300 this.affixed = affix
2301 this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null
2302
2303 this.$element
2304 .removeClass(Affix.RESET)
2305 .addClass(affixType)
2306 .trigger(affixType.replace('affix', 'affixed') + '.bs.affix')
2307 }
2308
2309 if (affix == 'bottom') {
2310 this.$element.offset({
2311 top: scrollHeight - height - offsetBottom
2312 })
2313 }
2314 }
2315
2316
2317 // AFFIX PLUGIN DEFINITION
2318 // =======================
2319
2320 function Plugin(option) {
2321 return this.each(function () {
2322 var $this = $(this)
2323 var data = $this.data('bs.affix')
2324 var options = typeof option == 'object' && option
2325
2326 if (!data) $this.data('bs.affix', (data = new Affix(this, options)))
2327 if (typeof option == 'string') data[option]()
2328 })
2329 }
2330
2331 var old = $.fn.affix
2332
2333 $.fn.affix = Plugin
2334 $.fn.affix.Constructor = Affix
2335
2336
2337 // AFFIX NO CONFLICT
2338 // =================
2339
2340 $.fn.affix.noConflict = function () {
2341 $.fn.affix = old
2342 return this
2343 }
2344
2345
2346 // AFFIX DATA-API
2347 // ==============
2348
2349 $(window).on('load', function () {
2350 $('[data-spy="affix"]').each(function () {
2351 var $spy = $(this)
2352 var data = $spy.data()
2353
2354 data.offset = data.offset || {}
2355
2356 if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom
2357 if (data.offsetTop != null) data.offset.top = data.offsetTop
2358
2359 Plugin.call($spy, data)
2360 })
2361 })
2362
2363 }(jQuery);
1 /*!
2 * Bootstrap v3.3.6 (http://getbootstrap.com)
3 * Copyright 2011-2015 Twitter, Inc.
4 * Licensed under the MIT license
5 */
6 if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1||b[0]>2)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 3")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){return a(b.target).is(this)?b.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.6",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a(f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.6",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")?(c.prop("checked")&&(a=!1),b.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==c.prop("type")&&(c.prop("checked")!==this.$element.hasClass("active")&&(a=!1),this.$element.toggleClass("active")),c.prop("checked",this.$element.hasClass("active")),a&&c.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target);d.hasClass("btn")||(d=d.closest(".btn")),b.call(d,"toggle"),a(c.target).is('input[type="radio"]')||a(c.target).is('input[type="checkbox"]')||c.preventDefault()}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.6",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));return a>this.$items.length-1||0>a?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){return this.sliding?void 0:this.slide("next")},c.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.6",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function c(c){c&&3===c.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=b(d),f={relatedTarget:this};e.hasClass("open")&&(c&&"click"==c.type&&/input|textarea/i.test(c.target.tagName)&&a.contains(e[0],c.target)||(e.trigger(c=a.Event("hide.bs.dropdown",f)),c.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger(a.Event("hidden.bs.dropdown",f)))))}))}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.6",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=b(e),g=f.hasClass("open");if(c(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",c);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger(a.Event("shown.bs.dropdown",h))}return!1}},g.prototype.keydown=function(c){if(/(38|40|27|32)/.test(c.which)&&!/input|textarea/i.test(c.target.tagName)){var d=a(this);if(c.preventDefault(),c.stopPropagation(),!d.is(".disabled, :disabled")){var e=b(d),g=e.hasClass("open");if(!g&&27!=c.which||g&&27==c.which)return 27==c.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.disabled):visible a",i=e.find(".dropdown-menu"+h);if(i.length){var j=i.index(c.target);38==c.which&&j>0&&j--,40==c.which&&j<i.length-1&&j++,~j||(j=0),i.eq(j).trigger("focus")}}}};var h=a.fn.dropdown;a.fn.dropdown=d,a.fn.dropdown.Constructor=g,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=h,this},a(document).on("click.bs.dropdown.data-api",c).on("click.bs.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",f,g.prototype.toggle).on("keydown.bs.dropdown.data-api",f,g.prototype.keydown).on("keydown.bs.dropdown.data-api",".dropdown-menu",g.prototype.keydown)}(jQuery),+function(a){"use strict";function b(b,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},c.DEFAULTS,e.data(),"object"==typeof b&&b);f||e.data("bs.modal",f=new c(this,g)),"string"==typeof b?f[b](d):g.show&&f.show(d)})}var c=function(b,c){this.options=c,this.$body=a(document.body),this.$element=a(b),this.$dialog=this.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};c.VERSION="3.3.6",c.TRANSITION_DURATION=300,c.BACKDROP_TRANSITION_DURATION=150,c.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},c.prototype.toggle=function(a){return this.isShown?this.hide():this.show(a)},c.prototype.show=function(b){var d=this,e=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(e),this.isShown||e.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.bs.modal",function(){d.$element.one("mouseup.dismiss.bs.modal",function(b){a(b.target).is(d.$element)&&(d.ignoreBackdropClick=!0)})}),this.backdrop(function(){var e=a.support.transition&&d.$element.hasClass("fade");d.$element.parent().length||d.$element.appendTo(d.$body),d.$element.show().scrollTop(0),d.adjustDialog(),e&&d.$element[0].offsetWidth,d.$element.addClass("in"),d.enforceFocus();var f=a.Event("shown.bs.modal",{relatedTarget:b});e?d.$dialog.one("bsTransitionEnd",function(){d.$element.trigger("focus").trigger(f)}).emulateTransitionEnd(c.TRANSITION_DURATION):d.$element.trigger("focus").trigger(f)}))},c.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"),this.$dialog.off("mousedown.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",a.proxy(this.hideModal,this)).emulateTransitionEnd(c.TRANSITION_DURATION):this.hideModal())},c.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.trigger("focus")},this))},c.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},c.prototype.resize=function(){this.isShown?a(window).on("resize.bs.modal",a.proxy(this.handleUpdate,this)):a(window).off("resize.bs.modal")},c.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.$body.removeClass("modal-open"),a.resetAdjustments(),a.resetScrollbar(),a.$element.trigger("hidden.bs.modal")})},c.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},c.prototype.backdrop=function(b){var d=this,e=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var f=a.support.transition&&e;if(this.$backdrop=a(document.createElement("div")).addClass("modal-backdrop "+e).appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",a.proxy(function(a){return this.ignoreBackdropClick?void(this.ignoreBackdropClick=!1):void(a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide()))},this)),f&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;f?this.$backdrop.one("bsTransitionEnd",b).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var g=function(){d.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",g).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):g()}else b&&b()},c.prototype.handleUpdate=function(){this.adjustDialog()},c.prototype.adjustDialog=function(){var a=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth<a,this.scrollbarWidth=this.measureScrollbar()},c.prototype.setScrollbar=function(){var a=parseInt(this.$body.css("padding-right")||0,10);this.originalBodyPad=document.body.style.paddingRight||"",this.bodyIsOverflowing&&this.$body.css("padding-right",a+this.scrollbarWidth)},c.prototype.resetScrollbar=function(){this.$body.css("padding-right",this.originalBodyPad)},c.prototype.measureScrollbar=function(){var a=document.createElement("div");a.className="modal-scrollbar-measure",this.$body.append(a);var b=a.offsetWidth-a.clientWidth;return this.$body[0].removeChild(a),b};var d=a.fn.modal;a.fn.modal=b,a.fn.modal.Constructor=c,a.fn.modal.noConflict=function(){return a.fn.modal=d,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(c){var d=a(this),e=d.attr("href"),f=a(d.attr("data-target")||e&&e.replace(/.*(?=#[^\s]+$)/,"")),g=f.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(e)&&e},f.data(),d.data());d.is("a")&&c.preventDefault(),f.one("show.bs.modal",function(a){a.isDefaultPrevented()||f.one("hidden.bs.modal",function(){d.is(":visible")&&d.trigger("focus")})}),b.call(f,g,this)})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof b&&b;(e||!/destroy|hide/.test(b))&&(e||d.data("bs.tooltip",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.type=null,this.options=null,this.enabled=null,this.timeout=null,this.hoverState=null,this.$element=null,this.inState=null,this.init("tooltip",a,b)};c.VERSION="3.3.6",c.TRANSITION_DURATION=150,c.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(a.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusin"==b.type?"focus":"hover"]=!0),c.tip().hasClass("in")||"in"==c.hoverState?void(c.hoverState="in"):(clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.isInStateTrue=function(){for(var a in this.inState)if(this.inState[a])return!0;return!1},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusout"==b.type?"focus":"hover"]=!1),c.isInStateTrue()?void 0:(clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide())},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.getPosition(this.$viewport);h="bottom"==h&&k.bottom+m>o.bottom?"top":"top"==h&&k.top-m<o.top?"bottom":"right"==h&&k.right+l>o.width?"left":"left"==h&&k.left-l<o.left?"right":h,f.removeClass(n).addClass(h)}var p=this.getCalculatedOffset(h,k,l,m);this.applyPlacement(p,h);var q=function(){var a=e.hoverState;e.$element.trigger("shown.bs."+e.type),e.hoverState=null,"out"==a&&e.leave(e)};a.support.transition&&this.$tip.hasClass("fade")?f.one("bsTransitionEnd",q).emulateTransitionEnd(c.TRANSITION_DURATION):q()}},c.prototype.applyPlacement=function(b,c){var d=this.tip(),e=d[0].offsetWidth,f=d[0].offsetHeight,g=parseInt(d.css("margin-top"),10),h=parseInt(d.css("margin-left"),10);isNaN(g)&&(g=0),isNaN(h)&&(h=0),b.top+=g,b.left+=h,a.offset.setOffset(d[0],a.extend({using:function(a){d.css({top:Math.round(a.top),left:Math.round(a.left)})}},b),0),d.addClass("in");var i=d[0].offsetWidth,j=d[0].offsetHeight;"top"==c&&j!=f&&(b.top=b.top+f-j);var k=this.getViewportAdjustedDelta(c,b,i,j);k.left?b.left+=k.left:b.top+=k.top;var l=/top|bottom/.test(c),m=l?2*k.left-e+i:2*k.top-f+j,n=l?"offsetWidth":"offsetHeight";d.offset(b),this.replaceArrow(m,d[0][n],l)},c.prototype.replaceArrow=function(a,b,c){this.arrow().css(c?"left":"top",50*(1-a/b)+"%").css(c?"top":"left","")},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},c.prototype.hide=function(b){function d(){"in"!=e.hoverState&&f.detach(),e.$element.removeAttr("aria-describedby").trigger("hidden.bs."+e.type),b&&b()}var e=this,f=a(this.$tip),g=a.Event("hide.bs."+this.type);return this.$element.trigger(g),g.isDefaultPrevented()?void 0:(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one("bsTransitionEnd",d).emulateTransitionEnd(c.TRANSITION_DURATION):d(),this.hoverState=null,this)},c.prototype.fixTitle=function(){var a=this.$element;(a.attr("title")||"string"!=typeof a.attr("data-original-title"))&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},c.prototype.hasContent=function(){return this.getTitle()},c.prototype.getPosition=function(b){b=b||this.$element;var c=b[0],d="BODY"==c.tagName,e=c.getBoundingClientRect();null==e.width&&(e=a.extend({},e,{width:e.right-e.left,height:e.bottom-e.top}));var f=d?{top:0,left:0}:b.offset(),g={scroll:d?document.documentElement.scrollTop||document.body.scrollTop:b.scrollTop()},h=d?{width:a(window).width(),height:a(window).height()}:null;return a.extend({},e,g,h,f)},c.prototype.getCalculatedOffset=function(a,b,c,d){return"bottom"==a?{top:b.top+b.height,left:b.left+b.width/2-c/2}:"top"==a?{top:b.top-d,left:b.left+b.width/2-c/2}:"left"==a?{top:b.top+b.height/2-d/2,left:b.left-c}:{top:b.top+b.height/2-d/2,left:b.left+b.width}},c.prototype.getViewportAdjustedDelta=function(a,b,c,d){var e={top:0,left:0};if(!this.$viewport)return e;var f=this.options.viewport&&this.options.viewport.padding||0,g=this.getPosition(this.$viewport);if(/right|left/.test(a)){var h=b.top-f-g.scroll,i=b.top+f-g.scroll+d;h<g.top?e.top=g.top-h:i>g.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;j<g.left?e.left=g.left-j:k>g.right&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=a(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),b?(c.inState.click=!c.inState.click,c.isInStateTrue()?c.enter(c):c.leave(c)):c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type),a.$tip&&a.$tip.detach(),a.$tip=null,a.$arrow=null,a.$viewport=null})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;(e||!/destroy|hide/.test(b))&&(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.6",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.6",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b<e[0])return this.activeTarget=null,this.clear();for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(void 0===e[a+1]||b<e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,this.clear();var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");
7 d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")},b.prototype.clear=function(){a(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var d=a.fn.scrollspy;a.fn.scrollspy=c,a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=d,this},a(window).on("load.bs.scrollspy.data-api",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new c(this)),"string"==typeof b&&e[b]()})}var c=function(b){this.element=a(b)};c.VERSION="3.3.6",c.TRANSITION_DURATION=150,c.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a"),f=a.Event("hide.bs.tab",{relatedTarget:b[0]}),g=a.Event("show.bs.tab",{relatedTarget:e[0]});if(e.trigger(f),b.trigger(g),!g.isDefaultPrevented()&&!f.isDefaultPrevented()){var h=a(d);this.activate(b.closest("li"),c),this.activate(h,h.parent(),function(){e.trigger({type:"hidden.bs.tab",relatedTarget:b[0]}),b.trigger({type:"shown.bs.tab",relatedTarget:e[0]})})}}},c.prototype.activate=function(b,d,e){function f(){g.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.6",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return c>e?"top":!1;if("bottom"==this.affixed)return null!=c?e+this.unpin<=f.top?!1:"bottom":a-d>=e+g?!1:"bottom";var h=null==this.affixed,i=h?e:f.top,j=h?g:b;return null!=c&&c>=e?"top":null!=d&&i+j>=a-d?"bottom":!1},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery);
...\ No newline at end of file ...\ No newline at end of file
1 // This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment.
2 require('../../js/transition.js')
3 require('../../js/alert.js')
4 require('../../js/button.js')
5 require('../../js/carousel.js')
6 require('../../js/collapse.js')
7 require('../../js/dropdown.js')
8 require('../../js/modal.js')
9 require('../../js/tooltip.js')
10 require('../../js/popover.js')
11 require('../../js/scrollspy.js')
12 require('../../js/tab.js')
13 require('../../js/affix.js')
...\ No newline at end of file ...\ No newline at end of file
1 #!/bin/sh
2
3 echo 'Start archiving files'
4 tar -zcvf wechat_front_end.tar.gz ./*
5 echo 'Finish archiving'
6
7 exit 0
1 <!DOCTYPE html>
2 <html lang="en">
3 <head>
4 <meta charset="UTF-8">
5 <meta name="format-detection" content="telephone=no"/>
6 <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no,minimal-ui" />
7 <title>联系我们</title>
8 <style type="text/css" >
9 body{
10 font-family: 黑体;
11 overflow: hidden;
12 margin: 0px;
13 border: 0px;
14 padding: 0px;
15 background-color: #ffffff;
16 color: #333333;
17 font-size: 16px;
18 }
19 .div-center{
20 margin-top: 25px;
21 margin-left: 20px;
22 }
23 .div-center div{
24 margin-top: 36px;
25 }
26 .div-bottom div{
27 margin-top: 20px;
28 }
29 .div-bottom{
30 margin-top: 105px;
31 margin-left: 20px;
32 }
33 </style>
34 </head>
35 <body>
36 <div class="div-center">
37 <div align="center" ><img src="./images/2.pic_hd.jpg" /></div>
38 <div align="center" style="margin-top: 0px;color: #999999;font-size: 18px;">东城行</div>
39 </div>
40 <div class="div-bottom">
41 <div>微信:东城行</div>
42 <div>微博:东城行</div>
43 <div>客服电话:0579-86680123</div>
44 <!--<a href="tel:4009696556">拨号</a>-->
45 </div>
46 </body>
47 </html>
1 phoneNumberhtml,body{
2 width:100%;
3 height:100%;
4 overflow: hidden;
5 }
6 li{
7 list-style: none;
8 }
9 *{
10 margin:0px;
11 padding:0px;
12 }
13 body, button, input, select, textarea {
14 font: 12px/16px Verdana, Helvetica, Arial, sans-serif;
15 }
16
17 .main{
18 width:100%;
19 height:100%;
20 }
21
22 .mapContainer {
23 display: block;
24 position: absolute;
25 width: 100%;
26 top: 0;
27 bottom: 0;
28 transition: left 0.4s linear 0s;
29 -webkit-transition: left 0.4s linear 0s;
30 }
31
32 .overlayContainer {
33 display: none;
34 position: absolute;
35 width: 180px;
36 height: 60px;
37 background: #FFFFFF;
38 text-align: center;
39 border-radius: 30px;
40 cursor: pointer;
41 box-shadow: 1px 1px 2px #919191;
42 z-index: 10;
43 }
44
45 .corner {
46 height: 12px;
47 width: 28px;
48 top: -5px;
49 position: relative;
50 }
51
52 .overlayPanelLeft {
53 float: left;
54 margin-left: 5%;
55 width: 60%;
56 height: 100%;
57 display: inline-block;
58 }
59
60 .overlayPanelLeftContentContainer {
61 height: 50%;
62 }
63
64 .overlayPanelLeftContent {
65 font-size: 14px;
66 color: #515151;
67 padding-top: 10px;
68 }
69
70
71 .overlayPanelCenter {
72 float: left;
73 width: 100%;
74 height: 50%;
75 display: inline-block;
76 border-top: 1px solid #919191;
77 }
78
79 .overlayPanelCenterContent {
80 display: block;
81 height: 50%;
82 font-size: 12px;
83 }
84
85 .overlayPanelCenterContentTop {
86 display: inline-block;
87 width: 50%;
88 color: #999999;
89 }
90
91 .overlayPanelCenterContentBottom {
92 display: inline-block;
93 width: 50%;
94 color: #999999;
95 }
96
97 .act {
98 color: #36D1E7;
99 }
100
101 .overlayPanelRight {
102 float: right;
103 width: 35%;
104 height: 100%;
105 display: inline-block;
106 padding-left: 10px;
107 border-radius: 0 30px 30px 0;
108 }
109
110 .overlayPanelRightContentContainer {
111 display: table;
112 width: 50px;
113 height: 50px;
114 border-radius: 25px;
115 margin: 5px 10px 5px 0;
116 background-image: url(../images/go.png);
117 background-size: 50px 50px;
118 }
119
120 .overlayPanelRightContent {
121 vertical-align: middle;
122 display: table-cell;
123 font-size: 18px;
124 color: #FFFFFF;
125 }
126
127 .locateControlContainer {
128 width: 36px;
129 height: 36px;
130 box-shadow: 1px 1px 2px #919191;
131 margin-left: 10px;
132 margin-bottom: 30px;
133 background: #FFFFFF;
134 border-radius: 2px;
135 }
136
137 .locateControlContent {
138 width: 30px;
139 height: 30px;
140 margin: 3px;
141 border: 1px solid #36D1E7;
142 border-radius: 15px;
143 }
144
145 .locateControlContentCenter {
146 width: 20px;
147 height: 20px;
148 margin: 4px;
149 border: 1px solid #36D1E7;
150 background: #36D1E7;
151 border-radius: 12px;
152 }
153
154 .scanControl {
155 width: 100%;
156 }
157
158 .scanControlContainer {
159 margin: auto;
160 width: 200px;
161 height: 50px;
162 opacity: 0.5;
163 display: table;
164 background: #313131;
165 margin-bottom: 25px;
166 border-radius: 25px;
167 }
168
169 .scanControlContent {
170 width: 100%;
171 text-align: center;
172 vertical-align: middle;
173 display: table-cell;
174 font-size: 18px;
175 color: #FFFFFF;
176 }
177
178 .spanResize {
179 width: 22px;
180 height: 22px;
181 }
182
183
184 .sliderMenu {
185 position: absolute;
186 top: 0;
187 bottom: 0;
188 width: 80%;
189 display: block;
190 background-color: #89DBE6;
191 transition: left 0.4s linear 0s;
192 -webkit-transition: left 0.4s linear 0s;
193 overflow: hidden;
194 }
195
196 .sliderMenu img {
197 position: absolute;
198 top: 0;
199 bottom: 0;
200 height: 100%;
201 }
202
203 .contentOpen {
204 left: 0;
205 right: 0;
206 }
207
208 .contentClose {
209 left: 80%;
210 right: -80%;
211 }
212
213 .menuOpen {
214 left: 0;
215 right: 20%;
216 }
217
218 .menuClose {
219 left: -80%;
220 right: 100%;
221 }
222
223 .menuControl {
224 width: 40px;
225 height: 40px;
226 margin-left: 10px;
227 }
228
229 .menuControl img {
230 width: 100%;
231 height: 100%;
232 }
233
234 .siteOverlay {
235 position: absolute;
236 width: 27px;
237 height: 27px;
238 z-index: 1;
239 }
240
241 .siteOverlay img {
242 width: 100%;
243 height: 100%;
244 }
245
246 .myMarker {
247 position: absolute;
248 width: 50px;
249 height: 50px;
250 }
251
252 .myMarker img {
253 width: 100%;
254 height: 100%;
255 }
256
257 .sliderContent {
258 position: absolute;
259 top: 0;
260 bottom: 0;
261 width: 100%;
262 }
263
264 .sliderMenuHeader {
265 display: block;
266 overflow: hidden;
267 width: 100%;
268 height: 108px;
269 }
270
271 .sliderMenuHeader img {
272 display: inline-block;
273 position: relative;
274 float: left;
275 width: 84px;
276 height: 84px;
277 margin-left: 28px;
278 margin: 12px 12px 12px 20px;
279 border-radius: 42px;
280 }
281
282 .sliderMenuHeaderHint {
283 display: inline-block;
284 color: #FFFFFF !important;
285 font-size: 16px;
286 max-width: 170px;
287 height: 108px;
288 line-height: 108px;
289 text-align: center;
290 }
291
292 .sliderMenuContent {
293 display: block;
294 width: 100%;
295 margin-top: 40px;
296 }
297
298 .sliderMenuItem {
299 margin-top: 15px;
300 height: 33px;
301 width: 100%;
302 }
303
304 .sliderMenuItem img {
305 display: inline-block;
306 position: relative;
307 float: left;
308 margin-left: 20px;
309 width: 33px;
310 height: 33px;
311 }
312
313 .sliderMenuItemHint {
314 display: inline-block;
315 height: 33px;
316 line-height: 33px;
317 text-align: center;
318 max-width: 100px;
319 font-size: 14px;
320 margin-left: 10px;
321 color: #FFFFFF;
322 }
323
324 /*********************wallet***********************/
325
326 .walletIconContainer {
327 margin-top: 85px;
328 width: 100%;
329 height: 95px;
330 text-align: center;
331 }
332
333 .walletIconContainer img {
334 height: 100%;
335 width: 90px;
336 }
337
338 .walletInfoTitle {
339 width: 100%;
340 text-align: center;
341 margin-top: 30px;
342 font-size: 16px;
343 color: #333333;
344 }
345
346 .walletInfoCount {
347 width: 100%;
348 text-align: center;
349 margin-top: 5px;
350 font-size: 25px;
351 color: #FEA729;
352 margin-bottom: 100px;
353 }
354
355 .walletBtn {
356 width: 100%;
357 padding-left: 5px;
358 padding-right: 5px;
359 color: #FFFFFF;
360 height: 44px;
361 }
362
363 .walletBtnContent {
364 width: 100%;
365 height: 100%;
366 line-height: 44px;
367 font-size: 16px;
368 text-align: center;
369 background-color: #00c81b;
370 border-radius: 2px;
371 }
372
373 .walletBtnContentDisable {
374 background-color: #999999;
375 }
376
377 /*******************pay*********************/
378
379 .payPanel {
380 background: #F0F0F0;
381 position: absolute;
382 top: 0;
383 bottom: 0;
384 left: 0;
385 right: 0;
386 }
387
388 .paywayMenu {
389 display: block;
390 background: #FFFFFF;
391 width: 100%;
392 margin-top: 10px;
393 margin-bottom: 10px;
394 }
395
396 .paywayMenuItem {
397 width: 100%;
398 height: 40px;
399 font-size: 16px;
400 line-height: 16px;
401 padding: 12px 10px 12px 10px;
402 color: #333333;
403 }
404
405 .paywayMenuItem img {
406 display: inline-block;
407 position: relative;
408 float: left;
409 width: 15px;
410 height: 15px;
411 margin-right: 10px;
412 }
413
414 .paywayMenuInputItem {
415 width: 100%;
416 height: 47px;
417 color: #333333;
418 }
419
420 .paywayMenuInputItem span{
421 display: inline-block;
422 width: 24%;
423 height: 100%;
424 font-size: 16px;
425 line-height: 16px;
426 padding-left: 10px;
427 }
428
429 .paywayMenuInputItem input{
430 display: inline-block;
431 width: 73%;
432 height: 100%;
433 color: #333333;
434 font-size: 16px;
435 line-height: 16px;
436 background-color: #FFFFFF;
437 border: none;
438 }
439
440 /******************contatc*********************/
441
442 .phoneItem {
443 margin-top: 18px;
444 margin-left: 10px;
445 color: #333333;
446 font-size: 14px;
447 }
448
449 .webItem {
450 margin-top: 10px;
451 margin-left: 10px;
452 color: #333333;
453 font-size: 14px;
454 }
455
456 .block {
457 width: 100%;
458 height: 200px;
459 background: #F0F0F0;
460 }
461
462 /******************contatc*********************/
463
464 .textBox {
465 display: block;
466 width: 100%;
467 padding: 5px;
468 height: 190px;
469 }
470
471 .textBox textarea {
472 color: #999999;
473 font-size: 14px;
474 border-radius: 2px;
475 border:1px solid #CCCCCC;
476 width: 100%;
477 height: 100%;
478 }
479
480
481 /********************************************/
482
483 .phoneNumber {
484 width: 100%;
485 }
486
487 .btnBg{
488 background: #36d1e7;
489 border: #36d1e7;
490 border-radius: 4px;
491 color: #fff;
492 cursor: pointer;
493 }
494
495 .smallBtn{
496 width: 100%;
497 height: 40px;
498 line-height: 40px;
499 padding: 0;
500 border-radius:4px;
501 }
502 .bigBtn{
503 height: 40px;
504 font-size: 16px;
505 line-height: 40px;
506 padding: 0;
507 background: #d8d8d8;
508 color: #fff;
509 }
510 .btnBg{
511 background: #36d1e7;
512 border-radius: 4px;
513 border: #36d1e7;
514 color: #fff;
515 cursor: pointer;
516 }
517 .borderColor{
518 border: 1px solid #36d1e7;
519 }
520
521 /* 登录*/
522 .loginBox,.tripBox{
523 padding: 25px;
524 background: #F0F0F0;
525 position: absolute;
526 width: 100%;
527 height: 100%;
528 bottom: 0;
529 top:0;
530 }
531 .loginBox{
532 /*width: 320px;*/
533 }
534 .floatLeft{
535 float: left;
536 }
537 .floatRight{
538 float: right;
539 }
540 .loginTopLeft{
541 width: 70%;
542 }
543 .loginTopRight{
544 width: 28%;
545 }
546 /* 行程*/
547 .tripBox{
548 padding: 0;
549 }
550 .tripBox li{
551 background: #fff;
552 margin-bottom: 10px;
553 overflow: hidden;
554 padding: 10px 0 10px 0;
555 position: relative;
556
557 }
558
559 .tripLeft{
560 padding-left: 10px;
561 font-size: 14px;
562 color: #333;
563 float: left;
564 width: 80%;
565 }
566 .tripAddress{
567
568 }
569 .tripTime{
570 color: #999;
571 font-size: 12px;
572 padding-top: 5px;
573 }
574 .bike{
575 padding-left: 25px;
576 background:url(../images/bike.png) no-repeat;
577 width: 20px;
578 height: 23px;
579 background-size:70%;
580 float: left;
581 position: relative;
582 top:2px;
583 margin-bottom: 20px;
584 }
585 .loadMore{
586 margin: auto;
587 width: 60px;
588 font-size: 14px;
589 color: #8d8d8d;
590 text-decoration: underline;
591 cursor: pointer;
592 }
593 .goDetail{
594 padding-left: 25px;
595 background:url(../images/goDetail.png) no-repeat;
596 width: 21px;
597 height: 35px;
598 background-size:50%;
599 float: left;
600 position: absolute;
601 right:0px;
602 top:15px;
603 }
604 .tripStatus{
605 position: relative;
606 top:5px;
607 right: 10px;
608 color: #8d8d8d;
609 }
610 .redBtnBox{
611 padding: 0 10px;
612 }
613 .redBigBtn{
614 height: 44px;
615 background: #ff6e6e;
616 padding: 0;
617 color: #fff;
618 border: #ff6e6e;
619 }
620 .tripTopLeft{
621 float: left;
622 width: 30px;
623 background: url(../images/tripLeft.png) no-repeat;
624 height: 100px;
625 background-size:40%;
626 position: absolute;
627 left: 10px;
628 top: 14px;
629 }
630 .tripContent{
631 padding-bottom: 30px;
632 }
633
634 .tripContent ul {
635 padding:0 10px;
636 }
637 .tripContent ul li {
638 padding: 10px 0;
639 }
640 .rightText{
641 float: right;
642 }
643 .btnPosition{
644 position: relative;
645 width: 100%;
646 margin-top: 20px;
647 }
648 .tripDetail{
649 overflow: hidden;
650 }
651 .tripDetailTop{
652 background: url(../images/LittleBackground2x.png) no-repeat;
653 width: 100%;
654 height: 80px;
655 background-size:100%;
656 color: #fff;
657 }
658 .amount{
659 position: absolute;
660 right: 10px;
661 }
662
663 .tripTopRight{
664 position: absolute;
665 left: 30px;
666 right: 10px;
667 }
668 .tripTopRight p{
669 color: #fff;
670 }
671 .borderBottom{
672 border-bottom: 1px solid #a0e6f0;
673 }
674 .firstAddress{
675 padding-top: 12px;
676 padding-bottom: 5px;
677 }
678 .size15{
679 font-size: 15px;
680 }
681 .getBike ,.backBike{
682 font-size: 10px;
683 float: right;
684 margin-top: 5px;
685 }
686 .payBox ul li{
687 line-height: 48px;
688 height: 48px;
689 margin-left: 10px;
690 border-bottom: 1px solid #eee;
691 }
692 .tripTitle{
693 line-height: 48px;
694 height: 48px;
695 padding-left: 10px;
696 border-bottom: 1px solid #eee;
697 }
698
699 .residual,.wechatPay{
700 width:16px;
701 height:13px;
702 display: inline-block;
703 position: relative;
704 top: 2px;
705 }
706 .residual{
707 background: url(../images/wallet2x.png) no-repeat;
708 background-size: 100%;
709 }
710
711 .wechatPay{
712 background: url(../images/wechat.png) no-repeat;
713 background-size: 100%;
714 }
715 .checkboxS{
716 width:20px;
717 height:20px;
718 display: inline-block;
719 position: relative;
720 top: 15px;
721 margin: 0 10px 10px 20px;
722 background-size: 100%;
723 }
724 .checkboxFalse{
725 background: url(../images/unselected.png) no-repeat;
726 width:20px;
727 height:20px;
728 background-size: 100%;
729 }
730 .checkboxTrue{
731 background: url(../images/Selected2x.png) no-repeat;
732 width:20px;
733 height:20px;
734 background-size: 100%;
735 }
736 .bottomPosition{
737 height: 44px;
738 line-height: 44px;
739 position: relative;
740 border-top: 1px solid #eee;
741 border-bottom: 1px solid #eee;
742 width: 100%;
743 background: #fff;
744 margin-top: 10px;
745
746 }
747 .bottomPosition span{
748 padding-left: 10px;
749 color:#ff6e6e;
750 }
751 .goPay{
752 float: right;
753 width: 100px;
754 text-align: center;
755 color: #fff;
756 font-size: 16px;
757 background:#ff6e6e;
758 margin-top: -1px;
759 height: 44px;
760 }
761 .blueBg{
762 background: #37d2e9;
763 border: 1px solid #37d2e9;
764 }
765 .bondText ul{
766 padding-left: 10px;
767 }
768 .bondText ul li{
769 color: #999;
770 line-height: 28px;
771 font-size: 12px;
772 }
773 .bondTitle{
774 padding-left: 10px;
775 margin-top: 30px;
776 }
777 .bondTop{
778 width:100%;
779 height: 150px;
780 background: url(../images/backgroundsan2x.png) no-repeat;
781 background-size: 100%;
782 text-align: center;
783 line-height: 150px;
784 font-size: 35px;
785 color: #fff;
786 }
787 .bondSuccess{
788 background: #f0f0f0;
789 position: absolute;
790 height: 100%;
791 width: 100%;
792
793 }
794
795 .bondSuccessContent{
796 height: 103px;
797 width: 100%;
798 background: #fff;
799 padding: 10px;
800 }
801 .successLeft{
802 float: left;
803 width: 70%;
804 border-right: dotted 1px #979797;
805 height: 100%;
806 padding-left: 30px;
807 padding-top: 15px;
808 font-size: 16px;
809 color: #626262;
810
811 }
812 .bottomText{
813 padding-top: 8px;
814 }
815 .successBike{
816 background: url(../images/rent2xt.png) no-repeat ;
817 width: 55px;
818 height:55px;
819 background-size: 100%;
820 position: relative;
821 left:20px;
822
823 }
824 .successRight{
825 float: left;
826 text-align: center;
827 width: 29%;
828 padding-top: 3px;
829 }
830 .successBikeText{
831 color: #ff6e6e;
832 padding: 5px 0 0 5px;
833 font-size: 12px;
834 }
835 .circles{
836 margin: auto;
837 width: 250px;
838 }
839 .circle{
840 width: 260px;
841 display: inline-block;
842 position: relative;
843 text-align: center;
844 line-height: 1;
845
846 }
847 .newCircles{
848 padding-top:60px;
849 }
850 .bigCircles{
851 width: 250px;
852 border:8px solid #9ae8f3;
853 height: 250px;
854 border-radius: 125px;
855 margin: auto;
856 box-shadow: 0 1px 5px #eee;
857 position: relative;
858 }
859 .circlesText{
860 position: absolute;
861 top:35%;
862 left: 50%;
863 margin-left: -100px;
864 width: 200px;
865 }
866 .circlesText .text1{
867 font-size: 20px;
868 text-align: center;
869 color: #999;
870 }
871 .freeTime{
872 font-size: 30px;
873 color: #37d2e9;
874 text-align: center;
875 }
876 .viewStation{
877 height: 80px;
878 position: relative;
879 }
880 .viewBorer{
881 width: 100%;
882 border-bottom: 1px solid #37d2e9;
883 position: absolute;
884 bottom:0px;
885 }
886 .viewImg{
887 background: url(../images/look2x.png) no-repeat ;
888 width: 55px;
889 height:55px;
890 background-size: 100%;
891 position: relative;
892 left:20px;
893 }
894 .viewBtn{
895 width: 30%;
896 height: 80px;
897 position: absolute;
898 right: 10px;
899 background: #fff;
900 z-index: 1;
901 top:30px;
902 }
903 .viewText{
904 color: #ff6e6e;
905 padding: 5px 0 0 23px;
906 font-size: 12px;
907 }
908 .fenceBox{
909 overflow: hidden;
910 margin:40px 0 20px 0 ;
911 padding: 0 35px;
912 }
913 .fenceBox div{
914 text-align: center;
915 }
916 .fenceLeft{
917 width: 33%;
918 float: left;
919 }
920 .fenceCenter{
921 width: 34%;
922 float: left;
923 }
924 .fenceRight{
925 width: 33%;
926 float: left;
927 }
928 .fenceTitle{
929 font-size: 12px;
930 color: #999;
931 }
932 .fenceText{
933 padding-top: 10px;
934 font-size: 18px;
935 color: #37d2e9;
936 }
937 .alreadyBack{
938 width: 90px;
939 height: 30px;
940 border-radius:30px;
941 color:#37d2e9;
942 border: 1px solid #37d2e9;
943 text-align: center;
944 margin: auto;
945 line-height: 30px;
946 }
947 .unusualBike{
948 width: 80px;
949 height: 80px;
950 background: url(../images/unusualBike.png) no-repeat;
951 background-size: 100%;
952 }
953
954 .customerImg{
955 width: 80px;
956 height: 80px;
957 background: url(../images/customerImg.png) no-repeat;
958 background-size: 100%;
959 }
960 .rechargeList ,.unusual{
961 position: absolute;
962 top:0;
963 bottom: 0;
964 height: 100%;
965 width: 100%;
966 background:#f0f0f0;
967 }
968 .unusualTitle{
969 background: #fff;
970 height: 50px;
971 padding: 10px;
972 font-size: 12px;
973 }
974 .unusualTitle span {
975 color:#37d2e9;
976 }
977 .unusualText1{
978 min-height: 180px;
979 }
980 .oneLine{
981 line-height: 30px;
982 font-size: 14px;
983 }
984 .unusualText1{
985 width: 80px;
986 margin: auto;
987 padding-top:40px;
988 }
989 .text2{
990 color:#37d2e9;
991 font-size: 14px;
992 text-align: center;
993 padding-top: 10px;
994 }
995 .rechargeList ul{
996 padding-left: 10px;
997 background: #fff;
998
999 }
1000 .rechargeList ul li{
1001 height: 45px;
1002 border-bottom: 1px solid #eee;
1003 padding: 5px 0;
1004 }
1005 .rechargeLeft{
1006 float: left;
1007 }
1008 .rechargeRight{
1009 float: right;
1010 color:#37d2e9;
1011 font-size: 16px;
1012 margin-right: 10px;
1013 padding-top: 5px;
1014 }
1015 .rechargeTime{
1016 color:#acacac;
1017 font-size: 10px;
1018 }
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1 /*!
2 * =====================================================
3 * Mui v2.8.0 (http://dev.dcloud.net.cn/mui)
4 * =====================================================
5 */
6
7 /*! normalize.css v3.0.1 | MIT License | git.io/normalize */
8 html
9 {
10 font-family: sans-serif;
11
12 -webkit-text-size-adjust: 100%;
13 }
14
15 body
16 {
17 margin: 0;
18 }
19
20 article,
21 aside,
22 details,
23 figcaption,
24 figure,
25 footer,
26 header,
27 hgroup,
28 main,
29 nav,
30 section,
31 summary
32 {
33 display: block;
34 }
35
36 audio,
37 canvas,
38 progress,
39 video
40 {
41 display: inline-block;
42
43 vertical-align: baseline;
44 }
45
46 audio:not([controls])
47 {
48 display: none;
49
50 height: 0;
51 }
52
53 [hidden],
54 template
55 {
56 display: none;
57 }
58
59 a
60 {
61 background: transparent;
62 }
63
64 a:active,
65 a:hover
66 {
67 outline: 0;
68 }
69
70 abbr[title]
71 {
72 border-bottom: 1px dotted;
73 }
74
75 b,
76 strong
77 {
78 font-weight: bold;
79 }
80
81 dfn
82 {
83 font-style: italic;
84 }
85
86 h1
87 {
88 font-size: 2em;
89
90 margin: .67em 0;
91 }
92
93 mark
94 {
95 color: #000;
96 background: #ff0;
97 }
98
99 small
100 {
101 font-size: 80%;
102 }
103
104 sub,
105 sup
106 {
107 font-size: 75%;
108 line-height: 0;
109
110 position: relative;
111
112 vertical-align: baseline;
113 }
114
115 sup
116 {
117 top: -.5em;
118 }
119
120 sub
121 {
122 bottom: -.25em;
123 }
124
125 img
126 {
127 border: 0;
128 }
129
130 svg:not(:root)
131 {
132 overflow: hidden;
133 }
134
135 figure
136 {
137 margin: 1em 40px;
138 }
139
140 hr
141 {
142 box-sizing: content-box;
143 height: 0;
144 }
145
146 pre
147 {
148 overflow: auto;
149 }
150
151 code,
152 kbd,
153 pre,
154 samp
155 {
156 font-family: monospace, monospace;
157 font-size: 1em;
158 }
159
160 button,
161 input,
162 optgroup,
163 select,
164 textarea
165 {
166 font: inherit;
167
168 margin: 0;
169
170 color: inherit;
171 }
172
173 button
174 {
175 overflow: visible;
176 }
177
178 button,
179 select
180 {
181 text-transform: none;
182 }
183
184 button,
185 html input[type='button'],
186 input[type='reset'],
187 input[type='submit']
188 {
189 cursor: pointer;
190
191 -webkit-appearance: button;
192 }
193
194 button[disabled],
195 html input[disabled]
196 {
197 cursor: default;
198 }
199
200 input
201 {
202 line-height: normal;
203 }
204
205 input[type='checkbox'],
206 input[type='radio']
207 {
208 box-sizing: border-box;
209 padding: 0;
210 }
211
212 input[type='number']::-webkit-inner-spin-button,
213 input[type='number']::-webkit-outer-spin-button
214 {
215 height: auto;
216 }
217
218 input[type='search']
219 {
220 -webkit-box-sizing: content-box;
221 box-sizing: content-box;
222
223 -webkit-appearance: textfield;
224 }
225
226 input[type='search']::-webkit-search-cancel-button,
227 input[type='search']::-webkit-search-decoration
228 {
229 -webkit-appearance: none;
230 }
231
232 fieldset
233 {
234 margin: 0 2px;
235 padding: .35em .625em .75em;
236
237 border: 1px solid #c0c0c0;
238 }
239
240 legend
241 {
242 padding: 0;
243
244 border: 0;
245 }
246
247 textarea
248 {
249 overflow: auto;
250 }
251
252 optgroup
253 {
254 font-weight: bold;
255 }
256
257 table
258 {
259 border-spacing: 0;
260 border-collapse: collapse;
261 }
262
263 td,
264 th
265 {
266 padding: 0;
267 }
268
269 *
270 {
271 -webkit-box-sizing: border-box;
272 box-sizing: border-box;
273
274 -webkit-user-select: none;
275
276 outline: none;
277
278 -webkit-tap-highlight-color: transparent;
279 -webkit-tap-highlight-color: transparent;
280 }
281
282 body
283 {
284 font-family: 'Helvetica Neue', Helvetica, sans-serif;
285 font-size: 17px;
286 line-height: 21px;
287
288 color: #000;
289 background-color: #efeff4;
290
291 -webkit-overflow-scrolling: touch;
292 }
293
294 a
295 {
296 text-decoration: none;
297
298 color: #007aff;
299 }
300 a:active
301 {
302 color: #0062cc;
303 }
304
305 .mui-content
306 {
307 background-color: #efeff4;
308
309 -webkit-overflow-scrolling: touch;
310 }
311
312 .mui-bar-nav ~ .mui-content
313 {
314 padding-top: 44px;
315 }
316 .mui-bar-nav ~ .mui-content.mui-scroll-wrapper .mui-scrollbar-vertical
317 {
318 top: 44px;
319 }
320
321 .mui-bar-header-secondary ~ .mui-content
322 {
323 padding-top: 88px;
324 }
325 .mui-bar-header-secondary ~ .mui-content.mui-scroll-wrapper .mui-scrollbar-vertical
326 {
327 top: 88px;
328 }
329
330 .mui-bar-footer ~ .mui-content
331 {
332 padding-bottom: 44px;
333 }
334 .mui-bar-footer ~ .mui-content.mui-scroll-wrapper .mui-scrollbar-vertical
335 {
336 bottom: 44px;
337 }
338
339 .mui-bar-footer-secondary ~ .mui-content
340 {
341 padding-bottom: 88px;
342 }
343 .mui-bar-footer-secondary ~ .mui-content.mui-scroll-wrapper .mui-scrollbar-vertical
344 {
345 bottom: 88px;
346 }
347
348 .mui-bar-tab ~ .mui-content
349 {
350 padding-bottom: 50px;
351 }
352 .mui-bar-tab ~ .mui-content.mui-scroll-wrapper .mui-scrollbar-vertical
353 {
354 bottom: 50px;
355 }
356
357 .mui-bar-footer-secondary-tab ~ .mui-content
358 {
359 padding-bottom: 94px;
360 }
361 .mui-bar-footer-secondary-tab ~ .mui-content.mui-scroll-wrapper .mui-scrollbar-vertical
362 {
363 bottom: 94px;
364 }
365
366 .mui-content-padded
367 {
368 margin: 10px;
369 }
370
371 .mui-inline
372 {
373 display: inline-block;
374
375 vertical-align: top;
376 }
377
378 .mui-block
379 {
380 display: block !important;
381 }
382
383 .mui-visibility
384 {
385 visibility: visible !important;
386 }
387
388 .mui-hidden
389 {
390 display: none !important;
391 }
392
393 .mui-ellipsis
394 {
395 overflow: hidden;
396
397 white-space: nowrap;
398 text-overflow: ellipsis;
399 }
400
401 .mui-ellipsis-2
402 {
403 display: -webkit-box;
404 overflow: hidden;
405
406 white-space: normal !important;
407 text-overflow: ellipsis;
408 word-wrap: break-word;
409
410 -webkit-line-clamp: 2;
411 -webkit-box-orient: vertical;
412 }
413
414 .mui-table
415 {
416 display: table;
417
418 width: 100%;
419
420 table-layout: fixed;
421 }
422
423 .mui-table-cell
424 {
425 position: relative;
426
427 display: table-cell;
428 }
429
430 .mui-text-left
431 {
432 text-align: left !important;
433 }
434
435 .mui-text-center
436 {
437 text-align: center !important;
438 }
439
440 .mui-text-justify
441 {
442 text-align: justify !important;
443 }
444
445 .mui-text-right
446 {
447 text-align: right !important;
448 }
449
450 .mui-pull-left
451 {
452 float: left;
453 }
454
455 .mui-pull-right
456 {
457 float: right;
458 }
459
460 .mui-list-unstyled
461 {
462 padding-left: 0;
463
464 list-style: none;
465 }
466
467 .mui-list-inline
468 {
469 margin-left: -5px;
470 padding-left: 0;
471
472 list-style: none;
473 }
474
475 .mui-list-inline > li
476 {
477 display: inline-block;
478
479 padding-right: 5px;
480 padding-left: 5px;
481 }
482
483 .mui-clearfix:before, .mui-clearfix:after
484 {
485 display: table;
486
487 content: ' ';
488 }
489 .mui-clearfix:after
490 {
491 clear: both;
492 }
493
494 .mui-bg-primary
495 {
496 background-color: #007aff;
497 }
498
499 .mui-bg-positive
500 {
501 background-color: #4cd964;
502 }
503
504 .mui-bg-negative
505 {
506 background-color: #dd524d;
507 }
508
509 .mui-error
510 {
511 margin: 88px 35px;
512 padding: 10px;
513
514 border-radius: 6px;
515 background-color: #bbb;
516 }
517
518 .mui-subtitle
519 {
520 font-size: 15px;
521 }
522
523 h1, h2, h3, h4, h5, h6
524 {
525 line-height: 1;
526
527 margin-top: 5px;
528 margin-bottom: 5px;
529 }
530
531 h1, .mui-h1
532 {
533 font-size: 36px;
534 }
535
536 h2, .mui-h2
537 {
538 font-size: 30px;
539 }
540
541 h3, .mui-h3
542 {
543 font-size: 24px;
544 }
545
546 h4, .mui-h4
547 {
548 font-size: 18px;
549 }
550
551 h5, .mui-h5
552 {
553 font-size: 14px;
554 font-weight: normal;
555
556 color: #8f8f94;
557 }
558
559 h6, .mui-h6
560 {
561 font-size: 12px;
562 font-weight: normal;
563
564 color: #8f8f94;
565 }
566
567 p
568 {
569 font-size: 14px;
570
571 margin-top: 0;
572 margin-bottom: 10px;
573
574 color: #8f8f94;
575 }
576
577 .mui-row:before, .mui-row:after
578 {
579 display: table;
580
581 content: ' ';
582 }
583 .mui-row:after
584 {
585 clear: both;
586 }
587
588 .mui-col-xs-1, .mui-col-sm-1, .mui-col-xs-2, .mui-col-sm-2, .mui-col-xs-3, .mui-col-sm-3, .mui-col-xs-4, .mui-col-sm-4, .mui-col-xs-5, .mui-col-sm-5, .mui-col-xs-6, .mui-col-sm-6, .mui-col-xs-7, .mui-col-sm-7, .mui-col-xs-8, .mui-col-sm-8, .mui-col-xs-9, .mui-col-sm-9, .mui-col-xs-10, .mui-col-sm-10, .mui-col-xs-11, .mui-col-sm-11, .mui-col-xs-12, .mui-col-sm-12
589 {
590 position: relative;
591
592 min-height: 1px;
593 }
594
595 .mui-row > [class*='mui-col-']
596 {
597 float: left;
598 }
599
600 .mui-col-xs-12
601 {
602 width: 100%;
603 }
604
605 .mui-col-xs-11
606 {
607 width: 91.66666667%;
608 }
609
610 .mui-col-xs-10
611 {
612 width: 83.33333333%;
613 }
614
615 .mui-col-xs-9
616 {
617 width: 75%;
618 }
619
620 .mui-col-xs-8
621 {
622 width: 66.66666667%;
623 }
624
625 .mui-col-xs-7
626 {
627 width: 58.33333333%;
628 }
629
630 .mui-col-xs-6
631 {
632 width: 50%;
633 }
634
635 .mui-col-xs-5
636 {
637 width: 41.66666667%;
638 }
639
640 .mui-col-xs-4
641 {
642 width: 33.33333333%;
643 }
644
645 .mui-col-xs-3
646 {
647 width: 25%;
648 }
649
650 .mui-col-xs-2
651 {
652 width: 16.66666667%;
653 }
654
655 .mui-col-xs-1
656 {
657 width: 8.33333333%;
658 }
659
660 @media (min-width: 400px)
661 {
662 .mui-col-sm-12
663 {
664 width: 100%;
665 }
666
667 .mui-col-sm-11
668 {
669 width: 91.66666667%;
670 }
671
672 .mui-col-sm-10
673 {
674 width: 83.33333333%;
675 }
676
677 .mui-col-sm-9
678 {
679 width: 75%;
680 }
681
682 .mui-col-sm-8
683 {
684 width: 66.66666667%;
685 }
686
687 .mui-col-sm-7
688 {
689 width: 58.33333333%;
690 }
691
692 .mui-col-sm-6
693 {
694 width: 50%;
695 }
696
697 .mui-col-sm-5
698 {
699 width: 41.66666667%;
700 }
701
702 .mui-col-sm-4
703 {
704 width: 33.33333333%;
705 }
706
707 .mui-col-sm-3
708 {
709 width: 25%;
710 }
711
712 .mui-col-sm-2
713 {
714 width: 16.66666667%;
715 }
716
717 .mui-col-sm-1
718 {
719 width: 8.33333333%;
720 }
721 }
722 .mui-scroll-wrapper
723 {
724 position: absolute;
725 z-index: 2;
726 top: 0;
727 bottom: 0;
728 left: 0;
729
730 overflow: hidden;
731
732 width: 100%;
733 }
734
735 .mui-scroll
736 {
737 position: absolute;
738 z-index: 1;
739
740 width: 100%;
741
742 -webkit-transform: translateZ(0);
743 transform: translateZ(0);
744 }
745
746 .mui-scrollbar
747 {
748 position: absolute;
749 z-index: 9998;
750
751 overflow: hidden;
752
753 -webkit-transition: 500ms;
754 transition: 500ms;
755 transform: translateZ(0px);
756 pointer-events: none;
757
758 opacity: 0;
759 }
760
761 .mui-scrollbar-vertical
762 {
763 top: 0;
764 right: 1px;
765 bottom: 2px;
766
767 width: 4px;
768 }
769 .mui-scrollbar-vertical .mui-scrollbar-indicator
770 {
771 width: 100%;
772 }
773
774 .mui-scrollbar-horizontal
775 {
776 right: 2px;
777 bottom: 0;
778 left: 2px;
779
780 height: 4px;
781 }
782 .mui-scrollbar-horizontal .mui-scrollbar-indicator
783 {
784 height: 100%;
785 }
786
787 .mui-scrollbar-indicator
788 {
789 position: absolute;
790
791 display: block;
792
793 box-sizing: border-box;
794
795 -webkit-transition: .01s cubic-bezier(.1, .57, .1, 1);
796 transition: .01s cubic-bezier(.1, .57, .1, 1);
797 transform: translate(0px, 0px) translateZ(0px);
798
799 border: 1px solid rgba(255, 255, 255, .80196);
800 border-radius: 2px;
801 background: rgba(0, 0, 0, .39804);
802 }
803
804 .mui-plus-pullrefresh .mui-fullscreen .mui-scroll-wrapper .mui-scroll-wrapper, .mui-plus-pullrefresh .mui-fullscreen .mui-slider-group .mui-scroll-wrapper
805 {
806 position: absolute;
807 top: 0;
808 bottom: 0;
809 left: 0;
810
811 overflow: hidden;
812
813 width: 100%;
814 }
815 .mui-plus-pullrefresh .mui-fullscreen .mui-scroll-wrapper .mui-scroll, .mui-plus-pullrefresh .mui-fullscreen .mui-slider-group .mui-scroll
816 {
817 position: absolute;
818
819 width: 100%;
820 }
821 .mui-plus-pullrefresh .mui-scroll-wrapper, .mui-plus-pullrefresh .mui-slider-group
822 {
823 position: static;
824 top: auto;
825 bottom: auto;
826 left: auto;
827
828 overflow: auto;
829
830 width: auto;
831 }
832 .mui-plus-pullrefresh .mui-slider-group
833 {
834 overflow: visible;
835 }
836 .mui-plus-pullrefresh .mui-scroll
837 {
838 position: static;
839
840 width: auto;
841 }
842
843 .mui-off-canvas-wrap .mui-bar
844 {
845 position: absolute !important;
846
847 -webkit-transform: translate3d(0, 0, 0);
848 transform: translate3d(0, 0, 0);
849
850 -webkit-box-shadow: none;
851 box-shadow: none;
852 }
853
854 .mui-off-canvas-wrap
855 {
856 position: relative;
857 z-index: 1;
858
859 overflow: hidden;
860
861 width: 100%;
862 height: 100%;
863 }
864 .mui-off-canvas-wrap .mui-inner-wrap
865 {
866 position: relative;
867 z-index: 1;
868
869 width: 100%;
870 height: 100%;
871 }
872 .mui-off-canvas-wrap .mui-inner-wrap.mui-transitioning
873 {
874 -webkit-transition: -webkit-transform 350ms;
875 transition: transform 350ms cubic-bezier(.165, .84, .44, 1);
876 }
877 .mui-off-canvas-wrap .mui-inner-wrap .mui-off-canvas-left
878 {
879 -webkit-transform: translate3d(-100%, 0, 0);
880 transform: translate3d(-100%, 0, 0);
881 }
882 .mui-off-canvas-wrap .mui-inner-wrap .mui-off-canvas-right
883 {
884 -webkit-transform: translate3d(100%, 0, 0);
885 transform: translate3d(100%, 0, 0);
886 }
887 .mui-off-canvas-wrap.mui-active
888 {
889 overflow: hidden;
890
891 height: 100%;
892 }
893 .mui-off-canvas-wrap.mui-active .mui-off-canvas-backdrop
894 {
895 position: absolute;
896 z-index: 998;
897 top: 0;
898 right: 0;
899 bottom: 0;
900 left: 0;
901
902 display: block;
903
904 transition: background 350ms cubic-bezier(.165, .84, .44, 1);
905
906 background: rgba(0, 0, 0, .4);
907 box-shadow: -4px 0 4px rgba(0, 0, 0, .5), 4px 0 4px rgba(0, 0, 0, .5);
908
909 -webkit-tap-highlight-color: transparent;
910 }
911 .mui-off-canvas-wrap.mui-slide-in .mui-off-canvas-right
912 {
913 z-index: 10000 !important;
914
915 -webkit-transform: translate3d(100%, 0px, 0px);
916 }
917 .mui-off-canvas-wrap.mui-slide-in .mui-off-canvas-left
918 {
919 z-index: 10000 !important;
920
921 -webkit-transform: translate3d(-100%, 0px, 0px);
922 }
923
924 .mui-off-canvas-left, .mui-off-canvas-right
925 {
926 position: absolute;
927 z-index: -1;
928 top: 0;
929 bottom: 0;
930
931 visibility: hidden;
932
933 box-sizing: content-box;
934 width: 70%;
935 min-height: 100%;
936
937 background: #333;
938
939 -webkit-overflow-scrolling: touch;
940 }
941 .mui-off-canvas-left.mui-transitioning, .mui-off-canvas-right.mui-transitioning
942 {
943 -webkit-transition: -webkit-transform 350ms cubic-bezier(.165, .84, .44, 1);
944 transition: transform 350ms cubic-bezier(.165, .84, .44, 1);
945 }
946
947 .mui-off-canvas-left
948 {
949 left: 0;
950 }
951
952 .mui-off-canvas-right
953 {
954 right: 0;
955 }
956
957 .mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable
958 {
959 background-color: #333;
960 }
961 .mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable > .mui-off-canvas-left, .mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable > .mui-off-canvas-right
962 {
963 width: 80%;
964
965 -webkit-transform: scale(.8);
966 transform: scale(.8);
967
968 opacity: .1;
969 }
970 .mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable > .mui-off-canvas-left.mui-transitioning, .mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable > .mui-off-canvas-right.mui-transitioning
971 {
972 -webkit-transition: -webkit-transform 350ms cubic-bezier(.165, .84, .44, 1), opacity 350ms cubic-bezier(.165, .84, .44, 1);
973 transition: transform 350ms cubic-bezier(.165, .84, .44, 1), opacity 350ms cubic-bezier(.165, .84, .44, 1);
974 }
975 .mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable > .mui-off-canvas-left
976 {
977 -webkit-transform-origin: -100%;
978 transform-origin: -100%;
979 }
980 .mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable > .mui-off-canvas-right
981 {
982 -webkit-transform-origin: 200%;
983 transform-origin: 200%;
984 }
985 .mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable.mui-active > .mui-inner-wrap
986 {
987 -webkit-transform: scale(.8);
988 transform: scale(.8);
989 }
990 .mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable.mui-active > .mui-off-canvas-left, .mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable.mui-active > .mui-off-canvas-right
991 {
992 -webkit-transform: scale(1);
993 transform: scale(1);
994
995 opacity: 1;
996 }
997
998 .mui-loading .mui-spinner
999 {
1000 display: block;
1001
1002 margin: 0 auto;
1003 }
1004
1005 .mui-spinner
1006 {
1007 display: inline-block;
1008
1009 width: 24px;
1010 height: 24px;
1011
1012 -webkit-transform-origin: 50%;
1013 transform-origin: 50%;
1014 -webkit-animation: spinner-spin 1s step-end infinite;
1015 animation: spinner-spin 1s step-end infinite;
1016 }
1017
1018 .mui-spinner:after
1019 {
1020 display: block;
1021
1022 width: 100%;
1023 height: 100%;
1024
1025 content: '';
1026
1027 background-image: url('data:image/svg+xml;charset=utf-8,<svg viewBox=\'0 0 120 120\' xmlns=\'http://www.w3.org/2000/svg\' xmlns:xlink=\'http://www.w3.org/1999/xlink\'><defs><line id=\'l\' x1=\'60\' x2=\'60\' y1=\'7\' y2=\'27\' stroke=\'%236c6c6c\' stroke-width=\'11\' stroke-linecap=\'round\'/></defs><g><use xlink:href=\'%23l\' opacity=\'.27\'/><use xlink:href=\'%23l\' opacity=\'.27\' transform=\'rotate(30 60,60)\'/><use xlink:href=\'%23l\' opacity=\'.27\' transform=\'rotate(60 60,60)\'/><use xlink:href=\'%23l\' opacity=\'.27\' transform=\'rotate(90 60,60)\'/><use xlink:href=\'%23l\' opacity=\'.27\' transform=\'rotate(120 60,60)\'/><use xlink:href=\'%23l\' opacity=\'.27\' transform=\'rotate(150 60,60)\'/><use xlink:href=\'%23l\' opacity=\'.37\' transform=\'rotate(180 60,60)\'/><use xlink:href=\'%23l\' opacity=\'.46\' transform=\'rotate(210 60,60)\'/><use xlink:href=\'%23l\' opacity=\'.56\' transform=\'rotate(240 60,60)\'/><use xlink:href=\'%23l\' opacity=\'.66\' transform=\'rotate(270 60,60)\'/><use xlink:href=\'%23l\' opacity=\'.75\' transform=\'rotate(300 60,60)\'/><use xlink:href=\'%23l\' opacity=\'.85\' transform=\'rotate(330 60,60)\'/></g></svg>');
1028 background-repeat: no-repeat;
1029 background-position: 50%;
1030 background-size: 100%;
1031 }
1032
1033 .mui-spinner-white:after
1034 {
1035 background-image: url('data:image/svg+xml;charset=utf-8,<svg viewBox=\'0 0 120 120\' xmlns=\'http://www.w3.org/2000/svg\' xmlns:xlink=\'http://www.w3.org/1999/xlink\'><defs><line id=\'l\' x1=\'60\' x2=\'60\' y1=\'7\' y2=\'27\' stroke=\'%23fff\' stroke-width=\'11\' stroke-linecap=\'round\'/></defs><g><use xlink:href=\'%23l\' opacity=\'.27\'/><use xlink:href=\'%23l\' opacity=\'.27\' transform=\'rotate(30 60,60)\'/><use xlink:href=\'%23l\' opacity=\'.27\' transform=\'rotate(60 60,60)\'/><use xlink:href=\'%23l\' opacity=\'.27\' transform=\'rotate(90 60,60)\'/><use xlink:href=\'%23l\' opacity=\'.27\' transform=\'rotate(120 60,60)\'/><use xlink:href=\'%23l\' opacity=\'.27\' transform=\'rotate(150 60,60)\'/><use xlink:href=\'%23l\' opacity=\'.37\' transform=\'rotate(180 60,60)\'/><use xlink:href=\'%23l\' opacity=\'.46\' transform=\'rotate(210 60,60)\'/><use xlink:href=\'%23l\' opacity=\'.56\' transform=\'rotate(240 60,60)\'/><use xlink:href=\'%23l\' opacity=\'.66\' transform=\'rotate(270 60,60)\'/><use xlink:href=\'%23l\' opacity=\'.75\' transform=\'rotate(300 60,60)\'/><use xlink:href=\'%23l\' opacity=\'.85\' transform=\'rotate(330 60,60)\'/></g></svg>');
1036 }
1037
1038 @-webkit-keyframes spinner-spin
1039 {
1040 0%
1041 {
1042 -webkit-transform: rotate(0deg);
1043 }
1044
1045 8.33333333%
1046 {
1047 -webkit-transform: rotate(30deg);
1048 }
1049
1050 16.66666667%
1051 {
1052 -webkit-transform: rotate(60deg);
1053 }
1054
1055 25%
1056 {
1057 -webkit-transform: rotate(90deg);
1058 }
1059
1060 33.33333333%
1061 {
1062 -webkit-transform: rotate(120deg);
1063 }
1064
1065 41.66666667%
1066 {
1067 -webkit-transform: rotate(150deg);
1068 }
1069
1070 50%
1071 {
1072 -webkit-transform: rotate(180deg);
1073 }
1074
1075 58.33333333%
1076 {
1077 -webkit-transform: rotate(210deg);
1078 }
1079
1080 66.66666667%
1081 {
1082 -webkit-transform: rotate(240deg);
1083 }
1084
1085 75%
1086 {
1087 -webkit-transform: rotate(270deg);
1088 }
1089
1090 83.33333333%
1091 {
1092 -webkit-transform: rotate(300deg);
1093 }
1094
1095 91.66666667%
1096 {
1097 -webkit-transform: rotate(330deg);
1098 }
1099
1100 100%
1101 {
1102 -webkit-transform: rotate(360deg);
1103 }
1104 }
1105 @keyframes spinner-spin
1106 {
1107 0%
1108 {
1109 transform: rotate(0deg);
1110 }
1111
1112 8.33333333%
1113 {
1114 transform: rotate(30deg);
1115 }
1116
1117 16.66666667%
1118 {
1119 transform: rotate(60deg);
1120 }
1121
1122 25%
1123 {
1124 transform: rotate(90deg);
1125 }
1126
1127 33.33333333%
1128 {
1129 transform: rotate(120deg);
1130 }
1131
1132 41.66666667%
1133 {
1134 transform: rotate(150deg);
1135 }
1136
1137 50%
1138 {
1139 transform: rotate(180deg);
1140 }
1141
1142 58.33333333%
1143 {
1144 transform: rotate(210deg);
1145 }
1146
1147 66.66666667%
1148 {
1149 transform: rotate(240deg);
1150 }
1151
1152 75%
1153 {
1154 transform: rotate(270deg);
1155 }
1156
1157 83.33333333%
1158 {
1159 transform: rotate(300deg);
1160 }
1161
1162 91.66666667%
1163 {
1164 transform: rotate(330deg);
1165 }
1166
1167 100%
1168 {
1169 transform: rotate(360deg);
1170 }
1171 }
1172 input[type='button'],
1173 input[type='submit'],
1174 input[type='reset'],
1175 button,
1176 .mui-btn
1177 {
1178 font-size: 14px;
1179 font-weight: 400;
1180 line-height: 1.42;
1181
1182 position: relative;
1183
1184 display: inline-block;
1185
1186 margin-bottom: 0;
1187 padding: 6px 12px;
1188
1189 cursor: pointer;
1190 -webkit-transition: all;
1191 transition: all;
1192 -webkit-transition-timing-function: linear;
1193 transition-timing-function: linear;
1194 -webkit-transition-duration: .2s;
1195 transition-duration: .2s;
1196 text-align: center;
1197 vertical-align: top;
1198 white-space: nowrap;
1199
1200 color: #333;
1201 border: 1px solid #ccc;
1202 border-radius: 3px;
1203 border-top-left-radius: 3px;
1204 border-top-right-radius: 3px;
1205 border-bottom-right-radius: 3px;
1206 border-bottom-left-radius: 3px;
1207 background-color: #fff;
1208 background-clip: padding-box;
1209 }
1210 input[type='button']:enabled:active, input[type='button'].mui-active:enabled,
1211 input[type='submit']:enabled:active,
1212 input[type='submit'].mui-active:enabled,
1213 input[type='reset']:enabled:active,
1214 input[type='reset'].mui-active:enabled,
1215 button:enabled:active,
1216 button.mui-active:enabled,
1217 .mui-btn:enabled:active,
1218 .mui-btn.mui-active:enabled
1219 {
1220 color: #fff;
1221 background-color: #929292;
1222 }
1223 input[type='button']:disabled, input[type='button'].mui-disabled,
1224 input[type='submit']:disabled,
1225 input[type='submit'].mui-disabled,
1226 input[type='reset']:disabled,
1227 input[type='reset'].mui-disabled,
1228 button:disabled,
1229 button.mui-disabled,
1230 .mui-btn:disabled,
1231 .mui-btn.mui-disabled
1232 {
1233 opacity: .6;
1234 }
1235
1236 input[type='submit'],
1237 .mui-btn-primary, .mui-btn-blue
1238 {
1239 color: #fff;
1240 border: 1px solid #007aff;
1241 background-color: #007aff;
1242 }
1243 input[type='submit']:enabled:active, input[type='submit'].mui-active:enabled,
1244 .mui-btn-primary:enabled:active,
1245 .mui-btn-primary.mui-active:enabled, .mui-btn-blue:enabled:active, .mui-btn-blue.mui-active:enabled
1246 {
1247 color: #fff;
1248 border: 1px solid #0062cc;
1249 background-color: #0062cc;
1250 }
1251
1252 .mui-btn-positive, .mui-btn-success, .mui-btn-green
1253 {
1254 color: #fff;
1255 border: 1px solid #4cd964;
1256 background-color: #4cd964;
1257 }
1258 .mui-btn-positive:enabled:active, .mui-btn-positive.mui-active:enabled, .mui-btn-success:enabled:active, .mui-btn-success.mui-active:enabled, .mui-btn-green:enabled:active, .mui-btn-green.mui-active:enabled
1259 {
1260 color: #fff;
1261 border: 1px solid #2ac845;
1262 background-color: #2ac845;
1263 }
1264
1265 .mui-btn-warning, .mui-btn-yellow
1266 {
1267 color: #fff;
1268 border: 1px solid #f0ad4e;
1269 background-color: #f0ad4e;
1270 }
1271 .mui-btn-warning:enabled:active, .mui-btn-warning.mui-active:enabled, .mui-btn-yellow:enabled:active, .mui-btn-yellow.mui-active:enabled
1272 {
1273 color: #fff;
1274 border: 1px solid #ec971f;
1275 background-color: #ec971f;
1276 }
1277
1278 .mui-btn-negative, .mui-btn-danger, .mui-btn-red
1279 {
1280 color: #fff;
1281 border: 1px solid #dd524d;
1282 background-color: #dd524d;
1283 }
1284 .mui-btn-negative:enabled:active, .mui-btn-negative.mui-active:enabled, .mui-btn-danger:enabled:active, .mui-btn-danger.mui-active:enabled, .mui-btn-red:enabled:active, .mui-btn-red.mui-active:enabled
1285 {
1286 color: #fff;
1287 border: 1px solid #cf2d28;
1288 background-color: #cf2d28;
1289 }
1290
1291 .mui-btn-royal, .mui-btn-purple
1292 {
1293 color: #fff;
1294 border: 1px solid #8a6de9;
1295 background-color: #8a6de9;
1296 }
1297 .mui-btn-royal:enabled:active, .mui-btn-royal.mui-active:enabled, .mui-btn-purple:enabled:active, .mui-btn-purple.mui-active:enabled
1298 {
1299 color: #fff;
1300 border: 1px solid #6641e2;
1301 background-color: #6641e2;
1302 }
1303
1304 .mui-btn-grey
1305 {
1306 color: #fff;
1307 border: 1px solid #c7c7cc;
1308 background-color: #c7c7cc;
1309 }
1310 .mui-btn-grey:enabled:active, .mui-btn-grey.mui-active:enabled
1311 {
1312 color: #fff;
1313 border: 1px solid #acacb4;
1314 background-color: #acacb4;
1315 }
1316
1317 .mui-btn-outlined
1318 {
1319 background-color: transparent;
1320 }
1321 .mui-btn-outlined.mui-btn-primary, .mui-btn-outlined.mui-btn-blue
1322 {
1323 color: #007aff;
1324 }
1325 .mui-btn-outlined.mui-btn-positive, .mui-btn-outlined.mui-btn-success, .mui-btn-outlined.mui-btn-green
1326 {
1327 color: #4cd964;
1328 }
1329 .mui-btn-outlined.mui-btn-warning, .mui-btn-outlined.mui-btn-yellow
1330 {
1331 color: #f0ad4e;
1332 }
1333 .mui-btn-outlined.mui-btn-negative, .mui-btn-outlined.mui-btn-danger, .mui-btn-outlined.mui-btn-red
1334 {
1335 color: #dd524d;
1336 }
1337 .mui-btn-outlined.mui-btn-royal, .mui-btn-outlined.mui-btn-purple
1338 {
1339 color: #8a6de9;
1340 }
1341 .mui-btn-outlined.mui-btn-primary:enabled:active, .mui-btn-outlined.mui-btn-blue:enabled:active, .mui-btn-outlined.mui-btn-positive:enabled:active, .mui-btn-outlined.mui-btn-success:enabled:active, .mui-btn-outlined.mui-btn-green:enabled:active, .mui-btn-outlined.mui-btn-warning:enabled:active, .mui-btn-outlined.mui-btn-yellow:enabled:active, .mui-btn-outlined.mui-btn-negative:enabled:active, .mui-btn-outlined.mui-btn-danger:enabled:active, .mui-btn-outlined.mui-btn-red:enabled:active, .mui-btn-outlined.mui-btn-royal:enabled:active, .mui-btn-outlined.mui-btn-purple:enabled:active
1342 {
1343 color: #fff;
1344 }
1345
1346 .mui-btn-link
1347 {
1348 padding-top: 6px;
1349 padding-bottom: 6px;
1350
1351 color: #007aff;
1352 border: 0;
1353 background-color: transparent;
1354 }
1355 .mui-btn-link:enabled:active, .mui-btn-link.mui-active:enabled
1356 {
1357 color: #0062cc;
1358 background-color: transparent;
1359 }
1360
1361 .mui-btn-block
1362 {
1363 font-size: 18px;
1364
1365 display: block;
1366
1367 width: 100%;
1368 margin-bottom: 10px;
1369 padding: 15px 0;
1370 }
1371
1372 .mui-btn .mui-badge
1373 {
1374 font-size: 14px;
1375
1376 margin: -2px -4px -2px 4px;
1377
1378 background-color: rgba(0, 0, 0, .15);
1379 }
1380
1381 .mui-btn .mui-badge-inverted,
1382 .mui-btn:enabled:active .mui-badge-inverted
1383 {
1384 background-color: transparent;
1385 }
1386
1387 .mui-btn-primary:enabled:active .mui-badge-inverted,
1388 .mui-btn-positive:enabled:active .mui-badge-inverted,
1389 .mui-btn-negative:enabled:active .mui-badge-inverted
1390 {
1391 color: #fff;
1392 }
1393
1394 .mui-btn-block .mui-badge
1395 {
1396 position: absolute;
1397 right: 0;
1398
1399 margin-right: 10px;
1400 }
1401
1402 .mui-btn .mui-icon
1403 {
1404 font-size: inherit;
1405 }
1406
1407 .mui-btn.mui-icon
1408 {
1409 font-size: 14px;
1410 line-height: 1.42;
1411 }
1412
1413 .mui-btn.mui-fab
1414 {
1415 width: 56px;
1416 height: 56px;
1417 padding: 16px;
1418
1419 border-radius: 50%;
1420 outline: none;
1421 }
1422 .mui-btn.mui-fab.mui-btn-mini
1423 {
1424 width: 40px;
1425 height: 40px;
1426 padding: 8px;
1427 }
1428 .mui-btn.mui-fab .mui-icon
1429 {
1430 font-size: 24px;
1431 line-height: 24px;
1432
1433 width: 24px;
1434 height: 24px;
1435 }
1436
1437 .mui-bar
1438 {
1439 position: fixed;
1440 z-index: 10;
1441 right: 0;
1442 left: 0;
1443
1444 height: 44px;
1445 padding-right: 10px;
1446 padding-left: 10px;
1447
1448 border-bottom: 0;
1449 background-color: #f7f7f7;
1450 -webkit-box-shadow: 0 0 1px rgba(0, 0, 0, .85);
1451 box-shadow: 0 0 1px rgba(0, 0, 0, .85);
1452
1453 -webkit-backface-visibility: hidden;
1454 backface-visibility: hidden;
1455 }
1456
1457 .mui-bar .mui-title
1458 {
1459 right: 40px;
1460 left: 40px;
1461
1462 display: inline-block;
1463 overflow: hidden;
1464
1465 width: auto;
1466 margin: 0;
1467
1468 text-overflow: ellipsis;
1469 }
1470 .mui-bar .mui-backdrop
1471 {
1472 background: none;
1473 }
1474
1475 .mui-bar-header-secondary
1476 {
1477 top: 44px;
1478 }
1479
1480 .mui-bar-footer
1481 {
1482 bottom: 0;
1483 }
1484
1485 .mui-bar-footer-secondary
1486 {
1487 bottom: 44px;
1488 }
1489
1490 .mui-bar-footer-secondary-tab
1491 {
1492 bottom: 50px;
1493 }
1494
1495 .mui-bar-footer,
1496 .mui-bar-footer-secondary,
1497 .mui-bar-footer-secondary-tab
1498 {
1499 border-top: 0;
1500 }
1501
1502 .mui-bar-nav
1503 {
1504 top: 0;
1505
1506 -webkit-box-shadow: 0 1px 6px #ccc;
1507 box-shadow: 0 1px 6px #ccc;
1508 }
1509 .mui-bar-nav ~ .mui-content .mui-anchor
1510 {
1511 display: block;
1512 visibility: hidden;
1513
1514 height: 45px;
1515 margin-top: -45px;
1516 }
1517 .mui-bar-nav.mui-bar .mui-icon
1518 {
1519 margin-right: -10px;
1520 margin-left: -10px;
1521 padding-right: 10px;
1522 padding-left: 10px;
1523 }
1524
1525 .mui-title
1526 {
1527 font-size: 17px;
1528 font-weight: 500;
1529 line-height: 44px;
1530
1531 position: absolute;
1532
1533 display: block;
1534
1535 width: 100%;
1536 margin: 0 -10px;
1537 padding: 0;
1538
1539 text-align: center;
1540 white-space: nowrap;
1541
1542 color: #000;
1543 }
1544
1545 .mui-title a
1546 {
1547 color: inherit;
1548 }
1549
1550 .mui-bar-tab
1551 {
1552 bottom: 0;
1553
1554 display: table;
1555
1556 width: 100%;
1557 height: 50px;
1558 padding: 0;
1559
1560 table-layout: fixed;
1561
1562 border-top: 0;
1563 border-bottom: 0;
1564
1565 -webkit-touch-callout: none;
1566 }
1567 .mui-bar-tab .mui-tab-item
1568 {
1569 display: table-cell;
1570 overflow: hidden;
1571
1572 width: 1%;
1573 height: 50px;
1574
1575 text-align: center;
1576 vertical-align: middle;
1577 white-space: nowrap;
1578 text-overflow: ellipsis;
1579
1580 color: #929292;
1581 }
1582 .mui-bar-tab .mui-tab-item.mui-active
1583 {
1584 color: #007aff;
1585 }
1586 .mui-bar-tab .mui-tab-item .mui-icon
1587 {
1588 top: 3px;
1589
1590 width: 24px;
1591 height: 24px;
1592 padding-top: 0;
1593 padding-bottom: 0;
1594 }
1595 .mui-bar-tab .mui-tab-item .mui-icon ~ .mui-tab-label
1596 {
1597 font-size: 11px;
1598
1599 display: block;
1600 overflow: hidden;
1601
1602 text-overflow: ellipsis;
1603 }
1604 .mui-bar-tab .mui-tab-item .mui-icon:active
1605 {
1606 background: none;
1607 }
1608
1609 .mui-focusin > .mui-bar-nav, .mui-focusin > .mui-bar-header-secondary
1610 {
1611 position: absolute;
1612 }
1613
1614 .mui-focusin > .mui-bar ~ .mui-content
1615 {
1616 padding-bottom: 0;
1617 }
1618
1619 .mui-bar .mui-btn
1620 {
1621 font-weight: 400;
1622
1623 position: relative;
1624 z-index: 20;
1625 top: 7px;
1626
1627 margin-top: 0;
1628 padding: 6px 12px 7px;
1629 }
1630 .mui-bar .mui-btn.mui-pull-right
1631 {
1632 margin-left: 10px;
1633 }
1634 .mui-bar .mui-btn.mui-pull-left
1635 {
1636 margin-right: 10px;
1637 }
1638
1639 .mui-bar .mui-btn-link
1640 {
1641 font-size: 16px;
1642 line-height: 44px;
1643
1644 top: 0;
1645
1646 padding: 0;
1647
1648 color: #007aff;
1649 border: 0;
1650 }
1651 .mui-bar .mui-btn-link:active, .mui-bar .mui-btn-link.mui-active
1652 {
1653 color: #0062cc;
1654 }
1655
1656 .mui-bar .mui-btn-block
1657 {
1658 font-size: 16px;
1659
1660 top: 6px;
1661
1662 margin-bottom: 0;
1663 padding: 5px 0;
1664 }
1665
1666 .mui-bar .mui-btn-nav.mui-pull-left
1667 {
1668 margin-left: -5px;
1669 }
1670 .mui-bar .mui-btn-nav.mui-pull-left .mui-icon-left-nav
1671 {
1672 margin-right: -3px;
1673 }
1674 .mui-bar .mui-btn-nav.mui-pull-right
1675 {
1676 margin-right: -5px;
1677 }
1678 .mui-bar .mui-btn-nav.mui-pull-right .mui-icon-right-nav
1679 {
1680 margin-left: -3px;
1681 }
1682 .mui-bar .mui-btn-nav:active
1683 {
1684 opacity: .3;
1685 }
1686
1687 .mui-bar .mui-icon
1688 {
1689 font-size: 24px;
1690
1691 position: relative;
1692 z-index: 20;
1693
1694 padding-top: 10px;
1695 padding-bottom: 10px;
1696 }
1697 .mui-bar .mui-icon:active
1698 {
1699 opacity: .3;
1700 }
1701 .mui-bar .mui-btn .mui-icon
1702 {
1703 top: 1px;
1704
1705 margin: 0;
1706 padding: 0;
1707 }
1708 .mui-bar .mui-title .mui-icon
1709 {
1710 margin: 0;
1711 padding: 0;
1712 }
1713 .mui-bar .mui-title .mui-icon.mui-icon-caret
1714 {
1715 top: 4px;
1716
1717 margin-left: -5px;
1718 }
1719
1720 .mui-bar input[type='search']
1721 {
1722 height: 29px;
1723 margin: 6px 0;
1724 }
1725
1726 .mui-bar .mui-input-row .mui-btn
1727 {
1728 padding: 12px 10px;
1729 }
1730
1731 .mui-bar .mui-search:before
1732 {
1733 margin-top: -10px;
1734 }
1735
1736 .mui-bar .mui-input-row .mui-input-clear ~ .mui-icon-clear, .mui-bar .mui-input-row .mui-input-speech ~ .mui-icon-speech
1737 {
1738 top: 0;
1739 right: 12px;
1740 }
1741
1742 .mui-bar.mui-bar-header-secondary .mui-input-row .mui-input-clear ~ .mui-icon-clear, .mui-bar.mui-bar-header-secondary .mui-input-row .mui-input-speech ~ .mui-icon-speech
1743 {
1744 top: 0;
1745 right: 0;
1746 }
1747
1748 .mui-bar .mui-segmented-control
1749 {
1750 top: 7px;
1751
1752 width: auto;
1753 margin: 0 auto;
1754 }
1755
1756 .mui-bar.mui-bar-header-secondary .mui-segmented-control
1757 {
1758 top: 0;
1759 }
1760
1761 .mui-badge
1762 {
1763 font-size: 12px;
1764 line-height: 1;
1765
1766 display: inline-block;
1767
1768 padding: 3px 6px;
1769
1770 color: #333;
1771 border-radius: 100px;
1772 background-color: rgba(0, 0, 0, .15);
1773 }
1774 .mui-badge.mui-badge-inverted
1775 {
1776 padding: 0 5px 0 0;
1777
1778 color: #929292;
1779 background-color: transparent;
1780 }
1781
1782 .mui-badge-primary, .mui-badge-blue
1783 {
1784 color: #fff;
1785 background-color: #007aff;
1786 }
1787 .mui-badge-primary.mui-badge-inverted, .mui-badge-blue.mui-badge-inverted
1788 {
1789 color: #007aff;
1790 background-color: transparent;
1791 }
1792
1793 .mui-badge-success, .mui-badge-green
1794 {
1795 color: #fff;
1796 background-color: #4cd964;
1797 }
1798 .mui-badge-success.mui-badge-inverted, .mui-badge-green.mui-badge-inverted
1799 {
1800 color: #4cd964;
1801 background-color: transparent;
1802 }
1803
1804 .mui-badge-warning, .mui-badge-yellow
1805 {
1806 color: #fff;
1807 background-color: #f0ad4e;
1808 }
1809 .mui-badge-warning.mui-badge-inverted, .mui-badge-yellow.mui-badge-inverted
1810 {
1811 color: #f0ad4e;
1812 background-color: transparent;
1813 }
1814
1815 .mui-badge-danger, .mui-badge-red
1816 {
1817 color: #fff;
1818 background-color: #dd524d;
1819 }
1820 .mui-badge-danger.mui-badge-inverted, .mui-badge-red.mui-badge-inverted
1821 {
1822 color: #dd524d;
1823 background-color: transparent;
1824 }
1825
1826 .mui-badge-royal, .mui-badge-purple
1827 {
1828 color: #fff;
1829 background-color: #8a6de9;
1830 }
1831 .mui-badge-royal.mui-badge-inverted, .mui-badge-purple.mui-badge-inverted
1832 {
1833 color: #8a6de9;
1834 background-color: transparent;
1835 }
1836
1837 .mui-icon .mui-badge
1838 {
1839 font-size: 10px;
1840 line-height: 1.4;
1841
1842 position: absolute;
1843 top: -2px;
1844 left: 100%;
1845
1846 margin-left: -10px;
1847 padding: 1px 5px;
1848
1849 color: white;
1850 background: red;
1851 }
1852
1853 .mui-card
1854 {
1855 overflow: hidden;
1856
1857 margin: 0 15px;
1858
1859 border: 1px solid #ddd;
1860 border-radius: 6px;
1861 background-color: white;
1862 background-clip: padding-box;
1863 }
1864
1865 .mui-content > .mui-card:first-child
1866 {
1867 margin-top: 15px;
1868 }
1869
1870 .mui-card .mui-input-group:before, .mui-card .mui-input-group:after
1871 {
1872 height: 0;
1873 }
1874 .mui-card .mui-input-group .mui-input-row:last-child:before, .mui-card .mui-input-group .mui-input-row:last-child:after
1875 {
1876 height: 0;
1877 }
1878
1879 .mui-card .mui-table-view
1880 {
1881 margin-bottom: 0;
1882
1883 border-top: 0;
1884 border-bottom: 0;
1885 border-radius: 6px;
1886 }
1887 .mui-card .mui-table-view .mui-table-view-divider:first-child, .mui-card .mui-table-view .mui-table-view-cell:first-child
1888 {
1889 top: 0;
1890
1891 border-top-left-radius: 6px;
1892 border-top-right-radius: 6px;
1893 }
1894 .mui-card .mui-table-view .mui-table-view-divider:last-child, .mui-card .mui-table-view .mui-table-view-cell:last-child
1895 {
1896 border-bottom-right-radius: 6px;
1897 border-bottom-left-radius: 6px;
1898 }
1899 .mui-card .mui-table-view:before, .mui-card .mui-table-view:after
1900 {
1901 height: 0;
1902 }
1903
1904 .mui-card > .mui-table-view > .mui-table-view-cell:last-child:before, .mui-card > .mui-table-view > .mui-table-view-cell:last-child:after
1905 {
1906 height: 0;
1907 }
1908
1909 .mui-table-view
1910 {
1911 position: relative;
1912
1913 margin-top: 0;
1914 margin-bottom: 0;
1915 padding-left: 0;
1916
1917 list-style: none;
1918
1919 background-color: #fff;
1920 }
1921 .mui-table-view:after
1922 {
1923 position: absolute;
1924 right: 0;
1925 bottom: 0;
1926 left: 0;
1927
1928 height: 1px;
1929
1930 content: '';
1931 -webkit-transform: scaleY(.5);
1932 transform: scaleY(.5);
1933
1934 background-color: #c8c7cc;
1935 }
1936 .mui-table-view:before
1937 {
1938 position: absolute;
1939 top: 0;
1940 right: 0;
1941 left: 0;
1942
1943 height: 1px;
1944
1945 content: '';
1946 -webkit-transform: scaleY(.5);
1947 transform: scaleY(.5);
1948
1949 background-color: #c8c7cc;
1950 }
1951 .mui-table-view:before
1952 {
1953 top: -1px;
1954 }
1955
1956 .mui-table-view-icon .mui-table-view-cell .mui-navigate-right .mui-icon
1957 {
1958 font-size: 20px;
1959
1960 margin-top: -1px;
1961 margin-right: 5px;
1962 margin-left: -5px;
1963 }
1964 .mui-table-view-icon .mui-table-view-cell:after
1965 {
1966 left: 40px;
1967 }
1968
1969 .mui-table-view-chevron .mui-table-view-cell
1970 {
1971 padding-right: 65px;
1972 }
1973 .mui-table-view-chevron .mui-table-view-cell > a:not(.mui-btn)
1974 {
1975 margin-right: -65px;
1976 }
1977
1978 .mui-table-view-radio .mui-table-view-cell
1979 {
1980 padding-right: 65px;
1981 }
1982 .mui-table-view-radio .mui-table-view-cell > a:not(.mui-btn)
1983 {
1984 margin-right: -65px;
1985 }
1986 .mui-table-view-radio .mui-table-view-cell .mui-navigate-right:after
1987 {
1988 font-size: 30px;
1989 font-weight: 600;
1990
1991 right: 9px;
1992
1993 content: '';
1994
1995 color: #007aff;
1996 }
1997 .mui-table-view-radio .mui-table-view-cell.mui-selected .mui-navigate-right:after
1998 {
1999 content: '\e472';
2000 }
2001
2002 .mui-table-view-inverted
2003 {
2004 color: #fff;
2005 background: #333;
2006 }
2007 .mui-table-view-inverted:after
2008 {
2009 position: absolute;
2010 right: 0;
2011 bottom: 0;
2012 left: 0;
2013
2014 height: 1px;
2015
2016 content: '';
2017 -webkit-transform: scaleY(.5);
2018 transform: scaleY(.5);
2019
2020 background-color: #222;
2021 }
2022 .mui-table-view-inverted:before
2023 {
2024 position: absolute;
2025 top: 0;
2026 right: 0;
2027 left: 0;
2028
2029 height: 1px;
2030
2031 content: '';
2032 -webkit-transform: scaleY(.5);
2033 transform: scaleY(.5);
2034
2035 background-color: #222;
2036 }
2037 .mui-table-view-inverted .mui-table-view-cell:after
2038 {
2039 position: absolute;
2040 right: 0;
2041 bottom: 0;
2042 left: 15px;
2043
2044 height: 1px;
2045
2046 content: '';
2047 -webkit-transform: scaleY(.5);
2048 transform: scaleY(.5);
2049
2050 background-color: #222;
2051 }
2052 .mui-table-view-inverted .mui-table-view-cell.mui-active
2053 {
2054 background-color: #242424;
2055 }
2056 .mui-table-view-inverted .mui-table-view-cell > a:not(.mui-btn).mui-active
2057 {
2058 background-color: #242424;
2059 }
2060
2061 .mui-table-view-cell
2062 {
2063 position: relative;
2064
2065 overflow: hidden;
2066
2067 padding: 11px 15px;
2068
2069 -webkit-touch-callout: none;
2070 }
2071 .mui-table-view-cell:after
2072 {
2073 position: absolute;
2074 right: 0;
2075 bottom: 0;
2076 left: 15px;
2077
2078 height: 1px;
2079
2080 content: '';
2081 -webkit-transform: scaleY(.5);
2082 transform: scaleY(.5);
2083
2084 background-color: #c8c7cc;
2085 }
2086 .mui-table-view-cell.mui-radio input[type=radio], .mui-table-view-cell.mui-checkbox input[type=checkbox]
2087 {
2088 top: 8px;
2089 }
2090 .mui-table-view-cell.mui-radio.mui-left, .mui-table-view-cell.mui-checkbox.mui-left
2091 {
2092 padding-left: 58px;
2093 }
2094 .mui-table-view-cell.mui-active
2095 {
2096 background-color: #eee;
2097 }
2098 .mui-table-view-cell:last-child:before, .mui-table-view-cell:last-child:after
2099 {
2100 height: 0;
2101 }
2102 .mui-table-view-cell > a:not(.mui-btn)
2103 {
2104 position: relative;
2105
2106 display: block;
2107 overflow: hidden;
2108
2109 margin: -11px -15px;
2110 padding: inherit;
2111
2112 white-space: nowrap;
2113 text-overflow: ellipsis;
2114
2115 color: inherit;
2116 /*&:active {
2117 background-color: #eee;
2118 }*/
2119 }
2120 .mui-table-view-cell > a:not(.mui-btn).mui-active
2121 {
2122 background-color: #eee;
2123 }
2124 .mui-table-view-cell p
2125 {
2126 margin-bottom: 0;
2127 }
2128
2129 .mui-table-view-cell.mui-transitioning > .mui-slider-handle, .mui-table-view-cell.mui-transitioning > .mui-slider-left .mui-btn, .mui-table-view-cell.mui-transitioning > .mui-slider-right .mui-btn
2130 {
2131 -webkit-transition: -webkit-transform 300ms ease;
2132 transition: transform 300ms ease;
2133 }
2134 .mui-table-view-cell.mui-active > .mui-slider-handle
2135 {
2136 background-color: #eee;
2137 }
2138 .mui-table-view-cell > .mui-slider-handle
2139 {
2140 position: relative;
2141
2142 background-color: #fff;
2143 }
2144 .mui-table-view-cell > .mui-slider-handle.mui-navigate-right:after, .mui-table-view-cell > .mui-slider-handle .mui-navigate-right:after
2145 {
2146 right: 0;
2147 }
2148 .mui-table-view-cell > .mui-slider-handle, .mui-table-view-cell > .mui-slider-left .mui-btn, .mui-table-view-cell > .mui-slider-right .mui-btn
2149 {
2150 -webkit-transition: -webkit-transform 0ms ease;
2151 transition: transform 0ms ease;
2152 }
2153 .mui-table-view-cell > .mui-slider-left, .mui-table-view-cell > .mui-slider-right
2154 {
2155 position: absolute;
2156 top: 0;
2157
2158 display: -webkit-box;
2159 display: -webkit-flex;
2160 display: flex;
2161
2162 height: 100%;
2163 }
2164 .mui-table-view-cell > .mui-slider-left > .mui-btn, .mui-table-view-cell > .mui-slider-right > .mui-btn
2165 {
2166 position: relative;
2167 left: 0;
2168
2169 display: -webkit-box;
2170 display: -webkit-flex;
2171 display: flex;
2172
2173 padding: 0 30px;
2174
2175 color: #fff;
2176 border: 0;
2177 border-radius: 0;
2178
2179 -webkit-box-align: center;
2180 -webkit-align-items: center;
2181 align-items: center;
2182 }
2183 .mui-table-view-cell > .mui-slider-left > .mui-btn:after, .mui-table-view-cell > .mui-slider-right > .mui-btn:after
2184 {
2185 position: absolute;
2186 z-index: -1;
2187 top: 0;
2188
2189 width: 600%;
2190 height: 100%;
2191
2192 content: '';
2193
2194 background: inherit;
2195 }
2196 .mui-table-view-cell > .mui-slider-left > .mui-btn.mui-icon, .mui-table-view-cell > .mui-slider-right > .mui-btn.mui-icon
2197 {
2198 font-size: 30px;
2199 }
2200 .mui-table-view-cell > .mui-slider-right
2201 {
2202 right: 0;
2203
2204 -webkit-transition: -webkit-transform 0ms ease;
2205 transition: transform 0ms ease;
2206 -webkit-transform: translateX(100%);
2207 transform: translateX(100%);
2208 }
2209 .mui-table-view-cell > .mui-slider-left
2210 {
2211 left: 0;
2212
2213 -webkit-transition: -webkit-transform 0ms ease;
2214 transition: transform 0ms ease;
2215 -webkit-transform: translateX(-100%);
2216 transform: translateX(-100%);
2217 }
2218 .mui-table-view-cell > .mui-slider-left > .mui-btn:after
2219 {
2220 right: 100%;
2221
2222 margin-right: -1px;
2223 }
2224
2225 .mui-table-view-divider
2226 {
2227 font-weight: 500;
2228
2229 position: relative;
2230
2231 margin-top: -1px;
2232 margin-left: 0;
2233 padding-top: 6px;
2234 padding-bottom: 6px;
2235 padding-left: 15px;
2236
2237 color: #999;
2238 background-color: #fafafa;
2239 }
2240 .mui-table-view-divider:after
2241 {
2242 position: absolute;
2243 right: 0;
2244 bottom: 0;
2245 left: 0;
2246
2247 height: 1px;
2248
2249 content: '';
2250 -webkit-transform: scaleY(.5);
2251 transform: scaleY(.5);
2252
2253 background-color: #c8c7cc;
2254 }
2255 .mui-table-view-divider:before
2256 {
2257 position: absolute;
2258 top: 0;
2259 right: 0;
2260 left: 0;
2261
2262 height: 1px;
2263
2264 content: '';
2265 -webkit-transform: scaleY(.5);
2266 transform: scaleY(.5);
2267
2268 background-color: #c8c7cc;
2269 }
2270
2271 .mui-table-view .mui-media,
2272 .mui-table-view .mui-media-body
2273 {
2274 overflow: hidden;
2275 }
2276
2277 .mui-table-view .mui-media-large .mui-media-object
2278 {
2279 line-height: 80px;
2280
2281 max-width: 80px;
2282 height: 80px;
2283 }
2284 .mui-table-view .mui-media .mui-subtitle
2285 {
2286 color: #000;
2287 }
2288 .mui-table-view .mui-media-object
2289 {
2290 line-height: 42px;
2291
2292 max-width: 42px;
2293 height: 42px;
2294 }
2295 .mui-table-view .mui-media-object.mui-pull-left
2296 {
2297 margin-right: 10px;
2298 }
2299 .mui-table-view .mui-media-object.mui-pull-right
2300 {
2301 margin-left: 10px;
2302 }
2303 .mui-table-view .mui-table-view-cell.mui-media-icon .mui-media-object
2304 {
2305 line-height: 29px;
2306
2307 max-width: 29px;
2308 height: 29px;
2309 margin: -4px 0;
2310 }
2311 .mui-table-view .mui-table-view-cell.mui-media-icon .mui-media-object img
2312 {
2313 line-height: 29px;
2314
2315 max-width: 29px;
2316 height: 29px;
2317 }
2318 .mui-table-view .mui-table-view-cell.mui-media-icon .mui-media-object.mui-pull-left
2319 {
2320 margin-right: 10px;
2321 }
2322 .mui-table-view .mui-table-view-cell.mui-media-icon .mui-media-object .mui-icon
2323 {
2324 font-size: 29px;
2325 }
2326 .mui-table-view .mui-table-view-cell.mui-media-icon .mui-media-body:after
2327 {
2328 position: absolute;
2329 right: 0;
2330 bottom: 0;
2331 left: 55px;
2332
2333 height: 1px;
2334
2335 content: '';
2336 -webkit-transform: scaleY(.5);
2337 transform: scaleY(.5);
2338
2339 background-color: #c8c7cc;
2340 }
2341 .mui-table-view .mui-table-view-cell.mui-media-icon:after
2342 {
2343 height: 0 !important;
2344 }
2345
2346 .mui-table-view.mui-unfold .mui-table-view-cell.mui-collapse .mui-table-view
2347 {
2348 display: block;
2349 }
2350 .mui-table-view.mui-unfold .mui-table-view-cell.mui-collapse .mui-table-view:before, .mui-table-view.mui-unfold .mui-table-view-cell.mui-collapse .mui-table-view:after
2351 {
2352 height: 0 !important;
2353 }
2354 .mui-table-view.mui-unfold .mui-table-view-cell.mui-media-icon.mui-collapse .mui-media-body:after
2355 {
2356 position: absolute;
2357 right: 0;
2358 bottom: 0;
2359 left: 70px;
2360
2361 height: 1px;
2362
2363 content: '';
2364 -webkit-transform: scaleY(.5);
2365 transform: scaleY(.5);
2366
2367 background-color: #c8c7cc;
2368 }
2369
2370 .mui-table-view-cell > .mui-btn,
2371 .mui-table-view-cell > .mui-badge,
2372 .mui-table-view-cell > .mui-switch,
2373 .mui-table-view-cell > a > .mui-btn,
2374 .mui-table-view-cell > a > .mui-badge,
2375 .mui-table-view-cell > a > .mui-switch
2376 {
2377 position: absolute;
2378 top: 50%;
2379 right: 15px;
2380
2381 -webkit-transform: translateY(-50%);
2382 transform: translateY(-50%);
2383 }
2384 .mui-table-view-cell .mui-navigate-right > .mui-btn,
2385 .mui-table-view-cell .mui-navigate-right > .mui-badge,
2386 .mui-table-view-cell .mui-navigate-right > .mui-switch,
2387 .mui-table-view-cell .mui-push-left > .mui-btn,
2388 .mui-table-view-cell .mui-push-left > .mui-badge,
2389 .mui-table-view-cell .mui-push-left > .mui-switch,
2390 .mui-table-view-cell .mui-push-right > .mui-btn,
2391 .mui-table-view-cell .mui-push-right > .mui-badge,
2392 .mui-table-view-cell .mui-push-right > .mui-switch,
2393 .mui-table-view-cell > a .mui-navigate-right > .mui-btn,
2394 .mui-table-view-cell > a .mui-navigate-right > .mui-badge,
2395 .mui-table-view-cell > a .mui-navigate-right > .mui-switch,
2396 .mui-table-view-cell > a .mui-push-left > .mui-btn,
2397 .mui-table-view-cell > a .mui-push-left > .mui-badge,
2398 .mui-table-view-cell > a .mui-push-left > .mui-switch,
2399 .mui-table-view-cell > a .mui-push-right > .mui-btn,
2400 .mui-table-view-cell > a .mui-push-right > .mui-badge,
2401 .mui-table-view-cell > a .mui-push-right > .mui-switch
2402 {
2403 right: 35px;
2404 }
2405
2406 .mui-content > .mui-table-view:first-child
2407 {
2408 margin-top: 15px;
2409 }
2410
2411 .mui-table-view-cell.mui-collapse .mui-table-view:before, .mui-table-view-cell.mui-collapse .mui-table-view:after
2412 {
2413 height: 0;
2414 }
2415 .mui-table-view-cell.mui-collapse .mui-table-view .mui-table-view-cell:last-child:after
2416 {
2417 height: 0;
2418 }
2419 .mui-table-view-cell.mui-collapse > .mui-navigate-right:after, .mui-table-view-cell.mui-collapse > .mui-push-right:after
2420 {
2421 content: '\e581';
2422 }
2423 .mui-table-view-cell.mui-collapse.mui-active
2424 {
2425 margin-top: -1px;
2426 }
2427 .mui-table-view-cell.mui-collapse.mui-active .mui-table-view, .mui-table-view-cell.mui-collapse.mui-active .mui-collapse-content
2428 {
2429 display: block;
2430 }
2431 .mui-table-view-cell.mui-collapse.mui-active > .mui-navigate-right:after, .mui-table-view-cell.mui-collapse.mui-active > .mui-push-right:after
2432 {
2433 content: '\e580';
2434 }
2435 .mui-table-view-cell.mui-collapse.mui-active .mui-table-view-cell > a:not(.mui-btn).mui-active
2436 {
2437 margin-left: -31px;
2438 padding-left: 47px;
2439 }
2440 .mui-table-view-cell.mui-collapse .mui-collapse-content
2441 {
2442 position: relative;
2443
2444 display: none;
2445 overflow: hidden;
2446
2447 margin: 11px -15px -11px;
2448 padding: 8px 15px;
2449
2450 -webkit-transition: height .35s ease;
2451 -o-transition: height .35s ease;
2452 transition: height .35s ease;
2453
2454 background: white;
2455 }
2456 .mui-table-view-cell.mui-collapse .mui-collapse-content > .mui-input-group, .mui-table-view-cell.mui-collapse .mui-collapse-content > .mui-slider
2457 {
2458 width: auto;
2459 height: auto;
2460 margin: -8px -15px;
2461 }
2462 .mui-table-view-cell.mui-collapse .mui-collapse-content > .mui-slider
2463 {
2464 margin: -8px -16px;
2465 }
2466 .mui-table-view-cell.mui-collapse .mui-table-view
2467 {
2468 display: none;
2469
2470 margin-top: 11px;
2471 margin-right: -15px;
2472 margin-bottom: -11px;
2473 margin-left: -15px;
2474
2475 border: 0;
2476 }
2477 .mui-table-view-cell.mui-collapse .mui-table-view.mui-table-view-chevron
2478 {
2479 margin-right: -65px;
2480 }
2481 .mui-table-view-cell.mui-collapse .mui-table-view .mui-table-view-cell
2482 {
2483 padding-left: 31px;
2484
2485 background-position: 31px 100%;
2486 }
2487 .mui-table-view-cell.mui-collapse .mui-table-view .mui-table-view-cell:after
2488 {
2489 position: absolute;
2490 right: 0;
2491 bottom: 0;
2492 left: 30px;
2493
2494 height: 1px;
2495
2496 content: '';
2497 -webkit-transform: scaleY(.5);
2498 transform: scaleY(.5);
2499
2500 background-color: #c8c7cc;
2501 }
2502
2503 .mui-table-view.mui-grid-view
2504 {
2505 font-size: 0;
2506
2507 display: block;
2508
2509 width: 100%;
2510 padding: 0 10px 10px 0;
2511
2512 white-space: normal;
2513 }
2514 .mui-table-view.mui-grid-view .mui-table-view-cell
2515 {
2516 font-size: 17px;
2517
2518 display: inline-block;
2519
2520 margin-right: -4px;
2521 padding: 10px 0 0 14px;
2522
2523 text-align: center;
2524 vertical-align: middle;
2525
2526 background: none;
2527 }
2528 .mui-table-view.mui-grid-view .mui-table-view-cell .mui-media-object
2529 {
2530 width: 100%;
2531 max-width: 100%;
2532 height: auto;
2533 }
2534 .mui-table-view.mui-grid-view .mui-table-view-cell > a:not(.mui-btn)
2535 {
2536 margin: -10px 0 0 -14px;
2537 }
2538 .mui-table-view.mui-grid-view .mui-table-view-cell > a:not(.mui-btn):active, .mui-table-view.mui-grid-view .mui-table-view-cell > a:not(.mui-btn).mui-active
2539 {
2540 background: none;
2541 }
2542 .mui-table-view.mui-grid-view .mui-table-view-cell .mui-media-body
2543 {
2544 font-size: 15px;
2545 line-height: 15px;
2546
2547 display: block;
2548
2549 width: 100%;
2550 height: 15px;
2551 margin-top: 8px;
2552
2553 text-overflow: ellipsis;
2554
2555 color: #333;
2556 }
2557 .mui-table-view.mui-grid-view .mui-table-view-cell:before, .mui-table-view.mui-grid-view .mui-table-view-cell:after
2558 {
2559 height: 0;
2560 }
2561
2562 .mui-grid-view.mui-grid-9
2563 {
2564 margin: 0;
2565 padding: 0;
2566
2567 border-top: 1px solid #eee;
2568 border-left: 1px solid #eee;
2569 background-color: #f2f2f2;
2570 }
2571 .mui-grid-view.mui-grid-9:before, .mui-grid-view.mui-grid-9:after
2572 {
2573 display: table;
2574
2575 content: ' ';
2576 }
2577 .mui-grid-view.mui-grid-9:after
2578 {
2579 clear: both;
2580 }
2581 .mui-grid-view.mui-grid-9:after
2582 {
2583 position: static;
2584 }
2585 .mui-grid-view.mui-grid-9 .mui-table-view-cell
2586 {
2587 margin: 0;
2588 padding: 11px 15px;
2589
2590 vertical-align: top;
2591
2592 border-right: 1px solid #eee;
2593 border-bottom: 1px solid #eee;
2594 }
2595 .mui-grid-view.mui-grid-9 .mui-table-view-cell.mui-active
2596 {
2597 background-color: #eee;
2598 }
2599 .mui-grid-view.mui-grid-9 .mui-table-view-cell > a:not(.mui-btn)
2600 {
2601 margin: 0;
2602 padding: 10px 0;
2603 }
2604 .mui-grid-view.mui-grid-9:before
2605 {
2606 height: 0;
2607 }
2608 .mui-grid-view.mui-grid-9 .mui-media
2609 {
2610 color: #797979;
2611 }
2612 .mui-grid-view.mui-grid-9 .mui-media .mui-icon
2613 {
2614 font-size: 2.4em;
2615
2616 position: relative;
2617 }
2618
2619 .mui-slider-cell
2620 {
2621 position: relative;
2622 }
2623 .mui-slider-cell > .mui-slider-handle
2624 {
2625 z-index: 1;
2626 }
2627 .mui-slider-cell > .mui-slider-left, .mui-slider-cell > .mui-slider-right
2628 {
2629 position: absolute;
2630 z-index: 0;
2631 top: 0;
2632 bottom: 0;
2633 }
2634 .mui-slider-cell > .mui-slider-left
2635 {
2636 left: 0;
2637 }
2638 .mui-slider-cell > .mui-slider-right
2639 {
2640 right: 0;
2641 }
2642
2643 input,
2644 textarea,
2645 select
2646 {
2647 font-family: 'Helvetica Neue', Helvetica, sans-serif;
2648 font-size: 17px;
2649
2650 -webkit-tap-highlight-color: transparent;
2651 -webkit-tap-highlight-color: transparent;
2652 }
2653 input:focus,
2654 textarea:focus,
2655 select:focus
2656 {
2657 -webkit-tap-highlight-color: transparent;
2658 -webkit-tap-highlight-color: transparent;
2659 -webkit-user-modify: read-write-plaintext-only;
2660 }
2661
2662 select,
2663 textarea,
2664 input[type='text'],
2665 input[type='search'],
2666 input[type='password'],
2667 input[type='datetime'],
2668 input[type='datetime-local'],
2669 input[type='date'],
2670 input[type='month'],
2671 input[type='time'],
2672 input[type='week'],
2673 input[type='number'],
2674 input[type='email'],
2675 input[type='url'],
2676 input[type='tel'],
2677 input[type='color']
2678 {
2679 line-height: 21px;
2680
2681 width: 100%;
2682 height: 40px;
2683 margin-bottom: 15px;
2684 padding: 10px 15px;
2685
2686 -webkit-user-select: text;
2687
2688 border: 1px solid rgba(0, 0, 0, .2);
2689 border-radius: 3px;
2690 outline: none;
2691 background-color: #fff;
2692
2693 -webkit-appearance: none;
2694 }
2695
2696 input[type=number]::-webkit-inner-spin-button,
2697 input[type=number]::-webkit-outer-spin-button
2698 {
2699 margin: 0;
2700
2701 -webkit-appearance: none;
2702 }
2703
2704 input[type='search']
2705 {
2706 font-size: 16px;
2707
2708 -webkit-box-sizing: border-box;
2709 box-sizing: border-box;
2710 height: 34px;
2711
2712 text-align: center;
2713
2714 border: 0;
2715 border-radius: 6px;
2716 background-color: rgba(0, 0, 0, .1);
2717 }
2718
2719 input[type='search']:focus
2720 {
2721 text-align: left;
2722 }
2723
2724 textarea
2725 {
2726 height: auto;
2727
2728 resize: none;
2729 }
2730
2731 select
2732 {
2733 font-size: 14px;
2734
2735 height: auto;
2736 margin-top: 1px;
2737
2738 border: 0 !important;
2739 background-color: #fff;
2740 }
2741 select:focus
2742 {
2743 -webkit-user-modify: read-only;
2744 }
2745
2746 .mui-input-group
2747 {
2748 position: relative;
2749
2750 padding: 0;
2751
2752 border: 0;
2753 background-color: #fff;
2754 }
2755 .mui-input-group:after
2756 {
2757 position: absolute;
2758 right: 0;
2759 bottom: 0;
2760 left: 0;
2761
2762 height: 1px;
2763
2764 content: '';
2765 -webkit-transform: scaleY(.5);
2766 transform: scaleY(.5);
2767
2768 background-color: #c8c7cc;
2769 }
2770 .mui-input-group:before
2771 {
2772 position: absolute;
2773 top: 0;
2774 right: 0;
2775 left: 0;
2776
2777 height: 1px;
2778
2779 content: '';
2780 -webkit-transform: scaleY(.5);
2781 transform: scaleY(.5);
2782
2783 background-color: #c8c7cc;
2784 }
2785
2786 .mui-input-group input,
2787 .mui-input-group textarea
2788 {
2789 margin-bottom: 0;
2790
2791 border: 0;
2792 border-radius: 0;
2793 background-color: transparent;
2794 -webkit-box-shadow: none;
2795 box-shadow: none;
2796 }
2797
2798 .mui-input-group input[type='search']
2799 {
2800 background: none;
2801 }
2802
2803 .mui-input-group input:last-child
2804 {
2805 background-image: none;
2806 }
2807
2808 .mui-input-row
2809 {
2810 clear: left;
2811 overflow: hidden;
2812 }
2813 .mui-input-row select
2814 {
2815 font-size: 17px;
2816
2817 height: 37px;
2818 padding: 0;
2819 }
2820
2821 .mui-input-row:last-child,
2822 .mui-input-row label + input, .mui-input-row .mui-btn + input
2823 {
2824 background: none;
2825 }
2826
2827 .mui-input-group .mui-input-row
2828 {
2829 height: 40px;
2830 }
2831 .mui-input-group .mui-input-row:after
2832 {
2833 position: absolute;
2834 right: 0;
2835 bottom: 0;
2836 left: 15px;
2837
2838 height: 1px;
2839
2840 content: '';
2841 -webkit-transform: scaleY(.5);
2842 transform: scaleY(.5);
2843
2844 background-color: #c8c7cc;
2845 }
2846
2847 .mui-input-row label
2848 {
2849 font-family: 'Helvetica Neue', Helvetica, sans-serif;
2850 line-height: 1.1;
2851
2852 float: left;
2853
2854 width: 35%;
2855 padding: 11px 15px;
2856 }
2857
2858 .mui-input-row label ~ input, .mui-input-row label ~ select, .mui-input-row label ~ textarea
2859 {
2860 float: right;
2861
2862 width: 65%;
2863 margin-bottom: 0;
2864 padding-left: 0;
2865
2866 border: 0;
2867 }
2868
2869 .mui-input-row .mui-btn
2870 {
2871 font-family: 'Helvetica Neue', Helvetica, sans-serif;
2872 line-height: 1.1;
2873
2874 float: right;
2875
2876 width: 15%;
2877 padding: 10px 15px;
2878 }
2879
2880 .mui-input-row .mui-btn ~ input, .mui-input-row .mui-btn ~ select, .mui-input-row .mui-btn ~ textarea
2881 {
2882 float: left;
2883
2884 width: 85%;
2885 margin-bottom: 0;
2886 padding-left: 0;
2887
2888 border: 0;
2889 }
2890
2891 .mui-button-row
2892 {
2893 position: relative;
2894
2895 padding-top: 5px;
2896
2897 text-align: center;
2898 }
2899
2900 .mui-input-group .mui-button-row
2901 {
2902 height: 45px;
2903 }
2904
2905 .mui-input-row
2906 {
2907 position: relative;
2908 }
2909 .mui-input-row.mui-input-range
2910 {
2911 overflow: visible;
2912
2913 padding-right: 20px;
2914 }
2915 .mui-input-row .mui-inline
2916 {
2917 padding: 8px 0;
2918 }
2919 .mui-input-row .mui-input-clear ~ .mui-icon-clear, .mui-input-row .mui-input-speech ~ .mui-icon-speech, .mui-input-row .mui-input-password ~ .mui-icon-eye
2920 {
2921 font-size: 20px;
2922
2923 position: absolute;
2924 z-index: 1;
2925 top: 10px;
2926 right: 0;
2927
2928 width: 38px;
2929 height: 38px;
2930
2931 text-align: center;
2932
2933 color: #999;
2934 }
2935 .mui-input-row .mui-input-clear ~ .mui-icon-clear.mui-active, .mui-input-row .mui-input-speech ~ .mui-icon-speech.mui-active, .mui-input-row .mui-input-password ~ .mui-icon-eye.mui-active
2936 {
2937 color: #007aff;
2938 }
2939 .mui-input-row .mui-input-speech ~ .mui-icon-speech
2940 {
2941 font-size: 24px;
2942
2943 top: 8px;
2944 }
2945 .mui-input-row .mui-input-clear ~ .mui-icon-clear ~ .mui-icon-speech
2946 {
2947 display: none;
2948 }
2949 .mui-input-row .mui-input-clear ~ .mui-icon-clear.mui-hidden ~ .mui-icon-speech
2950 {
2951 display: inline-block;
2952 }
2953 .mui-input-row .mui-icon-speech ~ .mui-placeholder
2954 {
2955 right: 38px;
2956 }
2957 .mui-input-row.mui-search .mui-icon-clear
2958 {
2959 top: 7px;
2960 }
2961 .mui-input-row.mui-search .mui-icon-speech
2962 {
2963 top: 5px;
2964 }
2965
2966 .mui-radio, .mui-checkbox
2967 {
2968 position: relative;
2969 }
2970 .mui-radio label, .mui-checkbox label
2971 {
2972 display: inline-block;
2973 float: none;
2974
2975 width: 100%;
2976 padding-right: 58px;
2977 }
2978
2979 .mui-radio.mui-left input[type='radio'], .mui-checkbox.mui-left input[type='checkbox']
2980 {
2981 left: 20px;
2982 }
2983
2984 .mui-radio.mui-left label, .mui-checkbox.mui-left label
2985 {
2986 padding-right: 15px;
2987 padding-left: 58px;
2988 }
2989
2990 .mui-radio input[type='radio'], .mui-checkbox input[type='checkbox']
2991 {
2992 position: absolute;
2993 top: 4px;
2994 right: 20px;
2995
2996 display: inline-block;
2997
2998 width: 28px;
2999 height: 26px;
3000
3001 border: 0;
3002 outline: 0 !important;
3003 background-color: transparent;
3004
3005 -webkit-appearance: none;
3006 }
3007 .mui-radio input[type='radio'][disabled]:before, .mui-checkbox input[type='checkbox'][disabled]:before
3008 {
3009 opacity: .3;
3010 }
3011 .mui-radio input[type='radio']:before, .mui-checkbox input[type='checkbox']:before
3012 {
3013 font-family: Muiicons;
3014 font-size: 28px;
3015 font-weight: normal;
3016 line-height: 1;
3017
3018 text-decoration: none;
3019
3020 color: #aaa;
3021 border-radius: 0;
3022 background: none;
3023
3024 -webkit-font-smoothing: antialiased;
3025 }
3026 .mui-radio input[type='radio']:checked:before, .mui-checkbox input[type='checkbox']:checked:before
3027 {
3028 color: #007aff;
3029 }
3030
3031 .mui-radio.mui-disabled label, .mui-radio label.mui-disabled, .mui-checkbox.mui-disabled label, .mui-checkbox label.mui-disabled
3032 {
3033 opacity: .4;
3034 }
3035
3036 .mui-radio input[type='radio']:before
3037 {
3038 content: '\e411';
3039 }
3040
3041 .mui-radio input[type='radio']:checked:before
3042 {
3043 content: '\e441';
3044 }
3045
3046 .mui-checkbox input[type='checkbox']:before
3047 {
3048 content: '\e411';
3049 }
3050
3051 .mui-checkbox input[type='checkbox']:checked:before
3052 {
3053 content: '\e442';
3054 }
3055
3056 .mui-select
3057 {
3058 position: relative;
3059 }
3060
3061 .mui-select:before
3062 {
3063 font-family: Muiicons;
3064
3065 position: absolute;
3066 top: 8px;
3067 right: 21px;
3068
3069 content: '\e581';
3070
3071 color: rgba(170, 170, 170, .6);
3072 }
3073
3074 .mui-input-row .mui-switch
3075 {
3076 float: right;
3077
3078 margin-top: 5px;
3079 margin-right: 20px;
3080 }
3081
3082 .mui-input-range
3083 {
3084 /*input[type="range"] {
3085 -webkit-appearance: none;
3086 background: #999;
3087 height: 36px;
3088 border-radius: 1px;
3089 overflow: hidden;
3090 margin-top: 2px;
3091 margin-bottom: 2px;
3092 outline:none;
3093 position:relative;
3094 width:100%;
3095 }*/
3096 /*input[type='range']::-webkit-slider-thumb {
3097 -webkit-appearance: none!important;
3098 opacity: 0.5;
3099 height:28px;
3100 width:28px;
3101 border-radius: 50%;
3102 background:#00b7fb;
3103 position: relative;
3104 pointer-events: none;
3105 -webkit-box-sizing: border-box;
3106 box-sizing: border-box;
3107 &:before{
3108 position: absolute;
3109 top: 13px;
3110 left: -2000px;
3111 width: 2000px;
3112 height: 2px;
3113 background: #00b7fb;
3114 content:' ';
3115 }
3116 }*/
3117 }
3118 .mui-input-range input[type='range']
3119 {
3120 position: relative;
3121
3122 width: 100%;
3123 height: 2px;
3124 margin: 17px 0;
3125 padding: 0;
3126
3127 cursor: pointer;
3128
3129 border: 0;
3130 border-radius: 3px;
3131 outline: none;
3132 background-color: #999;
3133
3134 -webkit-appearance: none !important;
3135 }
3136 .mui-input-range input[type='range']::-webkit-slider-thumb
3137 {
3138 width: 28px;
3139 height: 28px;
3140
3141 border-color: #0062cc;
3142 border-radius: 50%;
3143 background-color: #007aff;
3144 background-clip: padding-box;
3145
3146 -webkit-appearance: none !important;
3147 }
3148 .mui-input-range label ~ input[type='range']
3149 {
3150 width: 65%;
3151 }
3152 .mui-input-range .mui-tooltip
3153 {
3154 font-size: 36px;
3155 line-height: 64px;
3156
3157 position: absolute;
3158 z-index: 1;
3159 top: -70px;
3160
3161 width: 64px;
3162 height: 64px;
3163
3164 text-align: center;
3165
3166 opacity: .8;
3167 color: #333;
3168 border: 1px solid #ddd;
3169 border-radius: 6px;
3170 background-color: #fff;
3171 text-shadow: 0 1px 0 #f3f3f3;
3172 }
3173
3174 .mui-search
3175 {
3176 position: relative;
3177 }
3178 .mui-search input[type='search']
3179 {
3180 padding-left: 30px;
3181 }
3182 .mui-search .mui-placeholder
3183 {
3184 font-size: 16px;
3185 line-height: 34px;
3186
3187 position: absolute;
3188 z-index: 1;
3189 top: 0;
3190 right: 0;
3191 bottom: 0;
3192 left: 0;
3193
3194 display: inline-block;
3195
3196 height: 34px;
3197
3198 text-align: center;
3199
3200 color: #999;
3201 border: 0;
3202 border-radius: 6px;
3203 background: none;
3204 }
3205 .mui-search .mui-placeholder .mui-icon
3206 {
3207 font-size: 20px;
3208
3209 color: #333;
3210 }
3211 .mui-search:before
3212 {
3213 font-family: Muiicons;
3214 font-size: 20px;
3215 font-weight: normal;
3216
3217 position: absolute;
3218 top: 50%;
3219 right: 50%;
3220
3221 display: none;
3222
3223 margin-top: -18px;
3224 margin-right: 31px;
3225
3226 content: '\e466';
3227 }
3228 .mui-search.mui-active:before
3229 {
3230 font-size: 20px;
3231
3232 right: auto;
3233 left: 5px;
3234
3235 display: block;
3236
3237 margin-right: 0;
3238 }
3239 .mui-search.mui-active input[type='search']
3240 {
3241 text-align: left;
3242 }
3243 .mui-search.mui-active .mui-placeholder
3244 {
3245 display: none;
3246 }
3247
3248 .mui-segmented-control
3249 {
3250 font-size: 15px;
3251 font-weight: 400;
3252
3253 position: relative;
3254
3255 display: table;
3256 overflow: hidden;
3257
3258 width: 100%;
3259
3260 table-layout: fixed;
3261
3262 border: 1px solid #007aff;
3263 border-radius: 3px;
3264 background-color: transparent;
3265
3266 -webkit-touch-callout: none;
3267 }
3268 .mui-segmented-control.mui-segmented-control-vertical
3269 {
3270 border-collapse: collapse;
3271
3272 border-width: 0;
3273 border-radius: 0;
3274 }
3275 .mui-segmented-control.mui-segmented-control-vertical .mui-control-item
3276 {
3277 display: block;
3278
3279 border-bottom: 1px solid #c8c7cc;
3280 border-left-width: 0;
3281 }
3282 .mui-segmented-control.mui-scroll-wrapper
3283 {
3284 height: 38px;
3285 }
3286 .mui-segmented-control.mui-scroll-wrapper .mui-scroll
3287 {
3288 width: auto;
3289 height: 40px;
3290
3291 white-space: nowrap;
3292 }
3293 .mui-segmented-control.mui-scroll-wrapper .mui-control-item
3294 {
3295 display: inline-block;
3296
3297 width: auto;
3298 padding: 0 20px;
3299
3300 border: 0;
3301 }
3302 .mui-segmented-control .mui-control-item
3303 {
3304 line-height: 38px;
3305
3306 display: table-cell;
3307 overflow: hidden;
3308
3309 width: 1%;
3310
3311 -webkit-transition: background-color .1s linear;
3312 transition: background-color .1s linear;
3313 text-align: center;
3314 white-space: nowrap;
3315 text-overflow: ellipsis;
3316
3317 color: #007aff;
3318 border-color: #007aff;
3319 border-left: 1px solid #007aff;
3320 }
3321 .mui-segmented-control .mui-control-item:first-child
3322 {
3323 border-left-width: 0;
3324 }
3325 .mui-segmented-control .mui-control-item.mui-active
3326 {
3327 color: #fff;
3328 background-color: #007aff;
3329 }
3330 .mui-segmented-control.mui-segmented-control-inverted
3331 {
3332 width: 100%;
3333
3334 border: 0;
3335 border-radius: 0;
3336 }
3337 .mui-segmented-control.mui-segmented-control-inverted.mui-segmented-control-vertical .mui-control-item
3338 {
3339 border-bottom: 1px solid #c8c7cc;
3340 }
3341 .mui-segmented-control.mui-segmented-control-inverted.mui-segmented-control-vertical .mui-control-item.mui-active
3342 {
3343 border-bottom: 1px solid #c8c7cc;
3344 }
3345 .mui-segmented-control.mui-segmented-control-inverted .mui-control-item
3346 {
3347 color: inherit;
3348 border: 0;
3349 }
3350 .mui-segmented-control.mui-segmented-control-inverted .mui-control-item.mui-active
3351 {
3352 color: #007aff;
3353 border-bottom: 2px solid #007aff;
3354 background: none;
3355 }
3356 .mui-segmented-control.mui-segmented-control-inverted ~ .mui-slider-progress-bar
3357 {
3358 background-color: #007aff;
3359 }
3360
3361 .mui-segmented-control-positive
3362 {
3363 border: 1px solid #4cd964;
3364 }
3365 .mui-segmented-control-positive .mui-control-item
3366 {
3367 color: #4cd964;
3368 border-color: inherit;
3369 }
3370 .mui-segmented-control-positive .mui-control-item.mui-active
3371 {
3372 color: #fff;
3373 background-color: #4cd964;
3374 }
3375 .mui-segmented-control-positive.mui-segmented-control-inverted .mui-control-item.mui-active
3376 {
3377 color: #4cd964;
3378 border-bottom: 2px solid #4cd964;
3379 background: none;
3380 }
3381 .mui-segmented-control-positive.mui-segmented-control-inverted ~ .mui-slider-progress-bar
3382 {
3383 background-color: #4cd964;
3384 }
3385
3386 .mui-segmented-control-negative
3387 {
3388 border: 1px solid #dd524d;
3389 }
3390 .mui-segmented-control-negative .mui-control-item
3391 {
3392 color: #dd524d;
3393 border-color: inherit;
3394 }
3395 .mui-segmented-control-negative .mui-control-item.mui-active
3396 {
3397 color: #fff;
3398 background-color: #dd524d;
3399 }
3400 .mui-segmented-control-negative.mui-segmented-control-inverted .mui-control-item.mui-active
3401 {
3402 color: #dd524d;
3403 border-bottom: 2px solid #dd524d;
3404 background: none;
3405 }
3406 .mui-segmented-control-negative.mui-segmented-control-inverted ~ .mui-slider-progress-bar
3407 {
3408 background-color: #dd524d;
3409 }
3410
3411 .mui-control-content
3412 {
3413 position: relative;
3414
3415 display: none;
3416 }
3417 .mui-control-content.mui-active
3418 {
3419 display: block;
3420 }
3421
3422 .mui-popover
3423 {
3424 position: absolute;
3425 z-index: 999;
3426
3427 display: none;
3428
3429 width: 280px;
3430
3431 -webkit-transition: opacity .3s;
3432 transition: opacity .3s;
3433 -webkit-transition-property: opacity;
3434 transition-property: opacity;
3435 -webkit-transform: none;
3436 transform: none;
3437
3438 opacity: 0;
3439 border-radius: 7px;
3440 background-color: #f7f7f7;
3441 -webkit-box-shadow: 0 0 15px rgba(0, 0, 0, .1);
3442 box-shadow: 0 0 15px rgba(0, 0, 0, .1);
3443 }
3444 .mui-popover .mui-popover-arrow
3445 {
3446 position: absolute;
3447 z-index: 1000;
3448 top: -25px;
3449 left: 0;
3450
3451 overflow: hidden;
3452
3453 width: 26px;
3454 height: 26px;
3455 }
3456 .mui-popover .mui-popover-arrow:after
3457 {
3458 position: absolute;
3459 top: 19px;
3460 left: 0;
3461
3462 width: 26px;
3463 height: 26px;
3464
3465 content: ' ';
3466 -webkit-transform: rotate(45deg);
3467 transform: rotate(45deg);
3468
3469 border-radius: 3px;
3470 background: #f7f7f7;
3471 }
3472 .mui-popover .mui-popover-arrow.mui-bottom
3473 {
3474 top: 100%;
3475 left: -26px;
3476
3477 margin-top: -1px;
3478 }
3479 .mui-popover .mui-popover-arrow.mui-bottom:after
3480 {
3481 top: -19px;
3482 left: 0;
3483 }
3484 .mui-popover.mui-popover-action
3485 {
3486 bottom: 0;
3487
3488 width: 100%;
3489
3490 -webkit-transition: -webkit-transform .3s, opacity .3s;
3491 transition: transform .3s, opacity .3s;
3492 -webkit-transform: translate3d(0, 100%, 0);
3493 transform: translate3d(0, 100%, 0);
3494
3495 border-radius: 0;
3496 background: none;
3497 -webkit-box-shadow: none;
3498 box-shadow: none;
3499 }
3500 .mui-popover.mui-popover-action .mui-popover-arrow
3501 {
3502 display: none;
3503 }
3504 .mui-popover.mui-popover-action.mui-popover-bottom
3505 {
3506 position: fixed;
3507 }
3508 .mui-popover.mui-popover-action.mui-active
3509 {
3510 -webkit-transform: translate3d(0, 0, 0);
3511 transform: translate3d(0, 0, 0);
3512 }
3513 .mui-popover.mui-popover-action .mui-table-view
3514 {
3515 margin: 8px;
3516
3517 text-align: center;
3518
3519 color: #007aff;
3520 border-radius: 4px;
3521 }
3522 .mui-popover.mui-popover-action .mui-table-view .mui-table-view-cell:after
3523 {
3524 position: absolute;
3525 right: 0;
3526 bottom: 0;
3527 left: 0;
3528
3529 height: 1px;
3530
3531 content: '';
3532 -webkit-transform: scaleY(.5);
3533 transform: scaleY(.5);
3534
3535 background-color: #c8c7cc;
3536 }
3537 .mui-popover.mui-popover-action .mui-table-view small
3538 {
3539 font-weight: 400;
3540 line-height: 1.3;
3541
3542 display: block;
3543 }
3544 .mui-popover.mui-active
3545 {
3546 display: block;
3547
3548 opacity: 1;
3549 }
3550 .mui-popover .mui-bar ~ .mui-table-view
3551 {
3552 padding-top: 44px;
3553 }
3554
3555 .mui-backdrop
3556 {
3557 position: fixed;
3558 z-index: 998;
3559 top: 0;
3560 right: 0;
3561 bottom: 0;
3562 left: 0;
3563
3564 background-color: rgba(0, 0, 0, .3);
3565 }
3566
3567 .mui-bar-backdrop.mui-backdrop
3568 {
3569 bottom: 50px;
3570
3571 background: none;
3572 }
3573
3574 .mui-backdrop-action.mui-backdrop
3575 {
3576 background-color: rgba(0, 0, 0, .3);
3577 }
3578
3579 .mui-bar-backdrop.mui-backdrop, .mui-backdrop-action.mui-backdrop
3580 {
3581 opacity: 0;
3582 }
3583 .mui-bar-backdrop.mui-backdrop.mui-active, .mui-backdrop-action.mui-backdrop.mui-active
3584 {
3585 -webkit-transition: all .4s ease;
3586 transition: all .4s ease;
3587
3588 opacity: 1;
3589 }
3590
3591 .mui-popover .mui-btn-block
3592 {
3593 margin-bottom: 5px;
3594 }
3595 .mui-popover .mui-btn-block:last-child
3596 {
3597 margin-bottom: 0;
3598 }
3599
3600 .mui-popover .mui-bar
3601 {
3602 -webkit-box-shadow: none;
3603 box-shadow: none;
3604 }
3605
3606 .mui-popover .mui-bar-nav
3607 {
3608 border-bottom: 1px solid rgba(0, 0, 0, .15);
3609 border-top-left-radius: 12px;
3610 border-top-right-radius: 12px;
3611 -webkit-box-shadow: none;
3612 box-shadow: none;
3613 }
3614
3615 .mui-popover .mui-scroll-wrapper
3616 {
3617 margin: 7px 0;
3618
3619 border-radius: 7px;
3620 background-clip: padding-box;
3621 }
3622
3623 .mui-popover .mui-scroll .mui-table-view
3624 {
3625 max-height: none;
3626 }
3627
3628 .mui-popover .mui-table-view
3629 {
3630 overflow: auto;
3631
3632 max-height: 300px;
3633 margin-bottom: 0;
3634
3635 border-radius: 7px;
3636 background-color: #f7f7f7;
3637 background-image: none;
3638
3639 -webkit-overflow-scrolling: touch;
3640 }
3641 .mui-popover .mui-table-view:before, .mui-popover .mui-table-view:after
3642 {
3643 height: 0;
3644 }
3645 .mui-popover .mui-table-view .mui-table-view-cell:first-child,
3646 .mui-popover .mui-table-view .mui-table-view-cell:first-child > a:not(.mui-btn)
3647 {
3648 border-top-left-radius: 12px;
3649 border-top-right-radius: 12px;
3650 }
3651 .mui-popover .mui-table-view .mui-table-view-cell:last-child,
3652 .mui-popover .mui-table-view .mui-table-view-cell:last-child > a:not(.mui-btn)
3653 {
3654 border-bottom-right-radius: 12px;
3655 border-bottom-left-radius: 12px;
3656 }
3657
3658 .mui-popover.mui-bar-popover .mui-table-view
3659 {
3660 width: 106px;
3661 }
3662 .mui-popover.mui-bar-popover .mui-table-view .mui-table-view-cell
3663 {
3664 padding: 11px 15px 11px 15px;
3665
3666 background-position: 0 100%;
3667 }
3668 .mui-popover.mui-bar-popover .mui-table-view .mui-table-view-cell > a:not(.mui-btn)
3669 {
3670 margin: -11px -15px -11px -15px;
3671 }
3672
3673 .mui-popup-backdrop
3674 {
3675 position: fixed;
3676 z-index: 998;
3677 top: 0;
3678 right: 0;
3679 bottom: 0;
3680 left: 0;
3681
3682 -webkit-transition-duration: 400ms;
3683 transition-duration: 400ms;
3684
3685 opacity: 0;
3686 background: rgba(0, 0, 0, .4);
3687 }
3688 .mui-popup-backdrop.mui-active
3689 {
3690 opacity: 1;
3691 }
3692
3693 .mui-popup
3694 {
3695 position: absolute;
3696 z-index: 10000;
3697 top: 50%;
3698 left: 50%;
3699
3700 display: none;
3701 overflow: hidden;
3702
3703 width: 270px;
3704
3705 -webkit-transition-property: -webkit-transform,opacity;
3706 transition-property: transform,opacity;
3707 -webkit-transform: translate3d(-50%, -50%, 0) scale(1.185);
3708 transform: translate3d(-50%, -50%, 0) scale(1.185);
3709 text-align: center;
3710
3711 opacity: 0;
3712 color: #000;
3713 border-radius: 13px;
3714 }
3715 .mui-popup.mui-popup-in
3716 {
3717 display: block;
3718
3719 -webkit-transition-duration: 400ms;
3720 transition-duration: 400ms;
3721 -webkit-transform: translate3d(-50%, -50%, 0) scale(1);
3722 transform: translate3d(-50%, -50%, 0) scale(1);
3723
3724 opacity: 1;
3725 }
3726 .mui-popup.mui-popup-out
3727 {
3728 -webkit-transition-duration: 400ms;
3729 transition-duration: 400ms;
3730 -webkit-transform: translate3d(-50%, -50%, 0) scale(1);
3731 transform: translate3d(-50%, -50%, 0) scale(1);
3732
3733 opacity: 0;
3734 }
3735
3736 .mui-popup-inner
3737 {
3738 position: relative;
3739
3740 padding: 15px;
3741
3742 border-radius: 13px 13px 0 0;
3743 background: rgba(255, 255, 255, .95);
3744 }
3745 .mui-popup-inner:after
3746 {
3747 position: absolute;
3748 z-index: 15;
3749 top: auto;
3750 right: auto;
3751 bottom: 0;
3752 left: 0;
3753
3754 display: block;
3755
3756 width: 100%;
3757 height: 1px;
3758
3759 content: '';
3760 -webkit-transform: scaleY(.5);
3761 transform: scaleY(.5);
3762 -webkit-transform-origin: 50% 100%;
3763 transform-origin: 50% 100%;
3764
3765 background-color: rgba(0, 0, 0, .2);
3766 }
3767
3768 .mui-popup-title
3769 {
3770 font-size: 18px;
3771 font-weight: 500;
3772
3773 text-align: center;
3774 }
3775
3776 .mui-popup-title + .mui-popup-text
3777 {
3778 font-size: 14px;
3779
3780 margin-top: 5px;
3781 }
3782
3783 .mui-popup-buttons
3784 {
3785 position: relative;
3786
3787 display: -webkit-box;
3788 display: -webkit-flex;
3789 display: flex;
3790
3791 height: 44px;
3792
3793 -webkit-box-pack: center;
3794 -webkit-justify-content: center;
3795 justify-content: center;
3796 }
3797
3798 .mui-popup-button
3799 {
3800 font-size: 17px;
3801 line-height: 44px;
3802
3803 position: relative;
3804
3805 display: block;
3806 overflow: hidden;
3807
3808 box-sizing: border-box;
3809 width: 100%;
3810 height: 44px;
3811 padding: 0 5px;
3812
3813 cursor: pointer;
3814 text-align: center;
3815 white-space: nowrap;
3816 text-overflow: ellipsis;
3817
3818 color: #007aff;
3819 background: rgba(255, 255, 255, .95);
3820
3821 -webkit-box-flex: 1;
3822 }
3823 .mui-popup-button:after
3824 {
3825 position: absolute;
3826 z-index: 15;
3827 top: 0;
3828 right: 0;
3829 bottom: auto;
3830 left: auto;
3831
3832 display: block;
3833
3834 width: 1px;
3835 height: 100%;
3836
3837 content: '';
3838 -webkit-transform: scaleX(.5);
3839 transform: scaleX(.5);
3840 -webkit-transform-origin: 100% 50%;
3841 transform-origin: 100% 50%;
3842
3843 background-color: rgba(0, 0, 0, .2);
3844 }
3845 .mui-popup-button:first-child
3846 {
3847 border-radius: 0 0 0 13px;
3848 }
3849 .mui-popup-button:first-child:last-child
3850 {
3851 border-radius: 0 0 13px 13px;
3852 }
3853 .mui-popup-button:last-child
3854 {
3855 border-radius: 0 0 13px 0;
3856 }
3857 .mui-popup-button:last-child:after
3858 {
3859 display: none;
3860 }
3861 .mui-popup-button.mui-popup-button-bold
3862 {
3863 font-weight: 600;
3864 }
3865
3866 .mui-popup-input input
3867 {
3868 font-size: 14px;
3869
3870 width: 100%;
3871 height: 26px;
3872 margin: 0;
3873 margin-top: 15px;
3874 padding: 0 5px;
3875
3876 border: 1px solid rgba(0, 0, 0, .3);
3877 border-radius: 0;
3878 background: #fff;
3879 }
3880
3881 .mui-plus.mui-android .mui-popup-backdrop
3882 {
3883 -webkit-transition-duration: 1ms;
3884 transition-duration: 1ms;
3885 }
3886
3887 .mui-plus.mui-android .mui-popup
3888 {
3889 -webkit-transition-duration: 1ms;
3890 transition-duration: 1ms;
3891 -webkit-transform: translate3d(-50%, -50%, 0) scale(1);
3892 transform: translate3d(-50%, -50%, 0) scale(1);
3893 }
3894
3895 .mui-pagination
3896 {
3897 display: inline-block;
3898
3899 margin: 0 auto;
3900 padding-left: 0;
3901
3902 border-radius: 6px;
3903 }
3904 .mui-pagination > li
3905 {
3906 display: inline;
3907 }
3908 .mui-pagination > li > a,
3909 .mui-pagination > li > span
3910 {
3911 line-height: 1.428571429;
3912
3913 position: relative;
3914
3915 float: left;
3916
3917 margin-left: -1px;
3918 padding: 6px 12px;
3919
3920 text-decoration: none;
3921
3922 color: #007aff;
3923 border: 1px solid #ddd;
3924 background-color: #fff;
3925 }
3926 .mui-pagination > li:first-child > a,
3927 .mui-pagination > li:first-child > span
3928 {
3929 margin-left: 0;
3930
3931 border-top-left-radius: 6px;
3932 border-bottom-left-radius: 6px;
3933 background-clip: padding-box;
3934 }
3935 .mui-pagination > li:last-child > a,
3936 .mui-pagination > li:last-child > span
3937 {
3938 border-top-right-radius: 6px;
3939 border-bottom-right-radius: 6px;
3940 background-clip: padding-box;
3941 }
3942 .mui-pagination > li:active > a, .mui-pagination > li:active > a:active,
3943 .mui-pagination > li:active > span,
3944 .mui-pagination > li:active > span:active,
3945 .mui-pagination > li.mui-active > a,
3946 .mui-pagination > li.mui-active > a:active,
3947 .mui-pagination > li.mui-active > span,
3948 .mui-pagination > li.mui-active > span:active
3949 {
3950 z-index: 2;
3951
3952 cursor: default;
3953
3954 color: #fff;
3955 border-color: #007aff;
3956 background-color: #007aff;
3957 }
3958 .mui-pagination > li.mui-disabled > span,
3959 .mui-pagination > li.mui-disabled > span:active,
3960 .mui-pagination > li.mui-disabled > a,
3961 .mui-pagination > li.mui-disabled > a:active
3962 {
3963 opacity: .6;
3964 color: #777;
3965 border: 1px solid #ddd;
3966 background-color: #fff;
3967 }
3968
3969 .mui-pagination-lg > li > a,
3970 .mui-pagination-lg > li > span
3971 {
3972 font-size: 18px;
3973
3974 padding: 10px 16px;
3975 }
3976
3977 .mui-pagination-sm > li > a,
3978 .mui-pagination-sm > li > span
3979 {
3980 font-size: 12px;
3981
3982 padding: 5px 10px;
3983 }
3984
3985 .mui-pager
3986 {
3987 padding-left: 0;
3988
3989 list-style: none;
3990
3991 text-align: center;
3992 }
3993 .mui-pager:before, .mui-pager:after
3994 {
3995 display: table;
3996
3997 content: ' ';
3998 }
3999 .mui-pager:after
4000 {
4001 clear: both;
4002 }
4003 .mui-pager li
4004 {
4005 display: inline;
4006 }
4007 .mui-pager li > a,
4008 .mui-pager li > span
4009 {
4010 display: inline-block;
4011
4012 padding: 5px 14px;
4013
4014 border: 1px solid #ddd;
4015 border-radius: 6px;
4016 background-color: #fff;
4017 background-clip: padding-box;
4018 }
4019 .mui-pager li:active > a, .mui-pager li:active > span, .mui-pager li.mui-active > a, .mui-pager li.mui-active > span
4020 {
4021 cursor: default;
4022 text-decoration: none;
4023
4024 color: #fff;
4025 border-color: #007aff;
4026 background-color: #007aff;
4027 }
4028 .mui-pager .mui-next > a,
4029 .mui-pager .mui-next > span
4030 {
4031 float: right;
4032 }
4033 .mui-pager .mui-previous > a,
4034 .mui-pager .mui-previous > span
4035 {
4036 float: left;
4037 }
4038 .mui-pager .mui-disabled > a,
4039 .mui-pager .mui-disabled > a:active,
4040 .mui-pager .mui-disabled > span,
4041 .mui-pager .mui-disabled > span:active
4042 {
4043 opacity: .6;
4044 color: #777;
4045 border: 1px solid #ddd;
4046 background-color: #fff;
4047 }
4048
4049 .mui-modal
4050 {
4051 position: fixed;
4052 z-index: 999;
4053 top: 0;
4054
4055 overflow: hidden;
4056
4057 width: 100%;
4058 min-height: 100%;
4059
4060 -webkit-transition: -webkit-transform .25s, opacity 1ms .25s;
4061 transition: transform .25s, opacity 1ms .25s;
4062 -webkit-transition-timing-function: cubic-bezier(.1, .5, .1, 1);
4063 transition-timing-function: cubic-bezier(.1, .5, .1, 1);
4064 -webkit-transform: translate3d(0, 100%, 0);
4065 transform: translate3d(0, 100%, 0);
4066
4067 opacity: 0;
4068 background-color: #fff;
4069 }
4070 .mui-modal.mui-active
4071 {
4072 height: 100%;
4073
4074 -webkit-transition: -webkit-transform .25s;
4075 transition: transform .25s;
4076 -webkit-transition-timing-function: cubic-bezier(.1, .5, .1, 1);
4077 transition-timing-function: cubic-bezier(.1, .5, .1, 1);
4078 -webkit-transform: translate3d(0, 0, 0);
4079 transform: translate3d(0, 0, 0);
4080
4081 opacity: 1;
4082 }
4083
4084 .mui-android .mui-modal .mui-bar
4085 {
4086 position: static;
4087 }
4088
4089 .mui-android .mui-modal .mui-bar-nav ~ .mui-content
4090 {
4091 padding-top: 0;
4092 }
4093
4094 .mui-slider
4095 {
4096 position: relative;
4097 z-index: 1;
4098
4099 overflow: hidden;
4100
4101 width: 100%;
4102 }
4103 .mui-slider .mui-segmented-control.mui-segmented-control-inverted .mui-control-item.mui-active
4104 {
4105 border-bottom: 0;
4106 }
4107 .mui-slider .mui-segmented-control.mui-segmented-control-inverted ~ .mui-slider-group .mui-slider-item
4108 {
4109 border-top: 1px solid #c8c7cc;
4110 border-bottom: 1px solid #c8c7cc;
4111 }
4112 .mui-slider .mui-slider-group
4113 {
4114 font-size: 0;
4115
4116 position: relative;
4117
4118 -webkit-transition: all 0s linear;
4119 transition: all 0s linear;
4120 white-space: nowrap;
4121 }
4122 .mui-slider .mui-slider-group .mui-slider-item
4123 {
4124 font-size: 14px;
4125
4126 position: relative;
4127
4128 display: inline-block;
4129
4130 width: 100%;
4131 height: 100%;
4132
4133 vertical-align: top;
4134 white-space: normal;
4135 }
4136 .mui-slider .mui-slider-group .mui-slider-item > a:not(.mui-control-item)
4137 {
4138 line-height: 0;
4139
4140 position: relative;
4141
4142 display: block;
4143 }
4144 .mui-slider .mui-slider-group .mui-slider-item img
4145 {
4146 width: 100%;
4147 }
4148 .mui-slider .mui-slider-group .mui-slider-item .mui-table-view:before, .mui-slider .mui-slider-group .mui-slider-item .mui-table-view:after
4149 {
4150 height: 0;
4151 }
4152 .mui-slider .mui-slider-group.mui-slider-loop
4153 {
4154 -webkit-transform: translate(-100%, 0px);
4155 transform: translate(-100%, 0px);
4156 }
4157
4158 .mui-slider-title
4159 {
4160 line-height: 30px;
4161
4162 position: absolute;
4163 bottom: 0;
4164 left: 0;
4165
4166 width: 100%;
4167 height: 30px;
4168 margin: 0;
4169
4170 text-align: left;
4171 text-indent: 12px;
4172
4173 opacity: .8;
4174 background-color: #000;
4175 }
4176
4177 .mui-slider-indicator
4178 {
4179 position: absolute;
4180 bottom: 8px;
4181
4182 width: 100%;
4183
4184 text-align: center;
4185
4186 background: none;
4187 }
4188 .mui-slider-indicator.mui-segmented-control
4189 {
4190 position: relative;
4191 bottom: auto;
4192 }
4193 .mui-slider-indicator .mui-indicator
4194 {
4195 display: inline-block;
4196
4197 width: 6px;
4198 height: 6px;
4199 margin: 1px 6px;
4200
4201 cursor: pointer;
4202
4203 border-radius: 50%;
4204 background: #aaa;
4205 -webkit-box-shadow: 0 0 1px 1px rgba(130, 130, 130, .7);
4206 box-shadow: 0 0 1px 1px rgba(130, 130, 130, .7);
4207 }
4208 .mui-slider-indicator .mui-active.mui-indicator
4209 {
4210 background: #fff;
4211 }
4212 .mui-slider-indicator .mui-icon
4213 {
4214 font-size: 20px;
4215 line-height: 30px;
4216
4217 width: 40px;
4218 height: 30px;
4219 margin: 3px;
4220
4221 text-align: center;
4222
4223 border: 1px solid #ddd;
4224 }
4225 .mui-slider-indicator .mui-number
4226 {
4227 line-height: 32px;
4228
4229 display: inline-block;
4230
4231 width: 58px;
4232 }
4233 .mui-slider-indicator .mui-number span
4234 {
4235 color: #ff5053;
4236 }
4237
4238 .mui-slider-progress-bar
4239 {
4240 z-index: 1;
4241
4242 height: 2px;
4243
4244 -webkit-transform: translateZ(0);
4245 transform: translateZ(0);
4246 }
4247
4248 .mui-switch
4249 {
4250 position: relative;
4251
4252 display: block;
4253
4254 width: 74px;
4255 height: 30px;
4256
4257 -webkit-transition-timing-function: ease-in-out;
4258 transition-timing-function: ease-in-out;
4259 -webkit-transition-duration: .2s;
4260 transition-duration: .2s;
4261 -webkit-transition-property: background-color, border;
4262 transition-property: background-color, border;
4263
4264 border: 2px solid #ddd;
4265 border-radius: 20px;
4266 background-color: #fff;
4267 background-clip: padding-box;
4268 }
4269 .mui-switch.mui-disabled
4270 {
4271 opacity: .3;
4272 }
4273 .mui-switch .mui-switch-handle
4274 {
4275 position: absolute;
4276 z-index: 1;
4277 top: -1px;
4278 left: -1px;
4279
4280 width: 28px;
4281 height: 28px;
4282
4283 -webkit-transition: .2s ease-in-out;
4284 transition: .2s ease-in-out;
4285 -webkit-transition-property: -webkit-transform, width,left;
4286 transition-property: transform, width,left;
4287
4288 border-radius: 16px;
4289 background-color: #fff;
4290 background-clip: padding-box;
4291 -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, .4);
4292 box-shadow: 0 2px 5px rgba(0, 0, 0, .4);
4293 }
4294 .mui-switch:before
4295 {
4296 font-size: 13px;
4297
4298 position: absolute;
4299 top: 3px;
4300 right: 11px;
4301
4302 content: 'Off';
4303 text-transform: uppercase;
4304
4305 color: #999;
4306 }
4307 .mui-switch.mui-dragging
4308 {
4309 border-color: #f7f7f7;
4310 background-color: #f7f7f7;
4311 }
4312 .mui-switch.mui-dragging .mui-switch-handle
4313 {
4314 width: 38px;
4315 }
4316 .mui-switch.mui-dragging.mui-active .mui-switch-handle
4317 {
4318 left: -11px;
4319
4320 width: 38px;
4321 }
4322 .mui-switch.mui-active
4323 {
4324 border-color: #4cd964;
4325 background-color: #4cd964;
4326 }
4327 .mui-switch.mui-active .mui-switch-handle
4328 {
4329 -webkit-transform: translate(43px, 0);
4330 transform: translate(43px, 0);
4331 }
4332 .mui-switch.mui-active:before
4333 {
4334 right: auto;
4335 left: 15px;
4336
4337 content: 'On';
4338
4339 color: #fff;
4340 }
4341 .mui-switch input[type='checkbox']
4342 {
4343 display: none;
4344 }
4345
4346 .mui-switch-mini
4347 {
4348 width: 47px;
4349 }
4350 .mui-switch-mini:before
4351 {
4352 display: none;
4353 }
4354 .mui-switch-mini.mui-active .mui-switch-handle
4355 {
4356 -webkit-transform: translate(16px, 0);
4357 transform: translate(16px, 0);
4358 }
4359
4360 .mui-switch-blue.mui-active
4361 {
4362 border: 2px solid #007aff;
4363 background-color: #007aff;
4364 }
4365
4366 .mui-content.mui-fade
4367 {
4368 left: 0;
4369
4370 opacity: 0;
4371 }
4372 .mui-content.mui-fade.mui-in
4373 {
4374 opacity: 1;
4375 }
4376 .mui-content.mui-sliding
4377 {
4378 z-index: 2;
4379
4380 -webkit-transition: -webkit-transform .4s;
4381 transition: transform .4s;
4382 -webkit-transform: translate3d(0, 0, 0);
4383 transform: translate3d(0, 0, 0);
4384 }
4385 .mui-content.mui-sliding.mui-left
4386 {
4387 z-index: 1;
4388
4389 -webkit-transform: translate3d(-100%, 0, 0);
4390 transform: translate3d(-100%, 0, 0);
4391 }
4392 .mui-content.mui-sliding.mui-right
4393 {
4394 z-index: 3;
4395
4396 -webkit-transform: translate3d(100%, 0, 0);
4397 transform: translate3d(100%, 0, 0);
4398 }
4399
4400 .mui-navigate-right:after,
4401 .mui-push-left:after,
4402 .mui-push-right:after
4403 {
4404 font-family: Muiicons;
4405 font-size: inherit;
4406 line-height: 1;
4407
4408 position: absolute;
4409 top: 50%;
4410
4411 display: inline-block;
4412
4413 -webkit-transform: translateY(-50%);
4414 transform: translateY(-50%);
4415 text-decoration: none;
4416
4417 color: #bbb;
4418
4419 -webkit-font-smoothing: antialiased;
4420 }
4421
4422 .mui-push-left:after
4423 {
4424 left: 15px;
4425
4426 content: '\e582';
4427 }
4428
4429 .mui-navigate-right:after,
4430 .mui-push-right:after
4431 {
4432 right: 15px;
4433
4434 content: '\e583';
4435 }
4436
4437 .mui-pull-top-pocket, .mui-pull-bottom-pocket
4438 {
4439 position: absolute;
4440 left: 0;
4441
4442 display: block;
4443 visibility: hidden;
4444 overflow: hidden;
4445
4446 width: 100%;
4447 height: 50px;
4448 }
4449
4450 .mui-plus-pullrefresh .mui-pull-top-pocket, .mui-plus-pullrefresh .mui-pull-bottom-pocket
4451 {
4452 display: none;
4453 visibility: visible;
4454 }
4455
4456 .mui-pull-top-pocket
4457 {
4458 top: 0;
4459 }
4460
4461 .mui-bar-nav ~ .mui-content .mui-pull-top-pocket
4462 {
4463 top: 44px;
4464 }
4465
4466 .mui-bar-nav ~ .mui-bar-header-secondary ~ .mui-content .mui-pull-top-pocket
4467 {
4468 top: 88px;
4469 }
4470
4471 .mui-pull-bottom-pocket
4472 {
4473 position: relative;
4474 bottom: 0;
4475
4476 height: 40px;
4477 }
4478 .mui-pull-bottom-pocket .mui-pull-loading
4479 {
4480 visibility: hidden;
4481 }
4482 .mui-pull-bottom-pocket .mui-pull-loading.mui-in
4483 {
4484 display: inline-block;
4485 }
4486
4487 .mui-pull
4488 {
4489 font-weight: bold;
4490
4491 position: absolute;
4492 right: 0;
4493 bottom: 10px;
4494 left: 0;
4495
4496 text-align: center;
4497
4498 color: #777;
4499 }
4500
4501 .mui-pull-loading
4502 {
4503 margin-right: 10px;
4504
4505 -webkit-transition: -webkit-transform .4s;
4506 transition: transform .4s;
4507 -webkit-transition-duration: 400ms;
4508 transition-duration: 400ms;
4509 vertical-align: middle;
4510 }
4511
4512 .mui-pull-loading.mui-reverse
4513 {
4514 -webkit-transform: rotate(180deg) translateZ(0);
4515 transform: rotate(180deg) translateZ(0);
4516 }
4517
4518 .mui-pull-caption
4519 {
4520 font-size: 15px;
4521 line-height: 24px;
4522
4523 position: relative;
4524
4525 display: inline-block;
4526 overflow: visible;
4527
4528 margin-top: 0;
4529
4530 vertical-align: middle;
4531 }
4532 .mui-pull-caption span
4533 {
4534 display: none;
4535 }
4536 .mui-pull-caption span.mui-in
4537 {
4538 display: inline;
4539 }
4540
4541 .mui-toast-container
4542 {
4543 position: fixed;
4544 z-index: 9999;
4545 bottom: 50px;
4546
4547 width: 100%;
4548
4549 -webkit-transition: opacity .8s;
4550 transition: opacity .8s;
4551
4552 opacity: 0;
4553 }
4554 .mui-toast-container.mui-active
4555 {
4556 opacity: 1;
4557 }
4558
4559 .mui-toast-message
4560 {
4561 font-size: 14px;
4562
4563 width: 270px;
4564 margin: 5px auto;
4565 padding: 5px;
4566
4567 text-align: center;
4568
4569 color: #000;
4570 border-radius: 7px;
4571 background-color: #d8d8d8;
4572 }
4573
4574 .mui-numbox
4575 {
4576 position: relative;
4577
4578 display: inline-block;
4579 overflow: hidden;
4580
4581 width: 120px;
4582 height: 35px;
4583 padding: 0 40px 0 40px;
4584
4585 vertical-align: top;
4586 vertical-align: middle;
4587
4588 border: solid 1px #bbb;
4589 border-radius: 3px;
4590 background-color: #efeff4;
4591 }
4592 .mui-numbox [class*=numbox-btn], .mui-numbox [class*=btn-numbox]
4593 {
4594 font-size: 18px;
4595 font-weight: normal;
4596 line-height: 100%;
4597
4598 position: absolute;
4599 top: 0;
4600
4601 overflow: hidden;
4602
4603 width: 40px;
4604 height: 100%;
4605 padding: 0;
4606
4607 color: #555;
4608 border: none;
4609 border-radius: 0;
4610 background-color: #f9f9f9;
4611 }
4612 .mui-numbox [class*=numbox-btn]:active, .mui-numbox [class*=btn-numbox]:active
4613 {
4614 background-color: #ccc;
4615 }
4616 .mui-numbox [class*=numbox-btn][disabled], .mui-numbox [class*=btn-numbox][disabled]
4617 {
4618 color: #c0c0c0;
4619 }
4620 .mui-numbox .mui-numbox-btn-plus, .mui-numbox .mui-btn-numbox-plus
4621 {
4622 right: 0;
4623
4624 border-top-right-radius: 3px;
4625 border-bottom-right-radius: 3px;
4626 }
4627 .mui-numbox .mui-numbox-btn-minus, .mui-numbox .mui-btn-numbox-minus
4628 {
4629 left: 0;
4630
4631 border-top-left-radius: 3px;
4632 border-bottom-left-radius: 3px;
4633 }
4634 .mui-numbox .mui-numbox-input, .mui-numbox .mui-input-numbox
4635 {
4636 display: inline-block;
4637 overflow: hidden;
4638
4639 width: 100% !important;
4640 height: 100%;
4641 margin: 0;
4642 padding: 0 3px !important;
4643
4644 text-align: center;
4645 text-overflow: ellipsis;
4646 word-break: normal;
4647
4648 border: none !important;
4649 border-right: solid 1px #ccc !important;
4650 border-left: solid 1px #ccc !important;
4651 border-radius: 0 !important;
4652 }
4653
4654 .mui-input-row .mui-numbox
4655 {
4656 float: right;
4657
4658 margin: 2px 8px;
4659 }
4660
4661 @font-face {
4662 font-family: Muiicons;
4663 font-weight: normal;
4664 font-style: normal;
4665
4666 src: url('../fonts/mui.ttf') format('truetype');
4667 }
4668 .mui-icon
4669 {
4670 font-family: Muiicons;
4671 font-size: 24px;
4672 font-weight: normal;
4673 font-style: normal;
4674 line-height: 1;
4675
4676 display: inline-block;
4677
4678 text-decoration: none;
4679
4680 -webkit-font-smoothing: antialiased;
4681 }
4682 .mui-icon.mui-active
4683 {
4684 color: #007aff;
4685 }
4686 .mui-icon.mui-right:before
4687 {
4688 float: right;
4689
4690 padding-left: .2em;
4691 }
4692
4693 .mui-icon-contact:before
4694 {
4695 content: '\e100';
4696 }
4697
4698 .mui-icon-person:before
4699 {
4700 content: '\e101';
4701 }
4702
4703 .mui-icon-personadd:before
4704 {
4705 content: '\e102';
4706 }
4707
4708 .mui-icon-contact-filled:before
4709 {
4710 content: '\e130';
4711 }
4712
4713 .mui-icon-person-filled:before
4714 {
4715 content: '\e131';
4716 }
4717
4718 .mui-icon-personadd-filled:before
4719 {
4720 content: '\e132';
4721 }
4722
4723 .mui-icon-phone:before
4724 {
4725 content: '\e200';
4726 }
4727
4728 .mui-icon-email:before
4729 {
4730 content: '\e201';
4731 }
4732
4733 .mui-icon-chatbubble:before
4734 {
4735 content: '\e202';
4736 }
4737
4738 .mui-icon-chatboxes:before
4739 {
4740 content: '\e203';
4741 }
4742
4743 .mui-icon-phone-filled:before
4744 {
4745 content: '\e230';
4746 }
4747
4748 .mui-icon-email-filled:before
4749 {
4750 content: '\e231';
4751 }
4752
4753 .mui-icon-chatbubble-filled:before
4754 {
4755 content: '\e232';
4756 }
4757
4758 .mui-icon-chatboxes-filled:before
4759 {
4760 content: '\e233';
4761 }
4762
4763 .mui-icon-weibo:before
4764 {
4765 content: '\e260';
4766 }
4767
4768 .mui-icon-weixin:before
4769 {
4770 content: '\e261';
4771 }
4772
4773 .mui-icon-pengyouquan:before
4774 {
4775 content: '\e262';
4776 }
4777
4778 .mui-icon-chat:before
4779 {
4780 content: '\e263';
4781 }
4782
4783 .mui-icon-qq:before
4784 {
4785 content: '\e264';
4786 }
4787
4788 .mui-icon-videocam:before
4789 {
4790 content: '\e300';
4791 }
4792
4793 .mui-icon-camera:before
4794 {
4795 content: '\e301';
4796 }
4797
4798 .mui-icon-mic:before
4799 {
4800 content: '\e302';
4801 }
4802
4803 .mui-icon-location:before
4804 {
4805 content: '\e303';
4806 }
4807
4808 .mui-icon-mic-filled:before, .mui-icon-speech:before
4809 {
4810 content: '\e332';
4811 }
4812
4813 .mui-icon-location-filled:before
4814 {
4815 content: '\e333';
4816 }
4817
4818 .mui-icon-micoff:before
4819 {
4820 content: '\e360';
4821 }
4822
4823 .mui-icon-image:before
4824 {
4825 content: '\e363';
4826 }
4827
4828 .mui-icon-map:before
4829 {
4830 content: '\e364';
4831 }
4832
4833 .mui-icon-compose:before
4834 {
4835 content: '\e400';
4836 }
4837
4838 .mui-icon-trash:before
4839 {
4840 content: '\e401';
4841 }
4842
4843 .mui-icon-upload:before
4844 {
4845 content: '\e402';
4846 }
4847
4848 .mui-icon-download:before
4849 {
4850 content: '\e403';
4851 }
4852
4853 .mui-icon-close:before
4854 {
4855 content: '\e404';
4856 }
4857
4858 .mui-icon-redo:before
4859 {
4860 content: '\e405';
4861 }
4862
4863 .mui-icon-undo:before
4864 {
4865 content: '\e406';
4866 }
4867
4868 .mui-icon-refresh:before
4869 {
4870 content: '\e407';
4871 }
4872
4873 .mui-icon-star:before
4874 {
4875 content: '\e408';
4876 }
4877
4878 .mui-icon-plus:before
4879 {
4880 content: '\e409';
4881 }
4882
4883 .mui-icon-minus:before
4884 {
4885 content: '\e410';
4886 }
4887
4888 .mui-icon-circle:before, .mui-icon-checkbox:before
4889 {
4890 content: '\e411';
4891 }
4892
4893 .mui-icon-close-filled:before, .mui-icon-clear:before
4894 {
4895 content: '\e434';
4896 }
4897
4898 .mui-icon-refresh-filled:before
4899 {
4900 content: '\e437';
4901 }
4902
4903 .mui-icon-star-filled:before
4904 {
4905 content: '\e438';
4906 }
4907
4908 .mui-icon-plus-filled:before
4909 {
4910 content: '\e439';
4911 }
4912
4913 .mui-icon-minus-filled:before
4914 {
4915 content: '\e440';
4916 }
4917
4918 .mui-icon-circle-filled:before
4919 {
4920 content: '\e441';
4921 }
4922
4923 .mui-icon-checkbox-filled:before
4924 {
4925 content: '\e442';
4926 }
4927
4928 .mui-icon-closeempty:before
4929 {
4930 content: '\e460';
4931 }
4932
4933 .mui-icon-refreshempty:before
4934 {
4935 content: '\e461';
4936 }
4937
4938 .mui-icon-reload:before
4939 {
4940 content: '\e462';
4941 }
4942
4943 .mui-icon-starhalf:before
4944 {
4945 content: '\e463';
4946 }
4947
4948 .mui-icon-spinner:before
4949 {
4950 content: '\e464';
4951 }
4952
4953 .mui-icon-spinner-cycle:before
4954 {
4955 content: '\e465';
4956 }
4957
4958 .mui-icon-search:before
4959 {
4960 content: '\e466';
4961 }
4962
4963 .mui-icon-plusempty:before
4964 {
4965 content: '\e468';
4966 }
4967
4968 .mui-icon-forward:before
4969 {
4970 content: '\e470';
4971 }
4972
4973 .mui-icon-back:before, .mui-icon-left-nav:before
4974 {
4975 content: '\e471';
4976 }
4977
4978 .mui-icon-checkmarkempty:before
4979 {
4980 content: '\e472';
4981 }
4982
4983 .mui-icon-home:before
4984 {
4985 content: '\e500';
4986 }
4987
4988 .mui-icon-navigate:before
4989 {
4990 content: '\e501';
4991 }
4992
4993 .mui-icon-gear:before
4994 {
4995 content: '\e502';
4996 }
4997
4998 .mui-icon-paperplane:before
4999 {
5000 content: '\e503';
5001 }
5002
5003 .mui-icon-info:before
5004 {
5005 content: '\e504';
5006 }
5007
5008 .mui-icon-help:before
5009 {
5010 content: '\e505';
5011 }
5012
5013 .mui-icon-locked:before
5014 {
5015 content: '\e506';
5016 }
5017
5018 .mui-icon-more:before
5019 {
5020 content: '\e507';
5021 }
5022
5023 .mui-icon-flag:before
5024 {
5025 content: '\e508';
5026 }
5027
5028 .mui-icon-home-filled:before
5029 {
5030 content: '\e530';
5031 }
5032
5033 .mui-icon-gear-filled:before
5034 {
5035 content: '\e532';
5036 }
5037
5038 .mui-icon-info-filled:before
5039 {
5040 content: '\e534';
5041 }
5042
5043 .mui-icon-help-filled:before
5044 {
5045 content: '\e535';
5046 }
5047
5048 .mui-icon-more-filled:before
5049 {
5050 content: '\e537';
5051 }
5052
5053 .mui-icon-settings:before
5054 {
5055 content: '\e560';
5056 }
5057
5058 .mui-icon-list:before
5059 {
5060 content: '\e562';
5061 }
5062
5063 .mui-icon-bars:before
5064 {
5065 content: '\e563';
5066 }
5067
5068 .mui-icon-loop:before
5069 {
5070 content: '\e565';
5071 }
5072
5073 .mui-icon-paperclip:before
5074 {
5075 content: '\e567';
5076 }
5077
5078 .mui-icon-eye:before
5079 {
5080 content: '\e568';
5081 }
5082
5083 .mui-icon-arrowup:before
5084 {
5085 content: '\e580';
5086 }
5087
5088 .mui-icon-arrowdown:before
5089 {
5090 content: '\e581';
5091 }
5092
5093 .mui-icon-arrowleft:before
5094 {
5095 content: '\e582';
5096 }
5097
5098 .mui-icon-arrowright:before
5099 {
5100 content: '\e583';
5101 }
5102
5103 .mui-icon-arrowthinup:before
5104 {
5105 content: '\e584';
5106 }
5107
5108 .mui-icon-arrowthindown:before
5109 {
5110 content: '\e585';
5111 }
5112
5113 .mui-icon-arrowthinleft:before
5114 {
5115 content: '\e586';
5116 }
5117
5118 .mui-icon-arrowthinright:before
5119 {
5120 content: '\e587';
5121 }
5122
5123 .mui-icon-pulldown:before
5124 {
5125 content: '\e588';
5126 }
5127
5128 .mui-fullscreen
5129 {
5130 position: absolute;
5131 top: 0;
5132 right: 0;
5133 bottom: 0;
5134 left: 0;
5135
5136 width: 100%;
5137 height: 100%;
5138 }
5139 .mui-fullscreen.mui-slider .mui-slider-group
5140 {
5141 height: 100%;
5142 }
5143 .mui-fullscreen .mui-segmented-control ~ .mui-slider-group
5144 {
5145 position: absolute;
5146 top: 40px;
5147 bottom: 0;
5148
5149 width: 100%;
5150 height: auto;
5151 }
5152 .mui-fullscreen.mui-slider .mui-slider-item > a
5153 {
5154 top: 50%;
5155
5156 -webkit-transform: translateY(-50%);
5157 transform: translateY(-50%);
5158 }
5159 .mui-fullscreen .mui-off-canvas-wrap .mui-slider-item > a
5160 {
5161 top: auto;
5162
5163 -webkit-transform: none;
5164 transform: none;
5165 }
5166
5167 .mui-bar-tab ~ .mui-content .mui-slider.mui-fullscreen .mui-segmented-control ~ .mui-slider-group
5168 {
5169 bottom: 50px;
5170 }
5171
5172 .mui-android.mui-android-4-0 input:focus,
5173 .mui-android.mui-android-4-0 textarea:focus
5174 {
5175 -webkit-user-modify: inherit;
5176 }
5177
5178 .mui-android.mui-android-4-2 input,
5179 .mui-android.mui-android-4-2 textarea, .mui-android.mui-android-4-3 input,
5180 .mui-android.mui-android-4-3 textarea
5181 {
5182 -webkit-user-select: text;
5183 }
5184
5185 .mui-ios .mui-table-view-cell
5186 {
5187 -webkit-transform-style: preserve-3d;
5188 transform-style: preserve-3d;
5189 }
5190
5191 .mui-plus-visible, .mui-wechat-visible
5192 {
5193 display: none !important;
5194 }
5195
5196 .mui-plus-hidden, .mui-wechat-hidden
5197 {
5198 display: block !important;
5199 }
5200
5201 .mui-tab-item.mui-plus-hidden, .mui-tab-item.mui-wechat-hidden
5202 {
5203 display: table-cell !important;
5204 }
5205
5206 .mui-plus .mui-plus-visible, .mui-wechat .mui-wechat-visible
5207 {
5208 display: block !important;
5209 }
5210
5211 .mui-plus .mui-tab-item.mui-plus-visible, .mui-wechat .mui-tab-item.mui-wechat-visible
5212 {
5213 display: table-cell !important;
5214 }
5215
5216 .mui-plus .mui-plus-hidden, .mui-wechat .mui-wechat-hidden
5217 {
5218 display: none !important;
5219 }
5220
5221 .mui-plus.mui-statusbar.mui-statusbar-offset .mui-bar-nav
5222 {
5223 height: 64px;
5224 padding-top: 20px;
5225 }
5226 .mui-plus.mui-statusbar.mui-statusbar-offset .mui-bar-nav ~ .mui-content
5227 {
5228 padding-top: 64px;
5229 }
5230 .mui-plus.mui-statusbar.mui-statusbar-offset .mui-bar-nav ~ .mui-content .mui-pull-top-pocket
5231 {
5232 top: 64px;
5233 }
5234 .mui-plus.mui-statusbar.mui-statusbar-offset .mui-bar-header-secondary
5235 {
5236 top: 64px;
5237 }
5238 .mui-plus.mui-statusbar.mui-statusbar-offset .mui-bar-header-secondary ~ .mui-content
5239 {
5240 padding-top: 94px;
5241 }
5242
5243 .mui-iframe-wrapper
5244 {
5245 position: absolute;
5246 right: 0;
5247 left: 0;
5248
5249 -webkit-overflow-scrolling: touch;
5250 }
5251 .mui-iframe-wrapper iframe
5252 {
5253 width: 100%;
5254 height: 100%;
5255
5256 border: 0;
5257 }
1 /*!
2 * =====================================================
3 * Mui v2.8.0 (http://dev.dcloud.net.cn/mui)
4 * =====================================================
5 *//*! normalize.css v3.0.1 | MIT License | git.io/normalize */html{font-family:sans-serif;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:0 0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{font:inherit;margin:0;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button}button[disabled],html input[disabled]{cursor:default}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{margin:0 2px;padding:.35em .625em .75em;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}*{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-user-select:none;outline:0;-webkit-tap-highlight-color:transparent;-webkit-tap-highlight-color:transparent}body{font-family:'Helvetica Neue',Helvetica,sans-serif;font-size:17px;line-height:21px;color:#000;background-color:#efeff4;-webkit-overflow-scrolling:touch}a{text-decoration:none;color:#007aff}a:active{color:#0062cc}.mui-content{background-color:#efeff4;-webkit-overflow-scrolling:touch}.mui-bar-nav~.mui-content{padding-top:44px}.mui-bar-nav~.mui-content.mui-scroll-wrapper .mui-scrollbar-vertical{top:44px}.mui-bar-header-secondary~.mui-content{padding-top:88px}.mui-bar-header-secondary~.mui-content.mui-scroll-wrapper .mui-scrollbar-vertical{top:88px}.mui-bar-footer~.mui-content{padding-bottom:44px}.mui-bar-footer~.mui-content.mui-scroll-wrapper .mui-scrollbar-vertical{bottom:44px}.mui-bar-footer-secondary~.mui-content{padding-bottom:88px}.mui-bar-footer-secondary~.mui-content.mui-scroll-wrapper .mui-scrollbar-vertical{bottom:88px}.mui-bar-tab~.mui-content{padding-bottom:50px}.mui-bar-tab~.mui-content.mui-scroll-wrapper .mui-scrollbar-vertical{bottom:50px}.mui-bar-footer-secondary-tab~.mui-content{padding-bottom:94px}.mui-bar-footer-secondary-tab~.mui-content.mui-scroll-wrapper .mui-scrollbar-vertical{bottom:94px}.mui-content-padded{margin:10px}.mui-inline{display:inline-block;vertical-align:top}.mui-block{display:block!important}.mui-visibility{visibility:visible!important}.mui-hidden{display:none!important}.mui-ellipsis{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.mui-ellipsis-2{display:-webkit-box;overflow:hidden;white-space:normal!important;text-overflow:ellipsis;word-wrap:break-word;-webkit-line-clamp:2;-webkit-box-orient:vertical}.mui-table{display:table;width:100%;table-layout:fixed}.mui-table-cell{position:relative;display:table-cell}.mui-text-left{text-align:left!important}.mui-text-center{text-align:center!important}.mui-text-justify{text-align:justify!important}.mui-text-right{text-align:right!important}.mui-pull-left{float:left}.mui-pull-right{float:right}.mui-list-unstyled{padding-left:0;list-style:none}.mui-list-inline{margin-left:-5px;padding-left:0;list-style:none}.mui-list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}.mui-clearfix:after,.mui-clearfix:before{display:table;content:' '}.mui-clearfix:after{clear:both}.mui-bg-primary{background-color:#007aff}.mui-bg-positive{background-color:#4cd964}.mui-bg-negative{background-color:#dd524d}.mui-error{margin:88px 35px;padding:10px;border-radius:6px;background-color:#bbb}.mui-subtitle{font-size:15px}h1,h2,h3,h4,h5,h6{line-height:1;margin-top:5px;margin-bottom:5px}.mui-h1,h1{font-size:36px}.mui-h2,h2{font-size:30px}.mui-h3,h3{font-size:24px}.mui-h4,h4{font-size:18px}.mui-h5,h5{font-size:14px;font-weight:400;color:#8f8f94}.mui-h6,h6{font-size:12px;font-weight:400;color:#8f8f94}p{font-size:14px;margin-top:0;margin-bottom:10px;color:#8f8f94}.mui-row:after,.mui-row:before{display:table;content:' '}.mui-row:after{clear:both}.mui-col-sm-1,.mui-col-sm-10,.mui-col-sm-11,.mui-col-sm-12,.mui-col-sm-2,.mui-col-sm-3,.mui-col-sm-4,.mui-col-sm-5,.mui-col-sm-6,.mui-col-sm-7,.mui-col-sm-8,.mui-col-sm-9,.mui-col-xs-1,.mui-col-xs-10,.mui-col-xs-11,.mui-col-xs-12,.mui-col-xs-2,.mui-col-xs-3,.mui-col-xs-4,.mui-col-xs-5,.mui-col-xs-6,.mui-col-xs-7,.mui-col-xs-8,.mui-col-xs-9{position:relative;min-height:1px}.mui-row>[class*=mui-col-]{float:left}.mui-col-xs-12{width:100%}.mui-col-xs-11{width:91.66666667%}.mui-col-xs-10{width:83.33333333%}.mui-col-xs-9{width:75%}.mui-col-xs-8{width:66.66666667%}.mui-col-xs-7{width:58.33333333%}.mui-col-xs-6{width:50%}.mui-col-xs-5{width:41.66666667%}.mui-col-xs-4{width:33.33333333%}.mui-col-xs-3{width:25%}.mui-col-xs-2{width:16.66666667%}.mui-col-xs-1{width:8.33333333%}@media (min-width:400px){.mui-col-sm-12{width:100%}.mui-col-sm-11{width:91.66666667%}.mui-col-sm-10{width:83.33333333%}.mui-col-sm-9{width:75%}.mui-col-sm-8{width:66.66666667%}.mui-col-sm-7{width:58.33333333%}.mui-col-sm-6{width:50%}.mui-col-sm-5{width:41.66666667%}.mui-col-sm-4{width:33.33333333%}.mui-col-sm-3{width:25%}.mui-col-sm-2{width:16.66666667%}.mui-col-sm-1{width:8.33333333%}}.mui-scroll-wrapper{position:absolute;z-index:2;top:0;bottom:0;left:0;overflow:hidden;width:100%}.mui-scroll{position:absolute;z-index:1;width:100%;-webkit-transform:translateZ(0);transform:translateZ(0)}.mui-scrollbar{position:absolute;z-index:9998;overflow:hidden;-webkit-transition:500ms;transition:500ms;transform:translateZ(0px);pointer-events:none;opacity:0}.mui-scrollbar-vertical{top:0;right:1px;bottom:2px;width:4px}.mui-scrollbar-vertical .mui-scrollbar-indicator{width:100%}.mui-scrollbar-horizontal{right:2px;bottom:0;left:2px;height:4px}.mui-scrollbar-horizontal .mui-scrollbar-indicator{height:100%}.mui-scrollbar-indicator{position:absolute;display:block;box-sizing:border-box;-webkit-transition:.01s cubic-bezier(.1,.57,.1,1);transition:.01s cubic-bezier(.1,.57,.1,1);transform:translate(0px,0) translateZ(0px);border:1px solid rgba(255,255,255,.80196);border-radius:2px;background:rgba(0,0,0,.39804)}.mui-plus-pullrefresh .mui-fullscreen .mui-scroll-wrapper .mui-scroll-wrapper,.mui-plus-pullrefresh .mui-fullscreen .mui-slider-group .mui-scroll-wrapper{position:absolute;top:0;bottom:0;left:0;overflow:hidden;width:100%}.mui-plus-pullrefresh .mui-fullscreen .mui-scroll-wrapper .mui-scroll,.mui-plus-pullrefresh .mui-fullscreen .mui-slider-group .mui-scroll{position:absolute;width:100%}.mui-plus-pullrefresh .mui-scroll-wrapper,.mui-plus-pullrefresh .mui-slider-group{position:static;top:auto;bottom:auto;left:auto;overflow:auto;width:auto}.mui-plus-pullrefresh .mui-slider-group{overflow:visible}.mui-plus-pullrefresh .mui-scroll{position:static;width:auto}.mui-off-canvas-wrap .mui-bar{position:absolute!important;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-box-shadow:none;box-shadow:none}.mui-off-canvas-wrap{position:relative;z-index:1;overflow:hidden;width:100%;height:100%}.mui-off-canvas-wrap .mui-inner-wrap{position:relative;z-index:1;width:100%;height:100%}.mui-off-canvas-wrap .mui-inner-wrap.mui-transitioning{-webkit-transition:-webkit-transform 350ms;transition:transform 350ms cubic-bezier(.165,.84,.44,1)}.mui-off-canvas-wrap .mui-inner-wrap .mui-off-canvas-left{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.mui-off-canvas-wrap .mui-inner-wrap .mui-off-canvas-right{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.mui-off-canvas-wrap.mui-active{overflow:hidden;height:100%}.mui-off-canvas-wrap.mui-active .mui-off-canvas-backdrop{position:absolute;z-index:998;top:0;right:0;bottom:0;left:0;display:block;transition:background 350ms cubic-bezier(.165,.84,.44,1);background:rgba(0,0,0,.4);box-shadow:-4px 0 4px rgba(0,0,0,.5),4px 0 4px rgba(0,0,0,.5);-webkit-tap-highlight-color:transparent}.mui-off-canvas-wrap.mui-slide-in .mui-off-canvas-right{z-index:10000!important;-webkit-transform:translate3d(100%,0,0)}.mui-off-canvas-wrap.mui-slide-in .mui-off-canvas-left{z-index:10000!important;-webkit-transform:translate3d(-100%,0,0)}.mui-off-canvas-left,.mui-off-canvas-right{position:absolute;z-index:-1;top:0;bottom:0;visibility:hidden;box-sizing:content-box;width:70%;min-height:100%;background:#333;-webkit-overflow-scrolling:touch}.mui-off-canvas-left.mui-transitioning,.mui-off-canvas-right.mui-transitioning{-webkit-transition:-webkit-transform 350ms cubic-bezier(.165,.84,.44,1);transition:transform 350ms cubic-bezier(.165,.84,.44,1)}.mui-off-canvas-left{left:0}.mui-off-canvas-right{right:0}.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable{background-color:#333}.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable>.mui-off-canvas-left,.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable>.mui-off-canvas-right{width:80%;-webkit-transform:scale(.8);transform:scale(.8);opacity:.1}.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable>.mui-off-canvas-left.mui-transitioning,.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable>.mui-off-canvas-right.mui-transitioning{-webkit-transition:-webkit-transform 350ms cubic-bezier(.165,.84,.44,1),opacity 350ms cubic-bezier(.165,.84,.44,1);transition:transform 350ms cubic-bezier(.165,.84,.44,1),opacity 350ms cubic-bezier(.165,.84,.44,1)}.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable>.mui-off-canvas-left{-webkit-transform-origin:-100%;transform-origin:-100%}.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable>.mui-off-canvas-right{-webkit-transform-origin:200%;transform-origin:200%}.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable.mui-active>.mui-inner-wrap{-webkit-transform:scale(.8);transform:scale(.8)}.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable.mui-active>.mui-off-canvas-left,.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable.mui-active>.mui-off-canvas-right{-webkit-transform:scale(1);transform:scale(1);opacity:1}.mui-loading .mui-spinner{display:block;margin:0 auto}.mui-spinner{display:inline-block;width:24px;height:24px;-webkit-transform-origin:50%;transform-origin:50%;-webkit-animation:spinner-spin 1s step-end infinite;animation:spinner-spin 1s step-end infinite}.mui-spinner:after{display:block;width:100%;height:100%;content:'';background-image:url('data:image/svg+xml;charset=utf-8,<svg viewBox=\'0 0 120 120\' xmlns=\'http://www.w3.org/2000/svg\' xmlns:xlink=\'http://www.w3.org/1999/xlink\'><defs><line id=\'l\' x1=\'60\' x2=\'60\' y1=\'7\' y2=\'27\' stroke=\'%236c6c6c\' stroke-width=\'11\' stroke-linecap=\'round\'/></defs><g><use xlink:href=\'%23l\' opacity=\'.27\'/><use xlink:href=\'%23l\' opacity=\'.27\' transform=\'rotate(30 60,60)\'/><use xlink:href=\'%23l\' opacity=\'.27\' transform=\'rotate(60 60,60)\'/><use xlink:href=\'%23l\' opacity=\'.27\' transform=\'rotate(90 60,60)\'/><use xlink:href=\'%23l\' opacity=\'.27\' transform=\'rotate(120 60,60)\'/><use xlink:href=\'%23l\' opacity=\'.27\' transform=\'rotate(150 60,60)\'/><use xlink:href=\'%23l\' opacity=\'.37\' transform=\'rotate(180 60,60)\'/><use xlink:href=\'%23l\' opacity=\'.46\' transform=\'rotate(210 60,60)\'/><use xlink:href=\'%23l\' opacity=\'.56\' transform=\'rotate(240 60,60)\'/><use xlink:href=\'%23l\' opacity=\'.66\' transform=\'rotate(270 60,60)\'/><use xlink:href=\'%23l\' opacity=\'.75\' transform=\'rotate(300 60,60)\'/><use xlink:href=\'%23l\' opacity=\'.85\' transform=\'rotate(330 60,60)\'/></g></svg>');background-repeat:no-repeat;background-position:50%;background-size:100%}.mui-spinner-white:after{background-image:url('data:image/svg+xml;charset=utf-8,<svg viewBox=\'0 0 120 120\' xmlns=\'http://www.w3.org/2000/svg\' xmlns:xlink=\'http://www.w3.org/1999/xlink\'><defs><line id=\'l\' x1=\'60\' x2=\'60\' y1=\'7\' y2=\'27\' stroke=\'%23fff\' stroke-width=\'11\' stroke-linecap=\'round\'/></defs><g><use xlink:href=\'%23l\' opacity=\'.27\'/><use xlink:href=\'%23l\' opacity=\'.27\' transform=\'rotate(30 60,60)\'/><use xlink:href=\'%23l\' opacity=\'.27\' transform=\'rotate(60 60,60)\'/><use xlink:href=\'%23l\' opacity=\'.27\' transform=\'rotate(90 60,60)\'/><use xlink:href=\'%23l\' opacity=\'.27\' transform=\'rotate(120 60,60)\'/><use xlink:href=\'%23l\' opacity=\'.27\' transform=\'rotate(150 60,60)\'/><use xlink:href=\'%23l\' opacity=\'.37\' transform=\'rotate(180 60,60)\'/><use xlink:href=\'%23l\' opacity=\'.46\' transform=\'rotate(210 60,60)\'/><use xlink:href=\'%23l\' opacity=\'.56\' transform=\'rotate(240 60,60)\'/><use xlink:href=\'%23l\' opacity=\'.66\' transform=\'rotate(270 60,60)\'/><use xlink:href=\'%23l\' opacity=\'.75\' transform=\'rotate(300 60,60)\'/><use xlink:href=\'%23l\' opacity=\'.85\' transform=\'rotate(330 60,60)\'/></g></svg>')}@-webkit-keyframes spinner-spin{0%{-webkit-transform:rotate(0deg)}8.33333333%{-webkit-transform:rotate(30deg)}16.66666667%{-webkit-transform:rotate(60deg)}25%{-webkit-transform:rotate(90deg)}33.33333333%{-webkit-transform:rotate(120deg)}41.66666667%{-webkit-transform:rotate(150deg)}50%{-webkit-transform:rotate(180deg)}58.33333333%{-webkit-transform:rotate(210deg)}66.66666667%{-webkit-transform:rotate(240deg)}75%{-webkit-transform:rotate(270deg)}83.33333333%{-webkit-transform:rotate(300deg)}91.66666667%{-webkit-transform:rotate(330deg)}100%{-webkit-transform:rotate(360deg)}}@keyframes spinner-spin{0%{transform:rotate(0deg)}8.33333333%{transform:rotate(30deg)}16.66666667%{transform:rotate(60deg)}25%{transform:rotate(90deg)}33.33333333%{transform:rotate(120deg)}41.66666667%{transform:rotate(150deg)}50%{transform:rotate(180deg)}58.33333333%{transform:rotate(210deg)}66.66666667%{transform:rotate(240deg)}75%{transform:rotate(270deg)}83.33333333%{transform:rotate(300deg)}91.66666667%{transform:rotate(330deg)}100%{transform:rotate(360deg)}}.mui-btn,button,input[type=button],input[type=reset],input[type=submit]{font-size:14px;font-weight:400;line-height:1.42;position:relative;display:inline-block;margin-bottom:0;padding:6px 12px;cursor:pointer;-webkit-transition:all;transition:all;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transition-duration:.2s;transition-duration:.2s;text-align:center;vertical-align:top;white-space:nowrap;color:#333;border:1px solid #ccc;border-radius:3px;border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px;background-color:#fff;background-clip:padding-box}.mui-btn.mui-active:enabled,.mui-btn:enabled:active,button.mui-active:enabled,button:enabled:active,input[type=button].mui-active:enabled,input[type=button]:enabled:active,input[type=reset].mui-active:enabled,input[type=reset]:enabled:active,input[type=submit].mui-active:enabled,input[type=submit]:enabled:active{color:#fff;background-color:#929292}.mui-btn.mui-disabled,.mui-btn:disabled,button.mui-disabled,button:disabled,input[type=button].mui-disabled,input[type=button]:disabled,input[type=reset].mui-disabled,input[type=reset]:disabled,input[type=submit].mui-disabled,input[type=submit]:disabled{opacity:.6}.mui-btn-blue,.mui-btn-primary,input[type=submit]{color:#fff;border:1px solid #007aff;background-color:#007aff}.mui-btn-blue.mui-active:enabled,.mui-btn-blue:enabled:active,.mui-btn-primary.mui-active:enabled,.mui-btn-primary:enabled:active,input[type=submit].mui-active:enabled,input[type=submit]:enabled:active{color:#fff;border:1px solid #0062cc;background-color:#0062cc}.mui-btn-green,.mui-btn-positive,.mui-btn-success{color:#fff;border:1px solid #4cd964;background-color:#4cd964}.mui-btn-green.mui-active:enabled,.mui-btn-green:enabled:active,.mui-btn-positive.mui-active:enabled,.mui-btn-positive:enabled:active,.mui-btn-success.mui-active:enabled,.mui-btn-success:enabled:active{color:#fff;border:1px solid #2ac845;background-color:#2ac845}.mui-btn-warning,.mui-btn-yellow{color:#fff;border:1px solid #f0ad4e;background-color:#f0ad4e}.mui-btn-warning.mui-active:enabled,.mui-btn-warning:enabled:active,.mui-btn-yellow.mui-active:enabled,.mui-btn-yellow:enabled:active{color:#fff;border:1px solid #ec971f;background-color:#ec971f}.mui-btn-danger,.mui-btn-negative,.mui-btn-red{color:#fff;border:1px solid #dd524d;background-color:#dd524d}.mui-btn-danger.mui-active:enabled,.mui-btn-danger:enabled:active,.mui-btn-negative.mui-active:enabled,.mui-btn-negative:enabled:active,.mui-btn-red.mui-active:enabled,.mui-btn-red:enabled:active{color:#fff;border:1px solid #cf2d28;background-color:#cf2d28}.mui-btn-purple,.mui-btn-royal{color:#fff;border:1px solid #8a6de9;background-color:#8a6de9}.mui-btn-purple.mui-active:enabled,.mui-btn-purple:enabled:active,.mui-btn-royal.mui-active:enabled,.mui-btn-royal:enabled:active{color:#fff;border:1px solid #6641e2;background-color:#6641e2}.mui-btn-grey{color:#fff;border:1px solid #c7c7cc;background-color:#c7c7cc}.mui-btn-grey.mui-active:enabled,.mui-btn-grey:enabled:active{color:#fff;border:1px solid #acacb4;background-color:#acacb4}.mui-btn-outlined{background-color:transparent}.mui-btn-outlined.mui-btn-blue,.mui-btn-outlined.mui-btn-primary{color:#007aff}.mui-btn-outlined.mui-btn-green,.mui-btn-outlined.mui-btn-positive,.mui-btn-outlined.mui-btn-success{color:#4cd964}.mui-btn-outlined.mui-btn-warning,.mui-btn-outlined.mui-btn-yellow{color:#f0ad4e}.mui-btn-outlined.mui-btn-danger,.mui-btn-outlined.mui-btn-negative,.mui-btn-outlined.mui-btn-red{color:#dd524d}.mui-btn-outlined.mui-btn-purple,.mui-btn-outlined.mui-btn-royal{color:#8a6de9}.mui-btn-outlined.mui-btn-blue:enabled:active,.mui-btn-outlined.mui-btn-danger:enabled:active,.mui-btn-outlined.mui-btn-green:enabled:active,.mui-btn-outlined.mui-btn-negative:enabled:active,.mui-btn-outlined.mui-btn-positive:enabled:active,.mui-btn-outlined.mui-btn-primary:enabled:active,.mui-btn-outlined.mui-btn-purple:enabled:active,.mui-btn-outlined.mui-btn-red:enabled:active,.mui-btn-outlined.mui-btn-royal:enabled:active,.mui-btn-outlined.mui-btn-success:enabled:active,.mui-btn-outlined.mui-btn-warning:enabled:active,.mui-btn-outlined.mui-btn-yellow:enabled:active{color:#fff}.mui-btn-link{padding-top:6px;padding-bottom:6px;color:#007aff;border:0;background-color:transparent}.mui-btn-link.mui-active:enabled,.mui-btn-link:enabled:active{color:#0062cc;background-color:transparent}.mui-btn-block{font-size:18px;display:block;width:100%;margin-bottom:10px;padding:15px 0}.mui-btn .mui-badge{font-size:14px;margin:-2px -4px -2px 4px;background-color:rgba(0,0,0,.15)}.mui-btn .mui-badge-inverted,.mui-btn:enabled:active .mui-badge-inverted{background-color:transparent}.mui-btn-negative:enabled:active .mui-badge-inverted,.mui-btn-positive:enabled:active .mui-badge-inverted,.mui-btn-primary:enabled:active .mui-badge-inverted{color:#fff}.mui-btn-block .mui-badge{position:absolute;right:0;margin-right:10px}.mui-btn .mui-icon{font-size:inherit}.mui-btn.mui-icon{font-size:14px;line-height:1.42}.mui-btn.mui-fab{width:56px;height:56px;padding:16px;border-radius:50%;outline:0}.mui-btn.mui-fab.mui-btn-mini{width:40px;height:40px;padding:8px}.mui-btn.mui-fab .mui-icon{font-size:24px;line-height:24px;width:24px;height:24px}.mui-bar{position:fixed;z-index:10;right:0;left:0;height:44px;padding-right:10px;padding-left:10px;border-bottom:0;background-color:#f7f7f7;-webkit-box-shadow:0 0 1px rgba(0,0,0,.85);box-shadow:0 0 1px rgba(0,0,0,.85);-webkit-backface-visibility:hidden;backface-visibility:hidden}.mui-bar .mui-title{right:40px;left:40px;display:inline-block;overflow:hidden;width:auto;margin:0;text-overflow:ellipsis}.mui-bar .mui-backdrop{background:0 0}.mui-bar-header-secondary{top:44px}.mui-bar-footer{bottom:0}.mui-bar-footer-secondary{bottom:44px}.mui-bar-footer-secondary-tab{bottom:50px}.mui-bar-footer,.mui-bar-footer-secondary,.mui-bar-footer-secondary-tab{border-top:0}.mui-bar-nav{top:0;-webkit-box-shadow:0 1px 6px #ccc;box-shadow:0 1px 6px #ccc}.mui-bar-nav~.mui-content .mui-anchor{display:block;visibility:hidden;height:45px;margin-top:-45px}.mui-bar-nav.mui-bar .mui-icon{margin-right:-10px;margin-left:-10px;padding-right:10px;padding-left:10px}.mui-title{font-size:17px;font-weight:500;line-height:44px;position:absolute;display:block;width:100%;margin:0 -10px;padding:0;text-align:center;white-space:nowrap;color:#000}.mui-title a{color:inherit}.mui-bar-tab{bottom:0;display:table;width:100%;height:50px;padding:0;table-layout:fixed;border-top:0;border-bottom:0;-webkit-touch-callout:none}.mui-bar-tab .mui-tab-item{display:table-cell;overflow:hidden;width:1%;height:50px;text-align:center;vertical-align:middle;white-space:nowrap;text-overflow:ellipsis;color:#929292}.mui-bar-tab .mui-tab-item.mui-active{color:#007aff}.mui-bar-tab .mui-tab-item .mui-icon{top:3px;width:24px;height:24px;padding-top:0;padding-bottom:0}.mui-bar-tab .mui-tab-item .mui-icon~.mui-tab-label{font-size:11px;display:block;overflow:hidden;text-overflow:ellipsis}.mui-bar-tab .mui-tab-item .mui-icon:active{background:0 0}.mui-focusin>.mui-bar-header-secondary,.mui-focusin>.mui-bar-nav{position:absolute}.mui-focusin>.mui-bar~.mui-content{padding-bottom:0}.mui-bar .mui-btn{font-weight:400;position:relative;z-index:20;top:7px;margin-top:0;padding:6px 12px 7px}.mui-bar .mui-btn.mui-pull-right{margin-left:10px}.mui-bar .mui-btn.mui-pull-left{margin-right:10px}.mui-bar .mui-btn-link{font-size:16px;line-height:44px;top:0;padding:0;color:#007aff;border:0}.mui-bar .mui-btn-link.mui-active,.mui-bar .mui-btn-link:active{color:#0062cc}.mui-bar .mui-btn-block{font-size:16px;top:6px;margin-bottom:0;padding:5px 0}.mui-bar .mui-btn-nav.mui-pull-left{margin-left:-5px}.mui-bar .mui-btn-nav.mui-pull-left .mui-icon-left-nav{margin-right:-3px}.mui-bar .mui-btn-nav.mui-pull-right{margin-right:-5px}.mui-bar .mui-btn-nav.mui-pull-right .mui-icon-right-nav{margin-left:-3px}.mui-bar .mui-btn-nav:active{opacity:.3}.mui-bar .mui-icon{font-size:24px;position:relative;z-index:20;padding-top:10px;padding-bottom:10px}.mui-bar .mui-icon:active{opacity:.3}.mui-bar .mui-btn .mui-icon{top:1px;margin:0;padding:0}.mui-bar .mui-title .mui-icon{margin:0;padding:0}.mui-bar .mui-title .mui-icon.mui-icon-caret{top:4px;margin-left:-5px}.mui-bar input[type=search]{height:29px;margin:6px 0}.mui-bar .mui-input-row .mui-btn{padding:12px 10px}.mui-bar .mui-search:before{margin-top:-10px}.mui-bar .mui-input-row .mui-input-clear~.mui-icon-clear,.mui-bar .mui-input-row .mui-input-speech~.mui-icon-speech{top:0;right:12px}.mui-bar.mui-bar-header-secondary .mui-input-row .mui-input-clear~.mui-icon-clear,.mui-bar.mui-bar-header-secondary .mui-input-row .mui-input-speech~.mui-icon-speech{top:0;right:0}.mui-bar .mui-segmented-control{top:7px;width:auto;margin:0 auto}.mui-bar.mui-bar-header-secondary .mui-segmented-control{top:0}.mui-badge{font-size:12px;line-height:1;display:inline-block;padding:3px 6px;color:#333;border-radius:100px;background-color:rgba(0,0,0,.15)}.mui-badge.mui-badge-inverted{padding:0 5px 0 0;color:#929292;background-color:transparent}.mui-badge-blue,.mui-badge-primary{color:#fff;background-color:#007aff}.mui-badge-blue.mui-badge-inverted,.mui-badge-primary.mui-badge-inverted{color:#007aff;background-color:transparent}.mui-badge-green,.mui-badge-success{color:#fff;background-color:#4cd964}.mui-badge-green.mui-badge-inverted,.mui-badge-success.mui-badge-inverted{color:#4cd964;background-color:transparent}.mui-badge-warning,.mui-badge-yellow{color:#fff;background-color:#f0ad4e}.mui-badge-warning.mui-badge-inverted,.mui-badge-yellow.mui-badge-inverted{color:#f0ad4e;background-color:transparent}.mui-badge-danger,.mui-badge-red{color:#fff;background-color:#dd524d}.mui-badge-danger.mui-badge-inverted,.mui-badge-red.mui-badge-inverted{color:#dd524d;background-color:transparent}.mui-badge-purple,.mui-badge-royal{color:#fff;background-color:#8a6de9}.mui-badge-purple.mui-badge-inverted,.mui-badge-royal.mui-badge-inverted{color:#8a6de9;background-color:transparent}.mui-icon .mui-badge{font-size:10px;line-height:1.4;position:absolute;top:-2px;left:100%;margin-left:-10px;padding:1px 5px;color:#fff;background:red}.mui-card{overflow:hidden;margin:0 15px;border:1px solid #ddd;border-radius:6px;background-color:#fff;background-clip:padding-box}.mui-content>.mui-card:first-child{margin-top:15px}.mui-card .mui-input-group .mui-input-row:last-child:after,.mui-card .mui-input-group .mui-input-row:last-child:before,.mui-card .mui-input-group:after,.mui-card .mui-input-group:before{height:0}.mui-card .mui-table-view{margin-bottom:0;border-top:0;border-bottom:0;border-radius:6px}.mui-card .mui-table-view .mui-table-view-cell:first-child,.mui-card .mui-table-view .mui-table-view-divider:first-child{top:0;border-top-left-radius:6px;border-top-right-radius:6px}.mui-card .mui-table-view .mui-table-view-cell:last-child,.mui-card .mui-table-view .mui-table-view-divider:last-child{border-bottom-right-radius:6px;border-bottom-left-radius:6px}.mui-card .mui-table-view:after,.mui-card .mui-table-view:before,.mui-card>.mui-table-view>.mui-table-view-cell:last-child:after,.mui-card>.mui-table-view>.mui-table-view-cell:last-child:before{height:0}.mui-table-view{position:relative;margin-top:0;margin-bottom:0;padding-left:0;list-style:none;background-color:#fff}.mui-table-view:after{position:absolute;right:0;bottom:0;left:0;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc}.mui-table-view:before{position:absolute;right:0;left:0;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc;top:-1px}.mui-table-view-icon .mui-table-view-cell .mui-navigate-right .mui-icon{font-size:20px;margin-top:-1px;margin-right:5px;margin-left:-5px}.mui-table-view-icon .mui-table-view-cell:after{left:40px}.mui-table-view-chevron .mui-table-view-cell{padding-right:65px}.mui-table-view-chevron .mui-table-view-cell>a:not(.mui-btn){margin-right:-65px}.mui-table-view-radio .mui-table-view-cell{padding-right:65px}.mui-table-view-radio .mui-table-view-cell>a:not(.mui-btn){margin-right:-65px}.mui-table-view-radio .mui-table-view-cell .mui-navigate-right:after{font-size:30px;font-weight:600;right:9px;content:'';color:#007aff}.mui-table-view-radio .mui-table-view-cell.mui-selected .mui-navigate-right:after{content:'\e472'}.mui-table-view-inverted{color:#fff;background:#333}.mui-table-view-inverted:after{position:absolute;right:0;bottom:0;left:0;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#222}.mui-table-view-inverted:before{position:absolute;top:0;right:0;left:0;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#222}.mui-table-view-inverted .mui-table-view-cell:after{position:absolute;right:0;bottom:0;left:15px;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#222}.mui-table-view-inverted .mui-table-view-cell.mui-active,.mui-table-view-inverted .mui-table-view-cell>a:not(.mui-btn).mui-active{background-color:#242424}.mui-table-view-cell{position:relative;overflow:hidden;padding:11px 15px;-webkit-touch-callout:none}.mui-table-view-cell:after{position:absolute;right:0;bottom:0;left:15px;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc}.mui-table-view-cell.mui-checkbox input[type=checkbox],.mui-table-view-cell.mui-radio input[type=radio]{top:8px}.mui-table-view-cell.mui-checkbox.mui-left,.mui-table-view-cell.mui-radio.mui-left{padding-left:58px}.mui-table-view-cell.mui-active{background-color:#eee}.mui-table-view-cell:last-child:after,.mui-table-view-cell:last-child:before{height:0}.mui-table-view-cell>a:not(.mui-btn){position:relative;display:block;overflow:hidden;margin:-11px -15px;padding:inherit;white-space:nowrap;text-overflow:ellipsis;color:inherit}.mui-table-view-cell>a:not(.mui-btn).mui-active{background-color:#eee}.mui-table-view-cell p{margin-bottom:0}.mui-table-view-cell.mui-transitioning>.mui-slider-handle,.mui-table-view-cell.mui-transitioning>.mui-slider-left .mui-btn,.mui-table-view-cell.mui-transitioning>.mui-slider-right .mui-btn{-webkit-transition:-webkit-transform 300ms ease;transition:transform 300ms ease}.mui-table-view-cell.mui-active>.mui-slider-handle{background-color:#eee}.mui-table-view-cell>.mui-slider-handle{position:relative;background-color:#fff}.mui-table-view-cell>.mui-slider-handle .mui-navigate-right:after,.mui-table-view-cell>.mui-slider-handle.mui-navigate-right:after{right:0}.mui-table-view-cell>.mui-slider-handle,.mui-table-view-cell>.mui-slider-left .mui-btn,.mui-table-view-cell>.mui-slider-right .mui-btn{-webkit-transition:-webkit-transform 0ms ease;transition:transform 0ms ease}.mui-table-view-cell>.mui-slider-left,.mui-table-view-cell>.mui-slider-right{position:absolute;top:0;display:-webkit-box;display:-webkit-flex;display:flex;height:100%}.mui-table-view-cell>.mui-slider-left>.mui-btn,.mui-table-view-cell>.mui-slider-right>.mui-btn{position:relative;left:0;display:-webkit-box;display:-webkit-flex;display:flex;padding:0 30px;color:#fff;border:0;border-radius:0;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.mui-table-view-cell>.mui-slider-left>.mui-btn:after,.mui-table-view-cell>.mui-slider-right>.mui-btn:after{position:absolute;z-index:-1;top:0;width:600%;height:100%;content:'';background:inherit}.mui-table-view-cell>.mui-slider-left>.mui-btn.mui-icon,.mui-table-view-cell>.mui-slider-right>.mui-btn.mui-icon{font-size:30px}.mui-table-view-cell>.mui-slider-right{right:0;-webkit-transition:-webkit-transform 0ms ease;transition:transform 0ms ease;-webkit-transform:translateX(100%);transform:translateX(100%)}.mui-table-view-cell>.mui-slider-left{left:0;-webkit-transition:-webkit-transform 0ms ease;transition:transform 0ms ease;-webkit-transform:translateX(-100%);transform:translateX(-100%)}.mui-table-view-cell>.mui-slider-left>.mui-btn:after{right:100%;margin-right:-1px}.mui-table-view-divider{font-weight:500;position:relative;margin-top:-1px;margin-left:0;padding-top:6px;padding-bottom:6px;padding-left:15px;color:#999;background-color:#fafafa}.mui-table-view-divider:after{position:absolute;right:0;bottom:0;left:0;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc}.mui-table-view-divider:before{position:absolute;top:0;right:0;left:0;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc}.mui-table-view .mui-media,.mui-table-view .mui-media-body{overflow:hidden}.mui-table-view .mui-media-large .mui-media-object{line-height:80px;max-width:80px;height:80px}.mui-table-view .mui-media .mui-subtitle{color:#000}.mui-table-view .mui-media-object{line-height:42px;max-width:42px;height:42px}.mui-table-view .mui-media-object.mui-pull-left{margin-right:10px}.mui-table-view .mui-media-object.mui-pull-right{margin-left:10px}.mui-table-view .mui-table-view-cell.mui-media-icon .mui-media-object{line-height:29px;max-width:29px;height:29px;margin:-4px 0}.mui-table-view .mui-table-view-cell.mui-media-icon .mui-media-object img{line-height:29px;max-width:29px;height:29px}.mui-table-view .mui-table-view-cell.mui-media-icon .mui-media-object.mui-pull-left{margin-right:10px}.mui-table-view .mui-table-view-cell.mui-media-icon .mui-media-object .mui-icon{font-size:29px}.mui-table-view .mui-table-view-cell.mui-media-icon .mui-media-body:after{position:absolute;right:0;bottom:0;left:55px;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc}.mui-table-view .mui-table-view-cell.mui-media-icon:after{height:0!important}.mui-table-view.mui-unfold .mui-table-view-cell.mui-collapse .mui-table-view{display:block}.mui-table-view.mui-unfold .mui-table-view-cell.mui-collapse .mui-table-view:after,.mui-table-view.mui-unfold .mui-table-view-cell.mui-collapse .mui-table-view:before{height:0!important}.mui-table-view.mui-unfold .mui-table-view-cell.mui-media-icon.mui-collapse .mui-media-body:after{position:absolute;right:0;bottom:0;left:70px;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc}.mui-table-view-cell>.mui-badge,.mui-table-view-cell>.mui-btn,.mui-table-view-cell>.mui-switch,.mui-table-view-cell>a>.mui-badge,.mui-table-view-cell>a>.mui-btn,.mui-table-view-cell>a>.mui-switch{position:absolute;top:50%;right:15px;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.mui-table-view-cell .mui-navigate-right>.mui-badge,.mui-table-view-cell .mui-navigate-right>.mui-btn,.mui-table-view-cell .mui-navigate-right>.mui-switch,.mui-table-view-cell .mui-push-left>.mui-badge,.mui-table-view-cell .mui-push-left>.mui-btn,.mui-table-view-cell .mui-push-left>.mui-switch,.mui-table-view-cell .mui-push-right>.mui-badge,.mui-table-view-cell .mui-push-right>.mui-btn,.mui-table-view-cell .mui-push-right>.mui-switch,.mui-table-view-cell>a .mui-navigate-right>.mui-badge,.mui-table-view-cell>a .mui-navigate-right>.mui-btn,.mui-table-view-cell>a .mui-navigate-right>.mui-switch,.mui-table-view-cell>a .mui-push-left>.mui-badge,.mui-table-view-cell>a .mui-push-left>.mui-btn,.mui-table-view-cell>a .mui-push-left>.mui-switch,.mui-table-view-cell>a .mui-push-right>.mui-badge,.mui-table-view-cell>a .mui-push-right>.mui-btn,.mui-table-view-cell>a .mui-push-right>.mui-switch{right:35px}.mui-content>.mui-table-view:first-child{margin-top:15px}.mui-table-view-cell.mui-collapse .mui-table-view .mui-table-view-cell:last-child:after,.mui-table-view-cell.mui-collapse .mui-table-view:after,.mui-table-view-cell.mui-collapse .mui-table-view:before{height:0}.mui-table-view-cell.mui-collapse>.mui-navigate-right:after,.mui-table-view-cell.mui-collapse>.mui-push-right:after{content:'\e581'}.mui-table-view-cell.mui-collapse.mui-active{margin-top:-1px}.mui-table-view-cell.mui-collapse.mui-active .mui-collapse-content,.mui-table-view-cell.mui-collapse.mui-active .mui-table-view{display:block}.mui-table-view-cell.mui-collapse.mui-active>.mui-navigate-right:after,.mui-table-view-cell.mui-collapse.mui-active>.mui-push-right:after{content:'\e580'}.mui-table-view-cell.mui-collapse.mui-active .mui-table-view-cell>a:not(.mui-btn).mui-active{margin-left:-31px;padding-left:47px}.mui-table-view-cell.mui-collapse .mui-collapse-content{position:relative;display:none;overflow:hidden;margin:11px -15px -11px;padding:8px 15px;-webkit-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease;background:#fff}.mui-table-view-cell.mui-collapse .mui-collapse-content>.mui-input-group,.mui-table-view-cell.mui-collapse .mui-collapse-content>.mui-slider{width:auto;height:auto;margin:-8px -15px}.mui-table-view-cell.mui-collapse .mui-collapse-content>.mui-slider{margin:-8px -16px}.mui-table-view-cell.mui-collapse .mui-table-view{display:none;margin-top:11px;margin-right:-15px;margin-bottom:-11px;margin-left:-15px;border:0}.mui-table-view-cell.mui-collapse .mui-table-view.mui-table-view-chevron{margin-right:-65px}.mui-table-view-cell.mui-collapse .mui-table-view .mui-table-view-cell{padding-left:31px;background-position:31px 100%}.mui-table-view-cell.mui-collapse .mui-table-view .mui-table-view-cell:after{position:absolute;right:0;bottom:0;left:30px;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc}.mui-table-view.mui-grid-view{font-size:0;display:block;width:100%;padding:0 10px 10px 0;white-space:normal}.mui-table-view.mui-grid-view .mui-table-view-cell{font-size:17px;display:inline-block;margin-right:-4px;padding:10px 0 0 14px;text-align:center;vertical-align:middle;background:0 0}.mui-table-view.mui-grid-view .mui-table-view-cell .mui-media-object{width:100%;max-width:100%;height:auto}.mui-table-view.mui-grid-view .mui-table-view-cell>a:not(.mui-btn){margin:-10px 0 0 -14px}.mui-table-view.mui-grid-view .mui-table-view-cell>a:not(.mui-btn).mui-active,.mui-table-view.mui-grid-view .mui-table-view-cell>a:not(.mui-btn):active{background:0 0}.mui-table-view.mui-grid-view .mui-table-view-cell .mui-media-body{font-size:15px;line-height:15px;display:block;width:100%;height:15px;margin-top:8px;text-overflow:ellipsis;color:#333}.mui-table-view.mui-grid-view .mui-table-view-cell:after,.mui-table-view.mui-grid-view .mui-table-view-cell:before{height:0}.mui-grid-view.mui-grid-9{margin:0;padding:0;border-top:1px solid #eee;border-left:1px solid #eee;background-color:#f2f2f2}.mui-grid-view.mui-grid-9:after,.mui-grid-view.mui-grid-9:before{display:table;content:' '}.mui-grid-view.mui-grid-9:after{clear:both;position:static}.mui-grid-view.mui-grid-9 .mui-table-view-cell{margin:0;padding:11px 15px;vertical-align:top;border-right:1px solid #eee;border-bottom:1px solid #eee}.mui-grid-view.mui-grid-9 .mui-table-view-cell.mui-active{background-color:#eee}.mui-grid-view.mui-grid-9 .mui-table-view-cell>a:not(.mui-btn){margin:0;padding:10px 0}.mui-grid-view.mui-grid-9:before{height:0}.mui-grid-view.mui-grid-9 .mui-media{color:#797979}.mui-grid-view.mui-grid-9 .mui-media .mui-icon{font-size:2.4em;position:relative}.mui-slider-cell{position:relative}.mui-slider-cell>.mui-slider-handle{z-index:1}.mui-slider-cell>.mui-slider-left,.mui-slider-cell>.mui-slider-right{position:absolute;z-index:0;top:0;bottom:0}.mui-slider-cell>.mui-slider-left{left:0}.mui-slider-cell>.mui-slider-right{right:0}input,select,textarea{font-family:'Helvetica Neue',Helvetica,sans-serif;font-size:17px;-webkit-tap-highlight-color:transparent;-webkit-tap-highlight-color:transparent}input:focus,select:focus,textarea:focus{-webkit-tap-highlight-color:transparent;-webkit-tap-highlight-color:transparent;-webkit-user-modify:read-write-plaintext-only}input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],select,textarea{line-height:21px;width:100%;height:40px;margin-bottom:15px;padding:10px 15px;-webkit-user-select:text;border:1px solid rgba(0,0,0,.2);border-radius:3px;outline:0;background-color:#fff;-webkit-appearance:none}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{margin:0;-webkit-appearance:none}input[type=search]{font-size:16px;-webkit-box-sizing:border-box;box-sizing:border-box;height:34px;text-align:center;border:0;border-radius:6px;background-color:rgba(0,0,0,.1)}input[type=search]:focus{text-align:left}textarea{height:auto;resize:none}select{font-size:14px;height:auto;margin-top:1px;border:0!important;background-color:#fff}select:focus{-webkit-user-modify:read-only}.mui-input-group{position:relative;padding:0;border:0;background-color:#fff}.mui-input-group:after{position:absolute;right:0;bottom:0;left:0;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc}.mui-input-group:before{position:absolute;top:0;right:0;left:0;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc}.mui-input-group input,.mui-input-group textarea{margin-bottom:0;border:0;border-radius:0;background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.mui-input-group input[type=search]{background:0 0}.mui-input-group input:last-child{background-image:none}.mui-input-row{clear:left;overflow:hidden}.mui-input-row select{font-size:17px;height:37px;padding:0}.mui-input-row .mui-btn+input,.mui-input-row label+input,.mui-input-row:last-child{background:0 0}.mui-input-group .mui-input-row{height:40px}.mui-input-group .mui-input-row:after{position:absolute;right:0;bottom:0;left:15px;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc}.mui-input-row label{font-family:'Helvetica Neue',Helvetica,sans-serif;line-height:1.1;float:left;width:35%;padding:11px 15px}.mui-input-row label~input,.mui-input-row label~select,.mui-input-row label~textarea{float:right;width:65%;margin-bottom:0;padding-left:0;border:0}.mui-input-row .mui-btn{font-family:'Helvetica Neue',Helvetica,sans-serif;line-height:1.1;float:right;width:15%;padding:10px 15px}.mui-input-row .mui-btn~input,.mui-input-row .mui-btn~select,.mui-input-row .mui-btn~textarea{float:left;width:85%;margin-bottom:0;padding-left:0;border:0}.mui-button-row{position:relative;padding-top:5px;text-align:center}.mui-input-group .mui-button-row{height:45px}.mui-input-row{position:relative}.mui-input-row.mui-input-range{overflow:visible;padding-right:20px}.mui-input-row .mui-inline{padding:8px 0}.mui-input-row .mui-input-clear~.mui-icon-clear,.mui-input-row .mui-input-password~.mui-icon-eye,.mui-input-row .mui-input-speech~.mui-icon-speech{font-size:20px;position:absolute;z-index:1;top:10px;right:0;width:38px;height:38px;text-align:center;color:#999}.mui-input-row .mui-input-clear~.mui-icon-clear.mui-active,.mui-input-row .mui-input-password~.mui-icon-eye.mui-active,.mui-input-row .mui-input-speech~.mui-icon-speech.mui-active{color:#007aff}.mui-input-row .mui-input-speech~.mui-icon-speech{font-size:24px;top:8px}.mui-input-row .mui-input-clear~.mui-icon-clear~.mui-icon-speech{display:none}.mui-input-row .mui-input-clear~.mui-icon-clear.mui-hidden~.mui-icon-speech{display:inline-block}.mui-input-row .mui-icon-speech~.mui-placeholder{right:38px}.mui-input-row.mui-search .mui-icon-clear{top:7px}.mui-input-row.mui-search .mui-icon-speech{top:5px}.mui-checkbox,.mui-radio{position:relative}.mui-checkbox label,.mui-radio label{display:inline-block;float:none;width:100%;padding-right:58px}.mui-checkbox.mui-left input[type=checkbox],.mui-radio.mui-left input[type=radio]{left:20px}.mui-checkbox.mui-left label,.mui-radio.mui-left label{padding-right:15px;padding-left:58px}.mui-checkbox input[type=checkbox],.mui-radio input[type=radio]{position:absolute;top:4px;right:20px;display:inline-block;width:28px;height:26px;border:0;outline:0!important;background-color:transparent;-webkit-appearance:none}.mui-checkbox input[type=checkbox][disabled]:before,.mui-radio input[type=radio][disabled]:before{opacity:.3}.mui-checkbox input[type=checkbox]:before,.mui-radio input[type=radio]:before{font-family:Muiicons;font-size:28px;font-weight:400;line-height:1;text-decoration:none;color:#aaa;border-radius:0;background:0 0;-webkit-font-smoothing:antialiased}.mui-checkbox input[type=checkbox]:checked:before,.mui-radio input[type=radio]:checked:before{color:#007aff}.mui-checkbox label.mui-disabled,.mui-checkbox.mui-disabled label,.mui-radio label.mui-disabled,.mui-radio.mui-disabled label{opacity:.4}.mui-radio input[type=radio]:before{content:'\e411'}.mui-radio input[type=radio]:checked:before{content:'\e441'}.mui-checkbox input[type=checkbox]:before{content:'\e411'}.mui-checkbox input[type=checkbox]:checked:before{content:'\e442'}.mui-select{position:relative}.mui-select:before{font-family:Muiicons;position:absolute;top:8px;right:21px;content:'\e581';color:rgba(170,170,170,.6)}.mui-input-row .mui-switch{float:right;margin-top:5px;margin-right:20px}.mui-input-range input[type=range]{position:relative;width:100%;height:2px;margin:17px 0;padding:0;cursor:pointer;border:0;border-radius:3px;outline:0;background-color:#999;-webkit-appearance:none!important}.mui-input-range input[type=range]::-webkit-slider-thumb{width:28px;height:28px;border-color:#0062cc;border-radius:50%;background-color:#007aff;background-clip:padding-box;-webkit-appearance:none!important}.mui-input-range label~input[type=range]{width:65%}.mui-input-range .mui-tooltip{font-size:36px;line-height:64px;position:absolute;z-index:1;top:-70px;width:64px;height:64px;text-align:center;opacity:.8;color:#333;border:1px solid #ddd;border-radius:6px;background-color:#fff;text-shadow:0 1px 0 #f3f3f3}.mui-search{position:relative}.mui-search input[type=search]{padding-left:30px}.mui-search .mui-placeholder{font-size:16px;line-height:34px;position:absolute;z-index:1;top:0;right:0;bottom:0;left:0;display:inline-block;height:34px;text-align:center;color:#999;border:0;border-radius:6px;background:0 0}.mui-search .mui-placeholder .mui-icon{font-size:20px;color:#333}.mui-search:before{font-family:Muiicons;font-size:20px;font-weight:400;position:absolute;top:50%;right:50%;display:none;margin-top:-18px;margin-right:31px;content:'\e466'}.mui-search.mui-active:before{font-size:20px;right:auto;left:5px;display:block;margin-right:0}.mui-search.mui-active input[type=search]{text-align:left}.mui-search.mui-active .mui-placeholder{display:none}.mui-segmented-control{font-size:15px;font-weight:400;position:relative;display:table;overflow:hidden;width:100%;table-layout:fixed;border:1px solid #007aff;border-radius:3px;background-color:transparent;-webkit-touch-callout:none}.mui-segmented-control.mui-segmented-control-vertical{border-collapse:collapse;border-width:0;border-radius:0}.mui-segmented-control.mui-segmented-control-vertical .mui-control-item{display:block;border-bottom:1px solid #c8c7cc;border-left-width:0}.mui-segmented-control.mui-scroll-wrapper{height:38px}.mui-segmented-control.mui-scroll-wrapper .mui-scroll{width:auto;height:40px;white-space:nowrap}.mui-segmented-control.mui-scroll-wrapper .mui-control-item{display:inline-block;width:auto;padding:0 20px;border:0}.mui-segmented-control .mui-control-item{line-height:38px;display:table-cell;overflow:hidden;width:1%;-webkit-transition:background-color .1s linear;transition:background-color .1s linear;text-align:center;white-space:nowrap;text-overflow:ellipsis;color:#007aff;border-color:#007aff;border-left:1px solid #007aff}.mui-segmented-control .mui-control-item:first-child{border-left-width:0}.mui-segmented-control .mui-control-item.mui-active{color:#fff;background-color:#007aff}.mui-segmented-control.mui-segmented-control-inverted{width:100%;border:0;border-radius:0}.mui-segmented-control.mui-segmented-control-inverted.mui-segmented-control-vertical .mui-control-item,.mui-segmented-control.mui-segmented-control-inverted.mui-segmented-control-vertical .mui-control-item.mui-active{border-bottom:1px solid #c8c7cc}.mui-segmented-control.mui-segmented-control-inverted .mui-control-item{color:inherit;border:0}.mui-segmented-control.mui-segmented-control-inverted .mui-control-item.mui-active{color:#007aff;border-bottom:2px solid #007aff;background:0 0}.mui-segmented-control.mui-segmented-control-inverted~.mui-slider-progress-bar{background-color:#007aff}.mui-segmented-control-positive{border:1px solid #4cd964}.mui-segmented-control-positive .mui-control-item{color:#4cd964;border-color:inherit}.mui-segmented-control-positive .mui-control-item.mui-active{color:#fff;background-color:#4cd964}.mui-segmented-control-positive.mui-segmented-control-inverted .mui-control-item.mui-active{color:#4cd964;border-bottom:2px solid #4cd964;background:0 0}.mui-segmented-control-positive.mui-segmented-control-inverted~.mui-slider-progress-bar{background-color:#4cd964}.mui-segmented-control-negative{border:1px solid #dd524d}.mui-segmented-control-negative .mui-control-item{color:#dd524d;border-color:inherit}.mui-segmented-control-negative .mui-control-item.mui-active{color:#fff;background-color:#dd524d}.mui-segmented-control-negative.mui-segmented-control-inverted .mui-control-item.mui-active{color:#dd524d;border-bottom:2px solid #dd524d;background:0 0}.mui-segmented-control-negative.mui-segmented-control-inverted~.mui-slider-progress-bar{background-color:#dd524d}.mui-control-content{position:relative;display:none}.mui-control-content.mui-active{display:block}.mui-popover{position:absolute;z-index:999;display:none;width:280px;-webkit-transition:opacity .3s;transition:opacity .3s;-webkit-transition-property:opacity;transition-property:opacity;-webkit-transform:none;transform:none;opacity:0;border-radius:7px;background-color:#f7f7f7;-webkit-box-shadow:0 0 15px rgba(0,0,0,.1);box-shadow:0 0 15px rgba(0,0,0,.1)}.mui-popover .mui-popover-arrow{position:absolute;z-index:1000;top:-25px;left:0;overflow:hidden;width:26px;height:26px}.mui-popover .mui-popover-arrow:after{position:absolute;top:19px;left:0;width:26px;height:26px;content:' ';-webkit-transform:rotate(45deg);transform:rotate(45deg);border-radius:3px;background:#f7f7f7}.mui-popover .mui-popover-arrow.mui-bottom{top:100%;left:-26px;margin-top:-1px}.mui-popover .mui-popover-arrow.mui-bottom:after{top:-19px;left:0}.mui-popover.mui-popover-action{bottom:0;width:100%;-webkit-transition:-webkit-transform .3s,opacity .3s;transition:transform .3s,opacity .3s;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);border-radius:0;background:0 0;-webkit-box-shadow:none;box-shadow:none}.mui-popover.mui-popover-action .mui-popover-arrow{display:none}.mui-popover.mui-popover-action.mui-popover-bottom{position:fixed}.mui-popover.mui-popover-action.mui-active{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.mui-popover.mui-popover-action .mui-table-view{margin:8px;text-align:center;color:#007aff;border-radius:4px}.mui-popover.mui-popover-action .mui-table-view .mui-table-view-cell:after{position:absolute;right:0;bottom:0;left:0;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc}.mui-popover.mui-popover-action .mui-table-view small{font-weight:400;line-height:1.3;display:block}.mui-popover.mui-active{display:block;opacity:1}.mui-popover .mui-bar~.mui-table-view{padding-top:44px}.mui-backdrop{position:fixed;z-index:998;top:0;right:0;bottom:0;left:0;background-color:rgba(0,0,0,.3)}.mui-bar-backdrop.mui-backdrop{bottom:50px;background:0 0}.mui-backdrop-action.mui-backdrop{background-color:rgba(0,0,0,.3)}.mui-backdrop-action.mui-backdrop,.mui-bar-backdrop.mui-backdrop{opacity:0}.mui-backdrop-action.mui-backdrop.mui-active,.mui-bar-backdrop.mui-backdrop.mui-active{-webkit-transition:all .4s ease;transition:all .4s ease;opacity:1}.mui-popover .mui-btn-block{margin-bottom:5px}.mui-popover .mui-btn-block:last-child{margin-bottom:0}.mui-popover .mui-bar{-webkit-box-shadow:none;box-shadow:none}.mui-popover .mui-bar-nav{border-bottom:1px solid rgba(0,0,0,.15);border-top-left-radius:12px;border-top-right-radius:12px;-webkit-box-shadow:none;box-shadow:none}.mui-popover .mui-scroll-wrapper{margin:7px 0;border-radius:7px;background-clip:padding-box}.mui-popover .mui-scroll .mui-table-view{max-height:none}.mui-popover .mui-table-view{overflow:auto;max-height:300px;margin-bottom:0;border-radius:7px;background-color:#f7f7f7;background-image:none;-webkit-overflow-scrolling:touch}.mui-popover .mui-table-view:after,.mui-popover .mui-table-view:before{height:0}.mui-popover .mui-table-view .mui-table-view-cell:first-child,.mui-popover .mui-table-view .mui-table-view-cell:first-child>a:not(.mui-btn){border-top-left-radius:12px;border-top-right-radius:12px}.mui-popover .mui-table-view .mui-table-view-cell:last-child,.mui-popover .mui-table-view .mui-table-view-cell:last-child>a:not(.mui-btn){border-bottom-right-radius:12px;border-bottom-left-radius:12px}.mui-popover.mui-bar-popover .mui-table-view{width:106px}.mui-popover.mui-bar-popover .mui-table-view .mui-table-view-cell{padding:11px 15px;background-position:0 100%}.mui-popover.mui-bar-popover .mui-table-view .mui-table-view-cell>a:not(.mui-btn){margin:-11px -15px -11px -15px}.mui-popup-backdrop{position:fixed;z-index:998;top:0;right:0;bottom:0;left:0;-webkit-transition-duration:400ms;transition-duration:400ms;opacity:0;background:rgba(0,0,0,.4)}.mui-popup-backdrop.mui-active{opacity:1}.mui-popup{position:absolute;z-index:10000;top:50%;left:50%;display:none;overflow:hidden;width:270px;-webkit-transition-property:-webkit-transform,opacity;transition-property:transform,opacity;-webkit-transform:translate3d(-50%,-50%,0) scale(1.185);transform:translate3d(-50%,-50%,0) scale(1.185);text-align:center;opacity:0;color:#000;border-radius:13px}.mui-popup.mui-popup-in{display:block;-webkit-transition-duration:400ms;transition-duration:400ms;-webkit-transform:translate3d(-50%,-50%,0) scale(1);transform:translate3d(-50%,-50%,0) scale(1);opacity:1}.mui-popup.mui-popup-out{-webkit-transition-duration:400ms;transition-duration:400ms;-webkit-transform:translate3d(-50%,-50%,0) scale(1);transform:translate3d(-50%,-50%,0) scale(1);opacity:0}.mui-popup-inner{position:relative;padding:15px;border-radius:13px 13px 0 0;background:rgba(255,255,255,.95)}.mui-popup-inner:after{position:absolute;z-index:15;top:auto;right:auto;bottom:0;left:0;display:block;width:100%;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);-webkit-transform-origin:50% 100%;transform-origin:50% 100%;background-color:rgba(0,0,0,.2)}.mui-popup-title{font-size:18px;font-weight:500;text-align:center}.mui-popup-title+.mui-popup-text{font-size:14px;margin-top:5px}.mui-popup-buttons{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;height:44px;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}.mui-popup-button{font-size:17px;line-height:44px;position:relative;display:block;overflow:hidden;box-sizing:border-box;width:100%;height:44px;padding:0 5px;cursor:pointer;text-align:center;white-space:nowrap;text-overflow:ellipsis;color:#007aff;background:rgba(255,255,255,.95);-webkit-box-flex:1}.mui-popup-button:after{position:absolute;z-index:15;top:0;right:0;bottom:auto;left:auto;display:block;width:1px;height:100%;content:'';-webkit-transform:scaleX(.5);transform:scaleX(.5);-webkit-transform-origin:100% 50%;transform-origin:100% 50%;background-color:rgba(0,0,0,.2)}.mui-popup-button:first-child{border-radius:0 0 0 13px}.mui-popup-button:first-child:last-child{border-radius:0 0 13px 13px}.mui-popup-button:last-child{border-radius:0 0 13px}.mui-popup-button:last-child:after{display:none}.mui-popup-button.mui-popup-button-bold{font-weight:600}.mui-popup-input input{font-size:14px;width:100%;height:26px;margin:0;margin-top:15px;padding:0 5px;border:1px solid rgba(0,0,0,.3);border-radius:0;background:#fff}.mui-plus.mui-android .mui-popup-backdrop{-webkit-transition-duration:1ms;transition-duration:1ms}.mui-plus.mui-android .mui-popup{-webkit-transition-duration:1ms;transition-duration:1ms;-webkit-transform:translate3d(-50%,-50%,0) scale(1);transform:translate3d(-50%,-50%,0) scale(1)}.mui-pagination{display:inline-block;margin:0 auto;padding-left:0;border-radius:6px}.mui-pagination>li{display:inline}.mui-pagination>li>a,.mui-pagination>li>span{line-height:1.428571429;position:relative;float:left;margin-left:-1px;padding:6px 12px;text-decoration:none;color:#007aff;border:1px solid #ddd;background-color:#fff}.mui-pagination>li:first-child>a,.mui-pagination>li:first-child>span{margin-left:0;border-top-left-radius:6px;border-bottom-left-radius:6px;background-clip:padding-box}.mui-pagination>li:last-child>a,.mui-pagination>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px;background-clip:padding-box}.mui-pagination>li.mui-active>a,.mui-pagination>li.mui-active>a:active,.mui-pagination>li.mui-active>span,.mui-pagination>li.mui-active>span:active,.mui-pagination>li:active>a,.mui-pagination>li:active>a:active,.mui-pagination>li:active>span,.mui-pagination>li:active>span:active{z-index:2;cursor:default;color:#fff;border-color:#007aff;background-color:#007aff}.mui-pagination>li.mui-disabled>a,.mui-pagination>li.mui-disabled>a:active,.mui-pagination>li.mui-disabled>span,.mui-pagination>li.mui-disabled>span:active{opacity:.6;color:#777;border:1px solid #ddd;background-color:#fff}.mui-pagination-lg>li>a,.mui-pagination-lg>li>span{font-size:18px;padding:10px 16px}.mui-pagination-sm>li>a,.mui-pagination-sm>li>span{font-size:12px;padding:5px 10px}.mui-pager{padding-left:0;list-style:none;text-align:center}.mui-pager:after,.mui-pager:before{display:table;content:' '}.mui-pager:after{clear:both}.mui-pager li{display:inline}.mui-pager li>a,.mui-pager li>span{display:inline-block;padding:5px 14px;border:1px solid #ddd;border-radius:6px;background-color:#fff;background-clip:padding-box}.mui-pager li.mui-active>a,.mui-pager li.mui-active>span,.mui-pager li:active>a,.mui-pager li:active>span{cursor:default;text-decoration:none;color:#fff;border-color:#007aff;background-color:#007aff}.mui-pager .mui-next>a,.mui-pager .mui-next>span{float:right}.mui-pager .mui-previous>a,.mui-pager .mui-previous>span{float:left}.mui-pager .mui-disabled>a,.mui-pager .mui-disabled>a:active,.mui-pager .mui-disabled>span,.mui-pager .mui-disabled>span:active{opacity:.6;color:#777;border:1px solid #ddd;background-color:#fff}.mui-modal{position:fixed;z-index:999;top:0;overflow:hidden;width:100%;min-height:100%;-webkit-transition:-webkit-transform .25s,opacity 1ms .25s;transition:transform .25s,opacity 1ms .25s;-webkit-transition-timing-function:cubic-bezier(.1,.5,.1,1);transition-timing-function:cubic-bezier(.1,.5,.1,1);-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);opacity:0;background-color:#fff}.mui-modal.mui-active{height:100%;-webkit-transition:-webkit-transform .25s;transition:transform .25s;-webkit-transition-timing-function:cubic-bezier(.1,.5,.1,1);transition-timing-function:cubic-bezier(.1,.5,.1,1);-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}.mui-android .mui-modal .mui-bar{position:static}.mui-android .mui-modal .mui-bar-nav~.mui-content{padding-top:0}.mui-slider{position:relative;z-index:1;overflow:hidden;width:100%}.mui-slider .mui-segmented-control.mui-segmented-control-inverted .mui-control-item.mui-active{border-bottom:0}.mui-slider .mui-segmented-control.mui-segmented-control-inverted~.mui-slider-group .mui-slider-item{border-top:1px solid #c8c7cc;border-bottom:1px solid #c8c7cc}.mui-slider .mui-slider-group{font-size:0;position:relative;-webkit-transition:all 0s linear;transition:all 0s linear;white-space:nowrap}.mui-slider .mui-slider-group .mui-slider-item{font-size:14px;position:relative;display:inline-block;width:100%;height:100%;vertical-align:top;white-space:normal}.mui-slider .mui-slider-group .mui-slider-item>a:not(.mui-control-item){line-height:0;position:relative;display:block}.mui-slider .mui-slider-group .mui-slider-item img{width:100%}.mui-slider .mui-slider-group .mui-slider-item .mui-table-view:after,.mui-slider .mui-slider-group .mui-slider-item .mui-table-view:before{height:0}.mui-slider .mui-slider-group.mui-slider-loop{-webkit-transform:translate(-100%,0);transform:translate(-100%,0)}.mui-slider-title{line-height:30px;position:absolute;bottom:0;left:0;width:100%;height:30px;margin:0;text-align:left;text-indent:12px;opacity:.8;background-color:#000}.mui-slider-indicator{position:absolute;bottom:8px;width:100%;text-align:center;background:0 0}.mui-slider-indicator.mui-segmented-control{position:relative;bottom:auto}.mui-slider-indicator .mui-indicator{display:inline-block;width:6px;height:6px;margin:1px 6px;cursor:pointer;border-radius:50%;background:#aaa;-webkit-box-shadow:0 0 1px 1px rgba(130,130,130,.7);box-shadow:0 0 1px 1px rgba(130,130,130,.7)}.mui-slider-indicator .mui-active.mui-indicator{background:#fff}.mui-slider-indicator .mui-icon{font-size:20px;line-height:30px;width:40px;height:30px;margin:3px;text-align:center;border:1px solid #ddd}.mui-slider-indicator .mui-number{line-height:32px;display:inline-block;width:58px}.mui-slider-indicator .mui-number span{color:#ff5053}.mui-slider-progress-bar{z-index:1;height:2px;-webkit-transform:translateZ(0);transform:translateZ(0)}.mui-switch{position:relative;display:block;width:74px;height:30px;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transition-property:background-color,border;transition-property:background-color,border;border:2px solid #ddd;border-radius:20px;background-color:#fff;background-clip:padding-box}.mui-switch.mui-disabled{opacity:.3}.mui-switch .mui-switch-handle{position:absolute;z-index:1;top:-1px;left:-1px;width:28px;height:28px;-webkit-transition:.2s ease-in-out;transition:.2s ease-in-out;-webkit-transition-property:-webkit-transform,width,left;transition-property:transform,width,left;border-radius:16px;background-color:#fff;background-clip:padding-box;-webkit-box-shadow:0 2px 5px rgba(0,0,0,.4);box-shadow:0 2px 5px rgba(0,0,0,.4)}.mui-switch:before{font-size:13px;position:absolute;top:3px;right:11px;content:'Off';text-transform:uppercase;color:#999}.mui-switch.mui-dragging{border-color:#f7f7f7;background-color:#f7f7f7}.mui-switch.mui-dragging .mui-switch-handle{width:38px}.mui-switch.mui-dragging.mui-active .mui-switch-handle{left:-11px;width:38px}.mui-switch.mui-active{border-color:#4cd964;background-color:#4cd964}.mui-switch.mui-active .mui-switch-handle{-webkit-transform:translate(43px,0);transform:translate(43px,0)}.mui-switch.mui-active:before{right:auto;left:15px;content:'On';color:#fff}.mui-switch input[type=checkbox]{display:none}.mui-switch-mini{width:47px}.mui-switch-mini:before{display:none}.mui-switch-mini.mui-active .mui-switch-handle{-webkit-transform:translate(16px,0);transform:translate(16px,0)}.mui-switch-blue.mui-active{border:2px solid #007aff;background-color:#007aff}.mui-content.mui-fade{left:0;opacity:0}.mui-content.mui-fade.mui-in{opacity:1}.mui-content.mui-sliding{z-index:2;-webkit-transition:-webkit-transform .4s;transition:transform .4s;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.mui-content.mui-sliding.mui-left{z-index:1;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.mui-content.mui-sliding.mui-right{z-index:3;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.mui-navigate-right:after,.mui-push-left:after,.mui-push-right:after{font-family:Muiicons;font-size:inherit;line-height:1;position:absolute;top:50%;display:inline-block;-webkit-transform:translateY(-50%);transform:translateY(-50%);text-decoration:none;color:#bbb;-webkit-font-smoothing:antialiased}.mui-push-left:after{left:15px;content:'\e582'}.mui-navigate-right:after,.mui-push-right:after{right:15px;content:'\e583'}.mui-pull-bottom-pocket,.mui-pull-top-pocket{position:absolute;left:0;display:block;visibility:hidden;overflow:hidden;width:100%;height:50px}.mui-plus-pullrefresh .mui-pull-bottom-pocket,.mui-plus-pullrefresh .mui-pull-top-pocket{display:none;visibility:visible}.mui-pull-top-pocket{top:0}.mui-bar-nav~.mui-content .mui-pull-top-pocket{top:44px}.mui-bar-nav~.mui-bar-header-secondary~.mui-content .mui-pull-top-pocket{top:88px}.mui-pull-bottom-pocket{position:relative;bottom:0;height:40px}.mui-pull-bottom-pocket .mui-pull-loading{visibility:hidden}.mui-pull-bottom-pocket .mui-pull-loading.mui-in{display:inline-block}.mui-pull{font-weight:700;position:absolute;right:0;bottom:10px;left:0;text-align:center;color:#777}.mui-pull-loading{margin-right:10px;-webkit-transition:-webkit-transform .4s;transition:transform .4s;-webkit-transition-duration:400ms;transition-duration:400ms;vertical-align:middle}.mui-pull-loading.mui-reverse{-webkit-transform:rotate(180deg) translateZ(0);transform:rotate(180deg) translateZ(0)}.mui-pull-caption{font-size:15px;line-height:24px;position:relative;display:inline-block;overflow:visible;margin-top:0;vertical-align:middle}.mui-pull-caption span{display:none}.mui-pull-caption span.mui-in{display:inline}.mui-toast-container{position:fixed;z-index:9999;bottom:50px;width:100%;-webkit-transition:opacity .8s;transition:opacity .8s;opacity:0}.mui-toast-container.mui-active{opacity:1}.mui-toast-message{font-size:14px;width:270px;margin:5px auto;padding:5px;text-align:center;color:#000;border-radius:7px;background-color:#d8d8d8}.mui-numbox{position:relative;display:inline-block;overflow:hidden;width:120px;height:35px;padding:0 40px;vertical-align:top;vertical-align:middle;border:solid 1px #bbb;border-radius:3px;background-color:#efeff4}.mui-numbox [class*=btn-numbox],.mui-numbox [class*=numbox-btn]{font-size:18px;font-weight:400;line-height:100%;position:absolute;top:0;overflow:hidden;width:40px;height:100%;padding:0;color:#555;border:none;border-radius:0;background-color:#f9f9f9}.mui-numbox [class*=btn-numbox]:active,.mui-numbox [class*=numbox-btn]:active{background-color:#ccc}.mui-numbox [class*=btn-numbox][disabled],.mui-numbox [class*=numbox-btn][disabled]{color:silver}.mui-numbox .mui-btn-numbox-plus,.mui-numbox .mui-numbox-btn-plus{right:0;border-top-right-radius:3px;border-bottom-right-radius:3px}.mui-numbox .mui-btn-numbox-minus,.mui-numbox .mui-numbox-btn-minus{left:0;border-top-left-radius:3px;border-bottom-left-radius:3px}.mui-numbox .mui-input-numbox,.mui-numbox .mui-numbox-input{display:inline-block;overflow:hidden;width:100%!important;height:100%;margin:0;padding:0 3px!important;text-align:center;text-overflow:ellipsis;word-break:normal;border:none!important;border-right:solid 1px #ccc!important;border-left:solid 1px #ccc!important;border-radius:0!important}.mui-input-row .mui-numbox{float:right;margin:2px 8px}@font-face{font-family:Muiicons;font-weight:400;font-style:normal;src:url(../fonts/mui.ttf) format('truetype')}.mui-icon{font-family:Muiicons;font-size:24px;font-weight:400;font-style:normal;line-height:1;display:inline-block;text-decoration:none;-webkit-font-smoothing:antialiased}.mui-icon.mui-active{color:#007aff}.mui-icon.mui-right:before{float:right;padding-left:.2em}.mui-icon-contact:before{content:'\e100'}.mui-icon-person:before{content:'\e101'}.mui-icon-personadd:before{content:'\e102'}.mui-icon-contact-filled:before{content:'\e130'}.mui-icon-person-filled:before{content:'\e131'}.mui-icon-personadd-filled:before{content:'\e132'}.mui-icon-phone:before{content:'\e200'}.mui-icon-email:before{content:'\e201'}.mui-icon-chatbubble:before{content:'\e202'}.mui-icon-chatboxes:before{content:'\e203'}.mui-icon-phone-filled:before{content:'\e230'}.mui-icon-email-filled:before{content:'\e231'}.mui-icon-chatbubble-filled:before{content:'\e232'}.mui-icon-chatboxes-filled:before{content:'\e233'}.mui-icon-weibo:before{content:'\e260'}.mui-icon-weixin:before{content:'\e261'}.mui-icon-pengyouquan:before{content:'\e262'}.mui-icon-chat:before{content:'\e263'}.mui-icon-qq:before{content:'\e264'}.mui-icon-videocam:before{content:'\e300'}.mui-icon-camera:before{content:'\e301'}.mui-icon-mic:before{content:'\e302'}.mui-icon-location:before{content:'\e303'}.mui-icon-mic-filled:before,.mui-icon-speech:before{content:'\e332'}.mui-icon-location-filled:before{content:'\e333'}.mui-icon-micoff:before{content:'\e360'}.mui-icon-image:before{content:'\e363'}.mui-icon-map:before{content:'\e364'}.mui-icon-compose:before{content:'\e400'}.mui-icon-trash:before{content:'\e401'}.mui-icon-upload:before{content:'\e402'}.mui-icon-download:before{content:'\e403'}.mui-icon-close:before{content:'\e404'}.mui-icon-redo:before{content:'\e405'}.mui-icon-undo:before{content:'\e406'}.mui-icon-refresh:before{content:'\e407'}.mui-icon-star:before{content:'\e408'}.mui-icon-plus:before{content:'\e409'}.mui-icon-minus:before{content:'\e410'}.mui-icon-checkbox:before,.mui-icon-circle:before{content:'\e411'}.mui-icon-clear:before,.mui-icon-close-filled:before{content:'\e434'}.mui-icon-refresh-filled:before{content:'\e437'}.mui-icon-star-filled:before{content:'\e438'}.mui-icon-plus-filled:before{content:'\e439'}.mui-icon-minus-filled:before{content:'\e440'}.mui-icon-circle-filled:before{content:'\e441'}.mui-icon-checkbox-filled:before{content:'\e442'}.mui-icon-closeempty:before{content:'\e460'}.mui-icon-refreshempty:before{content:'\e461'}.mui-icon-reload:before{content:'\e462'}.mui-icon-starhalf:before{content:'\e463'}.mui-icon-spinner:before{content:'\e464'}.mui-icon-spinner-cycle:before{content:'\e465'}.mui-icon-search:before{content:'\e466'}.mui-icon-plusempty:before{content:'\e468'}.mui-icon-forward:before{content:'\e470'}.mui-icon-back:before,.mui-icon-left-nav:before{content:'\e471'}.mui-icon-checkmarkempty:before{content:'\e472'}.mui-icon-home:before{content:'\e500'}.mui-icon-navigate:before{content:'\e501'}.mui-icon-gear:before{content:'\e502'}.mui-icon-paperplane:before{content:'\e503'}.mui-icon-info:before{content:'\e504'}.mui-icon-help:before{content:'\e505'}.mui-icon-locked:before{content:'\e506'}.mui-icon-more:before{content:'\e507'}.mui-icon-flag:before{content:'\e508'}.mui-icon-home-filled:before{content:'\e530'}.mui-icon-gear-filled:before{content:'\e532'}.mui-icon-info-filled:before{content:'\e534'}.mui-icon-help-filled:before{content:'\e535'}.mui-icon-more-filled:before{content:'\e537'}.mui-icon-settings:before{content:'\e560'}.mui-icon-list:before{content:'\e562'}.mui-icon-bars:before{content:'\e563'}.mui-icon-loop:before{content:'\e565'}.mui-icon-paperclip:before{content:'\e567'}.mui-icon-eye:before{content:'\e568'}.mui-icon-arrowup:before{content:'\e580'}.mui-icon-arrowdown:before{content:'\e581'}.mui-icon-arrowleft:before{content:'\e582'}.mui-icon-arrowright:before{content:'\e583'}.mui-icon-arrowthinup:before{content:'\e584'}.mui-icon-arrowthindown:before{content:'\e585'}.mui-icon-arrowthinleft:before{content:'\e586'}.mui-icon-arrowthinright:before{content:'\e587'}.mui-icon-pulldown:before{content:'\e588'}.mui-fullscreen{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.mui-fullscreen.mui-slider .mui-slider-group{height:100%}.mui-fullscreen .mui-segmented-control~.mui-slider-group{position:absolute;top:40px;bottom:0;width:100%;height:auto}.mui-fullscreen.mui-slider .mui-slider-item>a{top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.mui-fullscreen .mui-off-canvas-wrap .mui-slider-item>a{top:auto;-webkit-transform:none;transform:none}.mui-bar-tab~.mui-content .mui-slider.mui-fullscreen .mui-segmented-control~.mui-slider-group{bottom:50px}.mui-android.mui-android-4-0 input:focus,.mui-android.mui-android-4-0 textarea:focus{-webkit-user-modify:inherit}.mui-android.mui-android-4-2 input,.mui-android.mui-android-4-2 textarea,.mui-android.mui-android-4-3 input,.mui-android.mui-android-4-3 textarea{-webkit-user-select:text}.mui-ios .mui-table-view-cell{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.mui-plus-visible,.mui-wechat-visible{display:none!important}.mui-plus-hidden,.mui-wechat-hidden{display:block!important}.mui-tab-item.mui-plus-hidden,.mui-tab-item.mui-wechat-hidden{display:table-cell!important}.mui-plus .mui-plus-visible,.mui-wechat .mui-wechat-visible{display:block!important}.mui-plus .mui-tab-item.mui-plus-visible,.mui-wechat .mui-tab-item.mui-wechat-visible{display:table-cell!important}.mui-plus .mui-plus-hidden,.mui-wechat .mui-wechat-hidden{display:none!important}.mui-plus.mui-statusbar.mui-statusbar-offset .mui-bar-nav{height:64px;padding-top:20px}.mui-plus.mui-statusbar.mui-statusbar-offset .mui-bar-nav~.mui-content{padding-top:64px}.mui-plus.mui-statusbar.mui-statusbar-offset .mui-bar-header-secondary,.mui-plus.mui-statusbar.mui-statusbar-offset .mui-bar-nav~.mui-content .mui-pull-top-pocket{top:64px}.mui-plus.mui-statusbar.mui-statusbar-offset .mui-bar-header-secondary~.mui-content{padding-top:94px}.mui-iframe-wrapper{position:absolute;right:0;left:0;-webkit-overflow-scrolling:touch}.mui-iframe-wrapper iframe{width:100%;height:100%;border:0}
...\ No newline at end of file ...\ No newline at end of file
File mode changed
No preview for this file type
1 <div class="bondBox" ng-controller="bondController" ng-init="init()">
2 <div class="bondTop">
3 ¥{{bondInfo.alreadyPaid?bondInfo.alreadyPaid:'0.00'}}
4 </div>
5 <div class="bondText">
6 <div class="bondTitle">
7 保证金说明:
8 </div>
9 <ul>
10 <li>
11 1.在缴纳保证金后,方可租车;
12 </li>
13 <li>
14 2.在缴纳保证金后,是为保障公共自行车的正常有序使用;
15 </li>
16 <li>
17 3.每个地区到的保证金金额不定相同,请以所租车城市为准;
18 </li>
19 <li>
20 4.保证金可申请退换,申请后可7个工作日内退还;
21 </li>
22 </ul>
23 </div>
24 <div class="redBtnBox">
25 <button class=" mui-btn mui-btn-block bigBtn blueBg" ng-click="drawback()" ng-if="bondInfo.isActive">
26 申请退款
27 </button>
28 </div>
29 <div class="redBtnBox" ng-click="goPay()" ng-if="!bondInfo.isActive">
30 <button class=" mui-btn mui-btn-block bigBtn redBigBtn" >
31 立即支付
32 </button>
33 </div>
34
35 </div>
...\ No newline at end of file ...\ No newline at end of file
1 <div ng-controller="bondPayController" class="payPanel">
2 <div class="paywayMenu">
3 <div class="paywayMenuItem">
4 <img src="images/wechat.png" /> 微信支付
5 </div>
6 </div>
7
8 <div class="paywayMenu">
9 <div class="paywayMenuInputItem">
10 <span>金额(元):</span>
11 <input type="text" value="{{ $root.toPaid}}" disabled>
12 </div>
13 </div>
14
15 <div class="redBtnBox btnPosition" >
16 <button class=" mui-btn mui-btn-block redBigBtn" ng-click="goPay()">
17 确认
18 </button>
19 </div>
20
21 </div>
...\ No newline at end of file ...\ No newline at end of file
1 <div class="bondSuccess" ng-controller="bondSuccessController">
2 <div class="bondSuccessContent">
3 <div class="successLeft">
4 <div>
5 您已经支付成功
6 <span style="color:red;margin-left:2px">请勿重复支付,如有疑问,请联系客服</span>
7 </div>
8 <div class="bottomText">
9 支付金额:<span> ¥{{$root.toPaid}}</span>
10 </div>
11 </div>
12 <div class="successRight" ng-click="goMap();">
13 <div class="successBike">
14
15 </div>
16 <div class="successBikeText">
17 去租车
18 </div>
19 </div>
20 </div>
21 </div>
1 <div class="bondSuccess" ng-controller="bondSuccessController">
2 <div class="bondSuccessContent">
3 <div class="successLeft">
4 <div>
5 您已经支付成功
6 </div>
7 <div class="bottomText">
8 支付金额:<span> ¥{{$root.toPaid}}</span>
9 </div>
10 </div>
11 <div class="successRight" ng-click="goMap();">
12 <div class="successBike">
13
14 </div>
15 <div class="successBikeText">
16 去租车
17 </div>
18 </div>
19 </div>
20 </div>
...\ No newline at end of file ...\ No newline at end of file
1 <div ng-controller="contactController" class="payPanel">
2 <div class="phoneItem" ng-repeat="phoneItem in contactList">
3 {{phoneItem.name}}:<a href="tel:{{phoneItem.phone}}">
4 {{phoneItem.phone}}
5 </a>
6 </div>
7 <div class="phoneItem">客服邮箱:<a href="email:kefu@pniutong.com">kefu@pniutong.com</a></div>
8 <div class="phoneItem">官方微信:pniutong</div>
9 <div class="phoneItem">官方微博:<a href="email:kefu@weibo.com">kefu@weibo.com</a></div>
10 </div>
...\ No newline at end of file ...\ No newline at end of file
1 <div class="earnestMoneyBox">
2
3 </div>
...\ No newline at end of file ...\ No newline at end of file
File mode changed
1 <div class="loginBox" ng-controller="loginController">
2 <div class="loginTopLeft floatLeft">
3 <input type="number" placeholder="手机号" ng-model="phoneNumberVal" class="phoneNumber"/>
4 </div>
5 <div class="loginTopRight floatRight">
6 <button class="btnBg smallBtn ValidationBtn" ng-click="Validation()">
7 验证
8 </button>
9 </div>
10 <div class="loginCenter">
11 <input type="number" placeholder="验证码" class="validationInput" ng-model="validationVal">
12 </div>
13 <button class="loginBtn mui-btn mui-btn-block bigBtn " ng-click="login()">
14 登录
15 </button>
16 </div>
1 <div ng-controller="mainController">
2 <div id="mapContainer" class="mapContainer" ng-controller="mapController"></div>
3 <div id="sliderMenu" class="sliderMenu" style="display: none;"
4 ng-class="{true: 'menuOpen', false: 'menuClose'}[$root.openMenu]">
5
6 <img src="images/slideMenuBackground.png"/>
7 <div class="sliderContent">
8 <div class="sliderMenuHeader" ng-click="checkLogin()">
9 <img src="images/head.png"/>
10 <div class="sliderMenuHeaderHint">{{userinfo.userName}}</div>
11 </div>
12 <ul class="sliderMenuContent">
13 <li class="sliderMenuItem" ng-click="doAction($index)" ng-repeat="module in moduleList"
14 ng-hide="module.state === 'wallet'">
15 <img ng-src="{{module.icon}}"/>
16 <div class="sliderMenuItemHint">{{module.name}}</div>
17 </li>
18 <li class="sliderMenuItem" ng-click="logout()" ng-show="userinfo.loginState">
19 <img src="images/out.png"/>
20 <div class="sliderMenuItemHint">退出登录</div>
21 </li>
22 </ul>
23 </div>
24 </div>
25 </div>
1 <div ng-controller="opinionController">
2 <div class="textBox">
3 <textarea placeholder="请输入您的反馈,我们将为你改进(200字以内)" rows="" ng-model="opinion" style="color:black;"></textarea>
4 </div>
5 <div class="walletBtn" ng-click="submit()">
6 <div class="walletBtnContent" ng-class="{true : 'walletBtnContentDisable' , false : ''}[opinion == '']">提交</div>
7 </div>
8 </div>
...\ No newline at end of file ...\ No newline at end of file
1 <div ng-controller="payController" class="payPanel">
2 支付
3 </div>
...\ No newline at end of file ...\ No newline at end of file
1 <div ng-controller="prepayController" class="payPanel">
2
3 <div class="paywayMenu" style="display: block;">
4 <div class="mui-input-row mui-select">
5 <label style="font-size: 16px;color: #333">支付方式</label>
6 <select ng-change="payway()" ng-model="way">
7 <option value="101" selected>微信</option>
8 <option value="100">支付宝</option>
9 </select>
10 </div>
11 </div>
12
13 <div class="paywayMenu" id="wxpay">
14 <div class="paywayMenuItem">
15 <img src="images/wechat.png" /> 微信支付
16 </div>
17 </div>
18
19 <div class="paywayMenu" id="alipay" style="display: none;">
20 <div class="paywayMenuItem">
21 <img src="images/alipay.png" /> 支付宝支付
22 </div>
23 </div>
24
25 <div id="wxpayform">
26 <div class="paywayMenu">
27 <div class="paywayMenuInputItem">
28 <span>金额(元):</span>
29 <input type="number" placeholder="请输入充值金额" ng-model="account" >
30 </div>
31 </div>
32 <div class="walletBtn" ng-click="prepay()">
33 <div class="walletBtnContent" ng-class="{true : 'walletBtnContentDisable' , false : ''}[account == '']">充值</div>
34 </div>
35 </div>
36
37 <div id="alipayform" style="display: none">
38 <form action="http://lsz1.28ms.com/service/balance/alipay/h5" method="post">
39 <input type="hidden" name="type" value="100">
40 <input type="hidden" name="body" value="钱包充值">
41 <div class="paywayMenu">
42 <div class="paywayMenuInputItem">
43 <span>金额(元):</span>
44 <input type="number" placeholder="请输入充值金额" name="amount" >
45 </div>
46 </div>
47 <div class="walletBtn">
48 <button type="submit" class="walletBtnContent">充值</button>
49 </div>
50 </form>
51
52 </div>
53 </div>
1 <div class="rechargeList" ng-controller="rechargeListController">
2 <ul>
3 <li ng-repeat="item in rechargeList">
4 <div class="rechargeLeft">
5 <div >
6 {{item.rechargeType}}
7 </div>
8 <div class="rechargeTime">
9 {{item.rechargeTime}}
10 </div>
11 </div>
12 <div class="rechargeRight">
13 + {{item.rechargeMoney}}
14 </div>
15 </li>
16 </ul>
17 </div>
...\ No newline at end of file ...\ No newline at end of file
1 <div class="rentDetail" ng-controller="rentDetailController">
2 <div class="circleBox">
3 <div class="newCircles">
4 <div class="bigCircles">
5 <div class="circlesText">
6 <div class="text1">免费倒计时</div>
7 <div class="freeTime">{{detail.freeCountdown}}</div>
8 </div>
9 </div>
10 </div>
11 </div>
12
13 <div class="viewStation" >
14 <div class="viewBorer"></div>
15 <div class="viewBtn" ng-click="backHome()">
16 <div class="viewImg"></div>
17 <div class="viewText" >查看站点</div>
18 </div>
19 </div>
20
21 <div class="fenceBox">
22 <div class="fenceLeft">
23 <div class="fenceTitle">租车站点</div>
24 <div class="fenceText">{{datail.startStation}}</div>
25 </div>
26 <div class="fenceCenter">
27 <div class="fenceTitle">租车时间</div>
28 <div class="fenceText">{{datail.startTime}}</div>
29 </div>
30 <div class="fenceRight">
31 <div class="fenceTitle">已租时间</div>
32 <div class="fenceText">{{costTime}}</div>
33 </div>
34 </div>
35
36 <div class="alreadyBack" ng-click="alreadyBack()">我已还车</div>
37 </div>
38
1 <div class="tripBox" ng-controller="tripController">
2 <ul style="background: #F0F0F0;">
3 <li ng-repeat="item in tripList" ng-click="viewTripDetail($index)">
4 <div class="tripLeft">
5 <div class="bike"></div>
6 <div class="tripAddress">
7 {{item.startStation}}-{{item.endStation}}
8 </div>
9 <div class="tripTime">
10 {{item.startTime}}
11 </div>
12 </div>
13 <div class="tripRight">
14 <span class="tripStatus">{{item.tripStatus}}</span><span class="goDetail"></span>
15 </div>
16 </li>
17 </ul>
18 <div class="loadMore" ng-click="getMoreOrders()">
19 <span ng-if="!isLastPage">加载更多</span>
20 <span ng-if="isLastPage">没有更多</span>
21 </div>
22 </div>
...\ No newline at end of file ...\ No newline at end of file
1 <div class="tripDetail" ng-controller="tripDetailController" ng-init="init()">
2 <div class="tripDetailTop">
3 <div class="tripTopLeft">
4
5 </div>
6 <div class="tripTopRight">
7 <p class="borderBottom firstAddress">
8 <span class="size15"> {{tripDetail.startStation}}</span> <span class="getBike">取车点</span>
9 </p>
10 <p>
11 <span class="size15"> {{tripDetail.endStation}}</span> <span class="backBike">还车点</span>
12 </p>
13 </div>
14 </div>
15
16 <div class="payBox" ng-show="needPay">
17 <div class="tripTitle">
18 支付方式
19 </div>
20 <ul>
21 <!--<li>
22 <span class="leftText residual"></span> <span class="leftText"> 余额支付(¥{{balance}})</span> <span class="rightText checkboxS" ng-class="{true: 'checkboxTrue', false: 'checkboxFalse'}[!isActive]" ng-click="choosePay(0)"> </span>
23 </li>-->
24 <li>
25 <span class="leftText wechatPay"></span><span class="leftText "> 微信支付</span> <span
26 class="rightText checkboxS" ng-class="{true: 'checkboxTrue', false: 'checkboxFalse'}[isActive]"
27 ng-click="choosePay(1)"></span>
28 </li>
29 </ul>
30 </div>
31
32 <div class="tripContent">
33 <div class="tripTitle">
34 租车详情:
35 </div>
36 <ul>
37 <li>
38 <span class="leftText"> 租车时间:</span>
39 <span class="rightText"> {{tripDetail.startTime}}</span>
40 </li>
41 <li>
42 <span class="leftText"> 还车时间:</span>
43 <span class="rightText"> {{tripDetail.endTime}}</span>
44 </li>
45 <li>
46 <span class="leftText"> 免费时间:</span>
47 <span class="rightText"> {{tripDetail.freeTime}}分钟</span>
48 </li>
49 <li>
50 <span class="leftText"> 超出时间:</span>
51 <span class="rightText"> {{tripDetail.outTime}}分钟</span>
52 </li>
53 </ul>
54 <div class="amount">合计:{{tripDetail.total_fee}}元</div>
55 </div>
56 <div class="redBtnBox btnPosition" ng-show="!needPay">
57 <button class=" mui-btn mui-btn-block redBigBtn" ng-click="backHome()">
58 返回首页
59 </button>
60 </div>
61 <div class="bottomPosition" ng-show="needPay">
62 <span> 合计:{{tripDetail.total_fee}}元</span>
63 <div class="goPay" ng-click="goPay()">
64 立即支付
65 </div>
66 </div>
67
68
69 </div>
...\ No newline at end of file ...\ No newline at end of file
1 <div class="unusual" ng-controller="unusualController">
2
3 <div class="unusualBox1">
4 <div class="unusualTitle">
5 如果您已还车,但仍然是租车状态,可能是您还车时未还上,请点击"<span>我已经还车</span>"
6 </div>
7 <div class="unusualText1" ng-click="returnBike()">
8
9 <div class="unusualBike">
10
11 </div>
12 <div class="text2">
13 我已经还车
14 </div>
15 </div>
16
17 </div>
18 <div class="unusualBox1">
19 <div class="unusualTitle oneLine">
20 如果还是未还上,请联系客服.
21 </div>
22 <div class="unusualText1" ng-click="hint()">
23 <div class="customerImg">
24
25 </div>
26 <div class="text2">
27 联系客服
28 </div>
29 </div>
30 </div>
31 </div>
...\ No newline at end of file ...\ No newline at end of file
1 <div ng-controller="walletController">
2 <div class="walletIconContainer">
3 <img src="images/wallet_large.png"/>
4 </div>
5 <div class="walletInfoTitle">我的余额</div>
6 <div class="walletInfoCount">¥{{balance}}</div>
7 <div class="walletBtn" ng-click="prepay()">
8 <div class="walletBtnContent">充值</div>
9 </div>
10 </div>
...\ No newline at end of file ...\ No newline at end of file
images/go.png

11.2 KB

images/me.png

4.13 KB

images/slide.png

109 Bytes

1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="utf-8">
5 <meta name="viewport"
6 content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no"/>
7 <title>东城行</title>
8 <!--<script src="js/mui/mui.min.js"></script>-->
9 <!--<link href="css/mui.min.css" rel="stylesheet"/>
10 <link href="css/app.css" rel="stylesheet"/>
11 <link href="bootstrap/css/bootstrap.min.css" rel="stylesheet">
12 <script type="text/javascript" src="js/jquery-1.9.1.js"></script>
13 <script type="text/javascript" src="js/angularjs/angular.min.js"></script>
14 <script type="text/javascript" src="js/angularjs/angular-local-storage.js"></script>
15 <script type="text/javascript" src="js/angularjs/angular-ui-router.js"></script>-->
16 <!--<script src="js/debug.js"></script>-->
17 <!--<script src="https://res.wx.qq.com/open/js/jweixin-1.1.0.js"></script>-->
18 <!--wetrack ak-->
19 <!--<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=0boKIhOAWCENnaZcxWlm0cmS3QcOkYNz"></script>-->
20 <!--npt ak-->
21 <!--<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=ykvgUlEv77wstKqmFovr56pl4cKRUUEz"></script>-->
22 <!--<script type="text/javascript" src="js/layer/layer.js"></script>
23 <script type="text/javascript" src="js/layer/layerMobile/layer.js"></script>
24
25 <script src="js/compress.min.js" type="text/javascript" charset="utf-8"></script>-->
26
27 <!--<script type="text/javascript" src="js/app.js"></script>
28 <script src="js/service/weixinConfig.js"></script>
29 <script src="js/service/globalService.js" type="text/javascript" charset="utf-8"></script>
30 <script src="js/service/dingdaService.js" type="text/javascript" charset="utf-8"></script>
31 <script src="js/service/wechatPaymentService.js" type="text/javascript" charset="utf-8"></script>
32 <script type="text/javascript" charset="utf-8" src="js/controller/mainController.js"></script>
33 <script type="text/javascript" charset="utf-8" src="js/controller/mapController.js"></script>
34 <script type="text/javascript" charset="utf-8" src="js/controller/loginController.js"></script>
35 <script type="text/javascript" charset="utf-8" src="js/controller/walletController.js"></script>
36 <script type="text/javascript" charset="utf-8" src="js/controller/prepayController.js"></script>
37 <script type="text/javascript" charset="utf-8" src="js/controller/payController.js"></script>
38 <script type="text/javascript" charset="utf-8" src="js/controller/tripController.js"></script>
39 <script type="text/javascript" charset="utf-8" src="js/controller/tripDetailController.js"></script>
40 <script type="text/javascript" charset="utf-8" src="js/controller/opinionController.js"></script>
41 <script type="text/javascript" charset="utf-8" src="js/controller/contactController.js"></script>
42 <script type="text/javascript" charset="utf-8" src="js/controller/bondController.js"></script>
43 <script type="text/javascript" charset="utf-8" src="js/controller/bondPayController.js"></script>
44 <script type="text/javascript" charset="utf-8" src="js/controller/bondSuccessController.js"></script>
45 <script type="text/javascript" charset="utf-8" src="js/controller/rentDetailController.js"></script>
46 <script type="text/javascript" charset="utf-8" src="js/controller/unusualController.js"></script>
47 <script type="text/javascript" charset="utf-8" src="js/controller/rechargeListController.js"></script>-->
48
49 <style type="text/css">
50 #appLoadingIndicator {
51 position: absolute;
52 top: 20%;
53 margin-top: -15px;
54 text-align: center;
55 width: 100%;
56 height: 30px;
57 }
58
59 .loadingImg {
60 background-color: #36D1E7;
61 display: inline-block;
62 height: 30px;
63 -webkit-border-radius: 50px;
64 margin: 0 5px;
65 width: 30px;
66 opacity: 1;
67 -webkit-animation-name: loadingImg;
68 -webkit-animation-duration: 2s;
69 -webkit-animation-iteration-count: infinite;
70 -webkit-animation-direction: linear;
71 }
72
73 @-webkit-keyframes loadingImg {
74 0% {
75 opacity: 1
76 }
77 50% {
78 opacity: 0
79 }
80 100% {
81 opacity: 1
82 }
83 }
84
85 </style>
86
87
88 </head>
89 <body ng-app="myApp">
90 <div id="appLoadingIndicator">
91 <div class="loadingImg"></div>
92 <div class="loadingImg"></div>
93 <div class="loadingImg"></div>
94 </div>
95 <div ui-view class="main"></div>
96
97 <link href="css/mui.min.css" rel="stylesheet"/>
98 <link href="css/app.css" rel="stylesheet"/>
99 <link href="bootstrap/css/bootstrap.min.css" rel="stylesheet">
100 <script type="text/javascript" src="js/jquery-1.9.1.js"></script>
101 <script type="text/javascript" src="js/angularjs/angular.min.js"></script>
102 <script type="text/javascript" src="js/angularjs/angular-local-storage.js"></script>
103 <script type="text/javascript" src="js/angularjs/angular-ui-router.js"></script>
104 <!--<script src="js/debug.js"></script>-->
105 <script src="https://res.wx.qq.com/open/js/jweixin-1.1.0.js"></script>
106 <!--wetrack ak-->
107 <!--<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=0boKIhOAWCENnaZcxWlm0cmS3QcOkYNz"></script>-->
108 <!--pnt test ak
109 <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=ykvgUlEv77wstKqmFovr56pl4cKRUUEz"></script>-->
110 <!--pnt prod ak-->
111 <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=QVYxRW2ZxRxLGHycLEcZUTtNfBK8rvwp"></script>
112 <script type="text/javascript" src="js/layer/layer.js"></script>
113 <script type="text/javascript" src="js/layer/layerMobile/layer.js"></script>
114
115 <!--<script src="js/compress.min.js" type="text/javascript" charset="utf-8"></script>-->
116 <script type="text/javascript" src="js/app.js"></script>
117 <script src="js/service/weixinConfig.js"></script>
118 <script src="js/service/globalService.js" type="text/javascript" charset="utf-8"></script>
119 <script src="js/service/dingdaService.js" type="text/javascript" charset="utf-8"></script>
120 <script src="js/service/wechatPaymentService.js" type="text/javascript" charset="utf-8"></script>
121 <script type="text/javascript" charset="utf-8" src="js/controller/mainController.js"></script>
122 <script type="text/javascript" charset="utf-8" src="js/controller/mapController.js"></script>
123 <script type="text/javascript" charset="utf-8" src="js/controller/loginController.js"></script>
124 <script type="text/javascript" charset="utf-8" src="js/controller/walletController.js"></script>
125 <script type="text/javascript" charset="utf-8" src="js/controller/prepayController.js"></script>
126 <script type="text/javascript" charset="utf-8" src="js/controller/payController.js"></script>
127 <script type="text/javascript" charset="utf-8" src="js/controller/tripController.js"></script>
128 <script type="text/javascript" charset="utf-8" src="js/controller/tripDetailController.js"></script>
129 <script type="text/javascript" charset="utf-8" src="js/controller/opinionController.js"></script>
130 <script type="text/javascript" charset="utf-8" src="js/controller/contactController.js"></script>
131 <script type="text/javascript" charset="utf-8" src="js/controller/bondController.js"></script>
132 <script type="text/javascript" charset="utf-8" src="js/controller/bondPayController.js"></script>
133 <script type="text/javascript" charset="utf-8" src="js/controller/bondSuccessController.js"></script>
134 <script type="text/javascript" charset="utf-8" src="js/controller/rentDetailController.js"></script>
135 <script type="text/javascript" charset="utf-8" src="js/controller/unusualController.js"></script>
136 <script type="text/javascript" charset="utf-8" src="js/controller/rechargeListController.js"></script>
137 <script type="text/javascript" src="bootstrap/js/bootstrap.min.js"></script>
138 </body>
139 </html>
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="utf-8">
5 <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
6 <title>叮嗒出行</title>
7 <!--<script src="js/mui/mui.min.js"></script>-->
8 <!--<link href="css/mui.min.css" rel="stylesheet"/>
9 <link href="css/app.css" rel="stylesheet"/>
10 <link href="bootstrap/css/bootstrap.min.css" rel="stylesheet">
11 <script type="text/javascript" src="js/jquery-1.9.1.js"></script>
12 <script type="text/javascript" src="js/angularjs/angular.min.js"></script>
13 <script type="text/javascript" src="js/angularjs/angular-local-storage.js"></script>
14 <script type="text/javascript" src="js/angularjs/angular-ui-router.js"></script>-->
15 <!--<script src="js/debug.js"></script>-->
16 <!--<script src="https://res.wx.qq.com/open/js/jweixin-1.1.0.js"></script>-->
17 <!--wetrack ak-->
18 <!--<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=0boKIhOAWCENnaZcxWlm0cmS3QcOkYNz"></script>-->
19 <!--npt ak-->
20 <!--<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=ykvgUlEv77wstKqmFovr56pl4cKRUUEz"></script>-->
21 <!--<script type="text/javascript" src="js/layer/layer.js"></script>
22 <script type="text/javascript" src="js/layer/layerMobile/layer.js"></script>
23
24 <script src="js/compress.min.js" type="text/javascript" charset="utf-8"></script>-->
25
26 <!--<script type="text/javascript" src="js/app.js"></script>
27 <script src="js/service/weixinConfig.js"></script>
28 <script src="js/service/globalService.js" type="text/javascript" charset="utf-8"></script>
29 <script src="js/service/dingdaService.js" type="text/javascript" charset="utf-8"></script>
30 <script src="js/service/wechatPaymentService.js" type="text/javascript" charset="utf-8"></script>
31 <script type="text/javascript" charset="utf-8" src="js/controller/mainController.js"></script>
32 <script type="text/javascript" charset="utf-8" src="js/controller/mapController.js"></script>
33 <script type="text/javascript" charset="utf-8" src="js/controller/loginController.js"></script>
34 <script type="text/javascript" charset="utf-8" src="js/controller/walletController.js"></script>
35 <script type="text/javascript" charset="utf-8" src="js/controller/prepayController.js"></script>
36 <script type="text/javascript" charset="utf-8" src="js/controller/payController.js"></script>
37 <script type="text/javascript" charset="utf-8" src="js/controller/tripController.js"></script>
38 <script type="text/javascript" charset="utf-8" src="js/controller/tripDetailController.js"></script>
39 <script type="text/javascript" charset="utf-8" src="js/controller/opinionController.js"></script>
40 <script type="text/javascript" charset="utf-8" src="js/controller/contactController.js"></script>
41 <script type="text/javascript" charset="utf-8" src="js/controller/bondController.js"></script>
42 <script type="text/javascript" charset="utf-8" src="js/controller/bondPayController.js"></script>
43 <script type="text/javascript" charset="utf-8" src="js/controller/bondSuccessController.js"></script>
44 <script type="text/javascript" charset="utf-8" src="js/controller/rentDetailController.js"></script>
45 <script type="text/javascript" charset="utf-8" src="js/controller/unusualController.js"></script>
46 <script type="text/javascript" charset="utf-8" src="js/controller/rechargeListController.js"></script>-->
47
48 <style type="text/css">
49 #appLoadingIndicator {
50 position: absolute;
51 top: 20%;
52 margin-top: -15px;
53 text-align: center;
54 width: 100%;
55 height: 30px;
56 }
57
58 .loadingImg{
59 background-color: #36D1E7;
60 display: inline-block;
61 height: 30px;
62 -webkit-border-radius: 50px;
63 margin: 0 5px;
64 width: 30px;
65 opacity: 1;
66 -webkit-animation-name: loadingImg;
67 -webkit-animation-duration: 2s;
68 -webkit-animation-iteration-count: infinite;
69 -webkit-animation-direction: linear;
70 }
71
72 @-webkit-keyframes loadingImg{
73 0% {
74 opacity: 1
75 }
76 50% {
77 opacity: 0
78 }
79 100% {
80 opacity: 1
81 }
82 }
83
84 </style>
85
86
87 </head>
88 <body ng-app="myApp">
89 <div id="appLoadingIndicator">
90 <div class="loadingImg"></div>
91 <div class="loadingImg"></div>
92 <div class="loadingImg"></div>
93 </div>
94 <div ui-view class="main"></div>
95
96 <link href="css/mui.min.css" rel="stylesheet"/>
97 <link href="css/app.css" rel="stylesheet"/>
98 <link href="bootstrap/css/bootstrap.min.css" rel="stylesheet">
99 <script type="text/javascript" src="js/jquery-1.9.1.js"></script>
100 <script type="text/javascript" src="js/angularjs/angular.min.js"></script>
101 <script type="text/javascript" src="js/angularjs/angular-local-storage.js"></script>
102 <script type="text/javascript" src="js/angularjs/angular-ui-router.js"></script>
103 <!--<script src="js/debug.js"></script>-->
104 <script src="https://res.wx.qq.com/open/js/jweixin-1.1.0.js"></script>
105 <!--wetrack ak-->
106 <!--<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=0boKIhOAWCENnaZcxWlm0cmS3QcOkYNz"></script>-->
107 <!--pnt test ak
108 <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=ykvgUlEv77wstKqmFovr56pl4cKRUUEz"></script>-->
109 <!--pnt prod ak-->
110 <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=ykvgUlEv77wstKqmFovr56pl4cKRUUEz"></script>
111 <script type="text/javascript" src="js/layer/layer.js"></script>
112 <script type="text/javascript" src="js/layer/layerMobile/layer.js"></script>
113
114 <script src="js/compress.min.js" type="text/javascript" charset="utf-8"></script>
115 <script type="text/javascript" src="bootstrap/js/bootstrap.min.js"></script>
116 </body>
117 </html>
...\ No newline at end of file ...\ No newline at end of file
No preview for this file type
1 (function() {
2 /* Start angularLocalStorage */
3 'use strict';
4 var angularLocalStorage = angular.module('LocalStorageModule', []);
5
6 angularLocalStorage.provider('localStorageService', function() {
7
8 // You should set a prefix to avoid overwriting any local storage variables from the rest of your app
9 // e.g. localStorageServiceProvider.setPrefix('youAppName');
10 // With provider you can use config as this:
11 // myApp.config(function (localStorageServiceProvider) {
12 // localStorageServiceProvider.prefix = 'yourAppName';
13 // });
14 this.prefix = 'ls';
15
16 // You could change web storage type localstorage or sessionStorage
17 this.storageType = 'localStorage';
18
19 // Cookie options (usually in case of fallback)
20 // expiry = Number of days before cookies expire // 0 = Does not expire
21 // path = The web path the cookie represents
22 this.cookie = {
23 expiry: 30,
24 path: '/'
25 };
26
27 // Send signals for each of the following actions?
28 this.notify = {
29 setItem: true,
30 removeItem: false
31 };
32
33 // Setter for the prefix
34 this.setPrefix = function(prefix) {
35 this.prefix = prefix;
36 };
37
38 // Setter for the storageType
39 this.setStorageType = function(storageType) {
40 this.storageType = storageType;
41 };
42
43 // Setter for cookie config
44 this.setStorageCookie = function(exp, path) {
45 this.cookie = {
46 expiry: exp,
47 path: path
48 };
49 };
50
51 // Setter for cookie domain
52 this.setStorageCookieDomain = function(domain) {
53 this.cookie.domain = domain;
54 };
55
56 // Setter for notification config
57 // itemSet & itemRemove should be booleans
58 this.setNotify = function(itemSet, itemRemove) {
59 this.notify = {
60 setItem: itemSet,
61 removeItem: itemRemove
62 };
63 };
64
65 this.$get = ['$rootScope', '$window', '$document', function($rootScope, $window, $document) {
66
67 var prefix = this.prefix;
68 var cookie = this.cookie;
69 var notify = this.notify;
70 var storageType = this.storageType;
71 var webStorage = $window[storageType];
72
73 // When Angular's $document is not available
74 if (!$document) {
75 $document = document;
76 }
77
78 // If there is a prefix set in the config lets use that with an appended period for readability
79 if (prefix.substr(-1) !== '.') {
80 prefix = !!prefix ? prefix + '.' : '';
81 }
82
83 // Checks the browser to see if local storage is supported
84 var browserSupportsLocalStorage = (function () {
85 try {
86 var supported = (storageType in $window && $window[storageType] !== null);
87
88 // When Safari (OS X or iOS) is in private browsing mode, it appears as though localStorage
89 // is available, but trying to call .setItem throws an exception.
90 //
91 // "QUOTA_EXCEEDED_ERR: DOM Exception 22: An attempt was made to add something to storage
92 // that exceeded the quota."
93 var key = prefix + '__' + Math.round(Math.random() * 1e7);
94 if (supported) {
95 webStorage.setItem(key, '');
96 webStorage.removeItem(key);
97 }
98
99 return true;
100 } catch (e) {
101 storageType = 'cookie';
102 $rootScope.$broadcast('LocalStorageModule.notification.error', e.message);
103 return false;
104 }
105 }());
106
107 // Directly adds a value to local storage
108 // If local storage is not available in the browser use cookies
109 // Example use: localStorageService.add('library','angular');
110 var addToLocalStorage = function (key, value) {
111
112 // If this browser does not support local storage use cookies
113 if (!browserSupportsLocalStorage) {
114 $rootScope.$broadcast('LocalStorageModule.notification.warning', 'LOCAL_STORAGE_NOT_SUPPORTED');
115 if (notify.setItem) {
116 $rootScope.$broadcast('LocalStorageModule.notification.setitem', {key: key, newvalue: value, storageType: 'cookie'});
117 }
118 return addToCookies(key, value);
119 }
120
121 // Let's convert undefined values to null to get the value consistent
122 if (typeof value === "undefined") {
123 value = null;
124 }
125
126 try {
127 if (angular.isObject(value) || angular.isArray(value)) {
128 value = angular.toJson(value);
129 }
130 webStorage.setItem(prefix + key, value);
131 if (notify.setItem) {
132 $rootScope.$broadcast('LocalStorageModule.notification.setitem', {key: key, newvalue: value, storageType: this.storageType});
133 }
134 } catch (e) {
135 $rootScope.$broadcast('LocalStorageModule.notification.error', e.message);
136 return addToCookies(key, value);
137 }
138 return true;
139 };
140
141 // Directly get a value from local storage
142 // Example use: localStorageService.get('library'); // returns 'angular'
143 var getFromLocalStorage = function (key) {
144
145 if (!browserSupportsLocalStorage) {
146 $rootScope.$broadcast('LocalStorageModule.notification.warning','LOCAL_STORAGE_NOT_SUPPORTED');
147 return getFromCookies(key);
148 }
149
150 var item = webStorage.getItem(prefix + key);
151 // angular.toJson will convert null to 'null', so a proper conversion is needed
152 // FIXME not a perfect solution, since a valid 'null' string can't be stored
153 if (!item || item === 'null') {
154 return null;
155 }
156
157 if (item.charAt(0) === "{" || item.charAt(0) === "[") {
158 return angular.fromJson(item);
159 }
160
161 return item;
162 };
163
164 // Remove an item from local storage
165 // Example use: localStorageService.remove('library'); // removes the key/value pair of library='angular'
166 var removeFromLocalStorage = function (key) {
167 if (!browserSupportsLocalStorage) {
168 $rootScope.$broadcast('LocalStorageModule.notification.warning', 'LOCAL_STORAGE_NOT_SUPPORTED');
169 if (notify.removeItem) {
170 $rootScope.$broadcast('LocalStorageModule.notification.removeitem', {key: key, storageType: 'cookie'});
171 }
172 return removeFromCookies(key);
173 }
174
175 try {
176 webStorage.removeItem(prefix+key);
177 if (notify.removeItem) {
178 $rootScope.$broadcast('LocalStorageModule.notification.removeitem', {key: key, storageType: this.storageType});
179 }
180 } catch (e) {
181 $rootScope.$broadcast('LocalStorageModule.notification.error', e.message);
182 return removeFromCookies(key);
183 }
184 return true;
185 };
186
187 // Return array of keys for local storage
188 // Example use: var keys = localStorageService.keys()
189 var getKeysForLocalStorage = function () {
190
191 if (!browserSupportsLocalStorage) {
192 $rootScope.$broadcast('LocalStorageModule.notification.warning', 'LOCAL_STORAGE_NOT_SUPPORTED');
193 return false;
194 }
195
196 var prefixLength = prefix.length;
197 var keys = [];
198 for (var key in webStorage) {
199 // Only return keys that are for this app
200 if (key.substr(0,prefixLength) === prefix) {
201 try {
202 keys.push(key.substr(prefixLength));
203 } catch (e) {
204 $rootScope.$broadcast('LocalStorageModule.notification.error', e.Description);
205 return [];
206 }
207 }
208 }
209 return keys;
210 };
211
212 // Remove all data for this app from local storage
213 // Also optionally takes a regular expression string and removes the matching key-value pairs
214 // Example use: localStorageService.clearAll();
215 // Should be used mostly for development purposes
216 var clearAllFromLocalStorage = function (regularExpression) {
217
218 regularExpression = regularExpression || "";
219 //accounting for the '.' in the prefix when creating a regex
220 var tempPrefix = prefix.slice(0, -1);
221 var testRegex = new RegExp(tempPrefix + '.' + regularExpression);
222
223 if (!browserSupportsLocalStorage) {
224 $rootScope.$broadcast('LocalStorageModule.notification.warning', 'LOCAL_STORAGE_NOT_SUPPORTED');
225 return clearAllFromCookies();
226 }
227
228 var prefixLength = prefix.length;
229
230 for (var key in webStorage) {
231 // Only remove items that are for this app and match the regular expression
232 if (testRegex.test(key)) {
233 try {
234 removeFromLocalStorage(key.substr(prefixLength));
235 } catch (e) {
236 $rootScope.$broadcast('LocalStorageModule.notification.error',e.message);
237 return clearAllFromCookies();
238 }
239 }
240 }
241 return true;
242 };
243
244 // Checks the browser to see if cookies are supported
245 var browserSupportsCookies = function() {
246 try {
247 return navigator.cookieEnabled ||
248 ("cookie" in $document && ($document.cookie.length > 0 ||
249 ($document.cookie = "test").indexOf.call($document.cookie, "test") > -1));
250 } catch (e) {
251 $rootScope.$broadcast('LocalStorageModule.notification.error', e.message);
252 return false;
253 }
254 };
255
256 // Directly adds a value to cookies
257 // Typically used as a fallback is local storage is not available in the browser
258 // Example use: localStorageService.cookie.add('library','angular');
259 var addToCookies = function (key, value) {
260
261 if (typeof value === "undefined") {
262 return false;
263 }
264
265 if (!browserSupportsCookies()) {
266 $rootScope.$broadcast('LocalStorageModule.notification.error', 'COOKIES_NOT_SUPPORTED');
267 return false;
268 }
269
270 try {
271 var expiry = '',
272 expiryDate = new Date(),
273 cookieDomain = '';
274
275 if (value === null) {
276 // Mark that the cookie has expired one day ago
277 expiryDate.setTime(expiryDate.getTime() + (-1 * 24 * 60 * 60 * 1000));
278 expiry = "; expires=" + expiryDate.toGMTString();
279 value = '';
280 } else if (cookie.expiry !== 0) {
281 expiryDate.setTime(expiryDate.getTime() + (cookie.expiry * 24 * 60 * 60 * 1000));
282 expiry = "; expires=" + expiryDate.toGMTString();
283 }
284 if (!!key) {
285 var cookiePath = "; path=" + cookie.path;
286 if(cookie.domain){
287 cookieDomain = "; domain=" + cookie.domain;
288 }
289 $document.cookie = prefix + key + "=" + encodeURIComponent(value) + expiry + cookiePath + cookieDomain;
290 }
291 } catch (e) {
292 $rootScope.$broadcast('LocalStorageModule.notification.error',e.message);
293 return false;
294 }
295 return true;
296 };
297
298 // Directly get a value from a cookie
299 // Example use: localStorageService.cookie.get('library'); // returns 'angular'
300 var getFromCookies = function (key) {
301 if (!browserSupportsCookies()) {
302 $rootScope.$broadcast('LocalStorageModule.notification.error', 'COOKIES_NOT_SUPPORTED');
303 return false;
304 }
305
306 var cookies = $document.cookie && $document.cookie.split(';') || [];
307 for(var i=0; i < cookies.length; i++) {
308 var thisCookie = cookies[i];
309 while (thisCookie.charAt(0) === ' ') {
310 thisCookie = thisCookie.substring(1,thisCookie.length);
311 }
312 if (thisCookie.indexOf(prefix + key + '=') === 0) {
313 return decodeURIComponent(thisCookie.substring(prefix.length + key.length + 1, thisCookie.length));
314 }
315 }
316 return null;
317 };
318
319 var removeFromCookies = function (key) {
320 addToCookies(key,null);
321 };
322
323 var clearAllFromCookies = function () {
324 var thisCookie = null, thisKey = null;
325 var prefixLength = prefix.length;
326 var cookies = $document.cookie.split(';');
327 for(var i = 0; i < cookies.length; i++) {
328 thisCookie = cookies[i];
329
330 while (thisCookie.charAt(0) === ' ') {
331 thisCookie = thisCookie.substring(1, thisCookie.length);
332 }
333
334 var key = thisCookie.substring(prefixLength, thisCookie.indexOf('='));
335 removeFromCookies(key);
336 }
337 };
338
339 var getStorageType = function() {
340 return storageType;
341 };
342
343 return {
344 isSupported: browserSupportsLocalStorage,
345 getStorageType: getStorageType,
346 set: addToLocalStorage,
347 add: addToLocalStorage, //DEPRECATED
348 get: getFromLocalStorage,
349 keys: getKeysForLocalStorage,
350 remove: removeFromLocalStorage,
351 clearAll: clearAllFromLocalStorage,
352 cookie: {
353 set: addToCookies,
354 add: addToCookies, //DEPRECATED
355 get: getFromCookies,
356 remove: removeFromCookies,
357 clearAll: clearAllFromCookies
358 }
359 };
360 }];
361 });
362 }).call(this);
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
1 angular.module('myApp.services', ['LocalStorageModule']);
2 angular.module('myApp.directives', []);
3 var app = angular.module('myApp', [ "ui.router",'myApp.services', 'myApp.directives']);
4
5 app.config(['$stateProvider' , '$urlRouterProvider' , function($stateProvider, $urlRouterProvider){
6 $urlRouterProvider.otherwise("/main");
7 $stateProvider.state('main', {
8 url: "/main",
9 templateUrl: "html/main.html"
10 })
11 .state('login',{
12 url: "/login",
13 templateUrl: "html/login.html"
14 })
15 .state('trip',{
16 url: "/trip",
17 templateUrl: "html/trip.html",
18 controller: 'tripController'
19 })
20 .state('wallet',{
21 url: "/wallet",
22 templateUrl: "html/wallet.html"
23 })
24 .state('bond',{
25 url: "/bond/?longitude&latitude",
26 templateUrl: "html/bond.html"
27 })
28 .state('contact',{
29 url: "/contact",
30 templateUrl: "html/contact.html"
31 })
32 .state('opinion',{
33 url: "/opinion/?longitude&latitude",
34 templateUrl: "html/opinion.html"
35 })
36 .state('tripDetail',{
37 url: "/tripDetail/:orderId",
38 templateUrl: "html/tripDetail.html" ,
39 controller: 'tripDetailController'
40 })
41
42 .state('prepay',{
43 url: "/prepay",
44 templateUrl: "html/prepay.html"
45 })
46 .state('pay',{
47 url: "/pay",
48 templateUrl: "html/pay.html"
49 })
50 .state('bondPay',{
51 url: "/bondPay",
52 templateUrl: "html/bondPay.html"
53 })
54 .state('bondSuccess',{
55 url: "/bondSuccess",
56 templateUrl: "html/bondSuccess.html"
57 })
58 .state('rentDetail',{
59 url: "/rentDetail",
60 templateUrl: "html/rentDetail.html"
61 })
62 .state('unusual',{
63 url: "/unusual/:id",
64 templateUrl: "html/unusual.html"
65 })
66 .state('rechargeList',{
67 url: "/rechargeList",
68 templateUrl: "html/rechargeList.html"
69 })
70
71
72
73 }])
74 app.run(['globalService', function(globalService) {
75 globalService.init();
76 var loading = document.getElementById("appLoadingIndicator");
77 loading.style.display = "none";
78 }])
79 //$(window).bind("load resize",function(){
80 // $("body").css({zoom:$(window).width()/320,visibility:"visible"});
81 //});
...\ No newline at end of file ...\ No newline at end of file
1 (function($){function CircleProgress(config){this.init(config)}CircleProgress.prototype={value:0.0,size:200.0,startAngle:-Math.PI,thickness:'auto',fill:{gradient:['#3aeabb','#fdd250']},emptyFill:'rgba(0, 0, 0, .1)',animation:{duration:1200,easing:'circleProgressEasing'},animationStartValue:0.0,reverse:false,lineCap:'butt',constructor:CircleProgress,el:null,canvas:null,ctx:null,radius:0.0,arcFill:null,lastFrameValue:0.0,init:function(config){$.extend(this,config);this.radius=this.size/2;this.initWidget();this.initFill();this.draw()},initWidget:function(){var canvas=this.canvas=this.canvas||$('<canvas>').prependTo(this.el)[0];canvas.width=this.size;canvas.height=this.size;this.ctx=canvas.getContext('2d')},initFill:function(){var self=this,fill=this.fill,ctx=this.ctx,size=this.size;if(!fill)throw Error("The fill is not specified!");if(fill.color)this.arcFill=fill.color;if(fill.gradient){var gr=fill.gradient;if(gr.length==1){this.arcFill=gr[0]}else if(gr.length>1){var ga=fill.gradientAngle||0,gd=fill.gradientDirection||[size/2*(1-Math.cos(ga)),size/2*(1+Math.sin(ga)),size/2*(1+Math.cos(ga)),size/2*(1-Math.sin(ga))];var lg=ctx.createLinearGradient.apply(ctx,gd);for(var i=0;i<gr.length;i++){var color=gr[i],pos=i/(gr.length-1);if($.isArray(color)){pos=color[1];color=color[0]}lg.addColorStop(pos,color)}this.arcFill=lg}}if(fill.image){var img;if(fill.image instanceof Image){img=fill.image}else{img=new Image();img.src=fill.image}if(img.complete)setImageFill();else img.onload=setImageFill}function setImageFill(){var bg=$('<canvas>')[0];bg.width=self.size;bg.height=self.size;bg.getContext('2d').drawImage(img,0,0,size,size);self.arcFill=self.ctx.createPattern(bg,'no-repeat');self.drawFrame(self.lastFrameValue)}},draw:function(){if(this.animation)this.drawAnimated(this.value);else this.drawFrame(this.value)},drawFrame:function(v){this.lastFrameValue=v;this.ctx.clearRect(0,0,this.size,this.size);this.drawEmptyArc(v);this.drawArc(v)},drawArc:function(v){var ctx=this.ctx,r=this.radius,t=this.getThickness(),a=this.startAngle;ctx.save();ctx.beginPath();if(!this.reverse){ctx.arc(r,r,r-t/2,a,a+Math.PI*2*v)}else{ctx.arc(r,r,r-t/2,a-Math.PI*2*v,a)}ctx.lineWidth=t;ctx.lineCap=this.lineCap;ctx.strokeStyle=this.arcFill;ctx.stroke();ctx.restore()},drawEmptyArc:function(v){var ctx=this.ctx,r=this.radius,t=this.getThickness(),a=this.startAngle;if(v<1){ctx.save();ctx.beginPath();if(v<=0){ctx.arc(r,r,r-t/2,0,Math.PI*2)}else{if(!this.reverse){ctx.arc(r,r,r-t/2,a+Math.PI*2*v,a)}else{ctx.arc(r,r,r-t/2,a,a-Math.PI*2*v)}}ctx.lineWidth=t;ctx.strokeStyle=this.emptyFill;ctx.stroke();ctx.restore()}},drawAnimated:function(v){var self=this,el=this.el;el.trigger('circle-animation-start');$(this.canvas).stop(true,true).css({animationProgress:0}).animate({animationProgress:1},$.extend({},this.animation,{step:function(animationProgress){var stepValue=self.animationStartValue*(1-animationProgress)+v*animationProgress;self.drawFrame(stepValue);el.trigger('circle-animation-progress',[animationProgress,stepValue])},complete:function(){el.trigger('circle-animation-end')}}))},getThickness:function(){return $.isNumeric(this.thickness)?this.thickness:this.size/14}};$.circleProgress={defaults:CircleProgress.prototype};$.easing.circleProgressEasing=function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t*t+b;return c/2*((t-=2)*t*t+2)+b};$.fn.circleProgress=function(config){var dataName='circle-progress';if(config=='widget'){var data=this.data(dataName);return data&&data.canvas}return this.each(function(){var el=$(this),instance=el.data(dataName),cfg=$.isPlainObject(config)?config:{};if(instance){instance.init(cfg)}else{cfg.el=el;instance=new CircleProgress(cfg);el.data(dataName,instance)}})}})(jQuery);
1 ///<jscompress sourcefile="app.js" />
2 angular.module('myApp.services', ['LocalStorageModule']);
3 angular.module('myApp.directives', []);
4 var app = angular.module('myApp', [ "ui.router",'myApp.services', 'myApp.directives']);
5
6 app.config(['$stateProvider' , '$urlRouterProvider' , function($stateProvider, $urlRouterProvider){
7 $urlRouterProvider.otherwise("/main");
8 $stateProvider.state('main', {
9 url: "/main",
10 templateUrl: "html/main.html"
11 })
12 .state('login',{
13 url: "/login",
14 templateUrl: "html/login.html"
15 })
16 .state('trip',{
17 url: "/trip",
18 templateUrl: "html/trip.html",
19 controller: 'tripController'
20 })
21 .state('wallet',{
22 url: "/wallet",
23 templateUrl: "html/wallet.html"
24 })
25 .state('bond',{
26 url: "/bond/?longitude&latitude",
27 templateUrl: "html/bond.html"
28 })
29 .state('contact',{
30 url: "/contact",
31 templateUrl: "html/contact.html"
32 })
33 .state('opinion',{
34 url: "/opinion/?longitude&latitude",
35 templateUrl: "html/opinion.html"
36 })
37 .state('tripDetail',{
38 url: "/tripDetail/:orderId",
39 templateUrl: "html/tripDetail.html" ,
40 controller: 'tripDetailController'
41 })
42
43 .state('prepay',{
44 url: "/prepay",
45 templateUrl: "html/prepay.html"
46 })
47 .state('pay',{
48 url: "/pay",
49 templateUrl: "html/pay.html"
50 })
51 .state('bondPay',{
52 url: "/bondPay",
53 templateUrl: "html/bondPay.html"
54 })
55 .state('bondSuccess',{
56 url: "/bondSuccess",
57 templateUrl: "html/bondSuccess.html"
58 })
59 .state('rentDetail',{
60 url: "/rentDetail",
61 templateUrl: "html/rentDetail.html"
62 })
63 .state('unusual',{
64 url: "/unusual/:id",
65 templateUrl: "html/unusual.html"
66 })
67 .state('rechargeList',{
68 url: "/rechargeList",
69 templateUrl: "html/rechargeList.html"
70 })
71
72
73
74 }])
75 app.run(['globalService', function(globalService) {
76 globalService.init();
77 var loading = document.getElementById("appLoadingIndicator");
78 loading.style.display = "none";
79 }])
80 //$(window).bind("load resize",function(){
81 // $("body").css({zoom:$(window).width()/320,visibility:"visible"});
82 //});
83 ///<jscompress sourcefile="weixinConfig.js" />
84 /**
85 * Created by zhanghong on 15/3/8.
86 */
87 function weixinOptionMenuInit(appId, timestamp, nonceStr, signature){
88 try {
89 // wwsDebug.info("appId:" + appId);
90 // wwsDebug.info("timestamp:" + timestamp);
91 // wwsDebug.info("nonceStr:" + nonceStr);
92 // wwsDebug.info("signature:" + signature);
93 // alert("typeof wx.config " + typeof wx.config);
94 // if (wx) {
95 wx.config({
96 debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
97 appId: appId, // 必填,公众号的唯一标识
98 timestamp: timestamp, // 必填,生成签名的时间戳
99 nonceStr: nonceStr, // 必填,生成签名的随机串
100 signature: signature,// 必填,签名,见附录1
101 jsApiList: ['scanQRCode','getLocation'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
102 });
103 wx.error(function(res){
104 layer.open({
105 content:"微信扫码功能不能用,无法使用扫码租车",
106 time:1
107 });
108 // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
109
110 });
111 wx.ready(function(){
112 // alert('wx ready')
113 // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
114 wx.checkJsApi({
115 jsApiList: ['scanQRCode','getLocation'], // 需要检测的JS接口列表,所有JS接口列表见附录2,
116 success: function(res) {
117 if(res.checkResult.scanQRCode != true){
118 layer.open({
119 content: '您的微信版本太低,不支持扫码',
120 time:1
121 });
122
123 }
124 // 以键值对的形式返回,可用的api值true,不可用为false
125 // 如:{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"}
126 }
127 });
128 });
129 // }
130 }catch(exception){
131 // alert("exception " + exception)
132 layer.open({
133 content:"微信扫码功能异常,无法使用扫码租车",
134 time:1
135 });
136 }
137 }
138
139 function initWeixinMenu($http){
140 var url = encodeURIComponent(location.href.split('#')[0]);
141 //生产环境 wechat.api.dingdatech.com
142 $http.post("http://wechat.dy.dingdatech.com/wx/qrCodeParms",
143 {
144 webUrl : url
145 })
146 .success(function(data){
147 // alert(JSON.stringify(data) + ", with url : " + location.href.split('#')[0])
148 if(data){
149 weixinOptionMenuInit(data.appid, data.timestamp, data.noncestr, data.signature);
150 }
151 })
152 .error(function(arg1){
153 try {
154 layer.open({
155 content:"微信jssdk配置接口失败:" + JSON.stringify(arg1),
156 time:1
157 });
158 }catch(e){
159 layer.open({
160 content:"微信jssdk配置接口失败:" + arg1,
161 time:1
162 });
163 }
164 // alert(arg1);
165 });
166 }
167
168 ///<jscompress sourcefile="globalService.js" />
169
170 angular.module('myApp.services')
171 .service('globalService',
172 [ '$http', '$rootScope', 'localStorageService',
173 function($http, $rootScope ,localStorageService) {
174
175 var setHeaderToken = function (token){
176 $http.defaults.headers.common = {
177 "token": token ,
178 "version": "1.0.0" ,
179 "source" : "WX"
180 };
181 }
182 var init = function(){
183 $rootScope.params = {};
184 $rootScope.config = {};
185 $rootScope.data = {};
186 $rootScope.inited = true;
187 //--------------------自行车服务--------------
188 // 生产环境
189 var dingdaAPI = "http://bike.dy.dingdatech.com";
190 // 测试环境
191 //var dingdaAPI = "http://bike.api.dingdachuxing.com";
192 globalConfig.setParam("dingdaAPI", dingdaAPI);
193 //--------------------财务服务--------------
194 // 生产环境
195 var financeAPI = "http://finance.dy.dingdatech.com";
196 // 测试环境
197 //var financeAPI = "http://finance.api.dingdachuxing.com";
198 globalConfig.setParam("financeAPI", financeAPI);
199 //--------------------反馈服务--------------
200 // 生产环境
201 var feedbackAPI = "http://feedback.dy.dingdatech.com";
202 // 测试环境
203 //var feedbackAPI = "http://feedback.api.dingdachuxing.com";
204 globalConfig.setParam("feedbackAPI", feedbackAPI);
205 //--------------------认证服务--------------
206 // 生产环境
207 var dingdaLoginAPI = "http://auth.dy.dingdatech.com";
208 // 测试环境
209 //var dingdaLoginAPI = "http://auth.api.dingdachuxing.com";
210 globalConfig.setParam("dingdaLoginAPI", dingdaLoginAPI);
211
212 $rootScope.$watch("data.user",function(newVal, oldVal){
213 if(!newVal){
214 return;
215 }
216 if(newVal.token) {
217 setHeaderToken(newVal.token);
218 }
219 })
220
221 loadPersistData();
222 loadCityConfig();
223 loadPathParams();
224 initWeixinMenu($http);
225
226 }
227
228 var loadPersistData = function() {
229 var keys = localStorageService.keys();
230 for(var x in keys){
231 globalConfig.setData(keys[x], localStorageService.get(keys[x]));
232 }
233 if(globalConfig.getData("user")){
234 setHeaderToken(globalConfig.getData("user").token);
235 }
236
237 }
238
239 var loadPathParams = function() {
240 var url = window.location.href,
241 parts = url.split('?');
242 if(parts.length == 2){
243 var hash = parts[1].indexOf('#')
244 if(hash != -1){
245 parts[1] = parts[1].substring(0, hash)
246 }
247
248 var pairs = parts[1].split('&')
249 pairs.forEach(function(pair){
250 var kv = pair.split('=')
251 if(kv.length == 2){
252 globalConfig.setData(kv[0], kv[1]);
253 }
254 })
255 }
256
257 }
258
259 var loadCityConfig = function() {
260 // $http.get("js/service/city.json").success(function (data) {
261 // $rootScope.config.province = {};
262 // for (var i = 0; i < data.length; i++) {
263 // $rootScope.config.province[data[i].id] = data[i];
264 // };
265 // })
266 }
267
268 var globalConfig = {
269 init : init,
270 getParam : function(key){
271 return $rootScope.params[key];
272 },
273 setParam : function(key, value){
274 $rootScope.params[key] = value
275 },
276 getConfig : function(key){
277 return $rootScope.config[key];
278 },
279 setConfig : function(key, value){
280 $rootScope.config[key] = value;
281 },
282 getData : function(key){
283 return $rootScope.data[key];
284 },
285 setData : function(key, value){
286 $rootScope.data[key] = value;
287 },
288 saveData : function(key, value){
289 if(value){
290 this.setData(key, value)
291 }
292 localStorageService.set(key, value);
293 },
294 clearData : function(key){
295 this.setData(key, null);
296 localStorageService.set(key, null);
297 $http.defaults.headers.common = { };
298 }
299 }
300 return globalConfig;
301 }
302 ]
303 );
304 ///<jscompress sourcefile="dingdaService.js" />
305 angular.module('myApp.services')
306 .service( 'dingdaService', [ '$http','globalService',
307 function($http,globalService) {
308 return {
309 sendPhoneCode: function(phone , openId){
310 var url = globalService.getParam('dingdaLoginAPI') + '/login/sms?mobile=' + phone + '&openId=' + openId;
311 var res = $http.get(url).success(function(data, status) {
312 }).error(function(data, status) {
313 alert(data.meta.message)
314 });
315 return res;
316 },
317 verifyPhoneCode : function(phone , code){
318 var url = globalService.getParam('dingdaLoginAPI') + '/login/sms?mobile=' + phone + '&code=' + code;
319 var res = $http.post(url , {
320 } , {
321 }).success(function(data, status) {
322
323 }).error(function(data, status) {
324 alert(data.meta.message)
325 });
326 return res;
327 },
328 getStationList : function(longitude , latitude){
329 var url = globalService.getParam('dingdaAPI') + '/service/bicycle/stations?longitude=' + longitude
330 + '&latitude=' + latitude;
331 var res = $http.get(url).success(function(data, status) {
332 }).error(function(data, status) {
333 alert(data.meta.message)
334 });
335 return res;
336 },
337 getStationById : function(id){
338 var url = globalService.getParam('dingdaAPI') + '/service/bicycle/stations/' + id;
339 var res = $http.get(url).success(function(data, status) {
340 }).error(function(data, status) {
341 alert(data.meta.message)
342 });
343 return res;
344 },
345 getUnfinishedOrder : function(){
346 var url = globalService.getParam('dingdaAPI') + '/service/bicycle/orders/unfinished';
347 var res = $http.get(url).success(function(data, status) {
348 }).error(function(data, status) {
349 alert(data.meta.message)
350 });
351 return res;
352 },
353 verifyScanCode : function(code){
354 var url = globalService.getParam('dingdaAPI') + '/service/bicycle/order?code=' + code;
355 var res = $http.post(url , { }).success(function(data, status) {
356
357 }).error(function(data, status) {
358 alert(data.meta.message)
359 });
360 return res;
361 },
362 getOrderRealTimeInfo : function(id){
363 var url = globalService.getParam('dingdaAPI') + '/service/bicycle/orders/detail/' + id;
364 var res = $http.get(url).success(function(data, status) {
365 }).error(function(data, status) {
366 alert(data.meta.message)
367 });
368 return res;
369 },
370 getOrderList : function(page){
371 var url = globalService.getParam('dingdaAPI') + '/service/bicycle/orders?pageSize=10&pageNum=' + page;
372 var res = $http.get(url).success(function(data, status) {
373 }).error(function(data, status) {
374 alert(data.meta.message)
375 });
376 return res;
377 },
378 getOrderFinishInfo : function(id){
379 var url = globalService.getParam('dingdaAPI') + '/service/bicycle/orders/' + id;
380 var res = $http.get(url).success(function(data, status) {
381 }).error(function(data, status) {
382 alert(data.meta.message)
383 });
384 return res;
385 },
386 setOrderFinish : function(id){
387 var url = globalService.getParam('dingdaAPI') + '/service/bicycle/order/finish/' + id;
388 var res = $http.post(url , {}).success(function(data, status) {
389 }).error(function(data, status) {
390 alert(data.meta.message)
391 });
392 return res;
393 },
394 payWX : function(id , payInfo) {
395 var url = globalService.getParam('financeAPI') + '/service/bill/wx/' + id;
396 var res = $http.post(url , payInfo).success(function(data, status) {
397
398 }).error(function(data, status) {
399 alert(data.meta.message)
400 });
401 return res;
402 },
403 getWallet : function() {
404 var url = globalService.getParam('financeAPI') + '/service/balance';
405 var res = $http.get(url).success(function(data, status) {
406 }).error(function(data, status) {
407 alert(data.meta.message)
408 });
409 return res;
410 },
411 payWallet : function(payInfo) {
412 var url = globalService.getParam('financeAPI') + '/service/balance/wx';
413 var res = $http.post(url , payInfo).success(function(data, status) {
414 }).error(function(data, status) {
415 alert(data.meta.message)
416 });
417 return res;
418 },
419 getWalletHistory : function(page) {
420 var url = globalService.getParam('financeAPI') + '/service/balances?pageSize=10&pageNum' + page;
421 var res = $http.get(url).success(function(data, status) {
422 }).error(function(data, status) {
423 alert(data.meta.message)
424 });
425 return res;
426 },
427 getBond : function(longitude , latitude) {
428 var url = globalService.getParam('dingdaAPI') + '/service/bicycle/deposit?longitude=' + longitude
429 + '&latitude=' + latitude;
430 var res = $http.get(url).success(function(data, status) {
431 }).error(function(data, status) {
432 alert(data.meta.message)
433 });
434 return res;
435 },
436 payBond : function(payInfo) {
437 var url = globalService.getParam('financeAPI') + '/service/bail/wx';
438 var res = $http.post(url , payInfo).success(function(data, status) {
439 }).error(function(data, status) {
440 alert(data.meta.message)
441 });
442 return res;
443 },
444 returnBond : function(page) {
445 var url = globalService.getParam('dingdaAPI') + '/service/bicycle/deposit';
446 var res = $http.delete(url).success(function(data, status) {
447 }).error(function(data, status) {
448 alert(data.meta.message)
449 });
450 return res;
451 },
452 comment : function(message) {
453 var url = globalService.getParam('feedbackAPI') + '/service/comments';
454 var res = $http.post(url , message).success(function(data, status) {
455 }).error(function(data, status) {
456 alert(data.meta.message)
457 });
458 return res;
459 },
460 getVersion : function() {
461 var url = globalService.getParam('dingdaAPI') + '/service/version';
462 var res = $http.get(url).success(function(data, status) {
463 }).error(function(data, status) {
464 alert(data.meta.message)
465 });
466 return res;
467 }
468 }
469 }])
470 ///<jscompress sourcefile="wechatPaymentService.js" />
471 angular.module('myApp.services')
472 .service('wechatPayment',['$http', '$q', '$rootScope',function($http, $q, $rootScope) {
473
474 //var host = 'http://finance.api.dingdachuxing.com/service';
475 var host = 'http://finance.dy.dingdatech.com/service';
476
477
478
479 //调用微信JS api 支付
480 var jsApiCall = function (sign, q) {
481 WeixinJSBridge.invoke(
482 'getBrandWCPayRequest', {
483 appId : sign.appId,
484 timeStamp : sign.timeStamp,
485 nonceStr : sign.nonceStr,
486 package : sign.packageStr,
487 signType : sign.signType,
488 paySign : sign.paySign
489 },
490 function (res) {
491 if (res.err_msg == 'get_brand_wcpay_request:ok') {
492 layer.open({
493 content: '支付成功!',
494 time:1
495 });
496 q.resolve(res.err_msg);
497 return;
498 } else if (res.err_msg == 'get_brand_wcpay_request:fail') {
499 alert("支付失败:" + JSON.stringify(res))
500 layer.open({
501 content: '支付失败!',
502 time:1
503 });
504 } else if (res.err_msg == 'get_brand_wcpay_request:cancel') {
505 layer.open({
506 content: '支付取消!',
507 time:1
508 });
509 } else {
510 layer.open({
511 content: '支付异常,'+res.err_msg,
512 time:1
513 });
514 }
515 q.reject(res.err_msg);
516 // WeixinJSBridge.log(res.err_msg);
517 // console.error(res.err_msg);
518 }
519 );
520 }
521
522 var callUnifiedOrderApi = function(url, data){
523 var q = $q.defer();
524 $http.post(url, data)
525 .success(function (data) {
526 if(data.meta.code == 200) {
527 // alert('支付签名返回:' + JSON.stringify(data));
528 jsApiCall(data.data.wechatDto, q);
529 }else{
530 layer.open({
531 content:'支付签名失败:code '+data.meta.code+","+ data.meta.message,
532 time:1
533 });
534 q.reject(data.meta.message)
535 }
536 })
537
538 return q.promise;
539 }
540
541 return {
542 /**
543 * 租车付款
544 */
545 callRentPay: function (orderId, amount) {
546 return callUnifiedOrderApi(host + '/bill/wx/' + orderId, {
547 amount : amount,
548 body : "租车租金",
549 type : 101
550 });
551 },
552 /**
553 * 保证金充值
554 * @param amount
555 */
556 callDepositPay : function(amount){
557 return callUnifiedOrderApi(host + "/bail/wx", {
558 amount : amount,
559 body : "保证金充值",
560 type : 101
561 });
562 },
563 /**
564 * 钱包充值
565 * @param amount
566 */
567 callBalanceRecharge : function(amount){
568 return callUnifiedOrderApi(host + "/balance/wx", {
569 amount : amount,
570 body : "钱包充值",
571 type : 101
572 });
573 }
574 }
575 }]);
576
577 ///<jscompress sourcefile="mapController.js" />
578 angular.module('myApp')
579 .controller('mapController',['$scope','$rootScope','dingdaService','globalService','$state',function($scope,$rootScope,dingdaService,globalService,$state){
580 var myMarker;
581 var markers = [];
582 var overlays = [];
583 var walking;
584 var infoControl;
585 var scanControl;
586 var map;
587 var endPosition;
588 var polyline;
589
590 $rootScope.currentPoint = {};
591
592 var rendBike = function() {
593 scanControl.hide();
594 infoControl.show();
595 }
596
597 var returnBike = function() {
598 scanControl.show();
599 infoControl.hide();
600 }
601
602 $scope.$watch("isRendBike",function(newVal, oldVal){
603 if(newVal === oldVal){
604 return;
605 }
606 if(newVal) {
607 rendBike();
608 } else {
609 returnBike();
610 }
611 })
612
613 var initMap = function() {
614 map = new BMap.Map("mapContainer");
615 map.centerAndZoom(new BMap.Point(120.124421, 30.279879), 15);
616
617 map.addEventListener("click", function() {
618
619 for(var i = 0 ; i < overlays.length ; i++) {
620 overlays[i].hide();
621 }
622 $scope.$apply(function() {
623 $rootScope.openMenu = false;
624 })
625 });
626 initMapControl(map);
627 }
628
629 var onSearchComplete = function(result) {
630 map.removeOverlay(polyline);
631 var route = result.tr[0].ek[0].vr;
632 route.unshift(myMarker.position);
633 route.push(endPosition)
634 polyline = new BMap.Polyline(route);
635 polyline.setStrokeColor("#36D1E7");
636 polyline.setStrokeOpacity(1);
637 polyline.setStrokeWeight(3);
638 polyline.setStrokeStyle("solid");
639 map.addOverlay(polyline);
640 }
641
642 var initMarker = function(point) {
643 map.setCenter(point);
644 walking = new BMap.WalkingRoute(map, {renderOptions:{map: null, autoViewport: true}})
645 walking.setSearchCompleteCallback(onSearchComplete);
646 initMyMarker(point , map);
647 refreshNewPoints(point);
648 }
649
650 var refreshNewPoints = function(point) {
651
652 // if(!globalService.getData('user').token) {
653 // return;
654 // }
655
656 dingdaService.getStationList(point.lng , point.lat).success(function(data , status) {
657 // dingdaService.getStationList(120.18893141 , 30.2284141).success(function(data , status) {
658 // alert(JSON.stringify(data))
659 // console.log(JSON.stringify(data))
660 initMarkers(data.data.stationLists , map);
661 }).error(function(data , status) {
662
663 })
664 }
665
666 var initMyMarker = function(point , map) {
667
668 $rootScope.isLoadFinish = true;
669 myMarker = new MyMark(point);
670 map.addOverlay(myMarker);
671 }
672
673 var initMarkers = function(points , map) {
674 for(var i = 0 ; i < markers.length ; i++) {
675 // document.getElementById("mapContainer").removeChild(markers[i].div);
676 map.removeOverlay(markers[i]);
677 markers[i].div.parentElement.removeChild(markers[i].div);
678 // document.getElementById("mapContainer").removeChild(overlays[i].div);
679 map.removeOverlay(overlays[i]);
680 overlays[i].div.parentElement.removeChild(overlays[i].div);
681 }
682 markers = [];
683 overlays = [];
684 for(var i = 0 ; i < points.length ; i++) {
685 var marker = new SiteOverlay(new BMap.Point(points[i].longitude, points[i].latitude) , i , points[i]);
686 map.addOverlay(marker);
687 markers.push(marker);
688 }
689
690 }
691
692 function RelocateControl(){
693 this.defaultAnchor = BMAP_ANCHOR_BOTTOM_LEFT;
694 this.defaultOffset = new BMap.Size(0, 0);
695 }
696
697 function ScanControl(){
698 this.defaultAnchor = BMAP_ANCHOR_BOTTOM_LEFT;
699 this.defaultOffset = new BMap.Size(0, 0);
700 }
701
702 function InfoControl(){
703 this.defaultAnchor = BMAP_ANCHOR_BOTTOM_LEFT;
704 this.defaultOffset = new BMap.Size(0, 0);
705 }
706
707 function MenuControl(){
708 this.defaultAnchor = BMAP_ANCHOR_TOP_LEFT;
709 this.defaultOffset = new BMap.Size(0, 13);
710 }
711
712 function RingControl(){
713 this.defaultAnchor = BMAP_ANCHOR_TOP_LEFT;
714 this.defaultOffset = new BMap.Size(0, 66);
715 }
716
717 var initMapControl = function(map) {
718 ScanControl.prototype = new BMap.Control();
719 ScanControl.prototype.initialize = function(map){
720 var scanControl = document.createElement("div");
721 scanControl.className = "scanControl";
722
723 var scanControlContainer = document.createElement("div");
724 scanControlContainer.className = "scanControlContainer";
725
726 var scanControlContent = document.createElement("div");
727 scanControlContent.className = "scanControlContent";
728
729 var img = document.createElement("img");
730 img.className = "spanResize";
731 img.src = "images/scancode.png";
732
733 scanControlContent.innerHTML = img.outerHTML + " 扫码租车";
734
735 scanControlContainer.onclick = function() {
736 $scope.$apply(function() {
737 $rootScope.openScan = true;
738 })
739 }
740 scanControlContainer.appendChild(scanControlContent);
741 scanControl.appendChild(scanControlContainer);
742
743 map.getContainer().appendChild(scanControl);
744 return scanControl;
745 }
746 scanControl = new ScanControl();
747 map.addControl(scanControl);
748
749 InfoControl.prototype = new BMap.Control();
750 InfoControl.prototype.initialize = function(map){
751 var infoControl = document.createElement("div");
752 infoControl.className = "scanControl";
753
754 var infoControlContainer = document.createElement("div");
755 infoControlContainer.className = "scanControlContainer";
756
757 var infoControlContent = document.createElement("div");
758 infoControlContent.className = "scanControlContent";
759
760 var img = document.createElement("img");
761 img.className = "spanResize";
762 img.src = "images/details.png";
763
764 infoControlContent.innerHTML = img.outerHTML + " 租车详情";
765
766 infoControlContainer.onclick = function() {
767 $scope.$apply(function() {
768 $rootScope.openDetail = true;
769 })
770 }
771 infoControlContainer.appendChild(infoControlContent);
772 infoControl.appendChild(infoControlContainer);
773
774 map.getContainer().appendChild(infoControl);
775 return infoControl;
776 }
777 infoControl = new InfoControl();
778 map.addControl(infoControl);
779 infoControl.hide();
780
781 RelocateControl.prototype = new BMap.Control();
782 RelocateControl.prototype.initialize = function(map){
783 var relocateControl = document.createElement("div");
784 relocateControl.className = "locateControlContainer";
785 relocateControl.index = 1;
786
787 var relocateControlContent = document.createElement("div");
788 relocateControlContent.className = "locateControlContent";
789 var relocateControlContentCenter = document.createElement("div");
790 relocateControlContentCenter.className = "locateControlContentCenter";
791 relocateControlContent.appendChild(relocateControlContentCenter);
792 relocateControl.appendChild(relocateControlContent);
793
794 relocateControl.onclick = function() {
795 map.panTo(myMarker.position);
796 map.setZoom(15);
797 }
798 map.getContainer().appendChild(relocateControl);
799 return relocateControl;
800 }
801 var relocateControl = new RelocateControl();
802 map.addControl(relocateControl);
803
804
805 MenuControl.prototype = new BMap.Control();
806 MenuControl.prototype.initialize = function(map){
807 var menuControl = document.createElement("div");
808 menuControl.className = "menuControl";
809 menuControl.index = 1;
810
811 var menuControlContent = document.createElement("img");
812 menuControlContent.src = "images/me.png";
813
814 menuControl.appendChild(menuControlContent);
815
816 menuControl.onclick = function() {
817 $scope.$apply(function() {
818 // alert(!globalService.getData("user"))
819 if(!globalService.getData("user")) {
820 $state.go('login');
821 return;
822 }
823 $rootScope.openMenu = !$rootScope.openMenu;
824 })
825 }
826 map.getContainer().appendChild(menuControl);
827 return menuControl;
828 }
829 var menuControl = new MenuControl();
830 map.addControl(menuControl);
831
832 RingControl.prototype = new BMap.Control();
833 RingControl.prototype.initialize = function(map){
834 var ringControl = document.createElement("div");
835 ringControl.className = "menuControl";
836 ringControl.index = 1;
837
838 var ringControlContent = document.createElement("img");
839 ringControlContent.src = "images/new.png";
840
841 ringControl.appendChild(ringControlContent);
842
843 ringControl.onclick = function() {
844 $scope.$apply(function() {
845 $rootScope.openRing = !$rootScope.openRing;
846 })
847 }
848 map.getContainer().appendChild(ringControl);
849 return ringControl;
850 }
851 // var ringControl = new RingControl();
852 // map.addControl(ringControl);
853
854 var opts = {
855 type: BMAP_NAVIGATION_CONTROL_SMALL,
856 anchor : BMAP_ANCHOR_BOTTOM_RIGHT
857 }
858 map.addControl(new BMap.NavigationControl(opts));
859 }
860
861 var initLocation = function(isForce) {
862 // var options = {
863 // enableHighAccuracy:true,
864 // maximumAge:1000
865 // }
866
867 getlocation();
868 function getlocation() {
869 wx.getLocation({
870 type: 'gcj02', // 默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02'
871 success: function (res) {
872 onSuccess(res)
873 }
874 });
875 }
876
877
878 function onSuccess(position){
879 var longitude = position.longitude;
880 var latitude = position.latitude;
881 $rootScope.currentPoint = {
882 longitude : longitude ,
883 latitude : latitude
884 }
885 var convertor = new BMap.Convertor();
886 var pointArr = [];
887 pointArr.push(new BMap.Point(longitude, latitude));
888 convertor.translate(pointArr, 3, 5, function(data){
889 var point = data.points[0];
890 // var point = new BMap.Point(120.1965, 30.23048);
891 if(!myMarker) {
892 initMarker(point);
893 // setInterval(function(){
894 // if(!myMarker) return;
895 // getlocation();
896 //// navigator.geolocation.getCurrentPosition(onSuccess,onError,options);
897 // } , 1000 * 60 * 60);
898 } else {
899 myMarker.position = point;
900 if(isForce) {
901 var map = myMarker.getMap();
902 map.panTo(point);
903 }
904 refreshNewPoints(point);
905 }
906 })
907 }
908
909 // function onError(error){
910 // switch(error.code){
911 // case 1:
912 // alert("位置服务被拒绝");
913 // break;
914 // case 2:
915 // alert("暂时获取不到位置信息");
916 // break;
917 // case 3:
918 // alert("获取信息超时");
919 // break;
920 // case 4:
921 // alert("未知错误");
922 // break;
923 // }
924 // initLocation();
925 // }
926 // if (navigator.geolocation) {
927 // navigator.geolocation.getCurrentPosition(onSuccess,onError,options);
928 // } else {
929 // alert("无法获取地理位置信息");
930 // }
931 }
932
933 function CustomOverlay(position, index , info) {
934 this.index = index;
935 this.position = position;
936 this.info = info;
937 this.isDisplay = false;
938 }
939
940 function SiteOverlay(position , index , info) {
941 this.index = index;
942 this.position = position;
943 this.info = info;
944 this.isDisplay = true;
945 }
946
947 function MyMark(position) {
948 this.position = position;
949 }
950
951 var initCustomOverlay = function() {
952 CustomOverlay.prototype = new BMap.Overlay();
953 //定义construct,实现这个接口来初始化自定义的Dom元素
954 CustomOverlay.prototype.initialize = function(map) {
955 this.map = map;
956 var container = this.div = document.createElement("div");
957 container.className = "overlayContainer";
958
959 var leftPanel = document.createElement("div");
960 leftPanel.className = "overlayPanelLeft";
961 var leftPanelContentContainer = document.createElement("div");
962 leftPanelContentContainer.className = "overlayPanelLeftContentContainer";
963 var leftPanelContent = document.createElement("div");
964 leftPanelContent.className = "overlayPanelLeftContent";
965 leftPanelContent.innerText = this.info.name;
966
967 leftPanelContentContainer.appendChild(leftPanelContent);
968 leftPanel.appendChild(leftPanelContentContainer);
969
970 var centerPanel = document.createElement("div");
971 centerPanel.className = "overlayPanelCenter";
972 var centerPanelContentTop = document.createElement("div");
973 centerPanelContentTop.className = "overlayPanelCenterContent overlayPanelCenterContentTop";
974 if(!$scope.isRendBike) {
975 centerPanelContentTop.className += " act";
976 }
977 centerPanelContentTop.innerText = "可借:" + this.info.enHireNum;
978 var centerPanelContentBottom = document.createElement("div");
979 centerPanelContentBottom.className = "overlayPanelCenterContent overlayPanelCenterContentBottom";
980 if($scope.isRendBike) {
981 centerPanelContentBottom.className += " act";
982 }
983 centerPanelContentBottom.innerText = "可还:" + this.info.disHireNum;
984
985 centerPanel.appendChild(centerPanelContentTop);
986 centerPanel.appendChild(centerPanelContentBottom);
987
988 var rightPanel = document.createElement("div");
989 rightPanel.className = "overlayPanelRight";
990
991 var rightPanelContentContainer = document.createElement("div");
992 rightPanelContentContainer.className = "overlayPanelRightContentContainer";
993 var rightPanelContent = document.createElement("div");
994 rightPanelContent.className = "overlayPanelRightContent";
995
996 rightPanelContentContainer.appendChild(rightPanelContent);
997 rightPanel.appendChild(rightPanelContentContainer);
998
999
1000 var corner = document.createElement("img");
1001 corner.className = "corner";
1002 corner.src = "images/triangle.png"
1003
1004 leftPanel.appendChild(centerPanel);
1005 container.appendChild(leftPanel);
1006 container.appendChild(rightPanel);
1007 container.appendChild(corner)
1008 //将dom添加到覆盖物层
1009 var panes = map.getPanes();
1010 var self = this;
1011
1012 rightPanel.onclick = function() {
1013 walking.clearResults();
1014 walking.search(myMarker.position, self.position);
1015 endPosition = self.position;
1016 }
1017
1018
1019 rightPanel.addEventListener("touchend", function() {
1020 rightPanel.onclick();
1021
1022 });
1023 //设置panes的层级,overlayMouseTarget可接收点击事件
1024 panes.labelPane.appendChild(container);
1025
1026 }
1027 //实现draw接口来绘制和更新自定义的dom元素
1028 CustomOverlay.prototype.draw = function() {
1029 var pixel = this.map.pointToOverlayPixel(this.position);
1030 var divStyle = this.div.style;
1031 divStyle.left = pixel.x - 90 + "px";
1032 divStyle.top = pixel.y - 70 + "px";
1033 }
1034
1035 CustomOverlay.prototype.show = function(info) {
1036 if(info) {
1037 this.info = info;
1038 var topEle = this.div.getElementsByClassName("overlayPanelCenterContentTop");
1039 topEle[0].innerText = "可借:" + info.enHireNum;
1040 var bottomEle = this.div.getElementsByClassName("overlayPanelCenterContentBottom");
1041 bottomEle[0].innerText = "可还:" + info.disHireNum;
1042 } else {
1043 this.div.style.display = "block";
1044 this.isDisplay = true;
1045 var topEle = this.div.getElementsByClassName("overlayPanelCenterContentTop");
1046 topEle[0].innerText = "可借:0";
1047 var bottomEle = this.div.getElementsByClassName("overlayPanelCenterContentBottom");
1048 bottomEle[0].innerText = "可还:0";
1049 }
1050
1051 }
1052
1053 CustomOverlay.prototype.hide = function() {
1054 this.div.style.display = "none";
1055 this.isDisplay = false;
1056 }
1057 SiteOverlay.prototype = new BMap.Overlay();
1058 //定义construct,实现这个接口来初始化自定义的Dom元素
1059 SiteOverlay.prototype.initialize = function(map) {
1060 this.map = map;
1061 var container = this.div = document.createElement("div");
1062 container.className = "siteOverlay";
1063 var img = document.createElement("img");
1064 img.src = "images/site.png";
1065 container.appendChild(img);
1066 //将dom添加到覆盖物层
1067 var panes = map.getPanes();
1068
1069 var self = this;
1070 var overlay = new CustomOverlay(self.position, self.index , self.info);
1071 overlays.push(overlay);
1072 map.addOverlay(overlay);
1073 container.onclick = function() {
1074 map.panTo(self.position);
1075 for(var i = 0 ; i < overlays.length ; i++) {
1076 overlays[i].hide();
1077 }
1078 if(overlay.isDisplay) {
1079 overlay.hide();
1080 } else {
1081 setTimeout(function(){
1082 overlay.show();
1083 } , 100);
1084 // var t1 = new Date().getTime();
1085 dingdaService.getStationById(self.info.id).success(
1086 function(data , status) {
1087 // alert(JSON.stringify(data.data) + " , Cost time : " + (new Date().getTime() - t1))
1088
1089 setTimeout(function(){
1090 overlay.show(data.data.station);
1091 } , 100);
1092 }
1093 );
1094
1095 }
1096
1097 }
1098
1099 container.addEventListener("touchend", function() {
1100 container.onclick();
1101 });
1102 //设置panes的层级,overlayMouseTarget可接收点击事件
1103 panes.labelPane.appendChild(container);
1104
1105 }
1106 //实现draw接口来绘制和更新自定义的dom元素
1107 SiteOverlay.prototype.draw = function() {
1108 var pixel = this.map.pointToOverlayPixel(this.position);
1109 // alert(JSON.stringify(pixel))
1110 var divStyle = this.div.style;
1111 divStyle.left = pixel.x - 13.5 + "px";
1112 divStyle.top = pixel.y - 13.5 + "px";
1113 }
1114
1115 SiteOverlay.prototype.show = function() {
1116 this.div.style.display = "block";
1117 this.isDisplay = true;
1118 }
1119
1120 SiteOverlay.prototype.hide = function() {
1121 this.div.style.display = "none";
1122 this.isDisplay = false;
1123 }
1124
1125 MyMark.prototype = new BMap.Overlay();
1126 //定义construct,实现这个接口来初始化自定义的Dom元素
1127 MyMark.prototype.initialize = function(map) {
1128 this.map = map;
1129 var container = this.div = document.createElement("div");
1130 container.className = "myMarker";
1131 var img = document.createElement("img");
1132 img.src = "images/myposition.png";
1133 container.appendChild(img);
1134 //将dom添加到覆盖物层
1135 var panes = map.getPanes();
1136
1137 //设置panes的层级,overlayMouseTarget可接收点击事件
1138 panes.labelPane.appendChild(container);
1139
1140 }
1141 //实现draw接口来绘制和更新自定义的dom元素
1142 MyMark.prototype.draw = function() {
1143 var pixel = this.map.pointToOverlayPixel(this.position);
1144 // alert(JSON.stringify(pixel))
1145 var divStyle = this.div.style;
1146 divStyle.left = pixel.x - 25 + "px";
1147 divStyle.top = pixel.y - 37 + "px";
1148 }
1149
1150 }
1151
1152 // mui.init();
1153
1154 initCustomOverlay();
1155 initMap();
1156 wx.ready(function() {
1157 initLocation();
1158 })
1159
1160 }]);
1161 ///<jscompress sourcefile="opinionController.js" />
1162 angular.module('myApp')
1163 .controller('opinionController',['$scope','$rootScope','dingdaService','$state','globalService','$stateParams',
1164 function($scope,$rootScope,dingdaService,$state,globalService,$stateParams){
1165
1166 $scope.opinion = "";
1167
1168 $scope.submit = function() {
1169 if($scope.opinion.length == 0) {
1170 return;
1171 }
1172 if($scope.opinion.length > 200) {
1173 layer.open({
1174 content: "超出字数限制",
1175 time:2
1176 });
1177 } else {
1178 var phoneType = navigator.userAgent.match(/\(.*?\)/);
1179 var wx = navigator.userAgent.match(/MicroMessenger\/.*?[ ]/);
1180
1181 // alert(phoneType)
1182 var data = {
1183 content : $scope.opinion ,
1184 latitude : $stateParams.latitude ,
1185 longitude : $stateParams.longitude ,
1186 phoneType : phoneType[0] ,
1187 systemType : wx[0]
1188 }
1189
1190
1191 dingdaService.comment(data).success(function(data , status) {
1192 if(data.meta.code != 200) {
1193 layer.open({
1194 content: data.meta.message,
1195 time:2
1196 });
1197 return;
1198 }
1199 layer.open({
1200 content: "评论成功",
1201 time:2
1202 });
1203 setTimeout(function() {
1204 location.reload();
1205 } , 300);
1206 history.back();
1207 }).error(function(data , status){
1208 alert(JSON.stringify(data))
1209
1210 })
1211 }
1212 }
1213
1214 }]);
1215 ///<jscompress sourcefile="payController.js" />
1216 angular.module('myApp')
1217 .controller('payController',['$scope','$rootScope','dingdaService','$state','globalService',function($scope,$rootScope,dingdaService,$state,globalService){
1218
1219 var init = function() {
1220 // globalService.init();
1221 }
1222
1223 // mui.init();
1224 init();
1225
1226 $scope.pay = function() {
1227 alert("充值")
1228 }
1229 }]);
1230 ///<jscompress sourcefile="prepayController.js" />
1231 angular.module('myApp')
1232 .controller('prepayController',['$scope','$rootScope','dingdaService','$state','globalService','wechatPayment',function($scope,$rootScope,dingdaService,$state,globalService,wechatPayment){
1233
1234 $scope.account = "";
1235
1236 var init = function() {
1237 // globalService.init();
1238 }
1239
1240 // mui.init();
1241 init();
1242 var ispay = false;
1243 $scope.prepay = function() {
1244 if(ispay) return;
1245 if($scope.account == ""){
1246 layer.open({
1247 content: '请输入充值金额',
1248 time:1
1249 });
1250 return;
1251 };
1252
1253 if($scope.account < 1) {
1254 layer.open({
1255 content: '充值金额至少为1元',
1256 time:1
1257 });
1258 return;
1259 }
1260 ispay = true;
1261 wechatPayment.callBalanceRecharge($scope.account)
1262 .then(function(result){
1263
1264 ispay = false;
1265 //支付成功
1266 // $state.go('wallet',{},{reload:true});
1267 window.history.back();
1268 }, function(errMsg){
1269
1270 ispay = false;
1271 //支付失败
1272 })
1273
1274 // alert("充值 : " + $scope.account + "元")
1275 }
1276 }]);
1277 ///<jscompress sourcefile="rechargeListController.js" />
1278 angular.module('myApp')
1279 .controller('rechargeListController',function($scope,$rootScope,$state){
1280 $scope.rechargeList = [
1281 {
1282 rechargeType:'微信充值',
1283 rechargeTime:'2016-01-17 16:16:23',
1284 rechargeMoney:100
1285 },
1286 {
1287 rechargeType:'微信充值',
1288 rechargeTime:'2016-01-17 16:16:23',
1289 rechargeMoney:200
1290 }
1291 ]
1292 })
1293 ///<jscompress sourcefile="rentDetailController.js" />
1294 angular.module('myApp')
1295 .controller('rentDetailController',['$scope','$rootScope','$state','dingdaService' ,function($scope,$rootScope,$state,dingdaService){
1296
1297 $scope.detail = {};
1298 $scope.costTime = "";
1299 var oldTime;
1300
1301 $scope.backHome = function(){
1302 $state.go('main');
1303 }
1304
1305 var init = function() {
1306 dingdaService.getUnfinishedOrder().success(function(data , status){
1307 // alert(JSON.stringify(data))
1308
1309 if(data.meta.code == 200) {
1310 if(!data.data.unfinishedOrder.id) {
1311 $state.go('main');
1312 }
1313 }
1314
1315 if(data.data.unfinishedOrder.status == 200) {
1316 $state.go('tripDetail' , { orderId : data.data.unfinishedOrder.id});
1317 }
1318
1319 dingdaService.getOrderRealTimeInfo(data.data.unfinishedOrder.id)
1320 .success(function(data , status){
1321 // alert(JSON.stringify(data))
1322
1323 $scope.datail = data.data.orderDetail;
1324
1325
1326 setInterval(function(){
1327 $scope.$apply(function(){
1328 var h = Math.floor($scope.datail.rentTime / 3600);
1329 var m = Math.floor($scope.datail.rentTime % 3600 / 60);
1330 var s = $scope.datail.rentTime % 60;
1331
1332 if(h < 10) {
1333 h = "0" + h;
1334 }
1335 if(m < 10) {
1336 m = "0" + m;
1337 }
1338 if(s < 10) {
1339 s = "0" + s;
1340 }
1341
1342 $scope.costTime = h + ":" + m + ":" + s;
1343 // console.log($scope.costTime)
1344 if($scope.datail.freeTime <= $scope.datail.rentTime) {
1345 $scope.detail.freeCountdown = "00:00";
1346 } else {
1347 var minute = Math.floor(( $scope.datail.freeTime - $scope.datail.rentTime ) / 60);
1348 if(minute < 10) {
1349 minute = "0" + minute;
1350 }
1351 var second = ( $scope.datail.freeTime - $scope.datail.rentTime ) % 60;
1352 if(second < 10) {
1353 second = "0" + second;
1354 }
1355 $scope.detail.freeCountdown = minute + ":" + second;
1356 }
1357 $scope.datail.rentTime++;
1358 })
1359 } , 1000);
1360
1361 }).error(function(data , status){
1362
1363 })
1364 }).error(function(data , status) {
1365 console.log(JSON.stringify(data))
1366 })
1367 }
1368
1369 init();
1370
1371 // ������ж�ʱ��
1372 setTimeout(function() {
1373 var href = new String(location.href);
1374 if(href.indexOf("rentDetail") > 0) location.reload();
1375 } , 30000)
1376
1377 $scope.alreadyBack = function(){
1378 $state.go('unusual' , { id : $scope.datail.id});
1379 }
1380
1381 }])
1382 ///<jscompress sourcefile="tripController.js" />
1383 angular.module('myApp')
1384 .controller('tripController',['$scope','$rootScope','$state','dingdaService' ,function($scope,$rootScope,$state,dingdaService){
1385
1386 $scope.tripList = [];
1387
1388 $scope.isLastPage = false;
1389
1390 $scope.getMoreOrders = function() {
1391
1392 dingdaService.getOrderList(page).success(function(data , status) {
1393 // alert(JSON.stringify(data))
1394 if(!data.data.orders || data.data.orders.length == 0) {
1395 $scope.isLastPage = true;
1396 return;
1397 }
1398 if(page == 1) {
1399 $scope.tripList = [];
1400 }
1401 for(var i = 0 ; i < data.data.orders.length;i++) {
1402 if(data.data.orders[i].status == 300) {
1403 data.data.orders[i].tripStatus = "已完成";
1404 } else {
1405 data.data.orders[i].tripStatus = "待支付";
1406 }
1407 $scope.tripList.push(data.data.orders[i]);
1408 }
1409 page++;
1410 // alert(JSON.stringify($scope.tripList))
1411 })
1412 }
1413
1414 var page = 1;
1415
1416 var init = function() {
1417 $scope.getMoreOrders();
1418 }
1419
1420 init();
1421
1422 $scope.viewTripDetail = function(index){
1423 $state.go('tripDetail' , { orderId : $scope.tripList[index].id });
1424 }
1425 }])
1426 ///<jscompress sourcefile="tripDetailController.js" />
1427 angular.module('myApp')
1428 .controller('tripDetailController', ['$scope', '$rootScope', '$state', 'dingdaService', '$stateParams', 'wechatPayment',
1429 function ($scope, $rootScope, $state, dingdaService, $stateParams, wechatPayment) {
1430 console.log('tripDetailController');
1431 /**
1432 * 2. 选择dom元素
1433 * */
1434 var tripDetail = $('.tripDetail');
1435 var winHeight = $(window).height();
1436 var tripHeight = tripDetail.height() + 40;
1437 var bottomPosition = $('.bottomPosition');
1438 if (winHeight >= tripHeight) {
1439 bottomPosition.css({'position': 'absolute', 'bottom': '0'})
1440 }
1441 /**
1442 * 3. 定义当前业务需要的数据
1443 * */
1444 $scope.tripDetail = {};
1445 $scope.needPay = false;
1446 $scope.backHome = function () {
1447 $state.go('main');
1448 }
1449 /**
1450 * 4. 支付逻辑
1451 * ispay 有无支付
1452 * isActive
1453 * choosePay 选择支付
1454 * */
1455 var ispay = false;
1456 $scope.isActive = true; // 这个是个关键 TODO 要更改的
1457 $scope.payType = 1;
1458 $scope.choosePay = function (index) {
1459 if ($($('.checkboxS')[index]).hasClass('checkboxTrue')) {
1460 // 如果要选择的项已经选中,不处理
1461 return
1462 } else {
1463 $scope.isActive = !$scope.isActive;
1464 }
1465
1466 $scope.payType = index;
1467 }
1468 $scope.goPay = function () {
1469 if (ispay) return;
1470 if ($scope.payType == 1) { //微信支付
1471
1472 ispay = true;
1473 wechatPayment.callRentPay($scope.tripDetail.id, $scope.tripDetail.total_fee)
1474 .then(function (result) {
1475 ispay = false;
1476 //支付成功
1477 init();
1478 // $state.go('bondSuccess');
1479 }, function (errMsg) {
1480 ispay = false;
1481 //支付失败
1482 // layer.open({
1483 // content: '支付失败,请重试',
1484 // time:2
1485 // });
1486 })
1487 } else {
1488 if ($scope.tripDetail.total_fee > $scope.balance) { //钱包支付判断余额是否足够支付
1489 layer.open({
1490 content: '您的余额不够是否去充值?', //小米下面按钮对齐
1491 btn: ['去充值', '取消'],
1492 shadeClose: false,
1493 yes: function (index) {
1494 $state.go('prepay', {}, {reload: false});
1495 layer.close(index);
1496 }, no: function (index) {
1497 layer.close(index);
1498 }
1499 });
1500 } else {
1501 // 余额支付
1502
1503 ispay = true;
1504 var data = {
1505 amount: $scope.tripDetail.total_fee,
1506 body: '余额支付',
1507 type: 102
1508 }
1509 dingdaService.payWX($scope.tripDetail.id, data)
1510 .success(function (data, status) {
1511 ispay = false;
1512 layer.open({
1513 content: '支付成功',
1514 time: 2
1515 });
1516 init();
1517 })
1518 .error(function (data) {
1519 ispay = false;
1520 layer.open({
1521 content: '支付失败',
1522 time: 2
1523 });
1524 })
1525 }
1526 }
1527 }
1528
1529 var orderid = $stateParams.orderId;
1530 /**
1531 * 1. init 获取初始化的数据 tripDetail 订单详情 needPay 是否需要发起支付
1532 * */
1533 var init = function () {
1534 dingdaService.getOrderFinishInfo(orderid).success(function (data, status) {
1535 $scope.tripDetail = data.data.order;
1536 // alert(JSON.stringify(data));
1537 if (data.data.order.status == 300 || $scope.tripDetail.total_fee == 0) {
1538 $scope.needPay = false;
1539 } else if (data.data.order.status == 200) {
1540 $scope.needPay = true;
1541 }
1542 })
1543
1544 dingdaService.getWallet(orderid).success(function (data, status) {
1545 $scope.balance = data.data.balance;
1546 })
1547 }
1548 init();
1549
1550 }])
1551 ///<jscompress sourcefile="unusualController.js" />
1552 angular.module('myApp')
1553 .controller('unusualController',['$scope','dingdaService','$state','$stateParams',function($scope,dingdaService,$state,$stateParams){
1554
1555 $scope.returnBike = function() {
1556 dingdaService.setOrderFinish($stateParams.id)
1557 .success(function(data , status) {
1558 if(data.meta.code == 200) {
1559 $state.go('tripDetail' , { orderId : $stateParams.id });
1560 } else if (data.meta.code == 203) {
1561 layer.open({
1562 content: "租车失败",
1563 time:2
1564 });
1565 $state.go('main');
1566 } else {
1567
1568 layer.open({
1569 content: "系统检测到您还未还车,请联系客服",
1570 time:2
1571 });
1572 }
1573 }).error(function(data , status) {
1574
1575 });
1576 }
1577
1578 $scope.hint = function() {
1579 layer.open({
1580 content: "请在主页面菜单中点击联系我们",
1581 time:2
1582 });
1583 }
1584
1585 }])
1586 ///<jscompress sourcefile="walletController.js" />
1587 angular.module('myApp')
1588 .controller('walletController',['$scope','$rootScope','dingdaService','$state','globalService',function($scope,$rootScope,dingdaService,$state,globalService){
1589
1590 $scope.balance = "";
1591
1592 var init = function() {
1593 dingdaService.getWallet().success(function(data , status){
1594 // alert(JSON.stringify(data.data))
1595 $scope.balance = data.data.balance;
1596
1597 })
1598 }
1599
1600 init();
1601
1602 $scope.prepay = function() {
1603 $state.go('prepay', { }, { reload: false });
1604 }
1605 }]);
1606 ///<jscompress sourcefile="bondController.js" />
1607 angular.module('myApp')
1608 .controller('bondController',['$scope' , '$rootScope', '$state' , 'dingdaService' , '$stateParams' ,
1609 function($scope,$rootScope,$state,dingdaService,$stateParams){
1610 $scope.goPay = function(){
1611 $state.go('bondPay');
1612 }
1613
1614 // function getUrl(name){
1615 // var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
1616 // var url = String(window.location);
1617 // var arr = url.split('?');
1618 // var str = arr[arr.length-1];
1619 // var r = str.match(reg);
1620 // if(r!=null)return unescape(r[2]); return null;
1621 // }
1622
1623 $scope.init = function(){
1624 var latitude = $stateParams.latitude;
1625 var longitude = $stateParams.longitude;
1626 dingdaService.getBond(longitude,latitude)
1627 .success(function(data){
1628 // alert(JSON.stringify(data))
1629 $scope.bondInfo = data.data;
1630 $rootScope.toPaid = data.data.toPaid;
1631 }).error(function(data){
1632 // alert(JSON.stringify(data))
1633 layer.open({
1634 content: '获取保证金失败,请刷新页面',
1635 time:2
1636 });
1637 })
1638 }
1639
1640 $scope.drawback = function(){
1641 dingdaService.getUnfinishedOrder().success(function(data , status){
1642 if(data.data.unfinishedOrder.id) {
1643
1644 layer.open({
1645 content: '还有未完成的订单,无法退还保证金',
1646 time:2
1647 });
1648 } else {
1649 layer.open({
1650 content: '您确定要退还保证金吗?',
1651 btn: ['确认', '取消'],
1652 shadeClose: false,
1653 yes: function(index){
1654 layer.close(index);
1655 dingdaService.returnBond()
1656 .success(function(data){
1657 layer.open({
1658 content: '退还成功,保证金七个工作日内退还',
1659 time:2
1660 });
1661 $scope.init();
1662 })
1663 .error(function(data){
1664 layer.open({
1665 content: '退还保证金失败',
1666 time:2
1667 });
1668 })
1669 },no: function(index){
1670 layer.close(index);
1671 }
1672 });
1673 }
1674 })
1675 }
1676
1677 }])
1678 ///<jscompress sourcefile="bondPayController.js" />
1679 angular.module('myApp')
1680 .controller('bondPayController',['$scope', '$rootScope', '$state', 'wechatPayment',
1681 function($scope,$rootScope,$state, wechatPayment){
1682
1683 if(!$rootScope.toPaid){
1684 $state.go('bond');
1685 }
1686 // 支付保证金
1687 var ispay = false;
1688 $scope.goPay = function(){
1689 if(ispay) return;
1690 ispay = true;
1691 wechatPayment.callDepositPay($rootScope.toPaid)
1692 .then(function(result){
1693 ispay = false;
1694 //支付成功
1695 $state.go('bondSuccess');
1696 }, function(errMsg){
1697 ispay = false;
1698 //支付失败
1699 })
1700 }
1701
1702
1703
1704 }])
1705 ///<jscompress sourcefile="bondSuccessController.js" />
1706 angular.module('myApp')
1707 .controller('bondSuccessController',[ '$scope' , '$rootScope' , '$state' , function($scope,$rootScope,$state){
1708
1709 // 支付保证金成功
1710
1711 $scope.goMap = function(){
1712 $state.go('main');
1713 }
1714
1715 }])
1716 ///<jscompress sourcefile="contactController.js" />
1717 angular.module('myApp')
1718 .controller('contactController',['$scope','$rootScope','dingdaService','$state','globalService',function($scope,$rootScope,dingdaService,$state,globalService){
1719
1720 $scope.contactList = [];
1721
1722 var init = function() {
1723 // globalService.init();
1724 $scope.contactList.push({
1725 name : "浙江省" ,
1726 phone : "0571-8677567"
1727 })
1728 $scope.contactList.push({
1729 name : "浙江省" ,
1730 phone : "0571-8677567"
1731 })
1732 $scope.contactList.push({
1733 name : "浙江省" ,
1734 phone : "0571-8677567"
1735 })
1736 $scope.contactList.push({
1737 name : "浙江省" ,
1738 phone : "0571-8677567"
1739 })
1740 $scope.contactList.push({
1741 name : "浙江省" ,
1742 phone : "0571-8677567"
1743 })
1744 $scope.contactList.push({
1745 name : "浙江省" ,
1746 phone : "0571-8677567"
1747 })
1748 $scope.contactList.push({
1749 name : "浙江省" ,
1750 phone : "0571-8677567"
1751 })
1752 $scope.contactList.push({
1753 name : "浙江省" ,
1754 phone : "0571-8677567"
1755 })
1756 $scope.contactList.push({
1757 name : "浙江省" ,
1758 phone : "0571-8677567"
1759 })
1760 $scope.contactList.push({
1761 name : "浙江省" ,
1762 phone : "0571-8677567"
1763 })
1764 $scope.contactList.push({
1765 name : "浙江省" ,
1766 phone : "0571-8677567"
1767 })
1768 }
1769
1770 // mui.init();
1771 init();
1772 }]);
1773 ///<jscompress sourcefile="loginController.js" />
1774 angular.module('myApp')
1775 .controller('loginController',[ '$scope','$rootScope','dingdaService','globalService' ,function($scope,$rootScope,dingdaService,globalService){
1776 var init = function(){
1777 $scope.phoneNumberVal='';
1778 $scope.validationVal= '';
1779
1780 $(".phoneNumber").focus(function(){
1781 $(".phoneNumber").css('border','1px solid #36d1e7');
1782 })
1783 $(".phoneNumber").blur(function(){
1784 $(".phoneNumber").css('border','1px solid rgba(0,0,0,.2)');
1785 })
1786 $(".validationInput").focus(function(){
1787 $(".validationInput").css('border','1px solid #36d1e7');
1788 })
1789 $(".validationInput").blur(function(){
1790 $(".validationInput").css('border','1px solid rgba(0,0,0,.2)');
1791 })
1792
1793
1794 }
1795
1796 function getUrl(name){
1797 var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
1798 var r = window.location.search.substr(1).match(reg);
1799 if(r!=null)return unescape(r[2]); return null;
1800 }
1801 init();
1802 var countdown = function(){
1803 var wait=60;
1804 function time(o) {
1805 if (wait == 0) {
1806 o.removeAttribute("disabled");
1807 o.value="重发";
1808 wait = 60;
1809 $('.ValidationBtn').html(o.value);
1810 $('.ValidationBtn').css('background','#36d1e7');
1811 } else {
1812 o.setAttribute("disabled", true);
1813 o.value=wait + "秒";
1814 wait--;
1815 $('.ValidationBtn').html(o.value);
1816 if(wait!=0){
1817 $('.ValidationBtn').css('background','#ccc');
1818 }
1819 setTimeout(function() {
1820 time(o);
1821 },1000)
1822 }
1823 }
1824 time($('.ValidationBtn').get(0));
1825 }
1826
1827 $scope.Validation = function(){
1828 if($scope.phoneNumberVal==""){
1829 layer.open({
1830 content: '手机号码不能为空',
1831 time:2
1832 });
1833 return
1834 }
1835 var reg = /^0?1[3|4|5|7|8][0-9]\d{8}$/;
1836 if(!reg.test($scope.phoneNumberVal)){
1837 layer.open({
1838 content: '手机号码格式不对',
1839 time:2
1840 });
1841 return
1842 }
1843 countdown();
1844 var res = dingdaService.sendPhoneCode($scope.phoneNumberVal , getUrl("openId"));
1845 res.success(function(data){
1846 console.log(data);
1847 })
1848 .error(function(){
1849 console.log('error');
1850 })
1851
1852 }
1853
1854 $scope.login= function(){
1855 if($scope.phoneNumberVal==""){
1856 layer.open({
1857 content: '手机号码不能为空',
1858 time:2
1859 });
1860 return
1861 }
1862 var reg = /^0?1[3|4|5|7|8][0-9]\d{8}$/;
1863 if(!reg.test($scope.phoneNumberVal)){
1864 layer.open({
1865 content: '手机号码格式不对',
1866 time:2
1867 });
1868 return
1869 }
1870
1871 if($scope.validationVal==''){
1872 layer.open({
1873 content: '请输入验证码',
1874 time:2
1875 });
1876 return
1877 }
1878 $scope.validationVal = "" + $scope.validationVal;
1879 if($scope.validationVal.length != 4){
1880 layer.open({
1881 content: '验证码位数不对',
1882 time:2
1883 });
1884 return
1885 }
1886
1887 var res = dingdaService.verifyPhoneCode($scope.phoneNumberVal , $scope.validationVal).success(function(data){
1888 if (data.meta.code == 200) {
1889 data.data.userName = $scope.phoneNumberVal;
1890 globalService.saveData('user',data.data);
1891 window.history.back();
1892 layer.open({
1893 content: '登录成功',
1894 time:1
1895 });
1896 setTimeout(function() {
1897 location.reload();
1898 } , 300);
1899 } else if (data.meta.code == 401) {
1900 layer.open({
1901 content: data.meta.message,
1902 time:1
1903 });
1904 // alert(data.meta.message);
1905 // layer.msg(data.data.error);
1906 return;
1907 }
1908 }).error(function(){
1909 layer.open({
1910 content: '登录失败',
1911 time:1
1912 });
1913 })
1914
1915 }
1916
1917 $scope.$watch('validationVal',function(newVal,old){
1918 if(newVal){
1919 if($scope.validationVa!="" && !isNaN($scope.validationVal) && $scope.validationVal.toString().length==4){
1920 $('.loginBtn').addClass('btnBg');
1921 }else{
1922 $('.loginBtn').removeClass('btnBg');
1923 }
1924 }
1925 })
1926
1927 // $(window).bind("load resize",function(){
1928 // $(".loginBox").css({zoom:$(window).width()/320,visibility:"visible"});
1929 // });
1930 }])
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974 ///<jscompress sourcefile="mainController.js" />
1975 angular.module('myApp')
1976 .controller('mainController',['$scope','$rootScope','dingdaService','$state','globalService',function($scope,$rootScope,dingdaService,$state,globalService){
1977
1978 $rootScope.isRendBike = false;
1979 $rootScope.isLoadFinish = false;
1980 $scope.unfinishOrder = {};
1981
1982 var init = function() {
1983 // globalService.init();
1984 $scope.userinfo = globalService.getData("user");
1985 if(!$scope.userinfo) {
1986 $scope.userinfo = {};
1987 $scope.userinfo.userName = "未登录";
1988 $scope.userinfo.loginState = false;
1989 } else {
1990 $scope.userinfo.loginState = true;
1991 // alert("getUnfinishedOrder")
1992 dingdaService.getUnfinishedOrder().success(function(data , status){
1993 // alert(JSON.stringify(data))
1994 if(data.data.unfinishedOrder.id) {
1995 $rootScope.isRendBike = true;
1996 $scope.unfinishOrder = data.data.unfinishedOrder;
1997 }
1998 if(data.data.unfinishedOrder.status == 200) {
1999 layer.open({
2000 content: '您有未支付的订单,是否前往支付?',
2001 btn: ['确认', '取消'],
2002 shadeClose: false,
2003 yes: function(index){
2004 layer.close(index);
2005 $state.go('tripDetail' , { orderId : $scope.unfinishOrder.id});
2006 return;
2007 },no: function(index){
2008 layer.close(index);
2009 }
2010 });
2011 }
2012 }).error(function(data , status) {
2013 console.log(JSON.stringify(data))
2014 })
2015 }
2016 $scope.moduleList = [];
2017 $scope.moduleList.push({
2018 name : "行程记录",
2019 icon : "images/trip.png",
2020 state : "trip"
2021 });
2022 $scope.moduleList.push({
2023 name : "钱包",
2024 icon : "images/wallet.png",
2025 state : "wallet"
2026 });
2027 $scope.moduleList.push({
2028 name : "保证金",
2029 icon : "images/bond.png",
2030 state : "bond"
2031 });
2032 $scope.moduleList.push({
2033 name : "联系我们",
2034 icon : "images/contact.png",
2035 state : "contact"
2036 });
2037 $scope.moduleList.push({
2038 name : "意见反馈",
2039 icon : "images/opinion.png",
2040 state : "opinion"
2041 });
2042 }
2043
2044 $scope.doAction = function(index) {
2045 if($scope.checkLogin()) {
2046 var arg = {};
2047 if(index == 2 || index == 4) {
2048 arg = {longitude: $rootScope.currentPoint.longitude , latitude: $rootScope.currentPoint.latitude };
2049 }
2050 if(index == 3) {
2051 location.href = "http://wx.dy.dingdatech.com/contactUs.html";
2052 } else {
2053 $state.go($scope.moduleList[index].state, arg);
2054 }
2055 }
2056 }
2057
2058 $scope.checkLogin = function() {
2059 if(!globalService.getData("user")) {
2060 $state.go('login', {}, {reload: true});
2061 return false;
2062 }
2063 return true;
2064 }
2065
2066 $scope.logout = function() {
2067 $scope.userinfo = {};
2068 $scope.userinfo.userName = "未登录";
2069 $scope.userinfo.loginState = false;
2070 globalService.clearData("user");
2071 location.reload()
2072 }
2073
2074 var initScan = function() {
2075 $rootScope.openScan = false;
2076 $rootScope.openDetail = false;
2077 $rootScope.openMenu = false;
2078 $rootScope.openRing = false;
2079 $rootScope.$watch("openScan",function(newVal, oldVal){
2080 if(newVal !== oldVal && newVal) {
2081 if(!$scope.checkLogin()) {
2082 return;
2083 }
2084
2085 if($scope.unfinishOrder.status == 200) {
2086 $state.go('tripDetail' , { orderId : $scope.unfinishOrder.id});
2087 return;
2088 }
2089 $rootScope.openScan = false;
2090 wx.scanQRCode({
2091 needResult: 1, // 默认为1,扫描结果由微信处理,1则直接返回扫描结果,
2092 scanType: ["qrCode","barCode"], // 可以指定扫二维码还是一维码,默认二者都有
2093 success: function (res) {
2094 var result = res.resultStr; // 当needResult 为 1 时,扫码返回的结果
2095 // alert(result);
2096 dingdaService.verifyScanCode(result).success(function(data , status){
2097 // alert(JSON.stringify(data))
2098 if(data.meta.code == 200) {
2099 if(data.data.orderDetail.id) {
2100
2101 layer.open({
2102 content: "租车成功,订单号为:" + data.data.orderDetail.id,
2103 time:2
2104 });
2105 // alert("租车成功,订单号为:" + data.data.orderDetail.id);
2106 $rootScope.isRendBike = true;
2107
2108 $state.go('rentDetail', {}, {reload: true});
2109
2110 }
2111 } else if(data.meta.code == 202) {
2112 layer.open({
2113 content: data.meta.message,
2114 time:2
2115 });
2116 $state.go('bond', {longitude: $rootScope.currentPoint.longitude , latitude: $rootScope.currentPoint.latitude });
2117 } else {
2118 layer.open({
2119 content: data.meta.message,
2120 time:2
2121 });
2122 }
2123 }).error(function(data , status){
2124 layer.open({
2125 content: "租车失败" + JSON.stringify(data),
2126 time:2
2127 });
2128 });
2129 }
2130 });
2131 }
2132 })
2133 $rootScope.$watch("openDetail",function(newVal, oldVal){
2134 if(newVal === oldVal) return;
2135
2136 if(newVal) {
2137 dingdaService.getUnfinishedOrder().success(function(data , status){
2138 if(data.meta.code == 200) {
2139 if(!data.data.unfinishedOrder.id) {
2140 layer.open({
2141 content: '租车完成',
2142 time:2
2143 });
2144 // alert("租车完成")
2145 $state.go('main');
2146 }
2147 }
2148
2149 if(data.data.unfinishedOrder.status == 200) {
2150 $state.go('tripDetail' , { orderId : data.data.unfinishedOrder.id});
2151 } else {
2152 $state.go('rentDetail', {}, {reload: true});
2153 }
2154 }).error(function(data , status) {
2155 console.log(JSON.stringify(data))
2156 })
2157
2158 }
2159 })
2160 $rootScope.$watch("openRing",function(newVal, oldVal){
2161 // TODO open new message
2162 })
2163 $rootScope.$watch("isLoadFinish" , function(newVal , oldVal){
2164 if(newVal === oldVal) return;
2165 if(newVal) {
2166 document.getElementById("sliderMenu").style.display = "block";
2167 }
2168 })
2169
2170 document.getElementById("sliderMenu").addEventListener("touchmove", function(){
2171 return;
2172 } , false);
2173 }
2174
2175 // mui.init();
2176 initScan();
2177 init();
2178
2179
2180 }]);
2181
1 <jscompress public="http://www.jscompress.cn/" command="import-combineset">
2 <combinefile path="compress.js">
3 <sourcefile path=".\app.js" />
4 <sourcefile path=".\service\weixinConfig.js" />
5 <sourcefile path=".\service\globalService.js" />
6 <sourcefile path=".\service\dingdaService.js" />
7 <sourcefile path=".\service\wechatPaymentService.js" />
8 <sourcefile path=".\controller\mapController.js" />
9 <sourcefile path=".\controller\opinionController.js" />
10 <sourcefile path=".\controller\payController.js" />
11 <sourcefile path=".\controller\prepayController.js" />
12 <sourcefile path=".\controller\rechargeListController.js" />
13 <sourcefile path=".\controller\rentDetailController.js" />
14 <sourcefile path=".\controller\tripController.js" />
15 <sourcefile path=".\controller\tripDetailController.js" />
16 <sourcefile path=".\controller\unusualController.js" />
17 <sourcefile path=".\controller\walletController.js" />
18 <sourcefile path=".\controller\bondController.js" />
19 <sourcefile path=".\controller\bondPayController.js" />
20 <sourcefile path=".\controller\bondSuccessController.js" />
21 <sourcefile path=".\controller\contactController.js" />
22 <sourcefile path=".\controller\loginController.js" />
23 <sourcefile path=".\controller\mainController.js" />
24 </combinefile>
25 </jscompress>
...\ No newline at end of file ...\ No newline at end of file
1 ///<jscompress sourcefile="app.js" />
2 angular.module('myApp.services', ['LocalStorageModule']);
3 angular.module('myApp.directives', []);
4 var app = angular.module('myApp', [ "ui.router",'myApp.services', 'myApp.directives']);
5
6 app.config(['$stateProvider' , '$urlRouterProvider' , function($stateProvider, $urlRouterProvider){
7 $urlRouterProvider.otherwise("/main");
8 $stateProvider.state('main', {
9 url: "/main",
10 templateUrl: "html/main.html"
11 })
12 .state('login',{
13 url: "/login",
14 templateUrl: "html/login.html"
15 })
16 .state('trip',{
17 url: "/trip",
18 templateUrl: "html/trip.html",
19 controller: 'tripController'
20 })
21 .state('wallet',{
22 url: "/wallet",
23 templateUrl: "html/wallet.html"
24 })
25 .state('bond',{
26 url: "/bond/?longitude&latitude",
27 templateUrl: "html/bond.html"
28 })
29 .state('contact',{
30 url: "/contact",
31 templateUrl: "html/contact.html"
32 })
33 .state('opinion',{
34 url: "/opinion/?longitude&latitude",
35 templateUrl: "html/opinion.html"
36 })
37 .state('tripDetail',{
38 url: "/tripDetail/:orderId",
39 templateUrl: "html/tripDetail.html" ,
40 controller: 'tripDetailController'
41 })
42
43 .state('prepay',{
44 url: "/prepay",
45 templateUrl: "html/prepay.html"
46 })
47 .state('pay',{
48 url: "/pay",
49 templateUrl: "html/pay.html"
50 })
51 .state('bondPay',{
52 url: "/bondPay",
53 templateUrl: "html/bondPay.html"
54 })
55 .state('bondSuccess',{
56 url: "/bondSuccess",
57 templateUrl: "html/bondSuccess.html"
58 })
59 .state('rentDetail',{
60 url: "/rentDetail",
61 templateUrl: "html/rentDetail.html"
62 })
63 .state('unusual',{
64 url: "/unusual/:id",
65 templateUrl: "html/unusual.html"
66 })
67 .state('rechargeList',{
68 url: "/rechargeList",
69 templateUrl: "html/rechargeList.html"
70 })
71
72
73
74 }])
75 app.run(['globalService', function(globalService) {
76 globalService.init();
77 var loading = document.getElementById("appLoadingIndicator");
78 loading.style.display = "none";
79 }])
80 //$(window).bind("load resize",function(){
81 // $("body").css({zoom:$(window).width()/320,visibility:"visible"});
82 //});;
83 ///<jscompress sourcefile="wechatPaymentService.js" />
84 angular.module('myApp.services')
85 .service('wechatPayment',['$http', '$q', '$rootScope',function($http, $q, $rootScope) {
86
87 //var host = 'http://finance.api.dingdachuxing.com/service';
88 var host = 'http://finance.dy.dingdatech.com/service';
89
90
91
92 //调用微信JS api 支付
93 var jsApiCall = function (sign, q) {
94 WeixinJSBridge.invoke(
95 'getBrandWCPayRequest', {
96 appId : sign.appId,
97 timeStamp : sign.timeStamp,
98 nonceStr : sign.nonceStr,
99 package : sign.packageStr,
100 signType : sign.signType,
101 paySign : sign.paySign
102 },
103 function (res) {
104 if (res.err_msg == 'get_brand_wcpay_request:ok') {
105 layer.open({
106 content: '支付成功!',
107 time:1
108 });
109 q.resolve(res.err_msg);
110 return;
111 } else if (res.err_msg == 'get_brand_wcpay_request:fail') {
112 alert("支付失败:" + JSON.stringify(res))
113 layer.open({
114 content: '支付失败!',
115 time:1
116 });
117 } else if (res.err_msg == 'get_brand_wcpay_request:cancel') {
118 layer.open({
119 content: '支付取消!',
120 time:1
121 });
122 } else {
123 layer.open({
124 content: '支付异常,'+res.err_msg,
125 time:1
126 });
127 }
128 q.reject(res.err_msg);
129 // WeixinJSBridge.log(res.err_msg);
130 // console.error(res.err_msg);
131 }
132 );
133 }
134
135 var callUnifiedOrderApi = function(url, data){
136 var q = $q.defer();
137 $http.post(url, data)
138 .success(function (data) {
139 if(data.meta.code == 200) {
140 // alert('支付签名返回:' + JSON.stringify(data));
141 jsApiCall(data.data.wechatDto, q);
142 }else{
143 layer.open({
144 content:'支付签名失败:code '+data.meta.code+","+ data.meta.message,
145 time:1
146 });
147 q.reject(data.meta.message)
148 }
149 })
150
151 return q.promise;
152 }
153
154 return {
155 /**
156 * 租车付款
157 */
158 callRentPay: function (orderId, amount) {
159 return callUnifiedOrderApi(host + '/bill/wx/' + orderId, {
160 amount : amount,
161 body : "租车租金",
162 type : 101
163 });
164 },
165 /**
166 * 保证金充值
167 * @param amount
168 */
169 callDepositPay : function(amount){
170 return callUnifiedOrderApi(host + "/bail/wx", {
171 amount : amount,
172 body : "保证金充值",
173 type : 101
174 });
175 },
176 /**
177 * 钱包充值
178 * @param amount
179 */
180 callBalanceRecharge : function(amount){
181 return callUnifiedOrderApi(host + "/balance/wx", {
182 amount : amount,
183 body : "钱包充值",
184 type : 101
185 });
186 }
187 }
188 }]);
189 ;
190 ///<jscompress sourcefile="weixinConfig.js" />
191 /**
192 * Created by zhanghong on 15/3/8.
193 */
194 function weixinOptionMenuInit(appId, timestamp, nonceStr, signature){
195 try {
196 // wwsDebug.info("appId:" + appId);
197 // wwsDebug.info("timestamp:" + timestamp);
198 // wwsDebug.info("nonceStr:" + nonceStr);
199 // wwsDebug.info("signature:" + signature);
200 // alert("typeof wx.config " + typeof wx.config);
201 // if (wx) {
202 wx.config({
203 debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
204 appId: appId, // 必填,公众号的唯一标识
205 timestamp: timestamp, // 必填,生成签名的时间戳
206 nonceStr: nonceStr, // 必填,生成签名的随机串
207 signature: signature,// 必填,签名,见附录1
208 jsApiList: ['scanQRCode','getLocation'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
209 });
210 wx.error(function(res){
211 layer.open({
212 content:"微信扫码功能不能用,无法使用扫码租车",
213 time:1
214 });
215 // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
216
217 });
218 wx.ready(function(){
219 // alert('wx ready')
220 // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
221 wx.checkJsApi({
222 jsApiList: ['scanQRCode','getLocation'], // 需要检测的JS接口列表,所有JS接口列表见附录2,
223 success: function(res) {
224 if(res.checkResult.scanQRCode != true){
225 layer.open({
226 content: '您的微信版本太低,不支持扫码',
227 time:1
228 });
229
230 }
231 // 以键值对的形式返回,可用的api值true,不可用为false
232 // 如:{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"}
233 }
234 });
235 });
236 // }
237 }catch(exception){
238 // alert("exception " + exception)
239 layer.open({
240 content:"微信扫码功能异常,无法使用扫码租车",
241 time:1
242 });
243 }
244 }
245
246 function initWeixinMenu($http){
247 var url = encodeURIComponent(location.href.split('#')[0]);
248 //生产环境 wechat.api.dingdatech.com
249 $http.post("http://wechat.dy.dingdatech.com/wx/qrCodeParms",
250 {
251 webUrl : url
252 })
253 .success(function(data){
254 // alert(JSON.stringify(data) + ", with url : " + location.href.split('#')[0])
255 if(data){
256 weixinOptionMenuInit(data.appid, data.timestamp, data.noncestr, data.signature);
257 }
258 })
259 .error(function(arg1){
260 try {
261 layer.open({
262 content:"微信jssdk配置接口失败:" + JSON.stringify(arg1),
263 time:1
264 });
265 }catch(e){
266 layer.open({
267 content:"微信jssdk配置接口失败:" + arg1,
268 time:1
269 });
270 }
271 // alert(arg1);
272 });
273 }
274 ;
275 ///<jscompress sourcefile="dingdaService.js" />
276 angular.module('myApp.services')
277 .service( 'dingdaService', [ '$http','globalService',
278 function($http,globalService) {
279 return {
280 sendPhoneCode: function(phone , openId){
281 var url = globalService.getParam('dingdaLoginAPI') + '/login/sms?mobile=' + phone + '&openId=' + openId;
282 var res = $http.get(url).success(function(data, status) {
283 }).error(function(data, status) {
284 alert(data.meta.message)
285 });
286 return res;
287 },
288 verifyPhoneCode : function(phone , code){
289 var url = globalService.getParam('dingdaLoginAPI') + '/login/sms?mobile=' + phone + '&code=' + code;
290 var res = $http.post(url , {
291 } , {
292 }).success(function(data, status) {
293
294 }).error(function(data, status) {
295 alert(data.meta.message)
296 });
297 return res;
298 },
299 getStationList : function(longitude , latitude){
300 var url = globalService.getParam('dingdaAPI') + '/service/bicycle/stations?longitude=' + longitude
301 + '&latitude=' + latitude;
302 var res = $http.get(url).success(function(data, status) {
303 }).error(function(data, status) {
304 alert(data.meta.message)
305 });
306 return res;
307 },
308 getStationById : function(id){
309 var url = globalService.getParam('dingdaAPI') + '/service/bicycle/stations/' + id;
310 var res = $http.get(url).success(function(data, status) {
311 }).error(function(data, status) {
312 alert(data.meta.message)
313 });
314 return res;
315 },
316 getUnfinishedOrder : function(){
317 var url = globalService.getParam('dingdaAPI') + '/service/bicycle/orders/unfinished';
318 var res = $http.get(url).success(function(data, status) {
319 }).error(function(data, status) {
320 alert(data.meta.message)
321 });
322 return res;
323 },
324 verifyScanCode : function(code){
325 var url = globalService.getParam('dingdaAPI') + '/service/bicycle/order?code=' + code;
326 var res = $http.post(url , { }).success(function(data, status) {
327
328 }).error(function(data, status) {
329 alert(data.meta.message)
330 });
331 return res;
332 },
333 getOrderRealTimeInfo : function(id){
334 var url = globalService.getParam('dingdaAPI') + '/service/bicycle/orders/detail/' + id;
335 var res = $http.get(url).success(function(data, status) {
336 }).error(function(data, status) {
337 alert(data.meta.message)
338 });
339 return res;
340 },
341 getOrderList : function(page){
342 var url = globalService.getParam('dingdaAPI') + '/service/bicycle/orders?pageSize=10&pageNum=' + page;
343 var res = $http.get(url).success(function(data, status) {
344 }).error(function(data, status) {
345 alert(data.meta.message)
346 });
347 return res;
348 },
349 getOrderFinishInfo : function(id){
350 var url = globalService.getParam('dingdaAPI') + '/service/bicycle/orders/' + id;
351 var res = $http.get(url).success(function(data, status) {
352 }).error(function(data, status) {
353 alert(data.meta.message)
354 });
355 return res;
356 },
357 setOrderFinish : function(id){
358 var url = globalService.getParam('dingdaAPI') + '/service/bicycle/order/finish/' + id;
359 var res = $http.post(url , {}).success(function(data, status) {
360 }).error(function(data, status) {
361 alert(data.meta.message)
362 });
363 return res;
364 },
365 payWX : function(id , payInfo) {
366 var url = globalService.getParam('financeAPI') + '/service/bill/wx/' + id;
367 var res = $http.post(url , payInfo).success(function(data, status) {
368
369 }).error(function(data, status) {
370 alert(data.meta.message)
371 });
372 return res;
373 },
374 getWallet : function() {
375 var url = globalService.getParam('financeAPI') + '/service/balance';
376 var res = $http.get(url).success(function(data, status) {
377 }).error(function(data, status) {
378 alert(data.meta.message)
379 });
380 return res;
381 },
382 payWallet : function(payInfo) {
383 var url = globalService.getParam('financeAPI') + '/service/balance/wx';
384 var res = $http.post(url , payInfo).success(function(data, status) {
385 }).error(function(data, status) {
386 alert(data.meta.message)
387 });
388 return res;
389 },
390 getWalletHistory : function(page) {
391 var url = globalService.getParam('financeAPI') + '/service/balances?pageSize=10&pageNum' + page;
392 var res = $http.get(url).success(function(data, status) {
393 }).error(function(data, status) {
394 alert(data.meta.message)
395 });
396 return res;
397 },
398 getBond : function(longitude , latitude) {
399 var url = globalService.getParam('dingdaAPI') + '/service/bicycle/deposit?longitude=' + longitude
400 + '&latitude=' + latitude;
401 var res = $http.get(url).success(function(data, status) {
402 }).error(function(data, status) {
403 alert(data.meta.message)
404 });
405 return res;
406 },
407 payBond : function(payInfo) {
408 var url = globalService.getParam('financeAPI') + '/service/bail/wx';
409 var res = $http.post(url , payInfo).success(function(data, status) {
410 }).error(function(data, status) {
411 alert(data.meta.message)
412 });
413 return res;
414 },
415 returnBond : function(page) {
416 var url = globalService.getParam('dingdaAPI') + '/service/bicycle/deposit';
417 var res = $http.delete(url).success(function(data, status) {
418 }).error(function(data, status) {
419 alert(data.meta.message)
420 });
421 return res;
422 },
423 comment : function(message) {
424 var url = globalService.getParam('feedbackAPI') + '/service/comments';
425 var res = $http.post(url , message).success(function(data, status) {
426 }).error(function(data, status) {
427 alert(data.meta.message)
428 });
429 return res;
430 },
431 getVersion : function() {
432 var url = globalService.getParam('dingdaAPI') + '/service/version';
433 var res = $http.get(url).success(function(data, status) {
434 }).error(function(data, status) {
435 alert(data.meta.message)
436 });
437 return res;
438 }
439 }
440 }]);
441 ///<jscompress sourcefile="globalService.js" />
442
443 angular.module('myApp.services')
444 .service('globalService',
445 [ '$http', '$rootScope', 'localStorageService',
446 function($http, $rootScope ,localStorageService) {
447
448 var setHeaderToken = function (token){
449 $http.defaults.headers.common = {
450 "token": token ,
451 "version": "1.0.0" ,
452 "source" : "WX"
453 };
454 }
455 var init = function(){
456 $rootScope.params = {};
457 $rootScope.config = {};
458 $rootScope.data = {};
459 $rootScope.inited = true;
460 //--------------------自行车服务--------------
461 // 生产环境
462 var dingdaAPI = "http://bike.dy.dingdatech.com";
463 // 测试环境
464 //var dingdaAPI = "http://bike.api.dingdachuxing.com";
465 globalConfig.setParam("dingdaAPI", dingdaAPI);
466 //--------------------财务服务--------------
467 // 生产环境
468 var financeAPI = "http://finance.dy.dingdatech.com";
469 // 测试环境
470 //var financeAPI = "http://finance.api.dingdachuxing.com";
471 globalConfig.setParam("financeAPI", financeAPI);
472 //--------------------反馈服务--------------
473 // 生产环境
474 var feedbackAPI = "http://feedback.dy.dingdatech.com";
475 // 测试环境
476 //var feedbackAPI = "http://feedback.api.dingdachuxing.com";
477 globalConfig.setParam("feedbackAPI", feedbackAPI);
478 //--------------------认证服务--------------
479 // 生产环境
480 var dingdaLoginAPI = "http://auth.dy.dingdatech.com";
481 // 测试环境
482 //var dingdaLoginAPI = "http://auth.api.dingdachuxing.com";
483 globalConfig.setParam("dingdaLoginAPI", dingdaLoginAPI);
484
485 $rootScope.$watch("data.user",function(newVal, oldVal){
486 if(!newVal){
487 return;
488 }
489 if(newVal.token) {
490 setHeaderToken(newVal.token);
491 }
492 })
493
494 loadPersistData();
495 loadCityConfig();
496 loadPathParams();
497 initWeixinMenu($http);
498
499 }
500
501 var loadPersistData = function() {
502 var keys = localStorageService.keys();
503 for(var x in keys){
504 globalConfig.setData(keys[x], localStorageService.get(keys[x]));
505 }
506 if(globalConfig.getData("user")){
507 setHeaderToken(globalConfig.getData("user").token);
508 }
509
510 }
511
512 var loadPathParams = function() {
513 var url = window.location.href,
514 parts = url.split('?');
515 if(parts.length == 2){
516 var hash = parts[1].indexOf('#')
517 if(hash != -1){
518 parts[1] = parts[1].substring(0, hash)
519 }
520
521 var pairs = parts[1].split('&')
522 pairs.forEach(function(pair){
523 var kv = pair.split('=')
524 if(kv.length == 2){
525 globalConfig.setData(kv[0], kv[1]);
526 }
527 })
528 }
529
530 }
531
532 var loadCityConfig = function() {
533 // $http.get("js/service/city.json").success(function (data) {
534 // $rootScope.config.province = {};
535 // for (var i = 0; i < data.length; i++) {
536 // $rootScope.config.province[data[i].id] = data[i];
537 // };
538 // })
539 }
540
541 var globalConfig = {
542 init : init,
543 getParam : function(key){
544 return $rootScope.params[key];
545 },
546 setParam : function(key, value){
547 $rootScope.params[key] = value
548 },
549 getConfig : function(key){
550 return $rootScope.config[key];
551 },
552 setConfig : function(key, value){
553 $rootScope.config[key] = value;
554 },
555 getData : function(key){
556 return $rootScope.data[key];
557 },
558 setData : function(key, value){
559 $rootScope.data[key] = value;
560 },
561 saveData : function(key, value){
562 if(value){
563 this.setData(key, value)
564 }
565 localStorageService.set(key, value);
566 },
567 clearData : function(key){
568 this.setData(key, null);
569 localStorageService.set(key, null);
570 $http.defaults.headers.common = { };
571 }
572 }
573 return globalConfig;
574 }
575 ]
576 );;
577 ///<jscompress sourcefile="tripController.js" />
578 angular.module('myApp')
579 .controller('tripController',['$scope','$rootScope','$state','dingdaService' ,function($scope,$rootScope,$state,dingdaService){
580
581 $scope.tripList = [];
582
583 $scope.isLastPage = false;
584
585 $scope.getMoreOrders = function() {
586
587 dingdaService.getOrderList(page).success(function(data , status) {
588 // alert(JSON.stringify(data))
589 if(!data.data.orders || data.data.orders.length == 0) {
590 $scope.isLastPage = true;
591 return;
592 }
593 if(page == 1) {
594 $scope.tripList = [];
595 }
596 for(var i = 0 ; i < data.data.orders.length;i++) {
597 if(data.data.orders[i].status == 300) {
598 data.data.orders[i].tripStatus = "已完成";
599 } else {
600 data.data.orders[i].tripStatus = "待支付";
601 }
602 $scope.tripList.push(data.data.orders[i]);
603 }
604 page++;
605 // alert(JSON.stringify($scope.tripList))
606 })
607 }
608
609 var page = 1;
610
611 var init = function() {
612 $scope.getMoreOrders();
613 }
614
615 init();
616
617 $scope.viewTripDetail = function(index){
618 $state.go('tripDetail' , { orderId : $scope.tripList[index].id });
619 }
620 }]);
621 ///<jscompress sourcefile="tripDetailController.js" />
622 angular.module('myApp')
623 .controller('tripDetailController', ['$scope', '$rootScope', '$state', 'dingdaService', '$stateParams', 'wechatPayment',
624 function ($scope, $rootScope, $state, dingdaService, $stateParams, wechatPayment) {
625 console.log('tripDetailController');
626 /**
627 * 2. 选择dom元素
628 * */
629 var tripDetail = $('.tripDetail');
630 var winHeight = $(window).height();
631 var tripHeight = tripDetail.height() + 40;
632 var bottomPosition = $('.bottomPosition');
633 if (winHeight >= tripHeight) {
634 bottomPosition.css({'position': 'absolute', 'bottom': '0'})
635 }
636 /**
637 * 3. 定义当前业务需要的数据
638 * */
639 $scope.tripDetail = {};
640 $scope.needPay = false;
641 $scope.backHome = function () {
642 $state.go('main');
643 }
644 /**
645 * 4. 支付逻辑
646 * ispay 有无支付
647 * isActive
648 * choosePay 选择支付
649 * */
650 var ispay = false;
651 $scope.isActive = true; // 这个是个关键 TODO 要更改的
652 $scope.payType = 1;
653 $scope.choosePay = function (index) {
654 if ($($('.checkboxS')[index]).hasClass('checkboxTrue')) {
655 // 如果要选择的项已经选中,不处理
656 return
657 } else {
658 $scope.isActive = !$scope.isActive;
659 }
660
661 $scope.payType = index;
662 }
663 $scope.goPay = function () {
664 if (ispay) return;
665 if ($scope.payType == 1) { //微信支付
666
667 ispay = true;
668 wechatPayment.callRentPay($scope.tripDetail.id, $scope.tripDetail.total_fee)
669 .then(function (result) {
670 ispay = false;
671 //支付成功
672 init();
673 // $state.go('bondSuccess');
674 }, function (errMsg) {
675 ispay = false;
676 //支付失败
677 // layer.open({
678 // content: '支付失败,请重试',
679 // time:2
680 // });
681 })
682 } else {
683 if ($scope.tripDetail.total_fee > $scope.balance) { //钱包支付判断余额是否足够支付
684 layer.open({
685 content: '您的余额不够是否去充值?', //小米下面按钮对齐
686 btn: ['去充值', '取消'],
687 shadeClose: false,
688 yes: function (index) {
689 $state.go('prepay', {}, {reload: false});
690 layer.close(index);
691 }, no: function (index) {
692 layer.close(index);
693 }
694 });
695 } else {
696 // 余额支付
697
698 ispay = true;
699 var data = {
700 amount: $scope.tripDetail.total_fee,
701 body: '余额支付',
702 type: 102
703 }
704 dingdaService.payWX($scope.tripDetail.id, data)
705 .success(function (data, status) {
706 ispay = false;
707 layer.open({
708 content: '支付成功',
709 time: 2
710 });
711 init();
712 })
713 .error(function (data) {
714 ispay = false;
715 layer.open({
716 content: '支付失败',
717 time: 2
718 });
719 })
720 }
721 }
722 }
723
724 var orderid = $stateParams.orderId;
725 /**
726 * 1. init 获取初始化的数据 tripDetail 订单详情 needPay 是否需要发起支付
727 * */
728 var init = function () {
729 dingdaService.getOrderFinishInfo(orderid).success(function (data, status) {
730 $scope.tripDetail = data.data.order;
731 // alert(JSON.stringify(data));
732 if (data.data.order.status == 300 || $scope.tripDetail.total_fee == 0) {
733 $scope.needPay = false;
734 } else if (data.data.order.status == 200) {
735 $scope.needPay = true;
736 }
737 })
738
739 dingdaService.getWallet(orderid).success(function (data, status) {
740 $scope.balance = data.data.balance;
741 })
742 }
743 init();
744
745 }]);
746 ///<jscompress sourcefile="unusualController.js" />
747 angular.module('myApp')
748 .controller('unusualController',['$scope','dingdaService','$state','$stateParams',function($scope,dingdaService,$state,$stateParams){
749
750 $scope.returnBike = function() {
751 dingdaService.setOrderFinish($stateParams.id)
752 .success(function(data , status) {
753 if(data.meta.code == 200) {
754 $state.go('tripDetail' , { orderId : $stateParams.id });
755 } else if (data.meta.code == 203) {
756 layer.open({
757 content: "租车失败",
758 time:2
759 });
760 $state.go('main');
761 } else {
762
763 layer.open({
764 content: "系统检测到您还未还车,请联系客服",
765 time:2
766 });
767 }
768 }).error(function(data , status) {
769
770 });
771 }
772
773 $scope.hint = function() {
774 layer.open({
775 content: "请在主页面菜单中点击联系我们",
776 time:2
777 });
778 }
779
780 }]);
781 ///<jscompress sourcefile="walletController.js" />
782 angular.module('myApp')
783 .controller('walletController',['$scope','$rootScope','dingdaService','$state','globalService',function($scope,$rootScope,dingdaService,$state,globalService){
784
785 $scope.balance = "";
786
787 var init = function() {
788 dingdaService.getWallet().success(function(data , status){
789 // alert(JSON.stringify(data.data))
790 $scope.balance = data.data.balance;
791
792 })
793 }
794
795 init();
796
797 $scope.prepay = function() {
798 $state.go('prepay', { }, { reload: false });
799 }
800 }]);;
801 ///<jscompress sourcefile="bondController.js" />
802 angular.module('myApp')
803 .controller('bondController',['$scope' , '$rootScope', '$state' , 'dingdaService' , '$stateParams' ,
804 function($scope,$rootScope,$state,dingdaService,$stateParams){
805 $scope.goPay = function(){
806 $state.go('bondPay');
807 }
808
809 // function getUrl(name){
810 // var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
811 // var url = String(window.location);
812 // var arr = url.split('?');
813 // var str = arr[arr.length-1];
814 // var r = str.match(reg);
815 // if(r!=null)return unescape(r[2]); return null;
816 // }
817
818 $scope.init = function(){
819 var latitude = $stateParams.latitude;
820 var longitude = $stateParams.longitude;
821 dingdaService.getBond(longitude,latitude)
822 .success(function(data){
823 // alert(JSON.stringify(data))
824 $scope.bondInfo = data.data;
825 $rootScope.toPaid = data.data.toPaid;
826 }).error(function(data){
827 // alert(JSON.stringify(data))
828 layer.open({
829 content: '获取保证金失败,请刷新页面',
830 time:2
831 });
832 })
833 }
834
835 $scope.drawback = function(){
836 dingdaService.getUnfinishedOrder().success(function(data , status){
837 if(data.data.unfinishedOrder.id) {
838
839 layer.open({
840 content: '还有未完成的订单,无法退还保证金',
841 time:2
842 });
843 } else {
844 layer.open({
845 content: '您确定要退还保证金吗?',
846 btn: ['确认', '取消'],
847 shadeClose: false,
848 yes: function(index){
849 layer.close(index);
850 dingdaService.returnBond()
851 .success(function(data){
852 console.log(window.localStorage.getItem("IswechatPayment"));
853 //alert(window.localStorage.getItem("IswechatPayment"));
854 window.localStorage.setItem("IswechatPayment","no");
855 layer.open({
856 content: '退还成功,保证金七个工作日内退还',
857 time:2
858 });
859 $scope.init();
860 })
861 .error(function(data){
862 layer.open({
863 content: '退还保证金失败',
864 time:2
865 });
866 })
867 },no: function(index){
868 layer.close(index);
869 }
870 });
871 }
872 })
873 }
874
875 }]);
876 ///<jscompress sourcefile="bondPayController.js" />
877 angular.module('myApp')
878 .controller('bondPayController',['$scope', '$rootScope', '$state', 'wechatPayment',
879 function($scope,$rootScope,$state, wechatPayment){
880
881 if(!$rootScope.toPaid){
882 $state.go('bond');
883 }
884 // 支付保证金
885 var ispay = false;
886 $scope.goPay = function(){
887 if(ispay) return;
888 ispay = true;
889 var IswechatPayment= window.localStorage.getItem("IswechatPayment");
890
891 if (IswechatPayment== undefined || IswechatPayment == "no") {
892
893 wechatPayment.callDepositPay($rootScope.toPaid)
894 .then(function (result) {
895 ispay = false;
896 //支付成功
897 // alert(window.localStorage.getItem("IswechatPayment"));
898 window.localStorage.setItem("IswechatPayment", "yes")
899 $state.go('bondSuccess');
900 }, function (errMsg) {
901 ispay = false;
902 window.localStorage.setItem("IswechatPayment", "no")
903 //支付失败
904 })
905 }
906 }
907
908
909
910 }]);
911 ///<jscompress sourcefile="bondSuccessController.js" />
912 angular.module('myApp')
913 .controller('bondSuccessController',[ '$scope' , '$rootScope' , '$state' , function($scope,$rootScope,$state){
914
915 // 支付保证金成功
916
917 $scope.goMap = function(){
918 $state.go('main');
919 }
920
921 }]);
922 ///<jscompress sourcefile="contactController.js" />
923 angular.module('myApp')
924 .controller('contactController',['$scope','$rootScope','dingdaService','$state','globalService',function($scope,$rootScope,dingdaService,$state,globalService){
925
926 $scope.contactList = [];
927
928 var init = function() {
929 // globalService.init();
930 $scope.contactList.push({
931 name : "浙江省" ,
932 phone : "0571-8677567"
933 })
934 $scope.contactList.push({
935 name : "浙江省" ,
936 phone : "0571-8677567"
937 })
938 $scope.contactList.push({
939 name : "浙江省" ,
940 phone : "0571-8677567"
941 })
942 $scope.contactList.push({
943 name : "浙江省" ,
944 phone : "0571-8677567"
945 })
946 $scope.contactList.push({
947 name : "浙江省" ,
948 phone : "0571-8677567"
949 })
950 $scope.contactList.push({
951 name : "浙江省" ,
952 phone : "0571-8677567"
953 })
954 $scope.contactList.push({
955 name : "浙江省" ,
956 phone : "0571-8677567"
957 })
958 $scope.contactList.push({
959 name : "浙江省" ,
960 phone : "0571-8677567"
961 })
962 $scope.contactList.push({
963 name : "浙江省" ,
964 phone : "0571-8677567"
965 })
966 $scope.contactList.push({
967 name : "浙江省" ,
968 phone : "0571-8677567"
969 })
970 $scope.contactList.push({
971 name : "浙江省" ,
972 phone : "0571-8677567"
973 })
974 }
975
976 // mui.init();
977 init();
978 }]);;
979 ///<jscompress sourcefile="loginController.js" />
980 angular.module('myApp')
981 .controller('loginController',[ '$scope','$rootScope','dingdaService','globalService' ,function($scope,$rootScope,dingdaService,globalService){
982 var init = function(){
983 $scope.phoneNumberVal='';
984 $scope.validationVal= '';
985
986 $(".phoneNumber").focus(function(){
987 $(".phoneNumber").css('border','1px solid #36d1e7');
988 })
989 $(".phoneNumber").blur(function(){
990 $(".phoneNumber").css('border','1px solid rgba(0,0,0,.2)');
991 })
992 $(".validationInput").focus(function(){
993 $(".validationInput").css('border','1px solid #36d1e7');
994 })
995 $(".validationInput").blur(function(){
996 $(".validationInput").css('border','1px solid rgba(0,0,0,.2)');
997 })
998
999
1000 }
1001
1002 function getUrl(name){
1003 var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
1004 var r = window.location.search.substr(1).match(reg);
1005 if(r!=null)return unescape(r[2]); return null;
1006 }
1007 init();
1008 var countdown = function(){
1009 var wait=60;
1010 function time(o) {
1011 if (wait == 0) {
1012 o.removeAttribute("disabled");
1013 o.value="重发";
1014 wait = 60;
1015 $('.ValidationBtn').html(o.value);
1016 $('.ValidationBtn').css('background','#36d1e7');
1017 } else {
1018 o.setAttribute("disabled", true);
1019 o.value=wait + "秒";
1020 wait--;
1021 $('.ValidationBtn').html(o.value);
1022 if(wait!=0){
1023 $('.ValidationBtn').css('background','#ccc');
1024 }
1025 setTimeout(function() {
1026 time(o);
1027 },1000)
1028 }
1029 }
1030 time($('.ValidationBtn').get(0));
1031 }
1032
1033 $scope.Validation = function(){
1034 if($scope.phoneNumberVal==""){
1035 layer.open({
1036 content: '手机号码不能为空',
1037 time:2
1038 });
1039 return
1040 }
1041 var reg = /^0?1[3|4|5|7|8][0-9]\d{8}$/;
1042 if(!reg.test($scope.phoneNumberVal)){
1043 layer.open({
1044 content: '手机号码格式不对',
1045 time:2
1046 });
1047 return
1048 }
1049 countdown();
1050 var res = dingdaService.sendPhoneCode($scope.phoneNumberVal , getUrl("openId"));
1051 res.success(function(data){
1052 console.log(data);
1053 })
1054 .error(function(){
1055 console.log('error');
1056 })
1057
1058 }
1059
1060 $scope.login= function(){
1061 if($scope.phoneNumberVal==""){
1062 layer.open({
1063 content: '手机号码不能为空',
1064 time:2
1065 });
1066 return
1067 }
1068 var reg = /^0?1[3|4|5|7|8][0-9]\d{8}$/;
1069 if(!reg.test($scope.phoneNumberVal)){
1070 layer.open({
1071 content: '手机号码格式不对',
1072 time:2
1073 });
1074 return
1075 }
1076
1077 if($scope.validationVal==''){
1078 layer.open({
1079 content: '请输入验证码',
1080 time:2
1081 });
1082 return
1083 }
1084 $scope.validationVal = "" + $scope.validationVal;
1085 if($scope.validationVal.length != 4){
1086 layer.open({
1087 content: '验证码位数不对',
1088 time:2
1089 });
1090 return
1091 }
1092
1093 var res = dingdaService.verifyPhoneCode($scope.phoneNumberVal , $scope.validationVal).success(function(data){
1094 if (data.meta.code == 200) {
1095 data.data.userName = $scope.phoneNumberVal;
1096 globalService.saveData('user',data.data);
1097 window.history.back();
1098 layer.open({
1099 content: '登录成功',
1100 time:1
1101 });
1102 setTimeout(function() {
1103 location.reload();
1104 } , 300);
1105 } else if (data.meta.code == 401) {
1106 layer.open({
1107 content: data.meta.message,
1108 time:1
1109 });
1110 // alert(data.meta.message);
1111 // layer.msg(data.data.error);
1112 return;
1113 }
1114 }).error(function(){
1115 layer.open({
1116 content: '登录失败',
1117 time:1
1118 });
1119 })
1120
1121 }
1122
1123 $scope.$watch('validationVal',function(newVal,old){
1124 if(newVal){
1125 if($scope.validationVa!="" && !isNaN($scope.validationVal) && $scope.validationVal.toString().length==4){
1126 $('.loginBtn').addClass('btnBg');
1127 }else{
1128 $('.loginBtn').removeClass('btnBg');
1129 }
1130 }
1131 })
1132
1133 // $(window).bind("load resize",function(){
1134 // $(".loginBox").css({zoom:$(window).width()/320,visibility:"visible"});
1135 // });
1136 }])
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179 ;
1180 ///<jscompress sourcefile="mainController.js" />
1181 angular.module('myApp')
1182 .controller('mainController',['$scope','$rootScope','dingdaService','$state','globalService',function($scope,$rootScope,dingdaService,$state,globalService){
1183
1184 $rootScope.isRendBike = false;
1185 $rootScope.isLoadFinish = false;
1186 $scope.unfinishOrder = {};
1187
1188 var init = function() {
1189 // globalService.init();
1190 $scope.userinfo = globalService.getData("user");
1191 if(!$scope.userinfo) {
1192 $scope.userinfo = {};
1193 $scope.userinfo.userName = "未登录";
1194 $scope.userinfo.loginState = false;
1195 } else {
1196 $scope.userinfo.loginState = true;
1197 // alert("getUnfinishedOrder")
1198 dingdaService.getUnfinishedOrder().success(function(data , status){
1199 // alert(JSON.stringify(data))
1200 if(data.data.unfinishedOrder.id) {
1201 $rootScope.isRendBike = true;
1202 $scope.unfinishOrder = data.data.unfinishedOrder;
1203 }
1204 if(data.data.unfinishedOrder.status == 200) {
1205 layer.open({
1206 content: '您有未支付的订单,是否前往支付?',
1207 btn: ['确认', '取消'],
1208 shadeClose: false,
1209 yes: function(index){
1210 layer.close(index);
1211 $state.go('tripDetail' , { orderId : $scope.unfinishOrder.id});
1212 return;
1213 },no: function(index){
1214 layer.close(index);
1215 }
1216 });
1217 }
1218 }).error(function(data , status) {
1219 console.log(JSON.stringify(data))
1220 })
1221 }
1222 $scope.moduleList = [];
1223 $scope.moduleList.push({
1224 name : "行程记录",
1225 icon : "images/trip.png",
1226 state : "trip"
1227 });
1228 $scope.moduleList.push({
1229 name : "钱包",
1230 icon : "images/wallet.png",
1231 state : "wallet"
1232 });
1233 $scope.moduleList.push({
1234 name : "保证金",
1235 icon : "images/bond.png",
1236 state : "bond"
1237 });
1238 $scope.moduleList.push({
1239 name : "联系我们",
1240 icon : "images/contact.png",
1241 state : "contact"
1242 });
1243 $scope.moduleList.push({
1244 name : "意见反馈",
1245 icon : "images/opinion.png",
1246 state : "opinion"
1247 });
1248 }
1249
1250 $scope.doAction = function(index) {
1251 if($scope.checkLogin()) {
1252 var arg = {};
1253 if(index == 2 || index == 4) {
1254 arg = {longitude: $rootScope.currentPoint.longitude , latitude: $rootScope.currentPoint.latitude };
1255 }
1256 if(index == 3) {
1257 location.href = "http://wx.dy.dingdatech.com/contactUs.html";
1258 } else {
1259 $state.go($scope.moduleList[index].state, arg);
1260 }
1261 }
1262 }
1263
1264 $scope.checkLogin = function() {
1265 if(!globalService.getData("user")) {
1266 $state.go('login', {}, {reload: true});
1267 return false;
1268 }
1269 return true;
1270 }
1271
1272 $scope.logout = function() {
1273 $scope.userinfo = {};
1274 $scope.userinfo.userName = "未登录";
1275 $scope.userinfo.loginState = false;
1276 globalService.clearData("user");
1277 location.reload()
1278 }
1279
1280 var initScan = function() {
1281 $rootScope.openScan = false;
1282 $rootScope.openDetail = false;
1283 $rootScope.openMenu = false;
1284 $rootScope.openRing = false;
1285 $rootScope.$watch("openScan",function(newVal, oldVal){
1286 if(newVal !== oldVal && newVal) {
1287 if(!$scope.checkLogin()) {
1288 return;
1289 }
1290
1291 if($scope.unfinishOrder.status == 200) {
1292 $state.go('tripDetail' , { orderId : $scope.unfinishOrder.id});
1293 return;
1294 }
1295 $rootScope.openScan = false;
1296 wx.scanQRCode({
1297 needResult: 1, // 默认为1,扫描结果由微信处理,1则直接返回扫描结果,
1298 scanType: ["qrCode","barCode"], // 可以指定扫二维码还是一维码,默认二者都有
1299 success: function (res) {
1300 var result = res.resultStr; // 当needResult 为 1 时,扫码返回的结果
1301 // alert(result);
1302 dingdaService.verifyScanCode(result).success(function(data , status){
1303 // alert(JSON.stringify(data))
1304 if(data.meta.code == 200) {
1305 if(data.data.orderDetail.id) {
1306
1307 layer.open({
1308 content: "租车成功,订单号为:" + data.data.orderDetail.id,
1309 time:2
1310 });
1311 // alert("租车成功,订单号为:" + data.data.orderDetail.id);
1312 $rootScope.isRendBike = true;
1313
1314 $state.go('rentDetail', {}, {reload: true});
1315
1316 }
1317 } else if(data.meta.code == 202) {
1318 layer.open({
1319 content: data.meta.message,
1320 time:2
1321 });
1322 $state.go('bond', {longitude: $rootScope.currentPoint.longitude , latitude: $rootScope.currentPoint.latitude });
1323 } else {
1324 layer.open({
1325 content: data.meta.message,
1326 time:2
1327 });
1328 }
1329 }).error(function(data , status){
1330 layer.open({
1331 content: "租车失败" + JSON.stringify(data),
1332 time:2
1333 });
1334 });
1335 }
1336 });
1337 }
1338 })
1339 $rootScope.$watch("openDetail",function(newVal, oldVal){
1340 if(newVal === oldVal) return;
1341
1342 if(newVal) {
1343 dingdaService.getUnfinishedOrder().success(function(data , status){
1344 if(data.meta.code == 200) {
1345 if(!data.data.unfinishedOrder.id) {
1346 layer.open({
1347 content: '租车完成',
1348 time:2
1349 });
1350 // alert("租车完成")
1351 $state.go('main');
1352 }
1353 }
1354
1355 if(data.data.unfinishedOrder.status == 200) {
1356 $state.go('tripDetail' , { orderId : data.data.unfinishedOrder.id});
1357 } else {
1358 $state.go('rentDetail', {}, {reload: true});
1359 }
1360 }).error(function(data , status) {
1361 console.log(JSON.stringify(data))
1362 })
1363
1364 }
1365 })
1366 $rootScope.$watch("openRing",function(newVal, oldVal){
1367 // TODO open new message
1368 })
1369 $rootScope.$watch("isLoadFinish" , function(newVal , oldVal){
1370 if(newVal === oldVal) return;
1371 if(newVal) {
1372 document.getElementById("sliderMenu").style.display = "block";
1373 }
1374 })
1375
1376 document.getElementById("sliderMenu").addEventListener("touchmove", function(){
1377 return;
1378 } , false);
1379 }
1380
1381 // mui.init();
1382 initScan();
1383 init();
1384
1385
1386 }]);
1387 ;
1388 ///<jscompress sourcefile="mapController.js" />
1389 angular.module('myApp')
1390 .controller('mapController',['$scope','$rootScope','dingdaService','globalService','$state',function($scope,$rootScope,dingdaService,globalService,$state){
1391 var myMarker;
1392 var markers = [];
1393 var overlays = [];
1394 var walking;
1395 var infoControl;
1396 var scanControl;
1397 var map;
1398 var endPosition;
1399 var polyline;
1400
1401 $rootScope.currentPoint = {};
1402
1403 var rendBike = function() {
1404 scanControl.hide();
1405 infoControl.show();
1406 }
1407
1408 var returnBike = function() {
1409 scanControl.show();
1410 infoControl.hide();
1411 }
1412
1413 $scope.$watch("isRendBike",function(newVal, oldVal){
1414 if(newVal === oldVal){
1415 return;
1416 }
1417 if(newVal) {
1418 rendBike();
1419 } else {
1420 returnBike();
1421 }
1422 })
1423
1424 var initMap = function() {
1425 map = new BMap.Map("mapContainer");
1426 map.centerAndZoom(new BMap.Point(120.124421, 30.279879), 15);
1427
1428 map.addEventListener("click", function() {
1429
1430 for(var i = 0 ; i < overlays.length ; i++) {
1431 overlays[i].hide();
1432 }
1433 $scope.$apply(function() {
1434 $rootScope.openMenu = false;
1435 })
1436 });
1437 initMapControl(map);
1438 }
1439
1440 var onSearchComplete = function(result) {
1441 map.removeOverlay(polyline);
1442 var route = result.tr[0].ek[0].vr;
1443 route.unshift(myMarker.position);
1444 route.push(endPosition)
1445 polyline = new BMap.Polyline(route);
1446 polyline.setStrokeColor("#36D1E7");
1447 polyline.setStrokeOpacity(1);
1448 polyline.setStrokeWeight(3);
1449 polyline.setStrokeStyle("solid");
1450 map.addOverlay(polyline);
1451 }
1452
1453 var initMarker = function(point) {
1454 map.setCenter(point);
1455 walking = new BMap.WalkingRoute(map, {renderOptions:{map: null, autoViewport: true}})
1456 walking.setSearchCompleteCallback(onSearchComplete);
1457 initMyMarker(point , map);
1458 refreshNewPoints(point);
1459 }
1460
1461 var refreshNewPoints = function(point) {
1462
1463 // if(!globalService.getData('user').token) {
1464 // return;
1465 // }
1466
1467 dingdaService.getStationList(point.lng , point.lat).success(function(data , status) {
1468 // dingdaService.getStationList(120.18893141 , 30.2284141).success(function(data , status) {
1469 // alert(JSON.stringify(data))
1470 // console.log(JSON.stringify(data))
1471 initMarkers(data.data.stationLists , map);
1472 }).error(function(data , status) {
1473
1474 })
1475 }
1476
1477 var initMyMarker = function(point , map) {
1478
1479 $rootScope.isLoadFinish = true;
1480 myMarker = new MyMark(point);
1481 map.addOverlay(myMarker);
1482 }
1483
1484 var initMarkers = function(points , map) {
1485 for(var i = 0 ; i < markers.length ; i++) {
1486 // document.getElementById("mapContainer").removeChild(markers[i].div);
1487 map.removeOverlay(markers[i]);
1488 markers[i].div.parentElement.removeChild(markers[i].div);
1489 // document.getElementById("mapContainer").removeChild(overlays[i].div);
1490 map.removeOverlay(overlays[i]);
1491 overlays[i].div.parentElement.removeChild(overlays[i].div);
1492 }
1493 markers = [];
1494 overlays = [];
1495 for(var i = 0 ; i < points.length ; i++) {
1496 var marker = new SiteOverlay(new BMap.Point(points[i].longitude, points[i].latitude) , i , points[i]);
1497 map.addOverlay(marker);
1498 markers.push(marker);
1499 }
1500
1501 }
1502
1503 function RelocateControl(){
1504 this.defaultAnchor = BMAP_ANCHOR_BOTTOM_LEFT;
1505 this.defaultOffset = new BMap.Size(0, 0);
1506 }
1507
1508 function ScanControl(){
1509 this.defaultAnchor = BMAP_ANCHOR_BOTTOM_LEFT;
1510 this.defaultOffset = new BMap.Size(0, 0);
1511 }
1512
1513 function InfoControl(){
1514 this.defaultAnchor = BMAP_ANCHOR_BOTTOM_LEFT;
1515 this.defaultOffset = new BMap.Size(0, 0);
1516 }
1517
1518 function MenuControl(){
1519 this.defaultAnchor = BMAP_ANCHOR_TOP_LEFT;
1520 this.defaultOffset = new BMap.Size(0, 13);
1521 }
1522
1523 function RingControl(){
1524 this.defaultAnchor = BMAP_ANCHOR_TOP_LEFT;
1525 this.defaultOffset = new BMap.Size(0, 66);
1526 }
1527
1528 var initMapControl = function(map) {
1529 ScanControl.prototype = new BMap.Control();
1530 ScanControl.prototype.initialize = function(map){
1531 var scanControl = document.createElement("div");
1532 scanControl.className = "scanControl";
1533
1534 var scanControlContainer = document.createElement("div");
1535 scanControlContainer.className = "scanControlContainer";
1536
1537 var scanControlContent = document.createElement("div");
1538 scanControlContent.className = "scanControlContent";
1539
1540 var img = document.createElement("img");
1541 img.className = "spanResize";
1542 img.src = "images/scancode.png";
1543
1544 scanControlContent.innerHTML = img.outerHTML + " 扫码租车";
1545
1546 scanControlContainer.onclick = function() {
1547 $scope.$apply(function() {
1548 $rootScope.openScan = true;
1549 })
1550 }
1551 scanControlContainer.appendChild(scanControlContent);
1552 scanControl.appendChild(scanControlContainer);
1553
1554 map.getContainer().appendChild(scanControl);
1555 return scanControl;
1556 }
1557 scanControl = new ScanControl();
1558 map.addControl(scanControl);
1559
1560 InfoControl.prototype = new BMap.Control();
1561 InfoControl.prototype.initialize = function(map){
1562 var infoControl = document.createElement("div");
1563 infoControl.className = "scanControl";
1564
1565 var infoControlContainer = document.createElement("div");
1566 infoControlContainer.className = "scanControlContainer";
1567
1568 var infoControlContent = document.createElement("div");
1569 infoControlContent.className = "scanControlContent";
1570
1571 var img = document.createElement("img");
1572 img.className = "spanResize";
1573 img.src = "images/details.png";
1574
1575 infoControlContent.innerHTML = img.outerHTML + " 租车详情";
1576
1577 infoControlContainer.onclick = function() {
1578 $scope.$apply(function() {
1579 $rootScope.openDetail = true;
1580 })
1581 }
1582 infoControlContainer.appendChild(infoControlContent);
1583 infoControl.appendChild(infoControlContainer);
1584
1585 map.getContainer().appendChild(infoControl);
1586 return infoControl;
1587 }
1588 infoControl = new InfoControl();
1589 map.addControl(infoControl);
1590 infoControl.hide();
1591
1592 RelocateControl.prototype = new BMap.Control();
1593 RelocateControl.prototype.initialize = function(map){
1594 var relocateControl = document.createElement("div");
1595 relocateControl.className = "locateControlContainer";
1596 relocateControl.index = 1;
1597
1598 var relocateControlContent = document.createElement("div");
1599 relocateControlContent.className = "locateControlContent";
1600 var relocateControlContentCenter = document.createElement("div");
1601 relocateControlContentCenter.className = "locateControlContentCenter";
1602 relocateControlContent.appendChild(relocateControlContentCenter);
1603 relocateControl.appendChild(relocateControlContent);
1604
1605 relocateControl.onclick = function() {
1606 map.panTo(myMarker.position);
1607 map.setZoom(15);
1608 }
1609 map.getContainer().appendChild(relocateControl);
1610 return relocateControl;
1611 }
1612 var relocateControl = new RelocateControl();
1613 map.addControl(relocateControl);
1614
1615
1616 MenuControl.prototype = new BMap.Control();
1617 MenuControl.prototype.initialize = function(map){
1618 var menuControl = document.createElement("div");
1619 menuControl.className = "menuControl";
1620 menuControl.index = 1;
1621
1622 var menuControlContent = document.createElement("img");
1623 menuControlContent.src = "images/me.png";
1624
1625 menuControl.appendChild(menuControlContent);
1626
1627 menuControl.onclick = function() {
1628 $scope.$apply(function() {
1629 // alert(!globalService.getData("user"))
1630 if(!globalService.getData("user")) {
1631 $state.go('login');
1632 return;
1633 }
1634 $rootScope.openMenu = !$rootScope.openMenu;
1635 })
1636 }
1637 map.getContainer().appendChild(menuControl);
1638 return menuControl;
1639 }
1640 var menuControl = new MenuControl();
1641 map.addControl(menuControl);
1642
1643 RingControl.prototype = new BMap.Control();
1644 RingControl.prototype.initialize = function(map){
1645 var ringControl = document.createElement("div");
1646 ringControl.className = "menuControl";
1647 ringControl.index = 1;
1648
1649 var ringControlContent = document.createElement("img");
1650 ringControlContent.src = "images/new.png";
1651
1652 ringControl.appendChild(ringControlContent);
1653
1654 ringControl.onclick = function() {
1655 $scope.$apply(function() {
1656 $rootScope.openRing = !$rootScope.openRing;
1657 })
1658 }
1659 map.getContainer().appendChild(ringControl);
1660 return ringControl;
1661 }
1662 // var ringControl = new RingControl();
1663 // map.addControl(ringControl);
1664
1665 var opts = {
1666 type: BMAP_NAVIGATION_CONTROL_SMALL,
1667 anchor : BMAP_ANCHOR_BOTTOM_RIGHT
1668 }
1669 map.addControl(new BMap.NavigationControl(opts));
1670 }
1671
1672 var initLocation = function(isForce) {
1673 // var options = {
1674 // enableHighAccuracy:true,
1675 // maximumAge:1000
1676 // }
1677
1678 getlocation();
1679 function getlocation() {
1680 wx.getLocation({
1681 type: 'gcj02', // 默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02'
1682 success: function (res) {
1683 onSuccess(res)
1684 }
1685 });
1686 }
1687
1688
1689 function onSuccess(position){
1690 var longitude = position.longitude;
1691 var latitude = position.latitude;
1692 $rootScope.currentPoint = {
1693 longitude : longitude ,
1694 latitude : latitude
1695 }
1696 var convertor = new BMap.Convertor();
1697 var pointArr = [];
1698 pointArr.push(new BMap.Point(longitude, latitude));
1699 convertor.translate(pointArr, 3, 5, function(data){
1700 var point = data.points[0];
1701 // var point = new BMap.Point(120.1965, 30.23048);
1702 if(!myMarker) {
1703 initMarker(point);
1704 // setInterval(function(){
1705 // if(!myMarker) return;
1706 // getlocation();
1707 //// navigator.geolocation.getCurrentPosition(onSuccess,onError,options);
1708 // } , 1000 * 60 * 60);
1709 } else {
1710 myMarker.position = point;
1711 if(isForce) {
1712 var map = myMarker.getMap();
1713 map.panTo(point);
1714 }
1715 refreshNewPoints(point);
1716 }
1717 })
1718 }
1719
1720 // function onError(error){
1721 // switch(error.code){
1722 // case 1:
1723 // alert("位置服务被拒绝");
1724 // break;
1725 // case 2:
1726 // alert("暂时获取不到位置信息");
1727 // break;
1728 // case 3:
1729 // alert("获取信息超时");
1730 // break;
1731 // case 4:
1732 // alert("未知错误");
1733 // break;
1734 // }
1735 // initLocation();
1736 // }
1737 // if (navigator.geolocation) {
1738 // navigator.geolocation.getCurrentPosition(onSuccess,onError,options);
1739 // } else {
1740 // alert("无法获取地理位置信息");
1741 // }
1742 }
1743
1744 function CustomOverlay(position, index , info) {
1745 this.index = index;
1746 this.position = position;
1747 this.info = info;
1748 this.isDisplay = false;
1749 }
1750
1751 function SiteOverlay(position , index , info) {
1752 this.index = index;
1753 this.position = position;
1754 this.info = info;
1755 this.isDisplay = true;
1756 }
1757
1758 function MyMark(position) {
1759 this.position = position;
1760 }
1761
1762 var initCustomOverlay = function() {
1763 CustomOverlay.prototype = new BMap.Overlay();
1764 //定义construct,实现这个接口来初始化自定义的Dom元素
1765 CustomOverlay.prototype.initialize = function(map) {
1766 this.map = map;
1767 var container = this.div = document.createElement("div");
1768 container.className = "overlayContainer";
1769
1770 var leftPanel = document.createElement("div");
1771 leftPanel.className = "overlayPanelLeft";
1772 var leftPanelContentContainer = document.createElement("div");
1773 leftPanelContentContainer.className = "overlayPanelLeftContentContainer";
1774 var leftPanelContent = document.createElement("div");
1775 leftPanelContent.className = "overlayPanelLeftContent";
1776 leftPanelContent.innerText = this.info.name;
1777
1778 leftPanelContentContainer.appendChild(leftPanelContent);
1779 leftPanel.appendChild(leftPanelContentContainer);
1780
1781 var centerPanel = document.createElement("div");
1782 centerPanel.className = "overlayPanelCenter";
1783 var centerPanelContentTop = document.createElement("div");
1784 centerPanelContentTop.className = "overlayPanelCenterContent overlayPanelCenterContentTop";
1785 if(!$scope.isRendBike) {
1786 centerPanelContentTop.className += " act";
1787 }
1788 centerPanelContentTop.innerText = "可借:" + this.info.enHireNum;
1789 var centerPanelContentBottom = document.createElement("div");
1790 centerPanelContentBottom.className = "overlayPanelCenterContent overlayPanelCenterContentBottom";
1791 if($scope.isRendBike) {
1792 centerPanelContentBottom.className += " act";
1793 }
1794 centerPanelContentBottom.innerText = "可还:" + this.info.disHireNum;
1795
1796 centerPanel.appendChild(centerPanelContentTop);
1797 centerPanel.appendChild(centerPanelContentBottom);
1798
1799 var rightPanel = document.createElement("div");
1800 rightPanel.className = "overlayPanelRight";
1801
1802 var rightPanelContentContainer = document.createElement("div");
1803 rightPanelContentContainer.className = "overlayPanelRightContentContainer";
1804 var rightPanelContent = document.createElement("div");
1805 rightPanelContent.className = "overlayPanelRightContent";
1806
1807 rightPanelContentContainer.appendChild(rightPanelContent);
1808 rightPanel.appendChild(rightPanelContentContainer);
1809
1810
1811 var corner = document.createElement("img");
1812 corner.className = "corner";
1813 corner.src = "images/triangle.png"
1814
1815 leftPanel.appendChild(centerPanel);
1816 container.appendChild(leftPanel);
1817 container.appendChild(rightPanel);
1818 container.appendChild(corner)
1819 //将dom添加到覆盖物层
1820 var panes = map.getPanes();
1821 var self = this;
1822
1823 rightPanel.onclick = function() {
1824 walking.clearResults();
1825 walking.search(myMarker.position, self.position);
1826 endPosition = self.position;
1827 }
1828
1829
1830 rightPanel.addEventListener("touchend", function() {
1831 rightPanel.onclick();
1832
1833 });
1834 //设置panes的层级,overlayMouseTarget可接收点击事件
1835 panes.labelPane.appendChild(container);
1836
1837 }
1838 //实现draw接口来绘制和更新自定义的dom元素
1839 CustomOverlay.prototype.draw = function() {
1840 var pixel = this.map.pointToOverlayPixel(this.position);
1841 var divStyle = this.div.style;
1842 divStyle.left = pixel.x - 90 + "px";
1843 divStyle.top = pixel.y - 70 + "px";
1844 }
1845
1846 CustomOverlay.prototype.show = function(info) {
1847 if(info) {
1848 this.info = info;
1849 var topEle = this.div.getElementsByClassName("overlayPanelCenterContentTop");
1850 topEle[0].innerText = "可借:" + info.enHireNum;
1851 var bottomEle = this.div.getElementsByClassName("overlayPanelCenterContentBottom");
1852 bottomEle[0].innerText = "可还:" + info.disHireNum;
1853 } else {
1854 this.div.style.display = "block";
1855 this.isDisplay = true;
1856 var topEle = this.div.getElementsByClassName("overlayPanelCenterContentTop");
1857 topEle[0].innerText = "可借:0";
1858 var bottomEle = this.div.getElementsByClassName("overlayPanelCenterContentBottom");
1859 bottomEle[0].innerText = "可还:0";
1860 }
1861
1862 }
1863
1864 CustomOverlay.prototype.hide = function() {
1865 this.div.style.display = "none";
1866 this.isDisplay = false;
1867 }
1868 SiteOverlay.prototype = new BMap.Overlay();
1869 //定义construct,实现这个接口来初始化自定义的Dom元素
1870 SiteOverlay.prototype.initialize = function(map) {
1871 this.map = map;
1872 var container = this.div = document.createElement("div");
1873 container.className = "siteOverlay";
1874 var img = document.createElement("img");
1875 img.src = "images/site.png";
1876 container.appendChild(img);
1877 //将dom添加到覆盖物层
1878 var panes = map.getPanes();
1879
1880 var self = this;
1881 var overlay = new CustomOverlay(self.position, self.index , self.info);
1882 overlays.push(overlay);
1883 map.addOverlay(overlay);
1884 container.onclick = function() {
1885 map.panTo(self.position);
1886 for(var i = 0 ; i < overlays.length ; i++) {
1887 overlays[i].hide();
1888 }
1889 if(overlay.isDisplay) {
1890 overlay.hide();
1891 } else {
1892 setTimeout(function(){
1893 overlay.show();
1894 } , 100);
1895 // var t1 = new Date().getTime();
1896 dingdaService.getStationById(self.info.id).success(
1897 function(data , status) {
1898 // alert(JSON.stringify(data.data) + " , Cost time : " + (new Date().getTime() - t1))
1899
1900 setTimeout(function(){
1901 overlay.show(data.data.station);
1902 } , 100);
1903 }
1904 );
1905
1906 }
1907
1908 }
1909
1910 container.addEventListener("touchend", function() {
1911 container.onclick();
1912 });
1913 //设置panes的层级,overlayMouseTarget可接收点击事件
1914 panes.labelPane.appendChild(container);
1915
1916 }
1917 //实现draw接口来绘制和更新自定义的dom元素
1918 SiteOverlay.prototype.draw = function() {
1919 var pixel = this.map.pointToOverlayPixel(this.position);
1920 // alert(JSON.stringify(pixel))
1921 var divStyle = this.div.style;
1922 divStyle.left = pixel.x - 13.5 + "px";
1923 divStyle.top = pixel.y - 13.5 + "px";
1924 }
1925
1926 SiteOverlay.prototype.show = function() {
1927 this.div.style.display = "block";
1928 this.isDisplay = true;
1929 }
1930
1931 SiteOverlay.prototype.hide = function() {
1932 this.div.style.display = "none";
1933 this.isDisplay = false;
1934 }
1935
1936 MyMark.prototype = new BMap.Overlay();
1937 //定义construct,实现这个接口来初始化自定义的Dom元素
1938 MyMark.prototype.initialize = function(map) {
1939 this.map = map;
1940 var container = this.div = document.createElement("div");
1941 container.className = "myMarker";
1942 var img = document.createElement("img");
1943 img.src = "images/myposition.png";
1944 container.appendChild(img);
1945 //将dom添加到覆盖物层
1946 var panes = map.getPanes();
1947
1948 //设置panes的层级,overlayMouseTarget可接收点击事件
1949 panes.labelPane.appendChild(container);
1950
1951 }
1952 //实现draw接口来绘制和更新自定义的dom元素
1953 MyMark.prototype.draw = function() {
1954 var pixel = this.map.pointToOverlayPixel(this.position);
1955 // alert(JSON.stringify(pixel))
1956 var divStyle = this.div.style;
1957 divStyle.left = pixel.x - 25 + "px";
1958 divStyle.top = pixel.y - 37 + "px";
1959 }
1960
1961 }
1962
1963 // mui.init();
1964
1965 initCustomOverlay();
1966 initMap();
1967 wx.ready(function() {
1968 initLocation();
1969 })
1970
1971 }]);;
1972 ///<jscompress sourcefile="opinionController.js" />
1973 angular.module('myApp')
1974 .controller('opinionController',['$scope','$rootScope','dingdaService','$state','globalService','$stateParams',
1975 function($scope,$rootScope,dingdaService,$state,globalService,$stateParams){
1976
1977 $scope.opinion = "";
1978
1979 $scope.submit = function() {
1980 if($scope.opinion.length == 0) {
1981 return;
1982 }
1983 if($scope.opinion.length > 200) {
1984 layer.open({
1985 content: "超出字数限制",
1986 time:2
1987 });
1988 } else {
1989 var phoneType = navigator.userAgent.match(/\(.*?\)/);
1990 var wx = navigator.userAgent.match(/MicroMessenger\/.*?[ ]/);
1991
1992 // alert(phoneType)
1993 var data = {
1994 content : $scope.opinion ,
1995 latitude : $stateParams.latitude ,
1996 longitude : $stateParams.longitude ,
1997 phoneType : phoneType[0] ,
1998 systemType : wx[0]
1999 }
2000
2001
2002 dingdaService.comment(data).success(function(data , status) {
2003 if(data.meta.code != 200) {
2004 layer.open({
2005 content: data.meta.message,
2006 time:2
2007 });
2008 return;
2009 }
2010 layer.open({
2011 content: "评论成功",
2012 time:2
2013 });
2014 setTimeout(function() {
2015 location.reload();
2016 } , 300);
2017 history.back();
2018 }).error(function(data , status){
2019 alert(JSON.stringify(data))
2020
2021 })
2022 }
2023 }
2024
2025 }]);;
2026 ///<jscompress sourcefile="payController.js" />
2027 angular.module('myApp')
2028 .controller('payController',['$scope','$rootScope','dingdaService','$state','globalService',function($scope,$rootScope,dingdaService,$state,globalService){
2029
2030 var init = function() {
2031 // globalService.init();
2032 }
2033
2034 // mui.init();
2035 init();
2036
2037 $scope.pay = function() {
2038 alert("充值")
2039 }
2040 }]);;
2041 ///<jscompress sourcefile="prepayController.js" />
2042 angular.module('myApp')
2043 .controller('prepayController',['$scope','$rootScope','dingdaService','$state','globalService','wechatPayment',function($scope,$rootScope,dingdaService,$state,globalService,wechatPayment){
2044
2045 $scope.account = "";
2046
2047 var init = function() {
2048 // globalService.init();
2049 }
2050
2051 // mui.init();
2052 init();
2053 var ispay = false;
2054 $scope.prepay = function() {
2055 if(ispay) return;
2056 if($scope.account == ""){
2057 layer.open({
2058 content: '请输入充值金额',
2059 time:1
2060 });
2061 return;
2062 };
2063
2064 if($scope.account < 1) {
2065 layer.open({
2066 content: '充值金额至少为1元',
2067 time:1
2068 });
2069 return;
2070 }
2071 ispay = true;
2072 wechatPayment.callBalanceRecharge($scope.account)
2073 .then(function(result){
2074
2075 ispay = false;
2076 //支付成功
2077 // $state.go('wallet',{},{reload:true});
2078 window.history.back();
2079 }, function(errMsg){
2080
2081 ispay = false;
2082 //支付失败
2083 })
2084
2085 // alert("充值 : " + $scope.account + "元")
2086 }
2087 }]);;
2088 ///<jscompress sourcefile="rechargeListController.js" />
2089 angular.module('myApp')
2090 .controller('rechargeListController',function($scope,$rootScope,$state){
2091 $scope.rechargeList = [
2092 {
2093 rechargeType:'微信充值',
2094 rechargeTime:'2016-01-17 16:16:23',
2095 rechargeMoney:100
2096 },
2097 {
2098 rechargeType:'微信充值',
2099 rechargeTime:'2016-01-17 16:16:23',
2100 rechargeMoney:200
2101 }
2102 ]
2103 });
2104 ///<jscompress sourcefile="rentDetailController.js" />
2105 angular.module('myApp')
2106 .controller('rentDetailController',['$scope','$rootScope','$state','dingdaService' ,function($scope,$rootScope,$state,dingdaService){
2107
2108 $scope.detail = {};
2109 $scope.costTime = "";
2110 var oldTime;
2111
2112 $scope.backHome = function(){
2113 $state.go('main');
2114 }
2115
2116 var init = function() {
2117 dingdaService.getUnfinishedOrder().success(function(data , status){
2118 // alert(JSON.stringify(data))
2119
2120 if(data.meta.code == 200) {
2121 if(!data.data.unfinishedOrder.id) {
2122 $state.go('main');
2123 }
2124 }
2125
2126 if(data.data.unfinishedOrder.status == 200) {
2127 $state.go('tripDetail' , { orderId : data.data.unfinishedOrder.id});
2128 }
2129
2130 dingdaService.getOrderRealTimeInfo(data.data.unfinishedOrder.id)
2131 .success(function(data , status){
2132 // alert(JSON.stringify(data))
2133
2134 $scope.datail = data.data.orderDetail;
2135
2136
2137 setInterval(function(){
2138 $scope.$apply(function(){
2139 var h = Math.floor($scope.datail.rentTime / 3600);
2140 var m = Math.floor($scope.datail.rentTime % 3600 / 60);
2141 var s = $scope.datail.rentTime % 60;
2142
2143 if(h < 10) {
2144 h = "0" + h;
2145 }
2146 if(m < 10) {
2147 m = "0" + m;
2148 }
2149 if(s < 10) {
2150 s = "0" + s;
2151 }
2152
2153 $scope.costTime = h + ":" + m + ":" + s;
2154 // console.log($scope.costTime)
2155 if($scope.datail.freeTime <= $scope.datail.rentTime) {
2156 $scope.detail.freeCountdown = "00:00";
2157 } else {
2158 var minute = Math.floor(( $scope.datail.freeTime - $scope.datail.rentTime ) / 60);
2159 if(minute < 10) {
2160 minute = "0" + minute;
2161 }
2162 var second = ( $scope.datail.freeTime - $scope.datail.rentTime ) % 60;
2163 if(second < 10) {
2164 second = "0" + second;
2165 }
2166 $scope.detail.freeCountdown = minute + ":" + second;
2167 }
2168 $scope.datail.rentTime++;
2169 })
2170 } , 1000);
2171
2172 }).error(function(data , status){
2173
2174 })
2175 }).error(function(data , status) {
2176 console.log(JSON.stringify(data))
2177 })
2178 }
2179
2180 init();
2181
2182 // ������ж�ʱ��
2183 setTimeout(function() {
2184 var href = new String(location.href);
2185 if(href.indexOf("rentDetail") > 0) location.reload();
2186 } , 30000)
2187
2188 $scope.alreadyBack = function(){
2189 $state.go('unusual' , { id : $scope.datail.id});
2190 }
2191
2192 }]);
1 <jscompress public="http://www.jscompress.cn/" command="import-combineset">
2 <combinefile path="compress.min.js">
3 <auto value="1" />
4 <sourcefile path="\\psf\Home\Desktop\aws\dongyangwebchat\wechat\js\app.js" />
5 <sourcefile path="\\psf\Home\Desktop\aws\dongyangwebchat\wechat\js\service\wechatPaymentService.js" />
6 <sourcefile path="\\psf\Home\Desktop\aws\dongyangwebchat\wechat\js\service\weixinConfig.js" />
7 <sourcefile path="\\psf\Home\Desktop\aws\dongyangwebchat\wechat\js\service\dingdaService.js" />
8 <sourcefile path="\\psf\Home\Desktop\aws\dongyangwebchat\wechat\js\service\globalService.js" />
9 <sourcefile path="\\psf\Home\Desktop\aws\dongyangwebchat\wechat\js\controller\tripController.js" />
10 <sourcefile path="\\psf\Home\Desktop\aws\dongyangwebchat\wechat\js\controller\tripDetailController.js" />
11 <sourcefile path="\\psf\Home\Desktop\aws\dongyangwebchat\wechat\js\controller\unusualController.js" />
12 <sourcefile path="\\psf\Home\Desktop\aws\dongyangwebchat\wechat\js\controller\walletController.js" />
13 <sourcefile path="\\psf\Home\Desktop\aws\dongyangwebchat\wechat\js\controller\bondController.js" />
14 <sourcefile path="\\psf\Home\Desktop\aws\dongyangwebchat\wechat\js\controller\bondPayController.js" />
15 <sourcefile path="\\psf\Home\Desktop\aws\dongyangwebchat\wechat\js\controller\bondSuccessController.js" />
16 <sourcefile path="\\psf\Home\Desktop\aws\dongyangwebchat\wechat\js\controller\contactController.js" />
17 <sourcefile path="\\psf\Home\Desktop\aws\dongyangwebchat\wechat\js\controller\loginController.js" />
18 <sourcefile path="\\psf\Home\Desktop\aws\dongyangwebchat\wechat\js\controller\mainController.js" />
19 <sourcefile path="\\psf\Home\Desktop\aws\dongyangwebchat\wechat\js\controller\mapController.js" />
20 <sourcefile path="\\psf\Home\Desktop\aws\dongyangwebchat\wechat\js\controller\opinionController.js" />
21 <sourcefile path="\\psf\Home\Desktop\aws\dongyangwebchat\wechat\js\controller\payController.js" />
22 <sourcefile path="\\psf\Home\Desktop\aws\dongyangwebchat\wechat\js\controller\prepayController.js" />
23 <sourcefile path="\\psf\Home\Desktop\aws\dongyangwebchat\wechat\js\controller\rechargeListController.js" />
24 <sourcefile path="\\psf\Home\Desktop\aws\dongyangwebchat\wechat\js\controller\rentDetailController.js" />
25 </combinefile>
26 </jscompress>
...\ No newline at end of file ...\ No newline at end of file
1 /**
2 * Created by zhanghong on 15/3/8.
3 */angular.module("myApp.services",["LocalStorageModule"]);angular.module("myApp.directives",[]);var app=angular.module("myApp",["ui.router","myApp.services","myApp.directives"]);app.config(["$stateProvider","$urlRouterProvider",function(a,c){c.otherwise("/main");a.state("main",{url:"/main",templateUrl:"html/main.html"}).state("login",{url:"/login",templateUrl:"html/login.html"}).state("trip",{url:"/trip",templateUrl:"html/trip.html",controller:"tripController"}).state("wallet",{url:"/wallet",templateUrl:"html/wallet.html"}).state("bond",{url:"/bond/?longitude\x26latitude",templateUrl:"html/bond.html"}).state("contact",{url:"/contact",templateUrl:"html/contact.html"}).state("opinion",{url:"/opinion/?longitude\x26latitude",templateUrl:"html/opinion.html"}).state("tripDetail",{url:"/tripDetail/:orderId",templateUrl:"html/tripDetail.html",controller:"tripDetailController"}).state("prepay",{url:"/prepay",templateUrl:"html/prepay.html"}).state("pay",{url:"/pay",templateUrl:"html/pay.html"}).state("bondPay",{url:"/bondPay",templateUrl:"html/bondPay.html"}).state("bondSuccess",{url:"/bondSuccess",templateUrl:"html/bondSuccess.html"}).state("rentDetail",{url:"/rentDetail",templateUrl:"html/rentDetail.html"}).state("unusual",{url:"/unusual/:id",templateUrl:"html/unusual.html"}).state("rechargeList",{url:"/rechargeList",templateUrl:"html/rechargeList.html"})}]);app.run(["globalService",function(a){a.init();document.getElementById("appLoadingIndicator").style.display="none"}]);angular.module("myApp.services").service("wechatPayment",["$http","$q","$rootScope",function(a,c,b){var e=function(a,b){WeixinJSBridge.invoke("getBrandWCPayRequest",{appId:a.appId,timeStamp:a.timeStamp,nonceStr:a.nonceStr,"package":a.packageStr,signType:a.signType,paySign:a.paySign},function(a){"get_brand_wcpay_request:ok"==a.err_msg?(layer.open({content:"\u652f\u4ed8\u6210\u529f!",time:1}),b.resolve(a.err_msg)):("get_brand_wcpay_request:fail"==a.err_msg?(alert("\u652f\u4ed8\u5931\u8d25\uff1a"+JSON.stringify(a)),layer.open({content:"\u652f\u4ed8\u5931\u8d25!",time:1})):"get_brand_wcpay_request:cancel"==a.err_msg?layer.open({content:"\u652f\u4ed8\u53d6\u6d88!",time:1}):layer.open({content:"\u652f\u4ed8\u5f02\u5e38,"+a.err_msg,time:1}),b.reject(a.err_msg))})},d=function(b,d){var h=c.defer();a.post(b,d).success(function(a){200==a.meta.code?e(a.data.wechatDto,h):(layer.open({content:"\u652f\u4ed8\u7b7e\u540d\u5931\u8d25:code "+a.meta.code+","+a.meta.message,time:1}),h.reject(a.meta.message))});return h.promise};return{callRentPay:function(a,b){return d("http://finance.dy.dingdatech.com/service/bill/wx/"+a,{amount:b,body:"\u79df\u8f66\u79df\u91d1",type:101})},callDepositPay:function(a){return d("http://finance.dy.dingdatech.com/service/bail/wx",{amount:a,body:"\u4fdd\u8bc1\u91d1\u5145\u503c",type:101})},callBalanceRecharge:function(a){return d("http://finance.dy.dingdatech.com/service/balance/wx",{amount:a,body:"\u94b1\u5305\u5145\u503c",type:101})}}}]);function weixinOptionMenuInit(a,c,b,e){try{wx.config({debug:!1,appId:a,timestamp:c,nonceStr:b,signature:e,jsApiList:["scanQRCode","getLocation"]}),wx.error(function(a){layer.open({content:"\u5fae\u4fe1\u626b\u7801\u529f\u80fd\u4e0d\u80fd\u7528\uff0c\u65e0\u6cd5\u4f7f\u7528\u626b\u7801\u79df\u8f66",time:1})}),wx.ready(function(){wx.checkJsApi({jsApiList:["scanQRCode","getLocation"],success:function(a){1!=a.checkResult.scanQRCode&&layer.open({content:"\u60a8\u7684\u5fae\u4fe1\u7248\u672c\u592a\u4f4e\uff0c\u4e0d\u652f\u6301\u626b\u7801",time:1})}})})}catch(d){layer.open({content:"\u5fae\u4fe1\u626b\u7801\u529f\u80fd\u5f02\u5e38\uff0c\u65e0\u6cd5\u4f7f\u7528\u626b\u7801\u79df\u8f66",time:1})}}function initWeixinMenu(a){var c=encodeURIComponent(location.href.split("#")[0]);a.post("http://wechat.dy.dingdatech.com/wx/qrCodeParms",{webUrl:c}).success(function(a){a&&weixinOptionMenuInit(a.appid,a.timestamp,a.noncestr,a.signature)}).error(function(a){try{layer.open({content:"\u5fae\u4fe1jssdk\u914d\u7f6e\u63a5\u53e3\u5931\u8d25:"+JSON.stringify(a),time:1})}catch(e){layer.open({content:"\u5fae\u4fe1jssdk\u914d\u7f6e\u63a5\u53e3\u5931\u8d25:"+a,time:1})}})}angular.module("myApp.services").service("dingdaService",["$http","globalService",function(a,c){return{sendPhoneCode:function(b,e){var d=c.getParam("dingdaLoginAPI")+"/login/sms?mobile\x3d"+b+"\x26openId\x3d"+e;return a.get(d).success(function(a,b){}).error(function(a,b){alert(a.meta.message)})},verifyPhoneCode:function(b,e){var d=c.getParam("dingdaLoginAPI")+"/login/sms?mobile\x3d"+b+"\x26code\x3d"+e;return a.post(d,{},{}).success(function(a,b){}).error(function(a,b){alert(a.meta.message)})},getStationList:function(b,e){var d=c.getParam("dingdaAPI")+"/service/bicycle/stations?longitude\x3d"+b+"\x26latitude\x3d"+e;return a.get(d).success(function(a,b){}).error(function(a,b){alert(a.meta.message)})},getStationById:function(b){b=c.getParam("dingdaAPI")+"/service/bicycle/stations/"+b;return a.get(b).success(function(a,b){}).error(function(a,b){alert(a.meta.message)})},getUnfinishedOrder:function(){var b=c.getParam("dingdaAPI")+"/service/bicycle/orders/unfinished";return a.get(b).success(function(a,b){}).error(function(a,b){alert(a.meta.message)})},verifyScanCode:function(b){b=c.getParam("dingdaAPI")+"/service/bicycle/order?code\x3d"+b;return a.post(b,{}).success(function(a,b){}).error(function(a,b){alert(a.meta.message)})},getOrderRealTimeInfo:function(b){b=c.getParam("dingdaAPI")+"/service/bicycle/orders/detail/"+b;return a.get(b).success(function(a,b){}).error(function(a,b){alert(a.meta.message)})},getOrderList:function(b){b=c.getParam("dingdaAPI")+"/service/bicycle/orders?pageSize\x3d10\x26pageNum\x3d"+b;return a.get(b).success(function(a,b){}).error(function(a,b){alert(a.meta.message)})},getOrderFinishInfo:function(b){b=c.getParam("dingdaAPI")+"/service/bicycle/orders/"+b;return a.get(b).success(function(a,b){}).error(function(a,b){alert(a.meta.message)})},setOrderFinish:function(b){b=c.getParam("dingdaAPI")+"/service/bicycle/order/finish/"+b;return a.post(b,{}).success(function(a,b){}).error(function(a,b){alert(a.meta.message)})},payWX:function(b,e){var d=c.getParam("financeAPI")+"/service/bill/wx/"+b;return a.post(d,e).success(function(a,b){}).error(function(a,b){alert(a.meta.message)})},getWallet:function(){var b=c.getParam("financeAPI")+"/service/balance";return a.get(b).success(function(a,b){}).error(function(a,b){alert(a.meta.message)})},payWallet:function(b){var e=c.getParam("financeAPI")+"/service/balance/wx";return a.post(e,b).success(function(a,b){}).error(function(a,b){alert(a.meta.message)})},getWalletHistory:function(b){b=c.getParam("financeAPI")+"/service/balances?pageSize\x3d10\x26pageNum"+b;return a.get(b).success(function(a,b){}).error(function(a,b){alert(a.meta.message)})},getBond:function(b,e){var d=c.getParam("dingdaAPI")+"/service/bicycle/deposit?longitude\x3d"+b+"\x26latitude\x3d"+e;return a.get(d).success(function(a,b){}).error(function(a,b){alert(a.meta.message)})},payBond:function(b){var e=c.getParam("financeAPI")+"/service/bail/wx";return a.post(e,b).success(function(a,b){}).error(function(a,b){alert(a.meta.message)})},returnBond:function(b){b=c.getParam("dingdaAPI")+"/service/bicycle/deposit";return a["delete"](b).success(function(a,b){}).error(function(a,b){alert(a.meta.message)})},comment:function(b){var e=c.getParam("feedbackAPI")+"/service/comments";return a.post(e,b).success(function(a,b){}).error(function(a,b){alert(a.meta.message)})},getVersion:function(){var b=c.getParam("dingdaAPI")+"/service/version";return a.get(b).success(function(a,b){}).error(function(a,b){alert(a.meta.message)})}}}]);angular.module("myApp.services").service("globalService",["$http","$rootScope","localStorageService",function(a,c,b){var e=function(b){a.defaults.headers.common={token:b,version:"1.0.0",source:"WX"}},d=function(){var a=b.keys(),c;for(c in a)f.setData(a[c],b.get(a[c]));f.getData("user")&&e(f.getData("user").token)},h=function(){var a=window.location.href.split("?");if(2==a.length){var b=a[1].indexOf("#");-1!=b&&(a[1]=a[1].substring(0,b));a[1].split("\x26").forEach(function(a){a=a.split("\x3d");2==a.length&&f.setData(a[0],a[1])})}},f={init:function(){c.params={};c.config={};c.data={};c.inited=!0;f.setParam("dingdaAPI","http://bike.dy.dingdatech.com");f.setParam("financeAPI","http://finance.dy.dingdatech.com");f.setParam("feedbackAPI","http://feedback.dy.dingdatech.com");f.setParam("dingdaLoginAPI","http://auth.dy.dingdatech.com");c.$watch("data.user",function(a,b){a&&a.token&&e(a.token)});d();h();initWeixinMenu(a)},getParam:function(a){return c.params[a]},setParam:function(a,b){c.params[a]=b},getConfig:function(a){return c.config[a]},setConfig:function(a,b){c.config[a]=b},getData:function(a){return c.data[a]},setData:function(a,b){c.data[a]=b},saveData:function(a,c){c&&this.setData(a,c);b.set(a,c)},clearData:function(c){this.setData(c,null);b.set(c,null);a.defaults.headers.common={}}};return f}]);angular.module("myApp").controller("tripController",["$scope","$rootScope","$state","dingdaService",function(a,c,b,e){a.tripList=[];a.isLastPage=!1;a.getMoreOrders=function(){e.getOrderList(d).success(function(b,c){if(b.data.orders&&0!=b.data.orders.length){1==d&&(a.tripList=[]);for(var f=0;f<b.data.orders.length;f++)b.data.orders[f].tripStatus=300==b.data.orders[f].status?"\u5df2\u5b8c\u6210":"\u5f85\u652f\u4ed8",a.tripList.push(b.data.orders[f]);d++}else a.isLastPage=!0})};var d=1;a.getMoreOrders();a.viewTripDetail=function(c){b.go("tripDetail",{orderId:a.tripList[c].id})}}]);angular.module("myApp").controller("tripDetailController",["$scope","$rootScope","$state","dingdaService","$stateParams","wechatPayment",function(a,c,b,e,d,h){console.log("tripDetailController");var f=$(".tripDetail");c=$(window).height();var f=f.height()+40,v=$(".bottomPosition");c>=f&&v.css({position:"absolute",bottom:"0"});a.tripDetail={};a.needPay=!1;a.backHome=function(){b.go("main")};var k=!1;a.isActive=!0;a.payType=1;a.choosePay=function(b){$($(".checkboxS")[b]).hasClass("checkboxTrue")||(a.isActive=!a.isActive,a.payType=b)};a.goPay=function(){k||(1==a.payType?(k=!0,h.callRentPay(a.tripDetail.id,a.tripDetail.total_fee).then(function(a){k=!1;l()},function(a){k=!1})):a.tripDetail.total_fee>a.balance?layer.open({content:"\u60a8\u7684\u4f59\u989d\u4e0d\u591f\u662f\u5426\u53bb\u5145\u503c\uff1f",btn:["\u53bb\u5145\u503c","\u53d6\u6d88"],shadeClose:!1,yes:function(a){b.go("prepay",{},{reload:!1});layer.close(a)},no:function(a){layer.close(a)}}):(k=!0,e.payWX(a.tripDetail.id,{amount:a.tripDetail.total_fee,body:"\u4f59\u989d\u652f\u4ed8",type:102}).success(function(a,b){k=!1;layer.open({content:"\u652f\u4ed8\u6210\u529f",time:2});l()}).error(function(a){k=!1;layer.open({content:"\u652f\u4ed8\u5931\u8d25",time:2})})))};var w=d.orderId,l=function(){e.getOrderFinishInfo(w).success(function(b,c){a.tripDetail=b.data.order;300==b.data.order.status||0==a.tripDetail.total_fee?a.needPay=!1:200==b.data.order.status&&(a.needPay=!0)});e.getWallet(w).success(function(b,c){a.balance=b.data.balance})};l()}]);angular.module("myApp").controller("unusualController",["$scope","dingdaService","$state","$stateParams",function(a,c,b,e){a.returnBike=function(){c.setOrderFinish(e.id).success(function(a,c){200==a.meta.code?b.go("tripDetail",{orderId:e.id}):203==a.meta.code?(layer.open({content:"\u79df\u8f66\u5931\u8d25",time:2}),b.go("main")):layer.open({content:"\u7cfb\u7edf\u68c0\u6d4b\u5230\u60a8\u8fd8\u672a\u8fd8\u8f66\uff0c\u8bf7\u8054\u7cfb\u5ba2\u670d",time:2})}).error(function(a,b){})};a.hint=function(){layer.open({content:"\u8bf7\u5728\u4e3b\u9875\u9762\u83dc\u5355\u4e2d\u70b9\u51fb\u8054\u7cfb\u6211\u4eec",time:2})}}]);angular.module("myApp").controller("walletController",["$scope","$rootScope","dingdaService","$state","globalService",function(a,c,b,e,d){a.balance="";(function(){b.getWallet().success(function(b,c){a.balance=b.data.balance})})();a.prepay=function(){e.go("prepay",{},{reload:!1})}}]);angular.module("myApp").controller("bondController",["$scope","$rootScope","$state","dingdaService","$stateParams",function(a,c,b,e,d){a.goPay=function(){b.go("bondPay")};a.init=function(){e.getBond(d.longitude,d.latitude).success(function(b){a.bondInfo=b.data;c.toPaid=b.data.toPaid}).error(function(a){layer.open({content:"\u83b7\u53d6\u4fdd\u8bc1\u91d1\u5931\u8d25,\u8bf7\u5237\u65b0\u9875\u9762",time:2})})};a.drawback=function(){e.getUnfinishedOrder().success(function(b,c){b.data.unfinishedOrder.id?layer.open({content:"\u8fd8\u6709\u672a\u5b8c\u6210\u7684\u8ba2\u5355\uff0c\u65e0\u6cd5\u9000\u8fd8\u4fdd\u8bc1\u91d1",time:2}):layer.open({content:"\u60a8\u786e\u5b9a\u8981\u9000\u8fd8\u4fdd\u8bc1\u91d1\u5417\uff1f",btn:["\u786e\u8ba4","\u53d6\u6d88"],shadeClose:!1,yes:function(b){layer.close(b);e.returnBond().success(function(b){console.log(window.localStorage.getItem("IswechatPayment"));window.localStorage.setItem("IswechatPayment","no");layer.open({content:"\u9000\u8fd8\u6210\u529f,\u4fdd\u8bc1\u91d1\u4e03\u4e2a\u5de5\u4f5c\u65e5\u5185\u9000\u8fd8",time:2});a.init()}).error(function(a){layer.open({content:"\u9000\u8fd8\u4fdd\u8bc1\u91d1\u5931\u8d25",time:2})})},no:function(a){layer.close(a)}})})}}]);angular.module("myApp").controller("bondPayController",["$scope","$rootScope","$state","wechatPayment",function(a,c,b,e){c.toPaid||b.go("bond");var d=!1;a.goPay=function(){if(!d){d=!0;var a=window.localStorage.getItem("IswechatPayment");void 0!=a&&"no"!=a||e.callDepositPay(c.toPaid).then(function(a){d=!1;window.localStorage.setItem("IswechatPayment","yes");b.go("bondSuccess")},function(a){d=!1;window.localStorage.setItem("IswechatPayment","no")})}}}]);angular.module("myApp").controller("bondSuccessController",["$scope","$rootScope","$state",function(a,c,b){a.goMap=function(){b.go("main")}}]);angular.module("myApp").controller("contactController",["$scope","$rootScope","dingdaService","$state","globalService",function(a,c,b,e,d){a.contactList=[];a.contactList.push({name:"\u6d59\u6c5f\u7701",phone:"0571-8677567"});a.contactList.push({name:"\u6d59\u6c5f\u7701",phone:"0571-8677567"});a.contactList.push({name:"\u6d59\u6c5f\u7701",phone:"0571-8677567"});a.contactList.push({name:"\u6d59\u6c5f\u7701",phone:"0571-8677567"});a.contactList.push({name:"\u6d59\u6c5f\u7701",phone:"0571-8677567"});a.contactList.push({name:"\u6d59\u6c5f\u7701",phone:"0571-8677567"});a.contactList.push({name:"\u6d59\u6c5f\u7701",phone:"0571-8677567"});a.contactList.push({name:"\u6d59\u6c5f\u7701",phone:"0571-8677567"});a.contactList.push({name:"\u6d59\u6c5f\u7701",phone:"0571-8677567"});a.contactList.push({name:"\u6d59\u6c5f\u7701",phone:"0571-8677567"});a.contactList.push({name:"\u6d59\u6c5f\u7701",phone:"0571-8677567"})}]);angular.module("myApp").controller("loginController",["$scope","$rootScope","dingdaService","globalService",function(a,c,b,e){function d(a){a=new RegExp("(^|\x26)"+a+"\x3d([^\x26]*)(\x26|$)");a=window.location.search.substr(1).match(a);return null!=a?unescape(a[2]):null}(function(){a.phoneNumberVal="";a.validationVal="";$(".phoneNumber").focus(function(){$(".phoneNumber").css("border","1px solid #36d1e7")});$(".phoneNumber").blur(function(){$(".phoneNumber").css("border","1px solid rgba(0,0,0,.2)")});$(".validationInput").focus(function(){$(".validationInput").css("border","1px solid #36d1e7")});$(".validationInput").blur(function(){$(".validationInput").css("border","1px solid rgba(0,0,0,.2)")})})();var h=function(){function a(c){0==b?(c.removeAttribute("disabled"),c.value="\u91cd\u53d1",b=60,$(".ValidationBtn").html(c.value),$(".ValidationBtn").css("background","#36d1e7")):(c.setAttribute("disabled",!0),c.value=b+"\u79d2",b--,$(".ValidationBtn").html(c.value),0!=b&&$(".ValidationBtn").css("background","#ccc"),setTimeout(function(){a(c)},1E3))}var b=60;a($(".ValidationBtn").get(0))};a.Validation=function(){""==a.phoneNumberVal?layer.open({content:"\u624b\u673a\u53f7\u7801\u4e0d\u80fd\u4e3a\u7a7a",time:2}):/^0?1[3|4|5|7|8][0-9]\d{8}$/.test(a.phoneNumberVal)?(h(),b.sendPhoneCode(a.phoneNumberVal,d("openId")).success(function(a){console.log(a)}).error(function(){console.log("error")})):layer.open({content:"\u624b\u673a\u53f7\u7801\u683c\u5f0f\u4e0d\u5bf9",time:2})};a.login=function(){""==a.phoneNumberVal?layer.open({content:"\u624b\u673a\u53f7\u7801\u4e0d\u80fd\u4e3a\u7a7a",time:2}):/^0?1[3|4|5|7|8][0-9]\d{8}$/.test(a.phoneNumberVal)?""==a.validationVal?layer.open({content:"\u8bf7\u8f93\u5165\u9a8c\u8bc1\u7801",time:2}):(a.validationVal=""+a.validationVal,4!=a.validationVal.length?layer.open({content:"\u9a8c\u8bc1\u7801\u4f4d\u6570\u4e0d\u5bf9",time:2}):b.verifyPhoneCode(a.phoneNumberVal,a.validationVal).success(function(b){200==b.meta.code?(b.data.userName=a.phoneNumberVal,e.saveData("user",b.data),window.history.back(),layer.open({content:"\u767b\u5f55\u6210\u529f",time:1}),setTimeout(function(){location.reload()},300)):401==b.meta.code&&layer.open({content:b.meta.message,time:1})}).error(function(){layer.open({content:"\u767b\u5f55\u5931\u8d25",time:1})})):layer.open({content:"\u624b\u673a\u53f7\u7801\u683c\u5f0f\u4e0d\u5bf9",time:2})};a.$watch("validationVal",function(b,c){b&&(""==a.validationVa||isNaN(a.validationVal)||4!=a.validationVal.toString().length?$(".loginBtn").removeClass("btnBg"):$(".loginBtn").addClass("btnBg"))})}]);angular.module("myApp").controller("mainController",["$scope","$rootScope","dingdaService","$state","globalService",function(a,c,b,e,d){c.isRendBike=!1;c.isLoadFinish=!1;a.unfinishOrder={};a.doAction=function(b){if(a.checkLogin()){var d={};if(2==b||4==b)d={longitude:c.currentPoint.longitude,latitude:c.currentPoint.latitude};3==b?location.href="http://wx.dy.dingdatech.com/contactUs.html":e.go(a.moduleList[b].state,d)}};a.checkLogin=function(){return d.getData("user")?!0:(e.go("login",{},{reload:!0}),!1)};a.logout=function(){a.userinfo={};a.userinfo.userName="\u672a\u767b\u5f55";a.userinfo.loginState=!1;d.clearData("user");location.reload()};(function(){c.openScan=!1;c.openDetail=!1;c.openMenu=!1;c.openRing=!1;c.$watch("openScan",function(d,f){d!==f&&d&&a.checkLogin()&&(200==a.unfinishOrder.status?e.go("tripDetail",{orderId:a.unfinishOrder.id}):(c.openScan=!1,wx.scanQRCode({needResult:1,scanType:["qrCode","barCode"],success:function(a){b.verifyScanCode(a.resultStr).success(function(a,b){200==a.meta.code?a.data.orderDetail.id&&(layer.open({content:"\u79df\u8f66\u6210\u529f\uff0c\u8ba2\u5355\u53f7\u4e3a\uff1a"+a.data.orderDetail.id,time:2}),c.isRendBike=!0,e.go("rentDetail",{},{reload:!0})):202==a.meta.code?(layer.open({content:a.meta.message,time:2}),e.go("bond",{longitude:c.currentPoint.longitude,latitude:c.currentPoint.latitude})):layer.open({content:a.meta.message,time:2})}).error(function(a,b){layer.open({content:"\u79df\u8f66\u5931\u8d25"+JSON.stringify(a),time:2})})}})))});c.$watch("openDetail",function(a,c){a!==c&&a&&b.getUnfinishedOrder().success(function(a,b){200!=a.meta.code||a.data.unfinishedOrder.id||(layer.open({content:"\u79df\u8f66\u5b8c\u6210",time:2}),e.go("main"));200==a.data.unfinishedOrder.status?e.go("tripDetail",{orderId:a.data.unfinishedOrder.id}):e.go("rentDetail",{},{reload:!0})}).error(function(a,b){console.log(JSON.stringify(a))})});c.$watch("openRing",function(a,b){});c.$watch("isLoadFinish",function(a,b){a!==b&&a&&(document.getElementById("sliderMenu").style.display="block")});document.getElementById("sliderMenu").addEventListener("touchmove",function(){},!1)})();(function(){a.userinfo=d.getData("user");a.userinfo?(a.userinfo.loginState=!0,b.getUnfinishedOrder().success(function(b,d){b.data.unfinishedOrder.id&&(c.isRendBike=!0,a.unfinishOrder=b.data.unfinishedOrder);200==b.data.unfinishedOrder.status&&layer.open({content:"\u60a8\u6709\u672a\u652f\u4ed8\u7684\u8ba2\u5355\uff0c\u662f\u5426\u524d\u5f80\u652f\u4ed8\uff1f",btn:["\u786e\u8ba4","\u53d6\u6d88"],shadeClose:!1,yes:function(b){layer.close(b);e.go("tripDetail",{orderId:a.unfinishOrder.id})},no:function(a){layer.close(a)}})}).error(function(a,b){console.log(JSON.stringify(a))})):(a.userinfo={},a.userinfo.userName="\u672a\u767b\u5f55",a.userinfo.loginState=!1);a.moduleList=[];a.moduleList.push({name:"\u884c\u7a0b\u8bb0\u5f55",icon:"images/trip.png",state:"trip"});a.moduleList.push({name:"\u94b1\u5305",icon:"images/wallet.png",state:"wallet"});a.moduleList.push({name:"\u4fdd\u8bc1\u91d1",icon:"images/bond.png",state:"bond"});a.moduleList.push({name:"\u8054\u7cfb\u6211\u4eec",icon:"images/contact.png",state:"contact"});a.moduleList.push({name:"\u610f\u89c1\u53cd\u9988",icon:"images/opinion.png",state:"opinion"})})()}]);angular.module("myApp").controller("mapController",["$scope","$rootScope","dingdaService","globalService","$state",function(a,c,b,e,d){function h(){this.defaultAnchor=BMAP_ANCHOR_BOTTOM_LEFT;this.defaultOffset=new BMap.Size(0,0)}function f(){this.defaultAnchor=BMAP_ANCHOR_BOTTOM_LEFT;this.defaultOffset=new BMap.Size(0,0)}function v(){this.defaultAnchor=BMAP_ANCHOR_BOTTOM_LEFT;this.defaultOffset=new BMap.Size(0,0)}function k(){this.defaultAnchor=BMAP_ANCHOR_TOP_LEFT;this.defaultOffset=new BMap.Size(0,13)}function w(){this.defaultAnchor=BMAP_ANCHOR_TOP_LEFT;this.defaultOffset=new BMap.Size(0,66)}function l(a,b,c){this.index=b;this.position=a;this.info=c;this.isDisplay=!1}function r(a,b,c){this.index=b;this.position=a;this.info=c;this.isDisplay=!0}function y(a){this.position=a}var p,u=[],n=[],z,x,A,m,B,q;c.currentPoint={};a.$watch("isRendBike",function(a,b){a!==b&&(a?(A.hide(),x.show()):(A.show(),x.hide()))});var C=function(a){m.removeOverlay(q);a=a.tr[0].ek[0].vr;a.unshift(p.position);a.push(B);q=new BMap.Polyline(a);q.setStrokeColor("#36D1E7");q.setStrokeOpacity(1);q.setStrokeWeight(3);q.setStrokeStyle("solid");m.addOverlay(q)},D=function(a){b.getStationList(a.lng,a.lat).success(function(a,b){for(var c=a.data.stationLists,e=m,d=0;d<u.length;d++)e.removeOverlay(u[d]),u[d].div.parentElement.removeChild(u[d].div),e.removeOverlay(n[d]),n[d].div.parentElement.removeChild(n[d].div);u=[];n=[];for(d=0;d<c.length;d++){var g=new r(new BMap.Point(c[d].longitude,c[d].latitude),d,c[d]);e.addOverlay(g);u.push(g)}}).error(function(a,b){})},E=function(b){f.prototype=new BMap.Control;f.prototype.initialize=function(b){var d=document.createElement("div");d.className="scanControl";var e=document.createElement("div");e.className="scanControlContainer";var g=document.createElement("div");g.className="scanControlContent";var f=document.createElement("img");f.className="spanResize";f.src="images/scancode.png";g.innerHTML=f.outerHTML+" \u626b\u7801\u79df\u8f66";e.onclick=function(){a.$apply(function(){c.openScan=!0})};e.appendChild(g);d.appendChild(e);b.getContainer().appendChild(d);return d};A=new f;b.addControl(A);v.prototype=new BMap.Control;v.prototype.initialize=function(b){var d=document.createElement("div");d.className="scanControl";var e=document.createElement("div");e.className="scanControlContainer";var g=document.createElement("div");g.className="scanControlContent";var f=document.createElement("img");f.className="spanResize";f.src="images/details.png";g.innerHTML=f.outerHTML+" \u79df\u8f66\u8be6\u60c5";e.onclick=function(){a.$apply(function(){c.openDetail=!0})};e.appendChild(g);d.appendChild(e);b.getContainer().appendChild(d);return d};x=new v;b.addControl(x);x.hide();h.prototype=new BMap.Control;h.prototype.initialize=function(a){var b=document.createElement("div");b.className="locateControlContainer";b.index=1;var c=document.createElement("div");c.className="locateControlContent";var d=document.createElement("div");d.className="locateControlContentCenter";c.appendChild(d);b.appendChild(c);b.onclick=function(){a.panTo(p.position);a.setZoom(15)};a.getContainer().appendChild(b);return b};var g=new h;b.addControl(g);k.prototype=new BMap.Control;k.prototype.initialize=function(b){var g=document.createElement("div");g.className="menuControl";g.index=1;var f=document.createElement("img");f.src="images/me.png";g.appendChild(f);g.onclick=function(){a.$apply(function(){e.getData("user")?c.openMenu=!c.openMenu:d.go("login")})};b.getContainer().appendChild(g);return g};g=new k;b.addControl(g);w.prototype=new BMap.Control;w.prototype.initialize=function(b){var d=document.createElement("div");d.className="menuControl";d.index=1;var e=document.createElement("img");e.src="images/new.png";d.appendChild(e);d.onclick=function(){a.$apply(function(){c.openRing=!c.openRing})};b.getContainer().appendChild(d);return d};b.addControl(new BMap.NavigationControl({type:BMAP_NAVIGATION_CONTROL_SMALL,anchor:BMAP_ANCHOR_BOTTOM_RIGHT}))},F=function(a){function b(b){var d=b.longitude;b=b.latitude;c.currentPoint={longitude:d,latitude:b};var e=new BMap.Convertor,g=[];g.push(new BMap.Point(d,b));e.translate(g,3,5,function(b){b=b.points[0];if(p)p.position=b,a&&p.getMap().panTo(b);else{m.setCenter(b);z=new BMap.WalkingRoute(m,{renderOptions:{map:null,autoViewport:!0}});z.setSearchCompleteCallback(C);var d=m;c.isLoadFinish=!0;p=new y(b);d.addOverlay(p)}D(b)})}(function(){wx.getLocation({type:"gcj02",success:function(a){b(a)}})})()};(function(){l.prototype=new BMap.Overlay;l.prototype.initialize=function(b){this.map=b;var c=this.div=document.createElement("div");c.className="overlayContainer";var d=document.createElement("div");d.className="overlayPanelLeft";var e=document.createElement("div");e.className="overlayPanelLeftContentContainer";var f=document.createElement("div");f.className="overlayPanelLeftContent";f.innerText=this.info.name;e.appendChild(f);d.appendChild(e);e=document.createElement("div");e.className="overlayPanelCenter";f=document.createElement("div");f.className="overlayPanelCenterContent overlayPanelCenterContentTop";a.isRendBike||(f.className+=" act");f.innerText="\u53ef\u501f\uff1a"+this.info.enHireNum;var k=document.createElement("div");k.className="overlayPanelCenterContent overlayPanelCenterContentBottom";a.isRendBike&&(k.className+=" act");k.innerText="\u53ef\u8fd8\uff1a"+this.info.disHireNum;e.appendChild(f);e.appendChild(k);var t=document.createElement("div");t.className="overlayPanelRight";f=document.createElement("div");f.className="overlayPanelRightContentContainer";k=document.createElement("div");k.className="overlayPanelRightContent";f.appendChild(k);t.appendChild(f);f=document.createElement("img");f.className="corner";f.src="images/triangle.png";d.appendChild(e);c.appendChild(d);c.appendChild(t);c.appendChild(f);b=b.getPanes();var h=this;t.onclick=function(){z.clearResults();z.search(p.position,h.position);B=h.position};t.addEventListener("touchend",function(){t.onclick()});b.labelPane.appendChild(c)};l.prototype.draw=function(){var a=this.map.pointToOverlayPixel(this.position),b=this.div.style;b.left=a.x-90+"px";b.top=a.y-70+"px"};l.prototype.show=function(a){if(a){this.info=a;var b=this.div.getElementsByClassName("overlayPanelCenterContentTop");b[0].innerText="\u53ef\u501f\uff1a"+a.enHireNum;b=this.div.getElementsByClassName("overlayPanelCenterContentBottom");b[0].innerText="\u53ef\u8fd8\uff1a"+a.disHireNum}else this.div.style.display="block",this.isDisplay=!0,b=this.div.getElementsByClassName("overlayPanelCenterContentTop"),b[0].innerText="\u53ef\u501f\uff1a0",b=this.div.getElementsByClassName("overlayPanelCenterContentBottom"),b[0].innerText="\u53ef\u8fd8\uff1a0"};l.prototype.hide=function(){this.div.style.display="none";this.isDisplay=!1};r.prototype=new BMap.Overlay;r.prototype.initialize=function(a){this.map=a;var c=this.div=document.createElement("div");c.className="siteOverlay";var d=document.createElement("img");d.src="images/site.png";c.appendChild(d);var d=a.getPanes(),e=this,f=new l(e.position,e.index,e.info);n.push(f);a.addOverlay(f);c.onclick=function(){a.panTo(e.position);for(var c=0;c<n.length;c++)n[c].hide();f.isDisplay?f.hide():(setTimeout(function(){f.show()},100),b.getStationById(e.info.id).success(function(a,b){setTimeout(function(){f.show(a.data.station)},100)}))};c.addEventListener("touchend",function(){c.onclick()});d.labelPane.appendChild(c)};r.prototype.draw=function(){var a=this.map.pointToOverlayPixel(this.position),b=this.div.style;b.left=a.x-13.5+"px";b.top=a.y-13.5+"px"};r.prototype.show=function(){this.div.style.display="block";this.isDisplay=!0};r.prototype.hide=function(){this.div.style.display="none";this.isDisplay=!1};y.prototype=new BMap.Overlay;y.prototype.initialize=function(a){this.map=a;var b=this.div=document.createElement("div");b.className="myMarker";var c=document.createElement("img");c.src="images/myposition.png";b.appendChild(c);a.getPanes().labelPane.appendChild(b)};y.prototype.draw=function(){var a=this.map.pointToOverlayPixel(this.position),b=this.div.style;b.left=a.x-25+"px";b.top=a.y-37+"px"}})();(function(){m=new BMap.Map("mapContainer");m.centerAndZoom(new BMap.Point(120.124421,30.279879),15);m.addEventListener("click",function(){for(var b=0;b<n.length;b++)n[b].hide();a.$apply(function(){c.openMenu=!1})});E(m)})();wx.ready(function(){F()})}]);angular.module("myApp").controller("opinionController",["$scope","$rootScope","dingdaService","$state","globalService","$stateParams",function(a,c,b,e,d,h){a.opinion="";a.submit=function(){if(0!=a.opinion.length)if(200<a.opinion.length)layer.open({content:"\u8d85\u51fa\u5b57\u6570\u9650\u5236",time:2});else{var c=navigator.userAgent.match(/\(.*?\)/),d=navigator.userAgent.match(/MicroMessenger\/.*?[ ]/);b.comment({content:a.opinion,latitude:h.latitude,longitude:h.longitude,phoneType:c[0],systemType:d[0]}).success(function(a,b){200!=a.meta.code?layer.open({content:a.meta.message,time:2}):(layer.open({content:"\u8bc4\u8bba\u6210\u529f",time:2}),setTimeout(function(){location.reload()},300),history.back())}).error(function(a,b){alert(JSON.stringify(a))})}}}]);angular.module("myApp").controller("payController",["$scope","$rootScope","dingdaService","$state","globalService",function(a,c,b,e,d){a.pay=function(){alert("\u5145\u503c")}}]);angular.module("myApp").controller("prepayController",["$scope","$rootScope","dingdaService","$state","globalService","wechatPayment",function(a,c,b,e,d,h){a.account="";var f=!1;a.prepay=function(){f||(""==a.account?layer.open({content:"\u8bf7\u8f93\u5165\u5145\u503c\u91d1\u989d",time:1}):1>a.account?layer.open({content:"\u5145\u503c\u91d1\u989d\u81f3\u5c11\u4e3a1\u5143",time:1}):(f=!0,h.callBalanceRecharge(a.account).then(function(a){f=!1;window.history.back()},function(a){f=!1})))}}]);angular.module("myApp").controller("rechargeListController",function(a,c,b){a.rechargeList=[{rechargeType:"\u5fae\u4fe1\u5145\u503c",rechargeTime:"2016-01-17 16:16:23",rechargeMoney:100},{rechargeType:"\u5fae\u4fe1\u5145\u503c",rechargeTime:"2016-01-17 16:16:23",rechargeMoney:200}]});angular.module("myApp").controller("rentDetailController",["$scope","$rootScope","$state","dingdaService",function(a,c,b,e){a.detail={};a.costTime="";a.backHome=function(){b.go("main")};(function(){e.getUnfinishedOrder().success(function(c,h){200==c.meta.code&&(c.data.unfinishedOrder.id||b.go("main"));200==c.data.unfinishedOrder.status&&b.go("tripDetail",{orderId:c.data.unfinishedOrder.id});e.getOrderRealTimeInfo(c.data.unfinishedOrder.id).success(function(b,c){a.datail=b.data.orderDetail;setInterval(function(){a.$apply(function(){var b=Math.floor(a.datail.rentTime/3600),c=Math.floor(a.datail.rentTime%3600/60),d=a.datail.rentTime%60;10>b&&(b="0"+b);10>c&&(c="0"+c);10>d&&(d="0"+d);a.costTime=b+":"+c+":"+d;a.datail.freeTime<=a.datail.rentTime?a.detail.freeCountdown="00:00":(b=Math.floor((a.datail.freeTime-a.datail.rentTime)/60),10>b&&(b="0"+b),c=(a.datail.freeTime-a.datail.rentTime)%60,10>c&&(c="0"+c),a.detail.freeCountdown=b+":"+c);a.datail.rentTime++})},1E3)}).error(function(a,b){})}).error(function(a,b){console.log(JSON.stringify(a))})})();setTimeout(function(){0<(new String(location.href)).indexOf("rentDetail")&&location.reload()},3E4);a.alreadyBack=function(){b.go("unusual",{id:a.datail.id})}}]);
...\ No newline at end of file ...\ No newline at end of file
1 angular.module('myApp')
2 .controller('bondController',['$scope' , '$rootScope', '$state' , 'dingdaService' , '$stateParams' ,
3 function($scope,$rootScope,$state,dingdaService,$stateParams){
4 $scope.goPay = function(){
5 $state.go('bondPay');
6 }
7
8 // function getUrl(name){
9 // var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
10 // var url = String(window.location);
11 // var arr = url.split('?');
12 // var str = arr[arr.length-1];
13 // var r = str.match(reg);
14 // if(r!=null)return unescape(r[2]); return null;
15 // }
16
17 $scope.init = function(){
18 var latitude = $stateParams.latitude;
19 var longitude = $stateParams.longitude;
20 dingdaService.getBond(longitude,latitude)
21 .success(function(data){
22 // alert(JSON.stringify(data))
23 $scope.bondInfo = data.data;
24 $rootScope.toPaid = data.data.toPaid;
25 }).error(function(data){
26 // alert(JSON.stringify(data))
27 layer.open({
28 content: '获取保证金失败,请刷新页面',
29 time:2
30 });
31 })
32 }
33
34 $scope.drawback = function(){
35 dingdaService.getUnfinishedOrder().success(function(data , status){
36 if(data.data.unfinishedOrder.id) {
37
38 layer.open({
39 content: '还有未完成的订单,无法退还保证金',
40 time:2
41 });
42 } else {
43 layer.open({
44 content: '您确定要退还保证金吗?',
45 btn: ['确认', '取消'],
46 shadeClose: false,
47 yes: function(index){
48 layer.close(index);
49 dingdaService.returnBond()
50 .success(function(data){
51 console.log(window.localStorage.getItem("IswechatPayment"));
52 //alert(window.localStorage.getItem("IswechatPayment"));
53 window.localStorage.setItem("IswechatPayment","no");
54 layer.open({
55 content: '退还成功,保证金七个工作日内退还',
56 time:2
57 });
58 $scope.init();
59 })
60 .error(function(data){
61 layer.open({
62 content: '退还保证金失败',
63 time:2
64 });
65 })
66 },no: function(index){
67 layer.close(index);
68 }
69 });
70 }
71 })
72 }
73
74 }])
...\ No newline at end of file ...\ No newline at end of file
1 angular.module('myApp')
2 .controller('bondPayController',['$scope', '$rootScope', '$state', 'wechatPayment',
3 function($scope,$rootScope,$state, wechatPayment){
4
5 if(!$rootScope.toPaid){
6 $state.go('bond');
7 }
8 // 支付保证金
9 var ispay = false;
10 $scope.goPay = function(){
11 if(ispay) return;
12 ispay = true;
13 var IswechatPayment= window.localStorage.getItem("IswechatPayment");
14
15 if (IswechatPayment== undefined || IswechatPayment == "no") {
16
17 wechatPayment.callDepositPay($rootScope.toPaid)
18 .then(function (result) {
19 ispay = false;
20 //支付成功
21 // alert(window.localStorage.getItem("IswechatPayment"));
22 window.localStorage.setItem("IswechatPayment", "yes")
23 $state.go('bondSuccess');
24 }, function (errMsg) {
25 ispay = false;
26 window.localStorage.setItem("IswechatPayment", "no")
27 //支付失败
28 })
29 }
30 }
31
32
33
34 }])
...\ No newline at end of file ...\ No newline at end of file
1 angular.module('myApp')
2 .controller('bondSuccessController',[ '$scope' , '$rootScope' , '$state' , function($scope,$rootScope,$state){
3
4 // 支付保证金成功
5
6 $scope.goMap = function(){
7 $state.go('main');
8 }
9
10 }])
...\ No newline at end of file ...\ No newline at end of file
1 angular.module('myApp')
2 .controller('contactController',['$scope','$rootScope','dingdaService','$state','globalService',function($scope,$rootScope,dingdaService,$state,globalService){
3
4 $scope.contactList = [];
5
6 var init = function() {
7 // globalService.init();
8 $scope.contactList.push({
9 name : "浙江省" ,
10 phone : "0571-8677567"
11 })
12 $scope.contactList.push({
13 name : "浙江省" ,
14 phone : "0571-8677567"
15 })
16 $scope.contactList.push({
17 name : "浙江省" ,
18 phone : "0571-8677567"
19 })
20 $scope.contactList.push({
21 name : "浙江省" ,
22 phone : "0571-8677567"
23 })
24 $scope.contactList.push({
25 name : "浙江省" ,
26 phone : "0571-8677567"
27 })
28 $scope.contactList.push({
29 name : "浙江省" ,
30 phone : "0571-8677567"
31 })
32 $scope.contactList.push({
33 name : "浙江省" ,
34 phone : "0571-8677567"
35 })
36 $scope.contactList.push({
37 name : "浙江省" ,
38 phone : "0571-8677567"
39 })
40 $scope.contactList.push({
41 name : "浙江省" ,
42 phone : "0571-8677567"
43 })
44 $scope.contactList.push({
45 name : "浙江省" ,
46 phone : "0571-8677567"
47 })
48 $scope.contactList.push({
49 name : "浙江省" ,
50 phone : "0571-8677567"
51 })
52 }
53
54 // mui.init();
55 init();
56 }]);
...\ No newline at end of file ...\ No newline at end of file
1 angular.module('myApp')
2 .controller('loginController',[ '$scope','$rootScope','dingdaService','globalService' ,function($scope,$rootScope,dingdaService,globalService){
3 var init = function(){
4 $scope.phoneNumberVal='';
5 $scope.validationVal= '';
6
7 $(".phoneNumber").focus(function(){
8 $(".phoneNumber").css('border','1px solid #36d1e7');
9 })
10 $(".phoneNumber").blur(function(){
11 $(".phoneNumber").css('border','1px solid rgba(0,0,0,.2)');
12 })
13 $(".validationInput").focus(function(){
14 $(".validationInput").css('border','1px solid #36d1e7');
15 })
16 $(".validationInput").blur(function(){
17 $(".validationInput").css('border','1px solid rgba(0,0,0,.2)');
18 })
19
20
21 }
22
23 function getUrl(name){
24 var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
25 var r = window.location.search.substr(1).match(reg);
26 if(r!=null)return unescape(r[2]); return null;
27 }
28 init();
29 var countdown = function(){
30 var wait=60;
31 function time(o) {
32 if (wait == 0) {
33 o.removeAttribute("disabled");
34 o.value="重发";
35 wait = 60;
36 $('.ValidationBtn').html(o.value);
37 $('.ValidationBtn').css('background','#36d1e7');
38 } else {
39 o.setAttribute("disabled", true);
40 o.value=wait + "秒";
41 wait--;
42 $('.ValidationBtn').html(o.value);
43 if(wait!=0){
44 $('.ValidationBtn').css('background','#ccc');
45 }
46 setTimeout(function() {
47 time(o);
48 },1000)
49 }
50 }
51 time($('.ValidationBtn').get(0));
52 }
53
54 $scope.Validation = function(){
55 if($scope.phoneNumberVal==""){
56 layer.open({
57 content: '手机号码不能为空',
58 time:2
59 });
60 return
61 }
62 var reg = /^0?1[3|4|5|7|8][0-9]\d{8}$/;
63 if(!reg.test($scope.phoneNumberVal)){
64 layer.open({
65 content: '手机号码格式不对',
66 time:2
67 });
68 return
69 }
70 countdown();
71 var res = dingdaService.sendPhoneCode($scope.phoneNumberVal , getUrl("openId"));
72 res.success(function(data){
73 console.log(data);
74 })
75 .error(function(){
76 console.log('error');
77 })
78
79 }
80
81 $scope.login= function(){
82 if($scope.phoneNumberVal==""){
83 layer.open({
84 content: '手机号码不能为空',
85 time:2
86 });
87 return
88 }
89 var reg = /^0?1[3|4|5|7|8][0-9]\d{8}$/;
90 if(!reg.test($scope.phoneNumberVal)){
91 layer.open({
92 content: '手机号码格式不对',
93 time:2
94 });
95 return
96 }
97
98 if($scope.validationVal==''){
99 layer.open({
100 content: '请输入验证码',
101 time:2
102 });
103 return
104 }
105 $scope.validationVal = "" + $scope.validationVal;
106 if($scope.validationVal.length != 4){
107 layer.open({
108 content: '验证码位数不对',
109 time:2
110 });
111 return
112 }
113
114 var res = dingdaService.verifyPhoneCode($scope.phoneNumberVal , $scope.validationVal).success(function(data){
115 if (data.meta.code == 200) {
116 data.data.userName = $scope.phoneNumberVal;
117 globalService.saveData('user',data.data);
118 window.history.back();
119 layer.open({
120 content: '登录成功',
121 time:1
122 });
123 setTimeout(function() {
124 location.reload();
125 } , 300);
126 } else if (data.meta.code == 401) {
127 layer.open({
128 content: data.meta.message,
129 time:1
130 });
131 // alert(data.meta.message);
132 // layer.msg(data.data.error);
133 return;
134 }
135 }).error(function(){
136 layer.open({
137 content: '登录失败',
138 time:1
139 });
140 })
141
142 }
143
144 $scope.$watch('validationVal',function(newVal,old){
145 if(newVal){
146 if($scope.validationVa!="" && !isNaN($scope.validationVal) && $scope.validationVal.toString().length==4){
147 $('.loginBtn').addClass('btnBg');
148 }else{
149 $('.loginBtn').removeClass('btnBg');
150 }
151 }
152 })
153
154 // $(window).bind("load resize",function(){
155 // $(".loginBox").css({zoom:$(window).width()/320,visibility:"visible"});
156 // });
157 }])
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
1 angular.module('myApp')
2 .controller('mainController',['$scope','$rootScope','dingdaService','$state','globalService',function($scope,$rootScope,dingdaService,$state,globalService){
3
4 $rootScope.isRendBike = false;
5 $rootScope.isLoadFinish = false;
6 $scope.unfinishOrder = {};
7
8 var init = function() {
9 // globalService.init();
10 $scope.userinfo = globalService.getData("user");
11 if(!$scope.userinfo) {
12 $scope.userinfo = {};
13 $scope.userinfo.userName = "未登录";
14 $scope.userinfo.loginState = false;
15 } else {
16 $scope.userinfo.loginState = true;
17 // alert("getUnfinishedOrder")
18 dingdaService.getUnfinishedOrder().success(function(data , status){
19 // alert(JSON.stringify(data))
20 if(data.data.unfinishedOrder.id) {
21 $rootScope.isRendBike = true;
22 $scope.unfinishOrder = data.data.unfinishedOrder;
23 }
24 if(data.data.unfinishedOrder.status == 200) {
25 layer.open({
26 content: '您有未支付的订单,是否前往支付?',
27 btn: ['确认', '取消'],
28 shadeClose: false,
29 yes: function(index){
30 layer.close(index);
31 $state.go('tripDetail' , { orderId : $scope.unfinishOrder.id});
32 return;
33 },no: function(index){
34 layer.close(index);
35 }
36 });
37 }
38 }).error(function(data , status) {
39 console.log(JSON.stringify(data))
40 })
41 }
42 $scope.moduleList = [];
43 $scope.moduleList.push({
44 name : "行程记录",
45 icon : "images/trip.png",
46 state : "trip"
47 });
48 $scope.moduleList.push({
49 name : "钱包",
50 icon : "images/wallet.png",
51 state : "wallet"
52 });
53 $scope.moduleList.push({
54 name : "保证金",
55 icon : "images/bond.png",
56 state : "bond"
57 });
58 $scope.moduleList.push({
59 name : "联系我们",
60 icon : "images/contact.png",
61 state : "contact"
62 });
63 $scope.moduleList.push({
64 name : "意见反馈",
65 icon : "images/opinion.png",
66 state : "opinion"
67 });
68 }
69
70 $scope.doAction = function(index) {
71 if($scope.checkLogin()) {
72 var arg = {};
73 if(index == 2 || index == 4) {
74 arg = {longitude: $rootScope.currentPoint.longitude , latitude: $rootScope.currentPoint.latitude };
75 }
76 if(index == 3) {
77 location.href = "http://wx.dy.dingdatech.com/contactUs.html";
78 } else {
79 $state.go($scope.moduleList[index].state, arg);
80 }
81 }
82 }
83
84 $scope.checkLogin = function() {
85 if(!globalService.getData("user")) {
86 $state.go('login', {}, {reload: true});
87 return false;
88 }
89 return true;
90 }
91
92 $scope.logout = function() {
93 $scope.userinfo = {};
94 $scope.userinfo.userName = "未登录";
95 $scope.userinfo.loginState = false;
96 globalService.clearData("user");
97 location.reload()
98 }
99
100 var initScan = function() {
101 $rootScope.openScan = false;
102 $rootScope.openDetail = false;
103 $rootScope.openMenu = false;
104 $rootScope.openRing = false;
105 $rootScope.$watch("openScan",function(newVal, oldVal){
106 if(newVal !== oldVal && newVal) {
107 if(!$scope.checkLogin()) {
108 return;
109 }
110
111 if($scope.unfinishOrder.status == 200) {
112 $state.go('tripDetail' , { orderId : $scope.unfinishOrder.id});
113 return;
114 }
115 $rootScope.openScan = false;
116 wx.scanQRCode({
117 needResult: 1, // 默认为1,扫描结果由微信处理,1则直接返回扫描结果,
118 scanType: ["qrCode","barCode"], // 可以指定扫二维码还是一维码,默认二者都有
119 success: function (res) {
120 var result = res.resultStr; // 当needResult 为 1 时,扫码返回的结果
121 // alert(result);
122 dingdaService.verifyScanCode(result).success(function(data , status){
123 // alert(JSON.stringify(data))
124 if(data.meta.code == 200) {
125 if(data.data.orderDetail.id) {
126
127 layer.open({
128 content: "租车成功,订单号为:" + data.data.orderDetail.id,
129 time:2
130 });
131 // alert("租车成功,订单号为:" + data.data.orderDetail.id);
132 $rootScope.isRendBike = true;
133
134 $state.go('rentDetail', {}, {reload: true});
135
136 }
137 } else if(data.meta.code == 202) {
138 layer.open({
139 content: data.meta.message,
140 time:2
141 });
142 $state.go('bond', {longitude: $rootScope.currentPoint.longitude , latitude: $rootScope.currentPoint.latitude });
143 } else {
144 layer.open({
145 content: data.meta.message,
146 time:2
147 });
148 }
149 }).error(function(data , status){
150 layer.open({
151 content: "租车失败" + JSON.stringify(data),
152 time:2
153 });
154 });
155 }
156 });
157 }
158 })
159 $rootScope.$watch("openDetail",function(newVal, oldVal){
160 if(newVal === oldVal) return;
161
162 if(newVal) {
163 dingdaService.getUnfinishedOrder().success(function(data , status){
164 if(data.meta.code == 200) {
165 if(!data.data.unfinishedOrder.id) {
166 layer.open({
167 content: '租车完成',
168 time:2
169 });
170 // alert("租车完成")
171 $state.go('main');
172 }
173 }
174
175 if(data.data.unfinishedOrder.status == 200) {
176 $state.go('tripDetail' , { orderId : data.data.unfinishedOrder.id});
177 } else {
178 $state.go('rentDetail', {}, {reload: true});
179 }
180 }).error(function(data , status) {
181 console.log(JSON.stringify(data))
182 })
183
184 }
185 })
186 $rootScope.$watch("openRing",function(newVal, oldVal){
187 // TODO open new message
188 })
189 $rootScope.$watch("isLoadFinish" , function(newVal , oldVal){
190 if(newVal === oldVal) return;
191 if(newVal) {
192 document.getElementById("sliderMenu").style.display = "block";
193 }
194 })
195
196 document.getElementById("sliderMenu").addEventListener("touchmove", function(){
197 return;
198 } , false);
199 }
200
201 // mui.init();
202 initScan();
203 init();
204
205
206 }]);
1 angular.module("myApp").controller("mainController",["$scope","$rootScope","dingdaService","$state","globalService",function(a,b,f,d,g){b.isRendBike=!1;b.isLoadFinish=!1;a.unfinishOrder={};a.doAction=function(c){if(a.checkLogin()){var e={};if(2==c||4==c)e={longitude:b.currentPoint.longitude,latitude:b.currentPoint.latitude};3==c?location.href="http://wx.dy.dingdatech.com/contactUs.html":d.go(a.moduleList[c].state,e)}};a.checkLogin=function(){return g.getData("user")?!0:(d.go("login",{},{reload:!0}),!1)};a.logout=function(){a.userinfo={};a.userinfo.userName="\u672a\u767b\u5f55";a.userinfo.loginState=!1;g.clearData("user");location.reload()};(function(){b.openScan=!1;b.openDetail=!1;b.openMenu=!1;b.openRing=!1;b.$watch("openScan",function(c,e){c!==e&&c&&a.checkLogin()&&(200==a.unfinishOrder.status?d.go("tripDetail",{orderId:a.unfinishOrder.id}):(b.openScan=!1,wx.scanQRCode({needResult:1,scanType:["qrCode","barCode"],success:function(a){f.verifyScanCode(a.resultStr).success(function(a,c){200==a.meta.code?a.data.orderDetail.id&&(layer.open({content:"\u79df\u8f66\u6210\u529f\uff0c\u8ba2\u5355\u53f7\u4e3a\uff1a"+a.data.orderDetail.id,time:2}),b.isRendBike=!0,d.go("rentDetail",{},{reload:!0})):202==a.meta.code?(layer.open({content:a.meta.message,time:2}),d.go("bond",{longitude:b.currentPoint.longitude,latitude:b.currentPoint.latitude})):layer.open({content:a.meta.message,time:2})}).error(function(a,c){layer.open({content:"\u79df\u8f66\u5931\u8d25"+JSON.stringify(a),time:2})})}})))});b.$watch("openDetail",function(a,b){a!==b&&a&&f.getUnfinishedOrder().success(function(a,b){200!=a.meta.code||a.data.unfinishedOrder.id||(layer.open({content:"\u79df\u8f66\u5b8c\u6210",time:2}),d.go("main"));200==a.data.unfinishedOrder.status?d.go("tripDetail",{orderId:a.data.unfinishedOrder.id}):d.go("rentDetail",{},{reload:!0})}).error(function(a,b){console.log(JSON.stringify(a))})});b.$watch("openRing",function(a,b){});b.$watch("isLoadFinish",function(a,b){a!==b&&a&&(document.getElementById("sliderMenu").style.display="block")});document.getElementById("sliderMenu").addEventListener("touchmove",function(){},!1)})();(function(){a.userinfo=g.getData("user");a.userinfo?(a.userinfo.loginState=!0,f.getUnfinishedOrder().success(function(c,e){c.data.unfinishedOrder.id&&(b.isRendBike=!0,a.unfinishOrder=c.data.unfinishedOrder);200==c.data.unfinishedOrder.status&&layer.open({content:"\u60a8\u6709\u672a\u652f\u4ed8\u7684\u8ba2\u5355\uff0c\u662f\u5426\u524d\u5f80\u652f\u4ed8\uff1f",btn:["\u786e\u8ba4","\u53d6\u6d88"],shadeClose:!1,yes:function(b){layer.close(b);d.go("tripDetail",{orderId:a.unfinishOrder.id})},no:function(a){layer.close(a)}})}).error(function(a,b){console.log(JSON.stringify(a))})):(a.userinfo={},a.userinfo.userName="\u672a\u767b\u5f55",a.userinfo.loginState=!1);a.moduleList=[];a.moduleList.push({name:"\u884c\u7a0b\u8bb0\u5f55",icon:"images/trip.png",state:"trip"});a.moduleList.push({name:"\u94b1\u5305",icon:"images/wallet.png",state:"wallet"});a.moduleList.push({name:"\u4fdd\u8bc1\u91d1",icon:"images/bond.png",state:"bond"});a.moduleList.push({name:"\u8054\u7cfb\u6211\u4eec",icon:"images/contact.png",state:"contact"});a.moduleList.push({name:"\u610f\u89c1\u53cd\u9988",icon:"images/opinion.png",state:"opinion"})})()}]);
...\ No newline at end of file ...\ No newline at end of file
1 angular.module('myApp')
2 .controller('mapController',['$scope','$rootScope','dingdaService','globalService','$state',function($scope,$rootScope,dingdaService,globalService,$state){
3 var myMarker;
4 var markers = [];
5 var overlays = [];
6 var walking;
7 var infoControl;
8 var scanControl;
9 var map;
10 var endPosition;
11 var polyline;
12
13 $rootScope.currentPoint = {};
14
15 var rendBike = function() {
16 scanControl.hide();
17 infoControl.show();
18 }
19
20 var returnBike = function() {
21 scanControl.show();
22 infoControl.hide();
23 }
24
25 $scope.$watch("isRendBike",function(newVal, oldVal){
26 if(newVal === oldVal){
27 return;
28 }
29 if(newVal) {
30 rendBike();
31 } else {
32 returnBike();
33 }
34 })
35
36 var initMap = function() {
37 map = new BMap.Map("mapContainer");
38 map.centerAndZoom(new BMap.Point(120.124421, 30.279879), 15);
39
40 map.addEventListener("click", function() {
41
42 for(var i = 0 ; i < overlays.length ; i++) {
43 overlays[i].hide();
44 }
45 $scope.$apply(function() {
46 $rootScope.openMenu = false;
47 })
48 });
49 initMapControl(map);
50 }
51
52 var onSearchComplete = function(result) {
53 map.removeOverlay(polyline);
54 var route = result.tr[0].ek[0].vr;
55 route.unshift(myMarker.position);
56 route.push(endPosition)
57 polyline = new BMap.Polyline(route);
58 polyline.setStrokeColor("#36D1E7");
59 polyline.setStrokeOpacity(1);
60 polyline.setStrokeWeight(3);
61 polyline.setStrokeStyle("solid");
62 map.addOverlay(polyline);
63 }
64
65 var initMarker = function(point) {
66 map.setCenter(point);
67 walking = new BMap.WalkingRoute(map, {renderOptions:{map: null, autoViewport: true}})
68 walking.setSearchCompleteCallback(onSearchComplete);
69 initMyMarker(point , map);
70 refreshNewPoints(point);
71 }
72
73 var refreshNewPoints = function(point) {
74
75 // if(!globalService.getData('user').token) {
76 // return;
77 // }
78
79 dingdaService.getStationList(point.lng , point.lat).success(function(data , status) {
80 // dingdaService.getStationList(120.18893141 , 30.2284141).success(function(data , status) {
81 // alert(JSON.stringify(data))
82 // console.log(JSON.stringify(data))
83 initMarkers(data.data.stationLists , map);
84 }).error(function(data , status) {
85
86 })
87 }
88
89 var initMyMarker = function(point , map) {
90
91 $rootScope.isLoadFinish = true;
92 myMarker = new MyMark(point);
93 map.addOverlay(myMarker);
94 }
95
96 var initMarkers = function(points , map) {
97 for(var i = 0 ; i < markers.length ; i++) {
98 // document.getElementById("mapContainer").removeChild(markers[i].div);
99 map.removeOverlay(markers[i]);
100 markers[i].div.parentElement.removeChild(markers[i].div);
101 // document.getElementById("mapContainer").removeChild(overlays[i].div);
102 map.removeOverlay(overlays[i]);
103 overlays[i].div.parentElement.removeChild(overlays[i].div);
104 }
105 markers = [];
106 overlays = [];
107 for(var i = 0 ; i < points.length ; i++) {
108 var marker = new SiteOverlay(new BMap.Point(points[i].longitude, points[i].latitude) , i , points[i]);
109 map.addOverlay(marker);
110 markers.push(marker);
111 }
112
113 }
114
115 function RelocateControl(){
116 this.defaultAnchor = BMAP_ANCHOR_BOTTOM_LEFT;
117 this.defaultOffset = new BMap.Size(0, 0);
118 }
119
120 function ScanControl(){
121 this.defaultAnchor = BMAP_ANCHOR_BOTTOM_LEFT;
122 this.defaultOffset = new BMap.Size(0, 0);
123 }
124
125 function InfoControl(){
126 this.defaultAnchor = BMAP_ANCHOR_BOTTOM_LEFT;
127 this.defaultOffset = new BMap.Size(0, 0);
128 }
129
130 function MenuControl(){
131 this.defaultAnchor = BMAP_ANCHOR_TOP_LEFT;
132 this.defaultOffset = new BMap.Size(0, 13);
133 }
134
135 function RingControl(){
136 this.defaultAnchor = BMAP_ANCHOR_TOP_LEFT;
137 this.defaultOffset = new BMap.Size(0, 66);
138 }
139
140 var initMapControl = function(map) {
141 ScanControl.prototype = new BMap.Control();
142 ScanControl.prototype.initialize = function(map){
143 var scanControl = document.createElement("div");
144 scanControl.className = "scanControl";
145
146 var scanControlContainer = document.createElement("div");
147 scanControlContainer.className = "scanControlContainer";
148
149 var scanControlContent = document.createElement("div");
150 scanControlContent.className = "scanControlContent";
151
152 var img = document.createElement("img");
153 img.className = "spanResize";
154 img.src = "images/scancode.png";
155
156 scanControlContent.innerHTML = img.outerHTML + " 扫码租车";
157
158 scanControlContainer.onclick = function() {
159 $scope.$apply(function() {
160 $rootScope.openScan = true;
161 })
162 }
163 scanControlContainer.appendChild(scanControlContent);
164 scanControl.appendChild(scanControlContainer);
165
166 map.getContainer().appendChild(scanControl);
167 return scanControl;
168 }
169 scanControl = new ScanControl();
170 map.addControl(scanControl);
171
172 InfoControl.prototype = new BMap.Control();
173 InfoControl.prototype.initialize = function(map){
174 var infoControl = document.createElement("div");
175 infoControl.className = "scanControl";
176
177 var infoControlContainer = document.createElement("div");
178 infoControlContainer.className = "scanControlContainer";
179
180 var infoControlContent = document.createElement("div");
181 infoControlContent.className = "scanControlContent";
182
183 var img = document.createElement("img");
184 img.className = "spanResize";
185 img.src = "images/details.png";
186
187 infoControlContent.innerHTML = img.outerHTML + " 租车详情";
188
189 infoControlContainer.onclick = function() {
190 $scope.$apply(function() {
191 $rootScope.openDetail = true;
192 })
193 }
194 infoControlContainer.appendChild(infoControlContent);
195 infoControl.appendChild(infoControlContainer);
196
197 map.getContainer().appendChild(infoControl);
198 return infoControl;
199 }
200 infoControl = new InfoControl();
201 map.addControl(infoControl);
202 infoControl.hide();
203
204 RelocateControl.prototype = new BMap.Control();
205 RelocateControl.prototype.initialize = function(map){
206 var relocateControl = document.createElement("div");
207 relocateControl.className = "locateControlContainer";
208 relocateControl.index = 1;
209
210 var relocateControlContent = document.createElement("div");
211 relocateControlContent.className = "locateControlContent";
212 var relocateControlContentCenter = document.createElement("div");
213 relocateControlContentCenter.className = "locateControlContentCenter";
214 relocateControlContent.appendChild(relocateControlContentCenter);
215 relocateControl.appendChild(relocateControlContent);
216
217 relocateControl.onclick = function() {
218 map.panTo(myMarker.position);
219 map.setZoom(15);
220 }
221 map.getContainer().appendChild(relocateControl);
222 return relocateControl;
223 }
224 var relocateControl = new RelocateControl();
225 map.addControl(relocateControl);
226
227
228 MenuControl.prototype = new BMap.Control();
229 MenuControl.prototype.initialize = function(map){
230 var menuControl = document.createElement("div");
231 menuControl.className = "menuControl";
232 menuControl.index = 1;
233
234 var menuControlContent = document.createElement("img");
235 menuControlContent.src = "images/me.png";
236
237 menuControl.appendChild(menuControlContent);
238
239 menuControl.onclick = function() {
240 $scope.$apply(function() {
241 // alert(!globalService.getData("user"))
242 if(!globalService.getData("user")) {
243 $state.go('login');
244 return;
245 }
246 $rootScope.openMenu = !$rootScope.openMenu;
247 })
248 }
249 map.getContainer().appendChild(menuControl);
250 return menuControl;
251 }
252 var menuControl = new MenuControl();
253 map.addControl(menuControl);
254
255 RingControl.prototype = new BMap.Control();
256 RingControl.prototype.initialize = function(map){
257 var ringControl = document.createElement("div");
258 ringControl.className = "menuControl";
259 ringControl.index = 1;
260
261 var ringControlContent = document.createElement("img");
262 ringControlContent.src = "images/new.png";
263
264 ringControl.appendChild(ringControlContent);
265
266 ringControl.onclick = function() {
267 $scope.$apply(function() {
268 $rootScope.openRing = !$rootScope.openRing;
269 })
270 }
271 map.getContainer().appendChild(ringControl);
272 return ringControl;
273 }
274 // var ringControl = new RingControl();
275 // map.addControl(ringControl);
276
277 var opts = {
278 type: BMAP_NAVIGATION_CONTROL_SMALL,
279 anchor : BMAP_ANCHOR_BOTTOM_RIGHT
280 }
281 map.addControl(new BMap.NavigationControl(opts));
282 }
283
284 var initLocation = function(isForce) {
285 // var options = {
286 // enableHighAccuracy:true,
287 // maximumAge:1000
288 // }
289
290 getlocation();
291 function getlocation() {
292 wx.getLocation({
293 type: 'gcj02', // 默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02'
294 success: function (res) {
295 onSuccess(res)
296 }
297 });
298 }
299
300
301 function onSuccess(position){
302 var longitude = position.longitude;
303 var latitude = position.latitude;
304 $rootScope.currentPoint = {
305 longitude : longitude ,
306 latitude : latitude
307 }
308 var convertor = new BMap.Convertor();
309 var pointArr = [];
310 pointArr.push(new BMap.Point(longitude, latitude));
311 convertor.translate(pointArr, 3, 5, function(data){
312 var point = data.points[0];
313 // var point = new BMap.Point(120.1965, 30.23048);
314 if(!myMarker) {
315 initMarker(point);
316 // setInterval(function(){
317 // if(!myMarker) return;
318 // getlocation();
319 //// navigator.geolocation.getCurrentPosition(onSuccess,onError,options);
320 // } , 1000 * 60 * 60);
321 } else {
322 myMarker.position = point;
323 if(isForce) {
324 var map = myMarker.getMap();
325 map.panTo(point);
326 }
327 refreshNewPoints(point);
328 }
329 })
330 }
331
332 // function onError(error){
333 // switch(error.code){
334 // case 1:
335 // alert("位置服务被拒绝");
336 // break;
337 // case 2:
338 // alert("暂时获取不到位置信息");
339 // break;
340 // case 3:
341 // alert("获取信息超时");
342 // break;
343 // case 4:
344 // alert("未知错误");
345 // break;
346 // }
347 // initLocation();
348 // }
349 // if (navigator.geolocation) {
350 // navigator.geolocation.getCurrentPosition(onSuccess,onError,options);
351 // } else {
352 // alert("无法获取地理位置信息");
353 // }
354 }
355
356 function CustomOverlay(position, index , info) {
357 this.index = index;
358 this.position = position;
359 this.info = info;
360 this.isDisplay = false;
361 }
362
363 function SiteOverlay(position , index , info) {
364 this.index = index;
365 this.position = position;
366 this.info = info;
367 this.isDisplay = true;
368 }
369
370 function MyMark(position) {
371 this.position = position;
372 }
373
374 var initCustomOverlay = function() {
375 CustomOverlay.prototype = new BMap.Overlay();
376 //定义construct,实现这个接口来初始化自定义的Dom元素
377 CustomOverlay.prototype.initialize = function(map) {
378 this.map = map;
379 var container = this.div = document.createElement("div");
380 container.className = "overlayContainer";
381
382 var leftPanel = document.createElement("div");
383 leftPanel.className = "overlayPanelLeft";
384 var leftPanelContentContainer = document.createElement("div");
385 leftPanelContentContainer.className = "overlayPanelLeftContentContainer";
386 var leftPanelContent = document.createElement("div");
387 leftPanelContent.className = "overlayPanelLeftContent";
388 leftPanelContent.innerText = this.info.name;
389
390 leftPanelContentContainer.appendChild(leftPanelContent);
391 leftPanel.appendChild(leftPanelContentContainer);
392
393 var centerPanel = document.createElement("div");
394 centerPanel.className = "overlayPanelCenter";
395 var centerPanelContentTop = document.createElement("div");
396 centerPanelContentTop.className = "overlayPanelCenterContent overlayPanelCenterContentTop";
397 if(!$scope.isRendBike) {
398 centerPanelContentTop.className += " act";
399 }
400 centerPanelContentTop.innerText = "可借:" + this.info.enHireNum;
401 var centerPanelContentBottom = document.createElement("div");
402 centerPanelContentBottom.className = "overlayPanelCenterContent overlayPanelCenterContentBottom";
403 if($scope.isRendBike) {
404 centerPanelContentBottom.className += " act";
405 }
406 centerPanelContentBottom.innerText = "可还:" + this.info.disHireNum;
407
408 centerPanel.appendChild(centerPanelContentTop);
409 centerPanel.appendChild(centerPanelContentBottom);
410
411 var rightPanel = document.createElement("div");
412 rightPanel.className = "overlayPanelRight";
413
414 var rightPanelContentContainer = document.createElement("div");
415 rightPanelContentContainer.className = "overlayPanelRightContentContainer";
416 var rightPanelContent = document.createElement("div");
417 rightPanelContent.className = "overlayPanelRightContent";
418
419 rightPanelContentContainer.appendChild(rightPanelContent);
420 rightPanel.appendChild(rightPanelContentContainer);
421
422
423 var corner = document.createElement("img");
424 corner.className = "corner";
425 corner.src = "images/triangle.png"
426
427 leftPanel.appendChild(centerPanel);
428 container.appendChild(leftPanel);
429 container.appendChild(rightPanel);
430 container.appendChild(corner)
431 //将dom添加到覆盖物层
432 var panes = map.getPanes();
433 var self = this;
434
435 rightPanel.onclick = function() {
436 walking.clearResults();
437 walking.search(myMarker.position, self.position);
438 endPosition = self.position;
439 }
440
441
442 rightPanel.addEventListener("touchend", function() {
443 rightPanel.onclick();
444
445 });
446 //设置panes的层级,overlayMouseTarget可接收点击事件
447 panes.labelPane.appendChild(container);
448
449 }
450 //实现draw接口来绘制和更新自定义的dom元素
451 CustomOverlay.prototype.draw = function() {
452 var pixel = this.map.pointToOverlayPixel(this.position);
453 var divStyle = this.div.style;
454 divStyle.left = pixel.x - 90 + "px";
455 divStyle.top = pixel.y - 70 + "px";
456 }
457
458 CustomOverlay.prototype.show = function(info) {
459 if(info) {
460 this.info = info;
461 var topEle = this.div.getElementsByClassName("overlayPanelCenterContentTop");
462 topEle[0].innerText = "可借:" + info.enHireNum;
463 var bottomEle = this.div.getElementsByClassName("overlayPanelCenterContentBottom");
464 bottomEle[0].innerText = "可还:" + info.disHireNum;
465 } else {
466 this.div.style.display = "block";
467 this.isDisplay = true;
468 var topEle = this.div.getElementsByClassName("overlayPanelCenterContentTop");
469 topEle[0].innerText = "可借:0";
470 var bottomEle = this.div.getElementsByClassName("overlayPanelCenterContentBottom");
471 bottomEle[0].innerText = "可还:0";
472 }
473
474 }
475
476 CustomOverlay.prototype.hide = function() {
477 this.div.style.display = "none";
478 this.isDisplay = false;
479 }
480 SiteOverlay.prototype = new BMap.Overlay();
481 //定义construct,实现这个接口来初始化自定义的Dom元素
482 SiteOverlay.prototype.initialize = function(map) {
483 this.map = map;
484 var container = this.div = document.createElement("div");
485 container.className = "siteOverlay";
486 var img = document.createElement("img");
487 img.src = "images/site.png";
488 container.appendChild(img);
489 //将dom添加到覆盖物层
490 var panes = map.getPanes();
491
492 var self = this;
493 var overlay = new CustomOverlay(self.position, self.index , self.info);
494 overlays.push(overlay);
495 map.addOverlay(overlay);
496 container.onclick = function() {
497 map.panTo(self.position);
498 for(var i = 0 ; i < overlays.length ; i++) {
499 overlays[i].hide();
500 }
501 if(overlay.isDisplay) {
502 overlay.hide();
503 } else {
504 setTimeout(function(){
505 overlay.show();
506 } , 100);
507 // var t1 = new Date().getTime();
508 dingdaService.getStationById(self.info.id).success(
509 function(data , status) {
510 // alert(JSON.stringify(data.data) + " , Cost time : " + (new Date().getTime() - t1))
511
512 setTimeout(function(){
513 overlay.show(data.data.station);
514 } , 100);
515 }
516 );
517
518 }
519
520 }
521
522 container.addEventListener("touchend", function() {
523 container.onclick();
524 });
525 //设置panes的层级,overlayMouseTarget可接收点击事件
526 panes.labelPane.appendChild(container);
527
528 }
529 //实现draw接口来绘制和更新自定义的dom元素
530 SiteOverlay.prototype.draw = function() {
531 var pixel = this.map.pointToOverlayPixel(this.position);
532 // alert(JSON.stringify(pixel))
533 var divStyle = this.div.style;
534 divStyle.left = pixel.x - 13.5 + "px";
535 divStyle.top = pixel.y - 13.5 + "px";
536 }
537
538 SiteOverlay.prototype.show = function() {
539 this.div.style.display = "block";
540 this.isDisplay = true;
541 }
542
543 SiteOverlay.prototype.hide = function() {
544 this.div.style.display = "none";
545 this.isDisplay = false;
546 }
547
548 MyMark.prototype = new BMap.Overlay();
549 //定义construct,实现这个接口来初始化自定义的Dom元素
550 MyMark.prototype.initialize = function(map) {
551 this.map = map;
552 var container = this.div = document.createElement("div");
553 container.className = "myMarker";
554 var img = document.createElement("img");
555 img.src = "images/myposition.png";
556 container.appendChild(img);
557 //将dom添加到覆盖物层
558 var panes = map.getPanes();
559
560 //设置panes的层级,overlayMouseTarget可接收点击事件
561 panes.labelPane.appendChild(container);
562
563 }
564 //实现draw接口来绘制和更新自定义的dom元素
565 MyMark.prototype.draw = function() {
566 var pixel = this.map.pointToOverlayPixel(this.position);
567 // alert(JSON.stringify(pixel))
568 var divStyle = this.div.style;
569 divStyle.left = pixel.x - 25 + "px";
570 divStyle.top = pixel.y - 37 + "px";
571 }
572
573 }
574
575 // mui.init();
576
577 initCustomOverlay();
578 initMap();
579 wx.ready(function() {
580 initLocation();
581 })
582
583 }]);
...\ No newline at end of file ...\ No newline at end of file
1 angular.module('myApp')
2 .controller('opinionController',['$scope','$rootScope','dingdaService','$state','globalService','$stateParams',
3 function($scope,$rootScope,dingdaService,$state,globalService,$stateParams){
4
5 $scope.opinion = "";
6
7 $scope.submit = function() {
8 if($scope.opinion.length == 0) {
9 return;
10 }
11 if($scope.opinion.length > 200) {
12 layer.open({
13 content: "超出字数限制",
14 time:2
15 });
16 } else {
17 var phoneType = navigator.userAgent.match(/\(.*?\)/);
18 var wx = navigator.userAgent.match(/MicroMessenger\/.*?[ ]/);
19
20 // alert(phoneType)
21 var data = {
22 content : $scope.opinion ,
23 latitude : $stateParams.latitude ,
24 longitude : $stateParams.longitude ,
25 phoneType : phoneType[0] ,
26 systemType : wx[0]
27 }
28
29
30 dingdaService.comment(data).success(function(data , status) {
31 if(data.meta.code != 200) {
32 layer.open({
33 content: data.meta.message,
34 time:2
35 });
36 return;
37 }
38 layer.open({
39 content: "评论成功",
40 time:2
41 });
42 setTimeout(function() {
43 location.reload();
44 } , 300);
45 history.back();
46 }).error(function(data , status){
47 alert(JSON.stringify(data))
48
49 })
50 }
51 }
52
53 }]);
...\ No newline at end of file ...\ No newline at end of file
1 angular.module('myApp')
2 .controller('payController',['$scope','$rootScope','dingdaService','$state','globalService',function($scope,$rootScope,dingdaService,$state,globalService){
3
4 var init = function() {
5 // globalService.init();
6 }
7
8 // mui.init();
9 init();
10
11 $scope.pay = function() {
12 alert("充值")
13 }
14 }]);
...\ No newline at end of file ...\ No newline at end of file
1 angular.module('myApp')
2 .controller('prepayController',['$scope','$rootScope','dingdaService','$state','globalService','wechatPayment',function($scope,$rootScope,dingdaService,$state,globalService,wechatPayment){
3
4 $scope.account = "";
5 $scope.way = 101;
6
7 var init = function() {
8 // globalService.init();
9 }
10
11 // mui.init();
12 init();
13 var ispay = false;
14 $scope.prepay = function() {
15 if(ispay) return;
16 if($scope.account == ""){
17 layer.open({
18 content: '请输入充值金额',
19 time:1
20 });
21 return;
22 };
23
24 if($scope.account < 1) {
25 layer.open({
26 content: '充值金额至少为1元',
27 time:1
28 });
29 return;
30 }
31 ispay = true;
32 // alert($scope.way)
33 wechatPayment.callBalanceRecharge($scope.account, $scope.way)
34 .then(function(result){
35
36 ispay = false;
37 //支付成功
38 // $state.go('wallet',{},{reload:true});
39 window.history.back();
40 }, function(errMsg){
41
42 ispay = false;
43 //支付失败
44 })
45
46 // alert("充值 : " + $scope.account + "元")
47 }
48
49 $scope.payway = function() {
50 if($scope.way == 101){
51 $('#wxpay').show();
52 $('#alipay').hide();
53 $('#alipayform').hide();
54 $('#wxpayform').show();
55 } else{
56 $('#alipay').show();
57 $('#wxpay').hide();
58 $('#alipayform').show();
59 $('#wxpayform').hide();
60 }
61 // alert('xxx')
62 }
63 }]);
...\ No newline at end of file ...\ No newline at end of file
1 angular.module('myApp')
2 .controller('rechargeListController',function($scope,$rootScope,$state){
3 $scope.rechargeList = [
4 {
5 rechargeType:'微信充值',
6 rechargeTime:'2016-01-17 16:16:23',
7 rechargeMoney:100
8 },
9 {
10 rechargeType:'微信充值',
11 rechargeTime:'2016-01-17 16:16:23',
12 rechargeMoney:200
13 }
14 ]
15 })
...\ No newline at end of file ...\ No newline at end of file
1 angular.module('myApp')
2 .controller('rentDetailController',['$scope','$rootScope','$state','dingdaService' ,function($scope,$rootScope,$state,dingdaService){
3
4 $scope.detail = {};
5 $scope.costTime = "";
6 var oldTime;
7
8 $scope.backHome = function(){
9 $state.go('main');
10 }
11
12 var init = function() {
13 dingdaService.getUnfinishedOrder().success(function(data , status){
14 // alert(JSON.stringify(data))
15
16 if(data.meta.code == 200) {
17 if(!data.data.unfinishedOrder.id) {
18 $state.go('main');
19 }
20 }
21
22 if(data.data.unfinishedOrder.status == 200) {
23 $state.go('tripDetail' , { orderId : data.data.unfinishedOrder.id});
24 }
25
26 dingdaService.getOrderRealTimeInfo(data.data.unfinishedOrder.id)
27 .success(function(data , status){
28 // alert(JSON.stringify(data))
29
30 $scope.datail = data.data.orderDetail;
31
32
33 setInterval(function(){
34 $scope.$apply(function(){
35 var h = Math.floor($scope.datail.rentTime / 3600);
36 var m = Math.floor($scope.datail.rentTime % 3600 / 60);
37 var s = $scope.datail.rentTime % 60;
38
39 if(h < 10) {
40 h = "0" + h;
41 }
42 if(m < 10) {
43 m = "0" + m;
44 }
45 if(s < 10) {
46 s = "0" + s;
47 }
48
49 $scope.costTime = h + ":" + m + ":" + s;
50 // console.log($scope.costTime)
51 if($scope.datail.freeTime <= $scope.datail.rentTime) {
52 $scope.detail.freeCountdown = "00:00";
53 } else {
54 var minute = Math.floor(( $scope.datail.freeTime - $scope.datail.rentTime ) / 60);
55 if(minute < 10) {
56 minute = "0" + minute;
57 }
58 var second = ( $scope.datail.freeTime - $scope.datail.rentTime ) % 60;
59 if(second < 10) {
60 second = "0" + second;
61 }
62 $scope.detail.freeCountdown = minute + ":" + second;
63 }
64 $scope.datail.rentTime++;
65 })
66 } , 1000);
67
68 }).error(function(data , status){
69
70 })
71 }).error(function(data , status) {
72 console.log(JSON.stringify(data))
73 })
74 }
75
76 init();
77
78 // ������ж�ʱ��
79 setTimeout(function() {
80 var href = new String(location.href);
81 if(href.indexOf("rentDetail") > 0) location.reload();
82 } , 30000)
83
84 $scope.alreadyBack = function(){
85 $state.go('unusual' , { id : $scope.datail.id});
86 }
87
88 }])
...\ No newline at end of file ...\ No newline at end of file
1 angular.module('myApp')
2 .controller('tripController',['$scope','$rootScope','$state','dingdaService' ,function($scope,$rootScope,$state,dingdaService){
3
4 $scope.tripList = [];
5
6 $scope.isLastPage = false;
7
8 $scope.getMoreOrders = function() {
9
10 dingdaService.getOrderList(page).success(function(data , status) {
11 // alert(JSON.stringify(data))
12 if(!data.data.orders || data.data.orders.length == 0) {
13 $scope.isLastPage = true;
14 return;
15 }
16 if(page == 1) {
17 $scope.tripList = [];
18 }
19 for(var i = 0 ; i < data.data.orders.length;i++) {
20 if(data.data.orders[i].status == 300) {
21 data.data.orders[i].tripStatus = "已完成";
22 } else {
23 data.data.orders[i].tripStatus = "待支付";
24 }
25 $scope.tripList.push(data.data.orders[i]);
26 }
27 page++;
28 // alert(JSON.stringify($scope.tripList))
29 })
30 }
31
32 var page = 1;
33
34 var init = function() {
35 $scope.getMoreOrders();
36 }
37
38 init();
39
40 $scope.viewTripDetail = function(index){
41 $state.go('tripDetail' , { orderId : $scope.tripList[index].id });
42 }
43 }])
...\ No newline at end of file ...\ No newline at end of file
1 angular.module('myApp')
2 .controller('tripDetailController', ['$scope', '$rootScope', '$state', 'dingdaService', '$stateParams', 'wechatPayment',
3 function ($scope, $rootScope, $state, dingdaService, $stateParams, wechatPayment) {
4 console.log('tripDetailController');
5 /**
6 * 2. 选择dom元素
7 * */
8 var tripDetail = $('.tripDetail');
9 var winHeight = $(window).height();
10 var tripHeight = tripDetail.height() + 40;
11 var bottomPosition = $('.bottomPosition');
12 if (winHeight >= tripHeight) {
13 bottomPosition.css({'position': 'absolute', 'bottom': '0'})
14 }
15 /**
16 * 3. 定义当前业务需要的数据
17 * */
18 $scope.tripDetail = {};
19 $scope.needPay = false;
20 $scope.backHome = function () {
21 $state.go('main');
22 }
23 /**
24 * 4. 支付逻辑
25 * ispay 有无支付
26 * isActive
27 * choosePay 选择支付
28 * */
29 var ispay = false;
30 $scope.isActive = true; // 这个是个关键 TODO 要更改的
31 $scope.payType = 1;
32 $scope.choosePay = function (index) {
33 if ($($('.checkboxS')[index]).hasClass('checkboxTrue')) {
34 // 如果要选择的项已经选中,不处理
35 return
36 } else {
37 $scope.isActive = !$scope.isActive;
38 }
39
40 $scope.payType = index;
41 }
42 $scope.goPay = function () {
43 if (ispay) return;
44 if ($scope.payType == 1) { //微信支付
45
46 ispay = true;
47 wechatPayment.callRentPay($scope.tripDetail.id, $scope.tripDetail.total_fee)
48 .then(function (result) {
49 ispay = false;
50 //支付成功
51 init();
52 // $state.go('bondSuccess');
53 }, function (errMsg) {
54 ispay = false;
55 //支付失败
56 // layer.open({
57 // content: '支付失败,请重试',
58 // time:2
59 // });
60 })
61 } else {
62 if ($scope.tripDetail.total_fee > $scope.balance) { //钱包支付判断余额是否足够支付
63 layer.open({
64 content: '您的余额不够是否去充值?', //小米下面按钮对齐
65 btn: ['去充值', '取消'],
66 shadeClose: false,
67 yes: function (index) {
68 $state.go('prepay', {}, {reload: false});
69 layer.close(index);
70 }, no: function (index) {
71 layer.close(index);
72 }
73 });
74 } else {
75 // 余额支付
76
77 ispay = true;
78 var data = {
79 amount: $scope.tripDetail.total_fee,
80 body: '余额支付',
81 type: 102
82 }
83 dingdaService.payWX($scope.tripDetail.id, data)
84 .success(function (data, status) {
85 ispay = false;
86 layer.open({
87 content: '支付成功',
88 time: 2
89 });
90 init();
91 })
92 .error(function (data) {
93 ispay = false;
94 layer.open({
95 content: '支付失败',
96 time: 2
97 });
98 })
99 }
100 }
101 }
102
103 var orderid = $stateParams.orderId;
104 /**
105 * 1. init 获取初始化的数据 tripDetail 订单详情 needPay 是否需要发起支付
106 * */
107 var init = function () {
108 dingdaService.getOrderFinishInfo(orderid).success(function (data, status) {
109 $scope.tripDetail = data.data.order;
110 // alert(JSON.stringify(data));
111 if (data.data.order.status == 300 || $scope.tripDetail.total_fee == 0) {
112 $scope.needPay = false;
113 } else if (data.data.order.status == 200) {
114 $scope.needPay = true;
115 }
116 })
117
118 dingdaService.getWallet(orderid).success(function (data, status) {
119 $scope.balance = data.data.balance;
120 })
121 }
122 init();
123
124 }])
...\ No newline at end of file ...\ No newline at end of file
1 angular.module('myApp')
2 .controller('unusualController',['$scope','dingdaService','$state','$stateParams',function($scope,dingdaService,$state,$stateParams){
3
4 $scope.returnBike = function() {
5 dingdaService.setOrderFinish($stateParams.id)
6 .success(function(data , status) {
7 if(data.meta.code == 200) {
8 $state.go('tripDetail' , { orderId : $stateParams.id });
9 } else if (data.meta.code == 203) {
10 layer.open({
11 content: "租车失败",
12 time:2
13 });
14 $state.go('main');
15 } else {
16
17 layer.open({
18 content: "系统检测到您还未还车,请联系客服",
19 time:2
20 });
21 }
22 }).error(function(data , status) {
23
24 });
25 }
26
27 $scope.hint = function() {
28 layer.open({
29 content: "请在主页面菜单中点击联系我们",
30 time:2
31 });
32 }
33
34 }])
...\ No newline at end of file ...\ No newline at end of file
1 angular.module('myApp')
2 .controller('walletController',['$scope','$rootScope','dingdaService','$state','globalService',function($scope,$rootScope,dingdaService,$state,globalService){
3
4 $scope.balance = "";
5
6 var init = function() {
7 dingdaService.getWallet().success(function(data , status){
8 // alert(JSON.stringify(data.data))
9 $scope.balance = data.data.balance;
10
11 })
12 }
13
14 init();
15
16 $scope.prepay = function() {
17 $state.go('prepay', { }, { reload: false });
18 }
19 }]);
...\ No newline at end of file ...\ No newline at end of file
1 /**
2 * Created by zhanghong on 14-7-29.
3 */
4
5 var debugArea = document.createElement("div");
6 debugArea.setAttribute("style", "position: fixed;max-height:30%;overflow:scroll");
7 //var info = document.createElement("div");
8 //info.setAttribute("style", "background: green;max-height:20%;overflow:scroll");
9 //var warn = document.createElement("div");
10 //warn.setAttribute("style", "background: yellow;max-height:20%;overflow:scroll");
11 //var error = document.createElement("div");
12 //error.setAttribute("style", "background: red;max-height:20%;overflow:scroll");
13 //debugArea.appendChild(info);
14 //debugArea.appendChild(warn);
15 //debugArea.appendChild(error);
16
17 var url = window.location.href,
18 parts = url.split('?'),
19 d = {};
20 if(parts.length == 2){
21 var hash = parts[1].indexOf('#')
22 if(hash != -1){
23 parts[1] = parts[1].substring(0, hash)
24 }
25
26 var pairs = parts[1].split('&')
27 pairs.forEach(function(pair){
28 var kv = pair.split('=')
29 if(kv.length == 2){
30 d[kv[0]] = kv[1]
31 }
32 })
33 }
34 var debug = (d.debug && d.debug == 1)?true:false;
35 var body = null;
36 if(debug) {
37 var init = function () {
38 body = document.getElementsByTagName("body")[0];
39 if (body) {
40 body.appendChild(debugArea);
41 if (startUpTimer) {
42 clearInterval(startUpTimer);
43 }
44 }
45 }
46 var startUpTimer = setInterval(init, 1000);
47 }
48
49 window.wwsDebug = {
50 _log : function(type, message){
51 var target = null;
52 var style = null;
53 switch(type){
54 case 'info':
55 // target = info;
56 style = "background: green;";
57 break;
58 case 'warn':
59 // target = warn;
60 style = "background: yellow;";
61 break;
62 case 'error':
63 // target = error;
64 style = "background: red;";
65 break;
66 }
67
68 //if(target){
69 if(debug) {
70 var line = document.createElement("h3");
71 line.setAttribute("style", style);
72 line.innerHTML = message;
73 debugArea.appendChild(line);
74 }
75 // console.log(message);
76 //}
77 },
78 error : function (message) {
79 this._log('error', message);
80 },
81 warn : function(message){
82 this._log('warn', message);
83 },
84 info : function(message){
85 this._log('info', message);
86 },
87 log : function(message){
88 this._log('info', message);
89 }
90 }
91 //if(debug){
92 // console.originalLog = console.log;
93 // console.log = function(message){
94 // wwsDebug.info(message);
95 // console.originalLog(message);
96 // }
97 //}
98
99 //function takeOverConsole(){
100 var console = window.console
101 if(console) {
102 function intercept(method) {
103 var original = console[method]
104 console[method] = function () {
105 wwsDebug[method](arguments);
106 if (original.apply) {
107 // Do this for normal browsers
108 original.apply(console, arguments)
109 } else {
110 // Do this for IE
111 var message = Array.prototype.slice.apply(arguments).join(' ')
112 original(message)
113 }
114 }
115 }
116
117 var methods = ['warn', 'error']
118 for (var i = 0; i < methods.length; i++)
119 intercept(methods[i])
120 }
121 //}
This diff could not be displayed because it is too large.
1 /*! layer弹层组件拓展类 */
2 ;!function(){layer.use("skin/layer.ext.css",function(){layer.layui_layer_extendlayerextjs=!0});var a=layer.cache||{},b=function(b){return a.skin?" "+a.skin+" "+a.skin+"-"+b:""};layer.prompt=function(a,c){a=a||{},"function"==typeof a&&(c=a);var d,e=2==a.formType?'<textarea class="layui-layer-input">'+(a.value||"")+"</textarea>":function(){return'<input type="'+(1==a.formType?"password":"text")+'" class="layui-layer-input" value="'+(a.value||"")+'">'}();return layer.open($.extend({btn:["&#x786E;&#x5B9A;","&#x53D6;&#x6D88;"],content:e,skin:"layui-layer-prompt"+b("prompt"),success:function(a){d=a.find(".layui-layer-input"),d.focus()},yes:function(b){var e=d.val();""===e?d.focus():e.length>(a.maxlength||500)?layer.tips("&#x6700;&#x591A;&#x8F93;&#x5165;"+(a.maxlength||500)+"&#x4E2A;&#x5B57;&#x6570;",d,{tips:1}):c&&c(e,b,d)}},a))},layer.tab=function(a){a=a||{};var c=a.tab||{};return layer.open($.extend({type:1,skin:"layui-layer-tab"+b("tab"),title:function(){var a=c.length,b=1,d="";if(a>0)for(d='<span class="layui-layer-tabnow">'+c[0].title+"</span>";a>b;b++)d+="<span>"+c[b].title+"</span>";return d}(),content:'<ul class="layui-layer-tabmain">'+function(){var a=c.length,b=1,d="";if(a>0)for(d='<li class="layui-layer-tabli xubox_tab_layer">'+(c[0].content||"no content")+"</li>";a>b;b++)d+='<li class="layui-layer-tabli">'+(c[b].content||"no content")+"</li>";return d}()+"</ul>",success:function(a){var b=a.find(".layui-layer-title").children(),c=a.find(".layui-layer-tabmain").children();b.on("mousedown",function(a){a.stopPropagation?a.stopPropagation():a.cancelBubble=!0;var b=$(this),d=b.index();b.addClass("layui-layer-tabnow").siblings().removeClass("layui-layer-tabnow"),c.eq(d).show().siblings().hide()})}},a))},layer.photos=function(a,c,d){function e(a,b,c){var d=new Image;d.onload=function(){d.onload=null,b(d)},d.onerror=function(a){d.onerror=null,c(a)},d.src=a}var f={};if(a=a||{},a.photos){var g=a.photos.constructor===Object,h=g?a.photos:{},i=h.data||[],j=h.start||0;if(f.imgIndex=j+1,g){if(0===i.length)return void layer.msg("&#x6CA1;&#x6709;&#x56FE;&#x7247;")}else{var k=$(a.photos),l=k.find(a.img||"img");if(0===l.length)return;if(c||k.find(h.img||"img").each(function(b){var c=$(this);i.push({alt:c.attr("alt"),pid:c.attr("layer-pid"),src:c.attr("layer-src")||c.attr("src"),thumb:c.attr("src")}),c.on("click",function(){layer.photos($.extend(a,{photos:{start:b,data:i,tab:a.tab},full:a.full}),!0)})}),!c)return}f.imgprev=function(a){f.imgIndex--,f.imgIndex<1&&(f.imgIndex=i.length),f.tabimg(a)},f.imgnext=function(a,b){f.imgIndex++,f.imgIndex>i.length&&(f.imgIndex=1,b)||f.tabimg(a)},f.keyup=function(a){if(!f.end){var b=a.keyCode;a.preventDefault(),37===b?f.imgprev(!0):39===b?f.imgnext(!0):27===b&&layer.close(f.index)}},f.tabimg=function(b){i.length<=1||(h.start=f.imgIndex-1,layer.close(f.index),layer.photos(a,!0,b))},f.event=function(){f.bigimg.hover(function(){f.imgsee.show()},function(){f.imgsee.hide()}),f.bigimg.find(".layui-layer-imgprev").on("click",function(a){a.preventDefault(),f.imgprev()}),f.bigimg.find(".layui-layer-imgnext").on("click",function(a){a.preventDefault(),f.imgnext()}),$(document).on("keyup",f.keyup)},f.loadi=layer.load(1,{shade:"shade"in a?!1:.9,scrollbar:!1}),e(i[j].src,function(c){layer.close(f.loadi),f.index=layer.open($.extend({type:1,area:function(){var b=[c.width,c.height],d=[$(window).width()-100,$(window).height()-100];return!a.full&&b[0]>d[0]&&(b[0]=d[0],b[1]=b[0]*d[1]/b[0]),[b[0]+"px",b[1]+"px"]}(),title:!1,shade:.9,shadeClose:!0,closeBtn:!1,move:".layui-layer-phimg img",moveType:1,scrollbar:!1,moveOut:!0,shift:5*Math.random()|0,skin:"layui-layer-photos"+b("photos"),content:'<div class="layui-layer-phimg"><img src="'+i[j].src+'" alt="'+(i[j].alt||"")+'" layer-pid="'+i[j].pid+'"><div class="layui-layer-imgsee">'+(i.length>1?'<span class="layui-layer-imguide"><a href="javascript:;" class="layui-layer-iconext layui-layer-imgprev"></a><a href="javascript:;" class="layui-layer-iconext layui-layer-imgnext"></a></span>':"")+'<div class="layui-layer-imgbar" style="display:'+(d?"block":"")+'"><span class="layui-layer-imgtit"><a href="javascript:;">'+(i[j].alt||"")+"</a><em>"+f.imgIndex+"/"+i.length+"</em></span></div></div></div>",success:function(b,c){f.bigimg=b.find(".layui-layer-phimg"),f.imgsee=b.find(".layui-layer-imguide,.layui-layer-imgbar"),f.event(b),a.tab&&a.tab(i[j],b)},end:function(){f.end=!0,$(document).off("keyup",f.keyup)}},a))},function(){layer.close(f.loadi),layer.msg("&#x5F53;&#x524D;&#x56FE;&#x7247;&#x5730;&#x5740;&#x5F02;&#x5E38;<br>&#x662F;&#x5426;&#x7EE7;&#x7EED;&#x67E5;&#x770B;&#x4E0B;&#x4E00;&#x5F20;&#xFF1F;",{time:3e4,btn:["下一张","不看了"],yes:function(){i.length>1&&f.imgnext(!0,!0)}})})}}}();
...\ No newline at end of file ...\ No newline at end of file
1 /*! layer-v2.1 弹层组件 License LGPL http://layer.layui.com/ By 贤心 */
2 ;!function(a,b){"use strict";var c,d,e={getPath:function(){var a=document.scripts,b=a[a.length-1],c=b.src;if(!b.getAttribute("merge"))return c.substring(0,c.lastIndexOf("/")+1)}(),enter:function(a){13===a.keyCode&&a.preventDefault()},config:{},end:{},btn:["&#x786E;&#x5B9A;","&#x53D6;&#x6D88;"],type:["dialog","page","iframe","loading","tips"]},f={v:"2.1",ie6:!!a.ActiveXObject&&!a.XMLHttpRequest,index:0,path:e.getPath,config:function(a,b){var d=0;return a=a||{},f.cache=e.config=c.extend(e.config,a),f.path=e.config.path||f.path,"string"==typeof a.extend&&(a.extend=[a.extend]),f.use("skin/layer.css",a.extend&&a.extend.length>0?function g(){var c=a.extend;f.use(c[c[d]?d:d-1],d<c.length?function(){return++d,g}():b)}():b),this},use:function(a,b,d){var e=c("head")[0],a=a.replace(/\s/g,""),g=/\.css$/.test(a),h=document.createElement(g?"link":"script"),i="layui_layer_"+a.replace(/\.|\//g,"");return f.path?(g&&(h.rel="stylesheet"),h[g?"href":"src"]=/^http:\/\//.test(a)?a:f.path+a,h.id=i,c("#"+i)[0]||e.appendChild(h),function j(){(g?1989===parseInt(c("#"+i).css("width")):f[d||i])?function(){b&&b();try{g||e.removeChild(h)}catch(a){}}():setTimeout(j,100)}(),this):void 0},ready:function(a,b){var d="function"==typeof a;return d&&(b=a),f.config(c.extend(e.config,function(){return d?{}:{path:a}}()),b),this},alert:function(a,b,d){var e="function"==typeof b;return e&&(d=b),f.open(c.extend({content:a,yes:d},e?{}:b))},confirm:function(a,b,d,g){var h="function"==typeof b;return h&&(g=d,d=b),f.open(c.extend({content:a,btn:e.btn,yes:d,cancel:g},h?{}:b))},msg:function(a,d,g){var i="function"==typeof d,j=e.config.skin,k=(j?j+" "+j+"-msg":"")||"layui-layer-msg",l=h.anim.length-1;return i&&(g=d),f.open(c.extend({content:a,time:3e3,shade:!1,skin:k,title:!1,closeBtn:!1,btn:!1,end:g},i&&!e.config.skin?{skin:k+" layui-layer-hui",shift:l}:function(){return d=d||{},(-1===d.icon||d.icon===b&&!e.config.skin)&&(d.skin=k+" "+(d.skin||"layui-layer-hui")),d}()))},load:function(a,b){return f.open(c.extend({type:3,icon:a||0,shade:.01},b))},tips:function(a,b,d){return f.open(c.extend({type:4,content:[a,b],closeBtn:!1,time:3e3,maxWidth:210},d))}},g=function(a){var b=this;b.index=++f.index,b.config=c.extend({},b.config,e.config,a),b.creat()};g.pt=g.prototype;var h=["layui-layer",".layui-layer-title",".layui-layer-main",".layui-layer-dialog","layui-layer-iframe","layui-layer-content","layui-layer-btn","layui-layer-close"];h.anim=["layui-anim","layui-anim-01","layui-anim-02","layui-anim-03","layui-anim-04","layui-anim-05","layui-anim-06"],g.pt.config={type:0,shade:.3,fix:!0,move:h[1],title:"&#x4FE1;&#x606F;",offset:"auto",area:"auto",closeBtn:1,time:0,zIndex:19891014,maxWidth:360,shift:0,icon:-1,scrollbar:!0,tips:2},g.pt.vessel=function(a,b){var c=this,d=c.index,f=c.config,g=f.zIndex+d,i="object"==typeof f.title,j=f.maxmin&&(1===f.type||2===f.type),k=f.title?'<div class="layui-layer-title" style="'+(i?f.title[1]:"")+'">'+(i?f.title[0]:f.title)+"</div>":"";return f.zIndex=g,b([f.shade?'<div class="layui-layer-shade" id="layui-layer-shade'+d+'" times="'+d+'" style="'+("z-index:"+(g-1)+"; background-color:"+(f.shade[1]||"#000")+"; opacity:"+(f.shade[0]||f.shade)+"; filter:alpha(opacity="+(100*f.shade[0]||100*f.shade)+");")+'"></div>':"",'<div class="'+h[0]+" "+(h.anim[f.shift]||"")+(" layui-layer-"+e.type[f.type])+(0!=f.type&&2!=f.type||f.shade?"":" layui-layer-border")+" "+(f.skin||"")+'" id="'+h[0]+d+'" type="'+e.type[f.type]+'" times="'+d+'" showtime="'+f.time+'" conType="'+(a?"object":"string")+'" style="z-index: '+g+"; width:"+f.area[0]+";height:"+f.area[1]+(f.fix?"":";position:absolute;")+'">'+(a&&2!=f.type?"":k)+'<div class="layui-layer-content'+(0==f.type&&-1!==f.icon?" layui-layer-padding":"")+(3==f.type?" layui-layer-loading"+f.icon:"")+'">'+(0==f.type&&-1!==f.icon?'<i class="layui-layer-ico layui-layer-ico'+f.icon+'"></i>':"")+(1==f.type&&a?"":f.content||"")+'</div><span class="layui-layer-setwin">'+function(){var a=j?'<a class="layui-layer-min" href="javascript:;"><cite></cite></a><a class="layui-layer-ico layui-layer-max" href="javascript:;"></a>':"";return f.closeBtn&&(a+='<a class="layui-layer-ico '+h[7]+" "+h[7]+(f.title?f.closeBtn:4==f.type?"1":"2")+'" href="javascript:;"></a>'),a}()+"</span>"+(f.btn?function(){var a="";"string"==typeof f.btn&&(f.btn=[f.btn]);for(var b=0,c=f.btn.length;c>b;b++)a+='<a class="'+h[6]+b+'">'+f.btn[b]+"</a>";return'<div class="'+h[6]+'">'+a+"</div>"}():"")+"</div>"],k),c},g.pt.creat=function(){var a=this,b=a.config,g=a.index,i=b.content,j="object"==typeof i;switch("string"==typeof b.area&&(b.area="auto"===b.area?["",""]:[b.area,""]),b.type){case 0:b.btn="btn"in b?b.btn:e.btn[0],f.closeAll("dialog");break;case 2:var i=b.content=j?b.content:[b.content||"http://layer.layui.com","auto"];b.content='<iframe scrolling="'+(b.content[1]||"auto")+'" allowtransparency="true" id="'+h[4]+g+'" name="'+h[4]+g+'" onload="this.className=\'\';" class="layui-layer-load" frameborder="0" src="'+b.content[0]+'"></iframe>';break;case 3:b.title=!1,b.closeBtn=!1,-1===b.icon&&0===b.icon,f.closeAll("loading");break;case 4:j||(b.content=[b.content,"body"]),b.follow=b.content[1],b.content=b.content[0]+'<i class="layui-layer-TipsG"></i>',b.title=!1,b.shade=!1,b.fix=!1,b.tips="object"==typeof b.tips?b.tips:[b.tips,!0],b.tipsMore||f.closeAll("tips")}a.vessel(j,function(d,e){c("body").append(d[0]),j?function(){2==b.type||4==b.type?function(){c("body").append(d[1])}():function(){i.parents("."+h[0])[0]||(i.show().addClass("layui-layer-wrap").wrap(d[1]),c("#"+h[0]+g).find("."+h[5]).before(e))}()}():c("body").append(d[1]),a.layero=c("#"+h[0]+g),b.scrollbar||h.html.css("overflow","hidden").attr("layer-full",g)}).auto(g),2==b.type&&f.ie6&&a.layero.find("iframe").attr("src",i[0]),c(document).off("keydown",e.enter).on("keydown",e.enter),a.layero.on("keydown",function(a){c(document).off("keydown",e.enter)}),4==b.type?a.tips():a.offset(),b.fix&&d.on("resize",function(){a.offset(),(/^\d+%$/.test(b.area[0])||/^\d+%$/.test(b.area[1]))&&a.auto(g),4==b.type&&a.tips()}),b.time<=0||setTimeout(function(){f.close(a.index)},b.time),a.move().callback()},g.pt.auto=function(a){function b(a){a=g.find(a),a.height(i[1]-j-k-2*(0|parseFloat(a.css("padding"))))}var e=this,f=e.config,g=c("#"+h[0]+a);""===f.area[0]&&f.maxWidth>0&&(/MSIE 7/.test(navigator.userAgent)&&f.btn&&g.width(g.innerWidth()),g.outerWidth()>f.maxWidth&&g.width(f.maxWidth));var i=[g.innerWidth(),g.innerHeight()],j=g.find(h[1]).outerHeight()||0,k=g.find("."+h[6]).outerHeight()||0;switch(f.type){case 2:b("iframe");break;default:""===f.area[1]?f.fix&&i[1]>=d.height()&&(i[1]=d.height(),b("."+h[5])):b("."+h[5])}return e},g.pt.offset=function(){var a=this,b=a.config,c=a.layero,e=[c.outerWidth(),c.outerHeight()],f="object"==typeof b.offset;a.offsetTop=(d.height()-e[1])/2,a.offsetLeft=(d.width()-e[0])/2,f?(a.offsetTop=b.offset[0],a.offsetLeft=b.offset[1]||a.offsetLeft):"auto"!==b.offset&&(a.offsetTop=b.offset,"rb"===b.offset&&(a.offsetTop=d.height()-e[1],a.offsetLeft=d.width()-e[0])),b.fix||(a.offsetTop=/%$/.test(a.offsetTop)?d.height()*parseFloat(a.offsetTop)/100:parseFloat(a.offsetTop),a.offsetLeft=/%$/.test(a.offsetLeft)?d.width()*parseFloat(a.offsetLeft)/100:parseFloat(a.offsetLeft),a.offsetTop+=d.scrollTop(),a.offsetLeft+=d.scrollLeft()),c.css({top:a.offsetTop,left:a.offsetLeft})},g.pt.tips=function(){var a=this,b=a.config,e=a.layero,f=[e.outerWidth(),e.outerHeight()],g=c(b.follow);g[0]||(g=c("body"));var i={width:g.outerWidth(),height:g.outerHeight(),top:g.offset().top,left:g.offset().left},j=e.find(".layui-layer-TipsG"),k=b.tips[0];b.tips[1]||j.remove(),i.autoLeft=function(){i.left+f[0]-d.width()>0?(i.tipLeft=i.left+i.width-f[0],j.css({right:12,left:"auto"})):i.tipLeft=i.left},i.where=[function(){i.autoLeft(),i.tipTop=i.top-f[1]-10,j.removeClass("layui-layer-TipsB").addClass("layui-layer-TipsT").css("border-right-color",b.tips[1])},function(){i.tipLeft=i.left+i.width+10,i.tipTop=i.top,j.removeClass("layui-layer-TipsL").addClass("layui-layer-TipsR").css("border-bottom-color",b.tips[1])},function(){i.autoLeft(),i.tipTop=i.top+i.height+10,j.removeClass("layui-layer-TipsT").addClass("layui-layer-TipsB").css("border-right-color",b.tips[1])},function(){i.tipLeft=i.left-f[0]-10,i.tipTop=i.top,j.removeClass("layui-layer-TipsR").addClass("layui-layer-TipsL").css("border-bottom-color",b.tips[1])}],i.where[k-1](),1===k?i.top-(d.scrollTop()+f[1]+16)<0&&i.where[2]():2===k?d.width()-(i.left+i.width+f[0]+16)>0||i.where[3]():3===k?i.top-d.scrollTop()+i.height+f[1]+16-d.height()>0&&i.where[0]():4===k&&f[0]+16-i.left>0&&i.where[1](),e.find("."+h[5]).css({"background-color":b.tips[1],"padding-right":b.closeBtn?"30px":""}),e.css({left:i.tipLeft,top:i.tipTop})},g.pt.move=function(){var a=this,b=a.config,e={setY:0,moveLayer:function(){var a=e.layero,b=parseInt(a.css("margin-left")),c=parseInt(e.move.css("left"));0===b||(c-=b),"fixed"!==a.css("position")&&(c-=a.parent().offset().left,e.setY=0),a.css({left:c,top:parseInt(e.move.css("top"))-e.setY})}},f=a.layero.find(b.move);return b.move&&f.attr("move","ok"),f.css({cursor:b.move?"move":"auto"}),c(b.move).on("mousedown",function(a){if(a.preventDefault(),"ok"===c(this).attr("move")){e.ismove=!0,e.layero=c(this).parents("."+h[0]);var f=e.layero.offset().left,g=e.layero.offset().top,i=e.layero.outerWidth()-6,j=e.layero.outerHeight()-6;c("#layui-layer-moves")[0]||c("body").append('<div id="layui-layer-moves" class="layui-layer-moves" style="left:'+f+"px; top:"+g+"px; width:"+i+"px; height:"+j+'px; z-index:2147483584"></div>'),e.move=c("#layui-layer-moves"),b.moveType&&e.move.css({visibility:"hidden"}),e.moveX=a.pageX-e.move.position().left,e.moveY=a.pageY-e.move.position().top,"fixed"!==e.layero.css("position")||(e.setY=d.scrollTop())}}),c(document).mousemove(function(a){if(e.ismove){var c=a.pageX-e.moveX,f=a.pageY-e.moveY;if(a.preventDefault(),!b.moveOut){e.setY=d.scrollTop();var g=d.width()-e.move.outerWidth(),h=e.setY;0>c&&(c=0),c>g&&(c=g),h>f&&(f=h),f>d.height()-e.move.outerHeight()+e.setY&&(f=d.height()-e.move.outerHeight()+e.setY)}e.move.css({left:c,top:f}),b.moveType&&e.moveLayer(),c=f=g=h=null}}).mouseup(function(){try{e.ismove&&(e.moveLayer(),e.move.remove(),b.moveEnd&&b.moveEnd()),e.ismove=!1}catch(a){e.ismove=!1}}),a},g.pt.callback=function(){function a(){var a=g.cancel&&g.cancel(b.index);a===!1||f.close(b.index)}var b=this,d=b.layero,g=b.config;b.openLayer(),g.success&&(2==g.type?d.find("iframe").on("load",function(){g.success(d,b.index)}):g.success(d,b.index)),f.ie6&&b.IE6(d),d.find("."+h[6]).children("a").on("click",function(){var e=c(this).index();g["btn"+(e+1)]&&g["btn"+(e+1)](b.index,d),0===e?g.yes?g.yes(b.index,d):f.close(b.index):1===e?a():g["btn"+(e+1)]||f.close(b.index)}),d.find("."+h[7]).on("click",a),g.shadeClose&&c("#layui-layer-shade"+b.index).on("click",function(){f.close(b.index)}),d.find(".layui-layer-min").on("click",function(){f.min(b.index,g),g.min&&g.min(d)}),d.find(".layui-layer-max").on("click",function(){c(this).hasClass("layui-layer-maxmin")?(f.restore(b.index),g.restore&&g.restore(d)):(f.full(b.index,g),g.full&&g.full(d))}),g.end&&(e.end[b.index]=g.end)},e.reselect=function(){c.each(c("select"),function(a,b){var d=c(this);d.parents("."+h[0])[0]||1==d.attr("layer")&&c("."+h[0]).length<1&&d.removeAttr("layer").show(),d=null})},g.pt.IE6=function(a){function b(){a.css({top:f+(e.config.fix?d.scrollTop():0)})}var e=this,f=a.offset().top;b(),d.scroll(b),c("select").each(function(a,b){var d=c(this);d.parents("."+h[0])[0]||"none"===d.css("display")||d.attr({layer:"1"}).hide(),d=null})},g.pt.openLayer=function(){var a=this;f.zIndex=a.config.zIndex,f.setTop=function(a){var b=function(){f.zIndex++,a.css("z-index",f.zIndex+1)};return f.zIndex=parseInt(a[0].style.zIndex),a.on("mousedown",b),f.zIndex}},e.record=function(a){var b=[a.outerWidth(),a.outerHeight(),a.position().top,a.position().left+parseFloat(a.css("margin-left"))];a.find(".layui-layer-max").addClass("layui-layer-maxmin"),a.attr({area:b})},e.rescollbar=function(a){h.html.attr("layer-full")==a&&(h.html[0].style.removeProperty?h.html[0].style.removeProperty("overflow"):h.html[0].style.removeAttribute("overflow"),h.html.removeAttr("layer-full"))},a.layer=f,f.getChildFrame=function(a,b){return b=b||c("."+h[4]).attr("times"),c("#"+h[0]+b).find("iframe").contents().find(a)},f.getFrameIndex=function(a){return c("#"+a).parents("."+h[4]).attr("times")},f.iframeAuto=function(a){if(a){var b=f.getChildFrame("html",a).outerHeight(),d=c("#"+h[0]+a),e=d.find(h[1]).outerHeight()||0,g=d.find("."+h[6]).outerHeight()||0;d.css({height:b+e+g}),d.find("iframe").css({height:b})}},f.iframeSrc=function(a,b){c("#"+h[0]+a).find("iframe").attr("src",b)},f.style=function(a,b){var d=c("#"+h[0]+a),f=d.attr("type"),g=d.find(h[1]).outerHeight()||0,i=d.find("."+h[6]).outerHeight()||0;(f===e.type[1]||f===e.type[2])&&(d.css(b),f===e.type[2]&&d.find("iframe").css({height:parseFloat(b.height)-g-i}))},f.min=function(a,b){var d=c("#"+h[0]+a),g=d.find(h[1]).outerHeight()||0;e.record(d),f.style(a,{width:180,height:g,overflow:"hidden"}),d.find(".layui-layer-min").hide(),"page"===d.attr("type")&&d.find(h[4]).hide(),e.rescollbar(a)},f.restore=function(a){var b=c("#"+h[0]+a),d=b.attr("area").split(",");b.attr("type");f.style(a,{width:parseFloat(d[0]),height:parseFloat(d[1]),top:parseFloat(d[2]),left:parseFloat(d[3]),overflow:"visible"}),b.find(".layui-layer-max").removeClass("layui-layer-maxmin"),b.find(".layui-layer-min").show(),"page"===b.attr("type")&&b.find(h[4]).show(),e.rescollbar(a)},f.full=function(a){var b,g=c("#"+h[0]+a);e.record(g),h.html.attr("layer-full")||h.html.css("overflow","hidden").attr("layer-full",a),clearTimeout(b),b=setTimeout(function(){var b="fixed"===g.css("position");f.style(a,{top:b?0:d.scrollTop(),left:b?0:d.scrollLeft(),width:d.width(),height:d.height()}),g.find(".layui-layer-min").hide()},100)},f.title=function(a,b){var d=c("#"+h[0]+(b||f.index)).find(h[1]);d.html(a)},f.close=function(a){var b=c("#"+h[0]+a),d=b.attr("type");if(b[0]){if(d===e.type[1]&&"object"===b.attr("conType")){b.children(":not(."+h[5]+")").remove();for(var g=0;2>g;g++)b.find(".layui-layer-wrap").unwrap().hide()}else{if(d===e.type[2])try{var i=c("#"+h[4]+a)[0];i.contentWindow.document.write(""),i.contentWindow.close(),b.find("."+h[5])[0].removeChild(i)}catch(j){}b[0].innerHTML="",b.remove()}c("#layui-layer-moves, #layui-layer-shade"+a).remove(),f.ie6&&e.reselect(),e.rescollbar(a),c(document).off("keydown",e.enter),"function"==typeof e.end[a]&&e.end[a](),delete e.end[a]}},f.closeAll=function(a){c.each(c("."+h[0]),function(){var b=c(this),d=a?b.attr("type")===a:1;d&&f.close(b.attr("times")),d=null})},e.run=function(){c=jQuery,d=c(a),h.html=c("html"),f.open=function(a){var b=new g(a);return b.index}},"function"==typeof define?define(function(){return e.run(),f}):function(){e.run(),f.use("skin/layer.css")}()}(window);
...\ No newline at end of file ...\ No newline at end of file
1 /*! layer mobile-v1.7 弹层组件移动版 License LGPL http://layer.layui.com/mobile By 贤心 */
2 ;!function(a){"use strict";var b=document,c="querySelectorAll",d="getElementsByClassName",e=function(a){return b[c](a)},f={type:0,shade:!0,shadeClose:!0,fixed:!0,anim:!0},g={extend:function(a){var b=JSON.parse(JSON.stringify(f));for(var c in a)b[c]=a[c];return b},timer:{},end:{}};g.touch=function(a,b){var c;return/Android|iPhone|SymbianOS|Windows Phone|iPad|iPod/.test(navigator.userAgent)?(a.addEventListener("touchmove",function(){c=!0},!1),void a.addEventListener("touchend",function(a){a.preventDefault(),c||b.call(this,a),c=!1},!1)):a.addEventListener("click",function(a){b.call(this,a)},!1)};var h=0,i=["layermbox"],j=function(a){var b=this;b.config=g.extend(a),b.view()};j.prototype.view=function(){var a=this,c=a.config,f=b.createElement("div");a.id=f.id=i[0]+h,f.setAttribute("class",i[0]+" "+i[0]+(c.type||0)),f.setAttribute("index",h);var g=function(){var a="object"==typeof c.title;return c.title?'<h3 style="'+(a?c.title[1]:"")+'">'+(a?c.title[0]:c.title)+'</h3><button class="layermend"></button>':""}(),j=function(){var a,b=(c.btn||[]).length;return 0!==b&&c.btn?(a='<span type="1">'+c.btn[0]+"</span>",2===b&&(a='<span type="0">'+c.btn[1]+"</span>"+a),'<div class="layermbtn">'+a+"</div>"):""}();if(c.fixed||(c.top=c.hasOwnProperty("top")?c.top:100,c.style=c.style||"",c.style+=" top:"+(b.body.scrollTop+c.top)+"px"),2===c.type&&(c.content='<i></i><i class="laymloadtwo"></i><i></i>'),f.innerHTML=(c.shade?"<div "+("string"==typeof c.shade?'style="'+c.shade+'"':"")+' class="laymshade"></div>':"")+'<div class="layermmain" '+(c.fixed?"":'style="position:static;"')+'><div class="section"><div class="layermchild '+(c.className?c.className:"")+" "+(c.type||c.shade?"":"layermborder ")+(c.anim?"layermanim":"")+'" '+(c.style?'style="'+c.style+'"':"")+">"+g+'<div class="layermcont">'+c.content+"</div>"+j+"</div></div></div>",!c.type||2===c.type){var k=b[d](i[0]+c.type),l=k.length;l>=1&&layer.close(k[0].getAttribute("index"))}document.body.appendChild(f);var m=a.elem=e("#"+a.id)[0];c.success&&c.success(m),a.index=h++,a.action(c,m)},j.prototype.action=function(a,b){var c=this;if(a.time&&(g.timer[c.index]=setTimeout(function(){layer.close(c.index)},1e3*a.time)),a.title){var e=b[d]("layermend")[0],f=function(){a.cancel&&a.cancel(),layer.close(c.index)};g.touch(e,f)}var h=function(){var b=this.getAttribute("type");0==b?(a.no&&a.no(),layer.close(c.index)):a.yes?a.yes(c.index):layer.close(c.index)};if(a.btn)for(var i=b[d]("layermbtn")[0].children,j=i.length,k=0;j>k;k++)g.touch(i[k],h);if(a.shade&&a.shadeClose){var l=b[d]("laymshade")[0];g.touch(l,function(){layer.close(c.index,a.end)})}a.end&&(g.end[c.index]=a.end)},a.layer={v:"1.7",index:h,open:function(a){var b=new j(a||{});return b.index},close:function(a){var c=e("#"+i[0]+a)[0];c&&(c.innerHTML="",b.body.removeChild(c),clearTimeout(g.timer[a]),delete g.timer[a],"function"==typeof g.end[a]&&g.end[a](),delete g.end[a])},closeAll:function(){for(var a=b[d](i[0]),c=0,e=a.length;e>c;c++)layer.close(0|a[0].getAttribute("index"))}},"function"==typeof define?define(function(){return layer}):function(){var a=document.scripts,c=a[a.length-1],d=c.src,e=d.substring(0,d.lastIndexOf("/")+1);c.getAttribute("merge")||document.head.appendChild(function(){var a=b.createElement("link");return a.href=e+"need/layer.css",a.type="text/css",a.rel="styleSheet",a.id="layermcss",a}())}()}(window);
...\ No newline at end of file ...\ No newline at end of file
1 .layermbox{position:relative;z-index:19891014}.layermmain,.laymshade{position:fixed;left:0;top:0;width:100%;height:100%}.layermbtn span,.layermchild{display:inline-block;position:relative}.laymshade{background-color:rgba(0,0,0,.5);pointer-events:auto}.layermmain{display:table;font-family:Helvetica,arial,sans-serif;pointer-events:none}.layermmain .section{display:table-cell;vertical-align:middle;text-align:center}.layermchild{text-align:left;background-color:#fff;font-size:14px;border-radius:3px;box-shadow:0 0 8px rgba(0,0,0,.1);pointer-events:auto;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:.18s;animation-duration:.18s}.layermborder{border:1px solid #999}@-webkit-keyframes bounceIn{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}.layermanim{animation-name:bounceIn;-webkit-animation-name:bounceIn}.layermbox0 .layermchild{max-width:90%;min-width:150px}.layermbox1 .layermchild{border:none;border-radius:0}.layermbox2 .layermchild{width:auto;max-width:260px;min-width:40px;border:none;background:0 0;box-shadow:none;color:#fff}.layermchild h3{padding:0 45px 0 10px;height:50px;line-height:50px;font-size:16px;font-weight:400;border-radius:3px 3px 0 0;border-bottom:1px solid #EBEBEB}.layermbtn span,.layermchild h3{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.layermcont{padding:20px 15px;line-height:22px;text-align:center}.layermbox1 .layermcont{padding:0;text-align:left}.layermbox2 .layermcont{text-align:center;padding:0;line-height:0}.layermbox2 .layermcont i{width:25px;height:25px;margin-left:8px;display:inline-block;background-color:#fff;border-radius:100%;-webkit-animation:bouncedelay 1.4s infinite ease-in-out;animation:bouncedelay 1.4s infinite ease-in-out;-webkit-animation-fill-mode:both;animation-fill-mode:both}@-webkit-keyframes bouncedelay{0%,100%,80%{transform:scale(0);-webkit-transform:scale(0)}40%{transform:scale(1);-webkit-transform:scale(1)}}@keyframes bouncedelay{0%,100%,80%{transform:scale(0);-webkit-transform:scale(0)}40%{transform:scale(1);-webkit-transform:scale(1)}}.layermbox2 .layermcont i:first-child{margin-left:0;-webkit-animation-delay:-.32s;animation-delay:-.32s}.layermbox2 .layermcont i.laymloadtwo{-webkit-animation-delay:-.16s;animation-delay:-.16s}.layermbox2 .layermcont>div{line-height:22px;padding-top:7px;margin-bottom:20px;font-size:14px}.layermbtn{position:relative;height:40px;line-height:40px;font-size:0;text-align:center;border-top:1px solid #EBEBEB}.layermbtn span{width:50%;text-align:center;font-size:14px;cursor:pointer;border-radius:0 3px 0 0}.layermbtn span:first-child{height:39px;border-radius:0 0 0 3px}.layermbtn:before{content:'\20';position:absolute;width:1px;height:39px;left:50%;top:0;background-color:#EBEBEB}.layermend{position:absolute;right:7px;top:10px;width:30px;height:30px;border:0;font-weight:400;background:0 0;cursor:pointer;-webkit-appearance:none;font-size:30px}.layermend::after,.layermend::before{position:absolute;left:5px;top:15px;content:'';width:18px;height:1px;background-color:#999;transform:rotate(45deg);-webkit-transform:rotate(45deg);border-radius:3px}.layermend::after{transform:rotate(-45deg);-webkit-transform:rotate(-45deg)}
...\ No newline at end of file ...\ No newline at end of file
1 /*!
2
3 @Name: layer's style
4 @Author: 贤心
5 @Blog: sentsin.com
6
7 */*html{background-image:url(about:blank);background-attachment:fixed}html #layui_layer_skinlayercss{display:none;position:absolute;width:1989px}.layui-layer,.layui-layer-shade{position:fixed;_position:absolute;pointer-events:auto}.layui-layer-shade{top:0;left:0;width:100%;height:100%;_height:expression(document.body.offsetHeight+"px")}.layui-layer{top:150px;left:50%;margin:0;padding:0;background-color:#fff;-webkit-background-clip:content;box-shadow:1px 1px 50px rgba(0,0,0,.3);border-radius:2px;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:.3s;animation-duration:.3s}.layui-layer-close{position:absolute}.layui-layer-content{position:relative}.layui-layer-border{border:1px solid #B2B2B2;border:1px solid rgba(0,0,0,.3);box-shadow:1px 1px 5px rgba(0,0,0,.2)}.layui-layer-moves{position:absolute;border:3px solid #666;border:3px solid rgba(0,0,0,.5);cursor:move;background-color:#fff;background-color:rgba(255,255,255,.3);filter:alpha(opacity=50)}.layui-layer-load{background:url(default/loading-0.gif) center center no-repeat #fff}.layui-layer-ico{background:url(default/icon.png) no-repeat}.layui-layer-btn a,.layui-layer-dialog .layui-layer-ico,.layui-layer-setwin a{display:inline-block;*display:inline;*zoom:1;vertical-align:top}@-webkit-keyframes bounceIn{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes bounceIn{0%{opacity:0;-webkit-transform:scale(.5);-ms-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}}.layui-anim{-webkit-animation-name:bounceIn;animation-name:bounceIn}@-webkit-keyframes bounceOut{100%{opacity:0;-webkit-transform:scale(.7);transform:scale(.7)}30%{-webkit-transform:scale(1.03);transform:scale(1.03)}0%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes bounceOut{100%{opacity:0;-webkit-transform:scale(.7);-ms-transform:scale(.7);transform:scale(.7)}30%{-webkit-transform:scale(1.03);-ms-transform:scale(1.03);transform:scale(1.03)}0%{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}}.layui-anim-close{-webkit-animation-name:bounceOut;animation-name:bounceOut;-webkit-animation-duration:.2s;animation-duration:.2s}@-webkit-keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale(.1) translateY(-2000px);transform:scale(.1) translateY(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateY(60px);transform:scale(.475) translateY(60px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}@keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale(.1) translateY(-2000px);-ms-transform:scale(.1) translateY(-2000px);transform:scale(.1) translateY(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateY(60px);-ms-transform:scale(.475) translateY(60px);transform:scale(.475) translateY(60px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}.layui-anim-01{-webkit-animation-name:zoomInDown;animation-name:zoomInDown}@-webkit-keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translateY(2000px);transform:translateY(2000px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translateY(2000px);-ms-transform:translateY(2000px);transform:translateY(2000px)}100%{opacity:1;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}}.layui-anim-02{-webkit-animation-name:fadeInUpBig;animation-name:fadeInUpBig}@-webkit-keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale(.1) translateX(-2000px);transform:scale(.1) translateX(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateX(48px);transform:scale(.475) translateX(48px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}@keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale(.1) translateX(-2000px);-ms-transform:scale(.1) translateX(-2000px);transform:scale(.1) translateX(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateX(48px);-ms-transform:scale(.475) translateX(48px);transform:scale(.475) translateX(48px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}.layui-anim-03{-webkit-animation-name:zoomInLeft;animation-name:zoomInLeft}@-webkit-keyframes rollIn{0%{opacity:0;-webkit-transform:translateX(-100%) rotate(-120deg);transform:translateX(-100%) rotate(-120deg)}100%{opacity:1;-webkit-transform:translateX(0) rotate(0);transform:translateX(0) rotate(0)}}@keyframes rollIn{0%{opacity:0;-webkit-transform:translateX(-100%) rotate(-120deg);-ms-transform:translateX(-100%) rotate(-120deg);transform:translateX(-100%) rotate(-120deg)}100%{opacity:1;-webkit-transform:translateX(0) rotate(0);-ms-transform:translateX(0) rotate(0);transform:translateX(0) rotate(0)}}.layui-anim-04{-webkit-animation-name:rollIn;animation-name:rollIn}@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}.layui-anim-05{-webkit-animation-name:fadeIn;animation-name:fadeIn}@-webkit-keyframes shake{0%,100%{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,100%{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);-ms-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);-ms-transform:translateX(10px);transform:translateX(10px)}}.layui-anim-06{-webkit-animation-name:shake;animation-name:shake}@-webkit-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}.layui-layer-title{padding:0 80px 0 20px;height:42px;line-height:42px;border-bottom:1px solid #eee;font-size:14px;color:#333;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background-color:#F8F8F8;border-radius:2px 2px 0 0}.layui-layer-setwin{position:absolute;right:15px;*right:0;top:15px;font-size:0;line-height:initial}.layui-layer-setwin a{position:relative;width:16px;height:16px;margin-left:10px;font-size:12px;_overflow:hidden}.layui-layer-setwin .layui-layer-min cite{position:absolute;width:14px;height:2px;left:0;top:50%;margin-top:-1px;background-color:#2E2D3C;cursor:pointer;_overflow:hidden}.layui-layer-setwin .layui-layer-min:hover cite{background-color:#2D93CA}.layui-layer-setwin .layui-layer-max{background-position:-32px -40px}.layui-layer-setwin .layui-layer-max:hover{background-position:-16px -40px}.layui-layer-setwin .layui-layer-maxmin{background-position:-65px -40px}.layui-layer-setwin .layui-layer-maxmin:hover{background-position:-49px -40px}.layui-layer-setwin .layui-layer-close1{background-position:0 -40px;cursor:pointer}.layui-layer-setwin .layui-layer-close1:hover{opacity:.7}.layui-layer-setwin .layui-layer-close2{position:absolute;right:-28px;top:-28px;width:30px;height:30px;margin-left:0;background-position:-149px -31px;*right:-18px;_display:none}.layui-layer-setwin .layui-layer-close2:hover{background-position:-180px -31px}.layui-layer-btn{text-align:right;padding:0 10px 12px;pointer-events:auto}.layui-layer-btn a{height:28px;line-height:28px;margin:0 6px;padding:0 15px;border:1px solid #dedede;background-color:#f1f1f1;color:#333;border-radius:2px;font-weight:400;cursor:pointer;text-decoration:none}.layui-layer-btn a:hover{opacity:.9;text-decoration:none}.layui-layer-btn a:active{opacity:.7}.layui-layer-btn .layui-layer-btn0{border-color:#4898d5;background-color:#2e8ded;color:#fff}.layui-layer-dialog{min-width:260px}.layui-layer-dialog .layui-layer-content{position:relative;padding:20px;line-height:24px;word-break:break-all;font-size:14px;overflow:auto}.layui-layer-dialog .layui-layer-content .layui-layer-ico{position:absolute;top:16px;left:15px;_left:-40px;width:30px;height:30px}.layui-layer-ico1{background-position:-30px 0}.layui-layer-ico2{background-position:-60px 0}.layui-layer-ico3{background-position:-90px 0}.layui-layer-ico4{background-position:-120px 0}.layui-layer-ico5{background-position:-150px 0}.layui-layer-ico6{background-position:-180px 0}.layui-layer-rim{border:6px solid #8D8D8D;border:6px solid rgba(0,0,0,.3);border-radius:5px;box-shadow:none}.layui-layer-msg{min-width:180px;border:1px solid #D3D4D3;box-shadow:none}.layui-layer-hui{min-width:100px;background-color:#000;filter:alpha(opacity=60);background-color:rgba(0,0,0,.6);color:#fff;border:none}.layui-layer-hui .layui-layer-content{padding:12px 25px;text-align:center}.layui-layer-dialog .layui-layer-padding{padding:20px 20px 20px 55px;text-align:left}.layui-layer-page .layui-layer-content{position:relative;overflow:auto}.layui-layer-iframe .layui-layer-btn,.layui-layer-page .layui-layer-btn{padding-top:10px}.layui-layer-nobg{background:0 0}.layui-layer-iframe .layui-layer-content{overflow:hidden}.layui-layer-iframe iframe{display:block;width:100%}.layui-layer-loading{border-radius:100%;background:0 0;box-shadow:none;border:none}.layui-layer-loading .layui-layer-content{width:60px;height:24px;background:url(default/loading-0.gif) no-repeat}.layui-layer-loading .layui-layer-loading1{width:37px;height:37px;background:url(default/loading-1.gif) no-repeat}.layui-layer-ico16,.layui-layer-loading .layui-layer-loading2{width:32px;height:32px;background:url(default/loading-2.gif) no-repeat}.layui-layer-tips{background:0 0;box-shadow:none;border:none}.layui-layer-tips .layui-layer-content{position:relative;line-height:22px;min-width:12px;padding:5px 10px;font-size:12px;_float:left;border-radius:3px;box-shadow:1px 1px 3px rgba(0,0,0,.3);background-color:#F90;color:#fff}.layui-layer-tips .layui-layer-close{right:-2px;top:-1px}.layui-layer-tips i.layui-layer-TipsG{position:absolute;width:0;height:0;border-width:8px;border-color:transparent;border-style:dashed;*overflow:hidden}.layui-layer-tips i.layui-layer-TipsB,.layui-layer-tips i.layui-layer-TipsT{left:5px;border-right-style:solid;border-right-color:#F90}.layui-layer-tips i.layui-layer-TipsT{bottom:-8px}.layui-layer-tips i.layui-layer-TipsB{top:-8px}.layui-layer-tips i.layui-layer-TipsL,.layui-layer-tips i.layui-layer-TipsR{top:1px;border-bottom-style:solid;border-bottom-color:#F90}.layui-layer-tips i.layui-layer-TipsR{left:-8px}.layui-layer-tips i.layui-layer-TipsL{right:-8px}.layui-layer-lan[type=dialog]{min-width:280px}.layui-layer-lan .layui-layer-title{background:#4476A7;color:#fff;border:none}.layui-layer-lan .layui-layer-lan .layui-layer-btn{padding:10px;text-align:right;border-top:1px solid #E9E7E7}.layui-layer-lan .layui-layer-btn a{background:#BBB5B5;border:none}.layui-layer-lan .layui-layer-btn .layui-layer-btn1{background:#C9C5C5}.layui-layer-molv .layui-layer-title{background:#009f95;color:#fff;border:none}.layui-layer-molv .layui-layer-btn a{background:#009f95}.layui-layer-molv .layui-layer-btn .layui-layer-btn1{background:#92B8B1}
...\ No newline at end of file ...\ No newline at end of file
1 /*!
2
3 @Name: layer拓展样式
4 @Date: 2012.12.13
5 @Author: 贤心
6 @blog: sentsin.com
7
8 */.layui-layer-imgbar,.layui-layer-imgtit a,.layui-layer-tab .layui-layer-title span{text-overflow:ellipsis;white-space:nowrap}.layui-layer-iconext{background:url(default/icon-ext.png) no-repeat}html #layui_layer_skinlayerextcss{display:none;position:absolute;width:1989px}.layui-layer-prompt .layui-layer-input{display:block;width:220px;height:30px;margin:0 auto;line-height:30px;padding:0 5px;border:1px solid #ccc;box-shadow:1px 1px 5px rgba(0,0,0,.1) inset;color:#333}.layui-layer-prompt textarea.layui-layer-input{width:300px;height:100px;line-height:20px}.layui-layer-tab{box-shadow:1px 1px 50px rgba(0,0,0,.4)}.layui-layer-tab .layui-layer-title{padding-left:0;border-bottom:1px solid #ccc;background-color:#eee;overflow:visible}.layui-layer-tab .layui-layer-title span{position:relative;float:left;min-width:80px;max-width:260px;padding:0 20px;text-align:center;cursor:default;overflow:hidden}.layui-layer-tab .layui-layer-title span.layui-layer-tabnow{height:43px;border-left:1px solid #ccc;border-right:1px solid #ccc;background-color:#fff;z-index:10}.layui-layer-tab .layui-layer-title span:first-child{border-left:none}.layui-layer-tabmain{line-height:24px;clear:both}.layui-layer-tabmain .layui-layer-tabli{display:none}.layui-layer-tabmain .layui-layer-tabli.xubox_tab_layer{display:block}.xubox_tabclose{position:absolute;right:10px;top:5px;cursor:pointer}.layui-layer-photos{-webkit-animation-duration:1s;animation-duration:1s;}.layui-layer-photos .layui-layer-content{overflow:hidden;text-align:center}.layui-layer-photos .layui-layer-phimg img{position:relative;width:100%;display:inline-block;*display:inline;*zoom:1;vertical-align:top}.layui-layer-imgbar,.layui-layer-imguide{display:none}.layui-layer-imgnext,.layui-layer-imgprev{position:absolute;top:50%;width:27px;_width:44px;height:44px;margin-top:-22px;outline:0;blr:expression(this.onFocus=this.blur())}.layui-layer-imgprev{left:10px;background-position:-5px -5px;_background-position:-70px -5px}.layui-layer-imgprev:hover{background-position:-33px -5px;_background-position:-120px -5px}.layui-layer-imgnext{right:10px;_right:8px;background-position:-5px -50px;_background-position:-70px -50px}.layui-layer-imgnext:hover{background-position:-33px -50px;_background-position:-120px -50px}.layui-layer-imgbar{position:absolute;left:0;bottom:0;width:100%;height:32px;line-height:32px;background-color:rgba(0,0,0,.8);background-color:#000\9;filter:Alpha(opacity=80);color:#fff;overflow:hidden;font-size:0}.layui-layer-imgtit *{display:inline-block;*display:inline;*zoom:1;vertical-align:top;font-size:12px}.layui-layer-imgtit a{max-width:65%;overflow:hidden;color:#fff}.layui-layer-imgtit a:hover{color:#fff;text-decoration:underline}.layui-layer-imgtit em{padding-left:10px;font-style:normal}
...\ No newline at end of file ...\ No newline at end of file
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
1 angular.module('myApp.services')
2 .service( 'dingdaService', [ '$http','globalService',
3 function($http,globalService) {
4 return {
5 sendPhoneCode: function(phone , openId){
6 var url = globalService.getParam('dingdaLoginAPI') + '/login/sms?mobile=' + phone + '&openId=' + openId;
7 var res = $http.get(url).success(function(data, status) {
8 }).error(function(data, status) {
9 alert(data.meta.message)
10 });
11 return res;
12 },
13 verifyPhoneCode : function(phone , code){
14 var url = globalService.getParam('dingdaLoginAPI') + '/login/sms?mobile=' + phone + '&code=' + code;
15 var res = $http.post(url , {
16 } , {
17 }).success(function(data, status) {
18
19 }).error(function(data, status) {
20 alert(data.meta.message)
21 });
22 return res;
23 },
24 getStationList : function(longitude , latitude){
25 var url = globalService.getParam('dingdaAPI') + '/service/bicycle/stations?longitude=' + longitude
26 + '&latitude=' + latitude;
27 var res = $http.get(url).success(function(data, status) {
28 }).error(function(data, status) {
29 alert(data.meta.message)
30 });
31 return res;
32 },
33 getStationById : function(id){
34 var url = globalService.getParam('dingdaAPI') + '/service/bicycle/stations/' + id;
35 var res = $http.get(url).success(function(data, status) {
36 }).error(function(data, status) {
37 alert(data.meta.message)
38 });
39 return res;
40 },
41 getUnfinishedOrder : function(){
42 var url = globalService.getParam('dingdaAPI') + '/service/bicycle/orders/unfinished';
43 var res = $http.get(url).success(function(data, status) {
44 }).error(function(data, status) {
45 alert(data.meta.message)
46 });
47 return res;
48 },
49 verifyScanCode : function(code){
50 var url = globalService.getParam('dingdaAPI') + '/service/bicycle/order?code=' + code;
51 var res = $http.post(url , { }).success(function(data, status) {
52
53 }).error(function(data, status) {
54 alert(data.meta.message)
55 });
56 return res;
57 },
58 getOrderRealTimeInfo : function(id){
59 var url = globalService.getParam('dingdaAPI') + '/service/bicycle/orders/detail/' + id;
60 var res = $http.get(url).success(function(data, status) {
61 }).error(function(data, status) {
62 alert(data.meta.message)
63 });
64 return res;
65 },
66 getOrderList : function(page){
67 var url = globalService.getParam('dingdaAPI') + '/service/bicycle/orders?pageSize=10&pageNum=' + page;
68 var res = $http.get(url).success(function(data, status) {
69 }).error(function(data, status) {
70 alert(data.meta.message)
71 });
72 return res;
73 },
74 getOrderFinishInfo : function(id){
75 var url = globalService.getParam('dingdaAPI') + '/service/bicycle/orders/' + id;
76 var res = $http.get(url).success(function(data, status) {
77 }).error(function(data, status) {
78 alert(data.meta.message)
79 });
80 return res;
81 },
82 setOrderFinish : function(id){
83 var url = globalService.getParam('dingdaAPI') + '/service/bicycle/order/finish/' + id;
84 var res = $http.post(url , {}).success(function(data, status) {
85 }).error(function(data, status) {
86 alert(data.meta.message)
87 });
88 return res;
89 },
90 payWX : function(id , payInfo) {
91 var url = globalService.getParam('financeAPI') + '/service/bill/wx/' + id;
92 var res = $http.post(url , payInfo).success(function(data, status) {
93
94 }).error(function(data, status) {
95 alert(data.meta.message)
96 });
97 return res;
98 },
99 getWallet : function() {
100 var url = globalService.getParam('financeAPI') + '/service/balance';
101 var res = $http.get(url).success(function(data, status) {
102 }).error(function(data, status) {
103 alert(data.meta.message)
104 });
105 return res;
106 },
107 payWallet : function(payInfo) {
108 var url = globalService.getParam('financeAPI') + '/service/balance/wx';
109 var res = $http.post(url , payInfo).success(function(data, status) {
110 }).error(function(data, status) {
111 alert(data.meta.message)
112 });
113 return res;
114 },
115 getWalletHistory : function(page) {
116 var url = globalService.getParam('financeAPI') + '/service/balances?pageSize=10&pageNum' + page;
117 var res = $http.get(url).success(function(data, status) {
118 }).error(function(data, status) {
119 alert(data.meta.message)
120 });
121 return res;
122 },
123 getBond : function(longitude , latitude) {
124 var url = globalService.getParam('dingdaAPI') + '/service/bicycle/deposit?longitude=' + longitude
125 + '&latitude=' + latitude;
126 var res = $http.get(url).success(function(data, status) {
127 }).error(function(data, status) {
128 alert(data.meta.message)
129 });
130 return res;
131 },
132 payBond : function(payInfo) {
133 var url = globalService.getParam('financeAPI') + '/service/bail/wx';
134 var res = $http.post(url , payInfo).success(function(data, status) {
135 }).error(function(data, status) {
136 alert(data.meta.message)
137 });
138 return res;
139 },
140 returnBond : function(page) {
141 var url = globalService.getParam('dingdaAPI') + '/service/bicycle/deposit';
142 var res = $http.delete(url).success(function(data, status) {
143 }).error(function(data, status) {
144 alert(data.meta.message)
145 });
146 return res;
147 },
148 comment : function(message) {
149 var url = globalService.getParam('feedbackAPI') + '/service/comments';
150 var res = $http.post(url , message).success(function(data, status) {
151 }).error(function(data, status) {
152 alert(data.meta.message)
153 });
154 return res;
155 },
156 getVersion : function() {
157 var url = globalService.getParam('dingdaAPI') + '/service/version';
158 var res = $http.get(url).success(function(data, status) {
159 }).error(function(data, status) {
160 alert(data.meta.message)
161 });
162 return res;
163 }
164 }
165 }])
...\ No newline at end of file ...\ No newline at end of file
1
2 angular.module('myApp.services')
3 .service('globalService',
4 [ '$http', '$rootScope', 'localStorageService',
5 function($http, $rootScope ,localStorageService) {
6
7 var setHeaderToken = function (token){
8 $http.defaults.headers.common = {
9 "token": token ,
10 "version": "1.0.0" ,
11 "source" : "WX"
12 };
13 }
14 var init = function(){
15 $rootScope.params = {};
16 $rootScope.config = {};
17 $rootScope.data = {};
18 $rootScope.inited = true;
19 //--------------------自行车服务--------------
20 // 生产环境
21 var dingdaAPI = "http://bike.dy.dingdatech.com";
22 // 测试环境
23 //var dingdaAPI = "http://bike.api.dingdachuxing.com";
24 globalConfig.setParam("dingdaAPI", dingdaAPI);
25 //--------------------财务服务--------------
26 // 生产环境
27 var financeAPI = "http://finance.dy.dingdatech.com";
28 // 测试环境
29 //var financeAPI = "http://finance.api.dingdachuxing.com";
30 globalConfig.setParam("financeAPI", financeAPI);
31 //--------------------反馈服务--------------
32 // 生产环境
33 var feedbackAPI = "http://feedback.dy.dingdatech.com";
34 // 测试环境
35 //var feedbackAPI = "http://feedback.api.dingdachuxing.com";
36 globalConfig.setParam("feedbackAPI", feedbackAPI);
37 //--------------------认证服务--------------
38 // 生产环境
39 var dingdaLoginAPI = "http://auth.dy.dingdatech.com";
40 // 测试环境
41 //var dingdaLoginAPI = "http://auth.api.dingdachuxing.com";
42 globalConfig.setParam("dingdaLoginAPI", dingdaLoginAPI);
43
44 $rootScope.$watch("data.user",function(newVal, oldVal){
45 if(!newVal){
46 return;
47 }
48 if(newVal.token) {
49 setHeaderToken(newVal.token);
50 }
51 })
52
53 loadPersistData();
54 loadCityConfig();
55 loadPathParams();
56 initWeixinMenu($http);
57
58 }
59
60 var loadPersistData = function() {
61 var keys = localStorageService.keys();
62 for(var x in keys){
63 globalConfig.setData(keys[x], localStorageService.get(keys[x]));
64 }
65 if(globalConfig.getData("user")){
66 setHeaderToken(globalConfig.getData("user").token);
67 }
68
69 }
70
71 var loadPathParams = function() {
72 var url = window.location.href,
73 parts = url.split('?');
74 if(parts.length == 2){
75 var hash = parts[1].indexOf('#')
76 if(hash != -1){
77 parts[1] = parts[1].substring(0, hash)
78 }
79
80 var pairs = parts[1].split('&')
81 pairs.forEach(function(pair){
82 var kv = pair.split('=')
83 if(kv.length == 2){
84 globalConfig.setData(kv[0], kv[1]);
85 }
86 })
87 }
88
89 }
90
91 var loadCityConfig = function() {
92 // $http.get("js/service/city.json").success(function (data) {
93 // $rootScope.config.province = {};
94 // for (var i = 0; i < data.length; i++) {
95 // $rootScope.config.province[data[i].id] = data[i];
96 // };
97 // })
98 }
99
100 var globalConfig = {
101 init : init,
102 getParam : function(key){
103 return $rootScope.params[key];
104 },
105 setParam : function(key, value){
106 $rootScope.params[key] = value
107 },
108 getConfig : function(key){
109 return $rootScope.config[key];
110 },
111 setConfig : function(key, value){
112 $rootScope.config[key] = value;
113 },
114 getData : function(key){
115 return $rootScope.data[key];
116 },
117 setData : function(key, value){
118 $rootScope.data[key] = value;
119 },
120 saveData : function(key, value){
121 if(value){
122 this.setData(key, value)
123 }
124 localStorageService.set(key, value);
125 },
126 clearData : function(key){
127 this.setData(key, null);
128 localStorageService.set(key, null);
129 $http.defaults.headers.common = { };
130 }
131 }
132 return globalConfig;
133 }
134 ]
135 );
...\ No newline at end of file ...\ No newline at end of file
1 angular.module('myApp.services')
2 .service('wechatPayment',['$http', '$q', '$rootScope',function($http, $q, $rootScope) {
3
4 //var host = 'http://finance.api.dingdachuxing.com/service';
5 var host = 'http://finance.dy.dingdatech.com/service';
6
7 var h5wxhost = 'http://lsz1.28ms.com/service/balance/';
8
9 var h5alipayhost = 'http://lsz1.28ms.com/service/balance/';
10
11
12
13 //调用微信JS api 支付
14 var jsApiCall = function (sign, q) {
15 WeixinJSBridge.invoke(
16 'getBrandWCPayRequest', {
17 appId : sign.appId,
18 timeStamp : sign.timeStamp,
19 nonceStr : sign.nonceStr,
20 package : sign.packageStr,
21 signType : sign.signType,
22 paySign : sign.paySign
23 },
24 function (res) {
25 if (res.err_msg == 'get_brand_wcpay_request:ok') {
26 layer.open({
27 content: '支付成功!',
28 time:1
29 });
30 q.resolve(res.err_msg);
31 return;
32 } else if (res.err_msg == 'get_brand_wcpay_request:fail') {
33 alert("支付失败:" + JSON.stringify(res))
34 layer.open({
35 content: '支付失败!',
36 time:1
37 });
38 } else if (res.err_msg == 'get_brand_wcpay_request:cancel') {
39 layer.open({
40 content: '支付取消!',
41 time:1
42 });
43 } else {
44 layer.open({
45 content: '支付异常,'+res.err_msg,
46 time:1
47 });
48 }
49 q.reject(res.err_msg);
50 // WeixinJSBridge.log(res.err_msg);
51 // console.error(res.err_msg);
52 }
53 );
54 }
55
56 var wxh5ApiCall = function (sign, q) {
57 console.log('sign', sign);
58 window.location.href = sign.mwebUrl;
59 }
60
61
62 var callUnifiedOrderApi = function(url, data){
63 var q = $q.defer();
64 $http.post(url, data)
65 .success(function (data) {
66 if(data.meta.code == 200) {
67 // alert('支付签名返回:' + JSON.stringify(data));
68 wxh5ApiCall(data.data.wechatDto, q);
69 }else{
70 layer.open({
71 content:'支付失败:code '+data.meta.code+","+ data.meta.message,
72 time:1
73 });
74 q.reject(data.meta.message)
75 }
76 })
77
78 return q.promise;
79 }
80
81 return {
82 /**
83 * 租车付款
84 */
85 callRentPay: function (orderId, amount) {
86 return callUnifiedOrderApi(host + '/bill/wx/' + orderId, {
87 amount : amount,
88 body : "租车租金",
89 type : 101
90 });
91 },
92 /**
93 * 保证金充值
94 * @param amount
95 */
96 callDepositPay : function(amount){
97 return callUnifiedOrderApi(host + "/bail/wx", {
98 amount : amount,
99 body : "保证金充值",
100 type : 101
101 });
102 },
103 /**
104 * 钱包充值
105 * @param amount
106 */
107 callBalanceRecharge : function(amount,way){
108 var host = (way == 100 ? h5alipayhost+ "alipay/h5" : h5wxhost+ "wx/h5");
109 return callUnifiedOrderApi(host, {
110 amount : amount,
111 body : "钱包充值",
112 type : parseInt(way)
113 });
114 }
115 }
116 }]);
1 /**
2 * Created by zhanghong on 15/3/8.
3 */
4 function weixinOptionMenuInit(appId, timestamp, nonceStr, signature){
5 try {
6 // wwsDebug.info("appId:" + appId);
7 // wwsDebug.info("timestamp:" + timestamp);
8 // wwsDebug.info("nonceStr:" + nonceStr);
9 // wwsDebug.info("signature:" + signature);
10 // alert("typeof wx.config " + typeof wx.config);
11 // if (wx) {
12 /*wx.config({
13 debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
14 appId: appId, // 必填,公众号的唯一标识
15 timestamp: timestamp, // 必填,生成签名的时间戳
16 nonceStr: nonceStr, // 必填,生成签名的随机串
17 signature: signature,// 必填,签名,见附录1
18 jsApiList: ['scanQRCode','getLocation'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
19 });
20 wx.error(function(res){
21 layer.open({
22 content:"微信扫码功能不能用,无法使用扫码租车",
23 time:1
24 });
25 // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
26
27 });
28 wx.ready(function(){
29 // alert('wx ready')
30 // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
31 wx.checkJsApi({
32 jsApiList: ['scanQRCode','getLocation'], // 需要检测的JS接口列表,所有JS接口列表见附录2,
33 success: function(res) {
34 if(res.checkResult.scanQRCode != true){
35 layer.open({
36 content: '您的微信版本太低,不支持扫码',
37 time:1
38 });
39
40 }
41 // 以键值对的形式返回,可用的api值true,不可用为false
42 // 如:{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"}
43 }
44 });
45 });*/
46 // }
47 }catch(exception){
48 // alert("exception " + exception)
49 layer.open({
50 content:"微信扫码功能异常,无法使用扫码租车",
51 time:1
52 });
53 }
54 }
55
56 function initWeixinMenu($http){
57 var url = encodeURIComponent(location.href.split('#')[0]);
58 //生产环境 wechat.api.dingdatech.com
59 $http.post("http://wechat.dy.dingdatech.com/wx/qrCodeParms",
60 {
61 webUrl : url
62 })
63 .success(function(data){
64 // alert(JSON.stringify(data) + ", with url : " + location.href.split('#')[0])
65 if(data){
66 weixinOptionMenuInit(data.appid, data.timestamp, data.noncestr, data.signature);
67 }
68 })
69 .error(function(arg1){
70 try {
71 layer.open({
72 content:"微信jssdk配置接口失败:" + JSON.stringify(arg1),
73 time:1
74 });
75 }catch(e){
76 layer.open({
77 content:"微信jssdk配置接口失败:" + arg1,
78 time:1
79 });
80 }
81 // alert(arg1);
82 });
83 }
wechat @ efa7b46b
1 Subproject commit efa7b46b5ba06587588536145356c18345036f63
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!