{"version":3,"file":"static/js/958.46899564.chunk.js","mappings":"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","sources":["modules/Unit/actionCreators/index.ts","modules/_shared/ui-components/AnimatedArrow/styled.ts","modules/_shared/ui-components/AnimatedArrow/AnimatedArrow.component.tsx","modules/_shared/ui-components/Tray/Content/styled.ts","modules/_shared/ui-components/Tray/styled.ts","modules/_shared/ui-components/Tray/Content/Content.component.tsx","modules/_shared/ui-components/Tray/Tray.component.tsx","modules/_shared/ui-components/CarouselTray/styled.ts","modules/_shared/ui-components/CarouselTray/CarouselTray.component.tsx","modules/_shared/ui-components/CoverImageHeader/styled.tsx","modules/_shared/ui-components/CoverImageHeader/CoverImageHeader.component.tsx","modules/_shared/ui-components/Card/styled.ts","modules/_shared/ui-components/Card/Card.component.tsx","modules/_shared/ui-components/SetOfCards/styled.ts","modules/_shared/ui-components/SetOfCards/SetOfCards.components.tsx","modules/_shared/ui-components/Program/styled.ts","modules/_shared/ui-components/Program/Program.component.tsx","modules/_shared/ui-components/SetOfProgrammes/styled.ts","modules/_shared/ui-components/SetOfProgrammes/SetOfProgrammes.components.tsx","modules/_shared/ui-components/Icon/styled.ts","modules/_shared/ui-components/Icon/icons/CameraIcon.tsx","modules/_shared/ui-components/Icon/icons/CraftMaterial.tsx","modules/_shared/ui-components/Icon/icons/SketchBooks.tsx","modules/_shared/ui-components/Icon/icons/MusicIcon.tsx","modules/_shared/ui-components/Icon/icons/Shorts.tsx","modules/_shared/ui-components/Icon/icons/PlayButton.tsx","modules/_shared/ui-components/Icon/icons/AllSidesArrow.tsx","modules/_shared/ui-components/Icon/icons/Download.tsx","modules/_shared/ui-components/Icon/icons/LessonPlan.tsx","modules/_shared/ui-components/Icon/icons/SlideShow.tsx","modules/_shared/ui-components/Icon/icons/index.ts","modules/_shared/ui-components/Icon/index.tsx","modules/_shared/ui-components/EmbedVideo/styled.ts","modules/_shared/ui-components/EmbedVideo/EmbedVideo.component.tsx","modules/_shared/ui-components/PreformattedContent/styled.ts","modules/_shared/ui-components/PreformattedContent/config.ts","modules/_shared/ui-components/PreformattedContent/PreformattedContent.component.tsx","modules/_shared/ui-components/RichText/styled.ts","modules/_shared/ui-components/RichText/RichText.component.tsx","modules/_shared/ui-components/CoursesListItem/styled.ts","modules/_shared/ui-components/CoursesListItem/CoursesListItem.component.tsx","modules/_shared/ui-components/CoursesList/styled.ts","modules/_shared/ui-components/CoursesList/CoursesList.component.tsx","modules/_shared/ui-components/RichTextSlice/Wrapper/styled.ts","modules/_shared/ui-components/RichTextSlice/Wrapper/Wrapper.component.tsx","modules/_shared/ui-components/RichTextSlice/RichTextSlice.component.tsx","modules/_shared/ui-components/ItemDetails/styled.tsx","modules/_shared/ui-components/ItemDetails/ItemDetails.component.tsx","modules/_shared/ui-components/ProgrammeBanner/styled.tsx","modules/_shared/ui-components/ProgrammeBanner/ProgrammeBanner.component.tsx","modules/_shared/ui-components/ExpandArrow/Arrows.tsx","modules/_shared/ui-components/ExpandArrow/styled.ts","modules/_shared/ui-components/ExpandArrow/ExpandArrow.component.tsx","modules/_shared/components/Accordion/Option/styled.ts","modules/_shared/components/Accordion/Option/Option.component.tsx","modules/_shared/components/Accordion/styled.ts","modules/_shared/components/Accordion/Accordion.component.tsx","modules/_shared/ui-components/Lock/Lock.component.tsx","helpers/consts.ts","modules/_shared/ui-components/RegistrationWarning/styled.tsx","modules/_shared/ui-components/RegistrationWarning/RegistrationWarning.component.tsx","modules/_shared/ui-components/AdditionalResources/styled.ts","modules/_shared/ui-components/AdditionalResources/AdditionalResources.component.tsx","modules/_shared/ui-components/CourseInfo/styled.tsx","modules/_shared/ui-components/CourseInfo/CourseInfo.component.tsx","modules/_shared/ui-components/CertificateModal/styled.ts","modules/_shared/ui-components/CertificateModal/CertificateModal.component.tsx","modules/_shared/ui-components/UsefulLinks/styled.ts","modules/_shared/ui-components/UsefulLinks/LinkComponent/styled.ts","modules/_shared/ui-components/UsefulLinks/LinkComponent/Link.component.tsx","modules/_shared/ui-components/UsefulLinks/UsefulLinks.component.tsx","modules/_shared/ui-components/CourseAsideContent/styled.tsx","modules/_shared/ui-components/CourseAsideContent/CourseAsideContent.component.tsx","utils/headingHelper.ts","modules/_shared/ui-components/LessonInformation/styled.tsx","modules/_shared/ui-components/LessonRequirements/RequirementsEnum.ts","modules/_shared/ui-components/LessonRequirements/RequirementOptions/CraftMaterials.component.tsx","modules/_shared/ui-components/LessonRequirements/RequirementOptions/EmptySpace.component.tsx","modules/_shared/ui-components/LessonRequirements/RequirementOptions/LessonFilm.component.tsx","modules/_shared/ui-components/LessonRequirements/RequirementOptions/MeansOfCapture.component.tsx","modules/_shared/ui-components/LessonRequirements/RequirementOptions/Music.component.tsx","modules/_shared/ui-components/LessonRequirements/RequirementOptions/PEKit.component.tsx","modules/_shared/ui-components/LessonRequirements/RequirementOptions/SketchBooks.component.tsx","modules/_shared/ui-components/LessonRequirements/RequirementOptions/RequirementOptions.component.tsx","modules/_shared/ui-components/LessonRequirements/LessonRequirements.component.tsx","utils/scrollHelper.ts","modules/_shared/ui-components/LessonDownloads/FileFormatEnum.ts","modules/_shared/ui-components/LessonDownloads/AssetOptions/AssetDownload.component.tsx","modules/_shared/ui-components/LessonDownloads/AssetOptions/AssetOptions.component.tsx","modules/_shared/ui-components/LessonDownloads/LessonDownloads.component.tsx","modules/_shared/ui-components/LessonInformation/LessonOutcomes/styled.tsx","modules/_shared/ui-components/LessonInformation/LessonOutcomes/LessonOutcomes.component.tsx","modules/_shared/ui-components/LessonInformation/LessonCurriculum/styled.tsx","modules/_shared/ui-components/LessonInformation/LessonCurriculum/LessonCurriculum.component.tsx","modules/_shared/ui-components/LessonInformation/UnitList/styled.tsx","modules/_shared/ui-components/LessonInformation/UnitList/UnitList.component.tsx","modules/_shared/ui-components/LessonInformation/LessonInformation.component.tsx","modules/_shared/ui-components/LessonsList/styled.ts","modules/_shared/ui-components/LessonsList/LessonsList.component.tsx","assets/icons/Clock.svg","modules/_shared/ui-components/Units/UnitHeading/styled.ts","modules/_shared/ui-components/Units/UnitHeading/UnitHeading.component.tsx","modules/_shared/ui-components/Units/UnitWrapper/UnitActionsEnum.ts","modules/_shared/ui-components/Units/UnitNavigation/styled.ts","modules/_shared/ui-components/Units/UnitNavigation/UnitNavigation.component.tsx","modules/_shared/ui-components/Units/UnitNavigationDropdown/styled.ts","modules/_shared/ui-components/Units/UnitNavigationDropdown/Dropdown.tsx","modules/_shared/ui-components/Units/UnitNavigationDropdown/UnitNavigationDropdown.component.tsx","modules/_shared/ui-components/Units/UnitPaginationControls/styled.ts","modules/_shared/ui-components/Units/UnitPaginationControls/UnitPaginationControls.component.tsx","modules/_shared/ui-components/Units/UnitWrapper/styled.ts","modules/_shared/ui-components/Units/UnitWrapper/UnitWrapper.component.tsx","modules/_shared/ui-components/ListOfVideos/styled.ts","modules/_shared/ui-components/ListOfVideos/ListOfVideos.component.tsx","modules/_shared/ui-components/PageTitle/PageTitle.component.tsx","modules/_shared/ui-components/EventsListItems/styled.ts","modules/_shared/ui-components/EventsListItems/EventsListItems.component.tsx","modules/_shared/ui-components/EventsList/styled.ts","modules/_shared/ui-components/EventsList/EventsList.component.tsx","modules/_shared/ui-components/EventBriteComponent/styled.ts","modules/_shared/ui-components/EventBriteComponent/EmptyEventBriteItem/styled.ts","modules/_shared/ui-components/EventBriteComponent/EmptyEventBriteItem/EmptyEventBrite.component.tsx","modules/_shared/ui-components/EventBriteComponent/EventBriteList.component.tsx","modules/_shared/ui-components/EventBriteComponent/EventBriteItem/styled.ts","modules/_shared/ui-components/EventBriteComponent/EventBriteItem/EventBriteItem.component.tsx","modules/_shared/ui-components/Table/styled.ts","modules/_shared/ui-components/Table/Table.component.tsx","modules/_shared/ui-components/Accordion/styled.ts","modules/_shared/ui-components/Accordion/AccordionSlice.component.tsx","modules/_shared/components/SlicesRenderer/SlicesRenderer.component.tsx"],"sourcesContent":["import { Actions } from 'store/actions';\nimport { RequestTriggerAction } from 'store/statesHelper';\n\nconst getUnit = (uid: string): RequestTriggerAction => ({\n type: Actions.GET_UNIT,\n payload: {\n extraConfig: {\n params: {\n uid,\n },\n },\n },\n});\n\nexport default getUnit;\n","import styled from 'styled-components/macro';\nimport { only } from 'modules/_shared/styles/breakpoints';\n\nconst Container = styled.div`\n display: flex;\n align-items: center;\n align-content: center;\n justify-content: flex-start;\n width: 24px;\n height: max-content;\n transition: width 1s ease;\n ${only('mobile')} {\n display: ${(props: { showOnMobile: boolean }) =>\n props.showOnMobile ? 'flex' : 'none'};\n }\n &:hover {\n width: 100%;\n }\n svg {\n margin-left: -12px;\n height: 18px;\n width: 18px;\n }\n`;\n\nconst ArrowLine = styled.div`\n height: 1px;\n width: 100%;\n background: currentColor;\n`;\n\nexport default {\n Container,\n ArrowLine,\n};\n","import React, { FunctionComponent } from 'react';\nimport Styled from './styled';\n\ntype AnimatedArrowProps = {\n className?: string;\n showOnMobile?: boolean;\n};\n\nconst AnimatedArrow: FunctionComponent = ({\n className,\n showOnMobile = false,\n}) => (\n \n \n \n \n \n \n);\n\nexport default AnimatedArrow;\n","import styled from 'styled-components/macro';\nimport { colors, typography } from 'roh-frontend/packages/roh-react';\nimport AnimatedArrow from '../../AnimatedArrow';\n\nconst Header = styled.div`\n ${typography.mediumHeading};\n`;\n\nconst Description = styled.div`\n ${typography.smallBody};\n`;\n\nconst Arrow = styled(AnimatedArrow)`\n color: ${colors.crimson};\n margin-top: 5px;\n`;\n\nconst Container = styled.div`\n display: grid;\n grid-template-columns: 100%;\n row-gap: 15px;\n`;\n\nexport default {\n Header,\n Description,\n Container,\n Arrow,\n};\n","import styled from 'styled-components/macro';\nimport LPColors from 'modules/_shared/styles/colors';\nimport { only, up, down } from 'modules/_shared/styles/breakpoints';\nimport Styled from './Content/styled';\n\nconst Link = styled.a`\n display: block;\n position: relative;\n width: 100%;\n background-color: ${LPColors.wildSand};\n padding: 80px 0 80px 48px;\n color: ${LPColors.black};\n\n ${only('tablet')} {\n padding: 60px 0 60px 48px;\n }\n\n ${only('mobile')} {\n padding: 0;\n height: auto;\n background-color: ${LPColors.white};\n }\n`;\n\nconst Image = styled.div`\n display: flex;\n align-items: center;\n position: relative;\n width: 100%;\n height: 495px;\n background-color: ${LPColors.black};\n\n img {\n object-fit: contain;\n height: 100%;\n }\n\n ${only('mobile')} {\n height: auto;\n }\n`;\n\nconst CardContainerWrapper = styled.div`\n position: absolute;\n margin: auto 0;\n top: 0;\n bottom: 0;\n left: -48px;\n margin-left: 48px;\n height: max-content;\n ${only('mobile')} {\n position: static;\n width: 100%;\n margin-left: 0;\n }\n`;\n\nconst CoverImage = styled.img`\n width: 100%;\n margin: auto 0;\n object-fit: cover;\n\n ${up('tablet')} {\n height: 565px;\n }\n\n ${down('tablet')} {\n height: auto;\n aspect-ratio: 16 / 9;\n }\n`;\n\nconst CardContainer = styled.div`\n padding: 48px;\n margin-top: 20px;\n width: 420px;\n min-height: 340px;\n height: max-content;\n background-color: ${LPColors.white};\n display: grid;\n grid-template-columns: 100%;\n row-gap: 8px;\n &:hover ${Styled.Arrow} {\n width: 100%;\n }\n ${only('mobile')} {\n position: static;\n width: 100%;\n padding: 24px;\n min-height: unset;\n margin-top: 0;\n }\n`;\n\nexport default {\n Link,\n Image,\n CardContainerWrapper,\n CoverImage,\n CardContainer,\n};\n","import React, { FunctionComponent } from 'react';\nimport { CarouselTraySectionItems } from 'api-doc/types/learning-platform';\nimport Styled from './styled';\n\nexport type ContentProps = Pick<\n CarouselTraySectionItems,\n 'header' | 'description'\n>;\n\nconst Content: FunctionComponent = ({ header, description }) => {\n return (\n \n {header}\n \n {description}\n \n );\n};\n\nexport default Content;\n","import React, { FunctionComponent } from 'react';\nimport { CarouselTraySectionItems } from 'api-doc/types/learning-platform';\nimport getLinkUrl, { getLinkTarget } from 'utils/linkResolver';\nimport Styled from './styled';\nimport Content from './Content';\n\nexport type TrayProps = CarouselTraySectionItems & {\n isImageGalleryItem: boolean;\n};\n\nconst Tray: FunctionComponent = ({\n coverImage,\n header,\n description,\n trayLink,\n isImageGalleryItem,\n}) => {\n return isImageGalleryItem ? (\n \n \n \n ) : (\n \n \n \n \n \n \n \n \n );\n};\n\nexport default Tray;\n","import styled from 'styled-components/macro';\nimport LPColors from 'modules/_shared/styles/colors';\nimport { only } from 'modules/_shared/styles/breakpoints';\n\nconst CarouselTray = styled.div`\n height: max-content;\n width: 100%;\n display: flex;\n position: relative;\n overflow: hidden;\n padding-top: ${(props: { isImageGallery: boolean }) =>\n props.isImageGallery ? '78px' : '28px'};\n`;\n\nconst ButtonsContainer = styled.div`\n position: absolute;\n z-index: 1;\n display: grid;\n grid-template-columns: repeat(2, 63px);\n height: 46px;\n column-gap: 1px;\n top: ${(props: { isImageGallery: boolean }) =>\n props.isImageGallery ? '16px' : '120px'};\n right: ${(props: { isImageGallery: boolean }) =>\n props.isImageGallery ? '0px' : '154px'};\n\n ${only('tablet')} {\n top: 100px;\n }\n\n ${only('mobile')} {\n top: 8px;\n left: unset;\n right: 0;\n }\n`;\n\nconst ControlButton = styled.button`\n background: ${LPColors.black};\n margin: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n cursor: pointer;\n &:hover {\n opacity: 0.77;\n }\n svg {\n height: 20px;\n width: 20px;\n }\n ${(props: { inversed?: boolean }) =>\n props.inversed && 'transform: rotate(180deg)'}\n`;\n\nconst Container = styled.div`\n height: max-content;\n display: grid;\n width: 100%;\n grid-template-columns: repeat(\n ${(props: { count: number }) => props.count},\n 80%\n );\n grid-auto-flow: column;\n column-gap: 20px;\n ${only('mobile')} {\n padding-top: 62px;\n grid-template-columns: repeat(\n ${(props: { count: number }) => props.count},\n 100%\n );\n }\n`;\n\nexport default {\n CarouselTray,\n Container,\n ButtonsContainer,\n ControlButton,\n};\n","import { CarouselTraySection } from 'api-doc/types/learning-platform';\nimport React, { FunctionComponent, useState } from 'react';\nimport { colors, Icons } from 'roh-frontend/packages/roh-react';\nimport Tray from '../Tray';\nimport Styled from './styled';\n\ntype CarouselTrayProps = {\n slice: CarouselTraySection;\n};\n\nconst CarouselTray: FunctionComponent = ({ slice }) => {\n const { primary, items: trays } = slice;\n const { isImageGallery = false } = primary;\n const [pos, setPos] = useState(0);\n const updatePos = (val: number) => {\n if (val < 0) {\n return trays.length - 1;\n }\n if (val >= trays.length) {\n return 0;\n }\n return val;\n };\n // TODO ADD SLIDE ANIMATION\n // TODO ADD SWIPE GESTURES\n const orderedTrays = [...trays.slice(pos), ...trays.slice(0, pos)];\n\n return (\n \n {trays.length > 1 && (\n \n setPos(updatePos(pos - 1))}\n >\n \n \n setPos(updatePos(pos + 1))}>\n \n \n \n )}\n \n {orderedTrays.map((trayProps, index) => (\n \n ))}\n \n \n );\n};\n\nexport default CarouselTray;\n","import styled from 'styled-components/macro';\nimport { colors } from 'roh-frontend/packages/roh-react';\nimport { up, down } from 'modules/_shared/styles/breakpoints';\n\nconst TopBanner = styled.div`\n margin-bottom: 28px;\n font-size: 10px;\n ${down('tablet')} {\n font-size: 7px;\n }\n ${down('mobile')} {\n font-size: 4px;\n }\n`;\n\nconst HeaderContainer = styled.h1`\n position: absolute;\n display: grid;\n margin: 0;\n grid-template-columns: 100%;\n font-weight: 400;\n font-size: 10em;\n line-height: 0.9;\n\n > span:first-child {\n color: ${colors.black};\n }\n > span:nth-child(2) {\n color: ${colors.white};\n }\n`;\n\nconst CoverImage = styled.img`\n display: block;\n width: 100%;\n object-fit: cover;\n box-sizing: content-box;\n padding-top: 9em;\n\n ${up('tablet')} {\n height: 720px;\n }\n\n ${down('tablet')} {\n aspect-ratio: 16 / 9;\n }\n`;\n\nexport default {\n TopBanner,\n CoverImage,\n HeaderContainer,\n};\n","import React, { FunctionComponent } from 'react';\nimport { CoverImageHeader as CoverImageHeaderSlice } from 'api-doc/types/learning-platform';\nimport Styled from './styled';\n\ntype CoverImageHeaderProps = {\n slice: CoverImageHeaderSlice;\n};\n\nconst CoverImageHeader: FunctionComponent = ({\n slice: { primary },\n}) => (\n \n \n {primary.headerPart1}\n {primary.headerPart2}\n \n \n \n);\n\nexport default CoverImageHeader;\n","import { only, up, down } from 'modules/_shared/styles/breakpoints';\nimport LPColors from 'modules/_shared/styles/colors';\nimport { typography } from 'roh-frontend/packages/roh-react';\nimport styled from 'styled-components/macro';\n\ntype CardColorProps = {\n cardColor: string;\n};\n\nconst LineHeader = styled.div`\n height: 4px;\n width: 100%;\n position: absolute;\n visibility: hidden;\n top: 0;\n background-color: ${(props: CardColorProps) => props.cardColor};\n ${only('mobile')} {\n visibility: visible;\n }\n`;\n\nconst CardButton = styled.button`\n height: 50px;\n background-color: ${(props: CardColorProps) => props.cardColor};\n color: ${LPColors.white};\n margin-top: 24px;\n padding: 16px;\n display: flex;\n visibility: hidden;\n align-items: center;\n justify-content: start;\n border: none;\n cursor: pointer;\n ${only('mobile')} {\n visibility: visible;\n }\n`;\n\nconst Container = styled.a`\n display: block;\n width: 100%;\n position: relative;\n cursor: pointer;\n color: ${LPColors.black};\n align-self: flex-start;\n &:hover ${CardButton} {\n visibility: visible;\n }\n &:hover ${LineHeader} {\n visibility: visible;\n }\n ${only('mobile')} {\n padding: 0;\n margin: 20px 0;\n height: auto;\n background-color: ${LPColors.white};\n }\n`;\n\nconst Title = styled.div`\n margin-top: 24px;\n ${typography.bodyHeading};\n font-weight: 400;\n line-height: 28px;\n`;\n\nconst Description = styled.div`\n margin-top: 16px;\n`;\n\nconst ButtonText = styled.div`\n margin-left: 12px;\n font-size: 14px;\n line-height: 18px;\n`;\n\nconst CoverImage = styled.img`\n width: 100%;\n margin: auto 0;\n object-fit: cover;\n\n ${up('tablet')} {\n height: 270px;\n }\n\n ${down('tablet')} {\n height: auto;\n aspect-ratio: 16 / 9;\n }\n`;\n\nexport default {\n LineHeader,\n Container,\n CoverImage,\n CardButton,\n Title,\n Description,\n ButtonText,\n};\n","import React, { FunctionComponent } from 'react';\nimport { SetOfCardsItems } from 'api-doc/types/learning-platform';\nimport { colors, Icons } from 'roh-frontend/packages/roh-react';\nimport getLinkUrl, { getLinkTarget } from 'utils/linkResolver';\nimport Styled from './styled';\n\ntype CardProps = {\n card: SetOfCardsItems;\n};\n\nconst Card: FunctionComponent = ({ card }) => {\n const { title, description, cardImage, ctaLink, ctaLinkText, cardColor } =\n card;\n\n return (\n \n \n \n {title}\n {description}\n \n \n {ctaLinkText}\n \n \n );\n};\n\nexport default Card;\n","import styled from 'styled-components/macro';\nimport { only } from 'modules/_shared/styles/breakpoints';\n\nexport const CardWrapper = styled.div`\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n justify-items: stretch;\n align-items: center;\n column-gap: 32px;\n margin-top: 28px;\n ${only('mobile')} {\n grid-template-columns: 1fr;\n }\n`;\n\nexport default {\n CardWrapper,\n};\n","import { SetOfCards as SetOfCardsSlice } from 'api-doc/types/learning-platform';\nimport React, { FunctionComponent } from 'react';\nimport Card from '../Card';\nimport Styled from './styled';\n\ntype SetOfCardsProps = {\n slice: SetOfCardsSlice;\n};\n\nconst SetOfCards: FunctionComponent = ({ slice }) => {\n const { items: cards } = slice;\n return (\n \n {cards.map((card, idx) => (\n \n ))}\n \n );\n};\n\nexport default SetOfCards;\n","import styled from 'styled-components/macro';\nimport LPColors from 'modules/_shared/styles/colors';\nimport { colors, typography } from 'roh-frontend/packages/roh-react';\nimport { only, up } from 'modules/_shared/styles/breakpoints';\nimport AnimatedArrow from '../AnimatedArrow';\n\nexport const Container = styled.div`\n display: flex;\n position: relative;\n width: 100%;\n height: 350px;\n align-items: center;\n\n &:not(:last-child) {\n margin-bottom: 0;\n }\n\n ${up('tablet')} {\n &:nth-child(odd) {\n justify-content: flex-start;\n\n a {\n margin-left: auto;\n padding-right: 96px;\n }\n }\n\n &:nth-child(even) {\n justify-content: flex-end;\n\n a {\n margin-right: auto;\n padding-left: 96px;\n }\n }\n }\n\n ${only('mobile')} {\n flex-direction: column;\n height: auto;\n margin-bottom: 12px;\n align-items: flex-start;\n img {\n position: relative;\n }\n a {\n margin: auto 0;\n width: 100%;\n padding: 15px 20px;\n text-align: left;\n }\n }\n`;\n\nexport const CoverImage = styled.img`\n position: absolute;\n width: calc(100% - 66px);\n object-fit: cover;\n height: 100%;\n top: 0;\n bottom: 0;\n\n ${only('mobile')} {\n width: 100%;\n min-height: 200px;\n }\n`;\n\nexport const Link = styled.a`\n display: flex;\n z-index: 1;\n flex-direction: column;\n padding: 32px 32px 24px;\n min-height: 180px;\n background-color: ${LPColors.white};\n width: 455px;\n align-content: center;\n\n &:hover {\n span {\n color: ${LPColors.crimson};\n }\n }\n\n svg {\n height: 22px;\n width: 29px;\n }\n\n ${only('mobile')} {\n width: calc(100% - 48px);\n margin: auto;\n padding: 12px;\n }\n`;\n\nconst Arrow = styled(AnimatedArrow)`\n color: ${colors.crimson};\n margin-top: 5px;\n\n /* Mobile Arrow overrides */\n ${only('mobile')} {\n display: block;\n width: 100%;\n height: 25px !important;\n position: relative;\n\n > div {\n height: 1px;\n width: 100%;\n background: currentColor;\n position: absolute;\n left: 0;\n width: 24px;\n top: 0;\n bottom: 3px;\n margin: auto 0;\n }\n > svg {\n top: 1px;\n margin-left: 6px;\n height: 21px;\n }\n }\n`;\n\nexport const Title = styled.span`\n ${typography.mediumHeading};\n color: ${LPColors.black};\n margin-bottom: 16px;\n display: block;\n transition: color 0.3s ease;\n`;\n\nexport default {\n Container,\n CoverImage,\n Link,\n Title,\n Arrow,\n};\n","import React, { FunctionComponent } from 'react';\nimport { SetOfProgrammesItems } from 'api-doc/types/learning-platform';\nimport getLinkUrl, { getLinkTarget } from 'utils/linkResolver';\nimport Styled from './styled';\n\ntype ProgramProps = {\n program: SetOfProgrammesItems;\n};\n\nconst Program: FunctionComponent = ({ program }) => {\n const { title, image, link } = program;\n const { url: imageUrl, alt: imageAlt } = image.value;\n\n return (\n \n \n\n \n {title}\n \n \n \n );\n};\n\nexport default Program;\n","import styled from 'styled-components/macro';\nimport { typography } from 'roh-frontend/packages/roh-react';\nimport { only } from 'modules/_shared/styles/breakpoints';\n\nexport const ProgrammesWrapper = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nexport const ProgrammesTitle = styled.h3`\n width: 100%;\n max-width: 656px;\n padding-left: 96px;\n ${typography.smallHeading};\n margin-top: 24px;\n\n ${only('mobile')} {\n padding-left: 0;\n }\n`;\n\nexport const ProgrammesList = styled.div`\n display: flex;\n flex-direction: column;\n margin: 0;\n padding: 0;\n`;\n\nexport default {\n ProgrammesWrapper,\n ProgrammesList,\n ProgrammesTitle,\n};\n","import { SetOfProgrammes as SetOfProgrammesSlice } from 'api-doc/types/learning-platform';\nimport React, { FunctionComponent } from 'react';\nimport Program from '../Program';\nimport Styled from './styled';\n\ntype SetOfProgrammesProps = {\n slice: SetOfProgrammesSlice;\n};\n\nconst SetOfProgrammes: FunctionComponent = ({\n slice,\n}) => {\n const { items: programmes, primary } = slice;\n const { title } = primary;\n\n return (\n \n {title}\n \n {programmes.map((program, idx) => (\n \n ))}\n \n \n );\n};\n\nexport default SetOfProgrammes;\n","import styled from 'styled-components/macro';\nimport { down } from 'modules/_shared/styles/breakpoints';\n\ninterface StyledProps {\n color?: string;\n mobileSize: number;\n tabletSize: number;\n desktopSize: number;\n reverseX?: boolean;\n noFill?: boolean;\n}\n\nexport const Wrapper = styled.span`\n display: block;\n ${({ reverseX }: StyledProps) => reverseX && 'transform: scale(-1, 1)'};\n\n & svg {\n display: block;\n height: ${({ desktopSize }: StyledProps) => `${desktopSize}px`};\n width: ${({ desktopSize }: StyledProps) => `${desktopSize}px`};\n\n ${down('tablet')} {\n height: ${({ tabletSize }: StyledProps) => `${tabletSize}px`};\n width: ${({ tabletSize }: StyledProps) => `${tabletSize}px`};\n }\n\n ${down('mobile')} {\n height: ${({ mobileSize }: StyledProps) => `${mobileSize}px`};\n width: ${({ mobileSize }: StyledProps) => `${mobileSize}px`};\n }\n }\n`;\n\nexport default {\n Wrapper,\n};\n","import LPColors from 'modules/_shared/styles/colors';\nimport React, { FunctionComponent } from 'react';\nimport { IconProps } from '../models';\n\nexport const Camera: FunctionComponent = ({\n color = LPColors.black,\n}: IconProps) => (\n \n \n \n);\n\nexport default Camera;\n","import LPColors from 'modules/_shared/styles/colors';\nimport React, { FunctionComponent } from 'react';\nimport { IconProps } from '../models';\n\nexport const CraftMaterial: FunctionComponent = ({\n color = LPColors.black,\n}: IconProps) => (\n \n \n \n);\n\nexport default CraftMaterial;\n","import LPColors from 'modules/_shared/styles/colors';\nimport React, { FunctionComponent } from 'react';\nimport { IconProps } from '../models';\n\nexport const SketchBooks: FunctionComponent = ({\n color = LPColors.black,\n}: IconProps) => (\n \n \n \n);\n\nexport default SketchBooks;\n","import LPColors from 'modules/_shared/styles/colors';\nimport React, { FunctionComponent } from 'react';\nimport { IconProps } from '../models';\n\nexport const MusicIcon: FunctionComponent = ({\n color = LPColors.black,\n}: IconProps) => (\n \n \n \n \n \n);\n\nexport default MusicIcon;\n","import LPColors from 'modules/_shared/styles/colors';\nimport React, { FunctionComponent } from 'react';\nimport { IconProps } from '../models';\n\nexport const Shorts: FunctionComponent = ({\n color = LPColors.black,\n}: IconProps) => (\n \n \n \n \n \n \n \n);\n\nexport default Shorts;\n","import LPColors from 'modules/_shared/styles/colors';\nimport React, { FunctionComponent } from 'react';\nimport { IconProps } from '../models';\n\nexport const PlayButton: FunctionComponent = ({\n color = LPColors.black,\n}: IconProps) => (\n \n \n \n \n);\n\nexport default PlayButton;\n","import LPColors from 'modules/_shared/styles/colors';\nimport React, { FunctionComponent } from 'react';\nimport { IconProps } from '../models';\n\nexport const AllSidesArrow: FunctionComponent = ({\n color = LPColors.black,\n}: IconProps) => (\n \n \n \n \n \n \n);\n\nexport default AllSidesArrow;\n","import LPColors from 'modules/_shared/styles/colors';\nimport React, { FunctionComponent } from 'react';\nimport { IconProps } from '../models';\n\nexport const Download: FunctionComponent = ({\n color = LPColors.white,\n}: IconProps) => (\n \n \n \n \n);\n\nexport default Download;\n","import LPColors from 'modules/_shared/styles/colors';\nimport React, { FunctionComponent } from 'react';\nimport { IconProps } from '../models';\n\nexport const LessonPlan: FunctionComponent = ({\n color = LPColors.black,\n}: IconProps) => (\n \n \n \n \n \n \n \n \n \n \n \n \n \n);\n\nexport default LessonPlan;\n","import LPColors from 'modules/_shared/styles/colors';\nimport React, { FunctionComponent } from 'react';\nimport { IconProps } from '../models';\n\nexport const SlideShow: FunctionComponent = ({\n color = LPColors.black,\n}: IconProps) => (\n \n \n \n \n \n \n \n \n \n \n \n \n \n);\n\nexport default SlideShow;\n","import { Camera } from './CameraIcon';\nimport { CraftMaterial } from './CraftMaterial';\nimport { SketchBooks } from './SketchBooks';\nimport { MusicIcon } from './MusicIcon';\nimport { Shorts } from './Shorts';\nimport { PlayButton } from './PlayButton';\nimport { AllSidesArrow } from './AllSidesArrow';\nimport { Download } from './Download';\nimport { LessonPlan } from './LessonPlan';\nimport { SlideShow } from './SlideShow';\n\nexport default {\n Camera,\n AllSidesArrow,\n CraftMaterial,\n SketchBooks,\n MusicIcon,\n Shorts,\n PlayButton,\n Download,\n LessonPlan,\n SlideShow,\n};\n","import * as React from 'react';\nimport { Wrapper } from './styled';\nimport Icons from './icons';\nimport { DefaultProps, Props } from './models';\n\nconst IconWrapper = React.memo(\n ({\n className,\n color,\n dataRoh,\n icon,\n mobileSize,\n tabletSize,\n desktopSize,\n title,\n reverseX,\n }: Props): React.ReactElement => {\n const IconComponent = icon;\n\n return (\n \n \n \n );\n }\n);\nIconWrapper.displayName = 'IconWrapper';\n\nexport const CameraIcon = (props: DefaultProps): React.ReactElement => (\n \n);\n\nexport const AllSidesArrow = (props: DefaultProps): React.ReactElement => (\n \n);\n\nexport const CraftMaterial = (props: DefaultProps): React.ReactElement => (\n \n);\n\nexport const SketchBooks = (props: DefaultProps): React.ReactElement => (\n \n);\n\nexport const MusicIcon = (props: DefaultProps): React.ReactElement => (\n \n);\n\nexport const Shorts = (props: DefaultProps): React.ReactElement => (\n \n);\n\nexport const PlayButton = (props: DefaultProps): React.ReactElement => (\n \n);\n\nexport const DownloadIcon = (props: DefaultProps): React.ReactElement => (\n \n);\n\nexport const LessonPlanIcon = (props: DefaultProps): React.ReactElement => (\n \n);\n\nexport const SlideShowIcon = (props: DefaultProps): React.ReactElement => (\n \n);\n\nexport default {\n CameraIcon,\n AllSidesArrow,\n CraftMaterial,\n SketchBooks,\n MusicIcon,\n Shorts,\n PlayButton,\n DownloadIcon,\n LessonPlanIcon,\n SlideShowIcon,\n};\n","import styled from 'styled-components/macro';\nimport { only } from 'modules/_shared/styles/breakpoints';\n\nconst Container = styled.div`\n position: relative;\n width: 100%;\n height: 0;\n padding-bottom: 56.25%;\n ${only('mobile')} {\n padding-left: 0;\n }\n iframe {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n }\n`;\n\nexport default {\n Container,\n};\n","import React, { FunctionComponent } from 'react';\nimport Styled from './styled';\n\nexport type EmbeddedVideoProps = {\n allow: string;\n frameBorder: string;\n src: string;\n};\n\ntype VideoEmbedProps = {\n video: EmbeddedVideoProps;\n};\n\nconst VideoEmbed: FunctionComponent = ({ video }) => {\n const { allow, frameBorder, src } = video;\n\n return (\n \n \n \n );\n};\n\nexport default VideoEmbed;\n","import styled from 'styled-components/macro';\n\nconst Container = styled.div`\n iframe {\n border: none;\n max-width: 100%;\n }\n`;\n\nexport default {\n Container,\n};\n","const AUDIO_CONFIG = {\n ADD_TAGS: ['iframe'],\n ADD_ATTR: ['width', 'height', 'scrolling', 'frameborder', 'allow', 'src'],\n};\n\nconst PDF_CONFIG = {\n FORCE_BODY: true,\n ADD_TAGS: ['iframe', 'style'],\n};\n\nconst SOURCES = {\n SOUNDCLOUD: 'soundcloud.com',\n YUMPU: 'yumpu.com',\n};\n\nexport { AUDIO_CONFIG, PDF_CONFIG, SOURCES };\n","import React, { FunctionComponent } from 'react';\nimport DOMPurify from 'dompurify';\nimport Styled from './styled';\nimport { AUDIO_CONFIG, PDF_CONFIG, SOURCES } from './config';\n\nexport type PreformattedContentProps = {\n // TODO: align propper type\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n data: any;\n};\n\nconst sourceChecker = (data: string) => {\n if (data.includes(SOURCES.SOUNDCLOUD)) {\n return AUDIO_CONFIG;\n }\n if (data.includes(SOURCES.YUMPU)) {\n return PDF_CONFIG;\n }\n return {};\n};\n\nconst sanitizedData = (data: string) => ({\n __html: DOMPurify.sanitize(data, sourceChecker(data)),\n});\n\nconst PreformattedContent: FunctionComponent = ({\n data,\n}) => {\n return (\n \n );\n};\n\nexport default PreformattedContent;\n","import styled from 'styled-components/macro';\nimport { down } from 'modules/_shared/styles/breakpoints';\n\nconst H1 = styled.h1`\n font-style: normal;\n font-weight: 300;\n font-size: 3em;\n line-height: 1.1;\n margin-block: 24px;\n font-feature-settings: 'liga' off, 'calt' off;\n max-width: 650px;\n\n ${down('tablet')} {\n font-size: 2em;\n }\n`;\n\nconst H2 = styled.h2`\n font-style: normal;\n font-weight: normal;\n font-size: 68px;\n line-height: 72px;\n font-feature-settings: 'liga' off, 'calt' off;\n`;\n\nconst H3 = styled.h3`\n font-style: normal;\n font-weight: 400;\n font-size: 40px;\n line-height: 44px;\n margin-block: 24px;\n`;\n\nconst H4 = styled.h4`\n font-style: normal;\n font-weight: normal;\n font-size: 2em;\n line-height: 2;\n\n ${down('tablet')} {\n font-size: 1em;\n margin-block: 0;\n }\n`;\n\nconst H5 = styled.h5`\n font-style: normal;\n font-weight: 400;\n font-size: 20px;\n line-height: 28px;\n font-feature-settings: 'liga' off, 'calt' off;\n margin-bottom: 24px;\n\n &:last-child {\n margin-bottom: 0;\n }\n`;\n\nconst H6 = styled.h6`\n font-style: normal;\n font-weight: normal;\n font-size: 14px;\n line-height: 20px;\n font-feature-settings: 'liga' off, 'calt' off;\n`;\n\nconst P = styled.p`\n margin: 0 0 16px 0;\n`;\n\nexport default {\n H1,\n H2,\n H3,\n H4,\n H5,\n H6,\n P,\n};\n","import React, { FunctionComponent } from 'react';\nimport parse, { HTMLReactParserOptions, domToReact } from 'html-react-parser';\nimport { Element as DomHandlerElement } from 'domhandler/lib/node';\nimport { RichText as RichTextField } from 'api-doc/types/learning-platform';\nimport VideoEmbed from '../EmbedVideo';\nimport PreformattedContent from '../PreformattedContent';\nimport { EmbeddedVideoProps } from '../EmbedVideo/EmbedVideo.component';\nimport Styled from './styled';\n\nfunction completeInternalLinks(domNode: DomHandlerElement) {\n /**\n * Completes relative links as they are received from backend so that they can\n * bypass react routing.\n */\n\n const domNodeCopy = { ...domNode } as DomHandlerElement;\n\n if (!domNodeCopy.children) return domNodeCopy;\n\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n domNodeCopy.children = domNodeCopy.children.map((child: any) => {\n if (!(child.name === 'a') || child.attribs.href.slice(0, 4) === 'http')\n return child;\n\n const { origin } = window.location;\n const path = child.attribs.href;\n return {\n ...child,\n attribs: {\n href: `${origin}/schools/${path}`,\n },\n };\n });\n\n return domNodeCopy;\n}\n\nconst options: HTMLReactParserOptions = {\n replace: (\n domNode\n ): ReturnType> => {\n if (!(domNode instanceof DomHandlerElement)) {\n return null;\n }\n const node = completeInternalLinks(domNode);\n switch (domNode.name) {\n case 'h1':\n return {domToReact(node.children)} ;\n case 'h2':\n return {domToReact(node.children)} ;\n case 'h3':\n return {domToReact(node.children)} ;\n case 'h4':\n return {domToReact(node.children)} ;\n case 'h5':\n return {domToReact(node.children)} ;\n case 'h6':\n return {domToReact(node.children)} ;\n case 'p':\n return {domToReact(node.children)} ;\n case 'iframe':\n return ;\n case 'pre':\n return ;\n default:\n return undefined;\n }\n },\n};\n\ntype RichTextProps = {\n text: RichTextField;\n ImgWrapper?: (props: { children: React.ReactNode }) => JSX.Element;\n};\n\nconst RichText: FunctionComponent = ({ text, ImgWrapper }) => {\n const parsed = parse(text.value, options);\n\n if (ImgWrapper) {\n return {parsed};\n }\n\n return <>{parsed};\n};\n\nexport default RichText;\n","import { only, down } from 'modules/_shared/styles/breakpoints';\nimport LPColors from 'modules/_shared/styles/colors';\nimport { typography } from 'roh-frontend/packages/roh-react';\nimport styled, { css } from 'styled-components/macro';\n\nexport const textDescription = css`\n font-size: 13px;\n line-height: 21px;\n font-weight: 400;\n`;\n\nexport const textCta = css`\n font-size: 14px;\n line-height: 18px;\n font-weight: 400;\n`;\n\nexport const textPrice = css`\n font-size: 14px;\n line-height: 26px;\n font-weight: 400;\n`;\n\nconst Container = styled.div`\n display: grid;\n grid-template-columns: 1fr auto 1fr;\n grid-gap: 32px;\n background-color: ${LPColors.white};\n border-bottom: 32px solid ${LPColors.white};\n\n ${down('tablet')} {\n grid-template-columns: auto;\n grid-template-rows: 1fr auto auto;\n grid-gap: 0;\n\n &:not(:nth-last-child(-n + 2)) {\n margin-bottom: 16px;\n }\n }\n\n ${down('mobile')} {\n max-width: none;\n width: 100%;\n\n &:not(:last-child) {\n margin-bottom: 16px;\n }\n }\n`;\n\nconst CoverImage = styled.img`\n object-fit: cover;\n width: 260px;\n height: 260px;\n margin: 0 0 12px 0;\n\n ${down('tablet')} {\n width: 100%;\n height: 154px;\n }\n`;\n\nconst Info = styled.div`\n display: flex;\n flex-direction: column;\n padding: 40px 0 25px;\n\n ${down('tablet')} {\n padding: 16px 16px 8px;\n }\n`;\n\nconst Details = styled.ul`\n display: flex;\n margin: 0;\n padding: 0;\n\n ${(props: { firstElementColor?: string }) =>\n props.firstElementColor &&\n `& > li:first-child {\n background-color: ${props.firstElementColor};\n color: ${LPColors.whiteSmoke};\n padding: 2px;\n }`}\n`;\n\nconst DetailsItem = styled.li`\n display: block;\n position: relative;\n\n > span {\n ${typography.mediumBody};\n font-weight: 500;\n }\n\n &:not(:last-child):after {\n display: inline-block;\n content: '•';\n margin: 0 14px;\n\n ${only('mobile')} {\n margin: 0 8px;\n }\n }\n`;\n\nconst Title = styled.h4`\n display: flex;\n margin: 16px 0;\n ${typography.mediumHeading};\n`;\n\nconst Description = styled.div`\n max-width: 554px;\n\n > p {\n display: inline;\n margin: 0;\n ${textDescription};\n }\n`;\n\nconst Prices = styled.div`\n > p {\n display: flex;\n flex-direction: column;\n align-items: end;\n margin: 0;\n ${textPrice};\n }\n\n > p:last-child {\n margin-bottom: 15px;\n }\n`;\n\nconst CtaLinkWrapper = styled.div`\n display: flex;\n flex-direction: column;\n margin-top: 40px;\n`;\n\nconst CtaLink = styled.a`\n display: flex;\n justify-content: center;\n align-items: center;\n width: 230px;\n height: 50px;\n background-color: ${(props: { color?: string }) =>\n props.color ? props.color : LPColors.black};\n color: ${LPColors.white};\n align-self: end;\n\n ${down('tablet')} {\n margin-top: initial;\n width: 100%;\n justify-content: initial;\n padding: 16px;\n background-color: initial;\n\n span {\n color: ${LPColors.crimson};\n }\n\n svg {\n height: 20px;\n width: 20px;\n }\n\n path {\n fill: ${LPColors.crimson};\n }\n }\n`;\n\nconst CtaText = styled.span`\n display: inline-block;\n margin-left: 11px;\n ${textCta};\n`;\n\nexport default {\n Container,\n CoverImage,\n Info,\n Details,\n DetailsItem,\n Title,\n Description,\n CtaLink,\n CtaText,\n Prices,\n CtaLinkWrapper,\n};\n","import React, { FunctionComponent } from 'react';\nimport {\n CoursesListItems as CoursesListItemsSlice,\n RequestedCoursesItems,\n} from 'api-doc/types/learning-platform';\nimport { colors, Icons } from 'roh-frontend/packages/roh-react';\nimport getLinkUrl, { getLinkTarget } from 'utils/linkResolver';\nimport { DownloadIcon } from 'modules/_shared/ui-components/Icon';\nimport RichText from '../RichText';\nimport Styled from './styled';\n\ntype CoursesListItemsProps = {\n slice: CoursesListItemsSlice | RequestedCoursesItems;\n isOfferPage?: boolean;\n};\n\ntype DetailsItemsProps = {\n details: string[];\n color?: string;\n};\n\nfunction isCoursesItemsTypeGuard(\n items: CoursesListItemsSlice | RequestedCoursesItems\n): items is CoursesListItemsSlice {\n return (items as CoursesListItemsSlice).cta_text !== undefined;\n}\n\nconst RenderDetailsItems: FunctionComponent = ({\n details,\n color,\n}) => {\n return (\n \n {details.map((item: string, idx: number) => (\n \n {item}\n \n ))}\n \n );\n};\n\nconst CoursesListItem: FunctionComponent = ({\n slice,\n isOfferPage,\n}) => {\n const { image, details, title, description } = slice;\n const { url: imageUrl, alt: imageAlt } = image.value;\n let ctaText;\n let ctaLink;\n let color;\n let prices;\n let isRequestedCourses = false;\n\n if (isCoursesItemsTypeGuard(slice)) {\n const { cta_text: text, cta_link: link } = slice as CoursesListItemsSlice;\n ctaText = text;\n ctaLink = link;\n } else {\n const {\n ctaText: text,\n ctaLink: link,\n categoryColor,\n prices: itemPrices,\n } = slice as RequestedCoursesItems;\n ctaText = text;\n ctaLink = link;\n color = categoryColor;\n prices = itemPrices;\n isRequestedCourses = true;\n }\n\n return (\n \n \n \n \n {title}\n\n \n \n \n \n \n {prices && (\n \n \n \n )}\n \n {isRequestedCourses ? (\n \n ) : (\n \n )}\n\n {ctaText}\n \n \n \n );\n};\n\nexport default CoursesListItem;\n","import { only } from 'modules/_shared/styles/breakpoints';\nimport { typography } from 'roh-frontend/packages/roh-react';\nimport styled from 'styled-components/macro';\n\nconst List = styled.div`\n display: flex;\n flex-direction: column;\n\n ${only('tablet')} {\n flex-wrap: wrap;\n flex-direction: row;\n }\n`;\n\nconst CoursesList = styled.div`\n display: flex;\n flex-direction: column;\n margin-bottom: 64px;\n`;\n\nconst Info = styled.div`\n display: flex;\n flex-wrap: wrap;\n padding: 0 0 56px 0;\n justify-content: space-between;\n max-width: 650px;\n\n p {\n margin: 0 0 16px 0;\n }\n\n ${only('mobile')} {\n flex-direction: column;\n\n > div {\n width: auto;\n padding: 0;\n }\n }\n`;\n\nconst Description = styled.div`\n display: flex;\n flex-direction: column;\n box-sizing: content-box;\n width: 650px;\n margin-right: auto;\n\n > h4 {\n margin: 0 0 16px 0;\n ${typography.smallHeading};\n }\n\n > p {\n ${typography.body};\n\n :last-child {\n margin-bottom: 0;\n }\n }\n`;\n\nconst SupportedBy = styled.div`\n display: flex;\n flex-direction: column;\n padding-top: 50px;\n width: 360px;\n\n > h6 {\n margin: 0 0 3px 0;\n ${typography.mediumBody};\n font-weight: 500;\n }\n\n > p {\n ${typography.smallBody};\n }\n`;\n\nexport default {\n List,\n CoursesList,\n Info,\n Description,\n SupportedBy,\n};\n","import {\n CoursesList as CoursesListSlice,\n RequestedCourses,\n} from 'api-doc/types/learning-platform';\nimport React, { FunctionComponent } from 'react';\nimport CoursesListItem from '../CoursesListItem';\nimport RichText from '../RichText';\nimport Styled from './styled';\n\ntype CoursesListProps = {\n slice: CoursesListSlice | RequestedCourses;\n};\n\nfunction isCoursesListSliceTypeGuard(\n slice: CoursesListSlice | RequestedCourses\n): slice is CoursesListSlice {\n return (slice as CoursesListSlice).primary.supported_by !== undefined;\n}\n\nconst CoursesList: FunctionComponent = ({ slice }) => {\n let description;\n let supportedBy;\n let isOfferPage = false;\n let items;\n if (isCoursesListSliceTypeGuard(slice)) {\n const { primary, items: CoursesListItems } = slice as CoursesListSlice;\n description = primary.description;\n supportedBy = primary.supported_by;\n isOfferPage = primary.offer_page;\n items = CoursesListItems;\n } else {\n const { primary, items: RequestedCoursesItemsList } =\n slice as RequestedCourses;\n description = primary.description;\n items = RequestedCoursesItemsList;\n }\n\n return (\n \n \n \n \n \n {supportedBy?.value && (\n \n \n \n )}\n \n \n {items.map((item, idx) => (\n \n ))}\n \n \n );\n};\n\nexport default CoursesList;\n","import { only, down } from 'modules/_shared/styles/breakpoints';\nimport styled from 'styled-components/macro';\nimport { FunctionComponent } from 'react';\n\nconst LineDazzlerContent = styled.div`\n > :first-child {\n margin-top: 0;\n }\n > :last-child {\n margin-bottom: 0;\n }\n\n li::marker {\n font-size: 18px;\n }\n\n p {\n font-size: 24px;\n line-height: 28px;\n }\n`;\n\nconst Container = styled.div`\n p,\n h6 {\n margin: 0 0 16px 0;\n }\n\n li::marker {\n font-size: 18px;\n }\n\n width: 100%;\n`;\n\nconst DefaultImageWrapper = styled.div`\n img {\n width: 100%;\n }\n`;\n\nconst CenteredContainer = styled.div`\n box-sizing: initial;\n max-width: 650px;\n margin: 0 100px 0 auto;\n ${down('tablet')} {\n margin-right: 0;\n }\n p,\n h6 {\n margin: 0 0 16px 0;\n }\n\n li::marker {\n font-size: 18px;\n }\n`;\n\nconst LefAlignedContainer = styled(CenteredContainer as FunctionComponent)`\n max-width: 650px;\n margin: 0;\n`;\n\nconst AsideContainer = styled.div`\n box-sizing: initial;\n padding-left: 100px;\n width: 650px;\n\n p,\n h6 {\n margin: 0 0 16px 0;\n }\n\n li::marker {\n font-size: 18px;\n }\n`;\n\nconst VideoContainer = styled.div`\n width: 100%;\n margin: 16px 0 40px;\n\n iframe {\n border: none;\n }\n\n ${only('mobile')} {\n padding: 0;\n }\n`;\n\nconst LefAlignedVideoContainer = styled(VideoContainer as FunctionComponent)`\n width: 750px;\n margin: 0;\n`;\n\nconst AudioContainer = styled.div`\n width: 100%;\n padding: 0;\n overflow: hidden;\n\n iframe {\n border: none;\n }\n`;\n\nconst DescribedVideoListContainer = styled.div`\n width: 100%;\n padding: 0;\n`;\n\nexport default {\n AsideContainer,\n AudioContainer,\n CenteredContainer,\n Container,\n DefaultImageWrapper,\n DescribedVideoListContainer,\n LefAlignedContainer,\n LefAlignedVideoContainer,\n LineDazzlerContent,\n VideoContainer,\n};\n","import React, { FunctionComponent } from 'react';\nimport { WrapperOptionsValueEnum } from 'api-doc/types/learning-platform';\nimport { LineDazzler } from 'roh-frontend/packages/roh-react';\nimport Styled from './styled';\n\ntype WrapperProps = {\n type: WrapperOptionsValueEnum | string;\n};\n\nconst Wrapper: FunctionComponent = ({ children, type }) => {\n switch (type) {\n case WrapperOptionsValueEnum.LineDazzler:\n return (\n \n \n {children}\n \n \n );\n case WrapperOptionsValueEnum.CenteredLineDazzler:\n return (\n \n \n {children}\n \n \n );\n case WrapperOptionsValueEnum.AsideLineDazzler:\n return (\n \n \n {children}\n \n \n );\n case WrapperOptionsValueEnum.Video:\n return (\n \n {children}\n \n );\n case WrapperOptionsValueEnum.CenteredVideo:\n return (\n \n \n {children}\n \n \n );\n case WrapperOptionsValueEnum.LeftAlignedVideo:\n return (\n \n \n {children}\n \n \n );\n case WrapperOptionsValueEnum.LeftAlignedText:\n return (\n {children}\n );\n case WrapperOptionsValueEnum.Track:\n return {children};\n case WrapperOptionsValueEnum.Centered:\n return {children};\n case WrapperOptionsValueEnum.Aside:\n return {children};\n case WrapperOptionsValueEnum.Empty:\n default:\n return {children};\n }\n};\n\nexport default Wrapper;\n","import React, { FunctionComponent } from 'react';\nimport { RichTextSectionSlice } from 'api-doc/types/learning-platform';\nimport RichText from '../RichText';\nimport Wrapper from './Wrapper';\nimport Styled from './Wrapper/styled';\n\ntype RichTextSliceProps = {\n slice: RichTextSectionSlice;\n ImgWrapper?: (props: { children: React.ReactNode }) => JSX.Element;\n};\n\nconst RichTextSlice: FunctionComponent = ({\n slice,\n ImgWrapper = Styled.DefaultImageWrapper,\n}) => {\n const texts = slice.items;\n\n return (\n <>\n {texts.map((text, idx) => (\n \n \n \n ))}\n \n );\n};\n\nexport default RichTextSlice;\n","import styled from 'styled-components/macro';\nimport LPColors from 'modules/_shared/styles/colors';\n\nconst Details = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: flex-start;\n font-weight: 400;\n margin-bottom: 8px;\n\n span {\n font-size: 14px;\n line-height: 20px;\n font-weight: 500;\n }\n\n ${(props: { firstElementColor?: string }) =>\n props.firstElementColor &&\n `& > span:first-child {\n background-color: ${props.firstElementColor};\n color: ${LPColors.whiteSmoke};\n padding: 0 4px;\n }`}\n\n .bullet-points:not(:last-child):after {\n content: '';\n display: inline-block;\n width: 5px;\n height: 5px;\n background-color: ${(props) => props.color};\n border-radius: 50%;\n vertical-align: middle;\n margin: 0 15px;\n }\n`;\n\nexport default {\n Details,\n};\n","import React, { FunctionComponent } from 'react';\nimport { colors } from 'roh-frontend/packages/roh-react';\nimport Styled from './styled';\n\ntype ItemDetailsProps = {\n details: Array;\n color?: string;\n firstElementColor?: string;\n};\n\nconst ItemDetails: FunctionComponent = ({\n details,\n color = colors.white,\n firstElementColor,\n}) => {\n return (\n \n {details.map((item, idx) => {\n return (\n \n {item}\n \n \n );\n })}\n \n );\n};\n\nexport default ItemDetails;\n","import styled from 'styled-components/macro';\nimport { colors, typography } from 'roh-frontend/packages/roh-react';\nimport { down } from 'modules/_shared/styles/breakpoints';\n\nconst BannerContainer = styled.div`\n display: flex;\n flex-direction: row;\n height: 504px;\n margin: 0;\n background-color: ${colors.black};\n color: ${colors.white};\n max-width: 100%;\n\n ${down('mobile')} {\n grid-template-columns: 100%;\n flex-direction: column-reverse;\n height: auto;\n margin-top: 1em;\n max-width: 100vw;\n margin: 0 -26px;\n }\n`;\n\nconst DescriptionContainer = styled.div`\n padding: 134px 40px 0;\n margin: 0 0 100px 0;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n flex: 0 0 467px;\n background-color: ${colors.black};\n\n ${down('mobile')} {\n padding: 20px;\n padding-bottom: 36px;\n margin: 0;\n flex: 0 0 auto;\n }\n\n h3 {\n margin: 16px 0;\n }\n`;\n\nconst BannerImageContainer = styled.div`\n width: 100%;\n height: auto;\n display: flex;\n justify-content: center;\n align-items: center;\n overflow: hidden;\n`;\n\nconst BannerImage = styled.div`\n width: 100%;\n height: 100%;\n background: url(${(props) => props.resource}) no-repeat;\n background-size: cover;\n background-clip: border-box;\n background-position: center;\n ${down('mobile')} {\n height: 400px;\n }\n`;\n\nconst Title = styled.h3`\n ${typography.mediumHeading};\n`;\n\nconst BannerBreadcrumbs = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: flex-start;\n\n .programme__banner-bullet-point:not(:last-child):after {\n content: '';\n display: inline-block;\n width: 5px;\n height: 5px;\n background-color: ${colors.white};\n border-radius: 50%;\n vertical-align: middle;\n margin: 0 15px;\n }\n`;\n\nexport default {\n BannerImage,\n BannerImageContainer,\n BannerContainer,\n DescriptionContainer,\n BannerBreadcrumbs,\n Title,\n};\n","import React, { FunctionComponent } from 'react';\nimport { ProgrammeInfo } from 'api-doc/types/learning-platform';\nimport RichText from '../RichText';\nimport ItemDetails from '../ItemDetails';\nimport Styled from './styled';\n\ntype ProgrammeBannerProps = {\n slice: ProgrammeInfo;\n};\n\nconst ProgrammeBanner: FunctionComponent = ({\n slice: { primary },\n}) => {\n const { description, details, title, image } = primary;\n\n return (\n
\n \n \n \n {title}\n \n \n\n \n \n \n \n
\n );\n};\n\nexport default ProgrammeBanner;\n","import LPColors from 'modules/_shared/styles/colors';\nimport React, { FunctionComponent } from 'react';\n\ntype ArrowProps = {\n color?: string;\n};\n\nexport const RightArrow: FunctionComponent = ({\n color = LPColors.silverChalice,\n}: ArrowProps) => (\n \n \n \n);\n\nexport const BottomArrow: FunctionComponent = ({\n color = LPColors.black,\n}: ArrowProps) => (\n \n \n \n);\n\nexport default {\n RightArrow,\n BottomArrow,\n};\n","import styled from 'styled-components/macro';\nimport { only } from 'modules/_shared/styles/breakpoints';\n\nconst ExpandArrowContainer = styled.div`\n display: flex;\n justify-content: center;\n flex: 0 0 24px;\n height: 24px;\n\n ${only('mobile')} {\n display: ${(props: { showOnMobile: boolean }) =>\n props.showOnMobile ? 'flex' : 'none'};\n position: absolute;\n top: 0;\n left: -8px;\n }\n\n svg {\n margin: 0 auto;\n height: 16px;\n width: 16px;\n path {\n fill: #000;\n }\n }\n`;\n\nexport default {\n ExpandArrowContainer,\n};\n","import React, { FunctionComponent } from 'react';\nimport { BottomArrow, RightArrow } from './Arrows';\nimport Styled from './styled';\n\ntype ExpandArrowProps = {\n expanded?: boolean;\n className?: string;\n showOnMobile?: boolean;\n actionHandler?: () => void;\n};\n\nconst ExpandArrow: FunctionComponent = ({\n expanded,\n className,\n showOnMobile = true,\n actionHandler,\n}) => (\n \n {expanded ? : }\n \n);\n\nexport default ExpandArrow;\n","import styled from 'styled-components/macro';\nimport { colors, typography } from 'roh-frontend/packages/roh-react';\nimport { down, only } from 'modules/_shared/styles/breakpoints';\n\ninterface TitleProps {\n isLoggedIn?: boolean;\n isAuthorized?: boolean;\n}\n\nexport const Summary = styled.div`\n list-style: none;\n outline: none;\n position: relative;\n\n ::-webkit-details-marker {\n display: none;\n }\n\n .additional-resources & {\n & + div {\n margin-top: 16px;\n }\n }\n`;\n\nexport const ContentWrapper = styled.div`\n margin: 0 auto;\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n\n ${only('mobile')} {\n flex-direction: column;\n }\n\n svg {\n margin-top: 3px;\n }\n`;\n\nexport const SummaryContent = styled.div`\n padding: 0 16px;\n\n > div,\n p,\n ul {\n max-width: 650px;\n\n :last-child {\n margin-bottom: 0;\n }\n }\n\n h6,\n h5 {\n margin: 0;\n font-weight: 400;\n }\n`;\n\nexport const OptionSideBlock = styled.div`\n display: flex;\n justify-content: flex-end;\n margin-left: auto;\n color: ${colors.crimson};\n ${typography.mediumBody}\n\n ${down('mobile')} {\n justify-self: start;\n padding: 16px 0 0 16px;\n margin: auto auto auto 0;\n }\n`;\n\nexport const Title = styled.section`\n padding-bottom: 16px;\n cursor: pointer;\n .additional-resources & {\n ${(props) =>\n !props.isAuthorized &&\n `\n pointer-events: none;\n cursor: initial;\n `}\n }\n\n .lessons-list > section:not(:first-child) & {\n ${(props) =>\n !props.isAuthorized &&\n `\n pointer-events: none;\n cursor: initial;\n `}\n }\n\n > * {\n font-size: 20px;\n line-height: 28px;\n font-weight: 400;\n }\n`;\n\nexport const Description = styled.div`\n pointer-events: none;\n display: -webkit-box;\n -webkit-line-clamp: ${(props: { expanded: boolean }) =>\n props.expanded ? 'none' : 3};\n -webkit-box-orient: vertical;\n overflow: hidden;\n`;\n\nexport default {\n Summary,\n ContentWrapper,\n SummaryContent,\n OptionSideBlock,\n Title,\n Description,\n};\n","import { RichText as RichTextType } from 'api-doc/types/learning-platform';\nimport ExpandArrow from 'modules/_shared/ui-components/ExpandArrow';\nimport ItemDetails from 'modules/_shared/ui-components/ItemDetails';\nimport RichText from 'modules/_shared/ui-components/RichText';\nimport React, { FunctionComponent, ReactNode, useState } from 'react';\nimport { colors } from 'roh-frontend/packages/roh-react';\nimport Styled from './styled';\n\ntype OptionProps = {\n label: {\n title: RichTextType;\n description: RichTextType;\n details?: Array;\n };\n open: boolean;\n isAuthorized?: boolean;\n sideComponent?: ReactNode | null;\n notForRegistered?: boolean | null;\n};\n\nconst descriptionShortener = (description: RichTextType) => {\n const { type, value } = description;\n const rawText = value.split('

')[0].replace('

', '');\n const result = `

${rawText}

`;\n\n return {\n type,\n value: result,\n };\n};\n\nconst OptionWrapper: FunctionComponent = ({\n label,\n open,\n isAuthorized,\n children,\n sideComponent,\n notForRegistered,\n}) => {\n const [expanded, setIsExpanded] = useState(open);\n const { title, description: fullDescription, details } = label;\n const shortDescription = descriptionShortener(fullDescription);\n const hasAccess = isAuthorized || !!notForRegistered;\n return (\n <>\n \n \n {hasAccess ? (\n setIsExpanded(!expanded)}\n />\n ) : null}\n (hasAccess ? setIsExpanded(!expanded) : () => {})}\n >\n {details && }\n \n \n \n \n \n \n \n {sideComponent}\n \n \n {expanded && children}\n \n );\n};\n\nexport default OptionWrapper;\n","import styled from 'styled-components/macro';\nimport { colors, typography } from 'roh-frontend/packages/roh-react';\nimport { BREAKPOINTS, makePx } from 'modules/_shared/styles/breakpoints';\n\nexport const AccordionWrapper = styled.div`\n ${typography.body};\n background-color: ${colors.white};\n margin: 0 auto;\n width: 100%;\n max-width: ${makePx(BREAKPOINTS.desktop)};\n`;\n\nexport const ContentWrapper = styled.div`\n margin: 0 auto;\n display: grid;\n grid-template-columns: 20px 1fr;\n row-gap: 5px;\n`;\n\nexport const DetailsWrapper = styled.section`\n display: flex;\n flex-direction: column;\n\n .video-container {\n padding: 0;\n }\n\n .additional-resources & {\n padding: 16px 0;\n border-top: 1px solid ${colors.alto};\n\n :last-of-type {\n border-bottom: 1px solid ${colors.alto};\n }\n\n > :last-child {\n margin-bottom: 8px;\n }\n }\n\n .lessons-list & {\n background-color: #f0f0f0;\n padding: 24px 32px 32px;\n margin: 0 0 16px 0;\n min-height: 194px;\n\n > :last-child {\n margin: 0;\n }\n }\n`;\n\nexport default {\n AccordionWrapper,\n DetailsWrapper,\n ContentWrapper,\n};\n","import React, { FunctionComponent, ReactElement, ReactNode } from 'react';\nimport { RichText as RichTextType } from 'api-doc/types/learning-platform';\nimport OptionWrapper from './Option';\nimport Styled from './styled';\n\ninterface ChildProps {\n children: ReactNode;\n}\n\nexport type AccordionOption = {\n title: RichTextType;\n description: RichTextType;\n details?: Array;\n open?: boolean;\n childComponent: ReactNode | null;\n sideComponent?: ReactNode | null;\n notForRegistered?: boolean | null;\n};\n\ntype AccordionProps = {\n data: AccordionOption[];\n className?: string;\n isAuthorized?: boolean;\n};\n\nconst getOptions = (\n options: AccordionOption[],\n isAuthorized: boolean | undefined\n): React.ReactElement[] => {\n return options.map((item: AccordionOption, idx: number) => {\n const { title, description, details, sideComponent, notForRegistered } =\n item;\n const optionLabel = {\n title,\n description,\n ...(details ? { details } : {}),\n };\n\n return (\n \n {item.childComponent}\n \n );\n });\n};\n\nconst AccordionContent = ({ children }: ChildProps) => {\n const {\n props: { children: options },\n } = children as ReactElement;\n\n return options.map((option: ReactElement, idx: number) => (\n {option}\n ));\n};\n\nconst Accordion: FunctionComponent = ({\n data,\n className,\n isAuthorized,\n}: AccordionProps) => {\n return (\n \n \n <>{getOptions(data, isAuthorized)}\n \n \n );\n};\n\nexport default Accordion;\n","import LPColors from 'modules/_shared/styles/colors';\nimport React, { FunctionComponent } from 'react';\n\ntype LockProps = {\n color?: string;\n width: number;\n height: number;\n};\n\nexport const Lock: FunctionComponent = ({\n color = LPColors.crimson,\n width,\n height,\n}: LockProps) => (\n \n \n \n);\n\nexport default {\n Lock,\n};\n","export const RegistrationMessages = {\n notRegistered: 'Open resources',\n notAuthorized: 'Are you interested?',\n};\n\nexport const PaginationText = {\n nextLesson: 'Next lesson',\n prevLesson: 'Previous lesson',\n};\n\nexport const UserRoles = {\n teacher: 'Teacher',\n student: 'Student',\n other: 'Other',\n};\n\nexport default {\n RegistrationMessages,\n PaginationText,\n};\n","import { typography } from 'roh-frontend/packages/roh-react';\nimport LPColors from 'modules/_shared/styles/colors';\nimport styled from 'styled-components/macro';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const RegistrationWarning = styled.a`\n display: flex;\n cursor: pointer;\n border: none;\n padding: 0;\n color: ${(props) => props.color};\n ${typography.mediumBody}\n\n .lessons-list & {\n width: 230px;\n height: 50px;\n justify-content: center;\n align-items: center;\n background-color: ${LPColors.darkGrey};\n }\n\n .additional-resources & {\n width: 176px;\n height: 26px;\n justify-content: flex-start;\n background-color: transparent;\n right: 0;\n }\n\n .unit-pagination & {\n flex-wrap: wrap;\n align-items: center;\n justify-content: ${(props) =>\n props.alignLeft ? 'flex-start' : 'flex-end'};\n font-weight: 400;\n\n svg {\n margin: 0 8px 0 0;\n }\n\n section {\n display: flex;\n justify-content: ${(props) =>\n props.alignLeft ? 'flex-start' : 'flex-end'};\n }\n }\n\n :hover {\n text-decoration: underline;\n }\n\n span {\n line-height: 26px;\n }\n\n svg {\n margin: 0 8px 0 0;\n }\n`;\n\nexport const InnerBlock = styled.section`\n display: block;\n width: 100%;\n`;\n\nexport default {\n RegistrationWarning,\n InnerBlock,\n};\n","import React, { FunctionComponent } from 'react';\nimport Routes from 'router/routePaths';\nimport { Lock } from '../Lock/Lock.component';\nimport { RegistrationMessages } from '../../../../helpers/consts';\nimport Styled from './styled';\n\ntype RegistrationWarningProps = {\n isLoggedIn?: boolean;\n color?: string;\n alignLeft?: boolean;\n};\n\nconst RegistrationWarning: FunctionComponent = ({\n isLoggedIn,\n color,\n alignLeft,\n children,\n}) => {\n return (\n \n \n \n {!isLoggedIn\n ? RegistrationMessages.notRegistered\n : RegistrationMessages.notAuthorized}\n \n {children && {children}}\n \n );\n};\n\nexport default RegistrationWarning;\n","import styled from 'styled-components/macro';\nimport LPColors from 'modules/_shared/styles/colors';\nimport { down } from 'modules/_shared/styles/breakpoints';\n\nexport const Container = styled.div`\n display: flex;\n flex-direction: column;\n max-width: 650px;\n padding-left: 100px;\n\n ${down('tablet')} {\n width: 100%;\n padding: 0 12px;\n }\n`;\n\nexport const Title = styled.div`\n color: ${LPColors.black};\n margin-bottom: 16px;\n\n h4 {\n margin: 0;\n }\n`;\n\nexport default {\n Container,\n Title,\n};\n","import React, { FunctionComponent } from 'react';\nimport Accordion from 'modules/_shared/components/Accordion';\nimport {\n AdditionalResources,\n AdditionalResourcesItems,\n Relationship,\n} from 'api-doc/types/learning-platform';\nimport SlicesRenderer from 'modules/_shared/components/SlicesRenderer';\nimport { useSelector } from 'react-redux';\nimport { RootState } from 'store/rootReducer';\nimport RichText from '../RichText';\nimport RegistrationWarning from '../RegistrationWarning';\nimport LPColors from '../../styles/colors';\nimport Styled from './styled';\n\ntype AdditionalResourcesProps = {\n slice: AdditionalResources;\n};\n\nconst AdditionalResourcesComponent: FunctionComponent<\n AdditionalResourcesProps\n> = ({ slice }) => {\n const { data: userData } = useSelector(\n (state) => state.usersDetails\n );\n\n const { isLoggedIn, isAuthorized } = userData || {};\n\n const {\n primary: { title, description },\n items,\n } = slice;\n\n const getChildComponent = (relationship: Relationship) => {\n return ;\n };\n\n const accordionData = items.map(\n ({\n description: itemDescription,\n title: itemTitle,\n relationship,\n }: AdditionalResourcesItems) => {\n const childComponent = getChildComponent(relationship);\n\n return {\n title: itemTitle,\n description: itemDescription,\n childComponent,\n sideComponent: !isAuthorized && (\n \n ),\n };\n }\n );\n\n return (\n <>\n \n \n \n \n \n \n \n \n );\n};\n\nexport default AdditionalResourcesComponent;\n","import { down } from 'modules/_shared/styles/breakpoints';\nimport { typography } from 'roh-frontend/packages/roh-react';\nimport styled from 'styled-components/macro';\n\nconst Container = styled.div`\n max-width: 650px;\n margin-bottom: 16px;\n\n h1,\n h3 {\n ${typography.largeHeading};\n margin: 0 0 24px 0;\n\n strong {\n font-weight: normal;\n }\n }\n\n p {\n margin: 0 0 16px 0;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n ${down('tablet')} {\n width: auto;\n }\n`;\n\nexport default { Container };\n","import React, { FunctionComponent } from 'react';\nimport { CourseInfo } from 'api-doc/types/learning-platform';\nimport RichText from '../RichText';\nimport Styled from './styled';\n\ntype CourseInfoProps = {\n slice: CourseInfo;\n};\n\nconst CourseInformation: FunctionComponent = ({\n slice: { primary },\n}) => {\n const { description, title } = primary;\n return (\n \n {title && }\n \n \n );\n};\n\nexport default CourseInformation;\n","import { only } from 'modules/_shared/styles/breakpoints';\nimport LPColors from 'modules/_shared/styles/colors';\nimport { typography } from 'roh-frontend/packages/roh-react';\nimport styled from 'styled-components/macro';\n\nconst CustomModalStyles = {\n content: {\n top: '50%',\n left: '50%',\n right: 'auto',\n bottom: 'auto',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n padding: '40px 20px',\n },\n};\n\nconst Container = styled.div`\n width: 540px;\n color: ${LPColors.black};\n position: relative;\n\n ${only('mobile')} {\n width: 100%;\n }\n`;\n\nconst Form = styled.form`\n margin: 16px 0 0;\n\n input {\n background-color: ${LPColors.whiteSmoke};\n border: none;\n margin-bottom: 40px;\n }\n`;\n\nconst ModalActions = styled.div`\n display: flex;\n flex-direction: row;\n\n button:first-child {\n margin-right: 18px;\n border-width: 1px;\n }\n\n div {\n cursor: pointer;\n }\n\n ${only('mobile')} {\n flex-direction: column;\n }\n`;\n\nconst Title = styled.div`\n ${typography.smallHeading};\n`;\n\nconst Description = styled.div`\n margin-top: 16px;\n ${typography.body};\n`;\n\nconst Overlay = styled.div`\n position: absolute;\n width: 540px;\n height: 100%;\n z-index: 10;\n background-color: ${LPColors.whiteSmoke};\n opacity: 0.5;\n\n ${only('mobile')} {\n width: 100%;\n }\n`;\n\nexport default {\n Container,\n Title,\n Description,\n ModalActions,\n Form,\n CustomModalStyles,\n Overlay,\n};\n","import React, { FunctionComponent, useState } from 'react';\nimport Modal from 'react-modal';\nimport {\n CtaSecondary,\n CtaSecondaryNegative,\n Loader,\n} from 'roh-frontend/packages/roh-react';\nimport Styled from './styled';\n\nModal.setAppElement('#root');\n\ntype CertificateModalProps = {\n open: boolean;\n onClosed: (isOpen: boolean) => void;\n certUrl: string;\n};\n\nconst CertificateModal: FunctionComponent = ({\n open,\n onClosed,\n certUrl,\n}) => {\n const [modalIsOpen, setModalIsOpen] = useState(open);\n const [enableLoader, setEnableLoader] = useState(false);\n\n const downloadCertificate = async () => {\n const pdfLink = await fetch(certUrl, {\n method: 'GET',\n })\n .then((resp) => resp.json())\n .then((resp) => resp.data.url)\n .catch(() => {\n setModalIsOpen(false);\n });\n\n fetch(pdfLink, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/pdf',\n },\n })\n .then((resp) => resp.blob())\n .then((data) => {\n const blob = new Blob([data], { type: 'application/pdf' });\n const link = document.createElement('a');\n link.href = window.URL.createObjectURL(blob);\n link.download = `Certificate-${new Date().toLocaleDateString()}.pdf`;\n link.click();\n link.parentNode?.removeChild(link);\n setModalIsOpen(false);\n })\n .catch(() => {\n setModalIsOpen(false);\n });\n };\n\n const handleSubmit = (event: React.SyntheticEvent) => {\n event.preventDefault();\n setEnableLoader(true);\n downloadCertificate();\n };\n\n return (\n onClosed(false)}\n style={Styled.CustomModalStyles}\n >\n \n {enableLoader && (\n \n \n \n )}\n Download certificate\n \n To download our official Certificate of Achievement for your students\n tell us how many students completed the course.\n \n \n \n onClosed(false)}\n />\n \n \n \n \n \n );\n};\n\nexport default CertificateModal;\n","import { only } from 'modules/_shared/styles/breakpoints';\nimport LPColors from 'modules/_shared/styles/colors';\nimport styled from 'styled-components/macro';\n\nconst Container = styled.div`\n width: 65%;\n max-width: 650px;\n color: ${LPColors.black};\n\n h6 {\n margin: 0;\n }\n\n ${only('mobile')} {\n width: 100%;\n }\n`;\n\nexport default {\n Container,\n};\n","import LPColors from 'modules/_shared/styles/colors';\nimport { typography } from 'roh-frontend/packages/roh-react';\nimport styled from 'styled-components/macro';\n\nconst LinkComponentContainer = styled.section`\n width: 100%;\n cursor: pointer;\n color: ${LPColors.black};\n align-self: flex-start;\n padding: 16px 0;\n border-bottom: 1px solid ${LPColors.alto};\n\n p {\n margin: 0;\n }\n\n &:last-child {\n border-bottom: none;\n }\n\n .useful-links-cta {\n width: 230px;\n height: 50px;\n ${typography.body};\n margin-top: 8px;\n color: ${LPColors.white};\n text-decoration: none;\n }\n`;\n\nconst LinkWrapper = styled.div`\n display: flex;\n align-items: center;\n`;\n\nconst LinkText = styled.a`\n display: flex;\n color: ${LPColors.black};\n margin-left: 24px;\n text-decoration: underline;\n`;\n\nexport default {\n LinkComponentContainer,\n LinkWrapper,\n LinkText,\n};\n","import React, { FunctionComponent } from 'react';\nimport { RichText as RichTextType } from 'api-doc/types/learning-platform';\nimport { Colors, PrimaryButton } from '@royaloperahouse/chord';\nimport RichText from '../../RichText';\nimport { DefaultProps } from '../../Icon/models';\nimport Styled from './styled';\n\ntype UsefulLinksProps = {\n description?: RichTextType | null;\n link: {\n value?: RichTextType | null;\n url: string;\n target?: string;\n };\n Image?: FunctionComponent | null;\n buttonView?: boolean;\n};\n\nconst LinkComponent: FunctionComponent = ({\n description,\n link,\n Image,\n buttonView = false,\n}) => {\n const { value: linkText, url, target } = link;\n\n const removeWrappingPTags = (text: string): string => {\n return text.replace(/

(.*?)<\\/p>/g, '$1');\n };\n\n return (\n \n {description && description.value.length > 0 && (\n \n )}\n {!buttonView ? (\n \n {Image && }\n \n \n \n \n ) : (\n \n {removeWrappingPTags(linkText?.value ?? '')}\n \n )}\n \n );\n};\n\nexport default LinkComponent;\n","import React, { FunctionComponent } from 'react';\nimport { UsefulLinks } from 'api-doc/types/learning-platform/useful-links';\nimport {\n UsefulLinksItems,\n UsefulLinkOptionsValueEnum,\n} from 'api-doc/types/learning-platform';\nimport { Icons } from 'roh-frontend/packages/roh-react';\nimport getLinkUrl, { getLinkTarget } from 'utils/linkResolver';\nimport RichText from '../RichText';\nimport { DownloadIcon, PlayButton } from '../Icon';\nimport Styled from './styled';\nimport LinkComponent from './LinkComponent';\n\ntype UsefulLinksProps = {\n slice: UsefulLinks;\n};\n\nconst UsefulLinksComponent: FunctionComponent = ({\n slice,\n}) => {\n const { primary, items } = slice;\n const parsedLinks = items.map((item: UsefulLinksItems, idx: number) => {\n const { description, ctaText, ctaLink, linkType } = item;\n const initialData = {\n description,\n link: {\n value: ctaText,\n url: getLinkUrl(ctaLink!),\n target:\n ctaLink !== null && ctaLink !== undefined\n ? getLinkTarget(ctaLink)\n : undefined,\n },\n };\n\n switch (linkType?.value) {\n case UsefulLinkOptionsValueEnum.Video: {\n const extendedData = {\n ...initialData,\n Image: PlayButton,\n };\n return ;\n }\n case UsefulLinkOptionsValueEnum.Resource: {\n const extendedData = {\n ...initialData,\n Image: Icons.ArrowIcon,\n };\n return ;\n }\n case UsefulLinkOptionsValueEnum.Email: {\n const extendedData = {\n ...initialData,\n Image: Icons.EmailIcon,\n };\n return ;\n }\n case UsefulLinkOptionsValueEnum.Document: {\n const extendedData = {\n ...initialData,\n Image: () => DownloadIcon({ color: 'black' }),\n };\n return ;\n }\n case UsefulLinkOptionsValueEnum.Button: {\n const extendedData = {\n ...initialData,\n buttonView: true,\n };\n return ;\n }\n default:\n return null;\n }\n });\n\n return (\n \n \n {parsedLinks.map((component, idx) => (\n {component}\n ))}\n \n );\n};\n\nexport default UsefulLinksComponent;\n","import { down, up } from 'modules/_shared/styles/breakpoints';\nimport { typography } from 'roh-frontend/packages/roh-react';\nimport styled from 'styled-components/macro';\nimport LPColors from 'modules/_shared/styles/colors';\n\nconst CourseAsideContent = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n align-content: center;\n max-width: 360px;\n\n h6 {\n font-size: 14px;\n line-height: 20px;\n font-weight: 500;\n margin: 0 0 8px 0;\n }\n\n p {\n ${typography.smallBody};\n margin: 0 0 16px 0;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: ${LPColors.black};\n text-decoration: underline;\n }\n\n ${up('tablet')} {\n margin-left: auto;\n }\n\n ${down('tablet')} {\n width: auto;\n }\n\n .useful-links-container {\n width: 100%;\n margin-top: 12px;\n ${down('tablet')} {\n margin: 0;\n width: auto;\n }\n\n section {\n p {\n font-weight: 400;\n margin: 0;\n }\n }\n }\n`;\n\nconst Description = styled.div`\n display: block;\n margin-bottom: 16px;\n`;\n\nconst Certificate = styled.div`\n display: block;\n margin-bottom: 16px;\n`;\n\nconst CtaButton = styled.button`\n display: flex;\n border: none;\n width: 100%;\n height: 50px;\n font-size: 14px;\n background-color: ${LPColors.black};\n cursor: pointer;\n justify-content: center;\n align-items: center;\n appearance: none;\n\n svg {\n height: 15px;\n width: 18px;\n }\n`;\n\nconst CtaText = styled.span`\n display: inline-block;\n color: ${LPColors.white};\n margin-left: 13px;\n`;\n\nexport default {\n CtaButton,\n CtaText,\n CourseAsideContent,\n Certificate,\n Description,\n};\n","import React, { FunctionComponent, useState } from 'react';\nimport {\n AsideContent,\n AsideContentItems,\n UsefulLinks,\n FieldTypes,\n UsefulLinksItems,\n} from 'api-doc/types/learning-platform';\nimport { colors, Icons } from 'roh-frontend/packages/roh-react';\nimport { SliceTypes } from 'api-doc/types/learning-platform/slice-types';\nimport { useSelector } from 'react-redux';\nimport { Link } from 'api-doc/types/learning-platform/link';\nimport RichText from '../RichText';\nimport CertificateModal from '../CertificateModal';\nimport UsefulLinksComponent from '../UsefulLinks';\nimport { RootState } from '../../../../store/rootReducer';\nimport { UserRoles } from '../../../../helpers/consts';\nimport { ApiCallStatus } from '../../../../store/statesHelper';\nimport PageLoading from '../PageLoading';\nimport Styled from './styled';\n\ntype AsideContentProps = {\n slice: AsideContent;\n};\n\nconst CourseAsideContent: FunctionComponent = ({\n slice: { primary, items },\n}) => {\n const {\n description,\n certificate: cert,\n cta_text: ctaText,\n certificateLink,\n } = primary;\n const [openModal, setIsOpen] = useState(false);\n const { data: userData, status } = useSelector<\n RootState,\n RootState['usersDetails']\n >((state) => state.usersDetails);\n const openModalWindow = () => setIsOpen(true);\n const onClosedHandler = (isOpen: boolean) => setIsOpen(isOpen);\n const getLinksData = (linksArray: AsideContentItems[]): UsefulLinks => {\n return {\n sliceType: SliceTypes.UsefulLink,\n sliceLabel: '',\n primary: {\n title: {\n type: FieldTypes.RICHTEXT,\n value: '

Useful links
',\n },\n },\n items: linksArray as UsefulLinksItems[],\n };\n };\n const { value: url } = certificateLink as Link;\n\n return (\n \n {status === ApiCallStatus.LOADING && }\n {status === ApiCallStatus.SUCCESS && (\n <>\n {description && (\n \n \n \n )}\n {userData.role === UserRoles.teacher && (\n <>\n {cert && (\n \n \n \n )}\n {ctaText && (\n <>\n openModalWindow()}>\n \n {ctaText}\n \n {openModal && (\n \n )}\n \n )}\n \n )}\n\n {items && items.length > 0 && (\n \n )}\n \n )}\n \n );\n};\n\nexport default CourseAsideContent;\n","import { RichText as RichTextType } from 'api-doc/types/learning-platform';\n\nconst setHeadingType = (\n data: RichTextType,\n headingLevel: number\n): RichTextType => {\n const matchPattern = new RegExp('h[1-6]', 'ig');\n const newHeading = data.value.replace(\n matchPattern,\n `h${String(headingLevel)}`\n );\n\n return {\n ...data,\n value: newHeading,\n };\n};\n\nexport default setHeadingType;\n","import styled from 'styled-components/macro';\nimport LPColors from 'modules/_shared/styles/colors';\nimport { only, up, down } from 'modules/_shared/styles/breakpoints';\nimport { typography } from 'roh-frontend/packages/roh-react';\n\nconst Information = styled.div`\n display: flex;\n flex-direction: column;\n padding: 32px 24px 25px 40px;\n background-color: ${LPColors.whiteSmoke};\n`;\n\nconst Title = styled.div`\n h1 {\n ${typography.largeHeading};\n margin: 16px 0 32px 0;\n }\n\n ${up('tablet')} {\n max-width: 650px;\n }\n`;\n\nconst Description = styled.div`\n margin: 0 0 16px 0;\n\n ${up('tablet')} {\n max-width: 650px;\n }\n\n p {\n margin: inherit;\n }\n`;\n\nconst Options = styled.div`\n display: flex;\n\n ${up('tablet')} {\n flex-direction: row;\n margin: 0 -16px;\n justify-content: space-between;\n\n > * {\n margin: 0 16px;\n }\n }\n\n ${down('tablet')} {\n flex-direction: column;\n\n > * {\n margin: 0 0 16px 0;\n }\n }\n`;\n\nconst Units = styled.div`\n display: grid;\n grid-template-columns: auto;\n\n ${up('tablet')} {\n grid-column-gap: 32px;\n }\n\n ${down('tablet')} {\n grid-row-gap: 16px;\n }\n\n h6 {\n margin: 0;\n padding: 29px 0 16px 0;\n font-weight: 500;\n font-size: 12px;\n line-height: 14px;\n }\n`;\n\nconst DetailsList = styled.ul`\n display: flex;\n margin: 0;\n padding: 0;\n`;\n\nconst DetailsListItem = styled.li`\n display: block;\n position: relative;\n\n > span {\n ${typography.mediumBody};\n font-weight: 500;\n }\n\n &:not(:last-child):after {\n display: inline-block;\n content: '•';\n margin: 0 14px;\n\n ${only('mobile')} {\n margin: 0 8px;\n }\n }\n`;\n\nconst Column = styled.div`\n display: flex;\n flex-direction: column;\n width: 230px;\n`;\n\nexport const SubTitle = styled.h6`\n ${typography.mediumBody};\n font-weight: 400;\n margin: 0 0 16px 0;\n`;\n\nexport const ListSection = styled.div`\n display: flex;\n flex-direction: column;\n width: 230px;\n margin-bottom: 20px;\n ${typography.smallBody}\n`;\n\nexport const OptionsWrapper = styled.div`\n > div {\n display: flex;\n font-size: 13px;\n line-height: 21px;\n font-weight: 300;\n margin-bottom: 7px;\n min-width: 200px;\n\n span:last-child {\n margin-left: 12px;\n }\n }\n`;\n\nexport default {\n Title,\n Description,\n Information,\n DetailsList,\n DetailsListItem,\n Options,\n Units,\n Column,\n SubTitle,\n ListSection,\n OptionsWrapper,\n};\n","export enum RequirementsOptions {\n EMPTY_SPACE = 'ClearEmptySpace',\n CRAFT_MATERIALS = 'CraftMaterials',\n SKETCHBOOKS = 'Sketchbooks',\n LESSON_FILM = 'LessonFilm',\n MUSIC = 'Music',\n PE_KIT = 'KitAndBareFeet',\n MEANS_OF_CAPTURE = 'MeansOfCapture',\n}\n\nexport default RequirementsOptions;\n","import React, { FunctionComponent } from 'react';\nimport { CraftMaterial } from 'modules/_shared/ui-components/Icon';\nimport { EmptyObject } from 'utils/commonTypes';\n\nconst CraftMaterials: FunctionComponent = () => {\n return (\n
\n \n Craft materials\n
\n );\n};\n\nexport default CraftMaterials;\n","import React, { FunctionComponent } from 'react';\nimport { AllSidesArrow } from 'modules/_shared/ui-components/Icon';\nimport { EmptyObject } from 'utils/commonTypes';\n\nconst EmptySpace: FunctionComponent = () => {\n return (\n
\n \n Clear empty space\n
\n );\n};\n\nexport default EmptySpace;\n","import React, { FunctionComponent } from 'react';\nimport { PlayButton } from 'modules/_shared/ui-components/Icon';\nimport { EmptyObject } from 'utils/commonTypes';\n\nconst LessonFilm: FunctionComponent = () => {\n return (\n
\n \n Lesson film\n
\n );\n};\n\nexport default LessonFilm;\n","import React, { FunctionComponent } from 'react';\nimport { CameraIcon } from 'modules/_shared/ui-components/Icon';\nimport { EmptyObject } from 'utils/commonTypes';\n\nconst MeansOfCapture: FunctionComponent = () => {\n return (\n
\n \n Means of capture\n
\n );\n};\n\nexport default MeansOfCapture;\n","import React, { FunctionComponent } from 'react';\nimport { MusicIcon } from 'modules/_shared/ui-components/Icon';\nimport { EmptyObject } from 'utils/commonTypes';\n\nconst Music: FunctionComponent = () => {\n return (\n
\n \n Music\n
\n );\n};\n\nexport default Music;\n","import React, { FunctionComponent } from 'react';\nimport { Shorts } from 'modules/_shared/ui-components/Icon';\nimport { EmptyObject } from 'utils/commonTypes';\n\nconst PEKit: FunctionComponent = () => {\n return (\n
\n \n PE kit and bare feet\n
\n );\n};\n\nexport default PEKit;\n","import React, { FunctionComponent } from 'react';\nimport { SketchBooks as SketchBooksIcon } from 'modules/_shared/ui-components/Icon';\nimport { EmptyObject } from 'utils/commonTypes';\n\nconst SketchBooks: FunctionComponent = () => {\n return (\n
\n \n Sketchbooks\n
\n );\n};\n\nexport default SketchBooks;\n","import React, { FunctionComponent } from 'react';\nimport { RequirementsOptions } from '../RequirementsEnum';\nimport CraftMaterials from './CraftMaterials.component';\nimport EmptySpace from './EmptySpace.component';\nimport LessonFilm from './LessonFilm.component';\nimport MeansOfCapture from './MeansOfCapture.component';\nimport Music from './Music.component';\nimport PEKit from './PEKit.component';\nimport SketchBooks from './SketchBooks.component';\n\ntype LessonRequirementOptionsProps = {\n type: RequirementsOptions;\n};\n\nconst LessonRequirementOptions: FunctionComponent<\n LessonRequirementOptionsProps\n> = ({ type = RequirementsOptions }) => {\n switch (type) {\n case RequirementsOptions.EMPTY_SPACE: {\n return ;\n }\n case RequirementsOptions.CRAFT_MATERIALS: {\n return ;\n }\n case RequirementsOptions.SKETCHBOOKS: {\n return ;\n }\n case RequirementsOptions.LESSON_FILM: {\n return ;\n }\n case RequirementsOptions.MUSIC: {\n return ;\n }\n case RequirementsOptions.PE_KIT: {\n return ;\n }\n case RequirementsOptions.MEANS_OF_CAPTURE: {\n return ;\n }\n default:\n return null;\n }\n};\n\nexport default LessonRequirementOptions;\n","import React, { FunctionComponent } from 'react';\nimport Styled from '../LessonInformation/styled';\nimport LessonRequirementOptions from './RequirementOptions';\nimport { RequirementsOptions } from './RequirementsEnum';\n\ntype LessonRequirementsProps = {\n list: string[];\n};\n\nconst LessonRequirements: FunctionComponent = ({\n list,\n}) => {\n return (\n \n Requirements\n \n {list.map((option: string, idx: number) => {\n return (\n \n );\n })}\n \n \n );\n};\n\nexport default LessonRequirements;\n","import { RefObject } from 'react';\n\nconst scrollToUnitRef = (ref: RefObject): void =>\n window.scrollTo(0, ref.current!.offsetTop - 100);\n\nexport default scrollToUnitRef;\n","export enum FileFormat {\n PDF = 'pdf',\n PPTX = 'pptx',\n}\n\nexport default FileFormat;\n","import React, { FunctionComponent } from 'react';\n\ntype AssetDownloadProps = {\n icon: React.ReactElement;\n label: string;\n link: string;\n};\n\nconst AssetDownload: FunctionComponent = ({\n icon,\n label,\n link,\n}) => {\n return (\n
\n {icon}\n \n \n {label}\n \n \n
\n );\n};\n\nexport default AssetDownload;\n","import React, { FunctionComponent } from 'react';\nimport {\n LessonPlanIcon,\n SlideShowIcon,\n} from 'modules/_shared/ui-components/Icon';\nimport { FileFormat } from '../FileFormatEnum';\nimport AssetDownload from './AssetDownload.component';\n\ntype AssetOptionsProps = {\n fileFormat: FileFormat | null;\n label: string;\n link: string;\n};\n\nconst AssetOptions: FunctionComponent = ({\n fileFormat,\n label,\n link,\n}) => {\n switch (fileFormat) {\n case FileFormat.PDF: {\n return (\n } label={label} link={link} />\n );\n }\n case FileFormat.PPTX: {\n return (\n } label={label} link={link} />\n );\n }\n default:\n return null;\n }\n};\n\nexport default AssetOptions;\n","import React, { FunctionComponent } from 'react';\nimport { LessonDownloads as Downloads } from 'api-doc/types/learning-platform';\nimport Styled from '../LessonInformation/styled';\nimport AssetOption from './AssetOptions';\nimport { FileFormat } from './FileFormatEnum';\n\nconst DEFAULT_TITLE = 'Downloads';\n\ntype LessonDownloadsProps = {\n downloads: Downloads;\n};\n\nconst isFileFormat = (value: string): value is FileFormat =>\n Object.values(FileFormat).includes(value as FileFormat);\n\nconst getFileFormat = (link: string): FileFormat | null => {\n const chunks = link.split('.');\n const fileFormat = chunks[chunks.length - 1].toLowerCase();\n return isFileFormat(fileFormat) ? fileFormat : null;\n};\n\nconst LessonDownloads: FunctionComponent = ({\n downloads,\n}) => {\n const assets = downloads.assets.filter(\n (asset) => asset.assetLink && asset.assetLabel\n );\n\n return (\n <>\n {assets.length > 0 && (\n \n {downloads.title || DEFAULT_TITLE}\n \n {assets.map((asset, idx) => {\n const fileFormat = getFileFormat(asset.assetLink);\n\n return (\n \n );\n })}\n \n \n )}\n \n );\n};\n\nexport default LessonDownloads;\n","import styled from 'styled-components/macro';\nimport { typography } from 'roh-frontend/packages/roh-react';\n\nconst OutcomesWrapper = styled.div`\n display: flex;\n flex-direction: column;\n max-width: 650px;\n\n li {\n font-size: 13px;\n line-height: 21px;\n font-weight: 300;\n margin-bottom: 7px;\n\n &::marker {\n font-size: 1.5em;\n }\n }\n`;\n\nconst Title = styled.h6`\n ${typography.mediumBody};\n font-weight: 400;\n margin: 0 0 16px 0;\n`;\n\nexport default {\n OutcomesWrapper,\n Title,\n};\n","import React, { FunctionComponent } from 'react';\nimport RichText from 'modules/_shared/ui-components/RichText';\nimport { RichText as RichTextType } from 'api-doc/types/learning-platform';\nimport Styled from './styled';\n\ntype LessonOutcomesProps = {\n outcomes: RichTextType;\n};\n\nconst LessonOutcomes: FunctionComponent = ({\n outcomes,\n}) => {\n return (\n \n {/* // TODO: make this data come from bacl-end */}\n Outcomes\n \n \n );\n};\n\nexport default LessonOutcomes;\n","import styled from 'styled-components/macro';\nimport { typography } from 'roh-frontend/packages/roh-react';\n\nconst CurriculumWrapper = styled.div`\n display: flex;\n flex-direction: column;\n max-width: 390px;\n\n li {\n font-size: 13px;\n line-height: 21px;\n font-weight: 300;\n margin-bottom: 7px;\n\n &::marker {\n font-size: 1.5em;\n }\n }\n`;\n\nconst Title = styled.h6`\n ${typography.mediumBody};\n font-weight: 400;\n margin: 0 0 16px 0;\n`;\n\nexport default {\n CurriculumWrapper,\n Title,\n};\n","import React, { FunctionComponent } from 'react';\nimport RichText from 'modules/_shared/ui-components/RichText';\nimport { RichText as RichTextType } from 'api-doc/types/learning-platform';\nimport Styled from './styled';\n\ntype LessonCurriculumProps = {\n curriculum: RichTextType;\n};\n\nconst LessonCurriculum: FunctionComponent = ({\n curriculum,\n}) => {\n return (\n \n {/* // TODO: make this data come from bacl-end */}\n Curriculum Links\n \n \n );\n};\n\nexport default LessonCurriculum;\n","import styled from 'styled-components/macro';\nimport LPColors from 'modules/_shared/styles/colors';\nimport { only } from 'modules/_shared/styles/breakpoints';\n\nconst ListWrapper = styled.div`\n display: flex;\n flex-direction: column;\n\n a:last-child {\n border-bottom: 1px solid ${LPColors.alto};\n }\n`;\n\nconst Link = styled.a`\n display: block;\n position: relative;\n width: 100%;\n padding: 16px 0;\n color: ${LPColors.black};\n border-top: 1px solid ${LPColors.alto};\n\n span {\n position: absolute;\n right: 0;\n top: 16px;\n ${only('mobile')} {\n top: 20px;\n }\n }\n`;\n\nexport default {\n ListWrapper,\n Link,\n};\n","import React, { FunctionComponent } from 'react';\nimport { UnitRelationshipItems } from 'api-doc/types/learning-platform';\nimport { colors, Icons } from 'roh-frontend/packages/roh-react';\nimport Styled from './styled';\n\ntype UnitListProps = {\n list: UnitRelationshipItems[];\n baseUrl: string;\n};\n\nconst UnitList: FunctionComponent = ({ list, baseUrl }) => {\n const getUnitRelatedUrl = (uid: string, baseUrlStr: string) => {\n const params = new URLSearchParams({ uid });\n const hasQueryParam = baseUrlStr.split('').includes('?');\n return `${baseUrlStr}${hasQueryParam ? '&' : '?'}${params.toString()}`;\n };\n return (\n \n {list.map((item: UnitRelationshipItems, idx: number) => {\n const { name, uid } = item;\n return (\n \n {name}\n \n \n );\n })}\n \n );\n};\n\nexport default UnitList;\n","import React, { FunctionComponent, useEffect, useRef } from 'react';\nimport {\n LessonsInformation as LessonsInformationSlice,\n UnitRelationshipItems,\n FieldTypes,\n} from 'api-doc/types/learning-platform';\nimport RichText from 'modules/_shared/ui-components/RichText';\nimport LessonRequirements from 'modules/_shared/ui-components/LessonRequirements';\nimport scrollToUnitRef from '../../../../utils/scrollHelper';\nimport LessonDownloads from '../LessonDownloads';\nimport LessonOutcomes from './LessonOutcomes';\nimport LessonCurriculum from './LessonCurriculum';\nimport Styled from './styled';\nimport UnitList from './UnitList';\n\ntype LessonsInformationProps = {\n slice: LessonsInformationSlice;\n lessonBaseUrl?: string;\n};\n\ntype DetailsListProps = {\n details: string[];\n};\n\nconst RenderDetailsList: FunctionComponent = ({\n details,\n}) => {\n return (\n \n {details.map((item: string, idx: number) => (\n \n {item}\n \n ))}\n \n );\n};\n\nconst LessonsInformation: FunctionComponent = ({\n slice,\n lessonBaseUrl,\n}) => {\n const { primary, requirements, items, lessonDownloads } = slice;\n const {\n title,\n details,\n description,\n outcomes,\n curriculumList,\n unitsListTitle,\n } = primary;\n const lessonRef = useRef(null);\n\n useEffect(() => {\n if (lessonRef) {\n scrollToUnitRef(lessonRef);\n }\n }, [lessonRef]);\n\n return (\n \n \n \n \n \n {description && (\n \n \n \n )}\n \n {outcomes.value && }\n {curriculumList?.value && (\n \n )}\n \n {requirements && }\n {lessonDownloads && }\n \n \n \n {items.length > 0 && (\n <>\n \n \n \n )}\n \n \n );\n};\n\nexport default LessonsInformation;\n","import { typography } from 'roh-frontend/packages/roh-react';\nimport styled from 'styled-components/macro';\nimport LPColors from 'modules/_shared/styles/colors';\nimport { down } from 'modules/_shared/styles/breakpoints';\n\nexport const Container = styled.div`\n display: flex;\n flex-direction: column;\n width: 70%;\n\n ${down('tablet')} {\n width: 100%;\n }\n`;\n\nexport const AccordionOverride = styled.div`\n margin-top: 20px;\n details {\n margin-bottom: 20px;\n background-color: ${LPColors.whiteSmoke};\n border: none;\n\n :last-child {\n margin-bottom: 0;\n }\n }\n`;\n\nexport const Title = styled.div`\n color: ${LPColors.black};\n margin-bottom: 4px;\n\n h4 {\n margin: 104px 0 0 0;\n }\n`;\n\nexport const ButtonWrapper = styled.div`\n width: 230px;\n height: 50px;\n\n a {\n ${typography.mediumBody};\n height: inherit;\n width: 100%;\n\n svg {\n height: 15px;\n width: 18px;\n }\n }\n`;\n\nexport default {\n Container,\n Title,\n ButtonWrapper,\n AccordionOverride,\n};\n","import React, { FunctionComponent } from 'react';\nimport Accordion from 'modules/_shared/components/Accordion';\nimport {\n FieldTypes,\n ListOfLessons,\n LessonsInformation as LessonsInformationSlice,\n UnitRelationshipItems,\n UnitRelationship as UnitRelationshipType,\n} from 'api-doc/types/learning-platform';\nimport { useSelector } from 'react-redux';\nimport { RootState } from 'store/rootReducer';\nimport getLinkUrl from 'utils/linkResolver';\nimport setHeadingType from 'utils/headingHelper';\nimport { Colors, PrimaryButton } from '@royaloperahouse/chord';\nimport RichText from '../RichText';\nimport LessonsInformation from '../LessonInformation';\nimport RegistrationWarning from '../RegistrationWarning';\nimport LPColors from '../../styles/colors';\nimport { AccordionOption } from '../../components/Accordion/Accordion.component';\nimport Styled from './styled';\n\ntype LessonsListProps = {\n slice: ListOfLessons;\n};\n\nconst LessonsListComponent: FunctionComponent = ({\n slice,\n}) => {\n const {\n primary: { title },\n items,\n } = slice;\n\n const { data: userData } = useSelector(\n (state) => state.usersDetails\n );\n\n const { isLoggedIn, isAuthorized } = userData || {};\n\n const accordionData = items!.map(({ ctaText, relationship }) => {\n const lessonInfo = relationship.slices.find((item) => {\n return item.sliceType === 'lessons_information';\n });\n\n const unitRelation = relationship.slices.find((item) => {\n return item.sliceType === 'unit_relationship';\n }) as UnitRelationshipType;\n\n if (!lessonInfo) return null;\n\n const unitsList = unitRelation?.items as UnitRelationshipItems[];\n const unitsListTitle = unitRelation?.primary.title ?? '';\n\n const parseLessonsData = (\n data: LessonsInformationSlice,\n units: UnitRelationshipItems[]\n ) => {\n const { primary } = data;\n const emptyRichText = '';\n\n return {\n outerAccordionData: {\n onlyForLogged: primary.onlyForLogged,\n title: primary.title,\n description: primary.description\n ? primary.description\n : {\n type: FieldTypes.RICHTEXT,\n value: emptyRichText,\n },\n details: primary.details,\n },\n innerAccordionData: {\n ...data,\n primary: {\n ...data.primary,\n title: {\n type: FieldTypes.RICHTEXT,\n value: emptyRichText,\n },\n description: {\n type: FieldTypes.RICHTEXT,\n value: emptyRichText,\n },\n details: [''],\n unitsListTitle,\n },\n items: units,\n },\n };\n };\n\n const { outerAccordionData, innerAccordionData } = parseLessonsData(\n lessonInfo as LessonsInformationSlice,\n unitsList\n );\n\n const notForRegistered = !outerAccordionData.onlyForLogged;\n\n const getRedirectUrl = () => {\n return getLinkUrl({\n type: FieldTypes.LINKDOCUMENT,\n value: {\n type: relationship.type ?? '',\n uid:\n notForRegistered && !isAuthorized\n ? `${relationship.uid}?allow=true`\n : relationship.uid,\n },\n });\n };\n const getChildComponent = (data: LessonsInformationSlice) => {\n return (\n \n );\n };\n\n return {\n title: setHeadingType(outerAccordionData.title, 5),\n description: outerAccordionData.description,\n details: outerAccordionData.details,\n childComponent: lessonInfo ? (\n getChildComponent(innerAccordionData as LessonsInformationSlice)\n ) : (\n

Lesson data is not provided

\n ),\n sideComponent: (\n <>\n {isAuthorized || notForRegistered ? (\n \n \n {ctaText}\n \n \n ) : (\n \n )}\n \n ),\n notForRegistered,\n };\n });\n\n return (\n <>\n \n \n \n \n \n \n {accordionData.some((e) => !!e) && (\n \n )}\n \n \n );\n};\n\nexport default LessonsListComponent;\n","var _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgClock(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 30 30\",\n width: 18,\n height: 18,\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15,3C8.4,3,3,8.4,3,15s5.4,12,12,12s12-5.4,12-12S21.6,3,15,3z M15,25.9C9,25.9,4.1,21,4.1,15S9,4.1,15,4.1 S25.9,9,25.9,15S21,25.9,15,25.9z\"\n }), /*#__PURE__*/React.createElement(\"polygon\", {\n points: \"15,7 13.9,7 13.9,17.3 14.9,17.3 14.9,17.3 20.7,17.3 20.7,16.2 15,16.2\"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgClock);\nexport default __webpack_public_path__ + \"static/media/Clock.fa53b5424d9e13b55192638c93cb46c1.svg\";\nexport { ForwardRef as ReactComponent };","import styled from 'styled-components/macro';\nimport LPColors from 'modules/_shared/styles/colors';\n\nconst Duration = styled.div`\n display: flex;\n gap: 0.5em;\n fill: ${LPColors.black};\n stroke: ${LPColors.black};\n`;\n\nexport default {\n Duration,\n};\n","import React, { FunctionComponent } from 'react';\nimport {\n UnitsApiResponseData,\n FieldTypes,\n RichText as RichTextType,\n} from 'api-doc/types/learning-platform';\nimport RichText from '../../RichText';\nimport { ReactComponent as Clock } from '../../../../../assets/icons/Clock.svg';\nimport Styled from './styled';\n\ntype UnitHeadingProps = {\n unitData: UnitsApiResponseData;\n};\n\nconst UnitHeading: FunctionComponent = ({ unitData }) => {\n const titleText: RichTextType = {\n type: FieldTypes.RICHTEXT,\n value: `

