@clickview/lite 0.103.2 → 0.103.3
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/.vite/manifest.json +407 -407
- package/dist/bundles.json +1 -1
- package/dist/en.json +1 -1
- package/dist/scripts/{BeW5XQTb2.chunk.js → BBwi4FOJ2.chunk.js} +2 -2
- package/dist/scripts/{BeW5XQTb2.chunk.js.map → BBwi4FOJ2.chunk.js.map} +1 -1
- package/dist/scripts/{D8mi6CVp2.chunk.js → BYJa-jEI2.chunk.js} +2 -2
- package/dist/scripts/{D8mi6CVp2.chunk.js.map → BYJa-jEI2.chunk.js.map} +1 -1
- package/dist/scripts/{Drh1bb9z.chunk.js → BbJGjXBH.chunk.js} +2 -2
- package/dist/scripts/{Drh1bb9z.chunk.js.map → BbJGjXBH.chunk.js.map} +1 -1
- package/dist/scripts/BcVxkWsW.chunk.js +1 -0
- package/dist/scripts/{DOYyhXN-.chunk.js → BjtsulNM.chunk.js} +2 -2
- package/dist/scripts/{DOYyhXN-.chunk.js.map → BjtsulNM.chunk.js.map} +1 -1
- package/dist/scripts/{QVwuOts3.chunk.js → C3eIGNDs.chunk.js} +2 -2
- package/dist/scripts/{QVwuOts3.chunk.js.map → C3eIGNDs.chunk.js.map} +1 -1
- package/dist/scripts/{CfrfHGSh.chunk.js → CT3yl0jK.chunk.js} +2 -2
- package/dist/scripts/{CfrfHGSh.chunk.js.map → CT3yl0jK.chunk.js.map} +1 -1
- package/dist/scripts/{wpRpI9h02.chunk.js → CbPqWgxm2.chunk.js} +2 -2
- package/dist/scripts/{wpRpI9h02.chunk.js.map → CbPqWgxm2.chunk.js.map} +1 -1
- package/dist/scripts/{CsCjBSq62.chunk.js → Cj6PScU52.chunk.js} +2 -2
- package/dist/scripts/{CsCjBSq62.chunk.js.map → Cj6PScU52.chunk.js.map} +1 -1
- package/dist/scripts/{BD_YlxPJ.chunk.js → Cl0Kjmj6.chunk.js} +2 -2
- package/dist/scripts/{BD_YlxPJ.chunk.js.map → Cl0Kjmj6.chunk.js.map} +1 -1
- package/dist/scripts/{yfjVyowY.chunk.js → DAed0ji9.chunk.js} +2 -2
- package/dist/scripts/{yfjVyowY.chunk.js.map → DAed0ji9.chunk.js.map} +1 -1
- package/dist/scripts/{CIzlhCeS.chunk.js → Dl-8A2m-.chunk.js} +2 -2
- package/dist/scripts/{CIzlhCeS.chunk.js.map → Dl-8A2m-.chunk.js.map} +1 -1
- package/dist/scripts/{BFH_tnSb2.chunk.js → RaLi1Skr2.chunk.js} +3 -3
- package/dist/scripts/{BFH_tnSb2.chunk.js.map → RaLi1Skr2.chunk.js.map} +1 -1
- package/dist/scripts/{app-DvYKGw_S.js → app-BYLHZF74.js} +4 -4
- package/dist/scripts/{app-DvYKGw_S.js.map → app-BYLHZF74.js.map} +1 -1
- package/dist/scripts/{kLCNzxrH2.chunk.js → hWjV2SVN2.chunk.js} +2 -2
- package/dist/scripts/{kLCNzxrH2.chunk.js.map → hWjV2SVN2.chunk.js.map} +1 -1
- package/package.json +1 -1
- package/dist/scripts/C2s0ZcC4.chunk.js +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{o as e}from"./DAXXjFlN.chunk.js";import{n as t}from"./B785hxeE.chunk.js";import{t as n}from"./e57H3T-k.chunk.js";import{t as r}from"./C2w0pmFW.chunk.js";import{t as i}from"./wrLrTezN.chunk.js";import{t as a}from"./BXTI9cmX.chunk.js";import{t as o}from"./CVHQXNzi2.chunk.js";import{t as s}from"./YakGe6vv2.chunk.js";import{t as c}from"./DdsRCMkN.chunk.js";import{t as ee}from"./CgCqPbjJ.chunk.js";import{t as te}from"./PgzMrOyM.chunk.js";import{t as ne}from"./C5rBgkQH.chunk.js";import{t as re}from"./QCFxJYkI2.chunk.js";import{t as ie}from"./B2INd6bh.chunk.js";import{t as l}from"./BQKcAczf.chunk.js";import{a as u,o as d}from"./_Cm5O72d.chunk.js";import{n as f}from"./CpFtf-tI2.chunk.js";import{t as p}from"./DW51cSV_2.chunk.js";import{t as m}from"./9PCtVxot.chunk.js";import{n as h}from"./Dy3xpenS.chunk.js";import{u as g}from"./DW4eUMeA.chunk.js";import{t as _}from"./C2pEjcxD.chunk.js";import{o as v,r as y}from"./YcLj4o6h.chunk.js";import{n as b,t as x}from"./DWeyYfUG.chunk.js";import{t as S}from"./BPavmm8c.chunk.js";import{a as ae,i as oe,n as se,t as ce}from"./02GiL0bJ2.chunk.js";import{_ as le,a as ue,d as de,f as C,g as fe,h as pe,i as me,l as he,m as ge,n as _e,o as ve,p as w,r as T,s as E,t as D,u as O,v as k}from"./
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{o as e}from"./DAXXjFlN.chunk.js";import{n as t}from"./B785hxeE.chunk.js";import{t as n}from"./e57H3T-k.chunk.js";import{t as r}from"./C2w0pmFW.chunk.js";import{t as i}from"./wrLrTezN.chunk.js";import{t as a}from"./BXTI9cmX.chunk.js";import{t as o}from"./CVHQXNzi2.chunk.js";import{t as s}from"./YakGe6vv2.chunk.js";import{t as c}from"./DdsRCMkN.chunk.js";import{t as ee}from"./CgCqPbjJ.chunk.js";import{t as te}from"./PgzMrOyM.chunk.js";import{t as ne}from"./C5rBgkQH.chunk.js";import{t as re}from"./QCFxJYkI2.chunk.js";import{t as ie}from"./B2INd6bh.chunk.js";import{t as l}from"./BQKcAczf.chunk.js";import{a as u,o as d}from"./_Cm5O72d.chunk.js";import{n as f}from"./CpFtf-tI2.chunk.js";import{t as p}from"./DW51cSV_2.chunk.js";import{t as m}from"./9PCtVxot.chunk.js";import{n as h}from"./Dy3xpenS.chunk.js";import{u as g}from"./DW4eUMeA.chunk.js";import{t as _}from"./C2pEjcxD.chunk.js";import{o as v,r as y}from"./YcLj4o6h.chunk.js";import{n as b,t as x}from"./DWeyYfUG.chunk.js";import{t as S}from"./BPavmm8c.chunk.js";import{a as ae,i as oe,n as se,t as ce}from"./02GiL0bJ2.chunk.js";import{_ as le,a as ue,d as de,f as C,g as fe,h as pe,i as me,l as he,m as ge,n as _e,o as ve,p as w,r as T,s as E,t as D,u as O,v as k}from"./CbPqWgxm2.chunk.js";import{i as A,r as j,t as M}from"./BgblOoyL2.chunk.js";var N=e(r()),P=i(),F=`shared.playClip`;function ye(e){let{hasPermissions:t}=l(),n=b({location:x.VideoItem,presentationSlug:null});return(0,P.jsxs)(`section`,{className:`play-page-section`,id:S.ClippedFrom,ref:t=>{t&&e.headingRef?.current&&e.headingRef.current.set(S.ClippedFrom,t)},children:[(0,P.jsx)(`h2`,{className:`h4 mb-0`,children:(0,P.jsx)(f,{namespace:F,phrase:`clippedFrom`})}),(0,P.jsx)(v.Provider,{value:n,children:(0,P.jsx)(y,{videos:[e.originalVideo],getVideoAppLink:(t,n)=>p.getAppLink(t,{...n,context:e.queryParams.context,contextId:e.queryParams.contextId,playNext:e.queryParams.playNext,shareId:e.shareId,moviesAndTv:e.queryParams.mtv,includeContext:e.currentUser?.isAuthenticated},null),hasPermissions:t,presentationAudiences:e.audiences,getPreviewQuestionsAppLink:e=>m.getPreviewQuestionsAppLink(e),commonVideoProps:e.commonVideoProps})})]})}var I={main:`_main_1ujkn_1`,expandedToc:`_expandedToc_1ujkn_1`,theatreMode:`_theatreMode_1ujkn_4`,theatreModeContent:`_theatreModeContent_1ujkn_7`,theatreModePlayPageContainer:`_theatreModePlayPageContainer_1ujkn_17`,theatreModeLeftContent:`_theatreModeLeftContent_1ujkn_21`},be=(e,t,n)=>r=>n?{application:a.VIDEOS,action:c.Videos.PREVIEW_PDF,args:[r.id],params:{videoId:e,shareId:t}}:{application:a.SIGN_UP,action:c.SignUp.SIGN_UP};function L(e){let r=h(),{hasPermissions:i}=l(),f=M(),{canConsume:m}=s.getCanBeConsumed(e.clip),v=ve(e.hasTheatreMode,r),y=_e(e.hasTheatreMode,r.mode,r.defaultDisplayMode);function b(e){r.playerRef?.current?.toggleTheatreMode?.(e)}let{tableOfContentsActiveId:x,setTableOfContentsActiveId:F,controlledId:L,setControlledId:R,tableOfContentsExpanded:z,onToggleTableOfContents:B}=me(e.tableOfContentsId,e.hasTheatreMode,v),V=le(e.clip)&&e.featureAccess.canViewGlance,{headingRef:H,headingElements:U}=T(V),W=U.map(t=>({id:t.id,name:D.getSectionHeading(t.id,{clips:e.clips,interactives:e.interactives,resources:e.clip.resources?.data,isPlayClipPage:!0})}));A({setActiveId:F,headingElements:U,controlledId:L,setControlledId:R}),j(U,L);let xe=s.isVideoTypeArchived(e.clip),G=i(t.StudentExperience),K=N.useRef(!1),q=be(e.clip.id,e.shareId,e.featureAccess.canViewResourceItems);he({resourcePopupId:e.queryParams?.resourceId,resources:e.clip.resources?.data,getResourceAppLink:q});function J(){K.current=!r?.playerRef?.current?.isPaused(),r?.playerRef?.current?.pause()}function Y(){K.current&&r?.playerRef?.current?.play()}function X(){return!(!e.clip._parentVideo||!e.clip._canBeConsumed?.value||!e.currentUser?.isAuthenticated||!e.hasProduct(re.Primary)||G)}function Se(){return X()?{application:a.VIDEOS,action:c.Videos.PLAY_VIDEO,args:[null,e.clip._parentVideo.id,n.slugify(e.clip._parentVideo.name)]}:null}let Ce=r.mode===`picture-in-picture`||e.featureAccess.canViewPublicLayout,we=e.clips?.filter(t=>t.id.toString()!==e.clip.id.toString())??[],Z={hasTheatreMode:e.hasTheatreMode,shouldShowSideTableOfContents:e.shouldShowSideTableOfContents,tableOfContentsExpanded:z,theatreMode:v},Q=E(Z),Te=ue(Z),[,$]=ne(ee.PLAY_PAGE_CONTAINER_CLASS_NAME);return N.useEffect(()=>{$(v?I.theatreModePlayPageContainer:``)},[v]),N.useEffect(()=>()=>$(``),[]),(0,P.jsxs)(`div`,{className:`px-4 play-page-sections-container ${e.shouldShowSideTableOfContents?`row g-0`:``}`,children:[(0,P.jsxs)(`main`,{className:`${I.main} ${Q}`,children:[!!e.breadcrumbs?.length&&(0,P.jsx)(`div`,{className:`mb-2`,children:(0,P.jsx)(_,{breadcrumbs:e.breadcrumbs})}),(0,P.jsx)(ce,{restrictions:e.clip._restrictions,yearGroups:e.commonVideoProps.yearGroups,objectId:e.clip.id,objectTypeId:o.Clip,canManageVideoAccess:e.canManageVideoAccess}),xe&&(0,P.jsx)(ae,{typeId:e.clip.typeId,hasStudentExperience:G}),(0,P.jsxs)(`section`,{id:S.Video,className:`mb-2 ${ie.GLOBAL_PLAYER_SELECTOR}`,ref:e=>{e&&H?.current&&H.current.set(S.Video,e)},children:[m&&(0,P.jsx)(g,{objectId:e.clip.id,objectTypeId:e.clip.typeId,shareId:e.shareId,context:e.queryParams?.context,contextId:e.queryParams?.contextId,moviesAndTv:e.queryParams?.mtv,playNext:e.queryParams?.playNext,startTime:e.queryParams?.t??e.queryParams?.startTime,mode:`default`,location:`play-page`},e.clip.id),(0,P.jsx)(`div`,{className:Ce?``:`d-none`,children:(0,P.jsx)(O,{video:e.clip,type:`pip`})})]}),(0,P.jsxs)(`div`,{className:Te,children:[(0,P.jsxs)(`div`,{className:y?`${I.theatreModeLeftContent}`:`w-100`,children:[(0,P.jsx)(de,{presentationSlug:null,media:e.clip,yearGroups:e.commonVideoProps.yearGroups,audiences:e.audiences,originalVideoAppLink:Se(),featureAccess:e.featureAccess,shareId:e.shareId,showTitlePadlock:!e.commonVideoProps.hasStudentExperience&&!e.commonVideoProps.hasGuestExperience}),V?(0,P.jsx)(fe,{video:e.clip,pointsOfInterest:e.pointsOfInterest,setStartTime:e=>r.playerRef.current?.currentTime(e),getTagAppLink:e=>({application:a.SEARCH,action:c.Search.HOME,params:{tagOrClassification:e.name}}),suppressInteractivity:e.featureAccess.canViewPublicLayout,canViewGlance:V}):(0,P.jsx)(k,{video:e.clip,currentUser:e.currentUser,onLaunchImmersiveReader:J,onExitImmersiveReader:Y,getTagAppLink:e=>({application:a.SEARCH,action:c.Search.HOME,params:{tagOrClassification:e.name}}),headingRef:H,suppressInteractivity:e.featureAccess.canViewPublicLayout,getLibraryAppLink:d,getFolderAppLink:u}),(0,P.jsx)(pe,{video:e.clip,canViewResources:e.featureAccess.canViewResourceItems,imageCdnUrl:e.commonVideoProps.imageCdnUrl,getAppLink:q,analyticsData:{clipId:e.clip.id,clipName:e.clip.name},resourceThumbnailFallbackUrl:te.Fallbacks.RESOURCE_THUMBNAIL,headingRef:H,onDownloadAllClick:f}),(0,P.jsx)(w,{presentationSlug:null,video:e.clip,interactives:e.interactives,analyticsData:{clipId:e.clip.id,clipName:e.clip.name},canViewInteractives:e.featureAccess.canViewInteractives,headingRef:H,commonVideoProps:e.commonVideoProps}),(0,P.jsx)(ge,{presentationSlug:null,clips:we||[],video:e.clip,canViewClips:e.featureAccess.canViewClips,audiences:e.audiences,headingRef:H,analyticsData:{clipId:e.clip.id,clipName:e.clip.name},commonVideoProps:e.commonVideoProps}),V&&(0,P.jsx)(k,{video:e.clip,currentUser:e.currentUser,onLaunchImmersiveReader:J,onExitImmersiveReader:Y,getTagAppLink:e=>({application:a.SEARCH,action:c.Search.HOME,params:{tagOrClassification:e.name}}),headingRef:H,suppressInteractivity:e.featureAccess.canViewPublicLayout,showHeading:!0,getLibraryAppLink:i(t.ViewLibraries)?d:null,getFolderAppLink:i(t.ViewLibraries)?u:null}),!!X()&&(0,P.jsx)(ye,{originalVideo:e.clip._parentVideo,shareId:e.shareId,queryParams:e.queryParams,audiences:e.audiences,headingRef:H,currentUser:e.currentUser,commonVideoProps:e.commonVideoProps}),!s.isUgc(e.clip._parentVideo)&&(0,P.jsx)(se,{headingRef:H,media:e.clip,parentVideo:e.clip._parentVideo,contentRegion:e.currentUser.contentRegion,shareId:e.shareId,presentationSlug:null}),(0,P.jsx)(oe,{presentationSlug:null,currentVideo:e.clip,relatedVideos:e.relatedVideos,currentUser:e.currentUser,audiences:e.audiences,getVideoAppLink:(t,n)=>p.getAppLink(t,{...n,context:e.queryParams.context,contextId:e.queryParams.contextId,playNext:e.queryParams.playNext,shareId:e.shareId,moviesAndTv:e.queryParams.mtv,includeContext:e.currentUser?.isAuthenticated},null),moviesAndTv:e.queryParams.mtv,commonVideoProps:e.commonVideoProps})]}),v&&(0,P.jsx)(C,{isExpanded:z,setIsExpanded:B,toggleTheatreMode:null,items:W,activeId:x,setControlledId:R,analyticsData:{videoId:e.clip.id,videoName:e.clip.name},showInSide:e.shouldShowSideTableOfContents,isTheatreMode:!0,hasTranscription:e.hasTheatreMode,shouldShow:W.length>=3})]})]}),!v&&(0,P.jsx)(C,{isExpanded:z,setIsExpanded:B,toggleTheatreMode:e.hasTheatreMode?b:null,items:W,activeId:x,setControlledId:R,analyticsData:{videoId:e.clip.id,videoName:e.clip.name},showInSide:e.shouldShowSideTableOfContents,isTheatreMode:!1,hasTranscription:e.hasTheatreMode,shouldShow:W.length>=3})]})}export{L as t};
|
|
2
|
+
//# sourceMappingURL=BBwi4FOJ2.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BeW5XQTb2.chunk.js","names":[],"sources":["../../src/shared/views/play-clip/components/clipped-from/ClippedFrom.tsx","../../src/shared/views/play-clip/components/play-clip/play-clip.module.scss","../../src/shared/views/play-clip/components/play-clip/PlayClip.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Text } from 'libs/shared/components/text/Text';\nimport { VideoList } from 'libs/shared/components/video-list/VideoList';\nimport { VideoActionsContext } from 'libs/shared/context/VideoActionsContext';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { CurrentUser, PresentationAudience, VideoTypes } from 'libs/shared/interfaces';\nimport { CommonVideoProps } from 'libs/shared/interfaces/CommonVideoProps';\nimport { PlayPageAnchor } from 'libs/shared/interfaces/PlayPageAnchor';\nimport { PlayViewQueryParams } from 'libs/shared/interfaces/query-params/PlayViewQueryParams';\n\nimport { useVideoActions, VideoActionsLocation } from 'shared/hooks/use-video-actions/useVideoActions';\nimport { InteractiveHelpers } from 'shared/utils/InteractiveHelper';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nconst namespace = 'shared.playClip';\n\ninterface ClippedFromProps {\n originalVideo: VideoTypes;\n queryParams: PlayViewQueryParams;\n audiences: PresentationAudience[];\n shareId?: string;\n headingRef: React.MutableRefObject<Map<PlayPageAnchor, HTMLElement>>;\n currentUser: CurrentUser;\n commonVideoProps: CommonVideoProps;\n}\n\nexport function ClippedFrom(props: ClippedFromProps) {\n const { hasPermissions } = usePermissions();\n const videoActions = useVideoActions({ location: VideoActionsLocation.VideoItem, presentationSlug: null });\n\n return (\n <section\n className='play-page-section'\n id={PlayPageAnchor.ClippedFrom}\n ref={el => {\n (el && props.headingRef?.current) && props.headingRef.current.set(PlayPageAnchor.ClippedFrom, el);\n }}\n >\n <h2 className='h4 mb-0'><Text namespace={namespace} phrase='clippedFrom' /></h2>\n <VideoActionsContext.Provider value={videoActions}>\n <VideoList\n videos={[props.originalVideo]}\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 includeContext: props.currentUser?.isAuthenticated\n }, null)}\n hasPermissions={hasPermissions}\n presentationAudiences={props.audiences}\n getPreviewQuestionsAppLink={interactive => InteractiveHelpers.getPreviewQuestionsAppLink(interactive)}\n commonVideoProps={props.commonVideoProps}\n />\n </VideoActionsContext.Provider>\n </section>\n );\n}\n","@import '~styles/utils/include-media';\n:local {\n .main.expandedToc {\n width: calc(100% - 15rem); //minus sidebar toc width and margin\n }\n\n .main.theatreMode {\n width: 100% !important;\n }\n\n .theatreModeContent {\n display: flex;\n margin: auto !important;\n\n @include media('<=xl') {\n max-width: 100%;\n }\n }\n\n .theatreModePlayPageContainer {\n //override TeacherLayoutComponent container style\n @media (min-width: 1200px) {\n max-width: none !important;\n }\n }\n\n .theatreModeLeftContent {\n width: calc(100% - 15rem);\n @include media('<=lg') {\n width: 100%;\n }\n }\n}","import React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { Breadcrumb, Breadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { VideoDetailsWithScrollbarV2 } from 'libs/shared/components/play-page/details/VideoDetailsV2';\nimport { hasGlanceData } from 'libs/shared/components/play-page/glance/VideoAtAGlanceUtilsV2';\nimport { VideoAtAGlanceV2 } from 'libs/shared/components/play-page/glance/VideoAtAGlanceV2';\nimport { PlayPageResources } from 'libs/shared/components/play-page/resources-widget/PlayPageResources';\nimport { SeoConstants } from 'libs/shared/constants/SeoConstants';\nimport { GlobalPlayerConsumer } from 'libs/shared/context/player-context/components/GlobalPlayerConsumer';\nimport { usePlayerContext } from 'libs/shared/context/player-context/PlayerContext';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ProductId } from 'libs/shared/enums/ProductId';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { HasProductFunc } from 'libs/shared/hooks/UseProducts';\nimport { useTableOfContentsActiveHeading } from 'libs/shared/hooks/useTableOfContentsActiveHeading';\nimport { useTableOfContentsScroll } from 'libs/shared/hooks/useTableOfContentsScroll';\nimport { Clip, CurrentUser, InteractiveMetadata, Link, PointOfInterest, PresentationAudience, Resource } from 'libs/shared/interfaces';\nimport { CommonVideoProps } from 'libs/shared/interfaces/CommonVideoProps';\nimport { PlayPageAnchor } from 'libs/shared/interfaces/PlayPageAnchor';\nimport { PlayViewQueryParams } from 'libs/shared/interfaces/query-params/PlayViewQueryParams';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { CitationWidget } from 'shared/components/citations/CitationWidget';\nimport { ArchivedBanner } from 'shared/components/play-page/ArchivedBanner';\nimport { PlayPageClips } from 'shared/components/play-page/components/play-page-clips/PlayPageClips';\nimport { PlayPageInteractives } from 'shared/components/play-page/components/play-page-interactives/PlayPageInteractives';\nimport { TableOfContentsContainer, TOC_IGNORE_BOUNDARY } from 'shared/components/play-page/components/table-of-contents/TableOfContents';\nimport { PlayPageTitleAndActions } from 'shared/components/play-page/components/title-and-actions/PlayPageTitleAndActions';\nimport { getFolderAppLink, getLibraryAppLink } from 'shared/components/play-page/PlayPageUtils';\nimport { RestrictionBanner } from 'shared/components/play-page/RestrictionBanner';\nimport { PlayerPlaceholder } from 'shared/components/player-placeholder/PlayerPlaceholder';\nimport { RelatedVideos } from 'shared/components/related-videos/RelatedVideos';\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { ViewModelKeys } from 'shared/constants/LiteViewModels';\nimport { useDownloadAllResources } from 'shared/hooks/useDownloadAllResources';\nimport { RelatedVideosHash } from 'shared/hooks/useGetRelatedVideos';\nimport { VideoFeaturesHash } from 'shared/hooks/useVideoFeatureAccess';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\nimport { useResourcePopup } from 'shared/views/play/components/play-page/hooks/useResourcePopup';\nimport { getContentClassName, getIsTheatreMode, getMainClassName } from 'shared/views/play/components/play-page/PlayPageUtils';\nimport { usePlayPageTableOfContent } from 'shared/views/play/hooks/usePlayPageTableOfContent';\nimport { useSectionHeadings } from 'shared/views/play/hooks/useSectionHeadings';\nimport { useTheatreModeStyle } from 'shared/views/play/hooks/useTheatreStyle';\nimport { PlayPageUtils } from 'shared/views/play/PlayPageUtil';\nimport { ClippedFrom } from 'shared/views/play-clip/components/clipped-from/ClippedFrom';\n\nimport styles from './play-clip.module.scss';\n\nconst getResourceAppLink = (videoId: string, shareId: string, canViewResource: boolean) =>\n (resource: Resource | Link) => {\n if (!canViewResource) {\n return {\n application: AppChannels.SIGN_UP,\n action: Actions.SignUp.SIGN_UP\n };\n }\n\n return {\n application: AppChannels.VIDEOS,\n action: Actions.Videos.PREVIEW_PDF,\n args: [resource.id],\n params: {\n videoId: videoId,\n shareId: shareId\n }\n };\n };\n\ninterface PlayClipProps {\n clip: Clip;\n clips: Clip[];\n interactives: InteractiveMetadata[];\n currentUser: CurrentUser;\n relatedVideos: RelatedVideosHash;\n queryParams: PlayViewQueryParams;\n hasProduct: HasProductFunc;\n audiences: PresentationAudience[];\n shareId?: string;\n canManageVideoAccess: boolean;\n pointsOfInterest?: PointOfInterest[];\n featureAccess: VideoFeaturesHash;\n tableOfContentsId: string;\n shouldShowSideTableOfContents: boolean;\n hasTopicDirectories: boolean;\n hasTheatreMode: boolean;\n breadcrumbs?: Breadcrumb[];\n commonVideoProps: CommonVideoProps;\n}\n\nexport function PlayClip(props: PlayClipProps): JSX.Element {\n const playerContext = usePlayerContext();\n\n const { hasPermissions } = usePermissions();\n const onDownloadAllClick = useDownloadAllResources();\n const { canConsume } = VideoHelper.getCanBeConsumed(props.clip);\n \n const theatreMode = getIsTheatreMode(props.hasTheatreMode, playerContext);\n const shouldUseTheareModeStyle = useTheatreModeStyle(\n props.hasTheatreMode,\n playerContext.mode,\n playerContext.defaultDisplayMode\n );\n\n function toggleTheatreMode(value: boolean) {\n playerContext.playerRef?.current?.toggleTheatreMode?.(value);\n }\n\n const {\n tableOfContentsActiveId,\n setTableOfContentsActiveId,\n controlledId,\n setControlledId,\n tableOfContentsExpanded,\n onToggleTableOfContents\n } = usePlayPageTableOfContent(props.tableOfContentsId, props.hasTheatreMode, theatreMode);\n\n const hasGlance = hasGlanceData(props.clip) && props.featureAccess.canViewGlance;\n\n const { headingRef, headingElements } = useSectionHeadings(hasGlance);\n const items = headingElements.map(ele => {\n return {\n id: ele.id as PlayPageAnchor,\n name: PlayPageUtils.getSectionHeading(\n ele.id as PlayPageAnchor,\n {\n clips: props.clips,\n interactives: props.interactives,\n resources: props.clip.resources?.data,\n isPlayClipPage: true\n }\n )\n };\n });\n\n useTableOfContentsActiveHeading({\n setActiveId: setTableOfContentsActiveId,\n headingElements,\n controlledId,\n setControlledId\n });\n\n useTableOfContentsScroll(headingElements, controlledId);\n\n const isArchived = VideoHelper.isVideoTypeArchived(props.clip);\n const hasStudentExperience = hasPermissions(PermissionName.StudentExperience);\n /**\n * Need to use a ref because if we use state, onExitImmersiveReader will have a stale\n * reference of the state. This is because the state is changed in onLaunchImmersiveReader\n * which is passed in at the same time as onExitImmersiveReader\n */\n const shouldPlayOnExitImmersiveReader = React.useRef(false);\n\n const clipResourceAppLink = getResourceAppLink(\n props.clip.id,\n props.shareId,\n props.featureAccess.canViewResourceItems\n );\n\n useResourcePopup({\n resourcePopupId: props.queryParams?.resourceId,\n resources: props.clip.resources?.data,\n getResourceAppLink: clipResourceAppLink\n });\n\n function onLaunchImmersiveReader(): void {\n shouldPlayOnExitImmersiveReader.current = !playerContext?.playerRef?.current?.isPaused();\n playerContext?.playerRef?.current?.pause();\n }\n\n function onExitImmersiveReader(): void {\n if (!shouldPlayOnExitImmersiveReader.current)\n return;\n\n playerContext?.playerRef?.current?.play();\n }\n\n function canAccessOriginal(): boolean {\n if (!props.clip._parentVideo || !props.clip._canBeConsumed?.value)\n return false;\n\n if (!props.currentUser?.isAuthenticated)\n return false;\n\n if (!props.hasProduct(ProductId.Primary))\n return false;\n\n if (hasStudentExperience)\n return false;\n\n return true;\n }\n\n function getOriginalVideoAppLink(): Core.AppLink {\n if (!canAccessOriginal())\n return null;\n \n return {\n application: AppChannels.VIDEOS,\n action: Actions.Videos.PLAY_VIDEO,\n args: [\n null,\n props.clip._parentVideo.id,\n TextHelper.slugify(props.clip._parentVideo.name)\n ]\n };\n }\n\n const showPlayerPlaceholder = playerContext.mode === 'picture-in-picture' || props.featureAccess.canViewPublicLayout;\n\n const otherClips = props.clips?.filter(c => c.id.toString() !== props.clip.id.toString()) ?? [];\n\n const calcClassNameProps = {\n hasTheatreMode: props.hasTheatreMode,\n shouldShowSideTableOfContents: props.shouldShowSideTableOfContents,\n tableOfContentsExpanded,\n theatreMode\n };\n const mainClassName = getMainClassName(calcClassNameProps);\n const contentClassName = getContentClassName(calcClassNameProps);\n\n const [ , setContainerClassName ] = useViewModel(ViewModelKeys.PLAY_PAGE_CONTAINER_CLASS_NAME);\n \n React.useEffect(() => {\n if (!theatreMode) {\n setContainerClassName('');\n } else {\n setContainerClassName(styles.theatreModePlayPageContainer);\n }\n }, [theatreMode]);\n\n React.useEffect(() => {\n return () => setContainerClassName('');\n }, []);\n\n return (\n <div className={`px-4 play-page-sections-container ${props.shouldShowSideTableOfContents ? 'row g-0' : ''}`}>\n <main className={`${styles.main} ${mainClassName}`}>\n {!!props.breadcrumbs?.length && (\n <div className='mb-2'>\n <Breadcrumbs breadcrumbs={props.breadcrumbs} />\n </div>\n )}\n\n <RestrictionBanner\n restrictions={props.clip._restrictions}\n yearGroups={props.commonVideoProps.yearGroups}\n objectId={props.clip.id}\n objectTypeId={MasterType.Clip}\n canManageVideoAccess={props.canManageVideoAccess}\n />\n\n {isArchived && (\n <ArchivedBanner\n typeId={props.clip.typeId}\n hasStudentExperience={hasStudentExperience}\n />\n )}\n\n <section\n id={PlayPageAnchor.Video}\n className={`mb-2 ${SeoConstants.GLOBAL_PLAYER_SELECTOR}`}\n ref={el => { (el && headingRef?.current) && headingRef.current.set(PlayPageAnchor.Video, el); }}\n >\n {canConsume && (\n <GlobalPlayerConsumer\n key={props.clip.id}\n objectId={props.clip.id}\n objectTypeId={props.clip.typeId}\n shareId={props.shareId}\n context={props.queryParams?.context}\n contextId={props.queryParams?.contextId}\n moviesAndTv={props.queryParams?.mtv}\n playNext={props.queryParams?.playNext}\n startTime={props.queryParams?.t ?? props.queryParams?.startTime}\n mode='default'\n location='play-page'\n />\n )}\n\n <div className={showPlayerPlaceholder ? '' : 'd-none'}>\n <PlayerPlaceholder\n video={props.clip}\n type='pip'\n />\n </div>\n </section>\n\n <div className={contentClassName}>\n <div className={shouldUseTheareModeStyle ? `${styles.theatreModeLeftContent}` : 'w-100'}>\n <PlayPageTitleAndActions\n presentationSlug={null}\n media={props.clip}\n yearGroups={props.commonVideoProps.yearGroups}\n audiences={props.audiences}\n originalVideoAppLink={getOriginalVideoAppLink()}\n featureAccess={props.featureAccess}\n shareId={props.shareId}\n showTitlePadlock={!props.commonVideoProps.hasStudentExperience\n && !props.commonVideoProps.hasGuestExperience}\n />\n\n {/* if no glance render video details here */}\n {hasGlance ? (\n <VideoAtAGlanceV2\n video={props.clip}\n pointsOfInterest={props.pointsOfInterest}\n setStartTime={(time: number) => playerContext.playerRef.current?.currentTime(time)}\n getTagAppLink={tag => ({\n application: AppChannels.SEARCH,\n action: Actions.Search.HOME,\n params: { tagOrClassification: tag.name }\n })}\n suppressInteractivity={props.featureAccess.canViewPublicLayout}\n canViewGlance={hasGlance}\n />\n ) : (\n <VideoDetailsWithScrollbarV2\n video={props.clip}\n currentUser={props.currentUser}\n onLaunchImmersiveReader={onLaunchImmersiveReader}\n onExitImmersiveReader={onExitImmersiveReader}\n getTagAppLink={tag => ({\n application: AppChannels.SEARCH,\n action: Actions.Search.HOME,\n params: { tagOrClassification: tag.name }\n })}\n headingRef={headingRef}\n suppressInteractivity={props.featureAccess.canViewPublicLayout}\n getLibraryAppLink={getLibraryAppLink}\n getFolderAppLink={getFolderAppLink}\n />\n )}\n\n <PlayPageResources\n video={props.clip}\n canViewResources={props.featureAccess.canViewResourceItems}\n imageCdnUrl={props.commonVideoProps.imageCdnUrl}\n getAppLink={clipResourceAppLink}\n analyticsData={{ clipId: props.clip.id, clipName: props.clip.name }}\n resourceThumbnailFallbackUrl={ImageUrls.Fallbacks.RESOURCE_THUMBNAIL}\n headingRef={headingRef}\n onDownloadAllClick={onDownloadAllClick}\n />\n\n <PlayPageInteractives\n presentationSlug={null}\n video={props.clip}\n interactives={props.interactives}\n analyticsData={{ clipId: props.clip.id, clipName: props.clip.name }}\n canViewInteractives={props.featureAccess.canViewInteractives}\n headingRef={headingRef}\n commonVideoProps={props.commonVideoProps}\n />\n\n <PlayPageClips\n presentationSlug={null}\n clips={otherClips || []}\n video={props.clip}\n canViewClips={props.featureAccess.canViewClips}\n audiences={props.audiences}\n headingRef={headingRef}\n analyticsData={{ clipId: props.clip.id, clipName: props.clip.name }}\n commonVideoProps={props.commonVideoProps}\n />\n\n {/* if has glance, render video details here */}\n {hasGlance && (\n <VideoDetailsWithScrollbarV2\n video={props.clip}\n currentUser={props.currentUser}\n onLaunchImmersiveReader={onLaunchImmersiveReader}\n onExitImmersiveReader={onExitImmersiveReader}\n getTagAppLink={tag => ({\n application: AppChannels.SEARCH,\n action: Actions.Search.HOME,\n params: { tagOrClassification: tag.name }\n })}\n headingRef={headingRef}\n suppressInteractivity={props.featureAccess.canViewPublicLayout}\n showHeading\n getLibraryAppLink={hasPermissions(PermissionName.ViewLibraries) ? getLibraryAppLink : null}\n getFolderAppLink={hasPermissions(PermissionName.ViewLibraries) ? getFolderAppLink : null}\n />\n )}\n \n {!!canAccessOriginal() && (\n <ClippedFrom\n originalVideo={props.clip._parentVideo}\n shareId={props.shareId}\n queryParams={props.queryParams}\n audiences={props.audiences}\n headingRef={headingRef}\n currentUser={props.currentUser}\n commonVideoProps={props.commonVideoProps}\n />\n )}\n\n {!VideoHelper.isUgc(props.clip._parentVideo) && (\n <CitationWidget\n headingRef={headingRef}\n media={props.clip}\n parentVideo={props.clip._parentVideo}\n contentRegion={props.currentUser.contentRegion}\n shareId={props.shareId}\n presentationSlug={null}\n />\n )}\n\n <RelatedVideos\n presentationSlug={null}\n currentVideo={props.clip}\n relatedVideos={props.relatedVideos}\n currentUser={props.currentUser}\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.shareId,\n moviesAndTv: props.queryParams.mtv,\n includeContext: props.currentUser?.isAuthenticated\n }, null)}\n moviesAndTv={props.queryParams.mtv}\n commonVideoProps={props.commonVideoProps}\n />\n </div>\n {theatreMode && (\n <TableOfContentsContainer\n isExpanded={tableOfContentsExpanded}\n setIsExpanded={onToggleTableOfContents}\n toggleTheatreMode={ null}\n items={items}\n activeId={tableOfContentsActiveId}\n setControlledId={setControlledId}\n analyticsData={{ videoId: props.clip.id, videoName: props.clip.name }}\n showInSide={props.shouldShowSideTableOfContents}\n isTheatreMode={true}\n hasTranscription={props.hasTheatreMode}\n shouldShow={items.length >= TOC_IGNORE_BOUNDARY}\n />\n )}\n </div>\n </main>\n\n {!theatreMode && (\n <TableOfContentsContainer\n isExpanded={tableOfContentsExpanded}\n setIsExpanded={onToggleTableOfContents}\n toggleTheatreMode={props.hasTheatreMode ? toggleTheatreMode : null}\n items={items}\n activeId={tableOfContentsActiveId}\n setControlledId={setControlledId}\n analyticsData={{ videoId: props.clip.id, videoName: props.clip.name }}\n showInSide={props.shouldShowSideTableOfContents}\n isTheatreMode={false}\n hasTranscription={props.hasTheatreMode}\n shouldShow={items.length >= TOC_IGNORE_BOUNDARY}\n />\n )}\n </div>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BBwi4FOJ2.chunk.js","names":[],"sources":["../../src/shared/views/play-clip/components/clipped-from/ClippedFrom.tsx","../../src/shared/views/play-clip/components/play-clip/play-clip.module.scss","../../src/shared/views/play-clip/components/play-clip/PlayClip.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Text } from 'libs/shared/components/text/Text';\nimport { VideoList } from 'libs/shared/components/video-list/VideoList';\nimport { VideoActionsContext } from 'libs/shared/context/VideoActionsContext';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { CurrentUser, PresentationAudience, VideoTypes } from 'libs/shared/interfaces';\nimport { CommonVideoProps } from 'libs/shared/interfaces/CommonVideoProps';\nimport { PlayPageAnchor } from 'libs/shared/interfaces/PlayPageAnchor';\nimport { PlayViewQueryParams } from 'libs/shared/interfaces/query-params/PlayViewQueryParams';\n\nimport { useVideoActions, VideoActionsLocation } from 'shared/hooks/use-video-actions/useVideoActions';\nimport { InteractiveHelpers } from 'shared/utils/InteractiveHelper';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nconst namespace = 'shared.playClip';\n\ninterface ClippedFromProps {\n originalVideo: VideoTypes;\n queryParams: PlayViewQueryParams;\n audiences: PresentationAudience[];\n shareId?: string;\n headingRef: React.MutableRefObject<Map<PlayPageAnchor, HTMLElement>>;\n currentUser: CurrentUser;\n commonVideoProps: CommonVideoProps;\n}\n\nexport function ClippedFrom(props: ClippedFromProps) {\n const { hasPermissions } = usePermissions();\n const videoActions = useVideoActions({ location: VideoActionsLocation.VideoItem, presentationSlug: null });\n\n return (\n <section\n className='play-page-section'\n id={PlayPageAnchor.ClippedFrom}\n ref={el => {\n (el && props.headingRef?.current) && props.headingRef.current.set(PlayPageAnchor.ClippedFrom, el);\n }}\n >\n <h2 className='h4 mb-0'><Text namespace={namespace} phrase='clippedFrom' /></h2>\n <VideoActionsContext.Provider value={videoActions}>\n <VideoList\n videos={[props.originalVideo]}\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 includeContext: props.currentUser?.isAuthenticated\n }, null)}\n hasPermissions={hasPermissions}\n presentationAudiences={props.audiences}\n getPreviewQuestionsAppLink={interactive => InteractiveHelpers.getPreviewQuestionsAppLink(interactive)}\n commonVideoProps={props.commonVideoProps}\n />\n </VideoActionsContext.Provider>\n </section>\n );\n}\n","@import '~styles/utils/include-media';\n:local {\n .main.expandedToc {\n width: calc(100% - 15rem); //minus sidebar toc width and margin\n }\n\n .main.theatreMode {\n width: 100% !important;\n }\n\n .theatreModeContent {\n display: flex;\n margin: auto !important;\n\n @include media('<=xl') {\n max-width: 100%;\n }\n }\n\n .theatreModePlayPageContainer {\n //override TeacherLayoutComponent container style\n @media (min-width: 1200px) {\n max-width: none !important;\n }\n }\n\n .theatreModeLeftContent {\n width: calc(100% - 15rem);\n @include media('<=lg') {\n width: 100%;\n }\n }\n}","import React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { Breadcrumb, Breadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { VideoDetailsWithScrollbarV2 } from 'libs/shared/components/play-page/details/VideoDetailsV2';\nimport { hasGlanceData } from 'libs/shared/components/play-page/glance/VideoAtAGlanceUtilsV2';\nimport { VideoAtAGlanceV2 } from 'libs/shared/components/play-page/glance/VideoAtAGlanceV2';\nimport { PlayPageResources } from 'libs/shared/components/play-page/resources-widget/PlayPageResources';\nimport { SeoConstants } from 'libs/shared/constants/SeoConstants';\nimport { GlobalPlayerConsumer } from 'libs/shared/context/player-context/components/GlobalPlayerConsumer';\nimport { usePlayerContext } from 'libs/shared/context/player-context/PlayerContext';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ProductId } from 'libs/shared/enums/ProductId';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { HasProductFunc } from 'libs/shared/hooks/UseProducts';\nimport { useTableOfContentsActiveHeading } from 'libs/shared/hooks/useTableOfContentsActiveHeading';\nimport { useTableOfContentsScroll } from 'libs/shared/hooks/useTableOfContentsScroll';\nimport { Clip, CurrentUser, InteractiveMetadata, Link, PointOfInterest, PresentationAudience, Resource } from 'libs/shared/interfaces';\nimport { CommonVideoProps } from 'libs/shared/interfaces/CommonVideoProps';\nimport { PlayPageAnchor } from 'libs/shared/interfaces/PlayPageAnchor';\nimport { PlayViewQueryParams } from 'libs/shared/interfaces/query-params/PlayViewQueryParams';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { CitationWidget } from 'shared/components/citations/CitationWidget';\nimport { ArchivedBanner } from 'shared/components/play-page/ArchivedBanner';\nimport { PlayPageClips } from 'shared/components/play-page/components/play-page-clips/PlayPageClips';\nimport { PlayPageInteractives } from 'shared/components/play-page/components/play-page-interactives/PlayPageInteractives';\nimport { TableOfContentsContainer, TOC_IGNORE_BOUNDARY } from 'shared/components/play-page/components/table-of-contents/TableOfContents';\nimport { PlayPageTitleAndActions } from 'shared/components/play-page/components/title-and-actions/PlayPageTitleAndActions';\nimport { getFolderAppLink, getLibraryAppLink } from 'shared/components/play-page/PlayPageUtils';\nimport { RestrictionBanner } from 'shared/components/play-page/RestrictionBanner';\nimport { PlayerPlaceholder } from 'shared/components/player-placeholder/PlayerPlaceholder';\nimport { RelatedVideos } from 'shared/components/related-videos/RelatedVideos';\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { ViewModelKeys } from 'shared/constants/LiteViewModels';\nimport { useDownloadAllResources } from 'shared/hooks/useDownloadAllResources';\nimport { RelatedVideosHash } from 'shared/hooks/useGetRelatedVideos';\nimport { VideoFeaturesHash } from 'shared/hooks/useVideoFeatureAccess';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\nimport { useResourcePopup } from 'shared/views/play/components/play-page/hooks/useResourcePopup';\nimport { getContentClassName, getIsTheatreMode, getMainClassName } from 'shared/views/play/components/play-page/PlayPageUtils';\nimport { usePlayPageTableOfContent } from 'shared/views/play/hooks/usePlayPageTableOfContent';\nimport { useSectionHeadings } from 'shared/views/play/hooks/useSectionHeadings';\nimport { useTheatreModeStyle } from 'shared/views/play/hooks/useTheatreStyle';\nimport { PlayPageUtils } from 'shared/views/play/PlayPageUtil';\nimport { ClippedFrom } from 'shared/views/play-clip/components/clipped-from/ClippedFrom';\n\nimport styles from './play-clip.module.scss';\n\nconst getResourceAppLink = (videoId: string, shareId: string, canViewResource: boolean) =>\n (resource: Resource | Link) => {\n if (!canViewResource) {\n return {\n application: AppChannels.SIGN_UP,\n action: Actions.SignUp.SIGN_UP\n };\n }\n\n return {\n application: AppChannels.VIDEOS,\n action: Actions.Videos.PREVIEW_PDF,\n args: [resource.id],\n params: {\n videoId: videoId,\n shareId: shareId\n }\n };\n };\n\ninterface PlayClipProps {\n clip: Clip;\n clips: Clip[];\n interactives: InteractiveMetadata[];\n currentUser: CurrentUser;\n relatedVideos: RelatedVideosHash;\n queryParams: PlayViewQueryParams;\n hasProduct: HasProductFunc;\n audiences: PresentationAudience[];\n shareId?: string;\n canManageVideoAccess: boolean;\n pointsOfInterest?: PointOfInterest[];\n featureAccess: VideoFeaturesHash;\n tableOfContentsId: string;\n shouldShowSideTableOfContents: boolean;\n hasTopicDirectories: boolean;\n hasTheatreMode: boolean;\n breadcrumbs?: Breadcrumb[];\n commonVideoProps: CommonVideoProps;\n}\n\nexport function PlayClip(props: PlayClipProps): JSX.Element {\n const playerContext = usePlayerContext();\n\n const { hasPermissions } = usePermissions();\n const onDownloadAllClick = useDownloadAllResources();\n const { canConsume } = VideoHelper.getCanBeConsumed(props.clip);\n \n const theatreMode = getIsTheatreMode(props.hasTheatreMode, playerContext);\n const shouldUseTheareModeStyle = useTheatreModeStyle(\n props.hasTheatreMode,\n playerContext.mode,\n playerContext.defaultDisplayMode\n );\n\n function toggleTheatreMode(value: boolean) {\n playerContext.playerRef?.current?.toggleTheatreMode?.(value);\n }\n\n const {\n tableOfContentsActiveId,\n setTableOfContentsActiveId,\n controlledId,\n setControlledId,\n tableOfContentsExpanded,\n onToggleTableOfContents\n } = usePlayPageTableOfContent(props.tableOfContentsId, props.hasTheatreMode, theatreMode);\n\n const hasGlance = hasGlanceData(props.clip) && props.featureAccess.canViewGlance;\n\n const { headingRef, headingElements } = useSectionHeadings(hasGlance);\n const items = headingElements.map(ele => {\n return {\n id: ele.id as PlayPageAnchor,\n name: PlayPageUtils.getSectionHeading(\n ele.id as PlayPageAnchor,\n {\n clips: props.clips,\n interactives: props.interactives,\n resources: props.clip.resources?.data,\n isPlayClipPage: true\n }\n )\n };\n });\n\n useTableOfContentsActiveHeading({\n setActiveId: setTableOfContentsActiveId,\n headingElements,\n controlledId,\n setControlledId\n });\n\n useTableOfContentsScroll(headingElements, controlledId);\n\n const isArchived = VideoHelper.isVideoTypeArchived(props.clip);\n const hasStudentExperience = hasPermissions(PermissionName.StudentExperience);\n /**\n * Need to use a ref because if we use state, onExitImmersiveReader will have a stale\n * reference of the state. This is because the state is changed in onLaunchImmersiveReader\n * which is passed in at the same time as onExitImmersiveReader\n */\n const shouldPlayOnExitImmersiveReader = React.useRef(false);\n\n const clipResourceAppLink = getResourceAppLink(\n props.clip.id,\n props.shareId,\n props.featureAccess.canViewResourceItems\n );\n\n useResourcePopup({\n resourcePopupId: props.queryParams?.resourceId,\n resources: props.clip.resources?.data,\n getResourceAppLink: clipResourceAppLink\n });\n\n function onLaunchImmersiveReader(): void {\n shouldPlayOnExitImmersiveReader.current = !playerContext?.playerRef?.current?.isPaused();\n playerContext?.playerRef?.current?.pause();\n }\n\n function onExitImmersiveReader(): void {\n if (!shouldPlayOnExitImmersiveReader.current)\n return;\n\n playerContext?.playerRef?.current?.play();\n }\n\n function canAccessOriginal(): boolean {\n if (!props.clip._parentVideo || !props.clip._canBeConsumed?.value)\n return false;\n\n if (!props.currentUser?.isAuthenticated)\n return false;\n\n if (!props.hasProduct(ProductId.Primary))\n return false;\n\n if (hasStudentExperience)\n return false;\n\n return true;\n }\n\n function getOriginalVideoAppLink(): Core.AppLink {\n if (!canAccessOriginal())\n return null;\n \n return {\n application: AppChannels.VIDEOS,\n action: Actions.Videos.PLAY_VIDEO,\n args: [\n null,\n props.clip._parentVideo.id,\n TextHelper.slugify(props.clip._parentVideo.name)\n ]\n };\n }\n\n const showPlayerPlaceholder = playerContext.mode === 'picture-in-picture' || props.featureAccess.canViewPublicLayout;\n\n const otherClips = props.clips?.filter(c => c.id.toString() !== props.clip.id.toString()) ?? [];\n\n const calcClassNameProps = {\n hasTheatreMode: props.hasTheatreMode,\n shouldShowSideTableOfContents: props.shouldShowSideTableOfContents,\n tableOfContentsExpanded,\n theatreMode\n };\n const mainClassName = getMainClassName(calcClassNameProps);\n const contentClassName = getContentClassName(calcClassNameProps);\n\n const [ , setContainerClassName ] = useViewModel(ViewModelKeys.PLAY_PAGE_CONTAINER_CLASS_NAME);\n \n React.useEffect(() => {\n if (!theatreMode) {\n setContainerClassName('');\n } else {\n setContainerClassName(styles.theatreModePlayPageContainer);\n }\n }, [theatreMode]);\n\n React.useEffect(() => {\n return () => setContainerClassName('');\n }, []);\n\n return (\n <div className={`px-4 play-page-sections-container ${props.shouldShowSideTableOfContents ? 'row g-0' : ''}`}>\n <main className={`${styles.main} ${mainClassName}`}>\n {!!props.breadcrumbs?.length && (\n <div className='mb-2'>\n <Breadcrumbs breadcrumbs={props.breadcrumbs} />\n </div>\n )}\n\n <RestrictionBanner\n restrictions={props.clip._restrictions}\n yearGroups={props.commonVideoProps.yearGroups}\n objectId={props.clip.id}\n objectTypeId={MasterType.Clip}\n canManageVideoAccess={props.canManageVideoAccess}\n />\n\n {isArchived && (\n <ArchivedBanner\n typeId={props.clip.typeId}\n hasStudentExperience={hasStudentExperience}\n />\n )}\n\n <section\n id={PlayPageAnchor.Video}\n className={`mb-2 ${SeoConstants.GLOBAL_PLAYER_SELECTOR}`}\n ref={el => { (el && headingRef?.current) && headingRef.current.set(PlayPageAnchor.Video, el); }}\n >\n {canConsume && (\n <GlobalPlayerConsumer\n key={props.clip.id}\n objectId={props.clip.id}\n objectTypeId={props.clip.typeId}\n shareId={props.shareId}\n context={props.queryParams?.context}\n contextId={props.queryParams?.contextId}\n moviesAndTv={props.queryParams?.mtv}\n playNext={props.queryParams?.playNext}\n startTime={props.queryParams?.t ?? props.queryParams?.startTime}\n mode='default'\n location='play-page'\n />\n )}\n\n <div className={showPlayerPlaceholder ? '' : 'd-none'}>\n <PlayerPlaceholder\n video={props.clip}\n type='pip'\n />\n </div>\n </section>\n\n <div className={contentClassName}>\n <div className={shouldUseTheareModeStyle ? `${styles.theatreModeLeftContent}` : 'w-100'}>\n <PlayPageTitleAndActions\n presentationSlug={null}\n media={props.clip}\n yearGroups={props.commonVideoProps.yearGroups}\n audiences={props.audiences}\n originalVideoAppLink={getOriginalVideoAppLink()}\n featureAccess={props.featureAccess}\n shareId={props.shareId}\n showTitlePadlock={!props.commonVideoProps.hasStudentExperience\n && !props.commonVideoProps.hasGuestExperience}\n />\n\n {/* if no glance render video details here */}\n {hasGlance ? (\n <VideoAtAGlanceV2\n video={props.clip}\n pointsOfInterest={props.pointsOfInterest}\n setStartTime={(time: number) => playerContext.playerRef.current?.currentTime(time)}\n getTagAppLink={tag => ({\n application: AppChannels.SEARCH,\n action: Actions.Search.HOME,\n params: { tagOrClassification: tag.name }\n })}\n suppressInteractivity={props.featureAccess.canViewPublicLayout}\n canViewGlance={hasGlance}\n />\n ) : (\n <VideoDetailsWithScrollbarV2\n video={props.clip}\n currentUser={props.currentUser}\n onLaunchImmersiveReader={onLaunchImmersiveReader}\n onExitImmersiveReader={onExitImmersiveReader}\n getTagAppLink={tag => ({\n application: AppChannels.SEARCH,\n action: Actions.Search.HOME,\n params: { tagOrClassification: tag.name }\n })}\n headingRef={headingRef}\n suppressInteractivity={props.featureAccess.canViewPublicLayout}\n getLibraryAppLink={getLibraryAppLink}\n getFolderAppLink={getFolderAppLink}\n />\n )}\n\n <PlayPageResources\n video={props.clip}\n canViewResources={props.featureAccess.canViewResourceItems}\n imageCdnUrl={props.commonVideoProps.imageCdnUrl}\n getAppLink={clipResourceAppLink}\n analyticsData={{ clipId: props.clip.id, clipName: props.clip.name }}\n resourceThumbnailFallbackUrl={ImageUrls.Fallbacks.RESOURCE_THUMBNAIL}\n headingRef={headingRef}\n onDownloadAllClick={onDownloadAllClick}\n />\n\n <PlayPageInteractives\n presentationSlug={null}\n video={props.clip}\n interactives={props.interactives}\n analyticsData={{ clipId: props.clip.id, clipName: props.clip.name }}\n canViewInteractives={props.featureAccess.canViewInteractives}\n headingRef={headingRef}\n commonVideoProps={props.commonVideoProps}\n />\n\n <PlayPageClips\n presentationSlug={null}\n clips={otherClips || []}\n video={props.clip}\n canViewClips={props.featureAccess.canViewClips}\n audiences={props.audiences}\n headingRef={headingRef}\n analyticsData={{ clipId: props.clip.id, clipName: props.clip.name }}\n commonVideoProps={props.commonVideoProps}\n />\n\n {/* if has glance, render video details here */}\n {hasGlance && (\n <VideoDetailsWithScrollbarV2\n video={props.clip}\n currentUser={props.currentUser}\n onLaunchImmersiveReader={onLaunchImmersiveReader}\n onExitImmersiveReader={onExitImmersiveReader}\n getTagAppLink={tag => ({\n application: AppChannels.SEARCH,\n action: Actions.Search.HOME,\n params: { tagOrClassification: tag.name }\n })}\n headingRef={headingRef}\n suppressInteractivity={props.featureAccess.canViewPublicLayout}\n showHeading\n getLibraryAppLink={hasPermissions(PermissionName.ViewLibraries) ? getLibraryAppLink : null}\n getFolderAppLink={hasPermissions(PermissionName.ViewLibraries) ? getFolderAppLink : null}\n />\n )}\n \n {!!canAccessOriginal() && (\n <ClippedFrom\n originalVideo={props.clip._parentVideo}\n shareId={props.shareId}\n queryParams={props.queryParams}\n audiences={props.audiences}\n headingRef={headingRef}\n currentUser={props.currentUser}\n commonVideoProps={props.commonVideoProps}\n />\n )}\n\n {!VideoHelper.isUgc(props.clip._parentVideo) && (\n <CitationWidget\n headingRef={headingRef}\n media={props.clip}\n parentVideo={props.clip._parentVideo}\n contentRegion={props.currentUser.contentRegion}\n shareId={props.shareId}\n presentationSlug={null}\n />\n )}\n\n <RelatedVideos\n presentationSlug={null}\n currentVideo={props.clip}\n relatedVideos={props.relatedVideos}\n currentUser={props.currentUser}\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.shareId,\n moviesAndTv: props.queryParams.mtv,\n includeContext: props.currentUser?.isAuthenticated\n }, null)}\n moviesAndTv={props.queryParams.mtv}\n commonVideoProps={props.commonVideoProps}\n />\n </div>\n {theatreMode && (\n <TableOfContentsContainer\n isExpanded={tableOfContentsExpanded}\n setIsExpanded={onToggleTableOfContents}\n toggleTheatreMode={ null}\n items={items}\n activeId={tableOfContentsActiveId}\n setControlledId={setControlledId}\n analyticsData={{ videoId: props.clip.id, videoName: props.clip.name }}\n showInSide={props.shouldShowSideTableOfContents}\n isTheatreMode={true}\n hasTranscription={props.hasTheatreMode}\n shouldShow={items.length >= TOC_IGNORE_BOUNDARY}\n />\n )}\n </div>\n </main>\n\n {!theatreMode && (\n <TableOfContentsContainer\n isExpanded={tableOfContentsExpanded}\n setIsExpanded={onToggleTableOfContents}\n toggleTheatreMode={props.hasTheatreMode ? toggleTheatreMode : null}\n items={items}\n activeId={tableOfContentsActiveId}\n setControlledId={setControlledId}\n analyticsData={{ videoId: props.clip.id, videoName: props.clip.name }}\n showInSide={props.shouldShowSideTableOfContents}\n isTheatreMode={false}\n hasTranscription={props.hasTheatreMode}\n shouldShow={items.length >= TOC_IGNORE_BOUNDARY}\n />\n )}\n </div>\n );\n}\n"],"mappings":"szCAeM,EAAY,kBAYlB,SAAgB,GAAY,EAAyB,CACnD,GAAM,CAAE,kBAAmB,EAAe,EACpC,EAAe,EAAgB,CAAE,SAAU,EAAqB,UAAW,iBAAkB,IAAK,CAAC,EAEzG,OACE,EAAA,EAAA,KAAA,CAAC,UAAD,CACE,UAAU,oBACV,GAAI,EAAe,YACnB,IAAK,GAAM,CACT,GAAO,EAAM,YAAY,SAAY,EAAM,WAAW,QAAQ,IAAI,EAAe,YAAa,CAAE,CAClG,WALF,EAOE,EAAA,EAAA,IAAA,CAAC,KAAD,CAAI,UAAU,oBAAU,EAAA,EAAA,IAAA,CAAC,EAAD,CAAiB,YAAW,OAAO,aAAe,CAAA,CAAK,CAAA,GAC/E,EAAA,EAAA,IAAA,CAAC,EAAoB,SAArB,CAA8B,MAAO,YACnC,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,OAAQ,CAAC,EAAM,aAAa,EAC5B,iBAAkB,EAAG,IAAS,EAAmB,WAAW,EAAG,CAC7D,GAAG,EACH,QAAS,EAAM,YAAY,QAC3B,UAAW,EAAM,YAAY,UAC7B,SAAU,EAAM,YAAY,SAC5B,QAAS,EAAM,QACf,YAAa,EAAM,YAAY,IAC/B,eAAgB,EAAM,aAAa,eACrC,EAAG,IAAI,EACS,iBAChB,sBAAuB,EAAM,UAC7B,2BAA4B,GAAe,EAAmB,2BAA2B,CAAW,EACpG,iBAAkB,EAAM,gBACzB,CAAA,CAC2B,CAAA,CACvB,GAEb,qRELM,IAAsB,EAAiB,EAAiB,IAC3D,GACM,EAOE,CACL,YAAa,EAAY,OACzB,OAAQ,EAAQ,OAAO,YACvB,KAAM,CAAC,EAAS,EAAE,EAClB,OAAQ,CACG,UACA,SACX,CACF,EAdS,CACL,YAAa,EAAY,QACzB,OAAQ,EAAQ,OAAO,OACzB,EAmCN,SAAgB,EAAS,EAAmC,CAC1D,IAAM,EAAgB,EAAiB,EAEjC,CAAE,kBAAmB,EAAe,EACpC,EAAqB,EAAwB,EAC7C,CAAE,cAAe,EAAY,iBAAiB,EAAM,IAAI,EAExD,EAAc,GAAiB,EAAM,eAAgB,CAAa,EAClE,EAA2B,GAC/B,EAAM,eACN,EAAc,KACd,EAAc,kBAChB,EAEA,SAAS,EAAkB,EAAgB,CACzC,EAAc,WAAW,SAAS,oBAAoB,CAAK,CAC7D,CAEA,GAAM,CACJ,0BACA,6BACA,eACA,kBACA,0BACA,2BACE,GAA0B,EAAM,kBAAmB,EAAM,eAAgB,CAAW,EAElF,EAAY,GAAc,EAAM,IAAI,GAAK,EAAM,cAAc,cAE7D,CAAE,aAAY,mBAAoB,EAAmB,CAAS,EAC9D,EAAQ,EAAgB,IAAI,IACzB,CACL,GAAI,EAAI,GACR,KAAM,EAAc,kBAClB,EAAI,GACJ,CACE,MAAO,EAAM,MACb,aAAc,EAAM,aACpB,UAAW,EAAM,KAAK,WAAW,KACjC,eAAgB,EAClB,CACF,CACF,EACD,EAED,EAAgC,CAC9B,YAAa,EACb,kBACA,eACA,iBACF,CAAC,EAED,EAAyB,EAAiB,CAAY,EAEtD,IAAM,GAAa,EAAY,oBAAoB,EAAM,IAAI,EACvD,EAAuB,EAAe,EAAe,iBAAiB,EAMtE,EAAA,EAAwC,OAAO,EAAK,EAEpD,EAAsB,GAC1B,EAAM,KAAK,GACX,EAAM,QACN,EAAM,cAAc,oBACtB,EAEA,GAAiB,CACf,gBAAiB,EAAM,aAAa,WACpC,UAAW,EAAM,KAAK,WAAW,KACjC,mBAAoB,CACtB,CAAC,EAED,SAAS,GAAgC,CACvC,EAAgC,QAAU,CAAC,GAAe,WAAW,SAAS,SAAS,EACvF,GAAe,WAAW,SAAS,MAAM,CAC3C,CAEA,SAAS,GAA8B,CAChC,EAAgC,SAGrC,GAAe,WAAW,SAAS,KAAK,CAC1C,CAEA,SAAS,GAA6B,CAapC,MAHA,EATI,CAAC,EAAM,KAAK,cAAgB,CAAC,EAAM,KAAK,gBAAgB,OAGxD,CAAC,EAAM,aAAa,iBAGpB,CAAC,EAAM,WAAW,GAAU,OAAO,GAGnC,EAIN,CAEA,SAAS,IAAwC,CAI/C,OAHK,EAAkB,EAGhB,CACL,YAAa,EAAY,OACzB,OAAQ,EAAQ,OAAO,WACvB,KAAM,CACJ,KACA,EAAM,KAAK,aAAa,GACxB,EAAW,QAAQ,EAAM,KAAK,aAAa,IAAI,CACjD,CACF,EAVS,IAWX,CAEA,IAAM,GAAwB,EAAc,OAAS,sBAAwB,EAAM,cAAc,oBAE3F,GAAa,EAAM,OAAO,OAAO,GAAK,EAAE,GAAG,SAAS,IAAM,EAAM,KAAK,GAAG,SAAS,CAAC,GAAK,CAAC,EAExF,EAAqB,CACzB,eAAgB,EAAM,eACtB,8BAA+B,EAAM,8BACrC,0BACA,aACF,EACM,EAAgB,EAAiB,CAAkB,EACnD,GAAmB,GAAoB,CAAkB,EAEzD,EAAI,GAA0B,GAAa,GAAc,8BAA8B,EAc7F,OAZA,EAAM,cAAgB,CAIlB,EAHG,EAGmB,EAAO,6BAFP,EAEmC,CAE7D,EAAG,CAAC,CAAW,CAAC,EAEhB,EAAM,kBACS,EAAsB,EAAE,EACpC,CAAC,CAAC,GAGH,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAW,qCAAqC,EAAM,8BAAgC,UAAY,cAAvG,EACE,EAAA,EAAA,KAAA,CAAC,OAAD,CAAM,UAAW,GAAG,EAAO,KAAK,GAAG,aAAnC,CACG,CAAC,CAAC,EAAM,aAAa,SACpB,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,iBACb,EAAA,EAAA,IAAA,CAAC,EAAD,CAAa,YAAa,EAAM,WAAc,CAAA,CAC3C,CAAA,GAGP,EAAA,EAAA,IAAA,CAAC,GAAD,CACE,aAAc,EAAM,KAAK,cACzB,WAAY,EAAM,iBAAiB,WACnC,SAAU,EAAM,KAAK,GACrB,aAAc,EAAW,KACzB,qBAAsB,EAAM,oBAC7B,CAAA,EAEA,KACC,EAAA,EAAA,IAAA,CAAC,GAAD,CACE,OAAQ,EAAM,KAAK,OACG,sBACvB,CAAA,GAGH,EAAA,EAAA,KAAA,CAAC,UAAD,CACE,GAAI,EAAe,MACnB,UAAW,QAAQ,GAAa,yBAChC,IAAK,GAAM,CAAE,GAAO,GAAY,SAAY,EAAW,QAAQ,IAAI,EAAe,MAAO,CAAE,CAAG,WAHhG,CAKG,IACC,EAAA,EAAA,IAAA,CAAC,EAAD,CAEE,SAAU,EAAM,KAAK,GACrB,aAAc,EAAM,KAAK,OACzB,QAAS,EAAM,QACf,QAAS,EAAM,aAAa,QAC5B,UAAW,EAAM,aAAa,UAC9B,YAAa,EAAM,aAAa,IAChC,SAAU,EAAM,aAAa,SAC7B,UAAW,EAAM,aAAa,GAAK,EAAM,aAAa,UACtD,KAAK,UACL,SAAS,WACV,EAXM,EAAM,KAAK,EAWjB,GAGH,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAW,GAAwB,GAAK,mBAC3C,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,MAAO,EAAM,KACb,KAAK,KACN,CAAA,CACE,CAAA,CACE,KAET,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAW,YAAhB,EACE,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAW,EAA2B,GAAG,EAAO,yBAA2B,iBAAhF,EACE,EAAA,EAAA,IAAA,CAAC,GAAD,CACE,iBAAkB,KAClB,MAAO,EAAM,KACb,WAAY,EAAM,iBAAiB,WACnC,UAAW,EAAM,UACjB,qBAAsB,GAAwB,EAC9C,cAAe,EAAM,cACrB,QAAS,EAAM,QACf,iBAAkB,CAAC,EAAM,iBAAiB,sBACrC,CAAC,EAAM,iBAAiB,kBAC9B,CAAA,EAGA,GACC,EAAA,EAAA,IAAA,CAAC,GAAD,CACE,MAAO,EAAM,KACb,iBAAkB,EAAM,iBACxB,aAAe,GAAiB,EAAc,UAAU,SAAS,YAAY,CAAI,EACjF,cAAe,IAAQ,CACrB,YAAa,EAAY,OACzB,OAAQ,EAAQ,OAAO,KACvB,OAAQ,CAAE,oBAAqB,EAAI,IAAK,CAC1C,GACA,sBAAuB,EAAM,cAAc,oBAC3C,cAAe,CAChB,CAAA,GAED,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,MAAO,EAAM,KACb,YAAa,EAAM,YACM,0BACF,wBACvB,cAAe,IAAQ,CACrB,YAAa,EAAY,OACzB,OAAQ,EAAQ,OAAO,KACvB,OAAQ,CAAE,oBAAqB,EAAI,IAAK,CAC1C,GACY,aACZ,sBAAuB,EAAM,cAAc,oBACxB,oBACD,kBACnB,CAAA,GAGH,EAAA,EAAA,IAAA,CAAC,GAAD,CACE,MAAO,EAAM,KACb,iBAAkB,EAAM,cAAc,qBACtC,YAAa,EAAM,iBAAiB,YACpC,WAAY,EACZ,cAAe,CAAE,OAAQ,EAAM,KAAK,GAAI,SAAU,EAAM,KAAK,IAAK,EAClE,6BAA8B,GAAU,UAAU,mBACtC,aACQ,oBACrB,CAAA,GAED,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,iBAAkB,KAClB,MAAO,EAAM,KACb,aAAc,EAAM,aACpB,cAAe,CAAE,OAAQ,EAAM,KAAK,GAAI,SAAU,EAAM,KAAK,IAAK,EAClE,oBAAqB,EAAM,cAAc,oBAC7B,aACZ,iBAAkB,EAAM,gBACzB,CAAA,GAED,EAAA,EAAA,IAAA,CAAC,GAAD,CACE,iBAAkB,KAClB,MAAO,IAAc,CAAC,EACtB,MAAO,EAAM,KACb,aAAc,EAAM,cAAc,aAClC,UAAW,EAAM,UACL,aACZ,cAAe,CAAE,OAAQ,EAAM,KAAK,GAAI,SAAU,EAAM,KAAK,IAAK,EAClE,iBAAkB,EAAM,gBACzB,CAAA,EAGA,IACC,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,MAAO,EAAM,KACb,YAAa,EAAM,YACM,0BACF,wBACvB,cAAe,IAAQ,CACrB,YAAa,EAAY,OACzB,OAAQ,EAAQ,OAAO,KACvB,OAAQ,CAAE,oBAAqB,EAAI,IAAK,CAC1C,GACY,aACZ,sBAAuB,EAAM,cAAc,oBAC3C,YAAA,GACA,kBAAmB,EAAe,EAAe,aAAa,EAAI,EAAoB,KACtF,iBAAkB,EAAe,EAAe,aAAa,EAAI,EAAmB,IACrF,CAAA,EAGF,CAAC,CAAC,EAAkB,IACnB,EAAA,EAAA,IAAA,CAAC,GAAD,CACE,cAAe,EAAM,KAAK,aAC1B,QAAS,EAAM,QACf,YAAa,EAAM,YACnB,UAAW,EAAM,UACL,aACZ,YAAa,EAAM,YACnB,iBAAkB,EAAM,gBACzB,CAAA,EAGF,CAAC,EAAY,MAAM,EAAM,KAAK,YAAY,IACzC,EAAA,EAAA,IAAA,CAAC,GAAD,CACc,aACZ,MAAO,EAAM,KACb,YAAa,EAAM,KAAK,aACxB,cAAe,EAAM,YAAY,cACjC,QAAS,EAAM,QACf,iBAAkB,IACnB,CAAA,GAGH,EAAA,EAAA,IAAA,CAAC,GAAD,CACE,iBAAkB,KAClB,aAAc,EAAM,KACpB,cAAe,EAAM,cACrB,YAAa,EAAM,YACnB,UAAW,EAAM,UACjB,iBAAkB,EAAG,IAAS,EAAmB,WAAW,EAAG,CAC7D,GAAG,EACH,QAAS,EAAM,YAAY,QAC3B,UAAW,EAAM,YAAY,UAC7B,SAAU,EAAM,YAAY,SAC5B,QAAS,EAAM,QACf,YAAa,EAAM,YAAY,IAC/B,eAAgB,EAAM,aAAa,eACrC,EAAG,IAAI,EACP,YAAa,EAAM,YAAY,IAC/B,iBAAkB,EAAM,gBACzB,CAAA,CACE,IACJ,IACC,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,WAAY,EACZ,cAAe,EACf,kBAAoB,KACb,QACP,SAAU,EACO,kBACjB,cAAe,CAAE,QAAS,EAAM,KAAK,GAAI,UAAW,EAAM,KAAK,IAAK,EACpE,WAAY,EAAM,8BAClB,cAAe,GACf,iBAAkB,EAAM,eACxB,WAAY,EAAM,QAAA,CACnB,CAAA,CAEA,GACD,IAEL,CAAC,IACA,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,WAAY,EACZ,cAAe,EACf,kBAAmB,EAAM,eAAiB,EAAoB,KACvD,QACP,SAAU,EACO,kBACjB,cAAe,CAAE,QAAS,EAAM,KAAK,GAAI,UAAW,EAAM,KAAK,IAAK,EACpE,WAAY,EAAM,8BAClB,cAAe,GACf,iBAAkB,EAAM,eACxB,WAAY,EAAM,QAAA,CACnB,CAAA,CAEA,GAET"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{o as e}from"./DAXXjFlN.chunk.js";import{t}from"./D8uRDrkd.chunk.js";import{u as n,y as r}from"./BftnFbcr.chunk.js";import{n as i}from"./B785hxeE.chunk.js";import{t as a}from"./CQyJ7YGa.chunk.js";import{t as o}from"./e57H3T-k.chunk.js";import{t as s}from"./C2w0pmFW.chunk.js";import{t as c}from"./wrLrTezN.chunk.js";import{t as l}from"./BXTI9cmX.chunk.js";import{i as u}from"./BYSskNbK.chunk.js";import{C as d,u as f}from"./BX0wDJmp.chunk.js";import{n as p}from"./BVnMI-dl.chunk.js";import{t as m}from"./C1SLt-ar.chunk.js";import{l as h,y as g}from"./NlCAcBdo.chunk.js";import{n as _,r as v}from"./CAs8k4pN.chunk.js";import{t as y}from"./RjGIOTdP.chunk.js";import{t as b}from"./DTGfiG8Y.chunk.js";import{t as x}from"./BxbRBSiP.chunk.js";import{i as S,n as C,t as w}from"./Cr6TXzQQ2.chunk.js";import{t as T}from"./oPIkfKWW2.chunk.js";import{n as E}from"./CmcCVXi32.chunk.js";import{t as D}from"./CcDvlSWl2.chunk.js";import{t as O}from"./DZX1tZ-D2.chunk.js";import{t as ee}from"./xwiwWcv12.chunk.js";import{n as k}from"./7e14a3uA2.chunk.js";import{t as A}from"./DdsRCMkN.chunk.js";import{t as te}from"./Kx-r9MXT.chunk.js";import{t as j}from"./D_gWf2lC.chunk.js";import{t as M}from"./ZwDDc8Zd.chunk.js";import{t as N}from"./M97_Ztsu.chunk.js";import{t as P}from"./PgzMrOyM.chunk.js";import{t as ne}from"./C5rBgkQH.chunk.js";import{t as re}from"./B0aLOQEJ2.chunk.js";import{t as ie}from"./B7fTfFj62.chunk.js";import{t as ae}from"./FbPIRcRM2.chunk.js";import{t as oe}from"./QCFxJYkI2.chunk.js";import{n as se,t as ce}from"./D9a0OIfi2.chunk.js";import{t as le}from"./Ci5E3nqm2.chunk.js";import{t as F}from"./Vp01-r6R.chunk.js";import{n as ue,t as de}from"./A8xLZrSw.chunk.js";import{t as I}from"./BQKcAczf.chunk.js";import{t as L}from"./D3WOV5RE.chunk.js";import{t as fe}from"./CpP_XziV2.chunk.js";import{t as pe}from"./DuIIaGgk2.chunk.js";import{n as R,t as z}from"./CpFtf-tI2.chunk.js";import{t as B}from"./DW51cSV_2.chunk.js";import{t as me}from"./Delmxf6C.chunk.js";import{t as he}from"./9PCtVxot.chunk.js";import{a as ge,r as V,t as H}from"./CE2wLoIp.chunk.js";import{t as U}from"./BwelEZs92.chunk.js";import{n as W,r as G}from"./BcibGFe42.chunk.js";import{t as _e}from"./DW24qN_e2.chunk.js";import{t as ve}from"./BxYKQEUG2.chunk.js";import{t as ye}from"./5ONJSThP.chunk.js";import{t as K}from"./DOnmTMfX.chunk.js";import{t as be}from"./QOx-iXyN2.chunk.js";import{t as xe}from"./WvK58Ge12.chunk.js";import{t as Se}from"./DsbcGrr42.chunk.js";import{t as Ce}from"./BD_YlxPJ.chunk.js";import"./C2s0ZcC4.chunk.js";import{t as we}from"./DMZ_X3HL.chunk.js";import"./CETzluXN.chunk.js";import{t as Te}from"./NVkf8UeY.chunk.js";import{t as Ee}from"./CS5EZKt22.chunk.js";import{t as De}from"./Nw0EY4wG2.chunk.js";import{r as Oe,t as ke}from"./DhGA1di32.chunk.js";import{t as Ae}from"./CjpFTgAf2.chunk.js";import{n as je,t as Me}from"./Bg8TUhzW2.chunk.js";import{t as Ne}from"./BmR4qY-v2.chunk.js";import{o as Pe}from"./YcLj4o6h.chunk.js";import{n as Fe,t as Ie}from"./DWeyYfUG.chunk.js";import{t as Le}from"./B1ag1ah72.chunk.js";import{t as Re}from"./DMIDfHRi2.chunk.js";import{n as ze}from"./BIO-5Tfr2.chunk.js";import{t as Be}from"./oOZaqxlZ.chunk.js";import{t as Ve}from"./BLKgsTNL.chunk.js";var q=e(s()),J=c(),He=a.encloseNamespace(`search.searchWidgetTooltip`);function Ue(e,t){return{[S.SearchRelevantTopics]:`relevantTopicsTooltip`,[S.SearchCompanies]:`studiosAndChannelsTooltip`,[S.SearchTopResults]:`topResultsTooltip`,[S.SearchSeries]:`seriesTooltip`,[S.SearchPlaylists]:`playlistsTooltip`,[S.SearchMyVideosFolder]:`myVideosFoldersTooltip`,[S.SearchMySchoolLibraryFolder]:t?`mySchoolFoldersTooltipTertiary`:`mySchoolFoldersTooltip`,[S.SearchMyVideos]:`myVideosTooltip`,[S.SearchMySchoolLibraryVideos]:t?`mySchoolVideosTooltipTertiary`:`mySchoolVideosTooltip`,[S.SearchExchangeArchive]:`exchangeArchiveTooltip`,[S.SearchClickViewLive]:`clickViewLiveTooltip`,[S.SearchRelatedResults]:`relatedResultsTooltip`,[S.SearchContentPartners]:`channelsTooltip`}[e]}function We(e){let n=Ue(e.widgetId,e.isTertiary);return n?(0,J.jsx)(t,{className:`svg-container text-secondary`,svg:ve,title:He(n),tooltipPlacement:`top`,tooltipSpanHack:!0,tooltipSpanHackClassName:`ms-2`}):(0,J.jsx)(J.Fragment,{})}var Ge={searchResultsWidgetsContainer:`_searchResultsWidgetsContainer_13lfz_1`},Ke=a.encloseNamespace(`search.mixedWidgetSearchResults`);function qe(e,t){return e.widgetId===S.SearchMySchoolLibraryFolder?t?Ke(`tertiaryFolderHeading`):e.name:e.widgetId===S.SearchMySchoolLibraryVideos&&t?Ke(`tertiaryLibraryVideoHeading`):e.name}function Je(e){return e.widgetId===S.SearchCurriculumCode?{curriculumLeafName:e.content?.name,curriculumLeafDescription:e.content?.description}:{}}function Ye(e){if(e.widgetId===S.SearchSeries)return`search-series-widget`}function Xe(e){return[S.SearchTags].includes(e.widgetId)}function Ze(e){return!e.data||!e.data.length?(0,J.jsx)(J.Fragment,{}):(0,J.jsx)(`div`,{className:Ge.searchResultsWidgetsContainer,children:e.data.map((t,n)=>{let r=e.data.length-1===n;return(0,J.jsxs)(q.Fragment,{children:[(0,J.jsx)(Le,{index:n,item:t,dashboardTarget:E.Search,getName:t=>qe(t,e.isTertiary),getWidgetMetadata:e=>Je(e),infiniteFetch:r,getCursor:e=>e.content?.cursor,getRequest:n=>e.getRequest(t.widgetId,n),getPartialLoadingPredicate:()=>Xe(t),getBadgeComponent:t=>(0,J.jsx)(We,{widgetId:t.widgetId,isTertiary:e.isTertiary}),audiences:e.audiences,currentUser:e.currentUser,appLinks:e.widgetAppLinks,appLinkOptions:e.widgetAppLinkOptions,commonVideoProps:e.commonVideoProps,availablePresentations:e.availablePresentations,settingsHash:e.settingsHash,hasPermissions:e.hasPermissions,getWidgetClassName:Ye,getAnalyticsData:e.getAnalyticsData,getSelectedItems:e.getSelectedItems,hasLocalPermissions:e.hasLocalPermissions,getSeeMoreAppLink:t=>e.getSeeMoreAppLink(t,r),setIsEmpty:n=>e.setIsEmpty(t.widgetId,n),resultsTransformers:e.searchResultsTransformers,widgetItemTransformers:e.widgetItemTransformers,onLoadWidgetsTriggers:e.onLoadWidgetsTriggers}),t.name===`Tags`&&e.children]},t.widgetId)})})}var Qe={video:k.VIDEO_COLLECTION,series:`rating,tallPoster`,playlist:`videos[count(),thumbnail]{limit:1},interactives[count(),_thumbnail]{limit:1},clips[count(),_thumbnail]{limit:1}`,classification:`_theme[banner,cover,tallposter,thumbnail,icon],cover,thumbnail,tags{tagtype:${x.Curation}}`,clip:k.CLIP_COLLECTION,interactive:k.INTERACTIVE_COLLECTION,company:`logo`,category:`libraries[_logo],thumbnail`,partner_profile:k.PARTNER_PROFILE};function $e(e){let t=e.totalResults,n=e?.results?.filter(e=>{if(e._index!==`series`&&e._index!==`playlist`)return!0;if(e._index===`playlist`){let n=e;return n.clips?.data?.length||n.interactives?.data?.length||n.videos?.data?.length?!0:(t--,!1)}return e.videos?.data?.length===0?(t--,!1):!0})??[];e.results=n,e.totalResults=t;let r=n[0]?._score;return{...e,results:ge.mapMaxScoreToSearchResults(n,r)}}function Y(e){return Object.entries(e).reduce((e,[,t])=>{let n=t;return typeof t==`object`?n=Y(t):[`number`,`boolean`,`string`].includes(typeof t)&&(n=t.toString()),e.length?`${e},${n}`:n},``)}function et(e,t){return Object.entries(e).reduce((e,[n,r])=>{let i=n.replace(U.FILTER_PARAM_PREFIX,``);return i===`presentation`&&t!==S.SearchTopResults&&t!==S.SearchRelatedResults&&t!==S.SearchSeries?e:{...e,[i]:r}},{})}var tt={searchDashboard(e,t,n=[]){let r=`search:v5:dashboard:${e}:${n.sort((e,t)=>e.id.localeCompare(t.id)).map(e=>[e.id,e?.cursor])}:${Y(t)}`,{[`${U.FILTER_PARAM_PREFIX}indicesFilters`]:i,isLearner:a,...o}=t,s={widgets:n,indices:i,filters:et(o,null),query:e,includeAllIndices:!1,isLearner:!!a};return{url:`{gateway}/v5/search/widgets`,publicUrl:`/api/search/v5/widgets`,type:d.POST,data:s,key:r}},searchDashboardWidget(e,t,n,r=[]){let i=`search:v5:dashboard:${e}:widget:${t}:${r.sort((e,t)=>e.id.localeCompare(t.id)).map(e=>[e.id,e?.cursor])}:${Y(n)}`,{[`${U.FILTER_PARAM_PREFIX}indicesFilters`]:a,isLearner:o,excludeVideoIds:s,...c}=n,l={widgets:r,indices:a,filters:et(c,e),query:t,includeAllIndices:!1,isLearner:!!o,ogql:Qe,excludeVideoIds:s};return{url:`{gateway}/v5/search/widgets/${e}`,publicUrl:`/api/search/v5/widgets/${e}`,type:d.POST,data:l,key:i,formatData:e=>e&&{...e,content:e.content?.data?{...e.content,data:e.content.data.map(ie.applyThemeToClassification)}:e.content}}},searchV5(e,t,n=[]){let r=`search:v5:${e}:${n.sort((e,t)=>e.id.localeCompare(t.id)).map(e=>[e.id,e?.cursor])}:${Y(t)}`,{[`${U.FILTER_PARAM_PREFIX}indicesFilters`]:i,isLearner:a,...o}=t,s={widgets:n,indices:i,filters:Object.entries(o).reduce((e,[t,n])=>({...e,[t.replace(`filters.`,``)]:n}),{}),query:e,includeAllIndices:!1,isLearner:!!a,ogql:Qe};return{url:`{gateway}/v5/search`,publicUrl:`/api/search/v5`,type:d.POST,data:s,key:r}},searchV4(e){let{query:t,indices:n,filters:r={},sorts:i={},allowSubstitute:a=!0,cursor:o,limit:s}=e,c=`search:v4:${t}:${a}:${n}:${o}`;c+=Object.keys(r).map(e=>{let t=r[e];return Array.isArray(t)?t.join(`;`):t}).join(`;`);let{[`${U.FILTER_PARAM_PREFIX}excludeLibraryExclusive`]:l,isLearner:u,...f}=r,p={searchType:`content`,indices:n.map(e=>e!==`video`||!l?{index:e}:{index:e,filters:{excludeLibraryExclusive:l}}),filters:Object.entries(f).reduce((e,[t,n])=>({...e,[t.replace(`filters.`,``)]:n}),{}),sorts:i,query:t,allowSubstitute:a,cursor:o??void 0,isLearner:!!u,limit:s};return{url:`{gateway}/v4/search`,publicUrl:`/api/search/v4`,type:d.POST,data:p,key:c,formatData:$e}},search(e){let{query:t,indices:n,filters:r,allowSubstitute:i,cursor:a,limit:o,success:s,error:c}=e,l=`search:${t}:${i}:${n}:${a}`;l+=Object.keys(r).map(e=>{let t=r[e];return Array.isArray(t)?t.join(`;`):t}).join(`;`);let u=Object.assign({},{index:n,cursor:a??void 0,query:t,allowSubstitute:i,limit:o,...r});return{url:O.urlBuilder(`{gateway}/v3/search`,u),publicUrl:O.urlBuilder(`/api/search`,u),key:l,formatData:$e,success:s,error:c}},tagsAndClassifications(e,t,n={},r,i,a){let o={index:t,cursor:r,query:e,...n},s=`filter:options:${e}:${t.join(`:`)}:${r}`;return s+=Object.keys(n).map(e=>{let t=n[e];return Array.isArray(t)?t.join(`;`):t}).join(`;`),{url:O.urlBuilder(`{gateway}/v3/search/tags-and-classifications`,o),publicUrl:O.urlBuilder(`/api/search/tags-and-classifications`,o),key:s,success:i,error:a,normalize:!1}}};function nt(e){let{hasPermissions:t}=I(),n=t(i.StudentExperience),{availablePresentations:r,hasCompleted:a}=K();function o(){return n?e?[e?.id]:null:r?.map(e=>e.id)}let s=o();return f(a&&s&&Se.schoolLevels(s))}function rt(){let e=f(T.currentUser()),t=L(),n=D(null),{upsellPresentationType:r}=ae(),i=f(we.streamableLearning()),a=i.data?.objectId,o=n.clickViewLive&&r!==b.StreamableLearning,s=t.hasProduct(oe.Exchange)&&n.showExchangeSearchResults,c=f(e.data?.isAuthenticated&&we.domainLibraries([`sharedLibrary`,`customLibrary`,`workspace`,`hostedLibrary`,`exchange`])),l=c.data??[],u=l?.findIndex(e=>e.type===_e.Exchange),d=l[u]?.id;if(s||(l=[...l.slice(0,u),...l.slice(u+1)]),a&&!o){let e=l?.findIndex(e=>e.id.toString()===a.toString());l=[...l.slice(0,e),...l.slice(e+1)]}return{hasLibrariesCompleted:i.hasCompleted&&(!e.data?.isAuthenticated||c.hasCompleted),libraries:l,exchangeLibraryId:d,streamableLibraryId:a,showExchangeSearchResults:s,showStreamableSearchResults:o}}function it(){let e=f(T.currentUser()),t=f(Ve.ratings(e.data?.countryCode)),{activePresentation:n}=M(),{availablePresentations:r,hasCompleted:i}=K();return!i||r?.length>1||!n||_.getMappedPresentationLevel(n.learningLevel)!==v.Level_1?t:{...t,data:t.data?.filter(e=>e.code&&e.value<64)}}function at(e){let t=f(T.currentUser()),n=f(t.data?.id&&T.user(t.data.id)),r=f(j.config()),a=f(t.data?.isAuthenticated&&ee.yearGroups(t.data.customerId)),o=L(),s=D(null),c=be(),{hasLibrariesCompleted:l,libraries:u,exchangeLibraryId:d,streamableLibraryId:p,showExchangeSearchResults:m,showStreamableSearchResults:h}=rt(),{activePresentation:g}=M(),{availablePresentations:_,hasCompleted:v}=K(),y=g?.id,b=Re(),x=nt(g),S=x.data?.schoolLevels?.map(e=>e.id),C=f(x?.data&&re.topicsFromAllAvailablePresentations(S)),w=it(),{hasPermissions:O,hasLocalPermissions:k}=I(),A=O(i.StudentExperience),te=O(i.ViewLibraries),N=O(i.ViewMoviesTv),P=O(i.GuestExperience),{dashboard:ne}=Te({targetType:E.MoviesAndTv,queryParams:e});return{queryParams:e,currentUser:t,userDetails:n,yearGroups:a,products:o,settings:s,audiences:b,schoolLevels:x,currentPresentation:g,availablePresentations:_,availableTopics:C,ratings:w,moviesAndTvDashboard:ne,currentPresentationId:y,isLearner:A,isGuest:P,libraries:u,hasDataLoaded:b.hasCompleted&&v&&t.hasCompleted&&(!t.data?.isAuthenticated||n.hasCompleted)&&w.hasCompleted&&r.hasCompleted&&_&&(!t.data?.isAuthenticated||!o.isLoadingProducts)&&!s.isLoadingSettings&&l,exchangeLibraryId:d,streamableLibraryId:p,showExchangeSearchResults:m,hasPermissions:O,hasLocalPermissions:k,hasCustomLibraries:te,showStreamableSearchResults:h,hasMoviesAndTv:N,isTertiary:c}}function ot(e){return(0,J.jsx)(`svg`,{...e,children:(0,J.jsx)(`path`,{fill:`currentColor`,fillRule:`evenodd`,d:`M17.437 8.5a2 2 0 0 0-3.874 0H4.5a.5.5 0 0 0 0 1h9.063a2 2 0 0 0 3.874 0H19.5a.5.5 0 0 0 0-1zM16.5 9a1 1 0 1 1-2 0 1 1 0 0 1 2 0m-12 5.5a.5.5 0 0 0 0 1h3.063a2 2 0 0 0 3.874 0H19.5a.5.5 0 0 0 0-1h-8.063a2 2 0 0 0-3.874 0zm5-.5a1 1 0 1 1 0 2 1 1 0 0 1 0-2`,clipRule:`evenodd`})})}var st=[`a[href]`,`button:not([disabled])`,`input:not([disabled])`,`select:not([disabled])`,`textarea:not([disabled])`,`[tabindex]:not([tabindex="-1"])`].join(`,`);function ct(e){let t=q.useRef(null),[n,r]=q.useState(!1);function i(){return!!t.current}function a(){t.current&&(t.current.focus(),r(!0))}function o(n){if(n.key===`Escape`){e();return}if(n.key!==`Tab`||!t.current)return;let r=Array.from(t.current.querySelectorAll(st));if(r.length===0){n.preventDefault(),t.current.focus();return}let i=r[0],a=r[r.length-1],o=document.activeElement;n.shiftKey&&o===i?(n.preventDefault(),a.focus()):!n.shiftKey&&o===a&&(n.preventDefault(),i.focus())}return q.useEffect(()=>{!i()||n||a()},[t.current,n]),{focusRef:t,onKeyDown:o}}var lt={openInAppPrompt:`_openInAppPrompt_cnr4k_1`,slideUp:`_slideUp_cnr4k_1`,mask:`_mask_cnr4k_6`};function ut(e){let{focusRef:t,onKeyDown:n}=ct(e.onClose);return(0,J.jsxs)(`div`,{children:[(0,J.jsx)(`div`,{className:`modal-backdrop show ${lt.mask}`,onClick:e.onClose}),(0,J.jsx)(`div`,{className:`position-fixed w-100 bg-white pb-3 px-3 bottom-0 start-0 rounded-top-3 overflow-auto ${lt.openInAppPrompt}`,ref:t,role:`dialog`,"aria-label":`Action sheet`,"aria-modal":`true`,tabIndex:-1,onKeyDown:n,children:e.children})]})}function dt(e){let{filterState:t}=e,n=e.isMoreFilter?t.moreFilters[e.filter.id]:t[e.filter.id],[r,i]=q.useState(n);function a(t){i(t),e.setParentDraftState(e.filter.id,t)}let o=q.useMemo(()=>e.filter.customComponent?e.filter.customComponent:H.mapTypeToComponent(e.filter.type),[e.filter.type]);return(0,J.jsxs)(`div`,{className:e.className||``,children:[(0,J.jsx)(`hr`,{className:`hr`}),(0,J.jsx)(o,{filter:e.filter,draftState:r,setDraftState:a,filterState:t,isExpandable:!0})]})}var ft=`search.smallScreenSearchFilters`;function pt(e){let{queryParams:t,appLink:n,isFetchingOptions:r,constantIndices:i=[]}=e,o=q.useMemo(()=>H.deriveInitialStateFromQuery(t,e.mainFilters,e.moreFilters,n),[t,r,e.mainFilters,e.moreFilters,n]),s=q.useRef(p.deepClone(o)),c=(e,t)=>s.current[e]=t,l=(e,t)=>s.current.moreFilters[e]=t,u=m.uniq([...H.getAppliedIndices(t,!0,e._hasPartnerProfiles),...i]),{mainFilters:d,moreFilters:f}=H.mixinDisabledFields(o,u,e.mainFilters,e.moreFilters),h=d.filter(e=>e.type!==`tag`);function g(){let r=p.omit(s.current,[`appLink`,`moreFilters`]),i=p.omit(s.current?.moreFilters,[`appLink`]);H.applyFilter([...h,...f?.filters??[]],o,{...r,...i},n),e.analyticsOptions&&H.logFilterEvent(e.mainFilters,e.moreFilters,o,t.query,e.analyticsOptions),e.closeFilter()}return q.useEffect(()=>(document.body.style.overflow=`hidden`,()=>{document.body.style.overflow=``}),[]),(0,J.jsx)(ut,{onClose:e.closeFilter,children:(0,J.jsxs)(z.Provider,{value:ft,children:[(0,J.jsx)(`div`,{className:`pt-3 mb-0 h4`,children:(0,J.jsx)(R,{phrase:`heading`})}),h.map(e=>(0,J.jsx)(dt,{className:`mb-4`,filter:e,filterState:o,setParentDraftState:c},e.id)),f&&f.filters?.map(e=>(0,J.jsx)(dt,{className:`mb-4`,filter:e,filterState:o,setParentDraftState:l,isMoreFilter:!0},e.id)),(0,J.jsxs)(`div`,{className:`position-fixed bottom-0 start-0 p-3 d-flex justify-content-between flex-row-reverse bg-white w-100`,children:[(0,J.jsx)(`button`,{className:`btn btn-dark justify-item-end`,onClick:g,children:a.getPhrase(ft,`apply`)}),H.hasActiveFilters(t)&&(0,J.jsx)(Oe,{mainFilters:e.mainFilters,moreFilters:e.moreFilters,currentQueryParam:t.query,analyticsOptions:e.analyticsOptions,alignLeft:e.alignResetButtonLeft,filterState:o,onClick:e.closeFilter})]})]})})}var mt={filterButtonContainer:`_filterButtonContainer_1n0p0_1`,filterButton:`_filterButton_1n0p0_1`},ht=`search.searchResultsFilter`;function gt(e){let{searchData:n,queryParams:r,filters:i,hideDivider:o}=e,s=ye(),[c,u]=q.useState(!1);return(0,J.jsxs)(J.Fragment,{children:[!!n.audiences.data&&!!n.ratings.data&&!!n.availableTopics.data&&(s.xs?(0,J.jsx)(`div`,{className:`position-sticky bg-white ${mt.filterButtonContainer}`,children:(0,J.jsxs)(`button`,{className:`btn btn-dark w-100 mb-3 ${mt.filterButton}`,onClick:()=>u(!0),children:[(0,J.jsx)(t,{svg:ot}),(0,J.jsx)(`span`,{className:`ms-1`,children:a.getPhrase(ht,`filterText`)})]})}):(0,J.jsx)(ke,{queryParams:r,mainFilters:i?.mainFilters,moreFilters:i?.moreFilters,analyticsOptions:{entity:h.SearchResults,location:g.SearchFilters},appLink:{application:l.SEARCH,action:A.Search.HOME},hideDivider:o,_hasPartnerProfiles:n.settings.hasPartnerProfiles})),s.xs&&c&&(0,J.jsx)(pt,{queryParams:r,mainFilters:i?.mainFilters,moreFilters:i?.moreFilters,analyticsOptions:{entity:h.SearchResults,location:g.SearchFilters},appLink:{application:l.SEARCH,action:A.Search.HOME},closeFilter:()=>u(!1),_hasPartnerProfiles:n.settings?.hasPartnerProfiles})]})}var _t=`search.searchResultsRequestVideo`;function vt(e){let{skipBeforeRequestingVideoStep:t=!0}=e;return(0,J.jsxs)(`div`,{className:`d-flex flex-column align-items-center justify-content-center gap-3 mb-3`,children:[e.description?(0,J.jsx)(`span`,{children:e.description}):(0,J.jsx)(R,{phrase:`description`,namespace:_t}),(0,J.jsx)(le,{appLink:{application:l.DEFAULT,action:A.Default.GIVE_FEEDBACK,params:{selectedOption:De.REQUEST_VIDEO,skipBeforeRequestingVideoStep:!!t}},className:`btn btn-outline-dark`,children:(0,J.jsx)(R,{phrase:`requestVideo`,namespace:_t})})]})}var yt=`search.searchResultsEmptyStateV2`,bt=a.encloseNamespace(yt);function xt(e){let t=e.scotland&&e.query?.trim()?.toLowerCase()===`nessie`?P.EmptyStates.Search.RESULTS_SCOTLAND:P.EmptyStates.Search.RESULTS;return(0,J.jsxs)(z.Provider,{value:yt,children:[(0,J.jsxs)(F,{children:[(0,J.jsx)(F.Image,{src:t}),(0,J.jsx)(F.Heading,{children:e.query?(0,J.jsx)(R,{phrase:`headingWithQuery`,options:{query:e.query}}):(0,J.jsx)(R,{phrase:`headingWithoutQuery`})}),(0,J.jsxs)(F.Info,{className:`w-50 m-0`,children:[(0,J.jsx)(R,{phrase:`info`}),(0,J.jsx)(le,{className:`info-link`,appLink:{application:l.SUBJECT,action:A.Subjects.PRESENTATION_TOPICS,args:[null]},children:(0,J.jsx)(R,{phrase:`topicsAppLink`})})]})]}),!e.hideRequestVideo&&(0,J.jsx)(vt,{description:bt(`requestVideoInfo`)})]})}function St(e){let t=e.data;!t||!t.length||t.forEach(t=>{if(t.widgetId!==S.SearchCurriculumCode)return;let n=!!t?.content?.name&&!!t?.content?.description;if(e.isCurriculumCodeSearch&&!n){r.trigger({...r.getCurrentAppLink(),params:{...r.getCurrentAppLink().params||{},[V]:void 0}},{replace:!0});return}if(!e.isCurriculumCodeSearch&&n){r.trigger({...r.getCurrentAppLink(),params:{...r.getCurrentAppLink().params||{},[V]:!0}},{replace:!0});return}})}function Ct(e){let t=e.data;if(!t||!t.length)return;let n=t.reduce((e,t)=>t.content.data.reduce((e,t)=>[...e,t],e),[]);n.length&&e.fetchObjects(n)}function wt(e){return[t=>St({data:t,...e}),t=>Ct({data:t,...e})]}function Tt(e){let{data:t}=e;if(!t)return e;let n=w.mergeWidgets(t,(e,t)=>{e.content.data=[...e.content.data||[],...t.content.data]});return{...e,data:n}}function Et(e){if(!e.data)throw new n(`Data is not defined in the options`);return e.data}function Dt(){return[e=>Et(Tt({data:e}))]}function Ot(e){if(e.data.widgetId!==S.SearchRelevantTopics)return e;function t(t,n){return _.sortByLearningLevel(t,n,e.availablePresentations)}let n=e.data.content.data.slice(0,6),r=e.data.content.data.slice(6),i=[],a=[];n.forEach(t=>{if(xe.isClassification(t)){if(t?.name?.toLowerCase()===e.query?.toLowerCase()){i.push(t);return}a.push(t)}}),i.sort(t),a.sort(t);let o={...e.data,content:{...e.data.content,data:[...i,...a,...r]}};return e={...e,data:o},e}function kt(e){if(e.data.widgetId!==S.SearchTags)return e;let t=e.data.content.data.map(e=>({id:e.name,...e}));return e.data={...e.data,content:{...e.data.content,data:t}},e}function X(e){if(!e.data)throw new n(`Data is not defined in the options`);return e.data}function At(e){return[t=>X(kt({data:t,...e})),t=>X(Ot({data:t,...e}))]}var jt=[S.SearchRelevantTopics,S.SearchCompanies,S.SearchPlaylists,S.SearchSeries,S.SearchTopResults,S.SearchMyVideos,S.SearchMyVideosFolder,S.SearchMySchoolLibraryVideos,S.SearchMySchoolLibraryFolder,S.SearchExchangeArchive,S.SearchClickViewLive,S.SearchRelatedResults,S.SearchCurriculumCode,S.SearchContentPartners];function Z(e){let t=e.queryParams?.[e.key];return typeof t==`string`?t===e.value:Array.isArray(t)?t.includes(e.value):!1}function Mt(e,t){if(!e?.focus)return;let n;if(typeof e.focus==`string`&&(n=jt.find(t=>t===e.focus)),Array.isArray(e.focus)&&e.focus.length===1&&(n=jt.find(t=>t===e.focus[0])),n&&C[n]?.predicate?.({targetType:E.Search,settingsHash:t.settingsHash}))return n}function Nt(e,t){let n=[],r=Mt(e,t);return r?[r,S.SearchTags]:(Z({key:`type`,value:G.Classification,queryParams:e})&&n.push(S.SearchRelevantTopics),Z({key:`type`,value:G.Company,queryParams:e})&&n.push(S.SearchCompanies),t.settingsHash?.hasPartnerProfiles&&Z({key:`type`,value:G.PartnerProfile,queryParams:e})&&n.push(S.SearchContentPartners),Z({key:`type`,value:G.Series,queryParams:e})&&n.push(S.SearchSeries),Z({key:`type`,value:G.Playlist,queryParams:e})&&n.push(S.SearchPlaylists),Z({key:`type`,value:G.Category,queryParams:e})&&n.push(S.SearchMySchoolLibraryFolder,S.SearchMyVideosFolder),Z({key:`source`,value:W.ExchangeArchive,queryParams:e})&&n.push(S.SearchExchangeArchive),t?.settingsHash?.clickViewLive&&Z({key:`source`,value:W.LiveStreams,queryParams:e})&&n.push(S.SearchClickViewLive),Z({key:`source`,value:W.MyVideos,queryParams:e})&&n.push(S.SearchMyVideos,S.SearchMyVideosFolder),Z({key:`source`,value:W.ClickView,queryParams:e})&&n.push(S.SearchTopResults,S.SearchRelatedResults),Z({key:`source`,value:W.School,queryParams:e})&&n.push(S.SearchMySchoolLibraryVideos,S.SearchMySchoolLibraryFolder),(Z({key:`type`,value:G.Video,queryParams:e})||Z({key:`type`,value:G.Clip,queryParams:e})||Z({key:`type`,value:G.Interactive,queryParams:e}))&&n.push(S.SearchTopResults,S.SearchRelatedResults,S.SearchMySchoolLibraryVideos,S.SearchMyVideos,S.SearchExchangeArchive,S.SearchClickViewLive,S.SearchCurriculumCode),n.length&&(n.push(S.SearchTopResults),n.push(S.SearchTags)),m.uniq(n))}var Q={isOnlyActiveWidget(e,t){let n=t?.focus;return typeof n==`string`?n.toLowerCase()===e.toLowerCase():!Array.isArray(n)||n.length!==1?!1:!!n.find(t=>t.toLowerCase()===e.toLowerCase())},getActiveWidgetFilters(e,t){return Nt(e,t).map(e=>({id:e}))},getWidgetFilters(e){let{queryParams:t,widgetTypeId:n,cursor:r,options:i}=e;return r?[{id:n,cursor:r}]:Nt(t,i).map(e=>({id:e}))},getSelectedTagOrClassification(e){return typeof e?.tagOrClassification==`string`?[{id:e.tagOrClassification,name:e.tagOrClassification}]:Array.isArray(e?.tagOrClassification)?e.tagOrClassification.map(e=>({id:e,name:e})):[]},getSearchWidgetSelectedItems(e,t){return t===S.SearchTags?Q.getSelectedTagOrClassification(e):[]}};function Pt(e){return!!e.content.cursor}var Ft={getSearchWidgetAppLinks(e,t,n,r){return{partner:fe.getPartnerDashboardAppLink,classification:e=>{let r={...t,moviesAndTv:_.isMtv(e)};return me.getAppLink(e,r,n)},videoType:(e,t)=>B.getAppLink(e,{...t,includeContext:!1},r),series:e=>pe.getSeriesAppLink(e,{},r),playlist:e=>({application:l.PLAYLISTS,action:A.Playlists.PLAYLIST,args:[null,e.id,o.slugify(e.name)]}),company:e=>({application:l.MOVIES_AND_TV,action:A.MoviesAndTv.COMPANY_DASHBOARD,args:[null,e.id,o.slugify(e.name)]}),folder:(e,t)=>t?.libraryId?Be(t?.libraryId,e,null):{application:l.MY_VIDEOS,action:A.MyVideos.MY_VIDEOS_FOLDER,args:[e.id,o.slugify(e.name)]},searchSettings:()=>({application:l.SETTINGS,action:A.Settings.PLATFORM_SETTINGS}),searchHome:(t,n)=>{let r={...t};return n?.replace||(r={...e,...r}),{application:l.SEARCH,action:A.Search.HOME,args:[],params:r}},tag:t=>{let n=Q.getSelectedTagOrClassification(e).map(e=>e.name);return n.includes(t.name)?n=n.filter(e=>e!==t.name):n.push(t.name),{action:A.Search.HOME,application:l.SEARCH,params:{...e,tagOrClassification:n}}},getPreviewQuestionsAppLink:e=>he.getPreviewQuestionsAppLink(e)}},getSeeMoreAppLink(e){if(!Pt(e.widget))return;let t=C[e.widget.widgetId]?.getCollectionAppLink;if(!(!t||Q.isOnlyActiveWidget(e.widget.widgetId,e.queryParams))&&!e.isLastWidget)return t(e.appLinks)}},$=a.encloseNamespace(`search.searchResultsV2`);function It(e){let{queryParams:t={}}=e,[n,r]=q.useState({}),{appLink:i}=Ee(),{shouldShowVideo:a,tutorialVideo:o,hasDismissedVideoHighlight:s,dismissVideoHighlight:c}=Me(je.SearchAndDiscover),l=ze();function d(e,t){r(n=>({...n,[e]:t}))}de(ue.getDefaultMetadata({title:t.query??``,phraseContext:{phraseHandler:$,titlePhrase:`pageTitle`,descriptionPhrase:`pageDescription`},allowIndexing:!1}));let[p]=ne(te.AUDIENCE_FILTER,void 0,{storage:u.SessionStorage}),m=Fe({location:Ie.VideoItem,presentationSlug:null}),{commonVideoProps:h}=Ne({locationContext:g.VideoThumbnail,mtv:t.moviesAndTv}),_=at(t),v=Ce.getBackendFiltersV2(_),b=f(_.hasDataLoaded&&tt.searchDashboard(t.query,v.backendFilters,Q.getActiveWidgetFilters(t,{settingsHash:_.settings}))),x=b.data?.filter(e=>!n[e.widgetId]),{activePresentation:C}=M(),{availablePresentations:w,hasLivePresentationOnly:T}=K(),E=Ce.getFilters({data:_,inaccessibleIndices:v?.inaccessibleIndices,_hasNewSearch:!0,_hasPartnerProfiles:_.settings.hasPartnerProfiles,hasCVFilters:!T}),D=_.hasDataLoaded&&E,O=b.hasCompleted&&!!E&&!!x&&x.length,ee=!O&&!b.isFetching,k=!b.hasCompleted&&b.isFetching||O&&!!x.find(e=>e.widgetId===S.SearchTags),A=Ft.getSearchWidgetAppLinks(t,y.getAudienceParams(p),w,C?.vanitySlug);function j(e,n){if(_.hasDataLoaded)return tt.searchDashboardWidget(e,t.query,v.backendFilters,Q.getWidgetFilters({queryParams:t,widgetTypeId:e,cursor:n,options:{settingsHash:_.settings}}))}let P=Dt(),re=At({query:t.query,availablePresentations:_.availablePresentations}),ie=wt({fetchObjects:l.fetchObjects,isCurriculumCodeSearch:!!t[V]});return q.useEffect(()=>{r({})},[b.data]),D?(0,J.jsxs)(`div`,{className:`px-4`,children:[(0,J.jsx)(gt,{searchData:_,queryParams:t,filters:E,hideDivider:k}),ee?(0,J.jsx)(xt,{query:t.query,scotland:_.currentUser.data?.contentRegion===N.SCOT,hideRequestVideo:_.isLearner}):(0,J.jsx)(`section`,{children:(0,J.jsxs)(Pe.Provider,{value:m,children:[(0,J.jsx)(Ze,{data:x,widgetAppLinks:A,isTertiary:_.isTertiary,commonVideoProps:h,audiences:_.audiences.data,currentUser:_.currentUser.data,availablePresentations:_.availablePresentations,settingsHash:_.settings,setIsEmpty:d,getRequest:j,hasPermissions:_.hasPermissions,hasLocalPermissions:_.hasLocalPermissions,getSeeMoreAppLink:(e,n)=>Ft.getSeeMoreAppLink({widget:e,queryParams:t,isLastWidget:n,appLinks:A}),getAnalyticsData:(e,n,r)=>({widgetId:e.widgetId,widgetName:e.name,templateId:e.templateId,widgetIndex:n,itemIndex:r,search:{query:t.query||``}}),getSelectedItems:e=>Q.getSearchWidgetSelectedItems(t,e),onLoadWidgetsTriggers:ie,widgetItemTransformers:re,searchResultsTransformers:P,children:a&&o?.data&&!s&&(0,J.jsx)(`div`,{className:`mb-3`,children:(0,J.jsx)(Ae,{video:o?.data,subtitle:$(`videoHighlightSubtitle`),description:$(`videoHighlightDescription`),bgColorClassName:`bg-light-green`,appLink:B.getAppLink(o?.data,{},null),locationContext:g.SearchBar,commonVideoProps:h,sharedPlaylistAppLink:i,supportArticle:ce.getLiteArticle(se.SearchAndDiscover),onDismiss:c})})}),!_.isLearner&&!b.isFetching&&(0,J.jsx)(vt,{})]})})]}):(0,J.jsx)(J.Fragment,{})}export{It as SearchResultsViewV2};
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{o as e}from"./DAXXjFlN.chunk.js";import{t}from"./D8uRDrkd.chunk.js";import{u as n,y as r}from"./BftnFbcr.chunk.js";import{n as i}from"./B785hxeE.chunk.js";import{t as a}from"./CQyJ7YGa.chunk.js";import{t as o}from"./e57H3T-k.chunk.js";import{t as s}from"./C2w0pmFW.chunk.js";import{t as c}from"./wrLrTezN.chunk.js";import{t as l}from"./BXTI9cmX.chunk.js";import{i as u}from"./BYSskNbK.chunk.js";import{C as d,u as f}from"./BX0wDJmp.chunk.js";import{n as p}from"./BVnMI-dl.chunk.js";import{t as m}from"./C1SLt-ar.chunk.js";import{l as h,y as g}from"./NlCAcBdo.chunk.js";import{n as _,r as v}from"./CAs8k4pN.chunk.js";import{t as y}from"./RjGIOTdP.chunk.js";import{t as b}from"./DTGfiG8Y.chunk.js";import{t as x}from"./BxbRBSiP.chunk.js";import{i as S,n as C,t as w}from"./Cr6TXzQQ2.chunk.js";import{t as T}from"./oPIkfKWW2.chunk.js";import{n as E}from"./CmcCVXi32.chunk.js";import{t as D}from"./CcDvlSWl2.chunk.js";import{t as O}from"./DZX1tZ-D2.chunk.js";import{t as ee}from"./xwiwWcv12.chunk.js";import{n as k}from"./7e14a3uA2.chunk.js";import{t as A}from"./DdsRCMkN.chunk.js";import{t as te}from"./Kx-r9MXT.chunk.js";import{t as j}from"./D_gWf2lC.chunk.js";import{t as M}from"./ZwDDc8Zd.chunk.js";import{t as N}from"./M97_Ztsu.chunk.js";import{t as P}from"./PgzMrOyM.chunk.js";import{t as ne}from"./C5rBgkQH.chunk.js";import{t as re}from"./B0aLOQEJ2.chunk.js";import{t as ie}from"./B7fTfFj62.chunk.js";import{t as ae}from"./FbPIRcRM2.chunk.js";import{t as oe}from"./QCFxJYkI2.chunk.js";import{n as se,t as ce}from"./D9a0OIfi2.chunk.js";import{t as le}from"./Ci5E3nqm2.chunk.js";import{t as F}from"./Vp01-r6R.chunk.js";import{n as ue,t as de}from"./A8xLZrSw.chunk.js";import{t as I}from"./BQKcAczf.chunk.js";import{t as L}from"./D3WOV5RE.chunk.js";import{t as fe}from"./CpP_XziV2.chunk.js";import{t as pe}from"./DuIIaGgk2.chunk.js";import{n as R,t as z}from"./CpFtf-tI2.chunk.js";import{t as B}from"./DW51cSV_2.chunk.js";import{t as me}from"./Delmxf6C.chunk.js";import{t as he}from"./9PCtVxot.chunk.js";import{a as ge,r as V,t as H}from"./CE2wLoIp.chunk.js";import{t as U}from"./BwelEZs92.chunk.js";import{n as W,r as G}from"./BcibGFe42.chunk.js";import{t as _e}from"./DW24qN_e2.chunk.js";import{t as ve}from"./BxYKQEUG2.chunk.js";import{t as ye}from"./5ONJSThP.chunk.js";import{t as K}from"./DOnmTMfX.chunk.js";import{t as be}from"./QOx-iXyN2.chunk.js";import{t as xe}from"./WvK58Ge12.chunk.js";import{t as Se}from"./DsbcGrr42.chunk.js";import{t as Ce}from"./Cl0Kjmj6.chunk.js";import"./BcVxkWsW.chunk.js";import{t as we}from"./DMZ_X3HL.chunk.js";import"./CETzluXN.chunk.js";import{t as Te}from"./NVkf8UeY.chunk.js";import{t as Ee}from"./CS5EZKt22.chunk.js";import{t as De}from"./Nw0EY4wG2.chunk.js";import{r as Oe,t as ke}from"./DhGA1di32.chunk.js";import{t as Ae}from"./CjpFTgAf2.chunk.js";import{n as je,t as Me}from"./Bg8TUhzW2.chunk.js";import{t as Ne}from"./BmR4qY-v2.chunk.js";import{o as Pe}from"./YcLj4o6h.chunk.js";import{n as Fe,t as Ie}from"./DWeyYfUG.chunk.js";import{t as Le}from"./B1ag1ah72.chunk.js";import{t as Re}from"./DMIDfHRi2.chunk.js";import{n as ze}from"./BIO-5Tfr2.chunk.js";import{t as Be}from"./oOZaqxlZ.chunk.js";import{t as Ve}from"./BLKgsTNL.chunk.js";var q=e(s()),J=c(),He=a.encloseNamespace(`search.searchWidgetTooltip`);function Ue(e,t){return{[S.SearchRelevantTopics]:`relevantTopicsTooltip`,[S.SearchCompanies]:`studiosAndChannelsTooltip`,[S.SearchTopResults]:`topResultsTooltip`,[S.SearchSeries]:`seriesTooltip`,[S.SearchPlaylists]:`playlistsTooltip`,[S.SearchMyVideosFolder]:`myVideosFoldersTooltip`,[S.SearchMySchoolLibraryFolder]:t?`mySchoolFoldersTooltipTertiary`:`mySchoolFoldersTooltip`,[S.SearchMyVideos]:`myVideosTooltip`,[S.SearchMySchoolLibraryVideos]:t?`mySchoolVideosTooltipTertiary`:`mySchoolVideosTooltip`,[S.SearchExchangeArchive]:`exchangeArchiveTooltip`,[S.SearchClickViewLive]:`clickViewLiveTooltip`,[S.SearchRelatedResults]:`relatedResultsTooltip`,[S.SearchContentPartners]:`channelsTooltip`}[e]}function We(e){let n=Ue(e.widgetId,e.isTertiary);return n?(0,J.jsx)(t,{className:`svg-container text-secondary`,svg:ve,title:He(n),tooltipPlacement:`top`,tooltipSpanHack:!0,tooltipSpanHackClassName:`ms-2`}):(0,J.jsx)(J.Fragment,{})}var Ge={searchResultsWidgetsContainer:`_searchResultsWidgetsContainer_13lfz_1`},Ke=a.encloseNamespace(`search.mixedWidgetSearchResults`);function qe(e,t){return e.widgetId===S.SearchMySchoolLibraryFolder?t?Ke(`tertiaryFolderHeading`):e.name:e.widgetId===S.SearchMySchoolLibraryVideos&&t?Ke(`tertiaryLibraryVideoHeading`):e.name}function Je(e){return e.widgetId===S.SearchCurriculumCode?{curriculumLeafName:e.content?.name,curriculumLeafDescription:e.content?.description}:{}}function Ye(e){if(e.widgetId===S.SearchSeries)return`search-series-widget`}function Xe(e){return[S.SearchTags].includes(e.widgetId)}function Ze(e){return!e.data||!e.data.length?(0,J.jsx)(J.Fragment,{}):(0,J.jsx)(`div`,{className:Ge.searchResultsWidgetsContainer,children:e.data.map((t,n)=>{let r=e.data.length-1===n;return(0,J.jsxs)(q.Fragment,{children:[(0,J.jsx)(Le,{index:n,item:t,dashboardTarget:E.Search,getName:t=>qe(t,e.isTertiary),getWidgetMetadata:e=>Je(e),infiniteFetch:r,getCursor:e=>e.content?.cursor,getRequest:n=>e.getRequest(t.widgetId,n),getPartialLoadingPredicate:()=>Xe(t),getBadgeComponent:t=>(0,J.jsx)(We,{widgetId:t.widgetId,isTertiary:e.isTertiary}),audiences:e.audiences,currentUser:e.currentUser,appLinks:e.widgetAppLinks,appLinkOptions:e.widgetAppLinkOptions,commonVideoProps:e.commonVideoProps,availablePresentations:e.availablePresentations,settingsHash:e.settingsHash,hasPermissions:e.hasPermissions,getWidgetClassName:Ye,getAnalyticsData:e.getAnalyticsData,getSelectedItems:e.getSelectedItems,hasLocalPermissions:e.hasLocalPermissions,getSeeMoreAppLink:t=>e.getSeeMoreAppLink(t,r),setIsEmpty:n=>e.setIsEmpty(t.widgetId,n),resultsTransformers:e.searchResultsTransformers,widgetItemTransformers:e.widgetItemTransformers,onLoadWidgetsTriggers:e.onLoadWidgetsTriggers}),t.name===`Tags`&&e.children]},t.widgetId)})})}var Qe={video:k.VIDEO_COLLECTION,series:`rating,tallPoster`,playlist:`videos[count(),thumbnail]{limit:1},interactives[count(),_thumbnail]{limit:1},clips[count(),_thumbnail]{limit:1}`,classification:`_theme[banner,cover,tallposter,thumbnail,icon],cover,thumbnail,tags{tagtype:${x.Curation}}`,clip:k.CLIP_COLLECTION,interactive:k.INTERACTIVE_COLLECTION,company:`logo`,category:`libraries[_logo],thumbnail`,partner_profile:k.PARTNER_PROFILE};function $e(e){let t=e.totalResults,n=e?.results?.filter(e=>{if(e._index!==`series`&&e._index!==`playlist`)return!0;if(e._index===`playlist`){let n=e;return n.clips?.data?.length||n.interactives?.data?.length||n.videos?.data?.length?!0:(t--,!1)}return e.videos?.data?.length===0?(t--,!1):!0})??[];e.results=n,e.totalResults=t;let r=n[0]?._score;return{...e,results:ge.mapMaxScoreToSearchResults(n,r)}}function Y(e){return Object.entries(e).reduce((e,[,t])=>{let n=t;return typeof t==`object`?n=Y(t):[`number`,`boolean`,`string`].includes(typeof t)&&(n=t.toString()),e.length?`${e},${n}`:n},``)}function et(e,t){return Object.entries(e).reduce((e,[n,r])=>{let i=n.replace(U.FILTER_PARAM_PREFIX,``);return i===`presentation`&&t!==S.SearchTopResults&&t!==S.SearchRelatedResults&&t!==S.SearchSeries?e:{...e,[i]:r}},{})}var tt={searchDashboard(e,t,n=[]){let r=`search:v5:dashboard:${e}:${n.sort((e,t)=>e.id.localeCompare(t.id)).map(e=>[e.id,e?.cursor])}:${Y(t)}`,{[`${U.FILTER_PARAM_PREFIX}indicesFilters`]:i,isLearner:a,...o}=t,s={widgets:n,indices:i,filters:et(o,null),query:e,includeAllIndices:!1,isLearner:!!a};return{url:`{gateway}/v5/search/widgets`,publicUrl:`/api/search/v5/widgets`,type:d.POST,data:s,key:r}},searchDashboardWidget(e,t,n,r=[]){let i=`search:v5:dashboard:${e}:widget:${t}:${r.sort((e,t)=>e.id.localeCompare(t.id)).map(e=>[e.id,e?.cursor])}:${Y(n)}`,{[`${U.FILTER_PARAM_PREFIX}indicesFilters`]:a,isLearner:o,excludeVideoIds:s,...c}=n,l={widgets:r,indices:a,filters:et(c,e),query:t,includeAllIndices:!1,isLearner:!!o,ogql:Qe,excludeVideoIds:s};return{url:`{gateway}/v5/search/widgets/${e}`,publicUrl:`/api/search/v5/widgets/${e}`,type:d.POST,data:l,key:i,formatData:e=>e&&{...e,content:e.content?.data?{...e.content,data:e.content.data.map(ie.applyThemeToClassification)}:e.content}}},searchV5(e,t,n=[]){let r=`search:v5:${e}:${n.sort((e,t)=>e.id.localeCompare(t.id)).map(e=>[e.id,e?.cursor])}:${Y(t)}`,{[`${U.FILTER_PARAM_PREFIX}indicesFilters`]:i,isLearner:a,...o}=t,s={widgets:n,indices:i,filters:Object.entries(o).reduce((e,[t,n])=>({...e,[t.replace(`filters.`,``)]:n}),{}),query:e,includeAllIndices:!1,isLearner:!!a,ogql:Qe};return{url:`{gateway}/v5/search`,publicUrl:`/api/search/v5`,type:d.POST,data:s,key:r}},searchV4(e){let{query:t,indices:n,filters:r={},sorts:i={},allowSubstitute:a=!0,cursor:o,limit:s}=e,c=`search:v4:${t}:${a}:${n}:${o}`;c+=Object.keys(r).map(e=>{let t=r[e];return Array.isArray(t)?t.join(`;`):t}).join(`;`);let{[`${U.FILTER_PARAM_PREFIX}excludeLibraryExclusive`]:l,isLearner:u,...f}=r,p={searchType:`content`,indices:n.map(e=>e!==`video`||!l?{index:e}:{index:e,filters:{excludeLibraryExclusive:l}}),filters:Object.entries(f).reduce((e,[t,n])=>({...e,[t.replace(`filters.`,``)]:n}),{}),sorts:i,query:t,allowSubstitute:a,cursor:o??void 0,isLearner:!!u,limit:s};return{url:`{gateway}/v4/search`,publicUrl:`/api/search/v4`,type:d.POST,data:p,key:c,formatData:$e}},search(e){let{query:t,indices:n,filters:r,allowSubstitute:i,cursor:a,limit:o,success:s,error:c}=e,l=`search:${t}:${i}:${n}:${a}`;l+=Object.keys(r).map(e=>{let t=r[e];return Array.isArray(t)?t.join(`;`):t}).join(`;`);let u=Object.assign({},{index:n,cursor:a??void 0,query:t,allowSubstitute:i,limit:o,...r});return{url:O.urlBuilder(`{gateway}/v3/search`,u),publicUrl:O.urlBuilder(`/api/search`,u),key:l,formatData:$e,success:s,error:c}},tagsAndClassifications(e,t,n={},r,i,a){let o={index:t,cursor:r,query:e,...n},s=`filter:options:${e}:${t.join(`:`)}:${r}`;return s+=Object.keys(n).map(e=>{let t=n[e];return Array.isArray(t)?t.join(`;`):t}).join(`;`),{url:O.urlBuilder(`{gateway}/v3/search/tags-and-classifications`,o),publicUrl:O.urlBuilder(`/api/search/tags-and-classifications`,o),key:s,success:i,error:a,normalize:!1}}};function nt(e){let{hasPermissions:t}=I(),n=t(i.StudentExperience),{availablePresentations:r,hasCompleted:a}=K();function o(){return n?e?[e?.id]:null:r?.map(e=>e.id)}let s=o();return f(a&&s&&Se.schoolLevels(s))}function rt(){let e=f(T.currentUser()),t=L(),n=D(null),{upsellPresentationType:r}=ae(),i=f(we.streamableLearning()),a=i.data?.objectId,o=n.clickViewLive&&r!==b.StreamableLearning,s=t.hasProduct(oe.Exchange)&&n.showExchangeSearchResults,c=f(e.data?.isAuthenticated&&we.domainLibraries([`sharedLibrary`,`customLibrary`,`workspace`,`hostedLibrary`,`exchange`])),l=c.data??[],u=l?.findIndex(e=>e.type===_e.Exchange),d=l[u]?.id;if(s||(l=[...l.slice(0,u),...l.slice(u+1)]),a&&!o){let e=l?.findIndex(e=>e.id.toString()===a.toString());l=[...l.slice(0,e),...l.slice(e+1)]}return{hasLibrariesCompleted:i.hasCompleted&&(!e.data?.isAuthenticated||c.hasCompleted),libraries:l,exchangeLibraryId:d,streamableLibraryId:a,showExchangeSearchResults:s,showStreamableSearchResults:o}}function it(){let e=f(T.currentUser()),t=f(Ve.ratings(e.data?.countryCode)),{activePresentation:n}=M(),{availablePresentations:r,hasCompleted:i}=K();return!i||r?.length>1||!n||_.getMappedPresentationLevel(n.learningLevel)!==v.Level_1?t:{...t,data:t.data?.filter(e=>e.code&&e.value<64)}}function at(e){let t=f(T.currentUser()),n=f(t.data?.id&&T.user(t.data.id)),r=f(j.config()),a=f(t.data?.isAuthenticated&&ee.yearGroups(t.data.customerId)),o=L(),s=D(null),c=be(),{hasLibrariesCompleted:l,libraries:u,exchangeLibraryId:d,streamableLibraryId:p,showExchangeSearchResults:m,showStreamableSearchResults:h}=rt(),{activePresentation:g}=M(),{availablePresentations:_,hasCompleted:v}=K(),y=g?.id,b=Re(),x=nt(g),S=x.data?.schoolLevels?.map(e=>e.id),C=f(x?.data&&re.topicsFromAllAvailablePresentations(S)),w=it(),{hasPermissions:O,hasLocalPermissions:k}=I(),A=O(i.StudentExperience),te=O(i.ViewLibraries),N=O(i.ViewMoviesTv),P=O(i.GuestExperience),{dashboard:ne}=Te({targetType:E.MoviesAndTv,queryParams:e});return{queryParams:e,currentUser:t,userDetails:n,yearGroups:a,products:o,settings:s,audiences:b,schoolLevels:x,currentPresentation:g,availablePresentations:_,availableTopics:C,ratings:w,moviesAndTvDashboard:ne,currentPresentationId:y,isLearner:A,isGuest:P,libraries:u,hasDataLoaded:b.hasCompleted&&v&&t.hasCompleted&&(!t.data?.isAuthenticated||n.hasCompleted)&&w.hasCompleted&&r.hasCompleted&&_&&(!t.data?.isAuthenticated||!o.isLoadingProducts)&&!s.isLoadingSettings&&l,exchangeLibraryId:d,streamableLibraryId:p,showExchangeSearchResults:m,hasPermissions:O,hasLocalPermissions:k,hasCustomLibraries:te,showStreamableSearchResults:h,hasMoviesAndTv:N,isTertiary:c}}function ot(e){return(0,J.jsx)(`svg`,{...e,children:(0,J.jsx)(`path`,{fill:`currentColor`,fillRule:`evenodd`,d:`M17.437 8.5a2 2 0 0 0-3.874 0H4.5a.5.5 0 0 0 0 1h9.063a2 2 0 0 0 3.874 0H19.5a.5.5 0 0 0 0-1zM16.5 9a1 1 0 1 1-2 0 1 1 0 0 1 2 0m-12 5.5a.5.5 0 0 0 0 1h3.063a2 2 0 0 0 3.874 0H19.5a.5.5 0 0 0 0-1h-8.063a2 2 0 0 0-3.874 0zm5-.5a1 1 0 1 1 0 2 1 1 0 0 1 0-2`,clipRule:`evenodd`})})}var st=[`a[href]`,`button:not([disabled])`,`input:not([disabled])`,`select:not([disabled])`,`textarea:not([disabled])`,`[tabindex]:not([tabindex="-1"])`].join(`,`);function ct(e){let t=q.useRef(null),[n,r]=q.useState(!1);function i(){return!!t.current}function a(){t.current&&(t.current.focus(),r(!0))}function o(n){if(n.key===`Escape`){e();return}if(n.key!==`Tab`||!t.current)return;let r=Array.from(t.current.querySelectorAll(st));if(r.length===0){n.preventDefault(),t.current.focus();return}let i=r[0],a=r[r.length-1],o=document.activeElement;n.shiftKey&&o===i?(n.preventDefault(),a.focus()):!n.shiftKey&&o===a&&(n.preventDefault(),i.focus())}return q.useEffect(()=>{!i()||n||a()},[t.current,n]),{focusRef:t,onKeyDown:o}}var lt={openInAppPrompt:`_openInAppPrompt_cnr4k_1`,slideUp:`_slideUp_cnr4k_1`,mask:`_mask_cnr4k_6`};function ut(e){let{focusRef:t,onKeyDown:n}=ct(e.onClose);return(0,J.jsxs)(`div`,{children:[(0,J.jsx)(`div`,{className:`modal-backdrop show ${lt.mask}`,onClick:e.onClose}),(0,J.jsx)(`div`,{className:`position-fixed w-100 bg-white pb-3 px-3 bottom-0 start-0 rounded-top-3 overflow-auto ${lt.openInAppPrompt}`,ref:t,role:`dialog`,"aria-label":`Action sheet`,"aria-modal":`true`,tabIndex:-1,onKeyDown:n,children:e.children})]})}function dt(e){let{filterState:t}=e,n=e.isMoreFilter?t.moreFilters[e.filter.id]:t[e.filter.id],[r,i]=q.useState(n);function a(t){i(t),e.setParentDraftState(e.filter.id,t)}let o=q.useMemo(()=>e.filter.customComponent?e.filter.customComponent:H.mapTypeToComponent(e.filter.type),[e.filter.type]);return(0,J.jsxs)(`div`,{className:e.className||``,children:[(0,J.jsx)(`hr`,{className:`hr`}),(0,J.jsx)(o,{filter:e.filter,draftState:r,setDraftState:a,filterState:t,isExpandable:!0})]})}var ft=`search.smallScreenSearchFilters`;function pt(e){let{queryParams:t,appLink:n,isFetchingOptions:r,constantIndices:i=[]}=e,o=q.useMemo(()=>H.deriveInitialStateFromQuery(t,e.mainFilters,e.moreFilters,n),[t,r,e.mainFilters,e.moreFilters,n]),s=q.useRef(p.deepClone(o)),c=(e,t)=>s.current[e]=t,l=(e,t)=>s.current.moreFilters[e]=t,u=m.uniq([...H.getAppliedIndices(t,!0,e._hasPartnerProfiles),...i]),{mainFilters:d,moreFilters:f}=H.mixinDisabledFields(o,u,e.mainFilters,e.moreFilters),h=d.filter(e=>e.type!==`tag`);function g(){let r=p.omit(s.current,[`appLink`,`moreFilters`]),i=p.omit(s.current?.moreFilters,[`appLink`]);H.applyFilter([...h,...f?.filters??[]],o,{...r,...i},n),e.analyticsOptions&&H.logFilterEvent(e.mainFilters,e.moreFilters,o,t.query,e.analyticsOptions),e.closeFilter()}return q.useEffect(()=>(document.body.style.overflow=`hidden`,()=>{document.body.style.overflow=``}),[]),(0,J.jsx)(ut,{onClose:e.closeFilter,children:(0,J.jsxs)(z.Provider,{value:ft,children:[(0,J.jsx)(`div`,{className:`pt-3 mb-0 h4`,children:(0,J.jsx)(R,{phrase:`heading`})}),h.map(e=>(0,J.jsx)(dt,{className:`mb-4`,filter:e,filterState:o,setParentDraftState:c},e.id)),f&&f.filters?.map(e=>(0,J.jsx)(dt,{className:`mb-4`,filter:e,filterState:o,setParentDraftState:l,isMoreFilter:!0},e.id)),(0,J.jsxs)(`div`,{className:`position-fixed bottom-0 start-0 p-3 d-flex justify-content-between flex-row-reverse bg-white w-100`,children:[(0,J.jsx)(`button`,{className:`btn btn-dark justify-item-end`,onClick:g,children:a.getPhrase(ft,`apply`)}),H.hasActiveFilters(t)&&(0,J.jsx)(Oe,{mainFilters:e.mainFilters,moreFilters:e.moreFilters,currentQueryParam:t.query,analyticsOptions:e.analyticsOptions,alignLeft:e.alignResetButtonLeft,filterState:o,onClick:e.closeFilter})]})]})})}var mt={filterButtonContainer:`_filterButtonContainer_1n0p0_1`,filterButton:`_filterButton_1n0p0_1`},ht=`search.searchResultsFilter`;function gt(e){let{searchData:n,queryParams:r,filters:i,hideDivider:o}=e,s=ye(),[c,u]=q.useState(!1);return(0,J.jsxs)(J.Fragment,{children:[!!n.audiences.data&&!!n.ratings.data&&!!n.availableTopics.data&&(s.xs?(0,J.jsx)(`div`,{className:`position-sticky bg-white ${mt.filterButtonContainer}`,children:(0,J.jsxs)(`button`,{className:`btn btn-dark w-100 mb-3 ${mt.filterButton}`,onClick:()=>u(!0),children:[(0,J.jsx)(t,{svg:ot}),(0,J.jsx)(`span`,{className:`ms-1`,children:a.getPhrase(ht,`filterText`)})]})}):(0,J.jsx)(ke,{queryParams:r,mainFilters:i?.mainFilters,moreFilters:i?.moreFilters,analyticsOptions:{entity:h.SearchResults,location:g.SearchFilters},appLink:{application:l.SEARCH,action:A.Search.HOME},hideDivider:o,_hasPartnerProfiles:n.settings.hasPartnerProfiles})),s.xs&&c&&(0,J.jsx)(pt,{queryParams:r,mainFilters:i?.mainFilters,moreFilters:i?.moreFilters,analyticsOptions:{entity:h.SearchResults,location:g.SearchFilters},appLink:{application:l.SEARCH,action:A.Search.HOME},closeFilter:()=>u(!1),_hasPartnerProfiles:n.settings?.hasPartnerProfiles})]})}var _t=`search.searchResultsRequestVideo`;function vt(e){let{skipBeforeRequestingVideoStep:t=!0}=e;return(0,J.jsxs)(`div`,{className:`d-flex flex-column align-items-center justify-content-center gap-3 mb-3`,children:[e.description?(0,J.jsx)(`span`,{children:e.description}):(0,J.jsx)(R,{phrase:`description`,namespace:_t}),(0,J.jsx)(le,{appLink:{application:l.DEFAULT,action:A.Default.GIVE_FEEDBACK,params:{selectedOption:De.REQUEST_VIDEO,skipBeforeRequestingVideoStep:!!t}},className:`btn btn-outline-dark`,children:(0,J.jsx)(R,{phrase:`requestVideo`,namespace:_t})})]})}var yt=`search.searchResultsEmptyStateV2`,bt=a.encloseNamespace(yt);function xt(e){let t=e.scotland&&e.query?.trim()?.toLowerCase()===`nessie`?P.EmptyStates.Search.RESULTS_SCOTLAND:P.EmptyStates.Search.RESULTS;return(0,J.jsxs)(z.Provider,{value:yt,children:[(0,J.jsxs)(F,{children:[(0,J.jsx)(F.Image,{src:t}),(0,J.jsx)(F.Heading,{children:e.query?(0,J.jsx)(R,{phrase:`headingWithQuery`,options:{query:e.query}}):(0,J.jsx)(R,{phrase:`headingWithoutQuery`})}),(0,J.jsxs)(F.Info,{className:`w-50 m-0`,children:[(0,J.jsx)(R,{phrase:`info`}),(0,J.jsx)(le,{className:`info-link`,appLink:{application:l.SUBJECT,action:A.Subjects.PRESENTATION_TOPICS,args:[null]},children:(0,J.jsx)(R,{phrase:`topicsAppLink`})})]})]}),!e.hideRequestVideo&&(0,J.jsx)(vt,{description:bt(`requestVideoInfo`)})]})}function St(e){let t=e.data;!t||!t.length||t.forEach(t=>{if(t.widgetId!==S.SearchCurriculumCode)return;let n=!!t?.content?.name&&!!t?.content?.description;if(e.isCurriculumCodeSearch&&!n){r.trigger({...r.getCurrentAppLink(),params:{...r.getCurrentAppLink().params||{},[V]:void 0}},{replace:!0});return}if(!e.isCurriculumCodeSearch&&n){r.trigger({...r.getCurrentAppLink(),params:{...r.getCurrentAppLink().params||{},[V]:!0}},{replace:!0});return}})}function Ct(e){let t=e.data;if(!t||!t.length)return;let n=t.reduce((e,t)=>t.content.data.reduce((e,t)=>[...e,t],e),[]);n.length&&e.fetchObjects(n)}function wt(e){return[t=>St({data:t,...e}),t=>Ct({data:t,...e})]}function Tt(e){let{data:t}=e;if(!t)return e;let n=w.mergeWidgets(t,(e,t)=>{e.content.data=[...e.content.data||[],...t.content.data]});return{...e,data:n}}function Et(e){if(!e.data)throw new n(`Data is not defined in the options`);return e.data}function Dt(){return[e=>Et(Tt({data:e}))]}function Ot(e){if(e.data.widgetId!==S.SearchRelevantTopics)return e;function t(t,n){return _.sortByLearningLevel(t,n,e.availablePresentations)}let n=e.data.content.data.slice(0,6),r=e.data.content.data.slice(6),i=[],a=[];n.forEach(t=>{if(xe.isClassification(t)){if(t?.name?.toLowerCase()===e.query?.toLowerCase()){i.push(t);return}a.push(t)}}),i.sort(t),a.sort(t);let o={...e.data,content:{...e.data.content,data:[...i,...a,...r]}};return e={...e,data:o},e}function kt(e){if(e.data.widgetId!==S.SearchTags)return e;let t=e.data.content.data.map(e=>({id:e.name,...e}));return e.data={...e.data,content:{...e.data.content,data:t}},e}function X(e){if(!e.data)throw new n(`Data is not defined in the options`);return e.data}function At(e){return[t=>X(kt({data:t,...e})),t=>X(Ot({data:t,...e}))]}var jt=[S.SearchRelevantTopics,S.SearchCompanies,S.SearchPlaylists,S.SearchSeries,S.SearchTopResults,S.SearchMyVideos,S.SearchMyVideosFolder,S.SearchMySchoolLibraryVideos,S.SearchMySchoolLibraryFolder,S.SearchExchangeArchive,S.SearchClickViewLive,S.SearchRelatedResults,S.SearchCurriculumCode,S.SearchContentPartners];function Z(e){let t=e.queryParams?.[e.key];return typeof t==`string`?t===e.value:Array.isArray(t)?t.includes(e.value):!1}function Mt(e,t){if(!e?.focus)return;let n;if(typeof e.focus==`string`&&(n=jt.find(t=>t===e.focus)),Array.isArray(e.focus)&&e.focus.length===1&&(n=jt.find(t=>t===e.focus[0])),n&&C[n]?.predicate?.({targetType:E.Search,settingsHash:t.settingsHash}))return n}function Nt(e,t){let n=[],r=Mt(e,t);return r?[r,S.SearchTags]:(Z({key:`type`,value:G.Classification,queryParams:e})&&n.push(S.SearchRelevantTopics),Z({key:`type`,value:G.Company,queryParams:e})&&n.push(S.SearchCompanies),t.settingsHash?.hasPartnerProfiles&&Z({key:`type`,value:G.PartnerProfile,queryParams:e})&&n.push(S.SearchContentPartners),Z({key:`type`,value:G.Series,queryParams:e})&&n.push(S.SearchSeries),Z({key:`type`,value:G.Playlist,queryParams:e})&&n.push(S.SearchPlaylists),Z({key:`type`,value:G.Category,queryParams:e})&&n.push(S.SearchMySchoolLibraryFolder,S.SearchMyVideosFolder),Z({key:`source`,value:W.ExchangeArchive,queryParams:e})&&n.push(S.SearchExchangeArchive),t?.settingsHash?.clickViewLive&&Z({key:`source`,value:W.LiveStreams,queryParams:e})&&n.push(S.SearchClickViewLive),Z({key:`source`,value:W.MyVideos,queryParams:e})&&n.push(S.SearchMyVideos,S.SearchMyVideosFolder),Z({key:`source`,value:W.ClickView,queryParams:e})&&n.push(S.SearchTopResults,S.SearchRelatedResults),Z({key:`source`,value:W.School,queryParams:e})&&n.push(S.SearchMySchoolLibraryVideos,S.SearchMySchoolLibraryFolder),(Z({key:`type`,value:G.Video,queryParams:e})||Z({key:`type`,value:G.Clip,queryParams:e})||Z({key:`type`,value:G.Interactive,queryParams:e}))&&n.push(S.SearchTopResults,S.SearchRelatedResults,S.SearchMySchoolLibraryVideos,S.SearchMyVideos,S.SearchExchangeArchive,S.SearchClickViewLive,S.SearchCurriculumCode),n.length&&(n.push(S.SearchTopResults),n.push(S.SearchTags)),m.uniq(n))}var Q={isOnlyActiveWidget(e,t){let n=t?.focus;return typeof n==`string`?n.toLowerCase()===e.toLowerCase():!Array.isArray(n)||n.length!==1?!1:!!n.find(t=>t.toLowerCase()===e.toLowerCase())},getActiveWidgetFilters(e,t){return Nt(e,t).map(e=>({id:e}))},getWidgetFilters(e){let{queryParams:t,widgetTypeId:n,cursor:r,options:i}=e;return r?[{id:n,cursor:r}]:Nt(t,i).map(e=>({id:e}))},getSelectedTagOrClassification(e){return typeof e?.tagOrClassification==`string`?[{id:e.tagOrClassification,name:e.tagOrClassification}]:Array.isArray(e?.tagOrClassification)?e.tagOrClassification.map(e=>({id:e,name:e})):[]},getSearchWidgetSelectedItems(e,t){return t===S.SearchTags?Q.getSelectedTagOrClassification(e):[]}};function Pt(e){return!!e.content.cursor}var Ft={getSearchWidgetAppLinks(e,t,n,r){return{partner:fe.getPartnerDashboardAppLink,classification:e=>{let r={...t,moviesAndTv:_.isMtv(e)};return me.getAppLink(e,r,n)},videoType:(e,t)=>B.getAppLink(e,{...t,includeContext:!1},r),series:e=>pe.getSeriesAppLink(e,{},r),playlist:e=>({application:l.PLAYLISTS,action:A.Playlists.PLAYLIST,args:[null,e.id,o.slugify(e.name)]}),company:e=>({application:l.MOVIES_AND_TV,action:A.MoviesAndTv.COMPANY_DASHBOARD,args:[null,e.id,o.slugify(e.name)]}),folder:(e,t)=>t?.libraryId?Be(t?.libraryId,e,null):{application:l.MY_VIDEOS,action:A.MyVideos.MY_VIDEOS_FOLDER,args:[e.id,o.slugify(e.name)]},searchSettings:()=>({application:l.SETTINGS,action:A.Settings.PLATFORM_SETTINGS}),searchHome:(t,n)=>{let r={...t};return n?.replace||(r={...e,...r}),{application:l.SEARCH,action:A.Search.HOME,args:[],params:r}},tag:t=>{let n=Q.getSelectedTagOrClassification(e).map(e=>e.name);return n.includes(t.name)?n=n.filter(e=>e!==t.name):n.push(t.name),{action:A.Search.HOME,application:l.SEARCH,params:{...e,tagOrClassification:n}}},getPreviewQuestionsAppLink:e=>he.getPreviewQuestionsAppLink(e)}},getSeeMoreAppLink(e){if(!Pt(e.widget))return;let t=C[e.widget.widgetId]?.getCollectionAppLink;if(!(!t||Q.isOnlyActiveWidget(e.widget.widgetId,e.queryParams))&&!e.isLastWidget)return t(e.appLinks)}},$=a.encloseNamespace(`search.searchResultsV2`);function It(e){let{queryParams:t={}}=e,[n,r]=q.useState({}),{appLink:i}=Ee(),{shouldShowVideo:a,tutorialVideo:o,hasDismissedVideoHighlight:s,dismissVideoHighlight:c}=Me(je.SearchAndDiscover),l=ze();function d(e,t){r(n=>({...n,[e]:t}))}de(ue.getDefaultMetadata({title:t.query??``,phraseContext:{phraseHandler:$,titlePhrase:`pageTitle`,descriptionPhrase:`pageDescription`},allowIndexing:!1}));let[p]=ne(te.AUDIENCE_FILTER,void 0,{storage:u.SessionStorage}),m=Fe({location:Ie.VideoItem,presentationSlug:null}),{commonVideoProps:h}=Ne({locationContext:g.VideoThumbnail,mtv:t.moviesAndTv}),_=at(t),v=Ce.getBackendFiltersV2(_),b=f(_.hasDataLoaded&&tt.searchDashboard(t.query,v.backendFilters,Q.getActiveWidgetFilters(t,{settingsHash:_.settings}))),x=b.data?.filter(e=>!n[e.widgetId]),{activePresentation:C}=M(),{availablePresentations:w,hasLivePresentationOnly:T}=K(),E=Ce.getFilters({data:_,inaccessibleIndices:v?.inaccessibleIndices,_hasNewSearch:!0,_hasPartnerProfiles:_.settings.hasPartnerProfiles,hasCVFilters:!T}),D=_.hasDataLoaded&&E,O=b.hasCompleted&&!!E&&!!x&&x.length,ee=!O&&!b.isFetching,k=!b.hasCompleted&&b.isFetching||O&&!!x.find(e=>e.widgetId===S.SearchTags),A=Ft.getSearchWidgetAppLinks(t,y.getAudienceParams(p),w,C?.vanitySlug);function j(e,n){if(_.hasDataLoaded)return tt.searchDashboardWidget(e,t.query,v.backendFilters,Q.getWidgetFilters({queryParams:t,widgetTypeId:e,cursor:n,options:{settingsHash:_.settings}}))}let P=Dt(),re=At({query:t.query,availablePresentations:_.availablePresentations}),ie=wt({fetchObjects:l.fetchObjects,isCurriculumCodeSearch:!!t[V]});return q.useEffect(()=>{r({})},[b.data]),D?(0,J.jsxs)(`div`,{className:`px-4`,children:[(0,J.jsx)(gt,{searchData:_,queryParams:t,filters:E,hideDivider:k}),ee?(0,J.jsx)(xt,{query:t.query,scotland:_.currentUser.data?.contentRegion===N.SCOT,hideRequestVideo:_.isLearner}):(0,J.jsx)(`section`,{children:(0,J.jsxs)(Pe.Provider,{value:m,children:[(0,J.jsx)(Ze,{data:x,widgetAppLinks:A,isTertiary:_.isTertiary,commonVideoProps:h,audiences:_.audiences.data,currentUser:_.currentUser.data,availablePresentations:_.availablePresentations,settingsHash:_.settings,setIsEmpty:d,getRequest:j,hasPermissions:_.hasPermissions,hasLocalPermissions:_.hasLocalPermissions,getSeeMoreAppLink:(e,n)=>Ft.getSeeMoreAppLink({widget:e,queryParams:t,isLastWidget:n,appLinks:A}),getAnalyticsData:(e,n,r)=>({widgetId:e.widgetId,widgetName:e.name,templateId:e.templateId,widgetIndex:n,itemIndex:r,search:{query:t.query||``}}),getSelectedItems:e=>Q.getSearchWidgetSelectedItems(t,e),onLoadWidgetsTriggers:ie,widgetItemTransformers:re,searchResultsTransformers:P,children:a&&o?.data&&!s&&(0,J.jsx)(`div`,{className:`mb-3`,children:(0,J.jsx)(Ae,{video:o?.data,subtitle:$(`videoHighlightSubtitle`),description:$(`videoHighlightDescription`),bgColorClassName:`bg-light-green`,appLink:B.getAppLink(o?.data,{},null),locationContext:g.SearchBar,commonVideoProps:h,sharedPlaylistAppLink:i,supportArticle:ce.getLiteArticle(se.SearchAndDiscover),onDismiss:c})})}),!_.isLearner&&!b.isFetching&&(0,J.jsx)(vt,{})]})})]}):(0,J.jsx)(J.Fragment,{})}export{It as SearchResultsViewV2};
|
|
2
|
+
//# sourceMappingURL=BYJa-jEI2.chunk.js.map
|