@clickview/lite 0.52.4-rc.0 → 0.52.4-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/dist/bundles.json +1 -1
  2. package/dist/css/{1760-lite-19ef9620ac.chunk.css → 1760-lite-bcd14ea6d2.chunk.css} +1 -1
  3. package/dist/css/{3640-lite-d751a30ca4.chunk.css → 3640-lite-97ed26d0aa.chunk.css} +1 -1
  4. package/dist/css/{5220-lite-8b4a93ca31.chunk.css → 5220-lite-9832e2c2fb.chunk.css} +1 -1
  5. package/dist/css/{5549-lite-d751a30ca4.chunk.css → 5549-lite-97ed26d0aa.chunk.css} +1 -1
  6. package/dist/css/{6094-lite-19ef9620ac.chunk.css → 6094-lite-bcd14ea6d2.chunk.css} +1 -1
  7. package/dist/scripts/{1760-19e88443c6-lite.chunk.js → 1760-8d51aa0b08-lite.chunk.js} +1 -1
  8. package/dist/scripts/{1760-19e88443c6-lite.chunk.js.map → 1760-8d51aa0b08-lite.chunk.js.map} +1 -1
  9. package/dist/scripts/{3640-ac303efb99-lite.chunk.js → 3640-1ac0a110f4-lite.chunk.js} +1 -1
  10. package/dist/scripts/{3640-ac303efb99-lite.chunk.js.map → 3640-1ac0a110f4-lite.chunk.js.map} +1 -1
  11. package/dist/scripts/5220-a0599fa845-lite.chunk.js +3 -0
  12. package/dist/scripts/5220-a0599fa845-lite.chunk.js.map +1 -0
  13. package/dist/scripts/{5549-ae40aeb0f8-lite.chunk.js → 5549-e0ed88aaa1-lite.chunk.js} +1 -1
  14. package/dist/scripts/{5549-ae40aeb0f8-lite.chunk.js.map → 5549-e0ed88aaa1-lite.chunk.js.map} +1 -1
  15. package/dist/scripts/{6094-d5fa8b07dc-lite.chunk.js → 6094-8546003d79-lite.chunk.js} +1 -1
  16. package/dist/scripts/{6094-d5fa8b07dc-lite.chunk.js.map → 6094-8546003d79-lite.chunk.js.map} +1 -1
  17. package/dist/scripts/6852-2ff4fd69ed-lite.chunk.js +2 -0
  18. package/dist/scripts/6852-2ff4fd69ed-lite.chunk.js.map +1 -0
  19. package/dist/scripts/8055-3449680f69-lite.chunk.js +3 -0
  20. package/dist/scripts/8055-3449680f69-lite.chunk.js.map +1 -0
  21. package/dist/scripts/{bundle-507079f8c6.min.js → bundle-8e4a9806bd.min.js} +3 -3
  22. package/dist/scripts/{bundle-507079f8c6.min.js.map → bundle-8e4a9806bd.min.js.map} +1 -1
  23. package/package.json +1 -1
  24. package/dist/scripts/5220-58d9529f21-lite.chunk.js +0 -3
  25. package/dist/scripts/5220-58d9529f21-lite.chunk.js.map +0 -1
  26. package/dist/scripts/6852-96412e2088-lite.chunk.js +0 -2
  27. package/dist/scripts/6852-96412e2088-lite.chunk.js.map +0 -1
  28. package/dist/scripts/8055-7d46e34c6a-lite.chunk.js +0 -3
  29. package/dist/scripts/8055-7d46e34c6a-lite.chunk.js.map +0 -1
  30. /package/dist/scripts/{5220-58d9529f21-lite.chunk.js.LICENSE.txt → 5220-a0599fa845-lite.chunk.js.LICENSE.txt} +0 -0
  31. /package/dist/scripts/{8055-7d46e34c6a-lite.chunk.js.LICENSE.txt → 8055-3449680f69-lite.chunk.js.LICENSE.txt} +0 -0
  32. /package/dist/scripts/{bundle-507079f8c6.min.js.LICENSE.txt → bundle-8e4a9806bd.min.js.LICENSE.txt} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"scripts/6852-96412e2088-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-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/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 = 56;\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 > 3 && 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 secondLast = length > 2 ? <BreadcrumbItem breadcrumb={breadcrumbs[length - 2]} /> : <></>;\n const last = <BreadcrumbItem breadcrumb={breadcrumbs[length - 1]} />;\n const rest = breadcrumbs.slice(1, length - 2);\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {first}\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: '&nbsp' }} />\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}\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} 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 {\"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';\nimport { LinkifyHelper } from 'libs/common/react/utils/LinkifyHelper';\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 { 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, 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 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 {!!(!video._isClickViewCurated?.value && video.dateCreated) && (\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 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}\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 <div className='rounded border p-3 position-relative'>\n <Scrollbars autoHeight autoHeightMax={maxHeight}>\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 <p className='mb-0' dangerouslySetInnerHTML={{ __html: LinkifyHelper.linkifyText(props.video.description, { nl2br: true }) }} />\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) && <CopyrightDisclaimer placement='bottom-start' className='d-flex justify-content-start mt-2 mb-n1' />}\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\"};","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}\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}`}>{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}`}>{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 return (\n <div>\n <h2 className='h6 my-2'><Text namespace={namespace} phrase='heading' /></h2>\n\n <div>\n {props.pointsOfInterest.map(poi => {\n return (\n <PointOfInterest\n key={poi.startTime}\n poi={poi}\n suppressInteractivity={props.suppressInteractivity}\n onClickPoiItem={props.onClickPoiItem}\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 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-1'>\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\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, ...props.data };\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}\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 : ''} `}>\n {item.name}\n </div>\n </AppLink>\n );\n })}\n </div>\n );\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\",\"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' : ''}>\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}>\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 {PortalHelper.renderInPortalIfExists(\n props.isExpanded\n ? <TableOfContents {...props} />\n : <TableOfContentsIcon {...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, Resource } from 'libs/shared/interfaces';\nimport { PlayPageAnchor } from 'libs/shared/interfaces/PlayPageAnchor';\n\ninterface SectionHeadingOptions{\n clips: Clip[];\n interactives: InteractiveMetadata[];\n resources: Resource[];\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","secondLast","last","rest","slice","onClick","map","idx","key","PartialBreadcrumbs","numItems","style","height","width","dangerouslySetInnerHTML","__html","namespace","CONTAINER_HEIGHT","CopyrightDisclaimer","isHovering","Text","phrase","Overlay","target","show","placement","overflowPlacement","document","documentElement","clientHeight","getBoundingClientRect","bottom","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","CommaList","label","items","commaSeperated","i","join","DetailsSection","parentVideo","description","productionYear","options","year","smartCount","productionCompanies","distributors","producers","directors","dateBroadcast","date","DateHelper","channel","_isClickViewCurated","value","dateCreated","VideoDetailsWithScrollbarV2","maxHeight","showDescription","showDetails","tags","hideTags","filter","tag","tagType","TagType","getTags","autoHeight","autoHeightMax","ImmersiveReader","text","onLaunch","onLaunchImmersiveReader","onExit","onExitImmersiveReader","location","entity","actionType","descriptor","LinkifyHelper","nl2br","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","DivButton","onClickPoiItem","PointOfInterestList","pointsOfInterest","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","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 8055-7d46e34c6a-lite.chunk.js.LICENSE.txt */
