{"version":3,"file":"static/js/4023.b1e9ea9e.chunk.js","mappings":"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","sources":["components/events/event-type-label/event-type-label.js","components/pages/institutes/program-events/events-page-service.js","components/events/event-or-announcement-selection/event-or-announcement-selection.js","components/events/calendar-events/use-calendar-events.js","components/events/calendar-events-filters/calendar-events-filters.js","components/events/calendar-events-list/styles.js","components/events/calendar-events-list/use-calendar-events-list.js","components/events/calendar-events-list/calendar-events-list.js","components/events/calendar-events/calendar-events.js","components/events/event-article/event-article.js","components/events/event-type-label/event-type-to-color.js"],"sourcesContent":["import React from \"react\";\r\n\r\nimport { H3, H6 } from \"@churchofjesuschrist/eden-headings\"\r\nimport { StarFilled } from \"@churchofjesuschrist/eden-icons\";\r\nimport { spacing24, spacing4 } from \"@churchofjesuschrist/eden-style-constants\";\r\nimport styled from \"styled-components\";\r\n\r\nimport eventTypeToColor from \"./event-type-to-color\";\r\nimport stringHasValue from \"../../../utils/string-has-value\";\r\nimport useTranslation from \"../../../utils/use-translations\";\r\n\r\nconst ColoredH3 = styled(H3)`\r\n color:${({color}) => color};\r\n`;\r\n\r\nconst ColoredH6 = styled(H6)`\r\n color:${({color}) => color};\r\n`;\r\n\r\nconst EventStar = styled(StarFilled)`\r\n margin-bottom: -${spacing4};\r\n`;\r\n\r\nconst stringGroups = [\r\n {\r\n name:\"shared\",\r\n keys:[\r\n \"event\",\r\n \"announcement\",\r\n \"featuredEvent\"\r\n ]\r\n }\r\n]\r\n\r\n\r\nconst EventTypeLabel = (props) => {\r\n const {\r\n type = \"event\",\r\n size = \"small\",\r\n programName,\r\n darkback = false,\r\n isFeatured = false\r\n } = props;\r\n const Hx = size === \"small\" ? ColoredH6 : ColoredH3;\r\n\r\n const {managedStrings} = useTranslation(stringGroups);\r\n const txt = isFeatured && size === \"large\" ?\r\n managedStrings.featuredEvent || managedStrings[type.toLowerCase()] :\r\n managedStrings[type.toLowerCase()];\r\n const color = eventTypeToColor(type, darkback);\r\n\r\n return (\r\n \r\n {txt}{stringHasValue(programName) && <>: {programName}}\r\n {isFeatured && size === \"small\" && }\r\n \r\n );\r\n}\r\n\r\nexport default EventTypeLabel;","import { serverStringToBrowserDate } from \"../../../../utils/date-utils\";\r\nimport fetchWrapper from \"../../../../utils/fetchWrapper\";\r\n\r\nconst processProgramEvent = (e) => {\r\n return {\r\n ...e,\r\n date: serverStringToBrowserDate(e.date)\r\n }\r\n}\r\n\r\nconst processProgramEventDates = (data) => {\r\n const events = data?.events.map(processProgramEvent) ?? [];\r\n\r\n return {...data, events};\r\n}\r\n\r\nconst eventsPageService = () => {\r\n const pageLoad = async ({ programId, eventId }) => {\r\n if (eventId) {\r\n const url = `api/programs/${programId}/events/${eventId}`;\r\n const data = await fetchWrapper({ url });\r\n return { eventId, events: [processProgramEvent(data)] };\r\n }\r\n const url = `api/programs/${programId}/eventsAndAnnouncements`;\r\n const data = await fetchWrapper({url});\r\n return processProgramEventDates(data);\r\n }\r\n return {\r\n pageLoad\r\n }\r\n}\r\n\r\nexport {processProgramEventDates};\r\nexport default eventsPageService;","import React from \"react\";\r\n\r\nimport {A11y} from \"@churchofjesuschrist/eden-buttons\";\r\nimport {H4} from \"@churchofjesuschrist/eden-headings\";\r\nimport { ChevronRightLarge } from \"@churchofjesuschrist/eden-icons\";\r\nimport { Row } from \"@churchofjesuschrist/eden-row\";\r\nimport {\r\n fontSize14,\r\n spacing16,\r\n spacing48,\r\n white\r\n} from \"@churchofjesuschrist/eden-style-constants\";\r\nimport {\r\n Divider\r\n} from \"@churchofjesuschrist/eden-tile-parts\";\r\nimport styled from \"styled-components\";\r\n\r\nimport {DateToDisplayString} from \"../../../utils/date-utils\";\r\nimport stringHasValue from \"../../../utils/string-has-value\";\r\nimport EventTypeLabel from \"../event-type-label/event-type-label\";\r\n\r\n\r\nconst ActiveChevron = styled(ChevronRightLarge)`\r\n height: ${spacing48}!important;\r\n width: ${spacing48}!important;\r\n margin-right:${spacing16};\r\n`;\r\n\r\n\r\n\r\nconst EventTitle = styled(H4)`\r\n color: ${({ textColor }) => textColor};\r\n margin-bottom: 0;\r\n`;\r\n\r\nconst EventTile = styled.div`\r\n flex:1;\r\n`;\r\n\r\nconst EventDateAndLocation = styled(Row)`\r\n color: ${({ textColor }) => textColor};\r\n font-size: ${fontSize14};\r\n`;\r\n\r\nconst EventDivider = styled(Divider)`\r\n border-inline-start: 1px solid ${white};\r\n`;\r\n\r\nconst EventButton = styled(A11y)`\r\nwidth:100%;\r\n`\r\nconst EventRow = styled.div`\r\n color: ${white};\r\n padding: ${spacing16} 0;\r\n display:flex;\r\n width: 100%;\r\n ${(props) => props.isActive && `background: linear-gradient(270deg, rgba(125, 227, 244, 0.25) 0%, rgba(125, 227, 244, 0) 100%);`}\r\n`;\r\nconst defaultObj = {};\r\nconst EventOrAnnouncementSelection = ({\r\n event = defaultObj,\r\n announcement,\r\n selectAnnouncement,\r\n selectEvent,\r\n selectedEvent,\r\n selectedAnnouncement,\r\n textColor = white,\r\n}) => {\r\n const data = announcement || event;\r\n const selectFunc = announcement ? selectAnnouncement : selectEvent;\r\n\r\n const {\r\n title = \"\",\r\n date,\r\n location,\r\n programName,\r\n isFeatured,\r\n } = data;\r\n const isActive = announcement ? selectedAnnouncement === announcement :\r\n (selectedEvent === event);\r\n\r\n const type = announcement ? \"announcement\" : \"event\"\r\n return (\r\n selectFunc(data)} data-id={`${type}-${data.id}`}>\r\n \r\n \r\n \r\n \r\n {title}\r\n \r\n \r\n {DateToDisplayString(date)}\r\n {stringHasValue(location) && <>\r\n {location}}\r\n \r\n \r\n {(isActive) &&\r\n \r\n }\r\n \r\n \r\n );\r\n}\r\n\r\nexport default EventOrAnnouncementSelection;","import {useMemo, useState, useCallback} from \"react\";\r\n\r\nconst useCalendarEvents = (programData, hubData) => {\r\n const [programId, setProgramId] = useState(undefined);\r\n const [selectedEvent,setSelectedEvent] = useState();\r\n const [selectedAnnouncement,setSelectedAnnouncement] = useState();\r\n const [keyword, setKeyword] = useState(\"\");\r\n const [selectedType, setSelectedType] = useState(\"\");\r\n\r\n const onEventPicked = useCallback((event) => {\r\n setSelectedAnnouncement(undefined);\r\n setSelectedEvent(event);\r\n },[]);\r\n\r\n const onAnnouncementPicked = useCallback((announcement) => {\r\n setSelectedAnnouncement(announcement);\r\n setSelectedEvent(undefined);\r\n },[]);\r\n\r\n const onProgramSelected = useCallback((e) => {\r\n const id = parseInt(e.target.value);\r\n setProgramId(id);\r\n }, []);\r\n\r\n const filterByKeywordAndType = useCallback((eventOrAnnouncement) => {\r\n const hasSelectedType = selectedType === \"\" ||\r\n selectedType === \"eventsOnly\" ||\r\n selectedType === \"newsOnly\" ||\r\n (!eventOrAnnouncement?.eventTypeId ||\r\n eventOrAnnouncement?.eventTypeId?.toString() === selectedType);\r\n if (!keyword) {\r\n return hasSelectedType;\r\n }\r\n const lowerKeyword = keyword?.toLowerCase();\r\n const hasKeyword = eventOrAnnouncement?.detail?.toLowerCase()?.indexOf(lowerKeyword) >= 0 ||\r\n eventOrAnnouncement?.title?.toLowerCase()?.indexOf(lowerKeyword) >= 0;\r\n return hasKeyword && hasSelectedType;\r\n }, [keyword, selectedType]);\r\n\r\n const filteredEvents = useMemo(() => {\r\n if (selectedType === \"newsOnly\") {\r\n return [];\r\n }\r\n const isHub = Array.isArray(hubData?.programs);\r\n if (!isNaN(programId) && isHub) {\r\n const selectedProgram = hubData.programs.find(p => parseInt(p.id) === programId);\r\n //put program name on each event so we can show it in our display information\r\n const {programName} = selectedProgram;\r\n return selectedProgram.events?.filter(filterByKeywordAndType).map(e => {\r\n return { ...e, programName, programId: e.programId || programId }\r\n }) ?? [];\r\n } else if (isHub) {\r\n return hubData.programs.reduce((result,program ) => {\r\n //put program name on each event so we can show it in our display information\r\n const { programName } = program;\r\n const events = Array.isArray(program?.events) ?\r\n program.events.filter(filterByKeywordAndType).map(e => {\r\n return { ...e, programName, programId: e.programId || program.programId }\r\n }) : [];\r\n return [...result, ...events];\r\n },[])\r\n } else {\r\n return Array.isArray(programData?.events) ?\r\n programData.events.filter(filterByKeywordAndType) :\r\n [];\r\n }\r\n }, [hubData?.programs, programData?.events, programId, selectedType, filterByKeywordAndType]);\r\n\r\n\r\n const filteredAnnouncements = useMemo(() => {\r\n if (selectedType === \"eventsOnly\") {\r\n return [];\r\n }\r\n const isHub = Array.isArray(hubData?.programs);\r\n if (!isNaN(programId) && isHub) {\r\n const selectedProgram = hubData.programs.find(p => parseInt(p.id) === programId);\r\n //put program name on each event so we can show it in our display information\r\n const {programName } = selectedProgram;\r\n return selectedProgram.announcements?.filter(filterByKeywordAndType).map(a => {\r\n return { ...a, programName, programId: a.programId || programId };\r\n }) ?? [];\r\n } else if (isHub) {\r\n return hubData.programs.reduce((result,program ) => {\r\n //put program name on each event so we can show it in our display information\r\n const {programName} = program\r\n const announcements = Array.isArray(program?.announcements) ?\r\n program.announcements.filter(filterByKeywordAndType).map(a => {\r\n return { ...a, programName, programId: a.programId || program.id };\r\n }) : [];\r\n return [...result, ...announcements];\r\n },[])\r\n } else {\r\n return Array.isArray(programData?.announcements) ?\r\n programData.announcements\r\n .map(announce => ({ ...announce, programId: announce?.programId || programData?.id }))\r\n .filter(filterByKeywordAndType) :\r\n [];\r\n }\r\n }, [\r\n hubData?.programs,\r\n programData,\r\n programId,\r\n selectedType,\r\n filterByKeywordAndType\r\n ]);\r\n\r\n\r\n const programs = useMemo(() => {\r\n const isHub = Array.isArray(hubData?.programs);\r\n return isHub ? hubData.programs.map(p => {\r\n const {id, programName} = p ?? {}\r\n return {id, programName}\r\n }) : [];\r\n },[hubData?.programs])\r\n\r\n return {\r\n filteredEvents,\r\n filteredAnnouncements,\r\n onProgramSelected,\r\n programs,\r\n programId,\r\n selectedEvent,\r\n selectedAnnouncement,\r\n onEventPicked,\r\n onAnnouncementPicked,\r\n keyword,\r\n onKeywordChange: setKeyword,\r\n selectedType,\r\n onSelectedTypeChange: setSelectedType,\r\n }\r\n}\r\n\r\nexport default useCalendarEvents;","import React from \"react\";\r\n\r\nimport { Select } from \"@churchofjesuschrist/eden-form-parts\";\r\nimport { SecondarySearch } from \"@churchofjesuschrist/eden-search-box\";\r\nimport Split from \"@churchofjesuschrist/eden-split\";\r\n\r\nimport useTranslation from \"../../../utils/use-translations\";\r\n\r\nconst stringGroups = [\r\n {\r\n name:\"shared\",\r\n keys:[\r\n \"searchEvents\",\r\n \"all\",\r\n \"eventsOnly\",\r\n \"newsOnly\",\r\n \"conferences\",\r\n \"service\",\r\n \"cultural\"\r\n ]\r\n }\r\n]\r\n\r\nconst CalendarEventsFilters = (\r\n { keyword, onKeywordChange, selectedType, onSelectedTypeChange }\r\n) => {\r\n const { managedStrings } = useTranslation(stringGroups);\r\n\r\n return (\r\n \r\n onKeywordChange(e.target.value)}\r\n />\r\n \r\n \r\n )\r\n}\r\n\r\nexport default CalendarEventsFilters;\r\n","\r\nimport {\r\n spacing16,\r\n spacing24,\r\n spacing8,\r\n white,\r\n blue35,\r\n blue5,\r\n yellow15,\r\n red15,\r\n blue25,\r\n green20} from \"@churchofjesuschrist/eden-style-constants\";\r\nimport styled from \"styled-components\";\r\n\r\nconst CalendarHolder = styled.div`\r\npadding-bottom:${spacing24};\r\nborder-bottom:solid 1px ${blue35};\r\n .react-calendar{\r\n button{\r\n color:${white};\r\n }\r\n .react-calendar__navigation\r\n {\r\n display:flex;\r\n \r\n padding-bottom:${spacing24};\r\n border-bottom:solid 1px ${blue35};\r\n margin-bottom:${spacing16};\r\n\r\n button{\r\n background:none !important;\r\n font-size:1.2rem;\r\n font-weight:bold;\r\n border:none;\r\n }\r\n }\r\n .react-calendar__month-view__weekdays\r\n {\r\n margin-bottom:${spacing16};\r\n div.react-calendar__month-view__weekdays__weekday\r\n {\r\n text-align:center;\r\n \r\n abbr{\r\n color:${blue5} !important;\r\n text-decoration:none;\r\n }\r\n }\r\n }\r\n .react-calendar__month-view__days\r\n {\r\n \r\n button{\r\n margin-bottom:1px;\r\n padding-top:${spacing8};\r\n padding-bottom:${spacing8};\r\n border:none !important;\r\n background-color:${blue35} !important;\r\n &.yellow{\r\n background-color:${yellow15} !important;\r\n cursor:pointer;\r\n }\r\n &.red{\r\n background-color:${red15} !important;\r\n cursor:pointer;\r\n }\r\n &.blue{\r\n background-color:${blue25} !important;\r\n cursor:pointer;\r\n }\r\n &.green{\r\n background-color:${green20} !important;\r\n cursor:pointer;\r\n }\r\n }\r\n }\r\n button{\r\n \r\n &.react-calendar__navigation__arrow {\r\n cursor:pointer;\r\n &:disabled{\r\n display:none;\r\n }\r\n }\r\n \r\n }\r\n }\r\n`;\r\n\r\n\r\n\r\nexport {CalendarHolder};","import {useState, useMemo, useEffect, useCallback, useContext} from \"react\";\r\n\r\nimport {compareAsc, isSameDay, isSameMonth, isBefore, isAfter } from \"date-fns\";\r\n\r\nimport menuContext from \"../../global-layout/top-bar/menu-context\";\r\nimport {eventTypeToColorName} from \"../event-type-label/event-type-to-color\";\r\n\r\n\r\nconst defaultArray = [];\r\nconst defaultFunc = () => {};\r\nconst useCalendarEventsList = ({\r\n events = defaultArray,\r\n onEventSelected = defaultFunc,\r\n announcements,\r\n onAnnouncementSelected:propsOnAnnouncementSelected = defaultFunc,\r\n selectedAnnouncement\r\n}) => {\r\n const {isMobile = false} = useContext(menuContext) ?? {};\r\n\r\n\r\n const [selectedEvent, setSelectedEvent] = useState();\r\n\r\n const onAnnouncementSelected = useCallback((announcement) => {\r\n propsOnAnnouncementSelected(announcement);\r\n setSelectedEvent();\r\n },[propsOnAnnouncementSelected]);\r\n\r\n const setSelectedEventCallback = useCallback((event) => {\r\n setSelectedEvent(event);\r\n propsOnAnnouncementSelected();//clear out our announcement\r\n onEventSelected(event);\r\n },[onEventSelected, propsOnAnnouncementSelected])\r\n\r\n const [selectedMonth, setSelectedMonth] = useState();\r\n\r\n const sortedEvents = useMemo(() => Array.isArray(events) ?\r\n events.toSorted((e1,e2) => compareAsc(e1.date,e2.date)) : []\r\n ,[events]);\r\n\r\n const monthEvents = useMemo(() => {\r\n return sortedEvents.filter(e => isSameMonth(e.date,selectedMonth));\r\n },[selectedMonth, sortedEvents]);\r\n\r\n const range = useMemo(() => {\r\n if (sortedEvents.length === 0) {\r\n return {\r\n min:new Date(),\r\n max:new Date()\r\n }\r\n }\r\n\r\n\r\n const today = new Date();\r\n const earliest = sortedEvents[0];\r\n const latest = sortedEvents[sortedEvents.length - 1];\r\n return {\r\n min:isBefore(today,earliest.date) ? today : earliest.date,\r\n max:isAfter(today,latest.date) ? today : latest.date\r\n }\r\n },[sortedEvents]);\r\n\r\n useEffect(() => {\r\n if (sortedEvents.length > 0) {\r\n //initialize selected month from data, but don't overwrite it\r\n //when our events have filtered or something like that\r\n setSelectedMonth(cur => {\r\n if (!cur) {\r\n return sortedEvents[0].date;\r\n }\r\n return cur;\r\n })\r\n }\r\n\r\n if (Array.isArray(announcements) && announcements.length > 0) {\r\n onAnnouncementSelected(isMobile ? undefined : announcements[0]);\r\n } else if (sortedEvents.length > 0) {\r\n setSelectedEvent(isMobile ? undefined : sortedEvents[0])\r\n } else {\r\n setSelectedEvent();\r\n setSelectedMonth();\r\n }\r\n\r\n\r\n },[sortedEvents, setSelectedEvent, isMobile, announcements, onAnnouncementSelected]);\r\n\r\n const dateStyleFunction = useCallback(({date}) => {\r\n\r\n const matchedEvent = sortedEvents.find(e => isSameDay(date,e.date));\r\n\r\n if (matchedEvent) {\r\n return eventTypeToColorName(matchedEvent.type);\r\n }\r\n },[sortedEvents]);\r\n\r\n const onDayClicked = useCallback((date) => {\r\n const matchedEvent = sortedEvents.find(e => isSameDay(date,e.date));\r\n if (matchedEvent) {\r\n setSelectedEvent(matchedEvent);\r\n }\r\n },[setSelectedEvent, sortedEvents]);\r\n\r\n const onViewChanged = useCallback(({activeStartDate}) => {\r\n setSelectedMonth(activeStartDate);\r\n },[])\r\n\r\n return {\r\n dateStyleFunction,\r\n monthEvents,\r\n range,\r\n selectedEvent,\r\n setSelectedEvent: setSelectedEventCallback,\r\n onDayClicked,\r\n onViewChanged,\r\n announcements,\r\n onAnnouncementSelected,\r\n selectedAnnouncement\r\n }\r\n\r\n}\r\n\r\n\r\nexport default useCalendarEventsList;","import React from \"react\";\r\n\r\nimport { Stack } from \"@churchofjesuschrist/eden-stack\";\r\nimport { blue40, blue35, white, spacing16 } from \"@churchofjesuschrist/eden-style-constants\";\r\nimport Calendar from \"react-calendar\";\r\nimport styled from \"styled-components\";\r\n\r\n// eslint-disable-next-line max-len\r\nimport {CalendarHolder} from \"./styles\";\r\nimport useCalendarEventsList from \"./use-calendar-events-list\";\r\nimport EventOrAnnouncementSelection\r\n from \"../event-or-announcement-selection/event-or-announcement-selection\";\r\n\r\nconst Container = styled(Stack)`\r\n background:${blue40};\r\n color:${white};\r\n padding:${spacing16};\r\n`;\r\nconst ControlsHolder = styled.div`\r\nborder-bottom:solid 1px ${blue35};\r\npadding-bottom:${spacing16};\r\n`;\r\nconst Events = styled.div`\r\n\r\n`\r\nconst defaultArray = [];\r\nconst defaultFunc = () => {};\r\nconst CalendarEventsList = ({children, ...props}) => {\r\n const {\r\n dateStyleFunction,\r\n monthEvents,\r\n range,\r\n selectedEvent,\r\n setSelectedEvent,\r\n onDayClicked,\r\n onViewChanged,\r\n announcements = defaultArray,\r\n onAnnouncementSelected = defaultFunc,\r\n selectedAnnouncement\r\n } = useCalendarEventsList(props);\r\n\r\n\r\n return \r\n \r\n \r\n \r\n {children && \r\n {children}\r\n }\r\n
\r\n {announcements.map((announcement) => )}\r\n
\r\n \r\n {monthEvents?.map((event) => {\r\n return (\r\n \r\n );\r\n })}\r\n \r\n
\r\n\r\n}\r\n\r\nexport default CalendarEventsList;","import React, {useContext} from \"react\";\r\n\r\nimport {\r\n Label,\r\n Select\r\n} from \"@churchofjesuschrist/eden-form-parts\";\r\nimport Split from \"@churchofjesuschrist/eden-split\";\r\nimport { blue40, spacing16, spacing32, white } from \"@churchofjesuschrist/eden-style-constants\";\r\nimport { ToolModal } from \"@churchofjesuschrist/eden-tool-modal\";\r\nimport styled from \"styled-components\";\r\n\r\nimport useCalendarEvents from \"./use-calendar-events\";\r\nimport useTranslation from \"../../../utils/use-translations\";\r\nimport menuContext from \"../../global-layout/top-bar/menu-context\";\r\nimport CalendarEventsFilters from \"../calendar-events-filters/calendar-events-filters\";\r\nimport CalendarEventsList from \"../calendar-events-list/calendar-events-list\";\r\nimport EventArticle from \"../event-article/event-article\";\r\n\r\nconst LeftColumn = styled.div`\r\npadding:${spacing16};\r\nbackground:${blue40};\r\n`;\r\n\r\nconst StyledLabel = styled(Label)`\r\ncolor:${white};\r\n`;\r\n\r\n\r\nconst ModalContents = styled.div`\r\npadding:${spacing16};\r\n`\r\n\r\nconst RightColumn = styled.div`\r\npadding:${spacing32};\r\nmin-width: 800px;\r\n`;\r\n\r\nconst stringGroups = [\r\n {\r\n name:\"shared\",\r\n keys:[\r\n \"institute\",\r\n \"allInstitutes\"\r\n ]\r\n }\r\n]\r\nconst defaultArray = [];\r\nconst defaultFunc = () => {};\r\n\r\nconst ProgramSelector = ({\r\n programs = defaultArray,\r\n programId,\r\n onProgramSelected = defaultFunc}) => {\r\n const {managedStrings} = useTranslation(stringGroups);\r\n return {managedStrings.institute}:\r\n \r\n {programs.map(p => )}\r\n \r\n}\r\n\r\nconst CalendarEvents = ({programData, hubData}) => {\r\n const {\r\n filteredEvents:events = defaultArray,\r\n filteredAnnouncements:announcements = defaultArray,\r\n programs = defaultArray,\r\n programId,\r\n onProgramSelected = defaultFunc,\r\n selectedEvent,\r\n selectedAnnouncement,\r\n onEventPicked,\r\n onAnnouncementPicked,\r\n keyword,\r\n onKeywordChange,\r\n selectedType,\r\n onSelectedTypeChange,\r\n } = useCalendarEvents(programData, hubData);\r\n\r\n\r\n\r\n const {isMobile} = useContext(menuContext);\r\n\r\n return isMobile ? (\r\n \r\n \r\n {(Array.isArray(programs) && programs.length > 0) && }\r\n \r\n onEventPicked()}>\r\n \r\n {selectedEvent && }\r\n {selectedAnnouncement && }\r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n \r\n {(Array.isArray(programs) && programs.length > 0) && }\r\n \r\n\r\n \r\n \r\n {selectedEvent && }\r\n {selectedAnnouncement && }\r\n \r\n );\r\n}\r\n\r\nexport default CalendarEvents;\r\n","import React, { useContext } from \"react\";\r\n\r\nimport { Badge } from \"@churchofjesuschrist/eden-badge\";\r\nimport { H1 } from \"@churchofjesuschrist/eden-headings\";\r\nimport HTMLFragment from \"@churchofjesuschrist/eden-html-fragment\";\r\nimport { CheckCalendar } from \"@churchofjesuschrist/eden-icons\";\r\nimport { Image } from \"@churchofjesuschrist/eden-image\";\r\nimport { Row } from \"@churchofjesuschrist/eden-row\";\r\nimport { Stack } from \"@churchofjesuschrist/eden-stack\";\r\nimport { grey60, serif, spacing4,\r\n spacing32, spacing16 } from \"@churchofjesuschrist/eden-style-constants\";\r\nimport { Divider } from \"@churchofjesuschrist/eden-tile-parts\";\r\nimport styled from \"styled-components\";\r\n\r\nimport { DateToDisplayString, twentyFourToTwelve } from \"../../../utils/date-utils\";\r\nimport stringHasValue from \"../../../utils/string-has-value\";\r\nimport useTranslation from \"../../../utils/use-translations\";\r\nimport Link from \"../../generic/link/link\";\r\nimport ShareLink from \"../../generic/share-link/share-link\";\r\nimport MenuContext from \"../../global-layout/top-bar/menu-context\";\r\nimport EventTypeLabel from \"../event-type-label/event-type-label\";\r\n\r\nconst Container = styled.div`\r\ndisplay:flex;\r\n`\r\n\r\nconst ArticleImage = styled(Image)`\r\ndisplay:block;\r\nwidth: 380px;\r\nmargin-bottom:${spacing16}`\r\n\r\nconst Title = styled(H1)`\r\nmargin-bottom:${spacing4};\r\nfont-family:${serif};\r\n`;\r\n\r\nconst AgeBadge = styled(Badge)`\r\nmargin-left:${spacing16};\r\n`\r\nconst Action = styled(Row)`\r\n margin-left: auto;\r\n`;\r\n\r\nconst EventDivider = styled(Divider)`\r\n border-inline-start: 1px solid ${grey60};\r\n`;\r\n\r\nconst StyledHTMLFragmentForImage = styled(HTMLFragment)`\r\nimg{\r\n width:250px;\r\n margin-right:${spacing16};\r\n margin-bottom:${spacing16};\r\n float:left;\r\n}\r\n`;\r\n\r\nconst SizedStack = styled(Stack)`\r\n max-width:800px;\r\n`;\r\n\r\nconst stringGroups = [\r\n {\r\n name:\"shared\",\r\n keys:[\"articleImage\",\"saveToCalendar\",\r\n \"allAges\", \"under26\", \"under36\",\r\n \"shareThisEvent\", \"shareThisNewsItem\", \"shareLinkBody\"]\r\n }\r\n];\r\n\r\nconst HtmlWithImage = ({content, imageUrl, ...others}) => {\r\n const {managedStrings} = useTranslation(stringGroups);\r\n const fullContent = stringHasValue(imageUrl) ? `
\"${managedStrings.articleImage}\"/${content}
` : content;\r\n return \r\n}\r\n\r\nconst defaultObj = {};\r\nconst defaultArray = [];\r\nconst EventArticle = ({\r\n event = defaultObj,\r\n announcement\r\n}) => {\r\n const data = announcement ?? event;\r\n const {\r\n detail = \"\",\r\n title = \"\",\r\n imageUrl,\r\n location,\r\n date,\r\n time,\r\n endTime,\r\n duration,\r\n timeZone,\r\n id,\r\n isFeatured,\r\n programName,\r\n documents = defaultArray,\r\n ageRangeId,\r\n programId\r\n } = data;\r\n const {managedStrings} = useTranslation(stringGroups);\r\n const {isMobile} = useContext(MenuContext);\r\n\r\n const type = announcement ? \"announcement\" : \"event\";\r\n const isEvent = !announcement;\r\n const image = imageUrl && (\r\n \r\n );\r\n const intAgeRangeId = parseInt(ageRangeId);\r\n const hasAgeRange = !isNaN(intAgeRangeId) && intAgeRangeId > 0 && intAgeRangeId < 4;\r\n const shareUrl = `${window.origin}/institute/${programId}/${type}s/${id}`;\r\n const shareText = isEvent ? managedStrings.shareThisEvent : managedStrings.shareThisNewsItem;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {title}\r\n {isMobile && image}\r\n
\r\n {DateToDisplayString(date)}\r\n {stringHasValue(location) && <>\r\n {location}}\r\n {hasAgeRange &&\r\n \r\n {intAgeRangeId === 1 && managedStrings.allAges}\r\n {intAgeRangeId === 2 && managedStrings.under26}\r\n {intAgeRangeId === 3 && managedStrings.under36}\r\n }\r\n
\r\n {isEvent && Boolean(duration) && Boolean(time) &&
\r\n {twentyFourToTwelve(time)} - {twentyFourToTwelve(endTime)} {timeZone}\r\n
}\r\n
\r\n \r\n {event?.programId && (\r\n \r\n \r\n )}\r\n \r\n \r\n
\r\n {!isMobile ?\r\n \r\n : }\r\n {Array.isArray(documents) && documents.length > 0 && }\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default EventArticle;","import {yellow15, yellow30,\r\n red10, red5,\r\n blue20, blue5,\r\n green20, green5} from \"@churchofjesuschrist/eden-style-constants\";\r\n\r\nconst eventTypeToColor = (eventType, darkBack = false) => {\r\n switch (eventType) {\r\n case \"event\":\r\n return darkBack ? yellow15 : yellow30;\r\n\r\n case \"announcement\":\r\n return darkBack ? red5 : red10;\r\n\r\n case \"Type3\":\r\n return darkBack ? blue5 : blue20;\r\n\r\n case \"Type4\":\r\n return darkBack ? green5 : green20;\r\n\r\n default:\r\n return darkBack ? yellow15 : yellow30;\r\n }\r\n}\r\n\r\nconst eventTypeToColorName = (eventType) => {\r\n switch (eventType) {\r\n case \"Type1\":\r\n return \"yellow\";\r\n\r\n case \"Type2\":\r\n return \"red\";\r\n\r\n case \"Type3\":\r\n return \"blue\";\r\n\r\n case \"Type4\":\r\n return \"green\";\r\n\r\n default:\r\n return \"yellow\";\r\n }\r\n}\r\n\r\nexport {eventTypeToColorName};\r\nexport default eventTypeToColor;"],"names":["ColoredH3","styled","H3","_ref","color","ColoredH6","H6","_ref2","EventStar","StarFilled","spacing4","stringGroups","name","keys","props","type","size","programName","darkback","isFeatured","Hx","managedStrings","useTranslation","txt","featuredEvent","toLowerCase","eventTypeToColor","_jsxs","children","stringHasValue","_Fragment","_jsx","spacing24","processProgramEvent","e","date","serverStringToBrowserDate","processProgramEventDates","data","_data$events$map","events","map","eventsPageService","pageLoad","async","programId","eventId","url","fetchWrapper","ActiveChevron","ChevronRightLarge","spacing48","spacing16","EventTitle","H4","textColor","EventTile","div","EventDateAndLocation","Row","fontSize14","EventDivider","Divider","white","EventButton","A11y","EventRow","isActive","defaultObj","_ref3","event","announcement","selectAnnouncement","selectEvent","selectedEvent","selectedAnnouncement","selectFunc","title","location","onClick","id","EventTypeLabel","DateToDisplayString","useCalendarEvents","programData","hubData","setProgramId","useState","undefined","setSelectedEvent","setSelectedAnnouncement","keyword","setKeyword","selectedType","setSelectedType","onEventPicked","useCallback","onAnnouncementPicked","onProgramSelected","parseInt","target","value","filterByKeywordAndType","eventOrAnnouncement","_eventOrAnnouncement$","_eventOrAnnouncement$2","_eventOrAnnouncement$3","_eventOrAnnouncement$4","_eventOrAnnouncement$5","hasSelectedType","eventTypeId","toString","lowerKeyword","detail","indexOf","filteredEvents","useMemo","isHub","Array","isArray","programs","isNaN","_selectedProgram$even","_selectedProgram$even2","selectedProgram","find","p","filter","reduce","result","program","filteredAnnouncements","_selectedProgram$anno","_selectedProgram$anno2","announcements","a","announce","onKeywordChange","onSelectedTypeChange","Split","SecondarySearch","placeholder","searchEvents","onChange","Select","all","eventsOnly","newsOnly","conferences","service","cultural","CalendarHolder","blue35","blue5","spacing8","yellow15","red15","blue25","green20","defaultArray","defaultFunc","_useContext","onEventSelected","onAnnouncementSelected","propsOnAnnouncementSelected","isMobile","useContext","menuContext","setSelectedEventCallback","selectedMonth","setSelectedMonth","sortedEvents","toSorted","e1","e2","compareAsc","monthEvents","isSameMonth","range","length","min","Date","max","today","earliest","latest","isBefore","isAfter","useEffect","cur","dateStyleFunction","matchedEvent","isSameDay","eventTypeToColorName","onDayClicked","onViewChanged","activeStartDate","Container","Stack","blue40","ControlsHolder","Events","useCalendarEventsList","Calendar","calendarType","showNeighboringMonth","defaultActiveStartDate","maxDate","minDate","maxDetail","minDetail","view","tileClassName","onActiveStartDateChange","EventOrAnnouncementSelection","LeftColumn","StyledLabel","Label","ModalContents","RightColumn","spacing32","ProgramSelector","institute","small","allInstitutes","CalendarEventsFilters","CalendarEventsList","ToolModal","open","onClose","EventArticle","ratio","ArticleImage","Image","Title","H1","serif","AgeBadge","Badge","Action","grey60","StyledHTMLFragmentForImage","HTMLFragment","SizedStack","HtmlWithImage","content","imageUrl","others","fullContent","articleImage","time","endTime","duration","timeZone","documents","ageRangeId","MenuContext","isEvent","image","src","alt","intAgeRangeId","hasAgeRange","shareUrl","window","origin","shareText","shareThisEvent","shareThisNewsItem","gapSize","allAges","under26","under36","Boolean","twentyFourToTwelve","Link","href","saveToCalendar","CheckCalendar","ShareLink","body","shareLinkBody","d","rel","eventType","darkBack","arguments","yellow30","red5","red10","blue20","green5"],"sourceRoot":""}