Changeset 3415084
- Timestamp:
- 12/09/2025 08:54:03 AM (4 months ago)
- Location:
- slope-widgets
- Files:
-
- 2 added
- 2 deleted
- 28 edited
- 1 copied
-
tags/4.3.4 (copied) (copied from slope-widgets/trunk)
-
tags/4.3.4/css/slope-admin.css (modified) (1 diff)
-
tags/4.3.4/css/slope-widgets.css (modified) (1 diff)
-
tags/4.3.4/images/icon.png (deleted)
-
tags/4.3.4/images/icon.svg (added)
-
tags/4.3.4/includes/admin/GlobalSettings.php (modified) (2 diffs)
-
tags/4.3.4/includes/admin/Promotions.php (modified) (2 diffs)
-
tags/4.3.4/includes/admin/Reservations.php (modified) (3 diffs)
-
tags/4.3.4/js/slope-admin.js (modified) (5 diffs)
-
tags/4.3.4/js/slope-modules.js (modified) (108 diffs)
-
tags/4.3.4/js/slope-promotions.js (modified) (7 diffs)
-
tags/4.3.4/js/slope-widgets.js (modified) (7 diffs)
-
tags/4.3.4/languages/slope-widgets-en_US.mo (modified) (previous)
-
tags/4.3.4/languages/slope-widgets-en_US.po (modified) (6 diffs)
-
tags/4.3.4/languages/slope-widgets.pot (modified) (2 diffs)
-
tags/4.3.4/readme.txt (modified) (2 diffs)
-
tags/4.3.4/slope-widgets.php (modified) (3 diffs)
-
trunk/css/slope-admin.css (modified) (1 diff)
-
trunk/css/slope-widgets.css (modified) (1 diff)
-
trunk/images/icon.png (deleted)
-
trunk/images/icon.svg (added)
-
trunk/includes/admin/GlobalSettings.php (modified) (2 diffs)
-
trunk/includes/admin/Promotions.php (modified) (2 diffs)
-
trunk/includes/admin/Reservations.php (modified) (3 diffs)
-
trunk/js/slope-admin.js (modified) (5 diffs)
-
trunk/js/slope-modules.js (modified) (108 diffs)
-
trunk/js/slope-promotions.js (modified) (7 diffs)
-
trunk/js/slope-widgets.js (modified) (7 diffs)
-
trunk/languages/slope-widgets-en_US.mo (modified) (previous)
-
trunk/languages/slope-widgets-en_US.po (modified) (6 diffs)
-
trunk/languages/slope-widgets.pot (modified) (2 diffs)
-
trunk/readme.txt (modified) (2 diffs)
-
trunk/slope-widgets.php (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
slope-widgets/tags/4.3.4/css/slope-admin.css
r3385288 r3415084 3 3 @keyframes slope-spin{0%{transform:rotate(0deg)}to{transform:rotate(360deg)}}.slope-promo-container{width:100%!important}#slp-arrow-icon{height:1rem}#slp-settings-border-radius-container{display:flex;gap:10px;align-items:center}.slp-promotion-card{flex:1 1 300px;border-radius:10px;margin-bottom:1rem;position:relative;min-width:280px;display:flex;flex-direction:column}.slp-loading-spinner{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #3498db;border-radius:50%;animation:slope-spin 2s linear infinite}.slp-error-message,.slp-loading-indicator{display:flex;justify-content:center;align-items:center;margin:auto}.slp-loading-indicator{padding:20px;width:100%}.slp-error-message{border-radius:10px;background:#eee;padding:30px;text-align:center}.slp-promotion-container{flex:1;display:flex;flex-direction:column;width:fit-content;max-width:100%;overflow:hidden}.slp-promotion-image{background-size:cover;background-repeat:no-repeat;background-position:center;padding:16px;min-height:180px}.slp-promotion-expiration-date{top:1rem;left:1rem;z-index:2;padding:4px 8px;border-radius:10px;font-size:.75rem;font-weight:700;width:fit-content}.slp-promotion-title{font-size:clamp(1rem,2.5vw,1.25rem);font-weight:700;line-height:1.3;margin-bottom:clamp(.5rem,2vw,1rem)}.slp-promotion-description{font-size:clamp(.875rem,2vw,1rem);line-height:1.5;-webkit-box-orient:vertical;white-space:normal;display:-webkit-box;overflow:hidden;text-overflow:ellipsis;max-width:100%;word-wrap:break-word}.slp-promotion-actions{display:flex;flex-direction:column;gap:.5rem;margin-top:auto}.slp-see-details{font-size:.9rem;align-self:flex-start;font-weight:700;display:flex;align-items:center;margin-bottom:.5rem;gap:.5rem}.slp-reserve-button{display:block;padding:.75rem 0;font-size:1rem;font-weight:700;border-radius:10px;text-decoration:none;text-align:center}.slp-modal,.slp-modal-overlay{z-index:1000;top:0;left:0;width:100%;height:100%}.slp-modal{position:fixed;background-color:rgba(0,0,0,.4);opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease}.slp-modal-overlay{background-image:linear-gradient(to bottom,transparent 0,#d1d2da 250px,#d1d2da,#d1d2da);border-radius:10px;position:absolute}.slp-modal-container{background-size:100%,cover;background-repeat:no-repeat;background-position:top,center;padding:clamp(8px,2vw,12px);border-radius:10px;width:min(80vw,600px);z-index:1001;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.slp-close-modal-button{position:absolute;right:1rem;line-height:.5;top:1rem;font-size:24px;cursor:pointer;z-index:1003;border-radius:50%;padding:.5rem}.slp-modal-promotion-container{border-radius:10px;position:relative;z-index:1001;margin-top:clamp(10vh,16vh,24vh)}.slp-modal-promotion-details{max-width:100%;word-wrap:break-word;max-height:25vh;overflow-y:auto}.slp-modal-lodgings,.slp-modal-promotion-details{font-size:clamp(.875rem,2vw,1rem);margin-bottom:1rem;line-height:1.5}.slp-modal-visible{opacity:1;visibility:visible}.slp-modal-hidden{opacity:0;visibility:hidden}@media screen and (max-width:768px){.slp-modal-promotion-details{max-height:50vh}.slp-modal-container{width:90vw;background-size:150%,cover}} 4 4 .slp-welcome-button{display:inline-flex;align-items:center;right:10px;bottom:30px;height:36px;padding:0 10px;border-radius:3px;text-align:center;text-transform:uppercase;text-decoration:none}.slp-welcome-button #skip-icon{margin-right:8px}.slope-slp-welcome{width:99%}#slp-welcome-button-container{display:flex;flex-direction:row;gap:1rem;justify-content:space-between;margin-top:1rem}#slp-next-button{display:inline-flex;align-items:center;gap:2px;margin-right:1rem;height:36px;text-transform:uppercase;padding:0 10px;border-radius:3px;text-align:center;text-decoration:none}#slp-next-button-icon{width:10px;margin-right:5px} 5 .slope-widgets-container{box-sizing:border-box}.slope- justify-flex-end{justify-content:flex-end}.slope-width-100{width:100%}.slope-block{border-radius:.2rem;border:1px solid rgba(0,0,0,.1);line-height:1;margin:0 auto;max-width:900px;padding:8px;position:relative}.slope-block *{box-sizing:border-box}.slope-block .slope-reservation-section-container{cursor:pointer!important;text-align:left;padding:10px;border-radius:6px;display:flex;align-items:center}.slope-block .slope-reservation-section-container.slope-highlight:hover{background-color:rgba(0,0,0,.1)}.slope-block .slope-reservation-section-container .slope-check-in-container{margin:auto}.slope-block input[type=number]{-webkit-appearance:none;appearance:none;background:0 0;border-radius:0;border:0;color:inherit;display:block;font:inherit;margin:0;outline:0;padding:0;width:auto}.slope-block label{display:block;font-size:14px;text-align:left}.slope-block{min-height:225px}.slope-reservation-dates{display:flex;justify-content:space-between;padding-right:8px}.slope-guests-and-button-container{z-index:10}.slope-block .slope-reservation-section-container .slope-guests-wrapper,.slope-reservation-section-container{width:100%}.slope-guests-count-container{width:100%;text-align:right}.slope-cancel-guests,.slope-save-guests{background:0 0;display:inline-block;text-align:center;width:49%}.slope-horizontal-separator{border-bottom:solid 1px rgba(0,0,0,.1);display:block;margin-bottom:10px;margin-top:10px}.slope-block .slope-check-out-wrapper{text-align:right}.slope-vertical-divider{display:none}.slope-reservation-dates .slope-reservation-icon-container{align-items:center;display:flex;justify-content:center;opacity:.4;width:20px}.dayContainer+.dayContainer{border-left:1px solid rgba(0,0,0,.1)}.slope-block .slope-rooms-count-container{padding-right:32px}.slope-guests-buttons-container{display:flex}.slope-block .slope-check-in-input,.slope-block .slope-check-out-input{border:0;height:0;left:0;padding:0;position:absolute;top:88px;visibility:hidden!important}.slope-block .slope-check-in-label,.slope-block .slope-check-out-label,.slope-block .slope-guests-label,.slope-block .slope-rooms-label{display:block!important;font-size:13px!important;height:15px!important;line-height:15px!important}.slope-block .slope-reservation-section-container .slope-guests-wrapper{white-space:nowrap;display:flex}.slope-block .slope-adults-count,.slope-block .slope-check-in-date,.slope-block .slope-check-out-date,.slope-block .slope-children-count,.slope-block .slope-guests-adults,.slope-block .slope-guests-children,.slope-block .slope-rooms-count{border-radius:.2rem;font-size:16px;line-height:20px;min-width:175px}.slope-block input[type=submit].slope-reservation-submit{border-radius:.2rem;font-size:14px!important;font-weight:500;line-height:20px;min-width:175px}.slope-stepper-container{animation:fpFadeInDown 300ms cubic-bezier(.23,1,.32,1);border-radius:6px;border:1px solid rgba(0,0,0,.1);display:none;font-size:16px;line-height:16px;margin-top:10px;padding:10px;position:absolute;width:300px;z-index:9999}.slope-block input[type=text],.slope-stepper-container input[type=text]{border:0!important;cursor:default!important;font-size:inherit!important;margin-bottom:0!important;min-height:0!important;outline:0!important;padding:0!important}.slope-stepper-container input[type=text]{background-color:inherit!important}.slope-block button,.slope-block input[type=button],.slope-block input[type=reset],.slope-block input[type=submit],.slope-stepper-container button,.slope-stepper-container input[type=button],.slope-stepper-container input[type=reset],.slope-stepper-container input[type=submit]{border:0!important;cursor:pointer;font-family:inherit;font-size:inherit!important;margin-bottom:0!important;margin-top:0!important;min-height:30px!important;outline:0!important;padding:12px!important;text-transform:uppercase;transition:all .2s ease-in-out}.slope-block button:hover,.slope-block input[type=button]:hover,.slope-block input[type=reset]:hover,.slope-block input[type=submit]:hover,.slope-stepper-container button:hover,.slope-stepper-container input[type=button]:hover,.slope-stepper-container input[type=reset]:hover,.slope-stepper-container input[type=submit]:hover{opacity:.8}.slope-stepper-label{padding-bottom:1px}.slope-stepper-container input[type=number],.slope-stepper-container input[type=text]{width:auto}.slope-stepper-container .slope-stepper-value{text-align:center;margin:0;border:0;box-sizing:border-box;background:0 0!important}.slope-stepper-container .slope-decrement-button,.slope-stepper-container .slope-increment-button{align-items:center;background:0 0;border-radius:50%;cursor:pointer;display:flex;float:right;font-size:18px;font-weight:700;height:26px;justify-content:center;line-height:18px;margin:0!important;opacity:1;padding:0;text-align:center;text-decoration:none;transition:all .2s ease-in-out!important;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;width:26px}.slope-stepper-container .slope-stepper-value{width:44px!important}.slope-stepper-container .slope-guests-stepper,.slope-stepper-container .slope-rooms-stepper{display:flex}.slope-stepper-container .slope-horizontal-separator{width:100%;border-bottom:solid 1px rgba(0,0,0,.1);margin:10px 0;display:block!important}.slope-vertical-divider{border-left:1px solid rgba(0,0,0,.1);height:42px;margin-bottom:auto;margin-top:auto}.slope-guests-count-row,.slope-rooms-stepper-container{align-items:center;display:flex;justify-content:space-between;padding:10px}.slope-rooms-stepper{font-size:18px;padding:0}.slope-guests-count-row.slope-padding-top{padding-top:20px}.slope-children-age{font-size:12px}#slope-widget p,#slope-widget table td{border:0!important}.slope-stepper-container .slope-room-label{padding:10px;font-size:16px;font-weight:700}@media (min-width:992px){.slp-responsive-layout.slope-block{display:flex;justify-content:space-between;min-height:auto;min-width:900px}.slp-responsive-layout .slope-horizontal-separator{display:none}.slp-responsive-layout .slope-guests-and-button-container{width:65%;padding-left:8px;display:flex;justify-content:space-between}.slp-responsive-layout .slope-reservation-dates{width:35%}.slp-responsive-layout .slope-vertical-divider{display:block}.slp-responsive-layout .slope-reservation-dates .slope-reservation-icon-container{width:60px}.slp-responsive-layout .slope-reservation-section-container,.slp-responsive-layout .slope-reservation-section-container.slope-submit-section{width:50%}.slp-responsive-layout .slope-guests-count-container{text-align:left}}5 .slope-widgets-container{box-sizing:border-box}.slope-widgets-container span{display:inline}.slope-justify-flex-end{justify-content:flex-end}.slope-width-100{width:100%}.slope-block{border-radius:.2rem;border:1px solid rgba(0,0,0,.1);line-height:1;margin:0 auto;max-width:900px;padding:8px;position:relative}.slope-block *{box-sizing:border-box}.slope-block .slope-reservation-section-container{cursor:pointer!important;text-align:left;padding:10px;border-radius:6px;display:flex;align-items:center}.slope-block .slope-reservation-section-container.slope-highlight:hover{background-color:rgba(0,0,0,.1)}.slope-block .slope-reservation-section-container .slope-check-in-container{margin:auto}.slope-block input[type=number]{-webkit-appearance:none;appearance:none;background:0 0;border-radius:0;border:0;color:inherit;display:block;font:inherit;margin:0;outline:0;padding:0;width:auto}.slope-block label{display:block;font-size:14px;text-align:left}.slope-block{min-height:225px}.slope-reservation-dates{display:flex;justify-content:space-between;padding-right:8px}.slope-guests-and-button-container{z-index:10}.slope-block .slope-reservation-section-container .slope-guests-wrapper,.slope-reservation-section-container{width:100%}.slope-guests-count-container{width:100%;text-align:right;overflow:hidden;text-overflow:ellipsis}.slope-cancel-guests,.slope-save-guests{background:0 0;display:inline-block;text-align:center;width:49%}.slope-horizontal-separator{border-bottom:solid 1px rgba(0,0,0,.1);display:block;margin-bottom:10px;margin-top:10px}.slope-block .slope-check-out-wrapper{text-align:right}.slope-vertical-divider{display:none}.slope-reservation-dates .slope-reservation-icon-container{align-items:center;display:flex;justify-content:center;opacity:.4;width:20px}.dayContainer+.dayContainer{border-left:1px solid rgba(0,0,0,.1)}.slope-block .slope-rooms-count-container{padding-right:32px}.slope-guests-buttons-container{display:flex}.slope-block .slope-check-in-input,.slope-block .slope-check-out-input{border:0;height:0;left:0;padding:0;position:absolute;top:88px;visibility:hidden!important}.slope-block .slope-check-in-label,.slope-block .slope-check-out-label,.slope-block .slope-guests-label,.slope-block .slope-rooms-label{display:block!important;font-size:13px!important;height:15px!important;line-height:15px!important}.slope-block .slope-reservation-section-container .slope-guests-wrapper{white-space:nowrap;display:flex}.slope-block .slope-adults-count,.slope-block .slope-check-in-date,.slope-block .slope-check-out-date,.slope-block .slope-children-count,.slope-block .slope-guests-adults,.slope-block .slope-guests-children,.slope-block .slope-rooms-count{border-radius:.2rem;font-size:16px;line-height:20px;min-width:175px}.slope-block input[type=submit].slope-reservation-submit{border-radius:.2rem;font-size:14px!important;font-weight:500;line-height:20px;min-width:175px}.slope-stepper-container{animation:fpFadeInDown 300ms cubic-bezier(.23,1,.32,1);border-radius:6px;border:1px solid rgba(0,0,0,.1);display:none;font-size:16px;line-height:16px;margin-top:10px;padding:10px;position:absolute;width:300px;z-index:9999}.slope-block input[type=text],.slope-stepper-container input[type=text]{border:0!important;cursor:default!important;font-size:inherit!important;margin-bottom:0!important;min-height:0!important;outline:0!important;padding:0!important}.slope-stepper-container input[type=text]{background-color:inherit!important}.slope-block button,.slope-block input[type=button],.slope-block input[type=reset],.slope-block input[type=submit],.slope-stepper-container button,.slope-stepper-container input[type=button],.slope-stepper-container input[type=reset],.slope-stepper-container input[type=submit]{border:0!important;cursor:pointer;font-family:inherit;font-size:inherit!important;margin-bottom:0!important;margin-top:0!important;min-height:30px!important;outline:0!important;padding:12px!important;text-transform:uppercase;transition:all .2s ease-in-out}.slope-block button:hover,.slope-block input[type=button]:hover,.slope-block input[type=reset]:hover,.slope-block input[type=submit]:hover,.slope-stepper-container button:hover,.slope-stepper-container input[type=button]:hover,.slope-stepper-container input[type=reset]:hover,.slope-stepper-container input[type=submit]:hover{opacity:.8}.slope-stepper-label{padding-bottom:1px}.slope-stepper-container input[type=number],.slope-stepper-container input[type=text]{width:auto}.slope-stepper-container .slope-stepper-value{text-align:center;margin:0;border:0;box-sizing:border-box;background:0 0!important}.slope-stepper-container .slope-decrement-button,.slope-stepper-container .slope-increment-button{align-items:center;background:0 0;border-radius:50%;cursor:pointer;display:flex;float:right;font-size:18px;font-weight:700;height:26px;justify-content:center;line-height:18px;margin:0!important;opacity:1;padding:0;text-align:center;text-decoration:none;transition:all .2s ease-in-out!important;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;width:26px}.slope-stepper-container .slope-stepper-value{width:44px!important}.slope-stepper-container .slope-guests-stepper,.slope-stepper-container .slope-rooms-stepper{display:flex;align-items:center}.slope-stepper-container .slope-horizontal-separator{width:100%;border-bottom:solid 1px rgba(0,0,0,.1);margin:10px 0;display:block!important}.slope-vertical-divider{border-left:1px solid rgba(0,0,0,.1);height:42px;margin-bottom:auto;margin-top:auto}.slope-guests-count-row,.slope-rooms-stepper-container{align-items:center;display:flex;justify-content:space-between;padding:10px}.slope-rooms-stepper{font-size:18px;padding:0}.slope-guests-count-row.slope-padding-top{padding-top:20px}.slope-children-age{font-size:12px}#slope-widget p,#slope-widget table td{border:0!important}.slope-stepper-container .slope-room-label{padding:10px;font-size:16px;font-weight:700}@media (min-width:992px){.slp-responsive-layout.slope-block{display:flex;justify-content:space-between;min-height:auto;min-width:900px}.slp-responsive-layout .slope-horizontal-separator{display:none}.slp-responsive-layout .slope-guests-and-button-container{width:65%;padding-left:8px;display:flex;justify-content:space-between}.slp-responsive-layout .slope-reservation-dates{width:35%}.slp-responsive-layout .slope-vertical-divider{display:block}.slp-responsive-layout .slope-reservation-dates .slope-reservation-icon-container{width:60px}.slp-responsive-layout .slope-reservation-section-container,.slp-responsive-layout .slope-reservation-section-container.slope-submit-section{width:50%}.slp-responsive-layout .slope-guests-count-container{text-align:left}} -
slope-widgets/tags/4.3.4/css/slope-widgets.css
r3385288 r3415084 1 .slope-widgets-container{box-sizing:border-box}.slope- justify-flex-end{justify-content:flex-end}.slope-width-100{width:100%}.slope-block{border-radius:.2rem;border:1px solid rgba(0,0,0,.1);line-height:1;margin:0 auto;max-width:900px;padding:8px;position:relative}.slope-block *{box-sizing:border-box}.slope-block .slope-reservation-section-container{cursor:pointer!important;text-align:left;padding:10px;border-radius:6px;display:flex;align-items:center}.slope-block .slope-reservation-section-container.slope-highlight:hover{background-color:rgba(0,0,0,.1)}.slope-block .slope-reservation-section-container .slope-check-in-container{margin:auto}.slope-block input[type=number]{-webkit-appearance:none;appearance:none;background:0 0;border-radius:0;border:0;color:inherit;display:block;font:inherit;margin:0;outline:0;padding:0;width:auto}.slope-block label{display:block;font-size:14px;text-align:left}.slope-block{min-height:225px}.slope-reservation-dates{display:flex;justify-content:space-between;padding-right:8px}.slope-guests-and-button-container{z-index:10}.slope-block .slope-reservation-section-container .slope-guests-wrapper,.slope-reservation-section-container{width:100%}.slope-guests-count-container{width:100%;text-align:right}.slope-cancel-guests,.slope-save-guests{background:0 0;display:inline-block;text-align:center;width:49%}.slope-horizontal-separator{border-bottom:solid 1px rgba(0,0,0,.1);display:block;margin-bottom:10px;margin-top:10px}.slope-block .slope-check-out-wrapper{text-align:right}.slope-vertical-divider{display:none}.slope-reservation-dates .slope-reservation-icon-container{align-items:center;display:flex;justify-content:center;opacity:.4;width:20px}.dayContainer+.dayContainer{border-left:1px solid rgba(0,0,0,.1)}.slope-block .slope-rooms-count-container{padding-right:32px}.slope-guests-buttons-container{display:flex}.slope-block .slope-check-in-input,.slope-block .slope-check-out-input{border:0;height:0;left:0;padding:0;position:absolute;top:88px;visibility:hidden!important}.slope-block .slope-check-in-label,.slope-block .slope-check-out-label,.slope-block .slope-guests-label,.slope-block .slope-rooms-label{display:block!important;font-size:13px!important;height:15px!important;line-height:15px!important}.slope-block .slope-reservation-section-container .slope-guests-wrapper{white-space:nowrap;display:flex}.slope-block .slope-adults-count,.slope-block .slope-check-in-date,.slope-block .slope-check-out-date,.slope-block .slope-children-count,.slope-block .slope-guests-adults,.slope-block .slope-guests-children,.slope-block .slope-rooms-count{border-radius:.2rem;font-size:16px;line-height:20px;min-width:175px}.slope-block input[type=submit].slope-reservation-submit{border-radius:.2rem;font-size:14px!important;font-weight:500;line-height:20px;min-width:175px}.slope-stepper-container{animation:fpFadeInDown 300ms cubic-bezier(.23,1,.32,1);border-radius:6px;border:1px solid rgba(0,0,0,.1);display:none;font-size:16px;line-height:16px;margin-top:10px;padding:10px;position:absolute;width:300px;z-index:9999}.slope-block input[type=text],.slope-stepper-container input[type=text]{border:0!important;cursor:default!important;font-size:inherit!important;margin-bottom:0!important;min-height:0!important;outline:0!important;padding:0!important}.slope-stepper-container input[type=text]{background-color:inherit!important}.slope-block button,.slope-block input[type=button],.slope-block input[type=reset],.slope-block input[type=submit],.slope-stepper-container button,.slope-stepper-container input[type=button],.slope-stepper-container input[type=reset],.slope-stepper-container input[type=submit]{border:0!important;cursor:pointer;font-family:inherit;font-size:inherit!important;margin-bottom:0!important;margin-top:0!important;min-height:30px!important;outline:0!important;padding:12px!important;text-transform:uppercase;transition:all .2s ease-in-out}.slope-block button:hover,.slope-block input[type=button]:hover,.slope-block input[type=reset]:hover,.slope-block input[type=submit]:hover,.slope-stepper-container button:hover,.slope-stepper-container input[type=button]:hover,.slope-stepper-container input[type=reset]:hover,.slope-stepper-container input[type=submit]:hover{opacity:.8}.slope-stepper-label{padding-bottom:1px}.slope-stepper-container input[type=number],.slope-stepper-container input[type=text]{width:auto}.slope-stepper-container .slope-stepper-value{text-align:center;margin:0;border:0;box-sizing:border-box;background:0 0!important}.slope-stepper-container .slope-decrement-button,.slope-stepper-container .slope-increment-button{align-items:center;background:0 0;border-radius:50%;cursor:pointer;display:flex;float:right;font-size:18px;font-weight:700;height:26px;justify-content:center;line-height:18px;margin:0!important;opacity:1;padding:0;text-align:center;text-decoration:none;transition:all .2s ease-in-out!important;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;width:26px}.slope-stepper-container .slope-stepper-value{width:44px!important}.slope-stepper-container .slope-guests-stepper,.slope-stepper-container .slope-rooms-stepper{display:flex}.slope-stepper-container .slope-horizontal-separator{width:100%;border-bottom:solid 1px rgba(0,0,0,.1);margin:10px 0;display:block!important}.slope-vertical-divider{border-left:1px solid rgba(0,0,0,.1);height:42px;margin-bottom:auto;margin-top:auto}.slope-guests-count-row,.slope-rooms-stepper-container{align-items:center;display:flex;justify-content:space-between;padding:10px}.slope-rooms-stepper{font-size:18px;padding:0}.slope-guests-count-row.slope-padding-top{padding-top:20px}.slope-children-age{font-size:12px}#slope-widget p,#slope-widget table td{border:0!important}.slope-stepper-container .slope-room-label{padding:10px;font-size:16px;font-weight:700}@media (min-width:992px){.slp-responsive-layout.slope-block{display:flex;justify-content:space-between;min-height:auto;min-width:900px}.slp-responsive-layout .slope-horizontal-separator{display:none}.slp-responsive-layout .slope-guests-and-button-container{width:65%;padding-left:8px;display:flex;justify-content:space-between}.slp-responsive-layout .slope-reservation-dates{width:35%}.slp-responsive-layout .slope-vertical-divider{display:block}.slp-responsive-layout .slope-reservation-dates .slope-reservation-icon-container{width:60px}.slp-responsive-layout .slope-reservation-section-container,.slp-responsive-layout .slope-reservation-section-container.slope-submit-section{width:50%}.slp-responsive-layout .slope-guests-count-container{text-align:left}}1 .slope-widgets-container{box-sizing:border-box}.slope-widgets-container span{display:inline}.slope-justify-flex-end{justify-content:flex-end}.slope-width-100{width:100%}.slope-block{border-radius:.2rem;border:1px solid rgba(0,0,0,.1);line-height:1;margin:0 auto;max-width:900px;padding:8px;position:relative}.slope-block *{box-sizing:border-box}.slope-block .slope-reservation-section-container{cursor:pointer!important;text-align:left;padding:10px;border-radius:6px;display:flex;align-items:center}.slope-block .slope-reservation-section-container.slope-highlight:hover{background-color:rgba(0,0,0,.1)}.slope-block .slope-reservation-section-container .slope-check-in-container{margin:auto}.slope-block input[type=number]{-webkit-appearance:none;appearance:none;background:0 0;border-radius:0;border:0;color:inherit;display:block;font:inherit;margin:0;outline:0;padding:0;width:auto}.slope-block label{display:block;font-size:14px;text-align:left}.slope-block{min-height:225px}.slope-reservation-dates{display:flex;justify-content:space-between;padding-right:8px}.slope-guests-and-button-container{z-index:10}.slope-block .slope-reservation-section-container .slope-guests-wrapper,.slope-reservation-section-container{width:100%}.slope-guests-count-container{width:100%;text-align:right;overflow:hidden;text-overflow:ellipsis}.slope-cancel-guests,.slope-save-guests{background:0 0;display:inline-block;text-align:center;width:49%}.slope-horizontal-separator{border-bottom:solid 1px rgba(0,0,0,.1);display:block;margin-bottom:10px;margin-top:10px}.slope-block .slope-check-out-wrapper{text-align:right}.slope-vertical-divider{display:none}.slope-reservation-dates .slope-reservation-icon-container{align-items:center;display:flex;justify-content:center;opacity:.4;width:20px}.dayContainer+.dayContainer{border-left:1px solid rgba(0,0,0,.1)}.slope-block .slope-rooms-count-container{padding-right:32px}.slope-guests-buttons-container{display:flex}.slope-block .slope-check-in-input,.slope-block .slope-check-out-input{border:0;height:0;left:0;padding:0;position:absolute;top:88px;visibility:hidden!important}.slope-block .slope-check-in-label,.slope-block .slope-check-out-label,.slope-block .slope-guests-label,.slope-block .slope-rooms-label{display:block!important;font-size:13px!important;height:15px!important;line-height:15px!important}.slope-block .slope-reservation-section-container .slope-guests-wrapper{white-space:nowrap;display:flex}.slope-block .slope-adults-count,.slope-block .slope-check-in-date,.slope-block .slope-check-out-date,.slope-block .slope-children-count,.slope-block .slope-guests-adults,.slope-block .slope-guests-children,.slope-block .slope-rooms-count{border-radius:.2rem;font-size:16px;line-height:20px;min-width:175px}.slope-block input[type=submit].slope-reservation-submit{border-radius:.2rem;font-size:14px!important;font-weight:500;line-height:20px;min-width:175px}.slope-stepper-container{animation:fpFadeInDown 300ms cubic-bezier(.23,1,.32,1);border-radius:6px;border:1px solid rgba(0,0,0,.1);display:none;font-size:16px;line-height:16px;margin-top:10px;padding:10px;position:absolute;width:300px;z-index:9999}.slope-block input[type=text],.slope-stepper-container input[type=text]{border:0!important;cursor:default!important;font-size:inherit!important;margin-bottom:0!important;min-height:0!important;outline:0!important;padding:0!important}.slope-stepper-container input[type=text]{background-color:inherit!important}.slope-block button,.slope-block input[type=button],.slope-block input[type=reset],.slope-block input[type=submit],.slope-stepper-container button,.slope-stepper-container input[type=button],.slope-stepper-container input[type=reset],.slope-stepper-container input[type=submit]{border:0!important;cursor:pointer;font-family:inherit;font-size:inherit!important;margin-bottom:0!important;margin-top:0!important;min-height:30px!important;outline:0!important;padding:12px!important;text-transform:uppercase;transition:all .2s ease-in-out}.slope-block button:hover,.slope-block input[type=button]:hover,.slope-block input[type=reset]:hover,.slope-block input[type=submit]:hover,.slope-stepper-container button:hover,.slope-stepper-container input[type=button]:hover,.slope-stepper-container input[type=reset]:hover,.slope-stepper-container input[type=submit]:hover{opacity:.8}.slope-stepper-label{padding-bottom:1px}.slope-stepper-container input[type=number],.slope-stepper-container input[type=text]{width:auto}.slope-stepper-container .slope-stepper-value{text-align:center;margin:0;border:0;box-sizing:border-box;background:0 0!important}.slope-stepper-container .slope-decrement-button,.slope-stepper-container .slope-increment-button{align-items:center;background:0 0;border-radius:50%;cursor:pointer;display:flex;float:right;font-size:18px;font-weight:700;height:26px;justify-content:center;line-height:18px;margin:0!important;opacity:1;padding:0;text-align:center;text-decoration:none;transition:all .2s ease-in-out!important;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;width:26px}.slope-stepper-container .slope-stepper-value{width:44px!important}.slope-stepper-container .slope-guests-stepper,.slope-stepper-container .slope-rooms-stepper{display:flex;align-items:center}.slope-stepper-container .slope-horizontal-separator{width:100%;border-bottom:solid 1px rgba(0,0,0,.1);margin:10px 0;display:block!important}.slope-vertical-divider{border-left:1px solid rgba(0,0,0,.1);height:42px;margin-bottom:auto;margin-top:auto}.slope-guests-count-row,.slope-rooms-stepper-container{align-items:center;display:flex;justify-content:space-between;padding:10px}.slope-rooms-stepper{font-size:18px;padding:0}.slope-guests-count-row.slope-padding-top{padding-top:20px}.slope-children-age{font-size:12px}#slope-widget p,#slope-widget table td{border:0!important}.slope-stepper-container .slope-room-label{padding:10px;font-size:16px;font-weight:700}@media (min-width:992px){.slp-responsive-layout.slope-block{display:flex;justify-content:space-between;min-height:auto;min-width:900px}.slp-responsive-layout .slope-horizontal-separator{display:none}.slp-responsive-layout .slope-guests-and-button-container{width:65%;padding-left:8px;display:flex;justify-content:space-between}.slp-responsive-layout .slope-reservation-dates{width:35%}.slp-responsive-layout .slope-vertical-divider{display:block}.slp-responsive-layout .slope-reservation-dates .slope-reservation-icon-container{width:60px}.slp-responsive-layout .slope-reservation-section-container,.slp-responsive-layout .slope-reservation-section-container.slope-submit-section{width:50%}.slp-responsive-layout .slope-guests-count-container{text-align:left}} 2 2 #slope-promotions a.slp-button{padding:1.5rem .5rem;transition:all .2s ease-in-out;text-decoration:none}#slope-promotions a.slp-button:hover{opacity:.7}#slope-widget{font-family:inherit!important}table.slp{min-width:initial;font-family:inherit}table.slp td{font-family:inherit;text-align:left!important;word-break:normal}[id^=promotion-submit-].slp-button{font-family:inherit!important;font-weight:700;letter-spacing:inherit} 3 3 @keyframes slope-spin{0%{transform:rotate(0deg)}to{transform:rotate(360deg)}}.slope-promo-container{width:100%!important}#slp-arrow-icon{height:1rem}#slp-settings-border-radius-container{display:flex;gap:10px;align-items:center}.slp-promotion-card{flex:1 1 300px;border-radius:10px;margin-bottom:1rem;position:relative;min-width:280px;display:flex;flex-direction:column}.slp-loading-spinner{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #3498db;border-radius:50%;animation:slope-spin 2s linear infinite}.slp-error-message,.slp-loading-indicator{display:flex;justify-content:center;align-items:center;margin:auto}.slp-loading-indicator{padding:20px;width:100%}.slp-error-message{border-radius:10px;background:#eee;padding:30px;text-align:center}.slp-promotion-container{flex:1;display:flex;flex-direction:column;width:fit-content;max-width:100%;overflow:hidden}.slp-promotion-image{background-size:cover;background-repeat:no-repeat;background-position:center;padding:16px;min-height:180px}.slp-promotion-expiration-date{top:1rem;left:1rem;z-index:2;padding:4px 8px;border-radius:10px;font-size:.75rem;font-weight:700;width:fit-content}.slp-promotion-title{font-size:clamp(1rem,2.5vw,1.25rem);font-weight:700;line-height:1.3;margin-bottom:clamp(.5rem,2vw,1rem)}.slp-promotion-description{font-size:clamp(.875rem,2vw,1rem);line-height:1.5;-webkit-box-orient:vertical;white-space:normal;display:-webkit-box;overflow:hidden;text-overflow:ellipsis;max-width:100%;word-wrap:break-word}.slp-promotion-actions{display:flex;flex-direction:column;gap:.5rem;margin-top:auto}.slp-see-details{font-size:.9rem;align-self:flex-start;font-weight:700;display:flex;align-items:center;margin-bottom:.5rem;gap:.5rem}.slp-reserve-button{display:block;padding:.75rem 0;font-size:1rem;font-weight:700;border-radius:10px;text-decoration:none;text-align:center}.slp-modal,.slp-modal-overlay{z-index:1000;top:0;left:0;width:100%;height:100%}.slp-modal{position:fixed;background-color:rgba(0,0,0,.4);opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease}.slp-modal-overlay{background-image:linear-gradient(to bottom,transparent 0,#d1d2da 250px,#d1d2da,#d1d2da);border-radius:10px;position:absolute}.slp-modal-container{background-size:100%,cover;background-repeat:no-repeat;background-position:top,center;padding:clamp(8px,2vw,12px);border-radius:10px;width:min(80vw,600px);z-index:1001;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.slp-close-modal-button{position:absolute;right:1rem;line-height:.5;top:1rem;font-size:24px;cursor:pointer;z-index:1003;border-radius:50%;padding:.5rem}.slp-modal-promotion-container{border-radius:10px;position:relative;z-index:1001;margin-top:clamp(10vh,16vh,24vh)}.slp-modal-promotion-details{max-width:100%;word-wrap:break-word;max-height:25vh;overflow-y:auto}.slp-modal-lodgings,.slp-modal-promotion-details{font-size:clamp(.875rem,2vw,1rem);margin-bottom:1rem;line-height:1.5}.slp-modal-visible{opacity:1;visibility:visible}.slp-modal-hidden{opacity:0;visibility:hidden}@media screen and (max-width:768px){.slp-modal-promotion-details{max-height:50vh}.slp-modal-container{width:90vw;background-size:150%,cover}} 4 4 @-webkit-keyframes fpFadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes fpFadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.flatpickr-calendar{background:0 0;opacity:0;display:none;text-align:center;visibility:hidden;padding:0;-webkit-animation:none;animation:none;direction:ltr;border:0;font-size:14px;line-height:24px;border-radius:5px;position:absolute;width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-touch-action:manipulation;touch-action:manipulation;background:#fff;-webkit-box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,.08);box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,.08)}.flatpickr-calendar.inline,.flatpickr-calendar.open{opacity:1;max-height:640px;visibility:visible}.flatpickr-calendar.open{display:inline-block;z-index:99999}.flatpickr-calendar.animate.open{-webkit-animation:fpFadeInDown 300ms cubic-bezier(.23,1,.32,1);animation:fpFadeInDown 300ms cubic-bezier(.23,1,.32,1)}.flatpickr-calendar.inline{display:block;position:relative;top:2px}.flatpickr-calendar.static{position:absolute;top:calc(100% + 2px)}.flatpickr-calendar.static.open{z-index:999;display:block}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7){-webkit-box-shadow:none!important;box-shadow:none!important}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1){-webkit-box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-calendar .hasTime .dayContainer,.flatpickr-calendar .hasWeeks .dayContainer{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.flatpickr-calendar .hasWeeks .dayContainer{border-left:0}.flatpickr-calendar.hasTime .flatpickr-time{height:40px;border-top:1px solid #e6e6e6}.flatpickr-calendar.noCalendar.hasTime .flatpickr-time{height:auto}.flatpickr-calendar:after,.flatpickr-calendar:before{position:absolute;display:block;pointer-events:none;border:solid transparent;content:'';height:0;width:0;left:22px}.flatpickr-calendar.arrowRight:after,.flatpickr-calendar.arrowRight:before,.flatpickr-calendar.rightMost:after,.flatpickr-calendar.rightMost:before{left:auto;right:22px}.flatpickr-calendar.arrowCenter:after,.flatpickr-calendar.arrowCenter:before{left:50%;right:50%}.flatpickr-calendar:before{border-width:5px;margin:0 -5px}.flatpickr-calendar:after{border-width:4px;margin:0 -4px}.flatpickr-calendar.arrowTop:after,.flatpickr-calendar.arrowTop:before{bottom:100%}.flatpickr-calendar.arrowTop:before{border-bottom-color:#e6e6e6}.flatpickr-calendar.arrowTop:after{border-bottom-color:#fff}.flatpickr-calendar.arrowBottom:after,.flatpickr-calendar.arrowBottom:before{top:100%}.flatpickr-calendar.arrowBottom:before{border-top-color:#e6e6e6}.flatpickr-calendar.arrowBottom:after{border-top-color:#fff}.flatpickr-calendar:focus,.flatpickr-current-month input.cur-year:focus{outline:0}.flatpickr-wrapper{position:relative;display:inline-block}.flatpickr-months{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flatpickr-months .flatpickr-month{background:0 0;color:rgba(0,0,0,.9);fill:rgba(0,0,0,.9);height:34px;line-height:1;text-align:center;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.flatpickr-months .flatpickr-next-month,.flatpickr-months .flatpickr-prev-month{text-decoration:none;cursor:pointer;position:absolute;top:0;height:34px;padding:10px;z-index:3;color:rgba(0,0,0,.9);fill:rgba(0,0,0,.9)}.flatpickr-months .flatpickr-next-month.flatpickr-disabled,.flatpickr-months .flatpickr-prev-month.flatpickr-disabled{display:none}.flatpickr-months .flatpickr-next-month i,.flatpickr-months .flatpickr-prev-month i,.numInputWrapper{position:relative}.flatpickr-months .flatpickr-next-month.flatpickr-prev-month,.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month{left:0}.flatpickr-months .flatpickr-next-month.flatpickr-next-month,.flatpickr-months .flatpickr-prev-month.flatpickr-next-month{right:0}.flatpickr-months .flatpickr-next-month:hover,.flatpickr-months .flatpickr-prev-month:hover{color:#959ea9}.flatpickr-months .flatpickr-next-month:hover svg,.flatpickr-months .flatpickr-prev-month:hover svg{fill:#f64747}.flatpickr-months .flatpickr-next-month svg,.flatpickr-months .flatpickr-prev-month svg{width:14px;height:14px}.flatpickr-months .flatpickr-next-month svg path,.flatpickr-months .flatpickr-prev-month svg path{-webkit-transition:fill .1s;transition:fill .1s;fill:inherit}.numInputWrapper{height:auto}.numInputWrapper input,.numInputWrapper span{display:inline-block}.numInputWrapper input{width:100%}.numInputWrapper input::-ms-clear{display:none}.numInputWrapper input::-webkit-inner-spin-button,.numInputWrapper input::-webkit-outer-spin-button{margin:0;-webkit-appearance:none}.numInputWrapper span{position:absolute;right:0;width:14px;padding:0 4px 0 2px;height:50%;line-height:50%;opacity:0;cursor:pointer;border:1px solid rgba(57,57,57,.15);-webkit-box-sizing:border-box;box-sizing:border-box}.numInputWrapper span:hover{background:rgba(0,0,0,.1)}.numInputWrapper span:active{background:rgba(0,0,0,.2)}.numInputWrapper span:after{display:block;content:"";position:absolute}.numInputWrapper span.arrowUp{top:0;border-bottom:0}.numInputWrapper span.arrowUp:after{border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:4px solid rgba(57,57,57,.6);top:26%}.numInputWrapper span.arrowDown{top:50%}.numInputWrapper span.arrowDown:after{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(57,57,57,.6);top:40%}.numInputWrapper span svg{width:inherit;height:auto}.numInputWrapper span svg path{fill:rgba(0,0,0,.5)}.flatpickr-current-month span.cur-month:hover,.numInputWrapper:hover{background:rgba(0,0,0,.05)}.numInputWrapper:hover span{opacity:1}.flatpickr-current-month{font-size:135%;font-weight:300;color:inherit;position:absolute;width:75%;left:12.5%;padding:7.48px 0 0;line-height:1;height:34px;display:inline-block;text-align:center;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.flatpickr-current-month span.cur-month{font-family:inherit;font-weight:700;color:inherit;display:inline-block;margin-left:.5ch;padding:0}.flatpickr-current-month .numInputWrapper{width:6ch;width:7ch\0;display:inline-block}.flatpickr-current-month .numInputWrapper span.arrowUp:after{border-bottom-color:rgba(0,0,0,.9)}.flatpickr-current-month .numInputWrapper span.arrowDown:after{border-top-color:rgba(0,0,0,.9)}.flatpickr-current-month .flatpickr-monthDropdown-months,.flatpickr-current-month input.cur-year{background:0 0;border:0;border-radius:0;box-sizing:border-box;color:inherit;font-size:inherit;font-family:inherit;font-weight:300;height:auto;line-height:inherit;padding:0 0 0 .5ch;vertical-align:initial;-webkit-box-sizing:border-box}.flatpickr-current-month input.cur-year{cursor:text;margin:0;display:inline-block;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-current-month input.cur-year[disabled],.flatpickr-current-month input.cur-year[disabled]:hover{font-size:100%;color:rgba(0,0,0,.5);background:0 0;pointer-events:none}.flatpickr-current-month .flatpickr-monthDropdown-months{appearance:menulist;cursor:pointer;margin:-1px 0 0;outline:0;position:relative;-webkit-appearance:menulist;-moz-appearance:menulist;width:auto}.flatpickr-current-month .flatpickr-monthDropdown-months:active,.flatpickr-current-month .flatpickr-monthDropdown-months:focus{outline:0}.flatpickr-current-month .flatpickr-monthDropdown-months:hover{background:rgba(0,0,0,.05)}.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month{background-color:transparent;outline:0;padding:0}.flatpickr-weekdays{background:0 0;text-align:center;overflow:hidden;width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;height:28px}.flatpickr-weekdays .flatpickr-weekdaycontainer,span.flatpickr-weekday{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}span.flatpickr-weekday{cursor:default;font-size:90%;background:0 0;color:rgba(0,0,0,.54);line-height:1;margin:0;text-align:center;display:block;font-weight:bolder}.flatpickr-weeks{padding:1px 0 0}.flatpickr-days,.flatpickr-weekdays .flatpickr-weekdaycontainer{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flatpickr-days{position:relative;overflow:hidden;-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;width:307.875px}.flatpickr-days:focus{outline:0}.dayContainer,.flatpickr-day{-webkit-box-sizing:border-box;box-sizing:border-box;display:inline-block}.dayContainer{padding:0;outline:0;text-align:left;width:307.875px;min-width:307.875px;max-width:307.875px;display:-ms-flexbox;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-wrap:wrap;-ms-flex-pack:justify;-webkit-justify-content:space-around;justify-content:space-around;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}.dayContainer+.dayContainer{-webkit-box-shadow:-1px 0 0 #e6e6e6;box-shadow:-1px 0 0 #e6e6e6}.flatpickr-day{background:0 0;border:1px solid transparent;border-radius:150px;color:#393939;cursor:pointer;font-weight:400;width:14.2857143%;-webkit-flex-basis:14.2857143%;-ms-flex-preferred-size:14.2857143%;flex-basis:14.2857143%;max-width:39px;height:39px;line-height:39px;margin:0;position:relative;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;text-align:center}.flatpickr-day.inRange,.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.nextMonthDay.today.inRange,.flatpickr-day.nextMonthDay:focus,.flatpickr-day.nextMonthDay:hover,.flatpickr-day.prevMonthDay.inRange,.flatpickr-day.prevMonthDay.today.inRange,.flatpickr-day.prevMonthDay:focus,.flatpickr-day.prevMonthDay:hover,.flatpickr-day.today.inRange,.flatpickr-day:focus,.flatpickr-day:hover{cursor:pointer;outline:0;background:#e6e6e6;border-color:#e6e6e6}.flatpickr-day.today{border-color:#959ea9}.flatpickr-day.today:focus,.flatpickr-day.today:hover{border-color:#959ea9;background:#959ea9;color:#fff}.flatpickr-day.endRange,.flatpickr-day.endRange.inRange,.flatpickr-day.endRange.nextMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.endRange:focus,.flatpickr-day.endRange:hover,.flatpickr-day.selected,.flatpickr-day.selected.inRange,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.selected:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange,.flatpickr-day.startRange.inRange,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.startRange:focus,.flatpickr-day.startRange:hover{background:#569ff7;-webkit-box-shadow:none;box-shadow:none;color:#fff;border-color:#569ff7}.flatpickr-day.endRange.startRange,.flatpickr-day.selected.startRange,.flatpickr-day.startRange.startRange{border-radius:50px 0 0 50px}.flatpickr-day.endRange.endRange,.flatpickr-day.selected.endRange,.flatpickr-day.startRange.endRange{border-radius:0 50px 50px 0}.flatpickr-day.endRange.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.selected.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.startRange.startRange+.endRange:not(:nth-child(7n+1)){-webkit-box-shadow:-10px 0 0 #569ff7;box-shadow:-10px 0 0 #569ff7}.flatpickr-day.endRange.startRange.endRange,.flatpickr-day.selected.startRange.endRange,.flatpickr-day.startRange.startRange.endRange{border-radius:50px}.flatpickr-day.inRange{border-radius:0;-webkit-box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover{background:0 0;border-color:transparent}.flatpickr-day.nextMonthDay,.flatpickr-day.notAllowed,.flatpickr-day.notAllowed.nextMonthDay,.flatpickr-day.notAllowed.prevMonthDay,.flatpickr-day.prevMonthDay{color:rgba(57,57,57,.3);background:0 0;border-color:transparent;cursor:default}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover{cursor:not-allowed;color:rgba(57,57,57,.1)}.flatpickr-day.week.selected{border-radius:0;-webkit-box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7;box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7}.flatpickr-day.hidden{visibility:hidden}.rangeMode .flatpickr-day{margin-top:1px}.flatpickr-weekwrapper{float:left}.flatpickr-weekwrapper .flatpickr-weeks{padding:0 12px;-webkit-box-shadow:1px 0 0 #e6e6e6;box-shadow:1px 0 0 #e6e6e6}.flatpickr-weekwrapper .flatpickr-weekday{float:none;width:100%;line-height:28px}.flatpickr-weekwrapper span.flatpickr-day,.flatpickr-weekwrapper span.flatpickr-day:hover{display:block;width:100%;max-width:none;color:rgba(57,57,57,.3);background:0 0;cursor:default;border:0}.flatpickr-innerContainer,.flatpickr-rContainer{-webkit-box-sizing:border-box;box-sizing:border-box}.flatpickr-innerContainer{display:block;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;overflow:hidden}.flatpickr-rContainer{display:inline-block;padding:0}.flatpickr-time,.flatpickr-time input{text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box}.flatpickr-time{outline:0;display:block;height:0;line-height:40px;max-height:40px;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flatpickr-time:after{content:"";display:table;clear:both}.flatpickr-time .numInputWrapper{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;width:40%;height:40px;float:left}.flatpickr-time .numInputWrapper span.arrowUp:after{border-bottom-color:#393939}.flatpickr-time .numInputWrapper span.arrowDown:after{border-top-color:#393939}.flatpickr-time.hasSeconds .numInputWrapper{width:26%}.flatpickr-time.time24hr .numInputWrapper{width:49%}.flatpickr-time input{background:0 0;-webkit-box-shadow:none;box-shadow:none;border:0;border-radius:0;margin:0;padding:0;height:inherit;line-height:inherit;color:#393939;font-size:14px;position:relative;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-time input.flatpickr-hour{font-weight:700}.flatpickr-time input.flatpickr-minute,.flatpickr-time input.flatpickr-second{font-weight:400}.flatpickr-time input:focus{outline:0;border:0}.flatpickr-time .flatpickr-am-pm,.flatpickr-time .flatpickr-time-separator{height:inherit;float:left;line-height:inherit;color:#393939;font-weight:700;width:2%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-align-self:center;-ms-flex-item-align:center;align-self:center}.flatpickr-time .flatpickr-am-pm{outline:0;width:18%;cursor:pointer;text-align:center;font-weight:400}.flatpickr-time .flatpickr-am-pm:focus,.flatpickr-time .flatpickr-am-pm:hover,.flatpickr-time input:focus,.flatpickr-time input:hover{background:#eee}.flatpickr-input[readonly]{cursor:pointer} 5 5 input#border_size,input#range_button,input#slope_border_radius,input#slope_title_size{max-width:130px}input#slope_text_border_radius,input#slope_text_border_size,input#slope_text_title_size{cursor:pointer;background:0 0;color:#444;font-size:14px;width:22px;font-weight:700!important;border:0;pointer-events:none;box-shadow:none!important;padding-left:0}.slope-grid-container{display:grid;grid-template-columns:3fr 2fr}.slope-setting-container{margin-top:10px}.slope-docs-container{margin-left:30px;text-align:left;border-left:1px solid #d3d3d3;margin-right:10px;padding-left:10px}@media only screen and (max-width:1250px){.slope-grid-container{grid-template-columns:1fr}.slope-docs-container{margin-top:25px;margin-left:initial;padding-left:initial;border-color:transparent!important;margin-right:30px}}@media only screen and (max-width:768px){#slope-widget-container .form-table th,.slope-style-field{width:100%!important}.slope-radio-field label{margin-top:0!important}.slope-terms input[type=checkbox]{margin-bottom:4rem!important}.slope-setting-field input[type=checkbox]{margin:-.25rem .25rem 1rem 0}}#slope-widget-container .form-table{border-collapse:collapse;margin-top:.5em;width:100%;clear:both;margin-bottom:1em}#slope-widget-container tbody{display:table-row-group;vertical-align:middle;border-color:inherit}#slope-widget-container .form-table th,.slope-style-field{padding-top:2em;text-align:left;width:240px;font-size:13px;font-weight:700;cursor:default!important;margin-right:20px}#slope-widget-container .form-table td{padding:1em 0;vertical-align:middle;font-weight:initial}.slope-setting-field input{display:flow;font-weight:400}.slope-setting-field input.wp-picker-clear,input[data-role=slope-color-picker]{position:relative;left:0}.slope-style-container{display:none;width:60%;float:left;margin-top:25px}.slope-setting-field input:checked[type=checkbox]:before,.slope-style-field input:checked[type=checkbox]:before{left:27px!important;top:2px!important}.slope-layout-container-promotions input[type=radio],.slope-setting-container input[type=checkbox],.slope-setting-container input[type=radio],.slope-setting-container-promotions input[type=checkbox],.slope-style-container-promotions input[type=radio]{float:left!important;display:block!important}#slope_children_age_max,#slope_min_days{width:70px}.slope-setting-field.slope-radio-field{padding:1em;margin-bottom:-2.5em;font-weight:400;display:block}.slope-radio-field label{margin-left:15px;width:100%;display:block!important;margin-bottom:.5em;margin-top:-5px}.slope-layout-container{display:none;width:60%;float:left}.slope-setting-container-promotions{display:block}.slope-layout-container-promotions,.slope-style-container-promotions{display:none}.slope-layout-container-promotions,.slope-setting-container-promotions,.slope-style-container-promotions{margin-top:25px}.slope-border-size-promotions{width:50px;text-align:center;border:0}input#slope_promotions_uuid{background:0 0}input#slope_promotions_border_size{text-align:left!important}#slope_uuid{width:40%!important;min-width:280px!important}.slp-font-16{font-size:16px!important}.slp-font-normal{font-weight:400!important}.slp-font-semibold{font-weight:600!important}.slp-font-bold{font-weight:700!important}.slp-gap-10px{gap:10px}.slp-margin-auto{margin:auto}.slp-margin-0{margin:0}.slp-width-full{width:100%}.slp-box-sizing-border-box{box-sizing:border-box}.slp-padding-24px{padding:24px}.slp-margin-top-10px{margin-top:10px}.slp-margin-top-20px{margin-top:20px}.slp-margin-top-5px{margin-top:5px}.slp-margin-bottom-10px{margin-bottom:10px}.slp-margin-bottom-0{margin-bottom:0}.slp-bg-white{background-color:#fff}.slp-bg-gray{background-color:#adb9c9}.slp-bg-light-gray{background-color:#f5f5f5}.slp-padding-bottom-24px{padding-bottom:24px}.slp-cursor-pointer,.slp-cursor-pointer:hover{cursor:pointer}.slp-settings-container{border-radius:12px}.slp-divider{border-bottom:1px solid #e0e0e0;width:100%;min-width:100%}.slp-select{width:25%;min-width:140px}.slp-radio{display:flex;flex-direction:row;align-items:center;gap:10px;flex-wrap:wrap}.slp-radio-title{display:inline-block;margin-right:1rem}.slp-radio-options{display:flex;gap:20px;flex-wrap:wrap}.slp-flex-adaptive-row,.slp-flex-row{display:flex;flex-direction:row;align-items:center}.slp-flex-adaptive-row{align-items:baseline}.slp-padding-0{padding:0!important}.slp-bg-gold{background-color:#ffdc73}.slp-warning-container{display:flex;align-items:center;gap:10px;padding:1px 10px;margin-top:10px;border-radius:8px}@media only screen and (max-width:768px){.slp-radio{flex-direction:column;align-items:flex-start}.slp-radio-options{margin-top:10px}.slp-select{width:100%}.slp-radio-title{margin-right:0;margin-bottom:10px}.slp-flex-adaptive-row{flex-direction:column;align-items:flex-start}}@media only screen and (max-width:480px){.slp-settings-container{border-radius:8px}.slp-flex-row{flex-direction:column;align-items:flex-start}} 6 .slope-flatpickr-calendar{padding: 10px 2px;-webkit-justify-content:flex-start;justify-content:flex-start}.numInputWrapper span{display:none}.slope-flatpickr-calendar.open{z-index:9999!important}.slope-flatpickr-calendar .flatpickr-month input.cur-year,.slope-flatpickr-calendar .flatpickr-month input[type=number]{-moz-appearance:textfield!important;-webkit-appearance:textfield!important;appearance:textfield!important;background:0 0!important;border-radius:0!important;border:0!important;-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit!important;cursor:text;display:inline-block!important;font-family:inherit!important;font-size:inherit!important;font-weight:inherit!important;height:auto!important;line-height:inherit!important;margin:0!important;padding:0 0 0 .5ch!important;vertical-align:initial!important}.slope-flatpickr-calendar .flatpickr-month input.cur-year:focus,.slope-flatpickr-calendar .flatpickr-month input[type=number]:focus{box-shadow:none!important}.slope-flatpickr-calendar .flatpickr-month .numInputWrapper{background:0 0}.slope-flatpickr-calendar .flatpickr-month .flatpickr-current-month{padding-top:0!important}.slope-flatpickr-calendar .dayContainer+.dayContainer,.slope-flatpickr-calendar .flatpickr-day.inRange,.slope-flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1){-webkit-box-shadow:none!important;box-shadow:none!important}.slope-flatpickr-calendar .flatpickr-day.inRange,.slope-flatpickr-calendar .flatpickr-day.nextMonthDay.inRange,.slope-flatpickr-calendar .flatpickr-day.nextMonthDay.today.inRange,.slope-flatpickr-calendar .flatpickr-day.nextMonthDay:focus,.slope-flatpickr-calendar .flatpickr-day.nextMonthDay:hover,.slope-flatpickr-calendar .flatpickr-day.prevMonthDay.inRange,.slope-flatpickr-calendar .flatpickr-day.prevMonthDay.today.inRange,.slope-flatpickr-calendar .flatpickr-day.prevMonthDay:focus,.slope-flatpickr-calendar .flatpickr-day.prevMonthDay:hover,.slope-flatpickr-calendar .flatpickr-day.today.inRange,.slope-flatpickr-calendar .flatpickr-day:focus,.slope-flatpickr-calendar .flatpickr-day:hover{background-color:rgba(0,0,0,.1);border-color:transparent}.slope-flatpickr-calendar .flatpickr-day{height:44px;line-height:44px;max-height:44px;max-width:44px;width:44px}.slope-flatpickr-calendar .flatpickr-day.flatpickr-disabled{opacity:.3}.slope-flatpickr-calendar .flatpickr-day.flatpickr-disabled:hover{background-color:unset}.slope-flatpickr-calendar .prevMonthDay.hidden{display:inherit!important}6 .slope-flatpickr-calendar{padding:0 2px 10px;-webkit-justify-content:flex-start;justify-content:flex-start}.numInputWrapper span{display:none}.slope-flatpickr-calendar.open{z-index:9999!important}.slope-flatpickr-calendar .flatpickr-month input.cur-year,.slope-flatpickr-calendar .flatpickr-month input[type=number]{-moz-appearance:textfield!important;-webkit-appearance:textfield!important;appearance:textfield!important;background:0 0!important;border-radius:0!important;border:0!important;-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit!important;cursor:text;display:inline-block!important;font-family:inherit!important;font-size:inherit!important;font-weight:inherit!important;height:auto!important;line-height:inherit!important;margin:0!important;padding:0 0 0 .5ch!important;vertical-align:initial!important}.slope-flatpickr-calendar .flatpickr-month input.cur-year:focus,.slope-flatpickr-calendar .flatpickr-month input[type=number]:focus{box-shadow:none!important}.slope-flatpickr-calendar .flatpickr-month .numInputWrapper{background:0 0}.slope-flatpickr-calendar .flatpickr-month .flatpickr-current-month{padding-top:10px!important}.slope-flatpickr-calendar .dayContainer+.dayContainer,.slope-flatpickr-calendar .flatpickr-day.inRange,.slope-flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1){-webkit-box-shadow:none!important;box-shadow:none!important}.slope-flatpickr-calendar .flatpickr-day.inRange,.slope-flatpickr-calendar .flatpickr-day.nextMonthDay.inRange,.slope-flatpickr-calendar .flatpickr-day.nextMonthDay.today.inRange,.slope-flatpickr-calendar .flatpickr-day.nextMonthDay:focus,.slope-flatpickr-calendar .flatpickr-day.nextMonthDay:hover,.slope-flatpickr-calendar .flatpickr-day.prevMonthDay.inRange,.slope-flatpickr-calendar .flatpickr-day.prevMonthDay.today.inRange,.slope-flatpickr-calendar .flatpickr-day.prevMonthDay:focus,.slope-flatpickr-calendar .flatpickr-day.prevMonthDay:hover,.slope-flatpickr-calendar .flatpickr-day.today.inRange,.slope-flatpickr-calendar .flatpickr-day:focus,.slope-flatpickr-calendar .flatpickr-day:hover{background-color:rgba(0,0,0,.1);border-color:transparent}.slope-flatpickr-calendar .flatpickr-day{height:44px;line-height:44px;max-height:44px;max-width:44px;width:44px}.slope-flatpickr-calendar .flatpickr-day.disabled,.slope-flatpickr-calendar .flatpickr-day.flatpickr-disabled{opacity:.3}.slope-flatpickr-calendar .flatpickr-day.disabled:hover,.slope-flatpickr-calendar .flatpickr-day.flatpickr-disabled:hover{background-color:unset}.slope-flatpickr-calendar .prevMonthDay.hidden{display:inherit!important} 7 7 @media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.slope-widgets-container .dayContainer{display:block!important;width:356px!important}} -
slope-widgets/tags/4.3.4/includes/admin/GlobalSettings.php
r3385288 r3415084 21 21 $slug = 'slope-widgets/slope-widgets.php'; 22 22 23 // According to WordPress this comment in the codex the best way to add a menu icon is to use a base64 encoded 24 // SVG image: https://developer.wordpress.org/reference/functions/add_menu_page/#comment-5845 25 $svg = file_get_contents(SLOPE_WIDGETS_PATH . '/images/icon.svg'); 26 23 27 add_menu_page( 24 28 esc_html__('Impostazioni di Slope Widgets', 'slope-widgets'), … … 27 31 $slug, 28 32 [$this, 'renderSettingsPage'], 29 plugins_url('slope-widgets/images/icon.png')33 'data:image/svg+xml;base64,'.base64_encode($svg) 30 34 ); 31 35 -
slope-widgets/tags/4.3.4/includes/admin/Promotions.php
r3385288 r3415084 139 139 140 140 // NOTE: An expiration time of 0 means the cache will not expire! 141 if (SLOPE_PR MOTIONS_CACHE_EXPIRATION_SECONDS !== 0) {142 set_transient($cache_key, $promotions, SLOPE_PR MOTIONS_CACHE_EXPIRATION_SECONDS);141 if (SLOPE_PROMOTIONS_CACHE_EXPIRATION_SECONDS !== 0) { 142 set_transient($cache_key, $promotions, SLOPE_PROMOTIONS_CACHE_EXPIRATION_SECONDS); 143 143 } 144 144 wp_send_json_success($promotions); … … 148 148 * Returns the content displayed by the shortcode 149 149 * 150 * @param mixed[] $atts The shortcode attributes150 * @param mixed[]|string $atts The shortcode attributes 151 151 */ 152 function slope_promotions_shortcode( array$atts): string152 function slope_promotions_shortcode($atts): string 153 153 { 154 154 $uuid = GlobalSettingsProvider::getEstablishmentId(); 155 155 $bookTarget = GlobalSettingsProvider::shouldOpenLinksOnANewTab() ? ' data-open-new-tab="true"' : ''; 156 156 // Try to get the language from the shortcode attribute 157 $ atts = shortcode_atts(157 $shortcodeAttributes = shortcode_atts( 158 158 [ 159 159 'lang' => '', 160 160 ], 161 $atts 161 // TODO: $atts should always be an array, but when no attributes are passed it can be a string. 162 // This has been fixed in later versions of WordPress (>=6.5), so we can remove this check in the future 163 // and enforce $atts type to be always an array. 164 // see: https://core.trac.wordpress.org/changeset/57597 165 is_array($atts) ? $atts : [] 162 166 ); 163 167 164 168 $uuid = esc_attr($uuid); 165 169 166 $languageAttribute = $ atts['lang']167 ? ' data-lang="' . esc_attr($ atts['lang']) . '"'170 $languageAttribute = $shortcodeAttributes['lang'] 171 ? ' data-lang="' . esc_attr($shortcodeAttributes['lang']) . '"' 168 172 : ''; 169 173 -
slope-widgets/tags/4.3.4/includes/admin/Reservations.php
r3385288 r3415084 58 58 * Returns the content displayed by the shortcode 59 59 * 60 * @param mixed[] $atts The shortcode attributes60 * @param mixed[]|string $atts The shortcode attributes 61 61 */ 62 public function getShortcodeContent( array$atts): string62 public function getShortcodeContent($atts): string 63 63 { 64 64 $languageResolver = new LanguageResolver(); … … 68 68 69 69 // Try to get the language from the shortcode attribute 70 $ atts = shortcode_atts(70 $shortcodeAttributes = shortcode_atts( 71 71 [ 72 72 'lang' => null, 73 73 ], 74 $atts 75 ); 76 77 $lang = $languageResolver->resolveLanguage($atts['lang']); 74 // TODO: $atts should always be an array, but when no attributes are passed it can be a string. 75 // This has been fixed in later versions of WordPress (>=6.5), so we can remove this check in the future 76 // and enforce $atts type to be always an array. 77 // see: https://core.trac.wordpress.org/changeset/57597 78 is_array($atts) ? $atts : [] 79 ); 80 81 $lang = $languageResolver->resolveLanguage($shortcodeAttributes['lang']); 78 82 79 83 // Strings mapping for languages … … 276 280 color: <?php echo esc_attr($fontColor) ?> !important; 277 281 } 278 279 .slope-flatpickr-calendar .flatpickr-current-month span.cur-month:hover,280 .slope-flatpickr-calendar .flatpickr-current-month input.cur-year,281 282 </style> 282 283 283 <div id="slope-widgets-config" data-language="<?php echo esc_attr($ atts['lang']) ?>" data-min-days="<?php echo esc_attr($minDays) ?>"></div>284 <div id="slope-widgets-config" data-language="<?php echo esc_attr($shortcodeAttributes['lang']) ?>" data-min-days="<?php echo esc_attr($minDays) ?>"></div> 284 285 <div class="slope-widgets-container" data-widget-count> 285 286 <form action="<?php echo esc_url($bookingEngineActionURL) ?>" method="POST"> -
slope-widgets/tags/4.3.4/js/slope-admin.js
r3289147 r3415084 10 10 jQuery("#layout_page_promotions_select").removeClass("nav-tab-active"); 11 11 } 12 13 12 function activate_page_style_promotions() { 14 13 jQuery(".slope-setting-container-promotions").css("display", "none"); … … 19 18 jQuery("#layout_page_promotions_select").removeClass("nav-tab-active"); 20 19 } 21 22 20 function activate_page_layout_promotions() { 23 21 jQuery(".slope-setting-container-promotions").css("display", "none"); … … 32 30 function slopeCheckValidity() { 33 31 var form = new SlopeForm(jQuery("#slp-welcome-form"), ["user-type", "email-address"]); 34 35 32 if (!form.isValid() || !document.getElementById("slope-terms").checked) { 36 33 jQuery(this).find('button[type="submit"]').attr("disabled", true); … … 39 36 } 40 37 } 41 42 38 function slopeSendDataAndRedirect(nextPageUrl) { 43 39 var slopeWelcomeForm = new SlopeForm(jQuery("#slp-welcome-form"), ["user-type", "email-address"]); 44 40 var ZAPIER_URL = "https://hooks.zapier.com/hooks/catch/3734337/o3u54mk/"; 45 46 41 if (slopeWelcomeForm.isValid() || !document.getElementById("slope-terms").checked) { 47 42 slopeWelcomeForm.send(ZAPIER_URL, function () { … … 50 45 } 51 46 } 52 53 47 jQuery(document).on("change", "#slp-welcome-form", slopeCheckValidity); -
slope-widgets/tags/4.3.4/js/slope-modules.js
r2806537 r3415084 8 8 return (e = Object.assign || function (e) { 9 9 for (var t, n = 1, a = arguments.length; n < a; n++) for (var i in t = arguments[n]) Object.prototype.hasOwnProperty.call(t, i) && (e[i] = t[i]); 10 11 10 return e; 12 11 }).apply(this, arguments); 13 12 }; 14 15 13 function t() { 16 14 for (var e = 0, t = 0, n = arguments.length; t < n; t++) e += arguments[t].length; 17 18 15 var a = Array(e), 19 i = 0; 20 16 i = 0; 21 17 for (t = 0; t < n; t++) for (var o = arguments[t], r = 0, l = o.length; r < l; r++, i++) a[i] = o[r]; 22 23 18 return a; 24 19 } 25 26 20 var n = ["onChange", "onClose", "onDayCreate", "onDestroy", "onKeyDown", "onMonthChange", "onOpen", "onParseConfig", "onReady", "onValueUpdate", "onYearChange", "onPreCalendarPosition"], 27 a = { 28 _disable: [], 29 allowInput: !1, 30 allowInvalidPreload: !1, 31 altFormat: "F j, Y", 32 altInput: !1, 33 altInputClass: "form-control input", 34 animate: "object" == typeof window && -1 === window.navigator.userAgent.indexOf("MSIE"), 35 ariaDateFormat: "F j, Y", 36 autoFillDefaultTime: !0, 37 clickOpens: !0, 38 closeOnSelect: !0, 39 conjunction: ", ", 40 dateFormat: "Y-m-d", 41 defaultHour: 12, 42 defaultMinute: 0, 43 defaultSeconds: 0, 44 disable: [], 45 disableMobile: !1, 46 enableSeconds: !1, 47 enableTime: !1, 48 errorHandler: function (e) { 49 return "undefined" != typeof console && console.warn(e); 21 a = { 22 _disable: [], 23 allowInput: !1, 24 allowInvalidPreload: !1, 25 altFormat: "F j, Y", 26 altInput: !1, 27 altInputClass: "form-control input", 28 animate: "object" == typeof window && -1 === window.navigator.userAgent.indexOf("MSIE"), 29 ariaDateFormat: "F j, Y", 30 autoFillDefaultTime: !0, 31 clickOpens: !0, 32 closeOnSelect: !0, 33 conjunction: ", ", 34 dateFormat: "Y-m-d", 35 defaultHour: 12, 36 defaultMinute: 0, 37 defaultSeconds: 0, 38 disable: [], 39 disableMobile: !1, 40 enableSeconds: !1, 41 enableTime: !1, 42 errorHandler: function (e) { 43 return "undefined" != typeof console && console.warn(e); 44 }, 45 getWeek: function (e) { 46 var t = new Date(e.getTime()); 47 t.setHours(0, 0, 0, 0), t.setDate(t.getDate() + 3 - (t.getDay() + 6) % 7); 48 var n = new Date(t.getFullYear(), 0, 4); 49 return 1 + Math.round(((t.getTime() - n.getTime()) / 864e5 - 3 + (n.getDay() + 6) % 7) / 7); 50 }, 51 hourIncrement: 1, 52 ignoredFocusElements: [], 53 inline: !1, 54 locale: "default", 55 minuteIncrement: 5, 56 mode: "single", 57 monthSelectorType: "dropdown", 58 nextArrow: "<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 17 17'><g></g><path d='M13.207 8.472l-7.854 7.854-0.707-0.707 7.146-7.146-7.146-7.148 0.707-0.707 7.854 7.854z' /></svg>", 59 noCalendar: !1, 60 now: new Date(), 61 onChange: [], 62 onClose: [], 63 onDayCreate: [], 64 onDestroy: [], 65 onKeyDown: [], 66 onMonthChange: [], 67 onOpen: [], 68 onParseConfig: [], 69 onReady: [], 70 onValueUpdate: [], 71 onYearChange: [], 72 onPreCalendarPosition: [], 73 plugins: [], 74 position: "auto", 75 positionElement: void 0, 76 prevArrow: "<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 17 17'><g></g><path d='M5.207 8.471l7.146 7.147-0.707 0.707-7.853-7.854 7.854-7.853 0.707 0.707-7.147 7.146z' /></svg>", 77 shorthandCurrentMonth: !1, 78 showMonths: 1, 79 static: !1, 80 time_24hr: !1, 81 weekNumbers: !1, 82 wrap: !1 50 83 }, 51 getWeek: function (e) { 52 var t = new Date(e.getTime()); 53 t.setHours(0, 0, 0, 0), t.setDate(t.getDate() + 3 - (t.getDay() + 6) % 7); 54 var n = new Date(t.getFullYear(), 0, 4); 55 return 1 + Math.round(((t.getTime() - n.getTime()) / 864e5 - 3 + (n.getDay() + 6) % 7) / 7); 84 i = { 85 weekdays: { 86 shorthand: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], 87 longhand: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"] 88 }, 89 months: { 90 shorthand: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], 91 longhand: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"] 92 }, 93 daysInMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], 94 firstDayOfWeek: 0, 95 ordinal: function (e) { 96 var t = e % 100; 97 if (t > 3 && t < 21) return "th"; 98 switch (t % 10) { 99 case 1: 100 return "st"; 101 case 2: 102 return "nd"; 103 case 3: 104 return "rd"; 105 default: 106 return "th"; 107 } 108 }, 109 rangeSeparator: " to ", 110 weekAbbreviation: "Wk", 111 scrollTitle: "Scroll to increment", 112 toggleTitle: "Click to toggle", 113 amPM: ["AM", "PM"], 114 yearAriaLabel: "Year", 115 monthAriaLabel: "Month", 116 hourAriaLabel: "Hour", 117 minuteAriaLabel: "Minute", 118 time_24hr: !1 56 119 }, 57 hourIncrement: 1, 58 ignoredFocusElements: [], 59 inline: !1, 60 locale: "default", 61 minuteIncrement: 5, 62 mode: "single", 63 monthSelectorType: "dropdown", 64 nextArrow: "<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 17 17'><g></g><path d='M13.207 8.472l-7.854 7.854-0.707-0.707 7.146-7.146-7.146-7.148 0.707-0.707 7.854 7.854z' /></svg>", 65 noCalendar: !1, 66 now: new Date(), 67 onChange: [], 68 onClose: [], 69 onDayCreate: [], 70 onDestroy: [], 71 onKeyDown: [], 72 onMonthChange: [], 73 onOpen: [], 74 onParseConfig: [], 75 onReady: [], 76 onValueUpdate: [], 77 onYearChange: [], 78 onPreCalendarPosition: [], 79 plugins: [], 80 position: "auto", 81 positionElement: void 0, 82 prevArrow: "<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 17 17'><g></g><path d='M5.207 8.471l7.146 7.147-0.707 0.707-7.853-7.854 7.854-7.853 0.707 0.707-7.147 7.146z' /></svg>", 83 shorthandCurrentMonth: !1, 84 showMonths: 1, 85 static: !1, 86 time_24hr: !1, 87 weekNumbers: !1, 88 wrap: !1 89 }, 90 i = { 91 weekdays: { 92 shorthand: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], 93 longhand: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"] 120 o = function (e, t) { 121 return void 0 === t && (t = 2), ("000" + e).slice(-1 * t); 94 122 }, 95 months: { 96 shorthand: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], 97 longhand: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"] 98 }, 99 daysInMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], 100 firstDayOfWeek: 0, 101 ordinal: function (e) { 102 var t = e % 100; 103 if (t > 3 && t < 21) return "th"; 104 105 switch (t % 10) { 106 case 1: 107 return "st"; 108 109 case 2: 110 return "nd"; 111 112 case 3: 113 return "rd"; 114 115 default: 116 return "th"; 117 } 118 }, 119 rangeSeparator: " to ", 120 weekAbbreviation: "Wk", 121 scrollTitle: "Scroll to increment", 122 toggleTitle: "Click to toggle", 123 amPM: ["AM", "PM"], 124 yearAriaLabel: "Year", 125 monthAriaLabel: "Month", 126 hourAriaLabel: "Hour", 127 minuteAriaLabel: "Minute", 128 time_24hr: !1 129 }, 130 o = function (e, t) { 131 return void 0 === t && (t = 2), ("000" + e).slice(-1 * t); 132 }, 133 r = function (e) { 134 return !0 === e ? 1 : 0; 135 }; 136 123 r = function (e) { 124 return !0 === e ? 1 : 0; 125 }; 137 126 function l(e, t) { 138 127 var n; … … 144 133 }; 145 134 } 146 147 135 var c = function (e) { 148 136 return e instanceof Array ? e : [e]; 149 137 }; 150 151 138 function d(e, t, n) { 152 139 if (!0 === n) return e.classList.add(t); 153 140 e.classList.remove(t); 154 141 } 155 156 142 function s(e, t, n) { 157 143 var a = window.document.createElement(e); 158 144 return t = t || "", n = n || "", a.className = t, void 0 !== n && (a.textContent = n), a; 159 145 } 160 161 146 function u(e) { 162 147 for (; e.firstChild;) e.removeChild(e.firstChild); 163 148 } 164 165 149 function f(e, t) { 166 150 return t(e) ? e : e.parentNode ? f(e.parentNode, t) : void 0; 167 151 } 168 169 152 function m(e, t) { 170 153 var n = s("div", "numInputWrapper"), 171 a = s("input", "numInput " + e),172 i = s("span", "arrowUp"),173 o = s("span", "arrowDown");154 a = s("input", "numInput " + e), 155 i = s("span", "arrowUp"), 156 o = s("span", "arrowDown"); 174 157 if (-1 === navigator.userAgent.indexOf("MSIE 9.0") ? a.type = "number" : (a.type = "text", a.pattern = "\\d*"), void 0 !== t) for (var r in t) a.setAttribute(r, t[r]); 175 158 return n.appendChild(a), n.appendChild(i), n.appendChild(o), n; 176 159 } 177 178 160 function g(e) { 179 161 try { … … 183 165 } 184 166 } 185 186 167 var p = function () {}, 187 h = function (e, t, n) { 188 return n.months[t ? "shorthand" : "longhand"][e]; 189 }, 190 v = { 191 D: p, 192 F: function (e, t, n) { 193 e.setMonth(n.months.longhand.indexOf(t)); 168 h = function (e, t, n) { 169 return n.months[t ? "shorthand" : "longhand"][e]; 194 170 }, 195 G: function (e, t) { 196 e.setHours(parseFloat(t)); 171 v = { 172 D: p, 173 F: function (e, t, n) { 174 e.setMonth(n.months.longhand.indexOf(t)); 175 }, 176 G: function (e, t) { 177 e.setHours(parseFloat(t)); 178 }, 179 H: function (e, t) { 180 e.setHours(parseFloat(t)); 181 }, 182 J: function (e, t) { 183 e.setDate(parseFloat(t)); 184 }, 185 K: function (e, t, n) { 186 e.setHours(e.getHours() % 12 + 12 * r(new RegExp(n.amPM[1], "i").test(t))); 187 }, 188 M: function (e, t, n) { 189 e.setMonth(n.months.shorthand.indexOf(t)); 190 }, 191 S: function (e, t) { 192 e.setSeconds(parseFloat(t)); 193 }, 194 U: function (e, t) { 195 return new Date(1e3 * parseFloat(t)); 196 }, 197 W: function (e, t, n) { 198 var a = parseInt(t), 199 i = new Date(e.getFullYear(), 0, 2 + 7 * (a - 1), 0, 0, 0, 0); 200 return i.setDate(i.getDate() - i.getDay() + n.firstDayOfWeek), i; 201 }, 202 Y: function (e, t) { 203 e.setFullYear(parseFloat(t)); 204 }, 205 Z: function (e, t) { 206 return new Date(t); 207 }, 208 d: function (e, t) { 209 e.setDate(parseFloat(t)); 210 }, 211 h: function (e, t) { 212 e.setHours(parseFloat(t)); 213 }, 214 i: function (e, t) { 215 e.setMinutes(parseFloat(t)); 216 }, 217 j: function (e, t) { 218 e.setDate(parseFloat(t)); 219 }, 220 l: p, 221 m: function (e, t) { 222 e.setMonth(parseFloat(t) - 1); 223 }, 224 n: function (e, t) { 225 e.setMonth(parseFloat(t) - 1); 226 }, 227 s: function (e, t) { 228 e.setSeconds(parseFloat(t)); 229 }, 230 u: function (e, t) { 231 return new Date(parseFloat(t)); 232 }, 233 w: p, 234 y: function (e, t) { 235 e.setFullYear(2e3 + parseFloat(t)); 236 } 197 237 }, 198 H: function (e, t) { 199 e.setHours(parseFloat(t)); 238 D = { 239 D: "(\\w+)", 240 F: "(\\w+)", 241 G: "(\\d\\d|\\d)", 242 H: "(\\d\\d|\\d)", 243 J: "(\\d\\d|\\d)\\w+", 244 K: "", 245 M: "(\\w+)", 246 S: "(\\d\\d|\\d)", 247 U: "(.+)", 248 W: "(\\d\\d|\\d)", 249 Y: "(\\d{4})", 250 Z: "(.+)", 251 d: "(\\d\\d|\\d)", 252 h: "(\\d\\d|\\d)", 253 i: "(\\d\\d|\\d)", 254 j: "(\\d\\d|\\d)", 255 l: "(\\w+)", 256 m: "(\\d\\d|\\d)", 257 n: "(\\d\\d|\\d)", 258 s: "(\\d\\d|\\d)", 259 u: "(.+)", 260 w: "(\\d\\d|\\d)", 261 y: "(\\d{2})" 200 262 }, 201 J: function (e, t) { 202 e.setDate(parseFloat(t)); 263 w = { 264 Z: function (e) { 265 return e.toISOString(); 266 }, 267 D: function (e, t, n) { 268 return t.weekdays.shorthand[w.w(e, t, n)]; 269 }, 270 F: function (e, t, n) { 271 return h(w.n(e, t, n) - 1, !1, t); 272 }, 273 G: function (e, t, n) { 274 return o(w.h(e, t, n)); 275 }, 276 H: function (e) { 277 return o(e.getHours()); 278 }, 279 J: function (e, t) { 280 return void 0 !== t.ordinal ? e.getDate() + t.ordinal(e.getDate()) : e.getDate(); 281 }, 282 K: function (e, t) { 283 return t.amPM[r(e.getHours() > 11)]; 284 }, 285 M: function (e, t) { 286 return h(e.getMonth(), !0, t); 287 }, 288 S: function (e) { 289 return o(e.getSeconds()); 290 }, 291 U: function (e) { 292 return e.getTime() / 1e3; 293 }, 294 W: function (e, t, n) { 295 return n.getWeek(e); 296 }, 297 Y: function (e) { 298 return o(e.getFullYear(), 4); 299 }, 300 d: function (e) { 301 return o(e.getDate()); 302 }, 303 h: function (e) { 304 return e.getHours() % 12 ? e.getHours() % 12 : 12; 305 }, 306 i: function (e) { 307 return o(e.getMinutes()); 308 }, 309 j: function (e) { 310 return e.getDate(); 311 }, 312 l: function (e, t) { 313 return t.weekdays.longhand[e.getDay()]; 314 }, 315 m: function (e) { 316 return o(e.getMonth() + 1); 317 }, 318 n: function (e) { 319 return e.getMonth() + 1; 320 }, 321 s: function (e) { 322 return e.getSeconds(); 323 }, 324 u: function (e) { 325 return e.getTime(); 326 }, 327 w: function (e) { 328 return e.getDay(); 329 }, 330 y: function (e) { 331 return String(e.getFullYear()).substring(2); 332 } 203 333 }, 204 K: function (e, t, n) { 205 e.setHours(e.getHours() % 12 + 12 * r(new RegExp(n.amPM[1], "i").test(t))); 206 }, 207 M: function (e, t, n) { 208 e.setMonth(n.months.shorthand.indexOf(t)); 209 }, 210 S: function (e, t) { 211 e.setSeconds(parseFloat(t)); 212 }, 213 U: function (e, t) { 214 return new Date(1e3 * parseFloat(t)); 215 }, 216 W: function (e, t, n) { 217 var a = parseInt(t), 218 i = new Date(e.getFullYear(), 0, 2 + 7 * (a - 1), 0, 0, 0, 0); 219 return i.setDate(i.getDate() - i.getDay() + n.firstDayOfWeek), i; 220 }, 221 Y: function (e, t) { 222 e.setFullYear(parseFloat(t)); 223 }, 224 Z: function (e, t) { 225 return new Date(t); 226 }, 227 d: function (e, t) { 228 e.setDate(parseFloat(t)); 229 }, 230 h: function (e, t) { 231 e.setHours(parseFloat(t)); 232 }, 233 i: function (e, t) { 234 e.setMinutes(parseFloat(t)); 235 }, 236 j: function (e, t) { 237 e.setDate(parseFloat(t)); 238 }, 239 l: p, 240 m: function (e, t) { 241 e.setMonth(parseFloat(t) - 1); 242 }, 243 n: function (e, t) { 244 e.setMonth(parseFloat(t) - 1); 245 }, 246 s: function (e, t) { 247 e.setSeconds(parseFloat(t)); 248 }, 249 u: function (e, t) { 250 return new Date(parseFloat(t)); 251 }, 252 w: p, 253 y: function (e, t) { 254 e.setFullYear(2e3 + parseFloat(t)); 255 } 256 }, 257 D = { 258 D: "(\\w+)", 259 F: "(\\w+)", 260 G: "(\\d\\d|\\d)", 261 H: "(\\d\\d|\\d)", 262 J: "(\\d\\d|\\d)\\w+", 263 K: "", 264 M: "(\\w+)", 265 S: "(\\d\\d|\\d)", 266 U: "(.+)", 267 W: "(\\d\\d|\\d)", 268 Y: "(\\d{4})", 269 Z: "(.+)", 270 d: "(\\d\\d|\\d)", 271 h: "(\\d\\d|\\d)", 272 i: "(\\d\\d|\\d)", 273 j: "(\\d\\d|\\d)", 274 l: "(\\w+)", 275 m: "(\\d\\d|\\d)", 276 n: "(\\d\\d|\\d)", 277 s: "(\\d\\d|\\d)", 278 u: "(.+)", 279 w: "(\\d\\d|\\d)", 280 y: "(\\d{2})" 281 }, 282 w = { 283 Z: function (e) { 284 return e.toISOString(); 285 }, 286 D: function (e, t, n) { 287 return t.weekdays.shorthand[w.w(e, t, n)]; 288 }, 289 F: function (e, t, n) { 290 return h(w.n(e, t, n) - 1, !1, t); 291 }, 292 G: function (e, t, n) { 293 return o(w.h(e, t, n)); 294 }, 295 H: function (e) { 296 return o(e.getHours()); 297 }, 298 J: function (e, t) { 299 return void 0 !== t.ordinal ? e.getDate() + t.ordinal(e.getDate()) : e.getDate(); 300 }, 301 K: function (e, t) { 302 return t.amPM[r(e.getHours() > 11)]; 303 }, 304 M: function (e, t) { 305 return h(e.getMonth(), !0, t); 306 }, 307 S: function (e) { 308 return o(e.getSeconds()); 309 }, 310 U: function (e) { 311 return e.getTime() / 1e3; 312 }, 313 W: function (e, t, n) { 314 return n.getWeek(e); 315 }, 316 Y: function (e) { 317 return o(e.getFullYear(), 4); 318 }, 319 d: function (e) { 320 return o(e.getDate()); 321 }, 322 h: function (e) { 323 return e.getHours() % 12 ? e.getHours() % 12 : 12; 324 }, 325 i: function (e) { 326 return o(e.getMinutes()); 327 }, 328 j: function (e) { 329 return e.getDate(); 330 }, 331 l: function (e, t) { 332 return t.weekdays.longhand[e.getDay()]; 333 }, 334 m: function (e) { 335 return o(e.getMonth() + 1); 336 }, 337 n: function (e) { 338 return e.getMonth() + 1; 339 }, 340 s: function (e) { 341 return e.getSeconds(); 342 }, 343 u: function (e) { 344 return e.getTime(); 345 }, 346 w: function (e) { 347 return e.getDay(); 348 }, 349 y: function (e) { 350 return String(e.getFullYear()).substring(2); 351 } 352 }, 353 b = function (e) { 354 var t = e.config, 334 b = function (e) { 335 var t = e.config, 355 336 n = void 0 === t ? a : t, 356 337 o = e.l10n, … … 358 339 l = e.isMobile, 359 340 c = void 0 !== l && l; 360 return function (e, t, a) {361 var i = a || r;362 return void 0 === n.formatDate || c ? t.split("").map(function (t, a, o) {363 return w[t] && "\\" !== o[a - 1] ? w[t](e, i, n) : "\\" !== t ? t : "";364 }).join("") : n.formatDate(e, t, i);365 };366 },367 C = function (e) {368 var t = e.config,341 return function (e, t, a) { 342 var i = a || r; 343 return void 0 === n.formatDate || c ? t.split("").map(function (t, a, o) { 344 return w[t] && "\\" !== o[a - 1] ? w[t](e, i, n) : "\\" !== t ? t : ""; 345 }).join("") : n.formatDate(e, t, i); 346 }; 347 }, 348 C = function (e) { 349 var t = e.config, 369 350 n = void 0 === t ? a : t, 370 351 o = e.l10n, 371 352 r = void 0 === o ? i : o; 372 return function (e, t, i, o) {373 if (0 === e || e) {374 var l,353 return function (e, t, i, o) { 354 if (0 === e || e) { 355 var l, 375 356 c = o || r, 376 357 d = e; 377 if (e instanceof Date) l = new Date(e.getTime());else if ("string" != typeof e && void 0 !== e.toFixed) l = new Date(e);else if ("string" == typeof e) {378 var s = t || (n || a).dateFormat,358 if (e instanceof Date) l = new Date(e.getTime());else if ("string" != typeof e && void 0 !== e.toFixed) l = new Date(e);else if ("string" == typeof e) { 359 var s = t || (n || a).dateFormat, 379 360 u = String(e).trim(); 380 if ("today" === u) l = new Date(), i = !0;else if (/Z$/.test(u) || /GMT$/.test(u)) l = new Date(e);else if (n && n.parseDate) l = n.parseDate(e, s);else { 381 l = n && n.noCalendar ? new Date(new Date().setHours(0, 0, 0, 0)) : new Date(new Date().getFullYear(), 0, 1, 0, 0, 0, 0); 382 383 for (var f = void 0, m = [], g = 0, p = 0, h = ""; g < s.length; g++) { 384 var w = s[g], 361 if ("today" === u) l = new Date(), i = !0;else if (/Z$/.test(u) || /GMT$/.test(u)) l = new Date(e);else if (n && n.parseDate) l = n.parseDate(e, s);else { 362 l = n && n.noCalendar ? new Date(new Date().setHours(0, 0, 0, 0)) : new Date(new Date().getFullYear(), 0, 1, 0, 0, 0, 0); 363 for (var f = void 0, m = [], g = 0, p = 0, h = ""; g < s.length; g++) { 364 var w = s[g], 385 365 b = "\\" === w, 386 366 C = "\\" === s[g - 1] || b; 387 388 if (D[w] && !C) { 389 h += D[w]; 390 var M = new RegExp(h).exec(e); 391 M && (f = !0) && m["Y" !== w ? "push" : "unshift"]({ 392 fn: v[w], 393 val: M[++p] 367 if (D[w] && !C) { 368 h += D[w]; 369 var M = new RegExp(h).exec(e); 370 M && (f = !0) && m["Y" !== w ? "push" : "unshift"]({ 371 fn: v[w], 372 val: M[++p] 373 }); 374 } else b || (h += "."); 375 m.forEach(function (e) { 376 var t = e.fn, 377 n = e.val; 378 return l = t(l, n, c) || l; 394 379 }); 395 } else b || (h += "."); 396 397 m.forEach(function (e) { 398 var t = e.fn, 399 n = e.val; 400 return l = t(l, n, c) || l; 401 }); 380 } 381 l = f ? l : void 0; 402 382 } 403 404 l = f ? l : void 0;405 383 } 406 }407 if (l instanceof Date && !isNaN(l.getTime())) return !0 === i && l.setHours(0, 0, 0, 0), l;408 n.errorHandler(new Error("Invalid date provided: " + d));409 } 384 if (l instanceof Date && !isNaN(l.getTime())) return !0 === i && l.setHours(0, 0, 0, 0), l; 385 n.errorHandler(new Error("Invalid date provided: " + d)); 386 } 387 }; 410 388 }; 411 };412 413 389 function M(e, t, n) { 414 390 return void 0 === n && (n = !0), !1 !== n ? new Date(e.getTime()).setHours(0, 0, 0, 0) - new Date(t.getTime()).setHours(0, 0, 0, 0) : e.getTime() - t.getTime(); 415 391 } 416 417 392 var y = 864e5; 418 419 393 function x(e) { 420 394 var t = e.defaultHour, 421 n = e.defaultMinute, 422 a = e.defaultSeconds; 423 395 n = e.defaultMinute, 396 a = e.defaultSeconds; 424 397 if (void 0 !== e.minDate) { 425 398 var i = e.minDate.getHours(), 426 o = e.minDate.getMinutes(),427 r = e.minDate.getSeconds();399 o = e.minDate.getMinutes(), 400 r = e.minDate.getSeconds(); 428 401 t < i && (t = i), t === i && n < o && (n = o), t === i && n === o && a < r && (a = e.minDate.getSeconds()); 429 402 } 430 431 403 if (void 0 !== e.maxDate) { 432 404 var l = e.maxDate.getHours(), 433 c = e.maxDate.getMinutes();405 c = e.maxDate.getMinutes(); 434 406 (t = Math.min(t, l)) === l && (n = Math.min(c, n)), t === l && n === c && (a = e.maxDate.getSeconds()); 435 407 } 436 437 408 return { 438 409 hours: t, … … 441 412 }; 442 413 } 443 444 414 "function" != typeof Object.assign && (Object.assign = function (e) { 445 415 for (var t = [], n = 1; n < arguments.length; n++) t[n - 1] = arguments[n]; 446 447 416 if (!e) throw TypeError("Cannot convert undefined or null to object"); 448 449 417 for (var a = function (t) { 450 t && Object.keys(t).forEach(function (n) {451 return e[n] = t[n];452 });453 }, i = 0, o = t; i < o.length; i++) {418 t && Object.keys(t).forEach(function (n) { 419 return e[n] = t[n]; 420 }); 421 }, i = 0, o = t; i < o.length; i++) { 454 422 var r = o[i]; 455 423 a(r); 456 424 } 457 458 425 return e; 459 426 }); 460 461 427 function E(p, v) { 462 428 var w = { … … 464 430 l10n: i 465 431 }; 466 467 432 function E(e) { 468 433 return e.bind(w); 469 434 } 470 471 435 function k() { 472 436 var e = w.config; … … 478 442 }); 479 443 } 480 481 444 function I(e) { 482 445 if (0 === w.selectedDates.length) { 483 446 var t = void 0 === w.config.minDate || M(new Date(), w.config.minDate) >= 0 ? new Date() : new Date(w.config.minDate.getTime()), 484 n = x(w.config);447 n = x(w.config); 485 448 t.setHours(n.hours, n.minutes, n.seconds, t.getMilliseconds()), w.selectedDates = [t], w.latestSelectedDateObj = t; 486 449 } 487 488 450 void 0 !== e && "blur" !== e.type && function (e) { 489 451 e.preventDefault(); 490 452 var t = "keydown" === e.type, 491 n = g(e),492 a = n;453 n = g(e), 454 a = n; 493 455 void 0 !== w.amPM && n === w.amPM && (w.amPM.textContent = w.l10n.amPM[r(w.amPM.textContent === w.l10n.amPM[0])]); 494 456 var i = parseFloat(a.getAttribute("min")), 495 l = parseFloat(a.getAttribute("max")), 496 c = parseFloat(a.getAttribute("step")), 497 d = parseInt(a.value, 10), 498 s = e.delta || (t ? 38 === e.which ? 1 : -1 : 0), 499 u = d + c * s; 500 457 l = parseFloat(a.getAttribute("max")), 458 c = parseFloat(a.getAttribute("step")), 459 d = parseInt(a.value, 10), 460 s = e.delta || (t ? 38 === e.which ? 1 : -1 : 0), 461 u = d + c * s; 501 462 if (void 0 !== a.value && 2 === a.value.length) { 502 463 var f = a === w.hourElement, 503 m = a === w.minuteElement;464 m = a === w.minuteElement; 504 465 u < i ? (u = l + u + r(!f) + (r(f) && r(!w.amPM)), m && j(void 0, -1, w.hourElement)) : u > l && (u = a === w.hourElement ? u - l - r(!w.amPM) : i, m && j(void 0, 1, w.hourElement)), w.amPM && f && (1 === c ? u + d === 23 : Math.abs(u - d) > c) && (w.amPM.textContent = w.l10n.amPM[r(w.amPM.textContent === w.l10n.amPM[0])]), a.value = o(u); 505 466 } … … 508 469 S(), be(), w._input.value !== a && w._debouncedChange(); 509 470 } 510 511 471 function S() { 512 472 if (void 0 !== w.hourElement && void 0 !== w.minuteElement) { 513 473 var e, 514 t,515 n = (parseInt(w.hourElement.value.slice(-2), 10) || 0) % 24,516 a = (parseInt(w.minuteElement.value, 10) || 0) % 60,517 i = void 0 !== w.secondElement ? (parseInt(w.secondElement.value, 10) || 0) % 60 : 0;474 t, 475 n = (parseInt(w.hourElement.value.slice(-2), 10) || 0) % 24, 476 a = (parseInt(w.minuteElement.value, 10) || 0) % 60, 477 i = void 0 !== w.secondElement ? (parseInt(w.secondElement.value, 10) || 0) % 60 : 0; 518 478 void 0 !== w.amPM && (e = n, t = w.amPM.textContent, n = e % 12 + 12 * r(t === w.l10n.amPM[1])); 519 479 var o = void 0 !== w.config.minTime || w.config.minDate && w.minDateHasTime && w.latestSelectedDateObj && 0 === M(w.latestSelectedDateObj, w.config.minDate, !0); 520 521 480 if (void 0 !== w.config.maxTime || w.config.maxDate && w.maxDateHasTime && w.latestSelectedDateObj && 0 === M(w.latestSelectedDateObj, w.config.maxDate, !0)) { 522 481 var l = void 0 !== w.config.maxTime ? w.config.maxTime : w.config.maxDate; 523 482 (n = Math.min(n, l.getHours())) === l.getHours() && (a = Math.min(a, l.getMinutes())), a === l.getMinutes() && (i = Math.min(i, l.getSeconds())); 524 483 } 525 526 484 if (o) { 527 485 var c = void 0 !== w.config.minTime ? w.config.minTime : w.config.minDate; 528 486 (n = Math.max(n, c.getHours())) === c.getHours() && a < c.getMinutes() && (a = c.getMinutes()), a === c.getMinutes() && (i = Math.max(i, c.getSeconds())); 529 487 } 530 531 488 O(n, a, i); 532 489 } 533 490 } 534 535 491 function _(e) { 536 492 var t = e || w.latestSelectedDateObj; 537 493 t && O(t.getHours(), t.getMinutes(), t.getSeconds()); 538 494 } 539 540 495 function O(e, t, n) { 541 496 void 0 !== w.latestSelectedDateObj && w.latestSelectedDateObj.setHours(e % 24, t, n || 0, 0), w.hourElement && w.minuteElement && !w.isMobile && (w.hourElement.value = o(w.config.time_24hr ? e : (12 + e) % 12 + 12 * r(e % 12 == 0)), w.minuteElement.value = o(t), void 0 !== w.amPM && (w.amPM.textContent = w.l10n.amPM[r(e >= 12)]), void 0 !== w.secondElement && (w.secondElement.value = o(n))); 542 497 } 543 544 498 function F(e) { 545 499 var t = g(e), 546 n = parseInt(t.value) + (e.delta || 0);500 n = parseInt(t.value) + (e.delta || 0); 547 501 (n / 1e3 > 1 || "Enter" === e.key && !/[^\d]/.test(n.toString())) && Q(n); 548 502 } 549 550 503 function A(e, t, n, a) { 551 504 return t instanceof Array ? t.forEach(function (t) { … … 559 512 })); 560 513 } 561 562 514 function N() { 563 515 pe("onChange"); 564 516 } 565 566 517 function P(e, t) { 567 518 var n = void 0 !== e ? w.parseDate(e) : w.latestSelectedDateObj || (w.config.minDate && w.config.minDate > w.now ? w.config.minDate : w.config.maxDate && w.config.maxDate < w.now ? w.config.maxDate : w.now), 568 a = w.currentYear, 569 i = w.currentMonth; 570 519 a = w.currentYear, 520 i = w.currentMonth; 571 521 try { 572 522 void 0 !== n && (w.currentYear = n.getFullYear(), w.currentMonth = n.getMonth()); … … 574 524 e.message = "Invalid date supplied: " + n, w.config.errorHandler(e); 575 525 } 576 577 526 t && w.currentYear !== a && (pe("onYearChange"), K()), !t || w.currentYear === a && w.currentMonth === i || pe("onMonthChange"), w.redraw(); 578 527 } 579 580 528 function Y(e) { 581 529 var t = g(e); 582 530 ~t.className.indexOf("arrow") && j(e, t.classList.contains("arrowUp") ? 1 : -1); 583 531 } 584 585 532 function j(e, t, n) { 586 533 var a = e && g(e), 587 i = n || a && a.parentNode && a.parentNode.firstChild,588 o = he("increment");534 i = n || a && a.parentNode && a.parentNode.firstChild, 535 o = he("increment"); 589 536 o.delta = t, i && i.dispatchEvent(o); 590 537 } 591 592 538 function H(e, t, n, a) { 593 539 var i = X(t, !0), 594 o = s("span", "flatpickr-day " + e, t.getDate().toString());540 o = s("span", "flatpickr-day " + e, t.getDate().toString()); 595 541 return o.dateObj = t, o.$i = a, o.setAttribute("aria-label", w.formatDate(t, w.config.ariaDateFormat)), -1 === e.indexOf("hidden") && 0 === M(t, w.now) && (w.todayDateElem = o, o.classList.add("today"), o.setAttribute("aria-current", "date")), i ? (o.tabIndex = -1, ve(t) && (o.classList.add("selected"), w.selectedDateElem = o, "range" === w.config.mode && (d(o, "startRange", w.selectedDates[0] && 0 === M(t, w.selectedDates[0], !0)), d(o, "endRange", w.selectedDates[1] && 0 === M(t, w.selectedDates[1], !0)), "nextMonthDay" === e && o.classList.add("inRange")))) : o.classList.add("flatpickr-disabled"), "range" === w.config.mode && function (e) { 596 542 return !("range" !== w.config.mode || w.selectedDates.length < 2) && M(e, w.selectedDates[0]) >= 0 && M(e, w.selectedDates[1]) <= 0; 597 543 }(t) && !ve(t) && o.classList.add("inRange"), w.weekNumbers && 1 === w.config.showMonths && "prevMonthDay" !== e && n % 7 == 1 && w.weekNumbers.insertAdjacentHTML("beforeend", "<span class='flatpickr-day'>" + w.config.getWeek(t) + "</span>"), pe("onDayCreate", o), o; 598 544 } 599 600 545 function L(e) { 601 546 e.focus(), "range" === w.config.mode && ae(e); 602 547 } 603 604 548 function W(e) { 605 549 for (var t = e > 0 ? 0 : w.config.showMonths - 1, n = e > 0 ? w.config.showMonths : -1, a = t; a != n; a += e) for (var i = w.daysContainer.children[a], o = e > 0 ? 0 : i.children.length - 1, r = e > 0 ? i.children.length : -1, l = o; l != r; l += e) { … … 608 552 } 609 553 } 610 611 554 function R(e, t) { 612 555 var n = ee(document.activeElement || document.body), 613 a = void 0 !== e ? e : n ? document.activeElement : void 0 !== w.selectedDateElem && ee(w.selectedDateElem) ? w.selectedDateElem : void 0 !== w.todayDateElem && ee(w.todayDateElem) ? w.todayDateElem : W(t > 0 ? 1 : -1);556 a = void 0 !== e ? e : n ? document.activeElement : void 0 !== w.selectedDateElem && ee(w.selectedDateElem) ? w.selectedDateElem : void 0 !== w.todayDateElem && ee(w.todayDateElem) ? w.todayDateElem : W(t > 0 ? 1 : -1); 614 557 void 0 === a ? w._input.focus() : n ? function (e, t) { 615 558 for (var n = -1 === e.className.indexOf("Month") ? e.dateObj.getMonth() : w.currentMonth, a = t > 0 ? w.config.showMonths : -1, i = t > 0 ? 1 : -1, o = n - w.currentMonth; o != a; o += i) for (var r = w.daysContainer.children[o], l = n - w.currentMonth === o ? e.$i + t : t < 0 ? r.children.length - 1 : 0, c = r.children.length, d = l; d >= 0 && d < c && d != (t > 0 ? c : -1); d += i) { … … 617 560 if (-1 === s.className.indexOf("hidden") && X(s.dateObj) && Math.abs(e.$i - d) >= Math.abs(t)) return L(s); 618 561 } 619 620 562 w.changeMonth(i), R(W(i), 0); 621 563 }(a, t) : L(a); 622 564 } 623 624 565 function B(e, t) { 625 566 for (var n = (new Date(e, t, 1).getDay() - w.l10n.firstDayOfWeek + 7) % 7, a = w.utils.getDaysInMonth((t - 1 + 12) % 12, e), i = w.utils.getDaysInMonth(t, e), o = window.document.createDocumentFragment(), r = w.config.showMonths > 1, l = r ? "prevMonthDay hidden" : "prevMonthDay", c = r ? "nextMonthDay hidden" : "nextMonthDay", d = a + 1 - n, u = 0; d <= a; d++, u++) o.appendChild(H(l, new Date(e, t - 1, d), d, u)); 626 627 567 for (d = 1; d <= i; d++, u++) o.appendChild(H("", new Date(e, t, d), d, u)); 628 629 568 for (var f = i + 1; f <= 42 - n && (1 === w.config.showMonths || u % 7 != 0); f++, u++) o.appendChild(H(c, new Date(e, t + 1, f % i), f, u)); 630 631 569 var m = s("div", "dayContainer"); 632 570 return m.appendChild(o), m; 633 571 } 634 635 572 function J() { 636 573 if (void 0 !== w.daysContainer) { 637 574 u(w.daysContainer), w.weekNumbers && u(w.weekNumbers); 638 639 575 for (var e = document.createDocumentFragment(), t = 0; t < w.config.showMonths; t++) { 640 576 var n = new Date(w.currentYear, w.currentMonth, 1); 641 577 n.setMonth(w.currentMonth + t), e.appendChild(B(n.getFullYear(), n.getMonth())); 642 578 } 643 644 579 w.daysContainer.appendChild(e), w.days = w.daysContainer.firstChild, "range" === w.config.mode && 1 === w.selectedDates.length && ae(); 645 580 } 646 581 } 647 648 582 function K() { 649 583 if (!(w.config.showMonths > 1 || "dropdown" !== w.config.monthSelectorType)) { … … 651 585 return !(void 0 !== w.config.minDate && w.currentYear === w.config.minDate.getFullYear() && e < w.config.minDate.getMonth()) && !(void 0 !== w.config.maxDate && w.currentYear === w.config.maxDate.getFullYear() && e > w.config.maxDate.getMonth()); 652 586 }; 653 654 587 w.monthsDropdownContainer.tabIndex = -1, w.monthsDropdownContainer.innerHTML = ""; 655 656 588 for (var t = 0; t < 12; t++) if (e(t)) { 657 589 var n = s("option", "flatpickr-monthDropdown-month"); … … 660 592 } 661 593 } 662 663 594 function U() { 664 595 var e, 665 t = s("div", "flatpickr-month"),666 n = window.document.createDocumentFragment();596 t = s("div", "flatpickr-month"), 597 n = window.document.createDocumentFragment(); 667 598 w.config.showMonths > 1 || "static" === w.config.monthSelectorType ? e = s("span", "cur-month") : (w.monthsDropdownContainer = s("select", "flatpickr-monthDropdown-months"), w.monthsDropdownContainer.setAttribute("aria-label", w.l10n.monthAriaLabel), A(w.monthsDropdownContainer, "change", function (e) { 668 599 var t = g(e), 669 n = parseInt(t.value, 10);600 n = parseInt(t.value, 10); 670 601 w.changeMonth(n - w.currentMonth), pe("onMonthChange"); 671 602 }), K(), e = w.monthsDropdownContainer); 672 603 var a = m("cur-year", { 673 tabindex: "-1"674 }),675 i = a.getElementsByTagName("input")[0];604 tabindex: "-1" 605 }), 606 i = a.getElementsByTagName("input")[0]; 676 607 i.setAttribute("aria-label", w.l10n.yearAriaLabel), w.config.minDate && i.setAttribute("min", w.config.minDate.getFullYear().toString()), w.config.maxDate && (i.setAttribute("max", w.config.maxDate.getFullYear().toString()), i.disabled = !!w.config.minDate && w.config.minDate.getFullYear() === w.config.maxDate.getFullYear()); 677 608 var o = s("div", "flatpickr-current-month"); … … 682 613 }; 683 614 } 684 685 615 function q() { 686 616 u(w.monthNav), w.monthNav.appendChild(w.prevMonthNav), w.config.showMonths && (w.yearElements = [], w.monthElements = []); 687 688 617 for (var e = w.config.showMonths; e--;) { 689 618 var t = U(); 690 619 w.yearElements.push(t.yearElement), w.monthElements.push(t.monthElement), w.monthNav.appendChild(t.container); 691 620 } 692 693 621 w.monthNav.appendChild(w.nextMonthNav); 694 622 } 695 696 623 function $() { 697 624 w.weekdayContainer ? u(w.weekdayContainer) : w.weekdayContainer = s("div", "flatpickr-weekdays"); 698 699 625 for (var e = w.config.showMonths; e--;) { 700 626 var t = s("div", "flatpickr-weekdaycontainer"); 701 627 w.weekdayContainer.appendChild(t); 702 628 } 703 704 629 return z(), w.weekdayContainer; 705 630 } 706 707 631 function z() { 708 632 if (w.weekdayContainer) { 709 633 var e = w.l10n.firstDayOfWeek, 710 n = t(w.l10n.weekdays.shorthand);634 n = t(w.l10n.weekdays.shorthand); 711 635 e > 0 && e < n.length && (n = t(n.splice(e, n.length), n.splice(0, e))); 712 713 636 for (var a = w.config.showMonths; a--;) w.weekdayContainer.children[a].innerHTML = "\n <span class='flatpickr-weekday'>\n " + n.join("</span><span class='flatpickr-weekday'>") + "\n </span>\n "; 714 637 } 715 638 } 716 717 639 function G(e, t) { 718 640 void 0 === t && (t = !0); … … 720 642 n < 0 && !0 === w._hidePrevMonthArrow || n > 0 && !0 === w._hideNextMonthArrow || (w.currentMonth += n, (w.currentMonth < 0 || w.currentMonth > 11) && (w.currentYear += w.currentMonth > 11 ? 1 : -1, w.currentMonth = (w.currentMonth + 12) % 12, pe("onYearChange"), K()), J(), pe("onMonthChange"), De()); 721 643 } 722 723 644 function V(e) { 724 645 return !(!w.config.appendTo || !w.config.appendTo.contains(e)) || w.calendarContainer.contains(e); 725 646 } 726 727 647 function Z(e) { 728 648 if (w.isOpen && !w.config.inline) { 729 649 var t = g(e), 730 n = V(t),731 a = t === w.input || t === w.altInput || w.element.contains(t) || e.path && e.path.indexOf && (~e.path.indexOf(w.input) || ~e.path.indexOf(w.altInput)),732 i = "blur" === e.type ? a && e.relatedTarget && !V(e.relatedTarget) : !a && !n && !V(e.relatedTarget),733 o = !w.config.ignoredFocusElements.some(function (e) {734 return e.contains(t);735 });650 n = V(t), 651 a = t === w.input || t === w.altInput || w.element.contains(t) || e.path && e.path.indexOf && (~e.path.indexOf(w.input) || ~e.path.indexOf(w.altInput)), 652 i = "blur" === e.type ? a && e.relatedTarget && !V(e.relatedTarget) : !a && !n && !V(e.relatedTarget), 653 o = !w.config.ignoredFocusElements.some(function (e) { 654 return e.contains(t); 655 }); 736 656 i && o && (void 0 !== w.timeContainer && void 0 !== w.minuteElement && void 0 !== w.hourElement && "" !== w.input.value && void 0 !== w.input.value && I(), w.close(), w.config && "range" === w.config.mode && 1 === w.selectedDates.length && (w.clear(!1), w.redraw())); 737 657 } 738 658 } 739 740 659 function Q(e) { 741 660 if (!(!e || w.config.minDate && e < w.config.minDate.getFullYear() || w.config.maxDate && e > w.config.maxDate.getFullYear())) { 742 661 var t = e, 743 n = w.currentYear !== t;662 n = w.currentYear !== t; 744 663 w.currentYear = t || w.currentYear, w.config.maxDate && w.currentYear === w.config.maxDate.getFullYear() ? w.currentMonth = Math.min(w.config.maxDate.getMonth(), w.currentMonth) : w.config.minDate && w.currentYear === w.config.minDate.getFullYear() && (w.currentMonth = Math.max(w.config.minDate.getMonth(), w.currentMonth)), n && (w.redraw(), pe("onYearChange"), K()); 745 664 } 746 665 } 747 748 666 function X(e, t) { 749 667 var n; … … 753 671 if (!w.config.enable && 0 === w.config.disable.length) return !0; 754 672 if (void 0 === a) return !1; 755 756 673 for (var i = !!w.config.enable, o = null !== (n = w.config.enable) && void 0 !== n ? n : w.config.disable, r = 0, l = void 0; r < o.length; r++) { 757 674 if ("function" == typeof (l = o[r]) && l(a)) return i; 758 675 if (l instanceof Date && void 0 !== a && l.getTime() === a.getTime()) return i; 759 760 676 if ("string" == typeof l) { 761 677 var c = w.parseDate(l, void 0, !0); 762 678 return c && c.getTime() === a.getTime() ? i : !i; 763 679 } 764 765 680 if ("object" == typeof l && void 0 !== a && l.from && l.to && a.getTime() >= l.from.getTime() && a.getTime() <= l.to.getTime()) return i; 766 681 } 767 768 682 return !i; 769 683 } 770 771 684 function ee(e) { 772 685 return void 0 !== w.daysContainer && -1 === e.className.indexOf("hidden") && -1 === e.className.indexOf("flatpickr-disabled") && w.daysContainer.contains(e); 773 686 } 774 775 687 function te(e) { 776 688 !(e.target === w._input) || !(w.selectedDates.length > 0 || w._input.value.length > 0) || e.relatedTarget && V(e.relatedTarget) || w.setDate(w._input.value, !0, e.target === w.altInput ? w.config.altFormat : w.config.dateFormat); 777 689 } 778 779 690 function ne(e) { 780 691 var t = g(e), 781 n = w.config.wrap ? p.contains(t) : t === w._input, 782 a = w.config.allowInput, 783 i = w.isOpen && (!a || !n), 784 o = w.config.inline && n && !a; 785 692 n = w.config.wrap ? p.contains(t) : t === w._input, 693 a = w.config.allowInput, 694 i = w.isOpen && (!a || !n), 695 o = w.config.inline && n && !a; 786 696 if (13 === e.keyCode && n) { 787 697 if (a) return w.setDate(w._input.value, !0, t === w.altInput ? w.config.altFormat : w.config.dateFormat), t.blur(); … … 789 699 } else if (V(t) || i || o) { 790 700 var r = !!w.timeContainer && w.timeContainer.contains(t); 791 792 701 switch (e.keyCode) { 793 702 case 13: 794 703 r ? (e.preventDefault(), I(), se()) : ue(e); 795 704 break; 796 797 705 case 27: 798 706 e.preventDefault(), se(); 799 707 break; 800 801 708 case 8: 802 709 case 46: 803 710 n && !w.config.allowInput && (e.preventDefault(), w.clear()); 804 711 break; 805 806 712 case 37: 807 713 case 39: … … 811 717 } 812 718 break; 813 814 719 case 38: 815 720 case 40: … … 818 723 w.daysContainer && void 0 !== t.$i || t === w.input || t === w.altInput ? e.ctrlKey ? (e.stopPropagation(), Q(w.currentYear - c), R(W(1), 0)) : r || R(void 0, 7 * c) : t === w.currentYearElement ? Q(w.currentYear - c) : w.config.enableTime && (!r && w.hourElement && w.hourElement.focus(), I(e), w._debouncedChange()); 819 724 break; 820 821 725 case 9: 822 726 if (r) { 823 727 var d = [w.hourElement, w.minuteElement, w.secondElement, w.amPM].concat(w.pluginElements).filter(function (e) { 824 return e; 825 }), 826 s = d.indexOf(t); 827 728 return e; 729 }), 730 s = d.indexOf(t); 828 731 if (-1 !== s) { 829 732 var u = d[s + (e.shiftKey ? -1 : 1)]; … … 831 734 } 832 735 } else !w.config.noCalendar && w.daysContainer && w.daysContainer.contains(t) && e.shiftKey && (e.preventDefault(), w._input.focus()); 833 834 } 835 } 836 736 } 737 } 837 738 if (void 0 !== w.amPM && t === w.amPM) switch (e.key) { 838 739 case w.l10n.amPM[0].charAt(0): … … 840 741 w.amPM.textContent = w.l10n.amPM[0], S(), be(); 841 742 break; 842 843 743 case w.l10n.amPM[1].charAt(0): 844 744 case w.l10n.amPM[1].charAt(0).toLowerCase(): … … 847 747 (n || V(t)) && pe("onKeyDown", e); 848 748 } 849 850 749 function ae(e) { 851 750 if (1 === w.selectedDates.length && (!e || e.classList.contains("flatpickr-day") && !e.classList.contains("flatpickr-disabled"))) { 852 751 for (var t = e ? e.dateObj.getTime() : w.days.firstElementChild.dateObj.getTime(), n = w.parseDate(w.selectedDates[0], void 0, !0).getTime(), a = Math.min(t, w.selectedDates[0].getTime()), i = Math.max(t, w.selectedDates[0].getTime()), o = !1, r = 0, l = 0, c = a; c < i; c += y) X(new Date(c), !0) || (o = o || c > a && c < i, c < n && (!r || c > r) ? r = c : c > n && (!l || c < l) && (l = c)); 853 854 752 for (var d = 0; d < w.config.showMonths; d++) for (var s = w.daysContainer.children[d], u = function (a, i) { 855 var c,753 var c, 856 754 d, 857 755 u, … … 859 757 m = f.dateObj.getTime(), 860 758 g = r > 0 && m < r || l > 0 && m > l; 861 return g ? (f.classList.add("notAllowed"), ["inRange", "startRange", "endRange"].forEach(function (e) { 862 f.classList.remove(e); 863 }), "continue") : o && !g ? "continue" : (["startRange", "inRange", "endRange", "notAllowed"].forEach(function (e) { 864 f.classList.remove(e); 865 }), void (void 0 !== e && (e.classList.add(t <= w.selectedDates[0].getTime() ? "startRange" : "endRange"), n < t && m === n ? f.classList.add("startRange") : n > t && m === n && f.classList.add("endRange"), m >= r && (0 === l || m <= l) && (d = n, u = t, (c = m) > Math.min(d, u) && c < Math.max(d, u)) && f.classList.add("inRange")))); 866 }, f = 0, m = s.children.length; f < m; f++) u(f); 867 } 868 } 869 759 return g ? (f.classList.add("notAllowed"), ["inRange", "startRange", "endRange"].forEach(function (e) { 760 f.classList.remove(e); 761 }), "continue") : o && !g ? "continue" : (["startRange", "inRange", "endRange", "notAllowed"].forEach(function (e) { 762 f.classList.remove(e); 763 }), void (void 0 !== e && (e.classList.add(t <= w.selectedDates[0].getTime() ? "startRange" : "endRange"), n < t && m === n ? f.classList.add("startRange") : n > t && m === n && f.classList.add("endRange"), m >= r && (0 === l || m <= l) && (d = n, u = t, (c = m) > Math.min(d, u) && c < Math.max(d, u)) && f.classList.add("inRange")))); 764 }, f = 0, m = s.children.length; f < m; f++) u(f); 765 } 766 } 870 767 function ie() { 871 768 !w.isOpen || w.config.static || w.config.inline || ce(); 872 769 } 873 874 770 function oe(e) { 875 771 return function (t) { 876 772 var n = w.config["_" + e + "Date"] = w.parseDate(t, w.config.dateFormat), 877 a = w.config["_" + ("min" === e ? "max" : "min") + "Date"];773 a = w.config["_" + ("min" === e ? "max" : "min") + "Date"]; 878 774 void 0 !== n && (w["min" === e ? "minDateHasTime" : "maxDateHasTime"] = n.getHours() > 0 || n.getMinutes() > 0 || n.getSeconds() > 0), w.selectedDates && (w.selectedDates = w.selectedDates.filter(function (e) { 879 775 return X(e); … … 881 777 }; 882 778 } 883 884 779 function re() { 885 780 return w.config.wrap ? p.querySelector("[data-input]") : p; 886 781 } 887 888 782 function le() { 889 783 "object" != typeof w.config.locale && void 0 === T.l10ns[w.config.locale] && w.config.errorHandler(new Error("flatpickr: invalid locale " + w.config.locale)), w.l10n = e(e({}, T.l10ns.default), "object" == typeof w.config.locale ? w.config.locale : "default" !== w.config.locale ? T.l10ns[w.config.locale] : void 0), D.K = "(" + w.l10n.amPM[0] + "|" + w.l10n.amPM[1] + "|" + w.l10n.amPM[0].toLowerCase() + "|" + w.l10n.amPM[1].toLowerCase() + ")", void 0 === e(e({}, v), JSON.parse(JSON.stringify(p.dataset || {}))).time_24hr && void 0 === T.defaultConfig.time_24hr && (w.config.time_24hr = w.l10n.time_24hr), w.formatDate = b(w), w.parseDate = C({ … … 892 786 }); 893 787 } 894 895 788 function ce(e) { 896 789 if ("function" != typeof w.config.position) { … … 898 791 pe("onPreCalendarPosition"); 899 792 var t = e || w._positionElement, 900 n = Array.prototype.reduce.call(w.calendarContainer.children, function (e, t) { 901 return e + t.offsetHeight; 902 }, 0), 903 a = w.calendarContainer.offsetWidth, 904 i = w.config.position.split(" "), 905 o = i[0], 906 r = i.length > 1 ? i[1] : null, 907 l = t.getBoundingClientRect(), 908 c = window.innerHeight - l.bottom, 909 s = "above" === o || "below" !== o && c < n && l.top > n, 910 u = window.pageYOffset + l.top + (s ? -n - 2 : t.offsetHeight + 2); 911 793 n = Array.prototype.reduce.call(w.calendarContainer.children, function (e, t) { 794 return e + t.offsetHeight; 795 }, 0), 796 a = w.calendarContainer.offsetWidth, 797 i = w.config.position.split(" "), 798 o = i[0], 799 r = i.length > 1 ? i[1] : null, 800 l = t.getBoundingClientRect(), 801 c = window.innerHeight - l.bottom, 802 s = "above" === o || "below" !== o && c < n && l.top > n, 803 u = window.pageYOffset + l.top + (s ? -n - 2 : t.offsetHeight + 2); 912 804 if (d(w.calendarContainer, "arrowTop", !s), d(w.calendarContainer, "arrowBottom", s), !w.config.inline) { 913 805 var f = window.pageXOffset + l.left, 914 m = !1,915 g = !1;806 m = !1, 807 g = !1; 916 808 "center" === r ? (f -= (a - l.width) / 2, m = !0) : "right" === r && (f -= a - l.width, g = !0), d(w.calendarContainer, "arrowLeft", !m && !g), d(w.calendarContainer, "arrowCenter", m), d(w.calendarContainer, "arrowRight", g); 917 809 var p = window.document.body.offsetWidth - (window.pageXOffset + l.right), 918 h = f + a > window.document.body.offsetWidth,919 v = p + a > window.document.body.offsetWidth;810 h = f + a > window.document.body.offsetWidth, 811 v = p + a > window.document.body.offsetWidth; 920 812 if (d(w.calendarContainer, "rightMost", h), !w.config.static) if (w.calendarContainer.style.top = u + "px", h) { 921 813 if (v) { … … 923 815 for (var e = null, t = 0; t < document.styleSheets.length; t++) { 924 816 var n = document.styleSheets[t]; 925 926 817 try { 927 818 n.cssRules; … … 929 820 continue; 930 821 } 931 932 822 e = n; 933 823 break; 934 824 } 935 936 825 return null != e ? e : (a = document.createElement("style"), document.head.appendChild(a), a.sheet); 937 826 var a; 938 827 }(); 939 940 828 if (void 0 === D) return; 941 829 var b = window.document.body.offsetWidth, 942 C = Math.max(0, b / 2 - a / 2),943 M = D.cssRules.length,944 y = "{left:" + l.left + "px;right:auto;}";830 C = Math.max(0, b / 2 - a / 2), 831 M = D.cssRules.length, 832 y = "{left:" + l.left + "px;right:auto;}"; 945 833 d(w.calendarContainer, "rightMost", !1), d(w.calendarContainer, "centerMost", !0), D.insertRule(".flatpickr-calendar.centerMost:before,.flatpickr-calendar.centerMost:after" + y, M), w.calendarContainer.style.left = C + "px", w.calendarContainer.style.right = "auto"; 946 834 } else w.calendarContainer.style.left = "auto", w.calendarContainer.style.right = p + "px"; … … 950 838 } else w.config.position(w, e); 951 839 } 952 953 840 function de() { 954 841 w.config.noCalendar || w.isMobile || (K(), De(), J()); 955 842 } 956 957 843 function se() { 958 844 w._input.focus(), -1 !== window.navigator.userAgent.indexOf("MSIE") || void 0 !== navigator.msMaxTouchPoints ? setTimeout(w.close, 0) : w.close(); 959 845 } 960 961 846 function ue(e) { 962 847 e.preventDefault(), e.stopPropagation(); … … 964 849 return e.classList && e.classList.contains("flatpickr-day") && !e.classList.contains("flatpickr-disabled") && !e.classList.contains("notAllowed"); 965 850 }); 966 967 851 if (void 0 !== t) { 968 852 var n = t, 969 a = w.latestSelectedDateObj = new Date(n.dateObj.getTime()),970 i = (a.getMonth() < w.currentMonth || a.getMonth() > w.currentMonth + w.config.showMonths - 1) && "range" !== w.config.mode;853 a = w.latestSelectedDateObj = new Date(n.dateObj.getTime()), 854 i = (a.getMonth() < w.currentMonth || a.getMonth() > w.currentMonth + w.config.showMonths - 1) && "range" !== w.config.mode; 971 855 if (w.selectedDateElem = n, "single" === w.config.mode) w.selectedDates = [a];else if ("multiple" === w.config.mode) { 972 856 var o = ve(a); … … 975 859 return e.getTime() - t.getTime(); 976 860 })); 977 978 861 if (S(), i) { 979 862 var r = w.currentYear !== a.getFullYear(); 980 863 w.currentYear = a.getFullYear(), w.currentMonth = a.getMonth(), r && (pe("onYearChange"), K()), pe("onMonthChange"); 981 864 } 982 983 865 if (De(), J(), be(), i || "range" === w.config.mode || 1 !== w.config.showMonths ? void 0 !== w.selectedDateElem && void 0 === w.hourElement && w.selectedDateElem && w.selectedDateElem.focus() : L(n), void 0 !== w.hourElement && void 0 !== w.hourElement && w.hourElement.focus(), w.config.closeOnSelect) { 984 866 var l = "single" === w.config.mode && !w.config.enableTime, 985 c = "range" === w.config.mode && 2 === w.selectedDates.length && !w.config.enableTime;867 c = "range" === w.config.mode && 2 === w.selectedDates.length && !w.config.enableTime; 986 868 (l || c) && se(); 987 869 } 988 989 870 N(); 990 871 } 991 872 } 992 993 873 w.parseDate = C({ 994 874 config: w.config, … … 1000 880 void 0 !== w.mobileInput && (w.mobileInput.value = ""); 1001 881 w.selectedDates = [], w.latestSelectedDateObj = void 0, !0 === t && (w.currentYear = w._initialDate.getFullYear(), w.currentMonth = w._initialDate.getMonth()); 1002 1003 882 if (!0 === w.config.enableTime) { 1004 883 var n = x(w.config), 1005 a = n.hours,1006 i = n.minutes,1007 o = n.seconds;884 a = n.hours, 885 i = n.minutes, 886 o = n.seconds; 1008 887 O(a, i, o); 1009 888 } 1010 1011 889 w.redraw(), e && pe("onChange"); 1012 890 }, w.close = function () { … … 1015 893 }, w._createElement = s, w.destroy = function () { 1016 894 void 0 !== w.config && pe("onDestroy"); 1017 1018 895 for (var e = w._handlers.length; e--;) w._handlers[e].remove(); 1019 1020 896 if (w._handlers = [], w.mobileInput) w.mobileInput.parentNode && w.mobileInput.parentNode.removeChild(w.mobileInput), w.mobileInput = void 0;else if (w.calendarContainer && w.calendarContainer.parentNode) if (w.config.static && w.calendarContainer.parentNode) { 1021 897 var t = w.calendarContainer.parentNode; 1022 1023 898 if (t.lastChild && t.removeChild(t.lastChild), t.parentNode) { 1024 899 for (; t.firstChild;) t.parentNode.insertBefore(t.firstChild, t); 1025 1026 900 t.parentNode.removeChild(t); 1027 901 } … … 1036 910 }, w.isEnabled = X, w.jumpToDate = P, w.open = function (e, t) { 1037 911 void 0 === t && (t = w._positionElement); 1038 1039 912 if (!0 === w.isMobile) { 1040 913 if (e) { … … 1043 916 n && n.blur(); 1044 917 } 1045 1046 918 return void 0 !== w.mobileInput && (w.mobileInput.focus(), w.mobileInput.click()), void pe("onOpen"); 1047 919 } 1048 1049 920 if (w._input.disabled || w.config.inline) return; 1050 921 var a = w.isOpen; … … 1079 950 }] 1080 951 }; 1081 1082 952 function me(e, t) { 1083 953 var n = []; … … 1089 959 n = [w.parseDate(e, t)]; 1090 960 break; 1091 1092 961 case "multiple": 1093 962 n = e.split(w.config.conjunction).map(function (e) { … … 1095 964 }); 1096 965 break; 1097 1098 966 case "range": 1099 967 n = e.split(w.l10n.rangeSeparator).map(function (e) { … … 1107 975 }); 1108 976 } 1109 1110 977 function ge(e) { 1111 978 return e.slice().map(function (e) { … … 1118 985 }); 1119 986 } 1120 1121 987 function pe(e, t) { 1122 988 if (void 0 !== w.config) { … … 1126 992 } 1127 993 } 1128 1129 994 function he(e) { 1130 995 var t = document.createEvent("Event"); 1131 996 return t.initEvent(e, !0, !0), t; 1132 997 } 1133 1134 998 function ve(e) { 1135 999 for (var t = 0; t < w.selectedDates.length; t++) if (0 === M(w.selectedDates[t], e)) return "" + t; 1136 1137 1000 return !1; 1138 1001 } 1139 1140 1002 function De() { 1141 1003 w.config.noCalendar || w.isMobile || !w.monthNav || (w.yearElements.forEach(function (e, t) { … … 1144 1006 }), w._hidePrevMonthArrow = void 0 !== w.config.minDate && (w.currentYear === w.config.minDate.getFullYear() ? w.currentMonth <= w.config.minDate.getMonth() : w.currentYear < w.config.minDate.getFullYear()), w._hideNextMonthArrow = void 0 !== w.config.maxDate && (w.currentYear === w.config.maxDate.getFullYear() ? w.currentMonth + 1 > w.config.maxDate.getMonth() : w.currentYear > w.config.maxDate.getFullYear())); 1145 1007 } 1146 1147 1008 function we(e) { 1148 1009 return w.selectedDates.map(function (t) { … … 1152 1013 }).join("range" !== w.config.mode ? w.config.conjunction : w.l10n.rangeSeparator); 1153 1014 } 1154 1155 1015 function be(e) { 1156 1016 void 0 === e && (e = !0), void 0 !== w.mobileInput && w.mobileFormatStr && (w.mobileInput.value = void 0 !== w.latestSelectedDateObj ? w.formatDate(w.latestSelectedDateObj, w.mobileFormatStr) : ""), w.input.value = we(w.config.dateFormat), void 0 !== w.altInput && (w.altInput.value = we(w.config.altFormat)), !1 !== e && pe("onValueUpdate"); 1157 1017 } 1158 1159 1018 function Ce(e) { 1160 1019 var t = g(e), 1161 n = w.prevMonthNav.contains(t),1162 a = w.nextMonthNav.contains(t);1020 n = w.prevMonthNav.contains(t), 1021 a = w.nextMonthNav.contains(t); 1163 1022 n || a ? G(n ? -1 : 1) : w.yearElements.indexOf(t) >= 0 ? t.select() : t.classList.contains("arrowUp") ? w.changeYear(w.currentYear + 1) : t.classList.contains("arrowDown") && w.changeYear(w.currentYear - 1); 1164 1023 } 1165 1166 1024 return function () { 1167 1025 w.element = w.input = p, w.isOpen = !1, function () { 1168 1026 var t = ["wrap", "weekNumbers", "allowInput", "allowInvalidPreload", "clickOpens", "time_24hr", "enableTime", "noCalendar", "altInput", "shorthandCurrentMonth", "inline", "static", "enableSeconds", "disableMobile"], 1169 i = e(e({}, JSON.parse(JSON.stringify(p.dataset || {}))), v),1170 o = {};1027 i = e(e({}, JSON.parse(JSON.stringify(p.dataset || {}))), v), 1028 o = {}; 1171 1029 w.config.parseDate = i.parseDate, w.config.formatDate = i.formatDate, Object.defineProperty(w.config, "enable", { 1172 1030 get: function () { … … 1185 1043 }); 1186 1044 var r = "time" === i.mode; 1187 1188 1045 if (!i.dateFormat && (i.enableTime || r)) { 1189 1046 var l = T.defaultConfig.dateFormat || a.dateFormat; 1190 1047 o.dateFormat = i.noCalendar || r ? "H:i" + (i.enableSeconds ? ":S" : "") : l + " H:i" + (i.enableSeconds ? ":S" : ""); 1191 1048 } 1192 1193 1049 if (i.altInput && (i.enableTime || r) && !i.altFormat) { 1194 1050 var d = T.defaultConfig.altFormat || a.altFormat; 1195 1051 o.altFormat = i.noCalendar || r ? "h:i" + (i.enableSeconds ? ":S K" : " K") : d + " h:i" + (i.enableSeconds ? ":S" : "") + " K"; 1196 1052 } 1197 1198 1053 Object.defineProperty(w.config, "minDate", { 1199 1054 get: function () { … … 1207 1062 set: oe("max") 1208 1063 }); 1209 1210 1064 var s = function (e) { 1211 1065 return function (t) { … … 1213 1067 }; 1214 1068 }; 1215 1216 1069 Object.defineProperty(w.config, "minTime", { 1217 1070 get: function () { … … 1226 1079 }), "time" === i.mode && (w.config.noCalendar = !0, w.config.enableTime = !0); 1227 1080 Object.assign(w.config, o, i); 1228 1229 1081 for (var u = 0; u < t.length; u++) w.config[t[u]] = !0 === w.config[t[u]] || "true" === w.config[t[u]]; 1230 1231 1082 n.filter(function (e) { 1232 1083 return void 0 !== w.config[e]; … … 1234 1085 w.config[e] = c(w.config[e] || []).map(E); 1235 1086 }), w.isMobile = !w.config.disableMobile && !w.config.inline && "single" === w.config.mode && !w.config.disable.length && !w.config.enable && !w.config.weekNumbers && /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent); 1236 1237 1087 for (u = 0; u < w.config.plugins.length; u++) { 1238 1088 var f = w.config.plugins[u](w) || {}; 1239 1240 1089 for (var m in f) n.indexOf(m) > -1 ? w.config[m] = c(f[m]).map(E).concat(w.config[m]) : void 0 === i[m] && (w.config[m] = f[m]); 1241 1090 } 1242 1243 1091 i.altInputClass || (w.config.altInputClass = re().className + " " + w.config.altInputClass); 1244 1092 pe("onParseConfig"); … … 1262 1110 }, w.isMobile || function () { 1263 1111 var e = window.document.createDocumentFragment(); 1264 1265 1112 if (w.calendarContainer = s("div", "flatpickr-calendar"), w.calendarContainer.tabIndex = -1, !w.config.noCalendar) { 1266 1113 if (e.appendChild((w.monthNav = s("div", "flatpickr-months"), w.yearElements = [], w.monthElements = [], w.prevMonthNav = s("span", "flatpickr-prev-month"), w.prevMonthNav.innerHTML = w.config.prevArrow, w.nextMonthNav = s("span", "flatpickr-next-month"), w.nextMonthNav.innerHTML = w.config.nextArrow, q(), Object.defineProperty(w, "_hidePrevMonthArrow", { … … 1280 1127 }), w.currentYearElement = w.yearElements[0], De(), w.monthNav)), w.innerContainer = s("div", "flatpickr-innerContainer"), w.config.weekNumbers) { 1281 1128 var t = function () { 1282 w.calendarContainer.classList.add("hasWeeks"); 1283 var e = s("div", "flatpickr-weekwrapper"); 1284 e.appendChild(s("span", "flatpickr-weekday", w.l10n.weekAbbreviation)); 1285 var t = s("div", "flatpickr-weeks"); 1286 return e.appendChild(t), { 1287 weekWrapper: e, 1288 weekNumbers: t 1289 }; 1290 }(), 1291 n = t.weekWrapper, 1292 a = t.weekNumbers; 1293 1129 w.calendarContainer.classList.add("hasWeeks"); 1130 var e = s("div", "flatpickr-weekwrapper"); 1131 e.appendChild(s("span", "flatpickr-weekday", w.l10n.weekAbbreviation)); 1132 var t = s("div", "flatpickr-weeks"); 1133 return e.appendChild(t), { 1134 weekWrapper: e, 1135 weekNumbers: t 1136 }; 1137 }(), 1138 n = t.weekWrapper, 1139 a = t.weekNumbers; 1294 1140 w.innerContainer.appendChild(n), w.weekNumbers = a, w.weekWrapper = n; 1295 1141 } 1296 1297 1142 w.rContainer = s("div", "flatpickr-rContainer"), w.rContainer.appendChild($()), w.daysContainer || (w.daysContainer = s("div", "flatpickr-days"), w.daysContainer.tabIndex = -1), J(), w.rContainer.appendChild(w.daysContainer), w.innerContainer.appendChild(w.rContainer), e.appendChild(w.innerContainer); 1298 1143 } 1299 1300 1144 w.config.enableTime && e.appendChild(function () { 1301 1145 w.calendarContainer.classList.add("hasTime"), w.config.noCalendar && w.calendarContainer.classList.add("noCalendar"); … … 1303 1147 w.timeContainer = s("div", "flatpickr-time"), w.timeContainer.tabIndex = -1; 1304 1148 var t = s("span", "flatpickr-time-separator", ":"), 1305 n = m("flatpickr-hour", {1306 "aria-label": w.l10n.hourAriaLabel1307 });1149 n = m("flatpickr-hour", { 1150 "aria-label": w.l10n.hourAriaLabel 1151 }); 1308 1152 w.hourElement = n.getElementsByTagName("input")[0]; 1309 1153 var a = m("flatpickr-minute", { … … 1315 1159 case 12: 1316 1160 return 12; 1317 1318 1161 default: 1319 1162 return e % 12; 1320 1163 } 1321 1164 }(e.hours)), w.minuteElement.value = o(w.latestSelectedDateObj ? w.latestSelectedDateObj.getMinutes() : e.minutes), w.hourElement.setAttribute("step", w.config.hourIncrement.toString()), w.minuteElement.setAttribute("step", w.config.minuteIncrement.toString()), w.hourElement.setAttribute("min", w.config.time_24hr ? "0" : "1"), w.hourElement.setAttribute("max", w.config.time_24hr ? "23" : "12"), w.hourElement.setAttribute("maxlength", "2"), w.minuteElement.setAttribute("min", "0"), w.minuteElement.setAttribute("max", "59"), w.minuteElement.setAttribute("maxlength", "2"), w.timeContainer.appendChild(n), w.timeContainer.appendChild(t), w.timeContainer.appendChild(a), w.config.time_24hr && w.timeContainer.classList.add("time24hr"); 1322 1323 1165 if (w.config.enableSeconds) { 1324 1166 w.timeContainer.classList.add("hasSeconds"); … … 1326 1168 w.secondElement = i.getElementsByTagName("input")[0], w.secondElement.value = o(w.latestSelectedDateObj ? w.latestSelectedDateObj.getSeconds() : e.seconds), w.secondElement.setAttribute("step", w.minuteElement.getAttribute("step")), w.secondElement.setAttribute("min", "0"), w.secondElement.setAttribute("max", "59"), w.secondElement.setAttribute("maxlength", "2"), w.timeContainer.appendChild(s("span", "flatpickr-time-separator", ":")), w.timeContainer.appendChild(i); 1327 1169 } 1328 1329 1170 w.config.time_24hr || (w.amPM = s("span", "flatpickr-am-pm", w.l10n.amPM[r((w.latestSelectedDateObj ? w.hourElement.value : w.config.defaultHour) > 11)]), w.amPM.title = w.l10n.toggleTitle, w.amPM.tabIndex = -1, w.timeContainer.appendChild(w.amPM)); 1330 1171 return w.timeContainer; … … 1332 1173 d(w.calendarContainer, "rangeMode", "range" === w.config.mode), d(w.calendarContainer, "animate", !0 === w.config.animate), d(w.calendarContainer, "multiMonth", w.config.showMonths > 1), w.calendarContainer.appendChild(e); 1333 1174 var i = void 0 !== w.config.appendTo && void 0 !== w.config.appendTo.nodeType; 1334 1335 1175 if ((w.config.inline || w.config.static) && (w.calendarContainer.classList.add(w.config.inline ? "inline" : "static"), w.config.inline && (!i && w.element.parentNode ? w.element.parentNode.insertBefore(w.calendarContainer, w._input.nextSibling) : void 0 !== w.config.appendTo && w.config.appendTo.appendChild(w.calendarContainer)), w.config.static)) { 1336 1176 var l = s("div", "flatpickr-wrapper"); 1337 1177 w.element.parentNode && w.element.parentNode.insertBefore(l, w.element), l.appendChild(w.element), w.altInput && l.appendChild(w.altInput), l.appendChild(w.calendarContainer); 1338 1178 } 1339 1340 1179 w.config.static || w.config.inline || (void 0 !== w.config.appendTo ? w.config.appendTo : window.document.body).appendChild(w.calendarContainer); 1341 1180 }(), function () { … … 1352 1191 w.input.getAttribute("step") && (w.mobileInput.step = String(w.input.getAttribute("step"))); 1353 1192 w.input.type = "hidden", void 0 !== w.altInput && (w.altInput.type = "hidden"); 1354 1355 1193 try { 1356 1194 w.input.parentNode && w.input.parentNode.insertBefore(w.mobileInput, w.input.nextSibling); 1357 1195 } catch (e) {} 1358 1359 1196 A(w.mobileInput, "change", function (e) { 1360 1197 w.setDate(g(e).value, !1, w.mobileFormatStr), pe("onChange"), pe("onClose"); … … 1371 1208 }), !0 === w.config.clickOpens && (A(w._input, "focus", w.open), A(w._input, "click", w.open)); 1372 1209 void 0 !== w.daysContainer && (A(w.monthNav, "click", Ce), A(w.monthNav, ["keyup", "increment"], F), A(w.daysContainer, "click", ue)); 1373 1374 1210 if (void 0 !== w.timeContainer && void 0 !== w.minuteElement && void 0 !== w.hourElement) { 1375 1211 var t = function (e) { 1376 1212 return g(e).select(); 1377 1213 }; 1378 1379 1214 A(w.timeContainer, ["increment"], I), A(w.timeContainer, "blur", I, { 1380 1215 capture: !0 … … 1385 1220 }); 1386 1221 } 1387 1388 1222 w.config.allowInput && A(w._input, "blur", te); 1389 1223 }(), (w.selectedDates.length || w.config.noCalendar) && (w.config.enableTime && _(w.config.noCalendar ? w.latestSelectedDateObj : void 0), be(!1)), k(); … … 1392 1226 }(), w; 1393 1227 } 1394 1395 1228 function k(e, t) { 1396 1229 for (var n = Array.prototype.slice.call(e).filter(function (e) { 1397 return e instanceof HTMLElement;1398 }), a = [], i = 0; i < n.length; i++) {1230 return e instanceof HTMLElement; 1231 }), a = [], i = 0; i < n.length; i++) { 1399 1232 var o = n[i]; 1400 1401 1233 try { 1402 1234 if (null !== o.getAttribute("data-fp-omit")) continue; … … 1406 1238 } 1407 1239 } 1408 1409 1240 return 1 === a.length ? a[0] : a; 1410 1241 } 1411 1412 1242 "undefined" != typeof HTMLElement && "undefined" != typeof HTMLCollection && "undefined" != typeof NodeList && (HTMLCollection.prototype.flatpickr = NodeList.prototype.flatpickr = function (e) { 1413 1243 return k(this, e); … … 1415 1245 return k([this], e); 1416 1246 }); 1417 1418 1247 var T = function (e, t) { 1419 1248 return "string" == typeof e ? k(window.document.querySelectorAll(e), t) : e instanceof Node ? k([e], t) : k(e, t); 1420 1249 }; 1421 1422 1250 return T.defaultConfig = {}, T.l10ns = { 1423 1251 en: e({}, i), … … 1439 1267 var DEFAULT_FONT_COLOR = '#404040'; 1440 1268 var FORCE_MOBILE_LAYOUT = slpWidgetOptions.force_mobile_layout; 1441 1442 1269 function createSlopeBlock(el, children) { 1443 1270 var className = FORCE_MOBILE_LAYOUT ? 'slope-block' : 'slp-responsive-layout slope-block'; … … 1450 1277 }, children); 1451 1278 } 1452 1453 1279 function createSlopeReservationSection(el, children) { 1454 1280 return el('div', { … … 1456 1282 }, children); 1457 1283 } 1458 1459 1284 function createSlopeReservationDates(el) { 1460 1285 return el('div', { … … 1462 1287 }, [createSlopeReservationSection(el, createSlopeArrival(el)), createSlopeReservationSection(el, createSlopeDeparture(el))]); 1463 1288 } 1464 1465 1289 function createSlopeArrival(el) { 1466 1290 var today = new Date(); … … 1473 1297 }, today.getDate() + ' Ago, ' + today.getFullYear())]); 1474 1298 } 1475 1476 1299 function createSlopeDeparture(el) { 1477 1300 var today = new Date(); … … 1484 1307 }, today.getDate() + 1 + ' Ago, ' + today.getFullYear())]); 1485 1308 } 1486 1487 1309 function createSlopeVerticalDivider(el) { 1488 1310 return el('div', { … … 1490 1312 }); 1491 1313 } 1492 1493 1314 function createSlopeGuestsAndButtonContainer(el) { 1494 1315 return el('div', { … … 1496 1317 }, [createSlopeReservationSection(el, [createSlopeGuests(el)]), createSlopeSubmitButton(el)]); 1497 1318 } 1498 1499 1319 function createSlopeRooms(el) { 1500 1320 return el('div', { … … 1506 1326 }, '1')]); 1507 1327 } 1508 1509 1328 function createSlopeGuests(el) { 1510 1329 return el('div', { … … 1524 1343 }, ' Bambini')])]); 1525 1344 } 1526 1527 1345 function createSlopeSubmitButton(el) { 1528 1346 return el('div', { … … 1538 1356 })]); 1539 1357 } 1540 1541 1358 function createSlopeLanguageSelect(el, languages, props) { 1542 1359 return el('select', { … … 1562 1379 })); 1563 1380 } 1564 1565 1381 return { 1566 1382 createSlopeBlock: createSlopeBlock, … … 1575 1391 var slopeDateRangePicker = function () { 1576 1392 var DEFAULT_PLUGIN_LANG = 'it'; 1577 1578 1393 function init($) { 1579 1394 updateDates(this, this.currentLocale, this.scope); 1580 var $this = this; // This is the most ugly thing i did in my life: 1395 var $this = this; 1396 1397 // This is the most ugly thing i did in my life: 1581 1398 // - in order to make the calendar change top property and showing correctly on top or bottom of the slope-block 1582 1399 // we hide the calender first, then check if the calendar has the class 'arrowBottom' then set we close the calendar 1583 1400 // and finally reopen it. 1584 1585 1401 $(this.scope + '.slope-check-in-wrapper').parent().on('click', function () { 1586 1402 $this.calendarContainer.style.visibility = 'hidden'; … … 1589 1405 var input = document.querySelector($this.scope + ' .slope-block .slope-check-in-input'); 1590 1406 var isBottomCalendar = $this.calendarContainer.getAttribute('class').split(' ').indexOf('arrowBottom') > 0; 1591 1592 1407 if (isBottomCalendar) { 1593 1408 input.style.top = '-8px'; … … 1595 1410 input.style.top = '88px'; 1596 1411 } 1597 1598 1412 $this.close(); 1599 1413 $this.calendarContainer.style.visibility = 'visible'; … … 1608 1422 var input = document.querySelector($this.scope + ' .slope-block .slope-check-in-input'); 1609 1423 var isBottomCalendar = $this.calendarContainer.getAttribute('class').split(' ').indexOf('arrowBottom') > 0; 1610 1611 1424 if (isBottomCalendar) { 1612 1425 input.style.top = '-8px'; … … 1614 1427 input.style.top = '88px'; 1615 1428 } 1616 1617 1429 $this.close(); 1618 1430 $this.calendarContainer.style.visibility = 'visible'; … … 1621 1433 }); 1622 1434 } 1623 1624 1435 function updateDates(self, locale, scope) { 1625 1436 var start = new Date(); 1626 1437 var end = new Date(); 1627 1628 1438 if (!!self.selectedDates && self.selectedDates.length < 2) { 1629 1439 end.setDate(start.getDate() + self.minDays); 1630 1440 self.selectedDates = [start, end]; 1631 } // if (!self.selectedDates[0]) { 1441 } 1442 // if (!self.selectedDates[0]) { 1632 1443 // var checkInDate = document.querySelector(self.scope + '.slope-check-in-input').value.split('/'); 1633 1444 // var checkInDay = checkInDate[0]; … … 1643 1454 // self.selectedDates[1] = new Date(checkOutYear, checkOutMonth, checkOutDay); 1644 1455 // } 1645 1646 1647 1456 var arrival = self.selectedDates[0]; 1648 1457 var departure = self.selectedDates[1]; … … 1652 1461 document.querySelector(scope + '.slope-check-out-input').value = departure.getDate() + '/' + (departure.getMonth() + 1) + '/' + departure.getFullYear(); 1653 1462 } 1654 1655 1463 function create(firstInput, secondInput, appendTo, index, $, options) { 1656 1464 var indexedScope = '[data-widget-count=\"' + index + '\"] '; 1657 1465 var reservationDate = document.querySelector(indexedScope + '.slope-reservation-section-container'); 1658 1659 1466 if (!!reservationDate) { 1660 1467 var pluginLang = reservationDate.getAttribute('data-lang'); 1661 1468 } 1662 1663 1469 var currentLocale = slopeFlatpickrLocaleManager.locale(pluginLang || DEFAULT_PLUGIN_LANG); 1664 1665 1470 var isMobile = function isMobile() { 1666 1471 var check = false; 1667 1668 1472 (function (a) { 1669 1473 if (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0, 4))) check = true; 1670 1474 })(navigator.userAgent || navigator.vendor || window.opera); 1475 return check; 1476 }; 1671 1477 1672 return check; 1673 }; // The dateFormat option is necessary for the form submission to work 1674 1675 1478 // The dateFormat option is necessary for the form submission to work 1676 1479 options = { 1677 1480 mode: "range", … … 1698 1501 return calendar; 1699 1502 } 1700 1701 1503 return { 1702 1504 create: create … … 1724 1526 var s = nth % 100; 1725 1527 if (s > 3 && s < 21) return "th"; 1726 1727 1528 switch (s % 10) { 1728 1529 case 1: 1729 1530 return "st"; 1730 1731 1531 case 2: 1732 1532 return "nd"; 1733 1734 1533 case 3: 1735 1534 return "rd"; 1736 1737 1535 default: 1738 1536 return "th"; … … 1804 1602 time_24hr: true 1805 1603 }; 1806 1807 1604 switch (langCode) { 1808 1605 case 'it': 1809 1606 return Italian; 1810 1811 1607 case 'fr': 1812 1608 return French; 1813 1814 1609 case 'de': 1815 1610 return German; 1816 1817 1611 default: 1818 1612 return English; 1819 1613 } 1820 1614 } 1821 1822 1615 return { 1823 1616 locale: locale … … 1829 1622 this.data = _toJSON($form); 1830 1623 this.requiredFields = requiredFields; 1831 1832 1624 this.isValid = function () { 1833 1625 var self = this; … … 1838 1630 }); 1839 1631 }; 1840 1841 1632 function _toJSON($form) { 1842 1633 var asArray = $form.serializeArray(); … … 1847 1638 return json; 1848 1639 } 1849 1850 1640 this.send = function (url, successCallback) { 1851 1641 jQuery.ajax(url, { … … 1862 1652 CHILDREN: '[data-input="children"]' 1863 1653 }; 1864 1865 1654 function SlopeGuestsWrapper($element) { 1866 1655 this.childrenNextIndex = 0; … … 1868 1657 this.stepperContainer = $element.siblings('.slope-stepper-container'); 1869 1658 this.rooms = [new SlopeRoom(0, this.stepperContainer.find('[data-container="guests"]'), this.$element.find(SLOPE_ROOM_FORM_SELECTORS.ADULTS), $element)]; 1870 1871 1659 this.updateGuests = function () { 1872 1660 var self = this; … … 1885 1673 }); 1886 1674 }; 1887 1888 1675 this.reset = function () { 1889 1676 this.rooms.forEach(function (room, index) { … … 1902 1689 this.updateGuests(); 1903 1690 }; 1904 1905 1691 this.calculateStepperTop = function () { 1906 1692 var isMobile = function isMobile() { 1907 1693 var check = false; 1908 1909 1694 (function (a) { 1910 1695 if (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0, 4))) check = true; 1911 1696 })(navigator.userAgent || navigator.vendor || window.opera); 1697 return check; 1698 }; 1912 1699 1913 return check; 1914 }; // We append the stepper container to the body of the page to avoid z-index to depend on the container 1915 1916 1700 // We append the stepper container to the body of the page to avoid z-index to depend on the container 1917 1701 document.querySelector('body').appendChild(this.stepperContainer[0]); 1918 1702 var slopeBlockBounds = this.$element.parentsUntil('.slope-block').parent()[0].getBoundingClientRect(); … … 1922 1706 this.stepperContainer.css('left', left + 'px'); 1923 1707 }; 1924 1925 1708 this.openGuestsSelection = function () { 1926 1709 this.stepperContainer.show(); 1927 1710 }; 1928 1929 1711 this.closeGuestsSelection = function () { 1930 1712 this.stepperContainer.hide(); 1931 1713 }; 1932 1933 1714 this.handleClickOutsideGuestsSelection = function (event) { 1934 1715 var containers = Array.from(document.querySelectorAll('.slope-stepper-container')); 1935 1716 var isStepperContainerVisible = this.stepperContainer.css('display') !== 'none'; 1936 1937 1717 if (containers.length > 0 && this.$element.parent().find(event.target).length === 0 && !this.$element.parent().is(event.target) && this.stepperContainer.find(event.target).length === 0 && isStepperContainerVisible) { 1938 1718 this.updateGuests(); … … 1940 1720 } 1941 1721 }; 1942 1943 1722 this.init = function ($) { 1944 1723 this.updateGuests(); … … 1968 1747 return; 1969 1748 } 1970 1971 1749 var adultsInputClone = self.$element.find(SLOPE_ROOM_FORM_SELECTORS.ADULTS).first().clone(); 1972 1750 adultsInputClone.appendTo(self.$element); … … 1978 1756 return; 1979 1757 } 1980 1981 1758 self.$element.find(SLOPE_ROOM_FORM_SELECTORS.ADULTS).last().remove(); 1982 1759 var lastRoom = self.rooms.pop(); … … 1993 1770 CHILDREN: "reservation[guestCounts][__name__][childrenAges][__childrenAgesName__]" 1994 1771 }; 1995 1996 1772 function SlopeRoom(index, $element, adultsInput, guestsWrapper) { 1997 1773 this.index = index; … … 2001 1777 this.guestsWrapper = guestsWrapper; 2002 1778 this.$element = null; 2003 2004 1779 this.update = function () { 2005 1780 var adultsInput = this.$element.find('[data-sync-trigger="adults"]'); … … 2009 1784 this.adultsInput.val(this.adultsCount); 2010 1785 }; 2011 2012 1786 this.reset = function () { 2013 1787 this.adultsCount = 2; … … 2015 1789 this.update(); 2016 1790 }; 2017 2018 1791 if (index > 0) { 2019 1792 // The element is not the first so we have to clone the first one is not passed this means we have to clone one … … 2024 1797 this.$element = $element; 2025 1798 } 2026 2027 1799 this.adultsInput.attr('name', SLOPE_NAME_PROTOTYPES.ADULTS.replace(new RegExp('__name__', 'g'), this.index)); 2028 1800 var roomLabel = this.$element.find('[data-label="room"]'); … … 2042 1814 self.decrementChildren(); 2043 1815 }); 2044 2045 1816 this.incrementAdults = function () { 2046 1817 this.adultsCount += this.adultsCount < 99 ? 1 : 0; … … 2048 1819 input.val(this.adultsCount); 2049 1820 }; 2050 2051 1821 this.decrementAdults = function () { 2052 1822 this.adultsCount -= this.adultsCount > 1 ? 1 : 0; … … 2054 1824 input.val(this.adultsCount); 2055 1825 }; 2056 2057 1826 this.incrementChildren = function () { 2058 1827 this.childrenCount += this.childrenCount < 99 ? 1 : 0; … … 2067 1836 stepperInput.val(this.childrenCount); 2068 1837 }; 2069 2070 1838 this.decrementChildren = function () { 2071 1839 this.childrenCount -= this.childrenCount > 0 ? 1 : 0; … … 2074 1842 stepperInput.val(this.childrenCount); 2075 1843 }; 2076 2077 1844 this.destroy = function () { 2078 1845 this.$element.remove(); … … 2084 1851 Array.from = function () { 2085 1852 var toStr = Object.prototype.toString; 2086 2087 1853 var isCallable = function isCallable(fn) { 2088 1854 return typeof fn === 'function' || toStr.call(fn) === '[object Function]'; 2089 1855 }; 2090 2091 1856 var toInteger = function toInteger(value) { 2092 1857 var number = Number(value); 2093 2094 1858 if (isNaN(number)) { 2095 1859 return 0; 2096 1860 } 2097 2098 1861 if (number === 0 || !isFinite(number)) { 2099 1862 return number; 2100 1863 } 2101 2102 1864 return (number > 0 ? 1 : -1) * Math.floor(Math.abs(number)); 2103 1865 }; 2104 2105 1866 var maxSafeInteger = Math.pow(2, 53) - 1; 2106 2107 1867 var toLength = function toLength(value) { 2108 1868 var len = toInteger(value); 2109 1869 return Math.min(Math.max(len, 0), maxSafeInteger); 2110 }; // The length property of the from method is 1.1870 }; 2111 1871 1872 // The length property of the from method is 1. 1873 return function from(arrayLike /*, mapFn, thisArg */) { 1874 // 1. Let C be the this value. 1875 var C = this; 2112 1876 2113 return function from(arrayLike 2114 /*, mapFn, thisArg */ 2115 ) { 2116 // 1. Let C be the this value. 2117 var C = this; // 2. Let items be ToObject(arrayLike). 1877 // 2. Let items be ToObject(arrayLike). 1878 var items = Object(arrayLike); 2118 1879 2119 var items = Object(arrayLike); // 3. ReturnIfAbrupt(items). 2120 1880 // 3. ReturnIfAbrupt(items). 2121 1881 if (arrayLike == null) { 2122 1882 throw new TypeError('Array.from requires an array-like object - not null or undefined'); 2123 } // 4. If mapfn is undefined, then let mapping be false.1883 } 2124 1884 2125 1885 // 4. If mapfn is undefined, then let mapping be false. 2126 1886 var mapFn = arguments.length > 1 ? arguments[1] : void undefined; 2127 1887 var T; 2128 2129 1888 if (typeof mapFn !== 'undefined') { 2130 1889 // 5. else … … 2132 1891 if (!isCallable(mapFn)) { 2133 1892 throw new TypeError('Array.from: when provided, the second argument must be a function'); 2134 } // 5. b. If thisArg was supplied, let T be thisArg; else let T be undefined.1893 } 2135 1894 2136 1895 // 5. b. If thisArg was supplied, let T be thisArg; else let T be undefined. 2137 1896 if (arguments.length > 2) { 2138 1897 T = arguments[2]; 2139 1898 } 2140 } // 10. Let lenValue be Get(items, "length"). 1899 } 1900 1901 // 10. Let lenValue be Get(items, "length"). 2141 1902 // 11. Let len be ToLength(lenValue). 1903 var len = toLength(items.length); 2142 1904 2143 2144 var len = toLength(items.length); // 13. If IsConstructor(C) is true, then 1905 // 13. If IsConstructor(C) is true, then 2145 1906 // 13. a. Let A be the result of calling the [[Construct]] internal method 2146 1907 // of C with an argument list containing the single item len. 2147 1908 // 14. a. Else, Let A be ArrayCreate(len). 1909 var A = isCallable(C) ? Object(new C(len)) : new Array(len); 2148 1910 2149 var A = isCallable(C) ? Object(new C(len)) : new Array(len); // 16. Let k be 0. 2150 2151 var k = 0; // 17. Repeat, while k < len… (also steps a - h) 2152 1911 // 16. Let k be 0. 1912 var k = 0; 1913 // 17. Repeat, while k < len… (also steps a - h) 2153 1914 var kValue; 2154 2155 1915 while (k < len) { 2156 1916 kValue = items[k]; 2157 2158 1917 if (mapFn) { 2159 1918 A[k] = typeof T === 'undefined' ? mapFn(kValue, k) : mapFn.call(T, kValue, k); … … 2161 1920 A[k] = kValue; 2162 1921 } 2163 2164 1922 k += 1; 2165 } // 18. Let putStatus be Put(A, "length", len, true). 2166 2167 2168 A.length = len; // 20. Return A. 2169 1923 } 1924 // 18. Let putStatus be Put(A, "length", len, true). 1925 A.length = len; 1926 // 20. Return A. 2170 1927 return A; 2171 1928 }; -
slope-widgets/tags/4.3.4/js/slope-promotions.js
r3294822 r3415084 3 3 // NOTE: This is the code of the latest promotion widget. Code for legacy promotions widget is placed in the file 4 4 // slope-widgets.js 5 5 6 document.addEventListener('DOMContentLoaded', function () { 6 7 var slopePromotionsShortcodes = document.querySelectorAll('[data-role="slope-promo"]'); … … 24 25 // Remove loading spinner 25 26 var loadingElement = slopePromotionsShortcode.querySelector(".slp-loading-indicator"); 26 27 27 if (loadingElement) { 28 28 loadingElement.remove(); 29 29 } 30 31 30 if (response.success && response.data) { 32 31 slopePromotionsShortcode.innerHTML = response.data.html; 33 32 initializePromotionCards(slopePromotionsShortcode); 34 33 } 35 36 34 if (response.data && response.data.error) { 37 35 console.error("Error fetching promotions:", response.data.error); … … 49 47 }); 50 48 }); 51 52 49 function initializePromotionCards(shortcodeElement) { 53 50 var promotionCards = shortcodeElement.querySelectorAll('.slp-promotion-card'); 54 55 51 if (document.querySelectorAll("[data-open-new-tab]").length > 0) { 56 52 shortcodeElement.querySelectorAll(".slp-reserve-button").forEach(function (promotionButton) { … … 58 54 }); 59 55 } 60 61 56 promotionCards.forEach(function (card) { 62 57 var promotionId = card.dataset.promotionId; 63 58 var modal = shortcodeElement.querySelector("#modal-".concat(promotionId)); 64 59 var openButtons = card.querySelectorAll('[data-action="open-modal"]'); 65 var closeButton = modal.querySelector('.slp-close-modal-button'); // Open modal handlers60 var closeButton = modal.querySelector('.slp-close-modal-button'); 66 61 62 // Open modal handlers 67 63 openButtons.forEach(function (button) { 68 64 button.addEventListener('click', function () { 69 65 return openModal(modal); 70 66 }); 71 }); // Close modal handler67 }); 72 68 69 // Close modal handler 73 70 closeButton.addEventListener('click', function () { 74 71 return closeModal(modal); 75 }); // Close on outside click72 }); 76 73 74 // Close on outside click 77 75 modal.addEventListener('click', function (e) { 78 76 if (e.target === modal) { … … 80 78 } 81 79 }); 82 }); // Modal functions80 }); 83 81 82 // Modal functions 84 83 function openModal(modal) { 85 84 modal.classList.add('slp-modal-visible'); … … 88 87 document.body.style.overflow = 'hidden'; // Prevent background scrolling 89 88 } 90 91 89 function closeModal(modal) { 92 90 modal.classList.add('slp-modal-hidden'); … … 94 92 modal.setAttribute('aria-hidden', 'true'); 95 93 document.body.style.overflow = ''; // Restore background scrolling 96 } // When ESC key is pressed, close all open modals94 } 97 95 98 96 // When ESC key is pressed, close all open modals 99 97 document.addEventListener('keydown', function (e) { 100 98 if (e.key === 'Escape') { -
slope-widgets/tags/4.3.4/js/slope-widgets.js
r3385288 r3415084 8 8 new SlopeGuestsWrapper($(widget).find(".slope-guests-wrapper")).init($); 9 9 }); 10 }); // Packages and promotions10 }); 11 11 12 // Packages and promotions 12 13 /** 13 14 * Widget object to isolate all the logic needed from a widget. 14 15 */ 15 16 16 var WidgetManager = function () { 17 17 /** … … 20 20 */ 21 21 var establishmentID; 22 22 23 /** 23 24 * Domain. The default value gets overridden in testing scenarios (e.g. //test.booking.slope.it). 24 25 * @var {string} 25 26 */ 27 var domain; 26 28 27 var domain;28 29 /** 29 30 * Language. The language in which the widget must be rendered. 30 31 */ 32 var language; 31 33 32 var language;33 34 /** 34 35 * Controller action representing the path fo the widget we want to retrieve. 35 36 * @var {string} 36 37 */ 37 38 38 var widgetAction = "search"; 39 39 return { … … 51 51 domain = widgetDomain || "booking.slope.it"; 52 52 domain = "https://" + domain; 53 54 53 switch (type) { 55 54 case "promotions": 56 55 widgetAction = "promotions"; 57 56 break; 58 59 57 case "search": 60 58 default: … … 63 61 } 64 62 }, 65 66 63 /** 67 64 * Returns the url of the action that generates the JSONp for the desired widget. … … 72 69 return domain + "/widgets/" + widgetAction + "/" + establishmentID + (language ? "/" + language : ""); 73 70 }, 74 75 71 /** 76 72 * Returns the url for json widget. … … 78 74 * @returns {string} 79 75 */ 76 80 77 getBookingEngineUrl: function getBookingEngineUrl(promotionID) { 81 78 return domain + "/" + establishmentID + "/promotions/" + promotionID; 82 79 }, 83 84 80 /** 85 81 * Returns the full url to the css resource. … … 92 88 }; 93 89 }(); 90 94 91 /** 95 92 * Used to embed our legacy promotions widget into external websites. 96 93 */ 97 98 99 94 jQuery(document).ready(function ($) { 100 95 // TODO: This code is for legacy promotions. It is going to be removed in the future. 101 96 if ($("#slope-promotions").length) { 102 97 WidgetManager.create($("#slope-promotions").attr("data-id"), $("#slope-bl").attr("data-domain"), "promotions"); 103 104 98 if ($("#widget-css").length === 0) { 105 99 $("head").append("<link id=\"widget-css\" rel=\"stylesheet\" type=\"text/css\" href=\"".concat(WidgetManager.getCSSResource(), "\" />")); 106 100 } 107 108 101 $.get(WidgetManager.getWidgetUrl(), null, function (data) { 109 102 $("#slope-promotions").html(data.html); // Inject HTML in the page. 103 110 104 // Book engine in new window Promotions 111 112 105 if (document.querySelectorAll("[data-open-new-tab]").length > 0) { 113 106 var widgetElement = document.getElementById("slope-promotions"); -
slope-widgets/tags/4.3.4/languages/slope-widgets-en_US.po
r3385288 r3415084 2 2 msgstr "" 3 3 "Project-Id-Version: Slope Widgets\n" 4 "POT-Creation-Date: 2025-1 0-17 16:17+0200\n"5 "PO-Revision-Date: 2025-1 0-17 16:17+0200\n"4 "POT-Creation-Date: 2025-12-04 17:27+0100\n" 5 "PO-Revision-Date: 2025-12-05 08:58+0100\n" 6 6 "Last-Translator: \n" 7 7 "Language-Team: \n" … … 28 28 msgstr "Invalid Establishment ID." 29 29 30 #: includes/admin/Promotions.php:9 330 #: includes/admin/Promotions.php:92 31 31 msgid "Id Struttura non impostato" 32 msgstr "Establishment ID not set ted"33 34 #: includes/admin/Promotions.php:2 09 includes/admin/Reservations.php:39232 msgstr "Establishment ID not set" 33 34 #: includes/admin/Promotions.php:212 includes/admin/Reservations.php:393 35 35 msgid "Una delle proprietà non è valida, controllare i valori e riprovare" 36 msgstr "One of the properties is invalid, check the values and try again"36 msgstr "One of the properties is invalid, check values and try again" 37 37 38 38 #: includes/pages/global-settings/index.php:14 … … 75 75 "francese e tedesco (it, en, fr, de)." 76 76 msgstr "" 77 "The languages supported by the booking bar are Italian, English, French and "77 "The languages supported by the booking bar are Italian, English, French and " 78 78 "German (it, en, fr, de)." 79 79 … … 136 136 #: includes/pages/global-settings/partials/form.php:40 137 137 msgid "ID Struttura Slope" 138 msgstr "Slope StructureID"138 msgstr "Slope Establishment ID" 139 139 140 140 #: includes/pages/global-settings/partials/form.php:46 … … 498 498 #: slope-promotions-legacy.php:37 499 499 msgid "ID struttura" 500 msgstr " HotelID"500 msgstr "Establishment ID" 501 501 502 502 #: slope-promotions-legacy.php:39 503 503 msgid "Il tuo Slope ID" 504 msgstr "Your Slope hotelID"504 msgstr "Your Slope establishment ID" 505 505 506 506 #: slope-promotions-legacy.php:55 … … 558 558 "i pacchetti e le promozioni tramite shortcode personalizzabili." 559 559 msgstr "" 560 "Add Slope to your WordPress site! This plugin allows you to insert the " 561 "reservations bar and the promotion cards in your website thanks to shortcodes." 560 "Add Slope widgets to your WordPress site! This plugin allows you to insert " 561 "the reservations bar and the promotion cards in your website via customizable " 562 "shortcodes." 562 563 563 564 #. Author of the plugin/theme -
slope-widgets/tags/4.3.4/languages/slope-widgets.pot
r3385288 r3415084 3 3 msgstr "" 4 4 "Project-Id-Version: Slope Widgets\n" 5 "POT-Creation-Date: 2025-1 0-17 16:17+0200\n"5 "POT-Creation-Date: 2025-12-05 08:49+0100\n" 6 6 "PO-Revision-Date: 2018-01-04 14:50+0100\n" 7 7 "Last-Translator: \n" … … 27 27 msgstr "" 28 28 29 #: includes/admin/Promotions.php:9 329 #: includes/admin/Promotions.php:92 30 30 msgid "Id Struttura non impostato" 31 31 msgstr "" 32 32 33 #: includes/admin/Promotions.php:2 09 includes/admin/Reservations.php:39233 #: includes/admin/Promotions.php:212 includes/admin/Reservations.php:393 34 34 msgid "Una delle proprietà non è valida, controllare i valori e riprovare" 35 35 msgstr "" -
slope-widgets/tags/4.3.4/readme.txt
r3385288 r3415084 5 5 Requires at least: 5.6 6 6 Requires PHP: 7.0 7 Tested up to: 6. 88 Stable tag: 4.3. 37 Tested up to: 6.9 8 Stable tag: 4.3.4 9 9 License: GPLv2 or later 10 10 License URI: http://www.gnu.org/licenses/gpl-2.0.html … … 40 40 == Changelog == 41 41 42 = 4.3.4 = 43 * Bugfix e correzioni minori 44 42 45 = 4.3.3 = 43 46 * Possibilità di indicare l'età minima dei bambini nelle impostazioni del plugin -
slope-widgets/tags/4.3.4/slope-widgets.php
r3385288 r3415084 3 3 * Plugin Name: Slope Widgets 4 4 * Description: Aggiungi i widget di Slope al sito web WordPress della tua struttura ricettiva! Questo plugin ti permette di mostrare la barra delle prenotazioni, i pacchetti e le promozioni tramite shortcode personalizzabili. 5 * Version: 4.3. 35 * Version: 4.3.4 6 6 * Author: Slope 7 7 * Author URI: https://www.slope.it/ … … 16 16 17 17 // We use this constant to invalidate the cache of the plugin's assets 18 const SLOPE_WIDGETS_CACHE_BUST_VERSION = '4.3. 3';18 const SLOPE_WIDGETS_CACHE_BUST_VERSION = '4.3.4'; 19 19 20 20 // Current version of the database schema. It is used to check if the database schema needs to be updated. … … 34 34 // more data on actual requests. 35 35 define( 36 'SLOPE_PR MOTIONS_CACHE_EXPIRATION_SECONDS',37 getenv('SLOPE_PR MOTIONS_CACHE_EXPIRATION_SECONDS') !== false ? getenv('SLOPE_PRMOTIONS_CACHE_EXPIRATION_SECONDS') : 12036 'SLOPE_PROMOTIONS_CACHE_EXPIRATION_SECONDS', 37 getenv('SLOPE_PROMOTIONS_CACHE_EXPIRATION_SECONDS') !== false ? getenv('SLOPE_PROMOTIONS_CACHE_EXPIRATION_SECONDS') : 120 38 38 ); 39 39 -
slope-widgets/trunk/css/slope-admin.css
r3385288 r3415084 3 3 @keyframes slope-spin{0%{transform:rotate(0deg)}to{transform:rotate(360deg)}}.slope-promo-container{width:100%!important}#slp-arrow-icon{height:1rem}#slp-settings-border-radius-container{display:flex;gap:10px;align-items:center}.slp-promotion-card{flex:1 1 300px;border-radius:10px;margin-bottom:1rem;position:relative;min-width:280px;display:flex;flex-direction:column}.slp-loading-spinner{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #3498db;border-radius:50%;animation:slope-spin 2s linear infinite}.slp-error-message,.slp-loading-indicator{display:flex;justify-content:center;align-items:center;margin:auto}.slp-loading-indicator{padding:20px;width:100%}.slp-error-message{border-radius:10px;background:#eee;padding:30px;text-align:center}.slp-promotion-container{flex:1;display:flex;flex-direction:column;width:fit-content;max-width:100%;overflow:hidden}.slp-promotion-image{background-size:cover;background-repeat:no-repeat;background-position:center;padding:16px;min-height:180px}.slp-promotion-expiration-date{top:1rem;left:1rem;z-index:2;padding:4px 8px;border-radius:10px;font-size:.75rem;font-weight:700;width:fit-content}.slp-promotion-title{font-size:clamp(1rem,2.5vw,1.25rem);font-weight:700;line-height:1.3;margin-bottom:clamp(.5rem,2vw,1rem)}.slp-promotion-description{font-size:clamp(.875rem,2vw,1rem);line-height:1.5;-webkit-box-orient:vertical;white-space:normal;display:-webkit-box;overflow:hidden;text-overflow:ellipsis;max-width:100%;word-wrap:break-word}.slp-promotion-actions{display:flex;flex-direction:column;gap:.5rem;margin-top:auto}.slp-see-details{font-size:.9rem;align-self:flex-start;font-weight:700;display:flex;align-items:center;margin-bottom:.5rem;gap:.5rem}.slp-reserve-button{display:block;padding:.75rem 0;font-size:1rem;font-weight:700;border-radius:10px;text-decoration:none;text-align:center}.slp-modal,.slp-modal-overlay{z-index:1000;top:0;left:0;width:100%;height:100%}.slp-modal{position:fixed;background-color:rgba(0,0,0,.4);opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease}.slp-modal-overlay{background-image:linear-gradient(to bottom,transparent 0,#d1d2da 250px,#d1d2da,#d1d2da);border-radius:10px;position:absolute}.slp-modal-container{background-size:100%,cover;background-repeat:no-repeat;background-position:top,center;padding:clamp(8px,2vw,12px);border-radius:10px;width:min(80vw,600px);z-index:1001;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.slp-close-modal-button{position:absolute;right:1rem;line-height:.5;top:1rem;font-size:24px;cursor:pointer;z-index:1003;border-radius:50%;padding:.5rem}.slp-modal-promotion-container{border-radius:10px;position:relative;z-index:1001;margin-top:clamp(10vh,16vh,24vh)}.slp-modal-promotion-details{max-width:100%;word-wrap:break-word;max-height:25vh;overflow-y:auto}.slp-modal-lodgings,.slp-modal-promotion-details{font-size:clamp(.875rem,2vw,1rem);margin-bottom:1rem;line-height:1.5}.slp-modal-visible{opacity:1;visibility:visible}.slp-modal-hidden{opacity:0;visibility:hidden}@media screen and (max-width:768px){.slp-modal-promotion-details{max-height:50vh}.slp-modal-container{width:90vw;background-size:150%,cover}} 4 4 .slp-welcome-button{display:inline-flex;align-items:center;right:10px;bottom:30px;height:36px;padding:0 10px;border-radius:3px;text-align:center;text-transform:uppercase;text-decoration:none}.slp-welcome-button #skip-icon{margin-right:8px}.slope-slp-welcome{width:99%}#slp-welcome-button-container{display:flex;flex-direction:row;gap:1rem;justify-content:space-between;margin-top:1rem}#slp-next-button{display:inline-flex;align-items:center;gap:2px;margin-right:1rem;height:36px;text-transform:uppercase;padding:0 10px;border-radius:3px;text-align:center;text-decoration:none}#slp-next-button-icon{width:10px;margin-right:5px} 5 .slope-widgets-container{box-sizing:border-box}.slope- justify-flex-end{justify-content:flex-end}.slope-width-100{width:100%}.slope-block{border-radius:.2rem;border:1px solid rgba(0,0,0,.1);line-height:1;margin:0 auto;max-width:900px;padding:8px;position:relative}.slope-block *{box-sizing:border-box}.slope-block .slope-reservation-section-container{cursor:pointer!important;text-align:left;padding:10px;border-radius:6px;display:flex;align-items:center}.slope-block .slope-reservation-section-container.slope-highlight:hover{background-color:rgba(0,0,0,.1)}.slope-block .slope-reservation-section-container .slope-check-in-container{margin:auto}.slope-block input[type=number]{-webkit-appearance:none;appearance:none;background:0 0;border-radius:0;border:0;color:inherit;display:block;font:inherit;margin:0;outline:0;padding:0;width:auto}.slope-block label{display:block;font-size:14px;text-align:left}.slope-block{min-height:225px}.slope-reservation-dates{display:flex;justify-content:space-between;padding-right:8px}.slope-guests-and-button-container{z-index:10}.slope-block .slope-reservation-section-container .slope-guests-wrapper,.slope-reservation-section-container{width:100%}.slope-guests-count-container{width:100%;text-align:right}.slope-cancel-guests,.slope-save-guests{background:0 0;display:inline-block;text-align:center;width:49%}.slope-horizontal-separator{border-bottom:solid 1px rgba(0,0,0,.1);display:block;margin-bottom:10px;margin-top:10px}.slope-block .slope-check-out-wrapper{text-align:right}.slope-vertical-divider{display:none}.slope-reservation-dates .slope-reservation-icon-container{align-items:center;display:flex;justify-content:center;opacity:.4;width:20px}.dayContainer+.dayContainer{border-left:1px solid rgba(0,0,0,.1)}.slope-block .slope-rooms-count-container{padding-right:32px}.slope-guests-buttons-container{display:flex}.slope-block .slope-check-in-input,.slope-block .slope-check-out-input{border:0;height:0;left:0;padding:0;position:absolute;top:88px;visibility:hidden!important}.slope-block .slope-check-in-label,.slope-block .slope-check-out-label,.slope-block .slope-guests-label,.slope-block .slope-rooms-label{display:block!important;font-size:13px!important;height:15px!important;line-height:15px!important}.slope-block .slope-reservation-section-container .slope-guests-wrapper{white-space:nowrap;display:flex}.slope-block .slope-adults-count,.slope-block .slope-check-in-date,.slope-block .slope-check-out-date,.slope-block .slope-children-count,.slope-block .slope-guests-adults,.slope-block .slope-guests-children,.slope-block .slope-rooms-count{border-radius:.2rem;font-size:16px;line-height:20px;min-width:175px}.slope-block input[type=submit].slope-reservation-submit{border-radius:.2rem;font-size:14px!important;font-weight:500;line-height:20px;min-width:175px}.slope-stepper-container{animation:fpFadeInDown 300ms cubic-bezier(.23,1,.32,1);border-radius:6px;border:1px solid rgba(0,0,0,.1);display:none;font-size:16px;line-height:16px;margin-top:10px;padding:10px;position:absolute;width:300px;z-index:9999}.slope-block input[type=text],.slope-stepper-container input[type=text]{border:0!important;cursor:default!important;font-size:inherit!important;margin-bottom:0!important;min-height:0!important;outline:0!important;padding:0!important}.slope-stepper-container input[type=text]{background-color:inherit!important}.slope-block button,.slope-block input[type=button],.slope-block input[type=reset],.slope-block input[type=submit],.slope-stepper-container button,.slope-stepper-container input[type=button],.slope-stepper-container input[type=reset],.slope-stepper-container input[type=submit]{border:0!important;cursor:pointer;font-family:inherit;font-size:inherit!important;margin-bottom:0!important;margin-top:0!important;min-height:30px!important;outline:0!important;padding:12px!important;text-transform:uppercase;transition:all .2s ease-in-out}.slope-block button:hover,.slope-block input[type=button]:hover,.slope-block input[type=reset]:hover,.slope-block input[type=submit]:hover,.slope-stepper-container button:hover,.slope-stepper-container input[type=button]:hover,.slope-stepper-container input[type=reset]:hover,.slope-stepper-container input[type=submit]:hover{opacity:.8}.slope-stepper-label{padding-bottom:1px}.slope-stepper-container input[type=number],.slope-stepper-container input[type=text]{width:auto}.slope-stepper-container .slope-stepper-value{text-align:center;margin:0;border:0;box-sizing:border-box;background:0 0!important}.slope-stepper-container .slope-decrement-button,.slope-stepper-container .slope-increment-button{align-items:center;background:0 0;border-radius:50%;cursor:pointer;display:flex;float:right;font-size:18px;font-weight:700;height:26px;justify-content:center;line-height:18px;margin:0!important;opacity:1;padding:0;text-align:center;text-decoration:none;transition:all .2s ease-in-out!important;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;width:26px}.slope-stepper-container .slope-stepper-value{width:44px!important}.slope-stepper-container .slope-guests-stepper,.slope-stepper-container .slope-rooms-stepper{display:flex}.slope-stepper-container .slope-horizontal-separator{width:100%;border-bottom:solid 1px rgba(0,0,0,.1);margin:10px 0;display:block!important}.slope-vertical-divider{border-left:1px solid rgba(0,0,0,.1);height:42px;margin-bottom:auto;margin-top:auto}.slope-guests-count-row,.slope-rooms-stepper-container{align-items:center;display:flex;justify-content:space-between;padding:10px}.slope-rooms-stepper{font-size:18px;padding:0}.slope-guests-count-row.slope-padding-top{padding-top:20px}.slope-children-age{font-size:12px}#slope-widget p,#slope-widget table td{border:0!important}.slope-stepper-container .slope-room-label{padding:10px;font-size:16px;font-weight:700}@media (min-width:992px){.slp-responsive-layout.slope-block{display:flex;justify-content:space-between;min-height:auto;min-width:900px}.slp-responsive-layout .slope-horizontal-separator{display:none}.slp-responsive-layout .slope-guests-and-button-container{width:65%;padding-left:8px;display:flex;justify-content:space-between}.slp-responsive-layout .slope-reservation-dates{width:35%}.slp-responsive-layout .slope-vertical-divider{display:block}.slp-responsive-layout .slope-reservation-dates .slope-reservation-icon-container{width:60px}.slp-responsive-layout .slope-reservation-section-container,.slp-responsive-layout .slope-reservation-section-container.slope-submit-section{width:50%}.slp-responsive-layout .slope-guests-count-container{text-align:left}}5 .slope-widgets-container{box-sizing:border-box}.slope-widgets-container span{display:inline}.slope-justify-flex-end{justify-content:flex-end}.slope-width-100{width:100%}.slope-block{border-radius:.2rem;border:1px solid rgba(0,0,0,.1);line-height:1;margin:0 auto;max-width:900px;padding:8px;position:relative}.slope-block *{box-sizing:border-box}.slope-block .slope-reservation-section-container{cursor:pointer!important;text-align:left;padding:10px;border-radius:6px;display:flex;align-items:center}.slope-block .slope-reservation-section-container.slope-highlight:hover{background-color:rgba(0,0,0,.1)}.slope-block .slope-reservation-section-container .slope-check-in-container{margin:auto}.slope-block input[type=number]{-webkit-appearance:none;appearance:none;background:0 0;border-radius:0;border:0;color:inherit;display:block;font:inherit;margin:0;outline:0;padding:0;width:auto}.slope-block label{display:block;font-size:14px;text-align:left}.slope-block{min-height:225px}.slope-reservation-dates{display:flex;justify-content:space-between;padding-right:8px}.slope-guests-and-button-container{z-index:10}.slope-block .slope-reservation-section-container .slope-guests-wrapper,.slope-reservation-section-container{width:100%}.slope-guests-count-container{width:100%;text-align:right;overflow:hidden;text-overflow:ellipsis}.slope-cancel-guests,.slope-save-guests{background:0 0;display:inline-block;text-align:center;width:49%}.slope-horizontal-separator{border-bottom:solid 1px rgba(0,0,0,.1);display:block;margin-bottom:10px;margin-top:10px}.slope-block .slope-check-out-wrapper{text-align:right}.slope-vertical-divider{display:none}.slope-reservation-dates .slope-reservation-icon-container{align-items:center;display:flex;justify-content:center;opacity:.4;width:20px}.dayContainer+.dayContainer{border-left:1px solid rgba(0,0,0,.1)}.slope-block .slope-rooms-count-container{padding-right:32px}.slope-guests-buttons-container{display:flex}.slope-block .slope-check-in-input,.slope-block .slope-check-out-input{border:0;height:0;left:0;padding:0;position:absolute;top:88px;visibility:hidden!important}.slope-block .slope-check-in-label,.slope-block .slope-check-out-label,.slope-block .slope-guests-label,.slope-block .slope-rooms-label{display:block!important;font-size:13px!important;height:15px!important;line-height:15px!important}.slope-block .slope-reservation-section-container .slope-guests-wrapper{white-space:nowrap;display:flex}.slope-block .slope-adults-count,.slope-block .slope-check-in-date,.slope-block .slope-check-out-date,.slope-block .slope-children-count,.slope-block .slope-guests-adults,.slope-block .slope-guests-children,.slope-block .slope-rooms-count{border-radius:.2rem;font-size:16px;line-height:20px;min-width:175px}.slope-block input[type=submit].slope-reservation-submit{border-radius:.2rem;font-size:14px!important;font-weight:500;line-height:20px;min-width:175px}.slope-stepper-container{animation:fpFadeInDown 300ms cubic-bezier(.23,1,.32,1);border-radius:6px;border:1px solid rgba(0,0,0,.1);display:none;font-size:16px;line-height:16px;margin-top:10px;padding:10px;position:absolute;width:300px;z-index:9999}.slope-block input[type=text],.slope-stepper-container input[type=text]{border:0!important;cursor:default!important;font-size:inherit!important;margin-bottom:0!important;min-height:0!important;outline:0!important;padding:0!important}.slope-stepper-container input[type=text]{background-color:inherit!important}.slope-block button,.slope-block input[type=button],.slope-block input[type=reset],.slope-block input[type=submit],.slope-stepper-container button,.slope-stepper-container input[type=button],.slope-stepper-container input[type=reset],.slope-stepper-container input[type=submit]{border:0!important;cursor:pointer;font-family:inherit;font-size:inherit!important;margin-bottom:0!important;margin-top:0!important;min-height:30px!important;outline:0!important;padding:12px!important;text-transform:uppercase;transition:all .2s ease-in-out}.slope-block button:hover,.slope-block input[type=button]:hover,.slope-block input[type=reset]:hover,.slope-block input[type=submit]:hover,.slope-stepper-container button:hover,.slope-stepper-container input[type=button]:hover,.slope-stepper-container input[type=reset]:hover,.slope-stepper-container input[type=submit]:hover{opacity:.8}.slope-stepper-label{padding-bottom:1px}.slope-stepper-container input[type=number],.slope-stepper-container input[type=text]{width:auto}.slope-stepper-container .slope-stepper-value{text-align:center;margin:0;border:0;box-sizing:border-box;background:0 0!important}.slope-stepper-container .slope-decrement-button,.slope-stepper-container .slope-increment-button{align-items:center;background:0 0;border-radius:50%;cursor:pointer;display:flex;float:right;font-size:18px;font-weight:700;height:26px;justify-content:center;line-height:18px;margin:0!important;opacity:1;padding:0;text-align:center;text-decoration:none;transition:all .2s ease-in-out!important;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;width:26px}.slope-stepper-container .slope-stepper-value{width:44px!important}.slope-stepper-container .slope-guests-stepper,.slope-stepper-container .slope-rooms-stepper{display:flex;align-items:center}.slope-stepper-container .slope-horizontal-separator{width:100%;border-bottom:solid 1px rgba(0,0,0,.1);margin:10px 0;display:block!important}.slope-vertical-divider{border-left:1px solid rgba(0,0,0,.1);height:42px;margin-bottom:auto;margin-top:auto}.slope-guests-count-row,.slope-rooms-stepper-container{align-items:center;display:flex;justify-content:space-between;padding:10px}.slope-rooms-stepper{font-size:18px;padding:0}.slope-guests-count-row.slope-padding-top{padding-top:20px}.slope-children-age{font-size:12px}#slope-widget p,#slope-widget table td{border:0!important}.slope-stepper-container .slope-room-label{padding:10px;font-size:16px;font-weight:700}@media (min-width:992px){.slp-responsive-layout.slope-block{display:flex;justify-content:space-between;min-height:auto;min-width:900px}.slp-responsive-layout .slope-horizontal-separator{display:none}.slp-responsive-layout .slope-guests-and-button-container{width:65%;padding-left:8px;display:flex;justify-content:space-between}.slp-responsive-layout .slope-reservation-dates{width:35%}.slp-responsive-layout .slope-vertical-divider{display:block}.slp-responsive-layout .slope-reservation-dates .slope-reservation-icon-container{width:60px}.slp-responsive-layout .slope-reservation-section-container,.slp-responsive-layout .slope-reservation-section-container.slope-submit-section{width:50%}.slp-responsive-layout .slope-guests-count-container{text-align:left}} -
slope-widgets/trunk/css/slope-widgets.css
r3385288 r3415084 1 .slope-widgets-container{box-sizing:border-box}.slope- justify-flex-end{justify-content:flex-end}.slope-width-100{width:100%}.slope-block{border-radius:.2rem;border:1px solid rgba(0,0,0,.1);line-height:1;margin:0 auto;max-width:900px;padding:8px;position:relative}.slope-block *{box-sizing:border-box}.slope-block .slope-reservation-section-container{cursor:pointer!important;text-align:left;padding:10px;border-radius:6px;display:flex;align-items:center}.slope-block .slope-reservation-section-container.slope-highlight:hover{background-color:rgba(0,0,0,.1)}.slope-block .slope-reservation-section-container .slope-check-in-container{margin:auto}.slope-block input[type=number]{-webkit-appearance:none;appearance:none;background:0 0;border-radius:0;border:0;color:inherit;display:block;font:inherit;margin:0;outline:0;padding:0;width:auto}.slope-block label{display:block;font-size:14px;text-align:left}.slope-block{min-height:225px}.slope-reservation-dates{display:flex;justify-content:space-between;padding-right:8px}.slope-guests-and-button-container{z-index:10}.slope-block .slope-reservation-section-container .slope-guests-wrapper,.slope-reservation-section-container{width:100%}.slope-guests-count-container{width:100%;text-align:right}.slope-cancel-guests,.slope-save-guests{background:0 0;display:inline-block;text-align:center;width:49%}.slope-horizontal-separator{border-bottom:solid 1px rgba(0,0,0,.1);display:block;margin-bottom:10px;margin-top:10px}.slope-block .slope-check-out-wrapper{text-align:right}.slope-vertical-divider{display:none}.slope-reservation-dates .slope-reservation-icon-container{align-items:center;display:flex;justify-content:center;opacity:.4;width:20px}.dayContainer+.dayContainer{border-left:1px solid rgba(0,0,0,.1)}.slope-block .slope-rooms-count-container{padding-right:32px}.slope-guests-buttons-container{display:flex}.slope-block .slope-check-in-input,.slope-block .slope-check-out-input{border:0;height:0;left:0;padding:0;position:absolute;top:88px;visibility:hidden!important}.slope-block .slope-check-in-label,.slope-block .slope-check-out-label,.slope-block .slope-guests-label,.slope-block .slope-rooms-label{display:block!important;font-size:13px!important;height:15px!important;line-height:15px!important}.slope-block .slope-reservation-section-container .slope-guests-wrapper{white-space:nowrap;display:flex}.slope-block .slope-adults-count,.slope-block .slope-check-in-date,.slope-block .slope-check-out-date,.slope-block .slope-children-count,.slope-block .slope-guests-adults,.slope-block .slope-guests-children,.slope-block .slope-rooms-count{border-radius:.2rem;font-size:16px;line-height:20px;min-width:175px}.slope-block input[type=submit].slope-reservation-submit{border-radius:.2rem;font-size:14px!important;font-weight:500;line-height:20px;min-width:175px}.slope-stepper-container{animation:fpFadeInDown 300ms cubic-bezier(.23,1,.32,1);border-radius:6px;border:1px solid rgba(0,0,0,.1);display:none;font-size:16px;line-height:16px;margin-top:10px;padding:10px;position:absolute;width:300px;z-index:9999}.slope-block input[type=text],.slope-stepper-container input[type=text]{border:0!important;cursor:default!important;font-size:inherit!important;margin-bottom:0!important;min-height:0!important;outline:0!important;padding:0!important}.slope-stepper-container input[type=text]{background-color:inherit!important}.slope-block button,.slope-block input[type=button],.slope-block input[type=reset],.slope-block input[type=submit],.slope-stepper-container button,.slope-stepper-container input[type=button],.slope-stepper-container input[type=reset],.slope-stepper-container input[type=submit]{border:0!important;cursor:pointer;font-family:inherit;font-size:inherit!important;margin-bottom:0!important;margin-top:0!important;min-height:30px!important;outline:0!important;padding:12px!important;text-transform:uppercase;transition:all .2s ease-in-out}.slope-block button:hover,.slope-block input[type=button]:hover,.slope-block input[type=reset]:hover,.slope-block input[type=submit]:hover,.slope-stepper-container button:hover,.slope-stepper-container input[type=button]:hover,.slope-stepper-container input[type=reset]:hover,.slope-stepper-container input[type=submit]:hover{opacity:.8}.slope-stepper-label{padding-bottom:1px}.slope-stepper-container input[type=number],.slope-stepper-container input[type=text]{width:auto}.slope-stepper-container .slope-stepper-value{text-align:center;margin:0;border:0;box-sizing:border-box;background:0 0!important}.slope-stepper-container .slope-decrement-button,.slope-stepper-container .slope-increment-button{align-items:center;background:0 0;border-radius:50%;cursor:pointer;display:flex;float:right;font-size:18px;font-weight:700;height:26px;justify-content:center;line-height:18px;margin:0!important;opacity:1;padding:0;text-align:center;text-decoration:none;transition:all .2s ease-in-out!important;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;width:26px}.slope-stepper-container .slope-stepper-value{width:44px!important}.slope-stepper-container .slope-guests-stepper,.slope-stepper-container .slope-rooms-stepper{display:flex}.slope-stepper-container .slope-horizontal-separator{width:100%;border-bottom:solid 1px rgba(0,0,0,.1);margin:10px 0;display:block!important}.slope-vertical-divider{border-left:1px solid rgba(0,0,0,.1);height:42px;margin-bottom:auto;margin-top:auto}.slope-guests-count-row,.slope-rooms-stepper-container{align-items:center;display:flex;justify-content:space-between;padding:10px}.slope-rooms-stepper{font-size:18px;padding:0}.slope-guests-count-row.slope-padding-top{padding-top:20px}.slope-children-age{font-size:12px}#slope-widget p,#slope-widget table td{border:0!important}.slope-stepper-container .slope-room-label{padding:10px;font-size:16px;font-weight:700}@media (min-width:992px){.slp-responsive-layout.slope-block{display:flex;justify-content:space-between;min-height:auto;min-width:900px}.slp-responsive-layout .slope-horizontal-separator{display:none}.slp-responsive-layout .slope-guests-and-button-container{width:65%;padding-left:8px;display:flex;justify-content:space-between}.slp-responsive-layout .slope-reservation-dates{width:35%}.slp-responsive-layout .slope-vertical-divider{display:block}.slp-responsive-layout .slope-reservation-dates .slope-reservation-icon-container{width:60px}.slp-responsive-layout .slope-reservation-section-container,.slp-responsive-layout .slope-reservation-section-container.slope-submit-section{width:50%}.slp-responsive-layout .slope-guests-count-container{text-align:left}}1 .slope-widgets-container{box-sizing:border-box}.slope-widgets-container span{display:inline}.slope-justify-flex-end{justify-content:flex-end}.slope-width-100{width:100%}.slope-block{border-radius:.2rem;border:1px solid rgba(0,0,0,.1);line-height:1;margin:0 auto;max-width:900px;padding:8px;position:relative}.slope-block *{box-sizing:border-box}.slope-block .slope-reservation-section-container{cursor:pointer!important;text-align:left;padding:10px;border-radius:6px;display:flex;align-items:center}.slope-block .slope-reservation-section-container.slope-highlight:hover{background-color:rgba(0,0,0,.1)}.slope-block .slope-reservation-section-container .slope-check-in-container{margin:auto}.slope-block input[type=number]{-webkit-appearance:none;appearance:none;background:0 0;border-radius:0;border:0;color:inherit;display:block;font:inherit;margin:0;outline:0;padding:0;width:auto}.slope-block label{display:block;font-size:14px;text-align:left}.slope-block{min-height:225px}.slope-reservation-dates{display:flex;justify-content:space-between;padding-right:8px}.slope-guests-and-button-container{z-index:10}.slope-block .slope-reservation-section-container .slope-guests-wrapper,.slope-reservation-section-container{width:100%}.slope-guests-count-container{width:100%;text-align:right;overflow:hidden;text-overflow:ellipsis}.slope-cancel-guests,.slope-save-guests{background:0 0;display:inline-block;text-align:center;width:49%}.slope-horizontal-separator{border-bottom:solid 1px rgba(0,0,0,.1);display:block;margin-bottom:10px;margin-top:10px}.slope-block .slope-check-out-wrapper{text-align:right}.slope-vertical-divider{display:none}.slope-reservation-dates .slope-reservation-icon-container{align-items:center;display:flex;justify-content:center;opacity:.4;width:20px}.dayContainer+.dayContainer{border-left:1px solid rgba(0,0,0,.1)}.slope-block .slope-rooms-count-container{padding-right:32px}.slope-guests-buttons-container{display:flex}.slope-block .slope-check-in-input,.slope-block .slope-check-out-input{border:0;height:0;left:0;padding:0;position:absolute;top:88px;visibility:hidden!important}.slope-block .slope-check-in-label,.slope-block .slope-check-out-label,.slope-block .slope-guests-label,.slope-block .slope-rooms-label{display:block!important;font-size:13px!important;height:15px!important;line-height:15px!important}.slope-block .slope-reservation-section-container .slope-guests-wrapper{white-space:nowrap;display:flex}.slope-block .slope-adults-count,.slope-block .slope-check-in-date,.slope-block .slope-check-out-date,.slope-block .slope-children-count,.slope-block .slope-guests-adults,.slope-block .slope-guests-children,.slope-block .slope-rooms-count{border-radius:.2rem;font-size:16px;line-height:20px;min-width:175px}.slope-block input[type=submit].slope-reservation-submit{border-radius:.2rem;font-size:14px!important;font-weight:500;line-height:20px;min-width:175px}.slope-stepper-container{animation:fpFadeInDown 300ms cubic-bezier(.23,1,.32,1);border-radius:6px;border:1px solid rgba(0,0,0,.1);display:none;font-size:16px;line-height:16px;margin-top:10px;padding:10px;position:absolute;width:300px;z-index:9999}.slope-block input[type=text],.slope-stepper-container input[type=text]{border:0!important;cursor:default!important;font-size:inherit!important;margin-bottom:0!important;min-height:0!important;outline:0!important;padding:0!important}.slope-stepper-container input[type=text]{background-color:inherit!important}.slope-block button,.slope-block input[type=button],.slope-block input[type=reset],.slope-block input[type=submit],.slope-stepper-container button,.slope-stepper-container input[type=button],.slope-stepper-container input[type=reset],.slope-stepper-container input[type=submit]{border:0!important;cursor:pointer;font-family:inherit;font-size:inherit!important;margin-bottom:0!important;margin-top:0!important;min-height:30px!important;outline:0!important;padding:12px!important;text-transform:uppercase;transition:all .2s ease-in-out}.slope-block button:hover,.slope-block input[type=button]:hover,.slope-block input[type=reset]:hover,.slope-block input[type=submit]:hover,.slope-stepper-container button:hover,.slope-stepper-container input[type=button]:hover,.slope-stepper-container input[type=reset]:hover,.slope-stepper-container input[type=submit]:hover{opacity:.8}.slope-stepper-label{padding-bottom:1px}.slope-stepper-container input[type=number],.slope-stepper-container input[type=text]{width:auto}.slope-stepper-container .slope-stepper-value{text-align:center;margin:0;border:0;box-sizing:border-box;background:0 0!important}.slope-stepper-container .slope-decrement-button,.slope-stepper-container .slope-increment-button{align-items:center;background:0 0;border-radius:50%;cursor:pointer;display:flex;float:right;font-size:18px;font-weight:700;height:26px;justify-content:center;line-height:18px;margin:0!important;opacity:1;padding:0;text-align:center;text-decoration:none;transition:all .2s ease-in-out!important;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;width:26px}.slope-stepper-container .slope-stepper-value{width:44px!important}.slope-stepper-container .slope-guests-stepper,.slope-stepper-container .slope-rooms-stepper{display:flex;align-items:center}.slope-stepper-container .slope-horizontal-separator{width:100%;border-bottom:solid 1px rgba(0,0,0,.1);margin:10px 0;display:block!important}.slope-vertical-divider{border-left:1px solid rgba(0,0,0,.1);height:42px;margin-bottom:auto;margin-top:auto}.slope-guests-count-row,.slope-rooms-stepper-container{align-items:center;display:flex;justify-content:space-between;padding:10px}.slope-rooms-stepper{font-size:18px;padding:0}.slope-guests-count-row.slope-padding-top{padding-top:20px}.slope-children-age{font-size:12px}#slope-widget p,#slope-widget table td{border:0!important}.slope-stepper-container .slope-room-label{padding:10px;font-size:16px;font-weight:700}@media (min-width:992px){.slp-responsive-layout.slope-block{display:flex;justify-content:space-between;min-height:auto;min-width:900px}.slp-responsive-layout .slope-horizontal-separator{display:none}.slp-responsive-layout .slope-guests-and-button-container{width:65%;padding-left:8px;display:flex;justify-content:space-between}.slp-responsive-layout .slope-reservation-dates{width:35%}.slp-responsive-layout .slope-vertical-divider{display:block}.slp-responsive-layout .slope-reservation-dates .slope-reservation-icon-container{width:60px}.slp-responsive-layout .slope-reservation-section-container,.slp-responsive-layout .slope-reservation-section-container.slope-submit-section{width:50%}.slp-responsive-layout .slope-guests-count-container{text-align:left}} 2 2 #slope-promotions a.slp-button{padding:1.5rem .5rem;transition:all .2s ease-in-out;text-decoration:none}#slope-promotions a.slp-button:hover{opacity:.7}#slope-widget{font-family:inherit!important}table.slp{min-width:initial;font-family:inherit}table.slp td{font-family:inherit;text-align:left!important;word-break:normal}[id^=promotion-submit-].slp-button{font-family:inherit!important;font-weight:700;letter-spacing:inherit} 3 3 @keyframes slope-spin{0%{transform:rotate(0deg)}to{transform:rotate(360deg)}}.slope-promo-container{width:100%!important}#slp-arrow-icon{height:1rem}#slp-settings-border-radius-container{display:flex;gap:10px;align-items:center}.slp-promotion-card{flex:1 1 300px;border-radius:10px;margin-bottom:1rem;position:relative;min-width:280px;display:flex;flex-direction:column}.slp-loading-spinner{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #3498db;border-radius:50%;animation:slope-spin 2s linear infinite}.slp-error-message,.slp-loading-indicator{display:flex;justify-content:center;align-items:center;margin:auto}.slp-loading-indicator{padding:20px;width:100%}.slp-error-message{border-radius:10px;background:#eee;padding:30px;text-align:center}.slp-promotion-container{flex:1;display:flex;flex-direction:column;width:fit-content;max-width:100%;overflow:hidden}.slp-promotion-image{background-size:cover;background-repeat:no-repeat;background-position:center;padding:16px;min-height:180px}.slp-promotion-expiration-date{top:1rem;left:1rem;z-index:2;padding:4px 8px;border-radius:10px;font-size:.75rem;font-weight:700;width:fit-content}.slp-promotion-title{font-size:clamp(1rem,2.5vw,1.25rem);font-weight:700;line-height:1.3;margin-bottom:clamp(.5rem,2vw,1rem)}.slp-promotion-description{font-size:clamp(.875rem,2vw,1rem);line-height:1.5;-webkit-box-orient:vertical;white-space:normal;display:-webkit-box;overflow:hidden;text-overflow:ellipsis;max-width:100%;word-wrap:break-word}.slp-promotion-actions{display:flex;flex-direction:column;gap:.5rem;margin-top:auto}.slp-see-details{font-size:.9rem;align-self:flex-start;font-weight:700;display:flex;align-items:center;margin-bottom:.5rem;gap:.5rem}.slp-reserve-button{display:block;padding:.75rem 0;font-size:1rem;font-weight:700;border-radius:10px;text-decoration:none;text-align:center}.slp-modal,.slp-modal-overlay{z-index:1000;top:0;left:0;width:100%;height:100%}.slp-modal{position:fixed;background-color:rgba(0,0,0,.4);opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease}.slp-modal-overlay{background-image:linear-gradient(to bottom,transparent 0,#d1d2da 250px,#d1d2da,#d1d2da);border-radius:10px;position:absolute}.slp-modal-container{background-size:100%,cover;background-repeat:no-repeat;background-position:top,center;padding:clamp(8px,2vw,12px);border-radius:10px;width:min(80vw,600px);z-index:1001;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.slp-close-modal-button{position:absolute;right:1rem;line-height:.5;top:1rem;font-size:24px;cursor:pointer;z-index:1003;border-radius:50%;padding:.5rem}.slp-modal-promotion-container{border-radius:10px;position:relative;z-index:1001;margin-top:clamp(10vh,16vh,24vh)}.slp-modal-promotion-details{max-width:100%;word-wrap:break-word;max-height:25vh;overflow-y:auto}.slp-modal-lodgings,.slp-modal-promotion-details{font-size:clamp(.875rem,2vw,1rem);margin-bottom:1rem;line-height:1.5}.slp-modal-visible{opacity:1;visibility:visible}.slp-modal-hidden{opacity:0;visibility:hidden}@media screen and (max-width:768px){.slp-modal-promotion-details{max-height:50vh}.slp-modal-container{width:90vw;background-size:150%,cover}} 4 4 @-webkit-keyframes fpFadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes fpFadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.flatpickr-calendar{background:0 0;opacity:0;display:none;text-align:center;visibility:hidden;padding:0;-webkit-animation:none;animation:none;direction:ltr;border:0;font-size:14px;line-height:24px;border-radius:5px;position:absolute;width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-touch-action:manipulation;touch-action:manipulation;background:#fff;-webkit-box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,.08);box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,.08)}.flatpickr-calendar.inline,.flatpickr-calendar.open{opacity:1;max-height:640px;visibility:visible}.flatpickr-calendar.open{display:inline-block;z-index:99999}.flatpickr-calendar.animate.open{-webkit-animation:fpFadeInDown 300ms cubic-bezier(.23,1,.32,1);animation:fpFadeInDown 300ms cubic-bezier(.23,1,.32,1)}.flatpickr-calendar.inline{display:block;position:relative;top:2px}.flatpickr-calendar.static{position:absolute;top:calc(100% + 2px)}.flatpickr-calendar.static.open{z-index:999;display:block}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7){-webkit-box-shadow:none!important;box-shadow:none!important}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1){-webkit-box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-calendar .hasTime .dayContainer,.flatpickr-calendar .hasWeeks .dayContainer{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.flatpickr-calendar .hasWeeks .dayContainer{border-left:0}.flatpickr-calendar.hasTime .flatpickr-time{height:40px;border-top:1px solid #e6e6e6}.flatpickr-calendar.noCalendar.hasTime .flatpickr-time{height:auto}.flatpickr-calendar:after,.flatpickr-calendar:before{position:absolute;display:block;pointer-events:none;border:solid transparent;content:'';height:0;width:0;left:22px}.flatpickr-calendar.arrowRight:after,.flatpickr-calendar.arrowRight:before,.flatpickr-calendar.rightMost:after,.flatpickr-calendar.rightMost:before{left:auto;right:22px}.flatpickr-calendar.arrowCenter:after,.flatpickr-calendar.arrowCenter:before{left:50%;right:50%}.flatpickr-calendar:before{border-width:5px;margin:0 -5px}.flatpickr-calendar:after{border-width:4px;margin:0 -4px}.flatpickr-calendar.arrowTop:after,.flatpickr-calendar.arrowTop:before{bottom:100%}.flatpickr-calendar.arrowTop:before{border-bottom-color:#e6e6e6}.flatpickr-calendar.arrowTop:after{border-bottom-color:#fff}.flatpickr-calendar.arrowBottom:after,.flatpickr-calendar.arrowBottom:before{top:100%}.flatpickr-calendar.arrowBottom:before{border-top-color:#e6e6e6}.flatpickr-calendar.arrowBottom:after{border-top-color:#fff}.flatpickr-calendar:focus,.flatpickr-current-month input.cur-year:focus{outline:0}.flatpickr-wrapper{position:relative;display:inline-block}.flatpickr-months{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flatpickr-months .flatpickr-month{background:0 0;color:rgba(0,0,0,.9);fill:rgba(0,0,0,.9);height:34px;line-height:1;text-align:center;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.flatpickr-months .flatpickr-next-month,.flatpickr-months .flatpickr-prev-month{text-decoration:none;cursor:pointer;position:absolute;top:0;height:34px;padding:10px;z-index:3;color:rgba(0,0,0,.9);fill:rgba(0,0,0,.9)}.flatpickr-months .flatpickr-next-month.flatpickr-disabled,.flatpickr-months .flatpickr-prev-month.flatpickr-disabled{display:none}.flatpickr-months .flatpickr-next-month i,.flatpickr-months .flatpickr-prev-month i,.numInputWrapper{position:relative}.flatpickr-months .flatpickr-next-month.flatpickr-prev-month,.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month{left:0}.flatpickr-months .flatpickr-next-month.flatpickr-next-month,.flatpickr-months .flatpickr-prev-month.flatpickr-next-month{right:0}.flatpickr-months .flatpickr-next-month:hover,.flatpickr-months .flatpickr-prev-month:hover{color:#959ea9}.flatpickr-months .flatpickr-next-month:hover svg,.flatpickr-months .flatpickr-prev-month:hover svg{fill:#f64747}.flatpickr-months .flatpickr-next-month svg,.flatpickr-months .flatpickr-prev-month svg{width:14px;height:14px}.flatpickr-months .flatpickr-next-month svg path,.flatpickr-months .flatpickr-prev-month svg path{-webkit-transition:fill .1s;transition:fill .1s;fill:inherit}.numInputWrapper{height:auto}.numInputWrapper input,.numInputWrapper span{display:inline-block}.numInputWrapper input{width:100%}.numInputWrapper input::-ms-clear{display:none}.numInputWrapper input::-webkit-inner-spin-button,.numInputWrapper input::-webkit-outer-spin-button{margin:0;-webkit-appearance:none}.numInputWrapper span{position:absolute;right:0;width:14px;padding:0 4px 0 2px;height:50%;line-height:50%;opacity:0;cursor:pointer;border:1px solid rgba(57,57,57,.15);-webkit-box-sizing:border-box;box-sizing:border-box}.numInputWrapper span:hover{background:rgba(0,0,0,.1)}.numInputWrapper span:active{background:rgba(0,0,0,.2)}.numInputWrapper span:after{display:block;content:"";position:absolute}.numInputWrapper span.arrowUp{top:0;border-bottom:0}.numInputWrapper span.arrowUp:after{border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:4px solid rgba(57,57,57,.6);top:26%}.numInputWrapper span.arrowDown{top:50%}.numInputWrapper span.arrowDown:after{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(57,57,57,.6);top:40%}.numInputWrapper span svg{width:inherit;height:auto}.numInputWrapper span svg path{fill:rgba(0,0,0,.5)}.flatpickr-current-month span.cur-month:hover,.numInputWrapper:hover{background:rgba(0,0,0,.05)}.numInputWrapper:hover span{opacity:1}.flatpickr-current-month{font-size:135%;font-weight:300;color:inherit;position:absolute;width:75%;left:12.5%;padding:7.48px 0 0;line-height:1;height:34px;display:inline-block;text-align:center;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.flatpickr-current-month span.cur-month{font-family:inherit;font-weight:700;color:inherit;display:inline-block;margin-left:.5ch;padding:0}.flatpickr-current-month .numInputWrapper{width:6ch;width:7ch\0;display:inline-block}.flatpickr-current-month .numInputWrapper span.arrowUp:after{border-bottom-color:rgba(0,0,0,.9)}.flatpickr-current-month .numInputWrapper span.arrowDown:after{border-top-color:rgba(0,0,0,.9)}.flatpickr-current-month .flatpickr-monthDropdown-months,.flatpickr-current-month input.cur-year{background:0 0;border:0;border-radius:0;box-sizing:border-box;color:inherit;font-size:inherit;font-family:inherit;font-weight:300;height:auto;line-height:inherit;padding:0 0 0 .5ch;vertical-align:initial;-webkit-box-sizing:border-box}.flatpickr-current-month input.cur-year{cursor:text;margin:0;display:inline-block;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-current-month input.cur-year[disabled],.flatpickr-current-month input.cur-year[disabled]:hover{font-size:100%;color:rgba(0,0,0,.5);background:0 0;pointer-events:none}.flatpickr-current-month .flatpickr-monthDropdown-months{appearance:menulist;cursor:pointer;margin:-1px 0 0;outline:0;position:relative;-webkit-appearance:menulist;-moz-appearance:menulist;width:auto}.flatpickr-current-month .flatpickr-monthDropdown-months:active,.flatpickr-current-month .flatpickr-monthDropdown-months:focus{outline:0}.flatpickr-current-month .flatpickr-monthDropdown-months:hover{background:rgba(0,0,0,.05)}.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month{background-color:transparent;outline:0;padding:0}.flatpickr-weekdays{background:0 0;text-align:center;overflow:hidden;width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;height:28px}.flatpickr-weekdays .flatpickr-weekdaycontainer,span.flatpickr-weekday{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}span.flatpickr-weekday{cursor:default;font-size:90%;background:0 0;color:rgba(0,0,0,.54);line-height:1;margin:0;text-align:center;display:block;font-weight:bolder}.flatpickr-weeks{padding:1px 0 0}.flatpickr-days,.flatpickr-weekdays .flatpickr-weekdaycontainer{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flatpickr-days{position:relative;overflow:hidden;-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;width:307.875px}.flatpickr-days:focus{outline:0}.dayContainer,.flatpickr-day{-webkit-box-sizing:border-box;box-sizing:border-box;display:inline-block}.dayContainer{padding:0;outline:0;text-align:left;width:307.875px;min-width:307.875px;max-width:307.875px;display:-ms-flexbox;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-wrap:wrap;-ms-flex-pack:justify;-webkit-justify-content:space-around;justify-content:space-around;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}.dayContainer+.dayContainer{-webkit-box-shadow:-1px 0 0 #e6e6e6;box-shadow:-1px 0 0 #e6e6e6}.flatpickr-day{background:0 0;border:1px solid transparent;border-radius:150px;color:#393939;cursor:pointer;font-weight:400;width:14.2857143%;-webkit-flex-basis:14.2857143%;-ms-flex-preferred-size:14.2857143%;flex-basis:14.2857143%;max-width:39px;height:39px;line-height:39px;margin:0;position:relative;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;text-align:center}.flatpickr-day.inRange,.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.nextMonthDay.today.inRange,.flatpickr-day.nextMonthDay:focus,.flatpickr-day.nextMonthDay:hover,.flatpickr-day.prevMonthDay.inRange,.flatpickr-day.prevMonthDay.today.inRange,.flatpickr-day.prevMonthDay:focus,.flatpickr-day.prevMonthDay:hover,.flatpickr-day.today.inRange,.flatpickr-day:focus,.flatpickr-day:hover{cursor:pointer;outline:0;background:#e6e6e6;border-color:#e6e6e6}.flatpickr-day.today{border-color:#959ea9}.flatpickr-day.today:focus,.flatpickr-day.today:hover{border-color:#959ea9;background:#959ea9;color:#fff}.flatpickr-day.endRange,.flatpickr-day.endRange.inRange,.flatpickr-day.endRange.nextMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.endRange:focus,.flatpickr-day.endRange:hover,.flatpickr-day.selected,.flatpickr-day.selected.inRange,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.selected:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange,.flatpickr-day.startRange.inRange,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.startRange:focus,.flatpickr-day.startRange:hover{background:#569ff7;-webkit-box-shadow:none;box-shadow:none;color:#fff;border-color:#569ff7}.flatpickr-day.endRange.startRange,.flatpickr-day.selected.startRange,.flatpickr-day.startRange.startRange{border-radius:50px 0 0 50px}.flatpickr-day.endRange.endRange,.flatpickr-day.selected.endRange,.flatpickr-day.startRange.endRange{border-radius:0 50px 50px 0}.flatpickr-day.endRange.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.selected.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.startRange.startRange+.endRange:not(:nth-child(7n+1)){-webkit-box-shadow:-10px 0 0 #569ff7;box-shadow:-10px 0 0 #569ff7}.flatpickr-day.endRange.startRange.endRange,.flatpickr-day.selected.startRange.endRange,.flatpickr-day.startRange.startRange.endRange{border-radius:50px}.flatpickr-day.inRange{border-radius:0;-webkit-box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover{background:0 0;border-color:transparent}.flatpickr-day.nextMonthDay,.flatpickr-day.notAllowed,.flatpickr-day.notAllowed.nextMonthDay,.flatpickr-day.notAllowed.prevMonthDay,.flatpickr-day.prevMonthDay{color:rgba(57,57,57,.3);background:0 0;border-color:transparent;cursor:default}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover{cursor:not-allowed;color:rgba(57,57,57,.1)}.flatpickr-day.week.selected{border-radius:0;-webkit-box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7;box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7}.flatpickr-day.hidden{visibility:hidden}.rangeMode .flatpickr-day{margin-top:1px}.flatpickr-weekwrapper{float:left}.flatpickr-weekwrapper .flatpickr-weeks{padding:0 12px;-webkit-box-shadow:1px 0 0 #e6e6e6;box-shadow:1px 0 0 #e6e6e6}.flatpickr-weekwrapper .flatpickr-weekday{float:none;width:100%;line-height:28px}.flatpickr-weekwrapper span.flatpickr-day,.flatpickr-weekwrapper span.flatpickr-day:hover{display:block;width:100%;max-width:none;color:rgba(57,57,57,.3);background:0 0;cursor:default;border:0}.flatpickr-innerContainer,.flatpickr-rContainer{-webkit-box-sizing:border-box;box-sizing:border-box}.flatpickr-innerContainer{display:block;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;overflow:hidden}.flatpickr-rContainer{display:inline-block;padding:0}.flatpickr-time,.flatpickr-time input{text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box}.flatpickr-time{outline:0;display:block;height:0;line-height:40px;max-height:40px;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flatpickr-time:after{content:"";display:table;clear:both}.flatpickr-time .numInputWrapper{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;width:40%;height:40px;float:left}.flatpickr-time .numInputWrapper span.arrowUp:after{border-bottom-color:#393939}.flatpickr-time .numInputWrapper span.arrowDown:after{border-top-color:#393939}.flatpickr-time.hasSeconds .numInputWrapper{width:26%}.flatpickr-time.time24hr .numInputWrapper{width:49%}.flatpickr-time input{background:0 0;-webkit-box-shadow:none;box-shadow:none;border:0;border-radius:0;margin:0;padding:0;height:inherit;line-height:inherit;color:#393939;font-size:14px;position:relative;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-time input.flatpickr-hour{font-weight:700}.flatpickr-time input.flatpickr-minute,.flatpickr-time input.flatpickr-second{font-weight:400}.flatpickr-time input:focus{outline:0;border:0}.flatpickr-time .flatpickr-am-pm,.flatpickr-time .flatpickr-time-separator{height:inherit;float:left;line-height:inherit;color:#393939;font-weight:700;width:2%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-align-self:center;-ms-flex-item-align:center;align-self:center}.flatpickr-time .flatpickr-am-pm{outline:0;width:18%;cursor:pointer;text-align:center;font-weight:400}.flatpickr-time .flatpickr-am-pm:focus,.flatpickr-time .flatpickr-am-pm:hover,.flatpickr-time input:focus,.flatpickr-time input:hover{background:#eee}.flatpickr-input[readonly]{cursor:pointer} 5 5 input#border_size,input#range_button,input#slope_border_radius,input#slope_title_size{max-width:130px}input#slope_text_border_radius,input#slope_text_border_size,input#slope_text_title_size{cursor:pointer;background:0 0;color:#444;font-size:14px;width:22px;font-weight:700!important;border:0;pointer-events:none;box-shadow:none!important;padding-left:0}.slope-grid-container{display:grid;grid-template-columns:3fr 2fr}.slope-setting-container{margin-top:10px}.slope-docs-container{margin-left:30px;text-align:left;border-left:1px solid #d3d3d3;margin-right:10px;padding-left:10px}@media only screen and (max-width:1250px){.slope-grid-container{grid-template-columns:1fr}.slope-docs-container{margin-top:25px;margin-left:initial;padding-left:initial;border-color:transparent!important;margin-right:30px}}@media only screen and (max-width:768px){#slope-widget-container .form-table th,.slope-style-field{width:100%!important}.slope-radio-field label{margin-top:0!important}.slope-terms input[type=checkbox]{margin-bottom:4rem!important}.slope-setting-field input[type=checkbox]{margin:-.25rem .25rem 1rem 0}}#slope-widget-container .form-table{border-collapse:collapse;margin-top:.5em;width:100%;clear:both;margin-bottom:1em}#slope-widget-container tbody{display:table-row-group;vertical-align:middle;border-color:inherit}#slope-widget-container .form-table th,.slope-style-field{padding-top:2em;text-align:left;width:240px;font-size:13px;font-weight:700;cursor:default!important;margin-right:20px}#slope-widget-container .form-table td{padding:1em 0;vertical-align:middle;font-weight:initial}.slope-setting-field input{display:flow;font-weight:400}.slope-setting-field input.wp-picker-clear,input[data-role=slope-color-picker]{position:relative;left:0}.slope-style-container{display:none;width:60%;float:left;margin-top:25px}.slope-setting-field input:checked[type=checkbox]:before,.slope-style-field input:checked[type=checkbox]:before{left:27px!important;top:2px!important}.slope-layout-container-promotions input[type=radio],.slope-setting-container input[type=checkbox],.slope-setting-container input[type=radio],.slope-setting-container-promotions input[type=checkbox],.slope-style-container-promotions input[type=radio]{float:left!important;display:block!important}#slope_children_age_max,#slope_min_days{width:70px}.slope-setting-field.slope-radio-field{padding:1em;margin-bottom:-2.5em;font-weight:400;display:block}.slope-radio-field label{margin-left:15px;width:100%;display:block!important;margin-bottom:.5em;margin-top:-5px}.slope-layout-container{display:none;width:60%;float:left}.slope-setting-container-promotions{display:block}.slope-layout-container-promotions,.slope-style-container-promotions{display:none}.slope-layout-container-promotions,.slope-setting-container-promotions,.slope-style-container-promotions{margin-top:25px}.slope-border-size-promotions{width:50px;text-align:center;border:0}input#slope_promotions_uuid{background:0 0}input#slope_promotions_border_size{text-align:left!important}#slope_uuid{width:40%!important;min-width:280px!important}.slp-font-16{font-size:16px!important}.slp-font-normal{font-weight:400!important}.slp-font-semibold{font-weight:600!important}.slp-font-bold{font-weight:700!important}.slp-gap-10px{gap:10px}.slp-margin-auto{margin:auto}.slp-margin-0{margin:0}.slp-width-full{width:100%}.slp-box-sizing-border-box{box-sizing:border-box}.slp-padding-24px{padding:24px}.slp-margin-top-10px{margin-top:10px}.slp-margin-top-20px{margin-top:20px}.slp-margin-top-5px{margin-top:5px}.slp-margin-bottom-10px{margin-bottom:10px}.slp-margin-bottom-0{margin-bottom:0}.slp-bg-white{background-color:#fff}.slp-bg-gray{background-color:#adb9c9}.slp-bg-light-gray{background-color:#f5f5f5}.slp-padding-bottom-24px{padding-bottom:24px}.slp-cursor-pointer,.slp-cursor-pointer:hover{cursor:pointer}.slp-settings-container{border-radius:12px}.slp-divider{border-bottom:1px solid #e0e0e0;width:100%;min-width:100%}.slp-select{width:25%;min-width:140px}.slp-radio{display:flex;flex-direction:row;align-items:center;gap:10px;flex-wrap:wrap}.slp-radio-title{display:inline-block;margin-right:1rem}.slp-radio-options{display:flex;gap:20px;flex-wrap:wrap}.slp-flex-adaptive-row,.slp-flex-row{display:flex;flex-direction:row;align-items:center}.slp-flex-adaptive-row{align-items:baseline}.slp-padding-0{padding:0!important}.slp-bg-gold{background-color:#ffdc73}.slp-warning-container{display:flex;align-items:center;gap:10px;padding:1px 10px;margin-top:10px;border-radius:8px}@media only screen and (max-width:768px){.slp-radio{flex-direction:column;align-items:flex-start}.slp-radio-options{margin-top:10px}.slp-select{width:100%}.slp-radio-title{margin-right:0;margin-bottom:10px}.slp-flex-adaptive-row{flex-direction:column;align-items:flex-start}}@media only screen and (max-width:480px){.slp-settings-container{border-radius:8px}.slp-flex-row{flex-direction:column;align-items:flex-start}} 6 .slope-flatpickr-calendar{padding: 10px 2px;-webkit-justify-content:flex-start;justify-content:flex-start}.numInputWrapper span{display:none}.slope-flatpickr-calendar.open{z-index:9999!important}.slope-flatpickr-calendar .flatpickr-month input.cur-year,.slope-flatpickr-calendar .flatpickr-month input[type=number]{-moz-appearance:textfield!important;-webkit-appearance:textfield!important;appearance:textfield!important;background:0 0!important;border-radius:0!important;border:0!important;-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit!important;cursor:text;display:inline-block!important;font-family:inherit!important;font-size:inherit!important;font-weight:inherit!important;height:auto!important;line-height:inherit!important;margin:0!important;padding:0 0 0 .5ch!important;vertical-align:initial!important}.slope-flatpickr-calendar .flatpickr-month input.cur-year:focus,.slope-flatpickr-calendar .flatpickr-month input[type=number]:focus{box-shadow:none!important}.slope-flatpickr-calendar .flatpickr-month .numInputWrapper{background:0 0}.slope-flatpickr-calendar .flatpickr-month .flatpickr-current-month{padding-top:0!important}.slope-flatpickr-calendar .dayContainer+.dayContainer,.slope-flatpickr-calendar .flatpickr-day.inRange,.slope-flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1){-webkit-box-shadow:none!important;box-shadow:none!important}.slope-flatpickr-calendar .flatpickr-day.inRange,.slope-flatpickr-calendar .flatpickr-day.nextMonthDay.inRange,.slope-flatpickr-calendar .flatpickr-day.nextMonthDay.today.inRange,.slope-flatpickr-calendar .flatpickr-day.nextMonthDay:focus,.slope-flatpickr-calendar .flatpickr-day.nextMonthDay:hover,.slope-flatpickr-calendar .flatpickr-day.prevMonthDay.inRange,.slope-flatpickr-calendar .flatpickr-day.prevMonthDay.today.inRange,.slope-flatpickr-calendar .flatpickr-day.prevMonthDay:focus,.slope-flatpickr-calendar .flatpickr-day.prevMonthDay:hover,.slope-flatpickr-calendar .flatpickr-day.today.inRange,.slope-flatpickr-calendar .flatpickr-day:focus,.slope-flatpickr-calendar .flatpickr-day:hover{background-color:rgba(0,0,0,.1);border-color:transparent}.slope-flatpickr-calendar .flatpickr-day{height:44px;line-height:44px;max-height:44px;max-width:44px;width:44px}.slope-flatpickr-calendar .flatpickr-day.flatpickr-disabled{opacity:.3}.slope-flatpickr-calendar .flatpickr-day.flatpickr-disabled:hover{background-color:unset}.slope-flatpickr-calendar .prevMonthDay.hidden{display:inherit!important}6 .slope-flatpickr-calendar{padding:0 2px 10px;-webkit-justify-content:flex-start;justify-content:flex-start}.numInputWrapper span{display:none}.slope-flatpickr-calendar.open{z-index:9999!important}.slope-flatpickr-calendar .flatpickr-month input.cur-year,.slope-flatpickr-calendar .flatpickr-month input[type=number]{-moz-appearance:textfield!important;-webkit-appearance:textfield!important;appearance:textfield!important;background:0 0!important;border-radius:0!important;border:0!important;-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit!important;cursor:text;display:inline-block!important;font-family:inherit!important;font-size:inherit!important;font-weight:inherit!important;height:auto!important;line-height:inherit!important;margin:0!important;padding:0 0 0 .5ch!important;vertical-align:initial!important}.slope-flatpickr-calendar .flatpickr-month input.cur-year:focus,.slope-flatpickr-calendar .flatpickr-month input[type=number]:focus{box-shadow:none!important}.slope-flatpickr-calendar .flatpickr-month .numInputWrapper{background:0 0}.slope-flatpickr-calendar .flatpickr-month .flatpickr-current-month{padding-top:10px!important}.slope-flatpickr-calendar .dayContainer+.dayContainer,.slope-flatpickr-calendar .flatpickr-day.inRange,.slope-flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1){-webkit-box-shadow:none!important;box-shadow:none!important}.slope-flatpickr-calendar .flatpickr-day.inRange,.slope-flatpickr-calendar .flatpickr-day.nextMonthDay.inRange,.slope-flatpickr-calendar .flatpickr-day.nextMonthDay.today.inRange,.slope-flatpickr-calendar .flatpickr-day.nextMonthDay:focus,.slope-flatpickr-calendar .flatpickr-day.nextMonthDay:hover,.slope-flatpickr-calendar .flatpickr-day.prevMonthDay.inRange,.slope-flatpickr-calendar .flatpickr-day.prevMonthDay.today.inRange,.slope-flatpickr-calendar .flatpickr-day.prevMonthDay:focus,.slope-flatpickr-calendar .flatpickr-day.prevMonthDay:hover,.slope-flatpickr-calendar .flatpickr-day.today.inRange,.slope-flatpickr-calendar .flatpickr-day:focus,.slope-flatpickr-calendar .flatpickr-day:hover{background-color:rgba(0,0,0,.1);border-color:transparent}.slope-flatpickr-calendar .flatpickr-day{height:44px;line-height:44px;max-height:44px;max-width:44px;width:44px}.slope-flatpickr-calendar .flatpickr-day.disabled,.slope-flatpickr-calendar .flatpickr-day.flatpickr-disabled{opacity:.3}.slope-flatpickr-calendar .flatpickr-day.disabled:hover,.slope-flatpickr-calendar .flatpickr-day.flatpickr-disabled:hover{background-color:unset}.slope-flatpickr-calendar .prevMonthDay.hidden{display:inherit!important} 7 7 @media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.slope-widgets-container .dayContainer{display:block!important;width:356px!important}} -
slope-widgets/trunk/includes/admin/GlobalSettings.php
r3385288 r3415084 21 21 $slug = 'slope-widgets/slope-widgets.php'; 22 22 23 // According to WordPress this comment in the codex the best way to add a menu icon is to use a base64 encoded 24 // SVG image: https://developer.wordpress.org/reference/functions/add_menu_page/#comment-5845 25 $svg = file_get_contents(SLOPE_WIDGETS_PATH . '/images/icon.svg'); 26 23 27 add_menu_page( 24 28 esc_html__('Impostazioni di Slope Widgets', 'slope-widgets'), … … 27 31 $slug, 28 32 [$this, 'renderSettingsPage'], 29 plugins_url('slope-widgets/images/icon.png')33 'data:image/svg+xml;base64,'.base64_encode($svg) 30 34 ); 31 35 -
slope-widgets/trunk/includes/admin/Promotions.php
r3385288 r3415084 139 139 140 140 // NOTE: An expiration time of 0 means the cache will not expire! 141 if (SLOPE_PR MOTIONS_CACHE_EXPIRATION_SECONDS !== 0) {142 set_transient($cache_key, $promotions, SLOPE_PR MOTIONS_CACHE_EXPIRATION_SECONDS);141 if (SLOPE_PROMOTIONS_CACHE_EXPIRATION_SECONDS !== 0) { 142 set_transient($cache_key, $promotions, SLOPE_PROMOTIONS_CACHE_EXPIRATION_SECONDS); 143 143 } 144 144 wp_send_json_success($promotions); … … 148 148 * Returns the content displayed by the shortcode 149 149 * 150 * @param mixed[] $atts The shortcode attributes150 * @param mixed[]|string $atts The shortcode attributes 151 151 */ 152 function slope_promotions_shortcode( array$atts): string152 function slope_promotions_shortcode($atts): string 153 153 { 154 154 $uuid = GlobalSettingsProvider::getEstablishmentId(); 155 155 $bookTarget = GlobalSettingsProvider::shouldOpenLinksOnANewTab() ? ' data-open-new-tab="true"' : ''; 156 156 // Try to get the language from the shortcode attribute 157 $ atts = shortcode_atts(157 $shortcodeAttributes = shortcode_atts( 158 158 [ 159 159 'lang' => '', 160 160 ], 161 $atts 161 // TODO: $atts should always be an array, but when no attributes are passed it can be a string. 162 // This has been fixed in later versions of WordPress (>=6.5), so we can remove this check in the future 163 // and enforce $atts type to be always an array. 164 // see: https://core.trac.wordpress.org/changeset/57597 165 is_array($atts) ? $atts : [] 162 166 ); 163 167 164 168 $uuid = esc_attr($uuid); 165 169 166 $languageAttribute = $ atts['lang']167 ? ' data-lang="' . esc_attr($ atts['lang']) . '"'170 $languageAttribute = $shortcodeAttributes['lang'] 171 ? ' data-lang="' . esc_attr($shortcodeAttributes['lang']) . '"' 168 172 : ''; 169 173 -
slope-widgets/trunk/includes/admin/Reservations.php
r3385288 r3415084 58 58 * Returns the content displayed by the shortcode 59 59 * 60 * @param mixed[] $atts The shortcode attributes60 * @param mixed[]|string $atts The shortcode attributes 61 61 */ 62 public function getShortcodeContent( array$atts): string62 public function getShortcodeContent($atts): string 63 63 { 64 64 $languageResolver = new LanguageResolver(); … … 68 68 69 69 // Try to get the language from the shortcode attribute 70 $ atts = shortcode_atts(70 $shortcodeAttributes = shortcode_atts( 71 71 [ 72 72 'lang' => null, 73 73 ], 74 $atts 75 ); 76 77 $lang = $languageResolver->resolveLanguage($atts['lang']); 74 // TODO: $atts should always be an array, but when no attributes are passed it can be a string. 75 // This has been fixed in later versions of WordPress (>=6.5), so we can remove this check in the future 76 // and enforce $atts type to be always an array. 77 // see: https://core.trac.wordpress.org/changeset/57597 78 is_array($atts) ? $atts : [] 79 ); 80 81 $lang = $languageResolver->resolveLanguage($shortcodeAttributes['lang']); 78 82 79 83 // Strings mapping for languages … … 276 280 color: <?php echo esc_attr($fontColor) ?> !important; 277 281 } 278 279 .slope-flatpickr-calendar .flatpickr-current-month span.cur-month:hover,280 .slope-flatpickr-calendar .flatpickr-current-month input.cur-year,281 282 </style> 282 283 283 <div id="slope-widgets-config" data-language="<?php echo esc_attr($ atts['lang']) ?>" data-min-days="<?php echo esc_attr($minDays) ?>"></div>284 <div id="slope-widgets-config" data-language="<?php echo esc_attr($shortcodeAttributes['lang']) ?>" data-min-days="<?php echo esc_attr($minDays) ?>"></div> 284 285 <div class="slope-widgets-container" data-widget-count> 285 286 <form action="<?php echo esc_url($bookingEngineActionURL) ?>" method="POST"> -
slope-widgets/trunk/js/slope-admin.js
r3289147 r3415084 10 10 jQuery("#layout_page_promotions_select").removeClass("nav-tab-active"); 11 11 } 12 13 12 function activate_page_style_promotions() { 14 13 jQuery(".slope-setting-container-promotions").css("display", "none"); … … 19 18 jQuery("#layout_page_promotions_select").removeClass("nav-tab-active"); 20 19 } 21 22 20 function activate_page_layout_promotions() { 23 21 jQuery(".slope-setting-container-promotions").css("display", "none"); … … 32 30 function slopeCheckValidity() { 33 31 var form = new SlopeForm(jQuery("#slp-welcome-form"), ["user-type", "email-address"]); 34 35 32 if (!form.isValid() || !document.getElementById("slope-terms").checked) { 36 33 jQuery(this).find('button[type="submit"]').attr("disabled", true); … … 39 36 } 40 37 } 41 42 38 function slopeSendDataAndRedirect(nextPageUrl) { 43 39 var slopeWelcomeForm = new SlopeForm(jQuery("#slp-welcome-form"), ["user-type", "email-address"]); 44 40 var ZAPIER_URL = "https://hooks.zapier.com/hooks/catch/3734337/o3u54mk/"; 45 46 41 if (slopeWelcomeForm.isValid() || !document.getElementById("slope-terms").checked) { 47 42 slopeWelcomeForm.send(ZAPIER_URL, function () { … … 50 45 } 51 46 } 52 53 47 jQuery(document).on("change", "#slp-welcome-form", slopeCheckValidity); -
slope-widgets/trunk/js/slope-modules.js
r2806537 r3415084 8 8 return (e = Object.assign || function (e) { 9 9 for (var t, n = 1, a = arguments.length; n < a; n++) for (var i in t = arguments[n]) Object.prototype.hasOwnProperty.call(t, i) && (e[i] = t[i]); 10 11 10 return e; 12 11 }).apply(this, arguments); 13 12 }; 14 15 13 function t() { 16 14 for (var e = 0, t = 0, n = arguments.length; t < n; t++) e += arguments[t].length; 17 18 15 var a = Array(e), 19 i = 0; 20 16 i = 0; 21 17 for (t = 0; t < n; t++) for (var o = arguments[t], r = 0, l = o.length; r < l; r++, i++) a[i] = o[r]; 22 23 18 return a; 24 19 } 25 26 20 var n = ["onChange", "onClose", "onDayCreate", "onDestroy", "onKeyDown", "onMonthChange", "onOpen", "onParseConfig", "onReady", "onValueUpdate", "onYearChange", "onPreCalendarPosition"], 27 a = { 28 _disable: [], 29 allowInput: !1, 30 allowInvalidPreload: !1, 31 altFormat: "F j, Y", 32 altInput: !1, 33 altInputClass: "form-control input", 34 animate: "object" == typeof window && -1 === window.navigator.userAgent.indexOf("MSIE"), 35 ariaDateFormat: "F j, Y", 36 autoFillDefaultTime: !0, 37 clickOpens: !0, 38 closeOnSelect: !0, 39 conjunction: ", ", 40 dateFormat: "Y-m-d", 41 defaultHour: 12, 42 defaultMinute: 0, 43 defaultSeconds: 0, 44 disable: [], 45 disableMobile: !1, 46 enableSeconds: !1, 47 enableTime: !1, 48 errorHandler: function (e) { 49 return "undefined" != typeof console && console.warn(e); 21 a = { 22 _disable: [], 23 allowInput: !1, 24 allowInvalidPreload: !1, 25 altFormat: "F j, Y", 26 altInput: !1, 27 altInputClass: "form-control input", 28 animate: "object" == typeof window && -1 === window.navigator.userAgent.indexOf("MSIE"), 29 ariaDateFormat: "F j, Y", 30 autoFillDefaultTime: !0, 31 clickOpens: !0, 32 closeOnSelect: !0, 33 conjunction: ", ", 34 dateFormat: "Y-m-d", 35 defaultHour: 12, 36 defaultMinute: 0, 37 defaultSeconds: 0, 38 disable: [], 39 disableMobile: !1, 40 enableSeconds: !1, 41 enableTime: !1, 42 errorHandler: function (e) { 43 return "undefined" != typeof console && console.warn(e); 44 }, 45 getWeek: function (e) { 46 var t = new Date(e.getTime()); 47 t.setHours(0, 0, 0, 0), t.setDate(t.getDate() + 3 - (t.getDay() + 6) % 7); 48 var n = new Date(t.getFullYear(), 0, 4); 49 return 1 + Math.round(((t.getTime() - n.getTime()) / 864e5 - 3 + (n.getDay() + 6) % 7) / 7); 50 }, 51 hourIncrement: 1, 52 ignoredFocusElements: [], 53 inline: !1, 54 locale: "default", 55 minuteIncrement: 5, 56 mode: "single", 57 monthSelectorType: "dropdown", 58 nextArrow: "<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 17 17'><g></g><path d='M13.207 8.472l-7.854 7.854-0.707-0.707 7.146-7.146-7.146-7.148 0.707-0.707 7.854 7.854z' /></svg>", 59 noCalendar: !1, 60 now: new Date(), 61 onChange: [], 62 onClose: [], 63 onDayCreate: [], 64 onDestroy: [], 65 onKeyDown: [], 66 onMonthChange: [], 67 onOpen: [], 68 onParseConfig: [], 69 onReady: [], 70 onValueUpdate: [], 71 onYearChange: [], 72 onPreCalendarPosition: [], 73 plugins: [], 74 position: "auto", 75 positionElement: void 0, 76 prevArrow: "<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 17 17'><g></g><path d='M5.207 8.471l7.146 7.147-0.707 0.707-7.853-7.854 7.854-7.853 0.707 0.707-7.147 7.146z' /></svg>", 77 shorthandCurrentMonth: !1, 78 showMonths: 1, 79 static: !1, 80 time_24hr: !1, 81 weekNumbers: !1, 82 wrap: !1 50 83 }, 51 getWeek: function (e) { 52 var t = new Date(e.getTime()); 53 t.setHours(0, 0, 0, 0), t.setDate(t.getDate() + 3 - (t.getDay() + 6) % 7); 54 var n = new Date(t.getFullYear(), 0, 4); 55 return 1 + Math.round(((t.getTime() - n.getTime()) / 864e5 - 3 + (n.getDay() + 6) % 7) / 7); 84 i = { 85 weekdays: { 86 shorthand: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], 87 longhand: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"] 88 }, 89 months: { 90 shorthand: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], 91 longhand: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"] 92 }, 93 daysInMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], 94 firstDayOfWeek: 0, 95 ordinal: function (e) { 96 var t = e % 100; 97 if (t > 3 && t < 21) return "th"; 98 switch (t % 10) { 99 case 1: 100 return "st"; 101 case 2: 102 return "nd"; 103 case 3: 104 return "rd"; 105 default: 106 return "th"; 107 } 108 }, 109 rangeSeparator: " to ", 110 weekAbbreviation: "Wk", 111 scrollTitle: "Scroll to increment", 112 toggleTitle: "Click to toggle", 113 amPM: ["AM", "PM"], 114 yearAriaLabel: "Year", 115 monthAriaLabel: "Month", 116 hourAriaLabel: "Hour", 117 minuteAriaLabel: "Minute", 118 time_24hr: !1 56 119 }, 57 hourIncrement: 1, 58 ignoredFocusElements: [], 59 inline: !1, 60 locale: "default", 61 minuteIncrement: 5, 62 mode: "single", 63 monthSelectorType: "dropdown", 64 nextArrow: "<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 17 17'><g></g><path d='M13.207 8.472l-7.854 7.854-0.707-0.707 7.146-7.146-7.146-7.148 0.707-0.707 7.854 7.854z' /></svg>", 65 noCalendar: !1, 66 now: new Date(), 67 onChange: [], 68 onClose: [], 69 onDayCreate: [], 70 onDestroy: [], 71 onKeyDown: [], 72 onMonthChange: [], 73 onOpen: [], 74 onParseConfig: [], 75 onReady: [], 76 onValueUpdate: [], 77 onYearChange: [], 78 onPreCalendarPosition: [], 79 plugins: [], 80 position: "auto", 81 positionElement: void 0, 82 prevArrow: "<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 17 17'><g></g><path d='M5.207 8.471l7.146 7.147-0.707 0.707-7.853-7.854 7.854-7.853 0.707 0.707-7.147 7.146z' /></svg>", 83 shorthandCurrentMonth: !1, 84 showMonths: 1, 85 static: !1, 86 time_24hr: !1, 87 weekNumbers: !1, 88 wrap: !1 89 }, 90 i = { 91 weekdays: { 92 shorthand: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], 93 longhand: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"] 120 o = function (e, t) { 121 return void 0 === t && (t = 2), ("000" + e).slice(-1 * t); 94 122 }, 95 months: { 96 shorthand: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], 97 longhand: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"] 98 }, 99 daysInMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], 100 firstDayOfWeek: 0, 101 ordinal: function (e) { 102 var t = e % 100; 103 if (t > 3 && t < 21) return "th"; 104 105 switch (t % 10) { 106 case 1: 107 return "st"; 108 109 case 2: 110 return "nd"; 111 112 case 3: 113 return "rd"; 114 115 default: 116 return "th"; 117 } 118 }, 119 rangeSeparator: " to ", 120 weekAbbreviation: "Wk", 121 scrollTitle: "Scroll to increment", 122 toggleTitle: "Click to toggle", 123 amPM: ["AM", "PM"], 124 yearAriaLabel: "Year", 125 monthAriaLabel: "Month", 126 hourAriaLabel: "Hour", 127 minuteAriaLabel: "Minute", 128 time_24hr: !1 129 }, 130 o = function (e, t) { 131 return void 0 === t && (t = 2), ("000" + e).slice(-1 * t); 132 }, 133 r = function (e) { 134 return !0 === e ? 1 : 0; 135 }; 136 123 r = function (e) { 124 return !0 === e ? 1 : 0; 125 }; 137 126 function l(e, t) { 138 127 var n; … … 144 133 }; 145 134 } 146 147 135 var c = function (e) { 148 136 return e instanceof Array ? e : [e]; 149 137 }; 150 151 138 function d(e, t, n) { 152 139 if (!0 === n) return e.classList.add(t); 153 140 e.classList.remove(t); 154 141 } 155 156 142 function s(e, t, n) { 157 143 var a = window.document.createElement(e); 158 144 return t = t || "", n = n || "", a.className = t, void 0 !== n && (a.textContent = n), a; 159 145 } 160 161 146 function u(e) { 162 147 for (; e.firstChild;) e.removeChild(e.firstChild); 163 148 } 164 165 149 function f(e, t) { 166 150 return t(e) ? e : e.parentNode ? f(e.parentNode, t) : void 0; 167 151 } 168 169 152 function m(e, t) { 170 153 var n = s("div", "numInputWrapper"), 171 a = s("input", "numInput " + e),172 i = s("span", "arrowUp"),173 o = s("span", "arrowDown");154 a = s("input", "numInput " + e), 155 i = s("span", "arrowUp"), 156 o = s("span", "arrowDown"); 174 157 if (-1 === navigator.userAgent.indexOf("MSIE 9.0") ? a.type = "number" : (a.type = "text", a.pattern = "\\d*"), void 0 !== t) for (var r in t) a.setAttribute(r, t[r]); 175 158 return n.appendChild(a), n.appendChild(i), n.appendChild(o), n; 176 159 } 177 178 160 function g(e) { 179 161 try { … … 183 165 } 184 166 } 185 186 167 var p = function () {}, 187 h = function (e, t, n) { 188 return n.months[t ? "shorthand" : "longhand"][e]; 189 }, 190 v = { 191 D: p, 192 F: function (e, t, n) { 193 e.setMonth(n.months.longhand.indexOf(t)); 168 h = function (e, t, n) { 169 return n.months[t ? "shorthand" : "longhand"][e]; 194 170 }, 195 G: function (e, t) { 196 e.setHours(parseFloat(t)); 171 v = { 172 D: p, 173 F: function (e, t, n) { 174 e.setMonth(n.months.longhand.indexOf(t)); 175 }, 176 G: function (e, t) { 177 e.setHours(parseFloat(t)); 178 }, 179 H: function (e, t) { 180 e.setHours(parseFloat(t)); 181 }, 182 J: function (e, t) { 183 e.setDate(parseFloat(t)); 184 }, 185 K: function (e, t, n) { 186 e.setHours(e.getHours() % 12 + 12 * r(new RegExp(n.amPM[1], "i").test(t))); 187 }, 188 M: function (e, t, n) { 189 e.setMonth(n.months.shorthand.indexOf(t)); 190 }, 191 S: function (e, t) { 192 e.setSeconds(parseFloat(t)); 193 }, 194 U: function (e, t) { 195 return new Date(1e3 * parseFloat(t)); 196 }, 197 W: function (e, t, n) { 198 var a = parseInt(t), 199 i = new Date(e.getFullYear(), 0, 2 + 7 * (a - 1), 0, 0, 0, 0); 200 return i.setDate(i.getDate() - i.getDay() + n.firstDayOfWeek), i; 201 }, 202 Y: function (e, t) { 203 e.setFullYear(parseFloat(t)); 204 }, 205 Z: function (e, t) { 206 return new Date(t); 207 }, 208 d: function (e, t) { 209 e.setDate(parseFloat(t)); 210 }, 211 h: function (e, t) { 212 e.setHours(parseFloat(t)); 213 }, 214 i: function (e, t) { 215 e.setMinutes(parseFloat(t)); 216 }, 217 j: function (e, t) { 218 e.setDate(parseFloat(t)); 219 }, 220 l: p, 221 m: function (e, t) { 222 e.setMonth(parseFloat(t) - 1); 223 }, 224 n: function (e, t) { 225 e.setMonth(parseFloat(t) - 1); 226 }, 227 s: function (e, t) { 228 e.setSeconds(parseFloat(t)); 229 }, 230 u: function (e, t) { 231 return new Date(parseFloat(t)); 232 }, 233 w: p, 234 y: function (e, t) { 235 e.setFullYear(2e3 + parseFloat(t)); 236 } 197 237 }, 198 H: function (e, t) { 199 e.setHours(parseFloat(t)); 238 D = { 239 D: "(\\w+)", 240 F: "(\\w+)", 241 G: "(\\d\\d|\\d)", 242 H: "(\\d\\d|\\d)", 243 J: "(\\d\\d|\\d)\\w+", 244 K: "", 245 M: "(\\w+)", 246 S: "(\\d\\d|\\d)", 247 U: "(.+)", 248 W: "(\\d\\d|\\d)", 249 Y: "(\\d{4})", 250 Z: "(.+)", 251 d: "(\\d\\d|\\d)", 252 h: "(\\d\\d|\\d)", 253 i: "(\\d\\d|\\d)", 254 j: "(\\d\\d|\\d)", 255 l: "(\\w+)", 256 m: "(\\d\\d|\\d)", 257 n: "(\\d\\d|\\d)", 258 s: "(\\d\\d|\\d)", 259 u: "(.+)", 260 w: "(\\d\\d|\\d)", 261 y: "(\\d{2})" 200 262 }, 201 J: function (e, t) { 202 e.setDate(parseFloat(t)); 263 w = { 264 Z: function (e) { 265 return e.toISOString(); 266 }, 267 D: function (e, t, n) { 268 return t.weekdays.shorthand[w.w(e, t, n)]; 269 }, 270 F: function (e, t, n) { 271 return h(w.n(e, t, n) - 1, !1, t); 272 }, 273 G: function (e, t, n) { 274 return o(w.h(e, t, n)); 275 }, 276 H: function (e) { 277 return o(e.getHours()); 278 }, 279 J: function (e, t) { 280 return void 0 !== t.ordinal ? e.getDate() + t.ordinal(e.getDate()) : e.getDate(); 281 }, 282 K: function (e, t) { 283 return t.amPM[r(e.getHours() > 11)]; 284 }, 285 M: function (e, t) { 286 return h(e.getMonth(), !0, t); 287 }, 288 S: function (e) { 289 return o(e.getSeconds()); 290 }, 291 U: function (e) { 292 return e.getTime() / 1e3; 293 }, 294 W: function (e, t, n) { 295 return n.getWeek(e); 296 }, 297 Y: function (e) { 298 return o(e.getFullYear(), 4); 299 }, 300 d: function (e) { 301 return o(e.getDate()); 302 }, 303 h: function (e) { 304 return e.getHours() % 12 ? e.getHours() % 12 : 12; 305 }, 306 i: function (e) { 307 return o(e.getMinutes()); 308 }, 309 j: function (e) { 310 return e.getDate(); 311 }, 312 l: function (e, t) { 313 return t.weekdays.longhand[e.getDay()]; 314 }, 315 m: function (e) { 316 return o(e.getMonth() + 1); 317 }, 318 n: function (e) { 319 return e.getMonth() + 1; 320 }, 321 s: function (e) { 322 return e.getSeconds(); 323 }, 324 u: function (e) { 325 return e.getTime(); 326 }, 327 w: function (e) { 328 return e.getDay(); 329 }, 330 y: function (e) { 331 return String(e.getFullYear()).substring(2); 332 } 203 333 }, 204 K: function (e, t, n) { 205 e.setHours(e.getHours() % 12 + 12 * r(new RegExp(n.amPM[1], "i").test(t))); 206 }, 207 M: function (e, t, n) { 208 e.setMonth(n.months.shorthand.indexOf(t)); 209 }, 210 S: function (e, t) { 211 e.setSeconds(parseFloat(t)); 212 }, 213 U: function (e, t) { 214 return new Date(1e3 * parseFloat(t)); 215 }, 216 W: function (e, t, n) { 217 var a = parseInt(t), 218 i = new Date(e.getFullYear(), 0, 2 + 7 * (a - 1), 0, 0, 0, 0); 219 return i.setDate(i.getDate() - i.getDay() + n.firstDayOfWeek), i; 220 }, 221 Y: function (e, t) { 222 e.setFullYear(parseFloat(t)); 223 }, 224 Z: function (e, t) { 225 return new Date(t); 226 }, 227 d: function (e, t) { 228 e.setDate(parseFloat(t)); 229 }, 230 h: function (e, t) { 231 e.setHours(parseFloat(t)); 232 }, 233 i: function (e, t) { 234 e.setMinutes(parseFloat(t)); 235 }, 236 j: function (e, t) { 237 e.setDate(parseFloat(t)); 238 }, 239 l: p, 240 m: function (e, t) { 241 e.setMonth(parseFloat(t) - 1); 242 }, 243 n: function (e, t) { 244 e.setMonth(parseFloat(t) - 1); 245 }, 246 s: function (e, t) { 247 e.setSeconds(parseFloat(t)); 248 }, 249 u: function (e, t) { 250 return new Date(parseFloat(t)); 251 }, 252 w: p, 253 y: function (e, t) { 254 e.setFullYear(2e3 + parseFloat(t)); 255 } 256 }, 257 D = { 258 D: "(\\w+)", 259 F: "(\\w+)", 260 G: "(\\d\\d|\\d)", 261 H: "(\\d\\d|\\d)", 262 J: "(\\d\\d|\\d)\\w+", 263 K: "", 264 M: "(\\w+)", 265 S: "(\\d\\d|\\d)", 266 U: "(.+)", 267 W: "(\\d\\d|\\d)", 268 Y: "(\\d{4})", 269 Z: "(.+)", 270 d: "(\\d\\d|\\d)", 271 h: "(\\d\\d|\\d)", 272 i: "(\\d\\d|\\d)", 273 j: "(\\d\\d|\\d)", 274 l: "(\\w+)", 275 m: "(\\d\\d|\\d)", 276 n: "(\\d\\d|\\d)", 277 s: "(\\d\\d|\\d)", 278 u: "(.+)", 279 w: "(\\d\\d|\\d)", 280 y: "(\\d{2})" 281 }, 282 w = { 283 Z: function (e) { 284 return e.toISOString(); 285 }, 286 D: function (e, t, n) { 287 return t.weekdays.shorthand[w.w(e, t, n)]; 288 }, 289 F: function (e, t, n) { 290 return h(w.n(e, t, n) - 1, !1, t); 291 }, 292 G: function (e, t, n) { 293 return o(w.h(e, t, n)); 294 }, 295 H: function (e) { 296 return o(e.getHours()); 297 }, 298 J: function (e, t) { 299 return void 0 !== t.ordinal ? e.getDate() + t.ordinal(e.getDate()) : e.getDate(); 300 }, 301 K: function (e, t) { 302 return t.amPM[r(e.getHours() > 11)]; 303 }, 304 M: function (e, t) { 305 return h(e.getMonth(), !0, t); 306 }, 307 S: function (e) { 308 return o(e.getSeconds()); 309 }, 310 U: function (e) { 311 return e.getTime() / 1e3; 312 }, 313 W: function (e, t, n) { 314 return n.getWeek(e); 315 }, 316 Y: function (e) { 317 return o(e.getFullYear(), 4); 318 }, 319 d: function (e) { 320 return o(e.getDate()); 321 }, 322 h: function (e) { 323 return e.getHours() % 12 ? e.getHours() % 12 : 12; 324 }, 325 i: function (e) { 326 return o(e.getMinutes()); 327 }, 328 j: function (e) { 329 return e.getDate(); 330 }, 331 l: function (e, t) { 332 return t.weekdays.longhand[e.getDay()]; 333 }, 334 m: function (e) { 335 return o(e.getMonth() + 1); 336 }, 337 n: function (e) { 338 return e.getMonth() + 1; 339 }, 340 s: function (e) { 341 return e.getSeconds(); 342 }, 343 u: function (e) { 344 return e.getTime(); 345 }, 346 w: function (e) { 347 return e.getDay(); 348 }, 349 y: function (e) { 350 return String(e.getFullYear()).substring(2); 351 } 352 }, 353 b = function (e) { 354 var t = e.config, 334 b = function (e) { 335 var t = e.config, 355 336 n = void 0 === t ? a : t, 356 337 o = e.l10n, … … 358 339 l = e.isMobile, 359 340 c = void 0 !== l && l; 360 return function (e, t, a) {361 var i = a || r;362 return void 0 === n.formatDate || c ? t.split("").map(function (t, a, o) {363 return w[t] && "\\" !== o[a - 1] ? w[t](e, i, n) : "\\" !== t ? t : "";364 }).join("") : n.formatDate(e, t, i);365 };366 },367 C = function (e) {368 var t = e.config,341 return function (e, t, a) { 342 var i = a || r; 343 return void 0 === n.formatDate || c ? t.split("").map(function (t, a, o) { 344 return w[t] && "\\" !== o[a - 1] ? w[t](e, i, n) : "\\" !== t ? t : ""; 345 }).join("") : n.formatDate(e, t, i); 346 }; 347 }, 348 C = function (e) { 349 var t = e.config, 369 350 n = void 0 === t ? a : t, 370 351 o = e.l10n, 371 352 r = void 0 === o ? i : o; 372 return function (e, t, i, o) {373 if (0 === e || e) {374 var l,353 return function (e, t, i, o) { 354 if (0 === e || e) { 355 var l, 375 356 c = o || r, 376 357 d = e; 377 if (e instanceof Date) l = new Date(e.getTime());else if ("string" != typeof e && void 0 !== e.toFixed) l = new Date(e);else if ("string" == typeof e) {378 var s = t || (n || a).dateFormat,358 if (e instanceof Date) l = new Date(e.getTime());else if ("string" != typeof e && void 0 !== e.toFixed) l = new Date(e);else if ("string" == typeof e) { 359 var s = t || (n || a).dateFormat, 379 360 u = String(e).trim(); 380 if ("today" === u) l = new Date(), i = !0;else if (/Z$/.test(u) || /GMT$/.test(u)) l = new Date(e);else if (n && n.parseDate) l = n.parseDate(e, s);else { 381 l = n && n.noCalendar ? new Date(new Date().setHours(0, 0, 0, 0)) : new Date(new Date().getFullYear(), 0, 1, 0, 0, 0, 0); 382 383 for (var f = void 0, m = [], g = 0, p = 0, h = ""; g < s.length; g++) { 384 var w = s[g], 361 if ("today" === u) l = new Date(), i = !0;else if (/Z$/.test(u) || /GMT$/.test(u)) l = new Date(e);else if (n && n.parseDate) l = n.parseDate(e, s);else { 362 l = n && n.noCalendar ? new Date(new Date().setHours(0, 0, 0, 0)) : new Date(new Date().getFullYear(), 0, 1, 0, 0, 0, 0); 363 for (var f = void 0, m = [], g = 0, p = 0, h = ""; g < s.length; g++) { 364 var w = s[g], 385 365 b = "\\" === w, 386 366 C = "\\" === s[g - 1] || b; 387 388 if (D[w] && !C) { 389 h += D[w]; 390 var M = new RegExp(h).exec(e); 391 M && (f = !0) && m["Y" !== w ? "push" : "unshift"]({ 392 fn: v[w], 393 val: M[++p] 367 if (D[w] && !C) { 368 h += D[w]; 369 var M = new RegExp(h).exec(e); 370 M && (f = !0) && m["Y" !== w ? "push" : "unshift"]({ 371 fn: v[w], 372 val: M[++p] 373 }); 374 } else b || (h += "."); 375 m.forEach(function (e) { 376 var t = e.fn, 377 n = e.val; 378 return l = t(l, n, c) || l; 394 379 }); 395 } else b || (h += "."); 396 397 m.forEach(function (e) { 398 var t = e.fn, 399 n = e.val; 400 return l = t(l, n, c) || l; 401 }); 380 } 381 l = f ? l : void 0; 402 382 } 403 404 l = f ? l : void 0;405 383 } 406 }407 if (l instanceof Date && !isNaN(l.getTime())) return !0 === i && l.setHours(0, 0, 0, 0), l;408 n.errorHandler(new Error("Invalid date provided: " + d));409 } 384 if (l instanceof Date && !isNaN(l.getTime())) return !0 === i && l.setHours(0, 0, 0, 0), l; 385 n.errorHandler(new Error("Invalid date provided: " + d)); 386 } 387 }; 410 388 }; 411 };412 413 389 function M(e, t, n) { 414 390 return void 0 === n && (n = !0), !1 !== n ? new Date(e.getTime()).setHours(0, 0, 0, 0) - new Date(t.getTime()).setHours(0, 0, 0, 0) : e.getTime() - t.getTime(); 415 391 } 416 417 392 var y = 864e5; 418 419 393 function x(e) { 420 394 var t = e.defaultHour, 421 n = e.defaultMinute, 422 a = e.defaultSeconds; 423 395 n = e.defaultMinute, 396 a = e.defaultSeconds; 424 397 if (void 0 !== e.minDate) { 425 398 var i = e.minDate.getHours(), 426 o = e.minDate.getMinutes(),427 r = e.minDate.getSeconds();399 o = e.minDate.getMinutes(), 400 r = e.minDate.getSeconds(); 428 401 t < i && (t = i), t === i && n < o && (n = o), t === i && n === o && a < r && (a = e.minDate.getSeconds()); 429 402 } 430 431 403 if (void 0 !== e.maxDate) { 432 404 var l = e.maxDate.getHours(), 433 c = e.maxDate.getMinutes();405 c = e.maxDate.getMinutes(); 434 406 (t = Math.min(t, l)) === l && (n = Math.min(c, n)), t === l && n === c && (a = e.maxDate.getSeconds()); 435 407 } 436 437 408 return { 438 409 hours: t, … … 441 412 }; 442 413 } 443 444 414 "function" != typeof Object.assign && (Object.assign = function (e) { 445 415 for (var t = [], n = 1; n < arguments.length; n++) t[n - 1] = arguments[n]; 446 447 416 if (!e) throw TypeError("Cannot convert undefined or null to object"); 448 449 417 for (var a = function (t) { 450 t && Object.keys(t).forEach(function (n) {451 return e[n] = t[n];452 });453 }, i = 0, o = t; i < o.length; i++) {418 t && Object.keys(t).forEach(function (n) { 419 return e[n] = t[n]; 420 }); 421 }, i = 0, o = t; i < o.length; i++) { 454 422 var r = o[i]; 455 423 a(r); 456 424 } 457 458 425 return e; 459 426 }); 460 461 427 function E(p, v) { 462 428 var w = { … … 464 430 l10n: i 465 431 }; 466 467 432 function E(e) { 468 433 return e.bind(w); 469 434 } 470 471 435 function k() { 472 436 var e = w.config; … … 478 442 }); 479 443 } 480 481 444 function I(e) { 482 445 if (0 === w.selectedDates.length) { 483 446 var t = void 0 === w.config.minDate || M(new Date(), w.config.minDate) >= 0 ? new Date() : new Date(w.config.minDate.getTime()), 484 n = x(w.config);447 n = x(w.config); 485 448 t.setHours(n.hours, n.minutes, n.seconds, t.getMilliseconds()), w.selectedDates = [t], w.latestSelectedDateObj = t; 486 449 } 487 488 450 void 0 !== e && "blur" !== e.type && function (e) { 489 451 e.preventDefault(); 490 452 var t = "keydown" === e.type, 491 n = g(e),492 a = n;453 n = g(e), 454 a = n; 493 455 void 0 !== w.amPM && n === w.amPM && (w.amPM.textContent = w.l10n.amPM[r(w.amPM.textContent === w.l10n.amPM[0])]); 494 456 var i = parseFloat(a.getAttribute("min")), 495 l = parseFloat(a.getAttribute("max")), 496 c = parseFloat(a.getAttribute("step")), 497 d = parseInt(a.value, 10), 498 s = e.delta || (t ? 38 === e.which ? 1 : -1 : 0), 499 u = d + c * s; 500 457 l = parseFloat(a.getAttribute("max")), 458 c = parseFloat(a.getAttribute("step")), 459 d = parseInt(a.value, 10), 460 s = e.delta || (t ? 38 === e.which ? 1 : -1 : 0), 461 u = d + c * s; 501 462 if (void 0 !== a.value && 2 === a.value.length) { 502 463 var f = a === w.hourElement, 503 m = a === w.minuteElement;464 m = a === w.minuteElement; 504 465 u < i ? (u = l + u + r(!f) + (r(f) && r(!w.amPM)), m && j(void 0, -1, w.hourElement)) : u > l && (u = a === w.hourElement ? u - l - r(!w.amPM) : i, m && j(void 0, 1, w.hourElement)), w.amPM && f && (1 === c ? u + d === 23 : Math.abs(u - d) > c) && (w.amPM.textContent = w.l10n.amPM[r(w.amPM.textContent === w.l10n.amPM[0])]), a.value = o(u); 505 466 } … … 508 469 S(), be(), w._input.value !== a && w._debouncedChange(); 509 470 } 510 511 471 function S() { 512 472 if (void 0 !== w.hourElement && void 0 !== w.minuteElement) { 513 473 var e, 514 t,515 n = (parseInt(w.hourElement.value.slice(-2), 10) || 0) % 24,516 a = (parseInt(w.minuteElement.value, 10) || 0) % 60,517 i = void 0 !== w.secondElement ? (parseInt(w.secondElement.value, 10) || 0) % 60 : 0;474 t, 475 n = (parseInt(w.hourElement.value.slice(-2), 10) || 0) % 24, 476 a = (parseInt(w.minuteElement.value, 10) || 0) % 60, 477 i = void 0 !== w.secondElement ? (parseInt(w.secondElement.value, 10) || 0) % 60 : 0; 518 478 void 0 !== w.amPM && (e = n, t = w.amPM.textContent, n = e % 12 + 12 * r(t === w.l10n.amPM[1])); 519 479 var o = void 0 !== w.config.minTime || w.config.minDate && w.minDateHasTime && w.latestSelectedDateObj && 0 === M(w.latestSelectedDateObj, w.config.minDate, !0); 520 521 480 if (void 0 !== w.config.maxTime || w.config.maxDate && w.maxDateHasTime && w.latestSelectedDateObj && 0 === M(w.latestSelectedDateObj, w.config.maxDate, !0)) { 522 481 var l = void 0 !== w.config.maxTime ? w.config.maxTime : w.config.maxDate; 523 482 (n = Math.min(n, l.getHours())) === l.getHours() && (a = Math.min(a, l.getMinutes())), a === l.getMinutes() && (i = Math.min(i, l.getSeconds())); 524 483 } 525 526 484 if (o) { 527 485 var c = void 0 !== w.config.minTime ? w.config.minTime : w.config.minDate; 528 486 (n = Math.max(n, c.getHours())) === c.getHours() && a < c.getMinutes() && (a = c.getMinutes()), a === c.getMinutes() && (i = Math.max(i, c.getSeconds())); 529 487 } 530 531 488 O(n, a, i); 532 489 } 533 490 } 534 535 491 function _(e) { 536 492 var t = e || w.latestSelectedDateObj; 537 493 t && O(t.getHours(), t.getMinutes(), t.getSeconds()); 538 494 } 539 540 495 function O(e, t, n) { 541 496 void 0 !== w.latestSelectedDateObj && w.latestSelectedDateObj.setHours(e % 24, t, n || 0, 0), w.hourElement && w.minuteElement && !w.isMobile && (w.hourElement.value = o(w.config.time_24hr ? e : (12 + e) % 12 + 12 * r(e % 12 == 0)), w.minuteElement.value = o(t), void 0 !== w.amPM && (w.amPM.textContent = w.l10n.amPM[r(e >= 12)]), void 0 !== w.secondElement && (w.secondElement.value = o(n))); 542 497 } 543 544 498 function F(e) { 545 499 var t = g(e), 546 n = parseInt(t.value) + (e.delta || 0);500 n = parseInt(t.value) + (e.delta || 0); 547 501 (n / 1e3 > 1 || "Enter" === e.key && !/[^\d]/.test(n.toString())) && Q(n); 548 502 } 549 550 503 function A(e, t, n, a) { 551 504 return t instanceof Array ? t.forEach(function (t) { … … 559 512 })); 560 513 } 561 562 514 function N() { 563 515 pe("onChange"); 564 516 } 565 566 517 function P(e, t) { 567 518 var n = void 0 !== e ? w.parseDate(e) : w.latestSelectedDateObj || (w.config.minDate && w.config.minDate > w.now ? w.config.minDate : w.config.maxDate && w.config.maxDate < w.now ? w.config.maxDate : w.now), 568 a = w.currentYear, 569 i = w.currentMonth; 570 519 a = w.currentYear, 520 i = w.currentMonth; 571 521 try { 572 522 void 0 !== n && (w.currentYear = n.getFullYear(), w.currentMonth = n.getMonth()); … … 574 524 e.message = "Invalid date supplied: " + n, w.config.errorHandler(e); 575 525 } 576 577 526 t && w.currentYear !== a && (pe("onYearChange"), K()), !t || w.currentYear === a && w.currentMonth === i || pe("onMonthChange"), w.redraw(); 578 527 } 579 580 528 function Y(e) { 581 529 var t = g(e); 582 530 ~t.className.indexOf("arrow") && j(e, t.classList.contains("arrowUp") ? 1 : -1); 583 531 } 584 585 532 function j(e, t, n) { 586 533 var a = e && g(e), 587 i = n || a && a.parentNode && a.parentNode.firstChild,588 o = he("increment");534 i = n || a && a.parentNode && a.parentNode.firstChild, 535 o = he("increment"); 589 536 o.delta = t, i && i.dispatchEvent(o); 590 537 } 591 592 538 function H(e, t, n, a) { 593 539 var i = X(t, !0), 594 o = s("span", "flatpickr-day " + e, t.getDate().toString());540 o = s("span", "flatpickr-day " + e, t.getDate().toString()); 595 541 return o.dateObj = t, o.$i = a, o.setAttribute("aria-label", w.formatDate(t, w.config.ariaDateFormat)), -1 === e.indexOf("hidden") && 0 === M(t, w.now) && (w.todayDateElem = o, o.classList.add("today"), o.setAttribute("aria-current", "date")), i ? (o.tabIndex = -1, ve(t) && (o.classList.add("selected"), w.selectedDateElem = o, "range" === w.config.mode && (d(o, "startRange", w.selectedDates[0] && 0 === M(t, w.selectedDates[0], !0)), d(o, "endRange", w.selectedDates[1] && 0 === M(t, w.selectedDates[1], !0)), "nextMonthDay" === e && o.classList.add("inRange")))) : o.classList.add("flatpickr-disabled"), "range" === w.config.mode && function (e) { 596 542 return !("range" !== w.config.mode || w.selectedDates.length < 2) && M(e, w.selectedDates[0]) >= 0 && M(e, w.selectedDates[1]) <= 0; 597 543 }(t) && !ve(t) && o.classList.add("inRange"), w.weekNumbers && 1 === w.config.showMonths && "prevMonthDay" !== e && n % 7 == 1 && w.weekNumbers.insertAdjacentHTML("beforeend", "<span class='flatpickr-day'>" + w.config.getWeek(t) + "</span>"), pe("onDayCreate", o), o; 598 544 } 599 600 545 function L(e) { 601 546 e.focus(), "range" === w.config.mode && ae(e); 602 547 } 603 604 548 function W(e) { 605 549 for (var t = e > 0 ? 0 : w.config.showMonths - 1, n = e > 0 ? w.config.showMonths : -1, a = t; a != n; a += e) for (var i = w.daysContainer.children[a], o = e > 0 ? 0 : i.children.length - 1, r = e > 0 ? i.children.length : -1, l = o; l != r; l += e) { … … 608 552 } 609 553 } 610 611 554 function R(e, t) { 612 555 var n = ee(document.activeElement || document.body), 613 a = void 0 !== e ? e : n ? document.activeElement : void 0 !== w.selectedDateElem && ee(w.selectedDateElem) ? w.selectedDateElem : void 0 !== w.todayDateElem && ee(w.todayDateElem) ? w.todayDateElem : W(t > 0 ? 1 : -1);556 a = void 0 !== e ? e : n ? document.activeElement : void 0 !== w.selectedDateElem && ee(w.selectedDateElem) ? w.selectedDateElem : void 0 !== w.todayDateElem && ee(w.todayDateElem) ? w.todayDateElem : W(t > 0 ? 1 : -1); 614 557 void 0 === a ? w._input.focus() : n ? function (e, t) { 615 558 for (var n = -1 === e.className.indexOf("Month") ? e.dateObj.getMonth() : w.currentMonth, a = t > 0 ? w.config.showMonths : -1, i = t > 0 ? 1 : -1, o = n - w.currentMonth; o != a; o += i) for (var r = w.daysContainer.children[o], l = n - w.currentMonth === o ? e.$i + t : t < 0 ? r.children.length - 1 : 0, c = r.children.length, d = l; d >= 0 && d < c && d != (t > 0 ? c : -1); d += i) { … … 617 560 if (-1 === s.className.indexOf("hidden") && X(s.dateObj) && Math.abs(e.$i - d) >= Math.abs(t)) return L(s); 618 561 } 619 620 562 w.changeMonth(i), R(W(i), 0); 621 563 }(a, t) : L(a); 622 564 } 623 624 565 function B(e, t) { 625 566 for (var n = (new Date(e, t, 1).getDay() - w.l10n.firstDayOfWeek + 7) % 7, a = w.utils.getDaysInMonth((t - 1 + 12) % 12, e), i = w.utils.getDaysInMonth(t, e), o = window.document.createDocumentFragment(), r = w.config.showMonths > 1, l = r ? "prevMonthDay hidden" : "prevMonthDay", c = r ? "nextMonthDay hidden" : "nextMonthDay", d = a + 1 - n, u = 0; d <= a; d++, u++) o.appendChild(H(l, new Date(e, t - 1, d), d, u)); 626 627 567 for (d = 1; d <= i; d++, u++) o.appendChild(H("", new Date(e, t, d), d, u)); 628 629 568 for (var f = i + 1; f <= 42 - n && (1 === w.config.showMonths || u % 7 != 0); f++, u++) o.appendChild(H(c, new Date(e, t + 1, f % i), f, u)); 630 631 569 var m = s("div", "dayContainer"); 632 570 return m.appendChild(o), m; 633 571 } 634 635 572 function J() { 636 573 if (void 0 !== w.daysContainer) { 637 574 u(w.daysContainer), w.weekNumbers && u(w.weekNumbers); 638 639 575 for (var e = document.createDocumentFragment(), t = 0; t < w.config.showMonths; t++) { 640 576 var n = new Date(w.currentYear, w.currentMonth, 1); 641 577 n.setMonth(w.currentMonth + t), e.appendChild(B(n.getFullYear(), n.getMonth())); 642 578 } 643 644 579 w.daysContainer.appendChild(e), w.days = w.daysContainer.firstChild, "range" === w.config.mode && 1 === w.selectedDates.length && ae(); 645 580 } 646 581 } 647 648 582 function K() { 649 583 if (!(w.config.showMonths > 1 || "dropdown" !== w.config.monthSelectorType)) { … … 651 585 return !(void 0 !== w.config.minDate && w.currentYear === w.config.minDate.getFullYear() && e < w.config.minDate.getMonth()) && !(void 0 !== w.config.maxDate && w.currentYear === w.config.maxDate.getFullYear() && e > w.config.maxDate.getMonth()); 652 586 }; 653 654 587 w.monthsDropdownContainer.tabIndex = -1, w.monthsDropdownContainer.innerHTML = ""; 655 656 588 for (var t = 0; t < 12; t++) if (e(t)) { 657 589 var n = s("option", "flatpickr-monthDropdown-month"); … … 660 592 } 661 593 } 662 663 594 function U() { 664 595 var e, 665 t = s("div", "flatpickr-month"),666 n = window.document.createDocumentFragment();596 t = s("div", "flatpickr-month"), 597 n = window.document.createDocumentFragment(); 667 598 w.config.showMonths > 1 || "static" === w.config.monthSelectorType ? e = s("span", "cur-month") : (w.monthsDropdownContainer = s("select", "flatpickr-monthDropdown-months"), w.monthsDropdownContainer.setAttribute("aria-label", w.l10n.monthAriaLabel), A(w.monthsDropdownContainer, "change", function (e) { 668 599 var t = g(e), 669 n = parseInt(t.value, 10);600 n = parseInt(t.value, 10); 670 601 w.changeMonth(n - w.currentMonth), pe("onMonthChange"); 671 602 }), K(), e = w.monthsDropdownContainer); 672 603 var a = m("cur-year", { 673 tabindex: "-1"674 }),675 i = a.getElementsByTagName("input")[0];604 tabindex: "-1" 605 }), 606 i = a.getElementsByTagName("input")[0]; 676 607 i.setAttribute("aria-label", w.l10n.yearAriaLabel), w.config.minDate && i.setAttribute("min", w.config.minDate.getFullYear().toString()), w.config.maxDate && (i.setAttribute("max", w.config.maxDate.getFullYear().toString()), i.disabled = !!w.config.minDate && w.config.minDate.getFullYear() === w.config.maxDate.getFullYear()); 677 608 var o = s("div", "flatpickr-current-month"); … … 682 613 }; 683 614 } 684 685 615 function q() { 686 616 u(w.monthNav), w.monthNav.appendChild(w.prevMonthNav), w.config.showMonths && (w.yearElements = [], w.monthElements = []); 687 688 617 for (var e = w.config.showMonths; e--;) { 689 618 var t = U(); 690 619 w.yearElements.push(t.yearElement), w.monthElements.push(t.monthElement), w.monthNav.appendChild(t.container); 691 620 } 692 693 621 w.monthNav.appendChild(w.nextMonthNav); 694 622 } 695 696 623 function $() { 697 624 w.weekdayContainer ? u(w.weekdayContainer) : w.weekdayContainer = s("div", "flatpickr-weekdays"); 698 699 625 for (var e = w.config.showMonths; e--;) { 700 626 var t = s("div", "flatpickr-weekdaycontainer"); 701 627 w.weekdayContainer.appendChild(t); 702 628 } 703 704 629 return z(), w.weekdayContainer; 705 630 } 706 707 631 function z() { 708 632 if (w.weekdayContainer) { 709 633 var e = w.l10n.firstDayOfWeek, 710 n = t(w.l10n.weekdays.shorthand);634 n = t(w.l10n.weekdays.shorthand); 711 635 e > 0 && e < n.length && (n = t(n.splice(e, n.length), n.splice(0, e))); 712 713 636 for (var a = w.config.showMonths; a--;) w.weekdayContainer.children[a].innerHTML = "\n <span class='flatpickr-weekday'>\n " + n.join("</span><span class='flatpickr-weekday'>") + "\n </span>\n "; 714 637 } 715 638 } 716 717 639 function G(e, t) { 718 640 void 0 === t && (t = !0); … … 720 642 n < 0 && !0 === w._hidePrevMonthArrow || n > 0 && !0 === w._hideNextMonthArrow || (w.currentMonth += n, (w.currentMonth < 0 || w.currentMonth > 11) && (w.currentYear += w.currentMonth > 11 ? 1 : -1, w.currentMonth = (w.currentMonth + 12) % 12, pe("onYearChange"), K()), J(), pe("onMonthChange"), De()); 721 643 } 722 723 644 function V(e) { 724 645 return !(!w.config.appendTo || !w.config.appendTo.contains(e)) || w.calendarContainer.contains(e); 725 646 } 726 727 647 function Z(e) { 728 648 if (w.isOpen && !w.config.inline) { 729 649 var t = g(e), 730 n = V(t),731 a = t === w.input || t === w.altInput || w.element.contains(t) || e.path && e.path.indexOf && (~e.path.indexOf(w.input) || ~e.path.indexOf(w.altInput)),732 i = "blur" === e.type ? a && e.relatedTarget && !V(e.relatedTarget) : !a && !n && !V(e.relatedTarget),733 o = !w.config.ignoredFocusElements.some(function (e) {734 return e.contains(t);735 });650 n = V(t), 651 a = t === w.input || t === w.altInput || w.element.contains(t) || e.path && e.path.indexOf && (~e.path.indexOf(w.input) || ~e.path.indexOf(w.altInput)), 652 i = "blur" === e.type ? a && e.relatedTarget && !V(e.relatedTarget) : !a && !n && !V(e.relatedTarget), 653 o = !w.config.ignoredFocusElements.some(function (e) { 654 return e.contains(t); 655 }); 736 656 i && o && (void 0 !== w.timeContainer && void 0 !== w.minuteElement && void 0 !== w.hourElement && "" !== w.input.value && void 0 !== w.input.value && I(), w.close(), w.config && "range" === w.config.mode && 1 === w.selectedDates.length && (w.clear(!1), w.redraw())); 737 657 } 738 658 } 739 740 659 function Q(e) { 741 660 if (!(!e || w.config.minDate && e < w.config.minDate.getFullYear() || w.config.maxDate && e > w.config.maxDate.getFullYear())) { 742 661 var t = e, 743 n = w.currentYear !== t;662 n = w.currentYear !== t; 744 663 w.currentYear = t || w.currentYear, w.config.maxDate && w.currentYear === w.config.maxDate.getFullYear() ? w.currentMonth = Math.min(w.config.maxDate.getMonth(), w.currentMonth) : w.config.minDate && w.currentYear === w.config.minDate.getFullYear() && (w.currentMonth = Math.max(w.config.minDate.getMonth(), w.currentMonth)), n && (w.redraw(), pe("onYearChange"), K()); 745 664 } 746 665 } 747 748 666 function X(e, t) { 749 667 var n; … … 753 671 if (!w.config.enable && 0 === w.config.disable.length) return !0; 754 672 if (void 0 === a) return !1; 755 756 673 for (var i = !!w.config.enable, o = null !== (n = w.config.enable) && void 0 !== n ? n : w.config.disable, r = 0, l = void 0; r < o.length; r++) { 757 674 if ("function" == typeof (l = o[r]) && l(a)) return i; 758 675 if (l instanceof Date && void 0 !== a && l.getTime() === a.getTime()) return i; 759 760 676 if ("string" == typeof l) { 761 677 var c = w.parseDate(l, void 0, !0); 762 678 return c && c.getTime() === a.getTime() ? i : !i; 763 679 } 764 765 680 if ("object" == typeof l && void 0 !== a && l.from && l.to && a.getTime() >= l.from.getTime() && a.getTime() <= l.to.getTime()) return i; 766 681 } 767 768 682 return !i; 769 683 } 770 771 684 function ee(e) { 772 685 return void 0 !== w.daysContainer && -1 === e.className.indexOf("hidden") && -1 === e.className.indexOf("flatpickr-disabled") && w.daysContainer.contains(e); 773 686 } 774 775 687 function te(e) { 776 688 !(e.target === w._input) || !(w.selectedDates.length > 0 || w._input.value.length > 0) || e.relatedTarget && V(e.relatedTarget) || w.setDate(w._input.value, !0, e.target === w.altInput ? w.config.altFormat : w.config.dateFormat); 777 689 } 778 779 690 function ne(e) { 780 691 var t = g(e), 781 n = w.config.wrap ? p.contains(t) : t === w._input, 782 a = w.config.allowInput, 783 i = w.isOpen && (!a || !n), 784 o = w.config.inline && n && !a; 785 692 n = w.config.wrap ? p.contains(t) : t === w._input, 693 a = w.config.allowInput, 694 i = w.isOpen && (!a || !n), 695 o = w.config.inline && n && !a; 786 696 if (13 === e.keyCode && n) { 787 697 if (a) return w.setDate(w._input.value, !0, t === w.altInput ? w.config.altFormat : w.config.dateFormat), t.blur(); … … 789 699 } else if (V(t) || i || o) { 790 700 var r = !!w.timeContainer && w.timeContainer.contains(t); 791 792 701 switch (e.keyCode) { 793 702 case 13: 794 703 r ? (e.preventDefault(), I(), se()) : ue(e); 795 704 break; 796 797 705 case 27: 798 706 e.preventDefault(), se(); 799 707 break; 800 801 708 case 8: 802 709 case 46: 803 710 n && !w.config.allowInput && (e.preventDefault(), w.clear()); 804 711 break; 805 806 712 case 37: 807 713 case 39: … … 811 717 } 812 718 break; 813 814 719 case 38: 815 720 case 40: … … 818 723 w.daysContainer && void 0 !== t.$i || t === w.input || t === w.altInput ? e.ctrlKey ? (e.stopPropagation(), Q(w.currentYear - c), R(W(1), 0)) : r || R(void 0, 7 * c) : t === w.currentYearElement ? Q(w.currentYear - c) : w.config.enableTime && (!r && w.hourElement && w.hourElement.focus(), I(e), w._debouncedChange()); 819 724 break; 820 821 725 case 9: 822 726 if (r) { 823 727 var d = [w.hourElement, w.minuteElement, w.secondElement, w.amPM].concat(w.pluginElements).filter(function (e) { 824 return e; 825 }), 826 s = d.indexOf(t); 827 728 return e; 729 }), 730 s = d.indexOf(t); 828 731 if (-1 !== s) { 829 732 var u = d[s + (e.shiftKey ? -1 : 1)]; … … 831 734 } 832 735 } else !w.config.noCalendar && w.daysContainer && w.daysContainer.contains(t) && e.shiftKey && (e.preventDefault(), w._input.focus()); 833 834 } 835 } 836 736 } 737 } 837 738 if (void 0 !== w.amPM && t === w.amPM) switch (e.key) { 838 739 case w.l10n.amPM[0].charAt(0): … … 840 741 w.amPM.textContent = w.l10n.amPM[0], S(), be(); 841 742 break; 842 843 743 case w.l10n.amPM[1].charAt(0): 844 744 case w.l10n.amPM[1].charAt(0).toLowerCase(): … … 847 747 (n || V(t)) && pe("onKeyDown", e); 848 748 } 849 850 749 function ae(e) { 851 750 if (1 === w.selectedDates.length && (!e || e.classList.contains("flatpickr-day") && !e.classList.contains("flatpickr-disabled"))) { 852 751 for (var t = e ? e.dateObj.getTime() : w.days.firstElementChild.dateObj.getTime(), n = w.parseDate(w.selectedDates[0], void 0, !0).getTime(), a = Math.min(t, w.selectedDates[0].getTime()), i = Math.max(t, w.selectedDates[0].getTime()), o = !1, r = 0, l = 0, c = a; c < i; c += y) X(new Date(c), !0) || (o = o || c > a && c < i, c < n && (!r || c > r) ? r = c : c > n && (!l || c < l) && (l = c)); 853 854 752 for (var d = 0; d < w.config.showMonths; d++) for (var s = w.daysContainer.children[d], u = function (a, i) { 855 var c,753 var c, 856 754 d, 857 755 u, … … 859 757 m = f.dateObj.getTime(), 860 758 g = r > 0 && m < r || l > 0 && m > l; 861 return g ? (f.classList.add("notAllowed"), ["inRange", "startRange", "endRange"].forEach(function (e) { 862 f.classList.remove(e); 863 }), "continue") : o && !g ? "continue" : (["startRange", "inRange", "endRange", "notAllowed"].forEach(function (e) { 864 f.classList.remove(e); 865 }), void (void 0 !== e && (e.classList.add(t <= w.selectedDates[0].getTime() ? "startRange" : "endRange"), n < t && m === n ? f.classList.add("startRange") : n > t && m === n && f.classList.add("endRange"), m >= r && (0 === l || m <= l) && (d = n, u = t, (c = m) > Math.min(d, u) && c < Math.max(d, u)) && f.classList.add("inRange")))); 866 }, f = 0, m = s.children.length; f < m; f++) u(f); 867 } 868 } 869 759 return g ? (f.classList.add("notAllowed"), ["inRange", "startRange", "endRange"].forEach(function (e) { 760 f.classList.remove(e); 761 }), "continue") : o && !g ? "continue" : (["startRange", "inRange", "endRange", "notAllowed"].forEach(function (e) { 762 f.classList.remove(e); 763 }), void (void 0 !== e && (e.classList.add(t <= w.selectedDates[0].getTime() ? "startRange" : "endRange"), n < t && m === n ? f.classList.add("startRange") : n > t && m === n && f.classList.add("endRange"), m >= r && (0 === l || m <= l) && (d = n, u = t, (c = m) > Math.min(d, u) && c < Math.max(d, u)) && f.classList.add("inRange")))); 764 }, f = 0, m = s.children.length; f < m; f++) u(f); 765 } 766 } 870 767 function ie() { 871 768 !w.isOpen || w.config.static || w.config.inline || ce(); 872 769 } 873 874 770 function oe(e) { 875 771 return function (t) { 876 772 var n = w.config["_" + e + "Date"] = w.parseDate(t, w.config.dateFormat), 877 a = w.config["_" + ("min" === e ? "max" : "min") + "Date"];773 a = w.config["_" + ("min" === e ? "max" : "min") + "Date"]; 878 774 void 0 !== n && (w["min" === e ? "minDateHasTime" : "maxDateHasTime"] = n.getHours() > 0 || n.getMinutes() > 0 || n.getSeconds() > 0), w.selectedDates && (w.selectedDates = w.selectedDates.filter(function (e) { 879 775 return X(e); … … 881 777 }; 882 778 } 883 884 779 function re() { 885 780 return w.config.wrap ? p.querySelector("[data-input]") : p; 886 781 } 887 888 782 function le() { 889 783 "object" != typeof w.config.locale && void 0 === T.l10ns[w.config.locale] && w.config.errorHandler(new Error("flatpickr: invalid locale " + w.config.locale)), w.l10n = e(e({}, T.l10ns.default), "object" == typeof w.config.locale ? w.config.locale : "default" !== w.config.locale ? T.l10ns[w.config.locale] : void 0), D.K = "(" + w.l10n.amPM[0] + "|" + w.l10n.amPM[1] + "|" + w.l10n.amPM[0].toLowerCase() + "|" + w.l10n.amPM[1].toLowerCase() + ")", void 0 === e(e({}, v), JSON.parse(JSON.stringify(p.dataset || {}))).time_24hr && void 0 === T.defaultConfig.time_24hr && (w.config.time_24hr = w.l10n.time_24hr), w.formatDate = b(w), w.parseDate = C({ … … 892 786 }); 893 787 } 894 895 788 function ce(e) { 896 789 if ("function" != typeof w.config.position) { … … 898 791 pe("onPreCalendarPosition"); 899 792 var t = e || w._positionElement, 900 n = Array.prototype.reduce.call(w.calendarContainer.children, function (e, t) { 901 return e + t.offsetHeight; 902 }, 0), 903 a = w.calendarContainer.offsetWidth, 904 i = w.config.position.split(" "), 905 o = i[0], 906 r = i.length > 1 ? i[1] : null, 907 l = t.getBoundingClientRect(), 908 c = window.innerHeight - l.bottom, 909 s = "above" === o || "below" !== o && c < n && l.top > n, 910 u = window.pageYOffset + l.top + (s ? -n - 2 : t.offsetHeight + 2); 911 793 n = Array.prototype.reduce.call(w.calendarContainer.children, function (e, t) { 794 return e + t.offsetHeight; 795 }, 0), 796 a = w.calendarContainer.offsetWidth, 797 i = w.config.position.split(" "), 798 o = i[0], 799 r = i.length > 1 ? i[1] : null, 800 l = t.getBoundingClientRect(), 801 c = window.innerHeight - l.bottom, 802 s = "above" === o || "below" !== o && c < n && l.top > n, 803 u = window.pageYOffset + l.top + (s ? -n - 2 : t.offsetHeight + 2); 912 804 if (d(w.calendarContainer, "arrowTop", !s), d(w.calendarContainer, "arrowBottom", s), !w.config.inline) { 913 805 var f = window.pageXOffset + l.left, 914 m = !1,915 g = !1;806 m = !1, 807 g = !1; 916 808 "center" === r ? (f -= (a - l.width) / 2, m = !0) : "right" === r && (f -= a - l.width, g = !0), d(w.calendarContainer, "arrowLeft", !m && !g), d(w.calendarContainer, "arrowCenter", m), d(w.calendarContainer, "arrowRight", g); 917 809 var p = window.document.body.offsetWidth - (window.pageXOffset + l.right), 918 h = f + a > window.document.body.offsetWidth,919 v = p + a > window.document.body.offsetWidth;810 h = f + a > window.document.body.offsetWidth, 811 v = p + a > window.document.body.offsetWidth; 920 812 if (d(w.calendarContainer, "rightMost", h), !w.config.static) if (w.calendarContainer.style.top = u + "px", h) { 921 813 if (v) { … … 923 815 for (var e = null, t = 0; t < document.styleSheets.length; t++) { 924 816 var n = document.styleSheets[t]; 925 926 817 try { 927 818 n.cssRules; … … 929 820 continue; 930 821 } 931 932 822 e = n; 933 823 break; 934 824 } 935 936 825 return null != e ? e : (a = document.createElement("style"), document.head.appendChild(a), a.sheet); 937 826 var a; 938 827 }(); 939 940 828 if (void 0 === D) return; 941 829 var b = window.document.body.offsetWidth, 942 C = Math.max(0, b / 2 - a / 2),943 M = D.cssRules.length,944 y = "{left:" + l.left + "px;right:auto;}";830 C = Math.max(0, b / 2 - a / 2), 831 M = D.cssRules.length, 832 y = "{left:" + l.left + "px;right:auto;}"; 945 833 d(w.calendarContainer, "rightMost", !1), d(w.calendarContainer, "centerMost", !0), D.insertRule(".flatpickr-calendar.centerMost:before,.flatpickr-calendar.centerMost:after" + y, M), w.calendarContainer.style.left = C + "px", w.calendarContainer.style.right = "auto"; 946 834 } else w.calendarContainer.style.left = "auto", w.calendarContainer.style.right = p + "px"; … … 950 838 } else w.config.position(w, e); 951 839 } 952 953 840 function de() { 954 841 w.config.noCalendar || w.isMobile || (K(), De(), J()); 955 842 } 956 957 843 function se() { 958 844 w._input.focus(), -1 !== window.navigator.userAgent.indexOf("MSIE") || void 0 !== navigator.msMaxTouchPoints ? setTimeout(w.close, 0) : w.close(); 959 845 } 960 961 846 function ue(e) { 962 847 e.preventDefault(), e.stopPropagation(); … … 964 849 return e.classList && e.classList.contains("flatpickr-day") && !e.classList.contains("flatpickr-disabled") && !e.classList.contains("notAllowed"); 965 850 }); 966 967 851 if (void 0 !== t) { 968 852 var n = t, 969 a = w.latestSelectedDateObj = new Date(n.dateObj.getTime()),970 i = (a.getMonth() < w.currentMonth || a.getMonth() > w.currentMonth + w.config.showMonths - 1) && "range" !== w.config.mode;853 a = w.latestSelectedDateObj = new Date(n.dateObj.getTime()), 854 i = (a.getMonth() < w.currentMonth || a.getMonth() > w.currentMonth + w.config.showMonths - 1) && "range" !== w.config.mode; 971 855 if (w.selectedDateElem = n, "single" === w.config.mode) w.selectedDates = [a];else if ("multiple" === w.config.mode) { 972 856 var o = ve(a); … … 975 859 return e.getTime() - t.getTime(); 976 860 })); 977 978 861 if (S(), i) { 979 862 var r = w.currentYear !== a.getFullYear(); 980 863 w.currentYear = a.getFullYear(), w.currentMonth = a.getMonth(), r && (pe("onYearChange"), K()), pe("onMonthChange"); 981 864 } 982 983 865 if (De(), J(), be(), i || "range" === w.config.mode || 1 !== w.config.showMonths ? void 0 !== w.selectedDateElem && void 0 === w.hourElement && w.selectedDateElem && w.selectedDateElem.focus() : L(n), void 0 !== w.hourElement && void 0 !== w.hourElement && w.hourElement.focus(), w.config.closeOnSelect) { 984 866 var l = "single" === w.config.mode && !w.config.enableTime, 985 c = "range" === w.config.mode && 2 === w.selectedDates.length && !w.config.enableTime;867 c = "range" === w.config.mode && 2 === w.selectedDates.length && !w.config.enableTime; 986 868 (l || c) && se(); 987 869 } 988 989 870 N(); 990 871 } 991 872 } 992 993 873 w.parseDate = C({ 994 874 config: w.config, … … 1000 880 void 0 !== w.mobileInput && (w.mobileInput.value = ""); 1001 881 w.selectedDates = [], w.latestSelectedDateObj = void 0, !0 === t && (w.currentYear = w._initialDate.getFullYear(), w.currentMonth = w._initialDate.getMonth()); 1002 1003 882 if (!0 === w.config.enableTime) { 1004 883 var n = x(w.config), 1005 a = n.hours,1006 i = n.minutes,1007 o = n.seconds;884 a = n.hours, 885 i = n.minutes, 886 o = n.seconds; 1008 887 O(a, i, o); 1009 888 } 1010 1011 889 w.redraw(), e && pe("onChange"); 1012 890 }, w.close = function () { … … 1015 893 }, w._createElement = s, w.destroy = function () { 1016 894 void 0 !== w.config && pe("onDestroy"); 1017 1018 895 for (var e = w._handlers.length; e--;) w._handlers[e].remove(); 1019 1020 896 if (w._handlers = [], w.mobileInput) w.mobileInput.parentNode && w.mobileInput.parentNode.removeChild(w.mobileInput), w.mobileInput = void 0;else if (w.calendarContainer && w.calendarContainer.parentNode) if (w.config.static && w.calendarContainer.parentNode) { 1021 897 var t = w.calendarContainer.parentNode; 1022 1023 898 if (t.lastChild && t.removeChild(t.lastChild), t.parentNode) { 1024 899 for (; t.firstChild;) t.parentNode.insertBefore(t.firstChild, t); 1025 1026 900 t.parentNode.removeChild(t); 1027 901 } … … 1036 910 }, w.isEnabled = X, w.jumpToDate = P, w.open = function (e, t) { 1037 911 void 0 === t && (t = w._positionElement); 1038 1039 912 if (!0 === w.isMobile) { 1040 913 if (e) { … … 1043 916 n && n.blur(); 1044 917 } 1045 1046 918 return void 0 !== w.mobileInput && (w.mobileInput.focus(), w.mobileInput.click()), void pe("onOpen"); 1047 919 } 1048 1049 920 if (w._input.disabled || w.config.inline) return; 1050 921 var a = w.isOpen; … … 1079 950 }] 1080 951 }; 1081 1082 952 function me(e, t) { 1083 953 var n = []; … … 1089 959 n = [w.parseDate(e, t)]; 1090 960 break; 1091 1092 961 case "multiple": 1093 962 n = e.split(w.config.conjunction).map(function (e) { … … 1095 964 }); 1096 965 break; 1097 1098 966 case "range": 1099 967 n = e.split(w.l10n.rangeSeparator).map(function (e) { … … 1107 975 }); 1108 976 } 1109 1110 977 function ge(e) { 1111 978 return e.slice().map(function (e) { … … 1118 985 }); 1119 986 } 1120 1121 987 function pe(e, t) { 1122 988 if (void 0 !== w.config) { … … 1126 992 } 1127 993 } 1128 1129 994 function he(e) { 1130 995 var t = document.createEvent("Event"); 1131 996 return t.initEvent(e, !0, !0), t; 1132 997 } 1133 1134 998 function ve(e) { 1135 999 for (var t = 0; t < w.selectedDates.length; t++) if (0 === M(w.selectedDates[t], e)) return "" + t; 1136 1137 1000 return !1; 1138 1001 } 1139 1140 1002 function De() { 1141 1003 w.config.noCalendar || w.isMobile || !w.monthNav || (w.yearElements.forEach(function (e, t) { … … 1144 1006 }), w._hidePrevMonthArrow = void 0 !== w.config.minDate && (w.currentYear === w.config.minDate.getFullYear() ? w.currentMonth <= w.config.minDate.getMonth() : w.currentYear < w.config.minDate.getFullYear()), w._hideNextMonthArrow = void 0 !== w.config.maxDate && (w.currentYear === w.config.maxDate.getFullYear() ? w.currentMonth + 1 > w.config.maxDate.getMonth() : w.currentYear > w.config.maxDate.getFullYear())); 1145 1007 } 1146 1147 1008 function we(e) { 1148 1009 return w.selectedDates.map(function (t) { … … 1152 1013 }).join("range" !== w.config.mode ? w.config.conjunction : w.l10n.rangeSeparator); 1153 1014 } 1154 1155 1015 function be(e) { 1156 1016 void 0 === e && (e = !0), void 0 !== w.mobileInput && w.mobileFormatStr && (w.mobileInput.value = void 0 !== w.latestSelectedDateObj ? w.formatDate(w.latestSelectedDateObj, w.mobileFormatStr) : ""), w.input.value = we(w.config.dateFormat), void 0 !== w.altInput && (w.altInput.value = we(w.config.altFormat)), !1 !== e && pe("onValueUpdate"); 1157 1017 } 1158 1159 1018 function Ce(e) { 1160 1019 var t = g(e), 1161 n = w.prevMonthNav.contains(t),1162 a = w.nextMonthNav.contains(t);1020 n = w.prevMonthNav.contains(t), 1021 a = w.nextMonthNav.contains(t); 1163 1022 n || a ? G(n ? -1 : 1) : w.yearElements.indexOf(t) >= 0 ? t.select() : t.classList.contains("arrowUp") ? w.changeYear(w.currentYear + 1) : t.classList.contains("arrowDown") && w.changeYear(w.currentYear - 1); 1164 1023 } 1165 1166 1024 return function () { 1167 1025 w.element = w.input = p, w.isOpen = !1, function () { 1168 1026 var t = ["wrap", "weekNumbers", "allowInput", "allowInvalidPreload", "clickOpens", "time_24hr", "enableTime", "noCalendar", "altInput", "shorthandCurrentMonth", "inline", "static", "enableSeconds", "disableMobile"], 1169 i = e(e({}, JSON.parse(JSON.stringify(p.dataset || {}))), v),1170 o = {};1027 i = e(e({}, JSON.parse(JSON.stringify(p.dataset || {}))), v), 1028 o = {}; 1171 1029 w.config.parseDate = i.parseDate, w.config.formatDate = i.formatDate, Object.defineProperty(w.config, "enable", { 1172 1030 get: function () { … … 1185 1043 }); 1186 1044 var r = "time" === i.mode; 1187 1188 1045 if (!i.dateFormat && (i.enableTime || r)) { 1189 1046 var l = T.defaultConfig.dateFormat || a.dateFormat; 1190 1047 o.dateFormat = i.noCalendar || r ? "H:i" + (i.enableSeconds ? ":S" : "") : l + " H:i" + (i.enableSeconds ? ":S" : ""); 1191 1048 } 1192 1193 1049 if (i.altInput && (i.enableTime || r) && !i.altFormat) { 1194 1050 var d = T.defaultConfig.altFormat || a.altFormat; 1195 1051 o.altFormat = i.noCalendar || r ? "h:i" + (i.enableSeconds ? ":S K" : " K") : d + " h:i" + (i.enableSeconds ? ":S" : "") + " K"; 1196 1052 } 1197 1198 1053 Object.defineProperty(w.config, "minDate", { 1199 1054 get: function () { … … 1207 1062 set: oe("max") 1208 1063 }); 1209 1210 1064 var s = function (e) { 1211 1065 return function (t) { … … 1213 1067 }; 1214 1068 }; 1215 1216 1069 Object.defineProperty(w.config, "minTime", { 1217 1070 get: function () { … … 1226 1079 }), "time" === i.mode && (w.config.noCalendar = !0, w.config.enableTime = !0); 1227 1080 Object.assign(w.config, o, i); 1228 1229 1081 for (var u = 0; u < t.length; u++) w.config[t[u]] = !0 === w.config[t[u]] || "true" === w.config[t[u]]; 1230 1231 1082 n.filter(function (e) { 1232 1083 return void 0 !== w.config[e]; … … 1234 1085 w.config[e] = c(w.config[e] || []).map(E); 1235 1086 }), w.isMobile = !w.config.disableMobile && !w.config.inline && "single" === w.config.mode && !w.config.disable.length && !w.config.enable && !w.config.weekNumbers && /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent); 1236 1237 1087 for (u = 0; u < w.config.plugins.length; u++) { 1238 1088 var f = w.config.plugins[u](w) || {}; 1239 1240 1089 for (var m in f) n.indexOf(m) > -1 ? w.config[m] = c(f[m]).map(E).concat(w.config[m]) : void 0 === i[m] && (w.config[m] = f[m]); 1241 1090 } 1242 1243 1091 i.altInputClass || (w.config.altInputClass = re().className + " " + w.config.altInputClass); 1244 1092 pe("onParseConfig"); … … 1262 1110 }, w.isMobile || function () { 1263 1111 var e = window.document.createDocumentFragment(); 1264 1265 1112 if (w.calendarContainer = s("div", "flatpickr-calendar"), w.calendarContainer.tabIndex = -1, !w.config.noCalendar) { 1266 1113 if (e.appendChild((w.monthNav = s("div", "flatpickr-months"), w.yearElements = [], w.monthElements = [], w.prevMonthNav = s("span", "flatpickr-prev-month"), w.prevMonthNav.innerHTML = w.config.prevArrow, w.nextMonthNav = s("span", "flatpickr-next-month"), w.nextMonthNav.innerHTML = w.config.nextArrow, q(), Object.defineProperty(w, "_hidePrevMonthArrow", { … … 1280 1127 }), w.currentYearElement = w.yearElements[0], De(), w.monthNav)), w.innerContainer = s("div", "flatpickr-innerContainer"), w.config.weekNumbers) { 1281 1128 var t = function () { 1282 w.calendarContainer.classList.add("hasWeeks"); 1283 var e = s("div", "flatpickr-weekwrapper"); 1284 e.appendChild(s("span", "flatpickr-weekday", w.l10n.weekAbbreviation)); 1285 var t = s("div", "flatpickr-weeks"); 1286 return e.appendChild(t), { 1287 weekWrapper: e, 1288 weekNumbers: t 1289 }; 1290 }(), 1291 n = t.weekWrapper, 1292 a = t.weekNumbers; 1293 1129 w.calendarContainer.classList.add("hasWeeks"); 1130 var e = s("div", "flatpickr-weekwrapper"); 1131 e.appendChild(s("span", "flatpickr-weekday", w.l10n.weekAbbreviation)); 1132 var t = s("div", "flatpickr-weeks"); 1133 return e.appendChild(t), { 1134 weekWrapper: e, 1135 weekNumbers: t 1136 }; 1137 }(), 1138 n = t.weekWrapper, 1139 a = t.weekNumbers; 1294 1140 w.innerContainer.appendChild(n), w.weekNumbers = a, w.weekWrapper = n; 1295 1141 } 1296 1297 1142 w.rContainer = s("div", "flatpickr-rContainer"), w.rContainer.appendChild($()), w.daysContainer || (w.daysContainer = s("div", "flatpickr-days"), w.daysContainer.tabIndex = -1), J(), w.rContainer.appendChild(w.daysContainer), w.innerContainer.appendChild(w.rContainer), e.appendChild(w.innerContainer); 1298 1143 } 1299 1300 1144 w.config.enableTime && e.appendChild(function () { 1301 1145 w.calendarContainer.classList.add("hasTime"), w.config.noCalendar && w.calendarContainer.classList.add("noCalendar"); … … 1303 1147 w.timeContainer = s("div", "flatpickr-time"), w.timeContainer.tabIndex = -1; 1304 1148 var t = s("span", "flatpickr-time-separator", ":"), 1305 n = m("flatpickr-hour", {1306 "aria-label": w.l10n.hourAriaLabel1307 });1149 n = m("flatpickr-hour", { 1150 "aria-label": w.l10n.hourAriaLabel 1151 }); 1308 1152 w.hourElement = n.getElementsByTagName("input")[0]; 1309 1153 var a = m("flatpickr-minute", { … … 1315 1159 case 12: 1316 1160 return 12; 1317 1318 1161 default: 1319 1162 return e % 12; 1320 1163 } 1321 1164 }(e.hours)), w.minuteElement.value = o(w.latestSelectedDateObj ? w.latestSelectedDateObj.getMinutes() : e.minutes), w.hourElement.setAttribute("step", w.config.hourIncrement.toString()), w.minuteElement.setAttribute("step", w.config.minuteIncrement.toString()), w.hourElement.setAttribute("min", w.config.time_24hr ? "0" : "1"), w.hourElement.setAttribute("max", w.config.time_24hr ? "23" : "12"), w.hourElement.setAttribute("maxlength", "2"), w.minuteElement.setAttribute("min", "0"), w.minuteElement.setAttribute("max", "59"), w.minuteElement.setAttribute("maxlength", "2"), w.timeContainer.appendChild(n), w.timeContainer.appendChild(t), w.timeContainer.appendChild(a), w.config.time_24hr && w.timeContainer.classList.add("time24hr"); 1322 1323 1165 if (w.config.enableSeconds) { 1324 1166 w.timeContainer.classList.add("hasSeconds"); … … 1326 1168 w.secondElement = i.getElementsByTagName("input")[0], w.secondElement.value = o(w.latestSelectedDateObj ? w.latestSelectedDateObj.getSeconds() : e.seconds), w.secondElement.setAttribute("step", w.minuteElement.getAttribute("step")), w.secondElement.setAttribute("min", "0"), w.secondElement.setAttribute("max", "59"), w.secondElement.setAttribute("maxlength", "2"), w.timeContainer.appendChild(s("span", "flatpickr-time-separator", ":")), w.timeContainer.appendChild(i); 1327 1169 } 1328 1329 1170 w.config.time_24hr || (w.amPM = s("span", "flatpickr-am-pm", w.l10n.amPM[r((w.latestSelectedDateObj ? w.hourElement.value : w.config.defaultHour) > 11)]), w.amPM.title = w.l10n.toggleTitle, w.amPM.tabIndex = -1, w.timeContainer.appendChild(w.amPM)); 1330 1171 return w.timeContainer; … … 1332 1173 d(w.calendarContainer, "rangeMode", "range" === w.config.mode), d(w.calendarContainer, "animate", !0 === w.config.animate), d(w.calendarContainer, "multiMonth", w.config.showMonths > 1), w.calendarContainer.appendChild(e); 1333 1174 var i = void 0 !== w.config.appendTo && void 0 !== w.config.appendTo.nodeType; 1334 1335 1175 if ((w.config.inline || w.config.static) && (w.calendarContainer.classList.add(w.config.inline ? "inline" : "static"), w.config.inline && (!i && w.element.parentNode ? w.element.parentNode.insertBefore(w.calendarContainer, w._input.nextSibling) : void 0 !== w.config.appendTo && w.config.appendTo.appendChild(w.calendarContainer)), w.config.static)) { 1336 1176 var l = s("div", "flatpickr-wrapper"); 1337 1177 w.element.parentNode && w.element.parentNode.insertBefore(l, w.element), l.appendChild(w.element), w.altInput && l.appendChild(w.altInput), l.appendChild(w.calendarContainer); 1338 1178 } 1339 1340 1179 w.config.static || w.config.inline || (void 0 !== w.config.appendTo ? w.config.appendTo : window.document.body).appendChild(w.calendarContainer); 1341 1180 }(), function () { … … 1352 1191 w.input.getAttribute("step") && (w.mobileInput.step = String(w.input.getAttribute("step"))); 1353 1192 w.input.type = "hidden", void 0 !== w.altInput && (w.altInput.type = "hidden"); 1354 1355 1193 try { 1356 1194 w.input.parentNode && w.input.parentNode.insertBefore(w.mobileInput, w.input.nextSibling); 1357 1195 } catch (e) {} 1358 1359 1196 A(w.mobileInput, "change", function (e) { 1360 1197 w.setDate(g(e).value, !1, w.mobileFormatStr), pe("onChange"), pe("onClose"); … … 1371 1208 }), !0 === w.config.clickOpens && (A(w._input, "focus", w.open), A(w._input, "click", w.open)); 1372 1209 void 0 !== w.daysContainer && (A(w.monthNav, "click", Ce), A(w.monthNav, ["keyup", "increment"], F), A(w.daysContainer, "click", ue)); 1373 1374 1210 if (void 0 !== w.timeContainer && void 0 !== w.minuteElement && void 0 !== w.hourElement) { 1375 1211 var t = function (e) { 1376 1212 return g(e).select(); 1377 1213 }; 1378 1379 1214 A(w.timeContainer, ["increment"], I), A(w.timeContainer, "blur", I, { 1380 1215 capture: !0 … … 1385 1220 }); 1386 1221 } 1387 1388 1222 w.config.allowInput && A(w._input, "blur", te); 1389 1223 }(), (w.selectedDates.length || w.config.noCalendar) && (w.config.enableTime && _(w.config.noCalendar ? w.latestSelectedDateObj : void 0), be(!1)), k(); … … 1392 1226 }(), w; 1393 1227 } 1394 1395 1228 function k(e, t) { 1396 1229 for (var n = Array.prototype.slice.call(e).filter(function (e) { 1397 return e instanceof HTMLElement;1398 }), a = [], i = 0; i < n.length; i++) {1230 return e instanceof HTMLElement; 1231 }), a = [], i = 0; i < n.length; i++) { 1399 1232 var o = n[i]; 1400 1401 1233 try { 1402 1234 if (null !== o.getAttribute("data-fp-omit")) continue; … … 1406 1238 } 1407 1239 } 1408 1409 1240 return 1 === a.length ? a[0] : a; 1410 1241 } 1411 1412 1242 "undefined" != typeof HTMLElement && "undefined" != typeof HTMLCollection && "undefined" != typeof NodeList && (HTMLCollection.prototype.flatpickr = NodeList.prototype.flatpickr = function (e) { 1413 1243 return k(this, e); … … 1415 1245 return k([this], e); 1416 1246 }); 1417 1418 1247 var T = function (e, t) { 1419 1248 return "string" == typeof e ? k(window.document.querySelectorAll(e), t) : e instanceof Node ? k([e], t) : k(e, t); 1420 1249 }; 1421 1422 1250 return T.defaultConfig = {}, T.l10ns = { 1423 1251 en: e({}, i), … … 1439 1267 var DEFAULT_FONT_COLOR = '#404040'; 1440 1268 var FORCE_MOBILE_LAYOUT = slpWidgetOptions.force_mobile_layout; 1441 1442 1269 function createSlopeBlock(el, children) { 1443 1270 var className = FORCE_MOBILE_LAYOUT ? 'slope-block' : 'slp-responsive-layout slope-block'; … … 1450 1277 }, children); 1451 1278 } 1452 1453 1279 function createSlopeReservationSection(el, children) { 1454 1280 return el('div', { … … 1456 1282 }, children); 1457 1283 } 1458 1459 1284 function createSlopeReservationDates(el) { 1460 1285 return el('div', { … … 1462 1287 }, [createSlopeReservationSection(el, createSlopeArrival(el)), createSlopeReservationSection(el, createSlopeDeparture(el))]); 1463 1288 } 1464 1465 1289 function createSlopeArrival(el) { 1466 1290 var today = new Date(); … … 1473 1297 }, today.getDate() + ' Ago, ' + today.getFullYear())]); 1474 1298 } 1475 1476 1299 function createSlopeDeparture(el) { 1477 1300 var today = new Date(); … … 1484 1307 }, today.getDate() + 1 + ' Ago, ' + today.getFullYear())]); 1485 1308 } 1486 1487 1309 function createSlopeVerticalDivider(el) { 1488 1310 return el('div', { … … 1490 1312 }); 1491 1313 } 1492 1493 1314 function createSlopeGuestsAndButtonContainer(el) { 1494 1315 return el('div', { … … 1496 1317 }, [createSlopeReservationSection(el, [createSlopeGuests(el)]), createSlopeSubmitButton(el)]); 1497 1318 } 1498 1499 1319 function createSlopeRooms(el) { 1500 1320 return el('div', { … … 1506 1326 }, '1')]); 1507 1327 } 1508 1509 1328 function createSlopeGuests(el) { 1510 1329 return el('div', { … … 1524 1343 }, ' Bambini')])]); 1525 1344 } 1526 1527 1345 function createSlopeSubmitButton(el) { 1528 1346 return el('div', { … … 1538 1356 })]); 1539 1357 } 1540 1541 1358 function createSlopeLanguageSelect(el, languages, props) { 1542 1359 return el('select', { … … 1562 1379 })); 1563 1380 } 1564 1565 1381 return { 1566 1382 createSlopeBlock: createSlopeBlock, … … 1575 1391 var slopeDateRangePicker = function () { 1576 1392 var DEFAULT_PLUGIN_LANG = 'it'; 1577 1578 1393 function init($) { 1579 1394 updateDates(this, this.currentLocale, this.scope); 1580 var $this = this; // This is the most ugly thing i did in my life: 1395 var $this = this; 1396 1397 // This is the most ugly thing i did in my life: 1581 1398 // - in order to make the calendar change top property and showing correctly on top or bottom of the slope-block 1582 1399 // we hide the calender first, then check if the calendar has the class 'arrowBottom' then set we close the calendar 1583 1400 // and finally reopen it. 1584 1585 1401 $(this.scope + '.slope-check-in-wrapper').parent().on('click', function () { 1586 1402 $this.calendarContainer.style.visibility = 'hidden'; … … 1589 1405 var input = document.querySelector($this.scope + ' .slope-block .slope-check-in-input'); 1590 1406 var isBottomCalendar = $this.calendarContainer.getAttribute('class').split(' ').indexOf('arrowBottom') > 0; 1591 1592 1407 if (isBottomCalendar) { 1593 1408 input.style.top = '-8px'; … … 1595 1410 input.style.top = '88px'; 1596 1411 } 1597 1598 1412 $this.close(); 1599 1413 $this.calendarContainer.style.visibility = 'visible'; … … 1608 1422 var input = document.querySelector($this.scope + ' .slope-block .slope-check-in-input'); 1609 1423 var isBottomCalendar = $this.calendarContainer.getAttribute('class').split(' ').indexOf('arrowBottom') > 0; 1610 1611 1424 if (isBottomCalendar) { 1612 1425 input.style.top = '-8px'; … … 1614 1427 input.style.top = '88px'; 1615 1428 } 1616 1617 1429 $this.close(); 1618 1430 $this.calendarContainer.style.visibility = 'visible'; … … 1621 1433 }); 1622 1434 } 1623 1624 1435 function updateDates(self, locale, scope) { 1625 1436 var start = new Date(); 1626 1437 var end = new Date(); 1627 1628 1438 if (!!self.selectedDates && self.selectedDates.length < 2) { 1629 1439 end.setDate(start.getDate() + self.minDays); 1630 1440 self.selectedDates = [start, end]; 1631 } // if (!self.selectedDates[0]) { 1441 } 1442 // if (!self.selectedDates[0]) { 1632 1443 // var checkInDate = document.querySelector(self.scope + '.slope-check-in-input').value.split('/'); 1633 1444 // var checkInDay = checkInDate[0]; … … 1643 1454 // self.selectedDates[1] = new Date(checkOutYear, checkOutMonth, checkOutDay); 1644 1455 // } 1645 1646 1647 1456 var arrival = self.selectedDates[0]; 1648 1457 var departure = self.selectedDates[1]; … … 1652 1461 document.querySelector(scope + '.slope-check-out-input').value = departure.getDate() + '/' + (departure.getMonth() + 1) + '/' + departure.getFullYear(); 1653 1462 } 1654 1655 1463 function create(firstInput, secondInput, appendTo, index, $, options) { 1656 1464 var indexedScope = '[data-widget-count=\"' + index + '\"] '; 1657 1465 var reservationDate = document.querySelector(indexedScope + '.slope-reservation-section-container'); 1658 1659 1466 if (!!reservationDate) { 1660 1467 var pluginLang = reservationDate.getAttribute('data-lang'); 1661 1468 } 1662 1663 1469 var currentLocale = slopeFlatpickrLocaleManager.locale(pluginLang || DEFAULT_PLUGIN_LANG); 1664 1665 1470 var isMobile = function isMobile() { 1666 1471 var check = false; 1667 1668 1472 (function (a) { 1669 1473 if (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0, 4))) check = true; 1670 1474 })(navigator.userAgent || navigator.vendor || window.opera); 1475 return check; 1476 }; 1671 1477 1672 return check; 1673 }; // The dateFormat option is necessary for the form submission to work 1674 1675 1478 // The dateFormat option is necessary for the form submission to work 1676 1479 options = { 1677 1480 mode: "range", … … 1698 1501 return calendar; 1699 1502 } 1700 1701 1503 return { 1702 1504 create: create … … 1724 1526 var s = nth % 100; 1725 1527 if (s > 3 && s < 21) return "th"; 1726 1727 1528 switch (s % 10) { 1728 1529 case 1: 1729 1530 return "st"; 1730 1731 1531 case 2: 1732 1532 return "nd"; 1733 1734 1533 case 3: 1735 1534 return "rd"; 1736 1737 1535 default: 1738 1536 return "th"; … … 1804 1602 time_24hr: true 1805 1603 }; 1806 1807 1604 switch (langCode) { 1808 1605 case 'it': 1809 1606 return Italian; 1810 1811 1607 case 'fr': 1812 1608 return French; 1813 1814 1609 case 'de': 1815 1610 return German; 1816 1817 1611 default: 1818 1612 return English; 1819 1613 } 1820 1614 } 1821 1822 1615 return { 1823 1616 locale: locale … … 1829 1622 this.data = _toJSON($form); 1830 1623 this.requiredFields = requiredFields; 1831 1832 1624 this.isValid = function () { 1833 1625 var self = this; … … 1838 1630 }); 1839 1631 }; 1840 1841 1632 function _toJSON($form) { 1842 1633 var asArray = $form.serializeArray(); … … 1847 1638 return json; 1848 1639 } 1849 1850 1640 this.send = function (url, successCallback) { 1851 1641 jQuery.ajax(url, { … … 1862 1652 CHILDREN: '[data-input="children"]' 1863 1653 }; 1864 1865 1654 function SlopeGuestsWrapper($element) { 1866 1655 this.childrenNextIndex = 0; … … 1868 1657 this.stepperContainer = $element.siblings('.slope-stepper-container'); 1869 1658 this.rooms = [new SlopeRoom(0, this.stepperContainer.find('[data-container="guests"]'), this.$element.find(SLOPE_ROOM_FORM_SELECTORS.ADULTS), $element)]; 1870 1871 1659 this.updateGuests = function () { 1872 1660 var self = this; … … 1885 1673 }); 1886 1674 }; 1887 1888 1675 this.reset = function () { 1889 1676 this.rooms.forEach(function (room, index) { … … 1902 1689 this.updateGuests(); 1903 1690 }; 1904 1905 1691 this.calculateStepperTop = function () { 1906 1692 var isMobile = function isMobile() { 1907 1693 var check = false; 1908 1909 1694 (function (a) { 1910 1695 if (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0, 4))) check = true; 1911 1696 })(navigator.userAgent || navigator.vendor || window.opera); 1697 return check; 1698 }; 1912 1699 1913 return check; 1914 }; // We append the stepper container to the body of the page to avoid z-index to depend on the container 1915 1916 1700 // We append the stepper container to the body of the page to avoid z-index to depend on the container 1917 1701 document.querySelector('body').appendChild(this.stepperContainer[0]); 1918 1702 var slopeBlockBounds = this.$element.parentsUntil('.slope-block').parent()[0].getBoundingClientRect(); … … 1922 1706 this.stepperContainer.css('left', left + 'px'); 1923 1707 }; 1924 1925 1708 this.openGuestsSelection = function () { 1926 1709 this.stepperContainer.show(); 1927 1710 }; 1928 1929 1711 this.closeGuestsSelection = function () { 1930 1712 this.stepperContainer.hide(); 1931 1713 }; 1932 1933 1714 this.handleClickOutsideGuestsSelection = function (event) { 1934 1715 var containers = Array.from(document.querySelectorAll('.slope-stepper-container')); 1935 1716 var isStepperContainerVisible = this.stepperContainer.css('display') !== 'none'; 1936 1937 1717 if (containers.length > 0 && this.$element.parent().find(event.target).length === 0 && !this.$element.parent().is(event.target) && this.stepperContainer.find(event.target).length === 0 && isStepperContainerVisible) { 1938 1718 this.updateGuests(); … … 1940 1720 } 1941 1721 }; 1942 1943 1722 this.init = function ($) { 1944 1723 this.updateGuests(); … … 1968 1747 return; 1969 1748 } 1970 1971 1749 var adultsInputClone = self.$element.find(SLOPE_ROOM_FORM_SELECTORS.ADULTS).first().clone(); 1972 1750 adultsInputClone.appendTo(self.$element); … … 1978 1756 return; 1979 1757 } 1980 1981 1758 self.$element.find(SLOPE_ROOM_FORM_SELECTORS.ADULTS).last().remove(); 1982 1759 var lastRoom = self.rooms.pop(); … … 1993 1770 CHILDREN: "reservation[guestCounts][__name__][childrenAges][__childrenAgesName__]" 1994 1771 }; 1995 1996 1772 function SlopeRoom(index, $element, adultsInput, guestsWrapper) { 1997 1773 this.index = index; … … 2001 1777 this.guestsWrapper = guestsWrapper; 2002 1778 this.$element = null; 2003 2004 1779 this.update = function () { 2005 1780 var adultsInput = this.$element.find('[data-sync-trigger="adults"]'); … … 2009 1784 this.adultsInput.val(this.adultsCount); 2010 1785 }; 2011 2012 1786 this.reset = function () { 2013 1787 this.adultsCount = 2; … … 2015 1789 this.update(); 2016 1790 }; 2017 2018 1791 if (index > 0) { 2019 1792 // The element is not the first so we have to clone the first one is not passed this means we have to clone one … … 2024 1797 this.$element = $element; 2025 1798 } 2026 2027 1799 this.adultsInput.attr('name', SLOPE_NAME_PROTOTYPES.ADULTS.replace(new RegExp('__name__', 'g'), this.index)); 2028 1800 var roomLabel = this.$element.find('[data-label="room"]'); … … 2042 1814 self.decrementChildren(); 2043 1815 }); 2044 2045 1816 this.incrementAdults = function () { 2046 1817 this.adultsCount += this.adultsCount < 99 ? 1 : 0; … … 2048 1819 input.val(this.adultsCount); 2049 1820 }; 2050 2051 1821 this.decrementAdults = function () { 2052 1822 this.adultsCount -= this.adultsCount > 1 ? 1 : 0; … … 2054 1824 input.val(this.adultsCount); 2055 1825 }; 2056 2057 1826 this.incrementChildren = function () { 2058 1827 this.childrenCount += this.childrenCount < 99 ? 1 : 0; … … 2067 1836 stepperInput.val(this.childrenCount); 2068 1837 }; 2069 2070 1838 this.decrementChildren = function () { 2071 1839 this.childrenCount -= this.childrenCount > 0 ? 1 : 0; … … 2074 1842 stepperInput.val(this.childrenCount); 2075 1843 }; 2076 2077 1844 this.destroy = function () { 2078 1845 this.$element.remove(); … … 2084 1851 Array.from = function () { 2085 1852 var toStr = Object.prototype.toString; 2086 2087 1853 var isCallable = function isCallable(fn) { 2088 1854 return typeof fn === 'function' || toStr.call(fn) === '[object Function]'; 2089 1855 }; 2090 2091 1856 var toInteger = function toInteger(value) { 2092 1857 var number = Number(value); 2093 2094 1858 if (isNaN(number)) { 2095 1859 return 0; 2096 1860 } 2097 2098 1861 if (number === 0 || !isFinite(number)) { 2099 1862 return number; 2100 1863 } 2101 2102 1864 return (number > 0 ? 1 : -1) * Math.floor(Math.abs(number)); 2103 1865 }; 2104 2105 1866 var maxSafeInteger = Math.pow(2, 53) - 1; 2106 2107 1867 var toLength = function toLength(value) { 2108 1868 var len = toInteger(value); 2109 1869 return Math.min(Math.max(len, 0), maxSafeInteger); 2110 }; // The length property of the from method is 1.1870 }; 2111 1871 1872 // The length property of the from method is 1. 1873 return function from(arrayLike /*, mapFn, thisArg */) { 1874 // 1. Let C be the this value. 1875 var C = this; 2112 1876 2113 return function from(arrayLike 2114 /*, mapFn, thisArg */ 2115 ) { 2116 // 1. Let C be the this value. 2117 var C = this; // 2. Let items be ToObject(arrayLike). 1877 // 2. Let items be ToObject(arrayLike). 1878 var items = Object(arrayLike); 2118 1879 2119 var items = Object(arrayLike); // 3. ReturnIfAbrupt(items). 2120 1880 // 3. ReturnIfAbrupt(items). 2121 1881 if (arrayLike == null) { 2122 1882 throw new TypeError('Array.from requires an array-like object - not null or undefined'); 2123 } // 4. If mapfn is undefined, then let mapping be false.1883 } 2124 1884 2125 1885 // 4. If mapfn is undefined, then let mapping be false. 2126 1886 var mapFn = arguments.length > 1 ? arguments[1] : void undefined; 2127 1887 var T; 2128 2129 1888 if (typeof mapFn !== 'undefined') { 2130 1889 // 5. else … … 2132 1891 if (!isCallable(mapFn)) { 2133 1892 throw new TypeError('Array.from: when provided, the second argument must be a function'); 2134 } // 5. b. If thisArg was supplied, let T be thisArg; else let T be undefined.1893 } 2135 1894 2136 1895 // 5. b. If thisArg was supplied, let T be thisArg; else let T be undefined. 2137 1896 if (arguments.length > 2) { 2138 1897 T = arguments[2]; 2139 1898 } 2140 } // 10. Let lenValue be Get(items, "length"). 1899 } 1900 1901 // 10. Let lenValue be Get(items, "length"). 2141 1902 // 11. Let len be ToLength(lenValue). 1903 var len = toLength(items.length); 2142 1904 2143 2144 var len = toLength(items.length); // 13. If IsConstructor(C) is true, then 1905 // 13. If IsConstructor(C) is true, then 2145 1906 // 13. a. Let A be the result of calling the [[Construct]] internal method 2146 1907 // of C with an argument list containing the single item len. 2147 1908 // 14. a. Else, Let A be ArrayCreate(len). 1909 var A = isCallable(C) ? Object(new C(len)) : new Array(len); 2148 1910 2149 var A = isCallable(C) ? Object(new C(len)) : new Array(len); // 16. Let k be 0. 2150 2151 var k = 0; // 17. Repeat, while k < len… (also steps a - h) 2152 1911 // 16. Let k be 0. 1912 var k = 0; 1913 // 17. Repeat, while k < len… (also steps a - h) 2153 1914 var kValue; 2154 2155 1915 while (k < len) { 2156 1916 kValue = items[k]; 2157 2158 1917 if (mapFn) { 2159 1918 A[k] = typeof T === 'undefined' ? mapFn(kValue, k) : mapFn.call(T, kValue, k); … … 2161 1920 A[k] = kValue; 2162 1921 } 2163 2164 1922 k += 1; 2165 } // 18. Let putStatus be Put(A, "length", len, true). 2166 2167 2168 A.length = len; // 20. Return A. 2169 1923 } 1924 // 18. Let putStatus be Put(A, "length", len, true). 1925 A.length = len; 1926 // 20. Return A. 2170 1927 return A; 2171 1928 }; -
slope-widgets/trunk/js/slope-promotions.js
r3294822 r3415084 3 3 // NOTE: This is the code of the latest promotion widget. Code for legacy promotions widget is placed in the file 4 4 // slope-widgets.js 5 5 6 document.addEventListener('DOMContentLoaded', function () { 6 7 var slopePromotionsShortcodes = document.querySelectorAll('[data-role="slope-promo"]'); … … 24 25 // Remove loading spinner 25 26 var loadingElement = slopePromotionsShortcode.querySelector(".slp-loading-indicator"); 26 27 27 if (loadingElement) { 28 28 loadingElement.remove(); 29 29 } 30 31 30 if (response.success && response.data) { 32 31 slopePromotionsShortcode.innerHTML = response.data.html; 33 32 initializePromotionCards(slopePromotionsShortcode); 34 33 } 35 36 34 if (response.data && response.data.error) { 37 35 console.error("Error fetching promotions:", response.data.error); … … 49 47 }); 50 48 }); 51 52 49 function initializePromotionCards(shortcodeElement) { 53 50 var promotionCards = shortcodeElement.querySelectorAll('.slp-promotion-card'); 54 55 51 if (document.querySelectorAll("[data-open-new-tab]").length > 0) { 56 52 shortcodeElement.querySelectorAll(".slp-reserve-button").forEach(function (promotionButton) { … … 58 54 }); 59 55 } 60 61 56 promotionCards.forEach(function (card) { 62 57 var promotionId = card.dataset.promotionId; 63 58 var modal = shortcodeElement.querySelector("#modal-".concat(promotionId)); 64 59 var openButtons = card.querySelectorAll('[data-action="open-modal"]'); 65 var closeButton = modal.querySelector('.slp-close-modal-button'); // Open modal handlers60 var closeButton = modal.querySelector('.slp-close-modal-button'); 66 61 62 // Open modal handlers 67 63 openButtons.forEach(function (button) { 68 64 button.addEventListener('click', function () { 69 65 return openModal(modal); 70 66 }); 71 }); // Close modal handler67 }); 72 68 69 // Close modal handler 73 70 closeButton.addEventListener('click', function () { 74 71 return closeModal(modal); 75 }); // Close on outside click72 }); 76 73 74 // Close on outside click 77 75 modal.addEventListener('click', function (e) { 78 76 if (e.target === modal) { … … 80 78 } 81 79 }); 82 }); // Modal functions80 }); 83 81 82 // Modal functions 84 83 function openModal(modal) { 85 84 modal.classList.add('slp-modal-visible'); … … 88 87 document.body.style.overflow = 'hidden'; // Prevent background scrolling 89 88 } 90 91 89 function closeModal(modal) { 92 90 modal.classList.add('slp-modal-hidden'); … … 94 92 modal.setAttribute('aria-hidden', 'true'); 95 93 document.body.style.overflow = ''; // Restore background scrolling 96 } // When ESC key is pressed, close all open modals94 } 97 95 98 96 // When ESC key is pressed, close all open modals 99 97 document.addEventListener('keydown', function (e) { 100 98 if (e.key === 'Escape') { -
slope-widgets/trunk/js/slope-widgets.js
r3385288 r3415084 8 8 new SlopeGuestsWrapper($(widget).find(".slope-guests-wrapper")).init($); 9 9 }); 10 }); // Packages and promotions10 }); 11 11 12 // Packages and promotions 12 13 /** 13 14 * Widget object to isolate all the logic needed from a widget. 14 15 */ 15 16 16 var WidgetManager = function () { 17 17 /** … … 20 20 */ 21 21 var establishmentID; 22 22 23 /** 23 24 * Domain. The default value gets overridden in testing scenarios (e.g. //test.booking.slope.it). 24 25 * @var {string} 25 26 */ 27 var domain; 26 28 27 var domain;28 29 /** 29 30 * Language. The language in which the widget must be rendered. 30 31 */ 32 var language; 31 33 32 var language;33 34 /** 34 35 * Controller action representing the path fo the widget we want to retrieve. 35 36 * @var {string} 36 37 */ 37 38 38 var widgetAction = "search"; 39 39 return { … … 51 51 domain = widgetDomain || "booking.slope.it"; 52 52 domain = "https://" + domain; 53 54 53 switch (type) { 55 54 case "promotions": 56 55 widgetAction = "promotions"; 57 56 break; 58 59 57 case "search": 60 58 default: … … 63 61 } 64 62 }, 65 66 63 /** 67 64 * Returns the url of the action that generates the JSONp for the desired widget. … … 72 69 return domain + "/widgets/" + widgetAction + "/" + establishmentID + (language ? "/" + language : ""); 73 70 }, 74 75 71 /** 76 72 * Returns the url for json widget. … … 78 74 * @returns {string} 79 75 */ 76 80 77 getBookingEngineUrl: function getBookingEngineUrl(promotionID) { 81 78 return domain + "/" + establishmentID + "/promotions/" + promotionID; 82 79 }, 83 84 80 /** 85 81 * Returns the full url to the css resource. … … 92 88 }; 93 89 }(); 90 94 91 /** 95 92 * Used to embed our legacy promotions widget into external websites. 96 93 */ 97 98 99 94 jQuery(document).ready(function ($) { 100 95 // TODO: This code is for legacy promotions. It is going to be removed in the future. 101 96 if ($("#slope-promotions").length) { 102 97 WidgetManager.create($("#slope-promotions").attr("data-id"), $("#slope-bl").attr("data-domain"), "promotions"); 103 104 98 if ($("#widget-css").length === 0) { 105 99 $("head").append("<link id=\"widget-css\" rel=\"stylesheet\" type=\"text/css\" href=\"".concat(WidgetManager.getCSSResource(), "\" />")); 106 100 } 107 108 101 $.get(WidgetManager.getWidgetUrl(), null, function (data) { 109 102 $("#slope-promotions").html(data.html); // Inject HTML in the page. 103 110 104 // Book engine in new window Promotions 111 112 105 if (document.querySelectorAll("[data-open-new-tab]").length > 0) { 113 106 var widgetElement = document.getElementById("slope-promotions"); -
slope-widgets/trunk/languages/slope-widgets-en_US.po
r3385288 r3415084 2 2 msgstr "" 3 3 "Project-Id-Version: Slope Widgets\n" 4 "POT-Creation-Date: 2025-1 0-17 16:17+0200\n"5 "PO-Revision-Date: 2025-1 0-17 16:17+0200\n"4 "POT-Creation-Date: 2025-12-04 17:27+0100\n" 5 "PO-Revision-Date: 2025-12-05 08:58+0100\n" 6 6 "Last-Translator: \n" 7 7 "Language-Team: \n" … … 28 28 msgstr "Invalid Establishment ID." 29 29 30 #: includes/admin/Promotions.php:9 330 #: includes/admin/Promotions.php:92 31 31 msgid "Id Struttura non impostato" 32 msgstr "Establishment ID not set ted"33 34 #: includes/admin/Promotions.php:2 09 includes/admin/Reservations.php:39232 msgstr "Establishment ID not set" 33 34 #: includes/admin/Promotions.php:212 includes/admin/Reservations.php:393 35 35 msgid "Una delle proprietà non è valida, controllare i valori e riprovare" 36 msgstr "One of the properties is invalid, check the values and try again"36 msgstr "One of the properties is invalid, check values and try again" 37 37 38 38 #: includes/pages/global-settings/index.php:14 … … 75 75 "francese e tedesco (it, en, fr, de)." 76 76 msgstr "" 77 "The languages supported by the booking bar are Italian, English, French and "77 "The languages supported by the booking bar are Italian, English, French and " 78 78 "German (it, en, fr, de)." 79 79 … … 136 136 #: includes/pages/global-settings/partials/form.php:40 137 137 msgid "ID Struttura Slope" 138 msgstr "Slope StructureID"138 msgstr "Slope Establishment ID" 139 139 140 140 #: includes/pages/global-settings/partials/form.php:46 … … 498 498 #: slope-promotions-legacy.php:37 499 499 msgid "ID struttura" 500 msgstr " HotelID"500 msgstr "Establishment ID" 501 501 502 502 #: slope-promotions-legacy.php:39 503 503 msgid "Il tuo Slope ID" 504 msgstr "Your Slope hotelID"504 msgstr "Your Slope establishment ID" 505 505 506 506 #: slope-promotions-legacy.php:55 … … 558 558 "i pacchetti e le promozioni tramite shortcode personalizzabili." 559 559 msgstr "" 560 "Add Slope to your WordPress site! This plugin allows you to insert the " 561 "reservations bar and the promotion cards in your website thanks to shortcodes." 560 "Add Slope widgets to your WordPress site! This plugin allows you to insert " 561 "the reservations bar and the promotion cards in your website via customizable " 562 "shortcodes." 562 563 563 564 #. Author of the plugin/theme -
slope-widgets/trunk/languages/slope-widgets.pot
r3385288 r3415084 3 3 msgstr "" 4 4 "Project-Id-Version: Slope Widgets\n" 5 "POT-Creation-Date: 2025-1 0-17 16:17+0200\n"5 "POT-Creation-Date: 2025-12-05 08:49+0100\n" 6 6 "PO-Revision-Date: 2018-01-04 14:50+0100\n" 7 7 "Last-Translator: \n" … … 27 27 msgstr "" 28 28 29 #: includes/admin/Promotions.php:9 329 #: includes/admin/Promotions.php:92 30 30 msgid "Id Struttura non impostato" 31 31 msgstr "" 32 32 33 #: includes/admin/Promotions.php:2 09 includes/admin/Reservations.php:39233 #: includes/admin/Promotions.php:212 includes/admin/Reservations.php:393 34 34 msgid "Una delle proprietà non è valida, controllare i valori e riprovare" 35 35 msgstr "" -
slope-widgets/trunk/readme.txt
r3385288 r3415084 5 5 Requires at least: 5.6 6 6 Requires PHP: 7.0 7 Tested up to: 6. 88 Stable tag: 4.3. 37 Tested up to: 6.9 8 Stable tag: 4.3.4 9 9 License: GPLv2 or later 10 10 License URI: http://www.gnu.org/licenses/gpl-2.0.html … … 40 40 == Changelog == 41 41 42 = 4.3.4 = 43 * Bugfix e correzioni minori 44 42 45 = 4.3.3 = 43 46 * Possibilità di indicare l'età minima dei bambini nelle impostazioni del plugin -
slope-widgets/trunk/slope-widgets.php
r3385288 r3415084 3 3 * Plugin Name: Slope Widgets 4 4 * Description: Aggiungi i widget di Slope al sito web WordPress della tua struttura ricettiva! Questo plugin ti permette di mostrare la barra delle prenotazioni, i pacchetti e le promozioni tramite shortcode personalizzabili. 5 * Version: 4.3. 35 * Version: 4.3.4 6 6 * Author: Slope 7 7 * Author URI: https://www.slope.it/ … … 16 16 17 17 // We use this constant to invalidate the cache of the plugin's assets 18 const SLOPE_WIDGETS_CACHE_BUST_VERSION = '4.3. 3';18 const SLOPE_WIDGETS_CACHE_BUST_VERSION = '4.3.4'; 19 19 20 20 // Current version of the database schema. It is used to check if the database schema needs to be updated. … … 34 34 // more data on actual requests. 35 35 define( 36 'SLOPE_PR MOTIONS_CACHE_EXPIRATION_SECONDS',37 getenv('SLOPE_PR MOTIONS_CACHE_EXPIRATION_SECONDS') !== false ? getenv('SLOPE_PRMOTIONS_CACHE_EXPIRATION_SECONDS') : 12036 'SLOPE_PROMOTIONS_CACHE_EXPIRATION_SECONDS', 37 getenv('SLOPE_PROMOTIONS_CACHE_EXPIRATION_SECONDS') !== false ? getenv('SLOPE_PROMOTIONS_CACHE_EXPIRATION_SECONDS') : 120 38 38 ); 39 39
Note: See TracChangeset
for help on using the changeset viewer.