{"version":3,"file":"962.fdf6b36d.chunk.js","mappings":"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","sources":["components/EventsTable/EventSidebar.tsx","components/EventsTable/filters/DatePickerWrapper.tsx","components/EventsTable/filters/DateRangeWrapper.tsx","components/EventsTable/filters/DateFilter.tsx","../node_modules/@civicplus/preamble-ui/lib/Utilities/StringHelper.js"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport {\n makeStyles,\n useTheme,\n} from \"@civicplus/preamble-ui/lib/Utilities/ThemeHelper\";\nimport useMediaQuery from \"@material-ui/core/useMediaQuery\";\nimport {\n formatDate,\n getFormattedDateStringYearMonthDay,\n parseDate,\n} from \"@civicplus/preamble-ui/lib/Utilities/DateHelper\";\nimport { updateEventFilters, updateSelectedDate } from \"../../actions\";\nimport debounce from \"lodash/debounce\";\nimport { removeStringDateTimeZone } from \"../../utils\";\nimport { v1Api, ApiResponse } from \"../../apis\";\nimport { useSnackbar } from \"notistack\";\nimport { rowQuerySelector } from \"./EventListRow\";\nimport { StaticDatePicker } from \"@mui/x-date-pickers/StaticDatePicker\";\nimport { styled, ThemeProvider } from \"@mui/material/styles\";\nimport {\n LocalizationProvider,\n CalendarPickerSkeleton,\n PickersDay,\n PickersDayProps,\n} from \"@mui/x-date-pickers\";\nimport { AdapterDateFns } from \"@mui/x-date-pickers/AdapterDateFns\";\nimport DateFilter from \"./filters/DateFilter\";\nimport { lighten } from \"@mui/material\";\nimport classNames from \"classnames\";\nimport Tooltip from \"@civicplus/preamble-ui/lib/Tooltip\";\nimport { AppDispatch, RootState } from \"../../app/store\";\nimport { isCancel } from \"axios\";\nconst useStyles = makeStyles(theme => ({\n root: {\n \"@container mainContainer (width < 800px)\": {\n width: \"280px\",\n },\n \"@container mainContainer (width > 800px)\": {\n minWidth: theme.spacing(36),\n },\n },\n dateFilterSpacing: { padding: \"0 2px\" },\n dateFilterBetween: {\n backgroundColor: lighten(theme.palette.primary.light, 0.88),\n },\n dateFilterStart: { borderRadius: \"50% 0% 0% 50%\" },\n dateFilterEnd: { borderRadius: \"0% 50% 50% 0%\" },\n sameDate: { borderRadius: \"50%\" },\n MuiPicker: {\n \"& .MuiPickersDay-root.Mui-disabled\": {\n fontWeight: theme.typography.fontWeightRegular,\n },\n \"@container mainContainer (width < 800px)\": {\n \"& .Mui-selected\": {\n color: \"#fff !important;\",\n },\n \"& .MuiPickerStaticWrapper-content\": {\n minWidth: theme.spacing(35),\n },\n \"& .MuiDayPicker-weekContainer, & .MuiDayPicker-header, & .MuiDayPicker-loadingContainer, & .MuiMonthPicker-root, & .MuiYearPicker-root\":\n {\n width: \"275px\",\n },\n \"& .MuiPickersCalendarHeader-root\": {\n paddingRight: theme.spacing(6),\n },\n },\n },\n disabledDate: {\n color: `${theme.palette.grey[600]} !important`,\n cursor: \"not-allowed !important\",\n },\n enabledDate: {\n \"&.MuiPickersDay-root\": {\n //font is not withing preamble theme provider. Cant create this new value.\n fontWeight: \"800 !important\",\n //Spacing for aligning bigger font.\n paddingBottom: theme.spacing(0.38),\n },\n },\n}));\n\ninterface CustomPickerDayProps extends PickersDayProps {\n dayIsBetween: boolean;\n isFirstDay: boolean;\n isLastDay: boolean;\n isLastWeekDay: boolean;\n isFistWeekDay: boolean;\n isDisabled: boolean;\n}\n\nconst EventSidebar: React.FC = () => {\n const eventFilters = useSelector((state: RootState) => state.eventFilters);\n const selectedDate = useSelector((state: RootState) => state.selectedDate);\n const dispatch = useDispatch();\n const [datePickerReady, setDatePickerReady] = useState(false);\n const { enqueueSnackbar } = useSnackbar();\n const [datesWithEvents, setDatesWithEvents] = useState>(\n new Set()\n );\n const requestController = useRef();\n const [view, setView] = useState(\"day\");\n const classes = useStyles();\n const theme = useTheme();\n const isDesktopView = useMediaQuery(theme.breakpoints.up(\"lg\"));\n\n const onChangeDate = (value: string | null) => {\n const date = value ? new Date(value) : new Date();\n date.setHours(0, 0, 0);\n dispatch(updateSelectedDate(date.toDateString()));\n\n dispatch(\n updateEventFilters({\n calendarDate: date.toDateString(),\n })\n );\n };\n\n const findFirstElementInViewPort = (elements: NodeListOf) =>\n Array.prototype.find.call(\n elements,\n element => element.getBoundingClientRect().y >= 260\n );\n\n const getDatesWithEvents = useCallback(\n async (date: string, categories: number[]) => {\n // If there was a previous request in progress still, cancel it\n requestController.current?.abort();\n\n const selectedDate = new Date(date);\n selectedDate.setHours(0, 0, 0);\n const dates: Set = new Set();\n try {\n const monthDate = new Date(\n getFormattedDateStringYearMonthDay(selectedDate, \"\")\n );\n\n requestController.current = new AbortController();\n const response: ApiResponse = await v1Api.get(\n `/Events/GetDaysInMonthWithEvents(date='${\n monthDate.toISOString().split(\"T\")[0]\n }',categories=${categories ? JSON.stringify(categories) : \"[]\"})`,\n {\n signal: requestController.current?.signal,\n }\n );\n\n if (response && response.data.value?.length) {\n response.data.value.forEach(dateWithEvent => {\n // Was implemented to replace '-' characters for '/', since firefox just\n // accepts dates with '/' characters *That's not a permanent fix, it should be fixed\n // in getFormattedDateStringYearMonthDay within Preamble\n const firefoxCompatibleDateFormat = dateWithEvent.replace(\n /-/g,\n \"/\"\n );\n\n dates.add(\n getFormattedDateStringYearMonthDay(\n firefoxCompatibleDateFormat,\n \"\"\n )\n );\n });\n }\n } catch (e) {\n if (isCancel(e)) {\n // Do nothing as this was intentionally cancelled\n } else {\n enqueueSnackbar(\"There was an error getting the dates with events\", {\n variant: \"error\",\n });\n }\n }\n return dates;\n },\n [enqueueSnackbar]\n );\n\n const handleMonthChange = useCallback(\n async (date: string) => {\n const newDates = await getDatesWithEvents(\n date,\n eventFilters.categories ?? []\n );\n setDatesWithEvents(newDates);\n },\n [eventFilters.categories, getDatesWithEvents]\n );\n\n const loadMonth = useCallback(\n async (date: string) => {\n dispatch(updateSelectedDate(date));\n await handleMonthChange(date);\n },\n [dispatch, handleMonthChange]\n );\n\n const scrollEventListener = useCallback(() => {\n const events = document.querySelectorAll(rowQuerySelector);\n if (events) {\n const element = findFirstElementInViewPort(events);\n if (element) {\n const dateElement = element.getAttribute(\"data-date\");\n const dateValue = new Date(removeStringDateTimeZone(dateElement));\n loadMonth(dateValue.toDateString());\n }\n }\n }, [loadMonth]);\n\n useEffect(() => {\n const ctn = document.getElementById(\"scroll-wrap\");\n const debouncedListener = debounce(scrollEventListener, 50);\n ctn?.addEventListener(\"scroll\", debouncedListener);\n return () => {\n ctn?.removeEventListener(\"scroll\", debouncedListener);\n };\n }, [scrollEventListener]);\n\n useEffect(() => {\n let isCancelled = false;\n const init = async () => {\n const newDates = await getDatesWithEvents(new Date().toString(), []);\n if (!isCancelled) {\n setDatePickerReady(true);\n setDatesWithEvents(newDates);\n\n // We need to remove the aria-live from this month header\n const header = document?.querySelector(\n \".MuiPickersCalendarHeader-labelContainer\"\n );\n header?.setAttribute(\"aria-live\", \"off\");\n }\n // We need to remove the aria-live from this month header\n const header = document?.querySelector(\n \".MuiPickersCalendarHeader-labelContainer\"\n );\n header?.setAttribute(\"aria-live\", \"off\");\n };\n init();\n // We need to cancel any state updates if the component unmounts to prevent memory leaks\n return () => {\n isCancelled = true;\n };\n }, [getDatesWithEvents]);\n\n const RangePickersDay = styled(PickersDay, {\n shouldForwardProp: prop =>\n prop !== \"dayIsBetween\" &&\n prop !== \"isFirstDay\" &&\n prop !== \"isLastDay\" &&\n prop !== \"isLastWeekDay\" &&\n prop !== \"isFistWeekDay\" &&\n prop !== \"isDisabled\",\n })(\n ({\n theme,\n dayIsBetween,\n isFirstDay,\n isLastDay,\n isLastWeekDay,\n isFistWeekDay,\n isDisabled,\n }) => ({\n ...(dayIsBetween && {\n borderRadius: \"50%\",\n backgroundColor: \"transparent\",\n color: theme.palette.getContrastText(\n lighten(theme.palette.primary.light, 0.88)\n ),\n \"&:hover, &:focus\": {\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.primary.contrastText,\n },\n }),\n ...((isFistWeekDay || isLastWeekDay || isFirstDay || isLastDay) && {\n backgroundColor: \"transparent\",\n }),\n ...((isFirstDay || isLastDay) && {\n borderRadius: \"50%\",\n backgroundColor: lighten(theme.palette.primary.light, 0.3),\n color: `${theme.palette.getContrastText(\n lighten(theme.palette.primary.light, 0.3)\n )}`,\n }),\n ...(isDisabled &&\n dayIsBetween && {\n color: `${lighten(\n theme.palette.getContrastText(\n lighten(theme.palette.primary.light, 0.88)\n ),\n 0.35\n )} !important`,\n \"&:hover, &:focus\": {\n backgroundColor: lighten(theme.palette.primary.light, 0.3),\n },\n cursor: \"not-allowed !important\",\n }),\n ...(isDisabled &&\n (isFirstDay || isLastDay) && {\n color: `${theme.palette.getContrastText(\n lighten(theme.palette.primary.light, 0.3)\n )} !important`,\n }),\n ...(!isDisabled &&\n dayIsBetween && {\n //font is not withing preamble theme provider. Cant create this new value.\n fontWeight: 800,\n }),\n ...(isDisabled &&\n !dayIsBetween && {\n color: `${theme.palette.grey[600]} !important`,\n cursor: \"not-allowed !important\",\n }),\n })\n ) as React.ComponentType;\n\n const renderDay = (\n day: string,\n selectedDays: string[],\n DayComponentProps: PickersDayProps\n ) => {\n //Extracting onFocus due to conflicts with PickerDays inside of Tooltips\n const { onFocus, ...otherDayComponentProps } = DayComponentProps;\n const hasEvent: boolean = datesWithEvents?.has(\n getFormattedDateStringYearMonthDay(day, \"\")\n );\n\n const disabledDate = (): boolean => {\n const date = Date.parse(day);\n if (eventFilters.date?.from && Date.parse(eventFilters.date?.from) > date)\n return true;\n else if (\n eventFilters.date?.to &&\n Date.parse(eventFilters.date?.to) < date\n )\n return true;\n else if (hasEvent) return false;\n return true;\n };\n\n const shouldDisableDate = disabledDate();\n const friendlyDate = formatDate(new Date(day), \"MMMM d, yyyy\");\n const title = shouldDisableDate\n ? `There are no events on ${friendlyDate}`\n : \"\";\n const toolTipKey = DayComponentProps.key + \"tooltip\";\n\n if (eventFilters.date?.from && eventFilters.date?.to) {\n const startDate = Date.parse(eventFilters.date?.from);\n const endDate = Date.parse(eventFilters.date?.to);\n const sameDate = startDate === endDate;\n const checkDate = Date.parse(day);\n const isBetween = checkDate >= startDate && checkDate <= endDate;\n const isStart = checkDate === startDate;\n const isEnd = checkDate === endDate;\n const isLastWeekDay = new Date(day).getDay() === 6 && isBetween;\n const isFirstWeekDay = new Date(day).getDay() === 0 && isBetween;\n\n return (\n \n \n false : DayComponentProps.onDaySelect\n }\n dayIsBetween={isBetween}\n isFirstDay={isStart}\n isLastDay={isEnd}\n isDisabled={shouldDisableDate}\n isLastWeekDay={isLastWeekDay}\n isFistWeekDay={isFirstWeekDay}\n />\n \n \n );\n }\n\n return (\n \n false : DayComponentProps.onDaySelect\n }\n className={classNames({\n [classes.disabledDate]: shouldDisableDate,\n [classes.enabledDate]: !shouldDisableDate,\n })}\n />\n \n );\n };\n\n /**\n * Workaround for keyboard navigation not firing onMonthChange for StaticDatePicker\n * Remove this if MUI-X fixes this:\n * https://github.com/mui/mui-x/issues/6953\n */\n const [hasRendered, setHasRendered] = useState(false);\n useEffect(() => {\n // Need to make sure the calendar has rendered before adding MutationObserver\n setHasRendered(true);\n\n // Need a reference to the observer to disconnect it\n let observer: MutationObserver | undefined;\n\n if (hasRendered) {\n const monthHeaderChanged = (e: MutationRecord[]) => {\n // Only detect the new month being added, not the old month being removed\n if (e.length && e[0].addedNodes?.length) {\n const newDateString = (e[0].addedNodes[0] as HTMLElement).innerText;\n const formattedDate = (\n parseDate(newDateString, \"MMMM yyyy\") as Date\n ).toString();\n handleMonthChange(formattedDate);\n }\n };\n\n observer = new MutationObserver(monthHeaderChanged);\n const element = document?.querySelector(\n \".MuiPickersCalendarHeader-labelContainer .MuiPickersFadeTransitionGroup-root\"\n ) as HTMLElement;\n if (element) {\n observer.observe(element, {\n childList: true,\n // subtree: true,\n // characterData: true,\n });\n }\n }\n\n return () => {\n observer?.disconnect();\n };\n }, [handleMonthChange, hasRendered]);\n\n return (\n
\n {isDesktopView && (\n <>\n \n \n \n )}\n
\n );\n};\n\nexport default EventSidebar;\n","import React, {\n ReactNode,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from \"react\";\nimport {\n DatePicker,\n DatePickerProps,\n LocalizationProvider,\n} from \"@mui/x-date-pickers\";\nimport ErrorIcon from \"@material-ui/icons/Error\";\nimport {\n makeStyles,\n useTheme,\n} from \"@civicplus/preamble-ui/lib/Utilities/ThemeHelper\";\nimport { TextField } from \"@mui/material\";\nimport { AdapterDateFns } from \"@mui/x-date-pickers/AdapterDateFns\";\nimport {\n formatDate,\n parseDate,\n} from \"@civicplus/preamble-ui/lib/Utilities/DateHelper\";\nimport { usePrevious } from \"@civicplus/preamble-ui/lib/Utilities/StateHelper\";\nimport { ThemeProvider } from \"@mui/material/styles\";\nimport classNames from \"classnames\";\n\nexport const useStyles = makeStyles(theme => ({\n errorMessageWrapper: {\n display: \"flex\",\n flexGrow: 1,\n flexDirection: \"row\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n margin: 0,\n padding: theme.spacing(1),\n paddingRight: theme.spacing(1.5),\n background: theme.palette.error.dark,\n color: theme.palette.background.paper,\n fontWeight: \"bold\",\n borderRadius: `0 0 ${theme.shape.borderRadius}px ${theme.shape.borderRadius}px`,\n },\n errorIcon: {\n marginRight: theme.spacing(0.5),\n },\n errorHelperText: { \"& .MuiFormHelperText-root\": { margin: 0 } },\n dateFilterField: {\n width: \"100%\",\n \"& .MuiFormLabel-root.MuiInputLabel-root.MuiInputLabel-shrink\": {\n color: theme.palette.primary.main,\n fontWeight: \"bold\",\n },\n \"& .MuiOutlinedInput-root\": {\n backgroundColor: theme.palette.background.paper,\n \"& fieldset\": {\n borderRadius: theme.spacing(0.25),\n borderColor: theme.palette.action.disabled,\n },\n },\n \"& .MuiOutlinedInput-input:-webkit-autofill\": {\n \"-webkit-box-shadow\": `0 0 0 100px ${theme.palette.primary.main} inset`,\n },\n // Reenforcing MUI input styles for embeds.\n \"& .MuiInputBase-input.MuiOutlinedInput-input.MuiInputBase-inputAdornedEnd\":\n {\n boxSizing: \"content-box\",\n },\n },\n dateFilterActionBar: {\n \"& button:first-child\": { marginRight: \"auto\" },\n },\n}));\ninterface IDatePickerWrapper\n extends Omit, \"onChange\"> {\n error: boolean;\n errorMessage: string;\n executeValidation: (value: Date | null) => void;\n helperText: ReactNode;\n showMask: boolean;\n required: boolean;\n onChange: (\n value: { target: { value: Date | null } },\n date?: Date | null\n ) => void;\n}\n\nexport const DatePickerWrapper = React.forwardRef<\n HTMLInputElement,\n IDatePickerWrapper\n>(\n (\n {\n error,\n errorMessage,\n helperText,\n onChange,\n value,\n mask,\n executeValidation,\n showMask,\n required,\n inputFormat,\n ...otherProps\n },\n ref\n ) => {\n const theme = useTheme();\n const classes = useStyles();\n const [currentValue, setCurrentValue] = useState(value);\n const prevValue = usePrevious(currentValue);\n const refPicker = useRef(null);\n React.useImperativeHandle(\n ref,\n () => refPicker.current\n );\n\n useEffect(() => {\n setCurrentValue(value);\n }, [value]);\n\n const renderedErrorMessage = (\n \n \n {errorMessage}\n \n );\n const messageText =\n error && errorMessage ? renderedErrorMessage : helperText;\n\n const tryCreateValidDate = useCallback(\n date => {\n const formattedDate = formatDate(\n date,\n inputFormat ? inputFormat : \"M/d/yyyy\"\n );\n return parseDate(formattedDate, inputFormat ? inputFormat : \"M/d/yyyy\");\n },\n [inputFormat]\n );\n\n const handleOnChange = (date: Date | null) => {\n // If regular date, set time to 00:00:00 so we check the full day in validations.\n if (date && date !== null) {\n date.setHours(0, 0, 0, 0);\n }\n setCurrentValue(date);\n };\n const handleValidDate = (date: Date | null) => {\n setCurrentValue(date);\n onChange({ target: { value: date } }, date);\n };\n const handleOnBlur = (\n event: React.FocusEvent\n ) => {\n // If there is not mask, then we try to formatted the ourself\n const date = new Date(event.target.value);\n\n if (date && !isNaN(date.getTime())) {\n const parsedDate = tryCreateValidDate(date);\n if (parsedDate) {\n // If we was able to make a valid date/time, then we save it on the state and trigger the onChange\n setCurrentValue(parsedDate);\n onChange({ target: { value: date } }, parsedDate);\n return;\n }\n } else if (currentValue && !isNaN(currentValue.getTime())) {\n // currentValue is not null and has a valid date?\n // In case the formatting fail, we try to use the formatted object from the component\n onChange({ target: { value: date } }, currentValue);\n return;\n }\n if (error) {\n // We don't want to send a valid time value because it will throw an error\n // since the current value it not a valid date time object.\n const currentValue = refPicker?.current?.value\n ? new Date(refPicker?.current?.value)\n : null;\n setCurrentValue(currentValue);\n onChange({ target: { value: currentValue } }, currentValue);\n }\n // Need to execute validation here to check if the field is required after\n // leaving focus and it wasn't filled out.\n if (required && value == null && executeValidation) {\n executeValidation(null);\n }\n };\n const handleOnFocus = () => {\n if (error || errorMessage) {\n // When an invalid date is set as value, the date picker cannot be edited by keyboard.\n // This clears the value (setting to null), so that the user can type again.\n setCurrentValue(null);\n const dateValue = { target: { value: null } };\n onChange(dateValue, undefined);\n if (executeValidation) {\n executeValidation(currentValue);\n }\n }\n };\n\n useEffect(() => {\n if (typeof prevValue !== \"undefined\" && currentValue !== prevValue) {\n const dates = new Date(\n refPicker?.current?.value ? refPicker?.current?.value : \"\"\n );\n const parsedDates = tryCreateValidDate(dates);\n\n executeValidation(parsedDates || currentValue);\n }\n }, [currentValue, executeValidation, prevValue, tryCreateValidDate]);\n\n return (\n \n \n (\n \n )}\n />\n \n \n );\n }\n);\nDatePickerWrapper.displayName = \"DatePickerWrapper\";\n\nexport default DatePickerWrapper;\n","import React from \"react\";\nimport DateTimePicker from \"./DatePickerWrapper\";\nimport ErrorHandlingFormHelperText from \"@civicplus/preamble-ui/lib/ErrorHandlingFormHelperText/ErrorHandlingFormHelperText\";\nimport Range from \"@civicplus/preamble-ui/lib/Range\";\nimport DateTimeRange from \"@civicplus/preamble-ui/lib/DateTimeRange/DateTimeRange\";\nimport classNames from \"classnames\";\n\nexport const DateRangeWrapper = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps\n>((props, ref) => {\n const {\n disabled,\n error,\n errorMessage,\n format,\n fromProps,\n id,\n helperText,\n label,\n locale,\n maxValue,\n minValue,\n onBlur,\n required,\n toProps,\n value,\n pickerType,\n keyboard,\n executeValidation,\n className,\n fullWidth,\n onChange,\n ...otherProps\n } = props;\n\n const errorGlobal =\n typeof error === \"string\" ? error : error?.to || error?.from;\n const onlyErrorString = !error?.from && !error?.to && error;\n const onlyErrorMessageString =\n typeof errorMessage === \"string\" ? errorMessage : false;\n\n return (\n
\n \n \n
\n );\n});\n\nDateRangeWrapper.displayName = \"DateRangeWrapper\";\n\nDateRangeWrapper.defaultProps = {\n toProps: {},\n fromProps: {},\n};\n\nexport default DateRangeWrapper;\n","import React from \"react\";\nimport enhanceWithValidation, {\n dateRangeValidDateValidation,\n dateRangeBoundaryValidation,\n dateRangeMinValueValidation,\n dateRangeMaxValueValidation,\n} from \"@civicplus/preamble-ui/lib/Validations\";\nimport DateRangeWrapper from \"./DateRangeWrapper\";\nimport { updateEventFilters, updateSelectedDate } from \"../../../actions\";\nimport { makeStyles } from \"@civicplus/preamble-ui/lib/Utilities/ThemeHelper\";\nimport { AppDispatch, RootState } from \"../../../app/store\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { lighten } from \"@material-ui/core\";\n\nconst useStyles = makeStyles(theme => ({\n dateFilter: {\n flexWrap: \"nowrap\",\n [theme.breakpoints.up(\"lg\")]: {\n flexDirection: \"column\",\n },\n [theme.breakpoints.down(\"xs\")]: {\n flexDirection: \"column\",\n },\n \"& .prmbl-range-component\": {\n [theme.breakpoints.up(\"lg\")]: {\n marginBottom: theme.spacing(2),\n padding: 0,\n flexBasis: \"100%\",\n maxWidth: \"100%\",\n },\n [theme.breakpoints.down(\"xs\")]: {\n marginBottom: theme.spacing(1),\n padding: 0,\n flexBasis: \"100%\",\n maxWidth: \"100%\",\n },\n\n \"&:first-child\": {\n [theme.breakpoints.down(\"md\")]: {\n paddingRight: theme.spacing(1),\n },\n [theme.breakpoints.down(\"xs\")]: {\n paddingRight: 0,\n },\n },\n \"& fieldset\": {\n borderColor: lighten(theme.palette.grey[\"600\"], 0.2),\n },\n },\n },\n}));\n\nconst EnhancedDateRange = enhanceWithValidation(DateRangeWrapper);\n\nconst DateFilter: React.FC = () => {\n const eventFilters = useSelector((state: RootState) => state.eventFilters);\n const dispatch = useDispatch();\n const classes = useStyles();\n\n const onDateFilterChange = (\n _event: React.ChangeEvent,\n date: {\n from: Date | null;\n to: Date | null;\n }\n ) => {\n // Only goes if the new values are different\n if (JSON.stringify(dateForInputs) !== JSON.stringify(date)) {\n // In case that it is a clean fields\n if (!date.from && !date.to) {\n dispatch(updateSelectedDate(\"\"));\n dispatch(\n updateEventFilters({\n date: { from: null, to: null },\n })\n );\n } else {\n // If there is a input-from date in the range, we use that on the mini-calendar, if not, we use the input-to date.\n const selectedDate = date.from ? date.from : date.to;\n\n const parsedData = {\n from: date.from ? date.from.toDateString() : null,\n to: date.to ? date.to.toDateString() : null,\n };\n dispatch(\n updateEventFilters({\n date: parsedData,\n })\n );\n if (selectedDate !== null)\n dispatch(updateSelectedDate(selectedDate.toDateString()));\n }\n }\n };\n const dateForInputs = {\n from: eventFilters?.date?.from ? new Date(eventFilters.date.from) : null,\n to: eventFilters?.date?.to ? new Date(eventFilters.date.to) : null,\n };\n return (\n \n );\n};\n\nexport default DateFilter;\n","/** */\nexport const createInitials = name => {\n const nameParts = name.split(\" \");\n let initials = \"\";\n\n // Max out at 3 characters\n const numInitials = Math.min(nameParts.length, 3);\n for (let i = 0; i < numInitials; i++) {\n initials += nameParts[i].charAt(0);\n }\n return initials;\n};\n\n/** */\nexport const isNullOrWhiteSpace = value => {\n return value === null || value === undefined || typeof value !== \"object\" && (!value || value.toString().trim().length === 0);\n};\n\n/** */\nexport const formatPhoneNumber = phoneNumber => {\n if (phoneNumber) {\n return `${phoneNumber.slice(0, 3)}-${phoneNumber.slice(3, 6)}-${phoneNumber.slice(6)}`;\n }\n};\n\n/** */\nexport const getUsersName = user => {\n if (user && user.firstName && user.lastName) {\n return `${user.firstName} ${user.lastName}`;\n }\n return user && user.firstName || \"\";\n};\n\n/** */\nexport const hasSpecialCharacters = value => {\n return /[^\\w\\s]/gi.test(value);\n};\n\n/** */\nexport const isValidEmail = value => {\n // RFC 5322 Standard\n const emailRegex = /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n return emailRegex.test(value);\n};\n\n/** */\nexport const formatNumber = value => value.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n\n/** */\nexport const capitalizeFirstLetter = value => value.charAt(0).toUpperCase() + value.slice(1);\n\n/** */\nexport const getStringError = error => {\n if (error instanceof Error) {\n if (error.message) return error.message;\n return \"Unknown Error\";\n }\n return String(error);\n};\n\n/** */\nexport const removeTrailingSlash = str => {\n return str.replace(/\\/+$/, \"\");\n};"],"names":["useStyles","makeStyles","theme","root","width","minWidth","spacing","dateFilterSpacing","padding","dateFilterBetween","backgroundColor","lighten","palette","primary","light","dateFilterStart","borderRadius","dateFilterEnd","sameDate","MuiPicker","fontWeight","typography","fontWeightRegular","color","paddingRight","disabledDate","concat","grey","cursor","enabledDate","paddingBottom","_ref","_ref2","_ref3","eventFilters","useSelector","state","selectedDate","dispatch","useDispatch","_useState","useState","_useState2","_slicedToArray","datePickerReady","setDatePickerReady","enqueueSnackbar","useSnackbar","_useState3","Set","_useState4","datesWithEvents","setDatesWithEvents","requestController","useRef","_useState5","_useState6","view","setView","classes","useTheme","isDesktopView","useMediaQuery","breakpoints","up","getDatesWithEvents","useCallback","_x","_x2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","date","categories","_requestController$cu","dates","_requestController$cu2","_response$data$value","monthDate","response","wrap","_context","prev","next","current","abort","Date","setHours","getFormattedDateStringYearMonthDay","AbortController","v1Api","get","toISOString","split","JSON","stringify","signal","sent","data","value","length","forEach","dateWithEvent","firefoxCompatibleDateFormat","replace","add","t0","isCancel","variant","abrupt","stop","apply","arguments","handleMonthChange","_x3","_callee2","_eventFilters$categor","newDates","_context2","loadMonth","_x4","_callee3","_context3","updateSelectedDate","scrollEventListener","elements","events","document","querySelectorAll","rowQuerySelector","element","Array","prototype","find","call","getBoundingClientRect","y","dateElement","getAttribute","dateValue","removeStringDateTimeZone","toDateString","useEffect","ctn","getElementById","debouncedListener","debounce","addEventListener","removeEventListener","_ref4","isCancelled","_callee4","_document2","_document","_header","header","_context4","toString","querySelector","setAttribute","init","RangePickersDay","styled","PickersDay","shouldForwardProp","prop","_ref5","dayIsBetween","isFirstDay","isLastDay","isLastWeekDay","isFistWeekDay","isDisabled","_objectSpread","getContrastText","main","contrastText","_useState7","_useState8","hasRendered","setHasRendered","observer","_document3","MutationObserver","e","_e$0$addedNodes","addedNodes","newDateString","innerText","formattedDate","parseDate","observe","childList","_observer","disconnect","_jsx","className","children","_jsxs","_Fragment","LocalizationProvider","dateAdapter","AdapterDateFns","ThemeProvider","StaticDatePicker","undefined","renderLoading","CalendarPickerSkeleton","onChange","updateEventFilters","calendarDate","onChangeDate","views","onViewChange","renderInput","loading","displayStaticWrapperAs","renderDay","day","selectedDays","DayComponentProps","onFocus","_eventFilters$date5","_eventFilters$date6","_classNames2","otherDayComponentProps","_objectWithoutProperties","_excluded","hasEvent","has","shouldDisableDate","_eventFilters$date","_eventFilters$date2","_eventFilters$date3","_eventFilters$date4","parse","from","to","friendlyDate","formatDate","title","toolTipKey","key","_eventFilters$date7","_eventFilters$date8","_classNames","startDate","endDate","checkDate","isBetween","isStart","isEnd","getDay","isFirstWeekDay","classNames","_defineProperty","outsideCurrentMonth","Tooltip","placement","disableMargin","selected","onDaySelect","DateFilter","errorMessageWrapper","display","flexGrow","flexDirection","justifyContent","alignItems","margin","background","error","dark","paper","shape","errorIcon","marginRight","errorHelperText","dateFilterField","borderColor","action","disabled","boxSizing","dateFilterActionBar","DatePickerWrapper","React","ref","errorMessage","helperText","executeValidation","mask","required","showMask","inputFormat","otherProps","currentValue","setCurrentValue","prevValue","usePrevious","refPicker","renderedErrorMessage","ErrorIcon","messageText","tryCreateValidDate","handleOnBlur","event","target","isNaN","getTime","parsedDate","_refPicker$current","_refPicker$current2","handleOnFocus","_refPicker$current3","_refPicker$current4","parsedDates","DatePicker","closeOnSelect","showToolbar","PopperProps","onAccept","inputRef","componentsProps","actionBar","actions","props","_props$label","TextField","inputProps","label","placeholder","onBlur","displayName","DateRangeWrapper","fromProps","format","id","maxValue","locale","minValue","toProps","pickerType","keyboard","fullWidth","errorGlobal","onlyErrorString","onlyErrorMessageString","Range","component","DateTimePicker","ErrorHandlingFormHelperText","defaultProps","_firstChild","_prmblRangeCompo","_dateFilter","dateFilter","flexWrap","down","marginBottom","flexBasis","maxWidth","EnhancedDateRange","enhanceWithValidation","dateForInputs","autofocus","_event","parsedData","validations","dateRangeMinValueValidation","dateRangeMaxValueValidation","dateRangeValidDateValidation","dateRangeBoundaryValidation","createInitials","name","nameParts","initials","numInitials","Math","min","i","charAt","isValidEmail","test"],"sourceRoot":""}