@clickview/lite 0.103.0-rc.0 → 0.103.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/dist/.vite/manifest.json +640 -640
  2. package/dist/bundles.json +1 -1
  3. package/dist/en.json +1 -1
  4. package/dist/scripts/{BXosUOUS.chunk.js → 14z5Gy8L.chunk.js} +2 -2
  5. package/dist/scripts/{BXosUOUS.chunk.js.map → 14z5Gy8L.chunk.js.map} +1 -1
  6. package/dist/scripts/{BqkK_0Jk2.chunk.js → B4AZn1xm2.chunk.js} +2 -2
  7. package/dist/scripts/{BqkK_0Jk2.chunk.js.map → B4AZn1xm2.chunk.js.map} +1 -1
  8. package/dist/scripts/{_wBbQ-0z2.chunk.js → BBndy2td2.chunk.js} +2 -2
  9. package/dist/scripts/{_wBbQ-0z2.chunk.js.map → BBndy2td2.chunk.js.map} +1 -1
  10. package/dist/scripts/{BhgNNQjX.chunk.js → BOQck-Qs.chunk.js} +2 -2
  11. package/dist/scripts/{BhgNNQjX.chunk.js.map → BOQck-Qs.chunk.js.map} +1 -1
  12. package/dist/scripts/{BCTM3KG42.chunk.js → BQNOt7_Q2.chunk.js} +2 -2
  13. package/dist/scripts/{BCTM3KG42.chunk.js.map → BQNOt7_Q2.chunk.js.map} +1 -1
  14. package/dist/scripts/{DBdkd4Ag2.chunk.js → BTXOoJko2.chunk.js} +3 -3
  15. package/dist/scripts/{DBdkd4Ag2.chunk.js.map → BTXOoJko2.chunk.js.map} +1 -1
  16. package/dist/scripts/{wmwWqIeA.chunk.js → BTr5dJhb.chunk.js} +2 -2
  17. package/dist/scripts/{wmwWqIeA.chunk.js.map → BTr5dJhb.chunk.js.map} +1 -1
  18. package/dist/scripts/{B-aaIChO2.chunk.js → BTugVIIN2.chunk.js} +2 -2
  19. package/dist/scripts/{B-aaIChO2.chunk.js.map → BTugVIIN2.chunk.js.map} +1 -1
  20. package/dist/scripts/{_eRiDJm1.chunk.js → Ba4uGz_V.chunk.js} +2 -2
  21. package/dist/scripts/{_eRiDJm1.chunk.js.map → Ba4uGz_V.chunk.js.map} +1 -1
  22. package/dist/scripts/{Bx6qaXLc.chunk.js → Bdbe2u0R.chunk.js} +2 -2
  23. package/dist/scripts/{Bx6qaXLc.chunk.js.map → Bdbe2u0R.chunk.js.map} +1 -1
  24. package/dist/scripts/{syYCrnUX.chunk.js → BgoVmaXQ.chunk.js} +2 -2
  25. package/dist/scripts/{syYCrnUX.chunk.js.map → BgoVmaXQ.chunk.js.map} +1 -1
  26. package/dist/scripts/{B5DWwtp0.chunk.js → BjA9XV5y.chunk.js} +2 -2
  27. package/dist/scripts/{B5DWwtp0.chunk.js.map → BjA9XV5y.chunk.js.map} +1 -1
  28. package/dist/scripts/{Dp8z_udC.chunk.js → BoT5D3IL.chunk.js} +2 -2
  29. package/dist/scripts/{Dp8z_udC.chunk.js.map → BoT5D3IL.chunk.js.map} +1 -1
  30. package/dist/scripts/{BYMMqtaN.chunk.js → BqdHoEFM.chunk.js} +2 -2
  31. package/dist/scripts/{BYMMqtaN.chunk.js.map → BqdHoEFM.chunk.js.map} +1 -1
  32. package/dist/scripts/{BIvmcqND2.chunk.js → CCUznsdX2.chunk.js} +2 -2
  33. package/dist/scripts/{BIvmcqND2.chunk.js.map → CCUznsdX2.chunk.js.map} +1 -1
  34. package/dist/scripts/{BsNCh4UD.chunk.js → CFqL2Hm5.chunk.js} +3 -3
  35. package/dist/scripts/{BsNCh4UD.chunk.js.map → CFqL2Hm5.chunk.js.map} +1 -1
  36. package/dist/scripts/{BE8Ze3Fa2.chunk.js → CHmbcl4Y2.chunk.js} +2 -2
  37. package/dist/scripts/{BE8Ze3Fa2.chunk.js.map → CHmbcl4Y2.chunk.js.map} +1 -1
  38. package/dist/scripts/{RuVwpX36.chunk.js → CWCtYUUU.chunk.js} +2 -2
  39. package/dist/scripts/{RuVwpX36.chunk.js.map → CWCtYUUU.chunk.js.map} +1 -1
  40. package/dist/scripts/{CO8EIpI8.chunk.js → CXUrMkZu.chunk.js} +2 -2
  41. package/dist/scripts/{CO8EIpI8.chunk.js.map → CXUrMkZu.chunk.js.map} +1 -1
  42. package/dist/scripts/{DLqG-wwP.chunk.js → CYrelpYt.chunk.js} +2 -2
  43. package/dist/scripts/{DLqG-wwP.chunk.js.map → CYrelpYt.chunk.js.map} +1 -1
  44. package/dist/scripts/{Drx3PvJj.chunk.js → Cc9f2ux0.chunk.js} +2 -2
  45. package/dist/scripts/{Drx3PvJj.chunk.js.map → Cc9f2ux0.chunk.js.map} +1 -1
  46. package/dist/scripts/Cj_F4Lv92.chunk.js +2 -0
  47. package/dist/scripts/{C8l37H7t2.chunk.js.map → Cj_F4Lv92.chunk.js.map} +1 -1
  48. package/dist/scripts/{B5M-3wpn.chunk.js → CjwT65ug.chunk.js} +2 -2
  49. package/dist/scripts/{B5M-3wpn.chunk.js.map → CjwT65ug.chunk.js.map} +1 -1
  50. package/dist/scripts/{Dd23z1_x2.chunk.js → CvSpUZcJ2.chunk.js} +2 -2
  51. package/dist/scripts/{Dd23z1_x2.chunk.js.map → CvSpUZcJ2.chunk.js.map} +1 -1
  52. package/dist/scripts/{QrUfkwZX.chunk.js → DFleEz5_.chunk.js} +2 -2
  53. package/dist/scripts/{QrUfkwZX.chunk.js.map → DFleEz5_.chunk.js.map} +1 -1
  54. package/dist/scripts/{ygwO7HPs2.chunk.js → DIaT_eGy2.chunk.js} +2 -2
  55. package/dist/scripts/{ygwO7HPs2.chunk.js.map → DIaT_eGy2.chunk.js.map} +1 -1
  56. package/dist/scripts/{DXRsxBJw.chunk.js → DTliAJ8L.chunk.js} +2 -2
  57. package/dist/scripts/{DXRsxBJw.chunk.js.map → DTliAJ8L.chunk.js.map} +1 -1
  58. package/dist/scripts/{CfVIZBcI2.chunk.js → DXkvlC_92.chunk.js} +2 -2
  59. package/dist/scripts/{CfVIZBcI2.chunk.js.map → DXkvlC_92.chunk.js.map} +1 -1
  60. package/dist/scripts/{DE5jvfAx2.chunk.js → D_t70KgV2.chunk.js} +2 -2
  61. package/dist/scripts/{DE5jvfAx2.chunk.js.map → D_t70KgV2.chunk.js.map} +1 -1
  62. package/dist/scripts/{Dc01PBv1.chunk.js → Dn2EPvQj.chunk.js} +2 -2
  63. package/dist/scripts/{Dc01PBv1.chunk.js.map → Dn2EPvQj.chunk.js.map} +1 -1
  64. package/dist/scripts/{C4CuJJXy2.chunk.js → Dvl1XgHV2.chunk.js} +2 -2
  65. package/dist/scripts/{C4CuJJXy2.chunk.js.map → Dvl1XgHV2.chunk.js.map} +1 -1
  66. package/dist/scripts/{YzhKditE.chunk.js → ESLgHTNq.chunk.js} +2 -2
  67. package/dist/scripts/{YzhKditE.chunk.js.map → ESLgHTNq.chunk.js.map} +1 -1
  68. package/dist/scripts/{DfSzsD3P.chunk.js → FysETOFv.chunk.js} +2 -2
  69. package/dist/scripts/{DfSzsD3P.chunk.js.map → FysETOFv.chunk.js.map} +1 -1
  70. package/dist/scripts/{OmYpHs7g.chunk.js → _Cm5O72d.chunk.js} +3 -3
  71. package/dist/scripts/{OmYpHs7g.chunk.js.map → _Cm5O72d.chunk.js.map} +1 -1
  72. package/dist/scripts/{app-BzCWmnrr.js → app-k0jrat-b.js} +4 -4
  73. package/dist/scripts/{app-BzCWmnrr.js.map → app-k0jrat-b.js.map} +1 -1
  74. package/dist/scripts/{C46080Xd.chunk.js → dxqgnrOi.chunk.js} +2 -2
  75. package/dist/scripts/{C46080Xd.chunk.js.map → dxqgnrOi.chunk.js.map} +1 -1
  76. package/package.json +1 -1
  77. package/dist/scripts/C8l37H7t2.chunk.js +0 -2