${unitData.primary.name}

`,\n };\n return (\n
\n \n {unitData.primary.duration && (\n \n \n {unitData.primary.duration}\n \n )}\n
\n );\n};\n\nexport default UnitHeading;\n","enum UnitNavigationActions {\n REDIRECT_TO_LESSON = 'Redirect to lesson',\n LOAD_UNIT = 'Load unit',\n}\n\nexport default UnitNavigationActions;\n","import { down, up } from 'modules/_shared/styles/breakpoints';\nimport LPColors from 'modules/_shared/styles/colors';\nimport styled from 'styled-components/macro';\n\nconst UnitNavigation = styled.div`\n background-color: ${LPColors.white};\n margin: 0 0 0 32px;\n position: sticky;\n top: 0;\n height: fit-content;\n padding-top: 16px;\n\n ${up('tablet')} {\n min-width: 360px;\n }\n\n ${down('tablet')} {\n display: none;\n }\n\n ${down('mobile')} {\n position: unset;\n padding-bottom: 0;\n margin: 0;\n }\n`;\n\nconst Title = styled.div`\n border-bottom: 1px solid ${LPColors.whiteSmoke};\n\n h6 {\n margin: 0;\n padding: 0 0 16px 0;\n }\n`;\n\nconst Nav = styled.nav`\n display: block;\n`;\n\nconst List = styled.ul`\n display: block;\n padding: 0;\n`;\n\nconst ListItem = styled.li`\n display: block;\n border-bottom: 1px solid ${LPColors.whiteSmoke};\n padding: 16px 0;\n`;\n\nconst Link = styled.a<{ active?: boolean; duration?: boolean }>`\n display: grid;\n ${(props) => props.duration && `grid-template-columns: 1fr 6em;`};\n gap: 2em;\n width: 100%;\n cursor: pointer;\n line-height: 26px;\n fill: ${LPColors.black};\n stroke: ${LPColors.black};\n ${(props) =>\n props.active &&\n ` color: ${LPColors.crimson};\n fill: ${LPColors.crimson};\n stroke: ${LPColors.crimson};\n `};\n\n &:hover {\n color: ${LPColors.crimson};\n fill: ${LPColors.crimson};\n stroke: ${LPColors.crimson};\n }\n`;\n\nconst Duration = styled.div`\n display: flex;\n gap: 0.5em;\n\n svg {\n margin-top: 0.2em;\n }\n`;\n\nexport default {\n Title,\n Nav,\n UnitNavigation,\n Link,\n List,\n ListItem,\n Duration,\n};\n","import React, { FunctionComponent } from 'react';\nimport {\n RichText as RichTextType,\n UnitRelationshipItems as UnitRelationshipItemsType,\n} from 'api-doc/types/learning-platform';\nimport UnitNavigationActions from '../UnitWrapper/UnitActionsEnum';\nimport RichText from '../../RichText';\nimport { ReactComponent as Clock } from '../../../../../assets/icons/Clock.svg';\nimport Styled from './styled';\n\ntype UnitNavigationProps = {\n title: RichTextType;\n navItems: UnitRelationshipItemsType[];\n handleClick: (itemId: string, type: UnitNavigationActions) => void;\n activeId: string;\n};\n\nconst UnitNavigation: FunctionComponent = ({\n title,\n navItems,\n handleClick,\n activeId,\n}) => {\n return (\n \n \n \n \n \n \n {navItems.map(({ name, uid, duration }, idx: number) => (\n \n \n handleClick(uid, UnitNavigationActions.LOAD_UNIT)\n }\n >\n {name}\n {duration && (\n \n \n {duration}\n \n )}\n \n \n ))}\n \n \n \n );\n};\n\nexport default UnitNavigation;\n","import styled from 'styled-components/macro';\nimport { up } from 'modules/_shared/styles/breakpoints';\nimport LPColors from 'modules/_shared/styles/colors';\n\nexport const Wrapper = styled.div`\n ${up('tablet')} {\n display: none;\n }\n`;\n\nconst Title = styled.div`\n h6 {\n margin: 0;\n padding-bottom: 0.8em;\n }\n`;\n\nconst Dropdown = styled.div`\n position: relative;\n margin-bottom: 1em;\n border: 1px solid ${LPColors.silverChalice};\n width: 100%;\n max-width: 650px;\n padding: 1em;\n border-radius: 0;\n font-size: 1em;\n cursor: pointer;\n\n .dropdown__header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n`;\n\nconst List = styled.ul`\n ${(props: { isExpanded: boolean }) => !props.isExpanded && 'display: none;'}\n position: absolute;\n left: 0;\n top: calc(100% + 1px);\n background-color: white;\n width: 100%;\n box-shadow: 0 0 10px ${LPColors.whiteSmoke};\n z-index: 1;\n`;\n\nconst ListItem = styled.li`\n list-style: none;\n padding: 1em 1em 1em 0;\n cursor: pointer;\n`;\n\nconst Link = styled.div`\n display: grid;\n grid-template-columns: 1fr 6em;\n gap: 2em;\n cursor: pointer;\n line-height: 26px;\n fill: ${LPColors.black};\n stroke: ${LPColors.black};\n &:hover {\n color: ${LPColors.crimson};\n fill: ${LPColors.crimson};\n stroke: ${LPColors.crimson};\n }\n`;\n\nconst Duration = styled.div`\n display: flex;\n gap: 0.5em;\n\n svg {\n margin-top: 0.2em;\n }\n`;\n\nexport default {\n Wrapper,\n Title,\n Dropdown,\n List,\n ListItem,\n Link,\n Duration,\n};\n","import React, { useState, useEffect, FunctionComponent } from 'react';\nimport { UnitRelationshipItems as UnitRelationshipItemsType } from 'api-doc/types/learning-platform';\nimport UnitNavigationActions from '../UnitWrapper/UnitActionsEnum';\nimport { BottomArrow } from '../../ExpandArrow/Arrows';\nimport { ReactComponent as Clock } from '../../../../../assets/icons/Clock.svg';\nimport Styled from './styled';\n\ntype DropdownProps = {\n navItems: UnitRelationshipItemsType[];\n handleClick: (itemId: string, type: UnitNavigationActions) => void;\n activeId: string;\n};\n\nconst Dropdown: FunctionComponent = ({\n navItems,\n activeId,\n handleClick,\n}) => {\n const [isExpanded, setIsExpanded] = useState(false);\n const [activeTitle, setActiveTitle] = useState('');\n const menuExpand = () => {\n setIsExpanded(!isExpanded);\n };\n\n useEffect(() => {\n const title = navItems.find((unit) => unit.uid === activeId);\n if (title?.name) {\n setActiveTitle(title.name);\n }\n }, [navItems, activeId]);\n\n return (\n \n
\n
{activeTitle}
\n \n
\n \n {navItems.map(({ name, uid, duration }, idx: number) => {\n return (\n \n \n handleClick(uid, UnitNavigationActions.LOAD_UNIT)\n }\n >\n {name}\n {duration && (\n \n \n {duration}\n \n )}\n \n \n );\n })}\n \n
\n );\n};\n\nexport default Dropdown;\n","import React, { FunctionComponent } from 'react';\nimport {\n RichText as RichTextType,\n UnitRelationshipItems as UnitRelationshipItemsType,\n} from 'api-doc/types/learning-platform';\nimport UnitNavigationActions from '../UnitWrapper/UnitActionsEnum';\nimport RichText from '../../RichText';\nimport Dropdown from './Dropdown';\nimport Styled from './styled';\n\ntype UnitNavigationDropdownProps = {\n title: RichTextType;\n navItems: UnitRelationshipItemsType[];\n handleClick: (itemId: string, type: UnitNavigationActions) => void;\n activeId: string;\n};\n\nconst UnitNavigationDropdown: FunctionComponent<\n UnitNavigationDropdownProps\n> = ({ title, navItems, handleClick, activeId }) => (\n \n \n \n \n \n \n);\n\nexport default UnitNavigationDropdown;\n","import LPColors from 'modules/_shared/styles/colors';\nimport { typography } from 'roh-frontend/packages/roh-react';\nimport styled from 'styled-components/macro';\n\nconst PaginationWrapper = styled.nav`\n display: flex;\n`;\n\nconst PaginationList = styled.ul`\n display: flex;\n justify-content: flex-end;\n width: 100%;\n background-color: ${LPColors.white};\n border-top: 1px solid ${LPColors.whiteSmoke};\n padding: 0;\n margin: 40px 0 0;\n\n &.align-left {\n justify-content: flex-start;\n }\n\n /* override prismics styles in order to not brake existing ones */\n h1 {\n ${typography.smallBody}\n }\n`;\n\nconst PaginationListItem = styled.li`\n list-style: none;\n display: flex;\n justify-content: ${(props: { alignRight?: boolean }) =>\n props.alignRight ? 'flex-end' : 'flex-start'};\n`;\n\nconst SideControlWrapper = styled.a`\n width: 100%;\n display: flex;\n flex-direction: row;\n cursor: pointer;\n\n svg {\n margin-top: 18px;\n }\n`;\n\nconst ReversedArrow = styled.div`\n transform: rotateY(180deg);\n`;\n\nconst UnitName = styled.span`\n color: ${LPColors.crimson};\n ${typography.mediumBody}\n font-weight: ${typography.fontWeights.book};\n margin: 18px 12px 0;\n`;\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst UnitNameLighter = styled(UnitName as any)`\n font-weight: ${typography.fontWeights.light};\n`;\n\nconst UnitTag = styled.div`\n font-weight: ${typography.fontWeights.light};\n text-align: end;\n`;\n\nconst WarningWrapper = styled.div`\n margin-top: 18px;\n`;\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst UnitTagNormal = styled(UnitTag as any)`\n font-weight: ${typography.fontWeights.book};\n`;\n\nexport default {\n PaginationWrapper,\n PaginationList,\n PaginationListItem,\n UnitName,\n UnitTag,\n SideControlWrapper,\n UnitNameLighter,\n UnitTagNormal,\n WarningWrapper,\n ReversedArrow,\n};\n","/* eslint-disable jsx-a11y/click-events-have-key-events */\nimport React, { FunctionComponent } from 'react';\nimport LPColors from 'modules/_shared/styles/colors';\nimport { Icons } from 'roh-frontend/packages/roh-react';\nimport { RichText as RichTextType } from 'api-doc/types/learning-platform';\nimport { useSelector } from 'react-redux';\nimport { RootState } from 'store/rootReducer';\nimport UnitNavigationActions from '../UnitWrapper/UnitActionsEnum';\nimport RichText from '../../RichText';\nimport RegistrationWarning from '../../RegistrationWarning';\nimport { PaginationText } from '../../../../../helpers/consts';\nimport Styled from './styled';\n\ntype UnitPaginationControlsProps = {\n nextLessonOnlyForLogged: boolean | null | undefined;\n prevLessonOnlyForLogged: boolean | null | undefined;\n nextLessonId: string | null;\n prevLessonId: string | null;\n nextLessonName: RichTextType | null;\n prevLessonName: RichTextType | null;\n isFirst: boolean;\n isLast: boolean;\n handleClick: (\n itemId: string | null,\n type: UnitNavigationActions,\n allowedLesson?: boolean | null\n ) => void;\n};\n\nconst UnitPaginationControls: FunctionComponent<\n UnitPaginationControlsProps\n> = ({\n nextLessonOnlyForLogged,\n prevLessonOnlyForLogged,\n nextLessonName,\n prevLessonName,\n isFirst,\n isLast,\n nextLessonId,\n prevLessonId,\n handleClick,\n}) => {\n const { data: userData } = useSelector(\n (state) => state.usersDetails\n );\n\n const { isLoggedIn, isAuthorized } = userData || {};\n const isLessonAvailable = (isLessonOnlyForLogged: boolean) => {\n return (\n !isLessonOnlyForLogged ||\n (isLoggedIn && isAuthorized && isLessonOnlyForLogged)\n );\n };\n const isPagination = (isFirst && prevLessonId) || (isLast && nextLessonId);\n\n return (\n \n {isPagination && (\n \n {isFirst &&\n prevLessonId &&\n isLessonAvailable(!!prevLessonOnlyForLogged) && (\n \n \n handleClick(\n prevLessonId,\n UnitNavigationActions.REDIRECT_TO_LESSON,\n !prevLessonOnlyForLogged\n )\n }\n >\n \n \n \n \n {PaginationText.prevLesson}\n \n {prevLessonName && }\n \n \n \n \n )}\n {isLast &&\n nextLessonId &&\n isLessonAvailable(!!nextLessonOnlyForLogged) && (\n \n \n handleClick(\n nextLessonId,\n UnitNavigationActions.REDIRECT_TO_LESSON,\n !nextLessonOnlyForLogged\n )\n }\n >\n \n \n {PaginationText.nextLesson}\n \n {nextLessonName && }\n \n \n \n \n )}\n {!isAuthorized && isLast && nextLessonId && nextLessonOnlyForLogged && (\n \n \n \n {nextLessonName && }\n \n \n \n )}\n {!isAuthorized && isFirst && prevLessonId && prevLessonOnlyForLogged && (\n \n \n \n {prevLessonName && }\n \n \n \n )}\n \n )}\n \n );\n};\n\nexport default UnitPaginationControls;\n","import styled from 'styled-components/macro';\nimport { typography } from 'roh-frontend/packages/roh-react';\nimport { down } from 'modules/_shared/styles/breakpoints';\nimport LPColors from 'modules/_shared/styles/colors';\n\nexport const Wrapper = styled.article`\n display: flex;\n justify-content: space-between;\n ${typography.mediumBody};\n margin: 24px 0 0 0;\n\n ${down('tablet')} {\n flex-direction: column;\n }\n`;\n\nexport const UnitWrapper = styled.div`\n display: flex;\n flex-direction: column;\n max-width: 650px;\n\n h4 {\n margin: 0;\n font-size: 1.5em;\n }\n`;\n\nexport const UnitContent = styled.div`\n display: flex;\n flex-direction: column;\n\n > div {\n margin-bottom: 2em;\n }\n\n a {\n color: ${LPColors.crimson};\n\n :hover {\n text-decoration: underline;\n }\n }\n`;\n\nexport default {\n Wrapper,\n UnitWrapper,\n UnitContent,\n};\n","/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable react-hooks/exhaustive-deps */\nimport React, { FunctionComponent, useState, useEffect, useRef } from 'react';\nimport {\n LessonsInformation,\n UnitRelationship as UnitRelationshipType,\n UnitsApiResponseData,\n FieldTypes,\n RichTextSectionSlice,\n} from 'api-doc/types/learning-platform';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\nimport getLinkUrl from 'utils/linkResolver';\nimport getUnit from 'modules/Unit/actionCreators';\nimport { RootState } from 'store/rootReducer';\nimport { ApiCallStatus } from 'store/statesHelper';\nimport PageLoading from 'modules/_shared/ui-components/PageLoading';\nimport SlicesRenderer from 'modules/_shared/components/SlicesRenderer';\nimport useQuery from 'utils/customHooks/useQuery';\nimport PageTypes from 'utils/PageTypes';\nimport scrollToUnitRef from 'utils/scrollHelper';\nimport UnitHeading from '../UnitHeading';\nimport UnitNavigation from '../UnitNavigation';\nimport UnitNavigationDropdown from '../UnitNavigationDropdown';\nimport UnitNavigationControls from '../UnitPaginationControls';\nimport UnitNavigationActions from './UnitActionsEnum';\nimport Styled from './styled';\n\ntype UnitContentProps = {\n slice: UnitRelationshipType;\n};\n\nconst UnitWrapper: FunctionComponent = ({ slice }) => {\n const [sliceData, setData] = useState(slice);\n const [unitData, setUnitComponentData] =\n useState(null);\n const { items: unitsArray } = sliceData;\n const queryParamUnitName = useQuery();\n const [unitId, setUnitId] = useState('');\n const [unitName, setUnitName] = useState();\n const [unitIndex, setUnitIndex] = useState(0);\n const history = useHistory();\n const dispatch = useDispatch();\n const unitRef = useRef(null);\n\n const executeScroll = () => scrollToUnitRef(unitRef);\n const { data: unitStateData, status: unitStatus } = useSelector<\n RootState,\n RootState['unitPage']\n >((state) => state.unitPage);\n\n const { data: lessonData, status: lessonStatus } = useSelector<\n RootState,\n RootState['lessonPage']\n >((state) => state.lessonPage);\n\n const lessonInfoSlice: LessonsInformation = lessonData?.slices.find(\n (item) => item.sliceType === 'lessons_information'\n ) as LessonsInformation;\n\n const {\n primary: { nextLesson, prevLesson },\n } = lessonInfoSlice;\n\n const fetchUnitByUid = (uid: string) => {\n setUnitId(uid);\n dispatch(getUnit(uid));\n executeScroll();\n };\n\n const getCurrentIndex = (unitIdValue: string) =>\n slice?.items.findIndex(({ uid }) => uid === unitIdValue);\n\n const getCurrentUnitName = (unitIdValue: string) =>\n slice?.items.find(({ uid }) => uid === unitIdValue)?.name;\n\n const setUnitData = (uid: string) => {\n setUnitName(getCurrentUnitName(uid));\n setUnitIndex(getCurrentIndex(uid));\n setUnitId(uid);\n setData({\n ...sliceData,\n });\n };\n\n useEffect(() => {\n const queryUid = queryParamUnitName.get('uid');\n const initialUid: string = queryUid || unitsArray[0].uid;\n dispatch(getUnit(initialUid));\n setUnitData(initialUid);\n }, []);\n\n useEffect(() => {\n if (!unitStateData) return;\n /**\n * Workaround to prevent Content team from having to delete titles manually from\n * 800 units. Unit titles are now being rendered from title input so Content should\n * only have to enter this once per unit in Prismic.\n */\n if (\n unitStateData.primary &&\n unitStateData.slices.length &&\n unitStateData.slices[0].items?.length &&\n isRichText(unitStateData.slices[0])\n ) {\n const richTextSlice = unitStateData.slices[0] as RichTextSectionSlice;\n if (\n richTextSlice.items[0].formattedText.value ===\n `

