@clickview/lite 0.103.0-rc.0 → 0.103.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.vite/manifest.json +447 -447
- package/dist/bundles.json +1 -1
- package/dist/en.json +1 -1
- package/dist/scripts/{BXosUOUS.chunk.js → 14z5Gy8L.chunk.js} +2 -2
- package/dist/scripts/{BXosUOUS.chunk.js.map → 14z5Gy8L.chunk.js.map} +1 -1
- package/dist/scripts/{BqkK_0Jk2.chunk.js → B4AZn1xm2.chunk.js} +2 -2
- package/dist/scripts/{BqkK_0Jk2.chunk.js.map → B4AZn1xm2.chunk.js.map} +1 -1
- package/dist/scripts/{_wBbQ-0z2.chunk.js → BBndy2td2.chunk.js} +2 -2
- package/dist/scripts/{_wBbQ-0z2.chunk.js.map → BBndy2td2.chunk.js.map} +1 -1
- package/dist/scripts/{DBdkd4Ag2.chunk.js → BFH_tnSb2.chunk.js} +3 -3
- package/dist/scripts/{DBdkd4Ag2.chunk.js.map → BFH_tnSb2.chunk.js.map} +1 -1
- package/dist/scripts/{BhgNNQjX.chunk.js → BOQck-Qs.chunk.js} +2 -2
- package/dist/scripts/{BhgNNQjX.chunk.js.map → BOQck-Qs.chunk.js.map} +1 -1
- package/dist/scripts/{_eRiDJm1.chunk.js → Ba4uGz_V.chunk.js} +2 -2
- package/dist/scripts/{_eRiDJm1.chunk.js.map → Ba4uGz_V.chunk.js.map} +1 -1
- package/dist/scripts/{Bx6qaXLc.chunk.js → Bdbe2u0R.chunk.js} +2 -2
- package/dist/scripts/{Bx6qaXLc.chunk.js.map → Bdbe2u0R.chunk.js.map} +1 -1
- package/dist/scripts/{C4CuJJXy2.chunk.js → BeW5XQTb2.chunk.js} +2 -2
- package/dist/scripts/{C4CuJJXy2.chunk.js.map → BeW5XQTb2.chunk.js.map} +1 -1
- package/dist/scripts/{syYCrnUX.chunk.js → BgoVmaXQ.chunk.js} +2 -2
- package/dist/scripts/{syYCrnUX.chunk.js.map → BgoVmaXQ.chunk.js.map} +1 -1
- package/dist/scripts/{B5DWwtp0.chunk.js → BjA9XV5y.chunk.js} +2 -2
- package/dist/scripts/{B5DWwtp0.chunk.js.map → BjA9XV5y.chunk.js.map} +1 -1
- package/dist/scripts/{BYMMqtaN.chunk.js → BqdHoEFM.chunk.js} +2 -2
- package/dist/scripts/{BYMMqtaN.chunk.js.map → BqdHoEFM.chunk.js.map} +1 -1
- package/dist/scripts/{BIvmcqND2.chunk.js → CCUznsdX2.chunk.js} +2 -2
- package/dist/scripts/{BIvmcqND2.chunk.js.map → CCUznsdX2.chunk.js.map} +1 -1
- package/dist/scripts/{BsNCh4UD.chunk.js → CFqL2Hm5.chunk.js} +3 -3
- package/dist/scripts/{BsNCh4UD.chunk.js.map → CFqL2Hm5.chunk.js.map} +1 -1
- package/dist/scripts/{BE8Ze3Fa2.chunk.js → CHmbcl4Y2.chunk.js} +2 -2
- package/dist/scripts/{BE8Ze3Fa2.chunk.js.map → CHmbcl4Y2.chunk.js.map} +1 -1
- package/dist/scripts/{Dp8z_udC.chunk.js → CIzlhCeS.chunk.js} +2 -2
- package/dist/scripts/{Dp8z_udC.chunk.js.map → CIzlhCeS.chunk.js.map} +1 -1
- package/dist/scripts/{CO8EIpI8.chunk.js → CXUrMkZu.chunk.js} +2 -2
- package/dist/scripts/{CO8EIpI8.chunk.js.map → CXUrMkZu.chunk.js.map} +1 -1
- package/dist/scripts/{DLqG-wwP.chunk.js → CYrelpYt.chunk.js} +2 -2
- package/dist/scripts/{DLqG-wwP.chunk.js.map → CYrelpYt.chunk.js.map} +1 -1
- package/dist/scripts/{wmwWqIeA.chunk.js → CfrfHGSh.chunk.js} +2 -2
- package/dist/scripts/{wmwWqIeA.chunk.js.map → CfrfHGSh.chunk.js.map} +1 -1
- package/dist/scripts/{B5M-3wpn.chunk.js → CjwT65ug.chunk.js} +2 -2
- package/dist/scripts/{B5M-3wpn.chunk.js.map → CjwT65ug.chunk.js.map} +1 -1
- package/dist/scripts/{B-aaIChO2.chunk.js → CsCjBSq62.chunk.js} +2 -2
- package/dist/scripts/{B-aaIChO2.chunk.js.map → CsCjBSq62.chunk.js.map} +1 -1
- package/dist/scripts/{ygwO7HPs2.chunk.js → DIaT_eGy2.chunk.js} +2 -2
- package/dist/scripts/{ygwO7HPs2.chunk.js.map → DIaT_eGy2.chunk.js.map} +1 -1
- package/dist/scripts/{DXRsxBJw.chunk.js → DTliAJ8L.chunk.js} +2 -2
- package/dist/scripts/{DXRsxBJw.chunk.js.map → DTliAJ8L.chunk.js.map} +1 -1
- package/dist/scripts/{DE5jvfAx2.chunk.js → D_t70KgV2.chunk.js} +2 -2
- package/dist/scripts/{DE5jvfAx2.chunk.js.map → D_t70KgV2.chunk.js.map} +1 -1
- package/dist/scripts/{Dc01PBv1.chunk.js → Dn2EPvQj.chunk.js} +2 -2
- package/dist/scripts/{Dc01PBv1.chunk.js.map → Dn2EPvQj.chunk.js.map} +1 -1
- package/dist/scripts/{RuVwpX36.chunk.js → Drh1bb9z.chunk.js} +2 -2
- package/dist/scripts/{RuVwpX36.chunk.js.map → Drh1bb9z.chunk.js.map} +1 -1
- package/dist/scripts/{YzhKditE.chunk.js → ESLgHTNq.chunk.js} +2 -2
- package/dist/scripts/{YzhKditE.chunk.js.map → ESLgHTNq.chunk.js.map} +1 -1
- package/dist/scripts/{DfSzsD3P.chunk.js → FysETOFv.chunk.js} +2 -2
- package/dist/scripts/{DfSzsD3P.chunk.js.map → FysETOFv.chunk.js.map} +1 -1
- package/dist/scripts/QVwuOts3.chunk.js +12 -0
- package/dist/scripts/QVwuOts3.chunk.js.map +1 -0
- package/dist/scripts/{OmYpHs7g.chunk.js → _Cm5O72d.chunk.js} +3 -3
- package/dist/scripts/{OmYpHs7g.chunk.js.map → _Cm5O72d.chunk.js.map} +1 -1
- package/dist/scripts/{app-BzCWmnrr.js → app-BHlllGhO.js} +4 -4
- package/dist/scripts/{app-BzCWmnrr.js.map → app-BHlllGhO.js.map} +1 -1
- package/dist/scripts/{C46080Xd.chunk.js → dxqgnrOi.chunk.js} +2 -2
- package/dist/scripts/{C46080Xd.chunk.js.map → dxqgnrOi.chunk.js.map} +1 -1
- package/dist/scripts/{BCTM3KG42.chunk.js → kLCNzxrH2.chunk.js} +2 -2
- package/dist/scripts/{BCTM3KG42.chunk.js.map → kLCNzxrH2.chunk.js.map} +1 -1
- package/dist/scripts/{CfVIZBcI2.chunk.js → wpRpI9h02.chunk.js} +2 -2
- package/dist/scripts/{CfVIZBcI2.chunk.js.map → wpRpI9h02.chunk.js.map} +1 -1
- package/package.json +1 -1
- package/dist/scripts/QrUfkwZX.chunk.js +0 -12
- package/dist/scripts/QrUfkwZX.chunk.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_wBbQ-0z2.chunk.js","names":[],"sources":["../../src/shared/hooks/useShouldPreviewInteractive.ts","../../src/apps/interactives/components/interactive-title-and-actions/InteractiveTitleAndActions.tsx","../../src/apps/interactives/components/play-interactive/PlayInteractive.tsx","../../src/apps/interactives/components/preview-interactive/InteractiveAlertBanner.tsx","../../src/apps/interactives/hooks/interactiveHooks.tsx","../../src/apps/interactives/components/preview-interactive/PreviewInteractive.tsx"],"sourcesContent":["import { Flight } from 'libs/common/flight';\n\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ProductId } from 'libs/shared/enums/ProductId';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useProducts } from 'libs/shared/hooks/UseProducts';\nimport { CurrentUser, UnionShareObject } from 'libs/shared/interfaces';\n\nexport function useShouldPreviewInteractive(shareLink?: UnionShareObject) {\n const { hasPermissions } = usePermissions();\n const { hasProduct } = useProducts();\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n return !hasPermissions(PermissionName.StudentExperience) &&\n hasProduct(ProductId.Primary) &&\n currentUser.data.isAuthenticated &&\n (!shareLink || shareLink.version === 'v1'); // Previewing shares is not supported for Share 2.0 links\n}\n","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { Actions as ActionsComponent } from 'libs/shared/components/actions/Actions';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\nimport { RestrictionPadlock } from 'libs/shared/components/video-list/components/restriction-padlock/RestrictionPadlock';\nimport { CurationStatus } from 'libs/shared/enums/CurationStatus';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { InteractiveMetadata } from 'libs/shared/interfaces';\nimport { CommonVideoProps } from 'libs/shared/interfaces/CommonVideoProps';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { useVideoActions, VideoActionsLocation } from 'shared/hooks/use-video-actions/useVideoActions';\n\nconst namespace = 'interactives.interactiveTitleAndActions';\n\nfunction getBackToData(interactive: InteractiveMetadata): [name: string, appLink: Core.AppLink] {\n let name: string;\n let appLink: Core.AppLink;\n \n if (interactive._parentClip) {\n name = interactive._parentClip.name;\n appLink = {\n application: AppChannels.CLIPS,\n action: Actions.Clips.PLAY_CLIP,\n args: [ interactive._parentClip.id, TextHelper.slugify(interactive._parentClip.name) ]\n };\n } else {\n name = interactive._parentVideo.name;\n appLink = {\n application: AppChannels.VIDEOS,\n action: Actions.Videos.PLAY_VIDEO,\n args: [\n null,\n interactive._parentVideo.id,\n TextHelper.slugify(interactive._parentVideo.name)\n ]\n };\n }\n\n return [ name, appLink ];\n}\n\ninterface InteractiveTitleAndActionsProps {\n interactive: InteractiveMetadata;\n location: VideoActionsLocation;\n shareId?: string;\n commonVideoProps: CommonVideoProps;\n}\n\nexport function InteractiveTitleAndActions(props: InteractiveTitleAndActionsProps): JSX.Element {\n const { hasPermissions } = usePermissions();\n const videoActions = useVideoActions({\n location: props.location,\n shareId: props.shareId,\n presentationSlug: null\n });\n\n const hasStudentExperience = hasPermissions(PermissionName.StudentExperience);\n\n const isDraft = props.interactive.status === CurationStatus.Draft;\n const [ backToName, backToAppLink ] = getBackToData(props.interactive);\n \n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <div className='d-flex justify-content-between align-items-center'>\n <div className='inline-block w-100'>\n <div className='ms-2 float-end'>\n {!hasStudentExperience &&\n <ActionsComponent\n actions={videoActions.getVideoActions(props.interactive)}\n actionsDropdownClassName='btn btn-outline-dark'\n fetchMore={() => videoActions.fetchMoreActions(props.interactive)}\n />\n }\n </div>\n\n <h1 className='h3 mb-2'>\n {isDraft && (\n <div className='badge draft-badge me-2 align-bottom flex-shrink-0 h-auto lh-base'>\n <Text phrase='draft' />\n </div>\n )}\n {props.interactive.name}\n {!hasStudentExperience && (\n <RestrictionPadlock\n tooltipPlacement='right'\n className='ps-1 d-inline-block'\n video={props.interactive}\n yearGroups={props.commonVideoProps.yearGroups}\n />\n )}\n </h1>\n {VideoHelper.canViewOriginalVideo(props.interactive) &&\n <div className='mb-1 me-3 clamp-1'>\n <Text phrase='viewOriginal' /> <AppLink appLink={backToAppLink} className='text-info'>{backToName}</AppLink>\n </div>\n }\n </div>\n </div>\n </LanguageNamespaceContext.Provider>\n );\n}\n","import React from 'react';\nimport { createHtmlPortalNode, OutPortal } from 'react-reverse-portal';\n\nimport { CheckMarkStatus } from 'libs/shared/components/check-mark-button/CheckMarkButton';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { Config, CurrentUser, InteractiveMetadata, PlayerViewKey, PresentationAudience, UnionShareObject, YearGroup } from 'libs/shared/interfaces';\nimport { CommonVideoProps } from 'libs/shared/interfaces/CommonVideoProps';\nimport { AuthToken } from 'libs/shared/interfaces/models/AuthToken';\nimport { PlayViewQueryParams } from 'libs/shared/interfaces/query-params/PlayViewQueryParams';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { ArchivedBanner } from 'shared/components/play-page/ArchivedBanner';\nimport { RelatedVideos } from 'shared/components/related-videos/RelatedVideos';\nimport { VideoActionsLocation } from 'shared/hooks/use-video-actions/useVideoActions';\nimport { RelatedVideosHash } from 'shared/hooks/useGetRelatedVideos';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\nimport { LitePlayerView } from 'shared/views/lite-player/LitePlayerView';\n\nimport { InteractiveTitleAndActions } from '../interactive-title-and-actions/InteractiveTitleAndActions';\n\ninterface PlayInteractiveProps {\n interactive: InteractiveMetadata;\n yearGroups: YearGroup[];\n currentUser: CurrentUser;\n token: AuthToken;\n config: Config;\n audiences: PresentationAudience[];\n queryParams: PlayViewQueryParams;\n viewKey: PlayerViewKey;\n startTime?: string;\n endTime?: string;\n relatedVideos: RelatedVideosHash;\n commonVideoProps: CommonVideoProps;\n\n // Share view only\n shareLink?: UnionShareObject;\n sharerInstanceRegion?: string;\n checkMarkStatus?: CheckMarkStatus;\n collectAnonResults?: boolean;\n\n publicName?: string;\n profileId?: string;\n}\n\nexport function PlayInteractive(props: PlayInteractiveProps): JSX.Element {\n const [ showHeading, setShowHeading ] = React.useState(true);\n\n const isArchived = VideoHelper.isVideoTypeArchived(props.interactive);\n\n const summaryPortalNode = React.useMemo(() => createHtmlPortalNode(), []);\n\n const { hasPermissions } = usePermissions();\n\n function onShowSummary(showing: boolean): void {\n setShowHeading(!showing);\n }\n\n return (\n <div className='px-3'>\n {isArchived && <ArchivedBanner typeId={props.interactive.typeId} hasStudentExperience />}\n\n <div className='mb-3'>\n <LitePlayerView\n config={props.config}\n video={props.interactive}\n currentUser={props.currentUser}\n shareLink={props.shareLink}\n viewKey={props.viewKey}\n startTime={props.startTime}\n presentationSlug={null}\n context={props.queryParams?.context}\n contextId={props.queryParams?.contextId}\n playNext={props.queryParams?.playNext}\n mode='default'\n relatedVideos={props.relatedVideos?.videos}\n onShowSummary={onShowSummary}\n summaryPortalNode={summaryPortalNode}\n token={props.token}\n collectAnonResults={props.collectAnonResults}\n />\n </div>\n\n {/* This wrapping div is here because react seems to not want to play nice\n with adding or removing a node just ahead of an OutPortal */}\n <div>\n {showHeading && (\n <InteractiveTitleAndActions\n interactive={props.interactive}\n location={VideoActionsLocation.PlayPage}\n commonVideoProps={props.commonVideoProps}\n shareId={props.shareLink?.id}\n />\n )}\n </div>\n \n <OutPortal node={summaryPortalNode}></OutPortal>\n\n {!hasPermissions(PermissionName.StudentExperience) && (\n <RelatedVideos\n presentationSlug={null}\n currentVideo={props.interactive}\n currentUser={props.currentUser}\n relatedVideos={props.relatedVideos}\n audiences={props.audiences}\n getVideoAppLink={(v, opts) => VideoAppLinkHelper.getAppLink(v, {\n ...opts,\n context: props.queryParams.context,\n contextId: props.queryParams.contextId,\n playNext: props.queryParams.playNext,\n shareId: props.shareLink?.id,\n moviesAndTv: props.queryParams.mtv,\n includeContext: props.currentUser?.isAuthenticated\n }, null)}\n moviesAndTv={props.queryParams.mtv}\n commonVideoProps={props.commonVideoProps}\n />\n )}\n </div>\n );\n}\n","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ToggleSwitch } from 'libs/shared/components/toggle-switch/ToggleSwitch';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { ArchiveSvg } from 'libs/shared/images/svg/objects/ArchiveSvg';\n\nconst namespace = 'interactives.previewInteractive';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface InteractiveAlertBannerProps {\n isPreviewPreventScrubbingEnabled: boolean;\n isPreviewingPreventScrubbing: boolean;\n toggleStudentMode: () => void;\n isArchived: boolean;\n}\n\nexport function InteractiveAlertBanner(props: InteractiveAlertBannerProps): JSX.Element {\n return (\n <div className='alert text-dark bg-light-blue px-2 rounded d-flex flex-column flex-lg-row justify-content-between mb-3 align-items-center' role='alert'>\n {!props.isArchived ? <Text phrase='alert' /> : (\n <div className='d-flex align-items-center'>\n <SvgContainer\n svg={ArchiveSvg}\n size={SvgContainerSize.Standard}\n className='me-2 svg-container'\n />\n \n <div className='w-100'>\n <p className='fw-semibold mb-0'>{getPhrase('archivedInfoTitle')}</p>\n <p className='mb-1'>{getPhrase('archivedInfo')}</p>\n </div>\n </div>\n )}\n {props.isPreviewPreventScrubbingEnabled && (\n <Tooltip\n title={getPhrase('previewPreventScrubbingExplain')}\n trigger={[ 'hover', 'focus' ]}\n spanHack\n >\n <div className='d-flex mt-1 mt-lg-0'>\n <div className='me-2'><Text phrase='previewPreventScrubbing'/></div>\n <ToggleSwitch on={props.isPreviewingPreventScrubbing} onClick={props.toggleStudentMode} />\n </div>\n </Tooltip>\n )}\n </div>\n );\n}\n","import React from 'react';\n\nexport function usePreviewPreventInteractive(\n previewPreventInteractive: boolean,\n togglePreviewPreventInteractive: () => void\n): void {\n React.useEffect(() => {\n togglePreviewPreventInteractive();\n }, [previewPreventInteractive]);\n}\n","import * as React from 'react';\nimport { OutPortal } from 'react-reverse-portal';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { Breadcrumb, Breadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { ExpandableText } from 'libs/shared/components/expandable-text/ExpandableText';\nimport { InteractiveWidgetItem } from 'libs/shared/components/play-page/interactives-widget/InteractiveWidgetItem';\nimport { LanguageNamespaceContext } from 'libs/shared/components/text/Text';\nimport { FixedWidget } from 'libs/shared/components/widgets/fixed-widget';\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 { WidgetContents } from 'libs/shared/enums/WidgetContents';\nimport { CurrentUser, Interactive, InteractiveMetadata, PresentationAudience } from 'libs/shared/interfaces';\nimport { CommonVideoProps } from 'libs/shared/interfaces/CommonVideoProps';\nimport { AuthToken } from 'libs/shared/interfaces/models/AuthToken';\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 { RestrictionBanner } from 'shared/components/play-page/RestrictionBanner';\nimport { RelatedVideos } from 'shared/components/related-videos/RelatedVideos';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { VideoActionsLocation } from 'shared/hooks/use-video-actions/useVideoActions';\nimport { RelatedVideosHash } from 'shared/hooks/useGetRelatedVideos';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nimport { InteractiveAlertBanner } from 'apps/interactives/components/preview-interactive/InteractiveAlertBanner';\nimport { usePreviewPreventInteractive } from 'apps/interactives/hooks/interactiveHooks';\n\nimport { InteractiveTitleAndActions } from '../interactive-title-and-actions/InteractiveTitleAndActions';\n\nconst namespace = 'interactives.previewInteractive';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface PreviewInteractiveProps {\n interactive: InteractiveMetadata;\n interactives: InteractiveMetadata[];\n token?: AuthToken;\n currentUser: CurrentUser;\n queryParams: PlayViewQueryParams;\n audiences: PresentationAudience[];\n isPreviewPreventScrubbingEnabled: boolean;\n relatedVideos: RelatedVideosHash;\n canManageVideoAccess: boolean;\n breadcrumbs?: Breadcrumb[];\n commonVideoProps: CommonVideoProps;\n\n // Share view only\n shareId?: string;\n}\n\nexport function PreviewInteractive(props: PreviewInteractiveProps): JSX.Element {\n const playerContext = usePlayerContext();\n\n const [ isPreviewingPreventScrubbing, setIsPreviewingPreventScrubbing ] = React.useState(false);\n\n const { canConsume } = VideoHelper.getCanBeConsumed(props.interactive);\n\n usePreviewPreventInteractive(isPreviewingPreventScrubbing, togglePreviewPreventScrubbing);\n\n function togglePreviewPreventScrubbing() {\n playerContext.playerRef?.current?.togglePreviewPreventScrubbing?.();\n }\n\n function toggleStudentMode() {\n setIsPreviewingPreventScrubbing(!isPreviewingPreventScrubbing);\n }\n \n const otherInteractives: InteractiveMetadata[] = props.interactives?.filter(i => {\n return i.id.toString() !== props.interactive.id.toString();\n });\n\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <div className='px-4'>\n {!!props.breadcrumbs?.length &&\n <div className='mb-2'>\n <Breadcrumbs breadcrumbs={props.breadcrumbs} />\n </div>\n }\n\n <RestrictionBanner\n restrictions={props.interactive._restrictions}\n yearGroups={props.commonVideoProps.yearGroups}\n objectId={props.interactive.id}\n objectTypeId={MasterType.Interactive}\n canManageVideoAccess={props.canManageVideoAccess}\n />\n\n <InteractiveAlertBanner\n isPreviewPreventScrubbingEnabled={props.isPreviewPreventScrubbingEnabled}\n isPreviewingPreventScrubbing={isPreviewingPreventScrubbing}\n toggleStudentMode={toggleStudentMode}\n isArchived={VideoHelper.isVideoTypeArchived(props.interactive)}\n />\n\n <div className='mb-3'>\n {canConsume && (\n <GlobalPlayerConsumer\n key={props.interactive.id}\n objectId={props.interactive.id}\n objectTypeId={props.interactive.typeId}\n shareId={props.shareId}\n startTime={props.queryParams.t ?? props.queryParams.startTime}\n context={props.queryParams?.context}\n contextId={props.queryParams?.contextId}\n playNext={props.queryParams?.playNext}\n mode='default'\n location='play-page'\n token={props.token}\n />\n )}\n </div>\n \n <InteractiveTitleAndActions\n interactive={props.interactive}\n location={VideoActionsLocation.PlayPage}\n shareId={props.shareId}\n commonVideoProps={props.commonVideoProps}\n />\n\n {props.interactive.description && (\n <ExpandableText lines={5}>\n {() => <p className='mb-0 d-inline'>{props.interactive.description}</p>}\n </ExpandableText>\n )}\n\n <div className='mb-3'>\n <OutPortal node={playerContext.questionListPortalNode}></OutPortal>\n </div>\n\n {!!otherInteractives?.length && (\n <div className='pb-3'>\n \n <FixedWidget\n name={getPhrase('otherInteractives', { count: otherInteractives.length })}\n contents={WidgetContents.Interactives}\n collection={otherInteractives}\n prefetched\n getChildAppLink={(interactive: Interactive) => {\n return {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.VIEW_INTERACTIVE,\n args: [ interactive.id, TextHelper.slugify(interactive.name) ]\n };\n }}\n childComponent={InteractiveWidgetItem}\n extraChildComponentProps={{\n questionsAppLink: {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.PREVIEW_QUESTIONS\n },\n commonVideoProps: props.commonVideoProps\n }}\n analyticsData={{ widgetId: 'interactives' }}\n />\n </div>\n )}\n\n {!VideoHelper.isUgc(props.interactive) && (\n <CitationWidget\n media={props.interactive}\n parentVideo={props.interactive._parentClip || props.interactive._parentVideo}\n contentRegion={props.currentUser.contentRegion}\n shareId={props.shareId}\n presentationSlug={null}\n />\n )}\n\n <RelatedVideos\n presentationSlug={null}\n currentVideo={props.interactive}\n currentUser={props.currentUser}\n audiences={props.audiences}\n relatedVideos={props.relatedVideos}\n getVideoAppLink={(v, opts) => VideoAppLinkHelper.getAppLink(v, {\n ...opts,\n context: props.queryParams.context,\n contextId: props.queryParams.contextId,\n playNext: props.queryParams.playNext,\n shareId: props.shareId,\n moviesAndTv: props.queryParams.mtv,\n includeContext: props.currentUser?.isAuthenticated\n }, null)}\n moviesAndTv={props.queryParams.mtv}\n commonVideoProps={props.commonVideoProps}\n />\n </div>\n </LanguageNamespaceContext.Provider>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BBndy2td2.chunk.js","names":[],"sources":["../../src/shared/hooks/useShouldPreviewInteractive.ts","../../src/apps/interactives/components/interactive-title-and-actions/InteractiveTitleAndActions.tsx","../../src/apps/interactives/components/play-interactive/PlayInteractive.tsx","../../src/apps/interactives/components/preview-interactive/InteractiveAlertBanner.tsx","../../src/apps/interactives/hooks/interactiveHooks.tsx","../../src/apps/interactives/components/preview-interactive/PreviewInteractive.tsx"],"sourcesContent":["import { Flight } from 'libs/common/flight';\n\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ProductId } from 'libs/shared/enums/ProductId';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useProducts } from 'libs/shared/hooks/UseProducts';\nimport { CurrentUser, UnionShareObject } from 'libs/shared/interfaces';\n\nexport function useShouldPreviewInteractive(shareLink?: UnionShareObject) {\n const { hasPermissions } = usePermissions();\n const { hasProduct } = useProducts();\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n return !hasPermissions(PermissionName.StudentExperience) &&\n hasProduct(ProductId.Primary) &&\n currentUser.data.isAuthenticated &&\n (!shareLink || shareLink.version === 'v1'); // Previewing shares is not supported for Share 2.0 links\n}\n","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { Actions as ActionsComponent } from 'libs/shared/components/actions/Actions';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\nimport { RestrictionPadlock } from 'libs/shared/components/video-list/components/restriction-padlock/RestrictionPadlock';\nimport { CurationStatus } from 'libs/shared/enums/CurationStatus';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { InteractiveMetadata } from 'libs/shared/interfaces';\nimport { CommonVideoProps } from 'libs/shared/interfaces/CommonVideoProps';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { useVideoActions, VideoActionsLocation } from 'shared/hooks/use-video-actions/useVideoActions';\n\nconst namespace = 'interactives.interactiveTitleAndActions';\n\nfunction getBackToData(interactive: InteractiveMetadata): [name: string, appLink: Core.AppLink] {\n let name: string;\n let appLink: Core.AppLink;\n \n if (interactive._parentClip) {\n name = interactive._parentClip.name;\n appLink = {\n application: AppChannels.CLIPS,\n action: Actions.Clips.PLAY_CLIP,\n args: [ interactive._parentClip.id, TextHelper.slugify(interactive._parentClip.name) ]\n };\n } else {\n name = interactive._parentVideo.name;\n appLink = {\n application: AppChannels.VIDEOS,\n action: Actions.Videos.PLAY_VIDEO,\n args: [\n null,\n interactive._parentVideo.id,\n TextHelper.slugify(interactive._parentVideo.name)\n ]\n };\n }\n\n return [ name, appLink ];\n}\n\ninterface InteractiveTitleAndActionsProps {\n interactive: InteractiveMetadata;\n location: VideoActionsLocation;\n shareId?: string;\n commonVideoProps: CommonVideoProps;\n}\n\nexport function InteractiveTitleAndActions(props: InteractiveTitleAndActionsProps): JSX.Element {\n const { hasPermissions } = usePermissions();\n const videoActions = useVideoActions({\n location: props.location,\n shareId: props.shareId,\n presentationSlug: null\n });\n\n const hasStudentExperience = hasPermissions(PermissionName.StudentExperience);\n\n const isDraft = props.interactive.status === CurationStatus.Draft;\n const [ backToName, backToAppLink ] = getBackToData(props.interactive);\n \n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <div className='d-flex justify-content-between align-items-center'>\n <div className='inline-block w-100'>\n <div className='ms-2 float-end'>\n {!hasStudentExperience &&\n <ActionsComponent\n actions={videoActions.getVideoActions(props.interactive)}\n actionsDropdownClassName='btn btn-outline-dark'\n fetchMore={() => videoActions.fetchMoreActions(props.interactive)}\n />\n }\n </div>\n\n <h1 className='h3 mb-2'>\n {isDraft && (\n <div className='badge draft-badge me-2 align-bottom flex-shrink-0 h-auto lh-base'>\n <Text phrase='draft' />\n </div>\n )}\n {props.interactive.name}\n {!hasStudentExperience && (\n <RestrictionPadlock\n tooltipPlacement='right'\n className='ps-1 d-inline-block'\n video={props.interactive}\n yearGroups={props.commonVideoProps.yearGroups}\n />\n )}\n </h1>\n {VideoHelper.canViewOriginalVideo(props.interactive) &&\n <div className='mb-1 me-3 clamp-1'>\n <Text phrase='viewOriginal' /> <AppLink appLink={backToAppLink} className='text-info'>{backToName}</AppLink>\n </div>\n }\n </div>\n </div>\n </LanguageNamespaceContext.Provider>\n );\n}\n","import React from 'react';\nimport { createHtmlPortalNode, OutPortal } from 'react-reverse-portal';\n\nimport { CheckMarkStatus } from 'libs/shared/components/check-mark-button/CheckMarkButton';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { Config, CurrentUser, InteractiveMetadata, PlayerViewKey, PresentationAudience, UnionShareObject, YearGroup } from 'libs/shared/interfaces';\nimport { CommonVideoProps } from 'libs/shared/interfaces/CommonVideoProps';\nimport { AuthToken } from 'libs/shared/interfaces/models/AuthToken';\nimport { PlayViewQueryParams } from 'libs/shared/interfaces/query-params/PlayViewQueryParams';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { ArchivedBanner } from 'shared/components/play-page/ArchivedBanner';\nimport { RelatedVideos } from 'shared/components/related-videos/RelatedVideos';\nimport { VideoActionsLocation } from 'shared/hooks/use-video-actions/useVideoActions';\nimport { RelatedVideosHash } from 'shared/hooks/useGetRelatedVideos';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\nimport { LitePlayerView } from 'shared/views/lite-player/LitePlayerView';\n\nimport { InteractiveTitleAndActions } from '../interactive-title-and-actions/InteractiveTitleAndActions';\n\ninterface PlayInteractiveProps {\n interactive: InteractiveMetadata;\n yearGroups: YearGroup[];\n currentUser: CurrentUser;\n token: AuthToken;\n config: Config;\n audiences: PresentationAudience[];\n queryParams: PlayViewQueryParams;\n viewKey: PlayerViewKey;\n startTime?: string;\n endTime?: string;\n relatedVideos: RelatedVideosHash;\n commonVideoProps: CommonVideoProps;\n\n // Share view only\n shareLink?: UnionShareObject;\n sharerInstanceRegion?: string;\n checkMarkStatus?: CheckMarkStatus;\n collectAnonResults?: boolean;\n\n publicName?: string;\n profileId?: string;\n}\n\nexport function PlayInteractive(props: PlayInteractiveProps): JSX.Element {\n const [ showHeading, setShowHeading ] = React.useState(true);\n\n const isArchived = VideoHelper.isVideoTypeArchived(props.interactive);\n\n const summaryPortalNode = React.useMemo(() => createHtmlPortalNode(), []);\n\n const { hasPermissions } = usePermissions();\n\n function onShowSummary(showing: boolean): void {\n setShowHeading(!showing);\n }\n\n return (\n <div className='px-3'>\n {isArchived && <ArchivedBanner typeId={props.interactive.typeId} hasStudentExperience />}\n\n <div className='mb-3'>\n <LitePlayerView\n config={props.config}\n video={props.interactive}\n currentUser={props.currentUser}\n shareLink={props.shareLink}\n viewKey={props.viewKey}\n startTime={props.startTime}\n presentationSlug={null}\n context={props.queryParams?.context}\n contextId={props.queryParams?.contextId}\n playNext={props.queryParams?.playNext}\n mode='default'\n relatedVideos={props.relatedVideos?.videos}\n onShowSummary={onShowSummary}\n summaryPortalNode={summaryPortalNode}\n token={props.token}\n collectAnonResults={props.collectAnonResults}\n />\n </div>\n\n {/* This wrapping div is here because react seems to not want to play nice\n with adding or removing a node just ahead of an OutPortal */}\n <div>\n {showHeading && (\n <InteractiveTitleAndActions\n interactive={props.interactive}\n location={VideoActionsLocation.PlayPage}\n commonVideoProps={props.commonVideoProps}\n shareId={props.shareLink?.id}\n />\n )}\n </div>\n \n <OutPortal node={summaryPortalNode}></OutPortal>\n\n {!hasPermissions(PermissionName.StudentExperience) && (\n <RelatedVideos\n presentationSlug={null}\n currentVideo={props.interactive}\n currentUser={props.currentUser}\n relatedVideos={props.relatedVideos}\n audiences={props.audiences}\n getVideoAppLink={(v, opts) => VideoAppLinkHelper.getAppLink(v, {\n ...opts,\n context: props.queryParams.context,\n contextId: props.queryParams.contextId,\n playNext: props.queryParams.playNext,\n shareId: props.shareLink?.id,\n moviesAndTv: props.queryParams.mtv,\n includeContext: props.currentUser?.isAuthenticated\n }, null)}\n moviesAndTv={props.queryParams.mtv}\n commonVideoProps={props.commonVideoProps}\n />\n )}\n </div>\n );\n}\n","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ToggleSwitch } from 'libs/shared/components/toggle-switch/ToggleSwitch';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { ArchiveSvg } from 'libs/shared/images/svg/objects/ArchiveSvg';\n\nconst namespace = 'interactives.previewInteractive';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface InteractiveAlertBannerProps {\n isPreviewPreventScrubbingEnabled: boolean;\n isPreviewingPreventScrubbing: boolean;\n toggleStudentMode: () => void;\n isArchived: boolean;\n}\n\nexport function InteractiveAlertBanner(props: InteractiveAlertBannerProps): JSX.Element {\n return (\n <div className='alert text-dark bg-light-blue px-2 rounded d-flex flex-column flex-lg-row justify-content-between mb-3 align-items-center' role='alert'>\n {!props.isArchived ? <Text phrase='alert' /> : (\n <div className='d-flex align-items-center'>\n <SvgContainer\n svg={ArchiveSvg}\n size={SvgContainerSize.Standard}\n className='me-2 svg-container'\n />\n \n <div className='w-100'>\n <p className='fw-semibold mb-0'>{getPhrase('archivedInfoTitle')}</p>\n <p className='mb-1'>{getPhrase('archivedInfo')}</p>\n </div>\n </div>\n )}\n {props.isPreviewPreventScrubbingEnabled && (\n <Tooltip\n title={getPhrase('previewPreventScrubbingExplain')}\n trigger={[ 'hover', 'focus' ]}\n spanHack\n >\n <div className='d-flex mt-1 mt-lg-0'>\n <div className='me-2'><Text phrase='previewPreventScrubbing'/></div>\n <ToggleSwitch on={props.isPreviewingPreventScrubbing} onClick={props.toggleStudentMode} />\n </div>\n </Tooltip>\n )}\n </div>\n );\n}\n","import React from 'react';\n\nexport function usePreviewPreventInteractive(\n previewPreventInteractive: boolean,\n togglePreviewPreventInteractive: () => void\n): void {\n React.useEffect(() => {\n togglePreviewPreventInteractive();\n }, [previewPreventInteractive]);\n}\n","import * as React from 'react';\nimport { OutPortal } from 'react-reverse-portal';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { Breadcrumb, Breadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { ExpandableText } from 'libs/shared/components/expandable-text/ExpandableText';\nimport { InteractiveWidgetItem } from 'libs/shared/components/play-page/interactives-widget/InteractiveWidgetItem';\nimport { LanguageNamespaceContext } from 'libs/shared/components/text/Text';\nimport { FixedWidget } from 'libs/shared/components/widgets/fixed-widget';\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 { WidgetContents } from 'libs/shared/enums/WidgetContents';\nimport { CurrentUser, Interactive, InteractiveMetadata, PresentationAudience } from 'libs/shared/interfaces';\nimport { CommonVideoProps } from 'libs/shared/interfaces/CommonVideoProps';\nimport { AuthToken } from 'libs/shared/interfaces/models/AuthToken';\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 { RestrictionBanner } from 'shared/components/play-page/RestrictionBanner';\nimport { RelatedVideos } from 'shared/components/related-videos/RelatedVideos';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { VideoActionsLocation } from 'shared/hooks/use-video-actions/useVideoActions';\nimport { RelatedVideosHash } from 'shared/hooks/useGetRelatedVideos';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nimport { InteractiveAlertBanner } from 'apps/interactives/components/preview-interactive/InteractiveAlertBanner';\nimport { usePreviewPreventInteractive } from 'apps/interactives/hooks/interactiveHooks';\n\nimport { InteractiveTitleAndActions } from '../interactive-title-and-actions/InteractiveTitleAndActions';\n\nconst namespace = 'interactives.previewInteractive';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface PreviewInteractiveProps {\n interactive: InteractiveMetadata;\n interactives: InteractiveMetadata[];\n token?: AuthToken;\n currentUser: CurrentUser;\n queryParams: PlayViewQueryParams;\n audiences: PresentationAudience[];\n isPreviewPreventScrubbingEnabled: boolean;\n relatedVideos: RelatedVideosHash;\n canManageVideoAccess: boolean;\n breadcrumbs?: Breadcrumb[];\n commonVideoProps: CommonVideoProps;\n\n // Share view only\n shareId?: string;\n}\n\nexport function PreviewInteractive(props: PreviewInteractiveProps): JSX.Element {\n const playerContext = usePlayerContext();\n\n const [ isPreviewingPreventScrubbing, setIsPreviewingPreventScrubbing ] = React.useState(false);\n\n const { canConsume } = VideoHelper.getCanBeConsumed(props.interactive);\n\n usePreviewPreventInteractive(isPreviewingPreventScrubbing, togglePreviewPreventScrubbing);\n\n function togglePreviewPreventScrubbing() {\n playerContext.playerRef?.current?.togglePreviewPreventScrubbing?.();\n }\n\n function toggleStudentMode() {\n setIsPreviewingPreventScrubbing(!isPreviewingPreventScrubbing);\n }\n \n const otherInteractives: InteractiveMetadata[] = props.interactives?.filter(i => {\n return i.id.toString() !== props.interactive.id.toString();\n });\n\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <div className='px-4'>\n {!!props.breadcrumbs?.length &&\n <div className='mb-2'>\n <Breadcrumbs breadcrumbs={props.breadcrumbs} />\n </div>\n }\n\n <RestrictionBanner\n restrictions={props.interactive._restrictions}\n yearGroups={props.commonVideoProps.yearGroups}\n objectId={props.interactive.id}\n objectTypeId={MasterType.Interactive}\n canManageVideoAccess={props.canManageVideoAccess}\n />\n\n <InteractiveAlertBanner\n isPreviewPreventScrubbingEnabled={props.isPreviewPreventScrubbingEnabled}\n isPreviewingPreventScrubbing={isPreviewingPreventScrubbing}\n toggleStudentMode={toggleStudentMode}\n isArchived={VideoHelper.isVideoTypeArchived(props.interactive)}\n />\n\n <div className='mb-3'>\n {canConsume && (\n <GlobalPlayerConsumer\n key={props.interactive.id}\n objectId={props.interactive.id}\n objectTypeId={props.interactive.typeId}\n shareId={props.shareId}\n startTime={props.queryParams.t ?? props.queryParams.startTime}\n context={props.queryParams?.context}\n contextId={props.queryParams?.contextId}\n playNext={props.queryParams?.playNext}\n mode='default'\n location='play-page'\n token={props.token}\n />\n )}\n </div>\n \n <InteractiveTitleAndActions\n interactive={props.interactive}\n location={VideoActionsLocation.PlayPage}\n shareId={props.shareId}\n commonVideoProps={props.commonVideoProps}\n />\n\n {props.interactive.description && (\n <ExpandableText lines={5}>\n {() => <p className='mb-0 d-inline'>{props.interactive.description}</p>}\n </ExpandableText>\n )}\n\n <div className='mb-3'>\n <OutPortal node={playerContext.questionListPortalNode}></OutPortal>\n </div>\n\n {!!otherInteractives?.length && (\n <div className='pb-3'>\n \n <FixedWidget\n name={getPhrase('otherInteractives', { count: otherInteractives.length })}\n contents={WidgetContents.Interactives}\n collection={otherInteractives}\n prefetched\n getChildAppLink={(interactive: Interactive) => {\n return {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.VIEW_INTERACTIVE,\n args: [ interactive.id, TextHelper.slugify(interactive.name) ]\n };\n }}\n childComponent={InteractiveWidgetItem}\n extraChildComponentProps={{\n questionsAppLink: {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.PREVIEW_QUESTIONS\n },\n commonVideoProps: props.commonVideoProps\n }}\n analyticsData={{ widgetId: 'interactives' }}\n />\n </div>\n )}\n\n {!VideoHelper.isUgc(props.interactive) && (\n <CitationWidget\n media={props.interactive}\n parentVideo={props.interactive._parentClip || props.interactive._parentVideo}\n contentRegion={props.currentUser.contentRegion}\n shareId={props.shareId}\n presentationSlug={null}\n />\n )}\n\n <RelatedVideos\n presentationSlug={null}\n currentVideo={props.interactive}\n currentUser={props.currentUser}\n audiences={props.audiences}\n relatedVideos={props.relatedVideos}\n getVideoAppLink={(v, opts) => VideoAppLinkHelper.getAppLink(v, {\n ...opts,\n context: props.queryParams.context,\n contextId: props.queryParams.contextId,\n playNext: props.queryParams.playNext,\n shareId: props.shareId,\n moviesAndTv: props.queryParams.mtv,\n includeContext: props.currentUser?.isAuthenticated\n }, null)}\n moviesAndTv={props.queryParams.mtv}\n commonVideoProps={props.commonVideoProps}\n />\n </div>\n </LanguageNamespaceContext.Provider>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["scripts/wmwWqIeA.chunk.js","scripts/DAXXjFlN.chunk.js","scripts/B785hxeE.chunk.js","scripts/C2w0pmFW.chunk.js","scripts/wrLrTezN.chunk.js","scripts/BX0wDJmp.chunk.js","scripts/CMDJWWg3.chunk.js","scripts/DMnm3Ewv.chunk.js","scripts/BVnMI-dl.chunk.js","scripts/BruX4yYB.chunk.js","scripts/C1SLt-ar.chunk.js","scripts/NlCAcBdo.chunk.js","scripts/oPIkfKWW2.chunk.js","scripts/DZX1tZ-D2.chunk.js","scripts/Ky1--4w3.chunk.js","scripts/CZgWQFsJ.chunk.js","scripts/CcDvlSWl2.chunk.js","scripts/BftnFbcr.chunk.js","scripts/DPtsihFR.chunk.js","scripts/Bkr6FS4c.chunk.js","scripts/CYEpX3hx.chunk.js","scripts/DtGDVg4O2.chunk.js","scripts/7e14a3uA2.chunk.js","scripts/DbSUQ2A12.chunk.js","scripts/8U-YTgZd.chunk.js","scripts/DsXWD-Sn.chunk.js","scripts/BDwjs8qz2.chunk.js","scripts/CVHQXNzi2.chunk.js","scripts/Bt61LQbp.chunk.js","scripts/BYSskNbK.chunk.js","scripts/D_gWf2lC.chunk.js","scripts/ZwDDc8Zd.chunk.js","scripts/CQyJ7YGa.chunk.js","scripts/e57H3T-k.chunk.js","scripts/CPKixrGf.chunk.js","scripts/DkbPNKFO.chunk.js","scripts/BXTI9cmX.chunk.js","scripts/CjA4Q5pm.chunk.js","scripts/FAs_d-DP.chunk.js","scripts/Bzihudtn.chunk.js","scripts/BFXddaSP.chunk.js","scripts/B3TDTJSl.chunk.js","scripts/YjWbDb2Y.chunk.js","scripts/CAs8k4pN.chunk.js","scripts/DIqO2TFN.chunk.js","scripts/Byg072EM.chunk.js","scripts/CbfkmRJL.chunk.js","scripts/DTGfiG8Y.chunk.js","scripts/BxbRBSiP.chunk.js","scripts/CmcCVXi32.chunk.js","scripts/Kx-r9MXT.chunk.js","scripts/M97_Ztsu.chunk.js","scripts/BWaKdG0l.chunk.js","scripts/PgzMrOyM.chunk.js","scripts/C5j5LRut2.chunk.js","scripts/Bneb37232.chunk.js","scripts/C1PTqhPY2.chunk.js","scripts/xwiwWcv12.chunk.js","scripts/DdsRCMkN.chunk.js","scripts/CgCqPbjJ.chunk.js","scripts/ckbu5kCm.chunk.js","scripts/CVwZo1Z9.chunk.js","scripts/dQS4_Xmg.chunk.js","scripts/lxZ9TUW52.chunk.js","scripts/YakGe6vv2.chunk.js","scripts/C2qMXdv92.chunk.js","scripts/DQgG9njb.chunk.js","css/ovkTsYMl.chunk.css","scripts/C5rBgkQH.chunk.js","scripts/BDthD6uY.chunk.js","scripts/BO9bIjKX2.chunk.js","scripts/BQmAa5a22.chunk.js","scripts/D7gF8PAd2.chunk.js","scripts/B4PsTQs82.chunk.js","scripts/BXpZzabC.chunk.js","scripts/6P6a6X0V2.chunk.js","scripts/B0aLOQEJ2.chunk.js","scripts/B7fTfFj62.chunk.js","scripts/BK089B4C2.chunk.js","scripts/Tr5-kahg2.chunk.js","scripts/BRcHS92O2.chunk.js","scripts/Dbr8pRhX2.chunk.js","css/0ZFm8qBN.chunk.css","scripts/DXeT_p8s2.chunk.js","scripts/TTO6HcNP.chunk.js","scripts/odtNXW-p.chunk.js","scripts/B_N30_Kb.chunk.js","scripts/CG6nHuPu.chunk.js","scripts/C9RwIAEU.chunk.js","scripts/Bj85BGmx.chunk.js","scripts/DlFHFcJP.chunk.js","scripts/BDu69--Y.chunk.js","scripts/D7t5_of1.chunk.js","scripts/Bsc7roaB.chunk.js","scripts/CsF4wDV1.chunk.js","scripts/BocITs4B.chunk.js","scripts/klg9VDIV2.chunk.js","scripts/FbPIRcRM2.chunk.js","scripts/DB_BawmH2.chunk.js","scripts/BQKcAczf.chunk.js","scripts/VKE7kI_f.chunk.js","scripts/DiDefbcf.chunk.js","scripts/DOnmTMfX.chunk.js","scripts/A8xLZrSw.chunk.js","scripts/BGGL8m_U2.chunk.js","scripts/AEgPyCQE.chunk.js","scripts/B2INd6bh.chunk.js","css/DXwbT8Tl.chunk.css","scripts/CMLErBju.chunk.js","scripts/D9a0OIfi2.chunk.js","scripts/QCFxJYkI2.chunk.js","scripts/B5KuARvS.chunk.js","scripts/BLz8BPS3.chunk.js","scripts/POQS3gV6.chunk.js","scripts/OmYpHs7g.chunk.js","scripts/Ci5E3nqm2.chunk.js","scripts/Bbp2U9GK2.chunk.js","css/9awfngRG.chunk.css","scripts/BGhJ8TEx.chunk.js","scripts/DWLFYiMu.chunk.js","scripts/DDLr4JCi.chunk.js","scripts/BDif2ytg.chunk.js","scripts/CbzENe5-.chunk.js","scripts/D3WOV5RE.chunk.js","scripts/tzcygo702.chunk.js","scripts/rVRhgtHY2.chunk.js","scripts/CYuozvgN2.chunk.js","scripts/BSYDOevb2.chunk.js","scripts/B9EhHD852.chunk.js","scripts/CpP_XziV2.chunk.js","scripts/DuIIaGgk2.chunk.js","scripts/CpFtf-tI2.chunk.js","scripts/BTd65Rcb2.chunk.js","scripts/BOhYYYQ82.chunk.js","scripts/Ch3YS7hL2.chunk.js","scripts/C1Vhxb1X2.chunk.js","scripts/B8J64DHS2.chunk.js","scripts/DW51cSV_2.chunk.js","scripts/BrOxSpKn2.chunk.js","scripts/D0DHZnqb2.chunk.js","scripts/iZ7EqNA72.chunk.js","scripts/CXnhm0VS2.chunk.js","scripts/OL3Z6Yp62.chunk.js","scripts/_JVBGmt12.chunk.js","scripts/lhZ5v-iN2.chunk.js","scripts/CmV-znIi2.chunk.js","scripts/B_rKniXe2.chunk.js","css/Cq6P0UxT.chunk.css","scripts/DR9DEoQL.chunk.js","scripts/BpFrvPNA2.chunk.js","scripts/B-eFTZdx2.chunk.js","scripts/BghRSiDw2.chunk.js","scripts/DMaQV7L2.chunk.js","scripts/CETzluXN.chunk.js","scripts/BmR4qY-v2.chunk.js","scripts/cX5MHowe.chunk.js","scripts/qjhBmDMz2.chunk.js","scripts/BIO-5Tfr2.chunk.js","scripts/1pA_p8rV2.chunk.js","scripts/CfVIZBcI2.chunk.js","scripts/D8uRDrkd.chunk.js","scripts/J0QUvPGS.chunk.js","scripts/wdQVW3s52.chunk.js","scripts/rPN1bfU12.chunk.js","scripts/BIzu5ufQ.chunk.js","scripts/CFPlcqbe2.chunk.js","scripts/Cr6TXzQQ2.chunk.js","scripts/BcibGFe42.chunk.js","scripts/WvK58Ge12.chunk.js","scripts/BJUbYu222.chunk.js","scripts/BBDxSGT52.chunk.js","scripts/5ONJSThP.chunk.js","scripts/C7HU4huj.chunk.js","scripts/BlGyXBAH2.chunk.js","scripts/Dc1hYuQ12.chunk.js","scripts/94BdkbDF.chunk.js","scripts/C-THHyTP.chunk.js","scripts/Dg1mFtY2.chunk.js","css/BM1mrJH4.chunk.css","scripts/QDUcHuL-2.chunk.js","scripts/DCBtWC6W.chunk.js","scripts/DYKH_3un.chunk.js","scripts/CunDpHqX.chunk.js","css/0ZqRj7up.chunk.css","scripts/veTYa0VS2.chunk.js","css/D1t0PpMS.chunk.css","scripts/QrUfkwZX.chunk.js","scripts/CMFEV5TR.chunk.js","scripts/Ds8-TJo42.chunk.js","scripts/C3q_xvci.chunk.js","scripts/Ce8kGUCD2.chunk.js","scripts/DlEtkSBj2.chunk.js","scripts/BxYKQEUG2.chunk.js","scripts/CbqdME7V2.chunk.js","scripts/C4P0fr5N.chunk.js","scripts/C-oZxdla.chunk.js","css/JvwYHocG.chunk.css","scripts/C9a9PaRW2.chunk.js","scripts/C0exjRXJ2.chunk.js","scripts/DR6opUyo.chunk.js","scripts/CX9P14FO.chunk.js","scripts/BcPRRCy1.chunk.js","scripts/r6qFZ4E_.chunk.js","scripts/CNxJMwxC.chunk.js","scripts/CQRza4Ga.chunk.js","scripts/CIkIVGMZ.chunk.js","scripts/Epqx0J1v.chunk.js","scripts/BDpRhbS0.chunk.js","scripts/DgRi9T0s.chunk.js","scripts/9LNlP5yJ.chunk.js","css/zFl67mql.chunk.css","scripts/DH76RJ7r.chunk.js","scripts/Vp01-r6R.chunk.js","css/B27vnbEi.chunk.css","scripts/C13eKcAl.chunk.js","scripts/DsDO_2P5.chunk.js","scripts/CYrPnKaS.chunk.js","scripts/gEYsxARL.chunk.js","scripts/BdNi1E8r2.chunk.js","scripts/BQ8XE4CQ.chunk.js","scripts/CEtJop-5.chunk.js","scripts/Delmxf6C.chunk.js","scripts/wgkIoKbA.chunk.js","css/FUAcQhsk.chunk.css","scripts/pWSEJIR4.chunk.js","scripts/CE2wLoIp.chunk.js","scripts/Dat7ugzw2.chunk.js","scripts/DN9L106e.chunk.js","scripts/ChPM4MoX.chunk.js","scripts/BM2EJL9g.chunk.js","scripts/CODiipiB.chunk.js","scripts/BQBnQ5fu.chunk.js","scripts/2AIpru28.chunk.js","scripts/DLXZNpMc.chunk.js","scripts/E5Pmu4O7.chunk.js","scripts/mIzlMVvp.chunk.js","scripts/BP_ivKVo.chunk.js","scripts/BiK2I_VY.chunk.js","scripts/D0Jec0hb.chunk.js","scripts/DH2Z2vbl.chunk.js","css/De40Dg3O.chunk.css","scripts/C7_5k1dQ.chunk.js","scripts/CKOWgMyj.chunk.js","scripts/D5yUWL7p.chunk.js","scripts/-Plmz9lO.chunk.js","scripts/BwelEZs92.chunk.js","scripts/DW24qN_e2.chunk.js","scripts/CFfjCXef2.chunk.js","scripts/HT_TXzUd2.chunk.js","scripts/DFIgRAfX2.chunk.js","css/DGerDKqO.chunk.css","scripts/1Z911hEd2.chunk.js","scripts/CuVGnzB82.chunk.js","scripts/CvNHBl0q2.chunk.js","scripts/bWC12YrP.chunk.js","scripts/DW-fYtM02.chunk.js","scripts/BVk9tE02.chunk.js","scripts/dEqScqMh2.chunk.js","scripts/D1EthTiX.chunk.js","scripts/CXVBjdpb.chunk.js","scripts/gl4k7dtw.chunk.js","scripts/CfkLy0le.chunk.js","scripts/FrZYF97F.chunk.js","scripts/De16zmhB.chunk.js","scripts/BgtAUy1L.chunk.js","scripts/C58qLDx-.chunk.js","scripts/tYviAM3E.chunk.js","scripts/C2uC_ups.chunk.js","scripts/Yh8_3xNt.chunk.js","scripts/BEPAtNJf.chunk.js","scripts/D2jl5vrv.chunk.js","scripts/BGswYbRT.chunk.js","scripts/CQnnMJiM.chunk.js","css/BFARciSU.chunk.css","scripts/BihfmPAZ.chunk.js","scripts/CxEHETCC.chunk.js","scripts/Dy3xpenS.chunk.js","scripts/Bb3D0iuD.chunk.js","scripts/o_O53MMd.chunk.js","scripts/BYRIQ-vA.chunk.js","scripts/C4SwJrBy.chunk.js","scripts/D1UCk2Gf.chunk.js","scripts/Bv4_l1OV.chunk.js","scripts/CRYAfFP1.chunk.js","scripts/DqM363Cd.chunk.js","scripts/9kSpxveW.chunk.js","scripts/CWYDa3Ok.chunk.js","scripts/DDJBf9pK.chunk.js","scripts/CEP-ZPWJ.chunk.js","scripts/Sd2yzkH_.chunk.js","css/DVhPtkT7.chunk.css","css/C1NkrNqQ.chunk.css","scripts/DUXPuDp7.chunk.js","scripts/Q0fOIAoj.chunk.js","scripts/BXhiMgvv2.chunk.js","scripts/CmssK8uN.chunk.js","css/qDyfky2o.chunk.css","scripts/B9VCwo3g2.chunk.js","scripts/B9iz7_rU2.chunk.js","scripts/QOx-iXyN2.chunk.js","scripts/DOj95q7s2.chunk.js","css/DS10jU9V.chunk.css","scripts/CnvMKPMQ2.chunk.js","scripts/CkEPX0FJ2.chunk.js","scripts/DsBWAM3I2.chunk.js","scripts/Csksk-_52.chunk.js","scripts/D3-wtcxf2.chunk.js","scripts/DoJIQb_L2.chunk.js","scripts/DSuhq1Rt2.chunk.js","css/CuSUr3Gp.chunk.css","scripts/Dp6QHgBL2.chunk.js","scripts/xQ8cOBQO2.chunk.js","scripts/C5uTRLOC2.chunk.js","scripts/DdBOZ1oh2.chunk.js","css/QlN9xNpq.chunk.css","scripts/Cvh-7L5i2.chunk.js","scripts/ByszCPst2.chunk.js","scripts/BDBRrgHv2.chunk.js","scripts/DsbcGrr42.chunk.js","scripts/BD_YlxPJ.chunk.js","scripts/9PCtVxot.chunk.js","scripts/DBHDBu1Y.chunk.js","scripts/ryLD1Tv-.chunk.js","scripts/C2s0ZcC4.chunk.js","scripts/GhOuBMgg.chunk.js","scripts/VrcuHT5J.chunk.js","scripts/ss-hkhJP.chunk.js","scripts/vbQVaFMB.chunk.js","scripts/Bv998y2z.chunk.js","scripts/DlgVCjfH.chunk.js","scripts/CjNVxyvt.chunk.js","css/8irsgQJA.chunk.css","scripts/CMSHdliZ.chunk.js","scripts/B9P67xgI.chunk.js","css/W-kt2nNQ.chunk.css","scripts/DkPXJCvI.chunk.js","scripts/BBwaaXE_.chunk.js","scripts/DMZ_X3HL.chunk.js","scripts/DewCxv4i.chunk.js","scripts/BA-ImKky.chunk.js","scripts/D0dR5PgK.chunk.js","scripts/CgZQ46co.chunk.js","scripts/NVkf8UeY.chunk.js","scripts/B2DPLPW5.chunk.js","scripts/B1uYpMWy.chunk.js","scripts/CfwSprmF.chunk.js","scripts/CdYjo8_g.chunk.js","scripts/DtyWwr3N.chunk.js","scripts/B44BW79X.chunk.js","scripts/C4CcxMnx2.chunk.js","css/BdZAqx9q.chunk.css","scripts/DVEOAUu-2.chunk.js","scripts/BHxNnPzi2.chunk.js","css/9hiQ_mdl.chunk.css","scripts/CS5EZKt22.chunk.js","css/C2BdWnV1.chunk.css","scripts/DGA_eT2h2.chunk.js","scripts/BfiSXcgz2.chunk.js","css/BPdg7JW4.chunk.css","scripts/CBdaRnr22.chunk.js","scripts/BY2ETYCl.chunk.js","scripts/DW4eUMeA.chunk.js","scripts/M7cfXU2L.chunk.js","scripts/BBEIIgZ6.chunk.js","css/BgzV9aK4.chunk.css","scripts/DlAOGdRl.chunk.js","css/Bm_3Rmf3.chunk.css","scripts/tnBD84bg2.chunk.js","scripts/DELN_PAD2.chunk.js","scripts/C2pEjcxD.chunk.js","scripts/CfwcyO2N2.chunk.js","scripts/OtQaFdir.chunk.js","scripts/Dopg0SXC.chunk.js","scripts/RjGIOTdP.chunk.js","scripts/BZttqSy7.chunk.js","css/Cfojuplq.chunk.css","scripts/DWeyYfUG.chunk.js","scripts/BKGJztV22.chunk.js","scripts/DIENjKhZ.chunk.js","scripts/B3fF5gkg.chunk.js","scripts/DXhChD7q.chunk.js","scripts/B3xkRGwm2.chunk.js","scripts/ILW-TVyd2.chunk.js","scripts/CHL4nrKG.chunk.js","scripts/Bz3-ThVx.chunk.js","scripts/CHQUozwb.chunk.js","scripts/BiRgdaWH2.chunk.js","scripts/ChDKWvzE2.chunk.js","scripts/CvLLqEKv.chunk.js","css/D2t3ESms.chunk.css","scripts/BPavmm8c.chunk.js","scripts/D7hSSm4r2.chunk.js","css/ChavoTyg.chunk.css","scripts/02GiL0bJ2.chunk.js","scripts/D5hXaTvs.chunk.js","css/DDnpOnVB.chunk.css","scripts/YcLj4o6h.chunk.js","scripts/04PH9RmY.chunk.js","scripts/BcF1QUwe2.chunk.js","scripts/BCMnbt9q2.chunk.js","scripts/BuYVPk2G.chunk.js","scripts/CLOak4u5.chunk.js","scripts/CWMwyVGJ2.chunk.js","scripts/QVHuXdWQ2.chunk.js","scripts/BINgMltM.chunk.js","scripts/C2gD9P17.chunk.js","scripts/BzfCWDOl.chunk.js","scripts/4thdKXE92.chunk.js","scripts/Ib9eoq_Y.chunk.js","css/jCkhZLwg.chunk.css","scripts/lPQgHDFT.chunk.js","scripts/BEo1_qoH.chunk.js","css/C0oMpmDK.chunk.css","scripts/pP_cpHCu2.chunk.js","scripts/j59ag8H4.chunk.js","scripts/BLBtFc2V2.chunk.js","scripts/BXAGAIua2.chunk.js","css/BkC_YdWP.chunk.css","scripts/BdPPslUL2.chunk.js","scripts/DlfmNJFE2.chunk.js","css/Xwy4vqMD.chunk.css","scripts/rCRn6wGn2.chunk.js","scripts/B7l5d09H2.chunk.js","css/BtfuP1Ql.chunk.css","scripts/CLjADRa42.chunk.js","scripts/CI7BnpAu2.chunk.js","scripts/B5tW47L4.chunk.js","css/D5JKYURg.chunk.css","scripts/C0EHsOU6.chunk.js","css/Hj-pf8Rg.chunk.css","scripts/BgblOoyL2.chunk.js","scripts/BM5QQdzk.chunk.js","scripts/sWyD1BKT2.chunk.js","css/BS_E5Dg8.chunk.css","css/Cy7NKnX4.chunk.css","scripts/B-aaIChO2.chunk.js","scripts/BZ45p2V7.chunk.js","css/BH6hCmvU.chunk.css","scripts/CF6KXSqn.chunk.js","scripts/B_9JhhOa.chunk.js","css/DnhOr8Y7.chunk.css","scripts/DkxWaE9O2.chunk.js","css/CBPl-SLD.chunk.css","scripts/_eRiDJm1.chunk.js","scripts/CpbhGCQS2.chunk.js","scripts/Bay_E_912.chunk.js","scripts/CwQ4GF7L2.chunk.js","scripts/MiGiDYuq2.chunk.js","scripts/hN_t6hZ02.chunk.js","scripts/D0n6BTgT.chunk.js","scripts/DXk5ikZM.chunk.js","scripts/DI_gWU0o2.chunk.js","scripts/DMIDfHRi2.chunk.js","scripts/DJXt6rKd2.chunk.js","css/C2QK928M.chunk.css","scripts/_wBbQ-0z2.chunk.js","scripts/BCTM3KG42.chunk.js","scripts/C4CuJJXy2.chunk.js","css/DQ_caKUF.chunk.css","scripts/DCs4jjV6.chunk.js","scripts/D9Vo1T142.chunk.js","scripts/YmXEsLuD.chunk.js","scripts/CFJqHH4w.chunk.js","scripts/BVeF-Kak.chunk.js","scripts/DFTEjJkr.chunk.js","css/Crx9BPxO.chunk.css","scripts/y3q_PHh_.chunk.js","scripts/11tE0tcu.chunk.js","scripts/DyzFu8SA2.chunk.js","css/Cbi3KYBa.chunk.css","scripts/CTx_IXWJ.chunk.js","css/XD2hD8t1.chunk.css","css/n2o1aWTK.chunk.css","scripts/CUxT_PwG.chunk.js","css/BQo3NAc1.chunk.css","scripts/CbKigv11.chunk.js","scripts/gvYe4myj.chunk.js","scripts/Bw7ZKsMG.chunk.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{o as e}from"./DAXXjFlN.chunk.js";import{t}from"./C2w0pmFW.chunk.js";import{t as n}from"./wrLrTezN.chunk.js";import{u as r}from"./BX0wDJmp.chunk.js";import{t as i}from"./CVHQXNzi2.chunk.js";import{t as a}from"./CZgWQFsJ.chunk.js";import{t as o}from"./BXpZzabC.chunk.js";var s=e(t()),c=(e,t)=>{let[n,r]=s.useState();return s.useEffect(()=>{n&&r(null)},[t.videoId]),s.useEffect(()=>{if(!e||n)return;let{objectTypeId:o}=e;switch(t.videoId?o=i.Video:t.clipId?o=i.Clip:t.interactiveId&&(o=i.Interactive),o){case i.Video:{let e=s.lazy(async()=>{let{PlaySharedVideoView:e}=await a(async()=>{let{PlaySharedVideoView:e}=await import(`./
|
|
3
|
-
//# sourceMappingURL=
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["scripts/CfrfHGSh.chunk.js","scripts/DAXXjFlN.chunk.js","scripts/B785hxeE.chunk.js","scripts/C2w0pmFW.chunk.js","scripts/wrLrTezN.chunk.js","scripts/BX0wDJmp.chunk.js","scripts/CMDJWWg3.chunk.js","scripts/DMnm3Ewv.chunk.js","scripts/BVnMI-dl.chunk.js","scripts/BruX4yYB.chunk.js","scripts/C1SLt-ar.chunk.js","scripts/NlCAcBdo.chunk.js","scripts/oPIkfKWW2.chunk.js","scripts/DZX1tZ-D2.chunk.js","scripts/Ky1--4w3.chunk.js","scripts/CZgWQFsJ.chunk.js","scripts/CcDvlSWl2.chunk.js","scripts/BftnFbcr.chunk.js","scripts/DPtsihFR.chunk.js","scripts/Bkr6FS4c.chunk.js","scripts/CYEpX3hx.chunk.js","scripts/DtGDVg4O2.chunk.js","scripts/7e14a3uA2.chunk.js","scripts/DbSUQ2A12.chunk.js","scripts/8U-YTgZd.chunk.js","scripts/DsXWD-Sn.chunk.js","scripts/BDwjs8qz2.chunk.js","scripts/CVHQXNzi2.chunk.js","scripts/Bt61LQbp.chunk.js","scripts/BYSskNbK.chunk.js","scripts/D_gWf2lC.chunk.js","scripts/ZwDDc8Zd.chunk.js","scripts/CQyJ7YGa.chunk.js","scripts/e57H3T-k.chunk.js","scripts/CPKixrGf.chunk.js","scripts/DkbPNKFO.chunk.js","scripts/BXTI9cmX.chunk.js","scripts/CjA4Q5pm.chunk.js","scripts/FAs_d-DP.chunk.js","scripts/Bzihudtn.chunk.js","scripts/BFXddaSP.chunk.js","scripts/B3TDTJSl.chunk.js","scripts/YjWbDb2Y.chunk.js","scripts/CAs8k4pN.chunk.js","scripts/DIqO2TFN.chunk.js","scripts/Byg072EM.chunk.js","scripts/CbfkmRJL.chunk.js","scripts/DTGfiG8Y.chunk.js","scripts/BxbRBSiP.chunk.js","scripts/CmcCVXi32.chunk.js","scripts/Kx-r9MXT.chunk.js","scripts/M97_Ztsu.chunk.js","scripts/BWaKdG0l.chunk.js","scripts/PgzMrOyM.chunk.js","scripts/C5j5LRut2.chunk.js","scripts/Bneb37232.chunk.js","scripts/C1PTqhPY2.chunk.js","scripts/xwiwWcv12.chunk.js","scripts/DdsRCMkN.chunk.js","scripts/CgCqPbjJ.chunk.js","scripts/ckbu5kCm.chunk.js","scripts/CVwZo1Z9.chunk.js","scripts/dQS4_Xmg.chunk.js","scripts/lxZ9TUW52.chunk.js","scripts/YakGe6vv2.chunk.js","scripts/C2qMXdv92.chunk.js","scripts/DQgG9njb.chunk.js","css/ovkTsYMl.chunk.css","scripts/C5rBgkQH.chunk.js","scripts/BDthD6uY.chunk.js","scripts/BO9bIjKX2.chunk.js","scripts/BQmAa5a22.chunk.js","scripts/D7gF8PAd2.chunk.js","scripts/B4PsTQs82.chunk.js","scripts/BXpZzabC.chunk.js","scripts/6P6a6X0V2.chunk.js","scripts/B0aLOQEJ2.chunk.js","scripts/B7fTfFj62.chunk.js","scripts/BK089B4C2.chunk.js","scripts/Tr5-kahg2.chunk.js","scripts/BRcHS92O2.chunk.js","scripts/Dbr8pRhX2.chunk.js","css/0ZFm8qBN.chunk.css","scripts/DXeT_p8s2.chunk.js","scripts/TTO6HcNP.chunk.js","scripts/odtNXW-p.chunk.js","scripts/B_N30_Kb.chunk.js","scripts/CG6nHuPu.chunk.js","scripts/C9RwIAEU.chunk.js","scripts/Bj85BGmx.chunk.js","scripts/DlFHFcJP.chunk.js","scripts/BDu69--Y.chunk.js","scripts/D7t5_of1.chunk.js","scripts/Bsc7roaB.chunk.js","scripts/CsF4wDV1.chunk.js","scripts/BocITs4B.chunk.js","scripts/klg9VDIV2.chunk.js","scripts/FbPIRcRM2.chunk.js","scripts/DB_BawmH2.chunk.js","scripts/BQKcAczf.chunk.js","scripts/VKE7kI_f.chunk.js","scripts/DiDefbcf.chunk.js","scripts/DOnmTMfX.chunk.js","scripts/A8xLZrSw.chunk.js","scripts/BGGL8m_U2.chunk.js","scripts/AEgPyCQE.chunk.js","scripts/B2INd6bh.chunk.js","css/DXwbT8Tl.chunk.css","scripts/CMLErBju.chunk.js","scripts/D9a0OIfi2.chunk.js","scripts/QCFxJYkI2.chunk.js","scripts/B5KuARvS.chunk.js","scripts/BLz8BPS3.chunk.js","scripts/POQS3gV6.chunk.js","scripts/_Cm5O72d.chunk.js","scripts/Ci5E3nqm2.chunk.js","scripts/Bbp2U9GK2.chunk.js","css/9awfngRG.chunk.css","scripts/BGhJ8TEx.chunk.js","scripts/DWLFYiMu.chunk.js","scripts/DDLr4JCi.chunk.js","scripts/BDif2ytg.chunk.js","scripts/CbzENe5-.chunk.js","scripts/D3WOV5RE.chunk.js","scripts/tzcygo702.chunk.js","scripts/rVRhgtHY2.chunk.js","scripts/CYuozvgN2.chunk.js","scripts/BSYDOevb2.chunk.js","scripts/B9EhHD852.chunk.js","scripts/CpP_XziV2.chunk.js","scripts/DuIIaGgk2.chunk.js","scripts/CpFtf-tI2.chunk.js","scripts/BTd65Rcb2.chunk.js","scripts/BOhYYYQ82.chunk.js","scripts/Ch3YS7hL2.chunk.js","scripts/C1Vhxb1X2.chunk.js","scripts/B8J64DHS2.chunk.js","scripts/DW51cSV_2.chunk.js","scripts/BrOxSpKn2.chunk.js","scripts/D0DHZnqb2.chunk.js","scripts/iZ7EqNA72.chunk.js","scripts/CXnhm0VS2.chunk.js","scripts/OL3Z6Yp62.chunk.js","scripts/_JVBGmt12.chunk.js","scripts/lhZ5v-iN2.chunk.js","scripts/CmV-znIi2.chunk.js","scripts/B_rKniXe2.chunk.js","css/Cq6P0UxT.chunk.css","scripts/DR9DEoQL.chunk.js","scripts/BpFrvPNA2.chunk.js","scripts/B-eFTZdx2.chunk.js","scripts/BghRSiDw2.chunk.js","scripts/DMaQV7L2.chunk.js","scripts/CETzluXN.chunk.js","scripts/BmR4qY-v2.chunk.js","scripts/cX5MHowe.chunk.js","scripts/qjhBmDMz2.chunk.js","scripts/BIO-5Tfr2.chunk.js","scripts/1pA_p8rV2.chunk.js","scripts/wpRpI9h02.chunk.js","scripts/D8uRDrkd.chunk.js","scripts/J0QUvPGS.chunk.js","scripts/wdQVW3s52.chunk.js","scripts/rPN1bfU12.chunk.js","scripts/BIzu5ufQ.chunk.js","scripts/CFPlcqbe2.chunk.js","scripts/Cr6TXzQQ2.chunk.js","scripts/BcibGFe42.chunk.js","scripts/WvK58Ge12.chunk.js","scripts/BJUbYu222.chunk.js","scripts/BBDxSGT52.chunk.js","scripts/5ONJSThP.chunk.js","scripts/C7HU4huj.chunk.js","scripts/BlGyXBAH2.chunk.js","scripts/Dc1hYuQ12.chunk.js","scripts/94BdkbDF.chunk.js","scripts/C-THHyTP.chunk.js","scripts/Dg1mFtY2.chunk.js","css/BM1mrJH4.chunk.css","scripts/QDUcHuL-2.chunk.js","scripts/DCBtWC6W.chunk.js","scripts/DYKH_3un.chunk.js","scripts/CunDpHqX.chunk.js","css/0ZqRj7up.chunk.css","scripts/veTYa0VS2.chunk.js","css/D1t0PpMS.chunk.css","scripts/QVwuOts3.chunk.js","scripts/CMFEV5TR.chunk.js","scripts/Ds8-TJo42.chunk.js","scripts/C3q_xvci.chunk.js","scripts/Ce8kGUCD2.chunk.js","scripts/DlEtkSBj2.chunk.js","scripts/BxYKQEUG2.chunk.js","scripts/CbqdME7V2.chunk.js","scripts/C4P0fr5N.chunk.js","scripts/C-oZxdla.chunk.js","css/JvwYHocG.chunk.css","scripts/C9a9PaRW2.chunk.js","scripts/C0exjRXJ2.chunk.js","scripts/DR6opUyo.chunk.js","scripts/CX9P14FO.chunk.js","scripts/BcPRRCy1.chunk.js","scripts/r6qFZ4E_.chunk.js","scripts/CNxJMwxC.chunk.js","scripts/CQRza4Ga.chunk.js","scripts/CIkIVGMZ.chunk.js","scripts/Epqx0J1v.chunk.js","scripts/BDpRhbS0.chunk.js","scripts/DgRi9T0s.chunk.js","scripts/9LNlP5yJ.chunk.js","css/zFl67mql.chunk.css","scripts/DH76RJ7r.chunk.js","scripts/Vp01-r6R.chunk.js","css/B27vnbEi.chunk.css","scripts/C13eKcAl.chunk.js","scripts/DsDO_2P5.chunk.js","scripts/CYrPnKaS.chunk.js","scripts/gEYsxARL.chunk.js","scripts/BdNi1E8r2.chunk.js","scripts/BQ8XE4CQ.chunk.js","scripts/CEtJop-5.chunk.js","scripts/Delmxf6C.chunk.js","scripts/wgkIoKbA.chunk.js","css/FUAcQhsk.chunk.css","scripts/pWSEJIR4.chunk.js","scripts/CE2wLoIp.chunk.js","scripts/Dat7ugzw2.chunk.js","scripts/DN9L106e.chunk.js","scripts/ChPM4MoX.chunk.js","scripts/BM2EJL9g.chunk.js","scripts/CODiipiB.chunk.js","scripts/BQBnQ5fu.chunk.js","scripts/2AIpru28.chunk.js","scripts/DLXZNpMc.chunk.js","scripts/E5Pmu4O7.chunk.js","scripts/mIzlMVvp.chunk.js","scripts/BP_ivKVo.chunk.js","scripts/BiK2I_VY.chunk.js","scripts/D0Jec0hb.chunk.js","scripts/DH2Z2vbl.chunk.js","css/De40Dg3O.chunk.css","scripts/C7_5k1dQ.chunk.js","scripts/CKOWgMyj.chunk.js","scripts/D5yUWL7p.chunk.js","scripts/-Plmz9lO.chunk.js","scripts/BwelEZs92.chunk.js","scripts/DW24qN_e2.chunk.js","scripts/CFfjCXef2.chunk.js","scripts/HT_TXzUd2.chunk.js","scripts/DFIgRAfX2.chunk.js","css/DGerDKqO.chunk.css","scripts/1Z911hEd2.chunk.js","scripts/CuVGnzB82.chunk.js","scripts/CvNHBl0q2.chunk.js","scripts/bWC12YrP.chunk.js","scripts/DW-fYtM02.chunk.js","scripts/BVk9tE02.chunk.js","scripts/dEqScqMh2.chunk.js","scripts/D1EthTiX.chunk.js","scripts/CXVBjdpb.chunk.js","scripts/gl4k7dtw.chunk.js","scripts/CfkLy0le.chunk.js","scripts/FrZYF97F.chunk.js","scripts/De16zmhB.chunk.js","scripts/BgtAUy1L.chunk.js","scripts/C58qLDx-.chunk.js","scripts/tYviAM3E.chunk.js","scripts/C2uC_ups.chunk.js","scripts/Yh8_3xNt.chunk.js","scripts/BEPAtNJf.chunk.js","scripts/D2jl5vrv.chunk.js","scripts/BGswYbRT.chunk.js","scripts/CQnnMJiM.chunk.js","css/BFARciSU.chunk.css","scripts/BihfmPAZ.chunk.js","scripts/CxEHETCC.chunk.js","scripts/Dy3xpenS.chunk.js","scripts/Bb3D0iuD.chunk.js","scripts/o_O53MMd.chunk.js","scripts/BYRIQ-vA.chunk.js","scripts/C4SwJrBy.chunk.js","scripts/D1UCk2Gf.chunk.js","scripts/Bv4_l1OV.chunk.js","scripts/CRYAfFP1.chunk.js","scripts/DqM363Cd.chunk.js","scripts/9kSpxveW.chunk.js","scripts/CWYDa3Ok.chunk.js","scripts/DDJBf9pK.chunk.js","scripts/CEP-ZPWJ.chunk.js","scripts/Sd2yzkH_.chunk.js","css/DVhPtkT7.chunk.css","css/C1NkrNqQ.chunk.css","scripts/DUXPuDp7.chunk.js","scripts/Q0fOIAoj.chunk.js","scripts/BXhiMgvv2.chunk.js","scripts/CmssK8uN.chunk.js","css/qDyfky2o.chunk.css","scripts/B9VCwo3g2.chunk.js","scripts/B9iz7_rU2.chunk.js","scripts/QOx-iXyN2.chunk.js","scripts/DOj95q7s2.chunk.js","css/DS10jU9V.chunk.css","scripts/CnvMKPMQ2.chunk.js","scripts/CkEPX0FJ2.chunk.js","scripts/DsBWAM3I2.chunk.js","scripts/Csksk-_52.chunk.js","scripts/D3-wtcxf2.chunk.js","scripts/DoJIQb_L2.chunk.js","scripts/DSuhq1Rt2.chunk.js","css/CuSUr3Gp.chunk.css","scripts/Dp6QHgBL2.chunk.js","scripts/xQ8cOBQO2.chunk.js","scripts/C5uTRLOC2.chunk.js","scripts/DdBOZ1oh2.chunk.js","css/QlN9xNpq.chunk.css","scripts/Cvh-7L5i2.chunk.js","scripts/ByszCPst2.chunk.js","scripts/BDBRrgHv2.chunk.js","scripts/DsbcGrr42.chunk.js","scripts/BD_YlxPJ.chunk.js","scripts/9PCtVxot.chunk.js","scripts/DBHDBu1Y.chunk.js","scripts/ryLD1Tv-.chunk.js","scripts/C2s0ZcC4.chunk.js","scripts/GhOuBMgg.chunk.js","scripts/VrcuHT5J.chunk.js","scripts/ss-hkhJP.chunk.js","scripts/vbQVaFMB.chunk.js","scripts/Bv998y2z.chunk.js","scripts/DlgVCjfH.chunk.js","scripts/CjNVxyvt.chunk.js","css/8irsgQJA.chunk.css","scripts/CMSHdliZ.chunk.js","scripts/B9P67xgI.chunk.js","css/W-kt2nNQ.chunk.css","scripts/DkPXJCvI.chunk.js","scripts/BBwaaXE_.chunk.js","scripts/DMZ_X3HL.chunk.js","scripts/DewCxv4i.chunk.js","scripts/BA-ImKky.chunk.js","scripts/D0dR5PgK.chunk.js","scripts/CgZQ46co.chunk.js","scripts/NVkf8UeY.chunk.js","scripts/B2DPLPW5.chunk.js","scripts/B1uYpMWy.chunk.js","scripts/CfwSprmF.chunk.js","scripts/CdYjo8_g.chunk.js","scripts/DtyWwr3N.chunk.js","scripts/B44BW79X.chunk.js","scripts/C4CcxMnx2.chunk.js","css/BdZAqx9q.chunk.css","scripts/DVEOAUu-2.chunk.js","scripts/BHxNnPzi2.chunk.js","css/9hiQ_mdl.chunk.css","scripts/CS5EZKt22.chunk.js","css/C2BdWnV1.chunk.css","scripts/DGA_eT2h2.chunk.js","scripts/BfiSXcgz2.chunk.js","css/BPdg7JW4.chunk.css","scripts/CBdaRnr22.chunk.js","scripts/BY2ETYCl.chunk.js","scripts/DW4eUMeA.chunk.js","scripts/M7cfXU2L.chunk.js","scripts/BBEIIgZ6.chunk.js","css/BgzV9aK4.chunk.css","scripts/DlAOGdRl.chunk.js","css/Bm_3Rmf3.chunk.css","scripts/tnBD84bg2.chunk.js","scripts/DELN_PAD2.chunk.js","scripts/C2pEjcxD.chunk.js","scripts/CfwcyO2N2.chunk.js","scripts/OtQaFdir.chunk.js","scripts/Dopg0SXC.chunk.js","scripts/RjGIOTdP.chunk.js","scripts/BZttqSy7.chunk.js","css/Cfojuplq.chunk.css","scripts/DWeyYfUG.chunk.js","scripts/BKGJztV22.chunk.js","scripts/DIENjKhZ.chunk.js","scripts/B3fF5gkg.chunk.js","scripts/DXhChD7q.chunk.js","scripts/B3xkRGwm2.chunk.js","scripts/ILW-TVyd2.chunk.js","scripts/CHL4nrKG.chunk.js","scripts/Bz3-ThVx.chunk.js","scripts/CHQUozwb.chunk.js","scripts/BiRgdaWH2.chunk.js","scripts/ChDKWvzE2.chunk.js","scripts/CvLLqEKv.chunk.js","css/D2t3ESms.chunk.css","scripts/BPavmm8c.chunk.js","scripts/D7hSSm4r2.chunk.js","css/ChavoTyg.chunk.css","scripts/02GiL0bJ2.chunk.js","scripts/D5hXaTvs.chunk.js","css/DDnpOnVB.chunk.css","scripts/YcLj4o6h.chunk.js","scripts/04PH9RmY.chunk.js","scripts/BcF1QUwe2.chunk.js","scripts/BCMnbt9q2.chunk.js","scripts/BuYVPk2G.chunk.js","scripts/CLOak4u5.chunk.js","scripts/CWMwyVGJ2.chunk.js","scripts/QVHuXdWQ2.chunk.js","scripts/BINgMltM.chunk.js","scripts/C2gD9P17.chunk.js","scripts/BzfCWDOl.chunk.js","scripts/4thdKXE92.chunk.js","scripts/Ib9eoq_Y.chunk.js","css/jCkhZLwg.chunk.css","scripts/lPQgHDFT.chunk.js","scripts/BEo1_qoH.chunk.js","css/C0oMpmDK.chunk.css","scripts/pP_cpHCu2.chunk.js","scripts/j59ag8H4.chunk.js","scripts/BLBtFc2V2.chunk.js","scripts/BXAGAIua2.chunk.js","css/BkC_YdWP.chunk.css","scripts/BdPPslUL2.chunk.js","scripts/DlfmNJFE2.chunk.js","css/Xwy4vqMD.chunk.css","scripts/rCRn6wGn2.chunk.js","scripts/B7l5d09H2.chunk.js","css/BtfuP1Ql.chunk.css","scripts/CLjADRa42.chunk.js","scripts/CI7BnpAu2.chunk.js","scripts/B5tW47L4.chunk.js","css/D5JKYURg.chunk.css","scripts/C0EHsOU6.chunk.js","css/Hj-pf8Rg.chunk.css","scripts/BgblOoyL2.chunk.js","scripts/BM5QQdzk.chunk.js","scripts/sWyD1BKT2.chunk.js","css/BS_E5Dg8.chunk.css","css/Cy7NKnX4.chunk.css","scripts/CsCjBSq62.chunk.js","scripts/BZ45p2V7.chunk.js","css/BH6hCmvU.chunk.css","scripts/CF6KXSqn.chunk.js","scripts/B_9JhhOa.chunk.js","css/DnhOr8Y7.chunk.css","scripts/DkxWaE9O2.chunk.js","css/CBPl-SLD.chunk.css","scripts/Ba4uGz_V.chunk.js","scripts/CpbhGCQS2.chunk.js","scripts/Bay_E_912.chunk.js","scripts/CwQ4GF7L2.chunk.js","scripts/MiGiDYuq2.chunk.js","scripts/hN_t6hZ02.chunk.js","scripts/D0n6BTgT.chunk.js","scripts/DXk5ikZM.chunk.js","scripts/DI_gWU0o2.chunk.js","scripts/DMIDfHRi2.chunk.js","scripts/DJXt6rKd2.chunk.js","css/C2QK928M.chunk.css","scripts/BBndy2td2.chunk.js","scripts/kLCNzxrH2.chunk.js","scripts/BeW5XQTb2.chunk.js","css/DQ_caKUF.chunk.css","scripts/DCs4jjV6.chunk.js","scripts/D9Vo1T142.chunk.js","scripts/YmXEsLuD.chunk.js","scripts/CFJqHH4w.chunk.js","scripts/BVeF-Kak.chunk.js","scripts/DFTEjJkr.chunk.js","css/Crx9BPxO.chunk.css","scripts/y3q_PHh_.chunk.js","scripts/11tE0tcu.chunk.js","scripts/DyzFu8SA2.chunk.js","css/Cbi3KYBa.chunk.css","scripts/CTx_IXWJ.chunk.js","css/XD2hD8t1.chunk.css","css/n2o1aWTK.chunk.css","scripts/CUxT_PwG.chunk.js","css/BQo3NAc1.chunk.css","scripts/CbKigv11.chunk.js","scripts/gvYe4myj.chunk.js","scripts/Bw7ZKsMG.chunk.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{o as e}from"./DAXXjFlN.chunk.js";import{t}from"./C2w0pmFW.chunk.js";import{t as n}from"./wrLrTezN.chunk.js";import{u as r}from"./BX0wDJmp.chunk.js";import{t as i}from"./CVHQXNzi2.chunk.js";import{t as a}from"./CZgWQFsJ.chunk.js";import{t as o}from"./BXpZzabC.chunk.js";var s=e(t()),c=(e,t)=>{let[n,r]=s.useState();return s.useEffect(()=>{n&&r(null)},[t.videoId]),s.useEffect(()=>{if(!e||n)return;let{objectTypeId:o}=e;switch(t.videoId?o=i.Video:t.clipId?o=i.Clip:t.interactiveId&&(o=i.Interactive),o){case i.Video:{let e=s.lazy(async()=>{let{PlaySharedVideoView:e}=await a(async()=>{let{PlaySharedVideoView:e}=await import(`./CfrfHGSh.chunk.js`);return{PlaySharedVideoView:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442]));return{default:e}});r(e);break}case i.Interactive:{let e=s.lazy(async()=>{let{SharedInteractiveView:e}=await a(async()=>{let{SharedInteractiveView:e}=await import(`./Ba4uGz_V.chunk.js`);return{SharedInteractiveView:e}},__vite__mapDeps([443,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,57,27,24,22,23,30,74,103,17,18,32,33,37,92,51,104,105,20,106,107,118,108,34,35,64,26,65,66,67,21,25,28,29,109,45,110,111,112,113,99,50,68,69,114,36,16,19,58,53,80,79,115,116,117,119,86,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,96,94,136,137,138,90,139,140,141,142,84,143,144,145,44,146,147,444,445,446,447,448,149,150,59,63,70,71,72,73,75,76,47,77,78,81,82,151,449,450,52,451,154,31,38,39,40,41,42,43,46,48,49,54,55,56,60,61,62,83,85,87,88,89,91,93,95,97,98,100,101,102,452,152,157,158,453,454,455,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,244,271,276,356,209,198,210,252,357,358,361,214,222,223,237,272,273,288,289,290,291,292,303,304,305,236,246,306,307,308,309,312,311,310,313,314,351,359,362,363,364,365,366,369,285,370,376,377,234,224,293,297,322,330,263,337,265,266,267,348,378,379,380,381,382,383,384,385,343,386,387,413,393,148,320,394,242,395,396,230,397,241,398,399,400,205,204,401,402,403,372,373,404,405,406,367,407,408,409,410,411,412,390,414,415,416,417,418,419,316,420]));return{default:e}});r(e);break}case i.Clip:{let e=s.lazy(async()=>{let{PlaySharedClipView:e}=await a(async()=>{let{PlaySharedClipView:e}=await import(`./kLCNzxrH2.chunk.js`);return{PlaySharedClipView:e}},__vite__mapDeps([456,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,103,32,33,37,92,51,104,105,106,107,108,34,35,64,65,66,67,109,45,110,111,112,113,99,50,68,69,114,36,58,30,74,53,80,79,115,116,117,118,119,86,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,96,94,136,137,138,90,139,140,141,142,84,143,144,145,44,146,147,150,59,63,70,71,72,73,75,76,47,77,78,81,82,151,154,57,31,38,39,40,41,42,43,46,48,49,52,54,55,56,60,61,62,83,85,87,88,89,91,93,95,97,98,100,101,102,155,156,452,152,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,148,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,153,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,457,458]));return{default:e}});r(e);break}case i.Playlist:{let e=s.lazy(async()=>{let{SharedPlaylistView:e}=await a(async()=>{let{SharedPlaylistView:e}=await import(`./DCs4jjV6.chunk.js`);return{SharedPlaylistView:e}},__vite__mapDeps([459,1,3,4,460,160,33,8,6,161,162,104,86,163,164,17,18,7,2,32,36,5,9,10,37,11,12,13,14,15,16,19,20,71,72,73,22,26,27,23,64,65,66,67,21,24,25,28,29,57,58,30,31,34,35,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,59,60,61,62,63,68,69,70,74,75,76,77,78,79,80,81,82,83,84,85,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,109,110,377,212,198,115,116,117,209,210,213,103,105,106,107,148,146,131,137,141,140,142,461,220,320,234,224,462,172,285,298,150,151,312,310,322,263,152,267,349,214,350,394,180,242,174,395,463,119,382,367,369,176,370,449,450,111,451,383,464,361,138,222,223,237,169,170,271,272,273,276,288,289,290,291,292,303,304,305,236,246,306,307,308,173,309,311,313,314,351,359,362,363,364,365,366,465,154,130,139,123,124,466,205,204,467,171,274,356,252,357,358,468,469,371,470,471,472,396,230,397,241,398,399,400,401,402,403,372,373,404,405,406,407,408,409,410,411,412,155,156,385,343,376,127,128,133,134,135,136,293,297,330,337,265,266,348,378,379,380,381,384,386,387,157,158,473,474]));return{default:e}});r(e);break}case i.Series:{let e=s.lazy(async()=>{let{SharedSeriesView:e}=await a(async()=>{let{SharedSeriesView:e}=await import(`./CbKigv11.chunk.js`);return{SharedSeriesView:e}},__vite__mapDeps([475,1,3,4,476,17,6,18,7,2,32,33,34,36,5,8,9,10,11,12,13,14,15,16,19,20,25,22,26,27,23,28,29,58,30,53,70,71,72,73,64,37,65,66,67,21,24,74,75,76,47,77,63,59,50,68,69,78,79,80,81,82,377,212,86,198,115,116,117,209,160,161,162,104,163,164,210,213,103,92,51,105,106,107,99,148,43,44,45,46,48,49,52,42,146,130,131,137,320,224,150,90,96,94,151,312,322,263,394,180,242,174,395,463,119,382,56,369,172,285,176,370,449,450,35,111,451,154,57,31,38,39,40,41,54,55,60,61,62,83,84,85,87,88,89,91,93,95,97,98,100,101,102,139,110,123,124,138,140,141,142,466,205,204,467,171,274,308,173,309,310,356,252,357,358,468,469,371,470,471,472,396,230,397,241,169,170,288,289,290,291,398,359,399,303,304,305,236,246,306,307,361,214,222,223,237,271,272,273,276,292,311,313,314,351,362,363,364,365,366,400,401,402,403,372,373,404,405,406,367,407,408,409,410,411,412,155,156,385,343,376,127,128,133,134,135,136,234,293,297,330,337,265,266,267,348,378,379,380,381,383,384,386,387,452,152,157,158,418,419,316,420,477]));return{default:e}});r(e);break}}},[e,n]),n},l=n();function u({shareId:e,queryParams:t}){let n=r(e&&o.getShareObject(e)),i=c(n.data,t);if(!i)return(0,l.jsx)(l.Fragment,{});function a(){return t.videoId?t.videoId:t.clipId?t.clipId:t.interactiveId?t.interactiveId:n.data.objectId}let u={shareId:e,queryParams:t,objectId:a()};return(0,l.jsx)(s.Suspense,{fallback:(0,l.jsx)(l.Fragment,{}),children:(0,l.jsx)(i,{...u})})}export{u as BaseShareLinkView};
|
|
3
|
+
//# sourceMappingURL=BFH_tnSb2.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"mappings":";iSAaa,GACX,EACA,IACiB,CACjB,GAAM,CAAE,EAAU,KAAsB,SAAuB,EA4E/D,OA1EA,EAAM,cAAgB,CACf,GAGL,EAAY,IAAI,CAClB,EAAG,CAAC,EAAY,OAAO,CAAC,EAExB,EAAM,cAAgB,CACpB,GAAI,CAAC,GAAa,EAChB,OAEF,GAAI,CAAE,gBAAiB,EAUvB,OARI,EAAY,QACd,EAAe,EAAW,MACnB,EAAY,OACnB,EAAe,EAAW,KACnB,EAAY,gBACnB,EAAe,EAAW,aAGpB,EAAR,CACE,KAAK,EAAW,MAAO,CACrB,IAAM,IAAsB,KAAK,SAAY,CAC3C,GAAM,CAAE,4CAAF,CAAE,uBAAwB,MAAM,OAAO,wsDAC7C,MAAO,CAAE,QAAS,CAAoB,CACxC,CAAC,EAED,EAAY,CAAa,EACzB,KACF,CAEA,KAAK,EAAW,YAAa,CAC3B,IAAM,IAA4B,KAAK,SAAY,CACjD,GAAM,CAAE,8CAAF,CAAE,yBAA0B,MAAM,OAAO,gqCAC/C,MAAO,CAAE,QAAS,CAAsB,CAC1C,CAAC,EAED,EAAY,CAAmB,EAC/B,KACF,CAEA,KAAK,EAAW,KAAM,CACpB,IAAM,IAAqB,KAAK,SAAY,CAC1C,GAAM,CAAE,2CAAF,CAAE,sBAAuB,MAAM,OAAO,krDAC5C,MAAO,CAAE,QAAS,CAAmB,CACvC,CAAC,EAED,EAAY,CAAY,EACxB,KACF,CAEA,KAAK,EAAW,SAAU,CACxB,IAAM,IAAyB,KAAK,SAAY,CAC9C,GAAM,CAAE,2CAAF,CAAE,sBAAuB,MAAM,OAAO,qjCAC5C,MAAO,CAAE,QAAS,CAAmB,CACvC,CAAC,EAED,EAAY,CAAgB,EAC5B,KACF,CAEA,KAAK,EAAW,OAAQ,CACtB,IAAM,IAAuB,KAAK,SAAY,CAC5C,GAAM,CAAE,yCAAF,CAAE,oBAAqB,MAAM,OAAO,+hCAC1C,MAAO,CAAE,QAAS,CAAiB,CACrC,CAAC,EAED,EAAY,CAAc,EAC1B,KACF,CACF,CACF,EAAG,CAAE,EAAW,CAAS,CAAC,EAEnB,CACT,QC3EA,SAAgB,EAAkB,CAAE,UAAS,eAAoD,CAC/F,IAAM,EAAY,EAAuC,GAAW,EAAc,eAAe,CAAO,CAAC,EAEnG,EAAW,EAAyB,EAAU,KAAM,CAAW,EAErE,GAAI,CAAC,EACH,OAAO,qBAAI,GAEb,SAAS,GAAsB,CAU7B,OATI,EAAY,QACP,EAAY,QAEjB,EAAY,OACP,EAAY,OAEjB,EAAY,cACP,EAAY,cAEd,EAAU,KAAK,QACxB,CAGA,IAAM,EAAgC,CACpC,UACA,cACA,SAAU,EAAY,CACxB,EAEA,OACE,WAAO,SAAP,CAAgB,UAAU,qBAAI,aAC5B,SAAC,EAAD,CAAU,GAAI,CAAY,EACZ,EAEpB","names":[],"ignoreList":[],"sources":["../../src/apps/share/hooks/useLazyLoadShareLinkView.ts","../../src/apps/share/views/base-share-link/BaseShareLinkView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { UnionShareObject } from 'libs/shared/interfaces';\n\nimport { ShareLinkQueryParams, ShareLinkViewProps } from 'apps/share/interfaces/ShareLinkViewProps';\n\ntype LazyViewType = React.LazyExoticComponent<(props: ShareLinkViewProps) => React.ReactElement>;\n\n/**\n * Takes any share link, and returns the lazy view for it\n */\n \nexport const useLazyLoadShareLinkView = (\n shareLink: UnionShareObject,\n queryParams: ShareLinkQueryParams\n): LazyViewType => {\n const [ LazyView, setLazyView ] = React.useState<LazyViewType>();\n\n React.useEffect(() => {\n if (!LazyView)\n return;\n\n setLazyView(null);\n }, [queryParams.videoId]);\n\n React.useEffect(() => {\n if (!shareLink || LazyView)\n return;\n\n let { objectTypeId } = shareLink;\n\n if (queryParams.videoId)\n objectTypeId = MasterType.Video;\n else if (queryParams.clipId)\n objectTypeId = MasterType.Clip;\n else if (queryParams.interactiveId)\n objectTypeId = MasterType.Interactive;\n\n // TODO: Views for topics\n switch (objectTypeId) {\n case MasterType.Video: {\n const LazyVideoView = React.lazy(async () => {\n const { PlaySharedVideoView } = await import('apps/share/views/play-shared-video/PlaySharedVideoView');\n return { default: PlaySharedVideoView };\n });\n\n setLazyView(LazyVideoView);\n break;\n }\n\n case MasterType.Interactive: {\n const LazyInteractiveView = React.lazy(async () => {\n const { SharedInteractiveView } = await import('apps/share/views/shared-interactive/SharedInteractiveView');\n return { default: SharedInteractiveView };\n });\n\n setLazyView(LazyInteractiveView);\n break;\n }\n\n case MasterType.Clip: {\n const LazyClipView = React.lazy(async () => {\n const { PlaySharedClipView } = await import('apps/share/views/play-shared-clip/PlaySharedClipView');\n return { default: PlaySharedClipView };\n });\n\n setLazyView(LazyClipView);\n break;\n }\n\n case MasterType.Playlist: {\n const LazyPlaylistView = React.lazy(async () => {\n const { SharedPlaylistView } = await import('apps/share/views/shared-playlist/SharedPlaylistView');\n return { default: SharedPlaylistView };\n });\n\n setLazyView(LazyPlaylistView);\n break;\n }\n\n case MasterType.Series: {\n const LazySeriesView = React.lazy(async () => {\n const { SharedSeriesView } = await import('apps/share/views/shared-series/SharedSeriesView');\n return { default: SharedSeriesView };\n });\n\n setLazyView(LazySeriesView);\n break;\n }\n }\n }, [ shareLink, LazyView ]);\n\n return LazyView;\n};\n","import React from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { ShareRequests } from 'libs/shared/apps/share/flight-requests/ShareRequests';\nimport { UnionShareObject } from 'libs/shared/interfaces';\n\nimport { useLazyLoadShareLinkView } from 'apps/share/hooks/useLazyLoadShareLinkView';\nimport { ShareLinkQueryParams, ShareLinkViewProps } from 'apps/share/interfaces/ShareLinkViewProps';\n\ninterface BaseShareLinkViewProps {\n shareId: string;\n queryParams: ShareLinkQueryParams;\n}\n\n/**\n * All share link validation and error handling is handled by `ShareLinkFilter`\n */\n// eslint-disable-next-line rulesdir/require-view-title\nexport function BaseShareLinkView({ shareId, queryParams }: BaseShareLinkViewProps): JSX.Element {\n const shareLink = Flight.useBasicFetch<UnionShareObject>(shareId && ShareRequests.getShareObject(shareId));\n\n const LazyView = useLazyLoadShareLinkView(shareLink.data, queryParams);\n\n if (!LazyView)\n return <></>;\n\n function getObjectId(): string {\n if (queryParams.videoId)\n return queryParams.videoId;\n\n if (queryParams.clipId)\n return queryParams.clipId;\n\n if (queryParams.interactiveId)\n return queryParams.interactiveId;\n\n return shareLink.data.objectId;\n }\n\n // At this time, all data will be fetched, as `isValid` won't be `true` until it is.\n const viewProps: ShareLinkViewProps = {\n shareId,\n queryParams,\n objectId: getObjectId()\n };\n\n return (\n <React.Suspense fallback={<></>}>\n <LazyView {...viewProps} />\n </React.Suspense>\n );\n}\n"],"file":"
|
|
1
|
+
{"version":3,"mappings":";iSAaa,GACX,EACA,IACiB,CACjB,GAAM,CAAE,EAAU,KAAsB,SAAuB,EA4E/D,OA1EA,EAAM,cAAgB,CACf,GAGL,EAAY,IAAI,CAClB,EAAG,CAAC,EAAY,OAAO,CAAC,EAExB,EAAM,cAAgB,CACpB,GAAI,CAAC,GAAa,EAChB,OAEF,GAAI,CAAE,gBAAiB,EAUvB,OARI,EAAY,QACd,EAAe,EAAW,MACnB,EAAY,OACnB,EAAe,EAAW,KACnB,EAAY,gBACnB,EAAe,EAAW,aAGpB,EAAR,CACE,KAAK,EAAW,MAAO,CACrB,IAAM,IAAsB,KAAK,SAAY,CAC3C,GAAM,CAAE,4CAAF,CAAE,uBAAwB,MAAM,OAAO,wsDAC7C,MAAO,CAAE,QAAS,CAAoB,CACxC,CAAC,EAED,EAAY,CAAa,EACzB,KACF,CAEA,KAAK,EAAW,YAAa,CAC3B,IAAM,IAA4B,KAAK,SAAY,CACjD,GAAM,CAAE,8CAAF,CAAE,yBAA0B,MAAM,OAAO,gqCAC/C,MAAO,CAAE,QAAS,CAAsB,CAC1C,CAAC,EAED,EAAY,CAAmB,EAC/B,KACF,CAEA,KAAK,EAAW,KAAM,CACpB,IAAM,IAAqB,KAAK,SAAY,CAC1C,GAAM,CAAE,2CAAF,CAAE,sBAAuB,MAAM,OAAO,krDAC5C,MAAO,CAAE,QAAS,CAAmB,CACvC,CAAC,EAED,EAAY,CAAY,EACxB,KACF,CAEA,KAAK,EAAW,SAAU,CACxB,IAAM,IAAyB,KAAK,SAAY,CAC9C,GAAM,CAAE,2CAAF,CAAE,sBAAuB,MAAM,OAAO,qjCAC5C,MAAO,CAAE,QAAS,CAAmB,CACvC,CAAC,EAED,EAAY,CAAgB,EAC5B,KACF,CAEA,KAAK,EAAW,OAAQ,CACtB,IAAM,IAAuB,KAAK,SAAY,CAC5C,GAAM,CAAE,yCAAF,CAAE,oBAAqB,MAAM,OAAO,+hCAC1C,MAAO,CAAE,QAAS,CAAiB,CACrC,CAAC,EAED,EAAY,CAAc,EAC1B,KACF,CACF,CACF,EAAG,CAAE,EAAW,CAAS,CAAC,EAEnB,CACT,QC3EA,SAAgB,EAAkB,CAAE,UAAS,eAAoD,CAC/F,IAAM,EAAY,EAAuC,GAAW,EAAc,eAAe,CAAO,CAAC,EAEnG,EAAW,EAAyB,EAAU,KAAM,CAAW,EAErE,GAAI,CAAC,EACH,OAAO,qBAAI,GAEb,SAAS,GAAsB,CAU7B,OATI,EAAY,QACP,EAAY,QAEjB,EAAY,OACP,EAAY,OAEjB,EAAY,cACP,EAAY,cAEd,EAAU,KAAK,QACxB,CAGA,IAAM,EAAgC,CACpC,UACA,cACA,SAAU,EAAY,CACxB,EAEA,OACE,WAAO,SAAP,CAAgB,UAAU,qBAAI,aAC5B,SAAC,EAAD,CAAU,GAAI,CAAY,EACZ,EAEpB","names":[],"ignoreList":[],"sources":["../../src/apps/share/hooks/useLazyLoadShareLinkView.ts","../../src/apps/share/views/base-share-link/BaseShareLinkView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { UnionShareObject } from 'libs/shared/interfaces';\n\nimport { ShareLinkQueryParams, ShareLinkViewProps } from 'apps/share/interfaces/ShareLinkViewProps';\n\ntype LazyViewType = React.LazyExoticComponent<(props: ShareLinkViewProps) => React.ReactElement>;\n\n/**\n * Takes any share link, and returns the lazy view for it\n */\n \nexport const useLazyLoadShareLinkView = (\n shareLink: UnionShareObject,\n queryParams: ShareLinkQueryParams\n): LazyViewType => {\n const [ LazyView, setLazyView ] = React.useState<LazyViewType>();\n\n React.useEffect(() => {\n if (!LazyView)\n return;\n\n setLazyView(null);\n }, [queryParams.videoId]);\n\n React.useEffect(() => {\n if (!shareLink || LazyView)\n return;\n\n let { objectTypeId } = shareLink;\n\n if (queryParams.videoId)\n objectTypeId = MasterType.Video;\n else if (queryParams.clipId)\n objectTypeId = MasterType.Clip;\n else if (queryParams.interactiveId)\n objectTypeId = MasterType.Interactive;\n\n // TODO: Views for topics\n switch (objectTypeId) {\n case MasterType.Video: {\n const LazyVideoView = React.lazy(async () => {\n const { PlaySharedVideoView } = await import('apps/share/views/play-shared-video/PlaySharedVideoView');\n return { default: PlaySharedVideoView };\n });\n\n setLazyView(LazyVideoView);\n break;\n }\n\n case MasterType.Interactive: {\n const LazyInteractiveView = React.lazy(async () => {\n const { SharedInteractiveView } = await import('apps/share/views/shared-interactive/SharedInteractiveView');\n return { default: SharedInteractiveView };\n });\n\n setLazyView(LazyInteractiveView);\n break;\n }\n\n case MasterType.Clip: {\n const LazyClipView = React.lazy(async () => {\n const { PlaySharedClipView } = await import('apps/share/views/play-shared-clip/PlaySharedClipView');\n return { default: PlaySharedClipView };\n });\n\n setLazyView(LazyClipView);\n break;\n }\n\n case MasterType.Playlist: {\n const LazyPlaylistView = React.lazy(async () => {\n const { SharedPlaylistView } = await import('apps/share/views/shared-playlist/SharedPlaylistView');\n return { default: SharedPlaylistView };\n });\n\n setLazyView(LazyPlaylistView);\n break;\n }\n\n case MasterType.Series: {\n const LazySeriesView = React.lazy(async () => {\n const { SharedSeriesView } = await import('apps/share/views/shared-series/SharedSeriesView');\n return { default: SharedSeriesView };\n });\n\n setLazyView(LazySeriesView);\n break;\n }\n }\n }, [ shareLink, LazyView ]);\n\n return LazyView;\n};\n","import React from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { ShareRequests } from 'libs/shared/apps/share/flight-requests/ShareRequests';\nimport { UnionShareObject } from 'libs/shared/interfaces';\n\nimport { useLazyLoadShareLinkView } from 'apps/share/hooks/useLazyLoadShareLinkView';\nimport { ShareLinkQueryParams, ShareLinkViewProps } from 'apps/share/interfaces/ShareLinkViewProps';\n\ninterface BaseShareLinkViewProps {\n shareId: string;\n queryParams: ShareLinkQueryParams;\n}\n\n/**\n * All share link validation and error handling is handled by `ShareLinkFilter`\n */\n// eslint-disable-next-line rulesdir/require-view-title\nexport function BaseShareLinkView({ shareId, queryParams }: BaseShareLinkViewProps): JSX.Element {\n const shareLink = Flight.useBasicFetch<UnionShareObject>(shareId && ShareRequests.getShareObject(shareId));\n\n const LazyView = useLazyLoadShareLinkView(shareLink.data, queryParams);\n\n if (!LazyView)\n return <></>;\n\n function getObjectId(): string {\n if (queryParams.videoId)\n return queryParams.videoId;\n\n if (queryParams.clipId)\n return queryParams.clipId;\n\n if (queryParams.interactiveId)\n return queryParams.interactiveId;\n\n return shareLink.data.objectId;\n }\n\n // At this time, all data will be fetched, as `isValid` won't be `true` until it is.\n const viewProps: ShareLinkViewProps = {\n shareId,\n queryParams,\n objectId: getObjectId()\n };\n\n return (\n <React.Suspense fallback={<></>}>\n <LazyView {...viewProps} />\n </React.Suspense>\n );\n}\n"],"file":"BFH_tnSb2.chunk.js"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{o as e}from"./DAXXjFlN.chunk.js";import{x as t}from"./BftnFbcr.chunk.js";import{t as n}from"./C2w0pmFW.chunk.js";import{t as r}from"./wrLrTezN.chunk.js";import{C as i,U as a,d as o,l as s,z as c}from"./NlCAcBdo.chunk.js";import{t as l}from"./DC8Dg20g.chunk.js";import{a as u,c as d,d as f,f as p,l as ee,n as m,o as h,p as g,s as te,t as _,u as v}from"./
|
|
1
|
+
import{o as e}from"./DAXXjFlN.chunk.js";import{x as t}from"./BftnFbcr.chunk.js";import{t as n}from"./C2w0pmFW.chunk.js";import{t as r}from"./wrLrTezN.chunk.js";import{C as i,U as a,d as o,l as s,z as c}from"./NlCAcBdo.chunk.js";import{t as l}from"./DC8Dg20g.chunk.js";import{a as u,c as d,d as f,f as p,l as ee,n as m,o as h,p as g,s as te,t as _,u as v}from"./DTliAJ8L.chunk.js";import{t as y}from"./CnnDkGmK.chunk.js";import{n as b}from"./CvLLqEKv.chunk.js";import"./14z5Gy8L.chunk.js";import"./FysETOFv.chunk.js";import{t as ne}from"./BiKac8UT2.chunk.js";import"./CXUrMkZu.chunk.js";import{a as x,i as S,n as C,o as w,r as T,s as E,t as D}from"./_jJAx6fU.chunk.js";import{t as re}from"./CLjADRa42.chunk.js";var O=e(n()),ie=g.getComponent(`Button`),k=class extends ie{constructor(...e){super(...e),this.alwaysCollapsed=!1,this.isCollapsed=!1,this.isCollabsible=!0}buildCSSClass(){return`cv-create-clip-button`}getCollabsibleName(){return this.controlText_}getCollabsibleValue(){return``}showInCollabsibleMenu(){return!0}showCollapsibleMenu(){super.handleClick(null)}};k.prototype.controlText_=`Create clip`,g.registerComponent(`CreateClipButton`,k);var ae=g.getPlugin(`plugin`),oe=class extends ae{constructor(e,t){super(e,t),this.options=t,e.ready(()=>this.onReady())}onReady(){let e=this.player.getChild(`collapserator`);e&&e.addChild(`CreateClipButton`,{clickHandler:this.options.onClick})}};g.registerPlugin(`createClipButtonPlugin`,oe);var se=g.getComponent(`PictureInPictureToggle`),ce=class extends se{handlePictureInPictureEnabledChange(){this.enable()}};g.registerComponent(`PictureInPictureToggle`,ce);var le=g.getComponent(`PlayToggle`),ue=g.getPlugin(`plugin`),de=800,fe=class extends ue{constructor(e,t){super(e,t),this.options=t,this.bindFunctions(),e.ready(()=>this.initialize())}bindFunctions(){this.requestPictureInPicture=this.requestPictureInPicture.bind(this),this.exitPictureInPicture=this.exitPictureInPicture.bind(this),this.onPlayerResize=this.onPlayerResize.bind(this),this.playerRequestPictureInPictureFn=this.player.requestPictureInPicture,this.playerExitPictureInPictureFn=this.player.exitPictureInPicture,this.player.requestPictureInPicture=this.requestPictureInPicture,this.player.exitPictureInPicture=this.exitPictureInPicture}initialize(){let e=this.player.getChild(`collapserator`);this.toggle=e.addChild(`pictureInPictureToggle`,{}),this.toggle.enable(),this.player.on(`playerresize`,this.onPlayerResize),this.player.on(`dispose`,()=>{this.player?.off(`playerresize`,this.onPlayerResize)})}togglePictureInPicture(e){if(e===this.player.isInPictureInPicture())return;let t=e?`enterpictureinpicture`:`leavepictureinpicture`;this.player.isInPictureInPicture(e),this.player.trigger(t),e?this.addPipStyles():this.removePipStyles()}onPlayerResize(){if(this.player.isInPictureInPicture())return;let e=this.player.el().getBoundingClientRect();e.width!==0&&(e.width<de?this.toggle?.hide():this.toggle?.show())}addPipStyles(){this.player.addClass(`cv-picture-in-picture`),this.playToggle=new le(this.player),this.playToggle.addClass(`cv-pip-play-toggle`),this.player.addChild(this.playToggle),this.player.paused()?this.playToggle.handlePause():this.playToggle.handlePlay()}removePipStyles(){this.player.removeClass(`cv-picture-in-picture`),this.player.removeChild(this.playToggle),delete this.playToggle}requestPictureInPicture(){this.togglePictureInPicture(!0),typeof this.options?.onRequestPictureInPicture==`function`&&this.options.onRequestPictureInPicture(!0)}async exitPictureInPicture(){this.togglePictureInPicture(!1),this.options.onRequestPictureInPicture(!1),this.removePipStyles()}dispose(){this.player.requestPictureInPicture=this.playerRequestPictureInPictureFn,this.player.exitPictureInPicture=this.playerExitPictureInPictureFn,super.dispose()}};g.registerPlugin(`pictureInPicture`,fe);var pe=g.getComponent(`Component`),me=class extends pe{constructor(e,t){super(e,t),this.hasBuffered=!1,this.hasPlayed=!1,this.eventsService=re,this.pointOfInterest=t.pointOfInterest,this.onMouseOver=this.onMouseOver.bind(this),this.onMouseLeave=this.onMouseLeave.bind(this),this.onGlancePointOfInterestMouseEnter=this.onGlancePointOfInterestMouseEnter.bind(this),this.onGlancePointOfInterestMouseLeave=this.onGlancePointOfInterestMouseLeave.bind(this),this.initialize()}initialize(){this.setPosition(),this.bindListeners()}buildCSSClass(){return`cv-point-of-interest-indicator ${super.buildCSSClass()}`}createEl(e,t,n){return super.createEl(e,{...t,className:this.buildCSSClass()},n)}bindListeners(){this.on(`mouseover`,this.onMouseOver),this.on(`mouseleave`,this.onMouseLeave),this.eventsService.subscribe(`glance:poi:mouseover`,this.onGlancePointOfInterestMouseEnter),this.eventsService.subscribe(`glance:poi:mouseleave`,this.onGlancePointOfInterestMouseLeave)}dispose(){this.eventsService.unsubscribe(`glance:poi:mouseover`,this.onGlancePointOfInterestMouseEnter),this.eventsService.unsubscribe(`glance:poi:mouseleave`,this.onGlancePointOfInterestMouseLeave)}getPointOfInterestTime(){return this.pointOfInterest.startTime}setPosition(){let e=this.player().duration();this.el_.style.left=this.getPointOfInterestTime()/e*100+`%`}updateBuffered(e){let t=this.getPointOfInterestTime()<=e;if(t===this.hasBuffered)return;this.hasBuffered=t;let n=`cv-point-of-interest-indicator-buffered`;this.hasBuffered?this.addClass(n):this.removeClass(n)}updatePlaybackProgress(e){let t=this.getPointOfInterestTime()<=e;if(t===this.hasPlayed)return;this.hasPlayed=t;let n=`cv-point-of-interest-indicator-played`;t?this.addClass(n):this.removeClass(n)}toggleVisibility(e){let t=`cv-point-of-interest-indicator-hidden`;e?this.removeClass(t):this.addClass(t)}onMouseOver(){this.setTimeTooltipText(),this.eventsService.trigger(`player:poi:mouseover`,this.pointOfInterest)}onMouseLeave(){this.clearTimeTooltipText(),this.eventsService.trigger(`player:poi:mouseleave`)}onGlancePointOfInterestMouseEnter(e){e.id===this.pointOfInterest.id&&(this.addClass(`cv-point-of-interest-indicator-highlight`),this.setTimeTooltipTime(),this.setTimeTooltipText(),this.positionMouseTimeDisplay(),this.showMouseTimeDisplay())}onGlancePointOfInterestMouseLeave(){this.removeClass(`cv-point-of-interest-indicator-highlight`),this.hideMouseTimeDisplay()}setTimeTooltipText(){this.getTimeTooltip()?.setCustomChapterText(this.pointOfInterest.description)}clearTimeTooltipText(){this.getTimeTooltip()?.setCustomChapterText()}setTimeTooltipTime(){this.getTimeTooltip()?.updateTime(this.getPointOfInterestTime())}positionMouseTimeDisplay(){let e=this.getSeekBar()?.el();if(!e)return;let t=g.dom.findPosition(e),n=this.getPointOfInterestTime()/this.player().duration();this.getMouseTimeDisplay()?.update(t,n)}showMouseTimeDisplay(){this.getMouseTimeDisplay()?.forceShow()}hideMouseTimeDisplay(){this.getMouseTimeDisplay()?.removeForceShow()}getSeekBar(){return this.player().controlBar.getChild(`ProgressControl`)?.getChild(`SeekBar`)}getMouseTimeDisplay(){return this.getSeekBar()?.getChild(`MouseTimeDisplay`)}getTimeTooltip(){return this.getMouseTimeDisplay()?.getChild(`TimeTooltip`)}},A=g.getComponent(`MenuItem`),j=class extends A{constructor(e,t){super(e,t),this.pointsOfInterestVisible=t.pointsOfInterestVisible,this.toggle(this.pointsOfInterestVisible)}handleToggle(){this.toggle(!this.pointsOfInterestVisible)}toggle(e){e?this.toggleOn():this.toggleOff()}toggleOn(){g.dom.addClass(this.toggleEl,`on`),g.dom.setAttribute(this.toggleEl,`aria-checked`,`true`),this.pointsOfInterestVisible=!0,this.player().pointsOfInterestPlugin().togglePointsOfInterest(this.pointsOfInterestVisible)}toggleOff(){g.dom.removeClass(this.toggleEl,`on`),g.dom.setAttribute(this.toggleEl,`aria-checked`,`false`),this.pointsOfInterestVisible=!1,this.player().pointsOfInterestPlugin().togglePointsOfInterest(this.pointsOfInterestVisible)}handleClick(e){e.stopImmediatePropagation()}createEl(e,t,n){this.handlerBound||=(this.handleToggle=this.handleToggle.bind(this),!0),this.toggleEl&&this.toggleEl.removeEventListener(`click`,this.handleToggle),this.toggleEl=g.dom.createEl(`div`,{className:`custom-toggle custom-toggle-info toggle-option float-end`,innerHTML:`<span class="handle"></span></div>`}),g.dom.setAttribute(this.toggleEl,`id`,`poi-toggle`),g.dom.setAttribute(this.toggleEl,`role`,`switch`),this.toggleEl.addEventListener(`click`,this.handleToggle);let r=super.createEl(e,{className:`vjs-menu-item cv-cog-menu-item cv-poi-toggle`,innerHTML:`
|
|
2
2
|
<span for="poi-toggle" class="vjs-menu-item-text">Points of Interest</span>
|
|
3
3
|
<span class="cv-toggle-container"></span>`},n);return r.children[1].appendChild(this.toggleEl),r}};g.registerComponent(`PointsOfInterestMenuItem`,j);var M=g.getPlugin(`plugin`),N=`cvplayer-points-of-interest`,P=class extends M{constructor(e,t){super(e),this.pointOfInterestIndicators=[],this.enabled=!0,this.pointsOfInterest=t?.pointsOfInterest,this.initialize=this.initialize.bind(this),this.updateBuffered=this.updateBuffered.bind(this),this.updatePlaybackProgress=this.updatePlaybackProgress.bind(this),this.player.one(`loadedmetadata`,()=>this.player.ready(this.initialize))}initialize(){this.pointsOfInterest&&(b.hasLocalStorage()&&b.get(N)===`false`&&(this.enabled=!1),this.setupTrack(),this.createPointOfInterestIndicators(),this.addMenuItem(),this.bindListeners())}bindListeners(){this.player.on(`progress`,this.updateBuffered),this.player.on(`timeupdate`,this.updatePlaybackProgress),this.player.on(`dispose`,()=>{this.player?.off(`progress`,this.updateBuffered),this.player?.off(`timeupdate`,this.updatePlaybackProgress)})}togglePointsOfInterest(e){b.set(N,e.toString()),this.pointOfInterestIndicators.forEach(t=>t.toggleVisibility(e))}setupTrack(){let e=this.player.addTextTrack(`metadata`,`pointsofinterest`);this.pointsOfInterest.forEach(t=>{e.addCue({startTime:t.startTime,endTime:t.endTime,text:t.description})}),e.trigger({type:`loadeddata`,target:e})}createPointOfInterestIndicators(){let e=this.player.controlBar.getChild(`ProgressControl`)?.getChild(`SeekBar`);this.pointsOfInterest.forEach(t=>{let n=new me(this.player,{pointOfInterest:t});this.pointOfInterestIndicators.push(n),e.addChild(n)})}addMenuItem(){(this.player.getChild(`collapserator`)?.getChild(`cogButton`)).addItem({ctor:j,name:`PointsOfInterestMenuItem`,options:{pointsOfInterestVisible:this.enabled}})}updateBuffered(){this.pointOfInterestIndicators.forEach(e=>e.updateBuffered(u(this.player)))}updatePlaybackProgress(){this.pointOfInterestIndicators.forEach(e=>e.updatePlaybackProgress(this.player.currentTime()))}};g.registerPlugin(`pointsOfInterestPlugin`,P);var F=g.getComponent(`Component`),I=class extends F{constructor(e,t){super(e,t),this.initialize()}initialize(){this.setPosition()}buildCSSClass(){return`cv-range-indicator ${super.buildCSSClass()}`}createEl(e,t,n){return super.createEl(e,{...t,className:this.buildCSSClass()},n)}setPosition(){let e=this.player().duration();this.el_.style.left=this.options_.time/e*100+`%`}},L=g.getComponent(`ClickableComponent`),R=class extends L{constructor(e,t){super(e,t)}buildCSSClass(){return`cv-replay-view-button ${super.buildCSSClass()}`}createEl(e,t,n){return super.createEl(e,{...t,innerHTML:`<span class="${this.options_.iconClassName}"></span><span>${this.options_.label}</span>`,className:this.buildCSSClass()},n)}handleClick(){this.options_.onPress()}},z=g.getComponent(`Component`),he=class extends z{constructor(e,t){super(e,t)}buildCSSClass(){return`cv-replay-view ${super.buildCSSClass()}`}createEl(e,t,n){let r=super.createEl(e,{...t,className:this.buildCSSClass()},n),i=g.dom.createEl(`h5`,{innerHTML:this.localize(`This clip has finished`),className:`cv-replay-heading`}),a=g.dom.createEl(`div`,{className:`cv-button-container`}),o=new R(this.player_,{label:this.localize(`Replay clip`),iconClassName:`cv-replay-icon`,onPress:this.options_.onReplayPress}),s=new R(this.player_,{label:this.localize(`Continue watching`),iconClassName:`cv-continue-icon`,onPress:this.options_.onContinuePress});return r.appendChild(i),r.appendChild(a),a.appendChild(o.el()),a.appendChild(s.el()),r}},ge=g.getPlugin(`plugin`),_e=class extends ge{constructor(e,t){if(super(e,t),this.startTime=parseFloat(t.startTime.toPrecision(4)),this.endTime=parseFloat(t.endTime.toPrecision(4)),this.dismissed=!1,this.startTime>this.endTime)throw Error(`Range start cannot be greater than range end`);this.bindFunctions(),this.initialize()}bindFunctions(){this.onReady=this.onReady.bind(this),this.onTimeUpdateOrSeeked=this.onTimeUpdateOrSeeked.bind(this),this.onReplayPress=this.onReplayPress.bind(this),this.onContinuePress=this.onContinuePress.bind(this)}initialize(){this.player.one(`loadedmetadata`,()=>this.player.ready(this.onReady)),this.player.on(`timeupdate`,this.onTimeUpdateOrSeeked),this.player.on(`seeked`,this.onTimeUpdateOrSeeked)}onReady(){this.addCssClasses(),this.showRangeIndicators(),this.addMaskToProgressBar()}onTimeUpdateOrSeeked(){if(this.dismissed)return;let e=this.player.currentTime();if(e<this.startTime){this.player.currentTime(this.startTime);return}if(e>this.endTime){this.showReplayView(),this.disablePlayToggle(),this.player.pause(),this.player.currentTime(this.endTime);return}}onReplayPress(){this.player.currentTime(this.startTime),this.player.play(),this.hideReplayView(),this.enablePlayToggle()}onContinuePress(){this.dismissed=!0,this.player.play(),this.hideRangeIndicators(),this.removeMaskFromProgressBar(),this.hideReplayView(),this.enablePlayToggle(),this.removeCssClasses()}showRangeIndicators(){let e=this.player.controlBar.getChild(`ProgressControl`)?.getChild(`SeekBar`);this.startTimeIndicator||(this.startTimeIndicator=new I(this.player,{time:this.startTime}),e?.addChild(this.startTimeIndicator)),this.endTimeIndicator||(this.endTimeIndicator=new I(this.player,{time:this.endTime}),e?.addChild(this.endTimeIndicator))}hideRangeIndicators(){this.startTimeIndicator?.hide(),this.endTimeIndicator?.hide()}addMaskToProgressBar(){let e=(this.player.controlBar.getChild(`ProgressControl`)?.getChild(`SeekBar`))?.el().getElementsByClassName(`cv-chapter-bar-items`);if(e&&e.length){let t=e[0],n=this.player.duration(),r=this.startTime/n*100,i=100-this.endTime/n*100;t.style.clipPath=`inset(-5em ${i}% -5em ${r}%)`}}removeMaskFromProgressBar(){let e=(this.player.controlBar.getChild(`ProgressControl`)?.getChild(`SeekBar`))?.el().getElementsByClassName(`cv-chapter-bar-items`);if(e&&e.length){let t=e[0];t.style.clipPath=``}}showReplayView(){this.replayView||(this.replayView=new he(this.player,{onContinuePress:this.onContinuePress,onReplayPress:this.onReplayPress}),this.player.addChild(this.replayView)),this.replayView.show()}hideReplayView(){this.replayView?.hide()}getPlayToggle(){return this.player.getChild(`collapserator`)?.getChild(`PlayToggle`)}enablePlayToggle(){let e=this.getPlayToggle();e&&e.enable()}disablePlayToggle(){let e=this.getPlayToggle();e&&e.disable()}addCssClasses(){this.player.addClass(`cv-range-indicator-plugin`)}removeCssClasses(){this.player.removeClass(`cv-range-indicator-plugin`)}dispose(){this.removeCssClasses(),this.player.off(`timeupdate`,this.onTimeUpdateOrSeeked),this.player.off(`seeked`,this.onTimeUpdateOrSeeked),this.startTimeIndicator?.dispose(),this.endTimeIndicator?.dispose(),this.replayView?.dispose(),super.dispose()}};g.registerPlugin(`rangeIndicatorPlugin`,_e);var B={generateRandomId:()=>window.crypto?.randomUUID?.()??Math.random().toString()},ve=class extends _{constructor(e,t){super(e,t)}getPlayerOptions(){let e=super.getPlayerOptions();return this.options.allowTranscript&&(e.allowTranscript=!0),e.devicesConfig?.canUserCastToDevices?{...e,techOrder:[`devices`,...e.techOrder],devices:{instanceId:B.generateRandomId()}}:e}configurePlugins(){try{this.options.onClickCreateClip&&this.player.createClipButtonPlugin({onClick:this.options.onClickCreateClip}),this.options.onRequestPictureInPicture&&this.player.pictureInPicture({onRequestPictureInPicture:this.options.onRequestPictureInPicture}),this.options.pointsOfInterest?.length&&this.player.pointsOfInterestPlugin({pointsOfInterest:this.options.pointsOfInterest}),this.player.loopVideoPlugin({allowLoop:this.options.allowLoop})}catch(e){console.log(`failed to register plugins`,e)}}setNextVideo(e,t,n){this.player.nextVideoPlugin&&this.player.nextVideoPlugin().setNextVideo(e,t,n)}togglePictureInPicture(e){let t=this.player.pictureInPicture();t&&t.togglePictureInPicture(e)}toggleTheatreMode(e){let t=this.player.theatreModePlugin();t&&t.toggleTheatreMode(e,{shouldLog:!0})}toggleTranscript(e){if(!this.player.viewTranscriptPlugin)return;let t=this.player.viewTranscriptPlugin();t&&t.toggleTranscript(e)}hasStarted(){return this.player.hasStarted()}async additionalSetup(e){if(this.options.onRequestTheatreMode&&this.options.allowTheatreMode&&this.player.theatreModePlugin&&this.player.theatreModePlugin({onRequestTheatreMode:this.options.onRequestTheatreMode,theatreMode:this.options.theatreMode,playbackObject:e}),super.additionalSetup(e),this.options.showResources&&e.resources&&this.player.resourcesPlugin&&this.player.resourcesPlugin({resources:e.resources.list,imageCdnUrl:this.options.imageCdnUrl}),e.mediaType===`MasterClip`){let t=e.additionalData;if(t===null)throw Error(`Invalid clip data`);this.player.clipPlugin({startTime:t.startTime,endTime:t.endTime})}e.mediaType===`MasterVideo`&&this.options.startTime&&this.options.endTime&&this.player.rangeIndicatorPlugin({startTime:this.options.startTime,endTime:this.options.endTime})}setupAnalyticsDependentPlugins(e){super.setupAnalyticsDependentPlugins(e),this.options.allowTranscript&&this.player.viewTranscriptPlugin().registerAnalytics(this.analyticsService,e),this.options.onRequestTheatreMode&&this.options.allowTheatreMode&&this.player.theatreModePlugin&&this.player.theatreModePlugin().registerAnalytics(this.analyticsService),this.options.devicesConfig?.canUserCastToDevices&&this.player.devicesPlugin&&this.player.devicesPlugin({...this.options.devicesConfig,userId:parseInt(e.viewerId),title:e.title,analyticsService:this.analyticsService})}setActivityStatus(e,t){this.player.activityStatusPlugin().setActivityStatus(e,t)}useCurrentTranscript(e,t){f.useMetadataTracks(this.player,`transcript`,e,t)}useChapters(e){f.useChapters(this.player,e)}},V={reconnectIntervalInMilliseconds:3e3,heartbeatEnabled:!1,heartbeatIntervalInMillseconds:1e4,heartbeatMessage:``},ye=class{constructor(e,t=V){this.bindFunctions(),this.url=e,this.options={...V,...t},this.webSocket=this.connect(),this.heartbeat=new T().schedule(()=>this.send(this.options.heartbeatMessage)).every(this.options.heartbeatIntervalInMillseconds)}bindFunctions(){this.cleanup=this.cleanup.bind(this),this.handleOpen=this.handleOpen.bind(this),this.handleMessage=this.handleMessage.bind(this),this.handleClose=this.handleClose.bind(this),this.handleError=this.handleError.bind(this),this.connect=this.connect.bind(this),this.send=this.send.bind(this),this.dipose=this.dipose.bind(this)}cleanup(){this.heartbeat.stop(),this.webSocket.removeEventListener(`error`,this.handleError),this.webSocket.removeEventListener(`message`,this.handleMessage),this.webSocket.removeEventListener(`open`,this.handleOpen),this.webSocket.removeEventListener(`close`,this.handleClose)}handleOpen(e){this.onOpen?.(e),this.options.heartbeatEnabled&&this.heartbeat.start()}handleMessage(e){this.onMessage?.(e)}handleClose(e){this.onClose?.(e),this.cleanup(),setTimeout(()=>{this.webSocket=this.connect()},this.options.reconnectIntervalInMilliseconds)}handleError(e){this.onError?.(e),this.handleClose()}connect(){let e=new WebSocket(this.url);return e.addEventListener(`open`,this.handleOpen),e.addEventListener(`message`,this.handleMessage),e.addEventListener(`close`,this.handleClose),e.addEventListener(`error`,this.handleError),e}send(e){this.webSocket.send(e)}dipose(){this.cleanup(),this.webSocket.close()}},be=2e3,xe=class{constructor(e,t){return this._timerStartedAt=0,this.position=0,this.duration=void 0,this.playing=!1,this.mute=!1,this.videoSource=``,this.subtitleSource=``,this.subtitles=!1,this.volume=0,this.title=e,this.device=t,this.ready=!1,this.playbackFinished=!1,this.debounced=C.withDebouncedSetters(this,be),C.withTimestampedSetters(this)}get position(){return this._position+this.getTimerDurationInSeconds()}set position(e){this._position=e,this.restartTimer()}get playing(){return this._playing}set playing(e){this._playing=e,e?this.restartTimer():(this._position+=this.getTimerDurationInSeconds(),this.stopTimer())}restartTimer(){this._timerStartedAt=Date.now()}stopTimer(){this._timerStartedAt=0}getTimerDurationInSeconds(){return this._timerStartedAt?(Date.now()-this._timerStartedAt)/1e3:0}},H=function(e){return e.Update=`update`,e.Volume=`volume`,e.Playing=`playing`,e.Paused=`paused`,e.NewChapter=`new_chapter`,e.Stopped=`stopped`,e.Ready=`ready`,e.Mute=`mute`,e.Finished=`finished`,e.Subtitles=`subtitles`,e}({}),Se=class extends x{constructor(e,t){super(),this.client=e,this.localState=new xe(t.title,t.device),this.bindFunctions(),this.initialize()}bindFunctions(){this.initialize=this.initialize.bind(this),this.dispose=this.dispose.bind(this),this.handleClientConnected=this.handleClientConnected.bind(this),this.handleDisconnectMessage=this.handleDisconnectMessage.bind(this),this.handleAllVideoMessages=this.handleAllVideoMessages.bind(this),this.handleUpdateMessage=this.handleUpdateMessage.bind(this),this.handleVolumeMessage=this.handleVolumeMessage.bind(this),this.handlePlayingMessage=this.handlePlayingMessage.bind(this),this.handlePausedMessage=this.handlePausedMessage.bind(this),this.handleFinishedMessage=this.handleFinishedMessage.bind(this),this.handleNewChapterMessage=this.handleNewChapterMessage.bind(this),this.handleStoppedMessage=this.handleStoppedMessage.bind(this),this.loadSource=this.loadSource.bind(this),this.play=this.play.bind(this),this.pause=this.pause.bind(this),this.seek=this.seek.bind(this),this.setVolume=this.setVolume.bind(this),this.isPlaying=this.isPlaying.bind(this),this.getPosition=this.getPosition.bind(this),this.getDuration=this.getDuration.bind(this),this.getVolume=this.getVolume.bind(this)}initialize(){this.client.on(`dispose`,this.dispose),this.client.on(`connected`,this.handleClientConnected),this.client.on(`message`,this.handleDisconnectMessage).filter(e=>e.source===this.getDevice().id&&e.message.type===`disconnect`),this.client.on(`message`,this.handleAllVideoMessages).filter(e=>e.source===this.getDevice().id&&e.message.type===`video_event`)}dispose(){this.client.off(`dispose`,this.dispose),this.client.off(`connected`,this.handleClientConnected),this.client.off(`message`,this.handleDisconnectMessage),this.client.off(`message`,this.handleAllVideoMessages),this.client.stop(this.getDevice().id).catch(e=>console.error(e)),super.dispose()}async handleClientConnected(){try{await this.client.joinRoom(this.getDevice().id)}catch(e){this.trigger(`error`,e)}}handleDisconnectMessage(){this.dispose()}handleAllVideoMessages(e){let t=this.localState.debounced,n=e.message.payload.params||{};switch(e.message.payload.event){case H.Update:this.handleUpdateMessage(t,n);break;case H.NewChapter:this.handleNewChapterMessage(t,n);break;case H.Volume:this.handleVolumeMessage(t,n);break;case H.Playing:this.handlePlayingMessage(t);break;case H.Paused:this.handlePausedMessage(t);break;case H.Finished:this.handleFinishedMessage(t);break;case H.Stopped:this.handleStoppedMessage();break}}handleUpdateMessage(e,t){e.duration!==t.duration&&(e.duration=t.duration,this.trigger(`durationchange`,S.void)),e.position!==t.position&&(e.position=t.position,this.trigger(`positionchange`,S.void)),e.subtitles!==t.subtitles&&(e.subtitles=t.subtitles,this.trigger(`subtitleschange`,S.void))}handleVolumeMessage(e,t){e.volume!==t.level&&(e.volume=t.level,e.mute=t.level===0,this.trigger(`volumechange`,S.void))}handlePlayingMessage(e){e.playing!==!0&&(e.playing=!0,e.playbackFinished=!1,this.trigger(`playingchange`,S.void))}handlePausedMessage(e){e.playing!==!1&&(e.playing=!1,this.trigger(`playingchange`,S.void))}handleFinishedMessage(e){e.playbackFinished!==!0&&(e.playing=!1,e.playbackFinished=!0,this.trigger(`playingchange`,S.void))}handleNewChapterMessage(e,t){let n=(t.queue??[]).find(t=>t.url===e.videoSource);if(!n){console.info(`The device is no longer playing the source we loaded - disposing the session`),this.dispose();return}e.subtitleSource!==n.suburl&&(e.subtitleSource=n.suburl,this.trigger(`subtitleschange`,S.void))}handleStoppedMessage(){this.dispose()}async loadSource(e,t){if(!(this.localState.videoSource===e&&this.localState.subtitleSource===t))try{let n=this.getDevice().id,r=this.getPosition();this.localState.videoSource=e,this.localState.subtitleSource=t,this.localState.ready=!1,await this.client.joinRoom(n),await this.client.loadQueue({title:this.getTitle(),roomId:n,videoSource:e,subtitleSource:t}),this.localState.ready=!0,this.trigger(`sourceloaded`,S.void),r>0&&this.seek(r),t&&this.setSubtitles(t)}catch(e){console.error(e),this.trigger(`error`,Error(`Could not load video on Vivi device`))}}play(){this.localState.ready&&this.localState.playing!==!0&&(this.localState.playing=!0,this.client.play(this.getDevice().id),this.trigger(`playingchange`,S.void))}pause(){this.localState.ready&&this.localState.playing!==!1&&(this.localState.playing=!1,this.client.pause(this.getDevice().id),this.trigger(`playingchange`,S.void))}seek(e){this.localState.ready&&this.localState.position!==e&&(this.localState.position=e,this.client.seek(this.getDevice().id,e),this.trigger(`positionchange`,S.void))}setVolume(e){this.localState.ready&&this.localState.volume!==e&&(this.localState.volume=e,this.client.setVolume(this.getDevice().id,e),this.trigger(`volumechange`,S.void))}setMuted(e){this.localState.ready&&this.localState.mute!==e&&(this.localState.mute=e,this.client.setMuted(this.getDevice().id,e),this.trigger(`volumechange`,S.void))}async setSubtitles(e){if(!this.localState.ready)return;e&&await this.loadSource(this.localState.videoSource,e);let t=!!e;this.localState.subtitles!==t&&(this.localState.subtitles=t,this.client.setSubtitles(this.getDevice().id,t),this.trigger(`subtitleschange`,S.void))}isPlaying(){return this.localState.playing}isPlaybackFinished(){return this.localState.playbackFinished}getPosition(){return this.localState.position}getDuration(){return this.localState.duration}getVolume(){return this.localState.volume}getMuted(){return this.localState.mute}getSubtitles(){if(this.localState.subtitles)return this.localState.subtitleSource}getDevice(){return this.localState.device}getTitle(){return this.localState.title}},U=1e4,Ce=500,we=1e4,W=class e extends x{constructor(e){super(),this.options=e,this.accessToken=``,this.devices=[],this.devicesFingerprint=``,this.deviceDiscovery=new T,this.bindFunctions(),this.initialize()}bindFunctions(){this.initialize=this.initialize.bind(this),this.sendMessage=this.sendMessage.bind(this),this.sendMessageDebounced=y(this.sendMessage,Ce,!0),this.beginDeviceDiscovery=this.beginDeviceDiscovery.bind(this),this.dispose=this.dispose.bind(this),this.canCastToDevice=this.canCastToDevice.bind(this),this.getDevices=this.getDevices.bind(this),this.startCastSession=this.startCastSession.bind(this),this.authenticateWithVivi=this.authenticateWithVivi.bind(this),this.getRoomList=this.getRoomList.bind(this),this.joinRoom=this.joinRoom.bind(this),this.query=this.query.bind(this),this.loadQueue=this.loadQueue.bind(this),this.play=this.play.bind(this),this.pause=this.pause.bind(this),this.stop=this.stop.bind(this),this.seek=this.seek.bind(this),this.setVolume=this.setVolume.bind(this),this.setMuted=this.setMuted.bind(this),this.setSubtitles=this.setSubtitles.bind(this)}initialize(){this.webSocket=new ye(this.options.url),this.webSocket.onMessage=e=>this.trigger(`message`,JSON.parse(e.data)),this.webSocket.onOpen=async()=>{try{this.accessToken=await this.options.fetchAccessToken(),await this.authenticateWithVivi(),this.beginDeviceDiscovery(),this.trigger(`connected`,S.void)}catch(e){console.error(e),this.trigger(`error`,Error(`Could not connect to Vivi`))}}}sendMessage(e){this.webSocket?.send(JSON.stringify(e))}beginDeviceDiscovery(){this.deviceDiscovery.every(we).schedule(async()=>{try{let t=await this.getRoomList(),n=e.calculateFingerprint(t);if(n===this.devicesFingerprint)return;let r=new Set(t.map(e=>e.organisation??``)).size,i=new Set(t.map(e=>e.location??``)).size;this.devices=t.map(e=>({id:e.id,name:e.name,schoolName:r>1?e.organisation:``,description:i>1?e.location:``,type:E.Vivi,status:w.Available})),this.devicesFingerprint=n,this.trigger(`deviceschange`,S.void)}catch(e){console.warn(e)}}).trigger().start()}dispose(){this.deviceDiscovery.stop(),this.webSocket?.dipose(),super.dispose()}canCastToDevice(e){return e===E.Vivi}getDevices(){return this.devices}startCastSession(e){return new Se(this,e)}async authenticateWithVivi(){this.sendMessage({destination:`relay`,message:{token:this.accessToken,type:`identify_video_api`}}),await this.one(`message`,e=>e.message.type===`video_api_identified`).timeout(U).catch(()=>{throw Error(`Failed to authenticate with Vivi`)})}async getRoomList(){return this.sendMessage({destination:`relay`,message:{type:`video_api_rooms`}}),(await this.one(`message`,e=>e.message.type===`video_api_rooms`).timeout(U).catch(()=>{throw Error(`Failed to fetch rooms`)})).message.rooms||[]}async joinRoom(e){this.sendMessage({destination:`relay`,message:{destination_type:`box`,new_destination:e,token:this.accessToken,type:`connect`}}),await this.one(`message`,t=>{if(t.source===e&&t.message.type===`connect`||t.message.type===`error`&&t.message.error_type===`already_connected`)return!0}).timeout(U).catch(()=>{throw Error(`Failed to join room`)})}async query(t){let n=e.createAckId();return this.sendMessage({destination:t,message:{type:`message_with_ack`,ack_id:n,name:`query`}}),await this.one(`message`,e=>e.message.ack_id===n).timeout(U).catch(()=>{throw Error(`Failed to fetch query`)})}async loadQueue({roomId:t,title:n,videoSource:r,subtitleSource:i}){this.sendMessage({destination:t,message:{type:`message_with_ack`,ack_id:e.createAckId(),name:`queue_load`,payload:{urls:[{title:n,url:r,suburl:i}]}}}),await this.one(`message`,e=>e.source===t&&e.message.payload?.event===`ready`).timeout(U).catch(()=>{throw Error(`Failed to load media`)})}async play(e){this.sendMessage({destination:e,message:{type:`message`,name:`video_play`,payload:{}}}),await this.one(`message`,t=>t.source===e&&t.message.payload?.event===`playing`).timeout(U).catch(()=>{throw Error(`Failed to play video`)})}async pause(e){this.sendMessage({destination:e,message:{type:`message`,name:`video_pause`}}),await this.one(`message`,t=>t.source===e&&t.message.payload?.event===`paused`).timeout(U).catch(()=>{throw Error(`Failed to pause video`)})}async stop(e){this.sendMessage({destination:e,message:{type:`message`,name:`video_stop`}}),await this.one(`message`,t=>t.source===e&&t.message.payload?.event===`stopped`).timeout(U).catch(()=>{throw Error(`Failed to stop video`)})}async seek(e,t){this.sendMessageDebounced({destination:e,message:{type:`message`,name:`video_seek`,payload:{position:t}}})&&await this.one(`message`,t=>t.source===e&&t.message.payload?.event===`playing`).timeout(U).catch(()=>{throw Error(`Failed to seek video`)})}async setVolume(e,t){this.sendMessageDebounced({destination:e,message:{type:`message`,name:`set_volume`,payload:{volume:t}}})&&await this.one(`message`,t=>t.source===e&&t.message.payload?.event===`volume`).timeout(U).catch(()=>{throw Error(`Failed to set volume`)})}async setMuted(e,t){this.sendMessage({destination:e,message:{type:`message`,name:`set_mute`,payload:{mute:t}}}),await this.one(`message`,t=>t.source===e&&t.message.payload?.event===`mute`).timeout(U).catch(()=>{throw Error(`Failed to set mute`)})}async setSubtitles(t,n){let r=e.createAckId();this.sendMessage({destination:t,message:{type:`message_with_ack`,ack_id:r,name:`set_subtitles`,payload:{subtitles:n}}}),await this.one(`message`,e=>e.source===t&&e.message.payload?.event===`subtitles`).timeout(U).catch(()=>{throw Error(`Failed to set subtitles`)})}static createAckId(){return B.generateRandomId()}static calculateFingerprint(e){return e.map(e=>e.id).sort().join(`,`)}},G=class e extends x{constructor(e){super(),this.instanceId=e,this.clients=[],this.bindFunctions()}bindFunctions(){this.addClient=this.addClient.bind(this),this.hasInstanceOfClient=this.hasInstanceOfClient.bind(this),this.startCastSession=this.startCastSession.bind(this),this.gatherAndPublishDevices=this.gatherAndPublishDevices.bind(this),this.dispose=this.dispose.bind(this)}addClient(e){e.on(`deviceschange`,this.gatherAndPublishDevices),e.on(`error`,e=>this.trigger(`error`,e)),this.clients.push(e)}hasInstanceOfClient(e){return this.clients.some(t=>t instanceof e)}startCastSession(e){if(this.castSession)if(this.castSession.getDevice().id!==e.device.id)this.castSession.dispose();else{console.info(`A session with device ${e.device.id} already exists - this is a no-op`);return}let t=this.clients.find(t=>t.canCastToDevice(e.device.type));t&&(this.castSession=t.startCastSession(e),this.castSession.on(`error`,e=>{this.castSession.dispose(),this.trigger(`error`,e)}),this.castSession.on(`dispose`,()=>{this.castSession=void 0,this.trigger(`castsessionchange`,void 0)}),this.trigger(`castsessionchange`,this.castSession))}getCastSession(){return this.castSession}gatherAndPublishDevices(){let e=this.clients.map(e=>e.getDevices()).reduce((e,t)=>[...e,...t],[]);this.trigger(`deviceschange`,e)}dispose(){this.castSession?.dispose(),this.clients.forEach(e=>e.dispose()),this.castSession=void 0,this.clients=[],super.dispose()}static{this.instances={}}static getOrCreateInstance(t){if(!t)throw Error(`instanceId is required`);return this.instances[t]||(this.instances[t]=new e(t)),this.instances[t]}static disposeAndRemoveInstance(e){e.dispose(),delete this.instances[e.instanceId]}static isActive(){return Object.keys(this.instances).length>0}},Te=g.getComponent(`MenuItem`),K=class extends Te{constructor(e,t){super(e,t),this.isVisible=this.isVisible.bind(this)}createEl(){let e={vivi:`cv-vivi-icon`,"apple-tv":`cv-apple-icon`},t=super.createEl(`li`,{className:`vjs-menu-item cv-device-menu-item`}),n=g.dom.createEl(`div`,{className:`cv-device-menu-item-body`,innerHTML:`
|
|
4
4
|
<span class="cv-device-icon ${e[this.options_.type]}"></span>
|
|
@@ -14,4 +14,4 @@ import{o as e}from"./DAXXjFlN.chunk.js";import{x as t}from"./BftnFbcr.chunk.js";
|
|
|
14
14
|
</div>
|
|
15
15
|
<div class="cv-devices-background" style="background-image: url(${this.poster})"></div>
|
|
16
16
|
`;let t=document.createElement(`button`),n=e=>{e.stopPropagation(),this.options_.onStopCasting()};t.onclick=n,t.ontouchstart=n,t.className=`stop-casting-button`,t.innerHTML=this.localize(`Stop casting`),this.el_.querySelector(`.cv-devices-content`).appendChild(t)}play(){}},Fe=g.getComponent(`Tech`),Ie=class extends Fe{constructor(e,t){super(e,t),this.featuresVolumeControl=!0,this.featuresPlaybackRate=!1,this.movingMediaElementInDOM=!1,this.featuresFullscreenResize=!0,this.featuresTimeupdateEvents=!0,this.featuresProgressEvents=!1,this.featuresNativeTextTracks=!1,this.featuresNativeAudioTracks=!1,this.featuresNativeVideoTracks=!1,this.featuresMuteControl=!0,this.featuresSourceset=!1,this.videojsPlayer=g(this.options_.playerId),this.bindFunctions(),this.bindEventListeners(),this.ready(()=>{this.setSource(this.options_.source)}),this.triggerReady()}bindFunctions(){this.bindEventListeners=this.bindEventListeners.bind(this),this.onTextTrackChanged=this.onTextTrackChanged.bind(this),this.getSelectedTextTrack=this.getSelectedTextTrack.bind(this),this.setSelectedTextTrack=this.setSelectedTextTrack.bind(this),this.showUI=this.showUI.bind(this),this.hideUI=this.hideUI.bind(this),this.dispose=this.dispose.bind(this),this.setSource=this.setSource.bind(this),this.getCastSession=this.getCastSession.bind(this)}bindEventListeners(){let e=this.getCastSession();e&&(this.textTracks().on(`change`,this.onTextTrackChanged),this.videojsPlayer.one(`ended`,()=>{e.dispose()}),e.on(`durationchange`,()=>{this.trigger(`durationchange`)}),e.on(`dispose`,()=>{this.trigger(`ended`),this.hideUI()}),e.on(`playingchange`,()=>{e.isPlaying()?(this.trigger(`play`),this.trigger(`playing`)):this.trigger(`pause`)}),e.on(`volumechange`,()=>{this.trigger(`volumechange`)}),e.on(`sourceloaded`,()=>{this.trigger(`loadeddata`)}),e.on(`subtitleschange`,()=>{this.setSelectedTextTrack(e.getSubtitles())}))}onTextTrackChanged(){let e=this.getSelectedTextTrack();this.getCastSession()?.setSubtitles(e?.src)}getSelectedTextTrack(){return f.findTrackByPredicate(this.videojsPlayer.player_,e=>e.mode===`showing`&&!!e.src)}setSelectedTextTrack(e){f.forEachTrack(this.videojsPlayer.player_,t=>{t.kind===`subtitles`&&(t.src===e?t.mode=`showing`:t.mode=`disabled`)})}showUI(e){this.ui&&(this.ui.setPoster(this.options_.poster),this.ui.setDevice(e),this.ui.show())}hideUI(){this.ui?.hide()}dispose(){this.textTracks().off(`change`,this.onTextTrackChanged);let e=this.getCastSession();e&&e.dispose(),super.cleanupAutoTextTracks(),super.dispose()}createEl(){return this.ui=this.ui||new Pe({onStopCasting:()=>{this.getCastSession()?.dispose()}}),this.ui.el()}setSource(e){let t=this.getCastSession();if(!t)return;this.showUI(t.getDevice()),this.trigger(`loadstart`);let n=this.getSelectedTextTrack();t.loadSource(d.getOriginalUrl(e.src),n?.src)}addRemoteTextTrack(e){return super.addRemoteTextTrack(e,!0)}getCastSession(){return G.getOrCreateInstance(this.options_.instanceId??``).getCastSession()}play(){this.getCastSession()?.play()}pause(){this.getCastSession()?.pause()}paused(){return this.getCastSession()?.isPlaying()===!1}ended(){return this.getCastSession()?.isPlaybackFinished()??!1}setCurrentTime(e){this.getCastSession()?.seek(e??0)}currentTime(){return this.getCastSession()?.getPosition()??0}duration(){return this.getCastSession()?.getDuration()??this.videojsPlayer.duration()}volume(){return this.getCastSession()?.getVolume()??1}setVolume(e){this.getCastSession()?.setVolume(e)}muted(){return this.getCastSession()?.getMuted()??!1}setMuted(e){this.getCastSession()?.setMuted(e)}buffered(){}seekable(){return g.createTimeRanges(0,this.duration())}playbackRate(){return 1}readyState(){return 4}controls(){return!1}playsinline(){return!0}supportsFullScreen(){return!0}setAutoplay(){}preload(){}load(){}setPlaybackRate(){}static canPlayType(){return``}static canPlaySource(e,t){return!!G.getOrCreateInstance(t?.instanceId??``).getCastSession()}static isSupported(){return G.isActive()}};g.registerTech(`devices`,Ie);var Z=g.getPlugin(`plugin`),Le=class extends Z{constructor(e,t){super(e,t),this.options=t,this.instanceId=this.player.options_.devices?.instanceId??``,this.bindFunctions(),this.initialize()}bindFunctions(){this.initialize=this.initialize.bind(this),this.onReady=this.onReady.bind(this),this.onDevicesChanged=this.onDevicesChanged.bind(this),this.onCastSessionChanged=this.onCastSessionChanged.bind(this),this.onDevicesError=this.onDevicesError.bind(this),this.addViviClient=this.addViviClient.bind(this),this.addAppleTvClient=this.addAppleTvClient.bind(this),this.reloadTech=this.reloadTech.bind(this),this.getSessionManager=this.getSessionManager.bind(this),this.dispose=this.dispose.bind(this)}initialize(){this.player.ready(this.onReady)}onReady(){let e=this.player.getChild(`collapserator`),t=this.getSessionManager();if(!e||!t)return;t.on(`deviceschange`,this.onDevicesChanged),t.on(`castsessionchange`,this.onCastSessionChanged),t.on(`error`,this.onDevicesError);let n=()=>{this.addViviClient(t),this.addAppleTvClient(t)},r=(e,n)=>{t.startCastSession({device:n,title:this.options.title}),this.options.analyticsService?.logUserAction(n,{actionType:c.Select,workflowPhase:a.Complete,descriptor:i.ChangeDevice,entity:s.Device,eventVersion:o.V3})},l=this.options.ctaOptions,u=this.options.vivi,d=this.options.appleTv,f=[];d.enabled||f.push(E.AppleTv),(!u.enabled||!u.accountConnected)&&f.push(E.Vivi);let p={onClick:n,onDeviceMenuItemClick:r,ctaOptions:{...l,inactiveIntegrations:f}};this.devicesButton=e.addChild(`DevicesButton`,p)}onDevicesChanged(e){this.devicesButton?.setDevices(e)}onCastSessionChanged(e){this.devicesButton?.setCastSession(e),this.reloadTech(),e?(this.player.addClass(`cv-device-casting`),this.player.addClass(`cv-device-${e.getDevice().type}`),this.player.isFullscreen()&&this.player.exitFullscreen()):(this.player.removeClass(`cv-device-casting`),this.player.removeClass(`cv-device-${E.AppleTv}`),this.player.removeClass(`cv-device-${E.Vivi}`))}onDevicesError(e){this.player.error(e.message),this.player.pause()}addViviClient(e){if(!this.options.vivi.enabled||!this.options.vivi.accountConnected||!this.options.vivi.apiUrl||e.hasInstanceOfClient(W))return;let t=new W({url:this.options.vivi.apiUrl,fetchAccessToken:this.options.vivi.fetchAccessToken});e.addClient(t)}addAppleTvClient(e){if(!this.options.appleTv.enabled||!this.options.trackingCode||!this.options.userId||e.hasInstanceOfClient(D))return;let t=new D({fetchAccessToken:this.options.appleTv.fetchAccessToken,trackingCode:this.options.trackingCode,userId:this.options.userId});e.addClient(t)}reloadTech(){let e=this.player,t=e.currentSources(),n=e.volume(),r=e.muted(),i=e.currentTime(),a=e.paused();e.src(t),e.one(`playing`,()=>{e.volume(n),e.muted(r),e.currentTime(i),a?e.pause():e.play()})}getSessionManager(){if(this.instanceId)return G.getOrCreateInstance(this.instanceId)}dispose(){let e=this.getSessionManager();e&&(e.off(`deviceschange`,this.onDevicesChanged),e.off(`castsessionchange`,this.onCastSessionChanged),e.off(`error`,this.onDevicesError),G.disposeAndRemoveInstance(e),super.dispose())}};g.registerPlugin(`devicesPlugin`,Le);function Re(e){return(0,J.jsx)(`div`,{className:`cv-resource-item`,children:(0,J.jsx)(l,{data:e.resource,imageCdnUrl:e.imageCdnUrl,titlePosition:`above`,hideTypeBadge:!0})})}var ze=m((e,t)=>(0,J.jsx)(Re,{...t})),Be=g.getComponent(`MenuItem`),Ve=class extends Be{constructor(e,t){super(e,t);let n=new ze(e,{resource:t.resource,imageCdnUrl:t.imageCdnUrl});this.addChild(n)}createEl(e,t={},n){return super.createEl(e,{...t,className:`${t.className} cv-resource-menu-item`},n)}handleClick(e){e.stopImmediatePropagation(),this.options_.downloadResource(this.options_.resource)}},He=g.getComponent(`MenuButton`),Q=class extends He{constructor(...e){super(...e),this.alwaysCollapsed=!1,this.isCollapsed=!1,this.isCollabsible=!0}buildWrapperCSSClass(){return`cv-menu-small cv-resources-button-wrapper ${super.buildWrapperCSSClass()}`}buildCSSClass(){return`cv-resources-button ${super.buildCSSClass()}`}update(){super.update()}createItems(){let e=[];return e.push(new p(this.player_,{label:`Resources`})),this.options_.resources.forEach(t=>{let n=new Ve(this.player(),{resource:t,imageCdnUrl:this.options_.imageCdnUrl,downloadResource:e=>this.downloadResource(e),label:t.name});e.push(n)}),e}downloadResource(e){if(e.type===`link`){t.PageLoad(e.url,!0);return}this.getDownloadIframe().src=e.url}getDownloadIframe(){return this.downloadIframe?this.downloadIframe:(this.downloadIframe=g.dom.createEl(`iframe`),this.downloadIframe.style.display=`none`,g.dom.appendContent(g.dom.$(`body`),this.downloadIframe),this.downloadIframe)}getCollabsibleName(){return this.controlText_}getCollabsibleValue(){return``}showInCollabsibleMenu(){return!0}showCollapsibleMenu(){super.handleClick(null)}};Q.prototype.controlText_=`Resources`,g.registerComponent(`ResourcesButton`,Q);var Ue=g.getPlugin(`plugin`),We=class extends Ue{constructor(e,t){super(e,t),this.options=t,e.ready(()=>this.onReady())}onReady(){this.options.resources.length&&this.player.getChild(`collapserator`).addChild(`ResourcesButton`,{resources:this.options.resources,imageCdnUrl:this.options.imageCdnUrl})}};g.registerPlugin(`resourcesPlugin`,We);function $(e){let{className:t=``,playerApi:n,onReady:r,onDispose:i,...a}=e,o=O.useRef(null);return O.useEffect(()=>{if(!o)return;let e=new ve(o.current,{...a,playerApi:n});return r&&e.ready(()=>{r(ne(e))}),i&&e.one(`dispose`,i),()=>{e?.dispose()}},[e.viewKey]),(0,J.jsx)(`div`,{ref:o,className:t})}export{$ as ClickViewPlayer,$ as default};
|
|
17
|
-
//# sourceMappingURL=
|
|
17
|
+
//# sourceMappingURL=BOQck-Qs.chunk.js.map
|