{"version":3,"sources":["../src/Helpers.js"],"names":["cancelEvent","getCustomProps","getFirstDayOfMonth","getDaysInMonth","getModifiersFromProps","getFirstDayOfWeekFromProps","getModifiersForDay","getMonthsDiff","getWeekArray","startOfMonth","e","preventDefault","stopPropagation","props","propTypes","customProps","Object","keys","filter","hasOwnProperty","call","propName","forEach","d","Date","getFullYear","getMonth","resultDate","setMonth","setDate","getDate","modifiers","selectedDays","selected","disabledDays","disabled","firstDayOfWeek","locale","localeUtils","isNaN","getFirstDayOfWeek","modifierFunctions","reduce","modifier","func","push","d1","d2","fixedWeeks","daysInMonth","dayArray","week","weekArray","i","day","length","getDay","indexOf","firstWeek","outsideDate","unshift","lastWeek","lastExtraWeek","lastDay","extraWeek","j","newDate","setHours"],"mappings":"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","file":"Helpers.js","sourcesContent":["\nimport { clone } from './DateUtils';\nimport { getFirstDayOfWeek } from './LocaleUtils';\n\nexport function cancelEvent(e) {\n e.preventDefault();\n e.stopPropagation();\n}\n\nexport function getCustomProps(props, propTypes) {\n const customProps = {};\n Object.keys(props)\n .filter(propName => !{}.hasOwnProperty.call(propTypes, propName))\n .forEach((propName) => {\n customProps[propName] = props[propName];\n });\n return customProps;\n}\n\nexport function getFirstDayOfMonth(d) {\n return new Date(d.getFullYear(), d.getMonth(), 1, 12);\n}\n\nexport function getDaysInMonth(d) {\n const resultDate = getFirstDayOfMonth(d);\n\n resultDate.setMonth(resultDate.getMonth() + 1);\n resultDate.setDate(resultDate.getDate() - 1);\n\n return resultDate.getDate();\n}\n\nexport function getModifiersFromProps(props) {\n const modifiers = { ...props.modifiers };\n if (props.selectedDays) {\n modifiers.selected = props.selectedDays;\n }\n if (props.disabledDays) {\n modifiers.disabled = props.disabledDays;\n }\n return modifiers;\n}\n\nexport function getFirstDayOfWeekFromProps(props) {\n const { firstDayOfWeek, locale = 'en', localeUtils = {} } = props;\n if (!isNaN(firstDayOfWeek)) {\n return firstDayOfWeek;\n }\n if (localeUtils.getFirstDayOfWeek) {\n return localeUtils.getFirstDayOfWeek(locale);\n }\n return 0;\n}\n\nexport function getModifiersForDay(d, modifierFunctions = {}) {\n return Object.keys(modifierFunctions).reduce((modifiers, modifier) => {\n const func = modifierFunctions[modifier];\n if (func(d)) {\n modifiers.push(modifier);\n }\n return modifiers;\n }, []);\n}\n\nexport function getMonthsDiff(d1, d2) {\n return (d2.getMonth() - d1.getMonth()) +\n (12 * (d2.getFullYear() - d1.getFullYear()));\n}\n\nexport function getWeekArray(d, firstDayOfWeek = getFirstDayOfWeek(), fixedWeeks) {\n const daysInMonth = getDaysInMonth(d);\n const dayArray = [];\n\n let week = [];\n const weekArray = [];\n\n for (let i = 1; i <= daysInMonth; i += 1) {\n dayArray.push(new Date(d.getFullYear(), d.getMonth(), i, 12));\n }\n\n dayArray.forEach((day) => {\n if (week.length > 0 && day.getDay() === firstDayOfWeek) {\n weekArray.push(week);\n week = [];\n }\n week.push(day);\n if (dayArray.indexOf(day) === dayArray.length - 1) {\n weekArray.push(week);\n }\n });\n\n // unshift days to start the first week\n const firstWeek = weekArray[0];\n for (let i = 7 - firstWeek.length; i > 0; i -= 1) {\n const outsideDate = clone(firstWeek[0]);\n outsideDate.setDate(firstWeek[0].getDate() - 1);\n firstWeek.unshift(outsideDate);\n }\n\n // push days until the end of the last week\n const lastWeek = weekArray[weekArray.length - 1];\n for (let i = lastWeek.length; i < 7; i += 1) {\n const outsideDate = clone(lastWeek[lastWeek.length - 1]);\n outsideDate.setDate(lastWeek[lastWeek.length - 1].getDate() + 1);\n lastWeek.push(outsideDate);\n }\n\n // add extra weeks to reach 6 weeks\n if (fixedWeeks && weekArray.length < 6) {\n let lastExtraWeek;\n\n for (let i = weekArray.length; i < 6; i += 1) {\n lastExtraWeek = weekArray[weekArray.length - 1];\n const lastDay = lastExtraWeek[lastExtraWeek.length - 1];\n const extraWeek = [];\n\n for (let j = 0; j < 7; j += 1) {\n const outsideDate = clone(lastDay);\n outsideDate.setDate(lastDay.getDate() + j + 1);\n extraWeek.push(outsideDate);\n }\n\n weekArray.push(extraWeek);\n }\n }\n\n return weekArray;\n}\n\nexport function startOfMonth(d) {\n const newDate = clone(d);\n newDate.setDate(1);\n newDate.setHours(12, 0, 0, 0); // always set noon to avoid time zone issues\n return newDate;\n}\n"]}