${unitStateData.primary.name}

`\n ) {\n const replaceFirstItem = [\n {\n ...richTextSlice.items[0],\n formattedText: {\n ...richTextSlice.items[0].formattedText,\n value: '',\n },\n },\n ...richTextSlice.items.slice(1),\n ];\n\n setUnitComponentData({\n ...unitStateData,\n slices: [\n {\n ...(unitStateData.slices[0] as RichTextSectionSlice),\n items: replaceFirstItem,\n },\n ...unitStateData.slices.slice(1),\n ],\n });\n return;\n }\n }\n setUnitComponentData(unitStateData);\n }, [unitStateData]);\n\n /* eslint-disable @typescript-eslint/no-explicit-any */\n const isRichText = (section: any): boolean =>\n section.sliceType === 'rich_text_section';\n\n const handleClick = (\n itemId: string | null,\n type: UnitNavigationActions,\n allowedLesson?: boolean | null\n ) => {\n if (!itemId) return;\n\n switch (type) {\n case UnitNavigationActions.LOAD_UNIT:\n fetchUnitByUid(itemId);\n break;\n case UnitNavigationActions.REDIRECT_TO_LESSON:\n history.push(\n getLinkUrl({\n type: FieldTypes.LINKDOCUMENT,\n value: {\n type: PageTypes.LESSON_PAGE,\n uid: allowedLesson ? `${itemId}?allow=true` : itemId,\n },\n })\n );\n break;\n default:\n break;\n }\n };\n\n const getProps = () => {\n const currentUnitIndex = getCurrentIndex(unitId);\n\n return {\n nextLessonOnlyForLogged: nextLesson && nextLesson.value.onlyForLogged,\n prevLessonOnlyForLogged: prevLesson && prevLesson.value.onlyForLogged,\n nextLessonName: nextLesson && nextLesson.value.title,\n prevLessonName: prevLesson && prevLesson.value.title,\n nextLessonId: nextLesson && nextLesson.value.uid,\n prevLessonId: prevLesson && prevLesson.value.uid,\n isFirst: currentUnitIndex === 0,\n isLast: unitsArray.length === currentUnitIndex + 1,\n handleClick,\n };\n };\n\n return (\n \n \n {lessonStatus === ApiCallStatus.LOADING && }\n {lessonStatus === ApiCallStatus.SUCCESS && (\n \n {unitStatus === ApiCallStatus.LOADING && }\n {unitStatus === ApiCallStatus.SUCCESS && unitData && (\n <>\n \n \n \n \n \n )}\n {unitData && lessonData && }\n \n )}\n \n \n );\n};\n\nexport default UnitWrapper;\n","import styled from 'styled-components/macro';\nimport { down } from 'modules/_shared/styles/breakpoints';\n\nexport const Container = styled.div`\n display: flex;\n flex-wrap: wrap;\n flex-direction: row;\n justify-content: space-between;\n width: 100%;\n\n ${down('tablet')} {\n width: 100%;\n padding: 0 12px;\n }\n`;\n\nexport const VideoItemWrapper = styled.div`\n display: flex;\n flex-direction: column;\n flex: 0 0 360px;\n margin: 0 0 16px;\n\n iframe {\n width: 100%;\n height: 200px;\n border: none;\n }\n\n h6 {\n margin: 24px 0 16px;\n font-size: 20px;\n line-height: 28px;\n }\n\n p {\n margin: 0 0 24px;\n\n :empty,\n :blank {\n display: none;\n }\n }\n`;\n\nexport default {\n Container,\n VideoItemWrapper,\n};\n","import React, { FunctionComponent } from 'react';\nimport {\n ListOfVideos,\n ListOfVideosItems as VideoItem,\n} from 'api-doc/types/learning-platform';\nimport RichText from '../RichText';\nimport Styled from './styled';\n\ntype ListOfVideosProps = {\n slice: ListOfVideos;\n};\n\nconst ListOfVideosComponent: FunctionComponent = ({\n slice,\n}) => {\n const { items } = slice;\n\n return (\n \n {items?.map((item: VideoItem, idx: number) => {\n const { description, title, video } = item;\n return (\n \n \n \n \n \n );\n })}\n \n );\n};\n\nexport default ListOfVideosComponent;\n","import React, { FunctionComponent } from 'react';\nimport { PageTitle as PageTitleSlice } from 'api-doc/types/learning-platform';\nimport RichText from '../RichText';\n\ntype PageTitleProps = {\n slice: PageTitleSlice;\n};\n\nconst PageTitle: FunctionComponent = ({\n slice: { primary },\n}) => {\n const { title } = primary;\n\n return title && ;\n};\n\nexport default PageTitle;\n","import styled, { css } from 'styled-components/macro';\nimport { typography } from 'roh-frontend/packages/roh-react';\nimport { down, only } from 'modules/_shared/styles/breakpoints';\nimport LPColors from 'modules/_shared/styles/colors';\nimport { textDescription } from '../CoursesListItem/styled';\n\nexport const textCta = css`\n font-size: 14px;\n line-height: 18px;\n font-weight: 400;\n`;\n\nconst Info = styled.div`\n display: flex;\n flex-direction: column;\n padding: 40px 0 32px 0;\n\n ${down('tablet')} {\n padding: 16px 16px 8px 16px;\n }\n`;\n\nconst Details = styled.ul`\n display: flex;\n margin: 0 0 16px 0;\n padding: 0;\n`;\n\nconst DetailsItem = styled.li`\n display: block;\n position: relative;\n\n > span {\n ${typography.mediumBody};\n font-weight: 500;\n }\n\n &:not(:last-child):after {\n display: inline-block;\n content: '•';\n margin: 0 14px;\n\n ${only('mobile')} {\n margin: 0 8px;\n }\n }\n`;\n\nconst Container = styled.li`\n display: grid;\n grid-template-columns: 1fr auto 1fr;\n grid-gap: 32px;\n background-color: ${LPColors.white};\n border-bottom: 32px solid ${LPColors.white};\n\n ${down('tablet')} {\n grid-template-columns: auto;\n grid-template-rows: 1fr auto auto;\n grid-gap: 0;\n\n &:not(:nth-last-child(-n + 2)) {\n margin-bottom: 16px;\n }\n }\n\n ${down('mobile')} {\n max-width: none;\n width: 100%;\n\n &:not(:last-child) {\n margin-bottom: 16px;\n }\n }\n`;\n\nconst CoverImage = styled.img`\n object-fit: cover;\n width: 260px;\n height: 260px;\n\n ${down('tablet')} {\n width: 100%;\n height: 154px;\n }\n`;\n\nconst Title = styled.h4`\n display: flex;\n margin: 0 0 16px 0;\n ${typography.mediumHeading};\n`;\n\nconst Description = styled.div`\n > p {\n display: inline;\n margin: 0;\n ${textDescription};\n }\n`;\n\nconst Link = styled.a`\n display: flex;\n justify-content: center;\n align-items: center;\n width: 230px;\n height: 50px;\n margin-top: 40px;\n ${textCta};\n`;\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst DisabledLink = styled(Link as any)`\n pointer-events: none;\n background-color: ${LPColors.silverChalice};\n color: ${LPColors.white};\n`;\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst CtaLink = styled(Link as any)`\n cursor: pointer;\n border: 1px solid ${LPColors.black};\n color: ${LPColors.black};\n`;\n\nexport default {\n Info,\n Details,\n DetailsItem,\n Container,\n CoverImage,\n Title,\n Description,\n DisabledLink,\n CtaLink,\n};\n","import { EventsListItems as EventsListItemsSlice } from 'api-doc/types/learning-platform';\nimport React, { FunctionComponent } from 'react';\nimport getLinkUrl, { getLinkTarget } from 'utils/linkResolver';\nimport RichText from '../RichText';\nimport Styled from './styled';\n\ntype EventsListItemsProps = {\n slice: EventsListItemsSlice;\n};\n\ntype DetailsItemsProps = {\n details: string[];\n};\n\nconst EVENT_STATES = {\n ACTIVE: 'Active',\n DISABLED: 'Disabled',\n};\n\nconst RenderDetailsItems: FunctionComponent = ({\n details,\n}) => {\n return (\n \n {details.map((item: string, idx: number) => (\n \n {item}\n \n ))}\n \n );\n};\n\nconst EventsListItems: FunctionComponent = ({\n slice,\n}) => {\n const {\n ctaLink,\n ctaText,\n dateDetails,\n description,\n details,\n disabledCtaText,\n title,\n image,\n eventState,\n } = slice;\n const { url: imageUrl, alt: imageAlt } = image.value;\n\n return (\n \n \n\n \n \n {title}\n \n \n \n \n \n\n {eventState.value === EVENT_STATES.DISABLED && (\n {disabledCtaText}\n )}\n\n {eventState.value === EVENT_STATES.ACTIVE && (\n \n {ctaText}\n \n )}\n \n );\n};\n\nexport default EventsListItems;\n","import styled from 'styled-components/macro';\n\nconst EventsListWrapper = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nconst EventsListHeading = styled.div`\n display: block;\n padding-left: 100px;\n`;\n\nconst EventsList = styled.ul`\n display: flex;\n list-style: none;\n flex-direction: column;\n padding: 0;\n`;\n\nexport default {\n EventsListWrapper,\n EventsListHeading,\n EventsList,\n};\n","import { EventsList as EventsListSlice } from 'api-doc/types/learning-platform';\nimport React, { FunctionComponent } from 'react';\nimport RichText from '../RichText';\nimport EventsListItems from '../EventsListItems';\nimport Styled from './styled';\n\ntype EventsListProps = {\n slice: EventsListSlice;\n};\n\nconst EventsList: FunctionComponent = ({ slice }) => {\n const { primary, items } = slice;\n const { title } = primary;\n\n return (\n \n \n \n \n \n {items.map((item, idx) => (\n \n ))}\n \n \n );\n};\n\nexport default EventsList;\n","import styled from 'styled-components/macro';\n\nconst EventsListWrapper = styled.div`\n display: flex;\n flex-direction: column;\n margin-top: 120px;\n`;\n\nconst EventsListHeading = styled.div`\n display: block;\n padding-left: 100px;\n`;\n\nconst EventsList = styled.ul`\n display: flex;\n list-style: none;\n flex-direction: column;\n padding: 0;\n`;\n\nexport default {\n EventsListWrapper,\n EventsListHeading,\n EventsList,\n};\n","import styled from 'styled-components/macro';\nimport LPColors from 'modules/_shared/styles/colors';\nimport { typography } from 'roh-frontend/packages/roh-react';\n\nconst Container = styled.li`\n display: flex;\n flex-direction: column;\n justify-content: center;\n background-color: ${LPColors.whiteSmoke};\n padding-bottom: 50px;\n\n h4 {\n ${typography.mediumHeading};\n align-self: center;\n margin-bottom: 16px;\n }\n\n p {\n max-width: 650px;\n align-self: center;\n }\n`;\n\nexport default {\n Container,\n};\n","import React, { FunctionComponent } from 'react';\nimport Styled from './styled';\n\nconst EmptyEventBriteItem: FunctionComponent = () => {\n return (\n \n

No events available

\n

\n We have no further teacher training opportunities planned for this year.\n Details of our teacher training events for 2022 will be announced in\n November 2021. If you can’t find a CPD event for your area and would\n like to host a bespoke online CPD event, we will gladly work with you to\n do so.\n

\n
\n );\n};\n\nexport default EmptyEventBriteItem;\n","import {\n EventBrightEvents as EventBrightEventsSlice,\n EventBrightEventsItems,\n} from 'api-doc/types/learning-platform';\nimport React, { FunctionComponent } from 'react';\nimport SlicesRenderer from '../../components/SlicesRenderer';\nimport Styled from './styled';\nimport EmptyEventBriteItem from './EmptyEventBriteItem';\n\ntype EventsListProps = {\n slice: EventBrightEventsSlice;\n};\n\nconst EventBriteList: FunctionComponent = ({ slice }) => {\n const {\n primary: { enableEventBright },\n items,\n } = slice;\n\n return enableEventBright ? (\n \n \n {items.length > 0 ? (\n items.map(\n (\n { relationship: { slices } }: EventBrightEventsItems,\n idx: number\n ) => \n )\n ) : (\n \n )}\n \n \n ) : null;\n};\n\nexport default EventBriteList;\n","import styled, { css } from 'styled-components/macro';\nimport { typography } from 'roh-frontend/packages/roh-react';\nimport { down, only } from 'modules/_shared/styles/breakpoints';\nimport LPColors from 'modules/_shared/styles/colors';\n\nexport const textDescription = css`\n font-size: 13px;\n line-height: 21px;\n font-weight: 400;\n`;\n\nexport const textCta = css`\n font-size: 14px;\n line-height: 18px;\n font-weight: 400;\n`;\n\nconst Info = styled.div`\n display: flex;\n flex-direction: column;\n padding: 40px 0 32px;\n max-width: 585px;\n\n ${down('tablet')} {\n padding: 16px 16px 8px 0;\n max-width: 100%;\n }\n\n h1,\n h3,\n h4,\n h5,\n h6 {\n margin: 16px 0;\n max-width: 550px;\n /* Important tags are overriding bad data flow - pattern used too often to remove at source */\n font-size: 20px !important;\n font-weight: 400 !important;\n }\n`;\n\nconst Details = styled.ul`\n display: flex;\n margin: 0 0 16px 0;\n padding: 0;\n`;\n\nconst DetailsItem = styled.li`\n display: block;\n position: relative;\n\n > span {\n ${typography.mediumBody};\n font-weight: 500;\n }\n\n &:not(:last-child):after {\n display: inline-block;\n content: '•';\n margin: 0 14px;\n\n ${only('mobile')} {\n margin: 0 8px;\n }\n }\n`;\n\nconst Container = styled.li`\n display: grid;\n grid-template-columns: 1fr auto 1fr;\n grid-gap: 32px;\n background-color: ${LPColors.white};\n border-bottom: 32px solid ${LPColors.white};\n\n ${down('tablet')} {\n grid-template-columns: auto;\n grid-template-rows: 1fr auto auto;\n grid-gap: 0;\n\n &:not(:nth-last-child(-n + 2)) {\n margin-bottom: 16px;\n }\n }\n\n ${down('mobile')} {\n max-width: none;\n width: 100%;\n\n &:not(:last-child) {\n margin-bottom: 16px;\n }\n }\n`;\n\nconst CoverImage = styled.img`\n object-fit: cover;\n width: 260px;\n height: 260px;\n\n ${down('tablet')} {\n width: 100vw;\n height: auto;\n margin: 0 -24px;\n aspect-ratio: 4 / 3;\n }\n`;\n\nconst Description = styled.div`\n > p {\n display: inline;\n margin: 0;\n ${textDescription};\n }\n`;\n\nconst Link = styled.a`\n display: flex;\n justify-content: center;\n align-items: center;\n width: 230px;\n height: 50px;\n\n ${down('tablet')} {\n margin: 0 auto;\n width: 100%;\n }\n ${textCta};\n`;\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst CtaLink = styled(Link as any)`\n cursor: pointer;\n background-color: ${(props: { color?: string }) =>\n props.color ? props.color : LPColors.black};\n color: ${LPColors.white};\n align-self: end;\n`;\n\nconst CtaText = styled.span`\n display: inline-block;\n margin-left: 11px;\n ${textCta};\n`;\n\nconst CtaLinkWrapper = styled.div`\n display: flex;\n flex-direction: column;\n margin-top: 40px;\n ${down('tablet')} {\n margin-top: 16px;\n }\n`;\n\nconst Prices = styled.div`\n > p {\n display: flex;\n justify-content: flex-end;\n ${typography.smallHeading};\n font-weight: normal;\n }\n\n > p:last-child {\n margin-bottom: 15px;\n ${down('tablet')} {\n margin-right: 0;\n margin-left: auto;\n display: block;\n }\n }\n`;\n\nexport default {\n Info,\n Details,\n DetailsItem,\n Container,\n CoverImage,\n Description,\n CtaLink,\n CtaText,\n CtaLinkWrapper,\n Prices,\n};\n","import {\n EventDetails as EventDetailsSlice,\n EventTypeOptionsValueEnum,\n EventTypeOptions,\n} from 'api-doc/types/learning-platform';\nimport React, { FunctionComponent } from 'react';\nimport { colors, Icons } from 'roh-frontend/packages/roh-react';\nimport LPColors from 'modules/_shared/styles/colors';\nimport RichText from '../../RichText';\nimport getLinkUrl, { getLinkTarget } from '../../../../../utils/linkResolver';\nimport ItemDetails from '../../ItemDetails';\nimport Styled from './styled';\n\ntype EventBriteListProps = {\n slice: EventDetailsSlice;\n};\n\nconst getColor = ({ value }: EventTypeOptions) => {\n switch (value) {\n case EventTypeOptionsValueEnum.Ballet:\n return LPColors.persimmon;\n case EventTypeOptionsValueEnum.Opera:\n return LPColors.brightBlue;\n case EventTypeOptionsValueEnum.Theatrecraft:\n return LPColors.kellyGreen;\n case EventTypeOptionsValueEnum.Empty:\n return LPColors.white;\n default:\n return LPColors.white;\n }\n};\n\nconst EventBriteItem: FunctionComponent = ({ slice }) => {\n const {\n ctaLink,\n ctaText,\n dates,\n description,\n details,\n title,\n image,\n eventType,\n price,\n } = slice.primary;\n const { url: imageUrl, alt: imageAlt } = image.value;\n\n return (\n \n \n\n \n {details.length > 0 && (\n \n )}\n \n {dates.length > 0 && (\n \n )}\n \n \n \n \n\n \n {price && (\n \n \n \n )}\n \n \n {ctaText}\n \n \n \n );\n};\n\nexport default EventBriteItem;\n","import { only } from 'modules/_shared/styles/breakpoints';\nimport { typography } from 'roh-frontend/packages/roh-react';\nimport styled from 'styled-components/macro';\n\ntype TableProps = {\n cols: number;\n};\n\nconst Container = styled.div`\n margin-top: 26px;\n width: 100%;\n`;\n\nconst TableWrapper = styled.div`\n width: 100%;\n display: grid;\n grid-template-columns: repeat(\n ${(props: TableProps) => props.cols},\n minmax(100px, 1fr)\n );\n grid-gap: 20px;\n\n ${only('mobile')} {\n grid-template-columns: repeat(1, 1fr);\n }\n\n .column-header {\n font-size: 16px;\n font-weight: 500;\n }\n`;\n\nconst Cell = styled.div`\n width: 100%;\n font-size: 14px;\n`;\n\nconst Title = styled.div`\n margin: 24px 0;\n ${typography.bodyHeading};\n font-weight: 400;\n line-height: 28px;\n`;\n\nexport default {\n Container,\n Title,\n TableWrapper,\n Cell,\n};\n","/* eslint-disable no-plusplus */\nimport React, { FunctionComponent } from 'react';\nimport { TableContent as TableContentSlice } from 'api-doc/types/learning-platform';\nimport Styled from './styled';\n\ntype TableProps = {\n slice: TableContentSlice;\n};\n\ntype TableItem = { [name: string]: string[] };\n\nconst TableContent: FunctionComponent = ({ slice }) => {\n const { primary, items } = slice;\n const { title } = primary;\n\n const generateTable = (tableObj: TableItem) => {\n const maxColLength = Math.max(\n ...Object.values(tableObj).map((val) => val.length)\n );\n const columnsCount = Object.keys(tableObj).length;\n const columns = Object.entries(tableObj);\n const linearData: string[] = [];\n const columnContentArray: string[][] = [];\n\n // fill column names\n columns.forEach((col: [string, string[]]) => {\n const name = col[0];\n columnContentArray.push(col[1]);\n linearData.push(name);\n });\n\n // fill columns row by row\n for (let i = 0; i < maxColLength; i++) {\n for (let j = 0; j < columnsCount; j++) {\n linearData.push(columnContentArray[j][i]);\n }\n }\n\n return (\n \n {linearData.map((str: string, idx: number) => {\n const cellClass = idx < columnsCount ? 'column-header' : 'cell';\n return (\n \n {str}\n \n );\n })}\n \n );\n };\n return (\n \n {title && {title}}\n {items[0] && generateTable(items[0] as TableItem)}\n \n );\n};\n\nexport default TableContent;\n","import styled from 'styled-components/macro';\nimport { down } from 'modules/_shared/styles/breakpoints';\n\n/**\n * This wrapper needs to amend styles to align with Schools,\n * as they come in from Chord.\n */\n\ninterface AccordionWrapperProps {\n isTopSlice: boolean;\n}\n\nexport const AccordionWrapper = styled.div`\n ${(props) => props.isTopSlice && 'margin-top: 28px'}\n margin-bottom: 2em;\n\n h4 {\n margin: 1em 0;\n font-size: inherit;\n }\n\n .accordion-title {\n color: inherit;\n :hover {\n text-decoration: none;\n }\n }\n\n ul,\n ol {\n margin-bottom: 1.5em;\n }\n\n p,\n li {\n font-size: 14px;\n line-height: 22px;\n font-weight: 300;\n }\n\n img {\n width: 100%;\n }\n\n ${down('tablet')} {\n p,\n li {\n font-size: 13px;\n }\n }\n\n ${down('mobile')} {\n p,\n li {\n font-size: 12px;\n }\n }\n`;\n\nexport default {\n AccordionWrapper,\n};\n","import React, { FunctionComponent } from 'react';\nimport { AccordionSlice } from 'api-doc/types/learning-platform';\nimport { Accordions } from '@royaloperahouse/chord';\nimport RichText from '../RichText';\nimport Styled from './styled';\n\ntype AccordionSliceProps = {\n slice: AccordionSlice;\n idx: number;\n};\n\nconst AccordionSliceComponent: FunctionComponent = ({\n slice,\n idx,\n}) => {\n const accordionItems = slice.items\n .filter((item) => {\n return !!item.sectionTitle;\n })\n .map((item) => {\n return {\n title: item.sectionTitle,\n visibleStandfirst: item.visibleDescription?.value ? (\n \n ) : null,\n children: item.collapsibleContent?.value ? (\n \n ) : null,\n };\n });\n\n return (\n \n \n \n );\n};\n\nexport default AccordionSliceComponent;\n","import React, { FunctionComponent } from 'react';\nimport {\n AdditionalResources as AdditionalResourcesSlice,\n CarouselTraySection,\n CourseInfo as CourseInfoSlice,\n AsideContent as CourseAsideContentSlice,\n CoursesList as CoursesListSlice,\n CoverImageHeader as CoverImageHeaderSlice,\n ProgrammeInfo as ProgrammeInfoSlice,\n LessonsInformation as LessonsInformationSlice,\n UnitRelationship as UnitRelationshipSlice,\n RichTextSectionSlice,\n SetOfCards as SetOfCardsSlice,\n SetOfProgrammes as SetOfProgrammesSlice,\n SliceTypes,\n ListOfLessons,\n ListOfVideos,\n UsefulLinks as UsefulLinksType,\n PageTitle as PageTitleType,\n EventsList as EventsListType,\n TableContent as TableContentSlice,\n AccordionSlice,\n} from 'api-doc/types/learning-platform';\nimport CarouselTray from 'modules/_shared/ui-components/CarouselTray';\nimport CoverImageHeader from 'modules/_shared/ui-components/CoverImageHeader';\nimport SetOfCards from 'modules/_shared/ui-components/SetOfCards';\nimport SetOfProgrammes from 'modules/_shared/ui-components/SetOfProgrammes';\nimport CoursesList from 'modules/_shared/ui-components/CoursesList';\nimport RichTextSlice from 'modules/_shared/ui-components/RichTextSlice';\nimport ProgrammeBanner from 'modules/_shared/ui-components/ProgrammeBanner';\nimport AdditionalResources from 'modules/_shared/ui-components/AdditionalResources';\nimport CourseInfo from 'modules/_shared/ui-components/CourseInfo';\nimport CourseAsideContent from 'modules/_shared/ui-components/CourseAsideContent';\nimport LessonsListComponent from 'modules/_shared/ui-components/LessonsList';\nimport LessonsInformation from 'modules/_shared/ui-components/LessonInformation';\nimport UnitWrapper from 'modules/_shared/ui-components/Units/UnitWrapper';\nimport ListOfVideosComponent from 'modules/_shared/ui-components/ListOfVideos';\nimport UsefulLinksComponent from 'modules/_shared/ui-components/UsefulLinks';\nimport PageTitle from 'modules/_shared/ui-components/PageTitle';\nimport { UnknownSlice } from 'utils/commonTypes';\nimport EventsList from 'modules/_shared/ui-components/EventsList';\nimport { EventBrightEvents } from 'api-doc/types/learning-platform/event-bright-events';\nimport { EventDetails as EventDetailsSlice } from 'api-doc/types/learning-platform/event-details';\nimport EventBriteList from 'modules/_shared/ui-components/EventBriteComponent';\nimport EventBriteItem from 'modules/_shared/ui-components/EventBriteComponent/EventBriteItem';\nimport TableContent from 'modules/_shared/ui-components/Table';\nimport AccordionSliceComponent from 'modules/_shared/ui-components/Accordion/AccordionSlice.component';\n\ntype SlicesRendererProps = {\n slices: Array;\n ImgWrapper?: (props: { children: React.ReactNode }) => JSX.Element;\n};\n\nconst SlicesRenderer: FunctionComponent = ({\n slices,\n ImgWrapper,\n}) => {\n return (\n <>\n {slices.map((slice, idx) => {\n switch (slice.sliceType) {\n case SliceTypes.CarouselTray: {\n return (\n \n );\n }\n case SliceTypes.CoverImageHeader: {\n return (\n \n );\n }\n case SliceTypes.SetOfCards: {\n return ;\n }\n case SliceTypes.SetOfProgrammes: {\n return (\n \n );\n }\n case SliceTypes.CoursesList: {\n return ;\n }\n case SliceTypes.LessonsInformation: {\n return (\n \n );\n }\n case SliceTypes.UnitRelationship: {\n return (\n \n );\n }\n case SliceTypes.ProgrammeInfo: {\n return (\n \n );\n }\n case SliceTypes.ListOfVideos: {\n return (\n \n );\n }\n case SliceTypes.AdditionalResources: {\n return (\n \n );\n }\n case SliceTypes.Accordion: {\n return (\n \n );\n }\n case SliceTypes.CourseInformation: {\n return ;\n }\n case SliceTypes.AsideContent: {\n return (\n \n );\n }\n case SliceTypes.ListOfLessons: {\n return (\n \n );\n }\n case SliceTypes.RichTextSection: {\n return (\n \n );\n }\n case SliceTypes.EventInformation: {\n return ;\n }\n case SliceTypes.RequestedCourses: {\n return ;\n }\n case SliceTypes.UsefulLink: {\n return (\n \n );\n }\n case SliceTypes.PageTitle: {\n return ;\n }\n case SliceTypes.EventsList: {\n return ;\n }\n case SliceTypes.EventBrightEvents: {\n return (\n \n );\n }\n case SliceTypes.EventDetails: {\n return (\n \n );\n }\n case SliceTypes.TableContent: {\n return (\n \n );\n }\n default:\n return null;\n }\n })}\n \n );\n};\n\nexport default SlicesRenderer;\n"],"names":["uid","type","Actions","GET_UNIT","payload","extraConfig","params","Container","styled","div","only","props","showOnMobile","ArrowLine","className","viewBox","fill","d","Header","typography","mediumHeading","Description","smallBody","Arrow","AnimatedArrow","colors","crimson","Link","a","LPColors","wildSand","black","white","Image","CardContainerWrapper","CoverImage","img","up","down","CardContainer","Styled","header","description","coverImage","trayLink","isImageGalleryItem","src","value","url","alt","target","getLinkTarget","href","getLinkUrl","CarouselTray","isImageGallery","ButtonsContainer","ControlButton","button","inversed","count","slice","primary","trays","items","useState","pos","setPos","updatePos","val","length","orderedTrays","onClick","Icons","ArrowIcon","color","map","trayProps","index","key","TopBanner","HeaderContainer","h1","headerPart1","headerPart2","LineHeader","cardColor","CardButton","Title","bodyHeading","ButtonText","card","title","cardImage","ctaLink","ctaLinkText","CardWrapper","cards","idx","span","program","image","link","imageUrl","imageAlt","ProgrammesWrapper","ProgrammesTitle","h3","smallHeading","ProgrammesList","programmes","Wrapper","reverseX","desktopSize","tabletSize","mobileSize","Camera","width","height","xmlns","CraftMaterial","fillRule","clipRule","SketchBooks","MusicIcon","Shorts","PlayButton","AllSidesArrow","Download","stroke","LessonPlan","strokeWidth","strokeLinecap","strokeLinejoin","SlideShow","id","IconWrapper","React","dataRoh","icon","IconComponent","displayName","CameraIcon","DownloadIcon","LessonPlanIcon","SlideShowIcon","video","allow","frameBorder","allowFullScreen","AUDIO_CONFIG","ADD_TAGS","ADD_ATTR","PDF_CONFIG","FORCE_BODY","SOURCES","sourceChecker","data","includes","sanitizedData","__html","DOMPurify","dangerouslySetInnerHTML","H1","H2","h2","H3","H4","h4","H5","h5","H6","h6","P","p","options","replace","domNode","DomHandlerElement","node","domNodeCopy","children","child","name","attribs","origin","window","location","path","completeInternalLinks","domToReact","text","ImgWrapper","parsed","parse","textDescription","css","textCta","textPrice","Info","Details","ul","firstElementColor","whiteSmoke","DetailsItem","li","mediumBody","Prices","CtaLinkWrapper","CtaLink","CtaText","RenderDetailsItems","details","item","ctaText","prices","isOfferPage","isRequestedCourses","undefined","cta_text","cta_link","categoryColor","List","CoursesList","body","SupportedBy","supportedBy","supported_by","isCoursesListSliceTypeGuard","CoursesListItems","offer_page","RequestedCoursesItemsList","LineDazzlerContent","DefaultImageWrapper","CenteredContainer","LefAlignedContainer","AsideContainer","VideoContainer","LefAlignedVideoContainer","AudioContainer","DescribedVideoListContainer","WrapperOptionsValueEnum","LineDazzler","CenteredLineDazzler","AsideLineDazzler","Video","CenteredVideo","LeftAlignedVideo","LeftAlignedText","Track","Centered","Aside","Empty","texts","formattedTextWrapper","formattedText","BannerContainer","DescriptionContainer","BannerImageContainer","BannerImage","resource","BannerBreadcrumbs","RightArrow","silverChalice","BottomArrow","ExpandArrowContainer","expanded","actionHandler","Summary","ContentWrapper","SummaryContent","OptionSideBlock","section","isAuthorized","label","open","sideComponent","notForRegistered","setIsExpanded","fullDescription","shortDescription","rawText","split","descriptionShortener","hasAccess","AccordionWrapper","makePx","BREAKPOINTS","desktop","DetailsWrapper","alto","getOptions","optionLabel","childComponent","AccordionContent","option","Lock","RegistrationMessages","notRegistered","notAuthorized","PaginationText","nextLesson","prevLesson","UserRoles","RegistrationWarning","darkGrey","alignLeft","InnerBlock","isLoggedIn","Routes","ACCOUNT_EDIT_ABOUT_YOU","toString","ACCOUNT_SIGNIN","useSelector","state","usersDetails","accordionData","itemDescription","itemTitle","relationship","slices","getChildComponent","largeHeading","Form","form","ModalActions","CustomModalStyles","content","top","left","right","bottom","marginRight","transform","padding","Overlay","Modal","onClosed","certUrl","modalIsOpen","setModalIsOpen","enableLoader","setEnableLoader","downloadCertificate","fetch","method","then","resp","json","catch","pdfLink","headers","blob","Blob","document","createElement","URL","createObjectURL","download","Date","toLocaleDateString","click","parentNode","removeChild","isOpen","onRequestClose","style","Loader","onSubmit","event","preventDefault","CtaSecondaryNegative","CtaSecondary","LinkComponentContainer","LinkWrapper","LinkText","buttonView","linkText","iconName","bgColor","Colors","Black","parsedLinks","linkType","initialData","UsefulLinkOptionsValueEnum","extendedData","Resource","Email","EmailIcon","Document","Button","component","CourseAsideContent","Certificate","CtaButton","linksArray","cert","certificate","certificateLink","openModal","setIsOpen","userData","status","ApiCallStatus","LOADING","PageLoading","SUCCESS","role","sliceType","SliceTypes","UsefulLink","sliceLabel","FieldTypes","RICHTEXT","headingLevel","matchPattern","RegExp","newHeading","String","Information","Options","Units","DetailsList","DetailsListItem","Column","SubTitle","ListSection","OptionsWrapper","RequirementsOptions","EMPTY_SPACE","CRAFT_MATERIALS","SKETCHBOOKS","LESSON_FILM","MUSIC","PE_KIT","MEANS_OF_CAPTURE","list","ref","scrollTo","current","offsetTop","FileFormat","rel","fileFormat","PDF","PPTX","getFileFormat","chunks","toLowerCase","Object","values","downloads","assets","filter","asset","assetLink","assetLabel","OutcomesWrapper","outcomes","CurriculumWrapper","curriculum","ListWrapper","baseUrl","getUnitRelatedUrl","baseUrlStr","URLSearchParams","hasQueryParam","RenderDetailsList","lessonBaseUrl","requirements","lessonDownloads","curriculumList","unitsListTitle","lessonRef","useRef","useEffect","scrollToUnitRef","AccordionOverride","ButtonWrapper","lessonInfo","find","unitRelation","unitsList","units","emptyRichText","outerAccordionData","onlyForLogged","innerAccordionData","parseLessonsData","getRedirectUrl","LINKDOCUMENT","setHeadingType","some","e","_g","_excluded","_extends","assign","i","arguments","source","prototype","hasOwnProperty","call","apply","this","_objectWithoutProperties","excluded","sourceKeys","keys","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","SvgClock","_ref","svgRef","titleId","xmlnsXlink","x","y","points","ForwardRef","Duration","unitData","titleText","duration","UnitNavigationActions","UnitNavigation","Nav","nav","ListItem","active","navItems","handleClick","activeId","LOAD_UNIT","Dropdown","isExpanded","activeTitle","setActiveTitle","unit","PaginationWrapper","PaginationList","PaginationListItem","alignRight","SideControlWrapper","ReversedArrow","UnitName","fontWeights","book","UnitNameLighter","light","UnitTag","WarningWrapper","UnitTagNormal","nextLessonOnlyForLogged","prevLessonOnlyForLogged","nextLessonName","prevLessonName","isFirst","isLast","nextLessonId","prevLessonId","isLessonAvailable","isLessonOnlyForLogged","isPagination","REDIRECT_TO_LESSON","article","UnitWrapper","UnitContent","sliceData","setData","setUnitComponentData","unitsArray","queryParamUnitName","useQuery","unitId","setUnitId","setUnitName","setUnitIndex","history","useHistory","dispatch","useDispatch","unitRef","unitPage","unitStateData","unitStatus","lessonPage","lessonData","lessonStatus","fetchUnitByUid","getUnit","getCurrentIndex","unitIdValue","findIndex","setUnitData","getCurrentUnitName","initialUid","get","isRichText","richTextSlice","replaceFirstItem","itemId","allowedLesson","push","PageTypes","LESSON_PAGE","currentUnitIndex","getProps","VideoItemWrapper","DisabledLink","EVENT_STATES","dateDetails","disabledCtaText","eventState","EventsListWrapper","EventsListHeading","EventsList","enableEventBright","getColor","EventTypeOptionsValueEnum","Ballet","persimmon","Opera","brightBlue","Theatrecraft","kellyGreen","dates","eventType","price","TableWrapper","cols","Cell","tableObj","maxColLength","Math","max","columnsCount","columns","entries","linearData","columnContentArray","forEach","col","j","str","cellClass","generateTable","isTopSlice","accordionItems","sectionTitle","visibleStandfirst","visibleDescription","collapsibleContent","CoverImageHeader","SetOfCards","SetOfProgrammes","LessonsInformation","UnitRelationship","ProgrammeInfo","ListOfVideos","AdditionalResources","Accordion","CourseInformation","AsideContent","ListOfLessons","RichTextSection","EventInformation","RequestedCourses","PageTitle","EventBrightEvents","EventDetails","TableContent"],"sourceRoot":""}