@clickview/lite 0.55.3-rc.1 → 0.56.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundles.json +1 -1
- package/dist/css/{431-lite-c2c2516537.chunk.css → 2992-lite-3ecbb95727.chunk.css} +1 -0
- package/dist/css/{6054-lite-0b2c72f84f.chunk.css → 3490-lite-74b16654a2.chunk.css} +1 -0
- package/dist/css/{4690-lite-e90867b3fe.chunk.css → 4690-lite-656c11bf50.chunk.css} +1 -1
- package/dist/css/{729-lite-f72fc7b813.chunk.css → 4860-lite-bd73841f9b.chunk.css} +1 -1
- package/dist/css/{1019-lite-bbcf2bff27.chunk.css → 6341-lite-f146164a09.chunk.css} +3 -3
- package/dist/css/{4860-lite-f72fc7b813.chunk.css → 729-lite-bd73841f9b.chunk.css} +1 -1
- package/dist/css/{8046-lite-036035a6f0.chunk.css → 8046-lite-319bb5a9c1.chunk.css} +1 -1
- package/dist/css/{6596-lite-bb28584922.chunk.css → 8784-lite-caf4b7e145.chunk.css} +2 -2
- package/dist/css/{2548-lite-bbcf2bff27.chunk.css → 8945-lite-f146164a09.chunk.css} +3 -3
- package/dist/css/{9010-lite-bb28584922.chunk.css → 9355-lite-caf4b7e145.chunk.css} +2 -2
- package/dist/languages/en.json +1 -1
- package/dist/scripts/{1169-3298aa69ad-lite.chunk.js → 1169-e4773094dc-lite.chunk.js} +2 -2
- package/dist/scripts/{1169-3298aa69ad-lite.chunk.js.map → 1169-e4773094dc-lite.chunk.js.map} +1 -1
- package/dist/scripts/{1379-ca519ec56b-lite.chunk.js → 1379-172a429399-lite.chunk.js} +3 -3
- package/dist/scripts/{1379-ca519ec56b-lite.chunk.js.map → 1379-172a429399-lite.chunk.js.map} +1 -1
- package/dist/scripts/{184-37af6c4675-lite.chunk.js → 184-e1311aa677-lite.chunk.js} +2 -2
- package/dist/scripts/184-e1311aa677-lite.chunk.js.map +1 -0
- package/dist/scripts/2215-a511f6f54c-lite.chunk.js +2 -0
- package/dist/scripts/2215-a511f6f54c-lite.chunk.js.map +1 -0
- package/dist/scripts/2992-c5bec5b43f-lite.chunk.js +2 -0
- package/dist/scripts/2992-c5bec5b43f-lite.chunk.js.map +1 -0
- package/dist/scripts/3490-4f3b9b1d07-lite.chunk.js +2 -0
- package/dist/scripts/3490-4f3b9b1d07-lite.chunk.js.map +1 -0
- package/dist/scripts/4013-700c541143-lite.chunk.js +3 -0
- package/dist/scripts/4013-700c541143-lite.chunk.js.map +1 -0
- package/dist/scripts/{4554-2192c26ee9-lite.chunk.js → 4554-7367f19919-lite.chunk.js} +2 -2
- package/dist/scripts/4554-7367f19919-lite.chunk.js.map +1 -0
- package/dist/scripts/4690-4abacf2ea2-lite.chunk.js +2 -0
- package/dist/scripts/4690-4abacf2ea2-lite.chunk.js.map +1 -0
- package/dist/scripts/{5220-07af32c6ce-lite.chunk.js → 5220-04f2f3bb42-lite.chunk.js} +3 -3
- package/dist/scripts/5220-04f2f3bb42-lite.chunk.js.map +1 -0
- package/dist/scripts/5936-0d3b5a9a2f-lite.chunk.js +2 -0
- package/dist/scripts/5936-0d3b5a9a2f-lite.chunk.js.map +1 -0
- package/dist/scripts/{624-09b51a9d32-lite.chunk.js → 624-2c9ac733ba-lite.chunk.js} +3 -3
- package/dist/scripts/{624-09b51a9d32-lite.chunk.js.map → 624-2c9ac733ba-lite.chunk.js.map} +1 -1
- package/dist/scripts/6262-ce32d35813-lite.chunk.js +2 -0
- package/dist/scripts/{640-c3ae02d0a7-lite.chunk.js.map → 6262-ce32d35813-lite.chunk.js.map} +1 -1
- package/dist/scripts/{2548-c48b8d3e3c-lite.chunk.js → 6341-f07132fa7c-lite.chunk.js} +2 -2
- package/dist/scripts/{2548-c48b8d3e3c-lite.chunk.js.map → 6341-f07132fa7c-lite.chunk.js.map} +1 -1
- package/dist/scripts/7076-748eef1eba-lite.chunk.js +3 -0
- package/dist/scripts/7076-748eef1eba-lite.chunk.js.map +1 -0
- package/dist/scripts/{7288-c11287ecc7-lite.chunk.js → 7288-f9ef507dd3-lite.chunk.js} +2 -2
- package/dist/scripts/7288-f9ef507dd3-lite.chunk.js.map +1 -0
- package/dist/scripts/{729-594be12089-lite.chunk.js → 729-10f6b0cef3-lite.chunk.js} +2 -2
- package/dist/scripts/{729-594be12089-lite.chunk.js.map → 729-10f6b0cef3-lite.chunk.js.map} +1 -1
- package/dist/scripts/7895-6b9c09a1e1-lite.chunk.js +2 -0
- package/dist/scripts/7895-6b9c09a1e1-lite.chunk.js.map +1 -0
- package/dist/scripts/8046-485ecb0ed7-lite.chunk.js +2 -0
- package/dist/scripts/8046-485ecb0ed7-lite.chunk.js.map +1 -0
- package/dist/scripts/8252-146bee4416-lite.chunk.js +2 -0
- package/dist/scripts/8252-146bee4416-lite.chunk.js.map +1 -0
- package/dist/scripts/8784-d6862c97bc-lite.chunk.js +2 -0
- package/dist/scripts/{6596-aa83b99b19-lite.chunk.js.map → 8784-d6862c97bc-lite.chunk.js.map} +1 -1
- package/dist/scripts/{1019-8f977b5095-lite.chunk.js → 8945-3ea21e765e-lite.chunk.js} +2 -2
- package/dist/scripts/{1019-8f977b5095-lite.chunk.js.map → 8945-3ea21e765e-lite.chunk.js.map} +1 -1
- package/dist/scripts/9355-44d72e25e0-lite.chunk.js +2 -0
- package/dist/scripts/{9010-fe4907051e-lite.chunk.js.map → 9355-44d72e25e0-lite.chunk.js.map} +1 -1
- package/dist/scripts/{9395-e1a02b01ce-lite.chunk.js → 9395-e07cb08942-lite.chunk.js} +3 -3
- package/dist/scripts/{9395-e1a02b01ce-lite.chunk.js.map → 9395-e07cb08942-lite.chunk.js.map} +1 -1
- package/dist/scripts/{9478-13da35c4ee-lite.chunk.js → 9478-250b1e9dcf-lite.chunk.js} +3 -3
- package/dist/scripts/{9478-13da35c4ee-lite.chunk.js.map → 9478-250b1e9dcf-lite.chunk.js.map} +1 -1
- package/dist/scripts/{953-225db845ab-lite.chunk.js → 953-e3f732e20e-lite.chunk.js} +3 -3
- package/dist/scripts/{953-225db845ab-lite.chunk.js.map → 953-e3f732e20e-lite.chunk.js.map} +1 -1
- package/dist/scripts/9569-c6292540d7-lite.chunk.js +2 -0
- package/dist/scripts/9569-c6292540d7-lite.chunk.js.map +1 -0
- package/dist/scripts/{bundle-360989040d.min.js → bundle-f1c26ac44d.min.js} +3 -3
- package/dist/scripts/bundle-f1c26ac44d.min.js.map +1 -0
- package/package.json +1 -1
- package/dist/scripts/1753-6aa1c10a83-lite.chunk.js +0 -2
- package/dist/scripts/1753-6aa1c10a83-lite.chunk.js.map +0 -1
- package/dist/scripts/184-37af6c4675-lite.chunk.js.map +0 -1
- package/dist/scripts/2142-d6e297d5a7-lite.chunk.js +0 -2
- package/dist/scripts/2142-d6e297d5a7-lite.chunk.js.map +0 -1
- package/dist/scripts/4013-7b878e3212-lite.chunk.js +0 -3
- package/dist/scripts/4013-7b878e3212-lite.chunk.js.map +0 -1
- package/dist/scripts/431-0487ecd6e4-lite.chunk.js +0 -2
- package/dist/scripts/431-0487ecd6e4-lite.chunk.js.map +0 -1
- package/dist/scripts/4554-2192c26ee9-lite.chunk.js.map +0 -1
- package/dist/scripts/4690-ab20eb70b5-lite.chunk.js +0 -2
- package/dist/scripts/4690-ab20eb70b5-lite.chunk.js.map +0 -1
- package/dist/scripts/5220-07af32c6ce-lite.chunk.js.map +0 -1
- package/dist/scripts/5936-13efc0f166-lite.chunk.js +0 -2
- package/dist/scripts/5936-13efc0f166-lite.chunk.js.map +0 -1
- package/dist/scripts/6054-d3677cdee9-lite.chunk.js +0 -2
- package/dist/scripts/6054-d3677cdee9-lite.chunk.js.map +0 -1
- package/dist/scripts/640-c3ae02d0a7-lite.chunk.js +0 -2
- package/dist/scripts/6596-aa83b99b19-lite.chunk.js +0 -2
- package/dist/scripts/696-2d01721d18-lite.chunk.js +0 -2
- package/dist/scripts/696-2d01721d18-lite.chunk.js.map +0 -1
- package/dist/scripts/7076-ec18ce09c9-lite.chunk.js +0 -3
- package/dist/scripts/7076-ec18ce09c9-lite.chunk.js.map +0 -1
- package/dist/scripts/7288-c11287ecc7-lite.chunk.js.map +0 -1
- package/dist/scripts/7895-78f20c123f-lite.chunk.js +0 -2
- package/dist/scripts/7895-78f20c123f-lite.chunk.js.map +0 -1
- package/dist/scripts/8046-62f4cbb4d1-lite.chunk.js +0 -2
- package/dist/scripts/8046-62f4cbb4d1-lite.chunk.js.map +0 -1
- package/dist/scripts/9010-fe4907051e-lite.chunk.js +0 -2
- package/dist/scripts/bundle-360989040d.min.js.map +0 -1
- /package/dist/css/{640-lite-45164266aa.chunk.css → 6262-lite-45164266aa.chunk.css} +0 -0
- /package/dist/scripts/{1379-ca519ec56b-lite.chunk.js.LICENSE.txt → 1379-172a429399-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{4013-7b878e3212-lite.chunk.js.LICENSE.txt → 4013-700c541143-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{5220-07af32c6ce-lite.chunk.js.LICENSE.txt → 5220-04f2f3bb42-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{624-09b51a9d32-lite.chunk.js.LICENSE.txt → 624-2c9ac733ba-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{7076-ec18ce09c9-lite.chunk.js.LICENSE.txt → 7076-748eef1eba-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{9395-e1a02b01ce-lite.chunk.js.LICENSE.txt → 9395-e07cb08942-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{9478-13da35c4ee-lite.chunk.js.LICENSE.txt → 9478-250b1e9dcf-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{953-225db845ab-lite.chunk.js.LICENSE.txt → 953-e3f732e20e-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{bundle-360989040d.min.js.LICENSE.txt → bundle-f1c26ac44d.min.js.LICENSE.txt} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scripts/2142-d6e297d5a7-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/common/src/react/utils/PortalHelper.ts","file:///app/packages/libs/shared/src/components/breadcrumbs/Breadcrumbs.tsx","file:///app/packages/libs/shared/src/components/copyright-disclaimer/copyright-disclaimer.scss","file:///app/packages/libs/shared/src/components/copyright-disclaimer/CopyrightDisclaimer.tsx","file:///app/packages/libs/shared/src/components/play-page-v2/clips-widget/ClipWidgetItemV2.tsx","file:///app/packages/libs/shared/src/components/play-page-v2/clips-widget/PlayPageClips.tsx","file:///app/packages/libs/shared/src/components/play-page-v2/details/video-description/video-description.scss","file:///app/packages/libs/shared/src/components/play-page-v2/details/video-description/VideoDescription.tsx","file:///app/packages/libs/shared/src/components/play-page-v2/details/video-details.scss","file:///app/packages/libs/shared/src/components/play-page-v2/details/VideoDetailsV2.tsx","file:///app/packages/libs/shared/src/components/play-page-v2/glance/VideoAtAGlanceUtilsV2.ts","file:///app/packages/libs/shared/src/components/play-page-v2/glance/points-of-interest-list/points-of-interest-list.scss","file:///app/packages/libs/shared/src/components/play-page-v2/glance/points-of-interest-list/PointsOfInterestList.tsx","file:///app/packages/libs/shared/src/components/play-page-v2/glance/VideoAtAGlanceV2.tsx","file:///app/packages/libs/shared/src/components/play-page-v2/interactives-widget/InteractiveWidgetItemV2.tsx","file:///app/packages/libs/shared/src/components/play-page-v2/interactives-widget/PlayPageInteractives.tsx","file:///app/packages/libs/shared/src/components/play-page-v2/resources-widget/PlayPageResources.tsx","file:///app/packages/libs/shared/src/components/play-page-v2/resources-widget/resource-widget-item.scss","file:///app/packages/libs/shared/src/components/play-page-v2/resources-widget/ResourceWidgetItemV2.tsx","file:///app/packages/libs/shared/src/components/table-of-contents-list/table-of-contents-list.scss","file:///app/packages/libs/shared/src/components/table-of-contents-list/TableOfContentsList.tsx","file:///app/packages/libs/shared/src/hooks/useExpandableTextButton.ts","file:///app/packages/libs/shared/src/hooks/useTableOfContentsActiveHeading.tsx","file:///app/packages/libs/shared/src/utils/DownloadHelper.ts","file:///app/packages/projects/lite/src/shared/components/play-page/components/table-of-contents/table-of-contents.scss","file:///app/packages/projects/lite/src/shared/components/play-page/components/table-of-contents/TableOfContents.tsx","file:///app/packages/projects/lite/src/shared/views/play/v2/PlayPageUtilV2.tsx","file:///app/packages/projects/lite/src/shared/views/play/v2/hooks/usePlayPageTableOfContent.ts","file:///app/packages/projects/lite/src/shared/constants/PlayPageSectionsOrder.ts","file:///app/packages/projects/lite/src/shared/views/play/v2/hooks/useSectionHeadings.ts","file:///app/packages/projects/lite/src/shared/views/play/v2/hooks/useShouldShowTableOfContents.ts","file:///app/packages/libs/shared/src/components/play-page-v2/glance/video-at-a-glance.scss"],"sourcesContent":["import React from 'react';\nimport { createPortal } from 'react-dom';\n\nexport const PortalHelper = {\n renderInPortalIfExists(component: React.ReactElement, portalContainer: Element | null): React.ReactElement {\n if (portalContainer)\n return createPortal(component, portalContainer);\n\n return component;\n }\n};","import * as React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\nimport { useMediaQuery } from 'libs/shared/hooks/UseMediaQuery';\nimport { PartialLoadingHelper } from 'libs/shared/utils/PartialLoadingHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { SvgContainer, SvgContainerSize } from '../svg-container/SvgContainer';\n\nconst namespace = 'shared.breadcrumbComponent';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst COLLAPSE_CHARACTER_COUNT = 64;\n\nexport interface Breadcrumb {\n name: string;\n appLink?: Core.AppLink;\n active?: boolean;\n}\n\ninterface BreadcrumbItemProps {\n breadcrumb: Breadcrumb;\n withBackIcon?: boolean;\n}\n\nexport const BreadcrumbItem = React.forwardRef((\n props: BreadcrumbItemProps,\n ref: React.ForwardedRef<HTMLElement>\n) => {\n const { breadcrumb: { name, appLink, active }, withBackIcon } = props;\n return (\n <li className={`breadcrumb-item${active ? ' active' : ''}`}>\n {active\n ? <strong>{name}</strong>\n : <AppLink appLink={appLink} ref={ref}>\n {withBackIcon && <SvgContainer svgName={cvSvgLibrary.ChevronLeft} size={SvgContainerSize.Small} />}\n <span className={withBackIcon ? 'ms-2' : ''}>{name}</span>\n </AppLink>\n }\n </li>\n );\n});\n\ninterface BreadcrumbsProps {\n breadcrumbs: Breadcrumb[];\n}\n\nexport const Breadcrumbs = ({ breadcrumbs }: BreadcrumbsProps) => {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n const length = breadcrumbs?.length || 0;\n \n const [ collapse, setCollapse ] = React.useState(false);\n const [ shouldFocus, setShouldFocus ] = React.useState(false);\n const expandRef = React.useRef<HTMLElement>();\n\n React.useEffect(() => {\n const characterLength = breadcrumbs?.reduce((prev, next) => prev + next.name.length, 0) ?? 0;\n\n if (length > 4 && characterLength > COLLAPSE_CHARACTER_COUNT)\n setCollapse(true);\n }, [breadcrumbs?.length]);\n\n /**\n * Focus our first expanded item the first time it appears.\n */\n React.useLayoutEffect(() => {\n if (shouldFocus)\n expandRef.current?.focus();\n }, [ expandRef.current, shouldFocus ]);\n\n function onClickExpand() {\n setCollapse(false);\n setShouldFocus(true);\n }\n\n if (!length || (isMobile && length < 2))\n return <></>;\n\n if (isMobile)\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n <BreadcrumbItem breadcrumb={breadcrumbs[length - 2]} withBackIcon />\n </ol>\n </nav>\n );\n\n const first = <BreadcrumbItem breadcrumb={breadcrumbs[0]} />;\n const second = length > 2 ? <BreadcrumbItem breadcrumb={breadcrumbs[1]} /> : <></>;\n const secondLast = length > 3 ? <BreadcrumbItem breadcrumb={breadcrumbs[length - 2]} /> : <></>;\n const last = length > 1 ? <BreadcrumbItem breadcrumb={breadcrumbs[length - 1]} /> : <></>;\n const rest = breadcrumbs.slice(2, length - 2);\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {first}\n {second}\n {collapse ?\n <li className='breadcrumb-item'>\n <button\n className='btn-link'\n onClick={onClickExpand}\n aria-label={getPhrase('expand')}\n >\n ...\n </button>\n </li> :\n rest.map((breadcrumb, idx) => (\n <BreadcrumbItem\n key={idx}\n breadcrumb={breadcrumb}\n ref={idx === 0 ? expandRef : null}\n />\n ))\n }\n {secondLast}\n {last}\n </ol>\n </nav>\n );\n};\n\nexport const PartialBreadcrumbs = React.memo(function({ numItems = 3 }: { numItems?: number; }) {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n if (isMobile) {\n return (\n <div className='partial-loading-background' style={{ height: '1.3125rem', width: '6rem' }} />\n );\n }\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {PartialLoadingHelper.getPartialLoadingItems({ numItems }).map(({ width }, idx) => (\n <li key={idx} className='breadcrumb-item'>\n <span className='d-inline-block partial-loading-background' style={{ width }} dangerouslySetInnerHTML={{ __html: ' ' }} />\n </li>\n ))}\n </ol>\n </nav>\n );\n});","// extracted by mini-css-extract-plugin\nexport default {\"copyrightDisclaimer\":\"z8YoI\",\"overlayContainer\":\"eJDbJ\"};","import React from 'react';\nimport { Overlay } from 'react-bootstrap';\nimport { Placement } from 'react-bootstrap/esm/types';\n\nimport { Text } from 'libs/shared/components/text/Text';\nimport { useHoverIntent } from 'libs/shared/hooks/UseHover';\n\nimport styles from './copyright-disclaimer.scss';\n\nconst namespace = 'shared.copyrightDisclaimer';\n\nconst CONTAINER_HEIGHT = 150; // px\n\ninterface CopyrightDisclaimerProps {\n placement: Placement;\n overflowPlacement?: Placement;\n className?: string;\n phraseClassName?: string;\n}\n\nexport function CopyrightDisclaimer(props: CopyrightDisclaimerProps) {\n const [ ref, isHovering ] = useHoverIntent<HTMLDivElement>({});\n\n function preventOverflow() {\n const spaceBelow = document.documentElement.clientHeight - ref.current?.getBoundingClientRect().bottom;\n\n return spaceBelow < CONTAINER_HEIGHT;\n }\n\n return (\n <div ref={ref} className={props.className}>\n <p className={`${styles.copyrightDisclaimer} ${props.phraseClassName ?? 'mb-1'}`}><Text namespace={namespace} phrase='copyrightDisclaimer' /></p>\n <Overlay\n target={ref.current}\n show={isHovering}\n placement={props.overflowPlacement && preventOverflow() ? props.overflowPlacement : props.placement}\n >\n <div className={`${styles.overlayContainer} mw-100 bg-white border rounded-3 p-2`}>\n <p><Text namespace={namespace} phrase='warning' /></p>\n <p className='fw-semibold mb-0'><Text namespace={namespace} phrase='sharing' /></p>\n </div>\n </Overlay>\n </div>\n );\n}","import React from 'react';\n\nimport { ThumbnailText } from 'libs/shared/components/thumbnails/thumbnail-text/ThumbnailText';\nimport { VideoThumbnail } from 'libs/shared/components/thumbnails/video/VideoThumbnail';\nimport { FixedWidgetItemProps } from 'libs/shared/components/widgets/items/FixedWidgetItemProps';\nimport { ThumbnailTextPosition } from 'libs/shared/enums/ThumbnailTextPosition';\nimport { useMergeAudiences } from 'libs/shared/hooks/UseMergeAudiences';\nimport { CanFavouriteFunc, Clip, FavouriteFunc, PresentationAudience, YearGroup } from 'libs/shared/interfaces';\n\nexport interface ClipWidgetItemV2Props extends FixedWidgetItemProps<Clip> {\n imageCdnUrl: string;\n setFavourite: FavouriteFunc;\n canFavourite: CanFavouriteFunc;\n audiences: PresentationAudience[];\n yearGroups: YearGroup[];\n isPlugin: boolean;\n showOwner?: boolean;\n}\n\nexport const ClipWidgetItemV2 = React.memo(function(props: ClipWidgetItemV2Props): JSX.Element {\n const { data: clip, thumbnailSize, preloadImage, getAppLink } = props;\n const mergedAudience = useMergeAudiences(clip.subjectPresentationAudiences?.data, props.audiences);\n\n return (\n <div className={`flex-shrink-0 px-1 col-6 col-sm-4`}>\n <VideoThumbnail\n type='static'\n textPosition={ThumbnailTextPosition.Independent}\n video={clip}\n appLink={getAppLink(clip)}\n imageOptions={{ size: thumbnailSize }}\n preload={preloadImage}\n analyticsData={props.analyticsData}\n analyticsOptions={props.analyticsOptions}\n setFavourite={props.setFavourite}\n canFavourite={props.canFavourite}\n imageCdnUrl={props.imageCdnUrl}\n audience={mergedAudience}\n hideDuration={false}\n isPlugin={props.isPlugin}\n showOwner={props.showOwner}\n />\n\n <div className='mt-2'>\n <ThumbnailText\n {...props}\n video={clip}\n appLink={props.getAppLink(clip)}\n />\n </div>\n </div>\n );\n});","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { FixedWidget } from 'libs/shared/components/widgets/fixed-widget';\nimport { WidgetContents } from 'libs/shared/enums/WidgetContents';\nimport { CanFavouriteFunc, Clip, FavouriteFunc, PresentationAudience, Video, YearGroup } from 'libs/shared/interfaces';\nimport { PlayPageAnchor } from 'libs/shared/interfaces/PlayPageAnchor';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { ClipWidgetItemV2, ClipWidgetItemV2Props } from './ClipWidgetItemV2';\n\nconst namespace = 'shared.playPageClipsV2';\n\ninterface PlayPageClipsProps {\n video: Video | Clip;\n clips: Clip[];\n canViewClips: boolean;\n yearGroups: YearGroup[];\n audiences: PresentationAudience[];\n imageCdnUrl: string;\n setFavourite: FavouriteFunc;\n canFavourite: CanFavouriteFunc;\n analyticsData: HashObject;\n headingRef?: React.MutableRefObject<Map<PlayPageAnchor, HTMLElement>>;\n isPlugin: boolean;\n}\n\nexport function PlayPageClips(props: PlayPageClipsProps): JSX.Element {\n if (!props.canViewClips || !props.clips?.length)\n return <></>;\n\n const parentIsVideo = VideoHelper.isVideo(props.video);\n\n function getAppLink() {\n if (VideoHelper.isVideo(props.video)) {\n return {\n action: Actions.Videos.VIDEO_CLIPS,\n application: AppChannels.VIDEOS,\n args: [ props.video.id, TextHelper.slugify(props.video.name) ]\n };\n }\n return {\n action: Actions.Clips.CLIP_CLIPS,\n application: AppChannels.CLIPS,\n args: [ props.video.id, TextHelper.slugify(props.video.name) ]\n };\n }\n\n const title = LanguageService.getPhrase(\n namespace,\n parentIsVideo ? 'clips' : 'otherClips',\n { count: props.clips.length }\n );\n\n return (\n <section\n className='play-page-section'\n id={PlayPageAnchor.Clips}\n ref={el => {\n (el && props.headingRef?.current) && props.headingRef.current.set(PlayPageAnchor.Clips, el);\n }}\n >\n <FixedWidget<ClipWidgetItemV2Props>\n name={title}\n contents={WidgetContents.ClipsV2}\n collection={props.clips}\n prefetched\n getChildAppLink={(clip: Clip) => {\n return {\n application: AppChannels.CLIPS,\n action: Actions.Clips.PLAY_CLIP,\n args: [ clip.id, TextHelper.slugify(clip.name) ]\n };\n }}\n appLink={getAppLink()}\n childComponent={ClipWidgetItemV2}\n extraChildComponentProps={{\n yearGroups: props.yearGroups,\n audiences: props.audiences,\n imageCdnUrl: props.imageCdnUrl,\n setFavourite: props.setFavourite,\n canFavourite: props.canFavourite,\n isPlugin: props.isPlugin,\n showOwner: true\n }}\n analyticsData={props.analyticsData}\n />\n </section>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"G5zMm\",\"collapsed\":\"kkd1X\",\"seeMore\":\"DS4QF\"};","import React from 'react';\n\nimport { LinkifyHelper } from 'libs/common/react/utils/LinkifyHelper';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { useExpandableTextButton } from 'libs/shared/hooks/useExpandableTextButton';\nimport { VideoTypes } from 'libs/shared/interfaces';\n\nimport styles from './video-description.scss';\n\nconst namespace = 'shared.videoDetailsV2';\n\ninterface VideoDescriptionProps {\n video: VideoTypes;\n}\n\nexport function VideoDescription(props: VideoDescriptionProps): React.ReactElement {\n const [ expanded, setExpanded ] = React.useState(false);\n const { containerRef, showButton } = useExpandableTextButton();\n\n return (\n <div className={`${styles.container} ${expanded ? '' : styles.collapsed}`} >\n {(!expanded && showButton) && (\n <DivButton\n onClick={() => setExpanded(true)}\n className={`ms-1 text-info hover-text-underline ${styles.seeMore}`}\n >\n <Text namespace={namespace} phrase='seeMore' />\n </DivButton>\n )}\n <p\n ref={containerRef}\n className={`mb-0 ${expanded ? 'd-inline' : ''}`}\n dangerouslySetInnerHTML={{\n __html: LinkifyHelper.linkifyText(props.video.description, { nl2br: true })\n }}\n />\n {expanded && (\n <DivButton\n onClick={() => setExpanded(false)}\n className={`ms-1 hover-text-underline d-inline text-info`}\n >\n <Text namespace={namespace} phrase='seeLess' />\n </DivButton>\n )}\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"descriptionBorder\":\"YUC62\"};","import * as React from 'react';\nimport { Scrollbars } from 'react-custom-scrollbars-2';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { ClickDescriptor, EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { CopyrightDisclaimer } from 'libs/shared/components/copyright-disclaimer/CopyrightDisclaimer';\nimport { ImmersiveReader } from 'libs/shared/components/immersive-reader/ImmersiveReader';\nimport { VideoDescription } from 'libs/shared/components/play-page-v2/details/video-description/VideoDescription';\nimport { TagHelper } from 'libs/shared/components/tags/TagHelper';\nimport { TagList } from 'libs/shared/components/tags/TagList';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\nimport { hasPPDD } from 'libs/shared/components/video-details/VideoDetailsUtils';\nimport { MINIMUM_GLANCE_HEIGHT } from 'libs/shared/constants/MinimumGlanceHeight';\nimport { TagType } from 'libs/shared/enums/TagType';\nimport { BaseObject, BasePaginatedCollection, CurrentUser, Tag, VideoTypes } from 'libs/shared/interfaces';\nimport { PlayPageAnchor } from 'libs/shared/interfaces/PlayPageAnchor';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport styles from './video-details.scss';\n\nconst namespace = 'shared.videoDetailsV2';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface CommaListProps {\n label: string;\n items: BasePaginatedCollection<BaseObject>;\n className?: string;\n}\n\nfunction CommaList(props: CommaListProps): React.ReactElement {\n const { label, items, className } = props;\n\n const hasItems = items && items.data && items.data.length;\n\n if (!hasItems)\n return <></>;\n\n const commaSeperated = items.data.map(i => i.name).join(', ');\n\n return (\n <div className={className}>{label}: {commaSeperated}</div>\n );\n}\n\nfunction DetailsSection(props: VideoDetailsWithScrollbarV2Props): React.ReactElement {\n const { video } = props;\n\n if (!VideoHelper.isVideo(video) && !VideoHelper.isClip(video))\n return <></>;\n\n function showDateUploaded(): boolean {\n if (!props.currentUser?.isAuthenticated)\n return false;\n\n return !!video.dateCreated && !video._isClickViewCurated?.value;\n }\n\n const parentVideo = VideoHelper.getParentVideo(video);\n\n return (\n <div className={video.description ? 'col-md-5 ps-md-3 pt-3 pt-md-0' : 'col-12'}>\n <h2 className='h6 mb-1'><Text phrase='details' /></h2>\n {!!parentVideo.productionYear && (\n <div className='mb-1'>\n <Text phrase='productionYear' options={{ year: parentVideo.productionYear }} />\n </div>\n )}\n <CommaList\n label={getPhrase('productionCompanies', { smartCount: parentVideo.productionCompanies?.data?.length })}\n items={parentVideo.productionCompanies}\n className='mb-1'\n />\n <CommaList\n label={getPhrase('distributors', { smartCount: parentVideo.distributors?.data?.length })}\n items={parentVideo.distributors}\n className='mb-1'\n />\n <CommaList\n label={getPhrase('producers', { smartCount: parentVideo.producers?.data?.length })}\n items={parentVideo.producers}\n className='mb-1'\n />\n <CommaList\n label={getPhrase('directors', { smartCount: parentVideo.directors?.data?.length })}\n items={parentVideo.directors}\n className='mb-1'\n />\n {!!parentVideo.dateBroadcast && (\n <div className='mb-1'>\n <Text phrase='dateBroadcast' options={{ date: DateHelper.format(parentVideo.dateBroadcast, 'DD/MM/YYYY') }} />\n </div>\n )}\n {!!parentVideo.channel && (\n <div className='mb-1'>\n <Text phrase='channel' options={{ channel: parentVideo.channel.name }} />\n </div>\n )}\n {showDateUploaded() && (\n <div className='mb-1'>\n <Text phrase='dateUploaded' options={{ date: DateHelper.format(video.dateCreated, 'DD/MM/YYYY') }} />\n </div>\n )}\n </div>\n );\n}\n\ninterface VideoDetailsWithScrollbarV2Props {\n video: VideoTypes;\n currentUser: CurrentUser;\n getTagAppLink?: (tag: Tag) => Core.AppLink;\n onLaunchImmersiveReader?: () => void;\n onExitImmersiveReader?: () => void;\n maxHeight?: number;\n suppressInteractivity?: boolean;\n hideTags?: boolean;\n headingRef?: React.MutableRefObject<Map<PlayPageAnchor, HTMLElement>>;\n showHeading?: boolean;\n}\n\nexport function VideoDetailsWithScrollbarV2(props: VideoDetailsWithScrollbarV2Props): React.ReactElement {\n const { video, maxHeight = MINIMUM_GLANCE_HEIGHT } = props;\n \n const parentVideo = VideoHelper.getParentVideo(video);\n\n const showDescription = !!props.video.description;\n\n const showDetails = (\n hasPPDD(props.video) ||\n !!parentVideo.productionYear ||\n !!parentVideo.dateBroadcast ||\n !!parentVideo.channel ||\n !!(video.dateCreated && !video._isClickViewCurated?.value)\n );\n\n if (!showDescription && !showDetails)\n return <></>;\n\n function getTags(): Tag[] {\n if (props.hideTags || VideoHelper.isInteractive(props.video) || !props.video.tags?.data?.length)\n return null;\n\n return props.video.tags?.data?.filter(tag => tag.tagType === TagType.Normal);\n }\n const tags = getTags();\n\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <section\n id={PlayPageAnchor.VideoDetails}\n ref={el => {\n (el && props.headingRef?.current) && props.headingRef.current.set(PlayPageAnchor.VideoDetails, el);\n }}\n className='play-page-section'\n >\n {props.showHeading && (\n <h2 className='h4 curated-widget-header'><Text phrase='heading' /></h2>\n )}\n <div className='rounded border p-3 position-relative'>\n <Scrollbars autoHeight autoHeightMax={maxHeight} hideTracksWhenNotNeeded>\n <div className='row g-0'>\n {showDescription && (\n <div className={showDetails ? `${styles.descriptionBorder} pe-3 col-md-7` : 'col-12'}>\n <div className='d-flex align-items-center'>\n <h2 className='h6 mb-1'>\n <Text phrase='description' />\n </h2>\n <ImmersiveReader\n text={video.description}\n title={video.name}\n className='ps-2'\n onLaunch={props.onLaunchImmersiveReader}\n onExit={props.onExitImmersiveReader}\n analyticsOptions={{\n location: LocationContext.PlayPage,\n entity: EntityType.Video,\n actionType: UserAction.Click,\n descriptor: ClickDescriptor.LaunchImmersiveReader\n }}\n analyticsData={{ id: video.id, type: 'description' }}\n />\n </div>\n\n <VideoDescription video={props.video} />\n </div>\n )}\n\n {showDetails && (\n <DetailsSection {...props} />\n )}\n </div>\n\n {!!tags?.length && (\n <div className='mt-3'>\n <h2 className='h6 mb-1'><Text phrase='normalTags' /></h2>\n <TagList\n tags={tags}\n {...TagHelper.getTagActionProps(props.getTagAppLink, null, props.suppressInteractivity)}\n className='mt-1'\n />\n </div>\n )}\n\n {VideoHelper.isBroadcast(props.video) && (\n <CopyrightDisclaimer\n placement='bottom-start'\n className='d-flex justify-content-start mt-2'\n phraseClassName='mb-0'\n />\n )}\n\n </Scrollbars>\n </div>\n </section>\n </LanguageNamespaceContext.Provider>\n );\n}","import { MutableRefObject, useEffect, useRef, useState } from 'react';\nimport * as marked from 'marked';\n\nimport { useEventsServiceSubscribe } from 'libs/common/react/hooks/UseEventsServiceSubscribe';\nimport { EventsService } from 'libs/common/react/services/EventsService';\n\nimport { Clip, Glance, PointOfInterest, Video } from 'libs/shared/interfaces';\n\nimport styles from './video-at-a-glance.scss';\n\nconst POI_LINK_LINE = /\\[\\]\\(cv:\\/\\/poi\\?id=\\d+\\)\\n*/g;\n\nfunction stripPoisFromGlanceContent(glanceContent: string): string {\n return glanceContent.replace(POI_LINK_LINE, '');\n}\n\nfunction getLearningIntentionHTML(glance: Glance): string {\n const learningIntention = stripPoisFromGlanceContent(glance.content);\n\n return marked(learningIntention);\n}\n\nexport function useLearningIntentionMarkdown(\n video: Video,\n hasGlanceData?: boolean\n): string {\n const [ markdownHTML, setMarkdownHTML ] = useState('');\n\n useEffect(() => {\n if (!hasGlanceData)\n return;\n\n const content = getLearningIntentionHTML(video.glance);\n\n setMarkdownHTML(content);\n }, [ video.glance?.content, hasGlanceData ]);\n\n return markdownHTML;\n}\n\nexport function hasGlanceData(video: Video | Clip): boolean {\n return video.glance?.content && video.glance?.format === 'text/markdown';\n}\n\nexport function useHighlightPointOfInterest(\n pointOfInterest: PointOfInterest,\n shouldHighlight: boolean\n): MutableRefObject<HTMLDivElement> {\n const ref = useRef<HTMLDivElement>();\n\n useEventsServiceSubscribe('player:poi:mouseover', onPlayerPoiMouseOver, null, shouldHighlight);\n useEventsServiceSubscribe('player:poi:mouseleave', onPlayerPoiMouseLeave, null, shouldHighlight);\n\n useEffect(() => {\n if (!ref.current || !shouldHighlight)\n return;\n\n ref.current?.addEventListener('mouseover', onGlancePoiMouseOver);\n ref.current?.addEventListener('mouseleave', onGlancePoiMouseLeave);\n\n return () => {\n ref.current?.removeEventListener('mouseover', onGlancePoiMouseOver);\n ref.current?.removeEventListener('mouseleave', onGlancePoiMouseLeave);\n };\n }, [ref.current]);\n\n function onPlayerPoiMouseOver(hoveredPoi: PointOfInterest): void {\n if (!hoveredPoi?.id || pointOfInterest?.id?.toString() !== hoveredPoi?.id?.toString())\n return;\n\n ref.current?.classList.add(styles.highlightPoi);\n }\n\n function onPlayerPoiMouseLeave(): void {\n ref.current?.classList.remove(styles.highlightPoi);\n }\n\n /**\n * `this` will be the element to which the eventListener is bound.\n */\n function onGlancePoiMouseOver(): void {\n if (pointOfInterest)\n EventsService.trigger('glance:poi:mouseover', pointOfInterest);\n }\n\n function onGlancePoiMouseLeave(): void {\n EventsService.trigger('glance:poi:mouseleave');\n }\n\n return ref;\n}","// extracted by mini-css-extract-plugin\nexport default {\"poiEntry\":\"vr6R9\",\"poiText\":\"znHZF\",\"public\":\"v0BZ9\",\"poiTimeStamp\":\"AdKwe\",\"wideBadge\":\"YR2Hh\"};","import React from 'react';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { PointOfInterest } from 'libs/shared/interfaces';\nimport { DurationHelper } from 'libs/shared/utils/DurationHelper';\n\nimport { useHighlightPointOfInterest } from '../VideoAtAGlanceUtilsV2';\n\nimport styles from './points-of-interest-list.scss';\n\ninterface PointOfInterestProps {\n poi: PointOfInterest;\n suppressInteractivity?: boolean;\n onClickPoiItem: (time: number) => void;\n wideBadge?: boolean;\n}\n\nfunction PointOfInterest(props: PointOfInterestProps): JSX.Element {\n const timeStamp = DurationHelper.ToDisplayDuration(props.poi.startTime * 1000);\n\n const ref = useHighlightPointOfInterest(props.poi, !props.suppressInteractivity);\n\n if (props.suppressInteractivity) {\n return (\n <div className={`d-flex ${styles.poiEntry} mb-2`}>\n <span className={`d-flex rounded-pill justify-content-center align-items-center fw-semibold text-info bg-light-blue ${styles.poiTimeStamp} ${props.wideBadge ? styles.wideBadge : ''}`}>{timeStamp}</span>\n <div className={`${styles.public} ms-2`}>{props.poi.description}</div>\n </div>\n );\n }\n\n return (\n <DivButton\n key={props.poi.startTime}\n className={`d-flex ${styles.poiEntry} mb-2 cursor-pointer`}\n onClick={() => props.onClickPoiItem(props.poi.startTime)}\n ref={ref}\n >\n <div className={`d-flex rounded-pill justify-content-center align-items-center fw-semibold text-info bg-light-blue ${styles.poiTimeStamp} ${props.wideBadge ? styles.wideBadge : ''}`}>{timeStamp}</div>\n <div className={`ms-2 ${styles.poiText}`}>{props.poi.description}</div>\n </DivButton>\n );\n}\n\ninterface PointOfInterestListProps{\n pointsOfInterest: PointOfInterest[];\n suppressInteractivity?: boolean;\n onClickPoiItem: (time: number) => void\n}\n\nconst namespace = 'shared.pointsOfInterestList';\n\nexport function PointOfInterestList(props: PointOfInterestListProps) {\n const sortedPointsOfInterest = props.pointsOfInterest.sort((a, b) => a.startTime - b.startTime);\n const hasTimePointOverHours = sortedPointsOfInterest.some(poi => poi.startTime >= 3600);\n\n return (\n <div>\n <h2 className='h6 my-2'><Text namespace={namespace} phrase='heading' /></h2>\n\n <div>\n {sortedPointsOfInterest.map(poi => {\n return (\n <PointOfInterest\n key={poi.startTime}\n poi={poi}\n suppressInteractivity={props.suppressInteractivity}\n onClickPoiItem={props.onClickPoiItem}\n wideBadge={hasTimePointOverHours}\n />\n );\n })}\n\n </div>\n </div>\n );\n}","import * as React from 'react';\nimport CopyToClipboard from 'react-copy-to-clipboard';\nimport Scrollbars from 'react-custom-scrollbars-2';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { PointOfInterestList } from 'libs/shared/components/play-page-v2/glance/points-of-interest-list/PointsOfInterestList';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { TagHelper } from 'libs/shared/components/tags/TagHelper';\nimport { TagList } from 'libs/shared/components/tags/TagList';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { TagType } from 'libs/shared/enums/TagType';\nimport { PointOfInterest, Tag, Video } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { useLearningIntentionMarkdown } from './VideoAtAGlanceUtilsV2';\n\nimport styles from './video-at-a-glance.scss';\n\nconst namespace = 'shared.videoAtAGlanceV2';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst SCROLL_HEIGHT_MAX = 350; // in px\n\ninterface ScrollbarWrapperProps {\n hideScrollbar?: boolean;\n}\n\nfunction ScrollbarWrapper(props: React.PropsWithChildren<ScrollbarWrapperProps>): JSX.Element {\n if (props.hideScrollbar)\n return <>{props.children}</>;\n\n return (\n <div className='rounded border mb-4 bg-white'>\n <Scrollbars\n autoHeight\n autoHeightMax={SCROLL_HEIGHT_MAX}\n >\n <div className='px-3 px-3 pt-3 pb-2'>\n {props.children}\n </div>\n </Scrollbars>\n </div>\n );\n}\n\ninterface VideoAtAGlanceV2Props {\n video: Video;\n pointsOfInterest?: PointOfInterest[];\n suppressInteractivity?: boolean;\n setStartTime?: (time: number) => void;\n getTagAppLink?: (tag: Tag) => Core.AppLink;\n onClickTag?: () => void;\n hideScrollbar?: boolean;\n canViewGlance: boolean;\n}\n\nexport function VideoAtAGlanceV2(props: VideoAtAGlanceV2Props): JSX.Element {\n const learningIntentionMarkdownHTML = useLearningIntentionMarkdown(props.video, props.canViewGlance);\n const [ textToCopy, setTextToCopy ] = React.useState('');\n\n function logUserAction(): void {\n const analyticsData = {\n id: props.video.glance.id,\n name: props.video.glance.name,\n videoId: props.video.id,\n videoName: props.video.name,\n learningIntention: textToCopy\n };\n\n const analyticsOptions = {\n actionType: UserAction.Copy,\n entity: EntityType.Glance,\n location: LocationContext.PlayPage\n };\n AnalyticsHelper.logUserAction(analyticsData, analyticsOptions);\n }\n\n function getTags(): Tag[] {\n if (VideoHelper.isInteractive(props.video) || !props.video.tags?.data?.length)\n return null;\n\n return props.video.tags?.data?.filter(tag => tag.tagType === TagType.Pedagogy || tag.tagType === TagType.Skill);\n }\n const tags = getTags();\n\n const ref = React.useRef<HTMLDivElement>(null);\n\n React.useEffect(() => {\n if (ref.current?.innerText)\n setTextToCopy(ref.current.innerText);\n }, [ref.current?.innerText]);\n\n if (!props.canViewGlance)\n return <></>;\n\n function onClickPoiItem(time: number) {\n props.setStartTime(time);\n }\n\n return (\n <section className='play-page-section'>\n <ScrollbarWrapper hideScrollbar={props.hideScrollbar}>\n <h2 className='h6 mb-2'><Text namespace={namespace} phrase='learningIntention' /></h2>\n \n <div className={`mb-3 ${styles.learningIntention}`}>\n <Tooltip title={getPhrase('copy')} spanHack spanHackClassName={styles.icon}>\n <CopyToClipboard text={textToCopy}>\n <SvgContainer\n className='svg-container me-1 cursor-pointer'\n svgName={cvSvgLibrary.Copy}\n size={SvgContainerSize.Small}\n onClick={logUserAction}\n />\n </CopyToClipboard>\n </Tooltip>\n \n <div\n dangerouslySetInnerHTML={{ __html: learningIntentionMarkdownHTML }}\n className='d-inline'\n ref={ref}\n >\n </div>\n </div>\n\n {!!tags?.length && (\n <div className='mb-1'>\n <TagList\n tags={tags}\n {...TagHelper.getTagActionProps(props.getTagAppLink, props.onClickTag, props.suppressInteractivity)}\n className='mt-2'\n />\n </div>\n )}\n\n {!!props.pointsOfInterest.length && (\n <PointOfInterestList\n pointsOfInterest={props.pointsOfInterest}\n suppressInteractivity={props.suppressInteractivity}\n onClickPoiItem={onClickPoiItem}\n />\n )}\n </ScrollbarWrapper>\n </section>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ThumbnailText } from 'libs/shared/components/thumbnails/thumbnail-text/ThumbnailText';\nimport { VideoThumbnail } from 'libs/shared/components/thumbnails/video/VideoThumbnail';\nimport { FixedWidgetItemProps } from 'libs/shared/components/widgets/items/FixedWidgetItemProps';\nimport { ThumbnailTextPosition } from 'libs/shared/enums/ThumbnailTextPosition';\nimport { CanFavouriteFunc, FavouriteFunc, InteractiveMetadata, YearGroup } from 'libs/shared/interfaces';\n\nconst namespace = 'shared.interactiveWidgetItemV2';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport interface InteractiveWidgetItemV2Props extends FixedWidgetItemProps<InteractiveMetadata> {\n imageCdnUrl: string;\n questionsAppLink: Core.AppLink;\n setFavourite?: FavouriteFunc;\n canFavourite?: CanFavouriteFunc;\n yearGroups: YearGroup[];\n isPlugin: boolean;\n showOwner?: boolean;\n}\n\nexport const InteractiveWidgetItemV2 = React.memo(function(props: InteractiveWidgetItemV2Props): JSX.Element {\n const { data: interactive, thumbnailSize, preloadImage } = props;\n\n const questionsAppLink: Core.AppLink = {\n ...props.questionsAppLink,\n args: [props.data.id]\n };\n\n const questionsNumber = interactive._timepoints?.value?.length;\n\n return (\n <div className={`flex-shrink-0 px-1 col-6 col-sm-4`}>\n <VideoThumbnail\n type='static'\n textPosition={ThumbnailTextPosition.Independent}\n video={interactive}\n appLink={props.getAppLink(interactive)}\n imageOptions={{ size: thumbnailSize }}\n preload={preloadImage}\n analyticsData={props.analyticsData}\n analyticsOptions={props.analyticsOptions}\n setFavourite={props.setFavourite}\n canFavourite={props.canFavourite}\n hideDuration={false}\n imageCdnUrl={props.imageCdnUrl}\n isPlugin={props.isPlugin}\n showOwner={props.showOwner}\n />\n\n <div className='mt-2'>\n <ThumbnailText\n {...props}\n video={interactive}\n appLink={props.getAppLink(interactive)}\n />\n </div>\n\n <div className='mt-n1'>\n <AppLink\n appLink={questionsAppLink}\n className='cursor-pointer'\n ariaLabel={`${getPhrase('previewQuestions', { count: questionsNumber, smartCount: questionsNumber })} ${getPhrase('ariaPreview', { name: interactive.name })}`}\n >\n <Text namespace={namespace} phrase='previewQuestions' options={{ count: questionsNumber, smartCount: questionsNumber }}/>\n </AppLink>\n </div>\n </div>\n );\n});\n","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { FixedWidget } from 'libs/shared/components/widgets/fixed-widget';\nimport { WidgetContents } from 'libs/shared/enums/WidgetContents';\nimport { CanFavouriteFunc, Clip, FavouriteFunc, Interactive, InteractiveMetadata, Video, YearGroup } from 'libs/shared/interfaces';\nimport { PlayPageAnchor } from 'libs/shared/interfaces/PlayPageAnchor';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { InteractiveWidgetItemV2, InteractiveWidgetItemV2Props } from './InteractiveWidgetItemV2';\n\nconst namespace = 'shared.playPageInteractivesV2';\n\ninterface PlayPageInteractivesProps {\n canViewInteractives: boolean;\n video: Video | Clip;\n interactives: InteractiveMetadata[];\n imageCdnUrl: string;\n analyticsData: HashObject;\n yearGroups: YearGroup[];\n setFavourite: FavouriteFunc;\n canFavourite: CanFavouriteFunc;\n isPlugin: boolean;\n headingRef?: React.MutableRefObject<Map<PlayPageAnchor, HTMLElement>>;\n}\n\nexport function PlayPageInteractives(props: PlayPageInteractivesProps): JSX.Element {\n if (!props.canViewInteractives || !props.interactives?.length)\n return <></>;\n\n function getAppLink() {\n if (VideoHelper.isVideo(props.video))\n return {\n action: Actions.Videos.VIDEO_INTERACTIVES,\n application: AppChannels.VIDEOS,\n args: [ props.video.id, TextHelper.slugify(props.video.name) ]\n };\n\n return {\n action: Actions.Clips.CLIP_INTERACTIVES,\n application: AppChannels.CLIPS,\n args: [ props.video.id, TextHelper.slugify(props.video.name) ]\n };\n }\n\n const title = LanguageService.getPhrase(namespace, 'interactives', { count: props.interactives.length });\n \n return (\n <section className='play-page-section'\n id={PlayPageAnchor.Interactives}\n ref={el => {\n (el && props.headingRef?.current) && props.headingRef.current.set(PlayPageAnchor.Interactives, el);\n }}\n >\n <FixedWidget<InteractiveWidgetItemV2Props>\n name={title}\n contents={WidgetContents.InteractivesV2}\n collection={props.interactives}\n prefetched\n getChildAppLink={(interactive: Interactive) => {\n return {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.VIEW_INTERACTIVE,\n args: [ interactive.id, TextHelper.slugify(interactive.name) ]\n };\n }}\n appLink={getAppLink()}\n childComponent={InteractiveWidgetItemV2}\n extraChildComponentProps={{\n yearGroups: props.yearGroups,\n setFavourite: props.setFavourite,\n canFavourite: props.canFavourite,\n imageCdnUrl: props.imageCdnUrl,\n questionsAppLink: {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.PREVIEW_QUESTIONS\n },\n isPlugin: props.isPlugin,\n showOwner: true\n }}\n analyticsData={props.analyticsData}\n />\n </section>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { EntityType, LocationContext, SignUpDescriptors, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { FixedWidget } from 'libs/shared/components/widgets/fixed-widget';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { WidgetContents } from 'libs/shared/enums/WidgetContents';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { Clip, Link, Resource, Video } from 'libs/shared/interfaces';\nimport { PlayPageAnchor } from 'libs/shared/interfaces/PlayPageAnchor';\nimport { DownloadHelper } from 'libs/shared/utils/DownloadHelper';\n\nimport { ResourceWidgetItemV2, ResourceWidgetItemV2Props } from './ResourceWidgetItemV2';\n\nconst namespace = 'shared.playPageResources';\n\nfunction getResources(\n video: Video,\n isLearner: boolean\n): Array<Resource | Link> {\n const resources = video.resources?.data ?? [];\n const links = video.links?.data ?? [];\n\n if (!isLearner)\n return [ ...resources, ...links ];\n\n const filteredResources = resources.filter(r => {\n return [ 'additional-materials', 'student-activity' ].includes(r.metadata?.resourceType);\n });\n\n return [ ...filteredResources, ...links ];\n}\n\ninterface PlayPageResourcesProps {\n video: Video | Clip;\n imageCdnUrl: string;\n canViewResources: boolean;\n getAppLink: (resource: Resource) => Core.AppLink;\n analyticsData: HashObject;\n resourceThumbnailFallbackUrl: string;\n headingRef?: React.MutableRefObject<Map<PlayPageAnchor, HTMLElement>>;\n}\n\nexport function PlayPageResources(props: PlayPageResourcesProps): JSX.Element {\n const { hasPermissions } = usePermissions();\n\n function onClickDownload(resource: Resource): void {\n DownloadHelper.downloadResource(\n resource,\n props.analyticsData,\n { location: LocationContext.PlayPage, actionType: UserAction.Download, entity: EntityType.Resource }\n );\n }\n\n const resources = getResources(props.video, hasPermissions(PermissionName.StudentExperience));\n const title = LanguageService.getPhrase(namespace, 'resources', { count: resources.length });\n\n if (!resources.length)\n return <></>;\n\n return (\n <section\n id={PlayPageAnchor.Resources}\n className='play-page-section'\n ref={el => {\n (el && props.headingRef?.current) && props.headingRef.current.set(PlayPageAnchor.Resources, el);\n }}\n >\n <FixedWidget<ResourceWidgetItemV2Props>\n name={title}\n contents={WidgetContents.PlayPageResourcesV2}\n collection={resources}\n prefetched\n childComponent={ResourceWidgetItemV2}\n extraChildComponentProps={{\n imageCdnUrl: props.imageCdnUrl,\n imageErrorFallbackUrl: props.resourceThumbnailFallbackUrl,\n actionBehaviour: props.canViewResources ? 'normal' : 'public',\n location: 'play-page',\n titlePosition: 'below',\n onClickDownload: props.canViewResources ? onClickDownload : null\n }}\n getChildAppLink={props.getAppLink}\n analyticsOptions={(() => {\n if (props.canViewResources)\n return {};\n \n return {\n workflowPhase: WorkflowPhase.Start,\n descriptor: SignUpDescriptors.SignUp\n };\n })()}\n analyticsData={props.analyticsData}\n />\n </section>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"imageStyle\":\"bYRn8\",\"item\":\"CjuxU\",\"dashboard\":\"IuRN0\",\"playPage\":\"VdJvp\",\"aspectRatio\":\"QK8Jh\",\"outerContainer\":\"eiC_H\",\"innerContainer\":\"huIRg\",\"actions\":\"FsIJm\",\"titleBelow\":\"DpeSr\",\"thumbnailContainer\":\"ZbalL\",\"titleAbove\":\"PwOSX\",\"teacherPack\":\"ZHAEj\",\"text\":\"k3ei6\",\"hoverState\":\"BLrWL\",\"atomGuide\":\"Qz8JE\",\"studentActivity\":\"qNspk\",\"additionalMaterials\":\"R0huw\",\"userUploaded\":\"H_zGf\",\"imageTypeResource\":\"AgeLb\",\"download\":\"DKneu\"};","import React from 'react';\n\nimport { AppLinkHelper } from 'libs/common/backbone/core';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions, EntityType, UserAction } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { ResourceThumbnail } from 'libs/shared/components/resource-thumbnail/ResourceThumbnail';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { TitleSubText } from 'libs/shared/components/title-sub-text/TitleSubText';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { TypeBadge } from 'libs/shared/components/type-badge/TypeBadge';\nimport { FixedWidgetItemProps } from 'libs/shared/components/widgets/items/FixedWidgetItemProps';\nimport { SeoConstants } from 'libs/shared/constants/SeoConstants';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ResourceFileType } from 'libs/shared/enums/ResourceFileType';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { Link, Resource, ResourceType } from 'libs/shared/interfaces';\nimport { ImageOptions } from 'libs/shared/utils/ImageHelper';\nimport { MasterTypeHelper } from 'libs/shared/utils/MasterTypeHelper';\nimport { ResourceHelper } from 'libs/shared/utils/ResourceHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './resource-widget-item.scss';\n\nfunction getColour(resourceType?: ResourceType): string {\n switch (resourceType) {\n case 'atom-guide':\n return styles.atomGuide;\n case 'student-activity':\n return styles.studentActivity;\n case 'teacher-pack':\n return styles.teacherPack;\n case 'additional-materials':\n return styles.additionalMaterials;\n default:\n return styles.userUploaded;\n }\n}\n\nexport function useCanPreviewResource(data: Resource | Link, actionBehaviour: 'normal' | 'public'): boolean {\n const breakpoints = useBreakpoints();\n\n /**\n * When viewing publicly, the resource applink will\n * prompt the user to sign-up (not preview the underlying resource)\n */\n if (actionBehaviour === 'public')\n return true;\n\n if (breakpoints.xs || breakpoints.sm)\n return false;\n\n if (data.type !== 'resource')\n return false;\n \n // Require metadata\n if (!('metadata' in data))\n return false;\n\n // We can preview images\n if (data.metadata.type === ResourceFileType.Image)\n return true;\n\n // If we are a pdf and have a url\n if (data.metadata.type === ResourceFileType.Pdf)\n return !!data.url;\n\n // If we have a pdf assoc\n return !!data.pdf?.url;\n}\n\ninterface ResourceTheme {\n containerClass?: string;\n thumbnailContainerClass?: string;\n}\n\nexport interface ResourceTileProps {\n data: Resource | Link;\n imageCdnUrl: string;\n imageErrorFallbackUrl?: string;\n theme?: ResourceTheme;\n\n titlePosition: 'above' | 'below' | 'none';\n hideTypeBadge?: boolean;\n onClickDownload?: (resource: Resource) => void;\n applyHoverState?: boolean;\n preloadImage: boolean;\n actionBehaviour?: 'normal' | 'public';\n dynamicRatioImageOptions?: ImageOptions;\n}\n\nResourceTileV2.defaultProps = {\n preloadImage: true,\n actionBehaviour: 'normal'\n};\n\n/**\n * This component intentionally doesn't contain an appLink/download link\n * so that the resource download behaviour can be handled differently depending\n * on where this is rendered (e.g. primary play page vs embedded player)\n */\nexport function ResourceTileV2(props: ResourceTileProps): JSX.Element {\n let metadata = null;\n\n if ('metadata' in props.data) {\n metadata = props.data.metadata;\n }\n\n const isResource = MasterTypeHelper.isType<Resource>(props.data, MasterType.Resource);\n\n function getInnerContainerClass(resourceType: ResourceType): string {\n let baseClass = `\n d-flex flex-column align-items-center justify-content-end rounded-3 h-100\n position-relative ${getColour(resourceType)} ${styles.innerContainer}`;\n\n if (props.theme?.containerClass) {\n baseClass += ` ${props.theme.containerClass}`;\n } else {\n baseClass += ` pt-3 px-3`;\n }\n\n if (props.applyHoverState) {\n baseClass += ` ${styles.hoverState}`;\n }\n\n return baseClass;\n }\n\n function onDownload() {\n if (!MasterTypeHelper.isResource(props.data))\n return;\n\n if (typeof props.onClickDownload === 'function') {\n props.onClickDownload(props.data);\n }\n }\n\n return (\n <>\n <div className={styles.aspectRatio}>\n <div className={styles.outerContainer}>\n <div className={getInnerContainerClass(metadata?.resourceType)}>\n {props.titlePosition === 'above' && (\n <Tooltip title={props.data.name}>\n <h3 className={`text-center text-break h5 mb-3 ${styles.text}`}>\n <span className='clamp-1'>{props.data.name}</span>\n </h3>\n </Tooltip>\n )}\n\n <div className={`\n ${props.theme?.thumbnailContainerClass ?? ''} w-75 overflow-hidden \n ${styles.thumbnailContainer} ${props.titlePosition === 'above' ? styles.titleAbove : ''} \n ${styles.imageStyle}\n `}>\n <ResourceThumbnail\n resource={props.data}\n imageCdnUrl={props.imageCdnUrl}\n imageErrorFallbackUrl={props.imageErrorFallbackUrl}\n preloadImage={props.preloadImage}\n dynamicRatioImageOptions={props.dynamicRatioImageOptions}\n />\n </div>\n\n {isResource && props.onClickDownload && props.actionBehaviour === 'normal' && (\n <div className={styles.actions}>\n <DivButton\n onClick={e => {\n e.preventDefault();\n e.stopPropagation();\n onDownload();\n }}\n className={`${styles.download} d-flex align-items-center justify-content-center`}\n >\n <SvgContainer svgName={cvSvgLibrary.Download} />\n </DivButton>\n </div>\n )}\n\n {!props.hideTypeBadge && isResource && (\n <TypeBadge typeId={MasterType.Resource} />\n )}\n </div>\n </div>\n </div>\n {props.titlePosition === 'below' && (\n <div className={`mt-1 ${styles.titleBelow}`}>\n {(\n MasterTypeHelper.isType<Resource>(props.data, MasterType.Resource) &&\n !!props.data?.metadata?.resourceType\n ) && (\n <TitleSubText>\n {ResourceHelper.getResourceTypeName(props.data.metadata.resourceType)}\n </TitleSubText>\n )}\n\n <h3 className='h6 clamp-2'>\n {props.data.name}\n </h3>\n </div>\n )}\n </>\n );\n}\n\nexport interface ResourceWidgetItemV2Props extends ResourceTileProps, FixedWidgetItemProps<Resource | Link> {\n location: 'play-page' | 'dashboard';\n}\n\nexport const ResourceWidgetItemV2 = React.memo(function(props: ResourceWidgetItemV2Props): JSX.Element {\n // Mobile is not allowed to preview\n const canPreview = useCanPreviewResource(props.data, props.actionBehaviour);\n\n function getLocationClass(): string {\n if (props.location === 'play-page')\n return styles.playPage;\n\n return styles.dashboard;\n }\n\n const analyticsData = { ...props.analyticsData, id: props.data.id, name: props.data.name };\n\n const analyticsOptions: AnalyticsOptions = {\n ...props.analyticsOptions,\n actionType: UserAction.Click,\n entity: props.data.typeId === MasterType.Resource ? EntityType.Resource : EntityType.Link\n };\n\n function logAction(): void {\n AnalyticsHelper.logUserAction(analyticsData, analyticsOptions);\n }\n\n const tileProps: ResourceTileProps = {\n ...props,\n // Apply the hover state if we have a url or the resource can be previewed\n applyHoverState: canPreview || !!props.data.url\n };\n\n return (\n <div className={`px-1 flex-shrink-0 ${styles.item} ${getLocationClass()} ${SeoConstants.RESOURCE_ITEM_SELECTOR}`}>\n {(() => {\n const className = `d-block no-decoration`;\n\n // Handle resource links\n if (props.data.type === 'link') {\n return (\n <a href={props.data.url} target='_blank' className={className} onClick={logAction}>\n <ResourceTileV2 {...tileProps} />\n </a>\n );\n }\n\n if (canPreview) {\n /**\n * Previewing resources in a public context will always display the sign-up popup, so there \n * will never be a full URL. For SEO purposes, we deliberately use a span over an anchor\n * to ensure we're not creating self-referencing elements that will burn crawl budget.\n */\n if (props.actionBehaviour === 'public') {\n return (\n <div className={`${className} cursor-pointer d-inline`} onClick={() => {\n logAction();\n AppLinkHelper.trigger(props.getAppLink(props.data));\n }}>\n <ResourceTileV2 {...tileProps} />\n </div>\n );\n }\n\n return (\n <AppLink\n appLink={props.getAppLink(props.data)}\n className={className}\n analyticsData={analyticsData}\n analyticsOptions={analyticsOptions}\n >\n <ResourceTileV2 {...tileProps} />\n </AppLink>\n );\n }\n\n // URLs cannot be previewed\n if (props.data.url) {\n return (\n <a href={props.data.url} className={className} onClick={logAction}>\n <ResourceTileV2 {...tileProps} />\n </a>\n );\n }\n\n // Theres no url, so don't render an <a>\n return (\n <div className={className}>\n <ResourceTileV2 {...tileProps} />\n </div>\n );\n })()}\n </div>\n );\n});","// extracted by mini-css-extract-plugin\nexport default {\"itemsWrapper\":\"m6mGm\",\"anchorWrapper\":\"QptZj\",\"default\":\"_AZa8\",\"selectedItem\":\"Nuiel\",\"disabled\":\"WIzWJ\",\"floatIcon\":\"ARudn\",\"arrowIcon\":\"tEF5Q\",\"listIcon\":\"Ql2wi\"};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { ScrollHelper } from 'libs/common/backbone/utils/ScrollHelper';\n\nimport { EntityType, HashObject, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\n\nimport styles from './table-of-contents-list.scss';\n\nexport interface TableOfContentsItem<T=string> {\n name: string;\n id: T;\n tocIndentation?: number;\n}\n\ninterface TableOfContentsProps<T> {\n items: TableOfContentsItem<T>[];\n activeId: string;\n appLink?: Core.AppLink;\n analyticsData?: HashObject;\n setControlledId: (arg: string) => void;\n // set to true if the TOC is controlled by a local state rather than query params\n localState?: boolean;\n getAppLink?: (args: TableOfContentsItem<T>) => Core.AppLink;\n onItemClick?: (args: TableOfContentsItem<T>) => void;\n}\n\nexport function TableOfContentsList<T extends string>(props: TableOfContentsProps<T>): JSX.Element {\n const analyticsOptions = {\n actionType: UserAction.Click,\n entity: EntityType.Widget,\n location: LocationContext.TableOfContents\n };\n\n function onItemSelect(item: TableOfContentsItem<T>) {\n ScrollHelper.preventScrollTop();\n props.setControlledId(item.id);\n \n props.onItemClick?.(item);\n \n setTimeout(() => document.getElementById(item.id)?.focus());\n }\n\n return (\n <div className={`${styles.itemsWrapper}`}>\n {props.items.map((item, idx) => {\n if (props.localState) {\n return (\n <DivButton\n key={item.id}\n className={`${styles.anchorWrapper} ${props.activeId === item.id ? styles.selectedItem : ''}`}\n onClick={() => {\n onItemSelect(item);\n }}\n >\n <div className={`${!props.activeId && idx === 0 ? styles.default : ''} `}>\n {item.name}\n </div>\n </DivButton>\n );\n }\n\n return (\n <AppLink\n key={item.id}\n appLink={props.getAppLink(item)}\n appLinkOptions={{ replace: true }}\n className={`${styles.anchorWrapper} ${props.activeId === item.id ? styles.selectedItem : ''}`}\n onClick={() => {\n onItemSelect(item);\n }}\n analyticsData={{\n ...props.analyticsData,\n id: item.id,\n name: item.name\n }}\n analyticsOptions={analyticsOptions}\n >\n <div className={`${!props.activeId && idx === 0 ? styles.default : ''} ${item.tocIndentation ? 'ms-3' : ''}`}>\n {item.name}\n </div>\n </AppLink>\n );\n })}\n </div>\n );\n}","import React from 'react';\n\nimport { useResizeListener } from 'libs/shared/hooks/UseResizeListener';\n\nexport function useExpandableTextButton() {\n const containerRef = React.useRef<HTMLDivElement>(null);\n\n const memoClientHeight = React.useRef<number>(0);\n\n React.useEffect(() => {\n if (containerRef.current.clientHeight)\n // memo the initial clientHeight, cuz after expand and collapse the clientHeight will change\n memoClientHeight.current = containerRef.current.clientHeight;\n }, []);\n\n const [ showButton, setShowButton ] = React.useState(containerRef.current?.scrollHeight > memoClientHeight.current);\n\n useResizeListener(() => {\n if (containerRef.current.clientHeight) {\n // update memo value on resize\n memoClientHeight.current = containerRef.current.clientHeight;\n setShowButton(containerRef.current?.scrollHeight > memoClientHeight.current);\n }\n });\n\n React.useEffect(() => {\n if (containerRef.current?.scrollHeight) {\n setShowButton(containerRef.current?.scrollHeight > memoClientHeight.current);\n }\n }, [ containerRef.current?.scrollHeight, memoClientHeight.current ]);\n\n return { containerRef, showButton };\n}","import React from 'react';\n\ntype TableOfContentsActiveOption = {\n setActiveId: (id: string) => void;\n headingElements: Element[];\n controlledId?: string;\n setControlledId?: (arg: string) => void;\n}\n\nlet timer: number;\n\nexport const useTableOfContentsActiveHeading = (\n { setActiveId, headingElements, controlledId, setControlledId }: TableOfContentsActiveOption\n) => {\n const scrollPositionRef = React.useRef(0);\n\n React.useEffect(() => {\n const callback = (headings: IntersectionObserverEntry[]) => {\n headings.forEach(heading => {\n if (controlledId) {\n setActiveId(controlledId);\n // can use scrollEnd event when the new event type is supported\n timer = window.setTimeout(() => {\n setControlledId('');\n }, 800);\n return;\n }\n if (heading.isIntersecting) {\n setActiveId(heading.target.id);\n scrollPositionRef.current = window.scrollY;\n } else {\n const scrollDistance = scrollPositionRef.current - window.scrollY;\n const isScrollingUp = scrollDistance > 0;\n const curIndex = headingElements.findIndex(h => h.id === heading.target.id);\n const prevHeading = headingElements[curIndex - 1];\n if (isScrollingUp && prevHeading?.id) {\n setActiveId(prevHeading?.id);\n }\n }\n });\n };\n\n const observer = new IntersectionObserver(callback, {\n // rootMargin top: same as the cv-nav-height\n rootMargin: '-67px 0px -80% 0px'\n });\n\n headingElements.forEach(element => observer.observe(element));\n\n return () => {\n timer && window.clearTimeout(timer);\n observer.disconnect();\n };\n }, [ setActiveId, headingElements.length, controlledId ]);\n};\n\n","import { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions, EntityType, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { Resource } from '../interfaces';\n\nlet downloadRef: HTMLIFrameElement = null;\n\nexport const DownloadHelper = {\n getVideoDownloadUrl(downloadProxyUrl: string, token: string): string {\n return UrlHelper.safeUrlConcat(UrlHelper.makeHttps(downloadProxyUrl), `/download?token=${token}`);\n },\n\n downloadResource(\n resource: Resource,\n analyticsData: HashObject,\n analyticsOptions: AnalyticsOptions\n ): void {\n let iframe = downloadRef;\n\n if (!downloadRef) {\n iframe = downloadRef = document.createElement('iframe');\n document.body.appendChild(iframe);\n\n iframe.style.display = 'none';\n }\n\n iframe.src = resource.url;\n\n AnalyticsHelper.logUserAction({\n id: resource?.id,\n name: resource?.name,\n resourceType: resource?.metadata?.resourceType,\n ...analyticsData\n }, {\n actionType: UserAction.Download,\n entity: EntityType.Resource,\n workflowPhase: WorkflowPhase.Complete,\n ...analyticsOptions\n });\n }\n};","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"qA4yj\",\"showInSide\":\"kd9hB\",\"aside\":\"j28IY\",\"collapse\":\"sFoPk\",\"iconContainer\":\"PYyBV\",\"arrowIcon\":\"MTodB\",\"listIcon\":\"W76p8\"};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { PortalHelper } from 'libs/common/react/utils/PortalHelper';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EntityType, HashObject, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { TableOfContentsList } from 'libs/shared/components/table-of-contents-list/TableOfContentsList';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { PlayPageAnchor } from 'libs/shared/interfaces/PlayPageAnchor';\nimport { ContextService } from 'libs/shared/services/ContextService';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { PLAY_PAGE_TOC_PORTAL_ID } from 'shared/layouts/teacher-layout/TeacherLayoutComponent';\n\nimport styles from './table-of-contents.scss';\n\nconst namespace = 'shared.playPage';\n\nexport interface TableOfContentsItem {\n name: string;\n id: PlayPageAnchor;\n}\n\ninterface TableOfContentsProps {\n items: TableOfContentsItem[];\n activeId: string;\n appLink?: Core.AppLink;\n analyticsData?: HashObject;\n setControlledId: (arg: string) => void;\n isExpanded: boolean;\n setIsExpanded: (arg: boolean) => void;\n showInSide: boolean;\n}\n\nfunction TableOfContentsIcon(props: TableOfContentsProps) {\n function logUserAction() {\n const analyticsOptions = {\n actionType: !props.isExpanded ? UserAction.Open : UserAction.Hide,\n entity: EntityType.TableOfContents,\n location: LocationContext.PlayPage\n };\n\n AnalyticsHelper.logUserAction(props.analyticsData, analyticsOptions);\n }\n\n function onClickIcon() {\n props.setIsExpanded(!props.isExpanded);\n logUserAction();\n }\n\n return (\n <div className='d-flex justify-content-end'>\n <div className={styles.container}>\n <div className={`${styles.iconContainer}`} >\n <IconButton\n className={`btn btn-outline-dark ${styles.listIcon}`}\n svgName={cvSvgLibrary.TableOfContents}\n onClick={onClickIcon}\n />\n \n <IconButton\n className={`btn btn-outline-dark ${styles.arrowIcon}`}\n svgName={!props.isExpanded ? cvSvgLibrary.ExpandLeft : cvSvgLibrary.CollapseRight}\n onClick={onClickIcon}\n />\n </div>\n </div>\n </div>\n );\n}\n\nfunction TableOfContents(props: TableOfContentsProps) {\n function logUserAction() {\n const analyticsOptions = {\n actionType: UserAction.Hide,\n entity: EntityType.TableOfContents,\n location: LocationContext.PlayPage\n };\n\n AnalyticsHelper.logUserAction(props.analyticsData, analyticsOptions);\n }\n\n function getAppLink(item: any): Core.AppLink {\n const currentAppLink = ContextService.getCurrentRoute().appLink;\n\n const params: HashObject = currentAppLink.params\n ? { ...(currentAppLink.params as HashObject) }\n : {};\n\n params.tocId = item.id;\n\n return {\n ...currentAppLink,\n params\n };\n }\n\n function onClickTableOfContentsHeading() {\n if (!props.showInSide) {\n // in mobile version, collapse once user hit the TOC item\n props.setIsExpanded(false);\n }\n }\n\n return (\n <div className={!props.showInSide ? 'd-inline-flex gap-1' : `col col-2 ps-4`}>\n <aside className={`${styles.aside} position-relative ${!props.showInSide ? 'px-3 pt-3 pb-2 border border-dark rounded-1 bg-white' : 'pe-1 pt-1 '}`}>\n <div className={`${styles.container} ${!props.showInSide ? '' : styles.showInSide}`}>\n {props.showInSide && (\n <IconButton\n className={`btn position-absolute ${styles.collapse}`}\n svgName={cvSvgLibrary.CollapseRight}\n onClick={() => {\n props.setIsExpanded(false);\n logUserAction();\n }}\n />\n )}\n <h2 className='h5'><Text namespace={namespace} phrase='tocHeading' /></h2>\n \n <TableOfContentsList\n items={props.items}\n activeId={props.activeId}\n getAppLink={getAppLink}\n setControlledId={props.setControlledId}\n analyticsData={props.analyticsData}\n onItemClick={() => onClickTableOfContentsHeading()}\n />\n </div>\n \n </aside>\n {/* in mobile version, always show icon on the right */}\n {!props.showInSide && <TableOfContentsIcon {...props}/>}\n </div>\n );\n}\n\nexport function TableOfContentsContainer(props: TableOfContentsProps): JSX.Element {\n return (\n <>\n {/* web version show table of contents next to player */}\n {props.isExpanded && props.showInSide && <TableOfContents {...props}/>}\n \n {/* web version show icon in portal (RHS of window) */}\n {PortalHelper.renderInPortalIfExists(\n !props.isExpanded && <TableOfContentsIcon {...props}/>,\n document.getElementById(PLAY_PAGE_TOC_PORTAL_ID)\n )}\n\n {/* mobile version show in portal */}\n {PortalHelper.renderInPortalIfExists(\n !props.showInSide && props.isExpanded && <TableOfContents {...props}/>,\n document.getElementById(PLAY_PAGE_TOC_PORTAL_ID)\n )}\n </>\n );\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { Clip, InteractiveMetadata, Link, Resource } from 'libs/shared/interfaces';\nimport { PlayPageAnchor } from 'libs/shared/interfaces/PlayPageAnchor';\n\ninterface SectionHeadingOptions {\n clips: Clip[];\n interactives: InteractiveMetadata[];\n resources: Resource[] | Link[];\n isPlayClipPage?: boolean;\n}\n\nconst namespace = 'shared.play';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport const PlayPageUtils = {\n getSectionHeading(id: PlayPageAnchor, options: SectionHeadingOptions) {\n switch (id) {\n case PlayPageAnchor.Resources:\n return getPhrase('resourcesHeading', { count: options.resources.length });\n\n case PlayPageAnchor.Clips:\n if (options.isPlayClipPage)\n return getPhrase('otherClipsHeading', { count: options.clips.length - 1 });\n return getPhrase('clipsHeading', { count: options.clips.length });\n\n case PlayPageAnchor.Interactives:\n return getPhrase('interactivesHeading', { count: options.interactives.length });\n\n case PlayPageAnchor.Video:\n return getPhrase('videoHeading');\n\n case PlayPageAnchor.VideoDetails:\n return getPhrase('videoDetailsHeading');\n\n case PlayPageAnchor.RelatedVideos:\n return getPhrase('upNextHeading');\n\n case PlayPageAnchor.CurriculumLinks:\n return getPhrase('curriculumLinksHeading');\n\n case PlayPageAnchor.ClippedFrom:\n return getPhrase('clippedFromHeading');\n\n default:\n return '';\n }\n }\n\n};","import React from 'react';\n\nimport { LocalStorageHelper } from 'libs/common/backbone/utils/LocalStorageHelper';\n\nimport { useShouldShowSideTableOfContents } from 'shared/views/play/v2/hooks/useShouldShowTableOfContents';\n\nconst PLAY_PAGE_TOC_EXPANDED = 'play-page-toc-expanded';\n\nexport function usePlayPageTableOfContent(tocId: string) {\n const showInSide = useShouldShowSideTableOfContents();\n\n const localValue = LocalStorageHelper.get(PLAY_PAGE_TOC_EXPANDED) !== false;\n const tocDefaultExpanded = !showInSide ? false : localValue;\n\n const [ controlledId, setControlledId ] = React.useState(tocId || '');\n const [ tableOfContentsActiveId, setTableOfContentsActiveId ] = React.useState<string>('');\n const [ tableOfContentsExpanded, setTableOfContentsExpanded ] = React.useState(tocDefaultExpanded);\n \n React.useEffect(() => {\n if (!showInSide) {\n // automatically collpase on mobile version\n setTableOfContentsExpanded(false);\n } else {\n setTableOfContentsExpanded(localValue);\n }\n }, [showInSide]);\n\n function onToggleTableOfContents() {\n setTableOfContentsExpanded(!tableOfContentsExpanded);\n LocalStorageHelper.set(PLAY_PAGE_TOC_EXPANDED, !tableOfContentsExpanded);\n }\n\n return {\n controlledId,\n setControlledId,\n tableOfContentsExpanded,\n tableOfContentsActiveId,\n setTableOfContentsActiveId,\n onToggleTableOfContents\n };\n}","import { PlayPageAnchor } from 'libs/shared/interfaces/PlayPageAnchor';\n\nexport const PLAY_PAGE_SECTIONS_ORDER = [\n PlayPageAnchor.Video,\n PlayPageAnchor.CurriculumLinks,\n PlayPageAnchor.Resources,\n PlayPageAnchor.Interactives,\n PlayPageAnchor.Clips,\n PlayPageAnchor.VideoDetails,\n PlayPageAnchor.ClippedFrom,\n PlayPageAnchor.RelatedVideos\n];\n\nexport const PLAY_PAGE_SECTIONS_ORDER_NO_GLANCE = [\n PlayPageAnchor.Video,\n PlayPageAnchor.VideoDetails,\n PlayPageAnchor.CurriculumLinks,\n PlayPageAnchor.Resources,\n PlayPageAnchor.Interactives,\n PlayPageAnchor.Clips,\n PlayPageAnchor.ClippedFrom,\n PlayPageAnchor.RelatedVideos\n];","import React from 'react';\n\nimport { PlayPageAnchor } from 'libs/shared/interfaces/PlayPageAnchor';\n\nimport { PLAY_PAGE_SECTIONS_ORDER, PLAY_PAGE_SECTIONS_ORDER_NO_GLANCE } from 'shared/constants/PlayPageSectionsOrder';\n\nexport function useSectionHeadings(hasGlance: boolean) {\n const headingRef = React.useRef<Map<PlayPageAnchor, HTMLElement>>(new Map());\n const headingElements = (hasGlance ? PLAY_PAGE_SECTIONS_ORDER : PLAY_PAGE_SECTIONS_ORDER_NO_GLANCE).map(id => {\n return headingRef.current.get(id);\n }).filter(Boolean);\n\n return { headingRef, headingElements };\n}","import { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\n\n// returns boolean value for if we should show the TOC on the side\nexport function useShouldShowSideTableOfContents(): boolean {\n const breakpoints = useBreakpoints();\n const shouldShowSideTableOfContents = breakpoints.lg || breakpoints.xl || breakpoints.xxl;\n return shouldShowSideTableOfContents;\n}","// extracted by mini-css-extract-plugin\nexport default {\"learningIntention\":\"MHM6O\",\"highlightPoi\":\"U7Q6x\",\"icon\":\"H1xbT\"};"],"names":["PortalHelper","renderInPortalIfExists","component","portalContainer","createPortal","getPhrase","BreadcrumbItem","props","ref","breadcrumb","name","appLink","active","withBackIcon","className","svgName","size","S","Breadcrumbs","breadcrumbs","isMobile","length","collapse","setCollapse","shouldFocus","setShouldFocus","expandRef","characterLength","reduce","prev","next","current","focus","first","second","secondLast","last","rest","slice","onClick","map","idx","key","PartialBreadcrumbs","numItems","style","height","width","dangerouslySetInnerHTML","__html","namespace","CONTAINER_HEIGHT","CopyrightDisclaimer","isHovering","phraseClassName","Text","phrase","Overlay","target","show","placement","overflowPlacement","document","documentElement","clientHeight","getBoundingClientRect","bottom","preventOverflow","ClipWidgetItemV2","clip","data","thumbnailSize","preloadImage","getAppLink","mergedAudience","subjectPresentationAudiences","audiences","VideoThumbnail","type","textPosition","ThumbnailTextPosition","video","imageOptions","preload","analyticsData","analyticsOptions","setFavourite","canFavourite","imageCdnUrl","audience","hideDuration","isPlugin","showOwner","ThumbnailText","PlayPageClips","canViewClips","clips","parentIsVideo","VideoHelper","title","LanguageService","count","id","PlayPageAnchor","el","headingRef","set","contents","WidgetContents","collection","prefetched","getChildAppLink","application","action","args","TextHelper","childComponent","extraChildComponentProps","yearGroups","VideoDescription","expanded","setExpanded","useExpandableTextButton","containerRef","showButton","DivButton","LinkifyHelper","description","nl2br","CommaList","label","items","commaSeperated","i","join","DetailsSection","parentVideo","productionYear","options","year","smartCount","productionCompanies","distributors","producers","directors","dateBroadcast","date","DateHelper","channel","currentUser","isAuthenticated","dateCreated","_isClickViewCurated","value","showDateUploaded","VideoDetailsWithScrollbarV2","maxHeight","showDescription","showDetails","tags","hideTags","filter","tag","tagType","TagType","getTags","showHeading","autoHeight","autoHeightMax","hideTracksWhenNotNeeded","ImmersiveReader","text","onLaunch","onLaunchImmersiveReader","onExit","onExitImmersiveReader","location","entity","actionType","descriptor","TagList","TagHelper","getTagAppLink","suppressInteractivity","POI_LINK_LINE","useLearningIntentionMarkdown","hasGlanceData","useState","markdownHTML","setMarkdownHTML","useEffect","content","glance","learningIntention","replace","format","useHighlightPointOfInterest","pointOfInterest","shouldHighlight","useRef","onGlancePoiMouseOver","onGlancePoiMouseLeave","hoveredPoi","toString","classList","add","remove","addEventListener","removeEventListener","PointOfInterest","timeStamp","DurationHelper","poi","startTime","wideBadge","onClickPoiItem","PointOfInterestList","sortedPointsOfInterest","pointsOfInterest","sort","a","b","hasTimePointOverHours","some","SCROLL_HEIGHT_MAX","ScrollbarWrapper","hideScrollbar","children","VideoAtAGlanceV2","learningIntentionMarkdownHTML","canViewGlance","textToCopy","setTextToCopy","innerText","Tooltip","spanHack","spanHackClassName","SvgContainer","videoId","videoName","AnalyticsHelper","onClickTag","time","setStartTime","InteractiveWidgetItemV2","interactive","questionsAppLink","questionsNumber","_timepoints","ariaLabel","PlayPageInteractives","canViewInteractives","interactives","PlayPageResources","hasPermissions","resources","isLearner","links","filteredResources","r","includes","metadata","resourceType","getResources","imageErrorFallbackUrl","resourceThumbnailFallbackUrl","actionBehaviour","canViewResources","titlePosition","onClickDownload","resource","workflowPhase","SignUp","useCanPreviewResource","breakpoints","useBreakpoints","xs","sm","ResourceFileType","url","pdf","ResourceTileV2","isResource","MasterTypeHelper","MasterType","baseClass","getColour","theme","containerClass","applyHoverState","getInnerContainerClass","thumbnailContainerClass","ResourceThumbnail","dynamicRatioImageOptions","e","preventDefault","stopPropagation","hideTypeBadge","TypeBadge","typeId","TitleSubText","ResourceHelper","defaultProps","ResourceWidgetItemV2","canPreview","logAction","tileProps","SeoConstants","href","AppLink","TableOfContentsList","onItemSelect","item","ScrollHelper","setControlledId","onItemClick","setTimeout","getElementById","localState","activeId","appLinkOptions","tocIndentation","memoClientHeight","scrollHeight","setShowButton","timer","useTableOfContentsActiveHeading","setActiveId","headingElements","controlledId","scrollPositionRef","observer","IntersectionObserver","headings","forEach","heading","window","isIntersecting","scrollY","isScrollingUp","curIndex","findIndex","h","prevHeading","rootMargin","element","observe","clearTimeout","disconnect","downloadRef","DownloadHelper","getVideoDownloadUrl","downloadProxyUrl","token","downloadResource","iframe","createElement","body","appendChild","display","src","TableOfContentsIcon","onClickIcon","setIsExpanded","isExpanded","IconButton","TableOfContents","showInSide","currentAppLink","ContextService","params","tocId","TableOfContentsContainer","PlayPageUtils","getSectionHeading","isPlayClipPage","PLAY_PAGE_TOC_EXPANDED","usePlayPageTableOfContent","localValue","tocDefaultExpanded","tableOfContentsActiveId","setTableOfContentsActiveId","tableOfContentsExpanded","setTableOfContentsExpanded","onToggleTableOfContents","PLAY_PAGE_SECTIONS_ORDER","PLAY_PAGE_SECTIONS_ORDER_NO_GLANCE","useSectionHeadings","hasGlance","Map","get","Boolean","useShouldShowSideTableOfContents","lg","xl","xxl"],"sourceRoot":""}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
/*! For license information please see 4013-7b878e3212-lite.chunk.js.LICENSE.txt */
|
|
2
|
-
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[4013],{7870:(e,t,n)=>{n.d(t,{N:()=>c});var a=n(97395),i=n(75896),r=n(110),o=n(40424),c={calendarEvents:function(e,t,n){return{url:a._.urlBuilder("{gateway}/v1/discover/special-events/content",{from:e,to:t,presentationId:n}),publicUrl:a._.urlBuilder("/api/discover/special-events/content",{from:e,to:t,presentationId:n}),key:"presentation:".concat(n,":events:from:").concat(e,":to").concat(t)}},nextTopicSpecialEvent:function(e,t){var n={presentationId:t,limit:1,from:r.O.format(new Date,"YYYY-MM-DD"),objectType:o.VH.Classification};return{url:a._.urlBuilder("{gateway}/v1/discover/special-events/object/".concat(e,"/next-events"),n),publicUrl:a._.urlBuilder("/api/discover/special-events/object/".concat(e,"/next-events"),n),key:"presentation:".concat(t,":events:classification:").concat(e),formatData:function(e){return i.m.first(e)}}}}},69395:(e,t,n)=>{n.d(t,{e:()=>s});var a=n(32735),i=n(23481),r=n(91967);const o={disabled:"pERi4",disabledHighlighted:"AxyWm"};var c=i.T.encloseNamespace("shared.audienceItem");function s(e){var t=e.audience,n=e.highlight,i=e.setAudience,s=e.isDisabled,l=e.extraClasses,u=function(e,t){return e?t?"".concat(o.disabledHighlighted," text-light"):"bg-gray-900 text-light":t?"".concat(o.disabled," text-secondary"):"bg-light"}(n,s),d="rounded-pill d-inline-block me-1 user-select-none ".concat(s?"cursor-default":"cursor-pointer"," ").concat(u," ").concat(l);return a.createElement("button",{className:d,onClick:function(){!s&&r.q.isFunction(i)&&i(t,!n)},role:"checkbox","aria-checked":n,"aria-label":"".concat(c("ariaFilter")," ").concat(t.name)},t.name.split(" ").map((function(e){return e.charAt(0).toUpperCase()+e.substring(1)})).join(" "))}s.defaultProps={extraClasses:""}},28046:(e,t,n)=>{n.d(t,{l:()=>f,v:()=>m});var a=n(39479),i=["pdf"],r=["doc","docx","dotx","dot","rtf","docm","odt"],o=["csv","txt"],c=["xls","xlt","xlsx"],s=["jpg","tif","png","bmp","gif","jpeg"],l="video/*",u=["zip","rar"],d=["ppt","pot","pps","pptx"],p=["srt"],f={IMAGES:".".concat(s.join(",.")),VIDEO:l,MIXED_MEDIA:".".concat(s.join(",."),",").concat(l),RESOURCES:".".concat([].concat(r,c,d,i,o,s,u).join(",.")),SUBTITLES:".".concat(p.join(",."))},m={getResourceType:function(e){var t=e.toLowerCase();return a.contains(r,t)?"document":a.contains(c,t)?"excel":a.contains(d,t)?"powerpoint":a.contains(i,t)?"pdf":a.contains(o,t)?"text":a.contains(s,t)?"image":a.contains(u,t)?"archive":a.contains(p,t)?"subtitle":""}}},38502:(e,t,n)=>{n.d(t,{r:()=>d});var a=n(32735),i=n(49985),r=n(36848),o=n(18559),c=n(11607),s=n(83914),l=n(87432);function u(e){return a.createElement(a.Fragment,null,!!e.tab.svgName&&a.createElement("div",{className:e.tab.name?"pe-1":""},a.createElement(s.x,{svgName:e.tab.svgName})),e.tab.name,"number"==typeof e.tab.count&&a.createElement("div",{className:"ps-2"},a.createElement(o.C,{type:o.g.Count,data:e.tab.count})))}function d(e){var t;return a.createElement("nav",{className:null!==(t=e.className)&&void 0!==t?t:"",ref:e.containerRef},a.createElement("ul",{className:"\n list-unstyled d-inline-block m-0 ".concat(l.Z.pillTabSelector,"\n ").concat(e.borderRadius?l.Z.radiusSmall:"","\n ").concat(e.listClassName,"\n ")},e.tabs.map((function(e,t){return a.createElement("li",{className:"\n p-0 ".concat(l.Z.tab," ").concat(e.active?"btn btn-dark":"btn btn-outline-dark","\n ").concat(e.name?l.Z.minWidth:""," ").concat(e.className,"\n "),key:t},e.appLink?a.createElement(r.F,{appLink:e.appLink,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ".concat(l.Z.tabLink,"\n ")},a.createElement(u,{tab:e})):a.createElement(c.L,{className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset p-2 text-nowrap ".concat(l.Z.tabLink,"\n "),onClick:function(){return function(e){!e.active&&e.onSelect&&(e.onSelect(),e.analyticsData&&e.analyticsOptions&&i.k.logUserAction(e.analyticsData,e.analyticsOptions))}(e)}},a.createElement(u,{tab:e})))}))))}d.defaultProps={borderRadius:"lg"}},75838:(e,t,n)=>{n.d(t,{w:()=>l});var a=n(32735),i=n(92869),r=n(65858),o=n(36848),c=n(11607);const s={itemsWrapper:"m6mGm",anchorWrapper:"QptZj",default:"_AZa8",selectedItem:"Nuiel",disabled:"WIzWJ",floatIcon:"ARudn",arrowIcon:"tEF5Q",listIcon:"Ql2wi"};function l(e){var t={actionType:r.Vw.Click,entity:r.py.Widget,location:r.LZ.TableOfContents};function n(t){var n;i.t.preventScrollTop(),e.setControlledId(t.id),null===(n=e.onItemClick)||void 0===n||n.call(e,t),setTimeout((function(){var e;return null===(e=document.getElementById(t.id))||void 0===e?void 0:e.focus()}))}return a.createElement("div",{className:"".concat(s.itemsWrapper)},e.items.map((function(i,r){return e.localState?a.createElement(c.L,{key:i.id,className:"".concat(s.anchorWrapper," ").concat(e.activeId===i.id?s.selectedItem:""),onClick:function(){n(i)}},a.createElement("div",{className:"".concat(e.activeId||0!==r?"":s.default," ")},i.name)):a.createElement(o.F,{key:i.id,appLink:e.getAppLink(i),appLinkOptions:{replace:!0},className:"".concat(s.anchorWrapper," ").concat(e.activeId===i.id?s.selectedItem:""),onClick:function(){n(i)},analyticsData:Object.assign(Object.assign({},e.analyticsData),{id:i.id,name:i.name}),analyticsOptions:t},a.createElement("div",{className:"".concat(e.activeId||0!==r?"":s.default," ").concat(i.tocIndentation?"ms-3":"")},i.name))})))}},17101:(e,t,n)=>{var a;n.d(t,{n:()=>a}),function(e){e[e.Other=0]="Other",e[e.SuggestImprovement=1]="SuggestImprovement",e[e.ReportBug=2]="ReportBug",e[e.RequestVideo=3]="RequestVideo",e[e.RaiseIssue=4]="RaiseIssue",e[e.GivePraise=5]="GivePraise",e[e.Footer=6]="Footer",e[e.RequestLivestream=7]="RequestLivestream"}(a||(a={}))},94644:(e,t,n)=>{n.d(t,{r:()=>u});var a=n(50242),i=n(81886),r=n(67058),o=n(14553),c=n(49267),s=n(49075),l={notFound:r.d,forbidden:{rating:o.q,yearLevel:o.q,region:c.a,privacy:o.q},badRequest:s._};function u(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e){var r;r="number"==typeof e?e:e.status;var o=Object.assign(Object.assign({},l),t);r&&i.Q.Ry.isStatusCodeError(r)&&(r!==a.o.NotFound?r!==a.o.Forbidden?n.badRequest||i.Q.Ry.throw(new o.badRequest):n.forbidden||i.Q.Ry.throw(new o.forbidden.privacy):n.notFound||i.Q.Ry.throw(new o.notFound))}}},7198:(e,t,n)=>{n.d(t,{f:()=>i});var a=n(99940),i={submitFeedback:function(e,t){return{url:"{gateway}/v1/feedback",key:"submit:feedback",type:a.k.POST,data:Object.assign(Object.assign({},e),t)}}}},91286:(e,t,n)=>{n.d(t,{v:()=>o});var a=n(32735),i=n(94644);function r(e){return e.map((function(e){return e.statusCode})).join(":")}function o(e,t,n){var o=Array.isArray(e)?e:[e];(0,a.useEffect)((function(){o.forEach((function(e){(0,i.r)(e.statusCode,t,n)}))}),[r(o),t,n])}},94631:(e,t,n)=>{n.d(t,{D:()=>i});var a=n(32735);function i(e){var t=a.useRef();return a.useEffect((function(){t.current=e})),t.current}},65332:(e,t,n)=>{n.d(t,{D:()=>r});var a,i=n(32735),r=function(e){var t=e.setActiveId,n=e.headingElements,r=e.controlledId,o=e.setControlledId,c=i.useRef(0);i.useEffect((function(){var e=new IntersectionObserver((function(e){e.forEach((function(e){if(r)return t(r),void(a=window.setTimeout((function(){o("")}),800));if(e.isIntersecting)t(e.target.id),c.current=window.scrollY;else{var i=c.current-window.scrollY>0,s=n.findIndex((function(t){return t.id===e.target.id})),l=n[s-1];i&&(null==l?void 0:l.id)&&t(null==l?void 0:l.id)}}))}),{rootMargin:"-67px 0px -80% 0px"});return n.forEach((function(t){return e.observe(t)})),function(){a&&window.clearTimeout(a),e.disconnect()}}),[t,n.length,r])}},76196:(e,t,n)=>{n.d(t,{P:()=>o});var a=n(32735),i=n(94631);function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var o=function(e,t){var n,o,c=(n=a.useState(!1),o=2,function(e){if(Array.isArray(e))return e}(n)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,i,r,o,c=[],s=!0,l=!1;try{if(r=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(a=r.call(n)).done)&&(c.push(a.value),c.length!==t);s=!0);}catch(e){l=!0,i=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return c}}(n,o)||function(e,t){if(e){if("string"==typeof e)return r(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r(e,t):void 0}}(n,o)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),s=c[0],l=c[1],u=(0,i.D)(t),d=t;a.useLayoutEffect((function(){if(!s||u!==d){var t=e.find((function(e){return e&&(null==e?void 0:e.id)===d}));if(t){var n=t.getBoundingClientRect();window.scrollBy({top:n.top-80,behavior:"smooth"}),s||l(!0)}}}),[e,u,d,s])}},52167:(e,t,n)=>{n.d(t,{m:()=>l});var a=n(53301),i=n.n(a),r=n(28046),o=n(19808),c=n(86613);function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var l={getUserInfo:function(e,t){return{id:e.id,username:e.username,email:e.email,userType:e.role===c.i.Admin?"Admin":"Staff",customerId:e.customerId,cvcId:t.crmId,customerName:t.name,instanceRegion:e.instanceRegion,contentRegion:e.contentRegion,firstName:e.givenName,lastName:e.familyName}},mapInstanceRegionToTag:function(e){switch(e){case o.b.AU:return"au";case o.b.NZ:return"nz";case o.b.UK:return"uk";case o.b.US:return"us"}},getTags:function(e,t,n,a){var i,r=[t].concat(function(e){if(Array.isArray(e))return s(e)}(i=a)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(i)||function(e,t){if(e){if("string"==typeof e)return s(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?s(e,t):void 0}}(i)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}());r.push(n?"student":"staff"),e.role===c.i.Admin&&r.push("administrator");var o=l.mapInstanceRegionToTag(e.instanceRegion);return o&&r.push(o),r},categorizeFiles:function(e){return e.reduce((function(e,t){var n=t.get("fileInfo");return i().isValidFile(t.get("file"),r.l.VIDEO)?e.videoUrls.push(null==n?void 0:n.url):e.imageUrls.push(null==n?void 0:n.url),e}),{imageUrls:[],videoUrls:[]})}}},39174:(e,t,n)=>{n.r(t),n.d(t,{CuratedClassificationView:()=>Bt});var a=n(32735),i=n(39202),r=n(23481),o=n(20354),c=n(49985),s=n(65858),l=n(7870),u=n(83345),d=n(87114),p="subject.classificationHeaderDetails",f=function(e){var t=e.className;return a.createElement("span",{className:t},"•")};function m(e){var t=d.i.getCounts(e.classification),n=t.videoCount,i=t.resourceCount,r=t.childClassificationCount;return a.createElement("p",{className:"mb-n1 font-size-normal fw-normal mt-1"},!!r&&a.createElement(u.x,{namespace:p,phrase:"topics",options:{count:r.toLocaleString(),smartCount:r}}),!!n&&a.createElement(a.Fragment,null,r>0&&a.createElement(f,{className:"mx-2"}),a.createElement(u.x,{namespace:p,phrase:"videos",options:{count:n.toLocaleString(),smartCount:n}})),!!i&&a.createElement(a.Fragment,null,a.createElement(f,{className:"mx-2"}),a.createElement(u.x,{namespace:p,phrase:"resources",options:{count:i.toLocaleString(),smartCount:i}})))}var v=n(23232),g=n(76177),y=n(40424),b=n(35223),h="subjects.curatedClassificationEmptyState",w=r.T.encloseNamespace(h);function E(e){var t,n,i=(null===(t=e.dashboard)||void 0===t?void 0:t.status)===y.GL.Archived;return a.createElement(u.D.Provider,{value:h},a.createElement(v.u,null,a.createElement(v.u.Image,{src:e.imageUrl,altText:w("headingForNP")}),e.isReadonly?a.createElement(a.Fragment,null,a.createElement(v.u.Heading,null,a.createElement(u.x,{namespace:h,phrase:"headingForCurator"})),a.createElement(v.u.Info,null,a.createElement(u.x,{namespace:h,phrase:"info"})),a.createElement(g.u,{title:i?r.T.getPhrase(h,"archivedCtaTooltip"):"",spanHack:!0},a.createElement(v.u.Cta,{text:r.T.getPhrase(h,"add"),appLink:null===(n=e.addWidgetApplink)||void 0===n?void 0:n.call(e),className:"btn btn-dark",icon:b.vn.Plus,disabled:i}))):a.createElement(v.u.Heading,null,a.createElement(u.x,{phrase:"headingForNP"}))))}var S=n(10874),T=n(75838),k=n(75795);const I={container:"k1iOO",mobile:"QwoBj"};function L(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function C(e){var t,n,i=(t=a.useState(!1),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,i,r,o,c=[],s=!0,l=!1;try{if(r=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(a=r.call(n)).done)&&(c.push(a.value),c.length!==t);s=!0);}catch(e){l=!0,i=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return c}}(t,n)||function(e,t){if(e){if("string"==typeof e)return L(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?L(e,t):void 0}}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),r=i[0],o=i[1];return a.createElement("div",{className:"".concat(I.mobile," d-inline-flex gap-1")},r&&a.createElement("div",{className:"bg-white px-3 pt-3 pb-2 border border-dark rounded-1 ps-3"},a.createElement("h2",{className:"h5"},e.title),a.createElement(T.w,{items:e.widgets.map((function(e){return{name:e.name,id:e.id,tocIndentation:e.metadata.tocIndentation}})),activeId:e.activeId,appLink:e.appLink,analyticsData:e.analyticsData,setControlledId:e.setControlledId,getAppLink:e.getAppLink,onItemClick:function(){return o(!1)}})),a.createElement("div",{className:I.container},a.createElement(S.h,{className:"btn btn-outline-dark",svgName:b.vn.TableOfContents,onClick:function(){var t;o(!r),t={actionType:r?s.Vw.Hide:s.Vw.Open,entity:s.py.TableOfContents,location:s.LZ.Dashboard},c.k.logUserAction(e.analyticsData,t)}})))}function A(e){return a.createElement("aside",{className:"col-3 order-1"},a.createElement("div",{className:"".concat(I.container," ps-3")},a.createElement("h2",{className:"h5"},e.title),a.createElement(T.w,{items:e.widgets.map((function(e){return{name:e.name,id:e.id,tocIndentation:e.metadata.tocIndentation}})),activeId:e.activeId,appLink:e.appLink,analyticsData:e.analyticsData,setControlledId:e.setControlledId,getAppLink:e.getAppLink})))}function x(e){function t(e){var t=k.O.getCurrentRoute().appLink,n=t.params?Object.assign({},t.params):{};return n.tocId=e.id,Object.assign(Object.assign({},t),{params:n})}return a.createElement(a.Fragment,null,e.isSmallScreen?a.createElement(C,Object.assign({},e,{getAppLink:t})):a.createElement(A,Object.assign({},e,{getAppLink:t})))}var O="subjects.teacherOnlyEmptyState",P=r.T.encloseNamespace(O);function j(e){var t;return a.createElement(u.D.Provider,{value:O},a.createElement(v.u,null,a.createElement(v.u.Image,{src:e.imageUrl,altText:P("heading")}),a.createElement(v.u.Heading,null,a.createElement(u.x,{phrase:"heading"})),a.createElement(v.u.Info,null,a.createElement(u.x,{phrase:"info"})),a.createElement(v.u.Cta,{text:P("cta"),appLink:null===(t=e.ctaAppLink)||void 0===t?void 0:t.call(e),className:"btn btn-dark"})))}var N=n(75896),F=n(42308),D=n(80889),U=n(21366),R=n(44522),B=n(13231),_=n(88513),G=n(76561),V=n(86764),W=n(16714),M=n(78479),H=n(3747),q=n(65332),Z=n(76196),Q=n(42735),z=n(36848),$="subjects.classificationComingSoon",Y=r.T.encloseNamespace($);function J(e){var t,n,i=!!(null===(n=null===(t=e.data.followers)||void 0===t?void 0:t.data)||void 0===n?void 0:n.length);return a.createElement(u.D.Provider,{value:$},a.createElement(v.u,{className:"pt-0"},a.createElement(v.u.Image,{src:e.imageUrl,altText:Y("comingSoon")}),a.createElement(v.u.Heading,null,a.createElement(u.x,{phrase:"comingSoon"})),a.createElement(v.u.Info,null,a.createElement(u.x,{phrase:e.showSignUp?"infoAnon":"info"})),e.canFollowSubjects&&a.createElement(Q.K,{svgName:i?b.vn.BellFilled:b.vn.Bell,onClick:function(){var t;null===(t=e.onToggleFollow)||void 0===t||t.call(e)},showSpinner:e.showFollowButtonSpinner,className:"btn follow-btn me-2 ".concat(i?"btn-outline-dark":"btn-dark")},a.createElement(u.x,{phrase:i?"following":"follow"})),e.showSignUp&&!e.canFollowSubjects&&a.createElement(z.F,{appLink:e.signUpAppLink,className:"btn btn-dark d-none d-lg-inline-block",analyticsOptions:{actionType:s.Vw.Click,location:s.LZ.ClassificationComingSoon,entity:s.py.AppLink,workflowPhase:s.eu.Start,descriptor:s.Yu.SignUp},analyticsData:{},tag:"button"},Y("signUp"))))}var K=n(49935),X=n(79967),ee=n(69454),te=n(57900),ne=n(81886),ae=n(2948),ie=n(1048),re=n(69395),oe=n(11607),ce=n(38143),se=n(5859);function le(e,t){if(e){if("string"==typeof e)return ue(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ue(e,t):void 0}}function ue(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var de="subjects.audienceFilter";function pe(e){var t,n,i=e.audiences,r=e.activeAudiences,o=e.appLink,c=e.disabled||!o,s=(t=(0,ae.D)(ce.g.AUDIENCE_FILTER,void 0,{storage:te.Z1.SessionStorage}),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,i,r,o,c=[],s=!0,l=!1;try{if(r=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(a=r.call(n)).done)&&(c.push(a.value),c.length!==t);s=!0);}catch(e){l=!0,i=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return c}}(t,n)||le(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())[1];function l(e,t){var n;if(!c){var a,i=t?[].concat(function(e){return function(e){if(Array.isArray(e))return ue(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||le(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(null!==(n=null==r?void 0:r.map((function(e){return e.name})))&&void 0!==n?n:[]),[e.name]):r.map((function(e){return e.name})).filter((function(t){return t!==e.name}));ne.Q.C$.trigger(Object.assign(Object.assign({},o),{params:(a=ie.t.omit(o.params,["a"]),i.length?Object.assign({},a,{a:i}):a)}),{replace:!0})}}return a.useEffect((function(){e.disablePersist||s(r)}),[r]),i&&i.length?a.createElement("div",{className:"d-flex flex-wrap row-gap-2"},i.map((function(e){return a.createElement(re.e,{key:e.masterId,audience:e,highlight:!c&&!!(null==r?void 0:r.find((function(t){return t.masterId===e.masterId}))),setAudience:l,isDisabled:c})})),!c&&!!r&&!!Object.keys(r).length&&a.createElement(oe.L,{className:"info-link d-inline-block ms-1",onClick:function(){if(!c){var e=ie.t.omit(o.params,["a"]);ne.Q.C$.trigger(Object.assign(Object.assign({},o),{params:e}),{replace:!0})}}},a.createElement(u.x,{namespace:de,phrase:"clear"}))):a.createElement(a.Fragment,null)}var fe=se.u.getPartialLoadingItems({numItems:6}),me=function(){return a.createElement("div",{className:"d-flex flex-wrap row-gap-2"},fe.map((function(e,t){var n=e.width;return a.createElement("span",{key:t,className:"rounded-pill partial-loading-background me-1",dangerouslySetInnerHTML:{__html:" "},style:{width:n}})})))};function ve(e){return a.createElement(pe,{audiences:e.audiences,activeAudiences:e.activeAudiences,disabled:e.isReadonly,appLink:e.appLink,disablePersist:e.disablePersist})}var ge=n(38502),ye=n(10253),be=n(30064);const he={curatedTopicTab:"CmVlO",tabTransition:"rX31t"};var we="shared.classificationDashboard";function Ee(e,t,n,a){var i,o,c,l,u,p,f,m,v,g,y,h,w,E,S,T,k,I=t.lg||t.xl||t.xxl||t.xs;return d.i.isTopLevelTopic(e.classification)?[{name:I?r.T.getPhrase(we,"newReleases"):"",appLink:e.isReadonly?null:null===(o=null===(i=e.appLinks)||void 0===i?void 0:i.classification)||void 0===o?void 0:o.call(i,e.classification),active:"new-releases"===n,svgName:b.vn.Sparkle,analyticsData:{id:"new-releases",classificationId:e.classification.id,classificationName:e.classification.name,presentationId:e.presentation.id,presentationDescription:e.presentation.description,name:r.T.getPhrase(we,"newReleases"),url:ne.Q.C$.getHref(null===(l=null===(c=e.appLinks)||void 0===c?void 0:c.classification)||void 0===l?void 0:l.call(c,e.classification))},analyticsOptions:{actionType:s.Vw.Click,entity:s.py.Url,location:s.LZ.MagicTabs},className:"".concat(t.xs?"w-100":""," ").concat(a?he.tabTransition:"")},{name:I?r.T.getPhrase(we,"allTopics"):"",appLink:e.isReadonly?null:null===(p=null===(u=e.appLinks)||void 0===u?void 0:u.classificationDirectory)||void 0===p?void 0:p.call(u,e.classification),active:"all-topics"===n,svgName:b.vn.Grid,analyticsData:{id:"all-topics",classificationId:e.classification.id,classificationName:e.classification.name,presentationId:e.presentation.id,presentationDescription:e.presentation.description,name:r.T.getPhrase(we,"allTopics"),url:ne.Q.C$.getHref(null===(m=null===(f=e.appLinks)||void 0===f?void 0:f.classificationDirectory)||void 0===m?void 0:m.call(f,e.classification))},analyticsOptions:{actionType:s.Vw.Click,entity:s.py.Url,location:s.LZ.MagicTabs},className:"".concat(t.xs?"w-100":""," ").concat(a?he.tabTransition:"")}]:[{name:I?r.T.getPhrase(we,"topic"):"",appLink:e.isReadonly?null:null===(g=null===(v=e.appLinks)||void 0===v?void 0:v.classification)||void 0===g?void 0:g.call(v,e.classification),active:"curated-topic"===n,svgName:b.vn.Rectangles,analyticsData:{id:"curated-topic",classificationId:e.classification.id,classificationName:e.classification.name,presentationId:e.presentation.id,presentationDescription:e.presentation.description,name:r.T.getPhrase(we,"topic"),url:ne.Q.C$.getHref(null===(h=null===(y=e.appLinks)||void 0===y?void 0:y.classification)||void 0===h?void 0:h.call(y,e.classification))},analyticsOptions:{actionType:s.Vw.Click,entity:s.py.Url,location:s.LZ.MagicTabs},className:(k=a?he.tabTransition:"",t.xs?k+" w-100":I?" ".concat(he.curatedTopicTab):k)},{name:I?r.T.getPhrase(we,"videoList"):"",appLink:e.isReadonly?null:null===(E=null===(w=e.appLinks)||void 0===w?void 0:w.classificationVideos)||void 0===E?void 0:E.call(w,e.classification),active:"video-list"===n,svgName:b.vn.WidgetSeries,analyticsData:{id:"video-list",classificationId:e.classification.id,classificationName:e.classification.name,presentationId:e.presentation.id,presentationDescription:e.presentation.description,name:r.T.getPhrase(we,"videoList"),url:ne.Q.C$.getHref(null===(T=null===(S=e.appLinks)||void 0===S?void 0:S.classificationVideos)||void 0===T?void 0:T.call(S,e.classification))},analyticsOptions:{actionType:s.Vw.Click,entity:s.py.Url,location:s.LZ.MagicTabs},className:"".concat(t.xs?"w-100":""," ").concat(a?he.tabTransition:"")}]}function Se(e){var t=(0,X.k)(),n=(0,be.d)(e.activeTab),i=n.tab,r=n.isHighlighting,o=(0,ye.c)("topics-directory-tab").setProductTipRef;return a.createElement(ge.r,{borderRadius:"sm",containerRef:function(e){return o(e)},className:t.xs?"w-100":"",listClassName:"d-flex flex-nowrap",tabs:Ee(e,t,i,r)})}function Te(e){var t,n,i,r,o,c,s,l=(0,X.k)(),u=(r=e.audiences,o=e.activeAudiences,c=e.isEmpty,!!e.isComingSoon||!(!c||(null==o?void 0:o.length))||!ee.T.shouldShowAudiences(r));function p(){return!(!e.classification||!e.dashboard)&&!U.S.isSystemGeneratedDashboard(e.dashboard.widgets)&&(d.i.isTopLevelTopic(e.classification)?e.hasTopicDirectoryDashboard:!!e.hasTopicVideosDashboard)}return a.createElement("div",{className:(s="d-flex flex-column py-3 mb-3",e.isComingSoon||(s+=" border-bottom"),!p()&&!u||l.xs?s+" row-gap-3":s)},a.createElement("div",{className:function(){if(u)return l.xs?"d-flex flex-column justify-content-between row-gap-3":"d-flex align-items-center justify-content-between";var e="";return e+="d-flex align-items-center justify-content-between mb-1",l.xs&&(e+=" row-gap-3 mb-0"),e}()},a.createElement(K.Oo,{breadcrumbs:null===(t=e.getBreadcrumbs)||void 0===t?void 0:t.call(e)}),p()&&u&&a.createElement(Se,{classification:e.classification,activeTab:e.activeTab,appLinks:e.appLinks,presentation:e.presentation,isReadonly:e.isReadonly})),a.createElement("div",{className:function(){var e="d-flex align-items-end justify-content-between";return l.xs&&(e+=" row-gap-3 flex-wrap"),e}()},!u&&a.createElement(ve,{audiences:e.audiences,activeAudiences:e.activeAudiences,appLink:null===(i=(n=e.appLinks).audience)||void 0===i?void 0:i.call(n),isReadonly:e.isReadonly||e.disableAudiences,disablePersist:!e.isViewingCurrentPresentation}),p()&&!u&&a.createElement(Se,{classification:e.classification,activeTab:e.activeTab,appLinks:e.appLinks,presentation:e.presentation,isReadonly:e.isReadonly})))}function ke(e){return ke="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ke(e)}function Ie(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,i,r,o,c=[],s=!0,l=!1;try{if(r=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(a=r.call(n)).done)&&(c.push(a.value),c.length!==t);s=!0);}catch(e){l=!0,i=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return Le(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Le(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Le(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var Ce="shared.classificationDashboard";function Ae(e){return e.widgetId===F.z.Blurb&&e.templateId===M.f.Heading}function xe(e){return e.widgetId===F.z.CuratedClassifications||e.widgetId===F.z.Classifications}function Oe(e){var t,n,i,c,l=function(e,t){var n,i,r,c,s=a.useMemo((function(){return e?{isSystemGeneratedDashboard:U.S.isSystemGeneratedDashboard(e.widgets),systemGeneratedVideoWidget:e.widgets.find((function(e){return e.widgetId===F.z.ClassificationPinnedVideos}))}:{isSystemGeneratedDashboard:!1,systemGeneratedVideoWidget:null}}),[null==e?void 0:e.id]),l=s.isSystemGeneratedDashboard,u=s.systemGeneratedVideoWidget,d=o.a.useBasicFetch(!!u&&D._.dashboardWidgetContent(null==u?void 0:u.id,U.S.getWidgetParams(u.widgetId,u.templateId,U.S.getDashboardTargetType(e),null==t?void 0:t.map((function(e){return e.masterId}))),null==u?void 0:u.templateId));return l?{widgets:null!==(i=null===(n=null==e?void 0:e.widgets)||void 0===n?void 0:n.filter((function(e){return e.widgetId!==F.z.ClassificationPinnedVideos})))&&void 0!==i?i:[],videoList:null!==(c=null===(r=d.data)||void 0===r?void 0:r.content)&&void 0!==c?c:[],videoListWidgetId:null==u?void 0:u.id}:{widgets:N.m.sortBy(null==e?void 0:e.widgets,"index")}}(e.dashboard,e.activeAudiences),u=l.widgets,p=l.videoList,f=l.videoListWidgetId,v=(0,H.a)(V.r.LGDown),g=a.useRef(new Set),b=a.useMemo((function(){return u.reduce((function(e,t){return e[t.id]=!1,e}),{})}),[null==u?void 0:u.length]),h=Ie(a.useState(b),2),w=h[0],S=h[1],T=Ie(a.useState(e.tableOfContentsId),2),k=T[0],I=T[1],L=Ie(a.useState(""),2),C=L[0],A=L[1],O=Array.from(g.current);function P(t,n,a){var i,r=U.S.getWidgetParams(n,a,U.S.getDashboardTargetType(e.dashboard),null===(i=e.activeAudiences)||void 0===i?void 0:i.map((function(e){return e.masterId})));return e.getWidgetContentRequest(t,r,a)}(0,Z.P)(O,k),(0,q.D)({setActiveId:A,headingElements:O,controlledId:k,setControlledId:I});var M=!e.isComingSoon&&!e.isTeacherOnly&&(!e.dashboard||e.dashboard.status===y.GL.Archived&&!e.isReadonly||e.dashboard.status===y.GL.Draft&&!e.isPreviewing||!(null==u?void 0:u.length)||(!p||!p.length)&&Object.values(w).every((function(e){return!!e})));a.useEffect((function(){M&&S(b)}),[null==u?void 0:u.length]);var Q=a.useCallback((function(t,n){if(w[t]!==n){var a=Object.assign(Object.assign({},w),(l={},p=n,(d=function(e){var t=function(e,t){if("object"!=ke(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var a=n.call(e,"string");if("object"!=ke(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==ke(t)?t:t+""}(d=t))in l?Object.defineProperty(l,d,{value:p,enumerable:!0,configurable:!0,writable:!0}):l[d]=p,l));if(U.S.isType(e.dashboard,y.ku.ClassificationDirectory))S(a);else{for(var i=0;i<u.length;){var r=u[i];if(Ae(r)){for(var o=!0,c=i+1;o&&c<u.length;){var s=u[c];if(Ae(s))break;a[s.id]||xe(s)||(o=!1),c++}i=c,a[r.id]=o}else i++}S(a)}}var l,d,p}),[w,u]);function z(e){return Ae(e)&&w[e.id]}function $(e,t){if(e.widgetId===F.z.ClassificationDashboardExternalMedia){var n=u[t-1];return w[n.id]?e.name.replace("Other videos","Videos"):e.name}return e.name}var Y,K=u.filter((function(e){var t;return!z(e)&&!!(null===(t=e.metadata)||void 0===t?void 0:t.showInTableOfContents)})),X=u.every(xe),ee=K.length>=2,te=ee&&!v,ne=(null===(t=e.settings)||void 0===t?void 0:t.hasTopicDirectories)&&d.i.isTopLevelTopic(e.classification);return a.createElement("div",{className:"bg-white px-4 ".concat((Y=U.S.getDashboardTargetType(e.dashboard),e.moviesAndTv||Y===y.ku.ClassificationVideos?"":"dashboard-spacing-lg"))},a.createElement(R.p,{heading:e.classification.name,banner:e.classification.banner,imageCdnUrl:e.imageCdnUrl,actions:null===(n=e.getBannerActions)||void 0===n?void 0:n.call(e),actionsDropdownClassName:"btn btn-outline-dark",specialEvent:e.specialEvent,calendarTheme:{background:"bg-light-blue",border:"border-light-blue"},showComingSoon:e.isComingSoon,detailsComponent:ne?function(){return a.createElement(m,{classification:e.classification})}:null}),a.createElement(Te,{dashboard:e.dashboard,classification:e.classification,presentation:e.presentation,appLinks:e.appLinks,activeTab:e.tab,audiences:e.audiences,activeAudiences:e.activeAudiences,getBreadcrumbs:e.getBreadcrumbs,hasTopicDirectoryDashboard:e.hasTopicDirectoryDashboard,hasTopicVideosDashboard:e.hasTopicVideosDashboard,isComingSoon:e.isComingSoon,isEmpty:M,isViewingCurrentPresentation:e.isViewCurrentPresentation,isReadonly:e.isReadonly,disableAudiences:X}),e.isComingSoon&&a.createElement(J,{imageUrl:e.comingSoonImageUrl,data:e.classification,canFollowSubjects:e.canFollowSubjects,showFollowButtonSpinner:e.showFollowButtonSpinner,onToggleFollow:function(){return e.onToggleFollow(e.classification,s.LZ.ClassificationComingSoon)},showSignUp:!e.hasLocalPermissions(W.E.FollowComingSoonTopics),signUpAppLink:null===(c=(i=e.appLinks).signUp)||void 0===c?void 0:c.call(i)}),!e.isComingSoon&&a.createElement("div",{className:"".concat(te?"row no-wrap":"")},ee&&a.createElement(x,{widgets:K,title:e.classification.name,activeId:C,clickable:!e.isReadonly,analyticsData:e.analyticsData,setControlledId:I,isSmallScreen:v}),a.createElement("div",{className:te?"col-9 order-0":""},u.map((function(t,n){return z(t)?a.createElement(a.Fragment,{key:t.id}):a.createElement(G.L,{headingElementRef:g,key:t.id,id:t.id,name:$(t,n),description:t.description,classification:e.classification,templateId:t.templateId,widgetTypeId:t.widgetId,audiences:e.audiences,getContentRequest:P,setIsEmpty:Q,setFavourite:e.setFavourite,canFavourite:e.canFavourite,appLinks:e.appLinks,yearGroups:e.yearGroups,presentation:e.presentation,analyticsData:e.analyticsData,isScrollToTargetWidget:e.scrollToWidgetId===t.id,imageCdnUrl:e.imageCdnUrl,onSubmitFeedback:e.onSubmitFeedback,metadata:t.metadata,isBot:e.isBot,hasTableOfContents:te,lazyLoad:e.lazyLoad,dashboardTarget:U.S.getDashboardTargetType(e.dashboard),widgetIndex:n,hasPermissions:e.hasPermissions,hasLocalPermissions:e.hasLocalPermissions,isPreviewing:e.isReadonly,companyLogoFallbackUrl:e.companyLogoFallbackUrl,subTextType:e.subTextType,contentType:e.contentType,resourceThumbnailFallbackImageUrl:e.resourceThumbnailFallbackImageUrl,preferences:t.preferences,onToggleFollowClassification:e.onToggleFollow,isPlugin:e.isPlugin,settings:e.settings,isEditing:e.isReadonly})}))),!!(null==p?void 0:p.length)&&a.createElement(a.Fragment,null,a.createElement(_.B,{name:r.T.getPhrase(Ce,"videos"),description:""}),a.createElement(B.E4,{videos:p,yearGroups:e.yearGroups,getVideoAppLink:function(t,n){return e.appLinks.videoType(t,Object.assign(Object.assign({},n),{contextId:f}))},getSubTextAppLink:e.appLinks.subText,hasPermissions:e.hasPermissions,setFavourite:e.setFavourite,canFavourite:e.canFavourite,presentationAudiences:e.audiences,companyLogoFallbackUrl:e.companyLogoFallbackUrl,subTextType:e.subTextType,getPreviewQuestionsAppLink:e.appLinks.previewQuestions,isPlugin:e.isPlugin,getClassroomGuideAppLink:e.appLinks.classroomGuide,getInteractiveGuidanceAppLink:e.appLinks.interactiveGuidance,getResourceGuidanceAppLink:e.appLinks.resourceGuidance}))),M&&a.createElement(E,{dashboard:e.dashboard,isReadonly:e.isReadonly,imageUrl:e.emptyImageUrl,addWidgetApplink:e.appLinks.widgetWizard}),e.isTeacherOnly&&a.createElement(j,{imageUrl:e.emptyImageUrl,ctaAppLink:function(){return e.appLinks.allTopics(e.classification.presentationId)}}))}function Pe(){return a.createElement("div",{className:"bg-white px-4"},a.createElement(R.v,null),a.createElement("div",{className:"d-flex flex-column row-gap-3 py-3 mb-3 border-bottom"},a.createElement(K.b2,null),a.createElement(me,null)))}Oe.defaultProps={appLinks:{}};var je=n(14875),Ne=n(51365),Fe=n(2284),De=n(17101),Ue=n(4594),Re=n(12754),Be=n(89454),_e=n(21750),Ge=n(39151),Ve=n(1666),We=n(7198),Me=n(99940),He=n(97395);function qe(e){return function(e){if(Array.isArray(e))return Ze(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return Ze(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Ze(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ze(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var Qe=function(e){return He._.urlBuilder("/api/domain/v1/subjects/classifications/following",{id:e})},ze={follow:function(e,t,n,a){return{url:"/api/domain/v1/subjects/classifications/following",key:"follow:".concat(e.join(",")),type:Me.k.POST,data:e,formatData:function(){return e.map((function(e){return{id:e,followers:{data:[t]}}}))},success:n,error:a,invalidationKeys:[].concat(qe(e.map((function(e){return"classification:".concat(e)}))),["my:subject:preferences","classifications"])}},unfollow:function(e,t,n,a){return{url:Qe(e),key:"unfollow:".concat(e.join(",")),type:Me.k.DELETE,formatData:function(){return e.map((function(e){return{id:e,followers:{data:[]}}}))},success:n,error:a,invalidationKeys:[].concat(qe(e.map((function(e){return"classification:".concat(e)}))),["my:subject:preferences","classifications"])}}},$e=n(31949),Ye=n(69883),Je=n(63719),Ke=n(56520),Xe=n(91286),et=n(22902),tt=n(79612),nt=n(37802),at=n(52167),it=n(76753),rt=n(99742),ot=n(51855),ct=n(10671),st=n(7179),lt=n(27638),ut=n(86698),dt=n(34181),pt=n(33192),ft=n(64364),mt=n(14070),vt=n(97291);function gt(e){return gt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},gt(e)}function yt(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,bt(a.key),a)}}function bt(e){var t=function(e,t){if("object"!=gt(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var a=n.call(e,"string");if("object"!=gt(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==gt(t)?t:t+""}function ht(e,t,n){return t=Et(t),function(e,t){if(t&&("object"==gt(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,wt()?Reflect.construct(t,n||[],Et(e).constructor):t.apply(e,n))}function wt(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(wt=function(){return!!e})()}function Et(e){return Et=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},Et(e)}function St(e,t){return St=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},St(e,t)}var Tt="subjects.topicNotFoundError",kt=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),ht(this,t,["Topic doesn't exist"])}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&St(e,t)}(t,e),n=t,(a=[{key:"name",get:function(){return"TopicNotFoundError"}},{key:"heading",get:function(){return r.T.getPhrase(Tt,"heading")}},{key:"description",get:function(){return r.T.getPhrase(Tt,"description")}},{key:"cta",get:function(){return{text:r.T.getPhrase(Tt,"cta"),appLink:{application:vt.O.SUBJECT,action:mt.e.Subjects.PRESENTATION_TOPICS}}}}])&&yt(n.prototype,a),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,a}(ft.H),It=n(23737),Lt=n(28400),Ct=n(183),At=n(22490),xt=n(82431),Ot={getSignUpAppLink:function(){var e={application:vt.O.SIGN_UP,action:mt.e.SignUp.SIGN_UP},t=ne.Q.C$.getHref(ne.Q.C$.getCurrentAppLink());return"/"!==t&&(e.params={redirectUrl:t}),e}},Pt=["preview","dashboardId","skipPrompt"];r.T.encloseNamespace("subjects.classification");const jt={followButton:"HlRXj"};function Nt(e){return Nt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Nt(e)}function Ft(){Ft=function(){return t};var e,t={},n=Object.prototype,a=n.hasOwnProperty,i=Object.defineProperty||function(e,t,n){e[t]=n.value},r="function"==typeof Symbol?Symbol:{},o=r.iterator||"@@iterator",c=r.asyncIterator||"@@asyncIterator",s=r.toStringTag||"@@toStringTag";function l(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(e){l=function(e,t,n){return e[t]=n}}function u(e,t,n,a){var r=t&&t.prototype instanceof y?t:y,o=Object.create(r.prototype),c=new O(a||[]);return i(o,"_invoke",{value:L(e,n,c)}),o}function d(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=u;var p="suspendedStart",f="suspendedYield",m="executing",v="completed",g={};function y(){}function b(){}function h(){}var w={};l(w,o,(function(){return this}));var E=Object.getPrototypeOf,S=E&&E(E(P([])));S&&S!==n&&a.call(S,o)&&(w=S);var T=h.prototype=y.prototype=Object.create(w);function k(e){["next","throw","return"].forEach((function(t){l(e,t,(function(e){return this._invoke(t,e)}))}))}function I(e,t){function n(i,r,o,c){var s=d(e[i],e,r);if("throw"!==s.type){var l=s.arg,u=l.value;return u&&"object"==Nt(u)&&a.call(u,"__await")?t.resolve(u.__await).then((function(e){n("next",e,o,c)}),(function(e){n("throw",e,o,c)})):t.resolve(u).then((function(e){l.value=e,o(l)}),(function(e){return n("throw",e,o,c)}))}c(s.arg)}var r;i(this,"_invoke",{value:function(e,a){function i(){return new t((function(t,i){n(e,a,t,i)}))}return r=r?r.then(i,i):i()}})}function L(t,n,a){var i=p;return function(r,o){if(i===m)throw Error("Generator is already running");if(i===v){if("throw"===r)throw o;return{value:e,done:!0}}for(a.method=r,a.arg=o;;){var c=a.delegate;if(c){var s=C(c,a);if(s){if(s===g)continue;return s}}if("next"===a.method)a.sent=a._sent=a.arg;else if("throw"===a.method){if(i===p)throw i=v,a.arg;a.dispatchException(a.arg)}else"return"===a.method&&a.abrupt("return",a.arg);i=m;var l=d(t,n,a);if("normal"===l.type){if(i=a.done?v:f,l.arg===g)continue;return{value:l.arg,done:a.done}}"throw"===l.type&&(i=v,a.method="throw",a.arg=l.arg)}}}function C(t,n){var a=n.method,i=t.iterator[a];if(i===e)return n.delegate=null,"throw"===a&&t.iterator.return&&(n.method="return",n.arg=e,C(t,n),"throw"===n.method)||"return"!==a&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+a+"' method")),g;var r=d(i,t.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,g;var o=r.arg;return o?o.done?(n[t.resultName]=o.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,g):o:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,g)}function A(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function x(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function O(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(A,this),this.reset(!0)}function P(t){if(t||""===t){var n=t[o];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var i=-1,r=function n(){for(;++i<t.length;)if(a.call(t,i))return n.value=t[i],n.done=!1,n;return n.value=e,n.done=!0,n};return r.next=r}}throw new TypeError(Nt(t)+" is not iterable")}return b.prototype=h,i(T,"constructor",{value:h,configurable:!0}),i(h,"constructor",{value:b,configurable:!0}),b.displayName=l(h,s,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===b||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,h):(e.__proto__=h,l(e,s,"GeneratorFunction")),e.prototype=Object.create(T),e},t.awrap=function(e){return{__await:e}},k(I.prototype),l(I.prototype,c,(function(){return this})),t.AsyncIterator=I,t.async=function(e,n,a,i,r){void 0===r&&(r=Promise);var o=new I(u(e,n,a,i),r);return t.isGeneratorFunction(n)?o:o.next().then((function(e){return e.done?e.value:o.next()}))},k(T),l(T,s,"Generator"),l(T,o,(function(){return this})),l(T,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var a in t)n.push(a);return n.reverse(),function e(){for(;n.length;){var a=n.pop();if(a in t)return e.value=a,e.done=!1,e}return e.done=!0,e}},t.values=P,O.prototype={constructor:O,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(x),!t)for(var n in this)"t"===n.charAt(0)&&a.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function i(a,i){return c.type="throw",c.arg=t,n.next=a,i&&(n.method="next",n.arg=e),!!i}for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r],c=o.completion;if("root"===o.tryLoc)return i("end");if(o.tryLoc<=this.prev){var s=a.call(o,"catchLoc"),l=a.call(o,"finallyLoc");if(s&&l){if(this.prev<o.catchLoc)return i(o.catchLoc,!0);if(this.prev<o.finallyLoc)return i(o.finallyLoc)}else if(s){if(this.prev<o.catchLoc)return i(o.catchLoc,!0)}else{if(!l)throw Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return i(o.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&a.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var r=i;break}}r&&("break"===e||"continue"===e)&&r.tryLoc<=t&&t<=r.finallyLoc&&(r=null);var o=r?r.completion:{};return o.type=e,o.arg=t,r?(this.method="next",this.next=r.finallyLoc,g):this.complete(o)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),g},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),x(n),g}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var a=n.completion;if("throw"===a.type){var i=a.arg;x(n)}return i}}throw Error("illegal catch attempt")},delegateYield:function(t,n,a){return this.delegate={iterator:P(t),resultName:n,nextLoc:a},"next"===this.method&&(this.arg=e),g}},t}function Dt(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var Ut=function(e,t,n,a){return new(n||(n=Promise))((function(i,r){function o(e){try{s(a.next(e))}catch(e){r(e)}}function c(e){try{s(a.throw(e))}catch(e){r(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,c)}s((a=a.apply(e,t||[])).next())}))};Bt.defaultProps={queryParams:{}};var Rt=r.T.encloseNamespace("subjects.classification");function Bt(e){var t,n,r,u,p,f,m,v,g,h,w,E,S,T,k,I=(T=a.useState(!1),k=2,function(e){if(Array.isArray(e))return e}(T)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,i,r,o,c=[],s=!0,l=!1;try{if(r=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(a=r.call(n)).done)&&(c.push(a.value),c.length!==t);s=!0);}catch(e){l=!0,i=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return c}}(T,k)||function(e,t){if(e){if("string"==typeof e)return Dt(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Dt(e,t):void 0}}(T,k)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),L=I[0],C=I[1],A=(0,Ye.Z)(),x=o.a.useGetFetchAsync(),O=(0,et.T)(),P=O.hasPermissions,j=O.hasLocalPermissions,N=(0,ot.G)().isPlugin,F=(0,nt.r)(null),R=o.a.useBasicFetch(Ge.L.config()),B=o.a.useBasicFetch($e.N.currentUser()),_=(0,Ke.R0)(),G=_.openInCurationStudioLabel,M=_.isUserCurator,q=_.getOpenInCurationStudioLink,Z=o.a.useBasicFetch(P(W.C.CanSubmitFeedback)&&B.data&&Ve.h.customer(B.data.customerId)),Q=o.a.useBasicFetch(_e.x.classification(e.id,null===(t=B.data)||void 0===t?void 0:t.id)),z=o.a.useBasicFetch(Q.data&&_e.x.presentationById(Q.data.presentationId)),$=o.a.useBasicFetch(Q.data&&Be.O.audiencesByPresentationId(Q.data.presentationId)),Y=o.a.useBasicFetch(Q.data&&l.N.nextTopicSpecialEvent(e.id,Q.data.presentationId)),J=(0,ut.y)(),K=J.activePresentation,X=J.availablePresentations,te=J.canAccessPresentation,ne=o.a.useBasicFetch((null===(n=B.data)||void 0===n?void 0:n.isAuthenticated)&&Ve.h.yearGroups(B.data.customerId)),ae=o.a.useBasicFetch(_e.x.path(e.id)),re=function(e,t,n){var a=(0,nt.r)(null),i=a.hasTopicDirectories,r=a.hasTopicVideoListFeature,o=(0,It.y)({classificationId:e,queryParams:t,targetType:y.ku.Classification}),c=o.dashboard,s=o.isPreviewing,l=o.isTeacherOnly,u=(0,It.y)({classificationId:e,queryParams:t,targetType:y.ku.ClassificationDirectory}).dashboard,d=(0,It.y)({classificationId:e,queryParams:t,targetType:y.ku.ClassificationVideos}).dashboard;return{dashboard:function(){switch(n){case y.ku.Classification:return c;case y.ku.ClassificationDirectory:return u;case y.ku.ClassificationVideos:return d}}(),hasTopicDirectoryDashboard:i&&!!u.data,hasTopicVideosDashboard:r&&!!d.data,isTeacherOnly:l,isPreviewing:s}}(e.id,e.queryParams,e.targetType),oe=re.dashboard,ce=re.hasTopicDirectoryDashboard,se=re.hasTopicVideosDashboard,le=re.isPreviewing,ue=re.isTeacherOnly,de=o.a.useBasicFetch(_e.x.regionAlternatives(e.id));(0,tt.M)(it.CG.getClassificationMetadata({content:Q.data,phraseContext:{phraseHandler:Rt,titlePhrase:"pageTitle",descriptionPhrase:"pageDescription"},canonicalLink:pt.f.getCanonicalLink({stripPresentationSlug:!0}),allowIndexing:pt.f.allowIndexing(),hrefLang:pt.f.getContentHrefLang(de.data,(function(){return dt.L.getAppLink(Q.data)}))})),(0,Xe.v)(Q,{notFound:kt}),(0,st.P)({id:e.id,app:"topics"});var pe=(null==K?void 0:K.id)===(null===(r=z.data)||void 0===r?void 0:r.id),fe=(0,H.a)(V.r.MDDown),me=(0,H.a)(V.r.SMDown),ve=(0,lt.u)(s.LZ.ExpandableVideoThumbnail),ge=ve.setFavourite,ye=ve.canFavourite,be=(0,ct._)({location:ct.i.VideoItem}),he=P(W.C.FollowSubjects),we=(null===(u=Q.data)||void 0===u?void 0:u.status)===Fe.W.ComingSoon&&!le,Ee=ee.T.getActiveAudiencesFromParams($.data,e.queryParams),Se=null!==(p=null==Ee?void 0:Ee.map((function(e){return e.masterId})))&&void 0!==p?p:[],Te=U.S.getDashboardTargetType(oe.data);function ke(e,t){var n,a,i;if(he&&Q){var r=e.id.toString()===(null===(a=null===(n=Q.data)||void 0===n?void 0:n.id)||void 0===a?void 0:a.toString());r&&C(!0);var o=d.i.isFollowing(e),l=o?ze.unfollow:ze.follow;x(l([e.id],null===(i=B.data)||void 0===i?void 0:i.id)).then((function(){c.k.logUserAction(Ce,{location:t,actionType:s.Vw.Follow,workflowPhase:s.eu.Complete,descriptor:o?s.DL.Off:s.DL.On,entity:s.py.Classification}),r||A.success(Rt(o?"unfollowed":"followed",{name:e.name}))})).finally((function(){r&&C(!1)}))}}var Ie=function(e,t,n){return{audience:function(){switch(t){case y.ku.ClassificationDirectory:return null;case y.ku.ClassificationVideos:return{application:vt.O.SUBJECT,action:mt.e.Subjects.CLASSIFICATION_VIDEOS,args:[e.id,Lt.m.slugify(e.name)],params:n};default:return dt.L.getAppLink(e,n)}},classification:function(t){var a=t||e;return dt.L.getAppLink(a,ie.t.omit(n,Pt))},classificationDirectory:function(t){var a=t||e;return{application:vt.O.SUBJECT,action:mt.e.Subjects.CLASSIFICATION_TOPICS,args:[a.id,Lt.m.slugify(a.name)],params:ie.t.omit(n,Pt)}},classificationVideos:function(t){var a=t||e;return{application:vt.O.SUBJECT,action:mt.e.Subjects.CLASSIFICATION_VIDEOS,args:[a.id,Lt.m.slugify(a.name)],params:ie.t.omit(n,Pt)}},videoType:function(e,t){return At.W.getAppLink(e,Object.assign(Object.assign({},t),{context:Ct.Q.Widget,moviesAndTv:n.mtv}))},allTopics:function(e){return{application:vt.O.SUBJECT,action:mt.e.Subjects.PRESENTATION_TOPICS,params:{presentationId:e}}},series:function(t){return xt.j.getSeriesAppLink(t,{classificationId:e.id,mtv:!!n.mtv||void 0})},subText:function(t){return xt.j.getSeriesAppLink(t.series,{classificationId:e.id,mtv:!!n.mtv||void 0})},playlist:function(t){return{application:vt.O.PLAYLISTS,action:mt.e.Playlists.PLAYLIST,args:[t.id,Lt.m.slugify(t.name)],params:{classificationId:e.id,mtv:!!n.mtv||void 0}}},resource:function(e,t,n){return n?{application:vt.O.VIDEOS,action:mt.e.Videos.PREVIEW_PDF,args:[e.id],params:{videoId:t}}:{application:vt.O.SIGN_UP,action:mt.e.SignUp.SIGN_UP}},signUp:Ot.getSignUpAppLink,classroomGuide:At.W.getClassroomGuideAppLink,interactiveGuidance:At.W.getInteractiveGuidanceAppLink,resourceGuidance:At.W.getResourceGuidanceAppLink}}(Q.data,Te,e.queryParams),Le=(0,Je.h)({name:null===(f=Q.data)||void 0===f?void 0:f.name}),Ce={presentationId:null===(m=z.data)||void 0===m?void 0:m.id,presentationName:null===(v=z.data)||void 0===v?void 0:v.name,currentClassificationId:null===(g=Q.data)||void 0===g?void 0:g.id,currentClassificationName:null===(h=Q.data)||void 0===h?void 0:h.name,followingCurrentClassification:!!(null===(S=null===(E=null===(w=Q.data)||void 0===w?void 0:w.followers)||void 0===E?void 0:E.data)||void 0===S?void 0:S.length),activeAudienceNames:(null==Ee?void 0:Ee.length)?Ee.map((function(e){return e.name})):null,activeAudienceIds:Se.length?Se:null};return R.data&&oe.hasCompleted&&Q.data&&z.data&&ae.data&&X&&$.data&&Y.hasCompleted?a.createElement(Ne.M.Provider,{value:be},a.createElement("div",{className:"position-relative"},!(!le||!oe.data)&&a.createElement(je.a,{status:oe.data.status,type:"topic"}),a.createElement(Oe,{dashboard:oe.data,classification:Q.data,getWidgetContentRequest:D._.dashboardWidgetContent,getBreadcrumbs:function(){var e;if(te(null===(e=z.data)||void 0===e?void 0:e.id))return function(){return Le}}(),hasPermissions:P,hasLocalPermissions:j,presentation:z.data,onToggleFollow:ke,getBannerActions:function(){var e,t,n,a,i,r=!!(null===(n=null===(t=null===(e=Q.data)||void 0===e?void 0:e.followers)||void 0===t?void 0:t.data)||void 0===n?void 0:n.length);if(!he)return[];var o=[{label:me?"":Rt(r?"following":"follow"),onClick:function(){return ke(Q.data,s.LZ.Banner)},svgName:r?b.vn.BellFilled:b.vn.Bell,className:"btn follow-btn me-2 ".concat(r?"btn-outline-dark":"btn-dark"," ").concat(jt.followButton),button:!0,tooltip:r||fe?void 0:Rt("followBtnTooltip"),showSpinner:L}];return M&&o.push({label:G,href:q(Ue.E.Subject,null===(a=Q.data)||void 0===a?void 0:a.id,null===(i=z.data)||void 0===i?void 0:i.id),openInNewTab:!0}),o},audiences:e.queryParams.mtv?null:$.data,activeAudiences:Ee,analyticsData:Ce,imageCdnUrl:R.data.imageCdnUrl,resourceThumbnailFallbackImageUrl:rt.W.Fallbacks.RESOURCE_THUMBNAIL,emptyImageUrl:ue?rt.W.EmptyStates.Topics.TEACHER_ONLY:rt.W.EmptyStates.Topics.TOPIC,isComingSoon:we,showFollowButtonSpinner:L,comingSoonImageUrl:rt.W.EmptyStates.Topics.COMING_SOON,appLinks:Ie,isPreviewing:le,setFavourite:ge,canFavourite:ye,isViewCurrentPresentation:pe,canFollowSubjects:he,onSubmitFeedback:P(W.C.CanSubmitFeedback)&&function(e){return Ut(this,void 0,void 0,Ft().mark((function t(){var n;return Ft().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,x(We.f.submitFeedback({type:De.n.Footer,user:at.m.getUserInfo(B.data,Z.data),tags:at.m.getTags(B.data,Re.x.Primary,P(W.C.StudentExperience),["topics","in product feedback"])},{reaction:e.type,feedback:e.content,location:"Topic Footer",presentationName:z.data.description,presentationId:z.data.id,dashboardName:oe.data.name,dashboardId:oe.data.id,classificationName:Q.data.name,classificationId:Q.data.id,currentPageUrl:i.Ab.GetCurrentUrl()}));case 2:return n=t.sent,c.k.logUserAction({feedbackType:e.type,content:e.content,presentationId:z.data.id,classificationId:Q.data.id,dashboardId:oe.data.id},{actionType:s.Vw.Submit,location:s.LZ.ClassificationFooter,entity:s.py.Feedback,workflowPhase:s.eu.Complete}),t.abrupt("return",n);case 5:case"end":return t.stop()}}),t)})))},tableOfContentsId:e.queryParams.tocId,yearGroups:ne.data,lazyLoad:!pt.f.isBot(),moviesAndTv:e.queryParams.mtv,isTeacherOnly:ue,specialEvent:Y.data,isBot:pt.f.isBot(),hasTopicDirectoryDashboard:ce,hasTopicVideosDashboard:se,tab:d.i.getActiveTopicTab(Q.data,e.targetType),isPlugin:N,settings:F}))):a.createElement(Pe,null)}},87432:(e,t,n)=>{n.d(t,{Z:()=>a});const a={pillTabSelector:"Hdi6o",tab:"RvNxr",minWidth:"GHSz9",radiusSmall:"VhJJa",tabLink:"WFyvo"}}}]);
|
|
3
|
-
//# sourceMappingURL=4013-7b878e3212-lite.chunk.js.map
|