@@ -1 +1 @@
1
- {"version":3,"file":"_eRiDJm1.chunk.js","names":[],"sources":["../../src/apps/share/views/shared-interactive/SharedInteractiveView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { ShareRequests } from 'libs/shared/apps/share/flight-requests/ShareRequests';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { MediaIdType } from 'libs/shared/enums/MediaIdType';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { PlayerRequests } from 'libs/shared/flight-requests/PlayerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useCannotConsumeError } from 'libs/shared/hooks/useCannotConsumeError';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Clip, Config, CurrentUser, Interactive, InteractiveCollection, InteractiveMetadata, PlayerViewKey, UnionShareObject, Video, YearGroup } from 'libs/shared/interfaces';\nimport { AuthToken } from 'libs/shared/interfaces/models/AuthToken';\nimport { PageMetadataHelper } from 'libs/shared/utils/PageMetadataHelper';\n\nimport { useCommonVideoProps } from 'shared/hooks/useCommonVideoProps';\nimport { useDeepLinks } from 'shared/hooks/useDeepLinks';\nimport { useGetRelatedVideos } from 'shared/hooks/useGetRelatedVideos';\nimport { usePresentationAudiences } from 'shared/hooks/usePresentationAudiences';\nimport { useShouldPreviewInteractive } from 'shared/hooks/useShouldPreviewInteractive';\nimport { useVideoMixin } from 'shared/hooks/useVideoMixin';\n\nimport { InteractivePartialLoading } from 'apps/interactives/components/interactive-partial-loading/InteractivePartialLoading';\nimport { PlayInteractive } from 'apps/interactives/components/play-interactive/PlayInteractive';\nimport { PreviewInteractive } from 'apps/interactives/components/preview-interactive/PreviewInteractive';\nimport { ShareLinkNotFoundError } from 'apps/share/errors/share-link-not-found/ShareLinkNotFoundError';\nimport { ShareLinkPrivateError } from 'apps/share/errors/share-link-private/ShareLinkPrivateError';\nimport { ShareLinkFilterHelpers } from 'apps/share/filters/share-link-filter/ShareLinkFilterHelpers';\nimport { ShareLinkViewProps } from 'apps/share/interfaces/ShareLinkViewProps';\n\nconst videoErrors = {\n notFound: ShareLinkNotFoundError,\n forbidden: {\n privacy: ShareLinkPrivateError\n }\n};\n\nfunction getSourceVideo(interactive: InteractiveMetadata): Clip | Video {\n return interactive?._parentClip || interactive?._parentVideo;\n}\n\nexport function SharedInteractiveView(props: ShareLinkViewProps): JSX.Element {\n const { hasPermissions } = usePermissions();\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const token = Flight.useBasicFetch<AuthToken>(UserRequests.token());\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const interactiveMetadata = Flight.useBasicFetch<InteractiveMetadata>(\n InteractiveRequests.sharedInteractiveMetadata(props.objectId, props.shareId)\n );\n\n const shareLink = Flight.useBasicFetch<UnionShareObject>(\n ShareRequests.getShareObject(props.shareId)\n );\n\n /**\n * If the shareLink type isn't an interactive, then it's a playlist and needs to be\n * used as context for fetching\n */\n const viewKeyRequest = shareLink.data && (shareLink.data.objectTypeId === MasterType.Interactive ?\n PlayerRequests.createViewKey(props.shareId, MediaIdType.Share) :\n PlayerRequests.createViewKey(props.objectId, MediaIdType.MasterObject, props.shareId));\n const viewKey = Flight.useBasicFetch<PlayerViewKey>(viewKeyRequest);\n const audiences = usePresentationAudiences();\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data?.isAuthenticated && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n\n /**\n * Authenticated staff with Lite product access get the interactive \"Preview\" view instead\n * of the usual play view.\n */\n const shouldPreviewInteractive = useShouldPreviewInteractive(shareLink.data);\n const interactive = Flight.useBasicFetch<Interactive>(\n shouldPreviewInteractive && interactiveMetadata.data &&\n InteractiveRequests.interactive(interactiveMetadata.data.interactiveId)\n );\n const interactives = Flight.useBasicFetch<InteractiveCollection>(\n shouldPreviewInteractive && interactiveMetadata.data &&\n InteractiveRequests.videoInteractives(getSourceVideo(interactiveMetadata.data).id)\n );\n\n const locationContext = shouldPreviewInteractive ?\n LocationContext.PreviewSharedInteractive :\n LocationContext.PlaySharedInteractive;\n const {\n commonVideoProps,\n hasCommonVideoPropsCompleted\n } = useCommonVideoProps({ locationContext });\n\n const relatedVideos = useGetRelatedVideos({\n video: interactiveMetadata.data,\n context: props.queryParams.context,\n contextId: props.queryParams.contextId,\n moviesAndTv: props.queryParams.mtv,\n currentUser: currentUser.data\n });\n\n useHandleObjectError(interactiveMetadata, videoErrors);\n useCannotConsumeError(interactiveMetadata, { private: ShareLinkPrivateError });\n useDeepLinks({ id: props.objectId, app: 'interactives', shareId: props.shareId });\n useVideoMixin(relatedVideos.videos ?? []);\n useSetPageMetadata(PageMetadataHelper.getInteractiveMetadata({ content: interactiveMetadata.data }));\n\n const hasLoaded = (\n interactiveMetadata.data &&\n config.hasCompleted &&\n currentUser.hasCompleted &&\n (!shouldPreviewInteractive || interactive.hasCompleted) &&\n shareLink.hasCompleted &&\n viewKey.hasCompleted &&\n token.hasCompleted &&\n hasCommonVideoPropsCompleted\n );\n\n if (shouldPreviewInteractive) {\n // For staff, the interactive is previewed\n if (!hasLoaded)\n return <InteractivePartialLoading />;\n\n return (\n <PreviewInteractive\n currentUser={currentUser.data}\n queryParams={props.queryParams}\n interactive={interactiveMetadata.data}\n interactives={interactives.data?.data}\n isPreviewPreventScrubbingEnabled={interactive.data.preventScrubbing}\n audiences={audiences.data}\n relatedVideos={relatedVideos}\n canManageVideoAccess={hasPermissions(PermissionName.ManageVideoAccess)}\n commonVideoProps={commonVideoProps}\n />\n );\n }\n\n if (!hasLoaded)\n return <></>;\n\n return (\n <PlayInteractive\n interactive={interactiveMetadata.data}\n currentUser={currentUser.data}\n config={config.data}\n audiences={audiences.data}\n yearGroups={yearGroups.data}\n queryParams={props.queryParams}\n viewKey={viewKey.data}\n relatedVideos={relatedVideos}\n shareLink={shareLink.data}\n startTime={props.queryParams?.t}\n token={token.data}\n collectAnonResults={!currentUser.data?.isAuthenticated && !!ShareLinkFilterHelpers.getAnonUser(props.shareId)}\n commonVideoProps={commonVideoProps}\n />\n );\n}\n"],"mappings":"2jCAsCM,EAAc,CAClB,SAAU,EACV,UAAW,CACT,QAAS,CACX,CACF,EAEA,SAAS,EAAe,EAAgD,CACtE,OAAO,GAAa,aAAe,GAAa,YAClD,CAEA,SAAgB,EAAsB,EAAwC,CAC5E,GAAM,CAAE,kBAAmB,EAAe,EAEpC,EAAS,EAA6B,EAAe,OAAO,CAAC,EAC7D,EAAQ,EAAgC,EAAa,MAAM,CAAC,EAE5D,EAAc,EAAkC,EAAa,YAAY,CAAC,EAC1E,EAAsB,EAC1B,EAAoB,0BAA0B,EAAM,SAAU,EAAM,OAAO,CAC7E,EAEM,EAAY,EAChB,EAAc,eAAe,EAAM,OAAO,CAC5C,EASM,EAAU,EAHO,EAAU,OAAS,EAAU,KAAK,eAAiB,EAAW,YACnF,EAAe,cAAc,EAAM,QAAS,EAAY,KAAK,EAC7D,EAAe,cAAc,EAAM,SAAU,EAAY,aAAc,EAAM,OAAO,EACpB,EAC5D,EAAY,EAAyB,EACrC,EAAa,EACjB,EAAY,MAAM,iBAAmB,EAAiB,WAAW,EAAY,KAAK,UAAU,CAC9F,EAMM,EAA2B,EAA4B,EAAU,IAAI,EACrE,EAAc,EAClB,GAA4B,EAAoB,MAChD,EAAoB,YAAY,EAAoB,KAAK,aAAa,CACxE,EACM,EAAe,EACnB,GAA4B,EAAoB,MAChD,EAAoB,kBAAkB,EAAe,EAAoB,IAAI,CAAC,CAAC,EAAE,CACnF,EAKM,CACJ,mBACA,gCACE,EAAoB,CAAE,gBANF,EACtB,EAAgB,yBAChB,EAAgB,qBAIwB,CAAC,EAErC,EAAgB,EAAoB,CACxC,MAAO,EAAoB,KAC3B,QAAS,EAAM,YAAY,QAC3B,UAAW,EAAM,YAAY,UAC7B,YAAa,EAAM,YAAY,IAC/B,YAAa,EAAY,IAC3B,CAAC,EAED,EAAqB,EAAqB,CAAW,EACrD,EAAsB,EAAqB,CAAE,QAAS,CAAsB,CAAC,EAC7E,EAAa,CAAE,GAAI,EAAM,SAAU,IAAK,eAAgB,QAAS,EAAM,OAAQ,CAAC,EAChF,EAAc,EAAc,QAAU,CAAC,CAAC,EACxC,EAAmB,EAAmB,uBAAuB,CAAE,QAAS,EAAoB,IAAK,CAAC,CAAC,EAEnG,IAAM,EACJ,EAAoB,MACpB,EAAO,cACP,EAAY,eACX,CAAC,GAA4B,EAAY,eAC1C,EAAU,cACV,EAAQ,cACR,EAAM,cACN,EA0BF,OAvBI,EAEG,GAIH,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,YAAa,EAAY,KACzB,YAAa,EAAM,YACnB,YAAa,EAAoB,KACjC,aAAc,EAAa,MAAM,KACjC,iCAAkC,EAAY,KAAK,iBACnD,UAAW,EAAU,KACN,gBACf,qBAAsB,EAAe,EAAe,iBAAiB,EACnD,kBACnB,CAAA,GAbM,EAAA,EAAA,IAAA,CAAC,EAAD,CAA4B,CAAA,EAiBlC,GAIH,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,YAAa,EAAoB,KACjC,YAAa,EAAY,KACzB,OAAQ,EAAO,KACf,UAAW,EAAU,KACrB,WAAY,EAAW,KACvB,YAAa,EAAM,YACnB,QAAS,EAAQ,KACF,gBACf,UAAW,EAAU,KACrB,UAAW,EAAM,aAAa,EAC9B,MAAO,EAAM,KACb,mBAAoB,CAAC,EAAY,MAAM,iBAAmB,CAAC,CAAC,EAAuB,YAAY,EAAM,OAAO,EAC1F,kBACnB,CAAA,GAjBM,EAAA,EAAA,IAAA,CAAA,EAAA,SAAA,CAAI,CAAA,CAmBf"}
1
+ {"version":3,"file":"Ba4uGz_V.chunk.js","names":[],"sources":["../../src/apps/share/views/shared-interactive/SharedInteractiveView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { ShareRequests } from 'libs/shared/apps/share/flight-requests/ShareRequests';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { MediaIdType } from 'libs/shared/enums/MediaIdType';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { PlayerRequests } from 'libs/shared/flight-requests/PlayerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useCannotConsumeError } from 'libs/shared/hooks/useCannotConsumeError';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Clip, Config, CurrentUser, Interactive, InteractiveCollection, InteractiveMetadata, PlayerViewKey, UnionShareObject, Video, YearGroup } from 'libs/shared/interfaces';\nimport { AuthToken } from 'libs/shared/interfaces/models/AuthToken';\nimport { PageMetadataHelper } from 'libs/shared/utils/PageMetadataHelper';\n\nimport { useCommonVideoProps } from 'shared/hooks/useCommonVideoProps';\nimport { useDeepLinks } from 'shared/hooks/useDeepLinks';\nimport { useGetRelatedVideos } from 'shared/hooks/useGetRelatedVideos';\nimport { usePresentationAudiences } from 'shared/hooks/usePresentationAudiences';\nimport { useShouldPreviewInteractive } from 'shared/hooks/useShouldPreviewInteractive';\nimport { useVideoMixin } from 'shared/hooks/useVideoMixin';\n\nimport { InteractivePartialLoading } from 'apps/interactives/components/interactive-partial-loading/InteractivePartialLoading';\nimport { PlayInteractive } from 'apps/interactives/components/play-interactive/PlayInteractive';\nimport { PreviewInteractive } from 'apps/interactives/components/preview-interactive/PreviewInteractive';\nimport { ShareLinkNotFoundError } from 'apps/share/errors/share-link-not-found/ShareLinkNotFoundError';\nimport { ShareLinkPrivateError } from 'apps/share/errors/share-link-private/ShareLinkPrivateError';\nimport { ShareLinkFilterHelpers } from 'apps/share/filters/share-link-filter/ShareLinkFilterHelpers';\nimport { ShareLinkViewProps } from 'apps/share/interfaces/ShareLinkViewProps';\n\nconst videoErrors = {\n notFound: ShareLinkNotFoundError,\n forbidden: {\n privacy: ShareLinkPrivateError\n }\n};\n\nfunction getSourceVideo(interactive: InteractiveMetadata): Clip | Video {\n return interactive?._parentClip || interactive?._parentVideo;\n}\n\nexport function SharedInteractiveView(props: ShareLinkViewProps): JSX.Element {\n const { hasPermissions } = usePermissions();\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const token = Flight.useBasicFetch<AuthToken>(UserRequests.token());\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const interactiveMetadata = Flight.useBasicFetch<InteractiveMetadata>(\n InteractiveRequests.sharedInteractiveMetadata(props.objectId, props.shareId)\n );\n\n const shareLink = Flight.useBasicFetch<UnionShareObject>(\n ShareRequests.getShareObject(props.shareId)\n );\n\n /**\n * If the shareLink type isn't an interactive, then it's a playlist and needs to be\n * used as context for fetching\n */\n const viewKeyRequest = shareLink.data && (shareLink.data.objectTypeId === MasterType.Interactive ?\n PlayerRequests.createViewKey(props.shareId, MediaIdType.Share) :\n PlayerRequests.createViewKey(props.objectId, MediaIdType.MasterObject, props.shareId));\n const viewKey = Flight.useBasicFetch<PlayerViewKey>(viewKeyRequest);\n const audiences = usePresentationAudiences();\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data?.isAuthenticated && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n\n /**\n * Authenticated staff with Lite product access get the interactive \"Preview\" view instead\n * of the usual play view.\n */\n const shouldPreviewInteractive = useShouldPreviewInteractive(shareLink.data);\n const interactive = Flight.useBasicFetch<Interactive>(\n shouldPreviewInteractive && interactiveMetadata.data &&\n InteractiveRequests.interactive(interactiveMetadata.data.interactiveId)\n );\n const interactives = Flight.useBasicFetch<InteractiveCollection>(\n shouldPreviewInteractive && interactiveMetadata.data &&\n InteractiveRequests.videoInteractives(getSourceVideo(interactiveMetadata.data).id)\n );\n\n const locationContext = shouldPreviewInteractive ?\n LocationContext.PreviewSharedInteractive :\n LocationContext.PlaySharedInteractive;\n const {\n commonVideoProps,\n hasCommonVideoPropsCompleted\n } = useCommonVideoProps({ locationContext });\n\n const relatedVideos = useGetRelatedVideos({\n video: interactiveMetadata.data,\n context: props.queryParams.context,\n contextId: props.queryParams.contextId,\n moviesAndTv: props.queryParams.mtv,\n currentUser: currentUser.data\n });\n\n useHandleObjectError(interactiveMetadata, videoErrors);\n useCannotConsumeError(interactiveMetadata, { private: ShareLinkPrivateError });\n useDeepLinks({ id: props.objectId, app: 'interactives', shareId: props.shareId });\n useVideoMixin(relatedVideos.videos ?? []);\n useSetPageMetadata(PageMetadataHelper.getInteractiveMetadata({ content: interactiveMetadata.data }));\n\n const hasLoaded = (\n interactiveMetadata.data &&\n config.hasCompleted &&\n currentUser.hasCompleted &&\n (!shouldPreviewInteractive || interactive.hasCompleted) &&\n shareLink.hasCompleted &&\n viewKey.hasCompleted &&\n token.hasCompleted &&\n hasCommonVideoPropsCompleted\n );\n\n if (shouldPreviewInteractive) {\n // For staff, the interactive is previewed\n if (!hasLoaded)\n return <InteractivePartialLoading />;\n\n return (\n <PreviewInteractive\n currentUser={currentUser.data}\n queryParams={props.queryParams}\n interactive={interactiveMetadata.data}\n interactives={interactives.data?.data}\n isPreviewPreventScrubbingEnabled={interactive.data.preventScrubbing}\n audiences={audiences.data}\n relatedVideos={relatedVideos}\n canManageVideoAccess={hasPermissions(PermissionName.ManageVideoAccess)}\n commonVideoProps={commonVideoProps}\n />\n );\n }\n\n if (!hasLoaded)\n return <></>;\n\n return (\n <PlayInteractive\n interactive={interactiveMetadata.data}\n currentUser={currentUser.data}\n config={config.data}\n audiences={audiences.data}\n yearGroups={yearGroups.data}\n queryParams={props.queryParams}\n viewKey={viewKey.data}\n relatedVideos={relatedVideos}\n shareLink={shareLink.data}\n startTime={props.queryParams?.t}\n token={token.data}\n collectAnonResults={!currentUser.data?.isAuthenticated && !!ShareLinkFilterHelpers.getAnonUser(props.shareId)}\n commonVideoProps={commonVideoProps}\n />\n );\n}\n"],"mappings":"2jCAsCM,EAAc,CAClB,SAAU,EACV,UAAW,CACT,QAAS,CACX,CACF,EAEA,SAAS,EAAe,EAAgD,CACtE,OAAO,GAAa,aAAe,GAAa,YAClD,CAEA,SAAgB,EAAsB,EAAwC,CAC5E,GAAM,CAAE,kBAAmB,EAAe,EAEpC,EAAS,EAA6B,EAAe,OAAO,CAAC,EAC7D,EAAQ,EAAgC,EAAa,MAAM,CAAC,EAE5D,EAAc,EAAkC,EAAa,YAAY,CAAC,EAC1E,EAAsB,EAC1B,EAAoB,0BAA0B,EAAM,SAAU,EAAM,OAAO,CAC7E,EAEM,EAAY,EAChB,EAAc,eAAe,EAAM,OAAO,CAC5C,EASM,EAAU,EAHO,EAAU,OAAS,EAAU,KAAK,eAAiB,EAAW,YACnF,EAAe,cAAc,EAAM,QAAS,EAAY,KAAK,EAC7D,EAAe,cAAc,EAAM,SAAU,EAAY,aAAc,EAAM,OAAO,EACpB,EAC5D,EAAY,EAAyB,EACrC,EAAa,EACjB,EAAY,MAAM,iBAAmB,EAAiB,WAAW,EAAY,KAAK,UAAU,CAC9F,EAMM,EAA2B,EAA4B,EAAU,IAAI,EACrE,EAAc,EAClB,GAA4B,EAAoB,MAChD,EAAoB,YAAY,EAAoB,KAAK,aAAa,CACxE,EACM,EAAe,EACnB,GAA4B,EAAoB,MAChD,EAAoB,kBAAkB,EAAe,EAAoB,IAAI,CAAC,CAAC,EAAE,CACnF,EAKM,CACJ,mBACA,gCACE,EAAoB,CAAE,gBANF,EACtB,EAAgB,yBAChB,EAAgB,qBAIwB,CAAC,EAErC,EAAgB,EAAoB,CACxC,MAAO,EAAoB,KAC3B,QAAS,EAAM,YAAY,QAC3B,UAAW,EAAM,YAAY,UAC7B,YAAa,EAAM,YAAY,IAC/B,YAAa,EAAY,IAC3B,CAAC,EAED,EAAqB,EAAqB,CAAW,EACrD,EAAsB,EAAqB,CAAE,QAAS,CAAsB,CAAC,EAC7E,EAAa,CAAE,GAAI,EAAM,SAAU,IAAK,eAAgB,QAAS,EAAM,OAAQ,CAAC,EAChF,EAAc,EAAc,QAAU,CAAC,CAAC,EACxC,EAAmB,EAAmB,uBAAuB,CAAE,QAAS,EAAoB,IAAK,CAAC,CAAC,EAEnG,IAAM,EACJ,EAAoB,MACpB,EAAO,cACP,EAAY,eACX,CAAC,GAA4B,EAAY,eAC1C,EAAU,cACV,EAAQ,cACR,EAAM,cACN,EA0BF,OAvBI,EAEG,GAIH,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,YAAa,EAAY,KACzB,YAAa,EAAM,YACnB,YAAa,EAAoB,KACjC,aAAc,EAAa,MAAM,KACjC,iCAAkC,EAAY,KAAK,iBACnD,UAAW,EAAU,KACN,gBACf,qBAAsB,EAAe,EAAe,iBAAiB,EACnD,kBACnB,CAAA,GAbM,EAAA,EAAA,IAAA,CAAC,EAAD,CAA4B,CAAA,EAiBlC,GAIH,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,YAAa,EAAoB,KACjC,YAAa,EAAY,KACzB,OAAQ,EAAO,KACf,UAAW,EAAU,KACrB,WAAY,EAAW,KACvB,YAAa,EAAM,YACnB,QAAS,EAAQ,KACF,gBACf,UAAW,EAAU,KACrB,UAAW,EAAM,aAAa,EAC9B,MAAO,EAAM,KACb,mBAAoB,CAAC,EAAY,MAAM,iBAAmB,CAAC,CAAC,EAAuB,YAAY,EAAM,OAAO,EAC1F,kBACnB,CAAA,GAjBM,EAAA,EAAA,IAAA,CAAA,EAAA,SAAA,CAAI,CAAA,CAmBf"}
@@ -1,2 +1,2 @@
1
- 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"./oPIkfKWW2.chunk.js";import{t as a}from"./8U-YTgZd.chunk.js";import{t as o}from"./D_gWf2lC.chunk.js";import{t as s}from"./BXpZzabC.chunk.js";import{n as c,t as l}from"./A8xLZrSw.chunk.js";import{n as u,t as d}from"./BGhJ8TEx.chunk.js";import{t as f}from"./CMLErBju.chunk.js";import{t as p}from"./OmYpHs7g.chunk.js";import{t as m}from"./BTd65Rcb2.chunk.js";import{t as h}from"./CwQ4GF7L2.chunk.js";import{t as g}from"./CpbhGCQS2.chunk.js";import{t as _}from"./5ONJSThP.chunk.js";import{n as v,r as y}from"./BGswYbRT.chunk.js";var b=e(t()),x=n();function S(e){let t=r(o.config()),n=r(i.currentUser()),S=r(a.sharedInteractiveMetadata(e.objectId,e.shareId)),C=r(s.getShareObject(e.shareId)),w=r(d.createViewKey(e.shareId,u.Share)),T=b.useMemo(()=>y(),[]);f(S,{private:h}),l(c.getInteractiveMetadata({content:S.data}));function E(e){e.one(`cv-playback-data-loaded`,()=>{m.remove()})}let D=_(),O=D.xl&&!D.xxl;function k(e){e?document.body.classList.remove(`overflow-hidden`):document.body.classList.add(`overflow-hidden`)}return S.data&&t.hasCompleted&&n.hasCompleted&&C.hasCompleted&&w.hasCompleted?(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(p,{config:t.data,video:S.data,currentUser:n.data,shareLink:C.data,viewKey:w.data,presentationSlug:null,startTime:e.queryParams.t??e.queryParams.startTime,onShowSummary:k,summaryPortalNode:T,embed:!0,onReady:E,collectAnonResults:!n.data?.isAuthenticated&&!!g.getAnonUser(e.shareId)}),(0,x.jsx)(`div`,{className:`p-3 ${O?`container-fluid`:`container`}`,children:(0,x.jsx)(v,{node:T})})]}):(0,x.jsx)(x.Fragment,{})}export{S as EmbeddedInteractiveView};
2
- //# sourceMappingURL=Bx6qaXLc.chunk.js.map
1
+ 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"./oPIkfKWW2.chunk.js";import{t as a}from"./8U-YTgZd.chunk.js";import{t as o}from"./D_gWf2lC.chunk.js";import{t as s}from"./BXpZzabC.chunk.js";import{n as c,t as l}from"./A8xLZrSw.chunk.js";import{n as u,t as d}from"./BGhJ8TEx.chunk.js";import{t as f}from"./CMLErBju.chunk.js";import{t as p}from"./_Cm5O72d.chunk.js";import{t as m}from"./BTd65Rcb2.chunk.js";import{t as h}from"./CwQ4GF7L2.chunk.js";import{t as g}from"./CpbhGCQS2.chunk.js";import{t as _}from"./5ONJSThP.chunk.js";import{n as v,r as y}from"./BGswYbRT.chunk.js";var b=e(t()),x=n();function S(e){let t=r(o.config()),n=r(i.currentUser()),S=r(a.sharedInteractiveMetadata(e.objectId,e.shareId)),C=r(s.getShareObject(e.shareId)),w=r(d.createViewKey(e.shareId,u.Share)),T=b.useMemo(()=>y(),[]);f(S,{private:h}),l(c.getInteractiveMetadata({content:S.data}));function E(e){e.one(`cv-playback-data-loaded`,()=>{m.remove()})}let D=_(),O=D.xl&&!D.xxl;function k(e){e?document.body.classList.remove(`overflow-hidden`):document.body.classList.add(`overflow-hidden`)}return S.data&&t.hasCompleted&&n.hasCompleted&&C.hasCompleted&&w.hasCompleted?(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(p,{config:t.data,video:S.data,currentUser:n.data,shareLink:C.data,viewKey:w.data,presentationSlug:null,startTime:e.queryParams.t??e.queryParams.startTime,onShowSummary:k,summaryPortalNode:T,embed:!0,onReady:E,collectAnonResults:!n.data?.isAuthenticated&&!!g.getAnonUser(e.shareId)}),(0,x.jsx)(`div`,{className:`p-3 ${O?`container-fluid`:`container`}`,children:(0,x.jsx)(v,{node:T})})]}):(0,x.jsx)(x.Fragment,{})}export{S as EmbeddedInteractiveView};
2
+ //# sourceMappingURL=Bdbe2u0R.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Bx6qaXLc.chunk.js","names":[],"sources":["../../src/apps/embed/views/embedded-interactive/EmbeddedInteractiveView.tsx"],"sourcesContent":["import React from 'react';\nimport { createHtmlPortalNode, OutPortal } from 'react-reverse-portal';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { ShareRequests } from 'libs/shared/apps/share/flight-requests/ShareRequests';\nimport { PlayerReference } from 'libs/shared/context/player-context/interfaces/PlayerReference';\nimport { MediaIdType } from 'libs/shared/enums/MediaIdType';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { PlayerRequests } from 'libs/shared/flight-requests/PlayerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { useCannotConsumeError } from 'libs/shared/hooks/useCannotConsumeError';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Config, CurrentUser, InteractiveMetadata, PlayerViewKey, UnionShareObject } from 'libs/shared/interfaces';\nimport { PageMetadataHelper } from 'libs/shared/utils/PageMetadataHelper';\n\nimport { LitePlayerView } from 'shared/views/lite-player/LitePlayerView';\n\nimport { PrivateEmbedError } from 'apps/embed/errors/forbidden/PrivateEmbedError';\nimport { EmbedViewProps } from 'apps/embed/interfaces/EmbedViewProps';\nimport { EmbedPlaceHolderHelper } from 'apps/embed/utils/EmbedPlaceholderHelper';\nimport { ShareLinkFilterHelpers } from 'apps/share/filters/share-link-filter/ShareLinkFilterHelpers';\n\nexport function EmbeddedInteractiveView(props: EmbedViewProps): React.ReactElement {\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const interactiveMetadata = Flight.useBasicFetch<InteractiveMetadata>(\n InteractiveRequests.sharedInteractiveMetadata(props.objectId, props.shareId)\n );\n\n const shareLink = Flight.useBasicFetch<UnionShareObject>(\n ShareRequests.getShareObject(props.shareId)\n );\n\n const viewKeyRequest = PlayerRequests.createViewKey(props.shareId, MediaIdType.Share);\n const viewKey = Flight.useBasicFetch<PlayerViewKey>(viewKeyRequest);\n\n const summaryPortalNode = React.useMemo(() => createHtmlPortalNode(), []);\n\n useCannotConsumeError(interactiveMetadata, { private: PrivateEmbedError });\n useSetPageMetadata(PageMetadataHelper.getInteractiveMetadata({ content: interactiveMetadata.data }));\n\n function onReady(player: PlayerReference): void {\n player.one('cv-playback-data-loaded', () => {\n EmbedPlaceHolderHelper.remove();\n });\n }\n\n const breakpoints = useBreakpoints();\n const useContainerFluid = breakpoints.xl && !breakpoints.xxl;\n function onShowSummary(showing: boolean): void {\n if (showing)\n document.body.classList.remove('overflow-hidden');\n else\n document.body.classList.add('overflow-hidden');\n }\n\n const hasLoaded = (\n interactiveMetadata.data &&\n config.hasCompleted &&\n currentUser.hasCompleted &&\n shareLink.hasCompleted &&\n viewKey.hasCompleted\n );\n\n if (!hasLoaded)\n return <></>;\n\n return (\n <>\n <LitePlayerView\n config={config.data}\n video={interactiveMetadata.data}\n currentUser={currentUser.data}\n shareLink={shareLink.data}\n viewKey={viewKey.data}\n presentationSlug={null}\n startTime={props.queryParams.t ?? props.queryParams.startTime}\n onShowSummary={onShowSummary}\n summaryPortalNode={summaryPortalNode}\n embed\n onReady={onReady}\n collectAnonResults={!currentUser.data?.isAuthenticated && !!ShareLinkFilterHelpers.getAnonUser(props.shareId)}\n />\n <div className={`p-3 ${useContainerFluid ? 'container-fluid' : 'container'}`}>\n <OutPortal node={summaryPortalNode}></OutPortal>\n </div>\n </>\n );\n}\n"],"mappings":"+sBAyBA,SAAgB,EAAwB,EAA2C,CACjF,IAAM,EAAS,EAA6B,EAAe,OAAO,CAAC,EAE7D,EAAc,EAAkC,EAAa,YAAY,CAAC,EAC1E,EAAsB,EAC1B,EAAoB,0BAA0B,EAAM,SAAU,EAAM,OAAO,CAC7E,EAEM,EAAY,EAChB,EAAc,eAAe,EAAM,OAAO,CAC5C,EAGM,EAAU,EADO,EAAe,cAAc,EAAM,QAAS,EAAY,KAC3B,CAAc,EAE5D,EAAA,EAA0B,YAAc,EAAqB,EAAG,CAAC,CAAC,EAExE,EAAsB,EAAqB,CAAE,QAAS,CAAkB,CAAC,EACzE,EAAmB,EAAmB,uBAAuB,CAAE,QAAS,EAAoB,IAAK,CAAC,CAAC,EAEnG,SAAS,EAAQ,EAA+B,CAC9C,EAAO,IAAI,8BAAiC,CAC1C,EAAuB,OAAO,CAChC,CAAC,CACH,CAEA,IAAM,EAAc,EAAe,EAC7B,EAAoB,EAAY,IAAM,CAAC,EAAY,IACzD,SAAS,EAAc,EAAwB,CACzC,EACF,SAAS,KAAK,UAAU,OAAO,iBAAiB,EAEhD,SAAS,KAAK,UAAU,IAAI,iBAAiB,CACjD,CAaA,OAVE,EAAoB,MACpB,EAAO,cACP,EAAY,cACZ,EAAU,cACV,EAAQ,cAOR,EAAA,EAAA,KAAA,CAAA,EAAA,SAAA,CAAA,SAAA,EACE,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,OAAQ,EAAO,KACf,MAAO,EAAoB,KAC3B,YAAa,EAAY,KACzB,UAAW,EAAU,KACrB,QAAS,EAAQ,KACjB,iBAAkB,KAClB,UAAW,EAAM,YAAY,GAAK,EAAM,YAAY,UACrC,gBACI,oBACnB,MAAA,GACS,UACT,mBAAoB,CAAC,EAAY,MAAM,iBAAmB,CAAC,CAAC,EAAuB,YAAY,EAAM,OAAO,CAC7G,CAAA,GACD,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAW,OAAO,EAAoB,kBAAoB,wBAC7D,EAAA,EAAA,IAAA,CAAC,EAAD,CAAW,KAAM,CAA8B,CAAA,CAC5C,CAAA,CACL,CAAA,CAAA,GArBK,EAAA,EAAA,IAAA,CAAA,EAAA,SAAA,CAAI,CAAA,CAuBf"}
1
+ {"version":3,"file":"Bdbe2u0R.chunk.js","names":[],"sources":["../../src/apps/embed/views/embedded-interactive/EmbeddedInteractiveView.tsx"],"sourcesContent":["import React from 'react';\nimport { createHtmlPortalNode, OutPortal } from 'react-reverse-portal';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { ShareRequests } from 'libs/shared/apps/share/flight-requests/ShareRequests';\nimport { PlayerReference } from 'libs/shared/context/player-context/interfaces/PlayerReference';\nimport { MediaIdType } from 'libs/shared/enums/MediaIdType';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { PlayerRequests } from 'libs/shared/flight-requests/PlayerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { useCannotConsumeError } from 'libs/shared/hooks/useCannotConsumeError';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Config, CurrentUser, InteractiveMetadata, PlayerViewKey, UnionShareObject } from 'libs/shared/interfaces';\nimport { PageMetadataHelper } from 'libs/shared/utils/PageMetadataHelper';\n\nimport { LitePlayerView } from 'shared/views/lite-player/LitePlayerView';\n\nimport { PrivateEmbedError } from 'apps/embed/errors/forbidden/PrivateEmbedError';\nimport { EmbedViewProps } from 'apps/embed/interfaces/EmbedViewProps';\nimport { EmbedPlaceHolderHelper } from 'apps/embed/utils/EmbedPlaceholderHelper';\nimport { ShareLinkFilterHelpers } from 'apps/share/filters/share-link-filter/ShareLinkFilterHelpers';\n\nexport function EmbeddedInteractiveView(props: EmbedViewProps): React.ReactElement {\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const interactiveMetadata = Flight.useBasicFetch<InteractiveMetadata>(\n InteractiveRequests.sharedInteractiveMetadata(props.objectId, props.shareId)\n );\n\n const shareLink = Flight.useBasicFetch<UnionShareObject>(\n ShareRequests.getShareObject(props.shareId)\n );\n\n const viewKeyRequest = PlayerRequests.createViewKey(props.shareId, MediaIdType.Share);\n const viewKey = Flight.useBasicFetch<PlayerViewKey>(viewKeyRequest);\n\n const summaryPortalNode = React.useMemo(() => createHtmlPortalNode(), []);\n\n useCannotConsumeError(interactiveMetadata, { private: PrivateEmbedError });\n useSetPageMetadata(PageMetadataHelper.getInteractiveMetadata({ content: interactiveMetadata.data }));\n\n function onReady(player: PlayerReference): void {\n player.one('cv-playback-data-loaded', () => {\n EmbedPlaceHolderHelper.remove();\n });\n }\n\n const breakpoints = useBreakpoints();\n const useContainerFluid = breakpoints.xl && !breakpoints.xxl;\n function onShowSummary(showing: boolean): void {\n if (showing)\n document.body.classList.remove('overflow-hidden');\n else\n document.body.classList.add('overflow-hidden');\n }\n\n const hasLoaded = (\n interactiveMetadata.data &&\n config.hasCompleted &&\n currentUser.hasCompleted &&\n shareLink.hasCompleted &&\n viewKey.hasCompleted\n );\n\n if (!hasLoaded)\n return <></>;\n\n return (\n <>\n <LitePlayerView\n config={config.data}\n video={interactiveMetadata.data}\n currentUser={currentUser.data}\n shareLink={shareLink.data}\n viewKey={viewKey.data}\n presentationSlug={null}\n startTime={props.queryParams.t ?? props.queryParams.startTime}\n onShowSummary={onShowSummary}\n summaryPortalNode={summaryPortalNode}\n embed\n onReady={onReady}\n collectAnonResults={!currentUser.data?.isAuthenticated && !!ShareLinkFilterHelpers.getAnonUser(props.shareId)}\n />\n <div className={`p-3 ${useContainerFluid ? 'container-fluid' : 'container'}`}>\n <OutPortal node={summaryPortalNode}></OutPortal>\n </div>\n </>\n );\n}\n"],"mappings":"+sBAyBA,SAAgB,EAAwB,EAA2C,CACjF,IAAM,EAAS,EAA6B,EAAe,OAAO,CAAC,EAE7D,EAAc,EAAkC,EAAa,YAAY,CAAC,EAC1E,EAAsB,EAC1B,EAAoB,0BAA0B,EAAM,SAAU,EAAM,OAAO,CAC7E,EAEM,EAAY,EAChB,EAAc,eAAe,EAAM,OAAO,CAC5C,EAGM,EAAU,EADO,EAAe,cAAc,EAAM,QAAS,EAAY,KAC3B,CAAc,EAE5D,EAAA,EAA0B,YAAc,EAAqB,EAAG,CAAC,CAAC,EAExE,EAAsB,EAAqB,CAAE,QAAS,CAAkB,CAAC,EACzE,EAAmB,EAAmB,uBAAuB,CAAE,QAAS,EAAoB,IAAK,CAAC,CAAC,EAEnG,SAAS,EAAQ,EAA+B,CAC9C,EAAO,IAAI,8BAAiC,CAC1C,EAAuB,OAAO,CAChC,CAAC,CACH,CAEA,IAAM,EAAc,EAAe,EAC7B,EAAoB,EAAY,IAAM,CAAC,EAAY,IACzD,SAAS,EAAc,EAAwB,CACzC,EACF,SAAS,KAAK,UAAU,OAAO,iBAAiB,EAEhD,SAAS,KAAK,UAAU,IAAI,iBAAiB,CACjD,CAaA,OAVE,EAAoB,MACpB,EAAO,cACP,EAAY,cACZ,EAAU,cACV,EAAQ,cAOR,EAAA,EAAA,KAAA,CAAA,EAAA,SAAA,CAAA,SAAA,EACE,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,OAAQ,EAAO,KACf,MAAO,EAAoB,KAC3B,YAAa,EAAY,KACzB,UAAW,EAAU,KACrB,QAAS,EAAQ,KACjB,iBAAkB,KAClB,UAAW,EAAM,YAAY,GAAK,EAAM,YAAY,UACrC,gBACI,oBACnB,MAAA,GACS,UACT,mBAAoB,CAAC,EAAY,MAAM,iBAAmB,CAAC,CAAC,EAAuB,YAAY,EAAM,OAAO,CAC7G,CAAA,GACD,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAW,OAAO,EAAoB,kBAAoB,wBAC7D,EAAA,EAAA,IAAA,CAAC,EAAD,CAAW,KAAM,CAA8B,CAAA,CAC5C,CAAA,CACL,CAAA,CAAA,GArBK,EAAA,EAAA,IAAA,CAAA,EAAA,SAAA,CAAI,CAAA,CAuBf"}
@@ -1,2 +1,2 @@
1
- import"./DAXXjFlN.chunk.js";import{n as e,t}from"./D8uRDrkd.chunk.js";import{t as n}from"./CQyJ7YGa.chunk.js";import{t as r}from"./e57H3T-k.chunk.js";import{t as i}from"./C2w0pmFW.chunk.js";import{t as a}from"./wrLrTezN.chunk.js";import{t as o}from"./BXTI9cmX.chunk.js";import{u as s}from"./BX0wDJmp.chunk.js";import{t as c}from"./CjA4Q5pm.chunk.js";import{U as l,a as u,l as d,y as f,z as p}from"./NlCAcBdo.chunk.js";import{t as m}from"./oPIkfKWW2.chunk.js";import{t as h}from"./C5j5LRut2.chunk.js";import{t as g}from"./CVHQXNzi2.chunk.js";import{t as _}from"./YakGe6vv2.chunk.js";import{t as v}from"./DtGDVg4O2.chunk.js";import{t as y}from"./8U-YTgZd.chunk.js";import{t as b}from"./DsXWD-Sn.chunk.js";import{t as x}from"./DdsRCMkN.chunk.js";import{t as S}from"./D_gWf2lC.chunk.js";import{t as C}from"./Bbp2U9GK2.chunk.js";import{t as w}from"./A8xLZrSw.chunk.js";import{n as T,t as E}from"./BGhJ8TEx.chunk.js";import{t as D}from"./OmYpHs7g.chunk.js";import{n as O,t as k}from"./CpFtf-tI2.chunk.js";import{t as A}from"./BxYKQEUG2.chunk.js";import{t as j}from"./DqM363Cd.chunk.js";import{t as M}from"./DGA_eT2h2.chunk.js";import{t as N}from"./tnBD84bg2.chunk.js";import{t as P}from"./Bl_6WesE.chunk.js";import{t as F}from"./D0n6BTgT.chunk.js";import{t as I}from"./D7hSSm4r2.chunk.js";import{n as L,r as R,t as z}from"./rCRn6wGn2.chunk.js";i();var B=j(),V={closeButton:`_closeButton_1bg8h_1`,descriptionBorder:`_descriptionBorder_1bg8h_7`},H=a(),U=`shared.videoDetails`,W=n.encloseNamespace(U);function G(e){let{label:t,items:n,className:r}=e;return n&&n.data&&n.data.length?(0,H.jsxs)(`div`,{className:r,children:[t,`: `,n.data.map(e=>e.name).join(`, `)]}):(0,H.jsx)(H.Fragment,{})}function K(e){let{video:t}=e;if(!_.isVideo(t)&&!_.isClip(t))return(0,H.jsx)(H.Fragment,{});let n=_.getParentVideo(t);return(0,H.jsxs)(`div`,{className:t.description?`col-md-5 ps-md-3 pt-3 pt-md-0`:`col-12`,children:[(0,H.jsx)(`h2`,{className:`h6 mb-1`,children:(0,H.jsx)(O,{phrase:`details`})}),!!n.productionYear&&(0,H.jsx)(`div`,{className:`mb-1`,children:(0,H.jsx)(O,{phrase:`productionYear`,options:{year:n.productionYear}})}),(0,H.jsx)(G,{label:W(`productionCompanies`,{smartCount:n.productionCompanies?.data?.length}),items:n.productionCompanies,className:`mb-1`}),(0,H.jsx)(G,{label:W(`distributors`,{smartCount:n.distributors?.data?.length}),items:n.distributors,className:`mb-1`}),(0,H.jsx)(G,{label:W(`producers`,{smartCount:n.producers?.data?.length}),items:n.producers,className:`mb-1`}),(0,H.jsx)(G,{label:W(`directors`,{smartCount:n.directors?.data?.length}),items:n.directors,className:`mb-1`}),!!n.dateBroadcast&&(0,H.jsx)(`div`,{className:`mb-1`,children:(0,H.jsx)(O,{phrase:`dateBroadcast`,options:{date:c.format(n.dateBroadcast,`DD/MM/YYYY`)}})}),!!n.channel&&(0,H.jsx)(`div`,{className:`mb-1`,children:(0,H.jsx)(O,{phrase:`channel`,options:{channel:n.channel.name}})}),_.canViewUploadDate(e.video)&&(0,H.jsx)(`div`,{className:`mb-1`,children:(0,H.jsx)(O,{phrase:`dateUploaded`,options:{date:c.format(t.dateCreated,`DD/MM/YYYY`)}})})]})}function q(e){let{video:t,maxHeight:n=368}=e,i=_.getParentVideo(t),a=!!e.video.description,o=z(e.video)||!!i.productionYear||!!i.dateBroadcast||!!i.channel||_.canViewUploadDate(e.video),s=typeof e.onClickClose==`function`,c=typeof e.onClickShowCurriculumLinks==`function`;function l(){return e.hideTags||_.isInteractive(e.video)||!e.video.tags?.data?.length?null:e.video.tags.data}return!a&&!o?(0,H.jsx)(H.Fragment,{}):(0,H.jsx)(k.Provider,{value:U,children:(0,H.jsxs)(`div`,{className:`rounded border p-3 mb-3 position-relative`,children:[(0,H.jsx)(B.Scrollbars,{autoHeight:!0,autoHeightMax:n,children:(0,H.jsxs)(`div`,{className:`row g-0`,children:[a&&(0,H.jsxs)(`div`,{className:o?`${V.descriptionBorder} pe-3 col-md-7`:`col-12`,children:[(0,H.jsxs)(`div`,{className:`d-flex align-items-center`,children:[(0,H.jsx)(`h2`,{className:`h6 mb-1`,children:(0,H.jsx)(O,{phrase:`description`})}),(0,H.jsx)(I,{text:t.description,title:t.name,className:`ps-2`,onLaunch:e.onLaunchImmersiveReader,onExit:e.onExitImmersiveReader,analyticsOptions:{location:f.PlayPage,entity:d.Video,actionType:p.Click,descriptor:u.LaunchImmersiveReader},analyticsData:{id:t.id,type:`description`}})]}),(0,H.jsx)(`p`,{className:`mb-0`,dangerouslySetInnerHTML:{__html:r.sanitize(N.linkifyText(e.video.description,{nl2br:!0}))}}),(0,H.jsx)(L,{tags:l(),...R.getTagActionProps(e.getTagAppLink,null,e.suppressInteractivity),className:`mt-1`}),c&&(0,H.jsx)(C,{onClick:e.onClickShowCurriculumLinks,className:`cursor-pointer d-inline-block fw-semibold text-info mt-2 mb-1`,children:(0,H.jsx)(O,{namespace:U,phrase:`seeCurriculumLinks`})})]}),o&&(0,H.jsx)(K,{...e})]})}),s&&(0,H.jsx)(`button`,{type:`button`,className:`btn-close ${V.closeButton}`,"aria-label":`Close`,onClick:e.onClickClose})]})})}var J=`userManager.studentsVideo`,Y=n.encloseNamespace(J);function X(e,t){return t.toString()===g.Clip.toString()?v.clip(e):t.toString()===g.Interactive.toString()?y.interactiveMetadata(e):b.video(e)}function Z(e){return e.toString()===g.Clip.toString()?`messageClip`:e.toString()===g.Interactive.toString()?`messageInteractive`:`messageVideo`}function Q(r){let i=s(P.getUser(r.userId)),a=s(X(r.id,r.typeId)),c=s(E.createViewKey(r.id,T.MasterObject)),u=s(S.config()),d=s(m.currentUser());F([i,a]),w({title:i.data?n.getPhrase(J,`pageTitle`,{name:h.getFullName(i.data)}):``});function g(){let e={entity:_.getAnalyticsEntity(a.data),location:f.ViewStudentVideos},t={id:a.data.id},n=[];return _.isVideo(a.data)&&n.push({order:1,label:Y(`download`),appLink:{application:o.VIDEOS,action:x.Videos.DOWNLOAD_VIDEO,args:[a.data.id]},analyticsOptions:{...e,actionType:p.Download,workflowPhase:l.Start},analyticsData:t}),n.push({order:2,label:Y(`delete`),appLink:{application:o.USER_MANAGER,action:x.UserManager.DELETE_STUDENTS_VIDEO,args:[r.id,a.data.id],params:{typeId:a.data.typeId}},className:`text-danger`,analyticsOptions:{...e,actionType:p.Delete,workflowPhase:l.Start},analyticsData:t}),n}return i.hasCompleted&&a.hasCompleted&&c.hasCompleted&&u.hasCompleted&&d.hasCompleted?(0,H.jsxs)(`div`,{className:`px-3`,children:[(0,H.jsx)(`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`,children:(0,H.jsxs)(`div`,{className:`d-flex align-items-center`,children:[(0,H.jsx)(t,{svg:A,size:e.Standard,className:`me-2 svg-container`}),(0,H.jsx)(`div`,{className:`w-100`,children:(0,H.jsx)(`p`,{className:`fw-semibold mb-0`,children:Y(Z(r.typeId),{name:h.getFullName(i.data),yearGroup:i.data.masterYearGroup?.name})})})]})}),(0,H.jsx)(`div`,{className:`mb-3`,children:(0,H.jsx)(D,{config:u.data,video:a.data,currentUser:d.data,viewKey:c.data,presentationSlug:null})}),(0,H.jsxs)(`div`,{className:`d-flex justify-content-between align-items-center mb-2`,children:[(0,H.jsx)(`div`,{children:(0,H.jsx)(`h1`,{className:`h3 d-inline-flex m-0 mb-2`,children:a.data.name})}),(0,H.jsx)(M,{actions:g(),actionsDropdownClassName:`btn btn-outline-dark`})]}),(0,H.jsx)(q,{video:a.data})]}):(0,H.jsx)(H.Fragment,{})}export{Q as StudentsVideoView};
2
- //# sourceMappingURL=syYCrnUX.chunk.js.map
1
+ import"./DAXXjFlN.chunk.js";import{n as e,t}from"./D8uRDrkd.chunk.js";import{t as n}from"./CQyJ7YGa.chunk.js";import{t as r}from"./e57H3T-k.chunk.js";import{t as i}from"./C2w0pmFW.chunk.js";import{t as a}from"./wrLrTezN.chunk.js";import{t as o}from"./BXTI9cmX.chunk.js";import{u as s}from"./BX0wDJmp.chunk.js";import{t as c}from"./CjA4Q5pm.chunk.js";import{U as l,a as u,l as d,y as f,z as p}from"./NlCAcBdo.chunk.js";import{t as m}from"./oPIkfKWW2.chunk.js";import{t as h}from"./C5j5LRut2.chunk.js";import{t as g}from"./CVHQXNzi2.chunk.js";import{t as _}from"./YakGe6vv2.chunk.js";import{t as v}from"./DtGDVg4O2.chunk.js";import{t as y}from"./8U-YTgZd.chunk.js";import{t as b}from"./DsXWD-Sn.chunk.js";import{t as x}from"./DdsRCMkN.chunk.js";import{t as S}from"./D_gWf2lC.chunk.js";import{t as C}from"./Bbp2U9GK2.chunk.js";import{t as w}from"./A8xLZrSw.chunk.js";import{n as T,t as E}from"./BGhJ8TEx.chunk.js";import{t as D}from"./_Cm5O72d.chunk.js";import{n as O,t as k}from"./CpFtf-tI2.chunk.js";import{t as A}from"./BxYKQEUG2.chunk.js";import{t as j}from"./DqM363Cd.chunk.js";import{t as M}from"./DGA_eT2h2.chunk.js";import{t as N}from"./tnBD84bg2.chunk.js";import{t as P}from"./Bl_6WesE.chunk.js";import{t as F}from"./D0n6BTgT.chunk.js";import{t as I}from"./D7hSSm4r2.chunk.js";import{n as L,r as R,t as z}from"./rCRn6wGn2.chunk.js";i();var B=j(),V={closeButton:`_closeButton_1bg8h_1`,descriptionBorder:`_descriptionBorder_1bg8h_7`},H=a(),U=`shared.videoDetails`,W=n.encloseNamespace(U);function G(e){let{label:t,items:n,className:r}=e;return n&&n.data&&n.data.length?(0,H.jsxs)(`div`,{className:r,children:[t,`: `,n.data.map(e=>e.name).join(`, `)]}):(0,H.jsx)(H.Fragment,{})}function K(e){let{video:t}=e;if(!_.isVideo(t)&&!_.isClip(t))return(0,H.jsx)(H.Fragment,{});let n=_.getParentVideo(t);return(0,H.jsxs)(`div`,{className:t.description?`col-md-5 ps-md-3 pt-3 pt-md-0`:`col-12`,children:[(0,H.jsx)(`h2`,{className:`h6 mb-1`,children:(0,H.jsx)(O,{phrase:`details`})}),!!n.productionYear&&(0,H.jsx)(`div`,{className:`mb-1`,children:(0,H.jsx)(O,{phrase:`productionYear`,options:{year:n.productionYear}})}),(0,H.jsx)(G,{label:W(`productionCompanies`,{smartCount:n.productionCompanies?.data?.length}),items:n.productionCompanies,className:`mb-1`}),(0,H.jsx)(G,{label:W(`distributors`,{smartCount:n.distributors?.data?.length}),items:n.distributors,className:`mb-1`}),(0,H.jsx)(G,{label:W(`producers`,{smartCount:n.producers?.data?.length}),items:n.producers,className:`mb-1`}),(0,H.jsx)(G,{label:W(`directors`,{smartCount:n.directors?.data?.length}),items:n.directors,className:`mb-1`}),!!n.dateBroadcast&&(0,H.jsx)(`div`,{className:`mb-1`,children:(0,H.jsx)(O,{phrase:`dateBroadcast`,options:{date:c.format(n.dateBroadcast,`DD/MM/YYYY`)}})}),!!n.channel&&(0,H.jsx)(`div`,{className:`mb-1`,children:(0,H.jsx)(O,{phrase:`channel`,options:{channel:n.channel.name}})}),_.canViewUploadDate(e.video)&&(0,H.jsx)(`div`,{className:`mb-1`,children:(0,H.jsx)(O,{phrase:`dateUploaded`,options:{date:c.format(t.dateCreated,`DD/MM/YYYY`)}})})]})}function q(e){let{video:t,maxHeight:n=368}=e,i=_.getParentVideo(t),a=!!e.video.description,o=z(e.video)||!!i.productionYear||!!i.dateBroadcast||!!i.channel||_.canViewUploadDate(e.video),s=typeof e.onClickClose==`function`,c=typeof e.onClickShowCurriculumLinks==`function`;function l(){return e.hideTags||_.isInteractive(e.video)||!e.video.tags?.data?.length?null:e.video.tags.data}return!a&&!o?(0,H.jsx)(H.Fragment,{}):(0,H.jsx)(k.Provider,{value:U,children:(0,H.jsxs)(`div`,{className:`rounded border p-3 mb-3 position-relative`,children:[(0,H.jsx)(B.Scrollbars,{autoHeight:!0,autoHeightMax:n,children:(0,H.jsxs)(`div`,{className:`row g-0`,children:[a&&(0,H.jsxs)(`div`,{className:o?`${V.descriptionBorder} pe-3 col-md-7`:`col-12`,children:[(0,H.jsxs)(`div`,{className:`d-flex align-items-center`,children:[(0,H.jsx)(`h2`,{className:`h6 mb-1`,children:(0,H.jsx)(O,{phrase:`description`})}),(0,H.jsx)(I,{text:t.description,title:t.name,className:`ps-2`,onLaunch:e.onLaunchImmersiveReader,onExit:e.onExitImmersiveReader,analyticsOptions:{location:f.PlayPage,entity:d.Video,actionType:p.Click,descriptor:u.LaunchImmersiveReader},analyticsData:{id:t.id,type:`description`}})]}),(0,H.jsx)(`p`,{className:`mb-0`,dangerouslySetInnerHTML:{__html:r.sanitize(N.linkifyText(e.video.description,{nl2br:!0}))}}),(0,H.jsx)(L,{tags:l(),...R.getTagActionProps(e.getTagAppLink,null,e.suppressInteractivity),className:`mt-1`}),c&&(0,H.jsx)(C,{onClick:e.onClickShowCurriculumLinks,className:`cursor-pointer d-inline-block fw-semibold text-info mt-2 mb-1`,children:(0,H.jsx)(O,{namespace:U,phrase:`seeCurriculumLinks`})})]}),o&&(0,H.jsx)(K,{...e})]})}),s&&(0,H.jsx)(`button`,{type:`button`,className:`btn-close ${V.closeButton}`,"aria-label":`Close`,onClick:e.onClickClose})]})})}var J=`userManager.studentsVideo`,Y=n.encloseNamespace(J);function X(e,t){return t.toString()===g.Clip.toString()?v.clip(e):t.toString()===g.Interactive.toString()?y.interactiveMetadata(e):b.video(e)}function Z(e){return e.toString()===g.Clip.toString()?`messageClip`:e.toString()===g.Interactive.toString()?`messageInteractive`:`messageVideo`}function Q(r){let i=s(P.getUser(r.userId)),a=s(X(r.id,r.typeId)),c=s(E.createViewKey(r.id,T.MasterObject)),u=s(S.config()),d=s(m.currentUser());F([i,a]),w({title:i.data?n.getPhrase(J,`pageTitle`,{name:h.getFullName(i.data)}):``});function g(){let e={entity:_.getAnalyticsEntity(a.data),location:f.ViewStudentVideos},t={id:a.data.id},n=[];return _.isVideo(a.data)&&n.push({order:1,label:Y(`download`),appLink:{application:o.VIDEOS,action:x.Videos.DOWNLOAD_VIDEO,args:[a.data.id]},analyticsOptions:{...e,actionType:p.Download,workflowPhase:l.Start},analyticsData:t}),n.push({order:2,label:Y(`delete`),appLink:{application:o.USER_MANAGER,action:x.UserManager.DELETE_STUDENTS_VIDEO,args:[r.id,a.data.id],params:{typeId:a.data.typeId}},className:`text-danger`,analyticsOptions:{...e,actionType:p.Delete,workflowPhase:l.Start},analyticsData:t}),n}return i.hasCompleted&&a.hasCompleted&&c.hasCompleted&&u.hasCompleted&&d.hasCompleted?(0,H.jsxs)(`div`,{className:`px-3`,children:[(0,H.jsx)(`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`,children:(0,H.jsxs)(`div`,{className:`d-flex align-items-center`,children:[(0,H.jsx)(t,{svg:A,size:e.Standard,className:`me-2 svg-container`}),(0,H.jsx)(`div`,{className:`w-100`,children:(0,H.jsx)(`p`,{className:`fw-semibold mb-0`,children:Y(Z(r.typeId),{name:h.getFullName(i.data),yearGroup:i.data.masterYearGroup?.name})})})]})}),(0,H.jsx)(`div`,{className:`mb-3`,children:(0,H.jsx)(D,{config:u.data,video:a.data,currentUser:d.data,viewKey:c.data,presentationSlug:null})}),(0,H.jsxs)(`div`,{className:`d-flex justify-content-between align-items-center mb-2`,children:[(0,H.jsx)(`div`,{children:(0,H.jsx)(`h1`,{className:`h3 d-inline-flex m-0 mb-2`,children:a.data.name})}),(0,H.jsx)(M,{actions:g(),actionsDropdownClassName:`btn btn-outline-dark`})]}),(0,H.jsx)(q,{video:a.data})]}):(0,H.jsx)(H.Fragment,{})}export{Q as StudentsVideoView};
2
+ //# sourceMappingURL=BgoVmaXQ.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"syYCrnUX.chunk.js","names":[],"sources":["../../../../libs/shared/src/components/video-details/video-details.module.scss","../../../../libs/shared/src/components/video-details/VideoDetails.tsx","../../src/apps/user-manager/views/students-video/StudentsVideoView.tsx"],"sourcesContent":[":local {\n .closeButton {\n position: absolute;\n top: 1rem;\n right: map-get($spacers, 3);\n }\n \n @media (min-width: #{map-get($grid-breakpoints, md)}) {\n .descriptionBorder {\n border-right: 1px solid $gray-300;\n }\n }\n}","import * as React from 'react';\nimport { Scrollbars } from 'react-custom-scrollbars-2';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\nimport { LinkifyHelper } from 'libs/common/react/utils/LinkifyHelper';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { ClickDescriptor, EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { ImmersiveReader } from 'libs/shared/components/immersive-reader/ImmersiveReader';\nimport { TagHelper } from 'libs/shared/components/tags/TagHelper';\nimport { TagList } from 'libs/shared/components/tags/TagList';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\nimport { MINIMUM_GLANCE_HEIGHT } from 'libs/shared/constants/MinimumGlanceHeight';\nimport { BaseObject, BasePaginatedCollection, CurrentUser, Tag, VideoTypes } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { hasPPDD } from './VideoDetailsUtils';\n\nimport styles from './video-details.module.scss';\n\nconst namespace = 'shared.videoDetails';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface CommaListProps {\n label: string;\n items: BasePaginatedCollection<BaseObject>;\n className?: string;\n}\n\nfunction CommaList(props: CommaListProps): React.ReactElement {\n const { label, items, className } = props;\n\n const hasItems = items && items.data && items.data.length;\n\n if (!hasItems)\n return <></>;\n\n const commaSeperated = items.data.map(i => i.name).join(', ');\n\n return (\n <div className={className}>{label}: {commaSeperated}</div>\n );\n}\n\nfunction DetailsSection(props: VideoDetailsWithScrollbarProps): React.ReactElement {\n const { video } = props;\n\n if (!VideoHelper.isVideo(video) && !VideoHelper.isClip(video))\n return <></>;\n\n const parentVideo = VideoHelper.getParentVideo(video);\n\n return (\n <div className={video.description ? 'col-md-5 ps-md-3 pt-3 pt-md-0' : 'col-12'}>\n <h2 className='h6 mb-1'><Text phrase='details' /></h2>\n {!!parentVideo.productionYear && (\n <div className='mb-1'>\n <Text phrase='productionYear' options={{ year: parentVideo.productionYear }} />\n </div>\n )}\n <CommaList\n label={getPhrase('productionCompanies', { smartCount: parentVideo.productionCompanies?.data?.length })}\n items={parentVideo.productionCompanies}\n className='mb-1'\n />\n <CommaList\n label={getPhrase('distributors', { smartCount: parentVideo.distributors?.data?.length })}\n items={parentVideo.distributors}\n className='mb-1'\n />\n <CommaList\n label={getPhrase('producers', { smartCount: parentVideo.producers?.data?.length })}\n items={parentVideo.producers}\n className='mb-1'\n />\n <CommaList\n label={getPhrase('directors', { smartCount: parentVideo.directors?.data?.length })}\n items={parentVideo.directors}\n className='mb-1'\n />\n {!!parentVideo.dateBroadcast && (\n <div className='mb-1'>\n <Text phrase='dateBroadcast' options={{ date: DateHelper.format(parentVideo.dateBroadcast, 'DD/MM/YYYY') }} />\n </div>\n )}\n {!!parentVideo.channel && (\n <div className='mb-1'>\n <Text phrase='channel' options={{ channel: parentVideo.channel.name }} />\n </div>\n )}\n {VideoHelper.canViewUploadDate(props.video) && (\n <div className='mb-1'>\n <Text phrase='dateUploaded' options={{ date: DateHelper.format(video.dateCreated, 'DD/MM/YYYY') }} />\n </div>\n )}\n </div>\n );\n}\n\ninterface VideoDetailsWithScrollbarProps {\n video: VideoTypes;\n currentUser?: CurrentUser;\n getTagAppLink?: (tag: Tag) => Core.AppLink;\n onLaunchImmersiveReader?: () => void;\n onExitImmersiveReader?: () => void;\n onClickClose?: () => void;\n onClickShowCurriculumLinks?: () => void;\n maxHeight?: number;\n suppressInteractivity?: boolean;\n hideTags?: boolean;\n}\n\nexport function VideoDetailsWithScrollbar(props: VideoDetailsWithScrollbarProps): React.ReactElement {\n const { video, maxHeight = MINIMUM_GLANCE_HEIGHT } = props;\n\n const parentVideo = VideoHelper.getParentVideo(video);\n\n const showDescription = !!props.video.description;\n\n const showDetails = (\n hasPPDD(props.video) ||\n !!parentVideo.productionYear ||\n !!parentVideo.dateBroadcast ||\n !!parentVideo.channel ||\n VideoHelper.canViewUploadDate(props.video)\n );\n\n const canClose = typeof props.onClickClose === 'function';\n const showCurriculumLinks = typeof props.onClickShowCurriculumLinks === 'function';\n\n function getTags(): Tag[] {\n if (props.hideTags || VideoHelper.isInteractive(props.video) || !props.video.tags?.data?.length)\n return null;\n\n return props.video.tags.data;\n }\n\n if (!showDescription && !showDetails)\n return <></>;\n\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <div className='rounded border p-3 mb-3 position-relative'>\n <Scrollbars autoHeight autoHeightMax={maxHeight}>\n <div className='row g-0'>\n {showDescription && (\n <div className={showDetails ? `${styles.descriptionBorder} pe-3 col-md-7` : 'col-12'}>\n <div className='d-flex align-items-center'>\n <h2 className='h6 mb-1'>\n <Text phrase='description' />\n </h2>\n <ImmersiveReader\n text={video.description}\n title={video.name}\n className='ps-2'\n onLaunch={props.onLaunchImmersiveReader}\n onExit={props.onExitImmersiveReader}\n analyticsOptions={{\n location: LocationContext.PlayPage,\n entity: EntityType.Video,\n actionType: UserAction.Click,\n descriptor: ClickDescriptor.LaunchImmersiveReader\n }}\n analyticsData={{ id: video.id, type: 'description' }}\n />\n </div>\n <p className='mb-0' dangerouslySetInnerHTML={{ __html: TextHelper.sanitize(LinkifyHelper.linkifyText(props.video.description, { nl2br: true })) }} />\n <TagList\n tags={getTags()}\n {...TagHelper.getTagActionProps(props.getTagAppLink, null, props.suppressInteractivity)}\n className='mt-1'\n />\n {showCurriculumLinks && (\n <DivButton\n onClick={props.onClickShowCurriculumLinks}\n className='cursor-pointer d-inline-block fw-semibold text-info mt-2 mb-1'\n >\n <Text namespace={namespace} phrase='seeCurriculumLinks' />\n </DivButton>\n )}\n </div>\n )}\n\n {showDetails && (\n <DetailsSection {...props} />\n )}\n </div>\n </Scrollbars>\n\n {canClose && (\n <button\n type='button'\n className={`btn-close ${styles.closeButton}`}\n aria-label='Close'\n onClick={props.onClickClose}\n />\n )}\n </div>\n </LanguageNamespaceContext.Provider>\n );\n}\n","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\n\nimport { AnalyticsOptions, LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { Actions as ActionsButtons } from 'libs/shared/components/actions/Actions';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { VideoDetailsWithScrollbar } from 'libs/shared/components/video-details/VideoDetails';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { MediaIdType } from 'libs/shared/enums/MediaIdType';\nimport { ClipRequests } from 'libs/shared/flight-requests/ClipRequests';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { PlayerRequests } from 'libs/shared/flight-requests/PlayerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { InfoSvg } from 'libs/shared/images/svg/status/InfoSvg';\nimport { Config, CurrentUser, PlayerViewKey, User, VideoTypes } from 'libs/shared/interfaces';\nimport { UserHelper } from 'libs/shared/utils/UserHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { LitePlayerView } from 'shared/views/lite-player/LitePlayerView';\n\nimport { UserManagerRequests } from 'apps/user-manager/flight-requests/UserManagerRequests';\n\nconst namespace = 'userManager.studentsVideo';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction getRequest(id: string, typeId: string): Flight.Request {\n if (typeId.toString() === MasterType.Clip.toString())\n return ClipRequests.clip(id);\n\n if (typeId.toString() === MasterType.Interactive.toString())\n return InteractiveRequests.interactiveMetadata(id);\n\n return VideoRequests.video(id);\n}\n\nfunction getMessagePhrase(typeId: string): string {\n if (typeId.toString() === MasterType.Clip.toString())\n return 'messageClip';\n\n if (typeId.toString() === MasterType.Interactive.toString())\n return 'messageInteractive';\n\n return 'messageVideo';\n}\n\ninterface StudentsVideoProps {\n userId: string;\n id: string;\n typeId: string;\n}\n\nexport function StudentsVideoView(props: StudentsVideoProps): JSX.Element {\n const user = Flight.useBasicFetch<User>(UserManagerRequests.getUser(props.userId));\n\n const video = Flight.useBasicFetch<VideoTypes>(getRequest(props.id, props.typeId));\n\n const viewKey = Flight.useBasicFetch<PlayerViewKey>(PlayerRequests.createViewKey(props.id, MediaIdType.MasterObject));\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n useHandleObjectError([ user, video ]);\n useSetPageMetadata({\n title: user.data ?\n LanguageService.getPhrase(\n namespace,\n 'pageTitle',\n { name: UserHelper.getFullName(user.data) }\n ) :\n ''\n });\n\n function getVideoActions(): ActionOptions[] {\n const analyticsOptions: AnalyticsOptions = {\n entity: VideoHelper.getAnalyticsEntity(video.data),\n location: LocationContext.ViewStudentVideos\n };\n \n const analyticsData = {\n id: video.data.id\n };\n \n const actions: ActionOptions[] = [];\n \n if (VideoHelper.isVideo(video.data)) {\n actions.push({\n order: 1,\n label: getPhrase('download'),\n appLink: { application: AppChannels.VIDEOS, action: Actions.Videos.DOWNLOAD_VIDEO, args: [video.data.id]},\n analyticsOptions: {\n ...analyticsOptions,\n actionType: UserAction.Download,\n workflowPhase: WorkflowPhase.Start\n },\n analyticsData\n });\n }\n \n actions.push({\n order: 2,\n label: getPhrase('delete'),\n appLink: {\n application: AppChannels.USER_MANAGER,\n action: Actions.UserManager.DELETE_STUDENTS_VIDEO,\n args: [ props.id, video.data.id ],\n params: { typeId: video.data.typeId }\n },\n className: 'text-danger',\n analyticsOptions: {\n ...analyticsOptions,\n actionType: UserAction.Delete,\n workflowPhase: WorkflowPhase.Start\n },\n analyticsData\n });\n \n return actions;\n }\n\n const dataLoaded = (\n user.hasCompleted &&\n video.hasCompleted &&\n viewKey.hasCompleted &&\n config.hasCompleted &&\n currentUser.hasCompleted\n );\n\n if (!dataLoaded)\n return <></>;\n\n return (\n <div className='px-3'>\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 <div className='d-flex align-items-center'>\n <SvgContainer\n svg={InfoSvg}\n size={SvgContainerSize.Standard}\n className='me-2 svg-container'\n />\n \n <div className='w-100'>\n <p className='fw-semibold mb-0'>\n {getPhrase(\n getMessagePhrase(props.typeId),\n { name: UserHelper.getFullName(user.data), yearGroup: user.data.masterYearGroup?.name }\n )}\n </p>\n </div>\n </div>\n </div>\n <div className='mb-3'>\n <LitePlayerView\n config={config.data}\n video={video.data}\n currentUser={currentUser.data}\n viewKey={viewKey.data}\n presentationSlug={null}\n />\n </div>\n <div className='d-flex justify-content-between align-items-center mb-2'>\n <div>\n <h1 className='h3 d-inline-flex m-0 mb-2'>\n {video.data.name}\n </h1>\n </div>\n <ActionsButtons\n actions={getVideoActions()}\n actionsDropdownClassName='btn btn-outline-dark'\n />\n </div>\n <VideoDetailsWithScrollbar video={video.data} />\n </div>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"BgoVmaXQ.chunk.js","names":[],"sources":["../../../../libs/shared/src/components/video-details/video-details.module.scss","../../../../libs/shared/src/components/video-details/VideoDetails.tsx","../../src/apps/user-manager/views/students-video/StudentsVideoView.tsx"],"sourcesContent":[":local {\n .closeButton {\n position: absolute;\n top: 1rem;\n right: map-get($spacers, 3);\n }\n \n @media (min-width: #{map-get($grid-breakpoints, md)}) {\n .descriptionBorder {\n border-right: 1px solid $gray-300;\n }\n }\n}","import * as React from 'react';\nimport { Scrollbars } from 'react-custom-scrollbars-2';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\nimport { LinkifyHelper } from 'libs/common/react/utils/LinkifyHelper';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { ClickDescriptor, EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { ImmersiveReader } from 'libs/shared/components/immersive-reader/ImmersiveReader';\nimport { TagHelper } from 'libs/shared/components/tags/TagHelper';\nimport { TagList } from 'libs/shared/components/tags/TagList';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\nimport { MINIMUM_GLANCE_HEIGHT } from 'libs/shared/constants/MinimumGlanceHeight';\nimport { BaseObject, BasePaginatedCollection, CurrentUser, Tag, VideoTypes } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { hasPPDD } from './VideoDetailsUtils';\n\nimport styles from './video-details.module.scss';\n\nconst namespace = 'shared.videoDetails';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface CommaListProps {\n label: string;\n items: BasePaginatedCollection<BaseObject>;\n className?: string;\n}\n\nfunction CommaList(props: CommaListProps): React.ReactElement {\n const { label, items, className } = props;\n\n const hasItems = items && items.data && items.data.length;\n\n if (!hasItems)\n return <></>;\n\n const commaSeperated = items.data.map(i => i.name).join(', ');\n\n return (\n <div className={className}>{label}: {commaSeperated}</div>\n );\n}\n\nfunction DetailsSection(props: VideoDetailsWithScrollbarProps): React.ReactElement {\n const { video } = props;\n\n if (!VideoHelper.isVideo(video) && !VideoHelper.isClip(video))\n return <></>;\n\n const parentVideo = VideoHelper.getParentVideo(video);\n\n return (\n <div className={video.description ? 'col-md-5 ps-md-3 pt-3 pt-md-0' : 'col-12'}>\n <h2 className='h6 mb-1'><Text phrase='details' /></h2>\n {!!parentVideo.productionYear && (\n <div className='mb-1'>\n <Text phrase='productionYear' options={{ year: parentVideo.productionYear }} />\n </div>\n )}\n <CommaList\n label={getPhrase('productionCompanies', { smartCount: parentVideo.productionCompanies?.data?.length })}\n items={parentVideo.productionCompanies}\n className='mb-1'\n />\n <CommaList\n label={getPhrase('distributors', { smartCount: parentVideo.distributors?.data?.length })}\n items={parentVideo.distributors}\n className='mb-1'\n />\n <CommaList\n label={getPhrase('producers', { smartCount: parentVideo.producers?.data?.length })}\n items={parentVideo.producers}\n className='mb-1'\n />\n <CommaList\n label={getPhrase('directors', { smartCount: parentVideo.directors?.data?.length })}\n items={parentVideo.directors}\n className='mb-1'\n />\n {!!parentVideo.dateBroadcast && (\n <div className='mb-1'>\n <Text phrase='dateBroadcast' options={{ date: DateHelper.format(parentVideo.dateBroadcast, 'DD/MM/YYYY') }} />\n </div>\n )}\n {!!parentVideo.channel && (\n <div className='mb-1'>\n <Text phrase='channel' options={{ channel: parentVideo.channel.name }} />\n </div>\n )}\n {VideoHelper.canViewUploadDate(props.video) && (\n <div className='mb-1'>\n <Text phrase='dateUploaded' options={{ date: DateHelper.format(video.dateCreated, 'DD/MM/YYYY') }} />\n </div>\n )}\n </div>\n );\n}\n\ninterface VideoDetailsWithScrollbarProps {\n video: VideoTypes;\n currentUser?: CurrentUser;\n getTagAppLink?: (tag: Tag) => Core.AppLink;\n onLaunchImmersiveReader?: () => void;\n onExitImmersiveReader?: () => void;\n onClickClose?: () => void;\n onClickShowCurriculumLinks?: () => void;\n maxHeight?: number;\n suppressInteractivity?: boolean;\n hideTags?: boolean;\n}\n\nexport function VideoDetailsWithScrollbar(props: VideoDetailsWithScrollbarProps): React.ReactElement {\n const { video, maxHeight = MINIMUM_GLANCE_HEIGHT } = props;\n\n const parentVideo = VideoHelper.getParentVideo(video);\n\n const showDescription = !!props.video.description;\n\n const showDetails = (\n hasPPDD(props.video) ||\n !!parentVideo.productionYear ||\n !!parentVideo.dateBroadcast ||\n !!parentVideo.channel ||\n VideoHelper.canViewUploadDate(props.video)\n );\n\n const canClose = typeof props.onClickClose === 'function';\n const showCurriculumLinks = typeof props.onClickShowCurriculumLinks === 'function';\n\n function getTags(): Tag[] {\n if (props.hideTags || VideoHelper.isInteractive(props.video) || !props.video.tags?.data?.length)\n return null;\n\n return props.video.tags.data;\n }\n\n if (!showDescription && !showDetails)\n return <></>;\n\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <div className='rounded border p-3 mb-3 position-relative'>\n <Scrollbars autoHeight autoHeightMax={maxHeight}>\n <div className='row g-0'>\n {showDescription && (\n <div className={showDetails ? `${styles.descriptionBorder} pe-3 col-md-7` : 'col-12'}>\n <div className='d-flex align-items-center'>\n <h2 className='h6 mb-1'>\n <Text phrase='description' />\n </h2>\n <ImmersiveReader\n text={video.description}\n title={video.name}\n className='ps-2'\n onLaunch={props.onLaunchImmersiveReader}\n onExit={props.onExitImmersiveReader}\n analyticsOptions={{\n location: LocationContext.PlayPage,\n entity: EntityType.Video,\n actionType: UserAction.Click,\n descriptor: ClickDescriptor.LaunchImmersiveReader\n }}\n analyticsData={{ id: video.id, type: 'description' }}\n />\n </div>\n <p className='mb-0' dangerouslySetInnerHTML={{ __html: TextHelper.sanitize(LinkifyHelper.linkifyText(props.video.description, { nl2br: true })) }} />\n <TagList\n tags={getTags()}\n {...TagHelper.getTagActionProps(props.getTagAppLink, null, props.suppressInteractivity)}\n className='mt-1'\n />\n {showCurriculumLinks && (\n <DivButton\n onClick={props.onClickShowCurriculumLinks}\n className='cursor-pointer d-inline-block fw-semibold text-info mt-2 mb-1'\n >\n <Text namespace={namespace} phrase='seeCurriculumLinks' />\n </DivButton>\n )}\n </div>\n )}\n\n {showDetails && (\n <DetailsSection {...props} />\n )}\n </div>\n </Scrollbars>\n\n {canClose && (\n <button\n type='button'\n className={`btn-close ${styles.closeButton}`}\n aria-label='Close'\n onClick={props.onClickClose}\n />\n )}\n </div>\n </LanguageNamespaceContext.Provider>\n );\n}\n","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\n\nimport { AnalyticsOptions, LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { Actions as ActionsButtons } from 'libs/shared/components/actions/Actions';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { VideoDetailsWithScrollbar } from 'libs/shared/components/video-details/VideoDetails';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { MediaIdType } from 'libs/shared/enums/MediaIdType';\nimport { ClipRequests } from 'libs/shared/flight-requests/ClipRequests';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { PlayerRequests } from 'libs/shared/flight-requests/PlayerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { InfoSvg } from 'libs/shared/images/svg/status/InfoSvg';\nimport { Config, CurrentUser, PlayerViewKey, User, VideoTypes } from 'libs/shared/interfaces';\nimport { UserHelper } from 'libs/shared/utils/UserHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { LitePlayerView } from 'shared/views/lite-player/LitePlayerView';\n\nimport { UserManagerRequests } from 'apps/user-manager/flight-requests/UserManagerRequests';\n\nconst namespace = 'userManager.studentsVideo';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction getRequest(id: string, typeId: string): Flight.Request {\n if (typeId.toString() === MasterType.Clip.toString())\n return ClipRequests.clip(id);\n\n if (typeId.toString() === MasterType.Interactive.toString())\n return InteractiveRequests.interactiveMetadata(id);\n\n return VideoRequests.video(id);\n}\n\nfunction getMessagePhrase(typeId: string): string {\n if (typeId.toString() === MasterType.Clip.toString())\n return 'messageClip';\n\n if (typeId.toString() === MasterType.Interactive.toString())\n return 'messageInteractive';\n\n return 'messageVideo';\n}\n\ninterface StudentsVideoProps {\n userId: string;\n id: string;\n typeId: string;\n}\n\nexport function StudentsVideoView(props: StudentsVideoProps): JSX.Element {\n const user = Flight.useBasicFetch<User>(UserManagerRequests.getUser(props.userId));\n\n const video = Flight.useBasicFetch<VideoTypes>(getRequest(props.id, props.typeId));\n\n const viewKey = Flight.useBasicFetch<PlayerViewKey>(PlayerRequests.createViewKey(props.id, MediaIdType.MasterObject));\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n useHandleObjectError([ user, video ]);\n useSetPageMetadata({\n title: user.data ?\n LanguageService.getPhrase(\n namespace,\n 'pageTitle',\n { name: UserHelper.getFullName(user.data) }\n ) :\n ''\n });\n\n function getVideoActions(): ActionOptions[] {\n const analyticsOptions: AnalyticsOptions = {\n entity: VideoHelper.getAnalyticsEntity(video.data),\n location: LocationContext.ViewStudentVideos\n };\n \n const analyticsData = {\n id: video.data.id\n };\n \n const actions: ActionOptions[] = [];\n \n if (VideoHelper.isVideo(video.data)) {\n actions.push({\n order: 1,\n label: getPhrase('download'),\n appLink: { application: AppChannels.VIDEOS, action: Actions.Videos.DOWNLOAD_VIDEO, args: [video.data.id]},\n analyticsOptions: {\n ...analyticsOptions,\n actionType: UserAction.Download,\n workflowPhase: WorkflowPhase.Start\n },\n analyticsData\n });\n }\n \n actions.push({\n order: 2,\n label: getPhrase('delete'),\n appLink: {\n application: AppChannels.USER_MANAGER,\n action: Actions.UserManager.DELETE_STUDENTS_VIDEO,\n args: [ props.id, video.data.id ],\n params: { typeId: video.data.typeId }\n },\n className: 'text-danger',\n analyticsOptions: {\n ...analyticsOptions,\n actionType: UserAction.Delete,\n workflowPhase: WorkflowPhase.Start\n },\n analyticsData\n });\n \n return actions;\n }\n\n const dataLoaded = (\n user.hasCompleted &&\n video.hasCompleted &&\n viewKey.hasCompleted &&\n config.hasCompleted &&\n currentUser.hasCompleted\n );\n\n if (!dataLoaded)\n return <></>;\n\n return (\n <div className='px-3'>\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 <div className='d-flex align-items-center'>\n <SvgContainer\n svg={InfoSvg}\n size={SvgContainerSize.Standard}\n className='me-2 svg-container'\n />\n \n <div className='w-100'>\n <p className='fw-semibold mb-0'>\n {getPhrase(\n getMessagePhrase(props.typeId),\n { name: UserHelper.getFullName(user.data), yearGroup: user.data.masterYearGroup?.name }\n )}\n </p>\n </div>\n </div>\n </div>\n <div className='mb-3'>\n <LitePlayerView\n config={config.data}\n video={video.data}\n currentUser={currentUser.data}\n viewKey={viewKey.data}\n presentationSlug={null}\n />\n </div>\n <div className='d-flex justify-content-between align-items-center mb-2'>\n <div>\n <h1 className='h3 d-inline-flex m-0 mb-2'>\n {video.data.name}\n </h1>\n </div>\n <ActionsButtons\n actions={getVideoActions()}\n actionsDropdownClassName='btn btn-outline-dark'\n />\n </div>\n <VideoDetailsWithScrollbar video={video.data} />\n </div>\n );\n}\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import"./DAXXjFlN.chunk.js";import{t as e}from"./C2w0pmFW.chunk.js";import{t}from"./wrLrTezN.chunk.js";import{u as n}from"./BX0wDJmp.chunk.js";import{t as r}from"./oPIkfKWW2.chunk.js";import{t as i}from"./DtGDVg4O2.chunk.js";import{t as a}from"./D_gWf2lC.chunk.js";import{t as o}from"./BXpZzabC.chunk.js";import{n as s,t as c}from"./A8xLZrSw.chunk.js";import{n as l,t as u}from"./BGhJ8TEx.chunk.js";import{t as d}from"./CMLErBju.chunk.js";import{c as f,t as p}from"./OmYpHs7g.chunk.js";import{t as m}from"./BTd65Rcb2.chunk.js";import{t as h}from"./CwQ4GF7L2.chunk.js";e();var g=t();function _(e){let t=n(r.currentUser()),_=n(!!t.data&&i.sharedClip(e.objectId,e.shareId)),v=n(a.config()),y=n(u.createViewKey(e.shareId,l.Share)),b=n(o.getShareObject(e.shareId)),x=f(e.objectId);function S(e){e.one(`cv-playback-data-loaded`,()=>{m.remove()})}return c(s.getClipMetadata({content:_.data})),d(_,{private:h}),_.data&&t.hasCompleted&&v.hasCompleted&&y.hasCompleted&&b.hasCompleted&&x.hasCompleted?(0,g.jsx)(p,{config:v.data,video:_.data,currentUser:t.data,shareLink:b.data,viewKey:y.data,presentationSlug:null,embed:!0,showResources:!0,autoplay:e.queryParams.a===`true`,startTime:e.queryParams.t??e.queryParams.startTime,onReady:S,playerIntegrations:x.data}):(0,g.jsx)(g.Fragment,{})}export{_ as EmbeddedClipView};
2
- //# sourceMappingURL=B5DWwtp0.chunk.js.map
1
+ import"./DAXXjFlN.chunk.js";import{t as e}from"./C2w0pmFW.chunk.js";import{t}from"./wrLrTezN.chunk.js";import{u as n}from"./BX0wDJmp.chunk.js";import{t as r}from"./oPIkfKWW2.chunk.js";import{t as i}from"./DtGDVg4O2.chunk.js";import{t as a}from"./D_gWf2lC.chunk.js";import{t as o}from"./BXpZzabC.chunk.js";import{n as s,t as c}from"./A8xLZrSw.chunk.js";import{n as l,t as u}from"./BGhJ8TEx.chunk.js";import{t as d}from"./CMLErBju.chunk.js";import{c as f,t as p}from"./_Cm5O72d.chunk.js";import{t as m}from"./BTd65Rcb2.chunk.js";import{t as h}from"./CwQ4GF7L2.chunk.js";e();var g=t();function _(e){let t=n(r.currentUser()),_=n(!!t.data&&i.sharedClip(e.objectId,e.shareId)),v=n(a.config()),y=n(u.createViewKey(e.shareId,l.Share)),b=n(o.getShareObject(e.shareId)),x=f(e.objectId);function S(e){e.one(`cv-playback-data-loaded`,()=>{m.remove()})}return c(s.getClipMetadata({content:_.data})),d(_,{private:h}),_.data&&t.hasCompleted&&v.hasCompleted&&y.hasCompleted&&b.hasCompleted&&x.hasCompleted?(0,g.jsx)(p,{config:v.data,video:_.data,currentUser:t.data,shareLink:b.data,viewKey:y.data,presentationSlug:null,embed:!0,showResources:!0,autoplay:e.queryParams.a===`true`,startTime:e.queryParams.t??e.queryParams.startTime,onReady:S,playerIntegrations:x.data}):(0,g.jsx)(g.Fragment,{})}export{_ as EmbeddedClipView};
2
+ //# sourceMappingURL=BjA9XV5y.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"B5DWwtp0.chunk.js","names":[],"sources":["../../src/apps/embed/views/embedded-clip/EmbeddedClipView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { ShareRequests } from 'libs/shared/apps/share/flight-requests/ShareRequests';\nimport { PlayerReference } from 'libs/shared/context/player-context/interfaces/PlayerReference';\nimport { MediaIdType } from 'libs/shared/enums/MediaIdType';\nimport { ClipRequests } from 'libs/shared/flight-requests/ClipRequests';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { PlayerRequests } from 'libs/shared/flight-requests/PlayerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useCannotConsumeError } from 'libs/shared/hooks/useCannotConsumeError';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Clip, Config, CurrentUser, PlayerViewKey, UnionShareObject } from 'libs/shared/interfaces';\nimport { PageMetadataHelper } from 'libs/shared/utils/PageMetadataHelper';\n\nimport { usePlayerIntegrations } from 'shared/hooks/usePlayerIntegrations';\nimport { LitePlayerView } from 'shared/views/lite-player/LitePlayerView';\n\nimport { PrivateEmbedError } from 'apps/embed/errors/forbidden/PrivateEmbedError';\nimport { EmbedViewProps } from 'apps/embed/interfaces/EmbedViewProps';\nimport { EmbedPlaceHolderHelper } from 'apps/embed/utils/EmbedPlaceholderHelper';\n\nexport function EmbeddedClipView(props: EmbedViewProps): JSX.Element {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const clip = Flight.useBasicFetch<Clip>(!!currentUser.data &&\n ClipRequests.sharedClip(props.objectId, props.shareId));\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const viewKey = Flight.useBasicFetch<PlayerViewKey>(PlayerRequests.createViewKey(props.shareId, MediaIdType.Share));\n const shareLink = Flight.useBasicFetch<UnionShareObject>(\n ShareRequests.getShareObject(props.shareId)\n );\n const playerIntegrations = usePlayerIntegrations(props.objectId);\n\n function onReady(player: PlayerReference): void {\n player.one('cv-playback-data-loaded', () => {\n EmbedPlaceHolderHelper.remove();\n });\n }\n\n useSetPageMetadata(PageMetadataHelper.getClipMetadata({ content: clip.data }));\n useCannotConsumeError(clip, { private: PrivateEmbedError });\n\n const hasLoaded = (\n clip.data &&\n currentUser.hasCompleted &&\n config.hasCompleted &&\n viewKey.hasCompleted &&\n shareLink.hasCompleted &&\n playerIntegrations.hasCompleted\n );\n\n if (!hasLoaded)\n return <></>;\n\n return (\n <LitePlayerView\n config={config.data}\n video={clip.data}\n currentUser={currentUser.data}\n shareLink={shareLink.data}\n viewKey={viewKey.data}\n presentationSlug={null}\n embed\n showResources\n autoplay={props.queryParams.a === 'true'}\n startTime={props.queryParams.t ?? props.queryParams.startTime}\n onReady={onReady}\n playerIntegrations={playerIntegrations.data}\n />\n );\n}\n"],"mappings":"skBAuBA,SAAgB,EAAiB,EAAoC,CACnE,IAAM,EAAc,EAAkC,EAAa,YAAY,CAAC,EAC1E,EAAO,EAA2B,CAAC,CAAC,EAAY,MACpD,EAAa,WAAW,EAAM,SAAU,EAAM,OAAO,CAAC,EAClD,EAAS,EAA6B,EAAe,OAAO,CAAC,EAC7D,EAAU,EAAoC,EAAe,cAAc,EAAM,QAAS,EAAY,KAAK,CAAC,EAC5G,EAAY,EAChB,EAAc,eAAe,EAAM,OAAO,CAC5C,EACM,EAAqB,EAAsB,EAAM,QAAQ,EAE/D,SAAS,EAAQ,EAA+B,CAC9C,EAAO,IAAI,8BAAiC,CAC1C,EAAuB,OAAO,CAChC,CAAC,CACH,CAiBA,OAfA,EAAmB,EAAmB,gBAAgB,CAAE,QAAS,EAAK,IAAK,CAAC,CAAC,EAC7E,EAAsB,EAAM,CAAE,QAAS,CAAkB,CAAC,EAGxD,EAAK,MACL,EAAY,cACZ,EAAO,cACP,EAAQ,cACR,EAAU,cACV,EAAmB,cAOnB,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,OAAQ,EAAO,KACf,MAAO,EAAK,KACZ,YAAa,EAAY,KACzB,UAAW,EAAU,KACrB,QAAS,EAAQ,KACjB,iBAAkB,KAClB,MAAA,GACA,cAAA,GACA,SAAU,EAAM,YAAY,IAAM,OAClC,UAAW,EAAM,YAAY,GAAK,EAAM,YAAY,UAC3C,UACT,mBAAoB,EAAmB,IACxC,CAAA,GAhBM,EAAA,EAAA,IAAA,CAAA,EAAA,SAAA,CAAI,CAAA,CAkBf"}
1
+ {"version":3,"file":"BjA9XV5y.chunk.js","names":[],"sources":["../../src/apps/embed/views/embedded-clip/EmbeddedClipView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { ShareRequests } from 'libs/shared/apps/share/flight-requests/ShareRequests';\nimport { PlayerReference } from 'libs/shared/context/player-context/interfaces/PlayerReference';\nimport { MediaIdType } from 'libs/shared/enums/MediaIdType';\nimport { ClipRequests } from 'libs/shared/flight-requests/ClipRequests';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { PlayerRequests } from 'libs/shared/flight-requests/PlayerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useCannotConsumeError } from 'libs/shared/hooks/useCannotConsumeError';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Clip, Config, CurrentUser, PlayerViewKey, UnionShareObject } from 'libs/shared/interfaces';\nimport { PageMetadataHelper } from 'libs/shared/utils/PageMetadataHelper';\n\nimport { usePlayerIntegrations } from 'shared/hooks/usePlayerIntegrations';\nimport { LitePlayerView } from 'shared/views/lite-player/LitePlayerView';\n\nimport { PrivateEmbedError } from 'apps/embed/errors/forbidden/PrivateEmbedError';\nimport { EmbedViewProps } from 'apps/embed/interfaces/EmbedViewProps';\nimport { EmbedPlaceHolderHelper } from 'apps/embed/utils/EmbedPlaceholderHelper';\n\nexport function EmbeddedClipView(props: EmbedViewProps): JSX.Element {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const clip = Flight.useBasicFetch<Clip>(!!currentUser.data &&\n ClipRequests.sharedClip(props.objectId, props.shareId));\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const viewKey = Flight.useBasicFetch<PlayerViewKey>(PlayerRequests.createViewKey(props.shareId, MediaIdType.Share));\n const shareLink = Flight.useBasicFetch<UnionShareObject>(\n ShareRequests.getShareObject(props.shareId)\n );\n const playerIntegrations = usePlayerIntegrations(props.objectId);\n\n function onReady(player: PlayerReference): void {\n player.one('cv-playback-data-loaded', () => {\n EmbedPlaceHolderHelper.remove();\n });\n }\n\n useSetPageMetadata(PageMetadataHelper.getClipMetadata({ content: clip.data }));\n useCannotConsumeError(clip, { private: PrivateEmbedError });\n\n const hasLoaded = (\n clip.data &&\n currentUser.hasCompleted &&\n config.hasCompleted &&\n viewKey.hasCompleted &&\n shareLink.hasCompleted &&\n playerIntegrations.hasCompleted\n );\n\n if (!hasLoaded)\n return <></>;\n\n return (\n <LitePlayerView\n config={config.data}\n video={clip.data}\n currentUser={currentUser.data}\n shareLink={shareLink.data}\n viewKey={viewKey.data}\n presentationSlug={null}\n embed\n showResources\n autoplay={props.queryParams.a === 'true'}\n startTime={props.queryParams.t ?? props.queryParams.startTime}\n onReady={onReady}\n playerIntegrations={playerIntegrations.data}\n />\n );\n}\n"],"mappings":"skBAuBA,SAAgB,EAAiB,EAAoC,CACnE,IAAM,EAAc,EAAkC,EAAa,YAAY,CAAC,EAC1E,EAAO,EAA2B,CAAC,CAAC,EAAY,MACpD,EAAa,WAAW,EAAM,SAAU,EAAM,OAAO,CAAC,EAClD,EAAS,EAA6B,EAAe,OAAO,CAAC,EAC7D,EAAU,EAAoC,EAAe,cAAc,EAAM,QAAS,EAAY,KAAK,CAAC,EAC5G,EAAY,EAChB,EAAc,eAAe,EAAM,OAAO,CAC5C,EACM,EAAqB,EAAsB,EAAM,QAAQ,EAE/D,SAAS,EAAQ,EAA+B,CAC9C,EAAO,IAAI,8BAAiC,CAC1C,EAAuB,OAAO,CAChC,CAAC,CACH,CAiBA,OAfA,EAAmB,EAAmB,gBAAgB,CAAE,QAAS,EAAK,IAAK,CAAC,CAAC,EAC7E,EAAsB,EAAM,CAAE,QAAS,CAAkB,CAAC,EAGxD,EAAK,MACL,EAAY,cACZ,EAAO,cACP,EAAQ,cACR,EAAU,cACV,EAAmB,cAOnB,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,OAAQ,EAAO,KACf,MAAO,EAAK,KACZ,YAAa,EAAY,KACzB,UAAW,EAAU,KACrB,QAAS,EAAQ,KACjB,iBAAkB,KAClB,MAAA,GACA,cAAA,GACA,SAAU,EAAM,YAAY,IAAM,OAClC,UAAW,EAAM,YAAY,GAAK,EAAM,YAAY,UAC3C,UACT,mBAAoB,EAAmB,IACxC,CAAA,GAhBM,EAAA,EAAA,IAAA,CAAA,EAAA,SAAA,CAAI,CAAA,CAkBf"}
@@ -1,2 +1,2 @@
1
- import"./DAXXjFlN.chunk.js";import{t as e}from"./DMnm3Ewv.chunk.js";import{n as t}from"./B785hxeE.chunk.js";import{t as n}from"./CQyJ7YGa.chunk.js";import{t as r}from"./C2w0pmFW.chunk.js";import{t as i}from"./wrLrTezN.chunk.js";import{u as a}from"./BX0wDJmp.chunk.js";import{y as o}from"./NlCAcBdo.chunk.js";import{t as s}from"./oPIkfKWW2.chunk.js";import{t as c}from"./CcDvlSWl2.chunk.js";import{t as l}from"./DbSUQ2A12.chunk.js";import{t as u}from"./DtGDVg4O2.chunk.js";import{t as d}from"./8U-YTgZd.chunk.js";import{t as f}from"./DsXWD-Sn.chunk.js";import{t as p}from"./BWaKdG0l.chunk.js";import{n as m,t as h}from"./A8xLZrSw.chunk.js";import{t as g}from"./CMLErBju.chunk.js";import{t as _}from"./POQS3gV6.chunk.js";import{t as v}from"./BQKcAczf.chunk.js";import{l as y,r as b}from"./OmYpHs7g.chunk.js";import{t as x}from"./D3WOV5RE.chunk.js";import{t as S}from"./CmV-znIi2.chunk.js";import{n as C}from"./B-eFTZdx2.chunk.js";import{t as w}from"./D0n6BTgT.chunk.js";import{t as T}from"./BmR4qY-v2.chunk.js";import{t as E}from"./cX5MHowe.chunk.js";import{t as D}from"./DMIDfHRi2.chunk.js";import{t as O}from"./BIO-5Tfr2.chunk.js";import{y as k}from"./CfVIZBcI2.chunk.js";import{t as A}from"./C4CuJJXy2.chunk.js";r();var j=i(),M=n.encloseNamespace(`shared.playClip`),N={notFound:p,forbidden:{privacy:_}};P.defaultProps={queryParams:{}};function P(n){let{context:r,contextId:i,mtv:p}=n.queryParams,{hasProduct:_}=x(),{commonVideoProps:P,hasCommonVideoPropsCompleted:F}=T({locationContext:o.PlayClip,mtv:p}),{hasPermissions:I}=v(),{hasTopicDirectories:L,hasPlayPageTranscript:R}=c(null),z=a(s.currentUser()),B=a(u.clip(n.id)),V=a(d.videoInteractives(n.id)),H=a(!!B.data?._parentVideo&&f.video(B.data._parentVideo.id));O([H.data]);let U=a(!!B.data?._parentVideo&&u.videoClips(B.data._parentVideo.id)),W=a(B.statusCode===e.Forbidden&&u.clip(n.id,l.StripMetadata)),G=b({video:H.data,context:r,contextId:i,moviesAndTv:p,currentUser:z.data}),K=D(),q=k(),J=y(n.id,!0),Y=S({objectId:B.data?.id,objectTypeId:B.data?.typeId}),X=E({name:B.data?.name});return h(m.getClipMetadata({content:B.data,phraseContext:{phraseHandler:M,titlePhrase:`pageTitle`,descriptionPhrase:`pageDescription`}})),w(B,N,{forbidden:!0}),O(G.videos??[]),g(W),C({id:n.id,app:`clips`}),B.data&&z.hasCompleted&&J.hasCompleted&&F?(0,j.jsx)(A,{clip:B.data,clips:U.data?.data,interactives:V.data?.data,currentUser:z.data,relatedVideos:r===`playlist`?G:{...G,videos:[]},hasProduct:_,queryParams:n.queryParams,audiences:K.data,canManageVideoAccess:I(t.ManageVideoAccess),pointsOfInterest:J.items,featureAccess:Y,tableOfContentsId:n.queryParams?.tocId,shouldShowSideTableOfContents:q,breadcrumbs:X,commonVideoProps:P,hasTopicDirectories:L,hasTheatreMode:R}):(0,j.jsx)(j.Fragment,{})}export{P as PlayClipView};
2
- //# sourceMappingURL=Dp8z_udC.chunk.js.map
1
+ import"./DAXXjFlN.chunk.js";import{t as e}from"./DMnm3Ewv.chunk.js";import{n as t}from"./B785hxeE.chunk.js";import{t as n}from"./CQyJ7YGa.chunk.js";import{t as r}from"./C2w0pmFW.chunk.js";import{t as i}from"./wrLrTezN.chunk.js";import{u as a}from"./BX0wDJmp.chunk.js";import{y as o}from"./NlCAcBdo.chunk.js";import{t as s}from"./oPIkfKWW2.chunk.js";import{t as c}from"./CcDvlSWl2.chunk.js";import{t as l}from"./DbSUQ2A12.chunk.js";import{t as u}from"./DtGDVg4O2.chunk.js";import{t as d}from"./8U-YTgZd.chunk.js";import{t as f}from"./DsXWD-Sn.chunk.js";import{t as p}from"./BWaKdG0l.chunk.js";import{n as m,t as h}from"./A8xLZrSw.chunk.js";import{t as g}from"./CMLErBju.chunk.js";import{t as _}from"./POQS3gV6.chunk.js";import{t as v}from"./BQKcAczf.chunk.js";import{l as y,r as b}from"./_Cm5O72d.chunk.js";import{t as x}from"./D3WOV5RE.chunk.js";import{t as S}from"./CmV-znIi2.chunk.js";import{n as C}from"./B-eFTZdx2.chunk.js";import{t as w}from"./D0n6BTgT.chunk.js";import{t as T}from"./BmR4qY-v2.chunk.js";import{t as E}from"./cX5MHowe.chunk.js";import{t as D}from"./DMIDfHRi2.chunk.js";import{t as O}from"./BIO-5Tfr2.chunk.js";import{y as k}from"./DXkvlC_92.chunk.js";import{t as A}from"./Dvl1XgHV2.chunk.js";r();var j=i(),M=n.encloseNamespace(`shared.playClip`),N={notFound:p,forbidden:{privacy:_}};P.defaultProps={queryParams:{}};function P(n){let{context:r,contextId:i,mtv:p}=n.queryParams,{hasProduct:_}=x(),{commonVideoProps:P,hasCommonVideoPropsCompleted:F}=T({locationContext:o.PlayClip,mtv:p}),{hasPermissions:I}=v(),{hasTopicDirectories:L,hasPlayPageTranscript:R}=c(null),z=a(s.currentUser()),B=a(u.clip(n.id)),V=a(d.videoInteractives(n.id)),H=a(!!B.data?._parentVideo&&f.video(B.data._parentVideo.id));O([H.data]);let U=a(!!B.data?._parentVideo&&u.videoClips(B.data._parentVideo.id)),W=a(B.statusCode===e.Forbidden&&u.clip(n.id,l.StripMetadata)),G=b({video:H.data,context:r,contextId:i,moviesAndTv:p,currentUser:z.data}),K=D(),q=k(),J=y(n.id,!0),Y=S({objectId:B.data?.id,objectTypeId:B.data?.typeId}),X=E({name:B.data?.name});return h(m.getClipMetadata({content:B.data,phraseContext:{phraseHandler:M,titlePhrase:`pageTitle`,descriptionPhrase:`pageDescription`}})),w(B,N,{forbidden:!0}),O(G.videos??[]),g(W),C({id:n.id,app:`clips`}),B.data&&z.hasCompleted&&J.hasCompleted&&F?(0,j.jsx)(A,{clip:B.data,clips:U.data?.data,interactives:V.data?.data,currentUser:z.data,relatedVideos:r===`playlist`?G:{...G,videos:[]},hasProduct:_,queryParams:n.queryParams,audiences:K.data,canManageVideoAccess:I(t.ManageVideoAccess),pointsOfInterest:J.items,featureAccess:Y,tableOfContentsId:n.queryParams?.tocId,shouldShowSideTableOfContents:q,breadcrumbs:X,commonVideoProps:P,hasTopicDirectories:L,hasTheatreMode:R}):(0,j.jsx)(j.Fragment,{})}export{P as PlayClipView};
2
+ //# sourceMappingURL=BoT5D3IL.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Dp8z_udC.chunk.js","names":[],"sources":["../../src/shared/views/play-clip/PlayClipView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { PermissionFilterOption } from 'libs/shared/enums/PermissionFilterOption';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { VideoPrivateError } from 'libs/shared/errors/videos/video-private/VideoPrivateError';\nimport { ClipRequests } from 'libs/shared/flight-requests/ClipRequests';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useBreadcrumbs } from 'libs/shared/hooks/useBreadcrumbs';\nimport { useCannotConsumeError } from 'libs/shared/hooks/useCannotConsumeError';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useProducts } from 'libs/shared/hooks/UseProducts';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { Clip, ClipCollection, CurrentUser, InteractiveCollection, Video } from 'libs/shared/interfaces';\nimport { PlayViewQueryParams } from 'libs/shared/interfaces/query-params/PlayViewQueryParams';\nimport { PageMetadataHelper } from 'libs/shared/utils/PageMetadataHelper';\n\nimport { useCommonVideoProps } from 'shared/hooks/useCommonVideoProps';\nimport { useDeepLinks } from 'shared/hooks/useDeepLinks';\nimport { useFetchPointsOfInterest } from 'shared/hooks/useFetchPointsOfInterest';\nimport { useGetRelatedVideos } from 'shared/hooks/useGetRelatedVideos';\nimport { usePresentationAudiences } from 'shared/hooks/usePresentationAudiences';\nimport { useVideoFeatureAccess } from 'shared/hooks/useVideoFeatureAccess';\nimport { useVideoMixin } from 'shared/hooks/useVideoMixin';\nimport { useShouldShowSideTableOfContents } from 'shared/views/play/hooks/useShouldShowTableOfContents';\n\nimport { PlayClip } from './components/play-clip/PlayClip';\n\nexport interface PlayViewProps {\n id: string;\n queryParams?: PlayViewQueryParams;\n}\n\nconst namespace = 'shared.playClip';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst clipErrors = {\n notFound: NotFoundError,\n forbidden: {\n privacy: VideoPrivateError\n }\n};\n\nPlayClipView.defaultProps = {\n queryParams: {}\n};\n\nexport function PlayClipView(props: PlayViewProps): JSX.Element {\n const { context, contextId, mtv } = props.queryParams;\n\n const { hasProduct } = useProducts();\n const {\n commonVideoProps,\n hasCommonVideoPropsCompleted\n } = useCommonVideoProps({ locationContext: LocationContext.PlayClip, mtv });\n const { hasPermissions } = usePermissions();\n const { hasTopicDirectories, hasPlayPageTranscript } = useSettings(null);\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const clip = Flight.useBasicFetch<Clip>(ClipRequests.clip(props.id));\n\n const interactives = Flight.useBasicFetch<InteractiveCollection>(InteractiveRequests.videoInteractives(props.id));\n const video = Flight.useBasicFetch<Video>(\n !!clip.data?._parentVideo && VideoRequests.video(clip.data._parentVideo.id)\n );\n useVideoMixin([video.data]);\n\n const childClips = Flight.useBasicFetch<ClipCollection>(\n !!clip.data?._parentVideo && ClipRequests.videoClips(clip.data._parentVideo.id)\n );\n\n const strippedClip = Flight.useBasicFetch<Clip>(clip.statusCode === HttpStatus.Forbidden &&\n ClipRequests.clip(props.id, PermissionFilterOption.StripMetadata));\n const relatedVideos = useGetRelatedVideos({\n video: video.data,\n context,\n contextId,\n moviesAndTv: mtv,\n currentUser: currentUser.data\n });\n const audiences = usePresentationAudiences();\n const shouldShowSideTableOfContents = useShouldShowSideTableOfContents();\n\n const pointsOfInterest = useFetchPointsOfInterest(props.id, true);\n \n const featureAccess = useVideoFeatureAccess({\n objectId: clip.data?.id,\n objectTypeId: clip.data?.typeId\n });\n\n const breadcrumbs = useBreadcrumbs({ name: clip.data?.name });\n\n useSetPageMetadata(PageMetadataHelper.getClipMetadata({\n content: clip.data,\n phraseContext: {\n phraseHandler: getPhrase,\n titlePhrase: 'pageTitle',\n descriptionPhrase: 'pageDescription'\n }\n }));\n\n useHandleObjectError(clip, clipErrors, { forbidden: true });\n useVideoMixin(relatedVideos.videos ?? []);\n useCannotConsumeError(strippedClip);\n useDeepLinks({ id: props.id, app: 'clips' });\n\n const hasLoaded = (\n clip.data &&\n currentUser.hasCompleted &&\n pointsOfInterest.hasCompleted &&\n hasCommonVideoPropsCompleted\n );\n\n if (!hasLoaded)\n return <></>;\n\n return (\n <PlayClip\n clip={clip.data}\n clips={childClips.data?.data}\n interactives={interactives.data?.data}\n currentUser={currentUser.data}\n // we only show up next videos for clips in a playlist\n relatedVideos={context === 'playlist' ? relatedVideos : { ...relatedVideos, videos: []}}\n hasProduct={hasProduct}\n queryParams={props.queryParams}\n audiences={audiences.data}\n canManageVideoAccess={hasPermissions(PermissionName.ManageVideoAccess)}\n pointsOfInterest={pointsOfInterest.items}\n featureAccess={featureAccess}\n tableOfContentsId={props.queryParams?.tocId}\n shouldShowSideTableOfContents={shouldShowSideTableOfContents}\n breadcrumbs={breadcrumbs}\n commonVideoProps={commonVideoProps}\n hasTopicDirectories={hasTopicDirectories}\n hasTheatreMode={hasPlayPageTranscript}\n />\n );\n}\n"],"mappings":"2sCA4CM,EAAY,EAAgB,iBAAiB,iBAAS,EAEtD,EAAa,CACjB,SAAU,EACV,UAAW,CACT,QAAS,CACX,CACF,EAEA,EAAa,aAAe,CAC1B,YAAa,CAAC,CAChB,EAEA,SAAgB,EAAa,EAAmC,CAC9D,GAAM,CAAE,UAAS,YAAW,OAAQ,EAAM,YAEpC,CAAE,cAAe,EAAY,EAC7B,CACJ,mBACA,gCACE,EAAoB,CAAE,gBAAiB,EAAgB,SAAU,KAAI,CAAC,EACpE,CAAE,kBAAmB,EAAe,EACpC,CAAE,sBAAqB,yBAA0B,EAAY,IAAI,EAEjE,EAAc,EAAkC,EAAa,YAAY,CAAC,EAC1E,EAAO,EAA2B,EAAa,KAAK,EAAM,EAAE,CAAC,EAE7D,EAAe,EAA4C,EAAoB,kBAAkB,EAAM,EAAE,CAAC,EAC1G,EAAQ,EACZ,CAAC,CAAC,EAAK,MAAM,cAAgB,EAAc,MAAM,EAAK,KAAK,aAAa,EAAE,CAC5E,EACA,EAAc,CAAC,EAAM,IAAI,CAAC,EAE1B,IAAM,EAAa,EACjB,CAAC,CAAC,EAAK,MAAM,cAAgB,EAAa,WAAW,EAAK,KAAK,aAAa,EAAE,CAChF,EAEM,EAAe,EAA2B,EAAK,aAAe,EAAW,WAC7E,EAAa,KAAK,EAAM,GAAI,EAAuB,aAAa,CAAC,EAC7D,EAAgB,EAAoB,CACxC,MAAO,EAAM,KACb,UACA,YACA,YAAa,EACb,YAAa,EAAY,IAC3B,CAAC,EACK,EAAY,EAAyB,EACrC,EAAgC,EAAiC,EAEjE,EAAmB,EAAyB,EAAM,GAAI,EAAI,EAE1D,EAAgB,EAAsB,CAC1C,SAAU,EAAK,MAAM,GACrB,aAAc,EAAK,MAAM,MAC3B,CAAC,EAEK,EAAc,EAAe,CAAE,KAAM,EAAK,MAAM,IAAK,CAAC,EA0B5D,OAxBA,EAAmB,EAAmB,gBAAgB,CACpD,QAAS,EAAK,KACd,cAAe,CACb,cAAe,EACf,YAAa,YACb,kBAAmB,iBACrB,CACF,CAAC,CAAC,EAEF,EAAqB,EAAM,EAAY,CAAE,UAAW,EAAK,CAAC,EAC1D,EAAc,EAAc,QAAU,CAAC,CAAC,EACxC,EAAsB,CAAY,EAClC,EAAa,CAAE,GAAI,EAAM,GAAI,IAAK,OAAQ,CAAC,EAGzC,EAAK,MACL,EAAY,cACZ,EAAiB,cACjB,GAOA,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,KAAM,EAAK,KACX,MAAO,EAAW,MAAM,KACxB,aAAc,EAAa,MAAM,KACjC,YAAa,EAAY,KAEzB,cAAe,IAAY,WAAa,EAAgB,CAAE,GAAG,EAAe,OAAQ,CAAC,CAAC,EAC1E,aACZ,YAAa,EAAM,YACnB,UAAW,EAAU,KACrB,qBAAsB,EAAe,EAAe,iBAAiB,EACrE,iBAAkB,EAAiB,MACpB,gBACf,kBAAmB,EAAM,aAAa,MACP,gCAClB,cACK,mBACG,sBACrB,eAAgB,CACjB,CAAA,GAtBM,EAAA,EAAA,IAAA,CAAA,EAAA,SAAA,CAAI,CAAA,CAwBf"}
1
+ {"version":3,"file":"BoT5D3IL.chunk.js","names":[],"sources":["../../src/shared/views/play-clip/PlayClipView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { PermissionFilterOption } from 'libs/shared/enums/PermissionFilterOption';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { VideoPrivateError } from 'libs/shared/errors/videos/video-private/VideoPrivateError';\nimport { ClipRequests } from 'libs/shared/flight-requests/ClipRequests';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useBreadcrumbs } from 'libs/shared/hooks/useBreadcrumbs';\nimport { useCannotConsumeError } from 'libs/shared/hooks/useCannotConsumeError';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useProducts } from 'libs/shared/hooks/UseProducts';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { Clip, ClipCollection, CurrentUser, InteractiveCollection, Video } from 'libs/shared/interfaces';\nimport { PlayViewQueryParams } from 'libs/shared/interfaces/query-params/PlayViewQueryParams';\nimport { PageMetadataHelper } from 'libs/shared/utils/PageMetadataHelper';\n\nimport { useCommonVideoProps } from 'shared/hooks/useCommonVideoProps';\nimport { useDeepLinks } from 'shared/hooks/useDeepLinks';\nimport { useFetchPointsOfInterest } from 'shared/hooks/useFetchPointsOfInterest';\nimport { useGetRelatedVideos } from 'shared/hooks/useGetRelatedVideos';\nimport { usePresentationAudiences } from 'shared/hooks/usePresentationAudiences';\nimport { useVideoFeatureAccess } from 'shared/hooks/useVideoFeatureAccess';\nimport { useVideoMixin } from 'shared/hooks/useVideoMixin';\nimport { useShouldShowSideTableOfContents } from 'shared/views/play/hooks/useShouldShowTableOfContents';\n\nimport { PlayClip } from './components/play-clip/PlayClip';\n\nexport interface PlayViewProps {\n id: string;\n queryParams?: PlayViewQueryParams;\n}\n\nconst namespace = 'shared.playClip';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst clipErrors = {\n notFound: NotFoundError,\n forbidden: {\n privacy: VideoPrivateError\n }\n};\n\nPlayClipView.defaultProps = {\n queryParams: {}\n};\n\nexport function PlayClipView(props: PlayViewProps): JSX.Element {\n const { context, contextId, mtv } = props.queryParams;\n\n const { hasProduct } = useProducts();\n const {\n commonVideoProps,\n hasCommonVideoPropsCompleted\n } = useCommonVideoProps({ locationContext: LocationContext.PlayClip, mtv });\n const { hasPermissions } = usePermissions();\n const { hasTopicDirectories, hasPlayPageTranscript } = useSettings(null);\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const clip = Flight.useBasicFetch<Clip>(ClipRequests.clip(props.id));\n\n const interactives = Flight.useBasicFetch<InteractiveCollection>(InteractiveRequests.videoInteractives(props.id));\n const video = Flight.useBasicFetch<Video>(\n !!clip.data?._parentVideo && VideoRequests.video(clip.data._parentVideo.id)\n );\n useVideoMixin([video.data]);\n\n const childClips = Flight.useBasicFetch<ClipCollection>(\n !!clip.data?._parentVideo && ClipRequests.videoClips(clip.data._parentVideo.id)\n );\n\n const strippedClip = Flight.useBasicFetch<Clip>(clip.statusCode === HttpStatus.Forbidden &&\n ClipRequests.clip(props.id, PermissionFilterOption.StripMetadata));\n const relatedVideos = useGetRelatedVideos({\n video: video.data,\n context,\n contextId,\n moviesAndTv: mtv,\n currentUser: currentUser.data\n });\n const audiences = usePresentationAudiences();\n const shouldShowSideTableOfContents = useShouldShowSideTableOfContents();\n\n const pointsOfInterest = useFetchPointsOfInterest(props.id, true);\n \n const featureAccess = useVideoFeatureAccess({\n objectId: clip.data?.id,\n objectTypeId: clip.data?.typeId\n });\n\n const breadcrumbs = useBreadcrumbs({ name: clip.data?.name });\n\n useSetPageMetadata(PageMetadataHelper.getClipMetadata({\n content: clip.data,\n phraseContext: {\n phraseHandler: getPhrase,\n titlePhrase: 'pageTitle',\n descriptionPhrase: 'pageDescription'\n }\n }));\n\n useHandleObjectError(clip, clipErrors, { forbidden: true });\n useVideoMixin(relatedVideos.videos ?? []);\n useCannotConsumeError(strippedClip);\n useDeepLinks({ id: props.id, app: 'clips' });\n\n const hasLoaded = (\n clip.data &&\n currentUser.hasCompleted &&\n pointsOfInterest.hasCompleted &&\n hasCommonVideoPropsCompleted\n );\n\n if (!hasLoaded)\n return <></>;\n\n return (\n <PlayClip\n clip={clip.data}\n clips={childClips.data?.data}\n interactives={interactives.data?.data}\n currentUser={currentUser.data}\n // we only show up next videos for clips in a playlist\n relatedVideos={context === 'playlist' ? relatedVideos : { ...relatedVideos, videos: []}}\n hasProduct={hasProduct}\n queryParams={props.queryParams}\n audiences={audiences.data}\n canManageVideoAccess={hasPermissions(PermissionName.ManageVideoAccess)}\n pointsOfInterest={pointsOfInterest.items}\n featureAccess={featureAccess}\n tableOfContentsId={props.queryParams?.tocId}\n shouldShowSideTableOfContents={shouldShowSideTableOfContents}\n breadcrumbs={breadcrumbs}\n commonVideoProps={commonVideoProps}\n hasTopicDirectories={hasTopicDirectories}\n hasTheatreMode={hasPlayPageTranscript}\n />\n );\n}\n"],"mappings":"2sCA4CM,EAAY,EAAgB,iBAAiB,iBAAS,EAEtD,EAAa,CACjB,SAAU,EACV,UAAW,CACT,QAAS,CACX,CACF,EAEA,EAAa,aAAe,CAC1B,YAAa,CAAC,CAChB,EAEA,SAAgB,EAAa,EAAmC,CAC9D,GAAM,CAAE,UAAS,YAAW,OAAQ,EAAM,YAEpC,CAAE,cAAe,EAAY,EAC7B,CACJ,mBACA,gCACE,EAAoB,CAAE,gBAAiB,EAAgB,SAAU,KAAI,CAAC,EACpE,CAAE,kBAAmB,EAAe,EACpC,CAAE,sBAAqB,yBAA0B,EAAY,IAAI,EAEjE,EAAc,EAAkC,EAAa,YAAY,CAAC,EAC1E,EAAO,EAA2B,EAAa,KAAK,EAAM,EAAE,CAAC,EAE7D,EAAe,EAA4C,EAAoB,kBAAkB,EAAM,EAAE,CAAC,EAC1G,EAAQ,EACZ,CAAC,CAAC,EAAK,MAAM,cAAgB,EAAc,MAAM,EAAK,KAAK,aAAa,EAAE,CAC5E,EACA,EAAc,CAAC,EAAM,IAAI,CAAC,EAE1B,IAAM,EAAa,EACjB,CAAC,CAAC,EAAK,MAAM,cAAgB,EAAa,WAAW,EAAK,KAAK,aAAa,EAAE,CAChF,EAEM,EAAe,EAA2B,EAAK,aAAe,EAAW,WAC7E,EAAa,KAAK,EAAM,GAAI,EAAuB,aAAa,CAAC,EAC7D,EAAgB,EAAoB,CACxC,MAAO,EAAM,KACb,UACA,YACA,YAAa,EACb,YAAa,EAAY,IAC3B,CAAC,EACK,EAAY,EAAyB,EACrC,EAAgC,EAAiC,EAEjE,EAAmB,EAAyB,EAAM,GAAI,EAAI,EAE1D,EAAgB,EAAsB,CAC1C,SAAU,EAAK,MAAM,GACrB,aAAc,EAAK,MAAM,MAC3B,CAAC,EAEK,EAAc,EAAe,CAAE,KAAM,EAAK,MAAM,IAAK,CAAC,EA0B5D,OAxBA,EAAmB,EAAmB,gBAAgB,CACpD,QAAS,EAAK,KACd,cAAe,CACb,cAAe,EACf,YAAa,YACb,kBAAmB,iBACrB,CACF,CAAC,CAAC,EAEF,EAAqB,EAAM,EAAY,CAAE,UAAW,EAAK,CAAC,EAC1D,EAAc,EAAc,QAAU,CAAC,CAAC,EACxC,EAAsB,CAAY,EAClC,EAAa,CAAE,GAAI,EAAM,GAAI,IAAK,OAAQ,CAAC,EAGzC,EAAK,MACL,EAAY,cACZ,EAAiB,cACjB,GAOA,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,KAAM,EAAK,KACX,MAAO,EAAW,MAAM,KACxB,aAAc,EAAa,MAAM,KACjC,YAAa,EAAY,KAEzB,cAAe,IAAY,WAAa,EAAgB,CAAE,GAAG,EAAe,OAAQ,CAAC,CAAC,EAC1E,aACZ,YAAa,EAAM,YACnB,UAAW,EAAU,KACrB,qBAAsB,EAAe,EAAe,iBAAiB,EACrE,iBAAkB,EAAiB,MACpB,gBACf,kBAAmB,EAAM,aAAa,MACP,gCAClB,cACK,mBACG,sBACrB,eAAgB,CACjB,CAAA,GAtBM,EAAA,EAAA,IAAA,CAAA,EAAA,SAAA,CAAI,CAAA,CAwBf"}
@@ -1,2 +1,2 @@
1
- import{o as e}from"./DAXXjFlN.chunk.js";import{t}from"./Bkr6FS4c.chunk.js";import{t as n}from"./CQyJ7YGa.chunk.js";import{t as r}from"./C2w0pmFW.chunk.js";import{t as i}from"./wrLrTezN.chunk.js";import{u as a}from"./BX0wDJmp.chunk.js";import{I as o,l as s,y as c,z as l}from"./NlCAcBdo.chunk.js";import{t as u}from"./DIqO2TFN.chunk.js";import{t as d}from"./DTGfiG8Y.chunk.js";import{t as f}from"./oPIkfKWW2.chunk.js";import{t as p}from"./CcDvlSWl2.chunk.js";import{t as m}from"./C9a9PaRW2.chunk.js";import{t as h}from"./DsXWD-Sn.chunk.js";import{t as g}from"./D_gWf2lC.chunk.js";import{t as _}from"./CYEpX3hx.chunk.js";import{t as v}from"./DB_BawmH2.chunk.js";import{t as y}from"./FbPIRcRM2.chunk.js";import{n as b,t as x}from"./BGhJ8TEx.chunk.js";import{t as S}from"./OmYpHs7g.chunk.js";import{t as C}from"./CXnhm0VS2.chunk.js";import{t as w}from"./dEqScqMh2.chunk.js";import{t as T}from"./DNGkGVSd.chunk.js";var E=e(r()),D=i(),O=n.encloseNamespace(`signUp.upsellStartTrial`);function k(e){let{upsellPresentationType:t,config:n,currentUser:r}=e;if(!t||!n||!r)return null;let i=t===d.Subject?`welcomeToClickView`:`welcomeToClickViewLive`,a=n?.liteUrl.includes(`staging`)?u.TutorialVideoHighlight[i].staging:u.TutorialVideoHighlight[i].production,o=r?.instanceRegion;return a?.[o]}function A(e){let[n,r]=E.useState(!1),i=C(),u=y(),{updateUserSettingAsync:A}=p(c.UpsellRequestForm),j=a(g.config()),M=a(f.currentUser()),N=a(M.data?.id&&f.user(M.data.id)),P=k({upsellPresentationType:u.upsellPresentationType,config:j.data,currentUser:M.data}),F=a(P&&h.sharedVideo(P.VIDEO,P.SHARE)),I=a(P&&x.createViewKey(P.SHARE,b.Share));async function L(){r(!0);try{let n=u.upsellPresentationType===d.Subject?v.ClickView:v.ClickViewLive;_.logUserAction({id:M.data?.id,jobTitle:N.data?.userProfile?.metadata?.jobTitle,variant:n},{actionType:l.Submit,entity:s.User,descriptor:o.TeacherRequestUpsell,location:c.UpsellRequestForm}),await A({name:t.SignUpVariant,value:v.Bundle,kind:m.Setting}),i.success(O(`successMessage`)),r(!1),e.closePopup()}catch{r(!1),i.error(O(`errorMessage`))}}let R=!!M.data&&!!j.data&&!!F.data&&!!I.data;return(0,D.jsxs)(w,{closePopup:e.closePopup,animation:e.animate,title:O(`title`),size:`lg`,bodyClassName:`d-flex flex-column gap-3`,showLoadingSpinner:!R,children:[(0,D.jsx)(`div`,{children:(0,D.jsx)(S,{config:j.data,currentUser:M.data,video:F.data,viewKey:I.data,presentationSlug:null,autoplay:!0})}),(0,D.jsx)(`p`,{className:`mb-0`,children:O(`description`)}),(0,D.jsx)(T,{onClickSecondary:e.closePopup,onClickPrimary:L,text:{primary:O(`startTrial`),secondary:O(`cancel`)},loading:n})]})}export{A as UpsellStartTrialView};
2
- //# sourceMappingURL=BYMMqtaN.chunk.js.map
1
+ import{o as e}from"./DAXXjFlN.chunk.js";import{t}from"./Bkr6FS4c.chunk.js";import{t as n}from"./CQyJ7YGa.chunk.js";import{t as r}from"./C2w0pmFW.chunk.js";import{t as i}from"./wrLrTezN.chunk.js";import{u as a}from"./BX0wDJmp.chunk.js";import{I as o,l as s,y as c,z as l}from"./NlCAcBdo.chunk.js";import{t as u}from"./DIqO2TFN.chunk.js";import{t as d}from"./DTGfiG8Y.chunk.js";import{t as f}from"./oPIkfKWW2.chunk.js";import{t as p}from"./CcDvlSWl2.chunk.js";import{t as m}from"./C9a9PaRW2.chunk.js";import{t as h}from"./DsXWD-Sn.chunk.js";import{t as g}from"./D_gWf2lC.chunk.js";import{t as _}from"./CYEpX3hx.chunk.js";import{t as v}from"./DB_BawmH2.chunk.js";import{t as y}from"./FbPIRcRM2.chunk.js";import{n as b,t as x}from"./BGhJ8TEx.chunk.js";import{t as S}from"./_Cm5O72d.chunk.js";import{t as C}from"./CXnhm0VS2.chunk.js";import{t as w}from"./dEqScqMh2.chunk.js";import{t as T}from"./DNGkGVSd.chunk.js";var E=e(r()),D=i(),O=n.encloseNamespace(`signUp.upsellStartTrial`);function k(e){let{upsellPresentationType:t,config:n,currentUser:r}=e;if(!t||!n||!r)return null;let i=t===d.Subject?`welcomeToClickView`:`welcomeToClickViewLive`,a=n?.liteUrl.includes(`staging`)?u.TutorialVideoHighlight[i].staging:u.TutorialVideoHighlight[i].production,o=r?.instanceRegion;return a?.[o]}function A(e){let[n,r]=E.useState(!1),i=C(),u=y(),{updateUserSettingAsync:A}=p(c.UpsellRequestForm),j=a(g.config()),M=a(f.currentUser()),N=a(M.data?.id&&f.user(M.data.id)),P=k({upsellPresentationType:u.upsellPresentationType,config:j.data,currentUser:M.data}),F=a(P&&h.sharedVideo(P.VIDEO,P.SHARE)),I=a(P&&x.createViewKey(P.SHARE,b.Share));async function L(){r(!0);try{let n=u.upsellPresentationType===d.Subject?v.ClickView:v.ClickViewLive;_.logUserAction({id:M.data?.id,jobTitle:N.data?.userProfile?.metadata?.jobTitle,variant:n},{actionType:l.Submit,entity:s.User,descriptor:o.TeacherRequestUpsell,location:c.UpsellRequestForm}),await A({name:t.SignUpVariant,value:v.Bundle,kind:m.Setting}),i.success(O(`successMessage`)),r(!1),e.closePopup()}catch{r(!1),i.error(O(`errorMessage`))}}let R=!!M.data&&!!j.data&&!!F.data&&!!I.data;return(0,D.jsxs)(w,{closePopup:e.closePopup,animation:e.animate,title:O(`title`),size:`lg`,bodyClassName:`d-flex flex-column gap-3`,showLoadingSpinner:!R,children:[(0,D.jsx)(`div`,{children:(0,D.jsx)(S,{config:j.data,currentUser:M.data,video:F.data,viewKey:I.data,presentationSlug:null,autoplay:!0})}),(0,D.jsx)(`p`,{className:`mb-0`,children:O(`description`)}),(0,D.jsx)(T,{onClickSecondary:e.closePopup,onClickPrimary:L,text:{primary:O(`startTrial`),secondary:O(`cancel`)},loading:n})]})}export{A as UpsellStartTrialView};
2
+ //# sourceMappingURL=BqdHoEFM.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BYMMqtaN.chunk.js","names":[],"sources":["../../src/apps/sign-up/views/upsell-start-trial/UpsellStartTrialView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EntityType, LocationContext, UpgradeBannerDescriptors, UserAction } from 'libs/analytics/interfaces';\n\nimport { MultiStepPopupViewProps } from 'libs/shared/components/multistep-popup/MultiStepPopup';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { HardCoded } from 'libs/shared/constants/HardCoded';\nimport { MediaIdType } from 'libs/shared/enums/MediaIdType';\nimport { PresentationType } from 'libs/shared/enums/PresentationType';\nimport { SettingKind } from 'libs/shared/enums/SettingKind';\nimport { SettingName } from 'libs/shared/enums/SettingName';\nimport { SignUpVariant } from 'libs/shared/enums/SignUpVariant';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { PlayerRequests } from 'libs/shared/flight-requests/PlayerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { Config, CurrentUser, PlayerViewKey, User, VideoTypes } from 'libs/shared/interfaces';\n\nimport { useUpsellContext } from 'shared/hooks/useUpsellContext';\nimport { LitePlayerView } from 'shared/views/lite-player/LitePlayerView';\n\nimport { RequestFlowControls } from 'apps/sign-up/components/request-flow-controls/RequestFlowControls';\n\nconst namespace = 'signUp.upsellStartTrial';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface GetTutorialVideoDetailOptions {\n upsellPresentationType: PresentationType;\n config: Config;\n currentUser: CurrentUser;\n}\n\nfunction getTutorialVideoDetail(options: GetTutorialVideoDetailOptions) {\n const { upsellPresentationType, config, currentUser } = options;\n if (!upsellPresentationType || !config || !currentUser)\n return null;\n \n const videoType = upsellPresentationType === PresentationType.Subject ? 'welcomeToClickView' : 'welcomeToClickViewLive';\n const instanceRegionVideoIds = config?.liteUrl.includes('staging') ?\n HardCoded.TutorialVideoHighlight[videoType].staging :\n HardCoded.TutorialVideoHighlight[videoType].production;\n const instanceRegion = currentUser?.instanceRegion;\n return instanceRegionVideoIds?.[instanceRegion as keyof typeof instanceRegionVideoIds];\n}\n\nexport interface UpsellStartTrialViewProps extends MultiStepPopupViewProps {}\n\nexport function UpsellStartTrialView(props: UpsellStartTrialViewProps) {\n const [ submitting, setSubmitting ] = React.useState(false);\n\n const alerts = useAlerts();\n \n const upsellContext = useUpsellContext();\n const { updateUserSettingAsync } = useSettings(LocationContext.UpsellRequestForm);\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const detailCurrentUser = Flight.useBasicFetch<User>(currentUser.data?.id && UserRequests.user(currentUser.data.id));\n\n const tutorialVideoDetail = getTutorialVideoDetail({\n upsellPresentationType: upsellContext.upsellPresentationType,\n config: config.data,\n currentUser: currentUser.data\n });\n\n const tutorialVideo = Flight.useBasicFetch<VideoTypes>(\n tutorialVideoDetail && VideoRequests.sharedVideo(tutorialVideoDetail.VIDEO, tutorialVideoDetail.SHARE)\n );\n \n const viewKey = Flight.useBasicFetch<PlayerViewKey>(\n tutorialVideoDetail && PlayerRequests.createViewKey(tutorialVideoDetail.SHARE, MediaIdType.Share)\n );\n\n async function onStartTrial() {\n setSubmitting(true);\n\n try {\n const variant = upsellContext.upsellPresentationType === PresentationType.Subject ?\n SignUpVariant.ClickView : SignUpVariant.ClickViewLive;\n\n AnalyticsHelper.logUserAction(\n {\n id: currentUser.data?.id,\n jobTitle: detailCurrentUser.data?.userProfile?.metadata?.jobTitle,\n variant\n },\n {\n actionType: UserAction.Submit,\n entity: EntityType.User,\n descriptor: UpgradeBannerDescriptors.TeacherRequestUpsell,\n location: LocationContext.UpsellRequestForm\n }\n );\n \n await updateUserSettingAsync({\n name: SettingName.SignUpVariant,\n value: SignUpVariant.Bundle,\n kind: SettingKind.Setting\n });\n\n alerts.success(getPhrase('successMessage'));\n setSubmitting(false);\n props.closePopup();\n } catch {\n setSubmitting(false);\n alerts.error(getPhrase('errorMessage'));\n }\n }\n\n const loaded = !!currentUser.data && !!config.data && !!tutorialVideo.data && !!viewKey.data;\n \n return (\n <Popup\n closePopup={props.closePopup}\n animation={props.animate}\n title={getPhrase('title')}\n size='lg'\n bodyClassName='d-flex flex-column gap-3'\n showLoadingSpinner={!loaded}\n >\n <div>\n <LitePlayerView\n config={config.data}\n currentUser={currentUser.data}\n video={tutorialVideo.data}\n viewKey={viewKey.data}\n presentationSlug={null}\n autoplay\n />\n </div>\n <p className='mb-0'>{getPhrase('description')}</p>\n <RequestFlowControls\n onClickSecondary={props.closePopup}\n onClickPrimary={onStartTrial}\n text={{\n primary: getPhrase('startTrial'),\n secondary: getPhrase('cancel')\n }}\n loading={submitting}\n />\n </Popup>\n );\n}\n"],"mappings":"i6BA8BM,EAAY,EAAgB,iBAAiB,yBAAS,EAQ5D,SAAS,EAAuB,EAAwC,CACtE,GAAM,CAAE,yBAAwB,SAAQ,eAAgB,EACxD,GAAI,CAAC,GAA0B,CAAC,GAAU,CAAC,EACzC,OAAO,KAET,IAAM,EAAY,IAA2B,EAAiB,QAAU,qBAAuB,yBACzF,EAAyB,GAAQ,QAAQ,SAAS,SAAS,EAC/D,EAAU,uBAAuB,EAAU,CAAC,QAC5C,EAAU,uBAAuB,EAAU,CAAC,WACxC,EAAiB,GAAa,eACpC,OAAO,IAAyB,EAClC,CAIA,SAAgB,EAAqB,EAAkC,CACrE,GAAM,CAAE,EAAY,GAAA,EAAwB,SAAS,EAAK,EAEpD,EAAS,EAAU,EAEnB,EAAgB,EAAiB,EACjC,CAAE,0BAA2B,EAAY,EAAgB,iBAAiB,EAC1E,EAAS,EAA6B,EAAe,OAAO,CAAC,EAC7D,EAAc,EAAkC,EAAa,YAAY,CAAC,EAC1E,EAAoB,EAA2B,EAAY,MAAM,IAAM,EAAa,KAAK,EAAY,KAAK,EAAE,CAAC,EAE7G,EAAsB,EAAuB,CACjD,uBAAwB,EAAc,uBACtC,OAAQ,EAAO,KACf,YAAa,EAAY,IAC3B,CAAC,EAEK,EAAgB,EACpB,GAAuB,EAAc,YAAY,EAAoB,MAAO,EAAoB,KAAK,CACvG,EAEM,EAAU,EACd,GAAuB,EAAe,cAAc,EAAoB,MAAO,EAAY,KAAK,CAClG,EAEA,eAAe,GAAe,CAC5B,EAAc,EAAI,EAElB,GAAI,CACF,IAAM,EAAU,EAAc,yBAA2B,EAAiB,QACxE,EAAc,UAAY,EAAc,cAE1C,EAAgB,cACd,CACE,GAAI,EAAY,MAAM,GACtB,SAAU,EAAkB,MAAM,aAAa,UAAU,SACzD,SACF,EACA,CACE,WAAY,EAAW,OACvB,OAAQ,EAAW,KACnB,WAAY,EAAyB,qBACrC,SAAU,EAAgB,iBAC5B,CACF,EAEA,MAAM,EAAuB,CAC3B,KAAM,EAAY,cAClB,MAAO,EAAc,OACrB,KAAM,EAAY,OACpB,CAAC,EAED,EAAO,QAAQ,EAAU,gBAAgB,CAAC,EAC1C,EAAc,EAAK,EACnB,EAAM,WAAW,CACnB,MAAQ,CACN,EAAc,EAAK,EACnB,EAAO,MAAM,EAAU,cAAc,CAAC,CACxC,CACF,CAEA,IAAM,EAAS,CAAC,CAAC,EAAY,MAAQ,CAAC,CAAC,EAAO,MAAQ,CAAC,CAAC,EAAc,MAAQ,CAAC,CAAC,EAAQ,KAExF,OACE,EAAA,EAAA,KAAA,CAAC,EAAD,CACE,WAAY,EAAM,WAClB,UAAW,EAAM,QACjB,MAAO,EAAU,OAAO,EACxB,KAAK,KACL,cAAc,2BACd,mBAAoB,CAAC,WANvB,EAQE,EAAA,EAAA,IAAA,CAAC,MAAD,CAAA,UACE,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,OAAQ,EAAO,KACf,YAAa,EAAY,KACzB,MAAO,EAAc,KACrB,QAAS,EAAQ,KACjB,iBAAkB,KAClB,SAAA,EACD,CAAA,CACE,CAAA,GACL,EAAA,EAAA,IAAA,CAAC,IAAD,CAAG,UAAU,gBAAQ,EAAU,aAAa,CAAK,CAAA,GACjD,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,iBAAkB,EAAM,WACxB,eAAgB,EAChB,KAAM,CACJ,QAAS,EAAU,YAAY,EAC/B,UAAW,EAAU,QAAQ,CAC/B,EACA,QAAS,CACV,CAAA,CACI,GAEX"}
1
+ {"version":3,"file":"BqdHoEFM.chunk.js","names":[],"sources":["../../src/apps/sign-up/views/upsell-start-trial/UpsellStartTrialView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EntityType, LocationContext, UpgradeBannerDescriptors, UserAction } from 'libs/analytics/interfaces';\n\nimport { MultiStepPopupViewProps } from 'libs/shared/components/multistep-popup/MultiStepPopup';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { HardCoded } from 'libs/shared/constants/HardCoded';\nimport { MediaIdType } from 'libs/shared/enums/MediaIdType';\nimport { PresentationType } from 'libs/shared/enums/PresentationType';\nimport { SettingKind } from 'libs/shared/enums/SettingKind';\nimport { SettingName } from 'libs/shared/enums/SettingName';\nimport { SignUpVariant } from 'libs/shared/enums/SignUpVariant';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { PlayerRequests } from 'libs/shared/flight-requests/PlayerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { Config, CurrentUser, PlayerViewKey, User, VideoTypes } from 'libs/shared/interfaces';\n\nimport { useUpsellContext } from 'shared/hooks/useUpsellContext';\nimport { LitePlayerView } from 'shared/views/lite-player/LitePlayerView';\n\nimport { RequestFlowControls } from 'apps/sign-up/components/request-flow-controls/RequestFlowControls';\n\nconst namespace = 'signUp.upsellStartTrial';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface GetTutorialVideoDetailOptions {\n upsellPresentationType: PresentationType;\n config: Config;\n currentUser: CurrentUser;\n}\n\nfunction getTutorialVideoDetail(options: GetTutorialVideoDetailOptions) {\n const { upsellPresentationType, config, currentUser } = options;\n if (!upsellPresentationType || !config || !currentUser)\n return null;\n \n const videoType = upsellPresentationType === PresentationType.Subject ? 'welcomeToClickView' : 'welcomeToClickViewLive';\n const instanceRegionVideoIds = config?.liteUrl.includes('staging') ?\n HardCoded.TutorialVideoHighlight[videoType].staging :\n HardCoded.TutorialVideoHighlight[videoType].production;\n const instanceRegion = currentUser?.instanceRegion;\n return instanceRegionVideoIds?.[instanceRegion as keyof typeof instanceRegionVideoIds];\n}\n\nexport interface UpsellStartTrialViewProps extends MultiStepPopupViewProps {}\n\nexport function UpsellStartTrialView(props: UpsellStartTrialViewProps) {\n const [ submitting, setSubmitting ] = React.useState(false);\n\n const alerts = useAlerts();\n \n const upsellContext = useUpsellContext();\n const { updateUserSettingAsync } = useSettings(LocationContext.UpsellRequestForm);\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const detailCurrentUser = Flight.useBasicFetch<User>(currentUser.data?.id && UserRequests.user(currentUser.data.id));\n\n const tutorialVideoDetail = getTutorialVideoDetail({\n upsellPresentationType: upsellContext.upsellPresentationType,\n config: config.data,\n currentUser: currentUser.data\n });\n\n const tutorialVideo = Flight.useBasicFetch<VideoTypes>(\n tutorialVideoDetail && VideoRequests.sharedVideo(tutorialVideoDetail.VIDEO, tutorialVideoDetail.SHARE)\n );\n \n const viewKey = Flight.useBasicFetch<PlayerViewKey>(\n tutorialVideoDetail && PlayerRequests.createViewKey(tutorialVideoDetail.SHARE, MediaIdType.Share)\n );\n\n async function onStartTrial() {\n setSubmitting(true);\n\n try {\n const variant = upsellContext.upsellPresentationType === PresentationType.Subject ?\n SignUpVariant.ClickView : SignUpVariant.ClickViewLive;\n\n AnalyticsHelper.logUserAction(\n {\n id: currentUser.data?.id,\n jobTitle: detailCurrentUser.data?.userProfile?.metadata?.jobTitle,\n variant\n },\n {\n actionType: UserAction.Submit,\n entity: EntityType.User,\n descriptor: UpgradeBannerDescriptors.TeacherRequestUpsell,\n location: LocationContext.UpsellRequestForm\n }\n );\n \n await updateUserSettingAsync({\n name: SettingName.SignUpVariant,\n value: SignUpVariant.Bundle,\n kind: SettingKind.Setting\n });\n\n alerts.success(getPhrase('successMessage'));\n setSubmitting(false);\n props.closePopup();\n } catch {\n setSubmitting(false);\n alerts.error(getPhrase('errorMessage'));\n }\n }\n\n const loaded = !!currentUser.data && !!config.data && !!tutorialVideo.data && !!viewKey.data;\n \n return (\n <Popup\n closePopup={props.closePopup}\n animation={props.animate}\n title={getPhrase('title')}\n size='lg'\n bodyClassName='d-flex flex-column gap-3'\n showLoadingSpinner={!loaded}\n >\n <div>\n <LitePlayerView\n config={config.data}\n currentUser={currentUser.data}\n video={tutorialVideo.data}\n viewKey={viewKey.data}\n presentationSlug={null}\n autoplay\n />\n </div>\n <p className='mb-0'>{getPhrase('description')}</p>\n <RequestFlowControls\n onClickSecondary={props.closePopup}\n onClickPrimary={onStartTrial}\n text={{\n primary: getPhrase('startTrial'),\n secondary: getPhrase('cancel')\n }}\n loading={submitting}\n />\n </Popup>\n );\n}\n"],"mappings":"i6BA8BM,EAAY,EAAgB,iBAAiB,yBAAS,EAQ5D,SAAS,EAAuB,EAAwC,CACtE,GAAM,CAAE,yBAAwB,SAAQ,eAAgB,EACxD,GAAI,CAAC,GAA0B,CAAC,GAAU,CAAC,EACzC,OAAO,KAET,IAAM,EAAY,IAA2B,EAAiB,QAAU,qBAAuB,yBACzF,EAAyB,GAAQ,QAAQ,SAAS,SAAS,EAC/D,EAAU,uBAAuB,EAAU,CAAC,QAC5C,EAAU,uBAAuB,EAAU,CAAC,WACxC,EAAiB,GAAa,eACpC,OAAO,IAAyB,EAClC,CAIA,SAAgB,EAAqB,EAAkC,CACrE,GAAM,CAAE,EAAY,GAAA,EAAwB,SAAS,EAAK,EAEpD,EAAS,EAAU,EAEnB,EAAgB,EAAiB,EACjC,CAAE,0BAA2B,EAAY,EAAgB,iBAAiB,EAC1E,EAAS,EAA6B,EAAe,OAAO,CAAC,EAC7D,EAAc,EAAkC,EAAa,YAAY,CAAC,EAC1E,EAAoB,EAA2B,EAAY,MAAM,IAAM,EAAa,KAAK,EAAY,KAAK,EAAE,CAAC,EAE7G,EAAsB,EAAuB,CACjD,uBAAwB,EAAc,uBACtC,OAAQ,EAAO,KACf,YAAa,EAAY,IAC3B,CAAC,EAEK,EAAgB,EACpB,GAAuB,EAAc,YAAY,EAAoB,MAAO,EAAoB,KAAK,CACvG,EAEM,EAAU,EACd,GAAuB,EAAe,cAAc,EAAoB,MAAO,EAAY,KAAK,CAClG,EAEA,eAAe,GAAe,CAC5B,EAAc,EAAI,EAElB,GAAI,CACF,IAAM,EAAU,EAAc,yBAA2B,EAAiB,QACxE,EAAc,UAAY,EAAc,cAE1C,EAAgB,cACd,CACE,GAAI,EAAY,MAAM,GACtB,SAAU,EAAkB,MAAM,aAAa,UAAU,SACzD,SACF,EACA,CACE,WAAY,EAAW,OACvB,OAAQ,EAAW,KACnB,WAAY,EAAyB,qBACrC,SAAU,EAAgB,iBAC5B,CACF,EAEA,MAAM,EAAuB,CAC3B,KAAM,EAAY,cAClB,MAAO,EAAc,OACrB,KAAM,EAAY,OACpB,CAAC,EAED,EAAO,QAAQ,EAAU,gBAAgB,CAAC,EAC1C,EAAc,EAAK,EACnB,EAAM,WAAW,CACnB,MAAQ,CACN,EAAc,EAAK,EACnB,EAAO,MAAM,EAAU,cAAc,CAAC,CACxC,CACF,CAEA,IAAM,EAAS,CAAC,CAAC,EAAY,MAAQ,CAAC,CAAC,EAAO,MAAQ,CAAC,CAAC,EAAc,MAAQ,CAAC,CAAC,EAAQ,KAExF,OACE,EAAA,EAAA,KAAA,CAAC,EAAD,CACE,WAAY,EAAM,WAClB,UAAW,EAAM,QACjB,MAAO,EAAU,OAAO,EACxB,KAAK,KACL,cAAc,2BACd,mBAAoB,CAAC,WANvB,EAQE,EAAA,EAAA,IAAA,CAAC,MAAD,CAAA,UACE,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,OAAQ,EAAO,KACf,YAAa,EAAY,KACzB,MAAO,EAAc,KACrB,QAAS,EAAQ,KACjB,iBAAkB,KAClB,SAAA,EACD,CAAA,CACE,CAAA,GACL,EAAA,EAAA,IAAA,CAAC,IAAD,CAAG,UAAU,gBAAQ,EAAU,aAAa,CAAK,CAAA,GACjD,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,iBAAkB,EAAM,WACxB,eAAgB,EAChB,KAAM,CACJ,QAAS,EAAU,YAAY,EAC/B,UAAW,EAAU,QAAQ,CAC/B,EACA,QAAS,CACV,CAAA,CACI,GAEX"}
@@ -1,2 +1,2 @@
1
- import"./DAXXjFlN.chunk.js";import{t as e}from"./DMnm3Ewv.chunk.js";import{n as t}from"./B785hxeE.chunk.js";import{t as n}from"./C2w0pmFW.chunk.js";import{t as r}from"./wrLrTezN.chunk.js";import{u as i}from"./BX0wDJmp.chunk.js";import{y as a}from"./NlCAcBdo.chunk.js";import{t as o}from"./oPIkfKWW2.chunk.js";import{t as s}from"./xwiwWcv12.chunk.js";import{t as c}from"./DbSUQ2A12.chunk.js";import{t as l}from"./8U-YTgZd.chunk.js";import{t as u}from"./D_gWf2lC.chunk.js";import{n as d,t as f}from"./A8xLZrSw.chunk.js";import{n as p,t as m}from"./BGhJ8TEx.chunk.js";import{t as h}from"./CMLErBju.chunk.js";import{t as g}from"./POQS3gV6.chunk.js";import{t as _}from"./BQKcAczf.chunk.js";import{r as v}from"./OmYpHs7g.chunk.js";import{t as y}from"./CjGfwvo12.chunk.js";import{n as b}from"./B-eFTZdx2.chunk.js";import{t as x}from"./D0n6BTgT.chunk.js";import{t as S}from"./BmR4qY-v2.chunk.js";import{t as C}from"./cX5MHowe.chunk.js";import{t as w}from"./DMIDfHRi2.chunk.js";import{t as T}from"./BIO-5Tfr2.chunk.js";import{n as E,r as D,t as O}from"./_wBbQ-0z2.chunk.js";n();var k=r(),A={notFound:y,forbidden:{privacy:g}};function j(e){return e?._parentClip||e?._parentVideo}function M(n){let{hasPermissions:r}=_(),g=i(u.config()),y=i(o.token()),M=i(o.currentUser()),N=i(M.data?.isAuthenticated&&s.yearGroups(M.data.customerId)),P=i(l.interactiveMetadata(n.id)),F=D(),I=i(P.statusCode===e.Forbidden&&l.interactiveMetadata(n.id,c.StripMetadata)),L=i(F&&P.data&&l.interactive(P.data.interactiveId)),R=i(F&&P.data&&l.videoInteractives(j(P.data).id)),z=w(),B=i(m.createViewKey(n.id,p.MasterObject)),V=v({video:P.data,context:n.queryParams.context,contextId:n.queryParams.contextId,moviesAndTv:n.queryParams.mtv,currentUser:M.data}),{commonVideoProps:H,hasCommonVideoPropsCompleted:U}=S({locationContext:F?a.PreviewInteractive:a.PlayInteractive,mtv:n.queryParams.mtv});b({id:n.id,app:`interactives`}),x(P,A,{forbidden:!0}),h(I),f(d.getInteractiveMetadata({content:P.data})),T(V.videos??[]);let W=C({name:P.data?.name});return P.data&&g.hasCompleted&&M.hasCompleted&&(!F||L.hasCompleted)&&B.hasCompleted&&y.hasCompleted&&U?F?(0,k.jsx)(O,{currentUser:M.data,queryParams:n.queryParams,interactive:P.data,interactives:R.data?.data,isPreviewPreventScrubbingEnabled:L.data.preventScrubbing,audiences:z.data,relatedVideos:V,canManageVideoAccess:r(t.ManageVideoAccess),breadcrumbs:W,token:y.data,commonVideoProps:H}):(0,k.jsx)(E,{interactive:P.data,currentUser:M.data,config:g.data,yearGroups:N.data,audiences:z.data,queryParams:n.queryParams,viewKey:B.data,relatedVideos:V,startTime:n.queryParams?.t??n.queryParams?.startTime,token:y.data,commonVideoProps:H}):(0,k.jsx)(k.Fragment,{})}export{M as InteractiveView};
2
- //# sourceMappingURL=BIvmcqND2.chunk.js.map
1
+ import"./DAXXjFlN.chunk.js";import{t as e}from"./DMnm3Ewv.chunk.js";import{n as t}from"./B785hxeE.chunk.js";import{t as n}from"./C2w0pmFW.chunk.js";import{t as r}from"./wrLrTezN.chunk.js";import{u as i}from"./BX0wDJmp.chunk.js";import{y as a}from"./NlCAcBdo.chunk.js";import{t as o}from"./oPIkfKWW2.chunk.js";import{t as s}from"./xwiwWcv12.chunk.js";import{t as c}from"./DbSUQ2A12.chunk.js";import{t as l}from"./8U-YTgZd.chunk.js";import{t as u}from"./D_gWf2lC.chunk.js";import{n as d,t as f}from"./A8xLZrSw.chunk.js";import{n as p,t as m}from"./BGhJ8TEx.chunk.js";import{t as h}from"./CMLErBju.chunk.js";import{t as g}from"./POQS3gV6.chunk.js";import{t as _}from"./BQKcAczf.chunk.js";import{r as v}from"./_Cm5O72d.chunk.js";import{t as y}from"./CjGfwvo12.chunk.js";import{n as b}from"./B-eFTZdx2.chunk.js";import{t as x}from"./D0n6BTgT.chunk.js";import{t as S}from"./BmR4qY-v2.chunk.js";import{t as C}from"./cX5MHowe.chunk.js";import{t as w}from"./DMIDfHRi2.chunk.js";import{t as T}from"./BIO-5Tfr2.chunk.js";import{n as E,r as D,t as O}from"./BBndy2td2.chunk.js";n();var k=r(),A={notFound:y,forbidden:{privacy:g}};function j(e){return e?._parentClip||e?._parentVideo}function M(n){let{hasPermissions:r}=_(),g=i(u.config()),y=i(o.token()),M=i(o.currentUser()),N=i(M.data?.isAuthenticated&&s.yearGroups(M.data.customerId)),P=i(l.interactiveMetadata(n.id)),F=D(),I=i(P.statusCode===e.Forbidden&&l.interactiveMetadata(n.id,c.StripMetadata)),L=i(F&&P.data&&l.interactive(P.data.interactiveId)),R=i(F&&P.data&&l.videoInteractives(j(P.data).id)),z=w(),B=i(m.createViewKey(n.id,p.MasterObject)),V=v({video:P.data,context:n.queryParams.context,contextId:n.queryParams.contextId,moviesAndTv:n.queryParams.mtv,currentUser:M.data}),{commonVideoProps:H,hasCommonVideoPropsCompleted:U}=S({locationContext:F?a.PreviewInteractive:a.PlayInteractive,mtv:n.queryParams.mtv});b({id:n.id,app:`interactives`}),x(P,A,{forbidden:!0}),h(I),f(d.getInteractiveMetadata({content:P.data})),T(V.videos??[]);let W=C({name:P.data?.name});return P.data&&g.hasCompleted&&M.hasCompleted&&(!F||L.hasCompleted)&&B.hasCompleted&&y.hasCompleted&&U?F?(0,k.jsx)(O,{currentUser:M.data,queryParams:n.queryParams,interactive:P.data,interactives:R.data?.data,isPreviewPreventScrubbingEnabled:L.data.preventScrubbing,audiences:z.data,relatedVideos:V,canManageVideoAccess:r(t.ManageVideoAccess),breadcrumbs:W,token:y.data,commonVideoProps:H}):(0,k.jsx)(E,{interactive:P.data,currentUser:M.data,config:g.data,yearGroups:N.data,audiences:z.data,queryParams:n.queryParams,viewKey:B.data,relatedVideos:V,startTime:n.queryParams?.t??n.queryParams?.startTime,token:y.data,commonVideoProps:H}):(0,k.jsx)(k.Fragment,{})}export{M as InteractiveView};
2
+ //# sourceMappingURL=CCUznsdX2.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BIvmcqND2.chunk.js","names":[],"sources":["../../src/apps/interactives/views/interactive-view/InteractiveView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { Flight } from 'libs/common/flight';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { MediaIdType } from 'libs/shared/enums/MediaIdType';\nimport { PermissionFilterOption } from 'libs/shared/enums/PermissionFilterOption';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { VideoNotFoundError } from 'libs/shared/errors/videos/video-not-found/VideoNotFoundError';\nimport { VideoPrivateError } from 'libs/shared/errors/videos/video-private/VideoPrivateError';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { PlayerRequests } from 'libs/shared/flight-requests/PlayerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useBreadcrumbs } from 'libs/shared/hooks/useBreadcrumbs';\nimport { useCannotConsumeError } from 'libs/shared/hooks/useCannotConsumeError';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Clip, Config, CurrentUser, Interactive, InteractiveCollection, InteractiveMetadata, PlayerViewKey, Video, YearGroup } from 'libs/shared/interfaces';\nimport { AuthToken } from 'libs/shared/interfaces/models/AuthToken';\nimport { PlayViewQueryParams } from 'libs/shared/interfaces/query-params/PlayViewQueryParams';\nimport { PageMetadataHelper } from 'libs/shared/utils/PageMetadataHelper';\n\nimport { useCommonVideoProps } from 'shared/hooks/useCommonVideoProps';\nimport { useDeepLinks } from 'shared/hooks/useDeepLinks';\nimport { useGetRelatedVideos } from 'shared/hooks/useGetRelatedVideos';\nimport { usePresentationAudiences } from 'shared/hooks/usePresentationAudiences';\nimport { useShouldPreviewInteractive } from 'shared/hooks/useShouldPreviewInteractive';\nimport { useVideoMixin } from 'shared/hooks/useVideoMixin';\n\nimport { PlayInteractive } from 'apps/interactives/components/play-interactive/PlayInteractive';\nimport { PreviewInteractive } from 'apps/interactives/components/preview-interactive/PreviewInteractive';\n\nconst videoErrors = {\n notFound: VideoNotFoundError,\n forbidden: {\n privacy: VideoPrivateError\n }\n};\n\nfunction getSourceVideo(interactive?: InteractiveMetadata): Clip | Video {\n return interactive?._parentClip || interactive?._parentVideo;\n}\ninterface InteractiveViewProps {\n id: string;\n queryParams: PlayViewQueryParams;\n}\n\nexport function InteractiveView(props: InteractiveViewProps): JSX.Element {\n const { hasPermissions } = usePermissions();\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const token = Flight.useBasicFetch<AuthToken>(UserRequests.token());\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data?.isAuthenticated && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n\n const interactiveMetadata = Flight.useBasicFetch<InteractiveMetadata>(\n InteractiveRequests.interactiveMetadata(props.id)\n );\n const shouldPreviewInteractive = useShouldPreviewInteractive();\n const strippedInteractiveMetadata = Flight.useBasicFetch<InteractiveMetadata>(\n interactiveMetadata.statusCode === HttpStatus.Forbidden &&\n InteractiveRequests.interactiveMetadata(props.id, PermissionFilterOption.StripMetadata)\n );\n const interactive = Flight.useBasicFetch<Interactive>(\n shouldPreviewInteractive && interactiveMetadata.data &&\n InteractiveRequests.interactive(interactiveMetadata.data.interactiveId)\n );\n const interactives = Flight.useBasicFetch<InteractiveCollection>(\n shouldPreviewInteractive && interactiveMetadata.data &&\n InteractiveRequests.videoInteractives(getSourceVideo(interactiveMetadata.data).id)\n );\n \n const audiences = usePresentationAudiences();\n const viewKey = Flight.useBasicFetch<PlayerViewKey>(PlayerRequests.createViewKey(props.id, MediaIdType.MasterObject));\n\n const relatedVideos = useGetRelatedVideos({\n video: interactiveMetadata.data,\n context: props.queryParams.context,\n contextId: props.queryParams.contextId,\n moviesAndTv: props.queryParams.mtv,\n currentUser: currentUser.data\n });\n\n const locationContext = shouldPreviewInteractive ?\n LocationContext.PreviewInteractive :\n LocationContext.PlayInteractive;\n \n const {\n commonVideoProps,\n hasCommonVideoPropsCompleted\n } = useCommonVideoProps({ locationContext, mtv: props.queryParams.mtv });\n\n useDeepLinks({ id: props.id, app: 'interactives' });\n\n useHandleObjectError(interactiveMetadata, videoErrors, { forbidden: true });\n useCannotConsumeError(strippedInteractiveMetadata);\n useSetPageMetadata(PageMetadataHelper.getInteractiveMetadata({ content: interactiveMetadata.data }));\n\n useVideoMixin(relatedVideos.videos ?? []);\n\n const breadcrumbs = useBreadcrumbs({ name: interactiveMetadata.data?.name });\n\n const hasLoaded = (\n interactiveMetadata.data &&\n config.hasCompleted &&\n currentUser.hasCompleted &&\n (!shouldPreviewInteractive || interactive.hasCompleted) &&\n viewKey.hasCompleted &&\n token.hasCompleted &&\n hasCommonVideoPropsCompleted\n );\n\n if (!hasLoaded)\n return <></>;\n\n if (shouldPreviewInteractive) {\n return (\n <PreviewInteractive\n currentUser={currentUser.data}\n queryParams={props.queryParams}\n interactive={interactiveMetadata.data}\n interactives={interactives.data?.data}\n isPreviewPreventScrubbingEnabled={interactive.data.preventScrubbing}\n audiences={audiences.data}\n relatedVideos={relatedVideos}\n canManageVideoAccess={hasPermissions(PermissionName.ManageVideoAccess)}\n breadcrumbs={breadcrumbs}\n token={token.data}\n commonVideoProps={commonVideoProps}\n />\n );\n }\n\n return (\n <PlayInteractive\n interactive={interactiveMetadata.data}\n currentUser={currentUser.data}\n config={config.data}\n yearGroups={yearGroups.data}\n audiences={audiences.data}\n queryParams={props.queryParams}\n viewKey={viewKey.data}\n relatedVideos={relatedVideos}\n startTime={props.queryParams?.t ?? props.queryParams?.startTime}\n token={token.data}\n commonVideoProps={commonVideoProps}\n />\n );\n}\n"],"mappings":"ujCAqCM,EAAc,CAClB,SAAU,EACV,UAAW,CACT,QAAS,CACX,CACF,EAEA,SAAS,EAAe,EAAiD,CACvE,OAAO,GAAa,aAAe,GAAa,YAClD,CAMA,SAAgB,EAAgB,EAA0C,CACxE,GAAM,CAAE,kBAAmB,EAAe,EAEpC,EAAS,EAA6B,EAAe,OAAO,CAAC,EAC7D,EAAQ,EAAgC,EAAa,MAAM,CAAC,EAC5D,EAAc,EAAkC,EAAa,YAAY,CAAC,EAC1E,EAAa,EACjB,EAAY,MAAM,iBAAmB,EAAiB,WAAW,EAAY,KAAK,UAAU,CAC9F,EAEM,EAAsB,EAC1B,EAAoB,oBAAoB,EAAM,EAAE,CAClD,EACM,EAA2B,EAA4B,EACvD,EAA8B,EAClC,EAAoB,aAAe,EAAW,WAC5C,EAAoB,oBAAoB,EAAM,GAAI,EAAuB,aAAa,CAC1F,EACM,EAAc,EAClB,GAA4B,EAAoB,MAChD,EAAoB,YAAY,EAAoB,KAAK,aAAa,CACxE,EACM,EAAe,EACnB,GAA4B,EAAoB,MAChD,EAAoB,kBAAkB,EAAe,EAAoB,IAAI,CAAC,CAAC,EAAE,CACnF,EAEM,EAAY,EAAyB,EACrC,EAAU,EAAoC,EAAe,cAAc,EAAM,GAAI,EAAY,YAAY,CAAC,EAE9G,EAAgB,EAAoB,CACxC,MAAO,EAAoB,KAC3B,QAAS,EAAM,YAAY,QAC3B,UAAW,EAAM,YAAY,UAC7B,YAAa,EAAM,YAAY,IAC/B,YAAa,EAAY,IAC3B,CAAC,EAMK,CACJ,mBACA,gCACE,EAAoB,CAAE,gBAPF,EACtB,EAAgB,mBAChB,EAAgB,gBAKyB,IAAK,EAAM,YAAY,GAAI,CAAC,EAEvE,EAAa,CAAE,GAAI,EAAM,GAAI,IAAK,cAAe,CAAC,EAElD,EAAqB,EAAqB,EAAa,CAAE,UAAW,EAAK,CAAC,EAC1E,EAAsB,CAA2B,EACjD,EAAmB,EAAmB,uBAAuB,CAAE,QAAS,EAAoB,IAAK,CAAC,CAAC,EAEnG,EAAc,EAAc,QAAU,CAAC,CAAC,EAExC,IAAM,EAAc,EAAe,CAAE,KAAM,EAAoB,MAAM,IAAK,CAAC,EAiC3E,OA9BE,EAAoB,MACpB,EAAO,cACP,EAAY,eACX,CAAC,GAA4B,EAAY,eAC1C,EAAQ,cACR,EAAM,cACN,EAME,GAEA,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,YAAa,EAAY,KACzB,YAAa,EAAM,YACnB,YAAa,EAAoB,KACjC,aAAc,EAAa,MAAM,KACjC,iCAAkC,EAAY,KAAK,iBACnD,UAAW,EAAU,KACN,gBACf,qBAAsB,EAAe,EAAe,iBAAiB,EACxD,cACb,MAAO,EAAM,KACK,kBACnB,CAAA,GAKH,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,YAAa,EAAoB,KACjC,YAAa,EAAY,KACzB,OAAQ,EAAO,KACf,WAAY,EAAW,KACvB,UAAW,EAAU,KACrB,YAAa,EAAM,YACnB,QAAS,EAAQ,KACF,gBACf,UAAW,EAAM,aAAa,GAAK,EAAM,aAAa,UACtD,MAAO,EAAM,KACK,kBACnB,CAAA,GAjCM,EAAA,EAAA,IAAA,CAAA,EAAA,SAAA,CAAI,CAAA,CAmCf"}
1
+ {"version":3,"file":"CCUznsdX2.chunk.js","names":[],"sources":["../../src/apps/interactives/views/interactive-view/InteractiveView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { Flight } from 'libs/common/flight';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { MediaIdType } from 'libs/shared/enums/MediaIdType';\nimport { PermissionFilterOption } from 'libs/shared/enums/PermissionFilterOption';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { VideoNotFoundError } from 'libs/shared/errors/videos/video-not-found/VideoNotFoundError';\nimport { VideoPrivateError } from 'libs/shared/errors/videos/video-private/VideoPrivateError';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { PlayerRequests } from 'libs/shared/flight-requests/PlayerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useBreadcrumbs } from 'libs/shared/hooks/useBreadcrumbs';\nimport { useCannotConsumeError } from 'libs/shared/hooks/useCannotConsumeError';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Clip, Config, CurrentUser, Interactive, InteractiveCollection, InteractiveMetadata, PlayerViewKey, Video, YearGroup } from 'libs/shared/interfaces';\nimport { AuthToken } from 'libs/shared/interfaces/models/AuthToken';\nimport { PlayViewQueryParams } from 'libs/shared/interfaces/query-params/PlayViewQueryParams';\nimport { PageMetadataHelper } from 'libs/shared/utils/PageMetadataHelper';\n\nimport { useCommonVideoProps } from 'shared/hooks/useCommonVideoProps';\nimport { useDeepLinks } from 'shared/hooks/useDeepLinks';\nimport { useGetRelatedVideos } from 'shared/hooks/useGetRelatedVideos';\nimport { usePresentationAudiences } from 'shared/hooks/usePresentationAudiences';\nimport { useShouldPreviewInteractive } from 'shared/hooks/useShouldPreviewInteractive';\nimport { useVideoMixin } from 'shared/hooks/useVideoMixin';\n\nimport { PlayInteractive } from 'apps/interactives/components/play-interactive/PlayInteractive';\nimport { PreviewInteractive } from 'apps/interactives/components/preview-interactive/PreviewInteractive';\n\nconst videoErrors = {\n notFound: VideoNotFoundError,\n forbidden: {\n privacy: VideoPrivateError\n }\n};\n\nfunction getSourceVideo(interactive?: InteractiveMetadata): Clip | Video {\n return interactive?._parentClip || interactive?._parentVideo;\n}\ninterface InteractiveViewProps {\n id: string;\n queryParams: PlayViewQueryParams;\n}\n\nexport function InteractiveView(props: InteractiveViewProps): JSX.Element {\n const { hasPermissions } = usePermissions();\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const token = Flight.useBasicFetch<AuthToken>(UserRequests.token());\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data?.isAuthenticated && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n\n const interactiveMetadata = Flight.useBasicFetch<InteractiveMetadata>(\n InteractiveRequests.interactiveMetadata(props.id)\n );\n const shouldPreviewInteractive = useShouldPreviewInteractive();\n const strippedInteractiveMetadata = Flight.useBasicFetch<InteractiveMetadata>(\n interactiveMetadata.statusCode === HttpStatus.Forbidden &&\n InteractiveRequests.interactiveMetadata(props.id, PermissionFilterOption.StripMetadata)\n );\n const interactive = Flight.useBasicFetch<Interactive>(\n shouldPreviewInteractive && interactiveMetadata.data &&\n InteractiveRequests.interactive(interactiveMetadata.data.interactiveId)\n );\n const interactives = Flight.useBasicFetch<InteractiveCollection>(\n shouldPreviewInteractive && interactiveMetadata.data &&\n InteractiveRequests.videoInteractives(getSourceVideo(interactiveMetadata.data).id)\n );\n \n const audiences = usePresentationAudiences();\n const viewKey = Flight.useBasicFetch<PlayerViewKey>(PlayerRequests.createViewKey(props.id, MediaIdType.MasterObject));\n\n const relatedVideos = useGetRelatedVideos({\n video: interactiveMetadata.data,\n context: props.queryParams.context,\n contextId: props.queryParams.contextId,\n moviesAndTv: props.queryParams.mtv,\n currentUser: currentUser.data\n });\n\n const locationContext = shouldPreviewInteractive ?\n LocationContext.PreviewInteractive :\n LocationContext.PlayInteractive;\n \n const {\n commonVideoProps,\n hasCommonVideoPropsCompleted\n } = useCommonVideoProps({ locationContext, mtv: props.queryParams.mtv });\n\n useDeepLinks({ id: props.id, app: 'interactives' });\n\n useHandleObjectError(interactiveMetadata, videoErrors, { forbidden: true });\n useCannotConsumeError(strippedInteractiveMetadata);\n useSetPageMetadata(PageMetadataHelper.getInteractiveMetadata({ content: interactiveMetadata.data }));\n\n useVideoMixin(relatedVideos.videos ?? []);\n\n const breadcrumbs = useBreadcrumbs({ name: interactiveMetadata.data?.name });\n\n const hasLoaded = (\n interactiveMetadata.data &&\n config.hasCompleted &&\n currentUser.hasCompleted &&\n (!shouldPreviewInteractive || interactive.hasCompleted) &&\n viewKey.hasCompleted &&\n token.hasCompleted &&\n hasCommonVideoPropsCompleted\n );\n\n if (!hasLoaded)\n return <></>;\n\n if (shouldPreviewInteractive) {\n return (\n <PreviewInteractive\n currentUser={currentUser.data}\n queryParams={props.queryParams}\n interactive={interactiveMetadata.data}\n interactives={interactives.data?.data}\n isPreviewPreventScrubbingEnabled={interactive.data.preventScrubbing}\n audiences={audiences.data}\n relatedVideos={relatedVideos}\n canManageVideoAccess={hasPermissions(PermissionName.ManageVideoAccess)}\n breadcrumbs={breadcrumbs}\n token={token.data}\n commonVideoProps={commonVideoProps}\n />\n );\n }\n\n return (\n <PlayInteractive\n interactive={interactiveMetadata.data}\n currentUser={currentUser.data}\n config={config.data}\n yearGroups={yearGroups.data}\n audiences={audiences.data}\n queryParams={props.queryParams}\n viewKey={viewKey.data}\n relatedVideos={relatedVideos}\n startTime={props.queryParams?.t ?? props.queryParams?.startTime}\n token={token.data}\n commonVideoProps={commonVideoProps}\n />\n );\n}\n"],"mappings":"ujCAqCM,EAAc,CAClB,SAAU,EACV,UAAW,CACT,QAAS,CACX,CACF,EAEA,SAAS,EAAe,EAAiD,CACvE,OAAO,GAAa,aAAe,GAAa,YAClD,CAMA,SAAgB,EAAgB,EAA0C,CACxE,GAAM,CAAE,kBAAmB,EAAe,EAEpC,EAAS,EAA6B,EAAe,OAAO,CAAC,EAC7D,EAAQ,EAAgC,EAAa,MAAM,CAAC,EAC5D,EAAc,EAAkC,EAAa,YAAY,CAAC,EAC1E,EAAa,EACjB,EAAY,MAAM,iBAAmB,EAAiB,WAAW,EAAY,KAAK,UAAU,CAC9F,EAEM,EAAsB,EAC1B,EAAoB,oBAAoB,EAAM,EAAE,CAClD,EACM,EAA2B,EAA4B,EACvD,EAA8B,EAClC,EAAoB,aAAe,EAAW,WAC5C,EAAoB,oBAAoB,EAAM,GAAI,EAAuB,aAAa,CAC1F,EACM,EAAc,EAClB,GAA4B,EAAoB,MAChD,EAAoB,YAAY,EAAoB,KAAK,aAAa,CACxE,EACM,EAAe,EACnB,GAA4B,EAAoB,MAChD,EAAoB,kBAAkB,EAAe,EAAoB,IAAI,CAAC,CAAC,EAAE,CACnF,EAEM,EAAY,EAAyB,EACrC,EAAU,EAAoC,EAAe,cAAc,EAAM,GAAI,EAAY,YAAY,CAAC,EAE9G,EAAgB,EAAoB,CACxC,MAAO,EAAoB,KAC3B,QAAS,EAAM,YAAY,QAC3B,UAAW,EAAM,YAAY,UAC7B,YAAa,EAAM,YAAY,IAC/B,YAAa,EAAY,IAC3B,CAAC,EAMK,CACJ,mBACA,gCACE,EAAoB,CAAE,gBAPF,EACtB,EAAgB,mBAChB,EAAgB,gBAKyB,IAAK,EAAM,YAAY,GAAI,CAAC,EAEvE,EAAa,CAAE,GAAI,EAAM,GAAI,IAAK,cAAe,CAAC,EAElD,EAAqB,EAAqB,EAAa,CAAE,UAAW,EAAK,CAAC,EAC1E,EAAsB,CAA2B,EACjD,EAAmB,EAAmB,uBAAuB,CAAE,QAAS,EAAoB,IAAK,CAAC,CAAC,EAEnG,EAAc,EAAc,QAAU,CAAC,CAAC,EAExC,IAAM,EAAc,EAAe,CAAE,KAAM,EAAoB,MAAM,IAAK,CAAC,EAiC3E,OA9BE,EAAoB,MACpB,EAAO,cACP,EAAY,eACX,CAAC,GAA4B,EAAY,eAC1C,EAAQ,cACR,EAAM,cACN,EAME,GAEA,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,YAAa,EAAY,KACzB,YAAa,EAAM,YACnB,YAAa,EAAoB,KACjC,aAAc,EAAa,MAAM,KACjC,iCAAkC,EAAY,KAAK,iBACnD,UAAW,EAAU,KACN,gBACf,qBAAsB,EAAe,EAAe,iBAAiB,EACxD,cACb,MAAO,EAAM,KACK,kBACnB,CAAA,GAKH,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,YAAa,EAAoB,KACjC,YAAa,EAAY,KACzB,OAAQ,EAAO,KACf,WAAY,EAAW,KACvB,UAAW,EAAU,KACrB,YAAa,EAAM,YACnB,QAAS,EAAQ,KACF,gBACf,UAAW,EAAM,aAAa,GAAK,EAAM,aAAa,UACtD,MAAO,EAAM,KACK,kBACnB,CAAA,GAjCM,EAAA,EAAA,IAAA,CAAA,EAAA,SAAA,CAAI,CAAA,CAmCf"}
@@ -1,3 +1,3 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["scripts/BhgNNQjX.chunk.js","scripts/DAXXjFlN.chunk.js","scripts/BftnFbcr.chunk.js","scripts/CMDJWWg3.chunk.js","scripts/DPtsihFR.chunk.js","scripts/DMnm3Ewv.chunk.js","scripts/C2w0pmFW.chunk.js","scripts/wrLrTezN.chunk.js","scripts/NlCAcBdo.chunk.js","scripts/DC8Dg20g.chunk.js","scripts/D8uRDrkd.chunk.js","scripts/e57H3T-k.chunk.js","scripts/BVnMI-dl.chunk.js","scripts/J0QUvPGS.chunk.js","scripts/wdQVW3s52.chunk.js","scripts/BGGL8m_U2.chunk.js","scripts/B_N30_Kb.chunk.js","scripts/rPN1bfU12.chunk.js","scripts/BIzu5ufQ.chunk.js","scripts/CVHQXNzi2.chunk.js","scripts/CYEpX3hx.chunk.js","scripts/Bbp2U9GK2.chunk.js","scripts/Ci5E3nqm2.chunk.js","css/9awfngRG.chunk.css","scripts/B2INd6bh.chunk.js","scripts/5ONJSThP.chunk.js","scripts/C7HU4huj.chunk.js","scripts/Sd2yzkH_.chunk.js","css/DVhPtkT7.chunk.css","scripts/WvK58Ge12.chunk.js","scripts/D3-wtcxf2.chunk.js","scripts/B3fF5gkg.chunk.js","scripts/M7cfXU2L.chunk.js","scripts/CQyJ7YGa.chunk.js","scripts/BDwjs8qz2.chunk.js","scripts/BBEIIgZ6.chunk.js","css/BgzV9aK4.chunk.css","scripts/B5tW47L4.chunk.js","scripts/YjWbDb2Y.chunk.js","scripts/BRcHS92O2.chunk.js","scripts/Tr5-kahg2.chunk.js","scripts/DZX1tZ-D2.chunk.js","scripts/DSuhq1Rt2.chunk.js","scripts/BlGyXBAH2.chunk.js","scripts/Dc1hYuQ12.chunk.js","css/CuSUr3Gp.chunk.css","css/D5JKYURg.chunk.css","scripts/C0EHsOU6.chunk.js","css/DBshtiPC.chunk.css","scripts/DXRsxBJw.chunk.js","scripts/c7DC36s9.chunk.js","scripts/cUqRbWT7.chunk.js","scripts/BYSskNbK.chunk.js","scripts/FAs_d-DP.chunk.js","scripts/Bzihudtn.chunk.js","scripts/BFXddaSP.chunk.js","scripts/B3TDTJSl.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/9LNlP5yJ.chunk.js","scripts/C0exjRXJ2.chunk.js","css/zFl67mql.chunk.css","scripts/CXnhm0VS2.chunk.js","scripts/iZ7EqNA72.chunk.js","scripts/OL3Z6Yp62.chunk.js","scripts/TTO6HcNP.chunk.js","scripts/BJUbYu222.chunk.js","scripts/BBDxSGT52.chunk.js","scripts/DqM363Cd.chunk.js","scripts/DUXPuDp7.chunk.js","scripts/CdYjo8_g.chunk.js","scripts/CbOJtYeK.chunk.js","scripts/BY2ETYCl.chunk.js","scripts/B6bB9two.chunk.js","scripts/CF6KXSqn.chunk.js","scripts/C1SLt-ar.chunk.js","scripts/CpFtf-tI2.chunk.js","scripts/CKOWgMyj.chunk.js","scripts/D5yUWL7p.chunk.js","scripts/Dy3xpenS.chunk.js","scripts/CcDvlSWl2.chunk.js","scripts/Bkr6FS4c.chunk.js","scripts/BX0wDJmp.chunk.js","scripts/BruX4yYB.chunk.js","scripts/oPIkfKWW2.chunk.js","scripts/B785hxeE.chunk.js","scripts/Ky1--4w3.chunk.js","scripts/CZgWQFsJ.chunk.js","scripts/BGswYbRT.chunk.js","scripts/B9VCwo3g2.chunk.js","scripts/DsBWAM3I2.chunk.js","scripts/QDUcHuL-2.chunk.js","scripts/Cr6TXzQQ2.chunk.js","scripts/CjA4Q5pm.chunk.js","scripts/CmcCVXi32.chunk.js","scripts/BcibGFe42.chunk.js","scripts/DCBtWC6W.chunk.js","scripts/DYKH_3un.chunk.js","scripts/CunDpHqX.chunk.js","css/0ZqRj7up.chunk.css","scripts/CvLLqEKv.chunk.js","scripts/DIENjKhZ.chunk.js","css/D2t3ESms.chunk.css","scripts/B_9JhhOa.chunk.js","scripts/BPavmm8c.chunk.js","css/DnhOr8Y7.chunk.css","scripts/CnnDkGmK.chunk.js","scripts/C3Wa868y.chunk.js","css/DvO5Hl4o.chunk.css","scripts/BXosUOUS.chunk.js","scripts/DfSzsD3P.chunk.js","scripts/lhZ5v-iN2.chunk.js","css/BU5l8u5C.chunk.css","scripts/BiKac8UT2.chunk.js","scripts/CO8EIpI8.chunk.js","scripts/_OaXdAO8.chunk.js","scripts/CsF4wDV1.chunk.js","scripts/bWC12YrP.chunk.js","scripts/DlEtkSBj2.chunk.js","scripts/DW-fYtM02.chunk.js","scripts/BVk9tE02.chunk.js","scripts/dEqScqMh2.chunk.js","scripts/BDpRhbS0.chunk.js","scripts/CX9P14FO.chunk.js","scripts/DgRi9T0s.chunk.js","scripts/AEgPyCQE.chunk.js","scripts/CuVGnzB82.chunk.js","scripts/CvNHBl0q2.chunk.js","scripts/D1EthTiX.chunk.js","scripts/ChPM4MoX.chunk.js","scripts/BM2EJL9g.chunk.js","scripts/CODiipiB.chunk.js","scripts/-Plmz9lO.chunk.js","scripts/CXVBjdpb.chunk.js","scripts/gl4k7dtw.chunk.js","scripts/CfkLy0le.chunk.js","scripts/_jJAx6fU.chunk.js","scripts/CLjADRa42.chunk.js","css/U15R5cX6.chunk.css"])))=>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"./CZgWQFsJ.chunk.js";import{t as a}from"./D_gWf2lC.chunk.js";var o=e(t()),s={embeddedPlayer:`_embeddedPlayer_1cqbo_1`,placeholder:`_placeholder_1cqbo_8`},c=n();function l(e){let t=r(a.config()),n=t.hasCompleted,l=o.useMemo(()=>o.lazy(()=>i(()=>import(`./BhgNNQjX.chunk.js`),__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]))),[]);if(!n)return(0,c.jsx)(c.Fragment,{});let u=l;return(0,c.jsx)(o.Suspense,{fallback:(0,c.jsx)(`div`,{className:s.placeholder}),children:(0,c.jsx)(u,{viewKey:e.viewKey,playerApi:new URL(t.data.playerApiUrl),imageCdnUrl:t.data.imageCdnUrl,autoplay:!0,embed:!0,hotkeyElQuerySelector:`body`,className:s.embeddedPlayer})})}export{l as SmartEmbedView};
3
- //# sourceMappingURL=BsNCh4UD.chunk.js.map
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["scripts/BOQck-Qs.chunk.js","scripts/DAXXjFlN.chunk.js","scripts/BftnFbcr.chunk.js","scripts/CMDJWWg3.chunk.js","scripts/DPtsihFR.chunk.js","scripts/DMnm3Ewv.chunk.js","scripts/C2w0pmFW.chunk.js","scripts/wrLrTezN.chunk.js","scripts/NlCAcBdo.chunk.js","scripts/DC8Dg20g.chunk.js","scripts/D8uRDrkd.chunk.js","scripts/e57H3T-k.chunk.js","scripts/BVnMI-dl.chunk.js","scripts/J0QUvPGS.chunk.js","scripts/wdQVW3s52.chunk.js","scripts/BGGL8m_U2.chunk.js","scripts/B_N30_Kb.chunk.js","scripts/rPN1bfU12.chunk.js","scripts/BIzu5ufQ.chunk.js","scripts/CVHQXNzi2.chunk.js","scripts/CYEpX3hx.chunk.js","scripts/Bbp2U9GK2.chunk.js","scripts/Ci5E3nqm2.chunk.js","css/9awfngRG.chunk.css","scripts/B2INd6bh.chunk.js","scripts/5ONJSThP.chunk.js","scripts/C7HU4huj.chunk.js","scripts/Sd2yzkH_.chunk.js","css/DVhPtkT7.chunk.css","scripts/WvK58Ge12.chunk.js","scripts/D3-wtcxf2.chunk.js","scripts/B3fF5gkg.chunk.js","scripts/M7cfXU2L.chunk.js","scripts/CQyJ7YGa.chunk.js","scripts/BDwjs8qz2.chunk.js","scripts/BBEIIgZ6.chunk.js","css/BgzV9aK4.chunk.css","scripts/B5tW47L4.chunk.js","scripts/YjWbDb2Y.chunk.js","scripts/BRcHS92O2.chunk.js","scripts/Tr5-kahg2.chunk.js","scripts/DZX1tZ-D2.chunk.js","scripts/DSuhq1Rt2.chunk.js","scripts/BlGyXBAH2.chunk.js","scripts/Dc1hYuQ12.chunk.js","css/CuSUr3Gp.chunk.css","css/D5JKYURg.chunk.css","scripts/C0EHsOU6.chunk.js","css/DBshtiPC.chunk.css","scripts/DTliAJ8L.chunk.js","scripts/c7DC36s9.chunk.js","scripts/cUqRbWT7.chunk.js","scripts/BYSskNbK.chunk.js","scripts/FAs_d-DP.chunk.js","scripts/Bzihudtn.chunk.js","scripts/BFXddaSP.chunk.js","scripts/B3TDTJSl.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/9LNlP5yJ.chunk.js","scripts/C0exjRXJ2.chunk.js","css/zFl67mql.chunk.css","scripts/CXnhm0VS2.chunk.js","scripts/iZ7EqNA72.chunk.js","scripts/OL3Z6Yp62.chunk.js","scripts/TTO6HcNP.chunk.js","scripts/BJUbYu222.chunk.js","scripts/BBDxSGT52.chunk.js","scripts/DqM363Cd.chunk.js","scripts/DUXPuDp7.chunk.js","scripts/CdYjo8_g.chunk.js","scripts/CbOJtYeK.chunk.js","scripts/BY2ETYCl.chunk.js","scripts/B6bB9two.chunk.js","scripts/CF6KXSqn.chunk.js","scripts/C1SLt-ar.chunk.js","scripts/CpFtf-tI2.chunk.js","scripts/CKOWgMyj.chunk.js","scripts/D5yUWL7p.chunk.js","scripts/Dy3xpenS.chunk.js","scripts/CcDvlSWl2.chunk.js","scripts/Bkr6FS4c.chunk.js","scripts/BX0wDJmp.chunk.js","scripts/BruX4yYB.chunk.js","scripts/oPIkfKWW2.chunk.js","scripts/B785hxeE.chunk.js","scripts/Ky1--4w3.chunk.js","scripts/CZgWQFsJ.chunk.js","scripts/BGswYbRT.chunk.js","scripts/B9VCwo3g2.chunk.js","scripts/DsBWAM3I2.chunk.js","scripts/QDUcHuL-2.chunk.js","scripts/Cr6TXzQQ2.chunk.js","scripts/CjA4Q5pm.chunk.js","scripts/CmcCVXi32.chunk.js","scripts/BcibGFe42.chunk.js","scripts/DCBtWC6W.chunk.js","scripts/DYKH_3un.chunk.js","scripts/CunDpHqX.chunk.js","css/0ZqRj7up.chunk.css","scripts/CvLLqEKv.chunk.js","scripts/DIENjKhZ.chunk.js","css/D2t3ESms.chunk.css","scripts/B_9JhhOa.chunk.js","scripts/BPavmm8c.chunk.js","css/DnhOr8Y7.chunk.css","scripts/CnnDkGmK.chunk.js","scripts/C3Wa868y.chunk.js","css/DvO5Hl4o.chunk.css","scripts/14z5Gy8L.chunk.js","scripts/FysETOFv.chunk.js","scripts/lhZ5v-iN2.chunk.js","css/BU5l8u5C.chunk.css","scripts/BiKac8UT2.chunk.js","scripts/CXUrMkZu.chunk.js","scripts/_OaXdAO8.chunk.js","scripts/CsF4wDV1.chunk.js","scripts/bWC12YrP.chunk.js","scripts/DlEtkSBj2.chunk.js","scripts/DW-fYtM02.chunk.js","scripts/BVk9tE02.chunk.js","scripts/dEqScqMh2.chunk.js","scripts/BDpRhbS0.chunk.js","scripts/CX9P14FO.chunk.js","scripts/DgRi9T0s.chunk.js","scripts/AEgPyCQE.chunk.js","scripts/CuVGnzB82.chunk.js","scripts/CvNHBl0q2.chunk.js","scripts/D1EthTiX.chunk.js","scripts/ChPM4MoX.chunk.js","scripts/BM2EJL9g.chunk.js","scripts/CODiipiB.chunk.js","scripts/-Plmz9lO.chunk.js","scripts/CXVBjdpb.chunk.js","scripts/gl4k7dtw.chunk.js","scripts/CfkLy0le.chunk.js","scripts/_jJAx6fU.chunk.js","scripts/CLjADRa42.chunk.js","css/U15R5cX6.chunk.css"])))=>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"./CZgWQFsJ.chunk.js";import{t as a}from"./D_gWf2lC.chunk.js";var o=e(t()),s={embeddedPlayer:`_embeddedPlayer_1cqbo_1`,placeholder:`_placeholder_1cqbo_8`},c=n();function l(e){let t=r(a.config()),n=t.hasCompleted,l=o.useMemo(()=>o.lazy(()=>i(()=>import(`./BOQck-Qs.chunk.js`),__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]))),[]);if(!n)return(0,c.jsx)(c.Fragment,{});let u=l;return(0,c.jsx)(o.Suspense,{fallback:(0,c.jsx)(`div`,{className:s.placeholder}),children:(0,c.jsx)(u,{viewKey:e.viewKey,playerApi:new URL(t.data.playerApiUrl),imageCdnUrl:t.data.imageCdnUrl,autoplay:!0,embed:!0,hotkeyElQuerySelector:`body`,className:s.embeddedPlayer})})}export{l as SmartEmbedView};
3
+ //# sourceMappingURL=CFqL2Hm5.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"mappings":";8UAgBA,SAAgB,EAAe,EAAyC,CACtE,IAAM,EAAS,EAA6B,EAAe,OAAO,CAAC,EAE7D,EACJ,EAAO,aAGH,IAAmB,cAAoB,eAAW,OAAO,wfAA+B,EAAG,CAAC,CAAC,EAEnG,GAAI,CAAC,EACH,OAAO,qBAAI,GAEb,IAAM,EAAS,EACf,OACE,WAAO,SAAP,CAAgB,UAAU,SAAC,MAAD,CAAK,UAAW,EAAO,WAAc,aAC7D,SAAC,EAAD,CAEE,QAAS,EAAM,QACf,UAAW,IAAI,IAAI,EAAO,KAAK,YAAY,EAC3C,YAAa,EAAO,KAAK,YAGzB,YACA,SAGA,sBAAsB,OACtB,UAAW,EAAO,cACnB,EACa,EAEpB","names":[],"ignoreList":[],"sources":["../../src/apps/embed/views/smart-embed/SmartEmbedView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { Config } from 'libs/shared/interfaces';\n\nimport type { ClickViewPlayer } from 'projects/player/react/Player';\n\nimport styles from './smart-embed.module.scss';\n\ninterface SmartEmbedViewProps {\n viewKey: string;\n}\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function SmartEmbedView(props: SmartEmbedViewProps): JSX.Element {\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n const hasLoaded = (\n config.hasCompleted\n );\n\n const LazyPlayer = React.useMemo(() => React.lazy(() => import('projects/player/react/Player')), []);\n\n if (!hasLoaded)\n return <></>;\n\n const Player = LazyPlayer as typeof ClickViewPlayer;\n return (\n <React.Suspense fallback={<div className={styles.placeholder} />}>\n <Player\n // Fetched\n viewKey={props.viewKey}\n playerApi={new URL(config.data.playerApiUrl)}\n imageCdnUrl={config.data.imageCdnUrl}\n\n // Options\n autoplay\n embed\n\n // Static\n hotkeyElQuerySelector='body'\n className={styles.embeddedPlayer}\n />\n </React.Suspense>\n );\n}\n"],"file":"BsNCh4UD.chunk.js"}
1
+ {"version":3,"mappings":";8UAgBA,SAAgB,EAAe,EAAyC,CACtE,IAAM,EAAS,EAA6B,EAAe,OAAO,CAAC,EAE7D,EACJ,EAAO,aAGH,IAAmB,cAAoB,eAAW,OAAO,wfAA+B,EAAG,CAAC,CAAC,EAEnG,GAAI,CAAC,EACH,OAAO,qBAAI,GAEb,IAAM,EAAS,EACf,OACE,WAAO,SAAP,CAAgB,UAAU,SAAC,MAAD,CAAK,UAAW,EAAO,WAAc,aAC7D,SAAC,EAAD,CAEE,QAAS,EAAM,QACf,UAAW,IAAI,IAAI,EAAO,KAAK,YAAY,EAC3C,YAAa,EAAO,KAAK,YAGzB,YACA,SAGA,sBAAsB,OACtB,UAAW,EAAO,cACnB,EACa,EAEpB","names":[],"ignoreList":[],"sources":["../../src/apps/embed/views/smart-embed/SmartEmbedView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { Config } from 'libs/shared/interfaces';\n\nimport type { ClickViewPlayer } from 'projects/player/react/Player';\n\nimport styles from './smart-embed.module.scss';\n\ninterface SmartEmbedViewProps {\n viewKey: string;\n}\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function SmartEmbedView(props: SmartEmbedViewProps): JSX.Element {\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n const hasLoaded = (\n config.hasCompleted\n );\n\n const LazyPlayer = React.useMemo(() => React.lazy(() => import('projects/player/react/Player')), []);\n\n if (!hasLoaded)\n return <></>;\n\n const Player = LazyPlayer as typeof ClickViewPlayer;\n return (\n <React.Suspense fallback={<div className={styles.placeholder} />}>\n <Player\n // Fetched\n viewKey={props.viewKey}\n playerApi={new URL(config.data.playerApiUrl)}\n imageCdnUrl={config.data.imageCdnUrl}\n\n // Options\n autoplay\n embed\n\n // Static\n hotkeyElQuerySelector='body'\n className={styles.embeddedPlayer}\n />\n </React.Suspense>\n );\n}\n"],"file":"CFqL2Hm5.chunk.js"}
@@ -1,2 +1,2 @@
1
- import{o as e}from"./DAXXjFlN.chunk.js";import{_ as t,y as n}from"./BftnFbcr.chunk.js";import{t as r}from"./CQyJ7YGa.chunk.js";import{t as i}from"./CPKixrGf.chunk.js";import{t as a}from"./C2w0pmFW.chunk.js";import{t as o}from"./wrLrTezN.chunk.js";import{t as s}from"./BXTI9cmX.chunk.js";import{r as c,u as l,v as u}from"./BX0wDJmp.chunk.js";import{U as d,l as f,y as p,z as m}from"./NlCAcBdo.chunk.js";import{t as h}from"./oPIkfKWW2.chunk.js";import{t as g}from"./CcDvlSWl2.chunk.js";import{t as _}from"./BDwjs8qz2.chunk.js";import{t as v}from"./8U-YTgZd.chunk.js";import{t as y}from"./DdsRCMkN.chunk.js";import{t as b}from"./D_gWf2lC.chunk.js";import{t as x}from"./CYEpX3hx.chunk.js";import{t as S}from"./A8xLZrSw.chunk.js";import{n as C,t as w}from"./BGhJ8TEx.chunk.js";import{t as T}from"./POQS3gV6.chunk.js";import{t as E}from"./CYuozvgN2.chunk.js";import{t as D}from"./CjGfwvo12.chunk.js";import{n as O,r as k}from"./BGswYbRT.chunk.js";import{t as A}from"./D0n6BTgT.chunk.js";import{t as j}from"./CyQQ1zIG.chunk.js";import{t as M}from"./B4aT7OU0.chunk.js";import{ClickViewInteractivePlayer as N,t as P}from"./DE5jvfAx2.chunk.js";import{t as F}from"./DJXt6rKd2.chunk.js";var I=e(a(),1),L=`shared.cannotEditPublishedInteractive`,R=class extends i{constructor(){super(r.getPhrase(L,`title`))}get name(){return`CannotEditPublishedInteractiveError`}get heading(){return r.getPhrase(L,`heading`)}get description(){return r.getPhrase(L,`description`)}},z=`shared.cannotEditInteractive`,B=class extends i{constructor(){super(r.getPhrase(z,`title`))}get name(){return`CannnotEditInteractiveError`}get heading(){return r.getPhrase(z,`heading`)}get description(){return r.getPhrase(z,`description`)}},V=e=>{let n=u(),[r,i]=I.useState(!1),[a,o]=I.useState(!1);return I.useEffect(()=>{if(!e||a||r)return;if(e.originType===j.Original){o(!0);return}let s=()=>{t.throw(new B)};i(!0),c(n,v.copyInteractive(e.interactiveId,t=>{let r={originType:j.Original,interactiveId:t.id};c(n,v.updateInteractiveMetadata(e.id,r,()=>o(!0),s))},s))},[e]),a},H=o(),U=r.encloseNamespace(`interactives.editInteractiveView`),W={application:s.INTERACTIVES,action:y.Interactives.EDIT_INTERACTIVE_DETAILS},G={notFound:D,forbidden:{privacy:T}};function K(e){let[r,i]=I.useState(!1),[a,o]=I.useState(!1),s=I.useRef(null),{experimentalInteractiveQuestions:c}=g(null),u=l(b.config()),y=l(h.currentUser()),T=l(!!y.data&&v.interactiveMetadata(e.id));S({title:T.data?U(`pageTitle`,{name:T.data.name}):null});let D=l(V(T.data)?w.createViewKey(T.data.id,C.MasterObject):null),j=l(h.token()),L=I.useMemo(()=>k(),[]),z=I.useMemo(()=>k(),[]),B=I.useRef(null);A(T,G);function K(e){s.current=e,i(!0),B.current=new E({player:e,video:T.data,analyticsLocation:p.EditInteractive})}if(!D.data||!u.data||!T.data||!j.data)return(0,H.jsx)(F,{});if(!a&&(o(!0),T.data.status!==_.Draft))return t.throw(new R),null;let q=M(T.data),J={entity:f.Interactive,location:p.EditInteractive,workflowPhase:d.Start};function Y(){x.logUserAction(q,{actionType:m.Edit,...J}),n.trigger({...W,args:[e.id]})}function X(){x.logUserAction(q,{actionType:m.Publish,...J}),n.trigger({...W,args:[e.id],params:{publish:!0}})}return(0,H.jsxs)(H.Fragment,{children:[!r&&(0,H.jsx)(F,{}),(0,H.jsxs)(`div`,{className:`px-3 ${r?``:`d-none`}`,children:[(0,H.jsxs)(`div`,{className:`d-flex justify-content-between align-items-center mb-3`,children:[(0,H.jsx)(`h1`,{className:`h3 text-truncate mb-0 pb-1`,children:T.data.name}),(0,H.jsx)(`div`,{className:`flex-shrink-0`,children:(0,H.jsx)(O,{node:L})})]}),(0,H.jsx)(N,{viewKey:D.data.viewKey,imageApi:new URL(u.data.imageCdnUrl),playerApi:new URL(u.data.playerApiUrl),hotkeyElQuerySelector:`body`,autoplay:!0,onReady:K,currentUser:y.data,mode:P.Create,actionsPortalNode:L,questionListPortalNode:z,authToken:j.data.value,onClickEditDetails:Y,onClickPublish:X,enableImmersiveReader:!0,experimentalInteractiveQuestions:c}),(0,H.jsx)(O,{node:z})]})]})}export{K as EditInteractiveView};
2
- //# sourceMappingURL=BE8Ze3Fa2.chunk.js.map
1
+ import{o as e}from"./DAXXjFlN.chunk.js";import{_ as t,y as n}from"./BftnFbcr.chunk.js";import{t as r}from"./CQyJ7YGa.chunk.js";import{t as i}from"./CPKixrGf.chunk.js";import{t as a}from"./C2w0pmFW.chunk.js";import{t as o}from"./wrLrTezN.chunk.js";import{t as s}from"./BXTI9cmX.chunk.js";import{r as c,u as l,v as u}from"./BX0wDJmp.chunk.js";import{U as d,l as f,y as p,z as m}from"./NlCAcBdo.chunk.js";import{t as h}from"./oPIkfKWW2.chunk.js";import{t as g}from"./CcDvlSWl2.chunk.js";import{t as _}from"./BDwjs8qz2.chunk.js";import{t as v}from"./8U-YTgZd.chunk.js";import{t as y}from"./DdsRCMkN.chunk.js";import{t as b}from"./D_gWf2lC.chunk.js";import{t as x}from"./CYEpX3hx.chunk.js";import{t as S}from"./A8xLZrSw.chunk.js";import{n as C,t as w}from"./BGhJ8TEx.chunk.js";import{t as T}from"./POQS3gV6.chunk.js";import{t as E}from"./CYuozvgN2.chunk.js";import{t as D}from"./CjGfwvo12.chunk.js";import{n as O,r as k}from"./BGswYbRT.chunk.js";import{t as A}from"./D0n6BTgT.chunk.js";import{t as j}from"./CyQQ1zIG.chunk.js";import{t as M}from"./B4aT7OU0.chunk.js";import{ClickViewInteractivePlayer as N,t as P}from"./D_t70KgV2.chunk.js";import{t as F}from"./DJXt6rKd2.chunk.js";var I=e(a(),1),L=`shared.cannotEditPublishedInteractive`,R=class extends i{constructor(){super(r.getPhrase(L,`title`))}get name(){return`CannotEditPublishedInteractiveError`}get heading(){return r.getPhrase(L,`heading`)}get description(){return r.getPhrase(L,`description`)}},z=`shared.cannotEditInteractive`,B=class extends i{constructor(){super(r.getPhrase(z,`title`))}get name(){return`CannnotEditInteractiveError`}get heading(){return r.getPhrase(z,`heading`)}get description(){return r.getPhrase(z,`description`)}},V=e=>{let n=u(),[r,i]=I.useState(!1),[a,o]=I.useState(!1);return I.useEffect(()=>{if(!e||a||r)return;if(e.originType===j.Original){o(!0);return}let s=()=>{t.throw(new B)};i(!0),c(n,v.copyInteractive(e.interactiveId,t=>{let r={originType:j.Original,interactiveId:t.id};c(n,v.updateInteractiveMetadata(e.id,r,()=>o(!0),s))},s))},[e]),a},H=o(),U=r.encloseNamespace(`interactives.editInteractiveView`),W={application:s.INTERACTIVES,action:y.Interactives.EDIT_INTERACTIVE_DETAILS},G={notFound:D,forbidden:{privacy:T}};function K(e){let[r,i]=I.useState(!1),[a,o]=I.useState(!1),s=I.useRef(null),{experimentalInteractiveQuestions:c}=g(null),u=l(b.config()),y=l(h.currentUser()),T=l(!!y.data&&v.interactiveMetadata(e.id));S({title:T.data?U(`pageTitle`,{name:T.data.name}):null});let D=l(V(T.data)?w.createViewKey(T.data.id,C.MasterObject):null),j=l(h.token()),L=I.useMemo(()=>k(),[]),z=I.useMemo(()=>k(),[]),B=I.useRef(null);A(T,G);function K(e){s.current=e,i(!0),B.current=new E({player:e,video:T.data,analyticsLocation:p.EditInteractive})}if(!D.data||!u.data||!T.data||!j.data)return(0,H.jsx)(F,{});if(!a&&(o(!0),T.data.status!==_.Draft))return t.throw(new R),null;let q=M(T.data),J={entity:f.Interactive,location:p.EditInteractive,workflowPhase:d.Start};function Y(){x.logUserAction(q,{actionType:m.Edit,...J}),n.trigger({...W,args:[e.id]})}function X(){x.logUserAction(q,{actionType:m.Publish,...J}),n.trigger({...W,args:[e.id],params:{publish:!0}})}return(0,H.jsxs)(H.Fragment,{children:[!r&&(0,H.jsx)(F,{}),(0,H.jsxs)(`div`,{className:`px-3 ${r?``:`d-none`}`,children:[(0,H.jsxs)(`div`,{className:`d-flex justify-content-between align-items-center mb-3`,children:[(0,H.jsx)(`h1`,{className:`h3 text-truncate mb-0 pb-1`,children:T.data.name}),(0,H.jsx)(`div`,{className:`flex-shrink-0`,children:(0,H.jsx)(O,{node:L})})]}),(0,H.jsx)(N,{viewKey:D.data.viewKey,imageApi:new URL(u.data.imageCdnUrl),playerApi:new URL(u.data.playerApiUrl),hotkeyElQuerySelector:`body`,autoplay:!0,onReady:K,currentUser:y.data,mode:P.Create,actionsPortalNode:L,questionListPortalNode:z,authToken:j.data.value,onClickEditDetails:Y,onClickPublish:X,enableImmersiveReader:!0,experimentalInteractiveQuestions:c}),(0,H.jsx)(O,{node:z})]})]})}export{K as EditInteractiveView};
2
+ //# sourceMappingURL=CHmbcl4Y2.chunk.js.map