@clickview/lite 0.83.0 → 0.83.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundles.json +1 -1
- package/dist/css/{6741-lite-9250bba792.chunk.css → 6168-lite-57f236bf59.chunk.css} +1 -0
- package/dist/languages/en.json +1 -1
- package/dist/scripts/6168-34720b9253-lite.chunk.js +3 -0
- package/dist/scripts/6168-34720b9253-lite.chunk.js.map +1 -0
- package/dist/scripts/{6912-644b69d0eb-lite.chunk.js → 6912-b0c00cbece-lite.chunk.js} +2 -2
- package/dist/scripts/6912-b0c00cbece-lite.chunk.js.map +1 -0
- package/dist/scripts/{bundle-dcea87749e.min.js → bundle-8d1c2248c0.min.js} +3 -3
- package/dist/scripts/{bundle-dcea87749e.min.js.map → bundle-8d1c2248c0.min.js.map} +1 -1
- package/package.json +1 -1
- package/dist/scripts/6741-1e64f67951-lite.chunk.js +0 -3
- package/dist/scripts/6741-1e64f67951-lite.chunk.js.map +0 -1
- package/dist/scripts/6912-644b69d0eb-lite.chunk.js.map +0 -1
- /package/dist/scripts/{6741-1e64f67951-lite.chunk.js.LICENSE.txt → 6168-34720b9253-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{bundle-dcea87749e.min.js.LICENSE.txt → bundle-8d1c2248c0.min.js.LICENSE.txt} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/6912-b0c00cbece-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/calendar/components/coming-soon-tag/coming-soon-tag.scss","file:///app/packages/libs/shared/src/apps/calendar/components/coming-soon-tag/ComingSoonTag.tsx","file:///app/packages/libs/shared/src/apps/calendar/components/special-event-list-item/special-event-list-item.scss","file:///app/packages/libs/shared/src/apps/calendar/components/special-event-list-item/SpecialEventListItem.tsx","file:///app/packages/libs/shared/src/apps/calendar/flight-request/CalendarRequests.ts","file:///app/packages/libs/shared/src/apps/discover/components/header/discover-header.scss","file:///app/packages/libs/shared/src/apps/discover/components/header/DiscoverHeader.tsx","file:///app/packages/libs/shared/src/components/pill-tab-selector/PillTabSelector.tsx","file:///app/packages/libs/shared/src/apps/calendar/components/calendar-cell/calendar-cell.scss","file:///app/packages/libs/shared/src/apps/calendar/components/calendar-cell/CalendarCell.tsx","file:///app/packages/libs/shared/src/apps/calendar/components/empty-state/SpecialEventEmptyState.tsx","file:///app/packages/libs/shared/src/apps/calendar/components/special-event-list/special-event-list.scss","file:///app/packages/libs/shared/src/apps/calendar/components/special-event-list/SpecialEventList.tsx","file:///app/packages/libs/shared/src/apps/calendar/components/calendar-body/calendar-body.scss","file:///app/packages/libs/shared/src/apps/calendar/components/calendar-body/CalendarBody.tsx","file:///app/packages/libs/shared/src/apps/calendar/components/calendar-nav/calendar-nav.scss","file:///app/packages/libs/shared/src/apps/calendar/components/calendar-nav/CalendarNav.tsx","file:///app/packages/libs/shared/src/apps/calendar/components/error-state/SpecialEventErrorState.tsx","file:///app/packages/libs/shared/src/apps/calendar/hooks/useCalendarWeeksTable.ts","file:///app/packages/projects/lite/src/apps/calendar/views/calendar-view/CalendarViewUtils.ts","file:///app/packages/projects/lite/src/apps/calendar/views/calendar-view/CalendarView.tsx","file:///app/packages/libs/shared/src/apps/calendar/hooks/useCalendarEventsData.ts","file:///app/packages/projects/lite/src/apps/dashboard/views/dashboard/DiscoverViewUtils.ts","file:///app/packages/projects/lite/src/shared/hooks/useShowCalendar.ts","file:///app/packages/libs/shared/src/components/pill-tab-selector/pill-tab-selector.scss"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"tag\":\"XRj8d\",\"tooltip\":\"X6mLk\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './coming-soon-tag.scss';\n\nconst namespace = 'specialEventCalendar.comingSoonTag';\n\ninterface ComingSoonProps {\n className?: string;\n onlyIcon?: boolean;\n}\n\nexport function ComingSoonTag(props: ComingSoonProps): JSX.Element {\n return (\n <Tooltip title={LanguageService.getPhrase(namespace, 'tooltip')} spanHackClassName={`d-block ${styles.tooltip}`} spanHack>\n <div className={`d-flex text-dark align-items-center ${styles.tag} ${props.className}`}>\n <SvgContainer svgName={cvSvgLibrary.Timer} />\n {!props.onlyIcon && LanguageService.getPhrase(namespace, 'comingSoon')}\n </div>\n </Tooltip>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"modalWidth\":\"SgHYb\",\"banner\":\"PLw1p\",\"pill\":\"UNBr0\",\"logo\":\"xv_tc\"};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\nimport { LinkifyHelper } from 'libs/common/react/utils/LinkifyHelper';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions, EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { ComingSoonTag } from 'libs/shared/apps/calendar/components/coming-soon-tag/ComingSoonTag';\nimport { SpecialEventHelper } from 'libs/shared/apps/calendar/utils/SpecialEventHelper';\nimport { ActionButton } from 'libs/shared/components/actions/ActionButton';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { BaseImage } from 'libs/shared/components/image/BaseImage';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ClassificationStatus } from 'libs/shared/enums/ClassificationStatus';\nimport { CalendarEvent, CalendarEventContent, Livestream, PresentationAudience } from 'libs/shared/interfaces';\nimport { AudienceHelper } from 'libs/shared/utils/audience-helper/AudienceHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './special-event-list-item.scss';\n\nconst namespace = 'shared.specialEventListItem';\n\nfunction isLiveStream(obj: CalendarEventContent): obj is Livestream {\n return 'audiences' in obj &&\n 'endDateTime' in obj &&\n 'startDateTime' in obj;\n}\n\ninterface SpecialEventListItemProps {\n getAppLink: (content: CalendarEventContent, name: string) => Core.AppLink;\n event: CalendarEvent<CalendarEventContent>;\n onClick?: () => void;\n inPopup?: boolean;\n presentationId: string;\n headingClassName?: string;\n getIconUrl?: (content: CalendarEventContent) => string;\n getBackgroundColor?: (content: CalendarEventContent) => string;\n getBannerUrl?: (content: CalendarEventContent) => string;\n getActionLabel?: () => string;\n getStartTime?: (content: CalendarEventContent) => string;\n isPastEvent?: (content: CalendarEventContent) => boolean;\n}\n\nexport function SpecialEventListItem(props: SpecialEventListItemProps): JSX.Element {\n const appLink = props.getAppLink(props.event.content, TextHelper.slugify(props.event.name));\n\n const backgroundColor = props.getBackgroundColor?.(props.event.content);\n const iconUrl = props.getIconUrl?.(props.event.content);\n const bannerUrl = props.getBannerUrl?.(props.event.content);\n const multiDayEvent = !!props.event.endDate;\n const isComingSoon = props.event.content.status === ClassificationStatus.ComingSoon;\n const startTime = props.getStartTime?.(props.event.content);\n const actionLabel = props.getActionLabel?.();\n const isPastEvent = props.isPastEvent?.(props.event.content);\n\n const analyticsOptions: AnalyticsOptions = {\n actionType: UserAction.Click,\n entity: EntityType.SpecialEvent,\n location: props.inPopup ? LocationContext.CalendarPopup : LocationContext.CalendarDay\n };\n const analyticsData = {\n topicId: props.event.content.id,\n eventId: props.event.specialEventId,\n presentationId: props.presentationId,\n date: DateHelper.format(new Date(props.event.startDate), 'YYYY-MM-DD'),\n status: props.event.content.status\n };\n\n return (\n <div>\n {startTime && (\n <h6>{startTime}</h6>\n )}\n\n <div onClick={() => {\n if (isComingSoon)\n AnalyticsHelper.logUserAction(analyticsData, analyticsOptions);\n }}>\n <AppLink\n appLink={!isComingSoon && appLink}\n className={`${!isComingSoon ? 'cursor-pointer' : ''} text-decoration-none mb-2`}\n onClick={props.onClick}\n analyticsOptions={analyticsOptions}\n analyticsData={analyticsData}\n >\n <div\n className={`banner rounded-3 position-relative position-relative ${styles.banner}`}\n style={{ backgroundColor, backgroundImage: `url('${bannerUrl}')` }}\n >\n {isPastEvent && (\n <div className='bg-white w-100 h-100 opacity-50 position-absolute top-0 left-0 z-0' />\n )}\n <div className={`d-flex justify-content-between align-items-center w-100 h-100 px-3`}>\n <div className='d-flex align-items-center z-1'>\n {iconUrl && (\n <div className={`${styles.logo} rounded-circle flex-shrink-0 overflow-hidden me-2`}>\n <BaseImage data={iconUrl} />\n </div>\n )}\n <div>\n {isComingSoon && <ComingSoonTag className={`pe-2 fw-semibold mb-1 rounded-pill justify-content-start ${styles.pill}`}/>}\n\n {isPastEvent &&\n <div className='d-inline-block rounded-pill bg-light-green mb-1'>\n <SvgContainer svgName={cvSvgLibrary.CalendarCheck} />\n <p className='d-inline ms-1 mb-0'><Text namespace={namespace} phrase='pastEvent' /></p>\n </div>}\n \n {multiDayEvent && (\n <p className='text-white text-shadow mb-1'>{SpecialEventHelper.getDisplayDate(props.event.startDate, props.event.endDate)}</p>\n )}\n <h2 className={`h4 text-white text-shadow ${props.event.description ? 'clamp-2' : 'clamp-1'}`} title={props.event.name}>{props.event.name}</h2>\n \n </div>\n </div>\n\n <div className='d-none d-sm-block flex-shrink-0 z-1'>\n {!isComingSoon && (\n <ActionButton className={`btn ${isPastEvent ? 'btn-outline-dark' : 'btn-dark'} fw-semibold`}>\n {actionLabel}\n </ActionButton>\n )}\n </div>\n </div>\n </div>\n </AppLink>\n <div className='pre-wrap text-break mb-3' dangerouslySetInnerHTML={{ __html: LinkifyHelper.linkifyText(props.event.description || props.event.content.description) }}/>\n {(isLiveStream(props.event.content) &&\n <div className='d-flex mb-3'>\n <div className='rounded-pill border border-dark px-2 bg-white d-inline-block me-2'>\n {AudienceHelper.getMergedPresentationAudienceString(\n props.event.content.audiences as PresentationAudience[]\n )?.name}\n </div>\n <div className='rounded-pill fw-semibold bg-dark text-white d-inline-block px-2'>\n {`${DateHelper.diffBetween(props.event.content.endDateTime, props.event.content.startDateTime, 'minutes')}m`}\n </div>\n </div>\n )}\n </div>\n </div>\n );\n}\n","import { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { CalendarEvent, CalendarEventContentType } from 'libs/shared/interfaces';\n\nexport const CalendarRequests = {\n calendarEvents(\n from: string,\n to: string,\n presentationId: string\n ): Flight.PublicRequest {\n return {\n url: UrlHelper.urlBuilder('{gateway}/v1/discover/special-events/content', { from, to, presentationId }),\n publicUrl: UrlHelper.urlBuilder(`/api/discover/special-events/content`, { from, to, presentationId }),\n key: `presentation:${presentationId}:events:from:${from}:to${to}`\n };\n },\n\n nextTopicSpecialEvent(\n classificationId: string,\n presentationId: string\n ): Flight.PublicRequest {\n const params = {\n presentationId,\n limit: 1,\n from: DateHelper.format(new Date(), 'YYYY-MM-DD'),\n objectType: CalendarEventContentType.Classification\n };\n\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/discover/special-events/object/${classificationId}/next-events`, params),\n publicUrl: UrlHelper.urlBuilder(`/api/discover/special-events/object/${classificationId}/next-events`, params),\n key: `presentation:${presentationId}:events:classification:${classificationId}`,\n formatData: (events: CalendarEvent[]) => ArrayHelper.first(events)\n };\n }\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"pillTab\":\"bMJM0\"};","import React from 'react';\n\nimport { AppLinkHelper } from 'libs/common/backbone/core';\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { PillTabSelector } from 'libs/shared/components/pill-tab-selector/PillTabSelector';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { DashboardUserType } from 'libs/shared/interfaces';\n\nimport styles from './discover-header.scss';\n\nconst namespace = 'discover.header';\n\nexport interface DiscoverHeaderAppLinks {\n forYou: Core.AppLink;\n whatsNew: Core.AppLink;\n calendar: Core.AppLink;\n}\n\ninterface DiscoverHeaderProps {\n type: DashboardUserType;\n hasStudentExperience?: boolean;\n appLinks?: DiscoverHeaderAppLinks;\n showCalendar: boolean;\n active: keyof DiscoverHeaderAppLinks;\n}\n\nexport function DiscoverHeader(props: DiscoverHeaderProps): JSX.Element {\n if (!props.type)\n return <></>;\n\n if (props.type === DashboardUserType.Learner || props.hasStudentExperience) {\n return (\n <div className='py-3'>\n <h1 className='h2 mb-0'>\n <Text namespace={namespace} phrase='heading' />\n </h1>\n </div>\n );\n }\n\n const tabs = [{\n name: LanguageService.getPhrase(namespace, 'forYou'),\n appLink: props.appLinks?.forYou,\n active: props.active === 'forYou',\n analyticsData: {\n name: LanguageService.getPhrase(namespace, 'forYou'),\n url: AppLinkHelper.getHref(props.appLinks?.forYou)\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n }\n }, {\n name: LanguageService.getPhrase(namespace, 'whatsNew'),\n appLink: props.appLinks?.whatsNew,\n active: props.active === 'whatsNew',\n analyticsData: {\n name: LanguageService.getPhrase(namespace, 'whatsNew'),\n url: AppLinkHelper.getHref(props.appLinks?.whatsNew)\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n }\n }];\n\n if (props.showCalendar) {\n tabs.push({\n name: LanguageService.getPhrase(namespace, 'calendar'),\n appLink: props.appLinks?.calendar,\n active: props.active === 'calendar',\n analyticsData: {\n name: LanguageService.getPhrase(namespace, 'calendar'),\n url: AppLinkHelper.getHref(props.appLinks?.calendar)\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n }\n });\n }\n\n return (\n <div className='py-3 text-center mx-n3'>\n <PillTabSelector\n tabs={tabs}\n className={styles.pillTab}\n />\n </div>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Badge, BadgeType } from 'libs/shared/components/badges/Badge';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\n\nimport { SvgContainer } from '../svg-container/SvgContainer';\n\nimport styles from './pill-tab-selector.scss';\n\ninterface TabContentsProps {\n tab: PillTab;\n}\n\nfunction TabContents(props: TabContentsProps): JSX.Element {\n return (\n <>\n {!!props.tab.svgName && (\n <div className={props.tab.name ? 'pe-1' : ''}>\n <SvgContainer svgName={props.tab.svgName} />\n </div>\n )}\n\n {props.tab.name}\n\n {typeof (props.tab.count) === 'number' && (\n <div className='ps-2'>\n <Badge type={BadgeType.Count} data={props.tab.count} />\n </div>\n )}\n </>\n );\n}\n\nexport interface PillTab {\n name: string;\n active: boolean;\n svgName?: string;\n\n className?: string;\n\n appLink?: Core.AppLink;\n onSelect?: () => void;\n\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n\n count?: number;\n}\n\ninterface PillTabSelectorProps {\n tabs: PillTab[];\n containerRef?: (el: HTMLElement) => void;\n listClassName?: string;\n className?: string;\n borderRadius?: 'sm' | 'lg'\n}\n\nPillTabSelector.defaultProps = {\n borderRadius: 'lg'\n};\n\nexport function PillTabSelector(props: PillTabSelectorProps): JSX.Element {\n function onSelectTab(tab: PillTab): void {\n if (tab.active || !tab.onSelect)\n return;\n\n tab.onSelect();\n\n if (tab.analyticsData && tab.analyticsOptions)\n AnalyticsHelper.logUserAction(tab.analyticsData, tab.analyticsOptions);\n }\n\n return (\n <nav className={props.className ?? ''} ref={props.containerRef}>\n <ul className={`\n list-unstyled d-inline-block m-0 ${styles.pillTabSelector}\n ${props.borderRadius ? styles.radiusSmall : ''}\n ${props.listClassName}\n `}>\n {props.tabs.map((tab, index) => {\n return (\n <li\n className={`\n p-0 ${styles.tab} ${tab.active ? 'btn btn-dark' : 'btn btn-outline-dark'}\n ${tab.name ? styles.minWidth : ''} ${tab.className}\n `}\n key={index}\n >\n {tab.appLink ? (\n <AppLink\n appLink={tab.appLink}\n analyticsData={tab.analyticsData}\n analyticsOptions={tab.analyticsOptions}\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ${styles.tabLink}\n `}\n >\n <TabContents tab={tab} />\n </AppLink>\n ) : (\n <DivButton\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ${styles.tabLink}\n `}\n onClick={() => onSelectTab(tab)}\n >\n <TabContents tab={tab} />\n </DivButton>\n )}\n </li>\n );\n })}\n </ul>\n </nav>\n );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"WRLhh\",\"weekend\":\"mF0ka\"};","import React from 'react';\n\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { CalendarDay } from 'libs/shared/apps/calendar/components/calendar-day/CalendarDay';\nimport { CalendarCellProps } from 'libs/shared/apps/calendar/interfaces/CalendarCellProps';\nimport { HoverToPortalContainer } from 'libs/shared/components/hover-to-portal-container/HoverToPortalContainer';\n\nimport styles from './calendar-cell.scss';\n\nfunction getIsWeekend(date: Date): boolean {\n return DateHelper.getWeekday(date) === 0 || DateHelper.getWeekday(date) === 6;\n}\n\nexport function CalendarCell(props: CalendarCellProps): JSX.Element {\n const { date, notCurrentMonth } = props;\n const [ sliderStep, setSliderStep ] = React.useState<number>(0);\n\n let wrapperClassname = `position-relative border ${props.theme.border} ${styles.wrapper}`;\n if (getIsWeekend(date)) wrapperClassname += ` ${styles.weekend}`;\n if (notCurrentMonth) wrapperClassname += `opacity-50`;\n\n const eventsOnDay = props.events?.filter(e => DateHelper.isSame(props.date, e.startDate)) || [];\n const updatedProps = { ...props, eventsOnDay, sliderStep, setSliderStep };\n\n return (\n <td className={wrapperClassname}>\n {eventsOnDay?.length > 0 ? (\n <HoverToPortalContainer<CalendarCellProps>\n hoverableComponent={CalendarDay}\n componentProps={updatedProps}\n hoverScale={1.35}\n />\n ) : <CalendarDay {...updatedProps} isHovering={false} />}\n </td>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\n\nconst namespace = 'specialEvent.eventsEmptyState';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface SpecialEventEmptyStateProps {\n appLink: Core.AppLink;\n imageUrl: string;\n heading?: string;\n}\n\nexport function SpecialEventEmptyState(props: SpecialEventEmptyStateProps): JSX.Element {\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <EmptyState>\n <EmptyState.Image src={props.imageUrl} altText={getPhrase('info')} />\n <EmptyState.Heading>{props.heading || <Text phrase='heading' />}</EmptyState.Heading>\n {props.appLink &&\n <EmptyState.Info>\n <>\n <Text namespace={namespace} phrase='info' />\n <AppLink appLink={props.appLink}>\n <span className='text-info'>{getPhrase('link')}</span>\n </AppLink>\n </>\n </EmptyState.Info>\n }\n </EmptyState>\n </LanguageNamespaceContext.Provider>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"date\":\"k2lLG\",\"first\":\"E18Bv\"};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { SpecialEventListItem } from 'libs/shared/apps/calendar/components/special-event-list-item/SpecialEventListItem';\nimport { SpecialEventHelper } from 'libs/shared/apps/calendar/utils/SpecialEventHelper';\nimport { CalendarEvent, CalendarEventContent } from 'libs/shared/interfaces';\n\nimport styles from './special-event-list.scss';\n\ninterface SpecialEventListProps {\n events: CalendarEvent[];\n presentationId: string;\n appLink: (content: CalendarEventContent, slug?: string) => Core.AppLink;\n getIconUrl?: (content: CalendarEventContent) => string;\n getBannerUrl?: (content: CalendarEventContent) => string;\n getBackgroundColor?: (content: CalendarEventContent) => string;\n getActionLabel?: (content?: CalendarEventContent) => string;\n getStartTime?: (content: CalendarEventContent) => string;\n isPastEvent?: (content: CalendarEventContent) => boolean;\n}\n\nexport function SpecialEventList(props: SpecialEventListProps): JSX.Element {\n const eventsInMonth: Record<string, CalendarEvent<CalendarEventContent>[]> = {};\n\n props.events.forEach(e => {\n const startDate = e.startDate;\n if (eventsInMonth[startDate]) {\n eventsInMonth[startDate].push(e);\n } else {\n eventsInMonth[startDate] = [e];\n }\n });\n\n const keys = Object.keys(eventsInMonth);\n keys.sort((a, b) => DateHelper.isBefore(a, b) ? -1 : 0);\n\n return (\n <div className='py-1'>\n {keys.map((k, idx) => {\n let prevTime = '';\n let currentTime = '';\n return (\n <div key={k}>\n <div className={`h4 mt-4 ${styles.date} ${idx === 0 ? styles.first : ''}`}>{SpecialEventHelper.getOrdinalDate(k)}</div>\n {eventsInMonth[k].map(e => {\n prevTime = currentTime;\n currentTime = props.getStartTime?.(e.content);\n\n return (\n <SpecialEventListItem\n key={e.content.id}\n getAppLink={(id, name) => {\n return props.appLink(id, TextHelper.slugify(name));\n }}\n event={e}\n presentationId={props.presentationId}\n getIconUrl={props.getIconUrl}\n getBannerUrl={props.getBannerUrl}\n getBackgroundColor={props.getBackgroundColor}\n getActionLabel={() => props.getActionLabel(e.content)}\n getStartTime={props.getStartTime && prevTime !== currentTime\n ? props.getStartTime\n : null\n }\n isPastEvent={props.isPastEvent}\n />\n );\n })}\n </div>\n );\n })}\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"header\":\"sTIcQ\",\"thead\":\"ekxZd\"};","import React from 'react';\nimport { Spinner } from 'react-bootstrap';\n\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { CalendarCell } from 'libs/shared/apps/calendar/components/calendar-cell/CalendarCell';\nimport { CalendarAppLinks } from 'libs/shared/apps/calendar/interfaces/CalendarAppLinks';\nimport { CalendarImageUrls } from 'libs/shared/apps/calendar/interfaces/CalendarImageUrls';\nimport { CalendarTheme } from 'libs/shared/apps/calendar/interfaces/CalendarTheme';\nimport { MonthQuery } from 'libs/shared/apps/calendar/interfaces/MonthQuery';\nimport { PatchedDate } from 'libs/shared/apps/calendar/utils/CalendarHelper';\nimport { SpecialEventHelper } from 'libs/shared/apps/calendar/utils/SpecialEventHelper';\nimport { Timezone } from 'libs/shared/apps/streamable-learning/constants/Timezones';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { CalendarEvent, CalendarEventContent } from 'libs/shared/interfaces';\n\nimport { SpecialEventEmptyState } from '../empty-state/SpecialEventEmptyState';\nimport { SpecialEventList } from '../special-event-list/SpecialEventList';\n\nimport styles from './calendar-body.scss';\n\nCalendarBody.defaultProps = {\n theme: {\n border: 'border-light-blue',\n background: 'bg-light-blue'\n }\n};\n\ninterface CalendarBodyProps {\n weekDays: PatchedDate[][];\n weekDaysHeader: string[];\n events?: CalendarEvent[];\n monthQuery: MonthQuery;\n viewingMonth: Date;\n eventsLoaded: boolean;\n presentationId: string;\n appLinks: CalendarAppLinks;\n imageUrls: CalendarImageUrls;\n viewMode?: string;\n theme?: CalendarTheme;\n emptyStateHeading?: string;\n fadePastEvents?: boolean;\n timezone?: Timezone;\n getIconUrl?: (content: CalendarEventContent) => string;\n getBackgroundColor?: (content: CalendarEventContent) => string;\n getBannerUrl?: (content: CalendarEventContent) => string;\n getCoverUrl?: (content: CalendarEventContent) => string;\n getActionLabel?: (content?: CalendarEventContent) => string;\n getStartTime?: (content: CalendarEventContent) => string;\n getHardCodedEvent?: (content: CalendarEventContent) => HashObject;\n isPastEvent?: (content: CalendarEventContent) => boolean;\n}\n\nexport function CalendarBody(props: CalendarBodyProps): JSX.Element {\n const { appLinks, imageUrls } = props;\n\n const breakpoints = useBreakpoints();\n\n const eventsInMonth = SpecialEventHelper.getEventsInMonth(props.events || [], props.viewingMonth);\n\n const [ hasInitialized, setHasInitialized ] = React.useState(false);\n const [ hoveredEvent, setHoveredEvent ] = React.useState<CalendarEvent<CalendarEventContent>>(null);\n\n if (props.eventsLoaded && !eventsInMonth?.length) {\n return (\n <SpecialEventEmptyState\n imageUrl={imageUrls.emptyState}\n appLink={appLinks.emptyStateRedirect?.()}\n heading={props.emptyStateHeading}\n />\n );\n }\n\n if (props.viewMode === 'list' || breakpoints.xs || breakpoints.sm || breakpoints.md) {\n if (!props.eventsLoaded) {\n return (\n <div className='d-flex justify-content-center align-items-center mb-4'>\n <Spinner as='div' animation='border' role='status' />\n </div>\n );\n }\n\n return (\n <SpecialEventList\n events={eventsInMonth}\n presentationId={props.presentationId}\n appLink={props.appLinks.event}\n getIconUrl={props.getIconUrl}\n getBannerUrl={props.getBannerUrl}\n getBackgroundColor={props.getBackgroundColor}\n getActionLabel={props.getActionLabel}\n getStartTime={props.getStartTime}\n isPastEvent={props.isPastEvent}\n />\n );\n }\n\n return (\n <table className='user-select-none w-100 mt-3 overflow-hidden rounded-top-lg'>\n <thead className={`border ${props.theme.border} ${styles.thead}`}>\n <tr className={`fw-semibold ${props.theme.background} ${styles.header}`}>\n {props.weekDaysHeader.map(w => <th key={w} className='px-2 h4' scope='col'>{w}</th>)}\n </tr>\n </thead>\n\n <tbody>\n {props.weekDays.map(w => (\n <tr key={w[0].toString()}>\n {w.map(d => {\n return (\n <CalendarCell\n key={d.toString()}\n date={d}\n notCurrentMonth={!!d.notCurrentMonth}\n events={props.events}\n monthQuery={props.monthQuery}\n hasInitialized={hasInitialized}\n setHasInitialized={setHasInitialized}\n presentationId={props.presentationId}\n hoveredEvent={hoveredEvent}\n theme={props.theme}\n setHoveredEvent={setHoveredEvent}\n getEventsListAppLink={() => props.appLinks.eventList(props.monthQuery, d, props.presentationId)}\n getTopicAppLink={(calendarEventContent, slug) =>\n props.appLinks.event(calendarEventContent, slug)}\n getIconUrl={props.getIconUrl}\n getBackgroundColor={props.getBackgroundColor}\n getCoverUrl={props.getCoverUrl}\n getHardCodedEvent={props.getHardCodedEvent}\n fadePastEvents={props.fadePastEvents}\n timezone={props.timezone}\n />\n );\n })}\n </tr>\n ))}\n </tbody>\n </table>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"chevron\":\"U_GAM\",\"left\":\"t_wDz\",\"right\":\"KgpGw\",\"viewModeContainer\":\"csNfk\"};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { AnalyticsOptions, CalendarDisplayModeDescriptor, EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { CalendarAppLinks } from 'libs/shared/apps/calendar/interfaces/CalendarAppLinks';\nimport { CalendarViewMode } from 'libs/shared/apps/calendar/interfaces/CalendarViewMode';\nimport { canNavToOtherMonths } from 'libs/shared/apps/calendar/utils/CalendarHelper';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './calendar-nav.scss';\n\nconst namespace = 'specialEventCalendar.calendarNav';\n\ninterface CalendarNavProps extends React.PropsWithChildren {\n monthDate: Date;\n appLinks: CalendarAppLinks;\n viewMode?: CalendarViewMode;\n queryParams?: HashObject;\n setViewingMonthDate: (date?: Date) => void;\n setViewMode?: (viewMode: CalendarViewMode) => void;\n}\n\ninterface ViewModeSwitcherProps {\n viewMode: CalendarViewMode;\n setViewMode?: (viewMode: CalendarViewMode) => void;\n}\n\nfunction ViewModeSwitcher(props: ViewModeSwitcherProps): JSX.Element {\n return (\n <div className={`${styles.viewModeContainer} d-none d-lg-block`}>\n <IconButton\n svgName={cvSvgLibrary.Calendar}\n className={`${props.viewMode === 'calendar' ? 'bg-dark text-white' : ''} btn btn-outline-dark rounded-start rounded-end-0 border-end-0 px-3 h-100`}\n onClick={() => props.setViewMode('calendar')}\n analyticsData={{}}\n analyticsOptions={{\n entity: EntityType.AppLink,\n actionType: UserAction.Click,\n descriptor: CalendarDisplayModeDescriptor.Calendar,\n location: LocationContext.CalendarNav\n }}\n />\n <IconButton\n svgName={cvSvgLibrary.TableOfContents}\n className={`${props.viewMode === 'list' ? 'bg-dark text-white' : ''} btn btn-outline-dark rounded-end rounded-start-0 border-start-0 px-3 h-100`}\n onClick={() => props.setViewMode('list')}\n analyticsData={{}}\n analyticsOptions={{\n entity: EntityType.AppLink,\n actionType: UserAction.Click,\n descriptor: CalendarDisplayModeDescriptor.List,\n location: LocationContext.CalendarNav\n }}\n />\n </div>\n );\n}\n\ninterface NavigateButtonProps {\n action: 'next' | 'previous';\n appLink?: Core.AppLink;\n analyticsOptions?: AnalyticsOptions;\n analyticsData?: HashObject;\n onClick: () => void;\n}\n\nfunction NavigateButton(props: NavigateButtonProps): JSX.Element {\n const arrowSvg = props.action === 'previous' ? cvSvgLibrary.ChevronLeft : cvSvgLibrary.ChevronRight;\n const className = props.action === 'previous' ? styles.left : styles.right;\n\n function onClick() {\n Core.AppLinkHelper.trigger(props.appLink);\n\n props.onClick();\n }\n\n return (\n <AppLink\n appLink={props.appLink}\n analyticsData={props.analyticsData}\n analyticsOptions={props.analyticsOptions}\n className={`${styles.chevron} ${className} border border-dark rounded-circle bg-white d-flex align-items-center justify-content-center`}\n onClick={onClick}\n >\n <SvgContainer\n svgName={arrowSvg}\n size={SvgContainerSize.Medium}\n className={`svg-container d-inline-block ${styles.svg}`}\n />\n </AppLink>\n );\n}\n\nconst CUR_DATE = new Date();\n\nexport function CalendarNav(props: CalendarNavProps): JSX.Element {\n const { appLinks } = props;\n\n const breakpoints = useBreakpoints();\n \n function getAppLink(monthDate?: Date): Core.AppLink {\n const month = DateHelper.format(monthDate, 'MMMM').toLocaleLowerCase();\n\n const appLink: Core.AppLink = appLinks.month(month);\n\n const params: HashObject = {};\n\n if (monthDate) {\n const currentYear = new Date().getFullYear();\n const year = monthDate.getFullYear();\n \n if (currentYear !== year)\n params.year = year;\n }\n\n if (props.queryParams?.classification)\n params.classification = props.queryParams.classification;\n\n if (props.queryParams?.yearGroup)\n params.yearGroup = props.queryParams.yearGroup;\n\n appLink.params = params;\n\n return appLink;\n }\n\n function onClickNext () {\n const nextMonth = DateHelper.add(props.monthDate, 1, 'month');\n props.setViewingMonthDate(nextMonth);\n }\n\n function onClickPrevious() {\n const prevMonth = DateHelper.subtract(props.monthDate, 1, 'month');\n props.setViewingMonthDate(prevMonth);\n }\n\n function onClickToday() {\n if (DateHelper.format(CUR_DATE, 'M YY') === DateHelper.format(props.monthDate, 'M YY')) return;\n \n props.setViewingMonthDate();\n }\n \n const { showPrev, showNext } = canNavToOtherMonths(props.monthDate);\n\n const analyticsOptions: AnalyticsOptions = {\n actionType: UserAction.Click,\n entity: EntityType.SpecialEvent,\n location: LocationContext.CalendarNav\n };\n\n function formatAnalyticDataDate(date: Date) {\n return DateHelper.format(date, 'YYYY-MM-DD');\n }\n return (\n <div className='d-flex flex-wrap gap-3 justify-content-end align-items-center'>\n <h1 className='mb-0 h2 me-auto'>{DateHelper.format(props.monthDate, breakpoints.xs ? 'MMM YYYY' : 'MMMM YYYY')}</h1>\n\n {props.children}\n\n {props.setViewMode && (\n <ViewModeSwitcher viewMode={props.viewMode} setViewMode={props.setViewMode} />\n )}\n <div className='d-flex gap-3'>\n {showPrev && (\n <NavigateButton\n appLink={getAppLink(DateHelper.startOf(DateHelper.subtract(props.monthDate, 1, 'month'), 'month'))}\n action='previous'\n onClick={onClickPrevious}\n analyticsOptions={analyticsOptions}\n analyticsData={{ action: 'previous', date: formatAnalyticDataDate(DateHelper.startOf(DateHelper.add(props.monthDate, 1, 'month'), 'month')) }}\n />\n )}\n <AppLink\n appLink={getAppLink()}className={`${styles.todayWrapper} btn btn-outline-dark fw-semibold`}\n onClick={onClickToday}\n analyticsOptions={analyticsOptions}\n analyticsData={{ action: 'today', date: formatAnalyticDataDate(DateHelper.startOf(CUR_DATE, 'month')) }}\n >\n {LanguageService.getPhrase(namespace, 'today')}\n </AppLink>\n {showNext && (\n <NavigateButton\n appLink={getAppLink(DateHelper.startOf(DateHelper.add(props.monthDate, 1, 'month'), 'month'))}\n analyticsOptions={analyticsOptions}\n analyticsData={{ action: 'next', date: formatAnalyticDataDate(DateHelper.startOf(DateHelper.add(props.monthDate, 1, 'month'), 'month')) }}\n action='next'\n onClick={onClickNext}\n />\n )}\n </div>\n </div>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\n\nconst namespace = 'specialEvent.eventsErrorState';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface SpecialEventErrorStateProps {\n imageUrl: string;\n appLink: Core.AppLink;\n}\n\nexport function SpecialEventErrorState(props: SpecialEventErrorStateProps): JSX.Element {\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <EmptyState>\n <EmptyState.Image src={props.imageUrl} />\n <EmptyState.Heading><Text phrase='heading' /></EmptyState.Heading>\n <EmptyState.Info>\n <Text namespace={namespace} phrase='info' />\n <br/>\n <AppLink appLink={props.appLink}>\n <span className='text-info'>{getPhrase('link')}</span>\n </AppLink>\n </EmptyState.Info>\n </EmptyState>\n </LanguageNamespaceContext.Provider>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { CalendarAppLinks } from 'libs/shared/apps/calendar/interfaces/CalendarAppLinks';\n\nimport { buildWeeksTable, DatePositionMap, initWeekDays, PatchedDate, WeeksTable } from '../utils/CalendarHelper';\n\ntype Cache = Record<string, {\n datePositionMap: DatePositionMap,\n weeksTable: WeeksTable\n }>\n\nconst TODAY_DATE = new Date();\n\nexport function useCalendarWeeksTable(date: Date = TODAY_DATE, appLinks: CalendarAppLinks, startAtMon: boolean = true) {\n const weekDaysHeader = initWeekDays(startAtMon);\n\n const cacheRef = React.useRef<Cache>({});\n\n const [ weekDays, setWeekDays ] = React.useState<PatchedDate[][]>([]);\n const monthDateString = DateHelper.format(date, 'YYYY-MM');\n React.useEffect(() => {\n const cached = cacheRef.current[monthDateString];\n if (!cached) {\n const { weeksTable, datePositionMap } = buildWeeksTable(date, startAtMon);\n \n cacheRef.current[monthDateString] = { weeksTable, datePositionMap };\n\n setWeekDays(weeksTable);\n } else {\n setWeekDays(cached.weeksTable);\n }\n }, [DateHelper.format(date, 'YYYY-MM')]);\n\n function setViewingMonthDate(nextMonthDate?: Date) {\n if (!nextMonthDate) {\n Core.AppLinkHelper.trigger(appLinks.calendar());\n\n return;\n }\n\n if (monthDateString !== DateHelper.format(nextMonthDate, 'YYYY-MM')) {\n const month = DateHelper.format(nextMonthDate, 'MMMM').toLocaleLowerCase();\n\n const currentYear = new Date().getFullYear();\n const year = date.getFullYear();\n\n const appLink: Core.AppLink = appLinks.month(month);\n\n if (currentYear !== year)\n appLink.params = { year };\n\n Core.AppLinkHelper.trigger(appLink);\n }\n }\n\n const startDate = ArrayHelper.first(ArrayHelper.first(weekDays));\n const endDate = ArrayHelper.last(ArrayHelper.last(weekDays));\n\n return { weekDaysHeader, weekDays, monthDate: date, setMonthDate: setViewingMonthDate, startDate, endDate };\n}","import { CalendarAppLinks } from 'libs/shared/apps/calendar/interfaces/CalendarAppLinks';\nimport { CalendarImageUrls } from 'libs/shared/apps/calendar/interfaces/CalendarImageUrls';\nimport { MonthQuery } from 'libs/shared/apps/calendar/interfaces/MonthQuery';\nimport { PatchedDate } from 'libs/shared/apps/calendar/utils/CalendarHelper';\nimport { CountryCode } from 'libs/shared/enums/CountryCode';\nimport { Classification } from 'libs/shared/interfaces';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { ClassificationAppLinkHelper } from 'shared/utils/ClassificationAppLinkHelper';\n\nexport function getCalendarImageUrls(countryCode?: CountryCode): CalendarImageUrls {\n switch (countryCode?.toLocaleLowerCase()) {\n case CountryCode.AU:\n return {\n emptyState: ImageUrls.EmptyStates.CALENDAR.NO_EVENTS_AU,\n errorState: ImageUrls.EmptyStates.CALENDAR.INVALID_DATE\n };\n\n case CountryCode.US:\n return {\n emptyState: ImageUrls.EmptyStates.CALENDAR.NO_EVENTS_US,\n errorState: ImageUrls.EmptyStates.CALENDAR.INVALID_DATE\n };\n\n case CountryCode.UK:\n return {\n emptyState: ImageUrls.EmptyStates.CALENDAR.NO_EVENTS_UK,\n errorState: ImageUrls.EmptyStates.CALENDAR.INVALID_DATE\n };\n\n default:\n return {\n emptyState: ImageUrls.EmptyStates.CALENDAR.NO_EVENTS,\n errorState: ImageUrls.EmptyStates.CALENDAR.INVALID_DATE\n };\n }\n}\n\nexport function getCalendarAppLinks(): CalendarAppLinks {\n return {\n calendar: () => ({ application: AppChannels.CALENDAR, action: Actions.Calendar.CALENDAR }),\n month: (month: string) => ({\n application: AppChannels.CALENDAR,\n action: Actions.Calendar.CALENDAR_MONTH,\n args: [month]\n }),\n event: (classification: Classification, slug: string) => {\n return ClassificationAppLinkHelper.getAppLink({ ...classification, name: slug || classification.name });\n },\n eventList: (monthQuery: MonthQuery, date: PatchedDate, presentationId: string) => ({\n application: AppChannels.CALENDAR,\n action: Actions.Calendar.SPECIAL_EVENT_LIST,\n params: {\n ...monthQuery,\n date: date.toString(),\n presentationId: presentationId\n }\n }),\n emptyStateRedirect: () => ({\n application: AppChannels.CONTENT_UPDATES,\n action: Actions.ContentUpdates.CONTENT_UPDATES\n })\n };\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/react/index';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { CalendarBody } from 'libs/shared/apps/calendar/components/calendar-body/CalendarBody';\nimport { CalendarNav } from 'libs/shared/apps/calendar/components/calendar-nav/CalendarNav';\nimport { SpecialEventErrorState } from 'libs/shared/apps/calendar/components/error-state/SpecialEventErrorState';\nimport { useCalendarEventsData } from 'libs/shared/apps/calendar/hooks/useCalendarEventsData';\nimport { useCalendarWeeksTable } from 'libs/shared/apps/calendar/hooks/useCalendarWeeksTable';\nimport { CalendarQueryParams } from 'libs/shared/apps/calendar/interfaces/CalendarQueryParams';\nimport { getIsValidMonth, parseMonthString } from 'libs/shared/apps/calendar/utils/CalendarHelper';\nimport { DiscoverHeader } from 'libs/shared/apps/discover/components/header/DiscoverHeader';\nimport { HardCoded } from 'libs/shared/constants/HardCoded';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Classification, CurrentUser, DashboardUserType } from 'libs/shared/interfaces';\nimport { ImageHelper } from 'libs/shared/utils/ImageHelper';\nimport { PageMetadataHelper } from 'libs/shared/utils/PageMetadataHelper';\n\nimport { usePresentation } from 'shared/hooks/usePresentation';\nimport { useShowCalendar } from 'shared/hooks/useShowCalendar';\nimport { REGIONAL_CALENDAR_INDEXABILITY } from 'shared/utils/LiteRegionHelper';\nimport { SeoHelper } from 'shared/utils/SeoHelper';\n\nimport { getCalendarAppLinks, getCalendarImageUrls } from 'apps/calendar/views/calendar-view/CalendarViewUtils';\nimport { getDiscoverHeaderAppLinks } from 'apps/dashboard/views/dashboard/DiscoverViewUtils';\n\nconst namespace = 'specialEventCalendar.calendarView';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport interface CalendarViewProps {\n month?: string\n presentationSlug?: string;\n}\n\nexport function CalendarView(props: CalendarViewProps): JSX.Element {\n const breakpoints = useBreakpoints();\n const { activePresentation } = usePresentation({ redirectOnError: true });\n const { showCalendar, isLoading } = useShowCalendar();\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n const isValidMonth = getIsValidMonth(props.month);\n\n React.useEffect(() => {\n if (!isLoading && !showCalendar)\n Core.AppLinkHelper.trigger(getDiscoverHeaderAppLinks().forYou, { replace: true });\n }, [ showCalendar, isLoading ]);\n\n const viewingMonth = parseMonthString(props.month);\n \n const {\n monthDate,\n setMonthDate,\n weekDays,\n weekDaysHeader,\n startDate, endDate\n } = useCalendarWeeksTable(viewingMonth, getCalendarAppLinks());\n\n const { events, loaded } = useCalendarEventsData(viewingMonth, activePresentation.id);\n\n const currentMonthYear = DateHelper.format(monthDate, 'MMMM YYYY');\n\n useSetPageMetadata(PageMetadataHelper.getDefaultMetadata({\n title: currentMonthYear,\n phraseContext: {\n phraseHandler: getPhrase,\n titlePhrase: 'pageTitle',\n descriptionPhrase: 'pageDescription'\n },\n canonicalLink: SeoHelper.getCanonicalLink<keyof CalendarQueryParams>({ allowedParams: ['year']}),\n allowIndexing: SeoHelper.allowIndexing(),\n hrefLang: SeoHelper.getStaticRouteHrefLang(\n activePresentation?.learningLevel,\n getCalendarAppLinks().calendar,\n REGIONAL_CALENDAR_INDEXABILITY\n )\n }));\n\n if (props.month !== null && !isValidMonth) {\n return (\n <SpecialEventErrorState\n imageUrl={getCalendarImageUrls().errorState}\n appLink={getCalendarAppLinks().calendar()}\n />\n );\n }\n\n function getIconUrl(classification: Classification, hardCodedEvent?: HashObject): string {\n return hardCodedEvent\n // in calendar we use hardcoded icon for hardcoded event\n ? ImageHelper.createUrl((hardCodedEvent.iconUrl), { size: ImageSize.Medium })\n : ImageHelper.createUrl(classification.icon?.url, { size: ImageSize.Small });\n }\n\n function getCoverUrl(classification: Classification): string {\n return ImageHelper.createUrl(classification.cover?.url, { size: ImageSize.Small });\n }\n\n function getActionLabel(): string {\n return !breakpoints.xs ? getPhrase('buttonLabel') : getPhrase('mobileButtonLabel');\n }\n\n function getHardCodedEvent(classification: Classification): HashObject {\n return HardCoded.SpecialEvents[classification.id as keyof typeof HardCoded.SpecialEvents];\n }\n\n if (isLoading || !activePresentation?.id || !currentUser.data.countryCode)\n return <></>;\n\n return (\n <div className='bg-white px-3'>\n <DiscoverHeader\n type={DashboardUserType.Staff}\n appLinks={getDiscoverHeaderAppLinks()}\n showCalendar={showCalendar}\n active='calendar'\n />\n <CalendarNav monthDate={monthDate} setViewingMonthDate={setMonthDate} appLinks={getCalendarAppLinks()} />\n <CalendarBody\n weekDays={weekDays}\n weekDaysHeader={weekDaysHeader}\n events={events}\n monthQuery={{ from: startDate?.toString(), to: endDate?.toString() }}\n viewingMonth={viewingMonth}\n eventsLoaded={loaded}\n presentationId={activePresentation.id}\n appLinks={getCalendarAppLinks()}\n imageUrls={getCalendarImageUrls(currentUser.data.countryCode)}\n getIconUrl={(classification: Classification) => getIconUrl(classification, getHardCodedEvent(classification))}\n getCoverUrl={getCoverUrl}\n getBackgroundColor={(classification: Classification) => classification.metadata?.backgroundColor}\n getBannerUrl={(classification: Classification) => classification.banner?.url}\n getActionLabel={getActionLabel}\n getHardCodedEvent={getHardCodedEvent}\n />\n </div>\n );\n}","import { Flight } from 'libs/common/flight';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { CalendarEvent } from 'libs/shared/interfaces';\n\nimport { CalendarRequests } from '../flight-request/CalendarRequests';\nimport { getCalendarRange } from '../utils/CalendarHelper';\n\nexport function useCalendarEventsData(viewMonth: Date, presentationId: string) {\n const pid = presentationId;\n const [ startDate, endDate ] = getCalendarRange(viewMonth);\n\n const nextMonth = DateHelper.add(viewMonth, 1, 'month');\n const [ nextStartDate, nextEndDate ] = getCalendarRange(nextMonth);\n\n const prevMonth = DateHelper.subtract(viewMonth, 1, 'month');\n const [ prevStartDate, prevEndDate ] = getCalendarRange(prevMonth);\n\n const events = Flight.useBasicFetch<CalendarEvent[]>((startDate && endDate && pid)\n && CalendarRequests.calendarEvents(DateHelper.format(startDate, 'YYYY-MM-DD'), DateHelper.format(endDate, 'YYYY-MM-DD'), pid));\n const nextEvents = Flight.useBasicFetch<CalendarEvent[]>((nextStartDate && nextEndDate && pid)\n && CalendarRequests.calendarEvents(DateHelper.format(nextStartDate, 'YYYY-MM-DD'), DateHelper.format(nextEndDate, 'YYYY-MM-DD'), pid));\n const prevEvents = Flight.useBasicFetch<CalendarEvent[]>((prevStartDate && prevEndDate && pid)\n && CalendarRequests.calendarEvents(DateHelper.format(prevStartDate, 'YYYY-MM-DD'), DateHelper.format(prevEndDate, 'YYYY-MM-DD'), pid));\n\n const uniqueEventList = ArrayHelper.uniq(\n [ ...prevEvents.data || [], ...events.data || [], ...nextEvents.data || [] ],\n e => e.specialEventPolicyId\n );\n\n return { events: uniqueEventList, loaded: events.hasCompleted };\n}","import { AppLink } from 'libs/common/backbone/core';\nimport { Core } from 'libs/common/backbone/index';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { DiscoverDashboardProps } from 'libs/shared/apps/discover/components/discover-dashboard/DiscoverDashboard';\nimport { DiscoverHeaderAppLinks } from 'libs/shared/apps/discover/components/header/DiscoverHeader';\nimport { OnboardingScreenId } from 'libs/shared/apps/onboarding/interfaces/OnboardingScreenId';\nimport { OlympicsCountdownImageUrls } from 'libs/shared/components/widgets/curated-widgets/WidgetProps';\nimport { HardCoded } from 'libs/shared/constants/HardCoded';\nimport { RelatedVideosContext } from 'libs/shared/enums/RelatedVideosContext';\nimport { Classification, Company, CurrentUser, Playlist, Presentation, VideoTypes } from 'libs/shared/interfaces';\nimport { GetVideoAppLinkOptions } from 'libs/shared/interfaces/VideoAppLinkOptions';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { ClassificationAppLinkHelper } from 'shared/utils/ClassificationAppLinkHelper';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nimport { getOnboardingAppLinks } from 'apps/onboarding/utils/OnboardingAppLinkHelper';\nimport { SeriesAppLinkHelper } from 'apps/series/SeriesAppLinkHelper';\n\nconst CLASSIFICATION_LATEST_RELEASES = 'classification-latest-releases';\nconst OMITTED_PARAMS = [ 'preview', 'dashboardId', 'skipPrompt' ];\n\nexport function getOlympicsCountdownImageUrls(presentation?: Presentation): OlympicsCountdownImageUrls | null {\n if (!presentation?.id) return null;\n\n const presentationId = Number(presentation.id);\n const logo = ImageUrls.OlympicsCountdown.LOGO;\n\n switch (presentationId) {\n case HardCoded.PresentationIds.AU_PRIMARY:\n return { logo, background: ImageUrls.OlympicsCountdown.PRIMARY };\n\n case HardCoded.PresentationIds.AU_SECONDARY:\n return { logo, background: ImageUrls.OlympicsCountdown.SECONDARY };\n\n default:\n return null;\n }\n}\n\nexport function getOlympicsTopicsAppLink(presentationId: string): AppLink | null {\n const topic = HardCoded.OlympicsTopics[presentationId as keyof typeof HardCoded.OlympicsTopics];\n\n if (!topic) {\n return null;\n }\n\n return {\n application: AppChannels.SUBJECT,\n action: Actions.Subjects.CLASSIFICATION,\n args: [ topic.id, topic.name ? TextHelper.slugify(topic.name) : '' ]\n };\n}\n\nexport function getDiscoverWidgetAppLinks(\n params: HashObject,\n currentUser: CurrentUser\n): DiscoverDashboardProps['widgetAppLinks'] {\n return {\n classification: (classification?: Classification) =>\n ClassificationAppLinkHelper.getAppLink(classification, params || {}),\n\n videoType: (video: VideoTypes, opts: GetVideoAppLinkOptions) => (\n VideoAppLinkHelper.getAppLink(video, {\n ...opts,\n context: RelatedVideosContext.Widget,\n includeContext: currentUser?.isAuthenticated\n })\n ),\n\n series: SeriesAppLinkHelper.getSeriesAppLink,\n\n playlist: (playlist: Playlist) => ({\n application: AppChannels.PLAYLISTS,\n action: Actions.Playlists.PLAYLIST,\n args: [ playlist.id, TextHelper.slugify(playlist.name) ]\n }),\n \n latestReleases: () => ({\n application: AppChannels.CONTENT_UPDATES,\n action: Actions.ContentUpdates.CONTENT_UPDATES\n }),\n\n allTopics: () => ({\n application: AppChannels.SUBJECT,\n action: Actions.Subjects.PRESENTATION_TOPICS\n }),\n\n classificationLatestReleases: (classification: Classification) => {\n if (classification.id === CLASSIFICATION_LATEST_RELEASES)\n return {\n application: AppChannels.CONTENT_UPDATES,\n action: Actions.ContentUpdates.CONTENT_UPDATES\n };\n\n return {\n application: AppChannels.CONTENT_UPDATES,\n action: Actions.ContentUpdates.CLASSIFICATION_UPDATE,\n args: [ classification.id, TextHelper.slugify(classification.name) ]\n };\n },\n\n classificationDirectory: (_classification: Classification) => {\n const appLinkClassification = _classification;\n\n return {\n application: AppChannels.SUBJECT,\n action: Actions.Subjects.CLASSIFICATION_TOPICS,\n args: [ appLinkClassification.id, TextHelper.slugify(appLinkClassification.name) ],\n params: ObjectHelper.omit(params, OMITTED_PARAMS)\n };\n },\n\n widgetVideoList: (widgetId: string, widgetName: string) => ({\n application: AppChannels.DASHBOARD,\n action: Actions.Dashboard.DASHBOARD,\n args: [ widgetId, TextHelper.slugify(widgetName) ]\n }),\n\n watchHistory: () => ({\n application: AppChannels.WATCH_HISTORY,\n action: Actions.WatchHistory.HOME\n }),\n\n company: (company: Company) => ({\n application: AppChannels.MOVIES_AND_TV,\n action: Actions.MoviesAndTv.COMPANY_DASHBOARD,\n args: [ company.id, TextHelper.slugify(company.name) ]\n }),\n\n discover: () => ({\n application: AppChannels.DASHBOARD,\n action: Actions.Dashboard.HOME\n }),\n\n calendar: () => ({\n application: AppChannels.CALENDAR,\n action: Actions.Calendar.CALENDAR\n }),\n\n calendarMonth: (month: string, year?: string) => {\n const appLink: Core.AppLink = {\n application: AppChannels.CALENDAR,\n action: Actions.Calendar.CALENDAR_MONTH,\n args: [month.toLowerCase()]\n };\n\n if (year)\n appLink.params = { year };\n\n return appLink;\n },\n\n onboardingStep: (step: OnboardingScreenId) => {\n const appLinks = getOnboardingAppLinks();\n return appLinks[step];\n },\n\n onboardingAppLinks: () => {\n return getOnboardingAppLinks();\n },\n\n livestream: () => null,\n widgetWizard: () => null\n };\n}\n\nexport function getDiscoverHeaderAppLinks(): DiscoverHeaderAppLinks {\n return {\n forYou: {\n application: AppChannels.DASHBOARD,\n action: Actions.Dashboard.HOME\n },\n whatsNew: {\n application: AppChannels.CONTENT_UPDATES,\n action: Actions.ContentUpdates.CONTENT_UPDATES\n },\n calendar: {\n application: AppChannels.CALENDAR,\n action: Actions.Calendar.CALENDAR\n }\n };\n}","import React from 'react';\n\nimport { EnvironmentVariables } from 'libs/common/backbone/services/EnvironmentVariables';\nimport { Flight } from 'libs/common/react/index';\n\nimport { ContentRegion } from 'libs/shared/enums/ContentRegion';\nimport { PresentationLearningLevel } from 'libs/shared/enums/PresentationLearningLevel';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { CurrentUser } from 'libs/shared/interfaces';\nimport { TopicsHelper } from 'libs/shared/utils/topics-helper/TopicsHelper';\n\nimport { usePresentation } from 'shared/hooks/usePresentation';\n\nconst ALLOWED_LEARNING_LEVELS_BY_REGION: Record<ContentRegion, PresentationLearningLevel[]> = {\n [ContentRegion.AU]: [\n // AU Primary Calendar\n PresentationLearningLevel.Level_1\n ],\n [ContentRegion.US]: [\n // US Elementary Calendar\n PresentationLearningLevel.Level_1\n ],\n [ContentRegion.UK]: [\n // UK Primary Calendar\n PresentationLearningLevel.Level_1\n ],\n [ContentRegion.SCOT]: [\n // Scotland Primary Calendar\n PresentationLearningLevel.Level_1\n ],\n [ContentRegion.NZ]: [],\n [ContentRegion.GLOBAL]: [],\n [ContentRegion.CA]: []\n};\n\nexport function useShowCalendar() {\n const { hasSpecialEventCalendar, isLoadingSettings } = useSettings(null);\n\n const {\n activePresentation\n } = usePresentation({ redirectOnError: true });\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n const allowedLearningLevels = ALLOWED_LEARNING_LEVELS_BY_REGION[currentUser.data?.contentRegion];\n const learningLevel = TopicsHelper.getMappedPresentationLevel(activePresentation?.learningLevel);\n const learningLevelCantAccess = !allowedLearningLevels?.find(l => {\n return l.toString() === (learningLevel as PresentationLearningLevel)?.toString();\n });\n\n const noSetting = !isLoadingSettings && !hasSpecialEventCalendar;\n\n const [ showCalendar, setShowCalendar ] = React.useState<boolean>(!noSetting && !learningLevelCantAccess);\n\n const [ isLoading, setIsLoading ] = React.useState(isLoadingSettings || !activePresentation?.id);\n\n React.useEffect(() => {\n if (noSetting || learningLevelCantAccess) {\n setShowCalendar(false);\n } else if (!isLoading) {\n setShowCalendar(true);\n }\n setIsLoading(isLoadingSettings || !activePresentation?.id);\n }, [ hasSpecialEventCalendar, activePresentation?.id, isLoading ]);\n\n if (EnvironmentVariables.isDevelopment)\n return { showCalendar: true, isLoading: false };\n\n return { showCalendar, isLoading };\n}","// extracted by mini-css-extract-plugin\nexport default {\"pillTabSelector\":\"Hdi6o\",\"tab\":\"RvNxr\",\"minWidth\":\"GHSz9\",\"radiusSmall\":\"VhJJa\",\"tabLink\":\"WFyvo\"};"],"names":["namespace","ComingSoonTag","props","Tooltip","title","LanguageService","spanHackClassName","spanHack","className","SvgContainer","svgName","onlyIcon","SpecialEventListItem","obj","appLink","getAppLink","event","content","TextHelper","name","backgroundColor","getBackgroundColor","iconUrl","getIconUrl","bannerUrl","getBannerUrl","multiDayEvent","endDate","isComingSoon","status","ClassificationStatus","startTime","getStartTime","actionLabel","getActionLabel","isPastEvent","analyticsOptions","actionType","entity","location","inPopup","analyticsData","topicId","id","eventId","specialEventId","presentationId","date","DateHelper","Date","startDate","onClick","AnalyticsHelper","AppLink","style","backgroundImage","BaseImage","data","Text","phrase","SpecialEventHelper","description","ActionButton","dangerouslySetInnerHTML","__html","LinkifyHelper","AudienceHelper","audiences","endDateTime","startDateTime","CalendarRequests","calendarEvents","from","to","url","publicUrl","key","nextTopicSpecialEvent","classificationId","params","limit","objectType","formatData","events","DiscoverHeader","type","hasStudentExperience","tabs","appLinks","forYou","active","whatsNew","showCalendar","push","calendar","PillTabSelector","TabContents","tab","count","ref","containerRef","borderRadius","listClassName","map","index","onSelect","onSelectTab","defaultProps","CalendarCell","notCurrentMonth","sliderStep","setSliderStep","wrapperClassname","theme","border","getIsWeekend","eventsOnDay","filter","e","updatedProps","length","HoverToPortalContainer","hoverableComponent","CalendarDay","componentProps","hoverScale","isHovering","getPhrase","SpecialEventEmptyState","value","EmptyState","src","imageUrl","altText","heading","SpecialEventList","eventsInMonth","forEach","keys","Object","sort","a","b","k","idx","prevTime","currentTime","CalendarBody","imageUrls","breakpoints","useBreakpoints","viewingMonth","hasInitialized","setHasInitialized","hoveredEvent","setHoveredEvent","eventsLoaded","emptyState","emptyStateRedirect","emptyStateHeading","viewMode","xs","sm","md","Spinner","as","animation","role","background","weekDaysHeader","w","scope","weekDays","toString","d","monthQuery","getEventsListAppLink","eventList","getTopicAppLink","calendarEventContent","slug","getCoverUrl","getHardCodedEvent","fadePastEvents","timezone","ViewModeSwitcher","IconButton","setViewMode","descriptor","Calendar","NavigateButton","arrowSvg","action","size","S","CUR_DATE","CalendarNav","monthDate","month","toLocaleLowerCase","currentYear","getFullYear","year","queryParams","classification","yearGroup","showPrev","showNext","formatAnalyticDataDate","children","prevMonth","setViewingMonthDate","nextMonth","SpecialEventErrorState","TODAY_DATE","getCalendarImageUrls","countryCode","CountryCode","C","ImageUrls","errorState","getCalendarAppLinks","application","args","ClassificationAppLinkHelper","CalendarView","activePresentation","usePresentation","redirectOnError","useShowCalendar","isLoading","currentUser","UserRequests","isValidMonth","replace","startAtMon","cacheRef","setWeekDays","monthDateString","cached","current","weeksTable","datePositionMap","ArrayHelper","setMonthDate","nextMonthDate","useCalendarWeeksTable","viewMonth","pid","nextStartDate","nextEndDate","prevStartDate","prevEndDate","nextEvents","prevEvents","specialEventPolicyId","loaded","hasCompleted","useCalendarEventsData","currentMonthYear","useSetPageMetadata","PageMetadataHelper","phraseContext","phraseHandler","titlePhrase","descriptionPhrase","canonicalLink","SeoHelper","allowedParams","allowIndexing","hrefLang","learningLevel","HardCoded","hardCodedEvent","ImageHelper","icon","cover","metadata","banner","CLASSIFICATION_LATEST_RELEASES","OMITTED_PARAMS","getOlympicsCountdownImageUrls","presentation","Number","logo","getOlympicsTopicsAppLink","topic","getDiscoverWidgetAppLinks","videoType","video","opts","context","includeContext","isAuthenticated","series","playlist","latestReleases","allTopics","classificationLatestReleases","classificationDirectory","_classification","appLinkClassification","widgetVideoList","widgetId","widgetName","watchHistory","company","discover","calendarMonth","toLowerCase","onboardingStep","step","onboardingAppLinks","livestream","widgetWizard","getDiscoverHeaderAppLinks","ALLOWED_LEARNING_LEVELS_BY_REGION","hasSpecialEventCalendar","isLoadingSettings","allowedLearningLevels","contentRegion","learningLevelCantAccess","find","l","noSetting","setShowCalendar","setIsLoading"],"sourceRoot":""}
|