2
- "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[8055],{28046:(e,t,r)=>{r.d(t,{l:()=>p,v:()=>f});var n=r(39479),a=["pdf"],o=["doc","docx","dotx","dot","rtf","docm","odt"],i=["csv","txt"],l=["xls","xlt","xlsx"],c=["jpg","tif","png","bmp","gif","jpeg"],s="video/*",u=["zip","rar"],m=["ppt","pot","pps","pptx"],d=["srt"],p={IMAGES:".".concat(c.join(",.")),VIDEO:s,MIXED_MEDIA:".".concat(c.join(",."),",").concat(s),RESOURCES:".".concat([].concat(o,l,m,a,i,c,u).join(",.")),SUBTITLES:".".concat(d.join(",."))},f={getResourceType:function(e){var t=e.toLowerCase();return n.contains(o,t)?"document":n.contains(l,t)?"excel":n.contains(m,t)?"powerpoint":n.contains(a,t)?"pdf":n.contains(i,t)?"text":n.contains(c,t)?"image":n.contains(u,t)?"archive":n.contains(d,t)?"subtitle":""}}},66122:(e,t,r)=>{r.d(t,{A:()=>a});var n=r(32735);function a(e){return n.createElement("span",{id:"".concat(e.name,"Error"),className:"".concat(e.className," invalid-feedback d-block"),role:"status"},e.children)}},38365:(e,t,r)=>{r.d(t,{n:()=>S,W:()=>w});var n=r(32735),a=r(80247),o=r(80130),i=r(92802),l=r(91967),c=r(1048),s=r(36848),u=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]])}return r};function m(e){var t=e.label,r=e.checkboxLabelClassName,a=e.checkboxLabelFontWeight,i=e.className,l=u(e,["label","checkboxLabelClassName","checkboxLabelFontWeight","className"]);return n.createElement(o.Z.Group,{className:"form-group"},n.createElement("div",{className:"form-check ".concat(i||"")},n.createElement(S,Object.assign({className:"form-check-input"},l)),n.createElement(o.Z.Label,{className:"form-check-label cursor-pointer ".concat("normal"===a?"fw-normal":""," \n ").concat(r),htmlFor:l.id},t),e.checkboxAppLink&&e.checkboxAppLinkText&&n.createElement(n.Fragment,null,n.createElement("span",null," "),n.createElement(s.F,{appLink:e.checkboxAppLink,className:"info-link"},e.checkboxAppLinkText))))}var d=r(83914),p=r(83345),f=r(73814),v=r(35223);function h(e){var t=(0,i.u6)().values[e.fieldName];return"string"!=typeof t?n.createElement(n.Fragment,null):n.createElement("div",{className:"float-end text-secondary fw-normal"},t.length,"/",e.limit," characters")}const g={revealPassword:"jCfI0",passwordInput:"RBJnf",passwordContainer:"d78lK",passwordContainerDisabled:"asbVo",infoTooltip:"wzyOG",spinner:"CycFx"};function b(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var y=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]])}return r},E="shared.formField";function S(e){var t,r,o=e.children,s=e.showLoadingSpinner,u=y(e,["children","showLoadingSpinner"]),m=(t=n.useState(e.type),r=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,o,i,l=[],c=!0,s=!1;try{if(o=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=o.call(r)).done)&&(l.push(n.value),l.length!==t);c=!0);}catch(e){s=!0,a=e}finally{try{if(!c&&null!=r.return&&(i=r.return(),Object(i)!==i))return}finally{if(s)throw a}}return l}}(t,r)||function(e,t){if(e){if("string"==typeof e)return b(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?b(e,t):void 0}}(t,r)||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.")}()),p=m[0],f=m[1],h=l.q.isFunction(o)?function(e){return o(e)}:n.Children.count(o)?o:null;if("password"!==u.type)return s?n.createElement("div",{className:"position-relative"},n.createElement(i.gN,Object.assign({},c.t.omit(u,["formSize"])),h),n.createElement("div",{className:g.spinner},n.createElement(a.Z,{animation:"border",size:"sm"}))):n.createElement(i.gN,Object.assign({},c.t.omit(u,["formSize"])),h);var E="position-relative ".concat(g.passwordContainer);return u.className&&(E+=" ".concat(u.className)),u.disabled&&(E+=" ".concat(g.passwordContainerDisabled)),n.createElement("div",{className:E},n.createElement(i.gN,Object.assign({},c.t.omit(u,["formSize","type","className"]),{type:p,className:"".concat(g.passwordInput," border-0 w-100 h-100 outline-none rounded")}),h),"password"===u.type&&n.createElement(d.x,{svgName:"password"===p?v.vn.VisibleOn:v.vn.VisibleOff,className:"svg-container cursor-pointer ".concat(g.revealPassword),onClick:function(){f("password"===p?"text":"password")}}))}function w(e){var t=e.label,r=e.className,a=e.showCharacterCounter,l=e.showRequiredStar,s=e.infoTooltip,u=e.infoTooltipPlacement,b=e.infoText,w=e.formSize,O=e.showOptionalLabel,I=y(e,["label","className","showCharacterCounter","showRequiredStar","infoTooltip","infoTooltipPlacement","infoText","formSize","showOptionalLabel"]),x=(0,i.u6)(),T=x.errors,R=x.touched,N=function(){};if("checkbox"===I.type){var k=c.t.omit(e,["formSize","infoTooltipPlacement"]);return e.disabled&&(k.onChange=N),n.createElement(m,Object.assign({},k))}var j=Object.assign(Object.assign({},I),{className:f.w.getCustomFormControlClassName(T,R,I.name,w,r,"string"==typeof e.as?e.as:null)});return e.disabled&&(j.onChange=N),n.createElement(o.Z.Group,{className:"form-group"},!!t&&n.createElement(o.Z.Label,{htmlFor:I.id,className:"d-flex align-items-center"},t,l&&n.createElement("span",{className:"text-danger"},"*"),s&&n.createElement(d.x,{className:"svg-container text-secondary ".concat(g.infoTooltip),svgName:v.vn.Info,title:s,tooltipPlacement:u,tooltipSpanHack:!0}),O&&n.createElement("span",{className:"text-secondary"}," ",n.createElement(p.x,{namespace:E,phrase:"optional"})),!!a&&!!I.maxLength&&n.createElement("div",{className:"ms-auto"},n.createElement(h,{fieldName:I.name,limit:I.maxLength}))),n.createElement(S,Object.assign({},j,{"aria-errormessage":"".concat(I.name,"Error")})),!!b&&n.createElement(o.Z.Text,{className:"text-secondary"},b),n.createElement(i.Bc,{name:I.name},(function(e){return n.createElement(o.Z.Control.Feedback,{id:"".concat(I.name,"Error"),type:"invalid",role:"status"},e)})))}S.defaultProps={autoComplete:"off"},w.defaultProps={autoComplete:"off",infoTooltipPlacement:"top"}},82644:(e,t,r)=>{r.d(t,{b:()=>u,n:()=>s});var n=r(32735),a=r(92802),o=r(91967),i=r(1048);function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var c=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]])}return r};function s(e){var t=e.castInitialValues,r=e.castValuesOnSubmit,s=e.initialValues,u=e.onSubmit,m=c(e,["castInitialValues","castValuesOnSubmit","initialValues","onSubmit"]),d=t&&e.validationSchema?e.validationSchema.cast(function(e){if(!e)return{};var t=i.t.deepClone(e);return function e(r){Object.keys(t).forEach((function(n){t.hasOwnProperty(n)&&(i.t.isObject(r[n])?e(r[n]):null===t[n]&&delete t[n])}))}(t),t}(s)):s,p={allowInitialSubmit:e.allowInitialSubmit};return n.createElement(a.J9,Object.assign({enableReinitialize:!0},m,{initialValues:d,onSubmit:function(t,n){var a=n.setSubmitting,o=n.resetForm,i=n.setFieldError,c=r&&e.validationSchema?e.validationSchema.cast(t):t;u(c,(function(){var e,t,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(r.reset&&o(),r.errors)for(var n=0,c=Object.entries(r.errors);n<c.length;n++){var s=(e=c[n],t=2,function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,o,i,l=[],c=!0,s=!1;try{if(o=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=o.call(r)).done)&&(l.push(n.value),l.length!==t);c=!0);}catch(e){s=!0,a=e}finally{try{if(!c&&null!=r.return&&(i=r.return(),Object(i)!==i))return}finally{if(s)throw a}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return l(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?l(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.")}()),u=s[0],m=s[1];i(u,m)}a(!1)}))},initialStatus:p}),o.q.isFunction(e.children)?function(t){return e.children(t)}:n.Children.count(e.children)?e.children:null)}function u(){return(0,a.u6)()}s.defaultProps={castInitialValues:!0,castValuesOnSubmit:!0}},17101:(e,t,r)=>{var n;r.d(t,{n:()=>n}),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"}(n||(n={}))},23357:(e,t,r)=>{var n;r.d(t,{s:()=>n}),function(e){e.FileSelect="file-select",e.DragDrop="drag-drop"}(n||(n={}))},7198:(e,t,r)=>{r.d(t,{f:()=>a});var n=r(99940),a={submitFeedback:function(e,t){return{url:"{gateway}/v1/feedback",key:"submit:feedback",type:n.k.POST,data:Object.assign(Object.assign({},e),t)}}}},81409:(e,t,r)=>{r.d(t,{o:()=>o});var n=r(32735);function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function o(e,t){var r,o,i,l=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],c=(o=n.useState(!1),i=2,function(e){if(Array.isArray(e))return e}(o)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,o,i,l=[],c=!0,s=!1;try{if(o=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=o.call(r)).done)&&(l.push(n.value),l.length!==t);c=!0);}catch(e){s=!0,a=e}finally{try{if(!c&&null!=r.return&&(i=r.return(),Object(i)!==i))return}finally{if(s)throw a}}return l}}(o,i)||function(e,t){if(e){if("string"==typeof e)return a(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?a(e,t):void 0}}(o,i)||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];return n.useEffect((function(){var r=e();if(r)return r.off("add remove change"),r.on("add remove change",(function(){c((function(e){return!e}))})),t&&r.on("remove",t),function(){r.off("add remove change")}}),l),null===(r=e())||void 0===r?void 0:r.toJSON()}},52167:(e,t,r)=>{r.d(t,{m:()=>s});var n=r(53301),a=r.n(n),o=r(28046),i=r(19808),l=r(86613);function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var s={getUserInfo:function(e,t){return{id:e.id,username:e.username,email:e.email,userType:e.role===l.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 i.b.AU:return"au";case i.b.NZ:return"nz";case i.b.UK:return"uk";case i.b.US:return"us"}},getTags:function(e,t,r,n){var a,o=[t].concat(function(e){if(Array.isArray(e))return c(e)}(a=n)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(a)||function(e,t){if(e){if("string"==typeof e)return c(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?c(e,t):void 0}}(a)||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.")}());o.push(r?"student":"staff"),e.role===l.i.Admin&&o.push("administrator");var i=s.mapInstanceRegionToTag(e.instanceRegion);return i&&o.push(i),o},categorizeFiles:function(e){return e.reduce((function(e,t){var r=t.get("fileInfo");return a().isValidFile(t.get("file"),o.l.VIDEO)?e.videoUrls.push(null==r?void 0:r.url):e.imageUrls.push(null==r?void 0:r.url),e}),{imageUrls:[],videoUrls:[]})}}},73814:(e,t,r)=>{r.d(t,{w:()=>a});var n=r(92802),a={getCustomFormControlClassName:function(e,t,r,a,o,i){var l="";return l=function(e,t){var r="";return r="select"===e?"form-select":"form-control","sm"===t&&(r+=" ".concat(r,"-sm")),"lg"===t&&(r+=" ".concat(r,"-lg")),r}(i,a),(0,n.u9)(t,r)&&(0,n.u9)(e,r)&&(l+=" is-invalid"),o&&(l+=" ".concat(o)),l}}},89858:(e,t,r)=>{r.r(t),r.d(t,{GiveFeedbackView:()=>Ct});var n,a=r(32735),o=r(48088),i=r(53301),l=r.n(i),c=r(39202),s=r(23481),u=r(44704),m=r(21820),d=r(20354),p=r(49985),f=r(65858),v=r(29555),h=r(28046),g=r(9111),b=r(83345),y=r(52003),E=r(60735),S=r(17101),w=r(25925),O=r(12754),I=r(89454),x=r(21750),T=r(1666),R=r(7198),N=r(70145),k=r(31949),j=r(69883),L=r(81409),A=r(35286),F=r(52167),P=r(11607),U=r(49439);!function(e){e.SUGGEST_IMPROVEMENT="suggestImprovement",e.REPORT_BUG="reportBug",e.REQUEST_VIDEO="requestVideo",e.REQUEST_LIVESTREAM="requestLivestream",e.GIVE_PRAISE="givePraise",e.RAISE_ISSUE="raiseIssue",e.OTHER="other"}(n||(n={}));var C=s.T.encloseNamespace("shared.feedbackFormTitles"),V=function(e){switch(e){case n.SUGGEST_IMPROVEMENT:case n.REPORT_BUG:case n.REQUEST_VIDEO:case n.REQUEST_LIVESTREAM:case n.GIVE_PRAISE:case n.RAISE_ISSUE:case n.OTHER:return C(e)}};function _(e){return _="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},_(e)}function q(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=_(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,"string");if("object"!=_(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==_(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var G=q(q(q(q(q(q(q({mailSent:"https://image.api.prd.cvnet.io/v2/images/2mZ7L9",mediaPreview:"https://image.api.prd.cvnet.io/v2/images/ageRM0",lightBulb:"https://image.api.prd.cvnet.io/v2/images/Oqg3JN",heartHands:"https://image.api.prd.cvnet.io/v2/images/1ML8Oj",videoAlert:"https://image.api.prd.cvnet.io/v2/images/dq2oMq"},n.REQUEST_VIDEO,{default:"https://image.api.prd.cvnet.io/v2/images/G1YGdn",hover:"https://image.api.prd.cvnet.io/v2/images/K6yPxz"}),n.REQUEST_LIVESTREAM,{default:"https://image.api.prd.cvnet.io/v2/images/G1YGdn",hover:"https://image.api.prd.cvnet.io/v2/images/K6yPxz"}),n.SUGGEST_IMPROVEMENT,{default:"https://image.api.prd.cvnet.io/v2/images/g7aR1l",hover:"https://image.api.prd.cvnet.io/v2/images/zMR0Dk"}),n.RAISE_ISSUE,{default:"https://image.api.prd.cvnet.io/v2/images/5boW78",hover:"https://image.api.prd.cvnet.io/v2/images/m6yRKr"}),n.GIVE_PRAISE,{default:"https://image.api.prd.cvnet.io/v2/images/nE1mdz",hover:"https://image.api.prd.cvnet.io/v2/images/JjEnmR"}),n.REPORT_BUG,{default:"https://image.api.prd.cvnet.io/v2/images/AOdYpo",hover:"https://image.api.prd.cvnet.io/v2/images/yro9NM"}),n.OTHER,{default:"https://image.api.prd.cvnet.io/v2/images/Eoaykj",hover:"https://image.api.prd.cvnet.io/v2/images/wN59Zg"});const M={image:"_2jo0"};function D(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function B(e){var t,r,n=(t=(0,U.X)(),r=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,o,i,l=[],c=!0,s=!1;try{if(o=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=o.call(r)).done)&&(l.push(n.value),l.length!==t);c=!0);}catch(e){s=!0,a=e}finally{try{if(!c&&null!=r.return&&(i=r.return(),Object(i)!==i))return}finally{if(s)throw a}}return l}}(t,r)||function(e,t){if(e){if("string"==typeof e)return D(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?D(e,t):void 0}}(t,r)||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.")}()),o=n[0],i=n[1],l=G[e.option];return a.createElement(P.L,{ref:o,className:"col-lg-4 col-sm-6 col-12",onClick:function(){return e.onSelectOption(e.option)}},a.createElement("div",{className:"d-flex flex-column align-items-center h-100 rounded border py-3 gap-2"},a.createElement("img",{className:M.image,src:i?l.hover:l.default,alt:V(e.option)}),a.createElement("p",{className:"fw-semibold text-center mb-0"},V(e.option))))}function Z(e){return a.createElement("div",{className:"row g-2"},e.options.map((function(t){return a.createElement(B,{key:t,option:t,onSelectOption:e.onSelectOption})})))}var z=r(92802),W=r(82644),H=r(13876),Q=s.T.encloseNamespace("shared.feedbackButtons");function K(e){var t=(0,W.b)();return a.createElement(H.u,null,"form"===e.formStage&&a.createElement(a.Fragment,null,a.createElement(H.u.Cancel,{onClick:function(){return e.setSelectedOption(null)},text:Q("cancel")}),a.createElement(H.u.Submit,{variant:"dark",text:e.submitText||Q("submit"),disabled:!t.isValid})),"success"===e.formStage&&a.createElement(H.u.Cancel,{variant:"dark",text:Q("close"),onClick:e.closePopup}))}const $={successImage:"yp7vQ"};var X=s.T.encloseNamespace("shared.feedbackFormState");function J(e){return"form"===e.formStage||"error"===e.formStage?a.createElement(a.Fragment,null):a.createElement("div",{className:"text-center"},a.createElement("div",{className:"mb-3"},a.createElement("img",{className:$.successImage,src:e.successImageUrl||G.mailSent})),a.createElement("h4",{className:"mb-3"},e.successHeading||X("successHeading")),a.createElement("p",{className:"mb-3"},e.successDescription||X("successDescription")))}var Y=r(5173),ee=r(38365),te=s.T.encloseNamespace("shared.feedbackForm"),re=5e3,ne=function(e){switch(e){case"requiredError":return te(e);case"minCharactersError":return te(e,{limit:10});case"maxCharactersError":return te("maxCharactersError",{limit:re})}},ae=function(){return Y.Z_().min(10,ne("minCharactersError")).max(re,ne("maxCharactersError"))},oe=s.T.encloseNamespace("shared.feedbackGivePraise"),ie={praise:""},le=Y.Ry().shape({praise:ae().required(ne("requiredError"))}).noUnknown();function ce(){var e=(0,W.b)();return a.createElement(a.Fragment,null,a.createElement(ee.W,{as:"textarea",placeholder:oe("givePraisePlaceholder"),label:oe("givePraiseLabel"),name:"praise",rows:5,value:e.values.praise,showRequiredStar:!0}))}function se(e){return a.createElement(wt,Object.assign({},e,{initialValues:Object.assign(Object.assign({},ie),e.initialValues),validationSchema:le,successImageUrl:G.heartHands,successHeading:oe("successHeading"),successDescription:oe("successDescription")}),a.createElement(ce,null))}var ue=s.T.encloseNamespace("shared.feedbackOther"),me={feedback:""},de=Y.Ry().shape({feedback:ae().required(ne("requiredError"))}).noUnknown();function pe(){var e=(0,W.b)();return a.createElement(a.Fragment,null,a.createElement(ee.W,{as:"textarea",placeholder:ue("otherPlaceholder"),label:ue("otherLabel"),name:"feedback",rows:5,value:e.values.feedback,showRequiredStar:!0}))}function fe(e){return a.createElement(wt,Object.assign({},e,{initialValues:Object.assign(Object.assign({},me),e.initialValues),validationSchema:de}),a.createElement(pe,null))}var ve=s.T.encloseNamespace("shared.feedbackRaiseIssue"),he={issue:""},ge=Y.Ry().shape({issue:ae().required(ne("requiredError"))}).noUnknown();function be(){var e=(0,W.b)();return a.createElement(a.Fragment,null,a.createElement(ee.W,{as:"textarea",placeholder:ve("raiseIssuePlaceholder"),label:ve("raiseIssueLabel"),name:"issue",rows:5,value:e.values.issue,showRequiredStar:!0}))}function ye(e){return a.createElement(wt,Object.assign({},e,{initialValues:Object.assign(Object.assign({},he),e.initialValues),validationSchema:ge}),a.createElement(be,null))}var Ee=r(83914),Se=r(19808);function we(e){return we="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},we(e)}function Oe(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=we(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,"string");if("object"!=we(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==we(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var Ie=Oe(Oe(Oe(Oe({},Se.b.AU,{phone:"02 9509 2600",email:"support@clickview.com.au",website:"https://www.clickviewsupport.com/hc"}),Se.b.UK,{phone:"+44 (0)333 207 6595",email:"info@clickview.co.uk",website:"https://www.clickviewsupport.com/hc"}),Se.b.NZ,{phone:"09 916 1156",email:"support@clickview.co.nz",website:"https://www.clickviewsupport.com/hc"}),Se.b.US,{phone:"+1 312-292-9322",email:"info@clickvieweducation.com",website:"https://www.clickviewsupport.com/hc"}),xe=r(35223),Te=r(24064),Re=r(66122),Ne=r(23357);const ke={fileDrop:"vdCUc",resourcePreview:"tZQbH"};function je(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var Le="shared.feedbackFileUpload";function Ae(e){var t=(0,Te.uI)({onDrop:function(t){return e.onFilesAdded(t,Ne.s.DragDrop)},noClick:!0,noKeyboard:!0,multiple:!!e.acceptMultiple,noDragEventsBubbling:!0}),r=t.getRootProps,n=t.getInputProps,o=t.isDragActive,i=a.useRef(null),l=a.useCallback((function(e){e&&(i.current=e)}),[]),c="".concat(ke.fileDrop," text-center p-2 rounded-1");return e.uploadError&&(c+=" border-red"),o&&(c+=" border-blue bg-light-blue"),a.createElement(a.Fragment,null,a.createElement("div",Object.assign({},r({className:c})),a.createElement("img",{className:ke.resourcePreview,src:e.imageUrl,draggable:!1}),a.createElement("div",{className:"position-relative"},o&&a.createElement("p",{className:"position-absolute font-size-md translate-middle top-50 start-50 mb-0"},a.createElement(b.x,{namespace:Le,phrase:"dropUpload"})),a.createElement("div",{className:o?"opacity-0":""},a.createElement("p",{className:"mb-0"},a.createElement(b.x,{namespace:Le,phrase:"dragDrop"})),a.createElement("button",{type:"button",className:"btn btn-link text-underline p-0",onClick:function(){i.current.value=null,i.current.click()}},a.createElement(b.x,{namespace:Le,phrase:"upload"})))),a.createElement("input",{type:"file",name:"fileUpload",className:"file-select d-none",multiple:!!e.acceptMultiple,accept:e.mimeType,ref:l,onChange:function(t){return e.onFilesAdded(function(e){if(Array.isArray(e))return je(e)}(r=t.target.files)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(r)||function(e,t){if(e){if("string"==typeof e)return je(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?je(e,t):void 0}}(r)||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.")}(),Ne.s.FileSelect);var r},"aria-errormessage":"fileUploadError"}),a.createElement("input",Object.assign({},n()))),e.uploadError&&a.createElement(Re.A,{name:"fileUpload"},e.uploadError))}const Fe={progress:"PeDF6"};function Pe(e){var t=100===e.upload.progress;return a.createElement(a.Fragment,null,a.createElement("div",null,a.createElement(Ee.x,{svgName:xe.vn.Folder,className:"svg-container me-2"}),a.createElement("span",{className:"align-middle"},e.upload.name),t&&a.createElement(Ee.x,{svgName:xe.vn.Check,className:"svg-container float-end text-success"}),!t&&a.createElement("div",{role:"button","aria-label":"close",onClick:function(){return e.cancelUpload(e.upload.id)},className:"float-end description"},a.createElement(Ee.x,{svgName:xe.vn.Close}))),a.createElement("div",{className:"".concat(Fe.progress," progress my-2")},a.createElement("div",{className:"progress-bar bg-blue",role:"progressbar",style:{width:"".concat(e.upload.progress,"%")},"aria-valuenow":e.upload.progress,"aria-valuemin":0,"aria-valuemax":100})))}function Ue(e){var t;return(null===(t=e.uploads)||void 0===t?void 0:t.length)?a.createElement(a.Fragment,null,e.uploads.map((function(t,r){return a.createElement(Pe,{key:r,upload:t,cancelUpload:e.cancelUpload})}))):a.createElement(a.Fragment,null)}function Ce(e){return a.createElement("div",{className:"bg-gray-100 rounded p-2"},a.createElement(Ee.x,{className:"d-inline-block align-middle svg-container icon-purple me-2",svgName:xe.vn.FileImg}),a.createElement("span",{className:"align-middle"},e.file.get("name")),a.createElement("button",{className:"btn p-0 border-0 float-end",onClick:function(){return e.deleteFile(e.file.get("id"))}},a.createElement(Ee.x,{svgName:xe.vn.Delete})))}function Ve(e){return a.createElement("div",{className:"d-flex flex-column gap-2"},e.uploadedFiles.map((function(t){return a.createElement(Ce,{key:t.id,file:t,deleteFile:e.deleteFile})})))}var _e=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]])}return r},qe="shared.feedbackReportBug",Ge=s.T.encloseNamespace(qe),Me={issue:"",stepsToReproduce:""},De=Y.Ry().shape({issue:ae().required(ne("requiredError")),stepsToReproduce:ae()}).noUnknown();function Be(e){var t=(0,W.b)();return a.createElement(a.Fragment,null,a.createElement("div",{className:"form-group"},a.createElement("label",{className:"form-label mb-1"},a.createElement(b.x,{namespace:qe,phrase:"mixedMediaLabel"})),a.createElement("p",{className:"text-secondary font-size-sm"},a.createElement(b.x,{namespace:qe,phrase:"mixedMediaDescription"})),a.createElement("div",{className:"mb-3"},a.createElement(Ae,{mimeType:h.l.MIXED_MEDIA,onFilesAdded:e.onFilesAdded,imageUrl:e.previewImageUrl,uploadError:e.uploadError,acceptMultiple:!0})),a.createElement(Ue,{uploads:e.uploadingFiles,cancelUpload:e.cancelUpload}),a.createElement(Ve,{uploadedFiles:e.uploadedFiles,deleteFile:e.deleteFile})),a.createElement(ee.W,{as:"textarea",placeholder:Ge("issuePlaceholder"),label:Ge("issueLabel"),name:"issue",value:t.values.issue,showRequiredStar:!0}),a.createElement(ee.W,{as:"textarea",placeholder:Ge("stepsPlaceholder"),label:Ge("stepsLabel"),name:"stepsToReproduce",value:t.values.stepsToReproduce}),a.createElement("div",{className:"rounded bg-light-yellow p-2 mb-3"},a.createElement("p",{className:"fw-semibold mb-2"},a.createElement(b.x,{namespace:qe,phrase:"help"})),a.createElement("div",{className:"d-flex gap-1 mb-2"},a.createElement(Ee.x,{svgName:xe.vn.Link}),a.createElement("a",{href:Ie[e.instanceRegion].website,target:"_blank",className:"text-underline"},a.createElement(b.x,{namespace:qe,phrase:"visitHelpCentre"}))),a.createElement("p",{className:"mb-2"},a.createElement(b.x,{namespace:qe,phrase:"supportTeam"})),a.createElement("div",{className:"d-flex gap-1 mb-2"},a.createElement(Ee.x,{svgName:xe.vn.Phone}),a.createElement("span",null,Ie[e.instanceRegion].phone)),a.createElement("div",{className:"d-flex gap-1 mb-2"},a.createElement(Ee.x,{svgName:xe.vn.Email}),a.createElement("span",null,Ie[e.instanceRegion].email))))}function Ze(e){var t=e.onFilesAdded,r=e.cancelUpload,n=e.uploadingFiles,o=e.uploadedFiles,i=e.deleteFile,l=_e(e,["onFilesAdded","cancelUpload","uploadingFiles","uploadedFiles","deleteFile"]);return a.createElement(wt,Object.assign({},l,{initialValues:Object.assign(Object.assign({},Me),e.initialValues),validationSchema:De,submitText:Ge("submit")}),a.createElement(Be,{onFilesAdded:t,previewImageUrl:G.mediaPreview,cancelUpload:r,uploadingFiles:n,uploadedFiles:o,deleteFile:i,uploadError:e.uploadError,instanceRegion:e.instanceRegion}))}var ze=r(75896),We=r(82872),He=r(7855),Qe=r(4201),Ke="shared.feedbackRequestLivestream",$e=s.T.encloseNamespace(Ke),Xe={topic:"",studentLevel:[],producerCompany:"",additionalInfo:""},Je=Y.Z_().max(re,ne("maxCharactersError")),Ye=Y.Ry().shape({producerCompany:Je.required((function(){return $e("companyError")})),topic:Je,studentLevel:Y.IX(Y.Z_()),additionalInfo:ae()}).noUnknown();function et(e){var t=(0,W.b)(),r=t.values.studentLevel.map((function(t){return e.audiences.find((function(e){return e.masterId.toString()===t.toString()}))}))||[];function n(e){t.setFieldValue("studentLevel",ze.m.addOrRemoveImmutable(t.values.studentLevel,e.masterId.toString())),requestAnimationFrame((function(){return t.setFieldTouched("studentLevel")}))}return a.createElement(a.Fragment,null,a.createElement(ee.W,{placeholder:$e("companyPlaceholder"),label:$e("companyLabel"),name:"producerCompany",value:t.values.producerCompany,showRequiredStar:!0}),a.createElement(ee.W,{placeholder:$e("topicPlaceholder"),label:$e("topicLabel"),name:"topic",value:t.values.topic}),a.createElement("div",{className:"form-group"},a.createElement("label",{className:"form-label"},a.createElement(b.x,{namespace:Ke,phrase:"audiencesLabel"})),a.createElement(He.R,{id:"audiences",placeholder:$e("audiencesPlaceholder"),local:e.audiences,valueKey:"masterId",selections:r,onSuggestionSelected:n,removeSelection:function(e){return n(e)},errorStateImageUrl:null,emptyStateImageUrl:null,activationLength:0,suggestionLimit:!1,getInputTokenComponent:function(e){return a.createElement(We.D,{key:e.masterId,selection:{name:e.name,masterId:e.masterId},colourVariant:"teal",onClickRemove:function(e){return n(e)},hideExpander:!0})},getSuggestionComponent:function(e){return(0,Qe.Go)("name",e)},onSuggestionDependencies:[e.audiences,t.values.studentLevel,r],getLocalSuggestions:function(e,t){var n=t.find((function(t){return t.name===e}));return(0,Qe.Zo)(n?"":e,t,"name",0).filter((function(e){return!r.find((function(t){return t.masterId===e.masterId}))&&e.masterId!==(null==n?void 0:n.masterId)}))},focusInputOnSuggestionClick:!1,renderAsForm:!1,hideIcon:!0,onBlur:function(){return t.setFieldTouched("studentLevel")},className:"p-2 ".concat(t.touched.studentLevel&&t.errors.studentLevel?"is-invalid":"")}),t.touched.studentLevel&&t.errors.studentLevel&&a.createElement(Re.A,{name:"audiences"},t.errors.studentLevel)),a.createElement(ee.W,{as:"textarea",placeholder:$e("otherPlaceholder"),label:$e("otherLabel"),name:"additionalInfo",value:t.values.additionalInfo}))}function tt(e){return a.createElement(wt,Object.assign({},e,{initialValues:Object.assign(Object.assign({},Xe),e.initialValues),validationSchema:Ye}),a.createElement(et,{audiences:e.audiences}))}const rt={image:"SdHLR"};function nt(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var at="shared.feedbackBeforeRequesting",ot=s.T.encloseNamespace(at);function it(e){var t,r,n=(t=a.useState(!1),r=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,o,i,l=[],c=!0,s=!1;try{if(o=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=o.call(r)).done)&&(l.push(n.value),l.length!==t);c=!0);}catch(e){s=!0,a=e}finally{try{if(!c&&null!=r.return&&(i=r.return(),Object(i)!==i))return}finally{if(s)throw a}}return l}}(t,r)||function(e,t){if(e){if("string"==typeof e)return nt(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?nt(e,t):void 0}}(t,r)||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.")}()),o=n[0],i=n[1];return a.createElement(a.Fragment,null,a.createElement("div",{className:"d-flex flex-column align-items-center my-4"},a.createElement("img",{className:"".concat(rt.image," mb-3"),src:G.videoAlert}),a.createElement("h4",{className:"mb-3"},a.createElement(b.x,{namespace:at,phrase:"beforeRequesting"})),a.createElement("p",null,a.createElement(b.x,{namespace:at,phrase:"haveYouSearched",options:{exchangeUrl:"".concat(e.exchangeTvUrl,"/exchange")}}))),a.createElement(H.u,null,a.createElement(H.u.Checkbox,{id:"confirmExchange",checked:o,onToggle:function(){return i(!o)},label:ot("exchangeCheck")}),a.createElement(H.u.Cancel,{onClick:function(){return e.setSelectedOption(null)},text:ot("back")}),a.createElement(H.u.Submit,{variant:"dark",text:ot("continue"),disabled:!o,onClick:function(){return e.setConfirmed(!0)}})))}function lt(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var ct,st="shared.feedbackRequestVideo",ut=s.T.encloseNamespace(st);!function(e){e.VideosTopic="videosTopic",e.VideoOrSeries="videoOrSeries"}(ct||(ct={}));var mt={videoRequestType:"",topic:"",studentLevel:[],videoTitle:"",seriesName:"",producerCompany:"",websiteOrTrailer:"",additionalInfo:""},dt=function(){return Y.Z_().max(re,ne("maxCharactersError"))},pt=Y.Ry().shape({videoRequestType:Y.Z_().required(ut("videoRequestTypeRequiredError")),topic:dt().when("videoRequestType",{is:function(e){return e===ct.VideosTopic},then:dt().required(ut("topicRequiredError")),otherwise:dt().notRequired()}),studentLevel:Y.IX(Y.Z_()),videoTitle:dt().when(["videoRequestType","seriesName"],{is:function(e,t){return e===ct.VideoOrSeries&&!t},then:dt().required(ut("videoRequiredError")),otherwise:dt().notRequired()}),seriesName:dt(),producerCompany:dt(),websiteOrTrailer:dt(),additionalInfo:ae()}).noUnknown();function ft(e){var t=(0,W.b)(),r=t.values.studentLevel.map((function(t){var r;return null===(r=e.audiences)||void 0===r?void 0:r.find((function(e){return+e.masterId==+t}))}))||[];function n(e){t.setFieldValue("studentLevel",ze.m.addOrRemoveImmutable(t.values.studentLevel,e.masterId.toString())),requestAnimationFrame((function(){return t.setFieldTouched("studentLevel")}))}return a.createElement(a.Fragment,null,a.createElement(ee.W,{as:"select",label:ut("videoRequestTypeLabel"),name:"videoRequestType",value:t.values.videoRequestType},a.createElement("option",{value:"",disabled:!0,hidden:!0},ut("videoRequestTypePlaceholder")),a.createElement("option",{value:ct.VideosTopic},ut("videosTopicType")),a.createElement("option",{value:ct.VideoOrSeries},ut("videoOrSeriesType"))),t.values.videoRequestType===ct.VideosTopic&&a.createElement(a.Fragment,null,a.createElement(ee.W,{placeholder:ut("videoTopicPlaceholder"),label:ut("videoTopicLabel"),name:"topic",value:t.values.topic,showRequiredStar:!0}),a.createElement("div",{className:"form-group"},a.createElement("label",{className:"form-label"},a.createElement(b.x,{namespace:st,phrase:"audiencesLabel"})),a.createElement(He.R,{id:"audiences",placeholder:ut("audiencesPlaceholder"),local:e.audiences,valueKey:"masterId",selections:r,onSuggestionSelected:n,removeSelection:function(e){return n(e)},errorStateImageUrl:null,emptyStateImageUrl:null,activationLength:0,suggestionLimit:!1,getInputTokenComponent:function(e){return a.createElement(We.D,{key:e.masterId,selection:{name:e.name,masterId:e.masterId},colourVariant:"teal",onClickRemove:function(e){return n(e)},hideExpander:!0})},getSuggestionComponent:function(e){return(0,Qe.Go)("name",e)},onSuggestionDependencies:[e.audiences,t.values.studentLevel,r],getLocalSuggestions:function(e,t){var n=t.find((function(t){return t.name===e}));return(0,Qe.Zo)(n?"":e,t,"name",0).filter((function(e){return!r.find((function(t){return t.masterId===e.masterId}))&&e.masterId!==(null==n?void 0:n.masterId)}))},focusInputOnSuggestionClick:!1,renderAsForm:!1,hideIcon:!0,onBlur:function(){return t.setFieldTouched("studentLevel")},className:"p-2 ".concat(t.touched.studentLevel&&t.errors.studentLevel?"is-invalid":"")}),t.touched.studentLevel&&t.errors.studentLevel&&a.createElement(Re.A,{name:"audiences"},t.errors.studentLevel)),a.createElement(ee.W,{as:"textarea",placeholder:ut("otherPlaceholder"),label:ut("otherLabel"),name:"additionalInfo",value:t.values.additionalInfo})),t.values.videoRequestType===ct.VideoOrSeries&&a.createElement(a.Fragment,null,a.createElement(ee.W,{placeholder:ut("videoTitlePlaceholder"),label:ut("videoTitleLabel"),name:"videoTitle",value:t.values.videoTitle}),a.createElement(ee.W,{placeholder:ut("seriesPlaceholder"),label:ut("seriesLabel"),name:"seriesName",value:t.values.seriesName}),a.createElement(ee.W,{placeholder:ut("companyPlaceholder"),label:ut("companyLabel"),name:"producerCompany",value:t.values.producerCompany}),a.createElement(ee.W,{placeholder:ut("videoTopicPlaceholder"),label:ut("topicLabel"),name:"topic",value:t.values.topic}),a.createElement(ee.W,{placeholder:ut("websiteOrTrailerPlaceholder"),label:ut("websiteOrTrailerLabel"),name:"websiteOrTrailer",value:t.values.websiteOrTrailer}),a.createElement(ee.W,{as:"textarea",placeholder:ut("otherPlaceholder"),label:ut("otherLabel"),name:"additionalInfo",value:t.values.additionalInfo})))}function vt(e){var t,r,n=(t=a.useState(!1),r=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,o,i,l=[],c=!0,s=!1;try{if(o=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=o.call(r)).done)&&(l.push(n.value),l.length!==t);c=!0);}catch(e){s=!0,a=e}finally{try{if(!c&&null!=r.return&&(i=r.return(),Object(i)!==i))return}finally{if(s)throw a}}return l}}(t,r)||function(e,t){if(e){if("string"==typeof e)return lt(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?lt(e,t):void 0}}(t,r)||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.")}()),o=n[0],i=n[1],l=e.hasExchangeTvProduct&&!o;return a.createElement(wt,Object.assign({},e,{initialValues:Object.assign(Object.assign({},mt),e.initialValues),validationSchema:pt,hideButtons:e.hasExchangeTvProduct&&!o}),l&&a.createElement(it,{setConfirmed:i,setSelectedOption:e.setSelectedOption,exchangeTvUrl:e.exchangeTvUrl}),!l&&a.createElement(ft,{audiences:e.audiences}))}var ht="shared.feedbackSuggestImprovement",gt=s.T.encloseNamespace(ht),bt={suggestion:"",importance:""},yt=Y.Ry().shape({suggestion:ae().required(ne("requiredError")),importance:ae()}).noUnknown();function Et(e){var t=(0,W.b)();return a.createElement(a.Fragment,null,a.createElement(ee.W,{as:"textarea",placeholder:gt("suggestionPlaceholder"),label:gt("suggestionLabel"),name:"suggestion",value:t.values.suggestion,showRequiredStar:!0}),a.createElement(ee.W,{as:"textarea",placeholder:gt("whySuggestionPlaceholder"),label:gt("whySuggestionLabel"),name:"importance",rows:5,value:t.values.importance}),a.createElement("p",null,a.createElement(b.x,{namespace:ht,phrase:"contactSupport"})," ",a.createElement("button",{className:"btn btn-link text-underline p-0",onClick:function(){return e.setSelectedOption(n.RAISE_ISSUE)}},a.createElement(b.x,{namespace:ht,phrase:"raiseIssue"}))))}function St(e){return a.createElement(wt,Object.assign({},e,{initialValues:Object.assign(Object.assign({},bt),e.initialValues),validationSchema:yt,successImageUrl:G.lightBulb,successHeading:gt("successHeading"),successDescription:gt("successDescription")}),a.createElement(Et,{setSelectedOption:e.setSelectedOption}))}function wt(e){var t=a.useRef(null);return a.createElement(W.n,{onSubmit:e.onSubmit,initialValues:e.initialValues,validationSchema:e.validationSchema,validateOnMount:!0,innerRef:t},a.createElement(z.l0,null,"form"===e.formStage&&e.children,a.createElement(J,{formStage:e.formStage,successImageUrl:e.successImageUrl,successHeading:e.successHeading,successDescription:e.successDescription}),!e.hideButtons&&a.createElement(K,{setSelectedOption:function(r){e.setFormState((function(e){var r;return Object.assign(Object.assign({},e),null===(r=t.current)||void 0===r?void 0:r.values)})),e.setSelectedOption(r)},submitText:e.submitText,formStage:e.formStage,closePopup:e.closePopup})))}function Ot(e){var t={formStage:e.formStage,initialValues:e.initialValues,setFormState:e.setFormState,onSubmit:e.onSubmit,setSelectedOption:e.setSelectedOption,closePopup:e.closePopup};switch(e.selectedOption){case n.SUGGEST_IMPROVEMENT:return a.createElement(St,Object.assign({},t));case n.REPORT_BUG:return a.createElement(Ze,Object.assign({},t,{onFilesAdded:e.onFilesAdded,cancelUpload:e.cancelUpload,uploadingFiles:e.uploadingFiles,uploadedFiles:e.uploadedFiles,deleteFile:e.deleteFile,uploadError:e.uploadError,instanceRegion:e.instanceRegion}));case n.REQUEST_VIDEO:return a.createElement(vt,Object.assign({},t,{audiences:e.audiences,hasExchangeTvProduct:e.hasExchangeTvProduct,exchangeTvUrl:e.exchangeTvUrl}));case n.REQUEST_LIVESTREAM:return a.createElement(tt,Object.assign({},t,{audiences:e.audiences}));case n.RAISE_ISSUE:return a.createElement(ye,Object.assign({},t));case n.GIVE_PRAISE:return a.createElement(se,Object.assign({},t));case n.OTHER:return a.createElement(fe,Object.assign({},t))}}function It(e){return It="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},It(e)}function xt(){xt=function(){return t};var e,t={},r=Object.prototype,n=r.hasOwnProperty,a=Object.defineProperty||function(e,t,r){e[t]=r.value},o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",l=o.asyncIterator||"@@asyncIterator",c=o.toStringTag||"@@toStringTag";function s(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{s({},"")}catch(e){s=function(e,t,r){return e[t]=r}}function u(e,t,r,n){var o=t&&t.prototype instanceof g?t:g,i=Object.create(o.prototype),l=new j(n||[]);return a(i,"_invoke",{value:T(e,r,l)}),i}function m(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}t.wrap=u;var d="suspendedStart",p="suspendedYield",f="executing",v="completed",h={};function g(){}function b(){}function y(){}var E={};s(E,i,(function(){return this}));var S=Object.getPrototypeOf,w=S&&S(S(L([])));w&&w!==r&&n.call(w,i)&&(E=w);var O=y.prototype=g.prototype=Object.create(E);function I(e){["next","throw","return"].forEach((function(t){s(e,t,(function(e){return this._invoke(t,e)}))}))}function x(e,t){function r(a,o,i,l){var c=m(e[a],e,o);if("throw"!==c.type){var s=c.arg,u=s.value;return u&&"object"==It(u)&&n.call(u,"__await")?t.resolve(u.__await).then((function(e){r("next",e,i,l)}),(function(e){r("throw",e,i,l)})):t.resolve(u).then((function(e){s.value=e,i(s)}),(function(e){return r("throw",e,i,l)}))}l(c.arg)}var o;a(this,"_invoke",{value:function(e,n){function a(){return new t((function(t,a){r(e,n,t,a)}))}return o=o?o.then(a,a):a()}})}function T(t,r,n){var a=d;return function(o,i){if(a===f)throw Error("Generator is already running");if(a===v){if("throw"===o)throw i;return{value:e,done:!0}}for(n.method=o,n.arg=i;;){var l=n.delegate;if(l){var c=R(l,n);if(c){if(c===h)continue;return c}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(a===d)throw a=v,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);a=f;var s=m(t,r,n);if("normal"===s.type){if(a=n.done?v:p,s.arg===h)continue;return{value:s.arg,done:n.done}}"throw"===s.type&&(a=v,n.method="throw",n.arg=s.arg)}}}function R(t,r){var n=r.method,a=t.iterator[n];if(a===e)return r.delegate=null,"throw"===n&&t.iterator.return&&(r.method="return",r.arg=e,R(t,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),h;var o=m(a,t.iterator,r.arg);if("throw"===o.type)return r.method="throw",r.arg=o.arg,r.delegate=null,h;var i=o.arg;return i?i.done?(r[t.resultName]=i.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,h):i:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,h)}function N(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 k(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function j(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(N,this),this.reset(!0)}function L(t){if(t||""===t){var r=t[i];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var a=-1,o=function r(){for(;++a<t.length;)if(n.call(t,a))return r.value=t[a],r.done=!1,r;return r.value=e,r.done=!0,r};return o.next=o}}throw new TypeError(It(t)+" is not iterable")}return b.prototype=y,a(O,"constructor",{value:y,configurable:!0}),a(y,"constructor",{value:b,configurable:!0}),b.displayName=s(y,c,"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,y):(e.__proto__=y,s(e,c,"GeneratorFunction")),e.prototype=Object.create(O),e},t.awrap=function(e){return{__await:e}},I(x.prototype),s(x.prototype,l,(function(){return this})),t.AsyncIterator=x,t.async=function(e,r,n,a,o){void 0===o&&(o=Promise);var i=new x(u(e,r,n,a),o);return t.isGeneratorFunction(r)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},I(O),s(O,c,"Generator"),s(O,i,(function(){return this})),s(O,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),r=[];for(var n in t)r.push(n);return r.reverse(),function e(){for(;r.length;){var n=r.pop();if(n in t)return e.value=n,e.done=!1,e}return e.done=!0,e}},t.values=L,j.prototype={constructor:j,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(k),!t)for(var r in this)"t"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=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 r=this;function a(n,a){return l.type="throw",l.arg=t,r.next=n,a&&(r.method="next",r.arg=e),!!a}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],l=i.completion;if("root"===i.tryLoc)return a("end");if(i.tryLoc<=this.prev){var c=n.call(i,"catchLoc"),s=n.call(i,"finallyLoc");if(c&&s){if(this.prev<i.catchLoc)return a(i.catchLoc,!0);if(this.prev<i.finallyLoc)return a(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return a(i.catchLoc,!0)}else{if(!s)throw Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return a(i.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var a=this.tryEntries[r];if(a.tryLoc<=this.prev&&n.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var o=a;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var i=o?o.completion:{};return i.type=e,i.arg=t,o?(this.method="next",this.next=o.finallyLoc,h):this.complete(i)},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),h},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),k(r),h}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var a=n.arg;k(r)}return a}}throw Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:L(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),h}},t}function Tt(e){return function(e){if(Array.isArray(e))return kt(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||Nt(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 Rt(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,o,i,l=[],c=!0,s=!1;try{if(o=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=o.call(r)).done)&&(l.push(n.value),l.length!==t);c=!0);}catch(e){s=!0,a=e}finally{try{if(!c&&null!=r.return&&(i=r.return(),Object(i)!==i))return}finally{if(s)throw a}}return l}}(e,t)||Nt(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 Nt(e,t){if(e){if("string"==typeof e)return kt(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?kt(e,t):void 0}}function kt(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var jt=function(e,t,r,n){return new(r||(r=Promise))((function(a,o){function i(e){try{c(n.next(e))}catch(e){o(e)}}function l(e){try{c(n.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?a(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(i,l)}c((n=n.apply(e,t||[])).next())}))},Lt="shared.giveFeedback",At=s.T.encloseNamespace(Lt),Ft=5,Pt=60,Ut=1e6;function Ct(e){var t,r,i=(0,j.Z)(),s=(0,u.useGetFetchAsync)(),P=d.a.useBasicFetch(k.N.currentUser()),U=d.a.useBasicFetch(P.data&&T.h.customer(P.data.customerId)),C=d.a.useBasicFetch(P.data&&k.N.user(P.data.id)),_=Rt(a.useState(null),2),q=_[0],G=_[1],M=Rt(a.useState("form"),2),D=M[0],B=M[1],z=Rt(a.useState(null),2),W=z[0],H=z[1],Q=(0,m.G)(E.D.MixedMediaUpload),K=(0,L.o)((function(){return Q.getCollection()}),null),$=a.useRef(),X=a.useRef(0),J=a.useRef([]),Y=Rt(a.useState([]),2),ee=Y[0],te=Y[1],re=Rt(a.useState(""),2),ne=re[0],ae=re[1],oe=e.product===O.x.StreamableLearning?w.R.StreamableLearning:w.R.Subject,ie=d.a.useBasicFetch(x.x.presentation(oe)),le=d.a.useBasicFetch(I.O.presentationAudiences(null,oe)),ce=null===(t=d.a.useBasicFetch(N.h.userProducts()).data)||void 0===t?void 0:t.find((function(e){return e.id===O.x.Exchange}));function se(e){G(e),e&&p.k.logUserAction({type:e},{actionType:f.Vw.Click,entity:f.py.Feedback,location:f.LZ.GiveFeedbackPopup,workflowPhase:f.eu.Start})}function ue(e){switch(e){case n.SUGGEST_IMPROVEMENT:return S.n.SuggestImprovement;case n.REPORT_BUG:return S.n.ReportBug;case n.REQUEST_VIDEO:return S.n.RequestVideo;case n.REQUEST_LIVESTREAM:return S.n.RequestLivestream;case n.GIVE_PRAISE:return S.n.GivePraise;case n.RAISE_ISSUE:return S.n.RaiseIssue;case n.OTHER:return S.n.Other}}return(0,A.L)(o.Radio.channel(y.Q4.MIXED_MEDIA_UPLOAD),v.S.UPLOAD_COMPLETE,(function(e){var t=e.toJSON();if(J.current.push(t),X.current--,!(X.current>0)){var r=J.current.length;J.current.forEach((function(e){setTimeout((function(){r--;var t=Q.getCollection().filter((function(t){var r;return(null===(r=t.get("fileInfo"))||void 0===r?void 0:r.id)===e.fileInfo.id}));Q.getCollection().remove(t),te((function(e){return[].concat(Tt(e),Tt(t))})),r>0||(p.k.logUserAction({fileInfo:e.fileInfo},{location:f.LZ.GiveFeedbackPopup,actionType:f.Vw.Upload,entity:f.py.MixedMedia,descriptor:p.k.mapInteractionType($.current)}),i.success(At("mixedMediaUploadSuccess")))}))})),J.current=[]}})),a.createElement(g.G,{size:"lg",title:q?V(q):At("title"),closePopup:e.closePopup,backdrop:"static"},!q&&a.createElement("p",null,a.createElement(b.x,{namespace:Lt,phrase:"description"})),!q&&a.createElement(Z,{onSelectOption:se,options:[n.SUGGEST_IMPROVEMENT,n.REPORT_BUG,e.product===O.x.StreamableLearning?n.REQUEST_LIVESTREAM:n.REQUEST_VIDEO,n.GIVE_PRAISE,n.RAISE_ISSUE,n.OTHER]}),q&&a.createElement(Ot,{selectedOption:q,formStage:D,onSubmit:function(t,r){var a,o,l,u,m,d;return jt(this,void 0,void 0,xt().mark((function v(){var h,g;return xt().wrap((function(v){for(;;)switch(v.prev=v.next){case 0:return h={type:ue(q),user:F.m.getUserInfo(P.data,U.data),tags:F.m.getTags(P.data,e.product,!1,["give feedback",V(q).toLowerCase(),null===(o=null===(a=ie.data)||void 0===a?void 0:a.description)||void 0===o?void 0:o.toLowerCase().trim(),null===(d=null===(m=null===(u=null===(l=C.data)||void 0===l?void 0:l.userProfile)||void 0===u?void 0:u.metadata)||void 0===m?void 0:m.jobTitle)||void 0===d?void 0:d.toLowerCase()].filter(Boolean))},g=Object.assign(Object.assign({},t),{currentPageUrl:c.Ab.GetCurrentUrl()}),q===n.REPORT_BUG&&ee.length&&(g=Object.assign(Object.assign({},g),F.m.categorizeFiles(ee))),v.prev=3,v.next=6,s(R.f.submitFeedback(h,g));case 6:p.k.logUserAction(Object.assign(Object.assign({},h),g),{actionType:f.Vw.Submit,entity:f.py.Feedback,location:f.LZ.GiveFeedbackPopup,workflowPhase:f.eu.Complete}),B("success"),v.next=13;break;case 10:v.prev=10,v.t0=v.catch(3),i.error(At("error"));case 13:return v.prev=13,r(),v.finish(13);case 16:case"end":return v.stop()}}),v,null,[[3,10,13,16]])})))},setSelectedOption:se,closePopup:e.closePopup,onFilesAdded:function(e,t){e.some((function(e){return e.size>Pt*Ut}))?ae(At("maxFileSizeUploadError",{limit:Pt})):e.length>Ft-K.length?ae(At("maxFilesUploadError",{limit:Ft})):e.some((function(e){return!l().isValidFile(e,h.l.MIXED_MEDIA)}))?ae(At("invalidTypeUploadError")):(ae(""),X.current+=e.length,t&&($.current=t),Q.addFiles(e))},uploadingFiles:K,uploadedFiles:ee,deleteFile:function(e){te((function(t){return t.filter((function(t){return t.id!==e}))}))},cancelUpload:function(e){return Q.cancelUpload(e)},audiences:le.data,uploadError:ne,initialValues:W,setFormState:H,instanceRegion:null===(r=P.data)||void 0===r?void 0:r.instanceRegion,hasExchangeTvProduct:!!ce,exchangeTvUrl:null==ce?void 0:ce.url}))}}}]);
3
- //# sourceMappingURL=8055-7d46e34c6a-lite.chunk.js.map