{"version":3,"file":"700.cff8590c.chunk.js","mappings":"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","sources":["components/EventsTable/EventListWrapper.tsx","components/EventsTable/EventSidebar.tsx"],"sourcesContent":["import React from \"react\";\nimport { makeStyles } from \"@civicplus/preamble-ui/lib/Utilities/ThemeHelper\";\nimport Grid from \"@civicplus/preamble-ui/lib/Grid\";\nimport EventFilter from \"./EventFilter\";\nimport EventSidebar from \"./EventSidebar\";\nimport EventList from \"./EventList\";\n\nconst useStyles = makeStyles(theme => ({\n root: {\n display: \"flex\",\n flexGrow: 1,\n padding: theme.spacing(2),\n container: \"mainContainer / inline-size\",\n },\n asideSection: {\n flexGrow: 1,\n width: \"100%\",\n maxWidth: 300,\n \"@container mainContainer (width > 800px)\": {\n maxWidth: 350,\n },\n [theme.breakpoints.down(\"md\")]: {\n display: \"none\",\n },\n },\n mainSection: {\n flex: 1,\n display: \"flex\",\n },\n mainSectionGrid: {\n flexWrap: \"nowrap\",\n flexDirection: \"column\",\n },\n eventsContainer: {\n display: \"flex\",\n flexGrow: 1,\n flexDirection: \"column\",\n minHeight: theme.spacing(40),\n },\n eventFilterGrid: {\n flexShrink: 1,\n flexBasis: 0,\n },\n}));\n\nconst EventListWrapper: React.FC = () => {\n const classes = useStyles();\n const Root = process.env.REACT_APP_EMBED ? \"section\" : \"main\";\n return (\n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default EventListWrapper;\n","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"],"names":["useStyles","makeStyles","theme","root","display","flexGrow","padding","spacing","container","asideSection","_defineProperty","width","maxWidth","breakpoints","down","mainSection","flex","mainSectionGrid","flexWrap","flexDirection","eventsContainer","minHeight","eventFilterGrid","flexShrink","flexBasis","classes","_jsx","className","children","_jsxs","Grid","item","component","EventSidebar","xs","EventFilter","EventList","minWidth","dateFilterSpacing","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","useTheme","isDesktopView","useMediaQuery","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","_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","outsideCurrentMonth","Tooltip","placement","disableMargin","selected","onDaySelect","DateFilter"],"sourceRoot":""}