import DateTimeFormatOptions = Intl.DateTimeFormatOptions; export const makeAvailableReactDateChecker = ( datepickerId, formatOptions: DateTimeFormatOptions = { year: 'numeric', month: '2-digit', day: '2-digit', } ) => { const availableDatesElems = document.getElementById(datepickerId); // @ts-ignore - for each not recognized const availableDates = JSON.parse( availableDatesElems.dataset['availableDates'] ); return (selectedDate) => { const formattedDate = new Date(selectedDate).toLocaleDateString('en-CA'); return availableDates.indexOf(formattedDate) >= 0; }; }; export function parseDateRangeString(dateRange: string, delimiter: string="-"){ let dates = dateRange.split(delimiter); if (dates.length == 2 && dates[1] != ''){ return {startDate: Date.parse(dates[0].trim()), endDate: Date.parse(dates[1].trim())} } else { return {startDate: Date.parse(dates[0].trim()), endDate: undefined} } }