Version Description
Download this release
Release Info
Developer | nsinelnikov |
Plugin | Ultimate Member – User Profile & Membership Plugin |
Version | 2.0.41 |
Comparing to | |
See all releases |
Code changes from version 2.0.40 to 2.0.41
- assets/css/um-old-default.css +4 -0
- assets/css/um-scrollbar.css +1057 -857
- assets/js/um-account.js +26 -18
- assets/js/um-account.min.js +1 -1
- assets/js/um-modal.js +1 -1
- assets/js/um-profile.js +60 -40
- assets/js/um-profile.min.js +1 -1
- assets/js/um-responsive.js +4 -7
- assets/js/um-responsive.min.js +1 -1
- assets/js/um-scripts.js +0 -1
- assets/js/um-scrollbar.js +2683 -5
- assets/js/um-scrollbar.min.js +1 -1
- includes/admin/assets/js/um-admin-blocks-shortcode.js +610 -0
- includes/admin/core/class-admin-enqueue.php +89 -1
- includes/admin/core/class-admin-forms.php +4 -0
- includes/admin/core/class-admin-notices.php +1 -1
- includes/admin/core/class-admin-settings.php +7 -2
- includes/admin/core/packages/2.0-beta1/styles.php +3 -1
- includes/class-config.php +1 -0
- includes/core/class-access.php +52 -23
- includes/core/class-account.php +14 -6
- includes/core/class-ajax-common.php +1 -0
- includes/core/class-common.php +2 -1
- includes/core/class-fields.php +60 -31
- includes/core/class-files.php +59 -18
- includes/core/class-members.php +7 -3
- includes/core/class-password.php +63 -32
- includes/core/class-query.php +7 -2
- includes/core/class-roles-capabilities.php +1 -1
- includes/core/class-uploader.php +21 -10
- includes/core/class-user-posts.php +1 -2
- includes/core/class-user.php +5 -6
- includes/core/um-actions-account.php +20 -5
- includes/core/um-actions-form.php +1 -1
- includes/core/um-actions-profile.php +3 -2
- includes/core/um-filters-members.php +17 -6
- includes/um-short-functions.php +2 -2
- languages/ultimate-member-en_US.mo +0 -0
- languages/ultimate-member-en_US.po +336 -318
- readme.txt +25 -1
- templates/account.php +57 -58
- templates/members-grid.php +4 -2
- ultimate-member.php +1 -1
assets/css/um-old-default.css
CHANGED
@@ -112,6 +112,10 @@ div.uimob800 .um-account-side li a.current:hover
|
|
112 |
color: #555555;
|
113 |
}
|
114 |
|
|
|
|
|
|
|
|
|
115 |
.um .um-form input[type=text],
|
116 |
.um .um-form input[type=tel],
|
117 |
.um .um-form input[type=number],
|
112 |
color: #555555;
|
113 |
}
|
114 |
|
115 |
+
.um .um-row.um-customized-row .um-field-label {
|
116 |
+
color: inherit;
|
117 |
+
}
|
118 |
+
|
119 |
.um .um-form input[type=text],
|
120 |
.um .um-form input[type=tel],
|
121 |
.um .um-form input[type=number],
|
assets/css/um-scrollbar.css
CHANGED
@@ -24,23 +24,23 @@ CONTENTS:
|
|
24 |
------------------------------------------------------------------------------------------------------------------------
|
25 |
*/
|
26 |
|
27 |
-
|
28 |
-
|
29 |
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
|
45 |
|
46 |
|
@@ -51,89 +51,89 @@ y-axis
|
|
51 |
------------------------------------------------------------------------------------------------------------------------
|
52 |
*/
|
53 |
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
|
138 |
|
139 |
|
@@ -144,73 +144,73 @@ x-axis
|
|
144 |
------------------------------------------------------------------------------------------------------------------------
|
145 |
*/
|
146 |
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
|
152 |
-
|
153 |
|
154 |
-
|
155 |
|
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 |
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
|
211 |
-
|
212 |
|
213 |
-
|
214 |
|
215 |
|
216 |
|
@@ -221,63 +221,58 @@ yx-axis
|
|
221 |
------------------------------------------------------------------------------------------------------------------------
|
222 |
*/
|
223 |
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
|
|
241 |
|
242 |
-
|
243 |
|
244 |
-
|
245 |
|
246 |
-
|
247 |
-
|
248 |
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
|
253 |
-
|
254 |
-
|
255 |
|
256 |
-
|
257 |
-
|
258 |
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
|
264 |
-
|
265 |
-
padding-right: 0;
|
266 |
-
-webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box;
|
267 |
-
}
|
268 |
|
269 |
-
|
270 |
-
padding-bottom: 0;
|
271 |
-
-webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box;
|
272 |
-
}
|
273 |
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
|
279 |
-
|
280 |
-
|
281 |
|
282 |
|
283 |
|
@@ -287,39 +282,39 @@ yx-axis
|
|
287 |
------------------------------------------------------------------------------------------------------------------------
|
288 |
*/
|
289 |
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
|
324 |
|
325 |
|
@@ -329,739 +324,944 @@ yx-axis
|
|
329 |
------------------------------------------------------------------------------------------------------------------------
|
330 |
*/
|
331 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
332 |
/*
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
337 |
|
338 |
-
|
339 |
|
340 |
-
|
|
|
|
|
|
|
341 |
|
342 |
-
|
343 |
-
.mCS-autoHide > .mCustomScrollBox ~ .mCSB_scrollTools{ opacity: 0; filter: "alpha(opacity=0)"; -ms-filter: "alpha(opacity=0)"; }
|
344 |
|
345 |
-
|
346 |
-
.mCustomScrollbar > .mCustomScrollBox ~ .mCSB_scrollTools.mCSB_scrollTools_onDrag,
|
347 |
-
.mCustomScrollBox:hover > .mCSB_scrollTools,
|
348 |
-
.mCustomScrollBox:hover ~ .mCSB_scrollTools,
|
349 |
-
.mCS-autoHide:hover > .mCustomScrollBox > .mCSB_scrollTools,
|
350 |
-
.mCS-autoHide:hover > .mCustomScrollBox ~ .mCSB_scrollTools{ opacity: 1; filter: "alpha(opacity=100)"; -ms-filter: "alpha(opacity=100)"; }
|
351 |
|
352 |
-
|
353 |
-
background-color: #000; background-color: rgba(0,0,0,0.4);
|
354 |
-
filter: "alpha(opacity=40)"; -ms-filter: "alpha(opacity=40)";
|
355 |
-
}
|
356 |
|
357 |
-
|
358 |
-
background-color: #fff; background-color: rgba(255,255,255,0.75);
|
359 |
-
filter: "alpha(opacity=75)"; -ms-filter: "alpha(opacity=75)";
|
360 |
-
}
|
361 |
|
362 |
-
|
363 |
-
background-color: #fff; background-color: rgba(255,255,255,0.85);
|
364 |
-
filter: "alpha(opacity=85)"; -ms-filter: "alpha(opacity=85)";
|
365 |
-
}
|
366 |
-
.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
|
367 |
-
.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{
|
368 |
-
background-color: #fff; background-color: rgba(255,255,255,0.9);
|
369 |
-
filter: "alpha(opacity=90)"; -ms-filter: "alpha(opacity=90)";
|
370 |
-
}
|
371 |
|
372 |
-
|
373 |
-
.mCSB_scrollTools .mCSB_buttonDown,
|
374 |
-
.mCSB_scrollTools .mCSB_buttonLeft,
|
375 |
-
.mCSB_scrollTools .mCSB_buttonRight{
|
376 |
-
background-image: url(../img/mCSB_buttons.png); /* css sprites */
|
377 |
-
background-repeat: no-repeat;
|
378 |
-
opacity: 0.4; filter: "alpha(opacity=40)"; -ms-filter: "alpha(opacity=40)";
|
379 |
-
}
|
380 |
|
381 |
|
382 |
-
.mCSB_scrollTools .mCSB_buttonUp:hover,
|
383 |
-
.mCSB_scrollTools .mCSB_buttonDown:hover,
|
384 |
-
.mCSB_scrollTools .mCSB_buttonLeft:hover,
|
385 |
-
.mCSB_scrollTools .mCSB_buttonRight:hover{ opacity: 0.75; filter: "alpha(opacity=75)"; -ms-filter: "alpha(opacity=75)"; }
|
386 |
|
387 |
-
|
388 |
-
.mCSB_scrollTools .mCSB_buttonDown:active,
|
389 |
-
.mCSB_scrollTools .mCSB_buttonLeft:active,
|
390 |
-
.mCSB_scrollTools .mCSB_buttonRight:active{ opacity: 0.9; filter: "alpha(opacity=90)"; -ms-filter: "alpha(opacity=90)"; }
|
391 |
|
|
|
|
|
|
|
|
|
|
|
392 |
|
393 |
-
|
|
|
|
|
|
|
394 |
|
395 |
-
|
|
|
396 |
|
397 |
-
|
|
|
398 |
|
399 |
-
|
|
|
400 |
|
401 |
-
|
402 |
-
|
|
|
|
|
|
|
403 |
|
404 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
405 |
|
|
|
|
|
406 |
|
|
|
|
|
|
|
|
|
407 |
|
408 |
-
|
|
|
|
|
|
|
|
|
409 |
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
-webkit-border-radius: 1px; -moz-border-radius: 1px; border-radius: 1px;
|
415 |
-
}
|
416 |
|
417 |
-
|
418 |
-
.mCS-dark-2.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{
|
419 |
-
width: 4px;
|
420 |
-
background-color: #fff; background-color: rgba(255,255,255,0.75);
|
421 |
-
-webkit-border-radius: 1px; -moz-border-radius: 1px; border-radius: 1px;
|
422 |
-
}
|
423 |
|
424 |
-
|
425 |
-
.mCS-dark-2.mCSB_scrollTools_horizontal .mCSB_draggerRail,
|
426 |
-
.mCS-light-2.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,
|
427 |
-
.mCS-dark-2.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{
|
428 |
-
width: 100%;
|
429 |
-
height: 4px;
|
430 |
-
margin: 6px auto;
|
431 |
-
}
|
432 |
|
433 |
-
|
434 |
|
435 |
-
|
436 |
-
.mCS-light-2.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #fff; background-color: rgba(255,255,255,0.9); }
|
437 |
|
438 |
-
|
439 |
|
440 |
-
.mCS-dark-2.mCSB_scrollTools .mCSB_draggerRail{
|
441 |
-
background-color: #000; background-color: rgba(0,0,0,0.1);
|
442 |
-
-webkit-border-radius: 1px; -moz-border-radius: 1px; border-radius: 1px;
|
443 |
-
}
|
444 |
|
445 |
-
|
446 |
-
background-color: #000; background-color: rgba(0,0,0,0.75);
|
447 |
-
-webkit-border-radius: 1px; -moz-border-radius: 1px; border-radius: 1px;
|
448 |
-
}
|
449 |
|
450 |
-
|
451 |
|
452 |
-
|
453 |
-
.mCS-dark-2.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.9); }
|
454 |
|
455 |
-
|
456 |
|
|
|
457 |
|
|
|
|
|
|
|
|
|
458 |
|
459 |
-
|
|
|
|
|
|
|
460 |
|
461 |
-
|
462 |
-
.mCS-dark-thick.mCSB_scrollTools .mCSB_draggerRail{
|
463 |
-
width: 4px;
|
464 |
-
background-color: #fff; background-color: rgba(255,255,255,0.1);
|
465 |
-
-webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px;
|
466 |
-
}
|
467 |
|
468 |
-
|
469 |
-
.mCS-dark-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{
|
470 |
-
width: 6px;
|
471 |
-
background-color: #fff; background-color: rgba(255,255,255,0.75);
|
472 |
-
-webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px;
|
473 |
-
}
|
474 |
|
475 |
-
|
476 |
-
.mCS-dark-thick.mCSB_scrollTools_horizontal .mCSB_draggerRail{
|
477 |
-
width: 100%;
|
478 |
-
height: 4px;
|
479 |
-
margin: 6px 0;
|
480 |
-
}
|
481 |
|
482 |
-
|
483 |
-
.mCS-dark-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{
|
484 |
-
width: 100%;
|
485 |
-
height: 6px;
|
486 |
-
margin: 5px auto;
|
487 |
-
}
|
488 |
|
489 |
-
|
490 |
|
491 |
-
|
492 |
-
.mCS-light-thick.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #fff; background-color: rgba(255,255,255,0.9); }
|
493 |
|
494 |
-
/* theme: "dark-thick" */
|
495 |
|
496 |
-
.mCS-dark-thick.mCSB_scrollTools .mCSB_draggerRail{
|
497 |
-
background-color: #000; background-color: rgba(0,0,0,0.1);
|
498 |
-
-webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px;
|
499 |
-
}
|
500 |
|
501 |
-
|
502 |
-
background-color: #000; background-color: rgba(0,0,0,0.75);
|
503 |
-
-webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px;
|
504 |
-
}
|
505 |
|
506 |
-
|
|
|
|
|
|
|
|
|
507 |
|
508 |
-
|
509 |
-
|
|
|
|
|
|
|
|
|
|
|
510 |
|
511 |
-
|
|
|
|
|
|
|
|
|
|
|
512 |
|
|
|
|
|
513 |
|
|
|
|
|
514 |
|
515 |
-
|
|
|
516 |
|
517 |
-
|
|
|
|
|
|
|
518 |
|
519 |
-
|
520 |
-
|
|
|
|
|
|
|
521 |
|
522 |
-
.mCS-light-thin.mCSB_scrollTools_horizontal .mCSB_draggerRail,
|
523 |
-
.mCS-dark-thin.mCSB_scrollTools_horizontal .mCSB_draggerRail{ width: 100%; }
|
524 |
|
525 |
-
|
526 |
-
.mCS-dark-thin.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{
|
527 |
-
width: 100%;
|
528 |
-
height: 2px;
|
529 |
-
margin: 7px auto;
|
530 |
-
}
|
531 |
|
|
|
|
|
|
|
|
|
532 |
|
533 |
-
|
|
|
|
|
|
|
|
|
534 |
|
535 |
-
|
536 |
|
537 |
-
.mCS-dark-thin.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.75); }
|
538 |
|
539 |
-
.mCS-dark-thin.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.85); }
|
540 |
|
541 |
-
|
542 |
-
.mCS-dark-thin.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.9); }
|
543 |
|
544 |
-
|
|
|
|
|
|
|
|
|
545 |
|
|
|
|
|
546 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
547 |
|
548 |
-
|
|
|
|
|
|
|
|
|
|
|
549 |
|
550 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
551 |
|
552 |
-
|
553 |
-
.mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger,
|
554 |
-
.mCS-rounded-dots.mCSB_scrollTools .mCSB_dragger,
|
555 |
-
.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger{ height: 14px; }
|
556 |
|
557 |
-
|
558 |
-
.mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
|
559 |
-
.mCS-rounded-dots.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
|
560 |
-
.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{
|
561 |
-
width: 14px;
|
562 |
-
margin: 0 1px;
|
563 |
-
}
|
564 |
|
565 |
-
|
566 |
-
.mCS-rounded-dark.mCSB_scrollTools_horizontal .mCSB_dragger,
|
567 |
-
.mCS-rounded-dots.mCSB_scrollTools_horizontal .mCSB_dragger,
|
568 |
-
.mCS-rounded-dots-dark.mCSB_scrollTools_horizontal .mCSB_dragger{ width: 14px; }
|
569 |
|
570 |
-
|
571 |
-
|
572 |
-
|
573 |
-
|
574 |
-
height: 14px;
|
575 |
-
margin: 1px 0;
|
576 |
-
}
|
577 |
|
578 |
-
|
579 |
-
|
580 |
-
|
581 |
-
.mCS-rounded-dark.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar{
|
582 |
-
width: 16px; /* auto-expanded scrollbar */
|
583 |
-
height: 16px;
|
584 |
-
margin: -1px 0;
|
585 |
-
}
|
586 |
|
587 |
-
|
588 |
-
|
589 |
-
.mCS-rounded-dark.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail,
|
590 |
-
.mCS-rounded-dark.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{ width: 4px; /* auto-expanded scrollbar */ }
|
591 |
|
592 |
-
|
593 |
-
.mCS-rounded.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar,
|
594 |
-
.mCS-rounded-dark.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar,
|
595 |
-
.mCS-rounded-dark.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar{
|
596 |
-
height: 16px; /* auto-expanded scrollbar */
|
597 |
-
width: 16px;
|
598 |
-
margin: 0 -1px;
|
599 |
-
}
|
600 |
|
601 |
-
|
602 |
-
.mCS-rounded.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail,
|
603 |
-
.mCS-rounded-dark.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail,
|
604 |
-
.mCS-rounded-dark.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{
|
605 |
-
height: 4px; /* auto-expanded scrollbar */
|
606 |
-
margin: 6px 0;
|
607 |
-
}
|
608 |
|
609 |
-
|
610 |
|
611 |
-
|
612 |
-
.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.75); }
|
613 |
|
614 |
-
|
615 |
-
|
616 |
-
.mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar,
|
617 |
-
.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.85); }
|
618 |
-
|
619 |
-
.mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
|
620 |
-
.mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,
|
621 |
-
.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
|
622 |
-
.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.9); }
|
623 |
-
|
624 |
-
/* theme "rounded-dots", "rounded-dots-dark" */
|
625 |
-
|
626 |
-
.mCS-rounded-dots.mCSB_scrollTools_vertical .mCSB_draggerRail,
|
627 |
-
.mCS-rounded-dots-dark.mCSB_scrollTools_vertical .mCSB_draggerRail{ width: 4px; }
|
628 |
-
|
629 |
-
.mCS-rounded-dots.mCSB_scrollTools .mCSB_draggerRail,
|
630 |
-
.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_draggerRail,
|
631 |
-
.mCS-rounded-dots.mCSB_scrollTools_horizontal .mCSB_draggerRail,
|
632 |
-
.mCS-rounded-dots-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail{
|
633 |
-
background-color: transparent;
|
634 |
-
background-position: center;
|
635 |
-
}
|
636 |
-
|
637 |
-
.mCS-rounded-dots.mCSB_scrollTools .mCSB_draggerRail,
|
638 |
-
.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_draggerRail{
|
639 |
-
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAANElEQVQYV2NkIAAYiVbw//9/Y6DiM1ANJoyMjGdBbLgJQAX/kU0DKgDLkaQAvxW4HEvQFwCRcxIJK1XznAAAAABJRU5ErkJggg==");
|
640 |
-
background-repeat: repeat-y;
|
641 |
-
opacity: 0.3;
|
642 |
-
filter: "alpha(opacity=30)"; -ms-filter: "alpha(opacity=30)";
|
643 |
-
}
|
644 |
-
|
645 |
-
.mCS-rounded-dots.mCSB_scrollTools_horizontal .mCSB_draggerRail,
|
646 |
-
.mCS-rounded-dots-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail{
|
647 |
-
height: 4px;
|
648 |
-
margin: 6px 0;
|
649 |
-
background-repeat: repeat-x;
|
650 |
-
}
|
651 |
-
|
652 |
-
/* theme "rounded-dots-dark" */
|
653 |
-
|
654 |
-
.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_draggerRail{
|
655 |
-
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAALElEQVQYV2NkIAAYSVFgDFR8BqrBBEifBbGRTfiPZhpYjiQFBK3A6l6CvgAAE9kGCd1mvgEAAAAASUVORK5CYII=");
|
656 |
-
}
|
657 |
-
|
658 |
-
/* ---------------------------------------- */
|
659 |
-
|
660 |
-
|
661 |
-
|
662 |
-
/* theme "3d", "3d-dark", "3d-thick", "3d-thick-dark" */
|
663 |
-
|
664 |
-
.mCS-3d.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
|
665 |
-
.mCS-3d-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
|
666 |
-
.mCS-3d-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
|
667 |
-
.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{
|
668 |
-
background-repeat: repeat-y;
|
669 |
-
background-image: -moz-linear-gradient(left, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0) 100%);
|
670 |
-
background-image: -webkit-gradient(linear, left top, right top, color-stop(0%,rgba(255,255,255,0.5)), color-stop(100%,rgba(255,255,255,0)));
|
671 |
-
background-image: -webkit-linear-gradient(left, rgba(255,255,255,0.5) 0%,rgba(255,255,255,0) 100%);
|
672 |
-
background-image: -o-linear-gradient(left, rgba(255,255,255,0.5) 0%,rgba(255,255,255,0) 100%);
|
673 |
-
background-image: -ms-linear-gradient(left, rgba(255,255,255,0.5) 0%,rgba(255,255,255,0) 100%);
|
674 |
-
background-image: linear-gradient(to right, rgba(255,255,255,0.5) 0%,rgba(255,255,255,0) 100%);
|
675 |
-
}
|
676 |
-
|
677 |
-
.mCS-3d.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,
|
678 |
-
.mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,
|
679 |
-
.mCS-3d-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,
|
680 |
-
.mCS-3d-thick-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{
|
681 |
-
background-repeat: repeat-x;
|
682 |
-
background-image: -moz-linear-gradient(top, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0) 100%);
|
683 |
-
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,0.5)), color-stop(100%,rgba(255,255,255,0)));
|
684 |
-
background-image: -webkit-linear-gradient(top, rgba(255,255,255,0.5) 0%,rgba(255,255,255,0) 100%);
|
685 |
-
background-image: -o-linear-gradient(top, rgba(255,255,255,0.5) 0%,rgba(255,255,255,0) 100%);
|
686 |
-
background-image: -ms-linear-gradient(top, rgba(255,255,255,0.5) 0%,rgba(255,255,255,0) 100%);
|
687 |
-
background-image: linear-gradient(to bottom, rgba(255,255,255,0.5) 0%,rgba(255,255,255,0) 100%);
|
688 |
-
}
|
689 |
-
|
690 |
-
|
691 |
-
/* theme "3d", "3d-dark" */
|
692 |
-
|
693 |
-
.mCS-3d.mCSB_scrollTools_vertical .mCSB_dragger,
|
694 |
-
.mCS-3d-dark.mCSB_scrollTools_vertical .mCSB_dragger{ height: 70px; }
|
695 |
-
|
696 |
-
.mCS-3d.mCSB_scrollTools_horizontal .mCSB_dragger,
|
697 |
-
.mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_dragger{ width: 70px; }
|
698 |
-
|
699 |
-
.mCS-3d.mCSB_scrollTools,
|
700 |
-
.mCS-3d-dark.mCSB_scrollTools{
|
701 |
-
opacity: 1;
|
702 |
-
filter: "alpha(opacity=30)"; -ms-filter: "alpha(opacity=30)";
|
703 |
-
}
|
704 |
-
|
705 |
-
.mCS-3d.mCSB_scrollTools .mCSB_draggerRail,
|
706 |
-
.mCS-3d.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
|
707 |
-
.mCS-3d-dark.mCSB_scrollTools .mCSB_draggerRail,
|
708 |
-
.mCS-3d-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ -webkit-border-radius: 16px; -moz-border-radius: 16px; border-radius: 16px; }
|
709 |
-
|
710 |
-
.mCS-3d.mCSB_scrollTools .mCSB_draggerRail,
|
711 |
-
.mCS-3d-dark.mCSB_scrollTools .mCSB_draggerRail{
|
712 |
-
width: 8px;
|
713 |
-
background-color: #000; background-color: rgba(0,0,0,0.2);
|
714 |
-
box-shadow: inset 1px 0 1px rgba(0,0,0,0.5), inset -1px 0 1px rgba(255,255,255,0.2);
|
715 |
-
}
|
716 |
-
|
717 |
-
.mCS-3d.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
|
718 |
-
.mCS-3d.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar,
|
719 |
-
.mCS-3d.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
|
720 |
-
.mCS-3d.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,
|
721 |
-
.mCS-3d-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
|
722 |
-
.mCS-3d-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar,
|
723 |
-
.mCS-3d-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
|
724 |
-
.mCS-3d-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #555; }
|
725 |
-
|
726 |
-
.mCS-3d.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
|
727 |
-
.mCS-3d-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ width: 8px; }
|
728 |
-
|
729 |
-
.mCS-3d.mCSB_scrollTools_horizontal .mCSB_draggerRail,
|
730 |
-
.mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail{
|
731 |
-
width: 100%;
|
732 |
-
height: 8px;
|
733 |
-
margin: 4px 0;
|
734 |
-
box-shadow: inset 0 1px 1px rgba(0,0,0,0.5), inset 0 -1px 1px rgba(255,255,255,0.2);
|
735 |
-
}
|
736 |
-
|
737 |
-
.mCS-3d.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,
|
738 |
-
.mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{
|
739 |
-
width: 100%;
|
740 |
-
height: 8px;
|
741 |
-
margin: 4px auto;
|
742 |
-
}
|
743 |
-
|
744 |
-
/* theme "3d-dark" */
|
745 |
-
|
746 |
-
.mCS-3d-dark.mCSB_scrollTools .mCSB_draggerRail{
|
747 |
-
background-color: #000; background-color: rgba(0,0,0,0.1);
|
748 |
-
box-shadow: inset 1px 0 1px rgba(0,0,0,0.1);
|
749 |
-
}
|
750 |
|
751 |
-
|
752 |
-
|
753 |
-
/* ---------------------------------------- */
|
754 |
-
|
755 |
-
|
756 |
-
|
757 |
-
/* theme: "3d-thick", "3d-thick-dark" */
|
758 |
-
|
759 |
-
.mCS-3d-thick.mCSB_scrollTools,
|
760 |
-
.mCS-3d-thick-dark.mCSB_scrollTools{
|
761 |
-
opacity: 1;
|
762 |
-
filter: "alpha(opacity=30)"; -ms-filter: "alpha(opacity=30)";
|
763 |
-
}
|
764 |
-
|
765 |
-
.mCS-3d-thick.mCSB_scrollTools,
|
766 |
-
.mCS-3d-thick-dark.mCSB_scrollTools,
|
767 |
-
.mCS-3d-thick.mCSB_scrollTools .mCSB_draggerContainer,
|
768 |
-
.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_draggerContainer{ -webkit-border-radius: 7px; -moz-border-radius: 7px; border-radius: 7px; }
|
769 |
-
|
770 |
-
.mCS-3d-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
|
771 |
-
.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px; }
|
772 |
-
|
773 |
-
.mCSB_inside + .mCS-3d-thick.mCSB_scrollTools_vertical,
|
774 |
-
.mCSB_inside + .mCS-3d-thick-dark.mCSB_scrollTools_vertical{ right: 1px; }
|
775 |
-
|
776 |
-
.mCS-3d-thick.mCSB_scrollTools_vertical,
|
777 |
-
.mCS-3d-thick-dark.mCSB_scrollTools_vertical{ box-shadow: inset 1px 0 1px rgba(0,0,0,0.1), inset 0 0 14px rgba(0,0,0,0.5); }
|
778 |
-
|
779 |
-
.mCS-3d-thick.mCSB_scrollTools_horizontal,
|
780 |
-
.mCS-3d-thick-dark.mCSB_scrollTools_horizontal{
|
781 |
-
bottom: 1px;
|
782 |
-
box-shadow: inset 0 1px 1px rgba(0,0,0,0.1), inset 0 0 14px rgba(0,0,0,0.5);
|
783 |
-
}
|
784 |
-
|
785 |
-
.mCS-3d-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
|
786 |
-
.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{
|
787 |
-
box-shadow: inset 1px 0 0 rgba(255,255,255,0.4);
|
788 |
-
width: 12px;
|
789 |
-
margin: 2px;
|
790 |
-
position: absolute;
|
791 |
-
height: auto;
|
792 |
-
top: 0;
|
793 |
-
bottom: 0;
|
794 |
-
left: 0;
|
795 |
-
right: 0;
|
796 |
-
}
|
797 |
-
|
798 |
-
.mCS-3d-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,
|
799 |
-
.mCS-3d-thick-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{ box-shadow: inset 0 1px 0 rgba(255,255,255,0.4); }
|
800 |
-
|
801 |
-
.mCS-3d-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
|
802 |
-
.mCS-3d-thick.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar,
|
803 |
-
.mCS-3d-thick.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
|
804 |
-
.mCS-3d-thick.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #555; }
|
805 |
|
806 |
-
.mCS-3d-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,
|
807 |
-
.mCS-3d-thick-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{
|
808 |
-
height: 12px;
|
809 |
-
width: auto;
|
810 |
-
}
|
811 |
|
812 |
-
.mCS-3d-thick.mCSB_scrollTools .mCSB_draggerContainer{
|
813 |
-
background-color: #000; background-color: rgba(0,0,0,0.05);
|
814 |
-
box-shadow: inset 1px 1px 16px rgba(0,0,0,0.1);
|
815 |
-
}
|
816 |
|
817 |
-
|
818 |
|
819 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
820 |
|
821 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
822 |
|
823 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
824 |
|
825 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
826 |
|
827 |
-
|
|
|
|
|
828 |
|
829 |
-
|
830 |
-
|
831 |
-
|
832 |
-
.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #777; }
|
833 |
|
834 |
-
|
835 |
-
|
836 |
-
|
837 |
-
}
|
838 |
|
839 |
-
|
|
|
|
|
840 |
|
841 |
-
/* ---------------------------------------- */
|
842 |
|
843 |
-
|
844 |
|
845 |
-
|
846 |
-
|
847 |
-
|
848 |
-
margin: 12px 0;
|
849 |
-
}
|
850 |
|
851 |
-
|
852 |
-
|
853 |
-
|
854 |
-
.mCustomScrollBox.mCS-minimal-dark + .mCSB_scrollTools + .mCSB_scrollTools.mCSB_scrollTools_horizontal{
|
855 |
-
bottom: 0;
|
856 |
-
margin: 0 12px;
|
857 |
-
}
|
858 |
|
859 |
-
|
860 |
-
|
861 |
-
|
862 |
-
|
863 |
-
|
864 |
-
|
865 |
|
866 |
-
|
867 |
-
|
|
|
868 |
|
869 |
-
|
870 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
871 |
|
872 |
-
|
873 |
-
.mCS-minimal-dark.mCSB_scrollTools_horizontal .mCSB_dragger{ width: 50px; }
|
874 |
|
875 |
-
.mCS-minimal.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{
|
876 |
-
background-color: #fff; background-color: rgba(255,255,255,0.2);
|
877 |
-
filter: "alpha(opacity=20)"; -ms-filter: "alpha(opacity=20)";
|
878 |
-
}
|
879 |
-
|
880 |
-
.mCS-minimal.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
|
881 |
-
.mCS-minimal.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{
|
882 |
-
background-color: #fff; background-color: rgba(255,255,255,0.5);
|
883 |
-
filter: "alpha(opacity=50)"; -ms-filter: "alpha(opacity=50)";
|
884 |
-
}
|
885 |
-
|
886 |
-
|
887 |
-
/* theme: "minimal-dark" */
|
888 |
-
|
889 |
-
.mCS-minimal-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{
|
890 |
-
background-color: #000; background-color: rgba(0,0,0,0.2);
|
891 |
-
filter: "alpha(opacity=20)"; -ms-filter: "alpha(opacity=20)";
|
892 |
-
}
|
893 |
-
|
894 |
-
.mCS-minimal-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
|
895 |
-
.mCS-minimal-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{
|
896 |
-
background-color: #000; background-color: rgba(0,0,0,0.5);
|
897 |
-
filter: "alpha(opacity=50)"; -ms-filter: "alpha(opacity=50)";
|
898 |
-
}
|
899 |
-
|
900 |
-
/* ---------------------------------------- */
|
901 |
-
|
902 |
-
|
903 |
-
|
904 |
-
/* theme "light-3", "dark-3" */
|
905 |
-
|
906 |
-
.mCS-light-3.mCSB_scrollTools .mCSB_draggerRail,
|
907 |
-
.mCS-dark-3.mCSB_scrollTools .mCSB_draggerRail{
|
908 |
-
width: 6px;
|
909 |
-
background-color: #000; background-color: rgba(0,0,0,0.2);
|
910 |
-
}
|
911 |
-
|
912 |
-
.mCS-light-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
|
913 |
-
.mCS-dark-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ width: 6px; }
|
914 |
-
|
915 |
-
.mCS-light-3.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,
|
916 |
-
.mCS-dark-3.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,
|
917 |
-
.mCS-light-3.mCSB_scrollTools_horizontal .mCSB_draggerRail,
|
918 |
-
.mCS-dark-3.mCSB_scrollTools_horizontal .mCSB_draggerRail{
|
919 |
-
width: 100%;
|
920 |
-
height: 6px;
|
921 |
-
margin: 5px 0;
|
922 |
-
}
|
923 |
-
|
924 |
-
.mCS-light-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail,
|
925 |
-
.mCS-light-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail,
|
926 |
-
.mCS-dark-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail,
|
927 |
-
.mCS-dark-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{
|
928 |
-
width: 12px;
|
929 |
-
}
|
930 |
-
|
931 |
-
.mCS-light-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail,
|
932 |
-
.mCS-light-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail,
|
933 |
-
.mCS-dark-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail,
|
934 |
-
.mCS-dark-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{
|
935 |
-
height: 12px;
|
936 |
-
margin: 2px 0;
|
937 |
-
}
|
938 |
-
|
939 |
-
/* theme "dark-3" */
|
940 |
-
|
941 |
-
.mCS-dark-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ background-color: rgba(0,0,0,0.1); }
|
942 |
-
|
943 |
-
.mCS-dark-3.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{ background-color: rgba(0,0,0,0.15); }
|
944 |
-
|
945 |
-
.mCS-dark-3.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
|
946 |
-
.mCS-dark-3.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: rgba(0,0,0,0.15); }
|
947 |
-
|
948 |
-
.mCS-dark-3.mCSB_scrollTools .mCSB_draggerRail{ background-color: rgba(0,0,0,0.1); }
|
949 |
-
|
950 |
-
/* ---------------------------------------- */
|
951 |
-
|
952 |
-
|
953 |
-
|
954 |
-
/* theme "inset", "inset-dark", "inset-2", "inset-2-dark", "inset-3", "inset-3-dark" */
|
955 |
-
|
956 |
-
.mCS-inset.mCSB_scrollTools .mCSB_draggerRail,
|
957 |
-
.mCS-inset-dark.mCSB_scrollTools .mCSB_draggerRail,
|
958 |
-
.mCS-inset-2.mCSB_scrollTools .mCSB_draggerRail,
|
959 |
-
.mCS-inset-2-dark.mCSB_scrollTools .mCSB_draggerRail,
|
960 |
-
.mCS-inset-3.mCSB_scrollTools .mCSB_draggerRail,
|
961 |
-
.mCS-inset-3-dark.mCSB_scrollTools .mCSB_draggerRail{
|
962 |
-
width: 12px;
|
963 |
-
background-color: #000; background-color: rgba(0,0,0,0.2);
|
964 |
-
}
|
965 |
|
966 |
-
|
967 |
-
.mCS-inset-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
|
968 |
-
.mCS-inset-2.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
|
969 |
-
.mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
|
970 |
-
.mCS-inset-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
|
971 |
-
.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{
|
972 |
-
width: 6px;
|
973 |
-
margin: 3px 5px;
|
974 |
-
position: absolute;
|
975 |
-
height: auto;
|
976 |
-
top: 0;
|
977 |
-
bottom: 0;
|
978 |
-
left: 0;
|
979 |
-
right: 0;
|
980 |
-
}
|
981 |
|
982 |
-
|
983 |
-
.mCS-inset-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,
|
984 |
-
.mCS-inset-2.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,
|
985 |
-
.mCS-inset-2-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,
|
986 |
-
.mCS-inset-3.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,
|
987 |
-
.mCS-inset-3-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{
|
988 |
-
height: 6px;
|
989 |
-
margin: 5px 3px;
|
990 |
-
position: absolute;
|
991 |
-
width: auto;
|
992 |
-
top: 0;
|
993 |
-
bottom: 0;
|
994 |
-
left: 0;
|
995 |
-
right: 0;
|
996 |
-
}
|
997 |
|
998 |
-
|
999 |
-
.mCS-inset-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail,
|
1000 |
-
.mCS-inset-2.mCSB_scrollTools_horizontal .mCSB_draggerRail,
|
1001 |
-
.mCS-inset-2-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail,
|
1002 |
-
.mCS-inset-3.mCSB_scrollTools_horizontal .mCSB_draggerRail,
|
1003 |
-
.mCS-inset-3-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail{
|
1004 |
-
width: 100%;
|
1005 |
-
height: 12px;
|
1006 |
-
margin: 2px 0;
|
1007 |
-
}
|
1008 |
-
|
1009 |
-
|
1010 |
-
/* theme "inset-dark", "inset-2-dark", "inset-3-dark" */
|
1011 |
-
|
1012 |
-
.mCS-inset-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
|
1013 |
-
.mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
|
1014 |
-
.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.75); }
|
1015 |
-
|
1016 |
-
.mCS-inset-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar,
|
1017 |
-
.mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar,
|
1018 |
-
.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.85); }
|
1019 |
-
|
1020 |
-
.mCS-inset-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
|
1021 |
-
.mCS-inset-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,
|
1022 |
-
.mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
|
1023 |
-
.mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,
|
1024 |
-
.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
|
1025 |
-
.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.9); }
|
1026 |
|
1027 |
-
|
1028 |
-
.mCS-inset-2-dark.mCSB_scrollTools .mCSB_draggerRail,
|
1029 |
-
.mCS-inset-3-dark.mCSB_scrollTools .mCSB_draggerRail{ background-color: #000; background-color: rgba(0,0,0,0.1); }
|
1030 |
|
|
|
1031 |
|
1032 |
-
|
|
|
1033 |
|
1034 |
-
|
1035 |
-
.mCS-inset-2-dark.mCSB_scrollTools .mCSB_draggerRail{
|
1036 |
-
background-color: transparent;
|
1037 |
-
border-width: 1px;
|
1038 |
-
border-style: solid;
|
1039 |
-
border-color: #fff;
|
1040 |
-
border-color: rgba(255,255,255,0.2);
|
1041 |
-
-webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box;
|
1042 |
-
}
|
1043 |
|
1044 |
-
|
1045 |
|
|
|
|
|
1046 |
|
1047 |
-
|
1048 |
-
|
1049 |
-
.mCS-inset-3.mCSB_scrollTools .mCSB_draggerRail{ background-color: #fff; background-color: rgba(255,255,255,0.6); }
|
1050 |
-
|
1051 |
-
.mCS-inset-3-dark.mCSB_scrollTools .mCSB_draggerRail{ background-color: #000; background-color: rgba(0,0,0,0.6); }
|
1052 |
-
|
1053 |
-
.mCS-inset-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.75); }
|
1054 |
-
|
1055 |
-
.mCS-inset-3.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.85); }
|
1056 |
-
|
1057 |
-
.mCS-inset-3.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
|
1058 |
-
.mCS-inset-3.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.9); }
|
1059 |
-
|
1060 |
-
.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ background-color: #fff; background-color: rgba(255,255,255,0.75); }
|
1061 |
-
|
1062 |
-
.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{ background-color: #fff; background-color: rgba(255,255,255,0.85); }
|
1063 |
-
|
1064 |
-
.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
|
1065 |
-
.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #fff; background-color: rgba(255,255,255,0.9); }
|
1066 |
-
|
1067 |
-
/* ---------------------------------------- */
|
24 |
------------------------------------------------------------------------------------------------------------------------
|
25 |
*/
|
26 |
|
27 |
+
.mCustomScrollbar{ -ms-touch-action: pinch-zoom; touch-action: pinch-zoom; /* direct pointer events to js */ }
|
28 |
+
.mCustomScrollbar.mCS_no_scrollbar, .mCustomScrollbar.mCS_touch_action{ -ms-touch-action: auto; touch-action: auto; }
|
29 |
|
30 |
+
.mCustomScrollBox{ /* contains plugin's markup */
|
31 |
+
position: relative;
|
32 |
+
overflow: hidden;
|
33 |
+
height: 100%;
|
34 |
+
max-width: 100%;
|
35 |
+
outline: none;
|
36 |
+
direction: ltr;
|
37 |
+
}
|
38 |
|
39 |
+
.mCSB_container{ /* contains the original content */
|
40 |
+
overflow: hidden;
|
41 |
+
width: auto;
|
42 |
+
height: auto;
|
43 |
+
}
|
44 |
|
45 |
|
46 |
|
51 |
------------------------------------------------------------------------------------------------------------------------
|
52 |
*/
|
53 |
|
54 |
+
.mCSB_inside > .mCSB_container{ margin-right: 30px; }
|
55 |
+
|
56 |
+
.mCSB_container.mCS_no_scrollbar_y.mCS_y_hidden{ margin-right: 0; } /* non-visible scrollbar */
|
57 |
+
|
58 |
+
.mCS-dir-rtl > .mCSB_inside > .mCSB_container{ /* RTL direction/left-side scrollbar */
|
59 |
+
margin-right: 0;
|
60 |
+
margin-left: 30px;
|
61 |
+
}
|
62 |
+
|
63 |
+
.mCS-dir-rtl > .mCSB_inside > .mCSB_container.mCS_no_scrollbar_y.mCS_y_hidden{ margin-left: 0; } /* RTL direction/left-side scrollbar */
|
64 |
+
|
65 |
+
.mCSB_scrollTools{ /* contains scrollbar markup (draggable element, dragger rail, buttons etc.) */
|
66 |
+
position: absolute;
|
67 |
+
width: 16px;
|
68 |
+
height: auto;
|
69 |
+
left: auto;
|
70 |
+
top: 0;
|
71 |
+
right: 0;
|
72 |
+
bottom: 0;
|
73 |
+
}
|
74 |
+
|
75 |
+
.mCSB_outside + .mCSB_scrollTools{ right: -26px; } /* scrollbar position: outside */
|
76 |
+
|
77 |
+
.mCS-dir-rtl > .mCSB_inside > .mCSB_scrollTools,
|
78 |
+
.mCS-dir-rtl > .mCSB_outside + .mCSB_scrollTools{ /* RTL direction/left-side scrollbar */
|
79 |
+
right: auto;
|
80 |
+
left: 0;
|
81 |
+
}
|
82 |
+
|
83 |
+
.mCS-dir-rtl > .mCSB_outside + .mCSB_scrollTools{ left: -26px; } /* RTL direction/left-side scrollbar (scrollbar position: outside) */
|
84 |
+
|
85 |
+
.mCSB_scrollTools .mCSB_draggerContainer{ /* contains the draggable element and dragger rail markup */
|
86 |
+
position: absolute;
|
87 |
+
top: 0;
|
88 |
+
left: 0;
|
89 |
+
bottom: 0;
|
90 |
+
right: 0;
|
91 |
+
height: auto;
|
92 |
+
}
|
93 |
+
|
94 |
+
.mCSB_scrollTools a + .mCSB_draggerContainer{ margin: 20px 0; }
|
95 |
+
|
96 |
+
.mCSB_scrollTools .mCSB_draggerRail{
|
97 |
+
width: 2px;
|
98 |
+
height: 100%;
|
99 |
+
margin: 0 auto;
|
100 |
+
-webkit-border-radius: 16px; -moz-border-radius: 16px; border-radius: 16px;
|
101 |
+
}
|
102 |
+
|
103 |
+
.mCSB_scrollTools .mCSB_dragger{ /* the draggable element */
|
104 |
+
cursor: pointer;
|
105 |
+
width: 100%;
|
106 |
+
height: 30px; /* minimum dragger height */
|
107 |
+
z-index: 1;
|
108 |
+
}
|
109 |
+
|
110 |
+
.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ /* the dragger element */
|
111 |
+
position: relative;
|
112 |
+
width: 4px;
|
113 |
+
height: 100%;
|
114 |
+
margin: 0 auto;
|
115 |
+
-webkit-border-radius: 16px; -moz-border-radius: 16px; border-radius: 16px;
|
116 |
+
text-align: center;
|
117 |
+
}
|
118 |
+
|
119 |
+
.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar,
|
120 |
+
.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar{ width: 12px; /* auto-expanded scrollbar */ }
|
121 |
+
|
122 |
+
.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail,
|
123 |
+
.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{ width: 8px; /* auto-expanded scrollbar */ }
|
124 |
+
|
125 |
+
.mCSB_scrollTools .mCSB_buttonUp,
|
126 |
+
.mCSB_scrollTools .mCSB_buttonDown{
|
127 |
+
display: block;
|
128 |
+
position: absolute;
|
129 |
+
height: 20px;
|
130 |
+
width: 100%;
|
131 |
+
overflow: hidden;
|
132 |
+
margin: 0 auto;
|
133 |
+
cursor: pointer;
|
134 |
+
}
|
135 |
+
|
136 |
+
.mCSB_scrollTools .mCSB_buttonDown{ bottom: 0; }
|
137 |
|
138 |
|
139 |
|
144 |
------------------------------------------------------------------------------------------------------------------------
|
145 |
*/
|
146 |
|
147 |
+
.mCSB_horizontal.mCSB_inside > .mCSB_container{
|
148 |
+
margin-right: 0;
|
149 |
+
margin-bottom: 30px;
|
150 |
+
}
|
151 |
|
152 |
+
.mCSB_horizontal.mCSB_outside > .mCSB_container{ min-height: 100%; }
|
153 |
|
154 |
+
.mCSB_horizontal > .mCSB_container.mCS_no_scrollbar_x.mCS_x_hidden{ margin-bottom: 0; } /* non-visible scrollbar */
|
155 |
|
156 |
+
.mCSB_scrollTools.mCSB_scrollTools_horizontal{
|
157 |
+
width: auto;
|
158 |
+
height: 16px;
|
159 |
+
top: auto;
|
160 |
+
right: 0;
|
161 |
+
bottom: 0;
|
162 |
+
left: 0;
|
163 |
+
}
|
164 |
|
165 |
+
.mCustomScrollBox + .mCSB_scrollTools.mCSB_scrollTools_horizontal,
|
166 |
+
.mCustomScrollBox + .mCSB_scrollTools + .mCSB_scrollTools.mCSB_scrollTools_horizontal{ bottom: -26px; } /* scrollbar position: outside */
|
167 |
|
168 |
+
.mCSB_scrollTools.mCSB_scrollTools_horizontal a + .mCSB_draggerContainer{ margin: 0 20px; }
|
169 |
|
170 |
+
.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_draggerRail{
|
171 |
+
width: 100%;
|
172 |
+
height: 2px;
|
173 |
+
margin: 7px 0;
|
174 |
+
}
|
175 |
|
176 |
+
.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_dragger{
|
177 |
+
width: 30px; /* minimum dragger width */
|
178 |
+
height: 100%;
|
179 |
+
left: 0;
|
180 |
+
}
|
181 |
|
182 |
+
.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{
|
183 |
+
width: 100%;
|
184 |
+
height: 4px;
|
185 |
+
margin: 6px auto;
|
186 |
+
}
|
187 |
|
188 |
+
.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar,
|
189 |
+
.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar{
|
190 |
+
height: 12px; /* auto-expanded scrollbar */
|
191 |
+
margin: 2px auto;
|
192 |
+
}
|
193 |
|
194 |
+
.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail,
|
195 |
+
.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{
|
196 |
+
height: 8px; /* auto-expanded scrollbar */
|
197 |
+
margin: 4px 0;
|
198 |
+
}
|
199 |
|
200 |
+
.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonLeft,
|
201 |
+
.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonRight{
|
202 |
+
display: block;
|
203 |
+
position: absolute;
|
204 |
+
width: 20px;
|
205 |
+
height: 100%;
|
206 |
+
overflow: hidden;
|
207 |
+
margin: 0 auto;
|
208 |
+
cursor: pointer;
|
209 |
+
}
|
210 |
|
211 |
+
.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonLeft{ left: 0; }
|
212 |
|
213 |
+
.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonRight{ right: 0; }
|
214 |
|
215 |
|
216 |
|
221 |
------------------------------------------------------------------------------------------------------------------------
|
222 |
*/
|
223 |
|
224 |
+
.mCSB_container_wrapper{
|
225 |
+
position: absolute;
|
226 |
+
height: auto;
|
227 |
+
width: auto;
|
228 |
+
overflow: hidden;
|
229 |
+
top: 0;
|
230 |
+
left: 0;
|
231 |
+
right: 0;
|
232 |
+
bottom: 0;
|
233 |
+
margin-right: 30px;
|
234 |
+
margin-bottom: 30px;
|
235 |
+
}
|
236 |
|
237 |
+
.mCSB_container_wrapper > .mCSB_container{
|
238 |
+
padding-right: 30px;
|
239 |
+
padding-bottom: 30px;
|
240 |
+
-webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box;
|
241 |
+
}
|
242 |
|
243 |
+
.mCSB_vertical_horizontal > .mCSB_scrollTools.mCSB_scrollTools_vertical{ bottom: 20px; }
|
244 |
|
245 |
+
.mCSB_vertical_horizontal > .mCSB_scrollTools.mCSB_scrollTools_horizontal{ right: 20px; }
|
246 |
|
247 |
+
/* non-visible horizontal scrollbar */
|
248 |
+
.mCSB_container_wrapper.mCS_no_scrollbar_x.mCS_x_hidden + .mCSB_scrollTools.mCSB_scrollTools_vertical{ bottom: 0; }
|
249 |
|
250 |
+
/* non-visible vertical scrollbar/RTL direction/left-side scrollbar */
|
251 |
+
.mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden + .mCSB_scrollTools ~ .mCSB_scrollTools.mCSB_scrollTools_horizontal,
|
252 |
+
.mCS-dir-rtl > .mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside > .mCSB_scrollTools.mCSB_scrollTools_horizontal{ right: 0; }
|
253 |
|
254 |
+
/* RTL direction/left-side scrollbar */
|
255 |
+
.mCS-dir-rtl > .mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside > .mCSB_scrollTools.mCSB_scrollTools_horizontal{ left: 20px; }
|
256 |
|
257 |
+
/* non-visible scrollbar/RTL direction/left-side scrollbar */
|
258 |
+
.mCS-dir-rtl > .mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside > .mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden + .mCSB_scrollTools ~ .mCSB_scrollTools.mCSB_scrollTools_horizontal{ left: 0; }
|
259 |
|
260 |
+
.mCS-dir-rtl > .mCSB_inside > .mCSB_container_wrapper{ /* RTL direction/left-side scrollbar */
|
261 |
+
margin-right: 0;
|
262 |
+
margin-left: 30px;
|
263 |
+
}
|
264 |
|
265 |
+
.mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden > .mCSB_container{ padding-right: 0; }
|
|
|
|
|
|
|
266 |
|
267 |
+
.mCSB_container_wrapper.mCS_no_scrollbar_x.mCS_x_hidden > .mCSB_container{ padding-bottom: 0; }
|
|
|
|
|
|
|
268 |
|
269 |
+
.mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside > .mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden{
|
270 |
+
margin-right: 0; /* non-visible scrollbar */
|
271 |
+
margin-left: 0;
|
272 |
+
}
|
273 |
|
274 |
+
/* non-visible horizontal scrollbar */
|
275 |
+
.mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside > .mCSB_container_wrapper.mCS_no_scrollbar_x.mCS_x_hidden{ margin-bottom: 0; }
|
276 |
|
277 |
|
278 |
|
282 |
------------------------------------------------------------------------------------------------------------------------
|
283 |
*/
|
284 |
|
285 |
+
.mCSB_scrollTools,
|
286 |
+
.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
|
287 |
+
.mCSB_scrollTools .mCSB_buttonUp,
|
288 |
+
.mCSB_scrollTools .mCSB_buttonDown,
|
289 |
+
.mCSB_scrollTools .mCSB_buttonLeft,
|
290 |
+
.mCSB_scrollTools .mCSB_buttonRight{
|
291 |
+
-webkit-transition: opacity .2s ease-in-out, background-color .2s ease-in-out;
|
292 |
+
-moz-transition: opacity .2s ease-in-out, background-color .2s ease-in-out;
|
293 |
+
-o-transition: opacity .2s ease-in-out, background-color .2s ease-in-out;
|
294 |
+
transition: opacity .2s ease-in-out, background-color .2s ease-in-out;
|
295 |
+
}
|
296 |
+
|
297 |
+
.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger_bar, /* auto-expanded scrollbar */
|
298 |
+
.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerRail,
|
299 |
+
.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger_bar,
|
300 |
+
.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerRail{
|
301 |
+
-webkit-transition: width .2s ease-out .2s, height .2s ease-out .2s,
|
302 |
+
margin-left .2s ease-out .2s, margin-right .2s ease-out .2s,
|
303 |
+
margin-top .2s ease-out .2s, margin-bottom .2s ease-out .2s,
|
304 |
+
opacity .2s ease-in-out, background-color .2s ease-in-out;
|
305 |
+
-moz-transition: width .2s ease-out .2s, height .2s ease-out .2s,
|
306 |
+
margin-left .2s ease-out .2s, margin-right .2s ease-out .2s,
|
307 |
+
margin-top .2s ease-out .2s, margin-bottom .2s ease-out .2s,
|
308 |
+
opacity .2s ease-in-out, background-color .2s ease-in-out;
|
309 |
+
-o-transition: width .2s ease-out .2s, height .2s ease-out .2s,
|
310 |
+
margin-left .2s ease-out .2s, margin-right .2s ease-out .2s,
|
311 |
+
margin-top .2s ease-out .2s, margin-bottom .2s ease-out .2s,
|
312 |
+
opacity .2s ease-in-out, background-color .2s ease-in-out;
|
313 |
+
transition: width .2s ease-out .2s, height .2s ease-out .2s,
|
314 |
+
margin-left .2s ease-out .2s, margin-right .2s ease-out .2s,
|
315 |
+
margin-top .2s ease-out .2s, margin-bottom .2s ease-out .2s,
|
316 |
+
opacity .2s ease-in-out, background-color .2s ease-in-out;
|
317 |
+
}
|
318 |
|
319 |
|
320 |
|
324 |
------------------------------------------------------------------------------------------------------------------------
|
325 |
*/
|
326 |
|
327 |
+
/*
|
328 |
+
----------------------------------------
|
329 |
+
6.1 THEMES
|
330 |
+
----------------------------------------
|
331 |
+
*/
|
332 |
+
|
333 |
+
/* default theme ("light") */
|
334 |
+
|
335 |
+
.mCSB_scrollTools{ opacity: 0.75; filter: "alpha(opacity=75)"; -ms-filter: "alpha(opacity=75)"; }
|
336 |
+
|
337 |
+
.mCS-autoHide > .mCustomScrollBox > .mCSB_scrollTools,
|
338 |
+
.mCS-autoHide > .mCustomScrollBox ~ .mCSB_scrollTools{ opacity: 0; filter: "alpha(opacity=0)"; -ms-filter: "alpha(opacity=0)"; }
|
339 |
+
|
340 |
+
.mCustomScrollbar > .mCustomScrollBox > .mCSB_scrollTools.mCSB_scrollTools_onDrag,
|
341 |
+
.mCustomScrollbar > .mCustomScrollBox ~ .mCSB_scrollTools.mCSB_scrollTools_onDrag,
|
342 |
+
.mCustomScrollBox:hover > .mCSB_scrollTools,
|
343 |
+
.mCustomScrollBox:hover ~ .mCSB_scrollTools,
|
344 |
+
.mCS-autoHide:hover > .mCustomScrollBox > .mCSB_scrollTools,
|
345 |
+
.mCS-autoHide:hover > .mCustomScrollBox ~ .mCSB_scrollTools{ opacity: 1; filter: "alpha(opacity=100)"; -ms-filter: "alpha(opacity=100)"; }
|
346 |
+
|
347 |
+
.mCSB_scrollTools .mCSB_draggerRail{
|
348 |
+
background-color: #000; background-color: rgba(0,0,0,0.4);
|
349 |
+
filter: "alpha(opacity=40)"; -ms-filter: "alpha(opacity=40)";
|
350 |
+
}
|
351 |
+
|
352 |
+
.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{
|
353 |
+
background-color: #fff; background-color: rgba(255,255,255,0.75);
|
354 |
+
filter: "alpha(opacity=75)"; -ms-filter: "alpha(opacity=75)";
|
355 |
+
}
|
356 |
+
|
357 |
+
.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{
|
358 |
+
background-color: #fff; background-color: rgba(255,255,255,0.85);
|
359 |
+
filter: "alpha(opacity=85)"; -ms-filter: "alpha(opacity=85)";
|
360 |
+
}
|
361 |
+
.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
|
362 |
+
.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{
|
363 |
+
background-color: #fff; background-color: rgba(255,255,255,0.9);
|
364 |
+
filter: "alpha(opacity=90)"; -ms-filter: "alpha(opacity=90)";
|
365 |
+
}
|
366 |
+
|
367 |
+
.mCSB_scrollTools .mCSB_buttonUp,
|
368 |
+
.mCSB_scrollTools .mCSB_buttonDown,
|
369 |
+
.mCSB_scrollTools .mCSB_buttonLeft,
|
370 |
+
.mCSB_scrollTools .mCSB_buttonRight{
|
371 |
+
background-image: url(mCSB_buttons.png); /* css sprites */
|
372 |
+
background-repeat: no-repeat;
|
373 |
+
opacity: 0.4; filter: "alpha(opacity=40)"; -ms-filter: "alpha(opacity=40)";
|
374 |
+
}
|
375 |
+
|
376 |
+
.mCSB_scrollTools .mCSB_buttonUp{
|
377 |
+
background-position: 0 0;
|
378 |
+
/*
|
379 |
+
sprites locations
|
380 |
+
light: 0 0, -16px 0, -32px 0, -48px 0, 0 -72px, -16px -72px, -32px -72px
|
381 |
+
dark: -80px 0, -96px 0, -112px 0, -128px 0, -80px -72px, -96px -72px, -112px -72px
|
382 |
+
*/
|
383 |
+
}
|
384 |
+
|
385 |
+
.mCSB_scrollTools .mCSB_buttonDown{
|
386 |
+
background-position: 0 -20px;
|
387 |
+
/*
|
388 |
+
sprites locations
|
389 |
+
light: 0 -20px, -16px -20px, -32px -20px, -48px -20px, 0 -92px, -16px -92px, -32px -92px
|
390 |
+
dark: -80px -20px, -96px -20px, -112px -20px, -128px -20px, -80px -92px, -96px -92px, -112 -92px
|
391 |
+
*/
|
392 |
+
}
|
393 |
+
|
394 |
+
.mCSB_scrollTools .mCSB_buttonLeft{
|
395 |
+
background-position: 0 -40px;
|
396 |
+
/*
|
397 |
+
sprites locations
|
398 |
+
light: 0 -40px, -20px -40px, -40px -40px, -60px -40px, 0 -112px, -20px -112px, -40px -112px
|
399 |
+
dark: -80px -40px, -100px -40px, -120px -40px, -140px -40px, -80px -112px, -100px -112px, -120px -112px
|
400 |
+
*/
|
401 |
+
}
|
402 |
+
|
403 |
+
.mCSB_scrollTools .mCSB_buttonRight{
|
404 |
+
background-position: 0 -56px;
|
405 |
/*
|
406 |
+
sprites locations
|
407 |
+
light: 0 -56px, -20px -56px, -40px -56px, -60px -56px, 0 -128px, -20px -128px, -40px -128px
|
408 |
+
dark: -80px -56px, -100px -56px, -120px -56px, -140px -56px, -80px -128px, -100px -128px, -120px -128px
|
409 |
*/
|
410 |
+
}
|
411 |
+
|
412 |
+
.mCSB_scrollTools .mCSB_buttonUp:hover,
|
413 |
+
.mCSB_scrollTools .mCSB_buttonDown:hover,
|
414 |
+
.mCSB_scrollTools .mCSB_buttonLeft:hover,
|
415 |
+
.mCSB_scrollTools .mCSB_buttonRight:hover{ opacity: 0.75; filter: "alpha(opacity=75)"; -ms-filter: "alpha(opacity=75)"; }
|
416 |
+
|
417 |
+
.mCSB_scrollTools .mCSB_buttonUp:active,
|
418 |
+
.mCSB_scrollTools .mCSB_buttonDown:active,
|
419 |
+
.mCSB_scrollTools .mCSB_buttonLeft:active,
|
420 |
+
.mCSB_scrollTools .mCSB_buttonRight:active{ opacity: 0.9; filter: "alpha(opacity=90)"; -ms-filter: "alpha(opacity=90)"; }
|
421 |
+
|
422 |
+
|
423 |
+
/* theme: "dark" */
|
424 |
+
|
425 |
+
.mCS-dark.mCSB_scrollTools .mCSB_draggerRail{ background-color: #000; background-color: rgba(0,0,0,0.15); }
|
426 |
+
|
427 |
+
.mCS-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.75); }
|
428 |
+
|
429 |
+
.mCS-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{ background-color: rgba(0,0,0,0.85); }
|
430 |
+
|
431 |
+
.mCS-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
|
432 |
+
.mCS-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: rgba(0,0,0,0.9); }
|
433 |
+
|
434 |
+
.mCS-dark.mCSB_scrollTools .mCSB_buttonUp{ background-position: -80px 0; }
|
435 |
+
|
436 |
+
.mCS-dark.mCSB_scrollTools .mCSB_buttonDown{ background-position: -80px -20px; }
|
437 |
+
|
438 |
+
.mCS-dark.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -80px -40px; }
|
439 |
+
|
440 |
+
.mCS-dark.mCSB_scrollTools .mCSB_buttonRight{ background-position: -80px -56px; }
|
441 |
+
|
442 |
+
/* ---------------------------------------- */
|
443 |
+
|
444 |
+
|
445 |
+
|
446 |
+
/* theme: "light-2", "dark-2" */
|
447 |
+
|
448 |
+
.mCS-light-2.mCSB_scrollTools .mCSB_draggerRail,
|
449 |
+
.mCS-dark-2.mCSB_scrollTools .mCSB_draggerRail{
|
450 |
+
width: 4px;
|
451 |
+
background-color: #fff; background-color: rgba(255,255,255,0.1);
|
452 |
+
-webkit-border-radius: 1px; -moz-border-radius: 1px; border-radius: 1px;
|
453 |
+
}
|
454 |
+
|
455 |
+
.mCS-light-2.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
|
456 |
+
.mCS-dark-2.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{
|
457 |
+
width: 4px;
|
458 |
+
background-color: #fff; background-color: rgba(255,255,255,0.75);
|
459 |
+
-webkit-border-radius: 1px; -moz-border-radius: 1px; border-radius: 1px;
|
460 |
+
}
|
461 |
+
|
462 |
+
.mCS-light-2.mCSB_scrollTools_horizontal .mCSB_draggerRail,
|
463 |
+
.mCS-dark-2.mCSB_scrollTools_horizontal .mCSB_draggerRail,
|
464 |
+
.mCS-light-2.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,
|
465 |
+
.mCS-dark-2.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{
|
466 |
+
width: 100%;
|
467 |
+
height: 4px;
|
468 |
+
margin: 6px auto;
|
469 |
+
}
|
470 |
+
|
471 |
+
.mCS-light-2.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{ background-color: #fff; background-color: rgba(255,255,255,0.85); }
|
472 |
+
|
473 |
+
.mCS-light-2.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
|
474 |
+
.mCS-light-2.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #fff; background-color: rgba(255,255,255,0.9); }
|
475 |
+
|
476 |
+
.mCS-light-2.mCSB_scrollTools .mCSB_buttonUp{ background-position: -32px 0; }
|
477 |
+
|
478 |
+
.mCS-light-2.mCSB_scrollTools .mCSB_buttonDown{ background-position: -32px -20px; }
|
479 |
+
|
480 |
+
.mCS-light-2.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -40px -40px; }
|
481 |
+
|
482 |
+
.mCS-light-2.mCSB_scrollTools .mCSB_buttonRight{ background-position: -40px -56px; }
|
483 |
+
|
484 |
+
|
485 |
+
/* theme: "dark-2" */
|
486 |
+
|
487 |
+
.mCS-dark-2.mCSB_scrollTools .mCSB_draggerRail{
|
488 |
+
background-color: #000; background-color: rgba(0,0,0,0.1);
|
489 |
+
-webkit-border-radius: 1px; -moz-border-radius: 1px; border-radius: 1px;
|
490 |
+
}
|
491 |
+
|
492 |
+
.mCS-dark-2.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{
|
493 |
+
background-color: #000; background-color: rgba(0,0,0,0.75);
|
494 |
+
-webkit-border-radius: 1px; -moz-border-radius: 1px; border-radius: 1px;
|
495 |
+
}
|
496 |
+
|
497 |
+
.mCS-dark-2.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.85); }
|
498 |
+
|
499 |
+
.mCS-dark-2.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
|
500 |
+
.mCS-dark-2.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.9); }
|
501 |
+
|
502 |
+
.mCS-dark-2.mCSB_scrollTools .mCSB_buttonUp{ background-position: -112px 0; }
|
503 |
+
|
504 |
+
.mCS-dark-2.mCSB_scrollTools .mCSB_buttonDown{ background-position: -112px -20px; }
|
505 |
+
|
506 |
+
.mCS-dark-2.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -120px -40px; }
|
507 |
+
|
508 |
+
.mCS-dark-2.mCSB_scrollTools .mCSB_buttonRight{ background-position: -120px -56px; }
|
509 |
+
|
510 |
+
/* ---------------------------------------- */
|
511 |
+
|
512 |
+
|
513 |
+
|
514 |
+
/* theme: "light-thick", "dark-thick" */
|
515 |
+
|
516 |
+
.mCS-light-thick.mCSB_scrollTools .mCSB_draggerRail,
|
517 |
+
.mCS-dark-thick.mCSB_scrollTools .mCSB_draggerRail{
|
518 |
+
width: 4px;
|
519 |
+
background-color: #fff; background-color: rgba(255,255,255,0.1);
|
520 |
+
-webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px;
|
521 |
+
}
|
522 |
+
|
523 |
+
.mCS-light-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
|
524 |
+
.mCS-dark-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{
|
525 |
+
width: 6px;
|
526 |
+
background-color: #fff; background-color: rgba(255,255,255,0.75);
|
527 |
+
-webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px;
|
528 |
+
}
|
529 |
+
|
530 |
+
.mCS-light-thick.mCSB_scrollTools_horizontal .mCSB_draggerRail,
|
531 |
+
.mCS-dark-thick.mCSB_scrollTools_horizontal .mCSB_draggerRail{
|
532 |
+
width: 100%;
|
533 |
+
height: 4px;
|
534 |
+
margin: 6px 0;
|
535 |
+
}
|
536 |
+
|
537 |
+
.mCS-light-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,
|
538 |
+
.mCS-dark-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{
|
539 |
+
width: 100%;
|
540 |
+
height: 6px;
|
541 |
+
margin: 5px auto;
|
542 |
+
}
|
543 |
+
|
544 |
+
.mCS-light-thick.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{ background-color: #fff; background-color: rgba(255,255,255,0.85); }
|
545 |
+
|
546 |
+
.mCS-light-thick.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
|
547 |
+
.mCS-light-thick.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #fff; background-color: rgba(255,255,255,0.9); }
|
548 |
+
|
549 |
+
.mCS-light-thick.mCSB_scrollTools .mCSB_buttonUp{ background-position: -16px 0; }
|
550 |
+
|
551 |
+
.mCS-light-thick.mCSB_scrollTools .mCSB_buttonDown{ background-position: -16px -20px; }
|
552 |
+
|
553 |
+
.mCS-light-thick.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -20px -40px; }
|
554 |
+
|
555 |
+
.mCS-light-thick.mCSB_scrollTools .mCSB_buttonRight{ background-position: -20px -56px; }
|
556 |
+
|
557 |
+
|
558 |
+
/* theme: "dark-thick" */
|
559 |
+
|
560 |
+
.mCS-dark-thick.mCSB_scrollTools .mCSB_draggerRail{
|
561 |
+
background-color: #000; background-color: rgba(0,0,0,0.1);
|
562 |
+
-webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px;
|
563 |
+
}
|
564 |
+
|
565 |
+
.mCS-dark-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{
|
566 |
+
background-color: #000; background-color: rgba(0,0,0,0.75);
|
567 |
+
-webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px;
|
568 |
+
}
|
569 |
+
|
570 |
+
.mCS-dark-thick.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.85); }
|
571 |
+
|
572 |
+
.mCS-dark-thick.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
|
573 |
+
.mCS-dark-thick.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.9); }
|
574 |
+
|
575 |
+
.mCS-dark-thick.mCSB_scrollTools .mCSB_buttonUp{ background-position: -96px 0; }
|
576 |
+
|
577 |
+
.mCS-dark-thick.mCSB_scrollTools .mCSB_buttonDown{ background-position: -96px -20px; }
|
578 |
+
|
579 |
+
.mCS-dark-thick.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -100px -40px; }
|
580 |
+
|
581 |
+
.mCS-dark-thick.mCSB_scrollTools .mCSB_buttonRight{ background-position: -100px -56px; }
|
582 |
+
|
583 |
+
/* ---------------------------------------- */
|
584 |
+
|
585 |
+
|
586 |
+
|
587 |
+
/* theme: "light-thin", "dark-thin" */
|
588 |
+
|
589 |
+
.mCS-light-thin.mCSB_scrollTools .mCSB_draggerRail{ background-color: #fff; background-color: rgba(255,255,255,0.1); }
|
590 |
+
|
591 |
+
.mCS-light-thin.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
|
592 |
+
.mCS-dark-thin.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ width: 2px; }
|
593 |
+
|
594 |
+
.mCS-light-thin.mCSB_scrollTools_horizontal .mCSB_draggerRail,
|
595 |
+
.mCS-dark-thin.mCSB_scrollTools_horizontal .mCSB_draggerRail{ width: 100%; }
|
596 |
+
|
597 |
+
.mCS-light-thin.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,
|
598 |
+
.mCS-dark-thin.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{
|
599 |
+
width: 100%;
|
600 |
+
height: 2px;
|
601 |
+
margin: 7px auto;
|
602 |
+
}
|
603 |
+
|
604 |
+
|
605 |
+
/* theme "dark-thin" */
|
606 |
+
|
607 |
+
.mCS-dark-thin.mCSB_scrollTools .mCSB_draggerRail{ background-color: #000; background-color: rgba(0,0,0,0.15); }
|
608 |
+
|
609 |
+
.mCS-dark-thin.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.75); }
|
610 |
+
|
611 |
+
.mCS-dark-thin.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.85); }
|
612 |
+
|
613 |
+
.mCS-dark-thin.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
|
614 |
+
.mCS-dark-thin.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.9); }
|
615 |
+
|
616 |
+
.mCS-dark-thin.mCSB_scrollTools .mCSB_buttonUp{ background-position: -80px 0; }
|
617 |
+
|
618 |
+
.mCS-dark-thin.mCSB_scrollTools .mCSB_buttonDown{ background-position: -80px -20px; }
|
619 |
+
|
620 |
+
.mCS-dark-thin.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -80px -40px; }
|
621 |
+
|
622 |
+
.mCS-dark-thin.mCSB_scrollTools .mCSB_buttonRight{ background-position: -80px -56px; }
|
623 |
+
|
624 |
+
/* ---------------------------------------- */
|
625 |
+
|
626 |
+
|
627 |
+
|
628 |
+
/* theme "rounded", "rounded-dark", "rounded-dots", "rounded-dots-dark" */
|
629 |
+
|
630 |
+
.mCS-rounded.mCSB_scrollTools .mCSB_draggerRail{ background-color: #fff; background-color: rgba(255,255,255,0.15); }
|
631 |
+
|
632 |
+
.mCS-rounded.mCSB_scrollTools .mCSB_dragger,
|
633 |
+
.mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger,
|
634 |
+
.mCS-rounded-dots.mCSB_scrollTools .mCSB_dragger,
|
635 |
+
.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger{ height: 14px; }
|
636 |
+
|
637 |
+
.mCS-rounded.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
|
638 |
+
.mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
|
639 |
+
.mCS-rounded-dots.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
|
640 |
+
.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{
|
641 |
+
width: 14px;
|
642 |
+
margin: 0 1px;
|
643 |
+
}
|
644 |
+
|
645 |
+
.mCS-rounded.mCSB_scrollTools_horizontal .mCSB_dragger,
|
646 |
+
.mCS-rounded-dark.mCSB_scrollTools_horizontal .mCSB_dragger,
|
647 |
+
.mCS-rounded-dots.mCSB_scrollTools_horizontal .mCSB_dragger,
|
648 |
+
.mCS-rounded-dots-dark.mCSB_scrollTools_horizontal .mCSB_dragger{ width: 14px; }
|
649 |
+
|
650 |
+
.mCS-rounded.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,
|
651 |
+
.mCS-rounded-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,
|
652 |
+
.mCS-rounded-dots.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,
|
653 |
+
.mCS-rounded-dots-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{
|
654 |
+
height: 14px;
|
655 |
+
margin: 1px 0;
|
656 |
+
}
|
657 |
+
|
658 |
+
.mCS-rounded.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar,
|
659 |
+
.mCS-rounded.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar,
|
660 |
+
.mCS-rounded-dark.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar,
|
661 |
+
.mCS-rounded-dark.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar{
|
662 |
+
width: 16px; /* auto-expanded scrollbar */
|
663 |
+
height: 16px;
|
664 |
+
margin: -1px 0;
|
665 |
+
}
|
666 |
+
|
667 |
+
.mCS-rounded.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail,
|
668 |
+
.mCS-rounded.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail,
|
669 |
+
.mCS-rounded-dark.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail,
|
670 |
+
.mCS-rounded-dark.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{ width: 4px; /* auto-expanded scrollbar */ }
|
671 |
+
|
672 |
+
.mCS-rounded.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar,
|
673 |
+
.mCS-rounded.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar,
|
674 |
+
.mCS-rounded-dark.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar,
|
675 |
+
.mCS-rounded-dark.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar{
|
676 |
+
height: 16px; /* auto-expanded scrollbar */
|
677 |
+
width: 16px;
|
678 |
+
margin: 0 -1px;
|
679 |
+
}
|
680 |
+
|
681 |
+
.mCS-rounded.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail,
|
682 |
+
.mCS-rounded.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail,
|
683 |
+
.mCS-rounded-dark.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail,
|
684 |
+
.mCS-rounded-dark.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{
|
685 |
+
height: 4px; /* auto-expanded scrollbar */
|
686 |
+
margin: 6px 0;
|
687 |
+
}
|
688 |
+
|
689 |
+
.mCS-rounded.mCSB_scrollTools .mCSB_buttonUp{ background-position: 0 -72px; }
|
690 |
+
|
691 |
+
.mCS-rounded.mCSB_scrollTools .mCSB_buttonDown{ background-position: 0 -92px; }
|
692 |
+
|
693 |
+
.mCS-rounded.mCSB_scrollTools .mCSB_buttonLeft{ background-position: 0 -112px; }
|
694 |
+
|
695 |
+
.mCS-rounded.mCSB_scrollTools .mCSB_buttonRight{ background-position: 0 -128px; }
|
696 |
+
|
697 |
+
|
698 |
+
/* theme "rounded-dark", "rounded-dots-dark" */
|
699 |
+
|
700 |
+
.mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
|
701 |
+
.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.75); }
|
702 |
+
|
703 |
+
.mCS-rounded-dark.mCSB_scrollTools .mCSB_draggerRail{ background-color: #000; background-color: rgba(0,0,0,0.15); }
|
704 |
+
|
705 |
+
.mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar,
|
706 |
+
.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.85); }
|
707 |
+
|
708 |
+
.mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
|
709 |
+
.mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,
|
710 |
+
.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
|
711 |
+
.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.9); }
|
712 |
+
|
713 |
+
.mCS-rounded-dark.mCSB_scrollTools .mCSB_buttonUp{ background-position: -80px -72px; }
|
714 |
+
|
715 |
+
.mCS-rounded-dark.mCSB_scrollTools .mCSB_buttonDown{ background-position: -80px -92px; }
|
716 |
+
|
717 |
+
.mCS-rounded-dark.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -80px -112px; }
|
718 |
+
|
719 |
+
.mCS-rounded-dark.mCSB_scrollTools .mCSB_buttonRight{ background-position: -80px -128px; }
|
720 |
+
|
721 |
+
|
722 |
+
/* theme "rounded-dots", "rounded-dots-dark" */
|
723 |
+
|
724 |
+
.mCS-rounded-dots.mCSB_scrollTools_vertical .mCSB_draggerRail,
|
725 |
+
.mCS-rounded-dots-dark.mCSB_scrollTools_vertical .mCSB_draggerRail{ width: 4px; }
|
726 |
+
|
727 |
+
.mCS-rounded-dots.mCSB_scrollTools .mCSB_draggerRail,
|
728 |
+
.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_draggerRail,
|
729 |
+
.mCS-rounded-dots.mCSB_scrollTools_horizontal .mCSB_draggerRail,
|
730 |
+
.mCS-rounded-dots-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail{
|
731 |
+
background-color: transparent;
|
732 |
+
background-position: center;
|
733 |
+
}
|
734 |
+
|
735 |
+
.mCS-rounded-dots.mCSB_scrollTools .mCSB_draggerRail,
|
736 |
+
.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_draggerRail{
|
737 |
+
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAANElEQVQYV2NkIAAYiVbw//9/Y6DiM1ANJoyMjGdBbLgJQAX/kU0DKgDLkaQAvxW4HEvQFwCRcxIJK1XznAAAAABJRU5ErkJggg==");
|
738 |
+
background-repeat: repeat-y;
|
739 |
+
opacity: 0.3;
|
740 |
+
filter: "alpha(opacity=30)"; -ms-filter: "alpha(opacity=30)";
|
741 |
+
}
|
742 |
+
|
743 |
+
.mCS-rounded-dots.mCSB_scrollTools_horizontal .mCSB_draggerRail,
|
744 |
+
.mCS-rounded-dots-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail{
|
745 |
+
height: 4px;
|
746 |
+
margin: 6px 0;
|
747 |
+
background-repeat: repeat-x;
|
748 |
+
}
|
749 |
+
|
750 |
+
.mCS-rounded-dots.mCSB_scrollTools .mCSB_buttonUp{ background-position: -16px -72px; }
|
751 |
+
|
752 |
+
.mCS-rounded-dots.mCSB_scrollTools .mCSB_buttonDown{ background-position: -16px -92px; }
|
753 |
+
|
754 |
+
.mCS-rounded-dots.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -20px -112px; }
|
755 |
+
|
756 |
+
.mCS-rounded-dots.mCSB_scrollTools .mCSB_buttonRight{ background-position: -20px -128px; }
|
757 |
+
|
758 |
+
|
759 |
+
/* theme "rounded-dots-dark" */
|
760 |
+
|
761 |
+
.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_draggerRail{
|
762 |
+
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAALElEQVQYV2NkIAAYSVFgDFR8BqrBBEifBbGRTfiPZhpYjiQFBK3A6l6CvgAAE9kGCd1mvgEAAAAASUVORK5CYII=");
|
763 |
+
}
|
764 |
+
|
765 |
+
.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_buttonUp{ background-position: -96px -72px; }
|
766 |
+
|
767 |
+
.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_buttonDown{ background-position: -96px -92px; }
|
768 |
+
|
769 |
+
.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -100px -112px; }
|
770 |
+
|
771 |
+
.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_buttonRight{ background-position: -100px -128px; }
|
772 |
+
|
773 |
+
/* ---------------------------------------- */
|
774 |
+
|
775 |
+
|
776 |
+
|
777 |
+
/* theme "3d", "3d-dark", "3d-thick", "3d-thick-dark" */
|
778 |
+
|
779 |
+
.mCS-3d.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
|
780 |
+
.mCS-3d-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
|
781 |
+
.mCS-3d-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
|
782 |
+
.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{
|
783 |
+
background-repeat: repeat-y;
|
784 |
+
background-image: -moz-linear-gradient(left, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0) 100%);
|
785 |
+
background-image: -webkit-gradient(linear, left top, right top, color-stop(0%,rgba(255,255,255,0.5)), color-stop(100%,rgba(255,255,255,0)));
|
786 |
+
background-image: -webkit-linear-gradient(left, rgba(255,255,255,0.5) 0%,rgba(255,255,255,0) 100%);
|
787 |
+
background-image: -o-linear-gradient(left, rgba(255,255,255,0.5) 0%,rgba(255,255,255,0) 100%);
|
788 |
+
background-image: -ms-linear-gradient(left, rgba(255,255,255,0.5) 0%,rgba(255,255,255,0) 100%);
|
789 |
+
background-image: linear-gradient(to right, rgba(255,255,255,0.5) 0%,rgba(255,255,255,0) 100%);
|
790 |
+
}
|
791 |
+
|
792 |
+
.mCS-3d.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,
|
793 |
+
.mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,
|
794 |
+
.mCS-3d-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,
|
795 |
+
.mCS-3d-thick-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{
|
796 |
+
background-repeat: repeat-x;
|
797 |
+
background-image: -moz-linear-gradient(top, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0) 100%);
|
798 |
+
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,0.5)), color-stop(100%,rgba(255,255,255,0)));
|
799 |
+
background-image: -webkit-linear-gradient(top, rgba(255,255,255,0.5) 0%,rgba(255,255,255,0) 100%);
|
800 |
+
background-image: -o-linear-gradient(top, rgba(255,255,255,0.5) 0%,rgba(255,255,255,0) 100%);
|
801 |
+
background-image: -ms-linear-gradient(top, rgba(255,255,255,0.5) 0%,rgba(255,255,255,0) 100%);
|
802 |
+
background-image: linear-gradient(to bottom, rgba(255,255,255,0.5) 0%,rgba(255,255,255,0) 100%);
|
803 |
+
}
|
804 |
+
|
805 |
+
|
806 |
+
/* theme "3d", "3d-dark" */
|
807 |
+
|
808 |
+
.mCS-3d.mCSB_scrollTools_vertical .mCSB_dragger,
|
809 |
+
.mCS-3d-dark.mCSB_scrollTools_vertical .mCSB_dragger{ height: 70px; }
|
810 |
+
|
811 |
+
.mCS-3d.mCSB_scrollTools_horizontal .mCSB_dragger,
|
812 |
+
.mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_dragger{ width: 70px; }
|
813 |
+
|
814 |
+
.mCS-3d.mCSB_scrollTools,
|
815 |
+
.mCS-3d-dark.mCSB_scrollTools{
|
816 |
+
opacity: 1;
|
817 |
+
filter: "alpha(opacity=30)"; -ms-filter: "alpha(opacity=30)";
|
818 |
+
}
|
819 |
+
|
820 |
+
.mCS-3d.mCSB_scrollTools .mCSB_draggerRail,
|
821 |
+
.mCS-3d.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
|
822 |
+
.mCS-3d-dark.mCSB_scrollTools .mCSB_draggerRail,
|
823 |
+
.mCS-3d-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ -webkit-border-radius: 16px; -moz-border-radius: 16px; border-radius: 16px; }
|
824 |
+
|
825 |
+
.mCS-3d.mCSB_scrollTools .mCSB_draggerRail,
|
826 |
+
.mCS-3d-dark.mCSB_scrollTools .mCSB_draggerRail{
|
827 |
+
width: 8px;
|
828 |
+
background-color: #000; background-color: rgba(0,0,0,0.2);
|
829 |
+
box-shadow: inset 1px 0 1px rgba(0,0,0,0.5), inset -1px 0 1px rgba(255,255,255,0.2);
|
830 |
+
}
|
831 |
+
|
832 |
+
.mCS-3d.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
|
833 |
+
.mCS-3d.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar,
|
834 |
+
.mCS-3d.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
|
835 |
+
.mCS-3d.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,
|
836 |
+
.mCS-3d-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
|
837 |
+
.mCS-3d-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar,
|
838 |
+
.mCS-3d-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
|
839 |
+
.mCS-3d-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #555; }
|
840 |
+
|
841 |
+
.mCS-3d.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
|
842 |
+
.mCS-3d-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ width: 8px; }
|
843 |
+
|
844 |
+
.mCS-3d.mCSB_scrollTools_horizontal .mCSB_draggerRail,
|
845 |
+
.mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail{
|
846 |
+
width: 100%;
|
847 |
+
height: 8px;
|
848 |
+
margin: 4px 0;
|
849 |
+
box-shadow: inset 0 1px 1px rgba(0,0,0,0.5), inset 0 -1px 1px rgba(255,255,255,0.2);
|
850 |
+
}
|
851 |
+
|
852 |
+
.mCS-3d.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,
|
853 |
+
.mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{
|
854 |
+
width: 100%;
|
855 |
+
height: 8px;
|
856 |
+
margin: 4px auto;
|
857 |
+
}
|
858 |
+
|
859 |
+
.mCS-3d.mCSB_scrollTools .mCSB_buttonUp{ background-position: -32px -72px; }
|
860 |
+
|
861 |
+
.mCS-3d.mCSB_scrollTools .mCSB_buttonDown{ background-position: -32px -92px; }
|
862 |
+
|
863 |
+
.mCS-3d.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -40px -112px; }
|
864 |
+
|
865 |
+
.mCS-3d.mCSB_scrollTools .mCSB_buttonRight{ background-position: -40px -128px; }
|
866 |
+
|
867 |
|
868 |
+
/* theme "3d-dark" */
|
869 |
|
870 |
+
.mCS-3d-dark.mCSB_scrollTools .mCSB_draggerRail{
|
871 |
+
background-color: #000; background-color: rgba(0,0,0,0.1);
|
872 |
+
box-shadow: inset 1px 0 1px rgba(0,0,0,0.1);
|
873 |
+
}
|
874 |
|
875 |
+
.mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail{ box-shadow: inset 0 1px 1px rgba(0,0,0,0.1); }
|
|
|
876 |
|
877 |
+
.mCS-3d-dark.mCSB_scrollTools .mCSB_buttonUp{ background-position: -112px -72px; }
|
|
|
|
|
|
|
|
|
|
|
878 |
|
879 |
+
.mCS-3d-dark.mCSB_scrollTools .mCSB_buttonDown{ background-position: -112px -92px; }
|
|
|
|
|
|
|
880 |
|
881 |
+
.mCS-3d-dark.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -120px -112px; }
|
|
|
|
|
|
|
882 |
|
883 |
+
.mCS-3d-dark.mCSB_scrollTools .mCSB_buttonRight{ background-position: -120px -128px; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
884 |
|
885 |
+
/* ---------------------------------------- */
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
886 |
|
887 |
|
|
|
|
|
|
|
|
|
888 |
|
889 |
+
/* theme: "3d-thick", "3d-thick-dark" */
|
|
|
|
|
|
|
890 |
|
891 |
+
.mCS-3d-thick.mCSB_scrollTools,
|
892 |
+
.mCS-3d-thick-dark.mCSB_scrollTools{
|
893 |
+
opacity: 1;
|
894 |
+
filter: "alpha(opacity=30)"; -ms-filter: "alpha(opacity=30)";
|
895 |
+
}
|
896 |
|
897 |
+
.mCS-3d-thick.mCSB_scrollTools,
|
898 |
+
.mCS-3d-thick-dark.mCSB_scrollTools,
|
899 |
+
.mCS-3d-thick.mCSB_scrollTools .mCSB_draggerContainer,
|
900 |
+
.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_draggerContainer{ -webkit-border-radius: 7px; -moz-border-radius: 7px; border-radius: 7px; }
|
901 |
|
902 |
+
.mCS-3d-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
|
903 |
+
.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px; }
|
904 |
|
905 |
+
.mCSB_inside + .mCS-3d-thick.mCSB_scrollTools_vertical,
|
906 |
+
.mCSB_inside + .mCS-3d-thick-dark.mCSB_scrollTools_vertical{ right: 1px; }
|
907 |
|
908 |
+
.mCS-3d-thick.mCSB_scrollTools_vertical,
|
909 |
+
.mCS-3d-thick-dark.mCSB_scrollTools_vertical{ box-shadow: inset 1px 0 1px rgba(0,0,0,0.1), inset 0 0 14px rgba(0,0,0,0.5); }
|
910 |
|
911 |
+
.mCS-3d-thick.mCSB_scrollTools_horizontal,
|
912 |
+
.mCS-3d-thick-dark.mCSB_scrollTools_horizontal{
|
913 |
+
bottom: 1px;
|
914 |
+
box-shadow: inset 0 1px 1px rgba(0,0,0,0.1), inset 0 0 14px rgba(0,0,0,0.5);
|
915 |
+
}
|
916 |
|
917 |
+
.mCS-3d-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
|
918 |
+
.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{
|
919 |
+
box-shadow: inset 1px 0 0 rgba(255,255,255,0.4);
|
920 |
+
width: 12px;
|
921 |
+
margin: 2px;
|
922 |
+
position: absolute;
|
923 |
+
height: auto;
|
924 |
+
top: 0;
|
925 |
+
bottom: 0;
|
926 |
+
left: 0;
|
927 |
+
right: 0;
|
928 |
+
}
|
929 |
|
930 |
+
.mCS-3d-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,
|
931 |
+
.mCS-3d-thick-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{ box-shadow: inset 0 1px 0 rgba(255,255,255,0.4); }
|
932 |
|
933 |
+
.mCS-3d-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
|
934 |
+
.mCS-3d-thick.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar,
|
935 |
+
.mCS-3d-thick.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
|
936 |
+
.mCS-3d-thick.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #555; }
|
937 |
|
938 |
+
.mCS-3d-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,
|
939 |
+
.mCS-3d-thick-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{
|
940 |
+
height: 12px;
|
941 |
+
width: auto;
|
942 |
+
}
|
943 |
|
944 |
+
.mCS-3d-thick.mCSB_scrollTools .mCSB_draggerContainer{
|
945 |
+
background-color: #000; background-color: rgba(0,0,0,0.05);
|
946 |
+
box-shadow: inset 1px 1px 16px rgba(0,0,0,0.1);
|
947 |
+
}
|
|
|
|
|
948 |
|
949 |
+
.mCS-3d-thick.mCSB_scrollTools .mCSB_draggerRail{ background-color: transparent; }
|
|
|
|
|
|
|
|
|
|
|
950 |
|
951 |
+
.mCS-3d-thick.mCSB_scrollTools .mCSB_buttonUp{ background-position: -32px -72px; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
952 |
|
953 |
+
.mCS-3d-thick.mCSB_scrollTools .mCSB_buttonDown{ background-position: -32px -92px; }
|
954 |
|
955 |
+
.mCS-3d-thick.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -40px -112px; }
|
|
|
956 |
|
957 |
+
.mCS-3d-thick.mCSB_scrollTools .mCSB_buttonRight{ background-position: -40px -128px; }
|
958 |
|
|
|
|
|
|
|
|
|
959 |
|
960 |
+
/* theme: "3d-thick-dark" */
|
|
|
|
|
|
|
961 |
|
962 |
+
.mCS-3d-thick-dark.mCSB_scrollTools{ box-shadow: inset 0 0 14px rgba(0,0,0,0.2); }
|
963 |
|
964 |
+
.mCS-3d-thick-dark.mCSB_scrollTools_horizontal{ box-shadow: inset 0 1px 1px rgba(0,0,0,0.1), inset 0 0 14px rgba(0,0,0,0.2); }
|
|
|
965 |
|
966 |
+
.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ box-shadow: inset 1px 0 0 rgba(255,255,255,0.4), inset -1px 0 0 rgba(0,0,0,0.2); }
|
967 |
|
968 |
+
.mCS-3d-thick-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{ box-shadow: inset 0 1px 0 rgba(255,255,255,0.4), inset 0 -1px 0 rgba(0,0,0,0.2); }
|
969 |
|
970 |
+
.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
|
971 |
+
.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar,
|
972 |
+
.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
|
973 |
+
.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #777; }
|
974 |
|
975 |
+
.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_draggerContainer{
|
976 |
+
background-color: #fff; background-color: rgba(0,0,0,0.05);
|
977 |
+
box-shadow: inset 1px 1px 16px rgba(0,0,0,0.1);
|
978 |
+
}
|
979 |
|
980 |
+
.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_draggerRail{ background-color: transparent; }
|
|
|
|
|
|
|
|
|
|
|
981 |
|
982 |
+
.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_buttonUp{ background-position: -112px -72px; }
|
|
|
|
|
|
|
|
|
|
|
983 |
|
984 |
+
.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_buttonDown{ background-position: -112px -92px; }
|
|
|
|
|
|
|
|
|
|
|
985 |
|
986 |
+
.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -120px -112px; }
|
|
|
|
|
|
|
|
|
|
|
987 |
|
988 |
+
.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_buttonRight{ background-position: -120px -128px; }
|
989 |
|
990 |
+
/* ---------------------------------------- */
|
|
|
991 |
|
|
|
992 |
|
|
|
|
|
|
|
|
|
993 |
|
994 |
+
/* theme: "minimal", "minimal-dark" */
|
|
|
|
|
|
|
995 |
|
996 |
+
.mCSB_outside + .mCS-minimal.mCSB_scrollTools_vertical,
|
997 |
+
.mCSB_outside + .mCS-minimal-dark.mCSB_scrollTools_vertical{
|
998 |
+
right: 0;
|
999 |
+
margin: 12px 0;
|
1000 |
+
}
|
1001 |
|
1002 |
+
.mCustomScrollBox.mCS-minimal + .mCSB_scrollTools.mCSB_scrollTools_horizontal,
|
1003 |
+
.mCustomScrollBox.mCS-minimal + .mCSB_scrollTools + .mCSB_scrollTools.mCSB_scrollTools_horizontal,
|
1004 |
+
.mCustomScrollBox.mCS-minimal-dark + .mCSB_scrollTools.mCSB_scrollTools_horizontal,
|
1005 |
+
.mCustomScrollBox.mCS-minimal-dark + .mCSB_scrollTools + .mCSB_scrollTools.mCSB_scrollTools_horizontal{
|
1006 |
+
bottom: 0;
|
1007 |
+
margin: 0 12px;
|
1008 |
+
}
|
1009 |
|
1010 |
+
/* RTL direction/left-side scrollbar */
|
1011 |
+
.mCS-dir-rtl > .mCSB_outside + .mCS-minimal.mCSB_scrollTools_vertical,
|
1012 |
+
.mCS-dir-rtl > .mCSB_outside + .mCS-minimal-dark.mCSB_scrollTools_vertical{
|
1013 |
+
left: 0;
|
1014 |
+
right: auto;
|
1015 |
+
}
|
1016 |
|
1017 |
+
.mCS-minimal.mCSB_scrollTools .mCSB_draggerRail,
|
1018 |
+
.mCS-minimal-dark.mCSB_scrollTools .mCSB_draggerRail{ background-color: transparent; }
|
1019 |
|
1020 |
+
.mCS-minimal.mCSB_scrollTools_vertical .mCSB_dragger,
|
1021 |
+
.mCS-minimal-dark.mCSB_scrollTools_vertical .mCSB_dragger{ height: 50px; }
|
1022 |
|
1023 |
+
.mCS-minimal.mCSB_scrollTools_horizontal .mCSB_dragger,
|
1024 |
+
.mCS-minimal-dark.mCSB_scrollTools_horizontal .mCSB_dragger{ width: 50px; }
|
1025 |
|
1026 |
+
.mCS-minimal.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{
|
1027 |
+
background-color: #fff; background-color: rgba(255,255,255,0.2);
|
1028 |
+
filter: "alpha(opacity=20)"; -ms-filter: "alpha(opacity=20)";
|
1029 |
+
}
|
1030 |
|
1031 |
+
.mCS-minimal.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
|
1032 |
+
.mCS-minimal.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{
|
1033 |
+
background-color: #fff; background-color: rgba(255,255,255,0.5);
|
1034 |
+
filter: "alpha(opacity=50)"; -ms-filter: "alpha(opacity=50)";
|
1035 |
+
}
|
1036 |
|
|
|
|
|
1037 |
|
1038 |
+
/* theme: "minimal-dark" */
|
|
|
|
|
|
|
|
|
|
|
1039 |
|
1040 |
+
.mCS-minimal-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{
|
1041 |
+
background-color: #000; background-color: rgba(0,0,0,0.2);
|
1042 |
+
filter: "alpha(opacity=20)"; -ms-filter: "alpha(opacity=20)";
|
1043 |
+
}
|
1044 |
|
1045 |
+
.mCS-minimal-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
|
1046 |
+
.mCS-minimal-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{
|
1047 |
+
background-color: #000; background-color: rgba(0,0,0,0.5);
|
1048 |
+
filter: "alpha(opacity=50)"; -ms-filter: "alpha(opacity=50)";
|
1049 |
+
}
|
1050 |
|
1051 |
+
/* ---------------------------------------- */
|
1052 |
|
|
|
1053 |
|
|
|
1054 |
|
1055 |
+
/* theme "light-3", "dark-3" */
|
|
|
1056 |
|
1057 |
+
.mCS-light-3.mCSB_scrollTools .mCSB_draggerRail,
|
1058 |
+
.mCS-dark-3.mCSB_scrollTools .mCSB_draggerRail{
|
1059 |
+
width: 6px;
|
1060 |
+
background-color: #000; background-color: rgba(0,0,0,0.2);
|
1061 |
+
}
|
1062 |
|
1063 |
+
.mCS-light-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
|
1064 |
+
.mCS-dark-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ width: 6px; }
|
1065 |
|
1066 |
+
.mCS-light-3.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,
|
1067 |
+
.mCS-dark-3.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,
|
1068 |
+
.mCS-light-3.mCSB_scrollTools_horizontal .mCSB_draggerRail,
|
1069 |
+
.mCS-dark-3.mCSB_scrollTools_horizontal .mCSB_draggerRail{
|
1070 |
+
width: 100%;
|
1071 |
+
height: 6px;
|
1072 |
+
margin: 5px 0;
|
1073 |
+
}
|
1074 |
|
1075 |
+
.mCS-light-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail,
|
1076 |
+
.mCS-light-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail,
|
1077 |
+
.mCS-dark-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail,
|
1078 |
+
.mCS-dark-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{
|
1079 |
+
width: 12px;
|
1080 |
+
}
|
1081 |
|
1082 |
+
.mCS-light-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail,
|
1083 |
+
.mCS-light-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail,
|
1084 |
+
.mCS-dark-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail,
|
1085 |
+
.mCS-dark-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{
|
1086 |
+
height: 12px;
|
1087 |
+
margin: 2px 0;
|
1088 |
+
}
|
1089 |
|
1090 |
+
.mCS-light-3.mCSB_scrollTools .mCSB_buttonUp{ background-position: -32px -72px; }
|
|
|
|
|
|
|
1091 |
|
1092 |
+
.mCS-light-3.mCSB_scrollTools .mCSB_buttonDown{ background-position: -32px -92px; }
|
|
|
|
|
|
|
|
|
|
|
|
|
1093 |
|
1094 |
+
.mCS-light-3.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -40px -112px; }
|
|
|
|
|
|
|
1095 |
|
1096 |
+
.mCS-light-3.mCSB_scrollTools .mCSB_buttonRight{ background-position: -40px -128px; }
|
1097 |
+
|
1098 |
+
|
1099 |
+
/* theme "dark-3" */
|
|
|
|
|
|
|
1100 |
|
1101 |
+
.mCS-dark-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.75); }
|
1102 |
+
|
1103 |
+
.mCS-dark-3.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.85); }
|
|
|
|
|
|
|
|
|
|
|
1104 |
|
1105 |
+
.mCS-dark-3.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
|
1106 |
+
.mCS-dark-3.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.9); }
|
|
|
|
|
1107 |
|
1108 |
+
.mCS-dark-3.mCSB_scrollTools .mCSB_draggerRail{ background-color: #000; background-color: rgba(0,0,0,0.1); }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1109 |
|
1110 |
+
.mCS-dark-3.mCSB_scrollTools .mCSB_buttonUp{ background-position: -112px -72px; }
|
|
|
|
|
|
|
|
|
|
|
|
|
1111 |
|
1112 |
+
.mCS-dark-3.mCSB_scrollTools .mCSB_buttonDown{ background-position: -112px -92px; }
|
1113 |
|
1114 |
+
.mCS-dark-3.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -120px -112px; }
|
|
|
1115 |
|
1116 |
+
.mCS-dark-3.mCSB_scrollTools .mCSB_buttonRight{ background-position: -120px -128px; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1117 |
|
1118 |
+
/* ---------------------------------------- */
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1119 |
|
|
|
|
|
|
|
|
|
|
|
1120 |
|
|
|
|
|
|
|
|
|
1121 |
|
1122 |
+
/* theme "inset", "inset-dark", "inset-2", "inset-2-dark", "inset-3", "inset-3-dark" */
|
1123 |
|
1124 |
+
.mCS-inset.mCSB_scrollTools .mCSB_draggerRail,
|
1125 |
+
.mCS-inset-dark.mCSB_scrollTools .mCSB_draggerRail,
|
1126 |
+
.mCS-inset-2.mCSB_scrollTools .mCSB_draggerRail,
|
1127 |
+
.mCS-inset-2-dark.mCSB_scrollTools .mCSB_draggerRail,
|
1128 |
+
.mCS-inset-3.mCSB_scrollTools .mCSB_draggerRail,
|
1129 |
+
.mCS-inset-3-dark.mCSB_scrollTools .mCSB_draggerRail{
|
1130 |
+
width: 12px;
|
1131 |
+
background-color: #000; background-color: rgba(0,0,0,0.2);
|
1132 |
+
}
|
1133 |
|
1134 |
+
.mCS-inset.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
|
1135 |
+
.mCS-inset-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
|
1136 |
+
.mCS-inset-2.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
|
1137 |
+
.mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
|
1138 |
+
.mCS-inset-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
|
1139 |
+
.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{
|
1140 |
+
width: 6px;
|
1141 |
+
margin: 3px 5px;
|
1142 |
+
position: absolute;
|
1143 |
+
height: auto;
|
1144 |
+
top: 0;
|
1145 |
+
bottom: 0;
|
1146 |
+
left: 0;
|
1147 |
+
right: 0;
|
1148 |
+
}
|
1149 |
|
1150 |
+
.mCS-inset.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,
|
1151 |
+
.mCS-inset-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,
|
1152 |
+
.mCS-inset-2.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,
|
1153 |
+
.mCS-inset-2-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,
|
1154 |
+
.mCS-inset-3.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,
|
1155 |
+
.mCS-inset-3-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{
|
1156 |
+
height: 6px;
|
1157 |
+
margin: 5px 3px;
|
1158 |
+
position: absolute;
|
1159 |
+
width: auto;
|
1160 |
+
top: 0;
|
1161 |
+
bottom: 0;
|
1162 |
+
left: 0;
|
1163 |
+
right: 0;
|
1164 |
+
}
|
1165 |
|
1166 |
+
.mCS-inset.mCSB_scrollTools_horizontal .mCSB_draggerRail,
|
1167 |
+
.mCS-inset-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail,
|
1168 |
+
.mCS-inset-2.mCSB_scrollTools_horizontal .mCSB_draggerRail,
|
1169 |
+
.mCS-inset-2-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail,
|
1170 |
+
.mCS-inset-3.mCSB_scrollTools_horizontal .mCSB_draggerRail,
|
1171 |
+
.mCS-inset-3-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail{
|
1172 |
+
width: 100%;
|
1173 |
+
height: 12px;
|
1174 |
+
margin: 2px 0;
|
1175 |
+
}
|
1176 |
|
1177 |
+
.mCS-inset.mCSB_scrollTools .mCSB_buttonUp,
|
1178 |
+
.mCS-inset-2.mCSB_scrollTools .mCSB_buttonUp,
|
1179 |
+
.mCS-inset-3.mCSB_scrollTools .mCSB_buttonUp{ background-position: -32px -72px; }
|
1180 |
|
1181 |
+
.mCS-inset.mCSB_scrollTools .mCSB_buttonDown,
|
1182 |
+
.mCS-inset-2.mCSB_scrollTools .mCSB_buttonDown,
|
1183 |
+
.mCS-inset-3.mCSB_scrollTools .mCSB_buttonDown{ background-position: -32px -92px; }
|
|
|
1184 |
|
1185 |
+
.mCS-inset.mCSB_scrollTools .mCSB_buttonLeft,
|
1186 |
+
.mCS-inset-2.mCSB_scrollTools .mCSB_buttonLeft,
|
1187 |
+
.mCS-inset-3.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -40px -112px; }
|
|
|
1188 |
|
1189 |
+
.mCS-inset.mCSB_scrollTools .mCSB_buttonRight,
|
1190 |
+
.mCS-inset-2.mCSB_scrollTools .mCSB_buttonRight,
|
1191 |
+
.mCS-inset-3.mCSB_scrollTools .mCSB_buttonRight{ background-position: -40px -128px; }
|
1192 |
|
|
|
1193 |
|
1194 |
+
/* theme "inset-dark", "inset-2-dark", "inset-3-dark" */
|
1195 |
|
1196 |
+
.mCS-inset-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
|
1197 |
+
.mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
|
1198 |
+
.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.75); }
|
|
|
|
|
1199 |
|
1200 |
+
.mCS-inset-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar,
|
1201 |
+
.mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar,
|
1202 |
+
.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.85); }
|
|
|
|
|
|
|
|
|
1203 |
|
1204 |
+
.mCS-inset-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
|
1205 |
+
.mCS-inset-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,
|
1206 |
+
.mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
|
1207 |
+
.mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,
|
1208 |
+
.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
|
1209 |
+
.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.9); }
|
1210 |
|
1211 |
+
.mCS-inset-dark.mCSB_scrollTools .mCSB_draggerRail,
|
1212 |
+
.mCS-inset-2-dark.mCSB_scrollTools .mCSB_draggerRail,
|
1213 |
+
.mCS-inset-3-dark.mCSB_scrollTools .mCSB_draggerRail{ background-color: #000; background-color: rgba(0,0,0,0.1); }
|
1214 |
|
1215 |
+
.mCS-inset-dark.mCSB_scrollTools .mCSB_buttonUp,
|
1216 |
+
.mCS-inset-2-dark.mCSB_scrollTools .mCSB_buttonUp,
|
1217 |
+
.mCS-inset-3-dark.mCSB_scrollTools .mCSB_buttonUp{ background-position: -112px -72px; }
|
1218 |
+
|
1219 |
+
.mCS-inset-dark.mCSB_scrollTools .mCSB_buttonDown,
|
1220 |
+
.mCS-inset-2-dark.mCSB_scrollTools .mCSB_buttonDown,
|
1221 |
+
.mCS-inset-3-dark.mCSB_scrollTools .mCSB_buttonDown{ background-position: -112px -92px; }
|
1222 |
+
|
1223 |
+
.mCS-inset-dark.mCSB_scrollTools .mCSB_buttonLeft,
|
1224 |
+
.mCS-inset-2-dark.mCSB_scrollTools .mCSB_buttonLeft,
|
1225 |
+
.mCS-inset-3-dark.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -120px -112px; }
|
1226 |
+
|
1227 |
+
.mCS-inset-dark.mCSB_scrollTools .mCSB_buttonRight,
|
1228 |
+
.mCS-inset-2-dark.mCSB_scrollTools .mCSB_buttonRight,
|
1229 |
+
.mCS-inset-3-dark.mCSB_scrollTools .mCSB_buttonRight{ background-position: -120px -128px; }
|
1230 |
+
|
1231 |
+
|
1232 |
+
/* theme "inset-2", "inset-2-dark" */
|
1233 |
+
|
1234 |
+
.mCS-inset-2.mCSB_scrollTools .mCSB_draggerRail,
|
1235 |
+
.mCS-inset-2-dark.mCSB_scrollTools .mCSB_draggerRail{
|
1236 |
+
background-color: transparent;
|
1237 |
+
border-width: 1px;
|
1238 |
+
border-style: solid;
|
1239 |
+
border-color: #fff;
|
1240 |
+
border-color: rgba(255,255,255,0.2);
|
1241 |
+
-webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box;
|
1242 |
+
}
|
1243 |
|
1244 |
+
.mCS-inset-2-dark.mCSB_scrollTools .mCSB_draggerRail{ border-color: #000; border-color: rgba(0,0,0,0.2); }
|
|
|
1245 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1246 |
|
1247 |
+
/* theme "inset-3", "inset-3-dark" */
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1248 |
|
1249 |
+
.mCS-inset-3.mCSB_scrollTools .mCSB_draggerRail{ background-color: #fff; background-color: rgba(255,255,255,0.6); }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1250 |
|
1251 |
+
.mCS-inset-3-dark.mCSB_scrollTools .mCSB_draggerRail{ background-color: #000; background-color: rgba(0,0,0,0.6); }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1252 |
|
1253 |
+
.mCS-inset-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.75); }
|
|
|
|
|
1254 |
|
1255 |
+
.mCS-inset-3.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.85); }
|
1256 |
|
1257 |
+
.mCS-inset-3.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
|
1258 |
+
.mCS-inset-3.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.9); }
|
1259 |
|
1260 |
+
.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ background-color: #fff; background-color: rgba(255,255,255,0.75); }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1261 |
|
1262 |
+
.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{ background-color: #fff; background-color: rgba(255,255,255,0.85); }
|
1263 |
|
1264 |
+
.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
|
1265 |
+
.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #fff; background-color: rgba(255,255,255,0.9); }
|
1266 |
|
1267 |
+
/* ---------------------------------------- */
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/js/um-account.js
CHANGED
@@ -1,12 +1,14 @@
|
|
1 |
jQuery(document).ready(function() {
|
2 |
|
3 |
var current_tab = jQuery('.um-account-main').attr('data-current_tab');
|
4 |
-
|
5 |
-
if
|
6 |
-
jQuery('.um-account-tab[data-tab='+current_tab+']').show();
|
|
|
|
|
7 |
}
|
8 |
|
9 |
-
jQuery(document).on('click','.um-account-side li a',function(e){
|
10 |
e.preventDefault();
|
11 |
var link = jQuery(this);
|
12 |
|
@@ -16,32 +18,35 @@ jQuery(document).ready(function() {
|
|
16 |
var url_ = jQuery(this).attr('href');
|
17 |
var tab_ = jQuery(this).attr('data-tab');
|
18 |
|
19 |
-
jQuery(
|
20 |
|
21 |
window.history.pushState("", "", url_);
|
22 |
-
|
23 |
jQuery('.um-account-tab').hide();
|
24 |
-
jQuery('.um-account-tab[data-tab='+tab_+']').fadeIn();
|
25 |
-
|
|
|
|
|
|
|
26 |
jQuery('.um-account-nav a').removeClass('current');
|
27 |
-
jQuery('.um-account-nav a[data-tab='+tab_+']').addClass('current');
|
28 |
|
29 |
return false;
|
30 |
});
|
31 |
-
});
|
32 |
|
33 |
-
|
|
|
34 |
e.preventDefault();
|
35 |
-
|
36 |
var tab_ = jQuery(this).attr('data-tab');
|
37 |
var div = jQuery(this).parents('div');
|
38 |
var link = jQuery(this);
|
39 |
|
40 |
-
|
41 |
-
jQuery(
|
42 |
-
|
43 |
jQuery('.um-account-tab').hide();
|
44 |
-
|
45 |
if ( link.hasClass('current') ) {
|
46 |
div.next('.um-account-tab').slideUp();
|
47 |
link.removeClass('current');
|
@@ -51,9 +56,12 @@ jQuery(document).ready(function() {
|
|
51 |
link.addClass('current');
|
52 |
}
|
53 |
|
|
|
|
|
|
|
54 |
jQuery('.um-account-side li a').removeClass('current');
|
55 |
-
jQuery('.um-account-side li a[data-tab='+tab_+']').addClass('current');
|
56 |
|
57 |
return false;
|
58 |
});
|
59 |
-
|
1 |
jQuery(document).ready(function() {
|
2 |
|
3 |
var current_tab = jQuery('.um-account-main').attr('data-current_tab');
|
4 |
+
|
5 |
+
if ( current_tab ) {
|
6 |
+
jQuery('.um-account-tab[data-tab="'+current_tab+'"]').show();
|
7 |
+
|
8 |
+
jQuery('.um-account-tab:not(:visible)').find( 'input:not(:disabled)' ).addClass('um_account_inactive').prop( 'disabled', true ).attr( 'disabled', true );
|
9 |
}
|
10 |
|
11 |
+
jQuery( document.body ).on( 'click', '.um-account-side li a', function(e) {
|
12 |
e.preventDefault();
|
13 |
var link = jQuery(this);
|
14 |
|
18 |
var url_ = jQuery(this).attr('href');
|
19 |
var tab_ = jQuery(this).attr('data-tab');
|
20 |
|
21 |
+
jQuery('input[id="_um_account_tab"]:hidden').val( tab_ );
|
22 |
|
23 |
window.history.pushState("", "", url_);
|
24 |
+
|
25 |
jQuery('.um-account-tab').hide();
|
26 |
+
jQuery('.um-account-tab[data-tab="'+tab_+'"]').fadeIn();
|
27 |
+
|
28 |
+
jQuery('.um-account-tab:visible').find( 'input.um_account_inactive:disabled' ).removeClass('um_account_inactive').prop( 'disabled', false ).attr( 'disabled', false );
|
29 |
+
jQuery('.um-account-tab:not(:visible)').find( 'input:not(:disabled)' ).addClass('um_account_inactive').prop( 'disabled', true ).attr( 'disabled', true );
|
30 |
+
|
31 |
jQuery('.um-account-nav a').removeClass('current');
|
32 |
+
jQuery('.um-account-nav a[data-tab="'+tab_+'"]').addClass('current');
|
33 |
|
34 |
return false;
|
35 |
});
|
|
|
36 |
|
37 |
+
|
38 |
+
jQuery(document.body).on( 'click', '.um-account-nav a', function(e) {
|
39 |
e.preventDefault();
|
40 |
+
|
41 |
var tab_ = jQuery(this).attr('data-tab');
|
42 |
var div = jQuery(this).parents('div');
|
43 |
var link = jQuery(this);
|
44 |
|
45 |
+
|
46 |
+
jQuery('input[id="_um_account_tab"]:hidden').val( tab_ );
|
47 |
+
|
48 |
jQuery('.um-account-tab').hide();
|
49 |
+
|
50 |
if ( link.hasClass('current') ) {
|
51 |
div.next('.um-account-tab').slideUp();
|
52 |
link.removeClass('current');
|
56 |
link.addClass('current');
|
57 |
}
|
58 |
|
59 |
+
jQuery('.um-account-tab:visible').find( 'input.um_account_inactive:disabled' ).removeClass('um_account_inactive').prop( 'disabled', false ).attr( 'disabled', false );
|
60 |
+
jQuery('.um-account-tab:not(:visible)').find( 'input:not(:disabled)' ).addClass('um_account_inactive').prop( 'disabled', true ).attr( 'disabled', true );
|
61 |
+
|
62 |
jQuery('.um-account-side li a').removeClass('current');
|
63 |
+
jQuery('.um-account-side li a[data-tab="'+tab_+'"]').addClass('current');
|
64 |
|
65 |
return false;
|
66 |
});
|
67 |
+
});
|
assets/js/um-account.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
jQuery(document).ready(function(){var a=jQuery(".um-account-main").attr("data-current_tab");a&&jQuery(
|
1 |
+
jQuery(document).ready(function(){var a=jQuery(".um-account-main").attr("data-current_tab");a&&(jQuery('.um-account-tab[data-tab="'+a+'"]').show(),jQuery(".um-account-tab:not(:visible)").find("input:not(:disabled)").addClass("um_account_inactive").prop("disabled",!0).attr("disabled",!0)),jQuery(document.body).on("click",".um-account-side li a",function(a){a.preventDefault();var t=jQuery(this);t.parents("ul").find("li a").removeClass("current"),t.addClass("current");var u=jQuery(this).attr("href"),e=jQuery(this).attr("data-tab");return jQuery('input[id="_um_account_tab"]:hidden').val(e),window.history.pushState("","",u),jQuery(".um-account-tab").hide(),jQuery('.um-account-tab[data-tab="'+e+'"]').fadeIn(),jQuery(".um-account-tab:visible").find("input.um_account_inactive:disabled").removeClass("um_account_inactive").prop("disabled",!1).attr("disabled",!1),jQuery(".um-account-tab:not(:visible)").find("input:not(:disabled)").addClass("um_account_inactive").prop("disabled",!0).attr("disabled",!0),jQuery(".um-account-nav a").removeClass("current"),jQuery('.um-account-nav a[data-tab="'+e+'"]').addClass("current"),!1}),jQuery(document.body).on("click",".um-account-nav a",function(a){a.preventDefault();var t=jQuery(this).attr("data-tab"),u=jQuery(this).parents("div"),e=jQuery(this);return jQuery('input[id="_um_account_tab"]:hidden').val(t),jQuery(".um-account-tab").hide(),e.hasClass("current")?(u.next(".um-account-tab").slideUp(),e.removeClass("current")):(u.next(".um-account-tab").slideDown(),e.parents("div").find("a").removeClass("current"),e.addClass("current")),jQuery(".um-account-tab:visible").find("input.um_account_inactive:disabled").removeClass("um_account_inactive").prop("disabled",!1).attr("disabled",!1),jQuery(".um-account-tab:not(:visible)").find("input:not(:disabled)").addClass("um_account_inactive").prop("disabled",!0).attr("disabled",!0),jQuery(".um-account-side li a").removeClass("current"),jQuery('.um-account-side li a[data-tab="'+t+'"]').addClass("current"),!1})});
|
assets/js/um-modal.js
CHANGED
@@ -169,7 +169,7 @@ jQuery(document).ready(function() {
|
|
169 |
jQuery(document).on('click', 'a[data-modal^="um_"], span[data-modal^="um_"]', function(e){
|
170 |
|
171 |
var modal_id = jQuery(this).attr('data-modal');
|
172 |
-
|
173 |
var size = 'normal';
|
174 |
|
175 |
if ( jQuery(this).data('modal-size') ) {
|
169 |
jQuery(document).on('click', 'a[data-modal^="um_"], span[data-modal^="um_"]', function(e){
|
170 |
|
171 |
var modal_id = jQuery(this).attr('data-modal');
|
172 |
+
|
173 |
var size = 'normal';
|
174 |
|
175 |
if ( jQuery(this).data('modal-size') ) {
|
assets/js/um-profile.js
CHANGED
@@ -7,41 +7,40 @@ jQuery(document).ready(function() {
|
|
7 |
this_row.remove();
|
8 |
}
|
9 |
});
|
10 |
-
|
11 |
if ( jQuery('.um-profile.um-viewing .um-profile-body').length && jQuery('.um-profile.um-viewing .um-profile-body').find('.um-field').length == 0 ) {
|
12 |
jQuery('.um-row-heading,.um-row').remove();
|
13 |
jQuery('.um-profile-note').show();
|
14 |
}
|
15 |
-
|
16 |
-
jQuery(document).on('click', '.um-profile-save', function(e){
|
17 |
e.preventDefault();
|
18 |
jQuery(this).parents('.um').find('form').submit();
|
19 |
return false;
|
20 |
});
|
21 |
-
|
22 |
-
jQuery(document).on('click', '.um-profile-edit-a', function(e){
|
23 |
jQuery(this).addClass('active');
|
24 |
});
|
25 |
|
26 |
-
|
27 |
e.preventDefault();
|
28 |
-
return false;
|
29 |
});
|
30 |
|
31 |
-
jQuery(document).on('click', '.um-photo-modal', function(e){
|
32 |
e.preventDefault();
|
33 |
var photo_src = jQuery(this).attr('data-src');
|
34 |
um_new_modal('um_view_photo', 'fit', true, photo_src );
|
35 |
return false;
|
36 |
});
|
37 |
|
38 |
-
jQuery(document).on('click', '.um-reset-profile-photo', function(e){
|
39 |
-
|
40 |
jQuery('.um-profile-photo-img img').attr('src', jQuery(this).attr('data-default_src') );
|
41 |
-
|
42 |
user_id = jQuery(this).attr('data-user_id');
|
43 |
metakey = 'profile_photo';
|
44 |
-
|
45 |
jQuery.ajax({
|
46 |
url: wp.ajax.settings.url,
|
47 |
type: 'post',
|
@@ -52,20 +51,20 @@ jQuery(document).ready(function() {
|
|
52 |
nonce: um_scripts.nonce
|
53 |
}
|
54 |
});
|
55 |
-
|
56 |
});
|
57 |
|
58 |
-
jQuery(document).on('click', '.um-reset-cover-photo', function(e){
|
59 |
var obj = jQuery(this);
|
60 |
jQuery('.um-cover-overlay').hide();
|
61 |
jQuery('.um-cover-e').html('<a href="#" class="um-cover-add um-manual-trigger" data-parent=".um-cover" data-child=".um-btn-auto-width"><span class="um-cover-add-i"><i class="um-icon-plus um-tip-n" title="Upload a cover photo"></i></span></a>');
|
62 |
jQuery('.um-dropdown').hide();
|
63 |
|
64 |
um_responsive();
|
65 |
-
|
66 |
user_id = jQuery(this).attr('data-user_id');
|
67 |
metakey = 'cover_photo';
|
68 |
-
|
69 |
jQuery.ajax({
|
70 |
url: wp.ajax.settings.url,
|
71 |
type: 'post',
|
@@ -79,35 +78,56 @@ jQuery(document).ready(function() {
|
|
79 |
obj.hide();
|
80 |
}
|
81 |
});
|
82 |
-
|
83 |
});
|
84 |
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
|
|
96 |
}
|
97 |
-
}
|
98 |
|
99 |
-
um_update_bio_countdown();
|
100 |
-
|
101 |
-
jQuery('textarea[id=um-meta-bio]').keyup(um_update_bio_countdown);
|
102 |
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
111 |
|
112 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
113 |
});
|
7 |
this_row.remove();
|
8 |
}
|
9 |
});
|
10 |
+
|
11 |
if ( jQuery('.um-profile.um-viewing .um-profile-body').length && jQuery('.um-profile.um-viewing .um-profile-body').find('.um-field').length == 0 ) {
|
12 |
jQuery('.um-row-heading,.um-row').remove();
|
13 |
jQuery('.um-profile-note').show();
|
14 |
}
|
15 |
+
|
16 |
+
jQuery( document.body ).on( 'click', '.um-profile-save', function(e){
|
17 |
e.preventDefault();
|
18 |
jQuery(this).parents('.um').find('form').submit();
|
19 |
return false;
|
20 |
});
|
21 |
+
|
22 |
+
jQuery( document.body ).on( 'click', '.um-profile-edit-a', function(e){
|
23 |
jQuery(this).addClass('active');
|
24 |
});
|
25 |
|
26 |
+
jQuery( document.body ).on( 'click', '.um-cover a.um-cover-add, .um-photo a', function(e){
|
27 |
e.preventDefault();
|
|
|
28 |
});
|
29 |
|
30 |
+
jQuery( document.body ).on('click', '.um-photo-modal', function(e){
|
31 |
e.preventDefault();
|
32 |
var photo_src = jQuery(this).attr('data-src');
|
33 |
um_new_modal('um_view_photo', 'fit', true, photo_src );
|
34 |
return false;
|
35 |
});
|
36 |
|
37 |
+
jQuery(document.body).on('click', '.um-reset-profile-photo', function(e){
|
38 |
+
|
39 |
jQuery('.um-profile-photo-img img').attr('src', jQuery(this).attr('data-default_src') );
|
40 |
+
|
41 |
user_id = jQuery(this).attr('data-user_id');
|
42 |
metakey = 'profile_photo';
|
43 |
+
|
44 |
jQuery.ajax({
|
45 |
url: wp.ajax.settings.url,
|
46 |
type: 'post',
|
51 |
nonce: um_scripts.nonce
|
52 |
}
|
53 |
});
|
54 |
+
|
55 |
});
|
56 |
|
57 |
+
jQuery(document.body).on('click', '.um-reset-cover-photo', function(e){
|
58 |
var obj = jQuery(this);
|
59 |
jQuery('.um-cover-overlay').hide();
|
60 |
jQuery('.um-cover-e').html('<a href="#" class="um-cover-add um-manual-trigger" data-parent=".um-cover" data-child=".um-btn-auto-width"><span class="um-cover-add-i"><i class="um-icon-plus um-tip-n" title="Upload a cover photo"></i></span></a>');
|
61 |
jQuery('.um-dropdown').hide();
|
62 |
|
63 |
um_responsive();
|
64 |
+
|
65 |
user_id = jQuery(this).attr('data-user_id');
|
66 |
metakey = 'cover_photo';
|
67 |
+
|
68 |
jQuery.ajax({
|
69 |
url: wp.ajax.settings.url,
|
70 |
type: 'post',
|
78 |
obj.hide();
|
79 |
}
|
80 |
});
|
81 |
+
|
82 |
});
|
83 |
|
84 |
+
/*function um_update_bio_countdown() {
|
85 |
+
//
|
86 |
+
jQuery(this)
|
87 |
+
if ( typeof jQuery('textarea[id="um-meta-bio"]').val() !== 'undefined' ){
|
88 |
+
var um_bio_limit = jQuery('textarea[id="um-meta-bio"]').attr( "data-character-limit" );
|
89 |
+
var remaining = um_bio_limit - jQuery('textarea[id="um-meta-bio"]').val().length;
|
90 |
+
jQuery('span.um-meta-bio-character span.um-bio-limit').text( remaining );
|
91 |
+
if ( remaining < 5 ) {
|
92 |
+
jQuery('span.um-meta-bio-character').css('color','red');
|
93 |
+
} else {
|
94 |
+
jQuery('span.um-meta-bio-character').css('color','');
|
95 |
+
}
|
96 |
}
|
97 |
+
}*/
|
98 |
|
99 |
+
//um_update_bio_countdown();
|
100 |
+
//jQuery( 'textarea[id="um-meta-bio"]' ).change( um_update_bio_countdown ).keyup( um_update_bio_countdown ).trigger('change');
|
|
|
101 |
|
102 |
+
// Bio characters limit
|
103 |
+
jQuery( document.body ).on( 'change, keyup', 'textarea[id="um-meta-bio"]', function() {
|
104 |
+
if ( typeof jQuery(this).val() !== 'undefined' ) {
|
105 |
+
var um_bio_limit = jQuery(this).attr( "data-character-limit" );
|
106 |
+
var remaining = um_bio_limit - jQuery(this).val().length;
|
107 |
+
jQuery( 'span.um-meta-bio-character span.um-bio-limit' ).text( remaining );
|
108 |
+
if ( remaining < 5 ) {
|
109 |
+
jQuery('span.um-meta-bio-character').css('color','red');
|
110 |
+
} else {
|
111 |
+
jQuery('span.um-meta-bio-character').css('color','');
|
112 |
+
}
|
113 |
+
}
|
114 |
+
});
|
115 |
+
jQuery( 'textarea[id="um-meta-bio"]' ).trigger('change');
|
116 |
|
117 |
|
118 |
+
jQuery( '.um-profile-edit a.um_delete-item' ).click( function(e) {
|
119 |
+
e.preventDefault();
|
120 |
+
if ( ! confirm( 'Are you sure that you want to delete this user?' ) ) {
|
121 |
+
return false;
|
122 |
+
}
|
123 |
+
});
|
124 |
+
|
125 |
+
/**
|
126 |
+
* Fix profile nav links for iPhone
|
127 |
+
* @see https://www.html5rocks.com/en/mobile/touchandmouse/
|
128 |
+
*/
|
129 |
+
jQuery( '.um-profile-nav a' ).on( 'touchend', function(e) {
|
130 |
+
e.currentTarget.click();
|
131 |
+
});
|
132 |
+
|
133 |
});
|
assets/js/um-profile.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
jQuery(document).ready(function(){
|
1 |
+
jQuery(document).ready(function(){jQuery(".um-profile.um-viewing .um-profile-body .um-row").each(function(){var e=jQuery(this);0==e.find(".um-field").length&&(e.prev(".um-row-heading").remove(),e.remove())}),jQuery(".um-profile.um-viewing .um-profile-body").length&&0==jQuery(".um-profile.um-viewing .um-profile-body").find(".um-field").length&&(jQuery(".um-row-heading,.um-row").remove(),jQuery(".um-profile-note").show()),jQuery(document.body).on("click",".um-profile-save",function(e){return e.preventDefault(),jQuery(this).parents(".um").find("form").submit(),!1}),jQuery(document.body).on("click",".um-profile-edit-a",function(e){jQuery(this).addClass("active")}),jQuery(document.body).on("click",".um-cover a.um-cover-add, .um-photo a",function(e){e.preventDefault()}),jQuery(document.body).on("click",".um-photo-modal",function(e){e.preventDefault();var t=jQuery(this).attr("data-src");return um_new_modal("um_view_photo","fit",!0,t),!1}),jQuery(document.body).on("click",".um-reset-profile-photo",function(e){jQuery(".um-profile-photo-img img").attr("src",jQuery(this).attr("data-default_src")),user_id=jQuery(this).attr("data-user_id"),metakey="profile_photo",jQuery.ajax({url:wp.ajax.settings.url,type:"post",data:{action:"um_delete_profile_photo",metakey:metakey,user_id:user_id,nonce:um_scripts.nonce}})}),jQuery(document.body).on("click",".um-reset-cover-photo",function(e){var t=jQuery(this);jQuery(".um-cover-overlay").hide(),jQuery(".um-cover-e").html('<a href="#" class="um-cover-add um-manual-trigger" data-parent=".um-cover" data-child=".um-btn-auto-width"><span class="um-cover-add-i"><i class="um-icon-plus um-tip-n" title="Upload a cover photo"></i></span></a>'),jQuery(".um-dropdown").hide(),um_responsive(),user_id=jQuery(this).attr("data-user_id"),metakey="cover_photo",jQuery.ajax({url:wp.ajax.settings.url,type:"post",data:{action:"um_delete_cover_photo",metakey:metakey,user_id:user_id,nonce:um_scripts.nonce},success:function(e){t.hide()}})}),jQuery(document.body).on("change, keyup",'textarea[id="um-meta-bio"]',function(){if(void 0!==jQuery(this).val()){var e=jQuery(this).attr("data-character-limit")-jQuery(this).val().length;jQuery("span.um-meta-bio-character span.um-bio-limit").text(e),e<5?jQuery("span.um-meta-bio-character").css("color","red"):jQuery("span.um-meta-bio-character").css("color","")}}),jQuery('textarea[id="um-meta-bio"]').trigger("change"),jQuery(".um-profile-edit a.um_delete-item").click(function(e){if(e.preventDefault(),!confirm("Are you sure that you want to delete this user?"))return!1}),jQuery(".um-profile-nav a").on("touchend",function(e){e.currentTarget.click()})});
|
assets/js/um-responsive.js
CHANGED
@@ -1,16 +1,13 @@
|
|
1 |
-
jQuery(window).load
|
2 |
-
|
3 |
um_responsive();
|
4 |
um_modal_responsive();
|
5 |
-
|
6 |
});
|
7 |
|
8 |
-
jQuery(window).resize
|
9 |
responsive_Modal();
|
10 |
-
|
11 |
jQuery('img.cropper-hidden').cropper('destroy');
|
12 |
-
|
13 |
um_responsive();
|
14 |
um_modal_responsive();
|
15 |
-
|
16 |
});
|
1 |
+
jQuery( window ).on( 'load',function() {
|
|
|
2 |
um_responsive();
|
3 |
um_modal_responsive();
|
|
|
4 |
});
|
5 |
|
6 |
+
jQuery(window).on( 'resize', function() {
|
7 |
responsive_Modal();
|
8 |
+
|
9 |
jQuery('img.cropper-hidden').cropper('destroy');
|
10 |
+
|
11 |
um_responsive();
|
12 |
um_modal_responsive();
|
|
|
13 |
});
|
assets/js/um-responsive.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
jQuery(window).load
|
1 |
+
jQuery(window).on("load",function(){um_responsive(),um_modal_responsive()}),jQuery(window).on("resize",function(){responsive_Modal(),jQuery("img.cropper-hidden").cropper("destroy"),um_responsive(),um_modal_responsive()});
|
assets/js/um-scripts.js
CHANGED
@@ -22,7 +22,6 @@ jQuery(document).ready(function() {
|
|
22 |
});
|
23 |
|
24 |
jQuery(document).on('click', '.um-dropdown-hide', function(e){
|
25 |
-
|
26 |
UM_hide_menus();
|
27 |
});
|
28 |
|
22 |
});
|
23 |
|
24 |
jQuery(document).on('click', '.um-dropdown-hide', function(e){
|
|
|
25 |
UM_hide_menus();
|
26 |
});
|
27 |
|
assets/js/um-scrollbar.js
CHANGED
@@ -1,5 +1,2683 @@
|
|
1 |
-
|
2 |
-
|
3 |
-
|
4 |
-
!function(e){"undefined"!=typeof module&&module.exports?module.exports=e:e(jQuery,window,document)}(function(e){!function(t){var o="function"==typeof define&&define.amd,a="undefined"!=typeof module&&module.exports,n="https:"==document.location.protocol?"https:":"http:",i="cdnjs.cloudflare.com/ajax/libs/jquery-mousewheel/3.1.12/jquery.mousewheel.min.js";o||(a?require("jquery-mousewheel")(e):e.event.special.mousewheel||e("head").append(decodeURI("%3Cscript src="+n+"//"+i+"%3E%3C/script%3E"))),t()}(function(){var t,o="mCustomScrollbar",a="mCS",n=".mCustomScrollbar",i={setTop:0,setLeft:0,axis:"y",scrollbarPosition:"inside",scrollInertia:950,autoDraggerLength:!0,alwaysShowScrollbar:0,snapOffset:0,mouseWheel:{enable:!0,scrollAmount:"auto",axis:"y",deltaFactor:"auto",disableOver:["select","option","keygen","datalist","textarea"]},scrollButtons:{scrollType:"stepless",scrollAmount:"auto"},keyboard:{enable:!0,scrollType:"stepless",scrollAmount:"auto"},contentTouchScroll:25,advanced:{autoScrollOnFocus:"input,textarea,select,button,datalist,keygen,a[tabindex],area,object,[contenteditable='true']",updateOnContentResize:!0,updateOnImageLoad:!0},theme:"light",callbacks:{onTotalScrollOffset:0,onTotalScrollBackOffset:0,alwaysTriggerOffsets:!0}},r=0,l={},s=window.attachEvent&&!window.addEventListener?1:0,c=!1,d=["mCSB_dragger_onDrag","mCSB_scrollTools_onDrag","mCS_img_loaded","mCS_disabled","mCS_destroyed","mCS_no_scrollbar","mCS-autoHide","mCS-dir-rtl","mCS_no_scrollbar_y","mCS_no_scrollbar_x","mCS_y_hidden","mCS_x_hidden","mCSB_draggerContainer","mCSB_buttonUp","mCSB_buttonDown","mCSB_buttonLeft","mCSB_buttonRight"],u={init:function(t){var t=e.extend(!0,{},i,t),o=f.call(this);if(t.live){var s=t.liveSelector||this.selector||n,c=e(s);if("off"===t.live)return void m(s);l[s]=setTimeout(function(){c.mCustomScrollbar(t),"once"===t.live&&c.length&&m(s)},500)}else m(s);return t.setWidth=t.set_width?t.set_width:t.setWidth,t.setHeight=t.set_height?t.set_height:t.setHeight,t.axis=t.horizontalScroll?"x":p(t.axis),t.scrollInertia=t.scrollInertia>0&&t.scrollInertia<17?17:t.scrollInertia,"object"!=typeof t.mouseWheel&&1==t.mouseWheel&&(t.mouseWheel={enable:!0,scrollAmount:"auto",axis:"y",preventDefault:!1,deltaFactor:"auto",normalizeDelta:!1,invert:!1}),t.mouseWheel.scrollAmount=t.mouseWheelPixels?t.mouseWheelPixels:t.mouseWheel.scrollAmount,t.mouseWheel.normalizeDelta=t.advanced.normalizeMouseWheelDelta?t.advanced.normalizeMouseWheelDelta:t.mouseWheel.normalizeDelta,t.scrollButtons.scrollType=g(t.scrollButtons.scrollType),h(t),e(o).each(function(){var o=e(this);if(!o.data(a)){o.data(a,{idx:++r,opt:t,scrollRatio:{y:null,x:null},overflowed:null,contentReset:{y:null,x:null},bindEvents:!1,tweenRunning:!1,sequential:{},langDir:o.css("direction"),cbOffsets:null,trigger:null});var n=o.data(a),i=n.opt,l=o.data("mcs-axis"),s=o.data("mcs-scrollbar-position"),c=o.data("mcs-theme");l&&(i.axis=l),s&&(i.scrollbarPosition=s),c&&(i.theme=c,h(i)),v.call(this),e("#mCSB_"+n.idx+"_container img:not(."+d[2]+")").addClass(d[2]),u.update.call(null,o)}})},update:function(t,o){var n=t||f.call(this);return e(n).each(function(){var t=e(this);if(t.data(a)){var n=t.data(a),i=n.opt,r=e("#mCSB_"+n.idx+"_container"),l=[e("#mCSB_"+n.idx+"_dragger_vertical"),e("#mCSB_"+n.idx+"_dragger_horizontal")];if(!r.length)return;n.tweenRunning&&V(t),t.hasClass(d[3])&&t.removeClass(d[3]),t.hasClass(d[4])&&t.removeClass(d[4]),S.call(this),_.call(this),"y"===i.axis||i.advanced.autoExpandHorizontalScroll||r.css("width",x(r.children())),n.overflowed=B.call(this),O.call(this),i.autoDraggerLength&&b.call(this),C.call(this),k.call(this);var s=[Math.abs(r[0].offsetTop),Math.abs(r[0].offsetLeft)];"x"!==i.axis&&(n.overflowed[0]?l[0].height()>l[0].parent().height()?T.call(this):(Q(t,s[0].toString(),{dir:"y",dur:0,overwrite:"none"}),n.contentReset.y=null):(T.call(this),"y"===i.axis?M.call(this):"yx"===i.axis&&n.overflowed[1]&&Q(t,s[1].toString(),{dir:"x",dur:0,overwrite:"none"}))),"y"!==i.axis&&(n.overflowed[1]?l[1].width()>l[1].parent().width()?T.call(this):(Q(t,s[1].toString(),{dir:"x",dur:0,overwrite:"none"}),n.contentReset.x=null):(T.call(this),"x"===i.axis?M.call(this):"yx"===i.axis&&n.overflowed[0]&&Q(t,s[0].toString(),{dir:"y",dur:0,overwrite:"none"}))),o&&n&&(2===o&&i.callbacks.onImageLoad&&"function"==typeof i.callbacks.onImageLoad?i.callbacks.onImageLoad.call(this):3===o&&i.callbacks.onSelectorChange&&"function"==typeof i.callbacks.onSelectorChange?i.callbacks.onSelectorChange.call(this):i.callbacks.onUpdate&&"function"==typeof i.callbacks.onUpdate&&i.callbacks.onUpdate.call(this)),X.call(this)}})},scrollTo:function(t,o){if("undefined"!=typeof t&&null!=t){var n=f.call(this);return e(n).each(function(){var n=e(this);if(n.data(a)){var i=n.data(a),r=i.opt,l={trigger:"external",scrollInertia:r.scrollInertia,scrollEasing:"mcsEaseInOut",moveDragger:!1,timeout:60,callbacks:!0,onStart:!0,onUpdate:!0,onComplete:!0},s=e.extend(!0,{},l,o),c=Y.call(this,t),d=s.scrollInertia>0&&s.scrollInertia<17?17:s.scrollInertia;c[0]=j.call(this,c[0],"y"),c[1]=j.call(this,c[1],"x"),s.moveDragger&&(c[0]*=i.scrollRatio.y,c[1]*=i.scrollRatio.x),s.dur=d,setTimeout(function(){null!==c[0]&&"undefined"!=typeof c[0]&&"x"!==r.axis&&i.overflowed[0]&&(s.dir="y",s.overwrite="all",Q(n,c[0].toString(),s)),null!==c[1]&&"undefined"!=typeof c[1]&&"y"!==r.axis&&i.overflowed[1]&&(s.dir="x",s.overwrite="none",Q(n,c[1].toString(),s))},s.timeout)}})}},stop:function(){var t=f.call(this);return e(t).each(function(){var t=e(this);t.data(a)&&V(t)})},disable:function(t){var o=f.call(this);return e(o).each(function(){var o=e(this);if(o.data(a)){{o.data(a)}X.call(this,"remove"),M.call(this),t&&T.call(this),O.call(this,!0),o.addClass(d[3])}})},destroy:function(){var t=f.call(this);return e(t).each(function(){var n=e(this);if(n.data(a)){var i=n.data(a),r=i.opt,l=e("#mCSB_"+i.idx),s=e("#mCSB_"+i.idx+"_container"),c=e(".mCSB_"+i.idx+"_scrollbar");r.live&&m(r.liveSelector||e(t).selector),X.call(this,"remove"),M.call(this),T.call(this),n.removeData(a),Z(this,"mcs"),c.remove(),s.find("img."+d[2]).removeClass(d[2]),l.replaceWith(s.contents()),n.removeClass(o+" _"+a+"_"+i.idx+" "+d[6]+" "+d[7]+" "+d[5]+" "+d[3]).addClass(d[4])}})}},f=function(){return"object"!=typeof e(this)||e(this).length<1?n:this},h=function(t){var o=["rounded","rounded-dark","rounded-dots","rounded-dots-dark"],a=["rounded-dots","rounded-dots-dark","3d","3d-dark","3d-thick","3d-thick-dark","inset","inset-dark","inset-2","inset-2-dark","inset-3","inset-3-dark"],n=["minimal","minimal-dark"],i=["minimal","minimal-dark"],r=["minimal","minimal-dark"];t.autoDraggerLength=e.inArray(t.theme,o)>-1?!1:t.autoDraggerLength,t.autoExpandScrollbar=e.inArray(t.theme,a)>-1?!1:t.autoExpandScrollbar,t.scrollButtons.enable=e.inArray(t.theme,n)>-1?!1:t.scrollButtons.enable,t.autoHideScrollbar=e.inArray(t.theme,i)>-1?!0:t.autoHideScrollbar,t.scrollbarPosition=e.inArray(t.theme,r)>-1?"outside":t.scrollbarPosition},m=function(e){l[e]&&(clearTimeout(l[e]),Z(l,e))},p=function(e){return"yx"===e||"xy"===e||"auto"===e?"yx":"x"===e||"horizontal"===e?"x":"y"},g=function(e){return"stepped"===e||"pixels"===e||"step"===e||"click"===e?"stepped":"stepless"},v=function(){var t=e(this),n=t.data(a),i=n.opt,r=i.autoExpandScrollbar?" "+d[1]+"_expand":"",l=["<div id='mCSB_"+n.idx+"_scrollbar_vertical' class='mCSB_scrollTools mCSB_"+n.idx+"_scrollbar mCS-"+i.theme+" mCSB_scrollTools_vertical"+r+"'><div class='"+d[12]+"'><div id='mCSB_"+n.idx+"_dragger_vertical' class='mCSB_dragger' style='position:absolute;' oncontextmenu='return false;'><div class='mCSB_dragger_bar' /></div><div class='mCSB_draggerRail' /></div></div>","<div id='mCSB_"+n.idx+"_scrollbar_horizontal' class='mCSB_scrollTools mCSB_"+n.idx+"_scrollbar mCS-"+i.theme+" mCSB_scrollTools_horizontal"+r+"'><div class='"+d[12]+"'><div id='mCSB_"+n.idx+"_dragger_horizontal' class='mCSB_dragger' style='position:absolute;' oncontextmenu='return false;'><div class='mCSB_dragger_bar' /></div><div class='mCSB_draggerRail' /></div></div>"],s="yx"===i.axis?"mCSB_vertical_horizontal":"x"===i.axis?"mCSB_horizontal":"mCSB_vertical",c="yx"===i.axis?l[0]+l[1]:"x"===i.axis?l[1]:l[0],u="yx"===i.axis?"<div id='mCSB_"+n.idx+"_container_wrapper' class='mCSB_container_wrapper' />":"",f=i.autoHideScrollbar?" "+d[6]:"",h="x"!==i.axis&&"rtl"===n.langDir?" "+d[7]:"";i.setWidth&&t.css("width",i.setWidth),i.setHeight&&t.css("height",i.setHeight),i.setLeft="y"!==i.axis&&"rtl"===n.langDir?"989999px":i.setLeft,t.addClass(o+" _"+a+"_"+n.idx+f+h).wrapInner("<div id='mCSB_"+n.idx+"' class='mCustomScrollBox mCS-"+i.theme+" "+s+"'><div id='mCSB_"+n.idx+"_container' class='mCSB_container' style='position:relative; top:"+i.setTop+"; left:"+i.setLeft+";' dir="+n.langDir+" /></div>");var m=e("#mCSB_"+n.idx),p=e("#mCSB_"+n.idx+"_container");"y"===i.axis||i.advanced.autoExpandHorizontalScroll||p.css("width",x(p.children())),"outside"===i.scrollbarPosition?("static"===t.css("position")&&t.css("position","relative"),t.css("overflow","visible"),m.addClass("mCSB_outside").after(c)):(m.addClass("mCSB_inside").append(c),p.wrap(u)),w.call(this);var g=[e("#mCSB_"+n.idx+"_dragger_vertical"),e("#mCSB_"+n.idx+"_dragger_horizontal")];g[0].css("min-height",g[0].height()),g[1].css("min-width",g[1].width())},x=function(t){return Math.max.apply(Math,t.map(function(){return e(this).outerWidth(!0)}).get())},_=function(){var t=e(this),o=t.data(a),n=o.opt,i=e("#mCSB_"+o.idx+"_container");n.advanced.autoExpandHorizontalScroll&&"y"!==n.axis&&i.css({position:"absolute",width:"auto"}).wrap("<div class='mCSB_h_wrapper' style='position:relative; left:0; width:999999px;' />").css({width:Math.ceil(i[0].getBoundingClientRect().right+.4)-Math.floor(i[0].getBoundingClientRect().left),position:"relative"}).unwrap()},w=function(){var t=e(this),o=t.data(a),n=o.opt,i=e(".mCSB_"+o.idx+"_scrollbar:first"),r=tt(n.scrollButtons.tabindex)?"tabindex='"+n.scrollButtons.tabindex+"'":"",l=["<a href='#' class='"+d[13]+"' oncontextmenu='return false;' "+r+" />","<a href='#' class='"+d[14]+"' oncontextmenu='return false;' "+r+" />","<a href='#' class='"+d[15]+"' oncontextmenu='return false;' "+r+" />","<a href='#' class='"+d[16]+"' oncontextmenu='return false;' "+r+" />"],s=["x"===n.axis?l[2]:l[0],"x"===n.axis?l[3]:l[1],l[2],l[3]];n.scrollButtons.enable&&i.prepend(s[0]).append(s[1]).next(".mCSB_scrollTools").prepend(s[2]).append(s[3])},S=function(){var t=e(this),o=t.data(a),n=e("#mCSB_"+o.idx),i=t.css("max-height")||"none",r=-1!==i.indexOf("%"),l=t.css("box-sizing");if("none"!==i){var s=r?t.parent().height()*parseInt(i)/100:parseInt(i);"border-box"===l&&(s-=t.innerHeight()-t.height()+(t.outerHeight()-t.innerHeight())),n.css("max-height",Math.round(s))}},b=function(){var t=e(this),o=t.data(a),n=e("#mCSB_"+o.idx),i=e("#mCSB_"+o.idx+"_container"),r=[e("#mCSB_"+o.idx+"_dragger_vertical"),e("#mCSB_"+o.idx+"_dragger_horizontal")],l=[n.height()/i.outerHeight(!1),n.width()/i.outerWidth(!1)],c=[parseInt(r[0].css("min-height")),Math.round(l[0]*r[0].parent().height()),parseInt(r[1].css("min-width")),Math.round(l[1]*r[1].parent().width())],d=s&&c[1]<c[0]?c[0]:c[1],u=s&&c[3]<c[2]?c[2]:c[3];r[0].css({height:d,"max-height":r[0].parent().height()-10}).find(".mCSB_dragger_bar").css({"line-height":c[0]+"px"}),r[1].css({width:u,"max-width":r[1].parent().width()-10})},C=function(){var t=e(this),o=t.data(a),n=e("#mCSB_"+o.idx),i=e("#mCSB_"+o.idx+"_container"),r=[e("#mCSB_"+o.idx+"_dragger_vertical"),e("#mCSB_"+o.idx+"_dragger_horizontal")],l=[i.outerHeight(!1)-n.height(),i.outerWidth(!1)-n.width()],s=[l[0]/(r[0].parent().height()-r[0].height()),l[1]/(r[1].parent().width()-r[1].width())];o.scrollRatio={y:s[0],x:s[1]}},y=function(e,t,o){var a=o?d[0]+"_expanded":"",n=e.closest(".mCSB_scrollTools");"active"===t?(e.toggleClass(d[0]+" "+a),n.toggleClass(d[1]),e[0]._draggable=e[0]._draggable?0:1):e[0]._draggable||("hide"===t?(e.removeClass(d[0]),n.removeClass(d[1])):(e.addClass(d[0]),n.addClass(d[1])))},B=function(){var t=e(this),o=t.data(a),n=e("#mCSB_"+o.idx),i=e("#mCSB_"+o.idx+"_container"),r=null==o.overflowed?i.height():i.outerHeight(!1),l=null==o.overflowed?i.width():i.outerWidth(!1);return[r>n.height(),l>n.width()]},T=function(){var t=e(this),o=t.data(a),n=o.opt,i=e("#mCSB_"+o.idx),r=e("#mCSB_"+o.idx+"_container"),l=[e("#mCSB_"+o.idx+"_dragger_vertical"),e("#mCSB_"+o.idx+"_dragger_horizontal")];if(V(t),("x"!==n.axis&&!o.overflowed[0]||"y"===n.axis&&o.overflowed[0])&&(l[0].add(r).css("top",0),Q(t,"_resetY")),"y"!==n.axis&&!o.overflowed[1]||"x"===n.axis&&o.overflowed[1]){var s=dx=0;"rtl"===o.langDir&&(s=i.width()-r.outerWidth(!1),dx=Math.abs(s/o.scrollRatio.x)),r.css("left",s),l[1].css("left",dx),Q(t,"_resetX")}},k=function(){function t(){r=setTimeout(function(){e.event.special.mousewheel?(clearTimeout(r),W.call(o[0])):t()},100)}var o=e(this),n=o.data(a),i=n.opt;if(!n.bindEvents){if(R.call(this),i.contentTouchScroll&&E.call(this),D.call(this),i.mouseWheel.enable){var r;t()}P.call(this),H.call(this),i.advanced.autoScrollOnFocus&&z.call(this),i.scrollButtons.enable&&U.call(this),i.keyboard.enable&&q.call(this),n.bindEvents=!0}},M=function(){var t=e(this),o=t.data(a),n=o.opt,i=a+"_"+o.idx,r=".mCSB_"+o.idx+"_scrollbar",l=e("#mCSB_"+o.idx+",#mCSB_"+o.idx+"_container,#mCSB_"+o.idx+"_container_wrapper,"+r+" ."+d[12]+",#mCSB_"+o.idx+"_dragger_vertical,#mCSB_"+o.idx+"_dragger_horizontal,"+r+">a"),s=e("#mCSB_"+o.idx+"_container");n.advanced.releaseDraggableSelectors&&l.add(e(n.advanced.releaseDraggableSelectors)),o.bindEvents&&(e(document).unbind("."+i),l.each(function(){e(this).unbind("."+i)}),clearTimeout(t[0]._focusTimeout),Z(t[0],"_focusTimeout"),clearTimeout(o.sequential.step),Z(o.sequential,"step"),clearTimeout(s[0].onCompleteTimeout),Z(s[0],"onCompleteTimeout"),o.bindEvents=!1)},O=function(t){var o=e(this),n=o.data(a),i=n.opt,r=e("#mCSB_"+n.idx+"_container_wrapper"),l=r.length?r:e("#mCSB_"+n.idx+"_container"),s=[e("#mCSB_"+n.idx+"_scrollbar_vertical"),e("#mCSB_"+n.idx+"_scrollbar_horizontal")],c=[s[0].find(".mCSB_dragger"),s[1].find(".mCSB_dragger")];"x"!==i.axis&&(n.overflowed[0]&&!t?(s[0].add(c[0]).add(s[0].children("a")).css("display","block"),l.removeClass(d[8]+" "+d[10])):(i.alwaysShowScrollbar?(2!==i.alwaysShowScrollbar&&c[0].css("display","none"),l.removeClass(d[10])):(s[0].css("display","none"),l.addClass(d[10])),l.addClass(d[8]))),"y"!==i.axis&&(n.overflowed[1]&&!t?(s[1].add(c[1]).add(s[1].children("a")).css("display","block"),l.removeClass(d[9]+" "+d[11])):(i.alwaysShowScrollbar?(2!==i.alwaysShowScrollbar&&c[1].css("display","none"),l.removeClass(d[11])):(s[1].css("display","none"),l.addClass(d[11])),l.addClass(d[9]))),n.overflowed[0]||n.overflowed[1]?o.removeClass(d[5]):o.addClass(d[5])},I=function(e){var t=e.type;switch(t){case"pointerdown":case"MSPointerDown":case"pointermove":case"MSPointerMove":case"pointerup":case"MSPointerUp":return e.target.ownerDocument!==document?[e.originalEvent.screenY,e.originalEvent.screenX,!1]:[e.originalEvent.pageY,e.originalEvent.pageX,!1];case"touchstart":case"touchmove":case"touchend":var o=e.originalEvent.touches[0]||e.originalEvent.changedTouches[0],a=e.originalEvent.touches.length||e.originalEvent.changedTouches.length;return e.target.ownerDocument!==document?[o.screenY,o.screenX,a>1]:[o.pageY,o.pageX,a>1];default:return[e.pageY,e.pageX,!1]}},R=function(){function t(e){var t=m.find("iframe");if(t.length){var o=e?"auto":"none";t.css("pointer-events",o)}}function o(e,t,o,a){if(m[0].idleTimer=u.scrollInertia<233?250:0,n.attr("id")===h[1])var i="x",r=(n[0].offsetLeft-t+a)*d.scrollRatio.x;else var i="y",r=(n[0].offsetTop-e+o)*d.scrollRatio.y;Q(l,r.toString(),{dir:i,drag:!0})}var n,i,r,l=e(this),d=l.data(a),u=d.opt,f=a+"_"+d.idx,h=["mCSB_"+d.idx+"_dragger_vertical","mCSB_"+d.idx+"_dragger_horizontal"],m=e("#mCSB_"+d.idx+"_container"),p=e("#"+h[0]+",#"+h[1]),g=u.advanced.releaseDraggableSelectors?p.add(e(u.advanced.releaseDraggableSelectors)):p;p.bind("mousedown."+f+" touchstart."+f+" pointerdown."+f+" MSPointerDown."+f,function(o){if(o.stopImmediatePropagation(),o.preventDefault(),$(o)){c=!0,s&&(document.onselectstart=function(){return!1}),t(!1),V(l),n=e(this);var a=n.offset(),d=I(o)[0]-a.top,f=I(o)[1]-a.left,h=n.height()+a.top,m=n.width()+a.left;h>d&&d>0&&m>f&&f>0&&(i=d,r=f),y(n,"active",u.autoExpandScrollbar)}}).bind("touchmove."+f,function(e){e.stopImmediatePropagation(),e.preventDefault();var t=n.offset(),a=I(e)[0]-t.top,l=I(e)[1]-t.left;o(i,r,a,l)}),e(document).bind("mousemove."+f+" pointermove."+f+" MSPointerMove."+f,function(e){if(n){var t=n.offset(),a=I(e)[0]-t.top,l=I(e)[1]-t.left;if(i===a)return;o(i,r,a,l)}}).add(g).bind("mouseup."+f+" touchend."+f+" pointerup."+f+" MSPointerUp."+f,function(){n&&(y(n,"active",u.autoExpandScrollbar),n=null),c=!1,s&&(document.onselectstart=null),t(!0)})},E=function(){function o(e){if(!et(e)||c||I(e)[2])return void(t=0);t=1,S=0,b=0;var o=M.offset();d=I(e)[0]-o.top,u=I(e)[1]-o.left,A=[I(e)[0],I(e)[1]]}function n(e){if(et(e)&&!c&&!I(e)[2]&&(e.stopImmediatePropagation(),!b||S)){p=J();var t=k.offset(),o=I(e)[0]-t.top,a=I(e)[1]-t.left,n="mcsLinearOut";if(R.push(o),E.push(a),A[2]=Math.abs(I(e)[0]-A[0]),A[3]=Math.abs(I(e)[1]-A[1]),y.overflowed[0])var i=O[0].parent().height()-O[0].height(),r=d-o>0&&o-d>-(i*y.scrollRatio.y)&&(2*A[3]<A[2]||"yx"===B.axis);if(y.overflowed[1])var l=O[1].parent().width()-O[1].width(),f=u-a>0&&a-u>-(l*y.scrollRatio.x)&&(2*A[2]<A[3]||"yx"===B.axis);r||f?(e.preventDefault(),S=1):b=1,_="yx"===B.axis?[d-o,u-a]:"x"===B.axis?[null,u-a]:[d-o,null],M[0].idleTimer=250,y.overflowed[0]&&s(_[0],D,n,"y","all",!0),y.overflowed[1]&&s(_[1],D,n,"x",W,!0)}}function i(e){if(!et(e)||c||I(e)[2])return void(t=0);t=1,e.stopImmediatePropagation(),V(C),m=J();var o=k.offset();f=I(e)[0]-o.top,h=I(e)[1]-o.left,R=[],E=[]}function r(e){if(et(e)&&!c&&!I(e)[2]){e.stopImmediatePropagation(),S=0,b=0,g=J();var t=k.offset(),o=I(e)[0]-t.top,a=I(e)[1]-t.left;if(!(g-p>30)){x=1e3/(g-m);var n="mcsEaseOut",i=2.5>x,r=i?[R[R.length-2],E[E.length-2]]:[0,0];v=i?[o-r[0],a-r[1]]:[o-f,a-h];var d=[Math.abs(v[0]),Math.abs(v[1])];x=i?[Math.abs(v[0]/4),Math.abs(v[1]/4)]:[x,x];var u=[Math.abs(M[0].offsetTop)-v[0]*l(d[0]/x[0],x[0]),Math.abs(M[0].offsetLeft)-v[1]*l(d[1]/x[1],x[1])];_="yx"===B.axis?[u[0],u[1]]:"x"===B.axis?[null,u[1]]:[u[0],null],w=[4*d[0]+B.scrollInertia,4*d[1]+B.scrollInertia];var C=parseInt(B.contentTouchScroll)||0;_[0]=d[0]>C?_[0]:0,_[1]=d[1]>C?_[1]:0,y.overflowed[0]&&s(_[0],w[0],n,"y",W,!1),y.overflowed[1]&&s(_[1],w[1],n,"x",W,!1)}}}function l(e,t){var o=[1.5*t,2*t,t/1.5,t/2];return e>90?t>4?o[0]:o[3]:e>60?t>3?o[3]:o[2]:e>30?t>8?o[1]:t>6?o[0]:t>4?t:o[2]:t>8?t:o[3]}function s(e,t,o,a,n,i){e&&Q(C,e.toString(),{dur:t,scrollEasing:o,dir:a,overwrite:n,drag:i})}var d,u,f,h,m,p,g,v,x,_,w,S,b,C=e(this),y=C.data(a),B=y.opt,T=a+"_"+y.idx,k=e("#mCSB_"+y.idx),M=e("#mCSB_"+y.idx+"_container"),O=[e("#mCSB_"+y.idx+"_dragger_vertical"),e("#mCSB_"+y.idx+"_dragger_horizontal")],R=[],E=[],D=0,W="yx"===B.axis?"none":"all",A=[],P=M.find("iframe"),z=["touchstart."+T+" pointerdown."+T+" MSPointerDown."+T,"touchmove."+T+" pointermove."+T+" MSPointerMove."+T,"touchend."+T+" pointerup."+T+" MSPointerUp."+T];M.bind(z[0],function(e){o(e)}).bind(z[1],function(e){n(e)}),k.bind(z[0],function(e){i(e)}).bind(z[2],function(e){r(e)}),P.length&&P.each(function(){e(this).load(function(){L(this)&&e(this.contentDocument||this.contentWindow.document).bind(z[0],function(e){o(e),i(e)}).bind(z[1],function(e){n(e)}).bind(z[2],function(e){r(e)})})})},D=function(){function o(){return window.getSelection?window.getSelection().toString():document.selection&&"Control"!=document.selection.type?document.selection.createRange().text:0}function n(e,t,o){d.type=o&&i?"stepped":"stepless",d.scrollAmount=10,F(r,e,t,"mcsLinearOut",o?60:null)}var i,r=e(this),l=r.data(a),s=l.opt,d=l.sequential,u=a+"_"+l.idx,f=e("#mCSB_"+l.idx+"_container"),h=f.parent();f.bind("mousedown."+u,function(){t||i||(i=1,c=!0)}).add(document).bind("mousemove."+u,function(e){if(!t&&i&&o()){var a=f.offset(),r=I(e)[0]-a.top+f[0].offsetTop,c=I(e)[1]-a.left+f[0].offsetLeft;r>0&&r<h.height()&&c>0&&c<h.width()?d.step&&n("off",null,"stepped"):("x"!==s.axis&&l.overflowed[0]&&(0>r?n("on",38):r>h.height()&&n("on",40)),"y"!==s.axis&&l.overflowed[1]&&(0>c?n("on",37):c>h.width()&&n("on",39)))}}).bind("mouseup."+u,function(){t||(i&&(i=0,n("off",null)),c=!1)})},W=function(){function t(t,a){if(V(o),!A(o,t.target)){var r="auto"!==i.mouseWheel.deltaFactor?parseInt(i.mouseWheel.deltaFactor):s&&t.deltaFactor<100?100:t.deltaFactor||100;if("x"===i.axis||"x"===i.mouseWheel.axis)var d="x",u=[Math.round(r*n.scrollRatio.x),parseInt(i.mouseWheel.scrollAmount)],f="auto"!==i.mouseWheel.scrollAmount?u[1]:u[0]>=l.width()?.9*l.width():u[0],h=Math.abs(e("#mCSB_"+n.idx+"_container")[0].offsetLeft),m=c[1][0].offsetLeft,p=c[1].parent().width()-c[1].width(),g=t.deltaX||t.deltaY||a;else var d="y",u=[Math.round(r*n.scrollRatio.y),parseInt(i.mouseWheel.scrollAmount)],f="auto"!==i.mouseWheel.scrollAmount?u[1]:u[0]>=l.height()?.9*l.height():u[0],h=Math.abs(e("#mCSB_"+n.idx+"_container")[0].offsetTop),m=c[0][0].offsetTop,p=c[0].parent().height()-c[0].height(),g=t.deltaY||a;"y"===d&&!n.overflowed[0]||"x"===d&&!n.overflowed[1]||(i.mouseWheel.invert&&(g=-g),i.mouseWheel.normalizeDelta&&(g=0>g?-1:1),(g>0&&0!==m||0>g&&m!==p||i.mouseWheel.preventDefault)&&(t.stopImmediatePropagation(),t.preventDefault()),Q(o,(h-g*f).toString(),{dir:d}))}}var o=e(this),n=o.data(a),i=n.opt,r=a+"_"+n.idx,l=e("#mCSB_"+n.idx),c=[e("#mCSB_"+n.idx+"_dragger_vertical"),e("#mCSB_"+n.idx+"_dragger_horizontal")],d=e("#mCSB_"+n.idx+"_container").find("iframe");n&&(d.length&&d.each(function(){e(this).load(function(){L(this)&&e(this.contentDocument||this.contentWindow.document).bind("mousewheel."+r,function(e,o){t(e,o)})})}),l.bind("mousewheel."+r,function(e,o){t(e,o)}))},L=function(e){var t=null;try{var o=e.contentDocument||e.contentWindow.document;t=o.body.innerHTML}catch(a){}return null!==t},A=function(t,o){var n=o.nodeName.toLowerCase(),i=t.data(a).opt.mouseWheel.disableOver,r=["select","textarea"];return e.inArray(n,i)>-1&&!(e.inArray(n,r)>-1&&!e(o).is(":focus"))},P=function(){var t=e(this),o=t.data(a),n=a+"_"+o.idx,i=e("#mCSB_"+o.idx+"_container"),r=i.parent(),l=e(".mCSB_"+o.idx+"_scrollbar ."+d[12]);l.bind("touchstart."+n+" pointerdown."+n+" MSPointerDown."+n,function(){c=!0}).bind("touchend."+n+" pointerup."+n+" MSPointerUp."+n,function(){c=!1}).bind("click."+n,function(a){if(e(a.target).hasClass(d[12])||e(a.target).hasClass("mCSB_draggerRail")){V(t);var n=e(this),l=n.find(".mCSB_dragger");if(n.parent(".mCSB_scrollTools_horizontal").length>0){if(!o.overflowed[1])return;var s="x",c=a.pageX>l.offset().left?-1:1,u=Math.abs(i[0].offsetLeft)-.9*c*r.width()}else{if(!o.overflowed[0])return;var s="y",c=a.pageY>l.offset().top?-1:1,u=Math.abs(i[0].offsetTop)-.9*c*r.height()}Q(t,u.toString(),{dir:s,scrollEasing:"mcsEaseInOut"})}})},z=function(){var t=e(this),o=t.data(a),n=o.opt,i=a+"_"+o.idx,r=e("#mCSB_"+o.idx+"_container"),l=r.parent();r.bind("focusin."+i,function(){var o=e(document.activeElement),a=r.find(".mCustomScrollBox").length,i=0;o.is(n.advanced.autoScrollOnFocus)&&(V(t),clearTimeout(t[0]._focusTimeout),t[0]._focusTimer=a?(i+17)*a:0,t[0]._focusTimeout=setTimeout(function(){var e=[ot(o)[0],ot(o)[1]],a=[r[0].offsetTop,r[0].offsetLeft],s=[a[0]+e[0]>=0&&a[0]+e[0]<l.height()-o.outerHeight(!1),a[1]+e[1]>=0&&a[0]+e[1]<l.width()-o.outerWidth(!1)],c="yx"!==n.axis||s[0]||s[1]?"all":"none";"x"===n.axis||s[0]||Q(t,e[0].toString(),{dir:"y",scrollEasing:"mcsEaseInOut",overwrite:c,dur:i}),"y"===n.axis||s[1]||Q(t,e[1].toString(),{dir:"x",scrollEasing:"mcsEaseInOut",overwrite:c,dur:i})},t[0]._focusTimer))})},H=function(){var t=e(this),o=t.data(a),n=a+"_"+o.idx,i=e("#mCSB_"+o.idx+"_container").parent();i.bind("scroll."+n,function(){(0!==i.scrollTop()||0!==i.scrollLeft())&&e(".mCSB_"+o.idx+"_scrollbar").css("visibility","hidden")})},U=function(){var t=e(this),o=t.data(a),n=o.opt,i=o.sequential,r=a+"_"+o.idx,l=".mCSB_"+o.idx+"_scrollbar",s=e(l+">a");s.bind("mousedown."+r+" touchstart."+r+" pointerdown."+r+" MSPointerDown."+r+" mouseup."+r+" touchend."+r+" pointerup."+r+" MSPointerUp."+r+" mouseout."+r+" pointerout."+r+" MSPointerOut."+r+" click."+r,function(a){function r(e,o){i.scrollAmount=n.snapAmount||n.scrollButtons.scrollAmount,F(t,e,o)}if(a.preventDefault(),$(a)){var l=e(this).attr("class");switch(i.type=n.scrollButtons.scrollType,a.type){case"mousedown":case"touchstart":case"pointerdown":case"MSPointerDown":if("stepped"===i.type)return;c=!0,o.tweenRunning=!1,r("on",l);break;case"mouseup":case"touchend":case"pointerup":case"MSPointerUp":case"mouseout":case"pointerout":case"MSPointerOut":if("stepped"===i.type)return;c=!1,i.dir&&r("off",l);break;case"click":if("stepped"!==i.type||o.tweenRunning)return;r("on",l)}}})},q=function(){function t(t){function a(e,t){r.type=i.keyboard.scrollType,r.scrollAmount=i.snapAmount||i.keyboard.scrollAmount,"stepped"===r.type&&n.tweenRunning||F(o,e,t)}switch(t.type){case"blur":n.tweenRunning&&r.dir&&a("off",null);break;case"keydown":case"keyup":var l=t.keyCode?t.keyCode:t.which,s="on";if("x"!==i.axis&&(38===l||40===l)||"y"!==i.axis&&(37===l||39===l)){if((38===l||40===l)&&!n.overflowed[0]||(37===l||39===l)&&!n.overflowed[1])return;"keyup"===t.type&&(s="off"),e(document.activeElement).is(u)||(t.preventDefault(),t.stopImmediatePropagation(),a(s,l))}else if(33===l||34===l){if((n.overflowed[0]||n.overflowed[1])&&(t.preventDefault(),t.stopImmediatePropagation()),"keyup"===t.type){V(o);var f=34===l?-1:1;if("x"===i.axis||"yx"===i.axis&&n.overflowed[1]&&!n.overflowed[0])var h="x",m=Math.abs(c[0].offsetLeft)-.9*f*d.width();else var h="y",m=Math.abs(c[0].offsetTop)-.9*f*d.height();Q(o,m.toString(),{dir:h,scrollEasing:"mcsEaseInOut"})}}else if((35===l||36===l)&&!e(document.activeElement).is(u)&&((n.overflowed[0]||n.overflowed[1])&&(t.preventDefault(),t.stopImmediatePropagation()),"keyup"===t.type)){if("x"===i.axis||"yx"===i.axis&&n.overflowed[1]&&!n.overflowed[0])var h="x",m=35===l?Math.abs(d.width()-c.outerWidth(!1)):0;else var h="y",m=35===l?Math.abs(d.height()-c.outerHeight(!1)):0;Q(o,m.toString(),{dir:h,scrollEasing:"mcsEaseInOut"})}}}var o=e(this),n=o.data(a),i=n.opt,r=n.sequential,l=a+"_"+n.idx,s=e("#mCSB_"+n.idx),c=e("#mCSB_"+n.idx+"_container"),d=c.parent(),u="input,textarea,select,datalist,keygen,[contenteditable='true']",f=c.find("iframe"),h=["blur."+l+" keydown."+l+" keyup."+l];f.length&&f.each(function(){e(this).load(function(){L(this)&&e(this.contentDocument||this.contentWindow.document).bind(h[0],function(e){t(e)})})}),s.attr("tabindex","0").bind(h[0],function(e){t(e)})},F=function(t,o,n,i,r){function l(e){var o="stepped"!==f.type,a=r?r:e?o?p/1.5:g:1e3/60,n=e?o?7.5:40:2.5,s=[Math.abs(h[0].offsetTop),Math.abs(h[0].offsetLeft)],d=[c.scrollRatio.y>10?10:c.scrollRatio.y,c.scrollRatio.x>10?10:c.scrollRatio.x],u="x"===f.dir[0]?s[1]+f.dir[1]*d[1]*n:s[0]+f.dir[1]*d[0]*n,m="x"===f.dir[0]?s[1]+f.dir[1]*parseInt(f.scrollAmount):s[0]+f.dir[1]*parseInt(f.scrollAmount),v="auto"!==f.scrollAmount?m:u,x=i?i:e?o?"mcsLinearOut":"mcsEaseInOut":"mcsLinear",_=e?!0:!1;return e&&17>a&&(v="x"===f.dir[0]?s[1]:s[0]),Q(t,v.toString(),{dir:f.dir[0],scrollEasing:x,dur:a,onComplete:_}),e?void(f.dir=!1):(clearTimeout(f.step),void(f.step=setTimeout(function(){l()},a)))}function s(){clearTimeout(f.step),Z(f,"step"),V(t)}var c=t.data(a),u=c.opt,f=c.sequential,h=e("#mCSB_"+c.idx+"_container"),m="stepped"===f.type?!0:!1,p=u.scrollInertia<26?26:u.scrollInertia,g=u.scrollInertia<1?17:u.scrollInertia;switch(o){case"on":if(f.dir=[n===d[16]||n===d[15]||39===n||37===n?"x":"y",n===d[13]||n===d[15]||38===n||37===n?-1:1],V(t),tt(n)&&"stepped"===f.type)return;l(m);break;case"off":s(),(m||c.tweenRunning&&f.dir)&&l(!0)}},Y=function(t){var o=e(this).data(a).opt,n=[];return"function"==typeof t&&(t=t()),t instanceof Array?n=t.length>1?[t[0],t[1]]:"x"===o.axis?[null,t[0]]:[t[0],null]:(n[0]=t.y?t.y:t.x||"x"===o.axis?null:t,n[1]=t.x?t.x:t.y||"y"===o.axis?null:t),"function"==typeof n[0]&&(n[0]=n[0]()),"function"==typeof n[1]&&(n[1]=n[1]()),n},j=function(t,o){if(null!=t&&"undefined"!=typeof t){var n=e(this),i=n.data(a),r=i.opt,l=e("#mCSB_"+i.idx+"_container"),s=l.parent(),c=typeof t;o||(o="x"===r.axis?"x":"y");var d="x"===o?l.outerWidth(!1):l.outerHeight(!1),f="x"===o?l[0].offsetLeft:l[0].offsetTop,h="x"===o?"left":"top";switch(c){case"function":return t();case"object":var m=t.jquery?t:e(t);if(!m.length)return;return"x"===o?ot(m)[1]:ot(m)[0];case"string":case"number":if(tt(t))return Math.abs(t);if(-1!==t.indexOf("%"))return Math.abs(d*parseInt(t)/100);if(-1!==t.indexOf("-="))return Math.abs(f-parseInt(t.split("-=")[1]));if(-1!==t.indexOf("+=")){var p=f+parseInt(t.split("+=")[1]);return p>=0?0:Math.abs(p)}if(-1!==t.indexOf("px")&&tt(t.split("px")[0]))return Math.abs(t.split("px")[0]);if("top"===t||"left"===t)return 0;if("bottom"===t)return Math.abs(s.height()-l.outerHeight(!1));if("right"===t)return Math.abs(s.width()-l.outerWidth(!1));if("first"===t||"last"===t){var m=l.find(":"+t);return"x"===o?ot(m)[1]:ot(m)[0]}return e(t).length?"x"===o?ot(e(t))[1]:ot(e(t))[0]:(l.css(h,t),void u.update.call(null,n[0]))}}},X=function(t){function o(){clearTimeout(h[0].autoUpdate),h[0].autoUpdate=setTimeout(function(){return f.advanced.updateOnSelectorChange&&(m=r(),m!==w)?(l(3),void(w=m)):(f.advanced.updateOnContentResize&&(p=[h.outerHeight(!1),h.outerWidth(!1),v.height(),v.width(),_()[0],_()[1]],(p[0]!==S[0]||p[1]!==S[1]||p[2]!==S[2]||p[3]!==S[3]||p[4]!==S[4]||p[5]!==S[5])&&(l(p[0]!==S[0]||p[1]!==S[1]),S=p)),f.advanced.updateOnImageLoad&&(g=n(),g!==b&&(h.find("img").each(function(){i(this)}),b=g)),void((f.advanced.updateOnSelectorChange||f.advanced.updateOnContentResize||f.advanced.updateOnImageLoad)&&o()))},60)}function n(){var e=0;return f.advanced.updateOnImageLoad&&(e=h.find("img").length),e}function i(t){function o(e,t){return function(){return t.apply(e,arguments)}}function a(){this.onload=null,e(t).addClass(d[2]),l(2)}if(e(t).hasClass(d[2]))return void l();var n=new Image;n.onload=o(n,a),n.src=t.src}function r(){f.advanced.updateOnSelectorChange===!0&&(f.advanced.updateOnSelectorChange="*");var t=0,o=h.find(f.advanced.updateOnSelectorChange);return f.advanced.updateOnSelectorChange&&o.length>0&&o.each(function(){t+=e(this).height()+e(this).width()}),t}function l(e){clearTimeout(h[0].autoUpdate),u.update.call(null,s[0],e)}var s=e(this),c=s.data(a),f=c.opt,h=e("#mCSB_"+c.idx+"_container");if(t)return clearTimeout(h[0].autoUpdate),void Z(h[0],"autoUpdate");var m,p,g,v=h.parent(),x=[e("#mCSB_"+c.idx+"_scrollbar_vertical"),e("#mCSB_"+c.idx+"_scrollbar_horizontal")],_=function(){return[x[0].is(":visible")?x[0].outerHeight(!0):0,x[1].is(":visible")?x[1].outerWidth(!0):0]},w=r(),S=[h.outerHeight(!1),h.outerWidth(!1),v.height(),v.width(),_()[0],_()[1]],b=n();o()},N=function(e,t,o){return Math.round(e/t)*t-o},V=function(t){var o=t.data(a),n=e("#mCSB_"+o.idx+"_container,#mCSB_"+o.idx+"_container_wrapper,#mCSB_"+o.idx+"_dragger_vertical,#mCSB_"+o.idx+"_dragger_horizontal");n.each(function(){K.call(this)})},Q=function(t,o,n){function i(e){return s&&c.callbacks[e]&&"function"==typeof c.callbacks[e]}function r(){return[c.callbacks.alwaysTriggerOffsets||_>=w[0]+b,c.callbacks.alwaysTriggerOffsets||-C>=_]}function l(){var e=[h[0].offsetTop,h[0].offsetLeft],o=[v[0].offsetTop,v[0].offsetLeft],a=[h.outerHeight(!1),h.outerWidth(!1)],i=[f.height(),f.width()];t[0].mcs={content:h,top:e[0],left:e[1],draggerTop:o[0],draggerLeft:o[1],topPct:Math.round(100*Math.abs(e[0])/(Math.abs(a[0])-i[0])),leftPct:Math.round(100*Math.abs(e[1])/(Math.abs(a[1])-i[1])),direction:n.dir}}var s=t.data(a),c=s.opt,d={trigger:"internal",dir:"y",scrollEasing:"mcsEaseOut",drag:!1,dur:c.scrollInertia,overwrite:"all",callbacks:!0,onStart:!0,onUpdate:!0,onComplete:!0},n=e.extend(d,n),u=[n.dur,n.drag?0:n.dur],f=e("#mCSB_"+s.idx),h=e("#mCSB_"+s.idx+"_container"),m=h.parent(),p=c.callbacks.onTotalScrollOffset?Y.call(t,c.callbacks.onTotalScrollOffset):[0,0],g=c.callbacks.onTotalScrollBackOffset?Y.call(t,c.callbacks.onTotalScrollBackOffset):[0,0];
|
5 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*!
|
2 |
+
* jQuery Mousewheel 3.1.13
|
3 |
+
*
|
4 |
+
* Copyright jQuery Foundation and other contributors
|
5 |
+
* Released under the MIT license
|
6 |
+
* http://jquery.org/license
|
7 |
+
*
|
8 |
+
* https://github.com/jquery/jquery-mousewheel/blob/master/jquery.mousewheel.js
|
9 |
+
*/
|
10 |
+
|
11 |
+
(function (factory) {
|
12 |
+
if ( typeof define === 'function' && define.amd ) {
|
13 |
+
// AMD. Register as an anonymous module.
|
14 |
+
define(['jquery'], factory);
|
15 |
+
} else if (typeof exports === 'object') {
|
16 |
+
// Node/CommonJS style for Browserify
|
17 |
+
module.exports = factory;
|
18 |
+
} else {
|
19 |
+
// Browser globals
|
20 |
+
factory(jQuery);
|
21 |
+
}
|
22 |
+
}(function ($) {
|
23 |
+
|
24 |
+
var toFix = ['wheel', 'mousewheel', 'DOMMouseScroll', 'MozMousePixelScroll'],
|
25 |
+
toBind = ( 'onwheel' in document || document.documentMode >= 9 ) ?
|
26 |
+
['wheel'] : ['mousewheel', 'DomMouseScroll', 'MozMousePixelScroll'],
|
27 |
+
slice = Array.prototype.slice,
|
28 |
+
nullLowestDeltaTimeout, lowestDelta;
|
29 |
+
|
30 |
+
if ( $.event.fixHooks ) {
|
31 |
+
for ( var i = toFix.length; i; ) {
|
32 |
+
$.event.fixHooks[ toFix[--i] ] = $.event.mouseHooks;
|
33 |
+
}
|
34 |
+
}
|
35 |
+
|
36 |
+
var special = $.event.special.mousewheel = {
|
37 |
+
version: '3.1.12',
|
38 |
+
|
39 |
+
setup: function() {
|
40 |
+
if ( this.addEventListener ) {
|
41 |
+
for ( var i = toBind.length; i; ) {
|
42 |
+
this.addEventListener( toBind[--i], handler, false );
|
43 |
+
}
|
44 |
+
} else {
|
45 |
+
this.onmousewheel = handler;
|
46 |
+
}
|
47 |
+
// Store the line height and page height for this particular element
|
48 |
+
$.data(this, 'mousewheel-line-height', special.getLineHeight(this));
|
49 |
+
$.data(this, 'mousewheel-page-height', special.getPageHeight(this));
|
50 |
+
},
|
51 |
+
|
52 |
+
teardown: function() {
|
53 |
+
if ( this.removeEventListener ) {
|
54 |
+
for ( var i = toBind.length; i; ) {
|
55 |
+
this.removeEventListener( toBind[--i], handler, false );
|
56 |
+
}
|
57 |
+
} else {
|
58 |
+
this.onmousewheel = null;
|
59 |
+
}
|
60 |
+
// Clean up the data we added to the element
|
61 |
+
$.removeData(this, 'mousewheel-line-height');
|
62 |
+
$.removeData(this, 'mousewheel-page-height');
|
63 |
+
},
|
64 |
+
|
65 |
+
getLineHeight: function(elem) {
|
66 |
+
var $elem = $(elem),
|
67 |
+
$parent = $elem['offsetParent' in $.fn ? 'offsetParent' : 'parent']();
|
68 |
+
if (!$parent.length) {
|
69 |
+
$parent = $('body');
|
70 |
+
}
|
71 |
+
return parseInt($parent.css('fontSize'), 10) || parseInt($elem.css('fontSize'), 10) || 16;
|
72 |
+
},
|
73 |
+
|
74 |
+
getPageHeight: function(elem) {
|
75 |
+
return $(elem).height();
|
76 |
+
},
|
77 |
+
|
78 |
+
settings: {
|
79 |
+
adjustOldDeltas: true, // see shouldAdjustOldDeltas() below
|
80 |
+
normalizeOffset: true // calls getBoundingClientRect for each event
|
81 |
+
}
|
82 |
+
};
|
83 |
+
|
84 |
+
$.fn.extend({
|
85 |
+
mousewheel: function(fn) {
|
86 |
+
return fn ? this.bind('mousewheel', fn) : this.trigger('mousewheel');
|
87 |
+
},
|
88 |
+
|
89 |
+
unmousewheel: function(fn) {
|
90 |
+
return this.unbind('mousewheel', fn);
|
91 |
+
}
|
92 |
+
});
|
93 |
+
|
94 |
+
|
95 |
+
function handler(event) {
|
96 |
+
var orgEvent = event || window.event,
|
97 |
+
args = slice.call(arguments, 1),
|
98 |
+
delta = 0,
|
99 |
+
deltaX = 0,
|
100 |
+
deltaY = 0,
|
101 |
+
absDelta = 0,
|
102 |
+
offsetX = 0,
|
103 |
+
offsetY = 0;
|
104 |
+
event = $.event.fix(orgEvent);
|
105 |
+
event.type = 'mousewheel';
|
106 |
+
|
107 |
+
// Old school scrollwheel delta
|
108 |
+
if ( 'detail' in orgEvent ) { deltaY = orgEvent.detail * -1; }
|
109 |
+
if ( 'wheelDelta' in orgEvent ) { deltaY = orgEvent.wheelDelta; }
|
110 |
+
if ( 'wheelDeltaY' in orgEvent ) { deltaY = orgEvent.wheelDeltaY; }
|
111 |
+
if ( 'wheelDeltaX' in orgEvent ) { deltaX = orgEvent.wheelDeltaX * -1; }
|
112 |
+
|
113 |
+
// Firefox < 17 horizontal scrolling related to DOMMouseScroll event
|
114 |
+
if ( 'axis' in orgEvent && orgEvent.axis === orgEvent.HORIZONTAL_AXIS ) {
|
115 |
+
deltaX = deltaY * -1;
|
116 |
+
deltaY = 0;
|
117 |
+
}
|
118 |
+
|
119 |
+
// Set delta to be deltaY or deltaX if deltaY is 0 for backwards compatabilitiy
|
120 |
+
delta = deltaY === 0 ? deltaX : deltaY;
|
121 |
+
|
122 |
+
// New school wheel delta (wheel event)
|
123 |
+
if ( 'deltaY' in orgEvent ) {
|
124 |
+
deltaY = orgEvent.deltaY * -1;
|
125 |
+
delta = deltaY;
|
126 |
+
}
|
127 |
+
if ( 'deltaX' in orgEvent ) {
|
128 |
+
deltaX = orgEvent.deltaX;
|
129 |
+
if ( deltaY === 0 ) { delta = deltaX * -1; }
|
130 |
+
}
|
131 |
+
|
132 |
+
// No change actually happened, no reason to go any further
|
133 |
+
if ( deltaY === 0 && deltaX === 0 ) { return; }
|
134 |
+
|
135 |
+
// Need to convert lines and pages to pixels if we aren't already in pixels
|
136 |
+
// There are three delta modes:
|
137 |
+
// * deltaMode 0 is by pixels, nothing to do
|
138 |
+
// * deltaMode 1 is by lines
|
139 |
+
// * deltaMode 2 is by pages
|
140 |
+
if ( orgEvent.deltaMode === 1 ) {
|
141 |
+
var lineHeight = $.data(this, 'mousewheel-line-height');
|
142 |
+
delta *= lineHeight;
|
143 |
+
deltaY *= lineHeight;
|
144 |
+
deltaX *= lineHeight;
|
145 |
+
} else if ( orgEvent.deltaMode === 2 ) {
|
146 |
+
var pageHeight = $.data(this, 'mousewheel-page-height');
|
147 |
+
delta *= pageHeight;
|
148 |
+
deltaY *= pageHeight;
|
149 |
+
deltaX *= pageHeight;
|
150 |
+
}
|
151 |
+
|
152 |
+
// Store lowest absolute delta to normalize the delta values
|
153 |
+
absDelta = Math.max( Math.abs(deltaY), Math.abs(deltaX) );
|
154 |
+
|
155 |
+
if ( !lowestDelta || absDelta < lowestDelta ) {
|
156 |
+
lowestDelta = absDelta;
|
157 |
+
|
158 |
+
// Adjust older deltas if necessary
|
159 |
+
if ( shouldAdjustOldDeltas(orgEvent, absDelta) ) {
|
160 |
+
lowestDelta /= 40;
|
161 |
+
}
|
162 |
+
}
|
163 |
+
|
164 |
+
// Adjust older deltas if necessary
|
165 |
+
if ( shouldAdjustOldDeltas(orgEvent, absDelta) ) {
|
166 |
+
// Divide all the things by 40!
|
167 |
+
delta /= 40;
|
168 |
+
deltaX /= 40;
|
169 |
+
deltaY /= 40;
|
170 |
+
}
|
171 |
+
|
172 |
+
// Get a whole, normalized value for the deltas
|
173 |
+
delta = Math[ delta >= 1 ? 'floor' : 'ceil' ](delta / lowestDelta);
|
174 |
+
deltaX = Math[ deltaX >= 1 ? 'floor' : 'ceil' ](deltaX / lowestDelta);
|
175 |
+
deltaY = Math[ deltaY >= 1 ? 'floor' : 'ceil' ](deltaY / lowestDelta);
|
176 |
+
|
177 |
+
// Normalise offsetX and offsetY properties
|
178 |
+
if ( special.settings.normalizeOffset && this.getBoundingClientRect ) {
|
179 |
+
var boundingRect = this.getBoundingClientRect();
|
180 |
+
offsetX = event.clientX - boundingRect.left;
|
181 |
+
offsetY = event.clientY - boundingRect.top;
|
182 |
+
}
|
183 |
+
|
184 |
+
// Add information to the event object
|
185 |
+
event.deltaX = deltaX;
|
186 |
+
event.deltaY = deltaY;
|
187 |
+
event.deltaFactor = lowestDelta;
|
188 |
+
event.offsetX = offsetX;
|
189 |
+
event.offsetY = offsetY;
|
190 |
+
// Go ahead and set deltaMode to 0 since we converted to pixels
|
191 |
+
// Although this is a little odd since we overwrite the deltaX/Y
|
192 |
+
// properties with normalized deltas.
|
193 |
+
event.deltaMode = 0;
|
194 |
+
|
195 |
+
// Add event and delta to the front of the arguments
|
196 |
+
args.unshift(event, delta, deltaX, deltaY);
|
197 |
+
|
198 |
+
// Clearout lowestDelta after sometime to better
|
199 |
+
// handle multiple device types that give different
|
200 |
+
// a different lowestDelta
|
201 |
+
// Ex: trackpad = 3 and mouse wheel = 120
|
202 |
+
if (nullLowestDeltaTimeout) { clearTimeout(nullLowestDeltaTimeout); }
|
203 |
+
nullLowestDeltaTimeout = setTimeout(nullLowestDelta, 200);
|
204 |
+
|
205 |
+
return ($.event.dispatch || $.event.handle).apply(this, args);
|
206 |
+
}
|
207 |
+
|
208 |
+
function nullLowestDelta() {
|
209 |
+
lowestDelta = null;
|
210 |
+
}
|
211 |
+
|
212 |
+
function shouldAdjustOldDeltas(orgEvent, absDelta) {
|
213 |
+
// If this is an older event and the delta is divisable by 120,
|
214 |
+
// then we are assuming that the browser is treating this as an
|
215 |
+
// older mouse wheel event and that we should divide the deltas
|
216 |
+
// by 40 to try and get a more usable deltaFactor.
|
217 |
+
// Side note, this actually impacts the reported scroll distance
|
218 |
+
// in older browsers and can cause scrolling to be slower than native.
|
219 |
+
// Turn this off by setting $.event.special.mousewheel.settings.adjustOldDeltas to false.
|
220 |
+
return special.settings.adjustOldDeltas && orgEvent.type === 'mousewheel' && absDelta % 120 === 0;
|
221 |
+
}
|
222 |
+
|
223 |
+
}));
|
224 |
+
|
225 |
+
/*
|
226 |
+
== malihu jquery custom scrollbar plugin ==
|
227 |
+
Version: 3.1.5
|
228 |
+
Plugin URI: http://manos.malihu.gr/jquery-custom-content-scroller
|
229 |
+
Author: malihu
|
230 |
+
Author URI: http://manos.malihu.gr
|
231 |
+
License: MIT License (MIT)
|
232 |
+
*/
|
233 |
+
|
234 |
+
/*
|
235 |
+
Copyright Manos Malihutsakis (email: manos@malihu.gr)
|
236 |
+
|
237 |
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
238 |
+
of this software and associated documentation files (the "Software"), to deal
|
239 |
+
in the Software without restriction, including without limitation the rights
|
240 |
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
241 |
+
copies of the Software, and to permit persons to whom the Software is
|
242 |
+
furnished to do so, subject to the following conditions:
|
243 |
+
|
244 |
+
The above copyright notice and this permission notice shall be included in
|
245 |
+
all copies or substantial portions of the Software.
|
246 |
+
|
247 |
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
248 |
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
249 |
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
250 |
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
251 |
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
252 |
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
253 |
+
THE SOFTWARE.
|
254 |
+
*/
|
255 |
+
|
256 |
+
/*
|
257 |
+
The code below is fairly long, fully commented and should be normally used in development.
|
258 |
+
For production, use either the minified jquery.mCustomScrollbar.min.js script or
|
259 |
+
the production-ready jquery.mCustomScrollbar.concat.min.js which contains the plugin
|
260 |
+
and dependencies (minified).
|
261 |
+
*/
|
262 |
+
|
263 |
+
(function(factory){
|
264 |
+
if(typeof define==="function" && define.amd){
|
265 |
+
define(["jquery"],factory);
|
266 |
+
}else if(typeof module!=="undefined" && module.exports){
|
267 |
+
module.exports=factory;
|
268 |
+
}else{
|
269 |
+
factory(jQuery,window,document);
|
270 |
+
}
|
271 |
+
}(function($){
|
272 |
+
(function(init){
|
273 |
+
var _rjs=typeof define==="function" && define.amd, /* RequireJS */
|
274 |
+
_njs=typeof module !== "undefined" && module.exports, /* NodeJS */
|
275 |
+
_dlp=("https:"==document.location.protocol) ? "https:" : "http:", /* location protocol */
|
276 |
+
_url="cdnjs.cloudflare.com/ajax/libs/jquery-mousewheel/3.1.13/jquery.mousewheel.min.js";
|
277 |
+
if(!_rjs){
|
278 |
+
if(_njs){
|
279 |
+
require("jquery-mousewheel")($);
|
280 |
+
}else{
|
281 |
+
/* load jquery-mousewheel plugin (via CDN) if it's not present or not loaded via RequireJS
|
282 |
+
(works when mCustomScrollbar fn is called on window load) */
|
283 |
+
$.event.special.mousewheel || $("head").append(decodeURI("%3Cscript src="+_dlp+"//"+_url+"%3E%3C/script%3E"));
|
284 |
+
}
|
285 |
+
}
|
286 |
+
init();
|
287 |
+
}(function(){
|
288 |
+
|
289 |
+
/*
|
290 |
+
----------------------------------------
|
291 |
+
PLUGIN NAMESPACE, PREFIX, DEFAULT SELECTOR(S)
|
292 |
+
----------------------------------------
|
293 |
+
*/
|
294 |
+
|
295 |
+
var pluginNS="mCustomScrollbar",
|
296 |
+
pluginPfx="mCS",
|
297 |
+
defaultSelector=".mCustomScrollbar",
|
298 |
+
|
299 |
+
|
300 |
+
|
301 |
+
|
302 |
+
|
303 |
+
/*
|
304 |
+
----------------------------------------
|
305 |
+
DEFAULT OPTIONS
|
306 |
+
----------------------------------------
|
307 |
+
*/
|
308 |
+
|
309 |
+
defaults={
|
310 |
+
/*
|
311 |
+
set element/content width/height programmatically
|
312 |
+
values: boolean, pixels, percentage
|
313 |
+
option default
|
314 |
+
-------------------------------------
|
315 |
+
setWidth false
|
316 |
+
setHeight false
|
317 |
+
*/
|
318 |
+
/*
|
319 |
+
set the initial css top property of content
|
320 |
+
values: string (e.g. "-100px", "10%" etc.)
|
321 |
+
*/
|
322 |
+
setTop:0,
|
323 |
+
/*
|
324 |
+
set the initial css left property of content
|
325 |
+
values: string (e.g. "-100px", "10%" etc.)
|
326 |
+
*/
|
327 |
+
setLeft:0,
|
328 |
+
/*
|
329 |
+
scrollbar axis (vertical and/or horizontal scrollbars)
|
330 |
+
values (string): "y", "x", "yx"
|
331 |
+
*/
|
332 |
+
axis:"y",
|
333 |
+
/*
|
334 |
+
position of scrollbar relative to content
|
335 |
+
values (string): "inside", "outside" ("outside" requires elements with position:relative)
|
336 |
+
*/
|
337 |
+
scrollbarPosition:"inside",
|
338 |
+
/*
|
339 |
+
scrolling inertia
|
340 |
+
values: integer (milliseconds)
|
341 |
+
*/
|
342 |
+
scrollInertia:950,
|
343 |
+
/*
|
344 |
+
auto-adjust scrollbar dragger length
|
345 |
+
values: boolean
|
346 |
+
*/
|
347 |
+
autoDraggerLength:true,
|
348 |
+
/*
|
349 |
+
auto-hide scrollbar when idle
|
350 |
+
values: boolean
|
351 |
+
option default
|
352 |
+
-------------------------------------
|
353 |
+
autoHideScrollbar false
|
354 |
+
*/
|
355 |
+
/*
|
356 |
+
auto-expands scrollbar on mouse-over and dragging
|
357 |
+
values: boolean
|
358 |
+
option default
|
359 |
+
-------------------------------------
|
360 |
+
autoExpandScrollbar false
|
361 |
+
*/
|
362 |
+
/*
|
363 |
+
always show scrollbar, even when there's nothing to scroll
|
364 |
+
values: integer (0=disable, 1=always show dragger rail and buttons, 2=always show dragger rail, dragger and buttons), boolean
|
365 |
+
*/
|
366 |
+
alwaysShowScrollbar:0,
|
367 |
+
/*
|
368 |
+
scrolling always snaps to a multiple of this number in pixels
|
369 |
+
values: integer, array ([y,x])
|
370 |
+
option default
|
371 |
+
-------------------------------------
|
372 |
+
snapAmount null
|
373 |
+
*/
|
374 |
+
/*
|
375 |
+
when snapping, snap with this number in pixels as an offset
|
376 |
+
values: integer
|
377 |
+
*/
|
378 |
+
snapOffset:0,
|
379 |
+
/*
|
380 |
+
mouse-wheel scrolling
|
381 |
+
*/
|
382 |
+
mouseWheel:{
|
383 |
+
/*
|
384 |
+
enable mouse-wheel scrolling
|
385 |
+
values: boolean
|
386 |
+
*/
|
387 |
+
enable:true,
|
388 |
+
/*
|
389 |
+
scrolling amount in pixels
|
390 |
+
values: "auto", integer
|
391 |
+
*/
|
392 |
+
scrollAmount:"auto",
|
393 |
+
/*
|
394 |
+
mouse-wheel scrolling axis
|
395 |
+
the default scrolling direction when both vertical and horizontal scrollbars are present
|
396 |
+
values (string): "y", "x"
|
397 |
+
*/
|
398 |
+
axis:"y",
|
399 |
+
/*
|
400 |
+
prevent the default behaviour which automatically scrolls the parent element(s) when end of scrolling is reached
|
401 |
+
values: boolean
|
402 |
+
option default
|
403 |
+
-------------------------------------
|
404 |
+
preventDefault null
|
405 |
+
*/
|
406 |
+
/*
|
407 |
+
the reported mouse-wheel delta value. The number of lines (translated to pixels) one wheel notch scrolls.
|
408 |
+
values: "auto", integer
|
409 |
+
"auto" uses the default OS/browser value
|
410 |
+
*/
|
411 |
+
deltaFactor:"auto",
|
412 |
+
/*
|
413 |
+
normalize mouse-wheel delta to -1 or 1 (disables mouse-wheel acceleration)
|
414 |
+
values: boolean
|
415 |
+
option default
|
416 |
+
-------------------------------------
|
417 |
+
normalizeDelta null
|
418 |
+
*/
|
419 |
+
/*
|
420 |
+
invert mouse-wheel scrolling direction
|
421 |
+
values: boolean
|
422 |
+
option default
|
423 |
+
-------------------------------------
|
424 |
+
invert null
|
425 |
+
*/
|
426 |
+
/*
|
427 |
+
the tags that disable mouse-wheel when cursor is over them
|
428 |
+
*/
|
429 |
+
disableOver:["select","option","keygen","datalist","textarea"]
|
430 |
+
},
|
431 |
+
/*
|
432 |
+
scrollbar buttons
|
433 |
+
*/
|
434 |
+
scrollButtons:{
|
435 |
+
/*
|
436 |
+
enable scrollbar buttons
|
437 |
+
values: boolean
|
438 |
+
option default
|
439 |
+
-------------------------------------
|
440 |
+
enable null
|
441 |
+
*/
|
442 |
+
/*
|
443 |
+
scrollbar buttons scrolling type
|
444 |
+
values (string): "stepless", "stepped"
|
445 |
+
*/
|
446 |
+
scrollType:"stepless",
|
447 |
+
/*
|
448 |
+
scrolling amount in pixels
|
449 |
+
values: "auto", integer
|
450 |
+
*/
|
451 |
+
scrollAmount:"auto"
|
452 |
+
/*
|
453 |
+
tabindex of the scrollbar buttons
|
454 |
+
values: false, integer
|
455 |
+
option default
|
456 |
+
-------------------------------------
|
457 |
+
tabindex null
|
458 |
+
*/
|
459 |
+
},
|
460 |
+
/*
|
461 |
+
keyboard scrolling
|
462 |
+
*/
|
463 |
+
keyboard:{
|
464 |
+
/*
|
465 |
+
enable scrolling via keyboard
|
466 |
+
values: boolean
|
467 |
+
*/
|
468 |
+
enable:true,
|
469 |
+
/*
|
470 |
+
keyboard scrolling type
|
471 |
+
values (string): "stepless", "stepped"
|
472 |
+
*/
|
473 |
+
scrollType:"stepless",
|
474 |
+
/*
|
475 |
+
scrolling amount in pixels
|
476 |
+
values: "auto", integer
|
477 |
+
*/
|
478 |
+
scrollAmount:"auto"
|
479 |
+
},
|
480 |
+
/*
|
481 |
+
enable content touch-swipe scrolling
|
482 |
+
values: boolean, integer, string (number)
|
483 |
+
integer values define the axis-specific minimum amount required for scrolling momentum
|
484 |
+
*/
|
485 |
+
contentTouchScroll:25,
|
486 |
+
/*
|
487 |
+
enable/disable document (default) touch-swipe scrolling
|
488 |
+
*/
|
489 |
+
documentTouchScroll:true,
|
490 |
+
/*
|
491 |
+
advanced option parameters
|
492 |
+
*/
|
493 |
+
advanced:{
|
494 |
+
/*
|
495 |
+
auto-expand content horizontally (for "x" or "yx" axis)
|
496 |
+
values: boolean, integer (the value 2 forces the non scrollHeight/scrollWidth method, the value 3 forces the scrollHeight/scrollWidth method)
|
497 |
+
option default
|
498 |
+
-------------------------------------
|
499 |
+
autoExpandHorizontalScroll null
|
500 |
+
*/
|
501 |
+
/*
|
502 |
+
auto-scroll to elements with focus
|
503 |
+
*/
|
504 |
+
autoScrollOnFocus:"input,textarea,select,button,datalist,keygen,a[tabindex],area,object,[contenteditable='true']",
|
505 |
+
/*
|
506 |
+
auto-update scrollbars on content, element or viewport resize
|
507 |
+
should be true for fluid layouts/elements, adding/removing content dynamically, hiding/showing elements, content with images etc.
|
508 |
+
values: boolean
|
509 |
+
*/
|
510 |
+
updateOnContentResize:true,
|
511 |
+
/*
|
512 |
+
auto-update scrollbars each time each image inside the element is fully loaded
|
513 |
+
values: "auto", boolean
|
514 |
+
*/
|
515 |
+
updateOnImageLoad:"auto",
|
516 |
+
/*
|
517 |
+
auto-update scrollbars based on the amount and size changes of specific selectors
|
518 |
+
useful when you need to update the scrollbar(s) automatically, each time a type of element is added, removed or changes its size
|
519 |
+
values: boolean, string (e.g. "ul li" will auto-update scrollbars each time list-items inside the element are changed)
|
520 |
+
a value of true (boolean) will auto-update scrollbars each time any element is changed
|
521 |
+
option default
|
522 |
+
-------------------------------------
|
523 |
+
updateOnSelectorChange null
|
524 |
+
*/
|
525 |
+
/*
|
526 |
+
extra selectors that'll allow scrollbar dragging upon mousemove/up, pointermove/up, touchend etc. (e.g. "selector-1, selector-2")
|
527 |
+
option default
|
528 |
+
-------------------------------------
|
529 |
+
extraDraggableSelectors null
|
530 |
+
*/
|
531 |
+
/*
|
532 |
+
extra selectors that'll release scrollbar dragging upon mouseup, pointerup, touchend etc. (e.g. "selector-1, selector-2")
|
533 |
+
option default
|
534 |
+
-------------------------------------
|
535 |
+
releaseDraggableSelectors null
|
536 |
+
*/
|
537 |
+
/*
|
538 |
+
auto-update timeout
|
539 |
+
values: integer (milliseconds)
|
540 |
+
*/
|
541 |
+
autoUpdateTimeout:60
|
542 |
+
},
|
543 |
+
/*
|
544 |
+
scrollbar theme
|
545 |
+
values: string (see CSS/plugin URI for a list of ready-to-use themes)
|
546 |
+
*/
|
547 |
+
theme:"light",
|
548 |
+
/*
|
549 |
+
user defined callback functions
|
550 |
+
*/
|
551 |
+
callbacks:{
|
552 |
+
/*
|
553 |
+
Available callbacks:
|
554 |
+
callback default
|
555 |
+
-------------------------------------
|
556 |
+
onCreate null
|
557 |
+
onInit null
|
558 |
+
onScrollStart null
|
559 |
+
onScroll null
|
560 |
+
onTotalScroll null
|
561 |
+
onTotalScrollBack null
|
562 |
+
whileScrolling null
|
563 |
+
onOverflowY null
|
564 |
+
onOverflowX null
|
565 |
+
onOverflowYNone null
|
566 |
+
onOverflowXNone null
|
567 |
+
onImageLoad null
|
568 |
+
onSelectorChange null
|
569 |
+
onBeforeUpdate null
|
570 |
+
onUpdate null
|
571 |
+
*/
|
572 |
+
onTotalScrollOffset:0,
|
573 |
+
onTotalScrollBackOffset:0,
|
574 |
+
alwaysTriggerOffsets:true
|
575 |
+
}
|
576 |
+
/*
|
577 |
+
add scrollbar(s) on all elements matching the current selector, now and in the future
|
578 |
+
values: boolean, string
|
579 |
+
string values: "on" (enable), "once" (disable after first invocation), "off" (disable)
|
580 |
+
liveSelector values: string (selector)
|
581 |
+
option default
|
582 |
+
-------------------------------------
|
583 |
+
live false
|
584 |
+
liveSelector null
|
585 |
+
*/
|
586 |
+
},
|
587 |
+
|
588 |
+
|
589 |
+
|
590 |
+
|
591 |
+
|
592 |
+
/*
|
593 |
+
----------------------------------------
|
594 |
+
VARS, CONSTANTS
|
595 |
+
----------------------------------------
|
596 |
+
*/
|
597 |
+
|
598 |
+
totalInstances=0, /* plugin instances amount */
|
599 |
+
liveTimers={}, /* live option timers */
|
600 |
+
oldIE=(window.attachEvent && !window.addEventListener) ? 1 : 0, /* detect IE < 9 */
|
601 |
+
touchActive=false,touchable, /* global touch vars (for touch and pointer events) */
|
602 |
+
/* general plugin classes */
|
603 |
+
classes=[
|
604 |
+
"mCSB_dragger_onDrag","mCSB_scrollTools_onDrag","mCS_img_loaded","mCS_disabled","mCS_destroyed","mCS_no_scrollbar",
|
605 |
+
"mCS-autoHide","mCS-dir-rtl","mCS_no_scrollbar_y","mCS_no_scrollbar_x","mCS_y_hidden","mCS_x_hidden","mCSB_draggerContainer",
|
606 |
+
"mCSB_buttonUp","mCSB_buttonDown","mCSB_buttonLeft","mCSB_buttonRight"
|
607 |
+
],
|
608 |
+
|
609 |
+
|
610 |
+
|
611 |
+
|
612 |
+
|
613 |
+
/*
|
614 |
+
----------------------------------------
|
615 |
+
METHODS
|
616 |
+
----------------------------------------
|
617 |
+
*/
|
618 |
+
|
619 |
+
methods={
|
620 |
+
|
621 |
+
/*
|
622 |
+
plugin initialization method
|
623 |
+
creates the scrollbar(s), plugin data object and options
|
624 |
+
----------------------------------------
|
625 |
+
*/
|
626 |
+
|
627 |
+
init:function(options){
|
628 |
+
|
629 |
+
var options=$.extend(true,{},defaults,options),
|
630 |
+
selector=_selector.call(this); /* validate selector */
|
631 |
+
|
632 |
+
/*
|
633 |
+
if live option is enabled, monitor for elements matching the current selector and
|
634 |
+
apply scrollbar(s) when found (now and in the future)
|
635 |
+
*/
|
636 |
+
if(options.live){
|
637 |
+
var liveSelector=options.liveSelector || this.selector || defaultSelector, /* live selector(s) */
|
638 |
+
$liveSelector=$(liveSelector); /* live selector(s) as jquery object */
|
639 |
+
if(options.live==="off"){
|
640 |
+
/*
|
641 |
+
disable live if requested
|
642 |
+
usage: $(selector).mCustomScrollbar({live:"off"});
|
643 |
+
*/
|
644 |
+
removeLiveTimers(liveSelector);
|
645 |
+
return;
|
646 |
+
}
|
647 |
+
liveTimers[liveSelector]=setTimeout(function(){
|
648 |
+
/* call mCustomScrollbar fn on live selector(s) every half-second */
|
649 |
+
$liveSelector.mCustomScrollbar(options);
|
650 |
+
if(options.live==="once" && $liveSelector.length){
|
651 |
+
/* disable live after first invocation */
|
652 |
+
removeLiveTimers(liveSelector);
|
653 |
+
}
|
654 |
+
},500);
|
655 |
+
}else{
|
656 |
+
removeLiveTimers(liveSelector);
|
657 |
+
}
|
658 |
+
|
659 |
+
/* options backward compatibility (for versions < 3.0.0) and normalization */
|
660 |
+
options.setWidth=(options.set_width) ? options.set_width : options.setWidth;
|
661 |
+
options.setHeight=(options.set_height) ? options.set_height : options.setHeight;
|
662 |
+
options.axis=(options.horizontalScroll) ? "x" : _findAxis(options.axis);
|
663 |
+
options.scrollInertia=options.scrollInertia>0 && options.scrollInertia<17 ? 17 : options.scrollInertia;
|
664 |
+
if(typeof options.mouseWheel!=="object" && options.mouseWheel==true){ /* old school mouseWheel option (non-object) */
|
665 |
+
options.mouseWheel={enable:true,scrollAmount:"auto",axis:"y",preventDefault:false,deltaFactor:"auto",normalizeDelta:false,invert:false}
|
666 |
+
}
|
667 |
+
options.mouseWheel.scrollAmount=!options.mouseWheelPixels ? options.mouseWheel.scrollAmount : options.mouseWheelPixels;
|
668 |
+
options.mouseWheel.normalizeDelta=!options.advanced.normalizeMouseWheelDelta ? options.mouseWheel.normalizeDelta : options.advanced.normalizeMouseWheelDelta;
|
669 |
+
options.scrollButtons.scrollType=_findScrollButtonsType(options.scrollButtons.scrollType);
|
670 |
+
|
671 |
+
_theme(options); /* theme-specific options */
|
672 |
+
|
673 |
+
/* plugin constructor */
|
674 |
+
return $(selector).each(function(){
|
675 |
+
|
676 |
+
var $this=$(this);
|
677 |
+
|
678 |
+
if(!$this.data(pluginPfx)){ /* prevent multiple instantiations */
|
679 |
+
|
680 |
+
/* store options and create objects in jquery data */
|
681 |
+
$this.data(pluginPfx,{
|
682 |
+
idx:++totalInstances, /* instance index */
|
683 |
+
opt:options, /* options */
|
684 |
+
scrollRatio:{y:null,x:null}, /* scrollbar to content ratio */
|
685 |
+
overflowed:null, /* overflowed axis */
|
686 |
+
contentReset:{y:null,x:null}, /* object to check when content resets */
|
687 |
+
bindEvents:false, /* object to check if events are bound */
|
688 |
+
tweenRunning:false, /* object to check if tween is running */
|
689 |
+
sequential:{}, /* sequential scrolling object */
|
690 |
+
langDir:$this.css("direction"), /* detect/store direction (ltr or rtl) */
|
691 |
+
cbOffsets:null, /* object to check whether callback offsets always trigger */
|
692 |
+
/*
|
693 |
+
object to check how scrolling events where last triggered
|
694 |
+
"internal" (default - triggered by this script), "external" (triggered by other scripts, e.g. via scrollTo method)
|
695 |
+
usage: object.data("mCS").trigger
|
696 |
+
*/
|
697 |
+
trigger:null,
|
698 |
+
/*
|
699 |
+
object to check for changes in elements in order to call the update method automatically
|
700 |
+
*/
|
701 |
+
poll:{size:{o:0,n:0},img:{o:0,n:0},change:{o:0,n:0}}
|
702 |
+
});
|
703 |
+
|
704 |
+
var d=$this.data(pluginPfx),o=d.opt,
|
705 |
+
/* HTML data attributes */
|
706 |
+
htmlDataAxis=$this.data("mcs-axis"),htmlDataSbPos=$this.data("mcs-scrollbar-position"),htmlDataTheme=$this.data("mcs-theme");
|
707 |
+
|
708 |
+
if(htmlDataAxis){o.axis=htmlDataAxis;} /* usage example: data-mcs-axis="y" */
|
709 |
+
if(htmlDataSbPos){o.scrollbarPosition=htmlDataSbPos;} /* usage example: data-mcs-scrollbar-position="outside" */
|
710 |
+
if(htmlDataTheme){ /* usage example: data-mcs-theme="minimal" */
|
711 |
+
o.theme=htmlDataTheme;
|
712 |
+
_theme(o); /* theme-specific options */
|
713 |
+
}
|
714 |
+
|
715 |
+
_pluginMarkup.call(this); /* add plugin markup */
|
716 |
+
|
717 |
+
if(d && o.callbacks.onCreate && typeof o.callbacks.onCreate==="function"){o.callbacks.onCreate.call(this);} /* callbacks: onCreate */
|
718 |
+
|
719 |
+
$("#mCSB_"+d.idx+"_container img:not(."+classes[2]+")").addClass(classes[2]); /* flag loaded images */
|
720 |
+
|
721 |
+
methods.update.call(null,$this); /* call the update method */
|
722 |
+
|
723 |
+
}
|
724 |
+
|
725 |
+
});
|
726 |
+
|
727 |
+
},
|
728 |
+
/* ---------------------------------------- */
|
729 |
+
|
730 |
+
|
731 |
+
|
732 |
+
/*
|
733 |
+
plugin update method
|
734 |
+
updates content and scrollbar(s) values, events and status
|
735 |
+
----------------------------------------
|
736 |
+
usage: $(selector).mCustomScrollbar("update");
|
737 |
+
*/
|
738 |
+
|
739 |
+
update:function(el,cb){
|
740 |
+
|
741 |
+
var selector=el || _selector.call(this); /* validate selector */
|
742 |
+
|
743 |
+
return $(selector).each(function(){
|
744 |
+
|
745 |
+
var $this=$(this);
|
746 |
+
|
747 |
+
if($this.data(pluginPfx)){ /* check if plugin has initialized */
|
748 |
+
|
749 |
+
var d=$this.data(pluginPfx),o=d.opt,
|
750 |
+
mCSB_container=$("#mCSB_"+d.idx+"_container"),
|
751 |
+
mCustomScrollBox=$("#mCSB_"+d.idx),
|
752 |
+
mCSB_dragger=[$("#mCSB_"+d.idx+"_dragger_vertical"),$("#mCSB_"+d.idx+"_dragger_horizontal")];
|
753 |
+
|
754 |
+
if(!mCSB_container.length){return;}
|
755 |
+
|
756 |
+
if(d.tweenRunning){_stop($this);} /* stop any running tweens while updating */
|
757 |
+
|
758 |
+
if(cb && d && o.callbacks.onBeforeUpdate && typeof o.callbacks.onBeforeUpdate==="function"){o.callbacks.onBeforeUpdate.call(this);} /* callbacks: onBeforeUpdate */
|
759 |
+
|
760 |
+
/* if element was disabled or destroyed, remove class(es) */
|
761 |
+
if($this.hasClass(classes[3])){$this.removeClass(classes[3]);}
|
762 |
+
if($this.hasClass(classes[4])){$this.removeClass(classes[4]);}
|
763 |
+
|
764 |
+
/* css flexbox fix, detect/set max-height */
|
765 |
+
mCustomScrollBox.css("max-height","none");
|
766 |
+
if(mCustomScrollBox.height()!==$this.height()){mCustomScrollBox.css("max-height",$this.height());}
|
767 |
+
|
768 |
+
_expandContentHorizontally.call(this); /* expand content horizontally */
|
769 |
+
|
770 |
+
if(o.axis!=="y" && !o.advanced.autoExpandHorizontalScroll){
|
771 |
+
mCSB_container.css("width",_contentWidth(mCSB_container));
|
772 |
+
}
|
773 |
+
|
774 |
+
d.overflowed=_overflowed.call(this); /* determine if scrolling is required */
|
775 |
+
|
776 |
+
_scrollbarVisibility.call(this); /* show/hide scrollbar(s) */
|
777 |
+
|
778 |
+
/* auto-adjust scrollbar dragger length analogous to content */
|
779 |
+
if(o.autoDraggerLength){_setDraggerLength.call(this);}
|
780 |
+
|
781 |
+
_scrollRatio.call(this); /* calculate and store scrollbar to content ratio */
|
782 |
+
|
783 |
+
_bindEvents.call(this); /* bind scrollbar events */
|
784 |
+
|
785 |
+
/* reset scrolling position and/or events */
|
786 |
+
var to=[Math.abs(mCSB_container[0].offsetTop),Math.abs(mCSB_container[0].offsetLeft)];
|
787 |
+
if(o.axis!=="x"){ /* y/yx axis */
|
788 |
+
if(!d.overflowed[0]){ /* y scrolling is not required */
|
789 |
+
_resetContentPosition.call(this); /* reset content position */
|
790 |
+
if(o.axis==="y"){
|
791 |
+
_unbindEvents.call(this);
|
792 |
+
}else if(o.axis==="yx" && d.overflowed[1]){
|
793 |
+
_scrollTo($this,to[1].toString(),{dir:"x",dur:0,overwrite:"none"});
|
794 |
+
}
|
795 |
+
}else if(mCSB_dragger[0].height()>mCSB_dragger[0].parent().height()){
|
796 |
+
_resetContentPosition.call(this); /* reset content position */
|
797 |
+
}else{ /* y scrolling is required */
|
798 |
+
_scrollTo($this,to[0].toString(),{dir:"y",dur:0,overwrite:"none"});
|
799 |
+
d.contentReset.y=null;
|
800 |
+
}
|
801 |
+
}
|
802 |
+
if(o.axis!=="y"){ /* x/yx axis */
|
803 |
+
if(!d.overflowed[1]){ /* x scrolling is not required */
|
804 |
+
_resetContentPosition.call(this); /* reset content position */
|
805 |
+
if(o.axis==="x"){
|
806 |
+
_unbindEvents.call(this);
|
807 |
+
}else if(o.axis==="yx" && d.overflowed[0]){
|
808 |
+
_scrollTo($this,to[0].toString(),{dir:"y",dur:0,overwrite:"none"});
|
809 |
+
}
|
810 |
+
}else if(mCSB_dragger[1].width()>mCSB_dragger[1].parent().width()){
|
811 |
+
_resetContentPosition.call(this); /* reset content position */
|
812 |
+
}else{ /* x scrolling is required */
|
813 |
+
_scrollTo($this,to[1].toString(),{dir:"x",dur:0,overwrite:"none"});
|
814 |
+
d.contentReset.x=null;
|
815 |
+
}
|
816 |
+
}
|
817 |
+
|
818 |
+
/* callbacks: onImageLoad, onSelectorChange, onUpdate */
|
819 |
+
if(cb && d){
|
820 |
+
if(cb===2 && o.callbacks.onImageLoad && typeof o.callbacks.onImageLoad==="function"){
|
821 |
+
o.callbacks.onImageLoad.call(this);
|
822 |
+
}else if(cb===3 && o.callbacks.onSelectorChange && typeof o.callbacks.onSelectorChange==="function"){
|
823 |
+
o.callbacks.onSelectorChange.call(this);
|
824 |
+
}else if(o.callbacks.onUpdate && typeof o.callbacks.onUpdate==="function"){
|
825 |
+
o.callbacks.onUpdate.call(this);
|
826 |
+
}
|
827 |
+
}
|
828 |
+
|
829 |
+
_autoUpdate.call(this); /* initialize automatic updating (for dynamic content, fluid layouts etc.) */
|
830 |
+
|
831 |
+
}
|
832 |
+
|
833 |
+
});
|
834 |
+
|
835 |
+
},
|
836 |
+
/* ---------------------------------------- */
|
837 |
+
|
838 |
+
|
839 |
+
|
840 |
+
/*
|
841 |
+
plugin scrollTo method
|
842 |
+
triggers a scrolling event to a specific value
|
843 |
+
----------------------------------------
|
844 |
+
usage: $(selector).mCustomScrollbar("scrollTo",value,options);
|
845 |
+
*/
|
846 |
+
|
847 |
+
scrollTo:function(val,options){
|
848 |
+
|
849 |
+
/* prevent silly things like $(selector).mCustomScrollbar("scrollTo",undefined); */
|
850 |
+
if(typeof val=="undefined" || val==null){return;}
|
851 |
+
|
852 |
+
var selector=_selector.call(this); /* validate selector */
|
853 |
+
|
854 |
+
return $(selector).each(function(){
|
855 |
+
|
856 |
+
var $this=$(this);
|
857 |
+
|
858 |
+
if($this.data(pluginPfx)){ /* check if plugin has initialized */
|
859 |
+
|
860 |
+
var d=$this.data(pluginPfx),o=d.opt,
|
861 |
+
/* method default options */
|
862 |
+
methodDefaults={
|
863 |
+
trigger:"external", /* method is by default triggered externally (e.g. from other scripts) */
|
864 |
+
scrollInertia:o.scrollInertia, /* scrolling inertia (animation duration) */
|
865 |
+
scrollEasing:"mcsEaseInOut", /* animation easing */
|
866 |
+
moveDragger:false, /* move dragger instead of content */
|
867 |
+
timeout:60, /* scroll-to delay */
|
868 |
+
callbacks:true, /* enable/disable callbacks */
|
869 |
+
onStart:true,
|
870 |
+
onUpdate:true,
|
871 |
+
onComplete:true
|
872 |
+
},
|
873 |
+
methodOptions=$.extend(true,{},methodDefaults,options),
|
874 |
+
to=_arr.call(this,val),dur=methodOptions.scrollInertia>0 && methodOptions.scrollInertia<17 ? 17 : methodOptions.scrollInertia;
|
875 |
+
|
876 |
+
/* translate yx values to actual scroll-to positions */
|
877 |
+
to[0]=_to.call(this,to[0],"y");
|
878 |
+
to[1]=_to.call(this,to[1],"x");
|
879 |
+
|
880 |
+
/*
|
881 |
+
check if scroll-to value moves the dragger instead of content.
|
882 |
+
Only pixel values apply on dragger (e.g. 100, "100px", "-=100" etc.)
|
883 |
+
*/
|
884 |
+
if(methodOptions.moveDragger){
|
885 |
+
to[0]*=d.scrollRatio.y;
|
886 |
+
to[1]*=d.scrollRatio.x;
|
887 |
+
}
|
888 |
+
|
889 |
+
methodOptions.dur=_isTabHidden() ? 0 : dur; //skip animations if browser tab is hidden
|
890 |
+
|
891 |
+
setTimeout(function(){
|
892 |
+
/* do the scrolling */
|
893 |
+
if(to[0]!==null && typeof to[0]!=="undefined" && o.axis!=="x" && d.overflowed[0]){ /* scroll y */
|
894 |
+
methodOptions.dir="y";
|
895 |
+
methodOptions.overwrite="all";
|
896 |
+
_scrollTo($this,to[0].toString(),methodOptions);
|
897 |
+
}
|
898 |
+
if(to[1]!==null && typeof to[1]!=="undefined" && o.axis!=="y" && d.overflowed[1]){ /* scroll x */
|
899 |
+
methodOptions.dir="x";
|
900 |
+
methodOptions.overwrite="none";
|
901 |
+
_scrollTo($this,to[1].toString(),methodOptions);
|
902 |
+
}
|
903 |
+
},methodOptions.timeout);
|
904 |
+
|
905 |
+
}
|
906 |
+
|
907 |
+
});
|
908 |
+
|
909 |
+
},
|
910 |
+
/* ---------------------------------------- */
|
911 |
+
|
912 |
+
|
913 |
+
|
914 |
+
/*
|
915 |
+
plugin stop method
|
916 |
+
stops scrolling animation
|
917 |
+
----------------------------------------
|
918 |
+
usage: $(selector).mCustomScrollbar("stop");
|
919 |
+
*/
|
920 |
+
stop:function(){
|
921 |
+
|
922 |
+
var selector=_selector.call(this); /* validate selector */
|
923 |
+
|
924 |
+
return $(selector).each(function(){
|
925 |
+
|
926 |
+
var $this=$(this);
|
927 |
+
|
928 |
+
if($this.data(pluginPfx)){ /* check if plugin has initialized */
|
929 |
+
|
930 |
+
_stop($this);
|
931 |
+
|
932 |
+
}
|
933 |
+
|
934 |
+
});
|
935 |
+
|
936 |
+
},
|
937 |
+
/* ---------------------------------------- */
|
938 |
+
|
939 |
+
|
940 |
+
|
941 |
+
/*
|
942 |
+
plugin disable method
|
943 |
+
temporarily disables the scrollbar(s)
|
944 |
+
----------------------------------------
|
945 |
+
usage: $(selector).mCustomScrollbar("disable",reset);
|
946 |
+
reset (boolean): resets content position to 0
|
947 |
+
*/
|
948 |
+
disable:function(r){
|
949 |
+
|
950 |
+
var selector=_selector.call(this); /* validate selector */
|
951 |
+
|
952 |
+
return $(selector).each(function(){
|
953 |
+
|
954 |
+
var $this=$(this);
|
955 |
+
|
956 |
+
if($this.data(pluginPfx)){ /* check if plugin has initialized */
|
957 |
+
|
958 |
+
var d=$this.data(pluginPfx);
|
959 |
+
|
960 |
+
_autoUpdate.call(this,"remove"); /* remove automatic updating */
|
961 |
+
|
962 |
+
_unbindEvents.call(this); /* unbind events */
|
963 |
+
|
964 |
+
if(r){_resetContentPosition.call(this);} /* reset content position */
|
965 |
+
|
966 |
+
_scrollbarVisibility.call(this,true); /* show/hide scrollbar(s) */
|
967 |
+
|
968 |
+
$this.addClass(classes[3]); /* add disable class */
|
969 |
+
|
970 |
+
}
|
971 |
+
|
972 |
+
});
|
973 |
+
|
974 |
+
},
|
975 |
+
/* ---------------------------------------- */
|
976 |
+
|
977 |
+
|
978 |
+
|
979 |
+
/*
|
980 |
+
plugin destroy method
|
981 |
+
completely removes the scrollbar(s) and returns the element to its original state
|
982 |
+
----------------------------------------
|
983 |
+
usage: $(selector).mCustomScrollbar("destroy");
|
984 |
+
*/
|
985 |
+
destroy:function(){
|
986 |
+
|
987 |
+
var selector=_selector.call(this); /* validate selector */
|
988 |
+
|
989 |
+
return $(selector).each(function(){
|
990 |
+
|
991 |
+
var $this=$(this);
|
992 |
+
|
993 |
+
if($this.data(pluginPfx)){ /* check if plugin has initialized */
|
994 |
+
|
995 |
+
var d=$this.data(pluginPfx),o=d.opt,
|
996 |
+
mCustomScrollBox=$("#mCSB_"+d.idx),
|
997 |
+
mCSB_container=$("#mCSB_"+d.idx+"_container"),
|
998 |
+
scrollbar=$(".mCSB_"+d.idx+"_scrollbar");
|
999 |
+
|
1000 |
+
if(o.live){removeLiveTimers(o.liveSelector || $(selector).selector);} /* remove live timers */
|
1001 |
+
|
1002 |
+
_autoUpdate.call(this,"remove"); /* remove automatic updating */
|
1003 |
+
|
1004 |
+
_unbindEvents.call(this); /* unbind events */
|
1005 |
+
|
1006 |
+
_resetContentPosition.call(this); /* reset content position */
|
1007 |
+
|
1008 |
+
$this.removeData(pluginPfx); /* remove plugin data object */
|
1009 |
+
|
1010 |
+
_delete(this,"mcs"); /* delete callbacks object */
|
1011 |
+
|
1012 |
+
/* remove plugin markup */
|
1013 |
+
scrollbar.remove(); /* remove scrollbar(s) first (those can be either inside or outside plugin's inner wrapper) */
|
1014 |
+
mCSB_container.find("img."+classes[2]).removeClass(classes[2]); /* remove loaded images flag */
|
1015 |
+
mCustomScrollBox.replaceWith(mCSB_container.contents()); /* replace plugin's inner wrapper with the original content */
|
1016 |
+
/* remove plugin classes from the element and add destroy class */
|
1017 |
+
$this.removeClass(pluginNS+" _"+pluginPfx+"_"+d.idx+" "+classes[6]+" "+classes[7]+" "+classes[5]+" "+classes[3]).addClass(classes[4]);
|
1018 |
+
|
1019 |
+
}
|
1020 |
+
|
1021 |
+
});
|
1022 |
+
|
1023 |
+
}
|
1024 |
+
/* ---------------------------------------- */
|
1025 |
+
|
1026 |
+
},
|
1027 |
+
|
1028 |
+
|
1029 |
+
|
1030 |
+
|
1031 |
+
|
1032 |
+
/*
|
1033 |
+
----------------------------------------
|
1034 |
+
FUNCTIONS
|
1035 |
+
----------------------------------------
|
1036 |
+
*/
|
1037 |
+
|
1038 |
+
/* validates selector (if selector is invalid or undefined uses the default one) */
|
1039 |
+
_selector=function(){
|
1040 |
+
return (typeof $(this)!=="object" || $(this).length<1) ? defaultSelector : this;
|
1041 |
+
},
|
1042 |
+
/* -------------------- */
|
1043 |
+
|
1044 |
+
|
1045 |
+
/* changes options according to theme */
|
1046 |
+
_theme=function(obj){
|
1047 |
+
var fixedSizeScrollbarThemes=["rounded","rounded-dark","rounded-dots","rounded-dots-dark"],
|
1048 |
+
nonExpandedScrollbarThemes=["rounded-dots","rounded-dots-dark","3d","3d-dark","3d-thick","3d-thick-dark","inset","inset-dark","inset-2","inset-2-dark","inset-3","inset-3-dark"],
|
1049 |
+
disabledScrollButtonsThemes=["minimal","minimal-dark"],
|
1050 |
+
enabledAutoHideScrollbarThemes=["minimal","minimal-dark"],
|
1051 |
+
scrollbarPositionOutsideThemes=["minimal","minimal-dark"];
|
1052 |
+
obj.autoDraggerLength=$.inArray(obj.theme,fixedSizeScrollbarThemes) > -1 ? false : obj.autoDraggerLength;
|
1053 |
+
obj.autoExpandScrollbar=$.inArray(obj.theme,nonExpandedScrollbarThemes) > -1 ? false : obj.autoExpandScrollbar;
|
1054 |
+
obj.scrollButtons.enable=$.inArray(obj.theme,disabledScrollButtonsThemes) > -1 ? false : obj.scrollButtons.enable;
|
1055 |
+
obj.autoHideScrollbar=$.inArray(obj.theme,enabledAutoHideScrollbarThemes) > -1 ? true : obj.autoHideScrollbar;
|
1056 |
+
obj.scrollbarPosition=$.inArray(obj.theme,scrollbarPositionOutsideThemes) > -1 ? "outside" : obj.scrollbarPosition;
|
1057 |
+
},
|
1058 |
+
/* -------------------- */
|
1059 |
+
|
1060 |
+
|
1061 |
+
/* live option timers removal */
|
1062 |
+
removeLiveTimers=function(selector){
|
1063 |
+
if(liveTimers[selector]){
|
1064 |
+
clearTimeout(liveTimers[selector]);
|
1065 |
+
_delete(liveTimers,selector);
|
1066 |
+
}
|
1067 |
+
},
|
1068 |
+
/* -------------------- */
|
1069 |
+
|
1070 |
+
|
1071 |
+
/* normalizes axis option to valid values: "y", "x", "yx" */
|
1072 |
+
_findAxis=function(val){
|
1073 |
+
return (val==="yx" || val==="xy" || val==="auto") ? "yx" : (val==="x" || val==="horizontal") ? "x" : "y";
|
1074 |
+
},
|
1075 |
+
/* -------------------- */
|
1076 |
+
|
1077 |
+
|
1078 |
+
/* normalizes scrollButtons.scrollType option to valid values: "stepless", "stepped" */
|
1079 |
+
_findScrollButtonsType=function(val){
|
1080 |
+
return (val==="stepped" || val==="pixels" || val==="step" || val==="click") ? "stepped" : "stepless";
|
1081 |
+
},
|
1082 |
+
/* -------------------- */
|
1083 |
+
|
1084 |
+
|
1085 |
+
/* generates plugin markup */
|
1086 |
+
_pluginMarkup=function(){
|
1087 |
+
var $this=$(this),d=$this.data(pluginPfx),o=d.opt,
|
1088 |
+
expandClass=o.autoExpandScrollbar ? " "+classes[1]+"_expand" : "",
|
1089 |
+
scrollbar=["<div id='mCSB_"+d.idx+"_scrollbar_vertical' class='mCSB_scrollTools mCSB_"+d.idx+"_scrollbar mCS-"+o.theme+" mCSB_scrollTools_vertical"+expandClass+"'><div class='"+classes[12]+"'><div id='mCSB_"+d.idx+"_dragger_vertical' class='mCSB_dragger' style='position:absolute;'><div class='mCSB_dragger_bar' /></div><div class='mCSB_draggerRail' /></div></div>","<div id='mCSB_"+d.idx+"_scrollbar_horizontal' class='mCSB_scrollTools mCSB_"+d.idx+"_scrollbar mCS-"+o.theme+" mCSB_scrollTools_horizontal"+expandClass+"'><div class='"+classes[12]+"'><div id='mCSB_"+d.idx+"_dragger_horizontal' class='mCSB_dragger' style='position:absolute;'><div class='mCSB_dragger_bar' /></div><div class='mCSB_draggerRail' /></div></div>"],
|
1090 |
+
wrapperClass=o.axis==="yx" ? "mCSB_vertical_horizontal" : o.axis==="x" ? "mCSB_horizontal" : "mCSB_vertical",
|
1091 |
+
scrollbars=o.axis==="yx" ? scrollbar[0]+scrollbar[1] : o.axis==="x" ? scrollbar[1] : scrollbar[0],
|
1092 |
+
contentWrapper=o.axis==="yx" ? "<div id='mCSB_"+d.idx+"_container_wrapper' class='mCSB_container_wrapper' />" : "",
|
1093 |
+
autoHideClass=o.autoHideScrollbar ? " "+classes[6] : "",
|
1094 |
+
scrollbarDirClass=(o.axis!=="x" && d.langDir==="rtl") ? " "+classes[7] : "";
|
1095 |
+
if(o.setWidth){$this.css("width",o.setWidth);} /* set element width */
|
1096 |
+
if(o.setHeight){$this.css("height",o.setHeight);} /* set element height */
|
1097 |
+
o.setLeft=(o.axis!=="y" && d.langDir==="rtl") ? "989999px" : o.setLeft; /* adjust left position for rtl direction */
|
1098 |
+
$this.addClass(pluginNS+" _"+pluginPfx+"_"+d.idx+autoHideClass+scrollbarDirClass).wrapInner("<div id='mCSB_"+d.idx+"' class='mCustomScrollBox mCS-"+o.theme+" "+wrapperClass+"'><div id='mCSB_"+d.idx+"_container' class='mCSB_container' style='position:relative; top:"+o.setTop+"; left:"+o.setLeft+";' dir='"+d.langDir+"' /></div>");
|
1099 |
+
var mCustomScrollBox=$("#mCSB_"+d.idx),
|
1100 |
+
mCSB_container=$("#mCSB_"+d.idx+"_container");
|
1101 |
+
if(o.axis!=="y" && !o.advanced.autoExpandHorizontalScroll){
|
1102 |
+
mCSB_container.css("width",_contentWidth(mCSB_container));
|
1103 |
+
}
|
1104 |
+
if(o.scrollbarPosition==="outside"){
|
1105 |
+
if($this.css("position")==="static"){ /* requires elements with non-static position */
|
1106 |
+
$this.css("position","relative");
|
1107 |
+
}
|
1108 |
+
$this.css("overflow","visible");
|
1109 |
+
mCustomScrollBox.addClass("mCSB_outside").after(scrollbars);
|
1110 |
+
}else{
|
1111 |
+
mCustomScrollBox.addClass("mCSB_inside").append(scrollbars);
|
1112 |
+
mCSB_container.wrap(contentWrapper);
|
1113 |
+
}
|
1114 |
+
_scrollButtons.call(this); /* add scrollbar buttons */
|
1115 |
+
/* minimum dragger length */
|
1116 |
+
var mCSB_dragger=[$("#mCSB_"+d.idx+"_dragger_vertical"),$("#mCSB_"+d.idx+"_dragger_horizontal")];
|
1117 |
+
mCSB_dragger[0].css("min-height",mCSB_dragger[0].height());
|
1118 |
+
mCSB_dragger[1].css("min-width",mCSB_dragger[1].width());
|
1119 |
+
},
|
1120 |
+
/* -------------------- */
|
1121 |
+
|
1122 |
+
|
1123 |
+
/* calculates content width */
|
1124 |
+
_contentWidth=function(el){
|
1125 |
+
var val=[el[0].scrollWidth,Math.max.apply(Math,el.children().map(function(){return $(this).outerWidth(true);}).get())],w=el.parent().width();
|
1126 |
+
return val[0]>w ? val[0] : val[1]>w ? val[1] : "100%";
|
1127 |
+
},
|
1128 |
+
/* -------------------- */
|
1129 |
+
|
1130 |
+
|
1131 |
+
/* expands content horizontally */
|
1132 |
+
_expandContentHorizontally=function(){
|
1133 |
+
var $this=$(this),d=$this.data(pluginPfx),o=d.opt,
|
1134 |
+
mCSB_container=$("#mCSB_"+d.idx+"_container");
|
1135 |
+
if(o.advanced.autoExpandHorizontalScroll && o.axis!=="y"){
|
1136 |
+
/* calculate scrollWidth */
|
1137 |
+
mCSB_container.css({"width":"auto","min-width":0,"overflow-x":"scroll"});
|
1138 |
+
var w=Math.ceil(mCSB_container[0].scrollWidth);
|
1139 |
+
if(o.advanced.autoExpandHorizontalScroll===3 || (o.advanced.autoExpandHorizontalScroll!==2 && w>mCSB_container.parent().width())){
|
1140 |
+
mCSB_container.css({"width":w,"min-width":"100%","overflow-x":"inherit"});
|
1141 |
+
}else{
|
1142 |
+
/*
|
1143 |
+
wrap content with an infinite width div and set its position to absolute and width to auto.
|
1144 |
+
Setting width to auto before calculating the actual width is important!
|
1145 |
+
We must let the browser set the width as browser zoom values are impossible to calculate.
|
1146 |
+
*/
|
1147 |
+
mCSB_container.css({"overflow-x":"inherit","position":"absolute"})
|
1148 |
+
.wrap("<div class='mCSB_h_wrapper' style='position:relative; left:0; width:999999px;' />")
|
1149 |
+
.css({ /* set actual width, original position and un-wrap */
|
1150 |
+
/*
|
1151 |
+
get the exact width (with decimals) and then round-up.
|
1152 |
+
Using jquery outerWidth() will round the width value which will mess up with inner elements that have non-integer width
|
1153 |
+
*/
|
1154 |
+
"width":(Math.ceil(mCSB_container[0].getBoundingClientRect().right+0.4)-Math.floor(mCSB_container[0].getBoundingClientRect().left)),
|
1155 |
+
"min-width":"100%",
|
1156 |
+
"position":"relative"
|
1157 |
+
}).unwrap();
|
1158 |
+
}
|
1159 |
+
}
|
1160 |
+
},
|
1161 |
+
/* -------------------- */
|
1162 |
+
|
1163 |
+
|
1164 |
+
/* adds scrollbar buttons */
|
1165 |
+
_scrollButtons=function(){
|
1166 |
+
var $this=$(this),d=$this.data(pluginPfx),o=d.opt,
|
1167 |
+
mCSB_scrollTools=$(".mCSB_"+d.idx+"_scrollbar:first"),
|
1168 |
+
tabindex=!_isNumeric(o.scrollButtons.tabindex) ? "" : "tabindex='"+o.scrollButtons.tabindex+"'",
|
1169 |
+
btnHTML=[
|
1170 |
+
"<a href='#' class='"+classes[13]+"' "+tabindex+" />",
|
1171 |
+
"<a href='#' class='"+classes[14]+"' "+tabindex+" />",
|
1172 |
+
"<a href='#' class='"+classes[15]+"' "+tabindex+" />",
|
1173 |
+
"<a href='#' class='"+classes[16]+"' "+tabindex+" />"
|
1174 |
+
],
|
1175 |
+
btn=[(o.axis==="x" ? btnHTML[2] : btnHTML[0]),(o.axis==="x" ? btnHTML[3] : btnHTML[1]),btnHTML[2],btnHTML[3]];
|
1176 |
+
if(o.scrollButtons.enable){
|
1177 |
+
mCSB_scrollTools.prepend(btn[0]).append(btn[1]).next(".mCSB_scrollTools").prepend(btn[2]).append(btn[3]);
|
1178 |
+
}
|
1179 |
+
},
|
1180 |
+
/* -------------------- */
|
1181 |
+
|
1182 |
+
|
1183 |
+
/* auto-adjusts scrollbar dragger length */
|
1184 |
+
_setDraggerLength=function(){
|
1185 |
+
var $this=$(this),d=$this.data(pluginPfx),
|
1186 |
+
mCustomScrollBox=$("#mCSB_"+d.idx),
|
1187 |
+
mCSB_container=$("#mCSB_"+d.idx+"_container"),
|
1188 |
+
mCSB_dragger=[$("#mCSB_"+d.idx+"_dragger_vertical"),$("#mCSB_"+d.idx+"_dragger_horizontal")],
|
1189 |
+
ratio=[mCustomScrollBox.height()/mCSB_container.outerHeight(false),mCustomScrollBox.width()/mCSB_container.outerWidth(false)],
|
1190 |
+
l=[
|
1191 |
+
parseInt(mCSB_dragger[0].css("min-height")),Math.round(ratio[0]*mCSB_dragger[0].parent().height()),
|
1192 |
+
parseInt(mCSB_dragger[1].css("min-width")),Math.round(ratio[1]*mCSB_dragger[1].parent().width())
|
1193 |
+
],
|
1194 |
+
h=oldIE && (l[1]<l[0]) ? l[0] : l[1],w=oldIE && (l[3]<l[2]) ? l[2] : l[3];
|
1195 |
+
mCSB_dragger[0].css({
|
1196 |
+
"height":h,"max-height":(mCSB_dragger[0].parent().height()-10)
|
1197 |
+
}).find(".mCSB_dragger_bar").css({"line-height":l[0]+"px"});
|
1198 |
+
mCSB_dragger[1].css({
|
1199 |
+
"width":w,"max-width":(mCSB_dragger[1].parent().width()-10)
|
1200 |
+
});
|
1201 |
+
},
|
1202 |
+
/* -------------------- */
|
1203 |
+
|
1204 |
+
|
1205 |
+
/* calculates scrollbar to content ratio */
|
1206 |
+
_scrollRatio=function(){
|
1207 |
+
var $this=$(this),d=$this.data(pluginPfx),
|
1208 |
+
mCustomScrollBox=$("#mCSB_"+d.idx),
|
1209 |
+
mCSB_container=$("#mCSB_"+d.idx+"_container"),
|
1210 |
+
mCSB_dragger=[$("#mCSB_"+d.idx+"_dragger_vertical"),$("#mCSB_"+d.idx+"_dragger_horizontal")],
|
1211 |
+
scrollAmount=[mCSB_container.outerHeight(false)-mCustomScrollBox.height(),mCSB_container.outerWidth(false)-mCustomScrollBox.width()],
|
1212 |
+
ratio=[
|
1213 |
+
scrollAmount[0]/(mCSB_dragger[0].parent().height()-mCSB_dragger[0].height()),
|
1214 |
+
scrollAmount[1]/(mCSB_dragger[1].parent().width()-mCSB_dragger[1].width())
|
1215 |
+
];
|
1216 |
+
d.scrollRatio={y:ratio[0],x:ratio[1]};
|
1217 |
+
},
|
1218 |
+
/* -------------------- */
|
1219 |
+
|
1220 |
+
|
1221 |
+
/* toggles scrolling classes */
|
1222 |
+
_onDragClasses=function(el,action,xpnd){
|
1223 |
+
var expandClass=xpnd ? classes[0]+"_expanded" : "",
|
1224 |
+
scrollbar=el.closest(".mCSB_scrollTools");
|
1225 |
+
if(action==="active"){
|
1226 |
+
el.toggleClass(classes[0]+" "+expandClass); scrollbar.toggleClass(classes[1]);
|
1227 |
+
el[0]._draggable=el[0]._draggable ? 0 : 1;
|
1228 |
+
}else{
|
1229 |
+
if(!el[0]._draggable){
|
1230 |
+
if(action==="hide"){
|
1231 |
+
el.removeClass(classes[0]); scrollbar.removeClass(classes[1]);
|
1232 |
+
}else{
|
1233 |
+
el.addClass(classes[0]); scrollbar.addClass(classes[1]);
|
1234 |
+
}
|
1235 |
+
}
|
1236 |
+
}
|
1237 |
+
},
|
1238 |
+
/* -------------------- */
|
1239 |
+
|
1240 |
+
|
1241 |
+
/* checks if content overflows its container to determine if scrolling is required */
|
1242 |
+
_overflowed=function(){
|
1243 |
+
var $this=$(this),d=$this.data(pluginPfx),
|
1244 |
+
mCustomScrollBox=$("#mCSB_"+d.idx),
|
1245 |
+
mCSB_container=$("#mCSB_"+d.idx+"_container"),
|
1246 |
+
contentHeight=d.overflowed==null ? mCSB_container.height() : mCSB_container.outerHeight(false),
|
1247 |
+
contentWidth=d.overflowed==null ? mCSB_container.width() : mCSB_container.outerWidth(false),
|
1248 |
+
h=mCSB_container[0].scrollHeight,w=mCSB_container[0].scrollWidth;
|
1249 |
+
if(h>contentHeight){contentHeight=h;}
|
1250 |
+
if(w>contentWidth){contentWidth=w;}
|
1251 |
+
return [contentHeight>mCustomScrollBox.height(),contentWidth>mCustomScrollBox.width()];
|
1252 |
+
},
|
1253 |
+
/* -------------------- */
|
1254 |
+
|
1255 |
+
|
1256 |
+
/* resets content position to 0 */
|
1257 |
+
_resetContentPosition=function(){
|
1258 |
+
var $this=$(this),d=$this.data(pluginPfx),o=d.opt,
|
1259 |
+
mCustomScrollBox=$("#mCSB_"+d.idx),
|
1260 |
+
mCSB_container=$("#mCSB_"+d.idx+"_container"),
|
1261 |
+
mCSB_dragger=[$("#mCSB_"+d.idx+"_dragger_vertical"),$("#mCSB_"+d.idx+"_dragger_horizontal")];
|
1262 |
+
_stop($this); /* stop any current scrolling before resetting */
|
1263 |
+
if((o.axis!=="x" && !d.overflowed[0]) || (o.axis==="y" && d.overflowed[0])){ /* reset y */
|
1264 |
+
mCSB_dragger[0].add(mCSB_container).css("top",0);
|
1265 |
+
_scrollTo($this,"_resetY");
|
1266 |
+
}
|
1267 |
+
if((o.axis!=="y" && !d.overflowed[1]) || (o.axis==="x" && d.overflowed[1])){ /* reset x */
|
1268 |
+
var cx=dx=0;
|
1269 |
+
if(d.langDir==="rtl"){ /* adjust left position for rtl direction */
|
1270 |
+
cx=mCustomScrollBox.width()-mCSB_container.outerWidth(false);
|
1271 |
+
dx=Math.abs(cx/d.scrollRatio.x);
|
1272 |
+
}
|
1273 |
+
mCSB_container.css("left",cx);
|
1274 |
+
mCSB_dragger[1].css("left",dx);
|
1275 |
+
_scrollTo($this,"_resetX");
|
1276 |
+
}
|
1277 |
+
},
|
1278 |
+
/* -------------------- */
|
1279 |
+
|
1280 |
+
|
1281 |
+
/* binds scrollbar events */
|
1282 |
+
_bindEvents=function(){
|
1283 |
+
var $this=$(this),d=$this.data(pluginPfx),o=d.opt;
|
1284 |
+
if(!d.bindEvents){ /* check if events are already bound */
|
1285 |
+
_draggable.call(this);
|
1286 |
+
if(o.contentTouchScroll){_contentDraggable.call(this);}
|
1287 |
+
_selectable.call(this);
|
1288 |
+
if(o.mouseWheel.enable){ /* bind mousewheel fn when plugin is available */
|
1289 |
+
function _mwt(){
|
1290 |
+
mousewheelTimeout=setTimeout(function(){
|
1291 |
+
if(!$.event.special.mousewheel){
|
1292 |
+
_mwt();
|
1293 |
+
}else{
|
1294 |
+
clearTimeout(mousewheelTimeout);
|
1295 |
+
_mousewheel.call($this[0]);
|
1296 |
+
}
|
1297 |
+
},100);
|
1298 |
+
}
|
1299 |
+
var mousewheelTimeout;
|
1300 |
+
_mwt();
|
1301 |
+
}
|
1302 |
+
_draggerRail.call(this);
|
1303 |
+
_wrapperScroll.call(this);
|
1304 |
+
if(o.advanced.autoScrollOnFocus){_focus.call(this);}
|
1305 |
+
if(o.scrollButtons.enable){_buttons.call(this);}
|
1306 |
+
if(o.keyboard.enable){_keyboard.call(this);}
|
1307 |
+
d.bindEvents=true;
|
1308 |
+
}
|
1309 |
+
},
|
1310 |
+
/* -------------------- */
|
1311 |
+
|
1312 |
+
|
1313 |
+
/* unbinds scrollbar events */
|
1314 |
+
_unbindEvents=function(){
|
1315 |
+
var $this=$(this),d=$this.data(pluginPfx),o=d.opt,
|
1316 |
+
namespace=pluginPfx+"_"+d.idx,
|
1317 |
+
sb=".mCSB_"+d.idx+"_scrollbar",
|
1318 |
+
sel=$("#mCSB_"+d.idx+",#mCSB_"+d.idx+"_container,#mCSB_"+d.idx+"_container_wrapper,"+sb+" ."+classes[12]+",#mCSB_"+d.idx+"_dragger_vertical,#mCSB_"+d.idx+"_dragger_horizontal,"+sb+">a"),
|
1319 |
+
mCSB_container=$("#mCSB_"+d.idx+"_container");
|
1320 |
+
if(o.advanced.releaseDraggableSelectors){sel.add($(o.advanced.releaseDraggableSelectors));}
|
1321 |
+
if(o.advanced.extraDraggableSelectors){sel.add($(o.advanced.extraDraggableSelectors));}
|
1322 |
+
if(d.bindEvents){ /* check if events are bound */
|
1323 |
+
/* unbind namespaced events from document/selectors */
|
1324 |
+
$(document).add($(!_canAccessIFrame() || top.document)).unbind("."+namespace);
|
1325 |
+
sel.each(function(){
|
1326 |
+
$(this).unbind("."+namespace);
|
1327 |
+
});
|
1328 |
+
/* clear and delete timeouts/objects */
|
1329 |
+
clearTimeout($this[0]._focusTimeout); _delete($this[0],"_focusTimeout");
|
1330 |
+
clearTimeout(d.sequential.step); _delete(d.sequential,"step");
|
1331 |
+
clearTimeout(mCSB_container[0].onCompleteTimeout); _delete(mCSB_container[0],"onCompleteTimeout");
|
1332 |
+
d.bindEvents=false;
|
1333 |
+
}
|
1334 |
+
},
|
1335 |
+
/* -------------------- */
|
1336 |
+
|
1337 |
+
|
1338 |
+
/* toggles scrollbar visibility */
|
1339 |
+
_scrollbarVisibility=function(disabled){
|
1340 |
+
var $this=$(this),d=$this.data(pluginPfx),o=d.opt,
|
1341 |
+
contentWrapper=$("#mCSB_"+d.idx+"_container_wrapper"),
|
1342 |
+
content=contentWrapper.length ? contentWrapper : $("#mCSB_"+d.idx+"_container"),
|
1343 |
+
scrollbar=[$("#mCSB_"+d.idx+"_scrollbar_vertical"),$("#mCSB_"+d.idx+"_scrollbar_horizontal")],
|
1344 |
+
mCSB_dragger=[scrollbar[0].find(".mCSB_dragger"),scrollbar[1].find(".mCSB_dragger")];
|
1345 |
+
if(o.axis!=="x"){
|
1346 |
+
if(d.overflowed[0] && !disabled){
|
1347 |
+
scrollbar[0].add(mCSB_dragger[0]).add(scrollbar[0].children("a")).css("display","block");
|
1348 |
+
content.removeClass(classes[8]+" "+classes[10]);
|
1349 |
+
}else{
|
1350 |
+
if(o.alwaysShowScrollbar){
|
1351 |
+
if(o.alwaysShowScrollbar!==2){mCSB_dragger[0].css("display","none");}
|
1352 |
+
content.removeClass(classes[10]);
|
1353 |
+
}else{
|
1354 |
+
scrollbar[0].css("display","none");
|
1355 |
+
content.addClass(classes[10]);
|
1356 |
+
}
|
1357 |
+
content.addClass(classes[8]);
|
1358 |
+
}
|
1359 |
+
}
|
1360 |
+
if(o.axis!=="y"){
|
1361 |
+
if(d.overflowed[1] && !disabled){
|
1362 |
+
scrollbar[1].add(mCSB_dragger[1]).add(scrollbar[1].children("a")).css("display","block");
|
1363 |
+
content.removeClass(classes[9]+" "+classes[11]);
|
1364 |
+
}else{
|
1365 |
+
if(o.alwaysShowScrollbar){
|
1366 |
+
if(o.alwaysShowScrollbar!==2){mCSB_dragger[1].css("display","none");}
|
1367 |
+
content.removeClass(classes[11]);
|
1368 |
+
}else{
|
1369 |
+
scrollbar[1].css("display","none");
|
1370 |
+
content.addClass(classes[11]);
|
1371 |
+
}
|
1372 |
+
content.addClass(classes[9]);
|
1373 |
+
}
|
1374 |
+
}
|
1375 |
+
if(!d.overflowed[0] && !d.overflowed[1]){
|
1376 |
+
$this.addClass(classes[5]);
|
1377 |
+
}else{
|
1378 |
+
$this.removeClass(classes[5]);
|
1379 |
+
}
|
1380 |
+
},
|
1381 |
+
/* -------------------- */
|
1382 |
+
|
1383 |
+
|
1384 |
+
/* returns input coordinates of pointer, touch and mouse events (relative to document) */
|
1385 |
+
_coordinates=function(e){
|
1386 |
+
var t=e.type,o=e.target.ownerDocument!==document && frameElement!==null ? [$(frameElement).offset().top,$(frameElement).offset().left] : null,
|
1387 |
+
io=_canAccessIFrame() && e.target.ownerDocument!==top.document && frameElement!==null ? [$(e.view.frameElement).offset().top,$(e.view.frameElement).offset().left] : [0,0];
|
1388 |
+
switch(t){
|
1389 |
+
case "pointerdown": case "MSPointerDown": case "pointermove": case "MSPointerMove": case "pointerup": case "MSPointerUp":
|
1390 |
+
return o ? [e.originalEvent.pageY-o[0]+io[0],e.originalEvent.pageX-o[1]+io[1],false] : [e.originalEvent.pageY,e.originalEvent.pageX,false];
|
1391 |
+
break;
|
1392 |
+
case "touchstart": case "touchmove": case "touchend":
|
1393 |
+
var touch=e.originalEvent.touches[0] || e.originalEvent.changedTouches[0],
|
1394 |
+
touches=e.originalEvent.touches.length || e.originalEvent.changedTouches.length;
|
1395 |
+
return e.target.ownerDocument!==document ? [touch.screenY,touch.screenX,touches>1] : [touch.pageY,touch.pageX,touches>1];
|
1396 |
+
break;
|
1397 |
+
default:
|
1398 |
+
return o ? [e.pageY-o[0]+io[0],e.pageX-o[1]+io[1],false] : [e.pageY,e.pageX,false];
|
1399 |
+
}
|
1400 |
+
},
|
1401 |
+
/* -------------------- */
|
1402 |
+
|
1403 |
+
|
1404 |
+
/*
|
1405 |
+
SCROLLBAR DRAG EVENTS
|
1406 |
+
scrolls content via scrollbar dragging
|
1407 |
+
*/
|
1408 |
+
_draggable=function(){
|
1409 |
+
var $this=$(this),d=$this.data(pluginPfx),o=d.opt,
|
1410 |
+
namespace=pluginPfx+"_"+d.idx,
|
1411 |
+
draggerId=["mCSB_"+d.idx+"_dragger_vertical","mCSB_"+d.idx+"_dragger_horizontal"],
|
1412 |
+
mCSB_container=$("#mCSB_"+d.idx+"_container"),
|
1413 |
+
mCSB_dragger=$("#"+draggerId[0]+",#"+draggerId[1]),
|
1414 |
+
draggable,dragY,dragX,
|
1415 |
+
rds=o.advanced.releaseDraggableSelectors ? mCSB_dragger.add($(o.advanced.releaseDraggableSelectors)) : mCSB_dragger,
|
1416 |
+
eds=o.advanced.extraDraggableSelectors ? $(!_canAccessIFrame() || top.document).add($(o.advanced.extraDraggableSelectors)) : $(!_canAccessIFrame() || top.document);
|
1417 |
+
mCSB_dragger.bind("contextmenu."+namespace,function(e){
|
1418 |
+
e.preventDefault(); //prevent right click
|
1419 |
+
}).bind("mousedown."+namespace+" touchstart."+namespace+" pointerdown."+namespace+" MSPointerDown."+namespace,function(e){
|
1420 |
+
e.stopImmediatePropagation();
|
1421 |
+
e.preventDefault();
|
1422 |
+
if(!_mouseBtnLeft(e)){return;} /* left mouse button only */
|
1423 |
+
touchActive=true;
|
1424 |
+
if(oldIE){document.onselectstart=function(){return false;}} /* disable text selection for IE < 9 */
|
1425 |
+
_iframe.call(mCSB_container,false); /* enable scrollbar dragging over iframes by disabling their events */
|
1426 |
+
_stop($this);
|
1427 |
+
draggable=$(this);
|
1428 |
+
var offset=draggable.offset(),y=_coordinates(e)[0]-offset.top,x=_coordinates(e)[1]-offset.left,
|
1429 |
+
h=draggable.height()+offset.top,w=draggable.width()+offset.left;
|
1430 |
+
if(y<h && y>0 && x<w && x>0){
|
1431 |
+
dragY=y;
|
1432 |
+
dragX=x;
|
1433 |
+
}
|
1434 |
+
_onDragClasses(draggable,"active",o.autoExpandScrollbar);
|
1435 |
+
}).bind("touchmove."+namespace,function(e){
|
1436 |
+
e.stopImmediatePropagation();
|
1437 |
+
e.preventDefault();
|
1438 |
+
var offset=draggable.offset(),y=_coordinates(e)[0]-offset.top,x=_coordinates(e)[1]-offset.left;
|
1439 |
+
_drag(dragY,dragX,y,x);
|
1440 |
+
});
|
1441 |
+
$(document).add(eds).bind("mousemove."+namespace+" pointermove."+namespace+" MSPointerMove."+namespace,function(e){
|
1442 |
+
if(draggable){
|
1443 |
+
var offset=draggable.offset(),y=_coordinates(e)[0]-offset.top,x=_coordinates(e)[1]-offset.left;
|
1444 |
+
if(dragY===y && dragX===x){return;} /* has it really moved? */
|
1445 |
+
_drag(dragY,dragX,y,x);
|
1446 |
+
}
|
1447 |
+
}).add(rds).bind("mouseup."+namespace+" touchend."+namespace+" pointerup."+namespace+" MSPointerUp."+namespace,function(e){
|
1448 |
+
if(draggable){
|
1449 |
+
_onDragClasses(draggable,"active",o.autoExpandScrollbar);
|
1450 |
+
draggable=null;
|
1451 |
+
}
|
1452 |
+
touchActive=false;
|
1453 |
+
if(oldIE){document.onselectstart=null;} /* enable text selection for IE < 9 */
|
1454 |
+
_iframe.call(mCSB_container,true); /* enable iframes events */
|
1455 |
+
});
|
1456 |
+
function _drag(dragY,dragX,y,x){
|
1457 |
+
mCSB_container[0].idleTimer=o.scrollInertia<233 ? 250 : 0;
|
1458 |
+
if(draggable.attr("id")===draggerId[1]){
|
1459 |
+
var dir="x",to=((draggable[0].offsetLeft-dragX)+x)*d.scrollRatio.x;
|
1460 |
+
}else{
|
1461 |
+
var dir="y",to=((draggable[0].offsetTop-dragY)+y)*d.scrollRatio.y;
|
1462 |
+
}
|
1463 |
+
_scrollTo($this,to.toString(),{dir:dir,drag:true});
|
1464 |
+
}
|
1465 |
+
},
|
1466 |
+
/* -------------------- */
|
1467 |
+
|
1468 |
+
|
1469 |
+
/*
|
1470 |
+
TOUCH SWIPE EVENTS
|
1471 |
+
scrolls content via touch swipe
|
1472 |
+
Emulates the native touch-swipe scrolling with momentum found in iOS, Android and WP devices
|
1473 |
+
*/
|
1474 |
+
_contentDraggable=function(){
|
1475 |
+
var $this=$(this),d=$this.data(pluginPfx),o=d.opt,
|
1476 |
+
namespace=pluginPfx+"_"+d.idx,
|
1477 |
+
mCustomScrollBox=$("#mCSB_"+d.idx),
|
1478 |
+
mCSB_container=$("#mCSB_"+d.idx+"_container"),
|
1479 |
+
mCSB_dragger=[$("#mCSB_"+d.idx+"_dragger_vertical"),$("#mCSB_"+d.idx+"_dragger_horizontal")],
|
1480 |
+
draggable,dragY,dragX,touchStartY,touchStartX,touchMoveY=[],touchMoveX=[],startTime,runningTime,endTime,distance,speed,amount,
|
1481 |
+
durA=0,durB,overwrite=o.axis==="yx" ? "none" : "all",touchIntent=[],touchDrag,docDrag,
|
1482 |
+
iframe=mCSB_container.find("iframe"),
|
1483 |
+
events=[
|
1484 |
+
"touchstart."+namespace+" pointerdown."+namespace+" MSPointerDown."+namespace, //start
|
1485 |
+
"touchmove."+namespace+" pointermove."+namespace+" MSPointerMove."+namespace, //move
|
1486 |
+
"touchend."+namespace+" pointerup."+namespace+" MSPointerUp."+namespace //end
|
1487 |
+
],
|
1488 |
+
touchAction=document.body.style.touchAction!==undefined && document.body.style.touchAction!=="";
|
1489 |
+
mCSB_container.bind(events[0],function(e){
|
1490 |
+
_onTouchstart(e);
|
1491 |
+
}).bind(events[1],function(e){
|
1492 |
+
_onTouchmove(e);
|
1493 |
+
});
|
1494 |
+
mCustomScrollBox.bind(events[0],function(e){
|
1495 |
+
_onTouchstart2(e);
|
1496 |
+
}).bind(events[2],function(e){
|
1497 |
+
_onTouchend(e);
|
1498 |
+
});
|
1499 |
+
if(iframe.length){
|
1500 |
+
iframe.each(function(){
|
1501 |
+
$(this).bind("load",function(){
|
1502 |
+
/* bind events on accessible iframes */
|
1503 |
+
if(_canAccessIFrame(this)){
|
1504 |
+
$(this.contentDocument || this.contentWindow.document).bind(events[0],function(e){
|
1505 |
+
_onTouchstart(e);
|
1506 |
+
_onTouchstart2(e);
|
1507 |
+
}).bind(events[1],function(e){
|
1508 |
+
_onTouchmove(e);
|
1509 |
+
}).bind(events[2],function(e){
|
1510 |
+
_onTouchend(e);
|
1511 |
+
});
|
1512 |
+
}
|
1513 |
+
});
|
1514 |
+
});
|
1515 |
+
}
|
1516 |
+
function _onTouchstart(e){
|
1517 |
+
if(!_pointerTouch(e) || touchActive || _coordinates(e)[2]){touchable=0; return;}
|
1518 |
+
touchable=1; touchDrag=0; docDrag=0; draggable=1;
|
1519 |
+
$this.removeClass("mCS_touch_action");
|
1520 |
+
var offset=mCSB_container.offset();
|
1521 |
+
dragY=_coordinates(e)[0]-offset.top;
|
1522 |
+
dragX=_coordinates(e)[1]-offset.left;
|
1523 |
+
touchIntent=[_coordinates(e)[0],_coordinates(e)[1]];
|
1524 |
+
}
|
1525 |
+
function _onTouchmove(e){
|
1526 |
+
if(!_pointerTouch(e) || touchActive || _coordinates(e)[2]){return;}
|
1527 |
+
if(!o.documentTouchScroll){e.preventDefault();}
|
1528 |
+
e.stopImmediatePropagation();
|
1529 |
+
if(docDrag && !touchDrag){return;}
|
1530 |
+
if(draggable){
|
1531 |
+
runningTime=_getTime();
|
1532 |
+
var offset=mCustomScrollBox.offset(),y=_coordinates(e)[0]-offset.top,x=_coordinates(e)[1]-offset.left,
|
1533 |
+
easing="mcsLinearOut";
|
1534 |
+
touchMoveY.push(y);
|
1535 |
+
touchMoveX.push(x);
|
1536 |
+
touchIntent[2]=Math.abs(_coordinates(e)[0]-touchIntent[0]); touchIntent[3]=Math.abs(_coordinates(e)[1]-touchIntent[1]);
|
1537 |
+
if(d.overflowed[0]){
|
1538 |
+
var limit=mCSB_dragger[0].parent().height()-mCSB_dragger[0].height(),
|
1539 |
+
prevent=((dragY-y)>0 && (y-dragY)>-(limit*d.scrollRatio.y) && (touchIntent[3]*2<touchIntent[2] || o.axis==="yx"));
|
1540 |
+
}
|
1541 |
+
if(d.overflowed[1]){
|
1542 |
+
var limitX=mCSB_dragger[1].parent().width()-mCSB_dragger[1].width(),
|
1543 |
+
preventX=((dragX-x)>0 && (x-dragX)>-(limitX*d.scrollRatio.x) && (touchIntent[2]*2<touchIntent[3] || o.axis==="yx"));
|
1544 |
+
}
|
1545 |
+
if(prevent || preventX){ /* prevent native document scrolling */
|
1546 |
+
if(!touchAction){e.preventDefault();}
|
1547 |
+
touchDrag=1;
|
1548 |
+
}else{
|
1549 |
+
docDrag=1;
|
1550 |
+
$this.addClass("mCS_touch_action");
|
1551 |
+
}
|
1552 |
+
if(touchAction){e.preventDefault();}
|
1553 |
+
amount=o.axis==="yx" ? [(dragY-y),(dragX-x)] : o.axis==="x" ? [null,(dragX-x)] : [(dragY-y),null];
|
1554 |
+
mCSB_container[0].idleTimer=250;
|
1555 |
+
if(d.overflowed[0]){_drag(amount[0],durA,easing,"y","all",true);}
|
1556 |
+
if(d.overflowed[1]){_drag(amount[1],durA,easing,"x",overwrite,true);}
|
1557 |
+
}
|
1558 |
+
}
|
1559 |
+
function _onTouchstart2(e){
|
1560 |
+
if(!_pointerTouch(e) || touchActive || _coordinates(e)[2]){touchable=0; return;}
|
1561 |
+
touchable=1;
|
1562 |
+
e.stopImmediatePropagation();
|
1563 |
+
_stop($this);
|
1564 |
+
startTime=_getTime();
|
1565 |
+
var offset=mCustomScrollBox.offset();
|
1566 |
+
touchStartY=_coordinates(e)[0]-offset.top;
|
1567 |
+
touchStartX=_coordinates(e)[1]-offset.left;
|
1568 |
+
touchMoveY=[]; touchMoveX=[];
|
1569 |
+
}
|
1570 |
+
function _onTouchend(e){
|
1571 |
+
if(!_pointerTouch(e) || touchActive || _coordinates(e)[2]){return;}
|
1572 |
+
draggable=0;
|
1573 |
+
e.stopImmediatePropagation();
|
1574 |
+
touchDrag=0; docDrag=0;
|
1575 |
+
endTime=_getTime();
|
1576 |
+
var offset=mCustomScrollBox.offset(),y=_coordinates(e)[0]-offset.top,x=_coordinates(e)[1]-offset.left;
|
1577 |
+
if((endTime-runningTime)>30){return;}
|
1578 |
+
speed=1000/(endTime-startTime);
|
1579 |
+
var easing="mcsEaseOut",slow=speed<2.5,
|
1580 |
+
diff=slow ? [touchMoveY[touchMoveY.length-2],touchMoveX[touchMoveX.length-2]] : [0,0];
|
1581 |
+
distance=slow ? [(y-diff[0]),(x-diff[1])] : [y-touchStartY,x-touchStartX];
|
1582 |
+
var absDistance=[Math.abs(distance[0]),Math.abs(distance[1])];
|
1583 |
+
speed=slow ? [Math.abs(distance[0]/4),Math.abs(distance[1]/4)] : [speed,speed];
|
1584 |
+
var a=[
|
1585 |
+
Math.abs(mCSB_container[0].offsetTop)-(distance[0]*_m((absDistance[0]/speed[0]),speed[0])),
|
1586 |
+
Math.abs(mCSB_container[0].offsetLeft)-(distance[1]*_m((absDistance[1]/speed[1]),speed[1]))
|
1587 |
+
];
|
1588 |
+
amount=o.axis==="yx" ? [a[0],a[1]] : o.axis==="x" ? [null,a[1]] : [a[0],null];
|
1589 |
+
durB=[(absDistance[0]*4)+o.scrollInertia,(absDistance[1]*4)+o.scrollInertia];
|
1590 |
+
var md=parseInt(o.contentTouchScroll) || 0; /* absolute minimum distance required */
|
1591 |
+
amount[0]=absDistance[0]>md ? amount[0] : 0;
|
1592 |
+
amount[1]=absDistance[1]>md ? amount[1] : 0;
|
1593 |
+
if(d.overflowed[0]){_drag(amount[0],durB[0],easing,"y",overwrite,false);}
|
1594 |
+
if(d.overflowed[1]){_drag(amount[1],durB[1],easing,"x",overwrite,false);}
|
1595 |
+
}
|
1596 |
+
function _m(ds,s){
|
1597 |
+
var r=[s*1.5,s*2,s/1.5,s/2];
|
1598 |
+
if(ds>90){
|
1599 |
+
return s>4 ? r[0] : r[3];
|
1600 |
+
}else if(ds>60){
|
1601 |
+
return s>3 ? r[3] : r[2];
|
1602 |
+
}else if(ds>30){
|
1603 |
+
return s>8 ? r[1] : s>6 ? r[0] : s>4 ? s : r[2];
|
1604 |
+
}else{
|
1605 |
+
return s>8 ? s : r[3];
|
1606 |
+
}
|
1607 |
+
}
|
1608 |
+
function _drag(amount,dur,easing,dir,overwrite,drag){
|
1609 |
+
if(!amount){return;}
|
1610 |
+
_scrollTo($this,amount.toString(),{dur:dur,scrollEasing:easing,dir:dir,overwrite:overwrite,drag:drag});
|
1611 |
+
}
|
1612 |
+
},
|
1613 |
+
/* -------------------- */
|
1614 |
+
|
1615 |
+
|
1616 |
+
/*
|
1617 |
+
SELECT TEXT EVENTS
|
1618 |
+
scrolls content when text is selected
|
1619 |
+
*/
|
1620 |
+
_selectable=function(){
|
1621 |
+
var $this=$(this),d=$this.data(pluginPfx),o=d.opt,seq=d.sequential,
|
1622 |
+
namespace=pluginPfx+"_"+d.idx,
|
1623 |
+
mCSB_container=$("#mCSB_"+d.idx+"_container"),
|
1624 |
+
wrapper=mCSB_container.parent(),
|
1625 |
+
action;
|
1626 |
+
mCSB_container.bind("mousedown."+namespace,function(e){
|
1627 |
+
if(touchable){return;}
|
1628 |
+
if(!action){action=1; touchActive=true;}
|
1629 |
+
}).add(document).bind("mousemove."+namespace,function(e){
|
1630 |
+
if(!touchable && action && _sel()){
|
1631 |
+
var offset=mCSB_container.offset(),
|
1632 |
+
y=_coordinates(e)[0]-offset.top+mCSB_container[0].offsetTop,x=_coordinates(e)[1]-offset.left+mCSB_container[0].offsetLeft;
|
1633 |
+
if(y>0 && y<wrapper.height() && x>0 && x<wrapper.width()){
|
1634 |
+
if(seq.step){_seq("off",null,"stepped");}
|
1635 |
+
}else{
|
1636 |
+
if(o.axis!=="x" && d.overflowed[0]){
|
1637 |
+
if(y<0){
|
1638 |
+
_seq("on",38);
|
1639 |
+
}else if(y>wrapper.height()){
|
1640 |
+
_seq("on",40);
|
1641 |
+
}
|
1642 |
+
}
|
1643 |
+
if(o.axis!=="y" && d.overflowed[1]){
|
1644 |
+
if(x<0){
|
1645 |
+
_seq("on",37);
|
1646 |
+
}else if(x>wrapper.width()){
|
1647 |
+
_seq("on",39);
|
1648 |
+
}
|
1649 |
+
}
|
1650 |
+
}
|
1651 |
+
}
|
1652 |
+
}).bind("mouseup."+namespace+" dragend."+namespace,function(e){
|
1653 |
+
if(touchable){return;}
|
1654 |
+
if(action){action=0; _seq("off",null);}
|
1655 |
+
touchActive=false;
|
1656 |
+
});
|
1657 |
+
function _sel(){
|
1658 |
+
return window.getSelection ? window.getSelection().toString() :
|
1659 |
+
document.selection && document.selection.type!="Control" ? document.selection.createRange().text : 0;
|
1660 |
+
}
|
1661 |
+
function _seq(a,c,s){
|
1662 |
+
seq.type=s && action ? "stepped" : "stepless";
|
1663 |
+
seq.scrollAmount=10;
|
1664 |
+
_sequentialScroll($this,a,c,"mcsLinearOut",s ? 60 : null);
|
1665 |
+
}
|
1666 |
+
},
|
1667 |
+
/* -------------------- */
|
1668 |
+
|
1669 |
+
|
1670 |
+
/*
|
1671 |
+
MOUSE WHEEL EVENT
|
1672 |
+
scrolls content via mouse-wheel
|
1673 |
+
via mouse-wheel plugin (https://github.com/brandonaaron/jquery-mousewheel)
|
1674 |
+
*/
|
1675 |
+
_mousewheel=function(){
|
1676 |
+
if(!$(this).data(pluginPfx)){return;} /* Check if the scrollbar is ready to use mousewheel events (issue: #185) */
|
1677 |
+
var $this=$(this),d=$this.data(pluginPfx),o=d.opt,
|
1678 |
+
namespace=pluginPfx+"_"+d.idx,
|
1679 |
+
mCustomScrollBox=$("#mCSB_"+d.idx),
|
1680 |
+
mCSB_dragger=[$("#mCSB_"+d.idx+"_dragger_vertical"),$("#mCSB_"+d.idx+"_dragger_horizontal")],
|
1681 |
+
iframe=$("#mCSB_"+d.idx+"_container").find("iframe");
|
1682 |
+
if(iframe.length){
|
1683 |
+
iframe.each(function(){
|
1684 |
+
$(this).bind("load",function(){
|
1685 |
+
/* bind events on accessible iframes */
|
1686 |
+
if(_canAccessIFrame(this)){
|
1687 |
+
$(this.contentDocument || this.contentWindow.document).bind("mousewheel."+namespace,function(e,delta){
|
1688 |
+
_onMousewheel(e,delta);
|
1689 |
+
});
|
1690 |
+
}
|
1691 |
+
});
|
1692 |
+
});
|
1693 |
+
}
|
1694 |
+
mCustomScrollBox.bind("mousewheel."+namespace,function(e,delta){
|
1695 |
+
_onMousewheel(e,delta);
|
1696 |
+
});
|
1697 |
+
function _onMousewheel(e,delta){
|
1698 |
+
_stop($this);
|
1699 |
+
if(_disableMousewheel($this,e.target)){return;} /* disables mouse-wheel when hovering specific elements */
|
1700 |
+
var deltaFactor=o.mouseWheel.deltaFactor!=="auto" ? parseInt(o.mouseWheel.deltaFactor) : (oldIE && e.deltaFactor<100) ? 100 : e.deltaFactor || 100,
|
1701 |
+
dur=o.scrollInertia;
|
1702 |
+
if(o.axis==="x" || o.mouseWheel.axis==="x"){
|
1703 |
+
var dir="x",
|
1704 |
+
px=[Math.round(deltaFactor*d.scrollRatio.x),parseInt(o.mouseWheel.scrollAmount)],
|
1705 |
+
amount=o.mouseWheel.scrollAmount!=="auto" ? px[1] : px[0]>=mCustomScrollBox.width() ? mCustomScrollBox.width()*0.9 : px[0],
|
1706 |
+
contentPos=Math.abs($("#mCSB_"+d.idx+"_container")[0].offsetLeft),
|
1707 |
+
draggerPos=mCSB_dragger[1][0].offsetLeft,
|
1708 |
+
limit=mCSB_dragger[1].parent().width()-mCSB_dragger[1].width(),
|
1709 |
+
dlt=o.mouseWheel.axis==="y" ? (e.deltaY || delta) : e.deltaX;
|
1710 |
+
}else{
|
1711 |
+
var dir="y",
|
1712 |
+
px=[Math.round(deltaFactor*d.scrollRatio.y),parseInt(o.mouseWheel.scrollAmount)],
|
1713 |
+
amount=o.mouseWheel.scrollAmount!=="auto" ? px[1] : px[0]>=mCustomScrollBox.height() ? mCustomScrollBox.height()*0.9 : px[0],
|
1714 |
+
contentPos=Math.abs($("#mCSB_"+d.idx+"_container")[0].offsetTop),
|
1715 |
+
draggerPos=mCSB_dragger[0][0].offsetTop,
|
1716 |
+
limit=mCSB_dragger[0].parent().height()-mCSB_dragger[0].height(),
|
1717 |
+
dlt=e.deltaY || delta;
|
1718 |
+
}
|
1719 |
+
if((dir==="y" && !d.overflowed[0]) || (dir==="x" && !d.overflowed[1])){return;}
|
1720 |
+
if(o.mouseWheel.invert || e.webkitDirectionInvertedFromDevice){dlt=-dlt;}
|
1721 |
+
if(o.mouseWheel.normalizeDelta){dlt=dlt<0 ? -1 : 1;}
|
1722 |
+
if((dlt>0 && draggerPos!==0) || (dlt<0 && draggerPos!==limit) || o.mouseWheel.preventDefault){
|
1723 |
+
e.stopImmediatePropagation();
|
1724 |
+
e.preventDefault();
|
1725 |
+
}
|
1726 |
+
if(e.deltaFactor<5 && !o.mouseWheel.normalizeDelta){
|
1727 |
+
//very low deltaFactor values mean some kind of delta acceleration (e.g. osx trackpad), so adjusting scrolling accordingly
|
1728 |
+
amount=e.deltaFactor; dur=17;
|
1729 |
+
}
|
1730 |
+
_scrollTo($this,(contentPos-(dlt*amount)).toString(),{dir:dir,dur:dur});
|
1731 |
+
}
|
1732 |
+
},
|
1733 |
+
/* -------------------- */
|
1734 |
+
|
1735 |
+
|
1736 |
+
/* checks if iframe can be accessed */
|
1737 |
+
_canAccessIFrameCache=new Object(),
|
1738 |
+
_canAccessIFrame=function(iframe){
|
1739 |
+
var result=false,cacheKey=false,html=null;
|
1740 |
+
if(iframe===undefined){
|
1741 |
+
cacheKey="#empty";
|
1742 |
+
}else if($(iframe).attr("id")!==undefined){
|
1743 |
+
cacheKey=$(iframe).attr("id");
|
1744 |
+
}
|
1745 |
+
if(cacheKey!==false && _canAccessIFrameCache[cacheKey]!==undefined){
|
1746 |
+
return _canAccessIFrameCache[cacheKey];
|
1747 |
+
}
|
1748 |
+
if(!iframe){
|
1749 |
+
try{
|
1750 |
+
var doc=top.document;
|
1751 |
+
html=doc.body.innerHTML;
|
1752 |
+
}catch(err){/* do nothing */}
|
1753 |
+
result=(html!==null);
|
1754 |
+
}else{
|
1755 |
+
try{
|
1756 |
+
var doc=iframe.contentDocument || iframe.contentWindow.document;
|
1757 |
+
html=doc.body.innerHTML;
|
1758 |
+
}catch(err){/* do nothing */}
|
1759 |
+
result=(html!==null);
|
1760 |
+
}
|
1761 |
+
if(cacheKey!==false){_canAccessIFrameCache[cacheKey]=result;}
|
1762 |
+
return result;
|
1763 |
+
},
|
1764 |
+
/* -------------------- */
|
1765 |
+
|
1766 |
+
|
1767 |
+
/* switches iframe's pointer-events property (drag, mousewheel etc. over cross-domain iframes) */
|
1768 |
+
_iframe=function(evt){
|
1769 |
+
var el=this.find("iframe");
|
1770 |
+
if(!el.length){return;} /* check if content contains iframes */
|
1771 |
+
var val=!evt ? "none" : "auto";
|
1772 |
+
el.css("pointer-events",val); /* for IE11, iframe's display property should not be "block" */
|
1773 |
+
},
|
1774 |
+
/* -------------------- */
|
1775 |
+
|
1776 |
+
|
1777 |
+
/* disables mouse-wheel when hovering specific elements like select, datalist etc. */
|
1778 |
+
_disableMousewheel=function(el,target){
|
1779 |
+
var tag=target.nodeName.toLowerCase(),
|
1780 |
+
tags=el.data(pluginPfx).opt.mouseWheel.disableOver,
|
1781 |
+
/* elements that require focus */
|
1782 |
+
focusTags=["select","textarea"];
|
1783 |
+
return $.inArray(tag,tags) > -1 && !($.inArray(tag,focusTags) > -1 && !$(target).is(":focus"));
|
1784 |
+
},
|
1785 |
+
/* -------------------- */
|
1786 |
+
|
1787 |
+
|
1788 |
+
/*
|
1789 |
+
DRAGGER RAIL CLICK EVENT
|
1790 |
+
scrolls content via dragger rail
|
1791 |
+
*/
|
1792 |
+
_draggerRail=function(){
|
1793 |
+
var $this=$(this),d=$this.data(pluginPfx),
|
1794 |
+
namespace=pluginPfx+"_"+d.idx,
|
1795 |
+
mCSB_container=$("#mCSB_"+d.idx+"_container"),
|
1796 |
+
wrapper=mCSB_container.parent(),
|
1797 |
+
mCSB_draggerContainer=$(".mCSB_"+d.idx+"_scrollbar ."+classes[12]),
|
1798 |
+
clickable;
|
1799 |
+
mCSB_draggerContainer.bind("mousedown."+namespace+" touchstart."+namespace+" pointerdown."+namespace+" MSPointerDown."+namespace,function(e){
|
1800 |
+
touchActive=true;
|
1801 |
+
if(!$(e.target).hasClass("mCSB_dragger")){clickable=1;}
|
1802 |
+
}).bind("touchend."+namespace+" pointerup."+namespace+" MSPointerUp."+namespace,function(e){
|
1803 |
+
touchActive=false;
|
1804 |
+
}).bind("click."+namespace,function(e){
|
1805 |
+
if(!clickable){return;}
|
1806 |
+
clickable=0;
|
1807 |
+
if($(e.target).hasClass(classes[12]) || $(e.target).hasClass("mCSB_draggerRail")){
|
1808 |
+
_stop($this);
|
1809 |
+
var el=$(this),mCSB_dragger=el.find(".mCSB_dragger");
|
1810 |
+
if(el.parent(".mCSB_scrollTools_horizontal").length>0){
|
1811 |
+
if(!d.overflowed[1]){return;}
|
1812 |
+
var dir="x",
|
1813 |
+
clickDir=e.pageX>mCSB_dragger.offset().left ? -1 : 1,
|
1814 |
+
to=Math.abs(mCSB_container[0].offsetLeft)-(clickDir*(wrapper.width()*0.9));
|
1815 |
+
}else{
|
1816 |
+
if(!d.overflowed[0]){return;}
|
1817 |
+
var dir="y",
|
1818 |
+
clickDir=e.pageY>mCSB_dragger.offset().top ? -1 : 1,
|
1819 |
+
to=Math.abs(mCSB_container[0].offsetTop)-(clickDir*(wrapper.height()*0.9));
|
1820 |
+
}
|
1821 |
+
_scrollTo($this,to.toString(),{dir:dir,scrollEasing:"mcsEaseInOut"});
|
1822 |
+
}
|
1823 |
+
});
|
1824 |
+
},
|
1825 |
+
/* -------------------- */
|
1826 |
+
|
1827 |
+
|
1828 |
+
/*
|
1829 |
+
FOCUS EVENT
|
1830 |
+
scrolls content via element focus (e.g. clicking an input, pressing TAB key etc.)
|
1831 |
+
*/
|
1832 |
+
_focus=function(){
|
1833 |
+
var $this=$(this),d=$this.data(pluginPfx),o=d.opt,
|
1834 |
+
namespace=pluginPfx+"_"+d.idx,
|
1835 |
+
mCSB_container=$("#mCSB_"+d.idx+"_container"),
|
1836 |
+
wrapper=mCSB_container.parent();
|
1837 |
+
mCSB_container.bind("focusin."+namespace,function(e){
|
1838 |
+
var el=$(document.activeElement),
|
1839 |
+
nested=mCSB_container.find(".mCustomScrollBox").length,
|
1840 |
+
dur=0;
|
1841 |
+
if(!el.is(o.advanced.autoScrollOnFocus)){return;}
|
1842 |
+
_stop($this);
|
1843 |
+
clearTimeout($this[0]._focusTimeout);
|
1844 |
+
$this[0]._focusTimer=nested ? (dur+17)*nested : 0;
|
1845 |
+
$this[0]._focusTimeout=setTimeout(function(){
|
1846 |
+
var to=[_childPos(el)[0],_childPos(el)[1]],
|
1847 |
+
contentPos=[mCSB_container[0].offsetTop,mCSB_container[0].offsetLeft],
|
1848 |
+
isVisible=[
|
1849 |
+
(contentPos[0]+to[0]>=0 && contentPos[0]+to[0]<wrapper.height()-el.outerHeight(false)),
|
1850 |
+
(contentPos[1]+to[1]>=0 && contentPos[0]+to[1]<wrapper.width()-el.outerWidth(false))
|
1851 |
+
],
|
1852 |
+
overwrite=(o.axis==="yx" && !isVisible[0] && !isVisible[1]) ? "none" : "all";
|
1853 |
+
if(o.axis!=="x" && !isVisible[0]){
|
1854 |
+
_scrollTo($this,to[0].toString(),{dir:"y",scrollEasing:"mcsEaseInOut",overwrite:overwrite,dur:dur});
|
1855 |
+
}
|
1856 |
+
if(o.axis!=="y" && !isVisible[1]){
|
1857 |
+
_scrollTo($this,to[1].toString(),{dir:"x",scrollEasing:"mcsEaseInOut",overwrite:overwrite,dur:dur});
|
1858 |
+
}
|
1859 |
+
},$this[0]._focusTimer);
|
1860 |
+
});
|
1861 |
+
},
|
1862 |
+
/* -------------------- */
|
1863 |
+
|
1864 |
+
|
1865 |
+
/* sets content wrapper scrollTop/scrollLeft always to 0 */
|
1866 |
+
_wrapperScroll=function(){
|
1867 |
+
var $this=$(this),d=$this.data(pluginPfx),
|
1868 |
+
namespace=pluginPfx+"_"+d.idx,
|
1869 |
+
wrapper=$("#mCSB_"+d.idx+"_container").parent();
|
1870 |
+
wrapper.bind("scroll."+namespace,function(e){
|
1871 |
+
if(wrapper.scrollTop()!==0 || wrapper.scrollLeft()!==0){
|
1872 |
+
$(".mCSB_"+d.idx+"_scrollbar").css("visibility","hidden"); /* hide scrollbar(s) */
|
1873 |
+
}
|
1874 |
+
});
|
1875 |
+
},
|
1876 |
+
/* -------------------- */
|
1877 |
+
|
1878 |
+
|
1879 |
+
/*
|
1880 |
+
BUTTONS EVENTS
|
1881 |
+
scrolls content via up, down, left and right buttons
|
1882 |
+
*/
|
1883 |
+
_buttons=function(){
|
1884 |
+
var $this=$(this),d=$this.data(pluginPfx),o=d.opt,seq=d.sequential,
|
1885 |
+
namespace=pluginPfx+"_"+d.idx,
|
1886 |
+
sel=".mCSB_"+d.idx+"_scrollbar",
|
1887 |
+
btn=$(sel+">a");
|
1888 |
+
btn.bind("contextmenu."+namespace,function(e){
|
1889 |
+
e.preventDefault(); //prevent right click
|
1890 |
+
}).bind("mousedown."+namespace+" touchstart."+namespace+" pointerdown."+namespace+" MSPointerDown."+namespace+" mouseup."+namespace+" touchend."+namespace+" pointerup."+namespace+" MSPointerUp."+namespace+" mouseout."+namespace+" pointerout."+namespace+" MSPointerOut."+namespace+" click."+namespace,function(e){
|
1891 |
+
e.preventDefault();
|
1892 |
+
if(!_mouseBtnLeft(e)){return;} /* left mouse button only */
|
1893 |
+
var btnClass=$(this).attr("class");
|
1894 |
+
seq.type=o.scrollButtons.scrollType;
|
1895 |
+
switch(e.type){
|
1896 |
+
case "mousedown": case "touchstart": case "pointerdown": case "MSPointerDown":
|
1897 |
+
if(seq.type==="stepped"){return;}
|
1898 |
+
touchActive=true;
|
1899 |
+
d.tweenRunning=false;
|
1900 |
+
_seq("on",btnClass);
|
1901 |
+
break;
|
1902 |
+
case "mouseup": case "touchend": case "pointerup": case "MSPointerUp":
|
1903 |
+
case "mouseout": case "pointerout": case "MSPointerOut":
|
1904 |
+
if(seq.type==="stepped"){return;}
|
1905 |
+
touchActive=false;
|
1906 |
+
if(seq.dir){_seq("off",btnClass);}
|
1907 |
+
break;
|
1908 |
+
case "click":
|
1909 |
+
if(seq.type!=="stepped" || d.tweenRunning){return;}
|
1910 |
+
_seq("on",btnClass);
|
1911 |
+
break;
|
1912 |
+
}
|
1913 |
+
function _seq(a,c){
|
1914 |
+
seq.scrollAmount=o.scrollButtons.scrollAmount;
|
1915 |
+
_sequentialScroll($this,a,c);
|
1916 |
+
}
|
1917 |
+
});
|
1918 |
+
},
|
1919 |
+
/* -------------------- */
|
1920 |
+
|
1921 |
+
|
1922 |
+
/*
|
1923 |
+
KEYBOARD EVENTS
|
1924 |
+
scrolls content via keyboard
|
1925 |
+
Keys: up arrow, down arrow, left arrow, right arrow, PgUp, PgDn, Home, End
|
1926 |
+
*/
|
1927 |
+
_keyboard=function(){
|
1928 |
+
var $this=$(this),d=$this.data(pluginPfx),o=d.opt,seq=d.sequential,
|
1929 |
+
namespace=pluginPfx+"_"+d.idx,
|
1930 |
+
mCustomScrollBox=$("#mCSB_"+d.idx),
|
1931 |
+
mCSB_container=$("#mCSB_"+d.idx+"_container"),
|
1932 |
+
wrapper=mCSB_container.parent(),
|
1933 |
+
editables="input,textarea,select,datalist,keygen,[contenteditable='true']",
|
1934 |
+
iframe=mCSB_container.find("iframe"),
|
1935 |
+
events=["blur."+namespace+" keydown."+namespace+" keyup."+namespace];
|
1936 |
+
if(iframe.length){
|
1937 |
+
iframe.each(function(){
|
1938 |
+
$(this).bind("load",function(){
|
1939 |
+
/* bind events on accessible iframes */
|
1940 |
+
if(_canAccessIFrame(this)){
|
1941 |
+
$(this.contentDocument || this.contentWindow.document).bind(events[0],function(e){
|
1942 |
+
_onKeyboard(e);
|
1943 |
+
});
|
1944 |
+
}
|
1945 |
+
});
|
1946 |
+
});
|
1947 |
+
}
|
1948 |
+
mCustomScrollBox.attr("tabindex","0").bind(events[0],function(e){
|
1949 |
+
_onKeyboard(e);
|
1950 |
+
});
|
1951 |
+
function _onKeyboard(e){
|
1952 |
+
switch(e.type){
|
1953 |
+
case "blur":
|
1954 |
+
if(d.tweenRunning && seq.dir){_seq("off",null);}
|
1955 |
+
break;
|
1956 |
+
case "keydown": case "keyup":
|
1957 |
+
var code=e.keyCode ? e.keyCode : e.which,action="on";
|
1958 |
+
if((o.axis!=="x" && (code===38 || code===40)) || (o.axis!=="y" && (code===37 || code===39))){
|
1959 |
+
/* up (38), down (40), left (37), right (39) arrows */
|
1960 |
+
if(((code===38 || code===40) && !d.overflowed[0]) || ((code===37 || code===39) && !d.overflowed[1])){return;}
|
1961 |
+
if(e.type==="keyup"){action="off";}
|
1962 |
+
if(!$(document.activeElement).is(editables)){
|
1963 |
+
e.preventDefault();
|
1964 |
+
e.stopImmediatePropagation();
|
1965 |
+
_seq(action,code);
|
1966 |
+
}
|
1967 |
+
}else if(code===33 || code===34){
|
1968 |
+
/* PgUp (33), PgDn (34) */
|
1969 |
+
if(d.overflowed[0] || d.overflowed[1]){
|
1970 |
+
e.preventDefault();
|
1971 |
+
e.stopImmediatePropagation();
|
1972 |
+
}
|
1973 |
+
if(e.type==="keyup"){
|
1974 |
+
_stop($this);
|
1975 |
+
var keyboardDir=code===34 ? -1 : 1;
|
1976 |
+
if(o.axis==="x" || (o.axis==="yx" && d.overflowed[1] && !d.overflowed[0])){
|
1977 |
+
var dir="x",to=Math.abs(mCSB_container[0].offsetLeft)-(keyboardDir*(wrapper.width()*0.9));
|
1978 |
+
}else{
|
1979 |
+
var dir="y",to=Math.abs(mCSB_container[0].offsetTop)-(keyboardDir*(wrapper.height()*0.9));
|
1980 |
+
}
|
1981 |
+
_scrollTo($this,to.toString(),{dir:dir,scrollEasing:"mcsEaseInOut"});
|
1982 |
+
}
|
1983 |
+
}else if(code===35 || code===36){
|
1984 |
+
/* End (35), Home (36) */
|
1985 |
+
if(!$(document.activeElement).is(editables)){
|
1986 |
+
if(d.overflowed[0] || d.overflowed[1]){
|
1987 |
+
e.preventDefault();
|
1988 |
+
e.stopImmediatePropagation();
|
1989 |
+
}
|
1990 |
+
if(e.type==="keyup"){
|
1991 |
+
if(o.axis==="x" || (o.axis==="yx" && d.overflowed[1] && !d.overflowed[0])){
|
1992 |
+
var dir="x",to=code===35 ? Math.abs(wrapper.width()-mCSB_container.outerWidth(false)) : 0;
|
1993 |
+
}else{
|
1994 |
+
var dir="y",to=code===35 ? Math.abs(wrapper.height()-mCSB_container.outerHeight(false)) : 0;
|
1995 |
+
}
|
1996 |
+
_scrollTo($this,to.toString(),{dir:dir,scrollEasing:"mcsEaseInOut"});
|
1997 |
+
}
|
1998 |
+
}
|
1999 |
+
}
|
2000 |
+
break;
|
2001 |
+
}
|
2002 |
+
function _seq(a,c){
|
2003 |
+
seq.type=o.keyboard.scrollType;
|
2004 |
+
seq.scrollAmount=o.keyboard.scrollAmount;
|
2005 |
+
if(seq.type==="stepped" && d.tweenRunning){return;}
|
2006 |
+
_sequentialScroll($this,a,c);
|
2007 |
+
}
|
2008 |
+
}
|
2009 |
+
},
|
2010 |
+
/* -------------------- */
|
2011 |
+
|
2012 |
+
|
2013 |
+
/* scrolls content sequentially (used when scrolling via buttons, keyboard arrows etc.) */
|
2014 |
+
_sequentialScroll=function(el,action,trigger,e,s){
|
2015 |
+
var d=el.data(pluginPfx),o=d.opt,seq=d.sequential,
|
2016 |
+
mCSB_container=$("#mCSB_"+d.idx+"_container"),
|
2017 |
+
once=seq.type==="stepped" ? true : false,
|
2018 |
+
steplessSpeed=o.scrollInertia < 26 ? 26 : o.scrollInertia, /* 26/1.5=17 */
|
2019 |
+
steppedSpeed=o.scrollInertia < 1 ? 17 : o.scrollInertia;
|
2020 |
+
switch(action){
|
2021 |
+
case "on":
|
2022 |
+
seq.dir=[
|
2023 |
+
(trigger===classes[16] || trigger===classes[15] || trigger===39 || trigger===37 ? "x" : "y"),
|
2024 |
+
(trigger===classes[13] || trigger===classes[15] || trigger===38 || trigger===37 ? -1 : 1)
|
2025 |
+
];
|
2026 |
+
_stop(el);
|
2027 |
+
if(_isNumeric(trigger) && seq.type==="stepped"){return;}
|
2028 |
+
_on(once);
|
2029 |
+
break;
|
2030 |
+
case "off":
|
2031 |
+
_off();
|
2032 |
+
if(once || (d.tweenRunning && seq.dir)){
|
2033 |
+
_on(true);
|
2034 |
+
}
|
2035 |
+
break;
|
2036 |
+
}
|
2037 |
+
|
2038 |
+
/* starts sequence */
|
2039 |
+
function _on(once){
|
2040 |
+
if(o.snapAmount){seq.scrollAmount=!(o.snapAmount instanceof Array) ? o.snapAmount : seq.dir[0]==="x" ? o.snapAmount[1] : o.snapAmount[0];} /* scrolling snapping */
|
2041 |
+
var c=seq.type!=="stepped", /* continuous scrolling */
|
2042 |
+
t=s ? s : !once ? 1000/60 : c ? steplessSpeed/1.5 : steppedSpeed, /* timer */
|
2043 |
+
m=!once ? 2.5 : c ? 7.5 : 40, /* multiplier */
|
2044 |
+
contentPos=[Math.abs(mCSB_container[0].offsetTop),Math.abs(mCSB_container[0].offsetLeft)],
|
2045 |
+
ratio=[d.scrollRatio.y>10 ? 10 : d.scrollRatio.y,d.scrollRatio.x>10 ? 10 : d.scrollRatio.x],
|
2046 |
+
amount=seq.dir[0]==="x" ? contentPos[1]+(seq.dir[1]*(ratio[1]*m)) : contentPos[0]+(seq.dir[1]*(ratio[0]*m)),
|
2047 |
+
px=seq.dir[0]==="x" ? contentPos[1]+(seq.dir[1]*parseInt(seq.scrollAmount)) : contentPos[0]+(seq.dir[1]*parseInt(seq.scrollAmount)),
|
2048 |
+
to=seq.scrollAmount!=="auto" ? px : amount,
|
2049 |
+
easing=e ? e : !once ? "mcsLinear" : c ? "mcsLinearOut" : "mcsEaseInOut",
|
2050 |
+
onComplete=!once ? false : true;
|
2051 |
+
if(once && t<17){
|
2052 |
+
to=seq.dir[0]==="x" ? contentPos[1] : contentPos[0];
|
2053 |
+
}
|
2054 |
+
_scrollTo(el,to.toString(),{dir:seq.dir[0],scrollEasing:easing,dur:t,onComplete:onComplete});
|
2055 |
+
if(once){
|
2056 |
+
seq.dir=false;
|
2057 |
+
return;
|
2058 |
+
}
|
2059 |
+
clearTimeout(seq.step);
|
2060 |
+
seq.step=setTimeout(function(){
|
2061 |
+
_on();
|
2062 |
+
},t);
|
2063 |
+
}
|
2064 |
+
/* stops sequence */
|
2065 |
+
function _off(){
|
2066 |
+
clearTimeout(seq.step);
|
2067 |
+
_delete(seq,"step");
|
2068 |
+
_stop(el);
|
2069 |
+
}
|
2070 |
+
},
|
2071 |
+
/* -------------------- */
|
2072 |
+
|
2073 |
+
|
2074 |
+
/* returns a yx array from value */
|
2075 |
+
_arr=function(val){
|
2076 |
+
var o=$(this).data(pluginPfx).opt,vals=[];
|
2077 |
+
if(typeof val==="function"){val=val();} /* check if the value is a single anonymous function */
|
2078 |
+
/* check if value is object or array, its length and create an array with yx values */
|
2079 |
+
if(!(val instanceof Array)){ /* object value (e.g. {y:"100",x:"100"}, 100 etc.) */
|
2080 |
+
vals[0]=val.y ? val.y : val.x || o.axis==="x" ? null : val;
|
2081 |
+
vals[1]=val.x ? val.x : val.y || o.axis==="y" ? null : val;
|
2082 |
+
}else{ /* array value (e.g. [100,100]) */
|
2083 |
+
vals=val.length>1 ? [val[0],val[1]] : o.axis==="x" ? [null,val[0]] : [val[0],null];
|
2084 |
+
}
|
2085 |
+
/* check if array values are anonymous functions */
|
2086 |
+
if(typeof vals[0]==="function"){vals[0]=vals[0]();}
|
2087 |
+
if(typeof vals[1]==="function"){vals[1]=vals[1]();}
|
2088 |
+
return vals;
|
2089 |
+
},
|
2090 |
+
/* -------------------- */
|
2091 |
+
|
2092 |
+
|
2093 |
+
/* translates values (e.g. "top", 100, "100px", "#id") to actual scroll-to positions */
|
2094 |
+
_to=function(val,dir){
|
2095 |
+
if(val==null || typeof val=="undefined"){return;}
|
2096 |
+
var $this=$(this),d=$this.data(pluginPfx),o=d.opt,
|
2097 |
+
mCSB_container=$("#mCSB_"+d.idx+"_container"),
|
2098 |
+
wrapper=mCSB_container.parent(),
|
2099 |
+
t=typeof val;
|
2100 |
+
if(!dir){dir=o.axis==="x" ? "x" : "y";}
|
2101 |
+
var contentLength=dir==="x" ? mCSB_container.outerWidth(false)-wrapper.width() : mCSB_container.outerHeight(false)-wrapper.height(),
|
2102 |
+
contentPos=dir==="x" ? mCSB_container[0].offsetLeft : mCSB_container[0].offsetTop,
|
2103 |
+
cssProp=dir==="x" ? "left" : "top";
|
2104 |
+
switch(t){
|
2105 |
+
case "function": /* this currently is not used. Consider removing it */
|
2106 |
+
return val();
|
2107 |
+
break;
|
2108 |
+
case "object": /* js/jquery object */
|
2109 |
+
var obj=val.jquery ? val : $(val);
|
2110 |
+
if(!obj.length){return;}
|
2111 |
+
return dir==="x" ? _childPos(obj)[1] : _childPos(obj)[0];
|
2112 |
+
break;
|
2113 |
+
case "string": case "number":
|
2114 |
+
if(_isNumeric(val)){ /* numeric value */
|
2115 |
+
return Math.abs(val);
|
2116 |
+
}else if(val.indexOf("%")!==-1){ /* percentage value */
|
2117 |
+
return Math.abs(contentLength*parseInt(val)/100);
|
2118 |
+
}else if(val.indexOf("-=")!==-1){ /* decrease value */
|
2119 |
+
return Math.abs(contentPos-parseInt(val.split("-=")[1]));
|
2120 |
+
}else if(val.indexOf("+=")!==-1){ /* inrease value */
|
2121 |
+
var p=(contentPos+parseInt(val.split("+=")[1]));
|
2122 |
+
return p>=0 ? 0 : Math.abs(p);
|
2123 |
+
}else if(val.indexOf("px")!==-1 && _isNumeric(val.split("px")[0])){ /* pixels string value (e.g. "100px") */
|
2124 |
+
return Math.abs(val.split("px")[0]);
|
2125 |
+
}else{
|
2126 |
+
if(val==="top" || val==="left"){ /* special strings */
|
2127 |
+
return 0;
|
2128 |
+
}else if(val==="bottom"){
|
2129 |
+
return Math.abs(wrapper.height()-mCSB_container.outerHeight(false));
|
2130 |
+
}else if(val==="right"){
|
2131 |
+
return Math.abs(wrapper.width()-mCSB_container.outerWidth(false));
|
2132 |
+
}else if(val==="first" || val==="last"){
|
2133 |
+
var obj=mCSB_container.find(":"+val);
|
2134 |
+
return dir==="x" ? _childPos(obj)[1] : _childPos(obj)[0];
|
2135 |
+
}else{
|
2136 |
+
if($(val).length){ /* jquery selector */
|
2137 |
+
return dir==="x" ? _childPos($(val))[1] : _childPos($(val))[0];
|
2138 |
+
}else{ /* other values (e.g. "100em") */
|
2139 |
+
mCSB_container.css(cssProp,val);
|
2140 |
+
methods.update.call(null,$this[0]);
|
2141 |
+
return;
|
2142 |
+
}
|
2143 |
+
}
|
2144 |
+
}
|
2145 |
+
break;
|
2146 |
+
}
|
2147 |
+
},
|
2148 |
+
/* -------------------- */
|
2149 |
+
|
2150 |
+
|
2151 |
+
/* calls the update method automatically */
|
2152 |
+
_autoUpdate=function(rem){
|
2153 |
+
var $this=$(this),d=$this.data(pluginPfx),o=d.opt,
|
2154 |
+
mCSB_container=$("#mCSB_"+d.idx+"_container");
|
2155 |
+
if(rem){
|
2156 |
+
/*
|
2157 |
+
removes autoUpdate timer
|
2158 |
+
usage: _autoUpdate.call(this,"remove");
|
2159 |
+
*/
|
2160 |
+
clearTimeout(mCSB_container[0].autoUpdate);
|
2161 |
+
_delete(mCSB_container[0],"autoUpdate");
|
2162 |
+
return;
|
2163 |
+
}
|
2164 |
+
upd();
|
2165 |
+
function upd(){
|
2166 |
+
clearTimeout(mCSB_container[0].autoUpdate);
|
2167 |
+
if($this.parents("html").length===0){
|
2168 |
+
/* check element in dom tree */
|
2169 |
+
$this=null;
|
2170 |
+
return;
|
2171 |
+
}
|
2172 |
+
mCSB_container[0].autoUpdate=setTimeout(function(){
|
2173 |
+
/* update on specific selector(s) length and size change */
|
2174 |
+
if(o.advanced.updateOnSelectorChange){
|
2175 |
+
d.poll.change.n=sizesSum();
|
2176 |
+
if(d.poll.change.n!==d.poll.change.o){
|
2177 |
+
d.poll.change.o=d.poll.change.n;
|
2178 |
+
doUpd(3);
|
2179 |
+
return;
|
2180 |
+
}
|
2181 |
+
}
|
2182 |
+
/* update on main element and scrollbar size changes */
|
2183 |
+
if(o.advanced.updateOnContentResize){
|
2184 |
+
d.poll.size.n=$this[0].scrollHeight+$this[0].scrollWidth+mCSB_container[0].offsetHeight+$this[0].offsetHeight+$this[0].offsetWidth;
|
2185 |
+
if(d.poll.size.n!==d.poll.size.o){
|
2186 |
+
d.poll.size.o=d.poll.size.n;
|
2187 |
+
doUpd(1);
|
2188 |
+
return;
|
2189 |
+
}
|
2190 |
+
}
|
2191 |
+
/* update on image load */
|
2192 |
+
if(o.advanced.updateOnImageLoad){
|
2193 |
+
if(!(o.advanced.updateOnImageLoad==="auto" && o.axis==="y")){ //by default, it doesn't run on vertical content
|
2194 |
+
d.poll.img.n=mCSB_container.find("img").length;
|
2195 |
+
if(d.poll.img.n!==d.poll.img.o){
|
2196 |
+
d.poll.img.o=d.poll.img.n;
|
2197 |
+
mCSB_container.find("img").each(function(){
|
2198 |
+
imgLoader(this);
|
2199 |
+
});
|
2200 |
+
return;
|
2201 |
+
}
|
2202 |
+
}
|
2203 |
+
}
|
2204 |
+
if(o.advanced.updateOnSelectorChange || o.advanced.updateOnContentResize || o.advanced.updateOnImageLoad){upd();}
|
2205 |
+
},o.advanced.autoUpdateTimeout);
|
2206 |
+
}
|
2207 |
+
/* a tiny image loader */
|
2208 |
+
function imgLoader(el){
|
2209 |
+
if($(el).hasClass(classes[2])){doUpd(); return;}
|
2210 |
+
var img=new Image();
|
2211 |
+
function createDelegate(contextObject,delegateMethod){
|
2212 |
+
return function(){return delegateMethod.apply(contextObject,arguments);}
|
2213 |
+
}
|
2214 |
+
function imgOnLoad(){
|
2215 |
+
this.onload=null;
|
2216 |
+
$(el).addClass(classes[2]);
|
2217 |
+
doUpd(2);
|
2218 |
+
}
|
2219 |
+
img.onload=createDelegate(img,imgOnLoad);
|
2220 |
+
img.src=el.src;
|
2221 |
+
}
|
2222 |
+
/* returns the total height and width sum of all elements matching the selector */
|
2223 |
+
function sizesSum(){
|
2224 |
+
if(o.advanced.updateOnSelectorChange===true){o.advanced.updateOnSelectorChange="*";}
|
2225 |
+
var total=0,sel=mCSB_container.find(o.advanced.updateOnSelectorChange);
|
2226 |
+
if(o.advanced.updateOnSelectorChange && sel.length>0){sel.each(function(){total+=this.offsetHeight+this.offsetWidth;});}
|
2227 |
+
return total;
|
2228 |
+
}
|
2229 |
+
/* calls the update method */
|
2230 |
+
function doUpd(cb){
|
2231 |
+
clearTimeout(mCSB_container[0].autoUpdate);
|
2232 |
+
methods.update.call(null,$this[0],cb);
|
2233 |
+
}
|
2234 |
+
},
|
2235 |
+
/* -------------------- */
|
2236 |
+
|
2237 |
+
|
2238 |
+
/* snaps scrolling to a multiple of a pixels number */
|
2239 |
+
_snapAmount=function(to,amount,offset){
|
2240 |
+
return (Math.round(to/amount)*amount-offset);
|
2241 |
+
},
|
2242 |
+
/* -------------------- */
|
2243 |
+
|
2244 |
+
|
2245 |
+
/* stops content and scrollbar animations */
|
2246 |
+
_stop=function(el){
|
2247 |
+
var d=el.data(pluginPfx),
|
2248 |
+
sel=$("#mCSB_"+d.idx+"_container,#mCSB_"+d.idx+"_container_wrapper,#mCSB_"+d.idx+"_dragger_vertical,#mCSB_"+d.idx+"_dragger_horizontal");
|
2249 |
+
sel.each(function(){
|
2250 |
+
_stopTween.call(this);
|
2251 |
+
});
|
2252 |
+
},
|
2253 |
+
/* -------------------- */
|
2254 |
+
|
2255 |
+
|
2256 |
+
/*
|
2257 |
+
ANIMATES CONTENT
|
2258 |
+
This is where the actual scrolling happens
|
2259 |
+
*/
|
2260 |
+
_scrollTo=function(el,to,options){
|
2261 |
+
var d=el.data(pluginPfx),o=d.opt,
|
2262 |
+
defaults={
|
2263 |
+
trigger:"internal",
|
2264 |
+
dir:"y",
|
2265 |
+
scrollEasing:"mcsEaseOut",
|
2266 |
+
drag:false,
|
2267 |
+
dur:o.scrollInertia,
|
2268 |
+
overwrite:"all",
|
2269 |
+
callbacks:true,
|
2270 |
+
onStart:true,
|
2271 |
+
onUpdate:true,
|
2272 |
+
onComplete:true
|
2273 |
+
},
|
2274 |
+
options=$.extend(defaults,options),
|
2275 |
+
dur=[options.dur,(options.drag ? 0 : options.dur)],
|
2276 |
+
mCustomScrollBox=$("#mCSB_"+d.idx),
|
2277 |
+
mCSB_container=$("#mCSB_"+d.idx+"_container"),
|
2278 |
+
wrapper=mCSB_container.parent(),
|
2279 |
+
totalScrollOffsets=o.callbacks.onTotalScrollOffset ? _arr.call(el,o.callbacks.onTotalScrollOffset) : [0,0],
|
2280 |
+
totalScrollBackOffsets=o.callbacks.onTotalScrollBackOffset ? _arr.call(el,o.callbacks.onTotalScrollBackOffset) : [0,0];
|
2281 |
+
d.trigger=options.trigger;
|
2282 |
+
if(wrapper.scrollTop()!==0 || wrapper.scrollLeft()!==0){ /* always reset scrollTop/Left */
|
2283 |
+
$(".mCSB_"+d.idx+"_scrollbar").css("visibility","visible");
|
2284 |
+
wrapper.scrollTop(0).scrollLeft(0);
|
2285 |
+
}
|
2286 |
+
if(to==="_resetY" && !d.contentReset.y){
|
2287 |
+
/* callbacks: onOverflowYNone */
|
2288 |
+
if(_cb("onOverflowYNone")){o.callbacks.onOverflowYNone.call(el[0]);}
|
2289 |
+
d.contentReset.y=1;
|
2290 |
+
}
|
2291 |
+
if(to==="_resetX" && !d.contentReset.x){
|
2292 |
+
/* callbacks: onOverflowXNone */
|
2293 |
+
if(_cb("onOverflowXNone")){o.callbacks.onOverflowXNone.call(el[0]);}
|
2294 |
+
d.contentReset.x=1;
|
2295 |
+
}
|
2296 |
+
if(to==="_resetY" || to==="_resetX"){return;}
|
2297 |
+
if((d.contentReset.y || !el[0].mcs) && d.overflowed[0]){
|
2298 |
+
/* callbacks: onOverflowY */
|
2299 |
+
if(_cb("onOverflowY")){o.callbacks.onOverflowY.call(el[0]);}
|
2300 |
+
d.contentReset.x=null;
|
2301 |
+
}
|
2302 |
+
if((d.contentReset.x || !el[0].mcs) && d.overflowed[1]){
|
2303 |
+
/* callbacks: onOverflowX */
|
2304 |
+
if(_cb("onOverflowX")){o.callbacks.onOverflowX.call(el[0]);}
|
2305 |
+
d.contentReset.x=null;
|
2306 |
+
}
|
2307 |
+
if(o.snapAmount){ /* scrolling snapping */
|
2308 |
+
var snapAmount=!(o.snapAmount instanceof Array) ? o.snapAmount : options.dir==="x" ? o.snapAmount[1] : o.snapAmount[0];
|
2309 |
+
to=_snapAmount(to,snapAmount,o.snapOffset);
|
2310 |
+
}
|
2311 |
+
switch(options.dir){
|
2312 |
+
case "x":
|
2313 |
+
var mCSB_dragger=$("#mCSB_"+d.idx+"_dragger_horizontal"),
|
2314 |
+
property="left",
|
2315 |
+
contentPos=mCSB_container[0].offsetLeft,
|
2316 |
+
limit=[
|
2317 |
+
mCustomScrollBox.width()-mCSB_container.outerWidth(false),
|
2318 |
+
mCSB_dragger.parent().width()-mCSB_dragger.width()
|
2319 |
+
],
|
2320 |
+
scrollTo=[to,to===0 ? 0 : (to/d.scrollRatio.x)],
|
2321 |
+
tso=totalScrollOffsets[1],
|
2322 |
+
tsbo=totalScrollBackOffsets[1],
|
2323 |
+
totalScrollOffset=tso>0 ? tso/d.scrollRatio.x : 0,
|
2324 |
+
totalScrollBackOffset=tsbo>0 ? tsbo/d.scrollRatio.x : 0;
|
2325 |
+
break;
|
2326 |
+
case "y":
|
2327 |
+
var mCSB_dragger=$("#mCSB_"+d.idx+"_dragger_vertical"),
|
2328 |
+
property="top",
|
2329 |
+
contentPos=mCSB_container[0].offsetTop,
|
2330 |
+
limit=[
|
2331 |
+
mCustomScrollBox.height()-mCSB_container.outerHeight(false),
|
2332 |
+
mCSB_dragger.parent().height()-mCSB_dragger.height()
|
2333 |
+
],
|
2334 |
+
scrollTo=[to,to===0 ? 0 : (to/d.scrollRatio.y)],
|
2335 |
+
tso=totalScrollOffsets[0],
|
2336 |
+
tsbo=totalScrollBackOffsets[0],
|
2337 |
+
totalScrollOffset=tso>0 ? tso/d.scrollRatio.y : 0,
|
2338 |
+
totalScrollBackOffset=tsbo>0 ? tsbo/d.scrollRatio.y : 0;
|
2339 |
+
break;
|
2340 |
+
}
|
2341 |
+
if(scrollTo[1]<0 || (scrollTo[0]===0 && scrollTo[1]===0)){
|
2342 |
+
scrollTo=[0,0];
|
2343 |
+
}else if(scrollTo[1]>=limit[1]){
|
2344 |
+
scrollTo=[limit[0],limit[1]];
|
2345 |
+
}else{
|
2346 |
+
scrollTo[0]=-scrollTo[0];
|
2347 |
+
}
|
2348 |
+
if(!el[0].mcs){
|
2349 |
+
_mcs(); /* init mcs object (once) to make it available before callbacks */
|
2350 |
+
if(_cb("onInit")){o.callbacks.onInit.call(el[0]);} /* callbacks: onInit */
|
2351 |
+
}
|
2352 |
+
clearTimeout(mCSB_container[0].onCompleteTimeout);
|
2353 |
+
_tweenTo(mCSB_dragger[0],property,Math.round(scrollTo[1]),dur[1],options.scrollEasing);
|
2354 |
+
if(!d.tweenRunning && ((contentPos===0 && scrollTo[0]>=0) || (contentPos===limit[0] && scrollTo[0]<=limit[0]))){return;}
|
2355 |
+
_tweenTo(mCSB_container[0],property,Math.round(scrollTo[0]),dur[0],options.scrollEasing,options.overwrite,{
|
2356 |
+
onStart:function(){
|
2357 |
+
if(options.callbacks && options.onStart && !d.tweenRunning){
|
2358 |
+
/* callbacks: onScrollStart */
|
2359 |
+
if(_cb("onScrollStart")){_mcs(); o.callbacks.onScrollStart.call(el[0]);}
|
2360 |
+
d.tweenRunning=true;
|
2361 |
+
_onDragClasses(mCSB_dragger);
|
2362 |
+
d.cbOffsets=_cbOffsets();
|
2363 |
+
}
|
2364 |
+
},onUpdate:function(){
|
2365 |
+
if(options.callbacks && options.onUpdate){
|
2366 |
+
/* callbacks: whileScrolling */
|
2367 |
+
if(_cb("whileScrolling")){_mcs(); o.callbacks.whileScrolling.call(el[0]);}
|
2368 |
+
}
|
2369 |
+
},onComplete:function(){
|
2370 |
+
if(options.callbacks && options.onComplete){
|
2371 |
+
if(o.axis==="yx"){clearTimeout(mCSB_container[0].onCompleteTimeout);}
|
2372 |
+
var t=mCSB_container[0].idleTimer || 0;
|
2373 |
+
mCSB_container[0].onCompleteTimeout=setTimeout(function(){
|
2374 |
+
/* callbacks: onScroll, onTotalScroll, onTotalScrollBack */
|
2375 |
+
if(_cb("onScroll")){_mcs(); o.callbacks.onScroll.call(el[0]);}
|
2376 |
+
if(_cb("onTotalScroll") && scrollTo[1]>=limit[1]-totalScrollOffset && d.cbOffsets[0]){_mcs(); o.callbacks.onTotalScroll.call(el[0]);}
|
2377 |
+
if(_cb("onTotalScrollBack") && scrollTo[1]<=totalScrollBackOffset && d.cbOffsets[1]){_mcs(); o.callbacks.onTotalScrollBack.call(el[0]);}
|
2378 |
+
d.tweenRunning=false;
|
2379 |
+
mCSB_container[0].idleTimer=0;
|
2380 |
+
_onDragClasses(mCSB_dragger,"hide");
|
2381 |
+
},t);
|
2382 |
+
}
|
2383 |
+
}
|
2384 |
+
});
|
2385 |
+
/* checks if callback function exists */
|
2386 |
+
function _cb(cb){
|
2387 |
+
return d && o.callbacks[cb] && typeof o.callbacks[cb]==="function";
|
2388 |
+
}
|
2389 |
+
/* checks whether callback offsets always trigger */
|
2390 |
+
function _cbOffsets(){
|
2391 |
+
return [o.callbacks.alwaysTriggerOffsets || contentPos>=limit[0]+tso,o.callbacks.alwaysTriggerOffsets || contentPos<=-tsbo];
|
2392 |
+
}
|
2393 |
+
/*
|
2394 |
+
populates object with useful values for the user
|
2395 |
+
values:
|
2396 |
+
content: this.mcs.content
|
2397 |
+
content top position: this.mcs.top
|
2398 |
+
content left position: this.mcs.left
|
2399 |
+
dragger top position: this.mcs.draggerTop
|
2400 |
+
dragger left position: this.mcs.draggerLeft
|
2401 |
+
scrolling y percentage: this.mcs.topPct
|
2402 |
+
scrolling x percentage: this.mcs.leftPct
|
2403 |
+
scrolling direction: this.mcs.direction
|
2404 |
+
*/
|
2405 |
+
function _mcs(){
|
2406 |
+
var cp=[mCSB_container[0].offsetTop,mCSB_container[0].offsetLeft], /* content position */
|
2407 |
+
dp=[mCSB_dragger[0].offsetTop,mCSB_dragger[0].offsetLeft], /* dragger position */
|
2408 |
+
cl=[mCSB_container.outerHeight(false),mCSB_container.outerWidth(false)], /* content length */
|
2409 |
+
pl=[mCustomScrollBox.height(),mCustomScrollBox.width()]; /* content parent length */
|
2410 |
+
el[0].mcs={
|
2411 |
+
content:mCSB_container, /* original content wrapper as jquery object */
|
2412 |
+
top:cp[0],left:cp[1],draggerTop:dp[0],draggerLeft:dp[1],
|
2413 |
+
topPct:Math.round((100*Math.abs(cp[0]))/(Math.abs(cl[0])-pl[0])),leftPct:Math.round((100*Math.abs(cp[1]))/(Math.abs(cl[1])-pl[1])),
|
2414 |
+
direction:options.dir
|
2415 |
+
};
|
2416 |
+
/*
|
2417 |
+
this refers to the original element containing the scrollbar(s)
|
2418 |
+
usage: this.mcs.top, this.mcs.leftPct etc.
|
2419 |
+
*/
|
2420 |
+
}
|
2421 |
+
},
|
2422 |
+
/* -------------------- */
|
2423 |
+
|
2424 |
+
|
2425 |
+
/*
|
2426 |
+
CUSTOM JAVASCRIPT ANIMATION TWEEN
|
2427 |
+
Lighter and faster than jquery animate() and css transitions
|
2428 |
+
Animates top/left properties and includes easings
|
2429 |
+
*/
|
2430 |
+
_tweenTo=function(el,prop,to,duration,easing,overwrite,callbacks){
|
2431 |
+
if(!el._mTween){el._mTween={top:{},left:{}};}
|
2432 |
+
var callbacks=callbacks || {},
|
2433 |
+
onStart=callbacks.onStart || function(){},onUpdate=callbacks.onUpdate || function(){},onComplete=callbacks.onComplete || function(){},
|
2434 |
+
startTime=_getTime(),_delay,progress=0,from=el.offsetTop,elStyle=el.style,_request,tobj=el._mTween[prop];
|
2435 |
+
if(prop==="left"){from=el.offsetLeft;}
|
2436 |
+
var diff=to-from;
|
2437 |
+
tobj.stop=0;
|
2438 |
+
if(overwrite!=="none"){_cancelTween();}
|
2439 |
+
_startTween();
|
2440 |
+
function _step(){
|
2441 |
+
if(tobj.stop){return;}
|
2442 |
+
if(!progress){onStart.call();}
|
2443 |
+
progress=_getTime()-startTime;
|
2444 |
+
_tween();
|
2445 |
+
if(progress>=tobj.time){
|
2446 |
+
tobj.time=(progress>tobj.time) ? progress+_delay-(progress-tobj.time) : progress+_delay-1;
|
2447 |
+
if(tobj.time<progress+1){tobj.time=progress+1;}
|
2448 |
+
}
|
2449 |
+
if(tobj.time<duration){tobj.id=_request(_step);}else{onComplete.call();}
|
2450 |
+
}
|
2451 |
+
function _tween(){
|
2452 |
+
if(duration>0){
|
2453 |
+
tobj.currVal=_ease(tobj.time,from,diff,duration,easing);
|
2454 |
+
elStyle[prop]=Math.round(tobj.currVal)+"px";
|
2455 |
+
}else{
|
2456 |
+
elStyle[prop]=to+"px";
|
2457 |
+
}
|
2458 |
+
onUpdate.call();
|
2459 |
+
}
|
2460 |
+
function _startTween(){
|
2461 |
+
_delay=1000/60;
|
2462 |
+
tobj.time=progress+_delay;
|
2463 |
+
_request=(!window.requestAnimationFrame) ? function(f){_tween(); return setTimeout(f,0.01);} : window.requestAnimationFrame;
|
2464 |
+
tobj.id=_request(_step);
|
2465 |
+
}
|
2466 |
+
function _cancelTween(){
|
2467 |
+
if(tobj.id==null){return;}
|
2468 |
+
if(!window.requestAnimationFrame){clearTimeout(tobj.id);
|
2469 |
+
}else{window.cancelAnimationFrame(tobj.id);}
|
2470 |
+
tobj.id=null;
|
2471 |
+
}
|
2472 |
+
function _ease(t,b,c,d,type){
|
2473 |
+
switch(type){
|
2474 |
+
case "linear": case "mcsLinear":
|
2475 |
+
return c*t/d + b;
|
2476 |
+
break;
|
2477 |
+
case "mcsLinearOut":
|
2478 |
+
t/=d; t--; return c * Math.sqrt(1 - t*t) + b;
|
2479 |
+
break;
|
2480 |
+
case "easeInOutSmooth":
|
2481 |
+
t/=d/2;
|
2482 |
+
if(t<1) return c/2*t*t + b;
|
2483 |
+
t--;
|
2484 |
+
return -c/2 * (t*(t-2) - 1) + b;
|
2485 |
+
break;
|
2486 |
+
case "easeInOutStrong":
|
2487 |
+
t/=d/2;
|
2488 |
+
if(t<1) return c/2 * Math.pow( 2, 10 * (t - 1) ) + b;
|
2489 |
+
t--;
|
2490 |
+
return c/2 * ( -Math.pow( 2, -10 * t) + 2 ) + b;
|
2491 |
+
break;
|
2492 |
+
case "easeInOut": case "mcsEaseInOut":
|
2493 |
+
t/=d/2;
|
2494 |
+
if(t<1) return c/2*t*t*t + b;
|
2495 |
+
t-=2;
|
2496 |
+
return c/2*(t*t*t + 2) + b;
|
2497 |
+
break;
|
2498 |
+
case "easeOutSmooth":
|
2499 |
+
t/=d; t--;
|
2500 |
+
return -c * (t*t*t*t - 1) + b;
|
2501 |
+
break;
|
2502 |
+
case "easeOutStrong":
|
2503 |
+
return c * ( -Math.pow( 2, -10 * t/d ) + 1 ) + b;
|
2504 |
+
break;
|
2505 |
+
case "easeOut": case "mcsEaseOut": default:
|
2506 |
+
var ts=(t/=d)*t,tc=ts*t;
|
2507 |
+
return b+c*(0.499999999999997*tc*ts + -2.5*ts*ts + 5.5*tc + -6.5*ts + 4*t);
|
2508 |
+
}
|
2509 |
+
}
|
2510 |
+
},
|
2511 |
+
/* -------------------- */
|
2512 |
+
|
2513 |
+
|
2514 |
+
/* returns current time */
|
2515 |
+
_getTime=function(){
|
2516 |
+
if(window.performance && window.performance.now){
|
2517 |
+
return window.performance.now();
|
2518 |
+
}else{
|
2519 |
+
if(window.performance && window.performance.webkitNow){
|
2520 |
+
return window.performance.webkitNow();
|
2521 |
+
}else{
|
2522 |
+
if(Date.now){return Date.now();}else{return new Date().getTime();}
|
2523 |
+
}
|
2524 |
+
}
|
2525 |
+
},
|
2526 |
+
/* -------------------- */
|
2527 |
+
|
2528 |
+
|
2529 |
+
/* stops a tween */
|
2530 |
+
_stopTween=function(){
|
2531 |
+
var el=this;
|
2532 |
+
if(!el._mTween){el._mTween={top:{},left:{}};}
|
2533 |
+
var props=["top","left"];
|
2534 |
+
for(var i=0; i<props.length; i++){
|
2535 |
+
var prop=props[i];
|
2536 |
+
if(el._mTween[prop].id){
|
2537 |
+
if(!window.requestAnimationFrame){clearTimeout(el._mTween[prop].id);
|
2538 |
+
}else{window.cancelAnimationFrame(el._mTween[prop].id);}
|
2539 |
+
el._mTween[prop].id=null;
|
2540 |
+
el._mTween[prop].stop=1;
|
2541 |
+
}
|
2542 |
+
}
|
2543 |
+
},
|
2544 |
+
/* -------------------- */
|
2545 |
+
|
2546 |
+
|
2547 |
+
/* deletes a property (avoiding the exception thrown by IE) */
|
2548 |
+
_delete=function(c,m){
|
2549 |
+
try{delete c[m];}catch(e){c[m]=null;}
|
2550 |
+
},
|
2551 |
+
/* -------------------- */
|
2552 |
+
|
2553 |
+
|
2554 |
+
/* detects left mouse button */
|
2555 |
+
_mouseBtnLeft=function(e){
|
2556 |
+
return !(e.which && e.which!==1);
|
2557 |
+
},
|
2558 |
+
/* -------------------- */
|
2559 |
+
|
2560 |
+
|
2561 |
+
/* detects if pointer type event is touch */
|
2562 |
+
_pointerTouch=function(e){
|
2563 |
+
var t=e.originalEvent.pointerType;
|
2564 |
+
return !(t && t!=="touch" && t!==2);
|
2565 |
+
},
|
2566 |
+
/* -------------------- */
|
2567 |
+
|
2568 |
+
|
2569 |
+
/* checks if value is numeric */
|
2570 |
+
_isNumeric=function(val){
|
2571 |
+
return !isNaN(parseFloat(val)) && isFinite(val);
|
2572 |
+
},
|
2573 |
+
/* -------------------- */
|
2574 |
+
|
2575 |
+
|
2576 |
+
/* returns element position according to content */
|
2577 |
+
_childPos=function(el){
|
2578 |
+
var p=el.parents(".mCSB_container");
|
2579 |
+
return [el.offset().top-p.offset().top,el.offset().left-p.offset().left];
|
2580 |
+
},
|
2581 |
+
/* -------------------- */
|
2582 |
+
|
2583 |
+
|
2584 |
+
/* checks if browser tab is hidden/inactive via Page Visibility API */
|
2585 |
+
_isTabHidden=function(){
|
2586 |
+
var prop=_getHiddenProp();
|
2587 |
+
if(!prop) return false;
|
2588 |
+
return document[prop];
|
2589 |
+
function _getHiddenProp(){
|
2590 |
+
var pfx=["webkit","moz","ms","o"];
|
2591 |
+
if("hidden" in document) return "hidden"; //natively supported
|
2592 |
+
for(var i=0; i<pfx.length; i++){ //prefixed
|
2593 |
+
if((pfx[i]+"Hidden") in document)
|
2594 |
+
return pfx[i]+"Hidden";
|
2595 |
+
}
|
2596 |
+
return null; //not supported
|
2597 |
+
}
|
2598 |
+
};
|
2599 |
+
/* -------------------- */
|
2600 |
+
|
2601 |
+
|
2602 |
+
|
2603 |
+
|
2604 |
+
|
2605 |
+
/*
|
2606 |
+
----------------------------------------
|
2607 |
+
PLUGIN SETUP
|
2608 |
+
----------------------------------------
|
2609 |
+
*/
|
2610 |
+
|
2611 |
+
/* plugin constructor functions */
|
2612 |
+
$.fn[pluginNS]=function(method){ /* usage: $(selector).mCustomScrollbar(); */
|
2613 |
+
if(methods[method]){
|
2614 |
+
return methods[method].apply(this,Array.prototype.slice.call(arguments,1));
|
2615 |
+
}else if(typeof method==="object" || !method){
|
2616 |
+
return methods.init.apply(this,arguments);
|
2617 |
+
}else{
|
2618 |
+
$.error("Method "+method+" does not exist");
|
2619 |
+
}
|
2620 |
+
};
|
2621 |
+
$[pluginNS]=function(method){ /* usage: $.mCustomScrollbar(); */
|
2622 |
+
if(methods[method]){
|
2623 |
+
return methods[method].apply(this,Array.prototype.slice.call(arguments,1));
|
2624 |
+
}else if(typeof method==="object" || !method){
|
2625 |
+
return methods.init.apply(this,arguments);
|
2626 |
+
}else{
|
2627 |
+
$.error("Method "+method+" does not exist");
|
2628 |
+
}
|
2629 |
+
};
|
2630 |
+
|
2631 |
+
/*
|
2632 |
+
allow setting plugin default options.
|
2633 |
+
usage: $.mCustomScrollbar.defaults.scrollInertia=500;
|
2634 |
+
to apply any changed default options on default selectors (below), use inside document ready fn
|
2635 |
+
e.g.: $(document).ready(function(){ $.mCustomScrollbar.defaults.scrollInertia=500; });
|
2636 |
+
*/
|
2637 |
+
$[pluginNS].defaults=defaults;
|
2638 |
+
|
2639 |
+
/*
|
2640 |
+
add window object (window.mCustomScrollbar)
|
2641 |
+
usage: if(window.mCustomScrollbar){console.log("custom scrollbar plugin loaded");}
|
2642 |
+
*/
|
2643 |
+
window[pluginNS]=true;
|
2644 |
+
|
2645 |
+
$(window).bind("load",function(){
|
2646 |
+
|
2647 |
+
$(defaultSelector)[pluginNS](); /* add scrollbars automatically on default selector */
|
2648 |
+
|
2649 |
+
/* extend jQuery expressions */
|
2650 |
+
$.extend($.expr[":"],{
|
2651 |
+
/* checks if element is within scrollable viewport */
|
2652 |
+
mcsInView:$.expr[":"].mcsInView || function(el){
|
2653 |
+
var $el=$(el),content=$el.parents(".mCSB_container"),wrapper,cPos;
|
2654 |
+
if(!content.length){return;}
|
2655 |
+
wrapper=content.parent();
|
2656 |
+
cPos=[content[0].offsetTop,content[0].offsetLeft];
|
2657 |
+
return cPos[0]+_childPos($el)[0]>=0 && cPos[0]+_childPos($el)[0]<wrapper.height()-$el.outerHeight(false) &&
|
2658 |
+
cPos[1]+_childPos($el)[1]>=0 && cPos[1]+_childPos($el)[1]<wrapper.width()-$el.outerWidth(false);
|
2659 |
+
},
|
2660 |
+
/* checks if element or part of element is in view of scrollable viewport */
|
2661 |
+
mcsInSight:$.expr[":"].mcsInSight || function(el,i,m){
|
2662 |
+
var $el=$(el),elD,content=$el.parents(".mCSB_container"),wrapperView,pos,wrapperViewPct,
|
2663 |
+
pctVals=m[3]==="exact" ? [[1,0],[1,0]] : [[0.9,0.1],[0.6,0.4]];
|
2664 |
+
if(!content.length){return;}
|
2665 |
+
elD=[$el.outerHeight(false),$el.outerWidth(false)];
|
2666 |
+
pos=[content[0].offsetTop+_childPos($el)[0],content[0].offsetLeft+_childPos($el)[1]];
|
2667 |
+
wrapperView=[content.parent()[0].offsetHeight,content.parent()[0].offsetWidth];
|
2668 |
+
wrapperViewPct=[elD[0]<wrapperView[0] ? pctVals[0] : pctVals[1],elD[1]<wrapperView[1] ? pctVals[0] : pctVals[1]];
|
2669 |
+
return pos[0]-(wrapperView[0]*wrapperViewPct[0][0])<0 && pos[0]+elD[0]-(wrapperView[0]*wrapperViewPct[0][1])>=0 &&
|
2670 |
+
pos[1]-(wrapperView[1]*wrapperViewPct[1][0])<0 && pos[1]+elD[1]-(wrapperView[1]*wrapperViewPct[1][1])>=0;
|
2671 |
+
},
|
2672 |
+
/* checks if element is overflowed having visible scrollbar(s) */
|
2673 |
+
mcsOverflow:$.expr[":"].mcsOverflow || function(el){
|
2674 |
+
var d=$(el).data(pluginPfx);
|
2675 |
+
if(!d){return;}
|
2676 |
+
return d.overflowed[0] || d.overflowed[1];
|
2677 |
+
}
|
2678 |
+
});
|
2679 |
+
|
2680 |
+
});
|
2681 |
+
|
2682 |
+
}))
|
2683 |
+
}));
|
assets/js/um-scrollbar.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
!function(e){"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof exports?module.exports=e:e(jQuery)}(function(h){function t(e){var t=e||window.event,o=v.call(arguments,1),a=0,n=0,i=0,r=0,l=0,s=0;if((e=h.event.fix(t)).type="mousewheel","detail"in t&&(i=-1*t.detail),"wheelDelta"in t&&(i=t.wheelDelta),"wheelDeltaY"in t&&(i=t.wheelDeltaY),"wheelDeltaX"in t&&(n=-1*t.wheelDeltaX),"axis"in t&&t.axis===t.HORIZONTAL_AXIS&&(n=-1*i,i=0),a=0===i?n:i,"deltaY"in t&&(a=i=-1*t.deltaY),"deltaX"in t&&(n=t.deltaX,0===i&&(a=-1*n)),0!==i||0!==n){if(1===t.deltaMode){var c=h.data(this,"mousewheel-line-height");a*=c,i*=c,n*=c}else if(2===t.deltaMode){var d=h.data(this,"mousewheel-page-height");a*=d,i*=d,n*=d}if(r=Math.max(Math.abs(i),Math.abs(n)),(!g||r<g)&&(m(t,g=r)&&(g/=40)),m(t,r)&&(a/=40,n/=40,i/=40),a=Math[1<=a?"floor":"ceil"](a/g),n=Math[1<=n?"floor":"ceil"](n/g),i=Math[1<=i?"floor":"ceil"](i/g),x.settings.normalizeOffset&&this.getBoundingClientRect){var u=this.getBoundingClientRect();l=e.clientX-u.left,s=e.clientY-u.top}return e.deltaX=n,e.deltaY=i,e.deltaFactor=g,e.offsetX=l,e.offsetY=s,e.deltaMode=0,o.unshift(e,a,n,i),p&&clearTimeout(p),p=setTimeout(f,200),(h.event.dispatch||h.event.handle).apply(this,o)}}function f(){g=null}function m(e,t){return x.settings.adjustOldDeltas&&"mousewheel"===e.type&&t%120==0}var p,g,e=["wheel","mousewheel","DOMMouseScroll","MozMousePixelScroll"],o="onwheel"in document||9<=document.documentMode?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"],v=Array.prototype.slice;if(h.event.fixHooks)for(var a=e.length;a;)h.event.fixHooks[e[--a]]=h.event.mouseHooks;var x=h.event.special.mousewheel={version:"3.1.12",setup:function(){if(this.addEventListener)for(var e=o.length;e;)this.addEventListener(o[--e],t,!1);else this.onmousewheel=t;h.data(this,"mousewheel-line-height",x.getLineHeight(this)),h.data(this,"mousewheel-page-height",x.getPageHeight(this))},teardown:function(){if(this.removeEventListener)for(var e=o.length;e;)this.removeEventListener(o[--e],t,!1);else this.onmousewheel=null;h.removeData(this,"mousewheel-line-height"),h.removeData(this,"mousewheel-page-height")},getLineHeight:function(e){var t=h(e),o=t["offsetParent"in h.fn?"offsetParent":"parent"]();return o.length||(o=h("body")),parseInt(o.css("fontSize"),10)||parseInt(t.css("fontSize"),10)||16},getPageHeight:function(e){return h(e).height()},settings:{adjustOldDeltas:!0,normalizeOffset:!0}};h.fn.extend({mousewheel:function(e){return e?this.bind("mousewheel",e):this.trigger("mousewheel")},unmousewheel:function(e){return this.unbind("mousewheel",e)}})}),function(e){"undefined"!=typeof module&&module.exports?module.exports=e:e(jQuery,window,document)}(function(E){var L,f,W,a,n,l,i,p,A,w,v,c,s,d,u,h,m,g,x,_,S,b,C,T,y,B,M,k,O,P,r,I,D,R,z,H,X,Y,U,j,q,F,N,V,Q,Z,G,J,K,$,ee,te,oe,ae,ne,e,t,o;e="function"==typeof define&&define.amd,t="undefined"!=typeof module&&module.exports,o="https:"==document.location.protocol?"https:":"http:",e||(t?require("jquery-mousewheel")(E):E.event.special.mousewheel||E("head").append(decodeURI("%3Cscript src="+o+"//cdnjs.cloudflare.com/ajax/libs/jquery-mousewheel/3.1.12/jquery.mousewheel.min.js%3E%3C/script%3E"))),f="mCustomScrollbar",W="mCS",a=".mCustomScrollbar",n={setTop:0,setLeft:0,axis:"y",scrollbarPosition:"inside",scrollInertia:950,autoDraggerLength:!0,alwaysShowScrollbar:0,snapOffset:0,mouseWheel:{enable:!0,scrollAmount:"auto",axis:"y",deltaFactor:"auto",disableOver:["select","option","keygen","datalist","textarea"]},scrollButtons:{scrollType:"stepless",scrollAmount:"auto"},keyboard:{enable:!0,scrollType:"stepless",scrollAmount:"auto"},contentTouchScroll:25,advanced:{autoScrollOnFocus:"input,textarea,select,button,datalist,keygen,a[tabindex],area,object,[contenteditable='true']",updateOnContentResize:!0,updateOnImageLoad:!0},theme:"light",callbacks:{onTotalScrollOffset:0,onTotalScrollBackOffset:0,alwaysTriggerOffsets:!0}},l=0,i={},p=window.attachEvent&&!window.addEventListener?1:0,A=!1,w=["mCSB_dragger_onDrag","mCSB_scrollTools_onDrag","mCS_img_loaded","mCS_disabled","mCS_destroyed","mCS_no_scrollbar","mCS-autoHide","mCS-dir-rtl","mCS_no_scrollbar_y","mCS_no_scrollbar_x","mCS_y_hidden","mCS_x_hidden","mCSB_draggerContainer","mCSB_buttonUp","mCSB_buttonDown","mCSB_buttonLeft","mCSB_buttonRight"],v={init:function(r){var r=E.extend(!0,{},n,r),e=c.call(this);if(r.live){var t=r.liveSelector||this.selector||a,o=E(t);if("off"===r.live)return void d(t);i[t]=setTimeout(function(){o.mCustomScrollbar(r),"once"===r.live&&o.length&&d(t)},500)}else d(t);return r.setWidth=r.set_width?r.set_width:r.setWidth,r.setHeight=r.set_height?r.set_height:r.setHeight,r.axis=r.horizontalScroll?"x":u(r.axis),r.scrollInertia=0<r.scrollInertia&&r.scrollInertia<17?17:r.scrollInertia,"object"!=typeof r.mouseWheel&&1==r.mouseWheel&&(r.mouseWheel={enable:!0,scrollAmount:"auto",axis:"y",preventDefault:!1,deltaFactor:"auto",normalizeDelta:!1,invert:!1}),r.mouseWheel.scrollAmount=r.mouseWheelPixels?r.mouseWheelPixels:r.mouseWheel.scrollAmount,r.mouseWheel.normalizeDelta=r.advanced.normalizeMouseWheelDelta?r.advanced.normalizeMouseWheelDelta:r.mouseWheel.normalizeDelta,r.scrollButtons.scrollType=h(r.scrollButtons.scrollType),s(r),E(e).each(function(){var e=E(this);if(!e.data(W)){e.data(W,{idx:++l,opt:r,scrollRatio:{y:null,x:null},overflowed:null,contentReset:{y:null,x:null},bindEvents:!1,tweenRunning:!1,sequential:{},langDir:e.css("direction"),cbOffsets:null,trigger:null});var t=e.data(W),o=t.opt,a=e.data("mcs-axis"),n=e.data("mcs-scrollbar-position"),i=e.data("mcs-theme");a&&(o.axis=a),n&&(o.scrollbarPosition=n),i&&(o.theme=i,s(o)),m.call(this),E("#mCSB_"+t.idx+"_container img:not(."+w[2]+")").addClass(w[2]),v.update.call(null,e)}})},update:function(e,r){var t=e||c.call(this);return E(t).each(function(){var e=E(this);if(e.data(W)){var t=e.data(W),o=t.opt,a=E("#mCSB_"+t.idx+"_container"),n=[E("#mCSB_"+t.idx+"_dragger_vertical"),E("#mCSB_"+t.idx+"_dragger_horizontal")];if(!a.length)return;t.tweenRunning&&Z(e),e.hasClass(w[3])&&e.removeClass(w[3]),e.hasClass(w[4])&&e.removeClass(w[4]),S.call(this),x.call(this),"y"===o.axis||o.advanced.autoExpandHorizontalScroll||a.css("width",g(a.children())),t.overflowed=y.call(this),O.call(this),o.autoDraggerLength&&b.call(this),C.call(this),M.call(this);var i=[Math.abs(a[0].offsetTop),Math.abs(a[0].offsetLeft)];"x"!==o.axis&&(t.overflowed[0]?n[0].height()>n[0].parent().height()?B.call(this):(G(e,i[0].toString(),{dir:"y",dur:0,overwrite:"none"}),t.contentReset.y=null):(B.call(this),"y"===o.axis?k.call(this):"yx"===o.axis&&t.overflowed[1]&&G(e,i[1].toString(),{dir:"x",dur:0,overwrite:"none"}))),"y"!==o.axis&&(t.overflowed[1]?n[1].width()>n[1].parent().width()?B.call(this):(G(e,i[1].toString(),{dir:"x",dur:0,overwrite:"none"}),t.contentReset.x=null):(B.call(this),"x"===o.axis?k.call(this):"yx"===o.axis&&t.overflowed[0]&&G(e,i[0].toString(),{dir:"y",dur:0,overwrite:"none"}))),r&&t&&(2===r&&o.callbacks.onImageLoad&&"function"==typeof o.callbacks.onImageLoad?o.callbacks.onImageLoad.call(this):3===r&&o.callbacks.onSelectorChange&&"function"==typeof o.callbacks.onSelectorChange?o.callbacks.onSelectorChange.call(this):o.callbacks.onUpdate&&"function"==typeof o.callbacks.onUpdate&&o.callbacks.onUpdate.call(this)),Q.call(this)}})},scrollTo:function(l,s){if(void 0!==l&&null!=l){var e=c.call(this);return E(e).each(function(){var e=E(this);if(e.data(W)){var t=e.data(W),o=t.opt,a={trigger:"external",scrollInertia:o.scrollInertia,scrollEasing:"mcsEaseInOut",moveDragger:!1,timeout:60,callbacks:!0,onStart:!0,onUpdate:!0,onComplete:!0},n=E.extend(!0,{},a,s),i=N.call(this,l),r=0<n.scrollInertia&&n.scrollInertia<17?17:n.scrollInertia;i[0]=V.call(this,i[0],"y"),i[1]=V.call(this,i[1],"x"),n.moveDragger&&(i[0]*=t.scrollRatio.y,i[1]*=t.scrollRatio.x),n.dur=r,setTimeout(function(){null!==i[0]&&void 0!==i[0]&&"x"!==o.axis&&t.overflowed[0]&&(n.dir="y",n.overwrite="all",G(e,i[0].toString(),n)),null!==i[1]&&void 0!==i[1]&&"y"!==o.axis&&t.overflowed[1]&&(n.dir="x",n.overwrite="none",G(e,i[1].toString(),n))},n.timeout)}})}},stop:function(){var e=c.call(this);return E(e).each(function(){var e=E(this);e.data(W)&&Z(e)})},disable:function(t){var e=c.call(this);return E(e).each(function(){var e=E(this);e.data(W)&&(e.data(W),Q.call(this,"remove"),k.call(this),t&&B.call(this),O.call(this,!0),e.addClass(w[3]))})},destroy:function(){var r=c.call(this);return E(r).each(function(){var e=E(this);if(e.data(W)){var t=e.data(W),o=t.opt,a=E("#mCSB_"+t.idx),n=E("#mCSB_"+t.idx+"_container"),i=E(".mCSB_"+t.idx+"_scrollbar");o.live&&d(o.liveSelector||E(r).selector),Q.call(this,"remove"),k.call(this),B.call(this),e.removeData(W),ee(this,"mcs"),i.remove(),n.find("img."+w[2]).removeClass(w[2]),a.replaceWith(n.contents()),e.removeClass(f+" _"+W+"_"+t.idx+" "+w[6]+" "+w[7]+" "+w[5]+" "+w[3]).addClass(w[4])}})}},c=function(){return"object"!=typeof E(this)||E(this).length<1?a:this},s=function(e){e.autoDraggerLength=!(-1<E.inArray(e.theme,["rounded","rounded-dark","rounded-dots","rounded-dots-dark"]))&&e.autoDraggerLength,e.autoExpandScrollbar=!(-1<E.inArray(e.theme,["rounded-dots","rounded-dots-dark","3d","3d-dark","3d-thick","3d-thick-dark","inset","inset-dark","inset-2","inset-2-dark","inset-3","inset-3-dark"]))&&e.autoExpandScrollbar,e.scrollButtons.enable=!(-1<E.inArray(e.theme,["minimal","minimal-dark"]))&&e.scrollButtons.enable,e.autoHideScrollbar=-1<E.inArray(e.theme,["minimal","minimal-dark"])||e.autoHideScrollbar,e.scrollbarPosition=-1<E.inArray(e.theme,["minimal","minimal-dark"])?"outside":e.scrollbarPosition},d=function(e){i[e]&&(clearTimeout(i[e]),ee(i,e))},u=function(e){return"yx"===e||"xy"===e||"auto"===e?"yx":"x"===e||"horizontal"===e?"x":"y"},h=function(e){return"stepped"===e||"pixels"===e||"step"===e||"click"===e?"stepped":"stepless"},m=function(){var e=E(this),t=e.data(W),o=t.opt,a=o.autoExpandScrollbar?" "+w[1]+"_expand":"",n=["<div id='mCSB_"+t.idx+"_scrollbar_vertical' class='mCSB_scrollTools mCSB_"+t.idx+"_scrollbar mCS-"+o.theme+" mCSB_scrollTools_vertical"+a+"'><div class='"+w[12]+"'><div id='mCSB_"+t.idx+"_dragger_vertical' class='mCSB_dragger' style='position:absolute;' oncontextmenu='return false;'><div class='mCSB_dragger_bar' /></div><div class='mCSB_draggerRail' /></div></div>","<div id='mCSB_"+t.idx+"_scrollbar_horizontal' class='mCSB_scrollTools mCSB_"+t.idx+"_scrollbar mCS-"+o.theme+" mCSB_scrollTools_horizontal"+a+"'><div class='"+w[12]+"'><div id='mCSB_"+t.idx+"_dragger_horizontal' class='mCSB_dragger' style='position:absolute;' oncontextmenu='return false;'><div class='mCSB_dragger_bar' /></div><div class='mCSB_draggerRail' /></div></div>"],i="yx"===o.axis?"mCSB_vertical_horizontal":"x"===o.axis?"mCSB_horizontal":"mCSB_vertical",r="yx"===o.axis?n[0]+n[1]:"x"===o.axis?n[1]:n[0],l="yx"===o.axis?"<div id='mCSB_"+t.idx+"_container_wrapper' class='mCSB_container_wrapper' />":"",s=o.autoHideScrollbar?" "+w[6]:"",c="x"!==o.axis&&"rtl"===t.langDir?" "+w[7]:"";o.setWidth&&e.css("width",o.setWidth),o.setHeight&&e.css("height",o.setHeight),o.setLeft="y"!==o.axis&&"rtl"===t.langDir?"989999px":o.setLeft,e.addClass(f+" _"+W+"_"+t.idx+s+c).wrapInner("<div id='mCSB_"+t.idx+"' class='mCustomScrollBox mCS-"+o.theme+" "+i+"'><div id='mCSB_"+t.idx+"_container' class='mCSB_container' style='position:relative; top:"+o.setTop+"; left:"+o.setLeft+";' dir="+t.langDir+" /></div>");var d=E("#mCSB_"+t.idx),u=E("#mCSB_"+t.idx+"_container");"y"===o.axis||o.advanced.autoExpandHorizontalScroll||u.css("width",g(u.children())),"outside"===o.scrollbarPosition?("static"===e.css("position")&&e.css("position","relative"),e.css("overflow","visible"),d.addClass("mCSB_outside").after(r)):(d.addClass("mCSB_inside").append(r),u.wrap(l)),_.call(this);var h=[E("#mCSB_"+t.idx+"_dragger_vertical"),E("#mCSB_"+t.idx+"_dragger_horizontal")];h[0].css("min-height",h[0].height()),h[1].css("min-width",h[1].width())},g=function(e){return Math.max.apply(Math,e.map(function(){return E(this).outerWidth(!0)}).get())},x=function(){var e=E(this),t=e.data(W),o=t.opt,a=E("#mCSB_"+t.idx+"_container");o.advanced.autoExpandHorizontalScroll&&"y"!==o.axis&&a.css({position:"absolute",width:"auto"}).wrap("<div class='mCSB_h_wrapper' style='position:relative; left:0; width:999999px;' />").css({width:Math.ceil(a[0].getBoundingClientRect().right+.4)-Math.floor(a[0].getBoundingClientRect().left),position:"relative"}).unwrap()},_=function(){var e=E(this),t=e.data(W),o=t.opt,a=E(".mCSB_"+t.idx+"_scrollbar:first"),n=ae(o.scrollButtons.tabindex)?"tabindex='"+o.scrollButtons.tabindex+"'":"",i=["<a href='#' class='"+w[13]+"' oncontextmenu='return false;' "+n+" />","<a href='#' class='"+w[14]+"' oncontextmenu='return false;' "+n+" />","<a href='#' class='"+w[15]+"' oncontextmenu='return false;' "+n+" />","<a href='#' class='"+w[16]+"' oncontextmenu='return false;' "+n+" />"],r=["x"===o.axis?i[2]:i[0],"x"===o.axis?i[3]:i[1],i[2],i[3]];o.scrollButtons.enable&&a.prepend(r[0]).append(r[1]).next(".mCSB_scrollTools").prepend(r[2]).append(r[3])},S=function(){var e=E(this),t=e.data(W),o=E("#mCSB_"+t.idx),a=e.css("max-height")||"none",n=-1!==a.indexOf("%"),i=e.css("box-sizing");if("none"!==a){var r=n?e.parent().height()*parseInt(a)/100:parseInt(a);"border-box"===i&&(r-=e.innerHeight()-e.height()+(e.outerHeight()-e.innerHeight())),o.css("max-height",Math.round(r))}},b=function(){var e=E(this),t=e.data(W),o=E("#mCSB_"+t.idx),a=E("#mCSB_"+t.idx+"_container"),n=[E("#mCSB_"+t.idx+"_dragger_vertical"),E("#mCSB_"+t.idx+"_dragger_horizontal")],i=[o.height()/a.outerHeight(!1),o.width()/a.outerWidth(!1)],r=[parseInt(n[0].css("min-height")),Math.round(i[0]*n[0].parent().height()),parseInt(n[1].css("min-width")),Math.round(i[1]*n[1].parent().width())],l=p&&r[1]<r[0]?r[0]:r[1],s=p&&r[3]<r[2]?r[2]:r[3];n[0].css({height:l,"max-height":n[0].parent().height()-10}).find(".mCSB_dragger_bar").css({"line-height":r[0]+"px"}),n[1].css({width:s,"max-width":n[1].parent().width()-10})},C=function(){var e=E(this),t=e.data(W),o=E("#mCSB_"+t.idx),a=E("#mCSB_"+t.idx+"_container"),n=[E("#mCSB_"+t.idx+"_dragger_vertical"),E("#mCSB_"+t.idx+"_dragger_horizontal")],i=[a.outerHeight(!1)-o.height(),a.outerWidth(!1)-o.width()],r=[i[0]/(n[0].parent().height()-n[0].height()),i[1]/(n[1].parent().width()-n[1].width())];t.scrollRatio={y:r[0],x:r[1]}},T=function(e,t,o){var a=o?w[0]+"_expanded":"",n=e.closest(".mCSB_scrollTools");"active"===t?(e.toggleClass(w[0]+" "+a),n.toggleClass(w[1]),e[0]._draggable=e[0]._draggable?0:1):e[0]._draggable||("hide"===t?(e.removeClass(w[0]),n.removeClass(w[1])):(e.addClass(w[0]),n.addClass(w[1])))},y=function(){var e=E(this),t=e.data(W),o=E("#mCSB_"+t.idx),a=E("#mCSB_"+t.idx+"_container"),n=null==t.overflowed?a.height():a.outerHeight(!1),i=null==t.overflowed?a.width():a.outerWidth(!1);return[n>o.height(),i>o.width()]},B=function(){var e=E(this),t=e.data(W),o=t.opt,a=E("#mCSB_"+t.idx),n=E("#mCSB_"+t.idx+"_container"),i=[E("#mCSB_"+t.idx+"_dragger_vertical"),E("#mCSB_"+t.idx+"_dragger_horizontal")];if(Z(e),("x"!==o.axis&&!t.overflowed[0]||"y"===o.axis&&t.overflowed[0])&&(i[0].add(n).css("top",0),G(e,"_resetY")),"y"!==o.axis&&!t.overflowed[1]||"x"===o.axis&&t.overflowed[1]){var r=dx=0;"rtl"===t.langDir&&(r=a.width()-n.outerWidth(!1),dx=Math.abs(r/t.scrollRatio.x)),n.css("left",r),i[1].css("left",dx),G(e,"_resetX")}},M=function(){var t,o=E(this),e=o.data(W),a=e.opt;e.bindEvents||(r.call(this),a.contentTouchScroll&&I.call(this),D.call(this),a.mouseWheel.enable&&function e(){t=setTimeout(function(){E.event.special.mousewheel?(clearTimeout(t),R.call(o[0])):e()},100)}(),X.call(this),U.call(this),a.advanced.autoScrollOnFocus&&Y.call(this),a.scrollButtons.enable&&j.call(this),a.keyboard.enable&&q.call(this),e.bindEvents=!0)},k=function(){var e=E(this),t=e.data(W),o=t.opt,a=W+"_"+t.idx,n=".mCSB_"+t.idx+"_scrollbar",i=E("#mCSB_"+t.idx+",#mCSB_"+t.idx+"_container,#mCSB_"+t.idx+"_container_wrapper,"+n+" ."+w[12]+",#mCSB_"+t.idx+"_dragger_vertical,#mCSB_"+t.idx+"_dragger_horizontal,"+n+">a"),r=E("#mCSB_"+t.idx+"_container");o.advanced.releaseDraggableSelectors&&i.add(E(o.advanced.releaseDraggableSelectors)),t.bindEvents&&(E(document).unbind("."+a),i.each(function(){E(this).unbind("."+a)}),clearTimeout(e[0]._focusTimeout),ee(e[0],"_focusTimeout"),clearTimeout(t.sequential.step),ee(t.sequential,"step"),clearTimeout(r[0].onCompleteTimeout),ee(r[0],"onCompleteTimeout"),t.bindEvents=!1)},O=function(e){var t=E(this),o=t.data(W),a=o.opt,n=E("#mCSB_"+o.idx+"_container_wrapper"),i=n.length?n:E("#mCSB_"+o.idx+"_container"),r=[E("#mCSB_"+o.idx+"_scrollbar_vertical"),E("#mCSB_"+o.idx+"_scrollbar_horizontal")],l=[r[0].find(".mCSB_dragger"),r[1].find(".mCSB_dragger")];"x"!==a.axis&&(o.overflowed[0]&&!e?(r[0].add(l[0]).add(r[0].children("a")).css("display","block"),i.removeClass(w[8]+" "+w[10])):(a.alwaysShowScrollbar?(2!==a.alwaysShowScrollbar&&l[0].css("display","none"),i.removeClass(w[10])):(r[0].css("display","none"),i.addClass(w[10])),i.addClass(w[8]))),"y"!==a.axis&&(o.overflowed[1]&&!e?(r[1].add(l[1]).add(r[1].children("a")).css("display","block"),i.removeClass(w[9]+" "+w[11])):(a.alwaysShowScrollbar?(2!==a.alwaysShowScrollbar&&l[1].css("display","none"),i.removeClass(w[11])):(r[1].css("display","none"),i.addClass(w[11])),i.addClass(w[9]))),o.overflowed[0]||o.overflowed[1]?t.removeClass(w[5]):t.addClass(w[5])},P=function(e){var t=e.type;switch(t){case"pointerdown":case"MSPointerDown":case"pointermove":case"MSPointerMove":case"pointerup":case"MSPointerUp":return e.target.ownerDocument!==document?[e.originalEvent.screenY,e.originalEvent.screenX,!1]:[e.originalEvent.pageY,e.originalEvent.pageX,!1];case"touchstart":case"touchmove":case"touchend":var o=e.originalEvent.touches[0]||e.originalEvent.changedTouches[0],a=e.originalEvent.touches.length||e.originalEvent.changedTouches.length;return e.target.ownerDocument!==document?[o.screenY,o.screenX,1<a]:[o.pageY,o.pageX,1<a];default:return[e.pageY,e.pageX,!1]}},r=function(){function r(e){var t=m.find("iframe");if(t.length){var o=e?"auto":"none";t.css("pointer-events",o)}}function n(e,t,o,a){if(m[0].idleTimer=h.scrollInertia<233?250:0,l.attr("id")===f[1])var n="x",i=(l[0].offsetLeft-t+a)*u.scrollRatio.x;else var n="y",i=(l[0].offsetTop-e+o)*u.scrollRatio.y;G(d,i.toString(),{dir:n,drag:!0})}var l,s,c,d=E(this),u=d.data(W),h=u.opt,e=W+"_"+u.idx,f=["mCSB_"+u.idx+"_dragger_vertical","mCSB_"+u.idx+"_dragger_horizontal"],m=E("#mCSB_"+u.idx+"_container"),t=E("#"+f[0]+",#"+f[1]),o=h.advanced.releaseDraggableSelectors?t.add(E(h.advanced.releaseDraggableSelectors)):t;t.bind("mousedown."+e+" touchstart."+e+" pointerdown."+e+" MSPointerDown."+e,function(e){if(e.stopImmediatePropagation(),e.preventDefault(),te(e)){A=!0,p&&(document.onselectstart=function(){return!1}),r(!1),Z(d);var t=(l=E(this)).offset(),o=P(e)[0]-t.top,a=P(e)[1]-t.left,n=l.height()+t.top,i=l.width()+t.left;o<n&&0<o&&a<i&&0<a&&(s=o,c=a),T(l,"active",h.autoExpandScrollbar)}}).bind("touchmove."+e,function(e){e.stopImmediatePropagation(),e.preventDefault();var t=l.offset(),o=P(e)[0]-t.top,a=P(e)[1]-t.left;n(s,c,o,a)}),E(document).bind("mousemove."+e+" pointermove."+e+" MSPointerMove."+e,function(e){if(l){var t=l.offset(),o=P(e)[0]-t.top,a=P(e)[1]-t.left;if(s===o)return;n(s,c,o,a)}}).add(o).bind("mouseup."+e+" touchend."+e+" pointerup."+e+" MSPointerUp."+e,function(){l&&(T(l,"active",h.autoExpandScrollbar),l=null),A=!1,p&&(document.onselectstart=null),r(!0)})},I=function(){function t(e){if(!oe(e)||A||P(e)[2])L=0;else{L=1,C=b=0;var t=M.offset();c=P(e)[0]-t.top,h=P(e)[1]-t.left,R=[P(e)[0],P(e)[1]]}}function o(e){if(oe(e)&&!A&&!P(e)[2]&&(e.stopImmediatePropagation(),!C||b)){g=K();var t=T.offset(),o=P(e)[0]-t.top,a=P(e)[1]-t.left,n="mcsLinearOut";if(O.push(o),I.push(a),R[2]=Math.abs(P(e)[0]-R[0]),R[3]=Math.abs(P(e)[1]-R[1]),y.overflowed[0])var i=k[0].parent().height()-k[0].height(),r=0<c-o&&o-c>-i*y.scrollRatio.y&&(2*R[3]<R[2]||"yx"===B.axis);if(y.overflowed[1])var l=k[1].parent().width()-k[1].width(),s=0<h-a&&a-h>-l*y.scrollRatio.x&&(2*R[2]<R[3]||"yx"===B.axis);r||s?(e.preventDefault(),b=1):C=1,w="yx"===B.axis?[c-o,h-a]:"x"===B.axis?[null,h-a]:[c-o,null],M[0].idleTimer=250,y.overflowed[0]&&u(w[0],0,n,"y","all",!0),y.overflowed[1]&&u(w[1],0,n,"x",D,!0)}}function a(e){if(!oe(e)||A||P(e)[2])L=0;else{L=1,e.stopImmediatePropagation(),Z(r),p=K();var t=T.offset();f=P(e)[0]-t.top,m=P(e)[1]-t.left,O=[],I=[]}}function n(e){if(oe(e)&&!A&&!P(e)[2]){e.stopImmediatePropagation(),C=b=0,v=K();var t=T.offset(),o=P(e)[0]-t.top,a=P(e)[1]-t.left;if(!(30<v-g)){var n="mcsEaseOut",i=(_=1e3/(v-p))<2.5,r=i?[O[O.length-2],I[I.length-2]]:[0,0];x=i?[o-r[0],a-r[1]]:[o-f,a-m];var l=[Math.abs(x[0]),Math.abs(x[1])];_=i?[Math.abs(x[0]/4),Math.abs(x[1]/4)]:[_,_];var s=[Math.abs(M[0].offsetTop)-x[0]*d(l[0]/_[0],_[0]),Math.abs(M[0].offsetLeft)-x[1]*d(l[1]/_[1],_[1])];w="yx"===B.axis?[s[0],s[1]]:"x"===B.axis?[null,s[1]]:[s[0],null],S=[4*l[0]+B.scrollInertia,4*l[1]+B.scrollInertia];var c=parseInt(B.contentTouchScroll)||0;w[0]=c<l[0]?w[0]:0,w[1]=c<l[1]?w[1]:0,y.overflowed[0]&&u(w[0],S[0],n,"y",D,!1),y.overflowed[1]&&u(w[1],S[1],n,"x",D,!1)}}}function d(e,t){var o=[1.5*t,2*t,t/1.5,t/2];return 90<e?4<t?o[0]:o[3]:60<e?3<t?o[3]:o[2]:30<e?8<t?o[1]:6<t?o[0]:4<t?t:o[2]:8<t?t:o[3]}function u(e,t,o,a,n,i){e&&G(r,e.toString(),{dur:t,scrollEasing:o,dir:a,overwrite:n,drag:i})}var c,h,f,m,p,g,v,x,_,w,S,b,C,r=E(this),y=r.data(W),B=y.opt,e=W+"_"+y.idx,T=E("#mCSB_"+y.idx),M=E("#mCSB_"+y.idx+"_container"),k=[E("#mCSB_"+y.idx+"_dragger_vertical"),E("#mCSB_"+y.idx+"_dragger_horizontal")],O=[],I=[],D="yx"===B.axis?"none":"all",R=[],i=M.find("iframe"),l=["touchstart."+e+" pointerdown."+e+" MSPointerDown."+e,"touchmove."+e+" pointermove."+e+" MSPointerMove."+e,"touchend."+e+" pointerup."+e+" MSPointerUp."+e];M.bind(l[0],function(e){t(e)}).bind(l[1],function(e){o(e)}),T.bind(l[0],function(e){a(e)}).bind(l[2],function(e){n(e)}),i.length&&i.each(function(){E(this).load(function(){z(this)&&E(this.contentDocument||this.contentWindow.document).bind(l[0],function(e){t(e),a(e)}).bind(l[1],function(e){o(e)}).bind(l[2],function(e){n(e)})})})},D=function(){function n(e,t,o){s.type=o&&i?"stepped":"stepless",s.scrollAmount=10,F(a,e,t,"mcsLinearOut",o?60:null)}var i,a=E(this),r=a.data(W),l=r.opt,s=r.sequential,e=W+"_"+r.idx,c=E("#mCSB_"+r.idx+"_container"),d=c.parent();c.bind("mousedown."+e,function(){L||i||(i=1,A=!0)}).add(document).bind("mousemove."+e,function(e){if(!L&&i&&(window.getSelection?window.getSelection().toString():document.selection&&"Control"!=document.selection.type&&document.selection.createRange().text)){var t=c.offset(),o=P(e)[0]-t.top+c[0].offsetTop,a=P(e)[1]-t.left+c[0].offsetLeft;0<o&&o<d.height()&&0<a&&a<d.width()?s.step&&n("off",null,"stepped"):("x"!==l.axis&&r.overflowed[0]&&(o<0?n("on",38):o>d.height()&&n("on",40)),"y"!==l.axis&&r.overflowed[1]&&(a<0?n("on",37):a>d.width()&&n("on",39)))}}).bind("mouseup."+e,function(){L||(i&&(i=0,n("off",null)),A=!1)})},R=function(){function o(e,t){if(Z(d),!H(d,e.target)){var o="auto"!==h.mouseWheel.deltaFactor?parseInt(h.mouseWheel.deltaFactor):p&&e.deltaFactor<100?100:e.deltaFactor||100;if("x"===h.axis||"x"===h.mouseWheel.axis)var a="x",n=[Math.round(o*u.scrollRatio.x),parseInt(h.mouseWheel.scrollAmount)],i="auto"!==h.mouseWheel.scrollAmount?n[1]:n[0]>=f.width()?.9*f.width():n[0],r=Math.abs(E("#mCSB_"+u.idx+"_container")[0].offsetLeft),l=m[1][0].offsetLeft,s=m[1].parent().width()-m[1].width(),c=e.deltaX||e.deltaY||t;else var a="y",n=[Math.round(o*u.scrollRatio.y),parseInt(h.mouseWheel.scrollAmount)],i="auto"!==h.mouseWheel.scrollAmount?n[1]:n[0]>=f.height()?.9*f.height():n[0],r=Math.abs(E("#mCSB_"+u.idx+"_container")[0].offsetTop),l=m[0][0].offsetTop,s=m[0].parent().height()-m[0].height(),c=e.deltaY||t;"y"===a&&!u.overflowed[0]||"x"===a&&!u.overflowed[1]||(h.mouseWheel.invert&&(c=-c),h.mouseWheel.normalizeDelta&&(c=c<0?-1:1),(0<c&&0!==l||c<0&&l!==s||h.mouseWheel.preventDefault)&&(e.stopImmediatePropagation(),e.preventDefault()),G(d,(r-c*i).toString(),{dir:a}))}}var d=E(this),u=d.data(W),h=u.opt,e=W+"_"+u.idx,f=E("#mCSB_"+u.idx),m=[E("#mCSB_"+u.idx+"_dragger_vertical"),E("#mCSB_"+u.idx+"_dragger_horizontal")],t=E("#mCSB_"+u.idx+"_container").find("iframe");u&&(t.length&&t.each(function(){E(this).load(function(){z(this)&&E(this.contentDocument||this.contentWindow.document).bind("mousewheel."+e,function(e,t){o(e,t)})})}),f.bind("mousewheel."+e,function(e,t){o(e,t)}))},z=function(e){var t=null;try{var o=e.contentDocument||e.contentWindow.document;t=o.body.innerHTML}catch(e){}return null!==t},H=function(e,t){var o=t.nodeName.toLowerCase(),a=e.data(W).opt.mouseWheel.disableOver;return-1<E.inArray(o,a)&&!(-1<E.inArray(o,["select","textarea"])&&!E(t).is(":focus"))},X=function(){var r=E(this),l=r.data(W),e=W+"_"+l.idx,s=E("#mCSB_"+l.idx+"_container"),c=s.parent(),t=E(".mCSB_"+l.idx+"_scrollbar ."+w[12]);t.bind("touchstart."+e+" pointerdown."+e+" MSPointerDown."+e,function(){A=!0}).bind("touchend."+e+" pointerup."+e+" MSPointerUp."+e,function(){A=!1}).bind("click."+e,function(e){if(E(e.target).hasClass(w[12])||E(e.target).hasClass("mCSB_draggerRail")){Z(r);var t=E(this),o=t.find(".mCSB_dragger");if(0<t.parent(".mCSB_scrollTools_horizontal").length){if(!l.overflowed[1])return;var a="x",n=e.pageX>o.offset().left?-1:1,i=Math.abs(s[0].offsetLeft)-.9*n*c.width()}else{if(!l.overflowed[0])return;var a="y",n=e.pageY>o.offset().top?-1:1,i=Math.abs(s[0].offsetTop)-.9*n*c.height()}G(r,i.toString(),{dir:a,scrollEasing:"mcsEaseInOut"})}})},Y=function(){var i=E(this),e=i.data(W),r=e.opt,t=W+"_"+e.idx,l=E("#mCSB_"+e.idx+"_container"),s=l.parent();l.bind("focusin."+t,function(){var n=E(document.activeElement),e=l.find(".mCustomScrollBox").length;n.is(r.advanced.autoScrollOnFocus)&&(Z(i),clearTimeout(i[0]._focusTimeout),i[0]._focusTimer=e?17*e:0,i[0]._focusTimeout=setTimeout(function(){var e=[ne(n)[0],ne(n)[1]],t=[l[0].offsetTop,l[0].offsetLeft],o=[0<=t[0]+e[0]&&t[0]+e[0]<s.height()-n.outerHeight(!1),0<=t[1]+e[1]&&t[0]+e[1]<s.width()-n.outerWidth(!1)],a="yx"!==r.axis||o[0]||o[1]?"all":"none";"x"===r.axis||o[0]||G(i,e[0].toString(),{dir:"y",scrollEasing:"mcsEaseInOut",overwrite:a,dur:0}),"y"===r.axis||o[1]||G(i,e[1].toString(),{dir:"x",scrollEasing:"mcsEaseInOut",overwrite:a,dur:0})},i[0]._focusTimer))})},U=function(){var e=E(this),t=e.data(W),o=W+"_"+t.idx,a=E("#mCSB_"+t.idx+"_container").parent();a.bind("scroll."+o,function(){(0!==a.scrollTop()||0!==a.scrollLeft())&&E(".mCSB_"+t.idx+"_scrollbar").css("visibility","hidden")})},j=function(){var a=E(this),n=a.data(W),i=n.opt,r=n.sequential,e=W+"_"+n.idx,t=".mCSB_"+n.idx+"_scrollbar",o=E(t+">a");o.bind("mousedown."+e+" touchstart."+e+" pointerdown."+e+" MSPointerDown."+e+" mouseup."+e+" touchend."+e+" pointerup."+e+" MSPointerUp."+e+" mouseout."+e+" pointerout."+e+" MSPointerOut."+e+" click."+e,function(e){function t(e,t){r.scrollAmount=i.snapAmount||i.scrollButtons.scrollAmount,F(a,e,t)}if(e.preventDefault(),te(e)){var o=E(this).attr("class");switch(r.type=i.scrollButtons.scrollType,e.type){case"mousedown":case"touchstart":case"pointerdown":case"MSPointerDown":if("stepped"===r.type)return;A=!0,n.tweenRunning=!1,t("on",o);break;case"mouseup":case"touchend":case"pointerup":case"MSPointerUp":case"mouseout":case"pointerout":case"MSPointerOut":if("stepped"===r.type)return;A=!1,r.dir&&t("off",o);break;case"click":if("stepped"!==r.type||n.tweenRunning)return;t("on",o)}}})},q=function(){function t(e){function t(e,t){d.type=c.keyboard.scrollType,d.scrollAmount=c.snapAmount||c.keyboard.scrollAmount,"stepped"===d.type&&s.tweenRunning||F(l,e,t)}switch(e.type){case"blur":s.tweenRunning&&d.dir&&t("off",null);break;case"keydown":case"keyup":var o=e.keyCode?e.keyCode:e.which,a="on";if("x"!==c.axis&&(38===o||40===o)||"y"!==c.axis&&(37===o||39===o)){if((38===o||40===o)&&!s.overflowed[0]||(37===o||39===o)&&!s.overflowed[1])return;"keyup"===e.type&&(a="off"),E(document.activeElement).is(f)||(e.preventDefault(),e.stopImmediatePropagation(),t(a,o))}else if(33===o||34===o){if((s.overflowed[0]||s.overflowed[1])&&(e.preventDefault(),e.stopImmediatePropagation()),"keyup"===e.type){Z(l);var n=34===o?-1:1;if("x"===c.axis||"yx"===c.axis&&s.overflowed[1]&&!s.overflowed[0])var i="x",r=Math.abs(u[0].offsetLeft)-.9*n*h.width();else var i="y",r=Math.abs(u[0].offsetTop)-.9*n*h.height();G(l,r.toString(),{dir:i,scrollEasing:"mcsEaseInOut"})}}else if((35===o||36===o)&&!E(document.activeElement).is(f)&&((s.overflowed[0]||s.overflowed[1])&&(e.preventDefault(),e.stopImmediatePropagation()),"keyup"===e.type)){if("x"===c.axis||"yx"===c.axis&&s.overflowed[1]&&!s.overflowed[0])var i="x",r=35===o?Math.abs(h.width()-u.outerWidth(!1)):0;else var i="y",r=35===o?Math.abs(h.height()-u.outerHeight(!1)):0;G(l,r.toString(),{dir:i,scrollEasing:"mcsEaseInOut"})}}}var l=E(this),s=l.data(W),c=s.opt,d=s.sequential,e=W+"_"+s.idx,o=E("#mCSB_"+s.idx),u=E("#mCSB_"+s.idx+"_container"),h=u.parent(),f="input,textarea,select,datalist,keygen,[contenteditable='true']",a=u.find("iframe"),n=["blur."+e+" keydown."+e+" keyup."+e];a.length&&a.each(function(){E(this).load(function(){z(this)&&E(this.contentDocument||this.contentWindow.document).bind(n[0],function(e){t(e)})})}),o.attr("tabindex","0").bind(n[0],function(e){t(e)})},F=function(u,e,t,h,f){function m(e){var t="stepped"!==g.type,o=f||(e?t?x/1.5:_:1e3/60),a=e?t?7.5:40:2.5,n=[Math.abs(v[0].offsetTop),Math.abs(v[0].offsetLeft)],i=[10<p.scrollRatio.y?10:p.scrollRatio.y,10<p.scrollRatio.x?10:p.scrollRatio.x],r="x"===g.dir[0]?n[1]+g.dir[1]*i[1]*a:n[0]+g.dir[1]*i[0]*a,l="x"===g.dir[0]?n[1]+g.dir[1]*parseInt(g.scrollAmount):n[0]+g.dir[1]*parseInt(g.scrollAmount),s="auto"!==g.scrollAmount?l:r,c=h||(e?t?"mcsLinearOut":"mcsEaseInOut":"mcsLinear"),d=!!e;return e&&o<17&&(s="x"===g.dir[0]?n[1]:n[0]),G(u,s.toString(),{dir:g.dir[0],scrollEasing:c,dur:o,onComplete:d}),e?void(g.dir=!1):(clearTimeout(g.step),void(g.step=setTimeout(function(){m()},o)))}var p=u.data(W),o=p.opt,g=p.sequential,v=E("#mCSB_"+p.idx+"_container"),a="stepped"===g.type,x=o.scrollInertia<26?26:o.scrollInertia,_=o.scrollInertia<1?17:o.scrollInertia;switch(e){case"on":if(g.dir=[t===w[16]||t===w[15]||39===t||37===t?"x":"y",t===w[13]||t===w[15]||38===t||37===t?-1:1],Z(u),ae(t)&&"stepped"===g.type)return;m(a);break;case"off":clearTimeout(g.step),ee(g,"step"),Z(u),(a||p.tweenRunning&&g.dir)&&m(!0)}},N=function(e){var t=E(this).data(W).opt,o=[];return"function"==typeof e&&(e=e()),e instanceof Array?o=1<e.length?[e[0],e[1]]:"x"===t.axis?[null,e[0]]:[e[0],null]:(o[0]=e.y?e.y:e.x||"x"===t.axis?null:e,o[1]=e.x?e.x:e.y||"y"===t.axis?null:e),"function"==typeof o[0]&&(o[0]=o[0]()),"function"==typeof o[1]&&(o[1]=o[1]()),o},V=function(e,t){if(null!=e&&void 0!==e){var o=E(this),a=o.data(W),n=a.opt,i=E("#mCSB_"+a.idx+"_container"),r=i.parent(),l=typeof e;t||(t="x"===n.axis?"x":"y");var s="x"===t?i.outerWidth(!1):i.outerHeight(!1),c="x"===t?i[0].offsetLeft:i[0].offsetTop,d="x"===t?"left":"top";switch(l){case"function":return e();case"object":var u=e.jquery?e:E(e);if(!u.length)return;return"x"===t?ne(u)[1]:ne(u)[0];case"string":case"number":if(ae(e))return Math.abs(e);if(-1!==e.indexOf("%"))return Math.abs(s*parseInt(e)/100);if(-1!==e.indexOf("-="))return Math.abs(c-parseInt(e.split("-=")[1]));if(-1!==e.indexOf("+=")){var h=c+parseInt(e.split("+=")[1]);return 0<=h?0:Math.abs(h)}if(-1!==e.indexOf("px")&&ae(e.split("px")[0]))return Math.abs(e.split("px")[0]);if("top"===e||"left"===e)return 0;if("bottom"===e)return Math.abs(r.height()-i.outerHeight(!1));if("right"===e)return Math.abs(r.width()-i.outerWidth(!1));if("first"===e||"last"===e){var u=i.find(":"+e);return"x"===t?ne(u)[1]:ne(u)[0]}return E(e).length?"x"===t?ne(E(e))[1]:ne(E(e))[0]:(i.css(d,e),void v.update.call(null,o[0]))}}},Q=function(e){function t(){var e=0;return r.advanced.updateOnImageLoad&&(e=l.find("img").length),e}function o(){!0===r.advanced.updateOnSelectorChange&&(r.advanced.updateOnSelectorChange="*");var e=0,t=l.find(r.advanced.updateOnSelectorChange);return r.advanced.updateOnSelectorChange&&0<t.length&&t.each(function(){e+=E(this).height()+E(this).width()}),e}function n(e){clearTimeout(l[0].autoUpdate),v.update.call(null,a[0],e)}var a=E(this),i=a.data(W),r=i.opt,l=E("#mCSB_"+i.idx+"_container");if(e)return clearTimeout(l[0].autoUpdate),void ee(l[0],"autoUpdate");var s,c,d,u=l.parent(),h=[E("#mCSB_"+i.idx+"_scrollbar_vertical"),E("#mCSB_"+i.idx+"_scrollbar_horizontal")],f=function(){return[h[0].is(":visible")?h[0].outerHeight(!0):0,h[1].is(":visible")?h[1].outerWidth(!0):0]},m=o(),p=[l.outerHeight(!1),l.outerWidth(!1),u.height(),u.width(),f()[0],f()[1]],g=t();!function e(){clearTimeout(l[0].autoUpdate),l[0].autoUpdate=setTimeout(function(){return r.advanced.updateOnSelectorChange&&(s=o())!==m?(n(3),void(m=s)):(r.advanced.updateOnContentResize&&((c=[l.outerHeight(!1),l.outerWidth(!1),u.height(),u.width(),f()[0],f()[1]])[0]!==p[0]||c[1]!==p[1]||c[2]!==p[2]||c[3]!==p[3]||c[4]!==p[4]||c[5]!==p[5])&&(n(c[0]!==p[0]||c[1]!==p[1]),p=c),r.advanced.updateOnImageLoad&&(d=t())!==g&&(l.find("img").each(function(){!function(e){if(E(e).hasClass(w[2]))return n();var t,o,a=new Image;a.onload=(t=a,o=function(){this.onload=null,E(e).addClass(w[2]),n(2)},function(){return o.apply(t,arguments)}),a.src=e.src}(this)}),g=d),void((r.advanced.updateOnSelectorChange||r.advanced.updateOnContentResize||r.advanced.updateOnImageLoad)&&e()))},60)}()},Z=function(e){var t=e.data(W),o=E("#mCSB_"+t.idx+"_container,#mCSB_"+t.idx+"_container_wrapper,#mCSB_"+t.idx+"_dragger_vertical,#mCSB_"+t.idx+"_dragger_horizontal");o.each(function(){$.call(this)})},G=function(n,e,i){function t(e){return s&&c.callbacks[e]&&"function"==typeof c.callbacks[e]}function o(){var e=[f[0].offsetTop,f[0].offsetLeft],t=[v[0].offsetTop,v[0].offsetLeft],o=[f.outerHeight(!1),f.outerWidth(!1)],a=[h.height(),h.width()];n[0].mcs={content:f,top:e[0],left:e[1],draggerTop:t[0],draggerLeft:t[1],topPct:Math.round(100*Math.abs(e[0])/(Math.abs(o[0])-a[0])),leftPct:Math.round(100*Math.abs(e[1])/(Math.abs(o[1])-a[1])),direction:i.dir}}var a,r,l,s=n.data(W),c=s.opt,d={trigger:"internal",dir:"y",scrollEasing:"mcsEaseOut",drag:!1,dur:c.scrollInertia,overwrite:"all",callbacks:!0,onStart:!0,onUpdate:!0,onComplete:!0},i=E.extend(d,i),u=[i.dur,i.drag?0:i.dur],h=E("#mCSB_"+s.idx),f=E("#mCSB_"+s.idx+"_container"),m=f.parent(),p=c.callbacks.onTotalScrollOffset?N.call(n,c.callbacks.onTotalScrollOffset):[0,0],g=c.callbacks.onTotalScrollBackOffset?N.call(n,c.callbacks.onTotalScrollBackOffset):[0,0];if(s.trigger=i.trigger,(0!==m.scrollTop()||0!==m.scrollLeft())&&(E(".mCSB_"+s.idx+"_scrollbar").css("visibility","visible"),m.scrollTop(0).scrollLeft(0)),"_resetY"!==e||s.contentReset.y||(t("onOverflowYNone")&&c.callbacks.onOverflowYNone.call(n[0]),s.contentReset.y=1),"_resetX"!==e||s.contentReset.x||(t("onOverflowXNone")&&c.callbacks.onOverflowXNone.call(n[0]),s.contentReset.x=1),"_resetY"!==e&&"_resetX"!==e){switch(!s.contentReset.y&&n[0].mcs||!s.overflowed[0]||(t("onOverflowY")&&c.callbacks.onOverflowY.call(n[0]),s.contentReset.x=null),!s.contentReset.x&&n[0].mcs||!s.overflowed[1]||(t("onOverflowX")&&c.callbacks.onOverflowX.call(n[0]),s.contentReset.x=null),c.snapAmount&&(a=e,r=c.snapAmount,l=c.snapOffset,e=Math.round(a/r)*r-l),i.dir){case"x":var v=E("#mCSB_"+s.idx+"_dragger_horizontal"),x="left",_=f[0].offsetLeft,w=[h.width()-f.outerWidth(!1),v.parent().width()-v.width()],S=[e,0===e?0:e/s.scrollRatio.x],b=p[1],C=g[1],y=0<b?b/s.scrollRatio.x:0,B=0<C?C/s.scrollRatio.x:0;break;case"y":var v=E("#mCSB_"+s.idx+"_dragger_vertical"),x="top",_=f[0].offsetTop,w=[h.height()-f.outerHeight(!1),v.parent().height()-v.height()],S=[e,0===e?0:e/s.scrollRatio.y],b=p[0],C=g[0],y=0<b?b/s.scrollRatio.y:0,B=0<C?C/s.scrollRatio.y:0}S[1]<0||0===S[0]&&0===S[1]?S=[0,0]:S[1]>=w[1]?S=[w[0],w[1]]:S[0]=-S[0],n[0].mcs||(o(),t("onInit")&&c.callbacks.onInit.call(n[0])),clearTimeout(f[0].onCompleteTimeout),(s.tweenRunning||!(0===_&&0<=S[0]||_===w[0]&&S[0]<=w[0]))&&(J(v[0],x,Math.round(S[1]),u[1],i.scrollEasing),J(f[0],x,Math.round(S[0]),u[0],i.scrollEasing,i.overwrite,{onStart:function(){i.callbacks&&i.onStart&&!s.tweenRunning&&(t("onScrollStart")&&(o(),c.callbacks.onScrollStart.call(n[0])),s.tweenRunning=!0,T(v),s.cbOffsets=[c.callbacks.alwaysTriggerOffsets||_>=w[0]+b,c.callbacks.alwaysTriggerOffsets||_<=-C])},onUpdate:function(){i.callbacks&&i.onUpdate&&t("whileScrolling")&&(o(),c.callbacks.whileScrolling.call(n[0]))},onComplete:function(){if(i.callbacks&&i.onComplete){"yx"===c.axis&&clearTimeout(f[0].onCompleteTimeout);var e=f[0].idleTimer||0;f[0].onCompleteTimeout=setTimeout(function(){t("onScroll")&&(o(),c.callbacks.onScroll.call(n[0])),t("onTotalScroll")&&S[1]>=w[1]-y&&s.cbOffsets[0]&&(o(),c.callbacks.onTotalScroll.call(n[0])),t("onTotalScrollBack")&&S[1]<=B&&s.cbOffsets[1]&&(o(),c.callbacks.onTotalScrollBack.call(n[0])),s.tweenRunning=!1,f[0].idleTimer=0,T(v,"hide")},e)}}}))}},J=function(e,t,o,a,n,i,r){function l(){x.stop||(p||u.call(),p=K()-m,s(),p>=x.time&&(x.time=p>x.time?p+c-(p-x.time):p+c-1,x.time<p+1&&(x.time=p+1)),x.time<a?x.id=d(l):f.call())}function s(){0<a?(x.currVal=function(e,t,o,a,n){switch(n){case"linear":case"mcsLinear":return o*e/a+t;case"mcsLinearOut":return e/=a,e--,o*Math.sqrt(1-e*e)+t;case"easeInOutSmooth":return(e/=a/2)<1?o/2*e*e+t:-o/2*(--e*(e-2)-1)+t;case"easeInOutStrong":return(e/=a/2)<1?o/2*Math.pow(2,10*(e-1))+t:(e--,o/2*(2-Math.pow(2,-10*e))+t);case"easeInOut":case"mcsEaseInOut":return(e/=a/2)<1?o/2*e*e*e+t:o/2*((e-=2)*e*e+2)+t;case"easeOutSmooth":return e/=a,-o*(--e*e*e*e-1)+t;case"easeOutStrong":return o*(1-Math.pow(2,-10*e/a))+t;case"easeOut":case"mcsEaseOut":default:var i=(e/=a)*e,r=i*e;return t+o*(.499999999999997*r*i+-2.5*i*i+5.5*r+-6.5*i+4*e)}}(x.time,g,_,a,n),v[t]=Math.round(x.currVal)+"px"):v[t]=o+"px",h.call()}e._mTween||(e._mTween={top:{},left:{}});var c,d,r=r||{},u=r.onStart||function(){},h=r.onUpdate||function(){},f=r.onComplete||function(){},m=K(),p=0,g=e.offsetTop,v=e.style,x=e._mTween[t];"left"===t&&(g=e.offsetLeft);var _=o-g;x.stop=0,"none"!==i&&null!=x.id&&(window.requestAnimationFrame?window.cancelAnimationFrame(x.id):clearTimeout(x.id),x.id=null),c=1e3/60,x.time=p+c,d=window.requestAnimationFrame?window.requestAnimationFrame:function(e){return s(),setTimeout(e,.01)},x.id=d(l)},K=function(){return window.performance&&window.performance.now?window.performance.now():window.performance&&window.performance.webkitNow?window.performance.webkitNow():Date.now?Date.now():(new Date).getTime()},$=function(){var e=this;e._mTween||(e._mTween={top:{},left:{}});for(var t=["top","left"],o=0;o<t.length;o++){var a=t[o];e._mTween[a].id&&(window.requestAnimationFrame?window.cancelAnimationFrame(e._mTween[a].id):clearTimeout(e._mTween[a].id),e._mTween[a].id=null,e._mTween[a].stop=1)}},ee=function(t,o){try{delete t[o]}catch(e){t[o]=null}},te=function(e){return!(e.which&&1!==e.which)},oe=function(e){var t=e.originalEvent.pointerType;return!(t&&"touch"!==t&&2!==t)},ae=function(e){return!isNaN(parseFloat(e))&&isFinite(e)},ne=function(e){var t=e.parents(".mCSB_container");return[e.offset().top-t.offset().top,e.offset().left-t.offset().left]},E.fn[f]=function(e){return v[e]?v[e].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof e&&e?void E.error("Method "+e+" does not exist"):v.init.apply(this,arguments)},E[f]=function(e){return v[e]?v[e].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof e&&e?void E.error("Method "+e+" does not exist"):v.init.apply(this,arguments)},E[f].defaults=n,window[f]=!0,E(window).load(function(){E(a)[f](),E.extend(E.expr[":"],{mcsInView:E.expr[":"].mcsInView||function(e){var t,o,a=E(e),n=a.parents(".mCSB_container");if(n.length)return t=n.parent(),0<=(o=[n[0].offsetTop,n[0].offsetLeft])[0]+ne(a)[0]&&o[0]+ne(a)[0]<t.height()-a.outerHeight(!1)&&0<=o[1]+ne(a)[1]&&o[1]+ne(a)[1]<t.width()-a.outerWidth(!1)},mcsOverflow:E.expr[":"].mcsOverflow||function(e){var t=E(e).data(W);if(t)return t.overflowed[0]||t.overflowed[1]}})})});
|
1 |
+
!function(e){"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof exports?module.exports=e:e(jQuery)}(function(f){var h,m,e=["wheel","mousewheel","DOMMouseScroll","MozMousePixelScroll"],t="onwheel"in document||9<=document.documentMode?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"],p=Array.prototype.slice;if(f.event.fixHooks)for(var o=e.length;o;)f.event.fixHooks[e[--o]]=f.event.mouseHooks;var g=f.event.special.mousewheel={version:"3.1.12",setup:function(){if(this.addEventListener)for(var e=t.length;e;)this.addEventListener(t[--e],a,!1);else this.onmousewheel=a;f.data(this,"mousewheel-line-height",g.getLineHeight(this)),f.data(this,"mousewheel-page-height",g.getPageHeight(this))},teardown:function(){if(this.removeEventListener)for(var e=t.length;e;)this.removeEventListener(t[--e],a,!1);else this.onmousewheel=null;f.removeData(this,"mousewheel-line-height"),f.removeData(this,"mousewheel-page-height")},getLineHeight:function(e){var t=f(e),o=t["offsetParent"in f.fn?"offsetParent":"parent"]();return o.length||(o=f("body")),parseInt(o.css("fontSize"),10)||parseInt(t.css("fontSize"),10)||16},getPageHeight:function(e){return f(e).height()},settings:{adjustOldDeltas:!0,normalizeOffset:!0}};function a(e){var t,o=e||window.event,a=p.call(arguments,1),n=0,i=0,r=0,l=0,s=0;if((e=f.event.fix(o)).type="mousewheel","detail"in o&&(r=-1*o.detail),"wheelDelta"in o&&(r=o.wheelDelta),"wheelDeltaY"in o&&(r=o.wheelDeltaY),"wheelDeltaX"in o&&(i=-1*o.wheelDeltaX),"axis"in o&&o.axis===o.HORIZONTAL_AXIS&&(i=-1*r,r=0),n=0===r?i:r,"deltaY"in o&&(n=r=-1*o.deltaY),"deltaX"in o&&(i=o.deltaX,0===r&&(n=-1*i)),0!==r||0!==i){if(1===o.deltaMode){var c=f.data(this,"mousewheel-line-height");n*=c,r*=c,i*=c}else if(2===o.deltaMode){var d=f.data(this,"mousewheel-page-height");n*=d,r*=d,i*=d}if(t=Math.max(Math.abs(r),Math.abs(i)),(!m||t<m)&&x(o,m=t)&&(m/=40),x(o,t)&&(n/=40,i/=40,r/=40),n=Math[1<=n?"floor":"ceil"](n/m),i=Math[1<=i?"floor":"ceil"](i/m),r=Math[1<=r?"floor":"ceil"](r/m),g.settings.normalizeOffset&&this.getBoundingClientRect){var u=this.getBoundingClientRect();l=e.clientX-u.left,s=e.clientY-u.top}return e.deltaX=i,e.deltaY=r,e.deltaFactor=m,e.offsetX=l,e.offsetY=s,e.deltaMode=0,a.unshift(e,n,i,r),h&&clearTimeout(h),h=setTimeout(v,200),(f.event.dispatch||f.event.handle).apply(this,a)}}function v(){m=null}function x(e,t){return g.settings.adjustOldDeltas&&"mousewheel"===e.type&&t%120==0}f.fn.extend({mousewheel:function(e){return e?this.bind("mousewheel",e):this.trigger("mousewheel")},unmousewheel:function(e){return this.unbind("mousewheel",e)}})}),function(e){"function"==typeof define&&define.amd?define(["jquery"],e):"undefined"!=typeof module&&module.exports?module.exports=e:e(jQuery,window,document)}(function(A){var z,h,H,a,n,l,i,g,P,S,m,c,s,d,u,f,p,v,x,w,_,b,M,C,y,B,T,k,U,r,O,D,I,E,X,R,W,L,Y,j,F,q,N,V,Q,Z,G,J,K,$,ee,te,oe,ae,ne,ie,re,e,t,o;e="function"==typeof define&&define.amd,t="undefined"!=typeof module&&module.exports,o="https:"==document.location.protocol?"https:":"http:",e||(t?require("jquery-mousewheel")(A):A.event.special.mousewheel||A("head").append(decodeURI("%3Cscript src="+o+"//cdnjs.cloudflare.com/ajax/libs/jquery-mousewheel/3.1.13/jquery.mousewheel.min.js%3E%3C/script%3E"))),h="mCustomScrollbar",H="mCS",a=".mCustomScrollbar",n={setTop:0,setLeft:0,axis:"y",scrollbarPosition:"inside",scrollInertia:950,autoDraggerLength:!0,alwaysShowScrollbar:0,snapOffset:0,mouseWheel:{enable:!0,scrollAmount:"auto",axis:"y",deltaFactor:"auto",disableOver:["select","option","keygen","datalist","textarea"]},scrollButtons:{scrollType:"stepless",scrollAmount:"auto"},keyboard:{enable:!0,scrollType:"stepless",scrollAmount:"auto"},contentTouchScroll:25,documentTouchScroll:!0,advanced:{autoScrollOnFocus:"input,textarea,select,button,datalist,keygen,a[tabindex],area,object,[contenteditable='true']",updateOnContentResize:!0,updateOnImageLoad:"auto",autoUpdateTimeout:60},theme:"light",callbacks:{onTotalScrollOffset:0,onTotalScrollBackOffset:0,alwaysTriggerOffsets:!0}},l=0,i={},g=window.attachEvent&&!window.addEventListener?1:0,P=!1,S=["mCSB_dragger_onDrag","mCSB_scrollTools_onDrag","mCS_img_loaded","mCS_disabled","mCS_destroyed","mCS_no_scrollbar","mCS-autoHide","mCS-dir-rtl","mCS_no_scrollbar_y","mCS_no_scrollbar_x","mCS_y_hidden","mCS_x_hidden","mCSB_draggerContainer","mCSB_buttonUp","mCSB_buttonDown","mCSB_buttonLeft","mCSB_buttonRight"],m={init:function(r){var r=A.extend(!0,{},n,r),e=c.call(this);if(r.live){var t=r.liveSelector||this.selector||a,o=A(t);if("off"===r.live)return void d(t);i[t]=setTimeout(function(){o.mCustomScrollbar(r),"once"===r.live&&o.length&&d(t)},500)}else d(t);return r.setWidth=r.set_width?r.set_width:r.setWidth,r.setHeight=r.set_height?r.set_height:r.setHeight,r.axis=r.horizontalScroll?"x":u(r.axis),r.scrollInertia=0<r.scrollInertia&&r.scrollInertia<17?17:r.scrollInertia,"object"!=typeof r.mouseWheel&&1==r.mouseWheel&&(r.mouseWheel={enable:!0,scrollAmount:"auto",axis:"y",preventDefault:!1,deltaFactor:"auto",normalizeDelta:!1,invert:!1}),r.mouseWheel.scrollAmount=r.mouseWheelPixels?r.mouseWheelPixels:r.mouseWheel.scrollAmount,r.mouseWheel.normalizeDelta=r.advanced.normalizeMouseWheelDelta?r.advanced.normalizeMouseWheelDelta:r.mouseWheel.normalizeDelta,r.scrollButtons.scrollType=f(r.scrollButtons.scrollType),s(r),A(e).each(function(){var e=A(this);if(!e.data(H)){e.data(H,{idx:++l,opt:r,scrollRatio:{y:null,x:null},overflowed:null,contentReset:{y:null,x:null},bindEvents:!1,tweenRunning:!1,sequential:{},langDir:e.css("direction"),cbOffsets:null,trigger:null,poll:{size:{o:0,n:0},img:{o:0,n:0},change:{o:0,n:0}}});var t=e.data(H),o=t.opt,a=e.data("mcs-axis"),n=e.data("mcs-scrollbar-position"),i=e.data("mcs-theme");a&&(o.axis=a),n&&(o.scrollbarPosition=n),i&&(o.theme=i,s(o)),p.call(this),t&&o.callbacks.onCreate&&"function"==typeof o.callbacks.onCreate&&o.callbacks.onCreate.call(this),A("#mCSB_"+t.idx+"_container img:not(."+S[2]+")").addClass(S[2]),m.update.call(null,e)}})},update:function(e,l){var t=e||c.call(this);return A(t).each(function(){var e=A(this);if(e.data(H)){var t=e.data(H),o=t.opt,a=A("#mCSB_"+t.idx+"_container"),n=A("#mCSB_"+t.idx),i=[A("#mCSB_"+t.idx+"_dragger_vertical"),A("#mCSB_"+t.idx+"_dragger_horizontal")];if(!a.length)return;t.tweenRunning&&G(e),l&&t&&o.callbacks.onBeforeUpdate&&"function"==typeof o.callbacks.onBeforeUpdate&&o.callbacks.onBeforeUpdate.call(this),e.hasClass(S[3])&&e.removeClass(S[3]),e.hasClass(S[4])&&e.removeClass(S[4]),n.css("max-height","none"),n.height()!==e.height()&&n.css("max-height",e.height()),x.call(this),"y"===o.axis||o.advanced.autoExpandHorizontalScroll||a.css("width",v(a)),t.overflowed=C.call(this),k.call(this),o.autoDraggerLength&&_.call(this),b.call(this),B.call(this);var r=[Math.abs(a[0].offsetTop),Math.abs(a[0].offsetLeft)];"x"!==o.axis&&(t.overflowed[0]?i[0].height()>i[0].parent().height()?y.call(this):(J(e,r[0].toString(),{dir:"y",dur:0,overwrite:"none"}),t.contentReset.y=null):(y.call(this),"y"===o.axis?T.call(this):"yx"===o.axis&&t.overflowed[1]&&J(e,r[1].toString(),{dir:"x",dur:0,overwrite:"none"}))),"y"!==o.axis&&(t.overflowed[1]?i[1].width()>i[1].parent().width()?y.call(this):(J(e,r[1].toString(),{dir:"x",dur:0,overwrite:"none"}),t.contentReset.x=null):(y.call(this),"x"===o.axis?T.call(this):"yx"===o.axis&&t.overflowed[0]&&J(e,r[0].toString(),{dir:"y",dur:0,overwrite:"none"}))),l&&t&&(2===l&&o.callbacks.onImageLoad&&"function"==typeof o.callbacks.onImageLoad?o.callbacks.onImageLoad.call(this):3===l&&o.callbacks.onSelectorChange&&"function"==typeof o.callbacks.onSelectorChange?o.callbacks.onSelectorChange.call(this):o.callbacks.onUpdate&&"function"==typeof o.callbacks.onUpdate&&o.callbacks.onUpdate.call(this)),Z.call(this)}})},scrollTo:function(l,s){if(void 0!==l&&null!=l){var e=c.call(this);return A(e).each(function(){var e=A(this);if(e.data(H)){var t=e.data(H),o=t.opt,a={trigger:"external",scrollInertia:o.scrollInertia,scrollEasing:"mcsEaseInOut",moveDragger:!1,timeout:60,callbacks:!0,onStart:!0,onUpdate:!0,onComplete:!0},n=A.extend(!0,{},a,s),i=V.call(this,l),r=0<n.scrollInertia&&n.scrollInertia<17?17:n.scrollInertia;i[0]=Q.call(this,i[0],"y"),i[1]=Q.call(this,i[1],"x"),n.moveDragger&&(i[0]*=t.scrollRatio.y,i[1]*=t.scrollRatio.x),n.dur=re()?0:r,setTimeout(function(){null!==i[0]&&void 0!==i[0]&&"x"!==o.axis&&t.overflowed[0]&&(n.dir="y",n.overwrite="all",J(e,i[0].toString(),n)),null!==i[1]&&void 0!==i[1]&&"y"!==o.axis&&t.overflowed[1]&&(n.dir="x",n.overwrite="none",J(e,i[1].toString(),n))},n.timeout)}})}},stop:function(){var e=c.call(this);return A(e).each(function(){var e=A(this);e.data(H)&&G(e)})},disable:function(t){var e=c.call(this);return A(e).each(function(){var e=A(this);e.data(H)&&(e.data(H),Z.call(this,"remove"),T.call(this),t&&y.call(this),k.call(this,!0),e.addClass(S[3]))})},destroy:function(){var r=c.call(this);return A(r).each(function(){var e=A(this);if(e.data(H)){var t=e.data(H),o=t.opt,a=A("#mCSB_"+t.idx),n=A("#mCSB_"+t.idx+"_container"),i=A(".mCSB_"+t.idx+"_scrollbar");o.live&&d(o.liveSelector||A(r).selector),Z.call(this,"remove"),T.call(this),y.call(this),e.removeData(H),te(this,"mcs"),i.remove(),n.find("img."+S[2]).removeClass(S[2]),a.replaceWith(n.contents()),e.removeClass(h+" _"+H+"_"+t.idx+" "+S[6]+" "+S[7]+" "+S[5]+" "+S[3]).addClass(S[4])}})}},c=function(){return"object"!=typeof A(this)||A(this).length<1?a:this},s=function(e){e.autoDraggerLength=!(-1<A.inArray(e.theme,["rounded","rounded-dark","rounded-dots","rounded-dots-dark"]))&&e.autoDraggerLength,e.autoExpandScrollbar=!(-1<A.inArray(e.theme,["rounded-dots","rounded-dots-dark","3d","3d-dark","3d-thick","3d-thick-dark","inset","inset-dark","inset-2","inset-2-dark","inset-3","inset-3-dark"]))&&e.autoExpandScrollbar,e.scrollButtons.enable=!(-1<A.inArray(e.theme,["minimal","minimal-dark"]))&&e.scrollButtons.enable,e.autoHideScrollbar=-1<A.inArray(e.theme,["minimal","minimal-dark"])||e.autoHideScrollbar,e.scrollbarPosition=-1<A.inArray(e.theme,["minimal","minimal-dark"])?"outside":e.scrollbarPosition},d=function(e){i[e]&&(clearTimeout(i[e]),te(i,e))},u=function(e){return"yx"===e||"xy"===e||"auto"===e?"yx":"x"===e||"horizontal"===e?"x":"y"},f=function(e){return"stepped"===e||"pixels"===e||"step"===e||"click"===e?"stepped":"stepless"},p=function(){var e=A(this),t=e.data(H),o=t.opt,a=o.autoExpandScrollbar?" "+S[1]+"_expand":"",n=["<div id='mCSB_"+t.idx+"_scrollbar_vertical' class='mCSB_scrollTools mCSB_"+t.idx+"_scrollbar mCS-"+o.theme+" mCSB_scrollTools_vertical"+a+"'><div class='"+S[12]+"'><div id='mCSB_"+t.idx+"_dragger_vertical' class='mCSB_dragger' style='position:absolute;'><div class='mCSB_dragger_bar' /></div><div class='mCSB_draggerRail' /></div></div>","<div id='mCSB_"+t.idx+"_scrollbar_horizontal' class='mCSB_scrollTools mCSB_"+t.idx+"_scrollbar mCS-"+o.theme+" mCSB_scrollTools_horizontal"+a+"'><div class='"+S[12]+"'><div id='mCSB_"+t.idx+"_dragger_horizontal' class='mCSB_dragger' style='position:absolute;'><div class='mCSB_dragger_bar' /></div><div class='mCSB_draggerRail' /></div></div>"],i="yx"===o.axis?"mCSB_vertical_horizontal":"x"===o.axis?"mCSB_horizontal":"mCSB_vertical",r="yx"===o.axis?n[0]+n[1]:"x"===o.axis?n[1]:n[0],l="yx"===o.axis?"<div id='mCSB_"+t.idx+"_container_wrapper' class='mCSB_container_wrapper' />":"",s=o.autoHideScrollbar?" "+S[6]:"",c="x"!==o.axis&&"rtl"===t.langDir?" "+S[7]:"";o.setWidth&&e.css("width",o.setWidth),o.setHeight&&e.css("height",o.setHeight),o.setLeft="y"!==o.axis&&"rtl"===t.langDir?"989999px":o.setLeft,e.addClass(h+" _"+H+"_"+t.idx+s+c).wrapInner("<div id='mCSB_"+t.idx+"' class='mCustomScrollBox mCS-"+o.theme+" "+i+"'><div id='mCSB_"+t.idx+"_container' class='mCSB_container' style='position:relative; top:"+o.setTop+"; left:"+o.setLeft+";' dir='"+t.langDir+"' /></div>");var d=A("#mCSB_"+t.idx),u=A("#mCSB_"+t.idx+"_container");"y"===o.axis||o.advanced.autoExpandHorizontalScroll||u.css("width",v(u)),"outside"===o.scrollbarPosition?("static"===e.css("position")&&e.css("position","relative"),e.css("overflow","visible"),d.addClass("mCSB_outside").after(r)):(d.addClass("mCSB_inside").append(r),u.wrap(l)),w.call(this);var f=[A("#mCSB_"+t.idx+"_dragger_vertical"),A("#mCSB_"+t.idx+"_dragger_horizontal")];f[0].css("min-height",f[0].height()),f[1].css("min-width",f[1].width())},v=function(e){var t=[e[0].scrollWidth,Math.max.apply(Math,e.children().map(function(){return A(this).outerWidth(!0)}).get())],o=e.parent().width();return o<t[0]?t[0]:o<t[1]?t[1]:"100%"},x=function(){var e=A(this),t=e.data(H),o=t.opt,a=A("#mCSB_"+t.idx+"_container");if(o.advanced.autoExpandHorizontalScroll&&"y"!==o.axis){a.css({width:"auto","min-width":0,"overflow-x":"scroll"});var n=Math.ceil(a[0].scrollWidth);3===o.advanced.autoExpandHorizontalScroll||2!==o.advanced.autoExpandHorizontalScroll&&n>a.parent().width()?a.css({width:n,"min-width":"100%","overflow-x":"inherit"}):a.css({"overflow-x":"inherit",position:"absolute"}).wrap("<div class='mCSB_h_wrapper' style='position:relative; left:0; width:999999px;' />").css({width:Math.ceil(a[0].getBoundingClientRect().right+.4)-Math.floor(a[0].getBoundingClientRect().left),"min-width":"100%",position:"relative"}).unwrap()}},w=function(){var e=A(this),t=e.data(H),o=t.opt,a=A(".mCSB_"+t.idx+"_scrollbar:first"),n=ne(o.scrollButtons.tabindex)?"tabindex='"+o.scrollButtons.tabindex+"'":"",i=["<a href='#' class='"+S[13]+"' "+n+" />","<a href='#' class='"+S[14]+"' "+n+" />","<a href='#' class='"+S[15]+"' "+n+" />","<a href='#' class='"+S[16]+"' "+n+" />"],r=["x"===o.axis?i[2]:i[0],"x"===o.axis?i[3]:i[1],i[2],i[3]];o.scrollButtons.enable&&a.prepend(r[0]).append(r[1]).next(".mCSB_scrollTools").prepend(r[2]).append(r[3])},_=function(){var e=A(this),t=e.data(H),o=A("#mCSB_"+t.idx),a=A("#mCSB_"+t.idx+"_container"),n=[A("#mCSB_"+t.idx+"_dragger_vertical"),A("#mCSB_"+t.idx+"_dragger_horizontal")],i=[o.height()/a.outerHeight(!1),o.width()/a.outerWidth(!1)],r=[parseInt(n[0].css("min-height")),Math.round(i[0]*n[0].parent().height()),parseInt(n[1].css("min-width")),Math.round(i[1]*n[1].parent().width())],l=g&&r[1]<r[0]?r[0]:r[1],s=g&&r[3]<r[2]?r[2]:r[3];n[0].css({height:l,"max-height":n[0].parent().height()-10}).find(".mCSB_dragger_bar").css({"line-height":r[0]+"px"}),n[1].css({width:s,"max-width":n[1].parent().width()-10})},b=function(){var e=A(this),t=e.data(H),o=A("#mCSB_"+t.idx),a=A("#mCSB_"+t.idx+"_container"),n=[A("#mCSB_"+t.idx+"_dragger_vertical"),A("#mCSB_"+t.idx+"_dragger_horizontal")],i=[a.outerHeight(!1)-o.height(),a.outerWidth(!1)-o.width()],r=[i[0]/(n[0].parent().height()-n[0].height()),i[1]/(n[1].parent().width()-n[1].width())];t.scrollRatio={y:r[0],x:r[1]}},M=function(e,t,o){var a=o?S[0]+"_expanded":"",n=e.closest(".mCSB_scrollTools");"active"===t?(e.toggleClass(S[0]+" "+a),n.toggleClass(S[1]),e[0]._draggable=e[0]._draggable?0:1):e[0]._draggable||("hide"===t?(e.removeClass(S[0]),n.removeClass(S[1])):(e.addClass(S[0]),n.addClass(S[1])))},C=function(){var e=A(this),t=e.data(H),o=A("#mCSB_"+t.idx),a=A("#mCSB_"+t.idx+"_container"),n=null==t.overflowed?a.height():a.outerHeight(!1),i=null==t.overflowed?a.width():a.outerWidth(!1),r=a[0].scrollHeight,l=a[0].scrollWidth;return n<r&&(n=r),i<l&&(i=l),[n>o.height(),i>o.width()]},y=function(){var e=A(this),t=e.data(H),o=t.opt,a=A("#mCSB_"+t.idx),n=A("#mCSB_"+t.idx+"_container"),i=[A("#mCSB_"+t.idx+"_dragger_vertical"),A("#mCSB_"+t.idx+"_dragger_horizontal")];if(G(e),("x"!==o.axis&&!t.overflowed[0]||"y"===o.axis&&t.overflowed[0])&&(i[0].add(n).css("top",0),J(e,"_resetY")),"y"!==o.axis&&!t.overflowed[1]||"x"===o.axis&&t.overflowed[1]){var r=dx=0;"rtl"===t.langDir&&(r=a.width()-n.outerWidth(!1),dx=Math.abs(r/t.scrollRatio.x)),n.css("left",r),i[1].css("left",dx),J(e,"_resetX")}},B=function(){var t=A(this),e=t.data(H),o=e.opt;if(!e.bindEvents){var a;if(r.call(this),o.contentTouchScroll&&O.call(this),D.call(this),o.mouseWheel.enable)!function e(){a=setTimeout(function(){A.event.special.mousewheel?(clearTimeout(a),I.call(t[0])):e()},100)}();L.call(this),j.call(this),o.advanced.autoScrollOnFocus&&Y.call(this),o.scrollButtons.enable&&F.call(this),o.keyboard.enable&&q.call(this),e.bindEvents=!0}},T=function(){var e=A(this),t=e.data(H),o=t.opt,a=H+"_"+t.idx,n=".mCSB_"+t.idx+"_scrollbar",i=A("#mCSB_"+t.idx+",#mCSB_"+t.idx+"_container,#mCSB_"+t.idx+"_container_wrapper,"+n+" ."+S[12]+",#mCSB_"+t.idx+"_dragger_vertical,#mCSB_"+t.idx+"_dragger_horizontal,"+n+">a"),r=A("#mCSB_"+t.idx+"_container");o.advanced.releaseDraggableSelectors&&i.add(A(o.advanced.releaseDraggableSelectors)),o.advanced.extraDraggableSelectors&&i.add(A(o.advanced.extraDraggableSelectors)),t.bindEvents&&(A(document).add(A(!X()||top.document)).unbind("."+a),i.each(function(){A(this).unbind("."+a)}),clearTimeout(e[0]._focusTimeout),te(e[0],"_focusTimeout"),clearTimeout(t.sequential.step),te(t.sequential,"step"),clearTimeout(r[0].onCompleteTimeout),te(r[0],"onCompleteTimeout"),t.bindEvents=!1)},k=function(e){var t=A(this),o=t.data(H),a=o.opt,n=A("#mCSB_"+o.idx+"_container_wrapper"),i=n.length?n:A("#mCSB_"+o.idx+"_container"),r=[A("#mCSB_"+o.idx+"_scrollbar_vertical"),A("#mCSB_"+o.idx+"_scrollbar_horizontal")],l=[r[0].find(".mCSB_dragger"),r[1].find(".mCSB_dragger")];"x"!==a.axis&&(o.overflowed[0]&&!e?(r[0].add(l[0]).add(r[0].children("a")).css("display","block"),i.removeClass(S[8]+" "+S[10])):(a.alwaysShowScrollbar?(2!==a.alwaysShowScrollbar&&l[0].css("display","none"),i.removeClass(S[10])):(r[0].css("display","none"),i.addClass(S[10])),i.addClass(S[8]))),"y"!==a.axis&&(o.overflowed[1]&&!e?(r[1].add(l[1]).add(r[1].children("a")).css("display","block"),i.removeClass(S[9]+" "+S[11])):(a.alwaysShowScrollbar?(2!==a.alwaysShowScrollbar&&l[1].css("display","none"),i.removeClass(S[11])):(r[1].css("display","none"),i.addClass(S[11])),i.addClass(S[9]))),o.overflowed[0]||o.overflowed[1]?t.removeClass(S[5]):t.addClass(S[5])},U=function(e){var t=e.type,o=e.target.ownerDocument!==document&&null!==frameElement?[A(frameElement).offset().top,A(frameElement).offset().left]:null,a=X()&&e.target.ownerDocument!==top.document&&null!==frameElement?[A(e.view.frameElement).offset().top,A(e.view.frameElement).offset().left]:[0,0];switch(t){case"pointerdown":case"MSPointerDown":case"pointermove":case"MSPointerMove":case"pointerup":case"MSPointerUp":return o?[e.originalEvent.pageY-o[0]+a[0],e.originalEvent.pageX-o[1]+a[1],!1]:[e.originalEvent.pageY,e.originalEvent.pageX,!1];case"touchstart":case"touchmove":case"touchend":var n=e.originalEvent.touches[0]||e.originalEvent.changedTouches[0],i=e.originalEvent.touches.length||e.originalEvent.changedTouches.length;return e.target.ownerDocument!==document?[n.screenY,n.screenX,1<i]:[n.pageY,n.pageX,1<i];default:return o?[e.pageY-o[0]+a[0],e.pageX-o[1]+a[1],!1]:[e.pageY,e.pageX,!1]}},r=function(){var r,l,s,c=A(this),d=c.data(H),u=d.opt,e=H+"_"+d.idx,f=["mCSB_"+d.idx+"_dragger_vertical","mCSB_"+d.idx+"_dragger_horizontal"],h=A("#mCSB_"+d.idx+"_container"),t=A("#"+f[0]+",#"+f[1]),o=u.advanced.releaseDraggableSelectors?t.add(A(u.advanced.releaseDraggableSelectors)):t,a=u.advanced.extraDraggableSelectors?A(!X()||top.document).add(A(u.advanced.extraDraggableSelectors)):A(!X()||top.document);function n(e,t,o,a){if(h[0].idleTimer=u.scrollInertia<233?250:0,r.attr("id")===f[1])var n="x",i=(r[0].offsetLeft-t+a)*d.scrollRatio.x;else var n="y",i=(r[0].offsetTop-e+o)*d.scrollRatio.y;J(c,i.toString(),{dir:n,drag:!0})}t.bind("contextmenu."+e,function(e){e.preventDefault()}).bind("mousedown."+e+" touchstart."+e+" pointerdown."+e+" MSPointerDown."+e,function(e){if(e.stopImmediatePropagation(),e.preventDefault(),oe(e)){P=!0,g&&(document.onselectstart=function(){return!1}),R.call(h,!1),G(c);var t=(r=A(this)).offset(),o=U(e)[0]-t.top,a=U(e)[1]-t.left,n=r.height()+t.top,i=r.width()+t.left;o<n&&0<o&&a<i&&0<a&&(l=o,s=a),M(r,"active",u.autoExpandScrollbar)}}).bind("touchmove."+e,function(e){e.stopImmediatePropagation(),e.preventDefault();var t=r.offset(),o=U(e)[0]-t.top,a=U(e)[1]-t.left;n(l,s,o,a)}),A(document).add(a).bind("mousemove."+e+" pointermove."+e+" MSPointerMove."+e,function(e){if(r){var t=r.offset(),o=U(e)[0]-t.top,a=U(e)[1]-t.left;if(l===o&&s===a)return;n(l,s,o,a)}}).add(o).bind("mouseup."+e+" touchend."+e+" pointerup."+e+" MSPointerUp."+e,function(e){r&&(M(r,"active",u.autoExpandScrollbar),r=null),P=!1,g&&(document.onselectstart=null),R.call(h,!0)})},O=function(){var d,c,u,f,h,m,p,g,v,x,w,_,S,b,C=A(this),y=C.data(H),B=y.opt,e=H+"_"+y.idx,T=A("#mCSB_"+y.idx),M=A("#mCSB_"+y.idx+"_container"),k=[A("#mCSB_"+y.idx+"_dragger_vertical"),A("#mCSB_"+y.idx+"_dragger_horizontal")],O=[],D=[],I="yx"===B.axis?"none":"all",E=[],t=M.find("iframe"),o=["touchstart."+e+" pointerdown."+e+" MSPointerDown."+e,"touchmove."+e+" pointermove."+e+" MSPointerMove."+e,"touchend."+e+" pointerup."+e+" MSPointerUp."+e],R=void 0!==document.body.style.touchAction&&""!==document.body.style.touchAction;function a(e){if(!ae(e)||P||U(e)[2])z=0;else{b=S=0,d=z=1,C.removeClass("mCS_touch_action");var t=M.offset();c=U(e)[0]-t.top,u=U(e)[1]-t.left,E=[U(e)[0],U(e)[1]]}}function n(e){if(ae(e)&&!P&&!U(e)[2]&&(B.documentTouchScroll||e.preventDefault(),e.stopImmediatePropagation(),(!b||S)&&d)){p=$();var t=T.offset(),o=U(e)[0]-t.top,a=U(e)[1]-t.left,n="mcsLinearOut";if(O.push(o),D.push(a),E[2]=Math.abs(U(e)[0]-E[0]),E[3]=Math.abs(U(e)[1]-E[1]),y.overflowed[0])var i=k[0].parent().height()-k[0].height(),r=0<c-o&&o-c>-i*y.scrollRatio.y&&(2*E[3]<E[2]||"yx"===B.axis);if(y.overflowed[1])var l=k[1].parent().width()-k[1].width(),s=0<u-a&&a-u>-l*y.scrollRatio.x&&(2*E[2]<E[3]||"yx"===B.axis);r||s?(R||e.preventDefault(),S=1):(b=1,C.addClass("mCS_touch_action")),R&&e.preventDefault(),w="yx"===B.axis?[c-o,u-a]:"x"===B.axis?[null,u-a]:[c-o,null],M[0].idleTimer=250,y.overflowed[0]&&L(w[0],0,n,"y","all",!0),y.overflowed[1]&&L(w[1],0,n,"x",I,!0)}}function i(e){if(!ae(e)||P||U(e)[2])z=0;else{z=1,e.stopImmediatePropagation(),G(C),m=$();var t=T.offset();f=U(e)[0]-t.top,h=U(e)[1]-t.left,O=[],D=[]}}function r(e){if(ae(e)&&!P&&!U(e)[2]){d=0,e.stopImmediatePropagation(),b=S=0,g=$();var t=T.offset(),o=U(e)[0]-t.top,a=U(e)[1]-t.left;if(!(30<g-p)){var n="mcsEaseOut",i=(x=1e3/(g-m))<2.5,r=i?[O[O.length-2],D[D.length-2]]:[0,0];v=i?[o-r[0],a-r[1]]:[o-f,a-h];var l=[Math.abs(v[0]),Math.abs(v[1])];x=i?[Math.abs(v[0]/4),Math.abs(v[1]/4)]:[x,x];var s=[Math.abs(M[0].offsetTop)-v[0]*W(l[0]/x[0],x[0]),Math.abs(M[0].offsetLeft)-v[1]*W(l[1]/x[1],x[1])];w="yx"===B.axis?[s[0],s[1]]:"x"===B.axis?[null,s[1]]:[s[0],null],_=[4*l[0]+B.scrollInertia,4*l[1]+B.scrollInertia];var c=parseInt(B.contentTouchScroll)||0;w[0]=c<l[0]?w[0]:0,w[1]=c<l[1]?w[1]:0,y.overflowed[0]&&L(w[0],_[0],n,"y",I,!1),y.overflowed[1]&&L(w[1],_[1],n,"x",I,!1)}}}function W(e,t){var o=[1.5*t,2*t,t/1.5,t/2];return 90<e?4<t?o[0]:o[3]:60<e?3<t?o[3]:o[2]:30<e?8<t?o[1]:6<t?o[0]:4<t?t:o[2]:8<t?t:o[3]}function L(e,t,o,a,n,i){e&&J(C,e.toString(),{dur:t,scrollEasing:o,dir:a,overwrite:n,drag:i})}M.bind(o[0],function(e){a(e)}).bind(o[1],function(e){n(e)}),T.bind(o[0],function(e){i(e)}).bind(o[2],function(e){r(e)}),t.length&&t.each(function(){A(this).bind("load",function(){X(this)&&A(this.contentDocument||this.contentWindow.document).bind(o[0],function(e){a(e),i(e)}).bind(o[1],function(e){n(e)}).bind(o[2],function(e){r(e)})})})},D=function(){var n,a=A(this),i=a.data(H),r=i.opt,l=i.sequential,e=H+"_"+i.idx,s=A("#mCSB_"+i.idx+"_container"),c=s.parent();function d(e,t,o){l.type=o&&n?"stepped":"stepless",l.scrollAmount=10,N(a,e,t,"mcsLinearOut",o?60:null)}s.bind("mousedown."+e,function(e){z||n||(n=1,P=!0)}).add(document).bind("mousemove."+e,function(e){if(!z&&n&&(window.getSelection?window.getSelection().toString():document.selection&&"Control"!=document.selection.type&&document.selection.createRange().text)){var t=s.offset(),o=U(e)[0]-t.top+s[0].offsetTop,a=U(e)[1]-t.left+s[0].offsetLeft;0<o&&o<c.height()&&0<a&&a<c.width()?l.step&&d("off",null,"stepped"):("x"!==r.axis&&i.overflowed[0]&&(o<0?d("on",38):o>c.height()&&d("on",40)),"y"!==r.axis&&i.overflowed[1]&&(a<0?d("on",37):a>c.width()&&d("on",39)))}}).bind("mouseup."+e+" dragend."+e,function(e){z||(n&&(n=0,d("off",null)),P=!1)})},I=function(){if(A(this).data(H)){var u=A(this),f=u.data(H),h=f.opt,e=H+"_"+f.idx,m=A("#mCSB_"+f.idx),p=[A("#mCSB_"+f.idx+"_dragger_vertical"),A("#mCSB_"+f.idx+"_dragger_horizontal")],t=A("#mCSB_"+f.idx+"_container").find("iframe");t.length&&t.each(function(){A(this).bind("load",function(){X(this)&&A(this.contentDocument||this.contentWindow.document).bind("mousewheel."+e,function(e,t){o(e,t)})})}),m.bind("mousewheel."+e,function(e,t){o(e,t)})}function o(e,t){if(G(u),!W(u,e.target)){var o="auto"!==h.mouseWheel.deltaFactor?parseInt(h.mouseWheel.deltaFactor):g&&e.deltaFactor<100?100:e.deltaFactor||100,a=h.scrollInertia;if("x"===h.axis||"x"===h.mouseWheel.axis)var n="x",i=[Math.round(o*f.scrollRatio.x),parseInt(h.mouseWheel.scrollAmount)],r="auto"!==h.mouseWheel.scrollAmount?i[1]:i[0]>=m.width()?.9*m.width():i[0],l=Math.abs(A("#mCSB_"+f.idx+"_container")[0].offsetLeft),s=p[1][0].offsetLeft,c=p[1].parent().width()-p[1].width(),d="y"===h.mouseWheel.axis?e.deltaY||t:e.deltaX;else var n="y",i=[Math.round(o*f.scrollRatio.y),parseInt(h.mouseWheel.scrollAmount)],r="auto"!==h.mouseWheel.scrollAmount?i[1]:i[0]>=m.height()?.9*m.height():i[0],l=Math.abs(A("#mCSB_"+f.idx+"_container")[0].offsetTop),s=p[0][0].offsetTop,c=p[0].parent().height()-p[0].height(),d=e.deltaY||t;"y"===n&&!f.overflowed[0]||"x"===n&&!f.overflowed[1]||((h.mouseWheel.invert||e.webkitDirectionInvertedFromDevice)&&(d=-d),h.mouseWheel.normalizeDelta&&(d=d<0?-1:1),(0<d&&0!==s||d<0&&s!==c||h.mouseWheel.preventDefault)&&(e.stopImmediatePropagation(),e.preventDefault()),e.deltaFactor<5&&!h.mouseWheel.normalizeDelta&&(r=e.deltaFactor,a=17),J(u,(l-d*r).toString(),{dir:n,dur:a}))}}},E=new Object,X=function(e){var t=!1,o=!1,a=null;if(void 0===e?o="#empty":void 0!==A(e).attr("id")&&(o=A(e).attr("id")),!1!==o&&void 0!==E[o])return E[o];if(e){try{var n=e.contentDocument||e.contentWindow.document;a=n.body.innerHTML}catch(e){}t=null!==a}else{try{var n=top.document;a=n.body.innerHTML}catch(e){}t=null!==a}return!1!==o&&(E[o]=t),t},R=function(e){var t=this.find("iframe");if(t.length){var o=e?"auto":"none";t.css("pointer-events",o)}},W=function(e,t){var o=t.nodeName.toLowerCase(),a=e.data(H).opt.mouseWheel.disableOver;return-1<A.inArray(o,a)&&!(-1<A.inArray(o,["select","textarea"])&&!A(t).is(":focus"))},L=function(){var r,l=A(this),s=l.data(H),e=H+"_"+s.idx,c=A("#mCSB_"+s.idx+"_container"),d=c.parent(),t=A(".mCSB_"+s.idx+"_scrollbar ."+S[12]);t.bind("mousedown."+e+" touchstart."+e+" pointerdown."+e+" MSPointerDown."+e,function(e){P=!0,A(e.target).hasClass("mCSB_dragger")||(r=1)}).bind("touchend."+e+" pointerup."+e+" MSPointerUp."+e,function(e){P=!1}).bind("click."+e,function(e){if(r&&(r=0,A(e.target).hasClass(S[12])||A(e.target).hasClass("mCSB_draggerRail"))){G(l);var t=A(this),o=t.find(".mCSB_dragger");if(0<t.parent(".mCSB_scrollTools_horizontal").length){if(!s.overflowed[1])return;var a="x",n=e.pageX>o.offset().left?-1:1,i=Math.abs(c[0].offsetLeft)-n*(.9*d.width())}else{if(!s.overflowed[0])return;var a="y",n=e.pageY>o.offset().top?-1:1,i=Math.abs(c[0].offsetTop)-n*(.9*d.height())}J(l,i.toString(),{dir:a,scrollEasing:"mcsEaseInOut"})}})},Y=function(){var i=A(this),e=i.data(H),r=e.opt,t=H+"_"+e.idx,l=A("#mCSB_"+e.idx+"_container"),s=l.parent();l.bind("focusin."+t,function(e){var n=A(document.activeElement),t=l.find(".mCustomScrollBox").length;n.is(r.advanced.autoScrollOnFocus)&&(G(i),clearTimeout(i[0]._focusTimeout),i[0]._focusTimer=t?17*t:0,i[0]._focusTimeout=setTimeout(function(){var e=[ie(n)[0],ie(n)[1]],t=[l[0].offsetTop,l[0].offsetLeft],o=[0<=t[0]+e[0]&&t[0]+e[0]<s.height()-n.outerHeight(!1),0<=t[1]+e[1]&&t[0]+e[1]<s.width()-n.outerWidth(!1)],a="yx"!==r.axis||o[0]||o[1]?"all":"none";"x"===r.axis||o[0]||J(i,e[0].toString(),{dir:"y",scrollEasing:"mcsEaseInOut",overwrite:a,dur:0}),"y"===r.axis||o[1]||J(i,e[1].toString(),{dir:"x",scrollEasing:"mcsEaseInOut",overwrite:a,dur:0})},i[0]._focusTimer))})},j=function(){var e=A(this),t=e.data(H),o=H+"_"+t.idx,a=A("#mCSB_"+t.idx+"_container").parent();a.bind("scroll."+o,function(e){0===a.scrollTop()&&0===a.scrollLeft()||A(".mCSB_"+t.idx+"_scrollbar").css("visibility","hidden")})},F=function(){var a=A(this),n=a.data(H),i=n.opt,r=n.sequential,e=H+"_"+n.idx,t=".mCSB_"+n.idx+"_scrollbar",o=A(t+">a");o.bind("contextmenu."+e,function(e){e.preventDefault()}).bind("mousedown."+e+" touchstart."+e+" pointerdown."+e+" MSPointerDown."+e+" mouseup."+e+" touchend."+e+" pointerup."+e+" MSPointerUp."+e+" mouseout."+e+" pointerout."+e+" MSPointerOut."+e+" click."+e,function(e){if(e.preventDefault(),oe(e)){var t=A(this).attr("class");switch(r.type=i.scrollButtons.scrollType,e.type){case"mousedown":case"touchstart":case"pointerdown":case"MSPointerDown":if("stepped"===r.type)return;P=!0,n.tweenRunning=!1,o("on",t);break;case"mouseup":case"touchend":case"pointerup":case"MSPointerUp":case"mouseout":case"pointerout":case"MSPointerOut":if("stepped"===r.type)return;P=!1,r.dir&&o("off",t);break;case"click":if("stepped"!==r.type||n.tweenRunning)return;o("on",t)}}function o(e,t){r.scrollAmount=i.scrollButtons.scrollAmount,N(a,e,t)}})},q=function(){var l=A(this),s=l.data(H),c=s.opt,d=s.sequential,e=H+"_"+s.idx,t=A("#mCSB_"+s.idx),u=A("#mCSB_"+s.idx+"_container"),f=u.parent(),h="input,textarea,select,datalist,keygen,[contenteditable='true']",o=u.find("iframe"),a=["blur."+e+" keydown."+e+" keyup."+e];function n(e){switch(e.type){case"blur":s.tweenRunning&&d.dir&&r("off",null);break;case"keydown":case"keyup":var t=e.keyCode?e.keyCode:e.which,o="on";if("x"!==c.axis&&(38===t||40===t)||"y"!==c.axis&&(37===t||39===t)){if((38===t||40===t)&&!s.overflowed[0]||(37===t||39===t)&&!s.overflowed[1])return;"keyup"===e.type&&(o="off"),A(document.activeElement).is(h)||(e.preventDefault(),e.stopImmediatePropagation(),r(o,t))}else if(33===t||34===t){if((s.overflowed[0]||s.overflowed[1])&&(e.preventDefault(),e.stopImmediatePropagation()),"keyup"===e.type){G(l);var a=34===t?-1:1;if("x"===c.axis||"yx"===c.axis&&s.overflowed[1]&&!s.overflowed[0])var n="x",i=Math.abs(u[0].offsetLeft)-a*(.9*f.width());else var n="y",i=Math.abs(u[0].offsetTop)-a*(.9*f.height());J(l,i.toString(),{dir:n,scrollEasing:"mcsEaseInOut"})}}else if((35===t||36===t)&&!A(document.activeElement).is(h)&&((s.overflowed[0]||s.overflowed[1])&&(e.preventDefault(),e.stopImmediatePropagation()),"keyup"===e.type)){if("x"===c.axis||"yx"===c.axis&&s.overflowed[1]&&!s.overflowed[0])var n="x",i=35===t?Math.abs(f.width()-u.outerWidth(!1)):0;else var n="y",i=35===t?Math.abs(f.height()-u.outerHeight(!1)):0;J(l,i.toString(),{dir:n,scrollEasing:"mcsEaseInOut"})}}function r(e,t){d.type=c.keyboard.scrollType,d.scrollAmount=c.keyboard.scrollAmount,"stepped"===d.type&&s.tweenRunning||N(l,e,t)}}o.length&&o.each(function(){A(this).bind("load",function(){X(this)&&A(this.contentDocument||this.contentWindow.document).bind(a[0],function(e){n(e)})})}),t.attr("tabindex","0").bind(a[0],function(e){n(e)})},N=function(u,e,t,f,h){var m=u.data(H),p=m.opt,g=m.sequential,v=A("#mCSB_"+m.idx+"_container"),o="stepped"===g.type,x=p.scrollInertia<26?26:p.scrollInertia,w=p.scrollInertia<1?17:p.scrollInertia;switch(e){case"on":if(g.dir=[t===S[16]||t===S[15]||39===t||37===t?"x":"y",t===S[13]||t===S[15]||38===t||37===t?-1:1],G(u),ne(t)&&"stepped"===g.type)return;_(o);break;case"off":clearTimeout(g.step),te(g,"step"),G(u),(o||m.tweenRunning&&g.dir)&&_(!0)}function _(e){p.snapAmount&&(g.scrollAmount=p.snapAmount instanceof Array?"x"===g.dir[0]?p.snapAmount[1]:p.snapAmount[0]:p.snapAmount);var t="stepped"!==g.type,o=h||(e?t?x/1.5:w:1e3/60),a=e?t?7.5:40:2.5,n=[Math.abs(v[0].offsetTop),Math.abs(v[0].offsetLeft)],i=[10<m.scrollRatio.y?10:m.scrollRatio.y,10<m.scrollRatio.x?10:m.scrollRatio.x],r="x"===g.dir[0]?n[1]+g.dir[1]*(i[1]*a):n[0]+g.dir[1]*(i[0]*a),l="x"===g.dir[0]?n[1]+g.dir[1]*parseInt(g.scrollAmount):n[0]+g.dir[1]*parseInt(g.scrollAmount),s="auto"!==g.scrollAmount?l:r,c=f||(e?t?"mcsLinearOut":"mcsEaseInOut":"mcsLinear"),d=!!e;e&&o<17&&(s="x"===g.dir[0]?n[1]:n[0]),J(u,s.toString(),{dir:g.dir[0],scrollEasing:c,dur:o,onComplete:d}),e?g.dir=!1:(clearTimeout(g.step),g.step=setTimeout(function(){_()},o))}},V=function(e){var t=A(this).data(H).opt,o=[];return"function"==typeof e&&(e=e()),e instanceof Array?o=1<e.length?[e[0],e[1]]:"x"===t.axis?[null,e[0]]:[e[0],null]:(o[0]=e.y?e.y:e.x||"x"===t.axis?null:e,o[1]=e.x?e.x:e.y||"y"===t.axis?null:e),"function"==typeof o[0]&&(o[0]=o[0]()),"function"==typeof o[1]&&(o[1]=o[1]()),o},Q=function(e,t){if(null!=e&&void 0!==e){var o=A(this),a=o.data(H),n=a.opt,i=A("#mCSB_"+a.idx+"_container"),r=i.parent(),l=typeof e;t||(t="x"===n.axis?"x":"y");var s="x"===t?i.outerWidth(!1)-r.width():i.outerHeight(!1)-r.height(),c="x"===t?i[0].offsetLeft:i[0].offsetTop,d="x"===t?"left":"top";switch(l){case"function":return e();case"object":var u=e.jquery?e:A(e);if(!u.length)return;return"x"===t?ie(u)[1]:ie(u)[0];case"string":case"number":if(ne(e))return Math.abs(e);if(-1!==e.indexOf("%"))return Math.abs(s*parseInt(e)/100);if(-1!==e.indexOf("-="))return Math.abs(c-parseInt(e.split("-=")[1]));if(-1!==e.indexOf("+=")){var f=c+parseInt(e.split("+=")[1]);return 0<=f?0:Math.abs(f)}if(-1!==e.indexOf("px")&&ne(e.split("px")[0]))return Math.abs(e.split("px")[0]);if("top"===e||"left"===e)return 0;if("bottom"===e)return Math.abs(r.height()-i.outerHeight(!1));if("right"===e)return Math.abs(r.width()-i.outerWidth(!1));if("first"===e||"last"===e){var u=i.find(":"+e);return"x"===t?ie(u)[1]:ie(u)[0]}return A(e).length?"x"===t?ie(A(e))[1]:ie(A(e))[0]:(i.css(d,e),void m.update.call(null,o[0]))}}},Z=function(e){var t=A(this),o=t.data(H),a=o.opt,n=A("#mCSB_"+o.idx+"_container");if(e)return clearTimeout(n[0].autoUpdate),void te(n[0],"autoUpdate");function i(e){clearTimeout(n[0].autoUpdate),m.update.call(null,t[0],e)}!function e(){clearTimeout(n[0].autoUpdate),0!==t.parents("html").length?n[0].autoUpdate=setTimeout(function(){return a.advanced.updateOnSelectorChange&&(o.poll.change.n=function(){!0===a.advanced.updateOnSelectorChange&&(a.advanced.updateOnSelectorChange="*");var e=0,t=n.find(a.advanced.updateOnSelectorChange);return a.advanced.updateOnSelectorChange&&0<t.length&&t.each(function(){e+=this.offsetHeight+this.offsetWidth}),e}(),o.poll.change.n!==o.poll.change.o)?(o.poll.change.o=o.poll.change.n,void i(3)):a.advanced.updateOnContentResize&&(o.poll.size.n=t[0].scrollHeight+t[0].scrollWidth+n[0].offsetHeight+t[0].offsetHeight+t[0].offsetWidth,o.poll.size.n!==o.poll.size.o)?(o.poll.size.o=o.poll.size.n,void i(1)):!a.advanced.updateOnImageLoad||"auto"===a.advanced.updateOnImageLoad&&"y"===a.axis||(o.poll.img.n=n.find("img").length,o.poll.img.n===o.poll.img.o)?void((a.advanced.updateOnSelectorChange||a.advanced.updateOnContentResize||a.advanced.updateOnImageLoad)&&e()):(o.poll.img.o=o.poll.img.n,void n.find("img").each(function(){!function(e){if(A(e).hasClass(S[2]))return i();var t,o,a=new Image;a.onload=(t=a,o=function(){this.onload=null,A(e).addClass(S[2]),i(2)},function(){return o.apply(t,arguments)}),a.src=e.src}(this)}))},a.advanced.autoUpdateTimeout):t=null}()},G=function(e){var t=e.data(H),o=A("#mCSB_"+t.idx+"_container,#mCSB_"+t.idx+"_container_wrapper,#mCSB_"+t.idx+"_dragger_vertical,#mCSB_"+t.idx+"_dragger_horizontal");o.each(function(){ee.call(this)})},J=function(n,e,i){var t=n.data(H),o=t.opt,a={trigger:"internal",dir:"y",scrollEasing:"mcsEaseOut",drag:!1,dur:o.scrollInertia,overwrite:"all",callbacks:!0,onStart:!0,onUpdate:!0,onComplete:!0},i=A.extend(a,i),r=[i.dur,i.drag?0:i.dur],l=A("#mCSB_"+t.idx),s=A("#mCSB_"+t.idx+"_container"),c=s.parent(),d=o.callbacks.onTotalScrollOffset?V.call(n,o.callbacks.onTotalScrollOffset):[0,0],u=o.callbacks.onTotalScrollBackOffset?V.call(n,o.callbacks.onTotalScrollBackOffset):[0,0];if(t.trigger=i.trigger,0===c.scrollTop()&&0===c.scrollLeft()||(A(".mCSB_"+t.idx+"_scrollbar").css("visibility","visible"),c.scrollTop(0).scrollLeft(0)),"_resetY"!==e||t.contentReset.y||(B("onOverflowYNone")&&o.callbacks.onOverflowYNone.call(n[0]),t.contentReset.y=1),"_resetX"!==e||t.contentReset.x||(B("onOverflowXNone")&&o.callbacks.onOverflowXNone.call(n[0]),t.contentReset.x=1),"_resetY"!==e&&"_resetX"!==e){if(!t.contentReset.y&&n[0].mcs||!t.overflowed[0]||(B("onOverflowY")&&o.callbacks.onOverflowY.call(n[0]),t.contentReset.x=null),!t.contentReset.x&&n[0].mcs||!t.overflowed[1]||(B("onOverflowX")&&o.callbacks.onOverflowX.call(n[0]),t.contentReset.x=null),o.snapAmount){var f=o.snapAmount instanceof Array?"x"===i.dir?o.snapAmount[1]:o.snapAmount[0]:o.snapAmount;h=e,m=f,p=o.snapOffset,e=Math.round(h/m)*m-p}var h,m,p;switch(i.dir){case"x":var g=A("#mCSB_"+t.idx+"_dragger_horizontal"),v="left",x=s[0].offsetLeft,w=[l.width()-s.outerWidth(!1),g.parent().width()-g.width()],_=[e,0===e?0:e/t.scrollRatio.x],S=d[1],b=u[1],C=0<S?S/t.scrollRatio.x:0,y=0<b?b/t.scrollRatio.x:0;break;case"y":var g=A("#mCSB_"+t.idx+"_dragger_vertical"),v="top",x=s[0].offsetTop,w=[l.height()-s.outerHeight(!1),g.parent().height()-g.height()],_=[e,0===e?0:e/t.scrollRatio.y],S=d[0],b=u[0],C=0<S?S/t.scrollRatio.y:0,y=0<b?b/t.scrollRatio.y:0}_[1]<0||0===_[0]&&0===_[1]?_=[0,0]:_[1]>=w[1]?_=[w[0],w[1]]:_[0]=-_[0],n[0].mcs||(T(),B("onInit")&&o.callbacks.onInit.call(n[0])),clearTimeout(s[0].onCompleteTimeout),K(g[0],v,Math.round(_[1]),r[1],i.scrollEasing),!t.tweenRunning&&(0===x&&0<=_[0]||x===w[0]&&_[0]<=w[0])||K(s[0],v,Math.round(_[0]),r[0],i.scrollEasing,i.overwrite,{onStart:function(){i.callbacks&&i.onStart&&!t.tweenRunning&&(B("onScrollStart")&&(T(),o.callbacks.onScrollStart.call(n[0])),t.tweenRunning=!0,M(g),t.cbOffsets=[o.callbacks.alwaysTriggerOffsets||x>=w[0]+S,o.callbacks.alwaysTriggerOffsets||x<=-b])},onUpdate:function(){i.callbacks&&i.onUpdate&&B("whileScrolling")&&(T(),o.callbacks.whileScrolling.call(n[0]))},onComplete:function(){if(i.callbacks&&i.onComplete){"yx"===o.axis&&clearTimeout(s[0].onCompleteTimeout);var e=s[0].idleTimer||0;s[0].onCompleteTimeout=setTimeout(function(){B("onScroll")&&(T(),o.callbacks.onScroll.call(n[0])),B("onTotalScroll")&&_[1]>=w[1]-C&&t.cbOffsets[0]&&(T(),o.callbacks.onTotalScroll.call(n[0])),B("onTotalScrollBack")&&_[1]<=y&&t.cbOffsets[1]&&(T(),o.callbacks.onTotalScrollBack.call(n[0])),t.tweenRunning=!1,s[0].idleTimer=0,M(g,"hide")},e)}}})}function B(e){return t&&o.callbacks[e]&&"function"==typeof o.callbacks[e]}function T(){var e=[s[0].offsetTop,s[0].offsetLeft],t=[g[0].offsetTop,g[0].offsetLeft],o=[s.outerHeight(!1),s.outerWidth(!1)],a=[l.height(),l.width()];n[0].mcs={content:s,top:e[0],left:e[1],draggerTop:t[0],draggerLeft:t[1],topPct:Math.round(100*Math.abs(e[0])/(Math.abs(o[0])-a[0])),leftPct:Math.round(100*Math.abs(e[1])/(Math.abs(o[1])-a[1])),direction:i.dir}}},K=function(e,t,o,a,n,i,r){e._mTween||(e._mTween={top:{},left:{}});var l,s,r=r||{},c=r.onStart||function(){},d=r.onUpdate||function(){},u=r.onComplete||function(){},f=$(),h=0,m=e.offsetTop,p=e.style,g=e._mTween[t];"left"===t&&(m=e.offsetLeft);var v=o-m;function x(){g.stop||(h||c.call(),h=$()-f,w(),h>=g.time&&(g.time=h>g.time?h+l-(h-g.time):h+l-1,g.time<h+1&&(g.time=h+1)),g.time<a?g.id=s(x):u.call())}function w(){0<a?(g.currVal=function(e,t,o,a,n){switch(n){case"linear":case"mcsLinear":return o*e/a+t;case"mcsLinearOut":return e/=a,e--,o*Math.sqrt(1-e*e)+t;case"easeInOutSmooth":return(e/=a/2)<1?o/2*e*e+t:-o/2*(--e*(e-2)-1)+t;case"easeInOutStrong":return(e/=a/2)<1?o/2*Math.pow(2,10*(e-1))+t:(e--,o/2*(2-Math.pow(2,-10*e))+t);case"easeInOut":case"mcsEaseInOut":return(e/=a/2)<1?o/2*e*e*e+t:o/2*((e-=2)*e*e+2)+t;case"easeOutSmooth":return e/=a,-o*(--e*e*e*e-1)+t;case"easeOutStrong":return o*(1-Math.pow(2,-10*e/a))+t;case"easeOut":case"mcsEaseOut":default:var i=(e/=a)*e,r=i*e;return t+o*(.499999999999997*r*i+-2.5*i*i+5.5*r+-6.5*i+4*e)}}(g.time,m,v,a,n),p[t]=Math.round(g.currVal)+"px"):p[t]=o+"px",d.call()}g.stop=0,"none"!==i&&null!=g.id&&(window.requestAnimationFrame?window.cancelAnimationFrame(g.id):clearTimeout(g.id),g.id=null),l=1e3/60,g.time=h+l,s=window.requestAnimationFrame?window.requestAnimationFrame:function(e){return w(),setTimeout(e,.01)},g.id=s(x)},$=function(){return window.performance&&window.performance.now?window.performance.now():window.performance&&window.performance.webkitNow?window.performance.webkitNow():Date.now?Date.now():(new Date).getTime()},ee=function(){var e=this;e._mTween||(e._mTween={top:{},left:{}});for(var t=["top","left"],o=0;o<t.length;o++){var a=t[o];e._mTween[a].id&&(window.requestAnimationFrame?window.cancelAnimationFrame(e._mTween[a].id):clearTimeout(e._mTween[a].id),e._mTween[a].id=null,e._mTween[a].stop=1)}},te=function(t,o){try{delete t[o]}catch(e){t[o]=null}},oe=function(e){return!(e.which&&1!==e.which)},ae=function(e){var t=e.originalEvent.pointerType;return!(t&&"touch"!==t&&2!==t)},ne=function(e){return!isNaN(parseFloat(e))&&isFinite(e)},ie=function(e){var t=e.parents(".mCSB_container");return[e.offset().top-t.offset().top,e.offset().left-t.offset().left]},re=function(){var e=function(){var e=["webkit","moz","ms","o"];if("hidden"in document)return"hidden";for(var t=0;t<e.length;t++)if(e[t]+"Hidden"in document)return e[t]+"Hidden";return null}();return!!e&&document[e]},A.fn[h]=function(e){return m[e]?m[e].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof e&&e?void A.error("Method "+e+" does not exist"):m.init.apply(this,arguments)},A[h]=function(e){return m[e]?m[e].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof e&&e?void A.error("Method "+e+" does not exist"):m.init.apply(this,arguments)},A[h].defaults=n,window[h]=!0,A(window).bind("load",function(){A(a)[h](),A.extend(A.expr[":"],{mcsInView:A.expr[":"].mcsInView||function(e){var t,o,a=A(e),n=a.parents(".mCSB_container");if(n.length)return t=n.parent(),0<=(o=[n[0].offsetTop,n[0].offsetLeft])[0]+ie(a)[0]&&o[0]+ie(a)[0]<t.height()-a.outerHeight(!1)&&0<=o[1]+ie(a)[1]&&o[1]+ie(a)[1]<t.width()-a.outerWidth(!1)},mcsInSight:A.expr[":"].mcsInSight||function(e,t,o){var a,n,i,r,l=A(e),s=l.parents(".mCSB_container"),c="exact"===o[3]?[[1,0],[1,0]]:[[.9,.1],[.6,.4]];if(s.length)return a=[l.outerHeight(!1),l.outerWidth(!1)],i=[s[0].offsetTop+ie(l)[0],s[0].offsetLeft+ie(l)[1]],n=[s.parent()[0].offsetHeight,s.parent()[0].offsetWidth],i[0]-n[0]*(r=[a[0]<n[0]?c[0]:c[1],a[1]<n[1]?c[0]:c[1]])[0][0]<0&&0<=i[0]+a[0]-n[0]*r[0][1]&&i[1]-n[1]*r[1][0]<0&&0<=i[1]+a[1]-n[1]*r[1][1]},mcsOverflow:A.expr[":"].mcsOverflow||function(e){var t=A(e).data(H);if(t)return t.overflowed[0]||t.overflowed[1]}})})});
|
includes/admin/assets/js/um-admin-blocks-shortcode.js
ADDED
@@ -0,0 +1,610 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
(function (blocks, editor, components, i18n, element) {
|
2 |
+
var um_el = wp.element.createElement,
|
3 |
+
UmRegisterBlockType = wp.blocks.registerBlockType,
|
4 |
+
UmRichText = wp.editor.RichText,
|
5 |
+
UmTextControl = wp.components.TextControl,
|
6 |
+
UmSelectControl = wp.components.SelectControl,
|
7 |
+
UmToggleControl = wp.components.ToggleControl,
|
8 |
+
UmPanelBody = wp.components.PanelBody,
|
9 |
+
UmRangeControl = wp.components.RangeControl,
|
10 |
+
UmSpinner = wp.components.Spinner,
|
11 |
+
UmData = wp.data,
|
12 |
+
UmWithSelect = wp.data.withSelect,
|
13 |
+
UmApiFetch = wp.apiFetch;
|
14 |
+
|
15 |
+
//-------------------------------------\\
|
16 |
+
//--------- Um Forms shortcode --------\\
|
17 |
+
//-------------------------------------\\
|
18 |
+
|
19 |
+
UmRegisterBlockType('um-block/um-forms', {
|
20 |
+
title: i18n.__( 'UM Form' , 'ultimate-member' ),
|
21 |
+
description: i18n.__( 'Chose display form', 'ultimate-member' ),
|
22 |
+
icon: 'forms',
|
23 |
+
category: 'um-blocks',
|
24 |
+
attributes: {
|
25 |
+
content: {
|
26 |
+
source: 'html',
|
27 |
+
selector: 'p'
|
28 |
+
},
|
29 |
+
form_id: {
|
30 |
+
type: 'select'
|
31 |
+
}
|
32 |
+
},
|
33 |
+
|
34 |
+
edit: UmWithSelect(function (select) {
|
35 |
+
return {
|
36 |
+
posts: select('core').getEntityRecords( 'postType', 'um_form', {
|
37 |
+
per_page: -1
|
38 |
+
})
|
39 |
+
};
|
40 |
+
})(function ( props ) {
|
41 |
+
var posts = props.posts,
|
42 |
+
className = props.className,
|
43 |
+
attributes = props.attributes,
|
44 |
+
setAttributes = props.setAttributes,
|
45 |
+
form_id = props.attributes.form_id,
|
46 |
+
content = props.attributes.content;
|
47 |
+
|
48 |
+
function get_option( posts ) {
|
49 |
+
|
50 |
+
var option = [];
|
51 |
+
|
52 |
+
posts.map( function( post ) {
|
53 |
+
option.push(
|
54 |
+
{
|
55 |
+
label: post.title.rendered,
|
56 |
+
value: post.id
|
57 |
+
}
|
58 |
+
);
|
59 |
+
});
|
60 |
+
|
61 |
+
return option;
|
62 |
+
}
|
63 |
+
|
64 |
+
function umShortcode( value ) {
|
65 |
+
|
66 |
+
var shortcode = '';
|
67 |
+
|
68 |
+
if ( value !== undefined ) {
|
69 |
+
shortcode = '[ultimatemember form_id="' + value + '"]';
|
70 |
+
}
|
71 |
+
|
72 |
+
return shortcode;
|
73 |
+
}
|
74 |
+
|
75 |
+
|
76 |
+
if ( ! posts ) {
|
77 |
+
return um_el(
|
78 |
+
'p',
|
79 |
+
{
|
80 |
+
className: className
|
81 |
+
},
|
82 |
+
um_el(
|
83 |
+
UmSpinner,
|
84 |
+
null
|
85 |
+
),
|
86 |
+
i18n.__( 'Loading Forms', 'ultimate-member' )
|
87 |
+
);
|
88 |
+
}
|
89 |
+
|
90 |
+
if ( 0 === posts.length ) {
|
91 |
+
return um_el(
|
92 |
+
'p',
|
93 |
+
null,
|
94 |
+
i18n.__( 'No Posts', 'ultimate-member' )
|
95 |
+
);
|
96 |
+
}
|
97 |
+
|
98 |
+
if ( form_id === undefined ) {
|
99 |
+
props.setAttributes({ form_id: posts[0]['id'] });
|
100 |
+
var shortcode = umShortcode(posts[0]['id']);
|
101 |
+
props.setAttributes( { content: shortcode } );
|
102 |
+
}
|
103 |
+
|
104 |
+
var get_post = get_option( posts );
|
105 |
+
|
106 |
+
return um_el(
|
107 |
+
'div',
|
108 |
+
{
|
109 |
+
className: className
|
110 |
+
},
|
111 |
+
um_el(
|
112 |
+
UmSelectControl,
|
113 |
+
{
|
114 |
+
label: i18n.__( 'Select Forms', 'ultimate-member' ),
|
115 |
+
className: "um_select_users",
|
116 |
+
type: 'number',
|
117 |
+
value: form_id,
|
118 |
+
options: get_post,
|
119 |
+
onChange: function onChange( value ) {
|
120 |
+
props.setAttributes({ form_id: value });
|
121 |
+
var shortcode = umShortcode(value);
|
122 |
+
props.setAttributes( { content: shortcode } );
|
123 |
+
}
|
124 |
+
}
|
125 |
+
)
|
126 |
+
);
|
127 |
+
} // end withSelect
|
128 |
+
), // end edit
|
129 |
+
|
130 |
+
save: function save( props ) {
|
131 |
+
|
132 |
+
return um_el(
|
133 |
+
UmRichText.Content,
|
134 |
+
{
|
135 |
+
tagName: 'p',
|
136 |
+
className: props.className,
|
137 |
+
value: props.attributes.content
|
138 |
+
}
|
139 |
+
);
|
140 |
+
}
|
141 |
+
|
142 |
+
});
|
143 |
+
|
144 |
+
//-------------------------------------\\
|
145 |
+
//-- Um Member Directories shortcode --\\
|
146 |
+
//-------------------------------------\\
|
147 |
+
|
148 |
+
UmRegisterBlockType( 'um-block/um-member-directories', {
|
149 |
+
title: i18n.__( 'UM Member Directories', 'ultimate-member'),
|
150 |
+
description: i18n.__( 'Chose display form', 'ultimate-member' ),
|
151 |
+
icon: 'groups',
|
152 |
+
category: 'um-blocks',
|
153 |
+
attributes: {
|
154 |
+
content: {
|
155 |
+
source: 'html',
|
156 |
+
selector: 'p'
|
157 |
+
},
|
158 |
+
member_id: {
|
159 |
+
type: 'select'
|
160 |
+
}
|
161 |
+
},
|
162 |
+
|
163 |
+
edit: UmWithSelect( function( select ) {
|
164 |
+
return {
|
165 |
+
posts: select('core').getEntityRecords( 'postType', 'um_directory', {
|
166 |
+
per_page: -1
|
167 |
+
})
|
168 |
+
};
|
169 |
+
})(function ( props ) {
|
170 |
+
var posts = props.posts,
|
171 |
+
className = props.className,
|
172 |
+
attributes = props.attributes,
|
173 |
+
setAttributes = props.setAttributes,
|
174 |
+
member_id = props.attributes.member_id,
|
175 |
+
content = props.attributes.content;
|
176 |
+
|
177 |
+
function get_option( posts ) {
|
178 |
+
var option = [];
|
179 |
+
|
180 |
+
posts.map( function( post ) {
|
181 |
+
option.push(
|
182 |
+
{
|
183 |
+
label: post.title.rendered,
|
184 |
+
value: post.id
|
185 |
+
}
|
186 |
+
);
|
187 |
+
});
|
188 |
+
|
189 |
+
return option;
|
190 |
+
}
|
191 |
+
|
192 |
+
function umShortcode( value ) {
|
193 |
+
|
194 |
+
var shortcode = '';
|
195 |
+
|
196 |
+
if ( value !== undefined ) {
|
197 |
+
shortcode = '[ultimatemember form_id="' + value + '"]';
|
198 |
+
}
|
199 |
+
|
200 |
+
return shortcode;
|
201 |
+
}
|
202 |
+
|
203 |
+
if ( ! posts ) {
|
204 |
+
return um_el(
|
205 |
+
'p',
|
206 |
+
{
|
207 |
+
className: className
|
208 |
+
},
|
209 |
+
um_el(
|
210 |
+
UmSpinner,
|
211 |
+
null
|
212 |
+
),
|
213 |
+
i18n.__( 'Loading Forms', 'ultimate-member' )
|
214 |
+
);
|
215 |
+
}
|
216 |
+
|
217 |
+
if ( 0 === posts.length ) {
|
218 |
+
return um_el(
|
219 |
+
'p',
|
220 |
+
null,
|
221 |
+
i18n.__( 'No Posts', 'ultimate-member' )
|
222 |
+
);
|
223 |
+
}
|
224 |
+
|
225 |
+
if ( member_id === undefined ) {
|
226 |
+
props.setAttributes({ member_id: posts[0]['id'] });
|
227 |
+
var shortcode = umShortcode(posts[0]['id']);
|
228 |
+
props.setAttributes( { content: shortcode } );
|
229 |
+
}
|
230 |
+
|
231 |
+
var get_post = get_option( posts );
|
232 |
+
|
233 |
+
return um_el(
|
234 |
+
'div',
|
235 |
+
{
|
236 |
+
className: className
|
237 |
+
},
|
238 |
+
um_el(
|
239 |
+
UmSelectControl,
|
240 |
+
{
|
241 |
+
label: i18n.__( 'Select Directories', 'ultimate-member' ),
|
242 |
+
className: "um_select_member",
|
243 |
+
type: 'number',
|
244 |
+
value: member_id,
|
245 |
+
options: get_post,
|
246 |
+
onChange: function onChange( value ) {
|
247 |
+
props.setAttributes({ member_id: value });
|
248 |
+
var shortcode = umShortcode(value);
|
249 |
+
props.setAttributes( { content: shortcode } );
|
250 |
+
}
|
251 |
+
}
|
252 |
+
)
|
253 |
+
);
|
254 |
+
} // end withSelect
|
255 |
+
), // end edit
|
256 |
+
|
257 |
+
save: function save( props ) {
|
258 |
+
|
259 |
+
return um_el(
|
260 |
+
UmRichText.Content,
|
261 |
+
{
|
262 |
+
tagName: 'p',
|
263 |
+
className: props.className,
|
264 |
+
value: props.attributes.content
|
265 |
+
}
|
266 |
+
);
|
267 |
+
}
|
268 |
+
|
269 |
+
});
|
270 |
+
|
271 |
+
//-------------------------------------\\
|
272 |
+
//--------- Um password reset ---------\\
|
273 |
+
//-------------------------------------\\
|
274 |
+
UmRegisterBlockType('um-block/um-password-reset', {
|
275 |
+
title: i18n.__( 'UM Password Reset', 'ultimate-member' ),
|
276 |
+
description: i18n.__( 'Password Reset', 'ultimate-member' ),
|
277 |
+
icon: 'unlock',
|
278 |
+
category: 'um-blocks',
|
279 |
+
attributes: {
|
280 |
+
content: {
|
281 |
+
source: 'html',
|
282 |
+
selector: 'p'
|
283 |
+
}
|
284 |
+
},
|
285 |
+
|
286 |
+
edit: function( props ) {
|
287 |
+
var content = props.attributes.content;
|
288 |
+
props.setAttributes({ content: '[ultimatemember_password]' });
|
289 |
+
|
290 |
+
return [
|
291 |
+
um_el(
|
292 |
+
"div",
|
293 |
+
{
|
294 |
+
className: "um-password-reset-wrapper"
|
295 |
+
},
|
296 |
+
i18n.__( 'Password Reset', 'ultimate-member' )
|
297 |
+
)
|
298 |
+
]
|
299 |
+
},
|
300 |
+
|
301 |
+
save: function( props ) {
|
302 |
+
|
303 |
+
return um_el(
|
304 |
+
UmRichText.Content,
|
305 |
+
{
|
306 |
+
tagName: 'p',
|
307 |
+
className: props.className,
|
308 |
+
value: props.attributes.content
|
309 |
+
}
|
310 |
+
);
|
311 |
+
}
|
312 |
+
});
|
313 |
+
|
314 |
+
//-------------------------------------\\
|
315 |
+
//------------ Um Account -------------\\
|
316 |
+
//-------------------------------------\\
|
317 |
+
UmRegisterBlockType('um-block/um-account', {
|
318 |
+
title: i18n.__( 'UM Account', 'ultimate-member' ),
|
319 |
+
description: i18n.__( 'UM Account', 'ultimate-member' ),
|
320 |
+
icon: 'id',
|
321 |
+
category: 'um-blocks',
|
322 |
+
attributes: {
|
323 |
+
content: {
|
324 |
+
source: 'html',
|
325 |
+
selector: 'p'
|
326 |
+
},
|
327 |
+
tab: {
|
328 |
+
type: 'select'
|
329 |
+
}
|
330 |
+
},
|
331 |
+
|
332 |
+
edit: function( props ) {
|
333 |
+
var content = props.attributes.content,
|
334 |
+
tab = props.attributes.tab,
|
335 |
+
options = um_account_settings;
|
336 |
+
|
337 |
+
function get_options() {
|
338 |
+
var option = [];
|
339 |
+
|
340 |
+
option.push( { label: i18n.__( 'All', 'ultimate-member' ), value: 'all' } );
|
341 |
+
|
342 |
+
for ( var key in options ) {
|
343 |
+
if ( options.hasOwnProperty( key ) && options[ key ]['enabled'] ) {
|
344 |
+
option.push(
|
345 |
+
{
|
346 |
+
label: options[ key ]['label'],
|
347 |
+
value: key
|
348 |
+
}
|
349 |
+
)
|
350 |
+
}
|
351 |
+
}
|
352 |
+
|
353 |
+
return option;
|
354 |
+
}
|
355 |
+
|
356 |
+
function umShortcode( value ) {
|
357 |
+
|
358 |
+
var shortcode = '[ultimatemember_account';
|
359 |
+
|
360 |
+
if ( value != 'all' ) {
|
361 |
+
shortcode = shortcode + ' tab="' + value + '"';
|
362 |
+
}
|
363 |
+
|
364 |
+
shortcode = shortcode + ']';
|
365 |
+
|
366 |
+
props.setAttributes({ content: shortcode });
|
367 |
+
}
|
368 |
+
|
369 |
+
if ( content === undefined ) {
|
370 |
+
props.setAttributes({ content: '[ultimatemember_account]' });
|
371 |
+
}
|
372 |
+
|
373 |
+
return [
|
374 |
+
um_el(
|
375 |
+
"div",
|
376 |
+
{
|
377 |
+
className: "um-account-wrapper"
|
378 |
+
},
|
379 |
+
i18n.__( 'UM Account', 'ultimate-member' )
|
380 |
+
),
|
381 |
+
um_el(
|
382 |
+
wp.editor.InspectorControls,
|
383 |
+
{},
|
384 |
+
um_el(
|
385 |
+
UmPanelBody,
|
386 |
+
{
|
387 |
+
title: i18n.__( 'Account Tab', 'ultimate-member' )
|
388 |
+
},
|
389 |
+
um_el(
|
390 |
+
UmSelectControl,
|
391 |
+
{
|
392 |
+
label: i18n.__( 'Select Tab', 'ultimate-member' ),
|
393 |
+
className: "um_select_account_tab",
|
394 |
+
type: 'number',
|
395 |
+
value: props.attributes.tab,
|
396 |
+
options: get_options(),
|
397 |
+
onChange: function onChange( value ) {
|
398 |
+
props.setAttributes({ tab: value });
|
399 |
+
umShortcode( value );
|
400 |
+
}
|
401 |
+
}
|
402 |
+
)
|
403 |
+
)
|
404 |
+
)
|
405 |
+
]
|
406 |
+
},
|
407 |
+
|
408 |
+
save: function( props ) {
|
409 |
+
|
410 |
+
return um_el(
|
411 |
+
UmRichText.Content,
|
412 |
+
{
|
413 |
+
tagName: 'p',
|
414 |
+
className: props.className,
|
415 |
+
value: props.attributes.content
|
416 |
+
}
|
417 |
+
);
|
418 |
+
}
|
419 |
+
});
|
420 |
+
|
421 |
+
//-------------------------------------\\
|
422 |
+
//------ Social Activity function -----\\
|
423 |
+
//-------------------------------------\\
|
424 |
+
var um_users = getUsers();
|
425 |
+
|
426 |
+
function getUsers() {
|
427 |
+
|
428 |
+
var options = [],
|
429 |
+
user_list = '';
|
430 |
+
|
431 |
+
UmApiFetch( { path : '/wp/v2/users/' } ).then(
|
432 |
+
function ( answer ) {
|
433 |
+
user_list = answer;
|
434 |
+
|
435 |
+
user_list.map(function (user) {
|
436 |
+
options.push(
|
437 |
+
{
|
438 |
+
label: user.name,
|
439 |
+
value: user.id
|
440 |
+
}
|
441 |
+
);
|
442 |
+
});
|
443 |
+
|
444 |
+
}
|
445 |
+
);
|
446 |
+
|
447 |
+
return options;
|
448 |
+
}
|
449 |
+
|
450 |
+
//-------------------------------------\\
|
451 |
+
//----- Social Activity Shortcode -----\\
|
452 |
+
//-------------------------------------\\
|
453 |
+
UmRegisterBlockType( 'um-block/um-user-profile-wall', {
|
454 |
+
title: i18n.__( 'User Profile Wall', 'ultimate-member' ),
|
455 |
+
description: i18n.__( 'Used on the user profile page', 'ultimate-member' ),
|
456 |
+
icon: 'businessman',
|
457 |
+
category: 'um-blocks',
|
458 |
+
attributes: { // Necessary for saving block content.
|
459 |
+
content: {
|
460 |
+
source: 'html',
|
461 |
+
selector: 'p'
|
462 |
+
},
|
463 |
+
user_id: {
|
464 |
+
type: 'select'
|
465 |
+
},
|
466 |
+
hashtag: {
|
467 |
+
type: 'string'
|
468 |
+
},
|
469 |
+
wall_post: {
|
470 |
+
type: 'number'
|
471 |
+
},
|
472 |
+
user_wall: {
|
473 |
+
type: 'boolean'
|
474 |
+
}
|
475 |
+
},
|
476 |
+
|
477 |
+
edit: function( props ) {
|
478 |
+
var user_id = props.attributes.user_id,
|
479 |
+
hashtag = props.attributes.hashtag,
|
480 |
+
wall_post = props.attributes.wall_post,
|
481 |
+
user_wall = props.attributes.user_wall,
|
482 |
+
attributes = props.attributes,
|
483 |
+
content = props.attributes.content;
|
484 |
+
|
485 |
+
function onChangeContent( newContent ) {
|
486 |
+
props.setAttributes( { content: newContent } );
|
487 |
+
}
|
488 |
+
|
489 |
+
function umShortcode() {
|
490 |
+
|
491 |
+
var shortcode = '';
|
492 |
+
|
493 |
+
if ( attributes.user_id !== undefined ) {
|
494 |
+
|
495 |
+
shortcode = '[ultimatemember_wall user_id="' + attributes.user_id + '"';
|
496 |
+
|
497 |
+
if( attributes.hashtag !== undefined ) {
|
498 |
+
shortcode = shortcode + ' hashtag="' + attributes.hashtag + '"';
|
499 |
+
}
|
500 |
+
|
501 |
+
if( attributes.wall_post !== undefined ) {
|
502 |
+
shortcode = shortcode + ' wall_post="' + attributes.wall_post + '"';
|
503 |
+
}
|
504 |
+
|
505 |
+
if( attributes.user_wall !== undefined ) {
|
506 |
+
shortcode = shortcode + ' user_wall="' + attributes.user_wall + '"';
|
507 |
+
}
|
508 |
+
|
509 |
+
shortcode = shortcode + ']';
|
510 |
+
|
511 |
+
props.setAttributes( { content: shortcode } );
|
512 |
+
|
513 |
+
}
|
514 |
+
}
|
515 |
+
|
516 |
+
return [
|
517 |
+
um_el(
|
518 |
+
"div",
|
519 |
+
{
|
520 |
+
className: "um-social-activity-wrapper"
|
521 |
+
},
|
522 |
+
um_el(
|
523 |
+
UmSelectControl,
|
524 |
+
{
|
525 |
+
label: i18n.__( 'Select User', 'ultimate-member' ),
|
526 |
+
className: "um_select_users",
|
527 |
+
type: 'number',
|
528 |
+
value: props.attributes.user_id,
|
529 |
+
options: um_users,
|
530 |
+
onChange: function onChange( value ) {
|
531 |
+
props.setAttributes({ user_id: value });
|
532 |
+
attributes['user_id'] = value;
|
533 |
+
umShortcode();
|
534 |
+
}
|
535 |
+
}
|
536 |
+
),
|
537 |
+
um_el(
|
538 |
+
UmTextControl,
|
539 |
+
{
|
540 |
+
className: "um_hashtag",
|
541 |
+
label: i18n.__( 'Hashtag', 'ultimate-member' ),
|
542 |
+
value: props.attributes.hashtag,
|
543 |
+
onChange: function onChange( value ) {
|
544 |
+
props.setAttributes({ hashtag: value });
|
545 |
+
attributes['hashtag'] = value;
|
546 |
+
umShortcode();
|
547 |
+
}
|
548 |
+
}
|
549 |
+
)
|
550 |
+
|
551 |
+
),
|
552 |
+
um_el(
|
553 |
+
wp.editor.InspectorControls,
|
554 |
+
{},
|
555 |
+
um_el(
|
556 |
+
UmPanelBody,
|
557 |
+
{
|
558 |
+
title: i18n.__( 'Shortcode Attribute', 'ultimate-member' )
|
559 |
+
},
|
560 |
+
um_el(
|
561 |
+
UmRangeControl,
|
562 |
+
{
|
563 |
+
label: i18n.__( 'Show the form on the wall?', 'ultimate-member' ),
|
564 |
+
value: props.attributes.wall_post,
|
565 |
+
min: 2,
|
566 |
+
max: 20,
|
567 |
+
onChange: function onChange( value ) {
|
568 |
+
props.setAttributes({ wall_post: value });
|
569 |
+
attributes['wall_post'] = value;
|
570 |
+
umShortcode();
|
571 |
+
}
|
572 |
+
}
|
573 |
+
),
|
574 |
+
um_el(
|
575 |
+
UmToggleControl,
|
576 |
+
{
|
577 |
+
label: i18n.__( 'Show the form on the wall?', 'ultimate-member' ),
|
578 |
+
checked: props.attributes.user_wall,
|
579 |
+
onChange: function onChange( value ) {
|
580 |
+
props.setAttributes({ user_wall: value });
|
581 |
+
attributes['user_wall'] = value;
|
582 |
+
umShortcode();
|
583 |
+
}
|
584 |
+
}
|
585 |
+
)
|
586 |
+
)
|
587 |
+
)
|
588 |
+
]
|
589 |
+
},
|
590 |
+
|
591 |
+
save: function( props ) {
|
592 |
+
|
593 |
+
return um_el(
|
594 |
+
UmRichText.Content,
|
595 |
+
{
|
596 |
+
tagName: 'p',
|
597 |
+
className: props.className,
|
598 |
+
value: props.attributes.content
|
599 |
+
}
|
600 |
+
);
|
601 |
+
}
|
602 |
+
});
|
603 |
+
|
604 |
+
})(
|
605 |
+
window.wp.blocks,
|
606 |
+
window.wp.editor,
|
607 |
+
window.wp.components,
|
608 |
+
window.wp.i18n,
|
609 |
+
window.wp.element
|
610 |
+
);
|
includes/admin/core/class-admin-enqueue.php
CHANGED
@@ -83,6 +83,8 @@ if ( ! class_exists( 'um\admin\core\Admin_Enqueue' ) ) {
|
|
83 |
|
84 |
add_action( 'load-post-new.php', array( &$this, 'enqueue_cpt_scripts' ) );
|
85 |
add_action( 'load-post.php', array( &$this, 'enqueue_cpt_scripts' ) );
|
|
|
|
|
86 |
}
|
87 |
|
88 |
|
@@ -423,6 +425,91 @@ if ( ! class_exists( 'um\admin\core\Admin_Enqueue' ) ) {
|
|
423 |
}
|
424 |
|
425 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
426 |
/**
|
427 |
* Load localize scripts
|
428 |
*/
|
@@ -518,9 +605,10 @@ if ( ! class_exists( 'um\admin\core\Admin_Enqueue' ) ) {
|
|
518 |
global $wp_version;
|
519 |
if ( version_compare( $wp_version, '5.0', '>=' ) && ! empty( $this->post_page ) ) {
|
520 |
$this->load_gutenberg_js();
|
|
|
521 |
}
|
522 |
|
523 |
}
|
524 |
|
525 |
}
|
526 |
-
}
|
83 |
|
84 |
add_action( 'load-post-new.php', array( &$this, 'enqueue_cpt_scripts' ) );
|
85 |
add_action( 'load-post.php', array( &$this, 'enqueue_cpt_scripts' ) );
|
86 |
+
|
87 |
+
add_filter( 'block_categories', array( &$this, 'blocks_category' ), 10, 2 );
|
88 |
}
|
89 |
|
90 |
|
425 |
}
|
426 |
|
427 |
|
428 |
+
/**
|
429 |
+
* Load Gutenberg blocks js
|
430 |
+
*/
|
431 |
+
function load_gutenberg_shortcode_blocks() {
|
432 |
+
|
433 |
+
if ( ! function_exists( 'register_block_type' ) ) {
|
434 |
+
// Gutenberg is not active.
|
435 |
+
return;
|
436 |
+
}
|
437 |
+
|
438 |
+
//disable Gutenberg scripts to avoid the conflicts
|
439 |
+
$disable_script = apply_filters( 'um_disable_blocks_script', false );
|
440 |
+
if ( $disable_script ) {
|
441 |
+
return;
|
442 |
+
}
|
443 |
+
|
444 |
+
wp_register_script( 'um-blocks-shortcode-js', $this->js_url . 'um-admin-blocks-shortcode.js', array( 'wp-i18n', 'wp-blocks', 'wp-components' ), ultimatemember_version, true );
|
445 |
+
wp_set_script_translations( 'um-blocks-shortcode-js', 'ultimate-member' );
|
446 |
+
wp_enqueue_script( 'um-blocks-shortcode-js' );
|
447 |
+
|
448 |
+
$account_settings = array(
|
449 |
+
'password' => array(
|
450 |
+
'label' => __( 'Password', 'ultimate-member' ),
|
451 |
+
'enabled' => UM()->options()->get( 'account_tab_password' ),
|
452 |
+
),
|
453 |
+
'privacy' => array(
|
454 |
+
'label' => __( 'Privacy', 'ultimate-member' ),
|
455 |
+
'enabled' => UM()->options()->get( 'account_tab_privacy' ),
|
456 |
+
),
|
457 |
+
'notifications' => array(
|
458 |
+
'label' => __( 'Notifications', 'ultimate-member' ),
|
459 |
+
'enabled' => UM()->options()->get( 'account_tab_notifications' ),
|
460 |
+
),
|
461 |
+
'delete' => array(
|
462 |
+
'label' => __( 'Delete', 'ultimate-member' ),
|
463 |
+
'enabled' => UM()->options()->get( 'account_tab_delete' ),
|
464 |
+
),
|
465 |
+
);
|
466 |
+
wp_localize_script( 'um-blocks-shortcode-js', 'um_account_settings', $account_settings );
|
467 |
+
|
468 |
+
/**
|
469 |
+
* create gutenberg blocks
|
470 |
+
*/
|
471 |
+
register_block_type( 'um-block/um-user-profile-wall', array(
|
472 |
+
'editor_script' => 'um-blocks-shortcode-js',
|
473 |
+
) );
|
474 |
+
|
475 |
+
register_block_type( 'um-block/um-forms', array(
|
476 |
+
'editor_script' => 'um-blocks-shortcode-js',
|
477 |
+
) );
|
478 |
+
|
479 |
+
register_block_type( 'um-block/um-member-directories', array(
|
480 |
+
'editor_script' => 'um-blocks-shortcode-js',
|
481 |
+
) );
|
482 |
+
|
483 |
+
register_block_type( 'um-block/um-password-reset', array(
|
484 |
+
'editor_script' => 'um-blocks-shortcode-js',
|
485 |
+
) );
|
486 |
+
|
487 |
+
register_block_type( 'um-block/um-account', array(
|
488 |
+
'editor_script' => 'um-blocks-shortcode-js',
|
489 |
+
) );
|
490 |
+
}
|
491 |
+
|
492 |
+
|
493 |
+
/**
|
494 |
+
* Add Gutenberg category for UM shortcodes
|
495 |
+
*
|
496 |
+
* @param array $categories
|
497 |
+
* @param $post
|
498 |
+
*
|
499 |
+
* @return array
|
500 |
+
*/
|
501 |
+
function blocks_category( $categories, $post ) {
|
502 |
+
return array_merge(
|
503 |
+
$categories,
|
504 |
+
array(
|
505 |
+
array(
|
506 |
+
'slug' => 'um-blocks',
|
507 |
+
'title' => __( 'Ultimate Member Blocks', 'ultimate-member' ),
|
508 |
+
),
|
509 |
+
)
|
510 |
+
);
|
511 |
+
}
|
512 |
+
|
513 |
/**
|
514 |
* Load localize scripts
|
515 |
*/
|
605 |
global $wp_version;
|
606 |
if ( version_compare( $wp_version, '5.0', '>=' ) && ! empty( $this->post_page ) ) {
|
607 |
$this->load_gutenberg_js();
|
608 |
+
$this->load_gutenberg_shortcode_blocks();
|
609 |
}
|
610 |
|
611 |
}
|
612 |
|
613 |
}
|
614 |
+
}
|
includes/admin/core/class-admin-forms.php
CHANGED
@@ -381,6 +381,10 @@ if ( ! class_exists( 'um\admin\core\Admin_Forms' ) ) {
|
|
381 |
'field_id' => $field_data['id']
|
382 |
);
|
383 |
|
|
|
|
|
|
|
|
|
384 |
$data_attr = '';
|
385 |
foreach ( $data as $key => $value ) {
|
386 |
$data_attr .= " data-{$key}=\"{$value}\" ";
|
381 |
'field_id' => $field_data['id']
|
382 |
);
|
383 |
|
384 |
+
if( ! empty( $field_data['attr'] ) && is_array( $field_data['attr'] ) ){
|
385 |
+
$data = array_merge( $data, $field_data['attr'] );
|
386 |
+
}
|
387 |
+
|
388 |
$data_attr = '';
|
389 |
foreach ( $data as $key => $value ) {
|
390 |
$data_attr .= " data-{$key}=\"{$value}\" ";
|
includes/admin/core/class-admin-notices.php
CHANGED
@@ -404,7 +404,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Notices' ) ) {
|
|
404 |
break;
|
405 |
|
406 |
case 'got_updates':
|
407 |
-
$messages[0]['content'] = __( 'You
|
408 |
break;
|
409 |
|
410 |
case 'often_updates':
|
404 |
break;
|
405 |
|
406 |
case 'got_updates':
|
407 |
+
$messages[0]['content'] = __( 'You have the latest updates.', 'ultimate-member' );
|
408 |
break;
|
409 |
|
410 |
case 'often_updates':
|
includes/admin/core/class-admin-settings.php
CHANGED
@@ -492,7 +492,13 @@ if ( ! class_exists( 'um\admin\core\Admin_Settings' ) ) {
|
|
492 |
'id' => 'account_email',
|
493 |
'type' => 'checkbox',
|
494 |
'label' => __( 'Allow users to change e-mail','ultimate-member' ),
|
495 |
-
'tooltip' => __('Whether to allow users changing their email in account page.','ultimate-member'),
|
|
|
|
|
|
|
|
|
|
|
|
|
496 |
),
|
497 |
array(
|
498 |
'id' => 'account_hide_in_directory',
|
@@ -2286,7 +2292,6 @@ Use Gravatars: <?php echo $this->info_value( UM()->options()->get('use_grava
|
|
2286 |
<?php if( UM()->options()->get('use_gravatars') ): ?>Gravatar builtin image: <?php echo UM()->options()->get('use_um_gravatar_default_builtin_image') . "\n"; ?>
|
2287 |
UM Avatar as blank Gravatar: <?php echo $this->info_value( UM()->options()->get('use_um_gravatar_default_image'), 'yesno', true ); ?><?php endif; ?>
|
2288 |
Require a strong password: <?php echo $this->info_value( UM()->options()->get('reset_require_strongpass'), 'onoff', true ); ?>
|
2289 |
-
Editable primary email field in profile view: <?php echo $this->info_value( UM()->options()->get('editable_primary_email_in_profile'), 'onoff', true ); ?>
|
2290 |
|
2291 |
|
2292 |
--- UM Access Configuration ---
|
492 |
'id' => 'account_email',
|
493 |
'type' => 'checkbox',
|
494 |
'label' => __( 'Allow users to change e-mail','ultimate-member' ),
|
495 |
+
'tooltip' => __( 'Whether to allow users changing their email in account page.', 'ultimate-member' ),
|
496 |
+
),
|
497 |
+
array(
|
498 |
+
'id' => 'account_general_password',
|
499 |
+
'type' => 'checkbox',
|
500 |
+
'label' => __( 'Password is required?','ultimate-member' ),
|
501 |
+
'tooltip' => __( 'Password is required to save account data.', 'ultimate-member' ),
|
502 |
),
|
503 |
array(
|
504 |
'id' => 'account_hide_in_directory',
|
2292 |
<?php if( UM()->options()->get('use_gravatars') ): ?>Gravatar builtin image: <?php echo UM()->options()->get('use_um_gravatar_default_builtin_image') . "\n"; ?>
|
2293 |
UM Avatar as blank Gravatar: <?php echo $this->info_value( UM()->options()->get('use_um_gravatar_default_image'), 'yesno', true ); ?><?php endif; ?>
|
2294 |
Require a strong password: <?php echo $this->info_value( UM()->options()->get('reset_require_strongpass'), 'onoff', true ); ?>
|
|
|
2295 |
|
2296 |
|
2297 |
--- UM Access Configuration ---
|
includes/admin/core/packages/2.0-beta1/styles.php
CHANGED
@@ -248,7 +248,9 @@ if ( $form_field_label ) {
|
|
248 |
.um .um-field-label {
|
249 |
color: $form_field_label;
|
250 |
}
|
251 |
-
|
|
|
|
|
252 |
}
|
253 |
|
254 |
$form_border = UM()->options()->get( 'form_border' );
|
248 |
.um .um-field-label {
|
249 |
color: $form_field_label;
|
250 |
}
|
251 |
+
.um .um-row.um-customized-row .um-field-label {
|
252 |
+
color: inherit;
|
253 |
+
} ";
|
254 |
}
|
255 |
|
256 |
$form_border = UM()->options()->get( 'form_border' );
|
includes/class-config.php
CHANGED
@@ -498,6 +498,7 @@ if ( ! class_exists( 'um\Config' ) ) {
|
|
498 |
'account_name_disable' => 0,
|
499 |
'account_name_require' => 1,
|
500 |
'account_email' => 1,
|
|
|
501 |
'account_hide_in_directory' => 1,
|
502 |
'account_require_strongpass' => 0,
|
503 |
'photo_thumb_sizes' => array( 40, 80, 190 ),
|
498 |
'account_name_disable' => 0,
|
499 |
'account_name_require' => 1,
|
500 |
'account_email' => 1,
|
501 |
+
'account_general_password' => 0,
|
502 |
'account_hide_in_directory' => 1,
|
503 |
'account_require_strongpass' => 0,
|
504 |
'photo_thumb_sizes' => array( 40, 80, 190 ),
|
includes/core/class-access.php
CHANGED
@@ -556,10 +556,11 @@ if ( ! class_exists( 'um\core\Access' ) ) {
|
|
556 |
$restriction = get_post_meta( $post->ID, 'um_content_restriction', true );
|
557 |
|
558 |
if ( ! empty( $restriction['_um_custom_access_settings'] ) ) {
|
559 |
-
if ( ! isset( $restriction['_um_accessible'] ) )
|
560 |
return false;
|
561 |
-
else
|
562 |
return $restriction;
|
|
|
563 |
}
|
564 |
}
|
565 |
|
@@ -573,8 +574,9 @@ if ( ! class_exists( 'um\core\Access' ) ) {
|
|
573 |
$terms = array();
|
574 |
if ( ! empty( $taxonomies ) ) {
|
575 |
foreach ( $taxonomies as $taxonomy ) {
|
576 |
-
if ( empty( $restricted_taxonomies[$taxonomy] ) )
|
577 |
continue;
|
|
|
578 |
|
579 |
$terms = array_merge( $terms, wp_get_post_terms( $post->ID, $taxonomy, array( 'fields' => 'ids' ) ) );
|
580 |
}
|
@@ -585,10 +587,11 @@ if ( ! class_exists( 'um\core\Access' ) ) {
|
|
585 |
$restriction = get_term_meta( $term_id, 'um_content_restriction', true );
|
586 |
|
587 |
if ( ! empty( $restriction['_um_custom_access_settings'] ) ) {
|
588 |
-
if ( ! isset( $restriction['_um_accessible'] ) || '0' == $restriction['_um_accessible'] )
|
589 |
continue;
|
590 |
-
else
|
591 |
return $restriction;
|
|
|
592 |
}
|
593 |
}
|
594 |
|
@@ -610,11 +613,18 @@ if ( ! class_exists( 'um\core\Access' ) ) {
|
|
610 |
$filtered_posts = array();
|
611 |
|
612 |
//if empty
|
613 |
-
if ( empty( $posts ) )
|
614 |
return $posts;
|
|
|
615 |
|
616 |
$restricted_global_message = UM()->options()->get( 'restricted_access_message' );
|
617 |
|
|
|
|
|
|
|
|
|
|
|
|
|
618 |
//other filter
|
619 |
foreach ( $posts as $post ) {
|
620 |
|
@@ -631,12 +641,6 @@ if ( ! class_exists( 'um\core\Access' ) ) {
|
|
631 |
continue;
|
632 |
}
|
633 |
|
634 |
-
if ( is_object( $query ) ) {
|
635 |
-
$is_singular = $query->is_singular();
|
636 |
-
} else {
|
637 |
-
$is_singular = ! empty( $query->is_singular ) ? true : false;
|
638 |
-
}
|
639 |
-
|
640 |
//post is private
|
641 |
if ( '0' == $restriction['_um_accessible'] ) {
|
642 |
$this->singular_page = true;
|
@@ -707,6 +711,8 @@ if ( ! class_exists( 'um\core\Access' ) ) {
|
|
707 |
*/
|
708 |
do_action( 'um_access_fix_external_post_content' );
|
709 |
|
|
|
|
|
710 |
$filtered_posts[] = $post;
|
711 |
continue;
|
712 |
} elseif ( '1' == $restriction['_um_noaccess_action'] ) {
|
@@ -821,6 +827,8 @@ if ( ! class_exists( 'um\core\Access' ) ) {
|
|
821 |
*/
|
822 |
do_action( 'um_access_fix_external_post_content' );
|
823 |
|
|
|
|
|
824 |
$filtered_posts[] = $post;
|
825 |
continue;
|
826 |
} elseif ( '1' == $restriction['_um_noaccess_action'] ) {
|
@@ -846,6 +854,7 @@ if ( ! class_exists( 'um\core\Access' ) ) {
|
|
846 |
}
|
847 |
|
848 |
} else {
|
|
|
849 |
if ( empty( $is_singular ) ) {
|
850 |
if ( empty( $restriction['_um_access_hide_from_queries'] ) ) {
|
851 |
|
@@ -907,6 +916,8 @@ if ( ! class_exists( 'um\core\Access' ) ) {
|
|
907 |
*/
|
908 |
do_action( 'um_access_fix_external_post_content' );
|
909 |
|
|
|
|
|
910 |
$filtered_posts[] = $post;
|
911 |
continue;
|
912 |
} elseif ( '1' == $restriction['_um_noaccess_action'] ) {
|
@@ -937,6 +948,24 @@ if ( ! class_exists( 'um\core\Access' ) ) {
|
|
937 |
}
|
938 |
|
939 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
940 |
/**
|
941 |
* @param $content
|
942 |
*
|
@@ -1008,57 +1037,57 @@ if ( ! class_exists( 'um\core\Access' ) ) {
|
|
1008 |
/**
|
1009 |
* Disable comments if user has not permission to access this post
|
1010 |
*
|
1011 |
-
* @param
|
1012 |
* @param int $post_id
|
1013 |
* @return boolean
|
1014 |
*/
|
1015 |
-
public function disable_comments_open_number( $
|
1016 |
static $cache_number = array();
|
1017 |
|
1018 |
if ( isset( $cache_number[ $post_id ] ) ) {
|
1019 |
-
return $cache_number[ $post_id ]
|
1020 |
}
|
1021 |
|
1022 |
$post = get_post( $post_id );
|
1023 |
$restriction = $this->get_post_privacy_settings( $post );
|
1024 |
|
1025 |
if ( ! $restriction ) {
|
1026 |
-
$cache_number[ $post_id ] = $
|
1027 |
-
return $
|
1028 |
}
|
1029 |
|
1030 |
if ( '1' == $restriction['_um_accessible'] ) {
|
1031 |
|
1032 |
if ( is_user_logged_in() ) {
|
1033 |
if ( ! current_user_can( 'administrator' ) ) {
|
1034 |
-
$
|
1035 |
}
|
1036 |
}
|
1037 |
|
1038 |
} elseif ( '2' == $restriction['_um_accessible'] ) {
|
1039 |
if ( ! is_user_logged_in() ) {
|
1040 |
-
$
|
1041 |
} else {
|
1042 |
if ( ! current_user_can( 'administrator' ) ) {
|
1043 |
$custom_restrict = $this->um_custom_restriction( $restriction );
|
1044 |
|
1045 |
if ( empty( $restriction['_um_access_roles'] ) || false === array_search( '1', $restriction['_um_access_roles'] ) ) {
|
1046 |
if ( ! $custom_restrict ) {
|
1047 |
-
$
|
1048 |
}
|
1049 |
} else {
|
1050 |
$user_can = $this->user_can( get_current_user_id(), $restriction['_um_access_roles'] );
|
1051 |
|
1052 |
if ( ! isset( $user_can ) || ! $user_can || ! $custom_restrict ) {
|
1053 |
-
$
|
1054 |
}
|
1055 |
}
|
1056 |
}
|
1057 |
}
|
1058 |
}
|
1059 |
|
1060 |
-
$cache_number[ $post_id ] = $
|
1061 |
-
return $
|
1062 |
}
|
1063 |
|
1064 |
|
556 |
$restriction = get_post_meta( $post->ID, 'um_content_restriction', true );
|
557 |
|
558 |
if ( ! empty( $restriction['_um_custom_access_settings'] ) ) {
|
559 |
+
if ( ! isset( $restriction['_um_accessible'] ) ) {
|
560 |
return false;
|
561 |
+
} else {
|
562 |
return $restriction;
|
563 |
+
}
|
564 |
}
|
565 |
}
|
566 |
|
574 |
$terms = array();
|
575 |
if ( ! empty( $taxonomies ) ) {
|
576 |
foreach ( $taxonomies as $taxonomy ) {
|
577 |
+
if ( empty( $restricted_taxonomies[ $taxonomy ] ) ) {
|
578 |
continue;
|
579 |
+
}
|
580 |
|
581 |
$terms = array_merge( $terms, wp_get_post_terms( $post->ID, $taxonomy, array( 'fields' => 'ids' ) ) );
|
582 |
}
|
587 |
$restriction = get_term_meta( $term_id, 'um_content_restriction', true );
|
588 |
|
589 |
if ( ! empty( $restriction['_um_custom_access_settings'] ) ) {
|
590 |
+
if ( ! isset( $restriction['_um_accessible'] ) || '0' == $restriction['_um_accessible'] ) {
|
591 |
continue;
|
592 |
+
} else {
|
593 |
return $restriction;
|
594 |
+
}
|
595 |
}
|
596 |
}
|
597 |
|
613 |
$filtered_posts = array();
|
614 |
|
615 |
//if empty
|
616 |
+
if ( empty( $posts ) ) {
|
617 |
return $posts;
|
618 |
+
}
|
619 |
|
620 |
$restricted_global_message = UM()->options()->get( 'restricted_access_message' );
|
621 |
|
622 |
+
if ( is_object( $query ) ) {
|
623 |
+
$is_singular = $query->is_singular();
|
624 |
+
} else {
|
625 |
+
$is_singular = ! empty( $query->is_singular ) ? true : false;
|
626 |
+
}
|
627 |
+
|
628 |
//other filter
|
629 |
foreach ( $posts as $post ) {
|
630 |
|
641 |
continue;
|
642 |
}
|
643 |
|
|
|
|
|
|
|
|
|
|
|
|
|
644 |
//post is private
|
645 |
if ( '0' == $restriction['_um_accessible'] ) {
|
646 |
$this->singular_page = true;
|
711 |
*/
|
712 |
do_action( 'um_access_fix_external_post_content' );
|
713 |
|
714 |
+
add_filter( 'single_template', array( &$this, 'woocommerce_template' ), 9999999, 1 );
|
715 |
+
|
716 |
$filtered_posts[] = $post;
|
717 |
continue;
|
718 |
} elseif ( '1' == $restriction['_um_noaccess_action'] ) {
|
827 |
*/
|
828 |
do_action( 'um_access_fix_external_post_content' );
|
829 |
|
830 |
+
add_filter( 'single_template', array( &$this, 'woocommerce_template' ), 9999999, 1 );
|
831 |
+
|
832 |
$filtered_posts[] = $post;
|
833 |
continue;
|
834 |
} elseif ( '1' == $restriction['_um_noaccess_action'] ) {
|
854 |
}
|
855 |
|
856 |
} else {
|
857 |
+
|
858 |
if ( empty( $is_singular ) ) {
|
859 |
if ( empty( $restriction['_um_access_hide_from_queries'] ) ) {
|
860 |
|
916 |
*/
|
917 |
do_action( 'um_access_fix_external_post_content' );
|
918 |
|
919 |
+
add_filter( 'single_template', array( &$this, 'woocommerce_template' ), 9999999, 1 );
|
920 |
+
|
921 |
$filtered_posts[] = $post;
|
922 |
continue;
|
923 |
} elseif ( '1' == $restriction['_um_noaccess_action'] ) {
|
948 |
}
|
949 |
|
950 |
|
951 |
+
/**
|
952 |
+
* @param string $single_template
|
953 |
+
*
|
954 |
+
* @return string
|
955 |
+
*/
|
956 |
+
function woocommerce_template( $single_template ) {
|
957 |
+
if ( ! UM()->dependencies()->woocommerce_active_check() ) {
|
958 |
+
return $single_template;
|
959 |
+
}
|
960 |
+
|
961 |
+
if ( is_product() ) {
|
962 |
+
remove_filter( 'template_include', array( 'WC_Template_Loader', 'template_loader' ) );
|
963 |
+
}
|
964 |
+
|
965 |
+
return $single_template;
|
966 |
+
}
|
967 |
+
|
968 |
+
|
969 |
/**
|
970 |
* @param $content
|
971 |
*
|
1037 |
/**
|
1038 |
* Disable comments if user has not permission to access this post
|
1039 |
*
|
1040 |
+
* @param int $count
|
1041 |
* @param int $post_id
|
1042 |
* @return boolean
|
1043 |
*/
|
1044 |
+
public function disable_comments_open_number( $count, $post_id ) {
|
1045 |
static $cache_number = array();
|
1046 |
|
1047 |
if ( isset( $cache_number[ $post_id ] ) ) {
|
1048 |
+
return $cache_number[ $post_id ];
|
1049 |
}
|
1050 |
|
1051 |
$post = get_post( $post_id );
|
1052 |
$restriction = $this->get_post_privacy_settings( $post );
|
1053 |
|
1054 |
if ( ! $restriction ) {
|
1055 |
+
$cache_number[ $post_id ] = $count;
|
1056 |
+
return $count;
|
1057 |
}
|
1058 |
|
1059 |
if ( '1' == $restriction['_um_accessible'] ) {
|
1060 |
|
1061 |
if ( is_user_logged_in() ) {
|
1062 |
if ( ! current_user_can( 'administrator' ) ) {
|
1063 |
+
$count = 0;
|
1064 |
}
|
1065 |
}
|
1066 |
|
1067 |
} elseif ( '2' == $restriction['_um_accessible'] ) {
|
1068 |
if ( ! is_user_logged_in() ) {
|
1069 |
+
$count = 0;
|
1070 |
} else {
|
1071 |
if ( ! current_user_can( 'administrator' ) ) {
|
1072 |
$custom_restrict = $this->um_custom_restriction( $restriction );
|
1073 |
|
1074 |
if ( empty( $restriction['_um_access_roles'] ) || false === array_search( '1', $restriction['_um_access_roles'] ) ) {
|
1075 |
if ( ! $custom_restrict ) {
|
1076 |
+
$count = 0;
|
1077 |
}
|
1078 |
} else {
|
1079 |
$user_can = $this->user_can( get_current_user_id(), $restriction['_um_access_roles'] );
|
1080 |
|
1081 |
if ( ! isset( $user_can ) || ! $user_can || ! $custom_restrict ) {
|
1082 |
+
$count = 0;
|
1083 |
}
|
1084 |
}
|
1085 |
}
|
1086 |
}
|
1087 |
}
|
1088 |
|
1089 |
+
$cache_number[ $post_id ] = $count;
|
1090 |
+
return $count;
|
1091 |
}
|
1092 |
|
1093 |
|
includes/core/class-account.php
CHANGED
@@ -65,13 +65,15 @@ if ( ! class_exists( 'um\core\Account' ) ) {
|
|
65 |
|
66 |
foreach ( $arr as $id => $info ) {
|
67 |
|
68 |
-
if ( ! empty( $args['tab'] ) && $id != $args['tab'] )
|
69 |
continue;
|
|
|
70 |
|
71 |
$output = $this->get_tab_fields( $id, $args );
|
72 |
|
73 |
-
if ( ! empty( $output ) )
|
74 |
-
$tabs_structed[$id] = $info;
|
|
|
75 |
|
76 |
}
|
77 |
|
@@ -226,6 +228,8 @@ if ( ! class_exists( 'um\core\Account' ) ) {
|
|
226 |
|
227 |
$this->init_tabs( $args );
|
228 |
|
|
|
|
|
229 |
/**
|
230 |
* UM hook
|
231 |
*
|
@@ -369,7 +373,6 @@ if ( ! class_exists( 'um\core\Account' ) ) {
|
|
369 |
}
|
370 |
|
371 |
if ( ! isset( UM()->form()->errors ) ) {
|
372 |
-
|
373 |
/**
|
374 |
* UM hook
|
375 |
*
|
@@ -517,8 +520,9 @@ if ( ! class_exists( 'um\core\Account' ) ) {
|
|
517 |
UM()->fields()->editing = true;
|
518 |
|
519 |
if ( ! empty( $this->tab_output[$id]['content'] ) && ! empty( $this->tab_output[$id]['hash'] ) &&
|
520 |
-
$this->tab_output[$id]['hash'] == md5( json_encode( $shortcode_args ) ) )
|
521 |
return $this->tab_output[$id]['content'];
|
|
|
522 |
|
523 |
switch ( $id ) {
|
524 |
|
@@ -547,7 +551,7 @@ if ( ! class_exists( 'um\core\Account' ) ) {
|
|
547 |
* ?>
|
548 |
*/
|
549 |
$args = apply_filters( 'um_account_tab_privacy_fields', $args, $shortcode_args );
|
550 |
-
|
551 |
$fields = UM()->builtin()->get_specific_fields( $args );
|
552 |
$fields = $this->account_secure_fields( $fields, $id );
|
553 |
$fields = $this->filter_fields_by_attrs( $fields, $shortcode_args );
|
@@ -606,6 +610,10 @@ if ( ! class_exists( 'um\core\Account' ) ) {
|
|
606 |
$args = str_replace(',user_email','', $args );
|
607 |
}
|
608 |
|
|
|
|
|
|
|
|
|
609 |
/**
|
610 |
* UM hook
|
611 |
*
|
65 |
|
66 |
foreach ( $arr as $id => $info ) {
|
67 |
|
68 |
+
if ( ! empty( $args['tab'] ) && $id != $args['tab'] ) {
|
69 |
continue;
|
70 |
+
}
|
71 |
|
72 |
$output = $this->get_tab_fields( $id, $args );
|
73 |
|
74 |
+
if ( ! empty( $output ) ) {
|
75 |
+
$tabs_structed[ $id ] = $info;
|
76 |
+
}
|
77 |
|
78 |
}
|
79 |
|
228 |
|
229 |
$this->init_tabs( $args );
|
230 |
|
231 |
+
$this->current_tab = apply_filters( 'um_change_default_tab', $this->current_tab, $args );
|
232 |
+
|
233 |
/**
|
234 |
* UM hook
|
235 |
*
|
373 |
}
|
374 |
|
375 |
if ( ! isset( UM()->form()->errors ) ) {
|
|
|
376 |
/**
|
377 |
* UM hook
|
378 |
*
|
520 |
UM()->fields()->editing = true;
|
521 |
|
522 |
if ( ! empty( $this->tab_output[$id]['content'] ) && ! empty( $this->tab_output[$id]['hash'] ) &&
|
523 |
+
$this->tab_output[$id]['hash'] == md5( json_encode( $shortcode_args ) ) ) {
|
524 |
return $this->tab_output[$id]['content'];
|
525 |
+
}
|
526 |
|
527 |
switch ( $id ) {
|
528 |
|
551 |
* ?>
|
552 |
*/
|
553 |
$args = apply_filters( 'um_account_tab_privacy_fields', $args, $shortcode_args );
|
554 |
+
|
555 |
$fields = UM()->builtin()->get_specific_fields( $args );
|
556 |
$fields = $this->account_secure_fields( $fields, $id );
|
557 |
$fields = $this->filter_fields_by_attrs( $fields, $shortcode_args );
|
610 |
$args = str_replace(',user_email','', $args );
|
611 |
}
|
612 |
|
613 |
+
if ( UM()->options()->get( 'account_general_password' ) ) {
|
614 |
+
$args .= ',single_user_password';
|
615 |
+
}
|
616 |
+
|
617 |
/**
|
618 |
* UM hook
|
619 |
*
|
includes/core/class-ajax-common.php
CHANGED
@@ -32,6 +32,7 @@ if ( ! class_exists( 'um\core\AJAX_Common' ) ) {
|
|
32 |
}
|
33 |
|
34 |
add_action( 'wp_ajax_um_select_options', array( UM()->form(), 'ajax_select_options' ) );
|
|
|
35 |
|
36 |
add_action( 'wp_ajax_um_delete_profile_photo', array( UM()->profile(), 'ajax_delete_profile_photo' ) );
|
37 |
add_action( 'wp_ajax_um_delete_cover_photo', array( UM()->profile(), 'ajax_delete_cover_photo' ) );
|
32 |
}
|
33 |
|
34 |
add_action( 'wp_ajax_um_select_options', array( UM()->form(), 'ajax_select_options' ) );
|
35 |
+
add_action( 'wp_ajax_nopriv_um_select_options', array( UM()->form(), 'ajax_select_options' ) );
|
36 |
|
37 |
add_action( 'wp_ajax_um_delete_profile_photo', array( UM()->profile(), 'ajax_delete_profile_photo' ) );
|
38 |
add_action( 'wp_ajax_um_delete_cover_photo', array( UM()->profile(), 'ajax_delete_cover_photo' ) );
|
includes/core/class-common.php
CHANGED
@@ -73,6 +73,7 @@ if ( ! class_exists( 'um\core\Common' ) ) {
|
|
73 |
'show_ui' => true,
|
74 |
'show_in_menu' => false,
|
75 |
'public' => false,
|
|
|
76 |
'supports' => array('title')
|
77 |
) );
|
78 |
|
@@ -102,6 +103,7 @@ if ( ! class_exists( 'um\core\Common' ) ) {
|
|
102 |
'show_ui' => true,
|
103 |
'show_in_menu' => false,
|
104 |
'public' => false,
|
|
|
105 |
'supports' => array('title')
|
106 |
) );
|
107 |
|
@@ -109,5 +111,4 @@ if ( ! class_exists( 'um\core\Common' ) ) {
|
|
109 |
|
110 |
}
|
111 |
}
|
112 |
-
|
113 |
}
|
73 |
'show_ui' => true,
|
74 |
'show_in_menu' => false,
|
75 |
'public' => false,
|
76 |
+
'show_in_rest' => true,
|
77 |
'supports' => array('title')
|
78 |
) );
|
79 |
|
103 |
'show_ui' => true,
|
104 |
'show_in_menu' => false,
|
105 |
'public' => false,
|
106 |
+
'show_in_rest' => true,
|
107 |
'supports' => array('title')
|
108 |
) );
|
109 |
|
111 |
|
112 |
}
|
113 |
}
|
|
|
114 |
}
|
includes/core/class-fields.php
CHANGED
@@ -188,7 +188,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
|
|
188 |
$condition_fields = get_option( 'um_fields' );
|
189 |
|
190 |
if( ! is_array( $condition_fields ) ) $condition_fields = array();
|
191 |
-
|
192 |
foreach ( $condition_fields as $key => $value ) {
|
193 |
$deleted_field = array_search( $id, $value );
|
194 |
|
@@ -843,6 +843,9 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
|
|
843 |
if ( ! isset( UM()->form()->post_form[ $key ] ) ) {
|
844 |
|
845 |
$field_value = um_user( $key );
|
|
|
|
|
|
|
846 |
|
847 |
if ( $key == 'role' ) {
|
848 |
|
@@ -906,11 +909,15 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
|
|
906 |
return true;
|
907 |
}
|
908 |
|
|
|
|
|
|
|
|
|
909 |
if ( $field_value && $this->editing == true && ! is_array( $field_value ) && $field_value == $value ) {
|
910 |
return true;
|
911 |
}
|
912 |
|
913 |
-
if ( $field_value && $this->editing == true && ! is_array( $field_value ) && html_entity_decode( $field_value ) == html_entity_decode( $value )) {
|
914 |
return true;
|
915 |
}
|
916 |
|
@@ -1669,25 +1676,26 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
|
|
1669 |
$disabled = '';
|
1670 |
}
|
1671 |
}
|
1672 |
-
|
1673 |
}
|
1674 |
|
1675 |
if ( ! isset( $data['autocomplete'] ) ) {
|
1676 |
$autocomplete = 'off';
|
1677 |
}
|
|
|
1678 |
um_fetch_user( get_current_user_id() );
|
1679 |
-
if (!um_can_view_field( $data ))
|
1680 |
-
|
|
|
|
|
|
|
|
|
1681 |
um_fetch_user( $_um_profile_id );
|
1682 |
|
1683 |
// fields that need to be disabled in edit mode (profile)
|
1684 |
$arr_restricted_fields = array( 'user_email', 'username', 'user_login', 'user_password' );
|
|
|
1685 |
|
1686 |
-
if (
|
1687 |
-
unset( $arr_restricted_fields[0] ); // remove user_email
|
1688 |
-
}
|
1689 |
-
|
1690 |
-
if (in_array( $key, $arr_restricted_fields ) && $this->editing == true && $this->set_mode == 'profile') {
|
1691 |
return;
|
1692 |
}
|
1693 |
|
@@ -4012,46 +4020,67 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
|
|
4012 |
$css_text_color = '';
|
4013 |
|
4014 |
// row css rules
|
4015 |
-
if (
|
4016 |
-
|
|
|
|
|
4017 |
$css_margin = 'margin: ' . $margin . ';';
|
4018 |
} else {
|
4019 |
$css_margin = 'margin: 0 0 30px 0;';
|
4020 |
}
|
4021 |
|
4022 |
-
if (
|
4023 |
-
|
4024 |
-
|
4025 |
-
if (
|
4026 |
-
|
4027 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4028 |
|
4029 |
// show the heading
|
4030 |
-
if ($heading) {
|
4031 |
|
4032 |
-
|
4033 |
-
|
4034 |
-
|
4035 |
-
if ($heading_background_color) {
|
4036 |
-
$css_heading_background_color = 'background-color: ' . $heading_background_color . ';';
|
4037 |
$css_heading_padding = 'padding: 10px 15px;';
|
4038 |
}
|
4039 |
|
4040 |
-
|
4041 |
-
|
|
|
|
|
|
|
4042 |
|
4043 |
-
$output .= '<div class="um-row-heading" style="' . $
|
4044 |
|
4045 |
-
if (
|
4046 |
-
$output .= '<span class="um-row-heading-icon"><i class="' . $icon . '"></i></span>';
|
|
|
|
|
|
|
4047 |
}
|
4048 |
|
4049 |
-
$output .=
|
|
|
|
|
|
|
4050 |
|
4051 |
} else {
|
4052 |
|
4053 |
// no heading
|
4054 |
-
|
4055 |
|
4056 |
}
|
4057 |
|
188 |
$condition_fields = get_option( 'um_fields' );
|
189 |
|
190 |
if( ! is_array( $condition_fields ) ) $condition_fields = array();
|
191 |
+
|
192 |
foreach ( $condition_fields as $key => $value ) {
|
193 |
$deleted_field = array_search( $id, $value );
|
194 |
|
843 |
if ( ! isset( UM()->form()->post_form[ $key ] ) ) {
|
844 |
|
845 |
$field_value = um_user( $key );
|
846 |
+
if ( ! $field_value ) {
|
847 |
+
$field_value = 0;
|
848 |
+
}
|
849 |
|
850 |
if ( $key == 'role' ) {
|
851 |
|
909 |
return true;
|
910 |
}
|
911 |
|
912 |
+
if ( $field_value == 0 && $this->editing == true && ! is_array( $field_value ) && $field_value === $value ) {
|
913 |
+
return true;
|
914 |
+
}
|
915 |
+
|
916 |
if ( $field_value && $this->editing == true && ! is_array( $field_value ) && $field_value == $value ) {
|
917 |
return true;
|
918 |
}
|
919 |
|
920 |
+
if ( $field_value && $this->editing == true && ! is_array( $field_value ) && html_entity_decode( $field_value ) == html_entity_decode( $value ) ) {
|
921 |
return true;
|
922 |
}
|
923 |
|
1676 |
$disabled = '';
|
1677 |
}
|
1678 |
}
|
|
|
1679 |
}
|
1680 |
|
1681 |
if ( ! isset( $data['autocomplete'] ) ) {
|
1682 |
$autocomplete = 'off';
|
1683 |
}
|
1684 |
+
|
1685 |
um_fetch_user( get_current_user_id() );
|
1686 |
+
if ( ! um_can_view_field( $data ) ) {
|
1687 |
+
return;
|
1688 |
+
}
|
1689 |
+
if ( ! um_can_edit_field( $data ) ) {
|
1690 |
+
return;
|
1691 |
+
}
|
1692 |
um_fetch_user( $_um_profile_id );
|
1693 |
|
1694 |
// fields that need to be disabled in edit mode (profile)
|
1695 |
$arr_restricted_fields = array( 'user_email', 'username', 'user_login', 'user_password' );
|
1696 |
+
$arr_restricted_fields = apply_filters( 'um_user_profile_restricted_edit_fields', $arr_restricted_fields, $key, $data, $_um_profile_id );
|
1697 |
|
1698 |
+
if ( in_array( $key, $arr_restricted_fields ) && $this->editing == true && $this->set_mode == 'profile' ) {
|
|
|
|
|
|
|
|
|
1699 |
return;
|
1700 |
}
|
1701 |
|
4020 |
$css_text_color = '';
|
4021 |
|
4022 |
// row css rules
|
4023 |
+
if ( $padding ) {
|
4024 |
+
$css_padding = 'padding: ' . $padding . ';';
|
4025 |
+
}
|
4026 |
+
if ( $margin ) {
|
4027 |
$css_margin = 'margin: ' . $margin . ';';
|
4028 |
} else {
|
4029 |
$css_margin = 'margin: 0 0 30px 0;';
|
4030 |
}
|
4031 |
|
4032 |
+
if ( $background ) {
|
4033 |
+
$css_background = 'background-color: ' . $background . ';';
|
4034 |
+
}
|
4035 |
+
if ( $borderradius ) {
|
4036 |
+
$css_borderradius = 'border-radius: 0px 0px ' . $borderradius . ' ' . $borderradius . ';';
|
4037 |
+
}
|
4038 |
+
if ( $border ) {
|
4039 |
+
$css_border = 'border-width: ' . $border . ';';
|
4040 |
+
}
|
4041 |
+
if ( $bordercolor ) {
|
4042 |
+
$css_bordercolor = 'border-color: ' . $bordercolor . ';';
|
4043 |
+
}
|
4044 |
+
if ( $borderstyle ) {
|
4045 |
+
$css_borderstyle = 'border-style: ' . $borderstyle . ';';
|
4046 |
+
}
|
4047 |
+
if ( $text_color ) {
|
4048 |
+
$css_text_color = 'color: ' . $text_color . ' !important;';
|
4049 |
+
$css_class .= ' um-customized-row';
|
4050 |
+
}
|
4051 |
|
4052 |
// show the heading
|
4053 |
+
if ( $heading ) {
|
4054 |
|
4055 |
+
if ( ! empty( $heading_background_color ) ) {
|
4056 |
+
$css_heading_background_color = "background-color: $heading_background_color;";
|
|
|
|
|
|
|
4057 |
$css_heading_padding = 'padding: 10px 15px;';
|
4058 |
}
|
4059 |
|
4060 |
+
$css_heading_borderradius = empty( $borderradius ) ? '' : "border-radius: $borderradius $borderradius 0px 0px;";
|
4061 |
+
$css_heading_border = $css_border . $css_borderstyle . $css_bordercolor . $css_heading_borderradius . 'border-bottom-width: 0px;';
|
4062 |
+
$css_heading_margin = $css_margin . 'margin-bottom: 0px;';
|
4063 |
+
$css_heading_text_color = empty( $heading_text_color ) ? '' : "color: $heading_text_color;";
|
4064 |
+
$css_icon_color = empty( $icon_color ) ? '' : "color: $icon_color;";
|
4065 |
|
4066 |
+
$output .= '<div class="um-row-heading" style="' . $css_heading_margin . $css_heading_padding . $css_heading_border . $css_heading_background_color . $css_heading_text_color . '">';
|
4067 |
|
4068 |
+
if ( ! empty( $icon ) ) {
|
4069 |
+
$output .= '<span class="um-row-heading-icon" style="' . $css_icon_color . '"><i class="' . $icon . '"></i></span>';
|
4070 |
+
}
|
4071 |
+
if ( ! empty( $heading_text ) ) {
|
4072 |
+
$output .= htmlspecialchars( $heading_text );
|
4073 |
}
|
4074 |
|
4075 |
+
$output .= '</div>';
|
4076 |
+
|
4077 |
+
$css_border .= 'border-top-width: 0px;';
|
4078 |
+
$css_margin .= 'margin-top: 0px;';
|
4079 |
|
4080 |
} else {
|
4081 |
|
4082 |
// no heading
|
4083 |
+
$css_borderradius = empty( $borderradius ) ? '' : "border-radius: $borderradius;";
|
4084 |
|
4085 |
}
|
4086 |
|
includes/core/class-files.php
CHANGED
@@ -357,7 +357,7 @@ if ( ! class_exists( 'um\core\Files' ) ) {
|
|
357 |
} else {
|
358 |
$ret['error'] = __( 'A theme or plugin compatibility issue', 'ultimate-member' );
|
359 |
}
|
360 |
-
wp_send_json_success( $ret );
|
361 |
}
|
362 |
|
363 |
|
@@ -408,7 +408,7 @@ if ( ! class_exists( 'um\core\Files' ) ) {
|
|
408 |
if ( ! wp_verify_nonce( $nonce, 'um_upload_nonce-'.$timestamp ) && is_user_logged_in() ) {
|
409 |
// This nonce is not valid.
|
410 |
$ret['error'] = 'Invalid nonce';
|
411 |
-
wp_send_json_error( $ret );
|
412 |
|
413 |
}
|
414 |
}
|
@@ -428,14 +428,14 @@ if ( ! class_exists( 'um\core\Files' ) ) {
|
|
428 |
$ret['error'] = $uploaded['error'];
|
429 |
|
430 |
}else{
|
431 |
-
|
432 |
$uploaded_file = $uploaded['handle_upload'];
|
433 |
$ret['url'] = $uploaded_file['file_info']['name'];
|
434 |
$ret['icon'] = UM()->files()->get_fonticon_by_ext( $uploaded_file['file_info']['ext'] );
|
435 |
$ret['icon_bg'] = UM()->files()->get_fonticon_bg_by_ext( $uploaded_file['file_info']['ext'] );
|
436 |
$ret['filename'] = $uploaded_file['file_info']['basename'];
|
437 |
$ret['original_name'] = $uploaded_file['file_info']['original_name'];
|
438 |
-
|
439 |
|
440 |
}
|
441 |
|
@@ -445,8 +445,8 @@ if ( ! class_exists( 'um\core\Files' ) ) {
|
|
445 |
$ret['error'] = __('A theme or plugin compatibility issue','ultimate-member');
|
446 |
}
|
447 |
|
448 |
-
|
449 |
-
wp_send_json_success( $ret );
|
450 |
}
|
451 |
|
452 |
|
@@ -669,7 +669,7 @@ if ( ! class_exists( 'um\core\Files' ) ) {
|
|
669 |
* @return string
|
670 |
*/
|
671 |
function path_only( $file ) {
|
672 |
-
|
673 |
return trailingslashit( dirname( $file ) );
|
674 |
}
|
675 |
|
@@ -796,7 +796,7 @@ if ( ! class_exists( 'um\core\Files' ) ) {
|
|
796 |
* @param $destination
|
797 |
*/
|
798 |
function upload_temp_file( $source, $destination ) {
|
799 |
-
|
800 |
move_uploaded_file( $source, $destination );
|
801 |
}
|
802 |
|
@@ -893,29 +893,29 @@ if ( ! class_exists( 'um\core\Files' ) ) {
|
|
893 |
*
|
894 |
* @return mixed
|
895 |
*/
|
896 |
-
function get_image_data( $file ) {
|
897 |
|
898 |
$finfo = finfo_open( FILEINFO_MIME_TYPE );
|
899 |
-
|
900 |
-
$mime_type = finfo_file( $finfo, $file );
|
901 |
|
902 |
if( function_exists('exif_imagetype') ){
|
903 |
-
|
904 |
$array_exif_image_mimes = array( IMAGETYPE_GIF, IMAGETYPE_JPEG, IMAGETYPE_PNG );
|
905 |
-
|
906 |
$allowed_types = apply_filters('um_image_upload_allowed_exif_mimes', $array_exif_image_mimes );
|
907 |
|
908 |
if( ! in_array( @exif_imagetype( $file ), $allowed_types ) ) {
|
909 |
-
|
910 |
$array['invalid_image'] = true;
|
911 |
|
912 |
return $array;
|
913 |
}
|
914 |
|
915 |
}else{
|
916 |
-
|
917 |
$array_image_mimes = array('image/jpeg','image/png','image/gif');
|
918 |
-
|
919 |
$allowed_types = apply_filters('um_image_upload_allowed_mimes', $array_image_mimes );
|
920 |
|
921 |
if ( ! in_array( $mime_type, $allowed_types ) ) {
|
@@ -931,7 +931,7 @@ if ( ! class_exists( 'um\core\Files' ) ) {
|
|
931 |
|
932 |
$image_data = @getimagesize( $file );
|
933 |
|
934 |
-
$array['image'] = $image_data;
|
935 |
|
936 |
$array['invalid_image'] = false;
|
937 |
|
@@ -940,7 +940,7 @@ if ( ! class_exists( 'um\core\Files' ) ) {
|
|
940 |
$array['width'] = $width;
|
941 |
|
942 |
$array['height'] = $height;
|
943 |
-
|
944 |
$array['ratio'] = $width / $height;
|
945 |
|
946 |
$array['extension'] = $this->get_extension_by_mime_type( $mime_type );
|
@@ -1369,6 +1369,47 @@ if ( ! class_exists( 'um\core\Files' ) ) {
|
|
1369 |
}
|
1370 |
|
1371 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1372 |
/**
|
1373 |
* Format Bytes
|
1374 |
*
|
357 |
} else {
|
358 |
$ret['error'] = __( 'A theme or plugin compatibility issue', 'ultimate-member' );
|
359 |
}
|
360 |
+
wp_send_json_success( $ret );
|
361 |
}
|
362 |
|
363 |
|
408 |
if ( ! wp_verify_nonce( $nonce, 'um_upload_nonce-'.$timestamp ) && is_user_logged_in() ) {
|
409 |
// This nonce is not valid.
|
410 |
$ret['error'] = 'Invalid nonce';
|
411 |
+
wp_send_json_error( $ret );
|
412 |
|
413 |
}
|
414 |
}
|
428 |
$ret['error'] = $uploaded['error'];
|
429 |
|
430 |
}else{
|
431 |
+
|
432 |
$uploaded_file = $uploaded['handle_upload'];
|
433 |
$ret['url'] = $uploaded_file['file_info']['name'];
|
434 |
$ret['icon'] = UM()->files()->get_fonticon_by_ext( $uploaded_file['file_info']['ext'] );
|
435 |
$ret['icon_bg'] = UM()->files()->get_fonticon_bg_by_ext( $uploaded_file['file_info']['ext'] );
|
436 |
$ret['filename'] = $uploaded_file['file_info']['basename'];
|
437 |
$ret['original_name'] = $uploaded_file['file_info']['original_name'];
|
438 |
+
|
439 |
|
440 |
}
|
441 |
|
445 |
$ret['error'] = __('A theme or plugin compatibility issue','ultimate-member');
|
446 |
}
|
447 |
|
448 |
+
|
449 |
+
wp_send_json_success( $ret );
|
450 |
}
|
451 |
|
452 |
|
669 |
* @return string
|
670 |
*/
|
671 |
function path_only( $file ) {
|
672 |
+
|
673 |
return trailingslashit( dirname( $file ) );
|
674 |
}
|
675 |
|
796 |
* @param $destination
|
797 |
*/
|
798 |
function upload_temp_file( $source, $destination ) {
|
799 |
+
|
800 |
move_uploaded_file( $source, $destination );
|
801 |
}
|
802 |
|
893 |
*
|
894 |
* @return mixed
|
895 |
*/
|
896 |
+
function get_image_data( $file ) {
|
897 |
|
898 |
$finfo = finfo_open( FILEINFO_MIME_TYPE );
|
899 |
+
|
900 |
+
$mime_type = finfo_file( $finfo, $file );
|
901 |
|
902 |
if( function_exists('exif_imagetype') ){
|
903 |
+
|
904 |
$array_exif_image_mimes = array( IMAGETYPE_GIF, IMAGETYPE_JPEG, IMAGETYPE_PNG );
|
905 |
+
|
906 |
$allowed_types = apply_filters('um_image_upload_allowed_exif_mimes', $array_exif_image_mimes );
|
907 |
|
908 |
if( ! in_array( @exif_imagetype( $file ), $allowed_types ) ) {
|
909 |
+
|
910 |
$array['invalid_image'] = true;
|
911 |
|
912 |
return $array;
|
913 |
}
|
914 |
|
915 |
}else{
|
916 |
+
|
917 |
$array_image_mimes = array('image/jpeg','image/png','image/gif');
|
918 |
+
|
919 |
$allowed_types = apply_filters('um_image_upload_allowed_mimes', $array_image_mimes );
|
920 |
|
921 |
if ( ! in_array( $mime_type, $allowed_types ) ) {
|
931 |
|
932 |
$image_data = @getimagesize( $file );
|
933 |
|
934 |
+
$array['image'] = $image_data;
|
935 |
|
936 |
$array['invalid_image'] = false;
|
937 |
|
940 |
$array['width'] = $width;
|
941 |
|
942 |
$array['height'] = $height;
|
943 |
+
|
944 |
$array['ratio'] = $width / $height;
|
945 |
|
946 |
$array['extension'] = $this->get_extension_by_mime_type( $mime_type );
|
1369 |
}
|
1370 |
|
1371 |
|
1372 |
+
/**
|
1373 |
+
* Remove old files
|
1374 |
+
* @param string $dir Path to directoty.
|
1375 |
+
* @param int|string $timestamp Unix timestamp or PHP relative time. All older files will be removed.
|
1376 |
+
*/
|
1377 |
+
function remove_old_files( $dir, $timestamp = NULL ) {
|
1378 |
+
|
1379 |
+
$removed_files = array();
|
1380 |
+
|
1381 |
+
if ( empty( $timestamp ) ) {
|
1382 |
+
$timestamp = strtotime( '-1 day' );
|
1383 |
+
}
|
1384 |
+
elseif ( is_string( $timestamp ) && !is_numeric( $timestamp ) ) {
|
1385 |
+
$timestamp = strtotime( $timestamp );
|
1386 |
+
}
|
1387 |
+
|
1388 |
+
if ( $timestamp && is_dir( $dir ) ) {
|
1389 |
+
|
1390 |
+
$files = glob( $dir . '/*' );
|
1391 |
+
|
1392 |
+
foreach ( (array) $files as $file ) {
|
1393 |
+
if ( in_array( wp_basename( $file ), array('.', '..') ) ) {
|
1394 |
+
continue;
|
1395 |
+
}
|
1396 |
+
elseif ( is_dir( $file ) ) {
|
1397 |
+
$this->remove_old_files( $file, $timestamp );
|
1398 |
+
}
|
1399 |
+
elseif ( is_file( $file ) ) {
|
1400 |
+
$fileatime = fileatime( $file );
|
1401 |
+
if ( $fileatime && $fileatime < (int) $timestamp ) {
|
1402 |
+
unlink( $file );
|
1403 |
+
$removed_files[] = $file;
|
1404 |
+
}
|
1405 |
+
}
|
1406 |
+
}
|
1407 |
+
}
|
1408 |
+
|
1409 |
+
return $removed_files;
|
1410 |
+
}
|
1411 |
+
|
1412 |
+
|
1413 |
/**
|
1414 |
* Format Bytes
|
1415 |
*
|
includes/core/class-members.php
CHANGED
@@ -246,11 +246,15 @@ if ( ! class_exists( 'um\core\Members' ) ) {
|
|
246 |
/*if( isset($attrs) && is_array( $attrs['options'] ) ){
|
247 |
asort( $attrs['options'] );
|
248 |
}*/
|
249 |
-
|
|
|
|
|
|
|
|
|
250 |
|
251 |
-
|
252 |
|
253 |
-
|
254 |
|
255 |
<?php foreach ( $attrs['options'] as $k => $v ) {
|
256 |
|
246 |
/*if( isset($attrs) && is_array( $attrs['options'] ) ){
|
247 |
asort( $attrs['options'] );
|
248 |
}*/
|
249 |
+
if ( isset( $attrs['label'] ) ) {
|
250 |
+
$label = $attrs['label'];
|
251 |
+
} else {
|
252 |
+
$label = isset( $attrs['title'] ) ? $attrs['title'] : '';
|
253 |
+
} ?>
|
254 |
|
255 |
+
<select name="<?php echo $filter; ?>" id="<?php echo $filter; ?>" class="um-s1" style="width: 100%" data-placeholder="<?php echo __( stripslashes( $label ), 'ultimate-member' ); ?>" <?php if ( ! empty( $attrs['custom_dropdown_options_source'] ) ) { ?> data-um-parent="<?php echo $attrs['parent_dropdown_relationship']; ?>" data-mebers-directory="yes" data-um-ajax-source="<?php echo $attrs['custom_dropdown_options_source'] ?>"<?php } ?>>
|
256 |
|
257 |
+
<option></option>
|
258 |
|
259 |
<?php foreach ( $attrs['options'] as $k => $v ) {
|
260 |
|
includes/core/class-password.php
CHANGED
@@ -277,8 +277,11 @@ if ( ! class_exists( 'um\core\Password' ) ) {
|
|
277 |
}
|
278 |
|
279 |
if ( um_is_core_page( 'password-reset' ) && isset( $_REQUEST['act'] ) && $_REQUEST['act'] == 'reset_password' ) {
|
|
|
|
|
280 |
list( $rp_path ) = explode( '?', wp_unslash( $_SERVER['REQUEST_URI'] ) );
|
281 |
$rp_cookie = 'wp-resetpass-' . COOKIEHASH;
|
|
|
282 |
if ( isset( $_GET['hash'] ) ) {
|
283 |
$userdata = get_userdata( wp_unslash( $_GET['user_id'] ) );
|
284 |
if ( ! $userdata || is_wp_error( $userdata ) ) {
|
@@ -293,7 +296,7 @@ if ( ! class_exists( 'um\core\Password' ) ) {
|
|
293 |
if ( is_wp_error( $user ) ) {
|
294 |
setcookie( $rp_cookie, ' ', time() - YEAR_IN_SECONDS, $rp_path, COOKIE_DOMAIN, is_ssl(), true );
|
295 |
wp_redirect( add_query_arg( array( 'updated' => 'invalidkey' ), get_permalink() ) );
|
296 |
-
}else{
|
297 |
$value = sprintf( '%s:%s', $rp_login, wp_unslash( $_GET['hash'] ) );
|
298 |
setcookie( $rp_cookie, $value, 0, $rp_path, COOKIE_DOMAIN, is_ssl(), true );
|
299 |
wp_safe_redirect( remove_query_arg( array( 'hash', 'user_id' ) ) );
|
@@ -438,23 +441,24 @@ if ( ! class_exists( 'um\core\Password' ) ) {
|
|
438 |
*/
|
439 |
function um_reset_password_errors_hook( $args ) {
|
440 |
|
441 |
-
if ( $_POST[ UM()->honeypot ] != '' )
|
442 |
-
wp_die('Hello, spam bot!','ultimate-member');
|
|
|
443 |
|
444 |
$user = "";
|
445 |
|
446 |
foreach ( $_POST as $key => $val ) {
|
447 |
-
if( strstr( $key, "username_b") ){
|
448 |
$user = trim( $val );
|
449 |
}
|
450 |
}
|
451 |
|
452 |
if ( empty( $user ) ) {
|
453 |
-
UM()->form()->add_error('username_b', __('Please provide your username or email','ultimate-member') );
|
454 |
}
|
455 |
|
456 |
-
if ( ( !is_email( $user ) && !username_exists( $user ) ) || ( is_email( $user ) && !email_exists( $user ) ) ) {
|
457 |
-
UM()->form()->add_error('username_b', __('We can\'t find an account registered with that address or username','ultimate-member') );
|
458 |
} else {
|
459 |
|
460 |
if ( is_email( $user ) ) {
|
@@ -463,7 +467,7 @@ if ( ! class_exists( 'um\core\Password' ) ) {
|
|
463 |
$user_id = username_exists( $user );
|
464 |
}
|
465 |
|
466 |
-
$attempts = (int)get_user_meta( $user_id, 'password_rst_attempts', true );
|
467 |
$is_admin = user_can( intval( $user_id ),'manage_options' );
|
468 |
|
469 |
if ( UM()->options()->get( 'enable_reset_password_limit' ) ) { // if reset password limit is set
|
@@ -473,7 +477,7 @@ if ( ! class_exists( 'um\core\Password' ) ) {
|
|
473 |
} else {
|
474 |
$limit = UM()->options()->get( 'reset_password_limit_number' );
|
475 |
if ( $attempts >= $limit ) {
|
476 |
-
UM()->form()->add_error('username_b', __('You have reached the limit for requesting password change for this user already. Contact support if you cannot open the email','ultimate-member') );
|
477 |
} else {
|
478 |
update_user_meta( $user_id, 'password_rst_attempts', $attempts + 1 );
|
479 |
}
|
@@ -568,28 +572,37 @@ if ( ! class_exists( 'um\core\Password' ) ) {
|
|
568 |
extract( $args );
|
569 |
|
570 |
if ( isset( $_POST['_um_password_change'] ) && $_POST['_um_password_change'] == 1 ) {
|
571 |
-
|
572 |
-
|
573 |
-
|
574 |
-
* @type action
|
575 |
-
* @title um_after_changing_user_password
|
576 |
-
* @description Hook that runs after user change their password
|
577 |
-
* @input_vars
|
578 |
-
* [{"var":"$user_id","type":"int","desc":"User ID"}]
|
579 |
-
* @change_log
|
580 |
-
* ["Since: 2.0"]
|
581 |
-
* @usage add_action( 'um_after_changing_user_password', 'function_name', 10, 1 );
|
582 |
-
* @example
|
583 |
-
* <?php
|
584 |
-
* add_action( 'um_after_changing_user_password', 'my_after_changing_user_password', 10, 1 );
|
585 |
-
* function my_user_login_extra( $user_id ) {
|
586 |
-
* // your code here
|
587 |
-
* }
|
588 |
-
* ?>
|
589 |
-
*/
|
590 |
-
do_action( 'um_after_changing_user_password', $args['user_id'] );
|
591 |
|
592 |
$user = get_userdata( $args['user_id'] );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
593 |
$errors = new \WP_Error();
|
594 |
/**
|
595 |
* Fires before the password reset procedure is validated.
|
@@ -601,9 +614,6 @@ if ( ! class_exists( 'um\core\Password' ) ) {
|
|
601 |
*/
|
602 |
do_action( 'validate_password_reset', $errors, $user );
|
603 |
|
604 |
-
list( $rp_path ) = explode( '?', wp_unslash( $_SERVER['REQUEST_URI'] ) );
|
605 |
-
$rp_cookie = 'wp-resetpass-' . COOKIEHASH;
|
606 |
-
|
607 |
if ( ( ! $errors->get_error_code() ) ) {
|
608 |
reset_password( $user, $args['user_password'] );
|
609 |
setcookie( $rp_cookie, ' ', time() - YEAR_IN_SECONDS, $rp_path, COOKIE_DOMAIN, is_ssl(), true );
|
@@ -613,6 +623,27 @@ if ( ! class_exists( 'um\core\Password' ) ) {
|
|
613 |
wp_logout();
|
614 |
}
|
615 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
616 |
exit( wp_redirect( um_get_core_page('login', 'password_changed' ) ) );
|
617 |
}
|
618 |
}
|
277 |
}
|
278 |
|
279 |
if ( um_is_core_page( 'password-reset' ) && isset( $_REQUEST['act'] ) && $_REQUEST['act'] == 'reset_password' ) {
|
280 |
+
wp_fix_server_vars();
|
281 |
+
|
282 |
list( $rp_path ) = explode( '?', wp_unslash( $_SERVER['REQUEST_URI'] ) );
|
283 |
$rp_cookie = 'wp-resetpass-' . COOKIEHASH;
|
284 |
+
|
285 |
if ( isset( $_GET['hash'] ) ) {
|
286 |
$userdata = get_userdata( wp_unslash( $_GET['user_id'] ) );
|
287 |
if ( ! $userdata || is_wp_error( $userdata ) ) {
|
296 |
if ( is_wp_error( $user ) ) {
|
297 |
setcookie( $rp_cookie, ' ', time() - YEAR_IN_SECONDS, $rp_path, COOKIE_DOMAIN, is_ssl(), true );
|
298 |
wp_redirect( add_query_arg( array( 'updated' => 'invalidkey' ), get_permalink() ) );
|
299 |
+
} else {
|
300 |
$value = sprintf( '%s:%s', $rp_login, wp_unslash( $_GET['hash'] ) );
|
301 |
setcookie( $rp_cookie, $value, 0, $rp_path, COOKIE_DOMAIN, is_ssl(), true );
|
302 |
wp_safe_redirect( remove_query_arg( array( 'hash', 'user_id' ) ) );
|
441 |
*/
|
442 |
function um_reset_password_errors_hook( $args ) {
|
443 |
|
444 |
+
if ( $_POST[ UM()->honeypot ] != '' ) {
|
445 |
+
wp_die( 'Hello, spam bot!', 'ultimate-member' );
|
446 |
+
}
|
447 |
|
448 |
$user = "";
|
449 |
|
450 |
foreach ( $_POST as $key => $val ) {
|
451 |
+
if ( strstr( $key, "username_b") ) {
|
452 |
$user = trim( $val );
|
453 |
}
|
454 |
}
|
455 |
|
456 |
if ( empty( $user ) ) {
|
457 |
+
UM()->form()->add_error('username_b', __( 'Please provide your username or email', 'ultimate-member' ) );
|
458 |
}
|
459 |
|
460 |
+
if ( ( ! is_email( $user ) && ! username_exists( $user ) ) || ( is_email( $user ) && ! email_exists( $user ) ) ) {
|
461 |
+
UM()->form()->add_error('username_b', __( 'We can\'t find an account registered with that address or username','ultimate-member') );
|
462 |
} else {
|
463 |
|
464 |
if ( is_email( $user ) ) {
|
467 |
$user_id = username_exists( $user );
|
468 |
}
|
469 |
|
470 |
+
$attempts = (int) get_user_meta( $user_id, 'password_rst_attempts', true );
|
471 |
$is_admin = user_can( intval( $user_id ),'manage_options' );
|
472 |
|
473 |
if ( UM()->options()->get( 'enable_reset_password_limit' ) ) { // if reset password limit is set
|
477 |
} else {
|
478 |
$limit = UM()->options()->get( 'reset_password_limit_number' );
|
479 |
if ( $attempts >= $limit ) {
|
480 |
+
UM()->form()->add_error( 'username_b', __( 'You have reached the limit for requesting password change for this user already. Contact support if you cannot open the email','ultimate-member') );
|
481 |
} else {
|
482 |
update_user_meta( $user_id, 'password_rst_attempts', $attempts + 1 );
|
483 |
}
|
572 |
extract( $args );
|
573 |
|
574 |
if ( isset( $_POST['_um_password_change'] ) && $_POST['_um_password_change'] == 1 ) {
|
575 |
+
|
576 |
+
list( $rp_path ) = explode( '?', wp_unslash( $_SERVER['REQUEST_URI'] ) );
|
577 |
+
$rp_cookie = 'wp-resetpass-' . COOKIEHASH;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
578 |
|
579 |
$user = get_userdata( $args['user_id'] );
|
580 |
+
if ( isset( $_COOKIE[ $rp_cookie ] ) && 0 < strpos( $_COOKIE[ $rp_cookie ], ':' ) ) {
|
581 |
+
list( $rp_login, $rp_key ) = explode( ':', wp_unslash( $_COOKIE[ $rp_cookie ] ), 2 );
|
582 |
+
|
583 |
+
if ( $user->user_login != $rp_login ) {
|
584 |
+
$user = false;
|
585 |
+
} else {
|
586 |
+
$user = check_password_reset_key( $rp_key, $rp_login );
|
587 |
+
if ( isset( $_POST['user_password'] ) && ! hash_equals( $rp_key, $_POST['rp_key'] ) ) {
|
588 |
+
$user = false;
|
589 |
+
}
|
590 |
+
}
|
591 |
+
} else {
|
592 |
+
$user = false;
|
593 |
+
}
|
594 |
+
|
595 |
+
if ( ! $user || is_wp_error( $user ) ) {
|
596 |
+
setcookie( $rp_cookie, ' ', time() - YEAR_IN_SECONDS, $rp_path, COOKIE_DOMAIN, is_ssl(), true );
|
597 |
+
if ( $user && $user->get_error_code() === 'expired_key' ) {
|
598 |
+
wp_redirect( add_query_arg( array( 'updated' => 'expiredkey' ), get_permalink() ) );
|
599 |
+
} else {
|
600 |
+
wp_redirect( add_query_arg( array( 'updated' => 'invalidkey' ), get_permalink() ) );
|
601 |
+
}
|
602 |
+
exit;
|
603 |
+
}
|
604 |
+
|
605 |
+
|
606 |
$errors = new \WP_Error();
|
607 |
/**
|
608 |
* Fires before the password reset procedure is validated.
|
614 |
*/
|
615 |
do_action( 'validate_password_reset', $errors, $user );
|
616 |
|
|
|
|
|
|
|
617 |
if ( ( ! $errors->get_error_code() ) ) {
|
618 |
reset_password( $user, $args['user_password'] );
|
619 |
setcookie( $rp_cookie, ' ', time() - YEAR_IN_SECONDS, $rp_path, COOKIE_DOMAIN, is_ssl(), true );
|
623 |
wp_logout();
|
624 |
}
|
625 |
|
626 |
+
/**
|
627 |
+
* UM hook
|
628 |
+
*
|
629 |
+
* @type action
|
630 |
+
* @title um_after_changing_user_password
|
631 |
+
* @description Hook that runs after user change their password
|
632 |
+
* @input_vars
|
633 |
+
* [{"var":"$user_id","type":"int","desc":"User ID"}]
|
634 |
+
* @change_log
|
635 |
+
* ["Since: 2.0"]
|
636 |
+
* @usage add_action( 'um_after_changing_user_password', 'function_name', 10, 1 );
|
637 |
+
* @example
|
638 |
+
* <?php
|
639 |
+
* add_action( 'um_after_changing_user_password', 'my_after_changing_user_password', 10, 1 );
|
640 |
+
* function my_user_login_extra( $user_id ) {
|
641 |
+
* // your code here
|
642 |
+
* }
|
643 |
+
* ?>
|
644 |
+
*/
|
645 |
+
do_action( 'um_after_changing_user_password', $args['user_id'] );
|
646 |
+
|
647 |
exit( wp_redirect( um_get_core_page('login', 'password_changed' ) ) );
|
648 |
}
|
649 |
}
|
includes/core/class-query.php
CHANGED
@@ -94,8 +94,13 @@ if ( ! class_exists( 'um\core\Query' ) ) {
|
|
94 |
return 'reached_maximum_limit';
|
95 |
}
|
96 |
|
97 |
-
|
98 |
-
|
|
|
|
|
|
|
|
|
|
|
99 |
|
100 |
$array = array();
|
101 |
if( $wpdb->num_rows > 0 ){
|
94 |
return 'reached_maximum_limit';
|
95 |
}
|
96 |
|
97 |
+
$pages = $wpdb->get_results(
|
98 |
+
"SELECT *
|
99 |
+
FROM {$wpdb->posts}
|
100 |
+
WHERE post_type = 'page' AND
|
101 |
+
post_status = 'publish'",
|
102 |
+
OBJECT
|
103 |
+
);
|
104 |
|
105 |
$array = array();
|
106 |
if( $wpdb->num_rows > 0 ){
|
includes/core/class-roles-capabilities.php
CHANGED
@@ -592,7 +592,7 @@ if ( ! class_exists( 'um\core\Roles_Capabilities' ) ) {
|
|
592 |
|
593 |
um_fetch_user( get_current_user_id() );
|
594 |
|
595 |
-
$current_user_roles =
|
596 |
|
597 |
switch( $cap ) {
|
598 |
case 'edit':
|
592 |
|
593 |
um_fetch_user( get_current_user_id() );
|
594 |
|
595 |
+
$current_user_roles = $this->get_all_user_roles( $user_id );
|
596 |
|
597 |
switch( $cap ) {
|
598 |
case 'edit':
|
includes/core/class-uploader.php
CHANGED
@@ -165,7 +165,7 @@ if ( ! class_exists( 'um\core\Uploader' ) ) {
|
|
165 |
public function get_upload_base_url() {
|
166 |
$wp_baseurl = $this->wp_upload_dir['baseurl'];
|
167 |
|
168 |
-
$this->upload_baseurl = set_url_scheme( $wp_baseurl . $this->
|
169 |
|
170 |
return $this->upload_baseurl;
|
171 |
}
|
@@ -470,6 +470,9 @@ if ( ! class_exists( 'um\core\Uploader' ) ) {
|
|
470 |
|
471 |
$response['handle_upload'] = $movefile;
|
472 |
|
|
|
|
|
|
|
473 |
return $response;
|
474 |
}
|
475 |
|
@@ -638,6 +641,9 @@ if ( ! class_exists( 'um\core\Uploader' ) ) {
|
|
638 |
|
639 |
$response['handle_upload'] = $movefile;
|
640 |
|
|
|
|
|
|
|
641 |
return $response;
|
642 |
}
|
643 |
|
@@ -868,17 +874,22 @@ if ( ! class_exists( 'um\core\Uploader' ) ) {
|
|
868 |
|
869 |
/**
|
870 |
* Make unique filename
|
|
|
871 |
* @param string $filename
|
872 |
* @param string $ext
|
873 |
-
* @param string $dir
|
874 |
* @return string $filename
|
875 |
*
|
876 |
* @since 2.0.22
|
877 |
*/
|
878 |
-
public function unique_filename( $
|
879 |
-
$image_type = wp_check_filetype( $ext );
|
880 |
|
881 |
-
$ext
|
|
|
|
|
|
|
|
|
|
|
|
|
882 |
|
883 |
if ( 'image' == $this->upload_type ) {
|
884 |
|
@@ -1016,14 +1027,14 @@ if ( ! class_exists( 'um\core\Uploader' ) ) {
|
|
1016 |
|
1017 |
$resize = $image->multi_resize( $sizes_array );
|
1018 |
|
1019 |
-
// change filenames of resized images
|
1020 |
foreach( $resize as $row ){
|
1021 |
$new_filename = str_replace( "x{$row['height']}" , "", $row["file"] );
|
1022 |
-
$old_filename = $row["file"];
|
1023 |
-
|
1024 |
rename( dirname( $image_path ) . DIRECTORY_SEPARATOR . $old_filename, dirname( $image_path ) . DIRECTORY_SEPARATOR . $new_filename );
|
1025 |
}
|
1026 |
-
|
1027 |
} else {
|
1028 |
wp_send_json_error( esc_js( __( "Unable to crop image file: {$src}", 'ultimate-member' ) ) );
|
1029 |
}
|
@@ -1241,4 +1252,4 @@ if ( ! class_exists( 'um\core\Uploader' ) ) {
|
|
1241 |
}
|
1242 |
}
|
1243 |
|
1244 |
-
}
|
165 |
public function get_upload_base_url() {
|
166 |
$wp_baseurl = $this->wp_upload_dir['baseurl'];
|
167 |
|
168 |
+
$this->upload_baseurl = set_url_scheme( $wp_baseurl . $this->core_upload_url );
|
169 |
|
170 |
return $this->upload_baseurl;
|
171 |
}
|
470 |
|
471 |
$response['handle_upload'] = $movefile;
|
472 |
|
473 |
+
// Remove old files from 'temp' directory
|
474 |
+
UM()->files()->remove_old_files( UM()->files()->upload_temp );
|
475 |
+
|
476 |
return $response;
|
477 |
}
|
478 |
|
641 |
|
642 |
$response['handle_upload'] = $movefile;
|
643 |
|
644 |
+
// Remove old files from 'temp' directory
|
645 |
+
UM()->files()->remove_old_files( UM()->files()->upload_temp );
|
646 |
+
|
647 |
return $response;
|
648 |
}
|
649 |
|
874 |
|
875 |
/**
|
876 |
* Make unique filename
|
877 |
+
* @param string $dir
|
878 |
* @param string $filename
|
879 |
* @param string $ext
|
|
|
880 |
* @return string $filename
|
881 |
*
|
882 |
* @since 2.0.22
|
883 |
*/
|
884 |
+
public function unique_filename( $dir, $filename, $ext ) {
|
|
|
885 |
|
886 |
+
if ( empty( $ext ) ) {
|
887 |
+
$image_type = wp_check_filetype( $filename );
|
888 |
+
$ext = strtolower( trim( $image_type['ext'], ' \/.' ) );
|
889 |
+
}
|
890 |
+
else {
|
891 |
+
$ext = strtolower( trim( $ext, ' \/.' ) );
|
892 |
+
}
|
893 |
|
894 |
if ( 'image' == $this->upload_type ) {
|
895 |
|
1027 |
|
1028 |
$resize = $image->multi_resize( $sizes_array );
|
1029 |
|
1030 |
+
// change filenames of resized images
|
1031 |
foreach( $resize as $row ){
|
1032 |
$new_filename = str_replace( "x{$row['height']}" , "", $row["file"] );
|
1033 |
+
$old_filename = $row["file"];
|
1034 |
+
|
1035 |
rename( dirname( $image_path ) . DIRECTORY_SEPARATOR . $old_filename, dirname( $image_path ) . DIRECTORY_SEPARATOR . $new_filename );
|
1036 |
}
|
1037 |
+
|
1038 |
} else {
|
1039 |
wp_send_json_error( esc_js( __( "Unable to crop image file: {$src}", 'ultimate-member' ) ) );
|
1040 |
}
|
1252 |
}
|
1253 |
}
|
1254 |
|
1255 |
+
}
|
includes/core/class-user-posts.php
CHANGED
@@ -61,8 +61,7 @@ if ( ! class_exists( 'um\core\User_posts' ) ) {
|
|
61 |
$args = apply_filters( 'um_profile_query_make_posts', $args );
|
62 |
$posts = get_posts( $args );
|
63 |
|
64 |
-
$count_posts =
|
65 |
-
$count_posts = ! empty( $count_posts->publish ) ? $count_posts->publish : 0;
|
66 |
|
67 |
UM()->shortcodes()->set_args = array( 'posts' => $posts, 'count_posts' => $count_posts );
|
68 |
UM()->shortcodes()->load_template( 'profile/posts' );
|
61 |
$args = apply_filters( 'um_profile_query_make_posts', $args );
|
62 |
$posts = get_posts( $args );
|
63 |
|
64 |
+
$count_posts = (int) count_user_posts( um_get_requested_user(), 'post', true );
|
|
|
65 |
|
66 |
UM()->shortcodes()->set_args = array( 'posts' => $posts, 'count_posts' => $count_posts );
|
67 |
UM()->shortcodes()->load_template( 'profile/posts' );
|
includes/core/class-user.php
CHANGED
@@ -99,9 +99,6 @@ if ( ! class_exists( 'um\core\User' ) ) {
|
|
99 |
* @param $user_id
|
100 |
*/
|
101 |
function delete_user_handler( $user_id ) {
|
102 |
-
error_log( '----------------' );
|
103 |
-
error_log( $user_id );
|
104 |
-
|
105 |
um_fetch_user( $user_id );
|
106 |
|
107 |
/**
|
@@ -1378,8 +1375,6 @@ if ( ! class_exists( 'um\core\User' ) ) {
|
|
1378 |
$this->send_mail_on_delete = false;
|
1379 |
}
|
1380 |
|
1381 |
-
$this->delete_user_handler( um_user( 'ID' ) );
|
1382 |
-
|
1383 |
// remove user
|
1384 |
if ( is_multisite() ) {
|
1385 |
|
@@ -1672,7 +1667,11 @@ if ( ! class_exists( 'um\core\User' ) ) {
|
|
1672 |
|
1673 |
foreach ( $changes as $key => $value ) {
|
1674 |
if ( ! in_array( $key, $this->update_user_keys ) ) {
|
1675 |
-
|
|
|
|
|
|
|
|
|
1676 |
} else {
|
1677 |
$args[ $key ] = esc_attr( $changes[ $key ] );
|
1678 |
}
|
99 |
* @param $user_id
|
100 |
*/
|
101 |
function delete_user_handler( $user_id ) {
|
|
|
|
|
|
|
102 |
um_fetch_user( $user_id );
|
103 |
|
104 |
/**
|
1375 |
$this->send_mail_on_delete = false;
|
1376 |
}
|
1377 |
|
|
|
|
|
1378 |
// remove user
|
1379 |
if ( is_multisite() ) {
|
1380 |
|
1667 |
|
1668 |
foreach ( $changes as $key => $value ) {
|
1669 |
if ( ! in_array( $key, $this->update_user_keys ) ) {
|
1670 |
+
if( $value === 0 ){
|
1671 |
+
update_user_meta( $this->id, $key, '0' );
|
1672 |
+
} else {
|
1673 |
+
update_user_meta( $this->id, $key, $value );
|
1674 |
+
}
|
1675 |
} else {
|
1676 |
$args[ $key ] = esc_attr( $changes[ $key ] );
|
1677 |
}
|
includes/core/um-actions-account.php
CHANGED
@@ -24,10 +24,10 @@ function um_submit_account_errors_hook( $args ) {
|
|
24 |
case 'delete': {
|
25 |
// delete account
|
26 |
if ( strlen(trim( $_POST['single_user_password'] ) ) == 0 ) {
|
27 |
-
UM()->form()->add_error('single_user_password', __('You must enter your password','ultimate-member') );
|
28 |
} else {
|
29 |
if ( ! wp_check_password( $_POST['single_user_password'], $user->data->user_pass, $user->data->ID ) ) {
|
30 |
-
UM()->form()->add_error('single_user_password', __('This is not your password','ultimate-member') );
|
31 |
}
|
32 |
}
|
33 |
|
@@ -95,14 +95,29 @@ function um_submit_account_errors_hook( $args ) {
|
|
95 |
}
|
96 |
|
97 |
if ( isset( $_POST['user_email'] ) ) {
|
98 |
-
|
|
|
99 |
UM()->form()->add_error( 'user_email', __( 'You must provide your e-mail', 'ultimate-member' ) );
|
|
|
100 |
|
101 |
-
if ( ! is_email( $_POST['user_email'] ) )
|
102 |
UM()->form()->add_error( 'user_email', __( 'Please provide a valid e-mail', 'ultimate-member' ) );
|
|
|
103 |
|
104 |
-
if ( email_exists( $_POST['user_email'] ) && email_exists( $_POST['user_email'] ) != get_current_user_id() )
|
105 |
UM()->form()->add_error( 'user_email', __( 'Email already linked to another account', 'ultimate-member' ) );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
106 |
}
|
107 |
|
108 |
break;
|
24 |
case 'delete': {
|
25 |
// delete account
|
26 |
if ( strlen(trim( $_POST['single_user_password'] ) ) == 0 ) {
|
27 |
+
UM()->form()->add_error( 'single_user_password', __( 'You must enter your password', 'ultimate-member' ) );
|
28 |
} else {
|
29 |
if ( ! wp_check_password( $_POST['single_user_password'], $user->data->user_pass, $user->data->ID ) ) {
|
30 |
+
UM()->form()->add_error( 'single_user_password', __( 'This is not your password', 'ultimate-member' ) );
|
31 |
}
|
32 |
}
|
33 |
|
95 |
}
|
96 |
|
97 |
if ( isset( $_POST['user_email'] ) ) {
|
98 |
+
|
99 |
+
if ( strlen( trim( $_POST['user_email'] ) ) == 0 ) {
|
100 |
UM()->form()->add_error( 'user_email', __( 'You must provide your e-mail', 'ultimate-member' ) );
|
101 |
+
}
|
102 |
|
103 |
+
if ( ! is_email( $_POST['user_email'] ) ) {
|
104 |
UM()->form()->add_error( 'user_email', __( 'Please provide a valid e-mail', 'ultimate-member' ) );
|
105 |
+
}
|
106 |
|
107 |
+
if ( email_exists( $_POST['user_email'] ) && email_exists( $_POST['user_email'] ) != get_current_user_id() ) {
|
108 |
UM()->form()->add_error( 'user_email', __( 'Email already linked to another account', 'ultimate-member' ) );
|
109 |
+
}
|
110 |
+
}
|
111 |
+
|
112 |
+
// check account password
|
113 |
+
if ( UM()->options()->get( 'account_general_password' ) ) {
|
114 |
+
if ( strlen( trim( $_POST['single_user_password'] ) ) == 0 ) {
|
115 |
+
UM()->form()->add_error('single_user_password', __( 'You must enter your password', 'ultimate-member' ) );
|
116 |
+
} else {
|
117 |
+
if ( ! wp_check_password( $_POST['single_user_password'], $user->data->user_pass, $user->data->ID ) ) {
|
118 |
+
UM()->form()->add_error('single_user_password', __( 'This is not your password', 'ultimate-member' ) );
|
119 |
+
}
|
120 |
+
}
|
121 |
}
|
122 |
|
123 |
break;
|
includes/core/um-actions-form.php
CHANGED
@@ -444,7 +444,7 @@ function um_submit_form_errors_hook_( $args ) {
|
|
444 |
}
|
445 |
|
446 |
if ( isset( $array['max_words'] ) && $array['max_words'] > 0 ) {
|
447 |
-
if ( str_word_count( $args[$key] ) > $array['max_words'] ) {
|
448 |
UM()->form()->add_error($key, sprintf(__('You are only allowed to enter a maximum of %s words','ultimate-member'), $array['max_words']) );
|
449 |
}
|
450 |
}
|
444 |
}
|
445 |
|
446 |
if ( isset( $array['max_words'] ) && $array['max_words'] > 0 ) {
|
447 |
+
if ( str_word_count( $args[$key], 0, "éèàôù" ) > $array['max_words'] ) {
|
448 |
UM()->form()->add_error($key, sprintf(__('You are only allowed to enter a maximum of %s words','ultimate-member'), $array['max_words']) );
|
449 |
}
|
450 |
}
|
includes/core/um-actions-profile.php
CHANGED
@@ -218,6 +218,7 @@ function um_user_edit_profile( $args ) {
|
|
218 |
|
219 |
// loop through fields
|
220 |
if ( ! empty( $fields ) ) {
|
|
|
221 |
foreach ( $fields as $key => $array ) {
|
222 |
|
223 |
if ( ! um_can_edit_field( $array ) && isset( $array['editable'] ) && ! $array['editable'] ) {
|
@@ -229,6 +230,7 @@ function um_user_edit_profile( $args ) {
|
|
229 |
}
|
230 |
|
231 |
if ( isset( $args['submitted'][ $key ] ) ) {
|
|
|
232 |
if ( isset( $array['type'] ) && in_array( $array['type'], array( 'image', 'file' ) ) &&
|
233 |
( /*um_is_file_owner( UM()->uploader()->get_upload_base_url() . um_user( 'ID' ) . '/' . $args['submitted'][ $key ], um_user( 'ID' ) ) ||*/
|
234 |
um_is_temp_file( $args['submitted'][ $key ] ) || $args['submitted'][ $key ] == 'empty_file' ) ) {
|
@@ -236,14 +238,13 @@ function um_user_edit_profile( $args ) {
|
|
236 |
$files[ $key ] = $args['submitted'][ $key ];
|
237 |
|
238 |
} else {
|
239 |
-
|
240 |
if ( $array['type'] == 'password' ) {
|
241 |
$to_update[ $key ] = wp_hash_password( $args['submitted'][ $key ] );
|
242 |
$args['submitted'][ $key ] = sprintf( __( 'Your choosed %s', 'ultimate-member' ), $array['title'] );
|
243 |
} else {
|
244 |
if ( isset( $userinfo[ $key ] ) && $args['submitted'][ $key ] != $userinfo[ $key ] ) {
|
245 |
$to_update[ $key ] = $args['submitted'][ $key ];
|
246 |
-
} elseif ( $args['submitted'][ $key ] ) {
|
247 |
$to_update[ $key ] = $args['submitted'][ $key ];
|
248 |
}
|
249 |
}
|
218 |
|
219 |
// loop through fields
|
220 |
if ( ! empty( $fields ) ) {
|
221 |
+
|
222 |
foreach ( $fields as $key => $array ) {
|
223 |
|
224 |
if ( ! um_can_edit_field( $array ) && isset( $array['editable'] ) && ! $array['editable'] ) {
|
230 |
}
|
231 |
|
232 |
if ( isset( $args['submitted'][ $key ] ) ) {
|
233 |
+
|
234 |
if ( isset( $array['type'] ) && in_array( $array['type'], array( 'image', 'file' ) ) &&
|
235 |
( /*um_is_file_owner( UM()->uploader()->get_upload_base_url() . um_user( 'ID' ) . '/' . $args['submitted'][ $key ], um_user( 'ID' ) ) ||*/
|
236 |
um_is_temp_file( $args['submitted'][ $key ] ) || $args['submitted'][ $key ] == 'empty_file' ) ) {
|
238 |
$files[ $key ] = $args['submitted'][ $key ];
|
239 |
|
240 |
} else {
|
|
|
241 |
if ( $array['type'] == 'password' ) {
|
242 |
$to_update[ $key ] = wp_hash_password( $args['submitted'][ $key ] );
|
243 |
$args['submitted'][ $key ] = sprintf( __( 'Your choosed %s', 'ultimate-member' ), $array['title'] );
|
244 |
} else {
|
245 |
if ( isset( $userinfo[ $key ] ) && $args['submitted'][ $key ] != $userinfo[ $key ] ) {
|
246 |
$to_update[ $key ] = $args['submitted'][ $key ];
|
247 |
+
} elseif ( $args['submitted'][ $key ] != '' ) {
|
248 |
$to_update[ $key ] = $args['submitted'][ $key ];
|
249 |
}
|
250 |
}
|
includes/core/um-filters-members.php
CHANGED
@@ -86,11 +86,14 @@ function um_remove_special_users_from_list( $query_args, $args ) {
|
|
86 |
|
87 |
if ( ! empty( $roles ) ) {
|
88 |
if ( ! empty( $query_args['role__in'] ) ) {
|
89 |
-
$
|
|
|
|
|
|
|
90 |
} else {
|
91 |
$query_args['role__in'] = $roles;
|
92 |
}
|
93 |
-
}
|
94 |
|
95 |
}
|
96 |
|
@@ -376,7 +379,6 @@ function um_prepare_user_query_args( $query_args, $args ) {
|
|
376 |
|
377 |
if ( isset( $sortby ) ) {
|
378 |
|
379 |
-
|
380 |
if ( $sortby == 'other' && $sortby_custom ) {
|
381 |
|
382 |
$query_args['meta_key'] = $sortby_custom;
|
@@ -448,9 +450,18 @@ add_filter( 'um_prepare_user_query_args', 'um_prepare_user_query_args', 10, 2 );
|
|
448 |
*/
|
449 |
function um_sortby_last_login( $query_args, $sortby ) {
|
450 |
if ( $sortby == 'last_login' ) {
|
451 |
-
$query_args['orderby'] = '
|
452 |
-
$query_args['
|
453 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
454 |
}
|
455 |
return $query_args;
|
456 |
}
|
86 |
|
87 |
if ( ! empty( $roles ) ) {
|
88 |
if ( ! empty( $query_args['role__in'] ) ) {
|
89 |
+
$roles_intersect = array_intersect( $query_args['role__in'], $roles );
|
90 |
+
if( ! empty( $roles_intersect ) ){
|
91 |
+
$query_args['role__in'] = $roles_intersect;
|
92 |
+
}
|
93 |
} else {
|
94 |
$query_args['role__in'] = $roles;
|
95 |
}
|
96 |
+
}
|
97 |
|
98 |
}
|
99 |
|
379 |
|
380 |
if ( isset( $sortby ) ) {
|
381 |
|
|
|
382 |
if ( $sortby == 'other' && $sortby_custom ) {
|
383 |
|
384 |
$query_args['meta_key'] = $sortby_custom;
|
450 |
*/
|
451 |
function um_sortby_last_login( $query_args, $sortby ) {
|
452 |
if ( $sortby == 'last_login' ) {
|
453 |
+
$query_args['orderby'] = array( 'um_last_login' => 'DESC' );
|
454 |
+
$query_args['meta_query']['um_last_login'] = array(
|
455 |
+
'relation' => 'OR',
|
456 |
+
array(
|
457 |
+
'key' => '_um_last_login',
|
458 |
+
'compare' => 'EXISTS',
|
459 |
+
),
|
460 |
+
array(
|
461 |
+
'key' => '_um_last_login',
|
462 |
+
'compare' => 'NOT EXISTS',
|
463 |
+
),
|
464 |
+
);
|
465 |
}
|
466 |
return $query_args;
|
467 |
}
|
includes/um-short-functions.php
CHANGED
@@ -620,7 +620,7 @@ function um_js_redirect( $url ) {
|
|
620 |
* @return string
|
621 |
*/
|
622 |
function um_get_snippet( $str, $wordCount = 10 ) {
|
623 |
-
if (str_word_count( $str ) > $wordCount) {
|
624 |
$str = implode(
|
625 |
'',
|
626 |
array_slice(
|
@@ -2131,7 +2131,7 @@ function um_get_default_cover_uri() {
|
|
2131 |
* @param $data
|
2132 |
* @param null $attrs
|
2133 |
*
|
2134 |
-
* @return string
|
2135 |
*/
|
2136 |
function um_user( $data, $attrs = null ) {
|
2137 |
|
620 |
* @return string
|
621 |
*/
|
622 |
function um_get_snippet( $str, $wordCount = 10 ) {
|
623 |
+
if (str_word_count( $str, 0, "éèàôù" ) > $wordCount) {
|
624 |
$str = implode(
|
625 |
'',
|
626 |
array_slice(
|
2131 |
* @param $data
|
2132 |
* @param null $attrs
|
2133 |
*
|
2134 |
+
* @return string|array
|
2135 |
*/
|
2136 |
function um_user( $data, $attrs = null ) {
|
2137 |
|
languages/ultimate-member-en_US.mo
CHANGED
Binary file
|
languages/ultimate-member-en_US.po
CHANGED
@@ -1,8 +1,8 @@
|
|
1 |
msgid ""
|
2 |
msgstr ""
|
3 |
"Project-Id-Version: Ultimate Member\n"
|
4 |
-
"POT-Creation-Date: 2019-03-
|
5 |
-
"PO-Revision-Date: 2019-03-
|
6 |
"Last-Translator: \n"
|
7 |
"Language-Team: \n"
|
8 |
"Language: en_US\n"
|
@@ -35,7 +35,7 @@ msgid "Docs"
|
|
35 |
msgstr ""
|
36 |
|
37 |
#: includes/admin/class-admin.php:308
|
38 |
-
#: includes/admin/core/class-admin-settings.php:
|
39 |
msgid "Settings"
|
40 |
msgstr ""
|
41 |
|
@@ -103,7 +103,7 @@ msgstr ""
|
|
103 |
#: includes/admin/core/class-admin-builder.php:767
|
104 |
#: includes/admin/core/class-admin-dragdrop.php:32
|
105 |
#: includes/admin/core/class-admin-menu.php:104
|
106 |
-
#: includes/core/class-fields.php:
|
107 |
msgid "Please login as administrator"
|
108 |
msgstr ""
|
109 |
|
@@ -158,7 +158,7 @@ msgstr ""
|
|
158 |
|
159 |
#: includes/admin/core/class-admin-builder.php:1143
|
160 |
#: includes/core/class-form.php:155 includes/core/class-form.php:328
|
161 |
-
#: includes/core/class-password.php:
|
162 |
msgid "This is not possible for security reasons."
|
163 |
msgstr ""
|
164 |
|
@@ -226,7 +226,7 @@ msgstr ""
|
|
226 |
#: includes/admin/templates/form/register_gdpr.php:23
|
227 |
#: includes/core/class-builtin.php:1130 includes/core/class-builtin.php:1144
|
228 |
#: includes/core/class-builtin.php:1145
|
229 |
-
#: includes/core/um-actions-account.php:
|
230 |
msgid "No"
|
231 |
msgstr ""
|
232 |
|
@@ -253,53 +253,79 @@ msgstr ""
|
|
253 |
msgid "Yes"
|
254 |
msgstr ""
|
255 |
|
256 |
-
#: includes/admin/core/class-admin-enqueue.php:
|
257 |
msgid "e.g. Member Directory"
|
258 |
msgstr ""
|
259 |
|
260 |
-
#: includes/admin/core/class-admin-enqueue.php:
|
261 |
msgid "e.g. New Registration Form"
|
262 |
msgstr ""
|
263 |
|
264 |
-
#: includes/admin/core/class-admin-enqueue.php:
|
265 |
-
#: includes/admin/core/class-admin-enqueue.php:
|
266 |
-
#: includes/admin/core/class-admin-forms.php:
|
267 |
-
#: includes/admin/core/class-admin-forms.php:
|
268 |
-
#: includes/admin/core/class-admin-forms.php:
|
269 |
-
#: includes/admin/core/class-admin-forms.php:
|
270 |
#: includes/admin/core/class-admin-notices.php:390
|
271 |
-
#: includes/core/um-actions-profile.php:
|
272 |
msgid "Remove"
|
273 |
msgstr ""
|
274 |
|
275 |
-
#: includes/admin/core/class-admin-enqueue.php:
|
276 |
-
#: includes/admin/core/class-admin-enqueue.php:
|
277 |
-
#: includes/admin/core/class-admin-forms.php:
|
278 |
msgid "Select"
|
279 |
msgstr ""
|
280 |
|
281 |
-
#: includes/admin/core/class-admin-enqueue.php:
|
282 |
msgid "Are sure, maybe some settings not saved"
|
283 |
msgstr ""
|
284 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
285 |
#: includes/admin/core/class-admin-forms.php:314
|
286 |
#: includes/core/um-filters-fields.php:15
|
287 |
msgid "Required"
|
288 |
msgstr ""
|
289 |
|
290 |
-
#: includes/admin/core/class-admin-forms.php:
|
291 |
msgid "Choose Icon"
|
292 |
msgstr ""
|
293 |
|
294 |
-
#: includes/admin/core/class-admin-forms.php:
|
295 |
msgid "No Icon"
|
296 |
msgstr ""
|
297 |
|
298 |
-
#: includes/admin/core/class-admin-forms.php:
|
299 |
msgid "Select media"
|
300 |
msgstr ""
|
301 |
|
302 |
-
#: includes/admin/core/class-admin-forms.php:
|
303 |
msgid "Clear"
|
304 |
msgstr ""
|
305 |
|
@@ -408,7 +434,7 @@ msgstr ""
|
|
408 |
#. Plugin Name of the plugin/theme
|
409 |
#. Author of the plugin/theme
|
410 |
#: includes/admin/core/class-admin-menu.php:145
|
411 |
-
#: includes/core/class-user.php:
|
412 |
msgid "Ultimate Member"
|
413 |
msgstr ""
|
414 |
|
@@ -428,12 +454,12 @@ msgid "User Roles"
|
|
428 |
msgstr ""
|
429 |
|
430 |
#: includes/admin/core/class-admin-menu.php:162
|
431 |
-
#: includes/core/class-common.php:
|
432 |
msgid "Member Directories"
|
433 |
msgstr ""
|
434 |
|
435 |
#: includes/admin/core/class-admin-menu.php:204
|
436 |
-
#: includes/admin/core/class-admin-settings.php:
|
437 |
msgid "Extensions"
|
438 |
msgstr ""
|
439 |
|
@@ -1184,7 +1210,7 @@ msgid "Your user cache is now removed."
|
|
1184 |
msgstr ""
|
1185 |
|
1186 |
#: includes/admin/core/class-admin-notices.php:407
|
1187 |
-
msgid "You
|
1188 |
msgstr ""
|
1189 |
|
1190 |
#: includes/admin/core/class-admin-notices.php:411
|
@@ -1661,8 +1687,8 @@ msgid ""
|
|
1661 |
msgstr ""
|
1662 |
|
1663 |
#: includes/admin/core/class-admin-settings.php:436
|
1664 |
-
#: includes/class-config.php:134 includes/class-config.php:
|
1665 |
-
#: includes/core/class-account.php:
|
1666 |
msgid "Account"
|
1667 |
msgstr ""
|
1668 |
|
@@ -1740,746 +1766,754 @@ msgid "Whether to allow users changing their email in account page."
|
|
1740 |
msgstr ""
|
1741 |
|
1742 |
#: includes/admin/core/class-admin-settings.php:500
|
1743 |
-
msgid "
|
1744 |
msgstr ""
|
1745 |
|
1746 |
#: includes/admin/core/class-admin-settings.php:501
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1747 |
msgid ""
|
1748 |
"Whether to allow users changing their profile visibility from member "
|
1749 |
"directory in account page."
|
1750 |
msgstr ""
|
1751 |
|
1752 |
-
#: includes/admin/core/class-admin-settings.php:
|
1753 |
msgid "Require a strong password?"
|
1754 |
msgstr ""
|
1755 |
|
1756 |
-
#: includes/admin/core/class-admin-settings.php:
|
1757 |
msgid ""
|
1758 |
"Enable or disable a strong password rules on account page / change password "
|
1759 |
"tab"
|
1760 |
msgstr ""
|
1761 |
|
1762 |
-
#: includes/admin/core/class-admin-settings.php:
|
1763 |
msgid "Uploads"
|
1764 |
msgstr ""
|
1765 |
|
1766 |
-
#: includes/admin/core/class-admin-settings.php:
|
1767 |
msgid "Profile Photo Maximum File Size (bytes)"
|
1768 |
msgstr ""
|
1769 |
|
1770 |
-
#: includes/admin/core/class-admin-settings.php:
|
1771 |
msgid "Sets a maximum size for the uploaded photo"
|
1772 |
msgstr ""
|
1773 |
|
1774 |
-
#: includes/admin/core/class-admin-settings.php:
|
1775 |
msgid "Cover Photo Maximum File Size (bytes)"
|
1776 |
msgstr ""
|
1777 |
|
1778 |
-
#: includes/admin/core/class-admin-settings.php:
|
1779 |
msgid "Sets a maximum size for the uploaded cover"
|
1780 |
msgstr ""
|
1781 |
|
1782 |
-
#: includes/admin/core/class-admin-settings.php:
|
1783 |
msgid "Profile Photo Thumbnail Sizes (px)"
|
1784 |
msgstr ""
|
1785 |
|
1786 |
-
#: includes/admin/core/class-admin-settings.php:
|
1787 |
msgid ""
|
1788 |
"Here you can define which thumbnail sizes will be created for each profile "
|
1789 |
"photo upload."
|
1790 |
msgstr ""
|
1791 |
|
1792 |
-
#: includes/admin/core/class-admin-settings.php:
|
1793 |
-
#: includes/admin/core/class-admin-settings.php:
|
1794 |
msgid "Add New Size"
|
1795 |
msgstr ""
|
1796 |
|
1797 |
-
#: includes/admin/core/class-admin-settings.php:
|
1798 |
msgid "Cover Photo Thumbnail Sizes (px)"
|
1799 |
msgstr ""
|
1800 |
|
1801 |
-
#: includes/admin/core/class-admin-settings.php:
|
1802 |
msgid ""
|
1803 |
"Here you can define which thumbnail sizes will be created for each cover "
|
1804 |
"photo upload."
|
1805 |
msgstr ""
|
1806 |
|
1807 |
-
#: includes/admin/core/class-admin-settings.php:
|
1808 |
msgid "Image Quality"
|
1809 |
msgstr ""
|
1810 |
|
1811 |
-
#: includes/admin/core/class-admin-settings.php:
|
1812 |
msgid ""
|
1813 |
"Quality is used to determine quality of image uploads, and ranges from 0 "
|
1814 |
"(worst quality, smaller file) to 100 (best quality, biggest file). The "
|
1815 |
"default range is 60."
|
1816 |
msgstr ""
|
1817 |
|
1818 |
-
#: includes/admin/core/class-admin-settings.php:
|
1819 |
msgid "Image Upload Maximum Width (px)"
|
1820 |
msgstr ""
|
1821 |
|
1822 |
-
#: includes/admin/core/class-admin-settings.php:
|
1823 |
msgid ""
|
1824 |
"Any image upload above this width will be resized to this limit "
|
1825 |
"automatically."
|
1826 |
msgstr ""
|
1827 |
|
1828 |
-
#: includes/admin/core/class-admin-settings.php:
|
1829 |
msgid "Cover Photo Minimum Width (px)"
|
1830 |
msgstr ""
|
1831 |
|
1832 |
-
#: includes/admin/core/class-admin-settings.php:
|
1833 |
msgid "This will be the minimum width for cover photo uploads"
|
1834 |
msgstr ""
|
1835 |
|
1836 |
-
#: includes/admin/core/class-admin-settings.php:
|
1837 |
msgid "Access"
|
1838 |
msgstr ""
|
1839 |
|
1840 |
-
#: includes/admin/core/class-admin-settings.php:
|
1841 |
msgid "Restriction Content"
|
1842 |
msgstr ""
|
1843 |
|
1844 |
-
#: includes/admin/core/class-admin-settings.php:
|
1845 |
msgid "Other"
|
1846 |
msgstr ""
|
1847 |
|
1848 |
-
#: includes/admin/core/class-admin-settings.php:
|
1849 |
msgid "Enable the Reset Password Limit?"
|
1850 |
msgstr ""
|
1851 |
|
1852 |
-
#: includes/admin/core/class-admin-settings.php:
|
1853 |
msgid "Reset Password Limit"
|
1854 |
msgstr ""
|
1855 |
|
1856 |
-
#: includes/admin/core/class-admin-settings.php:
|
1857 |
msgid ""
|
1858 |
"Set the maximum reset password limit. If reached the maximum limit, user "
|
1859 |
"will be locked from using this."
|
1860 |
msgstr ""
|
1861 |
|
1862 |
-
#: includes/admin/core/class-admin-settings.php:
|
1863 |
msgid "Blocked Email Addresses"
|
1864 |
msgstr ""
|
1865 |
|
1866 |
-
#: includes/admin/core/class-admin-settings.php:
|
1867 |
msgid ""
|
1868 |
"This will block the specified e-mail addresses from being able to sign up or "
|
1869 |
"sign in to your site. To block an entire domain, use something like *@domain."
|
1870 |
"com"
|
1871 |
msgstr ""
|
1872 |
|
1873 |
-
#: includes/admin/core/class-admin-settings.php:
|
1874 |
msgid "Blacklist Words"
|
1875 |
msgstr ""
|
1876 |
|
1877 |
-
#: includes/admin/core/class-admin-settings.php:
|
1878 |
msgid ""
|
1879 |
"This option lets you specify blacklist of words to prevent anyone from "
|
1880 |
"signing up with such a word as their username"
|
1881 |
msgstr ""
|
1882 |
|
1883 |
-
#: includes/admin/core/class-admin-settings.php:
|
1884 |
#: includes/admin/core/list-tables/emails-list-table.php:300
|
1885 |
msgid "Email"
|
1886 |
msgstr ""
|
1887 |
|
1888 |
-
#: includes/admin/core/class-admin-settings.php:
|
1889 |
msgid "Admin E-mail Address"
|
1890 |
msgstr ""
|
1891 |
|
1892 |
-
#: includes/admin/core/class-admin-settings.php:
|
1893 |
-
#: includes/admin/core/class-admin-settings.php:
|
1894 |
msgid "e.g. admin@companyname.com"
|
1895 |
msgstr ""
|
1896 |
|
1897 |
-
#: includes/admin/core/class-admin-settings.php:
|
1898 |
msgid "Mail appears from"
|
1899 |
msgstr ""
|
1900 |
|
1901 |
-
#: includes/admin/core/class-admin-settings.php:
|
1902 |
msgid "e.g. Site Name"
|
1903 |
msgstr ""
|
1904 |
|
1905 |
-
#: includes/admin/core/class-admin-settings.php:
|
1906 |
msgid "Mail appears from address"
|
1907 |
msgstr ""
|
1908 |
|
1909 |
-
#: includes/admin/core/class-admin-settings.php:
|
1910 |
msgid "Use HTML for E-mails?"
|
1911 |
msgstr ""
|
1912 |
|
1913 |
-
#: includes/admin/core/class-admin-settings.php:
|
1914 |
msgid ""
|
1915 |
"If you plan use e-mails with HTML, please make sure that this option is "
|
1916 |
"enabled. Otherwise, HTML will be displayed as plain text."
|
1917 |
msgstr ""
|
1918 |
|
1919 |
-
#: includes/admin/core/class-admin-settings.php:
|
1920 |
msgid "Appearance"
|
1921 |
msgstr ""
|
1922 |
|
1923 |
-
#: includes/admin/core/class-admin-settings.php:
|
1924 |
msgid "Profile"
|
1925 |
msgstr ""
|
1926 |
|
1927 |
-
#: includes/admin/core/class-admin-settings.php:
|
1928 |
msgid "Profile Default Template"
|
1929 |
msgstr ""
|
1930 |
|
1931 |
-
#: includes/admin/core/class-admin-settings.php:
|
1932 |
msgid "This will be the default template to output profile"
|
1933 |
msgstr ""
|
1934 |
|
1935 |
-
#: includes/admin/core/class-admin-settings.php:
|
1936 |
msgid "Profile Maximum Width"
|
1937 |
msgstr ""
|
1938 |
|
1939 |
-
#: includes/admin/core/class-admin-settings.php:
|
1940 |
msgid "Profile Area Maximum Width"
|
1941 |
msgstr ""
|
1942 |
|
1943 |
-
#: includes/admin/core/class-admin-settings.php:
|
1944 |
#: includes/admin/templates/form/profile_customize.php:56
|
1945 |
msgid ""
|
1946 |
"The maximum width of the profile area inside profile (below profile header)"
|
1947 |
msgstr ""
|
1948 |
|
1949 |
-
#: includes/admin/core/class-admin-settings.php:
|
1950 |
msgid "Profile Field Icons"
|
1951 |
msgstr ""
|
1952 |
|
1953 |
-
#: includes/admin/core/class-admin-settings.php:
|
1954 |
msgid "This is applicable for edit mode only"
|
1955 |
msgstr ""
|
1956 |
|
1957 |
-
#: includes/admin/core/class-admin-settings.php:
|
1958 |
-
#: includes/admin/core/class-admin-settings.php:
|
1959 |
-
#: includes/admin/core/class-admin-settings.php:
|
1960 |
#: includes/admin/templates/form/login_customize.php:40
|
1961 |
#: includes/admin/templates/form/profile_customize.php:67
|
1962 |
#: includes/admin/templates/form/register_customize.php:55
|
1963 |
msgid "Show inside text field"
|
1964 |
msgstr ""
|
1965 |
|
1966 |
-
#: includes/admin/core/class-admin-settings.php:
|
1967 |
-
#: includes/admin/core/class-admin-settings.php:
|
1968 |
-
#: includes/admin/core/class-admin-settings.php:
|
1969 |
#: includes/admin/templates/form/login_customize.php:41
|
1970 |
#: includes/admin/templates/form/profile_customize.php:68
|
1971 |
#: includes/admin/templates/form/register_customize.php:56
|
1972 |
msgid "Show with label"
|
1973 |
msgstr ""
|
1974 |
|
1975 |
-
#: includes/admin/core/class-admin-settings.php:
|
1976 |
-
#: includes/admin/core/class-admin-settings.php:
|
1977 |
-
#: includes/admin/core/class-admin-settings.php:
|
1978 |
#: includes/admin/templates/form/login_customize.php:42
|
1979 |
#: includes/admin/templates/form/profile_customize.php:69
|
1980 |
#: includes/admin/templates/form/register_customize.php:57
|
1981 |
msgid "Turn off"
|
1982 |
msgstr ""
|
1983 |
|
1984 |
-
#: includes/admin/core/class-admin-settings.php:
|
1985 |
msgid "Profile Primary Button Text"
|
1986 |
msgstr ""
|
1987 |
|
1988 |
-
#: includes/admin/core/class-admin-settings.php:
|
1989 |
msgid "The text that is used for updating profile button"
|
1990 |
msgstr ""
|
1991 |
|
1992 |
-
#: includes/admin/core/class-admin-settings.php:
|
1993 |
msgid "Profile Secondary Button"
|
1994 |
msgstr ""
|
1995 |
|
1996 |
-
#: includes/admin/core/class-admin-settings.php:
|
1997 |
-
#: includes/admin/core/class-admin-settings.php:
|
1998 |
-
#: includes/admin/core/class-admin-settings.php:
|
1999 |
msgid "Switch on/off the secondary button display in the form"
|
2000 |
msgstr ""
|
2001 |
|
2002 |
-
#: includes/admin/core/class-admin-settings.php:
|
2003 |
msgid "Profile Secondary Button Text"
|
2004 |
msgstr ""
|
2005 |
|
2006 |
-
#: includes/admin/core/class-admin-settings.php:
|
2007 |
msgid "The text that is used for cancelling update profile button"
|
2008 |
msgstr ""
|
2009 |
|
2010 |
-
#: includes/admin/core/class-admin-settings.php:
|
2011 |
msgid "Default Profile Photo"
|
2012 |
msgstr ""
|
2013 |
|
2014 |
-
#: includes/admin/core/class-admin-settings.php:
|
2015 |
msgid ""
|
2016 |
"You can change the default profile picture globally here. Please make sure "
|
2017 |
"that the photo is 300x300px."
|
2018 |
msgstr ""
|
2019 |
|
2020 |
-
#: includes/admin/core/class-admin-settings.php:
|
2021 |
msgid "Select Default Profile Photo"
|
2022 |
msgstr ""
|
2023 |
|
2024 |
-
#: includes/admin/core/class-admin-settings.php:
|
2025 |
msgid "Default Cover Photo"
|
2026 |
msgstr ""
|
2027 |
|
2028 |
-
#: includes/admin/core/class-admin-settings.php:
|
2029 |
msgid ""
|
2030 |
"You can change the default cover photo globally here. Please make sure that "
|
2031 |
"the default cover is large enough and respects the ratio you are using for "
|
2032 |
"cover photos."
|
2033 |
msgstr ""
|
2034 |
|
2035 |
-
#: includes/admin/core/class-admin-settings.php:
|
2036 |
msgid "Select Default Cover Photo"
|
2037 |
msgstr ""
|
2038 |
|
2039 |
-
#: includes/admin/core/class-admin-settings.php:
|
2040 |
#: includes/admin/templates/form/profile_customize.php:128
|
2041 |
msgid "Profile Photo Size"
|
2042 |
msgstr ""
|
2043 |
|
2044 |
-
#: includes/admin/core/class-admin-settings.php:
|
2045 |
msgid ""
|
2046 |
"The global default of profile photo size. This can be overridden by "
|
2047 |
"individual form settings"
|
2048 |
msgstr ""
|
2049 |
|
2050 |
-
#: includes/admin/core/class-admin-settings.php:
|
2051 |
msgid "Profile Cover Photos"
|
2052 |
msgstr ""
|
2053 |
|
2054 |
-
#: includes/admin/core/class-admin-settings.php:
|
2055 |
msgid "Switch on/off the profile cover photos"
|
2056 |
msgstr ""
|
2057 |
|
2058 |
-
#: includes/admin/core/class-admin-settings.php:
|
2059 |
msgid "Profile Cover Ratio"
|
2060 |
msgstr ""
|
2061 |
|
2062 |
-
#: includes/admin/core/class-admin-settings.php:
|
2063 |
msgid "Choose global ratio for cover photos of profiles"
|
2064 |
msgstr ""
|
2065 |
|
2066 |
-
#: includes/admin/core/class-admin-settings.php:
|
2067 |
msgid "Profile Header Meta Text Icon"
|
2068 |
msgstr ""
|
2069 |
|
2070 |
-
#: includes/admin/core/class-admin-settings.php:
|
2071 |
msgid "Display field icons for related user meta fields in header or not"
|
2072 |
msgstr ""
|
2073 |
|
2074 |
-
#: includes/admin/core/class-admin-settings.php:
|
2075 |
msgid "Show display name in profile header"
|
2076 |
msgstr ""
|
2077 |
|
2078 |
-
#: includes/admin/core/class-admin-settings.php:
|
2079 |
msgid "Switch on/off the user name on profile header"
|
2080 |
msgstr ""
|
2081 |
|
2082 |
-
#: includes/admin/core/class-admin-settings.php:
|
2083 |
msgid "Show social links in profile header"
|
2084 |
msgstr ""
|
2085 |
|
2086 |
-
#: includes/admin/core/class-admin-settings.php:
|
2087 |
msgid "Switch on/off the social links on profile header"
|
2088 |
msgstr ""
|
2089 |
|
2090 |
-
#: includes/admin/core/class-admin-settings.php:
|
2091 |
msgid "Show user description in header"
|
2092 |
msgstr ""
|
2093 |
|
2094 |
-
#: includes/admin/core/class-admin-settings.php:
|
2095 |
msgid "Switch on/off the user description on profile header"
|
2096 |
msgstr ""
|
2097 |
|
2098 |
-
#: includes/admin/core/class-admin-settings.php:
|
2099 |
msgid "Enable html support for user description"
|
2100 |
msgstr ""
|
2101 |
|
2102 |
-
#: includes/admin/core/class-admin-settings.php:
|
2103 |
msgid ""
|
2104 |
"Switch on/off to enable/disable support for html tags on user description."
|
2105 |
msgstr ""
|
2106 |
|
2107 |
-
#: includes/admin/core/class-admin-settings.php:
|
2108 |
msgid "User description maximum chars"
|
2109 |
msgstr ""
|
2110 |
|
2111 |
-
#: includes/admin/core/class-admin-settings.php:
|
2112 |
msgid ""
|
2113 |
"Maximum number of characters to allow in user description field in header."
|
2114 |
msgstr ""
|
2115 |
|
2116 |
-
#: includes/admin/core/class-admin-settings.php:
|
2117 |
msgid "Profile Header Menu Position"
|
2118 |
msgstr ""
|
2119 |
|
2120 |
-
#: includes/admin/core/class-admin-settings.php:
|
2121 |
msgid ""
|
2122 |
"For incompatible themes, please make the menu open from left instead of "
|
2123 |
"bottom by default."
|
2124 |
msgstr ""
|
2125 |
|
2126 |
-
#: includes/admin/core/class-admin-settings.php:
|
2127 |
msgid "Show a custom message if profile is empty"
|
2128 |
msgstr ""
|
2129 |
|
2130 |
-
#: includes/admin/core/class-admin-settings.php:
|
2131 |
msgid "Switch on/off the custom message that appears when the profile is empty"
|
2132 |
msgstr ""
|
2133 |
|
2134 |
-
#: includes/admin/core/class-admin-settings.php:
|
2135 |
msgid "Show the emoticon"
|
2136 |
msgstr ""
|
2137 |
|
2138 |
-
#: includes/admin/core/class-admin-settings.php:
|
2139 |
msgid "Switch on/off the emoticon (sad face) that appears above the message"
|
2140 |
msgstr ""
|
2141 |
|
2142 |
-
#: includes/admin/core/class-admin-settings.php:
|
2143 |
msgid "Profile Menu"
|
2144 |
msgstr ""
|
2145 |
|
2146 |
-
#: includes/admin/core/class-admin-settings.php:
|
2147 |
#: includes/admin/templates/form/mode.php:9
|
2148 |
msgid "Registration Form"
|
2149 |
msgstr ""
|
2150 |
|
2151 |
-
#: includes/admin/core/class-admin-settings.php:
|
2152 |
msgid "Registration Default Template"
|
2153 |
msgstr ""
|
2154 |
|
2155 |
-
#: includes/admin/core/class-admin-settings.php:
|
2156 |
msgid "This will be the default template to output registration"
|
2157 |
msgstr ""
|
2158 |
|
2159 |
-
#: includes/admin/core/class-admin-settings.php:
|
2160 |
msgid "Registration Maximum Width"
|
2161 |
msgstr ""
|
2162 |
|
2163 |
-
#: includes/admin/core/class-admin-settings.php:
|
2164 |
-
#: includes/admin/core/class-admin-settings.php:
|
2165 |
msgid "The maximum width this shortcode can take from the page width"
|
2166 |
msgstr ""
|
2167 |
|
2168 |
-
#: includes/admin/core/class-admin-settings.php:
|
2169 |
msgid "Registration Shortcode Alignment"
|
2170 |
msgstr ""
|
2171 |
|
2172 |
-
#: includes/admin/core/class-admin-settings.php:
|
2173 |
-
#: includes/admin/core/class-admin-settings.php:
|
2174 |
#: includes/admin/templates/form/profile_customize.php:115
|
2175 |
msgid "The shortcode is centered by default unless you specify otherwise here"
|
2176 |
msgstr ""
|
2177 |
|
2178 |
-
#: includes/admin/core/class-admin-settings.php:
|
2179 |
-
#: includes/admin/core/class-admin-settings.php:
|
2180 |
msgid "Centered"
|
2181 |
msgstr ""
|
2182 |
|
2183 |
-
#: includes/admin/core/class-admin-settings.php:
|
2184 |
-
#: includes/admin/core/class-admin-settings.php:
|
2185 |
msgid "Left aligned"
|
2186 |
msgstr ""
|
2187 |
|
2188 |
-
#: includes/admin/core/class-admin-settings.php:
|
2189 |
-
#: includes/admin/core/class-admin-settings.php:
|
2190 |
msgid "Right aligned"
|
2191 |
msgstr ""
|
2192 |
|
2193 |
-
#: includes/admin/core/class-admin-settings.php:
|
2194 |
msgid "Registration Field Icons"
|
2195 |
msgstr ""
|
2196 |
|
2197 |
-
#: includes/admin/core/class-admin-settings.php:
|
2198 |
msgid "This controls the display of field icons in the registration form"
|
2199 |
msgstr ""
|
2200 |
|
2201 |
-
#: includes/admin/core/class-admin-settings.php:
|
2202 |
msgid "Registration Primary Button Text"
|
2203 |
msgstr ""
|
2204 |
|
2205 |
-
#: includes/admin/core/class-admin-settings.php:
|
2206 |
-
#: includes/admin/core/class-admin-settings.php:
|
2207 |
msgid "The text that is used for primary button text"
|
2208 |
msgstr ""
|
2209 |
|
2210 |
-
#: includes/admin/core/class-admin-settings.php:
|
2211 |
msgid "Registration Secondary Button"
|
2212 |
msgstr ""
|
2213 |
|
2214 |
-
#: includes/admin/core/class-admin-settings.php:
|
2215 |
msgid "Registration Secondary Button Text"
|
2216 |
msgstr ""
|
2217 |
|
2218 |
-
#: includes/admin/core/class-admin-settings.php:
|
2219 |
-
#: includes/admin/core/class-admin-settings.php:
|
2220 |
msgid "The text that is used for the secondary button text"
|
2221 |
msgstr ""
|
2222 |
|
2223 |
-
#: includes/admin/core/class-admin-settings.php:
|
2224 |
msgid "Registration Secondary Button URL"
|
2225 |
msgstr ""
|
2226 |
|
2227 |
-
#: includes/admin/core/class-admin-settings.php:
|
2228 |
-
#: includes/admin/core/class-admin-settings.php:
|
2229 |
msgid "You can replace default link for this button by entering custom URL"
|
2230 |
msgstr ""
|
2231 |
|
2232 |
-
#: includes/admin/core/class-admin-settings.php:
|
2233 |
msgid "Registration Default Role"
|
2234 |
msgstr ""
|
2235 |
|
2236 |
-
#: includes/admin/core/class-admin-settings.php:
|
2237 |
msgid ""
|
2238 |
"This will be the default role assigned to users registering thru "
|
2239 |
"registration form"
|
2240 |
msgstr ""
|
2241 |
|
2242 |
-
#: includes/admin/core/class-admin-settings.php:
|
2243 |
#: includes/admin/templates/form/mode.php:13
|
2244 |
msgid "Login Form"
|
2245 |
msgstr ""
|
2246 |
|
2247 |
-
#: includes/admin/core/class-admin-settings.php:
|
2248 |
msgid "Login Default Template"
|
2249 |
msgstr ""
|
2250 |
|
2251 |
-
#: includes/admin/core/class-admin-settings.php:
|
2252 |
msgid "This will be the default template to output login"
|
2253 |
msgstr ""
|
2254 |
|
2255 |
-
#: includes/admin/core/class-admin-settings.php:
|
2256 |
msgid "Login Maximum Width"
|
2257 |
msgstr ""
|
2258 |
|
2259 |
-
#: includes/admin/core/class-admin-settings.php:
|
2260 |
msgid "Login Shortcode Alignment"
|
2261 |
msgstr ""
|
2262 |
|
2263 |
-
#: includes/admin/core/class-admin-settings.php:
|
2264 |
msgid "Login Field Icons"
|
2265 |
msgstr ""
|
2266 |
|
2267 |
-
#: includes/admin/core/class-admin-settings.php:
|
2268 |
msgid "This controls the display of field icons in the login form"
|
2269 |
msgstr ""
|
2270 |
|
2271 |
-
#: includes/admin/core/class-admin-settings.php:
|
2272 |
msgid "Login Primary Button Text"
|
2273 |
msgstr ""
|
2274 |
|
2275 |
-
#: includes/admin/core/class-admin-settings.php:
|
2276 |
msgid "Login Secondary Button"
|
2277 |
msgstr ""
|
2278 |
|
2279 |
-
#: includes/admin/core/class-admin-settings.php:
|
2280 |
msgid "Login Secondary Button Text"
|
2281 |
msgstr ""
|
2282 |
|
2283 |
-
#: includes/admin/core/class-admin-settings.php:
|
2284 |
msgid "Login Secondary Button URL"
|
2285 |
msgstr ""
|
2286 |
|
2287 |
-
#: includes/admin/core/class-admin-settings.php:
|
2288 |
msgid "Login Forgot Password Link"
|
2289 |
msgstr ""
|
2290 |
|
2291 |
-
#: includes/admin/core/class-admin-settings.php:
|
2292 |
msgid "Switch on/off the forgot password link in login form"
|
2293 |
msgstr ""
|
2294 |
|
2295 |
-
#: includes/admin/core/class-admin-settings.php:
|
2296 |
msgid "Show \"Remember Me\""
|
2297 |
msgstr ""
|
2298 |
|
2299 |
-
#: includes/admin/core/class-admin-settings.php:
|
2300 |
msgid ""
|
2301 |
"Allow users to choose If they want to stay signed in even after closing the "
|
2302 |
"browser. If you do not show this option, the default will be to not remember "
|
2303 |
"login session."
|
2304 |
msgstr ""
|
2305 |
|
2306 |
-
#: includes/admin/core/class-admin-settings.php:
|
2307 |
msgid "Licenses"
|
2308 |
msgstr ""
|
2309 |
|
2310 |
-
#: includes/admin/core/class-admin-settings.php:
|
2311 |
msgid "Misc"
|
2312 |
msgstr ""
|
2313 |
|
2314 |
-
#: includes/admin/core/class-admin-settings.php:
|
2315 |
msgid "Show an asterisk for required fields"
|
2316 |
msgstr ""
|
2317 |
|
2318 |
-
#: includes/admin/core/class-admin-settings.php:
|
2319 |
msgid "User Profile Title"
|
2320 |
msgstr ""
|
2321 |
|
2322 |
-
#: includes/admin/core/class-admin-settings.php:
|
2323 |
msgid "This is the title that is displayed on a specific user profile"
|
2324 |
msgstr ""
|
2325 |
|
2326 |
-
#: includes/admin/core/class-admin-settings.php:
|
2327 |
msgid "User Profile Dynamic Meta Description"
|
2328 |
msgstr ""
|
2329 |
|
2330 |
-
#: includes/admin/core/class-admin-settings.php:
|
2331 |
msgid ""
|
2332 |
"This will be used in the meta description that is available for search-"
|
2333 |
"engines."
|
2334 |
msgstr ""
|
2335 |
|
2336 |
-
#: includes/admin/core/class-admin-settings.php:
|
2337 |
msgid "Disable Cache User Profile"
|
2338 |
msgstr ""
|
2339 |
|
2340 |
-
#: includes/admin/core/class-admin-settings.php:
|
2341 |
msgid ""
|
2342 |
"Check this box if you would like to disable Ultimate Member user's cache."
|
2343 |
msgstr ""
|
2344 |
|
2345 |
-
#: includes/admin/core/class-admin-settings.php:
|
2346 |
msgid "Remove Data on Uninstall?"
|
2347 |
msgstr ""
|
2348 |
|
2349 |
-
#: includes/admin/core/class-admin-settings.php:
|
2350 |
msgid ""
|
2351 |
"Check this box if you would like Ultimate Member to completely remove all of "
|
2352 |
"its data when the plugin/extensions are deleted."
|
2353 |
msgstr ""
|
2354 |
|
2355 |
-
#: includes/admin/core/class-admin-settings.php:
|
2356 |
msgid "Install Info"
|
2357 |
msgstr ""
|
2358 |
|
2359 |
-
#: includes/admin/core/class-admin-settings.php:
|
2360 |
msgid "Ultimate Member - Settings"
|
2361 |
msgstr ""
|
2362 |
|
2363 |
-
#: includes/admin/core/class-admin-settings.php:
|
2364 |
msgid "Save Changes"
|
2365 |
msgstr ""
|
2366 |
|
2367 |
-
#: includes/admin/core/class-admin-settings.php:
|
2368 |
msgid "Subject Line"
|
2369 |
msgstr ""
|
2370 |
|
2371 |
-
#: includes/admin/core/class-admin-settings.php:
|
2372 |
msgid "This is the subject line of the e-mail"
|
2373 |
msgstr ""
|
2374 |
|
2375 |
-
#: includes/admin/core/class-admin-settings.php:
|
2376 |
msgid "Message Body"
|
2377 |
msgstr ""
|
2378 |
|
2379 |
-
#: includes/admin/core/class-admin-settings.php:
|
2380 |
msgid "This is the content of the e-mail"
|
2381 |
msgstr ""
|
2382 |
|
2383 |
-
#: includes/admin/core/class-admin-settings.php:
|
2384 |
-
#: includes/admin/core/class-admin-settings.php:
|
2385 |
#, php-format
|
2386 |
msgid ""
|
2387 |
"Your license key expired on %s. Please <a href=\"%s\" target=\"_blank"
|
2388 |
"\">renew your license key</a>."
|
2389 |
msgstr ""
|
2390 |
|
2391 |
-
#: includes/admin/core/class-admin-settings.php:
|
2392 |
-
#: includes/admin/core/class-admin-settings.php:
|
2393 |
#, php-format
|
2394 |
msgid ""
|
2395 |
"Your license key has been disabled. Please <a href=\"%s\" target=\"_blank"
|
2396 |
"\">contact support</a> for more information."
|
2397 |
msgstr ""
|
2398 |
|
2399 |
-
#: includes/admin/core/class-admin-settings.php:
|
2400 |
-
#: includes/admin/core/class-admin-settings.php:
|
2401 |
#, php-format
|
2402 |
msgid ""
|
2403 |
"Invalid license. Please <a href=\"%s\" target=\"_blank\">visit your account "
|
2404 |
"page</a> and verify it."
|
2405 |
msgstr ""
|
2406 |
|
2407 |
-
#: includes/admin/core/class-admin-settings.php:
|
2408 |
-
#: includes/admin/core/class-admin-settings.php:
|
2409 |
#, php-format
|
2410 |
msgid ""
|
2411 |
"Your %s is not active for this URL. Please <a href=\"%s\" target=\"_blank"
|
2412 |
"\">visit your account page</a> to manage your license key URLs."
|
2413 |
msgstr ""
|
2414 |
|
2415 |
-
#: includes/admin/core/class-admin-settings.php:
|
2416 |
-
#: includes/admin/core/class-admin-settings.php:
|
2417 |
#, php-format
|
2418 |
msgid "This appears to be an invalid license key for %s."
|
2419 |
msgstr ""
|
2420 |
|
2421 |
-
#: includes/admin/core/class-admin-settings.php:
|
2422 |
-
#: includes/admin/core/class-admin-settings.php:
|
2423 |
#, php-format
|
2424 |
msgid ""
|
2425 |
"Your license key has reached its activation limit. <a href=\"%s\">View "
|
2426 |
"possible upgrades</a> now."
|
2427 |
msgstr ""
|
2428 |
|
2429 |
-
#: includes/admin/core/class-admin-settings.php:
|
2430 |
-
#: includes/admin/core/class-admin-settings.php:
|
2431 |
msgid ""
|
2432 |
"The key you entered belongs to a bundle, please use the product specific "
|
2433 |
"license key."
|
2434 |
msgstr ""
|
2435 |
|
2436 |
-
#: includes/admin/core/class-admin-settings.php:
|
2437 |
-
#: includes/admin/core/class-admin-settings.php:
|
2438 |
msgid "unknown_error"
|
2439 |
msgstr ""
|
2440 |
|
2441 |
-
#: includes/admin/core/class-admin-settings.php:
|
2442 |
-
#: includes/admin/core/class-admin-settings.php:
|
2443 |
#, php-format
|
2444 |
msgid ""
|
2445 |
"There was an error with this license key: %s. Please <a href=\"%s\">contact "
|
2446 |
"our support team</a>."
|
2447 |
msgstr ""
|
2448 |
|
2449 |
-
#: includes/admin/core/class-admin-settings.php:
|
2450 |
msgid "License key never expires."
|
2451 |
msgstr ""
|
2452 |
|
2453 |
-
#: includes/admin/core/class-admin-settings.php:
|
2454 |
#, php-format
|
2455 |
msgid ""
|
2456 |
"Your license key expires soon! It expires on %s. <a href=\"%s\" target="
|
2457 |
"\"_blank\">Renew your license key</a>."
|
2458 |
msgstr ""
|
2459 |
|
2460 |
-
#: includes/admin/core/class-admin-settings.php:
|
2461 |
#, php-format
|
2462 |
msgid "Your license key expires on %s."
|
2463 |
msgstr ""
|
2464 |
|
2465 |
-
#: includes/admin/core/class-admin-settings.php:
|
2466 |
#, php-format
|
2467 |
msgid "To receive updates, please enter your valid %s license key."
|
2468 |
msgstr ""
|
2469 |
|
2470 |
-
#: includes/admin/core/class-admin-settings.php:
|
2471 |
msgid "Clear License"
|
2472 |
msgstr ""
|
2473 |
|
2474 |
-
#: includes/admin/core/class-admin-settings.php:
|
2475 |
msgid "Activate"
|
2476 |
msgstr ""
|
2477 |
|
2478 |
-
#: includes/admin/core/class-admin-settings.php:
|
2479 |
msgid "Re-Activate"
|
2480 |
msgstr ""
|
2481 |
|
2482 |
-
#: includes/admin/core/class-admin-settings.php:
|
2483 |
msgid ""
|
2484 |
"To copy the Install info, click below then press Ctrl + C (PC) or Cmd + C "
|
2485 |
"(Mac)."
|
@@ -2550,7 +2584,7 @@ msgid "UM Action"
|
|
2550 |
msgstr ""
|
2551 |
|
2552 |
#: includes/admin/core/class-admin-users.php:116
|
2553 |
-
#: includes/core/class-fields.php:
|
2554 |
msgid "Apply"
|
2555 |
msgstr ""
|
2556 |
|
@@ -2593,7 +2627,7 @@ msgstr ""
|
|
2593 |
|
2594 |
#: includes/admin/core/class-admin-users.php:305
|
2595 |
#: includes/admin/templates/dashboard/users.php:11
|
2596 |
-
#: includes/core/class-user.php:
|
2597 |
msgid "Approved"
|
2598 |
msgstr ""
|
2599 |
|
@@ -2664,11 +2698,6 @@ msgstr ""
|
|
2664 |
msgid "Are you sure you want to delete this role?"
|
2665 |
msgstr ""
|
2666 |
|
2667 |
-
#: includes/admin/core/list-tables/roles-list-table.php:338
|
2668 |
-
#: includes/admin/core/list-tables/roles-list-table.php:406
|
2669 |
-
msgid "Delete"
|
2670 |
-
msgstr ""
|
2671 |
-
|
2672 |
#: includes/admin/core/list-tables/roles-list-table.php:343
|
2673 |
msgid "Are you sure you want to reset UM role meta?"
|
2674 |
msgstr ""
|
@@ -2708,7 +2737,7 @@ msgstr ""
|
|
2708 |
#: includes/admin/core/list-tables/roles-list-table.php:479
|
2709 |
#: includes/admin/core/packages/2.0-beta1/user_roles.php:14
|
2710 |
#: includes/admin/templates/role/role-edit.php:136
|
2711 |
-
#: includes/core/class-common.php:56 includes/core/class-common.php:
|
2712 |
msgid "Add New"
|
2713 |
msgstr ""
|
2714 |
|
@@ -2863,7 +2892,7 @@ msgid "You did not create any user roles yet"
|
|
2863 |
msgstr ""
|
2864 |
|
2865 |
#: includes/admin/core/packages/2.0-beta1/user_roles.php:18
|
2866 |
-
#: includes/core/class-common.php:60 includes/core/class-common.php:
|
2867 |
msgid "Nothing found in Trash"
|
2868 |
msgstr ""
|
2869 |
|
@@ -2928,12 +2957,12 @@ msgid "Get latest versions"
|
|
2928 |
msgstr ""
|
2929 |
|
2930 |
#: includes/admin/templates/dashboard/users.php:27
|
2931 |
-
#: includes/core/class-user.php:
|
2932 |
msgid "Pending Review"
|
2933 |
msgstr ""
|
2934 |
|
2935 |
#: includes/admin/templates/dashboard/users.php:32
|
2936 |
-
#: includes/core/class-user.php:
|
2937 |
msgid "Awaiting E-mail Confirmation"
|
2938 |
msgstr ""
|
2939 |
|
@@ -3524,12 +3553,12 @@ msgstr ""
|
|
3524 |
#: includes/admin/templates/modal/dynamic_new_group.php:15
|
3525 |
#: includes/admin/templates/modal/fonticons.php:11
|
3526 |
#: includes/admin/templates/role/publish.php:24
|
3527 |
-
#: includes/core/class-fields.php:
|
3528 |
-
#: includes/core/um-actions-profile.php:
|
3529 |
-
#: includes/core/um-actions-profile.php:
|
3530 |
-
#: includes/core/um-actions-profile.php:
|
3531 |
-
#: includes/core/um-actions-profile.php:
|
3532 |
-
#: includes/core/um-actions-profile.php:
|
3533 |
msgid "Cancel"
|
3534 |
msgstr ""
|
3535 |
|
@@ -3873,31 +3902,31 @@ msgstr ""
|
|
3873 |
msgid "Check All"
|
3874 |
msgstr ""
|
3875 |
|
3876 |
-
#: includes/class-config.php:129 includes/class-config.php:
|
3877 |
msgid "User"
|
3878 |
msgstr ""
|
3879 |
|
3880 |
#: includes/class-config.php:130 includes/class-config.php:235
|
3881 |
-
#: includes/class-config.php:241 includes/class-config.php:
|
3882 |
msgid "Login"
|
3883 |
msgstr ""
|
3884 |
|
3885 |
#: includes/class-config.php:131 includes/class-config.php:233
|
3886 |
-
#: includes/class-config.php:245 includes/class-config.php:
|
3887 |
msgid "Register"
|
3888 |
msgstr ""
|
3889 |
|
3890 |
-
#: includes/class-config.php:132 includes/class-config.php:
|
3891 |
msgid "Members"
|
3892 |
msgstr ""
|
3893 |
|
3894 |
-
#: includes/class-config.php:133 includes/class-config.php:
|
3895 |
-
#: includes/core/um-actions-profile.php:
|
3896 |
#: includes/core/um-actions-user.php:15
|
3897 |
msgid "Logout"
|
3898 |
msgstr ""
|
3899 |
|
3900 |
-
#: includes/class-config.php:135 includes/class-config.php:
|
3901 |
msgid "Password Reset"
|
3902 |
msgstr ""
|
3903 |
|
@@ -4060,35 +4089,27 @@ msgstr ""
|
|
4060 |
msgid "Cheatin’ huh?"
|
4061 |
msgstr ""
|
4062 |
|
4063 |
-
#: includes/core/class-account.php:
|
4064 |
msgid "Update Account"
|
4065 |
msgstr ""
|
4066 |
|
4067 |
-
#: includes/core/class-account.php:
|
4068 |
msgid "Change Password"
|
4069 |
msgstr ""
|
4070 |
|
4071 |
-
#: includes/core/class-account.php:
|
4072 |
msgid "Update Password"
|
4073 |
msgstr ""
|
4074 |
|
4075 |
-
#: includes/core/class-account.php:
|
4076 |
-
msgid "Privacy"
|
4077 |
-
msgstr ""
|
4078 |
-
|
4079 |
-
#: includes/core/class-account.php:103
|
4080 |
msgid "Update Privacy"
|
4081 |
msgstr ""
|
4082 |
|
4083 |
-
#: includes/core/class-account.php:
|
4084 |
-
msgid "Notifications"
|
4085 |
-
msgstr ""
|
4086 |
-
|
4087 |
-
#: includes/core/class-account.php:109
|
4088 |
msgid "Update Notifications"
|
4089 |
msgstr ""
|
4090 |
|
4091 |
-
#: includes/core/class-account.php:
|
4092 |
#: includes/core/class-builtin.php:1136 includes/core/class-builtin.php:1139
|
4093 |
msgid "Delete Account"
|
4094 |
msgstr ""
|
@@ -4168,7 +4189,7 @@ msgstr ""
|
|
4168 |
msgid "You must add a shortcode to the content area"
|
4169 |
msgstr ""
|
4170 |
|
4171 |
-
#: includes/core/class-builtin.php:663 includes/core/class-user.php:
|
4172 |
msgid "Only me"
|
4173 |
msgstr ""
|
4174 |
|
@@ -4177,11 +4198,6 @@ msgstr ""
|
|
4177 |
msgid "Username or E-mail"
|
4178 |
msgstr ""
|
4179 |
|
4180 |
-
#: includes/core/class-builtin.php:693 includes/core/class-builtin.php:696
|
4181 |
-
#: includes/core/class-builtin.php:1150 includes/core/class-builtin.php:1153
|
4182 |
-
msgid "Password"
|
4183 |
-
msgstr ""
|
4184 |
-
|
4185 |
#: includes/core/class-builtin.php:737 includes/core/class-builtin.php:740
|
4186 |
#: includes/core/class-builtin.php:1325
|
4187 |
msgid "Website URL"
|
@@ -4322,7 +4338,7 @@ msgid "Cover Photo"
|
|
4322 |
msgstr ""
|
4323 |
|
4324 |
#: includes/core/class-builtin.php:1080
|
4325 |
-
#: includes/core/um-actions-profile.php:
|
4326 |
msgid "Change your cover photo"
|
4327 |
msgstr ""
|
4328 |
|
@@ -6164,23 +6180,23 @@ msgstr ""
|
|
6164 |
msgid "Search Forms"
|
6165 |
msgstr ""
|
6166 |
|
6167 |
-
#: includes/core/class-common.php:
|
6168 |
msgid "Member Directory"
|
6169 |
msgstr ""
|
6170 |
|
6171 |
-
#: includes/core/class-common.php:
|
6172 |
msgid "Add New Member Directory"
|
6173 |
msgstr ""
|
6174 |
|
6175 |
-
#: includes/core/class-common.php:
|
6176 |
msgid "Edit Member Directory"
|
6177 |
msgstr ""
|
6178 |
|
6179 |
-
#: includes/core/class-common.php:
|
6180 |
msgid "You did not create any member directories yet"
|
6181 |
msgstr ""
|
6182 |
|
6183 |
-
#: includes/core/class-common.php:
|
6184 |
msgid "Search Member Directories"
|
6185 |
msgstr ""
|
6186 |
|
@@ -6241,89 +6257,89 @@ msgstr ""
|
|
6241 |
msgid "Add translation to %s"
|
6242 |
msgstr ""
|
6243 |
|
6244 |
-
#: includes/core/class-fields.php:
|
6245 |
#, php-format
|
6246 |
msgid "%s"
|
6247 |
msgstr ""
|
6248 |
|
6249 |
-
#: includes/core/class-fields.php:
|
6250 |
msgid "Custom Field"
|
6251 |
msgstr ""
|
6252 |
|
6253 |
-
#: includes/core/class-fields.php:
|
6254 |
msgid "Please upload a valid image!"
|
6255 |
msgstr ""
|
6256 |
|
6257 |
-
#: includes/core/class-fields.php:
|
6258 |
msgid "Upload"
|
6259 |
msgstr ""
|
6260 |
|
6261 |
-
#: includes/core/class-fields.php:
|
6262 |
msgid "Sorry this is not a valid image."
|
6263 |
msgstr ""
|
6264 |
|
6265 |
-
#: includes/core/class-fields.php:
|
6266 |
msgid "This image is too large!"
|
6267 |
msgstr ""
|
6268 |
|
6269 |
-
#: includes/core/class-fields.php:
|
6270 |
msgid "This image is too small!"
|
6271 |
msgstr ""
|
6272 |
|
6273 |
-
#: includes/core/class-fields.php:
|
6274 |
msgid "You can only upload one image"
|
6275 |
msgstr ""
|
6276 |
|
6277 |
-
#: includes/core/class-fields.php:
|
6278 |
msgid "Current Password"
|
6279 |
msgstr ""
|
6280 |
|
6281 |
-
#: includes/core/class-fields.php:
|
6282 |
msgid "New Password"
|
6283 |
msgstr ""
|
6284 |
|
6285 |
-
#: includes/core/class-fields.php:
|
6286 |
#, php-format
|
6287 |
msgid "Confirm %s"
|
6288 |
msgstr ""
|
6289 |
|
6290 |
-
#: includes/core/class-fields.php:
|
6291 |
msgid "Upload Photo"
|
6292 |
msgstr ""
|
6293 |
|
6294 |
-
#: includes/core/class-fields.php:
|
6295 |
-
#: includes/core/um-actions-profile.php:
|
6296 |
msgid "Change photo"
|
6297 |
msgstr ""
|
6298 |
|
6299 |
-
#: includes/core/class-fields.php:
|
6300 |
msgid "Processing..."
|
6301 |
msgstr ""
|
6302 |
|
6303 |
-
#: includes/core/class-fields.php:
|
6304 |
msgid "Upload File"
|
6305 |
msgstr ""
|
6306 |
|
6307 |
-
#: includes/core/class-fields.php:
|
6308 |
msgid "This file has been removed."
|
6309 |
msgstr ""
|
6310 |
|
6311 |
-
#: includes/core/class-fields.php:
|
6312 |
msgid "Change file"
|
6313 |
msgstr ""
|
6314 |
|
6315 |
-
#: includes/core/class-fields.php:
|
6316 |
msgid "Save"
|
6317 |
msgstr ""
|
6318 |
|
6319 |
-
#: includes/core/class-fields.php:
|
6320 |
#, php-format
|
6321 |
msgid ""
|
6322 |
"Your profile is looking a little empty. Why not <a href=\"%s\">add</a> some "
|
6323 |
"information!"
|
6324 |
msgstr ""
|
6325 |
|
6326 |
-
#: includes/core/class-fields.php:
|
6327 |
msgid "This user has not added any information to their profile yet."
|
6328 |
msgstr ""
|
6329 |
|
@@ -6364,44 +6380,44 @@ msgstr ""
|
|
6364 |
msgid "You can not edit this user"
|
6365 |
msgstr ""
|
6366 |
|
6367 |
-
#: includes/core/class-password.php:
|
6368 |
msgid "Please provide your username or email"
|
6369 |
msgstr ""
|
6370 |
|
6371 |
-
#: includes/core/class-password.php:
|
6372 |
msgid "We can't find an account registered with that address or username"
|
6373 |
msgstr ""
|
6374 |
|
6375 |
-
#: includes/core/class-password.php:
|
6376 |
msgid ""
|
6377 |
"You have reached the limit for requesting password change for this user "
|
6378 |
"already. Contact support if you cannot open the email"
|
6379 |
msgstr ""
|
6380 |
|
6381 |
-
#: includes/core/class-password.php:
|
6382 |
msgid "You must enter a new password"
|
6383 |
msgstr ""
|
6384 |
|
6385 |
-
#: includes/core/class-password.php:
|
6386 |
msgid "Your password must contain at least 8 characters"
|
6387 |
msgstr ""
|
6388 |
|
6389 |
-
#: includes/core/class-password.php:
|
6390 |
msgid "Your password must contain less than 30 characters"
|
6391 |
msgstr ""
|
6392 |
|
6393 |
-
#: includes/core/class-password.php:
|
6394 |
#: includes/core/um-actions-form.php:476
|
6395 |
msgid ""
|
6396 |
"Your password must contain at least one lowercase letter, one capital letter "
|
6397 |
"and one number"
|
6398 |
msgstr ""
|
6399 |
|
6400 |
-
#: includes/core/class-password.php:
|
6401 |
msgid "You must confirm your new password"
|
6402 |
msgstr ""
|
6403 |
|
6404 |
-
#: includes/core/class-password.php:
|
6405 |
msgid "Your passwords do not match"
|
6406 |
msgstr ""
|
6407 |
|
@@ -6517,45 +6533,45 @@ msgstr ""
|
|
6517 |
msgid "Default Template"
|
6518 |
msgstr ""
|
6519 |
|
6520 |
-
#: includes/core/class-uploader.php:
|
6521 |
msgid "Your image is invalid!"
|
6522 |
msgstr ""
|
6523 |
|
6524 |
-
#: includes/core/class-uploader.php:
|
6525 |
msgid "This media type is not recognized."
|
6526 |
msgstr ""
|
6527 |
|
6528 |
-
#: includes/core/class-uploader.php:
|
6529 |
msgid "Your image is invalid or too large!"
|
6530 |
msgstr ""
|
6531 |
|
6532 |
-
#: includes/core/class-uploader.php:
|
6533 |
#, php-format
|
6534 |
msgid "Your photo is too small. It must be at least %spx wide."
|
6535 |
msgstr ""
|
6536 |
|
6537 |
-
#: includes/core/class-uploader.php:
|
6538 |
msgid "This file type is not recognized."
|
6539 |
msgstr ""
|
6540 |
|
6541 |
-
#: includes/core/class-uploader.php:
|
6542 |
#, php-format
|
6543 |
msgid "Maximum file size allowed: %s"
|
6544 |
msgstr ""
|
6545 |
|
6546 |
-
#: includes/core/class-user.php:
|
6547 |
msgid "Ultimate Member Role"
|
6548 |
msgstr ""
|
6549 |
|
6550 |
-
#: includes/core/class-user.php:
|
6551 |
msgid "— No role for Ultimate Member —"
|
6552 |
msgstr ""
|
6553 |
|
6554 |
-
#: includes/core/class-user.php:
|
6555 |
msgid "Membership Rejected"
|
6556 |
msgstr ""
|
6557 |
|
6558 |
-
#: includes/core/class-user.php:
|
6559 |
msgid "Membership Inactive"
|
6560 |
msgstr ""
|
6561 |
|
@@ -6564,11 +6580,13 @@ msgid "Are you hacking? Please try again!"
|
|
6564 |
msgstr ""
|
6565 |
|
6566 |
#: includes/core/um-actions-account.php:27
|
|
|
6567 |
msgid "You must enter your password"
|
6568 |
msgstr ""
|
6569 |
|
6570 |
#: includes/core/um-actions-account.php:30
|
6571 |
#: includes/core/um-actions-account.php:47
|
|
|
6572 |
msgid "This is not your password"
|
6573 |
msgstr ""
|
6574 |
|
@@ -6588,19 +6606,19 @@ msgstr ""
|
|
6588 |
msgid "You must provide your last name"
|
6589 |
msgstr ""
|
6590 |
|
6591 |
-
#: includes/core/um-actions-account.php:
|
6592 |
msgid "You must provide your e-mail"
|
6593 |
msgstr ""
|
6594 |
|
6595 |
-
#: includes/core/um-actions-account.php:
|
6596 |
msgid "Please provide a valid e-mail"
|
6597 |
msgstr ""
|
6598 |
|
6599 |
-
#: includes/core/um-actions-account.php:
|
6600 |
msgid "Email already linked to another account"
|
6601 |
msgstr ""
|
6602 |
|
6603 |
-
#: includes/core/um-actions-account.php:
|
6604 |
msgid "Email me when"
|
6605 |
msgstr ""
|
6606 |
|
@@ -6877,42 +6895,42 @@ msgstr ""
|
|
6877 |
msgid "You are not allowed to edit this user."
|
6878 |
msgstr ""
|
6879 |
|
6880 |
-
#: includes/core/um-actions-profile.php:
|
6881 |
#, php-format
|
6882 |
msgid "Your choosed %s"
|
6883 |
msgstr ""
|
6884 |
|
6885 |
-
#: includes/core/um-actions-profile.php:
|
6886 |
msgid "Change cover photo"
|
6887 |
msgstr ""
|
6888 |
|
6889 |
-
#: includes/core/um-actions-profile.php:
|
6890 |
msgid "Upload a cover photo"
|
6891 |
msgstr ""
|
6892 |
|
6893 |
-
#: includes/core/um-actions-profile.php:
|
6894 |
msgid "Upload photo"
|
6895 |
msgstr ""
|
6896 |
|
6897 |
-
#: includes/core/um-actions-profile.php:
|
6898 |
msgid "Remove photo"
|
6899 |
msgstr ""
|
6900 |
|
6901 |
-
#: includes/core/um-actions-profile.php:
|
6902 |
msgid "Tell us a bit about yourself..."
|
6903 |
msgstr ""
|
6904 |
|
6905 |
-
#: includes/core/um-actions-profile.php:
|
6906 |
#, php-format
|
6907 |
msgid "This user account status is %s"
|
6908 |
msgstr ""
|
6909 |
|
6910 |
-
#: includes/core/um-actions-profile.php:
|
6911 |
-
#: includes/core/um-actions-profile.php:
|
6912 |
msgid "Edit Profile"
|
6913 |
msgstr ""
|
6914 |
|
6915 |
-
#: includes/core/um-actions-profile.php:
|
6916 |
msgid "My Account"
|
6917 |
msgstr ""
|
6918 |
|
@@ -6978,7 +6996,7 @@ msgstr ""
|
|
6978 |
msgid "Title:"
|
6979 |
msgstr ""
|
6980 |
|
6981 |
-
#: templates/members-grid.php:
|
6982 |
msgid "Edit profile"
|
6983 |
msgstr ""
|
6984 |
|
1 |
msgid ""
|
2 |
msgstr ""
|
3 |
"Project-Id-Version: Ultimate Member\n"
|
4 |
+
"POT-Creation-Date: 2019-03-27 19:18+0200\n"
|
5 |
+
"PO-Revision-Date: 2019-03-27 19:18+0200\n"
|
6 |
"Last-Translator: \n"
|
7 |
"Language-Team: \n"
|
8 |
"Language: en_US\n"
|
35 |
msgstr ""
|
36 |
|
37 |
#: includes/admin/class-admin.php:308
|
38 |
+
#: includes/admin/core/class-admin-settings.php:1162
|
39 |
msgid "Settings"
|
40 |
msgstr ""
|
41 |
|
103 |
#: includes/admin/core/class-admin-builder.php:767
|
104 |
#: includes/admin/core/class-admin-dragdrop.php:32
|
105 |
#: includes/admin/core/class-admin-menu.php:104
|
106 |
+
#: includes/core/class-fields.php:4100
|
107 |
msgid "Please login as administrator"
|
108 |
msgstr ""
|
109 |
|
158 |
|
159 |
#: includes/admin/core/class-admin-builder.php:1143
|
160 |
#: includes/core/class-form.php:155 includes/core/class-form.php:328
|
161 |
+
#: includes/core/class-password.php:532
|
162 |
msgid "This is not possible for security reasons."
|
163 |
msgstr ""
|
164 |
|
226 |
#: includes/admin/templates/form/register_gdpr.php:23
|
227 |
#: includes/core/class-builtin.php:1130 includes/core/class-builtin.php:1144
|
228 |
#: includes/core/class-builtin.php:1145
|
229 |
+
#: includes/core/um-actions-account.php:271
|
230 |
msgid "No"
|
231 |
msgstr ""
|
232 |
|
253 |
msgid "Yes"
|
254 |
msgstr ""
|
255 |
|
256 |
+
#: includes/admin/core/class-admin-enqueue.php:168
|
257 |
msgid "e.g. Member Directory"
|
258 |
msgstr ""
|
259 |
|
260 |
+
#: includes/admin/core/class-admin-enqueue.php:170
|
261 |
msgid "e.g. New Registration Form"
|
262 |
msgstr ""
|
263 |
|
264 |
+
#: includes/admin/core/class-admin-enqueue.php:215
|
265 |
+
#: includes/admin/core/class-admin-enqueue.php:246
|
266 |
+
#: includes/admin/core/class-admin-forms.php:832
|
267 |
+
#: includes/admin/core/class-admin-forms.php:846
|
268 |
+
#: includes/admin/core/class-admin-forms.php:951
|
269 |
+
#: includes/admin/core/class-admin-forms.php:960
|
270 |
#: includes/admin/core/class-admin-notices.php:390
|
271 |
+
#: includes/core/um-actions-profile.php:556
|
272 |
msgid "Remove"
|
273 |
msgstr ""
|
274 |
|
275 |
+
#: includes/admin/core/class-admin-enqueue.php:216
|
276 |
+
#: includes/admin/core/class-admin-enqueue.php:247
|
277 |
+
#: includes/admin/core/class-admin-forms.php:1028
|
278 |
msgid "Select"
|
279 |
msgstr ""
|
280 |
|
281 |
+
#: includes/admin/core/class-admin-enqueue.php:244
|
282 |
msgid "Are sure, maybe some settings not saved"
|
283 |
msgstr ""
|
284 |
|
285 |
+
#: includes/admin/core/class-admin-enqueue.php:450
|
286 |
+
#: includes/core/class-builtin.php:693 includes/core/class-builtin.php:696
|
287 |
+
#: includes/core/class-builtin.php:1150 includes/core/class-builtin.php:1153
|
288 |
+
msgid "Password"
|
289 |
+
msgstr ""
|
290 |
+
|
291 |
+
#: includes/admin/core/class-admin-enqueue.php:454
|
292 |
+
#: includes/core/class-account.php:104
|
293 |
+
msgid "Privacy"
|
294 |
+
msgstr ""
|
295 |
+
|
296 |
+
#: includes/admin/core/class-admin-enqueue.php:458
|
297 |
+
#: includes/core/class-account.php:110
|
298 |
+
msgid "Notifications"
|
299 |
+
msgstr ""
|
300 |
+
|
301 |
+
#: includes/admin/core/class-admin-enqueue.php:462
|
302 |
+
#: includes/admin/core/list-tables/roles-list-table.php:338
|
303 |
+
#: includes/admin/core/list-tables/roles-list-table.php:406
|
304 |
+
msgid "Delete"
|
305 |
+
msgstr ""
|
306 |
+
|
307 |
+
#: includes/admin/core/class-admin-enqueue.php:507
|
308 |
+
msgid "Ultimate Member Blocks"
|
309 |
+
msgstr ""
|
310 |
+
|
311 |
#: includes/admin/core/class-admin-forms.php:314
|
312 |
#: includes/core/um-filters-fields.php:15
|
313 |
msgid "Required"
|
314 |
msgstr ""
|
315 |
|
316 |
+
#: includes/admin/core/class-admin-forms.php:470
|
317 |
msgid "Choose Icon"
|
318 |
msgstr ""
|
319 |
|
320 |
+
#: includes/admin/core/class-admin-forms.php:476
|
321 |
msgid "No Icon"
|
322 |
msgstr ""
|
323 |
|
324 |
+
#: includes/admin/core/class-admin-forms.php:1005
|
325 |
msgid "Select media"
|
326 |
msgstr ""
|
327 |
|
328 |
+
#: includes/admin/core/class-admin-forms.php:1029
|
329 |
msgid "Clear"
|
330 |
msgstr ""
|
331 |
|
434 |
#. Plugin Name of the plugin/theme
|
435 |
#. Author of the plugin/theme
|
436 |
#: includes/admin/core/class-admin-menu.php:145
|
437 |
+
#: includes/core/class-user.php:555
|
438 |
msgid "Ultimate Member"
|
439 |
msgstr ""
|
440 |
|
454 |
msgstr ""
|
455 |
|
456 |
#: includes/admin/core/class-admin-menu.php:162
|
457 |
+
#: includes/core/class-common.php:84
|
458 |
msgid "Member Directories"
|
459 |
msgstr ""
|
460 |
|
461 |
#: includes/admin/core/class-admin-menu.php:204
|
462 |
+
#: includes/admin/core/class-admin-settings.php:1035
|
463 |
msgid "Extensions"
|
464 |
msgstr ""
|
465 |
|
1210 |
msgstr ""
|
1211 |
|
1212 |
#: includes/admin/core/class-admin-notices.php:407
|
1213 |
+
msgid "You have the latest updates."
|
1214 |
msgstr ""
|
1215 |
|
1216 |
#: includes/admin/core/class-admin-notices.php:411
|
1687 |
msgstr ""
|
1688 |
|
1689 |
#: includes/admin/core/class-admin-settings.php:436
|
1690 |
+
#: includes/class-config.php:134 includes/class-config.php:744
|
1691 |
+
#: includes/core/class-account.php:92
|
1692 |
msgid "Account"
|
1693 |
msgstr ""
|
1694 |
|
1766 |
msgstr ""
|
1767 |
|
1768 |
#: includes/admin/core/class-admin-settings.php:500
|
1769 |
+
msgid "Password is required?"
|
1770 |
msgstr ""
|
1771 |
|
1772 |
#: includes/admin/core/class-admin-settings.php:501
|
1773 |
+
msgid "Password is required to save account data."
|
1774 |
+
msgstr ""
|
1775 |
+
|
1776 |
+
#: includes/admin/core/class-admin-settings.php:506
|
1777 |
+
msgid "Allow users to hide their profiles from directory"
|
1778 |
+
msgstr ""
|
1779 |
+
|
1780 |
+
#: includes/admin/core/class-admin-settings.php:507
|
1781 |
msgid ""
|
1782 |
"Whether to allow users changing their profile visibility from member "
|
1783 |
"directory in account page."
|
1784 |
msgstr ""
|
1785 |
|
1786 |
+
#: includes/admin/core/class-admin-settings.php:512
|
1787 |
msgid "Require a strong password?"
|
1788 |
msgstr ""
|
1789 |
|
1790 |
+
#: includes/admin/core/class-admin-settings.php:513
|
1791 |
msgid ""
|
1792 |
"Enable or disable a strong password rules on account page / change password "
|
1793 |
"tab"
|
1794 |
msgstr ""
|
1795 |
|
1796 |
+
#: includes/admin/core/class-admin-settings.php:518
|
1797 |
msgid "Uploads"
|
1798 |
msgstr ""
|
1799 |
|
1800 |
+
#: includes/admin/core/class-admin-settings.php:524
|
1801 |
msgid "Profile Photo Maximum File Size (bytes)"
|
1802 |
msgstr ""
|
1803 |
|
1804 |
+
#: includes/admin/core/class-admin-settings.php:525
|
1805 |
msgid "Sets a maximum size for the uploaded photo"
|
1806 |
msgstr ""
|
1807 |
|
1808 |
+
#: includes/admin/core/class-admin-settings.php:532
|
1809 |
msgid "Cover Photo Maximum File Size (bytes)"
|
1810 |
msgstr ""
|
1811 |
|
1812 |
+
#: includes/admin/core/class-admin-settings.php:533
|
1813 |
msgid "Sets a maximum size for the uploaded cover"
|
1814 |
msgstr ""
|
1815 |
|
1816 |
+
#: includes/admin/core/class-admin-settings.php:539
|
1817 |
msgid "Profile Photo Thumbnail Sizes (px)"
|
1818 |
msgstr ""
|
1819 |
|
1820 |
+
#: includes/admin/core/class-admin-settings.php:540
|
1821 |
msgid ""
|
1822 |
"Here you can define which thumbnail sizes will be created for each profile "
|
1823 |
"photo upload."
|
1824 |
msgstr ""
|
1825 |
|
1826 |
+
#: includes/admin/core/class-admin-settings.php:542
|
1827 |
+
#: includes/admin/core/class-admin-settings.php:552
|
1828 |
msgid "Add New Size"
|
1829 |
msgstr ""
|
1830 |
|
1831 |
+
#: includes/admin/core/class-admin-settings.php:549
|
1832 |
msgid "Cover Photo Thumbnail Sizes (px)"
|
1833 |
msgstr ""
|
1834 |
|
1835 |
+
#: includes/admin/core/class-admin-settings.php:550
|
1836 |
msgid ""
|
1837 |
"Here you can define which thumbnail sizes will be created for each cover "
|
1838 |
"photo upload."
|
1839 |
msgstr ""
|
1840 |
|
1841 |
+
#: includes/admin/core/class-admin-settings.php:560
|
1842 |
msgid "Image Quality"
|
1843 |
msgstr ""
|
1844 |
|
1845 |
+
#: includes/admin/core/class-admin-settings.php:561
|
1846 |
msgid ""
|
1847 |
"Quality is used to determine quality of image uploads, and ranges from 0 "
|
1848 |
"(worst quality, smaller file) to 100 (best quality, biggest file). The "
|
1849 |
"default range is 60."
|
1850 |
msgstr ""
|
1851 |
|
1852 |
+
#: includes/admin/core/class-admin-settings.php:568
|
1853 |
msgid "Image Upload Maximum Width (px)"
|
1854 |
msgstr ""
|
1855 |
|
1856 |
+
#: includes/admin/core/class-admin-settings.php:569
|
1857 |
msgid ""
|
1858 |
"Any image upload above this width will be resized to this limit "
|
1859 |
"automatically."
|
1860 |
msgstr ""
|
1861 |
|
1862 |
+
#: includes/admin/core/class-admin-settings.php:576
|
1863 |
msgid "Cover Photo Minimum Width (px)"
|
1864 |
msgstr ""
|
1865 |
|
1866 |
+
#: includes/admin/core/class-admin-settings.php:577
|
1867 |
msgid "This will be the minimum width for cover photo uploads"
|
1868 |
msgstr ""
|
1869 |
|
1870 |
+
#: includes/admin/core/class-admin-settings.php:584
|
1871 |
msgid "Access"
|
1872 |
msgstr ""
|
1873 |
|
1874 |
+
#: includes/admin/core/class-admin-settings.php:587
|
1875 |
msgid "Restriction Content"
|
1876 |
msgstr ""
|
1877 |
|
1878 |
+
#: includes/admin/core/class-admin-settings.php:591
|
1879 |
msgid "Other"
|
1880 |
msgstr ""
|
1881 |
|
1882 |
+
#: includes/admin/core/class-admin-settings.php:596
|
1883 |
msgid "Enable the Reset Password Limit?"
|
1884 |
msgstr ""
|
1885 |
|
1886 |
+
#: includes/admin/core/class-admin-settings.php:601
|
1887 |
msgid "Reset Password Limit"
|
1888 |
msgstr ""
|
1889 |
|
1890 |
+
#: includes/admin/core/class-admin-settings.php:602
|
1891 |
msgid ""
|
1892 |
"Set the maximum reset password limit. If reached the maximum limit, user "
|
1893 |
"will be locked from using this."
|
1894 |
msgstr ""
|
1895 |
|
1896 |
+
#: includes/admin/core/class-admin-settings.php:610
|
1897 |
msgid "Blocked Email Addresses"
|
1898 |
msgstr ""
|
1899 |
|
1900 |
+
#: includes/admin/core/class-admin-settings.php:611
|
1901 |
msgid ""
|
1902 |
"This will block the specified e-mail addresses from being able to sign up or "
|
1903 |
"sign in to your site. To block an entire domain, use something like *@domain."
|
1904 |
"com"
|
1905 |
msgstr ""
|
1906 |
|
1907 |
+
#: includes/admin/core/class-admin-settings.php:616
|
1908 |
msgid "Blacklist Words"
|
1909 |
msgstr ""
|
1910 |
|
1911 |
+
#: includes/admin/core/class-admin-settings.php:617
|
1912 |
msgid ""
|
1913 |
"This option lets you specify blacklist of words to prevent anyone from "
|
1914 |
"signing up with such a word as their username"
|
1915 |
msgstr ""
|
1916 |
|
1917 |
+
#: includes/admin/core/class-admin-settings.php:624
|
1918 |
#: includes/admin/core/list-tables/emails-list-table.php:300
|
1919 |
msgid "Email"
|
1920 |
msgstr ""
|
1921 |
|
1922 |
+
#: includes/admin/core/class-admin-settings.php:629
|
1923 |
msgid "Admin E-mail Address"
|
1924 |
msgstr ""
|
1925 |
|
1926 |
+
#: includes/admin/core/class-admin-settings.php:630
|
1927 |
+
#: includes/admin/core/class-admin-settings.php:642
|
1928 |
msgid "e.g. admin@companyname.com"
|
1929 |
msgstr ""
|
1930 |
|
1931 |
+
#: includes/admin/core/class-admin-settings.php:635
|
1932 |
msgid "Mail appears from"
|
1933 |
msgstr ""
|
1934 |
|
1935 |
+
#: includes/admin/core/class-admin-settings.php:636
|
1936 |
msgid "e.g. Site Name"
|
1937 |
msgstr ""
|
1938 |
|
1939 |
+
#: includes/admin/core/class-admin-settings.php:641
|
1940 |
msgid "Mail appears from address"
|
1941 |
msgstr ""
|
1942 |
|
1943 |
+
#: includes/admin/core/class-admin-settings.php:647
|
1944 |
msgid "Use HTML for E-mails?"
|
1945 |
msgstr ""
|
1946 |
|
1947 |
+
#: includes/admin/core/class-admin-settings.php:648
|
1948 |
msgid ""
|
1949 |
"If you plan use e-mails with HTML, please make sure that this option is "
|
1950 |
"enabled. Otherwise, HTML will be displayed as plain text."
|
1951 |
msgstr ""
|
1952 |
|
1953 |
+
#: includes/admin/core/class-admin-settings.php:653
|
1954 |
msgid "Appearance"
|
1955 |
msgstr ""
|
1956 |
|
1957 |
+
#: includes/admin/core/class-admin-settings.php:656
|
1958 |
msgid "Profile"
|
1959 |
msgstr ""
|
1960 |
|
1961 |
+
#: includes/admin/core/class-admin-settings.php:661
|
1962 |
msgid "Profile Default Template"
|
1963 |
msgstr ""
|
1964 |
|
1965 |
+
#: includes/admin/core/class-admin-settings.php:662
|
1966 |
msgid "This will be the default template to output profile"
|
1967 |
msgstr ""
|
1968 |
|
1969 |
+
#: includes/admin/core/class-admin-settings.php:670
|
1970 |
msgid "Profile Maximum Width"
|
1971 |
msgstr ""
|
1972 |
|
1973 |
+
#: includes/admin/core/class-admin-settings.php:679
|
1974 |
msgid "Profile Area Maximum Width"
|
1975 |
msgstr ""
|
1976 |
|
1977 |
+
#: includes/admin/core/class-admin-settings.php:681
|
1978 |
#: includes/admin/templates/form/profile_customize.php:56
|
1979 |
msgid ""
|
1980 |
"The maximum width of the profile area inside profile (below profile header)"
|
1981 |
msgstr ""
|
1982 |
|
1983 |
+
#: includes/admin/core/class-admin-settings.php:687
|
1984 |
msgid "Profile Field Icons"
|
1985 |
msgstr ""
|
1986 |
|
1987 |
+
#: includes/admin/core/class-admin-settings.php:688
|
1988 |
msgid "This is applicable for edit mode only"
|
1989 |
msgstr ""
|
1990 |
|
1991 |
+
#: includes/admin/core/class-admin-settings.php:691
|
1992 |
+
#: includes/admin/core/class-admin-settings.php:887
|
1993 |
+
#: includes/admin/core/class-admin-settings.php:977
|
1994 |
#: includes/admin/templates/form/login_customize.php:40
|
1995 |
#: includes/admin/templates/form/profile_customize.php:67
|
1996 |
#: includes/admin/templates/form/register_customize.php:55
|
1997 |
msgid "Show inside text field"
|
1998 |
msgstr ""
|
1999 |
|
2000 |
+
#: includes/admin/core/class-admin-settings.php:692
|
2001 |
+
#: includes/admin/core/class-admin-settings.php:888
|
2002 |
+
#: includes/admin/core/class-admin-settings.php:978
|
2003 |
#: includes/admin/templates/form/login_customize.php:41
|
2004 |
#: includes/admin/templates/form/profile_customize.php:68
|
2005 |
#: includes/admin/templates/form/register_customize.php:56
|
2006 |
msgid "Show with label"
|
2007 |
msgstr ""
|
2008 |
|
2009 |
+
#: includes/admin/core/class-admin-settings.php:693
|
2010 |
+
#: includes/admin/core/class-admin-settings.php:889
|
2011 |
+
#: includes/admin/core/class-admin-settings.php:979
|
2012 |
#: includes/admin/templates/form/login_customize.php:42
|
2013 |
#: includes/admin/templates/form/profile_customize.php:69
|
2014 |
#: includes/admin/templates/form/register_customize.php:57
|
2015 |
msgid "Turn off"
|
2016 |
msgstr ""
|
2017 |
|
2018 |
+
#: includes/admin/core/class-admin-settings.php:700
|
2019 |
msgid "Profile Primary Button Text"
|
2020 |
msgstr ""
|
2021 |
|
2022 |
+
#: includes/admin/core/class-admin-settings.php:702
|
2023 |
msgid "The text that is used for updating profile button"
|
2024 |
msgstr ""
|
2025 |
|
2026 |
+
#: includes/admin/core/class-admin-settings.php:708
|
2027 |
msgid "Profile Secondary Button"
|
2028 |
msgstr ""
|
2029 |
|
2030 |
+
#: includes/admin/core/class-admin-settings.php:710
|
2031 |
+
#: includes/admin/core/class-admin-settings.php:906
|
2032 |
+
#: includes/admin/core/class-admin-settings.php:996
|
2033 |
msgid "Switch on/off the secondary button display in the form"
|
2034 |
msgstr ""
|
2035 |
|
2036 |
+
#: includes/admin/core/class-admin-settings.php:715
|
2037 |
msgid "Profile Secondary Button Text"
|
2038 |
msgstr ""
|
2039 |
|
2040 |
+
#: includes/admin/core/class-admin-settings.php:717
|
2041 |
msgid "The text that is used for cancelling update profile button"
|
2042 |
msgstr ""
|
2043 |
|
2044 |
+
#: includes/admin/core/class-admin-settings.php:724
|
2045 |
msgid "Default Profile Photo"
|
2046 |
msgstr ""
|
2047 |
|
2048 |
+
#: includes/admin/core/class-admin-settings.php:725
|
2049 |
msgid ""
|
2050 |
"You can change the default profile picture globally here. Please make sure "
|
2051 |
"that the photo is 300x300px."
|
2052 |
msgstr ""
|
2053 |
|
2054 |
+
#: includes/admin/core/class-admin-settings.php:726
|
2055 |
msgid "Select Default Profile Photo"
|
2056 |
msgstr ""
|
2057 |
|
2058 |
+
#: includes/admin/core/class-admin-settings.php:736
|
2059 |
msgid "Default Cover Photo"
|
2060 |
msgstr ""
|
2061 |
|
2062 |
+
#: includes/admin/core/class-admin-settings.php:737
|
2063 |
msgid ""
|
2064 |
"You can change the default cover photo globally here. Please make sure that "
|
2065 |
"the default cover is large enough and respects the ratio you are using for "
|
2066 |
"cover photos."
|
2067 |
msgstr ""
|
2068 |
|
2069 |
+
#: includes/admin/core/class-admin-settings.php:738
|
2070 |
msgid "Select Default Cover Photo"
|
2071 |
msgstr ""
|
2072 |
|
2073 |
+
#: includes/admin/core/class-admin-settings.php:743
|
2074 |
#: includes/admin/templates/form/profile_customize.php:128
|
2075 |
msgid "Profile Photo Size"
|
2076 |
msgstr ""
|
2077 |
|
2078 |
+
#: includes/admin/core/class-admin-settings.php:745
|
2079 |
msgid ""
|
2080 |
"The global default of profile photo size. This can be overridden by "
|
2081 |
"individual form settings"
|
2082 |
msgstr ""
|
2083 |
|
2084 |
+
#: includes/admin/core/class-admin-settings.php:751
|
2085 |
msgid "Profile Cover Photos"
|
2086 |
msgstr ""
|
2087 |
|
2088 |
+
#: includes/admin/core/class-admin-settings.php:753
|
2089 |
msgid "Switch on/off the profile cover photos"
|
2090 |
msgstr ""
|
2091 |
|
2092 |
+
#: includes/admin/core/class-admin-settings.php:758
|
2093 |
msgid "Profile Cover Ratio"
|
2094 |
msgstr ""
|
2095 |
|
2096 |
+
#: includes/admin/core/class-admin-settings.php:759
|
2097 |
msgid "Choose global ratio for cover photos of profiles"
|
2098 |
msgstr ""
|
2099 |
|
2100 |
+
#: includes/admin/core/class-admin-settings.php:773
|
2101 |
msgid "Profile Header Meta Text Icon"
|
2102 |
msgstr ""
|
2103 |
|
2104 |
+
#: includes/admin/core/class-admin-settings.php:775
|
2105 |
msgid "Display field icons for related user meta fields in header or not"
|
2106 |
msgstr ""
|
2107 |
|
2108 |
+
#: includes/admin/core/class-admin-settings.php:780
|
2109 |
msgid "Show display name in profile header"
|
2110 |
msgstr ""
|
2111 |
|
2112 |
+
#: includes/admin/core/class-admin-settings.php:782
|
2113 |
msgid "Switch on/off the user name on profile header"
|
2114 |
msgstr ""
|
2115 |
|
2116 |
+
#: includes/admin/core/class-admin-settings.php:787
|
2117 |
msgid "Show social links in profile header"
|
2118 |
msgstr ""
|
2119 |
|
2120 |
+
#: includes/admin/core/class-admin-settings.php:789
|
2121 |
msgid "Switch on/off the social links on profile header"
|
2122 |
msgstr ""
|
2123 |
|
2124 |
+
#: includes/admin/core/class-admin-settings.php:794
|
2125 |
msgid "Show user description in header"
|
2126 |
msgstr ""
|
2127 |
|
2128 |
+
#: includes/admin/core/class-admin-settings.php:796
|
2129 |
msgid "Switch on/off the user description on profile header"
|
2130 |
msgstr ""
|
2131 |
|
2132 |
+
#: includes/admin/core/class-admin-settings.php:801
|
2133 |
msgid "Enable html support for user description"
|
2134 |
msgstr ""
|
2135 |
|
2136 |
+
#: includes/admin/core/class-admin-settings.php:803
|
2137 |
msgid ""
|
2138 |
"Switch on/off to enable/disable support for html tags on user description."
|
2139 |
msgstr ""
|
2140 |
|
2141 |
+
#: includes/admin/core/class-admin-settings.php:808
|
2142 |
msgid "User description maximum chars"
|
2143 |
msgstr ""
|
2144 |
|
2145 |
+
#: includes/admin/core/class-admin-settings.php:810
|
2146 |
msgid ""
|
2147 |
"Maximum number of characters to allow in user description field in header."
|
2148 |
msgstr ""
|
2149 |
|
2150 |
+
#: includes/admin/core/class-admin-settings.php:817
|
2151 |
msgid "Profile Header Menu Position"
|
2152 |
msgstr ""
|
2153 |
|
2154 |
+
#: includes/admin/core/class-admin-settings.php:819
|
2155 |
msgid ""
|
2156 |
"For incompatible themes, please make the menu open from left instead of "
|
2157 |
"bottom by default."
|
2158 |
msgstr ""
|
2159 |
|
2160 |
+
#: includes/admin/core/class-admin-settings.php:829
|
2161 |
msgid "Show a custom message if profile is empty"
|
2162 |
msgstr ""
|
2163 |
|
2164 |
+
#: includes/admin/core/class-admin-settings.php:831
|
2165 |
msgid "Switch on/off the custom message that appears when the profile is empty"
|
2166 |
msgstr ""
|
2167 |
|
2168 |
+
#: includes/admin/core/class-admin-settings.php:836
|
2169 |
msgid "Show the emoticon"
|
2170 |
msgstr ""
|
2171 |
|
2172 |
+
#: includes/admin/core/class-admin-settings.php:838
|
2173 |
msgid "Switch on/off the emoticon (sad face) that appears above the message"
|
2174 |
msgstr ""
|
2175 |
|
2176 |
+
#: includes/admin/core/class-admin-settings.php:844
|
2177 |
msgid "Profile Menu"
|
2178 |
msgstr ""
|
2179 |
|
2180 |
+
#: includes/admin/core/class-admin-settings.php:848
|
2181 |
#: includes/admin/templates/form/mode.php:9
|
2182 |
msgid "Registration Form"
|
2183 |
msgstr ""
|
2184 |
|
2185 |
+
#: includes/admin/core/class-admin-settings.php:853
|
2186 |
msgid "Registration Default Template"
|
2187 |
msgstr ""
|
2188 |
|
2189 |
+
#: includes/admin/core/class-admin-settings.php:854
|
2190 |
msgid "This will be the default template to output registration"
|
2191 |
msgstr ""
|
2192 |
|
2193 |
+
#: includes/admin/core/class-admin-settings.php:862
|
2194 |
msgid "Registration Maximum Width"
|
2195 |
msgstr ""
|
2196 |
|
2197 |
+
#: includes/admin/core/class-admin-settings.php:864
|
2198 |
+
#: includes/admin/core/class-admin-settings.php:954
|
2199 |
msgid "The maximum width this shortcode can take from the page width"
|
2200 |
msgstr ""
|
2201 |
|
2202 |
+
#: includes/admin/core/class-admin-settings.php:870
|
2203 |
msgid "Registration Shortcode Alignment"
|
2204 |
msgstr ""
|
2205 |
|
2206 |
+
#: includes/admin/core/class-admin-settings.php:871
|
2207 |
+
#: includes/admin/core/class-admin-settings.php:961
|
2208 |
#: includes/admin/templates/form/profile_customize.php:115
|
2209 |
msgid "The shortcode is centered by default unless you specify otherwise here"
|
2210 |
msgstr ""
|
2211 |
|
2212 |
+
#: includes/admin/core/class-admin-settings.php:874
|
2213 |
+
#: includes/admin/core/class-admin-settings.php:964
|
2214 |
msgid "Centered"
|
2215 |
msgstr ""
|
2216 |
|
2217 |
+
#: includes/admin/core/class-admin-settings.php:875
|
2218 |
+
#: includes/admin/core/class-admin-settings.php:965
|
2219 |
msgid "Left aligned"
|
2220 |
msgstr ""
|
2221 |
|
2222 |
+
#: includes/admin/core/class-admin-settings.php:876
|
2223 |
+
#: includes/admin/core/class-admin-settings.php:966
|
2224 |
msgid "Right aligned"
|
2225 |
msgstr ""
|
2226 |
|
2227 |
+
#: includes/admin/core/class-admin-settings.php:883
|
2228 |
msgid "Registration Field Icons"
|
2229 |
msgstr ""
|
2230 |
|
2231 |
+
#: includes/admin/core/class-admin-settings.php:884
|
2232 |
msgid "This controls the display of field icons in the registration form"
|
2233 |
msgstr ""
|
2234 |
|
2235 |
+
#: includes/admin/core/class-admin-settings.php:896
|
2236 |
msgid "Registration Primary Button Text"
|
2237 |
msgstr ""
|
2238 |
|
2239 |
+
#: includes/admin/core/class-admin-settings.php:898
|
2240 |
+
#: includes/admin/core/class-admin-settings.php:988
|
2241 |
msgid "The text that is used for primary button text"
|
2242 |
msgstr ""
|
2243 |
|
2244 |
+
#: includes/admin/core/class-admin-settings.php:904
|
2245 |
msgid "Registration Secondary Button"
|
2246 |
msgstr ""
|
2247 |
|
2248 |
+
#: includes/admin/core/class-admin-settings.php:911
|
2249 |
msgid "Registration Secondary Button Text"
|
2250 |
msgstr ""
|
2251 |
|
2252 |
+
#: includes/admin/core/class-admin-settings.php:913
|
2253 |
+
#: includes/admin/core/class-admin-settings.php:1003
|
2254 |
msgid "The text that is used for the secondary button text"
|
2255 |
msgstr ""
|
2256 |
|
2257 |
+
#: includes/admin/core/class-admin-settings.php:920
|
2258 |
msgid "Registration Secondary Button URL"
|
2259 |
msgstr ""
|
2260 |
|
2261 |
+
#: includes/admin/core/class-admin-settings.php:922
|
2262 |
+
#: includes/admin/core/class-admin-settings.php:1012
|
2263 |
msgid "You can replace default link for this button by entering custom URL"
|
2264 |
msgstr ""
|
2265 |
|
2266 |
+
#: includes/admin/core/class-admin-settings.php:929
|
2267 |
msgid "Registration Default Role"
|
2268 |
msgstr ""
|
2269 |
|
2270 |
+
#: includes/admin/core/class-admin-settings.php:930
|
2271 |
msgid ""
|
2272 |
"This will be the default role assigned to users registering thru "
|
2273 |
"registration form"
|
2274 |
msgstr ""
|
2275 |
|
2276 |
+
#: includes/admin/core/class-admin-settings.php:938
|
2277 |
#: includes/admin/templates/form/mode.php:13
|
2278 |
msgid "Login Form"
|
2279 |
msgstr ""
|
2280 |
|
2281 |
+
#: includes/admin/core/class-admin-settings.php:943
|
2282 |
msgid "Login Default Template"
|
2283 |
msgstr ""
|
2284 |
|
2285 |
+
#: includes/admin/core/class-admin-settings.php:944
|
2286 |
msgid "This will be the default template to output login"
|
2287 |
msgstr ""
|
2288 |
|
2289 |
+
#: includes/admin/core/class-admin-settings.php:952
|
2290 |
msgid "Login Maximum Width"
|
2291 |
msgstr ""
|
2292 |
|
2293 |
+
#: includes/admin/core/class-admin-settings.php:960
|
2294 |
msgid "Login Shortcode Alignment"
|
2295 |
msgstr ""
|
2296 |
|
2297 |
+
#: includes/admin/core/class-admin-settings.php:973
|
2298 |
msgid "Login Field Icons"
|
2299 |
msgstr ""
|
2300 |
|
2301 |
+
#: includes/admin/core/class-admin-settings.php:974
|
2302 |
msgid "This controls the display of field icons in the login form"
|
2303 |
msgstr ""
|
2304 |
|
2305 |
+
#: includes/admin/core/class-admin-settings.php:986
|
2306 |
msgid "Login Primary Button Text"
|
2307 |
msgstr ""
|
2308 |
|
2309 |
+
#: includes/admin/core/class-admin-settings.php:994
|
2310 |
msgid "Login Secondary Button"
|
2311 |
msgstr ""
|
2312 |
|
2313 |
+
#: includes/admin/core/class-admin-settings.php:1001
|
2314 |
msgid "Login Secondary Button Text"
|
2315 |
msgstr ""
|
2316 |
|
2317 |
+
#: includes/admin/core/class-admin-settings.php:1010
|
2318 |
msgid "Login Secondary Button URL"
|
2319 |
msgstr ""
|
2320 |
|
2321 |
+
#: includes/admin/core/class-admin-settings.php:1019
|
2322 |
msgid "Login Forgot Password Link"
|
2323 |
msgstr ""
|
2324 |
|
2325 |
+
#: includes/admin/core/class-admin-settings.php:1021
|
2326 |
msgid "Switch on/off the forgot password link in login form"
|
2327 |
msgstr ""
|
2328 |
|
2329 |
+
#: includes/admin/core/class-admin-settings.php:1026
|
2330 |
msgid "Show \"Remember Me\""
|
2331 |
msgstr ""
|
2332 |
|
2333 |
+
#: includes/admin/core/class-admin-settings.php:1028
|
2334 |
msgid ""
|
2335 |
"Allow users to choose If they want to stay signed in even after closing the "
|
2336 |
"browser. If you do not show this option, the default will be to not remember "
|
2337 |
"login session."
|
2338 |
msgstr ""
|
2339 |
|
2340 |
+
#: includes/admin/core/class-admin-settings.php:1038
|
2341 |
msgid "Licenses"
|
2342 |
msgstr ""
|
2343 |
|
2344 |
+
#: includes/admin/core/class-admin-settings.php:1041
|
2345 |
msgid "Misc"
|
2346 |
msgstr ""
|
2347 |
|
2348 |
+
#: includes/admin/core/class-admin-settings.php:1046
|
2349 |
msgid "Show an asterisk for required fields"
|
2350 |
msgstr ""
|
2351 |
|
2352 |
+
#: includes/admin/core/class-admin-settings.php:1051
|
2353 |
msgid "User Profile Title"
|
2354 |
msgstr ""
|
2355 |
|
2356 |
+
#: includes/admin/core/class-admin-settings.php:1052
|
2357 |
msgid "This is the title that is displayed on a specific user profile"
|
2358 |
msgstr ""
|
2359 |
|
2360 |
+
#: includes/admin/core/class-admin-settings.php:1058
|
2361 |
msgid "User Profile Dynamic Meta Description"
|
2362 |
msgstr ""
|
2363 |
|
2364 |
+
#: includes/admin/core/class-admin-settings.php:1059
|
2365 |
msgid ""
|
2366 |
"This will be used in the meta description that is available for search-"
|
2367 |
"engines."
|
2368 |
msgstr ""
|
2369 |
|
2370 |
+
#: includes/admin/core/class-admin-settings.php:1067
|
2371 |
msgid "Disable Cache User Profile"
|
2372 |
msgstr ""
|
2373 |
|
2374 |
+
#: includes/admin/core/class-admin-settings.php:1068
|
2375 |
msgid ""
|
2376 |
"Check this box if you would like to disable Ultimate Member user's cache."
|
2377 |
msgstr ""
|
2378 |
|
2379 |
+
#: includes/admin/core/class-admin-settings.php:1073
|
2380 |
msgid "Remove Data on Uninstall?"
|
2381 |
msgstr ""
|
2382 |
|
2383 |
+
#: includes/admin/core/class-admin-settings.php:1074
|
2384 |
msgid ""
|
2385 |
"Check this box if you would like Ultimate Member to completely remove all of "
|
2386 |
"its data when the plugin/extensions are deleted."
|
2387 |
msgstr ""
|
2388 |
|
2389 |
+
#: includes/admin/core/class-admin-settings.php:1079
|
2390 |
msgid "Install Info"
|
2391 |
msgstr ""
|
2392 |
|
2393 |
+
#: includes/admin/core/class-admin-settings.php:1193
|
2394 |
msgid "Ultimate Member - Settings"
|
2395 |
msgstr ""
|
2396 |
|
2397 |
+
#: includes/admin/core/class-admin-settings.php:1332
|
2398 |
msgid "Save Changes"
|
2399 |
msgstr ""
|
2400 |
|
2401 |
+
#: includes/admin/core/class-admin-settings.php:1775
|
2402 |
msgid "Subject Line"
|
2403 |
msgstr ""
|
2404 |
|
2405 |
+
#: includes/admin/core/class-admin-settings.php:1777
|
2406 |
msgid "This is the subject line of the e-mail"
|
2407 |
msgstr ""
|
2408 |
|
2409 |
+
#: includes/admin/core/class-admin-settings.php:1782
|
2410 |
msgid "Message Body"
|
2411 |
msgstr ""
|
2412 |
|
2413 |
+
#: includes/admin/core/class-admin-settings.php:1784
|
2414 |
msgid "This is the content of the e-mail"
|
2415 |
msgstr ""
|
2416 |
|
2417 |
+
#: includes/admin/core/class-admin-settings.php:1834
|
2418 |
+
#: includes/admin/core/class-admin-settings.php:1932
|
2419 |
#, php-format
|
2420 |
msgid ""
|
2421 |
"Your license key expired on %s. Please <a href=\"%s\" target=\"_blank"
|
2422 |
"\">renew your license key</a>."
|
2423 |
msgstr ""
|
2424 |
|
2425 |
+
#: includes/admin/core/class-admin-settings.php:1847
|
2426 |
+
#: includes/admin/core/class-admin-settings.php:1945
|
2427 |
#, php-format
|
2428 |
msgid ""
|
2429 |
"Your license key has been disabled. Please <a href=\"%s\" target=\"_blank"
|
2430 |
"\">contact support</a> for more information."
|
2431 |
msgstr ""
|
2432 |
|
2433 |
+
#: includes/admin/core/class-admin-settings.php:1859
|
2434 |
+
#: includes/admin/core/class-admin-settings.php:1957
|
2435 |
#, php-format
|
2436 |
msgid ""
|
2437 |
"Invalid license. Please <a href=\"%s\" target=\"_blank\">visit your account "
|
2438 |
"page</a> and verify it."
|
2439 |
msgstr ""
|
2440 |
|
2441 |
+
#: includes/admin/core/class-admin-settings.php:1872
|
2442 |
+
#: includes/admin/core/class-admin-settings.php:1970
|
2443 |
#, php-format
|
2444 |
msgid ""
|
2445 |
"Your %s is not active for this URL. Please <a href=\"%s\" target=\"_blank"
|
2446 |
"\">visit your account page</a> to manage your license key URLs."
|
2447 |
msgstr ""
|
2448 |
|
2449 |
+
#: includes/admin/core/class-admin-settings.php:1884
|
2450 |
+
#: includes/admin/core/class-admin-settings.php:1982
|
2451 |
#, php-format
|
2452 |
msgid "This appears to be an invalid license key for %s."
|
2453 |
msgstr ""
|
2454 |
|
2455 |
+
#: includes/admin/core/class-admin-settings.php:1893
|
2456 |
+
#: includes/admin/core/class-admin-settings.php:1991
|
2457 |
#, php-format
|
2458 |
msgid ""
|
2459 |
"Your license key has reached its activation limit. <a href=\"%s\">View "
|
2460 |
"possible upgrades</a> now."
|
2461 |
msgstr ""
|
2462 |
|
2463 |
+
#: includes/admin/core/class-admin-settings.php:1902
|
2464 |
+
#: includes/admin/core/class-admin-settings.php:2000
|
2465 |
msgid ""
|
2466 |
"The key you entered belongs to a bundle, please use the product specific "
|
2467 |
"license key."
|
2468 |
msgstr ""
|
2469 |
|
2470 |
+
#: includes/admin/core/class-admin-settings.php:1910
|
2471 |
+
#: includes/admin/core/class-admin-settings.php:1918
|
2472 |
msgid "unknown_error"
|
2473 |
msgstr ""
|
2474 |
|
2475 |
+
#: includes/admin/core/class-admin-settings.php:1911
|
2476 |
+
#: includes/admin/core/class-admin-settings.php:1919
|
2477 |
#, php-format
|
2478 |
msgid ""
|
2479 |
"There was an error with this license key: %s. Please <a href=\"%s\">contact "
|
2480 |
"our support team</a>."
|
2481 |
msgstr ""
|
2482 |
|
2483 |
+
#: includes/admin/core/class-admin-settings.php:2015
|
2484 |
msgid "License key never expires."
|
2485 |
msgstr ""
|
2486 |
|
2487 |
+
#: includes/admin/core/class-admin-settings.php:2022
|
2488 |
#, php-format
|
2489 |
msgid ""
|
2490 |
"Your license key expires soon! It expires on %s. <a href=\"%s\" target="
|
2491 |
"\"_blank\">Renew your license key</a>."
|
2492 |
msgstr ""
|
2493 |
|
2494 |
+
#: includes/admin/core/class-admin-settings.php:2032
|
2495 |
#, php-format
|
2496 |
msgid "Your license key expires on %s."
|
2497 |
msgstr ""
|
2498 |
|
2499 |
+
#: includes/admin/core/class-admin-settings.php:2050
|
2500 |
#, php-format
|
2501 |
msgid "To receive updates, please enter your valid %s license key."
|
2502 |
msgstr ""
|
2503 |
|
2504 |
+
#: includes/admin/core/class-admin-settings.php:2074
|
2505 |
msgid "Clear License"
|
2506 |
msgstr ""
|
2507 |
|
2508 |
+
#: includes/admin/core/class-admin-settings.php:2076
|
2509 |
msgid "Activate"
|
2510 |
msgstr ""
|
2511 |
|
2512 |
+
#: includes/admin/core/class-admin-settings.php:2078
|
2513 |
msgid "Re-Activate"
|
2514 |
msgstr ""
|
2515 |
|
2516 |
+
#: includes/admin/core/class-admin-settings.php:2130
|
2517 |
msgid ""
|
2518 |
"To copy the Install info, click below then press Ctrl + C (PC) or Cmd + C "
|
2519 |
"(Mac)."
|
2584 |
msgstr ""
|
2585 |
|
2586 |
#: includes/admin/core/class-admin-users.php:116
|
2587 |
+
#: includes/core/class-fields.php:2314
|
2588 |
msgid "Apply"
|
2589 |
msgstr ""
|
2590 |
|
2627 |
|
2628 |
#: includes/admin/core/class-admin-users.php:305
|
2629 |
#: includes/admin/templates/dashboard/users.php:11
|
2630 |
+
#: includes/core/class-user.php:819
|
2631 |
msgid "Approved"
|
2632 |
msgstr ""
|
2633 |
|
2698 |
msgid "Are you sure you want to delete this role?"
|
2699 |
msgstr ""
|
2700 |
|
|
|
|
|
|
|
|
|
|
|
2701 |
#: includes/admin/core/list-tables/roles-list-table.php:343
|
2702 |
msgid "Are you sure you want to reset UM role meta?"
|
2703 |
msgstr ""
|
2737 |
#: includes/admin/core/list-tables/roles-list-table.php:479
|
2738 |
#: includes/admin/core/packages/2.0-beta1/user_roles.php:14
|
2739 |
#: includes/admin/templates/role/role-edit.php:136
|
2740 |
+
#: includes/core/class-common.php:56 includes/core/class-common.php:86
|
2741 |
msgid "Add New"
|
2742 |
msgstr ""
|
2743 |
|
2892 |
msgstr ""
|
2893 |
|
2894 |
#: includes/admin/core/packages/2.0-beta1/user_roles.php:18
|
2895 |
+
#: includes/core/class-common.php:60 includes/core/class-common.php:90
|
2896 |
msgid "Nothing found in Trash"
|
2897 |
msgstr ""
|
2898 |
|
2957 |
msgstr ""
|
2958 |
|
2959 |
#: includes/admin/templates/dashboard/users.php:27
|
2960 |
+
#: includes/core/class-user.php:827
|
2961 |
msgid "Pending Review"
|
2962 |
msgstr ""
|
2963 |
|
2964 |
#: includes/admin/templates/dashboard/users.php:32
|
2965 |
+
#: includes/core/class-user.php:823
|
2966 |
msgid "Awaiting E-mail Confirmation"
|
2967 |
msgstr ""
|
2968 |
|
3553 |
#: includes/admin/templates/modal/dynamic_new_group.php:15
|
3554 |
#: includes/admin/templates/modal/fonticons.php:11
|
3555 |
#: includes/admin/templates/role/publish.php:24
|
3556 |
+
#: includes/core/class-fields.php:2315 includes/core/class-fields.php:2412
|
3557 |
+
#: includes/core/um-actions-profile.php:557
|
3558 |
+
#: includes/core/um-actions-profile.php:696
|
3559 |
+
#: includes/core/um-actions-profile.php:729
|
3560 |
+
#: includes/core/um-actions-profile.php:1074
|
3561 |
+
#: includes/core/um-actions-profile.php:1081
|
3562 |
msgid "Cancel"
|
3563 |
msgstr ""
|
3564 |
|
3902 |
msgid "Check All"
|
3903 |
msgstr ""
|
3904 |
|
3905 |
+
#: includes/class-config.php:129 includes/class-config.php:739
|
3906 |
msgid "User"
|
3907 |
msgstr ""
|
3908 |
|
3909 |
#: includes/class-config.php:130 includes/class-config.php:235
|
3910 |
+
#: includes/class-config.php:241 includes/class-config.php:740
|
3911 |
msgid "Login"
|
3912 |
msgstr ""
|
3913 |
|
3914 |
#: includes/class-config.php:131 includes/class-config.php:233
|
3915 |
+
#: includes/class-config.php:245 includes/class-config.php:741
|
3916 |
msgid "Register"
|
3917 |
msgstr ""
|
3918 |
|
3919 |
+
#: includes/class-config.php:132 includes/class-config.php:742
|
3920 |
msgid "Members"
|
3921 |
msgstr ""
|
3922 |
|
3923 |
+
#: includes/class-config.php:133 includes/class-config.php:743
|
3924 |
+
#: includes/core/um-actions-profile.php:1080
|
3925 |
#: includes/core/um-actions-user.php:15
|
3926 |
msgid "Logout"
|
3927 |
msgstr ""
|
3928 |
|
3929 |
+
#: includes/class-config.php:135 includes/class-config.php:745
|
3930 |
msgid "Password Reset"
|
3931 |
msgstr ""
|
3932 |
|
4089 |
msgid "Cheatin’ huh?"
|
4090 |
msgstr ""
|
4091 |
|
4092 |
+
#: includes/core/class-account.php:93
|
4093 |
msgid "Update Account"
|
4094 |
msgstr ""
|
4095 |
|
4096 |
+
#: includes/core/class-account.php:98
|
4097 |
msgid "Change Password"
|
4098 |
msgstr ""
|
4099 |
|
4100 |
+
#: includes/core/class-account.php:99
|
4101 |
msgid "Update Password"
|
4102 |
msgstr ""
|
4103 |
|
4104 |
+
#: includes/core/class-account.php:105
|
|
|
|
|
|
|
|
|
4105 |
msgid "Update Privacy"
|
4106 |
msgstr ""
|
4107 |
|
4108 |
+
#: includes/core/class-account.php:111
|
|
|
|
|
|
|
|
|
4109 |
msgid "Update Notifications"
|
4110 |
msgstr ""
|
4111 |
|
4112 |
+
#: includes/core/class-account.php:119 includes/core/class-account.php:120
|
4113 |
#: includes/core/class-builtin.php:1136 includes/core/class-builtin.php:1139
|
4114 |
msgid "Delete Account"
|
4115 |
msgstr ""
|
4189 |
msgid "You must add a shortcode to the content area"
|
4190 |
msgstr ""
|
4191 |
|
4192 |
+
#: includes/core/class-builtin.php:663 includes/core/class-user.php:1539
|
4193 |
msgid "Only me"
|
4194 |
msgstr ""
|
4195 |
|
4198 |
msgid "Username or E-mail"
|
4199 |
msgstr ""
|
4200 |
|
|
|
|
|
|
|
|
|
|
|
4201 |
#: includes/core/class-builtin.php:737 includes/core/class-builtin.php:740
|
4202 |
#: includes/core/class-builtin.php:1325
|
4203 |
msgid "Website URL"
|
4338 |
msgstr ""
|
4339 |
|
4340 |
#: includes/core/class-builtin.php:1080
|
4341 |
+
#: includes/core/um-actions-profile.php:519
|
4342 |
msgid "Change your cover photo"
|
4343 |
msgstr ""
|
4344 |
|
6180 |
msgid "Search Forms"
|
6181 |
msgstr ""
|
6182 |
|
6183 |
+
#: includes/core/class-common.php:85
|
6184 |
msgid "Member Directory"
|
6185 |
msgstr ""
|
6186 |
|
6187 |
+
#: includes/core/class-common.php:87
|
6188 |
msgid "Add New Member Directory"
|
6189 |
msgstr ""
|
6190 |
|
6191 |
+
#: includes/core/class-common.php:88
|
6192 |
msgid "Edit Member Directory"
|
6193 |
msgstr ""
|
6194 |
|
6195 |
+
#: includes/core/class-common.php:89
|
6196 |
msgid "You did not create any member directories yet"
|
6197 |
msgstr ""
|
6198 |
|
6199 |
+
#: includes/core/class-common.php:91
|
6200 |
msgid "Search Member Directories"
|
6201 |
msgstr ""
|
6202 |
|
6257 |
msgid "Add translation to %s"
|
6258 |
msgstr ""
|
6259 |
|
6260 |
+
#: includes/core/class-fields.php:1178 templates/message.php:5
|
6261 |
#, php-format
|
6262 |
msgid "%s"
|
6263 |
msgstr ""
|
6264 |
|
6265 |
+
#: includes/core/class-fields.php:1197
|
6266 |
msgid "Custom Field"
|
6267 |
msgstr ""
|
6268 |
|
6269 |
+
#: includes/core/class-fields.php:1494
|
6270 |
msgid "Please upload a valid image!"
|
6271 |
msgstr ""
|
6272 |
|
6273 |
+
#: includes/core/class-fields.php:1501 includes/core/class-fields.php:1522
|
6274 |
msgid "Upload"
|
6275 |
msgstr ""
|
6276 |
|
6277 |
+
#: includes/core/class-fields.php:1502
|
6278 |
msgid "Sorry this is not a valid image."
|
6279 |
msgstr ""
|
6280 |
|
6281 |
+
#: includes/core/class-fields.php:1503
|
6282 |
msgid "This image is too large!"
|
6283 |
msgstr ""
|
6284 |
|
6285 |
+
#: includes/core/class-fields.php:1504
|
6286 |
msgid "This image is too small!"
|
6287 |
msgstr ""
|
6288 |
|
6289 |
+
#: includes/core/class-fields.php:1505
|
6290 |
msgid "You can only upload one image"
|
6291 |
msgstr ""
|
6292 |
|
6293 |
+
#: includes/core/class-fields.php:1973
|
6294 |
msgid "Current Password"
|
6295 |
msgstr ""
|
6296 |
|
6297 |
+
#: includes/core/class-fields.php:2002
|
6298 |
msgid "New Password"
|
6299 |
msgstr ""
|
6300 |
|
6301 |
+
#: includes/core/class-fields.php:2034
|
6302 |
#, php-format
|
6303 |
msgid "Confirm %s"
|
6304 |
msgstr ""
|
6305 |
|
6306 |
+
#: includes/core/class-fields.php:2269
|
6307 |
msgid "Upload Photo"
|
6308 |
msgstr ""
|
6309 |
|
6310 |
+
#: includes/core/class-fields.php:2290 includes/core/class-fields.php:2314
|
6311 |
+
#: includes/core/um-actions-profile.php:727
|
6312 |
msgid "Change photo"
|
6313 |
msgstr ""
|
6314 |
|
6315 |
+
#: includes/core/class-fields.php:2314 includes/core/class-fields.php:2411
|
6316 |
msgid "Processing..."
|
6317 |
msgstr ""
|
6318 |
|
6319 |
+
#: includes/core/class-fields.php:2336
|
6320 |
msgid "Upload File"
|
6321 |
msgstr ""
|
6322 |
|
6323 |
+
#: includes/core/class-fields.php:2378 includes/core/um-filters-fields.php:243
|
6324 |
msgid "This file has been removed."
|
6325 |
msgstr ""
|
6326 |
|
6327 |
+
#: includes/core/class-fields.php:2381 includes/core/class-fields.php:2411
|
6328 |
msgid "Change file"
|
6329 |
msgstr ""
|
6330 |
|
6331 |
+
#: includes/core/class-fields.php:2411
|
6332 |
msgid "Save"
|
6333 |
msgstr ""
|
6334 |
|
6335 |
+
#: includes/core/class-fields.php:3834
|
6336 |
#, php-format
|
6337 |
msgid ""
|
6338 |
"Your profile is looking a little empty. Why not <a href=\"%s\">add</a> some "
|
6339 |
"information!"
|
6340 |
msgstr ""
|
6341 |
|
6342 |
+
#: includes/core/class-fields.php:3836
|
6343 |
msgid "This user has not added any information to their profile yet."
|
6344 |
msgstr ""
|
6345 |
|
6380 |
msgid "You can not edit this user"
|
6381 |
msgstr ""
|
6382 |
|
6383 |
+
#: includes/core/class-password.php:457
|
6384 |
msgid "Please provide your username or email"
|
6385 |
msgstr ""
|
6386 |
|
6387 |
+
#: includes/core/class-password.php:461
|
6388 |
msgid "We can't find an account registered with that address or username"
|
6389 |
msgstr ""
|
6390 |
|
6391 |
+
#: includes/core/class-password.php:480
|
6392 |
msgid ""
|
6393 |
"You have reached the limit for requesting password change for this user "
|
6394 |
"already. Contact support if you cannot open the email"
|
6395 |
msgstr ""
|
6396 |
|
6397 |
+
#: includes/core/class-password.php:536
|
6398 |
msgid "You must enter a new password"
|
6399 |
msgstr ""
|
6400 |
|
6401 |
+
#: includes/core/class-password.php:542 includes/core/um-actions-account.php:59
|
6402 |
msgid "Your password must contain at least 8 characters"
|
6403 |
msgstr ""
|
6404 |
|
6405 |
+
#: includes/core/class-password.php:546 includes/core/um-actions-account.php:63
|
6406 |
msgid "Your password must contain less than 30 characters"
|
6407 |
msgstr ""
|
6408 |
|
6409 |
+
#: includes/core/class-password.php:550 includes/core/um-actions-account.php:67
|
6410 |
#: includes/core/um-actions-form.php:476
|
6411 |
msgid ""
|
6412 |
"Your password must contain at least one lowercase letter, one capital letter "
|
6413 |
"and one number"
|
6414 |
msgstr ""
|
6415 |
|
6416 |
+
#: includes/core/class-password.php:556
|
6417 |
msgid "You must confirm your new password"
|
6418 |
msgstr ""
|
6419 |
|
6420 |
+
#: includes/core/class-password.php:560 includes/core/um-actions-form.php:485
|
6421 |
msgid "Your passwords do not match"
|
6422 |
msgstr ""
|
6423 |
|
6533 |
msgid "Default Template"
|
6534 |
msgstr ""
|
6535 |
|
6536 |
+
#: includes/core/class-uploader.php:668
|
6537 |
msgid "Your image is invalid!"
|
6538 |
msgstr ""
|
6539 |
|
6540 |
+
#: includes/core/class-uploader.php:710
|
6541 |
msgid "This media type is not recognized."
|
6542 |
msgstr ""
|
6543 |
|
6544 |
+
#: includes/core/class-uploader.php:758
|
6545 |
msgid "Your image is invalid or too large!"
|
6546 |
msgstr ""
|
6547 |
|
6548 |
+
#: includes/core/class-uploader.php:764 includes/core/class-uploader.php:766
|
6549 |
#, php-format
|
6550 |
msgid "Your photo is too small. It must be at least %spx wide."
|
6551 |
msgstr ""
|
6552 |
|
6553 |
+
#: includes/core/class-uploader.php:819
|
6554 |
msgid "This file type is not recognized."
|
6555 |
msgstr ""
|
6556 |
|
6557 |
+
#: includes/core/class-uploader.php:1098
|
6558 |
#, php-format
|
6559 |
msgid "Maximum file size allowed: %s"
|
6560 |
msgstr ""
|
6561 |
|
6562 |
+
#: includes/core/class-user.php:613
|
6563 |
msgid "Ultimate Member Role"
|
6564 |
msgstr ""
|
6565 |
|
6566 |
+
#: includes/core/class-user.php:616
|
6567 |
msgid "— No role for Ultimate Member —"
|
6568 |
msgstr ""
|
6569 |
|
6570 |
+
#: includes/core/class-user.php:831
|
6571 |
msgid "Membership Rejected"
|
6572 |
msgstr ""
|
6573 |
|
6574 |
+
#: includes/core/class-user.php:835
|
6575 |
msgid "Membership Inactive"
|
6576 |
msgstr ""
|
6577 |
|
6580 |
msgstr ""
|
6581 |
|
6582 |
#: includes/core/um-actions-account.php:27
|
6583 |
+
#: includes/core/um-actions-account.php:115
|
6584 |
msgid "You must enter your password"
|
6585 |
msgstr ""
|
6586 |
|
6587 |
#: includes/core/um-actions-account.php:30
|
6588 |
#: includes/core/um-actions-account.php:47
|
6589 |
+
#: includes/core/um-actions-account.php:118
|
6590 |
msgid "This is not your password"
|
6591 |
msgstr ""
|
6592 |
|
6606 |
msgid "You must provide your last name"
|
6607 |
msgstr ""
|
6608 |
|
6609 |
+
#: includes/core/um-actions-account.php:100
|
6610 |
msgid "You must provide your e-mail"
|
6611 |
msgstr ""
|
6612 |
|
6613 |
+
#: includes/core/um-actions-account.php:104
|
6614 |
msgid "Please provide a valid e-mail"
|
6615 |
msgstr ""
|
6616 |
|
6617 |
+
#: includes/core/um-actions-account.php:108
|
6618 |
msgid "Email already linked to another account"
|
6619 |
msgstr ""
|
6620 |
|
6621 |
+
#: includes/core/um-actions-account.php:416
|
6622 |
msgid "Email me when"
|
6623 |
msgstr ""
|
6624 |
|
6895 |
msgid "You are not allowed to edit this user."
|
6896 |
msgstr ""
|
6897 |
|
6898 |
+
#: includes/core/um-actions-profile.php:243
|
6899 |
#, php-format
|
6900 |
msgid "Your choosed %s"
|
6901 |
msgstr ""
|
6902 |
|
6903 |
+
#: includes/core/um-actions-profile.php:555
|
6904 |
msgid "Change cover photo"
|
6905 |
msgstr ""
|
6906 |
|
6907 |
+
#: includes/core/um-actions-profile.php:598
|
6908 |
msgid "Upload a cover photo"
|
6909 |
msgstr ""
|
6910 |
|
6911 |
+
#: includes/core/um-actions-profile.php:695
|
6912 |
msgid "Upload photo"
|
6913 |
msgstr ""
|
6914 |
|
6915 |
+
#: includes/core/um-actions-profile.php:728
|
6916 |
msgid "Remove photo"
|
6917 |
msgstr ""
|
6918 |
|
6919 |
+
#: includes/core/um-actions-profile.php:892
|
6920 |
msgid "Tell us a bit about yourself..."
|
6921 |
msgstr ""
|
6922 |
|
6923 |
+
#: includes/core/um-actions-profile.php:908
|
6924 |
#, php-format
|
6925 |
msgid "This user account status is %s"
|
6926 |
msgstr ""
|
6927 |
|
6928 |
+
#: includes/core/um-actions-profile.php:1047
|
6929 |
+
#: includes/core/um-actions-profile.php:1078
|
6930 |
msgid "Edit Profile"
|
6931 |
msgstr ""
|
6932 |
|
6933 |
+
#: includes/core/um-actions-profile.php:1079
|
6934 |
msgid "My Account"
|
6935 |
msgstr ""
|
6936 |
|
6996 |
msgid "Title:"
|
6997 |
msgstr ""
|
6998 |
|
6999 |
+
#: templates/members-grid.php:66
|
7000 |
msgid "Edit profile"
|
7001 |
msgstr ""
|
7002 |
|
readme.txt
CHANGED
@@ -6,7 +6,7 @@ Donate link:
|
|
6 |
Tags: community, member, membership, user-profile, user-registration
|
7 |
Requires at least: 4.7
|
8 |
Tested up to: 5.1
|
9 |
-
Stable tag: 2.0.
|
10 |
License: GNU Version 2 or Any Later Version
|
11 |
License URI: http://www.gnu.org/licenses/gpl-3.0.txt
|
12 |
|
@@ -133,6 +133,30 @@ The plugin works with popular caching plugins by automatically excluding Ultimat
|
|
133 |
|
134 |
= Important: UM2.0+ is a significant update to the code base from 1.3.88. Please make sure you take a full-site backup with restore point before updating the plugin =
|
135 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
136 |
= 2.0.40: March 12, 2019 =
|
137 |
|
138 |
* Bugfixes:
|
6 |
Tags: community, member, membership, user-profile, user-registration
|
7 |
Requires at least: 4.7
|
8 |
Tested up to: 5.1
|
9 |
+
Stable tag: 2.0.41
|
10 |
License: GNU Version 2 or Any Later Version
|
11 |
License URI: http://www.gnu.org/licenses/gpl-3.0.txt
|
12 |
|
133 |
|
134 |
= Important: UM2.0+ is a significant update to the code base from 1.3.88. Please make sure you take a full-site backup with restore point before updating the plugin =
|
135 |
|
136 |
+
= 2.0.41: March 27, 2019 =
|
137 |
+
|
138 |
+
* Enhancements:
|
139 |
+
- Added Gutenberg blocks section with Ultimate Member shortcodes
|
140 |
+
- Clear temp directory on upload process 1 day files old
|
141 |
+
- Updated custom scrollbar JS library to jQuery 3 support
|
142 |
+
|
143 |
+
* Bugfixes:
|
144 |
+
- Fixed vulnerability with Reset Password form
|
145 |
+
- Fixed Edit Row settings
|
146 |
+
- Fixed save profile fields with 0 values
|
147 |
+
- Fixed upload photo base URL for Windows servers
|
148 |
+
- Fixed displaying user Posts at Profile/Posts tab
|
149 |
+
- Fixed unique filename issue, upload avatar with high case extension
|
150 |
+
- Fixed member directory filter title
|
151 |
+
- Fixed duplicate delete user handler
|
152 |
+
- Fixed sorting by Last Login date for users without meta
|
153 |
+
- Fixed hook after password reset (issue #532)
|
154 |
+
- Fixed member directory user role filter
|
155 |
+
- Fixed restriction content WC Products integration
|
156 |
+
- Fixed words count for French in user description field
|
157 |
+
- Fixed is_selected function for dropdown/multi-select/checkbox profile fields
|
158 |
+
- Fixed disable email field at Edit Profile form via filter (disabled by default)
|
159 |
+
|
160 |
= 2.0.40: March 12, 2019 =
|
161 |
|
162 |
* Bugfixes:
|
templates/account.php
CHANGED
@@ -26,65 +26,65 @@
|
|
26 |
*/
|
27 |
do_action( 'um_account_page_hidden_fields', $args ); ?>
|
28 |
|
29 |
-
|
30 |
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
|
42 |
-
|
43 |
|
44 |
<div class="um-account-side uimob340-hide uimob500-hide">
|
45 |
|
46 |
-
|
47 |
|
48 |
-
|
49 |
|
50 |
-
|
51 |
|
52 |
-
|
53 |
|
54 |
-
|
55 |
|
56 |
-
|
57 |
|
58 |
-
|
59 |
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
|
65 |
-
|
66 |
|
67 |
<ul>
|
68 |
<?php foreach ( UM()->account()->tabs as $id => $info ) {
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
} ?>
|
89 |
</ul>
|
90 |
</div>
|
@@ -115,25 +115,24 @@
|
|
115 |
|
116 |
foreach ( UM()->account()->tabs as $id => $info ) {
|
117 |
|
118 |
-
|
119 |
|
120 |
-
|
121 |
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
|
135 |
-
|
136 |
-
|
137 |
} ?>
|
138 |
|
139 |
</div>
|
@@ -161,5 +160,5 @@
|
|
161 |
do_action( 'um_after_account_page_load' ); ?>
|
162 |
|
163 |
</div>
|
164 |
-
|
165 |
</div>
|
26 |
*/
|
27 |
do_action( 'um_account_page_hidden_fields', $args ); ?>
|
28 |
|
29 |
+
<div class="um-account-meta radius-<?php echo UM()->options()->get( 'profile_photocorner' ); ?> uimob340-show uimob500-show">
|
30 |
|
31 |
+
<div class="um-account-meta-img">
|
32 |
+
<a href="<?php echo um_user_profile_url(); ?>"><?php echo get_avatar( um_user('ID'), 120 ); ?></a>
|
33 |
+
</div>
|
34 |
|
35 |
+
<div class="um-account-name">
|
36 |
+
<a href="<?php echo um_user_profile_url(); ?>"><?php echo um_user( 'display_name' ); ?></a>
|
37 |
+
<div class="um-account-profile-link">
|
38 |
+
<a href="<?php echo um_user_profile_url(); ?>" class="um-link"><?php _e( 'View profile', 'ultimate-member' ); ?></a>
|
39 |
+
</div>
|
40 |
+
</div>
|
41 |
|
42 |
+
</div>
|
43 |
|
44 |
<div class="um-account-side uimob340-hide uimob500-hide">
|
45 |
|
46 |
+
<div class="um-account-meta radius-<?php echo UM()->options()->get('profile_photocorner'); ?>">
|
47 |
|
48 |
+
<div class="um-account-meta-img uimob800-hide"><a href="<?php echo um_user_profile_url(); ?>"><?php echo get_avatar( um_user('ID'), 120 ); ?></a></div>
|
49 |
|
50 |
+
<?php if ( UM()->mobile()->isMobile() ) { ?>
|
51 |
|
52 |
+
<div class="um-account-meta-img-b uimob800-show" title="<?php echo um_user( 'display_name' ); ?>"><a href="<?php echo um_user_profile_url(); ?>"><?php echo get_avatar( um_user('ID'), 120 ); ?></a></div>
|
53 |
|
54 |
+
<?php } else { ?>
|
55 |
|
56 |
+
<div class="um-account-meta-img-b uimob800-show um-tip-w" title="<?php echo um_user( 'display_name' ); ?>"><a href="<?php echo um_user_profile_url(); ?>"><?php echo get_avatar( um_user('ID'), 120 ); ?></a></div>
|
57 |
|
58 |
+
<?php } ?>
|
59 |
|
60 |
+
<div class="um-account-name uimob800-hide">
|
61 |
+
<a href="<?php echo um_user_profile_url(); ?>"><?php echo um_user( 'display_name', 'html' ); ?></a>
|
62 |
+
<div class="um-account-profile-link"><a href="<?php echo um_user_profile_url(); ?>" class="um-link"><?php _e( 'View profile', 'ultimate-member' ); ?></a></div>
|
63 |
+
</div>
|
64 |
|
65 |
+
</div>
|
66 |
|
67 |
<ul>
|
68 |
<?php foreach ( UM()->account()->tabs as $id => $info ) {
|
69 |
+
if ( isset( $info['custom'] ) || UM()->options()->get( "account_tab_{$id}" ) == 1 || $id == 'general' ) { ?>
|
70 |
+
|
71 |
+
<li>
|
72 |
+
<a data-tab="<?php echo $id ?>" href="<?php echo UM()->account()->tab_link( $id ); ?>" class="um-account-link <?php if ( $id == UM()->account()->current_tab ) echo 'current'; ?>">
|
73 |
+
<?php if ( UM()->mobile()->isMobile() ) { ?>
|
74 |
+
<span class="um-account-icontip uimob800-show" title="<?php echo $info['title']; ?>"><i class="<?php echo $info['icon']; ?>"></i></span>
|
75 |
+
<?php } else { ?>
|
76 |
+
<span class="um-account-icontip uimob800-show um-tip-w" title="<?php echo $info['title']; ?>"><i class="<?php echo $info['icon']; ?>"></i></span>
|
77 |
+
<?php } ?>
|
78 |
+
|
79 |
+
<span class="um-account-icon uimob800-hide"><i class="<?php echo $info['icon']; ?>"></i></span>
|
80 |
+
<span class="um-account-title uimob800-hide"><?php echo $info['title']; ?></span>
|
81 |
+
<span class="um-account-arrow uimob800-hide">
|
82 |
+
<i class="<?php if ( is_rtl() ) { ?>um-faicon-angle-left<?php } else { ?>um-faicon-angle-right<?php } ?>"></i>
|
83 |
+
</span>
|
84 |
+
</a>
|
85 |
+
</li>
|
86 |
+
|
87 |
+
<?php }
|
88 |
} ?>
|
89 |
</ul>
|
90 |
</div>
|
115 |
|
116 |
foreach ( UM()->account()->tabs as $id => $info ) {
|
117 |
|
118 |
+
$current_tab = UM()->account()->current_tab;
|
119 |
|
120 |
+
if ( isset( $info['custom'] ) || UM()->options()->get( 'account_tab_' . $id ) == 1 || $id == 'general' ) { ?>
|
121 |
|
122 |
+
<div class="um-account-nav uimob340-show uimob500-show">
|
123 |
+
<a href="#" data-tab="<?php echo $id; ?>" class="<?php if ( $id == $current_tab ) echo 'current'; ?>">
|
124 |
+
<?php echo $info['title']; ?>
|
125 |
+
<span class="ico"><i class="<?php echo $info['icon']; ?>"></i></span>
|
126 |
+
<span class="arr"><i class="um-faicon-angle-down"></i></span>
|
127 |
+
</a>
|
128 |
+
</div>
|
129 |
|
130 |
+
<div class="um-account-tab um-account-tab-<?php echo $id ?>" data-tab="<?php echo $id ?>">
|
131 |
+
<?php $info['with_header'] = true;
|
132 |
+
UM()->account()->render_account_tab( $id, $info, $args ); ?>
|
133 |
+
</div>
|
134 |
|
135 |
+
<?php }
|
|
|
136 |
} ?>
|
137 |
|
138 |
</div>
|
160 |
do_action( 'um_after_account_page_load' ); ?>
|
161 |
|
162 |
</div>
|
163 |
+
|
164 |
</div>
|
templates/members-grid.php
CHANGED
@@ -60,9 +60,11 @@
|
|
60 |
*/
|
61 |
do_action( 'um_members_just_after_name', um_user('ID'), $args ); ?>
|
62 |
|
63 |
-
<?php if ( UM()->roles()->um_current_user_can( 'edit', um_user('ID') )
|
64 |
<div class="um-members-edit-btn">
|
65 |
-
<a href="<?php echo um_edit_profile_url() ?>" class="um-edit-profile-btn um-button um-alt"
|
|
|
|
|
66 |
</div>
|
67 |
<?php }
|
68 |
|
60 |
*/
|
61 |
do_action( 'um_members_just_after_name', um_user('ID'), $args ); ?>
|
62 |
|
63 |
+
<?php if ( UM()->roles()->um_current_user_can( 'edit', um_user('ID') ) ) { ?>
|
64 |
<div class="um-members-edit-btn">
|
65 |
+
<a href="<?php echo um_edit_profile_url() ?>" class="um-edit-profile-btn um-button um-alt">
|
66 |
+
<?php _e( 'Edit profile','ultimate-member' ) ?>
|
67 |
+
</a>
|
68 |
</div>
|
69 |
<?php }
|
70 |
|
ultimate-member.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: Ultimate Member
|
4 |
Plugin URI: http://ultimatemember.com/
|
5 |
Description: The easiest way to create powerful online communities and beautiful user profiles with WordPress
|
6 |
-
Version: 2.0.
|
7 |
Author: Ultimate Member
|
8 |
Author URI: http://ultimatemember.com/
|
9 |
Text Domain: ultimate-member
|
3 |
Plugin Name: Ultimate Member
|
4 |
Plugin URI: http://ultimatemember.com/
|
5 |
Description: The easiest way to create powerful online communities and beautiful user profiles with WordPress
|
6 |
+
Version: 2.0.41
|
7 |
Author: Ultimate Member
|
8 |
Author URI: http://ultimatemember.com/
|
9 |
Text Domain: ultimate-member
|