reactstrap-date-picker
Version:
Reactstrap based, zero dependencies, date picker
1 lines • 91.8 kB
Source Map (JSON)
{"version":3,"file":"reactstrap-date-picker.mjs","sources":["../src/util/useCheckProps.mjs","../src/input/InputGroup.mjs","../src/input/InputOverlay.mjs","../src/input/InputHidden.mjs","../src/input/InputClearButton.mjs","../src/input/InputControlInput.mjs","../src/util/setTimeToNoon.mjs","../src/util/getDateFromIsoString.mjs","../src/util/getIsoStringFromDate.mjs","../src/input/useInputValues.mjs","../src/util/getInstanceCount.mjs","../src/input/useInputIds.mjs","../src/input/useDayLabels.mjs","../src/util/compareMonths.mjs","../src/calendar/pickmonth/PickMonthDefault.mjs","../src/calendar/CalendarHeader.mjs","../src/calendar/CalendarSubHeader.mjs","../src/calendar/CalendarDayOutOfMonth.mjs","../src/calendar/CalendarDayInMonth.mjs","../src/calendar/CalendarWeekNum.mjs","../src/calendar/CalendarBody.mjs","../src/calendar/CalendarFooter.mjs","../src/calendar/useCalendarDays.mjs","../src/calendar/Calendar.mjs","../src/input/useCustomEvents.mjs","../src/util/getMaybeFuncValue.mjs","../src/calendar/useCalendarProps.mjs","../src/DatePicker.mjs"],"sourcesContent":["const useCheckProps = (value, defaultValue) => {\n if (value && defaultValue) {\n return 'Conflicting DatePicker properties \\'value\\' and \\'defaultValue\\''\n }\n\n return undefined \n}\n\nexport {useCheckProps}","import React from 'react'\n\nimport {InputGroup as RSInputGroup} from 'reactstrap'\n\nconst InputGroup = ({children, customInputGroup, size, inputId}) => {\n\n if (customInputGroup != undefined) {\n return (\n React.cloneElement(customInputGroup, {children: children})\n ) \n }\n\n return (\n <RSInputGroup\n size = {size}\n id = {inputId}\n className = {`rdp-input-group`}\n >\n {children}\n </RSInputGroup>\n )\n}\n \nexport {InputGroup}","import React from 'react'\n\nconst InputOverlay = ({oid, overlayContainerRef, children}) =>\n <div \n ref = {overlayContainerRef}\n id = {oid}\n className = 'rdp-overlay'>\n {children}\n </div>\n\nexport {InputOverlay}\n","import React from 'react'\n\nconst InputHidden = ({inputId, name, value, formattedValue, hiddenInputRef}) =>\n <input \n ref = {hiddenInputRef}\n type = \"hidden\"\n className = 'rdp-hidden'\n id = {inputId} \n name = {name} \n value = {value || ''} \n data-formattedvalue = {formattedValue}\n />\nexport {InputHidden}\n","import React from 'react'\nimport {InputGroupText} from 'reactstrap'\n\nconst InputClearButton = ({inputValue, disabled, clearButtonElement, onClick}) => \n <div className=\"rdp-addon input-group-append\">\n <InputGroupText \n onClick = {() => disabled ? null : onClick()}\n style = {{\n opacity: (inputValue && !disabled) ? 1 : 0.5,\n cursor:(inputValue && !disabled) ? 'pointer' : 'not-allowed'\n }}>\n {clearButtonElement}\n </InputGroupText> \n </div>\n\n\nexport {InputClearButton}","import React from 'react'\nimport {Input} from 'reactstrap'\n\nconst InputControlInput = (\n {customControl, controlId, \n value, required, placeholder, inputRef, disabled, \n className, style, autoFocus, autoComplete, valid, invalid, onInvalid, noValidate,\n onKeyDown, onFocus, onBlur, onChange}) => {\n \n const validityClassNames= `${invalid===true ? 'is-invalid' : ''} ${valid===true ? 'is-valid' : ''}`\n\n if (customControl!=undefined) {\n return React.cloneElement(customControl, {\n id : controlId,\n value : value || '',\n required : required,\n placeholder : placeholder,\n ref : inputRef,\n disabled : disabled,\n className : `rdp-form-control ${className || ''} ${customControl.props.className||''} ${validityClassNames}`,\n style : {...customControl.props.style||{}, ...style || {}},\n autoComplete: autoComplete,\n onInvalid : onInvalid,\n noValidate : noValidate,\n onKeyDown : onKeyDown,\n onFocus : onFocus,\n onBlur : onBlur,\n onChange : onChange,\n valid : valid,\n invalid : invalid\n })\n }\n\n return (\n <Input\n id = {controlId}\n name = {controlId}\n value = {value || ''}\n required = {required}\n placeholder = {placeholder}\n innerRef = {inputRef}\n disabled = {disabled}\n type = \"text\"\n className = {`rdp-form-control ${className || ''} ${validityClassNames}`}\n style = {style}\n autoFocus = {autoFocus}\n autoComplete= {autoComplete}\n onInvalid = {onInvalid}\n noValidate = {noValidate}\n onKeyDown = {onKeyDown}\n onFocus = {onFocus}\n onBlur = {onBlur}\n onChange = {onChange}\n valid = {valid}\n invalid = {invalid}\n />\n )\n\n}\n\nexport {InputControlInput}","const setTimeToNoon = (date) => {\n if (! date) {\n return null\n }\n date.setHours(12 - date.getTimezoneOffset()/60)\n date.setMinutes(0)\n date.setSeconds(0)\n date.setMilliseconds(0)\n return date\n}\n\nexport {setTimeToNoon}","import {setTimeToNoon} from './setTimeToNoon'\n\nconst getDateFromIsoString = (isoString) =>\n isoString ? setTimeToNoon(new Date(isoString)) : null\n //isoString ? new Date(`${isoString.slice(0,10)}T12:00:00.000Z`) : null\n \n\nexport { getDateFromIsoString }","import {setTimeToNoon} from './setTimeToNoon'\n\nconst getIsoStringFromDate = (date) =>\n date ? setTimeToNoon(date).toISOString() : null\n //date ? `${date.toISOString().slice(0,10)}T12:00:00.000Z` : null\n\nexport { getIsoStringFromDate }","import {useState, useEffect /*, useCallback*/} from 'react'\nimport { getDateFromIsoString } from '../util/getDateFromIsoString'\nimport { getIsoStringFromDate } from '../util/getIsoStringFromDate'\n\nconst _makeInputValueString = (date, separator, dateFormat) => {\n const month = date.getMonth() + 1\n const day = date.getDate()\n\n if (dateFormat.match(/MM.DD.YYYY/)) {\n return (month > 9 ? month : `0${month}`) + separator + (day > 9 ? day : `0${day}`) + separator + date.getFullYear()\n }\n else if (dateFormat.match(/DD.MM.YYYY/)) {\n return (day > 9 ? day : `0${day}`) + separator + (month > 9 ? month : `0${month}`) + separator + date.getFullYear()\n }\n else {\n return date.getFullYear() + separator + (month > 9 ? month : `0${month}`) + separator + (day > 9 ? day : `0${day}`)\n }\n}\n\nconst useInputValues = (controlInputRef, value, defaultValue, minDate, maxDate, dateFormat, onClear, onChange) => {\n const [separator, setSeparator]= useState(dateFormat.match(/[^A-Z]/)[0])\n const [innerValue, setInnerValue]= useState(null)\n const [inputValue, setInputValue]= useState(null)\n const [displayDate, setDisplayDate]= useState(null)\n const [selectedDate, setSelectedDate]= useState(null)\n \n\n\n // handle props changes\n useEffect(() => {\n setSeparator(dateFormat.match(/[^A-Z]/)[0])\n }, [dateFormat])\n\n\n // handle input values\n useEffect(() => {\n const isoString= value || defaultValue\n const minDate = getDateFromIsoString(minDate)\n const maxDate = getDateFromIsoString(maxDate)\n\n\n\n const nSelectedDate = getDateFromIsoString(isoString)\n const nInnerValue = getIsoStringFromDate(nSelectedDate)\n const nInputValue = isoString ? _makeInputValueString(nSelectedDate, separator, dateFormat) : null\n\n let nDisplayDate\n if (nSelectedDate) {\n //nDisplayDate = new Date(nSelectedDate)\n nDisplayDate = nSelectedDate\n } else {\n const today = getDateFromIsoString(new Date().toISOString())\n if (minDate && Date.parse(minDate) >= Date.parse(today)){\n nDisplayDate = minDate\n } else if (maxDate && Date.parse(maxDate) <= Date.parse(today)){\n nDisplayDate = maxDate\n } else {\n nDisplayDate = today\n }\n }\n \n setInnerValue(nInnerValue)\n setInputValue(nInputValue)\n setSelectedDate(nSelectedDate)\n setDisplayDate(nDisplayDate)\n\n }, [value, defaultValue, minDate, maxDate, separator, dateFormat])\n\n //\n const handleClear = /*useCallback(*/() => {\n if (onClear) {\n onClear()\n }\n else {\n setInnerValue(null)\n setInputValue(null)\n setSelectedDate(null)\n setDisplayDate(null)\n\n if (onChange) {\n onChange(null, null)\n }\n }\n }/*, [onClear, onChange])*/\n\n const handleBadInput = /*useCallback(*/(originalValue, tail= false) => {\n \n const parts = originalValue.replace(new RegExp(`[^0-9${separator}]`), '').split(separator)\n\n if (dateFormat.match(/MM.DD.YYYY/) || dateFormat.match(/DD.MM.YYYY/)) {\n if (parts[0] && parts[0].length > 2) {\n parts[1] = parts[0].slice(2) + (parts[1] || '')\n parts[0] = parts[0].slice(0, 2)\n }\n if (parts[1] && parts[1].length > 2) {\n parts[2] = parts[1].slice(2) + (parts[2] || '')\n parts[1] = parts[1].slice(0, 2)\n }\n if (parts[2]) {\n parts[2] = parts[2].slice(0,4)\n if (tail) {\n if (parts[2].length < 4) {\n parts[2]= parts[2].padEnd(4, '0')\n }\n }\n }\n } else {\n if (parts[0] && parts[0].length > 4) {\n parts[1] = parts[0].slice(4) + (parts[1] || '')\n parts[0] = parts[0].slice(0, 4)\n }\n if (parts[1] && parts[1].length > 2) {\n parts[2] = parts[1].slice(2) + (parts[2] || '')\n parts[1] = parts[1].slice(0, 2)\n }\n if (parts[2]) {\n parts[2] = parts[2].slice(0,2)\n }\n }\n const nInputValue= parts.join(separator)\n setInputValue(nInputValue)\n }/*, [dateFormat, separator])*/\n\n const handleBadInputOnBlur = () => {\n const originalValue = controlInputRef?.current?.value || ''\n if (originalValue) {\n handleBadInput(originalValue, true)\n }\n }\n\n const handleInputChange = /*useCallback(*/() => {\n const originalValue = controlInputRef?.current?.value || ''\n const nInputValue = originalValue.replace(/(-|\\/\\/)/g, separator).slice(0,10)\n \n if (!nInputValue) {\n handleClear()\n return\n }\n\n let month, day, year\n if (dateFormat.match(/MM.DD.YYYY/)) {\n if (!nInputValue.match(/[0-1][0-9].[0-3][0-9].[1-2][0-9][0-9][0-9]/)) {\n return handleBadInput(originalValue)\n }\n\n month = nInputValue.slice(0,2).replace(/[^0-9]/g, '')\n day = nInputValue.slice(3,5).replace(/[^0-9]/g, '')\n year = nInputValue.slice(6,10).replace(/[^0-9]/g, '')\n } else if (dateFormat.match(/DD.MM.YYYY/)) {\n if (!nInputValue.match(/[0-3][0-9].[0-1][0-9].[1-2][0-9][0-9][0-9]/)) {\n return handleBadInput(originalValue)\n }\n\n day = nInputValue.slice(0,2).replace(/[^0-9]/g, '')\n month = nInputValue.slice(3,5).replace(/[^0-9]/g, '')\n year = nInputValue.slice(6,10).replace(/[^0-9]/g, '')\n } else {\n if (!nInputValue.match(/[1-2][0-9][0-9][0-9].[0-1][0-9].[0-3][0-9]/)) {\n return handleBadInput(originalValue)\n }\n\n year = nInputValue.slice(0,4).replace(/[^0-9]/g, '')\n month = nInputValue.slice(5,7).replace(/[^0-9]/g, '')\n day = nInputValue.slice(8,10).replace(/[^0-9]/g, '')\n }\n\n const monthInteger = parseInt(month, 10)\n const dayInteger = parseInt(day, 10)\n const yearInteger = parseInt(year, 10)\n if (monthInteger > 12 || dayInteger > 31) {\n return handleBadInput(originalValue)\n }\n\n const beforeMinDate = minDate && Date.parse(originalValue) < Date.parse(minDate)\n const afterMaxDate = maxDate && Date.parse(originalValue) > Date.parse(maxDate)\n\n if (beforeMinDate || afterMaxDate) {\n return handleBadInput(originalValue)\n }\n\n if (!isNaN(monthInteger) && !isNaN(dayInteger) && !isNaN(yearInteger) && monthInteger <= 12 && dayInteger <= 31 && yearInteger > 999) {\n const nSelectedDate = getDateFromIsoString(new Date(yearInteger, monthInteger - 1, dayInteger, 12, 0, 0, 0).toISOString())\n const nInnerValue = getIsoStringFromDate(nSelectedDate)\n\n setSelectedDate(nSelectedDate)\n setDisplayDate(nSelectedDate)\n setInnerValue(nInnerValue)\n\n if (onChange) {\n onChange(nInnerValue, nInputValue)\n }\n }\n\n setInputValue(nInputValue)\n }/*, [controlInputRef, separator, onChange, minDate, maxDate])*/\n\n const handleChangeMonth = (nDisplayDate) => {\n setDisplayDate(nDisplayDate)\n }\n\n const handleChangeDate = /*useCallback(*/(nSelectedDate) => {\n const nInnerValue = getIsoStringFromDate(nSelectedDate)\n const nInputValue = _makeInputValueString(nSelectedDate, separator, dateFormat)\n\n setInputValue(nInputValue)\n setSelectedDate(nSelectedDate)\n setDisplayDate(nSelectedDate)\n setInnerValue(nInnerValue)\n\n if (onChange) {\n onChange(nInnerValue, nInputValue)\n }\n }/*, [separator, dateFormat, onChange])*/\n\n\n return [innerValue, inputValue, displayDate, selectedDate, handleClear, handleInputChange, handleChangeMonth, handleChangeDate, handleBadInputOnBlur]\n\n}\n\n\n\nexport { useInputValues }","const getInstanceCount = () => {\n if (typeof window === 'object') {\n if (window._reactstrapDatePickerInstance == undefined) {\n window._reactstrapDatePickerInstance= 0\n }\n const next= window._reactstrapDatePickerInstance+1\n window._reactstrapDatePickerInstance= next\n return next\n } else if (typeof process === 'object') {\n if (process._reactstrapDatePickerInstance == undefined) {\n process._reactstrapDatePickerInstance= 0\n }\n const next= process._reactstrapDatePickerInstance+1\n process._reactstrapDatePickerInstance= next\n return next\n } else {\n console.error(\"Reactstrap Date Picker cannot determine environment (it is neither browser's <window> nor Node's <process>).\")\n return 1\n }\n}\n\nexport {getInstanceCount}","import {useState, useEffect} from 'react'\nimport {getInstanceCount} from '../util/getInstanceCount'\n\nconst _getIdSuffix = (id, name) => {\n // Try <id> or <name> props to determine elements' id suffix\n if (id!=undefined && id!='')\n return id\n if (name!=undefined && name!='')\n return name\n // If none was passed, use global vars\n const iCount= getInstanceCount()\n return iCount.toString()\n}\n\n\nconst _getInputIds = (id, name, customControl) => {\n const idSuffix = _getIdSuffix(id, name)\n const group= `rdp-input-group-${idSuffix}`\n const hidden = id!=undefined ? id : `rdp-hidden-${idSuffix}`\n let control= `rdp-form-control-${idSuffix}`\n if (customControl!=undefined && customControl?.props?.id) {\n control= customControl.props.id\n }\n const overlay = `rdp-overlay-${idSuffix}`\n return [group, hidden, control, overlay]\n}\n\n\nconst useInputIds = (id, name, customControl) => {\n\n const [inputIds, setInputIds]= useState(_getInputIds(id, name, customControl))\n\n useEffect(() => {\n setInputIds(_getInputIds(id, name, customControl))\n }, [id, name, customControl])\n \n return inputIds\n}\n\n\n\nexport {useInputIds}","import {useState, useEffect} from 'react'\n\nconst _getFixedDayLabels = (dayLabels, weekStartsOn) => {\n if (weekStartsOn > 1) {\n return dayLabels\n .slice(weekStartsOn)\n .concat(dayLabels.slice(0, weekStartsOn))\n }\n \n if (weekStartsOn === 1) {\n return dayLabels.slice(1).concat(dayLabels.slice(0,1))\n }\n \n return dayLabels\n}\n\n\nconst useFixedDayLabels = (dayLabels, weekStartsOn) => {\n\n const [fixedDayLabels, setFixedDayLabels]= useState(_getFixedDayLabels(dayLabels, weekStartsOn))\n\n useEffect(() => {\n setFixedDayLabels(_getFixedDayLabels(dayLabels, weekStartsOn))\n }, [dayLabels, weekStartsOn])\n \n return fixedDayLabels\n}\n\nexport {useFixedDayLabels}","const compareMonths = (a, b) => {\n try {\n const da= new Date(a)\n const db= new Date(b)\n\n const sameYear= da.getFullYear() == db.getFullYear()\n const sameMonth = da.getMonth() == db.getMonth()\n\n return sameMonth && sameYear\n }catch(e) {\n console.error(e)\n return true\n }\n}\n\n\nexport {compareMonths}","import React, {useState, useEffect} from 'react'\nimport {Input} from 'reactstrap'\n\nconst _getYearList = (minDate, maxDate) => {\n const minYear= minDate\n ? (new Date(minDate)).getFullYear()\n : 1970\n const maxYear= maxDate\n ? (new Date(maxDate)).getFullYear()\n : 2045\n let yList= []\n for (let y=minYear; y<=maxYear; y++) {\n yList.push(y)\n }\n return yList\n}\n\n\nconst PickMonthDefault = ({displayDate, minDate, maxDate, monthLabels, onChangeMonth, onChangeYear}) => {\n const [month, setMonth]= useState((new Date(displayDate)).getMonth())\n const [year, setYear]= useState((new Date(displayDate)).getFullYear())\n const [yearList, setYearList] = useState(_getYearList(minDate, maxDate))\n\n useEffect(() => {\n setMonth((new Date(displayDate)).getMonth())\n setYear((new Date(displayDate)).getFullYear())\n }, [displayDate])\n\n useEffect(() => {\n setYearList(_getYearList(minDate, maxDate))\n }, [minDate, maxDate])\n\n const handleChangeMonth = (ev) => {\n const m= ev.target.value\n setMonth(m)\n onChangeMonth(m)\n }\n\n const handleChangeYear = (ev) => {\n const y= ev.target.value\n setYear(y)\n onChangeYear(y)\n } \n\n\n return (\n <div className= \"rdp-header-pick-month-default\"\n style={{display: 'flex', flexFlow: 'row', flexWrap: 'nowrap'}}>\n <div className= \"rdp-header-pick-month-default-month\"\n style={{flex: '2 1 auto'}}>\n <Input\n type=\"select\"\n name=\"rdp-header-pick-month-default-month\"\n style={{lineHeight: \"1.5\", fontSize: \"0.875rem\", padding: \"0.2rem\"}}\n value={month}\n onChange={handleChangeMonth}>\n {\n monthLabels.map((lmonth, lidx) => {\n return (\n <option key={`month_${lidx}`}\n value={lidx}>\n {lmonth}\n </option>\n )\n })\n }\n </Input>\n </div>\n <div className= \"rdp-header-pick-month-default-year\"\n style={{flex: '1 1 67px'}}>\n <Input\n type=\"select\"\n name=\"rdp-header-pick-month-default-year\"\n style={{lineHeight: \"1.5\", fontSize: \"0.875rem\", padding: \"0.2rem\"}}\n value={year}\n onChange={handleChangeYear}>\n {\n yearList.map(lyear => {\n return (\n <option key={`year${lyear}`}\n value={lyear}>\n {lyear}\n </option>\n )\n })\n }\n </Input>\n </div>\n </div>\n )\n}\n\nexport default PickMonthDefault\n","\nimport React, {useState, useEffect} from 'react'\nimport {compareMonths} from '../util/compareMonths'\nimport PickMonthDefault from './pickmonth/PickMonthDefault'\n\nfunction CalendarHeader ({\n previousButtonElement, nextButtonElement, pickMonthElement,\n displayDate, minDate, maxDate, onChange, monthLabels}) {\n \n const [displayingMinMonth, setDisplayingMinMonth]= useState(false)\n const [displayingMaxMonth, setDisplayingMaxMonth]= useState(false)\n const [title, setTitle]= useState('')\n const PickMonthElement = pickMonthElement\n \n useEffect(() => {\n if (displayDate==undefined) {\n return \n }\n \n if (!minDate) {\n setDisplayingMinMonth(false)\n } else {\n setDisplayingMinMonth(compareMonths(displayDate, minDate))\n }\n \n if (!maxDate) {\n setDisplayingMaxMonth(false)\n } else {\n setDisplayingMaxMonth(compareMonths(displayDate, maxDate))\n }\n\n try {\n if (monthLabels) {\n setTitle(`${monthLabels[displayDate.getMonth()]} ${displayDate.getFullYear()}`)\n }\n } catch(e) {\n console.error(e)\n }\n\n }, [displayDate, minDate, maxDate, monthLabels])\n\n \n const handleChangeMonthIncr = (inc) => {\n const newDisplayDate = new Date(displayDate)\n newDisplayDate.setMonth(newDisplayDate.getMonth() + inc, 1)\n onChange(newDisplayDate)\n }\n\n const handleChangeMonth = (m) => {\n const newDisplayDate = new Date(displayDate)\n newDisplayDate.setMonth(m)\n onChange(newDisplayDate)\n }\n\n const handleChangeYear = (y) => {\n const newDisplayDate = new Date(displayDate)\n newDisplayDate.setFullYear(y)\n onChange(newDisplayDate)\n }\n\n return (\n <div className=\"rdp-header text-center\" style={{display: 'flex', flexFlow: 'row', flexWrap: 'nowrap'}}>\n <div className= \"text-muted rdp-header-previous-wrapper\" \n onClick = {() => handleChangeMonthIncr(-1)}\n style = {{cursor: 'pointer', userSelect: 'none', flexBasis: '1.25em', alignSelf: 'center'}}>\n {displayingMinMonth ? null : previousButtonElement}\n </div>\n \n <div className= \"rdp-header-pick-month-wrapper\"\n style={{flex: '1 1 auto'}}>{\n (PickMonthElement==null || PickMonthElement==='none')\n ? <div>{title}</div>\n : PickMonthElement==='default'\n ? <PickMonthDefault\n displayDate = { displayDate }\n monthLabels = { monthLabels }\n minDate = { minDate }\n maxDate = { maxDate }\n onChangeMonth = { (m) => handleChangeMonth(m) }\n onChangeYear = { (y) => handleChangeYear(y) }/>\n : <PickMonthElement\n displayDate = { displayDate }\n minDate = { minDate }\n maxDate = { maxDate }\n onChangeMonth = { (m) => handleChangeMonth(m) }\n onChangeYear = { (y) => handleChangeYear(y) }/>\n \n }</div>\n <div className= \"text-muted rdp-header-next-wrapper\" \n onClick = {() => handleChangeMonthIncr(+1)} \n style = {{cursor: 'pointer', userSelect: 'none', flexBasis: '1.25em', alignSelf: 'center'}}>\n {displayingMaxMonth ? null : nextButtonElement}\n </div>\n </div>\n )\n\n}\n\nexport {CalendarHeader}\n","import React from 'react' \n\nconst CalendarSubHeader = ({dayLabels, showWeeks, cellPadding}) => \n\n <thead>\n <tr>\n {showWeeks \n ? <td className=\"text-muted current-week\"\n style={{padding: cellPadding}} /> \n : null\n }\n {dayLabels.map((label, index) => \n <td key={index}\n className=\"text-muted\"\n style={{padding: cellPadding}}>\n <small>{label}</small>\n </td>\n )}\n </tr>\n </thead>\n\nexport {CalendarSubHeader}","import React from 'react'\n\nconst CalendarDayOutOfMonth = () => \n <td></td>\n\nexport {CalendarDayOutOfMonth}","import React from 'react'\n\nconst CAL_DAY_CLASSNAME_BY_MODE= {\n 'normal': '',\n 'muted': 'text-muted',\n 'selected': 'bg-primary',\n 'current': 'text-primary'\n}\n\nconst CalendarDayInMonth = ({day, mode, onDayClick, cellPadding, roundedCorners}) => {\n\n const handleClick = (ev) => {\n if (mode!='muted') {\n onDayClick(ev)\n }\n }\n\n return (\n <td\n data-day = {day}\n onClick = {handleClick}\n style = {{ cursor: mode=='muted' ? 'default' : 'pointer', \n padding: cellPadding, \n borderRadius: roundedCorners ? '5px' : '0px' }}\n className= {CAL_DAY_CLASSNAME_BY_MODE[mode]}>\n {day}\n </td>\n\n )\n}\n\nexport {CalendarDayInMonth}\n\n","import React from 'react' \n\nconst CalendarWeekNum = ({weekNum, cellPadding}) => \n <td style={{padding: cellPadding, fontSize: '0.8em', color: 'darkgrey'}}\n className=\"text-muted\">\n {weekNum}\n </td>\n\nexport {CalendarWeekNum}\n","import React from 'react' \nimport {CalendarDayOutOfMonth} from './CalendarDayOutOfMonth'\nimport {CalendarDayInMonth} from './CalendarDayInMonth'\nimport {CalendarWeekNum} from './CalendarWeekNum'\n\nconst CalendarBody = ({calendarDays, showWeeks, onDayClick, cellPadding, roundedCorners}) => {\n if (! calendarDays) {\n return <tbody></tbody>\n }\n\n return (\n <tbody>\n {calendarDays.map( (week, weekIndex) => \n <tr key={`rdp_calendar_week_${weekIndex}`}>\n {showWeeks\n ? <CalendarWeekNum\n key={`rdp_calendar_week_${weekIndex}_weeknum`}\n weekNum = {week.weekNum}\n cellPadding = {cellPadding}/>\n : null\n }\n {week.weekDays.map((weekDay, weekDayIndex) => \n weekDay.inMonth\n ? <CalendarDayInMonth\n key={`rdp_calendar_week_${weekIndex}_day_${weekDayIndex}`}\n day= {weekDay.day}\n mode= {weekDay.mode}\n onDayClick= {onDayClick}\n cellPadding= {cellPadding}\n roundedCorners= {roundedCorners}\n /> \n : <CalendarDayOutOfMonth \n key={`rdp_calendar_week_${weekIndex}_day_${weekDayIndex}`}/>\n )}\n </tr>\n )}\n </tbody> \n )\n}\n\nexport {CalendarBody}\n","import React from 'react' \nimport {Button} from 'reactstrap'\n\nconst CalendarFooter = ({dayLabels, showWeeks, handleTodayClick, showTodayButton, todayButtonLabel}) => {\n if (!showTodayButton) {\n return null\n }\n \n return (\n <tfoot>\n <tr>\n <td colSpan={dayLabels.length + (showWeeks ? 1 : 0)} style={{ paddingTop: '9px' }}>\n <Button\n block\n size=\"sm\"\n className=\"u-today-button\"\n onClick={() => handleTodayClick()}>\n {todayButtonLabel}\n </Button>\n </td>\n </tr>\n </tfoot>\n )\n\n}\n\nexport {CalendarFooter}","import {useState, useEffect} from 'react'\nimport {setTimeToNoon} from '../util/setTimeToNoon'\n\nconst DAYS_BY_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\n/**\n groupByWeeks: {\n year,\n month,\n weeks: [\n {weekNum: N,\n wekDays: [\n {inMonth: true, day: N, mode: ''}\n or\n {inMonth: false}\n ]\n },...\n ]\n }\n */\n\nfunction _groupByWeeks(year, month, weekStartsOn) {\n if (year == undefined || month == undefined) {\n return undefined\n }\n\n const firstDay = new Date(year, month, 1)\n const startingDay = weekStartsOn > 1\n ? firstDay.getDay() - weekStartsOn + 7\n : weekStartsOn === 1\n ? (firstDay.getDay() === 0 ? 6 : firstDay.getDay() - 1)\n : firstDay.getDay();\n\n let monthLength = DAYS_BY_MONTH[month]\n if (month == 1) {\n if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {\n monthLength = 29;\n }\n }\n \n const isInMonth = (monthDay, weekIndex, weekDay) => {\n if (monthDay <= monthLength && (weekIndex > 0 || weekDay >= startingDay)) {\n return true\n }\n return false\n }\n\n const getWeekNumber = (monthDay) => {\n const date = new Date(year, month, monthDay - 1, 12, 0, 0, 0)\n const target = new Date(date.valueOf());\n const dayNr = (date.getDay() + 6) % 7;\n target.setDate(target.getDate() - dayNr + 3);\n const firstThursday = target.valueOf();\n target.setMonth(0, 1);\n if (target.getDay() !== 4) {\n target.setMonth(0, 1 + ((4 - target.getDay()) + 7) % 7);\n }\n return 1 + Math.ceil((firstThursday - target) / 604800000);\n }\n \n\n const allWeeks = []\n let monthDay = 1\n for (let weekIndex = 0; weekIndex < 9; weekIndex++) {\n const weekDays = []\n for (let weekDay = 0; weekDay <= 6; weekDay++) {\n if (isInMonth(monthDay, weekIndex, weekDay)) {\n weekDays.push({\n inMonth: true,\n day: monthDay\n })\n monthDay+= 1\n } else {\n weekDays.push({\n inMonth: false \n })\n }\n }\n \n const weekNum = getWeekNumber(monthDay)\n\n allWeeks.push({\n weekDays,\n weekNum\n })\n\n if (monthDay > monthLength) {\n break\n }\n }\n \n return {\n year, month, weeks: allWeeks\n }\n\n}\n\n\n\n/**\n calendarDays: [\n {weekNum: N,\n wekDays: [\n {inMonth: true, day: N, mode: ''}\n or\n {inMonth: false}\n ]\n },...\n ]\n */\n\nfunction _makeCalendarDays(groupByWeeks, selectedDate, minDate, maxDate) {\n\n if (groupByWeeks==undefined) {\n return []\n }\n\n\n const getDayMode = (day) => {\n const date= setTimeToNoon(new Date(groupByWeeks.year, groupByWeeks.month, day, 12, 0, 0, 0)).toISOString()\n \n\n const beforeMinDate = minDate!=undefined ? (Date.parse(date) < Date.parse(setTimeToNoon(new Date(minDate)))) : false\n const afterMaxDate = maxDate!=undefined ? (Date.parse(date) > Date.parse(setTimeToNoon(new Date(maxDate)))) : false\n const currentDate = setTimeToNoon(new Date())\n const nSelectedDate = setTimeToNoon(new Date(selectedDate))\n\n if (beforeMinDate || afterMaxDate) {\n return 'muted'\n } else if (Date.parse(date) === Date.parse(nSelectedDate)) {\n return 'selected'\n } else if (Date.parse(date) === Date.parse(currentDate)) {\n return 'current'\n } else {\n return 'normal'\n }\n }\n\n let calendarDays= []\n\n groupByWeeks.weeks.map(week => {\n const weekNum= week.weekNum\n const weekDays = week.weekDays.map(weekDay => {\n return {\n ...weekDay,\n mode: weekDay.inMonth ? getDayMode(weekDay.day) : undefined\n }\n })\n calendarDays.push({\n weekNum,\n weekDays\n })\n })\n\n return calendarDays\n}\n\nfunction useCalendarDays(displayDate, selectedDate, minDate, maxDate, weekStartsOn) {\n const [year, setYear]= useState(undefined)\n const [month, setMonth]= useState(undefined)\n const [groupByWeeks, setGroupByWeeks]= useState(undefined)\n const [calendarDays, setCalendarDays]= useState([])\n \n\n useEffect(() => {\n if (displayDate) {\n setYear(displayDate.getFullYear())\n setMonth(displayDate.getMonth())\n }\n }, [displayDate])\n\n\n useEffect(() => {\n setGroupByWeeks(_groupByWeeks(year, month, weekStartsOn))\n }, [year, month, weekStartsOn])\n\n useEffect(() => {\n setCalendarDays(_makeCalendarDays(groupByWeeks, selectedDate, minDate, maxDate))\n }, [groupByWeeks, selectedDate, minDate, maxDate])\n\n\n return calendarDays\n}\n\n\nexport {useCalendarDays}","import React from 'react'\nimport {Popover, PopoverHeader, PopoverBody} from 'reactstrap'\nimport {setTimeToNoon} from '../util/setTimeToNoon'\nimport {CalendarHeader} from './CalendarHeader'\nimport {CalendarSubHeader} from './CalendarSubHeader'\nimport {CalendarBody} from './CalendarBody'\nimport {CalendarFooter} from './CalendarFooter'\nimport {useCalendarDays} from './useCalendarDays'\n\nconst Calendar = (\n {popoverRef, selectedDate, displayDate, minDate, maxDate, onChange, dayLabels, \n cellPadding, weekStartsOn, showTodayButton, todayButtonLabel, \n roundedCorners, showWeeks, monthLabels, previousButtonElement, \n nextButtonElement, pickMonthElement, placement, open, \n container, target, onChangeMonth}) => {\n const calendarDays = useCalendarDays(displayDate, selectedDate, minDate, maxDate, weekStartsOn)\n \n const handleDayClick = (e) => {\n const day = e.currentTarget.getAttribute('data-day')\n const newSelectedDate = setTimeToNoon(new Date(displayDate))\n newSelectedDate.setDate(day)\n onChange(newSelectedDate)\n }\n\n const handleTodayClick = () => {\n const newSelectedDate = setTimeToNoon(new Date())\n onChange(newSelectedDate)\n }\n \n return (\n <>\n\n <Popover \n innerRef = {popoverRef}\n className = {`rdp-popover ${placement}`}\n //toggle = {() => handleHide()}\n isOpen = {open}\n container = {container}\n target = {target}\n placement = {placement}\n // delay = {200} // does not apply for us (manual triggering)\n >\n <PopoverHeader tag = \"div\">\n <CalendarHeader\n previousButtonElement= {previousButtonElement}\n nextButtonElement = {nextButtonElement}\n pickMonthElement = {pickMonthElement}\n displayDate = {displayDate}\n minDate = {minDate}\n maxDate = {maxDate}\n onChange = {(newDisplayDate) => onChangeMonth(newDisplayDate)}\n monthLabels = {monthLabels}/>\n </PopoverHeader>\n\n <PopoverBody>\n <table className=\"rdp-calendar text-center\">\n <CalendarSubHeader \n dayLabels = {dayLabels}\n showWeeks = {showWeeks}\n cellPadding = {cellPadding}\n />\n\n <CalendarBody \n calendarDays = {calendarDays}\n showWeeks = {showWeeks}\n onDayClick = {handleDayClick}\n cellPadding = {cellPadding}\n roundedCorners = {roundedCorners}\n />\n\n <CalendarFooter\n dayLabels = {dayLabels}\n showWeeks = {showWeeks}\n handleTodayClick = {handleTodayClick}\n showTodayButton = {showTodayButton}\n todayButtonLabel = {todayButtonLabel}\n />\n </table>\n </PopoverBody>\n </Popover>\n </>\n )\n}\n\nexport { Calendar }\n\n\n\n","import {useCallback} from 'react'\n\n// NOTE: do we want to use the controlInput or the hiddenInput here?\n// We were previously using the hidden one, but I see no reasons.\n// 'change' events would make sense on the hidden input, but focus\n// control seems to be more on the control input.\n// Anyway, this is not decided here, but when calling useCustomEvents()\n\nconst useCustomEvents = (inputRef, onBlur, onFocus) => {\n const customOnBlur = useCallback(() => {\n \n if (onBlur) {\n const event = document.createEvent('CustomEvent')\n event.initEvent('Change Date', true, false)\n inputRef.current.dispatchEvent(event)\n onBlur(event)\n }\n }, [inputRef, onBlur])\n\n const customOnFocus = useCallback(() => {\n if (onFocus) {\n const event = document.createEvent('CustomEvent')\n event.initEvent('Change Date', true, false)\n inputRef.current.dispatchEvent(event)\n onFocus(event)\n }\n }, [inputRef, onFocus])\n\n return [customOnBlur, customOnFocus]\n}\n\nexport { useCustomEvents }","const getMaybeFuncValue = (value) => {\n const tag = Object.prototype.toString.call(value)\n const isFunction = tag === '[object AsyncFunction]' || tag === '[object Function]' || tag === '[object GeneratorFunction]' || tag === '[object Proxy]'\n if (isFunction) {\n return value()\n }\n else {\n return value\n } \n}\n\n\nexport { getMaybeFuncValue }","import {useState, useEffect, useCallback, useRef} from 'react'\nimport { useCustomEvents } from '../input/useCustomEvents'\nimport { getMaybeFuncValue } from '../util/getMaybeFuncValue'\n\n// About autoFocus\n// We could handle by our own through ref callbacks\n// (https://blog.maisie.ink/react-ref-autofocus/)\n// But let's just use react's autoFocus attribute by now\n\n\n\nconst useCalendarProps = (calendarPlacement, inputRef, autoFocus, onBlur, onFocus) => {\n const [open, setOpen] = useState(false)\n \n const [placement, setPlacement] = useState(getMaybeFuncValue(calendarPlacement))\n\n const hiddenInputRef = useRef()\n const overlayContainerRef = useRef()\n const popoverRef = useRef()\n const controlInputRef = typeof inputRef == 'object'\n ? inputRef\n : useRef(inputRef) // eslint-disable-line react-hooks/rules-of-hooks\n\n // NOTE: do we want to use the controlInput or the hiddenInput here?\n const [customOnBlur, customOnFocus] = useCustomEvents(/*hiddenInputRef*/ controlInputRef, onBlur, onFocus)\n\n const isOutside = useCallback((event) => {\n const outOfCalendar = (popoverRef?.current==undefined) || (!popoverRef?.current.contains(event.target))\n const outOfControlInput = (controlInputRef?.current==undefined) || (!controlInputRef.current.contains(event.target))\n const isOut= (outOfCalendar && outOfControlInput)\n return isOut\n }, [popoverRef, controlInputRef])\n\n // Control the click outside\n useEffect(() => {\n function handleClickOutside(event) {\n event.stopPropagation()\n\n if (open) {\n if (isOutside(event)) {\n setOpen(false)\n customOnBlur()\n }\n }\n }\n \n document.addEventListener(\"mousedown\", handleClickOutside)\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside)\n }\n }, [open, isOutside, customOnBlur])\n\n\n //\n // This callback is bound to Calendar.Popover's toggle() method,\n // but seems it's unneccesary \n // Leaving, by now, this testimonial comments\n //\n // const handleHide = () => {\n // let inputFocused = false\n // try {\n // inputFocused= controlInputRef.current==document.activeElement\n // } catch(e) {}\n // \n // if (inputFocused) {\n // return\n // }\n // setOpen(false)\n // customOnBlur()\n // }\n\n const handleFocus = useCallback(() => {\n const nPlacement = getMaybeFuncValue(calendarPlacement)\n setPlacement(nPlacement)\n\n setOpen(true)\n customOnFocus()\n }, [calendarPlacement, customOnFocus])\n\n const handleBlur = useCallback((event) => {\n if (isOutside(event)) {\n setOpen(false)\n customOnBlur() \n }\n }, [isOutside, customOnBlur])\n\n return [hiddenInputRef, overlayContainerRef, popoverRef, controlInputRef, open, placement, handleFocus, handleBlur]\n}\n\nexport { useCalendarProps }\n\n","import React, { useImperativeHandle, forwardRef } from 'react'\n\nimport { useCheckProps } from './util/useCheckProps'\nimport { InputGroup } from './input/InputGroup'\nimport { InputOverlay } from './input/InputOverlay'\nimport { InputHidden } from './input/InputHidden'\nimport { InputClearButton } from './input/InputClearButton'\nimport { InputControlInput } from './input/InputControlInput'\nimport { useInputValues } from './input/useInputValues'\nimport { useInputIds } from './input/useInputIds'\nimport { useFixedDayLabels } from './input/useDayLabels'\nimport { Calendar } from './calendar/Calendar'\nimport { useCalendarProps } from './calendar/useCalendarProps'\n\nconst _defaultDateFormat= () => {\n const language = typeof window !== 'undefined' && window.navigator ? (window.navigator.userLanguage || window.navigator.language || '').toLowerCase() : ''\n const dateFormat = !language || language === 'en-us' ? 'MM/DD/YYYY' : 'DD/MM/YYYY'\n return dateFormat\n}\n\nconst DEFAULT_DAY_LABELS = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']\nconst DEFAULT_MONTH_LABELS = ['January', 'February', 'March', 'April',\n 'May', 'June', 'July', 'August', 'September',\n 'October', 'November', 'December']\n\nconst DatePickerBase = (props, ref) => {\n\n const {\n // Global props\n value, \n defaultValue, \n id, \n name, \n dateFormat = _defaultDateFormat(),\n minDate,\n maxDate, \n clearButtonElement = '×',\n showClearButton = true,\n\n // Event props\n onInvalid,\n onChange,\n onClear,\n onBlur,\n onFocus,\n \n // Input Group props\n size,\n valid, \n invalid,\n customInputGroup, \n \n // Input props\n autoComplete = 'on',\n autoFocus = false,\n disabled = false,\n noValidate = false,\n placeholder,\n required,\n className,\n style = undefined /* {\n width: '100%'\n } */,\n inputRef,\n customControl,\n children, \n \n // Calendar props\n // target,\n calendarContainer, \n \n dayLabels = DEFAULT_DAY_LABELS,\n monthLabels = DEFAULT_MONTH_LABELS,\n weekStartsOn,\n showWeeks = false,\n previousButtonElement= '<',\n nextButtonElement = '>',\n pickMonthElement = undefined,\n showTodayButton = false,\n todayButtonLabel = 'Today',\n roundedCorners = false,\n cellPadding = '5px',\n calendarPlacement = 'bottom'\n } = props\n\n const propError= useCheckProps(value, defaultValue)\n if (propError!=undefined) {\n throw new Error(propError)\n }\n\n\n const [hiddenInputRef, overlayContainerRef, popoverRef, controlInputRef, open, placement, \n handleFocus, handleBlur] = useCalendarProps(calendarPlacement, inputRef, autoFocus, onBlur, onFocus)\n\n const [innerValue, inputValue, displayDate, \n selectedDate, handleClear, handleInputChange, \n handleChangeMonth, handleChangeDate, handleBadInputOnBlur] = useInputValues(controlInputRef, value, defaultValue, \n minDate, maxDate, dateFormat, onClear, onChange)\n\n const [groupInputId, hiddenInputId, controlInputId, overlayId] = useInputIds(id, name, customControl)\n\n useImperativeHandle(ref, () => ({\n getValue: () => {\n return selectedDate ? selectedDate.toISOString() : null;\n },\n getFormattedValue: () => {\n return displayDate ? inputValue : null;\n },\n getNode: () => controlInputRef?.current\n })) //, [controlInputRef, displayDate, inputValue, selectedDate]))\n \n\n const fixedDayLabels = useFixedDayLabels(dayLabels, weekStartsOn)\n\n const handleChangeDateAndBlur = (nSelectedDate) => {\n handleChangeDate(nSelectedDate)\n handleBlur(true)\n }\n \n return (\n <InputGroup\n customInputGroup = {customInputGroup}\n size = {size}\n inputId = {groupInputId}>\n \n <InputControlInput \n controlId = {controlInputId}\n customControl = {customControl}\n value = {inputValue || ''}\n required = {required}\n placeholder = {placeholder || ''}\n inputRef = {controlInputRef}\n disabled = {disabled}\n className = {className}\n style = {style}\n autoFocus = {autoFocus}\n autoComplete = {autoComplete}\n onInvalid = {onInvalid}\n noValidate = {noValidate}\n valid = {valid}\n invalid = {invalid}\n onFocus = {() => handleFocus()}\n onBlur = {(event) => {handleBadInputOnBlur(); handleBlur(event) }}\n onChange = {() => handleInputChange()}\n />\n\n <InputOverlay \n overlayContainerRef = {overlayContainerRef}\n oid = {overlayId}>\n\n {overlayContainerRef.current == undefined\n ? null\n : \n\n <Calendar\n popoverRef = {popoverRef}\n placement = {placement}\n open = {open}\n container = {calendarContainer || overlayContainerRef}\n target = {controlInputId}\n previousButtonElement= {previousButtonElement}\n nextButtonElement = {nextButtonElement}\n pickMonthElement = {pickMonthElement}\n displayDate = {displayDate}\n minDate = {minDate}\n maxDate = {maxDate}\n onChangeMonth = {(newDisplayDate) => handleChangeMonth(newDisplayDate)}\n monthLabels = {monthLabels}\n cellPadding = {cellPadding}\n selectedDate = {selectedDate}\n onChange = {(newSelectedDate) => handleChangeDateAndBlur(newSelectedDate)}\n dayLabels = {fixedDayLabels}\n weekStartsOn = {weekStartsOn}\n showTodayButton = {showTodayButton}\n todayButtonLabel = {todayButtonLabel}\n roundedCorners = {roundedCorners}\n showWeeks = {showWeeks}/>\n }\n </InputOverlay>\n \n <InputHidden\n inputId = {hiddenInputId}\n name = {name}\n value = {innerValue || ''}\n formattedValue = {innerValue ? inputValue : ''}\n hiddenInputRef = {hiddenInputRef}\n />\n \n \n {(showClearButton && !customControl)\n ? \n <InputClearButton\n inputValue = {inputValue}\n disabled = {disabled}\n clearButtonElement = {clearButtonElement}\n onClick = {() => handleClear()}\n /> \n : null \n }\n \n {children}\n \n </InputGroup>\n )\n}\n\nconst DatePicker = forwardRef(DatePickerBase)\n\nexport {DatePicker}\n"],"names":["useCheckProps","value","defaultValue","undefined","InputGroup","_ref","children","customInputGroup","size","inputId","React","cloneElement","createElement","RSInputGroup","id","className","InputOverlay","oid","overlayContainerRef","ref","InputHidden","name","formattedValue","hiddenInputRef","type","InputClearButton","inputValue","disabled","clearButtonElement","onClick","InputGroupText","style","opacity","cursor","InputControlInput","customControl","controlId","required","placeholder","inputRef","autoFocus","autoComplete","valid","invalid","onInvalid","noValidate","onKeyDown","onFocus","onBlur","onChange","validityClassNames","concat","props","_objectSpread","Input","innerRef","setTimeToNoon","date","setHours","getTimezoneOffset","setMinutes","setSeconds","setMilliseconds","getDateFromIsoString","isoString","Date","getIsoStringFromDate","toISOString","_makeInputValueString","separator","dateFormat","month","getMonth","day","getDate","match","getFullYear","useInputValues","controlInputRef","minDate","maxDate","onClear","setSeparator","useState","innerValue","setInnerValue","setInputValue","displayDate","setDisplayDate","selectedDate","setSelectedDate","useEffect","nSelectedDate","nInnerValue","nInputValue","nDisplayDate","today","parse","handleClear","handleBadInput","originalValue","tail","arguments","length","parts","replace","RegExp","split","slice","padEnd","join","handleBadInputOnBlur","_controlInputRef$curr","current","handleInputChange","_controlInputRef$curr2","year","monthInteger","parseInt","dayInteger","yearInteger","beforeMinDate","afterMaxDate","isNaN","handleChangeMonth","handleChangeDate","getInstanceCount","window","_reactstrapDatePickerInstance","next","process","console","error","_getIdSuffix","iCount","toString","_getInputIds","_customControl$props","idSuffix","group","hidden","control","overlay","useInputIds","inputIds","setInputIds","_getFixedDayLabels","dayLabels","weekStartsOn","useFixedDayLabels","fixedDayLabels","setFixedDayLabels","compareMonths","a","b","da","db","sameYear","sameMonth","e","_getYearList","minYear","maxYear","yList","y","push","PickMonthDefault","monthLabels","onChangeMonth","onChangeYear","setMonth","setYear","yearList","setYearList","ev","m","target","handleChangeYear","display","flexFlow","flexWrap","flex","lineHeight","fontSize","padding","map","lmonth","lidx","key","lyear","CalendarHeader","previousButtonElement","nextButtonElement","pickMonthElement","displayingMinMonth","setDisplayingMinMonth","displayingMaxMonth","setDisplayingMaxMonth","title","setTitle","PickMonthElement","handleChangeMonthIncr","inc","newDisplayDate","setFullYear","userSelect","flexBasis","alignSelf","CalendarSubHeader","showWeeks","cellPadding","label","index","CalendarDayOutOfMonth","CAL_DAY_CLASSNAME_BY_MODE","CalendarDayInMonth","mode","onDayClick","roundedCorners","handleClick","borderRadius","CalendarWeekNum","weekNum","color","CalendarBody","calendarDays","week","weekIndex","weekDays","weekDay","weekDayIndex","inMonth","CalendarFooter","handleTodayClick","showTodayButton","todayButtonLabel","colSpan","paddingTop","Button","block","DAYS_BY_MONTH","_groupByWeeks","firstDay","startingDay","getDay","monthLength","isInMonth","monthDay","getWeekNumber","valueOf","dayNr","setDate","firstThursday","Math","ceil","allWeeks","weeks","_makeCalendarDays","groupByWeeks","getDayMode","currentDate","useCalendarDays","setGroupByWeeks","setCalendarDays","Calendar","popoverRef","placement","open","container","handleDayClick","currentTarget","getAttribute","newSelectedDate","Fragment","Popover","isOpen","PopoverHeader","tag","PopoverBody","useCustomEvents","customOnBlur","useCallback","event","document","createEvent","initEvent","dispatchEvent","customOnFocus","getMaybeFuncValue","Object","prototype","call","isFunction","useCalendarProps","calendarPlacement","setOpen","setPlacement","useRef","isOutside","outOfCalendar","contains","outOfControlInput","isOut","handleClickOutside","stopPropagation","addEventListener","removeEventListener","handleFocus","nPlacement","handleBlur","_defaultDateFormat","language","navigator","userLanguage","toLowerCase","DEFAULT_DAY_LABELS","DEFAULT_MONTH_LABELS","DatePickerBase","showClearButton","calendarContainer","propError","Error","groupInputId","hiddenInputId","controlInputId","overlayId","useImperativeHandle","getValue","getFormattedValue","getNode","handleChangeDateAndBlur","DatePicker","forwardRef"],"mappings":"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"}