|
521 | 521 | // Maximum Selected Days
|
522 | 522 | let maxSelDays = this.fConfigs.maxSelDays;
|
523 | 523 |
|
524 |
| - if (maxSelDays && itemTime >= startDate.getTime() && diffDays > maxSelDays) { |
| 524 | + if (maxSelDays && itemTime >= startDate.getTime() && diffDays >= maxSelDays) { |
525 | 525 | startDate.setDate(startDate.getDate() + (maxSelDays - 1));
|
526 | 526 | this.calendar.dateRange.end.date = helpCalendar.formatDate(startDate);
|
527 | 527 | }
|
528 | 528 |
|
529 |
| - if (maxSelDays && itemTime < startDate.getTime() && diffDays > maxSelDays) { |
| 529 | + if (maxSelDays && itemTime < startDate.getTime() && diffDays >= maxSelDays) { |
530 | 530 | startDate.setDate(startDate.getDate() - (maxSelDays - 1));
|
531 | 531 | this.calendar.dateRange.start.date = helpCalendar.formatDate(startDate);
|
532 | 532 | }
|
|
659 | 659 | if (this.calendar.dateRange.start.date) {
|
660 | 660 | let itemDate = helpCalendar.getDateFromFormat(item.date).getTime();
|
661 | 661 | let thisDate = helpCalendar.getDateFromFormat(date).getTime();
|
662 |
| - let startDate = helpCalendar.getDateFromFormat(this.calendar.dateRange.start.date).getTime(); |
| 662 | + let startDate = helpCalendar.getDateFromFormat(this.calendar.dateRange.start.date); |
663 | 663 |
|
664 |
| - this.listCalendars[e].weeks[f].days[i].isMouseToLeft = (itemDate === startDate && thisDate > startDate) || (itemDate === thisDate && thisDate < startDate); |
665 |
| - this.listCalendars[e].weeks[f].days[i].isMouseToRight = (itemDate === startDate && thisDate < startDate) || (itemDate === thisDate && thisDate > startDate); |
| 664 | + this.listCalendars[e].weeks[f].days[i].isMouseToLeft = (itemDate === startDate.getTime() && thisDate > startDate.getTime()) || (itemDate === thisDate && thisDate < startDate.getTime()); |
| 665 | + this.listCalendars[e].weeks[f].days[i].isMouseToRight = (itemDate === startDate.getTime() && thisDate < startDate.getTime()) || (itemDate === thisDate && thisDate > startDate.getTime()); |
666 | 666 |
|
667 | 667 | let dateDay = helpCalendar.getDateFromFormat(item.date).getDay() - 1;
|
668 | 668 | if (dateDay === -1) {
|
|
671 | 671 |
|
672 | 672 | let dayOfWeekString = this.fConfigs.dayNames[dateDay];
|
673 | 673 | if (!this.fConfigs.disabledDayNames.includes(dayOfWeekString) &&
|
674 |
| - ((itemDate > startDate && itemDate < thisDate) |
| 674 | + ((itemDate > startDate.getTime() && itemDate < thisDate) |
675 | 675 | ||
|
676 |
| - (itemDate < startDate && itemDate > thisDate)) |
| 676 | + (itemDate < startDate.getTime() && itemDate > thisDate)) |
677 | 677 | ) {
|
678 | 678 | this.listCalendars[e].weeks[f].days[i].isMarked = true;
|
679 | 679 | }
|
680 | 680 |
|
| 681 | + if (!this.calendar.dateRange.end.date && itemDate === thisDate) { |
| 682 | + this.listCalendars[e].weeks[f].days[i].isHovered = true; |
| 683 | + } |
| 684 | +
|
681 | 685 | if (this.checkSelDates('min', this.calendar.dateRange.start.date, item.date, date)) {
|
682 | 686 | this.listCalendars[e].weeks[f].days[i].isMarked = true;
|
| 687 | +
|
| 688 | + let minDateToRight, minDateToLeft; |
| 689 | + minDateToLeft = new Date(startDate.getTime()); |
| 690 | + minDateToRight = new Date(startDate.getTime()); |
| 691 | + minDateToLeft.setDate(minDateToLeft.getDate() - this.fConfigs.minSelDays + 1); |
| 692 | + minDateToRight.setDate(minDateToRight.getDate() + this.fConfigs.minSelDays - 1); |
| 693 | +
|
| 694 | + if (thisDate >= minDateToLeft.getTime() && helpCalendar.formatDate(minDateToLeft) === item.date) { |
| 695 | + this.listCalendars[e].weeks[f].days[i].isMarked = false; |
| 696 | + this.listCalendars[e].weeks[f].days[i].isMouseToLeft = true; |
| 697 | + this.listCalendars[e].weeks[f].days[i].isHovered = true; |
| 698 | + } else if (thisDate <= minDateToRight.getTime() && helpCalendar.formatDate(minDateToRight) === item.date) { |
| 699 | + this.listCalendars[e].weeks[f].days[i].isMarked = false; |
| 700 | + this.listCalendars[e].weeks[f].days[i].isMouseToRight = true; |
| 701 | + this.listCalendars[e].weeks[f].days[i].isHovered = true; |
| 702 | + } |
683 | 703 | }
|
684 | 704 |
|
685 | 705 | if (this.checkSelDates('max', this.calendar.dateRange.start.date, item.date, date)) {
|
686 | 706 | this.listCalendars[e].weeks[f].days[i].isMarked = false;
|
687 |
| - } |
688 |
| -
|
689 |
| - if (!this.calendar.dateRange.end.date && itemDate === thisDate) { |
690 |
| - this.listCalendars[e].weeks[f].days[i].isHovered = true; |
691 |
| -
|
| 707 | + this.listCalendars[e].weeks[f].days[i].isHovered = false; |
| 708 | + this.listCalendars[e].weeks[f].days[i].isMouseToLeft = false; |
| 709 | + this.listCalendars[e].weeks[f].days[i].isMouseToRight = false; |
| 710 | +
|
| 711 | + let maxDateToLeft, maxDateToRight; |
| 712 | + maxDateToLeft = new Date(startDate.getTime()); |
| 713 | + maxDateToRight = new Date(startDate.getTime()); |
| 714 | + maxDateToLeft.setDate(maxDateToLeft.getDate() - this.fConfigs.maxSelDays + 1); |
| 715 | + maxDateToRight.setDate(maxDateToRight.getDate() + this.fConfigs.maxSelDays - 1); |
| 716 | +
|
| 717 | + if (thisDate <= maxDateToLeft.getTime()) { |
| 718 | + if (helpCalendar.formatDate(maxDateToLeft) === item.date) { |
| 719 | + this.listCalendars[e].weeks[f].days[i].isHovered = true; |
| 720 | + this.listCalendars[e].weeks[f].days[i].isMouseToLeft = true; |
| 721 | + } |
| 722 | + } |
| 723 | +
|
| 724 | + if (thisDate >= maxDateToRight.getTime()) { |
| 725 | + if (helpCalendar.formatDate(maxDateToRight) === item.date) { |
| 726 | + this.listCalendars[e].weeks[f].days[i].isHovered = true; |
| 727 | + this.listCalendars[e].weeks[f].days[i].isMouseToRight = true; |
| 728 | + } |
| 729 | + } |
692 | 730 | }
|
693 | 731 | }
|
694 | 732 | }
|
|
962 | 1000 | let itemTime = helpCalendar.getDateFromFormat(itemDate).getTime();
|
963 | 1001 | let hoverTime = helpCalendar.getDateFromFormat(hoverDate).getTime();
|
964 | 1002 |
|
965 |
| - let days = type === 'min' ? this.fConfigs.minSelDays : this.fConfigs.maxSelDays - 1; |
| 1003 | + let days = type === 'min' ? this.fConfigs.minSelDays : this.fConfigs.maxSelDays - 2; |
966 | 1004 | let minTime = days * 1000 * 60 * 60 * 24;
|
967 | 1005 | let rightTime = startTime + minTime;
|
968 | 1006 | let leftTime = startTime - minTime;
|
969 | 1007 |
|
970 | 1008 | let result;
|
971 | 1009 | if (hoverTime > startTime) {
|
972 | 1010 | if (type === 'min')
|
973 |
| - result = itemTime < rightTime && itemTime > startTime; |
| 1011 | + result = itemTime < rightTime && itemTime > startTime && this.fConfigs.minSelDays; |
974 | 1012 | else
|
975 |
| - result = itemTime > rightTime && itemTime > startTime; |
| 1013 | + result = itemTime > rightTime && itemTime > startTime && this.fConfigs.maxSelDays; |
976 | 1014 | } else if (hoverTime < startTime) {
|
977 | 1015 | if (type === 'min')
|
978 |
| - result = itemTime > leftTime && itemTime < startTime; |
| 1016 | + result = itemTime > leftTime && itemTime < startTime && this.fConfigs.minSelDays; |
979 | 1017 | else
|
980 |
| - result = itemTime < leftTime && itemTime < startTime; |
| 1018 | + result = itemTime < leftTime && itemTime < startTime && this.fConfigs.maxSelDays; |
981 | 1019 | }
|
982 | 1020 |
|
983 |
| - return days && result; |
| 1021 | + return result; |
984 | 1022 | },
|
985 | 1023 | checkLimits(value) {
|
986 | 1024 | if (this.fConfigs.limits) {
|
|
0 commit comments