@clickview/lite 0.50.0-rc.5 → 0.50.0-rc.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundles.json +1 -1
- package/dist/scripts/{1402-d327ed0365-lite.chunk.js → 1402-8c3babb6af-lite.chunk.js} +2 -2
- package/dist/scripts/1402-8c3babb6af-lite.chunk.js.map +1 -0
- package/dist/scripts/{1518-9961f6d99b-lite.chunk.js → 1518-e6c8ab0c89-lite.chunk.js} +2 -2
- package/dist/scripts/1518-e6c8ab0c89-lite.chunk.js.map +1 -0
- package/dist/scripts/{2703-430c5a5fc1-lite.chunk.js → 2703-6ae830c2e6-lite.chunk.js} +2 -2
- package/dist/scripts/2703-6ae830c2e6-lite.chunk.js.map +1 -0
- package/dist/scripts/{3070-4e82411f0c-lite.chunk.js → 3070-07721de8f8-lite.chunk.js} +2 -2
- package/dist/scripts/3070-07721de8f8-lite.chunk.js.map +1 -0
- package/dist/scripts/{5242-a2a5d89eee-lite.chunk.js → 5242-76b32478bc-lite.chunk.js} +2 -2
- package/dist/scripts/5242-76b32478bc-lite.chunk.js.map +1 -0
- package/dist/scripts/{5936-59acb26157-lite.chunk.js → 5936-7ad136f2a3-lite.chunk.js} +2 -2
- package/dist/scripts/5936-7ad136f2a3-lite.chunk.js.map +1 -0
- package/dist/scripts/6181-7a4fc8e1e1-lite.chunk.js +2 -0
- package/dist/scripts/6181-7a4fc8e1e1-lite.chunk.js.map +1 -0
- package/dist/scripts/{6263-736bbd8641-lite.chunk.js → 6263-a60b811d93-lite.chunk.js} +2 -2
- package/dist/scripts/6263-a60b811d93-lite.chunk.js.map +1 -0
- package/dist/scripts/6531-835c743f1b-lite.chunk.js +2 -0
- package/dist/scripts/6531-835c743f1b-lite.chunk.js.map +1 -0
- package/dist/scripts/{8085-ed82fb07da-lite.chunk.js → 8085-cde67e66df-lite.chunk.js} +2 -2
- package/dist/scripts/8085-cde67e66df-lite.chunk.js.map +1 -0
- package/dist/scripts/{8354-a104955138-lite.chunk.js → 8354-411c0c4a3a-lite.chunk.js} +2 -2
- package/dist/scripts/8354-411c0c4a3a-lite.chunk.js.map +1 -0
- package/dist/scripts/{8987-649a6a16f4-lite.chunk.js → 8987-9fb9a632e7-lite.chunk.js} +2 -2
- package/dist/scripts/8987-9fb9a632e7-lite.chunk.js.map +1 -0
- package/dist/scripts/{9068-1c0aece2e1-lite.chunk.js → 9068-562c30f718-lite.chunk.js} +2 -2
- package/dist/scripts/9068-562c30f718-lite.chunk.js.map +1 -0
- package/dist/scripts/{bundle-7cf309c41a.min.js → bundle-098294f9a6.min.js} +3 -3
- package/dist/scripts/{bundle-7cf309c41a.min.js.map → bundle-098294f9a6.min.js.map} +1 -1
- package/package.json +1 -1
- package/dist/scripts/1402-d327ed0365-lite.chunk.js.map +0 -1
- package/dist/scripts/1518-9961f6d99b-lite.chunk.js.map +0 -1
- package/dist/scripts/2703-430c5a5fc1-lite.chunk.js.map +0 -1
- package/dist/scripts/3070-4e82411f0c-lite.chunk.js.map +0 -1
- package/dist/scripts/5242-a2a5d89eee-lite.chunk.js.map +0 -1
- package/dist/scripts/5936-59acb26157-lite.chunk.js.map +0 -1
- package/dist/scripts/6181-4944b5c6a2-lite.chunk.js +0 -2
- package/dist/scripts/6181-4944b5c6a2-lite.chunk.js.map +0 -1
- package/dist/scripts/6263-736bbd8641-lite.chunk.js.map +0 -1
- package/dist/scripts/6531-d77ba2c5ce-lite.chunk.js +0 -2
- package/dist/scripts/6531-d77ba2c5ce-lite.chunk.js.map +0 -1
- package/dist/scripts/8085-ed82fb07da-lite.chunk.js.map +0 -1
- package/dist/scripts/8354-a104955138-lite.chunk.js.map +0 -1
- package/dist/scripts/8987-649a6a16f4-lite.chunk.js.map +0 -1
- package/dist/scripts/9068-1c0aece2e1-lite.chunk.js.map +0 -1
- /package/dist/scripts/{bundle-7cf309c41a.min.js.LICENSE.txt → bundle-098294f9a6.min.js.LICENSE.txt} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/5936-7ad136f2a3-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/components/infinite-scroll-footer/infinite-scroll-footer.scss","file:///app/packages/libs/shared/src/components/infinite-scroll-footer/InfiniteScrollFooter.tsx","file:///app/packages/libs/shared/src/components/play-page-v2/interactives-widget/InteractiveWidgetItemV2.tsx","file:///app/packages/libs/shared/src/components/video-list/partial-loading/partial-video-list.scss","file:///app/packages/libs/shared/src/components/video-list/partial-loading/PartialVideoList.tsx","file:///app/packages/libs/shared/src/components/video-owner-text/video-owner-text.scss","file:///app/packages/libs/shared/src/components/video-owner-text/VideoOwnerText.tsx","file:///app/packages/libs/shared/src/components/widgets/items/interactive-widget-item/InteractiveWidgetItem.tsx","file:///app/packages/libs/shared/src/components/widgets/items/interactive-widget-item/interactive-widget-item.scss","file:///app/packages/libs/shared/src/errors/handlers/HttpErrorHandlers.ts","file:///app/packages/libs/shared/src/hooks/UseHandleObjectError.ts","file:///app/packages/libs/shared/src/interfaces/PlayPageAnchor.ts","file:///app/packages/projects/lite/src/apps/interactives/components/play-interactive/PlayInteractive.tsx","file:///app/packages/projects/lite/src/apps/interactives/components/preview-interactive/InteractiveAlertBanner.tsx","file:///app/packages/projects/lite/src/apps/interactives/components/preview-interactive/PreviewInteractive.tsx","file:///app/packages/projects/lite/src/apps/interactives/hooks/interactiveHooks.tsx","file:///app/packages/projects/lite/src/shared/components/play-page/ArchivedBanner.tsx","file:///app/packages/projects/lite/src/shared/components/play-page/RestrictionBanner.tsx","file:///app/packages/projects/lite/src/shared/components/related-videos/RelatedVideos.tsx","file:///app/packages/projects/lite/src/shared/hooks/usePresentationAudiences.ts","file:///app/packages/projects/lite/src/shared/hooks/useShouldPreviewInteractive.ts","file:///app/packages/projects/lite/src/shared/hooks/useVideoMixin.ts"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"container\":\"VwD1b\",\"spinner\":\"eJ85e\"};","import * as React from 'react';\nimport { Spinner } from 'react-bootstrap';\nimport { useInView } from 'react-intersection-observer';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './infinite-scroll-footer.scss';\n\ninterface InfiniteScrollFooterProps {\n isFetching: boolean;\n fetchNext?: (nextCursor: string) => void;\n nextCursor?: string;\n fetchOnScroll?: boolean;\n}\n\nInfiniteScrollFooter.defaultProps = {\n fetchOnScroll: false\n};\n\nexport function InfiniteScrollFooter(props: InfiniteScrollFooterProps): React.ReactElement {\n const [ ref, inView ] = useInView();\n\n React.useEffect(() => {\n if (!props.fetchOnScroll)\n return;\n\n if (!inView || props.isFetching)\n return;\n\n props.fetchNext?.(props.nextCursor);\n }, [ inView, props.isFetching ]);\n\n return (\n <div className={`p-3 text-center ${styles.container}`} ref={ref}>\n {props.isFetching\n ? <Spinner as='span' animation='border' role='status' className={styles.spinner} />\n : (\n <SvgContainer\n svgName={cvSvgLibrary.ChevronDown}\n className='svg-container cursor-pointer'\n size={SvgContainerSize.Large}\n onClick={() => props.fetchNext?.(props.nextCursor)}\n />\n )\n }\n </div>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\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';\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}\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 />\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 appLink={questionsAppLink} className='cursor-pointer'>\n <Text namespace={namespace} phrase='previewQuestions' options={{ count: questionsNumber, smartCount: questionsNumber }}/>\n </AppLink>\n </div>\n\n </div>\n );\n});\n","// extracted by mini-css-extract-plugin\nexport default {\"partialOptions\":\"Gufgq\",\"partialName\":\"SicQQ\",\"partialDescription\":\"dPGMq\",\"partialThumbnail\":\"vZrnb\",\"partialDragHandle\":\"iq73R\"};","import React from 'react';\nimport { Col, Row } from 'react-bootstrap';\n\nimport { VideoListHelper } from 'libs/shared/components/video-list/VideoListHelper';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\n\nimport styles from './partial-video-list.scss';\n\ninterface PartialVideoListProps {\n withReordering?: boolean;\n numVideos?: number;\n allowBulkActions?: boolean;\n}\n\nPartialVideoList.defaultProps = {\n numVideos: 15\n};\n\nexport function PartialVideoList(props: PartialVideoListProps): JSX.Element {\n return (\n <div className='mx-2'>\n {Array(props.numVideos).fill(null).map((_, i) => (\n <div className='d-flex' key={i}>\n {props.allowBulkActions && <div className='form-check pe-3 pe-sm-2 mx-0 mx-md-2' />}\n <PartialVideoItem {...props} />\n </div>\n ))}\n </div>\n );\n}\n\nexport function PartialVideoItem(props: PartialVideoListProps): JSX.Element {\n const breakpoints = useBreakpoints();\n\n const size = VideoListHelper.getSize(breakpoints, 'md');\n const isSmall = size === 'sm';\n\n const withDragHandle = props.withReordering && !breakpoints.xs;\n\n return (\n <Row className={`${isSmall ? '' : 'py-2'} flex-grow-1`}>\n <Col {...VideoListHelper.getThumbnailColumns()} className={`flex-column align-items-flex-start ${isSmall ? `pb-2 pe-1` : 'mb-1 pe-3 pe-md-2'}`}>\n <Row>\n {!!withDragHandle && (\n <div className='d-flex align-items-center justify-content-center col-2'>\n <div className={`partial-loading-background ${styles.partialDragHandle}`} />\n </div>\n )}\n <Col xs={VideoListHelper.getThumbnailColSize(withDragHandle)}>\n <div className={`partial-loading-background ${isSmall ? 'rounded' : 'rounded-3'} ${styles.partialThumbnail}`} />\n </Col>\n </Row>\n </Col>\n <Col {...VideoListHelper.getDetailsColumns()} className={isSmall ? 'pb-2' : 'px-2'}>\n <div className={`partial-loading-background mb-1 ${styles.partialName}`} />\n <div className={`partial-loading-background ${styles.partialDescription}`} />\n </Col>\n </Row>\n );\n}\n\n","// extracted by mini-css-extract-plugin\nexport default {\"avatarContainer\":\"kd18L\",\"cvIcon\":\"smUBc\"};","import React from 'react';\n\nimport { Avatar } from 'libs/shared/components/avatar/Avatar';\nimport { SvgContainer2 } from 'libs/shared/components/svg-container/SvgContainer2';\nimport { ClickViewPlayLogo } from 'libs/shared/components/svgs/clickview-logo/ClickViewLogo';\nimport { User } from 'libs/shared/interfaces';\nimport { UserHelper } from 'libs/shared/utils/UserHelper';\n\nimport styles from './video-owner-text.scss';\n\ninterface VideoOwnerTextProps {\n owner: User;\n isClickViewCurated: boolean;\n imageCdnUrl: string;\n}\n\nexport function VideoOwnerText(props: VideoOwnerTextProps): JSX.Element {\n if (!props.owner && !props.isClickViewCurated)\n return <></>;\n\n if (props.isClickViewCurated) {\n return (\n <div className='clamp-1 d-flex align-items-center'>\n <div className={`${styles.avatarContainer} me-1 border rounded-circle position-relative`}>\n <SvgContainer2 className={`me-1 ${styles.cvIcon}`}>\n <ClickViewPlayLogo />\n </SvgContainer2>\n </div>\n ClickView\n </div>\n );\n }\n\n const name = UserHelper.getCommunityName(props.owner);\n\n if (!name)\n return <></>;\n\n return (\n <div className='d-flex align-items-center'>\n <div className={`${styles.avatarContainer} me-1`}>\n <Avatar\n imageCdnUrl={props.imageCdnUrl}\n initials={UserHelper.getInitials(props.owner.name, props.owner.surname)}\n imageUrl={props.owner.avatar?.url}\n />\n </div>\n <div className='clamp-1'>\n {name}\n </div>\n </div>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { VideoThumbnail } from 'libs/shared/components/thumbnails/video/VideoThumbnail';\nimport { VideoOwnerText } from 'libs/shared/components/video-owner-text/VideoOwnerText';\nimport { FixedWidgetItemProps } from 'libs/shared/components/widgets/items/FixedWidgetItemProps';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { ThumbnailTextPosition } from 'libs/shared/enums/ThumbnailTextPosition';\nimport { Clip, InteractiveMetadata, Video } from 'libs/shared/interfaces';\n\nimport styles from './interactive-widget-item.scss';\n\nconst namespace = 'shared.interactiveWidgetItem';\n\nexport interface InteractiveWidgetItemProps extends FixedWidgetItemProps<InteractiveMetadata> {\n video: Video | Clip;\n questionsAppLink: Core.AppLink;\n imageCdnUrl: string;\n}\n\nexport const InteractiveWidgetItem = React.memo(function(props: InteractiveWidgetItemProps): JSX.Element {\n const questionsAppLink: Core.AppLink = {\n ...props.questionsAppLink,\n args: [props.data.id]\n };\n\n return (\n <div className={`flex-shrink-0 px-1 ${styles.item}`}>\n <div className='row m-0 border rounded p-2 h-100'>\n <div className='col-6 p-0'>\n <VideoThumbnail\n video={props.data}\n appLink={props.getAppLink(props.data)}\n type='cosmetic'\n imageOptions={{ size: ImageSize.Small }}\n textPosition={ThumbnailTextPosition.Independent}\n preload\n analyticsOptions={{ location: LocationContext.SlidingListItem }}\n />\n </div>\n\n <div className='col-6 p-0'>\n <div className='ps-2'>\n <AppLink appLink={props.getAppLink(props.data)}>\n <h3 className='h6 mb-1'><span className='clamp-2'>{props.data.name}</span></h3>\n </AppLink>\n\n <VideoOwnerText\n owner={props.data.owner}\n isClickViewCurated={props.data._isClickViewCurated?.value}\n imageCdnUrl={props.imageCdnUrl}\n />\n\n <AppLink className='info-link' appLink={questionsAppLink}>\n <Text namespace={namespace} phrase='previewQuestions' />\n </AppLink>\n </div>\n </div>\n </div>\n </div>\n );\n});\n","// extracted by mini-css-extract-plugin\nexport default {\"item\":\"rXatl\"};","import { BaseError } from 'libs/common/backbone/core/BaseError';\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { Core } from 'libs/common/core';\n\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { PrivateResourceError } from 'libs/shared/errors/general/private-resource/PrivateResourceError';\nimport { RegionLockedResourceError } from 'libs/shared/errors/general/region-locked-resource/RegionLockedResourceError';\nimport { UnspecifiedError } from 'libs/shared/errors/general/unspecified-error/UnspecifiedError';\nimport { VideoTypes } from 'libs/shared/interfaces';\n\nexport interface HttpErrorMap {\n notFound?: new () => BaseError;\n forbidden?: {\n rating?: new (description: string) => BaseError;\n yearLevel?: new (description: string) => BaseError;\n region?: new () => BaseError;\n privacy?: new (video?: VideoTypes) => BaseError;\n };\n badRequest?: new () => BaseError;\n}\n\nexport type IgnoreHttpErrorMap = {\n [key in keyof HttpErrorMap]: boolean;\n};\n\nconst defaultErrors: HttpErrorMap = {\n notFound: NotFoundError,\n forbidden: {\n rating: PrivateResourceError,\n yearLevel: PrivateResourceError,\n region: RegionLockedResourceError,\n privacy: PrivateResourceError\n },\n badRequest: UnspecifiedError\n};\n\nexport function handleHttpError(\n info: HttpStatus | Xhr,\n customErrorMap: HttpErrorMap = {},\n /**\n * Prevent certain errors in the errorMap from being thrown\n * so that you may implement your own handler\n */\n ignoreMap: IgnoreHttpErrorMap = {}\n): void {\n if (!info)\n return;\n\n let statusCode: HttpStatus;\n\n if (typeof(info) === 'number') {\n statusCode = info;\n } else {\n statusCode = info.status;\n }\n\n const errorMap = {\n ...defaultErrors,\n ...customErrorMap\n };\n\n if (!statusCode)\n return;\n\n if (!Core.ErrorHelper.isStatusCodeError(statusCode))\n return;\n\n if (statusCode === HttpStatus.NotFound) {\n if (!ignoreMap.notFound)\n Core.ErrorHelper.throw(new errorMap.notFound());\n return;\n }\n\n if (statusCode === HttpStatus.Forbidden) {\n /**\n * TODO: Work out how to go about handling all forbidden errors, such as region locking, year levels,\n * ratings, and privacy.\n */\n if (!ignoreMap.forbidden)\n Core.ErrorHelper.throw(new errorMap.forbidden.privacy());\n return;\n }\n\n if (!ignoreMap.badRequest)\n Core.ErrorHelper.throw(new errorMap.badRequest());\n}\n\nexport function handleXhrError(xhr: Xhr, customErrorMap?: HttpErrorMap): void {\n handleHttpError(xhr.status, customErrorMap);\n}","import { useEffect } from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { handleHttpError, HttpErrorMap, IgnoreHttpErrorMap } from 'libs/shared/errors/handlers/HttpErrorHandlers';\n\nfunction generateCacheKey(flightObjs: Array<Flight.Response<any>>): string {\n return flightObjs.map(obj => obj.statusCode).join(':');\n}\n\n// TODO: Change this to just `useHandleHttpError` and only accept a status code.\nexport function useHandleObjectError(\n _flightObjs: Flight.Response<any> | Array<Flight.Response<any>>,\n customErrors?: HttpErrorMap,\n ignoreErrors?: IgnoreHttpErrorMap\n): void {\n const flightObjs = Array.isArray(_flightObjs) ? _flightObjs : [_flightObjs];\n\n useEffect(() => {\n flightObjs.forEach(obj => {\n handleHttpError(obj.statusCode, customErrors, ignoreErrors);\n });\n }, [ generateCacheKey(flightObjs), customErrors, ignoreErrors ]);\n}","export enum PlayPageAnchor {\n Resources = 'resources',\n Interactives = 'interactives',\n Video = 'video',\n Clips = 'clips',\n CurriculumLinks = 'curriculum-links',\n VideoDetails = 'video-details',\n RelatedVideos = 'related-videos',\n ClippedFrom='clipped-from'\n}","import React from 'react';\nimport { createHtmlPortalNode, OutPortal } from 'react-reverse-portal';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { CheckMarkStatus } from 'libs/shared/components/check-mark-button/CheckMarkButton';\nimport { RestrictionPadlock } from 'libs/shared/components/video-list/components/restriction-padlock/RestrictionPadlock';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { Config, CurrentUser, InteractiveMetadata, PlayerViewKey, PresentationAudience, UnionShareObject, YearGroup } from 'libs/shared/interfaces';\nimport { PlayViewQueryParams } from 'libs/shared/interfaces/query-params/PlayViewQueryParams';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { ArchivedBanner } from 'shared/components/play-page/ArchivedBanner';\nimport { RelatedVideos } from 'shared/components/related-videos/RelatedVideos';\nimport { RelatedVideosHash } from 'shared/hooks/useGetRelatedVideos';\nimport { useLiteFavourites } from 'shared/hooks/useLiteFavourites';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\nimport { LitePlayerView } from 'shared/views/lite-player/LitePlayerView';\n\ninterface PlayInteractiveProps {\n interactive: InteractiveMetadata;\n yearGroups: YearGroup[];\n currentUser: CurrentUser;\n config: Config;\n audiences: PresentationAudience[];\n queryParams: PlayViewQueryParams;\n viewKey: PlayerViewKey;\n startTime?: number;\n endTime?: number;\n\n // Share view only\n shareLink?: UnionShareObject;\n sharerInstanceRegion?: string;\n checkMarkStatus?: CheckMarkStatus;\n relatedVideos: RelatedVideosHash;\n isPlugin: boolean;\n}\n\nexport function PlayInteractive(props: PlayInteractiveProps): JSX.Element {\n const locationContext = props.shareLink ?\n LocationContext.PlaySharedInteractive :\n LocationContext.PlayInteractive;\n\n const [ showHeading, setShowHeading ] = React.useState(true);\n\n const isArchived = VideoHelper.isVideoTypeArchived(props.interactive);\n\n const summaryPortalNode = React.useMemo(() => createHtmlPortalNode(), []);\n\n const { setFavourite, canFavourite } = useLiteFavourites(locationContext);\n const { hasPermissions } = usePermissions();\n\n function onShowSummary(showing: boolean): void {\n setShowHeading(!showing);\n }\n\n return (\n <div className='px-3'>\n {isArchived && <ArchivedBanner typeId={props.interactive.typeId} hasStudentExperience />}\n\n <div className='mb-3'>\n <LitePlayerView\n config={props.config}\n video={props.interactive}\n currentUser={props.currentUser}\n shareLink={props.shareLink}\n viewKey={props.viewKey}\n startTime={props.startTime}\n onShowSummary={onShowSummary}\n summaryPortalNode={summaryPortalNode}\n />\n </div>\n {/* This wrapping div is here because react seems to not want to play nice\n with adding or removing a node just ahead of an OutPortal */}\n <div>\n {showHeading &&\n <h1 className='h3 d-flex'>\n {props.interactive.name}\n <RestrictionPadlock\n tooltipPlacement='right'\n className='ps-1'\n video={props.interactive}\n yearGroups={props.yearGroups}\n />\n </h1>\n }\n </div>\n <OutPortal node={summaryPortalNode}></OutPortal>\n\n {!hasPermissions(PermissionName.StudentExperience) && (\n <RelatedVideos\n currentVideo={props.interactive}\n yearGroups={props.yearGroups}\n currentUser={props.currentUser}\n setFavourite={setFavourite}\n canFavourite={canFavourite}\n relatedVideos={props.relatedVideos}\n audiences={props.audiences}\n getVideoAppLink={(v, opts) => VideoAppLinkHelper.getAppLink(v, {\n ...opts,\n context: props.queryParams.context,\n contextId: props.queryParams.contextId,\n playNext: props.queryParams.playNext,\n shareId: props.shareLink?.id,\n moviesAndTv: props.queryParams.mtv\n })}\n moviesAndTv={props.queryParams.mtv}\n isPlugin={props.isPlugin}\n />\n )}\n </div>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ToggleSwitch } from 'libs/shared/components/toggle-switch/ToggleSwitch';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nconst namespace = 'interactives.previewInteractive';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface InteractiveAlertBannerProps {\n isPreviewPreventScrubbingEnabled: boolean;\n isPreviewingPreventScrubbing: boolean;\n toggleStudentMode: () => void;\n isArchived: boolean;\n}\n\nexport function InteractiveAlertBanner(props: InteractiveAlertBannerProps): JSX.Element {\n return (\n <div className='alert text-dark bg-light-blue px-2 rounded d-flex flex-column flex-lg-row justify-content-between mb-3 align-items-center' role='alert'>\n {!props.isArchived ? <Text phrase='alert' /> : (\n <div className='d-flex align-items-center'>\n <SvgContainer\n svgName={cvSvgLibrary.Archive}\n size={SvgContainerSize.Standard}\n className='me-2 svg-container'\n />\n \n <div className='w-100'>\n <p className='fw-semibold mb-0'>{getPhrase('archivedInfoTitle')}</p>\n <p className='mb-1'>{getPhrase('archivedInfo')}</p>\n </div>\n </div>\n )}\n {props.isPreviewPreventScrubbingEnabled && (\n <Tooltip\n title={getPhrase('previewPreventScrubbingExplain')}\n trigger='hover'\n spanHack\n >\n <div className='d-flex mt-1 mt-lg-0'>\n <div className='me-2'><Text phrase='previewPreventScrubbing'/></div>\n <ToggleSwitch on={props.isPreviewingPreventScrubbing} onClick={props.toggleStudentMode} />\n </div>\n </Tooltip>\n )}\n </div>\n );\n}","import * as React from 'react';\nimport { createHtmlPortalNode, OutPortal } from 'react-reverse-portal';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { Actions as ActionsComponent } from 'libs/shared/components/actions/Actions';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { InteractiveWidgetItemV2, InteractiveWidgetItemV2Props } from 'libs/shared/components/play-page-v2/interactives-widget/InteractiveWidgetItemV2';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\nimport { RestrictionPadlock } from 'libs/shared/components/video-list/components/restriction-padlock/RestrictionPadlock';\nimport { FixedWidget } from 'libs/shared/components/widgets/fixed-widget';\nimport { InteractiveWidgetItem, InteractiveWidgetItemProps } from 'libs/shared/components/widgets/items/interactive-widget-item/InteractiveWidgetItem';\nimport { GlobalPlayerConsumer } from 'libs/shared/context/player-context/components/GlobalPlayerConsumer';\nimport { usePlayerContext } from 'libs/shared/context/player-context/PlayerContext';\nimport { CurationStatus } from 'libs/shared/enums/CurationStatus';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { WidgetContents } from 'libs/shared/enums/WidgetContents';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { Clip, Config, CurrentUser, Interactive, InteractiveMetadata, PresentationAudience, Video, YearGroup } from 'libs/shared/interfaces';\nimport { PlayViewQueryParams } from 'libs/shared/interfaces/query-params/PlayViewQueryParams';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { RestrictionBanner } from 'shared/components/play-page/RestrictionBanner';\nimport { RelatedVideos } from 'shared/components/related-videos/RelatedVideos';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { useVideoActions, VideoActionsLocation } from 'shared/hooks/use-video-actions/useVideoActions';\nimport { RelatedVideosHash } from 'shared/hooks/useGetRelatedVideos';\nimport { useLiteFavourites } from 'shared/hooks/useLiteFavourites';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nimport { InteractiveAlertBanner } from 'apps/interactives/components/preview-interactive/InteractiveAlertBanner';\nimport { usePreviewPreventInteractive } from 'apps/interactives/hooks/interactiveHooks';\n\nconst namespace = 'interactives.previewInteractive';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction getSourceVideo(interactive: InteractiveMetadata): Clip | Video {\n return interactive._parentClip || interactive._parentVideo;\n}\n\ninterface PreviewInteractiveProps {\n interactive: InteractiveMetadata;\n yearGroups: YearGroup[];\n config: Config;\n currentUser: CurrentUser;\n queryParams: PlayViewQueryParams;\n audiences: PresentationAudience[];\n isPreviewPreventScrubbingEnabled: boolean;\n relatedVideos: RelatedVideosHash;\n canManageVideoAccess: boolean;\n isPlugin: boolean;\n\n // Share view only\n shareId?: string;\n}\n\nexport function PreviewInteractive(props: PreviewInteractiveProps): JSX.Element {\n const locationContext = props.shareId ? LocationContext.PreviewSharedInteractive : LocationContext.PreviewInteractive;\n\n const playerContext = usePlayerContext();\n\n const [ isPreviewingPreventScrubbing, setIsPreviewingPreventScrubbing ] = React.useState(false);\n\n const { canConsume } = VideoHelper.getCanBeConsumed(props.interactive);\n\n const questionListPortalNode = React.useMemo(() => createHtmlPortalNode(), []);\n \n const videoActions = useVideoActions({\n location: VideoActionsLocation.PlayPage,\n shareId: props.shareId\n });\n\n const { setFavourite, canFavourite } = useLiteFavourites(locationContext);\n const { hasPlayPageV2 } = useSettings(null);\n\n usePreviewPreventInteractive(isPreviewingPreventScrubbing, togglePreviewPreventScrubbing);\n\n function togglePreviewPreventScrubbing() {\n playerContext.playerRef?.current?.togglePreviewPreventScrubbing?.();\n }\n\n function toggleStudentMode() {\n setIsPreviewingPreventScrubbing(!isPreviewingPreventScrubbing);\n }\n\n const sourceVideo = getSourceVideo(props.interactive);\n\n let otherInteractives: InteractiveMetadata[];\n let backToName: string;\n let backAppLink: Core.AppLink;\n\n if (VideoHelper.isClip(sourceVideo)) {\n otherInteractives = sourceVideo.interactives?.data?.filter(i => {\n return i.id.toString() !== props.interactive.id.toString();\n });\n backToName = sourceVideo.name;\n backAppLink = {\n application: AppChannels.CLIPS,\n action: Actions.Clips.PLAY_CLIP,\n args: [ sourceVideo.id, TextHelper.slugify(sourceVideo.name) ]\n };\n } else {\n otherInteractives = sourceVideo.interactives?.data?.filter(i => {\n return i.id.toString() !== props.interactive.id.toString();\n });\n backToName = sourceVideo.name;\n backAppLink = {\n application: AppChannels.VIDEOS,\n action: Actions.Videos.PLAY_VIDEO,\n args: [ sourceVideo.id, TextHelper.slugify(sourceVideo.name) ]\n };\n }\n\n const isDraft = props.interactive.status === CurationStatus.Draft;\n\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <div className='px-4'>\n\n <RestrictionBanner\n restrictions={props.interactive._restrictions}\n yearGroups={props.yearGroups}\n objectId={props.interactive.id}\n objectTypeId={MasterType.Interactive}\n canManageVideoAccess={props.canManageVideoAccess}\n />\n\n <InteractiveAlertBanner\n isPreviewPreventScrubbingEnabled={props.isPreviewPreventScrubbingEnabled}\n isPreviewingPreventScrubbing={isPreviewingPreventScrubbing}\n toggleStudentMode={toggleStudentMode}\n isArchived={VideoHelper.isVideoTypeArchived(props.interactive)}\n />\n\n <div className='mb-3'>\n {canConsume &&\n <GlobalPlayerConsumer\n key={props.interactive.id}\n objectId={props.interactive.id}\n objectTypeId={props.interactive.typeId}\n shareId={props.shareId}\n startTime={props.queryParams.t ?? props.queryParams.startTime}\n mode='default'\n location='play-page'\n />\n }\n </div>\n <div className='d-flex justify-content-between align-items-center'>\n <div className='inline-block w-100'>\n <div className='ms-2 float-end'>\n <ActionsComponent\n actions={videoActions.getVideoActions(props.interactive)}\n actionsDropdownClassName='btn btn-outline-dark'\n fetchMore={() => videoActions.fetchMoreActions(props.interactive)}\n />\n </div>\n\n <h1 className='h3 mb-2'>\n {isDraft && (\n <div className={`badge draft-badge me-2 align-bottom flex-shrink-0 h-auto lh-base`}>\n <Text phrase='draft' />\n </div>\n )}\n {props.interactive.name}\n <RestrictionPadlock\n tooltipPlacement='right'\n className='ps-1'\n video={props.interactive}\n yearGroups={props.yearGroups}\n />\n </h1>\n {VideoHelper.canViewOriginalVideo(props.interactive) &&\n <div className='mb-1 me-3 clamp-1'>\n <Text phrase='viewOriginal' /> <AppLink appLink={backAppLink} className='text-info'>{backToName}</AppLink>\n </div>\n }\n </div>\n </div>\n\n {props.interactive.description &&\n <p>{props.interactive.description}</p>\n }\n\n <div className='mb-3'>\n <OutPortal node={questionListPortalNode}></OutPortal>\n </div>\n\n {!!otherInteractives?.length && (\n <div className='pb-3'>\n {!hasPlayPageV2 ? (\n <FixedWidget<InteractiveWidgetItemProps>\n name={getPhrase('otherInteractives', { count: otherInteractives.length })}\n contents={WidgetContents.Interactives}\n collection={otherInteractives}\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 childComponent={InteractiveWidgetItem}\n extraChildComponentProps={{\n video: sourceVideo,\n questionsAppLink: {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.PREVIEW_QUESTIONS\n },\n imageCdnUrl: props.config.imageCdnUrl\n }}\n analyticsData={{ widgetId: 'interactives' }}\n />\n ) : (\n <FixedWidget<InteractiveWidgetItemV2Props>\n name={getPhrase('otherInteractives', { count: otherInteractives.length })}\n contents={WidgetContents.Interactives}\n collection={otherInteractives}\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 childComponent={InteractiveWidgetItemV2}\n extraChildComponentProps={{\n yearGroups: props.yearGroups,\n questionsAppLink: {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.PREVIEW_QUESTIONS\n },\n imageCdnUrl: props.config.imageCdnUrl,\n isPlugin: props.isPlugin\n }}\n analyticsData={{ widgetId: 'interactives' }}\n />\n )}\n </div>\n )}\n\n <RelatedVideos\n currentVideo={props.interactive}\n yearGroups={props.yearGroups}\n setFavourite={setFavourite}\n canFavourite={canFavourite}\n currentUser={props.currentUser}\n audiences={props.audiences}\n relatedVideos={props.relatedVideos}\n getVideoAppLink={(v, opts) => VideoAppLinkHelper.getAppLink(v, {\n ...opts,\n context: props.queryParams.context,\n contextId: props.queryParams.contextId,\n playNext: props.queryParams.playNext,\n shareId: props.shareId,\n moviesAndTv: props.queryParams.mtv\n })}\n moviesAndTv={props.queryParams.mtv}\n isPlugin={props.isPlugin}\n />\n </div>\n </LanguageNamespaceContext.Provider>\n );\n}","import React from 'react';\n\nexport function usePreviewPreventInteractive(\n previewPreventInteractive: boolean,\n togglePreviewPreventInteractive: () => void\n): void {\n React.useEffect(() => {\n togglePreviewPreventInteractive();\n }, [previewPreventInteractive]);\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EntityType } from 'libs/analytics/interfaces';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nconst namespace = 'shared.playPage';\n\ninterface ArchivedBannerProps {\n typeId: MasterType;\n hasStudentExperience: boolean;\n}\n\nfunction mapTypeId(typeId: MasterType): string {\n switch (typeId) {\n case MasterType.Video:\n return 'video';\n case MasterType.Clip:\n return 'clip';\n case MasterType.Interactive:\n return 'interactive';\n default:\n return '';\n }\n}\n\nexport function ArchivedBanner(props: ArchivedBannerProps): JSX.Element {\n const getPhrase = LanguageService.encloseNamespace(namespace);\n const type = mapTypeId(props.typeId);\n\n return (\n <div className='alert bg-light-blue p-3 rounded-3 d-flex justify-content-between align-items-center'>\n <SvgContainer\n svgName={cvSvgLibrary.Archive}\n size={SvgContainerSize.Standard}\n className='me-2 svg-container'\n />\n \n <div className='w-100'>\n <p className='fw-semibold mb-0'>{getPhrase('archivedInfoTitle', { type })}</p>\n {(!props.hasStudentExperience || type === EntityType.Video) && (\n <p className='mb-1'>{getPhrase('archivedInfo', { type: `${type}s` })}</p>\n )}\n </div>\n </div>\n );\n}","import React from 'react';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { RestrictionType } from 'libs/shared/enums/RestrictionType';\nimport { Restrictions, YearGroup } from 'libs/shared/interfaces';\nimport { RestrictionHelper } from 'libs/shared/utils/RestrictionHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nconst namespace = 'shared.playPage';\n\ninterface RestrictionBannerProps {\n restrictions: Restrictions;\n yearGroups: YearGroup[];\n objectId: string;\n objectTypeId: MasterType;\n canManageVideoAccess: boolean;\n}\n\nexport function RestrictionBanner(props: RestrictionBannerProps): JSX.Element {\n if (!props.restrictions?.value?.length || !props.yearGroups || !props.canManageVideoAccess)\n return <></>;\n\n const restriction = RestrictionHelper.getWeightedRestriction(props.restrictions.value);\n\n if (restriction.type !== RestrictionType.Custom)\n return <></>;\n\n const baseClassName = RestrictionHelper.mapRestrictionToClass(props.restrictions);\n const className = `${baseClassName} fw-semibold p-2 rounded mb-3 d-flex justify-content-between align-items-center`;\n\n return (\n <div className={className}>\n <div className='d-flex align-items-center'>\n <SvgContainer\n svgName={RestrictionHelper.mapRestrictionToSvg(props.restrictions)}\n size={SvgContainerSize.Large}\n />\n <span className='ps-1'>\n {RestrictionHelper.mapRestrictionToText(props.restrictions, props.yearGroups)}\n </span>\n </div>\n \n <AppLink\n appLink={{\n application: AppChannels.DEFAULT,\n action: Actions.Default.APPROVE_VIDEO,\n params: {\n objectId: props.objectId,\n objectTypeId: props.objectTypeId\n }\n }}\n className='btn btn-outline-dark'\n >\n <Text namespace={namespace} phrase='approve' />\n </AppLink>\n </div>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { InfiniteScrollFooter } from 'libs/shared/components/infinite-scroll-footer/InfiniteScrollFooter';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { PartialVideoList } from 'libs/shared/components/video-list/partial-loading/PartialVideoList';\nimport { VideoList } from 'libs/shared/components/video-list/VideoList';\nimport { VideoActionsContext } from 'libs/shared/context/VideoActionsContext';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { CanFavouriteFunc, CurrentUser, FavouriteFunc, PresentationAudience, VideoTypes, YearGroup } from 'libs/shared/interfaces';\nimport { PlayPageAnchor } from 'libs/shared/interfaces/PlayPageAnchor';\nimport { GetVideoAppLinkOptions } from 'libs/shared/interfaces/VideoAppLinkOptions';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { useVideoActions, VideoActionsLocation } from 'shared/hooks/use-video-actions/useVideoActions';\nimport { RelatedVideosHash } from 'shared/hooks/useGetRelatedVideos';\nimport { InteractiveHelpers } from 'shared/utils/InteractiveHelper';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nimport { SeriesAppLinkHelper } from 'apps/series/SeriesAppLinkHelper';\n\nconst namespace = 'shared.relatedVideos';\n\ninterface RelatedVideosProps {\n currentVideo: VideoTypes;\n yearGroups: YearGroup[];\n relatedVideos: RelatedVideosHash;\n setFavourite: FavouriteFunc;\n canFavourite: CanFavouriteFunc;\n currentUser: CurrentUser;\n audiences: PresentationAudience[];\n getVideoAppLink: (video: VideoTypes, opts: GetVideoAppLinkOptions) => Core.AppLink;\n moviesAndTv: boolean;\n isPlugin: boolean;\n headingRef?: React.MutableRefObject<Map<PlayPageAnchor, HTMLElement>>;\n}\n\nexport function RelatedVideos(props: RelatedVideosProps): JSX.Element {\n const videoActions = useVideoActions({ location: VideoActionsLocation.VideoItem });\n const { hasPermissions } = usePermissions();\n\n if (!props.currentUser?.isAuthenticated) // Don't render if user is unauthenticated\n return <></>;\n\n if (props.relatedVideos.hasError) // Don't render if request has errored\n return <></>;\n\n if (props.relatedVideos.hasCompleted && !props.relatedVideos.videos?.length) // Don't render if response is empty\n return <></>;\n\n if (!props.relatedVideos.isFetching && !props.relatedVideos.hasCompleted) // Don't render if request is never made\n return <></>;\n\n // We don't support autoplaying from interactives. This means the related videos heading won't say \"Up next\"\n const canAutoplay = !VideoHelper.isInteractive(props.currentVideo);\n\n return (\n <section\n id={PlayPageAnchor.RelatedVideos}\n ref={el => {\n (el && props.headingRef?.current\n && !!props.relatedVideos.videos?.length)\n && props.headingRef.current.set(PlayPageAnchor.RelatedVideos, el);\n }}\n >\n <VideoActionsContext.Provider value={videoActions}>\n <h2 className='h4 mb-0'>\n <Text namespace={namespace} phrase={canAutoplay ? 'upNext' : 'relatedVideos'} />\n </h2>\n {props.relatedVideos.hasCompleted ? (\n <VideoList\n videos={props.relatedVideos.videos}\n yearGroups={props.yearGroups}\n getSubTextAppLink={video => {\n return SeriesAppLinkHelper.getSeriesAppLink(video.series, props.moviesAndTv ? { mtv: true } : null);\n }}\n getVideoAppLink={props.getVideoAppLink}\n hasPermissions={hasPermissions}\n setFavourite={props.setFavourite}\n canFavourite={props.canFavourite}\n presentationAudiences={props.audiences}\n getPreviewQuestionsAppLink={interactive => InteractiveHelpers.getPreviewQuestionsAppLink(interactive)}\n isPlugin={props.isPlugin}\n getClassroomGuideAppLink={VideoAppLinkHelper.getClassroomGuideAppLink}\n getInteractiveGuidanceAppLink={VideoAppLinkHelper.getInteractiveGuidanceAppLink}\n getResourceGuidanceAppLink={VideoAppLinkHelper.getResourceGuidanceAppLink}\n />\n ) : <PartialVideoList />\n }\n {props.relatedVideos.hasMore && (\n <InfiniteScrollFooter\n isFetching={props.relatedVideos.isFetching}\n fetchNext={props.relatedVideos.fetchNext}\n />\n )}\n </VideoActionsContext.Provider>\n </section>\n );\n}","import { Flight } from 'libs/common/react/index';\n\nimport { AudienceRequests } from 'libs/shared/flight-requests/AudienceRequests';\nimport { PresentationAudience } from 'libs/shared/interfaces';\n\nimport { usePresentation } from 'shared/hooks/usePresentation';\n\nexport const usePresentationAudiences = () => {\n const { activePresentation, getFallbackPresentation } = usePresentation({ redirectOnError: true });\n\n const presentation = activePresentation || getFallbackPresentation();\n\n const audiences = Flight.useBasicFetch<PresentationAudience[]>(\n !!presentation &&\n AudienceRequests.presentationAudiences(presentation.id)\n );\n\n return audiences;\n};","import { Flight } from 'libs/common/flight';\n\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ProductId } from 'libs/shared/enums/ProductId';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useProducts } from 'libs/shared/hooks/UseProducts';\nimport { CurrentUser } from 'libs/shared/interfaces';\n\nexport function useShouldPreviewInteractive() {\n const { hasPermissions } = usePermissions();\n const { hasProduct } = useProducts();\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n return !hasPermissions(PermissionName.StudentExperience) &&\n hasProduct(ProductId.Primary) &&\n currentUser.data.isAuthenticated;\n}","import React from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { ClassificationRequests } from 'libs/shared/flight-requests/ClassificationRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { Clip, ClipCollection, CurrentUser, Video, VideoCollection } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\ntype Types = Video[] | VideoCollection | Clip[] | ClipCollection;\n\nfunction getValidObjects(objects: Types): (Video | Clip)[] {\n if (!objects)\n return [];\n\n if (Array.isArray(objects))\n return objects.filter(o => !!o && (VideoHelper.isVideo(o) || VideoHelper.isClip(o)));\n\n if ('data' in objects)\n return objects.data.filter(o => !!o && (VideoHelper.isVideo(o) || VideoHelper.isClip(o)));\n\n return [];\n}\n\ninterface VideoMixinOptions {\n /**\n * If the videos that are having new data mixed into are sitting on an explicit Flight namespace,\n * providing that namespace here is required\n */\n flightNamespace?: string;\n}\n\nexport function useVideoMixin(objects: Types, options: VideoMixinOptions = {}): void {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n const hydratedVideos = React.useRef<Set<string>>(new Set<string>());\n\n const videos = getValidObjects(objects);\n\n const videoIds = videos.map(v => v.id);\n\n const [ request, setRequest ] = React.useState<Flight.Request[]>([]);\n\n React.useEffect(() => {\n if (!videoIds?.length || !currentUser.hasCompleted)\n return;\n\n const unhydratedVideos: string[] = [];\n\n videoIds.forEach(id => {\n if (!hydratedVideos.current.has(id)) {\n unhydratedVideos.push(id);\n hydratedVideos.current.add(id);\n }\n });\n \n if (!unhydratedVideos.length)\n return;\n\n setRequest(r => {\n const newRequests = [\n ...r,\n VideoRequests.videoMixinAssocs(unhydratedVideos, options.flightNamespace)\n ];\n\n if (currentUser.data?.isAuthenticated)\n newRequests.push(ClassificationRequests.hasCurriculumLinks(unhydratedVideos, null, options.flightNamespace));\n\n return newRequests;\n });\n }, [ videoIds?.length, currentUser.hasCompleted ]);\n\n Flight.useBasicFetchAll(request);\n}"],"names":["InfiniteScrollFooter","props","ref","inView","fetchOnScroll","isFetching","fetchNext","nextCursor","className","Spinner","as","animation","role","SvgContainer","svgName","size","S","onClick","defaultProps","InteractiveWidgetItemV2","interactive","data","thumbnailSize","preloadImage","questionsAppLink","args","id","questionsNumber","_timepoints","value","length","type","textPosition","video","appLink","getAppLink","imageOptions","preload","analyticsData","analyticsOptions","setFavourite","canFavourite","hideDuration","imageCdnUrl","isPlugin","namespace","phrase","options","count","smartCount","PartialVideoList","Array","numVideos","fill","map","_","i","key","allowBulkActions","PartialVideoItem","breakpoints","useBreakpoints","isSmall","VideoListHelper","withDragHandle","withReordering","xs","Row","Col","VideoOwnerText","owner","isClickViewCurated","SvgContainer2","name","UserHelper","Avatar","initials","surname","imageUrl","avatar","url","InteractiveWidgetItem","VideoThumbnail","ThumbnailTextPosition","location","AppLink","_isClickViewCurated","Text","defaultErrors","notFound","forbidden","rating","yearLevel","region","privacy","badRequest","handleHttpError","info","customErrorMap","ignoreMap","statusCode","status","errorMap","generateCacheKey","flightObjs","obj","join","useHandleObjectError","_flightObjs","customErrors","ignoreErrors","isArray","useEffect","forEach","PlayPageAnchor","PlayInteractive","locationContext","shareLink","showHeading","setShowHeading","isArchived","summaryPortalNode","u","hasPermissions","typeId","hasStudentExperience","config","currentUser","viewKey","startTime","onShowSummary","showing","tooltipPlacement","yearGroups","node","currentVideo","relatedVideos","audiences","getVideoAppLink","v","opts","context","queryParams","contextId","playNext","shareId","moviesAndTv","mtv","getPhrase","LanguageService","InteractiveAlertBanner","isPreviewPreventScrubbingEnabled","Tooltip","title","trigger","spanHack","ToggleSwitch","on","isPreviewingPreventScrubbing","toggleStudentMode","PreviewInteractive","previewPreventInteractive","togglePreviewPreventInteractive","playerContext","setIsPreviewingPreventScrubbing","canConsume","VideoHelper","questionListPortalNode","videoActions","useVideoActions","useLiteFavourites","hasPlayPageV2","useSettings","playerRef","current","togglePreviewPreventScrubbing","otherInteractives","backToName","backAppLink","sourceVideo","_parentClip","_parentVideo","interactives","filter","toString","application","action","TextHelper","isDraft","CurationStatus","RestrictionBanner","restrictions","_restrictions","objectId","objectTypeId","MasterType","canManageVideoAccess","GlobalPlayerConsumer","t","mode","Actions","actions","getVideoActions","actionsDropdownClassName","fetchMore","fetchMoreActions","RestrictionPadlock","description","contents","WidgetContents","collection","prefetched","getChildAppLink","childComponent","extraChildComponentProps","widgetId","RelatedVideos","VideoAppLinkHelper","ArchivedBanner","mapTypeId","baseClassName","params","isAuthenticated","hasError","hasCompleted","videos","canAutoplay","el","headingRef","set","getSubTextAppLink","series","presentationAudiences","getPreviewQuestionsAppLink","getClassroomGuideAppLink","getInteractiveGuidanceAppLink","getResourceGuidanceAppLink","hasMore","usePresentationAudiences","redirectOnError","activePresentation","getFallbackPresentation","presentation","useShouldPreviewInteractive","hasProduct","useVideoMixin","objects","hydratedVideos","Set","o","getValidObjects","videoIds","request","setRequest","unhydratedVideos","has","push","add","r","newRequests","flightNamespace"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[6181],{26512:(e,t,n)=>{n.r(t),n.d(t,{MyVideosView:()=>K});var a=n(32735),i=n(70680),r=n(23481),l=n(20354),o=n(28400),c=n(65858),s=n(43500),u=n(73518),d=n(83834),p=n(65403),m=n(10874),v=n(37395),f=n(4201),h=n(83345),g=n(74696),y=n(30254),E=n(13231),k=n(51365),A=n(16714),b=n(39151),V=n(1666),w=n(31949),L=n(299),F=n(91286),C=n(22902),M=n(79612),S=n(35223),x=n(35949),N=n(73417),B=n(14070),O=n(97291),I=n(51855),D=n(27638),T=n(44110),P=n(97816),_=n(10741),R=n(22490),j=n(98860),G=n(12617),U=n(45967),H=n(65202),W=n(74796),Y=n(14305),Q=n(61970),X=n(82431),Z=n(26859),$=n(18097);const q={uploadingList:"wg7hV"};var J="default.myVideos";function K(e){var t,n,K,z,ee,te,ne,ae,ie,re;(0,M.M)({title:r.T.getPhrase(J,"pageTitle")});var le=(0,i.I0)(),oe=(0,D.u)(c.LZ.VideoThumbnail),ce=oe.setFavourite,se=oe.canFavourite,ue=(0,C.T)(),de=ue.hasPermissions,pe=ue.hasLocalPermissions,me=(0,U.q)().handleDragEnd,ve=(0,I.G)().isPlugin,fe=(0,f.of)().focusSearchBar,he=l.a.useBasicFetch(w.N.currentUser()),ge=l.a.useBasicFetch((null===(t=he.data)||void 0===t?void 0:t.isAuthenticated)&&V.h.yearGroups(he.data.customerId)),ye=l.a.useBasicFetch(b.L.config()),Ee=l.a.useBasicFetch((null===(n=he.data)||void 0===n?void 0:n.isAuthenticated)&&w.N.workspace()),ke=null===(z=null===(K=Ee.data)||void 0===K?void 0:K.categoryTree)||void 0===z?void 0:z.id,Ae=(0,j.P)(ke),be=(0,Q.y)(),Ve=(0,Q.W)(null===(ee=Ee.data)||void 0===ee?void 0:ee.id,null===(te=Ee.data)||void 0===te?void 0:te.categoryTree.id),we=(0,T.i)(),Le=(0,W.f)(),Fe=function(e,t){return Ee.data?G.E.videos(ke,e,t):null},Ce=!pe(A.E.ViewMyVideosLanding)&&he.hasCompleted,Me=l.a.useBasicFetch(Ce&&Fe(e.cursor,e.typeFilter));(0,F.v)(Me);var Se=(0,H.J)({onRemove:function(e,t){return l.a.getFetch(le)(Fe(e,t))}}),xe=Se.uploadingVideos,Ne=Se.onClickAlternate,Be=Se.onClickDelete,Oe=Se.processingIds,Ie=null===(ae=null===(ne=Me.data)||void 0===ne?void 0:ne.data)||void 0===ae?void 0:ae.filter((function(e){return!Oe[e.id]}));(0,P.V)(Ie);var De=(0,L.X)(Ie);if(pe(A.E.ViewMyVideosLanding))return a.createElement(Y.V,null);function Te(){return{action:B.e.MyVideos.MY_VIDEOS,application:O.O.MY_VIDEOS,params:{cursor:e.cursor,previous:e.previous,type:e.typeFilter}}}return a.createElement(k.M.Provider,{value:be},a.createElement("div",{className:"px-3"},a.createElement(N.T,null),a.createElement("div",{className:"d-flex justify-content-between"},a.createElement("h1",{className:"h2 mb-0"},a.createElement(h.x,{namespace:J,phrase:"header"})),a.createElement("div",null,a.createElement("div",{className:"d-sm-none"},a.createElement(Z.c,{canUpload:de(A.C.UploadVideo)})),a.createElement("div",{className:"ms-2 d-sm-inline-block d-none"},a.createElement(m.h,{svgName:S.vn.Search,appLink:{application:O.O.SEARCH,action:B.e.Search.HOME,params:{source:s.fi.MyVideos}},className:"btn btn-outline-dark me-2",onClick:fe,analyticsData:{},analyticsOptions:{entity:c.py.SearchResults,location:c.LZ.MyVideos,actionType:c.Vw.Click,descriptor:c.Bk.MyVideos}},a.createElement(h.x,{namespace:J,phrase:"searchMyVideos"})),a.createElement(m.h,{svgName:S.vn.Plus,appLink:{application:O.O.MY_VIDEOS,action:B.e.MyVideos.ADD_FOLDER,args:[null===(ie=Ee.data)||void 0===ie?void 0:ie.id]},className:"btn btn-outline-dark"},a.createElement(h.x,{namespace:J,phrase:"addFolder"}))))),a.createElement("hr",null),a.createElement(u.p,{handleDragEnd:me,dragOverlayComponent:x.U,source:Ee.data},a.createElement("div",null,!(null==Ae?void 0:Ae.hasCompleted)&&a.createElement(p.i,null),!!(null===(re=null==Ae?void 0:Ae.items)||void 0===re?void 0:re.length)&&a.createElement("div",{className:"mx-n2"},a.createElement(d.$,{folders:Ae.items,getAppLink:function(e){return{application:O.O.MY_VIDEOS,action:B.e.MyVideos.MY_VIDEOS_FOLDER,args:[e.id,o.m.slugify(e.name)]}},expandFolders:!1,getFolderActions:function(e){return Le("folder",e)},drag:!0,drop:!0})),a.createElement(y.X,{allowBulkAction:!0,allowFilter:!0,checkboxHelper:De,getVideosBulkAction:Ve,locationContext:c.LZ.MyVideos,typeFilter:e.typeFilter,getAppLink:function(){return Te()}}),!!(null==xe?void 0:xe.length)&&a.createElement("div",{className:"position-relative ".concat(q.uploadingList)},xe.map((function(e){return a.createElement($.X,{item:e,onClickAlternate:Ne,onClickDelete:Be,key:e.id,allowBulkAction:!0})}))),function(){var t,n,i;return he.data&&Me.data?Ie.length||xe.length?a.createElement(a.Fragment,null,a.createElement(E.E4,{videos:Ie,yearGroups:ge.data,getVideoAppLink:R.W.getAppLink,getSubTextAppLink:function(e){return X.j.getSeriesAppLink(e.series)},setFavourite:ce,canFavourite:se,presentationAudiences:we.data,canRemovePrivateVideos:!0,allowBulkAction:!0,getVideosBulkAction:Ve,typeFilter:e.typeFilter,checkboxHelper:De,hasPermissions:de,drag:!0,imageCdnUrl:null===(t=ye.data)||void 0===t?void 0:t.imageCdnUrl,getPreviewQuestionsAppLink:function(e){return _.j.getPreviewQuestionsAppLink(e)},isPlugin:ve,getClassroomGuideAppLink:R.W.getClassroomGuideAppLink,getInteractiveGuidanceAppLink:R.W.getInteractiveGuidanceAppLink,getResourceGuidanceAppLink:R.W.getResourceGuidanceAppLink}),!!(null===(i=null===(n=Me.data)||void 0===n?void 0:n.pagination)||void 0===i?void 0:i.cursors)&&a.createElement(v.t,{appLink:Te(),cursors:{next:Me.data.pagination.cursors.next,previous:e.cursor},buttonVariant:"outline-dark",className:"py-2 float-end",scrollTop:!0,prevHack:!0})):a.createElement(Y.K,null):a.createElement("div",{className:"mx-n2"},a.createElement(g.S,{allowBulkActions:!0}))}()))))}},73417:(e,t,n)=>{n.d(t,{T:()=>u});var a=n(32735),i=n(11607),r=n(83914),l=n(83345),o=n(87348),c=n(35223),s="shared.upgradeFeedbackBanner";function u(){var e=(0,o.Q)(),t=e.showFeedbackBanner,n=e.dismissFeedbackBanner;return t?a.createElement("div",{className:"alert bg-light-blue p-2 rounded text-info fw-semibold d-flex justify-content-between align-items-center"},a.createElement(l.x,{namespace:s,phrase:"message",options:{url:"https://www.clickvieweducation.com/en-au/blog/product/exchange-tv-new-look"}}),a.createElement(i.L,{onClick:n},a.createElement(r.x,{svgName:c.vn.Close,className:"ms-2 svg-container"}))):a.createElement(a.Fragment,null)}},97816:(e,t,n)=>{n.d(t,{V:()=>d});var a=n(32735),i=n(20354),r=n(21750),l=n(31949),o=n(1575),c=n(31908);function s(e,t){if(e){if("string"==typeof e)return u(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?u(e,t):void 0}}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function d(e){var t,n,d=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},p=i.a.useBasicFetch(l.N.currentUser()),m=a.useRef(new Set),v=function(e){return e?Array.isArray(e)?e.filter((function(e){return!!e&&(c.M.isVideo(e)||c.M.isClip(e))})):"data"in e?e.data.filter((function(e){return!!e&&(c.M.isVideo(e)||c.M.isClip(e))})):[]:[]}(e),f=v.map((function(e){return e.id})),h=(t=a.useState([]),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,i,r,l,o=[],c=!0,s=!1;try{if(r=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=r.call(n)).done)&&(o.push(a.value),o.length!==t);c=!0);}catch(e){s=!0,i=e}finally{try{if(!c&&null!=n.return&&(l=n.return(),Object(l)!==l))return}finally{if(s)throw i}}return o}}(t,n)||s(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),g=h[0],y=h[1];a.useEffect((function(){if((null==f?void 0:f.length)&&p.hasCompleted){var e=[];f.forEach((function(t){m.current.has(t)||(e.push(t),m.current.add(t))})),e.length&&y((function(t){var n,a=[].concat(function(e){return function(e){if(Array.isArray(e))return u(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||s(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.")}()}(t),[o.R.videoMixinAssocs(e,d.flightNamespace)]);return(null===(n=p.data)||void 0===n?void 0:n.isAuthenticated)&&a.push(r.x.hasCurriculumLinks(e,null,d.flightNamespace)),a}))}}),[null==f?void 0:f.length,p.hasCompleted]),i.a.useBasicFetchAll(g)}}}]);
|
|
2
|
+
//# sourceMappingURL=6181-7a4fc8e1e1-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/6181-7a4fc8e1e1-lite.chunk.js","mappings":"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","sources":["file:///app/packages/projects/lite/src/apps/my-videos/views/my-videos/my-videos.scss","file:///app/packages/projects/lite/src/apps/my-videos/views/my-videos/MyVideosView.tsx","file:///app/packages/projects/lite/src/shared/components/upgrade-feedback-banner/UpgradeFeedbackBanner.tsx","file:///app/packages/projects/lite/src/shared/hooks/useVideoMixin.ts"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"uploadingList\":\"wg7hV\"};","import * as React from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { Cursors } from 'libs/common/backbone/interfaces';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { EntityType, LocationContext, SearchSourceDescriptor, UserAction } from 'libs/analytics/interfaces';\n\nimport { SearchIndices, SourceFilterOptions } from 'libs/shared/apps/search/interfaces';\nimport { DragDropMoveContext } from 'libs/shared/components/drag-drop-move/DragDropMoveContext';\nimport { FolderList } from 'libs/shared/components/folder-list/FolderList';\nimport { PartialFolderList } from 'libs/shared/components/folder-list/partial-loading/PartialFolderList';\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { Pagination } from 'libs/shared/components/pagination/Pagination';\nimport { useFocusSearchBar } from 'libs/shared/components/search-bar/SearchUtils';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { PartialVideoList } from 'libs/shared/components/video-list/partial-loading/PartialVideoList';\nimport { VideoListActions } from 'libs/shared/components/video-list/video-list-actions/VideoListActions';\nimport { VideoList } from 'libs/shared/components/video-list/VideoList';\nimport { VideoActionsContext } from 'libs/shared/context/VideoActionsContext';\nimport { LocalPermissionName, PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { BulkCheckboxManager, useBulkCheckboxManager } from 'libs/shared/hooks/useBulkCheckboxManager';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { BasePaginatedCollection, Config, CurrentUser, Folder, Library, VideoTypes, YearGroup } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { DragDropOverlay } from 'shared/components/drag-drop-overlay/DragDropOverlay';\nimport { UpgradeFeedbackBanner } from 'shared/components/upgrade-feedback-banner/UpgradeFeedbackBanner';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\nimport { useLiteFavourites } from 'shared/hooks/useLiteFavourites';\nimport { usePresentationAudiences } from 'shared/hooks/usePresentationAudiences';\nimport { useVideoMixin } from 'shared/hooks/useVideoMixin';\nimport { InteractiveHelpers } from 'shared/utils/InteractiveHelper';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nimport { useFetchAllChildFolders } from 'apps/libraries/hooks/UseFetchAllChildFolders';\nimport { MyVideosRequests } from 'apps/my-videos/flight-requests/MyVideosRequests';\nimport { useDragDropMove } from 'apps/my-videos/hooks/useDragDropMove';\nimport { useUploadItems } from 'apps/my-videos/hooks/useUploadItems';\nimport { useGetFolderActions } from 'apps/my-videos/utils/getFolderActions';\nimport { MyVideosEmptyState, MyVideosPublicEmptyState } from 'apps/my-videos/views/my-videos/empty-state/MyVideosEmptyState';\nimport { useMyVideosViewActions, useMyVideosViewBulkActions } from 'apps/my-videos/views/my-videos/MyVideosViewUtils';\nimport { SeriesAppLinkHelper } from 'apps/series/SeriesAppLinkHelper';\nimport { UploadFileSelect } from 'apps/upload/components/upload-file-select/UploadFileSelect';\nimport { UploadingItem } from 'apps/upload/components/uploading-item/UploadingItem';\n\nimport styles from './my-videos.scss';\n\nconst namespace = 'default.myVideos';\n\ninterface MyVideosViewProps {\n cursor?: string;\n previous?: string;\n typeFilter?: SearchIndices[];\n}\n\nexport function MyVideosView(props: MyVideosViewProps): JSX.Element {\n useSetPageMetadata({ title: LanguageService.getPhrase(namespace, 'pageTitle') });\n\n const dispatch = useDispatch();\n const { setFavourite, canFavourite } = useLiteFavourites(LocationContext.VideoThumbnail);\n const { hasPermissions, hasLocalPermissions } = usePermissions();\n const { handleDragEnd } = useDragDropMove();\n const { isPlugin } = usePluginHelper();\n\n const { focusSearchBar } = useFocusSearchBar();\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data?.isAuthenticated && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n const workspace = Flight.useBasicFetch<Library>(\n currentUser.data?.isAuthenticated && UserRequests.workspace()\n );\n const folderId = workspace.data?.categoryTree?.id;\n const folders = useFetchAllChildFolders(folderId);\n \n const videoActions = useMyVideosViewActions();\n const getVideosAction = useMyVideosViewBulkActions(workspace.data?.id, workspace.data?.categoryTree.id);\n\n const audiences = usePresentationAudiences();\n const getFolderActions = useGetFolderActions();\n\n const getMyVideosRequest = (cursor?: string, typeFilter?: SearchIndices | SearchIndices[]) => {\n if (!workspace.data)\n return null;\n\n // Delete the above when master supports the new assoc types.\n return MyVideosRequests.videos(folderId, cursor, typeFilter);\n };\n\n const fetchNext = (cursor?: string, typeFilter?: SearchIndices | SearchIndices[]) => {\n return Flight.getFetch(dispatch)(getMyVideosRequest(cursor, typeFilter));\n };\n\n const shouldFetch = !hasLocalPermissions(LocalPermissionName.ViewMyVideosLanding) && currentUser.hasCompleted;\n\n const videos = Flight.useBasicFetch<BasePaginatedCollection<VideoTypes>>(\n shouldFetch && getMyVideosRequest(props.cursor, props.typeFilter)\n );\n\n useHandleObjectError(videos);\n\n const {\n uploadingVideos,\n onClickAlternate,\n onClickDelete,\n processingIds\n } = useUploadItems({ onRemove: fetchNext });\n\n const omittedVideos = videos.data?.data?.filter(v => !processingIds[v.id]);\n \n useVideoMixin(omittedVideos);\n\n const CheckboxHelper: BulkCheckboxManager = useBulkCheckboxManager(omittedVideos);\n\n if (hasLocalPermissions(LocalPermissionName.ViewMyVideosLanding))\n return <MyVideosPublicEmptyState />;\n\n function getMyVideosAppLink(): Core.AppLink {\n return {\n action: Actions.MyVideos.MY_VIDEOS,\n application: AppChannels.MY_VIDEOS,\n params: { cursor: props.cursor, previous: props.previous, type: props.typeFilter }\n };\n }\n\n function getCursors(): Cursors {\n return { next: videos.data.pagination.cursors.next, previous: props.cursor };\n }\n \n return (\n <VideoActionsContext.Provider value={videoActions}>\n <div className='px-3'>\n <UpgradeFeedbackBanner />\n <div className='d-flex justify-content-between'>\n <h1 className='h2 mb-0'><Text namespace={namespace} phrase='header' /></h1>\n <div>\n <div className='d-sm-none'>\n <UploadFileSelect canUpload={hasPermissions(PermissionName.UploadVideo)} />\n </div>\n <div className='ms-2 d-sm-inline-block d-none'>\n <IconButton\n svgName={cvSvgLibrary.Search}\n appLink={{\n application: AppChannels.SEARCH,\n action: Actions.Search.HOME,\n params: {\n source: SourceFilterOptions.MyVideos\n }\n }}\n className='btn btn-outline-dark me-2'\n onClick={focusSearchBar}\n analyticsData={{}}\n analyticsOptions={{\n entity: EntityType.SearchResults,\n location: LocationContext.MyVideos,\n actionType: UserAction.Click,\n descriptor: SearchSourceDescriptor.MyVideos\n }}\n >\n <Text namespace={namespace} phrase='searchMyVideos' />\n </IconButton>\n <IconButton\n svgName={cvSvgLibrary.Plus}\n appLink={{\n application: AppChannels.MY_VIDEOS,\n action: Actions.MyVideos.ADD_FOLDER,\n args: [workspace.data?.id]\n }}\n className='btn btn-outline-dark'\n >\n <Text namespace={namespace} phrase='addFolder' />\n </IconButton>\n </div>\n </div>\n </div>\n <hr />\n <DragDropMoveContext\n handleDragEnd={handleDragEnd}\n dragOverlayComponent={DragDropOverlay}\n source={workspace.data}>\n <div>\n {!folders?.hasCompleted && <PartialFolderList />}\n {!!folders?.items?.length &&\n <div className='mx-n2'>\n <FolderList\n folders={folders.items}\n getAppLink={(f: Folder) => ({\n application: AppChannels.MY_VIDEOS,\n action: Actions.MyVideos.MY_VIDEOS_FOLDER,\n args: [ f.id, TextHelper.slugify(f.name) ]\n })}\n expandFolders={false}\n getFolderActions={f => getFolderActions('folder', f)}\n drag\n drop\n />\n </div>\n }\n <VideoListActions\n allowBulkAction\n allowFilter\n checkboxHelper={CheckboxHelper}\n getVideosBulkAction={getVideosAction}\n locationContext={LocationContext.MyVideos}\n typeFilter={props.typeFilter}\n getAppLink={() => getMyVideosAppLink()}\n />\n {!!uploadingVideos?.length && (\n <div className={`position-relative ${styles.uploadingList}`}>\n {uploadingVideos.map(uploadingVideo => (\n <UploadingItem\n item={uploadingVideo}\n onClickAlternate={onClickAlternate}\n onClickDelete={onClickDelete}\n key={uploadingVideo.id}\n allowBulkAction\n />\n ))}\n </div>\n )}\n {(() => {\n if (!currentUser.data || !videos.data)\n return <div className='mx-n2'><PartialVideoList allowBulkActions /></div>;\n\n if (!omittedVideos.length && !uploadingVideos.length)\n return <MyVideosEmptyState />;\n\n return (\n <>\n <VideoList\n videos={omittedVideos}\n yearGroups={yearGroups.data}\n getVideoAppLink={VideoAppLinkHelper.getAppLink}\n getSubTextAppLink={video => SeriesAppLinkHelper.getSeriesAppLink(video.series)}\n setFavourite={setFavourite}\n canFavourite={canFavourite}\n presentationAudiences={audiences.data}\n canRemovePrivateVideos\n allowBulkAction\n getVideosBulkAction={getVideosAction}\n typeFilter={props.typeFilter}\n checkboxHelper={CheckboxHelper}\n hasPermissions={hasPermissions}\n drag\n imageCdnUrl={config.data?.imageCdnUrl}\n getPreviewQuestionsAppLink={interactive =>\n InteractiveHelpers.getPreviewQuestionsAppLink(interactive)}\n isPlugin={isPlugin}\n getClassroomGuideAppLink={VideoAppLinkHelper.getClassroomGuideAppLink}\n getInteractiveGuidanceAppLink={VideoAppLinkHelper.getInteractiveGuidanceAppLink}\n getResourceGuidanceAppLink={VideoAppLinkHelper.getResourceGuidanceAppLink}\n />\n {!!videos.data?.pagination?.cursors && (\n <Pagination\n appLink={getMyVideosAppLink()}\n cursors={getCursors()}\n buttonVariant='outline-dark'\n className='py-2 float-end'\n scrollTop\n prevHack\n />\n )}\n </>\n );\n })()}\n </div>\n </DragDropMoveContext>\n </div>\n </VideoActionsContext.Provider>\n );\n}\n","import React from 'react';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { useLiteUpgrade } from 'libs/shared/hooks/UseLiteUpgrade';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nconst namespace = 'shared.upgradeFeedbackBanner';\n\nexport function UpgradeFeedbackBanner(): JSX.Element {\n const { showFeedbackBanner, dismissFeedbackBanner } = useLiteUpgrade();\n\n if (!showFeedbackBanner)\n return <></>;\n\n return (\n <div className='alert bg-light-blue p-2 rounded text-info fw-semibold d-flex justify-content-between align-items-center'>\n <Text\n namespace={namespace}\n phrase='message'\n options={{ url: 'https://www.clickvieweducation.com/en-au/blog/product/exchange-tv-new-look' }}\n />\n <DivButton\n onClick={dismissFeedbackBanner}\n >\n <SvgContainer\n svgName={cvSvgLibrary.Close}\n className='ms-2 svg-container'\n />\n </DivButton>\n </div>\n );\n}","import React from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { ClassificationRequests } from 'libs/shared/flight-requests/ClassificationRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { Clip, ClipCollection, CurrentUser, Video, VideoCollection } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\ntype Types = Video[] | VideoCollection | Clip[] | ClipCollection;\n\nfunction getValidObjects(objects: Types): (Video | Clip)[] {\n if (!objects)\n return [];\n\n if (Array.isArray(objects))\n return objects.filter(o => !!o && (VideoHelper.isVideo(o) || VideoHelper.isClip(o)));\n\n if ('data' in objects)\n return objects.data.filter(o => !!o && (VideoHelper.isVideo(o) || VideoHelper.isClip(o)));\n\n return [];\n}\n\ninterface VideoMixinOptions {\n /**\n * If the videos that are having new data mixed into are sitting on an explicit Flight namespace,\n * providing that namespace here is required\n */\n flightNamespace?: string;\n}\n\nexport function useVideoMixin(objects: Types, options: VideoMixinOptions = {}): void {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n const hydratedVideos = React.useRef<Set<string>>(new Set<string>());\n\n const videos = getValidObjects(objects);\n\n const videoIds = videos.map(v => v.id);\n\n const [ request, setRequest ] = React.useState<Flight.Request[]>([]);\n\n React.useEffect(() => {\n if (!videoIds?.length || !currentUser.hasCompleted)\n return;\n\n const unhydratedVideos: string[] = [];\n\n videoIds.forEach(id => {\n if (!hydratedVideos.current.has(id)) {\n unhydratedVideos.push(id);\n hydratedVideos.current.add(id);\n }\n });\n \n if (!unhydratedVideos.length)\n return;\n\n setRequest(r => {\n const newRequests = [\n ...r,\n VideoRequests.videoMixinAssocs(unhydratedVideos, options.flightNamespace)\n ];\n\n if (currentUser.data?.isAuthenticated)\n newRequests.push(ClassificationRequests.hasCurriculumLinks(unhydratedVideos, null, options.flightNamespace));\n\n return newRequests;\n });\n }, [ videoIds?.length, currentUser.hasCompleted ]);\n\n Flight.useBasicFetchAll(request);\n}"],"names":["namespace","MyVideosView","props","useSetPageMetadata","title","LanguageService","dispatch","useLiteFavourites","u","setFavourite","canFavourite","usePermissions","hasPermissions","hasLocalPermissions","handleDragEnd","useDragDropMove","isPlugin","usePluginHelper","focusSearchBar","currentUser","UserRequests","yearGroups","data","isAuthenticated","CustomerRequests","customerId","config","ConfigRequests","workspace","folderId","categoryTree","id","folders","videoActions","getVideosAction","audiences","usePresentationAudiences","getMyVideosRequest","cursor","typeFilter","MyVideosRequests","shouldFetch","hasCompleted","videos","useUploadItems","onRemove","uploadingVideos","onClickAlternate","onClickDelete","processingIds","omittedVideos","filter","v","useVideoMixin","CheckboxHelper","useBulkCheckboxManager","getMyVideosAppLink","action","application","params","previous","type","VideoActionsContext","value","className","UpgradeFeedbackBanner","Text","phrase","UploadFileSelect","canUpload","PermissionName","IconButton","svgName","appLink","source","onClick","analyticsData","analyticsOptions","entity","location","actionType","descriptor","args","DragDropMoveContext","dragOverlayComponent","DragDropOverlay","PartialFolderList","items","length","FolderList","getAppLink","f","TextHelper","name","expandFolders","getFolderActions","drag","drop","VideoListActions","allowBulkAction","allowFilter","checkboxHelper","getVideosBulkAction","locationContext","map","uploadingVideo","UploadingItem","item","key","VideoList","getVideoAppLink","VideoAppLinkHelper","getSubTextAppLink","video","SeriesAppLinkHelper","series","presentationAudiences","canRemovePrivateVideos","imageCdnUrl","getPreviewQuestionsAppLink","interactive","InteractiveHelper","getClassroomGuideAppLink","getInteractiveGuidanceAppLink","getResourceGuidanceAppLink","pagination","cursors","Pagination","next","buttonVariant","scrollTop","prevHack","MyVideosEmptyState","PartialVideoList","allowBulkActions","showFeedbackBanner","dismissFeedbackBanner","options","url","objects","hydratedVideos","Set","Array","isArray","o","getValidObjects","videoIds","request","setRequest","unhydratedVideos","forEach","current","has","push","add","r","newRequests","flightNamespace"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[6263],{50690:(e,t,n)=>{n.d(t,{b:()=>r});var a=n(12788),r={renderInPortalIfExists:function(e,t){return t?(0,a.createPortal)(e,t):e}}},84963:(e,t,n)=>{n.d(t,{r:()=>u});var a=n(32735),r=n(23481),i=n(83914),l=n(76177),o=n(35223);const s={tag:"XRj8d",tooltip:"X6mLk"};var c="specialEventCalendar.comingSoonTag";function u(e){return a.createElement(l.u,{title:r.T.getPhrase(c,"tooltip"),spanHackClassName:"d-block ".concat(s.tooltip),spanHack:!0},a.createElement("div",{className:"d-flex text-dark align-items-center ".concat(s.tag," ").concat(e.className)},a.createElement(i.x,{svgName:o.vn.Timer}),!e.onlyIcon&&r.T.getPhrase(c,"comingSoon")))}},73679:(e,t,n)=>{n.d(t,{s:()=>l});var a=n(32735),r=n(36848);const i={dateItem:"I3SBm",label:"PRORs",body:"RfiM_",bodyDay:"ZOVny",bodyRange:"vYhXN",bodyMonth:"mYslO",month:"EPkkQ"};function l(e){var t,n,l;return a.createElement(r.F,{appLink:null===(t=e.getAppLink)||void 0===t?void 0:t.call(e),className:"text-decoration-none text-center bg-white text-dark border border-3 ".concat(null===(n=e.theme)||void 0===n?void 0:n.border," rounded-3 d-block fw-semibold ").concat(e.className),analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions},a.createElement("div",{className:"position-relative ".concat(i.dateItem)},a.createElement("div",{className:"".concat(null===(l=e.theme)||void 0===l?void 0:l.background," py-1 ").concat(i.label," d-flex align-items-center justify-content-center")},e.label?e.label:a.createElement(a.Fragment,null," ")),a.createElement("div",{className:"".concat(function(){switch(e.body.type){case"range":return i.bodyRange;case"day":return i.bodyDay;case"month":return i.bodyMonth}}()," ").concat(i.body," my-2")},e.body.text),a.createElement("div",{className:"mb-0 ".concat(i.month)},e.month)))}},44522:(e,t,n)=>{n.d(t,{p:()=>A,v:()=>k});var a=n(32735),r=n(110),i=n(50690),l=n(84963),o=n(73679),s=n(83657),c=n(23481),u=n(36848),d=n(83914),m=n(35223),p="shared.backButton";function f(e){var t=Object.assign({textShadow:!0},e),n=t.backToName,r=t.appLink,i=t.color,l=t.extraClasses,o=t.textShadow,s=n?c.T.getPhrase(p,"backTo",{backToName:n}):c.T.getPhrase(p,"back"),f="black"===i?"":"text-white",v=o?"text-shadow":"";return a.createElement(u.F,{appLink:r,className:"d-inline-flex align-items-center h5 mb-0 ".concat(l," ").concat(f," ").concat(v)},a.createElement(d.x,{svgName:m.vn.ChevronLeft,size:d.S.Medium}),a.createElement("span",{className:"ms-1"},s))}f.defaultProps={color:"black",extraClasses:""};var v=n(36518),y=n(83345),g=n(10587),h=n(94232),b=n(54610),E=n(79967),w=n(67453);const C={bannerContent:"sSCTB",actionsContainer:"Z5WI2",bannerContentWithLogo:"rgs7Q",container:"M51HJ",logoContainer:"vkeJk",logoContainerLeft:"M3U9B",logoHeading:"EtRwC",specialEventContainer:"rOxDc",headingLarge:"_8pnV",heading:"JXVBH"};var S="".concat(g.y[b.__.Banners].width,":").concat(g.y[b.__.Banners].height);function I(e){return e.length<160?"h1":C.headingLarge}var A=a.memo((function(e){var t,n,c,u,d=e.heading,m=e.banner,p=e.imageCdnUrl,g=e.actions,A=e.sortComponent,k=e.blockColourClass,O=e.specialEvent,N=a.useContext(h.n),L=(0,E.k)().xxl?1920:1200,x=a.useMemo((function(){if(!O||e.showComingSoon)return!1;var t=r.O.format(new Date,"YYYY-MM-DD");return O.endDate?O.startDate<=t&&O.endDate>=t:O.startDate===t}),[O]),P=e.imageOptions||{width:L,ratio:S,resizeType:b.Nq.Cover},T=!!m&&!!p&&w.j.createBannerUrl(m,{fallbackBaseUrl:p,fallbackCategoryName:d,type:b.__.Banners},P),j={className:"banner banner-header ".concat(e.bannerClassName),style:T?{backgroundImage:"url('".concat(T,"')")}:{}};!m&&k&&(delete j.style,j.className+=" ".concat(k));var F=e.detailsComponent;return i.b.renderInPortalIfExists(a.createElement("header",Object.assign({},j),a.createElement("div",{className:"container ".concat(C.container," position-relative inner-banner")},e.backButtonAppLink&&a.createElement("div",{className:"pt-3"},a.createElement(f,{appLink:e.backButtonAppLink,backToName:e.backButtonText,extraClasses:e.backButtonClasses,color:"white"})),a.createElement("div",{className:"".concat(e.alignLogoLeft?"position-absolute top-50 start-0 translate-middle-y w-100 ps-4":"".concat(C.bannerContent," px-2 ").concat((null===(t=e.logo)||void 0===t?void 0:t.url)?C.bannerContentWithLogo:""))},!!O&&a.createElement("div",{className:"position-relative ".concat(C.specialEventContainer)},a.createElement(o.s,{body:{type:O.endDate?"range":"day",text:O.endDate?"".concat(r.O.format(O.startDate,"DD"),"-").concat(r.O.format(O.endDate,"DD")):r.O.format(O.startDate,"DD")},month:r.O.format(O.startDate,"MMMM"),theme:e.calendarTheme})),a.createElement("div",null,x&&a.createElement("div",{className:"rounded-pill py-1 px-2 my-1 me-1 fw-semibold bg-light-blue lh-1 d-inline-block"},a.createElement(y.x,{namespace:"shared.bannerHeader",phrase:"onToday"})),e.showComingSoon&&a.createElement(l.r,{className:"pe-2 fw-semibold mb-1 rounded-pill justify-content-start text-nowrap"}),a.createElement("div",{className:"d-flex align-items-center"},e.alignLogoLeft&&a.createElement("div",{className:"".concat(C.logoContainerLeft," d-none d-md-block partial-loading-background rounded-circle overflow-hidden me-3")},(null===(n=e.logo)||void 0===n?void 0:n.url)&&a.createElement(v.w,{src:w.j.createUrl(null===(c=e.logo)||void 0===c?void 0:c.url,{size:b.h2.Small})})),a.createElement("h1",{className:"text-white text-shadow pe-3 ".concat(C.heading," ").concat(I(d)," ").concat(e.alignLogoLeft?"w-50":"")},d,F&&a.createElement(F,null)))),!!g&&a.createElement("div",{className:C.actionsContainer},a.createElement(s.e,{actions:g,sortComponent:A,actionsDropdownClassName:e.actionsDropdownClassName}))),!e.alignLogoLeft&&!!(null===(u=e.logo)||void 0===u?void 0:u.url)&&a.createElement("div",{className:C.logoContainer},a.createElement("img",{src:w.j.createUrl(e.logo.url,{size:b.h2.Small}),className:"rounded-circle"})))),null==N?void 0:N.container)}),(function(e,t){var n,a;return e.actions===t.actions&&e.heading===t.heading&&(null===(n=e.logo)||void 0===n?void 0:n.url)===(null===(a=t.logo)||void 0===a?void 0:a.url)}));function k(){var e=a.useContext(h.n);return i.b.renderInPortalIfExists(a.createElement("div",{className:"partial-banner partial-loading-background ".concat(C.banner)}),null==e?void 0:e.container)}},49935:(e,t,n)=>{n.d(t,{Oo:()=>d,b2:()=>m});var a=n(32735),r=n(36848),i=n(86764),l=n(3747),o=n(5859),s=n(35223),c=n(83914),u=function(e){var t=e.breadcrumb,n=t.name,i=t.appLink,l=t.active,o=e.withBackIcon;return a.createElement("li",{className:"breadcrumb-item".concat(l?" active":"")},l?a.createElement("strong",null,n):a.createElement(r.F,{appLink:i},o&&a.createElement(c.x,{svgName:s.vn.ChevronLeft,size:c.S.Small}),a.createElement("span",{className:o?"ms-2":""},n)))},d=function(e){var t=e.breadcrumbs,n=(0,l.a)(i.r.XS),r=null==t?void 0:t.length;return!r||n&&r<2?a.createElement(a.Fragment,null):n?a.createElement("nav",{"aria-label":"breadcrumb"},a.createElement("ol",{className:"breadcrumb m-0 p-0"},a.createElement(u,{breadcrumb:t[r-2],withBackIcon:!0}))):a.createElement("nav",{"aria-label":"breadcrumb"},a.createElement("ol",{className:"breadcrumb m-0 p-0"},t.map((function(e,t){return a.createElement(u,{key:t,breadcrumb:e})}))))},m=a.memo((function(e){var t=e.numItems,n=void 0===t?3:t;return(0,l.a)(i.r.XS)?a.createElement("div",{className:"partial-loading-background",style:{height:"1.3125rem",width:"6rem"}}):a.createElement("nav",{"aria-label":"breadcrumb"},a.createElement("ol",{className:"breadcrumb m-0 p-0"},o.u.getPartialLoadingItems({numItems:n}).map((function(e,t){var n=e.width;return a.createElement("li",{key:t,className:"breadcrumb-item"},a.createElement("span",{className:"d-inline-block partial-loading-background",style:{width:n},dangerouslySetInnerHTML:{__html:" "}}))}))))}))},71020:(e,t,n)=>{n.d(t,{_:()=>u});var a=n(32735),r=n(80247),i=n(34152),l=n(83914),o=n(35223);const s={container:"VwD1b",spinner:"eJ85e"};function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function u(e){var t,n,u=(t=(0,i.YD)(),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,l,o=[],s=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(a=i.call(n)).done)&&(o.push(a.value),o.length!==t);s=!0);}catch(e){c=!0,r=e}finally{try{if(!s&&null!=n.return&&(l=n.return(),Object(l)!==l))return}finally{if(c)throw r}}return o}}(t,n)||function(e,t){if(e){if("string"==typeof e)return c(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?c(e,t):void 0}}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),d=u[0],m=u[1];return a.useEffect((function(){var t;e.fetchOnScroll&&m&&!e.isFetching&&(null===(t=e.fetchNext)||void 0===t||t.call(e,e.nextCursor))}),[m,e.isFetching]),a.createElement("div",{className:"p-3 text-center ".concat(s.container),ref:d},e.isFetching?a.createElement(r.Z,{as:"span",animation:"border",role:"status",className:s.spinner}):a.createElement(l.x,{svgName:o.vn.ChevronDown,className:"svg-container cursor-pointer",size:l.S.Large,onClick:function(){var t;return null===(t=e.fetchNext)||void 0===t?void 0:t.call(e,e.nextCursor)}}))}u.defaultProps={fetchOnScroll:!1}},74696:(e,t,n)=>{n.d(t,{S:()=>c});var a=n(32735),r=n(68050),i=n(69111),l=n(9977),o=n(79967);const s={partialOptions:"Gufgq",partialName:"SicQQ",partialDescription:"dPGMq",partialThumbnail:"vZrnb",partialDragHandle:"iq73R"};function c(e){return a.createElement("div",{className:"mx-2"},Array(e.numVideos).fill(null).map((function(t,n){return a.createElement("div",{className:"d-flex",key:n},e.allowBulkActions&&a.createElement("div",{className:"form-check pe-3 pe-sm-2 mx-0 mx-md-2"}),a.createElement(u,Object.assign({},e)))})))}function u(e){var t=(0,o.k)(),n="sm"===l.O.getSize(t,"md"),c=e.withReordering&&!t.xs;return a.createElement(r.Z,{className:"".concat(n?"":"py-2"," flex-grow-1")},a.createElement(i.Z,Object.assign({},l.O.getThumbnailColumns(),{className:"flex-column align-items-flex-start ".concat(n?"pb-2 pe-1":"mb-1 pe-3 pe-md-2")}),a.createElement(r.Z,null,!!c&&a.createElement("div",{className:"d-flex align-items-center justify-content-center col-2"},a.createElement("div",{className:"partial-loading-background ".concat(s.partialDragHandle)})),a.createElement(i.Z,{xs:l.O.getThumbnailColSize(c)},a.createElement("div",{className:"partial-loading-background ".concat(n?"rounded":"rounded-3"," ").concat(s.partialThumbnail)})))),a.createElement(i.Z,Object.assign({},l.O.getDetailsColumns(),{className:n?"pb-2":"px-2"}),a.createElement("div",{className:"partial-loading-background mb-1 ".concat(s.partialName)}),a.createElement("div",{className:"partial-loading-background ".concat(s.partialDescription)})))}c.defaultProps={numVideos:15}},94644:(e,t,n)=>{n.d(t,{r:()=>u});var a=n(50242),r=n(81886),i=n(67058),l=n(14553),o=n(49267),s=n(49075),c={notFound:i.d,forbidden:{rating:l.q,yearLevel:l.q,region:o.a,privacy:l.q},badRequest:s._};function u(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e){var i;i="number"==typeof e?e:e.status;var l=Object.assign(Object.assign({},c),t);i&&r.Q.Ry.isStatusCodeError(i)&&(i!==a.o.NotFound?i!==a.o.Forbidden?n.badRequest||r.Q.Ry.throw(new l.badRequest):n.forbidden||r.Q.Ry.throw(new l.forbidden.privacy):n.notFound||r.Q.Ry.throw(new l.notFound))}}},91286:(e,t,n)=>{n.d(t,{v:()=>l});var a=n(32735),r=n(94644);function i(e){return e.map((function(e){return e.statusCode})).join(":")}function l(e,t,n){var l=Array.isArray(e)?e:[e];(0,a.useEffect)((function(){l.forEach((function(e){(0,r.r)(e.statusCode,t,n)}))}),[i(l),t,n])}},60115:(e,t,n)=>{n.d(t,{K:()=>c});var a=n(32735),r=n(50242),i=n(91967),l=400,o=n(45719);function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function c(e,t,n,c,u,d){var m,p,f,v,y=(m=(0,a.useState)(0),p=2,function(e){if(Array.isArray(e))return e}(m)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,l,o=[],s=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(a=i.call(n)).done)&&(o.push(a.value),o.length!==t);s=!0);}catch(e){c=!0,r=e}finally{try{if(!s&&null!=n.return&&(l=n.return(),Object(l)!==l))return}finally{if(c)throw r}}return o}}(m,p)||function(e,t){if(e){if("string"==typeof e)return s(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?s(e,t):void 0}}(m,p)||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.")}()),g=y[0],h=y[1],b=t,E=(0,o.P)((function(t){if(!e)return null;var n=e(t);return n?n.key:null}),c,u);return f={fetchNextPage:function(){if(t&&e&&E)return h((function(e){return e+1})),b(E.nextCursor)},hasMore:!!(null==E?void 0:E.nextCursor),isFetching:null==E?void 0:E.isFetching,scrollContainer:d},v=function(){if(!f.isFetching){if(f.scrollContainer){var e=f.scrollContainer;if(e.getBoundingClientRect().height+e.scrollTop<e.scrollHeight-l)return}else if(window.innerHeight+document.documentElement.scrollTop<document.documentElement.scrollHeight-l)return;f.fetchNextPage()}},(0,a.useEffect)((function(){var e=i.q.throttle(v,200),t=f.scrollContainer||window;return f.hasMore&&t.addEventListener("scroll",e),function(){return t.removeEventListener("scroll",e)}}),[f.hasMore,f.fetchNextPage,f.scrollContainer]),(0,a.useEffect)((function(){E&&E.shouldInitialFetch&&t&&(b(),h((function(e){return e+1})))}),[null==E?void 0:E.shouldInitialFetch,t]),(0,a.useEffect)((function(){var e,t;if((null==E?void 0:E.statusCode)&&i.q.isFunction(n)){var a=+(null===(t=null===(e=E.statusCode)||void 0===e?void 0:e.toString())||void 0===t?void 0:t.substr(0,1));a!==r.k.ClientError&&a!==r.k.ServerError||n(g,E.statusCode)}}),[null==E?void 0:E.statusCode]),{items:null==E?void 0:E.items,hasMore:!!(null==E?void 0:E.nextCursor),nextCursor:null==E?void 0:E.nextCursor,isFetching:null==E?void 0:E.isFetching,totalItems:null==E?void 0:E.totalItems,hasFirstPageCompleted:null==E?void 0:E.hasFirstPageCompleted}}},5859:(e,t,n)=>{function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}n.d(t,{u:()=>i});var r={numItems:5,minWidth:50,maxWidth:100},i={getPartialLoadingItems:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=Object.assign(Object.assign({},r),t);return(e=Array(n.numItems),function(e){if(Array.isArray(e))return a(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return a(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?a(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()).map((function(){return{width:"".concat(Math.max(Math.floor(Math.random()*n.maxWidth),n.minWidth),"px")}}))}}},6263:(e,t,n)=>{n.r(t),n.d(t,{PlaylistView:()=>Fe});var a=n(32735),r=n(70680),i=n(23481),l=n(81886),o=n(20354),s=n(65858),c=n(1048),u=n(4594),d={isPlaylist:function(e){return(null==e?void 0:e.typeId)===u.E.Playlist},isOwner:function(e,t){var n;return!(!t||!e||c.t.isEmpty(e._liteOwner))&&e._liteOwner.id.toString()===(null===(n=t.id)||void 0===n?void 0:n.toString())},getVideoCount:function(e){var t,n,a;if(e){var r=0;return(null===(t=e.videos)||void 0===t?void 0:t.count)&&(r+=e.videos.count),(null===(n=e.clips)||void 0===n?void 0:n.count)&&(r+=e.clips.count),(null===(a=e.interactives)||void 0===a?void 0:a.count)&&(r+=e.interactives.count),r}}},m=n(71020),p=n(51365),f=n(183),v=n(89454),y=n(21750),g=n(39151),h=n(1666),b=n(5112),E=n(31949),w=n(69883),C=n(56520),S=n(91286),I=n(60115),A=n(22902);function k(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var O=n(79612),N=n(76753),L=n(54569),x=n(31908),P=n(14070),T=n(97291),j=n(51855),F=n(7179),D=n(27638),V=n(86698),M=n(97816),B=n(10741),U=n(33192),_=n(22490),R=n(110),H=n(28400),Y=n(89725),q=n(83345),G="playlists.playlistHeaderDetails",Z=function(e){var t=e.className;return a.createElement("span",{className:t},"•")};function Q(e){var t=e._liteOwner;if(t)return t.name&&t.surname?H.m.toTitleCase(t.name+" "+t.surname.substring(0,1)):t.name?t.name.split(" ")[0]:void 0}function W(e){var t,n,r=d.isOwner(e.playlist,e.currentUser),i=null===(t=e.playlist.followers)||void 0===t?void 0:t.count,l=function(e){if(!e.contentModifiedDate)return"";var t=new Date,n=R.O.convertUTCToLocal(e.contentModifiedDate);return R.O.isBefore(n,R.O.subtract(t,1,"month"))?"":R.O.fromNow(n)}(e.playlist);return a.createElement("div",{className:e.detailsClassName},!e.hideOwnerName&&!r&&a.createElement(a.Fragment,null,(null===(n=e.playlist._isClickViewCurated)||void 0===n?void 0:n.value)?a.createElement(a.Fragment,null,a.createElement("div",{className:e.clickViewAvatarClassName},a.createElement(Y.F,null)),a.createElement("span",null,"ClickView")):a.createElement(q.x,{namespace:G,phrase:"createdBy",options:{user:Q(e.playlist)}}),a.createElement(Z,{className:e.separatorClassName})),"number"==typeof e.totalVideos&&a.createElement(q.x,{namespace:G,phrase:"videos",options:{smartCount:e.totalVideos}}),i>0&&a.createElement(a.Fragment,null,a.createElement(Z,{className:e.separatorClassName}),a.createElement(q.x,{namespace:G,phrase:"followers",options:{smartCount:i}})),!!l&&a.createElement(a.Fragment,null,a.createElement(Z,{className:e.separatorClassName}),a.createElement(q.x,{namespace:G,phrase:"lastUpdated",options:{timeAgo:l}})))}var z=n(44522),X=n(49935),$=n(7733),J=n(86764),K=n(3747),ee=n(9085);const te={partialDescription:"vDX0m"};function ne(){return a.createElement(a.Fragment,null,a.createElement(z.v,null),a.createElement("div",{className:"mb-2"},a.createElement("div",{className:"partial-loading-background my-2 border-bottom ".concat(te.partialDescription)})))}var ae=n(49985),re=n(35223),ie=i.T.encloseNamespace("playlists.playlistHeader"),le={getPlaylistActions:function(e,t){var n,a,r,i,l,o,c=t.isAuthenticated,u=t.isPlugin,m=t.isMobile,p=t.setIsFollowing,f=t.isFollowing,v=t.setShowFollowSpinner,y=t.showFollowSpinner,g=t.isUserCurator,h=t.openInCuratorLink,b={id:e.playlist.id,name:e.playlist.name,followerCount:null===(n=e.playlist.followers)||void 0===n?void 0:n.count,videoCount:null===(a=e.playlist.videos)||void 0===a?void 0:a.count,interactiveCount:null===(r=e.playlist.interactives)||void 0===r?void 0:r.count,clipCount:null===(i=e.playlist.clips)||void 0===i?void 0:i.count,isClickViewPlaylist:null===(l=e.playlist._isClickViewCurated)||void 0===l?void 0:l.value},E={location:s.LZ.Banner,entity:s.py.Playlist,workflowPhase:s.eu.Start},w=[];if(!c)return w;var S=d.isOwner(e.playlist,e.currentUser);return u||(e.playAllAppLink&&w.push({label:ie("playAll"),appLink:e.playAllAppLink,svgName:re.vn.Play,className:m?"":"btn btn-outline-dark me-2",button:!m,analyticsData:b,analyticsOptions:Object.assign(Object.assign({},E),{actionType:s.Vw.Play})}),g&&w.push({label:(0,C.eR)(),href:h,openInNewTab:!0}),w.push({label:ie("share"),appLink:{application:T.O.DEFAULT,action:P.e.Default.SHARE,args:[e.playlist.id],params:{entityType:"playlist"}},svgName:re.vn.Share2,className:m?"":"btn btn-outline-dark me-2",button:!m,analyticsData:b,analyticsOptions:Object.assign(Object.assign({},E),{actionType:s.Vw.Share,eventVersion:s.eq.V3})})),S||w.push({label:ie(f?"unfollow":"follow"),onClick:function(){p(!f),v(!0),e.follow(!f,(function(){v(!1),ae.k.logUserAction(b,Object.assign(Object.assign({},E),{actionType:s.Vw.Follow,descriptor:f?s.DL.Off:s.DL.On,workflowPhase:s.eu.Complete}))}),(function(){v(!1),p(f)}))},svgName:f?re.vn.Check:re.vn.Bell,className:m?"":"btn follow-btn btn-".concat(f?"outline-dark":"dark"," me-2"),button:!m,showSpinner:y}),S&&(w.push({label:ie("edit"),appLink:{application:T.O.PLAYLISTS,action:P.e.Playlists.EDIT_PLAYLIST,args:[e.playlist.id]},svgName:re.vn.Edit,button:!1,analyticsData:b,analyticsOptions:Object.assign(Object.assign({},E),{actionType:s.Vw.Edit})}),w.push({label:ie("delete"),appLink:{application:T.O.PLAYLISTS,action:P.e.Playlists.DELETE_PLAYLIST,args:[e.playlist.id]},svgName:re.vn.Delete,className:"text-danger",button:!1,analyticsData:b,analyticsOptions:Object.assign(Object.assign({},E),{actionType:s.Vw.Delete})})),(null===(o=e.playlist._isClickViewCurated)||void 0===o?void 0:o.value)&&w.push({label:ie("copy"),appLink:{application:T.O.PLAYLISTS,action:P.e.Playlists.COPY_PLAYLIST,args:[e.playlist.id]},button:!1,analyticsData:b,analyticsOptions:Object.assign(Object.assign({},E),{actionType:s.Vw.Copy})}),w}};const oe={clickViewAvatar:"PHe9c"};function se(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,l,o=[],s=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(a=i.call(n)).done)&&(o.push(a.value),o.length!==t);s=!0);}catch(e){c=!0,r=e}finally{try{if(!s&&null!=n.return&&(l=n.return(),Object(l)!==l))return}finally{if(c)throw r}}return o}}(e,t)||function(e,t){if(e){if("string"==typeof e)return ce(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ce(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ce(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function ue(e){var t,n=(0,j.G)().isPlugin,r=se(a.useState(e.isFollowing),2),i=r[0],l=r[1],o=se(a.useState(!1),2),s=o[0],c=o[1];a.useEffect((function(){return l(e.isFollowing)}),[e.isFollowing]);var u=(0,K.a)(J.r.XS);if(e.showPartialLoading)return a.createElement(ne,null);var d=e.playlist.description,m=le.getPlaylistActions(e,{isAuthenticated:e.currentUser.isAuthenticated,isPlugin:n,isMobile:u,setIsFollowing:l,isFollowing:i,setShowFollowSpinner:c,showFollowSpinner:s,isUserCurator:e.isUserCurator,openInCuratorLink:e.openInCuratorLink});return a.createElement(a.Fragment,null,a.createElement(z.p,{heading:e.playlist.name,banner:e.playlist.banner,imageCdnUrl:e.imageCdnUrl,actions:m.length&&m,actionsDropdownClassName:"btn btn-outline-dark",blockColourClass:(0,ee.x)(e.playlist.name,$.o),detailsComponent:function(){return a.createElement(W,{playlist:e.playlist,currentUser:e.currentUser,detailsClassName:"mb-n1 font-size-normal fw-normal mt-1",clickViewAvatarClassName:oe.clickViewAvatar,separatorClassName:"mx-1",totalVideos:e.totalVideos})}}),(!!d||!!(null===(t=e.topicPath)||void 0===t?void 0:t.length)||!!e.moviesAndTv)&&a.createElement("div",{className:"border-bottom py-3"},e.classificationId||e.moviesAndTv?!e.playlist||e.classificationId&&!e.topicPath?a.createElement(X.b2,null):a.createElement("div",{className:"pb-2"},a.createElement(X.Oo,{breadcrumbs:e.getBreadcrumbs()})):a.createElement(a.Fragment,null),!!d&&a.createElement("p",{className:"mb-0"},d)))}var de=n(56050),me=n(91967),pe=n(83914),fe=n(74696),ve=n(13231);function ye(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var ge=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n};function he(e){var t,n,r=e.onSortComplete,i=e.onSortStart,o=e.showPartialLoading,s=ge(e,["onSortComplete","onSortStart","showPartialLoading"]),c=(t=a.useState(),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,l,o=[],s=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(a=i.call(n)).done)&&(o.push(a.value),o.length!==t);s=!0);}catch(e){c=!0,r=e}finally{try{if(!s&&null!=n.return&&(l=n.return(),Object(l)!==l))return}finally{if(c)throw r}}return o}}(t,n)||function(e,t){if(e){if("string"==typeof e)return ye(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ye(e,t):void 0}}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),u=c[0],d=c[1];return o?a.createElement(fe.S,{withReordering:e.canEdit||e.showIndexes}):e.canEdit?a.createElement(ve.NB,Object.assign({},s,{currentSortingIndex:u,onSortStart:function(t){var n=e.videos.findIndex((function(e){return e.id.toString()===t.active.id.toString()}));d(n),me.q.isFunction(i)&&i(n)},onSortEnd:function(t){d(null);var n=t.active,a=t.over,i=e.videos.findIndex((function(e){return e.id.toString()===n.id.toString()})),o=e.videos.findIndex((function(e){return e.id.toString()===a.id.toString()}));me.q.isFunction(r)?r(i,o):l.Q.Ry.throw(new de.H("An onSortComplete callback function must be passed to SortableVideoListComponent"))},dragHandleIcon:re.vn.Hamburger,dragHandleIconSize:pe.S.XXL,presentationAudiences:e.presentationAudiences})):a.createElement(ve.E4,Object.assign({},s))}var be=n(23232),Ee=n(99742),we="playlists.playlistEmptyState";function Ce(){return a.createElement(q.D.Provider,{value:we},a.createElement(be.u,null,a.createElement(be.u.Image,{src:Ee.W.EmptyStates.Playlists.PLAYLIST_VIDEOS}),a.createElement(be.u.Heading,null,a.createElement(q.x,{phrase:"heading"})),a.createElement(be.u.Info,null,a.createElement(q.x,{phrase:"info"}))))}n(75896);var Se=n(87114),Ie=n(81493),Ae=n(9680),ke=n(10671);function Oe(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var Ne=i.T.encloseNamespace("playlists.playlist"),Le=function(e,t){return{application:T.O.SUBJECT,action:P.e.Subjects.CLASSIFICATION,args:[e.id,H.m.slugify(e.name)],params:{mtv:!!t||void 0}}};function xe(e,t,n){ae.k.logUserAction({id:t,playlistId:e},{location:s.LZ.VideoList,entity:s.py.Video,actionType:s.Vw.Move,workflowPhase:n})}var Pe={notFound:Ie.N,forbidden:{privacy:Ae.J}};function Te(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var je=i.T.encloseNamespace("playlists.playlist");function Fe(e){var t,n,i,c,u,R,H,Y,q,G,Z,Q,W,z,X=(0,r.I0)(),$=(0,w.Z)(),J=o.a.useBasicFetch(g.L.config()),K=o.a.useBasicFetch(E.N.currentUser()),ee=(0,C.R0)(),te=ee.isUserCurator,ne=ee.getOpenInCurationStudioLink,ae=(0,A.T)().hasPermissions,ie=(0,j.G)().isPlugin,le=o.a.useBasicFetch((null===(t=K.data)||void 0===t?void 0:t.isAuthenticated)&&h.h.yearGroups(K.data.customerId)),oe=o.a.useBasicFetch(e.classificationId&&y.x.path(e.classificationId)),se=o.a.useBasicFetch(e.classificationId&&y.x.classification(e.classificationId,null===(n=K.data)||void 0===n?void 0:n.id)),ce=o.a.useBasicFetch(se.hasCompleted&&y.x.presentationById(null===(i=se.data)||void 0===i?void 0:i.presentationId)),de=o.a.useBasicFetch((!e.classificationId||ce.hasCompleted)&&v.O.presentationAudiences(null===(c=ce.data)||void 0===c?void 0:c.id)),me=(0,V.y)(),pe=me.activePresentation,fe=me.availablePresentations,ve=(0,D.u)(s.LZ.VideoThumbnail),ye=ve.setFavourite,ge=ve.canFavourite,be=e.shareId?b.C.getSharedPlaylist(e.playlistId,e.shareId):b.C.getPlaylist(e.playlistId),Ee=e.shareId?b.C.getSharedPlaylistVideosCount(e.playlistId,e.shareId):b.C.getPlaylistVideosCount(e.playlistId),we=o.a.useBasicFetch(be),Ie=o.a.useBasicFetch(Ee),Ae=function(e,t,n){var a=(0,ke._)({location:ke.i.VideoItem,shareId:n});return d.isOwner(e,t)?Object.assign(Object.assign({},a),{getVideoActions:function(t,n){var r,i=x.M.getCanBeConsumed(t).canConsume,l={label:Ne("removeFromPlaylist"),button:!1,svgName:re.vn.Delete,appLink:{application:T.O.PLAYLISTS,action:P.e.Playlists.REMOVE_VIDEO_FROM_PLAYLIST,args:[t.id,e.id],params:{typeId:t.typeId}},className:"text-danger",analyticsOptions:{entity:s.py.Video,actionType:s.Vw.Dissociate,location:s.LZ.VideoListItem,workflowPhase:s.eu.Start,descriptor:s.iF.Playlist},analyticsData:{id:t.id,playlistId:e.id},group:"delete"};return i?[].concat(function(e){if(Array.isArray(e))return Oe(e)}(r=a.getVideoActions(t,n))||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 Oe(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Oe(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.")}(),[l]):[l]}}):a}(we.data,K.data,e.shareId);(0,S.v)(we,Pe);var Fe=function(t){return e.shareId?b.C.getSharedPlaylistVideos(e.playlistId,e.shareId,t):b.C.getPlaylistVideos(e.playlistId,t)},De=o.a.useBasicFetch((null===(u=K.data)||void 0===u?void 0:u.id)&&b.C.getIsFollowingPlaylist(e.playlistId,null===(R=K.data)||void 0===R?void 0:R.id)),Ve=function(e){o.a.getFetch(X)(Fe(e))},Me=(0,I.K)(Fe,Ve),Be=Me.items,Ue=Me.hasMore,_e=Me.isFetching;(0,M.V)(null!==(H=null==Be?void 0:Be.filter(x.M.isVideo))&&void 0!==H?H:[]);var Re,He,Ye,qe,Ge,Ze,Qe=function(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,l,o=[],s=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(a=i.call(n)).done)&&(o.push(a.value),o.length!==t);s=!0);}catch(e){c=!0,r=e}finally{try{if(!s&&null!=n.return&&(l=n.return(),Object(l)!==l))return}finally{if(c)throw r}}return o}}(e,t)||function(e,t){if(e){if("string"==typeof e)return Te(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Te(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.")}()}((Re=Be,Ge=(0,a.useState)(),Ze=2,He=function(e){if(Array.isArray(e))return e}(Ge)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,l,o=[],s=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(a=i.call(n)).done)&&(o.push(a.value),o.length!==t);s=!0);}catch(e){c=!0,r=e}finally{try{if(!s&&null!=n.return&&(l=n.return(),Object(l)!==l))return}finally{if(c)throw r}}return o}}(Ge,Ze)||function(e,t){if(e){if("string"==typeof e)return k(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?k(e,t):void 0}}(Ge,Ze)||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.")}(),Ye=He[0],qe=He[1],(0,a.useEffect)((function(){Ye&&(Re.length!==Ye.length||function(e,t){var n=!0;if(e.length!==t.length)return!1;for(var a=0;a<e.length;a++)if(e[a].id!==t[a].id){n=!1;break}return n}(Re,Ye))&&qe(null)}),[Re]),[Ye,qe]),2),We=Qe[0],ze=Qe[1];(0,F.P)({id:e.playlistId,app:"playlists",shareId:e.shareId}),(0,O.M)(N.CG.getPlaylistMetadata({content:we.data,phraseContext:{phraseHandler:je,titlePhrase:"pageTitle",descriptionPhrase:"pageDescription"},canonicalLink:U.f.getCanonicalLink({stripPresentationSlug:!0}),allowIndexing:!1}));var Xe=!!Be&&0===Be.length,$e=function(t,n){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return _.W.getAppLink(t,Object.assign(Object.assign({},a),{contextId:e.playlistId,context:f.Q.Playlist,shareId:e.shareId,moviesAndTv:e.moviesAndTv,playNext:n}))},Je=!(null===(Y=K.data)||void 0===Y?void 0:Y.isAuthenticated)||!!De.hasCompleted,Ke=null==Be?void 0:Be.find((function(e){var t;return null===(t=x.M.getCanBeConsumed(e))||void 0===t?void 0:t.canConsume})),et=d.isOwner(we.data,K.data),tt=Be&&K.data&&J.data;return a.createElement(p.M.Provider,{value:(null===(q=K.data)||void 0===q?void 0:q.isAuthenticated)&&Ae},a.createElement("div",{className:"bg-white px-3"},a.createElement(ue,{playlist:we.data,currentUser:K.data,isFollowing:null===(G=De.data)||void 0===G?void 0:G.isFollowing,follow:function(t,n,a){var r,i=t?b.C.followPlaylist:b.C.unfollowPlaylist;o.a.fetch(X,i(e.playlistId,null===(r=K.data)||void 0===r?void 0:r.id,n,(function(){a(),$.error(je(t?"followError":"unfollowError"))})))},playAllAppLink:Ke&&$e(Ke,!0),showPartialLoading:!we.data||!tt||!Je,imageCdnUrl:!!J.data&&J.data.imageCdnUrl,getBreadcrumbs:function(){return function(e){var t=e.topicPath,n=e.presentation,a=e.availablePresentations,r=e.playlist;if(e.moviesAndTv){var i=[{name:Ne("moviesAndTv"),appLink:{application:T.O.MOVIES_AND_TV,action:P.e.MoviesAndTv.HOME}}];return null==t||t.slice(1,t.length).forEach((function(e){i.push({name:e.name,appLink:Le(e,!0)})})),i.push({name:r.name,active:!0}),i}var l=[{name:Ne("discover"),appLink:{application:T.O.DASHBOARD,action:P.e.Dashboard.HOME}}];return t&&(l.push({name:Se.i.getExploreAllTopicsTitle(null==n?void 0:n.name,null==a?void 0:a.length),appLink:{application:T.O.SUBJECT,action:P.e.Subjects.CLASSIFICATION_ALL,params:{presentationId:null==n?void 0:n.id}}}),t.slice(1,t.length).forEach((function(e){l.push({name:e.name,appLink:Le(e)})}))),l.push({name:r.name,active:!0}),l}({availablePresentations:fe,moviesAndTv:e.moviesAndTv,playlist:we.data,presentation:pe,topicPath:oe.data})},topicPath:oe.data,moviesAndTv:e.moviesAndTv,classificationId:e.classificationId,isUserCurator:te,openInCuratorLink:ne(null===(Z=we.data)||void 0===Z?void 0:Z.typeId,null===(Q=we.data)||void 0===Q?void 0:Q.id),totalVideos:d.getVideoCount(Ie.data)}),a.createElement("div",{className:"mt-2"},Xe?a.createElement(Ce,null):a.createElement(he,{videos:We||Be,yearGroups:le.data,playlistId:!!we.data&&we.data.id,onSortStart:function(t){var n=Be[t];n&&xe(e.playlistId,n.id,s.eu.Start)},onSortComplete:function(t,n){if(t!==n){var a=Be[t];if(a){var r=L.l.reorder(Be,t,n),i=r.reorderedItems,l=r.reorderRequest;ze(i),xe(e.playlistId,a.id,s.eu.Complete),o.a.fetch(X,b.C.reorderVideos(e.playlistId,l,null,(function(){ze(null)})))}}},canEdit:et,showPartialLoading:!tt,getVideoAppLink:function(e,t){return $e(e,!1,t)},getSubTextAppLink:function(t){return e.getSeriesAppLink(t.series)},setFavourite:ye,canFavourite:ge,showSignIn:!(null===(W=K.data)||void 0===W?void 0:W.isAuthenticated),getSignInAppLink:function(e){var t=l.Q.C$.getHref(e),n="/"!==t?{redirectUrl:t}:{};return{application:T.O.DEFAULT,action:P.e.Default.LOG_IN,params:n}},canRemovePrivateVideos:et,presentationAudiences:e.moviesAndTv?null:de.data,showIndexes:!0,hasPermissions:ae,getPreviewQuestionsAppLink:function(e){return B.j.getPreviewQuestionsAppLink(e)},imageCdnUrl:null===(z=J.data)||void 0===z?void 0:z.imageCdnUrl,isPlugin:ie,getClassroomGuideAppLink:_.W.getClassroomGuideAppLink,getInteractiveGuidanceAppLink:_.W.getInteractiveGuidanceAppLink,getResourceGuidanceAppLink:_.W.getResourceGuidanceAppLink})),(Ue||_e)&&a.createElement(m._,{isFetching:_e,fetchNext:Ve})))}},97816:(e,t,n)=>{n.d(t,{V:()=>u});var a=n(32735),r=n(20354),i=n(21750),l=n(31949),o=n(1575);function s(e,t){if(e){if("string"==typeof e)return c(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?c(e,t):void 0}}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function u(e){var t,n,u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},d=r.a.useBasicFetch(l.N.currentUser()),m=a.useRef(new Set),p=e&&(Array.isArray(e)?e.filter(Boolean).map((function(e){return e.id})):e.data.filter(Boolean).map((function(e){return e.id}))),f=(t=a.useState([]),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,l,o=[],s=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(a=i.call(n)).done)&&(o.push(a.value),o.length!==t);s=!0);}catch(e){c=!0,r=e}finally{try{if(!s&&null!=n.return&&(l=n.return(),Object(l)!==l))return}finally{if(c)throw r}}return o}}(t,n)||s(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),v=f[0],y=f[1];a.useEffect((function(){if((null==p?void 0:p.length)&&d.hasCompleted){var e=[];p.forEach((function(t){m.current.has(t)||(e.push(t),m.current.add(t))})),e.length&&y((function(t){var n,a=[].concat(function(e){return function(e){if(Array.isArray(e))return c(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||s(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.")}()}(t),[o.R.videoMixinAssocs(e,u.flightNamespace)]);return(null===(n=d.data)||void 0===n?void 0:n.isAuthenticated)&&a.push(i.x.hasCurriculumLinks(e,null,u.flightNamespace)),a}))}}),[null==p?void 0:p.length,d.hasCompleted]),r.a.useBasicFetchAll(v)}}}]);
|
|
2
|
-
//# sourceMappingURL=6263-
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[6263],{50690:(e,t,n)=>{n.d(t,{b:()=>r});var a=n(12788),r={renderInPortalIfExists:function(e,t){return t?(0,a.createPortal)(e,t):e}}},84963:(e,t,n)=>{n.d(t,{r:()=>u});var a=n(32735),r=n(23481),i=n(83914),o=n(76177),l=n(35223);const s={tag:"XRj8d",tooltip:"X6mLk"};var c="specialEventCalendar.comingSoonTag";function u(e){return a.createElement(o.u,{title:r.T.getPhrase(c,"tooltip"),spanHackClassName:"d-block ".concat(s.tooltip),spanHack:!0},a.createElement("div",{className:"d-flex text-dark align-items-center ".concat(s.tag," ").concat(e.className)},a.createElement(i.x,{svgName:l.vn.Timer}),!e.onlyIcon&&r.T.getPhrase(c,"comingSoon")))}},73679:(e,t,n)=>{n.d(t,{s:()=>o});var a=n(32735),r=n(36848);const i={dateItem:"I3SBm",label:"PRORs",body:"RfiM_",bodyDay:"ZOVny",bodyRange:"vYhXN",bodyMonth:"mYslO",month:"EPkkQ"};function o(e){var t,n,o;return a.createElement(r.F,{appLink:null===(t=e.getAppLink)||void 0===t?void 0:t.call(e),className:"text-decoration-none text-center bg-white text-dark border border-3 ".concat(null===(n=e.theme)||void 0===n?void 0:n.border," rounded-3 d-block fw-semibold ").concat(e.className),analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions},a.createElement("div",{className:"position-relative ".concat(i.dateItem)},a.createElement("div",{className:"".concat(null===(o=e.theme)||void 0===o?void 0:o.background," py-1 ").concat(i.label," d-flex align-items-center justify-content-center")},e.label?e.label:a.createElement(a.Fragment,null," ")),a.createElement("div",{className:"".concat(function(){switch(e.body.type){case"range":return i.bodyRange;case"day":return i.bodyDay;case"month":return i.bodyMonth}}()," ").concat(i.body," my-2")},e.body.text),a.createElement("div",{className:"mb-0 ".concat(i.month)},e.month)))}},44522:(e,t,n)=>{n.d(t,{p:()=>A,v:()=>k});var a=n(32735),r=n(110),i=n(50690),o=n(84963),l=n(73679),s=n(83657),c=n(23481),u=n(36848),d=n(83914),m=n(35223),p="shared.backButton";function f(e){var t=Object.assign({textShadow:!0},e),n=t.backToName,r=t.appLink,i=t.color,o=t.extraClasses,l=t.textShadow,s=n?c.T.getPhrase(p,"backTo",{backToName:n}):c.T.getPhrase(p,"back"),f="black"===i?"":"text-white",v=l?"text-shadow":"";return a.createElement(u.F,{appLink:r,className:"d-inline-flex align-items-center h5 mb-0 ".concat(o," ").concat(f," ").concat(v)},a.createElement(d.x,{svgName:m.vn.ChevronLeft,size:d.S.Medium}),a.createElement("span",{className:"ms-1"},s))}f.defaultProps={color:"black",extraClasses:""};var v=n(36518),y=n(83345),g=n(10587),h=n(94232),b=n(54610),E=n(79967),C=n(67453);const w={bannerContent:"sSCTB",actionsContainer:"Z5WI2",bannerContentWithLogo:"rgs7Q",container:"M51HJ",logoContainer:"vkeJk",logoContainerLeft:"M3U9B",logoHeading:"EtRwC",specialEventContainer:"rOxDc",headingLarge:"_8pnV",heading:"JXVBH"};var S="".concat(g.y[b.__.Banners].width,":").concat(g.y[b.__.Banners].height);function I(e){return e.length<160?"h1":w.headingLarge}var A=a.memo((function(e){var t,n,c,u,d=e.heading,m=e.banner,p=e.imageCdnUrl,g=e.actions,A=e.sortComponent,k=e.blockColourClass,O=e.specialEvent,N=a.useContext(h.n),L=(0,E.k)().xxl?1920:1200,x=a.useMemo((function(){if(!O||e.showComingSoon)return!1;var t=r.O.format(new Date,"YYYY-MM-DD");return O.endDate?O.startDate<=t&&O.endDate>=t:O.startDate===t}),[O]),P=e.imageOptions||{width:L,ratio:S,resizeType:b.Nq.Cover},T=!!m&&!!p&&C.j.createBannerUrl(m,{fallbackBaseUrl:p,fallbackCategoryName:d,type:b.__.Banners},P),j={className:"banner banner-header ".concat(e.bannerClassName),style:T?{backgroundImage:"url('".concat(T,"')")}:{}};!m&&k&&(delete j.style,j.className+=" ".concat(k));var F=e.detailsComponent;return i.b.renderInPortalIfExists(a.createElement("header",Object.assign({},j),a.createElement("div",{className:"container ".concat(w.container," position-relative inner-banner")},e.backButtonAppLink&&a.createElement("div",{className:"pt-3"},a.createElement(f,{appLink:e.backButtonAppLink,backToName:e.backButtonText,extraClasses:e.backButtonClasses,color:"white"})),a.createElement("div",{className:"".concat(e.alignLogoLeft?"position-absolute top-50 start-0 translate-middle-y w-100 ps-4":"".concat(w.bannerContent," px-2 ").concat((null===(t=e.logo)||void 0===t?void 0:t.url)?w.bannerContentWithLogo:""))},!!O&&a.createElement("div",{className:"position-relative ".concat(w.specialEventContainer)},a.createElement(l.s,{body:{type:O.endDate?"range":"day",text:O.endDate?"".concat(r.O.format(O.startDate,"DD"),"-").concat(r.O.format(O.endDate,"DD")):r.O.format(O.startDate,"DD")},month:r.O.format(O.startDate,"MMMM"),theme:e.calendarTheme})),a.createElement("div",null,x&&a.createElement("div",{className:"rounded-pill py-1 px-2 my-1 me-1 fw-semibold bg-light-blue lh-1 d-inline-block"},a.createElement(y.x,{namespace:"shared.bannerHeader",phrase:"onToday"})),e.showComingSoon&&a.createElement(o.r,{className:"pe-2 fw-semibold mb-1 rounded-pill justify-content-start text-nowrap"}),a.createElement("div",{className:"d-flex align-items-center"},e.alignLogoLeft&&a.createElement("div",{className:"".concat(w.logoContainerLeft," d-none d-md-block partial-loading-background rounded-circle overflow-hidden me-3")},(null===(n=e.logo)||void 0===n?void 0:n.url)&&a.createElement(v.w,{src:C.j.createUrl(null===(c=e.logo)||void 0===c?void 0:c.url,{size:b.h2.Small})})),a.createElement("h1",{className:"text-white text-shadow pe-3 ".concat(w.heading," ").concat(I(d)," ").concat(e.alignLogoLeft?"w-50":"")},d,F&&a.createElement(F,null)))),!!g&&a.createElement("div",{className:w.actionsContainer},a.createElement(s.e,{actions:g,sortComponent:A,actionsDropdownClassName:e.actionsDropdownClassName}))),!e.alignLogoLeft&&!!(null===(u=e.logo)||void 0===u?void 0:u.url)&&a.createElement("div",{className:w.logoContainer},a.createElement("img",{src:C.j.createUrl(e.logo.url,{size:b.h2.Small}),className:"rounded-circle"})))),null==N?void 0:N.container)}),(function(e,t){var n,a;return e.actions===t.actions&&e.heading===t.heading&&(null===(n=e.logo)||void 0===n?void 0:n.url)===(null===(a=t.logo)||void 0===a?void 0:a.url)}));function k(){var e=a.useContext(h.n);return i.b.renderInPortalIfExists(a.createElement("div",{className:"partial-banner partial-loading-background ".concat(w.banner)}),null==e?void 0:e.container)}},49935:(e,t,n)=>{n.d(t,{Oo:()=>d,b2:()=>m});var a=n(32735),r=n(36848),i=n(86764),o=n(3747),l=n(5859),s=n(35223),c=n(83914),u=function(e){var t=e.breadcrumb,n=t.name,i=t.appLink,o=t.active,l=e.withBackIcon;return a.createElement("li",{className:"breadcrumb-item".concat(o?" active":"")},o?a.createElement("strong",null,n):a.createElement(r.F,{appLink:i},l&&a.createElement(c.x,{svgName:s.vn.ChevronLeft,size:c.S.Small}),a.createElement("span",{className:l?"ms-2":""},n)))},d=function(e){var t=e.breadcrumbs,n=(0,o.a)(i.r.XS),r=null==t?void 0:t.length;return!r||n&&r<2?a.createElement(a.Fragment,null):n?a.createElement("nav",{"aria-label":"breadcrumb"},a.createElement("ol",{className:"breadcrumb m-0 p-0"},a.createElement(u,{breadcrumb:t[r-2],withBackIcon:!0}))):a.createElement("nav",{"aria-label":"breadcrumb"},a.createElement("ol",{className:"breadcrumb m-0 p-0"},t.map((function(e,t){return a.createElement(u,{key:t,breadcrumb:e})}))))},m=a.memo((function(e){var t=e.numItems,n=void 0===t?3:t;return(0,o.a)(i.r.XS)?a.createElement("div",{className:"partial-loading-background",style:{height:"1.3125rem",width:"6rem"}}):a.createElement("nav",{"aria-label":"breadcrumb"},a.createElement("ol",{className:"breadcrumb m-0 p-0"},l.u.getPartialLoadingItems({numItems:n}).map((function(e,t){var n=e.width;return a.createElement("li",{key:t,className:"breadcrumb-item"},a.createElement("span",{className:"d-inline-block partial-loading-background",style:{width:n},dangerouslySetInnerHTML:{__html:" "}}))}))))}))},71020:(e,t,n)=>{n.d(t,{_:()=>u});var a=n(32735),r=n(80247),i=n(34152),o=n(83914),l=n(35223);const s={container:"VwD1b",spinner:"eJ85e"};function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function u(e){var t,n,u=(t=(0,i.YD)(),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,o,l=[],s=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(a=i.call(n)).done)&&(l.push(a.value),l.length!==t);s=!0);}catch(e){c=!0,r=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw r}}return l}}(t,n)||function(e,t){if(e){if("string"==typeof e)return c(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?c(e,t):void 0}}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),d=u[0],m=u[1];return a.useEffect((function(){var t;e.fetchOnScroll&&m&&!e.isFetching&&(null===(t=e.fetchNext)||void 0===t||t.call(e,e.nextCursor))}),[m,e.isFetching]),a.createElement("div",{className:"p-3 text-center ".concat(s.container),ref:d},e.isFetching?a.createElement(r.Z,{as:"span",animation:"border",role:"status",className:s.spinner}):a.createElement(o.x,{svgName:l.vn.ChevronDown,className:"svg-container cursor-pointer",size:o.S.Large,onClick:function(){var t;return null===(t=e.fetchNext)||void 0===t?void 0:t.call(e,e.nextCursor)}}))}u.defaultProps={fetchOnScroll:!1}},74696:(e,t,n)=>{n.d(t,{S:()=>c});var a=n(32735),r=n(68050),i=n(69111),o=n(9977),l=n(79967);const s={partialOptions:"Gufgq",partialName:"SicQQ",partialDescription:"dPGMq",partialThumbnail:"vZrnb",partialDragHandle:"iq73R"};function c(e){return a.createElement("div",{className:"mx-2"},Array(e.numVideos).fill(null).map((function(t,n){return a.createElement("div",{className:"d-flex",key:n},e.allowBulkActions&&a.createElement("div",{className:"form-check pe-3 pe-sm-2 mx-0 mx-md-2"}),a.createElement(u,Object.assign({},e)))})))}function u(e){var t=(0,l.k)(),n="sm"===o.O.getSize(t,"md"),c=e.withReordering&&!t.xs;return a.createElement(r.Z,{className:"".concat(n?"":"py-2"," flex-grow-1")},a.createElement(i.Z,Object.assign({},o.O.getThumbnailColumns(),{className:"flex-column align-items-flex-start ".concat(n?"pb-2 pe-1":"mb-1 pe-3 pe-md-2")}),a.createElement(r.Z,null,!!c&&a.createElement("div",{className:"d-flex align-items-center justify-content-center col-2"},a.createElement("div",{className:"partial-loading-background ".concat(s.partialDragHandle)})),a.createElement(i.Z,{xs:o.O.getThumbnailColSize(c)},a.createElement("div",{className:"partial-loading-background ".concat(n?"rounded":"rounded-3"," ").concat(s.partialThumbnail)})))),a.createElement(i.Z,Object.assign({},o.O.getDetailsColumns(),{className:n?"pb-2":"px-2"}),a.createElement("div",{className:"partial-loading-background mb-1 ".concat(s.partialName)}),a.createElement("div",{className:"partial-loading-background ".concat(s.partialDescription)})))}c.defaultProps={numVideos:15}},94644:(e,t,n)=>{n.d(t,{r:()=>u});var a=n(50242),r=n(81886),i=n(67058),o=n(14553),l=n(49267),s=n(49075),c={notFound:i.d,forbidden:{rating:o.q,yearLevel:o.q,region:l.a,privacy:o.q},badRequest:s._};function u(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e){var i;i="number"==typeof e?e:e.status;var o=Object.assign(Object.assign({},c),t);i&&r.Q.Ry.isStatusCodeError(i)&&(i!==a.o.NotFound?i!==a.o.Forbidden?n.badRequest||r.Q.Ry.throw(new o.badRequest):n.forbidden||r.Q.Ry.throw(new o.forbidden.privacy):n.notFound||r.Q.Ry.throw(new o.notFound))}}},91286:(e,t,n)=>{n.d(t,{v:()=>o});var a=n(32735),r=n(94644);function i(e){return e.map((function(e){return e.statusCode})).join(":")}function o(e,t,n){var o=Array.isArray(e)?e:[e];(0,a.useEffect)((function(){o.forEach((function(e){(0,r.r)(e.statusCode,t,n)}))}),[i(o),t,n])}},60115:(e,t,n)=>{n.d(t,{K:()=>c});var a=n(32735),r=n(50242),i=n(91967),o=400,l=n(45719);function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function c(e,t,n,c,u,d){var m,p,f,v,y=(m=(0,a.useState)(0),p=2,function(e){if(Array.isArray(e))return e}(m)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,o,l=[],s=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(a=i.call(n)).done)&&(l.push(a.value),l.length!==t);s=!0);}catch(e){c=!0,r=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw r}}return l}}(m,p)||function(e,t){if(e){if("string"==typeof e)return s(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?s(e,t):void 0}}(m,p)||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.")}()),g=y[0],h=y[1],b=t,E=(0,l.P)((function(t){if(!e)return null;var n=e(t);return n?n.key:null}),c,u);return f={fetchNextPage:function(){if(t&&e&&E)return h((function(e){return e+1})),b(E.nextCursor)},hasMore:!!(null==E?void 0:E.nextCursor),isFetching:null==E?void 0:E.isFetching,scrollContainer:d},v=function(){if(!f.isFetching){if(f.scrollContainer){var e=f.scrollContainer;if(e.getBoundingClientRect().height+e.scrollTop<e.scrollHeight-o)return}else if(window.innerHeight+document.documentElement.scrollTop<document.documentElement.scrollHeight-o)return;f.fetchNextPage()}},(0,a.useEffect)((function(){var e=i.q.throttle(v,200),t=f.scrollContainer||window;return f.hasMore&&t.addEventListener("scroll",e),function(){return t.removeEventListener("scroll",e)}}),[f.hasMore,f.fetchNextPage,f.scrollContainer]),(0,a.useEffect)((function(){E&&E.shouldInitialFetch&&t&&(b(),h((function(e){return e+1})))}),[null==E?void 0:E.shouldInitialFetch,t]),(0,a.useEffect)((function(){var e,t;if((null==E?void 0:E.statusCode)&&i.q.isFunction(n)){var a=+(null===(t=null===(e=E.statusCode)||void 0===e?void 0:e.toString())||void 0===t?void 0:t.substr(0,1));a!==r.k.ClientError&&a!==r.k.ServerError||n(g,E.statusCode)}}),[null==E?void 0:E.statusCode]),{items:null==E?void 0:E.items,hasMore:!!(null==E?void 0:E.nextCursor),nextCursor:null==E?void 0:E.nextCursor,isFetching:null==E?void 0:E.isFetching,totalItems:null==E?void 0:E.totalItems,hasFirstPageCompleted:null==E?void 0:E.hasFirstPageCompleted}}},5859:(e,t,n)=>{function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}n.d(t,{u:()=>i});var r={numItems:5,minWidth:50,maxWidth:100},i={getPartialLoadingItems:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=Object.assign(Object.assign({},r),t);return(e=Array(n.numItems),function(e){if(Array.isArray(e))return a(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return a(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?a(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()).map((function(){return{width:"".concat(Math.max(Math.floor(Math.random()*n.maxWidth),n.minWidth),"px")}}))}}},6263:(e,t,n)=>{n.r(t),n.d(t,{PlaylistView:()=>Fe});var a=n(32735),r=n(70680),i=n(23481),o=n(81886),l=n(20354),s=n(65858),c=n(1048),u=n(4594),d={isPlaylist:function(e){return(null==e?void 0:e.typeId)===u.E.Playlist},isOwner:function(e,t){var n;return!(!t||!e||c.t.isEmpty(e._liteOwner))&&e._liteOwner.id.toString()===(null===(n=t.id)||void 0===n?void 0:n.toString())},getVideoCount:function(e){var t,n,a;if(e){var r=0;return(null===(t=e.videos)||void 0===t?void 0:t.count)&&(r+=e.videos.count),(null===(n=e.clips)||void 0===n?void 0:n.count)&&(r+=e.clips.count),(null===(a=e.interactives)||void 0===a?void 0:a.count)&&(r+=e.interactives.count),r}}},m=n(71020),p=n(51365),f=n(183),v=n(89454),y=n(21750),g=n(39151),h=n(1666),b=n(5112),E=n(31949),C=n(69883),w=n(56520),S=n(91286),I=n(60115),A=n(22902);function k(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var O=n(79612),N=n(76753),L=n(54569),x=n(31908),P=n(14070),T=n(97291),j=n(51855),F=n(7179),D=n(27638),V=n(86698),M=n(97816),B=n(10741),U=n(33192),_=n(22490),R=n(110),H=n(28400),Y=n(89725),q=n(83345),G="playlists.playlistHeaderDetails",Z=function(e){var t=e.className;return a.createElement("span",{className:t},"•")};function Q(e){var t=e._liteOwner;if(t)return t.name&&t.surname?H.m.toTitleCase(t.name+" "+t.surname.substring(0,1)):t.name?t.name.split(" ")[0]:void 0}function W(e){var t,n,r=d.isOwner(e.playlist,e.currentUser),i=null===(t=e.playlist.followers)||void 0===t?void 0:t.count,o=function(e){if(!e.contentModifiedDate)return"";var t=new Date,n=R.O.convertUTCToLocal(e.contentModifiedDate);return R.O.isBefore(n,R.O.subtract(t,1,"month"))?"":R.O.fromNow(n)}(e.playlist);return a.createElement("div",{className:e.detailsClassName},!e.hideOwnerName&&!r&&a.createElement(a.Fragment,null,(null===(n=e.playlist._isClickViewCurated)||void 0===n?void 0:n.value)?a.createElement(a.Fragment,null,a.createElement("div",{className:e.clickViewAvatarClassName},a.createElement(Y.F,null)),a.createElement("span",null,"ClickView")):a.createElement(q.x,{namespace:G,phrase:"createdBy",options:{user:Q(e.playlist)}}),a.createElement(Z,{className:e.separatorClassName})),"number"==typeof e.totalVideos&&a.createElement(q.x,{namespace:G,phrase:"videos",options:{smartCount:e.totalVideos}}),i>0&&a.createElement(a.Fragment,null,a.createElement(Z,{className:e.separatorClassName}),a.createElement(q.x,{namespace:G,phrase:"followers",options:{smartCount:i}})),!!o&&a.createElement(a.Fragment,null,a.createElement(Z,{className:e.separatorClassName}),a.createElement(q.x,{namespace:G,phrase:"lastUpdated",options:{timeAgo:o}})))}var z=n(44522),X=n(49935),$=n(7733),J=n(86764),K=n(3747),ee=n(9085);const te={partialDescription:"vDX0m"};function ne(){return a.createElement(a.Fragment,null,a.createElement(z.v,null),a.createElement("div",{className:"mb-2"},a.createElement("div",{className:"partial-loading-background my-2 border-bottom ".concat(te.partialDescription)})))}var ae=n(49985),re=n(35223),ie=i.T.encloseNamespace("playlists.playlistHeader"),oe={getPlaylistActions:function(e,t){var n,a,r,i,o,l,c=t.isAuthenticated,u=t.isPlugin,m=t.isMobile,p=t.setIsFollowing,f=t.isFollowing,v=t.setShowFollowSpinner,y=t.showFollowSpinner,g=t.isUserCurator,h=t.openInCuratorLink,b={id:e.playlist.id,name:e.playlist.name,followerCount:null===(n=e.playlist.followers)||void 0===n?void 0:n.count,videoCount:null===(a=e.playlist.videos)||void 0===a?void 0:a.count,interactiveCount:null===(r=e.playlist.interactives)||void 0===r?void 0:r.count,clipCount:null===(i=e.playlist.clips)||void 0===i?void 0:i.count,isClickViewPlaylist:null===(o=e.playlist._isClickViewCurated)||void 0===o?void 0:o.value},E={location:s.LZ.Banner,entity:s.py.Playlist,workflowPhase:s.eu.Start},C=[];if(!c)return C;var S=d.isOwner(e.playlist,e.currentUser);return u||(e.playAllAppLink&&C.push({label:ie("playAll"),appLink:e.playAllAppLink,svgName:re.vn.Play,className:m?"":"btn btn-outline-dark me-2",button:!m,analyticsData:b,analyticsOptions:Object.assign(Object.assign({},E),{actionType:s.Vw.Play})}),g&&C.push({label:(0,w.eR)(),href:h,openInNewTab:!0}),C.push({label:ie("share"),appLink:{application:T.O.DEFAULT,action:P.e.Default.SHARE,args:[e.playlist.id],params:{entityType:"playlist"}},svgName:re.vn.Share2,className:m?"":"btn btn-outline-dark me-2",button:!m,analyticsData:b,analyticsOptions:Object.assign(Object.assign({},E),{actionType:s.Vw.Share,eventVersion:s.eq.V3})})),S||C.push({label:ie(f?"unfollow":"follow"),onClick:function(){p(!f),v(!0),e.follow(!f,(function(){v(!1),ae.k.logUserAction(b,Object.assign(Object.assign({},E),{actionType:s.Vw.Follow,descriptor:f?s.DL.Off:s.DL.On,workflowPhase:s.eu.Complete}))}),(function(){v(!1),p(f)}))},svgName:f?re.vn.Check:re.vn.Bell,className:m?"":"btn follow-btn btn-".concat(f?"outline-dark":"dark"," me-2"),button:!m,showSpinner:y}),S&&(C.push({label:ie("edit"),appLink:{application:T.O.PLAYLISTS,action:P.e.Playlists.EDIT_PLAYLIST,args:[e.playlist.id]},svgName:re.vn.Edit,button:!1,analyticsData:b,analyticsOptions:Object.assign(Object.assign({},E),{actionType:s.Vw.Edit})}),C.push({label:ie("delete"),appLink:{application:T.O.PLAYLISTS,action:P.e.Playlists.DELETE_PLAYLIST,args:[e.playlist.id]},svgName:re.vn.Delete,className:"text-danger",button:!1,analyticsData:b,analyticsOptions:Object.assign(Object.assign({},E),{actionType:s.Vw.Delete})})),(null===(l=e.playlist._isClickViewCurated)||void 0===l?void 0:l.value)&&C.push({label:ie("copy"),appLink:{application:T.O.PLAYLISTS,action:P.e.Playlists.COPY_PLAYLIST,args:[e.playlist.id]},button:!1,analyticsData:b,analyticsOptions:Object.assign(Object.assign({},E),{actionType:s.Vw.Copy})}),C}};const le={clickViewAvatar:"PHe9c"};function se(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,o,l=[],s=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(a=i.call(n)).done)&&(l.push(a.value),l.length!==t);s=!0);}catch(e){c=!0,r=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw r}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return ce(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ce(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ce(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function ue(e){var t,n=(0,j.G)().isPlugin,r=se(a.useState(e.isFollowing),2),i=r[0],o=r[1],l=se(a.useState(!1),2),s=l[0],c=l[1];a.useEffect((function(){return o(e.isFollowing)}),[e.isFollowing]);var u=(0,K.a)(J.r.XS);if(e.showPartialLoading)return a.createElement(ne,null);var d=e.playlist.description,m=oe.getPlaylistActions(e,{isAuthenticated:e.currentUser.isAuthenticated,isPlugin:n,isMobile:u,setIsFollowing:o,isFollowing:i,setShowFollowSpinner:c,showFollowSpinner:s,isUserCurator:e.isUserCurator,openInCuratorLink:e.openInCuratorLink});return a.createElement(a.Fragment,null,a.createElement(z.p,{heading:e.playlist.name,banner:e.playlist.banner,imageCdnUrl:e.imageCdnUrl,actions:m.length&&m,actionsDropdownClassName:"btn btn-outline-dark",blockColourClass:(0,ee.x)(e.playlist.name,$.o),detailsComponent:function(){return a.createElement(W,{playlist:e.playlist,currentUser:e.currentUser,detailsClassName:"mb-n1 font-size-normal fw-normal mt-1",clickViewAvatarClassName:le.clickViewAvatar,separatorClassName:"mx-1",totalVideos:e.totalVideos})}}),(!!d||!!(null===(t=e.topicPath)||void 0===t?void 0:t.length)||!!e.moviesAndTv)&&a.createElement("div",{className:"border-bottom py-3"},e.classificationId||e.moviesAndTv?!e.playlist||e.classificationId&&!e.topicPath?a.createElement(X.b2,null):a.createElement("div",{className:"pb-2"},a.createElement(X.Oo,{breadcrumbs:e.getBreadcrumbs()})):a.createElement(a.Fragment,null),!!d&&a.createElement("p",{className:"mb-0"},d)))}var de=n(56050),me=n(91967),pe=n(83914),fe=n(74696),ve=n(13231);function ye(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var ge=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n};function he(e){var t,n,r=e.onSortComplete,i=e.onSortStart,l=e.showPartialLoading,s=ge(e,["onSortComplete","onSortStart","showPartialLoading"]),c=(t=a.useState(),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,o,l=[],s=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(a=i.call(n)).done)&&(l.push(a.value),l.length!==t);s=!0);}catch(e){c=!0,r=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw r}}return l}}(t,n)||function(e,t){if(e){if("string"==typeof e)return ye(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ye(e,t):void 0}}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),u=c[0],d=c[1];return l?a.createElement(fe.S,{withReordering:e.canEdit||e.showIndexes}):e.canEdit?a.createElement(ve.NB,Object.assign({},s,{currentSortingIndex:u,onSortStart:function(t){var n=e.videos.findIndex((function(e){return e.id.toString()===t.active.id.toString()}));d(n),me.q.isFunction(i)&&i(n)},onSortEnd:function(t){d(null);var n=t.active,a=t.over,i=e.videos.findIndex((function(e){return e.id.toString()===n.id.toString()})),l=e.videos.findIndex((function(e){return e.id.toString()===a.id.toString()}));me.q.isFunction(r)?r(i,l):o.Q.Ry.throw(new de.H("An onSortComplete callback function must be passed to SortableVideoListComponent"))},dragHandleIcon:re.vn.Hamburger,dragHandleIconSize:pe.S.XXL,presentationAudiences:e.presentationAudiences})):a.createElement(ve.E4,Object.assign({},s))}var be=n(23232),Ee=n(99742),Ce="playlists.playlistEmptyState";function we(){return a.createElement(q.D.Provider,{value:Ce},a.createElement(be.u,null,a.createElement(be.u.Image,{src:Ee.W.EmptyStates.Playlists.PLAYLIST_VIDEOS}),a.createElement(be.u.Heading,null,a.createElement(q.x,{phrase:"heading"})),a.createElement(be.u.Info,null,a.createElement(q.x,{phrase:"info"}))))}n(75896);var Se=n(87114),Ie=n(81493),Ae=n(9680),ke=n(10671);function Oe(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var Ne=i.T.encloseNamespace("playlists.playlist"),Le=function(e,t){return{application:T.O.SUBJECT,action:P.e.Subjects.CLASSIFICATION,args:[e.id,H.m.slugify(e.name)],params:{mtv:!!t||void 0}}};function xe(e,t,n){ae.k.logUserAction({id:t,playlistId:e},{location:s.LZ.VideoList,entity:s.py.Video,actionType:s.Vw.Move,workflowPhase:n})}var Pe={notFound:Ie.N,forbidden:{privacy:Ae.J}};function Te(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var je=i.T.encloseNamespace("playlists.playlist");function Fe(e){var t,n,i,c,u,R,H,Y,q,G,Z,Q,W,z=(0,r.I0)(),X=(0,C.Z)(),$=l.a.useBasicFetch(g.L.config()),J=l.a.useBasicFetch(E.N.currentUser()),K=(0,w.R0)(),ee=K.isUserCurator,te=K.getOpenInCurationStudioLink,ne=(0,A.T)().hasPermissions,ae=(0,j.G)().isPlugin,ie=l.a.useBasicFetch((null===(t=J.data)||void 0===t?void 0:t.isAuthenticated)&&h.h.yearGroups(J.data.customerId)),oe=l.a.useBasicFetch(e.classificationId&&y.x.path(e.classificationId)),le=l.a.useBasicFetch(e.classificationId&&y.x.classification(e.classificationId,null===(n=J.data)||void 0===n?void 0:n.id)),se=l.a.useBasicFetch(le.hasCompleted&&y.x.presentationById(null===(i=le.data)||void 0===i?void 0:i.presentationId)),ce=l.a.useBasicFetch((!e.classificationId||se.hasCompleted)&&v.O.presentationAudiences(null===(c=se.data)||void 0===c?void 0:c.id)),de=(0,V.y)(),me=de.activePresentation,pe=de.availablePresentations,fe=(0,D.u)(s.LZ.VideoThumbnail),ve=fe.setFavourite,ye=fe.canFavourite,ge=e.shareId?b.C.getSharedPlaylist(e.playlistId,e.shareId):b.C.getPlaylist(e.playlistId),be=e.shareId?b.C.getSharedPlaylistVideosCount(e.playlistId,e.shareId):b.C.getPlaylistVideosCount(e.playlistId),Ee=l.a.useBasicFetch(ge),Ce=l.a.useBasicFetch(be),Ie=function(e,t,n){var a=(0,ke._)({location:ke.i.VideoItem,shareId:n});return d.isOwner(e,t)?Object.assign(Object.assign({},a),{getVideoActions:function(t,n){var r,i=x.M.getCanBeConsumed(t).canConsume,o={label:Ne("removeFromPlaylist"),button:!1,svgName:re.vn.Delete,appLink:{application:T.O.PLAYLISTS,action:P.e.Playlists.REMOVE_VIDEO_FROM_PLAYLIST,args:[t.id,e.id],params:{typeId:t.typeId}},className:"text-danger",analyticsOptions:{entity:s.py.Video,actionType:s.Vw.Dissociate,location:s.LZ.VideoListItem,workflowPhase:s.eu.Start,descriptor:s.iF.Playlist},analyticsData:{id:t.id,playlistId:e.id},group:"delete"};return i?[].concat(function(e){if(Array.isArray(e))return Oe(e)}(r=a.getVideoActions(t,n))||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 Oe(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Oe(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.")}(),[o]):[o]}}):a}(Ee.data,J.data,e.shareId);(0,S.v)(Ee,Pe);var Ae=function(t){return e.shareId?b.C.getSharedPlaylistVideos(e.playlistId,e.shareId,t):b.C.getPlaylistVideos(e.playlistId,t)},Fe=l.a.useBasicFetch((null===(u=J.data)||void 0===u?void 0:u.id)&&b.C.getIsFollowingPlaylist(e.playlistId,null===(R=J.data)||void 0===R?void 0:R.id)),De=function(e){l.a.getFetch(z)(Ae(e))},Ve=(0,I.K)(Ae,De),Me=Ve.items,Be=Ve.hasMore,Ue=Ve.isFetching;(0,M.V)(Me);var _e,Re,He,Ye,qe,Ge,Ze=function(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,o,l=[],s=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(a=i.call(n)).done)&&(l.push(a.value),l.length!==t);s=!0);}catch(e){c=!0,r=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw r}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return Te(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Te(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.")}()}((_e=Me,qe=(0,a.useState)(),Ge=2,Re=function(e){if(Array.isArray(e))return e}(qe)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,o,l=[],s=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(a=i.call(n)).done)&&(l.push(a.value),l.length!==t);s=!0);}catch(e){c=!0,r=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw r}}return l}}(qe,Ge)||function(e,t){if(e){if("string"==typeof e)return k(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?k(e,t):void 0}}(qe,Ge)||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.")}(),He=Re[0],Ye=Re[1],(0,a.useEffect)((function(){He&&(_e.length!==He.length||function(e,t){var n=!0;if(e.length!==t.length)return!1;for(var a=0;a<e.length;a++)if(e[a].id!==t[a].id){n=!1;break}return n}(_e,He))&&Ye(null)}),[_e]),[He,Ye]),2),Qe=Ze[0],We=Ze[1];(0,F.P)({id:e.playlistId,app:"playlists",shareId:e.shareId}),(0,O.M)(N.CG.getPlaylistMetadata({content:Ee.data,phraseContext:{phraseHandler:je,titlePhrase:"pageTitle",descriptionPhrase:"pageDescription"},canonicalLink:U.f.getCanonicalLink({stripPresentationSlug:!0}),allowIndexing:!1}));var ze=!!Me&&0===Me.length,Xe=function(t,n){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return _.W.getAppLink(t,Object.assign(Object.assign({},a),{contextId:e.playlistId,context:f.Q.Playlist,shareId:e.shareId,moviesAndTv:e.moviesAndTv,playNext:n}))},$e=!(null===(H=J.data)||void 0===H?void 0:H.isAuthenticated)||!!Fe.hasCompleted,Je=null==Me?void 0:Me.find((function(e){var t;return null===(t=x.M.getCanBeConsumed(e))||void 0===t?void 0:t.canConsume})),Ke=d.isOwner(Ee.data,J.data),et=Me&&J.data&&$.data;return a.createElement(p.M.Provider,{value:(null===(Y=J.data)||void 0===Y?void 0:Y.isAuthenticated)&&Ie},a.createElement("div",{className:"bg-white px-3"},a.createElement(ue,{playlist:Ee.data,currentUser:J.data,isFollowing:null===(q=Fe.data)||void 0===q?void 0:q.isFollowing,follow:function(t,n,a){var r,i=t?b.C.followPlaylist:b.C.unfollowPlaylist;l.a.fetch(z,i(e.playlistId,null===(r=J.data)||void 0===r?void 0:r.id,n,(function(){a(),X.error(je(t?"followError":"unfollowError"))})))},playAllAppLink:Je&&Xe(Je,!0),showPartialLoading:!Ee.data||!et||!$e,imageCdnUrl:!!$.data&&$.data.imageCdnUrl,getBreadcrumbs:function(){return function(e){var t=e.topicPath,n=e.presentation,a=e.availablePresentations,r=e.playlist;if(e.moviesAndTv){var i=[{name:Ne("moviesAndTv"),appLink:{application:T.O.MOVIES_AND_TV,action:P.e.MoviesAndTv.HOME}}];return null==t||t.slice(1,t.length).forEach((function(e){i.push({name:e.name,appLink:Le(e,!0)})})),i.push({name:r.name,active:!0}),i}var o=[{name:Ne("discover"),appLink:{application:T.O.DASHBOARD,action:P.e.Dashboard.HOME}}];return t&&(o.push({name:Se.i.getExploreAllTopicsTitle(null==n?void 0:n.name,null==a?void 0:a.length),appLink:{application:T.O.SUBJECT,action:P.e.Subjects.CLASSIFICATION_ALL,params:{presentationId:null==n?void 0:n.id}}}),t.slice(1,t.length).forEach((function(e){o.push({name:e.name,appLink:Le(e)})}))),o.push({name:r.name,active:!0}),o}({availablePresentations:pe,moviesAndTv:e.moviesAndTv,playlist:Ee.data,presentation:me,topicPath:oe.data})},topicPath:oe.data,moviesAndTv:e.moviesAndTv,classificationId:e.classificationId,isUserCurator:ee,openInCuratorLink:te(null===(G=Ee.data)||void 0===G?void 0:G.typeId,null===(Z=Ee.data)||void 0===Z?void 0:Z.id),totalVideos:d.getVideoCount(Ce.data)}),a.createElement("div",{className:"mt-2"},ze?a.createElement(we,null):a.createElement(he,{videos:Qe||Me,yearGroups:ie.data,playlistId:!!Ee.data&&Ee.data.id,onSortStart:function(t){var n=Me[t];n&&xe(e.playlistId,n.id,s.eu.Start)},onSortComplete:function(t,n){if(t!==n){var a=Me[t];if(a){var r=L.l.reorder(Me,t,n),i=r.reorderedItems,o=r.reorderRequest;We(i),xe(e.playlistId,a.id,s.eu.Complete),l.a.fetch(z,b.C.reorderVideos(e.playlistId,o,null,(function(){We(null)})))}}},canEdit:Ke,showPartialLoading:!et,getVideoAppLink:function(e,t){return Xe(e,!1,t)},getSubTextAppLink:function(t){return e.getSeriesAppLink(t.series)},setFavourite:ve,canFavourite:ye,showSignIn:!(null===(Q=J.data)||void 0===Q?void 0:Q.isAuthenticated),getSignInAppLink:function(e){var t=o.Q.C$.getHref(e),n="/"!==t?{redirectUrl:t}:{};return{application:T.O.DEFAULT,action:P.e.Default.LOG_IN,params:n}},canRemovePrivateVideos:Ke,presentationAudiences:e.moviesAndTv?null:ce.data,showIndexes:!0,hasPermissions:ne,getPreviewQuestionsAppLink:function(e){return B.j.getPreviewQuestionsAppLink(e)},imageCdnUrl:null===(W=$.data)||void 0===W?void 0:W.imageCdnUrl,isPlugin:ae,getClassroomGuideAppLink:_.W.getClassroomGuideAppLink,getInteractiveGuidanceAppLink:_.W.getInteractiveGuidanceAppLink,getResourceGuidanceAppLink:_.W.getResourceGuidanceAppLink})),(Be||Ue)&&a.createElement(m._,{isFetching:Ue,fetchNext:De})))}},97816:(e,t,n)=>{n.d(t,{V:()=>d});var a=n(32735),r=n(20354),i=n(21750),o=n(31949),l=n(1575),s=n(31908);function c(e,t){if(e){if("string"==typeof e)return u(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?u(e,t):void 0}}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function d(e){var t,n,d=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},m=r.a.useBasicFetch(o.N.currentUser()),p=a.useRef(new Set),f=function(e){return e?Array.isArray(e)?e.filter((function(e){return!!e&&(s.M.isVideo(e)||s.M.isClip(e))})):"data"in e?e.data.filter((function(e){return!!e&&(s.M.isVideo(e)||s.M.isClip(e))})):[]:[]}(e),v=f.map((function(e){return e.id})),y=(t=a.useState([]),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,o,l=[],s=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(a=i.call(n)).done)&&(l.push(a.value),l.length!==t);s=!0);}catch(e){c=!0,r=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw r}}return l}}(t,n)||c(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),g=y[0],h=y[1];a.useEffect((function(){if((null==v?void 0:v.length)&&m.hasCompleted){var e=[];v.forEach((function(t){p.current.has(t)||(e.push(t),p.current.add(t))})),e.length&&h((function(t){var n,a=[].concat(function(e){return function(e){if(Array.isArray(e))return u(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||c(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.")}()}(t),[l.R.videoMixinAssocs(e,d.flightNamespace)]);return(null===(n=m.data)||void 0===n?void 0:n.isAuthenticated)&&a.push(i.x.hasCurriculumLinks(e,null,d.flightNamespace)),a}))}}),[null==v?void 0:v.length,m.hasCompleted]),r.a.useBasicFetchAll(g)}}}]);
|
|
2
|
+
//# sourceMappingURL=6263-a60b811d93-lite.chunk.js.map
|