@clickview/lite 0.104.0-rc.0 → 0.104.0-rc.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 +686 -686
- package/dist/bundles.json +1 -1
- package/dist/en.json +1 -1
- package/dist/scripts/{BYC-9gzd.chunk.js → 6BvA1WyF.chunk.js} +2 -2
- package/dist/scripts/{BYC-9gzd.chunk.js.map → 6BvA1WyF.chunk.js.map} +1 -1
- package/dist/scripts/B1hsuVfV2.chunk.js +2 -0
- package/dist/scripts/{BwBWuxjr2.chunk.js.map → B1hsuVfV2.chunk.js.map} +1 -1
- package/dist/scripts/{CFxoQ45v.chunk.js → B4GpjPP-.chunk.js} +2 -2
- package/dist/scripts/{CFxoQ45v.chunk.js.map → B4GpjPP-.chunk.js.map} +1 -1
- package/dist/scripts/{HyBCRhmv2.chunk.js → BAYtWmRb2.chunk.js} +3 -3
- package/dist/scripts/{HyBCRhmv2.chunk.js.map → BAYtWmRb2.chunk.js.map} +1 -1
- package/dist/scripts/{CVEuWE2q2.chunk.js → BBAIRd3r2.chunk.js} +2 -2
- package/dist/scripts/{CVEuWE2q2.chunk.js.map → BBAIRd3r2.chunk.js.map} +1 -1
- package/dist/scripts/{C2Hgija5.chunk.js → BGH3t983.chunk.js} +2 -2
- package/dist/scripts/{C2Hgija5.chunk.js.map → BGH3t983.chunk.js.map} +1 -1
- package/dist/scripts/{DsSd-eh2.chunk.js → BIjzNf4b.chunk.js} +2 -2
- package/dist/scripts/{DsSd-eh2.chunk.js.map → BIjzNf4b.chunk.js.map} +1 -1
- package/dist/scripts/{D20SeFH5.chunk.js → BLad2z5b.chunk.js} +2 -2
- package/dist/scripts/{D20SeFH5.chunk.js.map → BLad2z5b.chunk.js.map} +1 -1
- package/dist/scripts/{BklRyGO0.chunk.js → BMZNQKEe.chunk.js} +2 -2
- package/dist/scripts/{BklRyGO0.chunk.js.map → BMZNQKEe.chunk.js.map} +1 -1
- package/dist/scripts/{BOuzZEkK2.chunk.js → BPjqerK42.chunk.js} +2 -2
- package/dist/scripts/BPjqerK42.chunk.js.map +1 -0
- package/dist/scripts/{fjQ026Rz2.chunk.js → BQS6kDvJ2.chunk.js} +2 -2
- package/dist/scripts/{fjQ026Rz2.chunk.js.map → BQS6kDvJ2.chunk.js.map} +1 -1
- package/dist/scripts/{CnfcodVE2.chunk.js → BeOS0_E02.chunk.js} +2 -2
- package/dist/scripts/{CnfcodVE2.chunk.js.map → BeOS0_E02.chunk.js.map} +1 -1
- package/dist/scripts/{kz-JIHlB2.chunk.js → Bnyn-It62.chunk.js} +2 -2
- package/dist/scripts/{kz-JIHlB2.chunk.js.map → Bnyn-It62.chunk.js.map} +1 -1
- package/dist/scripts/{BbKY_Dwq.chunk.js → CJCh1Gq6.chunk.js} +2 -2
- package/dist/scripts/{BbKY_Dwq.chunk.js.map → CJCh1Gq6.chunk.js.map} +1 -1
- package/dist/scripts/{CoUj6M-_.chunk.js → CKGiikBV.chunk.js} +2 -2
- package/dist/scripts/{CoUj6M-_.chunk.js.map → CKGiikBV.chunk.js.map} +1 -1
- package/dist/scripts/{B8t1n8_x2.chunk.js → CL5P1KMy2.chunk.js} +2 -2
- package/dist/scripts/{B8t1n8_x2.chunk.js.map → CL5P1KMy2.chunk.js.map} +1 -1
- package/dist/scripts/{Bz-3cXSL.chunk.js → CMKTpGri.chunk.js} +2 -2
- package/dist/scripts/{Bz-3cXSL.chunk.js.map → CMKTpGri.chunk.js.map} +1 -1
- package/dist/scripts/{ByMZucv2.chunk.js → CgL1gDuH.chunk.js} +2 -2
- package/dist/scripts/{ByMZucv2.chunk.js.map → CgL1gDuH.chunk.js.map} +1 -1
- package/dist/scripts/{VDqAyMTi2.chunk.js → ClMXRZea2.chunk.js} +2 -2
- package/dist/scripts/{VDqAyMTi2.chunk.js.map → ClMXRZea2.chunk.js.map} +1 -1
- package/dist/scripts/{Bw2cauzs2.chunk.js → Cm6SLr7W2.chunk.js} +3 -3
- package/dist/scripts/{Bw2cauzs2.chunk.js.map → Cm6SLr7W2.chunk.js.map} +1 -1
- package/dist/scripts/{gF9PGTMC.chunk.js → Cmjtel65.chunk.js} +2 -2
- package/dist/scripts/{gF9PGTMC.chunk.js.map → Cmjtel65.chunk.js.map} +1 -1
- package/dist/scripts/{DwLSTi6C.chunk.js → CnYpIR5V.chunk.js} +2 -2
- package/dist/scripts/{DwLSTi6C.chunk.js.map → CnYpIR5V.chunk.js.map} +1 -1
- package/dist/scripts/{BpFyfI-52.chunk.js → D2vAOC7r2.chunk.js} +2 -2
- package/dist/scripts/{BpFyfI-52.chunk.js.map → D2vAOC7r2.chunk.js.map} +1 -1
- package/dist/scripts/{29-YRbOp.chunk.js → D4uneRs9.chunk.js} +2 -2
- package/dist/scripts/{29-YRbOp.chunk.js.map → D4uneRs9.chunk.js.map} +1 -1
- package/dist/scripts/{DbQFpTve.chunk.js → DIeIfhGe.chunk.js} +2 -2
- package/dist/scripts/{DbQFpTve.chunk.js.map → DIeIfhGe.chunk.js.map} +1 -1
- package/dist/scripts/{CrGWZr2R2.chunk.js → DRHbASmP2.chunk.js} +2 -2
- package/dist/scripts/{CrGWZr2R2.chunk.js.map → DRHbASmP2.chunk.js.map} +1 -1
- package/dist/scripts/{n4utAY5E2.chunk.js → DTnfO2MH2.chunk.js} +2 -2
- package/dist/scripts/{n4utAY5E2.chunk.js.map → DTnfO2MH2.chunk.js.map} +1 -1
- package/dist/scripts/{BcMb1XKL.chunk.js → DUJvtd00.chunk.js} +2 -2
- package/dist/scripts/{BcMb1XKL.chunk.js.map → DUJvtd00.chunk.js.map} +1 -1
- package/dist/scripts/{B0DGioRk.chunk.js → DWz2oR7C.chunk.js} +2 -2
- package/dist/scripts/{B0DGioRk.chunk.js.map → DWz2oR7C.chunk.js.map} +1 -1
- package/dist/scripts/{CTUTwtJp.chunk.js → DZD8iLCw.chunk.js} +2 -2
- package/dist/scripts/{CTUTwtJp.chunk.js.map → DZD8iLCw.chunk.js.map} +1 -1
- package/dist/scripts/{C-gsezmj.chunk.js → D_foXB2p.chunk.js} +2 -2
- package/dist/scripts/{C-gsezmj.chunk.js.map → D_foXB2p.chunk.js.map} +1 -1
- package/dist/scripts/{Br8WvETm.chunk.js → Dhv7zSEB.chunk.js} +2 -2
- package/dist/scripts/{Br8WvETm.chunk.js.map → Dhv7zSEB.chunk.js.map} +1 -1
- package/dist/scripts/{B6p7xJj9.chunk.js → DpHKtTzO.chunk.js} +2 -2
- package/dist/scripts/{B6p7xJj9.chunk.js.map → DpHKtTzO.chunk.js.map} +1 -1
- package/dist/scripts/{DynqFaq92.chunk.js → GcexF25w2.chunk.js} +2 -2
- package/dist/scripts/{DynqFaq92.chunk.js.map → GcexF25w2.chunk.js.map} +1 -1
- package/dist/scripts/{DYN56vJ6.chunk.js → _XhYAc8v.chunk.js} +2 -2
- package/dist/scripts/{DYN56vJ6.chunk.js.map → _XhYAc8v.chunk.js.map} +1 -1
- package/dist/scripts/{app-4vEzpLow.js → app-DamRTcio.js} +4 -4
- package/dist/scripts/{app-4vEzpLow.js.map → app-DamRTcio.js.map} +1 -1
- package/dist/scripts/{B2PLlkVH.chunk.js → dZhIkfV6.chunk.js} +3 -3
- package/dist/scripts/{B2PLlkVH.chunk.js.map → dZhIkfV6.chunk.js.map} +1 -1
- package/dist/scripts/{DZQhE4mm.chunk.js → eSX6I2aK.chunk.js} +2 -2
- package/dist/scripts/{DZQhE4mm.chunk.js.map → eSX6I2aK.chunk.js.map} +1 -1
- package/dist/scripts/{DnogtDGY2.chunk.js → gTfMMiRw2.chunk.js} +2 -2
- package/dist/scripts/{DnogtDGY2.chunk.js.map → gTfMMiRw2.chunk.js.map} +1 -1
- package/dist/scripts/{DYW8v4_j2.chunk.js → xUmhnDE42.chunk.js} +2 -2
- package/dist/scripts/{DYW8v4_j2.chunk.js.map → xUmhnDE42.chunk.js.map} +1 -1
- package/package.json +1 -1
- package/dist/scripts/BOuzZEkK2.chunk.js.map +0 -1
- package/dist/scripts/BwBWuxjr2.chunk.js +0 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{o as e}from"./DAXXjFlN.chunk.js";import{_ as t,y as n}from"./BftnFbcr.chunk.js";import"./DFZS3Ffo.chunk.js";import{t as r}from"./CQyJ7YGa.chunk.js";import{t as i}from"./ChzgIDQv.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"./DGmmTRu72.chunk.js";import{t as g}from"./BDwjs8qz2.chunk.js";import{t as _}from"./BC8PeYqm.chunk.js";import{t as v}from"./CqrjHjAN.chunk.js";import{t as y}from"./eoAypzU3.chunk.js";import{t as b}from"./D_gWf2lC.chunk.js";import{t as x}from"./_GCZ-60i.chunk.js";import{t as S}from"./C6-aC3vu.chunk.js";import{n as C,t as w}from"./BGhJ8TEx.chunk.js";import{t as T}from"./Bbv3vbm7.chunk.js";import{t as E}from"./6UdHSMo02.chunk.js";import{t as D}from"./CgW21-1J.chunk.js";import{n as O,r as k}from"./BGswYbRT.chunk.js";import{t as A}from"./C9XBZFiR.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"./DFZS3Ffo.chunk.js";import{t as r}from"./CQyJ7YGa.chunk.js";import{t as i}from"./ChzgIDQv.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"./DGmmTRu72.chunk.js";import{t as g}from"./BDwjs8qz2.chunk.js";import{t as _}from"./BC8PeYqm.chunk.js";import{t as v}from"./CqrjHjAN.chunk.js";import{t as y}from"./eoAypzU3.chunk.js";import{t as b}from"./D_gWf2lC.chunk.js";import{t as x}from"./_GCZ-60i.chunk.js";import{t as S}from"./C6-aC3vu.chunk.js";import{n as C,t as w}from"./BGhJ8TEx.chunk.js";import{t as T}from"./Bbv3vbm7.chunk.js";import{t as E}from"./6UdHSMo02.chunk.js";import{t as D}from"./CgW21-1J.chunk.js";import{n as O,r as k}from"./BGswYbRT.chunk.js";import{t as A}from"./C9XBZFiR.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"./D2vAOC7r2.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,_.copyInteractive(e.interactiveId,t=>{let r={originType:j.Original,interactiveId:t.id};c(n,_.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}=h(null),u=l(b.config()),y=l(v.currentUser()),T=l(!!y.data&&_.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(v.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!==g.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,hasAiInteractives:!1}),(0,H.jsx)(O,{node:z})]})]})}export{K as EditInteractiveView};
|
|
2
|
+
//# sourceMappingURL=CL5P1KMy2.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"B8t1n8_x2.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 // todo use real customer setting when we start to implement lite\n hasAiInteractives={false}\n />\n <OutPortal node={questionListPortalNode} />\n </div>\n </>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CL5P1KMy2.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 // todo use real customer setting when we start to implement lite\n hasAiInteractives={false}\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{n as e}from"./B785hxeE.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{y as i}from"./NlCAcBdo.chunk.js";import{t as a}from"./xwiwWcv12.chunk.js";import{t as o}from"./CVHQXNzi2.chunk.js";import{t as s}from"./BC8PeYqm.chunk.js";import{t as c}from"./CqrjHjAN.chunk.js";import{t as l}from"./D_gWf2lC.chunk.js";import{t as u}from"./DruDe9vI.chunk.js";import{n as d,t as f}from"./C6-aC3vu.chunk.js";import{n as p,t as m}from"./BGhJ8TEx.chunk.js";import{t as h}from"./7LGxCHGV.chunk.js";import{t as g}from"./B3gsVN-_.chunk.js";import{r as _}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{u as r}from"./BX0wDJmp.chunk.js";import{y as i}from"./NlCAcBdo.chunk.js";import{t as a}from"./xwiwWcv12.chunk.js";import{t as o}from"./CVHQXNzi2.chunk.js";import{t as s}from"./BC8PeYqm.chunk.js";import{t as c}from"./CqrjHjAN.chunk.js";import{t as l}from"./D_gWf2lC.chunk.js";import{t as u}from"./DruDe9vI.chunk.js";import{n as d,t as f}from"./C6-aC3vu.chunk.js";import{n as p,t as m}from"./BGhJ8TEx.chunk.js";import{t as h}from"./7LGxCHGV.chunk.js";import{t as g}from"./B3gsVN-_.chunk.js";import{r as _}from"./Cm6SLr7W2.chunk.js";import{n as v,t as y}from"./CdI1ZlaQ.chunk.js";import{t as b}from"./CpKc1O_Y.chunk.js";import{n as x}from"./ChnNWPOK2.chunk.js";import{t as S}from"./C9XBZFiR.chunk.js";import{t as C}from"./BnuuRu_J2.chunk.js";import{t as w}from"./BYaCUOEW2.chunk.js";import{t as T}from"./DNuJUXpr2.chunk.js";import{t as E}from"./DJXt6rKd2.chunk.js";import{n as D,r as O,t as k}from"./DRHbASmP2.chunk.js";t();var A=n(),j={notFound:v,forbidden:{privacy:b}};function M(e){return e?._parentClip||e?._parentVideo}function N(t){let{hasPermissions:n}=g(),v=r(l.config()),N=r(c.token()),P=r(c.currentUser()),F=r(s.sharedInteractiveMetadata(t.objectId,t.shareId)),I=r(u.getShareObject(t.shareId)),L=r(I.data&&(I.data.objectTypeId===o.Interactive?m.createViewKey(t.shareId,p.Share):m.createViewKey(t.objectId,p.MasterObject,t.shareId))),R=w(),z=r(P.data?.isAuthenticated&&a.yearGroups(P.data.customerId)),B=O(I.data),V=r(B&&F.data&&s.interactive(F.data.interactiveId)),H=r(B&&F.data&&s.videoInteractives(M(F.data).id)),{commonVideoProps:U,hasCommonVideoPropsCompleted:W}=C({locationContext:B?i.PreviewSharedInteractive:i.PlaySharedInteractive}),G=_({video:F.data,context:t.queryParams.context,contextId:t.queryParams.contextId,moviesAndTv:t.queryParams.mtv,currentUser:P.data});S(F,j),h(F,{private:b}),x({id:t.objectId,app:`interactives`,shareId:t.shareId}),T(G.videos??[]),f(d.getInteractiveMetadata({content:F.data}));let K=F.data&&v.hasCompleted&&P.hasCompleted&&(!B||V.hasCompleted)&&I.hasCompleted&&L.hasCompleted&&N.hasCompleted&&W;return B?K?(0,A.jsx)(k,{currentUser:P.data,queryParams:t.queryParams,interactive:F.data,interactives:H.data?.data,isPreviewPreventScrubbingEnabled:V.data.preventScrubbing,audiences:R.data,relatedVideos:G,canManageVideoAccess:n(e.ManageVideoAccess),commonVideoProps:U}):(0,A.jsx)(E,{}):K?(0,A.jsx)(D,{interactive:F.data,currentUser:P.data,config:v.data,audiences:R.data,yearGroups:z.data,queryParams:t.queryParams,viewKey:L.data,relatedVideos:G,shareLink:I.data,startTime:t.queryParams?.t,token:N.data,collectAnonResults:!P.data?.isAuthenticated&&!!y.getAnonUser(t.shareId),commonVideoProps:U}):(0,A.jsx)(A.Fragment,{})}export{N as SharedInteractiveView};
|
|
2
|
+
//# sourceMappingURL=CMKTpGri.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"CMKTpGri.chunk.js","names":[],"sources":["../../src/apps/share/views/shared-interactive/SharedInteractiveView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { ShareRequests } from 'libs/shared/apps/share/flight-requests/ShareRequests';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { MediaIdType } from 'libs/shared/enums/MediaIdType';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { PlayerRequests } from 'libs/shared/flight-requests/PlayerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useCannotConsumeError } from 'libs/shared/hooks/useCannotConsumeError';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Clip, Config, CurrentUser, Interactive, InteractiveCollection, InteractiveMetadata, PlayerViewKey, UnionShareObject, Video, YearGroup } from 'libs/shared/interfaces';\nimport { AuthToken } from 'libs/shared/interfaces/models/AuthToken';\nimport { PageMetadataHelper } from 'libs/shared/utils/PageMetadataHelper';\n\nimport { useCommonVideoProps } from 'shared/hooks/useCommonVideoProps';\nimport { useDeepLinks } from 'shared/hooks/useDeepLinks';\nimport { useGetRelatedVideos } from 'shared/hooks/useGetRelatedVideos';\nimport { usePresentationAudiences } from 'shared/hooks/usePresentationAudiences';\nimport { useShouldPreviewInteractive } from 'shared/hooks/useShouldPreviewInteractive';\nimport { useVideoMixin } from 'shared/hooks/useVideoMixin';\n\nimport { InteractivePartialLoading } from 'apps/interactives/components/interactive-partial-loading/InteractivePartialLoading';\nimport { PlayInteractive } from 'apps/interactives/components/play-interactive/PlayInteractive';\nimport { PreviewInteractive } from 'apps/interactives/components/preview-interactive/PreviewInteractive';\nimport { ShareLinkNotFoundError } from 'apps/share/errors/share-link-not-found/ShareLinkNotFoundError';\nimport { ShareLinkPrivateError } from 'apps/share/errors/share-link-private/ShareLinkPrivateError';\nimport { ShareLinkFilterHelpers } from 'apps/share/filters/share-link-filter/ShareLinkFilterHelpers';\nimport { ShareLinkViewProps } from 'apps/share/interfaces/ShareLinkViewProps';\n\nconst videoErrors = {\n notFound: ShareLinkNotFoundError,\n forbidden: {\n privacy: ShareLinkPrivateError\n }\n};\n\nfunction getSourceVideo(interactive: InteractiveMetadata): Clip | Video {\n return interactive?._parentClip || interactive?._parentVideo;\n}\n\nexport function SharedInteractiveView(props: ShareLinkViewProps): JSX.Element {\n const { hasPermissions } = usePermissions();\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const token = Flight.useBasicFetch<AuthToken>(UserRequests.token());\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const interactiveMetadata = Flight.useBasicFetch<InteractiveMetadata>(\n InteractiveRequests.sharedInteractiveMetadata(props.objectId, props.shareId)\n );\n\n const shareLink = Flight.useBasicFetch<UnionShareObject>(\n ShareRequests.getShareObject(props.shareId)\n );\n\n /**\n * If the shareLink type isn't an interactive, then it's a playlist and needs to be\n * used as context for fetching\n */\n const viewKeyRequest = shareLink.data && (shareLink.data.objectTypeId === MasterType.Interactive ?\n PlayerRequests.createViewKey(props.shareId, MediaIdType.Share) :\n PlayerRequests.createViewKey(props.objectId, MediaIdType.MasterObject, props.shareId));\n const viewKey = Flight.useBasicFetch<PlayerViewKey>(viewKeyRequest);\n const audiences = usePresentationAudiences();\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data?.isAuthenticated && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n\n /**\n * Authenticated staff with Lite product access get the interactive \"Preview\" view instead\n * of the usual play view.\n */\n const shouldPreviewInteractive = useShouldPreviewInteractive(shareLink.data);\n const interactive = Flight.useBasicFetch<Interactive>(\n shouldPreviewInteractive && interactiveMetadata.data &&\n InteractiveRequests.interactive(interactiveMetadata.data.interactiveId)\n );\n const interactives = Flight.useBasicFetch<InteractiveCollection>(\n shouldPreviewInteractive && interactiveMetadata.data &&\n InteractiveRequests.videoInteractives(getSourceVideo(interactiveMetadata.data).id)\n );\n\n const locationContext = shouldPreviewInteractive ?\n LocationContext.PreviewSharedInteractive :\n LocationContext.PlaySharedInteractive;\n const {\n commonVideoProps,\n hasCommonVideoPropsCompleted\n } = useCommonVideoProps({ locationContext });\n\n const relatedVideos = useGetRelatedVideos({\n video: interactiveMetadata.data,\n context: props.queryParams.context,\n contextId: props.queryParams.contextId,\n moviesAndTv: props.queryParams.mtv,\n currentUser: currentUser.data\n });\n\n useHandleObjectError(interactiveMetadata, videoErrors);\n useCannotConsumeError(interactiveMetadata, { private: ShareLinkPrivateError });\n useDeepLinks({ id: props.objectId, app: 'interactives', shareId: props.shareId });\n useVideoMixin(relatedVideos.videos ?? []);\n useSetPageMetadata(PageMetadataHelper.getInteractiveMetadata({ content: interactiveMetadata.data }));\n\n const hasLoaded = (\n interactiveMetadata.data &&\n config.hasCompleted &&\n currentUser.hasCompleted &&\n (!shouldPreviewInteractive || interactive.hasCompleted) &&\n shareLink.hasCompleted &&\n viewKey.hasCompleted &&\n token.hasCompleted &&\n hasCommonVideoPropsCompleted\n );\n\n if (shouldPreviewInteractive) {\n // For staff, the interactive is previewed\n if (!hasLoaded)\n return <InteractivePartialLoading />;\n\n return (\n <PreviewInteractive\n currentUser={currentUser.data}\n queryParams={props.queryParams}\n interactive={interactiveMetadata.data}\n interactives={interactives.data?.data}\n isPreviewPreventScrubbingEnabled={interactive.data.preventScrubbing}\n audiences={audiences.data}\n relatedVideos={relatedVideos}\n canManageVideoAccess={hasPermissions(PermissionName.ManageVideoAccess)}\n commonVideoProps={commonVideoProps}\n />\n );\n }\n\n if (!hasLoaded)\n return <></>;\n\n return (\n <PlayInteractive\n interactive={interactiveMetadata.data}\n currentUser={currentUser.data}\n config={config.data}\n audiences={audiences.data}\n yearGroups={yearGroups.data}\n queryParams={props.queryParams}\n viewKey={viewKey.data}\n relatedVideos={relatedVideos}\n shareLink={shareLink.data}\n startTime={props.queryParams?.t}\n token={token.data}\n collectAnonResults={!currentUser.data?.isAuthenticated && !!ShareLinkFilterHelpers.getAnonUser(props.shareId)}\n commonVideoProps={commonVideoProps}\n />\n );\n}\n"],"mappings":"yjCAsCM,EAAc,CAClB,SAAU,EACV,UAAW,CACT,QAAS,CACX,CACF,EAEA,SAAS,EAAe,EAAgD,CACtE,OAAO,GAAa,aAAe,GAAa,YAClD,CAEA,SAAgB,EAAsB,EAAwC,CAC5E,GAAM,CAAE,kBAAmB,EAAe,EAEpC,EAAS,EAA6B,EAAe,OAAO,CAAC,EAC7D,EAAQ,EAAgC,EAAa,MAAM,CAAC,EAE5D,EAAc,EAAkC,EAAa,YAAY,CAAC,EAC1E,EAAsB,EAC1B,EAAoB,0BAA0B,EAAM,SAAU,EAAM,OAAO,CAC7E,EAEM,EAAY,EAChB,EAAc,eAAe,EAAM,OAAO,CAC5C,EASM,EAAU,EAHO,EAAU,OAAS,EAAU,KAAK,eAAiB,EAAW,YACnF,EAAe,cAAc,EAAM,QAAS,EAAY,KAAK,EAC7D,EAAe,cAAc,EAAM,SAAU,EAAY,aAAc,EAAM,OAAO,EACpB,EAC5D,EAAY,EAAyB,EACrC,EAAa,EACjB,EAAY,MAAM,iBAAmB,EAAiB,WAAW,EAAY,KAAK,UAAU,CAC9F,EAMM,EAA2B,EAA4B,EAAU,IAAI,EACrE,EAAc,EAClB,GAA4B,EAAoB,MAChD,EAAoB,YAAY,EAAoB,KAAK,aAAa,CACxE,EACM,EAAe,EACnB,GAA4B,EAAoB,MAChD,EAAoB,kBAAkB,EAAe,EAAoB,IAAI,CAAC,CAAC,EAAE,CACnF,EAKM,CACJ,mBACA,gCACE,EAAoB,CAAE,gBANF,EACtB,EAAgB,yBAChB,EAAgB,qBAIwB,CAAC,EAErC,EAAgB,EAAoB,CACxC,MAAO,EAAoB,KAC3B,QAAS,EAAM,YAAY,QAC3B,UAAW,EAAM,YAAY,UAC7B,YAAa,EAAM,YAAY,IAC/B,YAAa,EAAY,IAC3B,CAAC,EAED,EAAqB,EAAqB,CAAW,EACrD,EAAsB,EAAqB,CAAE,QAAS,CAAsB,CAAC,EAC7E,EAAa,CAAE,GAAI,EAAM,SAAU,IAAK,eAAgB,QAAS,EAAM,OAAQ,CAAC,EAChF,EAAc,EAAc,QAAU,CAAC,CAAC,EACxC,EAAmB,EAAmB,uBAAuB,CAAE,QAAS,EAAoB,IAAK,CAAC,CAAC,EAEnG,IAAM,EACJ,EAAoB,MACpB,EAAO,cACP,EAAY,eACX,CAAC,GAA4B,EAAY,eAC1C,EAAU,cACV,EAAQ,cACR,EAAM,cACN,EA0BF,OAvBI,EAEG,GAIH,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,YAAa,EAAY,KACzB,YAAa,EAAM,YACnB,YAAa,EAAoB,KACjC,aAAc,EAAa,MAAM,KACjC,iCAAkC,EAAY,KAAK,iBACnD,UAAW,EAAU,KACN,gBACf,qBAAsB,EAAe,EAAe,iBAAiB,EACnD,kBACnB,CAAA,GAbM,EAAA,EAAA,IAAA,CAAC,EAAD,CAA4B,CAAA,EAiBlC,GAIH,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,YAAa,EAAoB,KACjC,YAAa,EAAY,KACzB,OAAQ,EAAO,KACf,UAAW,EAAU,KACrB,WAAY,EAAW,KACvB,YAAa,EAAM,YACnB,QAAS,EAAQ,KACF,gBACf,UAAW,EAAU,KACrB,UAAW,EAAM,aAAa,EAC9B,MAAO,EAAM,KACb,mBAAoB,CAAC,EAAY,MAAM,iBAAmB,CAAC,CAAC,EAAuB,YAAY,EAAM,OAAO,EAC1F,kBACnB,CAAA,GAjBM,EAAA,EAAA,IAAA,CAAA,EAAA,SAAA,CAAI,CAAA,CAmBf"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{o as e}from"./DAXXjFlN.chunk.js";import{n as t}from"./snXCXfT6.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{t as a}from"./C1SLt-ar.chunk.js";import{t as o}from"./C5j5LRut2.chunk.js";import{t as s}from"./DQgG9njb.chunk.js";import{t as ee}from"./7-GJWRH82.chunk.js";import{n as te}from"./BIzu5ufQ.chunk.js";import{t as c}from"./BUnh3rN0.chunk.js";import{t as l}from"./BJZXCSV9.chunk.js";import{n as u}from"./CpFtf-tI2.chunk.js";import{t as ne}from"./CSl1Z1eB.chunk.js";import{n as d,t as f}from"./C94Mz27A2.chunk.js";import{t as p}from"./8vQxuiYy2.chunk.js";import{t as m}from"./XBYhZGTN.chunk.js";import{f as h,i as g,m as _,t as re}from"./CoUj6M-_.chunk.js";import{n as ie,t as ae}from"./BYC-9gzd.chunk.js";import"./DbQFpTve.chunk.js";import{a as v,c as y,i as b,n as x,o as oe,r as se,s as S,t as C}from"./B3ox8pZ0.chunk.js";import{n as w,t as T}from"./Dkw9Ir-p.chunk.js";import{t as E}from"./v4yEqcBz.chunk.js";import"./29-YRbOp.chunk.js";var D=e(r()),O={heatMap:`_heatMap_u3po2_1`,avatarContainer:`_avatarContainer_u3po2_4`,cogIcon:`_cogIcon_u3po2_8`},k=i(),A=n.encloseNamespace(`shared.engagementTable`),ce={heatMap:[],engagementRate:0,viewCount:0};function j(e){return(0,k.jsx)(`div`,{className:`${e.className??``}`,children:e.children})}function M(e){return(0,k.jsx)(j,{className:`d-inline-block ${e.column.isSorted?`fw-bold`:``}`,children:A(e.phraseKey)})}function N(e){let t=0;return e.forEach(e=>{let n=Math.max(...e.heatMap);n>t&&(t=n)}),t}function P(e){if(e.type)return e.type;if(e.userId===null||e.userId===void 0)return`anon`}function F(e){switch(e){case`student-reach`:return A(`classroomViews`);case`anon`:return A(`anonymous`);default:return null}}function I(e,t,n){if(n){let t=F(n);if(t&&!e?.name)return{name:t,surname:``}}let r=d(e,t).split(` `).filter(e=>!!e);return{name:r[0],surname:r.slice(1).join(` `)}}function L(e){return D.useMemo(()=>{let n=N(e.engagement);return[...e.showSeparateNameColumns?[{id:`firstName`,Header:({column:e})=>(0,k.jsx)(M,{column:e,phraseKey:`firstName`}),accessor:`user`,width:63,sortType:(t,n)=>{let r=P(t.original),i=P(n.original),{name:a}=I(t.values.firstName,e.anonymiseUsers,r),{name:o}=I(n.values.firstName,e.anonymiseUsers,i);return a>o?1:-1},Cell:({value:n,row:{original:r}})=>{let i=P(r),{name:a,surname:s}=I(n,e.anonymiseUsers,i);return(0,k.jsxs)(j,{className:`d-flex align-items-center h-100`,children:[(0,k.jsx)(`span`,{className:O.avatarContainer,children:(0,k.jsx)(f,{type:i,imageCdnUrl:e.imageCdnUrl,initials:o.getInitials(a,s),imageUrl:!e.anonymiseUsers&&!i&&n?.avatar?.url,anonymiseUsers:e.anonymiseUsers})}),(0,k.jsx)(`span`,{className:`ms-2 clamp-1`,children:a}),i===`student-reach`&&e.classroomViewsAppLink&&(0,k.jsx)(c,{customSize:!0,svg:E,svgSize:t.Standard,appLink:e.classroomViewsAppLink,className:O.cogIcon,tooltip:e.classroomViewsTooltip,tooltipTrigger:[`hover`],ariaLabel:e.classroomViewsTooltip})]})}},{id:`surname`,Header:({column:e})=>(0,k.jsx)(M,{column:e,phraseKey:`surname`}),accessor:`user`,width:68,sortType:(t,n)=>{let r=P(t.original),i=P(n.original),{surname:a}=I(t.values.surname,e.anonymiseUsers,r),{surname:o}=I(n.values.surname,e.anonymiseUsers,i);return a>o?1:-1},Cell:({value:t,row:{original:n}})=>{let{surname:r}=I(t,e.anonymiseUsers,P(n));return(0,k.jsx)(j,{className:`d-flex align-items-center h-100`,children:(0,k.jsx)(`span`,{className:`clamp-1`,children:r||``})})}}]:[{id:`name`,Header:({column:e})=>(0,k.jsx)(M,{column:e,phraseKey:`name`}),accessor:`user`,width:22,sortType:(t,n)=>{let r=P(t.original),i=P(n.original);return(r?F(r):d(t.values.user,e.anonymiseUsers))>(i?F(i):d(n.values.user,e.anonymiseUsers))?1:-1},Cell:({value:n,row:{original:r}})=>{let i=P(r),{name:a,surname:s}=I(n,e.anonymiseUsers,i);return(0,k.jsxs)(j,{className:`d-flex align-items-center h-100`,children:[(0,k.jsx)(`span`,{className:O.avatarContainer,children:(0,k.jsx)(f,{type:i,imageCdnUrl:e.imageCdnUrl,initials:o.getInitials(a,s),imageUrl:!e.anonymiseUsers&&!i&&n?.avatar?.url,anonymiseUsers:e.anonymiseUsers})}),(0,k.jsxs)(`span`,{className:`ms-2 clamp-1 me-1`,children:[a,` `,s]}),i===`student-reach`&&e.classroomViewsAppLink&&(0,k.jsx)(c,{customSize:!0,svg:E,svgSize:t.Standard,appLink:e.classroomViewsAppLink,className:O.cogIcon,tooltip:e.classroomViewsTooltip,tooltipTrigger:[`hover`],ariaLabel:e.classroomViewsTooltip})]})}}],{Header:({column:e})=>(0,k.jsx)(M,{column:e,phraseKey:`views`}),accessor:`viewCount`,width:e.showSeparateNameColumns?47:15,sortType:`basic`,sortDescFirst:!0,Cell:({value:e})=>(0,k.jsx)(j,{className:`d-flex align-items-center h-100`,children:(0,k.jsx)(`div`,{children:e})})},{Header:({column:e})=>(0,k.jsx)(M,{column:e,phraseKey:`engagement`}),accessor:`engagementRate`,width:e.showSeparateNameColumns?79:20,sortDescFirst:!0,Cell:({value:e})=>(0,k.jsx)(j,{className:`w-33`,children:(0,k.jsx)(T,{percentage:e,layout:w.LabelBefore})})},{Header:({column:e})=>(0,k.jsx)(M,{column:e,phraseKey:`heatMap`}),accessor:`heatMap`,width:e.showSeparateNameColumns?230:48,disableSortBy:!0,Cell:({row:{original:e}})=>(0,k.jsx)(j,{className:`d-flex align-items-center h-100`,children:(0,k.jsx)(v,{engagement:e,max:n,className:`${O.heatMap} flex-grow-1`})})}]},[e.anonymiseUsers,e.showSeparateNameColumns])}function R(e,t,n){return D.useMemo(()=>{let r=[],i=new Set;if(e?.forEach(e=>{let n=t?.find(t=>t.id&&t.id===e.userId?(i.add(t.id),!0):!!(t.sessionId&&t.sessionId===e.sessionId));r.push({...e,user:n})}),n?.length){let e=n.filter(e=>!i.has(e.id)).map(e=>({...ce,userId:e.id,user:e}));r.push(...e)}return r},[e,t,n])}var z={table:`bg-white rounded px-0`,header:`border-bottom`,headerCell:`m-3`,cell:`mx-3 my-2`};function B(e){let t=L({engagement:e.engagement,imageCdnUrl:e.imageCdnUrl,anonymiseUsers:e.anonymiseUsers,showSeparateNameColumns:e.showSeparateNameColumns,classroomViewsAppLink:e.classroomViewsAppLink,classroomViewsTooltip:e.classroomViewsTooltip}),n=R(e.engagement,e.users,e.classroomStudents);return n.length?(0,k.jsx)(p,{columns:t,data:n,theme:{...z,table:e.border?`${z.table} border`:z.table},enableSort:e.enableSort}):(0,k.jsx)(k.Fragment,{})}function V(e){return(0,k.jsx)(T,{layout:e.layout,className:e.className,percentage:0,customLabel:`--%`})}var H=`shared.insightAmountWatched`,U=n.encloseNamespace(H);function W(e){let t=S(e.engagement),n=Math.round(t*100);return(0,k.jsx)(b,{title:U(`title`),svg:s,svgClassName:`bg-light-green text-green`,children:(0,k.jsxs)(`div`,{className:`d-flex flex-column align-items-center my-auto gap-2`,children:[!!e.engagement&&(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(T,{percentage:t,layout:w.LabelInside}),(0,k.jsx)(`p`,{className:`text-center`,children:typeof t==`number`?(0,k.jsx)(u,{namespace:H,phrase:`everyoneWatched`,options:{percentage:n}}):(0,k.jsx)(u,{namespace:H,phrase:`notWatched`})})]}),!e.engagement&&(0,k.jsx)(k.Fragment,{children:(0,k.jsx)(V,{layout:w.LabelInside})})]})})}var G=e(se()),le=x(),K=[`#FF9300`,`#38A2E8`,`#7A76E8`,`#B679C7`,`#F7847B`,`#D9584F`,`#FFCD52`,`#5DC786`,`#40BCC3`,`#40C2BB`];function ue(e){return e.map((e,t)=>({...e,color:K[t%K.length]}))}function de(e,t,n,r){let i={};return e[t]?.forEach(e=>{let t=e.name||`Unknown`;!t||n?.includes(t.toLowerCase())||(i[t]=i[t]??0,i[t]+=e.count)}),ue(a.sortBy(Object.keys(i).map(e=>({name:r?r(e):e,y:i[e],type:`pie`})),`name`))}function q(e){let t=e.findIndex(e=>e.name===`Staff`);if(t>-1){let[n]=e.splice(t,1);e.push(n)}return e.sort((e,t)=>parseInt(e.name.match(/\d+/)?.[0])-parseInt(t.name.match(/\d+/)?.[0]))}function fe(e){return e?.reduce((e,t)=>e+t.y,0)??null}var J=`shared.insightTotalViews`,Y=n.encloseNamespace(J);function pe(e){return e===`Unknown`?Y(`anon`):e}var me={title:{text:null},credits:{enabled:!1},chart:{backgroundColor:`transparent`,spacing:[0,0,0,0]},legend:{itemStyle:C,itemDistance:8},plotOptions:{pie:{allowPointSelect:!0,cursor:`pointer`,dataLabels:{enabled:!1},showInLegend:!0,borderWidth:1,borderColor:`#ffffff`,borderRadius:0,size:`80%`}}};function he(e){let t=q(de(e.events,`yearGroupCount`,e.hideStaffResults?[`staff`]:[],pe)),n=fe(t);function r(e){return{...me,series:[{type:`pie`,name:Y(`title`),data:e}]}}return(0,k.jsx)(b,{title:Y(`title`),svgClassName:`bg-light-blue text-blue`,svg:ne,children:t?.length?(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(`p`,{className:`mb-0`,children:(0,k.jsx)(u,{namespace:J,phrase:`totalViews`,options:{totalViews:n}})}),(0,k.jsx)(`div`,{className:`d-flex justify-content-center h-75`,children:(0,k.jsx)(le.HighchartsReact,{highcharts:G.default,options:r(t),containerProps:{className:`w-100`}})})]}):(0,k.jsxs)(l,{className:`pt-0 my-auto`,children:[(0,k.jsx)(l.Image,{src:e.emptyStateImage,className:`w-75 h-auto`}),(0,k.jsx)(l.Heading,{className:`h4`,children:(0,k.jsx)(u,{namespace:J,phrase:`noViews`})}),(0,k.jsx)(l.Info,{className:`w-100`,children:(0,k.jsx)(u,{namespace:J,phrase:`notWatched`})})]})})}var X={partialInsights:`_partialInsights_1vk2g_1`,videoContainer:`_videoContainer_1vk2g_4`};function ge(){return(0,k.jsxs)(`div`,{children:[(0,k.jsxs)(`div`,{className:`row g-3 mb-3`,children:[(0,k.jsx)(`div`,{className:`col`,children:(0,k.jsx)(`div`,{className:`${X.partialInsights} rounded partial-loading-background`})}),(0,k.jsx)(`div`,{className:`col`,children:(0,k.jsx)(`div`,{className:`${X.partialInsights} rounded partial-loading-background`})}),(0,k.jsx)(`div`,{className:X.videoContainer,children:(0,k.jsx)(`div`,{className:`${X.partialInsights} rounded partial-loading-background`})})]}),(0,k.jsx)(`div`,{className:`row g-3 mb-5`,children:(0,k.jsx)(`div`,{className:`col-12`,children:(0,k.jsx)(`div`,{className:`${X.partialInsights} rounded partial-loading-background`})})})]})}var _e=_.getComponent(`MenuItem`),Z=class extends _e{constructor(e,t){super(e,t),this.overlayVisible=t.overlayVisible,this.toggle(this.overlayVisible)}handleToggle(){this.toggle(!this.overlayVisible)}toggle(e){e?this.toggleOn():this.toggleOff()}toggleOn(){_.dom.addClass(this.toggleEl,`on`),this.overlayVisible=!0,this.player().engagementOverlayPlugin().toggleOverlay(this.overlayVisible),this.player().addClass(`cv-reports-player-overlay-visible`)}toggleOff(){_.dom.removeClass(this.toggleEl,`on`),this.overlayVisible=!1,this.player().engagementOverlayPlugin().toggleOverlay(this.overlayVisible),this.player().removeClass(`cv-reports-player-overlay-visible`)}handleClick(e){e.stopImmediatePropagation()}createEl(e,t,n){this.handlerBound||=(this.handleToggle=this.handleToggle.bind(this),!0),this.toggleEl&&this.toggleEl.removeEventListener(`click`,this.handleToggle),this.toggleEl=_.dom.createEl(`div`,{className:`custom-toggle custom-toggle-info toggle-option float-end`,innerHTML:`<span class="handle"></span></div>`}),this.toggleEl.addEventListener(`click`,this.handleToggle);let r=super.createEl(e,{className:`vjs-menu-item cv-cog-menu-item`,innerHTML:`
|
|
1
|
+
import{o as e}from"./DAXXjFlN.chunk.js";import{n as t}from"./snXCXfT6.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{t as a}from"./C1SLt-ar.chunk.js";import{t as o}from"./C5j5LRut2.chunk.js";import{t as s}from"./DQgG9njb.chunk.js";import{t as ee}from"./7-GJWRH82.chunk.js";import{n as te}from"./BIzu5ufQ.chunk.js";import{t as c}from"./BUnh3rN0.chunk.js";import{t as l}from"./BJZXCSV9.chunk.js";import{n as u}from"./CpFtf-tI2.chunk.js";import{t as ne}from"./CSl1Z1eB.chunk.js";import{n as d,t as f}from"./C94Mz27A2.chunk.js";import{t as p}from"./8vQxuiYy2.chunk.js";import{t as m}from"./XBYhZGTN.chunk.js";import{f as h,i as g,m as _,t as re}from"./CKGiikBV.chunk.js";import{n as ie,t as ae}from"./6BvA1WyF.chunk.js";import"./DIeIfhGe.chunk.js";import{a as v,c as y,i as b,n as x,o as oe,r as se,s as S,t as C}from"./B3ox8pZ0.chunk.js";import{n as w,t as T}from"./Dkw9Ir-p.chunk.js";import{t as E}from"./v4yEqcBz.chunk.js";import"./D4uneRs9.chunk.js";var D=e(r()),O={heatMap:`_heatMap_u3po2_1`,avatarContainer:`_avatarContainer_u3po2_4`,cogIcon:`_cogIcon_u3po2_8`},k=i(),A=n.encloseNamespace(`shared.engagementTable`),ce={heatMap:[],engagementRate:0,viewCount:0};function j(e){return(0,k.jsx)(`div`,{className:`${e.className??``}`,children:e.children})}function M(e){return(0,k.jsx)(j,{className:`d-inline-block ${e.column.isSorted?`fw-bold`:``}`,children:A(e.phraseKey)})}function N(e){let t=0;return e.forEach(e=>{let n=Math.max(...e.heatMap);n>t&&(t=n)}),t}function P(e){if(e.type)return e.type;if(e.userId===null||e.userId===void 0)return`anon`}function F(e){switch(e){case`student-reach`:return A(`classroomViews`);case`anon`:return A(`anonymous`);default:return null}}function I(e,t,n){if(n){let t=F(n);if(t&&!e?.name)return{name:t,surname:``}}let r=d(e,t).split(` `).filter(e=>!!e);return{name:r[0],surname:r.slice(1).join(` `)}}function L(e){return D.useMemo(()=>{let n=N(e.engagement);return[...e.showSeparateNameColumns?[{id:`firstName`,Header:({column:e})=>(0,k.jsx)(M,{column:e,phraseKey:`firstName`}),accessor:`user`,width:63,sortType:(t,n)=>{let r=P(t.original),i=P(n.original),{name:a}=I(t.values.firstName,e.anonymiseUsers,r),{name:o}=I(n.values.firstName,e.anonymiseUsers,i);return a>o?1:-1},Cell:({value:n,row:{original:r}})=>{let i=P(r),{name:a,surname:s}=I(n,e.anonymiseUsers,i);return(0,k.jsxs)(j,{className:`d-flex align-items-center h-100`,children:[(0,k.jsx)(`span`,{className:O.avatarContainer,children:(0,k.jsx)(f,{type:i,imageCdnUrl:e.imageCdnUrl,initials:o.getInitials(a,s),imageUrl:!e.anonymiseUsers&&!i&&n?.avatar?.url,anonymiseUsers:e.anonymiseUsers})}),(0,k.jsx)(`span`,{className:`ms-2 clamp-1`,children:a}),i===`student-reach`&&e.classroomViewsAppLink&&(0,k.jsx)(c,{customSize:!0,svg:E,svgSize:t.Standard,appLink:e.classroomViewsAppLink,className:O.cogIcon,tooltip:e.classroomViewsTooltip,tooltipTrigger:[`hover`],ariaLabel:e.classroomViewsTooltip})]})}},{id:`surname`,Header:({column:e})=>(0,k.jsx)(M,{column:e,phraseKey:`surname`}),accessor:`user`,width:68,sortType:(t,n)=>{let r=P(t.original),i=P(n.original),{surname:a}=I(t.values.surname,e.anonymiseUsers,r),{surname:o}=I(n.values.surname,e.anonymiseUsers,i);return a>o?1:-1},Cell:({value:t,row:{original:n}})=>{let{surname:r}=I(t,e.anonymiseUsers,P(n));return(0,k.jsx)(j,{className:`d-flex align-items-center h-100`,children:(0,k.jsx)(`span`,{className:`clamp-1`,children:r||``})})}}]:[{id:`name`,Header:({column:e})=>(0,k.jsx)(M,{column:e,phraseKey:`name`}),accessor:`user`,width:22,sortType:(t,n)=>{let r=P(t.original),i=P(n.original);return(r?F(r):d(t.values.user,e.anonymiseUsers))>(i?F(i):d(n.values.user,e.anonymiseUsers))?1:-1},Cell:({value:n,row:{original:r}})=>{let i=P(r),{name:a,surname:s}=I(n,e.anonymiseUsers,i);return(0,k.jsxs)(j,{className:`d-flex align-items-center h-100`,children:[(0,k.jsx)(`span`,{className:O.avatarContainer,children:(0,k.jsx)(f,{type:i,imageCdnUrl:e.imageCdnUrl,initials:o.getInitials(a,s),imageUrl:!e.anonymiseUsers&&!i&&n?.avatar?.url,anonymiseUsers:e.anonymiseUsers})}),(0,k.jsxs)(`span`,{className:`ms-2 clamp-1 me-1`,children:[a,` `,s]}),i===`student-reach`&&e.classroomViewsAppLink&&(0,k.jsx)(c,{customSize:!0,svg:E,svgSize:t.Standard,appLink:e.classroomViewsAppLink,className:O.cogIcon,tooltip:e.classroomViewsTooltip,tooltipTrigger:[`hover`],ariaLabel:e.classroomViewsTooltip})]})}}],{Header:({column:e})=>(0,k.jsx)(M,{column:e,phraseKey:`views`}),accessor:`viewCount`,width:e.showSeparateNameColumns?47:15,sortType:`basic`,sortDescFirst:!0,Cell:({value:e})=>(0,k.jsx)(j,{className:`d-flex align-items-center h-100`,children:(0,k.jsx)(`div`,{children:e})})},{Header:({column:e})=>(0,k.jsx)(M,{column:e,phraseKey:`engagement`}),accessor:`engagementRate`,width:e.showSeparateNameColumns?79:20,sortDescFirst:!0,Cell:({value:e})=>(0,k.jsx)(j,{className:`w-33`,children:(0,k.jsx)(T,{percentage:e,layout:w.LabelBefore})})},{Header:({column:e})=>(0,k.jsx)(M,{column:e,phraseKey:`heatMap`}),accessor:`heatMap`,width:e.showSeparateNameColumns?230:48,disableSortBy:!0,Cell:({row:{original:e}})=>(0,k.jsx)(j,{className:`d-flex align-items-center h-100`,children:(0,k.jsx)(v,{engagement:e,max:n,className:`${O.heatMap} flex-grow-1`})})}]},[e.anonymiseUsers,e.showSeparateNameColumns])}function R(e,t,n){return D.useMemo(()=>{let r=[],i=new Set;if(e?.forEach(e=>{let n=t?.find(t=>t.id&&t.id===e.userId?(i.add(t.id),!0):!!(t.sessionId&&t.sessionId===e.sessionId));r.push({...e,user:n})}),n?.length){let e=n.filter(e=>!i.has(e.id)).map(e=>({...ce,userId:e.id,user:e}));r.push(...e)}return r},[e,t,n])}var z={table:`bg-white rounded px-0`,header:`border-bottom`,headerCell:`m-3`,cell:`mx-3 my-2`};function B(e){let t=L({engagement:e.engagement,imageCdnUrl:e.imageCdnUrl,anonymiseUsers:e.anonymiseUsers,showSeparateNameColumns:e.showSeparateNameColumns,classroomViewsAppLink:e.classroomViewsAppLink,classroomViewsTooltip:e.classroomViewsTooltip}),n=R(e.engagement,e.users,e.classroomStudents);return n.length?(0,k.jsx)(p,{columns:t,data:n,theme:{...z,table:e.border?`${z.table} border`:z.table},enableSort:e.enableSort}):(0,k.jsx)(k.Fragment,{})}function V(e){return(0,k.jsx)(T,{layout:e.layout,className:e.className,percentage:0,customLabel:`--%`})}var H=`shared.insightAmountWatched`,U=n.encloseNamespace(H);function W(e){let t=S(e.engagement),n=Math.round(t*100);return(0,k.jsx)(b,{title:U(`title`),svg:s,svgClassName:`bg-light-green text-green`,children:(0,k.jsxs)(`div`,{className:`d-flex flex-column align-items-center my-auto gap-2`,children:[!!e.engagement&&(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(T,{percentage:t,layout:w.LabelInside}),(0,k.jsx)(`p`,{className:`text-center`,children:typeof t==`number`?(0,k.jsx)(u,{namespace:H,phrase:`everyoneWatched`,options:{percentage:n}}):(0,k.jsx)(u,{namespace:H,phrase:`notWatched`})})]}),!e.engagement&&(0,k.jsx)(k.Fragment,{children:(0,k.jsx)(V,{layout:w.LabelInside})})]})})}var G=e(se()),le=x(),K=[`#FF9300`,`#38A2E8`,`#7A76E8`,`#B679C7`,`#F7847B`,`#D9584F`,`#FFCD52`,`#5DC786`,`#40BCC3`,`#40C2BB`];function ue(e){return e.map((e,t)=>({...e,color:K[t%K.length]}))}function de(e,t,n,r){let i={};return e[t]?.forEach(e=>{let t=e.name||`Unknown`;!t||n?.includes(t.toLowerCase())||(i[t]=i[t]??0,i[t]+=e.count)}),ue(a.sortBy(Object.keys(i).map(e=>({name:r?r(e):e,y:i[e],type:`pie`})),`name`))}function q(e){let t=e.findIndex(e=>e.name===`Staff`);if(t>-1){let[n]=e.splice(t,1);e.push(n)}return e.sort((e,t)=>parseInt(e.name.match(/\d+/)?.[0])-parseInt(t.name.match(/\d+/)?.[0]))}function fe(e){return e?.reduce((e,t)=>e+t.y,0)??null}var J=`shared.insightTotalViews`,Y=n.encloseNamespace(J);function pe(e){return e===`Unknown`?Y(`anon`):e}var me={title:{text:null},credits:{enabled:!1},chart:{backgroundColor:`transparent`,spacing:[0,0,0,0]},legend:{itemStyle:C,itemDistance:8},plotOptions:{pie:{allowPointSelect:!0,cursor:`pointer`,dataLabels:{enabled:!1},showInLegend:!0,borderWidth:1,borderColor:`#ffffff`,borderRadius:0,size:`80%`}}};function he(e){let t=q(de(e.events,`yearGroupCount`,e.hideStaffResults?[`staff`]:[],pe)),n=fe(t);function r(e){return{...me,series:[{type:`pie`,name:Y(`title`),data:e}]}}return(0,k.jsx)(b,{title:Y(`title`),svgClassName:`bg-light-blue text-blue`,svg:ne,children:t?.length?(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(`p`,{className:`mb-0`,children:(0,k.jsx)(u,{namespace:J,phrase:`totalViews`,options:{totalViews:n}})}),(0,k.jsx)(`div`,{className:`d-flex justify-content-center h-75`,children:(0,k.jsx)(le.HighchartsReact,{highcharts:G.default,options:r(t),containerProps:{className:`w-100`}})})]}):(0,k.jsxs)(l,{className:`pt-0 my-auto`,children:[(0,k.jsx)(l.Image,{src:e.emptyStateImage,className:`w-75 h-auto`}),(0,k.jsx)(l.Heading,{className:`h4`,children:(0,k.jsx)(u,{namespace:J,phrase:`noViews`})}),(0,k.jsx)(l.Info,{className:`w-100`,children:(0,k.jsx)(u,{namespace:J,phrase:`notWatched`})})]})})}var X={partialInsights:`_partialInsights_1vk2g_1`,videoContainer:`_videoContainer_1vk2g_4`};function ge(){return(0,k.jsxs)(`div`,{children:[(0,k.jsxs)(`div`,{className:`row g-3 mb-3`,children:[(0,k.jsx)(`div`,{className:`col`,children:(0,k.jsx)(`div`,{className:`${X.partialInsights} rounded partial-loading-background`})}),(0,k.jsx)(`div`,{className:`col`,children:(0,k.jsx)(`div`,{className:`${X.partialInsights} rounded partial-loading-background`})}),(0,k.jsx)(`div`,{className:X.videoContainer,children:(0,k.jsx)(`div`,{className:`${X.partialInsights} rounded partial-loading-background`})})]}),(0,k.jsx)(`div`,{className:`row g-3 mb-5`,children:(0,k.jsx)(`div`,{className:`col-12`,children:(0,k.jsx)(`div`,{className:`${X.partialInsights} rounded partial-loading-background`})})})]})}var _e=_.getComponent(`MenuItem`),Z=class extends _e{constructor(e,t){super(e,t),this.overlayVisible=t.overlayVisible,this.toggle(this.overlayVisible)}handleToggle(){this.toggle(!this.overlayVisible)}toggle(e){e?this.toggleOn():this.toggleOff()}toggleOn(){_.dom.addClass(this.toggleEl,`on`),this.overlayVisible=!0,this.player().engagementOverlayPlugin().toggleOverlay(this.overlayVisible),this.player().addClass(`cv-reports-player-overlay-visible`)}toggleOff(){_.dom.removeClass(this.toggleEl,`on`),this.overlayVisible=!1,this.player().engagementOverlayPlugin().toggleOverlay(this.overlayVisible),this.player().removeClass(`cv-reports-player-overlay-visible`)}handleClick(e){e.stopImmediatePropagation()}createEl(e,t,n){this.handlerBound||=(this.handleToggle=this.handleToggle.bind(this),!0),this.toggleEl&&this.toggleEl.removeEventListener(`click`,this.handleToggle),this.toggleEl=_.dom.createEl(`div`,{className:`custom-toggle custom-toggle-info toggle-option float-end`,innerHTML:`<span class="handle"></span></div>`}),this.toggleEl.addEventListener(`click`,this.handleToggle);let r=super.createEl(e,{className:`vjs-menu-item cv-cog-menu-item`,innerHTML:`
|
|
2
2
|
<span class="vjs-menu-item-text">Heat Map</span>
|
|
3
3
|
<span class="cv-toggle-container"></span>`},n);return r.children[1].appendChild(this.toggleEl),r}};_.registerComponent(`EngagementOverlayMenuItem`,Z);var ve=e(te(),1),Q=3;function ye(e){let t=e.interactive.timepoints.find(t=>{let n=t.visibleAt/1e3;return Math.floor(e.time)===Math.floor(n)||Math.ceil(e.time)===Math.ceil(n)});if(!t?.interactions?.length)return(0,k.jsx)(k.Fragment,{});let n=t.interactions.length>Q?t.interactions.slice(0,Q-1):t.interactions,r=t.interactions.length-n.length;return(0,k.jsxs)(`div`,{className:`d-flex justify-content-end ms-2`,children:[n.map((e,t)=>(0,k.jsx)(m,{interaction:e,showQuestion:!1,iconClassName:`ms-1`},t)),!!r&&(0,k.jsx)(`div`,{className:`interaction-type-icon d-flex justify-content-center align-items-center border border-dark text-body ms-1`,children:`+${r}`})]})}var be={title:{text:null},xAxis:{visible:!1,minPadding:0,maxPadding:0},legend:{enabled:!1},credits:{enabled:!1},defs:{gradient:{tagName:`linearGradient`,id:`area-gradient`,x1:0,y1:1,x2:0,y2:0,children:[{tagName:`stop`,offset:0},{tagName:`stop`,offset:1}]}}};function xe(e,t){return{styledMode:!0,spacing:[15,0,0,0],width:e,height:t}}function Se(e){return{max:Math.max(...e)*1.05,min:0,minPadding:0,maxPadding:0,allowDecimals:!0,startOnTick:!1,endOnTick:!1,visible:!1}}function Ce(e){return{formatter:function(){let t=e?Te(e,this.x):``;return`<div class="cv-engagement-tooltip bg-white rounded"><div class="d-flex justify-content-between"><strong>${g(this.x)}</strong>${t}</div><div class="d-flex justify-content-between rounded bg-light cv-view-count-container"><strong>Views</strong> <span class="cv-view-count">${this.y}</span></div></div>`},positioner:function(e,t,n){let r=this.chart.plotWidth-e,i=n.plotX-e/2;return{x:Math.min(Math.max(i,0),r),y:this.chart.plotTop}},useHTML:!0,padding:0}}function we(e){return{area:{point:{events:{mouseOver:function(){e(this.x)},mouseOut:function(){e(null)}}}},series:{marker:{enabled:!1}}}}function Te(e,t){return(0,ve.renderToStaticMarkup)((0,k.jsx)(ye,{time:t,interactive:e}))}var Ee=_.getComponent(`Component`);G.default.AST.allowedTags.push(`g`),G.default.AST.allowedAttributes.push(`viewBox`,`transform`);var De=class extends Ee{constructor(e,t){super(e,t),this.initialize(),this.bindListeners()}initialize(){this.player().ready(()=>this.buildChart())}buildCSSClass(){return`cv-engagement-overlay`}createEl(e,t,n){return super.createEl(e,{...t,className:this.buildCSSClass(),innerHTML:`<div class="cv-engagement-chart"></div><div class="cv-engagement-timepoint-indicator"></div>`},n)}toggleChart(e){e?this.buildChart():this.destroyChart()}bindListeners(){this.handleClick=this.handleClick.bind(this),this.resizeChart=this.resizeChart.bind(this),this.player().on(`playerresize`,this.resizeChart),this.on(this.el(),`mouseup`,this.handleClick),this.player().on(`dispose`,()=>{this.player().off(`playerresize`,this.resizeChart),this.off(this.el(),`mouseup`,this.handleClick)})}handleClick(e){if(_.dom.isSingleLeftClick(e)){if(this.player().paused()){this.player().play();return}this.player().pause()}}buildChart(){if(this.chart)return;let e=this.getChartDimensions();if(!e){this.player().one(`play`,()=>this.buildChart());return}let t=this.el().querySelector(`.cv-engagement-chart`);this.chart=G.default.chart(t,this.getHighchartOptions(e))}resizeChart(){let e=this.getChartDimensions();!this.chart||!e||this.chart.setSize(e.width,e.height)}destroyChart(){this.chart?.destroy(),this.chart=null}getChartDimensions(){let e=this.player().getChild(`collapserator`)?.currentHeight(),t=this.el().clientWidth;if(!e||!t)return null;let{height:n}=this.player().currentDimensions();return{width:t,height:n-e}}getHighchartOptions({width:e,height:t}){return{...be,chart:xe(e,t),yAxis:Se(this.options_.heatMap),tooltip:Ce(this.options_.interactive),plotOptions:we(this.moveTimepointIndicator.bind(this)),series:[{type:`area`,data:this.options_.heatMap}]}}moveTimepointIndicator(e){this.options_.onTimepointHover&&this.options_.onTimepointHover(e);let t=this.el().querySelector(`.cv-engagement-timepoint-indicator`);if(e===null){_.dom.removeClass(t,`cv-engagement-timepoint-indicator-visible`);return}_.dom.addClass(t,`cv-engagement-timepoint-indicator-visible`),t.style.left=`${e/this.options_.heatMap.length*100}%`}};_.registerComponent(`EngagementOverlay`,De);var Oe=_.getPlugin(`plugin`),ke=class extends Oe{constructor(e,t){super(e,t),this.options=t,e.ready(()=>{this.initialize()})}initialize(){this.hasHeatMapData()&&(this.player.addChild(`engagementOverlay`,{heatMap:this.options.heatMap,interactive:this.options.interactive,onTimepointHover:this.options.onTimepointHover}),(this.player.getChild(`collapserator`)?.getChild(`cogButton`)).addItem({ctor:Z,name:`EngagementOverlayMenuItem`,options:{overlayVisible:!0}}))}toggleOverlay(e){this.player.getChild(`engagementOverlay`)?.toggleChart(e)}hasHeatMapData(){return this.options.heatMap?.reduce((e,t)=>e+t,0)>0}};_.registerPlugin(`engagementOverlayPlugin`,ke);var Ae=_.getPlugin(`plugin`),je=class extends Ae{constructor(e,t){super(e),this.options=t,this.player.one(`loadedmetadata`,()=>this.player.ready(this.initialize.bind(this)))}initialize(){h.useMetadataTrack(this.player,`interactive`,this.onTrackLoaded.bind(this)),this.player.addClass(`cv-interactive-plugin`)}onTrackLoaded(e){this.addChildren(e)}addChildren(e){this.player.controlBar.getChild(`progressControl`).getChild(`SeekBar`).addChild(new ae(this.player,{interactive:this.options.interactive,track:e}))}};_.registerPlugin(`interactiveSeekBarPlugin`,je);var Me=class extends re{constructor(e,t){super(e,t)}getPlayerClassName(){return`cv-reports-player`}getAnalyticsPlayerType(){return`reports-player`}async additionalSetup(e){super.additionalSetup(e),this.setupEngagementOverlayPlugin(e),this.setupUpClipPlugin(e),this.setupInteractiveSeekBarPlugin(e)}setupEngagementOverlayPlugin(e){this.player.engagementOverlayPlugin({heatMap:this.options.heatMap,interactive:e.additionalData?.interactive,onTimepointHover:this.options.onTimepointHover})}setupUpClipPlugin(e){let t=e.mediaType===`MasterClip`,n=e.mediaType===`MasterInteractive`;if(!t&&!n)return;let r;if(t&&(r=e.additionalData),!(n&&(r=e.additionalData?.clipData,!r))){if(!r)throw Error(`Invalid clip data`);this.player.clipPlugin({startTime:r.startTime,endTime:r.endTime})}}setupInteractiveSeekBarPlugin(e){let t=e.additionalData?.interactive;e.additionalData?.interactive&&(this.track=ie.getInteractiveTrack(this.player,e),this.player.interactiveSeekBarPlugin({interactive:t}))}getSeekBarOptions(){return{ignoreChapters:!0}}};function Ne(e){let t=D.useRef(null),n=D.useRef(null);return D.useEffect(()=>{n.current=new Me(t.current,e)},[]),(0,k.jsx)(`div`,{ref:t})}var $={playerContainer:`_playerContainer_odup3_1`,playerPlaceholder:`_playerPlaceholder_odup3_8`,heatMap:`_heatMap_odup3_12`,heatMapTimepointIndicator:`_heatMapTimepointIndicator_odup3_15`,heatMapTimepointIndicatorVisible:`_heatMapTimepointIndicatorVisible_odup3_24`,partialLoadingContainer:`_partialLoadingContainer_odup3_28`},Pe=n.encloseNamespace(`shared.videoEngagementOverlay`);function Fe(e){let t=D.useRef(null),n=y(e.engagement);function r(e){let r=t.current;if(r){if(e===null){r.classList.remove($.heatMapTimepointIndicatorVisible);return}r.classList.add($.heatMapTimepointIndicatorVisible),r.style.left=`${e/n.length*100}%`}}return(0,k.jsxs)(`div`,{className:`bg-white border rounded overflow-hidden h-100`,children:[(0,k.jsxs)(`div`,{className:`position-relative`,children:[(0,k.jsx)(`div`,{className:$.playerPlaceholder}),(0,k.jsx)(`div`,{className:$.playerContainer,children:(0,k.jsx)(Ne,{viewKey:e.viewKey,playerApi:new URL(e.playerApiUrl),hotkeyElQuerySelector:`body`,heatMap:n,onTimepointHover:r,aspectRatio:`16:9`})})]}),(0,k.jsxs)(`div`,{className:`p-3`,children:[(0,k.jsxs)(`div`,{className:`position-relative`,children:[(0,k.jsx)(v,{engagement:e.engagement,className:$.heatMap}),(0,k.jsx)(`div`,{ref:t,className:$.heatMapTimepointIndicator})]}),(0,k.jsxs)(`div`,{className:`d-flex justify-content-between mt-2`,children:[(0,k.jsx)(`strong`,{children:Pe(`heatmap`)}),(0,k.jsx)(`div`,{className:`w-33`,children:(0,k.jsx)(oe,{})})]})]})]})}var Ie={videoContainer:`_videoContainer_1lnnd_1`};function Le(e){return(0,k.jsxs)(k.Fragment,{children:[!e.hasDataLoaded&&(0,k.jsx)(ge,{}),(0,k.jsxs)(`div`,{className:`row g-3 mb-3`,children:[e.hasDataLoaded&&(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(`div`,{className:`col`,children:(0,k.jsx)(he,{events:{yearGroupCount:e.yearGroups},emptyStateImage:ee.EmptyStates.MY_VIDEOS,hideStaffResults:e.hideStaffResults})}),(0,k.jsx)(`div`,{className:`col`,children:(0,k.jsx)(W,{engagement:e.individualEngagement})}),(0,k.jsx)(`div`,{className:Ie.videoContainer,children:(0,k.jsx)(Fe,{engagement:e.aggregateEngagement,viewKey:e.viewKey.viewKey,playerApiUrl:e.config.playerApiUrl,imageCdnUrl:e.config.imageCdnUrl})})]}),e.tableDataLoaded&&(0,k.jsx)(`div`,{className:`col-12`,children:(0,k.jsx)(B,{engagement:e.individualEngagement,users:e.users,imageCdnUrl:e.config?.imageCdnUrl,anonymiseUsers:e.anonymiseUsers,classroomStudents:e.classroomStudents,border:!0,enableSort:!0,showSeparateNameColumns:!0})})]})]})}export{Le as t};
|
|
4
|
-
//# sourceMappingURL=
|
|
4
|
+
//# sourceMappingURL=CgL1gDuH.chunk.js.map
|