Lines 389-394
$("#placeBookingModal").on("show.bs.modal", function (e) {
Link Here
|
389 |
periodPicker.config.disable.push(function dateDisable( |
389 |
periodPicker.config.disable.push(function dateDisable( |
390 |
date |
390 |
date |
391 |
) { |
391 |
) { |
|
|
392 |
|
392 |
// set local copy of selectedDates |
393 |
// set local copy of selectedDates |
393 |
let selectedDates = periodPicker.selectedDates; |
394 |
let selectedDates = periodPicker.selectedDates; |
394 |
|
395 |
|
Lines 813-820
$("#placeBookingModal").on("show.bs.modal", function (e) {
Link Here
|
813 |
); |
814 |
); |
814 |
const startDate = periodPicker.selectedDates[0] |
815 |
const startDate = periodPicker.selectedDates[0] |
815 |
? dayjs(periodPicker.selectedDates[0]).startOf( |
816 |
? dayjs(periodPicker.selectedDates[0]).startOf( |
816 |
"day" |
817 |
"day" |
817 |
) |
818 |
) |
818 |
: null; |
819 |
: null; |
819 |
|
820 |
|
820 |
const leadStart = startDate |
821 |
const leadStart = startDate |
Lines 824-829
$("#placeBookingModal").on("show.bs.modal", function (e) {
Link Here
|
824 |
const trailStart = hoverDate; |
825 |
const trailStart = hoverDate; |
825 |
const trailEnd = hoverDate.add(trailDays, "day"); |
826 |
const trailEnd = hoverDate.add(trailDays, "day"); |
826 |
|
827 |
|
|
|
828 |
let leadDisable = false; |
829 |
let trailDisable = false; |
827 |
periodPicker.calendarContainer |
830 |
periodPicker.calendarContainer |
828 |
.querySelectorAll(".flatpickr-day") |
831 |
.querySelectorAll(".flatpickr-day") |
829 |
.forEach(function (dayElem) { |
832 |
.forEach(function (dayElem) { |
Lines 838-844
$("#placeBookingModal").on("show.bs.modal", function (e) {
Link Here
|
838 |
dayElem.classList.toggle( |
841 |
dayElem.classList.toggle( |
839 |
"leadRange", |
842 |
"leadRange", |
840 |
elemDate.isSameOrAfter(leadStart) && |
843 |
elemDate.isSameOrAfter(leadStart) && |
841 |
elemDate.isBefore(leadEnd) |
844 |
elemDate.isBefore(leadEnd) |
842 |
); |
845 |
); |
843 |
dayElem.classList.toggle( |
846 |
dayElem.classList.toggle( |
844 |
"leadRangeEnd", |
847 |
"leadRangeEnd", |
Lines 851-867
$("#placeBookingModal").on("show.bs.modal", function (e) {
Link Here
|
851 |
dayElem.classList.toggle( |
854 |
dayElem.classList.toggle( |
852 |
"trailRange", |
855 |
"trailRange", |
853 |
elemDate.isAfter(trailStart) && |
856 |
elemDate.isAfter(trailStart) && |
854 |
elemDate.isSameOrBefore(trailEnd) |
857 |
elemDate.isSameOrBefore(trailEnd) |
855 |
); |
858 |
); |
856 |
dayElem.classList.toggle( |
859 |
dayElem.classList.toggle( |
857 |
"trailRangeEnd", |
860 |
"trailRangeEnd", |
858 |
elemDate.isSame(trailEnd) |
861 |
elemDate.isSame(trailEnd) |
859 |
); |
862 |
); |
|
|
863 |
// If we're overlapping a disabled date, disable our hoverDate |
864 |
if (dayElem.classList.contains("flatpickr-disabled")) { |
865 |
if (elemDate.isSameOrAfter(leadStart) && elemDate.isBefore(leadEnd)) { |
866 |
leadDisable = true; |
867 |
} |
868 |
if (elemDate.isAfter(trailStart) && |
869 |
elemDate.isSameOrBefore(trailEnd)) { |
870 |
trailDisable = true; |
871 |
} |
872 |
} |
873 |
dayElem.classList.remove("leadDisable"); |
874 |
dayElem.classList.remove("trailDisable"); |
875 |
dayElem.removeEventListener('click', disableClick, true); |
860 |
}); |
876 |
}); |
|
|
877 |
|
878 |
if (leadDisable) { |
879 |
target.classList.add("leadDisable"); |
880 |
} |
881 |
if (trailDisable) { |
882 |
target.classList.add("trailDisable"); |
883 |
} |
884 |
if (trailDisable || leadDisable) { |
885 |
target.addEventListener('click', disableClick, true); |
886 |
} |
861 |
} |
887 |
} |
862 |
} |
888 |
} |
863 |
); |
889 |
); |
864 |
|
890 |
|
|
|
891 |
function disableClick(e) { |
892 |
e.stopImmediatePropagation(); |
893 |
} |
894 |
|
865 |
// Enable flatpickr now we have date function populated |
895 |
// Enable flatpickr now we have date function populated |
866 |
periodPicker.redraw(); |
896 |
periodPicker.redraw(); |
867 |
|
897 |
|
868 |
- |
|
|