@clickview/curator 1.100.0-rc.0 → 1.100.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 +207 -207
- package/dist/Assets/js/dist/scripts/{Cm7VDspf2.chunk.js → BNHULwJy2.chunk.js} +2 -2
- package/dist/Assets/js/dist/scripts/{Cm7VDspf2.chunk.js.map → BNHULwJy2.chunk.js.map} +1 -1
- package/dist/Assets/js/dist/scripts/{BuHB0395.chunk.js → BO-eqfrD.chunk.js} +2 -2
- package/dist/Assets/js/dist/scripts/{BuHB0395.chunk.js.map → BO-eqfrD.chunk.js.map} +1 -1
- package/dist/Assets/js/dist/scripts/{CdZIanX12.chunk.js → BiTzUyxj2.chunk.js} +2 -2
- package/dist/Assets/js/dist/scripts/{CdZIanX12.chunk.js.map → BiTzUyxj2.chunk.js.map} +1 -1
- package/dist/Assets/js/dist/scripts/{C5ckf65S.chunk.js → Bznq7eHJ.chunk.js} +2 -2
- package/dist/Assets/js/dist/scripts/{C5ckf65S.chunk.js.map → Bznq7eHJ.chunk.js.map} +1 -1
- package/dist/Assets/js/dist/scripts/{DWvLbZEm.chunk.js → C2mEE4FT.chunk.js} +2 -2
- package/dist/Assets/js/dist/scripts/{DWvLbZEm.chunk.js.map → C2mEE4FT.chunk.js.map} +1 -1
- package/dist/Assets/js/dist/scripts/{DadPgJ4J.chunk.js → CMGpVYHd.chunk.js} +2 -2
- package/dist/Assets/js/dist/scripts/{DadPgJ4J.chunk.js.map → CMGpVYHd.chunk.js.map} +1 -1
- package/dist/Assets/js/dist/scripts/{D55DRVBy2.chunk.js → DFwtjofq2.chunk.js} +2 -2
- package/dist/Assets/js/dist/scripts/{D55DRVBy2.chunk.js.map → DFwtjofq2.chunk.js.map} +1 -1
- package/dist/Assets/js/dist/scripts/{DSxo4Hbf2.chunk.js → DRmwJ1it2.chunk.js} +2 -2
- package/dist/Assets/js/dist/scripts/{DSxo4Hbf2.chunk.js.map → DRmwJ1it2.chunk.js.map} +1 -1
- package/dist/Assets/js/dist/scripts/{BWv_VfB9.chunk.js → DWS9yr24.chunk.js} +2 -2
- package/dist/Assets/js/dist/scripts/{BWv_VfB9.chunk.js.map → DWS9yr24.chunk.js.map} +1 -1
- package/dist/Assets/js/dist/scripts/{x-X8lnk_2.chunk.js → Da_9BBKD2.chunk.js} +2 -2
- package/dist/Assets/js/dist/scripts/{x-X8lnk_2.chunk.js.map → Da_9BBKD2.chunk.js.map} +1 -1
- package/dist/Assets/js/dist/scripts/{DqiPZITr.chunk.js → DpRxeR-t.chunk.js} +2 -2
- package/dist/Assets/js/dist/scripts/{DqiPZITr.chunk.js.map → DpRxeR-t.chunk.js.map} +1 -1
- package/dist/Assets/js/dist/scripts/{CmKCnpM-.chunk.js → MtOi7z-o.chunk.js} +2 -2
- package/dist/Assets/js/dist/scripts/{CmKCnpM-.chunk.js.map → MtOi7z-o.chunk.js.map} +1 -1
- package/dist/Assets/js/dist/scripts/{app-BgAg7846.js → app-Dl-tzfIp.js} +3 -3
- package/dist/Assets/js/dist/scripts/{app-BgAg7846.js.map → app-Dl-tzfIp.js.map} +1 -1
- package/dist/Assets/js/dist/scripts/{BdSMYtTT2.chunk.js → uS1TyZwO2.chunk.js} +2 -2
- package/dist/Assets/js/dist/scripts/{BdSMYtTT2.chunk.js.map → uS1TyZwO2.chunk.js.map} +1 -1
- package/dist/bundles.json +1 -1
- package/dist/en.json +1 -1
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as e,i as t,ln as n}from"./rp704-Pm.chunk.js";import{t as r}from"./Di_u2uix.chunk.js";import{t as i}from"./BvMTtGLi.chunk.js";import"./CfCYHRuo.chunk.js";import{t as a}from"./UCDGupVs.chunk.js";import{G as o,W as s}from"./C7Gmh7eY.chunk.js";import{t as c}from"./eoeMwpAO2.chunk.js";import{y as l}from"./BhKv6dKl2.chunk.js";import{n as u}from"./CbiGs3Tn.chunk.js";import{t as d}from"./CMczucng.chunk.js";import{s as f}from"./Dgk5cBBe.chunk.js";import"./Oh4_zGIH.chunk.js";import{t as p}from"./BDwjs8qz.chunk.js";import{R as m,z as h}from"./
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{a as e,i as t,ln as n}from"./rp704-Pm.chunk.js";import{t as r}from"./Di_u2uix.chunk.js";import{t as i}from"./BvMTtGLi.chunk.js";import"./CfCYHRuo.chunk.js";import{t as a}from"./UCDGupVs.chunk.js";import{G as o,W as s}from"./C7Gmh7eY.chunk.js";import{t as c}from"./eoeMwpAO2.chunk.js";import{y as l}from"./BhKv6dKl2.chunk.js";import{n as u}from"./CbiGs3Tn.chunk.js";import{t as d}from"./CMczucng.chunk.js";import{s as f}from"./Dgk5cBBe.chunk.js";import"./Oh4_zGIH.chunk.js";import{t as p}from"./BDwjs8qz.chunk.js";import{R as m,z as h}from"./Bznq7eHJ.chunk.js";import{t as g}from"./JmL1DHFu.chunk.js";import{t as _}from"./MtOi7z-o.chunk.js";import{t as v}from"./mStmtFRo.chunk.js";import"./DrBVabtm.chunk.js";var y=n(e()),b=t();function x(e){let[t,n]=y.useState(!1),x=f(a.currentUser()),S=f(g.video(e.id)),C=f(o.getAssemblyLineVideo(e.id)),w=f(S.data&&m.createViewKey(S.data.id,h.MasterObject));return!S.data||!x.data||!w.hasCompleted||!C.hasCompleted?(0,b.jsx)(`div`,{className:`text-center py-5`,children:(0,b.jsx)(u,{as:`div`,animation:`border`})}):(0,b.jsxs)(`div`,{children:[!!x.data&&(0,b.jsx)(v,{videoId:e.id,activeAction:r.Videos.PREVIEW_VIDEO,currentUser:x.data}),!w.hasError&&S.data.status===p.Published&&(0,b.jsxs)(c,{variant:`info`,className:`mt-3 mb-1`,children:[`This video is `,(0,b.jsx)(`strong`,{children:`published`}),` and cannot be edited or deleted. You may archive it if you believe it should no longer be in use.`]}),!w.hasError&&S.data.status===p.Archived&&(0,b.jsxs)(c,{variant:`info`,className:`mt-3 mb-1`,children:[`This video is `,(0,b.jsx)(`strong`,{children:`archived`}),`. You may publish it again from the options menu.`]}),w.hasError&&(0,b.jsxs)(c,{variant:`danger`,className:`mt-3 mb-1`,children:[(0,b.jsx)(`p`,{children:`Your account doesn't have access to watch this video. Please login to an account with one of the following libraries`}),(0,b.jsx)(`ul`,{children:S.data?.libraries?.data?.map(e=>(0,b.jsx)(`li`,{children:e.description},e.id))})]}),(0,b.jsxs)(`div`,{className:`${t&&w.data?.viewKey?``:`d-none`}`,children:[(0,b.jsx)(l,{object:{name:S.data.name,status:S.data.status},actions:[{label:`Open in Content Pipeline`,svg:d,appLink:{application:i.ASSEMBLY_LINE,action:s.mapStageToAction(C.data?.stage),params:{query:S.data?.id}},button:!0,disabled:!C.data,tooltip:C.data?``:`Videp is not in the content pipeline`,className:`btn btn-outline-dark me-2`,openInNewTab:!0}],actionsDropdownClassName:`btn btn-outline-dark`,showStatus:!0}),(0,b.jsx)(_,{viewKey:w.data?.viewKey,playerApi:new URL(ClickView.Config.Urls.PlayerApi),hotkeyElQuerySelector:`body`,onReady:()=>n(!0),eventLogging:!1})]})]})}export{x as PreviewVideoView};
|
|
2
|
+
//# sourceMappingURL=C2mEE4FT.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"C2mEE4FT.chunk.js","names":[],"sources":["../../../../../src/apps/videos/views/preview-video/PreviewVideoView.tsx"],"sourcesContent":["import React from 'react';\nimport { Alert, Spinner } from 'react-bootstrap';\n\nimport { Flight } from 'libs/common/react/index';\n\nimport { CurationStatus } from 'libs/shared/enums/CurationStatus';\nimport { MediaIdType } from 'libs/shared/enums/MediaIdType';\nimport { PlayerRequests } from 'libs/shared/flight-requests/PlayerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { VisibleOnSvg } from 'libs/shared/images/svg/actions/VisibleOnSvg';\nimport { CuratorUser, PlayerViewKey, Video } from 'libs/shared/interfaces';\n\nimport { ClickViewPlayer } from 'projects/player/react/Player';\n\nimport { ObjectHeader } from 'shared/components';\nimport { Actions, AppChannels } from 'shared/constants';\n\nimport { AssemblyLineRequests } from 'apps/assembly-line/flight-requests/AssemblyLineRequests';\nimport { AssemblyLineVideoResponse } from 'apps/assembly-line/interfaces/responses/AssemblyLineVideoResponse';\nimport { AssemblyLineHelper } from 'apps/assembly-line/utils/AssemblyLineHelper';\nimport { EditVideoNav } from 'apps/videos/components/edit-video-nav';\nimport { VideoRequests } from 'apps/videos/flight-requests/CuratorVideoRequests';\n\ninterface PreviewVideoViewProps {\n id: string;\n}\n\nexport function PreviewVideoView(props: PreviewVideoViewProps): JSX.Element {\n const [ ready, setReady ] = React.useState(false);\n\n const currentUser = Flight.useBasicFetch<CuratorUser>(UserRequests.currentUser());\n const video = Flight.useBasicFetch<Video>(VideoRequests.video(props.id));\n const contentPipelineVideo = Flight.useBasicFetch<AssemblyLineVideoResponse>(\n AssemblyLineRequests.getAssemblyLineVideo(props.id)\n );\n\n const viewKey = Flight.useBasicFetch<PlayerViewKey>(\n video.data &&\n PlayerRequests.createViewKey(video.data.id, MediaIdType.MasterObject)\n );\n\n if (!video.data || !currentUser.data || !viewKey.hasCompleted || !contentPipelineVideo.hasCompleted) {\n return (\n <div className='text-center py-5'>\n <Spinner as='div' animation='border' />\n </div>\n );\n }\n\n return (\n <div>\n {!!currentUser.data &&\n <EditVideoNav\n videoId={props.id}\n activeAction={Actions.Videos.PREVIEW_VIDEO}\n currentUser={currentUser.data}\n />\n }\n {!viewKey.hasError && video.data.status === CurationStatus.Published && (\n <Alert variant='info' className='mt-3 mb-1'>\n This video is <strong>published</strong> and cannot be edited or deleted.\n You may archive it if you believe it should no longer be in use.\n </Alert>\n )}\n\n {!viewKey.hasError && video.data.status === CurationStatus.Archived && (\n <Alert variant='info' className='mt-3 mb-1'>\n This video is <strong>archived</strong>. You may publish it again\n from the options menu.\n </Alert>\n )}\n\n {viewKey.hasError && (\n <Alert variant='danger' className='mt-3 mb-1'>\n <p>\n Your account doesn't have access to watch this video.\n Please login to an account with one of the following libraries\n </p>\n <ul>\n {video.data?.libraries?.data?.map(l => {\n return (\n <li key={l.id}>\n {l.description}\n </li>\n );\n })}\n </ul>\n </Alert>\n )}\n\n <div className={`${(ready && viewKey.data?.viewKey) ? '' : 'd-none'}`}>\n <ObjectHeader\n object={{ name: video.data.name, status: video.data.status }}\n actions={[{\n label: 'Open in Content Pipeline',\n svg: VisibleOnSvg,\n appLink: {\n application: AppChannels.ASSEMBLY_LINE,\n action: AssemblyLineHelper.mapStageToAction(contentPipelineVideo.data?.stage),\n params: { query: video.data?.id }\n },\n button: true,\n disabled: !contentPipelineVideo.data,\n tooltip: !contentPipelineVideo.data ? 'Videp is not in the content pipeline' : '',\n className: 'btn btn-outline-dark me-2',\n openInNewTab: true\n }]}\n actionsDropdownClassName='btn btn-outline-dark'\n showStatus\n />\n <ClickViewPlayer\n viewKey={viewKey.data?.viewKey}\n playerApi={new URL(ClickView.Config.Urls.PlayerApi)}\n hotkeyElQuerySelector='body'\n onReady={() => setReady(true)}\n eventLogging={false}\n />\n </div>\n </div>\n );\n}\n"],"mappings":"8tBA2BA,SAAgB,EAAiB,EAA2C,CAC1E,GAAM,CAAE,EAAO,GAAA,EAAmB,SAAS,EAAK,EAE1C,EAAc,EAAkC,EAAa,YAAY,CAAC,EAC1E,EAAQ,EAA4B,EAAc,MAAM,EAAM,EAAE,CAAC,EACjE,EAAuB,EAC3B,EAAqB,qBAAqB,EAAM,EAAE,CACpD,EAEM,EAAU,EACd,EAAM,MACN,EAAe,cAAc,EAAM,KAAK,GAAI,EAAY,YAAY,CACtE,EAUA,MARI,CAAC,EAAM,MAAQ,CAAC,EAAY,MAAQ,CAAC,EAAQ,cAAgB,CAAC,EAAqB,cAEnF,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,6BACb,EAAA,EAAA,IAAA,CAAC,EAAD,CAAS,GAAG,MAAM,UAAU,QAAU,CAAA,CACnC,CAAA,GAKP,EAAA,EAAA,KAAA,CAAC,MAAD,CAAA,SAAA,CACG,CAAC,CAAC,EAAY,OACb,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,QAAS,EAAM,GACf,aAAc,EAAQ,OAAO,cAC7B,YAAa,EAAY,IAC1B,CAAA,EAEF,CAAC,EAAQ,UAAY,EAAM,KAAK,SAAW,EAAe,YACzD,EAAA,EAAA,KAAA,CAAC,EAAD,CAAO,QAAQ,OAAO,UAAU,qBAAhC,CAA4C,kBAC5B,EAAA,EAAA,IAAA,CAAC,SAAD,CAAA,SAAQ,WAAiB,CAAA,EAAC,oGAEnC,IAGR,CAAC,EAAQ,UAAY,EAAM,KAAK,SAAW,EAAe,WACzD,EAAA,EAAA,KAAA,CAAC,EAAD,CAAO,QAAQ,OAAO,UAAU,qBAAhC,CAA4C,kBAC5B,EAAA,EAAA,IAAA,CAAC,SAAD,CAAA,SAAQ,UAAgB,CAAA,EAAC,mDAElC,IAGR,EAAQ,WACP,EAAA,EAAA,KAAA,CAAC,EAAD,CAAO,QAAQ,SAAS,UAAU,qBAAlC,EACE,EAAA,EAAA,IAAA,CAAC,IAAD,CAAA,SAAG,sHAGA,CAAA,GACH,EAAA,EAAA,IAAA,CAAC,KAAD,CAAA,SACG,EAAM,MAAM,WAAW,MAAM,IAAI,IAE9B,EAAA,EAAA,IAAA,CAAC,KAAD,CAAA,SACG,EAAE,WACD,EAFK,EAAE,EAEP,CAEP,CACC,CAAA,CACC,KAGT,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAW,GAAI,GAAS,EAAQ,MAAM,QAAW,GAAK,oBAA3D,EACE,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,OAAQ,CAAE,KAAM,EAAM,KAAK,KAAM,OAAQ,EAAM,KAAK,MAAO,EAC3D,QAAS,CAAC,CACR,MAAO,2BACP,IAAK,EACL,QAAS,CACP,YAAa,EAAY,cACzB,OAAQ,EAAmB,iBAAiB,EAAqB,MAAM,KAAK,EAC5E,OAAQ,CAAE,MAAO,EAAM,MAAM,EAAG,CAClC,EACA,OAAQ,GACR,SAAU,CAAC,EAAqB,KAChC,QAAU,EAAqB,KAAgD,GAAzC,uCACtC,UAAW,4BACX,aAAc,EAChB,CAAC,EACD,yBAAyB,uBACzB,WAAA,EACD,CAAA,GACD,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,QAAS,EAAQ,MAAM,QACvB,UAAW,IAAI,IAAI,UAAU,OAAO,KAAK,SAAS,EAClD,sBAAsB,OACtB,YAAe,EAAS,EAAI,EAC5B,aAAc,EACf,CAAA,CACE,GACF,CAAA,CAAA,CAET"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{C as e,a as t,i as n,ln as r}from"./rp704-Pm.chunk.js";import{t as i}from"./Di_u2uix.chunk.js";import{t as a}from"./BvMTtGLi.chunk.js";import"./CfCYHRuo.chunk.js";import{t as o}from"./UCDGupVs.chunk.js";import{G as s}from"./C7Gmh7eY.chunk.js";import{t as c}from"./eoeMwpAO2.chunk.js";import{y as l}from"./BhKv6dKl2.chunk.js";import{n as u}from"./CbiGs3Tn.chunk.js";import{s as d}from"./Dgk5cBBe.chunk.js";import"./Oh4_zGIH.chunk.js";import{t as f}from"./BDwjs8qz.chunk.js";import{R as p,z as m}from"./
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{C as e,a as t,i as n,ln as r}from"./rp704-Pm.chunk.js";import{t as i}from"./Di_u2uix.chunk.js";import{t as a}from"./BvMTtGLi.chunk.js";import"./CfCYHRuo.chunk.js";import{t as o}from"./UCDGupVs.chunk.js";import{G as s}from"./C7Gmh7eY.chunk.js";import{t as c}from"./eoeMwpAO2.chunk.js";import{y as l}from"./BhKv6dKl2.chunk.js";import{n as u}from"./CbiGs3Tn.chunk.js";import{s as d}from"./Dgk5cBBe.chunk.js";import"./Oh4_zGIH.chunk.js";import{t as f}from"./BDwjs8qz.chunk.js";import{R as p,z as m}from"./Bznq7eHJ.chunk.js";import{t as h}from"./Bwpvc7Th2.chunk.js";import{t as g}from"./C5i_8zoU.chunk.js";import{t as _}from"./MtOi7z-o.chunk.js";import{t as v}from"./0KUhq7W7.chunk.js";import{t as y}from"./DbrVjVdn.chunk.js";var b=r(t()),x=n();function S(t){let[n,r]=b.useState(!1),S=h(),C=d(o.currentUser()),w=d(g.clip(t.id)),T=d(s.getAssemblyLineVideo(t.id)),E=d(w.data&&p.createViewKey(w.data.id,m.MasterObject));return b.useEffect(()=>{E.hasError&&(S.error(`You cannot preview this clip as it has been created on a video from a different region. You have been redirected to the edit details page.`),e.trigger({application:a.CLIPS,action:i.Clips.EDIT_CLIP_DETAILS,args:[t.id]},{replace:!0}))},[E.hasError]),!w.data||!C.data||!E.hasCompleted?(0,x.jsx)(`div`,{className:`text-center py-5`,children:(0,x.jsx)(u,{as:`div`,animation:`border`})}):E.hasError?(0,x.jsx)(x.Fragment,{}):(0,x.jsxs)(`div`,{children:[!!C.data&&(0,x.jsx)(v,{clipId:t.id,activeAction:i.Clips.PREVIEW_CLIP,currentUser:C.data}),w.data.status===f.Published&&(0,x.jsxs)(c,{variant:`info`,className:`mt-3 mb-1`,children:[`This clip is `,(0,x.jsx)(`strong`,{children:`published`}),` and cannot be edited or deleted. You may archive it if you believe it should no longer be in use.`]}),w.data.status===f.Archived&&(0,x.jsxs)(c,{variant:`info`,className:`mt-3 mb-1`,children:[`This clip is `,(0,x.jsx)(`strong`,{children:`archived`}),`. You may publish it again from the options menu.`]}),(0,x.jsxs)(`div`,{className:`${n?``:`d-none`}`,children:[(0,x.jsx)(l,{object:{name:w.data.name,status:w.data.status},actions:y.getClipActions(w.data,T.data),actionsDropdownClassName:`btn btn-outline-dark`,showStatus:!0}),(0,x.jsx)(_,{viewKey:E.data.viewKey,playerApi:new URL(ClickView.Config.Urls.PlayerApi),hotkeyElQuerySelector:`body`,onReady:()=>r(!0),eventLogging:!1})]})]})}export{S as PreviewClipView};
|
|
2
|
+
//# sourceMappingURL=CMGpVYHd.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"CMGpVYHd.chunk.js","names":[],"sources":["../../../../../src/apps/clips/views/preview-clip/PreviewClipView.tsx"],"sourcesContent":["import React from 'react';\nimport { Alert, Spinner } from 'react-bootstrap';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { Flight } from 'libs/common/react/index';\n\nimport { CurationStatus } from 'libs/shared/enums/CurationStatus';\nimport { MediaIdType } from 'libs/shared/enums/MediaIdType';\nimport { PlayerRequests } from 'libs/shared/flight-requests/PlayerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { Clip, CuratorUser, PlayerViewKey } from 'libs/shared/interfaces';\n\nimport { ClickViewPlayer } from 'projects/player/react/Player';\n\nimport { ObjectHeader } from 'shared/components';\nimport { Actions, AppChannels } from 'shared/constants';\n\nimport { AssemblyLineRequests } from 'apps/assembly-line/flight-requests/AssemblyLineRequests';\nimport { AssemblyLineVideoResponse } from 'apps/assembly-line/interfaces/responses/AssemblyLineVideoResponse';\nimport { EditClipNav } from 'apps/clips/components/edit-clip-nav/EditClipNav';\nimport { ClipRequests } from 'apps/clips/flight-requests/CuratorClipRequests';\nimport { ClipActionsHelper } from 'apps/clips/utils/ClipActionsHelper';\n\ninterface PreviewClipViewProps {\n id: string;\n}\n\nexport function PreviewClipView(props: PreviewClipViewProps): JSX.Element {\n const [ ready, setReady ] = React.useState(false);\n\n const alerts = useAlerts();\n\n const currentUser = Flight.useBasicFetch<CuratorUser>(UserRequests.currentUser());\n const clip = Flight.useBasicFetch<Clip>(ClipRequests.clip(props.id));\n const contentPipelineClip = Flight.useBasicFetch<AssemblyLineVideoResponse>(\n AssemblyLineRequests.getAssemblyLineVideo(props.id)\n );\n\n const viewKey = Flight.useBasicFetch<PlayerViewKey>(\n clip.data &&\n PlayerRequests.createViewKey(clip.data.id, MediaIdType.MasterObject)\n );\n\n React.useEffect(() => {\n if (!viewKey.hasError)\n return;\n\n alerts.error(`You cannot preview this clip as it has been created on a video from a different region. You have been redirected to the edit details page.`);\n\n Core.AppLinkHelper.trigger({\n application: AppChannels.CLIPS,\n action: Actions.Clips.EDIT_CLIP_DETAILS,\n args: [props.id]\n }, { replace: true });\n }, [viewKey.hasError]);\n\n if (!clip.data || !currentUser.data || !viewKey.hasCompleted) {\n return (\n <div className='text-center py-5'>\n <Spinner as='div' animation='border' />\n </div>\n );\n }\n\n if (viewKey.hasError)\n return <></>;\n\n return (\n <div>\n {!!currentUser.data &&\n <EditClipNav\n clipId={props.id}\n activeAction={Actions.Clips.PREVIEW_CLIP}\n currentUser={currentUser.data}\n />\n }\n {clip.data.status === CurationStatus.Published && (\n <Alert variant='info' className='mt-3 mb-1'>\n This clip is <strong>published</strong> and cannot be edited or deleted.\n You may archive it if you believe it should no longer be in use.\n </Alert>\n )}\n\n {clip.data.status === CurationStatus.Archived && (\n <Alert variant='info' className='mt-3 mb-1'>\n This clip is <strong>archived</strong>. You may publish it again\n from the options menu.\n </Alert>\n )}\n\n <div className={`${ready ? '' : 'd-none'}`}>\n <ObjectHeader\n object={{ name: clip.data.name, status: clip.data.status }}\n actions={ClipActionsHelper.getClipActions(clip.data, contentPipelineClip.data)}\n actionsDropdownClassName='btn btn-outline-dark'\n showStatus\n />\n <ClickViewPlayer\n viewKey={viewKey.data.viewKey}\n playerApi={new URL(ClickView.Config.Urls.PlayerApi)}\n hotkeyElQuerySelector='body'\n onReady={() => setReady(true)}\n eventLogging={false}\n />\n </div>\n </div>\n );\n}\n"],"mappings":"2uBA4BA,SAAgB,EAAgB,EAA0C,CACxE,GAAM,CAAE,EAAO,GAAA,EAAmB,SAAS,EAAK,EAE1C,EAAS,EAAU,EAEnB,EAAc,EAAkC,EAAa,YAAY,CAAC,EAC1E,EAAO,EAA2B,EAAa,KAAK,EAAM,EAAE,CAAC,EAC7D,EAAsB,EAC1B,EAAqB,qBAAqB,EAAM,EAAE,CACpD,EAEM,EAAU,EACd,EAAK,MACL,EAAe,cAAc,EAAK,KAAK,GAAI,EAAY,YAAY,CACrE,EA0BA,OAxBA,EAAM,cAAgB,CACf,EAAQ,WAGb,EAAO,MAAM,4IAA4I,EAEzJ,EAAmB,QAAQ,CACzB,YAAa,EAAY,MACzB,OAAQ,EAAQ,MAAM,kBACtB,KAAM,CAAC,EAAM,EAAE,CACjB,EAAG,CAAE,QAAS,EAAK,CAAC,EACtB,EAAG,CAAC,EAAQ,QAAQ,CAAC,EAEjB,CAAC,EAAK,MAAQ,CAAC,EAAY,MAAQ,CAAC,EAAQ,cAE5C,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,6BACb,EAAA,EAAA,IAAA,CAAC,EAAD,CAAS,GAAG,MAAM,UAAU,QAAU,CAAA,CACnC,CAAA,EAIL,EAAQ,UACH,EAAA,EAAA,IAAA,CAAA,EAAA,SAAA,CAAI,CAAA,GAGX,EAAA,EAAA,KAAA,CAAC,MAAD,CAAA,SAAA,CACG,CAAC,CAAC,EAAY,OACb,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,OAAQ,EAAM,GACd,aAAc,EAAQ,MAAM,aAC5B,YAAa,EAAY,IAC1B,CAAA,EAEF,EAAK,KAAK,SAAW,EAAe,YACnC,EAAA,EAAA,KAAA,CAAC,EAAD,CAAO,QAAQ,OAAO,UAAU,qBAAhC,CAA4C,iBAC7B,EAAA,EAAA,IAAA,CAAC,SAAD,CAAA,SAAQ,WAAiB,CAAA,EAAC,oGAElC,IAGR,EAAK,KAAK,SAAW,EAAe,WACnC,EAAA,EAAA,KAAA,CAAC,EAAD,CAAO,QAAQ,OAAO,UAAU,qBAAhC,CAA4C,iBAC7B,EAAA,EAAA,IAAA,CAAC,SAAD,CAAA,SAAQ,UAAgB,CAAA,EAAC,mDAEjC,KAGT,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAW,GAAG,EAAQ,GAAK,oBAAhC,EACE,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,OAAQ,CAAE,KAAM,EAAK,KAAK,KAAM,OAAQ,EAAK,KAAK,MAAO,EACzD,QAAS,EAAkB,eAAe,EAAK,KAAM,EAAoB,IAAI,EAC7E,yBAAyB,uBACzB,WAAA,EACD,CAAA,GACD,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,QAAS,EAAQ,KAAK,QACtB,UAAW,IAAI,IAAI,UAAU,OAAO,KAAK,SAAS,EAClD,sBAAsB,OACtB,YAAe,EAAS,EAAI,EAC5B,aAAc,EACf,CAAA,CACE,GACF,CAAA,CAAA,CAET"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{C as e,a as t,i as n,ln as r,t as i}from"./rp704-Pm.chunk.js";import{t as a}from"./DZX1tZ-D.chunk.js";import{t as o}from"./Di_u2uix.chunk.js";import{t as s}from"./BvMTtGLi.chunk.js";import"./CfCYHRuo.chunk.js";import{t as c}from"./UCDGupVs.chunk.js";import{t as l}from"./eoeMwpAO2.chunk.js";import{y as u}from"./BhKv6dKl2.chunk.js";import{n as d}from"./CbiGs3Tn.chunk.js";import{t as f}from"./CMczucng.chunk.js";import{s as p}from"./Dgk5cBBe.chunk.js";import"./Oh4_zGIH.chunk.js";import{t as m}from"./BDwjs8qz.chunk.js";import{R as h,z as g}from"./
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{C as e,a as t,i as n,ln as r,t as i}from"./rp704-Pm.chunk.js";import{t as a}from"./DZX1tZ-D.chunk.js";import{t as o}from"./Di_u2uix.chunk.js";import{t as s}from"./BvMTtGLi.chunk.js";import"./CfCYHRuo.chunk.js";import{t as c}from"./UCDGupVs.chunk.js";import{t as l}from"./eoeMwpAO2.chunk.js";import{y as u}from"./BhKv6dKl2.chunk.js";import{n as d}from"./CbiGs3Tn.chunk.js";import{t as f}from"./CMczucng.chunk.js";import{s as p}from"./Dgk5cBBe.chunk.js";import"./Oh4_zGIH.chunk.js";import{t as m}from"./BDwjs8qz.chunk.js";import{R as h,z as g}from"./Bznq7eHJ.chunk.js";import{a as _,o as v}from"./CCjmBlqu.chunk.js";import{t as y}from"./CSqAh4jh.chunk.js";import{t as b}from"./BbR7yW4A2.chunk.js";import{n as x,t as S}from"./uS1TyZwO2.chunk.js";var C=r(t()),w=n();function T(t){let[n,r]=C.useState(!1),T=p(c.currentUser()),E=p(c.token()),D=p(y.interactiveMetadata(t.id)),O=p(D.data&&h.createViewKey(D.data.id,g.MasterObject)),k=C.useMemo(()=>v(),[]);C.useEffect(()=>{!D.hasCompleted||D.data.status!==m.Draft||e.trigger({application:s.INTERACTIVES,action:o.Interactives.EDIT_INTERACTIVE,args:[t.id]},{replace:!0})},[D.hasCompleted]);function A(){let e=[{label:`Open in ClickView`,href:a.safeUrlConcat(ClickView.Config.Urls.LiteUrl,`interactive/${t.id}/${i.slugify(D.data.name)}`),openInNewTab:!0,className:`btn btn-outline-dark me-2`,svg:f,button:!0},{label:`Edit details`,appLink:{application:s.INTERACTIVES,action:o.Interactives.EDIT_INTERACTIVE_DETAILS,args:[D.data.id]},button:!1},{label:`Copy interactive`,appLink:{application:s.INTERACTIVES,action:o.Interactives.COPY_INTERACTIVE,args:[D.data.id]},button:!1}];return D.data._parentClip?.id?e.push({label:`Open parent clip`,appLink:{application:s.CLIPS,action:o.Clips.EDIT_CLIP_INTERACTIVES,args:[D.data._parentClip.id]},button:!1}):D.data._parentVideo?.id&&e.push({label:`Open parent video`,appLink:{application:s.VIDEOS,action:o.Videos.EDIT_VIDEO,args:[D.data._parentVideo.id]},button:!1}),D.data.status===m.Published?e.push({label:`Archive interactive`,appLink:{application:s.INTERACTIVES,action:o.Interactives.ARCHIVE_INTERACTIVE,args:[t.id]},className:`text-danger`,button:!1}):e.push({label:`Publish interactive`,appLink:{application:s.INTERACTIVES,action:o.Interactives.PUBLISH_INTERACTIVE,args:[t.id]},button:!1}),e}return!O.data||!D.data||!E.data?(0,w.jsx)(`div`,{className:`text-center py-5`,children:(0,w.jsx)(d,{as:`div`,animation:`border`})}):(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(b,{interactive:D.data,activeAction:o.Interactives.PREVIEW_INTERACTIVE,currentUser:T.data}),D.data.status===m.Published&&(0,w.jsxs)(l,{variant:`info`,className:`mt-3 mb-1`,children:[`This interactive is `,(0,w.jsx)(`strong`,{children:`published`}),` and cannot be edited or deleted. You may archive it if you believe it should no longer be in use.`]}),D.data.status===m.Archived&&(0,w.jsxs)(l,{variant:`info`,className:`mt-3 mb-1`,children:[`This interactive is `,(0,w.jsx)(`strong`,{children:`archived`}),`. You may publish it again from the options menu.`]}),(0,w.jsxs)(`div`,{className:`${n?``:`d-none`}`,children:[(0,w.jsx)(u,{object:{name:D.data.name,status:D.data.status},actions:A(),actionsDropdownClassName:`btn btn-outline-dark`,showStatus:!0}),(0,w.jsx)(S,{viewKey:O.data.viewKey,imageApi:new URL(ClickView.Config.Urls.ImageAPI),playerApi:new URL(ClickView.Config.Urls.PlayerApi),hotkeyElQuerySelector:`body`,onReady:()=>r(!0),currentUser:T.data,mode:x.View,questionListPortalNode:k,eventLogging:!1}),(0,w.jsx)(_,{node:k})]})]})}export{T as PreviewInteractiveView};
|
|
2
|
+
//# sourceMappingURL=DFwtjofq2.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"DFwtjofq2.chunk.js","names":[],"sources":["../../../../../src/apps/interactives/views/preview-interactive/PreviewInteractiveView.tsx"],"sourcesContent":["import React from 'react';\nimport { Alert, Spinner } from 'react-bootstrap';\nimport { createHtmlPortalNode, OutPortal } from 'react-reverse-portal';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/react/index';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { CurationStatus } from 'libs/shared/enums/CurationStatus';\nimport { MediaIdType } from 'libs/shared/enums/MediaIdType';\nimport { PlayerRequests } from 'libs/shared/flight-requests/PlayerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { VisibleOnSvg } from 'libs/shared/images/svg/actions/VisibleOnSvg';\nimport { CuratorUser, CurrentUser, InteractiveMetadata, PlayerViewKey } from 'libs/shared/interfaces';\n\nimport { InteractiveMode } from 'projects/player/plugins/interactive-plugin/interfaces';\nimport { ClickViewInteractivePlayer } from 'projects/player/react/InteractivePlayer';\n\nimport { ObjectHeader } from 'shared/components';\nimport { Actions, AppChannels } from 'shared/constants';\n\nimport { EditInteractivesNav } from 'apps/interactives/components/edit-interactives-nav/EditInteractivesNav';\nimport { InteractiveRequests } from 'apps/interactives/flight-requests/CuratorInteractiveRequests';\n\ninterface PreviewInteractiveViewProps {\n id: string;\n}\n\nexport function PreviewInteractiveView(props: PreviewInteractiveViewProps): JSX.Element {\n const [ ready, setReady ] = React.useState(false);\n\n const currentUser = Flight.useBasicFetch<CuratorUser>(UserRequests.currentUser());\n const token = Flight.useBasicFetch<string>(UserRequests.token());\n\n const interactiveMetadata = Flight.useBasicFetch<InteractiveMetadata>(\n InteractiveRequests.interactiveMetadata(props.id)\n );\n\n const viewKey = Flight.useBasicFetch<PlayerViewKey>(\n interactiveMetadata.data &&\n PlayerRequests.createViewKey(interactiveMetadata.data.id, MediaIdType.MasterObject)\n );\n\n const questionListPortalNode = React.useMemo(() => createHtmlPortalNode(), []);\n\n React.useEffect(() => {\n if (!interactiveMetadata.hasCompleted || interactiveMetadata.data.status !== CurationStatus.Draft)\n return;\n\n Core.AppLinkHelper.trigger({\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.EDIT_INTERACTIVE,\n args: [props.id]\n }, { replace: true });\n }, [interactiveMetadata.hasCompleted]);\n\n function getActions(): ActionOptions[] {\n const actions: ActionOptions[] = [{\n label: 'Open in ClickView',\n href: UrlHelper.safeUrlConcat(\n ClickView.Config.Urls.LiteUrl,\n `interactive/${props.id}/${TextHelper.slugify(interactiveMetadata.data.name)}`\n ),\n openInNewTab: true,\n className: 'btn btn-outline-dark me-2',\n svg: VisibleOnSvg,\n button: true\n }, {\n label: 'Edit details',\n appLink: {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.EDIT_INTERACTIVE_DETAILS,\n args: [interactiveMetadata.data.id]\n },\n button: false\n }, {\n label: 'Copy interactive',\n appLink: {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.COPY_INTERACTIVE,\n args: [interactiveMetadata.data.id]\n },\n button: false\n }];\n\n if (interactiveMetadata.data._parentClip?.id) {\n actions.push({\n label: 'Open parent clip',\n appLink: {\n application: AppChannels.CLIPS,\n action: Actions.Clips.EDIT_CLIP_INTERACTIVES,\n args: [interactiveMetadata.data._parentClip.id]\n },\n button: false\n });\n } else if (interactiveMetadata.data._parentVideo?.id) {\n actions.push({\n label: 'Open parent video',\n appLink: {\n application: AppChannels.VIDEOS,\n action: Actions.Videos.EDIT_VIDEO,\n args: [interactiveMetadata.data._parentVideo.id]\n },\n button: false\n });\n }\n \n if (interactiveMetadata.data.status === CurationStatus.Published) {\n actions.push({\n label: 'Archive interactive',\n appLink: {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.ARCHIVE_INTERACTIVE,\n args: [props.id]\n },\n className: 'text-danger',\n button: false\n });\n } else {\n actions.push({\n label: 'Publish interactive',\n appLink: {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.PUBLISH_INTERACTIVE,\n args: [props.id]\n },\n button: false\n });\n }\n\n return actions;\n }\n\n if (!viewKey.data || !interactiveMetadata.data || !token.data) {\n return (\n <div className='text-center py-5'>\n <Spinner as='div' animation='border' />\n </div>\n );\n }\n\n return (\n <>\n <EditInteractivesNav\n interactive={interactiveMetadata.data}\n activeAction={Actions.Interactives.PREVIEW_INTERACTIVE}\n currentUser={currentUser.data}\n />\n\n {interactiveMetadata.data.status === CurationStatus.Published && (\n <Alert variant='info' className='mt-3 mb-1'>\n This interactive is <strong>published</strong> and cannot be edited or deleted.\n You may archive it if you believe it should no longer be in use.\n </Alert>\n )}\n\n {interactiveMetadata.data.status === CurationStatus.Archived && (\n <Alert variant='info' className='mt-3 mb-1'>\n This interactive is <strong>archived</strong>. You may publish it again\n from the options menu.\n </Alert>\n )}\n\n <div className={`${ready ? '' : 'd-none'}`}>\n <ObjectHeader\n object={{ name: interactiveMetadata.data.name, status: interactiveMetadata.data.status }}\n actions={getActions()}\n actionsDropdownClassName='btn btn-outline-dark'\n showStatus\n />\n <ClickViewInteractivePlayer\n viewKey={viewKey.data.viewKey}\n imageApi={new URL(ClickView.Config.Urls.ImageAPI)}\n playerApi={new URL(ClickView.Config.Urls.PlayerApi)}\n hotkeyElQuerySelector='body'\n onReady={() => setReady(true)}\n currentUser={currentUser.data as unknown as CurrentUser}\n mode={InteractiveMode.View}\n questionListPortalNode={questionListPortalNode}\n eventLogging={false}\n />\n <OutPortal node={questionListPortalNode} />\n </div>\n </>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as e,i as t,ln as n}from"./rp704-Pm.chunk.js";import{t as r}from"./C1kx8Ra5.chunk.js";import{t as i}from"./UCDGupVs.chunk.js";import{s as a,u as o}from"./Dgk5cBBe.chunk.js";import"./Oh4_zGIH.chunk.js";import{t as s}from"./Bwpvc7Th2.chunk.js";import{t as c}from"./BcwM0but2.chunk.js";import{t as l}from"./CoqIP93V2.chunk.js";import{t as u}from"./ogE6FIPU2.chunk.js";import{t as d}from"./D3exV_Ay2.chunk.js";import{t as f}from"./FBRb9Ucn2.chunk.js";import{t as p}from"./
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{a as e,i as t,ln as n}from"./rp704-Pm.chunk.js";import{t as r}from"./C1kx8Ra5.chunk.js";import{t as i}from"./UCDGupVs.chunk.js";import{s as a,u as o}from"./Dgk5cBBe.chunk.js";import"./Oh4_zGIH.chunk.js";import{t as s}from"./Bwpvc7Th2.chunk.js";import{t as c}from"./BcwM0but2.chunk.js";import{t as l}from"./CoqIP93V2.chunk.js";import{t as u}from"./ogE6FIPU2.chunk.js";import{t as d}from"./D3exV_Ay2.chunk.js";import{t as f}from"./FBRb9Ucn2.chunk.js";import{t as p}from"./Da_9BBKD2.chunk.js";var m=n(e()),h=t();function g(e){let t=s(),n=o(),g=a(c.getContentPartner(e.contentPartnerId)),_=a(i.currentUser()),v=a(l.contentRegions()),[y,b]=m.useState(null);async function x(e){b(e)}async function S(i,a){let o=f.getPartnerLinkObjectByType(g.data.links,`website`),s=!!i.websiteLink?.length,l={...r.omit(i,[`contentRegions`,`parent`,`websiteLink`]),contentRegionIds:i.contentRegions.map(e=>e.id),websiteLink:s?i.websiteLink:null,parentId:i.parent?.id};try{if(await n(c.updateContentPartner(e.contentPartnerId,l,a,a)),o?.id&&!s&&await n(c.deleteContentPartnerLink(e.contentPartnerId,o.id)),!l.videoBanner&&g.data.videoBanner&&await n(c.deleteContentPartnerVideoBanner(e.contentPartnerId,g.data.videoBanner.id)),y)if(y.masterVideoId&&y.pendingProcessId)await n(c.updateVideoBanner(g.data._slug.value,y.masterVideoId,y.pendingProcessId)),b(null);else throw Error(`Pending video banner is not valid.`);t.success(`Successfully updated the content partner.`)}catch(e){t.error(e.responseJSON?.message||`There was an error updating the content partner. Please try again.`)}}let C=u();return(0,h.jsxs)(h.Fragment,{children:[!!_.data&&(0,h.jsx)(d,{contentPartnerId:e.contentPartnerId,activeAction:C.editContentPartner(e.contentPartnerId).action,currentUser:_.data}),!!g.data&&!!_.data&&(0,h.jsx)(p,{currentUser:_.data,contentPartner:g.data,contentRegions:v.data?.data,onSave:S,onVideoUploadComplete:x})]})}export{g as EditContentPartnerView};
|
|
2
|
+
//# sourceMappingURL=DRmwJ1it2.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"DRmwJ1it2.chunk.js","names":[],"sources":["../../../../../src/apps/content-partners/views/edit-content-partner/EditContentPartnerView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Flight } from 'libs/common/flight';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { ContentPartnersHelper } from 'libs/shared/apps/content-partners/utils/ContentPartnersHelper';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { ContentRegionCollection, CurrentUser } from 'libs/shared/interfaces';\n\nimport { PendingItem } from 'shared/components/upload-video/UploadVideo';\nimport { ContentRegionRequests } from 'shared/flight-requests/ContentRegionRequests';\nimport { ContentPartnerProfile } from 'shared/interfaces/models/ContentPartnerProfile';\n\nimport { EditContentPartner } from 'apps/content-partners/components/edit-content-partner/EditContentPartner';\nimport { EditContentPartnerNav } from 'apps/content-partners/components/edit-content-partner-nav/EditContentPartnerNav';\nimport { ContentPartnerRequests } from 'apps/content-partners/flight-requests/ContentPartnerRequests';\nimport { EditPartnerFormData } from 'apps/content-partners/interfaces/EditPartnerFormData';\nimport { getContentPartnerAppLinks } from 'apps/content-partners/utils/getContentPartnerAppLinks';\n\ninterface EditContentPartnerViewProps {\n contentPartnerId: string;\n}\n\nexport function EditContentPartnerView(props: EditContentPartnerViewProps): JSX.Element {\n const alerts = useAlerts();\n const fetchAsync = Flight.useGetFetchAsync();\n\n const contentPartner = Flight.useBasicFetch<ContentPartnerProfile>(\n ContentPartnerRequests.getContentPartner(props.contentPartnerId)\n );\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const contentRegions = Flight.useBasicFetch<ContentRegionCollection>(ContentRegionRequests.contentRegions());\n\n const [ pendingVideoBanner, setPendingVideoBanner ] = React.useState<PendingItem | null>(null);\n\n async function onVideoUploadComplete(pendingItem: PendingItem) {\n setPendingVideoBanner(pendingItem);\n }\n\n async function saveContentPartner(\n data: EditPartnerFormData,\n onDone?: () => void\n ) {\n const existingWebsiteLink = ContentPartnersHelper.getPartnerLinkObjectByType(contentPartner.data.links, 'website');\n const hasCurrentWebsiteLink = !!data.websiteLink?.length;\n\n const payload = {\n ...ObjectHelper.omit(data, [ 'contentRegions', 'parent', 'websiteLink' ]),\n contentRegionIds: data.contentRegions.map(cr => cr.id),\n websiteLink: !hasCurrentWebsiteLink ? null : data.websiteLink,\n parentId: data.parent?.id\n };\n try {\n await fetchAsync(ContentPartnerRequests.updateContentPartner(\n props.contentPartnerId,\n payload,\n onDone,\n onDone\n ));\n\n // Delete the existing website link if it exists and the current website link is not set\n if (existingWebsiteLink?.id && !hasCurrentWebsiteLink) {\n await fetchAsync(ContentPartnerRequests.deleteContentPartnerLink(\n props.contentPartnerId,\n existingWebsiteLink.id\n ));\n }\n\n if (!payload.videoBanner && contentPartner.data.videoBanner) {\n await fetchAsync(ContentPartnerRequests.deleteContentPartnerVideoBanner(\n props.contentPartnerId,\n contentPartner.data.videoBanner.id\n ));\n }\n\n if (pendingVideoBanner) {\n if (pendingVideoBanner.masterVideoId && pendingVideoBanner.pendingProcessId) {\n await fetchAsync(ContentPartnerRequests.updateVideoBanner(\n contentPartner.data._slug.value,\n pendingVideoBanner.masterVideoId,\n pendingVideoBanner.pendingProcessId\n ));\n\n setPendingVideoBanner(null);\n } else {\n throw new Error('Pending video banner is not valid.');\n }\n }\n\n alerts.success('Successfully updated the content partner.');\n } catch (xhr) {\n alerts.error(xhr.responseJSON?.message || 'There was an error updating the content partner. Please try again.');\n }\n }\n\n const appLinks = getContentPartnerAppLinks();\n\n return (\n <>\n {!!currentUser.data &&\n <EditContentPartnerNav\n contentPartnerId={props.contentPartnerId}\n activeAction={appLinks.editContentPartner(props.contentPartnerId).action}\n currentUser={currentUser.data}\n />\n }\n {!!contentPartner.data && !!currentUser.data && (\n <EditContentPartner\n currentUser={currentUser.data}\n contentPartner={contentPartner.data}\n contentRegions={contentRegions.data?.data}\n onSave={saveContentPartner}\n onVideoUploadComplete={onVideoUploadComplete}\n />\n )}\n </>\n );\n}\n"],"mappings":"ogBAwBA,SAAgB,EAAuB,EAAiD,CACtF,IAAM,EAAS,EAAU,EACnB,EAAa,EAAwB,EAErC,EAAiB,EACrB,EAAuB,kBAAkB,EAAM,gBAAgB,CACjE,EACM,EAAc,EAAkC,EAAa,YAAY,CAAC,EAC1E,EAAiB,EAA8C,EAAsB,eAAe,CAAC,EAErG,CAAE,EAAoB,GAAA,EAAgC,SAA6B,IAAI,EAE7F,eAAe,EAAsB,EAA0B,CAC7D,EAAsB,CAAW,CACnC,CAEA,eAAe,EACb,EACA,EACA,CACA,IAAM,EAAsB,EAAsB,2BAA2B,EAAe,KAAK,MAAO,SAAS,EAC3G,EAAwB,CAAC,CAAC,EAAK,aAAa,OAE5C,EAAU,CACd,GAAG,EAAa,KAAK,EAAM,CAAE,iBAAkB,SAAU,aAAc,CAAC,EACxE,iBAAkB,EAAK,eAAe,IAAI,GAAM,EAAG,EAAE,EACrD,YAAc,EAA+B,EAAK,YAAZ,KACtC,SAAU,EAAK,QAAQ,EACzB,EACA,GAAI,CAuBF,GAtBA,MAAM,EAAW,EAAuB,qBACtC,EAAM,iBACN,EACA,EACA,CACF,CAAC,EAGG,GAAqB,IAAM,CAAC,GAC9B,MAAM,EAAW,EAAuB,yBACtC,EAAM,iBACN,EAAoB,EACtB,CAAC,EAGC,CAAC,EAAQ,aAAe,EAAe,KAAK,aAC9C,MAAM,EAAW,EAAuB,gCACtC,EAAM,iBACN,EAAe,KAAK,YAAY,EAClC,CAAC,EAGC,EACF,GAAI,EAAmB,eAAiB,EAAmB,iBACzD,MAAM,EAAW,EAAuB,kBACtC,EAAe,KAAK,MAAM,MAC1B,EAAmB,cACnB,EAAmB,gBACrB,CAAC,EAED,EAAsB,IAAI,OAE1B,MAAU,MAAM,oCAAoC,EAIxD,EAAO,QAAQ,2CAA2C,CAC5D,OAAS,EAAK,CACZ,EAAO,MAAM,EAAI,cAAc,SAAW,oEAAoE,CAChH,CACF,CAEA,IAAM,EAAW,EAA0B,EAE3C,OACE,EAAA,EAAA,KAAA,CAAA,EAAA,SAAA,CAAA,SAAA,CACG,CAAC,CAAC,EAAY,OACb,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,iBAAkB,EAAM,iBACxB,aAAc,EAAS,mBAAmB,EAAM,gBAAgB,CAAC,CAAC,OAClE,YAAa,EAAY,IAC1B,CAAA,EAEF,CAAC,CAAC,EAAe,MAAQ,CAAC,CAAC,EAAY,OACtC,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,YAAa,EAAY,KACzB,eAAgB,EAAe,KAC/B,eAAgB,EAAe,MAAM,KACrC,OAAQ,EACe,uBACxB,CAAA,CAEH,CAAA,CAAA,CAEN"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as e,i as t,ln as n}from"./rp704-Pm.chunk.js";import{l as r,n as i,r as a}from"./Crs6pJ2h.chunk.js";import{G as o,T as s,W as c}from"./C7Gmh7eY.chunk.js";import{i as l}from"./EkUBWhps2.chunk.js";import{n as u}from"./CbiGs3Tn.chunk.js";import{s as d}from"./Dgk5cBBe.chunk.js";import"./Oh4_zGIH.chunk.js";import{R as f,z as p}from"./
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{a as e,i as t,ln as n}from"./rp704-Pm.chunk.js";import{l as r,n as i,r as a}from"./Crs6pJ2h.chunk.js";import{G as o,T as s,W as c}from"./C7Gmh7eY.chunk.js";import{i as l}from"./EkUBWhps2.chunk.js";import{n as u}from"./CbiGs3Tn.chunk.js";import{s as d}from"./Dgk5cBBe.chunk.js";import"./Oh4_zGIH.chunk.js";import{R as f,z as p}from"./Bznq7eHJ.chunk.js";import{t as m}from"./C4Xe4WTH.chunk.js";import{t as h}from"./DkLlaBp-.chunk.js";import{a as g,l as _,o as v,s as y,u as b}from"./Ta_RhTv-.chunk.js";import{t as x}from"./psIZEjea.chunk.js";import{t as S}from"./MtOi7z-o.chunk.js";var C=n(e(),1),w={container:`_container_xmv3v_1`,close:`_close_xmv3v_4`,drag:`_drag_xmv3v_13`},T=t(),E=270,D=480,O=15;function k(e){let[t,n]=h(`pip:pos`,{right:15,bottom:15},{storage:l.SessionStorage});function r(e){let r=t.right-e.delta.x,i=t.bottom-e.delta.y;window.innerHeight-t.bottom-E+e.delta.y<O&&(i=window.innerHeight-E-O),r<-240&&(r=-240),i<-135&&(i=-135),r>window.innerWidth-D/2&&(r=window.innerWidth-D/2),i>window.innerHeight-E/2&&(i=window.innerHeight-E/2),n({right:r,bottom:i})}return(0,T.jsx)(g,{onDragEnd:r,sensors:b(_(v,{activationConstraint:{distance:10}})),children:(0,T.jsx)(A,{...e,pos:t})})}function A(e){let[t,n]=C.useState(!1),l=s(),{attributes:h,listeners:g,setNodeRef:_,transform:v}=y({id:`pip`}),b={right:`${e.pos.right}px`,bottom:`${e.pos.bottom}px`,width:`${D}px`,height:`${E}px`,transform:v?`translate3d(${v.x}px, ${v.y}px, 0)`:``},O=d(o.getAssemblyLineVideo(e.videoId)),k=d(f.createViewKey(e.videoId,p.MasterObject));function A(){return!k.hasCompleted||!O.hasCompleted}function j(){return O.data.regions?.map(e=>c.mapVideoContentRegionToLabel(e)).join(` / `)}C.useEffect(()=>{t&&A()&&n(!1)},[A()]),C.useEffect(()=>()=>{l?.resetPlayer()},[]);function M(e){n(!0),l&&l.setPlayerRef(e)}return(0,T.jsx)(`div`,{className:`${w.container} position-fixed box-shadow rounded-3 bg-white overflow-hidden`,style:b,children:k.hasError||O.hasError?(0,T.jsxs)(`div`,{className:`d-flex align-items-center justify-content-center h-100 text-center px-3`,children:[(0,T.jsx)(r,{ref:_,...g,...h,onClick:e.close,className:`${w.drag} d-flex align-items-center justify-content-center rounded-circle box-shadow`,children:(0,T.jsx)(i,{svg:x,size:a.Large})}),O.data.regions?.length?(0,T.jsxs)(`p`,{children:[`This video cannot be viewed from your account. Please log into an account for one of the following regions: `,j()]}):(0,T.jsx)(`p`,{children:`This video cannot be viewed from your account because it has not been added to any libraries yet.`}),(0,T.jsx)(r,{onClick:e.close,className:`${w.close} d-flex align-items-center justify-content-center rounded-circle box-shadow`,children:(0,T.jsx)(i,{svg:m,size:a.Large})})]}):(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(`div`,{className:t?`d-none`:`d-flex align-items-center justify-content-center h-100`,children:(0,T.jsx)(u,{})}),!A()&&(0,T.jsxs)(`div`,{className:t?``:`d-none`,children:[(0,T.jsx)(r,{ref:_,...g,...h,onClick:e.close,className:`${w.drag} d-flex align-items-center justify-content-center rounded-circle box-shadow`,children:(0,T.jsx)(i,{svg:x,size:a.Large})}),(0,T.jsx)(S,{viewKey:k.data?.viewKey,playerApi:new URL(ClickView.Config.Urls.PlayerApi),hotkeyElQuerySelector:`body`,onReady:M,eventLogging:!1,autoplay:!0}),(0,T.jsx)(r,{onClick:e.close,className:`${w.close} d-flex align-items-center justify-content-center rounded-circle box-shadow`,children:(0,T.jsx)(i,{svg:m,size:a.Large})})]})]})})}export{k as PictureInPictureView};
|
|
2
|
+
//# sourceMappingURL=DWS9yr24.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BWv_VfB9.chunk.js","names":[],"sources":["../../../../../src/apps/assembly-line/views/picture-in-picture/picture-in-picture.module.scss","../../../../../src/apps/assembly-line/views/picture-in-picture/PictureInPictureView.tsx"],"sourcesContent":[":local {\n .container {\n z-index: 100000;\n }\n\n .close {\n position: absolute;\n top: $spacer;\n right: $spacer;\n width: 2.5rem;\n height: 2.5rem;\n background-color: rgba($gray-200, 0.5);\n z-index: 1;\n }\n\n .drag {\n position: absolute;\n top: $spacer;\n left: $spacer;\n width: 2.5rem;\n height: 2.5rem;\n background-color: rgba($gray-200, 0.5);\n z-index: 2;\n }\n}","import React from 'react';\nimport { Spinner } from 'react-bootstrap';\nimport { DndContext, DragEndEvent, PointerSensor, useDraggable, useSensor, useSensors } from '@dnd-kit/core';\n\nimport { StorageType } from 'libs/common/backbone/utils/LocalStorageHelper';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\nimport { Flight } from 'libs/common/react/index';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { MediaIdType } from 'libs/shared/enums/MediaIdType';\nimport { PlayerRequests } from 'libs/shared/flight-requests/PlayerRequests';\nimport { CloseSvg } from 'libs/shared/images/svg/actions/CloseSvg';\nimport { HamburgerSvg } from 'libs/shared/images/svg/objects/HamburgerSvg';\nimport { PlayerViewKey } from 'libs/shared/interfaces';\n\nimport { Player } from 'projects/player/players/player';\nimport { ClickViewPlayer } from 'projects/player/react/Player';\n\nimport { useCuratorPlayer } from 'shared/context/CuratorPlayerContext';\n\nimport { AssemblyLineRequests } from 'apps/assembly-line/flight-requests/AssemblyLineRequests';\nimport { AssemblyLineVideo } from 'apps/assembly-line/interfaces/AssemblyLineVideo';\nimport { AssemblyLineHelper } from 'apps/assembly-line/utils/AssemblyLineHelper';\n\nimport styles from './picture-in-picture.module.scss';\n\nconst HEIGHT = 270;\nconst WIDTH = 480;\nconst TOP_MARGIN = 15;\n\ninterface ViewWrapperProps {\n videoId: string;\n close: () => void;\n}\n\nfunction ViewWrapper(props: ViewWrapperProps): JSX.Element {\n const [ pos, setPos ] = useViewModel(\n 'pip:pos',\n { right: 15, bottom: 15 },\n { storage: StorageType.SessionStorage }\n );\n\n function onDragEnd(event: DragEndEvent): void {\n let right = pos.right - event.delta.x;\n let bottom = pos.bottom - event.delta.y;\n const top = window.innerHeight - pos.bottom - HEIGHT + event.delta.y;\n\n if (top < TOP_MARGIN)\n bottom = window.innerHeight - HEIGHT - TOP_MARGIN;\n \n if (right < -(WIDTH / 2))\n right = -(WIDTH / 2);\n\n if (bottom < -(HEIGHT / 2))\n bottom = -(HEIGHT / 2);\n\n if (right > (window.innerWidth - (WIDTH / 2)))\n right = window.innerWidth - (WIDTH / 2);\n\n if (bottom > (window.innerHeight - (HEIGHT / 2)))\n bottom = window.innerHeight - (HEIGHT / 2);\n\n setPos({ right, bottom });\n }\n\n const mouseSensor = useSensor(PointerSensor, {\n activationConstraint: {\n distance: 10\n }\n });\n\n const sensors = useSensors(mouseSensor);\n\n return (\n <DndContext onDragEnd={onDragEnd} sensors={sensors}>\n <PictureInPictureView {...props} pos={pos} />\n </DndContext>\n );\n}\n\ninterface PictureInPictureViewProps extends ViewWrapperProps {\n pos: { right: number, bottom: number };\n}\n\nfunction PictureInPictureView(props: PictureInPictureViewProps): JSX.Element {\n const [ ready, setReady ] = React.useState(false);\n const curatorPlayer = useCuratorPlayer();\n\n const { attributes, listeners, setNodeRef, transform } = useDraggable({\n id: 'pip'\n });\n\n const style = {\n right: `${props.pos.right}px`,\n bottom: `${props.pos.bottom}px`,\n width: `${WIDTH}px`,\n height: `${HEIGHT}px`,\n transform: transform ?\n `translate3d(${transform.x}px, ${transform.y}px, 0)` :\n ''\n };\n\n const video = Flight.useBasicFetch<AssemblyLineVideo>(AssemblyLineRequests.getAssemblyLineVideo(props.videoId));\n const viewKey = Flight.useBasicFetch<PlayerViewKey>(\n PlayerRequests.createViewKey(props.videoId, MediaIdType.MasterObject)\n );\n\n function isLoading(): boolean {\n return !viewKey.hasCompleted || !video.hasCompleted;\n }\n\n function getRegionList(): string {\n return video.data.regions?.map(c => AssemblyLineHelper.mapVideoContentRegionToLabel(c)).join(' / ');\n }\n\n React.useEffect(() => {\n if (ready && isLoading())\n setReady(false);\n }, [isLoading()]);\n\n // Reset playerRef when component unmounts (player closes)\n React.useEffect(() => {\n return () => {\n curatorPlayer?.resetPlayer();\n };\n }, []);\n\n function onPlayerReady(player: Player): void {\n setReady(true);\n if (curatorPlayer) {\n curatorPlayer.setPlayerRef(player);\n }\n }\n\n return (\n <div\n className={`${styles.container} position-fixed box-shadow rounded-3 bg-white overflow-hidden`}\n style={style}\n >\n {(viewKey.hasError || video.hasError) ? (\n <div className='d-flex align-items-center justify-content-center h-100 text-center px-3'>\n <DivButton\n ref={setNodeRef}\n {...listeners}\n {...attributes}\n onClick={props.close}\n className={`${styles.drag} d-flex align-items-center justify-content-center rounded-circle box-shadow`}\n >\n <SvgContainer svg={HamburgerSvg} size={SvgContainerSize.Large} />\n </DivButton>\n {video.data.regions?.length ? (\n <p>\n This video cannot be viewed from your account.\n Please log into an account for one of the following regions: {getRegionList()}\n </p>\n ) : (\n <p>\n This video cannot be viewed from your account because it has not been added to any libraries yet.\n </p>\n )}\n <DivButton\n onClick={props.close}\n className={`${styles.close} d-flex align-items-center justify-content-center rounded-circle box-shadow`}\n >\n <SvgContainer svg={CloseSvg} size={SvgContainerSize.Large} />\n </DivButton>\n </div>\n ) : (\n <>\n <div className={ready ? 'd-none' : 'd-flex align-items-center justify-content-center h-100'}>\n <Spinner />\n </div>\n {!isLoading() && (\n <div className={!ready ? 'd-none' : ''}>\n <DivButton\n ref={setNodeRef}\n {...listeners}\n {...attributes}\n onClick={props.close}\n className={`${styles.drag} d-flex align-items-center justify-content-center rounded-circle box-shadow`}\n >\n <SvgContainer svg={HamburgerSvg} size={SvgContainerSize.Large} />\n </DivButton>\n <ClickViewPlayer\n viewKey={viewKey.data?.viewKey}\n playerApi={new URL(ClickView.Config.Urls.PlayerApi)}\n hotkeyElQuerySelector='body'\n onReady={onPlayerReady}\n eventLogging={false}\n autoplay\n />\n <DivButton\n onClick={props.close}\n className={`${styles.close} d-flex align-items-center justify-content-center rounded-circle box-shadow`}\n >\n <SvgContainer svg={CloseSvg} size={SvgContainerSize.Large} />\n </DivButton>\n </div>\n )}\n </>\n )}\n </div>\n );\n}\n\nexport { ViewWrapper as PictureInPictureView };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DWS9yr24.chunk.js","names":[],"sources":["../../../../../src/apps/assembly-line/views/picture-in-picture/picture-in-picture.module.scss","../../../../../src/apps/assembly-line/views/picture-in-picture/PictureInPictureView.tsx"],"sourcesContent":[":local {\n .container {\n z-index: 100000;\n }\n\n .close {\n position: absolute;\n top: $spacer;\n right: $spacer;\n width: 2.5rem;\n height: 2.5rem;\n background-color: rgba($gray-200, 0.5);\n z-index: 1;\n }\n\n .drag {\n position: absolute;\n top: $spacer;\n left: $spacer;\n width: 2.5rem;\n height: 2.5rem;\n background-color: rgba($gray-200, 0.5);\n z-index: 2;\n }\n}","import React from 'react';\nimport { Spinner } from 'react-bootstrap';\nimport { DndContext, DragEndEvent, PointerSensor, useDraggable, useSensor, useSensors } from '@dnd-kit/core';\n\nimport { StorageType } from 'libs/common/backbone/utils/LocalStorageHelper';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\nimport { Flight } from 'libs/common/react/index';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { MediaIdType } from 'libs/shared/enums/MediaIdType';\nimport { PlayerRequests } from 'libs/shared/flight-requests/PlayerRequests';\nimport { CloseSvg } from 'libs/shared/images/svg/actions/CloseSvg';\nimport { HamburgerSvg } from 'libs/shared/images/svg/objects/HamburgerSvg';\nimport { PlayerViewKey } from 'libs/shared/interfaces';\n\nimport { Player } from 'projects/player/players/player';\nimport { ClickViewPlayer } from 'projects/player/react/Player';\n\nimport { useCuratorPlayer } from 'shared/context/CuratorPlayerContext';\n\nimport { AssemblyLineRequests } from 'apps/assembly-line/flight-requests/AssemblyLineRequests';\nimport { AssemblyLineVideo } from 'apps/assembly-line/interfaces/AssemblyLineVideo';\nimport { AssemblyLineHelper } from 'apps/assembly-line/utils/AssemblyLineHelper';\n\nimport styles from './picture-in-picture.module.scss';\n\nconst HEIGHT = 270;\nconst WIDTH = 480;\nconst TOP_MARGIN = 15;\n\ninterface ViewWrapperProps {\n videoId: string;\n close: () => void;\n}\n\nfunction ViewWrapper(props: ViewWrapperProps): JSX.Element {\n const [ pos, setPos ] = useViewModel(\n 'pip:pos',\n { right: 15, bottom: 15 },\n { storage: StorageType.SessionStorage }\n );\n\n function onDragEnd(event: DragEndEvent): void {\n let right = pos.right - event.delta.x;\n let bottom = pos.bottom - event.delta.y;\n const top = window.innerHeight - pos.bottom - HEIGHT + event.delta.y;\n\n if (top < TOP_MARGIN)\n bottom = window.innerHeight - HEIGHT - TOP_MARGIN;\n \n if (right < -(WIDTH / 2))\n right = -(WIDTH / 2);\n\n if (bottom < -(HEIGHT / 2))\n bottom = -(HEIGHT / 2);\n\n if (right > (window.innerWidth - (WIDTH / 2)))\n right = window.innerWidth - (WIDTH / 2);\n\n if (bottom > (window.innerHeight - (HEIGHT / 2)))\n bottom = window.innerHeight - (HEIGHT / 2);\n\n setPos({ right, bottom });\n }\n\n const mouseSensor = useSensor(PointerSensor, {\n activationConstraint: {\n distance: 10\n }\n });\n\n const sensors = useSensors(mouseSensor);\n\n return (\n <DndContext onDragEnd={onDragEnd} sensors={sensors}>\n <PictureInPictureView {...props} pos={pos} />\n </DndContext>\n );\n}\n\ninterface PictureInPictureViewProps extends ViewWrapperProps {\n pos: { right: number, bottom: number };\n}\n\nfunction PictureInPictureView(props: PictureInPictureViewProps): JSX.Element {\n const [ ready, setReady ] = React.useState(false);\n const curatorPlayer = useCuratorPlayer();\n\n const { attributes, listeners, setNodeRef, transform } = useDraggable({\n id: 'pip'\n });\n\n const style = {\n right: `${props.pos.right}px`,\n bottom: `${props.pos.bottom}px`,\n width: `${WIDTH}px`,\n height: `${HEIGHT}px`,\n transform: transform ?\n `translate3d(${transform.x}px, ${transform.y}px, 0)` :\n ''\n };\n\n const video = Flight.useBasicFetch<AssemblyLineVideo>(AssemblyLineRequests.getAssemblyLineVideo(props.videoId));\n const viewKey = Flight.useBasicFetch<PlayerViewKey>(\n PlayerRequests.createViewKey(props.videoId, MediaIdType.MasterObject)\n );\n\n function isLoading(): boolean {\n return !viewKey.hasCompleted || !video.hasCompleted;\n }\n\n function getRegionList(): string {\n return video.data.regions?.map(c => AssemblyLineHelper.mapVideoContentRegionToLabel(c)).join(' / ');\n }\n\n React.useEffect(() => {\n if (ready && isLoading())\n setReady(false);\n }, [isLoading()]);\n\n // Reset playerRef when component unmounts (player closes)\n React.useEffect(() => {\n return () => {\n curatorPlayer?.resetPlayer();\n };\n }, []);\n\n function onPlayerReady(player: Player): void {\n setReady(true);\n if (curatorPlayer) {\n curatorPlayer.setPlayerRef(player);\n }\n }\n\n return (\n <div\n className={`${styles.container} position-fixed box-shadow rounded-3 bg-white overflow-hidden`}\n style={style}\n >\n {(viewKey.hasError || video.hasError) ? (\n <div className='d-flex align-items-center justify-content-center h-100 text-center px-3'>\n <DivButton\n ref={setNodeRef}\n {...listeners}\n {...attributes}\n onClick={props.close}\n className={`${styles.drag} d-flex align-items-center justify-content-center rounded-circle box-shadow`}\n >\n <SvgContainer svg={HamburgerSvg} size={SvgContainerSize.Large} />\n </DivButton>\n {video.data.regions?.length ? (\n <p>\n This video cannot be viewed from your account.\n Please log into an account for one of the following regions: {getRegionList()}\n </p>\n ) : (\n <p>\n This video cannot be viewed from your account because it has not been added to any libraries yet.\n </p>\n )}\n <DivButton\n onClick={props.close}\n className={`${styles.close} d-flex align-items-center justify-content-center rounded-circle box-shadow`}\n >\n <SvgContainer svg={CloseSvg} size={SvgContainerSize.Large} />\n </DivButton>\n </div>\n ) : (\n <>\n <div className={ready ? 'd-none' : 'd-flex align-items-center justify-content-center h-100'}>\n <Spinner />\n </div>\n {!isLoading() && (\n <div className={!ready ? 'd-none' : ''}>\n <DivButton\n ref={setNodeRef}\n {...listeners}\n {...attributes}\n onClick={props.close}\n className={`${styles.drag} d-flex align-items-center justify-content-center rounded-circle box-shadow`}\n >\n <SvgContainer svg={HamburgerSvg} size={SvgContainerSize.Large} />\n </DivButton>\n <ClickViewPlayer\n viewKey={viewKey.data?.viewKey}\n playerApi={new URL(ClickView.Config.Urls.PlayerApi)}\n hotkeyElQuerySelector='body'\n onReady={onPlayerReady}\n eventLogging={false}\n autoplay\n />\n <DivButton\n onClick={props.close}\n className={`${styles.close} d-flex align-items-center justify-content-center rounded-circle box-shadow`}\n >\n <SvgContainer svg={CloseSvg} size={SvgContainerSize.Large} />\n </DivButton>\n </div>\n )}\n </>\n )}\n </div>\n );\n}\n\nexport { ViewWrapper as PictureInPictureView };\n"],"mappings":"grBC2BM,EAAS,IACT,EAAQ,IACR,EAAa,GAOnB,SAAS,EAAY,EAAsC,CACzD,GAAM,CAAE,EAAK,GAAW,EACtB,UACA,CAAE,MAAO,GAAI,OAAQ,EAAG,EACxB,CAAE,QAAS,EAAY,cAAe,CACxC,EAEA,SAAS,EAAU,EAA2B,CAC5C,IAAI,EAAQ,EAAI,MAAQ,EAAM,MAAM,EAChC,EAAS,EAAI,OAAS,EAAM,MAAM,EAC1B,OAAO,YAAc,EAAI,OAAS,EAAS,EAAM,MAAM,EAEzD,IACR,EAAS,OAAO,YAAc,EAAS,GAErC,EAAQ,OACV,EAAQ,MAEN,EAAS,OACX,EAAS,MAEP,EAAS,OAAO,WAAc,EAAQ,IACxC,EAAQ,OAAO,WAAc,EAAQ,GAEnC,EAAU,OAAO,YAAe,EAAS,IAC3C,EAAS,OAAO,YAAe,EAAS,GAE1C,EAAO,CAAE,QAAO,QAAO,CAAC,CAC1B,CAUA,OACE,EAAA,EAAA,IAAA,CAAC,EAAD,CAAuB,YAAoB,QAH7B,EANI,EAAU,EAAe,CAC3C,qBAAsB,CACpB,SAAU,EACZ,CACF,CAE2B,CAGkB,YACzC,EAAA,EAAA,IAAA,CAAC,EAAD,CAAsB,GAAI,EAAY,KAAM,CAAA,CAClC,CAAA,CAEhB,CAMA,SAAS,EAAqB,EAA+C,CAC3E,GAAM,CAAE,EAAO,GAAA,EAAmB,SAAS,EAAK,EAC1C,EAAgB,EAAiB,EAEjC,CAAE,aAAY,YAAW,aAAY,aAAc,EAAa,CACpE,GAAI,KACN,CAAC,EAEK,EAAQ,CACZ,MAAO,GAAG,EAAM,IAAI,MAAM,IAC1B,OAAQ,GAAG,EAAM,IAAI,OAAO,IAC5B,MAAO,GAAG,EAAM,IAChB,OAAQ,GAAG,EAAO,IAClB,UAAW,EACT,eAAe,EAAU,EAAE,MAAM,EAAU,EAAE,QAC7C,EACJ,EAEM,EAAQ,EAAwC,EAAqB,qBAAqB,EAAM,OAAO,CAAC,EACxG,EAAU,EACd,EAAe,cAAc,EAAM,QAAS,EAAY,YAAY,CACtE,EAEA,SAAS,GAAqB,CAC5B,MAAO,CAAC,EAAQ,cAAgB,CAAC,EAAM,YACzC,CAEA,SAAS,GAAwB,CAC/B,OAAO,EAAM,KAAK,SAAS,IAAI,GAAK,EAAmB,6BAA6B,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CACpG,CAEA,EAAM,cAAgB,CAChB,GAAS,EAAU,GACrB,EAAS,EAAK,CAClB,EAAG,CAAC,EAAU,CAAC,CAAC,EAGhB,EAAM,kBACS,CACX,GAAe,YAAY,CAC7B,EACC,CAAC,CAAC,EAEL,SAAS,EAAc,EAAsB,CAC3C,EAAS,EAAI,EACT,GACF,EAAc,aAAa,CAAM,CAErC,CAEA,OACE,EAAA,EAAA,IAAA,CAAC,MAAD,CACE,UAAW,GAAG,EAAO,UAAU,+DACxB,iBAEL,EAAQ,UAAY,EAAM,UAC1B,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,mFAAf,EACE,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,IAAK,EACL,GAAI,EACJ,GAAI,EACJ,QAAS,EAAM,MACf,UAAW,GAAG,EAAO,KAAK,uFAE1B,EAAA,EAAA,IAAA,CAAC,EAAD,CAAc,IAAK,EAAc,KAAM,EAAiB,KAAQ,CAAA,CACvD,CAAA,EACV,EAAM,KAAK,SAAS,QACnB,EAAA,EAAA,KAAA,CAAC,IAAD,CAAA,SAAA,CAAG,+GAE6D,EAAc,CAC3E,CAAA,CAAA,GAEH,EAAA,EAAA,IAAA,CAAC,IAAD,CAAA,SAAG,mGAEA,CAAA,GAEL,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,QAAS,EAAM,MACf,UAAW,GAAG,EAAO,MAAM,uFAE3B,EAAA,EAAA,IAAA,CAAC,EAAD,CAAc,IAAK,EAAU,KAAM,EAAiB,KAAQ,CAAA,CACnD,CAAA,CACR,KAEL,EAAA,EAAA,KAAA,CAAA,EAAA,SAAA,CAAA,SAAA,EACE,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAW,EAAQ,SAAW,mEACjC,EAAA,EAAA,IAAA,CAAC,EAAD,CAAU,CAAA,CACP,CAAA,EACJ,CAAC,EAAU,IACV,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAY,EAAmB,GAAX,kBAAzB,EACE,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,IAAK,EACL,GAAI,EACJ,GAAI,EACJ,QAAS,EAAM,MACf,UAAW,GAAG,EAAO,KAAK,uFAE1B,EAAA,EAAA,IAAA,CAAC,EAAD,CAAc,IAAK,EAAc,KAAM,EAAiB,KAAQ,CAAA,CACvD,CAAA,GACX,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,QAAS,EAAQ,MAAM,QACvB,UAAW,IAAI,IAAI,UAAU,OAAO,KAAK,SAAS,EAClD,sBAAsB,OACtB,QAAS,EACT,aAAc,GACd,SAAA,EACD,CAAA,GACD,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,QAAS,EAAM,MACf,UAAW,GAAG,EAAO,MAAM,uFAE3B,EAAA,EAAA,IAAA,CAAC,EAAD,CAAc,IAAK,EAAU,KAAM,EAAiB,KAAQ,CAAA,CACnD,CAAA,CACR,GAEP,CAAA,CAAA,CAED,CAAA,CAET"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as e,i as t,ln as n,t as r,w as i}from"./rp704-Pm.chunk.js";import{a,l as o,n as s,r as c,t as l}from"./Crs6pJ2h.chunk.js";import{t as u}from"./Di_u2uix.chunk.js";import{t as d}from"./BvMTtGLi.chunk.js";import"./CfCYHRuo.chunk.js";import{t as f}from"./UCDGupVs.chunk.js";import{t as p}from"./CLCeObem2.chunk.js";import{t as m}from"./C7gaMI1t2.chunk.js";import"./BhKv6dKl2.chunk.js";import{t as h}from"./DbAhNsCO2.chunk.js";import{n as g}from"./D-JsEiDq2.chunk.js";import{t as _}from"./C5o897T82.chunk.js";import{t as v}from"./CbiGs3Tn.chunk.js";import{n as y}from"./CsF4wDV1.chunk.js";import{s as b,u as x}from"./Dgk5cBBe.chunk.js";import"./Oh4_zGIH.chunk.js";import{t as S}from"./BDwjs8qz.chunk.js";import{R as C,z as ee}from"./C5ckf65S.chunk.js";import{t as te}from"./Lh2c_aQx2.chunk.js";import{t as ne}from"./Bwpvc7Th2.chunk.js";import{r as w}from"./BRcHS92O.chunk.js";import{c as T,i as E,s as D}from"./DA0I3jYA.chunk.js";import{t as re}from"./dKyhMawf.chunk.js";import{t as ie}from"./BoEge6tK.chunk.js";import{t as O}from"./DwibXbjb.chunk.js";import{n as k}from"./C4Ey4nzb2.chunk.js";import{t as ae}from"./GWw4zEXk2.chunk.js";import{n as A}from"./BJNKTs8z2.chunk.js";import{t as oe}from"./C3apTl7R.chunk.js";import{t as se}from"./D8DiB9QC.chunk.js";import{t as ce}from"./2NdfwDHB.chunk.js";import{t as j}from"./JmL1DHFu.chunk.js";import{t as M}from"./CNfsk-2G.chunk.js";import{t as N}from"./L_hKAuHe2.chunk.js";import{t as P}from"./C8hLOeBc2.chunk.js";import{a as F,i as I}from"./BJdNIGDD2.chunk.js";import{t as L}from"./CEuop4Wi2.chunk.js";import{t as R}from"./Dsh2iIyb2.chunk.js";import{t as z}from"./6S_Zxy792.chunk.js";import{t as B}from"./BUtlulMl.chunk.js";import{t as V}from"./CmKCnpM-.chunk.js";import{t as H}from"./FBRb9Ucn2.chunk.js";import{n as U,r as W,t as G}from"./BHZqVahv2.chunk.js";var K=n(e(),1),q=n(p()),J=4096,le=q.object().shape({name:q.string().trim().max(255,`Name is too long`).min(1,`Name is too short`).required(`Name is required`).default(``),logo:m,banner:m,cover:m,description:q.string().trim().required(`Description is required`).default(``).max(J,`Descriptions cannot exceed ${J} characters`),contentRegions:q.array().default([]),slug:q.string().trim().required(`Slug is required`).matches(/^[a-zA-Z0-9-]+$/,`Slug can only contain letters, numbers, and hyphens`),parent:q.mixed().required(`Parent is required`),backgroundColour:q.string(),websiteLink:q.string().url(`Invalid website link`)}),Y={"channel-video-banner":[1920,1080]},X={getValidVideoExtensions:()=>A.VIDEO.split(`,`),getUploadVideoTypeResolution:e=>Y[e],validateVideoResolutionForType:(e,t)=>{let[n,r]=Y[e];return t.width>=n&&t.height>=r},getOfflinePlaybackObject:e=>({videoId:`preview`,viewerId:``,viewerCustomerId:``,region:null,files:{progressive:[{url:e,mimeType:`video/mp4`,profile:`hd`,quality:1080,label:`Preview`}],fileToken:``},chapters:{list:[]},subtitles:{list:[]},resources:{list:[]},mediaType:`MasterVideo`,localCacheAddresses:[],mediaId:`preview`,settings:{showSubtitles:!1,playbackProfile:`hd`,playbackProfileLocalCache:`hd`,playbackQuality:`1080`,playbackQualityLocalCache:`1080`,playbackQualityFallback:`1080`,playbackSubtitleSizeDefault:`medium`},title:`Preview`,ratingCode:``,seriesName:``,seasonNumber:0,episodeNumber:0}),getVideoResolution:async e=>new Promise((t,n)=>{e.type.startsWith(`video/`)||n(Error(`The file is not a video`));let r=document.createElement(`video`),i=URL.createObjectURL(e);r.addEventListener(`loadedmetadata`,()=>{let e=r.videoWidth,n=r.videoHeight;URL.revokeObjectURL(i),t({width:e,height:n})}),r.addEventListener(`error`,()=>{URL.revokeObjectURL(i),n(Error(`Failed to load video metadata`))}),r.src=i})};function ue(e){let t=ne(),n=x(),[r,i]=K.useState(0),[a,o]=K.useState(null),[s,c]=K.useState(`idle`),[l,u]=K.useState(null),d=te(y.VideoUpload),p=b(f.currentUser());async function m(t,n){if(!a||!t||t!==a||!n||!n.url)return;let r=n.id,o=n.url;u(r),i(100),e.setFieldValue(o),await _(t,r,o)}function h(e){if(!a)return;let t=Array.from(e).find(e=>e===a);if(!t)return;let n=d.getUpload(t);n&&u(n.get(`id`))}async function _(r,i,a){if(!p.data){t.error(`Cannot complete upload: User not loaded`);return}let o=d.getUpload(r);if(!o){t.error(`Error: Video upload not found`);return}o.set(`sending`,!0);try{let t=await n(j.completeUpload({id:o.get(`id`),fileId:i,userId:p.data.id,customerId:p.data.customerId,libraryId:e.hostedLibraryId,fileUrl:a,pendingProcessOrigin:W.Upload,origin:G.Curator,video:{name:r.name,description:``,productionYear:new Date().getFullYear(),productionCompanies:[],producers:[],distributors:[],directors:[],subtitles:[]},subtitleOptions:{subtitleExtractOptions:U.EmbeddedOnly},autoCaption:!1}));await e.onUploadComplete?.(t)}catch{t.error(`There was an error uploading the video. Please try again.`)}finally{c(`idle`)}}function v(n){let r=`.`+n.name.split(`.`).pop()?.toLowerCase();if(!e.validVideoExtensions.includes(r)){e.setFieldError(`The file must be a video file. Supported extensions are ${e.validVideoExtensions.join(`, `)}`);return}X.getVideoResolution(n).then(t=>{let[r,a]=X.getUploadVideoTypeResolution(e.type);if(!X.validateVideoResolutionForType(e.type,t)){e.setFieldError(`The video must be at least ${r} x ${a}px. Uploaded video is ${t.width} x ${t.height}px.`);return}u(null),c(`uploading`),i(0),o(n),e.setFieldTouched(!0),d.addFiles([n])}).catch(()=>{t.error(`Failed to get video resolution. Please try again later.`)})}return g(I.VIDEO_UPLOAD,`progress`,(e,t)=>{(!l||e===l)&&i(Math.floor(t))}),g(I.VIDEO_UPLOAD,F.UPLOAD_SUCCESS,m,[a,_]),g(I.VIDEO_UPLOAD,F.FILES_ADDED,h,[a,d]),{status:s,uploadProgress:r,onSelectFile:v}}var Z=t();function de(){return(0,Z.jsx)(`div`,{className:`mt-3`,children:(0,Z.jsxs)(`div`,{className:`d-flex flex-column justify-content-center align-items-center gap-3 mb-1`,children:[(0,Z.jsx)(`span`,{children:`The video is being processed currently. Please check back later.`}),(0,Z.jsx)(`button`,{className:`btn btn-outline-dark`,onClick:()=>i.Reload(),children:`Reload`})]})})}var fe=X.getValidVideoExtensions();function pe(e){let{getRootProps:t,getInputProps:n,isDragActive:r}=ie({onDropAccepted:t=>e.onSelectFile(t[0]),noClick:!0,multiple:!1,noKeyboard:!0,accept:{"video/*":fe}});return(0,Z.jsxs)(`div`,{...t(),className:v(`border rounded position-relative p-5 mt-2 text-center bg-light overflow-hidden`,!!e.hasError&&`is-invalid`),children:[(0,Z.jsx)(`input`,{...n()}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`div`,{className:`mb-2 px-3`,children:`Drag and drop a video to upload`}),(0,Z.jsx)(O,{svg:L,className:`btn btn-outline-dark`,mimeType:A.VIDEO,onFileSelect:t=>e.onSelectFile(Array.from(t)[0]),children:`Upload Video`})]}),r&&(0,Z.jsxs)(`div`,{className:`position-absolute w-100 h-100 top-0 start-0 d-flex align-items-center justify-content-center bg-light gap-2`,children:[(0,Z.jsx)(s,{svg:L,size:c.Large}),(0,Z.jsx)(`span`,{className:`h4 mb-0`,children:`Drop file here to begin uploading`})]})]})}function me(e){let[t,n]=e.resolution;return(0,Z.jsxs)(`div`,{className:`d-flex justify-content-between align-items-center`,children:[(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`label`,{children:e.label}),e.showRequiredStar&&(0,Z.jsx)(`span`,{className:`text-danger`,children:`*`}),(0,Z.jsx)(`em`,{className:`ms-1 text-secondary`,children:e.note??`(Minimum resolution is ${t} x ${n}px)`})]}),(0,Z.jsxs)(`div`,{className:`d-flex align-items-center`,children:[e.showReplaceFileButton&&!!e.replaceFileButtonHandler&&(0,Z.jsx)(a,{title:`Replace video`,placement:`top`,spanHack:!0,children:(0,Z.jsx)(O,{className:`btn btn-link`,mimeType:A.VIDEO,svg:L,svgSize:c.Standard,onFileSelect:t=>e.replaceFileButtonHandler?.(Array.from(t)[0])})}),e.showReplaceFileButton&&!!e.deleteFileButtonHandler&&(0,Z.jsx)(a,{title:`Remove video`,placement:`top`,spanHack:!0,children:(0,Z.jsx)(o,{onClick:e.deleteFileButtonHandler,children:(0,Z.jsx)(s,{svg:ce,size:c.Standard})})})]})]})}function Q(e){return(0,Z.jsxs)(`div`,{className:v(`mt-2`,e.hasError&&`is-invalid`),children:[(0,Z.jsx)(V,{viewKey:e.viewKey,offlinePlaybackObject:e.offlinePlaybackObject,playerApi:e.playerApiUrl,autoplay:!1,controls:!0}),e.children]})}function he(e){return(0,Z.jsxs)(`div`,{className:`mt-3`,children:[(0,Z.jsxs)(`div`,{className:`d-flex justify-content-between mb-1`,children:[(0,Z.jsx)(`span`,{children:`Uploading...`}),(0,Z.jsxs)(`span`,{children:[Math.round(e.progress),`%`]})]}),(0,Z.jsx)(_,{now:e.progress,variant:`info`,animated:e.progress<100})]})}var ge=new URL(ClickView.Config.Urls.PlayerApi),_e=X.getValidVideoExtensions();function ve(e){let t=e.uploadVideoType??`channel-video-banner`,n=T(),r=n.values[e.fieldName],[i,a]=K.useState(!1),{status:o,uploadProgress:l,onSelectFile:u}=ue({type:t,hostedLibraryId:e.hostedLibraryId,validVideoExtensions:_e,setFieldValue:t=>n.setFieldValue(e.fieldName,{fileUrl:t}),setFieldError:t=>n.setFieldError(e.fieldName,t),setFieldTouched:t=>n.setFieldTouched(e.fieldName,t),onUploadComplete:e.onUploadComplete}),d=b(r?.id&&C.createViewKey(r.id,ee.MasterObject)),f=D(n.errors,e.fieldName),p=X.getUploadVideoTypeResolution(t),m=o===`uploading`,g=r?.fileUrl,_=!!d.data?.viewKey||!f&&!!g,y=r?.id&&r?.status===S.Processing;function x(){n.setFieldValue(e.fieldName,void 0)}return(0,Z.jsx)(`div`,{className:`form-group`,children:(0,Z.jsxs)(`div`,{className:v(`form-control h-auto py-2`,!!f&&`border border-danger`),children:[(0,Z.jsx)(me,{label:e.label,showRequiredStar:e.showRequiredStar,showReplaceFileButton:_&&!m&&!y,replaceFileButtonHandler:u,deleteFileButtonHandler:x,resolution:p}),m?(0,Z.jsx)(he,{progress:l}):y?(0,Z.jsx)(de,{}):_?(0,Z.jsxs)(Z.Fragment,{children:[!i&&(0,Z.jsx)(Q,{playerApiUrl:ge,viewKey:d.data?.viewKey,offlinePlaybackObject:!d.data?.viewKey&&g?X.getOfflinePlaybackObject(g):void 0,hasError:!!f}),(0,Z.jsx)(`div`,{className:`d-flex justify-content-center`,children:(0,Z.jsx)(s,{svg:i?oe:se,size:c.Large,className:`svg-container cursor-pointer`,tooltipSpanHack:!0,onClick:()=>a(!i),title:i?`Show video`:`Hide video`,tooltipPlacement:`left`})})]}):(0,Z.jsx)(pe,{onSelectFile:u,hasError:!!f}),(0,Z.jsx)(h.Control.Feedback,{type:`invalid`,children:f})]})})}var $={input:`_input_1merh_1`,suggestionsContainer:`_suggestionsContainer_1merh_4`},ye={width:1920,height:1080};function be(e){let t=T();function n(e){t.setFieldValue(`parent`,e),t.setFieldTouched(`parent`,!0,!1)}function i(e){n(e)}function a(n){t.setFieldValue(`name`,n.target.value),e.isNew&&(t.setFieldValue(`slug`,r.slugify(n.target.value)??``),t.setFieldTouched(`slug`,!0))}function o(){n(null)}let s=t.touched.parent&&t.errors.parent;function c(){return typeof t.errors.parent==`string`?t.errors.parent:``}return(0,Z.jsxs)(E,{children:[(0,Z.jsx)(k,{label:`Name`,name:`name`,id:`name`,value:t.values.name,placeholder:`Enter a name for this content partner`,onChange:a,showRequiredStar:!0}),(0,Z.jsx)(k,{as:`textarea`,rows:2,label:`Description`,name:`description`,id:`description`,value:t.values.description,placeholder:`Enter a description for this content partner`,maxLength:J,showCharacterCounter:!0,showRequiredStar:!0}),(0,Z.jsx)(k,{label:`Website Link`,name:`websiteLink`,id:`websiteLink`,value:t.values.websiteLink,placeholder:`Enter a website link for this content partner`}),(0,Z.jsx)(k,{label:`Parent`,name:`parentId`,id:`parentId`,showRequiredStar:!0,children:()=>(0,Z.jsxs)(`div`,{className:`form-group`,children:[(0,Z.jsx)(`div`,{className:v(s&&`is-invalid`),children:(0,Z.jsx)(ae,{renderAsForm:!1,theme:()=>({suggestionsContainerOpen:v(`pb-0 pt-1 overflow-hidden bg-white border rounded position-absolute w-100`,$.suggestions),suggestionsContainer:`${$.suggestionsContainer}`,input:v(s&&`border-danger`)}),activationLength:2,placeholder:`Search for a parent company or person...`,clearQueryOnSelect:!0,searchIconPlacement:!1,debounceTime:300,allowableSuggestionFetchRequestedReasons:[`input-changed`,`input-focused`],getRemoteUrl:()=>e.getRemoteUrl(),getRemotePostBody:e=>({query:e,indices:[{index:`company`},{index:`person`}],searchType:`content`}),onSuggestionSelected:i,showClearInputIcon:!0,onClickClearInput:o,formatRemoteSuggestions:e=>e.results?.map(e=>({...e,name:e.name?.[0]})),initialQuery:t.values.parent?.name||``,getErrorStateComponent:e=>(0,Z.jsx)(N,{imageUrl:P.TYPEAHEAD_ERROR,onClickTryAgain:e}),getEmptyStateComponent:e=>(0,Z.jsxs)(`div`,{children:[`Couldn't find any matches for `,e]})})}),(0,Z.jsx)(h.Control.Feedback,{type:`invalid`,children:c()})]})}),(0,Z.jsx)(k,{label:`Slug`,name:`slug`,infoText:`Auto generated based on the parent company or person name`,id:`slug`,value:t.values.slug,readOnly:!e.isNew,disabled:!e.isNew,showRequiredStar:!0}),e.contentRegions&&!e.isNew&&(0,Z.jsx)(k,{label:`Content Regions`,name:`contentRegions`,id:`contentRegions`,children:()=>(0,Z.jsx)(`div`,{className:`w-50`,children:(0,Z.jsx)(R,{type:`checkbox`,id:t.values.id,options:e.contentRegions,selected:t.values.contentRegions||[],onUpdate:e=>t.setFieldValue(`contentRegions`,e),readOnly:!0})})}),(0,Z.jsx)(M,{imageType:w.Covers,fieldName:`cover`,uploadAppLink:{application:d.CONTENT_PARTNERS,action:u.ContentPartners.UPLOAD_IMAGE}}),(0,Z.jsx)(M,{imageType:w.Logos,fieldName:`logo`,label:`Logo`,overrideDimensions:{width:512,height:512},uploadAppLink:{application:d.CONTENT_PARTNERS,action:u.ContentPartners.UPLOAD_IMAGE}}),!e.isNew&&(0,Z.jsx)(z,{label:`Background colour`,fieldName:`backgroundColour`}),(0,Z.jsx)(M,{imageType:w.Banners,fieldName:`banner`,uploadAppLink:{application:d.CONTENT_PARTNERS,action:u.ContentPartners.UPLOAD_IMAGE},overrideDimensions:ye}),!!e.onVideoUploadComplete&&(0,Z.jsx)(ve,{label:`Video Banner`,fieldName:`videoBanner`,hostedLibraryId:ClickView.Config.Resources.ClickViewRootLibrary,onUploadComplete:e.onVideoUploadComplete}),(0,Z.jsxs)(`div`,{className:`d-flex gap-2`,children:[(0,Z.jsx)(B,{isNew:e.isNew,variant:`dark`}),!e.isNew&&(0,Z.jsx)(l,{appLink:e.deleteAppLink,className:`btn btn-danger`,children:`Delete Channel`})]})]})}function xe(e){let t=e.contentPartner?.links?H.getPartnerLinkByType(e.contentPartner.links,`website`):null,n={id:e.contentPartner?.id,name:e.contentPartner?.name||``,logo:e.contentPartner?.logo||null,cover:e.contentPartner?.cover||null,banner:e.contentPartner?.banner||null,description:e.contentPartner?.description||``,slug:e.contentPartner?._slug.value||``,blurb:e.contentPartner?.blurb||``,contentSource:e.contentPartner?.contentSource||1,partnerType:e.contentPartner?.partnerType||2,backgroundColour:e.contentPartner?.metadata?.backgroundColour||null,contentRegions:e.contentPartner?.contentRegions?.data||[],parent:e.contentPartner?.person||e.contentPartner?.company,videoBanner:e.contentPartner?.videoBanner?{id:e.contentPartner?.videoBanner.id,status:e.contentPartner?.videoBanner.status}:null,websiteLink:t||``};function r(){return`/api/search/v4/search/raw?userId=${e.currentUser?.id}&customerid=${e.currentUser?.customerId}`}return(0,Z.jsx)(re,{initialValues:n,validationSchema:le,onSubmit:e.onSave,children:(0,Z.jsx)(be,{isNew:!(e.contentPartner&&e.contentPartner.id),contentRegions:e.contentRegions,getRemoteUrl:r,onVideoUploadComplete:e.onVideoUploadComplete,deleteAppLink:{application:d.CONTENT_PARTNERS,action:u.ContentPartners.DELETE_CONTENT_PARTNER,args:[e.contentPartner?.id]}})})}export{xe as t};
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{a as e,i as t,ln as n,t as r,w as i}from"./rp704-Pm.chunk.js";import{a,l as o,n as s,r as c,t as l}from"./Crs6pJ2h.chunk.js";import{t as u}from"./Di_u2uix.chunk.js";import{t as d}from"./BvMTtGLi.chunk.js";import"./CfCYHRuo.chunk.js";import{t as f}from"./UCDGupVs.chunk.js";import{t as p}from"./CLCeObem2.chunk.js";import{t as m}from"./C7gaMI1t2.chunk.js";import"./BhKv6dKl2.chunk.js";import{t as h}from"./DbAhNsCO2.chunk.js";import{n as g}from"./D-JsEiDq2.chunk.js";import{t as _}from"./C5o897T82.chunk.js";import{t as v}from"./CbiGs3Tn.chunk.js";import{n as y}from"./CsF4wDV1.chunk.js";import{s as b,u as x}from"./Dgk5cBBe.chunk.js";import"./Oh4_zGIH.chunk.js";import{t as S}from"./BDwjs8qz.chunk.js";import{R as C,z as ee}from"./Bznq7eHJ.chunk.js";import{t as te}from"./Lh2c_aQx2.chunk.js";import{t as ne}from"./Bwpvc7Th2.chunk.js";import{r as w}from"./BRcHS92O.chunk.js";import{c as T,i as E,s as D}from"./DA0I3jYA.chunk.js";import{t as re}from"./dKyhMawf.chunk.js";import{t as ie}from"./BoEge6tK.chunk.js";import{t as O}from"./DwibXbjb.chunk.js";import{n as k}from"./C4Ey4nzb2.chunk.js";import{t as ae}from"./GWw4zEXk2.chunk.js";import{n as A}from"./BJNKTs8z2.chunk.js";import{t as oe}from"./C3apTl7R.chunk.js";import{t as se}from"./D8DiB9QC.chunk.js";import{t as ce}from"./2NdfwDHB.chunk.js";import{t as j}from"./JmL1DHFu.chunk.js";import{t as M}from"./CNfsk-2G.chunk.js";import{t as N}from"./L_hKAuHe2.chunk.js";import{t as P}from"./C8hLOeBc2.chunk.js";import{a as F,i as I}from"./BJdNIGDD2.chunk.js";import{t as L}from"./CEuop4Wi2.chunk.js";import{t as R}from"./Dsh2iIyb2.chunk.js";import{t as z}from"./6S_Zxy792.chunk.js";import{t as B}from"./BUtlulMl.chunk.js";import{t as V}from"./MtOi7z-o.chunk.js";import{t as H}from"./FBRb9Ucn2.chunk.js";import{n as U,r as W,t as G}from"./BHZqVahv2.chunk.js";var K=n(e(),1),q=n(p()),J=4096,le=q.object().shape({name:q.string().trim().max(255,`Name is too long`).min(1,`Name is too short`).required(`Name is required`).default(``),logo:m,banner:m,cover:m,description:q.string().trim().required(`Description is required`).default(``).max(J,`Descriptions cannot exceed ${J} characters`),contentRegions:q.array().default([]),slug:q.string().trim().required(`Slug is required`).matches(/^[a-zA-Z0-9-]+$/,`Slug can only contain letters, numbers, and hyphens`),parent:q.mixed().required(`Parent is required`),backgroundColour:q.string(),websiteLink:q.string().url(`Invalid website link`)}),Y={"channel-video-banner":[1920,1080]},X={getValidVideoExtensions:()=>A.VIDEO.split(`,`),getUploadVideoTypeResolution:e=>Y[e],validateVideoResolutionForType:(e,t)=>{let[n,r]=Y[e];return t.width>=n&&t.height>=r},getOfflinePlaybackObject:e=>({videoId:`preview`,viewerId:``,viewerCustomerId:``,region:null,files:{progressive:[{url:e,mimeType:`video/mp4`,profile:`hd`,quality:1080,label:`Preview`}],fileToken:``},chapters:{list:[]},subtitles:{list:[]},resources:{list:[]},mediaType:`MasterVideo`,localCacheAddresses:[],mediaId:`preview`,settings:{showSubtitles:!1,playbackProfile:`hd`,playbackProfileLocalCache:`hd`,playbackQuality:`1080`,playbackQualityLocalCache:`1080`,playbackQualityFallback:`1080`,playbackSubtitleSizeDefault:`medium`},title:`Preview`,ratingCode:``,seriesName:``,seasonNumber:0,episodeNumber:0}),getVideoResolution:async e=>new Promise((t,n)=>{e.type.startsWith(`video/`)||n(Error(`The file is not a video`));let r=document.createElement(`video`),i=URL.createObjectURL(e);r.addEventListener(`loadedmetadata`,()=>{let e=r.videoWidth,n=r.videoHeight;URL.revokeObjectURL(i),t({width:e,height:n})}),r.addEventListener(`error`,()=>{URL.revokeObjectURL(i),n(Error(`Failed to load video metadata`))}),r.src=i})};function ue(e){let t=ne(),n=x(),[r,i]=K.useState(0),[a,o]=K.useState(null),[s,c]=K.useState(`idle`),[l,u]=K.useState(null),d=te(y.VideoUpload),p=b(f.currentUser());async function m(t,n){if(!a||!t||t!==a||!n||!n.url)return;let r=n.id,o=n.url;u(r),i(100),e.setFieldValue(o),await _(t,r,o)}function h(e){if(!a)return;let t=Array.from(e).find(e=>e===a);if(!t)return;let n=d.getUpload(t);n&&u(n.get(`id`))}async function _(r,i,a){if(!p.data){t.error(`Cannot complete upload: User not loaded`);return}let o=d.getUpload(r);if(!o){t.error(`Error: Video upload not found`);return}o.set(`sending`,!0);try{let t=await n(j.completeUpload({id:o.get(`id`),fileId:i,userId:p.data.id,customerId:p.data.customerId,libraryId:e.hostedLibraryId,fileUrl:a,pendingProcessOrigin:W.Upload,origin:G.Curator,video:{name:r.name,description:``,productionYear:new Date().getFullYear(),productionCompanies:[],producers:[],distributors:[],directors:[],subtitles:[]},subtitleOptions:{subtitleExtractOptions:U.EmbeddedOnly},autoCaption:!1}));await e.onUploadComplete?.(t)}catch{t.error(`There was an error uploading the video. Please try again.`)}finally{c(`idle`)}}function v(n){let r=`.`+n.name.split(`.`).pop()?.toLowerCase();if(!e.validVideoExtensions.includes(r)){e.setFieldError(`The file must be a video file. Supported extensions are ${e.validVideoExtensions.join(`, `)}`);return}X.getVideoResolution(n).then(t=>{let[r,a]=X.getUploadVideoTypeResolution(e.type);if(!X.validateVideoResolutionForType(e.type,t)){e.setFieldError(`The video must be at least ${r} x ${a}px. Uploaded video is ${t.width} x ${t.height}px.`);return}u(null),c(`uploading`),i(0),o(n),e.setFieldTouched(!0),d.addFiles([n])}).catch(()=>{t.error(`Failed to get video resolution. Please try again later.`)})}return g(I.VIDEO_UPLOAD,`progress`,(e,t)=>{(!l||e===l)&&i(Math.floor(t))}),g(I.VIDEO_UPLOAD,F.UPLOAD_SUCCESS,m,[a,_]),g(I.VIDEO_UPLOAD,F.FILES_ADDED,h,[a,d]),{status:s,uploadProgress:r,onSelectFile:v}}var Z=t();function de(){return(0,Z.jsx)(`div`,{className:`mt-3`,children:(0,Z.jsxs)(`div`,{className:`d-flex flex-column justify-content-center align-items-center gap-3 mb-1`,children:[(0,Z.jsx)(`span`,{children:`The video is being processed currently. Please check back later.`}),(0,Z.jsx)(`button`,{className:`btn btn-outline-dark`,onClick:()=>i.Reload(),children:`Reload`})]})})}var fe=X.getValidVideoExtensions();function pe(e){let{getRootProps:t,getInputProps:n,isDragActive:r}=ie({onDropAccepted:t=>e.onSelectFile(t[0]),noClick:!0,multiple:!1,noKeyboard:!0,accept:{"video/*":fe}});return(0,Z.jsxs)(`div`,{...t(),className:v(`border rounded position-relative p-5 mt-2 text-center bg-light overflow-hidden`,!!e.hasError&&`is-invalid`),children:[(0,Z.jsx)(`input`,{...n()}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`div`,{className:`mb-2 px-3`,children:`Drag and drop a video to upload`}),(0,Z.jsx)(O,{svg:L,className:`btn btn-outline-dark`,mimeType:A.VIDEO,onFileSelect:t=>e.onSelectFile(Array.from(t)[0]),children:`Upload Video`})]}),r&&(0,Z.jsxs)(`div`,{className:`position-absolute w-100 h-100 top-0 start-0 d-flex align-items-center justify-content-center bg-light gap-2`,children:[(0,Z.jsx)(s,{svg:L,size:c.Large}),(0,Z.jsx)(`span`,{className:`h4 mb-0`,children:`Drop file here to begin uploading`})]})]})}function me(e){let[t,n]=e.resolution;return(0,Z.jsxs)(`div`,{className:`d-flex justify-content-between align-items-center`,children:[(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`label`,{children:e.label}),e.showRequiredStar&&(0,Z.jsx)(`span`,{className:`text-danger`,children:`*`}),(0,Z.jsx)(`em`,{className:`ms-1 text-secondary`,children:e.note??`(Minimum resolution is ${t} x ${n}px)`})]}),(0,Z.jsxs)(`div`,{className:`d-flex align-items-center`,children:[e.showReplaceFileButton&&!!e.replaceFileButtonHandler&&(0,Z.jsx)(a,{title:`Replace video`,placement:`top`,spanHack:!0,children:(0,Z.jsx)(O,{className:`btn btn-link`,mimeType:A.VIDEO,svg:L,svgSize:c.Standard,onFileSelect:t=>e.replaceFileButtonHandler?.(Array.from(t)[0])})}),e.showReplaceFileButton&&!!e.deleteFileButtonHandler&&(0,Z.jsx)(a,{title:`Remove video`,placement:`top`,spanHack:!0,children:(0,Z.jsx)(o,{onClick:e.deleteFileButtonHandler,children:(0,Z.jsx)(s,{svg:ce,size:c.Standard})})})]})]})}function Q(e){return(0,Z.jsxs)(`div`,{className:v(`mt-2`,e.hasError&&`is-invalid`),children:[(0,Z.jsx)(V,{viewKey:e.viewKey,offlinePlaybackObject:e.offlinePlaybackObject,playerApi:e.playerApiUrl,autoplay:!1,controls:!0}),e.children]})}function he(e){return(0,Z.jsxs)(`div`,{className:`mt-3`,children:[(0,Z.jsxs)(`div`,{className:`d-flex justify-content-between mb-1`,children:[(0,Z.jsx)(`span`,{children:`Uploading...`}),(0,Z.jsxs)(`span`,{children:[Math.round(e.progress),`%`]})]}),(0,Z.jsx)(_,{now:e.progress,variant:`info`,animated:e.progress<100})]})}var ge=new URL(ClickView.Config.Urls.PlayerApi),_e=X.getValidVideoExtensions();function ve(e){let t=e.uploadVideoType??`channel-video-banner`,n=T(),r=n.values[e.fieldName],[i,a]=K.useState(!1),{status:o,uploadProgress:l,onSelectFile:u}=ue({type:t,hostedLibraryId:e.hostedLibraryId,validVideoExtensions:_e,setFieldValue:t=>n.setFieldValue(e.fieldName,{fileUrl:t}),setFieldError:t=>n.setFieldError(e.fieldName,t),setFieldTouched:t=>n.setFieldTouched(e.fieldName,t),onUploadComplete:e.onUploadComplete}),d=b(r?.id&&C.createViewKey(r.id,ee.MasterObject)),f=D(n.errors,e.fieldName),p=X.getUploadVideoTypeResolution(t),m=o===`uploading`,g=r?.fileUrl,_=!!d.data?.viewKey||!f&&!!g,y=r?.id&&r?.status===S.Processing;function x(){n.setFieldValue(e.fieldName,void 0)}return(0,Z.jsx)(`div`,{className:`form-group`,children:(0,Z.jsxs)(`div`,{className:v(`form-control h-auto py-2`,!!f&&`border border-danger`),children:[(0,Z.jsx)(me,{label:e.label,showRequiredStar:e.showRequiredStar,showReplaceFileButton:_&&!m&&!y,replaceFileButtonHandler:u,deleteFileButtonHandler:x,resolution:p}),m?(0,Z.jsx)(he,{progress:l}):y?(0,Z.jsx)(de,{}):_?(0,Z.jsxs)(Z.Fragment,{children:[!i&&(0,Z.jsx)(Q,{playerApiUrl:ge,viewKey:d.data?.viewKey,offlinePlaybackObject:!d.data?.viewKey&&g?X.getOfflinePlaybackObject(g):void 0,hasError:!!f}),(0,Z.jsx)(`div`,{className:`d-flex justify-content-center`,children:(0,Z.jsx)(s,{svg:i?oe:se,size:c.Large,className:`svg-container cursor-pointer`,tooltipSpanHack:!0,onClick:()=>a(!i),title:i?`Show video`:`Hide video`,tooltipPlacement:`left`})})]}):(0,Z.jsx)(pe,{onSelectFile:u,hasError:!!f}),(0,Z.jsx)(h.Control.Feedback,{type:`invalid`,children:f})]})})}var $={input:`_input_1merh_1`,suggestionsContainer:`_suggestionsContainer_1merh_4`},ye={width:1920,height:1080};function be(e){let t=T();function n(e){t.setFieldValue(`parent`,e),t.setFieldTouched(`parent`,!0,!1)}function i(e){n(e)}function a(n){t.setFieldValue(`name`,n.target.value),e.isNew&&(t.setFieldValue(`slug`,r.slugify(n.target.value)??``),t.setFieldTouched(`slug`,!0))}function o(){n(null)}let s=t.touched.parent&&t.errors.parent;function c(){return typeof t.errors.parent==`string`?t.errors.parent:``}return(0,Z.jsxs)(E,{children:[(0,Z.jsx)(k,{label:`Name`,name:`name`,id:`name`,value:t.values.name,placeholder:`Enter a name for this content partner`,onChange:a,showRequiredStar:!0}),(0,Z.jsx)(k,{as:`textarea`,rows:2,label:`Description`,name:`description`,id:`description`,value:t.values.description,placeholder:`Enter a description for this content partner`,maxLength:J,showCharacterCounter:!0,showRequiredStar:!0}),(0,Z.jsx)(k,{label:`Website Link`,name:`websiteLink`,id:`websiteLink`,value:t.values.websiteLink,placeholder:`Enter a website link for this content partner`}),(0,Z.jsx)(k,{label:`Parent`,name:`parentId`,id:`parentId`,showRequiredStar:!0,children:()=>(0,Z.jsxs)(`div`,{className:`form-group`,children:[(0,Z.jsx)(`div`,{className:v(s&&`is-invalid`),children:(0,Z.jsx)(ae,{renderAsForm:!1,theme:()=>({suggestionsContainerOpen:v(`pb-0 pt-1 overflow-hidden bg-white border rounded position-absolute w-100`,$.suggestions),suggestionsContainer:`${$.suggestionsContainer}`,input:v(s&&`border-danger`)}),activationLength:2,placeholder:`Search for a parent company or person...`,clearQueryOnSelect:!0,searchIconPlacement:!1,debounceTime:300,allowableSuggestionFetchRequestedReasons:[`input-changed`,`input-focused`],getRemoteUrl:()=>e.getRemoteUrl(),getRemotePostBody:e=>({query:e,indices:[{index:`company`},{index:`person`}],searchType:`content`}),onSuggestionSelected:i,showClearInputIcon:!0,onClickClearInput:o,formatRemoteSuggestions:e=>e.results?.map(e=>({...e,name:e.name?.[0]})),initialQuery:t.values.parent?.name||``,getErrorStateComponent:e=>(0,Z.jsx)(N,{imageUrl:P.TYPEAHEAD_ERROR,onClickTryAgain:e}),getEmptyStateComponent:e=>(0,Z.jsxs)(`div`,{children:[`Couldn't find any matches for `,e]})})}),(0,Z.jsx)(h.Control.Feedback,{type:`invalid`,children:c()})]})}),(0,Z.jsx)(k,{label:`Slug`,name:`slug`,infoText:`Auto generated based on the parent company or person name`,id:`slug`,value:t.values.slug,readOnly:!e.isNew,disabled:!e.isNew,showRequiredStar:!0}),e.contentRegions&&!e.isNew&&(0,Z.jsx)(k,{label:`Content Regions`,name:`contentRegions`,id:`contentRegions`,children:()=>(0,Z.jsx)(`div`,{className:`w-50`,children:(0,Z.jsx)(R,{type:`checkbox`,id:t.values.id,options:e.contentRegions,selected:t.values.contentRegions||[],onUpdate:e=>t.setFieldValue(`contentRegions`,e),readOnly:!0})})}),(0,Z.jsx)(M,{imageType:w.Covers,fieldName:`cover`,uploadAppLink:{application:d.CONTENT_PARTNERS,action:u.ContentPartners.UPLOAD_IMAGE}}),(0,Z.jsx)(M,{imageType:w.Logos,fieldName:`logo`,label:`Logo`,overrideDimensions:{width:512,height:512},uploadAppLink:{application:d.CONTENT_PARTNERS,action:u.ContentPartners.UPLOAD_IMAGE}}),!e.isNew&&(0,Z.jsx)(z,{label:`Background colour`,fieldName:`backgroundColour`}),(0,Z.jsx)(M,{imageType:w.Banners,fieldName:`banner`,uploadAppLink:{application:d.CONTENT_PARTNERS,action:u.ContentPartners.UPLOAD_IMAGE},overrideDimensions:ye}),!!e.onVideoUploadComplete&&(0,Z.jsx)(ve,{label:`Video Banner`,fieldName:`videoBanner`,hostedLibraryId:ClickView.Config.Resources.ClickViewRootLibrary,onUploadComplete:e.onVideoUploadComplete}),(0,Z.jsxs)(`div`,{className:`d-flex gap-2`,children:[(0,Z.jsx)(B,{isNew:e.isNew,variant:`dark`}),!e.isNew&&(0,Z.jsx)(l,{appLink:e.deleteAppLink,className:`btn btn-danger`,children:`Delete Channel`})]})]})}function xe(e){let t=e.contentPartner?.links?H.getPartnerLinkByType(e.contentPartner.links,`website`):null,n={id:e.contentPartner?.id,name:e.contentPartner?.name||``,logo:e.contentPartner?.logo||null,cover:e.contentPartner?.cover||null,banner:e.contentPartner?.banner||null,description:e.contentPartner?.description||``,slug:e.contentPartner?._slug.value||``,blurb:e.contentPartner?.blurb||``,contentSource:e.contentPartner?.contentSource||1,partnerType:e.contentPartner?.partnerType||2,backgroundColour:e.contentPartner?.metadata?.backgroundColour||null,contentRegions:e.contentPartner?.contentRegions?.data||[],parent:e.contentPartner?.person||e.contentPartner?.company,videoBanner:e.contentPartner?.videoBanner?{id:e.contentPartner?.videoBanner.id,status:e.contentPartner?.videoBanner.status}:null,websiteLink:t||``};function r(){return`/api/search/v4/search/raw?userId=${e.currentUser?.id}&customerid=${e.currentUser?.customerId}`}return(0,Z.jsx)(re,{initialValues:n,validationSchema:le,onSubmit:e.onSave,children:(0,Z.jsx)(be,{isNew:!(e.contentPartner&&e.contentPartner.id),contentRegions:e.contentRegions,getRemoteUrl:r,onVideoUploadComplete:e.onVideoUploadComplete,deleteAppLink:{application:d.CONTENT_PARTNERS,action:u.ContentPartners.DELETE_CONTENT_PARTNER,args:[e.contentPartner?.id]}})})}export{xe as t};
|
|
2
|
+
//# sourceMappingURL=Da_9BBKD2.chunk.js.map
|