Version Description
- New widgets - Flat style buttons and Icon List widget
- New fields - Datepicker and Timepicker for developing SiteOrigin widgets
- Fixed - Some themes squeeze the images in a Livemesh grid or Team widget.
- Fixed - Couple of widgets fail to display the post links.
- Fixed - The testimonials slider not aligned to the center
- Some styling improvements and fixes
Download this release
Release Info
Developer | livemesh |
Plugin | Livemesh SiteOrigin Widgets |
Version | 1.3 |
Comparing to | |
See all releases |
Code changes from version 1.2 to 1.3
- assets/css/lsow-admin.css +3 -0
- assets/css/lsow-admin.css.map +1 -1
- assets/css/lsow-admin.scss +4 -0
- assets/css/lsow-frontend.css +114 -8
- assets/css/lsow-frontend.css.map +1 -1
- assets/css/lsow-frontend.scss +120 -7
- assets/css/magnific-popup.css +85 -125
- assets/js/jquery.magnific-popup.js +1457 -1657
- assets/js/jquery.magnific-popup.min.js +4 -4
- assets/js/jquery.powertip.js +1166 -0
- assets/js/jquery.powertip.min.js +8 -0
- includes/class-lsow-setup.php +1 -1
- includes/fields/css/images/ui-icons_444444_256x240.png +0 -0
- includes/fields/css/images/ui-icons_555555_256x240.png +0 -0
- includes/fields/css/images/ui-icons_777620_256x240.png +0 -0
- includes/fields/css/images/ui-icons_777777_256x240.png +0 -0
- includes/fields/css/images/ui-icons_cc0000_256x240.png +0 -0
- includes/fields/css/images/ui-icons_ffffff_256x240.png +0 -0
- includes/fields/css/jquery-ui-timepicker-addon.css +30 -0
- includes/fields/css/jquery-ui.css +715 -0
- includes/fields/datepicker.class.php +23 -0
- includes/fields/js/datepicker-field.js +41 -0
- includes/fields/js/datepicker-field.min.js +1 -0
- includes/fields/js/jquery-ui-timepicker-addon.js +2291 -0
- includes/fields/js/jquery-ui-timepicker-addon.min.js +5 -0
- includes/fields/js/timepicker-field.js +46 -0
- includes/fields/js/timepicker-field.min.js +1 -0
- includes/fields/timepicker.class.php +29 -0
- includes/helper-functions.php +28 -0
- includes/widgets/lsow-accordion-widget/css/style.css +2 -1
- includes/widgets/lsow-accordion-widget/css/style.css.map +1 -1
- includes/widgets/lsow-accordion-widget/css/style.scss +1 -0
- includes/widgets/lsow-accordion-widget/lsow-accordion-widget.php +1 -1
- includes/widgets/lsow-button-widget/assets/banner.svg +19 -0
- includes/widgets/lsow-button-widget/css/style.css +119 -0
- includes/widgets/lsow-button-widget/css/style.css.map +7 -0
- includes/widgets/lsow-button-widget/css/style.scss +82 -0
- includes/widgets/lsow-button-widget/lsow-button-widget.php +246 -0
- includes/widgets/lsow-button-widget/tpl/default.php +59 -0
- includes/widgets/lsow-carousel-widget/lsow-carousel-widget.php +1 -1
- includes/widgets/lsow-clients-widget/lsow-clients-widget.php +1 -1
- includes/widgets/lsow-clients-widget/tpl/default.php +2 -1
- includes/widgets/lsow-heading-widget/css/style.css +30 -25
- includes/widgets/lsow-heading-widget/css/style.css.map +1 -1
- includes/widgets/lsow-heading-widget/css/style.scss +48 -30
- includes/widgets/lsow-heading-widget/lsow-heading-widget.php +13 -1
- includes/widgets/lsow-heading-widget/tpl/default.php +2 -1
- includes/widgets/lsow-hero-image-widget/lsow-hero-image-widget.php +2 -2
- includes/widgets/lsow-hero-image-widget/tpl/default.php +1 -1
- includes/widgets/lsow-icon-list-widget/assets/banner.svg +59 -0
- includes/widgets/lsow-icon-list-widget/css/style.css +66 -0
- includes/widgets/lsow-icon-list-widget/css/style.css.map +7 -0
- includes/widgets/lsow-icon-list-widget/css/style.scss +70 -0
- includes/widgets/lsow-icon-list-widget/js/icon-list.js +9 -0
- includes/widgets/lsow-icon-list-widget/js/icon-list.min.js +1 -0
- includes/widgets/lsow-icon-list-widget/lsow-icon-list-widget.php +191 -0
- includes/widgets/lsow-icon-list-widget/styles/default.less +22 -0
- includes/widgets/lsow-icon-list-widget/tpl/default.php +77 -0
- includes/widgets/lsow-odometers-widget/lsow-odometers-widget.php +1 -1
- includes/widgets/lsow-piecharts-widget/lsow-piecharts-widget.php +1 -1
- includes/widgets/lsow-portfolio-widget/lsow-portfolio-widget.php +3 -3
- includes/widgets/lsow-posts-carousel-widget/lsow-posts-carousel-widget.php +1 -1
- includes/widgets/lsow-pricing-table-widget/lsow-pricing-table-widget.php +1 -1
- includes/widgets/lsow-pricing-table-widget/tpl/default.php +22 -23
- includes/widgets/lsow-services-widget/lsow-services-widget.php +1 -1
- includes/widgets/lsow-stats-bar-widget/lsow-stats-bar-widget.php +1 -1
- includes/widgets/lsow-tabs-widget/css/style.css +3 -2
- includes/widgets/lsow-tabs-widget/css/style.css.map +1 -1
- includes/widgets/lsow-tabs-widget/css/style.scss +2 -1
- includes/widgets/lsow-tabs-widget/js/tabs.js +0 -8
- includes/widgets/lsow-tabs-widget/lsow-tabs-widget.php +1 -1
- includes/widgets/lsow-team-members-widget/lsow-team-members-widget.php +1 -1
- includes/widgets/lsow-testimonials-slider-widget/css/style.css +2 -1
- includes/widgets/lsow-testimonials-slider-widget/css/style.css.map +1 -1
- includes/widgets/lsow-testimonials-slider-widget/css/style.scss +1 -0
- includes/widgets/lsow-testimonials-widget/lsow-testimonials-widget.php +1 -1
- livemesh-so-widgets.php +2 -2
- readme.txt +13 -3
assets/css/lsow-admin.css
CHANGED
@@ -1,4 +1,7 @@
|
|
1 |
.center {
|
2 |
text-align: center; }
|
3 |
|
|
|
|
|
|
|
4 |
/*# sourceMappingURL=lsow-admin.css.map */
|
1 |
.center {
|
2 |
text-align: center; }
|
3 |
|
4 |
+
.siteorigin-widget-form .siteorigin-widget-field .lsow-widget-input-datepicker, .siteorigin-widget-form .siteorigin-widget-field .lsow-widget-input-timepicker {
|
5 |
+
max-width: 230px; }
|
6 |
+
|
7 |
/*# sourceMappingURL=lsow-admin.css.map */
|
assets/css/lsow-admin.css.map
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
{
|
2 |
"version": 3,
|
3 |
-
"mappings": "AAAA,OAAQ;EACN,UAAU,EAAE,MAAM",
|
4 |
"sources": ["lsow-admin.scss"],
|
5 |
"names": [],
|
6 |
"file": "lsow-admin.css"
|
1 |
{
|
2 |
"version": 3,
|
3 |
+
"mappings": "AAAA,OAAQ;EACN,UAAU,EAAE,MAAM;;AAGpB,8JAA+J;EAC7J,SAAS,EAAE,KAAK",
|
4 |
"sources": ["lsow-admin.scss"],
|
5 |
"names": [],
|
6 |
"file": "lsow-admin.css"
|
assets/css/lsow-admin.scss
CHANGED
@@ -1,3 +1,7 @@
|
|
1 |
.center {
|
2 |
text-align: center;
|
|
|
|
|
|
|
|
|
3 |
}
|
1 |
.center {
|
2 |
text-align: center;
|
3 |
+
}
|
4 |
+
|
5 |
+
.siteorigin-widget-form .siteorigin-widget-field .lsow-widget-input-datepicker, .siteorigin-widget-form .siteorigin-widget-field .lsow-widget-input-timepicker {
|
6 |
+
max-width: 230px;
|
7 |
}
|
assets/css/lsow-frontend.css
CHANGED
@@ -14,19 +14,21 @@ html {
|
|
14 |
.panel-grid .widget {
|
15 |
overflow: initial; }
|
16 |
|
17 |
-
.lsow-container ol, .lsow-container ul, .lsow-container ol li, .lsow-container ul li, .lsow-container ol:hover, .lsow-container ul:hover, .lsow-container ul li:hover, .lsow-container ol li:hover, .lsow-container ol li a, .lsow-container ul li a, .lsow-container ol li a:hover, .lsow-container ul li a:hover, .lsow-container img {
|
18 |
padding: 0;
|
19 |
margin: 0;
|
20 |
border: none;
|
21 |
box-shadow: none;
|
22 |
list-style: none;
|
23 |
background: none; }
|
24 |
-
.lsow-container ol:before, .lsow-container ol:after, .lsow-container ul:before, .lsow-container ul:after, .lsow-container ol li:before, .lsow-container ol li:after, .lsow-container ul li:before, .lsow-container ul li:after, .lsow-container ol:hover:before, .lsow-container ol:hover:after, .lsow-container ul:hover:before, .lsow-container ul:hover:after, .lsow-container ul li:hover:before, .lsow-container ul li:hover:after, .lsow-container ol li:hover:before, .lsow-container ol li:hover:after, .lsow-container ol li a:before, .lsow-container ol li a:after, .lsow-container ul li a:before, .lsow-container ul li a:after, .lsow-container ol li a:hover:before, .lsow-container ol li a:hover:after, .lsow-container ul li a:hover:before, .lsow-container ul li a:hover:after, .lsow-container img:before, .lsow-container img:after {
|
25 |
display: none; }
|
26 |
.lsow-container a {
|
27 |
text-decoration: initial; }
|
28 |
.lsow-container img {
|
29 |
-
max-width: 100%;
|
|
|
|
|
30 |
|
31 |
/* ------- General styles ------------ */
|
32 |
.lsow-container {
|
@@ -223,6 +225,13 @@ html {
|
|
223 |
width: 100%; } }
|
224 |
|
225 |
/* --------------- Flexslider Styles -------------- */
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
226 |
.lsow-container .lsow-flex-direction-nav li {
|
227 |
position: initial; }
|
228 |
.lsow-container .lsow-flex-direction-nav a, .lsow-container .lsow-flex-direction-nav a:hover {
|
@@ -254,14 +263,12 @@ html {
|
|
254 |
-moz-transition: all 0.3s ease-in-out 0s;
|
255 |
-ms-transition: all 0.3s ease-in-out 0s;
|
256 |
transition: all 0.3s ease-in-out 0s; }
|
257 |
-
.lsow-container .lsow-flex-direction-nav a:before, .lsow-container .lsow-flex-direction-nav a:hover:before
|
258 |
margin: 2px;
|
259 |
vertical-align: middle;
|
260 |
display: inline;
|
261 |
font-family: inherit !important;
|
262 |
opacity: 1; }
|
263 |
-
.lsow-container .lsow-flex-direction-nav a:hover, .lsow-container .lsow-flex-direction-nav a:hover:hover {
|
264 |
-
color: #888; }
|
265 |
.lsow-dark-bg .lsow-container .lsow-flex-direction-nav a, .lsow-dark-bg .lsow-container .lsow-flex-direction-nav a:hover {
|
266 |
color: #888; }
|
267 |
.lsow-dark-bg .lsow-container .lsow-flex-direction-nav a:hover, .lsow-dark-bg .lsow-container .lsow-flex-direction-nav a:hover:hover {
|
@@ -282,7 +289,9 @@ html {
|
|
282 |
width: 100%;
|
283 |
position: absolute;
|
284 |
bottom: -40px;
|
285 |
-
text-align: center;
|
|
|
|
|
286 |
.lsow-container .lsow-flex-control-nav li, .lsow-container .lsow-flex-control-nav li:hover {
|
287 |
margin: 0 8px 0 0;
|
288 |
padding: 0;
|
@@ -395,9 +404,12 @@ html {
|
|
395 |
.lsow-dark-bg .lsow-container ul.slick-dots li button {
|
396 |
background: #888 !important;
|
397 |
border-color: #888 !important; }
|
398 |
-
.lsow-container ul.slick-dots li button:hover {
|
399 |
background: none !important;
|
400 |
border-color: #aaa !important; }
|
|
|
|
|
|
|
401 |
|
402 |
/* -------- Widget separator headline ------------ */
|
403 |
.lsow-widget-heading {
|
@@ -418,4 +430,98 @@ html {
|
|
418 |
font-size: 32px;
|
419 |
line-height: 44px; } }
|
420 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
421 |
/*# sourceMappingURL=lsow-frontend.css.map */
|
14 |
.panel-grid .widget {
|
15 |
overflow: initial; }
|
16 |
|
17 |
+
.lsow-container ol, .lsow-container ul, .lsow-container ol > li, .lsow-container ul > li, .lsow-container ol:hover, .lsow-container ul:hover, .lsow-container ul > li:hover, .lsow-container ol > li:hover, .lsow-container ol > li > a, .lsow-container ul > li > a, .lsow-container ol > li > a:hover, .lsow-container ul > li > a:hover, .lsow-container img {
|
18 |
padding: 0;
|
19 |
margin: 0;
|
20 |
border: none;
|
21 |
box-shadow: none;
|
22 |
list-style: none;
|
23 |
background: none; }
|
24 |
+
.lsow-container ol:before, .lsow-container ol:after, .lsow-container ul:before, .lsow-container ul:after, .lsow-container ol > li:before, .lsow-container ol > li:after, .lsow-container ul > li:before, .lsow-container ul > li:after, .lsow-container ol:hover:before, .lsow-container ol:hover:after, .lsow-container ul:hover:before, .lsow-container ul:hover:after, .lsow-container ul > li:hover:before, .lsow-container ul > li:hover:after, .lsow-container ol > li:hover:before, .lsow-container ol > li:hover:after, .lsow-container ol > li > a:before, .lsow-container ol > li > a:after, .lsow-container ul > li > a:before, .lsow-container ul > li > a:after, .lsow-container ol > li > a:hover:before, .lsow-container ol > li > a:hover:after, .lsow-container ul > li > a:hover:before, .lsow-container ul > li > a:hover:after, .lsow-container img:before, .lsow-container img:after {
|
25 |
display: none; }
|
26 |
.lsow-container a {
|
27 |
text-decoration: initial; }
|
28 |
.lsow-container img {
|
29 |
+
max-width: 100%;
|
30 |
+
width: auto;
|
31 |
+
height: auto; }
|
32 |
|
33 |
/* ------- General styles ------------ */
|
34 |
.lsow-container {
|
225 |
width: 100%; } }
|
226 |
|
227 |
/* --------------- Flexslider Styles -------------- */
|
228 |
+
.lsow-container .lsow-thumbnailslider.lsow-flexslider {
|
229 |
+
margin: 0; }
|
230 |
+
.lsow-container .lsow-thumbnailslider.lsow-flexslider .lsow-slide {
|
231 |
+
margin: 0 5px; }
|
232 |
+
.lsow-container .lsow-flex-direction-nav {
|
233 |
+
padding: 0 !important;
|
234 |
+
margin: 0 !important; }
|
235 |
.lsow-container .lsow-flex-direction-nav li {
|
236 |
position: initial; }
|
237 |
.lsow-container .lsow-flex-direction-nav a, .lsow-container .lsow-flex-direction-nav a:hover {
|
263 |
-moz-transition: all 0.3s ease-in-out 0s;
|
264 |
-ms-transition: all 0.3s ease-in-out 0s;
|
265 |
transition: all 0.3s ease-in-out 0s; }
|
266 |
+
.lsow-container .lsow-flex-direction-nav a:before, .lsow-container .lsow-flex-direction-nav a:hover:before {
|
267 |
margin: 2px;
|
268 |
vertical-align: middle;
|
269 |
display: inline;
|
270 |
font-family: inherit !important;
|
271 |
opacity: 1; }
|
|
|
|
|
272 |
.lsow-dark-bg .lsow-container .lsow-flex-direction-nav a, .lsow-dark-bg .lsow-container .lsow-flex-direction-nav a:hover {
|
273 |
color: #888; }
|
274 |
.lsow-dark-bg .lsow-container .lsow-flex-direction-nav a:hover, .lsow-dark-bg .lsow-container .lsow-flex-direction-nav a:hover:hover {
|
289 |
width: 100%;
|
290 |
position: absolute;
|
291 |
bottom: -40px;
|
292 |
+
text-align: center;
|
293 |
+
padding: 0 !important;
|
294 |
+
margin: 0 !important; }
|
295 |
.lsow-container .lsow-flex-control-nav li, .lsow-container .lsow-flex-control-nav li:hover {
|
296 |
margin: 0 8px 0 0;
|
297 |
padding: 0;
|
404 |
.lsow-dark-bg .lsow-container ul.slick-dots li button {
|
405 |
background: #888 !important;
|
406 |
border-color: #888 !important; }
|
407 |
+
.lsow-container ul.slick-dots li button:hover, .lsow-container ul.slick-dots li.slick-active button {
|
408 |
background: none !important;
|
409 |
border-color: #aaa !important; }
|
410 |
+
.lsow-container ul.slick-dots li.slick-active button {
|
411 |
+
width: 14px;
|
412 |
+
height: 14px; }
|
413 |
|
414 |
/* -------- Widget separator headline ------------ */
|
415 |
.lsow-widget-heading {
|
430 |
font-size: 32px;
|
431 |
line-height: 44px; } }
|
432 |
|
433 |
+
/*------------- Powertip Tooltip ----------- */
|
434 |
+
/* PowerTip Plugin */
|
435 |
+
#powerTip {
|
436 |
+
cursor: default;
|
437 |
+
background-color: #333;
|
438 |
+
background-color: rgba(0, 0, 0, 0.8);
|
439 |
+
border-radius: 6px;
|
440 |
+
color: #fff;
|
441 |
+
display: none;
|
442 |
+
padding: 10px;
|
443 |
+
position: absolute;
|
444 |
+
white-space: nowrap;
|
445 |
+
z-index: 2147483647; }
|
446 |
+
|
447 |
+
#powerTip:before {
|
448 |
+
content: "";
|
449 |
+
position: absolute; }
|
450 |
+
|
451 |
+
#powerTip.n:before, #powerTip.s:before {
|
452 |
+
border-right: 5px solid transparent;
|
453 |
+
border-left: 5px solid transparent;
|
454 |
+
left: 50%;
|
455 |
+
margin-left: -5px; }
|
456 |
+
|
457 |
+
#powerTip.e:before, #powerTip.w:before {
|
458 |
+
border-bottom: 5px solid transparent;
|
459 |
+
border-top: 5px solid transparent;
|
460 |
+
margin-top: -5px;
|
461 |
+
top: 50%; }
|
462 |
+
|
463 |
+
#powerTip.n:before {
|
464 |
+
border-top: 10px solid #333;
|
465 |
+
border-top: 10px solid rgba(0, 0, 0, 0.8);
|
466 |
+
bottom: -10px; }
|
467 |
+
|
468 |
+
#powerTip.e:before {
|
469 |
+
border-right: 10px solid #333;
|
470 |
+
border-right: 10px solid rgba(0, 0, 0, 0.8);
|
471 |
+
left: -10px; }
|
472 |
+
|
473 |
+
#powerTip.s:before {
|
474 |
+
border-bottom: 10px solid #333;
|
475 |
+
border-bottom: 10px solid rgba(0, 0, 0, 0.8);
|
476 |
+
top: -10px; }
|
477 |
+
|
478 |
+
#powerTip.w:before {
|
479 |
+
border-left: 10px solid #333;
|
480 |
+
border-left: 10px solid rgba(0, 0, 0, 0.8);
|
481 |
+
right: -10px; }
|
482 |
+
|
483 |
+
#powerTip.ne:before, #powerTip.se:before {
|
484 |
+
border-right: 10px solid transparent;
|
485 |
+
border-left: 0;
|
486 |
+
left: 10px; }
|
487 |
+
|
488 |
+
#powerTip.nw:before, #powerTip.sw:before {
|
489 |
+
border-left: 10px solid transparent;
|
490 |
+
border-right: 0;
|
491 |
+
right: 10px; }
|
492 |
+
|
493 |
+
#powerTip.ne:before, #powerTip.nw:before {
|
494 |
+
border-top: 10px solid #333;
|
495 |
+
border-top: 10px solid rgba(0, 0, 0, 0.8);
|
496 |
+
bottom: -10px; }
|
497 |
+
|
498 |
+
#powerTip.se:before, #powerTip.sw:before {
|
499 |
+
border-bottom: 10px solid #333;
|
500 |
+
border-bottom: 10px solid rgba(0, 0, 0, 0.8);
|
501 |
+
top: -10px; }
|
502 |
+
|
503 |
+
#powerTip.nw-alt:before, #powerTip.ne-alt:before,
|
504 |
+
#powerTip.sw-alt:before, #powerTip.se-alt:before {
|
505 |
+
border-top: 10px solid #333;
|
506 |
+
border-top: 10px solid rgba(0, 0, 0, 0.8);
|
507 |
+
bottom: -10px;
|
508 |
+
border-left: 5px solid transparent;
|
509 |
+
border-right: 5px solid transparent;
|
510 |
+
left: 10px; }
|
511 |
+
|
512 |
+
#powerTip.ne-alt:before {
|
513 |
+
left: auto;
|
514 |
+
right: 10px; }
|
515 |
+
|
516 |
+
#powerTip.sw-alt:before, #powerTip.se-alt:before {
|
517 |
+
border-top: none;
|
518 |
+
border-bottom: 10px solid #333;
|
519 |
+
border-bottom: 10px solid rgba(0, 0, 0, 0.8);
|
520 |
+
bottom: auto;
|
521 |
+
top: -10px; }
|
522 |
+
|
523 |
+
#powerTip.se-alt:before {
|
524 |
+
left: auto;
|
525 |
+
right: 10px; }
|
526 |
+
|
527 |
/*# sourceMappingURL=lsow-frontend.css.map */
|
assets/css/lsow-frontend.css.map
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
{
|
2 |
"version": 3,
|
3 |
-
"mappings": "AAGE,IAAK;EACH,UAAU,EAAE,UAAU;;AAItB,sBAEU;EACR,UAAU,EAAE,OAAO;;AARvB,IAAK;EACH,UAAU,EAAE,UAAU;;AAItB,sBAEU;EACR,UAAU,EAAE,OAAO;;;ACHzB,mBAAoB;EAClB,QAAQ,EAAE,OAAO;;AAIjB
|
4 |
"sources": ["../../../../bower_components/neat/app/assets/stylesheets/grid/_box-sizing.scss","lsow-frontend.scss","../../../../bower_components/neat/app/assets/stylesheets/grid/_omega.scss","_lsow-lib.scss","../../../../bower_components/neat/app/assets/stylesheets/grid/_span-columns.scss"],
|
5 |
"names": [],
|
6 |
"file": "lsow-frontend.css"
|
1 |
{
|
2 |
"version": 3,
|
3 |
+
"mappings": "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",
|
4 |
"sources": ["../../../../bower_components/neat/app/assets/stylesheets/grid/_box-sizing.scss","lsow-frontend.scss","../../../../bower_components/neat/app/assets/stylesheets/grid/_omega.scss","_lsow-lib.scss","../../../../bower_components/neat/app/assets/stylesheets/grid/_span-columns.scss"],
|
5 |
"names": [],
|
6 |
"file": "lsow-frontend.css"
|
assets/css/lsow-frontend.scss
CHANGED
@@ -11,7 +11,7 @@
|
|
11 |
}
|
12 |
|
13 |
.lsow-container {
|
14 |
-
ol, ul, ol li, ul li, ol:hover, ul:hover, ul li:hover, ol li:hover, ol li a, ul li a, ol li a:hover, ul li a:hover, img {
|
15 |
padding: 0;
|
16 |
margin: 0;
|
17 |
border: none;
|
@@ -27,6 +27,8 @@
|
|
27 |
}
|
28 |
img {
|
29 |
max-width: 100%;
|
|
|
|
|
30 |
}
|
31 |
}
|
32 |
|
@@ -239,6 +241,16 @@ $grid-columns: 12;
|
|
239 |
/* --------------- Flexslider Styles -------------- */
|
240 |
|
241 |
.lsow-container {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
242 |
.lsow-flex-direction-nav li {
|
243 |
position: initial;
|
244 |
}
|
@@ -260,16 +272,13 @@ $grid-columns: 12;
|
|
260 |
text-align: center;
|
261 |
color: #aaa;
|
262 |
@include vendorize(transition, all 0.3s ease-in-out 0s);
|
263 |
-
&:before
|
264 |
margin: 2px;
|
265 |
vertical-align: middle;
|
266 |
display: inline;
|
267 |
font-family: inherit !important;
|
268 |
opacity: 1;
|
269 |
}
|
270 |
-
&:hover {
|
271 |
-
color: #888;
|
272 |
-
}
|
273 |
.lsow-dark-bg & {
|
274 |
color: #888;
|
275 |
&:hover {
|
@@ -297,6 +306,8 @@ $grid-columns: 12;
|
|
297 |
position: absolute;
|
298 |
bottom: -40px;
|
299 |
text-align: center;
|
|
|
|
|
300 |
li, li:hover {
|
301 |
margin: 0 8px 0 0;
|
302 |
padding: 0;
|
@@ -415,10 +426,14 @@ $grid-columns: 12;
|
|
415 |
border-color: #888 !important;
|
416 |
}
|
417 |
}
|
418 |
-
li button:hover {
|
419 |
background: none !important;
|
420 |
border-color: #aaa !important;
|
421 |
}
|
|
|
|
|
|
|
|
|
422 |
}
|
423 |
}
|
424 |
|
@@ -433,4 +448,102 @@ $grid-columns: 12;
|
|
433 |
font-size: 32px;
|
434 |
line-height: 44px;
|
435 |
}
|
436 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
}
|
12 |
|
13 |
.lsow-container {
|
14 |
+
ol, ul, ol > li, ul > li, ol:hover, ul:hover, ul > li:hover, ol > li:hover, ol > li > a, ul > li > a, ol > li > a:hover, ul > li > a:hover, img {
|
15 |
padding: 0;
|
16 |
margin: 0;
|
17 |
border: none;
|
27 |
}
|
28 |
img {
|
29 |
max-width: 100%;
|
30 |
+
width: auto;
|
31 |
+
height: auto;
|
32 |
}
|
33 |
}
|
34 |
|
241 |
/* --------------- Flexslider Styles -------------- */
|
242 |
|
243 |
.lsow-container {
|
244 |
+
.lsow-thumbnailslider.lsow-flexslider {
|
245 |
+
margin: 0;
|
246 |
+
}
|
247 |
+
.lsow-thumbnailslider.lsow-flexslider .lsow-slide {
|
248 |
+
margin: 0 5px;
|
249 |
+
}
|
250 |
+
.lsow-flex-direction-nav {
|
251 |
+
padding: 0 !important;
|
252 |
+
margin: 0 !important;
|
253 |
+
}
|
254 |
.lsow-flex-direction-nav li {
|
255 |
position: initial;
|
256 |
}
|
272 |
text-align: center;
|
273 |
color: #aaa;
|
274 |
@include vendorize(transition, all 0.3s ease-in-out 0s);
|
275 |
+
&:before {
|
276 |
margin: 2px;
|
277 |
vertical-align: middle;
|
278 |
display: inline;
|
279 |
font-family: inherit !important;
|
280 |
opacity: 1;
|
281 |
}
|
|
|
|
|
|
|
282 |
.lsow-dark-bg & {
|
283 |
color: #888;
|
284 |
&:hover {
|
306 |
position: absolute;
|
307 |
bottom: -40px;
|
308 |
text-align: center;
|
309 |
+
padding: 0 !important;
|
310 |
+
margin: 0 !important;
|
311 |
li, li:hover {
|
312 |
margin: 0 8px 0 0;
|
313 |
padding: 0;
|
426 |
border-color: #888 !important;
|
427 |
}
|
428 |
}
|
429 |
+
li button:hover, li.slick-active button {
|
430 |
background: none !important;
|
431 |
border-color: #aaa !important;
|
432 |
}
|
433 |
+
li.slick-active button {
|
434 |
+
width: 14px;
|
435 |
+
height: 14px;
|
436 |
+
}
|
437 |
}
|
438 |
}
|
439 |
|
448 |
font-size: 32px;
|
449 |
line-height: 44px;
|
450 |
}
|
451 |
+
}
|
452 |
+
|
453 |
+
/*------------- Powertip Tooltip ----------- */
|
454 |
+
|
455 |
+
/* PowerTip Plugin */
|
456 |
+
#powerTip {
|
457 |
+
cursor: default;
|
458 |
+
background-color: #333;
|
459 |
+
background-color: rgba(0, 0, 0, 0.8);
|
460 |
+
border-radius: 6px;
|
461 |
+
color: #fff;
|
462 |
+
display: none;
|
463 |
+
padding: 10px;
|
464 |
+
position: absolute;
|
465 |
+
white-space: nowrap;
|
466 |
+
z-index: 2147483647;
|
467 |
+
}
|
468 |
+
#powerTip:before {
|
469 |
+
content: "";
|
470 |
+
position: absolute;
|
471 |
+
}
|
472 |
+
#powerTip.n:before, #powerTip.s:before {
|
473 |
+
border-right: 5px solid transparent;
|
474 |
+
border-left: 5px solid transparent;
|
475 |
+
left: 50%;
|
476 |
+
margin-left: -5px;
|
477 |
+
}
|
478 |
+
#powerTip.e:before, #powerTip.w:before {
|
479 |
+
border-bottom: 5px solid transparent;
|
480 |
+
border-top: 5px solid transparent;
|
481 |
+
margin-top: -5px;
|
482 |
+
top: 50%;
|
483 |
+
}
|
484 |
+
#powerTip.n:before {
|
485 |
+
border-top: 10px solid #333;
|
486 |
+
border-top: 10px solid rgba(0, 0, 0, 0.8);
|
487 |
+
bottom: -10px;
|
488 |
+
}
|
489 |
+
#powerTip.e:before {
|
490 |
+
border-right: 10px solid #333;
|
491 |
+
border-right: 10px solid rgba(0, 0, 0, 0.8);
|
492 |
+
left: -10px;
|
493 |
+
}
|
494 |
+
#powerTip.s:before {
|
495 |
+
border-bottom: 10px solid #333;
|
496 |
+
border-bottom: 10px solid rgba(0, 0, 0, 0.8);
|
497 |
+
top: -10px;
|
498 |
+
}
|
499 |
+
#powerTip.w:before {
|
500 |
+
border-left: 10px solid #333;
|
501 |
+
border-left: 10px solid rgba(0, 0, 0, 0.8);
|
502 |
+
right: -10px;
|
503 |
+
}
|
504 |
+
#powerTip.ne:before, #powerTip.se:before {
|
505 |
+
border-right: 10px solid transparent;
|
506 |
+
border-left: 0;
|
507 |
+
left: 10px;
|
508 |
+
}
|
509 |
+
#powerTip.nw:before, #powerTip.sw:before {
|
510 |
+
border-left: 10px solid transparent;
|
511 |
+
border-right: 0;
|
512 |
+
right: 10px;
|
513 |
+
}
|
514 |
+
#powerTip.ne:before, #powerTip.nw:before {
|
515 |
+
border-top: 10px solid #333;
|
516 |
+
border-top: 10px solid rgba(0, 0, 0, 0.8);
|
517 |
+
bottom: -10px;
|
518 |
+
}
|
519 |
+
#powerTip.se:before, #powerTip.sw:before {
|
520 |
+
border-bottom: 10px solid #333;
|
521 |
+
border-bottom: 10px solid rgba(0, 0, 0, 0.8);
|
522 |
+
top: -10px;
|
523 |
+
}
|
524 |
+
#powerTip.nw-alt:before, #powerTip.ne-alt:before,
|
525 |
+
#powerTip.sw-alt:before, #powerTip.se-alt:before {
|
526 |
+
border-top: 10px solid #333;
|
527 |
+
border-top: 10px solid rgba(0, 0, 0, 0.8);
|
528 |
+
bottom: -10px;
|
529 |
+
border-left: 5px solid transparent;
|
530 |
+
border-right: 5px solid transparent;
|
531 |
+
left: 10px;
|
532 |
+
}
|
533 |
+
#powerTip.ne-alt:before {
|
534 |
+
left: auto;
|
535 |
+
right: 10px;
|
536 |
+
}
|
537 |
+
#powerTip.sw-alt:before, #powerTip.se-alt:before {
|
538 |
+
border-top: none;
|
539 |
+
border-bottom: 10px solid #333;
|
540 |
+
border-bottom: 10px solid rgba(0, 0, 0, 0.8);
|
541 |
+
bottom: auto;
|
542 |
+
top: -10px;
|
543 |
+
}
|
544 |
+
#powerTip.se-alt:before {
|
545 |
+
left: auto;
|
546 |
+
right: 10px;
|
547 |
+
}
|
548 |
+
|
549 |
+
|
assets/css/magnific-popup.css
CHANGED
@@ -8,8 +8,7 @@
|
|
8 |
overflow: hidden;
|
9 |
position: fixed;
|
10 |
background: #0b0b0b;
|
11 |
-
opacity: 0.8;
|
12 |
-
filter: alpha(opacity=80); }
|
13 |
|
14 |
.mfp-wrap {
|
15 |
top: 0;
|
@@ -29,8 +28,6 @@
|
|
29 |
left: 0;
|
30 |
top: 0;
|
31 |
padding: 0 8px;
|
32 |
-
-webkit-box-sizing: border-box;
|
33 |
-
-moz-box-sizing: border-box;
|
34 |
box-sizing: border-box; }
|
35 |
|
36 |
.mfp-container:before {
|
@@ -96,10 +93,10 @@
|
|
96 |
left: 8px;
|
97 |
right: 8px;
|
98 |
z-index: 1044; }
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
|
104 |
.mfp-s-ready .mfp-preloader {
|
105 |
display: none; }
|
@@ -118,8 +115,8 @@ button.mfp-arrow {
|
|
118 |
outline: none;
|
119 |
padding: 0;
|
120 |
z-index: 1046;
|
121 |
-
|
122 |
-
|
123 |
|
124 |
button::-moz-focus-inner {
|
125 |
padding: 0;
|
@@ -135,18 +132,16 @@ button::-moz-focus-inner {
|
|
135 |
text-decoration: none;
|
136 |
text-align: center;
|
137 |
opacity: 0.65;
|
138 |
-
filter: alpha(opacity=65);
|
139 |
padding: 0 0 18px 10px;
|
140 |
color: #FFF;
|
141 |
font-style: normal;
|
142 |
font-size: 28px;
|
143 |
font-family: Arial, Baskerville, monospace; }
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
top: 1px; }
|
150 |
|
151 |
.mfp-close-btn-in .mfp-close {
|
152 |
color: #333; }
|
@@ -171,7 +166,6 @@ button::-moz-focus-inner {
|
|
171 |
.mfp-arrow {
|
172 |
position: absolute;
|
173 |
opacity: 0.65;
|
174 |
-
filter: alpha(opacity=65);
|
175 |
margin: 0;
|
176 |
top: 50%;
|
177 |
margin-top: -55px;
|
@@ -179,82 +173,73 @@ button::-moz-focus-inner {
|
|
179 |
width: 90px;
|
180 |
height: 110px;
|
181 |
-webkit-tap-highlight-color: transparent; }
|
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 |
-
.mfp-arrow:before,
|
208 |
-
.mfp-arrow .mfp-b {
|
209 |
-
border-top-width: 21px;
|
210 |
-
border-bottom-width: 21px;
|
211 |
-
opacity: 0.7; }
|
212 |
|
213 |
.mfp-arrow-left {
|
214 |
left: 0; }
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
margin-left: 25px;
|
222 |
-
border-right: 27px solid #3F3F3F; }
|
223 |
|
224 |
.mfp-arrow-right {
|
225 |
right: 0; }
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
.mfp-arrow-right .mfp-b {
|
232 |
-
border-left: 27px solid #3F3F3F; }
|
233 |
|
234 |
.mfp-iframe-holder {
|
235 |
padding-top: 40px;
|
236 |
padding-bottom: 40px; }
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
|
244 |
.mfp-iframe-scaler {
|
245 |
width: 100%;
|
246 |
height: 0;
|
247 |
overflow: hidden;
|
248 |
padding-top: 56.25%; }
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
|
259 |
/* Main image in popup */
|
260 |
img.mfp-img {
|
@@ -263,8 +248,6 @@ img.mfp-img {
|
|
263 |
height: auto;
|
264 |
display: block;
|
265 |
line-height: 0;
|
266 |
-
-webkit-box-sizing: border-box;
|
267 |
-
-moz-box-sizing: border-box;
|
268 |
box-sizing: border-box;
|
269 |
padding: 40px 0 40px;
|
270 |
margin: 0 auto; }
|
@@ -272,26 +255,26 @@ img.mfp-img {
|
|
272 |
/* The shadow behind the image */
|
273 |
.mfp-figure {
|
274 |
line-height: 0; }
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
|
296 |
.mfp-bottom-bar {
|
297 |
margin-top: -36px;
|
@@ -336,11 +319,9 @@ img.mfp-img {
|
|
336 |
top: auto;
|
337 |
padding: 3px 5px;
|
338 |
position: fixed;
|
339 |
-
-webkit-box-sizing: border-box;
|
340 |
-
-moz-box-sizing: border-box;
|
341 |
box-sizing: border-box; }
|
342 |
-
|
343 |
-
|
344 |
.mfp-img-mobile .mfp-counter {
|
345 |
right: 5px;
|
346 |
top: 3px; }
|
@@ -368,24 +349,3 @@ img.mfp-img {
|
|
368 |
.mfp-container {
|
369 |
padding-left: 6px;
|
370 |
padding-right: 6px; } }
|
371 |
-
|
372 |
-
.mfp-ie7 .mfp-img {
|
373 |
-
padding: 0; }
|
374 |
-
|
375 |
-
.mfp-ie7 .mfp-bottom-bar {
|
376 |
-
width: 600px;
|
377 |
-
left: 50%;
|
378 |
-
margin-left: -300px;
|
379 |
-
margin-top: 5px;
|
380 |
-
padding-bottom: 5px; }
|
381 |
-
|
382 |
-
.mfp-ie7 .mfp-container {
|
383 |
-
padding: 0; }
|
384 |
-
|
385 |
-
.mfp-ie7 .mfp-content {
|
386 |
-
padding-top: 44px; }
|
387 |
-
|
388 |
-
.mfp-ie7 .mfp-close {
|
389 |
-
top: 0;
|
390 |
-
right: 0;
|
391 |
-
padding-top: 0; }
|
8 |
overflow: hidden;
|
9 |
position: fixed;
|
10 |
background: #0b0b0b;
|
11 |
+
opacity: 0.8; }
|
|
|
12 |
|
13 |
.mfp-wrap {
|
14 |
top: 0;
|
28 |
left: 0;
|
29 |
top: 0;
|
30 |
padding: 0 8px;
|
|
|
|
|
31 |
box-sizing: border-box; }
|
32 |
|
33 |
.mfp-container:before {
|
93 |
left: 8px;
|
94 |
right: 8px;
|
95 |
z-index: 1044; }
|
96 |
+
.mfp-preloader a {
|
97 |
+
color: #CCC; }
|
98 |
+
.mfp-preloader a:hover {
|
99 |
+
color: #FFF; }
|
100 |
|
101 |
.mfp-s-ready .mfp-preloader {
|
102 |
display: none; }
|
115 |
outline: none;
|
116 |
padding: 0;
|
117 |
z-index: 1046;
|
118 |
+
box-shadow: none;
|
119 |
+
touch-action: manipulation; }
|
120 |
|
121 |
button::-moz-focus-inner {
|
122 |
padding: 0;
|
132 |
text-decoration: none;
|
133 |
text-align: center;
|
134 |
opacity: 0.65;
|
|
|
135 |
padding: 0 0 18px 10px;
|
136 |
color: #FFF;
|
137 |
font-style: normal;
|
138 |
font-size: 28px;
|
139 |
font-family: Arial, Baskerville, monospace; }
|
140 |
+
.mfp-close:hover,
|
141 |
+
.mfp-close:focus {
|
142 |
+
opacity: 1; }
|
143 |
+
.mfp-close:active {
|
144 |
+
top: 1px; }
|
|
|
145 |
|
146 |
.mfp-close-btn-in .mfp-close {
|
147 |
color: #333; }
|
166 |
.mfp-arrow {
|
167 |
position: absolute;
|
168 |
opacity: 0.65;
|
|
|
169 |
margin: 0;
|
170 |
top: 50%;
|
171 |
margin-top: -55px;
|
173 |
width: 90px;
|
174 |
height: 110px;
|
175 |
-webkit-tap-highlight-color: transparent; }
|
176 |
+
.mfp-arrow:active {
|
177 |
+
margin-top: -54px; }
|
178 |
+
.mfp-arrow:hover,
|
179 |
+
.mfp-arrow:focus {
|
180 |
+
opacity: 1; }
|
181 |
+
.mfp-arrow:before,
|
182 |
+
.mfp-arrow:after {
|
183 |
+
content: '';
|
184 |
+
display: block;
|
185 |
+
width: 0;
|
186 |
+
height: 0;
|
187 |
+
position: absolute;
|
188 |
+
left: 0;
|
189 |
+
top: 0;
|
190 |
+
margin-top: 35px;
|
191 |
+
margin-left: 35px;
|
192 |
+
border: medium inset transparent; }
|
193 |
+
.mfp-arrow:after {
|
194 |
+
border-top-width: 13px;
|
195 |
+
border-bottom-width: 13px;
|
196 |
+
top: 8px; }
|
197 |
+
.mfp-arrow:before {
|
198 |
+
border-top-width: 21px;
|
199 |
+
border-bottom-width: 21px;
|
200 |
+
opacity: 0.7; }
|
|
|
|
|
|
|
|
|
|
|
201 |
|
202 |
.mfp-arrow-left {
|
203 |
left: 0; }
|
204 |
+
.mfp-arrow-left:after {
|
205 |
+
border-right: 17px solid #FFF;
|
206 |
+
margin-left: 31px; }
|
207 |
+
.mfp-arrow-left:before {
|
208 |
+
margin-left: 25px;
|
209 |
+
border-right: 27px solid #3F3F3F; }
|
|
|
|
|
210 |
|
211 |
.mfp-arrow-right {
|
212 |
right: 0; }
|
213 |
+
.mfp-arrow-right:after {
|
214 |
+
border-left: 17px solid #FFF;
|
215 |
+
margin-left: 39px; }
|
216 |
+
.mfp-arrow-right:before {
|
217 |
+
border-left: 27px solid #3F3F3F; }
|
|
|
|
|
218 |
|
219 |
.mfp-iframe-holder {
|
220 |
padding-top: 40px;
|
221 |
padding-bottom: 40px; }
|
222 |
+
.mfp-iframe-holder .mfp-content {
|
223 |
+
line-height: 0;
|
224 |
+
width: 100%;
|
225 |
+
max-width: 900px; }
|
226 |
+
.mfp-iframe-holder .mfp-close {
|
227 |
+
top: -40px; }
|
228 |
|
229 |
.mfp-iframe-scaler {
|
230 |
width: 100%;
|
231 |
height: 0;
|
232 |
overflow: hidden;
|
233 |
padding-top: 56.25%; }
|
234 |
+
.mfp-iframe-scaler iframe {
|
235 |
+
position: absolute;
|
236 |
+
display: block;
|
237 |
+
top: 0;
|
238 |
+
left: 0;
|
239 |
+
width: 100%;
|
240 |
+
height: 100%;
|
241 |
+
box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
|
242 |
+
background: #000; }
|
243 |
|
244 |
/* Main image in popup */
|
245 |
img.mfp-img {
|
248 |
height: auto;
|
249 |
display: block;
|
250 |
line-height: 0;
|
|
|
|
|
251 |
box-sizing: border-box;
|
252 |
padding: 40px 0 40px;
|
253 |
margin: 0 auto; }
|
255 |
/* The shadow behind the image */
|
256 |
.mfp-figure {
|
257 |
line-height: 0; }
|
258 |
+
.mfp-figure:after {
|
259 |
+
content: '';
|
260 |
+
position: absolute;
|
261 |
+
left: 0;
|
262 |
+
top: 40px;
|
263 |
+
bottom: 40px;
|
264 |
+
display: block;
|
265 |
+
right: 0;
|
266 |
+
width: auto;
|
267 |
+
height: auto;
|
268 |
+
z-index: -1;
|
269 |
+
box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
|
270 |
+
background: #444; }
|
271 |
+
.mfp-figure small {
|
272 |
+
color: #BDBDBD;
|
273 |
+
display: block;
|
274 |
+
font-size: 12px;
|
275 |
+
line-height: 14px; }
|
276 |
+
.mfp-figure figure {
|
277 |
+
margin: 0; }
|
278 |
|
279 |
.mfp-bottom-bar {
|
280 |
margin-top: -36px;
|
319 |
top: auto;
|
320 |
padding: 3px 5px;
|
321 |
position: fixed;
|
|
|
|
|
322 |
box-sizing: border-box; }
|
323 |
+
.mfp-img-mobile .mfp-bottom-bar:empty {
|
324 |
+
padding: 0; }
|
325 |
.mfp-img-mobile .mfp-counter {
|
326 |
right: 5px;
|
327 |
top: 3px; }
|
349 |
.mfp-container {
|
350 |
padding-left: 6px;
|
351 |
padding-right: 6px; } }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/js/jquery.magnific-popup.js
CHANGED
@@ -1,2060 +1,1860 @@
|
|
1 |
-
/*! Magnific Popup - v1.
|
2 |
-
* http://dimsemenov.com/plugins/magnific-popup/
|
3 |
-
* Copyright (c)
|
4 |
-
;(function (factory) {
|
5 |
-
if (typeof define === 'function' && define.amd) {
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
/*>>core*/
|
18 |
-
/**
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
/**
|
26 |
-
* Private static constants
|
27 |
-
*/
|
28 |
-
var CLOSE_EVENT = 'Close',
|
29 |
-
BEFORE_CLOSE_EVENT = 'BeforeClose',
|
30 |
-
AFTER_CLOSE_EVENT = 'AfterClose',
|
31 |
-
BEFORE_APPEND_EVENT = 'BeforeAppend',
|
32 |
-
MARKUP_PARSE_EVENT = 'MarkupParse',
|
33 |
-
OPEN_EVENT = 'Open',
|
34 |
-
CHANGE_EVENT = 'Change',
|
35 |
-
NS = 'mfp',
|
36 |
-
EVENT_NS = '.' + NS,
|
37 |
-
READY_CLASS = 'mfp-ready',
|
38 |
-
REMOVING_CLASS = 'mfp-removing',
|
39 |
-
PREVENT_CLOSE_CLASS = 'mfp-prevent-close';
|
40 |
-
|
41 |
-
|
42 |
-
/**
|
43 |
-
* Private vars
|
44 |
-
*/
|
45 |
-
/*jshint -W079 */
|
46 |
-
var mfp, // As we have only one instance of MagnificPopup object, we define it locally to not to use 'this'
|
47 |
-
MagnificPopup = function(){},
|
48 |
-
_isJQ = !!(window.jQuery),
|
49 |
-
_prevStatus,
|
50 |
-
_window = $(window),
|
51 |
-
_document,
|
52 |
-
_prevContentType,
|
53 |
-
_wrapClasses,
|
54 |
-
_currPopupType;
|
55 |
-
|
56 |
-
|
57 |
-
/**
|
58 |
-
* Private functions
|
59 |
-
*/
|
60 |
-
var _mfpOn = function(name, f) {
|
61 |
-
mfp.ev.on(NS + name + EVENT_NS, f);
|
62 |
-
},
|
63 |
-
_getEl = function(className, appendTo, html, raw) {
|
64 |
-
var el = document.createElement('div');
|
65 |
-
el.className = 'mfp-'+className;
|
66 |
-
if(html) {
|
67 |
-
el.innerHTML = html;
|
68 |
-
}
|
69 |
-
if(!raw) {
|
70 |
-
el = $(el);
|
71 |
-
if(appendTo) {
|
72 |
-
el.appendTo(appendTo);
|
73 |
-
}
|
74 |
-
} else if(appendTo) {
|
75 |
-
appendTo.appendChild(el);
|
76 |
-
}
|
77 |
-
return el;
|
78 |
-
},
|
79 |
-
_mfpTrigger = function(e, data) {
|
80 |
-
mfp.ev.triggerHandler(NS + e, data);
|
81 |
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
87 |
}
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
97 |
// Initialize Magnific Popup only when called at least once
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
// CSS transition detection, http://stackoverflow.com/questions/7264899/detect-css-transitions-using-javascript-and-without-modernizr
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
|
111 |
-
|
112 |
-
return true;
|
113 |
-
}
|
114 |
-
|
115 |
-
while( v.length ) {
|
116 |
-
if( v.pop() + 'Transition' in s ) {
|
117 |
return true;
|
118 |
}
|
119 |
-
}
|
120 |
-
|
121 |
-
return false;
|
122 |
-
};
|
123 |
|
|
|
|
|
|
|
|
|
|
|
124 |
|
|
|
|
|
125 |
|
126 |
-
/**
|
127 |
-
* Public functions
|
128 |
-
*/
|
129 |
-
MagnificPopup.prototype = {
|
130 |
|
131 |
-
constructor: MagnificPopup,
|
132 |
|
133 |
/**
|
134 |
-
*
|
135 |
-
* This function is triggered only once when $.fn.magnificPopup or $.magnificPopup is executed
|
136 |
*/
|
137 |
-
|
138 |
-
var appVersion = navigator.appVersion;
|
139 |
-
mfp.isIE7 = appVersion.indexOf("MSIE 7.") !== -1;
|
140 |
-
mfp.isIE8 = appVersion.indexOf("MSIE 8.") !== -1;
|
141 |
-
mfp.isLowIE = mfp.isIE7 || mfp.isIE8;
|
142 |
-
mfp.isAndroid = (/android/gi).test(appVersion);
|
143 |
-
mfp.isIOS = (/iphone|ipad|ipod/gi).test(appVersion);
|
144 |
-
mfp.supportsTransition = supportsTransitions();
|
145 |
-
|
146 |
-
// We disable fixed positioned lightbox on devices that don't handle it nicely.
|
147 |
-
// If you know a better way of detecting this - let me know.
|
148 |
-
mfp.probablyMobile = (mfp.isAndroid || mfp.isIOS || /(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent) );
|
149 |
-
_document = $(document);
|
150 |
-
|
151 |
-
mfp.popupsCache = {};
|
152 |
-
},
|
153 |
|
154 |
-
|
155 |
-
* Opens popup
|
156 |
-
* @param data [description]
|
157 |
-
*/
|
158 |
-
open: function(data) {
|
159 |
|
160 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
161 |
|
162 |
-
|
163 |
-
|
164 |
-
|
|
|
|
|
165 |
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
177 |
}
|
|
|
|
|
|
|
178 |
}
|
179 |
-
} else {
|
180 |
-
mfp.items = $.isArray(data.items) ? data.items : [data.items];
|
181 |
-
mfp.index = data.index || 0;
|
182 |
-
}
|
183 |
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
mfp.types = [];
|
191 |
-
_wrapClasses = '';
|
192 |
-
if(data.mainEl && data.mainEl.length) {
|
193 |
-
mfp.ev = data.mainEl.eq(0);
|
194 |
-
} else {
|
195 |
-
mfp.ev = _document;
|
196 |
-
}
|
197 |
|
198 |
-
|
199 |
-
|
200 |
-
|
|
|
|
|
|
|
201 |
}
|
202 |
-
mfp.currTemplate = mfp.popupsCache[data.key];
|
203 |
-
} else {
|
204 |
-
mfp.currTemplate = {};
|
205 |
-
}
|
206 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
207 |
|
208 |
|
209 |
-
mfp.st = $.extend(true, {}, $.magnificPopup.defaults, data );
|
210 |
-
mfp.fixedContentPos = mfp.st.fixedContentPos === 'auto' ? !mfp.probablyMobile : mfp.st.fixedContentPos;
|
211 |
|
212 |
-
|
213 |
-
mfp.st.
|
214 |
-
mfp.st.closeOnBgClick = false;
|
215 |
-
mfp.st.showCloseBtn = false;
|
216 |
-
mfp.st.enableEscapeKey = false;
|
217 |
-
}
|
218 |
-
|
219 |
|
220 |
-
|
221 |
-
|
222 |
-
|
|
|
|
|
|
|
223 |
|
224 |
-
// Dark overlay
|
225 |
-
mfp.bgOverlay = _getEl('bg').on('click'+EVENT_NS, function() {
|
226 |
-
mfp.close();
|
227 |
-
});
|
228 |
|
229 |
-
|
230 |
-
|
|
|
|
|
|
|
|
|
231 |
mfp.close();
|
232 |
-
}
|
233 |
-
});
|
234 |
|
235 |
-
|
236 |
-
|
|
|
|
|
|
|
237 |
|
238 |
-
|
239 |
-
|
240 |
-
mfp.preloader = _getEl('preloader', mfp.container, mfp.st.tLoading);
|
241 |
-
}
|
242 |
|
|
|
|
|
|
|
|
|
243 |
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
|
|
252 |
|
253 |
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
258 |
} else {
|
259 |
-
|
260 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
261 |
});
|
262 |
-
_wrapClasses += ' mfp-close-btn-in';
|
263 |
}
|
264 |
-
}
|
265 |
-
|
266 |
-
if(mfp.st.alignTop) {
|
267 |
-
_wrapClasses += ' mfp-align-top';
|
268 |
-
}
|
269 |
|
270 |
-
|
271 |
|
272 |
-
if(mfp.fixedContentPos) {
|
273 |
-
mfp.wrap.css({
|
274 |
-
overflow: mfp.st.overflowY,
|
275 |
-
overflowX: 'hidden',
|
276 |
-
overflowY: mfp.st.overflowY
|
277 |
-
});
|
278 |
-
} else {
|
279 |
-
mfp.wrap.css({
|
280 |
-
top: _window.scrollTop(),
|
281 |
-
position: 'absolute'
|
282 |
-
});
|
283 |
-
}
|
284 |
-
if( mfp.st.fixedBgPos === false || (mfp.st.fixedBgPos === 'auto' && !mfp.fixedContentPos) ) {
|
285 |
-
mfp.bgOverlay.css({
|
286 |
-
height: _document.height(),
|
287 |
-
position: 'absolute'
|
288 |
-
});
|
289 |
-
}
|
290 |
|
291 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
292 |
|
293 |
-
|
294 |
-
|
295 |
-
_document.on('keyup' + EVENT_NS, function(e) {
|
296 |
-
if(e.keyCode === 27) {
|
297 |
-
mfp.close();
|
298 |
-
}
|
299 |
});
|
300 |
-
}
|
301 |
|
302 |
-
_window.on('resize' + EVENT_NS, function() {
|
303 |
-
mfp.updateSize();
|
304 |
-
});
|
305 |
|
|
|
|
|
|
|
306 |
|
307 |
-
|
308 |
-
|
309 |
-
}
|
310 |
-
|
311 |
-
if(_wrapClasses)
|
312 |
-
mfp.wrap.addClass(_wrapClasses);
|
313 |
|
314 |
|
315 |
-
|
316 |
-
|
317 |
|
318 |
-
|
319 |
-
var windowStyles = {};
|
320 |
|
321 |
-
|
322 |
-
if(mfp._hasScrollBar(windowHeight)){
|
323 |
-
var s = mfp._getScrollbarSize();
|
324 |
-
if(s) {
|
325 |
-
windowStyles.marginRight = s;
|
326 |
-
}
|
327 |
-
}
|
328 |
-
}
|
329 |
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
|
|
336 |
}
|
337 |
-
}
|
338 |
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
}
|
348 |
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
// add everything to DOM
|
358 |
-
mfp.bgOverlay.add(mfp.wrap).prependTo( mfp.st.prependTo || $(document.body) );
|
359 |
-
|
360 |
-
// Save last focused element
|
361 |
-
mfp._lastFocusedEl = document.activeElement;
|
362 |
-
|
363 |
-
// Wait for next cycle to allow CSS transition
|
364 |
-
setTimeout(function() {
|
365 |
-
|
366 |
-
if(mfp.content) {
|
367 |
-
mfp._addClassToMFP(READY_CLASS);
|
368 |
-
mfp._setFocus();
|
369 |
-
} else {
|
370 |
-
// if content is not defined (not loaded e.t.c) we add class only for BG
|
371 |
-
mfp.bgOverlay.addClass(READY_CLASS);
|
372 |
}
|
373 |
-
|
374 |
-
// Trap the focus in popup
|
375 |
-
_document.on('focusin' + EVENT_NS, mfp._onFocusIn);
|
376 |
|
377 |
-
|
|
|
378 |
|
379 |
-
|
380 |
-
mfp.updateSize(windowHeight);
|
381 |
-
_mfpTrigger(OPEN_EVENT);
|
382 |
|
383 |
-
|
384 |
-
|
385 |
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
mfp.isOpen = false;
|
394 |
-
// for CSS3 animation
|
395 |
-
if(mfp.st.removalDelay && !mfp.isLowIE && mfp.supportsTransition ) {
|
396 |
-
mfp._addClassToMFP(REMOVING_CLASS);
|
397 |
setTimeout(function() {
|
398 |
-
mfp._close();
|
399 |
-
}, mfp.st.removalDelay);
|
400 |
-
} else {
|
401 |
-
mfp._close();
|
402 |
-
}
|
403 |
-
},
|
404 |
|
405 |
-
|
406 |
-
|
407 |
-
|
408 |
-
|
409 |
-
|
|
|
|
|
410 |
|
411 |
-
|
|
|
412 |
|
413 |
-
|
414 |
-
mfp.wrap.detach();
|
415 |
-
mfp.container.empty();
|
416 |
|
417 |
-
|
418 |
-
|
419 |
-
|
420 |
|
421 |
-
|
|
|
422 |
|
423 |
-
|
424 |
-
|
425 |
-
|
426 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
427 |
} else {
|
428 |
-
|
429 |
}
|
430 |
-
|
431 |
-
}
|
432 |
-
|
433 |
-
_document.off('keyup' + EVENT_NS + ' focusin' + EVENT_NS);
|
434 |
-
mfp.ev.off(EVENT_NS);
|
435 |
-
|
436 |
-
// clean up DOM elements that aren't removed
|
437 |
-
mfp.wrap.attr('class', 'mfp-wrap').removeAttr('style');
|
438 |
-
mfp.bgOverlay.attr('class', 'mfp-bg');
|
439 |
-
mfp.container.attr('class', 'mfp-container');
|
440 |
-
|
441 |
-
// remove close button from target element
|
442 |
-
if(mfp.st.showCloseBtn &&
|
443 |
-
(!mfp.st.closeBtnInside || mfp.currTemplate[mfp.currItem.type] === true)) {
|
444 |
-
if(mfp.currTemplate.closeBtn)
|
445 |
-
mfp.currTemplate.closeBtn.detach();
|
446 |
-
}
|
447 |
-
|
448 |
|
449 |
-
|
450 |
-
|
451 |
-
|
452 |
-
|
453 |
-
|
454 |
-
mfp.currTemplate = null;
|
455 |
-
mfp.prevHeight = 0;
|
456 |
-
|
457 |
-
_mfpTrigger(AFTER_CLOSE_EVENT);
|
458 |
-
},
|
459 |
-
|
460 |
-
updateSize: function(winHeight) {
|
461 |
-
|
462 |
-
if(mfp.isIOS) {
|
463 |
-
// fixes iOS nav bars https://github.com/dimsemenov/Magnific-Popup/issues/2
|
464 |
-
var zoomLevel = document.documentElement.clientWidth / window.innerWidth;
|
465 |
-
var height = window.innerHeight * zoomLevel;
|
466 |
-
mfp.wrap.css('height', height);
|
467 |
-
mfp.wH = height;
|
468 |
-
} else {
|
469 |
-
mfp.wH = winHeight || _window.height();
|
470 |
-
}
|
471 |
-
// Fixes #84: popup incorrectly positioned with position:relative on body
|
472 |
-
if(!mfp.fixedContentPos) {
|
473 |
-
mfp.wrap.css('height', mfp.wH);
|
474 |
-
}
|
475 |
|
476 |
-
|
477 |
|
478 |
-
|
|
|
|
|
479 |
|
480 |
-
|
481 |
-
|
482 |
-
|
483 |
-
updateItemHTML: function() {
|
484 |
-
var item = mfp.items[mfp.index];
|
485 |
|
486 |
-
|
487 |
-
mfp.contentContainer.detach();
|
488 |
|
489 |
-
|
490 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
491 |
|
492 |
-
|
493 |
-
|
494 |
-
}
|
495 |
|
496 |
-
|
|
|
|
|
|
|
497 |
|
498 |
-
|
499 |
-
|
500 |
-
|
501 |
-
|
502 |
-
|
|
|
503 |
|
504 |
-
|
505 |
|
506 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
507 |
|
508 |
-
|
509 |
-
|
510 |
|
511 |
-
|
512 |
-
_mfpTrigger('FirstMarkupParse', markup);
|
513 |
|
514 |
-
if(
|
515 |
-
|
|
|
|
|
|
|
|
|
516 |
} else {
|
517 |
-
|
518 |
-
|
|
|
|
|
|
|
519 |
}
|
520 |
-
}
|
521 |
|
522 |
-
|
523 |
-
mfp.container.removeClass('mfp-'+_prevContentType+'-holder');
|
524 |
-
}
|
525 |
-
|
526 |
-
var newContent = mfp['get' + type.charAt(0).toUpperCase() + type.slice(1)](item, mfp.currTemplate[type]);
|
527 |
-
mfp.appendContent(newContent, type);
|
528 |
|
529 |
-
|
530 |
|
531 |
-
|
532 |
-
|
533 |
-
|
534 |
-
|
535 |
-
|
536 |
|
537 |
-
|
538 |
-
|
539 |
|
|
|
|
|
540 |
|
541 |
-
|
542 |
-
|
543 |
-
*/
|
544 |
-
appendContent: function(newContent, type) {
|
545 |
-
mfp.content = newContent;
|
546 |
-
|
547 |
-
if(newContent) {
|
548 |
-
if(mfp.st.showCloseBtn && mfp.st.closeBtnInside &&
|
549 |
-
mfp.currTemplate[type] === true) {
|
550 |
-
// if there is no markup, we just append close button element inside
|
551 |
-
if(!mfp.content.find('.mfp-close').length) {
|
552 |
-
mfp.content.append(_getCloseBtn());
|
553 |
-
}
|
554 |
-
} else {
|
555 |
-
mfp.content = newContent;
|
556 |
}
|
557 |
-
} else {
|
558 |
-
mfp.content = '';
|
559 |
-
}
|
560 |
-
|
561 |
-
_mfpTrigger(BEFORE_APPEND_EVENT);
|
562 |
-
mfp.container.addClass('mfp-'+type+'-holder');
|
563 |
-
|
564 |
-
mfp.contentContainer.append(mfp.content);
|
565 |
-
},
|
566 |
|
|
|
567 |
|
|
|
|
|
|
|
568 |
|
569 |
-
|
570 |
-
/**
|
571 |
-
* Creates Magnific Popup data object based on given data
|
572 |
-
* @param {int} index Index of item to parse
|
573 |
-
*/
|
574 |
-
parseEl: function(index) {
|
575 |
-
var item = mfp.items[index],
|
576 |
-
type;
|
577 |
|
578 |
-
|
579 |
-
|
580 |
-
} else {
|
581 |
-
type = item.type;
|
582 |
-
item = { data: item, src: item.src };
|
583 |
-
}
|
584 |
|
585 |
-
|
586 |
-
|
587 |
|
588 |
-
|
589 |
-
|
590 |
-
|
591 |
-
|
592 |
-
|
593 |
}
|
594 |
}
|
595 |
|
596 |
-
|
597 |
-
|
598 |
-
item.src = item.el.attr('href');
|
599 |
}
|
600 |
-
}
|
601 |
|
602 |
-
|
603 |
-
|
604 |
-
item.parsed = true;
|
605 |
-
mfp.items[index] = item;
|
606 |
-
_mfpTrigger('ElementParse', item);
|
607 |
|
608 |
-
|
609 |
-
},
|
610 |
|
|
|
|
|
611 |
|
612 |
-
|
613 |
-
|
614 |
-
*/
|
615 |
-
addGroup: function(el, options) {
|
616 |
-
var eHandler = function(e) {
|
617 |
-
e.mfpEl = this;
|
618 |
-
mfp._openClick(e, el, options);
|
619 |
-
};
|
620 |
|
621 |
-
|
622 |
-
|
623 |
-
}
|
624 |
|
625 |
-
|
626 |
-
|
627 |
-
|
628 |
-
|
629 |
-
|
630 |
-
|
631 |
-
|
632 |
-
|
633 |
-
|
634 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
635 |
} else {
|
636 |
-
|
637 |
-
el.off(eName).on(eName, eHandler);
|
638 |
}
|
639 |
-
}
|
640 |
-
},
|
641 |
-
_openClick: function(e, el, options) {
|
642 |
-
var midClick = options.midClick !== undefined ? options.midClick : $.magnificPopup.defaults.midClick;
|
643 |
|
|
|
|
|
644 |
|
645 |
-
|
646 |
-
|
647 |
-
}
|
648 |
|
649 |
-
var disableOn = options.disableOn !== undefined ? options.disableOn : $.magnificPopup.defaults.disableOn;
|
650 |
|
651 |
-
|
652 |
-
|
653 |
-
|
654 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
655 |
}
|
656 |
-
|
657 |
-
|
658 |
-
|
|
|
659 |
}
|
660 |
}
|
661 |
-
}
|
662 |
-
|
663 |
-
if(e.type) {
|
664 |
-
e.preventDefault();
|
665 |
|
666 |
-
|
667 |
-
|
668 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
669 |
}
|
670 |
-
}
|
671 |
-
|
672 |
|
673 |
-
|
674 |
-
|
675 |
-
options.items = el.find(options.delegate);
|
676 |
-
}
|
677 |
-
mfp.open(options);
|
678 |
-
},
|
679 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
680 |
|
681 |
-
/**
|
682 |
-
* Updates text on preloader
|
683 |
-
*/
|
684 |
-
updateStatus: function(status, text) {
|
685 |
|
686 |
-
|
687 |
-
|
688 |
-
mfp.container.removeClass('mfp-s-'+_prevStatus);
|
689 |
}
|
690 |
|
691 |
-
|
692 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
693 |
}
|
694 |
|
695 |
-
|
696 |
-
|
697 |
-
text: text
|
698 |
-
};
|
699 |
-
// allows to modify status
|
700 |
-
_mfpTrigger('UpdateStatus', data);
|
701 |
|
702 |
-
|
703 |
-
|
|
|
|
|
|
|
704 |
|
705 |
-
|
|
|
|
|
|
|
|
|
|
|
706 |
|
707 |
-
mfp.preloader.find('a').on('click', function(e) {
|
708 |
-
e.stopImmediatePropagation();
|
709 |
-
});
|
710 |
|
711 |
-
|
712 |
-
|
713 |
-
|
714 |
-
|
715 |
|
|
|
|
|
|
|
|
|
716 |
|
717 |
-
|
718 |
-
|
719 |
-
|
720 |
-
// Check to close popup or not
|
721 |
-
// "target" is an element that was clicked
|
722 |
-
_checkIfClose: function(target) {
|
723 |
|
724 |
-
|
725 |
-
|
726 |
-
|
|
|
|
|
|
|
727 |
|
728 |
-
|
729 |
-
|
730 |
|
731 |
-
|
732 |
-
return true;
|
733 |
-
} else {
|
734 |
|
735 |
-
|
736 |
-
|
737 |
-
|
|
|
|
|
|
|
738 |
}
|
|
|
739 |
|
740 |
-
|
741 |
-
|
742 |
-
|
743 |
-
|
744 |
-
|
745 |
-
|
746 |
-
|
747 |
-
|
748 |
-
|
749 |
-
return
|
750 |
}
|
751 |
|
752 |
-
|
753 |
-
|
754 |
-
},
|
755 |
-
_addClassToMFP: function(cName) {
|
756 |
-
mfp.bgOverlay.addClass(cName);
|
757 |
-
mfp.wrap.addClass(cName);
|
758 |
-
},
|
759 |
-
_removeClassFromMFP: function(cName) {
|
760 |
-
this.bgOverlay.removeClass(cName);
|
761 |
-
mfp.wrap.removeClass(cName);
|
762 |
-
},
|
763 |
-
_hasScrollBar: function(winHeight) {
|
764 |
-
return ( (mfp.isIE7 ? _document.height() : document.body.scrollHeight) > (winHeight || _window.height()) );
|
765 |
-
},
|
766 |
-
_setFocus: function() {
|
767 |
-
(mfp.st.focus ? mfp.content.find(mfp.st.focus).eq(0) : mfp.wrap).focus();
|
768 |
-
},
|
769 |
-
_onFocusIn: function(e) {
|
770 |
-
if( e.target !== mfp.wrap[0] && !$.contains(mfp.wrap[0], e.target) ) {
|
771 |
-
mfp._setFocus();
|
772 |
-
return false;
|
773 |
-
}
|
774 |
-
},
|
775 |
-
_parseMarkup: function(template, values, item) {
|
776 |
-
var arr;
|
777 |
-
if(item.data) {
|
778 |
-
values = $.extend(item.data, values);
|
779 |
-
}
|
780 |
-
_mfpTrigger(MARKUP_PARSE_EVENT, [template, values, item] );
|
781 |
|
782 |
-
|
783 |
-
if(value === undefined || value === false) {
|
784 |
return true;
|
785 |
-
}
|
786 |
-
arr = key.split('_');
|
787 |
-
if(arr.length > 1) {
|
788 |
-
var el = template.find(EVENT_NS + '-'+arr[0]);
|
789 |
|
790 |
-
if
|
791 |
-
|
792 |
-
|
793 |
-
|
794 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
795 |
}
|
796 |
-
}
|
797 |
-
|
798 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
799 |
} else {
|
800 |
-
el.
|
801 |
}
|
802 |
-
} else {
|
803 |
-
el.attr(arr[1], value);
|
804 |
}
|
|
|
|
|
|
|
805 |
}
|
|
|
|
|
806 |
|
807 |
-
|
808 |
-
|
809 |
-
|
810 |
-
|
811 |
-
|
812 |
-
|
813 |
-
|
814 |
-
|
815 |
-
|
816 |
-
|
817 |
-
scrollDiv.style.cssText = 'width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;';
|
818 |
-
document.body.appendChild(scrollDiv);
|
819 |
-
mfp.scrollbarSize = scrollDiv.offsetWidth - scrollDiv.clientWidth;
|
820 |
-
document.body.removeChild(scrollDiv);
|
821 |
}
|
822 |
-
return mfp.scrollbarSize;
|
823 |
-
}
|
824 |
-
|
825 |
-
}; /* MagnificPopup core prototype end */
|
826 |
|
|
|
827 |
|
828 |
|
829 |
|
830 |
-
/**
|
831 |
-
* Public static functions
|
832 |
-
*/
|
833 |
-
$.magnificPopup = {
|
834 |
-
instance: null,
|
835 |
-
proto: MagnificPopup.prototype,
|
836 |
-
modules: [],
|
837 |
|
838 |
-
|
839 |
-
|
840 |
-
|
841 |
-
|
842 |
-
|
843 |
-
|
844 |
-
|
845 |
-
}
|
846 |
-
|
847 |
|
848 |
-
options
|
849 |
-
|
850 |
-
return this.instance.open(options);
|
851 |
-
},
|
852 |
|
853 |
-
|
854 |
-
|
855 |
-
|
|
|
|
|
856 |
|
857 |
-
|
858 |
-
|
859 |
-
|
860 |
-
}
|
861 |
-
$.extend(this.proto, module.proto);
|
862 |
-
this.modules.push(name);
|
863 |
-
},
|
864 |
|
865 |
-
|
|
|
|
|
866 |
|
867 |
-
|
868 |
-
|
869 |
-
|
870 |
-
|
|
|
|
|
|
|
871 |
|
872 |
-
|
873 |
|
874 |
-
|
|
|
875 |
|
876 |
-
|
877 |
|
878 |
-
|
879 |
|
880 |
-
|
881 |
-
|
882 |
-
closeOnContentClick: false,
|
883 |
|
884 |
-
|
885 |
|
886 |
-
|
887 |
|
888 |
-
|
889 |
|
890 |
-
|
891 |
|
892 |
-
|
893 |
|
894 |
-
|
895 |
-
|
896 |
-
removalDelay: 0,
|
897 |
|
898 |
-
|
899 |
-
|
900 |
-
fixedContentPos: 'auto',
|
901 |
-
|
902 |
-
fixedBgPos: 'auto',
|
903 |
|
904 |
-
|
905 |
|
906 |
-
|
907 |
|
908 |
-
|
909 |
|
910 |
-
|
911 |
|
912 |
-
|
913 |
-
};
|
914 |
|
|
|
915 |
|
|
|
916 |
|
917 |
-
|
918 |
-
_checkInstance();
|
919 |
|
920 |
-
|
921 |
|
922 |
-
|
923 |
-
if (typeof options === "string" ) {
|
924 |
|
925 |
-
|
926 |
-
var items,
|
927 |
-
itemOpts = _isJQ ? jqEl.data('magnificPopup') : jqEl[0].magnificPopup,
|
928 |
-
index = parseInt(arguments[1], 10) || 0;
|
929 |
|
930 |
-
|
931 |
-
items = itemOpts.items[index];
|
932 |
-
} else {
|
933 |
-
items = jqEl;
|
934 |
-
if(itemOpts.delegate) {
|
935 |
-
items = items.find(itemOpts.delegate);
|
936 |
-
}
|
937 |
-
items = items.eq( index );
|
938 |
-
}
|
939 |
-
mfp._openClick({mfpEl:items}, jqEl, itemOpts);
|
940 |
-
} else {
|
941 |
-
if(mfp.isOpen)
|
942 |
-
mfp[options].apply(mfp, Array.prototype.slice.call(arguments, 1));
|
943 |
-
}
|
944 |
|
945 |
-
} else {
|
946 |
-
// clone options obj
|
947 |
-
options = $.extend(true, {}, options);
|
948 |
-
|
949 |
-
/*
|
950 |
-
* As Zepto doesn't support .data() method for objects
|
951 |
-
* and it works only in normal browsers
|
952 |
-
* we assign "options" object directly to the DOM element. FTW!
|
953 |
-
*/
|
954 |
-
if(_isJQ) {
|
955 |
-
jqEl.data('magnificPopup', options);
|
956 |
-
} else {
|
957 |
-
jqEl[0].magnificPopup = options;
|
958 |
}
|
|
|
959 |
|
960 |
-
mfp.addGroup(jqEl, options);
|
961 |
-
|
962 |
-
}
|
963 |
-
return jqEl;
|
964 |
-
};
|
965 |
|
966 |
|
967 |
-
|
968 |
-
|
969 |
-
var start = performance.now(),
|
970 |
-
i,
|
971 |
-
rounds = 1000;
|
972 |
|
973 |
-
|
974 |
|
975 |
-
|
976 |
-
|
977 |
|
978 |
-
|
979 |
-
|
|
|
|
|
980 |
|
981 |
-
|
982 |
-
|
983 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
984 |
|
|
|
|
|
|
|
985 |
|
986 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
987 |
|
988 |
-
|
989 |
|
990 |
-
var INLINE_NS = 'inline',
|
991 |
-
_hiddenClass,
|
992 |
-
_inlinePlaceholder,
|
993 |
-
_lastInlineElement,
|
994 |
-
_putInlineElementsBack = function() {
|
995 |
-
if(_lastInlineElement) {
|
996 |
-
_inlinePlaceholder.after( _lastInlineElement.addClass(_hiddenClass) ).detach();
|
997 |
-
_lastInlineElement = null;
|
998 |
}
|
|
|
999 |
};
|
1000 |
|
1001 |
-
|
1002 |
-
options: {
|
1003 |
-
hiddenClass: 'hide', // will be appended with `mfp-` prefix
|
1004 |
-
markup: '',
|
1005 |
-
tNotFound: 'Content not found'
|
1006 |
-
},
|
1007 |
-
proto: {
|
1008 |
|
1009 |
-
|
1010 |
-
mfp.types.push(INLINE_NS);
|
1011 |
|
1012 |
-
|
1013 |
-
|
1014 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1015 |
},
|
|
|
1016 |
|
1017 |
-
|
|
|
1018 |
|
1019 |
-
|
|
|
|
|
|
|
1020 |
|
1021 |
-
|
1022 |
-
var inlineSt = mfp.st.inline,
|
1023 |
-
el = $(item.src);
|
1024 |
|
1025 |
-
|
|
|
|
|
|
|
|
|
1026 |
|
1027 |
-
|
1028 |
-
|
1029 |
-
|
1030 |
-
|
1031 |
-
|
1032 |
-
_inlinePlaceholder
|
1033 |
-
|
|
|
|
|
|
|
|
|
|
|
1034 |
}
|
1035 |
-
|
1036 |
-
|
|
|
|
|
|
|
1037 |
}
|
1038 |
|
1039 |
-
|
1040 |
-
|
1041 |
-
mfp.updateStatus('error', inlineSt.tNotFound);
|
1042 |
-
el = $('<div>');
|
1043 |
}
|
1044 |
|
1045 |
-
|
1046 |
-
|
|
|
1047 |
}
|
1048 |
-
|
1049 |
-
mfp.updateStatus('ready');
|
1050 |
-
mfp._parseMarkup(template, {}, item);
|
1051 |
-
return template;
|
1052 |
}
|
1053 |
-
}
|
1054 |
-
});
|
1055 |
|
1056 |
-
/*>>inline*/
|
1057 |
|
1058 |
-
/*>>ajax*/
|
1059 |
-
var AJAX_NS = 'ajax',
|
1060 |
-
|
1061 |
-
|
1062 |
-
|
1063 |
-
|
1064 |
-
|
1065 |
-
|
1066 |
-
|
1067 |
-
|
1068 |
-
|
1069 |
-
|
1070 |
-
|
1071 |
-
|
1072 |
|
1073 |
-
$.magnificPopup.registerModule(AJAX_NS, {
|
1074 |
|
1075 |
-
|
1076 |
-
|
1077 |
-
|
1078 |
-
|
1079 |
-
|
1080 |
|
1081 |
-
|
1082 |
-
|
1083 |
-
|
1084 |
-
|
1085 |
|
1086 |
-
|
1087 |
-
|
1088 |
-
|
1089 |
-
|
1090 |
|
1091 |
-
|
1092 |
-
|
1093 |
-
|
1094 |
|
1095 |
-
|
1096 |
|
1097 |
-
|
1098 |
-
|
1099 |
-
|
1100 |
-
|
1101 |
-
|
1102 |
-
|
1103 |
-
|
1104 |
|
1105 |
-
|
1106 |
|
1107 |
-
|
1108 |
|
1109 |
-
|
1110 |
|
1111 |
-
|
1112 |
|
1113 |
-
|
1114 |
|
1115 |
-
|
1116 |
-
|
1117 |
-
|
1118 |
|
1119 |
-
|
1120 |
|
1121 |
-
|
1122 |
-
|
1123 |
-
|
1124 |
-
|
1125 |
-
|
1126 |
-
|
1127 |
-
|
1128 |
-
|
1129 |
|
1130 |
-
|
1131 |
|
1132 |
-
|
|
|
1133 |
}
|
1134 |
-
}
|
1135 |
-
});
|
1136 |
|
|
|
1137 |
|
|
|
|
|
|
|
|
|
|
|
1138 |
|
|
|
1139 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1140 |
|
1141 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1142 |
|
1143 |
-
|
|
|
|
|
|
|
1144 |
|
1145 |
-
|
1146 |
-
var _imgInterval,
|
1147 |
-
_getTitle = function(item) {
|
1148 |
-
if(item.data && item.data.title !== undefined)
|
1149 |
-
return item.data.title;
|
1150 |
|
1151 |
-
|
|
|
|
|
|
|
|
|
1152 |
|
1153 |
-
|
1154 |
-
|
1155 |
-
|
1156 |
-
|
1157 |
-
|
1158 |
-
|
1159 |
-
}
|
1160 |
-
return '';
|
1161 |
-
};
|
1162 |
|
1163 |
-
|
1164 |
-
|
1165 |
-
|
1166 |
-
markup: '<div class="mfp-figure">'+
|
1167 |
-
'<div class="mfp-close"></div>'+
|
1168 |
-
'<figure>'+
|
1169 |
-
'<div class="mfp-img"></div>'+
|
1170 |
-
'<figcaption>'+
|
1171 |
-
'<div class="mfp-bottom-bar">'+
|
1172 |
-
'<div class="mfp-title"></div>'+
|
1173 |
-
'<div class="mfp-counter"></div>'+
|
1174 |
-
'</div>'+
|
1175 |
-
'</figcaption>'+
|
1176 |
-
'</figure>'+
|
1177 |
-
'</div>',
|
1178 |
-
cursor: 'mfp-zoom-out-cur',
|
1179 |
-
titleSrc: 'title',
|
1180 |
-
verticalFit: true,
|
1181 |
-
tError: '<a href="%url%">The image</a> could not be loaded.'
|
1182 |
-
},
|
1183 |
-
|
1184 |
-
proto: {
|
1185 |
-
initImage: function() {
|
1186 |
-
var imgSt = mfp.st.image,
|
1187 |
-
ns = '.image';
|
1188 |
-
|
1189 |
-
mfp.types.push('image');
|
1190 |
-
|
1191 |
-
_mfpOn(OPEN_EVENT+ns, function() {
|
1192 |
-
if(mfp.currItem.type === 'image' && imgSt.cursor) {
|
1193 |
-
$(document.body).addClass(imgSt.cursor);
|
1194 |
}
|
1195 |
-
}
|
1196 |
-
|
1197 |
-
|
1198 |
-
if(
|
1199 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1200 |
}
|
1201 |
-
|
1202 |
-
|
|
|
1203 |
|
1204 |
-
|
1205 |
-
if(mfp.isLowIE) {
|
1206 |
-
_mfpOn('AfterChange', mfp.resizeImage);
|
1207 |
-
}
|
1208 |
-
},
|
1209 |
-
resizeImage: function() {
|
1210 |
-
var item = mfp.currItem;
|
1211 |
-
if(!item || !item.img) return;
|
1212 |
|
1213 |
-
|
1214 |
-
|
1215 |
-
|
1216 |
-
if(mfp.isLowIE) {
|
1217 |
-
decr = parseInt(item.img.css('padding-top'), 10) + parseInt(item.img.css('padding-bottom'),10);
|
1218 |
-
}
|
1219 |
-
item.img.css('max-height', mfp.wH-decr);
|
1220 |
-
}
|
1221 |
-
},
|
1222 |
-
_onImageHasSize: function(item) {
|
1223 |
-
if(item.img) {
|
1224 |
-
|
1225 |
-
item.hasSize = true;
|
1226 |
|
1227 |
-
|
1228 |
-
clearInterval(_imgInterval);
|
1229 |
-
}
|
1230 |
-
|
1231 |
-
item.isCheckingImgSize = false;
|
1232 |
|
1233 |
-
|
1234 |
|
1235 |
-
|
1236 |
-
|
1237 |
-
|
1238 |
-
|
1239 |
-
item.imgHidden = false;
|
1240 |
-
}
|
1241 |
|
1242 |
-
|
1243 |
-
|
1244 |
|
1245 |
-
|
1246 |
-
|
1247 |
-
*/
|
1248 |
-
findImageSize: function(item) {
|
1249 |
|
1250 |
-
|
1251 |
-
|
1252 |
-
|
|
|
1253 |
|
1254 |
-
|
1255 |
-
|
1256 |
-
|
1257 |
-
|
1258 |
-
|
1259 |
-
|
1260 |
-
mfp._onImageHasSize(item);
|
1261 |
-
return;
|
1262 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1263 |
|
1264 |
-
|
1265 |
-
|
1266 |
-
|
|
|
|
|
1267 |
|
1268 |
-
|
1269 |
-
|
1270 |
-
mfpSetInterval(10);
|
1271 |
-
} else if(counter === 40) {
|
1272 |
-
mfpSetInterval(50);
|
1273 |
-
} else if(counter === 100) {
|
1274 |
-
mfpSetInterval(500);
|
1275 |
-
}
|
1276 |
-
}, delay);
|
1277 |
-
};
|
1278 |
|
1279 |
-
|
1280 |
-
|
1281 |
|
1282 |
-
|
|
|
1283 |
|
1284 |
-
|
1285 |
|
1286 |
-
|
1287 |
-
|
1288 |
-
|
1289 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1290 |
item.img.off('.mfploader');
|
1291 |
-
|
1292 |
if(item === mfp.currItem){
|
1293 |
mfp._onImageHasSize(item);
|
1294 |
-
|
1295 |
-
mfp.updateStatus('ready');
|
1296 |
}
|
1297 |
|
1298 |
item.hasSize = true;
|
1299 |
item.loaded = true;
|
1300 |
-
|
1301 |
-
_mfpTrigger('ImageLoadComplete');
|
1302 |
-
|
1303 |
-
}
|
1304 |
-
else {
|
1305 |
-
// if image complete check fails 200 times (20 sec), we assume that there was an error.
|
1306 |
-
guard++;
|
1307 |
-
if(guard < 200) {
|
1308 |
-
setTimeout(onLoadComplete,100);
|
1309 |
-
} else {
|
1310 |
-
onLoadError();
|
1311 |
-
}
|
1312 |
}
|
1313 |
-
}
|
1314 |
-
|
1315 |
|
1316 |
-
// image error handler
|
1317 |
-
onLoadError = function() {
|
1318 |
-
if(item) {
|
1319 |
-
item.img.off('.mfploader');
|
1320 |
-
if(item === mfp.currItem){
|
1321 |
-
mfp._onImageHasSize(item);
|
1322 |
-
mfp.updateStatus('error', imgSt.tError.replace('%url%', item.src) );
|
1323 |
-
}
|
1324 |
|
1325 |
-
|
1326 |
-
|
1327 |
-
|
|
|
|
|
|
|
1328 |
}
|
1329 |
-
|
1330 |
-
|
1331 |
|
|
|
|
|
|
|
|
|
|
|
1332 |
|
1333 |
-
|
1334 |
-
|
1335 |
-
|
1336 |
-
|
1337 |
-
|
1338 |
-
|
1339 |
}
|
1340 |
-
item.img = $(img).on('load.mfploader', onLoadComplete).on('error.mfploader', onLoadError);
|
1341 |
-
img.src = item.src;
|
1342 |
|
1343 |
-
|
1344 |
-
|
1345 |
-
|
1346 |
-
|
1347 |
-
}
|
1348 |
|
1349 |
-
|
1350 |
-
if(img.naturalWidth > 0) {
|
1351 |
-
item.hasSize = true;
|
1352 |
-
} else if(!img.width) {
|
1353 |
-
item.hasSize = false;
|
1354 |
-
}
|
1355 |
-
}
|
1356 |
|
1357 |
-
|
1358 |
-
|
1359 |
-
img_replaceWith: item.img
|
1360 |
-
}, item);
|
1361 |
|
1362 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1363 |
|
1364 |
-
|
1365 |
-
|
1366 |
|
1367 |
-
if(item.
|
|
|
1368 |
template.addClass('mfp-loading');
|
1369 |
-
mfp.
|
1370 |
-
} else {
|
1371 |
-
template.removeClass('mfp-loading');
|
1372 |
-
mfp.updateStatus('ready');
|
1373 |
}
|
|
|
1374 |
return template;
|
1375 |
}
|
1376 |
-
|
1377 |
-
mfp.updateStatus('loading');
|
1378 |
-
item.loading = true;
|
1379 |
-
|
1380 |
-
if(!item.hasSize) {
|
1381 |
-
item.imgHidden = true;
|
1382 |
-
template.addClass('mfp-loading');
|
1383 |
-
mfp.findImageSize(item);
|
1384 |
-
}
|
1385 |
-
|
1386 |
-
return template;
|
1387 |
}
|
1388 |
-
}
|
1389 |
-
});
|
1390 |
-
|
1391 |
-
|
1392 |
-
|
1393 |
-
/*>>image*/
|
1394 |
-
|
1395 |
-
/*>>zoom*/
|
1396 |
-
var hasMozTransform,
|
1397 |
-
getHasMozTransform = function() {
|
1398 |
-
if(hasMozTransform === undefined) {
|
1399 |
-
hasMozTransform = document.createElement('p').style.MozTransform !== undefined;
|
1400 |
-
}
|
1401 |
-
return hasMozTransform;
|
1402 |
-
};
|
1403 |
|
1404 |
-
|
1405 |
|
1406 |
-
|
1407 |
-
|
1408 |
-
|
1409 |
-
|
1410 |
-
|
1411 |
-
|
1412 |
-
|
1413 |
-
|
1414 |
|
1415 |
-
|
1416 |
|
1417 |
-
|
1418 |
-
|
1419 |
-
|
1420 |
-
|
1421 |
-
|
1422 |
-
|
1423 |
-
return;
|
1424 |
}
|
|
|
1425 |
|
1426 |
-
|
1427 |
-
getElToAnimate = function(image) {
|
1428 |
-
var newImg = image.clone().removeAttr('style').removeAttr('class').addClass('mfp-animated-image'),
|
1429 |
-
transition = 'all '+(zoomSt.duration/1000)+'s ' + zoomSt.easing,
|
1430 |
-
cssObj = {
|
1431 |
-
position: 'fixed',
|
1432 |
-
zIndex: 9999,
|
1433 |
-
left: 0,
|
1434 |
-
top: 0,
|
1435 |
-
'-webkit-backface-visibility': 'hidden'
|
1436 |
-
},
|
1437 |
-
t = 'transition';
|
1438 |
|
1439 |
-
|
|
|
|
|
|
|
1440 |
|
1441 |
-
|
1442 |
-
return
|
1443 |
-
}
|
1444 |
-
showMainContent = function() {
|
1445 |
-
mfp.content.css('visibility', 'visible');
|
1446 |
-
},
|
1447 |
-
openTimeout,
|
1448 |
-
animatedImg;
|
1449 |
|
1450 |
-
|
1451 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1452 |
|
1453 |
-
|
1454 |
-
mfp.content.css('visibility', 'hidden');
|
1455 |
|
1456 |
-
|
1457 |
-
|
1458 |
-
|
|
|
1459 |
|
1460 |
-
|
1461 |
-
showMainContent();
|
1462 |
-
return;
|
1463 |
-
}
|
1464 |
|
1465 |
-
|
1466 |
-
|
1467 |
-
animatedImg.css( mfp._getOffset() );
|
1468 |
|
1469 |
-
|
1470 |
|
1471 |
-
openTimeout = setTimeout(function() {
|
1472 |
-
animatedImg.css( mfp._getOffset( true ) );
|
1473 |
openTimeout = setTimeout(function() {
|
|
|
|
|
1474 |
|
1475 |
-
|
1476 |
|
1477 |
-
|
1478 |
-
|
1479 |
-
|
1480 |
-
|
1481 |
-
|
1482 |
|
1483 |
-
|
1484 |
|
1485 |
-
|
1486 |
|
1487 |
|
1488 |
-
|
1489 |
-
|
1490 |
-
|
1491 |
-
|
1492 |
-
|
1493 |
|
1494 |
-
|
1495 |
|
1496 |
-
|
1497 |
|
1498 |
-
if(!image) {
|
1499 |
-
image = mfp._getItemToZoom();
|
1500 |
if(!image) {
|
1501 |
-
|
|
|
|
|
|
|
|
|
1502 |
}
|
1503 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1504 |
}
|
1505 |
-
|
1506 |
-
|
1507 |
-
animatedImg.css( mfp._getOffset(true) );
|
1508 |
-
mfp.wrap.append(animatedImg);
|
1509 |
-
mfp.content.css('visibility', 'hidden');
|
1510 |
-
|
1511 |
-
setTimeout(function() {
|
1512 |
-
animatedImg.css( mfp._getOffset() );
|
1513 |
-
}, 16);
|
1514 |
-
}
|
1515 |
|
1516 |
-
|
1517 |
|
1518 |
-
|
1519 |
-
|
1520 |
-
|
1521 |
-
|
1522 |
-
|
|
|
|
|
1523 |
}
|
1524 |
-
|
1525 |
-
|
1526 |
-
});
|
1527 |
-
},
|
1528 |
|
1529 |
-
|
1530 |
-
|
1531 |
-
|
1532 |
|
1533 |
-
|
1534 |
-
|
1535 |
-
|
1536 |
-
|
1537 |
-
|
1538 |
-
|
1539 |
-
|
1540 |
|
1541 |
-
|
1542 |
-
|
1543 |
-
|
1544 |
-
|
1545 |
-
|
1546 |
-
|
1547 |
-
|
1548 |
-
|
1549 |
|
1550 |
-
|
1551 |
-
|
1552 |
-
|
1553 |
-
|
1554 |
|
1555 |
|
1556 |
-
|
1557 |
-
|
1558 |
-
Animating left + top + width/height looks glitchy in Firefox, but perfect in Chrome. And vice-versa.
|
1559 |
|
1560 |
-
|
1561 |
-
var obj = {
|
1562 |
-
width: el.width(),
|
1563 |
-
// fix Zepto height+padding issue
|
1564 |
-
height: (_isJQ ? el.innerHeight() : el[0].offsetHeight) - paddingBottom - paddingTop
|
1565 |
-
};
|
1566 |
|
1567 |
-
|
1568 |
-
|
1569 |
-
|
1570 |
-
|
1571 |
-
|
1572 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1573 |
}
|
1574 |
-
|
1575 |
}
|
|
|
1576 |
|
1577 |
-
}
|
1578 |
-
});
|
1579 |
|
1580 |
|
|
|
1581 |
|
1582 |
-
/*>>
|
1583 |
|
1584 |
-
|
|
|
1585 |
|
1586 |
-
|
1587 |
-
|
1588 |
-
|
1589 |
-
|
1590 |
-
|
1591 |
-
|
1592 |
-
|
1593 |
-
|
1594 |
-
if(!isShowing) {
|
1595 |
-
el[0].src = _emptyPage;
|
1596 |
-
}
|
1597 |
|
1598 |
-
|
1599 |
-
|
1600 |
-
|
|
|
1601 |
}
|
1602 |
}
|
1603 |
-
}
|
1604 |
-
};
|
1605 |
|
1606 |
-
$.magnificPopup.registerModule(IFRAME_NS, {
|
1607 |
|
1608 |
-
|
1609 |
-
|
1610 |
-
|
1611 |
-
|
1612 |
-
|
1613 |
|
1614 |
-
|
1615 |
|
1616 |
-
|
1617 |
-
|
1618 |
-
|
1619 |
-
|
1620 |
-
|
1621 |
-
|
1622 |
-
|
1623 |
-
|
1624 |
-
|
1625 |
-
|
1626 |
-
|
1627 |
-
|
1628 |
-
|
1629 |
-
|
1630 |
-
|
|
|
1631 |
}
|
1632 |
-
}
|
1633 |
-
|
1634 |
-
|
1635 |
-
|
1636 |
-
|
1637 |
-
|
1638 |
-
|
1639 |
-
|
1640 |
-
|
1641 |
-
|
1642 |
-
|
1643 |
-
|
1644 |
-
|
1645 |
-
}
|
1646 |
-
}// else {
|
1647 |
// iframe source is switched, don't do anything
|
1648 |
-
|
1649 |
-
|
1650 |
|
1651 |
-
|
1652 |
-
|
1653 |
-
|
1654 |
-
|
1655 |
|
1656 |
-
|
1657 |
-
|
1658 |
-
|
1659 |
-
|
1660 |
-
|
1661 |
-
|
1662 |
-
|
1663 |
-
|
1664 |
-
|
1665 |
-
|
1666 |
-
|
|
|
1667 |
}
|
|
|
|
|
1668 |
}
|
1669 |
-
|
1670 |
-
|
|
|
|
|
|
|
1671 |
}
|
1672 |
-
|
1673 |
-
|
1674 |
-
var dataObj = {};
|
1675 |
-
if(iframeSt.srcAction) {
|
1676 |
-
dataObj[iframeSt.srcAction] = embedSrc;
|
1677 |
-
}
|
1678 |
-
mfp._parseMarkup(template, dataObj, item);
|
1679 |
|
1680 |
-
|
1681 |
|
1682 |
-
|
|
|
1683 |
}
|
1684 |
-
}
|
1685 |
-
});
|
1686 |
|
1687 |
|
1688 |
|
1689 |
-
/*>>iframe*/
|
1690 |
|
1691 |
-
/*>>gallery*/
|
1692 |
-
/**
|
1693 |
-
|
1694 |
-
|
1695 |
-
var _getLoopedId = function(index) {
|
1696 |
-
|
1697 |
-
|
1698 |
-
|
1699 |
-
|
1700 |
-
|
1701 |
-
|
1702 |
-
|
1703 |
-
|
1704 |
-
|
1705 |
-
|
1706 |
-
|
|
|
|
|
1707 |
|
1708 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1709 |
|
1710 |
-
|
1711 |
-
|
1712 |
-
arrowMarkup: '<button title="%title%" type="button" class="mfp-arrow mfp-arrow-%dir%"></button>',
|
1713 |
-
preload: [0,2],
|
1714 |
-
navigateByImgClick: true,
|
1715 |
-
arrows: true,
|
1716 |
|
1717 |
-
|
1718 |
-
|
1719 |
-
tCounter: '%curr% of %total%'
|
1720 |
-
},
|
1721 |
|
1722 |
-
|
1723 |
-
initGallery: function() {
|
1724 |
|
1725 |
-
|
1726 |
-
ns = '.mfp-gallery',
|
1727 |
-
supportsFastClick = Boolean($.fn.mfpFastClick);
|
1728 |
|
1729 |
-
|
1730 |
-
|
1731 |
-
if(!gSt || !gSt.enabled ) return false;
|
1732 |
|
1733 |
-
|
1734 |
|
1735 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1736 |
|
1737 |
-
|
1738 |
-
|
1739 |
-
|
|
|
1740 |
mfp.next();
|
1741 |
-
return false;
|
1742 |
}
|
1743 |
});
|
1744 |
-
}
|
1745 |
|
1746 |
-
|
1747 |
-
if
|
1748 |
-
mfp.
|
1749 |
-
} else if (e.keyCode === 39) {
|
1750 |
-
mfp.next();
|
1751 |
}
|
1752 |
});
|
1753 |
-
});
|
1754 |
|
1755 |
-
|
1756 |
-
|
1757 |
-
|
1758 |
-
}
|
1759 |
-
});
|
1760 |
|
1761 |
-
|
1762 |
-
|
1763 |
-
|
1764 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1765 |
|
1766 |
-
|
1767 |
-
if(mfp.items.length > 1 && gSt.arrows && !mfp.arrowLeft) {
|
1768 |
-
var markup = gSt.arrowMarkup,
|
1769 |
-
arrowLeft = mfp.arrowLeft = $( markup.replace(/%title%/gi, gSt.tPrev).replace(/%dir%/gi, 'left') ).addClass(PREVENT_CLOSE_CLASS),
|
1770 |
-
arrowRight = mfp.arrowRight = $( markup.replace(/%title%/gi, gSt.tNext).replace(/%dir%/gi, 'right') ).addClass(PREVENT_CLOSE_CLASS);
|
1771 |
-
|
1772 |
-
var eName = supportsFastClick ? 'mfpFastClick' : 'click';
|
1773 |
-
arrowLeft[eName](function() {
|
1774 |
-
mfp.prev();
|
1775 |
-
});
|
1776 |
-
arrowRight[eName](function() {
|
1777 |
-
mfp.next();
|
1778 |
-
});
|
1779 |
-
|
1780 |
-
// Polyfill for :before and :after (adds elements with classes mfp-a and mfp-b)
|
1781 |
-
if(mfp.isIE7) {
|
1782 |
-
_getEl('b', arrowLeft[0], false, true);
|
1783 |
-
_getEl('a', arrowLeft[0], false, true);
|
1784 |
-
_getEl('b', arrowRight[0], false, true);
|
1785 |
-
_getEl('a', arrowRight[0], false, true);
|
1786 |
}
|
|
|
1787 |
|
1788 |
-
|
1789 |
-
|
1790 |
-
});
|
1791 |
|
1792 |
-
|
1793 |
-
|
|
|
|
|
|
|
1794 |
|
1795 |
-
mfp._preloadTimeout = setTimeout(function() {
|
1796 |
-
mfp.preloadNearbyImages();
|
1797 |
-
mfp._preloadTimeout = null;
|
1798 |
-
}, 16);
|
1799 |
-
});
|
1800 |
|
|
|
|
|
|
|
|
|
|
|
1801 |
|
1802 |
-
|
1803 |
-
|
1804 |
-
mfp.
|
1805 |
-
|
1806 |
-
|
1807 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1808 |
}
|
1809 |
-
|
1810 |
-
|
1811 |
-
|
1812 |
-
|
1813 |
-
|
1814 |
-
|
1815 |
-
mfp.index = _getLoopedId(mfp.index + 1);
|
1816 |
-
mfp.updateItemHTML();
|
1817 |
-
},
|
1818 |
-
prev: function() {
|
1819 |
-
mfp.direction = false;
|
1820 |
-
mfp.index = _getLoopedId(mfp.index - 1);
|
1821 |
-
mfp.updateItemHTML();
|
1822 |
-
},
|
1823 |
-
goTo: function(newIndex) {
|
1824 |
-
mfp.direction = (newIndex >= mfp.index);
|
1825 |
-
mfp.index = newIndex;
|
1826 |
-
mfp.updateItemHTML();
|
1827 |
-
},
|
1828 |
-
preloadNearbyImages: function() {
|
1829 |
-
var p = mfp.st.gallery.preload,
|
1830 |
-
preloadBefore = Math.min(p[0], mfp.items.length),
|
1831 |
-
preloadAfter = Math.min(p[1], mfp.items.length),
|
1832 |
-
i;
|
1833 |
-
|
1834 |
-
for(i = 1; i <= (mfp.direction ? preloadAfter : preloadBefore); i++) {
|
1835 |
-
mfp._preloadItem(mfp.index+i);
|
1836 |
-
}
|
1837 |
-
for(i = 1; i <= (mfp.direction ? preloadBefore : preloadAfter); i++) {
|
1838 |
-
mfp._preloadItem(mfp.index-i);
|
1839 |
-
}
|
1840 |
-
},
|
1841 |
-
_preloadItem: function(index) {
|
1842 |
-
index = _getLoopedId(index);
|
1843 |
-
|
1844 |
-
if(mfp.items[index].preloaded) {
|
1845 |
-
return;
|
1846 |
-
}
|
1847 |
-
|
1848 |
-
var item = mfp.items[index];
|
1849 |
-
if(!item.parsed) {
|
1850 |
-
item = mfp.parseEl( index );
|
1851 |
-
}
|
1852 |
-
|
1853 |
-
_mfpTrigger('LazyLoad', item);
|
1854 |
-
|
1855 |
-
if(item.type === 'image') {
|
1856 |
-
item.img = $('<img class="mfp-img" />').on('load.mfploader', function() {
|
1857 |
-
item.hasSize = true;
|
1858 |
-
}).on('error.mfploader', function() {
|
1859 |
-
item.hasSize = true;
|
1860 |
-
item.loadError = true;
|
1861 |
-
_mfpTrigger('LazyLoadError', item);
|
1862 |
-
}).attr('src', item.src);
|
1863 |
-
}
|
1864 |
-
|
1865 |
-
|
1866 |
-
item.preloaded = true;
|
1867 |
-
}
|
1868 |
-
}
|
1869 |
-
});
|
1870 |
|
1871 |
-
|
1872 |
-
|
|
|
1873 |
|
1874 |
-
|
1875 |
-
|
1876 |
-
|
1877 |
-
|
1878 |
|
1879 |
-
|
1880 |
|
1881 |
-
|
1882 |
-
|
1883 |
-
|
1884 |
-
|
1885 |
-
|
1886 |
-
|
1887 |
-
|
|
|
|
|
1888 |
|
1889 |
-
if(window.navigator.msPointerEnabled) {
|
1890 |
-
addEventNames('MSPointer', 'Down', 'Move', 'Up', 'Cancel');
|
1891 |
-
} else if('ontouchstart' in window) {
|
1892 |
-
addEventNames('touch', 'start', 'move', 'end', 'cancel');
|
1893 |
-
} else {
|
1894 |
-
return;
|
1895 |
-
}
|
1896 |
-
_window.on(mfp._tStart, function(e) {
|
1897 |
-
var oE = e.originalEvent;
|
1898 |
-
multipleTouches = moved = false;
|
1899 |
-
startX = oE.pageX || oE.changedTouches[0].pageX;
|
1900 |
-
}).on(mfp._tMove, function(e) {
|
1901 |
-
if(e.originalEvent.touches.length > 1) {
|
1902 |
-
multipleTouches = e.originalEvent.touches.length;
|
1903 |
-
} else {
|
1904 |
-
//e.preventDefault();
|
1905 |
-
moved = true;
|
1906 |
-
}
|
1907 |
-
}).on(mfp._tEnd + ' ' + mfp._tCancel, function(e) {
|
1908 |
-
if(moved && !multipleTouches) {
|
1909 |
-
var oE = e.originalEvent,
|
1910 |
-
diff = startX - (oE.pageX || oE.changedTouches[0].pageX);
|
1911 |
|
1912 |
-
|
1913 |
-
mfp.next();
|
1914 |
-
} else if(diff < -20) {
|
1915 |
-
mfp.prev();
|
1916 |
}
|
1917 |
}
|
1918 |
});
|
1919 |
-
},
|
1920 |
-
*/
|
1921 |
-
|
1922 |
-
|
1923 |
-
/*>>gallery*/
|
1924 |
|
1925 |
-
/*>>
|
1926 |
|
1927 |
-
|
1928 |
|
1929 |
-
|
1930 |
-
options: {
|
1931 |
-
replaceSrc: function(item) {
|
1932 |
-
return item.src.replace(/\.\w+$/, function(m) { return '@2x' + m; });
|
1933 |
-
},
|
1934 |
-
ratio: 1 // Function or number. Set to 1 to disable.
|
1935 |
-
},
|
1936 |
-
proto: {
|
1937 |
-
initRetina: function() {
|
1938 |
-
if(window.devicePixelRatio > 1) {
|
1939 |
-
|
1940 |
-
var st = mfp.st.retina,
|
1941 |
-
ratio = st.ratio;
|
1942 |
-
|
1943 |
-
ratio = !isNaN(ratio) ? ratio : ratio();
|
1944 |
-
|
1945 |
-
if(ratio > 1) {
|
1946 |
-
_mfpOn('ImageHasSize' + '.' + RETINA_NS, function(e, item) {
|
1947 |
-
item.img.css({
|
1948 |
-
'max-width': item.img[0].naturalWidth / ratio,
|
1949 |
-
'width': '100%'
|
1950 |
-
});
|
1951 |
-
});
|
1952 |
-
_mfpOn('ElementParse' + '.' + RETINA_NS, function(e, item) {
|
1953 |
-
item.src = st.replaceSrc(item, ratio);
|
1954 |
-
});
|
1955 |
-
}
|
1956 |
-
}
|
1957 |
|
1958 |
-
|
1959 |
-
|
1960 |
-
|
1961 |
-
|
1962 |
-
|
1963 |
-
|
1964 |
-
/*>>fastclick*/
|
1965 |
-
/**
|
1966 |
-
* FastClick event implementation. (removes 300ms delay on touch devices)
|
1967 |
-
* Based on https://developers.google.com/mobile/articles/fast_buttons
|
1968 |
-
*
|
1969 |
-
* You may use it outside the Magnific Popup by calling just:
|
1970 |
-
*
|
1971 |
-
* $('.your-el').mfpFastClick(function() {
|
1972 |
-
* console.log('Clicked!');
|
1973 |
-
* });
|
1974 |
-
*
|
1975 |
-
* To unbind:
|
1976 |
-
* $('.your-el').destroyMfpFastClick();
|
1977 |
-
*
|
1978 |
-
*
|
1979 |
-
* Note that it's a very basic and simple implementation, it blocks ghost click on the same element where it was bound.
|
1980 |
-
* If you need something more advanced, use plugin by FT Labs https://github.com/ftlabs/fastclick
|
1981 |
-
*
|
1982 |
-
*/
|
1983 |
-
|
1984 |
-
(function() {
|
1985 |
-
var ghostClickDelay = 1000,
|
1986 |
-
supportsTouch = 'ontouchstart' in window,
|
1987 |
-
unbindTouchMove = function() {
|
1988 |
-
_window.off('touchmove'+ns+' touchend'+ns);
|
1989 |
},
|
1990 |
-
|
1991 |
-
|
1992 |
-
|
1993 |
-
|
1994 |
-
// As Zepto.js doesn't have an easy way to add custom events (like jQuery), so we implement it in this way
|
1995 |
-
$.fn.mfpFastClick = function(callback) {
|
1996 |
-
|
1997 |
-
return $(this).each(function() {
|
1998 |
-
|
1999 |
-
var elem = $(this),
|
2000 |
-
lock;
|
2001 |
-
|
2002 |
-
if( supportsTouch ) {
|
2003 |
-
|
2004 |
-
var timeout,
|
2005 |
-
startX,
|
2006 |
-
startY,
|
2007 |
-
pointerMoved,
|
2008 |
-
point,
|
2009 |
-
numPointers;
|
2010 |
-
|
2011 |
-
elem.on('touchstart' + ns, function(e) {
|
2012 |
-
pointerMoved = false;
|
2013 |
-
numPointers = 1;
|
2014 |
|
2015 |
-
|
2016 |
-
|
2017 |
-
startY = point.clientY;
|
2018 |
|
2019 |
-
|
2020 |
-
point = e.originalEvent ? e.originalEvent.touches : e.touches;
|
2021 |
-
numPointers = point.length;
|
2022 |
-
point = point[0];
|
2023 |
-
if (Math.abs(point.clientX - startX) > 10 ||
|
2024 |
-
Math.abs(point.clientY - startY) > 10) {
|
2025 |
-
pointerMoved = true;
|
2026 |
-
unbindTouchMove();
|
2027 |
-
}
|
2028 |
-
}).on('touchend'+ns, function(e) {
|
2029 |
-
unbindTouchMove();
|
2030 |
-
if(pointerMoved || numPointers > 1) {
|
2031 |
-
return;
|
2032 |
-
}
|
2033 |
-
lock = true;
|
2034 |
-
e.preventDefault();
|
2035 |
-
clearTimeout(timeout);
|
2036 |
-
timeout = setTimeout(function() {
|
2037 |
-
lock = false;
|
2038 |
-
}, ghostClickDelay);
|
2039 |
-
callback();
|
2040 |
-
});
|
2041 |
-
});
|
2042 |
-
|
2043 |
-
}
|
2044 |
|
2045 |
-
|
2046 |
-
|
2047 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2048 |
}
|
2049 |
-
});
|
2050 |
-
});
|
2051 |
-
};
|
2052 |
|
2053 |
-
|
2054 |
-
|
2055 |
-
|
2056 |
-
};
|
2057 |
-
})();
|
2058 |
|
2059 |
-
/*>>
|
2060 |
-
|
1 |
+
/*! Magnific Popup - v1.1.0 - 2016-02-20
|
2 |
+
* http://dimsemenov.com/plugins/magnific-popup/
|
3 |
+
* Copyright (c) 2016 Dmitry Semenov; */
|
4 |
+
;(function (factory) {
|
5 |
+
if (typeof define === 'function' && define.amd) {
|
6 |
+
// AMD. Register as an anonymous module.
|
7 |
+
define(['jquery'], factory);
|
8 |
+
} else if (typeof exports === 'object') {
|
9 |
+
// Node/CommonJS
|
10 |
+
factory(require('jquery'));
|
11 |
+
} else {
|
12 |
+
// Browser globals
|
13 |
+
factory(window.jQuery || window.Zepto);
|
14 |
+
}
|
15 |
+
}(function($) {
|
16 |
+
|
17 |
+
/*>>core*/
|
18 |
+
/**
|
19 |
+
*
|
20 |
+
* Magnific Popup Core JS file
|
21 |
+
*
|
22 |
+
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
23 |
|
24 |
+
|
25 |
+
/**
|
26 |
+
* Private static constants
|
27 |
+
*/
|
28 |
+
var CLOSE_EVENT = 'Close',
|
29 |
+
BEFORE_CLOSE_EVENT = 'BeforeClose',
|
30 |
+
AFTER_CLOSE_EVENT = 'AfterClose',
|
31 |
+
BEFORE_APPEND_EVENT = 'BeforeAppend',
|
32 |
+
MARKUP_PARSE_EVENT = 'MarkupParse',
|
33 |
+
OPEN_EVENT = 'Open',
|
34 |
+
CHANGE_EVENT = 'Change',
|
35 |
+
NS = 'mfp',
|
36 |
+
EVENT_NS = '.' + NS,
|
37 |
+
READY_CLASS = 'mfp-ready',
|
38 |
+
REMOVING_CLASS = 'mfp-removing',
|
39 |
+
PREVENT_CLOSE_CLASS = 'mfp-prevent-close';
|
40 |
+
|
41 |
+
|
42 |
+
/**
|
43 |
+
* Private vars
|
44 |
+
*/
|
45 |
+
/*jshint -W079 */
|
46 |
+
var mfp, // As we have only one instance of MagnificPopup object, we define it locally to not to use 'this'
|
47 |
+
MagnificPopup = function(){},
|
48 |
+
_isJQ = !!(window.jQuery),
|
49 |
+
_prevStatus,
|
50 |
+
_window = $(window),
|
51 |
+
_document,
|
52 |
+
_prevContentType,
|
53 |
+
_wrapClasses,
|
54 |
+
_currPopupType;
|
55 |
+
|
56 |
+
|
57 |
+
/**
|
58 |
+
* Private functions
|
59 |
+
*/
|
60 |
+
var _mfpOn = function(name, f) {
|
61 |
+
mfp.ev.on(NS + name + EVENT_NS, f);
|
62 |
+
},
|
63 |
+
_getEl = function(className, appendTo, html, raw) {
|
64 |
+
var el = document.createElement('div');
|
65 |
+
el.className = 'mfp-'+className;
|
66 |
+
if(html) {
|
67 |
+
el.innerHTML = html;
|
68 |
}
|
69 |
+
if(!raw) {
|
70 |
+
el = $(el);
|
71 |
+
if(appendTo) {
|
72 |
+
el.appendTo(appendTo);
|
73 |
+
}
|
74 |
+
} else if(appendTo) {
|
75 |
+
appendTo.appendChild(el);
|
76 |
+
}
|
77 |
+
return el;
|
78 |
+
},
|
79 |
+
_mfpTrigger = function(e, data) {
|
80 |
+
mfp.ev.triggerHandler(NS + e, data);
|
81 |
+
|
82 |
+
if(mfp.st.callbacks) {
|
83 |
+
// converts "mfpEventName" to "eventName" callback and triggers it if it's present
|
84 |
+
e = e.charAt(0).toLowerCase() + e.slice(1);
|
85 |
+
if(mfp.st.callbacks[e]) {
|
86 |
+
mfp.st.callbacks[e].apply(mfp, $.isArray(data) ? data : [data]);
|
87 |
+
}
|
88 |
+
}
|
89 |
+
},
|
90 |
+
_getCloseBtn = function(type) {
|
91 |
+
if(type !== _currPopupType || !mfp.currTemplate.closeBtn) {
|
92 |
+
mfp.currTemplate.closeBtn = $( mfp.st.closeMarkup.replace('%title%', mfp.st.tClose ) );
|
93 |
+
_currPopupType = type;
|
94 |
+
}
|
95 |
+
return mfp.currTemplate.closeBtn;
|
96 |
+
},
|
97 |
// Initialize Magnific Popup only when called at least once
|
98 |
+
_checkInstance = function() {
|
99 |
+
if(!$.magnificPopup.instance) {
|
100 |
+
/*jshint -W020 */
|
101 |
+
mfp = new MagnificPopup();
|
102 |
+
mfp.init();
|
103 |
+
$.magnificPopup.instance = mfp;
|
104 |
+
}
|
105 |
+
},
|
106 |
// CSS transition detection, http://stackoverflow.com/questions/7264899/detect-css-transitions-using-javascript-and-without-modernizr
|
107 |
+
supportsTransitions = function() {
|
108 |
+
var s = document.createElement('p').style, // 's' for style. better to create an element if body yet to exist
|
109 |
+
v = ['ms','O','Moz','Webkit']; // 'v' for vendor
|
110 |
|
111 |
+
if( s['transition'] !== undefined ) {
|
|
|
|
|
|
|
|
|
|
|
112 |
return true;
|
113 |
}
|
|
|
|
|
|
|
|
|
114 |
|
115 |
+
while( v.length ) {
|
116 |
+
if( v.pop() + 'Transition' in s ) {
|
117 |
+
return true;
|
118 |
+
}
|
119 |
+
}
|
120 |
|
121 |
+
return false;
|
122 |
+
};
|
123 |
|
|
|
|
|
|
|
|
|
124 |
|
|
|
125 |
|
126 |
/**
|
127 |
+
* Public functions
|
|
|
128 |
*/
|
129 |
+
MagnificPopup.prototype = {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
130 |
|
131 |
+
constructor: MagnificPopup,
|
|
|
|
|
|
|
|
|
132 |
|
133 |
+
/**
|
134 |
+
* Initializes Magnific Popup plugin.
|
135 |
+
* This function is triggered only once when $.fn.magnificPopup or $.magnificPopup is executed
|
136 |
+
*/
|
137 |
+
init: function() {
|
138 |
+
var appVersion = navigator.appVersion;
|
139 |
+
mfp.isLowIE = mfp.isIE8 = document.all && !document.addEventListener;
|
140 |
+
mfp.isAndroid = (/android/gi).test(appVersion);
|
141 |
+
mfp.isIOS = (/iphone|ipad|ipod/gi).test(appVersion);
|
142 |
+
mfp.supportsTransition = supportsTransitions();
|
143 |
+
|
144 |
+
// We disable fixed positioned lightbox on devices that don't handle it nicely.
|
145 |
+
// If you know a better way of detecting this - let me know.
|
146 |
+
mfp.probablyMobile = (mfp.isAndroid || mfp.isIOS || /(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent) );
|
147 |
+
_document = $(document);
|
148 |
+
|
149 |
+
mfp.popupsCache = {};
|
150 |
+
},
|
151 |
|
152 |
+
/**
|
153 |
+
* Opens popup
|
154 |
+
* @param data [description]
|
155 |
+
*/
|
156 |
+
open: function(data) {
|
157 |
|
158 |
+
var i;
|
159 |
+
|
160 |
+
if(data.isObj === false) {
|
161 |
+
// convert jQuery collection to array to avoid conflicts later
|
162 |
+
mfp.items = data.items.toArray();
|
163 |
+
|
164 |
+
mfp.index = 0;
|
165 |
+
var items = data.items,
|
166 |
+
item;
|
167 |
+
for(i = 0; i < items.length; i++) {
|
168 |
+
item = items[i];
|
169 |
+
if(item.parsed) {
|
170 |
+
item = item.el[0];
|
171 |
+
}
|
172 |
+
if(item === data.el[0]) {
|
173 |
+
mfp.index = i;
|
174 |
+
break;
|
175 |
+
}
|
176 |
}
|
177 |
+
} else {
|
178 |
+
mfp.items = $.isArray(data.items) ? data.items : [data.items];
|
179 |
+
mfp.index = data.index || 0;
|
180 |
}
|
|
|
|
|
|
|
|
|
181 |
|
182 |
+
// if popup is already opened - we just update the content
|
183 |
+
if(mfp.isOpen) {
|
184 |
+
mfp.updateItemHTML();
|
185 |
+
return;
|
186 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
187 |
|
188 |
+
mfp.types = [];
|
189 |
+
_wrapClasses = '';
|
190 |
+
if(data.mainEl && data.mainEl.length) {
|
191 |
+
mfp.ev = data.mainEl.eq(0);
|
192 |
+
} else {
|
193 |
+
mfp.ev = _document;
|
194 |
}
|
|
|
|
|
|
|
|
|
195 |
|
196 |
+
if(data.key) {
|
197 |
+
if(!mfp.popupsCache[data.key]) {
|
198 |
+
mfp.popupsCache[data.key] = {};
|
199 |
+
}
|
200 |
+
mfp.currTemplate = mfp.popupsCache[data.key];
|
201 |
+
} else {
|
202 |
+
mfp.currTemplate = {};
|
203 |
+
}
|
204 |
|
205 |
|
|
|
|
|
206 |
|
207 |
+
mfp.st = $.extend(true, {}, $.magnificPopup.defaults, data );
|
208 |
+
mfp.fixedContentPos = mfp.st.fixedContentPos === 'auto' ? !mfp.probablyMobile : mfp.st.fixedContentPos;
|
|
|
|
|
|
|
|
|
|
|
209 |
|
210 |
+
if(mfp.st.modal) {
|
211 |
+
mfp.st.closeOnContentClick = false;
|
212 |
+
mfp.st.closeOnBgClick = false;
|
213 |
+
mfp.st.showCloseBtn = false;
|
214 |
+
mfp.st.enableEscapeKey = false;
|
215 |
+
}
|
216 |
|
|
|
|
|
|
|
|
|
217 |
|
218 |
+
// Building markup
|
219 |
+
// main containers are created only once
|
220 |
+
if(!mfp.bgOverlay) {
|
221 |
+
|
222 |
+
// Dark overlay
|
223 |
+
mfp.bgOverlay = _getEl('bg').on('click'+EVENT_NS, function() {
|
224 |
mfp.close();
|
225 |
+
});
|
|
|
226 |
|
227 |
+
mfp.wrap = _getEl('wrap').attr('tabindex', -1).on('click'+EVENT_NS, function(e) {
|
228 |
+
if(mfp._checkIfClose(e.target)) {
|
229 |
+
mfp.close();
|
230 |
+
}
|
231 |
+
});
|
232 |
|
233 |
+
mfp.container = _getEl('container', mfp.wrap);
|
234 |
+
}
|
|
|
|
|
235 |
|
236 |
+
mfp.contentContainer = _getEl('content');
|
237 |
+
if(mfp.st.preloader) {
|
238 |
+
mfp.preloader = _getEl('preloader', mfp.container, mfp.st.tLoading);
|
239 |
+
}
|
240 |
|
241 |
+
|
242 |
+
// Initializing modules
|
243 |
+
var modules = $.magnificPopup.modules;
|
244 |
+
for(i = 0; i < modules.length; i++) {
|
245 |
+
var n = modules[i];
|
246 |
+
n = n.charAt(0).toUpperCase() + n.slice(1);
|
247 |
+
mfp['init'+n].call(mfp);
|
248 |
+
}
|
249 |
+
_mfpTrigger('BeforeOpen');
|
250 |
|
251 |
|
252 |
+
if(mfp.st.showCloseBtn) {
|
253 |
+
// Close button
|
254 |
+
if(!mfp.st.closeBtnInside) {
|
255 |
+
mfp.wrap.append( _getCloseBtn() );
|
256 |
+
} else {
|
257 |
+
_mfpOn(MARKUP_PARSE_EVENT, function(e, template, values, item) {
|
258 |
+
values.close_replaceWith = _getCloseBtn(item.type);
|
259 |
+
});
|
260 |
+
_wrapClasses += ' mfp-close-btn-in';
|
261 |
+
}
|
262 |
+
}
|
263 |
+
|
264 |
+
if(mfp.st.alignTop) {
|
265 |
+
_wrapClasses += ' mfp-align-top';
|
266 |
+
}
|
267 |
+
|
268 |
+
|
269 |
+
|
270 |
+
if(mfp.fixedContentPos) {
|
271 |
+
mfp.wrap.css({
|
272 |
+
overflow: mfp.st.overflowY,
|
273 |
+
overflowX: 'hidden',
|
274 |
+
overflowY: mfp.st.overflowY
|
275 |
+
});
|
276 |
} else {
|
277 |
+
mfp.wrap.css({
|
278 |
+
top: _window.scrollTop(),
|
279 |
+
position: 'absolute'
|
280 |
+
});
|
281 |
+
}
|
282 |
+
if( mfp.st.fixedBgPos === false || (mfp.st.fixedBgPos === 'auto' && !mfp.fixedContentPos) ) {
|
283 |
+
mfp.bgOverlay.css({
|
284 |
+
height: _document.height(),
|
285 |
+
position: 'absolute'
|
286 |
});
|
|
|
287 |
}
|
|
|
|
|
|
|
|
|
|
|
288 |
|
|
|
289 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
290 |
|
291 |
+
if(mfp.st.enableEscapeKey) {
|
292 |
+
// Close on ESC key
|
293 |
+
_document.on('keyup' + EVENT_NS, function(e) {
|
294 |
+
if(e.keyCode === 27) {
|
295 |
+
mfp.close();
|
296 |
+
}
|
297 |
+
});
|
298 |
+
}
|
299 |
|
300 |
+
_window.on('resize' + EVENT_NS, function() {
|
301 |
+
mfp.updateSize();
|
|
|
|
|
|
|
|
|
302 |
});
|
|
|
303 |
|
|
|
|
|
|
|
304 |
|
305 |
+
if(!mfp.st.closeOnContentClick) {
|
306 |
+
_wrapClasses += ' mfp-auto-cursor';
|
307 |
+
}
|
308 |
|
309 |
+
if(_wrapClasses)
|
310 |
+
mfp.wrap.addClass(_wrapClasses);
|
|
|
|
|
|
|
|
|
311 |
|
312 |
|
313 |
+
// this triggers recalculation of layout, so we get it once to not to trigger twice
|
314 |
+
var windowHeight = mfp.wH = _window.height();
|
315 |
|
|
|
|
|
316 |
|
317 |
+
var windowStyles = {};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
318 |
|
319 |
+
if( mfp.fixedContentPos ) {
|
320 |
+
if(mfp._hasScrollBar(windowHeight)){
|
321 |
+
var s = mfp._getScrollbarSize();
|
322 |
+
if(s) {
|
323 |
+
windowStyles.marginRight = s;
|
324 |
+
}
|
325 |
+
}
|
326 |
}
|
|
|
327 |
|
328 |
+
if(mfp.fixedContentPos) {
|
329 |
+
if(!mfp.isIE7) {
|
330 |
+
windowStyles.overflow = 'hidden';
|
331 |
+
} else {
|
332 |
+
// ie7 double-scroll bug
|
333 |
+
$('body, html').css('overflow', 'hidden');
|
334 |
+
}
|
335 |
+
}
|
|
|
336 |
|
337 |
+
|
338 |
+
|
339 |
+
var classesToadd = mfp.st.mainClass;
|
340 |
+
if(mfp.isIE7) {
|
341 |
+
classesToadd += ' mfp-ie7';
|
342 |
+
}
|
343 |
+
if(classesToadd) {
|
344 |
+
mfp._addClassToMFP( classesToadd );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
345 |
}
|
|
|
|
|
|
|
346 |
|
347 |
+
// add content
|
348 |
+
mfp.updateItemHTML();
|
349 |
|
350 |
+
_mfpTrigger('BuildControls');
|
|
|
|
|
351 |
|
352 |
+
// remove scrollbar, add margin e.t.c
|
353 |
+
$('html').css(windowStyles);
|
354 |
|
355 |
+
// add everything to DOM
|
356 |
+
mfp.bgOverlay.add(mfp.wrap).prependTo( mfp.st.prependTo || $(document.body) );
|
357 |
+
|
358 |
+
// Save last focused element
|
359 |
+
mfp._lastFocusedEl = document.activeElement;
|
360 |
+
|
361 |
+
// Wait for next cycle to allow CSS transition
|
|
|
|
|
|
|
|
|
362 |
setTimeout(function() {
|
|
|
|
|
|
|
|
|
|
|
|
|
363 |
|
364 |
+
if(mfp.content) {
|
365 |
+
mfp._addClassToMFP(READY_CLASS);
|
366 |
+
mfp._setFocus();
|
367 |
+
} else {
|
368 |
+
// if content is not defined (not loaded e.t.c) we add class only for BG
|
369 |
+
mfp.bgOverlay.addClass(READY_CLASS);
|
370 |
+
}
|
371 |
|
372 |
+
// Trap the focus in popup
|
373 |
+
_document.on('focusin' + EVENT_NS, mfp._onFocusIn);
|
374 |
|
375 |
+
}, 16);
|
|
|
|
|
376 |
|
377 |
+
mfp.isOpen = true;
|
378 |
+
mfp.updateSize(windowHeight);
|
379 |
+
_mfpTrigger(OPEN_EVENT);
|
380 |
|
381 |
+
return data;
|
382 |
+
},
|
383 |
|
384 |
+
/**
|
385 |
+
* Closes the popup
|
386 |
+
*/
|
387 |
+
close: function() {
|
388 |
+
if(!mfp.isOpen) return;
|
389 |
+
_mfpTrigger(BEFORE_CLOSE_EVENT);
|
390 |
+
|
391 |
+
mfp.isOpen = false;
|
392 |
+
// for CSS3 animation
|
393 |
+
if(mfp.st.removalDelay && !mfp.isLowIE && mfp.supportsTransition ) {
|
394 |
+
mfp._addClassToMFP(REMOVING_CLASS);
|
395 |
+
setTimeout(function() {
|
396 |
+
mfp._close();
|
397 |
+
}, mfp.st.removalDelay);
|
398 |
} else {
|
399 |
+
mfp._close();
|
400 |
}
|
401 |
+
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
402 |
|
403 |
+
/**
|
404 |
+
* Helper for close() function
|
405 |
+
*/
|
406 |
+
_close: function() {
|
407 |
+
_mfpTrigger(CLOSE_EVENT);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
408 |
|
409 |
+
var classesToRemove = REMOVING_CLASS + ' ' + READY_CLASS + ' ';
|
410 |
|
411 |
+
mfp.bgOverlay.detach();
|
412 |
+
mfp.wrap.detach();
|
413 |
+
mfp.container.empty();
|
414 |
|
415 |
+
if(mfp.st.mainClass) {
|
416 |
+
classesToRemove += mfp.st.mainClass + ' ';
|
417 |
+
}
|
|
|
|
|
418 |
|
419 |
+
mfp._removeClassFromMFP(classesToRemove);
|
|
|
420 |
|
421 |
+
if(mfp.fixedContentPos) {
|
422 |
+
var windowStyles = {marginRight: ''};
|
423 |
+
if(mfp.isIE7) {
|
424 |
+
$('body, html').css('overflow', '');
|
425 |
+
} else {
|
426 |
+
windowStyles.overflow = '';
|
427 |
+
}
|
428 |
+
$('html').css(windowStyles);
|
429 |
+
}
|
430 |
|
431 |
+
_document.off('keyup' + EVENT_NS + ' focusin' + EVENT_NS);
|
432 |
+
mfp.ev.off(EVENT_NS);
|
|
|
433 |
|
434 |
+
// clean up DOM elements that aren't removed
|
435 |
+
mfp.wrap.attr('class', 'mfp-wrap').removeAttr('style');
|
436 |
+
mfp.bgOverlay.attr('class', 'mfp-bg');
|
437 |
+
mfp.container.attr('class', 'mfp-container');
|
438 |
|
439 |
+
// remove close button from target element
|
440 |
+
if(mfp.st.showCloseBtn &&
|
441 |
+
(!mfp.st.closeBtnInside || mfp.currTemplate[mfp.currItem.type] === true)) {
|
442 |
+
if(mfp.currTemplate.closeBtn)
|
443 |
+
mfp.currTemplate.closeBtn.detach();
|
444 |
+
}
|
445 |
|
|
|
446 |
|
447 |
+
if(mfp.st.autoFocusLast && mfp._lastFocusedEl) {
|
448 |
+
$(mfp._lastFocusedEl).focus(); // put tab focus back
|
449 |
+
}
|
450 |
+
mfp.currItem = null;
|
451 |
+
mfp.content = null;
|
452 |
+
mfp.currTemplate = null;
|
453 |
+
mfp.prevHeight = 0;
|
454 |
|
455 |
+
_mfpTrigger(AFTER_CLOSE_EVENT);
|
456 |
+
},
|
457 |
|
458 |
+
updateSize: function(winHeight) {
|
|
|
459 |
|
460 |
+
if(mfp.isIOS) {
|
461 |
+
// fixes iOS nav bars https://github.com/dimsemenov/Magnific-Popup/issues/2
|
462 |
+
var zoomLevel = document.documentElement.clientWidth / window.innerWidth;
|
463 |
+
var height = window.innerHeight * zoomLevel;
|
464 |
+
mfp.wrap.css('height', height);
|
465 |
+
mfp.wH = height;
|
466 |
} else {
|
467 |
+
mfp.wH = winHeight || _window.height();
|
468 |
+
}
|
469 |
+
// Fixes #84: popup incorrectly positioned with position:relative on body
|
470 |
+
if(!mfp.fixedContentPos) {
|
471 |
+
mfp.wrap.css('height', mfp.wH);
|
472 |
}
|
|
|
473 |
|
474 |
+
_mfpTrigger('Resize');
|
|
|
|
|
|
|
|
|
|
|
475 |
|
476 |
+
},
|
477 |
|
478 |
+
/**
|
479 |
+
* Set content of popup based on current index
|
480 |
+
*/
|
481 |
+
updateItemHTML: function() {
|
482 |
+
var item = mfp.items[mfp.index];
|
483 |
|
484 |
+
// Detach and perform modifications
|
485 |
+
mfp.contentContainer.detach();
|
486 |
|
487 |
+
if(mfp.content)
|
488 |
+
mfp.content.detach();
|
489 |
|
490 |
+
if(!item.parsed) {
|
491 |
+
item = mfp.parseEl( mfp.index );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
492 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
493 |
|
494 |
+
var type = item.type;
|
495 |
|
496 |
+
_mfpTrigger('BeforeChange', [mfp.currItem ? mfp.currItem.type : '', type]);
|
497 |
+
// BeforeChange event works like so:
|
498 |
+
// _mfpOn('BeforeChange', function(e, prevType, newType) { });
|
499 |
|
500 |
+
mfp.currItem = item;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
501 |
|
502 |
+
if(!mfp.currTemplate[type]) {
|
503 |
+
var markup = mfp.st[type] ? mfp.st[type].markup : false;
|
|
|
|
|
|
|
|
|
504 |
|
505 |
+
// allows to modify markup
|
506 |
+
_mfpTrigger('FirstMarkupParse', markup);
|
507 |
|
508 |
+
if(markup) {
|
509 |
+
mfp.currTemplate[type] = $(markup);
|
510 |
+
} else {
|
511 |
+
// if there is no markup found we just define that template is parsed
|
512 |
+
mfp.currTemplate[type] = true;
|
513 |
}
|
514 |
}
|
515 |
|
516 |
+
if(_prevContentType && _prevContentType !== item.type) {
|
517 |
+
mfp.container.removeClass('mfp-'+_prevContentType+'-holder');
|
|
|
518 |
}
|
|
|
519 |
|
520 |
+
var newContent = mfp['get' + type.charAt(0).toUpperCase() + type.slice(1)](item, mfp.currTemplate[type]);
|
521 |
+
mfp.appendContent(newContent, type);
|
|
|
|
|
|
|
522 |
|
523 |
+
item.preloaded = true;
|
|
|
524 |
|
525 |
+
_mfpTrigger(CHANGE_EVENT, item);
|
526 |
+
_prevContentType = item.type;
|
527 |
|
528 |
+
// Append container back after its content changed
|
529 |
+
mfp.container.prepend(mfp.contentContainer);
|
|
|
|
|
|
|
|
|
|
|
|
|
530 |
|
531 |
+
_mfpTrigger('AfterChange');
|
532 |
+
},
|
|
|
533 |
|
534 |
+
|
535 |
+
/**
|
536 |
+
* Set HTML content of popup
|
537 |
+
*/
|
538 |
+
appendContent: function(newContent, type) {
|
539 |
+
mfp.content = newContent;
|
540 |
+
|
541 |
+
if(newContent) {
|
542 |
+
if(mfp.st.showCloseBtn && mfp.st.closeBtnInside &&
|
543 |
+
mfp.currTemplate[type] === true) {
|
544 |
+
// if there is no markup, we just append close button element inside
|
545 |
+
if(!mfp.content.find('.mfp-close').length) {
|
546 |
+
mfp.content.append(_getCloseBtn());
|
547 |
+
}
|
548 |
+
} else {
|
549 |
+
mfp.content = newContent;
|
550 |
+
}
|
551 |
} else {
|
552 |
+
mfp.content = '';
|
|
|
553 |
}
|
|
|
|
|
|
|
|
|
554 |
|
555 |
+
_mfpTrigger(BEFORE_APPEND_EVENT);
|
556 |
+
mfp.container.addClass('mfp-'+type+'-holder');
|
557 |
|
558 |
+
mfp.contentContainer.append(mfp.content);
|
559 |
+
},
|
|
|
560 |
|
|
|
561 |
|
562 |
+
/**
|
563 |
+
* Creates Magnific Popup data object based on given data
|
564 |
+
* @param {int} index Index of item to parse
|
565 |
+
*/
|
566 |
+
parseEl: function(index) {
|
567 |
+
var item = mfp.items[index],
|
568 |
+
type;
|
569 |
+
|
570 |
+
if(item.tagName) {
|
571 |
+
item = { el: $(item) };
|
572 |
+
} else {
|
573 |
+
type = item.type;
|
574 |
+
item = { data: item, src: item.src };
|
575 |
+
}
|
576 |
+
|
577 |
+
if(item.el) {
|
578 |
+
var types = mfp.types;
|
579 |
+
|
580 |
+
// check for 'mfp-TYPE' class
|
581 |
+
for(var i = 0; i < types.length; i++) {
|
582 |
+
if( item.el.hasClass('mfp-'+types[i]) ) {
|
583 |
+
type = types[i];
|
584 |
+
break;
|
585 |
+
}
|
586 |
}
|
587 |
+
|
588 |
+
item.src = item.el.attr('data-mfp-src');
|
589 |
+
if(!item.src) {
|
590 |
+
item.src = item.el.attr('href');
|
591 |
}
|
592 |
}
|
|
|
|
|
|
|
|
|
593 |
|
594 |
+
item.type = type || mfp.st.type || 'inline';
|
595 |
+
item.index = index;
|
596 |
+
item.parsed = true;
|
597 |
+
mfp.items[index] = item;
|
598 |
+
_mfpTrigger('ElementParse', item);
|
599 |
+
|
600 |
+
return mfp.items[index];
|
601 |
+
},
|
602 |
+
|
603 |
+
|
604 |
+
/**
|
605 |
+
* Initializes single popup or a group of popups
|
606 |
+
*/
|
607 |
+
addGroup: function(el, options) {
|
608 |
+
var eHandler = function(e) {
|
609 |
+
e.mfpEl = this;
|
610 |
+
mfp._openClick(e, el, options);
|
611 |
+
};
|
612 |
+
|
613 |
+
if(!options) {
|
614 |
+
options = {};
|
615 |
}
|
|
|
|
|
616 |
|
617 |
+
var eName = 'click.magnificPopup';
|
618 |
+
options.mainEl = el;
|
|
|
|
|
|
|
|
|
619 |
|
620 |
+
if(options.items) {
|
621 |
+
options.isObj = true;
|
622 |
+
el.off(eName).on(eName, eHandler);
|
623 |
+
} else {
|
624 |
+
options.isObj = false;
|
625 |
+
if(options.delegate) {
|
626 |
+
el.off(eName).on(eName, options.delegate , eHandler);
|
627 |
+
} else {
|
628 |
+
options.items = el;
|
629 |
+
el.off(eName).on(eName, eHandler);
|
630 |
+
}
|
631 |
+
}
|
632 |
+
},
|
633 |
+
_openClick: function(e, el, options) {
|
634 |
+
var midClick = options.midClick !== undefined ? options.midClick : $.magnificPopup.defaults.midClick;
|
635 |
|
|
|
|
|
|
|
|
|
636 |
|
637 |
+
if(!midClick && ( e.which === 2 || e.ctrlKey || e.metaKey || e.altKey || e.shiftKey ) ) {
|
638 |
+
return;
|
|
|
639 |
}
|
640 |
|
641 |
+
var disableOn = options.disableOn !== undefined ? options.disableOn : $.magnificPopup.defaults.disableOn;
|
642 |
+
|
643 |
+
if(disableOn) {
|
644 |
+
if($.isFunction(disableOn)) {
|
645 |
+
if( !disableOn.call(mfp) ) {
|
646 |
+
return true;
|
647 |
+
}
|
648 |
+
} else { // else it's number
|
649 |
+
if( _window.width() < disableOn ) {
|
650 |
+
return true;
|
651 |
+
}
|
652 |
+
}
|
653 |
}
|
654 |
|
655 |
+
if(e.type) {
|
656 |
+
e.preventDefault();
|
|
|
|
|
|
|
|
|
657 |
|
658 |
+
// This will prevent popup from closing if element is inside and popup is already opened
|
659 |
+
if(mfp.isOpen) {
|
660 |
+
e.stopPropagation();
|
661 |
+
}
|
662 |
+
}
|
663 |
|
664 |
+
options.el = $(e.mfpEl);
|
665 |
+
if(options.delegate) {
|
666 |
+
options.items = el.find(options.delegate);
|
667 |
+
}
|
668 |
+
mfp.open(options);
|
669 |
+
},
|
670 |
|
|
|
|
|
|
|
671 |
|
672 |
+
/**
|
673 |
+
* Updates text on preloader
|
674 |
+
*/
|
675 |
+
updateStatus: function(status, text) {
|
676 |
|
677 |
+
if(mfp.preloader) {
|
678 |
+
if(_prevStatus !== status) {
|
679 |
+
mfp.container.removeClass('mfp-s-'+_prevStatus);
|
680 |
+
}
|
681 |
|
682 |
+
if(!text && status === 'loading') {
|
683 |
+
text = mfp.st.tLoading;
|
684 |
+
}
|
|
|
|
|
|
|
685 |
|
686 |
+
var data = {
|
687 |
+
status: status,
|
688 |
+
text: text
|
689 |
+
};
|
690 |
+
// allows to modify status
|
691 |
+
_mfpTrigger('UpdateStatus', data);
|
692 |
|
693 |
+
status = data.status;
|
694 |
+
text = data.text;
|
695 |
|
696 |
+
mfp.preloader.html(text);
|
|
|
|
|
697 |
|
698 |
+
mfp.preloader.find('a').on('click', function(e) {
|
699 |
+
e.stopImmediatePropagation();
|
700 |
+
});
|
701 |
+
|
702 |
+
mfp.container.addClass('mfp-s-'+status);
|
703 |
+
_prevStatus = status;
|
704 |
}
|
705 |
+
},
|
706 |
|
707 |
+
|
708 |
+
/*
|
709 |
+
"Private" helpers that aren't private at all
|
710 |
+
*/
|
711 |
+
// Check to close popup or not
|
712 |
+
// "target" is an element that was clicked
|
713 |
+
_checkIfClose: function(target) {
|
714 |
+
|
715 |
+
if($(target).hasClass(PREVENT_CLOSE_CLASS)) {
|
716 |
+
return;
|
717 |
}
|
718 |
|
719 |
+
var closeOnContent = mfp.st.closeOnContentClick;
|
720 |
+
var closeOnBg = mfp.st.closeOnBgClick;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
721 |
|
722 |
+
if(closeOnContent && closeOnBg) {
|
|
|
723 |
return true;
|
724 |
+
} else {
|
|
|
|
|
|
|
725 |
|
726 |
+
// We close the popup if click is on close button or on preloader. Or if there is no content.
|
727 |
+
if(!mfp.content || $(target).hasClass('mfp-close') || (mfp.preloader && target === mfp.preloader[0]) ) {
|
728 |
+
return true;
|
729 |
+
}
|
730 |
+
|
731 |
+
// if click is outside the content
|
732 |
+
if( (target !== mfp.content[0] && !$.contains(mfp.content[0], target)) ) {
|
733 |
+
if(closeOnBg) {
|
734 |
+
// last check, if the clicked element is in DOM, (in case it's removed onclick)
|
735 |
+
if( $.contains(document, target) ) {
|
736 |
+
return true;
|
737 |
}
|
738 |
+
}
|
739 |
+
} else if(closeOnContent) {
|
740 |
+
return true;
|
741 |
+
}
|
742 |
+
|
743 |
+
}
|
744 |
+
return false;
|
745 |
+
},
|
746 |
+
_addClassToMFP: function(cName) {
|
747 |
+
mfp.bgOverlay.addClass(cName);
|
748 |
+
mfp.wrap.addClass(cName);
|
749 |
+
},
|
750 |
+
_removeClassFromMFP: function(cName) {
|
751 |
+
this.bgOverlay.removeClass(cName);
|
752 |
+
mfp.wrap.removeClass(cName);
|
753 |
+
},
|
754 |
+
_hasScrollBar: function(winHeight) {
|
755 |
+
return ( (mfp.isIE7 ? _document.height() : document.body.scrollHeight) > (winHeight || _window.height()) );
|
756 |
+
},
|
757 |
+
_setFocus: function() {
|
758 |
+
(mfp.st.focus ? mfp.content.find(mfp.st.focus).eq(0) : mfp.wrap).focus();
|
759 |
+
},
|
760 |
+
_onFocusIn: function(e) {
|
761 |
+
if( e.target !== mfp.wrap[0] && !$.contains(mfp.wrap[0], e.target) ) {
|
762 |
+
mfp._setFocus();
|
763 |
+
return false;
|
764 |
+
}
|
765 |
+
},
|
766 |
+
_parseMarkup: function(template, values, item) {
|
767 |
+
var arr;
|
768 |
+
if(item.data) {
|
769 |
+
values = $.extend(item.data, values);
|
770 |
+
}
|
771 |
+
_mfpTrigger(MARKUP_PARSE_EVENT, [template, values, item] );
|
772 |
+
|
773 |
+
$.each(values, function(key, value) {
|
774 |
+
if(value === undefined || value === false) {
|
775 |
+
return true;
|
776 |
+
}
|
777 |
+
arr = key.split('_');
|
778 |
+
if(arr.length > 1) {
|
779 |
+
var el = template.find(EVENT_NS + '-'+arr[0]);
|
780 |
+
|
781 |
+
if(el.length > 0) {
|
782 |
+
var attr = arr[1];
|
783 |
+
if(attr === 'replaceWith') {
|
784 |
+
if(el[0] !== value[0]) {
|
785 |
+
el.replaceWith(value);
|
786 |
+
}
|
787 |
+
} else if(attr === 'img') {
|
788 |
+
if(el.is('img')) {
|
789 |
+
el.attr('src', value);
|
790 |
+
} else {
|
791 |
+
el.replaceWith( $('<img>').attr('src', value).attr('class', el.attr('class')) );
|
792 |
+
}
|
793 |
} else {
|
794 |
+
el.attr(arr[1], value);
|
795 |
}
|
|
|
|
|
796 |
}
|
797 |
+
|
798 |
+
} else {
|
799 |
+
template.find(EVENT_NS + '-'+key).html(value);
|
800 |
}
|
801 |
+
});
|
802 |
+
},
|
803 |
|
804 |
+
_getScrollbarSize: function() {
|
805 |
+
// thx David
|
806 |
+
if(mfp.scrollbarSize === undefined) {
|
807 |
+
var scrollDiv = document.createElement("div");
|
808 |
+
scrollDiv.style.cssText = 'width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;';
|
809 |
+
document.body.appendChild(scrollDiv);
|
810 |
+
mfp.scrollbarSize = scrollDiv.offsetWidth - scrollDiv.clientWidth;
|
811 |
+
document.body.removeChild(scrollDiv);
|
812 |
+
}
|
813 |
+
return mfp.scrollbarSize;
|
|
|
|
|
|
|
|
|
814 |
}
|
|
|
|
|
|
|
|
|
815 |
|
816 |
+
}; /* MagnificPopup core prototype end */
|
817 |
|
818 |
|
819 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
820 |
|
821 |
+
/**
|
822 |
+
* Public static functions
|
823 |
+
*/
|
824 |
+
$.magnificPopup = {
|
825 |
+
instance: null,
|
826 |
+
proto: MagnificPopup.prototype,
|
827 |
+
modules: [],
|
|
|
|
|
828 |
|
829 |
+
open: function(options, index) {
|
830 |
+
_checkInstance();
|
|
|
|
|
831 |
|
832 |
+
if(!options) {
|
833 |
+
options = {};
|
834 |
+
} else {
|
835 |
+
options = $.extend(true, {}, options);
|
836 |
+
}
|
837 |
|
838 |
+
options.isObj = true;
|
839 |
+
options.index = index || 0;
|
840 |
+
return this.instance.open(options);
|
841 |
+
},
|
|
|
|
|
|
|
842 |
|
843 |
+
close: function() {
|
844 |
+
return $.magnificPopup.instance && $.magnificPopup.instance.close();
|
845 |
+
},
|
846 |
|
847 |
+
registerModule: function(name, module) {
|
848 |
+
if(module.options) {
|
849 |
+
$.magnificPopup.defaults[name] = module.options;
|
850 |
+
}
|
851 |
+
$.extend(this.proto, module.proto);
|
852 |
+
this.modules.push(name);
|
853 |
+
},
|
854 |
|
855 |
+
defaults: {
|
856 |
|
857 |
+
// Info about options is in docs:
|
858 |
+
// http://dimsemenov.com/plugins/magnific-popup/documentation.html#options
|
859 |
|
860 |
+
disableOn: 0,
|
861 |
|
862 |
+
key: null,
|
863 |
|
864 |
+
midClick: false,
|
|
|
|
|
865 |
|
866 |
+
mainClass: '',
|
867 |
|
868 |
+
preloader: true,
|
869 |
|
870 |
+
focus: '', // CSS selector of input to focus after popup is opened
|
871 |
|
872 |
+
closeOnContentClick: false,
|
873 |
|
874 |
+
closeOnBgClick: true,
|
875 |
|
876 |
+
closeBtnInside: true,
|
|
|
|
|
877 |
|
878 |
+
showCloseBtn: true,
|
|
|
|
|
|
|
|
|
879 |
|
880 |
+
enableEscapeKey: true,
|
881 |
|
882 |
+
modal: false,
|
883 |
|
884 |
+
alignTop: false,
|
885 |
|
886 |
+
removalDelay: 0,
|
887 |
|
888 |
+
prependTo: null,
|
|
|
889 |
|
890 |
+
fixedContentPos: 'auto',
|
891 |
|
892 |
+
fixedBgPos: 'auto',
|
893 |
|
894 |
+
overflowY: 'auto',
|
|
|
895 |
|
896 |
+
closeMarkup: '<button title="%title%" type="button" class="mfp-close">×</button>',
|
897 |
|
898 |
+
tClose: 'Close (Esc)',
|
|
|
899 |
|
900 |
+
tLoading: 'Loading...',
|
|
|
|
|
|
|
901 |
|
902 |
+
autoFocusLast: true
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
903 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
904 |
}
|
905 |
+
};
|
906 |
|
|
|
|
|
|
|
|
|
|
|
907 |
|
908 |
|
909 |
+
$.fn.magnificPopup = function(options) {
|
910 |
+
_checkInstance();
|
|
|
|
|
|
|
911 |
|
912 |
+
var jqEl = $(this);
|
913 |
|
914 |
+
// We call some API method of first param is a string
|
915 |
+
if (typeof options === "string" ) {
|
916 |
|
917 |
+
if(options === 'open') {
|
918 |
+
var items,
|
919 |
+
itemOpts = _isJQ ? jqEl.data('magnificPopup') : jqEl[0].magnificPopup,
|
920 |
+
index = parseInt(arguments[1], 10) || 0;
|
921 |
|
922 |
+
if(itemOpts.items) {
|
923 |
+
items = itemOpts.items[index];
|
924 |
+
} else {
|
925 |
+
items = jqEl;
|
926 |
+
if(itemOpts.delegate) {
|
927 |
+
items = items.find(itemOpts.delegate);
|
928 |
+
}
|
929 |
+
items = items.eq( index );
|
930 |
+
}
|
931 |
+
mfp._openClick({mfpEl:items}, jqEl, itemOpts);
|
932 |
+
} else {
|
933 |
+
if(mfp.isOpen)
|
934 |
+
mfp[options].apply(mfp, Array.prototype.slice.call(arguments, 1));
|
935 |
+
}
|
936 |
|
937 |
+
} else {
|
938 |
+
// clone options obj
|
939 |
+
options = $.extend(true, {}, options);
|
940 |
|
941 |
+
/*
|
942 |
+
* As Zepto doesn't support .data() method for objects
|
943 |
+
* and it works only in normal browsers
|
944 |
+
* we assign "options" object directly to the DOM element. FTW!
|
945 |
+
*/
|
946 |
+
if(_isJQ) {
|
947 |
+
jqEl.data('magnificPopup', options);
|
948 |
+
} else {
|
949 |
+
jqEl[0].magnificPopup = options;
|
950 |
+
}
|
951 |
|
952 |
+
mfp.addGroup(jqEl, options);
|
953 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
954 |
}
|
955 |
+
return jqEl;
|
956 |
};
|
957 |
|
958 |
+
/*>>core*/
|
|
|
|
|
|
|
|
|
|
|
|
|
959 |
|
960 |
+
/*>>inline*/
|
|
|
961 |
|
962 |
+
var INLINE_NS = 'inline',
|
963 |
+
_hiddenClass,
|
964 |
+
_inlinePlaceholder,
|
965 |
+
_lastInlineElement,
|
966 |
+
_putInlineElementsBack = function() {
|
967 |
+
if(_lastInlineElement) {
|
968 |
+
_inlinePlaceholder.after( _lastInlineElement.addClass(_hiddenClass) ).detach();
|
969 |
+
_lastInlineElement = null;
|
970 |
+
}
|
971 |
+
};
|
972 |
+
|
973 |
+
$.magnificPopup.registerModule(INLINE_NS, {
|
974 |
+
options: {
|
975 |
+
hiddenClass: 'hide', // will be appended with `mfp-` prefix
|
976 |
+
markup: '',
|
977 |
+
tNotFound: 'Content not found'
|
978 |
},
|
979 |
+
proto: {
|
980 |
|
981 |
+
initInline: function() {
|
982 |
+
mfp.types.push(INLINE_NS);
|
983 |
|
984 |
+
_mfpOn(CLOSE_EVENT+'.'+INLINE_NS, function() {
|
985 |
+
_putInlineElementsBack();
|
986 |
+
});
|
987 |
+
},
|
988 |
|
989 |
+
getInline: function(item, template) {
|
|
|
|
|
990 |
|
991 |
+
_putInlineElementsBack();
|
992 |
+
|
993 |
+
if(item.src) {
|
994 |
+
var inlineSt = mfp.st.inline,
|
995 |
+
el = $(item.src);
|
996 |
|
997 |
+
if(el.length) {
|
998 |
+
|
999 |
+
// If target element has parent - we replace it with placeholder and put it back after popup is closed
|
1000 |
+
var parent = el[0].parentNode;
|
1001 |
+
if(parent && parent.tagName) {
|
1002 |
+
if(!_inlinePlaceholder) {
|
1003 |
+
_hiddenClass = inlineSt.hiddenClass;
|
1004 |
+
_inlinePlaceholder = _getEl(_hiddenClass);
|
1005 |
+
_hiddenClass = 'mfp-'+_hiddenClass;
|
1006 |
+
}
|
1007 |
+
// replace target inline element with placeholder
|
1008 |
+
_lastInlineElement = el.after(_inlinePlaceholder).detach().removeClass(_hiddenClass);
|
1009 |
}
|
1010 |
+
|
1011 |
+
mfp.updateStatus('ready');
|
1012 |
+
} else {
|
1013 |
+
mfp.updateStatus('error', inlineSt.tNotFound);
|
1014 |
+
el = $('<div>');
|
1015 |
}
|
1016 |
|
1017 |
+
item.inlineElement = el;
|
1018 |
+
return el;
|
|
|
|
|
1019 |
}
|
1020 |
|
1021 |
+
mfp.updateStatus('ready');
|
1022 |
+
mfp._parseMarkup(template, {}, item);
|
1023 |
+
return template;
|
1024 |
}
|
|
|
|
|
|
|
|
|
1025 |
}
|
1026 |
+
});
|
|
|
1027 |
|
1028 |
+
/*>>inline*/
|
1029 |
|
1030 |
+
/*>>ajax*/
|
1031 |
+
var AJAX_NS = 'ajax',
|
1032 |
+
_ajaxCur,
|
1033 |
+
_removeAjaxCursor = function() {
|
1034 |
+
if(_ajaxCur) {
|
1035 |
+
$(document.body).removeClass(_ajaxCur);
|
1036 |
+
}
|
1037 |
+
},
|
1038 |
+
_destroyAjaxRequest = function() {
|
1039 |
+
_removeAjaxCursor();
|
1040 |
+
if(mfp.req) {
|
1041 |
+
mfp.req.abort();
|
1042 |
+
}
|
1043 |
+
};
|
1044 |
|
1045 |
+
$.magnificPopup.registerModule(AJAX_NS, {
|
1046 |
|
1047 |
+
options: {
|
1048 |
+
settings: null,
|
1049 |
+
cursor: 'mfp-ajax-cur',
|
1050 |
+
tError: '<a href="%url%">The content</a> could not be loaded.'
|
1051 |
+
},
|
1052 |
|
1053 |
+
proto: {
|
1054 |
+
initAjax: function() {
|
1055 |
+
mfp.types.push(AJAX_NS);
|
1056 |
+
_ajaxCur = mfp.st.ajax.cursor;
|
1057 |
|
1058 |
+
_mfpOn(CLOSE_EVENT+'.'+AJAX_NS, _destroyAjaxRequest);
|
1059 |
+
_mfpOn('BeforeChange.' + AJAX_NS, _destroyAjaxRequest);
|
1060 |
+
},
|
1061 |
+
getAjax: function(item) {
|
1062 |
|
1063 |
+
if(_ajaxCur) {
|
1064 |
+
$(document.body).addClass(_ajaxCur);
|
1065 |
+
}
|
1066 |
|
1067 |
+
mfp.updateStatus('loading');
|
1068 |
|
1069 |
+
var opts = $.extend({
|
1070 |
+
url: item.src,
|
1071 |
+
success: function(data, textStatus, jqXHR) {
|
1072 |
+
var temp = {
|
1073 |
+
data:data,
|
1074 |
+
xhr:jqXHR
|
1075 |
+
};
|
1076 |
|
1077 |
+
_mfpTrigger('ParseAjax', temp);
|
1078 |
|
1079 |
+
mfp.appendContent( $(temp.data), AJAX_NS );
|
1080 |
|
1081 |
+
item.finished = true;
|
1082 |
|
1083 |
+
_removeAjaxCursor();
|
1084 |
|
1085 |
+
mfp._setFocus();
|
1086 |
|
1087 |
+
setTimeout(function() {
|
1088 |
+
mfp.wrap.addClass(READY_CLASS);
|
1089 |
+
}, 16);
|
1090 |
|
1091 |
+
mfp.updateStatus('ready');
|
1092 |
|
1093 |
+
_mfpTrigger('AjaxContentAdded');
|
1094 |
+
},
|
1095 |
+
error: function() {
|
1096 |
+
_removeAjaxCursor();
|
1097 |
+
item.finished = item.loadError = true;
|
1098 |
+
mfp.updateStatus('error', mfp.st.ajax.tError.replace('%url%', item.src));
|
1099 |
+
}
|
1100 |
+
}, mfp.st.ajax.settings);
|
1101 |
|
1102 |
+
mfp.req = $.ajax(opts);
|
1103 |
|
1104 |
+
return '';
|
1105 |
+
}
|
1106 |
}
|
1107 |
+
});
|
|
|
1108 |
|
1109 |
+
/*>>ajax*/
|
1110 |
|
1111 |
+
/*>>image*/
|
1112 |
+
var _imgInterval,
|
1113 |
+
_getTitle = function(item) {
|
1114 |
+
if(item.data && item.data.title !== undefined)
|
1115 |
+
return item.data.title;
|
1116 |
|
1117 |
+
var src = mfp.st.image.titleSrc;
|
1118 |
|
1119 |
+
if(src) {
|
1120 |
+
if($.isFunction(src)) {
|
1121 |
+
return src.call(mfp, item);
|
1122 |
+
} else if(item.el) {
|
1123 |
+
return item.el.attr(src) || '';
|
1124 |
+
}
|
1125 |
+
}
|
1126 |
+
return '';
|
1127 |
+
};
|
1128 |
|
1129 |
+
$.magnificPopup.registerModule('image', {
|
1130 |
+
|
1131 |
+
options: {
|
1132 |
+
markup: '<div class="mfp-figure">'+
|
1133 |
+
'<div class="mfp-close"></div>'+
|
1134 |
+
'<figure>'+
|
1135 |
+
'<div class="mfp-img"></div>'+
|
1136 |
+
'<figcaption>'+
|
1137 |
+
'<div class="mfp-bottom-bar">'+
|
1138 |
+
'<div class="mfp-title"></div>'+
|
1139 |
+
'<div class="mfp-counter"></div>'+
|
1140 |
+
'</div>'+
|
1141 |
+
'</figcaption>'+
|
1142 |
+
'</figure>'+
|
1143 |
+
'</div>',
|
1144 |
+
cursor: 'mfp-zoom-out-cur',
|
1145 |
+
titleSrc: 'title',
|
1146 |
+
verticalFit: true,
|
1147 |
+
tError: '<a href="%url%">The image</a> could not be loaded.'
|
1148 |
+
},
|
1149 |
|
1150 |
+
proto: {
|
1151 |
+
initImage: function() {
|
1152 |
+
var imgSt = mfp.st.image,
|
1153 |
+
ns = '.image';
|
1154 |
|
1155 |
+
mfp.types.push('image');
|
|
|
|
|
|
|
|
|
1156 |
|
1157 |
+
_mfpOn(OPEN_EVENT+ns, function() {
|
1158 |
+
if(mfp.currItem.type === 'image' && imgSt.cursor) {
|
1159 |
+
$(document.body).addClass(imgSt.cursor);
|
1160 |
+
}
|
1161 |
+
});
|
1162 |
|
1163 |
+
_mfpOn(CLOSE_EVENT+ns, function() {
|
1164 |
+
if(imgSt.cursor) {
|
1165 |
+
$(document.body).removeClass(imgSt.cursor);
|
1166 |
+
}
|
1167 |
+
_window.off('resize' + EVENT_NS);
|
1168 |
+
});
|
|
|
|
|
|
|
1169 |
|
1170 |
+
_mfpOn('Resize'+ns, mfp.resizeImage);
|
1171 |
+
if(mfp.isLowIE) {
|
1172 |
+
_mfpOn('AfterChange', mfp.resizeImage);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1173 |
}
|
1174 |
+
},
|
1175 |
+
resizeImage: function() {
|
1176 |
+
var item = mfp.currItem;
|
1177 |
+
if(!item || !item.img) return;
|
1178 |
+
|
1179 |
+
if(mfp.st.image.verticalFit) {
|
1180 |
+
var decr = 0;
|
1181 |
+
// fix box-sizing in ie7/8
|
1182 |
+
if(mfp.isLowIE) {
|
1183 |
+
decr = parseInt(item.img.css('padding-top'), 10) + parseInt(item.img.css('padding-bottom'),10);
|
1184 |
+
}
|
1185 |
+
item.img.css('max-height', mfp.wH-decr);
|
1186 |
}
|
1187 |
+
},
|
1188 |
+
_onImageHasSize: function(item) {
|
1189 |
+
if(item.img) {
|
1190 |
|
1191 |
+
item.hasSize = true;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1192 |
|
1193 |
+
if(_imgInterval) {
|
1194 |
+
clearInterval(_imgInterval);
|
1195 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1196 |
|
1197 |
+
item.isCheckingImgSize = false;
|
|
|
|
|
|
|
|
|
1198 |
|
1199 |
+
_mfpTrigger('ImageHasSize', item);
|
1200 |
|
1201 |
+
if(item.imgHidden) {
|
1202 |
+
if(mfp.content)
|
1203 |
+
mfp.content.removeClass('mfp-loading');
|
|
|
|
|
|
|
1204 |
|
1205 |
+
item.imgHidden = false;
|
1206 |
+
}
|
1207 |
|
1208 |
+
}
|
1209 |
+
},
|
|
|
|
|
1210 |
|
1211 |
+
/**
|
1212 |
+
* Function that loops until the image has size to display elements that rely on it asap
|
1213 |
+
*/
|
1214 |
+
findImageSize: function(item) {
|
1215 |
|
1216 |
+
var counter = 0,
|
1217 |
+
img = item.img[0],
|
1218 |
+
mfpSetInterval = function(delay) {
|
1219 |
+
|
1220 |
+
if(_imgInterval) {
|
1221 |
+
clearInterval(_imgInterval);
|
|
|
|
|
1222 |
}
|
1223 |
+
// decelerating interval that checks for size of an image
|
1224 |
+
_imgInterval = setInterval(function() {
|
1225 |
+
if(img.naturalWidth > 0) {
|
1226 |
+
mfp._onImageHasSize(item);
|
1227 |
+
return;
|
1228 |
+
}
|
1229 |
+
|
1230 |
+
if(counter > 200) {
|
1231 |
+
clearInterval(_imgInterval);
|
1232 |
+
}
|
1233 |
+
|
1234 |
+
counter++;
|
1235 |
+
if(counter === 3) {
|
1236 |
+
mfpSetInterval(10);
|
1237 |
+
} else if(counter === 40) {
|
1238 |
+
mfpSetInterval(50);
|
1239 |
+
} else if(counter === 100) {
|
1240 |
+
mfpSetInterval(500);
|
1241 |
+
}
|
1242 |
+
}, delay);
|
1243 |
+
};
|
1244 |
+
|
1245 |
+
mfpSetInterval(1);
|
1246 |
+
},
|
1247 |
+
|
1248 |
+
getImage: function(item, template) {
|
1249 |
+
|
1250 |
+
var guard = 0,
|
1251 |
|
1252 |
+
// image load complete handler
|
1253 |
+
onLoadComplete = function() {
|
1254 |
+
if(item) {
|
1255 |
+
if (item.img[0].complete) {
|
1256 |
+
item.img.off('.mfploader');
|
1257 |
|
1258 |
+
if(item === mfp.currItem){
|
1259 |
+
mfp._onImageHasSize(item);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1260 |
|
1261 |
+
mfp.updateStatus('ready');
|
1262 |
+
}
|
1263 |
|
1264 |
+
item.hasSize = true;
|
1265 |
+
item.loaded = true;
|
1266 |
|
1267 |
+
_mfpTrigger('ImageLoadComplete');
|
1268 |
|
1269 |
+
}
|
1270 |
+
else {
|
1271 |
+
// if image complete check fails 200 times (20 sec), we assume that there was an error.
|
1272 |
+
guard++;
|
1273 |
+
if(guard < 200) {
|
1274 |
+
setTimeout(onLoadComplete,100);
|
1275 |
+
} else {
|
1276 |
+
onLoadError();
|
1277 |
+
}
|
1278 |
+
}
|
1279 |
+
}
|
1280 |
+
},
|
1281 |
+
|
1282 |
+
// image error handler
|
1283 |
+
onLoadError = function() {
|
1284 |
+
if(item) {
|
1285 |
item.img.off('.mfploader');
|
|
|
1286 |
if(item === mfp.currItem){
|
1287 |
mfp._onImageHasSize(item);
|
1288 |
+
mfp.updateStatus('error', imgSt.tError.replace('%url%', item.src) );
|
|
|
1289 |
}
|
1290 |
|
1291 |
item.hasSize = true;
|
1292 |
item.loaded = true;
|
1293 |
+
item.loadError = true;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1294 |
}
|
1295 |
+
},
|
1296 |
+
imgSt = mfp.st.image;
|
1297 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1298 |
|
1299 |
+
var el = template.find('.mfp-img');
|
1300 |
+
if(el.length) {
|
1301 |
+
var img = document.createElement('img');
|
1302 |
+
img.className = 'mfp-img';
|
1303 |
+
if(item.el && item.el.find('img').length) {
|
1304 |
+
img.alt = item.el.find('img').attr('alt');
|
1305 |
}
|
1306 |
+
item.img = $(img).on('load.mfploader', onLoadComplete).on('error.mfploader', onLoadError);
|
1307 |
+
img.src = item.src;
|
1308 |
|
1309 |
+
// without clone() "error" event is not firing when IMG is replaced by new IMG
|
1310 |
+
// TODO: find a way to avoid such cloning
|
1311 |
+
if(el.is('img')) {
|
1312 |
+
item.img = item.img.clone();
|
1313 |
+
}
|
1314 |
|
1315 |
+
img = item.img[0];
|
1316 |
+
if(img.naturalWidth > 0) {
|
1317 |
+
item.hasSize = true;
|
1318 |
+
} else if(!img.width) {
|
1319 |
+
item.hasSize = false;
|
1320 |
+
}
|
1321 |
}
|
|
|
|
|
1322 |
|
1323 |
+
mfp._parseMarkup(template, {
|
1324 |
+
title: _getTitle(item),
|
1325 |
+
img_replaceWith: item.img
|
1326 |
+
}, item);
|
|
|
1327 |
|
1328 |
+
mfp.resizeImage();
|
|
|
|
|
|
|
|
|
|
|
|
|
1329 |
|
1330 |
+
if(item.hasSize) {
|
1331 |
+
if(_imgInterval) clearInterval(_imgInterval);
|
|
|
|
|
1332 |
|
1333 |
+
if(item.loadError) {
|
1334 |
+
template.addClass('mfp-loading');
|
1335 |
+
mfp.updateStatus('error', imgSt.tError.replace('%url%', item.src) );
|
1336 |
+
} else {
|
1337 |
+
template.removeClass('mfp-loading');
|
1338 |
+
mfp.updateStatus('ready');
|
1339 |
+
}
|
1340 |
+
return template;
|
1341 |
+
}
|
1342 |
|
1343 |
+
mfp.updateStatus('loading');
|
1344 |
+
item.loading = true;
|
1345 |
|
1346 |
+
if(!item.hasSize) {
|
1347 |
+
item.imgHidden = true;
|
1348 |
template.addClass('mfp-loading');
|
1349 |
+
mfp.findImageSize(item);
|
|
|
|
|
|
|
1350 |
}
|
1351 |
+
|
1352 |
return template;
|
1353 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1354 |
}
|
1355 |
+
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1356 |
|
1357 |
+
/*>>image*/
|
1358 |
|
1359 |
+
/*>>zoom*/
|
1360 |
+
var hasMozTransform,
|
1361 |
+
getHasMozTransform = function() {
|
1362 |
+
if(hasMozTransform === undefined) {
|
1363 |
+
hasMozTransform = document.createElement('p').style.MozTransform !== undefined;
|
1364 |
+
}
|
1365 |
+
return hasMozTransform;
|
1366 |
+
};
|
1367 |
|
1368 |
+
$.magnificPopup.registerModule('zoom', {
|
1369 |
|
1370 |
+
options: {
|
1371 |
+
enabled: false,
|
1372 |
+
easing: 'ease-in-out',
|
1373 |
+
duration: 300,
|
1374 |
+
opener: function(element) {
|
1375 |
+
return element.is('img') ? element : element.find('img');
|
|
|
1376 |
}
|
1377 |
+
},
|
1378 |
|
1379 |
+
proto: {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1380 |
|
1381 |
+
initZoom: function() {
|
1382 |
+
var zoomSt = mfp.st.zoom,
|
1383 |
+
ns = '.zoom',
|
1384 |
+
image;
|
1385 |
|
1386 |
+
if(!zoomSt.enabled || !mfp.supportsTransition) {
|
1387 |
+
return;
|
1388 |
+
}
|
|
|
|
|
|
|
|
|
|
|
1389 |
|
1390 |
+
var duration = zoomSt.duration,
|
1391 |
+
getElToAnimate = function(image) {
|
1392 |
+
var newImg = image.clone().removeAttr('style').removeAttr('class').addClass('mfp-animated-image'),
|
1393 |
+
transition = 'all '+(zoomSt.duration/1000)+'s ' + zoomSt.easing,
|
1394 |
+
cssObj = {
|
1395 |
+
position: 'fixed',
|
1396 |
+
zIndex: 9999,
|
1397 |
+
left: 0,
|
1398 |
+
top: 0,
|
1399 |
+
'-webkit-backface-visibility': 'hidden'
|
1400 |
+
},
|
1401 |
+
t = 'transition';
|
1402 |
+
|
1403 |
+
cssObj['-webkit-'+t] = cssObj['-moz-'+t] = cssObj['-o-'+t] = cssObj[t] = transition;
|
1404 |
+
|
1405 |
+
newImg.css(cssObj);
|
1406 |
+
return newImg;
|
1407 |
+
},
|
1408 |
+
showMainContent = function() {
|
1409 |
+
mfp.content.css('visibility', 'visible');
|
1410 |
+
},
|
1411 |
+
openTimeout,
|
1412 |
+
animatedImg;
|
1413 |
+
|
1414 |
+
_mfpOn('BuildControls'+ns, function() {
|
1415 |
+
if(mfp._allowZoom()) {
|
1416 |
+
|
1417 |
+
clearTimeout(openTimeout);
|
1418 |
+
mfp.content.css('visibility', 'hidden');
|
1419 |
+
|
1420 |
+
// Basically, all code below does is clones existing image, puts in on top of the current one and animated it
|
1421 |
|
1422 |
+
image = mfp._getItemToZoom();
|
|
|
1423 |
|
1424 |
+
if(!image) {
|
1425 |
+
showMainContent();
|
1426 |
+
return;
|
1427 |
+
}
|
1428 |
|
1429 |
+
animatedImg = getElToAnimate(image);
|
|
|
|
|
|
|
1430 |
|
1431 |
+
animatedImg.css( mfp._getOffset() );
|
|
|
|
|
1432 |
|
1433 |
+
mfp.wrap.append(animatedImg);
|
1434 |
|
|
|
|
|
1435 |
openTimeout = setTimeout(function() {
|
1436 |
+
animatedImg.css( mfp._getOffset( true ) );
|
1437 |
+
openTimeout = setTimeout(function() {
|
1438 |
|
1439 |
+
showMainContent();
|
1440 |
|
1441 |
+
setTimeout(function() {
|
1442 |
+
animatedImg.remove();
|
1443 |
+
image = animatedImg = null;
|
1444 |
+
_mfpTrigger('ZoomAnimationEnded');
|
1445 |
+
}, 16); // avoid blink when switching images
|
1446 |
|
1447 |
+
}, duration); // this timeout equals animation duration
|
1448 |
|
1449 |
+
}, 16); // by adding this timeout we avoid short glitch at the beginning of animation
|
1450 |
|
1451 |
|
1452 |
+
// Lots of timeouts...
|
1453 |
+
}
|
1454 |
+
});
|
1455 |
+
_mfpOn(BEFORE_CLOSE_EVENT+ns, function() {
|
1456 |
+
if(mfp._allowZoom()) {
|
1457 |
|
1458 |
+
clearTimeout(openTimeout);
|
1459 |
|
1460 |
+
mfp.st.removalDelay = duration;
|
1461 |
|
|
|
|
|
1462 |
if(!image) {
|
1463 |
+
image = mfp._getItemToZoom();
|
1464 |
+
if(!image) {
|
1465 |
+
return;
|
1466 |
+
}
|
1467 |
+
animatedImg = getElToAnimate(image);
|
1468 |
}
|
1469 |
+
|
1470 |
+
animatedImg.css( mfp._getOffset(true) );
|
1471 |
+
mfp.wrap.append(animatedImg);
|
1472 |
+
mfp.content.css('visibility', 'hidden');
|
1473 |
+
|
1474 |
+
setTimeout(function() {
|
1475 |
+
animatedImg.css( mfp._getOffset() );
|
1476 |
+
}, 16);
|
1477 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1478 |
|
1479 |
+
});
|
1480 |
|
1481 |
+
_mfpOn(CLOSE_EVENT+ns, function() {
|
1482 |
+
if(mfp._allowZoom()) {
|
1483 |
+
showMainContent();
|
1484 |
+
if(animatedImg) {
|
1485 |
+
animatedImg.remove();
|
1486 |
+
}
|
1487 |
+
image = null;
|
1488 |
}
|
1489 |
+
});
|
1490 |
+
},
|
|
|
|
|
1491 |
|
1492 |
+
_allowZoom: function() {
|
1493 |
+
return mfp.currItem.type === 'image';
|
1494 |
+
},
|
1495 |
|
1496 |
+
_getItemToZoom: function() {
|
1497 |
+
if(mfp.currItem.hasSize) {
|
1498 |
+
return mfp.currItem.img;
|
1499 |
+
} else {
|
1500 |
+
return false;
|
1501 |
+
}
|
1502 |
+
},
|
1503 |
|
1504 |
+
// Get element postion relative to viewport
|
1505 |
+
_getOffset: function(isLarge) {
|
1506 |
+
var el;
|
1507 |
+
if(isLarge) {
|
1508 |
+
el = mfp.currItem.img;
|
1509 |
+
} else {
|
1510 |
+
el = mfp.st.zoom.opener(mfp.currItem.el || mfp.currItem);
|
1511 |
+
}
|
1512 |
|
1513 |
+
var offset = el.offset();
|
1514 |
+
var paddingTop = parseInt(el.css('padding-top'),10);
|
1515 |
+
var paddingBottom = parseInt(el.css('padding-bottom'),10);
|
1516 |
+
offset.top -= ( $(window).scrollTop() - paddingTop );
|
1517 |
|
1518 |
|
1519 |
+
/*
|
|
|
|
|
1520 |
|
1521 |
+
Animating left + top + width/height looks glitchy in Firefox, but perfect in Chrome. And vice-versa.
|
|
|
|
|
|
|
|
|
|
|
1522 |
|
1523 |
+
*/
|
1524 |
+
var obj = {
|
1525 |
+
width: el.width(),
|
1526 |
+
// fix Zepto height+padding issue
|
1527 |
+
height: (_isJQ ? el.innerHeight() : el[0].offsetHeight) - paddingBottom - paddingTop
|
1528 |
+
};
|
1529 |
+
|
1530 |
+
// I hate to do this, but there is no another option
|
1531 |
+
if( getHasMozTransform() ) {
|
1532 |
+
obj['-moz-transform'] = obj['transform'] = 'translate(' + offset.left + 'px,' + offset.top + 'px)';
|
1533 |
+
} else {
|
1534 |
+
obj.left = offset.left;
|
1535 |
+
obj.top = offset.top;
|
1536 |
+
}
|
1537 |
+
return obj;
|
1538 |
}
|
1539 |
+
|
1540 |
}
|
1541 |
+
});
|
1542 |
|
|
|
|
|
1543 |
|
1544 |
|
1545 |
+
/*>>zoom*/
|
1546 |
|
1547 |
+
/*>>iframe*/
|
1548 |
|
1549 |
+
var IFRAME_NS = 'iframe',
|
1550 |
+
_emptyPage = '//about:blank',
|
1551 |
|
1552 |
+
_fixIframeBugs = function(isShowing) {
|
1553 |
+
if(mfp.currTemplate[IFRAME_NS]) {
|
1554 |
+
var el = mfp.currTemplate[IFRAME_NS].find('iframe');
|
1555 |
+
if(el.length) {
|
1556 |
+
// reset src after the popup is closed to avoid "video keeps playing after popup is closed" bug
|
1557 |
+
if(!isShowing) {
|
1558 |
+
el[0].src = _emptyPage;
|
1559 |
+
}
|
|
|
|
|
|
|
1560 |
|
1561 |
+
// IE8 black screen bug fix
|
1562 |
+
if(mfp.isIE8) {
|
1563 |
+
el.css('display', isShowing ? 'block' : 'none');
|
1564 |
+
}
|
1565 |
}
|
1566 |
}
|
1567 |
+
};
|
|
|
1568 |
|
1569 |
+
$.magnificPopup.registerModule(IFRAME_NS, {
|
1570 |
|
1571 |
+
options: {
|
1572 |
+
markup: '<div class="mfp-iframe-scaler">'+
|
1573 |
+
'<div class="mfp-close"></div>'+
|
1574 |
+
'<iframe class="mfp-iframe" src="//about:blank" frameborder="0" allowfullscreen></iframe>'+
|
1575 |
+
'</div>',
|
1576 |
|
1577 |
+
srcAction: 'iframe_src',
|
1578 |
|
1579 |
+
// we don't care and support only one default type of URL by default
|
1580 |
+
patterns: {
|
1581 |
+
youtube: {
|
1582 |
+
index: 'youtube.com',
|
1583 |
+
id: 'v=',
|
1584 |
+
src: '//www.youtube.com/embed/%id%?autoplay=1'
|
1585 |
+
},
|
1586 |
+
vimeo: {
|
1587 |
+
index: 'vimeo.com/',
|
1588 |
+
id: '/',
|
1589 |
+
src: '//player.vimeo.com/video/%id%?autoplay=1'
|
1590 |
+
},
|
1591 |
+
gmaps: {
|
1592 |
+
index: '//maps.google.',
|
1593 |
+
src: '%id%&output=embed'
|
1594 |
+
}
|
1595 |
}
|
1596 |
+
},
|
1597 |
+
|
1598 |
+
proto: {
|
1599 |
+
initIframe: function() {
|
1600 |
+
mfp.types.push(IFRAME_NS);
|
1601 |
+
|
1602 |
+
_mfpOn('BeforeChange', function(e, prevType, newType) {
|
1603 |
+
if(prevType !== newType) {
|
1604 |
+
if(prevType === IFRAME_NS) {
|
1605 |
+
_fixIframeBugs(); // iframe if removed
|
1606 |
+
} else if(newType === IFRAME_NS) {
|
1607 |
+
_fixIframeBugs(true); // iframe is showing
|
1608 |
+
}
|
1609 |
+
}// else {
|
|
|
1610 |
// iframe source is switched, don't do anything
|
1611 |
+
//}
|
1612 |
+
});
|
1613 |
|
1614 |
+
_mfpOn(CLOSE_EVENT + '.' + IFRAME_NS, function() {
|
1615 |
+
_fixIframeBugs();
|
1616 |
+
});
|
1617 |
+
},
|
1618 |
|
1619 |
+
getIframe: function(item, template) {
|
1620 |
+
var embedSrc = item.src;
|
1621 |
+
var iframeSt = mfp.st.iframe;
|
1622 |
+
|
1623 |
+
$.each(iframeSt.patterns, function() {
|
1624 |
+
if(embedSrc.indexOf( this.index ) > -1) {
|
1625 |
+
if(this.id) {
|
1626 |
+
if(typeof this.id === 'string') {
|
1627 |
+
embedSrc = embedSrc.substr(embedSrc.lastIndexOf(this.id)+this.id.length, embedSrc.length);
|
1628 |
+
} else {
|
1629 |
+
embedSrc = this.id.call( this, embedSrc );
|
1630 |
+
}
|
1631 |
}
|
1632 |
+
embedSrc = this.src.replace('%id%', embedSrc );
|
1633 |
+
return false; // break;
|
1634 |
}
|
1635 |
+
});
|
1636 |
+
|
1637 |
+
var dataObj = {};
|
1638 |
+
if(iframeSt.srcAction) {
|
1639 |
+
dataObj[iframeSt.srcAction] = embedSrc;
|
1640 |
}
|
1641 |
+
mfp._parseMarkup(template, dataObj, item);
|
|
|
|
|
|
|
|
|
|
|
|
|
1642 |
|
1643 |
+
mfp.updateStatus('ready');
|
1644 |
|
1645 |
+
return template;
|
1646 |
+
}
|
1647 |
}
|
1648 |
+
});
|
|
|
1649 |
|
1650 |
|
1651 |
|
1652 |
+
/*>>iframe*/
|
1653 |
|
1654 |
+
/*>>gallery*/
|
1655 |
+
/**
|
1656 |
+
* Get looped index depending on number of slides
|
1657 |
+
*/
|
1658 |
+
var _getLoopedId = function(index) {
|
1659 |
+
var numSlides = mfp.items.length;
|
1660 |
+
if(index > numSlides - 1) {
|
1661 |
+
return index - numSlides;
|
1662 |
+
} else if(index < 0) {
|
1663 |
+
return numSlides + index;
|
1664 |
+
}
|
1665 |
+
return index;
|
1666 |
+
},
|
1667 |
+
_replaceCurrTotal = function(text, curr, total) {
|
1668 |
+
return text.replace(/%curr%/gi, curr + 1).replace(/%total%/gi, total);
|
1669 |
+
};
|
1670 |
+
|
1671 |
+
$.magnificPopup.registerModule('gallery', {
|
1672 |
|
1673 |
+
options: {
|
1674 |
+
enabled: false,
|
1675 |
+
arrowMarkup: '<button title="%title%" type="button" class="mfp-arrow mfp-arrow-%dir%"></button>',
|
1676 |
+
preload: [0,2],
|
1677 |
+
navigateByImgClick: true,
|
1678 |
+
arrows: true,
|
1679 |
+
|
1680 |
+
tPrev: 'Previous (Left arrow key)',
|
1681 |
+
tNext: 'Next (Right arrow key)',
|
1682 |
+
tCounter: '%curr% of %total%'
|
1683 |
+
},
|
1684 |
|
1685 |
+
proto: {
|
1686 |
+
initGallery: function() {
|
|
|
|
|
|
|
|
|
1687 |
|
1688 |
+
var gSt = mfp.st.gallery,
|
1689 |
+
ns = '.mfp-gallery';
|
|
|
|
|
1690 |
|
1691 |
+
mfp.direction = true; // true - next, false - prev
|
|
|
1692 |
|
1693 |
+
if(!gSt || !gSt.enabled ) return false;
|
|
|
|
|
1694 |
|
1695 |
+
_wrapClasses += ' mfp-gallery';
|
|
|
|
|
1696 |
|
1697 |
+
_mfpOn(OPEN_EVENT+ns, function() {
|
1698 |
|
1699 |
+
if(gSt.navigateByImgClick) {
|
1700 |
+
mfp.wrap.on('click'+ns, '.mfp-img', function() {
|
1701 |
+
if(mfp.items.length > 1) {
|
1702 |
+
mfp.next();
|
1703 |
+
return false;
|
1704 |
+
}
|
1705 |
+
});
|
1706 |
+
}
|
1707 |
|
1708 |
+
_document.on('keydown'+ns, function(e) {
|
1709 |
+
if (e.keyCode === 37) {
|
1710 |
+
mfp.prev();
|
1711 |
+
} else if (e.keyCode === 39) {
|
1712 |
mfp.next();
|
|
|
1713 |
}
|
1714 |
});
|
1715 |
+
});
|
1716 |
|
1717 |
+
_mfpOn('UpdateStatus'+ns, function(e, data) {
|
1718 |
+
if(data.text) {
|
1719 |
+
data.text = _replaceCurrTotal(data.text, mfp.currItem.index, mfp.items.length);
|
|
|
|
|
1720 |
}
|
1721 |
});
|
|
|
1722 |
|
1723 |
+
_mfpOn(MARKUP_PARSE_EVENT+ns, function(e, element, values, item) {
|
1724 |
+
var l = mfp.items.length;
|
1725 |
+
values.counter = l > 1 ? _replaceCurrTotal(gSt.tCounter, item.index, l) : '';
|
1726 |
+
});
|
|
|
1727 |
|
1728 |
+
_mfpOn('BuildControls' + ns, function() {
|
1729 |
+
if(mfp.items.length > 1 && gSt.arrows && !mfp.arrowLeft) {
|
1730 |
+
var markup = gSt.arrowMarkup,
|
1731 |
+
arrowLeft = mfp.arrowLeft = $( markup.replace(/%title%/gi, gSt.tPrev).replace(/%dir%/gi, 'left') ).addClass(PREVENT_CLOSE_CLASS),
|
1732 |
+
arrowRight = mfp.arrowRight = $( markup.replace(/%title%/gi, gSt.tNext).replace(/%dir%/gi, 'right') ).addClass(PREVENT_CLOSE_CLASS);
|
1733 |
+
|
1734 |
+
arrowLeft.click(function() {
|
1735 |
+
mfp.prev();
|
1736 |
+
});
|
1737 |
+
arrowRight.click(function() {
|
1738 |
+
mfp.next();
|
1739 |
+
});
|
1740 |
|
1741 |
+
mfp.container.append(arrowLeft.add(arrowRight));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1742 |
}
|
1743 |
+
});
|
1744 |
|
1745 |
+
_mfpOn(CHANGE_EVENT+ns, function() {
|
1746 |
+
if(mfp._preloadTimeout) clearTimeout(mfp._preloadTimeout);
|
|
|
1747 |
|
1748 |
+
mfp._preloadTimeout = setTimeout(function() {
|
1749 |
+
mfp.preloadNearbyImages();
|
1750 |
+
mfp._preloadTimeout = null;
|
1751 |
+
}, 16);
|
1752 |
+
});
|
1753 |
|
|
|
|
|
|
|
|
|
|
|
1754 |
|
1755 |
+
_mfpOn(CLOSE_EVENT+ns, function() {
|
1756 |
+
_document.off(ns);
|
1757 |
+
mfp.wrap.off('click'+ns);
|
1758 |
+
mfp.arrowRight = mfp.arrowLeft = null;
|
1759 |
+
});
|
1760 |
|
1761 |
+
},
|
1762 |
+
next: function() {
|
1763 |
+
mfp.direction = true;
|
1764 |
+
mfp.index = _getLoopedId(mfp.index + 1);
|
1765 |
+
mfp.updateItemHTML();
|
1766 |
+
},
|
1767 |
+
prev: function() {
|
1768 |
+
mfp.direction = false;
|
1769 |
+
mfp.index = _getLoopedId(mfp.index - 1);
|
1770 |
+
mfp.updateItemHTML();
|
1771 |
+
},
|
1772 |
+
goTo: function(newIndex) {
|
1773 |
+
mfp.direction = (newIndex >= mfp.index);
|
1774 |
+
mfp.index = newIndex;
|
1775 |
+
mfp.updateItemHTML();
|
1776 |
+
},
|
1777 |
+
preloadNearbyImages: function() {
|
1778 |
+
var p = mfp.st.gallery.preload,
|
1779 |
+
preloadBefore = Math.min(p[0], mfp.items.length),
|
1780 |
+
preloadAfter = Math.min(p[1], mfp.items.length),
|
1781 |
+
i;
|
1782 |
+
|
1783 |
+
for(i = 1; i <= (mfp.direction ? preloadAfter : preloadBefore); i++) {
|
1784 |
+
mfp._preloadItem(mfp.index+i);
|
1785 |
}
|
1786 |
+
for(i = 1; i <= (mfp.direction ? preloadBefore : preloadAfter); i++) {
|
1787 |
+
mfp._preloadItem(mfp.index-i);
|
1788 |
+
}
|
1789 |
+
},
|
1790 |
+
_preloadItem: function(index) {
|
1791 |
+
index = _getLoopedId(index);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1792 |
|
1793 |
+
if(mfp.items[index].preloaded) {
|
1794 |
+
return;
|
1795 |
+
}
|
1796 |
|
1797 |
+
var item = mfp.items[index];
|
1798 |
+
if(!item.parsed) {
|
1799 |
+
item = mfp.parseEl( index );
|
1800 |
+
}
|
1801 |
|
1802 |
+
_mfpTrigger('LazyLoad', item);
|
1803 |
|
1804 |
+
if(item.type === 'image') {
|
1805 |
+
item.img = $('<img class="mfp-img" />').on('load.mfploader', function() {
|
1806 |
+
item.hasSize = true;
|
1807 |
+
}).on('error.mfploader', function() {
|
1808 |
+
item.hasSize = true;
|
1809 |
+
item.loadError = true;
|
1810 |
+
_mfpTrigger('LazyLoadError', item);
|
1811 |
+
}).attr('src', item.src);
|
1812 |
+
}
|
1813 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1814 |
|
1815 |
+
item.preloaded = true;
|
|
|
|
|
|
|
1816 |
}
|
1817 |
}
|
1818 |
});
|
|
|
|
|
|
|
|
|
|
|
1819 |
|
1820 |
+
/*>>gallery*/
|
1821 |
|
1822 |
+
/*>>retina*/
|
1823 |
|
1824 |
+
var RETINA_NS = 'retina';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1825 |
|
1826 |
+
$.magnificPopup.registerModule(RETINA_NS, {
|
1827 |
+
options: {
|
1828 |
+
replaceSrc: function(item) {
|
1829 |
+
return item.src.replace(/\.\w+$/, function(m) { return '@2x' + m; });
|
1830 |
+
},
|
1831 |
+
ratio: 1 // Function or number. Set to 1 to disable.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1832 |
},
|
1833 |
+
proto: {
|
1834 |
+
initRetina: function() {
|
1835 |
+
if(window.devicePixelRatio > 1) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1836 |
|
1837 |
+
var st = mfp.st.retina,
|
1838 |
+
ratio = st.ratio;
|
|
|
1839 |
|
1840 |
+
ratio = !isNaN(ratio) ? ratio : ratio();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1841 |
|
1842 |
+
if(ratio > 1) {
|
1843 |
+
_mfpOn('ImageHasSize' + '.' + RETINA_NS, function(e, item) {
|
1844 |
+
item.img.css({
|
1845 |
+
'max-width': item.img[0].naturalWidth / ratio,
|
1846 |
+
'width': '100%'
|
1847 |
+
});
|
1848 |
+
});
|
1849 |
+
_mfpOn('ElementParse' + '.' + RETINA_NS, function(e, item) {
|
1850 |
+
item.src = st.replaceSrc(item, ratio);
|
1851 |
+
});
|
1852 |
+
}
|
1853 |
}
|
|
|
|
|
|
|
1854 |
|
1855 |
+
}
|
1856 |
+
}
|
1857 |
+
});
|
|
|
|
|
1858 |
|
1859 |
+
/*>>retina*/
|
1860 |
+
_checkInstance(); }));
|
assets/js/jquery.magnific-popup.min.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
-
/*! Magnific Popup - v1.
|
2 |
-
* http://dimsemenov.com/plugins/magnific-popup/
|
3 |
-
* Copyright (c)
|
4 |
-
!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):window.jQuery||window.Zepto)}(function(a){var b,c,d,e,f,g,h="Close",i="BeforeClose",j="AfterClose",k="BeforeAppend",l="MarkupParse",m="Open",n="Change",o="mfp",p="."+o,q="mfp-ready",r="mfp-removing",s="mfp-prevent-close",t=function(){},u=!!window.jQuery,v=a(window),w=function(a,c){b.ev.on(o+a+p,c)},x=function(b,c,d,e){var f=document.createElement("div");return f.className="mfp-"+b,d&&(f.innerHTML=d),e?c&&c.appendChild(f):(f=a(f),c&&f.appendTo(c)),f},y=function(c,d){b.ev.triggerHandler(o+c,d),b.st.callbacks&&(c=c.charAt(0).toLowerCase()+c.slice(1),b.st.callbacks[c]&&b.st.callbacks[c].apply(b,a.isArray(d)?d:[d]))},z=function(c){return c===g&&b.currTemplate.closeBtn||(b.currTemplate.closeBtn=a(b.st.closeMarkup.replace("%title%",b.st.tClose)),g=c),b.currTemplate.closeBtn},A=function(){a.magnificPopup.instance||(b=new t,b.init(),a.magnificPopup.instance=b)},B=function(){var a=document.createElement("p").style,b=["ms","O","Moz","Webkit"];if(void 0!==a.transition)return!0;for(;b.length;)if(b.pop()+"Transition"in a)return!0;return!1};t.prototype={constructor:t,init:function(){var c=navigator.appVersion;b.isIE7=-1!==c.indexOf("MSIE 7."),b.isIE8=-1!==c.indexOf("MSIE 8."),b.isLowIE=b.isIE7||b.isIE8,b.isAndroid=/android/gi.test(c),b.isIOS=/iphone|ipad|ipod/gi.test(c),b.supportsTransition=B(),b.probablyMobile=b.isAndroid||b.isIOS||/(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent),d=a(document),b.popupsCache={}},open:function(c){var e;if(c.isObj===!1){b.items=c.items.toArray(),b.index=0;var g,h=c.items;for(e=0;e<h.length;e++)if(g=h[e],g.parsed&&(g=g.el[0]),g===c.el[0]){b.index=e;break}}else b.items=a.isArray(c.items)?c.items:[c.items],b.index=c.index||0;if(b.isOpen)return void b.updateItemHTML();b.types=[],f="",c.mainEl&&c.mainEl.length?b.ev=c.mainEl.eq(0):b.ev=d,c.key?(b.popupsCache[c.key]||(b.popupsCache[c.key]={}),b.currTemplate=b.popupsCache[c.key]):b.currTemplate={},b.st=a.extend(!0,{},a.magnificPopup.defaults,c),b.fixedContentPos="auto"===b.st.fixedContentPos?!b.probablyMobile:b.st.fixedContentPos,b.st.modal&&(b.st.closeOnContentClick=!1,b.st.closeOnBgClick=!1,b.st.showCloseBtn=!1,b.st.enableEscapeKey=!1),b.bgOverlay||(b.bgOverlay=x("bg").on("click"+p,function(){b.close()}),b.wrap=x("wrap").attr("tabindex",-1).on("click"+p,function(a){b._checkIfClose(a.target)&&b.close()}),b.container=x("container",b.wrap)),b.contentContainer=x("content"),b.st.preloader&&(b.preloader=x("preloader",b.container,b.st.tLoading));var i=a.magnificPopup.modules;for(e=0;e<i.length;e++){var j=i[e];j=j.charAt(0).toUpperCase()+j.slice(1),b["init"+j].call(b)}y("BeforeOpen"),b.st.showCloseBtn&&(b.st.closeBtnInside?(w(l,function(a,b,c,d){c.close_replaceWith=z(d.type)}),f+=" mfp-close-btn-in"):b.wrap.append(z())),b.st.alignTop&&(f+=" mfp-align-top"),b.fixedContentPos?b.wrap.css({overflow:b.st.overflowY,overflowX:"hidden",overflowY:b.st.overflowY}):b.wrap.css({top:v.scrollTop(),position:"absolute"}),(b.st.fixedBgPos===!1||"auto"===b.st.fixedBgPos&&!b.fixedContentPos)&&b.bgOverlay.css({height:d.height(),position:"absolute"}),b.st.enableEscapeKey&&d.on("keyup"+p,function(a){27===a.keyCode&&b.close()}),v.on("resize"+p,function(){b.updateSize()}),b.st.closeOnContentClick||(f+=" mfp-auto-cursor"),f&&b.wrap.addClass(f);var k=b.wH=v.height(),n={};if(b.fixedContentPos&&b._hasScrollBar(k)){var o=b._getScrollbarSize();o&&(n.marginRight=o)}b.fixedContentPos&&(b.isIE7?a("body, html").css("overflow","hidden"):n.overflow="hidden");var r=b.st.mainClass;return b.isIE7&&(r+=" mfp-ie7"),r&&b._addClassToMFP(r),b.updateItemHTML(),y("BuildControls"),a("html").css(n),b.bgOverlay.add(b.wrap).prependTo(b.st.prependTo||a(document.body)),b._lastFocusedEl=document.activeElement,setTimeout(function(){b.content?(b._addClassToMFP(q),b._setFocus()):b.bgOverlay.addClass(q),d.on("focusin"+p,b._onFocusIn)},16),b.isOpen=!0,b.updateSize(k),y(m),c},close:function(){b.isOpen&&(y(i),b.isOpen=!1,b.st.removalDelay&&!b.isLowIE&&b.supportsTransition?(b._addClassToMFP(r),setTimeout(function(){b._close()},b.st.removalDelay)):b._close())},_close:function(){y(h);var c=r+" "+q+" ";if(b.bgOverlay.detach(),b.wrap.detach(),b.container.empty(),b.st.mainClass&&(c+=b.st.mainClass+" "),b._removeClassFromMFP(c),b.fixedContentPos){var e={marginRight:""};b.isIE7?a("body, html").css("overflow",""):e.overflow="",a("html").css(e)}d.off("keyup"+p+" focusin"+p),b.ev.off(p),b.wrap.attr("class","mfp-wrap").removeAttr("style"),b.bgOverlay.attr("class","mfp-bg"),b.container.attr("class","mfp-container"),!b.st.showCloseBtn||b.st.closeBtnInside&&b.currTemplate[b.currItem.type]!==!0||b.currTemplate.closeBtn&&b.currTemplate.closeBtn.detach(),b._lastFocusedEl&&a(b._lastFocusedEl).focus(),b.currItem=null,b.content=null,b.currTemplate=null,b.prevHeight=0,y(j)},updateSize:function(a){if(b.isIOS){var c=document.documentElement.clientWidth/window.innerWidth,d=window.innerHeight*c;b.wrap.css("height",d),b.wH=d}else b.wH=a||v.height();b.fixedContentPos||b.wrap.css("height",b.wH),y("Resize")},updateItemHTML:function(){var c=b.items[b.index];b.contentContainer.detach(),b.content&&b.content.detach(),c.parsed||(c=b.parseEl(b.index));var d=c.type;if(y("BeforeChange",[b.currItem?b.currItem.type:"",d]),b.currItem=c,!b.currTemplate[d]){var f=b.st[d]?b.st[d].markup:!1;y("FirstMarkupParse",f),f?b.currTemplate[d]=a(f):b.currTemplate[d]=!0}e&&e!==c.type&&b.container.removeClass("mfp-"+e+"-holder");var g=b["get"+d.charAt(0).toUpperCase()+d.slice(1)](c,b.currTemplate[d]);b.appendContent(g,d),c.preloaded=!0,y(n,c),e=c.type,b.container.prepend(b.contentContainer),y("AfterChange")},appendContent:function(a,c){b.content=a,a?b.st.showCloseBtn&&b.st.closeBtnInside&&b.currTemplate[c]===!0?b.content.find(".mfp-close").length||b.content.append(z()):b.content=a:b.content="",y(k),b.container.addClass("mfp-"+c+"-holder"),b.contentContainer.append(b.content)},parseEl:function(c){var d,e=b.items[c];if(e.tagName?e={el:a(e)}:(d=e.type,e={data:e,src:e.src}),e.el){for(var f=b.types,g=0;g<f.length;g++)if(e.el.hasClass("mfp-"+f[g])){d=f[g];break}e.src=e.el.attr("data-mfp-src"),e.src||(e.src=e.el.attr("href"))}return e.type=d||b.st.type||"inline",e.index=c,e.parsed=!0,b.items[c]=e,y("ElementParse",e),b.items[c]},addGroup:function(a,c){var d=function(d){d.mfpEl=this,b._openClick(d,a,c)};c||(c={});var e="click.magnificPopup";c.mainEl=a,c.items?(c.isObj=!0,a.off(e).on(e,d)):(c.isObj=!1,c.delegate?a.off(e).on(e,c.delegate,d):(c.items=a,a.off(e).on(e,d)))},_openClick:function(c,d,e){var f=void 0!==e.midClick?e.midClick:a.magnificPopup.defaults.midClick;if(f||!(2===c.which||c.ctrlKey||c.metaKey||c.altKey||c.shiftKey)){var g=void 0!==e.disableOn?e.disableOn:a.magnificPopup.defaults.disableOn;if(g)if(a.isFunction(g)){if(!g.call(b))return!0}else if(v.width()<g)return!0;c.type&&(c.preventDefault(),b.isOpen&&c.stopPropagation()),e.el=a(c.mfpEl),e.delegate&&(e.items=d.find(e.delegate)),b.open(e)}},updateStatus:function(a,d){if(b.preloader){c!==a&&b.container.removeClass("mfp-s-"+c),d||"loading"!==a||(d=b.st.tLoading);var e={status:a,text:d};y("UpdateStatus",e),a=e.status,d=e.text,b.preloader.html(d),b.preloader.find("a").on("click",function(a){a.stopImmediatePropagation()}),b.container.addClass("mfp-s-"+a),c=a}},_checkIfClose:function(c){if(!a(c).hasClass(s)){var d=b.st.closeOnContentClick,e=b.st.closeOnBgClick;if(d&&e)return!0;if(!b.content||a(c).hasClass("mfp-close")||b.preloader&&c===b.preloader[0])return!0;if(c===b.content[0]||a.contains(b.content[0],c)){if(d)return!0}else if(e&&a.contains(document,c))return!0;return!1}},_addClassToMFP:function(a){b.bgOverlay.addClass(a),b.wrap.addClass(a)},_removeClassFromMFP:function(a){this.bgOverlay.removeClass(a),b.wrap.removeClass(a)},_hasScrollBar:function(a){return(b.isIE7?d.height():document.body.scrollHeight)>(a||v.height())},_setFocus:function(){(b.st.focus?b.content.find(b.st.focus).eq(0):b.wrap).focus()},_onFocusIn:function(c){return c.target===b.wrap[0]||a.contains(b.wrap[0],c.target)?void 0:(b._setFocus(),!1)},_parseMarkup:function(b,c,d){var e;d.data&&(c=a.extend(d.data,c)),y(l,[b,c,d]),a.each(c,function(a,c){if(void 0===c||c===!1)return!0;if(e=a.split("_"),e.length>1){var d=b.find(p+"-"+e[0]);if(d.length>0){var f=e[1];"replaceWith"===f?d[0]!==c[0]&&d.replaceWith(c):"img"===f?d.is("img")?d.attr("src",c):d.replaceWith('<img src="'+c+'" class="'+d.attr("class")+'" />'):d.attr(e[1],c)}}else b.find(p+"-"+a).html(c)})},_getScrollbarSize:function(){if(void 0===b.scrollbarSize){var a=document.createElement("div");a.style.cssText="width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;",document.body.appendChild(a),b.scrollbarSize=a.offsetWidth-a.clientWidth,document.body.removeChild(a)}return b.scrollbarSize}},a.magnificPopup={instance:null,proto:t.prototype,modules:[],open:function(b,c){return A(),b=b?a.extend(!0,{},b):{},b.isObj=!0,b.index=c||0,this.instance.open(b)},close:function(){return a.magnificPopup.instance&&a.magnificPopup.instance.close()},registerModule:function(b,c){c.options&&(a.magnificPopup.defaults[b]=c.options),a.extend(this.proto,c.proto),this.modules.push(b)},defaults:{disableOn:0,key:null,midClick:!1,mainClass:"",preloader:!0,focus:"",closeOnContentClick:!1,closeOnBgClick:!0,closeBtnInside:!0,showCloseBtn:!0,enableEscapeKey:!0,modal:!1,alignTop:!1,removalDelay:0,prependTo:null,fixedContentPos:"auto",fixedBgPos:"auto",overflowY:"auto",closeMarkup:'<button title="%title%" type="button" class="mfp-close">×</button>',tClose:"Close (Esc)",tLoading:"Loading..."}},a.fn.magnificPopup=function(c){A();var d=a(this);if("string"==typeof c)if("open"===c){var e,f=u?d.data("magnificPopup"):d[0].magnificPopup,g=parseInt(arguments[1],10)||0;f.items?e=f.items[g]:(e=d,f.delegate&&(e=e.find(f.delegate)),e=e.eq(g)),b._openClick({mfpEl:e},d,f)}else b.isOpen&&b[c].apply(b,Array.prototype.slice.call(arguments,1));else c=a.extend(!0,{},c),u?d.data("magnificPopup",c):d[0].magnificPopup=c,b.addGroup(d,c);return d};var C,D,E,F="inline",G=function(){E&&(D.after(E.addClass(C)).detach(),E=null)};a.magnificPopup.registerModule(F,{options:{hiddenClass:"hide",markup:"",tNotFound:"Content not found"},proto:{initInline:function(){b.types.push(F),w(h+"."+F,function(){G()})},getInline:function(c,d){if(G(),c.src){var e=b.st.inline,f=a(c.src);if(f.length){var g=f[0].parentNode;g&&g.tagName&&(D||(C=e.hiddenClass,D=x(C),C="mfp-"+C),E=f.after(D).detach().removeClass(C)),b.updateStatus("ready")}else b.updateStatus("error",e.tNotFound),f=a("<div>");return c.inlineElement=f,f}return b.updateStatus("ready"),b._parseMarkup(d,{},c),d}}});var H,I="ajax",J=function(){H&&a(document.body).removeClass(H)},K=function(){J(),b.req&&b.req.abort()};a.magnificPopup.registerModule(I,{options:{settings:null,cursor:"mfp-ajax-cur",tError:'<a href="%url%">The content</a> could not be loaded.'},proto:{initAjax:function(){b.types.push(I),H=b.st.ajax.cursor,w(h+"."+I,K),w("BeforeChange."+I,K)},getAjax:function(c){H&&a(document.body).addClass(H),b.updateStatus("loading");var d=a.extend({url:c.src,success:function(d,e,f){var g={data:d,xhr:f};y("ParseAjax",g),b.appendContent(a(g.data),I),c.finished=!0,J(),b._setFocus(),setTimeout(function(){b.wrap.addClass(q)},16),b.updateStatus("ready"),y("AjaxContentAdded")},error:function(){J(),c.finished=c.loadError=!0,b.updateStatus("error",b.st.ajax.tError.replace("%url%",c.src))}},b.st.ajax.settings);return b.req=a.ajax(d),""}}});var L,M=function(c){if(c.data&&void 0!==c.data.title)return c.data.title;var d=b.st.image.titleSrc;if(d){if(a.isFunction(d))return d.call(b,c);if(c.el)return c.el.attr(d)||""}return""};a.magnificPopup.registerModule("image",{options:{markup:'<div class="mfp-figure"><div class="mfp-close"></div><figure><div class="mfp-img"></div><figcaption><div class="mfp-bottom-bar"><div class="mfp-title"></div><div class="mfp-counter"></div></div></figcaption></figure></div>',cursor:"mfp-zoom-out-cur",titleSrc:"title",verticalFit:!0,tError:'<a href="%url%">The image</a> could not be loaded.'},proto:{initImage:function(){var c=b.st.image,d=".image";b.types.push("image"),w(m+d,function(){"image"===b.currItem.type&&c.cursor&&a(document.body).addClass(c.cursor)}),w(h+d,function(){c.cursor&&a(document.body).removeClass(c.cursor),v.off("resize"+p)}),w("Resize"+d,b.resizeImage),b.isLowIE&&w("AfterChange",b.resizeImage)},resizeImage:function(){var a=b.currItem;if(a&&a.img&&b.st.image.verticalFit){var c=0;b.isLowIE&&(c=parseInt(a.img.css("padding-top"),10)+parseInt(a.img.css("padding-bottom"),10)),a.img.css("max-height",b.wH-c)}},_onImageHasSize:function(a){a.img&&(a.hasSize=!0,L&&clearInterval(L),a.isCheckingImgSize=!1,y("ImageHasSize",a),a.imgHidden&&(b.content&&b.content.removeClass("mfp-loading"),a.imgHidden=!1))},findImageSize:function(a){var c=0,d=a.img[0],e=function(f){L&&clearInterval(L),L=setInterval(function(){return d.naturalWidth>0?void b._onImageHasSize(a):(c>200&&clearInterval(L),c++,void(3===c?e(10):40===c?e(50):100===c&&e(500)))},f)};e(1)},getImage:function(c,d){var e=0,f=function(){c&&(c.img[0].complete?(c.img.off(".mfploader"),c===b.currItem&&(b._onImageHasSize(c),b.updateStatus("ready")),c.hasSize=!0,c.loaded=!0,y("ImageLoadComplete")):(e++,200>e?setTimeout(f,100):g()))},g=function(){c&&(c.img.off(".mfploader"),c===b.currItem&&(b._onImageHasSize(c),b.updateStatus("error",h.tError.replace("%url%",c.src))),c.hasSize=!0,c.loaded=!0,c.loadError=!0)},h=b.st.image,i=d.find(".mfp-img");if(i.length){var j=document.createElement("img");j.className="mfp-img",c.el&&c.el.find("img").length&&(j.alt=c.el.find("img").attr("alt")),c.img=a(j).on("load.mfploader",f).on("error.mfploader",g),j.src=c.src,i.is("img")&&(c.img=c.img.clone()),j=c.img[0],j.naturalWidth>0?c.hasSize=!0:j.width||(c.hasSize=!1)}return b._parseMarkup(d,{title:M(c),img_replaceWith:c.img},c),b.resizeImage(),c.hasSize?(L&&clearInterval(L),c.loadError?(d.addClass("mfp-loading"),b.updateStatus("error",h.tError.replace("%url%",c.src))):(d.removeClass("mfp-loading"),b.updateStatus("ready")),d):(b.updateStatus("loading"),c.loading=!0,c.hasSize||(c.imgHidden=!0,d.addClass("mfp-loading"),b.findImageSize(c)),d)}}});var N,O=function(){return void 0===N&&(N=void 0!==document.createElement("p").style.MozTransform),N};a.magnificPopup.registerModule("zoom",{options:{enabled:!1,easing:"ease-in-out",duration:300,opener:function(a){return a.is("img")?a:a.find("img")}},proto:{initZoom:function(){var a,c=b.st.zoom,d=".zoom";if(c.enabled&&b.supportsTransition){var e,f,g=c.duration,j=function(a){var b=a.clone().removeAttr("style").removeAttr("class").addClass("mfp-animated-image"),d="all "+c.duration/1e3+"s "+c.easing,e={position:"fixed",zIndex:9999,left:0,top:0,"-webkit-backface-visibility":"hidden"},f="transition";return e["-webkit-"+f]=e["-moz-"+f]=e["-o-"+f]=e[f]=d,b.css(e),b},k=function(){b.content.css("visibility","visible")};w("BuildControls"+d,function(){if(b._allowZoom()){if(clearTimeout(e),b.content.css("visibility","hidden"),a=b._getItemToZoom(),!a)return void k();f=j(a),f.css(b._getOffset()),b.wrap.append(f),e=setTimeout(function(){f.css(b._getOffset(!0)),e=setTimeout(function(){k(),setTimeout(function(){f.remove(),a=f=null,y("ZoomAnimationEnded")},16)},g)},16)}}),w(i+d,function(){if(b._allowZoom()){if(clearTimeout(e),b.st.removalDelay=g,!a){if(a=b._getItemToZoom(),!a)return;f=j(a)}f.css(b._getOffset(!0)),b.wrap.append(f),b.content.css("visibility","hidden"),setTimeout(function(){f.css(b._getOffset())},16)}}),w(h+d,function(){b._allowZoom()&&(k(),f&&f.remove(),a=null)})}},_allowZoom:function(){return"image"===b.currItem.type},_getItemToZoom:function(){return b.currItem.hasSize?b.currItem.img:!1},_getOffset:function(c){var d;d=c?b.currItem.img:b.st.zoom.opener(b.currItem.el||b.currItem);var e=d.offset(),f=parseInt(d.css("padding-top"),10),g=parseInt(d.css("padding-bottom"),10);e.top-=a(window).scrollTop()-f;var h={width:d.width(),height:(u?d.innerHeight():d[0].offsetHeight)-g-f};return O()?h["-moz-transform"]=h.transform="translate("+e.left+"px,"+e.top+"px)":(h.left=e.left,h.top=e.top),h}}});var P="iframe",Q="//about:blank",R=function(a){if(b.currTemplate[P]){var c=b.currTemplate[P].find("iframe");c.length&&(a||(c[0].src=Q),b.isIE8&&c.css("display",a?"block":"none"))}};a.magnificPopup.registerModule(P,{options:{markup:'<div class="mfp-iframe-scaler"><div class="mfp-close"></div><iframe class="mfp-iframe" src="//about:blank" frameborder="0" allowfullscreen></iframe></div>',srcAction:"iframe_src",patterns:{youtube:{index:"youtube.com",id:"v=",src:"//www.youtube.com/embed/%id%?autoplay=1"},vimeo:{index:"vimeo.com/",id:"/",src:"//player.vimeo.com/video/%id%?autoplay=1"},gmaps:{index:"//maps.google.",src:"%id%&output=embed"}}},proto:{initIframe:function(){b.types.push(P),w("BeforeChange",function(a,b,c){b!==c&&(b===P?R():c===P&&R(!0))}),w(h+"."+P,function(){R()})},getIframe:function(c,d){var e=c.src,f=b.st.iframe;a.each(f.patterns,function(){return e.indexOf(this.index)>-1?(this.id&&(e="string"==typeof this.id?e.substr(e.lastIndexOf(this.id)+this.id.length,e.length):this.id.call(this,e)),e=this.src.replace("%id%",e),!1):void 0});var g={};return f.srcAction&&(g[f.srcAction]=e),b._parseMarkup(d,g,c),b.updateStatus("ready"),d}}});var S=function(a){var c=b.items.length;return a>c-1?a-c:0>a?c+a:a},T=function(a,b,c){return a.replace(/%curr%/gi,b+1).replace(/%total%/gi,c)};a.magnificPopup.registerModule("gallery",{options:{enabled:!1,arrowMarkup:'<button title="%title%" type="button" class="mfp-arrow mfp-arrow-%dir%"></button>',preload:[0,2],navigateByImgClick:!0,arrows:!0,tPrev:"Previous (Left arrow key)",tNext:"Next (Right arrow key)",tCounter:"%curr% of %total%"},proto:{initGallery:function(){var c=b.st.gallery,e=".mfp-gallery",g=Boolean(a.fn.mfpFastClick);return b.direction=!0,c&&c.enabled?(f+=" mfp-gallery",w(m+e,function(){c.navigateByImgClick&&b.wrap.on("click"+e,".mfp-img",function(){return b.items.length>1?(b.next(),!1):void 0}),d.on("keydown"+e,function(a){37===a.keyCode?b.prev():39===a.keyCode&&b.next()})}),w("UpdateStatus"+e,function(a,c){c.text&&(c.text=T(c.text,b.currItem.index,b.items.length))}),w(l+e,function(a,d,e,f){var g=b.items.length;e.counter=g>1?T(c.tCounter,f.index,g):""}),w("BuildControls"+e,function(){if(b.items.length>1&&c.arrows&&!b.arrowLeft){var d=c.arrowMarkup,e=b.arrowLeft=a(d.replace(/%title%/gi,c.tPrev).replace(/%dir%/gi,"left")).addClass(s),f=b.arrowRight=a(d.replace(/%title%/gi,c.tNext).replace(/%dir%/gi,"right")).addClass(s),h=g?"mfpFastClick":"click";e[h](function(){b.prev()}),f[h](function(){b.next()}),b.isIE7&&(x("b",e[0],!1,!0),x("a",e[0],!1,!0),x("b",f[0],!1,!0),x("a",f[0],!1,!0)),b.container.append(e.add(f))}}),w(n+e,function(){b._preloadTimeout&&clearTimeout(b._preloadTimeout),b._preloadTimeout=setTimeout(function(){b.preloadNearbyImages(),b._preloadTimeout=null},16)}),void w(h+e,function(){d.off(e),b.wrap.off("click"+e),b.arrowLeft&&g&&b.arrowLeft.add(b.arrowRight).destroyMfpFastClick(),b.arrowRight=b.arrowLeft=null})):!1},next:function(){b.direction=!0,b.index=S(b.index+1),b.updateItemHTML()},prev:function(){b.direction=!1,b.index=S(b.index-1),b.updateItemHTML()},goTo:function(a){b.direction=a>=b.index,b.index=a,b.updateItemHTML()},preloadNearbyImages:function(){var a,c=b.st.gallery.preload,d=Math.min(c[0],b.items.length),e=Math.min(c[1],b.items.length);for(a=1;a<=(b.direction?e:d);a++)b._preloadItem(b.index+a);for(a=1;a<=(b.direction?d:e);a++)b._preloadItem(b.index-a)},_preloadItem:function(c){if(c=S(c),!b.items[c].preloaded){var d=b.items[c];d.parsed||(d=b.parseEl(c)),y("LazyLoad",d),"image"===d.type&&(d.img=a('<img class="mfp-img" />').on("load.mfploader",function(){d.hasSize=!0}).on("error.mfploader",function(){d.hasSize=!0,d.loadError=!0,y("LazyLoadError",d)}).attr("src",d.src)),d.preloaded=!0}}}});var U="retina";a.magnificPopup.registerModule(U,{options:{replaceSrc:function(a){return a.src.replace(/\.\w+$/,function(a){return"@2x"+a})},ratio:1},proto:{initRetina:function(){if(window.devicePixelRatio>1){var a=b.st.retina,c=a.ratio;c=isNaN(c)?c():c,c>1&&(w("ImageHasSize."+U,function(a,b){b.img.css({"max-width":b.img[0].naturalWidth/c,width:"100%"})}),w("ElementParse."+U,function(b,d){d.src=a.replaceSrc(d,c)}))}}}}),function(){var b=1e3,c="ontouchstart"in window,d=function(){v.off("touchmove"+f+" touchend"+f)},e="mfpFastClick",f="."+e;a.fn.mfpFastClick=function(e){return a(this).each(function(){var g,h=a(this);if(c){var i,j,k,l,m,n;h.on("touchstart"+f,function(a){l=!1,n=1,m=a.originalEvent?a.originalEvent.touches[0]:a.touches[0],j=m.clientX,k=m.clientY,v.on("touchmove"+f,function(a){m=a.originalEvent?a.originalEvent.touches:a.touches,n=m.length,m=m[0],(Math.abs(m.clientX-j)>10||Math.abs(m.clientY-k)>10)&&(l=!0,d())}).on("touchend"+f,function(a){d(),l||n>1||(g=!0,a.preventDefault(),clearTimeout(i),i=setTimeout(function(){g=!1},b),e())})})}h.on("click"+f,function(){g||e()})})},a.fn.destroyMfpFastClick=function(){a(this).off("touchstart"+f+" click"+f),c&&v.off("touchmove"+f+" touchend"+f)}}(),A()});
|
1 |
+
/*! Magnific Popup - v1.1.0 - 2016-02-20
|
2 |
+
* http://dimsemenov.com/plugins/magnific-popup/
|
3 |
+
* Copyright (c) 2016 Dmitry Semenov; */
|
4 |
+
!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):window.jQuery||window.Zepto)}(function(a){var b,c,d,e,f,g,h="Close",i="BeforeClose",j="AfterClose",k="BeforeAppend",l="MarkupParse",m="Open",n="Change",o="mfp",p="."+o,q="mfp-ready",r="mfp-removing",s="mfp-prevent-close",t=function(){},u=!!window.jQuery,v=a(window),w=function(a,c){b.ev.on(o+a+p,c)},x=function(b,c,d,e){var f=document.createElement("div");return f.className="mfp-"+b,d&&(f.innerHTML=d),e?c&&c.appendChild(f):(f=a(f),c&&f.appendTo(c)),f},y=function(c,d){b.ev.triggerHandler(o+c,d),b.st.callbacks&&(c=c.charAt(0).toLowerCase()+c.slice(1),b.st.callbacks[c]&&b.st.callbacks[c].apply(b,a.isArray(d)?d:[d]))},z=function(c){return c===g&&b.currTemplate.closeBtn||(b.currTemplate.closeBtn=a(b.st.closeMarkup.replace("%title%",b.st.tClose)),g=c),b.currTemplate.closeBtn},A=function(){a.magnificPopup.instance||(b=new t,b.init(),a.magnificPopup.instance=b)},B=function(){var a=document.createElement("p").style,b=["ms","O","Moz","Webkit"];if(void 0!==a.transition)return!0;for(;b.length;)if(b.pop()+"Transition"in a)return!0;return!1};t.prototype={constructor:t,init:function(){var c=navigator.appVersion;b.isLowIE=b.isIE8=document.all&&!document.addEventListener,b.isAndroid=/android/gi.test(c),b.isIOS=/iphone|ipad|ipod/gi.test(c),b.supportsTransition=B(),b.probablyMobile=b.isAndroid||b.isIOS||/(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent),d=a(document),b.popupsCache={}},open:function(c){var e;if(c.isObj===!1){b.items=c.items.toArray(),b.index=0;var g,h=c.items;for(e=0;e<h.length;e++)if(g=h[e],g.parsed&&(g=g.el[0]),g===c.el[0]){b.index=e;break}}else b.items=a.isArray(c.items)?c.items:[c.items],b.index=c.index||0;if(b.isOpen)return void b.updateItemHTML();b.types=[],f="",c.mainEl&&c.mainEl.length?b.ev=c.mainEl.eq(0):b.ev=d,c.key?(b.popupsCache[c.key]||(b.popupsCache[c.key]={}),b.currTemplate=b.popupsCache[c.key]):b.currTemplate={},b.st=a.extend(!0,{},a.magnificPopup.defaults,c),b.fixedContentPos="auto"===b.st.fixedContentPos?!b.probablyMobile:b.st.fixedContentPos,b.st.modal&&(b.st.closeOnContentClick=!1,b.st.closeOnBgClick=!1,b.st.showCloseBtn=!1,b.st.enableEscapeKey=!1),b.bgOverlay||(b.bgOverlay=x("bg").on("click"+p,function(){b.close()}),b.wrap=x("wrap").attr("tabindex",-1).on("click"+p,function(a){b._checkIfClose(a.target)&&b.close()}),b.container=x("container",b.wrap)),b.contentContainer=x("content"),b.st.preloader&&(b.preloader=x("preloader",b.container,b.st.tLoading));var i=a.magnificPopup.modules;for(e=0;e<i.length;e++){var j=i[e];j=j.charAt(0).toUpperCase()+j.slice(1),b["init"+j].call(b)}y("BeforeOpen"),b.st.showCloseBtn&&(b.st.closeBtnInside?(w(l,function(a,b,c,d){c.close_replaceWith=z(d.type)}),f+=" mfp-close-btn-in"):b.wrap.append(z())),b.st.alignTop&&(f+=" mfp-align-top"),b.fixedContentPos?b.wrap.css({overflow:b.st.overflowY,overflowX:"hidden",overflowY:b.st.overflowY}):b.wrap.css({top:v.scrollTop(),position:"absolute"}),(b.st.fixedBgPos===!1||"auto"===b.st.fixedBgPos&&!b.fixedContentPos)&&b.bgOverlay.css({height:d.height(),position:"absolute"}),b.st.enableEscapeKey&&d.on("keyup"+p,function(a){27===a.keyCode&&b.close()}),v.on("resize"+p,function(){b.updateSize()}),b.st.closeOnContentClick||(f+=" mfp-auto-cursor"),f&&b.wrap.addClass(f);var k=b.wH=v.height(),n={};if(b.fixedContentPos&&b._hasScrollBar(k)){var o=b._getScrollbarSize();o&&(n.marginRight=o)}b.fixedContentPos&&(b.isIE7?a("body, html").css("overflow","hidden"):n.overflow="hidden");var r=b.st.mainClass;return b.isIE7&&(r+=" mfp-ie7"),r&&b._addClassToMFP(r),b.updateItemHTML(),y("BuildControls"),a("html").css(n),b.bgOverlay.add(b.wrap).prependTo(b.st.prependTo||a(document.body)),b._lastFocusedEl=document.activeElement,setTimeout(function(){b.content?(b._addClassToMFP(q),b._setFocus()):b.bgOverlay.addClass(q),d.on("focusin"+p,b._onFocusIn)},16),b.isOpen=!0,b.updateSize(k),y(m),c},close:function(){b.isOpen&&(y(i),b.isOpen=!1,b.st.removalDelay&&!b.isLowIE&&b.supportsTransition?(b._addClassToMFP(r),setTimeout(function(){b._close()},b.st.removalDelay)):b._close())},_close:function(){y(h);var c=r+" "+q+" ";if(b.bgOverlay.detach(),b.wrap.detach(),b.container.empty(),b.st.mainClass&&(c+=b.st.mainClass+" "),b._removeClassFromMFP(c),b.fixedContentPos){var e={marginRight:""};b.isIE7?a("body, html").css("overflow",""):e.overflow="",a("html").css(e)}d.off("keyup"+p+" focusin"+p),b.ev.off(p),b.wrap.attr("class","mfp-wrap").removeAttr("style"),b.bgOverlay.attr("class","mfp-bg"),b.container.attr("class","mfp-container"),!b.st.showCloseBtn||b.st.closeBtnInside&&b.currTemplate[b.currItem.type]!==!0||b.currTemplate.closeBtn&&b.currTemplate.closeBtn.detach(),b.st.autoFocusLast&&b._lastFocusedEl&&a(b._lastFocusedEl).focus(),b.currItem=null,b.content=null,b.currTemplate=null,b.prevHeight=0,y(j)},updateSize:function(a){if(b.isIOS){var c=document.documentElement.clientWidth/window.innerWidth,d=window.innerHeight*c;b.wrap.css("height",d),b.wH=d}else b.wH=a||v.height();b.fixedContentPos||b.wrap.css("height",b.wH),y("Resize")},updateItemHTML:function(){var c=b.items[b.index];b.contentContainer.detach(),b.content&&b.content.detach(),c.parsed||(c=b.parseEl(b.index));var d=c.type;if(y("BeforeChange",[b.currItem?b.currItem.type:"",d]),b.currItem=c,!b.currTemplate[d]){var f=b.st[d]?b.st[d].markup:!1;y("FirstMarkupParse",f),f?b.currTemplate[d]=a(f):b.currTemplate[d]=!0}e&&e!==c.type&&b.container.removeClass("mfp-"+e+"-holder");var g=b["get"+d.charAt(0).toUpperCase()+d.slice(1)](c,b.currTemplate[d]);b.appendContent(g,d),c.preloaded=!0,y(n,c),e=c.type,b.container.prepend(b.contentContainer),y("AfterChange")},appendContent:function(a,c){b.content=a,a?b.st.showCloseBtn&&b.st.closeBtnInside&&b.currTemplate[c]===!0?b.content.find(".mfp-close").length||b.content.append(z()):b.content=a:b.content="",y(k),b.container.addClass("mfp-"+c+"-holder"),b.contentContainer.append(b.content)},parseEl:function(c){var d,e=b.items[c];if(e.tagName?e={el:a(e)}:(d=e.type,e={data:e,src:e.src}),e.el){for(var f=b.types,g=0;g<f.length;g++)if(e.el.hasClass("mfp-"+f[g])){d=f[g];break}e.src=e.el.attr("data-mfp-src"),e.src||(e.src=e.el.attr("href"))}return e.type=d||b.st.type||"inline",e.index=c,e.parsed=!0,b.items[c]=e,y("ElementParse",e),b.items[c]},addGroup:function(a,c){var d=function(d){d.mfpEl=this,b._openClick(d,a,c)};c||(c={});var e="click.magnificPopup";c.mainEl=a,c.items?(c.isObj=!0,a.off(e).on(e,d)):(c.isObj=!1,c.delegate?a.off(e).on(e,c.delegate,d):(c.items=a,a.off(e).on(e,d)))},_openClick:function(c,d,e){var f=void 0!==e.midClick?e.midClick:a.magnificPopup.defaults.midClick;if(f||!(2===c.which||c.ctrlKey||c.metaKey||c.altKey||c.shiftKey)){var g=void 0!==e.disableOn?e.disableOn:a.magnificPopup.defaults.disableOn;if(g)if(a.isFunction(g)){if(!g.call(b))return!0}else if(v.width()<g)return!0;c.type&&(c.preventDefault(),b.isOpen&&c.stopPropagation()),e.el=a(c.mfpEl),e.delegate&&(e.items=d.find(e.delegate)),b.open(e)}},updateStatus:function(a,d){if(b.preloader){c!==a&&b.container.removeClass("mfp-s-"+c),d||"loading"!==a||(d=b.st.tLoading);var e={status:a,text:d};y("UpdateStatus",e),a=e.status,d=e.text,b.preloader.html(d),b.preloader.find("a").on("click",function(a){a.stopImmediatePropagation()}),b.container.addClass("mfp-s-"+a),c=a}},_checkIfClose:function(c){if(!a(c).hasClass(s)){var d=b.st.closeOnContentClick,e=b.st.closeOnBgClick;if(d&&e)return!0;if(!b.content||a(c).hasClass("mfp-close")||b.preloader&&c===b.preloader[0])return!0;if(c===b.content[0]||a.contains(b.content[0],c)){if(d)return!0}else if(e&&a.contains(document,c))return!0;return!1}},_addClassToMFP:function(a){b.bgOverlay.addClass(a),b.wrap.addClass(a)},_removeClassFromMFP:function(a){this.bgOverlay.removeClass(a),b.wrap.removeClass(a)},_hasScrollBar:function(a){return(b.isIE7?d.height():document.body.scrollHeight)>(a||v.height())},_setFocus:function(){(b.st.focus?b.content.find(b.st.focus).eq(0):b.wrap).focus()},_onFocusIn:function(c){return c.target===b.wrap[0]||a.contains(b.wrap[0],c.target)?void 0:(b._setFocus(),!1)},_parseMarkup:function(b,c,d){var e;d.data&&(c=a.extend(d.data,c)),y(l,[b,c,d]),a.each(c,function(c,d){if(void 0===d||d===!1)return!0;if(e=c.split("_"),e.length>1){var f=b.find(p+"-"+e[0]);if(f.length>0){var g=e[1];"replaceWith"===g?f[0]!==d[0]&&f.replaceWith(d):"img"===g?f.is("img")?f.attr("src",d):f.replaceWith(a("<img>").attr("src",d).attr("class",f.attr("class"))):f.attr(e[1],d)}}else b.find(p+"-"+c).html(d)})},_getScrollbarSize:function(){if(void 0===b.scrollbarSize){var a=document.createElement("div");a.style.cssText="width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;",document.body.appendChild(a),b.scrollbarSize=a.offsetWidth-a.clientWidth,document.body.removeChild(a)}return b.scrollbarSize}},a.magnificPopup={instance:null,proto:t.prototype,modules:[],open:function(b,c){return A(),b=b?a.extend(!0,{},b):{},b.isObj=!0,b.index=c||0,this.instance.open(b)},close:function(){return a.magnificPopup.instance&&a.magnificPopup.instance.close()},registerModule:function(b,c){c.options&&(a.magnificPopup.defaults[b]=c.options),a.extend(this.proto,c.proto),this.modules.push(b)},defaults:{disableOn:0,key:null,midClick:!1,mainClass:"",preloader:!0,focus:"",closeOnContentClick:!1,closeOnBgClick:!0,closeBtnInside:!0,showCloseBtn:!0,enableEscapeKey:!0,modal:!1,alignTop:!1,removalDelay:0,prependTo:null,fixedContentPos:"auto",fixedBgPos:"auto",overflowY:"auto",closeMarkup:'<button title="%title%" type="button" class="mfp-close">×</button>',tClose:"Close (Esc)",tLoading:"Loading...",autoFocusLast:!0}},a.fn.magnificPopup=function(c){A();var d=a(this);if("string"==typeof c)if("open"===c){var e,f=u?d.data("magnificPopup"):d[0].magnificPopup,g=parseInt(arguments[1],10)||0;f.items?e=f.items[g]:(e=d,f.delegate&&(e=e.find(f.delegate)),e=e.eq(g)),b._openClick({mfpEl:e},d,f)}else b.isOpen&&b[c].apply(b,Array.prototype.slice.call(arguments,1));else c=a.extend(!0,{},c),u?d.data("magnificPopup",c):d[0].magnificPopup=c,b.addGroup(d,c);return d};var C,D,E,F="inline",G=function(){E&&(D.after(E.addClass(C)).detach(),E=null)};a.magnificPopup.registerModule(F,{options:{hiddenClass:"hide",markup:"",tNotFound:"Content not found"},proto:{initInline:function(){b.types.push(F),w(h+"."+F,function(){G()})},getInline:function(c,d){if(G(),c.src){var e=b.st.inline,f=a(c.src);if(f.length){var g=f[0].parentNode;g&&g.tagName&&(D||(C=e.hiddenClass,D=x(C),C="mfp-"+C),E=f.after(D).detach().removeClass(C)),b.updateStatus("ready")}else b.updateStatus("error",e.tNotFound),f=a("<div>");return c.inlineElement=f,f}return b.updateStatus("ready"),b._parseMarkup(d,{},c),d}}});var H,I="ajax",J=function(){H&&a(document.body).removeClass(H)},K=function(){J(),b.req&&b.req.abort()};a.magnificPopup.registerModule(I,{options:{settings:null,cursor:"mfp-ajax-cur",tError:'<a href="%url%">The content</a> could not be loaded.'},proto:{initAjax:function(){b.types.push(I),H=b.st.ajax.cursor,w(h+"."+I,K),w("BeforeChange."+I,K)},getAjax:function(c){H&&a(document.body).addClass(H),b.updateStatus("loading");var d=a.extend({url:c.src,success:function(d,e,f){var g={data:d,xhr:f};y("ParseAjax",g),b.appendContent(a(g.data),I),c.finished=!0,J(),b._setFocus(),setTimeout(function(){b.wrap.addClass(q)},16),b.updateStatus("ready"),y("AjaxContentAdded")},error:function(){J(),c.finished=c.loadError=!0,b.updateStatus("error",b.st.ajax.tError.replace("%url%",c.src))}},b.st.ajax.settings);return b.req=a.ajax(d),""}}});var L,M=function(c){if(c.data&&void 0!==c.data.title)return c.data.title;var d=b.st.image.titleSrc;if(d){if(a.isFunction(d))return d.call(b,c);if(c.el)return c.el.attr(d)||""}return""};a.magnificPopup.registerModule("image",{options:{markup:'<div class="mfp-figure"><div class="mfp-close"></div><figure><div class="mfp-img"></div><figcaption><div class="mfp-bottom-bar"><div class="mfp-title"></div><div class="mfp-counter"></div></div></figcaption></figure></div>',cursor:"mfp-zoom-out-cur",titleSrc:"title",verticalFit:!0,tError:'<a href="%url%">The image</a> could not be loaded.'},proto:{initImage:function(){var c=b.st.image,d=".image";b.types.push("image"),w(m+d,function(){"image"===b.currItem.type&&c.cursor&&a(document.body).addClass(c.cursor)}),w(h+d,function(){c.cursor&&a(document.body).removeClass(c.cursor),v.off("resize"+p)}),w("Resize"+d,b.resizeImage),b.isLowIE&&w("AfterChange",b.resizeImage)},resizeImage:function(){var a=b.currItem;if(a&&a.img&&b.st.image.verticalFit){var c=0;b.isLowIE&&(c=parseInt(a.img.css("padding-top"),10)+parseInt(a.img.css("padding-bottom"),10)),a.img.css("max-height",b.wH-c)}},_onImageHasSize:function(a){a.img&&(a.hasSize=!0,L&&clearInterval(L),a.isCheckingImgSize=!1,y("ImageHasSize",a),a.imgHidden&&(b.content&&b.content.removeClass("mfp-loading"),a.imgHidden=!1))},findImageSize:function(a){var c=0,d=a.img[0],e=function(f){L&&clearInterval(L),L=setInterval(function(){return d.naturalWidth>0?void b._onImageHasSize(a):(c>200&&clearInterval(L),c++,void(3===c?e(10):40===c?e(50):100===c&&e(500)))},f)};e(1)},getImage:function(c,d){var e=0,f=function(){c&&(c.img[0].complete?(c.img.off(".mfploader"),c===b.currItem&&(b._onImageHasSize(c),b.updateStatus("ready")),c.hasSize=!0,c.loaded=!0,y("ImageLoadComplete")):(e++,200>e?setTimeout(f,100):g()))},g=function(){c&&(c.img.off(".mfploader"),c===b.currItem&&(b._onImageHasSize(c),b.updateStatus("error",h.tError.replace("%url%",c.src))),c.hasSize=!0,c.loaded=!0,c.loadError=!0)},h=b.st.image,i=d.find(".mfp-img");if(i.length){var j=document.createElement("img");j.className="mfp-img",c.el&&c.el.find("img").length&&(j.alt=c.el.find("img").attr("alt")),c.img=a(j).on("load.mfploader",f).on("error.mfploader",g),j.src=c.src,i.is("img")&&(c.img=c.img.clone()),j=c.img[0],j.naturalWidth>0?c.hasSize=!0:j.width||(c.hasSize=!1)}return b._parseMarkup(d,{title:M(c),img_replaceWith:c.img},c),b.resizeImage(),c.hasSize?(L&&clearInterval(L),c.loadError?(d.addClass("mfp-loading"),b.updateStatus("error",h.tError.replace("%url%",c.src))):(d.removeClass("mfp-loading"),b.updateStatus("ready")),d):(b.updateStatus("loading"),c.loading=!0,c.hasSize||(c.imgHidden=!0,d.addClass("mfp-loading"),b.findImageSize(c)),d)}}});var N,O=function(){return void 0===N&&(N=void 0!==document.createElement("p").style.MozTransform),N};a.magnificPopup.registerModule("zoom",{options:{enabled:!1,easing:"ease-in-out",duration:300,opener:function(a){return a.is("img")?a:a.find("img")}},proto:{initZoom:function(){var a,c=b.st.zoom,d=".zoom";if(c.enabled&&b.supportsTransition){var e,f,g=c.duration,j=function(a){var b=a.clone().removeAttr("style").removeAttr("class").addClass("mfp-animated-image"),d="all "+c.duration/1e3+"s "+c.easing,e={position:"fixed",zIndex:9999,left:0,top:0,"-webkit-backface-visibility":"hidden"},f="transition";return e["-webkit-"+f]=e["-moz-"+f]=e["-o-"+f]=e[f]=d,b.css(e),b},k=function(){b.content.css("visibility","visible")};w("BuildControls"+d,function(){if(b._allowZoom()){if(clearTimeout(e),b.content.css("visibility","hidden"),a=b._getItemToZoom(),!a)return void k();f=j(a),f.css(b._getOffset()),b.wrap.append(f),e=setTimeout(function(){f.css(b._getOffset(!0)),e=setTimeout(function(){k(),setTimeout(function(){f.remove(),a=f=null,y("ZoomAnimationEnded")},16)},g)},16)}}),w(i+d,function(){if(b._allowZoom()){if(clearTimeout(e),b.st.removalDelay=g,!a){if(a=b._getItemToZoom(),!a)return;f=j(a)}f.css(b._getOffset(!0)),b.wrap.append(f),b.content.css("visibility","hidden"),setTimeout(function(){f.css(b._getOffset())},16)}}),w(h+d,function(){b._allowZoom()&&(k(),f&&f.remove(),a=null)})}},_allowZoom:function(){return"image"===b.currItem.type},_getItemToZoom:function(){return b.currItem.hasSize?b.currItem.img:!1},_getOffset:function(c){var d;d=c?b.currItem.img:b.st.zoom.opener(b.currItem.el||b.currItem);var e=d.offset(),f=parseInt(d.css("padding-top"),10),g=parseInt(d.css("padding-bottom"),10);e.top-=a(window).scrollTop()-f;var h={width:d.width(),height:(u?d.innerHeight():d[0].offsetHeight)-g-f};return O()?h["-moz-transform"]=h.transform="translate("+e.left+"px,"+e.top+"px)":(h.left=e.left,h.top=e.top),h}}});var P="iframe",Q="//about:blank",R=function(a){if(b.currTemplate[P]){var c=b.currTemplate[P].find("iframe");c.length&&(a||(c[0].src=Q),b.isIE8&&c.css("display",a?"block":"none"))}};a.magnificPopup.registerModule(P,{options:{markup:'<div class="mfp-iframe-scaler"><div class="mfp-close"></div><iframe class="mfp-iframe" src="//about:blank" frameborder="0" allowfullscreen></iframe></div>',srcAction:"iframe_src",patterns:{youtube:{index:"youtube.com",id:"v=",src:"//www.youtube.com/embed/%id%?autoplay=1"},vimeo:{index:"vimeo.com/",id:"/",src:"//player.vimeo.com/video/%id%?autoplay=1"},gmaps:{index:"//maps.google.",src:"%id%&output=embed"}}},proto:{initIframe:function(){b.types.push(P),w("BeforeChange",function(a,b,c){b!==c&&(b===P?R():c===P&&R(!0))}),w(h+"."+P,function(){R()})},getIframe:function(c,d){var e=c.src,f=b.st.iframe;a.each(f.patterns,function(){return e.indexOf(this.index)>-1?(this.id&&(e="string"==typeof this.id?e.substr(e.lastIndexOf(this.id)+this.id.length,e.length):this.id.call(this,e)),e=this.src.replace("%id%",e),!1):void 0});var g={};return f.srcAction&&(g[f.srcAction]=e),b._parseMarkup(d,g,c),b.updateStatus("ready"),d}}});var S=function(a){var c=b.items.length;return a>c-1?a-c:0>a?c+a:a},T=function(a,b,c){return a.replace(/%curr%/gi,b+1).replace(/%total%/gi,c)};a.magnificPopup.registerModule("gallery",{options:{enabled:!1,arrowMarkup:'<button title="%title%" type="button" class="mfp-arrow mfp-arrow-%dir%"></button>',preload:[0,2],navigateByImgClick:!0,arrows:!0,tPrev:"Previous (Left arrow key)",tNext:"Next (Right arrow key)",tCounter:"%curr% of %total%"},proto:{initGallery:function(){var c=b.st.gallery,e=".mfp-gallery";return b.direction=!0,c&&c.enabled?(f+=" mfp-gallery",w(m+e,function(){c.navigateByImgClick&&b.wrap.on("click"+e,".mfp-img",function(){return b.items.length>1?(b.next(),!1):void 0}),d.on("keydown"+e,function(a){37===a.keyCode?b.prev():39===a.keyCode&&b.next()})}),w("UpdateStatus"+e,function(a,c){c.text&&(c.text=T(c.text,b.currItem.index,b.items.length))}),w(l+e,function(a,d,e,f){var g=b.items.length;e.counter=g>1?T(c.tCounter,f.index,g):""}),w("BuildControls"+e,function(){if(b.items.length>1&&c.arrows&&!b.arrowLeft){var d=c.arrowMarkup,e=b.arrowLeft=a(d.replace(/%title%/gi,c.tPrev).replace(/%dir%/gi,"left")).addClass(s),f=b.arrowRight=a(d.replace(/%title%/gi,c.tNext).replace(/%dir%/gi,"right")).addClass(s);e.click(function(){b.prev()}),f.click(function(){b.next()}),b.container.append(e.add(f))}}),w(n+e,function(){b._preloadTimeout&&clearTimeout(b._preloadTimeout),b._preloadTimeout=setTimeout(function(){b.preloadNearbyImages(),b._preloadTimeout=null},16)}),void w(h+e,function(){d.off(e),b.wrap.off("click"+e),b.arrowRight=b.arrowLeft=null})):!1},next:function(){b.direction=!0,b.index=S(b.index+1),b.updateItemHTML()},prev:function(){b.direction=!1,b.index=S(b.index-1),b.updateItemHTML()},goTo:function(a){b.direction=a>=b.index,b.index=a,b.updateItemHTML()},preloadNearbyImages:function(){var a,c=b.st.gallery.preload,d=Math.min(c[0],b.items.length),e=Math.min(c[1],b.items.length);for(a=1;a<=(b.direction?e:d);a++)b._preloadItem(b.index+a);for(a=1;a<=(b.direction?d:e);a++)b._preloadItem(b.index-a)},_preloadItem:function(c){if(c=S(c),!b.items[c].preloaded){var d=b.items[c];d.parsed||(d=b.parseEl(c)),y("LazyLoad",d),"image"===d.type&&(d.img=a('<img class="mfp-img" />').on("load.mfploader",function(){d.hasSize=!0}).on("error.mfploader",function(){d.hasSize=!0,d.loadError=!0,y("LazyLoadError",d)}).attr("src",d.src)),d.preloaded=!0}}}});var U="retina";a.magnificPopup.registerModule(U,{options:{replaceSrc:function(a){return a.src.replace(/\.\w+$/,function(a){return"@2x"+a})},ratio:1},proto:{initRetina:function(){if(window.devicePixelRatio>1){var a=b.st.retina,c=a.ratio;c=isNaN(c)?c():c,c>1&&(w("ImageHasSize."+U,function(a,b){b.img.css({"max-width":b.img[0].naturalWidth/c,width:"100%"})}),w("ElementParse."+U,function(b,d){d.src=a.replaceSrc(d,c)}))}}}}),A()});
|
assets/js/jquery.powertip.js
ADDED
@@ -0,0 +1,1166 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*!
|
2 |
+
PowerTip - v1.2.0 - 2013-04-03
|
3 |
+
http://stevenbenner.github.com/jquery-powertip/
|
4 |
+
Copyright (c) 2013 Steven Benner (http://stevenbenner.com/).
|
5 |
+
Released under MIT license.
|
6 |
+
https://raw.github.com/stevenbenner/jquery-powertip/master/LICENSE.txt
|
7 |
+
*/
|
8 |
+
(function(factory) {
|
9 |
+
if (typeof define === 'function' && define.amd) {
|
10 |
+
// AMD. Register as an anonymous module.
|
11 |
+
define(['jquery'], factory);
|
12 |
+
} else {
|
13 |
+
// Browser globals
|
14 |
+
factory(jQuery);
|
15 |
+
}
|
16 |
+
}(function($) {
|
17 |
+
|
18 |
+
// useful private variables
|
19 |
+
var $document = $(document),
|
20 |
+
$window = $(window),
|
21 |
+
$body = $('body');
|
22 |
+
|
23 |
+
// constants
|
24 |
+
var DATA_DISPLAYCONTROLLER = 'displayController',
|
25 |
+
DATA_HASACTIVEHOVER = 'hasActiveHover',
|
26 |
+
DATA_FORCEDOPEN = 'forcedOpen',
|
27 |
+
DATA_HASMOUSEMOVE = 'hasMouseMove',
|
28 |
+
DATA_MOUSEONTOTIP = 'mouseOnToPopup',
|
29 |
+
DATA_ORIGINALTITLE = 'originalTitle',
|
30 |
+
DATA_POWERTIP = 'powertip',
|
31 |
+
DATA_POWERTIPJQ = 'powertipjq',
|
32 |
+
DATA_POWERTIPTARGET = 'powertiptarget',
|
33 |
+
RAD2DEG = 180 / Math.PI;
|
34 |
+
|
35 |
+
/**
|
36 |
+
* Session data
|
37 |
+
* Private properties global to all powerTip instances
|
38 |
+
*/
|
39 |
+
var session = {
|
40 |
+
isTipOpen: false,
|
41 |
+
isFixedTipOpen: false,
|
42 |
+
isClosing: false,
|
43 |
+
tipOpenImminent: false,
|
44 |
+
activeHover: null,
|
45 |
+
currentX: 0,
|
46 |
+
currentY: 0,
|
47 |
+
previousX: 0,
|
48 |
+
previousY: 0,
|
49 |
+
desyncTimeout: null,
|
50 |
+
mouseTrackingActive: false,
|
51 |
+
delayInProgress: false,
|
52 |
+
windowWidth: 0,
|
53 |
+
windowHeight: 0,
|
54 |
+
scrollTop: 0,
|
55 |
+
scrollLeft: 0
|
56 |
+
};
|
57 |
+
|
58 |
+
/**
|
59 |
+
* Collision enumeration
|
60 |
+
* @enum {number}
|
61 |
+
*/
|
62 |
+
var Collision = {
|
63 |
+
none: 0,
|
64 |
+
top: 1,
|
65 |
+
bottom: 2,
|
66 |
+
left: 4,
|
67 |
+
right: 8
|
68 |
+
};
|
69 |
+
|
70 |
+
/**
|
71 |
+
* Display hover tooltips on the matched elements.
|
72 |
+
* @param {(Object|string)} opts The options object to use for the plugin, or
|
73 |
+
* the name of a method to invoke on the first matched element.
|
74 |
+
* @param {*=} [arg] Argument for an invoked method (optional).
|
75 |
+
* @return {jQuery} jQuery object for the matched selectors.
|
76 |
+
*/
|
77 |
+
$.fn.powerTip = function(opts, arg) {
|
78 |
+
// don't do any work if there were no matched elements
|
79 |
+
if (!this.length) {
|
80 |
+
return this;
|
81 |
+
}
|
82 |
+
|
83 |
+
// handle api method calls on the plugin, e.g. powerTip('hide')
|
84 |
+
if ($.type(opts) === 'string' && $.powerTip[opts]) {
|
85 |
+
return $.powerTip[opts].call(this, this, arg);
|
86 |
+
}
|
87 |
+
|
88 |
+
// extend options and instantiate TooltipController
|
89 |
+
var options = $.extend({}, $.fn.powerTip.defaults, opts),
|
90 |
+
tipController = new TooltipController(options);
|
91 |
+
|
92 |
+
// hook mouse and viewport dimension tracking
|
93 |
+
initTracking();
|
94 |
+
|
95 |
+
// setup the elements
|
96 |
+
this.each(function elementSetup() {
|
97 |
+
var $this = $(this),
|
98 |
+
dataPowertip = $this.data(DATA_POWERTIP),
|
99 |
+
dataElem = $this.data(DATA_POWERTIPJQ),
|
100 |
+
dataTarget = $this.data(DATA_POWERTIPTARGET),
|
101 |
+
title;
|
102 |
+
|
103 |
+
// handle repeated powerTip calls on the same element by destroying the
|
104 |
+
// original instance hooked to it and replacing it with this call
|
105 |
+
if ($this.data(DATA_DISPLAYCONTROLLER)) {
|
106 |
+
$.powerTip.destroy($this);
|
107 |
+
}
|
108 |
+
|
109 |
+
// attempt to use title attribute text if there is no data-powertip,
|
110 |
+
// data-powertipjq or data-powertiptarget. If we do use the title
|
111 |
+
// attribute, delete the attribute so the browser will not show it
|
112 |
+
title = $this.attr('title');
|
113 |
+
if (!dataPowertip && !dataTarget && !dataElem && title) {
|
114 |
+
$this.data(DATA_POWERTIP, title);
|
115 |
+
$this.data(DATA_ORIGINALTITLE, title);
|
116 |
+
$this.removeAttr('title');
|
117 |
+
}
|
118 |
+
|
119 |
+
// create hover controllers for each element
|
120 |
+
$this.data(
|
121 |
+
DATA_DISPLAYCONTROLLER,
|
122 |
+
new DisplayController($this, options, tipController)
|
123 |
+
);
|
124 |
+
});
|
125 |
+
|
126 |
+
// attach events to matched elements if the manual options is not enabled
|
127 |
+
if (!options.manual) {
|
128 |
+
this.on({
|
129 |
+
// mouse events
|
130 |
+
'mouseenter.powertip': function elementMouseEnter(event) {
|
131 |
+
$.powerTip.show(this, event);
|
132 |
+
},
|
133 |
+
'mouseleave.powertip': function elementMouseLeave() {
|
134 |
+
$.powerTip.hide(this);
|
135 |
+
},
|
136 |
+
// keyboard events
|
137 |
+
'focus.powertip': function elementFocus() {
|
138 |
+
$.powerTip.show(this);
|
139 |
+
},
|
140 |
+
'blur.powertip': function elementBlur() {
|
141 |
+
$.powerTip.hide(this, true);
|
142 |
+
},
|
143 |
+
'keydown.powertip': function elementKeyDown(event) {
|
144 |
+
// close tooltip when the escape key is pressed
|
145 |
+
if (event.keyCode === 27) {
|
146 |
+
$.powerTip.hide(this, true);
|
147 |
+
}
|
148 |
+
}
|
149 |
+
});
|
150 |
+
}
|
151 |
+
|
152 |
+
return this;
|
153 |
+
};
|
154 |
+
|
155 |
+
/**
|
156 |
+
* Default options for the powerTip plugin.
|
157 |
+
*/
|
158 |
+
$.fn.powerTip.defaults = {
|
159 |
+
fadeInTime: 200,
|
160 |
+
fadeOutTime: 100,
|
161 |
+
followMouse: false,
|
162 |
+
popupId: 'powerTip',
|
163 |
+
intentSensitivity: 7,
|
164 |
+
intentPollInterval: 100,
|
165 |
+
closeDelay: 100,
|
166 |
+
placement: 'n',
|
167 |
+
smartPlacement: false,
|
168 |
+
offset: 10,
|
169 |
+
mouseOnToPopup: false,
|
170 |
+
manual: false
|
171 |
+
};
|
172 |
+
|
173 |
+
/**
|
174 |
+
* Default smart placement priority lists.
|
175 |
+
* The first item in the array is the highest priority, the last is the lowest.
|
176 |
+
* The last item is also the default, which will be used if all previous options
|
177 |
+
* do not fit.
|
178 |
+
*/
|
179 |
+
$.fn.powerTip.smartPlacementLists = {
|
180 |
+
n: ['n', 'ne', 'nw', 's'],
|
181 |
+
e: ['e', 'ne', 'se', 'w', 'nw', 'sw', 'n', 's', 'e'],
|
182 |
+
s: ['s', 'se', 'sw', 'n'],
|
183 |
+
w: ['w', 'nw', 'sw', 'e', 'ne', 'se', 'n', 's', 'w'],
|
184 |
+
nw: ['nw', 'w', 'sw', 'n', 's', 'se', 'nw'],
|
185 |
+
ne: ['ne', 'e', 'se', 'n', 's', 'sw', 'ne'],
|
186 |
+
sw: ['sw', 'w', 'nw', 's', 'n', 'ne', 'sw'],
|
187 |
+
se: ['se', 'e', 'ne', 's', 'n', 'nw', 'se'],
|
188 |
+
'nw-alt': ['nw-alt', 'n', 'ne-alt', 'sw-alt', 's', 'se-alt', 'w', 'e'],
|
189 |
+
'ne-alt': ['ne-alt', 'n', 'nw-alt', 'se-alt', 's', 'sw-alt', 'e', 'w'],
|
190 |
+
'sw-alt': ['sw-alt', 's', 'se-alt', 'nw-alt', 'n', 'ne-alt', 'w', 'e'],
|
191 |
+
'se-alt': ['se-alt', 's', 'sw-alt', 'ne-alt', 'n', 'nw-alt', 'e', 'w']
|
192 |
+
};
|
193 |
+
|
194 |
+
/**
|
195 |
+
* Public API
|
196 |
+
*/
|
197 |
+
$.powerTip = {
|
198 |
+
/**
|
199 |
+
* Attempts to show the tooltip for the specified element.
|
200 |
+
* @param {jQuery|Element} element The element to open the tooltip for.
|
201 |
+
* @param {jQuery.Event=} event jQuery event for hover intent and mouse
|
202 |
+
* tracking (optional).
|
203 |
+
*/
|
204 |
+
show: function apiShowTip(element, event) {
|
205 |
+
if (event) {
|
206 |
+
trackMouse(event);
|
207 |
+
session.previousX = event.pageX;
|
208 |
+
session.previousY = event.pageY;
|
209 |
+
$(element).data(DATA_DISPLAYCONTROLLER).show();
|
210 |
+
} else {
|
211 |
+
$(element).first().data(DATA_DISPLAYCONTROLLER).show(true, true);
|
212 |
+
}
|
213 |
+
return element;
|
214 |
+
},
|
215 |
+
|
216 |
+
/**
|
217 |
+
* Repositions the tooltip on the element.
|
218 |
+
* @param {jQuery|Element} element The element the tooltip is shown for.
|
219 |
+
*/
|
220 |
+
reposition: function apiResetPosition(element) {
|
221 |
+
$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();
|
222 |
+
return element;
|
223 |
+
},
|
224 |
+
|
225 |
+
/**
|
226 |
+
* Attempts to close any open tooltips.
|
227 |
+
* @param {(jQuery|Element)=} element The element with the tooltip that
|
228 |
+
* should be closed (optional).
|
229 |
+
* @param {boolean=} immediate Disable close delay (optional).
|
230 |
+
*/
|
231 |
+
hide: function apiCloseTip(element, immediate) {
|
232 |
+
if (element) {
|
233 |
+
$(element).first().data(DATA_DISPLAYCONTROLLER).hide(immediate);
|
234 |
+
} else {
|
235 |
+
if (session.activeHover) {
|
236 |
+
session.activeHover.data(DATA_DISPLAYCONTROLLER).hide(true);
|
237 |
+
}
|
238 |
+
}
|
239 |
+
return element;
|
240 |
+
},
|
241 |
+
|
242 |
+
/**
|
243 |
+
* Destroy and roll back any powerTip() instance on the specified element.
|
244 |
+
* @param {jQuery|Element} element The element with the powerTip instance.
|
245 |
+
*/
|
246 |
+
destroy: function apiDestroy(element) {
|
247 |
+
$(element).off('.powertip').each(function destroy() {
|
248 |
+
var $this = $(this),
|
249 |
+
dataAttributes = [
|
250 |
+
DATA_ORIGINALTITLE,
|
251 |
+
DATA_DISPLAYCONTROLLER,
|
252 |
+
DATA_HASACTIVEHOVER,
|
253 |
+
DATA_FORCEDOPEN
|
254 |
+
];
|
255 |
+
|
256 |
+
if ($this.data(DATA_ORIGINALTITLE)) {
|
257 |
+
$this.attr('title', $this.data(DATA_ORIGINALTITLE));
|
258 |
+
dataAttributes.push(DATA_POWERTIP);
|
259 |
+
}
|
260 |
+
|
261 |
+
$this.removeData(dataAttributes);
|
262 |
+
});
|
263 |
+
return element;
|
264 |
+
}
|
265 |
+
};
|
266 |
+
|
267 |
+
// API aliasing
|
268 |
+
$.powerTip.showTip = $.powerTip.show;
|
269 |
+
$.powerTip.closeTip = $.powerTip.hide;
|
270 |
+
|
271 |
+
/**
|
272 |
+
* Creates a new CSSCoordinates object.
|
273 |
+
* @private
|
274 |
+
* @constructor
|
275 |
+
*/
|
276 |
+
function CSSCoordinates() {
|
277 |
+
var me = this;
|
278 |
+
|
279 |
+
// initialize object properties
|
280 |
+
me.top = 'auto';
|
281 |
+
me.left = 'auto';
|
282 |
+
me.right = 'auto';
|
283 |
+
me.bottom = 'auto';
|
284 |
+
|
285 |
+
/**
|
286 |
+
* Set a property to a value.
|
287 |
+
* @private
|
288 |
+
* @param {string} property The name of the property.
|
289 |
+
* @param {number} value The value of the property.
|
290 |
+
*/
|
291 |
+
me.set = function(property, value) {
|
292 |
+
if ($.isNumeric(value)) {
|
293 |
+
me[property] = Math.round(value);
|
294 |
+
}
|
295 |
+
};
|
296 |
+
}
|
297 |
+
|
298 |
+
/**
|
299 |
+
* Creates a new tooltip display controller.
|
300 |
+
* @private
|
301 |
+
* @constructor
|
302 |
+
* @param {jQuery} element The element that this controller will handle.
|
303 |
+
* @param {Object} options Options object containing settings.
|
304 |
+
* @param {TooltipController} tipController The TooltipController object for
|
305 |
+
* this instance.
|
306 |
+
*/
|
307 |
+
function DisplayController(element, options, tipController) {
|
308 |
+
var hoverTimer = null;
|
309 |
+
|
310 |
+
/**
|
311 |
+
* Begins the process of showing a tooltip.
|
312 |
+
* @private
|
313 |
+
* @param {boolean=} immediate Skip intent testing (optional).
|
314 |
+
* @param {boolean=} forceOpen Ignore cursor position and force tooltip to
|
315 |
+
* open (optional).
|
316 |
+
*/
|
317 |
+
function openTooltip(immediate, forceOpen) {
|
318 |
+
cancelTimer();
|
319 |
+
if (!element.data(DATA_HASACTIVEHOVER)) {
|
320 |
+
if (!immediate) {
|
321 |
+
session.tipOpenImminent = true;
|
322 |
+
hoverTimer = setTimeout(
|
323 |
+
function intentDelay() {
|
324 |
+
hoverTimer = null;
|
325 |
+
checkForIntent();
|
326 |
+
},
|
327 |
+
options.intentPollInterval
|
328 |
+
);
|
329 |
+
} else {
|
330 |
+
if (forceOpen) {
|
331 |
+
element.data(DATA_FORCEDOPEN, true);
|
332 |
+
}
|
333 |
+
tipController.showTip(element);
|
334 |
+
}
|
335 |
+
}
|
336 |
+
}
|
337 |
+
|
338 |
+
/**
|
339 |
+
* Begins the process of closing a tooltip.
|
340 |
+
* @private
|
341 |
+
* @param {boolean=} disableDelay Disable close delay (optional).
|
342 |
+
*/
|
343 |
+
function closeTooltip(disableDelay) {
|
344 |
+
cancelTimer();
|
345 |
+
session.tipOpenImminent = false;
|
346 |
+
if (element.data(DATA_HASACTIVEHOVER)) {
|
347 |
+
element.data(DATA_FORCEDOPEN, false);
|
348 |
+
if (!disableDelay) {
|
349 |
+
session.delayInProgress = true;
|
350 |
+
hoverTimer = setTimeout(
|
351 |
+
function closeDelay() {
|
352 |
+
hoverTimer = null;
|
353 |
+
tipController.hideTip(element);
|
354 |
+
session.delayInProgress = false;
|
355 |
+
},
|
356 |
+
options.closeDelay
|
357 |
+
);
|
358 |
+
} else {
|
359 |
+
tipController.hideTip(element);
|
360 |
+
}
|
361 |
+
}
|
362 |
+
}
|
363 |
+
|
364 |
+
/**
|
365 |
+
* Checks mouse position to make sure that the user intended to hover on the
|
366 |
+
* specified element before showing the tooltip.
|
367 |
+
* @private
|
368 |
+
*/
|
369 |
+
function checkForIntent() {
|
370 |
+
// calculate mouse position difference
|
371 |
+
var xDifference = Math.abs(session.previousX - session.currentX),
|
372 |
+
yDifference = Math.abs(session.previousY - session.currentY),
|
373 |
+
totalDifference = xDifference + yDifference;
|
374 |
+
|
375 |
+
// check if difference has passed the sensitivity threshold
|
376 |
+
if (totalDifference < options.intentSensitivity) {
|
377 |
+
tipController.showTip(element);
|
378 |
+
} else {
|
379 |
+
// try again
|
380 |
+
session.previousX = session.currentX;
|
381 |
+
session.previousY = session.currentY;
|
382 |
+
openTooltip();
|
383 |
+
}
|
384 |
+
}
|
385 |
+
|
386 |
+
/**
|
387 |
+
* Cancels active hover timer.
|
388 |
+
* @private
|
389 |
+
*/
|
390 |
+
function cancelTimer() {
|
391 |
+
hoverTimer = clearTimeout(hoverTimer);
|
392 |
+
session.delayInProgress = false;
|
393 |
+
}
|
394 |
+
|
395 |
+
/**
|
396 |
+
* Repositions the tooltip on this element.
|
397 |
+
* @private
|
398 |
+
*/
|
399 |
+
function repositionTooltip() {
|
400 |
+
tipController.resetPosition(element);
|
401 |
+
}
|
402 |
+
|
403 |
+
// expose the methods
|
404 |
+
this.show = openTooltip;
|
405 |
+
this.hide = closeTooltip;
|
406 |
+
this.cancel = cancelTimer;
|
407 |
+
this.resetPosition = repositionTooltip;
|
408 |
+
}
|
409 |
+
|
410 |
+
/**
|
411 |
+
* Creates a new Placement Calculator.
|
412 |
+
* @private
|
413 |
+
* @constructor
|
414 |
+
*/
|
415 |
+
function PlacementCalculator() {
|
416 |
+
/**
|
417 |
+
* Compute the CSS position to display a tooltip at the specified placement
|
418 |
+
* relative to the specified element.
|
419 |
+
* @private
|
420 |
+
* @param {jQuery} element The element that the tooltip should target.
|
421 |
+
* @param {string} placement The placement for the tooltip.
|
422 |
+
* @param {number} tipWidth Width of the tooltip element in pixels.
|
423 |
+
* @param {number} tipHeight Height of the tooltip element in pixels.
|
424 |
+
* @param {number} offset Distance to offset tooltips in pixels.
|
425 |
+
* @return {CSSCoordinates} A CSSCoordinates object with the position.
|
426 |
+
*/
|
427 |
+
function computePlacementCoords(element, placement, tipWidth, tipHeight, offset) {
|
428 |
+
var placementBase = placement.split('-')[0], // ignore 'alt' for corners
|
429 |
+
coords = new CSSCoordinates(),
|
430 |
+
position;
|
431 |
+
|
432 |
+
if (isSvgElement(element)) {
|
433 |
+
position = getSvgPlacement(element, placementBase);
|
434 |
+
} else {
|
435 |
+
position = getHtmlPlacement(element, placementBase);
|
436 |
+
}
|
437 |
+
|
438 |
+
// calculate the appropriate x and y position in the document
|
439 |
+
switch (placement) {
|
440 |
+
case 'n':
|
441 |
+
coords.set('left', position.left - (tipWidth / 2));
|
442 |
+
coords.set('bottom', session.windowHeight - position.top + offset);
|
443 |
+
break;
|
444 |
+
case 'e':
|
445 |
+
coords.set('left', position.left + offset);
|
446 |
+
coords.set('top', position.top - (tipHeight / 2));
|
447 |
+
break;
|
448 |
+
case 's':
|
449 |
+
coords.set('left', position.left - (tipWidth / 2));
|
450 |
+
coords.set('top', position.top + offset);
|
451 |
+
break;
|
452 |
+
case 'w':
|
453 |
+
coords.set('top', position.top - (tipHeight / 2));
|
454 |
+
coords.set('right', session.windowWidth - position.left + offset);
|
455 |
+
break;
|
456 |
+
case 'nw':
|
457 |
+
coords.set('bottom', session.windowHeight - position.top + offset);
|
458 |
+
coords.set('right', session.windowWidth - position.left - 20);
|
459 |
+
break;
|
460 |
+
case 'nw-alt':
|
461 |
+
coords.set('left', position.left);
|
462 |
+
coords.set('bottom', session.windowHeight - position.top + offset);
|
463 |
+
break;
|
464 |
+
case 'ne':
|
465 |
+
coords.set('left', position.left - 20);
|
466 |
+
coords.set('bottom', session.windowHeight - position.top + offset);
|
467 |
+
break;
|
468 |
+
case 'ne-alt':
|
469 |
+
coords.set('bottom', session.windowHeight - position.top + offset);
|
470 |
+
coords.set('right', session.windowWidth - position.left);
|
471 |
+
break;
|
472 |
+
case 'sw':
|
473 |
+
coords.set('top', position.top + offset);
|
474 |
+
coords.set('right', session.windowWidth - position.left - 20);
|
475 |
+
break;
|
476 |
+
case 'sw-alt':
|
477 |
+
coords.set('left', position.left);
|
478 |
+
coords.set('top', position.top + offset);
|
479 |
+
break;
|
480 |
+
case 'se':
|
481 |
+
coords.set('left', position.left - 20);
|
482 |
+
coords.set('top', position.top + offset);
|
483 |
+
break;
|
484 |
+
case 'se-alt':
|
485 |
+
coords.set('top', position.top + offset);
|
486 |
+
coords.set('right', session.windowWidth - position.left);
|
487 |
+
break;
|
488 |
+
}
|
489 |
+
|
490 |
+
return coords;
|
491 |
+
}
|
492 |
+
|
493 |
+
/**
|
494 |
+
* Finds the tooltip attachment point in the document for a HTML DOM element
|
495 |
+
* for the specified placement.
|
496 |
+
* @private
|
497 |
+
* @param {jQuery} element The element that the tooltip should target.
|
498 |
+
* @param {string} placement The placement for the tooltip.
|
499 |
+
* @return {Object} An object with the top,left position values.
|
500 |
+
*/
|
501 |
+
function getHtmlPlacement(element, placement) {
|
502 |
+
var objectOffset = element.offset(),
|
503 |
+
objectWidth = element.outerWidth(),
|
504 |
+
objectHeight = element.outerHeight(),
|
505 |
+
left,
|
506 |
+
top;
|
507 |
+
|
508 |
+
// calculate the appropriate x and y position in the document
|
509 |
+
switch (placement) {
|
510 |
+
case 'n':
|
511 |
+
left = objectOffset.left + objectWidth / 2;
|
512 |
+
top = objectOffset.top;
|
513 |
+
break;
|
514 |
+
case 'e':
|
515 |
+
left = objectOffset.left + objectWidth;
|
516 |
+
top = objectOffset.top + objectHeight / 2;
|
517 |
+
break;
|
518 |
+
case 's':
|
519 |
+
left = objectOffset.left + objectWidth / 2;
|
520 |
+
top = objectOffset.top + objectHeight;
|
521 |
+
break;
|
522 |
+
case 'w':
|
523 |
+
left = objectOffset.left;
|
524 |
+
top = objectOffset.top + objectHeight / 2;
|
525 |
+
break;
|
526 |
+
case 'nw':
|
527 |
+
left = objectOffset.left;
|
528 |
+
top = objectOffset.top;
|
529 |
+
break;
|
530 |
+
case 'ne':
|
531 |
+
left = objectOffset.left + objectWidth;
|
532 |
+
top = objectOffset.top;
|
533 |
+
break;
|
534 |
+
case 'sw':
|
535 |
+
left = objectOffset.left;
|
536 |
+
top = objectOffset.top + objectHeight;
|
537 |
+
break;
|
538 |
+
case 'se':
|
539 |
+
left = objectOffset.left + objectWidth;
|
540 |
+
top = objectOffset.top + objectHeight;
|
541 |
+
break;
|
542 |
+
}
|
543 |
+
|
544 |
+
return {
|
545 |
+
top: top,
|
546 |
+
left: left
|
547 |
+
};
|
548 |
+
}
|
549 |
+
|
550 |
+
/**
|
551 |
+
* Finds the tooltip attachment point in the document for a SVG element for
|
552 |
+
* the specified placement.
|
553 |
+
* @private
|
554 |
+
* @param {jQuery} element The element that the tooltip should target.
|
555 |
+
* @param {string} placement The placement for the tooltip.
|
556 |
+
* @return {Object} An object with the top,left position values.
|
557 |
+
*/
|
558 |
+
function getSvgPlacement(element, placement) {
|
559 |
+
var svgElement = element.closest('svg')[0],
|
560 |
+
domElement = element[0],
|
561 |
+
point = svgElement.createSVGPoint(),
|
562 |
+
boundingBox = domElement.getBBox(),
|
563 |
+
matrix = domElement.getScreenCTM(),
|
564 |
+
halfWidth = boundingBox.width / 2,
|
565 |
+
halfHeight = boundingBox.height / 2,
|
566 |
+
placements = [],
|
567 |
+
placementKeys = ['nw', 'n', 'ne', 'e', 'se', 's', 'sw', 'w'],
|
568 |
+
coords,
|
569 |
+
rotation,
|
570 |
+
steps,
|
571 |
+
x;
|
572 |
+
|
573 |
+
function pushPlacement() {
|
574 |
+
placements.push(point.matrixTransform(matrix));
|
575 |
+
}
|
576 |
+
|
577 |
+
// get bounding box corners and midpoints
|
578 |
+
point.x = boundingBox.x;
|
579 |
+
point.y = boundingBox.y;
|
580 |
+
pushPlacement();
|
581 |
+
point.x += halfWidth;
|
582 |
+
pushPlacement();
|
583 |
+
point.x += halfWidth;
|
584 |
+
pushPlacement();
|
585 |
+
point.y += halfHeight;
|
586 |
+
pushPlacement();
|
587 |
+
point.y += halfHeight;
|
588 |
+
pushPlacement();
|
589 |
+
point.x -= halfWidth;
|
590 |
+
pushPlacement();
|
591 |
+
point.x -= halfWidth;
|
592 |
+
pushPlacement();
|
593 |
+
point.y -= halfHeight;
|
594 |
+
pushPlacement();
|
595 |
+
|
596 |
+
// determine rotation
|
597 |
+
if (placements[0].y !== placements[1].y || placements[0].x !== placements[7].x) {
|
598 |
+
rotation = Math.atan2(matrix.b, matrix.a) * RAD2DEG;
|
599 |
+
steps = Math.ceil(((rotation % 360) - 22.5) / 45);
|
600 |
+
if (steps < 1) {
|
601 |
+
steps += 8;
|
602 |
+
}
|
603 |
+
while (steps--) {
|
604 |
+
placementKeys.push(placementKeys.shift());
|
605 |
+
}
|
606 |
+
}
|
607 |
+
|
608 |
+
// find placement
|
609 |
+
for (x = 0; x < placements.length; x++) {
|
610 |
+
if (placementKeys[x] === placement) {
|
611 |
+
coords = placements[x];
|
612 |
+
break;
|
613 |
+
}
|
614 |
+
}
|
615 |
+
|
616 |
+
return {
|
617 |
+
top: coords.y + session.scrollTop,
|
618 |
+
left: coords.x + session.scrollLeft
|
619 |
+
};
|
620 |
+
}
|
621 |
+
|
622 |
+
// expose methods
|
623 |
+
this.compute = computePlacementCoords;
|
624 |
+
}
|
625 |
+
|
626 |
+
/**
|
627 |
+
* Creates a new tooltip controller.
|
628 |
+
* @private
|
629 |
+
* @constructor
|
630 |
+
* @param {Object} options Options object containing settings.
|
631 |
+
*/
|
632 |
+
function TooltipController(options) {
|
633 |
+
var placementCalculator = new PlacementCalculator(),
|
634 |
+
tipElement = $('#' + options.popupId);
|
635 |
+
|
636 |
+
// build and append tooltip div if it does not already exist
|
637 |
+
if (tipElement.length === 0) {
|
638 |
+
tipElement = $('<div/>', { id: options.popupId });
|
639 |
+
// grab body element if it was not populated when the script loaded
|
640 |
+
// note: this hack exists solely for jsfiddle support
|
641 |
+
if ($body.length === 0) {
|
642 |
+
$body = $('body');
|
643 |
+
}
|
644 |
+
$body.append(tipElement);
|
645 |
+
}
|
646 |
+
|
647 |
+
// hook mousemove for cursor follow tooltips
|
648 |
+
if (options.followMouse) {
|
649 |
+
// only one positionTipOnCursor hook per tooltip element, please
|
650 |
+
if (!tipElement.data(DATA_HASMOUSEMOVE)) {
|
651 |
+
$document.on('mousemove', positionTipOnCursor);
|
652 |
+
$window.on('scroll', positionTipOnCursor);
|
653 |
+
tipElement.data(DATA_HASMOUSEMOVE, true);
|
654 |
+
}
|
655 |
+
}
|
656 |
+
|
657 |
+
// if we want to be able to mouse onto the tooltip then we need to attach
|
658 |
+
// hover events to the tooltip that will cancel a close request on hover and
|
659 |
+
// start a new close request on mouseleave
|
660 |
+
if (options.mouseOnToPopup) {
|
661 |
+
tipElement.on({
|
662 |
+
mouseenter: function tipMouseEnter() {
|
663 |
+
// we only let the mouse stay on the tooltip if it is set to let
|
664 |
+
// users interact with it
|
665 |
+
if (tipElement.data(DATA_MOUSEONTOTIP)) {
|
666 |
+
// check activeHover in case the mouse cursor entered the
|
667 |
+
// tooltip during the fadeOut and close cycle
|
668 |
+
if (session.activeHover) {
|
669 |
+
session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel();
|
670 |
+
}
|
671 |
+
}
|
672 |
+
},
|
673 |
+
mouseleave: function tipMouseLeave() {
|
674 |
+
// check activeHover in case the mouse cursor entered the
|
675 |
+
// tooltip during the fadeOut and close cycle
|
676 |
+
if (session.activeHover) {
|
677 |
+
session.activeHover.data(DATA_DISPLAYCONTROLLER).hide();
|
678 |
+
}
|
679 |
+
}
|
680 |
+
});
|
681 |
+
}
|
682 |
+
|
683 |
+
/**
|
684 |
+
* Gives the specified element the active-hover state and queues up the
|
685 |
+
* showTip function.
|
686 |
+
* @private
|
687 |
+
* @param {jQuery} element The element that the tooltip should target.
|
688 |
+
*/
|
689 |
+
function beginShowTip(element) {
|
690 |
+
element.data(DATA_HASACTIVEHOVER, true);
|
691 |
+
// show tooltip, asap
|
692 |
+
tipElement.queue(function queueTipInit(next) {
|
693 |
+
showTip(element);
|
694 |
+
next();
|
695 |
+
});
|
696 |
+
}
|
697 |
+
|
698 |
+
/**
|
699 |
+
* Shows the tooltip, as soon as possible.
|
700 |
+
* @private
|
701 |
+
* @param {jQuery} element The element that the tooltip should target.
|
702 |
+
*/
|
703 |
+
function showTip(element) {
|
704 |
+
var tipContent;
|
705 |
+
|
706 |
+
// it is possible, especially with keyboard navigation, to move on to
|
707 |
+
// another element with a tooltip during the queue to get to this point
|
708 |
+
// in the code. if that happens then we need to not proceed or we may
|
709 |
+
// have the fadeout callback for the last tooltip execute immediately
|
710 |
+
// after this code runs, causing bugs.
|
711 |
+
if (!element.data(DATA_HASACTIVEHOVER)) {
|
712 |
+
return;
|
713 |
+
}
|
714 |
+
|
715 |
+
// if the tooltip is open and we got asked to open another one then the
|
716 |
+
// old one is still in its fadeOut cycle, so wait and try again
|
717 |
+
if (session.isTipOpen) {
|
718 |
+
if (!session.isClosing) {
|
719 |
+
hideTip(session.activeHover);
|
720 |
+
}
|
721 |
+
tipElement.delay(100).queue(function queueTipAgain(next) {
|
722 |
+
showTip(element);
|
723 |
+
next();
|
724 |
+
});
|
725 |
+
return;
|
726 |
+
}
|
727 |
+
|
728 |
+
// trigger powerTipPreRender event
|
729 |
+
element.trigger('powerTipPreRender');
|
730 |
+
|
731 |
+
// set tooltip content
|
732 |
+
tipContent = getTooltipContent(element);
|
733 |
+
if (tipContent) {
|
734 |
+
tipElement.empty().append(tipContent);
|
735 |
+
} else {
|
736 |
+
// we have no content to display, give up
|
737 |
+
return;
|
738 |
+
}
|
739 |
+
|
740 |
+
// trigger powerTipRender event
|
741 |
+
element.trigger('powerTipRender');
|
742 |
+
|
743 |
+
session.activeHover = element;
|
744 |
+
session.isTipOpen = true;
|
745 |
+
|
746 |
+
tipElement.data(DATA_MOUSEONTOTIP, options.mouseOnToPopup);
|
747 |
+
|
748 |
+
// set tooltip position
|
749 |
+
if (!options.followMouse) {
|
750 |
+
positionTipOnElement(element);
|
751 |
+
session.isFixedTipOpen = true;
|
752 |
+
} else {
|
753 |
+
positionTipOnCursor();
|
754 |
+
}
|
755 |
+
|
756 |
+
// fadein
|
757 |
+
tipElement.fadeIn(options.fadeInTime, function fadeInCallback() {
|
758 |
+
// start desync polling
|
759 |
+
if (!session.desyncTimeout) {
|
760 |
+
session.desyncTimeout = setInterval(closeDesyncedTip, 500);
|
761 |
+
}
|
762 |
+
|
763 |
+
// trigger powerTipOpen event
|
764 |
+
element.trigger('powerTipOpen');
|
765 |
+
});
|
766 |
+
}
|
767 |
+
|
768 |
+
/**
|
769 |
+
* Hides the tooltip.
|
770 |
+
* @private
|
771 |
+
* @param {jQuery} element The element that the tooltip should target.
|
772 |
+
*/
|
773 |
+
function hideTip(element) {
|
774 |
+
// reset session
|
775 |
+
session.isClosing = true;
|
776 |
+
session.activeHover = null;
|
777 |
+
session.isTipOpen = false;
|
778 |
+
|
779 |
+
// stop desync polling
|
780 |
+
session.desyncTimeout = clearInterval(session.desyncTimeout);
|
781 |
+
|
782 |
+
// reset element state
|
783 |
+
element.data(DATA_HASACTIVEHOVER, false);
|
784 |
+
element.data(DATA_FORCEDOPEN, false);
|
785 |
+
|
786 |
+
// fade out
|
787 |
+
tipElement.fadeOut(options.fadeOutTime, function fadeOutCallback() {
|
788 |
+
var coords = new CSSCoordinates();
|
789 |
+
|
790 |
+
// reset session and tooltip element
|
791 |
+
session.isClosing = false;
|
792 |
+
session.isFixedTipOpen = false;
|
793 |
+
tipElement.removeClass();
|
794 |
+
|
795 |
+
// support mouse-follow and fixed position tips at the same time by
|
796 |
+
// moving the tooltip to the last cursor location after it is hidden
|
797 |
+
coords.set('top', session.currentY + options.offset);
|
798 |
+
coords.set('left', session.currentX + options.offset);
|
799 |
+
tipElement.css(coords);
|
800 |
+
|
801 |
+
// trigger powerTipClose event
|
802 |
+
element.trigger('powerTipClose');
|
803 |
+
});
|
804 |
+
}
|
805 |
+
|
806 |
+
/**
|
807 |
+
* Moves the tooltip to the users mouse cursor.
|
808 |
+
* @private
|
809 |
+
*/
|
810 |
+
function positionTipOnCursor() {
|
811 |
+
// to support having fixed tooltips on the same page as cursor tooltips,
|
812 |
+
// where both instances are referencing the same tooltip element, we
|
813 |
+
// need to keep track of the mouse position constantly, but we should
|
814 |
+
// only set the tip location if a fixed tip is not currently open, a tip
|
815 |
+
// open is imminent or active, and the tooltip element in question does
|
816 |
+
// have a mouse-follow using it.
|
817 |
+
if (!session.isFixedTipOpen && (session.isTipOpen || (session.tipOpenImminent && tipElement.data(DATA_HASMOUSEMOVE)))) {
|
818 |
+
// grab measurements
|
819 |
+
var tipWidth = tipElement.outerWidth(),
|
820 |
+
tipHeight = tipElement.outerHeight(),
|
821 |
+
coords = new CSSCoordinates(),
|
822 |
+
collisions,
|
823 |
+
collisionCount;
|
824 |
+
|
825 |
+
// grab collisions
|
826 |
+
coords.set('top', session.currentY + options.offset);
|
827 |
+
coords.set('left', session.currentX + options.offset);
|
828 |
+
collisions = getViewportCollisions(
|
829 |
+
coords,
|
830 |
+
tipWidth,
|
831 |
+
tipHeight
|
832 |
+
);
|
833 |
+
|
834 |
+
// handle tooltip view port collisions
|
835 |
+
if (collisions !== Collision.none) {
|
836 |
+
collisionCount = countFlags(collisions);
|
837 |
+
if (collisionCount === 1) {
|
838 |
+
// if there is only one collision (bottom or right) then
|
839 |
+
// simply constrain the tooltip to the view port
|
840 |
+
if (collisions === Collision.right) {
|
841 |
+
coords.set('left', session.windowWidth - tipWidth);
|
842 |
+
} else if (collisions === Collision.bottom) {
|
843 |
+
coords.set('top', session.scrollTop + session.windowHeight - tipHeight);
|
844 |
+
}
|
845 |
+
} else {
|
846 |
+
// if the tooltip has more than one collision then it is
|
847 |
+
// trapped in the corner and should be flipped to get it out
|
848 |
+
// of the users way
|
849 |
+
coords.set('left', session.currentX - tipWidth - options.offset);
|
850 |
+
coords.set('top', session.currentY - tipHeight - options.offset);
|
851 |
+
}
|
852 |
+
}
|
853 |
+
|
854 |
+
// position the tooltip
|
855 |
+
tipElement.css(coords);
|
856 |
+
}
|
857 |
+
}
|
858 |
+
|
859 |
+
/**
|
860 |
+
* Sets the tooltip to the correct position relative to the specified target
|
861 |
+
* element. Based on options settings.
|
862 |
+
* @private
|
863 |
+
* @param {jQuery} element The element that the tooltip should target.
|
864 |
+
*/
|
865 |
+
function positionTipOnElement(element) {
|
866 |
+
var priorityList,
|
867 |
+
finalPlacement;
|
868 |
+
|
869 |
+
if (options.smartPlacement) {
|
870 |
+
priorityList = $.fn.powerTip.smartPlacementLists[options.placement];
|
871 |
+
|
872 |
+
// iterate over the priority list and use the first placement option
|
873 |
+
// that does not collide with the view port. if they all collide
|
874 |
+
// then the last placement in the list will be used.
|
875 |
+
$.each(priorityList, function(idx, pos) {
|
876 |
+
// place tooltip and find collisions
|
877 |
+
var collisions = getViewportCollisions(
|
878 |
+
placeTooltip(element, pos),
|
879 |
+
tipElement.outerWidth(),
|
880 |
+
tipElement.outerHeight()
|
881 |
+
);
|
882 |
+
|
883 |
+
// update the final placement variable
|
884 |
+
finalPlacement = pos;
|
885 |
+
|
886 |
+
// break if there were no collisions
|
887 |
+
if (collisions === Collision.none) {
|
888 |
+
return false;
|
889 |
+
}
|
890 |
+
});
|
891 |
+
} else {
|
892 |
+
// if we're not going to use the smart placement feature then just
|
893 |
+
// compute the coordinates and do it
|
894 |
+
placeTooltip(element, options.placement);
|
895 |
+
finalPlacement = options.placement;
|
896 |
+
}
|
897 |
+
|
898 |
+
// add placement as class for CSS arrows
|
899 |
+
tipElement.addClass(finalPlacement);
|
900 |
+
}
|
901 |
+
|
902 |
+
/**
|
903 |
+
* Sets the tooltip position to the appropriate values to show the tip at
|
904 |
+
* the specified placement. This function will iterate and test the tooltip
|
905 |
+
* to support elastic tooltips.
|
906 |
+
* @private
|
907 |
+
* @param {jQuery} element The element that the tooltip should target.
|
908 |
+
* @param {string} placement The placement for the tooltip.
|
909 |
+
* @return {CSSCoordinates} A CSSCoordinates object with the top, left, and
|
910 |
+
* right position values.
|
911 |
+
*/
|
912 |
+
function placeTooltip(element, placement) {
|
913 |
+
var iterationCount = 0,
|
914 |
+
tipWidth,
|
915 |
+
tipHeight,
|
916 |
+
coords = new CSSCoordinates();
|
917 |
+
|
918 |
+
// set the tip to 0,0 to get the full expanded width
|
919 |
+
coords.set('top', 0);
|
920 |
+
coords.set('left', 0);
|
921 |
+
tipElement.css(coords);
|
922 |
+
|
923 |
+
// to support elastic tooltips we need to check for a change in the
|
924 |
+
// rendered dimensions after the tooltip has been positioned
|
925 |
+
do {
|
926 |
+
// grab the current tip dimensions
|
927 |
+
tipWidth = tipElement.outerWidth();
|
928 |
+
tipHeight = tipElement.outerHeight();
|
929 |
+
|
930 |
+
// get placement coordinates
|
931 |
+
coords = placementCalculator.compute(
|
932 |
+
element,
|
933 |
+
placement,
|
934 |
+
tipWidth,
|
935 |
+
tipHeight,
|
936 |
+
options.offset
|
937 |
+
);
|
938 |
+
|
939 |
+
// place the tooltip
|
940 |
+
tipElement.css(coords);
|
941 |
+
} while (
|
942 |
+
// sanity check: limit to 5 iterations, and...
|
943 |
+
++iterationCount <= 5 &&
|
944 |
+
// try again if the dimensions changed after placement
|
945 |
+
(tipWidth !== tipElement.outerWidth() || tipHeight !== tipElement.outerHeight())
|
946 |
+
);
|
947 |
+
|
948 |
+
return coords;
|
949 |
+
}
|
950 |
+
|
951 |
+
/**
|
952 |
+
* Checks for a tooltip desync and closes the tooltip if one occurs.
|
953 |
+
* @private
|
954 |
+
*/
|
955 |
+
function closeDesyncedTip() {
|
956 |
+
var isDesynced = false;
|
957 |
+
// It is possible for the mouse cursor to leave an element without
|
958 |
+
// firing the mouseleave or blur event. This most commonly happens when
|
959 |
+
// the element is disabled under mouse cursor. If this happens it will
|
960 |
+
// result in a desynced tooltip because the tooltip was never asked to
|
961 |
+
// close. So we should periodically check for a desync situation and
|
962 |
+
// close the tip if such a situation arises.
|
963 |
+
if (session.isTipOpen && !session.isClosing && !session.delayInProgress) {
|
964 |
+
// user moused onto another tip or active hover is disabled
|
965 |
+
if (session.activeHover.data(DATA_HASACTIVEHOVER) === false || session.activeHover.is(':disabled')) {
|
966 |
+
isDesynced = true;
|
967 |
+
} else {
|
968 |
+
// hanging tip - have to test if mouse position is not over the
|
969 |
+
// active hover and not over a tooltip set to let the user
|
970 |
+
// interact with it.
|
971 |
+
// for keyboard navigation: this only counts if the element does
|
972 |
+
// not have focus.
|
973 |
+
// for tooltips opened via the api: we need to check if it has
|
974 |
+
// the forcedOpen flag.
|
975 |
+
if (!isMouseOver(session.activeHover) && !session.activeHover.is(':focus') && !session.activeHover.data(DATA_FORCEDOPEN)) {
|
976 |
+
if (tipElement.data(DATA_MOUSEONTOTIP)) {
|
977 |
+
if (!isMouseOver(tipElement)) {
|
978 |
+
isDesynced = true;
|
979 |
+
}
|
980 |
+
} else {
|
981 |
+
isDesynced = true;
|
982 |
+
}
|
983 |
+
}
|
984 |
+
}
|
985 |
+
|
986 |
+
if (isDesynced) {
|
987 |
+
// close the desynced tip
|
988 |
+
hideTip(session.activeHover);
|
989 |
+
}
|
990 |
+
}
|
991 |
+
}
|
992 |
+
|
993 |
+
// expose methods
|
994 |
+
this.showTip = beginShowTip;
|
995 |
+
this.hideTip = hideTip;
|
996 |
+
this.resetPosition = positionTipOnElement;
|
997 |
+
}
|
998 |
+
|
999 |
+
/**
|
1000 |
+
* Determine whether a jQuery object is an SVG element
|
1001 |
+
* @private
|
1002 |
+
* @param {jQuery} element The element to check
|
1003 |
+
* @return {boolean} Whether this is an SVG element
|
1004 |
+
*/
|
1005 |
+
function isSvgElement(element) {
|
1006 |
+
return window.SVGElement && element[0] instanceof SVGElement;
|
1007 |
+
}
|
1008 |
+
|
1009 |
+
/**
|
1010 |
+
* Initializes the viewport dimension cache and hooks up the mouse position
|
1011 |
+
* tracking and viewport dimension tracking events.
|
1012 |
+
* Prevents attaching the events more than once.
|
1013 |
+
* @private
|
1014 |
+
*/
|
1015 |
+
function initTracking() {
|
1016 |
+
if (!session.mouseTrackingActive) {
|
1017 |
+
session.mouseTrackingActive = true;
|
1018 |
+
|
1019 |
+
// grab the current viewport dimensions on load
|
1020 |
+
$(function getViewportDimensions() {
|
1021 |
+
session.scrollLeft = $window.scrollLeft();
|
1022 |
+
session.scrollTop = $window.scrollTop();
|
1023 |
+
session.windowWidth = $window.width();
|
1024 |
+
session.windowHeight = $window.height();
|
1025 |
+
});
|
1026 |
+
|
1027 |
+
// hook mouse move tracking
|
1028 |
+
$document.on('mousemove', trackMouse);
|
1029 |
+
|
1030 |
+
// hook viewport dimensions tracking
|
1031 |
+
$window.on({
|
1032 |
+
resize: function trackResize() {
|
1033 |
+
session.windowWidth = $window.width();
|
1034 |
+
session.windowHeight = $window.height();
|
1035 |
+
},
|
1036 |
+
scroll: function trackScroll() {
|
1037 |
+
var x = $window.scrollLeft(),
|
1038 |
+
y = $window.scrollTop();
|
1039 |
+
if (x !== session.scrollLeft) {
|
1040 |
+
session.currentX += x - session.scrollLeft;
|
1041 |
+
session.scrollLeft = x;
|
1042 |
+
}
|
1043 |
+
if (y !== session.scrollTop) {
|
1044 |
+
session.currentY += y - session.scrollTop;
|
1045 |
+
session.scrollTop = y;
|
1046 |
+
}
|
1047 |
+
}
|
1048 |
+
});
|
1049 |
+
}
|
1050 |
+
}
|
1051 |
+
|
1052 |
+
/**
|
1053 |
+
* Saves the current mouse coordinates to the session object.
|
1054 |
+
* @private
|
1055 |
+
* @param {jQuery.Event} event The mousemove event for the document.
|
1056 |
+
*/
|
1057 |
+
function trackMouse(event) {
|
1058 |
+
session.currentX = event.pageX;
|
1059 |
+
session.currentY = event.pageY;
|
1060 |
+
}
|
1061 |
+
|
1062 |
+
/**
|
1063 |
+
* Tests if the mouse is currently over the specified element.
|
1064 |
+
* @private
|
1065 |
+
* @param {jQuery} element The element to check for hover.
|
1066 |
+
* @return {boolean}
|
1067 |
+
*/
|
1068 |
+
function isMouseOver(element) {
|
1069 |
+
// use getBoundingClientRect() because jQuery's width() and height()
|
1070 |
+
// methods do not work with SVG elements
|
1071 |
+
// compute width/height because those properties do not exist on the object
|
1072 |
+
// returned by getBoundingClientRect() in older versions of IE
|
1073 |
+
var elementPosition = element.offset(),
|
1074 |
+
elementBox = element[0].getBoundingClientRect(),
|
1075 |
+
elementWidth = elementBox.right - elementBox.left,
|
1076 |
+
elementHeight = elementBox.bottom - elementBox.top;
|
1077 |
+
|
1078 |
+
return session.currentX >= elementPosition.left &&
|
1079 |
+
session.currentX <= elementPosition.left + elementWidth &&
|
1080 |
+
session.currentY >= elementPosition.top &&
|
1081 |
+
session.currentY <= elementPosition.top + elementHeight;
|
1082 |
+
}
|
1083 |
+
|
1084 |
+
/**
|
1085 |
+
* Fetches the tooltip content from the specified element's data attributes.
|
1086 |
+
* @private
|
1087 |
+
* @param {jQuery} element The element to get the tooltip content for.
|
1088 |
+
* @return {(string|jQuery|undefined)} The text/HTML string, jQuery object, or
|
1089 |
+
* undefined if there was no tooltip content for the element.
|
1090 |
+
*/
|
1091 |
+
function getTooltipContent(element) {
|
1092 |
+
var tipText = element.data(DATA_POWERTIP),
|
1093 |
+
tipObject = element.data(DATA_POWERTIPJQ),
|
1094 |
+
tipTarget = element.data(DATA_POWERTIPTARGET),
|
1095 |
+
targetElement,
|
1096 |
+
content;
|
1097 |
+
|
1098 |
+
if (tipText) {
|
1099 |
+
if ($.isFunction(tipText)) {
|
1100 |
+
tipText = tipText.call(element[0]);
|
1101 |
+
}
|
1102 |
+
content = tipText;
|
1103 |
+
} else if (tipObject) {
|
1104 |
+
if ($.isFunction(tipObject)) {
|
1105 |
+
tipObject = tipObject.call(element[0]);
|
1106 |
+
}
|
1107 |
+
if (tipObject.length > 0) {
|
1108 |
+
content = tipObject.clone(true, true);
|
1109 |
+
}
|
1110 |
+
} else if (tipTarget) {
|
1111 |
+
targetElement = $('#' + tipTarget);
|
1112 |
+
if (targetElement.length > 0) {
|
1113 |
+
content = targetElement.html();
|
1114 |
+
}
|
1115 |
+
}
|
1116 |
+
|
1117 |
+
return content;
|
1118 |
+
}
|
1119 |
+
|
1120 |
+
/**
|
1121 |
+
* Finds any viewport collisions that an element (the tooltip) would have if it
|
1122 |
+
* were absolutely positioned at the specified coordinates.
|
1123 |
+
* @private
|
1124 |
+
* @param {CSSCoordinates} coords Coordinates for the element.
|
1125 |
+
* @param {number} elementWidth Width of the element in pixels.
|
1126 |
+
* @param {number} elementHeight Height of the element in pixels.
|
1127 |
+
* @return {number} Value with the collision flags.
|
1128 |
+
*/
|
1129 |
+
function getViewportCollisions(coords, elementWidth, elementHeight) {
|
1130 |
+
var viewportTop = session.scrollTop,
|
1131 |
+
viewportLeft = session.scrollLeft,
|
1132 |
+
viewportBottom = viewportTop + session.windowHeight,
|
1133 |
+
viewportRight = viewportLeft + session.windowWidth,
|
1134 |
+
collisions = Collision.none;
|
1135 |
+
|
1136 |
+
if (coords.top < viewportTop || Math.abs(coords.bottom - session.windowHeight) - elementHeight < viewportTop) {
|
1137 |
+
collisions |= Collision.top;
|
1138 |
+
}
|
1139 |
+
if (coords.top + elementHeight > viewportBottom || Math.abs(coords.bottom - session.windowHeight) > viewportBottom) {
|
1140 |
+
collisions |= Collision.bottom;
|
1141 |
+
}
|
1142 |
+
if (coords.left < viewportLeft || coords.right + elementWidth > viewportRight) {
|
1143 |
+
collisions |= Collision.left;
|
1144 |
+
}
|
1145 |
+
if (coords.left + elementWidth > viewportRight || coords.right < viewportLeft) {
|
1146 |
+
collisions |= Collision.right;
|
1147 |
+
}
|
1148 |
+
|
1149 |
+
return collisions;
|
1150 |
+
}
|
1151 |
+
|
1152 |
+
/**
|
1153 |
+
* Counts the number of bits set on a flags value.
|
1154 |
+
* @param {number} value The flags value.
|
1155 |
+
* @return {number} The number of bits that have been set.
|
1156 |
+
*/
|
1157 |
+
function countFlags(value) {
|
1158 |
+
var count = 0;
|
1159 |
+
while (value) {
|
1160 |
+
value &= value - 1;
|
1161 |
+
count++;
|
1162 |
+
}
|
1163 |
+
return count;
|
1164 |
+
}
|
1165 |
+
|
1166 |
+
}));
|
assets/js/jquery.powertip.min.js
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*!
|
2 |
+
PowerTip - v1.2.0 - 2013-04-03
|
3 |
+
http://stevenbenner.github.com/jquery-powertip/
|
4 |
+
Copyright (c) 2013 Steven Benner (http://stevenbenner.com/).
|
5 |
+
Released under MIT license.
|
6 |
+
https://raw.github.com/stevenbenner/jquery-powertip/master/LICENSE.txt
|
7 |
+
*/
|
8 |
+
(function(e){"function"==typeof define&&define.amd?define(["jquery"],e):e(jQuery)})(function(e){function t(){var t=this;t.top="auto",t.left="auto",t.right="auto",t.bottom="auto",t.set=function(o,n){e.isNumeric(n)&&(t[o]=Math.round(n))}}function o(e,t,o){function n(n,i){r(),e.data(v)||(n?(i&&e.data(m,!0),o.showTip(e)):(P.tipOpenImminent=!0,l=setTimeout(function(){l=null,s()},t.intentPollInterval)))}function i(n){r(),P.tipOpenImminent=!1,e.data(v)&&(e.data(m,!1),n?o.hideTip(e):(P.delayInProgress=!0,l=setTimeout(function(){l=null,o.hideTip(e),P.delayInProgress=!1},t.closeDelay)))}function s(){var i=Math.abs(P.previousX-P.currentX),s=Math.abs(P.previousY-P.currentY),r=i+s;t.intentSensitivity>r?o.showTip(e):(P.previousX=P.currentX,P.previousY=P.currentY,n())}function r(){l=clearTimeout(l),P.delayInProgress=!1}function a(){o.resetPosition(e)}var l=null;this.show=n,this.hide=i,this.cancel=r,this.resetPosition=a}function n(){function e(e,i,r,a,l){var p,c=i.split("-")[0],u=new t;switch(p=s(e)?n(e,c):o(e,c),i){case"n":u.set("left",p.left-r/2),u.set("bottom",P.windowHeight-p.top+l);break;case"e":u.set("left",p.left+l),u.set("top",p.top-a/2);break;case"s":u.set("left",p.left-r/2),u.set("top",p.top+l);break;case"w":u.set("top",p.top-a/2),u.set("right",P.windowWidth-p.left+l);break;case"nw":u.set("bottom",P.windowHeight-p.top+l),u.set("right",P.windowWidth-p.left-20);break;case"nw-alt":u.set("left",p.left),u.set("bottom",P.windowHeight-p.top+l);break;case"ne":u.set("left",p.left-20),u.set("bottom",P.windowHeight-p.top+l);break;case"ne-alt":u.set("bottom",P.windowHeight-p.top+l),u.set("right",P.windowWidth-p.left);break;case"sw":u.set("top",p.top+l),u.set("right",P.windowWidth-p.left-20);break;case"sw-alt":u.set("left",p.left),u.set("top",p.top+l);break;case"se":u.set("left",p.left-20),u.set("top",p.top+l);break;case"se-alt":u.set("top",p.top+l),u.set("right",P.windowWidth-p.left)}return u}function o(e,t){var o,n,i=e.offset(),s=e.outerWidth(),r=e.outerHeight();switch(t){case"n":o=i.left+s/2,n=i.top;break;case"e":o=i.left+s,n=i.top+r/2;break;case"s":o=i.left+s/2,n=i.top+r;break;case"w":o=i.left,n=i.top+r/2;break;case"nw":o=i.left,n=i.top;break;case"ne":o=i.left+s,n=i.top;break;case"sw":o=i.left,n=i.top+r;break;case"se":o=i.left+s,n=i.top+r}return{top:n,left:o}}function n(e,t){function o(){d.push(p.matrixTransform(u))}var n,i,s,r,a=e.closest("svg")[0],l=e[0],p=a.createSVGPoint(),c=l.getBBox(),u=l.getScreenCTM(),f=c.width/2,w=c.height/2,d=[],h=["nw","n","ne","e","se","s","sw","w"];if(p.x=c.x,p.y=c.y,o(),p.x+=f,o(),p.x+=f,o(),p.y+=w,o(),p.y+=w,o(),p.x-=f,o(),p.x-=f,o(),p.y-=w,o(),d[0].y!==d[1].y||d[0].x!==d[7].x)for(i=Math.atan2(u.b,u.a)*O,s=Math.ceil((i%360-22.5)/45),1>s&&(s+=8);s--;)h.push(h.shift());for(r=0;d.length>r;r++)if(h[r]===t){n=d[r];break}return{top:n.y+P.scrollTop,left:n.x+P.scrollLeft}}this.compute=e}function i(o){function i(e){e.data(v,!0),O.queue(function(t){s(e),t()})}function s(e){var t;if(e.data(v)){if(P.isTipOpen)return P.isClosing||r(P.activeHover),O.delay(100).queue(function(t){s(e),t()}),void 0;e.trigger("powerTipPreRender"),t=p(e),t&&(O.empty().append(t),e.trigger("powerTipRender"),P.activeHover=e,P.isTipOpen=!0,O.data(g,o.mouseOnToPopup),o.followMouse?a():(b(e),P.isFixedTipOpen=!0),O.fadeIn(o.fadeInTime,function(){P.desyncTimeout||(P.desyncTimeout=setInterval(H,500)),e.trigger("powerTipOpen")}))}}function r(e){P.isClosing=!0,P.activeHover=null,P.isTipOpen=!1,P.desyncTimeout=clearInterval(P.desyncTimeout),e.data(v,!1),e.data(m,!1),O.fadeOut(o.fadeOutTime,function(){var n=new t;P.isClosing=!1,P.isFixedTipOpen=!1,O.removeClass(),n.set("top",P.currentY+o.offset),n.set("left",P.currentX+o.offset),O.css(n),e.trigger("powerTipClose")})}function a(){if(!P.isFixedTipOpen&&(P.isTipOpen||P.tipOpenImminent&&O.data(T))){var e,n,i=O.outerWidth(),s=O.outerHeight(),r=new t;r.set("top",P.currentY+o.offset),r.set("left",P.currentX+o.offset),e=c(r,i,s),e!==I.none&&(n=u(e),1===n?e===I.right?r.set("left",P.windowWidth-i):e===I.bottom&&r.set("top",P.scrollTop+P.windowHeight-s):(r.set("left",P.currentX-i-o.offset),r.set("top",P.currentY-s-o.offset))),O.css(r)}}function b(t){var n,i;o.smartPlacement?(n=e.fn.powerTip.smartPlacementLists[o.placement],e.each(n,function(e,o){var n=c(y(t,o),O.outerWidth(),O.outerHeight());return i=o,n===I.none?!1:void 0})):(y(t,o.placement),i=o.placement),O.addClass(i)}function y(e,n){var i,s,r=0,a=new t;a.set("top",0),a.set("left",0),O.css(a);do i=O.outerWidth(),s=O.outerHeight(),a=k.compute(e,n,i,s,o.offset),O.css(a);while(5>=++r&&(i!==O.outerWidth()||s!==O.outerHeight()));return a}function H(){var e=!1;!P.isTipOpen||P.isClosing||P.delayInProgress||(P.activeHover.data(v)===!1||P.activeHover.is(":disabled")?e=!0:l(P.activeHover)||P.activeHover.is(":focus")||P.activeHover.data(m)||(O.data(g)?l(O)||(e=!0):e=!0),e&&r(P.activeHover))}var k=new n,O=e("#"+o.popupId);0===O.length&&(O=e("<div/>",{id:o.popupId}),0===d.length&&(d=e("body")),d.append(O)),o.followMouse&&(O.data(T)||(f.on("mousemove",a),w.on("scroll",a),O.data(T,!0))),o.mouseOnToPopup&&O.on({mouseenter:function(){O.data(g)&&P.activeHover&&P.activeHover.data(h).cancel()},mouseleave:function(){P.activeHover&&P.activeHover.data(h).hide()}}),this.showTip=i,this.hideTip=r,this.resetPosition=b}function s(e){return window.SVGElement&&e[0]instanceof SVGElement}function r(){P.mouseTrackingActive||(P.mouseTrackingActive=!0,e(function(){P.scrollLeft=w.scrollLeft(),P.scrollTop=w.scrollTop(),P.windowWidth=w.width(),P.windowHeight=w.height()}),f.on("mousemove",a),w.on({resize:function(){P.windowWidth=w.width(),P.windowHeight=w.height()},scroll:function(){var e=w.scrollLeft(),t=w.scrollTop();e!==P.scrollLeft&&(P.currentX+=e-P.scrollLeft,P.scrollLeft=e),t!==P.scrollTop&&(P.currentY+=t-P.scrollTop,P.scrollTop=t)}}))}function a(e){P.currentX=e.pageX,P.currentY=e.pageY}function l(e){var t=e.offset(),o=e[0].getBoundingClientRect(),n=o.right-o.left,i=o.bottom-o.top;return P.currentX>=t.left&&P.currentX<=t.left+n&&P.currentY>=t.top&&P.currentY<=t.top+i}function p(t){var o,n,i=t.data(y),s=t.data(H),r=t.data(k);return i?(e.isFunction(i)&&(i=i.call(t[0])),n=i):s?(e.isFunction(s)&&(s=s.call(t[0])),s.length>0&&(n=s.clone(!0,!0))):r&&(o=e("#"+r),o.length>0&&(n=o.html())),n}function c(e,t,o){var n=P.scrollTop,i=P.scrollLeft,s=n+P.windowHeight,r=i+P.windowWidth,a=I.none;return(n>e.top||n>Math.abs(e.bottom-P.windowHeight)-o)&&(a|=I.top),(e.top+o>s||Math.abs(e.bottom-P.windowHeight)>s)&&(a|=I.bottom),(i>e.left||e.right+t>r)&&(a|=I.left),(e.left+t>r||i>e.right)&&(a|=I.right),a}function u(e){for(var t=0;e;)e&=e-1,t++;return t}var f=e(document),w=e(window),d=e("body"),h="displayController",v="hasActiveHover",m="forcedOpen",T="hasMouseMove",g="mouseOnToPopup",b="originalTitle",y="powertip",H="powertipjq",k="powertiptarget",O=180/Math.PI,P={isTipOpen:!1,isFixedTipOpen:!1,isClosing:!1,tipOpenImminent:!1,activeHover:null,currentX:0,currentY:0,previousX:0,previousY:0,desyncTimeout:null,mouseTrackingActive:!1,delayInProgress:!1,windowWidth:0,windowHeight:0,scrollTop:0,scrollLeft:0},I={none:0,top:1,bottom:2,left:4,right:8};e.fn.powerTip=function(t,n){if(!this.length)return this;if("string"===e.type(t)&&e.powerTip[t])return e.powerTip[t].call(this,this,n);var s=e.extend({},e.fn.powerTip.defaults,t),a=new i(s);return r(),this.each(function(){var t,n=e(this),i=n.data(y),r=n.data(H),l=n.data(k);n.data(h)&&e.powerTip.destroy(n),t=n.attr("title"),i||l||r||!t||(n.data(y,t),n.data(b,t),n.removeAttr("title")),n.data(h,new o(n,s,a))}),s.manual||this.on({"mouseenter.powertip":function(t){e.powerTip.show(this,t)},"mouseleave.powertip":function(){e.powerTip.hide(this)},"focus.powertip":function(){e.powerTip.show(this)},"blur.powertip":function(){e.powerTip.hide(this,!0)},"keydown.powertip":function(t){27===t.keyCode&&e.powerTip.hide(this,!0)}}),this},e.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:!1,popupId:"powerTip",intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:!1,offset:10,mouseOnToPopup:!1,manual:!1},e.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]},e.powerTip={show:function(t,o){return o?(a(o),P.previousX=o.pageX,P.previousY=o.pageY,e(t).data(h).show()):e(t).first().data(h).show(!0,!0),t},reposition:function(t){return e(t).first().data(h).resetPosition(),t},hide:function(t,o){return t?e(t).first().data(h).hide(o):P.activeHover&&P.activeHover.data(h).hide(!0),t},destroy:function(t){return e(t).off(".powertip").each(function(){var t=e(this),o=[b,h,v,m];t.data(b)&&(t.attr("title",t.data(b)),o.push(y)),t.removeData(o)}),t}},e.powerTip.showTip=e.powerTip.show,e.powerTip.closeTip=e.powerTip.hide});
|
includes/class-lsow-setup.php
CHANGED
@@ -194,7 +194,7 @@ if (!class_exists('LSOW_Setup')):
|
|
194 |
}
|
195 |
|
196 |
function custom_fields_class_paths($class_paths) {
|
197 |
-
$class_paths[] = LSOW_PLUGIN_DIR . 'includes/
|
198 |
return $class_paths;
|
199 |
}
|
200 |
|
194 |
}
|
195 |
|
196 |
function custom_fields_class_paths($class_paths) {
|
197 |
+
$class_paths[] = LSOW_PLUGIN_DIR . 'includes/fields/';
|
198 |
return $class_paths;
|
199 |
}
|
200 |
|
includes/fields/css/images/ui-icons_444444_256x240.png
ADDED
Binary file
|
includes/fields/css/images/ui-icons_555555_256x240.png
ADDED
Binary file
|
includes/fields/css/images/ui-icons_777620_256x240.png
ADDED
Binary file
|
includes/fields/css/images/ui-icons_777777_256x240.png
ADDED
Binary file
|
includes/fields/css/images/ui-icons_cc0000_256x240.png
ADDED
Binary file
|
includes/fields/css/images/ui-icons_ffffff_256x240.png
ADDED
Binary file
|
includes/fields/css/jquery-ui-timepicker-addon.css
ADDED
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.ui-timepicker-div .ui-widget-header { margin-bottom: 8px; }
|
2 |
+
.ui-timepicker-div dl { text-align: left; }
|
3 |
+
.ui-timepicker-div dl dt { float: left; clear:left; padding: 0 0 0 5px; }
|
4 |
+
.ui-timepicker-div dl dd { margin: 0 10px 10px 40%; }
|
5 |
+
.ui-timepicker-div td { font-size: 90%; }
|
6 |
+
.ui-tpicker-grid-label { background: none; border: none; margin: 0; padding: 0; }
|
7 |
+
.ui-timepicker-div .ui_tpicker_unit_hide{ display: none; }
|
8 |
+
|
9 |
+
.ui-timepicker-div .ui_tpicker_time .ui_tpicker_time_input { background: none; color: inherit; border: none; outline: none; border-bottom: solid 1px #555; width: 95%; }
|
10 |
+
.ui-timepicker-div .ui_tpicker_time .ui_tpicker_time_input:focus { border-bottom-color: #aaa; }
|
11 |
+
|
12 |
+
.ui-timepicker-rtl{ direction: rtl; }
|
13 |
+
.ui-timepicker-rtl dl { text-align: right; padding: 0 5px 0 0; }
|
14 |
+
.ui-timepicker-rtl dl dt{ float: right; clear: right; }
|
15 |
+
.ui-timepicker-rtl dl dd { margin: 0 40% 10px 10px; }
|
16 |
+
|
17 |
+
/* Shortened version style */
|
18 |
+
.ui-timepicker-div.ui-timepicker-oneLine { padding-right: 2px; }
|
19 |
+
.ui-timepicker-div.ui-timepicker-oneLine .ui_tpicker_time,
|
20 |
+
.ui-timepicker-div.ui-timepicker-oneLine dt { display: none; }
|
21 |
+
.ui-timepicker-div.ui-timepicker-oneLine .ui_tpicker_time_label { display: block; padding-top: 2px; }
|
22 |
+
.ui-timepicker-div.ui-timepicker-oneLine dl { text-align: right; }
|
23 |
+
.ui-timepicker-div.ui-timepicker-oneLine dl dd,
|
24 |
+
.ui-timepicker-div.ui-timepicker-oneLine dl dd > div { display:inline-block; margin:0; }
|
25 |
+
.ui-timepicker-div.ui-timepicker-oneLine dl dd.ui_tpicker_minute:before,
|
26 |
+
.ui-timepicker-div.ui-timepicker-oneLine dl dd.ui_tpicker_second:before { content:':'; display:inline-block; }
|
27 |
+
.ui-timepicker-div.ui-timepicker-oneLine dl dd.ui_tpicker_millisec:before,
|
28 |
+
.ui-timepicker-div.ui-timepicker-oneLine dl dd.ui_tpicker_microsec:before { content:'.'; display:inline-block; }
|
29 |
+
.ui-timepicker-div.ui-timepicker-oneLine .ui_tpicker_unit_hide,
|
30 |
+
.ui-timepicker-div.ui-timepicker-oneLine .ui_tpicker_unit_hide:before{ display: none; }
|
includes/fields/css/jquery-ui.css
ADDED
@@ -0,0 +1,715 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*! jQuery UI - v1.11.4 - 2016-05-12
|
2 |
+
* http://jqueryui.com
|
3 |
+
* Includes: core.css, datepicker.css, slider.css, theme.css
|
4 |
+
* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Arial%2CHelvetica%2Csans-serif&fsDefault=1em&fwDefault=normal&cornerRadius=3px&bgColorHeader=e9e9e9&bgTextureHeader=flat&borderColorHeader=dddddd&fcHeader=333333&iconColorHeader=444444&bgColorContent=ffffff&bgTextureContent=flat&borderColorContent=dddddd&fcContent=333333&iconColorContent=444444&bgColorDefault=f6f6f6&bgTextureDefault=flat&borderColorDefault=c5c5c5&fcDefault=454545&iconColorDefault=777777&bgColorHover=ededed&bgTextureHover=flat&borderColorHover=cccccc&fcHover=2b2b2b&iconColorHover=555555&bgColorActive=007fff&bgTextureActive=flat&borderColorActive=003eff&fcActive=ffffff&iconColorActive=ffffff&bgColorHighlight=fffa90&bgTextureHighlight=flat&borderColorHighlight=dad55e&fcHighlight=777620&iconColorHighlight=777620&bgColorError=fddfdf&bgTextureError=flat&borderColorError=f1a899&fcError=5f3f3f&iconColorError=cc0000&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=666666&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=5px&offsetTopShadow=0px&offsetLeftShadow=0px&cornerRadiusShadow=8px
|
5 |
+
* Copyright jQuery Foundation and other contributors; Licensed MIT */
|
6 |
+
|
7 |
+
/* Layout helpers
|
8 |
+
----------------------------------*/
|
9 |
+
.ui-helper-hidden {
|
10 |
+
display: none;
|
11 |
+
}
|
12 |
+
.ui-helper-hidden-accessible {
|
13 |
+
border: 0;
|
14 |
+
clip: rect(0 0 0 0);
|
15 |
+
height: 1px;
|
16 |
+
margin: -1px;
|
17 |
+
overflow: hidden;
|
18 |
+
padding: 0;
|
19 |
+
position: absolute;
|
20 |
+
width: 1px;
|
21 |
+
}
|
22 |
+
.ui-helper-reset {
|
23 |
+
margin: 0;
|
24 |
+
padding: 0;
|
25 |
+
border: 0;
|
26 |
+
outline: 0;
|
27 |
+
line-height: 1.3;
|
28 |
+
text-decoration: none;
|
29 |
+
font-size: 100%;
|
30 |
+
list-style: none;
|
31 |
+
}
|
32 |
+
.ui-helper-clearfix:before,
|
33 |
+
.ui-helper-clearfix:after {
|
34 |
+
content: "";
|
35 |
+
display: table;
|
36 |
+
border-collapse: collapse;
|
37 |
+
}
|
38 |
+
.ui-helper-clearfix:after {
|
39 |
+
clear: both;
|
40 |
+
}
|
41 |
+
.ui-helper-clearfix {
|
42 |
+
min-height: 0; /* support: IE7 */
|
43 |
+
}
|
44 |
+
.ui-helper-zfix {
|
45 |
+
width: 100%;
|
46 |
+
height: 100%;
|
47 |
+
top: 0;
|
48 |
+
left: 0;
|
49 |
+
position: absolute;
|
50 |
+
opacity: 0;
|
51 |
+
filter:Alpha(Opacity=0); /* support: IE8 */
|
52 |
+
}
|
53 |
+
|
54 |
+
.ui-front {
|
55 |
+
z-index: 100;
|
56 |
+
}
|
57 |
+
|
58 |
+
|
59 |
+
/* Interaction Cues
|
60 |
+
----------------------------------*/
|
61 |
+
.ui-state-disabled {
|
62 |
+
cursor: default !important;
|
63 |
+
}
|
64 |
+
|
65 |
+
|
66 |
+
/* Icons
|
67 |
+
----------------------------------*/
|
68 |
+
|
69 |
+
/* states and images */
|
70 |
+
.ui-icon {
|
71 |
+
display: block;
|
72 |
+
text-indent: -99999px;
|
73 |
+
overflow: hidden;
|
74 |
+
background-repeat: no-repeat;
|
75 |
+
}
|
76 |
+
|
77 |
+
|
78 |
+
/* Misc visuals
|
79 |
+
----------------------------------*/
|
80 |
+
|
81 |
+
/* Overlays */
|
82 |
+
.ui-widget-overlay {
|
83 |
+
position: fixed;
|
84 |
+
top: 0;
|
85 |
+
left: 0;
|
86 |
+
width: 100%;
|
87 |
+
height: 100%;
|
88 |
+
}
|
89 |
+
.ui-datepicker {
|
90 |
+
width: 17em;
|
91 |
+
padding: .2em .2em 0;
|
92 |
+
display: none;
|
93 |
+
}
|
94 |
+
.ui-datepicker .ui-datepicker-header {
|
95 |
+
position: relative;
|
96 |
+
padding: .2em 0;
|
97 |
+
}
|
98 |
+
.ui-datepicker .ui-datepicker-prev,
|
99 |
+
.ui-datepicker .ui-datepicker-next {
|
100 |
+
position: absolute;
|
101 |
+
top: 2px;
|
102 |
+
width: 1.8em;
|
103 |
+
height: 1.8em;
|
104 |
+
}
|
105 |
+
.ui-datepicker .ui-datepicker-prev-hover,
|
106 |
+
.ui-datepicker .ui-datepicker-next-hover {
|
107 |
+
top: 1px;
|
108 |
+
}
|
109 |
+
.ui-datepicker .ui-datepicker-prev {
|
110 |
+
left: 2px;
|
111 |
+
}
|
112 |
+
.ui-datepicker .ui-datepicker-next {
|
113 |
+
right: 2px;
|
114 |
+
}
|
115 |
+
.ui-datepicker .ui-datepicker-prev-hover {
|
116 |
+
left: 1px;
|
117 |
+
}
|
118 |
+
.ui-datepicker .ui-datepicker-next-hover {
|
119 |
+
right: 1px;
|
120 |
+
}
|
121 |
+
.ui-datepicker .ui-datepicker-prev span,
|
122 |
+
.ui-datepicker .ui-datepicker-next span {
|
123 |
+
display: block;
|
124 |
+
position: absolute;
|
125 |
+
left: 50%;
|
126 |
+
margin-left: -8px;
|
127 |
+
top: 50%;
|
128 |
+
margin-top: -8px;
|
129 |
+
}
|
130 |
+
.ui-datepicker .ui-datepicker-title {
|
131 |
+
margin: 0 2.3em;
|
132 |
+
line-height: 1.8em;
|
133 |
+
text-align: center;
|
134 |
+
}
|
135 |
+
.ui-datepicker .ui-datepicker-title select {
|
136 |
+
font-size: 1em;
|
137 |
+
margin: 1px 0;
|
138 |
+
}
|
139 |
+
.ui-datepicker select.ui-datepicker-month,
|
140 |
+
.ui-datepicker select.ui-datepicker-year {
|
141 |
+
width: 45%;
|
142 |
+
}
|
143 |
+
.ui-datepicker table {
|
144 |
+
width: 100%;
|
145 |
+
font-size: .9em;
|
146 |
+
border-collapse: collapse;
|
147 |
+
margin: 0 0 .4em;
|
148 |
+
}
|
149 |
+
.ui-datepicker th {
|
150 |
+
padding: .7em .3em;
|
151 |
+
text-align: center;
|
152 |
+
font-weight: bold;
|
153 |
+
border: 0;
|
154 |
+
}
|
155 |
+
.ui-datepicker td {
|
156 |
+
border: 0;
|
157 |
+
padding: 1px;
|
158 |
+
}
|
159 |
+
.ui-datepicker td span,
|
160 |
+
.ui-datepicker td a {
|
161 |
+
display: block;
|
162 |
+
padding: .2em;
|
163 |
+
text-align: right;
|
164 |
+
text-decoration: none;
|
165 |
+
}
|
166 |
+
.ui-datepicker .ui-datepicker-buttonpane {
|
167 |
+
background-image: none;
|
168 |
+
margin: .7em 0 0 0;
|
169 |
+
padding: 0 .2em;
|
170 |
+
border-left: 0;
|
171 |
+
border-right: 0;
|
172 |
+
border-bottom: 0;
|
173 |
+
}
|
174 |
+
.ui-datepicker .ui-datepicker-buttonpane button {
|
175 |
+
float: right;
|
176 |
+
margin: .5em .2em .4em;
|
177 |
+
cursor: pointer;
|
178 |
+
padding: .2em .6em .3em .6em;
|
179 |
+
width: auto;
|
180 |
+
overflow: visible;
|
181 |
+
}
|
182 |
+
.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current {
|
183 |
+
float: left;
|
184 |
+
}
|
185 |
+
|
186 |
+
/* with multiple calendars */
|
187 |
+
.ui-datepicker.ui-datepicker-multi {
|
188 |
+
width: auto;
|
189 |
+
}
|
190 |
+
.ui-datepicker-multi .ui-datepicker-group {
|
191 |
+
float: left;
|
192 |
+
}
|
193 |
+
.ui-datepicker-multi .ui-datepicker-group table {
|
194 |
+
width: 95%;
|
195 |
+
margin: 0 auto .4em;
|
196 |
+
}
|
197 |
+
.ui-datepicker-multi-2 .ui-datepicker-group {
|
198 |
+
width: 50%;
|
199 |
+
}
|
200 |
+
.ui-datepicker-multi-3 .ui-datepicker-group {
|
201 |
+
width: 33.3%;
|
202 |
+
}
|
203 |
+
.ui-datepicker-multi-4 .ui-datepicker-group {
|
204 |
+
width: 25%;
|
205 |
+
}
|
206 |
+
.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,
|
207 |
+
.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header {
|
208 |
+
border-left-width: 0;
|
209 |
+
}
|
210 |
+
.ui-datepicker-multi .ui-datepicker-buttonpane {
|
211 |
+
clear: left;
|
212 |
+
}
|
213 |
+
.ui-datepicker-row-break {
|
214 |
+
clear: both;
|
215 |
+
width: 100%;
|
216 |
+
font-size: 0;
|
217 |
+
}
|
218 |
+
|
219 |
+
/* RTL support */
|
220 |
+
.ui-datepicker-rtl {
|
221 |
+
direction: rtl;
|
222 |
+
}
|
223 |
+
.ui-datepicker-rtl .ui-datepicker-prev {
|
224 |
+
right: 2px;
|
225 |
+
left: auto;
|
226 |
+
}
|
227 |
+
.ui-datepicker-rtl .ui-datepicker-next {
|
228 |
+
left: 2px;
|
229 |
+
right: auto;
|
230 |
+
}
|
231 |
+
.ui-datepicker-rtl .ui-datepicker-prev:hover {
|
232 |
+
right: 1px;
|
233 |
+
left: auto;
|
234 |
+
}
|
235 |
+
.ui-datepicker-rtl .ui-datepicker-next:hover {
|
236 |
+
left: 1px;
|
237 |
+
right: auto;
|
238 |
+
}
|
239 |
+
.ui-datepicker-rtl .ui-datepicker-buttonpane {
|
240 |
+
clear: right;
|
241 |
+
}
|
242 |
+
.ui-datepicker-rtl .ui-datepicker-buttonpane button {
|
243 |
+
float: left;
|
244 |
+
}
|
245 |
+
.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,
|
246 |
+
.ui-datepicker-rtl .ui-datepicker-group {
|
247 |
+
float: right;
|
248 |
+
}
|
249 |
+
.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,
|
250 |
+
.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header {
|
251 |
+
border-right-width: 0;
|
252 |
+
border-left-width: 1px;
|
253 |
+
}
|
254 |
+
.ui-slider {
|
255 |
+
position: relative;
|
256 |
+
text-align: left;
|
257 |
+
}
|
258 |
+
.ui-slider .ui-slider-handle {
|
259 |
+
position: absolute;
|
260 |
+
z-index: 2;
|
261 |
+
width: 1.2em;
|
262 |
+
height: 1.2em;
|
263 |
+
cursor: default;
|
264 |
+
-ms-touch-action: none;
|
265 |
+
touch-action: none;
|
266 |
+
}
|
267 |
+
.ui-slider .ui-slider-range {
|
268 |
+
position: absolute;
|
269 |
+
z-index: 1;
|
270 |
+
font-size: .7em;
|
271 |
+
display: block;
|
272 |
+
border: 0;
|
273 |
+
background-position: 0 0;
|
274 |
+
}
|
275 |
+
|
276 |
+
/* support: IE8 - See #6727 */
|
277 |
+
.ui-slider.ui-state-disabled .ui-slider-handle,
|
278 |
+
.ui-slider.ui-state-disabled .ui-slider-range {
|
279 |
+
filter: inherit;
|
280 |
+
}
|
281 |
+
|
282 |
+
.ui-slider-horizontal {
|
283 |
+
height: .8em;
|
284 |
+
}
|
285 |
+
.ui-slider-horizontal .ui-slider-handle {
|
286 |
+
top: -.3em;
|
287 |
+
margin-left: -.6em;
|
288 |
+
}
|
289 |
+
.ui-slider-horizontal .ui-slider-range {
|
290 |
+
top: 0;
|
291 |
+
height: 100%;
|
292 |
+
}
|
293 |
+
.ui-slider-horizontal .ui-slider-range-min {
|
294 |
+
left: 0;
|
295 |
+
}
|
296 |
+
.ui-slider-horizontal .ui-slider-range-max {
|
297 |
+
right: 0;
|
298 |
+
}
|
299 |
+
|
300 |
+
.ui-slider-vertical {
|
301 |
+
width: .8em;
|
302 |
+
height: 100px;
|
303 |
+
}
|
304 |
+
.ui-slider-vertical .ui-slider-handle {
|
305 |
+
left: -.3em;
|
306 |
+
margin-left: 0;
|
307 |
+
margin-bottom: -.6em;
|
308 |
+
}
|
309 |
+
.ui-slider-vertical .ui-slider-range {
|
310 |
+
left: 0;
|
311 |
+
width: 100%;
|
312 |
+
}
|
313 |
+
.ui-slider-vertical .ui-slider-range-min {
|
314 |
+
bottom: 0;
|
315 |
+
}
|
316 |
+
.ui-slider-vertical .ui-slider-range-max {
|
317 |
+
top: 0;
|
318 |
+
}
|
319 |
+
|
320 |
+
/* Component containers
|
321 |
+
----------------------------------*/
|
322 |
+
.ui-widget {
|
323 |
+
font-family: Arial,Helvetica,sans-serif;
|
324 |
+
font-size: 1em;
|
325 |
+
}
|
326 |
+
.ui-widget .ui-widget {
|
327 |
+
font-size: 1em;
|
328 |
+
}
|
329 |
+
.ui-widget input,
|
330 |
+
.ui-widget select,
|
331 |
+
.ui-widget textarea,
|
332 |
+
.ui-widget button {
|
333 |
+
font-family: Arial,Helvetica,sans-serif;
|
334 |
+
font-size: 1em;
|
335 |
+
}
|
336 |
+
.ui-widget-content {
|
337 |
+
border: 1px solid #dddddd;
|
338 |
+
background: #ffffff;
|
339 |
+
color: #333333;
|
340 |
+
}
|
341 |
+
.ui-widget-content a {
|
342 |
+
color: #333333;
|
343 |
+
}
|
344 |
+
.ui-widget-header {
|
345 |
+
border: 1px solid #dddddd;
|
346 |
+
background: #e9e9e9;
|
347 |
+
color: #333333;
|
348 |
+
font-weight: bold;
|
349 |
+
}
|
350 |
+
.ui-widget-header a {
|
351 |
+
color: #333333;
|
352 |
+
}
|
353 |
+
|
354 |
+
/* Interaction states
|
355 |
+
----------------------------------*/
|
356 |
+
.ui-state-default,
|
357 |
+
.ui-widget-content .ui-state-default,
|
358 |
+
.ui-widget-header .ui-state-default {
|
359 |
+
border: 1px solid #c5c5c5;
|
360 |
+
background: #f6f6f6;
|
361 |
+
font-weight: normal;
|
362 |
+
color: #454545;
|
363 |
+
}
|
364 |
+
.ui-state-default a,
|
365 |
+
.ui-state-default a:link,
|
366 |
+
.ui-state-default a:visited {
|
367 |
+
color: #454545;
|
368 |
+
text-decoration: none;
|
369 |
+
}
|
370 |
+
.ui-state-hover,
|
371 |
+
.ui-widget-content .ui-state-hover,
|
372 |
+
.ui-widget-header .ui-state-hover,
|
373 |
+
.ui-state-focus,
|
374 |
+
.ui-widget-content .ui-state-focus,
|
375 |
+
.ui-widget-header .ui-state-focus {
|
376 |
+
border: 1px solid #cccccc;
|
377 |
+
background: #ededed;
|
378 |
+
font-weight: normal;
|
379 |
+
color: #2b2b2b;
|
380 |
+
}
|
381 |
+
.ui-state-hover a,
|
382 |
+
.ui-state-hover a:hover,
|
383 |
+
.ui-state-hover a:link,
|
384 |
+
.ui-state-hover a:visited,
|
385 |
+
.ui-state-focus a,
|
386 |
+
.ui-state-focus a:hover,
|
387 |
+
.ui-state-focus a:link,
|
388 |
+
.ui-state-focus a:visited {
|
389 |
+
color: #2b2b2b;
|
390 |
+
text-decoration: none;
|
391 |
+
}
|
392 |
+
.ui-state-active,
|
393 |
+
.ui-widget-content .ui-state-active,
|
394 |
+
.ui-widget-header .ui-state-active {
|
395 |
+
border: 1px solid #003eff;
|
396 |
+
background: #007fff;
|
397 |
+
font-weight: normal;
|
398 |
+
color: #ffffff;
|
399 |
+
}
|
400 |
+
.ui-state-active a,
|
401 |
+
.ui-state-active a:link,
|
402 |
+
.ui-state-active a:visited {
|
403 |
+
color: #ffffff;
|
404 |
+
text-decoration: none;
|
405 |
+
}
|
406 |
+
|
407 |
+
/* Interaction Cues
|
408 |
+
----------------------------------*/
|
409 |
+
.ui-state-highlight,
|
410 |
+
.ui-widget-content .ui-state-highlight,
|
411 |
+
.ui-widget-header .ui-state-highlight {
|
412 |
+
border: 1px solid #dad55e;
|
413 |
+
background: #fffa90;
|
414 |
+
color: #777620;
|
415 |
+
}
|
416 |
+
.ui-state-highlight a,
|
417 |
+
.ui-widget-content .ui-state-highlight a,
|
418 |
+
.ui-widget-header .ui-state-highlight a {
|
419 |
+
color: #777620;
|
420 |
+
}
|
421 |
+
.ui-state-error,
|
422 |
+
.ui-widget-content .ui-state-error,
|
423 |
+
.ui-widget-header .ui-state-error {
|
424 |
+
border: 1px solid #f1a899;
|
425 |
+
background: #fddfdf;
|
426 |
+
color: #5f3f3f;
|
427 |
+
}
|
428 |
+
.ui-state-error a,
|
429 |
+
.ui-widget-content .ui-state-error a,
|
430 |
+
.ui-widget-header .ui-state-error a {
|
431 |
+
color: #5f3f3f;
|
432 |
+
}
|
433 |
+
.ui-state-error-text,
|
434 |
+
.ui-widget-content .ui-state-error-text,
|
435 |
+
.ui-widget-header .ui-state-error-text {
|
436 |
+
color: #5f3f3f;
|
437 |
+
}
|
438 |
+
.ui-priority-primary,
|
439 |
+
.ui-widget-content .ui-priority-primary,
|
440 |
+
.ui-widget-header .ui-priority-primary {
|
441 |
+
font-weight: bold;
|
442 |
+
}
|
443 |
+
.ui-priority-secondary,
|
444 |
+
.ui-widget-content .ui-priority-secondary,
|
445 |
+
.ui-widget-header .ui-priority-secondary {
|
446 |
+
opacity: .7;
|
447 |
+
filter:Alpha(Opacity=70); /* support: IE8 */
|
448 |
+
font-weight: normal;
|
449 |
+
}
|
450 |
+
.ui-state-disabled,
|
451 |
+
.ui-widget-content .ui-state-disabled,
|
452 |
+
.ui-widget-header .ui-state-disabled {
|
453 |
+
opacity: .35;
|
454 |
+
filter:Alpha(Opacity=35); /* support: IE8 */
|
455 |
+
background-image: none;
|
456 |
+
}
|
457 |
+
.ui-state-disabled .ui-icon {
|
458 |
+
filter:Alpha(Opacity=35); /* support: IE8 - See #6059 */
|
459 |
+
}
|
460 |
+
|
461 |
+
/* Icons
|
462 |
+
----------------------------------*/
|
463 |
+
|
464 |
+
/* states and images */
|
465 |
+
.ui-icon {
|
466 |
+
width: 16px;
|
467 |
+
height: 16px;
|
468 |
+
}
|
469 |
+
.ui-icon,
|
470 |
+
.ui-widget-content .ui-icon {
|
471 |
+
background-image: url("images/ui-icons_444444_256x240.png");
|
472 |
+
}
|
473 |
+
.ui-widget-header .ui-icon {
|
474 |
+
background-image: url("images/ui-icons_444444_256x240.png");
|
475 |
+
}
|
476 |
+
.ui-state-default .ui-icon {
|
477 |
+
background-image: url("images/ui-icons_777777_256x240.png");
|
478 |
+
}
|
479 |
+
.ui-state-hover .ui-icon,
|
480 |
+
.ui-state-focus .ui-icon {
|
481 |
+
background-image: url("images/ui-icons_555555_256x240.png");
|
482 |
+
}
|
483 |
+
.ui-state-active .ui-icon {
|
484 |
+
background-image: url("images/ui-icons_ffffff_256x240.png");
|
485 |
+
}
|
486 |
+
.ui-state-highlight .ui-icon {
|
487 |
+
background-image: url("images/ui-icons_777620_256x240.png");
|
488 |
+
}
|
489 |
+
.ui-state-error .ui-icon,
|
490 |
+
.ui-state-error-text .ui-icon {
|
491 |
+
background-image: url("images/ui-icons_cc0000_256x240.png");
|
492 |
+
}
|
493 |
+
|
494 |
+
/* positioning */
|
495 |
+
.ui-icon-blank { background-position: 16px 16px; }
|
496 |
+
.ui-icon-carat-1-n { background-position: 0 0; }
|
497 |
+
.ui-icon-carat-1-ne { background-position: -16px 0; }
|
498 |
+
.ui-icon-carat-1-e { background-position: -32px 0; }
|
499 |
+
.ui-icon-carat-1-se { background-position: -48px 0; }
|
500 |
+
.ui-icon-carat-1-s { background-position: -64px 0; }
|
501 |
+
.ui-icon-carat-1-sw { background-position: -80px 0; }
|
502 |
+
.ui-icon-carat-1-w { background-position: -96px 0; }
|
503 |
+
.ui-icon-carat-1-nw { background-position: -112px 0; }
|
504 |
+
.ui-icon-carat-2-n-s { background-position: -128px 0; }
|
505 |
+
.ui-icon-carat-2-e-w { background-position: -144px 0; }
|
506 |
+
.ui-icon-triangle-1-n { background-position: 0 -16px; }
|
507 |
+
.ui-icon-triangle-1-ne { background-position: -16px -16px; }
|
508 |
+
.ui-icon-triangle-1-e { background-position: -32px -16px; }
|
509 |
+
.ui-icon-triangle-1-se { background-position: -48px -16px; }
|
510 |
+
.ui-icon-triangle-1-s { background-position: -64px -16px; }
|
511 |
+
.ui-icon-triangle-1-sw { background-position: -80px -16px; }
|
512 |
+
.ui-icon-triangle-1-w { background-position: -96px -16px; }
|
513 |
+
.ui-icon-triangle-1-nw { background-position: -112px -16px; }
|
514 |
+
.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
|
515 |
+
.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
|
516 |
+
.ui-icon-arrow-1-n { background-position: 0 -32px; }
|
517 |
+
.ui-icon-arrow-1-ne { background-position: -16px -32px; }
|
518 |
+
.ui-icon-arrow-1-e { background-position: -32px -32px; }
|
519 |
+
.ui-icon-arrow-1-se { background-position: -48px -32px; }
|
520 |
+
.ui-icon-arrow-1-s { background-position: -64px -32px; }
|
521 |
+
.ui-icon-arrow-1-sw { background-position: -80px -32px; }
|
522 |
+
.ui-icon-arrow-1-w { background-position: -96px -32px; }
|
523 |
+
.ui-icon-arrow-1-nw { background-position: -112px -32px; }
|
524 |
+
.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
|
525 |
+
.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
|
526 |
+
.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
|
527 |
+
.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
|
528 |
+
.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
|
529 |
+
.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
|
530 |
+
.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
|
531 |
+
.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
|
532 |
+
.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
|
533 |
+
.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
|
534 |
+
.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
|
535 |
+
.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
|
536 |
+
.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
|
537 |
+
.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
|
538 |
+
.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
|
539 |
+
.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
|
540 |
+
.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
|
541 |
+
.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
|
542 |
+
.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
|
543 |
+
.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
|
544 |
+
.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
|
545 |
+
.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
|
546 |
+
.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
|
547 |
+
.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
|
548 |
+
.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
|
549 |
+
.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
|
550 |
+
.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
|
551 |
+
.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
|
552 |
+
.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
|
553 |
+
.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
|
554 |
+
.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
|
555 |
+
.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
|
556 |
+
.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
|
557 |
+
.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
|
558 |
+
.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
|
559 |
+
.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
|
560 |
+
.ui-icon-arrow-4 { background-position: 0 -80px; }
|
561 |
+
.ui-icon-arrow-4-diag { background-position: -16px -80px; }
|
562 |
+
.ui-icon-extlink { background-position: -32px -80px; }
|
563 |
+
.ui-icon-newwin { background-position: -48px -80px; }
|
564 |
+
.ui-icon-refresh { background-position: -64px -80px; }
|
565 |
+
.ui-icon-shuffle { background-position: -80px -80px; }
|
566 |
+
.ui-icon-transfer-e-w { background-position: -96px -80px; }
|
567 |
+
.ui-icon-transferthick-e-w { background-position: -112px -80px; }
|
568 |
+
.ui-icon-folder-collapsed { background-position: 0 -96px; }
|
569 |
+
.ui-icon-folder-open { background-position: -16px -96px; }
|
570 |
+
.ui-icon-document { background-position: -32px -96px; }
|
571 |
+
.ui-icon-document-b { background-position: -48px -96px; }
|
572 |
+
.ui-icon-note { background-position: -64px -96px; }
|
573 |
+
.ui-icon-mail-closed { background-position: -80px -96px; }
|
574 |
+
.ui-icon-mail-open { background-position: -96px -96px; }
|
575 |
+
.ui-icon-suitcase { background-position: -112px -96px; }
|
576 |
+
.ui-icon-comment { background-position: -128px -96px; }
|
577 |
+
.ui-icon-person { background-position: -144px -96px; }
|
578 |
+
.ui-icon-print { background-position: -160px -96px; }
|
579 |
+
.ui-icon-trash { background-position: -176px -96px; }
|
580 |
+
.ui-icon-locked { background-position: -192px -96px; }
|
581 |
+
.ui-icon-unlocked { background-position: -208px -96px; }
|
582 |
+
.ui-icon-bookmark { background-position: -224px -96px; }
|
583 |
+
.ui-icon-tag { background-position: -240px -96px; }
|
584 |
+
.ui-icon-home { background-position: 0 -112px; }
|
585 |
+
.ui-icon-flag { background-position: -16px -112px; }
|
586 |
+
.ui-icon-calendar { background-position: -32px -112px; }
|
587 |
+
.ui-icon-cart { background-position: -48px -112px; }
|
588 |
+
.ui-icon-pencil { background-position: -64px -112px; }
|
589 |
+
.ui-icon-clock { background-position: -80px -112px; }
|
590 |
+
.ui-icon-disk { background-position: -96px -112px; }
|
591 |
+
.ui-icon-calculator { background-position: -112px -112px; }
|
592 |
+
.ui-icon-zoomin { background-position: -128px -112px; }
|
593 |
+
.ui-icon-zoomout { background-position: -144px -112px; }
|
594 |
+
.ui-icon-search { background-position: -160px -112px; }
|
595 |
+
.ui-icon-wrench { background-position: -176px -112px; }
|
596 |
+
.ui-icon-gear { background-position: -192px -112px; }
|
597 |
+
.ui-icon-heart { background-position: -208px -112px; }
|
598 |
+
.ui-icon-star { background-position: -224px -112px; }
|
599 |
+
.ui-icon-link { background-position: -240px -112px; }
|
600 |
+
.ui-icon-cancel { background-position: 0 -128px; }
|
601 |
+
.ui-icon-plus { background-position: -16px -128px; }
|
602 |
+
.ui-icon-plusthick { background-position: -32px -128px; }
|
603 |
+
.ui-icon-minus { background-position: -48px -128px; }
|
604 |
+
.ui-icon-minusthick { background-position: -64px -128px; }
|
605 |
+
.ui-icon-close { background-position: -80px -128px; }
|
606 |
+
.ui-icon-closethick { background-position: -96px -128px; }
|
607 |
+
.ui-icon-key { background-position: -112px -128px; }
|
608 |
+
.ui-icon-lightbulb { background-position: -128px -128px; }
|
609 |
+
.ui-icon-scissors { background-position: -144px -128px; }
|
610 |
+
.ui-icon-clipboard { background-position: -160px -128px; }
|
611 |
+
.ui-icon-copy { background-position: -176px -128px; }
|
612 |
+
.ui-icon-contact { background-position: -192px -128px; }
|
613 |
+
.ui-icon-image { background-position: -208px -128px; }
|
614 |
+
.ui-icon-video { background-position: -224px -128px; }
|
615 |
+
.ui-icon-script { background-position: -240px -128px; }
|
616 |
+
.ui-icon-alert { background-position: 0 -144px; }
|
617 |
+
.ui-icon-info { background-position: -16px -144px; }
|
618 |
+
.ui-icon-notice { background-position: -32px -144px; }
|
619 |
+
.ui-icon-help { background-position: -48px -144px; }
|
620 |
+
.ui-icon-check { background-position: -64px -144px; }
|
621 |
+
.ui-icon-bullet { background-position: -80px -144px; }
|
622 |
+
.ui-icon-radio-on { background-position: -96px -144px; }
|
623 |
+
.ui-icon-radio-off { background-position: -112px -144px; }
|
624 |
+
.ui-icon-pin-w { background-position: -128px -144px; }
|
625 |
+
.ui-icon-pin-s { background-position: -144px -144px; }
|
626 |
+
.ui-icon-play { background-position: 0 -160px; }
|
627 |
+
.ui-icon-pause { background-position: -16px -160px; }
|
628 |
+
.ui-icon-seek-next { background-position: -32px -160px; }
|
629 |
+
.ui-icon-seek-prev { background-position: -48px -160px; }
|
630 |
+
.ui-icon-seek-end { background-position: -64px -160px; }
|
631 |
+
.ui-icon-seek-start { background-position: -80px -160px; }
|
632 |
+
/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
|
633 |
+
.ui-icon-seek-first { background-position: -80px -160px; }
|
634 |
+
.ui-icon-stop { background-position: -96px -160px; }
|
635 |
+
.ui-icon-eject { background-position: -112px -160px; }
|
636 |
+
.ui-icon-volume-off { background-position: -128px -160px; }
|
637 |
+
.ui-icon-volume-on { background-position: -144px -160px; }
|
638 |
+
.ui-icon-power { background-position: 0 -176px; }
|
639 |
+
.ui-icon-signal-diag { background-position: -16px -176px; }
|
640 |
+
.ui-icon-signal { background-position: -32px -176px; }
|
641 |
+
.ui-icon-battery-0 { background-position: -48px -176px; }
|
642 |
+
.ui-icon-battery-1 { background-position: -64px -176px; }
|
643 |
+
.ui-icon-battery-2 { background-position: -80px -176px; }
|
644 |
+
.ui-icon-battery-3 { background-position: -96px -176px; }
|
645 |
+
.ui-icon-circle-plus { background-position: 0 -192px; }
|
646 |
+
.ui-icon-circle-minus { background-position: -16px -192px; }
|
647 |
+
.ui-icon-circle-close { background-position: -32px -192px; }
|
648 |
+
.ui-icon-circle-triangle-e { background-position: -48px -192px; }
|
649 |
+
.ui-icon-circle-triangle-s { background-position: -64px -192px; }
|
650 |
+
.ui-icon-circle-triangle-w { background-position: -80px -192px; }
|
651 |
+
.ui-icon-circle-triangle-n { background-position: -96px -192px; }
|
652 |
+
.ui-icon-circle-arrow-e { background-position: -112px -192px; }
|
653 |
+
.ui-icon-circle-arrow-s { background-position: -128px -192px; }
|
654 |
+
.ui-icon-circle-arrow-w { background-position: -144px -192px; }
|
655 |
+
.ui-icon-circle-arrow-n { background-position: -160px -192px; }
|
656 |
+
.ui-icon-circle-zoomin { background-position: -176px -192px; }
|
657 |
+
.ui-icon-circle-zoomout { background-position: -192px -192px; }
|
658 |
+
.ui-icon-circle-check { background-position: -208px -192px; }
|
659 |
+
.ui-icon-circlesmall-plus { background-position: 0 -208px; }
|
660 |
+
.ui-icon-circlesmall-minus { background-position: -16px -208px; }
|
661 |
+
.ui-icon-circlesmall-close { background-position: -32px -208px; }
|
662 |
+
.ui-icon-squaresmall-plus { background-position: -48px -208px; }
|
663 |
+
.ui-icon-squaresmall-minus { background-position: -64px -208px; }
|
664 |
+
.ui-icon-squaresmall-close { background-position: -80px -208px; }
|
665 |
+
.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
|
666 |
+
.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
|
667 |
+
.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
|
668 |
+
.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
|
669 |
+
.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
|
670 |
+
.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
|
671 |
+
|
672 |
+
|
673 |
+
/* Misc visuals
|
674 |
+
----------------------------------*/
|
675 |
+
|
676 |
+
/* Corner radius */
|
677 |
+
.ui-corner-all,
|
678 |
+
.ui-corner-top,
|
679 |
+
.ui-corner-left,
|
680 |
+
.ui-corner-tl {
|
681 |
+
border-top-left-radius: 3px;
|
682 |
+
}
|
683 |
+
.ui-corner-all,
|
684 |
+
.ui-corner-top,
|
685 |
+
.ui-corner-right,
|
686 |
+
.ui-corner-tr {
|
687 |
+
border-top-right-radius: 3px;
|
688 |
+
}
|
689 |
+
.ui-corner-all,
|
690 |
+
.ui-corner-bottom,
|
691 |
+
.ui-corner-left,
|
692 |
+
.ui-corner-bl {
|
693 |
+
border-bottom-left-radius: 3px;
|
694 |
+
}
|
695 |
+
.ui-corner-all,
|
696 |
+
.ui-corner-bottom,
|
697 |
+
.ui-corner-right,
|
698 |
+
.ui-corner-br {
|
699 |
+
border-bottom-right-radius: 3px;
|
700 |
+
}
|
701 |
+
|
702 |
+
/* Overlays */
|
703 |
+
.ui-widget-overlay {
|
704 |
+
background: #aaaaaa;
|
705 |
+
opacity: .3;
|
706 |
+
filter: Alpha(Opacity=30); /* support: IE8 */
|
707 |
+
}
|
708 |
+
.ui-widget-shadow {
|
709 |
+
margin: 0px 0 0 0px;
|
710 |
+
padding: 5px;
|
711 |
+
background: #666666;
|
712 |
+
opacity: .3;
|
713 |
+
filter: Alpha(Opacity=30); /* support: IE8 */
|
714 |
+
border-radius: 8px;
|
715 |
+
}
|
includes/fields/datepicker.class.php
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Class LSOW_Custom_Field_Datepicker
|
5 |
+
*/
|
6 |
+
class LSOW_Custom_Field_Datepicker extends SiteOrigin_Widget_Field_Text_Input_Base {
|
7 |
+
|
8 |
+
protected function get_input_classes() {
|
9 |
+
$input_classes = parent::get_input_classes();
|
10 |
+
$input_classes[] = 'lsow-widget-input-datepicker';
|
11 |
+
return $input_classes;
|
12 |
+
}
|
13 |
+
|
14 |
+
public function enqueue_scripts() {
|
15 |
+
|
16 |
+
/* load jQuery-ui datepicker */
|
17 |
+
wp_enqueue_script('jquery-ui-datepicker');
|
18 |
+
|
19 |
+
wp_enqueue_script('lsow-datepicker-field', plugin_dir_url(__FILE__) . 'js/datepicker-field' . SOW_BUNDLE_JS_SUFFIX . '.js', array('jquery', 'jquery-ui-datepicker'), SOW_BUNDLE_VERSION);
|
20 |
+
|
21 |
+
wp_enqueue_style('lsow-datepicker-css', plugin_dir_url(__FILE__) . 'css/jquery-ui.css', false, "1.11.4", false);
|
22 |
+
}
|
23 |
+
}
|
includes/fields/js/datepicker-field.js
ADDED
@@ -0,0 +1,41 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
jQuery(function ($) {
|
2 |
+
|
3 |
+
var setup = function (widgetForm) {
|
4 |
+
|
5 |
+
if (typeof widgetForm.data('initialised') == 'undefined') {
|
6 |
+
|
7 |
+
$(widgetForm).find('.lsow-widget-input-datepicker').each(function (index, element) {
|
8 |
+
$(element).datepicker();
|
9 |
+
});
|
10 |
+
|
11 |
+
$(widgetForm).data('initialised', true);
|
12 |
+
}
|
13 |
+
else {
|
14 |
+
setTimeout(function () {
|
15 |
+
setup(widgetForm);
|
16 |
+
}, 500);
|
17 |
+
}
|
18 |
+
};
|
19 |
+
|
20 |
+
$(document).on('sowsetupform', function (e) {
|
21 |
+
var $form = $(e.target);
|
22 |
+
|
23 |
+
if ($form.is('.siteorigin-widget-field-repeater-item-form')) {
|
24 |
+
if ($form.is(':visible')) {
|
25 |
+
setup($form);
|
26 |
+
}
|
27 |
+
else {
|
28 |
+
$form.on('slideToggleOpenComplete', function onSlideToggleComplete() {
|
29 |
+
if ($form.is(':visible')) {
|
30 |
+
setup($form);
|
31 |
+
$form.off('slideToggleOpenComplete');
|
32 |
+
}
|
33 |
+
})
|
34 |
+
}
|
35 |
+
}
|
36 |
+
else {
|
37 |
+
setup($form);
|
38 |
+
}
|
39 |
+
});
|
40 |
+
|
41 |
+
});
|
includes/fields/js/datepicker-field.min.js
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
jQuery(function(e){var i=function(t){"undefined"==typeof t.data("initialised")?(e(t).find(".lsow-widget-input-datepicker").each(function(i,t){e(t).datepicker()}),e(t).data("initialised",!0)):setTimeout(function(){i(t)},500)};e(document).on("sowsetupform",function(t){var n=e(t.target);n.is(".siteorigin-widget-field-repeater-item-form")?n.is(":visible")?i(n):n.on("slideToggleOpenComplete",function(){n.is(":visible")&&(i(n),n.off("slideToggleOpenComplete"))}):i(n)})});
|
includes/fields/js/jquery-ui-timepicker-addon.js
ADDED
@@ -0,0 +1,2291 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*! jQuery Timepicker Addon - v1.6.3 - 2016-04-20
|
2 |
+
* http://trentrichardson.com/examples/timepicker
|
3 |
+
* Copyright (c) 2016 Trent Richardson; Licensed MIT */
|
4 |
+
(function (factory) {
|
5 |
+
if (typeof define === 'function' && define.amd) {
|
6 |
+
define(['jquery', 'jquery-ui'], factory);
|
7 |
+
} else {
|
8 |
+
factory(jQuery);
|
9 |
+
}
|
10 |
+
}(function ($) {
|
11 |
+
|
12 |
+
/*
|
13 |
+
* Lets not redefine timepicker, Prevent "Uncaught RangeError: Maximum call stack size exceeded"
|
14 |
+
*/
|
15 |
+
$.ui.timepicker = $.ui.timepicker || {};
|
16 |
+
if ($.ui.timepicker.version) {
|
17 |
+
return;
|
18 |
+
}
|
19 |
+
|
20 |
+
/*
|
21 |
+
* Extend jQueryUI, get it started with our version number
|
22 |
+
*/
|
23 |
+
$.extend($.ui, {
|
24 |
+
timepicker: {
|
25 |
+
version: "1.6.3"
|
26 |
+
}
|
27 |
+
});
|
28 |
+
|
29 |
+
/*
|
30 |
+
* Timepicker manager.
|
31 |
+
* Use the singleton instance of this class, $.timepicker, to interact with the time picker.
|
32 |
+
* Settings for (groups of) time pickers are maintained in an instance object,
|
33 |
+
* allowing multiple different settings on the same page.
|
34 |
+
*/
|
35 |
+
var Timepicker = function () {
|
36 |
+
this.regional = []; // Available regional settings, indexed by language code
|
37 |
+
this.regional[''] = { // Default regional settings
|
38 |
+
currentText: 'Now',
|
39 |
+
closeText: 'Done',
|
40 |
+
amNames: ['AM', 'A'],
|
41 |
+
pmNames: ['PM', 'P'],
|
42 |
+
timeFormat: 'HH:mm',
|
43 |
+
timeSuffix: '',
|
44 |
+
timeOnlyTitle: 'Choose Time',
|
45 |
+
timeText: 'Time',
|
46 |
+
hourText: 'Hour',
|
47 |
+
minuteText: 'Minute',
|
48 |
+
secondText: 'Second',
|
49 |
+
millisecText: 'Millisecond',
|
50 |
+
microsecText: 'Microsecond',
|
51 |
+
timezoneText: 'Time Zone',
|
52 |
+
isRTL: false
|
53 |
+
};
|
54 |
+
this._defaults = { // Global defaults for all the datetime picker instances
|
55 |
+
showButtonPanel: true,
|
56 |
+
timeOnly: false,
|
57 |
+
timeOnlyShowDate: false,
|
58 |
+
showHour: null,
|
59 |
+
showMinute: null,
|
60 |
+
showSecond: null,
|
61 |
+
showMillisec: null,
|
62 |
+
showMicrosec: null,
|
63 |
+
showTimezone: null,
|
64 |
+
showTime: true,
|
65 |
+
stepHour: 1,
|
66 |
+
stepMinute: 1,
|
67 |
+
stepSecond: 1,
|
68 |
+
stepMillisec: 1,
|
69 |
+
stepMicrosec: 1,
|
70 |
+
hour: 0,
|
71 |
+
minute: 0,
|
72 |
+
second: 0,
|
73 |
+
millisec: 0,
|
74 |
+
microsec: 0,
|
75 |
+
timezone: null,
|
76 |
+
hourMin: 0,
|
77 |
+
minuteMin: 0,
|
78 |
+
secondMin: 0,
|
79 |
+
millisecMin: 0,
|
80 |
+
microsecMin: 0,
|
81 |
+
hourMax: 23,
|
82 |
+
minuteMax: 59,
|
83 |
+
secondMax: 59,
|
84 |
+
millisecMax: 999,
|
85 |
+
microsecMax: 999,
|
86 |
+
minDateTime: null,
|
87 |
+
maxDateTime: null,
|
88 |
+
maxTime: null,
|
89 |
+
minTime: null,
|
90 |
+
onSelect: null,
|
91 |
+
hourGrid: 0,
|
92 |
+
minuteGrid: 0,
|
93 |
+
secondGrid: 0,
|
94 |
+
millisecGrid: 0,
|
95 |
+
microsecGrid: 0,
|
96 |
+
alwaysSetTime: true,
|
97 |
+
separator: ' ',
|
98 |
+
altFieldTimeOnly: true,
|
99 |
+
altTimeFormat: null,
|
100 |
+
altSeparator: null,
|
101 |
+
altTimeSuffix: null,
|
102 |
+
altRedirectFocus: true,
|
103 |
+
pickerTimeFormat: null,
|
104 |
+
pickerTimeSuffix: null,
|
105 |
+
showTimepicker: true,
|
106 |
+
timezoneList: null,
|
107 |
+
addSliderAccess: false,
|
108 |
+
sliderAccessArgs: null,
|
109 |
+
controlType: 'slider',
|
110 |
+
oneLine: false,
|
111 |
+
defaultValue: null,
|
112 |
+
parse: 'strict',
|
113 |
+
afterInject: null
|
114 |
+
};
|
115 |
+
$.extend(this._defaults, this.regional['']);
|
116 |
+
};
|
117 |
+
|
118 |
+
$.extend(Timepicker.prototype, {
|
119 |
+
$input: null,
|
120 |
+
$altInput: null,
|
121 |
+
$timeObj: null,
|
122 |
+
inst: null,
|
123 |
+
hour_slider: null,
|
124 |
+
minute_slider: null,
|
125 |
+
second_slider: null,
|
126 |
+
millisec_slider: null,
|
127 |
+
microsec_slider: null,
|
128 |
+
timezone_select: null,
|
129 |
+
maxTime: null,
|
130 |
+
minTime: null,
|
131 |
+
hour: 0,
|
132 |
+
minute: 0,
|
133 |
+
second: 0,
|
134 |
+
millisec: 0,
|
135 |
+
microsec: 0,
|
136 |
+
timezone: null,
|
137 |
+
hourMinOriginal: null,
|
138 |
+
minuteMinOriginal: null,
|
139 |
+
secondMinOriginal: null,
|
140 |
+
millisecMinOriginal: null,
|
141 |
+
microsecMinOriginal: null,
|
142 |
+
hourMaxOriginal: null,
|
143 |
+
minuteMaxOriginal: null,
|
144 |
+
secondMaxOriginal: null,
|
145 |
+
millisecMaxOriginal: null,
|
146 |
+
microsecMaxOriginal: null,
|
147 |
+
ampm: '',
|
148 |
+
formattedDate: '',
|
149 |
+
formattedTime: '',
|
150 |
+
formattedDateTime: '',
|
151 |
+
timezoneList: null,
|
152 |
+
units: ['hour', 'minute', 'second', 'millisec', 'microsec'],
|
153 |
+
support: {},
|
154 |
+
control: null,
|
155 |
+
|
156 |
+
/*
|
157 |
+
* Override the default settings for all instances of the time picker.
|
158 |
+
* @param {Object} settings object - the new settings to use as defaults (anonymous object)
|
159 |
+
* @return {Object} the manager object
|
160 |
+
*/
|
161 |
+
setDefaults: function (settings) {
|
162 |
+
extendRemove(this._defaults, settings || {});
|
163 |
+
return this;
|
164 |
+
},
|
165 |
+
|
166 |
+
/*
|
167 |
+
* Create a new Timepicker instance
|
168 |
+
*/
|
169 |
+
_newInst: function ($input, opts) {
|
170 |
+
var tp_inst = new Timepicker(),
|
171 |
+
inlineSettings = {},
|
172 |
+
fns = {},
|
173 |
+
overrides, i;
|
174 |
+
|
175 |
+
for (var attrName in this._defaults) {
|
176 |
+
if (this._defaults.hasOwnProperty(attrName)) {
|
177 |
+
var attrValue = $input.attr('time:' + attrName);
|
178 |
+
if (attrValue) {
|
179 |
+
try {
|
180 |
+
inlineSettings[attrName] = eval(attrValue);
|
181 |
+
} catch (err) {
|
182 |
+
inlineSettings[attrName] = attrValue;
|
183 |
+
}
|
184 |
+
}
|
185 |
+
}
|
186 |
+
}
|
187 |
+
|
188 |
+
overrides = {
|
189 |
+
beforeShow: function (input, dp_inst) {
|
190 |
+
if ($.isFunction(tp_inst._defaults.evnts.beforeShow)) {
|
191 |
+
return tp_inst._defaults.evnts.beforeShow.call($input[0], input, dp_inst, tp_inst);
|
192 |
+
}
|
193 |
+
},
|
194 |
+
onChangeMonthYear: function (year, month, dp_inst) {
|
195 |
+
// Update the time as well : this prevents the time from disappearing from the $input field.
|
196 |
+
// tp_inst._updateDateTime(dp_inst);
|
197 |
+
if ($.isFunction(tp_inst._defaults.evnts.onChangeMonthYear)) {
|
198 |
+
tp_inst._defaults.evnts.onChangeMonthYear.call($input[0], year, month, dp_inst, tp_inst);
|
199 |
+
}
|
200 |
+
},
|
201 |
+
onClose: function (dateText, dp_inst) {
|
202 |
+
if (tp_inst.timeDefined === true && $input.val() !== '') {
|
203 |
+
tp_inst._updateDateTime(dp_inst);
|
204 |
+
}
|
205 |
+
if ($.isFunction(tp_inst._defaults.evnts.onClose)) {
|
206 |
+
tp_inst._defaults.evnts.onClose.call($input[0], dateText, dp_inst, tp_inst);
|
207 |
+
}
|
208 |
+
}
|
209 |
+
};
|
210 |
+
for (i in overrides) {
|
211 |
+
if (overrides.hasOwnProperty(i)) {
|
212 |
+
fns[i] = opts[i] || this._defaults[i] || null;
|
213 |
+
}
|
214 |
+
}
|
215 |
+
|
216 |
+
tp_inst._defaults = $.extend({}, this._defaults, inlineSettings, opts, overrides, {
|
217 |
+
evnts: fns,
|
218 |
+
timepicker: tp_inst // add timepicker as a property of datepicker: $.datepicker._get(dp_inst, 'timepicker');
|
219 |
+
});
|
220 |
+
tp_inst.amNames = $.map(tp_inst._defaults.amNames, function (val) {
|
221 |
+
return val.toUpperCase();
|
222 |
+
});
|
223 |
+
tp_inst.pmNames = $.map(tp_inst._defaults.pmNames, function (val) {
|
224 |
+
return val.toUpperCase();
|
225 |
+
});
|
226 |
+
|
227 |
+
// detect which units are supported
|
228 |
+
tp_inst.support = detectSupport(
|
229 |
+
tp_inst._defaults.timeFormat +
|
230 |
+
(tp_inst._defaults.pickerTimeFormat ? tp_inst._defaults.pickerTimeFormat : '') +
|
231 |
+
(tp_inst._defaults.altTimeFormat ? tp_inst._defaults.altTimeFormat : ''));
|
232 |
+
|
233 |
+
// controlType is string - key to our this._controls
|
234 |
+
if (typeof(tp_inst._defaults.controlType) === 'string') {
|
235 |
+
if (tp_inst._defaults.controlType === 'slider' && typeof($.ui.slider) === 'undefined') {
|
236 |
+
tp_inst._defaults.controlType = 'select';
|
237 |
+
}
|
238 |
+
tp_inst.control = tp_inst._controls[tp_inst._defaults.controlType];
|
239 |
+
}
|
240 |
+
// controlType is an object and must implement create, options, value methods
|
241 |
+
else {
|
242 |
+
tp_inst.control = tp_inst._defaults.controlType;
|
243 |
+
}
|
244 |
+
|
245 |
+
// prep the timezone options
|
246 |
+
var timezoneList = [-720, -660, -600, -570, -540, -480, -420, -360, -300, -270, -240, -210, -180, -120, -60,
|
247 |
+
0, 60, 120, 180, 210, 240, 270, 300, 330, 345, 360, 390, 420, 480, 525, 540, 570, 600, 630, 660, 690, 720, 765, 780, 840];
|
248 |
+
if (tp_inst._defaults.timezoneList !== null) {
|
249 |
+
timezoneList = tp_inst._defaults.timezoneList;
|
250 |
+
}
|
251 |
+
var tzl = timezoneList.length, tzi = 0, tzv = null;
|
252 |
+
if (tzl > 0 && typeof timezoneList[0] !== 'object') {
|
253 |
+
for (; tzi < tzl; tzi++) {
|
254 |
+
tzv = timezoneList[tzi];
|
255 |
+
timezoneList[tzi] = { value: tzv, label: $.timepicker.timezoneOffsetString(tzv, tp_inst.support.iso8601) };
|
256 |
+
}
|
257 |
+
}
|
258 |
+
tp_inst._defaults.timezoneList = timezoneList;
|
259 |
+
|
260 |
+
// set the default units
|
261 |
+
tp_inst.timezone = tp_inst._defaults.timezone !== null ? $.timepicker.timezoneOffsetNumber(tp_inst._defaults.timezone) :
|
262 |
+
((new Date()).getTimezoneOffset() * -1);
|
263 |
+
tp_inst.hour = tp_inst._defaults.hour < tp_inst._defaults.hourMin ? tp_inst._defaults.hourMin :
|
264 |
+
tp_inst._defaults.hour > tp_inst._defaults.hourMax ? tp_inst._defaults.hourMax : tp_inst._defaults.hour;
|
265 |
+
tp_inst.minute = tp_inst._defaults.minute < tp_inst._defaults.minuteMin ? tp_inst._defaults.minuteMin :
|
266 |
+
tp_inst._defaults.minute > tp_inst._defaults.minuteMax ? tp_inst._defaults.minuteMax : tp_inst._defaults.minute;
|
267 |
+
tp_inst.second = tp_inst._defaults.second < tp_inst._defaults.secondMin ? tp_inst._defaults.secondMin :
|
268 |
+
tp_inst._defaults.second > tp_inst._defaults.secondMax ? tp_inst._defaults.secondMax : tp_inst._defaults.second;
|
269 |
+
tp_inst.millisec = tp_inst._defaults.millisec < tp_inst._defaults.millisecMin ? tp_inst._defaults.millisecMin :
|
270 |
+
tp_inst._defaults.millisec > tp_inst._defaults.millisecMax ? tp_inst._defaults.millisecMax : tp_inst._defaults.millisec;
|
271 |
+
tp_inst.microsec = tp_inst._defaults.microsec < tp_inst._defaults.microsecMin ? tp_inst._defaults.microsecMin :
|
272 |
+
tp_inst._defaults.microsec > tp_inst._defaults.microsecMax ? tp_inst._defaults.microsecMax : tp_inst._defaults.microsec;
|
273 |
+
tp_inst.ampm = '';
|
274 |
+
tp_inst.$input = $input;
|
275 |
+
|
276 |
+
if (tp_inst._defaults.altField) {
|
277 |
+
tp_inst.$altInput = $(tp_inst._defaults.altField);
|
278 |
+
if (tp_inst._defaults.altRedirectFocus === true) {
|
279 |
+
tp_inst.$altInput.css({
|
280 |
+
cursor: 'pointer'
|
281 |
+
}).focus(function () {
|
282 |
+
$input.trigger("focus");
|
283 |
+
});
|
284 |
+
}
|
285 |
+
}
|
286 |
+
|
287 |
+
if (tp_inst._defaults.minDate === 0 || tp_inst._defaults.minDateTime === 0) {
|
288 |
+
tp_inst._defaults.minDate = new Date();
|
289 |
+
}
|
290 |
+
if (tp_inst._defaults.maxDate === 0 || tp_inst._defaults.maxDateTime === 0) {
|
291 |
+
tp_inst._defaults.maxDate = new Date();
|
292 |
+
}
|
293 |
+
|
294 |
+
// datepicker needs minDate/maxDate, timepicker needs minDateTime/maxDateTime..
|
295 |
+
if (tp_inst._defaults.minDate !== undefined && tp_inst._defaults.minDate instanceof Date) {
|
296 |
+
tp_inst._defaults.minDateTime = new Date(tp_inst._defaults.minDate.getTime());
|
297 |
+
}
|
298 |
+
if (tp_inst._defaults.minDateTime !== undefined && tp_inst._defaults.minDateTime instanceof Date) {
|
299 |
+
tp_inst._defaults.minDate = new Date(tp_inst._defaults.minDateTime.getTime());
|
300 |
+
}
|
301 |
+
if (tp_inst._defaults.maxDate !== undefined && tp_inst._defaults.maxDate instanceof Date) {
|
302 |
+
tp_inst._defaults.maxDateTime = new Date(tp_inst._defaults.maxDate.getTime());
|
303 |
+
}
|
304 |
+
if (tp_inst._defaults.maxDateTime !== undefined && tp_inst._defaults.maxDateTime instanceof Date) {
|
305 |
+
tp_inst._defaults.maxDate = new Date(tp_inst._defaults.maxDateTime.getTime());
|
306 |
+
}
|
307 |
+
tp_inst.$input.bind('focus', function () {
|
308 |
+
tp_inst._onFocus();
|
309 |
+
});
|
310 |
+
|
311 |
+
return tp_inst;
|
312 |
+
},
|
313 |
+
|
314 |
+
/*
|
315 |
+
* add our sliders to the calendar
|
316 |
+
*/
|
317 |
+
_addTimePicker: function (dp_inst) {
|
318 |
+
var currDT = $.trim((this.$altInput && this._defaults.altFieldTimeOnly) ? this.$input.val() + ' ' + this.$altInput.val() : this.$input.val());
|
319 |
+
|
320 |
+
this.timeDefined = this._parseTime(currDT);
|
321 |
+
this._limitMinMaxDateTime(dp_inst, false);
|
322 |
+
this._injectTimePicker();
|
323 |
+
this._afterInject();
|
324 |
+
},
|
325 |
+
|
326 |
+
/*
|
327 |
+
* parse the time string from input value or _setTime
|
328 |
+
*/
|
329 |
+
_parseTime: function (timeString, withDate) {
|
330 |
+
if (!this.inst) {
|
331 |
+
this.inst = $.datepicker._getInst(this.$input[0]);
|
332 |
+
}
|
333 |
+
|
334 |
+
if (withDate || !this._defaults.timeOnly) {
|
335 |
+
var dp_dateFormat = $.datepicker._get(this.inst, 'dateFormat');
|
336 |
+
try {
|
337 |
+
var parseRes = parseDateTimeInternal(dp_dateFormat, this._defaults.timeFormat, timeString, $.datepicker._getFormatConfig(this.inst), this._defaults);
|
338 |
+
if (!parseRes.timeObj) {
|
339 |
+
return false;
|
340 |
+
}
|
341 |
+
$.extend(this, parseRes.timeObj);
|
342 |
+
} catch (err) {
|
343 |
+
$.timepicker.log("Error parsing the date/time string: " + err +
|
344 |
+
"\ndate/time string = " + timeString +
|
345 |
+
"\ntimeFormat = " + this._defaults.timeFormat +
|
346 |
+
"\ndateFormat = " + dp_dateFormat);
|
347 |
+
return false;
|
348 |
+
}
|
349 |
+
return true;
|
350 |
+
} else {
|
351 |
+
var timeObj = $.datepicker.parseTime(this._defaults.timeFormat, timeString, this._defaults);
|
352 |
+
if (!timeObj) {
|
353 |
+
return false;
|
354 |
+
}
|
355 |
+
$.extend(this, timeObj);
|
356 |
+
return true;
|
357 |
+
}
|
358 |
+
},
|
359 |
+
|
360 |
+
/*
|
361 |
+
* Handle callback option after injecting timepicker
|
362 |
+
*/
|
363 |
+
_afterInject: function() {
|
364 |
+
var o = this.inst.settings;
|
365 |
+
if ($.isFunction(o.afterInject)) {
|
366 |
+
o.afterInject.call(this);
|
367 |
+
}
|
368 |
+
},
|
369 |
+
|
370 |
+
/*
|
371 |
+
* generate and inject html for timepicker into ui datepicker
|
372 |
+
*/
|
373 |
+
_injectTimePicker: function () {
|
374 |
+
var $dp = this.inst.dpDiv,
|
375 |
+
o = this.inst.settings,
|
376 |
+
tp_inst = this,
|
377 |
+
litem = '',
|
378 |
+
uitem = '',
|
379 |
+
show = null,
|
380 |
+
max = {},
|
381 |
+
gridSize = {},
|
382 |
+
size = null,
|
383 |
+
i = 0,
|
384 |
+
l = 0;
|
385 |
+
|
386 |
+
// Prevent displaying twice
|
387 |
+
if ($dp.find("div.ui-timepicker-div").length === 0 && o.showTimepicker) {
|
388 |
+
var noDisplay = ' ui_tpicker_unit_hide',
|
389 |
+
html = '<div class="ui-timepicker-div' + (o.isRTL ? ' ui-timepicker-rtl' : '') + (o.oneLine && o.controlType === 'select' ? ' ui-timepicker-oneLine' : '') + '"><dl>' + '<dt class="ui_tpicker_time_label' + ((o.showTime) ? '' : noDisplay) + '">' + o.timeText + '</dt>' +
|
390 |
+
'<dd class="ui_tpicker_time '+ ((o.showTime) ? '' : noDisplay) + '"><input class="ui_tpicker_time_input" ' + (o.timeInput ? '' : 'disabled') + '/></dd>';
|
391 |
+
|
392 |
+
// Create the markup
|
393 |
+
for (i = 0, l = this.units.length; i < l; i++) {
|
394 |
+
litem = this.units[i];
|
395 |
+
uitem = litem.substr(0, 1).toUpperCase() + litem.substr(1);
|
396 |
+
show = o['show' + uitem] !== null ? o['show' + uitem] : this.support[litem];
|
397 |
+
|
398 |
+
// Added by Peter Medeiros:
|
399 |
+
// - Figure out what the hour/minute/second max should be based on the step values.
|
400 |
+
// - Example: if stepMinute is 15, then minMax is 45.
|
401 |
+
max[litem] = parseInt((o[litem + 'Max'] - ((o[litem + 'Max'] - o[litem + 'Min']) % o['step' + uitem])), 10);
|
402 |
+
gridSize[litem] = 0;
|
403 |
+
|
404 |
+
html += '<dt class="ui_tpicker_' + litem + '_label' + (show ? '' : noDisplay) + '">' + o[litem + 'Text'] + '</dt>' +
|
405 |
+
'<dd class="ui_tpicker_' + litem + (show ? '' : noDisplay) + '"><div class="ui_tpicker_' + litem + '_slider' + (show ? '' : noDisplay) + '"></div>';
|
406 |
+
|
407 |
+
if (show && o[litem + 'Grid'] > 0) {
|
408 |
+
html += '<div style="padding-left: 1px"><table class="ui-tpicker-grid-label"><tr>';
|
409 |
+
|
410 |
+
if (litem === 'hour') {
|
411 |
+
for (var h = o[litem + 'Min']; h <= max[litem]; h += parseInt(o[litem + 'Grid'], 10)) {
|
412 |
+
gridSize[litem]++;
|
413 |
+
var tmph = $.datepicker.formatTime(this.support.ampm ? 'hht' : 'HH', {hour: h}, o);
|
414 |
+
html += '<td data-for="' + litem + '">' + tmph + '</td>';
|
415 |
+
}
|
416 |
+
}
|
417 |
+
else {
|
418 |
+
for (var m = o[litem + 'Min']; m <= max[litem]; m += parseInt(o[litem + 'Grid'], 10)) {
|
419 |
+
gridSize[litem]++;
|
420 |
+
html += '<td data-for="' + litem + '">' + ((m < 10) ? '0' : '') + m + '</td>';
|
421 |
+
}
|
422 |
+
}
|
423 |
+
|
424 |
+
html += '</tr></table></div>';
|
425 |
+
}
|
426 |
+
html += '</dd>';
|
427 |
+
}
|
428 |
+
|
429 |
+
// Timezone
|
430 |
+
var showTz = o.showTimezone !== null ? o.showTimezone : this.support.timezone;
|
431 |
+
html += '<dt class="ui_tpicker_timezone_label' + (showTz ? '' : noDisplay) + '">' + o.timezoneText + '</dt>';
|
432 |
+
html += '<dd class="ui_tpicker_timezone' + (showTz ? '' : noDisplay) + '"></dd>';
|
433 |
+
|
434 |
+
// Create the elements from string
|
435 |
+
html += '</dl></div>';
|
436 |
+
var $tp = $(html);
|
437 |
+
|
438 |
+
// if we only want time picker...
|
439 |
+
if (o.timeOnly === true) {
|
440 |
+
$tp.prepend('<div class="ui-widget-header ui-helper-clearfix ui-corner-all">' + '<div class="ui-datepicker-title">' + o.timeOnlyTitle + '</div>' + '</div>');
|
441 |
+
$dp.find('.ui-datepicker-header, .ui-datepicker-calendar').hide();
|
442 |
+
}
|
443 |
+
|
444 |
+
// add sliders, adjust grids, add events
|
445 |
+
for (i = 0, l = tp_inst.units.length; i < l; i++) {
|
446 |
+
litem = tp_inst.units[i];
|
447 |
+
uitem = litem.substr(0, 1).toUpperCase() + litem.substr(1);
|
448 |
+
show = o['show' + uitem] !== null ? o['show' + uitem] : this.support[litem];
|
449 |
+
|
450 |
+
// add the slider
|
451 |
+
tp_inst[litem + '_slider'] = tp_inst.control.create(tp_inst, $tp.find('.ui_tpicker_' + litem + '_slider'), litem, tp_inst[litem], o[litem + 'Min'], max[litem], o['step' + uitem]);
|
452 |
+
|
453 |
+
// adjust the grid and add click event
|
454 |
+
if (show && o[litem + 'Grid'] > 0) {
|
455 |
+
size = 100 * gridSize[litem] * o[litem + 'Grid'] / (max[litem] - o[litem + 'Min']);
|
456 |
+
$tp.find('.ui_tpicker_' + litem + ' table').css({
|
457 |
+
width: size + "%",
|
458 |
+
marginLeft: o.isRTL ? '0' : ((size / (-2 * gridSize[litem])) + "%"),
|
459 |
+
marginRight: o.isRTL ? ((size / (-2 * gridSize[litem])) + "%") : '0',
|
460 |
+
borderCollapse: 'collapse'
|
461 |
+
}).find("td").click(function (e) {
|
462 |
+
var $t = $(this),
|
463 |
+
h = $t.html(),
|
464 |
+
n = parseInt(h.replace(/[^0-9]/g), 10),
|
465 |
+
ap = h.replace(/[^apm]/ig),
|
466 |
+
f = $t.data('for'); // loses scope, so we use data-for
|
467 |
+
|
468 |
+
if (f === 'hour') {
|
469 |
+
if (ap.indexOf('p') !== -1 && n < 12) {
|
470 |
+
n += 12;
|
471 |
+
}
|
472 |
+
else {
|
473 |
+
if (ap.indexOf('a') !== -1 && n === 12) {
|
474 |
+
n = 0;
|
475 |
+
}
|
476 |
+
}
|
477 |
+
}
|
478 |
+
|
479 |
+
tp_inst.control.value(tp_inst, tp_inst[f + '_slider'], litem, n);
|
480 |
+
|
481 |
+
tp_inst._onTimeChange();
|
482 |
+
tp_inst._onSelectHandler();
|
483 |
+
}).css({
|
484 |
+
cursor: 'pointer',
|
485 |
+
width: (100 / gridSize[litem]) + '%',
|
486 |
+
textAlign: 'center',
|
487 |
+
overflow: 'hidden'
|
488 |
+
});
|
489 |
+
} // end if grid > 0
|
490 |
+
} // end for loop
|
491 |
+
|
492 |
+
// Add timezone options
|
493 |
+
this.timezone_select = $tp.find('.ui_tpicker_timezone').append('<select></select>').find("select");
|
494 |
+
$.fn.append.apply(this.timezone_select,
|
495 |
+
$.map(o.timezoneList, function (val, idx) {
|
496 |
+
return $("<option />").val(typeof val === "object" ? val.value : val).text(typeof val === "object" ? val.label : val);
|
497 |
+
}));
|
498 |
+
if (typeof(this.timezone) !== "undefined" && this.timezone !== null && this.timezone !== "") {
|
499 |
+
var local_timezone = (new Date(this.inst.selectedYear, this.inst.selectedMonth, this.inst.selectedDay, 12)).getTimezoneOffset() * -1;
|
500 |
+
if (local_timezone === this.timezone) {
|
501 |
+
selectLocalTimezone(tp_inst);
|
502 |
+
} else {
|
503 |
+
this.timezone_select.val(this.timezone);
|
504 |
+
}
|
505 |
+
} else {
|
506 |
+
if (typeof(this.hour) !== "undefined" && this.hour !== null && this.hour !== "") {
|
507 |
+
this.timezone_select.val(o.timezone);
|
508 |
+
} else {
|
509 |
+
selectLocalTimezone(tp_inst);
|
510 |
+
}
|
511 |
+
}
|
512 |
+
this.timezone_select.change(function () {
|
513 |
+
tp_inst._onTimeChange();
|
514 |
+
tp_inst._onSelectHandler();
|
515 |
+
tp_inst._afterInject();
|
516 |
+
});
|
517 |
+
// End timezone options
|
518 |
+
|
519 |
+
// inject timepicker into datepicker
|
520 |
+
var $buttonPanel = $dp.find('.ui-datepicker-buttonpane');
|
521 |
+
if ($buttonPanel.length) {
|
522 |
+
$buttonPanel.before($tp);
|
523 |
+
} else {
|
524 |
+
$dp.append($tp);
|
525 |
+
}
|
526 |
+
|
527 |
+
this.$timeObj = $tp.find('.ui_tpicker_time_input');
|
528 |
+
this.$timeObj.change(function () {
|
529 |
+
var timeFormat = tp_inst.inst.settings.timeFormat;
|
530 |
+
var parsedTime = $.datepicker.parseTime(timeFormat, this.value);
|
531 |
+
var update = new Date();
|
532 |
+
if (parsedTime) {
|
533 |
+
update.setHours(parsedTime.hour);
|
534 |
+
update.setMinutes(parsedTime.minute);
|
535 |
+
update.setSeconds(parsedTime.second);
|
536 |
+
$.datepicker._setTime(tp_inst.inst, update);
|
537 |
+
} else {
|
538 |
+
this.value = tp_inst.formattedTime;
|
539 |
+
this.blur();
|
540 |
+
}
|
541 |
+
});
|
542 |
+
|
543 |
+
if (this.inst !== null) {
|
544 |
+
var timeDefined = this.timeDefined;
|
545 |
+
this._onTimeChange();
|
546 |
+
this.timeDefined = timeDefined;
|
547 |
+
}
|
548 |
+
|
549 |
+
// slideAccess integration: http://trentrichardson.com/2011/11/11/jquery-ui-sliders-and-touch-accessibility/
|
550 |
+
if (this._defaults.addSliderAccess) {
|
551 |
+
var sliderAccessArgs = this._defaults.sliderAccessArgs,
|
552 |
+
rtl = this._defaults.isRTL;
|
553 |
+
sliderAccessArgs.isRTL = rtl;
|
554 |
+
|
555 |
+
setTimeout(function () { // fix for inline mode
|
556 |
+
if ($tp.find('.ui-slider-access').length === 0) {
|
557 |
+
$tp.find('.ui-slider:visible').sliderAccess(sliderAccessArgs);
|
558 |
+
|
559 |
+
// fix any grids since sliders are shorter
|
560 |
+
var sliderAccessWidth = $tp.find('.ui-slider-access:eq(0)').outerWidth(true);
|
561 |
+
if (sliderAccessWidth) {
|
562 |
+
$tp.find('table:visible').each(function () {
|
563 |
+
var $g = $(this),
|
564 |
+
oldWidth = $g.outerWidth(),
|
565 |
+
oldMarginLeft = $g.css(rtl ? 'marginRight' : 'marginLeft').toString().replace('%', ''),
|
566 |
+
newWidth = oldWidth - sliderAccessWidth,
|
567 |
+
newMarginLeft = ((oldMarginLeft * newWidth) / oldWidth) + '%',
|
568 |
+
css = { width: newWidth, marginRight: 0, marginLeft: 0 };
|
569 |
+
css[rtl ? 'marginRight' : 'marginLeft'] = newMarginLeft;
|
570 |
+
$g.css(css);
|
571 |
+
});
|
572 |
+
}
|
573 |
+
}
|
574 |
+
}, 10);
|
575 |
+
}
|
576 |
+
// end slideAccess integration
|
577 |
+
|
578 |
+
tp_inst._limitMinMaxDateTime(this.inst, true);
|
579 |
+
}
|
580 |
+
},
|
581 |
+
|
582 |
+
/*
|
583 |
+
* This function tries to limit the ability to go outside the
|
584 |
+
* min/max date range
|
585 |
+
*/
|
586 |
+
_limitMinMaxDateTime: function (dp_inst, adjustSliders) {
|
587 |
+
var o = this._defaults,
|
588 |
+
dp_date = new Date(dp_inst.selectedYear, dp_inst.selectedMonth, dp_inst.selectedDay);
|
589 |
+
|
590 |
+
if (!this._defaults.showTimepicker) {
|
591 |
+
return;
|
592 |
+
} // No time so nothing to check here
|
593 |
+
|
594 |
+
if ($.datepicker._get(dp_inst, 'minDateTime') !== null && $.datepicker._get(dp_inst, 'minDateTime') !== undefined && dp_date) {
|
595 |
+
var minDateTime = $.datepicker._get(dp_inst, 'minDateTime'),
|
596 |
+
minDateTimeDate = new Date(minDateTime.getFullYear(), minDateTime.getMonth(), minDateTime.getDate(), 0, 0, 0, 0);
|
597 |
+
|
598 |
+
if (this.hourMinOriginal === null || this.minuteMinOriginal === null || this.secondMinOriginal === null || this.millisecMinOriginal === null || this.microsecMinOriginal === null) {
|
599 |
+
this.hourMinOriginal = o.hourMin;
|
600 |
+
this.minuteMinOriginal = o.minuteMin;
|
601 |
+
this.secondMinOriginal = o.secondMin;
|
602 |
+
this.millisecMinOriginal = o.millisecMin;
|
603 |
+
this.microsecMinOriginal = o.microsecMin;
|
604 |
+
}
|
605 |
+
|
606 |
+
if (dp_inst.settings.timeOnly || minDateTimeDate.getTime() === dp_date.getTime()) {
|
607 |
+
this._defaults.hourMin = minDateTime.getHours();
|
608 |
+
if (this.hour <= this._defaults.hourMin) {
|
609 |
+
this.hour = this._defaults.hourMin;
|
610 |
+
this._defaults.minuteMin = minDateTime.getMinutes();
|
611 |
+
if (this.minute <= this._defaults.minuteMin) {
|
612 |
+
this.minute = this._defaults.minuteMin;
|
613 |
+
this._defaults.secondMin = minDateTime.getSeconds();
|
614 |
+
if (this.second <= this._defaults.secondMin) {
|
615 |
+
this.second = this._defaults.secondMin;
|
616 |
+
this._defaults.millisecMin = minDateTime.getMilliseconds();
|
617 |
+
if (this.millisec <= this._defaults.millisecMin) {
|
618 |
+
this.millisec = this._defaults.millisecMin;
|
619 |
+
this._defaults.microsecMin = minDateTime.getMicroseconds();
|
620 |
+
} else {
|
621 |
+
if (this.microsec < this._defaults.microsecMin) {
|
622 |
+
this.microsec = this._defaults.microsecMin;
|
623 |
+
}
|
624 |
+
this._defaults.microsecMin = this.microsecMinOriginal;
|
625 |
+
}
|
626 |
+
} else {
|
627 |
+
this._defaults.millisecMin = this.millisecMinOriginal;
|
628 |
+
this._defaults.microsecMin = this.microsecMinOriginal;
|
629 |
+
}
|
630 |
+
} else {
|
631 |
+
this._defaults.secondMin = this.secondMinOriginal;
|
632 |
+
this._defaults.millisecMin = this.millisecMinOriginal;
|
633 |
+
this._defaults.microsecMin = this.microsecMinOriginal;
|
634 |
+
}
|
635 |
+
} else {
|
636 |
+
this._defaults.minuteMin = this.minuteMinOriginal;
|
637 |
+
this._defaults.secondMin = this.secondMinOriginal;
|
638 |
+
this._defaults.millisecMin = this.millisecMinOriginal;
|
639 |
+
this._defaults.microsecMin = this.microsecMinOriginal;
|
640 |
+
}
|
641 |
+
} else {
|
642 |
+
this._defaults.hourMin = this.hourMinOriginal;
|
643 |
+
this._defaults.minuteMin = this.minuteMinOriginal;
|
644 |
+
this._defaults.secondMin = this.secondMinOriginal;
|
645 |
+
this._defaults.millisecMin = this.millisecMinOriginal;
|
646 |
+
this._defaults.microsecMin = this.microsecMinOriginal;
|
647 |
+
}
|
648 |
+
}
|
649 |
+
|
650 |
+
if ($.datepicker._get(dp_inst, 'maxDateTime') !== null && $.datepicker._get(dp_inst, 'maxDateTime') !== undefined && dp_date) {
|
651 |
+
var maxDateTime = $.datepicker._get(dp_inst, 'maxDateTime'),
|
652 |
+
maxDateTimeDate = new Date(maxDateTime.getFullYear(), maxDateTime.getMonth(), maxDateTime.getDate(), 0, 0, 0, 0);
|
653 |
+
|
654 |
+
if (this.hourMaxOriginal === null || this.minuteMaxOriginal === null || this.secondMaxOriginal === null || this.millisecMaxOriginal === null) {
|
655 |
+
this.hourMaxOriginal = o.hourMax;
|
656 |
+
this.minuteMaxOriginal = o.minuteMax;
|
657 |
+
this.secondMaxOriginal = o.secondMax;
|
658 |
+
this.millisecMaxOriginal = o.millisecMax;
|
659 |
+
this.microsecMaxOriginal = o.microsecMax;
|
660 |
+
}
|
661 |
+
|
662 |
+
if (dp_inst.settings.timeOnly || maxDateTimeDate.getTime() === dp_date.getTime()) {
|
663 |
+
this._defaults.hourMax = maxDateTime.getHours();
|
664 |
+
if (this.hour >= this._defaults.hourMax) {
|
665 |
+
this.hour = this._defaults.hourMax;
|
666 |
+
this._defaults.minuteMax = maxDateTime.getMinutes();
|
667 |
+
if (this.minute >= this._defaults.minuteMax) {
|
668 |
+
this.minute = this._defaults.minuteMax;
|
669 |
+
this._defaults.secondMax = maxDateTime.getSeconds();
|
670 |
+
if (this.second >= this._defaults.secondMax) {
|
671 |
+
this.second = this._defaults.secondMax;
|
672 |
+
this._defaults.millisecMax = maxDateTime.getMilliseconds();
|
673 |
+
if (this.millisec >= this._defaults.millisecMax) {
|
674 |
+
this.millisec = this._defaults.millisecMax;
|
675 |
+
this._defaults.microsecMax = maxDateTime.getMicroseconds();
|
676 |
+
} else {
|
677 |
+
if (this.microsec > this._defaults.microsecMax) {
|
678 |
+
this.microsec = this._defaults.microsecMax;
|
679 |
+
}
|
680 |
+
this._defaults.microsecMax = this.microsecMaxOriginal;
|
681 |
+
}
|
682 |
+
} else {
|
683 |
+
this._defaults.millisecMax = this.millisecMaxOriginal;
|
684 |
+
this._defaults.microsecMax = this.microsecMaxOriginal;
|
685 |
+
}
|
686 |
+
} else {
|
687 |
+
this._defaults.secondMax = this.secondMaxOriginal;
|
688 |
+
this._defaults.millisecMax = this.millisecMaxOriginal;
|
689 |
+
this._defaults.microsecMax = this.microsecMaxOriginal;
|
690 |
+
}
|
691 |
+
} else {
|
692 |
+
this._defaults.minuteMax = this.minuteMaxOriginal;
|
693 |
+
this._defaults.secondMax = this.secondMaxOriginal;
|
694 |
+
this._defaults.millisecMax = this.millisecMaxOriginal;
|
695 |
+
this._defaults.microsecMax = this.microsecMaxOriginal;
|
696 |
+
}
|
697 |
+
} else {
|
698 |
+
this._defaults.hourMax = this.hourMaxOriginal;
|
699 |
+
this._defaults.minuteMax = this.minuteMaxOriginal;
|
700 |
+
this._defaults.secondMax = this.secondMaxOriginal;
|
701 |
+
this._defaults.millisecMax = this.millisecMaxOriginal;
|
702 |
+
this._defaults.microsecMax = this.microsecMaxOriginal;
|
703 |
+
}
|
704 |
+
}
|
705 |
+
|
706 |
+
if (dp_inst.settings.minTime!==null) {
|
707 |
+
var tempMinTime=new Date("01/01/1970 " + dp_inst.settings.minTime);
|
708 |
+
if (this.hour<tempMinTime.getHours()) {
|
709 |
+
this.hour=this._defaults.hourMin=tempMinTime.getHours();
|
710 |
+
this.minute=this._defaults.minuteMin=tempMinTime.getMinutes();
|
711 |
+
} else if (this.hour===tempMinTime.getHours() && this.minute<tempMinTime.getMinutes()) {
|
712 |
+
this.minute=this._defaults.minuteMin=tempMinTime.getMinutes();
|
713 |
+
} else {
|
714 |
+
if (this._defaults.hourMin<tempMinTime.getHours()) {
|
715 |
+
this._defaults.hourMin=tempMinTime.getHours();
|
716 |
+
this._defaults.minuteMin=tempMinTime.getMinutes();
|
717 |
+
} else if (this._defaults.hourMin===tempMinTime.getHours()===this.hour && this._defaults.minuteMin<tempMinTime.getMinutes()) {
|
718 |
+
this._defaults.minuteMin=tempMinTime.getMinutes();
|
719 |
+
} else {
|
720 |
+
this._defaults.minuteMin=0;
|
721 |
+
}
|
722 |
+
}
|
723 |
+
}
|
724 |
+
|
725 |
+
if (dp_inst.settings.maxTime!==null) {
|
726 |
+
var tempMaxTime=new Date("01/01/1970 " + dp_inst.settings.maxTime);
|
727 |
+
if (this.hour>tempMaxTime.getHours()) {
|
728 |
+
this.hour=this._defaults.hourMax=tempMaxTime.getHours();
|
729 |
+
this.minute=this._defaults.minuteMax=tempMaxTime.getMinutes();
|
730 |
+
} else if (this.hour===tempMaxTime.getHours() && this.minute>tempMaxTime.getMinutes()) {
|
731 |
+
this.minute=this._defaults.minuteMax=tempMaxTime.getMinutes();
|
732 |
+
} else {
|
733 |
+
if (this._defaults.hourMax>tempMaxTime.getHours()) {
|
734 |
+
this._defaults.hourMax=tempMaxTime.getHours();
|
735 |
+
this._defaults.minuteMax=tempMaxTime.getMinutes();
|
736 |
+
} else if (this._defaults.hourMax===tempMaxTime.getHours()===this.hour && this._defaults.minuteMax>tempMaxTime.getMinutes()) {
|
737 |
+
this._defaults.minuteMax=tempMaxTime.getMinutes();
|
738 |
+
} else {
|
739 |
+
this._defaults.minuteMax=59;
|
740 |
+
}
|
741 |
+
}
|
742 |
+
}
|
743 |
+
|
744 |
+
if (adjustSliders !== undefined && adjustSliders === true) {
|
745 |
+
var hourMax = parseInt((this._defaults.hourMax - ((this._defaults.hourMax - this._defaults.hourMin) % this._defaults.stepHour)), 10),
|
746 |
+
minMax = parseInt((this._defaults.minuteMax - ((this._defaults.minuteMax - this._defaults.minuteMin) % this._defaults.stepMinute)), 10),
|
747 |
+
secMax = parseInt((this._defaults.secondMax - ((this._defaults.secondMax - this._defaults.secondMin) % this._defaults.stepSecond)), 10),
|
748 |
+
millisecMax = parseInt((this._defaults.millisecMax - ((this._defaults.millisecMax - this._defaults.millisecMin) % this._defaults.stepMillisec)), 10),
|
749 |
+
microsecMax = parseInt((this._defaults.microsecMax - ((this._defaults.microsecMax - this._defaults.microsecMin) % this._defaults.stepMicrosec)), 10);
|
750 |
+
|
751 |
+
if (this.hour_slider) {
|
752 |
+
this.control.options(this, this.hour_slider, 'hour', { min: this._defaults.hourMin, max: hourMax, step: this._defaults.stepHour });
|
753 |
+
this.control.value(this, this.hour_slider, 'hour', this.hour - (this.hour % this._defaults.stepHour));
|
754 |
+
}
|
755 |
+
if (this.minute_slider) {
|
756 |
+
this.control.options(this, this.minute_slider, 'minute', { min: this._defaults.minuteMin, max: minMax, step: this._defaults.stepMinute });
|
757 |
+
this.control.value(this, this.minute_slider, 'minute', this.minute - (this.minute % this._defaults.stepMinute));
|
758 |
+
}
|
759 |
+
if (this.second_slider) {
|
760 |
+
this.control.options(this, this.second_slider, 'second', { min: this._defaults.secondMin, max: secMax, step: this._defaults.stepSecond });
|
761 |
+
this.control.value(this, this.second_slider, 'second', this.second - (this.second % this._defaults.stepSecond));
|
762 |
+
}
|
763 |
+
if (this.millisec_slider) {
|
764 |
+
this.control.options(this, this.millisec_slider, 'millisec', { min: this._defaults.millisecMin, max: millisecMax, step: this._defaults.stepMillisec });
|
765 |
+
this.control.value(this, this.millisec_slider, 'millisec', this.millisec - (this.millisec % this._defaults.stepMillisec));
|
766 |
+
}
|
767 |
+
if (this.microsec_slider) {
|
768 |
+
this.control.options(this, this.microsec_slider, 'microsec', { min: this._defaults.microsecMin, max: microsecMax, step: this._defaults.stepMicrosec });
|
769 |
+
this.control.value(this, this.microsec_slider, 'microsec', this.microsec - (this.microsec % this._defaults.stepMicrosec));
|
770 |
+
}
|
771 |
+
}
|
772 |
+
|
773 |
+
},
|
774 |
+
|
775 |
+
/*
|
776 |
+
* when a slider moves, set the internal time...
|
777 |
+
* on time change is also called when the time is updated in the text field
|
778 |
+
*/
|
779 |
+
_onTimeChange: function () {
|
780 |
+
if (!this._defaults.showTimepicker) {
|
781 |
+
return;
|
782 |
+
}
|
783 |
+
var hour = (this.hour_slider) ? this.control.value(this, this.hour_slider, 'hour') : false,
|
784 |
+
minute = (this.minute_slider) ? this.control.value(this, this.minute_slider, 'minute') : false,
|
785 |
+
second = (this.second_slider) ? this.control.value(this, this.second_slider, 'second') : false,
|
786 |
+
millisec = (this.millisec_slider) ? this.control.value(this, this.millisec_slider, 'millisec') : false,
|
787 |
+
microsec = (this.microsec_slider) ? this.control.value(this, this.microsec_slider, 'microsec') : false,
|
788 |
+
timezone = (this.timezone_select) ? this.timezone_select.val() : false,
|
789 |
+
o = this._defaults,
|
790 |
+
pickerTimeFormat = o.pickerTimeFormat || o.timeFormat,
|
791 |
+
pickerTimeSuffix = o.pickerTimeSuffix || o.timeSuffix;
|
792 |
+
|
793 |
+
if (typeof(hour) === 'object') {
|
794 |
+
hour = false;
|
795 |
+
}
|
796 |
+
if (typeof(minute) === 'object') {
|
797 |
+
minute = false;
|
798 |
+
}
|
799 |
+
if (typeof(second) === 'object') {
|
800 |
+
second = false;
|
801 |
+
}
|
802 |
+
if (typeof(millisec) === 'object') {
|
803 |
+
millisec = false;
|
804 |
+
}
|
805 |
+
if (typeof(microsec) === 'object') {
|
806 |
+
microsec = false;
|
807 |
+
}
|
808 |
+
if (typeof(timezone) === 'object') {
|
809 |
+
timezone = false;
|
810 |
+
}
|
811 |
+
|
812 |
+
if (hour !== false) {
|
813 |
+
hour = parseInt(hour, 10);
|
814 |
+
}
|
815 |
+
if (minute !== false) {
|
816 |
+
minute = parseInt(minute, 10);
|
817 |
+
}
|
818 |
+
if (second !== false) {
|
819 |
+
second = parseInt(second, 10);
|
820 |
+
}
|
821 |
+
if (millisec !== false) {
|
822 |
+
millisec = parseInt(millisec, 10);
|
823 |
+
}
|
824 |
+
if (microsec !== false) {
|
825 |
+
microsec = parseInt(microsec, 10);
|
826 |
+
}
|
827 |
+
if (timezone !== false) {
|
828 |
+
timezone = timezone.toString();
|
829 |
+
}
|
830 |
+
|
831 |
+
var ampm = o[hour < 12 ? 'amNames' : 'pmNames'][0];
|
832 |
+
|
833 |
+
// If the update was done in the input field, the input field should not be updated.
|
834 |
+
// If the update was done using the sliders, update the input field.
|
835 |
+
var hasChanged = (
|
836 |
+
hour !== parseInt(this.hour,10) || // sliders should all be numeric
|
837 |
+
minute !== parseInt(this.minute,10) ||
|
838 |
+
second !== parseInt(this.second,10) ||
|
839 |
+
millisec !== parseInt(this.millisec,10) ||
|
840 |
+
microsec !== parseInt(this.microsec,10) ||
|
841 |
+
(this.ampm.length > 0 && (hour < 12) !== ($.inArray(this.ampm.toUpperCase(), this.amNames) !== -1)) ||
|
842 |
+
(this.timezone !== null && timezone !== this.timezone.toString()) // could be numeric or "EST" format, so use toString()
|
843 |
+
);
|
844 |
+
|
845 |
+
if (hasChanged) {
|
846 |
+
|
847 |
+
if (hour !== false) {
|
848 |
+
this.hour = hour;
|
849 |
+
}
|
850 |
+
if (minute !== false) {
|
851 |
+
this.minute = minute;
|
852 |
+
}
|
853 |
+
if (second !== false) {
|
854 |
+
this.second = second;
|
855 |
+
}
|
856 |
+
if (millisec !== false) {
|
857 |
+
this.millisec = millisec;
|
858 |
+
}
|
859 |
+
if (microsec !== false) {
|
860 |
+
this.microsec = microsec;
|
861 |
+
}
|
862 |
+
if (timezone !== false) {
|
863 |
+
this.timezone = timezone;
|
864 |
+
}
|
865 |
+
|
866 |
+
if (!this.inst) {
|
867 |
+
this.inst = $.datepicker._getInst(this.$input[0]);
|
868 |
+
}
|
869 |
+
|
870 |
+
this._limitMinMaxDateTime(this.inst, true);
|
871 |
+
}
|
872 |
+
if (this.support.ampm) {
|
873 |
+
this.ampm = ampm;
|
874 |
+
}
|
875 |
+
|
876 |
+
// Updates the time within the timepicker
|
877 |
+
this.formattedTime = $.datepicker.formatTime(o.timeFormat, this, o);
|
878 |
+
if (this.$timeObj) {
|
879 |
+
if (pickerTimeFormat === o.timeFormat) {
|
880 |
+
this.$timeObj.val(this.formattedTime + pickerTimeSuffix);
|
881 |
+
}
|
882 |
+
else {
|
883 |
+
this.$timeObj.val($.datepicker.formatTime(pickerTimeFormat, this, o) + pickerTimeSuffix);
|
884 |
+
}
|
885 |
+
if (this.$timeObj[0].setSelectionRange) {
|
886 |
+
var sPos = this.$timeObj[0].selectionStart;
|
887 |
+
var ePos = this.$timeObj[0].selectionEnd;
|
888 |
+
this.$timeObj[0].setSelectionRange(sPos, ePos);
|
889 |
+
}
|
890 |
+
}
|
891 |
+
|
892 |
+
this.timeDefined = true;
|
893 |
+
if (hasChanged) {
|
894 |
+
this._updateDateTime();
|
895 |
+
//this.$input.focus(); // may automatically open the picker on setDate
|
896 |
+
}
|
897 |
+
},
|
898 |
+
|
899 |
+
/*
|
900 |
+
* call custom onSelect.
|
901 |
+
* bind to sliders slidestop, and grid click.
|
902 |
+
*/
|
903 |
+
_onSelectHandler: function () {
|
904 |
+
var onSelect = this._defaults.onSelect || this.inst.settings.onSelect;
|
905 |
+
var inputEl = this.$input ? this.$input[0] : null;
|
906 |
+
if (onSelect && inputEl) {
|
907 |
+
onSelect.apply(inputEl, [this.formattedDateTime, this]);
|
908 |
+
}
|
909 |
+
},
|
910 |
+
|
911 |
+
/*
|
912 |
+
* update our input with the new date time..
|
913 |
+
*/
|
914 |
+
_updateDateTime: function (dp_inst) {
|
915 |
+
dp_inst = this.inst || dp_inst;
|
916 |
+
var dtTmp = (dp_inst.currentYear > 0?
|
917 |
+
new Date(dp_inst.currentYear, dp_inst.currentMonth, dp_inst.currentDay) :
|
918 |
+
new Date(dp_inst.selectedYear, dp_inst.selectedMonth, dp_inst.selectedDay)),
|
919 |
+
dt = $.datepicker._daylightSavingAdjust(dtTmp),
|
920 |
+
//dt = $.datepicker._daylightSavingAdjust(new Date(dp_inst.selectedYear, dp_inst.selectedMonth, dp_inst.selectedDay)),
|
921 |
+
//dt = $.datepicker._daylightSavingAdjust(new Date(dp_inst.currentYear, dp_inst.currentMonth, dp_inst.currentDay)),
|
922 |
+
dateFmt = $.datepicker._get(dp_inst, 'dateFormat'),
|
923 |
+
formatCfg = $.datepicker._getFormatConfig(dp_inst),
|
924 |
+
timeAvailable = dt !== null && this.timeDefined;
|
925 |
+
this.formattedDate = $.datepicker.formatDate(dateFmt, (dt === null ? new Date() : dt), formatCfg);
|
926 |
+
var formattedDateTime = this.formattedDate;
|
927 |
+
|
928 |
+
// if a slider was changed but datepicker doesn't have a value yet, set it
|
929 |
+
if (dp_inst.lastVal === "") {
|
930 |
+
dp_inst.currentYear = dp_inst.selectedYear;
|
931 |
+
dp_inst.currentMonth = dp_inst.selectedMonth;
|
932 |
+
dp_inst.currentDay = dp_inst.selectedDay;
|
933 |
+
}
|
934 |
+
|
935 |
+
/*
|
936 |
+
* remove following lines to force every changes in date picker to change the input value
|
937 |
+
* Bug descriptions: when an input field has a default value, and click on the field to pop up the date picker.
|
938 |
+
* If the user manually empty the value in the input field, the date picker will never change selected value.
|
939 |
+
*/
|
940 |
+
//if (dp_inst.lastVal !== undefined && (dp_inst.lastVal.length > 0 && this.$input.val().length === 0)) {
|
941 |
+
// return;
|
942 |
+
//}
|
943 |
+
|
944 |
+
if (this._defaults.timeOnly === true && this._defaults.timeOnlyShowDate === false) {
|
945 |
+
formattedDateTime = this.formattedTime;
|
946 |
+
} else if ((this._defaults.timeOnly !== true && (this._defaults.alwaysSetTime || timeAvailable)) || (this._defaults.timeOnly === true && this._defaults.timeOnlyShowDate === true)) {
|
947 |
+
formattedDateTime += this._defaults.separator + this.formattedTime + this._defaults.timeSuffix;
|
948 |
+
}
|
949 |
+
|
950 |
+
this.formattedDateTime = formattedDateTime;
|
951 |
+
|
952 |
+
if (!this._defaults.showTimepicker) {
|
953 |
+
this.$input.val(this.formattedDate);
|
954 |
+
} else if (this.$altInput && this._defaults.timeOnly === false && this._defaults.altFieldTimeOnly === true) {
|
955 |
+
this.$altInput.val(this.formattedTime);
|
956 |
+
this.$input.val(this.formattedDate);
|
957 |
+
} else if (this.$altInput) {
|
958 |
+
this.$input.val(formattedDateTime);
|
959 |
+
var altFormattedDateTime = '',
|
960 |
+
altSeparator = this._defaults.altSeparator !== null ? this._defaults.altSeparator : this._defaults.separator,
|
961 |
+
altTimeSuffix = this._defaults.altTimeSuffix !== null ? this._defaults.altTimeSuffix : this._defaults.timeSuffix;
|
962 |
+
|
963 |
+
if (!this._defaults.timeOnly) {
|
964 |
+
if (this._defaults.altFormat) {
|
965 |
+
altFormattedDateTime = $.datepicker.formatDate(this._defaults.altFormat, (dt === null ? new Date() : dt), formatCfg);
|
966 |
+
}
|
967 |
+
else {
|
968 |
+
altFormattedDateTime = this.formattedDate;
|
969 |
+
}
|
970 |
+
|
971 |
+
if (altFormattedDateTime) {
|
972 |
+
altFormattedDateTime += altSeparator;
|
973 |
+
}
|
974 |
+
}
|
975 |
+
|
976 |
+
if (this._defaults.altTimeFormat !== null) {
|
977 |
+
altFormattedDateTime += $.datepicker.formatTime(this._defaults.altTimeFormat, this, this._defaults) + altTimeSuffix;
|
978 |
+
}
|
979 |
+
else {
|
980 |
+
altFormattedDateTime += this.formattedTime + altTimeSuffix;
|
981 |
+
}
|
982 |
+
this.$altInput.val(altFormattedDateTime);
|
983 |
+
} else {
|
984 |
+
this.$input.val(formattedDateTime);
|
985 |
+
}
|
986 |
+
|
987 |
+
this.$input.trigger("change");
|
988 |
+
},
|
989 |
+
|
990 |
+
_onFocus: function () {
|
991 |
+
if (!this.$input.val() && this._defaults.defaultValue) {
|
992 |
+
this.$input.val(this._defaults.defaultValue);
|
993 |
+
var inst = $.datepicker._getInst(this.$input.get(0)),
|
994 |
+
tp_inst = $.datepicker._get(inst, 'timepicker');
|
995 |
+
if (tp_inst) {
|
996 |
+
if (tp_inst._defaults.timeOnly && (inst.input.val() !== inst.lastVal)) {
|
997 |
+
try {
|
998 |
+
$.datepicker._updateDatepicker(inst);
|
999 |
+
} catch (err) {
|
1000 |
+
$.timepicker.log(err);
|
1001 |
+
}
|
1002 |
+
}
|
1003 |
+
}
|
1004 |
+
}
|
1005 |
+
},
|
1006 |
+
|
1007 |
+
/*
|
1008 |
+
* Small abstraction to control types
|
1009 |
+
* We can add more, just be sure to follow the pattern: create, options, value
|
1010 |
+
*/
|
1011 |
+
_controls: {
|
1012 |
+
// slider methods
|
1013 |
+
slider: {
|
1014 |
+
create: function (tp_inst, obj, unit, val, min, max, step) {
|
1015 |
+
var rtl = tp_inst._defaults.isRTL; // if rtl go -60->0 instead of 0->60
|
1016 |
+
return obj.prop('slide', null).slider({
|
1017 |
+
orientation: "horizontal",
|
1018 |
+
value: rtl ? val * -1 : val,
|
1019 |
+
min: rtl ? max * -1 : min,
|
1020 |
+
max: rtl ? min * -1 : max,
|
1021 |
+
step: step,
|
1022 |
+
slide: function (event, ui) {
|
1023 |
+
tp_inst.control.value(tp_inst, $(this), unit, rtl ? ui.value * -1 : ui.value);
|
1024 |
+
tp_inst._onTimeChange();
|
1025 |
+
},
|
1026 |
+
stop: function (event, ui) {
|
1027 |
+
tp_inst._onSelectHandler();
|
1028 |
+
}
|
1029 |
+
});
|
1030 |
+
},
|
1031 |
+
options: function (tp_inst, obj, unit, opts, val) {
|
1032 |
+
if (tp_inst._defaults.isRTL) {
|
1033 |
+
if (typeof(opts) === 'string') {
|
1034 |
+
if (opts === 'min' || opts === 'max') {
|
1035 |
+
if (val !== undefined) {
|
1036 |
+
return obj.slider(opts, val * -1);
|
1037 |
+
}
|
1038 |
+
return Math.abs(obj.slider(opts));
|
1039 |
+
}
|
1040 |
+
return obj.slider(opts);
|
1041 |
+
}
|
1042 |
+
var min = opts.min,
|
1043 |
+
max = opts.max;
|
1044 |
+
opts.min = opts.max = null;
|
1045 |
+
if (min !== undefined) {
|
1046 |
+
opts.max = min * -1;
|
1047 |
+
}
|
1048 |
+
if (max !== undefined) {
|
1049 |
+
opts.min = max * -1;
|
1050 |
+
}
|
1051 |
+
return obj.slider(opts);
|
1052 |
+
}
|
1053 |
+
if (typeof(opts) === 'string' && val !== undefined) {
|
1054 |
+
return obj.slider(opts, val);
|
1055 |
+
}
|
1056 |
+
return obj.slider(opts);
|
1057 |
+
},
|
1058 |
+
value: function (tp_inst, obj, unit, val) {
|
1059 |
+
if (tp_inst._defaults.isRTL) {
|
1060 |
+
if (val !== undefined) {
|
1061 |
+
return obj.slider('value', val * -1);
|
1062 |
+
}
|
1063 |
+
return Math.abs(obj.slider('value'));
|
1064 |
+
}
|
1065 |
+
if (val !== undefined) {
|
1066 |
+
return obj.slider('value', val);
|
1067 |
+
}
|
1068 |
+
return obj.slider('value');
|
1069 |
+
}
|
1070 |
+
},
|
1071 |
+
// select methods
|
1072 |
+
select: {
|
1073 |
+
create: function (tp_inst, obj, unit, val, min, max, step) {
|
1074 |
+
var sel = '<select class="ui-timepicker-select ui-state-default ui-corner-all" data-unit="' + unit + '" data-min="' + min + '" data-max="' + max + '" data-step="' + step + '">',
|
1075 |
+
format = tp_inst._defaults.pickerTimeFormat || tp_inst._defaults.timeFormat;
|
1076 |
+
|
1077 |
+
for (var i = min; i <= max; i += step) {
|
1078 |
+
sel += '<option value="' + i + '"' + (i === val ? ' selected' : '') + '>';
|
1079 |
+
if (unit === 'hour') {
|
1080 |
+
sel += $.datepicker.formatTime($.trim(format.replace(/[^ht ]/ig, '')), {hour: i}, tp_inst._defaults);
|
1081 |
+
}
|
1082 |
+
else if (unit === 'millisec' || unit === 'microsec' || i >= 10) { sel += i; }
|
1083 |
+
else {sel += '0' + i.toString(); }
|
1084 |
+
sel += '</option>';
|
1085 |
+
}
|
1086 |
+
sel += '</select>';
|
1087 |
+
|
1088 |
+
obj.children('select').remove();
|
1089 |
+
|
1090 |
+
$(sel).appendTo(obj).change(function (e) {
|
1091 |
+
tp_inst._onTimeChange();
|
1092 |
+
tp_inst._onSelectHandler();
|
1093 |
+
tp_inst._afterInject();
|
1094 |
+
});
|
1095 |
+
|
1096 |
+
return obj;
|
1097 |
+
},
|
1098 |
+
options: function (tp_inst, obj, unit, opts, val) {
|
1099 |
+
var o = {},
|
1100 |
+
$t = obj.children('select');
|
1101 |
+
if (typeof(opts) === 'string') {
|
1102 |
+
if (val === undefined) {
|
1103 |
+
return $t.data(opts);
|
1104 |
+
}
|
1105 |
+
o[opts] = val;
|
1106 |
+
}
|
1107 |
+
else { o = opts; }
|
1108 |
+
return tp_inst.control.create(tp_inst, obj, $t.data('unit'), $t.val(), o.min>=0 ? o.min : $t.data('min'), o.max || $t.data('max'), o.step || $t.data('step'));
|
1109 |
+
},
|
1110 |
+
value: function (tp_inst, obj, unit, val) {
|
1111 |
+
var $t = obj.children('select');
|
1112 |
+
if (val !== undefined) {
|
1113 |
+
return $t.val(val);
|
1114 |
+
}
|
1115 |
+
return $t.val();
|
1116 |
+
}
|
1117 |
+
}
|
1118 |
+
} // end _controls
|
1119 |
+
|
1120 |
+
});
|
1121 |
+
|
1122 |
+
$.fn.extend({
|
1123 |
+
/*
|
1124 |
+
* shorthand just to use timepicker.
|
1125 |
+
*/
|
1126 |
+
timepicker: function (o) {
|
1127 |
+
o = o || {};
|
1128 |
+
var tmp_args = Array.prototype.slice.call(arguments);
|
1129 |
+
|
1130 |
+
if (typeof o === 'object') {
|
1131 |
+
tmp_args[0] = $.extend(o, {
|
1132 |
+
timeOnly: true
|
1133 |
+
});
|
1134 |
+
}
|
1135 |
+
|
1136 |
+
return $(this).each(function () {
|
1137 |
+
$.fn.datetimepicker.apply($(this), tmp_args);
|
1138 |
+
});
|
1139 |
+
},
|
1140 |
+
|
1141 |
+
/*
|
1142 |
+
* extend timepicker to datepicker
|
1143 |
+
*/
|
1144 |
+
datetimepicker: function (o) {
|
1145 |
+
o = o || {};
|
1146 |
+
var tmp_args = arguments;
|
1147 |
+
|
1148 |
+
if (typeof(o) === 'string') {
|
1149 |
+
if (o === 'getDate' || (o === 'option' && tmp_args.length === 2 && typeof (tmp_args[1]) === 'string')) {
|
1150 |
+
return $.fn.datepicker.apply($(this[0]), tmp_args);
|
1151 |
+
} else {
|
1152 |
+
return this.each(function () {
|
1153 |
+
var $t = $(this);
|
1154 |
+
$t.datepicker.apply($t, tmp_args);
|
1155 |
+
});
|
1156 |
+
}
|
1157 |
+
} else {
|
1158 |
+
return this.each(function () {
|
1159 |
+
var $t = $(this);
|
1160 |
+
$t.datepicker($.timepicker._newInst($t, o)._defaults);
|
1161 |
+
});
|
1162 |
+
}
|
1163 |
+
}
|
1164 |
+
});
|
1165 |
+
|
1166 |
+
/*
|
1167 |
+
* Public Utility to parse date and time
|
1168 |
+
*/
|
1169 |
+
$.datepicker.parseDateTime = function (dateFormat, timeFormat, dateTimeString, dateSettings, timeSettings) {
|
1170 |
+
var parseRes = parseDateTimeInternal(dateFormat, timeFormat, dateTimeString, dateSettings, timeSettings);
|
1171 |
+
if (parseRes.timeObj) {
|
1172 |
+
var t = parseRes.timeObj;
|
1173 |
+
parseRes.date.setHours(t.hour, t.minute, t.second, t.millisec);
|
1174 |
+
parseRes.date.setMicroseconds(t.microsec);
|
1175 |
+
}
|
1176 |
+
|
1177 |
+
return parseRes.date;
|
1178 |
+
};
|
1179 |
+
|
1180 |
+
/*
|
1181 |
+
* Public utility to parse time
|
1182 |
+
*/
|
1183 |
+
$.datepicker.parseTime = function (timeFormat, timeString, options) {
|
1184 |
+
var o = extendRemove(extendRemove({}, $.timepicker._defaults), options || {}),
|
1185 |
+
iso8601 = (timeFormat.replace(/\'.*?\'/g, '').indexOf('Z') !== -1);
|
1186 |
+
|
1187 |
+
// Strict parse requires the timeString to match the timeFormat exactly
|
1188 |
+
var strictParse = function (f, s, o) {
|
1189 |
+
|
1190 |
+
// pattern for standard and localized AM/PM markers
|
1191 |
+
var getPatternAmpm = function (amNames, pmNames) {
|
1192 |
+
var markers = [];
|
1193 |
+
if (amNames) {
|
1194 |
+
$.merge(markers, amNames);
|
1195 |
+
}
|
1196 |
+
if (pmNames) {
|
1197 |
+
$.merge(markers, pmNames);
|
1198 |
+
}
|
1199 |
+
markers = $.map(markers, function (val) {
|
1200 |
+
return val.replace(/[.*+?|()\[\]{}\\]/g, '\\$&');
|
1201 |
+
});
|
1202 |
+
return '(' + markers.join('|') + ')?';
|
1203 |
+
};
|
1204 |
+
|
1205 |
+
// figure out position of time elements.. cause js cant do named captures
|
1206 |
+
var getFormatPositions = function (timeFormat) {
|
1207 |
+
var finds = timeFormat.toLowerCase().match(/(h{1,2}|m{1,2}|s{1,2}|l{1}|c{1}|t{1,2}|z|'.*?')/g),
|
1208 |
+
orders = {
|
1209 |
+
h: -1,
|
1210 |
+
m: -1,
|
1211 |
+
s: -1,
|
1212 |
+
l: -1,
|
1213 |
+
c: -1,
|
1214 |
+
t: -1,
|
1215 |
+
z: -1
|
1216 |
+
};
|
1217 |
+
|
1218 |
+
if (finds) {
|
1219 |
+
for (var i = 0; i < finds.length; i++) {
|
1220 |
+
if (orders[finds[i].toString().charAt(0)] === -1) {
|
1221 |
+
orders[finds[i].toString().charAt(0)] = i + 1;
|
1222 |
+
}
|
1223 |
+
}
|
1224 |
+
}
|
1225 |
+
return orders;
|
1226 |
+
};
|
1227 |
+
|
1228 |
+
var regstr = '^' + f.toString()
|
1229 |
+
.replace(/([hH]{1,2}|mm?|ss?|[tT]{1,2}|[zZ]|[lc]|'.*?')/g, function (match) {
|
1230 |
+
var ml = match.length;
|
1231 |
+
switch (match.charAt(0).toLowerCase()) {
|
1232 |
+
case 'h':
|
1233 |
+
return ml === 1 ? '(\\d?\\d)' : '(\\d{' + ml + '})';
|
1234 |
+
case 'm':
|
1235 |
+
return ml === 1 ? '(\\d?\\d)' : '(\\d{' + ml + '})';
|
1236 |
+
case 's':
|
1237 |
+
return ml === 1 ? '(\\d?\\d)' : '(\\d{' + ml + '})';
|
1238 |
+
case 'l':
|
1239 |
+
return '(\\d?\\d?\\d)';
|
1240 |
+
case 'c':
|
1241 |
+
return '(\\d?\\d?\\d)';
|
1242 |
+
case 'z':
|
1243 |
+
return '(z|[-+]\\d\\d:?\\d\\d|\\S+)?';
|
1244 |
+
case 't':
|
1245 |
+
return getPatternAmpm(o.amNames, o.pmNames);
|
1246 |
+
default: // literal escaped in quotes
|
1247 |
+
return '(' + match.replace(/\'/g, "").replace(/(\.|\$|\^|\\|\/|\(|\)|\[|\]|\?|\+|\*)/g, function (m) { return "\\" + m; }) + ')?';
|
1248 |
+
}
|
1249 |
+
})
|
1250 |
+
.replace(/\s/g, '\\s?') +
|
1251 |
+
o.timeSuffix + '$',
|
1252 |
+
order = getFormatPositions(f),
|
1253 |
+
ampm = '',
|
1254 |
+
treg;
|
1255 |
+
|
1256 |
+
treg = s.match(new RegExp(regstr, 'i'));
|
1257 |
+
|
1258 |
+
var resTime = {
|
1259 |
+
hour: 0,
|
1260 |
+
minute: 0,
|
1261 |
+
second: 0,
|
1262 |
+
millisec: 0,
|
1263 |
+
microsec: 0
|
1264 |
+
};
|
1265 |
+
|
1266 |
+
if (treg) {
|
1267 |
+
if (order.t !== -1) {
|
1268 |
+
if (treg[order.t] === undefined || treg[order.t].length === 0) {
|
1269 |
+
ampm = '';
|
1270 |
+
resTime.ampm = '';
|
1271 |
+
} else {
|
1272 |
+
ampm = $.inArray(treg[order.t].toUpperCase(), $.map(o.amNames, function (x,i) { return x.toUpperCase(); })) !== -1 ? 'AM' : 'PM';
|
1273 |
+
resTime.ampm = o[ampm === 'AM' ? 'amNames' : 'pmNames'][0];
|
1274 |
+
}
|
1275 |
+
}
|
1276 |
+
|
1277 |
+
if (order.h !== -1) {
|
1278 |
+
if (ampm === 'AM' && treg[order.h] === '12') {
|
1279 |
+
resTime.hour = 0; // 12am = 0 hour
|
1280 |
+
} else {
|
1281 |
+
if (ampm === 'PM' && treg[order.h] !== '12') {
|
1282 |
+
resTime.hour = parseInt(treg[order.h], 10) + 12; // 12pm = 12 hour, any other pm = hour + 12
|
1283 |
+
} else {
|
1284 |
+
resTime.hour = Number(treg[order.h]);
|
1285 |
+
}
|
1286 |
+
}
|
1287 |
+
}
|
1288 |
+
|
1289 |
+
if (order.m !== -1) {
|
1290 |
+
resTime.minute = Number(treg[order.m]);
|
1291 |
+
}
|
1292 |
+
if (order.s !== -1) {
|
1293 |
+
resTime.second = Number(treg[order.s]);
|
1294 |
+
}
|
1295 |
+
if (order.l !== -1) {
|
1296 |
+
resTime.millisec = Number(treg[order.l]);
|
1297 |
+
}
|
1298 |
+
if (order.c !== -1) {
|
1299 |
+
resTime.microsec = Number(treg[order.c]);
|
1300 |
+
}
|
1301 |
+
if (order.z !== -1 && treg[order.z] !== undefined) {
|
1302 |
+
resTime.timezone = $.timepicker.timezoneOffsetNumber(treg[order.z]);
|
1303 |
+
}
|
1304 |
+
|
1305 |
+
|
1306 |
+
return resTime;
|
1307 |
+
}
|
1308 |
+
return false;
|
1309 |
+
};// end strictParse
|
1310 |
+
|
1311 |
+
// First try JS Date, if that fails, use strictParse
|
1312 |
+
var looseParse = function (f, s, o) {
|
1313 |
+
try {
|
1314 |
+
var d = new Date('2012-01-01 ' + s);
|
1315 |
+
if (isNaN(d.getTime())) {
|
1316 |
+
d = new Date('2012-01-01T' + s);
|
1317 |
+
if (isNaN(d.getTime())) {
|
1318 |
+
d = new Date('01/01/2012 ' + s);
|
1319 |
+
if (isNaN(d.getTime())) {
|
1320 |
+
throw "Unable to parse time with native Date: " + s;
|
1321 |
+
}
|
1322 |
+
}
|
1323 |
+
}
|
1324 |
+
|
1325 |
+
return {
|
1326 |
+
hour: d.getHours(),
|
1327 |
+
minute: d.getMinutes(),
|
1328 |
+
second: d.getSeconds(),
|
1329 |
+
millisec: d.getMilliseconds(),
|
1330 |
+
microsec: d.getMicroseconds(),
|
1331 |
+
timezone: d.getTimezoneOffset() * -1
|
1332 |
+
};
|
1333 |
+
}
|
1334 |
+
catch (err) {
|
1335 |
+
try {
|
1336 |
+
return strictParse(f, s, o);
|
1337 |
+
}
|
1338 |
+
catch (err2) {
|
1339 |
+
$.timepicker.log("Unable to parse \ntimeString: " + s + "\ntimeFormat: " + f);
|
1340 |
+
}
|
1341 |
+
}
|
1342 |
+
return false;
|
1343 |
+
}; // end looseParse
|
1344 |
+
|
1345 |
+
if (typeof o.parse === "function") {
|
1346 |
+
return o.parse(timeFormat, timeString, o);
|
1347 |
+
}
|
1348 |
+
if (o.parse === 'loose') {
|
1349 |
+
return looseParse(timeFormat, timeString, o);
|
1350 |
+
}
|
1351 |
+
return strictParse(timeFormat, timeString, o);
|
1352 |
+
};
|
1353 |
+
|
1354 |
+
/**
|
1355 |
+
* Public utility to format the time
|
1356 |
+
* @param {string} format format of the time
|
1357 |
+
* @param {Object} time Object not a Date for timezones
|
1358 |
+
* @param {Object} [options] essentially the regional[].. amNames, pmNames, ampm
|
1359 |
+
* @returns {string} the formatted time
|
1360 |
+
*/
|
1361 |
+
$.datepicker.formatTime = function (format, time, options) {
|
1362 |
+
options = options || {};
|
1363 |
+
options = $.extend({}, $.timepicker._defaults, options);
|
1364 |
+
time = $.extend({
|
1365 |
+
hour: 0,
|
1366 |
+
minute: 0,
|
1367 |
+
second: 0,
|
1368 |
+
millisec: 0,
|
1369 |
+
microsec: 0,
|
1370 |
+
timezone: null
|
1371 |
+
}, time);
|
1372 |
+
|
1373 |
+
var tmptime = format,
|
1374 |
+
ampmName = options.amNames[0],
|
1375 |
+
hour = parseInt(time.hour, 10);
|
1376 |
+
|
1377 |
+
if (hour > 11) {
|
1378 |
+
ampmName = options.pmNames[0];
|
1379 |
+
}
|
1380 |
+
|
1381 |
+
tmptime = tmptime.replace(/(?:HH?|hh?|mm?|ss?|[tT]{1,2}|[zZ]|[lc]|'.*?')/g, function (match) {
|
1382 |
+
switch (match) {
|
1383 |
+
case 'HH':
|
1384 |
+
return ('0' + hour).slice(-2);
|
1385 |
+
case 'H':
|
1386 |
+
return hour;
|
1387 |
+
case 'hh':
|
1388 |
+
return ('0' + convert24to12(hour)).slice(-2);
|
1389 |
+
case 'h':
|
1390 |
+
return convert24to12(hour);
|
1391 |
+
case 'mm':
|
1392 |
+
return ('0' + time.minute).slice(-2);
|
1393 |
+
case 'm':
|
1394 |
+
return time.minute;
|
1395 |
+
case 'ss':
|
1396 |
+
return ('0' + time.second).slice(-2);
|
1397 |
+
case 's':
|
1398 |
+
return time.second;
|
1399 |
+
case 'l':
|
1400 |
+
return ('00' + time.millisec).slice(-3);
|
1401 |
+
case 'c':
|
1402 |
+
return ('00' + time.microsec).slice(-3);
|
1403 |
+
case 'z':
|
1404 |
+
return $.timepicker.timezoneOffsetString(time.timezone === null ? options.timezone : time.timezone, false);
|
1405 |
+
case 'Z':
|
1406 |
+
return $.timepicker.timezoneOffsetString(time.timezone === null ? options.timezone : time.timezone, true);
|
1407 |
+
case 'T':
|
1408 |
+
return ampmName.charAt(0).toUpperCase();
|
1409 |
+
case 'TT':
|
1410 |
+
return ampmName.toUpperCase();
|
1411 |
+
case 't':
|
1412 |
+
return ampmName.charAt(0).toLowerCase();
|
1413 |
+
case 'tt':
|
1414 |
+
return ampmName.toLowerCase();
|
1415 |
+
default:
|
1416 |
+
return match.replace(/'/g, "");
|
1417 |
+
}
|
1418 |
+
});
|
1419 |
+
|
1420 |
+
return tmptime;
|
1421 |
+
};
|
1422 |
+
|
1423 |
+
/*
|
1424 |
+
* the bad hack :/ override datepicker so it doesn't close on select
|
1425 |
+
// inspired: http://stackoverflow.com/questions/1252512/jquery-datepicker-prevent-closing-picker-when-clicking-a-date/1762378#1762378
|
1426 |
+
*/
|
1427 |
+
$.datepicker._base_selectDate = $.datepicker._selectDate;
|
1428 |
+
$.datepicker._selectDate = function (id, dateStr) {
|
1429 |
+
var inst = this._getInst($(id)[0]),
|
1430 |
+
tp_inst = this._get(inst, 'timepicker'),
|
1431 |
+
was_inline;
|
1432 |
+
|
1433 |
+
if (tp_inst && inst.settings.showTimepicker) {
|
1434 |
+
tp_inst._limitMinMaxDateTime(inst, true);
|
1435 |
+
was_inline = inst.inline;
|
1436 |
+
inst.inline = inst.stay_open = true;
|
1437 |
+
//This way the onSelect handler called from calendarpicker get the full dateTime
|
1438 |
+
this._base_selectDate(id, dateStr);
|
1439 |
+
inst.inline = was_inline;
|
1440 |
+
inst.stay_open = false;
|
1441 |
+
this._notifyChange(inst);
|
1442 |
+
this._updateDatepicker(inst);
|
1443 |
+
} else {
|
1444 |
+
this._base_selectDate(id, dateStr);
|
1445 |
+
}
|
1446 |
+
};
|
1447 |
+
|
1448 |
+
/*
|
1449 |
+
* second bad hack :/ override datepicker so it triggers an event when changing the input field
|
1450 |
+
* and does not redraw the datepicker on every selectDate event
|
1451 |
+
*/
|
1452 |
+
$.datepicker._base_updateDatepicker = $.datepicker._updateDatepicker;
|
1453 |
+
$.datepicker._updateDatepicker = function (inst) {
|
1454 |
+
|
1455 |
+
// don't popup the datepicker if there is another instance already opened
|
1456 |
+
var input = inst.input[0];
|
1457 |
+
if ($.datepicker._curInst && $.datepicker._curInst !== inst && $.datepicker._datepickerShowing && $.datepicker._lastInput !== input) {
|
1458 |
+
return;
|
1459 |
+
}
|
1460 |
+
|
1461 |
+
if (typeof(inst.stay_open) !== 'boolean' || inst.stay_open === false) {
|
1462 |
+
|
1463 |
+
this._base_updateDatepicker(inst);
|
1464 |
+
|
1465 |
+
// Reload the time control when changing something in the input text field.
|
1466 |
+
var tp_inst = this._get(inst, 'timepicker');
|
1467 |
+
if (tp_inst) {
|
1468 |
+
tp_inst._addTimePicker(inst);
|
1469 |
+
}
|
1470 |
+
}
|
1471 |
+
};
|
1472 |
+
|
1473 |
+
/*
|
1474 |
+
* third bad hack :/ override datepicker so it allows spaces and colon in the input field
|
1475 |
+
*/
|
1476 |
+
$.datepicker._base_doKeyPress = $.datepicker._doKeyPress;
|
1477 |
+
$.datepicker._doKeyPress = function (event) {
|
1478 |
+
var inst = $.datepicker._getInst(event.target),
|
1479 |
+
tp_inst = $.datepicker._get(inst, 'timepicker');
|
1480 |
+
|
1481 |
+
if (tp_inst) {
|
1482 |
+
if ($.datepicker._get(inst, 'constrainInput')) {
|
1483 |
+
var ampm = tp_inst.support.ampm,
|
1484 |
+
tz = tp_inst._defaults.showTimezone !== null ? tp_inst._defaults.showTimezone : tp_inst.support.timezone,
|
1485 |
+
dateChars = $.datepicker._possibleChars($.datepicker._get(inst, 'dateFormat')),
|
1486 |
+
datetimeChars = tp_inst._defaults.timeFormat.toString()
|
1487 |
+
.replace(/[hms]/g, '')
|
1488 |
+
.replace(/TT/g, ampm ? 'APM' : '')
|
1489 |
+
.replace(/Tt/g, ampm ? 'AaPpMm' : '')
|
1490 |
+
.replace(/tT/g, ampm ? 'AaPpMm' : '')
|
1491 |
+
.replace(/T/g, ampm ? 'AP' : '')
|
1492 |
+
.replace(/tt/g, ampm ? 'apm' : '')
|
1493 |
+
.replace(/t/g, ampm ? 'ap' : '') +
|
1494 |
+
" " + tp_inst._defaults.separator +
|
1495 |
+
tp_inst._defaults.timeSuffix +
|
1496 |
+
(tz ? tp_inst._defaults.timezoneList.join('') : '') +
|
1497 |
+
(tp_inst._defaults.amNames.join('')) + (tp_inst._defaults.pmNames.join('')) +
|
1498 |
+
dateChars,
|
1499 |
+
chr = String.fromCharCode(event.charCode === undefined ? event.keyCode : event.charCode);
|
1500 |
+
return event.ctrlKey || (chr < ' ' || !dateChars || datetimeChars.indexOf(chr) > -1);
|
1501 |
+
}
|
1502 |
+
}
|
1503 |
+
|
1504 |
+
return $.datepicker._base_doKeyPress(event);
|
1505 |
+
};
|
1506 |
+
|
1507 |
+
/*
|
1508 |
+
* Fourth bad hack :/ override _updateAlternate function used in inline mode to init altField
|
1509 |
+
* Update any alternate field to synchronise with the main field.
|
1510 |
+
*/
|
1511 |
+
$.datepicker._base_updateAlternate = $.datepicker._updateAlternate;
|
1512 |
+
$.datepicker._updateAlternate = function (inst) {
|
1513 |
+
var tp_inst = this._get(inst, 'timepicker');
|
1514 |
+
if (tp_inst) {
|
1515 |
+
var altField = tp_inst._defaults.altField;
|
1516 |
+
if (altField) { // update alternate field too
|
1517 |
+
var altFormat = tp_inst._defaults.altFormat || tp_inst._defaults.dateFormat,
|
1518 |
+
date = this._getDate(inst),
|
1519 |
+
formatCfg = $.datepicker._getFormatConfig(inst),
|
1520 |
+
altFormattedDateTime = '',
|
1521 |
+
altSeparator = tp_inst._defaults.altSeparator ? tp_inst._defaults.altSeparator : tp_inst._defaults.separator,
|
1522 |
+
altTimeSuffix = tp_inst._defaults.altTimeSuffix ? tp_inst._defaults.altTimeSuffix : tp_inst._defaults.timeSuffix,
|
1523 |
+
altTimeFormat = tp_inst._defaults.altTimeFormat !== null ? tp_inst._defaults.altTimeFormat : tp_inst._defaults.timeFormat;
|
1524 |
+
|
1525 |
+
altFormattedDateTime += $.datepicker.formatTime(altTimeFormat, tp_inst, tp_inst._defaults) + altTimeSuffix;
|
1526 |
+
if (!tp_inst._defaults.timeOnly && !tp_inst._defaults.altFieldTimeOnly && date !== null) {
|
1527 |
+
if (tp_inst._defaults.altFormat) {
|
1528 |
+
altFormattedDateTime = $.datepicker.formatDate(tp_inst._defaults.altFormat, date, formatCfg) + altSeparator + altFormattedDateTime;
|
1529 |
+
}
|
1530 |
+
else {
|
1531 |
+
altFormattedDateTime = tp_inst.formattedDate + altSeparator + altFormattedDateTime;
|
1532 |
+
}
|
1533 |
+
}
|
1534 |
+
$(altField).val( inst.input.val() ? altFormattedDateTime : "");
|
1535 |
+
}
|
1536 |
+
}
|
1537 |
+
else {
|
1538 |
+
$.datepicker._base_updateAlternate(inst);
|
1539 |
+
}
|
1540 |
+
};
|
1541 |
+
|
1542 |
+
/*
|
1543 |
+
* Override key up event to sync manual input changes.
|
1544 |
+
*/
|
1545 |
+
$.datepicker._base_doKeyUp = $.datepicker._doKeyUp;
|
1546 |
+
$.datepicker._doKeyUp = function (event) {
|
1547 |
+
var inst = $.datepicker._getInst(event.target),
|
1548 |
+
tp_inst = $.datepicker._get(inst, 'timepicker');
|
1549 |
+
|
1550 |
+
if (tp_inst) {
|
1551 |
+
if (tp_inst._defaults.timeOnly && (inst.input.val() !== inst.lastVal)) {
|
1552 |
+
try {
|
1553 |
+
$.datepicker._updateDatepicker(inst);
|
1554 |
+
} catch (err) {
|
1555 |
+
$.timepicker.log(err);
|
1556 |
+
}
|
1557 |
+
}
|
1558 |
+
}
|
1559 |
+
|
1560 |
+
return $.datepicker._base_doKeyUp(event);
|
1561 |
+
};
|
1562 |
+
|
1563 |
+
/*
|
1564 |
+
* override "Today" button to also grab the time and set it to input field.
|
1565 |
+
*/
|
1566 |
+
$.datepicker._base_gotoToday = $.datepicker._gotoToday;
|
1567 |
+
$.datepicker._gotoToday = function (id) {
|
1568 |
+
var inst = this._getInst($(id)[0]);
|
1569 |
+
this._base_gotoToday(id);
|
1570 |
+
var tp_inst = this._get(inst, 'timepicker');
|
1571 |
+
if (!tp_inst) {
|
1572 |
+
return;
|
1573 |
+
}
|
1574 |
+
|
1575 |
+
var tzoffset = $.timepicker.timezoneOffsetNumber(tp_inst.timezone);
|
1576 |
+
var now = new Date();
|
1577 |
+
now.setMinutes(now.getMinutes() + now.getTimezoneOffset() + parseInt(tzoffset, 10));
|
1578 |
+
this._setTime(inst, now);
|
1579 |
+
this._setDate(inst, now);
|
1580 |
+
tp_inst._onSelectHandler();
|
1581 |
+
};
|
1582 |
+
|
1583 |
+
/*
|
1584 |
+
* Disable & enable the Time in the datetimepicker
|
1585 |
+
*/
|
1586 |
+
$.datepicker._disableTimepickerDatepicker = function (target) {
|
1587 |
+
var inst = this._getInst(target);
|
1588 |
+
if (!inst) {
|
1589 |
+
return;
|
1590 |
+
}
|
1591 |
+
|
1592 |
+
var tp_inst = this._get(inst, 'timepicker');
|
1593 |
+
$(target).datepicker('getDate'); // Init selected[Year|Month|Day]
|
1594 |
+
if (tp_inst) {
|
1595 |
+
inst.settings.showTimepicker = false;
|
1596 |
+
tp_inst._defaults.showTimepicker = false;
|
1597 |
+
tp_inst._updateDateTime(inst);
|
1598 |
+
}
|
1599 |
+
};
|
1600 |
+
|
1601 |
+
$.datepicker._enableTimepickerDatepicker = function (target) {
|
1602 |
+
var inst = this._getInst(target);
|
1603 |
+
if (!inst) {
|
1604 |
+
return;
|
1605 |
+
}
|
1606 |
+
|
1607 |
+
var tp_inst = this._get(inst, 'timepicker');
|
1608 |
+
$(target).datepicker('getDate'); // Init selected[Year|Month|Day]
|
1609 |
+
if (tp_inst) {
|
1610 |
+
inst.settings.showTimepicker = true;
|
1611 |
+
tp_inst._defaults.showTimepicker = true;
|
1612 |
+
tp_inst._addTimePicker(inst); // Could be disabled on page load
|
1613 |
+
tp_inst._updateDateTime(inst);
|
1614 |
+
}
|
1615 |
+
};
|
1616 |
+
|
1617 |
+
/*
|
1618 |
+
* Create our own set time function
|
1619 |
+
*/
|
1620 |
+
$.datepicker._setTime = function (inst, date) {
|
1621 |
+
var tp_inst = this._get(inst, 'timepicker');
|
1622 |
+
if (tp_inst) {
|
1623 |
+
var defaults = tp_inst._defaults;
|
1624 |
+
|
1625 |
+
// calling _setTime with no date sets time to defaults
|
1626 |
+
tp_inst.hour = date ? date.getHours() : defaults.hour;
|
1627 |
+
tp_inst.minute = date ? date.getMinutes() : defaults.minute;
|
1628 |
+
tp_inst.second = date ? date.getSeconds() : defaults.second;
|
1629 |
+
tp_inst.millisec = date ? date.getMilliseconds() : defaults.millisec;
|
1630 |
+
tp_inst.microsec = date ? date.getMicroseconds() : defaults.microsec;
|
1631 |
+
|
1632 |
+
//check if within min/max times..
|
1633 |
+
tp_inst._limitMinMaxDateTime(inst, true);
|
1634 |
+
|
1635 |
+
tp_inst._onTimeChange();
|
1636 |
+
tp_inst._updateDateTime(inst);
|
1637 |
+
}
|
1638 |
+
};
|
1639 |
+
|
1640 |
+
/*
|
1641 |
+
* Create new public method to set only time, callable as $().datepicker('setTime', date)
|
1642 |
+
*/
|
1643 |
+
$.datepicker._setTimeDatepicker = function (target, date, withDate) {
|
1644 |
+
var inst = this._getInst(target);
|
1645 |
+
if (!inst) {
|
1646 |
+
return;
|
1647 |
+
}
|
1648 |
+
|
1649 |
+
var tp_inst = this._get(inst, 'timepicker');
|
1650 |
+
|
1651 |
+
if (tp_inst) {
|
1652 |
+
this._setDateFromField(inst);
|
1653 |
+
var tp_date;
|
1654 |
+
if (date) {
|
1655 |
+
if (typeof date === "string") {
|
1656 |
+
tp_inst._parseTime(date, withDate);
|
1657 |
+
tp_date = new Date();
|
1658 |
+
tp_date.setHours(tp_inst.hour, tp_inst.minute, tp_inst.second, tp_inst.millisec);
|
1659 |
+
tp_date.setMicroseconds(tp_inst.microsec);
|
1660 |
+
} else {
|
1661 |
+
tp_date = new Date(date.getTime());
|
1662 |
+
tp_date.setMicroseconds(date.getMicroseconds());
|
1663 |
+
}
|
1664 |
+
if (tp_date.toString() === 'Invalid Date') {
|
1665 |
+
tp_date = undefined;
|
1666 |
+
}
|
1667 |
+
this._setTime(inst, tp_date);
|
1668 |
+
}
|
1669 |
+
}
|
1670 |
+
|
1671 |
+
};
|
1672 |
+
|
1673 |
+
/*
|
1674 |
+
* override setDate() to allow setting time too within Date object
|
1675 |
+
*/
|
1676 |
+
$.datepicker._base_setDateDatepicker = $.datepicker._setDateDatepicker;
|
1677 |
+
$.datepicker._setDateDatepicker = function (target, _date) {
|
1678 |
+
var inst = this._getInst(target);
|
1679 |
+
var date = _date;
|
1680 |
+
if (!inst) {
|
1681 |
+
return;
|
1682 |
+
}
|
1683 |
+
|
1684 |
+
if (typeof(_date) === 'string') {
|
1685 |
+
date = new Date(_date);
|
1686 |
+
if (!date.getTime()) {
|
1687 |
+
this._base_setDateDatepicker.apply(this, arguments);
|
1688 |
+
date = $(target).datepicker('getDate');
|
1689 |
+
}
|
1690 |
+
}
|
1691 |
+
|
1692 |
+
var tp_inst = this._get(inst, 'timepicker');
|
1693 |
+
var tp_date;
|
1694 |
+
if (date instanceof Date) {
|
1695 |
+
tp_date = new Date(date.getTime());
|
1696 |
+
tp_date.setMicroseconds(date.getMicroseconds());
|
1697 |
+
} else {
|
1698 |
+
tp_date = date;
|
1699 |
+
}
|
1700 |
+
|
1701 |
+
// This is important if you are using the timezone option, javascript's Date
|
1702 |
+
// object will only return the timezone offset for the current locale, so we
|
1703 |
+
// adjust it accordingly. If not using timezone option this won't matter..
|
1704 |
+
// If a timezone is different in tp, keep the timezone as is
|
1705 |
+
if (tp_inst && tp_date) {
|
1706 |
+
// look out for DST if tz wasn't specified
|
1707 |
+
if (!tp_inst.support.timezone && tp_inst._defaults.timezone === null) {
|
1708 |
+
tp_inst.timezone = tp_date.getTimezoneOffset() * -1;
|
1709 |
+
}
|
1710 |
+
date = $.timepicker.timezoneAdjust(date, $.timepicker.timezoneOffsetString(-date.getTimezoneOffset()), tp_inst.timezone);
|
1711 |
+
tp_date = $.timepicker.timezoneAdjust(tp_date, $.timepicker.timezoneOffsetString(-tp_date.getTimezoneOffset()), tp_inst.timezone);
|
1712 |
+
}
|
1713 |
+
|
1714 |
+
this._updateDatepicker(inst);
|
1715 |
+
this._base_setDateDatepicker.apply(this, arguments);
|
1716 |
+
this._setTimeDatepicker(target, tp_date, true);
|
1717 |
+
};
|
1718 |
+
|
1719 |
+
/*
|
1720 |
+
* override getDate() to allow getting time too within Date object
|
1721 |
+
*/
|
1722 |
+
$.datepicker._base_getDateDatepicker = $.datepicker._getDateDatepicker;
|
1723 |
+
$.datepicker._getDateDatepicker = function (target, noDefault) {
|
1724 |
+
var inst = this._getInst(target);
|
1725 |
+
if (!inst) {
|
1726 |
+
return;
|
1727 |
+
}
|
1728 |
+
|
1729 |
+
var tp_inst = this._get(inst, 'timepicker');
|
1730 |
+
|
1731 |
+
if (tp_inst) {
|
1732 |
+
// if it hasn't yet been defined, grab from field
|
1733 |
+
if (inst.lastVal === undefined) {
|
1734 |
+
this._setDateFromField(inst, noDefault);
|
1735 |
+
}
|
1736 |
+
|
1737 |
+
var date = this._getDate(inst);
|
1738 |
+
|
1739 |
+
var currDT = null;
|
1740 |
+
|
1741 |
+
if (tp_inst.$altInput && tp_inst._defaults.altFieldTimeOnly) {
|
1742 |
+
currDT = tp_inst.$input.val() + ' ' + tp_inst.$altInput.val();
|
1743 |
+
}
|
1744 |
+
else if (tp_inst.$input.get(0).tagName !== 'INPUT' && tp_inst.$altInput) {
|
1745 |
+
/**
|
1746 |
+
* in case the datetimepicker has been applied to a non-input tag for inline UI,
|
1747 |
+
* and the user has not configured the plugin to display only time in altInput,
|
1748 |
+
* pick current date time from the altInput (and hope for the best, for now, until "ER1" is applied)
|
1749 |
+
*
|
1750 |
+
* @todo ER1. Since altInput can have a totally difference format, convert it to standard format by reading input format from "altFormat" and "altTimeFormat" option values
|
1751 |
+
*/
|
1752 |
+
currDT = tp_inst.$altInput.val();
|
1753 |
+
}
|
1754 |
+
else {
|
1755 |
+
currDT = tp_inst.$input.val();
|
1756 |
+
}
|
1757 |
+
|
1758 |
+
if (date && tp_inst._parseTime(currDT, !inst.settings.timeOnly)) {
|
1759 |
+
date.setHours(tp_inst.hour, tp_inst.minute, tp_inst.second, tp_inst.millisec);
|
1760 |
+
date.setMicroseconds(tp_inst.microsec);
|
1761 |
+
|
1762 |
+
// This is important if you are using the timezone option, javascript's Date
|
1763 |
+
// object will only return the timezone offset for the current locale, so we
|
1764 |
+
// adjust it accordingly. If not using timezone option this won't matter..
|
1765 |
+
if (tp_inst.timezone != null) {
|
1766 |
+
// look out for DST if tz wasn't specified
|
1767 |
+
if (!tp_inst.support.timezone && tp_inst._defaults.timezone === null) {
|
1768 |
+
tp_inst.timezone = date.getTimezoneOffset() * -1;
|
1769 |
+
}
|
1770 |
+
date = $.timepicker.timezoneAdjust(date, tp_inst.timezone, $.timepicker.timezoneOffsetString(-date.getTimezoneOffset()));
|
1771 |
+
}
|
1772 |
+
}
|
1773 |
+
return date;
|
1774 |
+
}
|
1775 |
+
return this._base_getDateDatepicker(target, noDefault);
|
1776 |
+
};
|
1777 |
+
|
1778 |
+
/*
|
1779 |
+
* override parseDate() because UI 1.8.14 throws an error about "Extra characters"
|
1780 |
+
* An option in datapicker to ignore extra format characters would be nicer.
|
1781 |
+
*/
|
1782 |
+
$.datepicker._base_parseDate = $.datepicker.parseDate;
|
1783 |
+
$.datepicker.parseDate = function (format, value, settings) {
|
1784 |
+
var date;
|
1785 |
+
try {
|
1786 |
+
date = this._base_parseDate(format, value, settings);
|
1787 |
+
} catch (err) {
|
1788 |
+
// Hack! The error message ends with a colon, a space, and
|
1789 |
+
// the "extra" characters. We rely on that instead of
|
1790 |
+
// attempting to perfectly reproduce the parsing algorithm.
|
1791 |
+
if (err.indexOf(":") >= 0) {
|
1792 |
+
date = this._base_parseDate(format, value.substring(0, value.length - (err.length - err.indexOf(':') - 2)), settings);
|
1793 |
+
$.timepicker.log("Error parsing the date string: " + err + "\ndate string = " + value + "\ndate format = " + format);
|
1794 |
+
} else {
|
1795 |
+
throw err;
|
1796 |
+
}
|
1797 |
+
}
|
1798 |
+
return date;
|
1799 |
+
};
|
1800 |
+
|
1801 |
+
/*
|
1802 |
+
* override formatDate to set date with time to the input
|
1803 |
+
*/
|
1804 |
+
$.datepicker._base_formatDate = $.datepicker._formatDate;
|
1805 |
+
$.datepicker._formatDate = function (inst, day, month, year) {
|
1806 |
+
var tp_inst = this._get(inst, 'timepicker');
|
1807 |
+
if (tp_inst) {
|
1808 |
+
tp_inst._updateDateTime(inst);
|
1809 |
+
return tp_inst.$input.val();
|
1810 |
+
}
|
1811 |
+
return this._base_formatDate(inst);
|
1812 |
+
};
|
1813 |
+
|
1814 |
+
/*
|
1815 |
+
* override options setter to add time to maxDate(Time) and minDate(Time). MaxDate
|
1816 |
+
*/
|
1817 |
+
$.datepicker._base_optionDatepicker = $.datepicker._optionDatepicker;
|
1818 |
+
$.datepicker._optionDatepicker = function (target, name, value) {
|
1819 |
+
var inst = this._getInst(target),
|
1820 |
+
name_clone;
|
1821 |
+
if (!inst) {
|
1822 |
+
return null;
|
1823 |
+
}
|
1824 |
+
|
1825 |
+
var tp_inst = this._get(inst, 'timepicker');
|
1826 |
+
if (tp_inst) {
|
1827 |
+
var min = null,
|
1828 |
+
max = null,
|
1829 |
+
onselect = null,
|
1830 |
+
overrides = tp_inst._defaults.evnts,
|
1831 |
+
fns = {},
|
1832 |
+
prop,
|
1833 |
+
ret,
|
1834 |
+
oldVal,
|
1835 |
+
$target;
|
1836 |
+
if (typeof name === 'string') { // if min/max was set with the string
|
1837 |
+
if (name === 'minDate' || name === 'minDateTime') {
|
1838 |
+
min = value;
|
1839 |
+
} else if (name === 'maxDate' || name === 'maxDateTime') {
|
1840 |
+
max = value;
|
1841 |
+
} else if (name === 'onSelect') {
|
1842 |
+
onselect = value;
|
1843 |
+
} else if (overrides.hasOwnProperty(name)) {
|
1844 |
+
if (typeof (value) === 'undefined') {
|
1845 |
+
return overrides[name];
|
1846 |
+
}
|
1847 |
+
fns[name] = value;
|
1848 |
+
name_clone = {}; //empty results in exiting function after overrides updated
|
1849 |
+
}
|
1850 |
+
} else if (typeof name === 'object') { //if min/max was set with the JSON
|
1851 |
+
if (name.minDate) {
|
1852 |
+
min = name.minDate;
|
1853 |
+
} else if (name.minDateTime) {
|
1854 |
+
min = name.minDateTime;
|
1855 |
+
} else if (name.maxDate) {
|
1856 |
+
max = name.maxDate;
|
1857 |
+
} else if (name.maxDateTime) {
|
1858 |
+
max = name.maxDateTime;
|
1859 |
+
}
|
1860 |
+
for (prop in overrides) {
|
1861 |
+
if (overrides.hasOwnProperty(prop) && name[prop]) {
|
1862 |
+
fns[prop] = name[prop];
|
1863 |
+
}
|
1864 |
+
}
|
1865 |
+
}
|
1866 |
+
for (prop in fns) {
|
1867 |
+
if (fns.hasOwnProperty(prop)) {
|
1868 |
+
overrides[prop] = fns[prop];
|
1869 |
+
if (!name_clone) { name_clone = $.extend({}, name); }
|
1870 |
+
delete name_clone[prop];
|
1871 |
+
}
|
1872 |
+
}
|
1873 |
+
if (name_clone && isEmptyObject(name_clone)) { return; }
|
1874 |
+
if (min) { //if min was set
|
1875 |
+
if (min === 0) {
|
1876 |
+
min = new Date();
|
1877 |
+
} else {
|
1878 |
+
min = new Date(min);
|
1879 |
+
}
|
1880 |
+
tp_inst._defaults.minDate = min;
|
1881 |
+
tp_inst._defaults.minDateTime = min;
|
1882 |
+
} else if (max) { //if max was set
|
1883 |
+
if (max === 0) {
|
1884 |
+
max = new Date();
|
1885 |
+
} else {
|
1886 |
+
max = new Date(max);
|
1887 |
+
}
|
1888 |
+
tp_inst._defaults.maxDate = max;
|
1889 |
+
tp_inst._defaults.maxDateTime = max;
|
1890 |
+
} else if (onselect) {
|
1891 |
+
tp_inst._defaults.onSelect = onselect;
|
1892 |
+
}
|
1893 |
+
|
1894 |
+
// Datepicker will override our date when we call _base_optionDatepicker when
|
1895 |
+
// calling minDate/maxDate, so we will first grab the value, call
|
1896 |
+
// _base_optionDatepicker, then set our value back.
|
1897 |
+
if(min || max){
|
1898 |
+
$target = $(target);
|
1899 |
+
oldVal = $target.datetimepicker('getDate');
|
1900 |
+
ret = this._base_optionDatepicker.call($.datepicker, target, name_clone || name, value);
|
1901 |
+
$target.datetimepicker('setDate', oldVal);
|
1902 |
+
return ret;
|
1903 |
+
}
|
1904 |
+
}
|
1905 |
+
if (value === undefined) {
|
1906 |
+
return this._base_optionDatepicker.call($.datepicker, target, name);
|
1907 |
+
}
|
1908 |
+
return this._base_optionDatepicker.call($.datepicker, target, name_clone || name, value);
|
1909 |
+
};
|
1910 |
+
|
1911 |
+
/*
|
1912 |
+
* jQuery isEmptyObject does not check hasOwnProperty - if someone has added to the object prototype,
|
1913 |
+
* it will return false for all objects
|
1914 |
+
*/
|
1915 |
+
var isEmptyObject = function (obj) {
|
1916 |
+
var prop;
|
1917 |
+
for (prop in obj) {
|
1918 |
+
if (obj.hasOwnProperty(prop)) {
|
1919 |
+
return false;
|
1920 |
+
}
|
1921 |
+
}
|
1922 |
+
return true;
|
1923 |
+
};
|
1924 |
+
|
1925 |
+
/*
|
1926 |
+
* jQuery extend now ignores nulls!
|
1927 |
+
*/
|
1928 |
+
var extendRemove = function (target, props) {
|
1929 |
+
$.extend(target, props);
|
1930 |
+
for (var name in props) {
|
1931 |
+
if (props[name] === null || props[name] === undefined) {
|
1932 |
+
target[name] = props[name];
|
1933 |
+
}
|
1934 |
+
}
|
1935 |
+
return target;
|
1936 |
+
};
|
1937 |
+
|
1938 |
+
/*
|
1939 |
+
* Determine by the time format which units are supported
|
1940 |
+
* Returns an object of booleans for each unit
|
1941 |
+
*/
|
1942 |
+
var detectSupport = function (timeFormat) {
|
1943 |
+
var tf = timeFormat.replace(/'.*?'/g, '').toLowerCase(), // removes literals
|
1944 |
+
isIn = function (f, t) { // does the format contain the token?
|
1945 |
+
return f.indexOf(t) !== -1 ? true : false;
|
1946 |
+
};
|
1947 |
+
return {
|
1948 |
+
hour: isIn(tf, 'h'),
|
1949 |
+
minute: isIn(tf, 'm'),
|
1950 |
+
second: isIn(tf, 's'),
|
1951 |
+
millisec: isIn(tf, 'l'),
|
1952 |
+
microsec: isIn(tf, 'c'),
|
1953 |
+
timezone: isIn(tf, 'z'),
|
1954 |
+
ampm: isIn(tf, 't') && isIn(timeFormat, 'h'),
|
1955 |
+
iso8601: isIn(timeFormat, 'Z')
|
1956 |
+
};
|
1957 |
+
};
|
1958 |
+
|
1959 |
+
/*
|
1960 |
+
* Converts 24 hour format into 12 hour
|
1961 |
+
* Returns 12 hour without leading 0
|
1962 |
+
*/
|
1963 |
+
var convert24to12 = function (hour) {
|
1964 |
+
hour %= 12;
|
1965 |
+
|
1966 |
+
if (hour === 0) {
|
1967 |
+
hour = 12;
|
1968 |
+
}
|
1969 |
+
|
1970 |
+
return String(hour);
|
1971 |
+
};
|
1972 |
+
|
1973 |
+
var computeEffectiveSetting = function (settings, property) {
|
1974 |
+
return settings && settings[property] ? settings[property] : $.timepicker._defaults[property];
|
1975 |
+
};
|
1976 |
+
|
1977 |
+
/*
|
1978 |
+
* Splits datetime string into date and time substrings.
|
1979 |
+
* Throws exception when date can't be parsed
|
1980 |
+
* Returns {dateString: dateString, timeString: timeString}
|
1981 |
+
*/
|
1982 |
+
var splitDateTime = function (dateTimeString, timeSettings) {
|
1983 |
+
// The idea is to get the number separator occurrences in datetime and the time format requested (since time has
|
1984 |
+
// fewer unknowns, mostly numbers and am/pm). We will use the time pattern to split.
|
1985 |
+
var separator = computeEffectiveSetting(timeSettings, 'separator'),
|
1986 |
+
format = computeEffectiveSetting(timeSettings, 'timeFormat'),
|
1987 |
+
timeParts = format.split(separator), // how many occurrences of separator may be in our format?
|
1988 |
+
timePartsLen = timeParts.length,
|
1989 |
+
allParts = dateTimeString.split(separator),
|
1990 |
+
allPartsLen = allParts.length;
|
1991 |
+
|
1992 |
+
if (allPartsLen > 1) {
|
1993 |
+
return {
|
1994 |
+
dateString: allParts.splice(0, allPartsLen - timePartsLen).join(separator),
|
1995 |
+
timeString: allParts.splice(0, timePartsLen).join(separator)
|
1996 |
+
};
|
1997 |
+
}
|
1998 |
+
|
1999 |
+
return {
|
2000 |
+
dateString: dateTimeString,
|
2001 |
+
timeString: ''
|
2002 |
+
};
|
2003 |
+
};
|
2004 |
+
|
2005 |
+
/*
|
2006 |
+
* Internal function to parse datetime interval
|
2007 |
+
* Returns: {date: Date, timeObj: Object}, where
|
2008 |
+
* date - parsed date without time (type Date)
|
2009 |
+
* timeObj = {hour: , minute: , second: , millisec: , microsec: } - parsed time. Optional
|
2010 |
+
*/
|
2011 |
+
var parseDateTimeInternal = function (dateFormat, timeFormat, dateTimeString, dateSettings, timeSettings) {
|
2012 |
+
var date,
|
2013 |
+
parts,
|
2014 |
+
parsedTime;
|
2015 |
+
|
2016 |
+
parts = splitDateTime(dateTimeString, timeSettings);
|
2017 |
+
date = $.datepicker._base_parseDate(dateFormat, parts.dateString, dateSettings);
|
2018 |
+
|
2019 |
+
if (parts.timeString === '') {
|
2020 |
+
return {
|
2021 |
+
date: date
|
2022 |
+
};
|
2023 |
+
}
|
2024 |
+
|
2025 |
+
parsedTime = $.datepicker.parseTime(timeFormat, parts.timeString, timeSettings);
|
2026 |
+
|
2027 |
+
if (!parsedTime) {
|
2028 |
+
throw 'Wrong time format';
|
2029 |
+
}
|
2030 |
+
|
2031 |
+
return {
|
2032 |
+
date: date,
|
2033 |
+
timeObj: parsedTime
|
2034 |
+
};
|
2035 |
+
};
|
2036 |
+
|
2037 |
+
/*
|
2038 |
+
* Internal function to set timezone_select to the local timezone
|
2039 |
+
*/
|
2040 |
+
var selectLocalTimezone = function (tp_inst, date) {
|
2041 |
+
if (tp_inst && tp_inst.timezone_select) {
|
2042 |
+
var now = date || new Date();
|
2043 |
+
tp_inst.timezone_select.val(-now.getTimezoneOffset());
|
2044 |
+
}
|
2045 |
+
};
|
2046 |
+
|
2047 |
+
/*
|
2048 |
+
* Create a Singleton Instance
|
2049 |
+
*/
|
2050 |
+
$.timepicker = new Timepicker();
|
2051 |
+
|
2052 |
+
/**
|
2053 |
+
* Get the timezone offset as string from a date object (eg '+0530' for UTC+5.5)
|
2054 |
+
* @param {number} tzMinutes if not a number, less than -720 (-1200), or greater than 840 (+1400) this value is returned
|
2055 |
+
* @param {boolean} iso8601 if true formats in accordance to iso8601 "+12:45"
|
2056 |
+
* @return {string}
|
2057 |
+
*/
|
2058 |
+
$.timepicker.timezoneOffsetString = function (tzMinutes, iso8601) {
|
2059 |
+
if (isNaN(tzMinutes) || tzMinutes > 840 || tzMinutes < -720) {
|
2060 |
+
return tzMinutes;
|
2061 |
+
}
|
2062 |
+
|
2063 |
+
var off = tzMinutes,
|
2064 |
+
minutes = off % 60,
|
2065 |
+
hours = (off - minutes) / 60,
|
2066 |
+
iso = iso8601 ? ':' : '',
|
2067 |
+
tz = (off >= 0 ? '+' : '-') + ('0' + Math.abs(hours)).slice(-2) + iso + ('0' + Math.abs(minutes)).slice(-2);
|
2068 |
+
|
2069 |
+
if (tz === '+00:00') {
|
2070 |
+
return 'Z';
|
2071 |
+
}
|
2072 |
+
return tz;
|
2073 |
+
};
|
2074 |
+
|
2075 |
+
/**
|
2076 |
+
* Get the number in minutes that represents a timezone string
|
2077 |
+
* @param {string} tzString formatted like "+0500", "-1245", "Z"
|
2078 |
+
* @return {number} the offset minutes or the original string if it doesn't match expectations
|
2079 |
+
*/
|
2080 |
+
$.timepicker.timezoneOffsetNumber = function (tzString) {
|
2081 |
+
var normalized = tzString.toString().replace(':', ''); // excuse any iso8601, end up with "+1245"
|
2082 |
+
|
2083 |
+
if (normalized.toUpperCase() === 'Z') { // if iso8601 with Z, its 0 minute offset
|
2084 |
+
return 0;
|
2085 |
+
}
|
2086 |
+
|
2087 |
+
if (!/^(\-|\+)\d{4}$/.test(normalized)) { // possibly a user defined tz, so just give it back
|
2088 |
+
return parseInt(tzString, 10);
|
2089 |
+
}
|
2090 |
+
|
2091 |
+
return ((normalized.substr(0, 1) === '-' ? -1 : 1) * // plus or minus
|
2092 |
+
((parseInt(normalized.substr(1, 2), 10) * 60) + // hours (converted to minutes)
|
2093 |
+
parseInt(normalized.substr(3, 2), 10))); // minutes
|
2094 |
+
};
|
2095 |
+
|
2096 |
+
/**
|
2097 |
+
* No way to set timezone in js Date, so we must adjust the minutes to compensate. (think setDate, getDate)
|
2098 |
+
* @param {Date} date
|
2099 |
+
* @param {string} fromTimezone formatted like "+0500", "-1245"
|
2100 |
+
* @param {string} toTimezone formatted like "+0500", "-1245"
|
2101 |
+
* @return {Date}
|
2102 |
+
*/
|
2103 |
+
$.timepicker.timezoneAdjust = function (date, fromTimezone, toTimezone) {
|
2104 |
+
var fromTz = $.timepicker.timezoneOffsetNumber(fromTimezone);
|
2105 |
+
var toTz = $.timepicker.timezoneOffsetNumber(toTimezone);
|
2106 |
+
if (!isNaN(toTz)) {
|
2107 |
+
date.setMinutes(date.getMinutes() + (-fromTz) - (-toTz));
|
2108 |
+
}
|
2109 |
+
return date;
|
2110 |
+
};
|
2111 |
+
|
2112 |
+
/**
|
2113 |
+
* Calls `timepicker()` on the `startTime` and `endTime` elements, and configures them to
|
2114 |
+
* enforce date range limits.
|
2115 |
+
* n.b. The input value must be correctly formatted (reformatting is not supported)
|
2116 |
+
* @param {Element} startTime
|
2117 |
+
* @param {Element} endTime
|
2118 |
+
* @param {Object} options Options for the timepicker() call
|
2119 |
+
* @return {jQuery}
|
2120 |
+
*/
|
2121 |
+
$.timepicker.timeRange = function (startTime, endTime, options) {
|
2122 |
+
return $.timepicker.handleRange('timepicker', startTime, endTime, options);
|
2123 |
+
};
|
2124 |
+
|
2125 |
+
/**
|
2126 |
+
* Calls `datetimepicker` on the `startTime` and `endTime` elements, and configures them to
|
2127 |
+
* enforce date range limits.
|
2128 |
+
* @param {Element} startTime
|
2129 |
+
* @param {Element} endTime
|
2130 |
+
* @param {Object} options Options for the `timepicker()` call. Also supports `reformat`,
|
2131 |
+
* a boolean value that can be used to reformat the input values to the `dateFormat`.
|
2132 |
+
* @param {string} method Can be used to specify the type of picker to be added
|
2133 |
+
* @return {jQuery}
|
2134 |
+
*/
|
2135 |
+
$.timepicker.datetimeRange = function (startTime, endTime, options) {
|
2136 |
+
$.timepicker.handleRange('datetimepicker', startTime, endTime, options);
|
2137 |
+
};
|
2138 |
+
|
2139 |
+
/**
|
2140 |
+
* Calls `datepicker` on the `startTime` and `endTime` elements, and configures them to
|
2141 |
+
* enforce date range limits.
|
2142 |
+
* @param {Element} startTime
|
2143 |
+
* @param {Element} endTime
|
2144 |
+
* @param {Object} options Options for the `timepicker()` call. Also supports `reformat`,
|
2145 |
+
* a boolean value that can be used to reformat the input values to the `dateFormat`.
|
2146 |
+
* @return {jQuery}
|
2147 |
+
*/
|
2148 |
+
$.timepicker.dateRange = function (startTime, endTime, options) {
|
2149 |
+
$.timepicker.handleRange('datepicker', startTime, endTime, options);
|
2150 |
+
};
|
2151 |
+
|
2152 |
+
/**
|
2153 |
+
* Calls `method` on the `startTime` and `endTime` elements, and configures them to
|
2154 |
+
* enforce date range limits.
|
2155 |
+
* @param {string} method Can be used to specify the type of picker to be added
|
2156 |
+
* @param {Element} startTime
|
2157 |
+
* @param {Element} endTime
|
2158 |
+
* @param {Object} options Options for the `timepicker()` call. Also supports `reformat`,
|
2159 |
+
* a boolean value that can be used to reformat the input values to the `dateFormat`.
|
2160 |
+
* @return {jQuery}
|
2161 |
+
*/
|
2162 |
+
$.timepicker.handleRange = function (method, startTime, endTime, options) {
|
2163 |
+
options = $.extend({}, {
|
2164 |
+
minInterval: 0, // min allowed interval in milliseconds
|
2165 |
+
maxInterval: 0, // max allowed interval in milliseconds
|
2166 |
+
start: {}, // options for start picker
|
2167 |
+
end: {} // options for end picker
|
2168 |
+
}, options);
|
2169 |
+
|
2170 |
+
// for the mean time this fixes an issue with calling getDate with timepicker()
|
2171 |
+
var timeOnly = false;
|
2172 |
+
if(method === 'timepicker'){
|
2173 |
+
timeOnly = true;
|
2174 |
+
method = 'datetimepicker';
|
2175 |
+
}
|
2176 |
+
|
2177 |
+
function checkDates(changed, other) {
|
2178 |
+
var startdt = startTime[method]('getDate'),
|
2179 |
+
enddt = endTime[method]('getDate'),
|
2180 |
+
changeddt = changed[method]('getDate');
|
2181 |
+
|
2182 |
+
if (startdt !== null) {
|
2183 |
+
var minDate = new Date(startdt.getTime()),
|
2184 |
+
maxDate = new Date(startdt.getTime());
|
2185 |
+
|
2186 |
+
minDate.setMilliseconds(minDate.getMilliseconds() + options.minInterval);
|
2187 |
+
maxDate.setMilliseconds(maxDate.getMilliseconds() + options.maxInterval);
|
2188 |
+
|
2189 |
+
if (options.minInterval > 0 && minDate > enddt) { // minInterval check
|
2190 |
+
endTime[method]('setDate', minDate);
|
2191 |
+
}
|
2192 |
+
else if (options.maxInterval > 0 && maxDate < enddt) { // max interval check
|
2193 |
+
endTime[method]('setDate', maxDate);
|
2194 |
+
}
|
2195 |
+
else if (startdt > enddt) {
|
2196 |
+
other[method]('setDate', changeddt);
|
2197 |
+
}
|
2198 |
+
}
|
2199 |
+
}
|
2200 |
+
|
2201 |
+
function selected(changed, other, option) {
|
2202 |
+
if (!changed.val()) {
|
2203 |
+
return;
|
2204 |
+
}
|
2205 |
+
var date = changed[method].call(changed, 'getDate');
|
2206 |
+
if (date !== null && options.minInterval > 0) {
|
2207 |
+
if (option === 'minDate') {
|
2208 |
+
date.setMilliseconds(date.getMilliseconds() + options.minInterval);
|
2209 |
+
}
|
2210 |
+
if (option === 'maxDate') {
|
2211 |
+
date.setMilliseconds(date.getMilliseconds() - options.minInterval);
|
2212 |
+
}
|
2213 |
+
}
|
2214 |
+
|
2215 |
+
if (date.getTime) {
|
2216 |
+
other[method].call(other, 'option', option, date);
|
2217 |
+
}
|
2218 |
+
}
|
2219 |
+
|
2220 |
+
$.fn[method].call(startTime, $.extend({
|
2221 |
+
timeOnly: timeOnly,
|
2222 |
+
onClose: function (dateText, inst) {
|
2223 |
+
checkDates($(this), endTime);
|
2224 |
+
},
|
2225 |
+
onSelect: function (selectedDateTime) {
|
2226 |
+
selected($(this), endTime, 'minDate');
|
2227 |
+
}
|
2228 |
+
}, options, options.start));
|
2229 |
+
$.fn[method].call(endTime, $.extend({
|
2230 |
+
timeOnly: timeOnly,
|
2231 |
+
onClose: function (dateText, inst) {
|
2232 |
+
checkDates($(this), startTime);
|
2233 |
+
},
|
2234 |
+
onSelect: function (selectedDateTime) {
|
2235 |
+
selected($(this), startTime, 'maxDate');
|
2236 |
+
}
|
2237 |
+
}, options, options.end));
|
2238 |
+
|
2239 |
+
checkDates(startTime, endTime);
|
2240 |
+
|
2241 |
+
selected(startTime, endTime, 'minDate');
|
2242 |
+
selected(endTime, startTime, 'maxDate');
|
2243 |
+
|
2244 |
+
return $([startTime.get(0), endTime.get(0)]);
|
2245 |
+
};
|
2246 |
+
|
2247 |
+
/**
|
2248 |
+
* Log error or data to the console during error or debugging
|
2249 |
+
* @param {Object} err pass any type object to log to the console during error or debugging
|
2250 |
+
* @return {void}
|
2251 |
+
*/
|
2252 |
+
$.timepicker.log = function () {
|
2253 |
+
// Older IE (9, maybe 10) throw error on accessing `window.console.log.apply`, so check first.
|
2254 |
+
if (window.console && window.console.log && window.console.log.apply) {
|
2255 |
+
window.console.log.apply(window.console, Array.prototype.slice.call(arguments));
|
2256 |
+
}
|
2257 |
+
};
|
2258 |
+
|
2259 |
+
/*
|
2260 |
+
* Add util object to allow access to private methods for testability.
|
2261 |
+
*/
|
2262 |
+
$.timepicker._util = {
|
2263 |
+
_extendRemove: extendRemove,
|
2264 |
+
_isEmptyObject: isEmptyObject,
|
2265 |
+
_convert24to12: convert24to12,
|
2266 |
+
_detectSupport: detectSupport,
|
2267 |
+
_selectLocalTimezone: selectLocalTimezone,
|
2268 |
+
_computeEffectiveSetting: computeEffectiveSetting,
|
2269 |
+
_splitDateTime: splitDateTime,
|
2270 |
+
_parseDateTimeInternal: parseDateTimeInternal
|
2271 |
+
};
|
2272 |
+
|
2273 |
+
/*
|
2274 |
+
* Microsecond support
|
2275 |
+
*/
|
2276 |
+
if (!Date.prototype.getMicroseconds) {
|
2277 |
+
Date.prototype.microseconds = 0;
|
2278 |
+
Date.prototype.getMicroseconds = function () { return this.microseconds; };
|
2279 |
+
Date.prototype.setMicroseconds = function (m) {
|
2280 |
+
this.setMilliseconds(this.getMilliseconds() + Math.floor(m / 1000));
|
2281 |
+
this.microseconds = m % 1000;
|
2282 |
+
return this;
|
2283 |
+
};
|
2284 |
+
}
|
2285 |
+
|
2286 |
+
/*
|
2287 |
+
* Keep up with the version
|
2288 |
+
*/
|
2289 |
+
$.timepicker.version = "1.6.3";
|
2290 |
+
|
2291 |
+
}));
|
includes/fields/js/jquery-ui-timepicker-addon.min.js
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*! jQuery Timepicker Addon - v1.6.3 - 2016-04-20
|
2 |
+
* http://trentrichardson.com/examples/timepicker
|
3 |
+
* Copyright (c) 2016 Trent Richardson; Licensed MIT */
|
4 |
+
!function(a){"function"==typeof define&&define.amd?define(["jquery","jquery-ui"],a):a(jQuery)}(function($){if($.ui.timepicker=$.ui.timepicker||{},!$.ui.timepicker.version){$.extend($.ui,{timepicker:{version:"1.6.3"}});var Timepicker=function(){this.regional=[],this.regional[""]={currentText:"Now",closeText:"Done",amNames:["AM","A"],pmNames:["PM","P"],timeFormat:"HH:mm",timeSuffix:"",timeOnlyTitle:"Choose Time",timeText:"Time",hourText:"Hour",minuteText:"Minute",secondText:"Second",millisecText:"Millisecond",microsecText:"Microsecond",timezoneText:"Time Zone",isRTL:!1},this._defaults={showButtonPanel:!0,timeOnly:!1,timeOnlyShowDate:!1,showHour:null,showMinute:null,showSecond:null,showMillisec:null,showMicrosec:null,showTimezone:null,showTime:!0,stepHour:1,stepMinute:1,stepSecond:1,stepMillisec:1,stepMicrosec:1,hour:0,minute:0,second:0,millisec:0,microsec:0,timezone:null,hourMin:0,minuteMin:0,secondMin:0,millisecMin:0,microsecMin:0,hourMax:23,minuteMax:59,secondMax:59,millisecMax:999,microsecMax:999,minDateTime:null,maxDateTime:null,maxTime:null,minTime:null,onSelect:null,hourGrid:0,minuteGrid:0,secondGrid:0,millisecGrid:0,microsecGrid:0,alwaysSetTime:!0,separator:" ",altFieldTimeOnly:!0,altTimeFormat:null,altSeparator:null,altTimeSuffix:null,altRedirectFocus:!0,pickerTimeFormat:null,pickerTimeSuffix:null,showTimepicker:!0,timezoneList:null,addSliderAccess:!1,sliderAccessArgs:null,controlType:"slider",oneLine:!1,defaultValue:null,parse:"strict",afterInject:null},$.extend(this._defaults,this.regional[""])};$.extend(Timepicker.prototype,{$input:null,$altInput:null,$timeObj:null,inst:null,hour_slider:null,minute_slider:null,second_slider:null,millisec_slider:null,microsec_slider:null,timezone_select:null,maxTime:null,minTime:null,hour:0,minute:0,second:0,millisec:0,microsec:0,timezone:null,hourMinOriginal:null,minuteMinOriginal:null,secondMinOriginal:null,millisecMinOriginal:null,microsecMinOriginal:null,hourMaxOriginal:null,minuteMaxOriginal:null,secondMaxOriginal:null,millisecMaxOriginal:null,microsecMaxOriginal:null,ampm:"",formattedDate:"",formattedTime:"",formattedDateTime:"",timezoneList:null,units:["hour","minute","second","millisec","microsec"],support:{},control:null,setDefaults:function(a){return extendRemove(this._defaults,a||{}),this},_newInst:function($input,opts){var tp_inst=new Timepicker,inlineSettings={},fns={},overrides,i;for(var attrName in this._defaults)if(this._defaults.hasOwnProperty(attrName)){var attrValue=$input.attr("time:"+attrName);if(attrValue)try{inlineSettings[attrName]=eval(attrValue)}catch(err){inlineSettings[attrName]=attrValue}}overrides={beforeShow:function(a,b){return $.isFunction(tp_inst._defaults.evnts.beforeShow)?tp_inst._defaults.evnts.beforeShow.call($input[0],a,b,tp_inst):void 0},onChangeMonthYear:function(a,b,c){$.isFunction(tp_inst._defaults.evnts.onChangeMonthYear)&&tp_inst._defaults.evnts.onChangeMonthYear.call($input[0],a,b,c,tp_inst)},onClose:function(a,b){tp_inst.timeDefined===!0&&""!==$input.val()&&tp_inst._updateDateTime(b),$.isFunction(tp_inst._defaults.evnts.onClose)&&tp_inst._defaults.evnts.onClose.call($input[0],a,b,tp_inst)}};for(i in overrides)overrides.hasOwnProperty(i)&&(fns[i]=opts[i]||this._defaults[i]||null);tp_inst._defaults=$.extend({},this._defaults,inlineSettings,opts,overrides,{evnts:fns,timepicker:tp_inst}),tp_inst.amNames=$.map(tp_inst._defaults.amNames,function(a){return a.toUpperCase()}),tp_inst.pmNames=$.map(tp_inst._defaults.pmNames,function(a){return a.toUpperCase()}),tp_inst.support=detectSupport(tp_inst._defaults.timeFormat+(tp_inst._defaults.pickerTimeFormat?tp_inst._defaults.pickerTimeFormat:"")+(tp_inst._defaults.altTimeFormat?tp_inst._defaults.altTimeFormat:"")),"string"==typeof tp_inst._defaults.controlType?("slider"===tp_inst._defaults.controlType&&"undefined"==typeof $.ui.slider&&(tp_inst._defaults.controlType="select"),tp_inst.control=tp_inst._controls[tp_inst._defaults.controlType]):tp_inst.control=tp_inst._defaults.controlType;var timezoneList=[-720,-660,-600,-570,-540,-480,-420,-360,-300,-270,-240,-210,-180,-120,-60,0,60,120,180,210,240,270,300,330,345,360,390,420,480,525,540,570,600,630,660,690,720,765,780,840];null!==tp_inst._defaults.timezoneList&&(timezoneList=tp_inst._defaults.timezoneList);var tzl=timezoneList.length,tzi=0,tzv=null;if(tzl>0&&"object"!=typeof timezoneList[0])for(;tzl>tzi;tzi++)tzv=timezoneList[tzi],timezoneList[tzi]={value:tzv,label:$.timepicker.timezoneOffsetString(tzv,tp_inst.support.iso8601)};return tp_inst._defaults.timezoneList=timezoneList,tp_inst.timezone=null!==tp_inst._defaults.timezone?$.timepicker.timezoneOffsetNumber(tp_inst._defaults.timezone):-1*(new Date).getTimezoneOffset(),tp_inst.hour=tp_inst._defaults.hour<tp_inst._defaults.hourMin?tp_inst._defaults.hourMin:tp_inst._defaults.hour>tp_inst._defaults.hourMax?tp_inst._defaults.hourMax:tp_inst._defaults.hour,tp_inst.minute=tp_inst._defaults.minute<tp_inst._defaults.minuteMin?tp_inst._defaults.minuteMin:tp_inst._defaults.minute>tp_inst._defaults.minuteMax?tp_inst._defaults.minuteMax:tp_inst._defaults.minute,tp_inst.second=tp_inst._defaults.second<tp_inst._defaults.secondMin?tp_inst._defaults.secondMin:tp_inst._defaults.second>tp_inst._defaults.secondMax?tp_inst._defaults.secondMax:tp_inst._defaults.second,tp_inst.millisec=tp_inst._defaults.millisec<tp_inst._defaults.millisecMin?tp_inst._defaults.millisecMin:tp_inst._defaults.millisec>tp_inst._defaults.millisecMax?tp_inst._defaults.millisecMax:tp_inst._defaults.millisec,tp_inst.microsec=tp_inst._defaults.microsec<tp_inst._defaults.microsecMin?tp_inst._defaults.microsecMin:tp_inst._defaults.microsec>tp_inst._defaults.microsecMax?tp_inst._defaults.microsecMax:tp_inst._defaults.microsec,tp_inst.ampm="",tp_inst.$input=$input,tp_inst._defaults.altField&&(tp_inst.$altInput=$(tp_inst._defaults.altField),tp_inst._defaults.altRedirectFocus===!0&&tp_inst.$altInput.css({cursor:"pointer"}).focus(function(){$input.trigger("focus")})),(0===tp_inst._defaults.minDate||0===tp_inst._defaults.minDateTime)&&(tp_inst._defaults.minDate=new Date),(0===tp_inst._defaults.maxDate||0===tp_inst._defaults.maxDateTime)&&(tp_inst._defaults.maxDate=new Date),void 0!==tp_inst._defaults.minDate&&tp_inst._defaults.minDate instanceof Date&&(tp_inst._defaults.minDateTime=new Date(tp_inst._defaults.minDate.getTime())),void 0!==tp_inst._defaults.minDateTime&&tp_inst._defaults.minDateTime instanceof Date&&(tp_inst._defaults.minDate=new Date(tp_inst._defaults.minDateTime.getTime())),void 0!==tp_inst._defaults.maxDate&&tp_inst._defaults.maxDate instanceof Date&&(tp_inst._defaults.maxDateTime=new Date(tp_inst._defaults.maxDate.getTime())),void 0!==tp_inst._defaults.maxDateTime&&tp_inst._defaults.maxDateTime instanceof Date&&(tp_inst._defaults.maxDate=new Date(tp_inst._defaults.maxDateTime.getTime())),tp_inst.$input.bind("focus",function(){tp_inst._onFocus()}),tp_inst},_addTimePicker:function(a){var b=$.trim(this.$altInput&&this._defaults.altFieldTimeOnly?this.$input.val()+" "+this.$altInput.val():this.$input.val());this.timeDefined=this._parseTime(b),this._limitMinMaxDateTime(a,!1),this._injectTimePicker(),this._afterInject()},_parseTime:function(a,b){if(this.inst||(this.inst=$.datepicker._getInst(this.$input[0])),b||!this._defaults.timeOnly){var c=$.datepicker._get(this.inst,"dateFormat");try{var d=parseDateTimeInternal(c,this._defaults.timeFormat,a,$.datepicker._getFormatConfig(this.inst),this._defaults);if(!d.timeObj)return!1;$.extend(this,d.timeObj)}catch(e){return $.timepicker.log("Error parsing the date/time string: "+e+"\ndate/time string = "+a+"\ntimeFormat = "+this._defaults.timeFormat+"\ndateFormat = "+c),!1}return!0}var f=$.datepicker.parseTime(this._defaults.timeFormat,a,this._defaults);return f?($.extend(this,f),!0):!1},_afterInject:function(){var a=this.inst.settings;$.isFunction(a.afterInject)&&a.afterInject.call(this)},_injectTimePicker:function(){var a=this.inst.dpDiv,b=this.inst.settings,c=this,d="",e="",f=null,g={},h={},i=null,j=0,k=0;if(0===a.find("div.ui-timepicker-div").length&&b.showTimepicker){var l=" ui_tpicker_unit_hide",m='<div class="ui-timepicker-div'+(b.isRTL?" ui-timepicker-rtl":"")+(b.oneLine&&"select"===b.controlType?" ui-timepicker-oneLine":"")+'"><dl><dt class="ui_tpicker_time_label'+(b.showTime?"":l)+'">'+b.timeText+'</dt><dd class="ui_tpicker_time '+(b.showTime?"":l)+'"><input class="ui_tpicker_time_input" '+(b.timeInput?"":"disabled")+"/></dd>";for(j=0,k=this.units.length;k>j;j++){if(d=this.units[j],e=d.substr(0,1).toUpperCase()+d.substr(1),f=null!==b["show"+e]?b["show"+e]:this.support[d],g[d]=parseInt(b[d+"Max"]-(b[d+"Max"]-b[d+"Min"])%b["step"+e],10),h[d]=0,m+='<dt class="ui_tpicker_'+d+"_label"+(f?"":l)+'">'+b[d+"Text"]+'</dt><dd class="ui_tpicker_'+d+(f?"":l)+'"><div class="ui_tpicker_'+d+"_slider"+(f?"":l)+'"></div>',f&&b[d+"Grid"]>0){if(m+='<div style="padding-left: 1px"><table class="ui-tpicker-grid-label"><tr>',"hour"===d)for(var n=b[d+"Min"];n<=g[d];n+=parseInt(b[d+"Grid"],10)){h[d]++;var o=$.datepicker.formatTime(this.support.ampm?"hht":"HH",{hour:n},b);m+='<td data-for="'+d+'">'+o+"</td>"}else for(var p=b[d+"Min"];p<=g[d];p+=parseInt(b[d+"Grid"],10))h[d]++,m+='<td data-for="'+d+'">'+(10>p?"0":"")+p+"</td>";m+="</tr></table></div>"}m+="</dd>"}var q=null!==b.showTimezone?b.showTimezone:this.support.timezone;m+='<dt class="ui_tpicker_timezone_label'+(q?"":l)+'">'+b.timezoneText+"</dt>",m+='<dd class="ui_tpicker_timezone'+(q?"":l)+'"></dd>',m+="</dl></div>";var r=$(m);for(b.timeOnly===!0&&(r.prepend('<div class="ui-widget-header ui-helper-clearfix ui-corner-all"><div class="ui-datepicker-title">'+b.timeOnlyTitle+"</div></div>"),a.find(".ui-datepicker-header, .ui-datepicker-calendar").hide()),j=0,k=c.units.length;k>j;j++)d=c.units[j],e=d.substr(0,1).toUpperCase()+d.substr(1),f=null!==b["show"+e]?b["show"+e]:this.support[d],c[d+"_slider"]=c.control.create(c,r.find(".ui_tpicker_"+d+"_slider"),d,c[d],b[d+"Min"],g[d],b["step"+e]),f&&b[d+"Grid"]>0&&(i=100*h[d]*b[d+"Grid"]/(g[d]-b[d+"Min"]),r.find(".ui_tpicker_"+d+" table").css({width:i+"%",marginLeft:b.isRTL?"0":i/(-2*h[d])+"%",marginRight:b.isRTL?i/(-2*h[d])+"%":"0",borderCollapse:"collapse"}).find("td").click(function(a){var b=$(this),e=b.html(),f=parseInt(e.replace(/[^0-9]/g),10),g=e.replace(/[^apm]/gi),h=b.data("for");"hour"===h&&(-1!==g.indexOf("p")&&12>f?f+=12:-1!==g.indexOf("a")&&12===f&&(f=0)),c.control.value(c,c[h+"_slider"],d,f),c._onTimeChange(),c._onSelectHandler()}).css({cursor:"pointer",width:100/h[d]+"%",textAlign:"center",overflow:"hidden"}));if(this.timezone_select=r.find(".ui_tpicker_timezone").append("<select></select>").find("select"),$.fn.append.apply(this.timezone_select,$.map(b.timezoneList,function(a,b){return $("<option />").val("object"==typeof a?a.value:a).text("object"==typeof a?a.label:a)})),"undefined"!=typeof this.timezone&&null!==this.timezone&&""!==this.timezone){var s=-1*new Date(this.inst.selectedYear,this.inst.selectedMonth,this.inst.selectedDay,12).getTimezoneOffset();s===this.timezone?selectLocalTimezone(c):this.timezone_select.val(this.timezone)}else"undefined"!=typeof this.hour&&null!==this.hour&&""!==this.hour?this.timezone_select.val(b.timezone):selectLocalTimezone(c);this.timezone_select.change(function(){c._onTimeChange(),c._onSelectHandler(),c._afterInject()});var t=a.find(".ui-datepicker-buttonpane");if(t.length?t.before(r):a.append(r),this.$timeObj=r.find(".ui_tpicker_time_input"),this.$timeObj.change(function(){var a=c.inst.settings.timeFormat,b=$.datepicker.parseTime(a,this.value),d=new Date;b?(d.setHours(b.hour),d.setMinutes(b.minute),d.setSeconds(b.second),$.datepicker._setTime(c.inst,d)):(this.value=c.formattedTime,this.blur())}),null!==this.inst){var u=this.timeDefined;this._onTimeChange(),this.timeDefined=u}if(this._defaults.addSliderAccess){var v=this._defaults.sliderAccessArgs,w=this._defaults.isRTL;v.isRTL=w,setTimeout(function(){if(0===r.find(".ui-slider-access").length){r.find(".ui-slider:visible").sliderAccess(v);var a=r.find(".ui-slider-access:eq(0)").outerWidth(!0);a&&r.find("table:visible").each(function(){var b=$(this),c=b.outerWidth(),d=b.css(w?"marginRight":"marginLeft").toString().replace("%",""),e=c-a,f=d*e/c+"%",g={width:e,marginRight:0,marginLeft:0};g[w?"marginRight":"marginLeft"]=f,b.css(g)})}},10)}c._limitMinMaxDateTime(this.inst,!0)}},_limitMinMaxDateTime:function(a,b){var c=this._defaults,d=new Date(a.selectedYear,a.selectedMonth,a.selectedDay);if(this._defaults.showTimepicker){if(null!==$.datepicker._get(a,"minDateTime")&&void 0!==$.datepicker._get(a,"minDateTime")&&d){var e=$.datepicker._get(a,"minDateTime"),f=new Date(e.getFullYear(),e.getMonth(),e.getDate(),0,0,0,0);(null===this.hourMinOriginal||null===this.minuteMinOriginal||null===this.secondMinOriginal||null===this.millisecMinOriginal||null===this.microsecMinOriginal)&&(this.hourMinOriginal=c.hourMin,this.minuteMinOriginal=c.minuteMin,this.secondMinOriginal=c.secondMin,this.millisecMinOriginal=c.millisecMin,this.microsecMinOriginal=c.microsecMin),a.settings.timeOnly||f.getTime()===d.getTime()?(this._defaults.hourMin=e.getHours(),this.hour<=this._defaults.hourMin?(this.hour=this._defaults.hourMin,this._defaults.minuteMin=e.getMinutes(),this.minute<=this._defaults.minuteMin?(this.minute=this._defaults.minuteMin,this._defaults.secondMin=e.getSeconds(),this.second<=this._defaults.secondMin?(this.second=this._defaults.secondMin,this._defaults.millisecMin=e.getMilliseconds(),this.millisec<=this._defaults.millisecMin?(this.millisec=this._defaults.millisecMin,this._defaults.microsecMin=e.getMicroseconds()):(this.microsec<this._defaults.microsecMin&&(this.microsec=this._defaults.microsecMin),this._defaults.microsecMin=this.microsecMinOriginal)):(this._defaults.millisecMin=this.millisecMinOriginal,this._defaults.microsecMin=this.microsecMinOriginal)):(this._defaults.secondMin=this.secondMinOriginal,this._defaults.millisecMin=this.millisecMinOriginal,this._defaults.microsecMin=this.microsecMinOriginal)):(this._defaults.minuteMin=this.minuteMinOriginal,this._defaults.secondMin=this.secondMinOriginal,this._defaults.millisecMin=this.millisecMinOriginal,this._defaults.microsecMin=this.microsecMinOriginal)):(this._defaults.hourMin=this.hourMinOriginal,this._defaults.minuteMin=this.minuteMinOriginal,this._defaults.secondMin=this.secondMinOriginal,this._defaults.millisecMin=this.millisecMinOriginal,this._defaults.microsecMin=this.microsecMinOriginal)}if(null!==$.datepicker._get(a,"maxDateTime")&&void 0!==$.datepicker._get(a,"maxDateTime")&&d){var g=$.datepicker._get(a,"maxDateTime"),h=new Date(g.getFullYear(),g.getMonth(),g.getDate(),0,0,0,0);(null===this.hourMaxOriginal||null===this.minuteMaxOriginal||null===this.secondMaxOriginal||null===this.millisecMaxOriginal)&&(this.hourMaxOriginal=c.hourMax,this.minuteMaxOriginal=c.minuteMax,this.secondMaxOriginal=c.secondMax,this.millisecMaxOriginal=c.millisecMax,this.microsecMaxOriginal=c.microsecMax),a.settings.timeOnly||h.getTime()===d.getTime()?(this._defaults.hourMax=g.getHours(),this.hour>=this._defaults.hourMax?(this.hour=this._defaults.hourMax,this._defaults.minuteMax=g.getMinutes(),this.minute>=this._defaults.minuteMax?(this.minute=this._defaults.minuteMax,this._defaults.secondMax=g.getSeconds(),this.second>=this._defaults.secondMax?(this.second=this._defaults.secondMax,this._defaults.millisecMax=g.getMilliseconds(),this.millisec>=this._defaults.millisecMax?(this.millisec=this._defaults.millisecMax,this._defaults.microsecMax=g.getMicroseconds()):(this.microsec>this._defaults.microsecMax&&(this.microsec=this._defaults.microsecMax),this._defaults.microsecMax=this.microsecMaxOriginal)):(this._defaults.millisecMax=this.millisecMaxOriginal,this._defaults.microsecMax=this.microsecMaxOriginal)):(this._defaults.secondMax=this.secondMaxOriginal,this._defaults.millisecMax=this.millisecMaxOriginal,this._defaults.microsecMax=this.microsecMaxOriginal)):(this._defaults.minuteMax=this.minuteMaxOriginal,this._defaults.secondMax=this.secondMaxOriginal,this._defaults.millisecMax=this.millisecMaxOriginal,this._defaults.microsecMax=this.microsecMaxOriginal)):(this._defaults.hourMax=this.hourMaxOriginal,this._defaults.minuteMax=this.minuteMaxOriginal,this._defaults.secondMax=this.secondMaxOriginal,this._defaults.millisecMax=this.millisecMaxOriginal,this._defaults.microsecMax=this.microsecMaxOriginal)}if(null!==a.settings.minTime){var i=new Date("01/01/1970 "+a.settings.minTime);this.hour<i.getHours()?(this.hour=this._defaults.hourMin=i.getHours(),this.minute=this._defaults.minuteMin=i.getMinutes()):this.hour===i.getHours()&&this.minute<i.getMinutes()?this.minute=this._defaults.minuteMin=i.getMinutes():this._defaults.hourMin<i.getHours()?(this._defaults.hourMin=i.getHours(),this._defaults.minuteMin=i.getMinutes()):this._defaults.hourMin===i.getHours()===this.hour&&this._defaults.minuteMin<i.getMinutes()?this._defaults.minuteMin=i.getMinutes():this._defaults.minuteMin=0}if(null!==a.settings.maxTime){var j=new Date("01/01/1970 "+a.settings.maxTime);this.hour>j.getHours()?(this.hour=this._defaults.hourMax=j.getHours(),this.minute=this._defaults.minuteMax=j.getMinutes()):this.hour===j.getHours()&&this.minute>j.getMinutes()?this.minute=this._defaults.minuteMax=j.getMinutes():this._defaults.hourMax>j.getHours()?(this._defaults.hourMax=j.getHours(),this._defaults.minuteMax=j.getMinutes()):this._defaults.hourMax===j.getHours()===this.hour&&this._defaults.minuteMax>j.getMinutes()?this._defaults.minuteMax=j.getMinutes():this._defaults.minuteMax=59}if(void 0!==b&&b===!0){var k=parseInt(this._defaults.hourMax-(this._defaults.hourMax-this._defaults.hourMin)%this._defaults.stepHour,10),l=parseInt(this._defaults.minuteMax-(this._defaults.minuteMax-this._defaults.minuteMin)%this._defaults.stepMinute,10),m=parseInt(this._defaults.secondMax-(this._defaults.secondMax-this._defaults.secondMin)%this._defaults.stepSecond,10),n=parseInt(this._defaults.millisecMax-(this._defaults.millisecMax-this._defaults.millisecMin)%this._defaults.stepMillisec,10),o=parseInt(this._defaults.microsecMax-(this._defaults.microsecMax-this._defaults.microsecMin)%this._defaults.stepMicrosec,10);this.hour_slider&&(this.control.options(this,this.hour_slider,"hour",{min:this._defaults.hourMin,max:k,step:this._defaults.stepHour}),this.control.value(this,this.hour_slider,"hour",this.hour-this.hour%this._defaults.stepHour)),this.minute_slider&&(this.control.options(this,this.minute_slider,"minute",{min:this._defaults.minuteMin,max:l,step:this._defaults.stepMinute}),this.control.value(this,this.minute_slider,"minute",this.minute-this.minute%this._defaults.stepMinute)),this.second_slider&&(this.control.options(this,this.second_slider,"second",{min:this._defaults.secondMin,max:m,step:this._defaults.stepSecond}),this.control.value(this,this.second_slider,"second",this.second-this.second%this._defaults.stepSecond)),this.millisec_slider&&(this.control.options(this,this.millisec_slider,"millisec",{min:this._defaults.millisecMin,max:n,step:this._defaults.stepMillisec}),this.control.value(this,this.millisec_slider,"millisec",this.millisec-this.millisec%this._defaults.stepMillisec)),this.microsec_slider&&(this.control.options(this,this.microsec_slider,"microsec",{min:this._defaults.microsecMin,max:o,step:this._defaults.stepMicrosec}),this.control.value(this,this.microsec_slider,"microsec",this.microsec-this.microsec%this._defaults.stepMicrosec))}}},_onTimeChange:function(){if(this._defaults.showTimepicker){var a=this.hour_slider?this.control.value(this,this.hour_slider,"hour"):!1,b=this.minute_slider?this.control.value(this,this.minute_slider,"minute"):!1,c=this.second_slider?this.control.value(this,this.second_slider,"second"):!1,d=this.millisec_slider?this.control.value(this,this.millisec_slider,"millisec"):!1,e=this.microsec_slider?this.control.value(this,this.microsec_slider,"microsec"):!1,f=this.timezone_select?this.timezone_select.val():!1,g=this._defaults,h=g.pickerTimeFormat||g.timeFormat,i=g.pickerTimeSuffix||g.timeSuffix;"object"==typeof a&&(a=!1),"object"==typeof b&&(b=!1),"object"==typeof c&&(c=!1),"object"==typeof d&&(d=!1),"object"==typeof e&&(e=!1),"object"==typeof f&&(f=!1),a!==!1&&(a=parseInt(a,10)),b!==!1&&(b=parseInt(b,10)),c!==!1&&(c=parseInt(c,10)),d!==!1&&(d=parseInt(d,10)),e!==!1&&(e=parseInt(e,10)),f!==!1&&(f=f.toString());var j=g[12>a?"amNames":"pmNames"][0],k=a!==parseInt(this.hour,10)||b!==parseInt(this.minute,10)||c!==parseInt(this.second,10)||d!==parseInt(this.millisec,10)||e!==parseInt(this.microsec,10)||this.ampm.length>0&&12>a!=(-1!==$.inArray(this.ampm.toUpperCase(),this.amNames))||null!==this.timezone&&f!==this.timezone.toString();if(k&&(a!==!1&&(this.hour=a),b!==!1&&(this.minute=b),c!==!1&&(this.second=c),d!==!1&&(this.millisec=d),e!==!1&&(this.microsec=e),f!==!1&&(this.timezone=f),this.inst||(this.inst=$.datepicker._getInst(this.$input[0])),this._limitMinMaxDateTime(this.inst,!0)),this.support.ampm&&(this.ampm=j),this.formattedTime=$.datepicker.formatTime(g.timeFormat,this,g),this.$timeObj&&(this.$timeObj.val(h===g.timeFormat?this.formattedTime+i:$.datepicker.formatTime(h,this,g)+i),this.$timeObj[0].setSelectionRange)){var l=this.$timeObj[0].selectionStart,m=this.$timeObj[0].selectionEnd;this.$timeObj[0].setSelectionRange(l,m)}this.timeDefined=!0,k&&this._updateDateTime()}},_onSelectHandler:function(){var a=this._defaults.onSelect||this.inst.settings.onSelect,b=this.$input?this.$input[0]:null;a&&b&&a.apply(b,[this.formattedDateTime,this])},_updateDateTime:function(a){a=this.inst||a;var b=a.currentYear>0?new Date(a.currentYear,a.currentMonth,a.currentDay):new Date(a.selectedYear,a.selectedMonth,a.selectedDay),c=$.datepicker._daylightSavingAdjust(b),d=$.datepicker._get(a,"dateFormat"),e=$.datepicker._getFormatConfig(a),f=null!==c&&this.timeDefined;this.formattedDate=$.datepicker.formatDate(d,null===c?new Date:c,e);var g=this.formattedDate;if(""===a.lastVal&&(a.currentYear=a.selectedYear,a.currentMonth=a.selectedMonth,a.currentDay=a.selectedDay),this._defaults.timeOnly===!0&&this._defaults.timeOnlyShowDate===!1?g=this.formattedTime:(this._defaults.timeOnly!==!0&&(this._defaults.alwaysSetTime||f)||this._defaults.timeOnly===!0&&this._defaults.timeOnlyShowDate===!0)&&(g+=this._defaults.separator+this.formattedTime+this._defaults.timeSuffix),this.formattedDateTime=g,this._defaults.showTimepicker)if(this.$altInput&&this._defaults.timeOnly===!1&&this._defaults.altFieldTimeOnly===!0)this.$altInput.val(this.formattedTime),this.$input.val(this.formattedDate);else if(this.$altInput){this.$input.val(g);var h="",i=null!==this._defaults.altSeparator?this._defaults.altSeparator:this._defaults.separator,j=null!==this._defaults.altTimeSuffix?this._defaults.altTimeSuffix:this._defaults.timeSuffix;this._defaults.timeOnly||(h=this._defaults.altFormat?$.datepicker.formatDate(this._defaults.altFormat,null===c?new Date:c,e):this.formattedDate,h&&(h+=i)),h+=null!==this._defaults.altTimeFormat?$.datepicker.formatTime(this._defaults.altTimeFormat,this,this._defaults)+j:this.formattedTime+j,this.$altInput.val(h)}else this.$input.val(g);else this.$input.val(this.formattedDate);this.$input.trigger("change")},_onFocus:function(){if(!this.$input.val()&&this._defaults.defaultValue){this.$input.val(this._defaults.defaultValue);var a=$.datepicker._getInst(this.$input.get(0)),b=$.datepicker._get(a,"timepicker");if(b&&b._defaults.timeOnly&&a.input.val()!==a.lastVal)try{$.datepicker._updateDatepicker(a)}catch(c){$.timepicker.log(c)}}},_controls:{slider:{create:function(a,b,c,d,e,f,g){var h=a._defaults.isRTL;return b.prop("slide",null).slider({orientation:"horizontal",value:h?-1*d:d,min:h?-1*f:e,max:h?-1*e:f,step:g,slide:function(b,d){a.control.value(a,$(this),c,h?-1*d.value:d.value),a._onTimeChange()},stop:function(b,c){a._onSelectHandler()}})},options:function(a,b,c,d,e){if(a._defaults.isRTL){if("string"==typeof d)return"min"===d||"max"===d?void 0!==e?b.slider(d,-1*e):Math.abs(b.slider(d)):b.slider(d);var f=d.min,g=d.max;return d.min=d.max=null,void 0!==f&&(d.max=-1*f),void 0!==g&&(d.min=-1*g),b.slider(d)}return"string"==typeof d&&void 0!==e?b.slider(d,e):b.slider(d)},value:function(a,b,c,d){return a._defaults.isRTL?void 0!==d?b.slider("value",-1*d):Math.abs(b.slider("value")):void 0!==d?b.slider("value",d):b.slider("value")}},select:{create:function(a,b,c,d,e,f,g){for(var h='<select class="ui-timepicker-select ui-state-default ui-corner-all" data-unit="'+c+'" data-min="'+e+'" data-max="'+f+'" data-step="'+g+'">',i=a._defaults.pickerTimeFormat||a._defaults.timeFormat,j=e;f>=j;j+=g)h+='<option value="'+j+'"'+(j===d?" selected":"")+">",h+="hour"===c?$.datepicker.formatTime($.trim(i.replace(/[^ht ]/gi,"")),{hour:j},a._defaults):"millisec"===c||"microsec"===c||j>=10?j:"0"+j.toString(),h+="</option>";return h+="</select>",b.children("select").remove(),$(h).appendTo(b).change(function(b){a._onTimeChange(),a._onSelectHandler(),a._afterInject()}),b},options:function(a,b,c,d,e){var f={},g=b.children("select");if("string"==typeof d){if(void 0===e)return g.data(d);f[d]=e}else f=d;return a.control.create(a,b,g.data("unit"),g.val(),f.min>=0?f.min:g.data("min"),f.max||g.data("max"),f.step||g.data("step"))},value:function(a,b,c,d){var e=b.children("select");return void 0!==d?e.val(d):e.val()}}}}),$.fn.extend({timepicker:function(a){a=a||{};var b=Array.prototype.slice.call(arguments);return"object"==typeof a&&(b[0]=$.extend(a,{timeOnly:!0})),$(this).each(function(){$.fn.datetimepicker.apply($(this),b)})},datetimepicker:function(a){a=a||{};var b=arguments;return"string"==typeof a?"getDate"===a||"option"===a&&2===b.length&&"string"==typeof b[1]?$.fn.datepicker.apply($(this[0]),b):this.each(function(){var a=$(this);a.datepicker.apply(a,b)}):this.each(function(){var b=$(this);b.datepicker($.timepicker._newInst(b,a)._defaults)})}}),$.datepicker.parseDateTime=function(a,b,c,d,e){var f=parseDateTimeInternal(a,b,c,d,e);if(f.timeObj){var g=f.timeObj;f.date.setHours(g.hour,g.minute,g.second,g.millisec),f.date.setMicroseconds(g.microsec)}return f.date},$.datepicker.parseTime=function(a,b,c){var d=extendRemove(extendRemove({},$.timepicker._defaults),c||{}),e=(-1!==a.replace(/\'.*?\'/g,"").indexOf("Z"),function(a,b,c){var d,e=function(a,b){var c=[];return a&&$.merge(c,a),b&&$.merge(c,b),c=$.map(c,function(a){return a.replace(/[.*+?|()\[\]{}\\]/g,"\\$&")}),"("+c.join("|")+")?"},f=function(a){var b=a.toLowerCase().match(/(h{1,2}|m{1,2}|s{1,2}|l{1}|c{1}|t{1,2}|z|'.*?')/g),c={h:-1,m:-1,s:-1,l:-1,c:-1,t:-1,z:-1};if(b)for(var d=0;d<b.length;d++)-1===c[b[d].toString().charAt(0)]&&(c[b[d].toString().charAt(0)]=d+1);return c},g="^"+a.toString().replace(/([hH]{1,2}|mm?|ss?|[tT]{1,2}|[zZ]|[lc]|'.*?')/g,function(a){var b=a.length;switch(a.charAt(0).toLowerCase()){case"h":return 1===b?"(\\d?\\d)":"(\\d{"+b+"})";case"m":return 1===b?"(\\d?\\d)":"(\\d{"+b+"})";case"s":return 1===b?"(\\d?\\d)":"(\\d{"+b+"})";case"l":return"(\\d?\\d?\\d)";case"c":return"(\\d?\\d?\\d)";case"z":return"(z|[-+]\\d\\d:?\\d\\d|\\S+)?";case"t":return e(c.amNames,c.pmNames);default:return"("+a.replace(/\'/g,"").replace(/(\.|\$|\^|\\|\/|\(|\)|\[|\]|\?|\+|\*)/g,function(a){return"\\"+a})+")?"}}).replace(/\s/g,"\\s?")+c.timeSuffix+"$",h=f(a),i="";d=b.match(new RegExp(g,"i"));var j={hour:0,minute:0,second:0,millisec:0,microsec:0};return d?(-1!==h.t&&(void 0===d[h.t]||0===d[h.t].length?(i="",j.ampm=""):(i=-1!==$.inArray(d[h.t].toUpperCase(),$.map(c.amNames,function(a,b){return a.toUpperCase()}))?"AM":"PM",j.ampm=c["AM"===i?"amNames":"pmNames"][0])),-1!==h.h&&("AM"===i&&"12"===d[h.h]?j.hour=0:"PM"===i&&"12"!==d[h.h]?j.hour=parseInt(d[h.h],10)+12:j.hour=Number(d[h.h])),-1!==h.m&&(j.minute=Number(d[h.m])),-1!==h.s&&(j.second=Number(d[h.s])),-1!==h.l&&(j.millisec=Number(d[h.l])),-1!==h.c&&(j.microsec=Number(d[h.c])),-1!==h.z&&void 0!==d[h.z]&&(j.timezone=$.timepicker.timezoneOffsetNumber(d[h.z])),j):!1}),f=function(a,b,c){try{var d=new Date("2012-01-01 "+b);if(isNaN(d.getTime())&&(d=new Date("2012-01-01T"+b),isNaN(d.getTime())&&(d=new Date("01/01/2012 "+b),isNaN(d.getTime()))))throw"Unable to parse time with native Date: "+b;return{hour:d.getHours(),minute:d.getMinutes(),second:d.getSeconds(),millisec:d.getMilliseconds(),microsec:d.getMicroseconds(),timezone:-1*d.getTimezoneOffset()}}catch(f){try{return e(a,b,c)}catch(g){$.timepicker.log("Unable to parse \ntimeString: "+b+"\ntimeFormat: "+a)}}return!1};return"function"==typeof d.parse?d.parse(a,b,d):"loose"===d.parse?f(a,b,d):e(a,b,d)},$.datepicker.formatTime=function(a,b,c){c=c||{},c=$.extend({},$.timepicker._defaults,c),b=$.extend({hour:0,minute:0,second:0,millisec:0,microsec:0,timezone:null},b);var d=a,e=c.amNames[0],f=parseInt(b.hour,10);return f>11&&(e=c.pmNames[0]),d=d.replace(/(?:HH?|hh?|mm?|ss?|[tT]{1,2}|[zZ]|[lc]|'.*?')/g,function(a){switch(a){case"HH":return("0"+f).slice(-2);case"H":return f;case"hh":return("0"+convert24to12(f)).slice(-2);case"h":return convert24to12(f);case"mm":return("0"+b.minute).slice(-2);case"m":return b.minute;case"ss":return("0"+b.second).slice(-2);case"s":return b.second;case"l":return("00"+b.millisec).slice(-3);case"c":return("00"+b.microsec).slice(-3);case"z":return $.timepicker.timezoneOffsetString(null===b.timezone?c.timezone:b.timezone,!1);case"Z":return $.timepicker.timezoneOffsetString(null===b.timezone?c.timezone:b.timezone,!0);case"T":return e.charAt(0).toUpperCase();case"TT":return e.toUpperCase();case"t":return e.charAt(0).toLowerCase();case"tt":return e.toLowerCase();default:return a.replace(/'/g,"")}})},$.datepicker._base_selectDate=$.datepicker._selectDate,$.datepicker._selectDate=function(a,b){var c,d=this._getInst($(a)[0]),e=this._get(d,"timepicker");e&&d.settings.showTimepicker?(e._limitMinMaxDateTime(d,!0),c=d.inline,d.inline=d.stay_open=!0,this._base_selectDate(a,b),d.inline=c,d.stay_open=!1,this._notifyChange(d),this._updateDatepicker(d)):this._base_selectDate(a,b)},$.datepicker._base_updateDatepicker=$.datepicker._updateDatepicker,$.datepicker._updateDatepicker=function(a){var b=a.input[0];if(!($.datepicker._curInst&&$.datepicker._curInst!==a&&$.datepicker._datepickerShowing&&$.datepicker._lastInput!==b||"boolean"==typeof a.stay_open&&a.stay_open!==!1)){this._base_updateDatepicker(a);var c=this._get(a,"timepicker");c&&c._addTimePicker(a)}},$.datepicker._base_doKeyPress=$.datepicker._doKeyPress,$.datepicker._doKeyPress=function(a){var b=$.datepicker._getInst(a.target),c=$.datepicker._get(b,"timepicker");if(c&&$.datepicker._get(b,"constrainInput")){var d=c.support.ampm,e=null!==c._defaults.showTimezone?c._defaults.showTimezone:c.support.timezone,f=$.datepicker._possibleChars($.datepicker._get(b,"dateFormat")),g=c._defaults.timeFormat.toString().replace(/[hms]/g,"").replace(/TT/g,d?"APM":"").replace(/Tt/g,d?"AaPpMm":"").replace(/tT/g,d?"AaPpMm":"").replace(/T/g,d?"AP":"").replace(/tt/g,d?"apm":"").replace(/t/g,d?"ap":"")+" "+c._defaults.separator+c._defaults.timeSuffix+(e?c._defaults.timezoneList.join(""):"")+c._defaults.amNames.join("")+c._defaults.pmNames.join("")+f,h=String.fromCharCode(void 0===a.charCode?a.keyCode:a.charCode);return a.ctrlKey||" ">h||!f||g.indexOf(h)>-1}return $.datepicker._base_doKeyPress(a)},$.datepicker._base_updateAlternate=$.datepicker._updateAlternate,$.datepicker._updateAlternate=function(a){var b=this._get(a,"timepicker");if(b){var c=b._defaults.altField;if(c){var d=(b._defaults.altFormat||b._defaults.dateFormat,this._getDate(a)),e=$.datepicker._getFormatConfig(a),f="",g=b._defaults.altSeparator?b._defaults.altSeparator:b._defaults.separator,h=b._defaults.altTimeSuffix?b._defaults.altTimeSuffix:b._defaults.timeSuffix,i=null!==b._defaults.altTimeFormat?b._defaults.altTimeFormat:b._defaults.timeFormat;f+=$.datepicker.formatTime(i,b,b._defaults)+h,b._defaults.timeOnly||b._defaults.altFieldTimeOnly||null===d||(f=b._defaults.altFormat?$.datepicker.formatDate(b._defaults.altFormat,d,e)+g+f:b.formattedDate+g+f),$(c).val(a.input.val()?f:"")}}else $.datepicker._base_updateAlternate(a)},$.datepicker._base_doKeyUp=$.datepicker._doKeyUp,$.datepicker._doKeyUp=function(a){var b=$.datepicker._getInst(a.target),c=$.datepicker._get(b,"timepicker");
|
5 |
+
if(c&&c._defaults.timeOnly&&b.input.val()!==b.lastVal)try{$.datepicker._updateDatepicker(b)}catch(d){$.timepicker.log(d)}return $.datepicker._base_doKeyUp(a)},$.datepicker._base_gotoToday=$.datepicker._gotoToday,$.datepicker._gotoToday=function(a){var b=this._getInst($(a)[0]);this._base_gotoToday(a);var c=this._get(b,"timepicker");if(c){var d=$.timepicker.timezoneOffsetNumber(c.timezone),e=new Date;e.setMinutes(e.getMinutes()+e.getTimezoneOffset()+parseInt(d,10)),this._setTime(b,e),this._setDate(b,e),c._onSelectHandler()}},$.datepicker._disableTimepickerDatepicker=function(a){var b=this._getInst(a);if(b){var c=this._get(b,"timepicker");$(a).datepicker("getDate"),c&&(b.settings.showTimepicker=!1,c._defaults.showTimepicker=!1,c._updateDateTime(b))}},$.datepicker._enableTimepickerDatepicker=function(a){var b=this._getInst(a);if(b){var c=this._get(b,"timepicker");$(a).datepicker("getDate"),c&&(b.settings.showTimepicker=!0,c._defaults.showTimepicker=!0,c._addTimePicker(b),c._updateDateTime(b))}},$.datepicker._setTime=function(a,b){var c=this._get(a,"timepicker");if(c){var d=c._defaults;c.hour=b?b.getHours():d.hour,c.minute=b?b.getMinutes():d.minute,c.second=b?b.getSeconds():d.second,c.millisec=b?b.getMilliseconds():d.millisec,c.microsec=b?b.getMicroseconds():d.microsec,c._limitMinMaxDateTime(a,!0),c._onTimeChange(),c._updateDateTime(a)}},$.datepicker._setTimeDatepicker=function(a,b,c){var d=this._getInst(a);if(d){var e=this._get(d,"timepicker");if(e){this._setDateFromField(d);var f;b&&("string"==typeof b?(e._parseTime(b,c),f=new Date,f.setHours(e.hour,e.minute,e.second,e.millisec),f.setMicroseconds(e.microsec)):(f=new Date(b.getTime()),f.setMicroseconds(b.getMicroseconds())),"Invalid Date"===f.toString()&&(f=void 0),this._setTime(d,f))}}},$.datepicker._base_setDateDatepicker=$.datepicker._setDateDatepicker,$.datepicker._setDateDatepicker=function(a,b){var c=this._getInst(a),d=b;if(c){"string"==typeof b&&(d=new Date(b),d.getTime()||(this._base_setDateDatepicker.apply(this,arguments),d=$(a).datepicker("getDate")));var e,f=this._get(c,"timepicker");d instanceof Date?(e=new Date(d.getTime()),e.setMicroseconds(d.getMicroseconds())):e=d,f&&e&&(f.support.timezone||null!==f._defaults.timezone||(f.timezone=-1*e.getTimezoneOffset()),d=$.timepicker.timezoneAdjust(d,$.timepicker.timezoneOffsetString(-d.getTimezoneOffset()),f.timezone),e=$.timepicker.timezoneAdjust(e,$.timepicker.timezoneOffsetString(-e.getTimezoneOffset()),f.timezone)),this._updateDatepicker(c),this._base_setDateDatepicker.apply(this,arguments),this._setTimeDatepicker(a,e,!0)}},$.datepicker._base_getDateDatepicker=$.datepicker._getDateDatepicker,$.datepicker._getDateDatepicker=function(a,b){var c=this._getInst(a);if(c){var d=this._get(c,"timepicker");if(d){void 0===c.lastVal&&this._setDateFromField(c,b);var e=this._getDate(c),f=null;return f=d.$altInput&&d._defaults.altFieldTimeOnly?d.$input.val()+" "+d.$altInput.val():"INPUT"!==d.$input.get(0).tagName&&d.$altInput?d.$altInput.val():d.$input.val(),e&&d._parseTime(f,!c.settings.timeOnly)&&(e.setHours(d.hour,d.minute,d.second,d.millisec),e.setMicroseconds(d.microsec),null!=d.timezone&&(d.support.timezone||null!==d._defaults.timezone||(d.timezone=-1*e.getTimezoneOffset()),e=$.timepicker.timezoneAdjust(e,d.timezone,$.timepicker.timezoneOffsetString(-e.getTimezoneOffset())))),e}return this._base_getDateDatepicker(a,b)}},$.datepicker._base_parseDate=$.datepicker.parseDate,$.datepicker.parseDate=function(a,b,c){var d;try{d=this._base_parseDate(a,b,c)}catch(e){if(!(e.indexOf(":")>=0))throw e;d=this._base_parseDate(a,b.substring(0,b.length-(e.length-e.indexOf(":")-2)),c),$.timepicker.log("Error parsing the date string: "+e+"\ndate string = "+b+"\ndate format = "+a)}return d},$.datepicker._base_formatDate=$.datepicker._formatDate,$.datepicker._formatDate=function(a,b,c,d){var e=this._get(a,"timepicker");return e?(e._updateDateTime(a),e.$input.val()):this._base_formatDate(a)},$.datepicker._base_optionDatepicker=$.datepicker._optionDatepicker,$.datepicker._optionDatepicker=function(a,b,c){var d,e=this._getInst(a);if(!e)return null;var f=this._get(e,"timepicker");if(f){var g,h,i,j,k=null,l=null,m=null,n=f._defaults.evnts,o={};if("string"==typeof b){if("minDate"===b||"minDateTime"===b)k=c;else if("maxDate"===b||"maxDateTime"===b)l=c;else if("onSelect"===b)m=c;else if(n.hasOwnProperty(b)){if("undefined"==typeof c)return n[b];o[b]=c,d={}}}else if("object"==typeof b){b.minDate?k=b.minDate:b.minDateTime?k=b.minDateTime:b.maxDate?l=b.maxDate:b.maxDateTime&&(l=b.maxDateTime);for(g in n)n.hasOwnProperty(g)&&b[g]&&(o[g]=b[g])}for(g in o)o.hasOwnProperty(g)&&(n[g]=o[g],d||(d=$.extend({},b)),delete d[g]);if(d&&isEmptyObject(d))return;if(k?(k=0===k?new Date:new Date(k),f._defaults.minDate=k,f._defaults.minDateTime=k):l?(l=0===l?new Date:new Date(l),f._defaults.maxDate=l,f._defaults.maxDateTime=l):m&&(f._defaults.onSelect=m),k||l)return j=$(a),i=j.datetimepicker("getDate"),h=this._base_optionDatepicker.call($.datepicker,a,d||b,c),j.datetimepicker("setDate",i),h}return void 0===c?this._base_optionDatepicker.call($.datepicker,a,b):this._base_optionDatepicker.call($.datepicker,a,d||b,c)};var isEmptyObject=function(a){var b;for(b in a)if(a.hasOwnProperty(b))return!1;return!0},extendRemove=function(a,b){$.extend(a,b);for(var c in b)(null===b[c]||void 0===b[c])&&(a[c]=b[c]);return a},detectSupport=function(a){var b=a.replace(/'.*?'/g,"").toLowerCase(),c=function(a,b){return-1!==a.indexOf(b)?!0:!1};return{hour:c(b,"h"),minute:c(b,"m"),second:c(b,"s"),millisec:c(b,"l"),microsec:c(b,"c"),timezone:c(b,"z"),ampm:c(b,"t")&&c(a,"h"),iso8601:c(a,"Z")}},convert24to12=function(a){return a%=12,0===a&&(a=12),String(a)},computeEffectiveSetting=function(a,b){return a&&a[b]?a[b]:$.timepicker._defaults[b]},splitDateTime=function(a,b){var c=computeEffectiveSetting(b,"separator"),d=computeEffectiveSetting(b,"timeFormat"),e=d.split(c),f=e.length,g=a.split(c),h=g.length;return h>1?{dateString:g.splice(0,h-f).join(c),timeString:g.splice(0,f).join(c)}:{dateString:a,timeString:""}},parseDateTimeInternal=function(a,b,c,d,e){var f,g,h;if(g=splitDateTime(c,e),f=$.datepicker._base_parseDate(a,g.dateString,d),""===g.timeString)return{date:f};if(h=$.datepicker.parseTime(b,g.timeString,e),!h)throw"Wrong time format";return{date:f,timeObj:h}},selectLocalTimezone=function(a,b){if(a&&a.timezone_select){var c=b||new Date;a.timezone_select.val(-c.getTimezoneOffset())}};$.timepicker=new Timepicker,$.timepicker.timezoneOffsetString=function(a,b){if(isNaN(a)||a>840||-720>a)return a;var c=a,d=c%60,e=(c-d)/60,f=b?":":"",g=(c>=0?"+":"-")+("0"+Math.abs(e)).slice(-2)+f+("0"+Math.abs(d)).slice(-2);return"+00:00"===g?"Z":g},$.timepicker.timezoneOffsetNumber=function(a){var b=a.toString().replace(":","");return"Z"===b.toUpperCase()?0:/^(\-|\+)\d{4}$/.test(b)?("-"===b.substr(0,1)?-1:1)*(60*parseInt(b.substr(1,2),10)+parseInt(b.substr(3,2),10)):parseInt(a,10)},$.timepicker.timezoneAdjust=function(a,b,c){var d=$.timepicker.timezoneOffsetNumber(b),e=$.timepicker.timezoneOffsetNumber(c);return isNaN(e)||a.setMinutes(a.getMinutes()+-d- -e),a},$.timepicker.timeRange=function(a,b,c){return $.timepicker.handleRange("timepicker",a,b,c)},$.timepicker.datetimeRange=function(a,b,c){$.timepicker.handleRange("datetimepicker",a,b,c)},$.timepicker.dateRange=function(a,b,c){$.timepicker.handleRange("datepicker",a,b,c)},$.timepicker.handleRange=function(a,b,c,d){function e(e,f){var g=b[a]("getDate"),h=c[a]("getDate"),i=e[a]("getDate");if(null!==g){var j=new Date(g.getTime()),k=new Date(g.getTime());j.setMilliseconds(j.getMilliseconds()+d.minInterval),k.setMilliseconds(k.getMilliseconds()+d.maxInterval),d.minInterval>0&&j>h?c[a]("setDate",j):d.maxInterval>0&&h>k?c[a]("setDate",k):g>h&&f[a]("setDate",i)}}function f(b,c,e){if(b.val()){var f=b[a].call(b,"getDate");null!==f&&d.minInterval>0&&("minDate"===e&&f.setMilliseconds(f.getMilliseconds()+d.minInterval),"maxDate"===e&&f.setMilliseconds(f.getMilliseconds()-d.minInterval)),f.getTime&&c[a].call(c,"option",e,f)}}d=$.extend({},{minInterval:0,maxInterval:0,start:{},end:{}},d);var g=!1;return"timepicker"===a&&(g=!0,a="datetimepicker"),$.fn[a].call(b,$.extend({timeOnly:g,onClose:function(a,b){e($(this),c)},onSelect:function(a){f($(this),c,"minDate")}},d,d.start)),$.fn[a].call(c,$.extend({timeOnly:g,onClose:function(a,c){e($(this),b)},onSelect:function(a){f($(this),b,"maxDate")}},d,d.end)),e(b,c),f(b,c,"minDate"),f(c,b,"maxDate"),$([b.get(0),c.get(0)])},$.timepicker.log=function(){window.console&&window.console.log&&window.console.log.apply&&window.console.log.apply(window.console,Array.prototype.slice.call(arguments))},$.timepicker._util={_extendRemove:extendRemove,_isEmptyObject:isEmptyObject,_convert24to12:convert24to12,_detectSupport:detectSupport,_selectLocalTimezone:selectLocalTimezone,_computeEffectiveSetting:computeEffectiveSetting,_splitDateTime:splitDateTime,_parseDateTimeInternal:parseDateTimeInternal},Date.prototype.getMicroseconds||(Date.prototype.microseconds=0,Date.prototype.getMicroseconds=function(){return this.microseconds},Date.prototype.setMicroseconds=function(a){return this.setMilliseconds(this.getMilliseconds()+Math.floor(a/1e3)),this.microseconds=a%1e3,this}),$.timepicker.version="1.6.3"}});
|
includes/fields/js/timepicker-field.js
ADDED
@@ -0,0 +1,46 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
jQuery(function ($) {
|
2 |
+
|
3 |
+
var setup = function (widgetForm) {
|
4 |
+
|
5 |
+
if (typeof widgetForm.data('initialised') == 'undefined') {
|
6 |
+
|
7 |
+
$(widgetForm).find('.lsow-widget-input-timepicker').each(function (index, element) {
|
8 |
+
$(element).datetimepicker({
|
9 |
+
timeFormat: 'HH:mm:ss',
|
10 |
+
stepHour: 2,
|
11 |
+
stepMinute: 10,
|
12 |
+
stepSecond: 10
|
13 |
+
});
|
14 |
+
});
|
15 |
+
|
16 |
+
$(widgetForm).data('initialised', true);
|
17 |
+
}
|
18 |
+
else {
|
19 |
+
setTimeout(function () {
|
20 |
+
setup(widgetForm);
|
21 |
+
}, 500);
|
22 |
+
}
|
23 |
+
};
|
24 |
+
|
25 |
+
$(document).on('sowsetupform', function (e) {
|
26 |
+
var $form = $(e.target);
|
27 |
+
|
28 |
+
if ($form.is('.siteorigin-widget-field-repeater-item-form')) {
|
29 |
+
if ($form.is(':visible')) {
|
30 |
+
setup($form);
|
31 |
+
}
|
32 |
+
else {
|
33 |
+
$form.on('slideToggleOpenComplete', function onSlideToggleComplete() {
|
34 |
+
if ($form.is(':visible')) {
|
35 |
+
setup($form);
|
36 |
+
$form.off('slideToggleOpenComplete');
|
37 |
+
}
|
38 |
+
})
|
39 |
+
}
|
40 |
+
}
|
41 |
+
else {
|
42 |
+
setup($form);
|
43 |
+
}
|
44 |
+
});
|
45 |
+
|
46 |
+
});
|
includes/fields/js/timepicker-field.min.js
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
jQuery(function(e){var i=function(t){"undefined"==typeof t.data("initialised")?(e(t).find(".lsow-widget-input-timepicker").each(function(i,t){e(t).datetimepicker({timeFormat:"HH:mm:ss",stepHour:2,stepMinute:10,stepSecond:10})}),e(t).data("initialised",!0)):setTimeout(function(){i(t)},500)};e(document).on("sowsetupform",function(t){var n=e(t.target);n.is(".siteorigin-widget-field-repeater-item-form")?n.is(":visible")?i(n):n.on("slideToggleOpenComplete",function(){n.is(":visible")&&(i(n),n.off("slideToggleOpenComplete"))}):i(n)})});
|
includes/fields/timepicker.class.php
ADDED
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Class LSOW_Custom_Field_Datepicker
|
5 |
+
*/
|
6 |
+
class LSOW_Custom_Field_Timepicker extends SiteOrigin_Widget_Field_Text_Input_Base {
|
7 |
+
|
8 |
+
protected function get_input_classes() {
|
9 |
+
$input_classes = parent::get_input_classes();
|
10 |
+
$input_classes[] = 'lsow-widget-input-timepicker';
|
11 |
+
return $input_classes;
|
12 |
+
}
|
13 |
+
|
14 |
+
public function enqueue_scripts() {
|
15 |
+
|
16 |
+
/* load jQuery-ui datepicker */
|
17 |
+
wp_enqueue_script('jquery-ui-datepicker');
|
18 |
+
|
19 |
+
wp_enqueue_script( 'jquery-ui-slider' );
|
20 |
+
|
21 |
+
wp_enqueue_script('lsow-timepicker-addon', plugin_dir_url(__FILE__) . 'js/jquery-ui-timepicker-addon' . SOW_BUNDLE_JS_SUFFIX . '.js', array('jquery', 'jquery-ui-datepicker' , 'jquery-ui-slider'), SOW_BUNDLE_VERSION);
|
22 |
+
|
23 |
+
wp_enqueue_style('lsow-timepicker-addon-css', plugin_dir_url(__FILE__) . 'css/jquery-ui-timepicker-addon.css', false, "1.6.3", false);
|
24 |
+
|
25 |
+
wp_enqueue_script('lsow-timepicker-field', plugin_dir_url(__FILE__) . 'js/timepicker-field' . SOW_BUNDLE_JS_SUFFIX . '.js', array('jquery', 'jquery-ui-datepicker', 'lsow-timepicker-addon'), SOW_BUNDLE_VERSION);
|
26 |
+
|
27 |
+
wp_enqueue_style('lsow-timepicker-css', plugin_dir_url(__FILE__) . 'css/jquery-ui.css', false, "1.11.4", false);
|
28 |
+
}
|
29 |
+
}
|
includes/helper-functions.php
CHANGED
@@ -246,4 +246,32 @@ if (!function_exists('lsow_get_taxonomies_map')) {
|
|
246 |
}
|
247 |
return $map;
|
248 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
249 |
}
|
246 |
}
|
247 |
return $map;
|
248 |
}
|
249 |
+
}
|
250 |
+
|
251 |
+
|
252 |
+
/**
|
253 |
+
* Lightens/darkens a given colour (hex format), returning the altered colour in hex format.7
|
254 |
+
* @param str $hex Colour as hexadecimal (with or without hash);
|
255 |
+
* @percent float $percent Decimal ( 0.2 = lighten by 20%(), -0.4 = darken by 40%() )
|
256 |
+
* @return str Lightened/Darkend colour as hexadecimal (with hash);
|
257 |
+
*/
|
258 |
+
function lsow_color_luminance( $hex, $percent ) {
|
259 |
+
|
260 |
+
// validate hex string
|
261 |
+
|
262 |
+
$hex = preg_replace( '/[^0-9a-f]/i', '', $hex );
|
263 |
+
$new_hex = '#';
|
264 |
+
|
265 |
+
if ( strlen( $hex ) < 6 ) {
|
266 |
+
$hex = $hex[0] + $hex[0] + $hex[1] + $hex[1] + $hex[2] + $hex[2];
|
267 |
+
}
|
268 |
+
|
269 |
+
// convert to decimal and change luminosity
|
270 |
+
for ($i = 0; $i < 3; $i++) {
|
271 |
+
$dec = hexdec( substr( $hex, $i*2, 2 ) );
|
272 |
+
$dec = min( max( 0, $dec + $dec * $percent ), 255 );
|
273 |
+
$new_hex .= str_pad( dechex( $dec ) , 2, 0, STR_PAD_LEFT );
|
274 |
+
}
|
275 |
+
|
276 |
+
return $new_hex;
|
277 |
}
|
includes/widgets/lsow-accordion-widget/css/style.css
CHANGED
@@ -8,7 +8,8 @@ html {
|
|
8 |
display: block;
|
9 |
cursor: pointer; }
|
10 |
.lsow-accordion .lsow-panel-content {
|
11 |
-
display: none;
|
|
|
12 |
|
13 |
.lsow-accordion.style1 .lsow-panel .lsow-panel-title, .lsow-accordion.style3 .lsow-panel .lsow-panel-title {
|
14 |
-webkit-transition: all 0.3s ease-in-out 0s;
|
8 |
display: block;
|
9 |
cursor: pointer; }
|
10 |
.lsow-accordion .lsow-panel-content {
|
11 |
+
display: none;
|
12 |
+
overflow: hidden; }
|
13 |
|
14 |
.lsow-accordion.style1 .lsow-panel .lsow-panel-title, .lsow-accordion.style3 .lsow-panel .lsow-panel-title {
|
15 |
-webkit-transition: all 0.3s ease-in-out 0s;
|
includes/widgets/lsow-accordion-widget/css/style.css.map
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
{
|
2 |
"version": 3,
|
3 |
-
"mappings": "AAGE,IAAK;EACH,UAAU,EAAE,UAAU;;AAItB,sBAEU;EACR,UAAU,EAAE,OAAO;;ACPvB,iCAAkB;EAChB,OAAO,EAAE,KAAK;EACd,MAAM,EAAE,OAAO;AAEjB,mCAAoB;EAClB,OAAO,EAAE,IAAI;;
|
4 |
"sources": ["../../../../../../bower_components/neat/app/assets/stylesheets/grid/_box-sizing.scss","style.scss","../../../../assets/css/_lsow-lib.scss"],
|
5 |
"names": [],
|
6 |
"file": "style.css"
|
1 |
{
|
2 |
"version": 3,
|
3 |
+
"mappings": "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",
|
4 |
"sources": ["../../../../../../bower_components/neat/app/assets/stylesheets/grid/_box-sizing.scss","style.scss","../../../../assets/css/_lsow-lib.scss"],
|
5 |
"names": [],
|
6 |
"file": "style.css"
|
includes/widgets/lsow-accordion-widget/css/style.scss
CHANGED
@@ -8,6 +8,7 @@
|
|
8 |
}
|
9 |
.lsow-panel-content {
|
10 |
display: none;
|
|
|
11 |
}
|
12 |
}
|
13 |
|
8 |
}
|
9 |
.lsow-panel-content {
|
10 |
display: none;
|
11 |
+
overflow: hidden;
|
12 |
}
|
13 |
}
|
14 |
|
includes/widgets/lsow-accordion-widget/lsow-accordion-widget.php
CHANGED
@@ -16,7 +16,7 @@ class LSOW_Accordion_Widget extends SiteOrigin_Widget {
|
|
16 |
array(
|
17 |
'description' => __('Displays collapsible content panels to help display information when space is limited.', 'livemesh-so-widgets'),
|
18 |
'panels_icon' => 'dashicons dashicons-minus',
|
19 |
-
'help' => 'http://portfoliotheme.org/widgets
|
20 |
),
|
21 |
array(),
|
22 |
array(
|
16 |
array(
|
17 |
'description' => __('Displays collapsible content panels to help display information when space is limited.', 'livemesh-so-widgets'),
|
18 |
'panels_icon' => 'dashicons dashicons-minus',
|
19 |
+
'help' => 'http://portfoliotheme.org/siteorigin-widgets/accordion-widget-documentation/'
|
20 |
),
|
21 |
array(),
|
22 |
array(
|
includes/widgets/lsow-button-widget/assets/banner.svg
ADDED
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" encoding="utf-8"?>
|
2 |
+
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
3 |
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
4 |
+
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
5 |
+
viewBox="0 0 256 256" enable-background="new 0 0 256 256" xml:space="preserve">
|
6 |
+
<g>
|
7 |
+
<circle fill="#37505F" cx="128" cy="128" r="127"/>
|
8 |
+
<path fill="#F7F8F9" d="M190.5,52.1h-125c-5.5,0-9.9,4.4-9.9,9.9v88.1c0,5.5,4.4,9.9,9.9,9.9h125c5.5,0,9.9-4.4,9.9-9.9V62
|
9 |
+
C200.4,56.5,196,52.1,190.5,52.1z"/>
|
10 |
+
<circle fill="#3EA9D7" cx="132.2" cy="84.3" r="22.9"/>
|
11 |
+
<path fill="#F2CD56" d="M172.2,135.8L172.2,135.8c-4.7-2-10.4,0.8-12.7,6.2c2.3-5.4,0.2-11.4-4.5-13.4c-4.7-2-10.4,0.8-12.7,6.2
|
12 |
+
c2.3-5.4,0.2-11.4-4.5-13.4c-4.7-2-10.4,0.8-12.7,6.2l16.7-40.3c2.3-5.4,0.2-11.4-4.5-13.4c-4.7-2-10.4,0.8-12.7,6.2L108,120.6l0,0
|
13 |
+
l-9.7,23.3l-3,7.1l-7.1-18.6c-2-5.1-7.5-7.1-12.4-4.5c-4.9,2.7-7.2,9-5.3,14.1l11.6,30.3c1.3,3.4,2.8,31.3,6.1,32.6l42.7,17.7
|
14 |
+
c7.2,3,24.1-21.1,27.5-29.4l5-12l3.6-8.7l9.7-23.3C178.9,143.7,176.9,137.7,172.2,135.8z"/>
|
15 |
+
|
16 |
+
<rect x="76.2" y="211.7" transform="matrix(0.9079 0.4192 -0.4192 0.9079 101.4574 -24.8544)" fill="#FFFFFF" width="62.3" height="13.4"/>
|
17 |
+
<path fill="#0B2C48" d="M75.3,209.9L62.8,237c18.5,11.1,40.1,17.6,63.2,18l8.3-17.9L75.3,209.9z"/>
|
18 |
+
</g>
|
19 |
+
</svg>
|
includes/widgets/lsow-button-widget/css/style.css
ADDED
@@ -0,0 +1,119 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
html {
|
2 |
+
box-sizing: border-box; }
|
3 |
+
|
4 |
+
*, *::after, *::before {
|
5 |
+
box-sizing: inherit; }
|
6 |
+
|
7 |
+
input.lsow-button, button.lsow-button, a.lsow-button, .lsow-button:active, .lsow-button:visited {
|
8 |
+
display: inline-block;
|
9 |
+
text-align: center;
|
10 |
+
line-height: 1;
|
11 |
+
cursor: pointer;
|
12 |
+
-webkit-appearance: none;
|
13 |
+
vertical-align: middle;
|
14 |
+
border: 1px solid transparent;
|
15 |
+
border-radius: 3px;
|
16 |
+
padding: 16px 40px;
|
17 |
+
margin: 0;
|
18 |
+
font-size: 12px;
|
19 |
+
font-weight: normal;
|
20 |
+
text-transform: uppercase;
|
21 |
+
letter-spacing: 2px;
|
22 |
+
background-color: #f94213;
|
23 |
+
color: #fefefe;
|
24 |
+
outline: none;
|
25 |
+
-webkit-transition: all 0.4s ease-in-out 0s;
|
26 |
+
-moz-transition: all 0.4s ease-in-out 0s;
|
27 |
+
-ms-transition: all 0.4s ease-in-out 0s;
|
28 |
+
transition: all 0.4s ease-in-out 0s; }
|
29 |
+
input.lsow-button span, input.lsow-button img.lsow-thumbnail, button.lsow-button span, button.lsow-button img.lsow-thumbnail, a.lsow-button span, a.lsow-button img.lsow-thumbnail, .lsow-button:active span, .lsow-button:active img.lsow-thumbnail, .lsow-button:visited span, .lsow-button:visited img.lsow-thumbnail {
|
30 |
+
margin-right: 15px; }
|
31 |
+
input.lsow-button span, button.lsow-button span, a.lsow-button span, .lsow-button:active span, .lsow-button:visited span {
|
32 |
+
color: #fff;
|
33 |
+
font-size: 32px;
|
34 |
+
vertical-align: middle;
|
35 |
+
line-height: 1; }
|
36 |
+
input.lsow-button img.lsow-thumbnail, button.lsow-button img.lsow-thumbnail, a.lsow-button img.lsow-thumbnail, .lsow-button:active img.lsow-thumbnail, .lsow-button:visited img.lsow-thumbnail {
|
37 |
+
display: inline !important;
|
38 |
+
vertical-align: middle;
|
39 |
+
max-width: 50px; }
|
40 |
+
input.lsow-button.lsow-rounded, button.lsow-button.lsow-rounded, a.lsow-button.lsow-rounded, .lsow-button:active.lsow-rounded, .lsow-button:visited.lsow-rounded {
|
41 |
+
border-radius: 999px; }
|
42 |
+
input.lsow-button.lsow-large, button.lsow-button.lsow-large, a.lsow-button.lsow-large, .lsow-button:active.lsow-large, .lsow-button:visited.lsow-large {
|
43 |
+
padding: 20px 60px; }
|
44 |
+
input.lsow-button.lsow-small, button.lsow-button.lsow-small, a.lsow-button.lsow-small, .lsow-button:active.lsow-small, .lsow-button:visited.lsow-small {
|
45 |
+
padding: 12px 25px;
|
46 |
+
font-size: 11px; }
|
47 |
+
input.lsow-button:hover, button.lsow-button:hover, a.lsow-button:hover, .lsow-button:active:hover, .lsow-button:visited:hover {
|
48 |
+
background-color: #f9633e;
|
49 |
+
color: #fefefe; }
|
50 |
+
|
51 |
+
.lsow-button.lsow-black {
|
52 |
+
background-color: #363636; }
|
53 |
+
|
54 |
+
.lsow-button.lsow-black:hover {
|
55 |
+
background-color: #434343; }
|
56 |
+
|
57 |
+
.lsow-button.lsow-blue {
|
58 |
+
background-color: #46a5d5; }
|
59 |
+
|
60 |
+
.lsow-button.lsow-blue:hover {
|
61 |
+
background-color: #5bafda; }
|
62 |
+
|
63 |
+
.lsow-button.lsow-cyan {
|
64 |
+
background-color: #57c0dc; }
|
65 |
+
|
66 |
+
.lsow-button.lsow-cyan:hover {
|
67 |
+
background-color: #6cc8e0; }
|
68 |
+
|
69 |
+
.lsow-button.lsow-green {
|
70 |
+
background-color: #00a57d; }
|
71 |
+
|
72 |
+
.lsow-button.lsow-green:hover {
|
73 |
+
background-color: #00bf90; }
|
74 |
+
|
75 |
+
.lsow-button.lsow-orange {
|
76 |
+
background-color: #e87151; }
|
77 |
+
|
78 |
+
.lsow-button.lsow-orange:hover {
|
79 |
+
background-color: #eb8368; }
|
80 |
+
|
81 |
+
.lsow-button.lsow-pink {
|
82 |
+
background-color: #dd5679; }
|
83 |
+
|
84 |
+
.lsow-button.lsow-pink:hover {
|
85 |
+
background-color: #e16b8a; }
|
86 |
+
|
87 |
+
.lsow-button.lsow-red {
|
88 |
+
background-color: #da4f49; }
|
89 |
+
|
90 |
+
.lsow-button.lsow-red:hover {
|
91 |
+
background-color: #de635e; }
|
92 |
+
|
93 |
+
.lsow-button.lsow-teal {
|
94 |
+
background-color: #28c2ba; }
|
95 |
+
|
96 |
+
.lsow-button.lsow-teal:hover {
|
97 |
+
background-color: #2fd4cc; }
|
98 |
+
|
99 |
+
.lsow-button.lsow-trans {
|
100 |
+
color: #333;
|
101 |
+
background-color: transparent;
|
102 |
+
/* IE */
|
103 |
+
background-color: transparent;
|
104 |
+
border: 2px solid #a5a5a5; }
|
105 |
+
.lsow-button.lsow-trans:hover {
|
106 |
+
background-color: #fff;
|
107 |
+
color: #333 !important;
|
108 |
+
border-color: #fff; }
|
109 |
+
|
110 |
+
.lsow-button.lsow-semitrans {
|
111 |
+
color: #fff;
|
112 |
+
background-color: transparent;
|
113 |
+
/* IE */
|
114 |
+
background-color: rgba(125, 125, 125, 0.5); }
|
115 |
+
.lsow-button.lsow-semitrans:hover {
|
116 |
+
background-color: #fff;
|
117 |
+
color: #333 !important; }
|
118 |
+
|
119 |
+
/*# sourceMappingURL=style.css.map */
|
includes/widgets/lsow-button-widget/css/style.css.map
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"version": 3,
|
3 |
+
"mappings": "AAGE,IAAK;EACH,UAAU,EAAE,UAAU;;AAItB,sBAEU;EACR,UAAU,EAAE,OAAO;;ACVzB,+FAAgG;EAC9F,OAAO,EAAE,YAAY;EACrB,UAAU,EAAE,MAAM;EAClB,WAAW,EAAE,CAAC;EACd,MAAM,EAAE,OAAO;EACf,kBAAkB,EAAE,IAAI;EACxB,cAAc,EAAE,MAAM;EACtB,MAAM,EAAE,qBAAqB;EAC7B,aAAa,EAAE,GAAG;EAClB,OAAO,EAAE,SAAS;EAClB,MAAM,EAAE,CAAC;EACT,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,MAAM;EACnB,cAAc,EAAE,SAAS;EACzB,cAAc,EAAE,GAAG;EACnB,gBAAgB,EAAE,OAAO;EACzB,KAAK,EAAE,OAAO;EACd,OAAO,EAAE,IAAI;ECYb,kBAAoB,EDXU,uBAAwB;ECYtD,eAAiB,EDZa,uBAAwB;ECatD,cAAgB,EDbc,uBAAwB;ECctD,UAAY,EDdkB,uBAAwB;EACtD,wTAAyB;IACvB,YAAY,EAAE,IAAI;EAEpB,wHAAK;IACH,KAAK,EAAE,IAAI;IACX,SAAS,EAAE,IAAI;IACf,cAAc,EAAE,MAAM;IACtB,WAAW,EAAE,CAAC;EAEhB,8LAAmB;IACjB,OAAO,EAAE,iBAAiB;IAC1B,cAAc,EAAE,MAAM;IACtB,SAAS,EAAE,IAAI;EAEjB,gKAAe;IACb,aAAa,EAAE,KAAK;EAEtB,sJAAa;IACX,OAAO,EAAE,SAAS;EAEpB,sJAAa;IACX,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,IAAI;EAEjB,6HAAQ;IACN,gBAAgB,EAAE,OAAO;IACzB,KAAK,EAAE,OAAO;;AAShB,uBAAgC;EAC9B,gBAAgB,EAFL,OAA4B;;AAIzC,6BAAsC;EACpC,gBAAgB,EAAE,OAAwB;;AAJ5C,sBAAgC;EAC9B,gBAAgB,EAFL,OAA4B;;AAIzC,4BAAsC;EACpC,gBAAgB,EAAE,OAAwB;;AAJ5C,sBAAgC;EAC9B,gBAAgB,EAFL,OAA4B;;AAIzC,4BAAsC;EACpC,gBAAgB,EAAE,OAAwB;;AAJ5C,uBAAgC;EAC9B,gBAAgB,EAFL,OAA4B;;AAIzC,6BAAsC;EACpC,gBAAgB,EAAE,OAAwB;;AAJ5C,wBAAgC;EAC9B,gBAAgB,EAFL,OAA4B;;AAIzC,8BAAsC;EACpC,gBAAgB,EAAE,OAAwB;;AAJ5C,sBAAgC;EAC9B,gBAAgB,EAFL,OAA4B;;AAIzC,4BAAsC;EACpC,gBAAgB,EAAE,OAAwB;;AAJ5C,qBAAgC;EAC9B,gBAAgB,EAFL,OAA4B;;AAIzC,2BAAsC;EACpC,gBAAgB,EAAE,OAAwB;;AAJ5C,sBAAgC;EAC9B,gBAAgB,EAFL,OAA4B;;AAIzC,4BAAsC;EACpC,gBAAgB,EAAE,OAAwB;;AAG9C,uBAAwB;EACtB,KAAK,EAAE,IAAI;EACX,gBAAgB,EAAE,WAAW;;EAC7B,gBAAgB,EAAE,WAAgB;EAClC,MAAM,EAAE,iBAAiB;EACzB,6BAAQ;IACN,gBAAgB,EAAE,IAAI;IACtB,KAAK,EAAE,eAAe;IACtB,YAAY,EAAE,IAAI;;AAGtB,2BAA4B;EAC1B,KAAK,EAAE,IAAI;EACX,gBAAgB,EAAE,WAAW;;EAC7B,gBAAgB,EAAE,wBAAwB;EAC1C,iCAAQ;IACN,gBAAgB,EAAE,IAAI;IACtB,KAAK,EAAE,eAAe",
|
4 |
+
"sources": ["../../../../../../bower_components/neat/app/assets/stylesheets/grid/_box-sizing.scss","style.scss","../../../../assets/css/_lsow-lib.scss"],
|
5 |
+
"names": [],
|
6 |
+
"file": "style.css"
|
7 |
+
}
|
includes/widgets/lsow-button-widget/css/style.scss
ADDED
@@ -0,0 +1,82 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@import "../../../../assets/css/lsow-lib";
|
2 |
+
input.lsow-button, button.lsow-button, a.lsow-button, .lsow-button:active, .lsow-button:visited {
|
3 |
+
display: inline-block;
|
4 |
+
text-align: center;
|
5 |
+
line-height: 1;
|
6 |
+
cursor: pointer;
|
7 |
+
-webkit-appearance: none;
|
8 |
+
vertical-align: middle;
|
9 |
+
border: 1px solid transparent;
|
10 |
+
border-radius: 3px;
|
11 |
+
padding: 16px 40px;
|
12 |
+
margin: 0;
|
13 |
+
font-size: 12px;
|
14 |
+
font-weight: normal;
|
15 |
+
text-transform: uppercase;
|
16 |
+
letter-spacing: 2px;
|
17 |
+
background-color: #f94213;
|
18 |
+
color: #fefefe;
|
19 |
+
outline: none;
|
20 |
+
@include vendorize(transition, all 0.4s ease-in-out 0s);
|
21 |
+
span, img.lsow-thumbnail {
|
22 |
+
margin-right: 15px;
|
23 |
+
}
|
24 |
+
span {
|
25 |
+
color: #fff;
|
26 |
+
font-size: 32px;
|
27 |
+
vertical-align: middle;
|
28 |
+
line-height: 1;
|
29 |
+
}
|
30 |
+
img.lsow-thumbnail {
|
31 |
+
display: inline !important;
|
32 |
+
vertical-align: middle;
|
33 |
+
max-width: 50px;
|
34 |
+
}
|
35 |
+
&.lsow-rounded {
|
36 |
+
border-radius: 999px;
|
37 |
+
}
|
38 |
+
&.lsow-large {
|
39 |
+
padding: 20px 60px;
|
40 |
+
}
|
41 |
+
&.lsow-small {
|
42 |
+
padding: 12px 25px;
|
43 |
+
font-size: 11px;
|
44 |
+
}
|
45 |
+
&:hover {
|
46 |
+
background-color: #f9633e;
|
47 |
+
color: #fefefe;
|
48 |
+
}
|
49 |
+
}
|
50 |
+
$skin-names: ("black", "blue", "cyan", "green", "orange", "pink", "red", "teal");
|
51 |
+
$color-collection: (#363636, #46a5d5, #57c0dc, #00a57d, #e87151, #dd5679, #da4f49, #28c2ba);
|
52 |
+
|
53 |
+
@for $i from 0 to length($skin-names) {
|
54 |
+
$skin-name: nth($skin-names, $i+1);
|
55 |
+
$skin-color: nth($color-collection, $i+1);
|
56 |
+
.lsow-button.lsow-#{$skin-name} {
|
57 |
+
background-color: $skin-color;
|
58 |
+
}
|
59 |
+
.lsow-button.lsow-#{$skin-name}:hover {
|
60 |
+
background-color: lighten($skin-color, 5%);
|
61 |
+
}
|
62 |
+
}
|
63 |
+
.lsow-button.lsow-trans {
|
64 |
+
color: #333;
|
65 |
+
background-color: transparent; /* IE */
|
66 |
+
background-color: rgba(0, 0, 0, 0);
|
67 |
+
border: 2px solid #a5a5a5;
|
68 |
+
&:hover {
|
69 |
+
background-color: #fff;
|
70 |
+
color: #333 !important;
|
71 |
+
border-color: #fff;
|
72 |
+
}
|
73 |
+
}
|
74 |
+
.lsow-button.lsow-semitrans {
|
75 |
+
color: #fff;
|
76 |
+
background-color: transparent; /* IE */
|
77 |
+
background-color: rgba(125, 125, 125, 0.5);
|
78 |
+
&:hover {
|
79 |
+
background-color: #fff;
|
80 |
+
color: #333 !important;
|
81 |
+
}
|
82 |
+
}
|
includes/widgets/lsow-button-widget/lsow-button-widget.php
ADDED
@@ -0,0 +1,246 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/*
|
4 |
+
Widget Name: Livemesh Button
|
5 |
+
Description: Flat style buttons with rich set of customization options.
|
6 |
+
Author: LiveMesh
|
7 |
+
Author URI: http://portfoliotheme.org
|
8 |
+
*/
|
9 |
+
|
10 |
+
|
11 |
+
class LSOW_Button_Widget extends SiteOrigin_Widget {
|
12 |
+
|
13 |
+
/**
|
14 |
+
* Holds the ID for the button element used for generating custom CSS.
|
15 |
+
*/
|
16 |
+
private $button_id = '';
|
17 |
+
|
18 |
+
function __construct() {
|
19 |
+
parent::__construct(
|
20 |
+
"lsow-button",
|
21 |
+
__("Livemesh Button", "livemesh-so-widgets"),
|
22 |
+
array(
|
23 |
+
"description" => __("Flat style buttons with rich set of customization options.", "livemesh-so-widgets"),
|
24 |
+
"panels_icon" => "dashicons dashicons-minus",
|
25 |
+
),
|
26 |
+
array(),
|
27 |
+
array(
|
28 |
+
"widget_title" => array(
|
29 |
+
"type" => "text",
|
30 |
+
"label" => __("Title", "livemesh-so-widgets"),
|
31 |
+
),
|
32 |
+
|
33 |
+
"href" => array(
|
34 |
+
"type" => "link",
|
35 |
+
"description" => __("The URL to which button should point to.", "livemesh-so-widgets"),
|
36 |
+
"label" => __("Target URL", "livemesh-so-widgets"),
|
37 |
+
"default" => __("http://targeturl.com", "livemesh-so-widgets"),
|
38 |
+
),
|
39 |
+
"text" => array(
|
40 |
+
"type" => "text",
|
41 |
+
"description" => __("The button title or text. ", "livemesh-so-widgets"),
|
42 |
+
"label" => __("Button Text", "livemesh-so-widgets"),
|
43 |
+
"default" => __("Buy Now", "livemesh-so-widgets"),
|
44 |
+
),
|
45 |
+
|
46 |
+
'icon_type' => array(
|
47 |
+
'type' => 'select',
|
48 |
+
'label' => __('Choose Icon Type', 'livemesh-so-widgets'),
|
49 |
+
'default' => 'none',
|
50 |
+
'state_emitter' => array(
|
51 |
+
'callback' => 'select',
|
52 |
+
'args' => array('icon_type')
|
53 |
+
),
|
54 |
+
'options' => array(
|
55 |
+
'none' => __('None', 'livemesh-so-widgets'),
|
56 |
+
'icon' => __('Icon', 'livemesh-so-widgets'),
|
57 |
+
'icon_image' => __('Icon Image', 'livemesh-so-widgets'),
|
58 |
+
)
|
59 |
+
),
|
60 |
+
|
61 |
+
'icon_image' => array(
|
62 |
+
'type' => 'media',
|
63 |
+
'label' => __('Service Image.', 'livemesh-so-widgets'),
|
64 |
+
'state_handler' => array(
|
65 |
+
'icon_type[icon_image]' => array('show'),
|
66 |
+
'_else[icon_type]' => array('hide'),
|
67 |
+
),
|
68 |
+
),
|
69 |
+
|
70 |
+
'icon' => array(
|
71 |
+
'type' => 'icon',
|
72 |
+
'label' => __('Service Icon.', 'livemesh-so-widgets'),
|
73 |
+
'state_handler' => array(
|
74 |
+
'icon_type[icon]' => array('show'),
|
75 |
+
'_else[icon_type]' => array('hide'),
|
76 |
+
),
|
77 |
+
),
|
78 |
+
|
79 |
+
|
80 |
+
'settings' => array(
|
81 |
+
'type' => 'section',
|
82 |
+
'label' => __('Settings', 'livemesh-so-widgets'),
|
83 |
+
'fields' => array(
|
84 |
+
|
85 |
+
"class" => array(
|
86 |
+
"type" => "text",
|
87 |
+
"description" => __("The CSS class name for the button element.", "livemesh-so-widgets"),
|
88 |
+
"label" => __("Class", "livemesh-so-widgets"),
|
89 |
+
"default" => "",
|
90 |
+
"optional" => "true"
|
91 |
+
),
|
92 |
+
"style" => array(
|
93 |
+
"type" => "text",
|
94 |
+
"description" => __("Inline CSS styling for the button element.", "livemesh-so-widgets"),
|
95 |
+
"label" => __("Style", "livemesh-so-widgets"),
|
96 |
+
"optional" => "true"
|
97 |
+
),
|
98 |
+
"color" => array(
|
99 |
+
"type" => "select",
|
100 |
+
"description" => __("The color of the button.", "livemesh-so-widgets"),
|
101 |
+
"label" => __("Color", "livemesh-so-widgets"),
|
102 |
+
"options" => array(
|
103 |
+
"custom" => __("Custom", "livemesh-so-widgets"),
|
104 |
+
"black" => __("Black", "livemesh-so-widgets"),
|
105 |
+
"blue" => __("Blue", "livemesh-so-widgets"),
|
106 |
+
"cyan" => __("Cyan", "livemesh-so-widgets"),
|
107 |
+
"green" => __("Green", "livemesh-so-widgets"),
|
108 |
+
"orange" => __("Orange", "livemesh-so-widgets"),
|
109 |
+
"pink" => __("Pink", "livemesh-so-widgets"),
|
110 |
+
"red" => __("Red", "livemesh-so-widgets"),
|
111 |
+
"teal" => __("Teal", "livemesh-so-widgets"),
|
112 |
+
"trans" => __("Transparent", "livemesh-so-widgets"),
|
113 |
+
"semitrans" => __("Semi Transparent", "livemesh-so-widgets"),
|
114 |
+
),
|
115 |
+
'state_emitter' => array(
|
116 |
+
'callback' => 'select',
|
117 |
+
'args' => array('color')
|
118 |
+
),
|
119 |
+
'default' => 'custom'
|
120 |
+
),
|
121 |
+
"custom_color" => array(
|
122 |
+
"type" => "color",
|
123 |
+
"description" => __("Custom color of the button.", "livemesh-so-widgets"),
|
124 |
+
"label" => __("Custom button color", "livemesh-so-widgets"),
|
125 |
+
'state_handler' => array(
|
126 |
+
'color[custom]' => array('show'),
|
127 |
+
'_else[color]' => array('hide'),
|
128 |
+
),
|
129 |
+
"default" => "#f94213"
|
130 |
+
),
|
131 |
+
"hover_color" => array(
|
132 |
+
"type" => "color",
|
133 |
+
"description" => __("Hover color of the button.", "livemesh-so-widgets"),
|
134 |
+
"label" => __("Custom button hover color", "livemesh-so-widgets"),
|
135 |
+
"optional" => "true"
|
136 |
+
),
|
137 |
+
"type" => array(
|
138 |
+
"type" => "select",
|
139 |
+
"label" => __("Button Size", "livemesh-so-widgets"),
|
140 |
+
"options" => array(
|
141 |
+
"medium" => __("Medium", "livemesh-so-widgets"),
|
142 |
+
"large" => __("Large", "livemesh-so-widgets"),
|
143 |
+
"small" => __("Small", "livemesh-so-widgets"),
|
144 |
+
)
|
145 |
+
),
|
146 |
+
|
147 |
+
'rounded' => array(
|
148 |
+
'type' => 'checkbox',
|
149 |
+
'label' => __('Display rounded button?', 'livemesh-so-widgets'),
|
150 |
+
'default' => false
|
151 |
+
),
|
152 |
+
"target" => array(
|
153 |
+
"type" => "checkbox",
|
154 |
+
"label" => __("Open the link in new window", "livemesh-so-widgets"),
|
155 |
+
"default" => true,
|
156 |
+
),
|
157 |
+
"align" => array(
|
158 |
+
"type" => "select",
|
159 |
+
"description" => __("Alignment of the button displayed.", "livemesh-so-widgets"),
|
160 |
+
"label" => __("Align", "livemesh-so-widgets"),
|
161 |
+
"options" => array(
|
162 |
+
"none" => __("None", "livemesh-so-widgets"),
|
163 |
+
"center" => __("Center", "livemesh-so-widgets"),
|
164 |
+
"left" => __("Left", "livemesh-so-widgets"),
|
165 |
+
"right" => __("Right", "livemesh-so-widgets"),
|
166 |
+
),
|
167 |
+
'default' => 'none'
|
168 |
+
),
|
169 |
+
)
|
170 |
+
),
|
171 |
+
)
|
172 |
+
);
|
173 |
+
}
|
174 |
+
|
175 |
+
function enqueue_frontend_scripts($instance) {
|
176 |
+
|
177 |
+
wp_enqueue_style('lsow-button', siteorigin_widget_get_plugin_dir_url('lsow-button') . 'css/style.css', array(), LSOW_VERSION);
|
178 |
+
|
179 |
+
$custom_css = $this->custom_css($instance);
|
180 |
+
if (!empty($custom_css))
|
181 |
+
wp_add_inline_style('lsow-button', $custom_css);
|
182 |
+
|
183 |
+
parent::enqueue_frontend_scripts($instance);
|
184 |
+
}
|
185 |
+
|
186 |
+
/**
|
187 |
+
* Generate the custom layout CSS required
|
188 |
+
*/
|
189 |
+
protected function custom_css($instance) {
|
190 |
+
|
191 |
+
$custom_css = '';
|
192 |
+
|
193 |
+
$this->button_id = uniqid('lsow-button-');
|
194 |
+
|
195 |
+
$id_selector = '#' . $this->button_id;
|
196 |
+
|
197 |
+
$button_color = $instance['settings']["color"];
|
198 |
+
|
199 |
+
$custom_color = $instance['settings']["custom_color"];
|
200 |
+
|
201 |
+
$hover_color = $instance['settings']["hover_color"];
|
202 |
+
|
203 |
+
if ($button_color == "custom") {
|
204 |
+
if (!empty($custom_color)) {
|
205 |
+
|
206 |
+
$custom_css .= $id_selector . '.lsow-button { background-color:' . $custom_color . '; }' . "\n";
|
207 |
+
|
208 |
+
// Automatically set a hover color for custom color if none specified by user
|
209 |
+
if (empty($hover_color)) {
|
210 |
+
$hover_color = lsow_color_luminance($custom_color, 0.05);
|
211 |
+
}
|
212 |
+
}
|
213 |
+
}
|
214 |
+
|
215 |
+
// Apply the hover color for button of any color provided one is specified
|
216 |
+
if (!empty($hover_color)) {
|
217 |
+
$custom_css .= $id_selector . '.lsow-button:hover { background-color:' . $hover_color . '; }';
|
218 |
+
}
|
219 |
+
|
220 |
+
return $custom_css;
|
221 |
+
}
|
222 |
+
|
223 |
+
function get_template_variables($instance, $args) {
|
224 |
+
return array(
|
225 |
+
"id" => $this->button_id,
|
226 |
+
"style" => $instance['settings']["style"],
|
227 |
+
"class" => $instance['settings']["class"],
|
228 |
+
"color" => $instance['settings']["color"],
|
229 |
+
"custom_color" => $instance['settings']["custom_color"],
|
230 |
+
"hover_color" => $instance['settings']["hover_color"],
|
231 |
+
"type" => $instance['settings']["type"],
|
232 |
+
"align" => $instance['settings']["align"],
|
233 |
+
"target" => $instance['settings']["target"],
|
234 |
+
"rounded" => $instance['settings']["rounded"],
|
235 |
+
"href" => (!empty($instance['href'])) ? sow_esc_url($instance['href']) : '',
|
236 |
+
"text" => $instance["text"],
|
237 |
+
'icon_type' => $instance['icon_type'],
|
238 |
+
'icon_image' => $instance['icon_image'],
|
239 |
+
'icon' => $instance['icon'],
|
240 |
+
'settings' => $instance['settings']
|
241 |
+
);
|
242 |
+
}
|
243 |
+
|
244 |
+
}
|
245 |
+
|
246 |
+
siteorigin_widget_register("lsow-button", __FILE__, "LSOW_Button_Widget");
|
includes/widgets/lsow-button-widget/tpl/default.php
ADDED
@@ -0,0 +1,59 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @var $id
|
4 |
+
* @var $style
|
5 |
+
* @var $class
|
6 |
+
* @var $color
|
7 |
+
* @var $custom_color
|
8 |
+
* @var $hover_color
|
9 |
+
* @var $type
|
10 |
+
* @var $rounded
|
11 |
+
* @var $href
|
12 |
+
* @var $align
|
13 |
+
* @var $target
|
14 |
+
* @var $text
|
15 |
+
* @var $icon_type
|
16 |
+
* @var $icon_image
|
17 |
+
* @var $icon
|
18 |
+
* @var $settings
|
19 |
+
*/
|
20 |
+
|
21 |
+
$icon_html = '';
|
22 |
+
|
23 |
+
$id = (!empty($id)) ? ' id="' . $id . '"' : '';
|
24 |
+
|
25 |
+
$class = (!empty($class)) ? ' ' . $class : '';
|
26 |
+
|
27 |
+
$color_class = ' lsow-' . esc_attr($color);
|
28 |
+
if (!empty($type))
|
29 |
+
$type = ' lsow-' . esc_attr($type);
|
30 |
+
|
31 |
+
$rounded = (!empty($rounded)) ? ' lsow-rounded' : '';
|
32 |
+
|
33 |
+
if (!empty($target))
|
34 |
+
$target = ' target="_blank"';
|
35 |
+
else
|
36 |
+
$target = '';
|
37 |
+
|
38 |
+
if ($color == 'custom' && empty($custom_color)) {
|
39 |
+
$custom_color = '#f94213'; // default button color if none set in theme options
|
40 |
+
}
|
41 |
+
|
42 |
+
$style = ($style) ? ' style="' . esc_attr($style) . '"' : '';
|
43 |
+
|
44 |
+
// Use the custom color only if user wants to use the custom color set
|
45 |
+
$color_attr = ($color == 'custom') ? ' data-color=' . esc_html($custom_color) : '';
|
46 |
+
|
47 |
+
$hover_color_attr = ($hover_color) ? ' data-hover-color=' . esc_html($hover_color) : '';
|
48 |
+
|
49 |
+
if ($icon_type == 'icon_image')
|
50 |
+
$icon_html = wp_get_attachment_image($icon_image, 'thumbnail', false, array('class' => 'lsow-image lsow-thumbnail'));
|
51 |
+
elseif ($icon_type == 'icon')
|
52 |
+
$icon_html = siteorigin_widget_get_icon($icon);
|
53 |
+
|
54 |
+
$button_content = '<a' . $id . ' class= "lsow-button ' . ((!empty($icon_html)) ? ' lsow-with-icon' : '') . esc_attr($class) . $color_class . $type . $rounded . '"' . $style . $color_attr . $hover_color_attr . ' href="' . esc_url($href) . '"' . esc_html($target) . '>' . $icon_html . esc_html($text) . '</a>';
|
55 |
+
|
56 |
+
if ($align != 'none')
|
57 |
+
$button_content = '<div class="lsow-button-wrap" style="text-align:' . esc_attr($align) . ';float:' . esc_attr($align) . ';">' . $button_content . '</div>';
|
58 |
+
|
59 |
+
echo $button_content;
|
includes/widgets/lsow-carousel-widget/lsow-carousel-widget.php
CHANGED
@@ -18,7 +18,7 @@ class LSOW_Carousel_Widget extends SiteOrigin_Widget {
|
|
18 |
array(
|
19 |
'description' => __('Display a collection of html elements as a carousel.', 'livemesh-so-widgets'),
|
20 |
'panels_icon' => 'dashicons dashicons-minus',
|
21 |
-
'help' => 'http://portfoliotheme.org/widgets
|
22 |
),
|
23 |
array(),
|
24 |
array(
|
18 |
array(
|
19 |
'description' => __('Display a collection of html elements as a carousel.', 'livemesh-so-widgets'),
|
20 |
'panels_icon' => 'dashicons dashicons-minus',
|
21 |
+
'help' => 'http://portfoliotheme.org/siteorigin-widgets/carousel-widget-documentation/'
|
22 |
),
|
23 |
array(),
|
24 |
array(
|
includes/widgets/lsow-clients-widget/lsow-clients-widget.php
CHANGED
@@ -16,7 +16,7 @@ class LSOW_Client_Widget extends SiteOrigin_Widget {
|
|
16 |
array(
|
17 |
'description' => __('Display one or more clients in a multi-column grid.', 'livemesh-so-widgets'),
|
18 |
'panels_icon' => 'dashicons dashicons-minus',
|
19 |
-
'help' => 'http://portfoliotheme.org/widgets
|
20 |
),
|
21 |
array(),
|
22 |
array(
|
16 |
array(
|
17 |
'description' => __('Display one or more clients in a multi-column grid.', 'livemesh-so-widgets'),
|
18 |
'panels_icon' => 'dashicons dashicons-minus',
|
19 |
+
'help' => 'http://portfoliotheme.org/siteorigin-widgets/odometer-widget-documentation/'
|
20 |
),
|
21 |
array(),
|
22 |
array(
|
includes/widgets/lsow-clients-widget/tpl/default.php
CHANGED
@@ -1,6 +1,7 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
* @var $clients
|
|
|
4 |
*/
|
5 |
|
6 |
?>
|
@@ -23,7 +24,7 @@
|
|
23 |
|
24 |
<?php if (!empty($client['link'])): ?>
|
25 |
|
26 |
-
<a href="<?php echo
|
27 |
|
28 |
<?php else: ?>
|
29 |
|
1 |
<?php
|
2 |
/**
|
3 |
* @var $clients
|
4 |
+
* @var $settings
|
5 |
*/
|
6 |
|
7 |
?>
|
24 |
|
25 |
<?php if (!empty($client['link'])): ?>
|
26 |
|
27 |
+
<a href="<?php echo sow_esc_url($client['link']); ?>" title="<?php echo esc_html($client['name']); ?>" target="_blank"><?php echo esc_html($client['name']); ?></a>
|
28 |
|
29 |
<?php else: ?>
|
30 |
|
includes/widgets/lsow-heading-widget/css/style.css
CHANGED
@@ -6,67 +6,68 @@ html {
|
|
6 |
|
7 |
.lsow-heading {
|
8 |
text-align: center;
|
9 |
-
margin: 0 auto 60px;
|
|
|
10 |
@media only screen and (max-width: 767px) {
|
11 |
.lsow-heading {
|
12 |
margin-bottom: 40px; } }
|
13 |
.lsow-heading .lsow-text {
|
14 |
font-size: 18px;
|
15 |
line-height: 28px;
|
16 |
-
max-width: 600px;
|
17 |
margin: 0 auto; }
|
18 |
@media only screen and (max-width: 767px) {
|
19 |
.lsow-heading .lsow-text {
|
20 |
font-size: 15px;
|
21 |
line-height: 26px; } }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
22 |
|
23 |
-
.lsow-heading
|
24 |
font-weight: 700;
|
25 |
font-size: 32px;
|
26 |
line-height: 42px;
|
27 |
margin: 0 auto 20px;
|
28 |
-
max-width: 640px;
|
29 |
color: #333;
|
30 |
font-weight: bold; }
|
31 |
@media only screen and (max-width: 767px) {
|
32 |
-
.lsow-heading
|
33 |
font-size: 24px;
|
34 |
line-height: 32px; } }
|
35 |
-
.lsow-dark-bg .lsow-heading
|
36 |
color: #e5e5e5; }
|
37 |
-
.lsow-dark-bg .lsow-heading
|
38 |
-
color: #
|
39 |
-
.lsow-dark-bg .lsow-heading
|
40 |
color: #909090; }
|
|
|
|
|
41 |
|
42 |
-
.lsow-heading
|
43 |
margin: 0 auto 5px;
|
44 |
-
max-width: 700px;
|
45 |
color: #888;
|
46 |
font-size: 12px;
|
47 |
line-height: 20px;
|
48 |
text-transform: uppercase;
|
49 |
font-weight: 600;
|
50 |
-
letter-spacing:
|
51 |
position: relative;
|
52 |
display: inline-block;
|
53 |
padding: 0 10px; }
|
54 |
-
.lsow-heading.lsow-style2 .lsow-subtitle:before {
|
55 |
-
display: block;
|
56 |
-
content: '_';
|
57 |
-
position: absolute;
|
58 |
-
left: 0;
|
59 |
-
top: -5px; }
|
60 |
-
.lsow-heading.lsow-style2 .lsow-subtitle:after {
|
61 |
-
display: block;
|
62 |
-
content: '_';
|
63 |
-
position: absolute;
|
64 |
-
right: 0;
|
65 |
-
top: -5px; }
|
66 |
@media only screen and (max-width: 767px) {
|
67 |
-
.lsow-heading
|
68 |
font-size: 11px;
|
69 |
line-height: 18px; } }
|
|
|
|
|
|
|
|
|
|
|
70 |
|
71 |
.lsow-heading.lsow-style3 {
|
72 |
margin: 0 auto 30px; }
|
@@ -89,5 +90,9 @@ html {
|
|
89 |
.lsow-heading.lsow-style3 .lsow-title {
|
90 |
font-size: 16px;
|
91 |
line-height: 24px; } }
|
|
|
|
|
|
|
|
|
92 |
|
93 |
/*# sourceMappingURL=style.css.map */
|
6 |
|
7 |
.lsow-heading {
|
8 |
text-align: center;
|
9 |
+
margin: 0 auto 60px;
|
10 |
+
max-width: 640px; }
|
11 |
@media only screen and (max-width: 767px) {
|
12 |
.lsow-heading {
|
13 |
margin-bottom: 40px; } }
|
14 |
.lsow-heading .lsow-text {
|
15 |
font-size: 18px;
|
16 |
line-height: 28px;
|
|
|
17 |
margin: 0 auto; }
|
18 |
@media only screen and (max-width: 767px) {
|
19 |
.lsow-heading .lsow-text {
|
20 |
font-size: 15px;
|
21 |
line-height: 26px; } }
|
22 |
+
.lsow-heading.lsow-alignleft, .lsow-heading.lsow-alignright {
|
23 |
+
margin: 0; }
|
24 |
+
.lsow-heading.lsow-alignleft .lsow-text, .lsow-heading.lsow-alignright .lsow-text {
|
25 |
+
margin: 0; }
|
26 |
+
.lsow-heading.lsow-alignleft {
|
27 |
+
text-align: left; }
|
28 |
+
.lsow-heading.lsow-alignright {
|
29 |
+
text-align: right; }
|
30 |
|
31 |
+
.lsow-heading .lsow-title {
|
32 |
font-weight: 700;
|
33 |
font-size: 32px;
|
34 |
line-height: 42px;
|
35 |
margin: 0 auto 20px;
|
|
|
36 |
color: #333;
|
37 |
font-weight: bold; }
|
38 |
@media only screen and (max-width: 767px) {
|
39 |
+
.lsow-heading .lsow-title {
|
40 |
font-size: 24px;
|
41 |
line-height: 32px; } }
|
42 |
+
.lsow-dark-bg .lsow-heading .lsow-title {
|
43 |
color: #e5e5e5; }
|
44 |
+
.lsow-dark-bg .lsow-heading .lsow-subtitle {
|
45 |
+
color: #B0B0B0; }
|
46 |
+
.lsow-dark-bg .lsow-heading .lsow-text {
|
47 |
color: #909090; }
|
48 |
+
.lsow-heading.lsow-alignleft .lsow-title, .lsow-heading.lsow-alignright .lsow-title {
|
49 |
+
margin: 0 0 20px; }
|
50 |
|
51 |
+
.lsow-heading .lsow-subtitle {
|
52 |
margin: 0 auto 5px;
|
|
|
53 |
color: #888;
|
54 |
font-size: 12px;
|
55 |
line-height: 20px;
|
56 |
text-transform: uppercase;
|
57 |
font-weight: 600;
|
58 |
+
letter-spacing: 2px;
|
59 |
position: relative;
|
60 |
display: inline-block;
|
61 |
padding: 0 10px; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
62 |
@media only screen and (max-width: 767px) {
|
63 |
+
.lsow-heading .lsow-subtitle {
|
64 |
font-size: 11px;
|
65 |
line-height: 18px; } }
|
66 |
+
.lsow-heading.lsow-alignleft .lsow-subtitle, .lsow-heading.lsow-alignright .lsow-subtitle {
|
67 |
+
margin: 0 0 5px;
|
68 |
+
padding: 0; }
|
69 |
+
.lsow-heading.lsow-alignleft .lsow-subtitle:before, .lsow-heading.lsow-alignleft .lsow-subtitle:after, .lsow-heading.lsow-alignright .lsow-subtitle:before, .lsow-heading.lsow-alignright .lsow-subtitle:after {
|
70 |
+
display: none; }
|
71 |
|
72 |
.lsow-heading.lsow-style3 {
|
73 |
margin: 0 auto 30px; }
|
90 |
.lsow-heading.lsow-style3 .lsow-title {
|
91 |
font-size: 16px;
|
92 |
line-height: 24px; } }
|
93 |
+
.lsow-heading.lsow-style3.lsow-alignleft, .lsow-heading.lsow-style3.lsow-alignright {
|
94 |
+
margin: 0 0 30px; }
|
95 |
+
.lsow-heading.lsow-style3.lsow-alignleft .lsow-title:after, .lsow-heading.lsow-style3.lsow-alignright .lsow-title:after {
|
96 |
+
margin: 10px 0 20px; }
|
97 |
|
98 |
/*# sourceMappingURL=style.css.map */
|
includes/widgets/lsow-heading-widget/css/style.css.map
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
{
|
2 |
"version": 3,
|
3 |
-
"mappings": "AAGE,IAAK;EACH,UAAU,EAAE,UAAU;;AAItB,sBAEU;EACR,UAAU,EAAE,OAAO;;ACRzB,aAAc;EACZ,UAAU,EAAE,MAAM;EAClB,MAAM,EAAE,WAAW;
|
4 |
"sources": ["../../../../../../bower_components/neat/app/assets/stylesheets/grid/_box-sizing.scss","style.scss","../../../../assets/css/_lsow-lib.scss"],
|
5 |
"names": [],
|
6 |
"file": "style.css"
|
1 |
{
|
2 |
"version": 3,
|
3 |
+
"mappings": "AAGE,IAAK;EACH,UAAU,EAAE,UAAU;;AAItB,sBAEU;EACR,UAAU,EAAE,OAAO;;ACRzB,aAAc;EACZ,UAAU,EAAE,MAAM;EAClB,MAAM,EAAE,WAAW;EACnB,SAAS,EAAE,KAAK;EC0DhB,yCAA8C;ID7DhD,aAAc;MAKV,aAAa,EAAE,IAAI;EAErB,wBAAW;IACT,SAAS,EAAE,IAAI;IACf,WAAW,EAAE,IAAI;IACjB,MAAM,EAAE,MAAM;ICmDhB,yCAA8C;MDtD9C,wBAAW;QAKP,SAAS,EAAE,IAAI;QACf,WAAW,EAAE,IAAI;EAGrB,2DAAoC;IAClC,MAAM,EAAE,CAAC;IACT,iFAAW;MACT,MAAM,EAAE,CAAC;EAGb,4BAAiB;IACf,UAAU,EAAE,IAAI;EAElB,6BAAkB;IAChB,UAAU,EAAE,KAAK;;AAKnB,yBAAY;EACV,WAAW,EAAE,GAAG;EAChB,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,IAAI;EACjB,MAAM,EAAE,WAAW;EACnB,KAAK,EAAE,IAAI;EACX,WAAW,EAAE,IAAI;ECwBnB,yCAA8C;ID9B9C,yBAAY;MAQR,SAAS,EAAE,IAAI;MACf,WAAW,EAAE,IAAI;AAInB,uCAAY;EACV,KAAK,EAAE,OAAO;AAEhB,0CAAe;EACb,KAAK,EAAE,OAAO;AAEhB,sCAAW;EACT,KAAK,EAAE,OAAO;AAKhB,mFAAY;EACV,MAAM,EAAE,QAAQ;;AASpB,4BAAe;EACb,MAAM,EAAE,UAAU;EAClB,KAAK,EAAE,IAAI;EACX,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,IAAI;EACjB,cAAc,EAAE,SAAS;EACzB,WAAW,EAAE,GAAG;EAChB,cAAc,EAAE,GAAG;EACnB,QAAQ,EAAE,QAAQ;EAClB,OAAO,EAAE,YAAY;EACrB,OAAO,EAAE,MAAM;ECfjB,yCAA8C;IDK9C,4BAAe;MAYX,SAAS,EAAE,IAAI;MACf,WAAW,EAAE,IAAI;AAInB,yFAAe;EACb,MAAM,EAAE,OAAO;EACf,OAAO,EAAE,CAAC;EACV,8MAAkB;IAChB,OAAO,EAAE,IAAI;;AAOrB,yBAA0B;EACxB,MAAM,EAAE,WAAW;EACnB,qCAAY;IACV,SAAS,EAAE,IAAI;IACf,WAAW,EAAE,IAAI;IACjB,cAAc,EAAE,SAAS;IACzB,cAAc,EAAE,GAAG;ICxBrB,2CAAQ;MACN,KAAK,EAAE,IAAW;MAClB,MAAM,EAAE,GAAY;MACpB,UAAU,EDsBkB,IAAI;MCrBhC,OAAO,EAAE,KAAK;MACd,OAAO,EAAE,EAAE;IDqBX,2CAAQ;MACN,MAAM,EAAE,cAAc;MACtB,yDAAgB;QACd,UAAU,EAAE,OAAO;IC5CzB,yCAA8C;MDmC9C,qCAAY;QAaR,SAAS,EAAE,IAAI;QACf,WAAW,EAAE,IAAI;EAIrB,mFAAoC;IAClC,MAAM,EAAE,QAAQ;IAChB,uHAAkB;MAChB,MAAM,EAAE,WAAW",
|
4 |
"sources": ["../../../../../../bower_components/neat/app/assets/stylesheets/grid/_box-sizing.scss","style.scss","../../../../assets/css/_lsow-lib.scss"],
|
5 |
"names": [],
|
6 |
"file": "style.css"
|
includes/widgets/lsow-heading-widget/css/style.scss
CHANGED
@@ -4,28 +4,39 @@
|
|
4 |
.lsow-heading {
|
5 |
text-align: center;
|
6 |
margin: 0 auto 60px;
|
|
|
7 |
@include respond-to-max(767) {
|
8 |
margin-bottom: 40px;
|
9 |
}
|
10 |
.lsow-text {
|
11 |
font-size: 18px;
|
12 |
line-height: 28px;
|
13 |
-
max-width: 600px;
|
14 |
margin: 0 auto;
|
15 |
@include respond-to-max(767) {
|
16 |
font-size: 15px;
|
17 |
line-height: 26px;
|
18 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
}
|
20 |
-
}
|
21 |
|
22 |
-
.lsow-heading
|
23 |
.lsow-title {
|
24 |
font-weight: 700;
|
25 |
font-size: 32px;
|
26 |
line-height: 42px;
|
27 |
margin: 0 auto 20px;
|
28 |
-
max-width: 640px;
|
29 |
color: #333;
|
30 |
font-weight: bold;
|
31 |
@include respond-to-max(767) {
|
@@ -33,59 +44,59 @@
|
|
33 |
line-height: 32px;
|
34 |
}
|
35 |
}
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
}
|
40 |
-
|
41 |
-
|
42 |
}
|
43 |
-
|
44 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
45 |
}
|
46 |
}
|
47 |
}
|
48 |
|
49 |
|
50 |
|
51 |
-
.lsow-heading
|
52 |
|
53 |
.lsow-subtitle {
|
54 |
margin: 0 auto 5px;
|
55 |
-
max-width: 700px;
|
56 |
color: #888;
|
57 |
font-size: 12px;
|
58 |
line-height: 20px;
|
59 |
text-transform: uppercase;
|
60 |
font-weight: 600;
|
61 |
-
letter-spacing:
|
62 |
position: relative;
|
63 |
display: inline-block;
|
64 |
padding: 0 10px;
|
65 |
-
&:before {
|
66 |
-
display: block;
|
67 |
-
content: '_';
|
68 |
-
position: absolute;
|
69 |
-
left: 0;
|
70 |
-
top: -5px;
|
71 |
-
}
|
72 |
-
&:after {
|
73 |
-
display: block;
|
74 |
-
content: '_';
|
75 |
-
position: absolute;
|
76 |
-
right: 0;
|
77 |
-
top: -5px;
|
78 |
-
}
|
79 |
@include respond-to-max(767) {
|
80 |
font-size: 11px;
|
81 |
line-height: 18px;
|
82 |
}
|
83 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
84 |
}
|
85 |
|
86 |
|
87 |
.lsow-heading.lsow-style3 {
|
88 |
-
|
89 |
.lsow-title {
|
90 |
font-size: 22px;
|
91 |
line-height: 32px;
|
@@ -96,12 +107,19 @@
|
|
96 |
margin: 10px auto 20px;
|
97 |
.lsow-dark-bg & {
|
98 |
background: #909090;
|
|
|
99 |
}
|
100 |
-
}
|
101 |
@include respond-to-max(767) {
|
102 |
font-size: 16px;
|
103 |
line-height: 24px;
|
104 |
}
|
105 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
106 |
}
|
107 |
|
4 |
.lsow-heading {
|
5 |
text-align: center;
|
6 |
margin: 0 auto 60px;
|
7 |
+
max-width: 640px;
|
8 |
@include respond-to-max(767) {
|
9 |
margin-bottom: 40px;
|
10 |
}
|
11 |
.lsow-text {
|
12 |
font-size: 18px;
|
13 |
line-height: 28px;
|
|
|
14 |
margin: 0 auto;
|
15 |
@include respond-to-max(767) {
|
16 |
font-size: 15px;
|
17 |
line-height: 26px;
|
18 |
}
|
19 |
+
}
|
20 |
+
&.lsow-alignleft, &.lsow-alignright {
|
21 |
+
margin: 0;
|
22 |
+
.lsow-text {
|
23 |
+
margin: 0;
|
24 |
+
}
|
25 |
+
}
|
26 |
+
&.lsow-alignleft {
|
27 |
+
text-align: left;
|
28 |
+
}
|
29 |
+
&.lsow-alignright {
|
30 |
+
text-align: right;
|
31 |
+
}
|
32 |
}
|
|
|
33 |
|
34 |
+
.lsow-heading {
|
35 |
.lsow-title {
|
36 |
font-weight: 700;
|
37 |
font-size: 32px;
|
38 |
line-height: 42px;
|
39 |
margin: 0 auto 20px;
|
|
|
40 |
color: #333;
|
41 |
font-weight: bold;
|
42 |
@include respond-to-max(767) {
|
44 |
line-height: 32px;
|
45 |
}
|
46 |
}
|
47 |
+
.lsow-dark-bg & {
|
48 |
+
.lsow-title {
|
49 |
+
color: #e5e5e5;
|
50 |
}
|
51 |
+
.lsow-subtitle {
|
52 |
+
color: #B0B0B0;
|
53 |
}
|
54 |
+
.lsow-text {
|
55 |
+
color: #909090;
|
56 |
+
}
|
57 |
+
}
|
58 |
+
|
59 |
+
&.lsow-alignleft, &.lsow-alignright {
|
60 |
+
.lsow-title {
|
61 |
+
margin: 0 0 20px;
|
62 |
}
|
63 |
}
|
64 |
}
|
65 |
|
66 |
|
67 |
|
68 |
+
.lsow-heading {
|
69 |
|
70 |
.lsow-subtitle {
|
71 |
margin: 0 auto 5px;
|
|
|
72 |
color: #888;
|
73 |
font-size: 12px;
|
74 |
line-height: 20px;
|
75 |
text-transform: uppercase;
|
76 |
font-weight: 600;
|
77 |
+
letter-spacing: 2px;
|
78 |
position: relative;
|
79 |
display: inline-block;
|
80 |
padding: 0 10px;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
81 |
@include respond-to-max(767) {
|
82 |
font-size: 11px;
|
83 |
line-height: 18px;
|
84 |
}
|
85 |
}
|
86 |
+
&.lsow-alignleft, &.lsow-alignright {
|
87 |
+
.lsow-subtitle {
|
88 |
+
margin: 0 0 5px;
|
89 |
+
padding: 0;
|
90 |
+
&:before, &:after {
|
91 |
+
display: none;
|
92 |
+
}
|
93 |
+
}
|
94 |
+
}
|
95 |
}
|
96 |
|
97 |
|
98 |
.lsow-heading.lsow-style3 {
|
99 |
+
margin: 0 auto 30px;
|
100 |
.lsow-title {
|
101 |
font-size: 22px;
|
102 |
line-height: 32px;
|
107 |
margin: 10px auto 20px;
|
108 |
.lsow-dark-bg & {
|
109 |
background: #909090;
|
110 |
+
}
|
111 |
}
|
|
|
112 |
@include respond-to-max(767) {
|
113 |
font-size: 16px;
|
114 |
line-height: 24px;
|
115 |
}
|
116 |
}
|
117 |
+
|
118 |
+
&.lsow-alignleft, &.lsow-alignright {
|
119 |
+
margin: 0 0 30px;
|
120 |
+
.lsow-title:after {
|
121 |
+
margin: 10px 0 20px;
|
122 |
+
}
|
123 |
+
}
|
124 |
}
|
125 |
|
includes/widgets/lsow-heading-widget/lsow-heading-widget.php
CHANGED
@@ -17,7 +17,7 @@ class LSOW_Heading_Widget extends SiteOrigin_Widget {
|
|
17 |
array(
|
18 |
'description' => __('Create heading for display on the top of a section.', 'livemesh-so-widgets'),
|
19 |
'panels_icon' => 'dashicons dashicons-minus',
|
20 |
-
'help' => 'http://portfoliotheme.org/widgets
|
21 |
),
|
22 |
array(),
|
23 |
array(
|
@@ -40,6 +40,17 @@ class LSOW_Heading_Widget extends SiteOrigin_Widget {
|
|
40 |
'style3' => __('Style 3', 'livemesh-so-widgets'),
|
41 |
)
|
42 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
43 |
|
44 |
'heading' => array(
|
45 |
'type' => 'text',
|
@@ -84,6 +95,7 @@ class LSOW_Heading_Widget extends SiteOrigin_Widget {
|
|
84 |
function get_template_variables($instance, $args) {
|
85 |
return array(
|
86 |
'style' => $instance['style'],
|
|
|
87 |
'heading' => $instance['heading'],
|
88 |
'short_text' => !empty($instance['short_text']) ? $instance['short_text'] : '',
|
89 |
'subtitle' => !empty($instance['subtitle']) ? $instance['subtitle'] : ''
|
17 |
array(
|
18 |
'description' => __('Create heading for display on the top of a section.', 'livemesh-so-widgets'),
|
19 |
'panels_icon' => 'dashicons dashicons-minus',
|
20 |
+
'help' => 'http://portfoliotheme.org/siteorigin-widgets/heading-widget-documentation/'
|
21 |
),
|
22 |
array(),
|
23 |
array(
|
40 |
'style3' => __('Style 3', 'livemesh-so-widgets'),
|
41 |
)
|
42 |
),
|
43 |
+
'align' => array(
|
44 |
+
'type' => 'select',
|
45 |
+
'description' => __('Alignment of the heading.', 'livemesh-so-widgets'),
|
46 |
+
'label' => __('Align', 'livemesh-so-widgets'),
|
47 |
+
'options' => array(
|
48 |
+
'center' => __('Center', 'livemesh-so-widgets'),
|
49 |
+
'left' => __('Left', 'livemesh-so-widgets'),
|
50 |
+
'right' => __('Right', 'livemesh-so-widgets'),
|
51 |
+
),
|
52 |
+
'default' => 'center'
|
53 |
+
),
|
54 |
|
55 |
'heading' => array(
|
56 |
'type' => 'text',
|
95 |
function get_template_variables($instance, $args) {
|
96 |
return array(
|
97 |
'style' => $instance['style'],
|
98 |
+
'align' => $instance['align'],
|
99 |
'heading' => $instance['heading'],
|
100 |
'short_text' => !empty($instance['short_text']) ? $instance['short_text'] : '',
|
101 |
'subtitle' => !empty($instance['subtitle']) ? $instance['subtitle'] : ''
|
includes/widgets/lsow-heading-widget/tpl/default.php
CHANGED
@@ -1,6 +1,7 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
* @var $style
|
|
|
4 |
* @var $heading
|
5 |
* @var $subtitle
|
6 |
* @var $short_text
|
@@ -8,7 +9,7 @@
|
|
8 |
|
9 |
?>
|
10 |
|
11 |
-
<div class="lsow-heading lsow-<?php echo $style; ?>">
|
12 |
|
13 |
<?php if ($style == 'style2' && !empty($subtitle)): ?>
|
14 |
|
1 |
<?php
|
2 |
/**
|
3 |
* @var $style
|
4 |
+
* @var $align
|
5 |
* @var $heading
|
6 |
* @var $subtitle
|
7 |
* @var $short_text
|
9 |
|
10 |
?>
|
11 |
|
12 |
+
<div class="lsow-heading lsow-<?php echo $style; ?> lsow-align<?php echo $align; ?>">
|
13 |
|
14 |
<?php if ($style == 'style2' && !empty($subtitle)): ?>
|
15 |
|
includes/widgets/lsow-hero-image-widget/lsow-hero-image-widget.php
CHANGED
@@ -16,7 +16,7 @@ class LSOW_Hero_Image_Widget extends SiteOrigin_Widget {
|
|
16 |
array(
|
17 |
'description' => __('Display a hero background with video or image background.', 'livemesh-so-widgets'),
|
18 |
'panels_icon' => 'dashicons dashicons-minus',
|
19 |
-
'help' => 'http://portfoliotheme.org/widgets
|
20 |
),
|
21 |
array(),
|
22 |
array(
|
@@ -205,7 +205,7 @@ class LSOW_Hero_Image_Widget extends SiteOrigin_Widget {
|
|
205 |
'image' => array(
|
206 |
'type' => 'media',
|
207 |
'label' => __('Background Image', 'livemesh-so-widgets'),
|
208 |
-
'
|
209 |
'library' => 'image',
|
210 |
'fallback' => true,
|
211 |
),
|
16 |
array(
|
17 |
'description' => __('Display a hero background with video or image background.', 'livemesh-so-widgets'),
|
18 |
'panels_icon' => 'dashicons dashicons-minus',
|
19 |
+
'help' => 'http://portfoliotheme.org/siteorigin-widgets/hero-image-widget-documentation/'
|
20 |
),
|
21 |
array(),
|
22 |
array(
|
205 |
'image' => array(
|
206 |
'type' => 'media',
|
207 |
'label' => __('Background Image', 'livemesh-so-widgets'),
|
208 |
+
'description' => __('This background image will be used as a placeholder image if YouTube or HTML5 video background option is chosen.', 'livemesh-so-widgets'),
|
209 |
'library' => 'image',
|
210 |
'fallback' => true,
|
211 |
),
|
includes/widgets/lsow-hero-image-widget/tpl/default.php
CHANGED
@@ -95,7 +95,7 @@ if ($background['bg_type'] == 'youtube') {
|
|
95 |
<?php if (!empty($standard_header['button_url'])) : ?>
|
96 |
|
97 |
<a class="lsow-button"
|
98 |
-
href="<?php echo $standard_header['button_url']; ?>"
|
99 |
<?php echo (empty($standard_header['new_window'])) ? '' : 'target="_blank"'; ?>><?php echo $standard_header['button_text']; ?></a>
|
100 |
|
101 |
<?php endif; ?>
|
95 |
<?php if (!empty($standard_header['button_url'])) : ?>
|
96 |
|
97 |
<a class="lsow-button"
|
98 |
+
href="<?php echo sow_esc_url($standard_header['button_url']); ?>"
|
99 |
<?php echo (empty($standard_header['new_window'])) ? '' : 'target="_blank"'; ?>><?php echo $standard_header['button_text']; ?></a>
|
100 |
|
101 |
<?php endif; ?>
|
includes/widgets/lsow-icon-list-widget/assets/banner.svg
ADDED
@@ -0,0 +1,59 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" encoding="utf-8"?>
|
2 |
+
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
3 |
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
4 |
+
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
5 |
+
viewBox="0 0 256 256" enable-background="new 0 0 256 256" xml:space="preserve">
|
6 |
+
<g>
|
7 |
+
<path fill="#4294B8" d="M128,1C57.9,1,1,57.9,1,128c0,15.5,2.8,30.3,7.9,44.1C26.8,220.5,73.3,255,128,255
|
8 |
+
c54.7,0,101.2-34.5,119.1-82.9c5.1-13.7,7.9-28.6,7.9-44.1C255,57.9,198.1,1,128,1z"/>
|
9 |
+
<rect x="110.3" y="51" fill="#2E4555" width="101.5" height="93.8"/>
|
10 |
+
<rect x="114.4" y="69.7" fill="#EDF0F2" width="93.4" height="69.5"/>
|
11 |
+
<rect x="202" y="58" fill="#BCBFC2" width="5.7" height="5.7"/>
|
12 |
+
<rect x="188.8" y="58" fill="#BCBFC2" width="5.7" height="5.7"/>
|
13 |
+
<rect x="175.7" y="58" fill="#BCBFC2" width="5.7" height="5.7"/>
|
14 |
+
<rect x="131.1" y="86.4" fill="#BCBFC2" width="59.8" height="3.3"/>
|
15 |
+
<rect x="131.1" y="102.8" fill="#BCBFC2" width="59.8" height="3.3"/>
|
16 |
+
<rect x="131.1" y="119.3" fill="#BCBFC2" width="59.8" height="3.3"/>
|
17 |
+
<rect x="44.2" y="92.1" fill="#36505F" width="154.7" height="112.9"/>
|
18 |
+
<rect x="47.6" y="108.8" fill="#EDF0F2" width="147.8" height="92.9"/>
|
19 |
+
<g>
|
20 |
+
<rect x="59.8" y="122.7" fill="#E65336" width="15.6" height="15.6"/>
|
21 |
+
<rect x="59.8" y="147.4" fill="#E65336" width="15.6" height="15.6"/>
|
22 |
+
<rect x="59.8" y="172.2" fill="#E65336" width="15.6" height="15.6"/>
|
23 |
+
<g>
|
24 |
+
<rect x="83.1" y="128.9" fill="#BCBFC2" width="15.2" height="3.3"/>
|
25 |
+
</g>
|
26 |
+
<g>
|
27 |
+
<rect x="83.1" y="153.6" fill="#BCBFC2" width="15.2" height="3.3"/>
|
28 |
+
</g>
|
29 |
+
<g>
|
30 |
+
<rect x="83.1" y="178.3" fill="#BCBFC2" width="15.2" height="3.3"/>
|
31 |
+
</g>
|
32 |
+
</g>
|
33 |
+
<g>
|
34 |
+
<rect x="105" y="122.7" fill="#E65336" width="15.6" height="15.6"/>
|
35 |
+
<rect x="105" y="147.4" fill="#E65336" width="15.6" height="15.6"/>
|
36 |
+
<rect x="105" y="172.2" fill="#E65336" width="15.6" height="15.6"/>
|
37 |
+
<g>
|
38 |
+
<rect x="128.3" y="128.9" fill="#BCBFC2" width="15.2" height="3.3"/>
|
39 |
+
</g>
|
40 |
+
<g>
|
41 |
+
<rect x="128.3" y="153.6" fill="#BCBFC2" width="15.2" height="3.3"/>
|
42 |
+
</g>
|
43 |
+
<g>
|
44 |
+
<rect x="128.3" y="178.3" fill="#BCBFC2" width="15.2" height="3.3"/>
|
45 |
+
</g>
|
46 |
+
</g>
|
47 |
+
<rect x="150.2" y="122.7" fill="#E65336" width="15.6" height="15.6"/>
|
48 |
+
<rect x="150.2" y="147.4" fill="#E65336" width="15.6" height="15.6"/>
|
49 |
+
<g>
|
50 |
+
<rect x="173.5" y="128.9" fill="#BCBFC2" width="15.2" height="3.3"/>
|
51 |
+
</g>
|
52 |
+
<g>
|
53 |
+
<rect x="173.5" y="153.6" fill="#BCBFC2" width="15.2" height="3.3"/>
|
54 |
+
</g>
|
55 |
+
<circle fill="#E65336" cx="50.1" cy="100.4" r="2.5"/>
|
56 |
+
<circle fill="#F0C949" cx="59.5" cy="100.4" r="2.5"/>
|
57 |
+
<circle fill="#39B39B" cx="68.9" cy="100.4" r="2.5"/>
|
58 |
+
</g>
|
59 |
+
</svg>
|
includes/widgets/lsow-icon-list-widget/css/style.css
ADDED
@@ -0,0 +1,66 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
html {
|
2 |
+
box-sizing: border-box; }
|
3 |
+
|
4 |
+
*, *::after, *::before {
|
5 |
+
box-sizing: inherit; }
|
6 |
+
|
7 |
+
.lsow-icon-list {
|
8 |
+
font-size: 0;
|
9 |
+
/* Remove space between elements */
|
10 |
+
width: 100%; }
|
11 |
+
.lsow-icon-list.lsow-alignleft {
|
12 |
+
text-align: left; }
|
13 |
+
.lsow-icon-list.lsow-alignright {
|
14 |
+
text-align: right; }
|
15 |
+
.lsow-icon-list.lsow-aligncenter {
|
16 |
+
text-align: center; }
|
17 |
+
.lsow-icon-list .lsow-icon-list-item {
|
18 |
+
display: inline-block;
|
19 |
+
padding: 0;
|
20 |
+
border: none;
|
21 |
+
outline: none;
|
22 |
+
margin: 0 0 0 15px; }
|
23 |
+
.lsow-icon-list .lsow-icon-list-item:first-child {
|
24 |
+
margin: 0; }
|
25 |
+
.lsow-icon-list .lsow-icon-list-item .lsow-icon-wrapper span {
|
26 |
+
display: block;
|
27 |
+
font-size: 32px;
|
28 |
+
line-height: 1;
|
29 |
+
color: #666;
|
30 |
+
-webkit-transition: color 0.3s ease-in-out 0s;
|
31 |
+
-moz-transition: color 0.3s ease-in-out 0s;
|
32 |
+
-ms-transition: color 0.3s ease-in-out 0s;
|
33 |
+
transition: color 0.3s ease-in-out 0s; }
|
34 |
+
.lsow-icon-list .lsow-icon-list-item .lsow-image-wrapper img {
|
35 |
+
display: block;
|
36 |
+
max-width: 100%;
|
37 |
+
width: 32px;
|
38 |
+
height: auto;
|
39 |
+
margin: 0 auto;
|
40 |
+
-webkit-transition: all 0.4s ease-in-out 0s;
|
41 |
+
-moz-transition: all 0.4s ease-in-out 0s;
|
42 |
+
-ms-transition: all 0.4s ease-in-out 0s;
|
43 |
+
transition: all 0.4s ease-in-out 0s; }
|
44 |
+
.lsow-icon-list .lsow-icon-list-item:hover .lsow-image-wrapper img {
|
45 |
+
opacity: 0.8; }
|
46 |
+
.lsow-icon-list .lsow-icon-list-item:hover .lsow-icon-wrapper span {
|
47 |
+
color: #333; }
|
48 |
+
|
49 |
+
.lsow-circular-icon-list .lsow-icon-list .lsow-icon-list-item {
|
50 |
+
margin: 0 0 0 25px;
|
51 |
+
width: 50px;
|
52 |
+
height: 50px;
|
53 |
+
border-radius: 100%; }
|
54 |
+
@media only screen and (max-width: 479px) {
|
55 |
+
.lsow-circular-icon-list .lsow-icon-list .lsow-icon-list-item {
|
56 |
+
margin: 0 0 20px 20px; } }
|
57 |
+
.lsow-circular-icon-list .lsow-icon-list .lsow-icon-list-item:first-child {
|
58 |
+
margin-left: 0; }
|
59 |
+
.lsow-dark-bg .lsow-circular-icon-list .lsow-icon-list .lsow-icon-list-item {
|
60 |
+
background: #48484a; }
|
61 |
+
.lsow-circular-icon-list .lsow-icon-list .lsow-icon-list-item .lsow-icon-wrapper span {
|
62 |
+
font-size: 22px;
|
63 |
+
/* Override user choice */
|
64 |
+
padding: 14px 0; }
|
65 |
+
|
66 |
+
/*# sourceMappingURL=style.css.map */
|
includes/widgets/lsow-icon-list-widget/css/style.css.map
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"version": 3,
|
3 |
+
"mappings": "AAGE,IAAK;EACH,UAAU,EAAE,UAAU;;AAItB,sBAEU;EACR,UAAU,EAAE,OAAO;;ACTzB,eAAgB;EACd,SAAS,EAAE,CAAC;;EACZ,KAAK,EAAE,IAAI;EACX,8BAAiB;IACf,UAAU,EAAE,IAAI;EAElB,+BAAkB;IAChB,UAAU,EAAE,KAAK;EAEnB,gCAAmB;IACjB,UAAU,EAAE,MAAM;EAEpB,oCAAqB;IACnB,OAAO,EAAE,YAAY;IACrB,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE,IAAI;IACb,MAAM,EAAE,UAAU;IAClB,gDAAc;MACZ,MAAM,EAAE,CAAC;IAEX,4DAAwB;MACtB,OAAO,EAAE,KAAK;MACd,SAAS,EAAE,IAAI;MACf,WAAW,EAAE,CAAC;MACd,KAAK,EAAE,IAAI;MCGf,kBAAoB,EAwEU,yBAA+B;MAvE7D,eAAiB,EAuEa,yBAA+B;MAtE7D,cAAgB,EAsEc,yBAA+B;MArE7D,UAAY,EAqEkB,yBAA+B;IDxE3D,4DAAwB;MACtB,OAAO,EAAE,KAAK;MACd,SAAS,EAAE,IAAI;MACf,KAAK,EAAE,IAAI;MACX,MAAM,EAAE,IAAI;MACZ,MAAM,EAAE,MAAM;MCLlB,kBAAoB,EAwEU,uBAA+B;MAvE7D,eAAiB,EAuEa,uBAA+B;MAtE7D,cAAgB,EAsEc,uBAA+B;MArE7D,UAAY,EAqEkB,uBAA+B;ID/DzD,kEAAwB;MACtB,OAAO,EAAE,GAAG;IAEd,kEAAwB;MACtB,KAAK,EAAE,IAAI;;AAOjB,6DAAqB;EACnB,MAAM,EAAE,UAAU;EAClB,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,IAAI;EACZ,aAAa,EAAE,IAAI;ECUrB,yCAA8C;IDd9C,6DAAqB;MAMjB,MAAM,EAAE,aAAa;EAEvB,yEAAc;IACZ,WAAW,EAAE,CAAC;EAEhB,2EAAgB;IACd,UAAU,EAAE,OAAO;EAErB,qFAAwB;IACtB,SAAS,EAAE,IAAI;;IACf,OAAO,EAAE,MAAM",
|
4 |
+
"sources": ["../../../../../../bower_components/neat/app/assets/stylesheets/grid/_box-sizing.scss","style.scss","../../../../assets/css/_lsow-lib.scss"],
|
5 |
+
"names": [],
|
6 |
+
"file": "style.css"
|
7 |
+
}
|
includes/widgets/lsow-icon-list-widget/css/style.scss
ADDED
@@ -0,0 +1,70 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@import "../../../../assets/css/lsow-lib";
|
2 |
+
|
3 |
+
.lsow-icon-list {
|
4 |
+
font-size: 0; /* Remove space between elements */
|
5 |
+
width: 100%;
|
6 |
+
&.lsow-alignleft {
|
7 |
+
text-align: left;
|
8 |
+
}
|
9 |
+
&.lsow-alignright {
|
10 |
+
text-align: right;
|
11 |
+
}
|
12 |
+
&.lsow-aligncenter {
|
13 |
+
text-align: center;
|
14 |
+
}
|
15 |
+
.lsow-icon-list-item {
|
16 |
+
display: inline-block;
|
17 |
+
padding: 0;
|
18 |
+
border: none;
|
19 |
+
outline: none;
|
20 |
+
margin: 0 0 0 15px;
|
21 |
+
&:first-child {
|
22 |
+
margin: 0;
|
23 |
+
}
|
24 |
+
.lsow-icon-wrapper span {
|
25 |
+
display: block;
|
26 |
+
font-size: 32px;
|
27 |
+
line-height: 1;
|
28 |
+
color: #666;
|
29 |
+
@include lsow-transition(color, 0.3s);
|
30 |
+
}
|
31 |
+
.lsow-image-wrapper img {
|
32 |
+
display: block;
|
33 |
+
max-width: 100%;
|
34 |
+
width: 32px;
|
35 |
+
height: auto;
|
36 |
+
margin: 0 auto;
|
37 |
+
@include lsow-transition();
|
38 |
+
}
|
39 |
+
&:hover {
|
40 |
+
.lsow-image-wrapper img {
|
41 |
+
opacity: 0.8;
|
42 |
+
}
|
43 |
+
.lsow-icon-wrapper span {
|
44 |
+
color: #333;
|
45 |
+
}
|
46 |
+
}
|
47 |
+
}
|
48 |
+
}
|
49 |
+
|
50 |
+
.lsow-circular-icon-list .lsow-icon-list {
|
51 |
+
.lsow-icon-list-item {
|
52 |
+
margin: 0 0 0 25px;
|
53 |
+
width: 50px;
|
54 |
+
height: 50px;
|
55 |
+
border-radius: 100%;
|
56 |
+
@include respond-to-max(479) {
|
57 |
+
margin: 0 0 20px 20px;
|
58 |
+
}
|
59 |
+
&:first-child {
|
60 |
+
margin-left: 0;
|
61 |
+
}
|
62 |
+
.lsow-dark-bg & {
|
63 |
+
background: #48484a;
|
64 |
+
}
|
65 |
+
.lsow-icon-wrapper span {
|
66 |
+
font-size: 22px; /* Override user choice */
|
67 |
+
padding: 14px 0;
|
68 |
+
}
|
69 |
+
}
|
70 |
+
}
|
includes/widgets/lsow-icon-list-widget/js/icon-list.js
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
jQuery(function ($) {
|
2 |
+
|
3 |
+
|
4 |
+
$('.lsow-icon-list .lsow-icon-list-item').powerTip({
|
5 |
+
placement: 'n' // north-east tooltip position
|
6 |
+
});
|
7 |
+
|
8 |
+
|
9 |
+
});
|
includes/widgets/lsow-icon-list-widget/js/icon-list.min.js
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
jQuery(function(i){i(".lsow-icon-list .lsow-icon-list-item").powerTip({placement:"n"})});
|
includes/widgets/lsow-icon-list-widget/lsow-icon-list-widget.php
ADDED
@@ -0,0 +1,191 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/*
|
4 |
+
Widget Name: Livemesh Icon List
|
5 |
+
Description: Use images or icon fonts to create social icons list, show payment options etc.
|
6 |
+
Author: LiveMesh
|
7 |
+
Author URI: http://portfoliotheme.org
|
8 |
+
*/
|
9 |
+
|
10 |
+
class LSOW_Icon_List_Widget extends SiteOrigin_Widget {
|
11 |
+
|
12 |
+
function __construct() {
|
13 |
+
parent::__construct(
|
14 |
+
'lsow-icon-list',
|
15 |
+
__('Livemesh Icon List', 'livemesh-so-widgets'),
|
16 |
+
array(
|
17 |
+
'description' => __('Use images or icon fonts to create social icons list, show payment options etc.', 'livemesh-so-widgets'),
|
18 |
+
'panels_icon' => 'dashicons dashicons-minus',
|
19 |
+
'help' => 'http://portfoliotheme.org/siteorigin-widgets/icon-list-widget-documentation/'
|
20 |
+
),
|
21 |
+
array(),
|
22 |
+
array(
|
23 |
+
'title' => array(
|
24 |
+
'type' => 'text',
|
25 |
+
'label' => __('Title', 'livemesh-so-widgets'),
|
26 |
+
),
|
27 |
+
|
28 |
+
'icon_type' => array(
|
29 |
+
'type' => 'select',
|
30 |
+
'label' => __('Choose Icon Type', 'livemesh-so-widgets'),
|
31 |
+
'default' => 'icon',
|
32 |
+
'state_emitter' => array(
|
33 |
+
'callback' => 'select',
|
34 |
+
'args' => array('icon_type')
|
35 |
+
),
|
36 |
+
'options' => array(
|
37 |
+
'icon' => __('Icon', 'livemesh-so-widgets'),
|
38 |
+
'icon_image' => __('Icon Image', 'livemesh-so-widgets'),
|
39 |
+
)
|
40 |
+
),
|
41 |
+
|
42 |
+
'icon_list' => array(
|
43 |
+
'type' => 'repeater',
|
44 |
+
'label' => __('Icon List', 'livemesh-so-widgets'),
|
45 |
+
'item_name' => __('Icon', 'livemesh-so-widgets'),
|
46 |
+
'item_label' => array(
|
47 |
+
'selector' => "[id*='icon_list-title']",
|
48 |
+
'update_event' => 'change',
|
49 |
+
'value_method' => 'val'
|
50 |
+
),
|
51 |
+
'fields' => array(
|
52 |
+
|
53 |
+
'title' => array(
|
54 |
+
'type' => 'text',
|
55 |
+
'label' => __('Title', 'livemesh-so-widgets'),
|
56 |
+
'description' => __('Title for the Icon.', 'livemesh-so-widgets'),
|
57 |
+
),
|
58 |
+
|
59 |
+
'icon_image' => array(
|
60 |
+
'type' => 'media',
|
61 |
+
'label' => __('Icon Image.', 'livemesh-so-widgets'),
|
62 |
+
'state_handler' => array(
|
63 |
+
'icon_type[icon_image]' => array('show'),
|
64 |
+
'icon_type[icon]' => array('hide'),
|
65 |
+
),
|
66 |
+
),
|
67 |
+
|
68 |
+
'icon' => array(
|
69 |
+
'type' => 'icon',
|
70 |
+
'label' => __('Icon.', 'livemesh-so-widgets'),
|
71 |
+
'state_handler' => array(
|
72 |
+
'icon_type[icon]' => array('show'),
|
73 |
+
'icon_type[icon_image]' => array('hide'),
|
74 |
+
),
|
75 |
+
),
|
76 |
+
|
77 |
+
|
78 |
+
"href" => array(
|
79 |
+
"type" => "link",
|
80 |
+
"label" => __("Target URL", "livemesh-so-widgets"),
|
81 |
+
"description" => __("The URL to which icon/image should point to. (optional)", "livemesh-so-widgets"),
|
82 |
+
),
|
83 |
+
|
84 |
+
)
|
85 |
+
),
|
86 |
+
|
87 |
+
'settings' => array(
|
88 |
+
'type' => 'section',
|
89 |
+
'label' => __('Settings', 'livemesh-so-widgets'),
|
90 |
+
'fields' => array(
|
91 |
+
|
92 |
+
'icon_size' => array(
|
93 |
+
'type' => 'slider',
|
94 |
+
'label' => __('Icon/Image size in pixels', 'livemesh-so-widgets'),
|
95 |
+
'min' => 1,
|
96 |
+
'max' => 128,
|
97 |
+
'integer' => true,
|
98 |
+
'default' => 32
|
99 |
+
),
|
100 |
+
|
101 |
+
'icon_color' => array(
|
102 |
+
'type' => 'color',
|
103 |
+
'label' => __('Icon color', 'livemesh-so-widgets'),
|
104 |
+
'default' => '#666666',
|
105 |
+
'state_handler' => array(
|
106 |
+
'icon_type[icon]' => array('show'),
|
107 |
+
'icon_type[icon_image]' => array('hide'),
|
108 |
+
),
|
109 |
+
),
|
110 |
+
|
111 |
+
'hover_color' => array(
|
112 |
+
'type' => 'color',
|
113 |
+
'label' => __('Icon hover color', 'livemesh-so-widgets'),
|
114 |
+
'default' => '#444444',
|
115 |
+
'state_handler' => array(
|
116 |
+
'icon_type[icon]' => array('show'),
|
117 |
+
'icon_type[icon_image]' => array('hide'),
|
118 |
+
),
|
119 |
+
),
|
120 |
+
|
121 |
+
"target" => array(
|
122 |
+
"type" => "checkbox",
|
123 |
+
"label" => __("Open the links in new window", "livemesh-so-widgets"),
|
124 |
+
"default" => true,
|
125 |
+
),
|
126 |
+
|
127 |
+
'align' => array(
|
128 |
+
'type' => 'select',
|
129 |
+
'label' => __('Alignment', 'livemesh-so-widgets'),
|
130 |
+
'default' => 'left',
|
131 |
+
'options' => array(
|
132 |
+
'left' => __('Left', 'livemesh-so-widgets'),
|
133 |
+
'right' => __('Right', 'livemesh-so-widgets'),
|
134 |
+
'center' => __('Center', 'livemesh-so-widgets'),
|
135 |
+
)
|
136 |
+
),
|
137 |
+
)
|
138 |
+
),
|
139 |
+
)
|
140 |
+
);
|
141 |
+
}
|
142 |
+
|
143 |
+
function initialize() {
|
144 |
+
$this->register_frontend_scripts(
|
145 |
+
array(
|
146 |
+
array(
|
147 |
+
'lsow-tooltips',
|
148 |
+
LSOW_PLUGIN_URL . 'assets/js/jquery.powertip' . SOW_BUNDLE_JS_SUFFIX . '.js',
|
149 |
+
array('jquery'),
|
150 |
+
LSOW_VERSION
|
151 |
+
),
|
152 |
+
)
|
153 |
+
);
|
154 |
+
|
155 |
+
$this->register_frontend_scripts(array(
|
156 |
+
array(
|
157 |
+
'lsow-icon-list',
|
158 |
+
plugin_dir_url(__FILE__) . 'js/icon-list' . SOW_BUNDLE_JS_SUFFIX . '.js',
|
159 |
+
array('jquery')
|
160 |
+
)
|
161 |
+
)
|
162 |
+
);
|
163 |
+
|
164 |
+
$this->register_frontend_styles(array(
|
165 |
+
array(
|
166 |
+
'lsow-icon-list',
|
167 |
+
plugin_dir_url(__FILE__) . 'css/style.css'
|
168 |
+
)
|
169 |
+
)
|
170 |
+
);
|
171 |
+
}
|
172 |
+
|
173 |
+
function get_less_variables($instance) {
|
174 |
+
return array(
|
175 |
+
'icon_size' => intval($instance['settings']['icon_size']) . 'px',
|
176 |
+
'icon_color' => $instance['settings']['icon_color'],
|
177 |
+
'hover_color' => $instance['settings']['hover_color']
|
178 |
+
);
|
179 |
+
}
|
180 |
+
|
181 |
+
function get_template_variables($instance, $args) {
|
182 |
+
return array(
|
183 |
+
'icon_type' => $instance['icon_type'],
|
184 |
+
'icon_list' => !empty($instance['icon_list']) ? $instance['icon_list'] : array(),
|
185 |
+
'settings' => $instance['settings']
|
186 |
+
);
|
187 |
+
}
|
188 |
+
|
189 |
+
}
|
190 |
+
|
191 |
+
siteorigin_widget_register('lsow-icon-list', __FILE__, 'LSOW_Icon_List_Widget');
|
includes/widgets/lsow-icon-list-widget/styles/default.less
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@import "../../../../../so-widgets-bundle/base/less/mixins";
|
2 |
+
|
3 |
+
@icon_size: 32px;
|
4 |
+
@icon_color: #666666;
|
5 |
+
@hover_color: #444444;
|
6 |
+
|
7 |
+
.lsow-icon-list {
|
8 |
+
|
9 |
+
.lsow-icon-list-item {
|
10 |
+
|
11 |
+
.lsow-image-wrapper img {
|
12 |
+
width: @icon_size;
|
13 |
+
}
|
14 |
+
.lsow-icon-wrapper span {
|
15 |
+
font-size: @icon_size;
|
16 |
+
color: @icon_color;
|
17 |
+
&:hover {
|
18 |
+
color: @hover_color;
|
19 |
+
}
|
20 |
+
}
|
21 |
+
}
|
22 |
+
}
|
includes/widgets/lsow-icon-list-widget/tpl/default.php
ADDED
@@ -0,0 +1,77 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @var $icon_type
|
4 |
+
* @var $icon_list
|
5 |
+
* @var $settings
|
6 |
+
*/
|
7 |
+
|
8 |
+
if (!empty($settings['target']))
|
9 |
+
$target = 'target="_blank"';
|
10 |
+
else
|
11 |
+
$target = '';
|
12 |
+
|
13 |
+
?>
|
14 |
+
|
15 |
+
<div class="lsow-icon-list lsow-align<?php echo $settings['align']; ?>">
|
16 |
+
|
17 |
+
<?php foreach ($icon_list as $icon_item): ?>
|
18 |
+
|
19 |
+
<?php $icon_type = esc_html($icon_type); ?>
|
20 |
+
|
21 |
+
<?php $icon_title = esc_html($icon_item['title']); ?>
|
22 |
+
|
23 |
+
<?php $icon_url = sow_esc_url($icon_item['href']); ?>
|
24 |
+
|
25 |
+
<div class="lsow-icon-list-item" title="<?php echo $icon_title; ?>">
|
26 |
+
|
27 |
+
<?php if ($icon_type == 'icon_image') : ?>
|
28 |
+
|
29 |
+
<?php if (empty($icon_url)) : ?>
|
30 |
+
|
31 |
+
<div class="lsow-image-wrapper">
|
32 |
+
|
33 |
+
<?php echo wp_get_attachment_image($icon_item['icon_image'], 'full', false, array('class' => 'lsow-image full', 'alt' => $icon_title)); ?>
|
34 |
+
|
35 |
+
</div>
|
36 |
+
|
37 |
+
<?php else : ?>
|
38 |
+
|
39 |
+
<a class="lsow-image-wrapper" href="<?php echo $icon_url; ?>" <?php echo $target; ?>>
|
40 |
+
|
41 |
+
<?php echo wp_get_attachment_image($icon_item['icon_image'], 'full', false, array('class' => 'lsow-image full', 'alt' => $icon_title)); ?>
|
42 |
+
|
43 |
+
</a>
|
44 |
+
|
45 |
+
<?php endif; ?>
|
46 |
+
|
47 |
+
<?php else : ?>
|
48 |
+
|
49 |
+
<?php if (empty($icon_url)) : ?>
|
50 |
+
|
51 |
+
<div class="lsow-icon-wrapper">
|
52 |
+
|
53 |
+
<?php echo siteorigin_widget_get_icon($icon_item['icon']); ?>
|
54 |
+
|
55 |
+
</div>
|
56 |
+
|
57 |
+
<?php else : ?>
|
58 |
+
|
59 |
+
<a class="lsow-icon-wrapper" href="<?php echo $icon_url; ?>" <?php echo $target; ?>>
|
60 |
+
|
61 |
+
<?php echo siteorigin_widget_get_icon($icon_item['icon']); ?>
|
62 |
+
|
63 |
+
</a>
|
64 |
+
|
65 |
+
<?php endif; ?>
|
66 |
+
|
67 |
+
<?php endif; ?>
|
68 |
+
|
69 |
+
</div>
|
70 |
+
|
71 |
+
<?php
|
72 |
+
|
73 |
+
endforeach;
|
74 |
+
|
75 |
+
?>
|
76 |
+
|
77 |
+
</div>
|
includes/widgets/lsow-odometers-widget/lsow-odometers-widget.php
CHANGED
@@ -16,7 +16,7 @@ class LSOW_Odometer_Widget extends SiteOrigin_Widget {
|
|
16 |
array(
|
17 |
'description' => __('Display statistics as animated odometers in a multi-column grid.', 'livemesh-so-widgets'),
|
18 |
'panels_icon' => 'dashicons dashicons-minus',
|
19 |
-
'help' => 'http://portfoliotheme.org/widgets
|
20 |
),
|
21 |
array(),
|
22 |
array(
|
16 |
array(
|
17 |
'description' => __('Display statistics as animated odometers in a multi-column grid.', 'livemesh-so-widgets'),
|
18 |
'panels_icon' => 'dashicons dashicons-minus',
|
19 |
+
'help' => 'http://portfoliotheme.org/siteorigin-widgets/odometer-widget-documentation/'
|
20 |
),
|
21 |
array(),
|
22 |
array(
|
includes/widgets/lsow-piecharts-widget/lsow-piecharts-widget.php
CHANGED
@@ -16,7 +16,7 @@ class LSOW_Piechart_Widget extends SiteOrigin_Widget {
|
|
16 |
array(
|
17 |
'description' => __('Display statistics or skills as a percentage piechart.', 'livemesh-so-widgets'),
|
18 |
'panels_icon' => 'dashicons dashicons-minus',
|
19 |
-
'help' => 'http://portfoliotheme.org/widgets
|
20 |
),
|
21 |
array(),
|
22 |
array(
|
16 |
array(
|
17 |
'description' => __('Display statistics or skills as a percentage piechart.', 'livemesh-so-widgets'),
|
18 |
'panels_icon' => 'dashicons dashicons-minus',
|
19 |
+
'help' => 'http://portfoliotheme.org/siteorigin-widgets/piechart-widget-documentation/'
|
20 |
),
|
21 |
array(),
|
22 |
array(
|
includes/widgets/lsow-portfolio-widget/lsow-portfolio-widget.php
CHANGED
@@ -1,8 +1,8 @@
|
|
1 |
<?php
|
2 |
|
3 |
/*
|
4 |
-
Widget Name: Livemesh
|
5 |
-
Description: Display
|
6 |
Author: LiveMesh
|
7 |
Author URI: http://portfoliotheme.org
|
8 |
*/
|
@@ -16,7 +16,7 @@ class LSOW_Portfolio_Widget extends SiteOrigin_Widget {
|
|
16 |
array(
|
17 |
'description' => __('Showcase your work or posts or any custom post types with a filterable portfolio layout. Make sure that Custom Post Types module in active in Jetpack plugin', 'livemesh-so-widgets'),
|
18 |
'panels_icon' => 'dashicons dashicons-minus',
|
19 |
-
'help' => 'http://portfoliotheme.org/widgets
|
20 |
),
|
21 |
array(),
|
22 |
array(
|
1 |
<?php
|
2 |
|
3 |
/*
|
4 |
+
Widget Name: Livemesh Grid
|
5 |
+
Description: Display posts or custom post types in a multi-column grid.
|
6 |
Author: LiveMesh
|
7 |
Author URI: http://portfoliotheme.org
|
8 |
*/
|
16 |
array(
|
17 |
'description' => __('Showcase your work or posts or any custom post types with a filterable portfolio layout. Make sure that Custom Post Types module in active in Jetpack plugin', 'livemesh-so-widgets'),
|
18 |
'panels_icon' => 'dashicons dashicons-minus',
|
19 |
+
'help' => 'http://portfoliotheme.org/siteorigin-widgets/portfolio-widget-documentation/'
|
20 |
),
|
21 |
array(),
|
22 |
array(
|
includes/widgets/lsow-posts-carousel-widget/lsow-posts-carousel-widget.php
CHANGED
@@ -16,7 +16,7 @@ class LSOW_Posts_Carousel_Widget extends SiteOrigin_Widget {
|
|
16 |
array(
|
17 |
'description' => __('Display blog posts or custom post types as a carousel', 'livemesh-so-widgets'),
|
18 |
'panels_icon' => 'dashicons dashicons-minus',
|
19 |
-
'help' => 'http://portfoliotheme.org/widgets
|
20 |
),
|
21 |
array(),
|
22 |
array(
|
16 |
array(
|
17 |
'description' => __('Display blog posts or custom post types as a carousel', 'livemesh-so-widgets'),
|
18 |
'panels_icon' => 'dashicons dashicons-minus',
|
19 |
+
'help' => 'http://portfoliotheme.org/siteorigin-widgets/posts-carousel-widget-documentation/'
|
20 |
),
|
21 |
array(),
|
22 |
array(
|
includes/widgets/lsow-pricing-table-widget/lsow-pricing-table-widget.php
CHANGED
@@ -16,7 +16,7 @@ class LSOW_Pricing_Table_Widget extends SiteOrigin_Widget {
|
|
16 |
array(
|
17 |
'description' => __('Display pricing table in a multi-column grid.', 'livemesh-so-widgets'),
|
18 |
'panels_icon' => 'dashicons dashicons-minus',
|
19 |
-
'help' => 'http://portfoliotheme.org/widgets
|
20 |
),
|
21 |
array(),
|
22 |
array(
|
16 |
array(
|
17 |
'description' => __('Display pricing table in a multi-column grid.', 'livemesh-so-widgets'),
|
18 |
'panels_icon' => 'dashicons dashicons-minus',
|
19 |
+
'help' => 'http://portfoliotheme.org/siteorigin-widgets/pricing-widget-documentation/'
|
20 |
),
|
21 |
array(),
|
22 |
array(
|
includes/widgets/lsow-pricing-table-widget/tpl/default.php
CHANGED
@@ -1,6 +1,7 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
* @var $pricing_plans
|
|
|
4 |
*/
|
5 |
|
6 |
?>
|
@@ -17,14 +18,12 @@
|
|
17 |
$tagline = esc_html($pricing_plan['tagline']);
|
18 |
$price_tag = htmlspecialchars_decode(wp_kses_post($pricing_plan['price_tag']));
|
19 |
$pricing_img = $pricing_plan['image'];
|
20 |
-
$pricing_url =
|
21 |
$pricing_button_text = esc_html($pricing_plan['button_text']);
|
22 |
$button_new_window = esc_html($pricing_plan['button_new_window']);
|
23 |
$highlight = esc_html($pricing_plan['highlight']);
|
24 |
-
|
25 |
-
|
26 |
$price_tag = (empty($price_tag)) ? '' : $price_tag;
|
27 |
-
$pricing_url = (empty($pricing_url)) ? '#' : esc_url($pricing_url);
|
28 |
|
29 |
?>
|
30 |
|
@@ -60,39 +59,39 @@
|
|
60 |
|
61 |
<div class="lsow-plan-details">
|
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 |
</div>
|
98 |
<!-- .lsow-plan-details -->
|
@@ -108,7 +107,7 @@
|
|
108 |
</div>
|
109 |
<!-- .lsow-pricing-plan -->
|
110 |
|
111 |
-
|
112 |
|
113 |
endforeach;
|
114 |
|
1 |
<?php
|
2 |
/**
|
3 |
* @var $pricing_plans
|
4 |
+
* @var $settings
|
5 |
*/
|
6 |
|
7 |
?>
|
18 |
$tagline = esc_html($pricing_plan['tagline']);
|
19 |
$price_tag = htmlspecialchars_decode(wp_kses_post($pricing_plan['price_tag']));
|
20 |
$pricing_img = $pricing_plan['image'];
|
21 |
+
$pricing_url = (empty($pricing_plan['url'])) ? '#' : sow_esc_url($pricing_plan['url']);
|
22 |
$pricing_button_text = esc_html($pricing_plan['button_text']);
|
23 |
$button_new_window = esc_html($pricing_plan['button_new_window']);
|
24 |
$highlight = esc_html($pricing_plan['highlight']);
|
25 |
+
|
|
|
26 |
$price_tag = (empty($price_tag)) ? '' : $price_tag;
|
|
|
27 |
|
28 |
?>
|
29 |
|
59 |
|
60 |
<div class="lsow-plan-details">
|
61 |
|
62 |
+
<?php
|
63 |
|
64 |
+
foreach ($pricing_plan['items'] as $pricing_item) : ?>
|
65 |
|
66 |
+
<div class="lsow-pricing-item">
|
67 |
|
68 |
+
<div class="lsow-title">
|
69 |
|
70 |
+
<?php echo htmlspecialchars_decode(wp_kses_post($pricing_item['title'])); ?>
|
71 |
|
72 |
+
</div>
|
73 |
|
74 |
+
<div class="lsow-value-wrap">
|
75 |
|
76 |
+
<?php
|
77 |
|
78 |
+
if (!empty($pricing_item['icon_new'])) {
|
79 |
+
echo siteorigin_widget_get_icon($pricing_item['icon_new']);
|
80 |
+
}
|
81 |
|
82 |
+
?>
|
83 |
|
84 |
+
<div class="lsow-value">
|
85 |
|
86 |
+
<?php echo htmlspecialchars_decode(wp_kses_post($pricing_item['value'])); ?>
|
87 |
|
88 |
+
</div>
|
89 |
|
90 |
+
</div>
|
91 |
|
92 |
+
</div>
|
93 |
|
94 |
+
<?php endforeach; ?>
|
95 |
|
96 |
</div>
|
97 |
<!-- .lsow-plan-details -->
|
107 |
</div>
|
108 |
<!-- .lsow-pricing-plan -->
|
109 |
|
110 |
+
<?php
|
111 |
|
112 |
endforeach;
|
113 |
|
includes/widgets/lsow-services-widget/lsow-services-widget.php
CHANGED
@@ -16,7 +16,7 @@ class LSOW_Services_Widget extends SiteOrigin_Widget {
|
|
16 |
array(
|
17 |
'description' => __('Create services to display in a column grid.', 'livemesh-so-widgets'),
|
18 |
'panels_icon' => 'dashicons dashicons-minus',
|
19 |
-
'help' => 'http://portfoliotheme.org/widgets
|
20 |
),
|
21 |
array(),
|
22 |
array(
|
16 |
array(
|
17 |
'description' => __('Create services to display in a column grid.', 'livemesh-so-widgets'),
|
18 |
'panels_icon' => 'dashicons dashicons-minus',
|
19 |
+
'help' => 'http://portfoliotheme.org/siteorigin-widgets/services-widget-documentation/'
|
20 |
),
|
21 |
array(),
|
22 |
array(
|
includes/widgets/lsow-stats-bar-widget/lsow-stats-bar-widget.php
CHANGED
@@ -16,7 +16,7 @@ class LSOW_Stats_Bars_Widget extends SiteOrigin_Widget {
|
|
16 |
array(
|
17 |
'description' => __('Display statistics or skills as a percentage stats bar.', 'livemesh-so-widgets'),
|
18 |
'panels_icon' => 'dashicons dashicons-minus',
|
19 |
-
'help' => 'http://portfoliotheme.org/widgets
|
20 |
),
|
21 |
array(),
|
22 |
array(
|
16 |
array(
|
17 |
'description' => __('Display statistics or skills as a percentage stats bar.', 'livemesh-so-widgets'),
|
18 |
'panels_icon' => 'dashicons dashicons-minus',
|
19 |
+
'help' => 'http://portfoliotheme.org/siteorigin-widgets/stats-bar-widget-documentation/'
|
20 |
),
|
21 |
array(),
|
22 |
array(
|
includes/widgets/lsow-tabs-widget/css/style.css
CHANGED
@@ -76,7 +76,8 @@ html {
|
|
76 |
position: relative; }
|
77 |
.lsow-tabs .lsow-tab-panes .lsow-tab-pane {
|
78 |
padding: 40px;
|
79 |
-
display: none;
|
|
|
80 |
.lsow-tabs .lsow-tab-panes .lsow-tab-pane.lsow-active {
|
81 |
display: block;
|
82 |
animation: lsow-fade 0.3s ease-in-out; }
|
@@ -501,7 +502,7 @@ html {
|
|
501 |
.lsow-tabs.style7 .lsow-tab-nav .lsow-tab {
|
502 |
padding: 0 25px 0 0; }
|
503 |
.lsow-tabs.style7 .lsow-tab-nav .lsow-tab a {
|
504 |
-
max-width:
|
505 |
margin: 6px 0; }
|
506 |
@media only screen and (max-width: 479px) {
|
507 |
.lsow-tabs.style7 .lsow-tab-nav .lsow-tab a {
|
76 |
position: relative; }
|
77 |
.lsow-tabs .lsow-tab-panes .lsow-tab-pane {
|
78 |
padding: 40px;
|
79 |
+
display: none;
|
80 |
+
overflow: hidden; }
|
81 |
.lsow-tabs .lsow-tab-panes .lsow-tab-pane.lsow-active {
|
82 |
display: block;
|
83 |
animation: lsow-fade 0.3s ease-in-out; }
|
502 |
.lsow-tabs.style7 .lsow-tab-nav .lsow-tab {
|
503 |
padding: 0 25px 0 0; }
|
504 |
.lsow-tabs.style7 .lsow-tab-nav .lsow-tab a {
|
505 |
+
max-width: none;
|
506 |
margin: 6px 0; }
|
507 |
@media only screen and (max-width: 479px) {
|
508 |
.lsow-tabs.style7 .lsow-tab-nav .lsow-tab a {
|
includes/widgets/lsow-tabs-widget/css/style.css.map
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
{
|
2 |
"version": 3,
|
3 |
-
"mappings": "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",
|
4 |
"sources": ["../../../../../../bower_components/neat/app/assets/stylesheets/grid/_box-sizing.scss","style.scss","../../../../../../bower_components/sass-flex-mixin/_flexbox.scss","../../../../assets/css/_lsow-lib.scss"],
|
5 |
"names": [],
|
6 |
"file": "style.css"
|
1 |
{
|
2 |
"version": 3,
|
3 |
+
"mappings": "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",
|
4 |
"sources": ["../../../../../../bower_components/neat/app/assets/stylesheets/grid/_box-sizing.scss","style.scss","../../../../../../bower_components/sass-flex-mixin/_flexbox.scss","../../../../assets/css/_lsow-lib.scss"],
|
5 |
"names": [],
|
6 |
"file": "style.css"
|
includes/widgets/lsow-tabs-widget/css/style.scss
CHANGED
@@ -65,6 +65,7 @@ $theme_color: #f94213;
|
|
65 |
.lsow-tab-pane {
|
66 |
padding: 40px;
|
67 |
display: none;
|
|
|
68 |
&.lsow-active {
|
69 |
display: block;
|
70 |
animation: lsow-fade 0.3s ease-in-out;
|
@@ -627,7 +628,7 @@ $theme_color: #f94213;
|
|
627 |
.lsow-tab {
|
628 |
padding: 0 25px 0 0;
|
629 |
a {
|
630 |
-
max-width:
|
631 |
margin: 6px 0;
|
632 |
@include respond-to-max(479) {
|
633 |
text-align: center;
|
65 |
.lsow-tab-pane {
|
66 |
padding: 40px;
|
67 |
display: none;
|
68 |
+
overflow: hidden;
|
69 |
&.lsow-active {
|
70 |
display: block;
|
71 |
animation: lsow-fade 0.3s ease-in-out;
|
628 |
.lsow-tab {
|
629 |
padding: 0 25px 0 0;
|
630 |
a {
|
631 |
+
max-width: none;
|
632 |
margin: 6px 0;
|
633 |
@include respond-to-max(479) {
|
634 |
text-align: center;
|
includes/widgets/lsow-tabs-widget/js/tabs.js
CHANGED
@@ -34,14 +34,6 @@ var LSOW_Tabs = function (tabs) {
|
|
34 |
this.makeResponsive();
|
35 |
};
|
36 |
|
37 |
-
LSOW_Tabs.prototype.toggleMobile = function (mediaQuery) {
|
38 |
-
if (mediaQuery.matches) {
|
39 |
-
|
40 |
-
} else {
|
41 |
-
document.body.style.backgroundColor = 'FireBrick';
|
42 |
-
}
|
43 |
-
};
|
44 |
-
|
45 |
LSOW_Tabs.prototype.show = function (index) {
|
46 |
// Clear out existing tab
|
47 |
this.tabNavs.eq(this.current).removeClass('lsow-active');
|
34 |
this.makeResponsive();
|
35 |
};
|
36 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
37 |
LSOW_Tabs.prototype.show = function (index) {
|
38 |
// Clear out existing tab
|
39 |
this.tabNavs.eq(this.current).removeClass('lsow-active');
|
includes/widgets/lsow-tabs-widget/lsow-tabs-widget.php
CHANGED
@@ -16,7 +16,7 @@ class LSOW_Tabs_Widget extends SiteOrigin_Widget {
|
|
16 |
array(
|
17 |
'description' => __('Display tabbed content in variety of styles.', 'livemesh-so-widgets'),
|
18 |
'panels_icon' => 'dashicons dashicons-minus',
|
19 |
-
'help' => 'http://portfoliotheme.org/widgets
|
20 |
),
|
21 |
array(),
|
22 |
array(
|
16 |
array(
|
17 |
'description' => __('Display tabbed content in variety of styles.', 'livemesh-so-widgets'),
|
18 |
'panels_icon' => 'dashicons dashicons-minus',
|
19 |
+
'help' => 'http://portfoliotheme.org/siteorigin-widgets/tab-widget-documentation/'
|
20 |
),
|
21 |
array(),
|
22 |
array(
|
includes/widgets/lsow-team-members-widget/lsow-team-members-widget.php
CHANGED
@@ -16,7 +16,7 @@ class LSOW_Team_Widget extends SiteOrigin_Widget {
|
|
16 |
array(
|
17 |
'description' => __('Create team members to display in a column grid.', 'livemesh-so-widgets'),
|
18 |
'panels_icon' => 'dashicons dashicons-minus',
|
19 |
-
'help' => 'http://portfoliotheme.org/widgets
|
20 |
),
|
21 |
array(),
|
22 |
array(
|
16 |
array(
|
17 |
'description' => __('Create team members to display in a column grid.', 'livemesh-so-widgets'),
|
18 |
'panels_icon' => 'dashicons dashicons-minus',
|
19 |
+
'help' => 'http://portfoliotheme.org/siteorigin-widgets/team-members-widget-documentation/'
|
20 |
),
|
21 |
array(),
|
22 |
array(
|
includes/widgets/lsow-testimonials-slider-widget/css/style.css
CHANGED
@@ -7,7 +7,8 @@ html {
|
|
7 |
.lsow-testimonials-slider {
|
8 |
position: relative; }
|
9 |
.lsow-testimonials-slider.lsow-container {
|
10 |
-
max-width: 900px;
|
|
|
11 |
.lsow-testimonials-slider .lsow-testimonial-text {
|
12 |
text-align: center;
|
13 |
max-width: 750px;
|
7 |
.lsow-testimonials-slider {
|
8 |
position: relative; }
|
9 |
.lsow-testimonials-slider.lsow-container {
|
10 |
+
max-width: 900px;
|
11 |
+
margin: 0 auto; }
|
12 |
.lsow-testimonials-slider .lsow-testimonial-text {
|
13 |
text-align: center;
|
14 |
max-width: 750px;
|
includes/widgets/lsow-testimonials-slider-widget/css/style.css.map
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
{
|
2 |
"version": 3,
|
3 |
-
"mappings": "AAGE,IAAK;EACH,UAAU,EAAE,UAAU;;AAItB,sBAEU;EACR,UAAU,EAAE,OAAO;;ACTzB,yBAA0B;EACxB,QAAQ,EAAE,QAAQ;EAClB,wCAAiB;IACf,SAAS,EAAE,KAAK;
|
4 |
"sources": ["../../../../../../bower_components/neat/app/assets/stylesheets/grid/_box-sizing.scss","style.scss","../../../../assets/css/_lsow-lib.scss"],
|
5 |
"names": [],
|
6 |
"file": "style.css"
|
1 |
{
|
2 |
"version": 3,
|
3 |
+
"mappings": "AAGE,IAAK;EACH,UAAU,EAAE,UAAU;;AAItB,sBAEU;EACR,UAAU,EAAE,OAAO;;ACTzB,yBAA0B;EACxB,QAAQ,EAAE,QAAQ;EAClB,wCAAiB;IACf,SAAS,EAAE,KAAK;IAChB,MAAM,EAAE,MAAM;EAEhB,gDAAuB;IACrB,UAAU,EAAE,MAAM;IAClB,SAAS,EAAE,KAAK;IAChB,MAAM,EAAE,WAAW;IACnB,SAAS,EAAE,IAAI;IACf,WAAW,EAAE,IAAI;IACjB,UAAU,EAAE,MAAM;IAClB,KAAK,EAAE,IAAI;IACX,8DAAgB;MACd,KAAK,EAAE,IAAI;IAEb,kDAAE;MACA,KAAK,EAAE,IAAI;MACX,SAAS,EAAE,IAAI;MACf,OAAO,EAAE,KAAK;MACd,aAAa,EAAE,IAAI;MACnB,UAAU,EAAE,IAAI;MAChB,KAAK,EAAE,IAAI;MACX,MAAM,EAAE,IAAI;MACZ,gEAAgB;QACd,KAAK,EAAE,IAAI;EAIjB,gDAAuB;IACrB,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,MAAM;IACd,oEAAoB;MAClB,OAAO,EAAE,UAAU;MACnB,wEAAI;QACF,SAAS,EAAE,IAAI;QACf,aAAa,EAAE,GAAG;QAClB,YAAY,EAAE,IAAI;IAGtB,2DAAW;MACT,OAAO,EAAE,UAAU;MACnB,cAAc,EAAE,MAAM;MACtB,KAAK,EAAE,IAAI;MACX,yEAAgB;QACd,KAAK,EAAE,OAAO;MAEhB,6EAAkB;QCyDtB,SAAS,EAAE,IAAI;QACf,WAAW,EAAE,IAAI;QACjB,cAAc,EAAE,GAAG;QACnB,WAAW,EAAE,IAAI;QACjB,KAAK,EAAE,IAAI;QACX,cAAc,EAAE,SAAS;QACzB,KAAK,EAAE,IAAI;QACX,UAAU,EAAE,CAAC;QACb,aAAa,EAAE,IAAI;QD/Db,SAAS,EAAE,IAAI;QACf,WAAW,EAAE,IAAI;QACjB,aAAa,EAAE,GAAG;QAClB,2FAAgB;UACd,KAAK,EAAE,OAAO",
|
4 |
"sources": ["../../../../../../bower_components/neat/app/assets/stylesheets/grid/_box-sizing.scss","style.scss","../../../../assets/css/_lsow-lib.scss"],
|
5 |
"names": [],
|
6 |
"file": "style.css"
|
includes/widgets/lsow-testimonials-slider-widget/css/style.scss
CHANGED
@@ -4,6 +4,7 @@
|
|
4 |
position: relative;
|
5 |
&.lsow-container {
|
6 |
max-width: 900px;
|
|
|
7 |
}
|
8 |
.lsow-testimonial-text {
|
9 |
text-align: center;
|
4 |
position: relative;
|
5 |
&.lsow-container {
|
6 |
max-width: 900px;
|
7 |
+
margin: 0 auto;
|
8 |
}
|
9 |
.lsow-testimonial-text {
|
10 |
text-align: center;
|
includes/widgets/lsow-testimonials-widget/lsow-testimonials-widget.php
CHANGED
@@ -16,7 +16,7 @@ class LSOW_Testimonials_Widget extends SiteOrigin_Widget {
|
|
16 |
array(
|
17 |
'description' => __('Display testimonials in a responsive multi-column grid.', 'livemesh-so-widgets'),
|
18 |
'panels_icon' => 'dashicons dashicons-minus',
|
19 |
-
'help' => 'http://portfoliotheme.org/widgets
|
20 |
),
|
21 |
array(),
|
22 |
array(
|
16 |
array(
|
17 |
'description' => __('Display testimonials in a responsive multi-column grid.', 'livemesh-so-widgets'),
|
18 |
'panels_icon' => 'dashicons dashicons-minus',
|
19 |
+
'help' => 'http://portfoliotheme.org/siteorigin-widgets/testimonials-widget-documentation/'
|
20 |
),
|
21 |
array(),
|
22 |
array(
|
livemesh-so-widgets.php
CHANGED
@@ -7,7 +7,7 @@
|
|
7 |
* Author URI: http://portfoliotheme.org/
|
8 |
* License: GPL3
|
9 |
* License URI: https://www.gnu.org/licenses/gpl-3.0.txt
|
10 |
-
* Version: 1.
|
11 |
* Text Domain: livemesh-so-widgets
|
12 |
* Domain Path: languages
|
13 |
*
|
@@ -92,7 +92,7 @@ if (!class_exists('Livemesh_SiteOrigin_Widgets')) :
|
|
92 |
|
93 |
// Plugin version
|
94 |
if (!defined('LSOW_VERSION')) {
|
95 |
-
define('LSOW_VERSION', '1.
|
96 |
}
|
97 |
|
98 |
// Plugin Folder Path
|
7 |
* Author URI: http://portfoliotheme.org/
|
8 |
* License: GPL3
|
9 |
* License URI: https://www.gnu.org/licenses/gpl-3.0.txt
|
10 |
+
* Version: 1.3
|
11 |
* Text Domain: livemesh-so-widgets
|
12 |
* Domain Path: languages
|
13 |
*
|
92 |
|
93 |
// Plugin version
|
94 |
if (!defined('LSOW_VERSION')) {
|
95 |
+
define('LSOW_VERSION', '1.3');
|
96 |
}
|
97 |
|
98 |
// Plugin Folder Path
|
readme.txt
CHANGED
@@ -4,8 +4,8 @@ Plugin URI: http://portfoliotheme.org/siteorigin-widgets
|
|
4 |
Contributors: livemesh
|
5 |
Tags: widget, siteorigin, siteorigin widgets bundle, siteorigin page builder, siteorigin addons, video background, portfolio, carousel, shortcode, tabs, admin, plugin, page
|
6 |
Requires at least: 4.1
|
7 |
-
Tested up to: 4.
|
8 |
-
Stable Tag: 1.
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
@@ -42,6 +42,8 @@ The plugin comes with the following widgets. <strong>Almost all of the widgets c
|
|
42 |
<li>Grid widget that displays portfolio or blog entries in a nice responsive grid. Masonry and packed options are supported.</li>
|
43 |
<li>Client List widget to showcase the clients that you have handled.</li>
|
44 |
<li>Pricing Plans to help get more sales.</li>
|
|
|
|
|
45 |
</ul>
|
46 |
|
47 |
<strong>Important: You must activate widgets you need to use from Plugins > SiteOrigin Widgets so that they can be available to use.</strong>.
|
@@ -92,6 +94,14 @@ Pls install and activate Jetpack plugin, activate the Custom Post Types module a
|
|
92 |
|
93 |
== Changelog ==
|
94 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
95 |
= 1.2 =
|
96 |
* New widgets - Responsive Tabs and Accordion of variety of styles
|
97 |
* New services widget style
|
@@ -106,5 +116,5 @@ Pls install and activate Jetpack plugin, activate the Custom Post Types module a
|
|
106 |
* Display hover information for entries in carousel
|
107 |
* Fixed some bugs and design improvements
|
108 |
|
109 |
-
= 1.0
|
110 |
* Initial release.
|
4 |
Contributors: livemesh
|
5 |
Tags: widget, siteorigin, siteorigin widgets bundle, siteorigin page builder, siteorigin addons, video background, portfolio, carousel, shortcode, tabs, admin, plugin, page
|
6 |
Requires at least: 4.1
|
7 |
+
Tested up to: 4.5.2
|
8 |
+
Stable Tag: 1.3
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
42 |
<li>Grid widget that displays portfolio or blog entries in a nice responsive grid. Masonry and packed options are supported.</li>
|
43 |
<li>Client List widget to showcase the clients that you have handled.</li>
|
44 |
<li>Pricing Plans to help get more sales.</li>
|
45 |
+
<li>Flat style buttons with rich set of customization options.</li>
|
46 |
+
<li>Icon list widget that lets you use either images or icon fonts to create custom social icons list, capture payment options etc.</li>
|
47 |
</ul>
|
48 |
|
49 |
<strong>Important: You must activate widgets you need to use from Plugins > SiteOrigin Widgets so that they can be available to use.</strong>.
|
94 |
|
95 |
== Changelog ==
|
96 |
|
97 |
+
= 1.3 =
|
98 |
+
* New widgets - Flat style buttons and Icon List widget
|
99 |
+
* New fields - Datepicker and Timepicker for developing SiteOrigin widgets
|
100 |
+
* Fixed - Some themes squeeze the images in a Livemesh grid or Team widget.
|
101 |
+
* Fixed - Couple of widgets fail to display the post links.
|
102 |
+
* Fixed - The testimonials slider not aligned to the center
|
103 |
+
* Some styling improvements and fixes
|
104 |
+
|
105 |
= 1.2 =
|
106 |
* New widgets - Responsive Tabs and Accordion of variety of styles
|
107 |
* New services widget style
|
116 |
* Display hover information for entries in carousel
|
117 |
* Fixed some bugs and design improvements
|
118 |
|
119 |
+
= 1.0 =
|
120 |
* Initial release.
|