|
830 | 830 | /** |
831 | 831 | * Returns an array of timestamps from an array of date strings. |
832 | 832 | * @param {string[]} collection - An array of date strings. |
| 833 | + * @param {boolean} enabled - Indicates whether the dates are enabled. |
833 | 834 | * @returns {number[]} - An array of timestamps. |
834 | 835 | */ |
835 | | - const getDatesFromArray = (collection) => { |
| 836 | + const getDatesFromArray = (collection, enabled) => { |
836 | 837 | return collection.reduce((acc, date) => { |
837 | 838 | let newDates = []; |
838 | 839 |
|
839 | 840 | if (date instanceof Date) { |
840 | | - newDates = [date.getTime()]; |
| 841 | + newDates = [normalizeTimestamp(date.getTime())]; |
841 | 842 | } else if (typeof date === 'string' && date.includes(':')) { |
842 | 843 | const [rangeStart, rangeEnd] = date.split(':'); |
| 844 | +
|
843 | 845 | let dateRangeStart = new Date(rangeStart).getTime(); |
844 | 846 | let dateRangeEnd = new Date(rangeEnd).getTime(); |
845 | 847 |
|
| 848 | + if (enabled) { |
| 849 | + const newDateRangeEnd = new Date(rangeEnd); |
| 850 | + newDateRangeEnd.setDate(newDateRangeEnd.getDate() + 1); |
| 851 | + dateRangeEnd = newDateRangeEnd.getTime(); |
| 852 | + } |
| 853 | +
|
846 | 854 | for (; dateRangeStart <= dateRangeEnd; dateRangeStart += MILLISECONDS_IN_DAY) { |
847 | | - newDates = [...newDates, dateRangeStart]; |
| 855 | + newDates = [...newDates, normalizeTimestamp(dateRangeStart)]; |
848 | 856 | } |
849 | 857 | } else { |
850 | | - newDates = [new Date(date).getTime()]; |
| 858 | + newDates = [normalizeTimestamp(new Date(date).getTime())]; |
851 | 859 | } |
852 | 860 |
|
853 | 861 | return [...acc, ...newDates]; |
|
873 | 881 | $: !isRange && (endDate = null); |
874 | 882 | $: theme !== null && globalThis.document?.documentElement.setAttribute('data-picker-theme', theme); |
875 | 883 | $: disabled = getDatesFromArray(disabledDates); |
876 | | - $: enabled = getDatesFromArray(enabledDates); |
| 884 | + $: enabled = getDatesFromArray(enabledDates, true); |
877 | 885 |
|
878 | 886 | $: if (!startDate && !endDate) { |
879 | 887 | startDateYear = Number(defaultYear); |
|
0 commit comments