@clickview/exchange 0.62.0-rc.0 → 0.62.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 +531 -531
- package/dist/bundles.json +1 -1
- package/dist/css/Crtlho0p.chunk.css +8 -0
- package/dist/en.json +1 -1
- package/dist/scripts/{cIPkkuhG.chunk.js → 1iKkdpYv.chunk.js} +2 -2
- package/dist/scripts/{cIPkkuhG.chunk.js.map → 1iKkdpYv.chunk.js.map} +1 -1
- package/dist/scripts/{uPFXIvcK2.chunk.js → 8pXw5z942.chunk.js} +2 -2
- package/dist/scripts/{uPFXIvcK2.chunk.js.map → 8pXw5z942.chunk.js.map} +1 -1
- package/dist/scripts/{DVVx1aiS2.chunk.js → B7m3cCi42.chunk.js} +2 -2
- package/dist/scripts/{DVVx1aiS2.chunk.js.map → B7m3cCi42.chunk.js.map} +1 -1
- package/dist/scripts/{DBJfKQKx.chunk.js → BAN6QE-X.chunk.js} +2 -2
- package/dist/scripts/{DBJfKQKx.chunk.js.map → BAN6QE-X.chunk.js.map} +1 -1
- package/dist/scripts/{YGLkoFLc.chunk.js → BHbt9wzx.chunk.js} +2 -2
- package/dist/scripts/{YGLkoFLc.chunk.js.map → BHbt9wzx.chunk.js.map} +1 -1
- package/dist/scripts/{DeevL6eQ.chunk.js → BINz0dmF.chunk.js} +2 -2
- package/dist/scripts/{DeevL6eQ.chunk.js.map → BINz0dmF.chunk.js.map} +1 -1
- package/dist/scripts/{Dg-h5qnR.chunk.js → BPYdRA7H.chunk.js} +2 -2
- package/dist/scripts/{Dg-h5qnR.chunk.js.map → BPYdRA7H.chunk.js.map} +1 -1
- package/dist/scripts/{CkH6ird3.chunk.js → BS8sYAAh.chunk.js} +2 -2
- package/dist/scripts/{CkH6ird3.chunk.js.map → BS8sYAAh.chunk.js.map} +1 -1
- package/dist/scripts/{CKrB9r9w.chunk.js → BaSi1pig.chunk.js} +2 -2
- package/dist/scripts/{CKrB9r9w.chunk.js.map → BaSi1pig.chunk.js.map} +1 -1
- package/dist/scripts/{BRQhDr-02.chunk.js → BbrEvwAi2.chunk.js} +2 -2
- package/dist/scripts/{BRQhDr-02.chunk.js.map → BbrEvwAi2.chunk.js.map} +1 -1
- package/dist/scripts/{Ct8ETEOn2.chunk.js → Bi8itw8v2.chunk.js} +2 -2
- package/dist/scripts/{Ct8ETEOn2.chunk.js.map → Bi8itw8v2.chunk.js.map} +1 -1
- package/dist/scripts/{Co_6cSBX2.chunk.js → BlOKamx72.chunk.js} +2 -2
- package/dist/scripts/{Co_6cSBX2.chunk.js.map → BlOKamx72.chunk.js.map} +1 -1
- package/dist/scripts/{B0hNKKDw2.chunk.js → BobZ5p_m2.chunk.js} +2 -2
- package/dist/scripts/{B0hNKKDw2.chunk.js.map → BobZ5p_m2.chunk.js.map} +1 -1
- package/dist/scripts/{Nx0q4bij.chunk.js → BsLLiG1-.chunk.js} +2 -2
- package/dist/scripts/{Nx0q4bij.chunk.js.map → BsLLiG1-.chunk.js.map} +1 -1
- package/dist/scripts/{D0H6Hjd-2.chunk.js → BtdygabL2.chunk.js} +2 -2
- package/dist/scripts/{D0H6Hjd-2.chunk.js.map → BtdygabL2.chunk.js.map} +1 -1
- package/dist/scripts/{UjMbny4R.chunk.js → Bue5_bLM.chunk.js} +2 -2
- package/dist/scripts/{UjMbny4R.chunk.js.map → Bue5_bLM.chunk.js.map} +1 -1
- package/dist/scripts/{DBKlntFN2.chunk.js → BvamDkjt2.chunk.js} +2 -2
- package/dist/scripts/{DBKlntFN2.chunk.js.map → BvamDkjt2.chunk.js.map} +1 -1
- package/dist/scripts/{NInuYe7b2.chunk.js → BzJLc19T2.chunk.js} +2 -2
- package/dist/scripts/{NInuYe7b2.chunk.js.map → BzJLc19T2.chunk.js.map} +1 -1
- package/dist/scripts/{DyRGf1o8.chunk.js → C03mMZ4k.chunk.js} +2 -2
- package/dist/scripts/{DyRGf1o8.chunk.js.map → C03mMZ4k.chunk.js.map} +1 -1
- package/dist/scripts/{BV2vTX2L.chunk.js → C2AXrtJf.chunk.js} +2 -2
- package/dist/scripts/{BV2vTX2L.chunk.js.map → C2AXrtJf.chunk.js.map} +1 -1
- package/dist/scripts/{Fu0bLEzl2.chunk.js → C3Hw2TpW2.chunk.js} +2 -2
- package/dist/scripts/{Fu0bLEzl2.chunk.js.map → C3Hw2TpW2.chunk.js.map} +1 -1
- package/dist/scripts/{DoTtsl0X.chunk.js → CKL4ViMC.chunk.js} +2 -2
- package/dist/scripts/{DoTtsl0X.chunk.js.map → CKL4ViMC.chunk.js.map} +1 -1
- package/dist/scripts/{DtYC8Udi2.chunk.js → CKZJ2qae2.chunk.js} +2 -2
- package/dist/scripts/{DtYC8Udi2.chunk.js.map → CKZJ2qae2.chunk.js.map} +1 -1
- package/dist/scripts/{CyAM5o2e.chunk.js → CK_CN_mA.chunk.js} +2 -2
- package/dist/scripts/{CyAM5o2e.chunk.js.map → CK_CN_mA.chunk.js.map} +1 -1
- package/dist/scripts/{B6mSouu5.chunk.js → CL9SkODG.chunk.js} +2 -2
- package/dist/scripts/{B6mSouu5.chunk.js.map → CL9SkODG.chunk.js.map} +1 -1
- package/dist/scripts/{BHKm8WQq2.chunk.js → Ca_-2JTE2.chunk.js} +2 -2
- package/dist/scripts/{BHKm8WQq2.chunk.js.map → Ca_-2JTE2.chunk.js.map} +1 -1
- package/dist/scripts/{C7OCN_w_.chunk.js → CfNYdg0m.chunk.js} +2 -2
- package/dist/scripts/{C7OCN_w_.chunk.js.map → CfNYdg0m.chunk.js.map} +1 -1
- package/dist/scripts/{CUdaR862.chunk.js → Ct_4zyE3.chunk.js} +2 -2
- package/dist/scripts/{CUdaR862.chunk.js.map → Ct_4zyE3.chunk.js.map} +1 -1
- package/dist/scripts/{RiPZGw_q2.chunk.js → CxUrOnxW2.chunk.js} +2 -2
- package/dist/scripts/{RiPZGw_q2.chunk.js.map → CxUrOnxW2.chunk.js.map} +1 -1
- package/dist/scripts/{BJxTZJOX.chunk.js → DFXpg6rF.chunk.js} +2 -2
- package/dist/scripts/{BJxTZJOX.chunk.js.map → DFXpg6rF.chunk.js.map} +1 -1
- package/dist/scripts/{CKNdXwxe2.chunk.js → DG6L7zHU2.chunk.js} +2 -2
- package/dist/scripts/{CKNdXwxe2.chunk.js.map → DG6L7zHU2.chunk.js.map} +1 -1
- package/dist/scripts/{CvQQNf_J2.chunk.js → DKz4jhnr2.chunk.js} +2 -2
- package/dist/scripts/{CvQQNf_J2.chunk.js.map → DKz4jhnr2.chunk.js.map} +1 -1
- package/dist/scripts/{BOvQpQ21.chunk.js → DSZkTUVU.chunk.js} +2 -2
- package/dist/scripts/{BOvQpQ21.chunk.js.map → DSZkTUVU.chunk.js.map} +1 -1
- package/dist/scripts/{D5qMnGHT2.chunk.js → D_k-Kl3-2.chunk.js} +2 -2
- package/dist/scripts/{D5qMnGHT2.chunk.js.map → D_k-Kl3-2.chunk.js.map} +1 -1
- package/dist/scripts/{Dp0gbhZx2.chunk.js → DfOgl-0-2.chunk.js} +2 -2
- package/dist/scripts/{Dp0gbhZx2.chunk.js.map → DfOgl-0-2.chunk.js.map} +1 -1
- package/dist/scripts/{CeCXhgoJ.chunk.js → DkB0qBxI.chunk.js} +2 -2
- package/dist/scripts/{CeCXhgoJ.chunk.js.map → DkB0qBxI.chunk.js.map} +1 -1
- package/dist/scripts/{CeHHO1Hv.chunk.js → DmVXt6_V.chunk.js} +2 -2
- package/dist/scripts/{CeHHO1Hv.chunk.js.map → DmVXt6_V.chunk.js.map} +1 -1
- package/dist/scripts/{aDegERgV2.chunk.js → DqM6hYTJ2.chunk.js} +2 -2
- package/dist/scripts/{aDegERgV2.chunk.js.map → DqM6hYTJ2.chunk.js.map} +1 -1
- package/dist/scripts/{BPgKK-d32.chunk.js → DsHiClyc2.chunk.js} +2 -2
- package/dist/scripts/{BPgKK-d32.chunk.js.map → DsHiClyc2.chunk.js.map} +1 -1
- package/dist/scripts/{D9zlZIWi2.chunk.js → DuPL-nK72.chunk.js} +2 -2
- package/dist/scripts/{D9zlZIWi2.chunk.js.map → DuPL-nK72.chunk.js.map} +1 -1
- package/dist/scripts/{ZSP3Vfha2.chunk.js → EIJf9JbR2.chunk.js} +2 -2
- package/dist/scripts/{ZSP3Vfha2.chunk.js.map → EIJf9JbR2.chunk.js.map} +1 -1
- package/dist/scripts/{CqNKzFA4.chunk.js → EO2xPuAQ.chunk.js} +2 -2
- package/dist/scripts/{CqNKzFA4.chunk.js.map → EO2xPuAQ.chunk.js.map} +1 -1
- package/dist/scripts/{o2htB_49.chunk.js → F1LOVRO_.chunk.js} +2 -2
- package/dist/scripts/{o2htB_49.chunk.js.map → F1LOVRO_.chunk.js.map} +1 -1
- package/dist/scripts/{BggsU83p2.chunk.js → G-hiM6b42.chunk.js} +2 -2
- package/dist/scripts/{BggsU83p2.chunk.js.map → G-hiM6b42.chunk.js.map} +1 -1
- package/dist/scripts/{B0VKYPiu.chunk.js → MYu2AEsL.chunk.js} +2 -2
- package/dist/scripts/{B0VKYPiu.chunk.js.map → MYu2AEsL.chunk.js.map} +1 -1
- package/dist/scripts/{B9Rb6IIb.chunk.js → NtrZI2Ef.chunk.js} +2 -2
- package/dist/scripts/{B9Rb6IIb.chunk.js.map → NtrZI2Ef.chunk.js.map} +1 -1
- package/dist/scripts/{CRHkMr9_2.chunk.js → OBYDGOgI2.chunk.js} +2 -2
- package/dist/scripts/{CRHkMr9_2.chunk.js.map → OBYDGOgI2.chunk.js.map} +1 -1
- package/dist/scripts/{zp5MUThO.chunk.js → Pixwk-h-.chunk.js} +2 -2
- package/dist/scripts/{zp5MUThO.chunk.js.map → Pixwk-h-.chunk.js.map} +1 -1
- package/dist/scripts/{Ds3cFntF2.chunk.js → SDRXIwM22.chunk.js} +3 -3
- package/dist/scripts/{Ds3cFntF2.chunk.js.map → SDRXIwM22.chunk.js.map} +1 -1
- package/dist/scripts/{C1u2qBZg2.chunk.js → U0UyGd9c2.chunk.js} +2 -2
- package/dist/scripts/{C1u2qBZg2.chunk.js.map → U0UyGd9c2.chunk.js.map} +1 -1
- package/dist/scripts/{CYUx40jk.chunk.js → amjwjus3.chunk.js} +2 -2
- package/dist/scripts/{CYUx40jk.chunk.js.map → amjwjus3.chunk.js.map} +1 -1
- package/dist/scripts/{app-DDrsm5nt.js → app-BGxmHvGl.js} +3 -3
- package/dist/scripts/{app-DDrsm5nt.js.map → app-BGxmHvGl.js.map} +1 -1
- package/dist/scripts/{CgGl8jzo.chunk.js → eUKFc6dK.chunk.js} +2 -2
- package/dist/scripts/{CgGl8jzo.chunk.js.map → eUKFc6dK.chunk.js.map} +1 -1
- package/dist/scripts/{CWsmm40y.chunk.js → l7UAnIb0.chunk.js} +2 -2
- package/dist/scripts/{CWsmm40y.chunk.js.map → l7UAnIb0.chunk.js.map} +1 -1
- package/dist/scripts/{BsSKrRku2.chunk.js → nMyWveQA2.chunk.js} +2 -2
- package/dist/scripts/{BsSKrRku2.chunk.js.map → nMyWveQA2.chunk.js.map} +1 -1
- package/dist/scripts/{CKUk2HqE.chunk.js → pOL5_XNC.chunk.js} +2 -2
- package/dist/scripts/{CKUk2HqE.chunk.js.map → pOL5_XNC.chunk.js.map} +1 -1
- package/dist/scripts/{eLmgigsW.chunk.js → sViLex0Q.chunk.js} +2 -2
- package/dist/scripts/{eLmgigsW.chunk.js.map → sViLex0Q.chunk.js.map} +1 -1
- package/dist/scripts/{Xs1Bv1h-.chunk.js → vvCGyl_q.chunk.js} +2 -2
- package/dist/scripts/{Xs1Bv1h-.chunk.js.map → vvCGyl_q.chunk.js.map} +1 -1
- package/dist/scripts/{BijIuzIs2.chunk.js → xEGWFFpD2.chunk.js} +2 -2
- package/dist/scripts/{BijIuzIs2.chunk.js.map → xEGWFFpD2.chunk.js.map} +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"CxUrOnxW2.chunk.js","names":[],"sources":["../../../../libs/shared/src/enums/MediaIdType.ts","../../../../libs/shared/src/flight-requests/PlayerRequests.ts","../../src/apps/exchange/views/exchange-preview/ExchangePreviewView.tsx"],"sourcesContent":["export enum MediaIdType {\n Share = 'share',\n MasterObject = 'masterobject'\n}\n","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { MediaIdType } from 'libs/shared/enums/MediaIdType';\nimport { PlayerViewKey } from 'libs/shared/interfaces';\n\nexport const PlayerRequests = {\n createViewKey(\n mediaId: string,\n mediaIdType: MediaIdType,\n shareContextId?: string,\n success?: (viewKey: PlayerViewKey) => void,\n error?: (xhr: Xhr) => void\n ): Flight.Request {\n const data: HashObject = {\n mediaId: mediaId.toString(),\n mediaIdType\n };\n\n if (shareContextId)\n data.shareContextId = shareContextId;\n\n return {\n url: `/api/player/create-view-key`,\n key: `view:key:${mediaId}:${mediaIdType}:${shareContextId}`,\n type: HttpVerbs.POST,\n data,\n /**\n * A view key is valid for 8 hours, at that point we need refetch the view key\n */\n cacheDuration: 28800,\n success,\n error\n };\n }\n};\n","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { ScrollHelper } from 'libs/common/backbone/utils/ScrollHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PlayerReference } from 'libs/shared/context/player-context/interfaces/PlayerReference';\nimport { MediaIdType } from 'libs/shared/enums/MediaIdType';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { PlayerRequests } from 'libs/shared/flight-requests/PlayerRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useHandleDialogError } from 'libs/shared/hooks/UseHandleDialogError';\nimport { Config, PlayerViewKey, PopupViewProps, Video } from 'libs/shared/interfaces';\n\nimport { ClickViewPlayer } from 'projects/player/react/Player';\n\nimport { PlayerOverlayButtons } from 'shared/components/player-overlay-buttons/PlayerOverlayButtons';\nimport { PreviewVideoDetails } from 'shared/components/preview-video-details/PreviewVideoDetails';\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nimport { useGetExchangeActions } from 'apps/exchange/hooks/useGetExchangeActions';\nimport { usePreviewContext } from 'apps/exchange/hooks/usePreviewContext';\n\ninterface ExchangePreviewViewProps extends PopupViewProps {\n videoId: string;\n currentTime: number;\n}\n\nexport function ExchangePreviewView(props: ExchangePreviewViewProps): JSX.Element {\n // const analyticsTracker = React.useRef<PlayerAnalyticsTracker>(null);\n const video = Flight.useBasicFetch<Video>(VideoRequests.video(props.videoId));\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const viewKey = Flight.useBasicFetch<PlayerViewKey>(\n PlayerRequests.createViewKey(props.videoId, MediaIdType.MasterObject)\n );\n\n const videoActions = useGetExchangeActions('preview');\n useHandleDialogError(video.statusCode);\n\n const { previewContext, clearPreviewContext } = usePreviewContext(props.videoId, true);\n\n // TODO: Solve analytics collection\n function onReady(player: PlayerReference): void {\n player;\n // setupAnalytics(player);\n }\n\n // function setupAnalytics(player: PlayerReference): void {\n // analyticsTracker.current = new PlayerAnalyticsTracker({\n // player,\n // video: props.video,\n // analyticsLocation: props.embed ?\n // LocationContext.EmbeddedPlayer :\n // LocationContext.PlayPage,\n // shareId: props.shareLink?.id\n // });\n // }\n\n function onClose(): void {\n props.closePopup();\n\n ScrollHelper.preventScrollTop();\n Core.AppLinkHelper.trigger(previewContext?.appLink ?? {\n application: AppChannels.EXCHANGE,\n action: Actions.Exchange.INDEX\n });\n clearPreviewContext();\n }\n\n const hasLoaded = (\n video.data &&\n config.hasCompleted &&\n viewKey.hasCompleted\n );\n\n return (\n <Popup\n title={video.data?.name}\n hideTitle\n closePopup={onClose}\n showLoadingSpinner={!hasLoaded}\n size='lg'\n bodyClassName='p-0 rounded-3 position-relative'\n >\n {hasLoaded &&\n <>\n <div className='overflow-hidden rounded-top-lg'>\n <ClickViewPlayer\n viewKey={viewKey.data.viewKey}\n playerApi={new URL(config.data.playerApiUrl)}\n autoplay\n hotkeyElQuerySelector='body'\n onReady={onReady}\n allowFullscreen={false}\n />\n </div>\n <PreviewVideoDetails\n video={video.data}\n title={video.data.name}\n description={video.data.description}\n videoActions={videoActions.getVideoActions(video.data)}\n />\n <PlayerOverlayButtons closePopup={onClose} />\n </>\n }\n </Popup>\n );\n}\n"],"mappings":"ucAAA,IAAA,EAAA,SAAA,EAAA,OACE,GAAA,MAAA,QACA,EAAA,aAAA,sBCMW,EAAiB,CAC5B,cACE,EACA,EACA,EACA,EACA,EACgB,CAChB,IAAM,EAAmB,CACvB,QAAS,EAAQ,UAAU,CAC3B,cACD,CAKD,OAHI,IACF,EAAK,eAAiB,GAEjB,CACL,IAAK,8BACL,IAAK,YAAY,EAAQ,GAAG,EAAY,GAAG,IAC3C,KAAM,EAAU,KAChB,OAIA,cAAe,MACf,UACA,QACD,EAEJ,OCPD,SAAgB,EAAoB,EAA8C,CAEhF,IAAM,EAAQ,EAA4B,EAAc,MAAM,EAAM,QAAQ,CAAC,CACvE,EAAS,EAA6B,EAAe,QAAQ,CAAC,CAC9D,EAAU,EACd,EAAe,cAAc,EAAM,QAAS,EAAY,aAAa,CACtE,CAEK,EAAe,EAAsB,UAAU,CACrD,EAAqB,EAAM,WAAW,CAEtC,GAAM,CAAE,iBAAgB,uBAAwB,EAAkB,EAAM,QAAS,GAAK,CAGtF,SAAS,EAAQ,EAA+B,EAgBhD,SAAS,GAAgB,CACvB,EAAM,YAAY,CAElB,EAAa,kBAAkB,CAC/B,EAAmB,QAAQ,GAAgB,SAAW,CACpD,YAAa,EAAY,SACzB,OAAQ,EAAQ,SAAS,MAC1B,CAAC,CACF,GAAqB,CAGvB,IAAM,EACJ,EAAM,MACN,EAAO,cACP,EAAQ,aAGV,OACE,EAAA,EAAA,KAAC,EAAD,CACE,MAAO,EAAM,MAAM,KACnB,UAAA,GACA,WAAY,EACZ,mBAAoB,CAAC,EACrB,KAAK,KACL,cAAc,2CAEb,IACC,EAAA,EAAA,MAAA,EAAA,SAAA,CAAA,SAAA,EACE,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,2CACb,EAAA,EAAA,KAAC,EAAD,CACE,QAAS,EAAQ,KAAK,QACtB,UAAW,IAAI,IAAI,EAAO,KAAK,aAAa,CAC5C,SAAA,GACA,sBAAsB,OACb,UACT,gBAAiB,GACjB,CAAA,CACE,CAAA,EACN,EAAA,EAAA,KAAC,EAAD,CACE,MAAO,EAAM,KACb,MAAO,EAAM,KAAK,KAClB,YAAa,EAAM,KAAK,YACxB,aAAc,EAAa,gBAAgB,EAAM,KAAK,CACtD,CAAA,EACF,EAAA,EAAA,KAAC,EAAD,CAAsB,WAAY,EAAW,CAAA,CAC5C,CAAA,CAAA,CAEC,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{C as e,D as t,S as n,b as r,d as i,s as a}from"./CnnBLBPY.chunk.js";import{n as o}from"./DW0w8_XN.chunk.js";import{l as s,u as c}from"./D8clSITt.chunk.js";import{t as l}from"./GN6vNflP.chunk.js";import{i as u,o as d,s as f}from"./
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{C as e,D as t,S as n,b as r,d as i,s as a}from"./CnnBLBPY.chunk.js";import{n as o}from"./DW0w8_XN.chunk.js";import{l as s,u as c}from"./D8clSITt.chunk.js";import{t as l}from"./GN6vNflP.chunk.js";import{i as u,o as d,s as f}from"./1iKkdpYv.chunk.js";import{t as p}from"./DIgVUF5c.chunk.js";import{t as m}from"./BjaJoJzM.chunk.js";import{t as h}from"./DRTfS6nN.chunk.js";import{t as g}from"./CRRZVEmA.chunk.js";import{$ as _,F as v,I as y,Q as b,tt as x}from"./app-BGxmHvGl.js";import{t as S}from"./DWCNy_Jd2.chunk.js";import{t as C}from"./xEGWFFpD2.chunk.js";import{t as w}from"./DuPL-nK72.chunk.js";import{h as T,m as E,t as D}from"./C03mMZ4k.chunk.js";import{t as O}from"./CK_CN_mA.chunk.js";import{n as k,r as A,t as j}from"./sViLex0Q.chunk.js";import{t as M}from"./DmVXt6_V.chunk.js";import{n as N,t as P}from"./BAN6QE-X.chunk.js";import{t as F}from"./CfNYdg0m.chunk.js";import{t as I}from"./d3WuXtzH.chunk.js";import{t as L}from"./MYu2AEsL.chunk.js";import{i as R,r as z,t as B}from"./amjwjus3.chunk.js";import{n as V,r as H,t as U}from"./l7UAnIb0.chunk.js";t();var W=e(),G=`exchange.exchangeFolderEmptyState`;function K(){return(0,W.jsx)(v.Provider,{value:G,children:(0,W.jsxs)(p,{children:[(0,W.jsx)(p.Image,{src:h.EmptyStates.FOLDER}),(0,W.jsx)(p.Heading,{children:(0,W.jsx)(y,{phrase:`heading`})})]})})}function q(e){return!e.videos?.length&&!e.isFetching?(0,W.jsx)(K,{}):(0,W.jsxs)(`div`,{children:[(0,W.jsxs)(`div`,{className:`d-flex justify-content-between align-items-center mb-2`,children:[(0,W.jsx)(V,{breadcrumbs:e.breadcrumbs}),(0,W.jsx)(U,{variant:`outline-dark`,type:e.sort,getSortAppLink:e.getSortAppLink,analyticsOptions:{location:i.VideoListHeader,entity:a.Video,actionType:r.Sort,workflowPhase:n.Complete},includeProductionYear:!0})]}),e.videos?(0,W.jsx)(D,{videos:e.videos,getVideoAppLink:z,presentationAudiences:null,getPreviewQuestionsAppLink:()=>null,hasPermissions:()=>!1,hideVideoGuidance:!0,commonVideoProps:e.commonVideoProps}):(0,W.jsx)(`div`,{className:`mx-n2`,children:(0,W.jsx)(u,{})}),(e.hasMore||e.isFetching)&&(0,W.jsx)(d,{isFetching:e.isFetching,fetchNext:e.fetchNext,nextCursor:e.nextCursor})]})}function J(){return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`div`,{className:`partial-loading-background h2 mb-3 w-25`,children:`\xA0`}),(0,W.jsx)(`div`,{className:`mt-1 mb-2`,children:(0,W.jsx)(j,{})}),(0,W.jsxs)(`div`,{className:`mb-3`,children:[(0,W.jsx)(`div`,{className:`mb-3`,children:(0,W.jsx)(H,{})}),(0,W.jsx)(`div`,{className:`mx-n2`,children:(0,W.jsx)(u,{})})]})]})}var Y=l.encloseNamespace(`exchange.exchangeFolder`);function X(e){let t=c(),n=w(),r=s(g.currentUser()),i=s(C.folder(e.folderId)),{isUserCurator:a,openInCurationStudioLabel:l,getOpenInCurationStudioLink:u}=N(),d=e=>C.childFolders(i.data.id,e),p=k(i.data&&d,e=>t(d(e)));m({title:i.data?.name}),F([i]);let{commonVideoProps:h}=E(),v=!!r.data&&b.getOrSetSortType(r.data.id,e.sort,_.ProductionYear),{items:y,hasMore:D,isFetching:j,nextCursor:z}=f(V,H,U);function V(t){return O.folderVideos(e.folderId,v,t)}function H(e){return t(V(e))}function U(e,t){if(e===1)return M(t);n.error(Y(`error`))}function G(){return a?[{label:l,openInNewTab:!0,href:u(x.Category,i.data.id)}]:[]}let K=R(e.folderId,e.sort),X=P(`video-list`),Z=p?.items?.length>0,Q=i.hasCompleted&&r.hasCompleted&&p.hasCompleted;return(0,W.jsxs)(T.Provider,{value:X,children:[(0,W.jsxs)(`div`,{className:`mb-3`,children:[(0,W.jsx)(I,{}),(0,W.jsx)(L,{active:`categories`})]}),Q?(0,W.jsxs)(W.Fragment,{children:[i.data&&(0,W.jsxs)(`div`,{className:`d-flex mb-3`,children:[(0,W.jsx)(`h1`,{className:`h2 me-1 mb-0`,children:i.data.name}),(0,W.jsx)(S,{actions:G(),actionsDropdownClassName:`btn btn-sm`,dropdownToggleSvgSize:o.Standard})]}),Z&&(0,W.jsx)(`div`,{className:`mx-n2`,children:(0,W.jsx)(A,{folders:p.items,getAppLink:e=>B(e,v),expandFolders:!y?.length})}),(0,W.jsx)(`div`,{className:`pb-3`,children:(0,W.jsx)(q,{videos:y,hasSubFolders:Z,hasMore:D,isFetching:j,fetchNext:H,nextCursor:z,sort:v,breadcrumbs:K,getSortAppLink:e=>B(i.data,e),commonVideoProps:h})})]}):(0,W.jsx)(J,{})]})}export{X as ExchangeFolderView};
|
|
2
|
+
//# sourceMappingURL=DFXpg6rF.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BJxTZJOX.chunk.js","names":[],"sources":["../../src/apps/exchange/views/exchange-folder/components/exchange-folder-videos/empty-state/ExchangeFolderEmptyState.tsx","../../src/apps/exchange/views/exchange-folder/components/exchange-folder-videos/ExchangeFolderVideos.tsx","../../src/apps/exchange/views/exchange-folder/components/exchange-folder-videos/partial-loading/ExchangeFolderPartialLoading.tsx","../../src/apps/exchange/views/exchange-folder/ExchangeFolderView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nconst namespace = 'exchange.exchangeFolderEmptyState';\n\nexport function ExchangeFolderEmptyState(): JSX.Element {\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <EmptyState>\n <EmptyState.Image src={ImageUrls.EmptyStates.FOLDER} />\n\n <EmptyState.Heading><Text phrase='heading' /></EmptyState.Heading>\n </EmptyState>\n </LanguageNamespaceContext.Provider>\n );\n}\n","import React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { EntityType, LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { Breadcrumb, Breadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { InfiniteScrollFooter } from 'libs/shared/components/infinite-scroll-footer/InfiniteScrollFooter';\nimport { PartialVideoList } from 'libs/shared/components/video-list/partial-loading/PartialVideoList';\nimport { VideoList } from 'libs/shared/components/video-list/VideoList';\nimport { VideoSortSelect } from 'libs/shared/components/video-sort-select/VideoSortSelect';\nimport { VideoSortType } from 'libs/shared/enums/VideoSortType';\nimport { Video } from 'libs/shared/interfaces';\nimport { CommonVideoProps } from 'libs/shared/interfaces/CommonVideoProps';\n\nimport { getVideoAppLink } from 'apps/exchange/utils/ExchangeUtils';\nimport { ExchangeFolderEmptyState } from 'apps/exchange/views/exchange-folder/components/exchange-folder-videos/empty-state/ExchangeFolderEmptyState';\n\ninterface ExchangeFolderVideosProps {\n videos: Video[];\n hasSubFolders: boolean;\n sort: VideoSortType;\n isFetching: boolean;\n hasMore: boolean;\n nextCursor?: string;\n breadcrumbs: Breadcrumb[];\n getSortAppLink: (sort: VideoSortType) => Core.AppLink;\n fetchNext: (cursor: string) => void;\n commonVideoProps: CommonVideoProps;\n}\n\nexport function ExchangeFolderVideos(props: ExchangeFolderVideosProps): JSX.Element {\n if (!props.videos?.length && !props.isFetching)\n return <ExchangeFolderEmptyState />;\n\n return (\n <div>\n <div className='d-flex justify-content-between align-items-center mb-2'>\n <Breadcrumbs breadcrumbs={props.breadcrumbs} />\n\n <VideoSortSelect\n variant='outline-dark'\n type={props.sort}\n getSortAppLink={props.getSortAppLink}\n analyticsOptions={{\n location: LocationContext.VideoListHeader,\n entity: EntityType.Video,\n actionType: UserAction.Sort,\n workflowPhase: WorkflowPhase.Complete\n }}\n includeProductionYear\n />\n </div>\n\n {props.videos ? (\n <VideoList\n videos={props.videos}\n getVideoAppLink={getVideoAppLink}\n presentationAudiences={null}\n getPreviewQuestionsAppLink={() => null}\n hasPermissions={() => false}\n hideVideoGuidance\n commonVideoProps={props.commonVideoProps}\n />\n ) : (\n <div className='mx-n2'>\n <PartialVideoList />\n </div>\n )}\n\n {(props.hasMore || props.isFetching) && (\n <InfiniteScrollFooter\n isFetching={props.isFetching}\n fetchNext={props.fetchNext}\n nextCursor={props.nextCursor}\n />\n )}\n </div>\n );\n}\n","import React from 'react';\n\nimport { PartialBreadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { PartialFolderList } from 'libs/shared/components/folder-list/partial-loading/PartialFolderList';\nimport { PartialVideoList } from 'libs/shared/components/video-list/partial-loading/PartialVideoList';\n\nexport function ExchangeFolderPartialLoading(): JSX.Element {\n return (\n <>\n <div\n className='partial-loading-background h2 mb-3 w-25'>\n \n </div>\n\n <div className='mt-1 mb-2'>\n <PartialFolderList />\n </div>\n\n <div className='mb-3'>\n <div className='mb-3'>\n <PartialBreadcrumbs />\n </div>\n <div className='mx-n2'>\n <PartialVideoList />\n </div>\n </div>\n </>\n );\n}\n","import React from 'react';\n\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { ActionOptions, Actions } from 'libs/shared/components/actions/Actions';\nimport { FolderList } from 'libs/shared/components/folder-list/FolderList';\nimport { SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { VideoActionsContext } from 'libs/shared/context/VideoActionsContext';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { VideoSortType } from 'libs/shared/enums/VideoSortType';\nimport { handleHttpError } from 'libs/shared/errors/handlers/HttpErrorHandlers';\nimport { LibraryRequests } from 'libs/shared/flight-requests/LibraryRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useCurationStudio } from 'libs/shared/hooks/useCurationStudio';\nimport { useFetchAll } from 'libs/shared/hooks/UseFetchAll';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useInfiniteList } from 'libs/shared/hooks/UseInfiniteList';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { CurrentUser, Folder, Video } from 'libs/shared/interfaces';\nimport { VideoSortHelper } from 'libs/shared/utils/VideoSortHelper';\n\nimport { ExchangeSearchBar } from 'apps/exchange/components/exchange-search-bar/ExchangeSearchBar';\nimport { ExchangeTabs } from 'apps/exchange/components/exchange-tabs/ExchangeTabs';\nimport { ExchangeRequests } from 'apps/exchange/flight-requests/ExchangeRequests';\nimport { useCommonVideoProps } from 'apps/exchange/hooks/useCommonVideoProps';\nimport { useGetExchangeActions } from 'apps/exchange/hooks/useGetExchangeActions';\nimport { getFolderAppLink, useGetFolderBreadcrumbs } from 'apps/exchange/utils/ExchangeUtils';\nimport { ExchangeFolderVideos } from 'apps/exchange/views/exchange-folder/components/exchange-folder-videos/ExchangeFolderVideos';\nimport { ExchangeFolderPartialLoading } from 'apps/exchange/views/exchange-folder/components/exchange-folder-videos/partial-loading/ExchangeFolderPartialLoading';\n\nconst namespace = 'exchange.exchangeFolder';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface ExchangeFolderViewProps {\n folderId: string;\n sort?: VideoSortType;\n}\n\nexport function ExchangeFolderView(props: ExchangeFolderViewProps): JSX.Element {\n const fetch = Flight.useGetFetch();\n const alerts = useAlerts();\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const folder = Flight.useBasicFetch<Folder>(LibraryRequests.folder(props.folderId));\n const { isUserCurator, openInCurationStudioLabel, getOpenInCurationStudioLink } = useCurationStudio();\n \n const getFolderRequest = (cursor: string) => LibraryRequests.childFolders(folder.data.id, cursor);\n const fetchNextFolder = (cursor: string) => fetch(getFolderRequest(cursor));\n const subfolders = useFetchAll(folder.data && getFolderRequest, fetchNextFolder);\n\n useSetPageMetadata({ title: folder.data?.name });\n useHandleObjectError([folder]);\n\n const { commonVideoProps } = useCommonVideoProps();\n\n // Must be before the video fetching, as the getVideosRequest has a closure over the sort\n const sort = !!currentUser.data\n && VideoSortHelper.getOrSetSortType(currentUser.data.id, props.sort, VideoSortType.ProductionYear);\n\n const {\n items: videos,\n hasMore,\n isFetching,\n nextCursor\n } = useInfiniteList<Video>(getVideosRequest, fetchNextVideos, onError);\n\n function getVideosRequest(cursor?: string): Flight.Request {\n return ExchangeRequests.folderVideos(props.folderId, sort, cursor);\n }\n\n function fetchNextVideos(cursor?: string): void {\n return fetch(getVideosRequest(cursor));\n }\n\n function onError(pageNumber: number, httpStatus: HttpStatus): void {\n if (pageNumber === 1)\n return handleHttpError(httpStatus);\n\n alerts.error(getPhrase('error'));\n }\n\n function getActions(): ActionOptions[] {\n if (!isUserCurator)\n return [];\n\n return [\n {\n label: openInCurationStudioLabel,\n openInNewTab: true,\n href: getOpenInCurationStudioLink(MasterType.Category, folder.data.id)\n }\n ];\n }\n\n const breadcrumbs = useGetFolderBreadcrumbs(props.folderId, props.sort);\n\n const videoActions = useGetExchangeActions('video-list');\n\n const hasSubfolders = subfolders?.items?.length > 0;\n\n const dataLoaded = (\n folder.hasCompleted &&\n currentUser.hasCompleted &&\n subfolders.hasCompleted\n );\n\n return (\n <VideoActionsContext.Provider value={videoActions}>\n <div className='mb-3'>\n <ExchangeSearchBar />\n <ExchangeTabs active='categories' />\n </div>\n\n {dataLoaded ? (\n <>\n {folder.data && (\n <div className='d-flex mb-3'>\n <h1 className='h2 me-1 mb-0'>{folder.data.name}</h1>\n <Actions\n actions={getActions()}\n actionsDropdownClassName='btn btn-sm'\n dropdownToggleSvgSize={SvgContainerSize.Standard}\n />\n </div>\n )}\n\n {hasSubfolders && (\n <div className='mx-n2'>\n <FolderList\n folders={subfolders.items}\n getAppLink={(f: Folder) => getFolderAppLink(f, sort)}\n expandFolders={!videos?.length}\n />\n </div>\n )}\n\n <div className='pb-3'>\n <ExchangeFolderVideos\n videos={videos}\n hasSubFolders={hasSubfolders}\n hasMore={hasMore}\n isFetching={isFetching}\n fetchNext={fetchNextVideos}\n nextCursor={nextCursor}\n sort={sort}\n breadcrumbs={breadcrumbs}\n getSortAppLink={sort => getFolderAppLink(folder.data, sort)}\n commonVideoProps={commonVideoProps}\n />\n </div>\n </>\n ) : <ExchangeFolderPartialLoading />}\n </VideoActionsContext.Provider>\n );\n}\n"],"mappings":"2jCAOM,EAAY,oCAElB,SAAgB,GAAwC,CACtD,OACE,EAAA,EAAA,KAAC,EAAyB,SAA1B,CAAmC,MAAO,YACxC,EAAA,EAAA,MAAC,EAAD,CAAA,SAAA,EACE,EAAA,EAAA,KAAC,EAAW,MAAZ,CAAkB,IAAK,EAAU,YAAY,OAAU,CAAA,EAEvD,EAAA,EAAA,KAAC,EAAW,QAAZ,CAAA,UAAoB,EAAA,EAAA,KAAC,EAAD,CAAM,OAAO,UAAY,CAAA,CAAqB,CAAA,CACvD,CAAA,CAAA,CACqB,CAAA,CCcxC,SAAgB,EAAqB,EAA+C,CAIlF,MAHI,CAAC,EAAM,QAAQ,QAAU,CAAC,EAAM,YAC3B,EAAA,EAAA,KAAC,EAAD,EAA4B,CAAA,EAGnC,EAAA,EAAA,MAAC,MAAD,CAAA,SAAA,EACE,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,kEAAf,EACE,EAAA,EAAA,KAAC,EAAD,CAAa,YAAa,EAAM,YAAe,CAAA,EAE/C,EAAA,EAAA,KAAC,EAAD,CACE,QAAQ,eACR,KAAM,EAAM,KACZ,eAAgB,EAAM,eACtB,iBAAkB,CAChB,SAAU,EAAgB,gBAC1B,OAAQ,EAAW,MACnB,WAAY,EAAW,KACvB,cAAe,EAAc,SAC9B,CACD,sBAAA,GACA,CAAA,CACE,GAEL,EAAM,QACL,EAAA,EAAA,KAAC,EAAD,CACE,OAAQ,EAAM,OACG,kBACjB,sBAAuB,KACvB,+BAAkC,KAClC,mBAAsB,GACtB,kBAAA,GACA,iBAAkB,EAAM,iBACxB,CAAA,EAEF,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,kBACb,EAAA,EAAA,KAAC,EAAD,EAAoB,CAAA,CAChB,CAAA,EAGN,EAAM,SAAW,EAAM,cACvB,EAAA,EAAA,KAAC,EAAD,CACE,WAAY,EAAM,WAClB,UAAW,EAAM,UACjB,WAAY,EAAM,WAClB,CAAA,CAEA,CAAA,CAAA,CCvEV,SAAgB,GAA4C,CAC1D,OACE,EAAA,EAAA,MAAA,EAAA,SAAA,CAAA,SAAA,EACE,EAAA,EAAA,KAAC,MAAD,CACE,UAAU,mDAA0C,OAEhD,CAAA,EAEN,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,sBACb,EAAA,EAAA,KAAC,EAAD,EAAqB,CAAA,CACjB,CAAA,EAEN,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,gBAAf,EACE,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,iBACb,EAAA,EAAA,KAAC,EAAD,EAAsB,CAAA,CAClB,CAAA,EACN,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,kBACb,EAAA,EAAA,KAAC,EAAD,EAAoB,CAAA,CAChB,CAAA,CACF,GACL,CAAA,CAAA,CCQP,IAAM,EAAY,EAAgB,iBADhB,0BAC2C,CAO7D,SAAgB,EAAmB,EAA6C,CAC9E,IAAM,EAAQ,GAAoB,CAC5B,EAAS,GAAW,CAEpB,EAAc,EAAkC,EAAa,aAAa,CAAC,CAC3E,EAAS,EAA6B,EAAgB,OAAO,EAAM,SAAS,CAAC,CAC7E,CAAE,gBAAe,4BAA2B,+BAAgC,GAAmB,CAE/F,EAAoB,GAAmB,EAAgB,aAAa,EAAO,KAAK,GAAI,EAAO,CAE3F,EAAa,EAAY,EAAO,MAAQ,EADrB,GAAmB,EAAM,EAAiB,EAAO,CAAC,CACK,CAEhF,EAAmB,CAAE,MAAO,EAAO,MAAM,KAAM,CAAC,CAChD,EAAqB,CAAC,EAAO,CAAC,CAE9B,GAAM,CAAE,oBAAqB,GAAqB,CAG5C,EAAO,CAAC,CAAC,EAAY,MACtB,EAAgB,iBAAiB,EAAY,KAAK,GAAI,EAAM,KAAM,EAAc,eAAe,CAE9F,CACJ,MAAO,EACP,UACA,aACA,cACE,EAAuB,EAAkB,EAAiB,EAAQ,CAEtE,SAAS,EAAiB,EAAiC,CACzD,OAAO,EAAiB,aAAa,EAAM,SAAU,EAAM,EAAO,CAGpE,SAAS,EAAgB,EAAuB,CAC9C,OAAO,EAAM,EAAiB,EAAO,CAAC,CAGxC,SAAS,EAAQ,EAAoB,EAA8B,CACjE,GAAI,IAAe,EACjB,OAAO,EAAgB,EAAW,CAEpC,EAAO,MAAM,EAAU,QAAQ,CAAC,CAGlC,SAAS,GAA8B,CAIrC,OAHK,EAGE,CACL,CACE,MAAO,EACP,aAAc,GACd,KAAM,EAA4B,EAAW,SAAU,EAAO,KAAK,GAAG,CACvE,CACF,CARQ,EAAE,CAWb,IAAM,EAAc,EAAwB,EAAM,SAAU,EAAM,KAAK,CAEjE,EAAe,EAAsB,aAAa,CAElD,EAAgB,GAAY,OAAO,OAAS,EAE5C,EACJ,EAAO,cACP,EAAY,cACZ,EAAW,aAGb,OACE,EAAA,EAAA,MAAC,EAAoB,SAArB,CAA8B,MAAO,WAArC,EACE,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,gBAAf,EACE,EAAA,EAAA,KAAC,EAAD,EAAqB,CAAA,EACrB,EAAA,EAAA,KAAC,EAAD,CAAc,OAAO,aAAe,CAAA,CAChC,GAEL,GACC,EAAA,EAAA,MAAA,EAAA,SAAA,CAAA,SAAA,CACG,EAAO,OACN,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,uBAAf,EACE,EAAA,EAAA,KAAC,KAAD,CAAI,UAAU,wBAAgB,EAAO,KAAK,KAAU,CAAA,EACpD,EAAA,EAAA,KAAC,EAAD,CACE,QAAS,GAAY,CACrB,yBAAyB,aACzB,sBAAuB,EAAiB,SACxC,CAAA,CACE,GAGP,IACC,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,kBACb,EAAA,EAAA,KAAC,EAAD,CACE,QAAS,EAAW,MACpB,WAAa,GAAc,EAAiB,EAAG,EAAK,CACpD,cAAe,CAAC,GAAQ,OACxB,CAAA,CACE,CAAA,EAGR,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,iBACb,EAAA,EAAA,KAAC,EAAD,CACU,SACR,cAAe,EACN,UACG,aACZ,UAAW,EACC,aACN,OACO,cACb,eAAgB,GAAQ,EAAiB,EAAO,KAAM,EAAK,CACzC,mBAClB,CAAA,CACE,CAAA,CACL,CAAA,CAAA,EACD,EAAA,EAAA,KAAC,EAAD,EAAgC,CAAA,CACP"}
|
|
1
|
+
{"version":3,"file":"DFXpg6rF.chunk.js","names":[],"sources":["../../src/apps/exchange/views/exchange-folder/components/exchange-folder-videos/empty-state/ExchangeFolderEmptyState.tsx","../../src/apps/exchange/views/exchange-folder/components/exchange-folder-videos/ExchangeFolderVideos.tsx","../../src/apps/exchange/views/exchange-folder/components/exchange-folder-videos/partial-loading/ExchangeFolderPartialLoading.tsx","../../src/apps/exchange/views/exchange-folder/ExchangeFolderView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nconst namespace = 'exchange.exchangeFolderEmptyState';\n\nexport function ExchangeFolderEmptyState(): JSX.Element {\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <EmptyState>\n <EmptyState.Image src={ImageUrls.EmptyStates.FOLDER} />\n\n <EmptyState.Heading><Text phrase='heading' /></EmptyState.Heading>\n </EmptyState>\n </LanguageNamespaceContext.Provider>\n );\n}\n","import React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { EntityType, LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { Breadcrumb, Breadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { InfiniteScrollFooter } from 'libs/shared/components/infinite-scroll-footer/InfiniteScrollFooter';\nimport { PartialVideoList } from 'libs/shared/components/video-list/partial-loading/PartialVideoList';\nimport { VideoList } from 'libs/shared/components/video-list/VideoList';\nimport { VideoSortSelect } from 'libs/shared/components/video-sort-select/VideoSortSelect';\nimport { VideoSortType } from 'libs/shared/enums/VideoSortType';\nimport { Video } from 'libs/shared/interfaces';\nimport { CommonVideoProps } from 'libs/shared/interfaces/CommonVideoProps';\n\nimport { getVideoAppLink } from 'apps/exchange/utils/ExchangeUtils';\nimport { ExchangeFolderEmptyState } from 'apps/exchange/views/exchange-folder/components/exchange-folder-videos/empty-state/ExchangeFolderEmptyState';\n\ninterface ExchangeFolderVideosProps {\n videos: Video[];\n hasSubFolders: boolean;\n sort: VideoSortType;\n isFetching: boolean;\n hasMore: boolean;\n nextCursor?: string;\n breadcrumbs: Breadcrumb[];\n getSortAppLink: (sort: VideoSortType) => Core.AppLink;\n fetchNext: (cursor: string) => void;\n commonVideoProps: CommonVideoProps;\n}\n\nexport function ExchangeFolderVideos(props: ExchangeFolderVideosProps): JSX.Element {\n if (!props.videos?.length && !props.isFetching)\n return <ExchangeFolderEmptyState />;\n\n return (\n <div>\n <div className='d-flex justify-content-between align-items-center mb-2'>\n <Breadcrumbs breadcrumbs={props.breadcrumbs} />\n\n <VideoSortSelect\n variant='outline-dark'\n type={props.sort}\n getSortAppLink={props.getSortAppLink}\n analyticsOptions={{\n location: LocationContext.VideoListHeader,\n entity: EntityType.Video,\n actionType: UserAction.Sort,\n workflowPhase: WorkflowPhase.Complete\n }}\n includeProductionYear\n />\n </div>\n\n {props.videos ? (\n <VideoList\n videos={props.videos}\n getVideoAppLink={getVideoAppLink}\n presentationAudiences={null}\n getPreviewQuestionsAppLink={() => null}\n hasPermissions={() => false}\n hideVideoGuidance\n commonVideoProps={props.commonVideoProps}\n />\n ) : (\n <div className='mx-n2'>\n <PartialVideoList />\n </div>\n )}\n\n {(props.hasMore || props.isFetching) && (\n <InfiniteScrollFooter\n isFetching={props.isFetching}\n fetchNext={props.fetchNext}\n nextCursor={props.nextCursor}\n />\n )}\n </div>\n );\n}\n","import React from 'react';\n\nimport { PartialBreadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { PartialFolderList } from 'libs/shared/components/folder-list/partial-loading/PartialFolderList';\nimport { PartialVideoList } from 'libs/shared/components/video-list/partial-loading/PartialVideoList';\n\nexport function ExchangeFolderPartialLoading(): JSX.Element {\n return (\n <>\n <div\n className='partial-loading-background h2 mb-3 w-25'>\n \n </div>\n\n <div className='mt-1 mb-2'>\n <PartialFolderList />\n </div>\n\n <div className='mb-3'>\n <div className='mb-3'>\n <PartialBreadcrumbs />\n </div>\n <div className='mx-n2'>\n <PartialVideoList />\n </div>\n </div>\n </>\n );\n}\n","import React from 'react';\n\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { ActionOptions, Actions } from 'libs/shared/components/actions/Actions';\nimport { FolderList } from 'libs/shared/components/folder-list/FolderList';\nimport { SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { VideoActionsContext } from 'libs/shared/context/VideoActionsContext';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { VideoSortType } from 'libs/shared/enums/VideoSortType';\nimport { handleHttpError } from 'libs/shared/errors/handlers/HttpErrorHandlers';\nimport { LibraryRequests } from 'libs/shared/flight-requests/LibraryRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useCurationStudio } from 'libs/shared/hooks/useCurationStudio';\nimport { useFetchAll } from 'libs/shared/hooks/UseFetchAll';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useInfiniteList } from 'libs/shared/hooks/UseInfiniteList';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { CurrentUser, Folder, Video } from 'libs/shared/interfaces';\nimport { VideoSortHelper } from 'libs/shared/utils/VideoSortHelper';\n\nimport { ExchangeSearchBar } from 'apps/exchange/components/exchange-search-bar/ExchangeSearchBar';\nimport { ExchangeTabs } from 'apps/exchange/components/exchange-tabs/ExchangeTabs';\nimport { ExchangeRequests } from 'apps/exchange/flight-requests/ExchangeRequests';\nimport { useCommonVideoProps } from 'apps/exchange/hooks/useCommonVideoProps';\nimport { useGetExchangeActions } from 'apps/exchange/hooks/useGetExchangeActions';\nimport { getFolderAppLink, useGetFolderBreadcrumbs } from 'apps/exchange/utils/ExchangeUtils';\nimport { ExchangeFolderVideos } from 'apps/exchange/views/exchange-folder/components/exchange-folder-videos/ExchangeFolderVideos';\nimport { ExchangeFolderPartialLoading } from 'apps/exchange/views/exchange-folder/components/exchange-folder-videos/partial-loading/ExchangeFolderPartialLoading';\n\nconst namespace = 'exchange.exchangeFolder';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface ExchangeFolderViewProps {\n folderId: string;\n sort?: VideoSortType;\n}\n\nexport function ExchangeFolderView(props: ExchangeFolderViewProps): JSX.Element {\n const fetch = Flight.useGetFetch();\n const alerts = useAlerts();\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const folder = Flight.useBasicFetch<Folder>(LibraryRequests.folder(props.folderId));\n const { isUserCurator, openInCurationStudioLabel, getOpenInCurationStudioLink } = useCurationStudio();\n \n const getFolderRequest = (cursor: string) => LibraryRequests.childFolders(folder.data.id, cursor);\n const fetchNextFolder = (cursor: string) => fetch(getFolderRequest(cursor));\n const subfolders = useFetchAll(folder.data && getFolderRequest, fetchNextFolder);\n\n useSetPageMetadata({ title: folder.data?.name });\n useHandleObjectError([folder]);\n\n const { commonVideoProps } = useCommonVideoProps();\n\n // Must be before the video fetching, as the getVideosRequest has a closure over the sort\n const sort = !!currentUser.data\n && VideoSortHelper.getOrSetSortType(currentUser.data.id, props.sort, VideoSortType.ProductionYear);\n\n const {\n items: videos,\n hasMore,\n isFetching,\n nextCursor\n } = useInfiniteList<Video>(getVideosRequest, fetchNextVideos, onError);\n\n function getVideosRequest(cursor?: string): Flight.Request {\n return ExchangeRequests.folderVideos(props.folderId, sort, cursor);\n }\n\n function fetchNextVideos(cursor?: string): void {\n return fetch(getVideosRequest(cursor));\n }\n\n function onError(pageNumber: number, httpStatus: HttpStatus): void {\n if (pageNumber === 1)\n return handleHttpError(httpStatus);\n\n alerts.error(getPhrase('error'));\n }\n\n function getActions(): ActionOptions[] {\n if (!isUserCurator)\n return [];\n\n return [\n {\n label: openInCurationStudioLabel,\n openInNewTab: true,\n href: getOpenInCurationStudioLink(MasterType.Category, folder.data.id)\n }\n ];\n }\n\n const breadcrumbs = useGetFolderBreadcrumbs(props.folderId, props.sort);\n\n const videoActions = useGetExchangeActions('video-list');\n\n const hasSubfolders = subfolders?.items?.length > 0;\n\n const dataLoaded = (\n folder.hasCompleted &&\n currentUser.hasCompleted &&\n subfolders.hasCompleted\n );\n\n return (\n <VideoActionsContext.Provider value={videoActions}>\n <div className='mb-3'>\n <ExchangeSearchBar />\n <ExchangeTabs active='categories' />\n </div>\n\n {dataLoaded ? (\n <>\n {folder.data && (\n <div className='d-flex mb-3'>\n <h1 className='h2 me-1 mb-0'>{folder.data.name}</h1>\n <Actions\n actions={getActions()}\n actionsDropdownClassName='btn btn-sm'\n dropdownToggleSvgSize={SvgContainerSize.Standard}\n />\n </div>\n )}\n\n {hasSubfolders && (\n <div className='mx-n2'>\n <FolderList\n folders={subfolders.items}\n getAppLink={(f: Folder) => getFolderAppLink(f, sort)}\n expandFolders={!videos?.length}\n />\n </div>\n )}\n\n <div className='pb-3'>\n <ExchangeFolderVideos\n videos={videos}\n hasSubFolders={hasSubfolders}\n hasMore={hasMore}\n isFetching={isFetching}\n fetchNext={fetchNextVideos}\n nextCursor={nextCursor}\n sort={sort}\n breadcrumbs={breadcrumbs}\n getSortAppLink={sort => getFolderAppLink(folder.data, sort)}\n commonVideoProps={commonVideoProps}\n />\n </div>\n </>\n ) : <ExchangeFolderPartialLoading />}\n </VideoActionsContext.Provider>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{y as e}from"./D8clSITt.chunk.js";import{t}from"./CrBD6Z4s.chunk.js";import{Q as n,c as r,s as i,tt as a}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{y as e}from"./D8clSITt.chunk.js";import{t}from"./CrBD6Z4s.chunk.js";import{Q as n,c as r,s as i,tt as a}from"./app-BGxmHvGl.js";import{t as o}from"./CTTruW3_2.chunk.js";import{t as s}from"./D2DuwJJH2.chunk.js";var c=function(e){return e.Series=`series`,e.Playlist=`playlist`,e.Widget=`widget`,e.Folder=`category`,e.CategoryTree=`categoryTree`,e}({}),l={sharedVideo:(e,n)=>t.urlBuilder(`/api/objects/${e}`,{shareId:n,query:r.VIDEO}),publicVideo:(e,n)=>t.urlBuilder(`/api/objects/${e}`,{query:`thumbnail,_canBeConsumed,series,season,_rating,libraries{typeId:[17]}`,permissionFilterOption:s.StripMetadata,shareId:n}),getVideosById:e=>t.urlBuilder(`{gateway}/v1/objects`,{"query.video":r.VIDEO_COLLECTION,"query.clip":r.CLIP_COLLECTION,"query.interactive":r.INTERACTIVE_COLLECTION,id:e}),relatedVideos:e=>{let{videoId:n,context:i,collectionId:a,moviesAndTv:o,limit:s}=e,l={videoId:n,limit:s,query:r.VIDEO_COLLECTION};return i&&(i===c.Widget?l[`context.widgetId`]=a:(l[`context.collectionType`]=i,l[`context.collectionId`]=a)),o&&(l[`context.moviesAndTv`]=!0),t.urlBuilder(`{gateway}/v1/suggestions/related-videos`,l)}},u={video(e,n){return{url:t.urlBuilder(`{gateway}/v1/objects/${e}`,{query:r.VIDEO,permissionFilterOption:n}),publicUrl:t.urlBuilder(`/api/objects/${e}`,{query:i.VIDEO,permissionFilterOption:n}),key:`videos:${e}:${n}`}},publicVideo(e,t,n,r){return{url:l.publicVideo(e,t),key:`videos:${e}:public:${t}`,bootstrapName:`shared:object:${e}`,success:n,error:r}},sharedVideo(e,t,n,r){return{url:l.sharedVideo(e,t),key:`shared:video:${e}`,success:n,error:r}},myVideos(e,n){let{VIDEO_COLLECTION:i,CLIP_COLLECTION:c,INTERACTIVE:l}=r,u={query:`(${`videos[${i}]{libraries.typeid:${a.WorkspaceCollection}}`}|${`clips[${c}]`}|${`interactives[${l}]{status:[${o.Published},${o.Draft}]}`}){orderbydesc:id}`,permissionFilterOption:s.StripMetadata};return n&&(u.cursor=n),{url:t.urlBuilder(`{gateway}/v1/objects/${e}/members`,u),key:`my:videos:${n}`}},videos(e,t){return{url:l.getVideosById(e),key:`videos:by:id:${e.join(`,`)}`,success:t}},watchHistoryVideos(e,t){return{url:l.getVideosById(e),key:`watch:history:videos:by:id:${e.join(`,`)}`,success:t}},updateVideo(t,n,r,i,a){return{key:`update:video:${t}`,url:`{gateway}/v1/objects/${t}`,type:e.PUT,data:n,success:r,error:i,always:a}},videoRatings(e,t){let n=e.map(e=>`id=${e}`);if(n.length)return{url:`/api/domain/v2/objects?query=rating&${n.join(`&`)}`,key:`video:ratings:by:id:${e.join(`,`)}`,normalizeOptions:{namespace:t}}},videoMixinAssocs(e,n){if(e.map(e=>`id=${e}`).length)return{url:t.urlBuilder(`{gateway}/v1/objects`,{query:`interactives{limit:100},resources{limit:100},links{limit:100},_hasCurriculumLinks`,id:e}),publicUrl:t.urlBuilder(`/api/objects`,{query:`interactives{limit:100},resources{limit:100},links{limit:100},_hasCurriculumLinks`,id:e}),key:`video:mixin:assocs:${e.join(`,`)}`,normalizeOptions:{namespace:n}}},getRestrictions(e){let t=e.slice().sort();return{url:`/api/domain/v1/restrictedobjects?objectTypeId=${a.Video}${t.map(e=>`&objectId=${e}`).join(``)}`,key:`restrictions:${t.join(`,`)}`,normalizeOptions:{namespace:`domain`,idAttribute:`objectId`}}},delete(t,n,r){return{url:`{gateway}/v1/objects/${t}`,key:`delete:video:${t}`,type:e.DELETE,success:n,error:r,invalidationKeys:[`videos`,`search`]}},deleteBulk(t,n,r,i,a){let o=t.map(e=>`videoIds=${e}`).join(`&`);return{url:`/api/domain/v1/libraries/${n}/videos?${[`categoryId=${r}`,`${o}`].join(`&`)}`,key:`delete:bulk:video:${t.join(`:`)}:${n}:${r}`,type:e.DELETE,success:i,error:a,invalidationKeys:[`videos`,`search`]}},relatedVideos(e){let{videoId:t,context:n,collectionId:r,moviesAndTv:i}=e;return{url:l.relatedVideos(e),key:`related:videos:${t}:${n}:${r}:${i}`}},collectionVideos(e,i,a,c,l,u){let d=n.getVideoSortParam(i),{VIDEO_COLLECTION:f,CLIP_COLLECTION:p,INTERACTIVE:m}=r,h={query:`(${`videos[${f}]`}|${`clips[${p}]`}|${`interactives[${m}]{status:[${o.Published},${o.Draft}]}`})${d?`{${d}}`:``}`,permissionFilterOption:s.FilterOut,...a?{cursor:a}:{}},g=[`folder`,`videos`,e,a,i].filter(e=>!!e).join(`:`);return{url:t.urlBuilder(`{gateway}/v1/objects/${e}/members`,h),key:g,success:c,error:l,always:u}},pointsOfInterest(e,n,r,i,a){let o={query:`{limit:100}`,cursor:n};return{url:t.urlBuilder(`{gateway}/v1/objects/${e}/pointsofinterest`,o),publicUrl:t.urlBuilder(`/api/objects/${e}/pointsofinterest`,o),key:`pointsofinterest:${e}${n?`:${n}`:``}`,success:r,error:i,always:a}},regionAlternatives(e,t,n,r){return{url:`/api/objects/videos/${e}/region-alternatives`,publicUrl:`/api/objects/videos/${e}/region-alternatives`,key:`video:regionAlternatives:${e}`,normalize:!1,success:t,error:n,always:r}}};export{u as t};
|
|
2
|
+
//# sourceMappingURL=DG6L7zHU2.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CKNdXwxe2.chunk.js","names":[],"sources":["../../../../libs/shared/src/enums/RelatedVideosContext.ts","../../../../libs/shared/src/flight-requests/VideoRequests.ts"],"sourcesContent":["export enum RelatedVideosContext {\n Series = 'series',\n Playlist = 'playlist',\n Widget = 'widget',\n Folder = 'category',\n CategoryTree = 'categoryTree'\n}\n","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { Xhr } from 'libs/common/backbone/interfaces/Xhr';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { PublicWithStatement, SharedWithStatements } from 'libs/shared/constants/WithStatements';\nimport { CurationStatus } from 'libs/shared/enums/CurationStatus';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { PermissionFilterOption } from 'libs/shared/enums/PermissionFilterOption';\nimport { RelatedVideosContext } from 'libs/shared/enums/RelatedVideosContext';\nimport { VideoSortType } from 'libs/shared/enums/VideoSortType';\nimport { PointOfInterestCollection, UpdateVideoRequest, Video, VideoCollection } from 'libs/shared/interfaces';\nimport { RegionAlternative } from 'libs/shared/interfaces/models/RegionAlternative';\nimport { VideoSortHelper } from 'libs/shared/utils/VideoSortHelper';\n\nconst endpoints = {\n sharedVideo: (id: string, shareId: string) => UrlHelper.urlBuilder(`/api/objects/${id}`, {\n shareId,\n query: SharedWithStatements.VIDEO\n }),\n\n publicVideo: (id: string, shareId?: string) => UrlHelper.urlBuilder(`/api/objects/${id}`, {\n // Query statement here is coupled with ClickView.Lite.Common\\Services\\OpenGraph\\OpenGraphService.cs\n // in lite. If you update this, please update both.\n query: 'thumbnail,_canBeConsumed,series,season,_rating,libraries{typeId:[17]}',\n permissionFilterOption: PermissionFilterOption.StripMetadata,\n shareId\n }),\n\n getVideosById: (ids: string[]) => {\n return UrlHelper.urlBuilder('{gateway}/v1/objects', {\n 'query.video': SharedWithStatements.VIDEO_COLLECTION,\n 'query.clip': SharedWithStatements.CLIP_COLLECTION,\n 'query.interactive': SharedWithStatements.INTERACTIVE_COLLECTION,\n 'id': ids\n });\n },\n\n relatedVideos: (options: {\n videoId: string,\n context?: RelatedVideosContext,\n collectionId?: string,\n moviesAndTv?: boolean,\n limit: number\n }) => {\n const { videoId, context, collectionId, moviesAndTv, limit } = options;\n\n const params: HashObject = {\n videoId,\n limit,\n query: SharedWithStatements.VIDEO_COLLECTION\n };\n\n if (context) {\n if (context === RelatedVideosContext.Widget) {\n params['context.widgetId'] = collectionId;\n } else {\n params['context.collectionType'] = context;\n params['context.collectionId'] = collectionId;\n }\n }\n\n if (moviesAndTv)\n params['context.moviesAndTv'] = true;\n\n return UrlHelper.urlBuilder('{gateway}/v1/suggestions/related-videos', params);\n }\n};\n\nexport const VideoRequests = {\n video(id: string, permissionFilterOption?: PermissionFilterOption): Flight.PublicRequest {\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/${id}`, {\n query: SharedWithStatements.VIDEO,\n permissionFilterOption\n }),\n publicUrl: UrlHelper.urlBuilder(`/api/objects/${id}`, {\n query: PublicWithStatement.VIDEO,\n permissionFilterOption\n }),\n key: `videos:${id}:${permissionFilterOption}`\n };\n },\n\n publicVideo(\n id: string,\n shareId?: string,\n success?: (video: Video) => void,\n error?: (xhr: Xhr) => void\n ): Flight.Request {\n return {\n url: endpoints.publicVideo(id, shareId),\n key: `videos:${id}:public:${shareId}`,\n bootstrapName: `shared:object:${id}`,\n success,\n error\n };\n },\n\n sharedVideo(\n id: string,\n shareId: string,\n success?: (video: Video) => void,\n error?: (xhr: Xhr) => void\n ): Flight.Request {\n return {\n url: endpoints.sharedVideo(id, shareId),\n key: `shared:video:${id}`,\n success,\n error\n };\n },\n\n myVideos(userId: string, cursor: string): Flight.Request {\n const { VIDEO_COLLECTION, CLIP_COLLECTION, INTERACTIVE } = SharedWithStatements;\n\n const videoQuery = `videos[${VIDEO_COLLECTION}]{libraries.typeid:${MasterType.WorkspaceCollection}}`;\n const clipQuery = `clips[${CLIP_COLLECTION}]`;\n const interactiveQuery = `interactives[${INTERACTIVE}]{status:[${CurationStatus.Published},${CurationStatus.Draft}]}`;\n\n const params: HashObject = {\n query: `(${videoQuery}|${clipQuery}|${interactiveQuery}){orderbydesc:id}`,\n permissionFilterOption: PermissionFilterOption.StripMetadata\n };\n\n if (cursor)\n params.cursor = cursor;\n\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/${userId}/members`, params),\n key: `my:videos:${cursor}`\n };\n },\n\n videos(ids: string[], success?: (videos: Video[]) => void): Flight.Request {\n return {\n url: endpoints.getVideosById(ids),\n key: `videos:by:id:${ids.join(',')}`,\n success\n };\n },\n\n watchHistoryVideos(\n ids: string[],\n success?: (videos: Video[]) => void\n ): Flight.Request {\n return {\n url: endpoints.getVideosById(ids),\n key: `watch:history:videos:by:id:${ids.join(',')}`,\n success\n };\n },\n\n updateVideo(\n id: string,\n data: UpdateVideoRequest,\n success?: () => void,\n error?: () => void,\n always?: () => void\n ): Flight.Request {\n return {\n key: `update:video:${id}`,\n url: `{gateway}/v1/objects/${id}`,\n type: HttpVerbs.PUT,\n data,\n success,\n error,\n always\n };\n },\n\n /**\n * This is simply an example to show the prototype for useVideoMixin\n * eventually there will be endpoints in domain that let us fetch members\n * without fetching the objects properties, so we can fetch stuff like\n * hasInteractives and isFavourited as subsequent calls\n */\n videoRatings(ids: string[], namespace?: string): Flight.Request {\n const params = ids.map(i => `id=${i}`);\n\n if (!params.length)\n return;\n\n return {\n url: `/api/domain/v2/objects?query=rating&${params.join('&')}`,\n key: `video:ratings:by:id:${ids.join(',')}`,\n normalizeOptions: {\n namespace\n }\n };\n },\n\n videoMixinAssocs(ids: string[], namespace?: string): Flight.PublicRequest {\n const params = ids.map(i => `id=${i}`);\n\n if (!params.length)\n return;\n\n /**\n * IMPORTANT!\n * \n * This request is used for BOTH clips and videos. This means these requests will fail if you\n * add assocs in the future that are not supported for both object types. If you find yourself in this\n * case, what you should do is:\n * \n * 1. Consider whether clips should support the assoc that you're hydrating for videos. In most cases,\n * I think they should, as we want clips and videos to basically support the same fields and metadata.\n * 2. If the above is false or can't be done right now, you will need to create a separate request for clips\n * and update the logic in useVideoMixin to handle this.\n */\n return {\n url: UrlHelper.urlBuilder('{gateway}/v1/objects', {\n query: 'interactives{limit:100},resources{limit:100},links{limit:100},_hasCurriculumLinks',\n id: ids\n }),\n publicUrl: UrlHelper.urlBuilder(`/api/objects`, {\n query: 'interactives{limit:100},resources{limit:100},links{limit:100},_hasCurriculumLinks',\n id: ids\n }),\n /**\n * We are intentionally NOT sorting the IDs here. This is because `useVideoMixin` wants to provide\n * the IDs in their original order so that the cache key here doesn't change for subsequent calls.\n * \n * Here is an example of a problem that would occur if we were sorting: say we search for something,\n * and load the first page of 25 results. The videos and clips here would have their IDs sorted in the cache\n * key, then fetched. Then, we scrolled down and fetched the next 25, leading to 50 IDs in the array. If we\n * sort the IDs in the key, the keys would change from the first request, leading to all of the videos/clips\n * from the first request being fetched a second time unnecessarily. Every time you'd fetch a new page, you'd\n * be making multiple unnecessary API calls.\n * \n * TL;DR: Don't sort the IDs here, `useVideoMixin` will handle that.\n */\n key: `video:mixin:assocs:${ids.join(',')}`,\n normalizeOptions: {\n namespace\n }\n };\n },\n\n getRestrictions(videoIds: string[]): Flight.Request {\n const sortedIds = videoIds.slice().sort();\n\n return {\n url: '/api/domain/v1/restrictedobjects' +\n `?objectTypeId=${MasterType.Video}${sortedIds.map(id => `&objectId=${id}`).join('')}`,\n key: `restrictions:${sortedIds.join(',')}`,\n normalizeOptions: {\n namespace: 'domain',\n idAttribute: 'objectId'\n }\n };\n },\n\n delete(videoId: string, success?: () => void, error?: () => void): Flight.Request {\n return {\n url: `{gateway}/v1/objects/${videoId}`,\n key: `delete:video:${videoId}`,\n type: HttpVerbs.DELETE,\n success,\n error,\n invalidationKeys: [ 'videos', 'search' ]\n };\n },\n\n deleteBulk(\n videoId: string[],\n libraryId: string,\n categoryId: string,\n success?: () => void,\n error?: () => void\n ): Flight.Request {\n const videoIds = videoId.map(id => `videoIds=${id}`).join('&');\n const params = [\n `categoryId=${categoryId}`,\n `${videoIds}`\n ].join('&');\n\n return {\n url: `/api/domain/v1/libraries/${libraryId}/videos?${params}`,\n key: `delete:bulk:video:${videoId.join(':')}:${libraryId}:${categoryId}`,\n type: HttpVerbs.DELETE,\n success,\n error,\n invalidationKeys: [ 'videos', 'search' ]\n };\n },\n\n relatedVideos(options: {\n videoId: string,\n context?: RelatedVideosContext,\n collectionId?: string,\n moviesAndTv?: boolean,\n /**\n * This limit is intentionall not in the key. See useGetRelatedVideos for an explanation\n */\n limit: number\n }): Flight.Request {\n const { videoId, context, collectionId, moviesAndTv } = options;\n\n return {\n url: endpoints.relatedVideos(options),\n key: `related:videos:${videoId}:${context}:${collectionId}:${moviesAndTv}`\n };\n },\n\n collectionVideos(\n collectionId: string,\n sort?: VideoSortType,\n cursor?: string,\n success?: (data: VideoCollection) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n const sortFilter = VideoSortHelper.getVideoSortParam(sort);\n const { VIDEO_COLLECTION, CLIP_COLLECTION, INTERACTIVE } = SharedWithStatements;\n\n const videoQuery = `videos[${VIDEO_COLLECTION}]`;\n const clipQuery = `clips[${CLIP_COLLECTION}]`;\n const interactiveQuery = `interactives[${INTERACTIVE}]{status:[${CurationStatus.Published},${CurationStatus.Draft}]}`;\n\n const params: HashObject = {\n query: `(${videoQuery}|${clipQuery}|${interactiveQuery})${sortFilter ? `{${sortFilter}}` : ''}`,\n permissionFilterOption: PermissionFilterOption.FilterOut,\n ...(cursor ? { cursor } : {})\n };\n\n const key = [ 'folder', 'videos', collectionId, cursor, sort ].filter(k => !!k).join(':');\n\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/${collectionId}/members`, params),\n key,\n success,\n error,\n always\n };\n },\n\n pointsOfInterest(\n videoId: string,\n cursor?: string,\n success?: (data: PointOfInterestCollection) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.PublicRequest {\n const queryStringObj = { query: '{limit:100}', cursor };\n\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/${videoId}/pointsofinterest`, queryStringObj),\n publicUrl: UrlHelper.urlBuilder(`/api/objects/${videoId}/pointsofinterest`, queryStringObj),\n key: `pointsofinterest:${videoId}${cursor ? `:${cursor}` : ''}`,\n success,\n error,\n always\n };\n },\n\n regionAlternatives(\n videoId: string,\n success?: (data: RegionAlternative[]) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.PublicRequest {\n return {\n url: `/api/objects/videos/${videoId}/region-alternatives`,\n publicUrl: `/api/objects/videos/${videoId}/region-alternatives`,\n key: `video:regionAlternatives:${videoId}`,\n normalize: false,\n success,\n error,\n always\n };\n }\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DG6L7zHU2.chunk.js","names":[],"sources":["../../../../libs/shared/src/enums/RelatedVideosContext.ts","../../../../libs/shared/src/flight-requests/VideoRequests.ts"],"sourcesContent":["export enum RelatedVideosContext {\n Series = 'series',\n Playlist = 'playlist',\n Widget = 'widget',\n Folder = 'category',\n CategoryTree = 'categoryTree'\n}\n","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { Xhr } from 'libs/common/backbone/interfaces/Xhr';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { PublicWithStatement, SharedWithStatements } from 'libs/shared/constants/WithStatements';\nimport { CurationStatus } from 'libs/shared/enums/CurationStatus';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { PermissionFilterOption } from 'libs/shared/enums/PermissionFilterOption';\nimport { RelatedVideosContext } from 'libs/shared/enums/RelatedVideosContext';\nimport { VideoSortType } from 'libs/shared/enums/VideoSortType';\nimport { PointOfInterestCollection, UpdateVideoRequest, Video, VideoCollection } from 'libs/shared/interfaces';\nimport { RegionAlternative } from 'libs/shared/interfaces/models/RegionAlternative';\nimport { VideoSortHelper } from 'libs/shared/utils/VideoSortHelper';\n\nconst endpoints = {\n sharedVideo: (id: string, shareId: string) => UrlHelper.urlBuilder(`/api/objects/${id}`, {\n shareId,\n query: SharedWithStatements.VIDEO\n }),\n\n publicVideo: (id: string, shareId?: string) => UrlHelper.urlBuilder(`/api/objects/${id}`, {\n // Query statement here is coupled with ClickView.Lite.Common\\Services\\OpenGraph\\OpenGraphService.cs\n // in lite. If you update this, please update both.\n query: 'thumbnail,_canBeConsumed,series,season,_rating,libraries{typeId:[17]}',\n permissionFilterOption: PermissionFilterOption.StripMetadata,\n shareId\n }),\n\n getVideosById: (ids: string[]) => {\n return UrlHelper.urlBuilder('{gateway}/v1/objects', {\n 'query.video': SharedWithStatements.VIDEO_COLLECTION,\n 'query.clip': SharedWithStatements.CLIP_COLLECTION,\n 'query.interactive': SharedWithStatements.INTERACTIVE_COLLECTION,\n 'id': ids\n });\n },\n\n relatedVideos: (options: {\n videoId: string,\n context?: RelatedVideosContext,\n collectionId?: string,\n moviesAndTv?: boolean,\n limit: number\n }) => {\n const { videoId, context, collectionId, moviesAndTv, limit } = options;\n\n const params: HashObject = {\n videoId,\n limit,\n query: SharedWithStatements.VIDEO_COLLECTION\n };\n\n if (context) {\n if (context === RelatedVideosContext.Widget) {\n params['context.widgetId'] = collectionId;\n } else {\n params['context.collectionType'] = context;\n params['context.collectionId'] = collectionId;\n }\n }\n\n if (moviesAndTv)\n params['context.moviesAndTv'] = true;\n\n return UrlHelper.urlBuilder('{gateway}/v1/suggestions/related-videos', params);\n }\n};\n\nexport const VideoRequests = {\n video(id: string, permissionFilterOption?: PermissionFilterOption): Flight.PublicRequest {\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/${id}`, {\n query: SharedWithStatements.VIDEO,\n permissionFilterOption\n }),\n publicUrl: UrlHelper.urlBuilder(`/api/objects/${id}`, {\n query: PublicWithStatement.VIDEO,\n permissionFilterOption\n }),\n key: `videos:${id}:${permissionFilterOption}`\n };\n },\n\n publicVideo(\n id: string,\n shareId?: string,\n success?: (video: Video) => void,\n error?: (xhr: Xhr) => void\n ): Flight.Request {\n return {\n url: endpoints.publicVideo(id, shareId),\n key: `videos:${id}:public:${shareId}`,\n bootstrapName: `shared:object:${id}`,\n success,\n error\n };\n },\n\n sharedVideo(\n id: string,\n shareId: string,\n success?: (video: Video) => void,\n error?: (xhr: Xhr) => void\n ): Flight.Request {\n return {\n url: endpoints.sharedVideo(id, shareId),\n key: `shared:video:${id}`,\n success,\n error\n };\n },\n\n myVideos(userId: string, cursor: string): Flight.Request {\n const { VIDEO_COLLECTION, CLIP_COLLECTION, INTERACTIVE } = SharedWithStatements;\n\n const videoQuery = `videos[${VIDEO_COLLECTION}]{libraries.typeid:${MasterType.WorkspaceCollection}}`;\n const clipQuery = `clips[${CLIP_COLLECTION}]`;\n const interactiveQuery = `interactives[${INTERACTIVE}]{status:[${CurationStatus.Published},${CurationStatus.Draft}]}`;\n\n const params: HashObject = {\n query: `(${videoQuery}|${clipQuery}|${interactiveQuery}){orderbydesc:id}`,\n permissionFilterOption: PermissionFilterOption.StripMetadata\n };\n\n if (cursor)\n params.cursor = cursor;\n\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/${userId}/members`, params),\n key: `my:videos:${cursor}`\n };\n },\n\n videos(ids: string[], success?: (videos: Video[]) => void): Flight.Request {\n return {\n url: endpoints.getVideosById(ids),\n key: `videos:by:id:${ids.join(',')}`,\n success\n };\n },\n\n watchHistoryVideos(\n ids: string[],\n success?: (videos: Video[]) => void\n ): Flight.Request {\n return {\n url: endpoints.getVideosById(ids),\n key: `watch:history:videos:by:id:${ids.join(',')}`,\n success\n };\n },\n\n updateVideo(\n id: string,\n data: UpdateVideoRequest,\n success?: () => void,\n error?: () => void,\n always?: () => void\n ): Flight.Request {\n return {\n key: `update:video:${id}`,\n url: `{gateway}/v1/objects/${id}`,\n type: HttpVerbs.PUT,\n data,\n success,\n error,\n always\n };\n },\n\n /**\n * This is simply an example to show the prototype for useVideoMixin\n * eventually there will be endpoints in domain that let us fetch members\n * without fetching the objects properties, so we can fetch stuff like\n * hasInteractives and isFavourited as subsequent calls\n */\n videoRatings(ids: string[], namespace?: string): Flight.Request {\n const params = ids.map(i => `id=${i}`);\n\n if (!params.length)\n return;\n\n return {\n url: `/api/domain/v2/objects?query=rating&${params.join('&')}`,\n key: `video:ratings:by:id:${ids.join(',')}`,\n normalizeOptions: {\n namespace\n }\n };\n },\n\n videoMixinAssocs(ids: string[], namespace?: string): Flight.PublicRequest {\n const params = ids.map(i => `id=${i}`);\n\n if (!params.length)\n return;\n\n /**\n * IMPORTANT!\n * \n * This request is used for BOTH clips and videos. This means these requests will fail if you\n * add assocs in the future that are not supported for both object types. If you find yourself in this\n * case, what you should do is:\n * \n * 1. Consider whether clips should support the assoc that you're hydrating for videos. In most cases,\n * I think they should, as we want clips and videos to basically support the same fields and metadata.\n * 2. If the above is false or can't be done right now, you will need to create a separate request for clips\n * and update the logic in useVideoMixin to handle this.\n */\n return {\n url: UrlHelper.urlBuilder('{gateway}/v1/objects', {\n query: 'interactives{limit:100},resources{limit:100},links{limit:100},_hasCurriculumLinks',\n id: ids\n }),\n publicUrl: UrlHelper.urlBuilder(`/api/objects`, {\n query: 'interactives{limit:100},resources{limit:100},links{limit:100},_hasCurriculumLinks',\n id: ids\n }),\n /**\n * We are intentionally NOT sorting the IDs here. This is because `useVideoMixin` wants to provide\n * the IDs in their original order so that the cache key here doesn't change for subsequent calls.\n * \n * Here is an example of a problem that would occur if we were sorting: say we search for something,\n * and load the first page of 25 results. The videos and clips here would have their IDs sorted in the cache\n * key, then fetched. Then, we scrolled down and fetched the next 25, leading to 50 IDs in the array. If we\n * sort the IDs in the key, the keys would change from the first request, leading to all of the videos/clips\n * from the first request being fetched a second time unnecessarily. Every time you'd fetch a new page, you'd\n * be making multiple unnecessary API calls.\n * \n * TL;DR: Don't sort the IDs here, `useVideoMixin` will handle that.\n */\n key: `video:mixin:assocs:${ids.join(',')}`,\n normalizeOptions: {\n namespace\n }\n };\n },\n\n getRestrictions(videoIds: string[]): Flight.Request {\n const sortedIds = videoIds.slice().sort();\n\n return {\n url: '/api/domain/v1/restrictedobjects' +\n `?objectTypeId=${MasterType.Video}${sortedIds.map(id => `&objectId=${id}`).join('')}`,\n key: `restrictions:${sortedIds.join(',')}`,\n normalizeOptions: {\n namespace: 'domain',\n idAttribute: 'objectId'\n }\n };\n },\n\n delete(videoId: string, success?: () => void, error?: () => void): Flight.Request {\n return {\n url: `{gateway}/v1/objects/${videoId}`,\n key: `delete:video:${videoId}`,\n type: HttpVerbs.DELETE,\n success,\n error,\n invalidationKeys: [ 'videos', 'search' ]\n };\n },\n\n deleteBulk(\n videoId: string[],\n libraryId: string,\n categoryId: string,\n success?: () => void,\n error?: () => void\n ): Flight.Request {\n const videoIds = videoId.map(id => `videoIds=${id}`).join('&');\n const params = [\n `categoryId=${categoryId}`,\n `${videoIds}`\n ].join('&');\n\n return {\n url: `/api/domain/v1/libraries/${libraryId}/videos?${params}`,\n key: `delete:bulk:video:${videoId.join(':')}:${libraryId}:${categoryId}`,\n type: HttpVerbs.DELETE,\n success,\n error,\n invalidationKeys: [ 'videos', 'search' ]\n };\n },\n\n relatedVideos(options: {\n videoId: string,\n context?: RelatedVideosContext,\n collectionId?: string,\n moviesAndTv?: boolean,\n /**\n * This limit is intentionall not in the key. See useGetRelatedVideos for an explanation\n */\n limit: number\n }): Flight.Request {\n const { videoId, context, collectionId, moviesAndTv } = options;\n\n return {\n url: endpoints.relatedVideos(options),\n key: `related:videos:${videoId}:${context}:${collectionId}:${moviesAndTv}`\n };\n },\n\n collectionVideos(\n collectionId: string,\n sort?: VideoSortType,\n cursor?: string,\n success?: (data: VideoCollection) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n const sortFilter = VideoSortHelper.getVideoSortParam(sort);\n const { VIDEO_COLLECTION, CLIP_COLLECTION, INTERACTIVE } = SharedWithStatements;\n\n const videoQuery = `videos[${VIDEO_COLLECTION}]`;\n const clipQuery = `clips[${CLIP_COLLECTION}]`;\n const interactiveQuery = `interactives[${INTERACTIVE}]{status:[${CurationStatus.Published},${CurationStatus.Draft}]}`;\n\n const params: HashObject = {\n query: `(${videoQuery}|${clipQuery}|${interactiveQuery})${sortFilter ? `{${sortFilter}}` : ''}`,\n permissionFilterOption: PermissionFilterOption.FilterOut,\n ...(cursor ? { cursor } : {})\n };\n\n const key = [ 'folder', 'videos', collectionId, cursor, sort ].filter(k => !!k).join(':');\n\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/${collectionId}/members`, params),\n key,\n success,\n error,\n always\n };\n },\n\n pointsOfInterest(\n videoId: string,\n cursor?: string,\n success?: (data: PointOfInterestCollection) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.PublicRequest {\n const queryStringObj = { query: '{limit:100}', cursor };\n\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/${videoId}/pointsofinterest`, queryStringObj),\n publicUrl: UrlHelper.urlBuilder(`/api/objects/${videoId}/pointsofinterest`, queryStringObj),\n key: `pointsofinterest:${videoId}${cursor ? `:${cursor}` : ''}`,\n success,\n error,\n always\n };\n },\n\n regionAlternatives(\n videoId: string,\n success?: (data: RegionAlternative[]) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.PublicRequest {\n return {\n url: `/api/objects/videos/${videoId}/region-alternatives`,\n publicUrl: `/api/objects/videos/${videoId}/region-alternatives`,\n key: `video:regionAlternatives:${videoId}`,\n normalize: false,\n success,\n error,\n always\n };\n }\n};\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{C as e,D as t,St as n,b as r,d as i,s as a,wt as o}from"./CnnBLBPY.chunk.js";import{g as s,n as c}from"./DW0w8_XN.chunk.js";import{t as l}from"./GN6vNflP.chunk.js";import{n as u,t as d}from"./Dn3hwC-o.chunk.js";import{I as f,S as p}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{C as e,D as t,St as n,b as r,d as i,s as a,wt as o}from"./CnnBLBPY.chunk.js";import{g as s,n as c}from"./DW0w8_XN.chunk.js";import{t as l}from"./GN6vNflP.chunk.js";import{n as u,t as d}from"./Dn3hwC-o.chunk.js";import{I as f,S as p}from"./app-BGxmHvGl.js";import{t as m}from"./DSZkTUVU.chunk.js";import{t as h}from"./BcJCL8cu2.chunk.js";import{n as g}from"./C6jF43q92.chunk.js";t();var _=e(),v=`tv.infoAlert`;function y(e){return(0,_.jsx)(`div`,{className:`mb-3`,children:(0,_.jsx)(`div`,{children:e.dateRange&&(0,_.jsx)(_.Fragment,{children:(0,_.jsx)(s,{appLink:{application:u.TV,action:d.Tv.BROADCAST_CONTENT,args:[e.region?.code]},className:`text-info`,children:(0,_.jsxs)(`p`,{className:`fw-semibold mb-0 me-2`,children:[(0,_.jsx)(f,{namespace:v,phrase:`programsAvailable`}),g.getFormattedDateRange(h(e.dateRange.startDate,e.dateRange.timeZone),h(e.dateRange.endDate,e.dateRange.timeZone))]})})})})})}var b=`tv.tvTabs`,x=l.encloseNamespace(b),S={channels:{application:u.TV,action:d.Tv.CHANNELS},programs:{application:u.TV,action:d.Tv.PROGRAMS}},C={actionType:r.Click,entity:a.Url,location:i.MagicTabs};function w(e){let{active:t,currentRegion:r}=e,i=[{name:x(`channels`),appLink:{...S.channels,args:[r?.code]},active:t===`channels`,analyticsData:{name:x(`channels`),url:n.getHref(S.channels)},analyticsOptions:C},{name:x(`programs`),appLink:{...S.programs,args:[r?.code]},active:t===`programs`,analyticsData:{name:l.getPhrase(b,`programs`),url:n.getHref(S.programs)},analyticsOptions:C}];return e.showTvGuide&&e.config&&i.push({name:x(`tvGuide`),active:!1,analyticsOptions:C,svg:p,svgSize:c.Small,onSelect:()=>o.PageLoad(`${e.config.onlineUrl}/login?returnUrl=/tv/guide`,!0)}),(0,_.jsx)(`div`,{className:`mb-3`,children:(0,_.jsx)(m,{tabs:i})})}export{y as n,w as t};
|
|
2
|
+
//# sourceMappingURL=DKz4jhnr2.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"DKz4jhnr2.chunk.js","names":[],"sources":["../../src/apps/tv/components/tv-info-alert/TvInfoAlert.tsx","../../src/apps/tv/components/tv-tabs/TvTabs.tsx"],"sourcesContent":["import React from 'react';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Text } from 'libs/shared/components/text/Text';\n\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nimport { TvDateRange, TvRegion } from 'apps/tv/interfaces/models/TvRegion';\nimport { toLocalTime } from 'apps/tv/utils/toLocalTime';\nimport { TvUtils } from 'apps/tv/utils/TvUtils';\n\nconst namespace = 'tv.infoAlert';\n\ninterface TvInfoAlertProps {\n dateRange: TvDateRange;\n region: TvRegion;\n}\n\nexport function TvInfoAlert(props: TvInfoAlertProps) {\n return (\n <div className='mb-3'>\n <div>\n {props.dateRange && (\n <>\n <AppLink\n appLink={{\n application: AppChannels.TV,\n action: Actions.Tv.BROADCAST_CONTENT,\n args: [props.region?.code]\n }}\n className='text-info'\n >\n <p className='fw-semibold mb-0 me-2'>\n <Text namespace={namespace} phrase='programsAvailable' />\n {TvUtils.getFormattedDateRange(\n toLocalTime(props.dateRange.startDate, props.dateRange.timeZone),\n toLocalTime(props.dateRange.endDate, props.dateRange.timeZone)\n )}\n </p>\n </AppLink>\n </>\n )}\n </div>\n </div>\n );\n}\n","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { PillTab, PillTabSelector } from 'libs/shared/components/pill-tab-selector/PillTabSelector';\nimport { SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { NewWindowSvg } from 'libs/shared/images/svg/actions/NewWindowSvg';\nimport { Config } from 'libs/shared/interfaces';\n\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nimport { TvRegion } from 'apps/tv/interfaces/models/TvRegion';\n\nconst namespace = 'tv.tvTabs';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst APP_LINKS = {\n channels: {\n application: AppChannels.TV,\n action: Actions.Tv.CHANNELS\n },\n programs: {\n application: AppChannels.TV,\n action: Actions.Tv.PROGRAMS\n }\n};\n\nconst ANALYTICS_OPTIONS = {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n};\n\ninterface TvTabs {\n active: 'channels' | 'programs' | null;\n currentRegion: TvRegion;\n showTvGuide: boolean;\n config: Config;\n}\n\nexport function TvTabs(props: TvTabs): JSX.Element {\n const { active, currentRegion } = props;\n\n const tabs: PillTab[] = [{\n name: getPhrase('channels'),\n appLink: {\n ...APP_LINKS.channels,\n args: [currentRegion?.code]\n },\n active: active === 'channels',\n analyticsData: {\n name: getPhrase('channels'),\n url: Core.AppLinkHelper.getHref(APP_LINKS.channels)\n },\n analyticsOptions: ANALYTICS_OPTIONS\n }, {\n name: getPhrase('programs'),\n appLink: {\n ...APP_LINKS.programs,\n args: [currentRegion?.code]\n },\n active: active === 'programs',\n analyticsData: {\n name: LanguageService.getPhrase(namespace, 'programs'),\n url: Core.AppLinkHelper.getHref(APP_LINKS.programs)\n },\n analyticsOptions: ANALYTICS_OPTIONS\n }];\n\n if (props.showTvGuide && props.config) {\n tabs.push({\n name: getPhrase('tvGuide'),\n active: false,\n analyticsOptions: ANALYTICS_OPTIONS,\n svg: NewWindowSvg,\n svgSize: SvgContainerSize.Small,\n onSelect: () => Core.LocationUtils.PageLoad(`${props.config.onlineUrl}/login?returnUrl=/tv/guide`, true)\n });\n }\n\n return (\n <div className='mb-3'>\n <PillTabSelector tabs={tabs} />\n </div>\n );\n}\n"],"mappings":"+YAYM,EAAY,eAOlB,SAAgB,EAAY,EAAyB,CACnD,OACE,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,iBACb,EAAA,EAAA,KAAC,MAAD,CAAA,SACG,EAAM,YACL,EAAA,EAAA,KAAA,EAAA,SAAA,CAAA,UACE,EAAA,EAAA,KAAC,EAAD,CACE,QAAS,CACP,YAAa,EAAY,GACzB,OAAQ,EAAQ,GAAG,kBACnB,KAAM,CAAC,EAAM,QAAQ,KAAK,CAC3B,CACD,UAAU,sBAEV,EAAA,EAAA,MAAC,IAAD,CAAG,UAAU,iCAAb,EACE,EAAA,EAAA,KAAC,EAAD,CAAiB,UAAA,EAAW,OAAO,oBAAsB,CAAA,CACxD,EAAQ,sBACP,EAAY,EAAM,UAAU,UAAW,EAAM,UAAU,SAAS,CAChE,EAAY,EAAM,UAAU,QAAS,EAAM,UAAU,SAAS,CAC/D,CACC,GACI,CAAA,CACT,CAAA,CAED,CAAA,CACF,CAAA,CC3BV,IAAM,EAAY,YACZ,EAAY,EAAgB,iBAAiB,EAAU,CAEvD,EAAY,CAChB,SAAU,CACR,YAAa,EAAY,GACzB,OAAQ,EAAQ,GAAG,SACpB,CACD,SAAU,CACR,YAAa,EAAY,GACzB,OAAQ,EAAQ,GAAG,UAEtB,CAEK,EAAoB,CACxB,WAAY,EAAW,MACvB,OAAQ,EAAW,IACnB,SAAU,EAAgB,UAC3B,CASD,SAAgB,EAAO,EAA4B,CACjD,GAAM,CAAE,SAAQ,iBAAkB,EAE5B,EAAkB,CAAC,CACvB,KAAM,EAAU,WAAW,CAC3B,QAAS,CACP,GAAG,EAAU,SACb,KAAM,CAAC,GAAe,KAAA,CACvB,CACD,OAAQ,IAAW,WACnB,cAAe,CACb,KAAM,EAAU,WAAW,CAC3B,IAAA,EAAwB,QAAQ,EAAU,SAAA,CAC3C,CACD,iBAAkB,EACnB,CAAE,CACD,KAAM,EAAU,WAAW,CAC3B,QAAS,CACP,GAAG,EAAU,SACb,KAAM,CAAC,GAAe,KAAA,CACvB,CACD,OAAQ,IAAW,WACnB,cAAe,CACb,KAAM,EAAgB,UAAU,EAAW,WAAW,CACtD,IAAA,EAAwB,QAAQ,EAAU,SAAA,CAC3C,CACD,iBAAkB,EACnB,CAAC,CAaF,OAXI,EAAM,aAAe,EAAM,QAC7B,EAAK,KAAK,CACR,KAAM,EAAU,UAAU,CAC1B,OAAQ,GACR,iBAAkB,EAClB,IAAK,EACL,QAAS,EAAiB,MAC1B,aAAA,EAAmC,SAAS,GAAG,EAAM,OAAO,UAAU,4BAA6B,GAAA,CACpG,CAAC,EAIF,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,iBACb,EAAA,EAAA,KAAC,EAAD,CAAuB,OAAQ,CAAA,CAC3B,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{C as e,D as t,St as n,mn as r,t as i}from"./CnnBLBPY.chunk.js";import{_ as a,g as o,t as s}from"./DW0w8_XN.chunk.js";import{T as c}from"./app-
|
|
1
|
+
import{C as e,D as t,St as n,mn as r,t as i}from"./CnnBLBPY.chunk.js";import{_ as a,g as o,t as s}from"./DW0w8_XN.chunk.js";import{T as c}from"./app-BGxmHvGl.js";import{n as l,t as u}from"./CXtVyCmH.chunk.js";var d={pillTabSelector:`_pillTabSelector_a6f6x_1`,tab:`_tab_a6f6x_4`,minWidth:`_minWidth_a6f6x_21`,radiusSmall:`_radiusSmall_a6f6x_24`,tabLink:`_tabLink_a6f6x_35`},f=r(t()),p=e();function m(e){return(0,p.jsxs)(p.Fragment,{children:[!!e.tab.svg&&(0,p.jsx)(`div`,{className:e.tab.name?`pe-1`:``,children:(0,p.jsx)(s,{svg:e.tab.svg,size:e.tab.svgSize})}),e.formatDisplayText?.(e.tab.name)??e.tab.name,typeof e.tab.count==`number`&&(0,p.jsx)(`div`,{className:`ps-2`,children:(0,p.jsx)(u,{type:l.Count,data:e.tab.count})})]})}function h(e){let{borderRadius:t=`lg`}=e,r=c();function s(e){e.analyticsData&&e.analyticsOptions&&i.logUserAction(e.analyticsData,e.analyticsOptions)}function l(e){e.active||!e.onSelect||(e.onSelect(),s(e))}function u(t){let r=t.target.value,i=e.tabs.find(e=>e.name===r);!i||i.active||(s(i),n.trigger(i.appLink))}let h=e.tabs.find(e=>e.active),g=e.forceSmallScreenDropdown||e.enableSmallScreenSupport&&(r.sm||r.xs);return(0,p.jsxs)(`nav`,{className:e.className??``,children:[g&&(0,p.jsx)(`select`,{className:`form-select`,onChange:u,value:h?.name,style:{minWidth:`150px`},children:e.tabs.map((t,n)=>t.hide?(0,p.jsx)(f.Fragment,{},n):(0,p.jsx)(`option`,{value:t.name,children:e.formatDisplayText?.(t.name)??t.name},n))}),!g&&(0,p.jsx)(`ul`,{className:`
|
|
2
2
|
list-unstyled d-inline-block m-0 ${d.pillTabSelector}
|
|
3
3
|
${t?d.radiusSmall:``}
|
|
4
4
|
${e.listClassName}
|
|
@@ -12,4 +12,4 @@ import{C as e,D as t,St as n,mn as r,t as i}from"./CnnBLBPY.chunk.js";import{_ a
|
|
|
12
12
|
cursor-pointer d-flex align-items-center justify-content-center
|
|
13
13
|
text-decoration-none text-reset px-2 text-nowrap ${d.tabLink}
|
|
14
14
|
`,onClick:()=>l(t),children:(0,p.jsx)(m,{tab:t,formatDisplayText:e.formatDisplayText})})},n))})]})}export{h as t};
|
|
15
|
-
//# sourceMappingURL=
|
|
15
|
+
//# sourceMappingURL=DSZkTUVU.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"DSZkTUVU.chunk.js","names":[],"sources":["../../../../libs/shared/src/components/pill-tab-selector/pill-tab-selector.module.scss","../../../../libs/shared/src/components/pill-tab-selector/PillTabSelector.tsx"],"sourcesContent":[":local {\n $pill-tab-min-width: 7rem;\n\n .pillTabSelector {\n border-radius: $border-radius-lg;\n\n .tab {\n border-radius: 0;\n\n &:first-child {\n border-top-left-radius: $border-radius-lg;\n border-bottom-left-radius: $border-radius-lg;\n }\n\n &:last-child {\n border-top-right-radius: $border-radius-lg;\n border-bottom-right-radius: $border-radius-lg;\n }\n\n &:not(:first-child) {\n border-left: none;\n }\n\n &:not(:last-child) {\n border-right: none;\n }\n\n &.minWidth {\n min-width: $pill-tab-min-width;\n }\n }\n\n &.radiusSmall {\n border-radius: $border-radius;\n\n li {\n &:first-child {\n border-top-left-radius: $border-radius;\n border-bottom-left-radius: $border-radius;\n }\n \n &:last-child {\n border-top-right-radius: $border-radius;\n border-bottom-right-radius: $border-radius;\n }\n }\n }\n\n .tabLink {\n padding-top: $input-btn-padding-y;\n padding-bottom: $input-btn-padding-y;\n }\n }\n}","import React from 'react';\n\nimport { AppLinkHelper } from 'libs/common/backbone/core';\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Badge, BadgeType } from 'libs/shared/components/badges/Badge';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { SvgIcon } from 'libs/shared/utils/SvgHelper';\n\nimport { SvgContainer, SvgContainerSize } from '../svg-container/SvgContainer';\n\nimport styles from './pill-tab-selector.module.scss';\n\ninterface TabContentsProps {\n tab: PillTab;\n formatDisplayText?: (name: string) => string;\n}\n\nfunction TabContents(props: TabContentsProps): JSX.Element {\n return (\n <>\n {!!props.tab.svg && (\n <div className={props.tab.name ? 'pe-1' : ''}>\n <SvgContainer svg={props.tab.svg} size={props.tab.svgSize} />\n </div>\n )}\n\n {props.formatDisplayText?.(props.tab.name) ?? props.tab.name}\n\n {typeof (props.tab.count) === 'number' && (\n <div className='ps-2'>\n <Badge type={BadgeType.Count} data={props.tab.count} />\n </div>\n )}\n </>\n );\n}\n\nexport interface PillTab {\n name: string;\n active: boolean;\n svg?: SvgIcon;\n svgSize?: SvgContainerSize;\n\n className?: string;\n\n appLink?: Core.AppLink;\n onSelect?: () => void;\n\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n\n count?: number;\n\n hide?: boolean;\n}\n\ninterface PillTabSelectorProps {\n tabs: PillTab[];\n listClassName?: string;\n className?: string;\n borderRadius?: 'sm' | 'lg';\n enableSmallScreenSupport?: boolean;\n formatDisplayText?: (name: string) => string;\n forceSmallScreenDropdown?: boolean;\n}\n\nexport function PillTabSelector(props: PillTabSelectorProps): JSX.Element {\n const { borderRadius = 'lg' } = props;\n \n const breakpoints = useBreakpoints();\n \n function logAnalytics(tab: PillTab): void {\n if (tab.analyticsData && tab.analyticsOptions)\n AnalyticsHelper.logUserAction(tab.analyticsData, tab.analyticsOptions);\n }\n \n function onSelectTab(tab: PillTab): void {\n if (tab.active || !tab.onSelect)\n return;\n\n tab.onSelect();\n\n logAnalytics(tab);\n }\n\n function onChangeSelect(event: React.ChangeEvent<HTMLSelectElement>): void {\n const value = event.target.value;\n const tab = props.tabs.find(tab => tab.name === value);\n if (!tab || tab.active)\n return;\n \n logAnalytics(tab);\n AppLinkHelper.trigger(tab.appLink);\n }\n\n const selectedTab = props.tabs.find(tab => tab.active);\n const showSelectDropdown = props.forceSmallScreenDropdown\n || (props.enableSmallScreenSupport && (breakpoints.sm || breakpoints.xs));\n\n return (\n <nav className={props.className ?? ''}>\n {showSelectDropdown && (\n <select className='form-select' onChange={onChangeSelect} value={selectedTab?.name} style={{ minWidth: '150px' }}>\n {props.tabs.map((tab, index) => {\n if (tab.hide)\n return <React.Fragment key={index}/>;\n\n return (\n <option\n key={index}\n value={tab.name}>\n {props.formatDisplayText?.(tab.name) ?? tab.name}\n </option>\n );\n })}\n </select>\n )}\n \n {!showSelectDropdown && (\n <ul className={`\n list-unstyled d-inline-block m-0 ${styles.pillTabSelector}\n ${borderRadius ? styles.radiusSmall : ''}\n ${props.listClassName}\n `}>\n {props.tabs.map((tab, index) => {\n if (tab.hide)\n return <React.Fragment key={index}/>;\n \n return (\n <li\n className={`\n p-0 ${styles.tab} ${tab.active ? 'btn btn-dark' : 'btn btn-outline-dark'}\n ${tab.name ? styles.minWidth : ''} ${tab.className}\n `}\n key={index}\n >\n {tab.appLink ? (\n <AppLink\n appLink={tab.appLink}\n analyticsData={tab.analyticsData}\n analyticsOptions={tab.analyticsOptions}\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ${styles.tabLink}\n `}\n >\n <TabContents tab={tab} formatDisplayText={props.formatDisplayText} />\n </AppLink>\n ) : (\n <DivButton\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ${styles.tabLink}\n `}\n onClick={() => onSelectTab(tab)}\n >\n <TabContents tab={tab} formatDisplayText={props.formatDisplayText} />\n </DivButton>\n )}\n </li>\n );\n })}\n </ul>\n )}\n </nav>\n );\n}\n"],"mappings":"oYCwBA,SAAS,EAAY,EAAsC,CACzD,OACE,EAAA,EAAA,MAAA,EAAA,SAAA,CAAA,SAAA,CACG,CAAC,CAAC,EAAM,IAAI,MACX,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,EAAM,IAAI,KAAO,OAAS,aACxC,EAAA,EAAA,KAAC,EAAD,CAAc,IAAK,EAAM,IAAI,IAAK,KAAM,EAAM,IAAI,QAAW,CAAA,CACzD,CAAA,CAGP,EAAM,oBAAoB,EAAM,IAAI,KAAK,EAAI,EAAM,IAAI,KAEvD,OAAQ,EAAM,IAAI,OAAW,WAC5B,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,iBACb,EAAA,EAAA,KAAC,EAAD,CAAO,KAAM,EAAU,MAAO,KAAM,EAAM,IAAI,MAAS,CAAA,CACnD,CAAA,CAEP,CAAA,CAAA,CAiCP,SAAgB,EAAgB,EAA0C,CACxE,GAAM,CAAE,eAAe,MAAS,EAE1B,EAAc,GAAgB,CAEpC,SAAS,EAAa,EAAoB,CACpC,EAAI,eAAiB,EAAI,kBAC3B,EAAgB,cAAc,EAAI,cAAe,EAAI,iBAAiB,CAG1E,SAAS,EAAY,EAAoB,CACnC,EAAI,QAAU,CAAC,EAAI,WAGvB,EAAI,UAAU,CAEd,EAAa,EAAI,EAGnB,SAAS,EAAe,EAAmD,CACzE,IAAM,EAAQ,EAAM,OAAO,MACrB,EAAM,EAAM,KAAK,KAAK,GAAO,EAAI,OAAS,EAAM,CAClD,CAAC,GAAO,EAAI,SAGhB,EAAa,EAAI,CACjB,EAAc,QAAQ,EAAI,QAAQ,EAGpC,IAAM,EAAc,EAAM,KAAK,KAAK,GAAO,EAAI,OAAO,CAChD,EAAqB,EAAM,0BAC3B,EAAM,2BAA6B,EAAY,IAAM,EAAY,IAEvE,OACE,EAAA,EAAA,MAAC,MAAD,CAAK,UAAW,EAAM,WAAa,YAAnC,CACG,IACC,EAAA,EAAA,KAAC,SAAD,CAAQ,UAAU,cAAc,SAAU,EAAgB,MAAO,GAAa,KAAM,MAAO,CAAE,SAAU,QAAS,UAC7G,EAAM,KAAK,KAAK,EAAK,IAChB,EAAI,MACC,EAAA,EAAA,KAAA,EAAO,SAAP,EAA6B,CAAR,EAAQ,EAGpC,EAAA,EAAA,KAAC,SAAD,CAEE,MAAO,EAAI,cACV,EAAM,oBAAoB,EAAI,KAAK,EAAI,EAAI,KACrC,CAHF,EAGE,EAGN,CAAA,CAGV,CAAC,IACA,EAAA,EAAA,KAAC,KAAD,CAAI,UAAW;6CACsB,EAAO,gBAAA;YACxC,EAAe,EAAO,YAAc,GAAA;YACpC,EAAM,cAAA;mBAEP,EAAM,KAAK,KAAK,EAAK,IAChB,EAAI,MACC,EAAA,EAAA,KAAA,EAAO,SAAP,EAA6B,CAAR,EAAQ,EAGpC,EAAA,EAAA,KAAC,KAAD,CACE,UAAW;sBACL,EAAO,IAAI,GAAG,EAAI,OAAS,eAAiB,uBAAA;kBAChD,EAAI,KAAO,EAAO,SAAW,GAAG,GAAG,EAAI,UAAA;yBAIxC,EAAI,SACH,EAAA,EAAA,KAAC,EAAD,CACE,QAAS,EAAI,QACb,cAAe,EAAI,cACnB,iBAAkB,EAAI,iBACtB,UAAW;;uEAEwC,EAAO,QAAA;8BAG1D,EAAA,EAAA,KAAC,EAAD,CAAkB,MAAK,kBAAmB,EAAM,kBAAqB,CAAA,CAC7D,CAAA,EAEV,EAAA,EAAA,KAAC,EAAD,CACE,UAAW;;uEAEwC,EAAO,QAAA;oBAE1D,YAAe,EAAY,EAAI,WAE/B,EAAA,EAAA,KAAC,EAAD,CAAkB,MAAK,kBAAmB,EAAM,kBAAqB,CAAA,CAC3D,CAAA,CAEX,CAzBE,EAyBF,EAGN,CAAA,CAAA"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{C as e,D as t,St as n,b as r,d as i,h as a,mn as o,o as s,s as c,t as l}from"./CnnBLBPY.chunk.js";import{b as u,g as d,n as f,y as p}from"./DW0w8_XN.chunk.js";import{f as m,l as h,u as ee,y as g}from"./D8clSITt.chunk.js";import{t as te}from"./CBDo4oAU.chunk.js";import{t as ne}from"./GN6vNflP.chunk.js";import{t as re}from"./DXNyYUq4.chunk.js";import{n as _,t as v}from"./Dn3hwC-o.chunk.js";import{t as y}from"./QxhzRpcg.chunk.js";import{a as b,c as x,i as ie,o as ae,s as oe}from"./
|
|
1
|
+
import{C as e,D as t,St as n,b as r,d as i,h as a,mn as o,o as s,s as c,t as l}from"./CnnBLBPY.chunk.js";import{b as u,g as d,n as f,y as p}from"./DW0w8_XN.chunk.js";import{f as m,l as h,u as ee,y as g}from"./D8clSITt.chunk.js";import{t as te}from"./CBDo4oAU.chunk.js";import{t as ne}from"./GN6vNflP.chunk.js";import{t as re}from"./DXNyYUq4.chunk.js";import{n as _,t as v}from"./Dn3hwC-o.chunk.js";import{t as y}from"./QxhzRpcg.chunk.js";import{a as b,c as x,i as ie,o as ae,s as oe}from"./1iKkdpYv.chunk.js";import{t as S}from"./DIgVUF5c.chunk.js";import{t as se}from"./BjaJoJzM.chunk.js";import{t as ce}from"./xL848v0O.chunk.js";import{t as C}from"./CrBD6Z4s.chunk.js";import{t as le}from"./DRTfS6nN.chunk.js";import{t as ue}from"./CRRZVEmA.chunk.js";import{i as de,n as w,r as fe,t as pe}from"./BK-FLPB-.chunk.js";import{E as me,F as he,I as T,O as ge,T as E,c as D,v as _e}from"./app-BGxmHvGl.js";import{t as ve}from"./DWCNy_Jd2.chunk.js";import{t as ye}from"./DuPL-nK72.chunk.js";import{t as O}from"./G-hiM6b42.chunk.js";import{n as be,r as xe,t as Se}from"./CatL8N7H2.chunk.js";import{n as Ce}from"./BITl6co82.chunk.js";import{a as k,c as we,d as Te,f as Ee,h as De,i as Oe,l as ke,m as Ae,n as A,o as je,p as j,r as Me,s as Ne,u as Pe}from"./C03mMZ4k.chunk.js";import{c as Fe,o as M,r as Ie}from"./EO2xPuAQ.chunk.js";import{n as N,t as P}from"./CXtVyCmH.chunk.js";import{a as Le,i as F,n as Re,r as I,t as ze}from"./BsLLiG1-.chunk.js";import{t as Be}from"./BINz0dmF.chunk.js";import{r as Ve}from"./CsCke1Uk.chunk.js";import{t as L}from"./CK_CN_mA.chunk.js";import{n as R,t as He}from"./Jf-R5ehU.chunk.js";import{i as Ue,n as z,r as B}from"./ApcDOLl8.chunk.js";import{t as We}from"./DmVXt6_V.chunk.js";import{t as Ge}from"./BAN6QE-X.chunk.js";import{t as Ke}from"./d3WuXtzH.chunk.js";import{t as qe}from"./BLtXMKpA.chunk.js";import{f as V,l as Je,u as Ye}from"./Ct_4zyE3.chunk.js";import{t as Xe}from"./Bu37Hprb2.chunk.js";var H=o(t()),U={appLink:`_appLink_1diix_1`,name:`_name_1diix_4`,selectedMask:`_selectedMask_1diix_7`,widgetItem:`_widgetItem_1diix_15`,hasThemeColor:`_hasThemeColor_1diix_19`,text:`_text_1diix_26`,imagePanel:`_imagePanel_1diix_29`,partialLargeImage:`_partialLargeImage_1diix_29`,selected:`_selected_1diix_7`,image:`_image_1diix_29`,dragHandle:`_dragHandle_1diix_55`,large:`_large_1diix_59`,comingSoonPanel:`_comingSoonPanel_1diix_69`,newVideos:`_newVideos_1diix_75`,editSubjectsItem:`_editSubjectsItem_1diix_78`,allSubjectsItem:`_allSubjectsItem_1diix_84`,logoContainer:`_logoContainer_1diix_90`,draggingItem:`_draggingItem_1diix_94`,partialLargeFallback:`_partialLargeFallback_1diix_102`,partialIcon:`_partialIcon_1diix_106`},W=e(),Ze=`shared.subjectWidgetItem`,Qe=({name:e,multiline:t,noUnderLine:n})=>{let r=`${U.comingSoonPanel}
|
|
2
2
|
d-flex flex-column align-items-center justify-content-center px-3 text-center`,i=``;return t?i+=` ${U.clamped} clamp-2`:(r+=` text-nowrap`,i+=` text-truncate`),(0,W.jsxs)(`div`,{className:r,children:[(0,W.jsx)(`small`,{className:`text-secondary`,children:(0,W.jsx)(T,{namespace:Ze,phrase:`comingSoon`})}),(0,W.jsx)(`p`,{className:`${n?``:U.name} h6`,children:(0,W.jsx)(`span`,{className:i,children:e})})]})},$e=({name:e,multiline:t,subtitle:n,noUnderLine:r,newVideosCount:i})=>{let a=`px-3 d-flex flex-column justify-content-center`,o=`${r?``:U.name} h6`;return t?o+=` ${i?`clamp-2`:`clamp-3`} text-start`:(a+=` text-nowrap text-truncate`,o+=` text-truncate mb-0`),(0,W.jsxs)(`div`,{className:a,children:[n&&(0,W.jsx)(`div`,{className:`text-secondary clamp-1 ${U.text}`,children:n}),(0,W.jsx)(`div`,{className:o,title:e,children:e}),!!i&&(0,W.jsx)(`div`,{className:`fw-semibold d-inline-block rounded-pill px-2 mt-1 bg-light-green w-fit h-fit text-green ${U.newVideos}`,children:(0,W.jsx)(T,{namespace:Ze,phrase:`newVideos`,options:{smartCount:i}})})]})};G.defaultProps={showFallbackBackgroundColour:!0};function G(e){let t=pe.createUrl(e.coverUrl,{size:e.isLarge?w.Medium:w.Small}),n;Be.isClassification(e.data)&&(n=e.data);let r={name:e.data.name,multiline:e.isLarge||e.multiline,subtitle:e.subtitle,noUnderLine:e.highlightOnHover,newVideosCount:e.showNewVideosCount?n?.externalMetadata?.childDashboardNewVideoCount:0},i={backgroundImage:t?`url('${t}')`:null,backgroundColor:e.coverBgColor},a=Ue(e.data.name,He);return(0,W.jsxs)(`div`,{className:p(e.themeColor?U.hasThemeColor:`border`,`d-flex position-relative`,e.className,U.widgetItem,e.isSelected?`border-success border-2`:``,e.highlightOnHover&&!e.themeColor?`bg-light-blue-hover`:``),style:e.themeColor?{"--themeColor":e.themeColor}:{},id:`${e.data.id}-${u.getRandomInt()}`,onClick:e.onClick,children:[e.isSelected&&(0,W.jsx)(`div`,{className:`${U.selectedMask} border-2`}),(0,W.jsxs)(`div`,{className:`${U.imagePanel} ${e.isLarge?U.large:``}`,children:[e.isSelected&&!e.hideCheckmark&&(0,W.jsx)(`div`,{className:U.selected,children:(0,W.jsx)(Se,{svg:be,svgSize:f.Large,textVariant:`white`,variant:`green`})}),t&&(0,W.jsx)(`div`,{className:p(U.image,e.imageClassName,!e.coverBgColor&&e.showFallbackBackgroundColour&&a),style:i}),!e.hideFallback&&(0,W.jsx)(z,{type:B.Subject,extraClasses:e.isLarge?U.large:``})]}),e.isComingSoon?(0,W.jsx)(Qe,{...r}):(0,W.jsx)($e,{...r})]})}function et(e){let t=e.getChildAppLink?e.getChildAppLink(e.data):null;return(0,W.jsx)(W.Fragment,{children:t?(0,W.jsx)(d,{className:U.appLink,appLink:t,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,appLinkOptions:e.getChildAppLinkOptions?.(),children:(0,W.jsx)(G,{...e})}):(0,W.jsx)(G,{...e})})}function tt(e){let t={...e.analyticsData,id:e.data?.id,name:e.data?.name},n={location:i.ClassificationListItem,...e.analyticsOptions,actionType:r.Click,entity:c.Company,descriptor:s.Cover};return(0,W.jsx)(et,{...e,analyticsData:t,analyticsOptions:n,coverUrl:e.data.logo?.url,coverBgColor:e.data.metadata?.colour})}function nt(e){return(0,W.jsx)(y,{as:`li`,sm:6,md:e.useLargeStyle?6:4,lg:e.useLargeStyle?4:3,children:(0,W.jsx)(`div`,{className:`position-relative px-1 mb-2`,children:(0,W.jsx)(tt,{data:e.item,getChildAppLink:e.appLinks.getCompanyAppLink,getChildAppLinkOptions:()=>e.appLinks.getCompanyAppLinkOptions?.(e.item),analyticsData:{itemIndex:e.itemIndex,search:{query:e.queryParams.query,score:e.item._score,maxScore:e.item._maxScore,featured:e.item._featured},pagePositionIndex:0},isLarge:e.useLargeStyle})})})}var K={videoList:`_videoList_14pgo_1`},q=`search.exchangeVideoGroup`,rt=3;function it(e){let t=e.item.showCount>=rt?rt:e.item.showCount;function o(){return e.pagePositionIndex===0?`border-bottom pb-1 mb-3`:`border-top border-bottom pt-3 mt-2 pb-1 mb-3`}let l=n.getCurrentAppLink(),u=l.params??{},f=u?.source??[];f&&!Array.isArray(f)&&(f=[f]);let p={...l,params:{...u,source:[...f,Fe.ExchangeArchive]}},m={query:e.queryParams.query,itemIndex:e.itemIndex,pagePositionIndex:e.pagePositionIndex},h={entity:c.SearchResults,location:i.ExchangeSearchGroupItem,actionType:r.Click,descriptor:a.ExchangeArchive};return(0,W.jsxs)(`div`,{className:o(),children:[(0,W.jsx)(d,{appLink:p,analyticsData:m,analyticsOptions:h,children:(0,W.jsx)(`h2`,{className:`h4`,children:(0,W.jsx)(T,{namespace:q,phrase:`heading`})})}),(0,W.jsxs)(`p`,{children:[(0,W.jsx)(T,{namespace:q,phrase:`message`}),`\xA0`,(0,W.jsx)(d,{appLink:e.appLinks.searchSettings,className:`text-info`,analyticsData:m,analyticsOptions:{...h,descriptor:s.Settings},children:(0,W.jsx)(T,{namespace:q,phrase:`searchSettings`})}),`.`]}),(0,W.jsx)(`div`,{className:`position-relative ${K.videoList}`,children:e.item.videos.slice(0,t).map((t,n)=>(0,W.jsx)(A,{video:t,getVideoAppLink:e.appLinks.getVideoAppLink,presentationAudiences:e.audiences,analyticsData:{search:{query:e.queryParams.query,score:t._score,maxScore:t._maxScore,featured:t._featured},pagePositionIndex:e.pagePositionIndex},hasPermissions:e.hasPermissions,commonVideoProps:e.commonVideoProps},n))}),(0,W.jsx)(`div`,{className:`text-center py-2`,children:(0,W.jsx)(d,{className:`text-secondary`,appLink:p,analyticsData:m,analyticsOptions:h,children:(0,W.jsx)(T,{namespace:q,phrase:`seeMore`})})})]})}var J={partialHeroThumbnail:`_partialHeroThumbnail_pydn0_1`,partialSeriesText:`_partialSeriesText_pydn0_6`,partialVideoTitleText:`_partialVideoTitleText_pydn0_10`,partialBadge:`_partialBadge_pydn0_14`,partialDescription:`_partialDescription_pydn0_18`,partialSubject:`_partialSubject_pydn0_22`,partialHeading:`_partialHeading_pydn0_26`,guidance:`_guidance_pydn0_30`,responsiveGuidance:`_responsiveGuidance_pydn0_41`,description:`_description_pydn0_56`,details:`_details_pydn0_82`};at.defaultProps={newDurationStyle:!0,badgePosition:`thumbnail`};function at(e){let t=e.video?.subjectPresentationAudiences?.data,n=k(t,e.presentationAudiences),r=l.mergeOptions(e.analyticsOptions,{location:i.ClassificationHero,entity:O.getAnalyticsEntity(e.video)}),a=H.useRef(null);return e.video?(0,W.jsxs)(x,{children:[(0,W.jsx)(y,{xs:12,md:6,children:(0,W.jsx)(`div`,{ref:a,children:(0,W.jsx)(we,{analyticsOptions:r,video:e.video,appLink:e.getVideoAppLink?.(e.video,{}),imageOptions:{size:w.Medium},textPosition:ke.Independent,type:`static`,audience:e.badgePosition===`thumbnail`?n:null,hideRating:e.badgePosition===`thumbnail`?!!n:!0,commonVideoProps:e.commonVideoProps})})}),(0,W.jsxs)(y,{xs:12,md:6,className:`${J.details} position-relative`,children:[(0,W.jsxs)(`div`,{className:`d-flex justify-content-between`,children:[(0,W.jsxs)(`div`,{className:`overflow-hidden`,children:[(0,W.jsx)(Ye,{type:e.commonVideoProps.subTextType,appLink:e.commonVideoProps.getSubTextAppLink?.(e.video),analyticsData:e.analyticsData,analyticsOptions:r,video:e.video,className:`text-reset clamp-1`}),(0,W.jsx)(Ne,{yearGroups:e.commonVideoProps.yearGroups,video:e.video,analyticsData:e.analyticsData,analyticsOptions:r,appLink:e.getVideoAppLink?.(e.video,{}),titleSize:`h4`,showNewVideoIndicator:e.showNewVideoIndicator,showPadlock:!e.commonVideoProps.hasStudentExperience&&!e.commonVideoProps.hasGuestExperience,titleClassName:e.titleClassName,clampLevel:2})]}),(0,W.jsx)(je,{analyticsData:e.analyticsData,analyticsOptions:r,video:e.video})]}),e.badgePosition===`info-panel`&&(0,W.jsxs)(qe,{className:`pb-1`,children:[!e.hideInteractiveBadge&&(0,W.jsx)(P,{type:N.Interactive,data:e.video.interactives}),(0,W.jsx)(P,{type:N.Rating,data:O.getRating(e.video)}),(0,W.jsx)(P,{type:N.ProductionYear,data:e.video.productionYear})]}),(0,W.jsx)(`p`,{className:`mb-1`,children:(0,W.jsx)(`span`,{className:J.description,children:e.video.description})}),e.badgePosition===`info-panel`&&(0,W.jsx)(j,{audience:n,className:`mt-1`,border:`dark`}),e.showVideoGuidance&&(0,W.jsx)(Ee,{video:e.video,analyticsData:e.analyticsData,analyticsOptions:r,containerClassName:`d-flex ${J.guidance}`,responsiveClassName:J.responsiveGuidance,commonVideoProps:e.commonVideoProps})]})]}):(0,W.jsx)(W.Fragment,{})}function ot(e){return(0,W.jsx)(`div`,{className:`pb-3`,children:(0,W.jsx)(at,{video:e.item,presentationAudiences:e.audiences,getVideoAppLink:(t,n)=>e.appLinks.getVideoAppLink(t,n),analyticsData:{search:{query:e.queryParams.query,score:e.item._score,maxScore:e.item._maxScore,featured:e.item._featured},pagePositionIndex:e.pagePositionIndex},hideInteractiveBadge:!0,showVideoGuidance:O.showVideoGuidance(e.hasPermissions),commonVideoProps:e.commonVideoProps})})}var Y={playlistItem:`_playlistItem_euqll_1`,playlistItemGradient:`_playlistItemGradient_euqll_4`,playlistMetadata:`_playlistMetadata_euqll_13`,partialHeading:`_partialHeading_euqll_20`,ownerAvatarContainer:`_ownerAvatarContainer_euqll_24`};st.defaultProps={numItems:8};function st(e){let t=[...Array(e.numItems)],n=e.itemClassName||``;return(0,W.jsxs)(W.Fragment,{children:[e.showHeading&&(0,W.jsx)(`div`,{className:`${Y.partialHeading} mb-1 partial-loading-background`}),(0,W.jsx)(x,{className:`mx-n1 mb-n2`,children:t.map((e,t)=>(0,W.jsx)(y,{xs:6,sm:4,lg:3,className:`${n} px-1 pb-2`,children:(0,W.jsx)(`div`,{className:`${Y.playlistItem} partial-loading-background rounded-3`})},t))})]})}var ct=[`second`,`minute`,`hour`,`day`,`week`,`month`,`year`];function lt(e,t){if(t===0)return[`just now`,`right now`];var n=ct[Math.floor(t/2)];return e>1&&(n+=`s`),[e+` `+n+` ago`,`in `+e+` `+n]}var ut=[`秒`,`分钟`,`小时`,`天`,`周`,`个月`,`年`];function dt(e,t){if(t===0)return[`刚刚`,`片刻后`];var n=ut[~~(t/2)];return[e+` `+n+`前`,e+` `+n+`后`]}var X={},ft=function(e,t){X[e]=t},pt=function(e){return X[e]||X.en_US},mt=[60,60,24,7,365/7/12,12];function ht(e){return e instanceof Date?e:!isNaN(e)||/^\d+$/.test(e)?new Date(parseInt(e)):(e=(e||``).trim().replace(/\.\d+/,``).replace(/-/,`/`).replace(/-/,`/`).replace(/(\d)T(\d)/,`$1 $2`).replace(/Z/,` UTC`).replace(/([+-]\d\d):?(\d\d)/,` $1$2`),new Date(e))}function gt(e,t){var n=e<0?1:0;e=Math.abs(e);for(var r=e,i=0;e>=mt[i]&&i<mt.length;i++)e/=mt[i];return e=Math.floor(e),i*=2,e>(i===0?9:1)&&(i+=1),t(e,i,r)[n].replace(`%s`,e.toString())}function _t(e,t){return((t?ht(t):new Date)-+ht(e))/1e3}var vt=function(e,t,n){return gt(_t(e,n&&n.relativeDate),pt(t))};ft(`en_US`,lt),ft(`zh_CN`,dt);var yt=`playlists.playlistCount`;function bt(e){if(!e)return!1;let t=e.videos?.count??0,n=e.interactives?.count??0,r=e.clips?.count??0;return t+n+r}function xt(e){let t=bt(e.playlist);return t===!1||Number.isNaN(t)?(0,W.jsx)(W.Fragment,{}):(0,W.jsx)(`span`,{className:`text-shadow font-size-sm`,children:(0,W.jsx)(T,{namespace:yt,phrase:`count`,options:{smartCount:t}})})}var St={avatar:`_avatar_1ylw0_1`};function Ct(){return(0,W.jsx)(`div`,{className:St.avatar,children:(0,W.jsx)(ge,{})})}function wt(e){let{_liteOwner:t}=e.playlist;return e.playlist._isClickViewCurated?.value?(0,W.jsx)(Ct,{}):!t?.id||!e.currentUser?.id||t.id.toString()===e.currentUser.id.toString()?(0,W.jsx)(W.Fragment,{}):(0,W.jsx)(me,{imageUrl:typeof t.avatar==`string`?t.avatar:t.avatar?.url,imageCdnUrl:e.imageCdnUrl,initials:_e.getInitials(t.name,t.surname)})}var Tt=`playlists.playlistList`;Et.defaultProps={itemStyle:`square`};function Et(e){let t=pe.createUrl(e.data.cover&&e.data.cover.url,{size:w.Medium,resizeType:de.Cover}),n=e.data.subjectPresentationAudiences&&e.data.subjectPresentationAudiences.data,r=k(n,e.presentationAudiences),i=Y.playlistItem,a=!!t||!!e.showFallbackImage;a&&(i+=` ${Y.playlistItemGradient}`),!a&&e.bgColourClassNames&&(i+=` ${Y.playlistItem} ${Ue(e.data.name,e.bgColourClassNames)}`),e.itemStyle===`round`&&(i+=` rounded-3 overflow-hidden`),e.itemStyle===`round-left`&&(i+=` rounded-start-lg overflow-hidden`);let o={...e.analyticsData,id:e.data?.id,name:e.data?.name},s={...e.analyticsOptions,entity:c.Playlist};return(0,W.jsx)(d,{appLink:e.appLink,analyticsData:o,analyticsOptions:s,title:!e.data.contentModifiedDate||e.data._isClickViewCurated?.value?``:ne.getPhrase(Tt,`lastUpdated`,{timeago:vt(ce.convertUTCToLocal(e.data.contentModifiedDate))}),children:(0,W.jsxs)(R,{data:t,alt:e.data.name,className:i,children:[!!e.showFallbackImage&&(0,W.jsx)(z,{type:B.Playlist}),(0,W.jsxs)(`div`,{className:`text-white ${Y.playlistMetadata}`,children:[!!e.showCount&&(0,W.jsx)(xt,{playlist:e.data}),(0,W.jsx)(`h5`,{className:`mb-0 ${e.titleClassName||``}`,children:(0,W.jsx)(`span`,{className:`text-shadow clamp-2`,children:e.data.name})}),!!n&&!!n.length&&!!r&&(0,W.jsx)(j,{className:`${e.audienceLabelClass?e.audienceLabelClass:``} mt-1`,audience:r,border:`white`})]}),!!e.showOwner&&!!e.imageCdnUrl&&(0,W.jsx)(`div`,{className:Y.ownerAvatarContainer,children:(0,W.jsx)(wt,{playlist:e.data,currentUser:e.currentUser,imageCdnUrl:e.imageCdnUrl})})]})})}r.Click,c.Playlist,i.PlaylistListItem,s.Cover;var Dt={videoList:`_videoList_182nk_1`},Ot=`search.playlistWithVideos`;function kt(){let e=E();return e.xl||e.xxl?3:2}function At(e){let t=kt(),n=e.playlist.videos.data.slice(0,t),a={actionType:r.Click,entity:c.Playlist,location:i.PlaylistWithVideos},o={...e.analyticsData,id:e.playlist.id,name:e.playlist.name};return(0,W.jsx)(`div`,{className:`ps-2 py-2`,children:(0,W.jsxs)(x,{className:`g-0 border rounded-3`,children:[(0,W.jsx)(y,{xs:4,lg:3,className:`pe-3`,children:(0,W.jsx)(Et,{appLink:e.playlistAppLink,analyticsData:e.analyticsData,analyticsOptions:{...a,descriptor:s.Cover},data:e.playlist,presentationAudiences:e.presentationAudiences,bgColourClassNames:He,itemStyle:`round-left`,imageCdnUrl:e.commonVideoProps.imageCdnUrl,currentUser:e.currentUser,showCount:!1,showOwner:!0})}),(0,W.jsx)(y,{xs:8,lg:9,children:(0,W.jsxs)(`div`,{className:`d-flex justify-content-between`,children:[(0,W.jsx)(`div`,{className:`pt-3 mb-n2 ${Dt.videoList}`,children:n?.map(t=>{let n={...o,videoId:t.id,videoName:t.name};return(0,W.jsx)(`div`,{className:`mb-2`,children:(0,W.jsx)(A,{video:t,getVideoAppLink:e.getVideoAppLink,analyticsData:n,analyticsOptions:{entity:c.Video,location:i.PlaylistWithVideos},size:`sm`,hasPermissions:e.hasPermissions,hideVideoGuidance:!0,commonVideoProps:e.commonVideoProps})},t.id)})}),(0,W.jsx)(`div`,{className:`text-end pt-3 pe-3`,children:(0,W.jsx)(d,{className:`info-link fw-semibold`,appLink:e.playlistAppLink,analyticsData:o,analyticsOptions:{...a,descriptor:s.Link},children:(0,W.jsx)(T,{namespace:Ot,phrase:`seeAllVideos`})})})]})})]})})}function jt(e){return(0,W.jsx)(`div`,{className:`mx-n2`,children:(0,W.jsx)(At,{playlist:e.item,playlistAppLink:e.appLinks.getPlaylistAppLink(e.item),presentationAudiences:e.audiences,analyticsData:{search:{query:e.queryParams.query,score:e.item._score,maxScore:e.item._maxScore,featured:e.item._featured},pagePositionIndex:e.pagePositionIndex},currentUser:e.currentUser,preloadImage:!0,getVideoAppLink:e.appLinks.getVideoAppLink,hasPermissions:e.hasPermissions,commonVideoProps:e.commonVideoProps})})}var Z={labelContainer:`_labelContainer_1rf8p_1`,labelContainerOverlay:`_labelContainerOverlay_1rf8p_15`,hoverActive:`_hoverActive_1rf8p_23`,mask:`_mask_1rf8p_37`,largeHoverTitle:`_largeHoverTitle_1rf8p_50`,smallHoverTitle:`_smallHoverTitle_1rf8p_69`,description:`_description_1rf8p_93`,largeHoverDescription:`_largeHoverDescription_1rf8p_99`,hasTableOfContents:`_hasTableOfContents_1rf8p_141`,smallHoverDescription:`_smallHoverDescription_1rf8p_194`};function Mt(e){return(0,W.jsxs)(`div`,{className:`py-3 mx-2 px-2 rounded bg-white text-center ${Z.mask} d-flex flex-column align-items-center`,children:[(0,W.jsx)(`h3`,{className:`fw-semibold mb-0 ${Z.hoverTitle} ${e.isSmall?Z.smallHoverTitle:Z.largeHoverTitle}`,children:(0,W.jsx)(`span`,{className:`clamp-3`,children:e.series.name})}),!!e.series.description&&(0,W.jsx)(`p`,{className:`${e.hasTableOfContents?Z.hasTableOfContents:``} ${Z.hoverDescription} ${e.isSmall?Z.smallHoverDescription:Z.largeHoverDescription} mb-0`,children:e.series.description}),(0,W.jsx)(`div`,{className:`${Z.labelContainerOverlay}`,children:e.mergedAudience?(0,W.jsx)(j,{audience:e.mergedAudience,border:`dark`,className:`mt-2 w-fit`}):(0,W.jsx)(P,{type:N.Rating,data:V.getRating(e.series),className:`mt-2`})})]})}function Nt(e){let[t,n]=Ce({className:Z.hoverActive}),r=e.series&&e.series.subjectPresentationAudiences&&e.series.subjectPresentationAudiences.data||[],i=k(r,e.presentationAudiences),a=!!(r&&r.length&&i);return(0,W.jsx)(`div`,{ref:t,children:(0,W.jsxs)(R,{data:e.series.tallPoster,alt:e.series.name,imageType:fe.TallPosters,preload:e.preloadImage,imageOptions:{size:w.Large},imageClassName:e.imageClass?e.imageClass:`rounded-3`,children:[n&&(0,W.jsx)(Mt,{isSmall:e.isSmall,series:e.series,mergedAudience:r&&r.length?i:null,hasTableOfContents:e.hasTableOfContents}),(0,W.jsx)(z,{type:B.Series}),(0,W.jsx)(`div`,{className:`position-absolute text-white ${Z.labelContainer}`,children:a?(0,W.jsx)(j,{audience:i,className:`bg-white text-dark`,border:`dark`}):(0,W.jsx)(P,{className:`text-shadow`,type:N.Rating,data:V.getRating(e.series)})})]})})}var Pt={videoList:`_videoList_182nk_1`},Ft=`search.seriesWithVideos`;function It(){let e=E();return e.xl||e.xxl?5:e.lg||e.md?4:3}function Lt(e){let t=It(),n=e.series.videos.data.slice(0,t),a={actionType:r.Click,entity:c.Series,location:i.SeriesWithVideos},o={...e.analyticsData,id:e.series.id,name:e.series.name};return(0,W.jsx)(`div`,{className:`ps-2 py-2`,children:(0,W.jsxs)(x,{className:`g-0 border rounded-3`,children:[(0,W.jsx)(y,{xs:4,lg:3,className:`pe-3`,children:(0,W.jsx)(d,{appLink:e.seriesAppLink,className:`position-relative`,analyticsData:o,analyticsOptions:{...a,descriptor:s.TallPoster},children:(0,W.jsx)(Nt,{series:e.series,presentationAudiences:e.presentationAudiences,preloadImage:e.preloadImage,imageClass:`rounded-start-lg`})})}),(0,W.jsx)(y,{xs:8,lg:9,children:(0,W.jsxs)(`div`,{className:`d-flex justify-content-between`,children:[(0,W.jsx)(`div`,{className:`pt-3 mb-n2 ${Pt.videoList}`,children:n?.map(t=>{let n={...o,videoId:t.id,videoName:t.name};return t={...t,series:e.series},(0,W.jsx)(`div`,{className:`mb-2`,children:(0,W.jsx)(A,{video:t,getVideoAppLink:e.getVideoAppLink,analyticsData:n,analyticsOptions:{entity:c.Video,location:i.SeriesWithVideos},size:`sm`,hasPermissions:e.hasPermissions,hideVideoGuidance:!0,commonVideoProps:e.commonVideoProps})},t.id)})}),(0,W.jsx)(`div`,{className:`text-end pt-3 pe-3`,children:(0,W.jsx)(d,{className:`info-link fw-semibold`,appLink:e.seriesAppLink,analyticsData:o,analyticsOptions:{...a,descriptor:s.Link},children:(0,W.jsx)(T,{namespace:Ft,phrase:`seeAllVideos`})})})]})})]})})}function Rt(e){return(0,W.jsx)(`div`,{className:`mx-n2`,children:(0,W.jsx)(Lt,{presentationAudiences:e.audiences,series:e.item,seriesAppLink:e.appLinks.getSeriesAppLink(e.item),getVideoAppLink:e.appLinks.getVideoAppLink,analyticsData:{search:{query:e.queryParams.query,score:e.item._score,maxScore:e.item._maxScore,featured:e.item._featured},pagePositionIndex:e.pagePositionIndex},preloadImage:!0,hasPermissions:e.hasPermissions,commonVideoProps:e.commonVideoProps})})}var zt=`search.collectionVideoList`;function Bt(){let e=E();return e.xs?2:e.sm?1:3}function Vt(e){let t=Bt(),n={analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions};return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`ul`,{className:`list-unstyled my-1`,children:e.videos.slice(0,t).map(t=>{let r=!!t.episodeNumber&&!!t.season?.id;return(0,W.jsx)(`li`,{className:`d-flex align-items-center`,children:(0,W.jsxs)(d,{...n,className:`clamp-1`,appLink:e.getVideoAppLink(t),children:[r&&(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(Je,{video:t}),`\xA0`]}),t.name]})},`${e.collectionId}:${t.id}`)})}),(0,W.jsx)(d,{...n,className:`info-link`,appLink:e.appLink,children:(0,W.jsx)(T,{namespace:zt,phrase:`seeAll`})})]})}var Ht={overlayContainer:`_overlayContainer_1tsto_1`,overlay:`_overlay_1tsto_1`},Ut=`search.collectionThumbnail`;function Wt(e){let t=E(),n=b.getSize(t,`md`)===`sm`,r=!!e.collection.videos?.data?.length,i=r&&e.collection.videos.data.find(e=>!!e.thumbnail?.url);function a(){let t={...e.analyticsData,id:e.collection.id,name:e.collection.name};return i&&(t.videoId=i.id,t.videoName=i.name),t}let o=a(),c=e.collectionType===`series`;return(0,W.jsxs)(`div`,{className:`row g-0 ${n?``:`py-2`}`,children:[(0,W.jsx)(y,{...b.getThumbnailColumns(),className:`flex-column align-items-flex-start ${n?`pb-2 pe-2`:`mb-1 px-2`}`,children:(0,W.jsx)(`div`,{className:`position-relative overflow-hidden ${n?`rounded`:`rounded-3`}`,children:(0,W.jsxs)(R,{data:i?.thumbnail,appLink:e.appLink,imageType:fe.Thumbnails,analyticsData:o,analyticsOptions:{...e.analyticsOptions,descriptor:s.Thumbnail},children:[(0,W.jsx)(Pe,{type:e.maskType}),(0,W.jsx)(z,{type:e.imageFallbackType}),(0,W.jsx)(`div`,{className:`d-flex flex-column align-items-center justify-content-center text-white h-100 ${Ht.overlay}`,children:(0,W.jsx)(T,{namespace:Ut,phrase:`seeAll`})})]})})}),(0,W.jsxs)(y,{...b.getDetailsColumns(),className:n?`pb-2`:`px-2`,children:[!e.isPlugin&&(0,W.jsx)(ve,{actions:e.getCollectionActions(e.collection,e.showActions,e.collectionType,e.analyticsOptions),className:`float-end mt-n1`,actionsDropdownClassName:`btn btn-link ms-1`}),(0,W.jsx)(d,{appLink:e.appLink,analyticsData:o,analyticsOptions:{...e.analyticsOptions,descriptor:s.Title},children:(0,W.jsx)(`h5`,{className:`m-0 mb-1`,children:(0,W.jsx)(`span`,{className:`clamp-1`,children:e.collection.name})})}),c&&!e.hideBadges&&(0,W.jsxs)(qe,{children:[(0,W.jsx)(P,{type:N.Rating,data:V.getRating(e.collection)}),(0,W.jsx)(P,{type:N.ProductionYear,data:e.collection.metadata?.year})]}),r&&(0,W.jsx)(Vt,{collectionId:e.collection.id,videos:e.collection.videos.data,appLink:e.appLink,analyticsData:o,analyticsOptions:{...e.analyticsOptions,descriptor:s.Link},getVideoAppLink:e.getVideoAppLink})]})]})}function Gt(e){return(0,W.jsx)(`div`,{className:`position-relative ${K.videoList}`,children:(0,W.jsx)(Wt,{analyticsData:{search:{query:e.queryParams.query,score:e.item._score,maxScore:e.item._maxScore,featured:e.item._featured},pagePositionIndex:e.pagePositionIndex},analyticsOptions:{entity:c.Playlist,actionType:r.Click,location:i.PlaylistListItem},appLink:e.appLinks.getPlaylistAppLink(e.item),showActions:e.showActions,collection:e.item,collectionType:`playlist`,maskType:Te.Playlist,imageFallbackType:B.PlaylistThumbnail,isPlugin:e.commonVideoProps.isPlugin,getVideoAppLink:e.appLinks.getVideoAppLink,getCollectionActions:e.appLinks.getCollectionActions})})}function Kt(e){return(0,W.jsx)(`div`,{className:`position-relative ${K.videoList}`,children:(0,W.jsx)(Wt,{analyticsData:{search:{query:e.queryParams.query,score:e.item._score,maxScore:e.item._maxScore,featured:e.item._featured},pagePositionIndex:e.pagePositionIndex},analyticsOptions:{entity:c.Series,actionType:r.Click,location:i.SeriesListItem},appLink:e.appLinks.getSeriesAppLink(e.item),collectionType:`series`,collection:e.item,showActions:e.showActions,maskType:Te.Series,imageFallbackType:B.SeriesThumbnail,hideBadges:!0,isPlugin:e.commonVideoProps.isPlugin,getVideoAppLink:e.appLinks.getVideoAppLink,getCollectionActions:e.appLinks.getCollectionActions})})}var qt=function(e){return e.Draft=`Draft`,e.ComingSoon=`ComingSoon`,e.Published=`Published`,e}({});function Jt(e,t){if(t?.length>=Le.MULTI_PRESENTATION_THRESHOLD)return t?.find(t=>t.id===e)?.name}function Yt(e){let t=e.data?.status===qt.ComingSoon,n=Jt(e.data.presentationId,e?.availablePresentations),a={...e.analyticsData,id:e.analyticsData?.id||e.data?.id,name:e.data?.name,presentationId:e.analyticsData?.presentationId||e.data.presentationId,comingSoon:!!t},o={location:i.ClassificationListItem,entity:c.Classification,...e.analyticsOptions,actionType:r.Click,descriptor:s.Cover};return(0,W.jsx)(et,{...e,analyticsData:a,analyticsOptions:o,coverUrl:e.data.cover?.url,coverBgColor:e.data?.metadata?.backgroundColor,subtitle:e.getSubtitle?.(e.data)||n,isComingSoon:t,themeColor:e.shouldHighlight?.(e.data)?e.data?.metadata?.backgroundColor??``:``})}var Xt=H.memo(Yt);r.Click,c.UserSetting,s.Tile,r.Click,c.Url,s.Tile;function Zt(e){return(0,W.jsx)(y,{as:`li`,sm:6,md:e.useLargeStyle?6:4,lg:e.useLargeStyle?4:3,children:(0,W.jsx)(`div`,{className:`position-relative px-1 mb-2`,children:(0,W.jsx)(Xt,{data:e.item,getChildAppLink:e.appLinks.getClassificationAppLink,getChildAppLinkOptions:()=>e.appLinks.getClassificationAppLinkOptions?.(e.item),availablePresentations:e.availablePresentations,analyticsData:{itemIndex:e.itemIndex,search:{query:e.queryParams.query,score:e.item._score,maxScore:e.item._maxScore,featured:e.item._featured},pagePositionIndex:0},isLarge:e.useLargeStyle,highlightOnHover:e.commonVideoProps.showNewVideoIndicator})})})}function Qt(e){function t(e){return O.isClip(e)?Oe:O.isInteractive(e)?Me:A}let n=t(e.item);return(0,W.jsx)(`div`,{className:`position-relative ${K.videoList}`,children:(0,W.jsx)(n,{video:e.item,getVideoAppLink:e.appLinks.getVideoAppLink,getPreviewQuestionsAppLink:e.appLinks.getPreviewQuestionsAppLink,presentationAudiences:e.audiences,analyticsData:{search:{query:e.queryParams.query,score:e.item._score,maxScore:e.item._maxScore,featured:e.item._featured},pagePositionIndex:e.pagePositionIndex},hasPermissions:e.hasPermissions,commonVideoProps:e.commonVideoProps})})}var $t=`shared.mixedSearchResults`,en=8,tn=H.memo(function(e){let t=E(),n=t.xs||t.sm;if(!e.results?.length&&!e.topics?.totalResults&&!e.companies?.totalResults)return(0,W.jsx)(W.Fragment,{});let r=[...e.companies?.results??[],...e.topics?.results??[]],i={useLargeStyle:r.length<4,...e};return(0,W.jsxs)(`div`,{className:`position-relative`,children:[(0,W.jsx)(`p`,{role:`status`,className:`visually-hidden`,children:(0,W.jsx)(T,{namespace:$t,phrase:`ariaSearch`})}),!!r.length&&(0,W.jsx)(x,{as:`ul`,className:`list-unstyled g-0 pb-3 mx-n1`,children:r.slice(0,en).map((e,t)=>{switch(e.type.toLowerCase()){case`company`:return(0,W.jsx)(nt,{item:e,itemIndex:t,...i},t);case`subject`:return(0,W.jsx)(Zt,{item:e,itemIndex:t,...i},t)}})}),e.results?.map((e,t)=>{let a=r.length?t+1:t;if(`isExchangeVideoGroup`in e&&e.isExchangeVideoGroup)return(0,W.jsx)(it,{item:e,pagePositionIndex:a,...i},t);switch(e.type?.toLowerCase()){case`interactive`:case`clip`:case`video`:return t===0&&e._featured&&O.isVideo(e)?(0,W.jsx)(ot,{item:e,pagePositionIndex:a,...i},t):(0,W.jsx)(Qt,{item:e,pagePositionIndex:a,...i},t);case`playlist`:return n?(0,W.jsx)(Gt,{item:e,pagePositionIndex:a,...i},t):(0,W.jsx)(jt,{item:e,pagePositionIndex:a,...i},t);case`series`:return n||!e.tallPoster?.id?(0,W.jsx)(Kt,{item:e,pagePositionIndex:a,...i},t):(0,W.jsx)(Rt,{item:e,pagePositionIndex:a,...i},t)}})]})}),nn=`search.searchSubstitute`;function rn(e){return e.substitute?(0,W.jsxs)(`div`,{className:`pb-3`,children:[(0,W.jsxs)(`p`,{className:`mb-1 h6`,children:[(0,W.jsx)(T,{namespace:nn,phrase:`showingFor`}),`\xA0`,(0,W.jsx)(d,{className:`info-link`,appLink:e.getAppLink(e.substitute,e.queryParams),appLinkOptions:{replace:!0},children:e.substitute})]}),(0,W.jsxs)(`p`,{className:`mb-0 h6 fw-normal`,children:[(0,W.jsx)(T,{namespace:nn,phrase:`searchInsteadFor`}),(0,W.jsx)(d,{className:`info-link`,appLink:e.getAppLink(e.queryParams.query,{...e.queryParams,allowSubstitute:`false`}),children:e.queryParams.query}),(0,W.jsx)(T,{namespace:nn,phrase:`endOriginal`})]})]}):(0,W.jsx)(W.Fragment,{})}var an=`search.searchSuggestions`;on.defaultProps={suggestions:[],queryParams:{}};function on(e){return e.suggestions?.length?(0,W.jsxs)(`div`,{className:`d-flex align-items-center mb-3`,children:[(0,W.jsx)(T,{namespace:an,phrase:`didYouMean`}),`\xA0`,e.suggestions.map((t,n)=>(0,W.jsxs)(H.Fragment,{children:[n!==0&&(0,W.jsx)(`span`,{className:`mx-1`,children:`•`}),(0,W.jsx)(d,{className:`info-link`,appLink:e.getAppLink(t,e.queryParams),appLinkOptions:{replace:!0},children:t})]},`${t}:${n}`))]}):(0,W.jsx)(W.Fragment,{})}var Q={useOnFilterChange(e,t){let n={...t};delete n.query;let r=Object.keys(n).map(e=>n[e]).sort((e,t)=>e-t);H.useEffect(()=>{e()},[r.join(`:`)])},getCollectionActions(e,t,n,r){return[]},getSeriesAppLink(e){return e?.id?{application:_.EXCHANGE,action:v.Exchange.SERIES,args:[e.id,re.slugify(e.name)]}:null},getVideoAppLink(e){return e?.id?{application:_.EXCHANGE,action:v.Exchange.PREVIEW,args:[e.id,re.slugify(e.name)]}:null},getAppliedIndices(e={}){let{type:t}=e;if(t){if(!Array.isArray(t))return[t];if(t.length)return t}return[`video`]},getNestedCategoryIds(e,t){let n=e=>{let n=[],r=t.find(t=>+t.data.id==+e);if(!r?.children.length)return[e];let i=e=>{e&&(e.data&&n.push(e.data.id),e.children.length&&e.children.forEach(e=>{i(e)}))};return i(r),n};if(!Array.isArray(e))return n(e);let r=[...e].map(e=>n(e));return te.flatten(r)},buildBackendFilterParams(e,t,n=[],r){let i=t?.categoryId,a=i&&this.getNestedCategoryIds(i,r),o=Re.buildBackendFilterParams({...t,categoryId:a},n,null,!1,[]);return o[`${F.FILTER_PARAM_PREFIX}library`]=e,o},getBackendFilters(e){if(!e.hasDataLoaded)return null;let{queryParams:t,ratings:n,exchange:r,categories:i}=e;return{queryParams:t,backendFilters:Q.buildBackendFilterParams(r.data.id,t,n.data,i.data),appliedIndices:Q.getAppliedIndices(t)}},getFilters(e,t){if(!e.hasDataLoaded||!t.hasCompleted)return null;let{categories:n,ratings:r}=e;return{mainFilters:[I.Categories(n.data),I.Rating(r.data,null),I.HasResources(),I.HasSubtitles(),I.TagOrClassification(t.data)],moreFilters:Re.getMoreFilters([I.ProductionYear(),I.IsHD(),I.Duration()])}},getAppLink(e,t){return{application:_.EXCHANGE,action:v.Exchange.SEARCH,params:{...t,query:e}}}},sn=`exchange.searchResultsEmptyState`;function cn(e){return(0,W.jsx)(he.Provider,{value:sn,children:(0,W.jsxs)(S,{children:[(0,W.jsx)(S.Image,{src:le.EmptyStates.SEARCH}),(0,W.jsx)(S.Heading,{children:e.query?(0,W.jsx)(T,{phrase:`headingWithQuery`,options:{query:e.query}}):(0,W.jsx)(T,{phrase:`headingWithoutQuery`})}),(0,W.jsxs)(S.Info,{children:[(0,W.jsx)(T,{phrase:`info`}),(0,W.jsx)(d,{className:`info-link`,appLink:{application:_.EXCHANGE,action:v.Exchange.INDEX},children:(0,W.jsx)(T,{phrase:`topicsAppLink`})})]})]})})}function ln(e){let t=h(ue.currentUser()),n=h(L.exchange()),r=h(Xe.ratings()),i=h(L.categories());return{queryParams:e,currentUser:t,exchange:n,ratings:r,categories:i,hasDataLoaded:t.hasCompleted&&n.hasCompleted&&r.hasCompleted&&i.hasCompleted}}var un=`exchange.searchResultsView2`;function dn(e){let{queryParams:t,appliedIndices:n,backendFilters:r}=e,i=ye(),a=ee(),o=m(s()?.key);function s(i){return e.hasDataLoaded&&L.search(t.query,n,r,i)}function c(e){a(s(e))}function l(e,t){if(e===1)return We(t);i.error(ne.getPhrase(un,`error`))}return{...oe(s,c,l,e=>e.results),fetchNext:c,substituteQuery:o.data?.substituteQuery,suggestions:o.data?.suggestions}}var fn={video:D.VIDEO_COLLECTION,series:`rating,tallPoster`,playlist:`videos[count(),thumbnail]{limit:1},interactives[count(),_thumbnail]{limit:1},clips[count(),_thumbnail]{limit:1}`,classification:`_theme[banner,cover,tallposter,thumbnail,icon],cover,thumbnail,tags{tagtype:${Ie.Curation}}`,clip:D.CLIP_COLLECTION,interactive:D.INTERACTIVE_COLLECTION,company:`logo`,category:`libraries[_logo],thumbnail`,partner_profile:D.PARTNER_PROFILE};function pn(e){let t=e.totalResults,n=e?.results?.filter(e=>{if(e._index!==`series`&&e._index!==`playlist`)return!0;if(e._index===`playlist`){let n=e;return n.clips?.data?.length||n.interactives?.data?.length||n.videos?.data?.length?!0:(t--,!1)}return e.videos?.data?.length===0?(t--,!1):!0})??[];e.results=n,e.totalResults=t;let r=n[0]?._score;return{...e,results:Ve.mapMaxScoreToSearchResults(n,r)}}function $(e){return Object.entries(e).reduce((e,[,t])=>{let n=t;return typeof t==`object`?n=$(t):[`number`,`boolean`,`string`].includes(typeof t)&&(n=t.toString()),e.length?`${e},${n}`:n},``)}function mn(e,t){return Object.entries(e).reduce((e,[n,r])=>{let i=n.replace(F.FILTER_PARAM_PREFIX,``);return i===`presentation`&&t!==M.SearchTopResults&&t!==M.SearchRelatedResults&&t!==M.SearchSeries?e:{...e,[i]:r}},{})}var hn={searchDashboard(e,t,n=[]){let r=`search:v5:dashboard:${e}:${n.sort((e,t)=>e.id.localeCompare(t.id)).map(e=>[e.id,e?.cursor])}:${$(t)}`,{[`${F.FILTER_PARAM_PREFIX}indicesFilters`]:i,isLearner:a,...o}=t,s={widgets:n,indices:i,filters:mn(o,null),query:e,includeAllIndices:!1,isLearner:!!a};return{url:`{gateway}/v5/search/widgets`,publicUrl:`/api/search/v5/widgets`,type:g.POST,data:s,key:r}},searchDashboardWidget(e,t,n,r=[]){let i=`search:v5:dashboard:${e}:widget:${t}:${r.sort((e,t)=>e.id.localeCompare(t.id)).map(e=>[e.id,e?.cursor])}:${$(n)}`,{[`${F.FILTER_PARAM_PREFIX}indicesFilters`]:a,isLearner:o,excludeVideoIds:s,...c}=n,l={widgets:r,indices:a,filters:mn(c,e),query:t,includeAllIndices:!1,isLearner:!!o,ogql:fn,excludeVideoIds:s};return{url:`{gateway}/v5/search/widgets/${e}`,publicUrl:`/api/search/v5/widgets/${e}`,type:g.POST,data:l,key:i,formatData:e=>e&&{...e,content:e.content?.data?{...e.content,data:e.content.data.map(xe.applyThemeToClassification)}:e.content}}},searchV5(e,t,n=[]){let r=`search:v5:${e}:${n.sort((e,t)=>e.id.localeCompare(t.id)).map(e=>[e.id,e?.cursor])}:${$(t)}`,{[`${F.FILTER_PARAM_PREFIX}indicesFilters`]:i,isLearner:a,...o}=t,s={widgets:n,indices:i,filters:Object.entries(o).reduce((e,[t,n])=>({...e,[t.replace(`filters.`,``)]:n}),{}),query:e,includeAllIndices:!1,isLearner:!!a,ogql:fn};return{url:`{gateway}/v5/search`,publicUrl:`/api/search/v5`,type:g.POST,data:s,key:r}},searchV4(e){let{query:t,indices:n,filters:r={},sorts:i={},allowSubstitute:a=!0,cursor:o,limit:s}=e,c=`search:v4:${t}:${a}:${n}:${o}`;c+=Object.keys(r).map(e=>{let t=r[e];return Array.isArray(t)?t.join(`;`):t}).join(`;`);let{[`${F.FILTER_PARAM_PREFIX}excludeLibraryExclusive`]:l,isLearner:u,...d}=r,f={searchType:`content`,indices:n.map(e=>e!==`video`||!l?{index:e}:{index:e,filters:{excludeLibraryExclusive:l}}),filters:Object.entries(d).reduce((e,[t,n])=>({...e,[t.replace(`filters.`,``)]:n}),{}),sorts:i,query:t,allowSubstitute:a,cursor:o??void 0,isLearner:!!u,limit:s};return{url:`{gateway}/v4/search`,publicUrl:`/api/search/v4`,type:g.POST,data:f,key:c,formatData:pn}},search(e){let{query:t,indices:n,filters:r,allowSubstitute:i,cursor:a,limit:o,success:s,error:c}=e,l=`search:${t}:${i}:${n}:${a}`;l+=Object.keys(r).map(e=>{let t=r[e];return Array.isArray(t)?t.join(`;`):t}).join(`;`);let u=Object.assign({},{index:n,cursor:a??void 0,query:t,allowSubstitute:i,limit:o,...r});return{url:C.urlBuilder(`{gateway}/v3/search`,u),publicUrl:C.urlBuilder(`/api/search`,u),key:l,formatData:pn,success:s,error:c}},tagsAndClassifications(e,t,n={},r,i,a){let o={index:t,cursor:r,query:e,...n},s=`filter:options:${e}:${t.join(`:`)}:${r}`;return s+=Object.keys(n).map(e=>{let t=n[e];return Array.isArray(t)?t.join(`;`):t}).join(`;`),{url:C.urlBuilder(`{gateway}/v3/search/tags-and-classifications`,o),publicUrl:C.urlBuilder(`/api/search/tags-and-classifications`,o),key:s,success:i,error:a,normalize:!1}}};function gn(e){return h(e&&hn.tagsAndClassifications(e.queryParams.query,e.appliedIndices,e.backendFilters))}function _n(e){let{queryParams:t={}}=e,n=Ge(`video-list`),r=ln(t),{commonVideoProps:a}=Ae(),o=Q.getBackendFilters(r),s=gn(o),l=dn({...o,...r}),u=Q.getFilters(r,s);se({title:t.query??``});let d=r.hasDataLoaded&&u,f=l.hasFirstPageCompleted&&s.hasCompleted&&!!u,p=l.items?.length;return d?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(Ke,{query:t.query}),(0,W.jsx)(rn,{substitute:l.substituteQuery,queryParams:t,getAppLink:Q.getAppLink}),!l.substituteQuery&&(0,W.jsx)(on,{suggestions:l?.suggestions,queryParams:t,getAppLink:Q.getAppLink}),(0,W.jsx)(ze,{queryParams:t,mainFilters:u?.mainFilters,moreFilters:u?.moreFilters,analyticsOptions:{entity:c.SearchResults,location:i.SearchFilters},appLink:{application:_.EXCHANGE,action:v.Exchange.SEARCH},isFetchingOptions:s.isFetching}),f?(0,W.jsxs)(`section`,{children:[p?(0,W.jsx)(De.Provider,{value:n,children:(0,W.jsx)(tn,{queryParams:t.query,results:l.items,audiences:null,currentUser:r.currentUser.data,availablePresentations:null,showActions:!0,companies:null,hasPermissions:()=>!1,appLinks:{getCollectionActions:Q.getCollectionActions,getSeriesAppLink:Q.getSeriesAppLink,getVideoAppLink:Q.getVideoAppLink,getClassificationAppLink:()=>null,getClassificationAppLinkOptions:()=>null,getPlaylistAppLink:()=>null,getCompanyAppLink:()=>null,getPreviewQuestionsAppLink:()=>null},commonVideoProps:a})}):(0,W.jsx)(cn,{query:t.query}),l.hasMore&&(0,W.jsx)(ae,{isFetching:l.isFetching,fetchNext:l.fetchNext,nextCursor:l.nextCursor})]}):(0,W.jsx)(`div`,{className:`mx-n2`,children:(0,W.jsx)(ie,{})})]}):(0,W.jsx)(W.Fragment,{})}export{_n as ExchangeSearchResultsView};
|
|
3
|
-
//# sourceMappingURL=
|
|
3
|
+
//# sourceMappingURL=D_k-Kl3-2.chunk.js.map
|