@clickview/lite 0.103.0-rc.0 → 0.103.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.vite/manifest.json +447 -447
- package/dist/bundles.json +1 -1
- package/dist/en.json +1 -1
- package/dist/scripts/{BXosUOUS.chunk.js → 14z5Gy8L.chunk.js} +2 -2
- package/dist/scripts/{BXosUOUS.chunk.js.map → 14z5Gy8L.chunk.js.map} +1 -1
- package/dist/scripts/{BqkK_0Jk2.chunk.js → B4AZn1xm2.chunk.js} +2 -2
- package/dist/scripts/{BqkK_0Jk2.chunk.js.map → B4AZn1xm2.chunk.js.map} +1 -1
- package/dist/scripts/{_wBbQ-0z2.chunk.js → BBndy2td2.chunk.js} +2 -2
- package/dist/scripts/{_wBbQ-0z2.chunk.js.map → BBndy2td2.chunk.js.map} +1 -1
- package/dist/scripts/{DBdkd4Ag2.chunk.js → BFH_tnSb2.chunk.js} +3 -3
- package/dist/scripts/{DBdkd4Ag2.chunk.js.map → BFH_tnSb2.chunk.js.map} +1 -1
- package/dist/scripts/{BhgNNQjX.chunk.js → BOQck-Qs.chunk.js} +2 -2
- package/dist/scripts/{BhgNNQjX.chunk.js.map → BOQck-Qs.chunk.js.map} +1 -1
- package/dist/scripts/{_eRiDJm1.chunk.js → Ba4uGz_V.chunk.js} +2 -2
- package/dist/scripts/{_eRiDJm1.chunk.js.map → Ba4uGz_V.chunk.js.map} +1 -1
- package/dist/scripts/{Bx6qaXLc.chunk.js → Bdbe2u0R.chunk.js} +2 -2
- package/dist/scripts/{Bx6qaXLc.chunk.js.map → Bdbe2u0R.chunk.js.map} +1 -1
- package/dist/scripts/{C4CuJJXy2.chunk.js → BeW5XQTb2.chunk.js} +2 -2
- package/dist/scripts/{C4CuJJXy2.chunk.js.map → BeW5XQTb2.chunk.js.map} +1 -1
- package/dist/scripts/{syYCrnUX.chunk.js → BgoVmaXQ.chunk.js} +2 -2
- package/dist/scripts/{syYCrnUX.chunk.js.map → BgoVmaXQ.chunk.js.map} +1 -1
- package/dist/scripts/{B5DWwtp0.chunk.js → BjA9XV5y.chunk.js} +2 -2
- package/dist/scripts/{B5DWwtp0.chunk.js.map → BjA9XV5y.chunk.js.map} +1 -1
- package/dist/scripts/{BYMMqtaN.chunk.js → BqdHoEFM.chunk.js} +2 -2
- package/dist/scripts/{BYMMqtaN.chunk.js.map → BqdHoEFM.chunk.js.map} +1 -1
- package/dist/scripts/{BIvmcqND2.chunk.js → CCUznsdX2.chunk.js} +2 -2
- package/dist/scripts/{BIvmcqND2.chunk.js.map → CCUznsdX2.chunk.js.map} +1 -1
- package/dist/scripts/{BsNCh4UD.chunk.js → CFqL2Hm5.chunk.js} +3 -3
- package/dist/scripts/{BsNCh4UD.chunk.js.map → CFqL2Hm5.chunk.js.map} +1 -1
- package/dist/scripts/{BE8Ze3Fa2.chunk.js → CHmbcl4Y2.chunk.js} +2 -2
- package/dist/scripts/{BE8Ze3Fa2.chunk.js.map → CHmbcl4Y2.chunk.js.map} +1 -1
- package/dist/scripts/{Dp8z_udC.chunk.js → CIzlhCeS.chunk.js} +2 -2
- package/dist/scripts/{Dp8z_udC.chunk.js.map → CIzlhCeS.chunk.js.map} +1 -1
- package/dist/scripts/{CO8EIpI8.chunk.js → CXUrMkZu.chunk.js} +2 -2
- package/dist/scripts/{CO8EIpI8.chunk.js.map → CXUrMkZu.chunk.js.map} +1 -1
- package/dist/scripts/{DLqG-wwP.chunk.js → CYrelpYt.chunk.js} +2 -2
- package/dist/scripts/{DLqG-wwP.chunk.js.map → CYrelpYt.chunk.js.map} +1 -1
- package/dist/scripts/{wmwWqIeA.chunk.js → CfrfHGSh.chunk.js} +2 -2
- package/dist/scripts/{wmwWqIeA.chunk.js.map → CfrfHGSh.chunk.js.map} +1 -1
- package/dist/scripts/{B5M-3wpn.chunk.js → CjwT65ug.chunk.js} +2 -2
- package/dist/scripts/{B5M-3wpn.chunk.js.map → CjwT65ug.chunk.js.map} +1 -1
- package/dist/scripts/{B-aaIChO2.chunk.js → CsCjBSq62.chunk.js} +2 -2
- package/dist/scripts/{B-aaIChO2.chunk.js.map → CsCjBSq62.chunk.js.map} +1 -1
- package/dist/scripts/{ygwO7HPs2.chunk.js → DIaT_eGy2.chunk.js} +2 -2
- package/dist/scripts/{ygwO7HPs2.chunk.js.map → DIaT_eGy2.chunk.js.map} +1 -1
- package/dist/scripts/{DXRsxBJw.chunk.js → DTliAJ8L.chunk.js} +2 -2
- package/dist/scripts/{DXRsxBJw.chunk.js.map → DTliAJ8L.chunk.js.map} +1 -1
- package/dist/scripts/{DE5jvfAx2.chunk.js → D_t70KgV2.chunk.js} +2 -2
- package/dist/scripts/{DE5jvfAx2.chunk.js.map → D_t70KgV2.chunk.js.map} +1 -1
- package/dist/scripts/{Dc01PBv1.chunk.js → Dn2EPvQj.chunk.js} +2 -2
- package/dist/scripts/{Dc01PBv1.chunk.js.map → Dn2EPvQj.chunk.js.map} +1 -1
- package/dist/scripts/{RuVwpX36.chunk.js → Drh1bb9z.chunk.js} +2 -2
- package/dist/scripts/{RuVwpX36.chunk.js.map → Drh1bb9z.chunk.js.map} +1 -1
- package/dist/scripts/{YzhKditE.chunk.js → ESLgHTNq.chunk.js} +2 -2
- package/dist/scripts/{YzhKditE.chunk.js.map → ESLgHTNq.chunk.js.map} +1 -1
- package/dist/scripts/{DfSzsD3P.chunk.js → FysETOFv.chunk.js} +2 -2
- package/dist/scripts/{DfSzsD3P.chunk.js.map → FysETOFv.chunk.js.map} +1 -1
- package/dist/scripts/QVwuOts3.chunk.js +12 -0
- package/dist/scripts/QVwuOts3.chunk.js.map +1 -0
- package/dist/scripts/{OmYpHs7g.chunk.js → _Cm5O72d.chunk.js} +3 -3
- package/dist/scripts/{OmYpHs7g.chunk.js.map → _Cm5O72d.chunk.js.map} +1 -1
- package/dist/scripts/{app-BzCWmnrr.js → app-BHlllGhO.js} +4 -4
- package/dist/scripts/{app-BzCWmnrr.js.map → app-BHlllGhO.js.map} +1 -1
- package/dist/scripts/{C46080Xd.chunk.js → dxqgnrOi.chunk.js} +2 -2
- package/dist/scripts/{C46080Xd.chunk.js.map → dxqgnrOi.chunk.js.map} +1 -1
- package/dist/scripts/{BCTM3KG42.chunk.js → kLCNzxrH2.chunk.js} +2 -2
- package/dist/scripts/{BCTM3KG42.chunk.js.map → kLCNzxrH2.chunk.js.map} +1 -1
- package/dist/scripts/{CfVIZBcI2.chunk.js → wpRpI9h02.chunk.js} +2 -2
- package/dist/scripts/{CfVIZBcI2.chunk.js.map → wpRpI9h02.chunk.js.map} +1 -1
- package/package.json +1 -1
- package/dist/scripts/QrUfkwZX.chunk.js +0 -12
- package/dist/scripts/QrUfkwZX.chunk.js.map +0 -1
|
@@ -1,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"./
|
|
2
|
-
//# sourceMappingURL=
|
|
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":"
|
|
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/
|
|
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(`./
|
|
3
|
-
//# sourceMappingURL=
|
|
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":"
|
|
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"./
|
|
2
|
-
//# sourceMappingURL=
|
|
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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BE8Ze3Fa2.chunk.js","names":[],"sources":["../../src/shared/errors/interactives/cannot-edit-published-interactive/CannotEditPublishInteractiveError.ts","../../src/shared/errors/interactives/cannot-edit/CannotEditError.ts","../../src/apps/interactives/views/edit-interactive/useEnsureOriginal.ts","../../src/apps/interactives/views/edit-interactive/EditInteractiveView.tsx"],"sourcesContent":["import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { ErrorPageError } from 'libs/shared/errors/primitives/ErrorPageError';\n\nconst namespace = 'shared.cannotEditPublishedInteractive';\n\nexport class CannotEditPublishInteractiveError extends ErrorPageError {\n constructor() {\n super(LanguageService.getPhrase(namespace, 'title'));\n }\n\n // @ts-ignore\n public get name(): string {\n return 'CannotEditPublishedInteractiveError';\n }\n\n // @ts-ignore\n public get heading(): string {\n return LanguageService.getPhrase(namespace, 'heading');\n }\n\n // @ts-ignore\n public get description(): string {\n return LanguageService.getPhrase(namespace, 'description');\n }\n}\n","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { ErrorPageError } from 'libs/shared/errors/primitives/ErrorPageError';\n\nconst namespace = 'shared.cannotEditInteractive';\n\nexport class CannotEditInteractiveError extends ErrorPageError {\n constructor() {\n super(LanguageService.getPhrase(namespace, 'title'));\n }\n\n // @ts-ignore\n public get name(): string {\n return 'CannnotEditInteractiveError';\n }\n\n // @ts-ignore\n public get heading(): string {\n return LanguageService.getPhrase(namespace, 'heading');\n }\n\n // @ts-ignore\n public get description(): string {\n return LanguageService.getPhrase(namespace, 'description');\n }\n}\n","import React from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\n\nimport { InteractiveOriginType } from 'libs/shared/enums/InteractiveOriginType';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { EditInteractiveMetadataOriginRequest, Interactive, InteractiveMetadata } from 'libs/shared/interfaces';\n\nimport { CannotEditInteractiveError } from 'shared/errors/interactives/cannot-edit/CannotEditError';\n\nexport const useEnsureOriginal = (\n interactiveMetadata: InteractiveMetadata\n) => {\n const dispatch = useDispatch();\n\n /* Used to ensure only one request */\n const [ requested, setRequest ] = React.useState(false);\n const [ ready, setReady ] = React.useState(false);\n\n React.useEffect(() => {\n if (!interactiveMetadata || ready || requested)\n return;\n\n if (interactiveMetadata.originType === InteractiveOriginType.Original) {\n setReady(true);\n return;\n }\n\n const error = () => {\n Core.ErrorHelper.throw(new CannotEditInteractiveError());\n };\n\n const success = (resp: Interactive) => {\n const data: EditInteractiveMetadataOriginRequest = {\n originType: InteractiveOriginType.Original,\n interactiveId: resp.id\n };\n\n Flight.fetch(\n dispatch,\n InteractiveRequests.updateInteractiveMetadata(\n interactiveMetadata.id,\n data,\n () => setReady(true),\n error\n )\n );\n };\n\n setRequest(true);\n Flight.fetch(dispatch, InteractiveRequests.copyInteractive(\n interactiveMetadata.interactiveId,\n success,\n error\n ));\n }, [interactiveMetadata]);\n\n return ready;\n};\n","import React from 'react';\nimport { createHtmlPortalNode, OutPortal } from 'react-reverse-portal';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EntityType, LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { CurationStatus } from 'libs/shared/enums/CurationStatus';\nimport { MediaIdType } from 'libs/shared/enums/MediaIdType';\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 { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { PlayerRequests } from 'libs/shared/flight-requests/PlayerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { Config, CurrentUser, InteractiveMetadata, PlayerViewKey } from 'libs/shared/interfaces';\nimport { PlayerAnalyticsTracker } from 'libs/shared/utils/PlayerAnalyticsTracker';\n\nimport { InteractivePlayer } from 'projects/player/players/interactive-player';\nimport { InteractiveMode } from 'projects/player/plugins/interactive-plugin/interfaces';\nimport { ClickViewInteractivePlayer } from 'projects/player/react/InteractivePlayer';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { CannotEditPublishInteractiveError } from 'shared/errors/interactives/cannot-edit-published-interactive/CannotEditPublishInteractiveError';\n\nimport { InteractivePartialLoading } from 'apps/interactives/components/interactive-partial-loading/InteractivePartialLoading';\nimport { getInteractiveAnalyticsData } from 'apps/interactives/utils/getInteractiveAnalyticsData';\n\nimport { useEnsureOriginal } from './useEnsureOriginal';\n\nconst namespace = 'interactives.editInteractiveView';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst EDIT_APPLINK = {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.EDIT_INTERACTIVE_DETAILS\n};\n\nconst videoErrors = {\n notFound: VideoNotFoundError,\n forbidden: {\n privacy: VideoPrivateError\n }\n};\n\ninterface EditInteractiveProps {\n id: string;\n}\n\nexport function EditInteractiveView(props: EditInteractiveProps): React.ReactElement {\n const [ ready, setReady ] = React.useState(false);\n\n const [ hasCheckedStatus, setHasCheckedStatus ] = React.useState(false);\n const playerRef = React.useRef<InteractivePlayer>(null);\n\n const { experimentalInteractiveQuestions } = useSettings(null);\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n const interactiveMetadata = Flight.useBasicFetch<InteractiveMetadata>(!!currentUser.data &&\n InteractiveRequests.interactiveMetadata(props.id));\n\n useSetPageMetadata({\n title: interactiveMetadata.data ? getPhrase('pageTitle', { name: interactiveMetadata.data.name }) : null\n });\n\n /**\n * This will check if the interactive is a copy or not\n * and update it to original if it is a copy.\n */\n const isOriginal = useEnsureOriginal(interactiveMetadata.data);\n\n /**\n * We don't fetch our view key until we know our interactive has been upgraded\n * to an original\n */\n const viewKey = Flight.useBasicFetch<PlayerViewKey>(isOriginal ?\n PlayerRequests.createViewKey(interactiveMetadata.data.id, MediaIdType.MasterObject) : null);\n\n const token = Flight.useBasicFetch<HashObject>(UserRequests.token());\n\n const actionsPortalNode = React.useMemo(() => createHtmlPortalNode(), []);\n const questionListPortalNode = React.useMemo(() => createHtmlPortalNode(), []);\n\n const analyticsTracker = React.useRef<PlayerAnalyticsTracker>(null);\n\n useHandleObjectError(interactiveMetadata, videoErrors);\n\n function onReady(player: InteractivePlayer): void {\n playerRef.current = player;\n\n setReady(true);\n\n analyticsTracker.current = new PlayerAnalyticsTracker({\n player,\n video: interactiveMetadata.data,\n analyticsLocation: LocationContext.EditInteractive\n });\n }\n\n if (!viewKey.data || !config.data || !interactiveMetadata.data || !token.data)\n return <InteractivePartialLoading />;\n\n /**\n * We do this because when the publish popup publishes\n * the flight state updates and this briefly re-renders\n * with data.status being published\n */\n if (!hasCheckedStatus) {\n setHasCheckedStatus(true);\n if (interactiveMetadata.data.status !== CurationStatus.Draft) {\n Core.ErrorHelper.throw(new CannotEditPublishInteractiveError());\n return null;\n }\n }\n\n const analyticsData = getInteractiveAnalyticsData(interactiveMetadata.data);\n\n const baseAnalyticsOptions = {\n entity: EntityType.Interactive,\n location: LocationContext.EditInteractive,\n workflowPhase: WorkflowPhase.Start\n };\n\n function onClickEditDetails(): void {\n AnalyticsHelper.logUserAction(analyticsData, {\n actionType: UserAction.Edit,\n ...baseAnalyticsOptions\n });\n\n Core.AppLinkHelper.trigger({\n ...EDIT_APPLINK,\n args: [props.id]\n });\n }\n\n function onClickPublish(): void {\n AnalyticsHelper.logUserAction(analyticsData, {\n actionType: UserAction.Publish,\n ...baseAnalyticsOptions\n });\n\n Core.AppLinkHelper.trigger({\n ...EDIT_APPLINK,\n args: [props.id],\n params: { publish: true }\n });\n }\n\n return (\n <>\n {!ready && <InteractivePartialLoading />}\n <div className={`px-3 ${ready ? '' : 'd-none'}`}>\n <div className='d-flex justify-content-between align-items-center mb-3'>\n <h1 className='h3 text-truncate mb-0 pb-1'>{interactiveMetadata.data.name}</h1>\n <div className='flex-shrink-0'>\n <OutPortal node={actionsPortalNode} />\n </div>\n </div>\n <ClickViewInteractivePlayer\n viewKey={viewKey.data.viewKey}\n imageApi={new URL(config.data.imageCdnUrl)}\n playerApi={new URL(config.data.playerApiUrl)}\n hotkeyElQuerySelector='body'\n autoplay\n onReady={onReady}\n currentUser={currentUser.data}\n mode={InteractiveMode.Create}\n actionsPortalNode={actionsPortalNode}\n questionListPortalNode={questionListPortalNode}\n authToken={token.data.value}\n onClickEditDetails={onClickEditDetails}\n onClickPublish={onClickPublish}\n enableImmersiveReader\n experimentalInteractiveQuestions={experimentalInteractiveQuestions}\n />\n <OutPortal node={questionListPortalNode} />\n </div>\n </>\n );\n}\n"],"mappings":"sqCAIM,EAAY,wCAEL,EAAb,cAAuD,CAAe,CACpE,aAAc,CACZ,MAAM,EAAgB,UAAU,EAAW,OAAO,CAAC,CACrD,CAGA,IAAW,MAAe,CACxB,MAAO,qCACT,CAGA,IAAW,SAAkB,CAC3B,OAAO,EAAgB,UAAU,EAAW,SAAS,CACvD,CAGA,IAAW,aAAsB,CAC/B,OAAO,EAAgB,UAAU,EAAW,aAAa,CAC3D,CACF,ECrBM,EAAY,+BAEL,EAAb,cAAgD,CAAe,CAC7D,aAAc,CACZ,MAAM,EAAgB,UAAU,EAAW,OAAO,CAAC,CACrD,CAGA,IAAW,MAAe,CACxB,MAAO,6BACT,CAGA,IAAW,SAAkB,CAC3B,OAAO,EAAgB,UAAU,EAAW,SAAS,CACvD,CAGA,IAAW,aAAsB,CAC/B,OAAO,EAAgB,UAAU,EAAW,aAAa,CAC3D,CACF,ECba,EACX,GACG,CACH,IAAM,EAAW,EAAY,EAGvB,CAAE,EAAW,GAAA,EAAqB,SAAS,EAAK,EAChD,CAAE,EAAO,GAAA,EAAmB,SAAS,EAAK,EAwChD,OAtCA,EAAM,cAAgB,CACpB,GAAI,CAAC,GAAuB,GAAS,EACnC,OAEF,GAAI,EAAoB,aAAe,EAAsB,SAAU,CACrE,EAAS,EAAI,EACb,MACF,CAEA,IAAM,MAAc,CAClB,EAAiB,MAAM,IAAI,CAA4B,CACzD,EAmBA,EAAW,EAAI,EACf,EAAa,EAAU,EAAoB,gBACzC,EAAoB,cAnBL,GAAsB,CACrC,IAAM,EAA6C,CACjD,WAAY,EAAsB,SAClC,cAAe,EAAK,EACtB,EAEA,EACE,EACA,EAAoB,0BAClB,EAAoB,GACpB,MACM,EAAS,EAAI,EACnB,CACF,CACF,CACF,EAME,CACF,CAAC,CACH,EAAG,CAAC,CAAmB,CAAC,EAEjB,CACT,QCrBM,EAAY,EAAgB,iBAAiB,kCAAS,EAEtD,EAAe,CACnB,YAAa,EAAY,aACzB,OAAQ,EAAQ,aAAa,wBAC/B,EAEM,EAAc,CAClB,SAAU,EACV,UAAW,CACT,QAAS,CACX,CACF,EAMA,SAAgB,EAAoB,EAAiD,CACnF,GAAM,CAAE,EAAO,GAAA,EAAmB,SAAS,EAAK,EAE1C,CAAE,EAAkB,GAAA,EAA8B,SAAS,EAAK,EAChE,EAAA,EAAkB,OAA0B,IAAI,EAEhD,CAAE,oCAAqC,EAAY,IAAI,EAEvD,EAAS,EAA6B,EAAe,OAAO,CAAC,EAC7D,EAAc,EAAkC,EAAa,YAAY,CAAC,EAE1E,EAAsB,EAA0C,CAAC,CAAC,EAAY,MAClF,EAAoB,oBAAoB,EAAM,EAAE,CAAC,EAEnD,EAAmB,CACjB,MAAO,EAAoB,KAAO,EAAU,YAAa,CAAE,KAAM,EAAoB,KAAK,IAAK,CAAC,EAAI,IACtG,CAAC,EAYD,IAAM,EAAU,EANG,EAAkB,EAAoB,IAML,EAClD,EAAe,cAAc,EAAoB,KAAK,GAAI,EAAY,YAAY,EAAI,IAAI,EAEtF,EAAQ,EAAiC,EAAa,MAAM,CAAC,EAE7D,EAAA,EAA0B,YAAc,EAAqB,EAAG,CAAC,CAAC,EAClE,EAAA,EAA+B,YAAc,EAAqB,EAAG,CAAC,CAAC,EAEvE,EAAA,EAAyB,OAA+B,IAAI,EAElE,EAAqB,EAAqB,CAAW,EAErD,SAAS,EAAQ,EAAiC,CAChD,EAAU,QAAU,EAEpB,EAAS,EAAI,EAEb,EAAiB,QAAU,IAAI,EAAuB,CACpD,SACA,MAAO,EAAoB,KAC3B,kBAAmB,EAAgB,eACrC,CAAC,CACH,CAEA,GAAI,CAAC,EAAQ,MAAQ,CAAC,EAAO,MAAQ,CAAC,EAAoB,MAAQ,CAAC,EAAM,KACvE,OAAO,EAAA,EAAA,IAAA,CAAC,EAAD,CAA4B,CAAA,EAOrC,GAAI,CAAC,IACH,EAAoB,EAAI,EACpB,EAAoB,KAAK,SAAW,EAAe,OAErD,OADA,EAAiB,MAAM,IAAI,CAAmC,EACvD,KAIX,IAAM,EAAgB,EAA4B,EAAoB,IAAI,EAEpE,EAAuB,CAC3B,OAAQ,EAAW,YACnB,SAAU,EAAgB,gBAC1B,cAAe,EAAc,KAC/B,EAEA,SAAS,GAA2B,CAClC,EAAgB,cAAc,EAAe,CAC3C,WAAY,EAAW,KACvB,GAAG,CACL,CAAC,EAED,EAAmB,QAAQ,CACzB,GAAG,EACH,KAAM,CAAC,EAAM,EAAE,CACjB,CAAC,CACH,CAEA,SAAS,GAAuB,CAC9B,EAAgB,cAAc,EAAe,CAC3C,WAAY,EAAW,QACvB,GAAG,CACL,CAAC,EAED,EAAmB,QAAQ,CACzB,GAAG,EACH,KAAM,CAAC,EAAM,EAAE,EACf,OAAQ,CAAE,QAAS,EAAK,CAC1B,CAAC,CACH,CAEA,OACE,EAAA,EAAA,KAAA,CAAA,EAAA,SAAA,CAAA,SAAA,CACG,CAAC,IAAS,EAAA,EAAA,IAAA,CAAC,EAAD,CAA4B,CAAA,GACvC,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAW,QAAQ,EAAQ,GAAK,oBAArC,EACE,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,kEAAf,EACE,EAAA,EAAA,IAAA,CAAC,KAAD,CAAI,UAAU,sCAA8B,EAAoB,KAAK,IAAS,CAAA,GAC9E,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,0BACb,EAAA,EAAA,IAAA,CAAC,EAAD,CAAW,KAAM,CAAoB,CAAA,CAClC,CAAA,CACF,KACL,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,QAAS,EAAQ,KAAK,QACtB,SAAU,IAAI,IAAI,EAAO,KAAK,WAAW,EACzC,UAAW,IAAI,IAAI,EAAO,KAAK,YAAY,EAC3C,sBAAsB,OACtB,SAAA,GACS,UACT,YAAa,EAAY,KACzB,KAAM,EAAgB,OACH,oBACK,yBACxB,UAAW,EAAM,KAAK,MACF,qBACJ,iBAChB,sBAAA,GACkC,kCACnC,CAAA,GACD,EAAA,EAAA,IAAA,CAAC,EAAD,CAAW,KAAM,CAAyB,CAAA,CACvC,GACL,CAAA,CAAA,CAEN"}
|
|
1
|
+
{"version":3,"file":"CHmbcl4Y2.chunk.js","names":[],"sources":["../../src/shared/errors/interactives/cannot-edit-published-interactive/CannotEditPublishInteractiveError.ts","../../src/shared/errors/interactives/cannot-edit/CannotEditError.ts","../../src/apps/interactives/views/edit-interactive/useEnsureOriginal.ts","../../src/apps/interactives/views/edit-interactive/EditInteractiveView.tsx"],"sourcesContent":["import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { ErrorPageError } from 'libs/shared/errors/primitives/ErrorPageError';\n\nconst namespace = 'shared.cannotEditPublishedInteractive';\n\nexport class CannotEditPublishInteractiveError extends ErrorPageError {\n constructor() {\n super(LanguageService.getPhrase(namespace, 'title'));\n }\n\n // @ts-ignore\n public get name(): string {\n return 'CannotEditPublishedInteractiveError';\n }\n\n // @ts-ignore\n public get heading(): string {\n return LanguageService.getPhrase(namespace, 'heading');\n }\n\n // @ts-ignore\n public get description(): string {\n return LanguageService.getPhrase(namespace, 'description');\n }\n}\n","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { ErrorPageError } from 'libs/shared/errors/primitives/ErrorPageError';\n\nconst namespace = 'shared.cannotEditInteractive';\n\nexport class CannotEditInteractiveError extends ErrorPageError {\n constructor() {\n super(LanguageService.getPhrase(namespace, 'title'));\n }\n\n // @ts-ignore\n public get name(): string {\n return 'CannnotEditInteractiveError';\n }\n\n // @ts-ignore\n public get heading(): string {\n return LanguageService.getPhrase(namespace, 'heading');\n }\n\n // @ts-ignore\n public get description(): string {\n return LanguageService.getPhrase(namespace, 'description');\n }\n}\n","import React from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\n\nimport { InteractiveOriginType } from 'libs/shared/enums/InteractiveOriginType';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { EditInteractiveMetadataOriginRequest, Interactive, InteractiveMetadata } from 'libs/shared/interfaces';\n\nimport { CannotEditInteractiveError } from 'shared/errors/interactives/cannot-edit/CannotEditError';\n\nexport const useEnsureOriginal = (\n interactiveMetadata: InteractiveMetadata\n) => {\n const dispatch = useDispatch();\n\n /* Used to ensure only one request */\n const [ requested, setRequest ] = React.useState(false);\n const [ ready, setReady ] = React.useState(false);\n\n React.useEffect(() => {\n if (!interactiveMetadata || ready || requested)\n return;\n\n if (interactiveMetadata.originType === InteractiveOriginType.Original) {\n setReady(true);\n return;\n }\n\n const error = () => {\n Core.ErrorHelper.throw(new CannotEditInteractiveError());\n };\n\n const success = (resp: Interactive) => {\n const data: EditInteractiveMetadataOriginRequest = {\n originType: InteractiveOriginType.Original,\n interactiveId: resp.id\n };\n\n Flight.fetch(\n dispatch,\n InteractiveRequests.updateInteractiveMetadata(\n interactiveMetadata.id,\n data,\n () => setReady(true),\n error\n )\n );\n };\n\n setRequest(true);\n Flight.fetch(dispatch, InteractiveRequests.copyInteractive(\n interactiveMetadata.interactiveId,\n success,\n error\n ));\n }, [interactiveMetadata]);\n\n return ready;\n};\n","import React from 'react';\nimport { createHtmlPortalNode, OutPortal } from 'react-reverse-portal';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EntityType, LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { CurationStatus } from 'libs/shared/enums/CurationStatus';\nimport { MediaIdType } from 'libs/shared/enums/MediaIdType';\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 { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { PlayerRequests } from 'libs/shared/flight-requests/PlayerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { Config, CurrentUser, InteractiveMetadata, PlayerViewKey } from 'libs/shared/interfaces';\nimport { PlayerAnalyticsTracker } from 'libs/shared/utils/PlayerAnalyticsTracker';\n\nimport { InteractivePlayer } from 'projects/player/players/interactive-player';\nimport { InteractiveMode } from 'projects/player/plugins/interactive-plugin/interfaces';\nimport { ClickViewInteractivePlayer } from 'projects/player/react/InteractivePlayer';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { CannotEditPublishInteractiveError } from 'shared/errors/interactives/cannot-edit-published-interactive/CannotEditPublishInteractiveError';\n\nimport { InteractivePartialLoading } from 'apps/interactives/components/interactive-partial-loading/InteractivePartialLoading';\nimport { getInteractiveAnalyticsData } from 'apps/interactives/utils/getInteractiveAnalyticsData';\n\nimport { useEnsureOriginal } from './useEnsureOriginal';\n\nconst namespace = 'interactives.editInteractiveView';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst EDIT_APPLINK = {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.EDIT_INTERACTIVE_DETAILS\n};\n\nconst videoErrors = {\n notFound: VideoNotFoundError,\n forbidden: {\n privacy: VideoPrivateError\n }\n};\n\ninterface EditInteractiveProps {\n id: string;\n}\n\nexport function EditInteractiveView(props: EditInteractiveProps): React.ReactElement {\n const [ ready, setReady ] = React.useState(false);\n\n const [ hasCheckedStatus, setHasCheckedStatus ] = React.useState(false);\n const playerRef = React.useRef<InteractivePlayer>(null);\n\n const { experimentalInteractiveQuestions } = useSettings(null);\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n const interactiveMetadata = Flight.useBasicFetch<InteractiveMetadata>(!!currentUser.data &&\n InteractiveRequests.interactiveMetadata(props.id));\n\n useSetPageMetadata({\n title: interactiveMetadata.data ? getPhrase('pageTitle', { name: interactiveMetadata.data.name }) : null\n });\n\n /**\n * This will check if the interactive is a copy or not\n * and update it to original if it is a copy.\n */\n const isOriginal = useEnsureOriginal(interactiveMetadata.data);\n\n /**\n * We don't fetch our view key until we know our interactive has been upgraded\n * to an original\n */\n const viewKey = Flight.useBasicFetch<PlayerViewKey>(isOriginal ?\n PlayerRequests.createViewKey(interactiveMetadata.data.id, MediaIdType.MasterObject) : null);\n\n const token = Flight.useBasicFetch<HashObject>(UserRequests.token());\n\n const actionsPortalNode = React.useMemo(() => createHtmlPortalNode(), []);\n const questionListPortalNode = React.useMemo(() => createHtmlPortalNode(), []);\n\n const analyticsTracker = React.useRef<PlayerAnalyticsTracker>(null);\n\n useHandleObjectError(interactiveMetadata, videoErrors);\n\n function onReady(player: InteractivePlayer): void {\n playerRef.current = player;\n\n setReady(true);\n\n analyticsTracker.current = new PlayerAnalyticsTracker({\n player,\n video: interactiveMetadata.data,\n analyticsLocation: LocationContext.EditInteractive\n });\n }\n\n if (!viewKey.data || !config.data || !interactiveMetadata.data || !token.data)\n return <InteractivePartialLoading />;\n\n /**\n * We do this because when the publish popup publishes\n * the flight state updates and this briefly re-renders\n * with data.status being published\n */\n if (!hasCheckedStatus) {\n setHasCheckedStatus(true);\n if (interactiveMetadata.data.status !== CurationStatus.Draft) {\n Core.ErrorHelper.throw(new CannotEditPublishInteractiveError());\n return null;\n }\n }\n\n const analyticsData = getInteractiveAnalyticsData(interactiveMetadata.data);\n\n const baseAnalyticsOptions = {\n entity: EntityType.Interactive,\n location: LocationContext.EditInteractive,\n workflowPhase: WorkflowPhase.Start\n };\n\n function onClickEditDetails(): void {\n AnalyticsHelper.logUserAction(analyticsData, {\n actionType: UserAction.Edit,\n ...baseAnalyticsOptions\n });\n\n Core.AppLinkHelper.trigger({\n ...EDIT_APPLINK,\n args: [props.id]\n });\n }\n\n function onClickPublish(): void {\n AnalyticsHelper.logUserAction(analyticsData, {\n actionType: UserAction.Publish,\n ...baseAnalyticsOptions\n });\n\n Core.AppLinkHelper.trigger({\n ...EDIT_APPLINK,\n args: [props.id],\n params: { publish: true }\n });\n }\n\n return (\n <>\n {!ready && <InteractivePartialLoading />}\n <div className={`px-3 ${ready ? '' : 'd-none'}`}>\n <div className='d-flex justify-content-between align-items-center mb-3'>\n <h1 className='h3 text-truncate mb-0 pb-1'>{interactiveMetadata.data.name}</h1>\n <div className='flex-shrink-0'>\n <OutPortal node={actionsPortalNode} />\n </div>\n </div>\n <ClickViewInteractivePlayer\n viewKey={viewKey.data.viewKey}\n imageApi={new URL(config.data.imageCdnUrl)}\n playerApi={new URL(config.data.playerApiUrl)}\n hotkeyElQuerySelector='body'\n autoplay\n onReady={onReady}\n currentUser={currentUser.data}\n mode={InteractiveMode.Create}\n actionsPortalNode={actionsPortalNode}\n questionListPortalNode={questionListPortalNode}\n authToken={token.data.value}\n onClickEditDetails={onClickEditDetails}\n onClickPublish={onClickPublish}\n enableImmersiveReader\n experimentalInteractiveQuestions={experimentalInteractiveQuestions}\n />\n <OutPortal node={questionListPortalNode} />\n </div>\n </>\n );\n}\n"],"mappings":"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"}
|
|
@@ -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"./
|
|
2
|
-
//# sourceMappingURL=
|
|
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"./wpRpI9h02.chunk.js";import{t as A}from"./BeW5XQTb2.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=CIzlhCeS.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"CIzlhCeS.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{t as e}from"./_OaXdAO8.chunk.js";import{p as t}from"./
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{t as e}from"./_OaXdAO8.chunk.js";import{p as t}from"./DTliAJ8L.chunk.js";var n=t.getPlugin(`plugin`),r=class extends n{constructor(e){super(e),this.player.dataLoaded(()=>this.initialize())}initialize(){e.setCanReload(!1)}dispose(){e.setCanReload(!0),super.dispose()}};t.registerPlugin(`oldVersionRefreshPlugin`,r);
|
|
2
|
+
//# sourceMappingURL=CXUrMkZu.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"CXUrMkZu.chunk.js","names":[],"sources":["../../../player/src/plugins/old-version-refresh-plugin/old-version-refresh-plugin.ts"],"sourcesContent":["import videojs, { VideoJsPlayer } from 'video.js';\n\nimport { OldVersionService } from 'libs/shared/services/OldVersionService';\n\nconst Plugin = videojs.getPlugin('plugin');\n\nclass OldVersionRefreshPlugin extends Plugin {\n constructor(player: VideoJsPlayer) {\n super(player);\n this.player.dataLoaded(() => this.initialize());\n }\n\n private initialize(): void {\n OldVersionService.setCanReload(false);\n }\n\n public dispose(): void {\n OldVersionService.setCanReload(true);\n super.dispose();\n }\n}\n\nvideojs.registerPlugin('oldVersionRefreshPlugin', OldVersionRefreshPlugin);\n\ndeclare module 'video.js' {\n export interface VideoJsPlayer {\n oldVersionRefreshPlugin(): OldVersionRefreshPlugin;\n }\n}\n\n"],"mappings":"gFAIA,IAAM,EAAS,EAAQ,UAAU,QAAQ,EAEnC,EAAN,cAAsC,CAAO,CAC3C,YAAY,EAAuB,CACjC,MAAM,CAAM,EACZ,KAAK,OAAO,eAAiB,KAAK,WAAW,CAAC,CAChD,CAEA,YAA2B,CACzB,EAAkB,aAAa,EAAK,CACtC,CAEA,SAAuB,CACrB,EAAkB,aAAa,EAAI,EACnC,MAAM,QAAQ,CAChB,CACF,EAEA,EAAQ,eAAe,0BAA2B,CAAuB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{n as e}from"./Ib9eoq_Y.chunk.js";import{p as t}from"./
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{n as e}from"./Ib9eoq_Y.chunk.js";import{p as t}from"./DTliAJ8L.chunk.js";var n={getInteractiveTrack(e,t){let n=e.addTextTrack(`metadata`,`interactive`),r=t.additionalData.interactive,i=t.additionalData.clipData?.startTime;return r.timepoints.forEach(e=>{let t=e.visibleAt/1e3,r=e.visibleFor?t+e.visibleFor/1e3:t+1;i&&(t+=i,r+=i),e.interactions?.length&&n.addCue({startTime:Math.max(.001,t-.001),endTime:r,text:e.id})}),n}},r=t.getComponent(`Button`),i=class extends r{constructor(t,n){super(t,n),this.timepoint_=n.timepoint,this.time_=n.timepoint.visibleAt/1e3;let r=n.timepoint.interactions[0];r||this.hide();let{bgClassName:i}=e.getTypeInfo(r.typeId);this.$(`.vjs-icon-placeholder`).classList.add(i),this.controlText(r.name),this.update()}buildCSSClass(){return`cv-interactive-bar-item ${super.buildCSSClass()}`}createEl(e,t,n){return super.createEl(e,{...t,className:this.buildCSSClass()},{...n,tabindex:0})}update(){let e=this.player_.duration(),t=this.time_/e;this.el().style.left=t*100+`%`,t>100||t<0?this.hide():this.show()}handleClick(e){e.stopPropagation(),this.player_.currentTime(this.time_)}},a=t.getComponent(`Component`),o=class extends a{constructor(e,t){super(e,t),this.track_=t.track,this.interactive_=t.interactive,this.onDurationChange=this.onDurationChange.bind(this),this.createInteractionItems=this.createInteractionItems.bind(this),this.createInteractionItems(),this.track_.on(`cv:cuechange`,this.createInteractionItems),this.player_.on(`durationchange`,this.onDurationChange),this.player_.on(`dispose`,()=>{this.track_.off(`cv:cuechange`),this.player_.off(`durationchange`,this.onDurationChange)})}buildCSSClass(){return`cv-interactive-bar-items ${super.buildCSSClass()}`}createEl(e,t,n){return super.createEl(e,{...t,className:this.buildCSSClass()},n)}update(){this.children_.forEach(e=>{e.update()})}createInteractionItems(){if(this.track_){[...this.children_].forEach(e=>{this.removeChild(e)});for(let e=0;e<this.track_.cues.length;e++){let t=this.track_.cues[e],n=this.getTimepointById(t.text);!n||!n.interactions?.length||this.addChild(new i(this.player_,{timepoint:n}))}}}onDurationChange(){this.update()}getTimepointById(e){return this.interactive_.timepoints?.find(t=>t.id.toString()===e.toString())}};export{n,o as t};
|
|
2
|
+
//# sourceMappingURL=CYrelpYt.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"CYrelpYt.chunk.js","names":[],"sources":["../../../player/src/utils/interactive-track-helper.ts","../../../player/src/plugins/interactive-plugin/components/seek-bar/interactive-bar-item.ts","../../../player/src/plugins/interactive-plugin/components/seek-bar/interactive-bar-items.ts"],"sourcesContent":["import { VideoJsPlayer } from 'video.js';\n\nimport { Interactive } from 'libs/shared/interfaces';\n\nimport { PlaybackObject } from 'projects/player/interfaces/models/PlaybackObject';\n\nexport const InteractiveTrackHelper = {\n getInteractiveTrack(player: VideoJsPlayer, playbackObject: PlaybackObject): TextTrack {\n const track = player.addTextTrack('metadata', 'interactive') as unknown as TextTrack;\n\n const interactive = playbackObject.additionalData.interactive as Interactive;\n const clipOffset = playbackObject.additionalData.clipData?.startTime;\n\n interactive.timepoints.forEach(t => {\n let startTime = t.visibleAt / 1000;\n let endTime = t.visibleFor ? startTime + (t.visibleFor / 1000) : startTime + 1;\n\n if (clipOffset) {\n startTime += clipOffset;\n endTime += clipOffset;\n }\n\n if (!t.interactions?.length)\n return;\n\n track.addCue({\n // Handles calling currentTime() with the exact time of the timepoint\n startTime: Math.max(0.001, startTime - 0.001),\n endTime,\n text: t.id\n } as any);\n });\n\n return track;\n }\n};\n","import videojs, { VideoJsPlayer } from 'video.js';\n\nimport { Timepoint } from 'libs/shared/interfaces';\nimport { InteractionTypeHelper } from 'libs/shared/utils/interaction-type-helper/InteractionTypeHelper';\n\nimport './interactive-bar-item.scss';\n\nconst Component = videojs.getComponent('Button');\n\ninterface InteractiveBarItemOptions extends videojs.ComponentOptions {\n timepoint: Timepoint;\n}\n\nexport class InteractiveBarItem extends Component {\n private timepoint_: Timepoint;\n private time_: number;\n\n constructor(player: VideoJsPlayer, options: InteractiveBarItemOptions) {\n super(player, options);\n\n this.timepoint_ = options.timepoint;\n this.time_ = options.timepoint.visibleAt / 1000;\n\n const firstInteraction = options.timepoint.interactions[0];\n\n // if we have no interaction, hide this timepoint\n if (!firstInteraction)\n this.hide();\n\n const { bgClassName } = InteractionTypeHelper.getTypeInfo(firstInteraction.typeId);\n this.$('.vjs-icon-placeholder').classList.add(bgClassName);\n\n // set the control text to the interaction name for screen readers\n this.controlText(firstInteraction.name);\n\n this.update();\n }\n\n public buildCSSClass(): string {\n return `cv-interactive-bar-item ${super.buildCSSClass()}`;\n }\n\n public createEl(tagName?: string, properties?: any, attributes?: any): HTMLButtonElement {\n const el = super.createEl(tagName, {\n ...properties,\n className: this.buildCSSClass()\n }, {\n ...attributes,\n tabindex: 0\n });\n\n return el;\n }\n\n public update(): void {\n const duration = this.player_.duration();\n const width = this.time_ / duration;\n\n (this.el() as HTMLElement).style.left = (width * 100) + '%';\n\n // hide items outside of bounds\n if (width > 100 || width < 0)\n this.hide();\n else\n this.show();\n }\n\n public handleClick(e: Event): void {\n e.stopPropagation();\n this.player_.currentTime(this.time_);\n }\n}\n","import videojs, { VideoJsPlayer } from 'video.js';\n\nimport { Interactive, Timepoint } from 'libs/shared/interfaces';\n\nimport { InteractiveBarItem } from './interactive-bar-item';\n\nimport './interactive-bar-items.scss';\n\nconst Component = videojs.getComponent('Component');\n\ninterface InteractiveBarItemsOptions extends videojs.SliderOptions {\n track: TextTrack;\n interactive: Interactive;\n}\n\nexport class InteractiveBarItems extends Component {\n private track_: TextTrack;\n private interactive_: Interactive;\n\n constructor(player: VideoJsPlayer, options: InteractiveBarItemsOptions) {\n super(player, options);\n\n this.track_ = options.track;\n this.interactive_ = options.interactive;\n\n this.onDurationChange = this.onDurationChange.bind(this);\n this.createInteractionItems = this.createInteractionItems.bind(this);\n\n this.createInteractionItems();\n\n (this.track_ as any).on('cv:cuechange', this.createInteractionItems);\n\n this.player_.on('durationchange', this.onDurationChange);\n this.player_.on('dispose', () => {\n (this.track_ as any).off('cv:cuechange');\n\n this.player_.off('durationchange', this.onDurationChange);\n });\n }\n\n public buildCSSClass(): string {\n return `cv-interactive-bar-items ${super.buildCSSClass()}`;\n }\n\n public createEl(tagName?: string, properties?: any, attributes?: any): Element {\n return super.createEl(tagName, {\n ...properties,\n className: this.buildCSSClass()\n }, attributes);\n }\n\n public update(): void {\n this.children_.forEach((child: InteractiveBarItem) => {\n child.update();\n });\n }\n\n private createInteractionItems(): void {\n if (!this.track_)\n return;\n\n /**\n * Removing existing children\n *\n * We have to clone the array here otherwise\n * the forEach only removes every 2nd item\n */\n [...this.children_].forEach(child => {\n this.removeChild(child);\n });\n\n for (let i = 0; i < this.track_.cues.length; i++) {\n const cue = this.track_.cues[i] as any;\n const timepoint = this.getTimepointById(cue.text);\n\n if (!timepoint || !timepoint.interactions?.length)\n continue;\n\n this.addChild(new InteractiveBarItem(this.player_, {\n timepoint: timepoint\n }));\n }\n }\n\n private onDurationChange(): void {\n this.update();\n }\n\n private getTimepointById(id: string): Timepoint | null {\n return this.interactive_.timepoints?.find(t => t.id.toString() === id.toString());\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"./DAXXjFlN.chunk.js";import{n as e}from"./B785hxeE.chunk.js";import{t}from"./C2w0pmFW.chunk.js";import{t as n}from"./wrLrTezN.chunk.js";import{d as r,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"./CcDvlSWl2.chunk.js";import{t as c}from"./DtGDVg4O2.chunk.js";import{t as l}from"./8U-YTgZd.chunk.js";import{t as u}from"./DsXWD-Sn.chunk.js";import{t as d}from"./D_gWf2lC.chunk.js";import{t as f}from"./ZwDDc8Zd.chunk.js";import{n as p,t as m}from"./A8xLZrSw.chunk.js";import{t as h}from"./CMLErBju.chunk.js";import{t as g}from"./BQKcAczf.chunk.js";import{l as _,r as v}from"./
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import"./DAXXjFlN.chunk.js";import{n as e}from"./B785hxeE.chunk.js";import{t}from"./C2w0pmFW.chunk.js";import{t as n}from"./wrLrTezN.chunk.js";import{d as r,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"./CcDvlSWl2.chunk.js";import{t as c}from"./DtGDVg4O2.chunk.js";import{t as l}from"./8U-YTgZd.chunk.js";import{t as u}from"./DsXWD-Sn.chunk.js";import{t as d}from"./D_gWf2lC.chunk.js";import{t as f}from"./ZwDDc8Zd.chunk.js";import{n as p,t as m}from"./A8xLZrSw.chunk.js";import{t as h}from"./CMLErBju.chunk.js";import{t as g}from"./BQKcAczf.chunk.js";import{l as _,r as v}from"./_Cm5O72d.chunk.js";import{t as y}from"./DR9DEoQL.chunk.js";import{t as b}from"./CmV-znIi2.chunk.js";import{t as x}from"./BpFrvPNA2.chunk.js";import{n as S}from"./B-eFTZdx2.chunk.js";import{t as C}from"./DMaQV7L2.chunk.js";import{t as w}from"./CETzluXN.chunk.js";import{t as T}from"./BmR4qY-v2.chunk.js";import{t as E}from"./cX5MHowe.chunk.js";import{t as D}from"./BIO-5Tfr2.chunk.js";import{y as O}from"./wpRpI9h02.chunk.js";import{n as k,r as A,t as j}from"./CsCjBSq62.chunk.js";t();var M=n();function N(t){let{commonVideoProps:n,hasCommonVideoPropsCompleted:N}=T({locationContext:a.VideoThumbnail}),{hasPermissions:P}=g(),ee=O(),{activePresentation:F}=f(),{hasPlayPageTranscript:I,hasNewSearch:L}=s(null),R=i(o.currentUser()),z=i(u.sharedVideo(t.objectId,t.shareId)),B=b({objectId:z.data?.id,objectTypeId:z.data?.typeId}),V=i(B.canViewClips&&c.videoClips(t.objectId)),H=i(B.canViewInteractives&&l.videoInteractives(t.objectId)),U=v({video:z.data,context:t.queryParams.context,contextId:t.queryParams.contextId,moviesAndTv:t.queryParams.mtv,currentUser:R.data}),W=_(t.objectId),G=i(!!F&&C.audiencesByPresentationId(F.id)),{shouldFetchTranscript:K,shouldShowTranscript:q}=j(t.objectId,t.shareId),{subtitles:J,chapters:Y}=i(K&&R.data?.contentRegion&&A.chaptersAndSubtitles(t.objectId,R.data.contentRegion))?.data||{},X=J?.filter(e=>!e.customer),Z=r(X&&X.length>0?X.map(e=>A.subtitleVtt(e.url,e)):[]),Q=X?.filter(e=>Z.data.find(t=>t.id===e.id))||[],$=i(d.config());m(p.getVideoMetadata({content:z.data,canonicalLink:y.getCanonicalLink({stripPresentationSlug:!0}),allowIndexing:!1})),D(U.videos??[]),h(z,{private:x}),S({id:t.objectId,app:`videos`,shareId:t.shareId});let te=E({name:z.data?.name}),ne=w(t.objectId);return z.data&&R.hasCompleted&&W.hasCompleted&&N?(0,M.jsx)(`div`,{className:`px-3`,children:(0,M.jsx)(k,{presentationSlug:null,video:z.data,clips:V.data?.data,interactives:H.data?.data,curriculums:ne,relatedVideos:U,currentUser:R.data,pointsOfInterest:W?.items,playNext:t.queryParams?.playNext,shareId:t.shareId,featureAccess:B,audiences:G.data,params:t.queryParams,canManageVideoAccess:P(e.ManageVideoAccess),tableOfContentsId:t.queryParams?.tocId,shouldShowSideTableOfContents:ee,breadcrumbs:te,commonVideoProps:n,hasTheatreMode:I,shouldShowTranscript:q&&(!K||Z.data?.length>0),vttSubtitles:Z.data||[],subtitles:Q,chapters:Y,isBot:y.isBot(),playerApiUrl:$.data?.playerApiUrl,hasNewSearch:L,liteUrl:$.data.liteUrl})}):(0,M.jsx)(M.Fragment,{})}export{N as PlaySharedVideoView};
|
|
2
|
+
//# sourceMappingURL=CfrfHGSh.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"CfrfHGSh.chunk.js","names":[],"sources":["../../src/apps/share/views/play-shared-video/PlaySharedVideoView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { AudienceRequests } from 'libs/shared/flight-requests/AudienceRequests';\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 { 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 { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { ClipCollection, Config, CurrentUser, InteractiveCollection, PresentationAudience, Video, VttSubtitleResponse } from 'libs/shared/interfaces';\nimport { PageMetadataHelper } from 'libs/shared/utils/PageMetadataHelper';\n\nimport { TranscriptRequests, TranscriptResponse } from 'shared/flight-requests/TranscriptRequests';\nimport { useActivePresentation } from 'shared/hooks/presentations/useActivePresentation';\nimport { useCommonVideoProps } from 'shared/hooks/useCommonVideoProps';\nimport { useCurriculums } from 'shared/hooks/useCurriculums';\nimport { useDeepLinks } from 'shared/hooks/useDeepLinks';\nimport { useFetchPointsOfInterest } from 'shared/hooks/useFetchPointsOfInterest';\nimport { useGetRelatedVideos } from 'shared/hooks/useGetRelatedVideos';\nimport { useVideoFeatureAccess } from 'shared/hooks/useVideoFeatureAccess';\nimport { useVideoMixin } from 'shared/hooks/useVideoMixin';\nimport { SeoHelper } from 'shared/utils/SeoHelper';\nimport { PlayPage } from 'shared/views/play/components/play-page/PlayPage';\nimport { useShouldShowSideTableOfContents } from 'shared/views/play/hooks/useShouldShowTableOfContents';\nimport { useShowTranscriptForVideo } from 'shared/views/play/hooks/useShowVideoTranscript';\n\nimport { ShareLinkPrivateError } from 'apps/share/errors/share-link-private/ShareLinkPrivateError';\nimport { ShareLinkViewProps } from 'apps/share/interfaces/ShareLinkViewProps';\n\nexport function PlaySharedVideoView(props: ShareLinkViewProps): React.ReactElement {\n const {\n commonVideoProps,\n hasCommonVideoPropsCompleted\n } = useCommonVideoProps({ locationContext: LocationContext.VideoThumbnail });\n\n const { hasPermissions } = usePermissions();\n\n const shouldShowSideTableOfContents = useShouldShowSideTableOfContents();\n\n const { activePresentation } = useActivePresentation();\n const { hasPlayPageTranscript, hasNewSearch } = useSettings(null);\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const video = Flight.useBasicFetch<Video>(\n VideoRequests.sharedVideo(props.objectId, props.shareId)\n );\n\n const featureAccess = useVideoFeatureAccess({\n objectId: video.data?.id,\n objectTypeId: video.data?.typeId\n });\n \n const clips = Flight.useBasicFetch<ClipCollection>(\n featureAccess.canViewClips && ClipRequests.videoClips(props.objectId)\n );\n const interactives = Flight.useBasicFetch<InteractiveCollection>(\n featureAccess.canViewInteractives && InteractiveRequests.videoInteractives(props.objectId)\n );\n const relatedVideos = useGetRelatedVideos({\n video: video.data,\n context: props.queryParams.context,\n contextId: props.queryParams.contextId,\n moviesAndTv: props.queryParams.mtv,\n currentUser: currentUser.data\n });\n const pointsOfInterest = useFetchPointsOfInterest(props.objectId);\n \n const audiences = Flight.useBasicFetch<PresentationAudience[]>(\n !!activePresentation &&\n AudienceRequests.audiencesByPresentationId(activePresentation.id)\n );\n\n const { shouldFetchTranscript, shouldShowTranscript } = useShowTranscriptForVideo(props.objectId, props.shareId);\n const transcript = Flight.useBasicFetch<TranscriptResponse>(\n shouldFetchTranscript && currentUser.data?.contentRegion &&\n TranscriptRequests.chaptersAndSubtitles(props.objectId, currentUser.data.contentRegion)\n );\n const { subtitles: allSubtitles, chapters } = transcript?.data || {};\n // only show transcript for ClickView produced subtitle \n const subtitles = allSubtitles?.filter(subtitle => !subtitle.customer);\n \n const captionsRequests = (subtitles && subtitles.length > 0) ?\n subtitles.map(subtitle => TranscriptRequests.subtitleVtt(subtitle.url, subtitle)) :\n [];\n const captions = Flight.useBasicFetchAll<VttSubtitleResponse>(captionsRequests);\n const filteredSubtitles = subtitles?.filter(\n subtitle => captions.data.find(caption => caption.id === subtitle.id)\n ) || [];\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n useSetPageMetadata(PageMetadataHelper.getVideoMetadata({\n content: video.data,\n canonicalLink: SeoHelper.getCanonicalLink({ stripPresentationSlug: true }),\n allowIndexing: false\n }));\n\n useVideoMixin(relatedVideos.videos ?? []);\n useCannotConsumeError(video, { private: ShareLinkPrivateError });\n useDeepLinks({ id: props.objectId, app: 'videos', shareId: props.shareId });\n\n const breadcrumbs = useBreadcrumbs({ name: video.data?.name });\n\n const curriculums = useCurriculums(props.objectId);\n\n const dataLoaded = (\n video.data &&\n currentUser.hasCompleted &&\n pointsOfInterest.hasCompleted &&\n hasCommonVideoPropsCompleted\n );\n\n if (!dataLoaded)\n return <></>;\n\n return (\n <div className='px-3'>\n <PlayPage\n presentationSlug={null}\n video={video.data}\n clips={clips.data?.data}\n interactives={interactives.data?.data}\n curriculums={curriculums}\n relatedVideos={relatedVideos}\n currentUser={currentUser.data}\n pointsOfInterest={pointsOfInterest?.items}\n playNext={props.queryParams?.playNext}\n shareId={props.shareId}\n featureAccess={featureAccess}\n audiences={audiences.data}\n params={props.queryParams}\n canManageVideoAccess={hasPermissions(PermissionName.ManageVideoAccess)}\n tableOfContentsId={props.queryParams?.tocId}\n shouldShowSideTableOfContents={shouldShowSideTableOfContents}\n breadcrumbs={breadcrumbs}\n commonVideoProps={commonVideoProps}\n hasTheatreMode={hasPlayPageTranscript}\n shouldShowTranscript={shouldShowTranscript && (!shouldFetchTranscript || captions.data?.length > 0)}\n vttSubtitles={captions.data || []}\n subtitles={filteredSubtitles}\n chapters={chapters}\n isBot={SeoHelper.isBot()}\n playerApiUrl={config.data?.playerApiUrl}\n hasNewSearch={hasNewSearch}\n liteUrl={config.data.liteUrl}\n />\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{o as e}from"./DAXXjFlN.chunk.js";import{y as t}from"./BftnFbcr.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{_ as s,u as c}from"./BX0wDJmp.chunk.js";import{t as l}from"./DtGDVg4O2.chunk.js";import{t as u}from"./DsXWD-Sn.chunk.js";import{t as d}from"./DdsRCMkN.chunk.js";import{t as f}from"./D_gWf2lC.chunk.js";import{t as p}from"./A8xLZrSw.chunk.js";import{n as m,t as h}from"./BGhJ8TEx.chunk.js";import{n as g}from"./CpFtf-tI2.chunk.js";import{t as _}from"./BVk9tE02.chunk.js";import{n as v}from"./bWC12YrP.chunk.js";import{t as y}from"./DsBWAM3I2.chunk.js";import{p as b,t as x}from"./DXRsxBJw.chunk.js";import{t as S}from"./BiKac8UT2.chunk.js";var C=e(i()),w={arrowContainer:`_arrowContainer_5dwut_1`,downArrow:`_downArrow_5dwut_8`,upArrow:`_upArrow_5dwut_8`,inputContainer:`_inputContainer_5dwut_20`,focus:`_focus_5dwut_24`},T=a(),E=38,D=40,O=3600;k.defaultProps={allowKeyboardInput:!0,size:`lg`};function k(e){let[t,n]=C.useState(`00`),[r,i]=C.useState(`00`),[a,o]=C.useState(`00`),[c,l]=C.useState(!1),u=C.useRef(null),d=C.useRef(null),f=e.duration&&e.duration>=O;function p(e){e.target.select(),l(!0)}function m(e,t,n){let r=e.target.value.replace(/\D/g,``).slice(0,2);t(r),r.length===2&&n?.current&&requestAnimationFrame(()=>n.current.focus())}function h(){e.setTime(e.value+1)}function g(){e.setTime(e.value-1)}function _(n,i){e.allowKeyboardInput&&(v(s.convertDurationToSeconds(t,r,a)),i(n.target.value.padStart(2,`0`)),l(!1))}function v(t){t<0||e.maxValue&&t>e.maxValue||e.setTime(t)}function b(){let t=y.ToDisplayDuration(e.value*1e3,!0).split(`:`);n(String(t[0]).padStart(2,`0`)),i(t[1]),o(t[2])}function x(e){e.keyCode===E&&h(),e.keyCode===D&&g()}return C.useEffect(()=>{b()},[e.value]),(0,T.jsxs)(`div`,{className:`${w.inputContainer} ${c?w.focus:``} position-relative bg-white d-flex align-items-center p-2 rounded-pill font-size-md`,children:[(0,T.jsxs)(`div`,{className:`${f?``:`d-none`}`,children:[(0,T.jsx)(`input`,{type:`text`,className:`border-0 outline-none`,value:t,maxLength:2,placeholder:`HH`,onChange:e=>m(e,n,u),onFocus:p,onBlur:e=>_(e,n),onKeyDown:x,disabled:e.disabled}),(0,T.jsx)(`span`,{children:`:`})]}),(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`input`,{ref:u,type:`text`,className:`border-0 outline-none`,value:r,maxLength:2,placeholder:`MM`,onChange:e=>m(e,i,d),onFocus:p,onBlur:e=>_(e,i),onKeyDown:x,disabled:e.disabled}),(0,T.jsx)(`span`,{children:`:`})]}),(0,T.jsx)(`input`,{ref:d,type:`text`,className:`border-0 outline-none`,value:a,maxLength:2,placeholder:`SS`,onChange:e=>o(e.target.value),onFocus:p,onBlur:e=>_(e,o),onKeyDown:x,disabled:e.disabled}),!e.hideButtons&&(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`div`,{className:w.arrowContainer,onClick:h,children:(0,T.jsx)(`div`,{className:w.upArrow})}),(0,T.jsx)(`div`,{className:w.arrowContainer,onClick:g,children:(0,T.jsx)(`div`,{className:w.downArrow})})]})]})}var A=`shared.clipTimeForm`,j=n.encloseNamespace(A);function M(e){if(isNaN(e.startTime)||isNaN(e.endTime))return(0,T.jsx)(T.Fragment,{});let t=Math.floor(e.endTime)-Math.floor(e.startTime);return(0,T.jsxs)(`div`,{className:`px-3`,children:[(0,T.jsxs)(`form`,{className:`d-flex align-items-center justify-content-center pb-4`,children:[(0,T.jsx)(`div`,{children:(0,T.jsx)(k,{value:e.startTime,setTime:e.setStartTime,duration:e.duration})}),(0,T.jsx)(`span`,{className:`px-2`,children:`-`}),(0,T.jsx)(`div`,{className:`me-2`,children:(0,T.jsx)(k,{value:e.endTime,setTime:e.setEndTime,duration:e.duration})}),(0,T.jsxs)(`span`,{children:[(0,T.jsx)(`strong`,{children:(0,T.jsx)(g,{namespace:A,phrase:`duration`})}),`\xA0`,y.ToDisplayDuration(t*1e3)]})]}),(0,T.jsxs)(`div`,{className:`d-flex justify-content-end`,children:[(0,T.jsx)(`button`,{className:`btn btn-link`,onClick:e.onCancel,children:j(`cancel`)}),(0,T.jsx)(`button`,{className:`btn btn-dark`,onClick:e.onSubmit,children:j(`next`)})]})]})}var N=b.getComponent(`Component`),P=`<svg viewBox="0 0 5 14" pointer-events="none"><g id="Clips" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g id="Clip-2" transform="translate(-835.000000, -632.000000)" fill="#FFFFFF"><g id="Video-Copy" transform="translate(275.000000, 96.000000)"><g id="Handles" transform="translate(560.000000, 536.000000)"><circle id="Oval" cx="1" cy="1" r="1"></circle><circle id="Oval-Copy-2" cx="1" cy="5" r="1"></circle><circle id="Oval-Copy-4" cx="1" cy="9" r="1"></circle><circle id="Oval-Copy-8" cx="1" cy="13" r="1"></circle><circle id="Oval-Copy" cx="4" cy="1" r="1"></circle><circle id="Oval-Copy-3" cx="4" cy="5" r="1"></circle><circle id="Oval-Copy-5" cx="4" cy="9" r="1"></circle><circle id="Oval-Copy-9" cx="4" cy="13" r="1"></circle></g></g></g></g></svg>`,F=class extends N{buildCSSClass(){return`cv-clip-timepoint-handle ${super.buildCSSClass()}`}createEl(e,t,n){return super.createEl(e,{...t,className:this.buildCSSClass(),innerHTML:P},n)}isEventTarget(e){return this.el().contains(e.target)}},I=b.getComponent(`Component`),L=class extends I{constructor(e,t){super(e,t),this.dragStartActive=!1,this.dragEndActive=!1,this.dragSliderActive=!1,this.dragSliderCurrentPosition=null,this.minDuration=Math.min(e.duration(),this.options_.minDuration),this.setStartTime(t.startTime,!1),this.setEndTime(t.endTime,!1),this.startHandle=new F(this.player(),t),this.startHandle.addClass(`cv-clip-start-handle`),this.addChild(this.startHandle),this.endHandle=new F(this.player(),t),this.endHandle.addClass(`cv-clip-end-handle`),this.addChild(this.endHandle),this.on(this.player(),`update:clip:start:time`,({time:e})=>this.setStartTime(e)),this.on(this.player(),`update:clip:end:time`,({time:e})=>this.setEndTime(e)),this.bindListeners(),this.update()}createEl(){return super.createEl(`div`,{className:`cv-clip-timepoint-selector`},{})}update(){this.options_.onChangeStartTime(this.startTime),this.options_.onChangeEndTime(this.endTime),this.requestAnimationFrame(()=>{this.setStartOffset(),this.setWidth()})}setStartTime(e,t=!0){if(isNaN(e))return;let n=this.hasStartTime()&&this.hasEndTime()&&this.endTime-this.startTime,r=this.player().duration()-this.minDuration;if(e>r&&(e=r),e<0&&(e=0),this.startTime=e,this.endTime&&this.endTime-this.startTime<this.minDuration){let e=typeof n==`number`?this.startTime+n:this.startTime+this.minDuration;this.setEndTime(e)}this.player().currentTime(this.startTime),t&&this.update()}setEndTime(e,t=!0){if(isNaN(e))return;let n=this.hasStartTime()&&this.hasEndTime()&&this.endTime-this.startTime,r=this.minDuration;if(e<r&&(e=r),e>this.player().duration()&&(e=this.player().duration()),this.endTime=e,this.startTime&&this.endTime-this.startTime<this.minDuration){let e=typeof n==`number`?this.endTime-n:this.endTime-this.minDuration;this.setStartTime(e)}t&&this.update()}bindListeners(){this.onTimeupdate=this.onTimeupdate.bind(this),this.player().on(`timeupdate`,this.onTimeupdate),this.on(`mousedown`,this.dragStart),this.on(`touchstart`,this.dragStart),this.player().on(`dispose`,()=>{this.player().off(`timeupdate`,this.onTimeupdate),this.off(`mousedown`,this.dragStart),this.off(`touchstart`,this.dragStart)})}hasStartTime(){return typeof this.startTime==`number`}hasEndTime(){return typeof this.endTime==`number`}onTimeupdate(){let e=this.player().currentTime();e>this.endTime&&e<this.endTime+.5&&this.player().pause()}dragStart(e){this.startHandle.isEventTarget(e)&&(e.stopImmediatePropagation(),this.dragStartActive=!0),this.endHandle.isEventTarget(e)&&(e.stopImmediatePropagation(),this.dragEndActive=!0),e.target===this.el()&&(e.stopImmediatePropagation(),this.dragSliderActive=!0,this.dragSliderCurrentPosition=this.getPosition(e));let t=this.el().ownerDocument;this.on(t,`mousemove`,this.drag),this.on(t,`mouseup`,this.dragEnd),this.on(t,`touchmove`,this.drag),this.on(t,`touchend`,this.dragEnd),this.drag(e)}dragEnd(){this.dragStartActive=!1,this.dragEndActive=!1,this.dragSliderActive=!1,this.dragSliderCurrentPosition=null;let e=this.el().ownerDocument;this.off(e,`mousemove`,this.drag),this.off(e,`mouseup`,this.dragEnd),this.off(e,`touchmove`,this.drag),this.off(e,`touchend`,this.dragEnd)}drag(e){if(!this.dragStartActive&&!this.dragEndActive&&!this.dragSliderActive||!b.dom.isSingleLeftClick(e))return;let t=this.getPosition(e),n=t*this.player().duration();this.dragStartActive&&this.handleStartHandleDrag(n),this.dragEndActive&&this.handleEndHandleDrag(n),this.dragSliderActive&&this.handleSliderDrag(t)}handleStartHandleDrag(e){this.setStartTime(e)}handleEndHandleDrag(e){this.setEndTime(e)}handleSliderDrag(e){let t=(e-this.dragSliderCurrentPosition)*this.player().duration(),n=this.startTime+t,r=this.endTime+t;n<=0||r>=this.player().duration()||(this.dragSliderCurrentPosition=e,this.setStartTime(n),this.setEndTime(r))}getPosition(e){return b.dom.getPointerPosition(this.el_.parentNode,e).x}setStartOffset(){this.el_.style.marginLeft=`${this.getPercentage(this.startTime)}%`}setWidth(){this.el_.style.width=`${this.getPercentage(this.endTime-this.startTime)}%`}getPercentage(e){return+(e/this.player().duration()*100).toFixed(4)}},R=b.getComponent(`Component`),z=class extends R{constructor(e,t){super(e,t),this.seekBar_=t.seekBar,this.playProgressBar_=t.playProgressBar,this.bindListeners(),this.player_.one(`dispose`,()=>{this.unbindListeners()})}createEl(e,t,n){return super.createEl(e,{...t,className:`cv-create-clip-progress-indicator`},n)}bindListeners(){this.on(`mousedown`,this.handleMouseDown),this.on(`touchstart`,this.handleMouseDown)}unbindListeners(){let e=this.el_.ownerDocument;this.off(`mousedown`,this.handleMouseDown),this.off(`touchstart`,this.handleMouseDown),this.off(e,`mousemove`,this.handleMouseMove),this.off(e,`mouseup`,this.handleMouseUp),this.off(e,`touchmove`,this.handleMouseMove),this.off(e,`touchend`,this.handleMouseUp)}handleMouseDown(e){if(!b.dom.isSingleLeftClick(e))return;e.stopPropagation(),e.type===`mousedown`&&e.preventDefault(),e.type===`touchstart`&&!b.browser.IS_CHROME&&e.preventDefault(),this.player_.scrubbing(!0),this.videoWasPlaying_=!this.player_.paused(),this.player_.pause(),b.dom.blockTextSelection();let t=this.el_.ownerDocument;this.on(t,`mousemove`,this.handleMouseMove),this.on(t,`mouseup`,this.handleMouseUp),this.on(t,`touchmove`,this.handleMouseMove),this.on(t,`touchend`,this.handleMouseUp),this.handleMouseMove(e),this.player_.addClass(`cv-hide-mouse-time`)}handleMouseMove(e){if(!b.dom.isSingleLeftClick(e))return;let t=b.dom.getPointerPosition(this.seekBar_.el_,e).x*this.player_.duration();t===this.player_.duration()&&(t-=.1),this.player_.currentTime(t),this.playProgressBar_.update()}handleMouseUp(e){b.dom.unblockTextSelection();let t=this.el_.ownerDocument;this.off(t,`mousemove`,this.handleMouseMove),this.off(t,`mouseup`,this.handleMouseUp),this.off(t,`touchmove`,this.handleMouseMove),this.off(t,`touchend`,this.handleMouseUp),e?.stopPropagation(),this.player_.scrubbing(!1),this.player_.trigger({type:`timeupdate`,target:this,manuallyTriggered:!0}),this.videoWasPlaying_&&this.player_.play(),this.seekBar_.update(),this.player_.removeClass(`cv-hide-mouse-time`)}};b.registerComponent(`CreateClipProgressIndicator`,z);var B=b.getComponent(`SeekBar`),V=class extends B{constructor(e,t){super(e,t),this.addClass(`cv-create-clip-seek-bar`)}initialize(e){let t=new L(this.player(),e);this.addChild(t);let n=this.getChild(`playProgressBar`),r=new z(this.player_,{seekBar:this,playProgressBar:n});n.addChild(r)}};V.prototype.options_={children:[`playProgressBar`],barName:`playProgressBar`},!b.browser.IS_IOS&&!b.browser.IS_ANDROID&&V.prototype.options_.children.splice(1,0,`mouseTimeDisplay`),b.registerComponent(`CreateClipSeekBar`,V);var H=b.getPlugin(`plugin`),U=5,W=class extends H{constructor(e,t){super(e,t),this.options=t,this.initCreateClipSeekBar=this.initCreateClipSeekBar.bind(this),this.player.one(`loadedmetadata`,()=>this.player.ready(this.initCreateClipSeekBar))}initCreateClipSeekBar(){let e=this.player.controlBar.getChild(`ProgressControl`)?.getChild(`SeekBar`);if(!e)return;let t=!isNaN(this.options.startTime)&&this.options.startTime>=0?this.options.startTime:0,n=!isNaN(this.options.endTime)&&this.options.endTime<=this.player.duration()?this.options.endTime:this.player.duration(),r=Math.min(this.options.minDuration||U,this.player.duration());e.initialize({startTime:t,endTime:n,minDuration:r,onChangeStartTime:this.options.onChangeStartTime,onChangeEndTime:this.options.onChangeEndTime})}dispose(){this.player.off(`loadedmetadata`,this.initCreateClipSeekBar),super.dispose()}};b.registerPlugin(`createClipPlugin`,W);var G=class extends x{constructor(e,t){super(e,{allowFullscreen:!0,...t,playbackRates:null,enableLocalCache:!1})}getPlayerClassName(){return`cv-create-clip-player`}configurePlugins(){let{startTime:e,endTime:t,minDuration:n,onChangeStartTime:r,onChangeEndTime:i}=this.options;this.player.createClipPlugin({startTime:e,endTime:t,minDuration:n,onChangeStartTime:r,onChangeEndTime:i})}getPlayerOptions(){let e=super.getPlayerOptions();return e.inactivityTimeout=0,e}getSeekBarName(){return`CreateClipSeekBar`}getAnalyticsPlayerType(){return`create-clip-player`}};function K(e){let{onReady:t,onDispose:n}=e,r=C.useRef(null),i=C.useRef(null);return C.useEffect(()=>{if(i.current?.dispose(),r)return i.current=new G(r.current,e),t&&i.current.ready(()=>{t(S(i.current))}),n&&i.current.one(`dispose`,n),()=>{i.current?.dispose()}},[e.viewKey]),C.useEffect(()=>{i.current?.trigger({type:`update:clip:start:time`,time:e.startTime})},[e.startTime]),C.useEffect(()=>{i.current?.trigger({type:`update:clip:end:time`,time:e.endTime})},[e.endTime]),(0,T.jsx)(`div`,{ref:r})}var q=`edit-clip-timepoints`,J=`shared.editClipTimepoints`,Y=n.encloseNamespace(J),X=30,Z=5;function Q(e){_.render((0,T.jsx)(`p`,{children:e}),{title:Y(`errorHeading`),cancelButtonProps:{variant:`link`,text:Y(`close`)}})}function $(e){if(!e)return 0;let t=Number(e);return isNaN(t)?0:t}function ee(e){let i=C.useRef(null),a=$(e.startTime),[s,g]=C.useState(a),[_,y]=C.useState(a+X),b=c(f.config()),x=c(!!e.id&&l.clip(e.id)),S=x.data?._parentVideo?.id||e.videoId,w=c(!!S&&h.createViewKey(S,m.MasterObject)),E=c(!!S&&u.video(S)),[D,O]=C.useState(0),k=v();p({title:e.id?x.data?.name:Y(`pageTitle`)}),C.useEffect(()=>{k.lock({id:q,title:n.getPhrase(J,`navLockTitle`),text:n.getPhrase(J,`navLockBody`)})},[]),C.useEffect(()=>{x.data&&(g(x.data.startTime),y(x.data.endTime))},[x.data]);function A(e){i.current=e,e.on(`durationchange`,()=>O(e.duration()))}function j(){let n=``;if(s>_&&(n=Y(`startTimeGreaterThanEndTime`)),_-s<Z&&(n=Y(`tooShort`,{minDuration:Z})),n){Q(n);return}k.unlock(q),t.trigger({application:o.CLIPS,action:e.id?d.Clips.EDIT_CLIP_DETAILS_POPUP:d.Clips.CREATE_CLIP_DETAILS,args:e.id?[e.id]:[e.videoId],params:{startTime:s,endTime:_,isCopying:e.isCopying}})}function N(){let e=i.current?.currentTime()??0;t.trigger({application:o.VIDEOS,action:d.Videos.PLAY_VIDEO,args:[null,E.data?.id,r.slugify(E.data?.name)],params:{t:e}})}return!e.id&&!e.videoId?(0,T.jsx)(T.Fragment,{}):(0,T.jsx)(`div`,{className:`px-3`,children:!!b.data&&!!w.data&&!!E.data&&(!e.id||!!x.data)&&(0,T.jsxs)(`div`,{className:`pb-3`,children:[(0,T.jsx)(`div`,{className:`mb-3`,children:(0,T.jsx)(K,{onReady:A,playerApi:new URL(b.data.playerApiUrl),viewKey:w.data.viewKey,startTime:s,endTime:_,onChangeStartTime:g,onChangeEndTime:y,minDuration:Z,autoplay:!0})}),(0,T.jsx)(M,{startTime:s,endTime:_,setStartTime:g,setEndTime:y,onSubmit:j,onCancel:N,duration:D})]})})}export{ee as EditClipTimepointsView};
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{o as e}from"./DAXXjFlN.chunk.js";import{y as t}from"./BftnFbcr.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{_ as s,u as c}from"./BX0wDJmp.chunk.js";import{t as l}from"./DtGDVg4O2.chunk.js";import{t as u}from"./DsXWD-Sn.chunk.js";import{t as d}from"./DdsRCMkN.chunk.js";import{t as f}from"./D_gWf2lC.chunk.js";import{t as p}from"./A8xLZrSw.chunk.js";import{n as m,t as h}from"./BGhJ8TEx.chunk.js";import{n as g}from"./CpFtf-tI2.chunk.js";import{t as _}from"./BVk9tE02.chunk.js";import{n as v}from"./bWC12YrP.chunk.js";import{t as y}from"./DsBWAM3I2.chunk.js";import{p as b,t as x}from"./DTliAJ8L.chunk.js";import{t as S}from"./BiKac8UT2.chunk.js";var C=e(i()),w={arrowContainer:`_arrowContainer_5dwut_1`,downArrow:`_downArrow_5dwut_8`,upArrow:`_upArrow_5dwut_8`,inputContainer:`_inputContainer_5dwut_20`,focus:`_focus_5dwut_24`},T=a(),E=38,D=40,O=3600;k.defaultProps={allowKeyboardInput:!0,size:`lg`};function k(e){let[t,n]=C.useState(`00`),[r,i]=C.useState(`00`),[a,o]=C.useState(`00`),[c,l]=C.useState(!1),u=C.useRef(null),d=C.useRef(null),f=e.duration&&e.duration>=O;function p(e){e.target.select(),l(!0)}function m(e,t,n){let r=e.target.value.replace(/\D/g,``).slice(0,2);t(r),r.length===2&&n?.current&&requestAnimationFrame(()=>n.current.focus())}function h(){e.setTime(e.value+1)}function g(){e.setTime(e.value-1)}function _(n,i){e.allowKeyboardInput&&(v(s.convertDurationToSeconds(t,r,a)),i(n.target.value.padStart(2,`0`)),l(!1))}function v(t){t<0||e.maxValue&&t>e.maxValue||e.setTime(t)}function b(){let t=y.ToDisplayDuration(e.value*1e3,!0).split(`:`);n(String(t[0]).padStart(2,`0`)),i(t[1]),o(t[2])}function x(e){e.keyCode===E&&h(),e.keyCode===D&&g()}return C.useEffect(()=>{b()},[e.value]),(0,T.jsxs)(`div`,{className:`${w.inputContainer} ${c?w.focus:``} position-relative bg-white d-flex align-items-center p-2 rounded-pill font-size-md`,children:[(0,T.jsxs)(`div`,{className:`${f?``:`d-none`}`,children:[(0,T.jsx)(`input`,{type:`text`,className:`border-0 outline-none`,value:t,maxLength:2,placeholder:`HH`,onChange:e=>m(e,n,u),onFocus:p,onBlur:e=>_(e,n),onKeyDown:x,disabled:e.disabled}),(0,T.jsx)(`span`,{children:`:`})]}),(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`input`,{ref:u,type:`text`,className:`border-0 outline-none`,value:r,maxLength:2,placeholder:`MM`,onChange:e=>m(e,i,d),onFocus:p,onBlur:e=>_(e,i),onKeyDown:x,disabled:e.disabled}),(0,T.jsx)(`span`,{children:`:`})]}),(0,T.jsx)(`input`,{ref:d,type:`text`,className:`border-0 outline-none`,value:a,maxLength:2,placeholder:`SS`,onChange:e=>o(e.target.value),onFocus:p,onBlur:e=>_(e,o),onKeyDown:x,disabled:e.disabled}),!e.hideButtons&&(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`div`,{className:w.arrowContainer,onClick:h,children:(0,T.jsx)(`div`,{className:w.upArrow})}),(0,T.jsx)(`div`,{className:w.arrowContainer,onClick:g,children:(0,T.jsx)(`div`,{className:w.downArrow})})]})]})}var A=`shared.clipTimeForm`,j=n.encloseNamespace(A);function M(e){if(isNaN(e.startTime)||isNaN(e.endTime))return(0,T.jsx)(T.Fragment,{});let t=Math.floor(e.endTime)-Math.floor(e.startTime);return(0,T.jsxs)(`div`,{className:`px-3`,children:[(0,T.jsxs)(`form`,{className:`d-flex align-items-center justify-content-center pb-4`,children:[(0,T.jsx)(`div`,{children:(0,T.jsx)(k,{value:e.startTime,setTime:e.setStartTime,duration:e.duration})}),(0,T.jsx)(`span`,{className:`px-2`,children:`-`}),(0,T.jsx)(`div`,{className:`me-2`,children:(0,T.jsx)(k,{value:e.endTime,setTime:e.setEndTime,duration:e.duration})}),(0,T.jsxs)(`span`,{children:[(0,T.jsx)(`strong`,{children:(0,T.jsx)(g,{namespace:A,phrase:`duration`})}),`\xA0`,y.ToDisplayDuration(t*1e3)]})]}),(0,T.jsxs)(`div`,{className:`d-flex justify-content-end`,children:[(0,T.jsx)(`button`,{className:`btn btn-link`,onClick:e.onCancel,children:j(`cancel`)}),(0,T.jsx)(`button`,{className:`btn btn-dark`,onClick:e.onSubmit,children:j(`next`)})]})]})}var N=b.getComponent(`Component`),P=`<svg viewBox="0 0 5 14" pointer-events="none"><g id="Clips" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g id="Clip-2" transform="translate(-835.000000, -632.000000)" fill="#FFFFFF"><g id="Video-Copy" transform="translate(275.000000, 96.000000)"><g id="Handles" transform="translate(560.000000, 536.000000)"><circle id="Oval" cx="1" cy="1" r="1"></circle><circle id="Oval-Copy-2" cx="1" cy="5" r="1"></circle><circle id="Oval-Copy-4" cx="1" cy="9" r="1"></circle><circle id="Oval-Copy-8" cx="1" cy="13" r="1"></circle><circle id="Oval-Copy" cx="4" cy="1" r="1"></circle><circle id="Oval-Copy-3" cx="4" cy="5" r="1"></circle><circle id="Oval-Copy-5" cx="4" cy="9" r="1"></circle><circle id="Oval-Copy-9" cx="4" cy="13" r="1"></circle></g></g></g></g></svg>`,F=class extends N{buildCSSClass(){return`cv-clip-timepoint-handle ${super.buildCSSClass()}`}createEl(e,t,n){return super.createEl(e,{...t,className:this.buildCSSClass(),innerHTML:P},n)}isEventTarget(e){return this.el().contains(e.target)}},I=b.getComponent(`Component`),L=class extends I{constructor(e,t){super(e,t),this.dragStartActive=!1,this.dragEndActive=!1,this.dragSliderActive=!1,this.dragSliderCurrentPosition=null,this.minDuration=Math.min(e.duration(),this.options_.minDuration),this.setStartTime(t.startTime,!1),this.setEndTime(t.endTime,!1),this.startHandle=new F(this.player(),t),this.startHandle.addClass(`cv-clip-start-handle`),this.addChild(this.startHandle),this.endHandle=new F(this.player(),t),this.endHandle.addClass(`cv-clip-end-handle`),this.addChild(this.endHandle),this.on(this.player(),`update:clip:start:time`,({time:e})=>this.setStartTime(e)),this.on(this.player(),`update:clip:end:time`,({time:e})=>this.setEndTime(e)),this.bindListeners(),this.update()}createEl(){return super.createEl(`div`,{className:`cv-clip-timepoint-selector`},{})}update(){this.options_.onChangeStartTime(this.startTime),this.options_.onChangeEndTime(this.endTime),this.requestAnimationFrame(()=>{this.setStartOffset(),this.setWidth()})}setStartTime(e,t=!0){if(isNaN(e))return;let n=this.hasStartTime()&&this.hasEndTime()&&this.endTime-this.startTime,r=this.player().duration()-this.minDuration;if(e>r&&(e=r),e<0&&(e=0),this.startTime=e,this.endTime&&this.endTime-this.startTime<this.minDuration){let e=typeof n==`number`?this.startTime+n:this.startTime+this.minDuration;this.setEndTime(e)}this.player().currentTime(this.startTime),t&&this.update()}setEndTime(e,t=!0){if(isNaN(e))return;let n=this.hasStartTime()&&this.hasEndTime()&&this.endTime-this.startTime,r=this.minDuration;if(e<r&&(e=r),e>this.player().duration()&&(e=this.player().duration()),this.endTime=e,this.startTime&&this.endTime-this.startTime<this.minDuration){let e=typeof n==`number`?this.endTime-n:this.endTime-this.minDuration;this.setStartTime(e)}t&&this.update()}bindListeners(){this.onTimeupdate=this.onTimeupdate.bind(this),this.player().on(`timeupdate`,this.onTimeupdate),this.on(`mousedown`,this.dragStart),this.on(`touchstart`,this.dragStart),this.player().on(`dispose`,()=>{this.player().off(`timeupdate`,this.onTimeupdate),this.off(`mousedown`,this.dragStart),this.off(`touchstart`,this.dragStart)})}hasStartTime(){return typeof this.startTime==`number`}hasEndTime(){return typeof this.endTime==`number`}onTimeupdate(){let e=this.player().currentTime();e>this.endTime&&e<this.endTime+.5&&this.player().pause()}dragStart(e){this.startHandle.isEventTarget(e)&&(e.stopImmediatePropagation(),this.dragStartActive=!0),this.endHandle.isEventTarget(e)&&(e.stopImmediatePropagation(),this.dragEndActive=!0),e.target===this.el()&&(e.stopImmediatePropagation(),this.dragSliderActive=!0,this.dragSliderCurrentPosition=this.getPosition(e));let t=this.el().ownerDocument;this.on(t,`mousemove`,this.drag),this.on(t,`mouseup`,this.dragEnd),this.on(t,`touchmove`,this.drag),this.on(t,`touchend`,this.dragEnd),this.drag(e)}dragEnd(){this.dragStartActive=!1,this.dragEndActive=!1,this.dragSliderActive=!1,this.dragSliderCurrentPosition=null;let e=this.el().ownerDocument;this.off(e,`mousemove`,this.drag),this.off(e,`mouseup`,this.dragEnd),this.off(e,`touchmove`,this.drag),this.off(e,`touchend`,this.dragEnd)}drag(e){if(!this.dragStartActive&&!this.dragEndActive&&!this.dragSliderActive||!b.dom.isSingleLeftClick(e))return;let t=this.getPosition(e),n=t*this.player().duration();this.dragStartActive&&this.handleStartHandleDrag(n),this.dragEndActive&&this.handleEndHandleDrag(n),this.dragSliderActive&&this.handleSliderDrag(t)}handleStartHandleDrag(e){this.setStartTime(e)}handleEndHandleDrag(e){this.setEndTime(e)}handleSliderDrag(e){let t=(e-this.dragSliderCurrentPosition)*this.player().duration(),n=this.startTime+t,r=this.endTime+t;n<=0||r>=this.player().duration()||(this.dragSliderCurrentPosition=e,this.setStartTime(n),this.setEndTime(r))}getPosition(e){return b.dom.getPointerPosition(this.el_.parentNode,e).x}setStartOffset(){this.el_.style.marginLeft=`${this.getPercentage(this.startTime)}%`}setWidth(){this.el_.style.width=`${this.getPercentage(this.endTime-this.startTime)}%`}getPercentage(e){return+(e/this.player().duration()*100).toFixed(4)}},R=b.getComponent(`Component`),z=class extends R{constructor(e,t){super(e,t),this.seekBar_=t.seekBar,this.playProgressBar_=t.playProgressBar,this.bindListeners(),this.player_.one(`dispose`,()=>{this.unbindListeners()})}createEl(e,t,n){return super.createEl(e,{...t,className:`cv-create-clip-progress-indicator`},n)}bindListeners(){this.on(`mousedown`,this.handleMouseDown),this.on(`touchstart`,this.handleMouseDown)}unbindListeners(){let e=this.el_.ownerDocument;this.off(`mousedown`,this.handleMouseDown),this.off(`touchstart`,this.handleMouseDown),this.off(e,`mousemove`,this.handleMouseMove),this.off(e,`mouseup`,this.handleMouseUp),this.off(e,`touchmove`,this.handleMouseMove),this.off(e,`touchend`,this.handleMouseUp)}handleMouseDown(e){if(!b.dom.isSingleLeftClick(e))return;e.stopPropagation(),e.type===`mousedown`&&e.preventDefault(),e.type===`touchstart`&&!b.browser.IS_CHROME&&e.preventDefault(),this.player_.scrubbing(!0),this.videoWasPlaying_=!this.player_.paused(),this.player_.pause(),b.dom.blockTextSelection();let t=this.el_.ownerDocument;this.on(t,`mousemove`,this.handleMouseMove),this.on(t,`mouseup`,this.handleMouseUp),this.on(t,`touchmove`,this.handleMouseMove),this.on(t,`touchend`,this.handleMouseUp),this.handleMouseMove(e),this.player_.addClass(`cv-hide-mouse-time`)}handleMouseMove(e){if(!b.dom.isSingleLeftClick(e))return;let t=b.dom.getPointerPosition(this.seekBar_.el_,e).x*this.player_.duration();t===this.player_.duration()&&(t-=.1),this.player_.currentTime(t),this.playProgressBar_.update()}handleMouseUp(e){b.dom.unblockTextSelection();let t=this.el_.ownerDocument;this.off(t,`mousemove`,this.handleMouseMove),this.off(t,`mouseup`,this.handleMouseUp),this.off(t,`touchmove`,this.handleMouseMove),this.off(t,`touchend`,this.handleMouseUp),e?.stopPropagation(),this.player_.scrubbing(!1),this.player_.trigger({type:`timeupdate`,target:this,manuallyTriggered:!0}),this.videoWasPlaying_&&this.player_.play(),this.seekBar_.update(),this.player_.removeClass(`cv-hide-mouse-time`)}};b.registerComponent(`CreateClipProgressIndicator`,z);var B=b.getComponent(`SeekBar`),V=class extends B{constructor(e,t){super(e,t),this.addClass(`cv-create-clip-seek-bar`)}initialize(e){let t=new L(this.player(),e);this.addChild(t);let n=this.getChild(`playProgressBar`),r=new z(this.player_,{seekBar:this,playProgressBar:n});n.addChild(r)}};V.prototype.options_={children:[`playProgressBar`],barName:`playProgressBar`},!b.browser.IS_IOS&&!b.browser.IS_ANDROID&&V.prototype.options_.children.splice(1,0,`mouseTimeDisplay`),b.registerComponent(`CreateClipSeekBar`,V);var H=b.getPlugin(`plugin`),U=5,W=class extends H{constructor(e,t){super(e,t),this.options=t,this.initCreateClipSeekBar=this.initCreateClipSeekBar.bind(this),this.player.one(`loadedmetadata`,()=>this.player.ready(this.initCreateClipSeekBar))}initCreateClipSeekBar(){let e=this.player.controlBar.getChild(`ProgressControl`)?.getChild(`SeekBar`);if(!e)return;let t=!isNaN(this.options.startTime)&&this.options.startTime>=0?this.options.startTime:0,n=!isNaN(this.options.endTime)&&this.options.endTime<=this.player.duration()?this.options.endTime:this.player.duration(),r=Math.min(this.options.minDuration||U,this.player.duration());e.initialize({startTime:t,endTime:n,minDuration:r,onChangeStartTime:this.options.onChangeStartTime,onChangeEndTime:this.options.onChangeEndTime})}dispose(){this.player.off(`loadedmetadata`,this.initCreateClipSeekBar),super.dispose()}};b.registerPlugin(`createClipPlugin`,W);var G=class extends x{constructor(e,t){super(e,{allowFullscreen:!0,...t,playbackRates:null,enableLocalCache:!1})}getPlayerClassName(){return`cv-create-clip-player`}configurePlugins(){let{startTime:e,endTime:t,minDuration:n,onChangeStartTime:r,onChangeEndTime:i}=this.options;this.player.createClipPlugin({startTime:e,endTime:t,minDuration:n,onChangeStartTime:r,onChangeEndTime:i})}getPlayerOptions(){let e=super.getPlayerOptions();return e.inactivityTimeout=0,e}getSeekBarName(){return`CreateClipSeekBar`}getAnalyticsPlayerType(){return`create-clip-player`}};function K(e){let{onReady:t,onDispose:n}=e,r=C.useRef(null),i=C.useRef(null);return C.useEffect(()=>{if(i.current?.dispose(),r)return i.current=new G(r.current,e),t&&i.current.ready(()=>{t(S(i.current))}),n&&i.current.one(`dispose`,n),()=>{i.current?.dispose()}},[e.viewKey]),C.useEffect(()=>{i.current?.trigger({type:`update:clip:start:time`,time:e.startTime})},[e.startTime]),C.useEffect(()=>{i.current?.trigger({type:`update:clip:end:time`,time:e.endTime})},[e.endTime]),(0,T.jsx)(`div`,{ref:r})}var q=`edit-clip-timepoints`,J=`shared.editClipTimepoints`,Y=n.encloseNamespace(J),X=30,Z=5;function Q(e){_.render((0,T.jsx)(`p`,{children:e}),{title:Y(`errorHeading`),cancelButtonProps:{variant:`link`,text:Y(`close`)}})}function $(e){if(!e)return 0;let t=Number(e);return isNaN(t)?0:t}function ee(e){let i=C.useRef(null),a=$(e.startTime),[s,g]=C.useState(a),[_,y]=C.useState(a+X),b=c(f.config()),x=c(!!e.id&&l.clip(e.id)),S=x.data?._parentVideo?.id||e.videoId,w=c(!!S&&h.createViewKey(S,m.MasterObject)),E=c(!!S&&u.video(S)),[D,O]=C.useState(0),k=v();p({title:e.id?x.data?.name:Y(`pageTitle`)}),C.useEffect(()=>{k.lock({id:q,title:n.getPhrase(J,`navLockTitle`),text:n.getPhrase(J,`navLockBody`)})},[]),C.useEffect(()=>{x.data&&(g(x.data.startTime),y(x.data.endTime))},[x.data]);function A(e){i.current=e,e.on(`durationchange`,()=>O(e.duration()))}function j(){let n=``;if(s>_&&(n=Y(`startTimeGreaterThanEndTime`)),_-s<Z&&(n=Y(`tooShort`,{minDuration:Z})),n){Q(n);return}k.unlock(q),t.trigger({application:o.CLIPS,action:e.id?d.Clips.EDIT_CLIP_DETAILS_POPUP:d.Clips.CREATE_CLIP_DETAILS,args:e.id?[e.id]:[e.videoId],params:{startTime:s,endTime:_,isCopying:e.isCopying}})}function N(){let e=i.current?.currentTime()??0;t.trigger({application:o.VIDEOS,action:d.Videos.PLAY_VIDEO,args:[null,E.data?.id,r.slugify(E.data?.name)],params:{t:e}})}return!e.id&&!e.videoId?(0,T.jsx)(T.Fragment,{}):(0,T.jsx)(`div`,{className:`px-3`,children:!!b.data&&!!w.data&&!!E.data&&(!e.id||!!x.data)&&(0,T.jsxs)(`div`,{className:`pb-3`,children:[(0,T.jsx)(`div`,{className:`mb-3`,children:(0,T.jsx)(K,{onReady:A,playerApi:new URL(b.data.playerApiUrl),viewKey:w.data.viewKey,startTime:s,endTime:_,onChangeStartTime:g,onChangeEndTime:y,minDuration:Z,autoplay:!0})}),(0,T.jsx)(M,{startTime:s,endTime:_,setStartTime:g,setEndTime:y,onSubmit:j,onCancel:N,duration:D})]})})}export{ee as EditClipTimepointsView};
|
|
2
|
+
//# sourceMappingURL=CjwT65ug.chunk.js.map
|