@clickview/exchange 0.62.0-rc.1 → 0.62.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.vite/manifest.json +542 -542
- package/dist/bundles.json +1 -1
- package/dist/en.json +1 -1
- package/dist/scripts/{BPYdRA7H.chunk.js → 0uwnPAi2.chunk.js} +2 -2
- package/dist/scripts/{BPYdRA7H.chunk.js.map → 0uwnPAi2.chunk.js.map} +1 -1
- package/dist/scripts/{eUKFc6dK.chunk.js → 6f-CHYL3.chunk.js} +2 -2
- package/dist/scripts/{eUKFc6dK.chunk.js.map → 6f-CHYL3.chunk.js.map} +1 -1
- package/dist/scripts/{BS8sYAAh.chunk.js → B09qwiFG.chunk.js} +2 -2
- package/dist/scripts/{BS8sYAAh.chunk.js.map → B09qwiFG.chunk.js.map} +1 -1
- package/dist/scripts/{BbrEvwAi2.chunk.js → B0uOvqjG2.chunk.js} +2 -2
- package/dist/scripts/{BbrEvwAi2.chunk.js.map → B0uOvqjG2.chunk.js.map} +1 -1
- package/dist/scripts/{EIJf9JbR2.chunk.js → B8BobN3r2.chunk.js} +2 -2
- package/dist/scripts/{EIJf9JbR2.chunk.js.map → B8BobN3r2.chunk.js.map} +1 -1
- package/dist/scripts/{Ca_-2JTE2.chunk.js → B8wHzPHI2.chunk.js} +2 -2
- package/dist/scripts/{Ca_-2JTE2.chunk.js.map → B8wHzPHI2.chunk.js.map} +1 -1
- package/dist/scripts/{DkB0qBxI.chunk.js → BAIdKirt.chunk.js} +2 -2
- package/dist/scripts/{DkB0qBxI.chunk.js.map → BAIdKirt.chunk.js.map} +1 -1
- package/dist/scripts/{Bi8itw8v2.chunk.js → BAwP70HI2.chunk.js} +2 -2
- package/dist/scripts/{Bi8itw8v2.chunk.js.map → BAwP70HI2.chunk.js.map} +1 -1
- package/dist/scripts/{BHbt9wzx.chunk.js → BEv09vqz.chunk.js} +2 -2
- package/dist/scripts/{BHbt9wzx.chunk.js.map → BEv09vqz.chunk.js.map} +1 -1
- package/dist/scripts/{8pXw5z942.chunk.js → BLs3APIS2.chunk.js} +2 -2
- package/dist/scripts/{8pXw5z942.chunk.js.map → BLs3APIS2.chunk.js.map} +1 -1
- package/dist/scripts/{DuPL-nK72.chunk.js → BP0LMV9S2.chunk.js} +2 -2
- package/dist/scripts/{DuPL-nK72.chunk.js.map → BP0LMV9S2.chunk.js.map} +1 -1
- package/dist/scripts/{EO2xPuAQ.chunk.js → BPttZx0-.chunk.js} +2 -2
- package/dist/scripts/{EO2xPuAQ.chunk.js.map → BPttZx0-.chunk.js.map} +1 -1
- package/dist/scripts/{NtrZI2Ef.chunk.js → BQk9Mhlr.chunk.js} +2 -2
- package/dist/scripts/{NtrZI2Ef.chunk.js.map → BQk9Mhlr.chunk.js.map} +1 -1
- package/dist/scripts/{amjwjus3.chunk.js → BXIfsdxg.chunk.js} +2 -2
- package/dist/scripts/{amjwjus3.chunk.js.map → BXIfsdxg.chunk.js.map} +1 -1
- package/dist/scripts/{DKz4jhnr2.chunk.js → B_P4D3Hf2.chunk.js} +2 -2
- package/dist/scripts/{DKz4jhnr2.chunk.js.map → B_P4D3Hf2.chunk.js.map} +1 -1
- package/dist/scripts/{DfOgl-0-2.chunk.js → BgskDBpT2.chunk.js} +2 -2
- package/dist/scripts/{DfOgl-0-2.chunk.js.map → BgskDBpT2.chunk.js.map} +1 -1
- package/dist/scripts/{BsLLiG1-.chunk.js → BhOZYAZn.chunk.js} +2 -2
- package/dist/scripts/{BsLLiG1-.chunk.js.map → BhOZYAZn.chunk.js.map} +1 -1
- package/dist/scripts/{BaSi1pig.chunk.js → Bn9ROglk.chunk.js} +2 -2
- package/dist/scripts/{BaSi1pig.chunk.js.map → Bn9ROglk.chunk.js.map} +1 -1
- package/dist/scripts/{SDRXIwM22.chunk.js → Bo8PhXY12.chunk.js} +3 -3
- package/dist/scripts/{SDRXIwM22.chunk.js.map → Bo8PhXY12.chunk.js.map} +1 -1
- package/dist/scripts/{C3Hw2TpW2.chunk.js → BrVyRSUS2.chunk.js} +2 -2
- package/dist/scripts/{C3Hw2TpW2.chunk.js.map → BrVyRSUS2.chunk.js.map} +1 -1
- package/dist/scripts/{DmVXt6_V.chunk.js → BxLgTmMl.chunk.js} +2 -2
- package/dist/scripts/{DmVXt6_V.chunk.js.map → BxLgTmMl.chunk.js.map} +1 -1
- package/dist/scripts/{DsHiClyc2.chunk.js → Bxsu4S752.chunk.js} +2 -2
- package/dist/scripts/{DsHiClyc2.chunk.js.map → Bxsu4S752.chunk.js.map} +1 -1
- package/dist/scripts/{MYu2AEsL.chunk.js → C-PORBUs.chunk.js} +2 -2
- package/dist/scripts/{MYu2AEsL.chunk.js.map → C-PORBUs.chunk.js.map} +1 -1
- package/dist/scripts/{CxUrOnxW2.chunk.js → C1StI3Bl2.chunk.js} +2 -2
- package/dist/scripts/{CxUrOnxW2.chunk.js.map → C1StI3Bl2.chunk.js.map} +1 -1
- package/dist/scripts/{CKL4ViMC.chunk.js → C6Hr-vqw.chunk.js} +2 -2
- package/dist/scripts/{CKL4ViMC.chunk.js.map → C6Hr-vqw.chunk.js.map} +1 -1
- package/dist/scripts/{Bue5_bLM.chunk.js → CBnNAkzx.chunk.js} +2 -2
- package/dist/scripts/{Bue5_bLM.chunk.js.map → CBnNAkzx.chunk.js.map} +1 -1
- package/dist/scripts/{C03mMZ4k.chunk.js → CFkqPGiT.chunk.js} +2 -2
- package/dist/scripts/{C03mMZ4k.chunk.js.map → CFkqPGiT.chunk.js.map} +1 -1
- package/dist/scripts/{vvCGyl_q.chunk.js → CKD2j1rw.chunk.js} +2 -2
- package/dist/scripts/{vvCGyl_q.chunk.js.map → CKD2j1rw.chunk.js.map} +1 -1
- package/dist/scripts/{DqM6hYTJ2.chunk.js → CSKzCsLv2.chunk.js} +2 -2
- package/dist/scripts/{DqM6hYTJ2.chunk.js.map → CSKzCsLv2.chunk.js.map} +1 -1
- package/dist/scripts/{B7m3cCi42.chunk.js → CZgaUoHE2.chunk.js} +2 -2
- package/dist/scripts/{B7m3cCi42.chunk.js.map → CZgaUoHE2.chunk.js.map} +1 -1
- package/dist/scripts/{CL9SkODG.chunk.js → C_7tv1r9.chunk.js} +2 -2
- package/dist/scripts/{CL9SkODG.chunk.js.map → C_7tv1r9.chunk.js.map} +1 -1
- package/dist/scripts/{CKZJ2qae2.chunk.js → C_jUsStb2.chunk.js} +2 -2
- package/dist/scripts/{CKZJ2qae2.chunk.js.map → C_jUsStb2.chunk.js.map} +1 -1
- package/dist/scripts/{DSZkTUVU.chunk.js → CdNTKjPA.chunk.js} +2 -2
- package/dist/scripts/{DSZkTUVU.chunk.js.map → CdNTKjPA.chunk.js.map} +1 -1
- package/dist/scripts/{CfNYdg0m.chunk.js → ChDwbV8F.chunk.js} +2 -2
- package/dist/scripts/{CfNYdg0m.chunk.js.map → ChDwbV8F.chunk.js.map} +1 -1
- package/dist/scripts/{pOL5_XNC.chunk.js → Cq-TpkxJ.chunk.js} +2 -2
- package/dist/scripts/{pOL5_XNC.chunk.js.map → Cq-TpkxJ.chunk.js.map} +1 -1
- package/dist/scripts/{F1LOVRO_.chunk.js → CrCX606H.chunk.js} +2 -2
- package/dist/scripts/{F1LOVRO_.chunk.js.map → CrCX606H.chunk.js.map} +1 -1
- package/dist/scripts/{BtdygabL2.chunk.js → CrDpB82d2.chunk.js} +2 -2
- package/dist/scripts/{BtdygabL2.chunk.js.map → CrDpB82d2.chunk.js.map} +1 -1
- package/dist/scripts/{BvamDkjt2.chunk.js → Czivka682.chunk.js} +2 -2
- package/dist/scripts/{BvamDkjt2.chunk.js.map → Czivka682.chunk.js.map} +1 -1
- package/dist/scripts/{sViLex0Q.chunk.js → DEP_Z-S0.chunk.js} +2 -2
- package/dist/scripts/{sViLex0Q.chunk.js.map → DEP_Z-S0.chunk.js.map} +1 -1
- package/dist/scripts/{1iKkdpYv.chunk.js → DQBoqkL7.chunk.js} +2 -2
- package/dist/scripts/{1iKkdpYv.chunk.js.map → DQBoqkL7.chunk.js.map} +1 -1
- package/dist/scripts/{C2AXrtJf.chunk.js → DeXP2wHV.chunk.js} +2 -2
- package/dist/scripts/{C2AXrtJf.chunk.js.map → DeXP2wHV.chunk.js.map} +1 -1
- package/dist/scripts/{U0UyGd9c2.chunk.js → Df82DFJ62.chunk.js} +2 -2
- package/dist/scripts/{U0UyGd9c2.chunk.js.map → Df82DFJ62.chunk.js.map} +1 -1
- package/dist/scripts/{BlOKamx72.chunk.js → DgrEIxhT2.chunk.js} +2 -2
- package/dist/scripts/{BlOKamx72.chunk.js.map → DgrEIxhT2.chunk.js.map} +1 -1
- package/dist/scripts/{OBYDGOgI2.chunk.js → DhT0tpZm2.chunk.js} +2 -2
- package/dist/scripts/{OBYDGOgI2.chunk.js.map → DhT0tpZm2.chunk.js.map} +1 -1
- package/dist/scripts/{Ct_4zyE3.chunk.js → Dhe09-jE.chunk.js} +2 -2
- package/dist/scripts/{Ct_4zyE3.chunk.js.map → Dhe09-jE.chunk.js.map} +1 -1
- package/dist/scripts/{xEGWFFpD2.chunk.js → DhtgaF-y2.chunk.js} +2 -2
- package/dist/scripts/{xEGWFFpD2.chunk.js.map → DhtgaF-y2.chunk.js.map} +1 -1
- package/dist/scripts/{nMyWveQA2.chunk.js → Div1wl-R2.chunk.js} +2 -2
- package/dist/scripts/{nMyWveQA2.chunk.js.map → Div1wl-R2.chunk.js.map} +1 -1
- package/dist/scripts/{DG6L7zHU2.chunk.js → DjuXXgD-2.chunk.js} +2 -2
- package/dist/scripts/{DG6L7zHU2.chunk.js.map → DjuXXgD-2.chunk.js.map} +1 -1
- package/dist/scripts/{BAN6QE-X.chunk.js → Dkazht4Q.chunk.js} +2 -2
- package/dist/scripts/{BAN6QE-X.chunk.js.map → Dkazht4Q.chunk.js.map} +1 -1
- package/dist/scripts/{D_k-Kl3-2.chunk.js → DmmZ2XbB2.chunk.js} +2 -2
- package/dist/scripts/{D_k-Kl3-2.chunk.js.map → DmmZ2XbB2.chunk.js.map} +1 -1
- package/dist/scripts/{l7UAnIb0.chunk.js → Dr35AMvf.chunk.js} +2 -2
- package/dist/scripts/{l7UAnIb0.chunk.js.map → Dr35AMvf.chunk.js.map} +1 -1
- package/dist/scripts/{CK_CN_mA.chunk.js → HgLS_KfH.chunk.js} +2 -2
- package/dist/scripts/{CK_CN_mA.chunk.js.map → HgLS_KfH.chunk.js.map} +1 -1
- package/dist/scripts/{Pixwk-h-.chunk.js → W8Q7Z6fd.chunk.js} +2 -2
- package/dist/scripts/{Pixwk-h-.chunk.js.map → W8Q7Z6fd.chunk.js.map} +1 -1
- package/dist/scripts/{BzJLc19T2.chunk.js → XWykPl9h2.chunk.js} +2 -2
- package/dist/scripts/{BzJLc19T2.chunk.js.map → XWykPl9h2.chunk.js.map} +1 -1
- package/dist/scripts/{G-hiM6b42.chunk.js → _3n_0ch72.chunk.js} +2 -2
- package/dist/scripts/{G-hiM6b42.chunk.js.map → _3n_0ch72.chunk.js.map} +1 -1
- package/dist/scripts/{app-BGxmHvGl.js → app-CgkYY4K0.js} +3 -3
- package/dist/scripts/app-CgkYY4K0.js.map +1 -0
- package/dist/scripts/{BINz0dmF.chunk.js → go6zFmPK.chunk.js} +2 -2
- package/dist/scripts/{BINz0dmF.chunk.js.map → go6zFmPK.chunk.js.map} +1 -1
- package/dist/scripts/{DFXpg6rF.chunk.js → p5-1Ey-R.chunk.js} +2 -2
- package/dist/scripts/{DFXpg6rF.chunk.js.map → p5-1Ey-R.chunk.js.map} +1 -1
- package/dist/scripts/{BobZ5p_m2.chunk.js → qrcrWbQJ2.chunk.js} +2 -2
- package/dist/scripts/{BobZ5p_m2.chunk.js.map → qrcrWbQJ2.chunk.js.map} +1 -1
- package/package.json +1 -1
- package/dist/scripts/app-BGxmHvGl.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xEGWFFpD2.chunk.js","names":[],"sources":["../../../../libs/shared/src/flight-requests/LibraryRequests.ts"],"sourcesContent":["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';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { SharedWithStatements } from 'libs/shared/constants/WithStatements';\nimport { VideoSortType } from 'libs/shared/enums/VideoSortType';\nimport { Folder, FolderCollection, Library, LibrarySubscriberCollection, MasterNestedObject } from 'libs/shared/interfaces';\nimport { AddToLibraryRequest } from 'libs/shared/interfaces/requests/AddToLibraryRequest';\nimport { LibraryExportRequest } from 'libs/shared/interfaces/requests/LibraryExportRequest';\nimport { LibraryExportRequestV2 } from 'libs/shared/interfaces/requests/LibraryExportRequestV2';\nimport { LibraryApiXhr } from 'libs/shared/interfaces/responses/ErrorResponse';\n\nexport type DomainMasterCollectionType =\n 'sharedLibrary' |\n 'customLibrary' |\n 'unpublishedCustomLibrary' |\n 'exchange' |\n 'workspace' |\n 'hostedLibrary';\n\nexport const LibraryRequests = {\n domainLibraries(\n type: Array<DomainMasterCollectionType>,\n success?: (data: Library[]) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder('/api/domain/v2/me/libraries', {\n type,\n maxCategoryDepth: 0\n }),\n key: `libraries:${type.sort().join(':')}`,\n formatData: (data: MasterNestedObject<Library>[]) => data.map(d => d.data),\n success,\n error,\n always\n };\n },\n\n libraryRequestLibraries(): Flight.Request {\n return {\n url: `{gateway}/v1/library-requests/libraries`,\n key: 'libraries'\n };\n },\n\n librariesWithCategories(): Flight.Request {\n return {\n url: UrlHelper.urlBuilder('/api/domain/v2/me/libraries', {\n type: [ 'sharedLibrary', 'customLibrary', 'unpublishedCustomLibrary' ],\n maxCategoryDepth: 5\n }),\n key: 'libraries:with:categories',\n normalize: false\n };\n },\n\n librariesWithOwnerLogos(\n libraryIds: string[],\n success?: (data: Library[]) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n libraryIds.sort();\n\n return {\n url: UrlHelper.urlBuilder('/api/domain/v2/objects', {\n query: SharedWithStatements.LIBRARY_COLLECTION,\n id: libraryIds\n }),\n key: `libraries:owner:logo:${libraryIds.join(',')}`,\n success,\n error,\n always\n };\n },\n\n library(\n id: string,\n success?: (data: Folder) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/${id}`, {\n query: SharedWithStatements.LIBRARY\n }),\n key: `library:${id}`,\n success,\n error,\n always\n };\n },\n\n exchange(\n id: string\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/${id}`, {\n query: 'categorytree'\n }),\n key: `exchange`\n };\n },\n\n streamableLearning(): Flight.Request {\n return {\n url: '{gateway}/v1/streamable-learning-library',\n key: 'streamable:learning'\n };\n },\n\n librarySubscribers(id: string, cursor?: string): Flight.Request {\n const params: HashObject = {};\n\n if (cursor)\n params.cursor = cursor;\n\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/library-requests/libraries/${id}/subscribers`, params),\n key: `library:subscribers:${id}:${cursor}`\n };\n },\n\n libraryOwner(id: string): Flight.Request {\n return {\n url: `{gateway}/v1/library-requests/libraries/${id}/subscribers?ownerOnly=true`,\n key: `library:owner:${id}`,\n formatData: (collection: LibrarySubscriberCollection) => {\n return ArrayHelper.first(collection.data);\n }\n };\n },\n\n updateSubscriberPermissions(\n libraryId: string,\n customerId: string,\n allowLibraryRequests: boolean,\n success?: () => void,\n error?: (xhr?: LibraryApiXhr) => void\n ): Flight.Request {\n return {\n url: `{gateway}/v1/libraries/${libraryId}/library-request-permissions`,\n key: `update:subscriber:permissions:${libraryId}:${customerId}`,\n type: HttpVerbs.PUT,\n data: {\n customerId,\n granted: allowLibraryRequests\n },\n invalidationKeys: [\n `library:owner:${libraryId}`,\n `library:subscribers:${libraryId}`\n ],\n success,\n error\n };\n },\n\n removeSubscriber(\n libraryId: string,\n customerId: string,\n success?: () => void,\n error?: () => void\n ): Flight.Request {\n return {\n url: `{gateway}/v1/objects/${libraryId}/subscribedcustomers?memberId=${customerId}`,\n key: `revoke:subscription:${libraryId}:${customerId}`,\n type: HttpVerbs.DELETE,\n invalidationKeys: [`library:subscribers:${libraryId}`],\n success,\n error\n };\n },\n\n folder(\n id: string,\n success?: (data: Folder) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: `{gateway}/v1/objects/${id}?query=banner,libraries`,\n key: `library:folder:${id}`,\n success,\n error,\n always\n };\n },\n\n videoFolders(id: string): Flight.Request {\n return {\n url: `{gateway}/v1/objects/${id}/categories?query=libraries`,\n key: `video:folders:${id}`\n };\n },\n\n folderParentTree(\n id: string,\n success?: (data: MasterNestedObject<Folder>) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: `/api/domain/v2/categories/${id}/parent-tree?includeAll=false`,\n key: `folder:parent:tree${id}`,\n success,\n error,\n always\n };\n },\n\n childFolders(\n id: string,\n cursor?: string,\n success?: (data: Folder[]) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n let url = `{gateway}/v1/objects/${id}/categories?query={limit:100}thumbnail`;\n let key = `child:folders:${id}`;\n\n if (cursor) {\n url += `&cursor=${cursor}`;\n key += `:${cursor}`;\n }\n\n return {\n url,\n key,\n formatData: (folders: FolderCollection) => {\n const data = folders.data.sort((a, b) => {\n return a.name.toLowerCase().localeCompare(b.name.toLowerCase());\n });\n\n return {\n ...folders,\n data\n };\n },\n success,\n error,\n always\n };\n },\n\n addToLibrary(data: AddToLibraryRequest, sort: VideoSortType): Flight.Request {\n const folderVideosKey = [ 'folder', 'videos', data.metadata.destinationCategoryId, sort ].filter(k => !!k).join(':');\n \n return {\n url: `{gateway}/v1/library-requests`,\n key: `add:${data.objectId}:to:${data.destinationLibraryId}:${data.metadata.destinationCategoryId}`,\n type: HttpVerbs.POST,\n data,\n invalidationKeys: folderVideosKey\n };\n },\n\n libraries(): Flight.Request {\n return {\n url: '{gateway}/v1/users/me/libraries',\n key: 'objects:libraries'\n };\n },\n\n libraryExport(data: LibraryExportRequest): Flight.Request {\n return {\n url: '{gateway}/v1/libraries/export',\n key: 'library:export',\n type: HttpVerbs.POST,\n data\n };\n },\n\n libraryExportV2(data: LibraryExportRequestV2): Flight.Request {\n return {\n url: '{gateway}/v2/libraries/export',\n key: 'library:export:v2',\n type: HttpVerbs.POST,\n data\n };\n }\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DhtgaF-y2.chunk.js","names":[],"sources":["../../../../libs/shared/src/flight-requests/LibraryRequests.ts"],"sourcesContent":["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';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { SharedWithStatements } from 'libs/shared/constants/WithStatements';\nimport { VideoSortType } from 'libs/shared/enums/VideoSortType';\nimport { Folder, FolderCollection, Library, LibrarySubscriberCollection, MasterNestedObject } from 'libs/shared/interfaces';\nimport { AddToLibraryRequest } from 'libs/shared/interfaces/requests/AddToLibraryRequest';\nimport { LibraryExportRequest } from 'libs/shared/interfaces/requests/LibraryExportRequest';\nimport { LibraryExportRequestV2 } from 'libs/shared/interfaces/requests/LibraryExportRequestV2';\nimport { LibraryApiXhr } from 'libs/shared/interfaces/responses/ErrorResponse';\n\nexport type DomainMasterCollectionType =\n 'sharedLibrary' |\n 'customLibrary' |\n 'unpublishedCustomLibrary' |\n 'exchange' |\n 'workspace' |\n 'hostedLibrary';\n\nexport const LibraryRequests = {\n domainLibraries(\n type: Array<DomainMasterCollectionType>,\n success?: (data: Library[]) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder('/api/domain/v2/me/libraries', {\n type,\n maxCategoryDepth: 0\n }),\n key: `libraries:${type.sort().join(':')}`,\n formatData: (data: MasterNestedObject<Library>[]) => data.map(d => d.data),\n success,\n error,\n always\n };\n },\n\n libraryRequestLibraries(): Flight.Request {\n return {\n url: `{gateway}/v1/library-requests/libraries`,\n key: 'libraries'\n };\n },\n\n librariesWithCategories(): Flight.Request {\n return {\n url: UrlHelper.urlBuilder('/api/domain/v2/me/libraries', {\n type: [ 'sharedLibrary', 'customLibrary', 'unpublishedCustomLibrary' ],\n maxCategoryDepth: 5\n }),\n key: 'libraries:with:categories',\n normalize: false\n };\n },\n\n librariesWithOwnerLogos(\n libraryIds: string[],\n success?: (data: Library[]) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n libraryIds.sort();\n\n return {\n url: UrlHelper.urlBuilder('/api/domain/v2/objects', {\n query: SharedWithStatements.LIBRARY_COLLECTION,\n id: libraryIds\n }),\n key: `libraries:owner:logo:${libraryIds.join(',')}`,\n success,\n error,\n always\n };\n },\n\n library(\n id: string,\n success?: (data: Folder) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/${id}`, {\n query: SharedWithStatements.LIBRARY\n }),\n key: `library:${id}`,\n success,\n error,\n always\n };\n },\n\n exchange(\n id: string\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/${id}`, {\n query: 'categorytree'\n }),\n key: `exchange`\n };\n },\n\n streamableLearning(): Flight.Request {\n return {\n url: '{gateway}/v1/streamable-learning-library',\n key: 'streamable:learning'\n };\n },\n\n librarySubscribers(id: string, cursor?: string): Flight.Request {\n const params: HashObject = {};\n\n if (cursor)\n params.cursor = cursor;\n\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/library-requests/libraries/${id}/subscribers`, params),\n key: `library:subscribers:${id}:${cursor}`\n };\n },\n\n libraryOwner(id: string): Flight.Request {\n return {\n url: `{gateway}/v1/library-requests/libraries/${id}/subscribers?ownerOnly=true`,\n key: `library:owner:${id}`,\n formatData: (collection: LibrarySubscriberCollection) => {\n return ArrayHelper.first(collection.data);\n }\n };\n },\n\n updateSubscriberPermissions(\n libraryId: string,\n customerId: string,\n allowLibraryRequests: boolean,\n success?: () => void,\n error?: (xhr?: LibraryApiXhr) => void\n ): Flight.Request {\n return {\n url: `{gateway}/v1/libraries/${libraryId}/library-request-permissions`,\n key: `update:subscriber:permissions:${libraryId}:${customerId}`,\n type: HttpVerbs.PUT,\n data: {\n customerId,\n granted: allowLibraryRequests\n },\n invalidationKeys: [\n `library:owner:${libraryId}`,\n `library:subscribers:${libraryId}`\n ],\n success,\n error\n };\n },\n\n removeSubscriber(\n libraryId: string,\n customerId: string,\n success?: () => void,\n error?: () => void\n ): Flight.Request {\n return {\n url: `{gateway}/v1/objects/${libraryId}/subscribedcustomers?memberId=${customerId}`,\n key: `revoke:subscription:${libraryId}:${customerId}`,\n type: HttpVerbs.DELETE,\n invalidationKeys: [`library:subscribers:${libraryId}`],\n success,\n error\n };\n },\n\n folder(\n id: string,\n success?: (data: Folder) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: `{gateway}/v1/objects/${id}?query=banner,libraries`,\n key: `library:folder:${id}`,\n success,\n error,\n always\n };\n },\n\n videoFolders(id: string): Flight.Request {\n return {\n url: `{gateway}/v1/objects/${id}/categories?query=libraries`,\n key: `video:folders:${id}`\n };\n },\n\n folderParentTree(\n id: string,\n success?: (data: MasterNestedObject<Folder>) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: `/api/domain/v2/categories/${id}/parent-tree?includeAll=false`,\n key: `folder:parent:tree${id}`,\n success,\n error,\n always\n };\n },\n\n childFolders(\n id: string,\n cursor?: string,\n success?: (data: Folder[]) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n let url = `{gateway}/v1/objects/${id}/categories?query={limit:100}thumbnail`;\n let key = `child:folders:${id}`;\n\n if (cursor) {\n url += `&cursor=${cursor}`;\n key += `:${cursor}`;\n }\n\n return {\n url,\n key,\n formatData: (folders: FolderCollection) => {\n const data = folders.data.sort((a, b) => {\n return a.name.toLowerCase().localeCompare(b.name.toLowerCase());\n });\n\n return {\n ...folders,\n data\n };\n },\n success,\n error,\n always\n };\n },\n\n addToLibrary(data: AddToLibraryRequest, sort: VideoSortType): Flight.Request {\n const folderVideosKey = [ 'folder', 'videos', data.metadata.destinationCategoryId, sort ].filter(k => !!k).join(':');\n \n return {\n url: `{gateway}/v1/library-requests`,\n key: `add:${data.objectId}:to:${data.destinationLibraryId}:${data.metadata.destinationCategoryId}`,\n type: HttpVerbs.POST,\n data,\n invalidationKeys: folderVideosKey\n };\n },\n\n libraries(): Flight.Request {\n return {\n url: '{gateway}/v1/users/me/libraries',\n key: 'objects:libraries'\n };\n },\n\n libraryExport(data: LibraryExportRequest): Flight.Request {\n return {\n url: '{gateway}/v1/libraries/export',\n key: 'library:export',\n type: HttpVerbs.POST,\n data\n };\n },\n\n libraryExportV2(data: LibraryExportRequestV2): Flight.Request {\n return {\n url: '{gateway}/v2/libraries/export',\n key: 'library:export:v2',\n type: HttpVerbs.POST,\n data\n };\n }\n};\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{D as e,_t as t,mn as n}from"./CnnBLBPY.chunk.js";import{k as r}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{D as e,_t as t,mn as n}from"./CnnBLBPY.chunk.js";import{k as r}from"./app-CgkYY4K0.js";var i=n(e());function a(...e){i.useEffect(()=>{e.length&&e.some(t.isStatusCodeError)&&t.throw(new r)},e)}export{a as t};
|
|
2
|
+
//# sourceMappingURL=Div1wl-R2.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"Div1wl-R2.chunk.js","names":[],"sources":["../../../../libs/shared/src/hooks/UseHandleDialogError.ts"],"sourcesContent":["import React from 'react';\n\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { Core } from 'libs/common/backbone/index';\n\nimport { UnspecifiedDialogError } from 'libs/shared/errors/general/unspecified-dialog/UnspecifiedDialogError';\n\nexport function useHandleDialogError(...statusCodes: HttpStatus[]): void {\n React.useEffect(() => {\n if (!statusCodes.length)\n return;\n\n const hasErrorCode = statusCodes.some(Core.ErrorHelper.isStatusCodeError);\n\n if (!hasErrorCode)\n return;\n\n Core.ErrorHelper.throw(new UnspecifiedDialogError());\n }, statusCodes);\n}\n"],"mappings":"2GAOA,SAAgB,EAAqB,GAAG,EAAiC,CACvE,EAAM,cAAgB,CACf,EAAY,QAGI,EAAY,KAAA,EAAsB,kBAAkB,EAKzE,EAAiB,MAAM,IAAI,EAAyB,EACnD,EAAY"}
|
|
@@ -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-CgkYY4K0.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=DjuXXgD-2.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
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
|
+
{"version":3,"file":"DjuXXgD-2.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{S as e,b as t,d as n,s as r,x as i}from"./CnnBLBPY.chunk.js";import{l as a,p as o,u as s}from"./D8clSITt.chunk.js";import{t as c}from"./GN6vNflP.chunk.js";import{n as l,t as u}from"./Dn3hwC-o.chunk.js";import{t as d}from"./CrBD6Z4s.chunk.js";import{t as f}from"./CRRZVEmA.chunk.js";import{t as p}from"./D_PyfoSL.chunk.js";import{C as m,S as h,Z as g,l as _,tt as v}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{S as e,b as t,d as n,s as r,x as i}from"./CnnBLBPY.chunk.js";import{l as a,p as o,u as s}from"./D8clSITt.chunk.js";import{t as c}from"./GN6vNflP.chunk.js";import{n as l,t as u}from"./Dn3hwC-o.chunk.js";import{t as d}from"./CrBD6Z4s.chunk.js";import{t as f}from"./CRRZVEmA.chunk.js";import{t as p}from"./D_PyfoSL.chunk.js";import{C as m,S as h,Z as g,l as _,tt as v}from"./app-CgkYY4K0.js";import{t as y}from"./DhtgaF-y2.chunk.js";import{t as b}from"./_3n_0ch72.chunk.js";import{n as x}from"./BLtXMKpA.chunk.js";var S=function(e){return e.Developer=`Curator Devs`,e.Content=`Content`,e.Curator=`Curators`,e.Support=`Support`,e.SalesSupport=`Sales Support`,e.GraphicDesigner=`Graphic Designers`,e.MetadataEditor=`Metadata Editors`,e.ResourcingManager=`Resourcing Managers`,e.SeniorContentManager=`Senior Content Manager`,e.Marketing=`Marketing`,e.Sales=`Sales Representatives`,e.StreamableCurator=`Streamable Curator`,e.SupportExtraPermission=`Support - Extra Permissions`,e.SeoManager=`SEO Manager`,e.ContentReviewer=`Content Reviewer`,e}({}),C=c.encloseNamespace(`shared.hooks`);function w(e,t,n,r){let i=d.safeUrlConcat(e,`manage`),a=d.safeUrlConcat(e,`exchange`),o=(e,t,n)=>d.safeUrlConcat(e,`${t}/${n}`);switch(t){case v.Subject:return d.safeUrlConcat(i,`subjects/presentations/${r}/classifications/${n}/edit`);case v.Video:return o(i,`videos`,n);case v.Playlist:return o(i,`playlists`,n);case v.Series:return o(i,`series`,n);case v.Company:return o(i,`companies`,n);case v.Interactive:return o(i,`interactives`,n);case v.Clip:return o(i,`clips`,n);case v.Category:return o(a,`categories`,n)}}function T(){return C(`openInCurationStudio`)}function E(){let e=a(f.currentUser()),{data:t}=a(e.data?.id&&f.groups(e.data?.id)),n=a(g.config()),r=[S.Curator,S.Content,S.Developer];function i(){return r.some(e=>t?.data.find(t=>t.name===e))}return{openInCurationStudioLabel:T(),isUserCurator:i(),getOpenInCurationStudioLink:(e,t,r)=>w(n.data?.curatorUrl,e,t,r)}}var D=function(e){return e[e.PlayPage=0]=`PlayPage`,e}({});function O(e){let t=o(),n=s();function r(t){return e.type===D.PlayPage?b.getVideoRequest(t.id,t.typeId,e.shareId):null}function i(e){let i=r(e);t(i.key).shouldFetch&&n(i)}function a(e){return t(r(e).key).hasCompleted}return{hydrate:i,isHydrated:a}}var k=c.encloseNamespace(`exchange.exchangeHooks`),A={lazyPlaceholder:!0};function j(o){let{hasPermissions:s}=m(),{isUserCurator:c,openInCurationStudioLabel:d,getOpenInCurationStudioLink:f}=E(),b=a(g.config()),S=a(s(p.ContributeVideo)&&y.libraryRequestLibraries()),{hydrate:C,isHydrated:w}=O({type:D.PlayPage});function T(a){let s=o===`preview`,p={id:a.id,name:a.name},m=s?n.VideoItemPreview:n.VideoListItem,g=[{order:10,label:s?k(`openInClickView`):``,svg:h,tooltip:s?``:k(`openInClickView`),className:s?`btn btn-dark me-2`:``,button:!0,href:b.data&&_.safeUrlConcat(b.data.liteUrl,`/videos/${a.id}`),analyticsData:p,analyticsOptions:{actionType:t.Click,entity:r.Video,descriptor:i.OpenInClickView,location:m,workflowPhase:e.Start}},{order:20,label:s?k(`addVideo`):null,svg:s?void 0:x,tooltip:s?``:k(`addVideo`),button:!s,appLink:{application:l.EXCHANGE,action:u.Exchange.ADD,args:[a.id]},analyticsData:p,analyticsOptions:{actionType:t.Click,entity:r.Video,descriptor:i.AddToWorkspace,location:m,workflowPhase:e.Start}},{order:30,label:k(`suggest`),className:``,appLink:{application:l.EXCHANGE,action:u.Exchange.SUGGEST_EDIT,args:[a.id],params:{location:m}},analyticsData:p,analyticsOptions:{actionType:t.Click,entity:r.Video,descriptor:i.SuggestEdit,location:m,workflowPhase:e.Start}}];return w(a)?(a._canAddToLibrary?.customLibrary&&S.data?.length&&g.push({order:25,label:k(`addToLibrary`),className:``,appLink:{application:l.EXCHANGE,action:u.Exchange.ADD_TO_LIBRARY,args:[a.id]},analyticsData:p,analyticsOptions:{actionType:t.Create,entity:r.LibraryRequest,workflowPhase:e.Start,location:m}}),a._canDownload?.value&&g.push({order:40,label:k(`download`),className:``,appLink:{application:l.EXCHANGE,action:u.Exchange.DOWNLOAD_VIDEO,args:[a.id]},analyticsData:p,analyticsOptions:{actionType:t.Download,entity:r.Video,workflowPhase:e.Start,location:m}}),c&&g.push({order:50,label:d,openInNewTab:!0,href:f(v.Video,a.id)}),g):[...g,A]}return{getVideoActions:T,fetchMoreActions:e=>C(e)}}export{E as n,j as t};
|
|
2
|
+
//# sourceMappingURL=Dkazht4Q.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BAN6QE-X.chunk.js","names":[],"sources":["../../../../libs/shared/src/enums/CuratorGroup.ts","../../../../libs/shared/src/hooks/useCurationStudio.ts","../../../../libs/shared/src/hooks/useVideohydration.ts","../../src/apps/exchange/hooks/useGetExchangeActions.ts"],"sourcesContent":["/**\n * The values in this enum directly\n * map to the group names in Master.\n */\nexport enum CuratorGroup {\n Developer = 'Curator Devs',\n Content = 'Content',\n Curator = 'Curators',\n Support = 'Support',\n SalesSupport = 'Sales Support',\n GraphicDesigner = 'Graphic Designers',\n MetadataEditor = 'Metadata Editors',\n ResourcingManager = 'Resourcing Managers',\n SeniorContentManager = 'Senior Content Manager',\n Marketing = 'Marketing',\n Sales = 'Sales Representatives',\n StreamableCurator = 'Streamable Curator',\n SupportExtraPermission = 'Support - Extra Permissions',\n SeoManager = 'SEO Manager',\n ContentReviewer = 'Content Reviewer'\n}\n","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/react/index';\n\nimport { CuratorGroup } from 'libs/shared/enums/CuratorGroup';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { Config, CuratorUserGroupCollection, CurrentUser } from 'libs/shared/interfaces';\n\nconst namespace = 'shared.hooks';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function getOpenInCurationStudioLink(\n baseUrl: string,\n objectType: MasterType | string,\n id: string,\n presentationId?: string\n) {\n const baseManageUrl = UrlHelper.safeUrlConcat(baseUrl, 'manage');\n const baseExchangeUrl = UrlHelper.safeUrlConcat(baseUrl, 'exchange');\n const href = (baseUrl: string, objectType: string, id: string) => UrlHelper.safeUrlConcat(baseUrl, `${objectType}/${id}`);\n\n switch (objectType) {\n case MasterType.Subject:\n return UrlHelper.safeUrlConcat(baseManageUrl, `subjects/presentations/${presentationId}/classifications/${id}/edit`);\n case MasterType.Video:\n return href(baseManageUrl, 'videos', id);\n case MasterType.Playlist:\n return href(baseManageUrl, 'playlists', id);\n case MasterType.Series:\n return href(baseManageUrl, 'series', id);\n case MasterType.Company:\n return href(baseManageUrl, 'companies', id);\n case MasterType.Interactive:\n return href(baseManageUrl, 'interactives', id);\n case MasterType.Clip:\n return href(baseManageUrl, 'clips', id);\n case MasterType.Category:\n return href(baseExchangeUrl, 'categories', id);\n }\n}\n\nexport function getOpenInCurationStudioLabel(): string {\n return getPhrase('openInCurationStudio');\n}\n\nexport function useCurationStudio() {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const { data: userGroups } = Flight.useBasicFetch<CuratorUserGroupCollection>(\n (currentUser.data?.id) && UserRequests.groups(currentUser.data?.id)\n );\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n \n const curatorGroups = [ CuratorGroup.Curator, CuratorGroup.Content, CuratorGroup.Developer ];\n\n function isUserCurator(): boolean {\n return curatorGroups.some(group => userGroups?.data.find(userGroup => userGroup.name === group));\n }\n\n return {\n openInCurationStudioLabel: getOpenInCurationStudioLabel(),\n isUserCurator: isUserCurator(),\n getOpenInCurationStudioLink: (objectType: MasterType | string, id: string, presentationId?: string) =>\n getOpenInCurationStudioLink(config.data?.curatorUrl, objectType, id, presentationId)\n };\n}\n","import { Flight } from 'libs/common/react/index';\n\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nexport enum VideoHydrationType {\n PlayPage\n}\n\ninterface UseVideoHydrationOptions {\n type: VideoHydrationType;\n shareId?: string;\n}\n\nexport function useVideoHydration(options: UseVideoHydrationOptions) {\n const getResponse = Flight.useGetResponseFunc();\n const fetch = Flight.useGetFetch();\n \n function getRequest(video: VideoTypes): Flight.Request {\n if (options.type !== VideoHydrationType.PlayPage)\n return null;\n\n return VideoHelper.getVideoRequest(video.id, video.typeId, options.shareId);\n }\n \n function hydrate(video: VideoTypes): void {\n const request = getRequest(video);\n const resp = getResponse(request.key);\n\n resp.shouldFetch && fetch(request);\n }\n\n function isHydrated(video: VideoTypes): boolean {\n const request = getRequest(video);\n const resp = getResponse(request.key);\n\n return resp.hasCompleted;\n }\n\n return { hydrate, isHydrated };\n}\n","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { EntityType, LocationContext, UserAction, VideoActionDescriptor, WorkflowPhase } from 'libs/analytics/interfaces';\nimport { UrlHelper } from 'libs/analytics/utils/UrlHelper';\n\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { LibraryRequests } from 'libs/shared/flight-requests/LibraryRequests';\nimport { useCurationStudio } from 'libs/shared/hooks/useCurationStudio';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useVideoHydration, VideoHydrationType } from 'libs/shared/hooks/useVideohydration';\nimport { AddVideoSvg } from 'libs/shared/images/svg/actions/AddVideoSvg';\nimport { NewWindowSvg } from 'libs/shared/images/svg/actions/NewWindowSvg';\nimport { Config, Library, Video, VideoTypes } from 'libs/shared/interfaces';\n\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nconst namespace = 'exchange.exchangeHooks';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ntype Location = 'preview' | 'video-list';\n\nconst FETCH_MORE_ACTION_OPTION: ActionOptions = {\n lazyPlaceholder: true\n};\n\nexport function useGetExchangeActions(location: Location) {\n const { hasPermissions } = usePermissions();\n\n const { isUserCurator, openInCurationStudioLabel, getOpenInCurationStudioLink } = useCurationStudio();\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n const requestLibraries = Flight.useBasicFetch<Library[]>(\n hasPermissions(PermissionName.ContributeVideo) &&\n LibraryRequests.libraryRequestLibraries()\n );\n\n const { hydrate, isHydrated } = useVideoHydration({\n type: VideoHydrationType.PlayPage\n });\n \n function getVideoActions(video: Video): ActionOptions[] {\n const isPreview = location === 'preview';\n const analyticsData = { id: video.id, name: video.name };\n const locationContext = isPreview ? LocationContext.VideoItemPreview : LocationContext.VideoListItem;\n\n const actions: ActionOptions[] = [{\n order: 10,\n label: isPreview ? getPhrase('openInClickView') : '',\n svg: NewWindowSvg,\n tooltip: isPreview ? '' : getPhrase('openInClickView'),\n className: isPreview ? 'btn btn-dark me-2' : '',\n button: true,\n href: config.data && UrlHelper.safeUrlConcat(config.data.liteUrl, `/videos/${video.id}`),\n analyticsData,\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Video,\n descriptor: VideoActionDescriptor.OpenInClickView,\n location: locationContext,\n workflowPhase: WorkflowPhase.Start\n }\n }, {\n order: 20,\n label: isPreview ? getPhrase('addVideo') : null,\n svg: !isPreview ? AddVideoSvg : undefined,\n tooltip: isPreview ? '' : getPhrase('addVideo'),\n button: !isPreview,\n appLink: {\n application: AppChannels.EXCHANGE,\n action: Actions.Exchange.ADD,\n args: [video.id]\n },\n analyticsData,\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Video,\n descriptor: VideoActionDescriptor.AddToWorkspace,\n location: locationContext,\n workflowPhase: WorkflowPhase.Start\n }\n }, {\n order: 30,\n label: getPhrase('suggest'),\n className: '',\n appLink: {\n application: AppChannels.EXCHANGE,\n action: Actions.Exchange.SUGGEST_EDIT,\n args: [video.id],\n params: { location: locationContext }\n },\n analyticsData,\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Video,\n descriptor: VideoActionDescriptor.SuggestEdit,\n location: locationContext,\n workflowPhase: WorkflowPhase.Start\n }\n }];\n\n if (!isHydrated(video)) {\n return [ ...actions, FETCH_MORE_ACTION_OPTION ];\n }\n\n if (video._canAddToLibrary?.customLibrary && requestLibraries.data?.length) {\n actions.push({\n order: 25,\n label: getPhrase('addToLibrary'),\n className: '',\n appLink: {\n application: AppChannels.EXCHANGE,\n action: Actions.Exchange.ADD_TO_LIBRARY,\n args: [video.id]\n },\n analyticsData,\n analyticsOptions: {\n actionType: UserAction.Create,\n entity: EntityType.LibraryRequest,\n workflowPhase: WorkflowPhase.Start,\n location: locationContext\n }\n });\n }\n\n if (video._canDownload?.value) {\n actions.push({\n order: 40,\n label: getPhrase('download'),\n className: '',\n appLink: {\n application: AppChannels.EXCHANGE,\n action: Actions.Exchange.DOWNLOAD_VIDEO,\n args: [video.id]\n },\n analyticsData,\n analyticsOptions: {\n actionType: UserAction.Download,\n entity: EntityType.Video,\n workflowPhase: WorkflowPhase.Start,\n location: locationContext\n }\n });\n }\n\n if (isUserCurator) {\n actions.push({\n order: 50,\n label: openInCurationStudioLabel,\n openInNewTab: true,\n href: getOpenInCurationStudioLink(MasterType.Video, video.id)\n });\n }\n\n return actions;\n }\n\n return {\n getVideoActions,\n fetchMoreActions: (video: VideoTypes) => hydrate(video)\n };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Dkazht4Q.chunk.js","names":[],"sources":["../../../../libs/shared/src/enums/CuratorGroup.ts","../../../../libs/shared/src/hooks/useCurationStudio.ts","../../../../libs/shared/src/hooks/useVideohydration.ts","../../src/apps/exchange/hooks/useGetExchangeActions.ts"],"sourcesContent":["/**\n * The values in this enum directly\n * map to the group names in Master.\n */\nexport enum CuratorGroup {\n Developer = 'Curator Devs',\n Content = 'Content',\n Curator = 'Curators',\n Support = 'Support',\n SalesSupport = 'Sales Support',\n GraphicDesigner = 'Graphic Designers',\n MetadataEditor = 'Metadata Editors',\n ResourcingManager = 'Resourcing Managers',\n SeniorContentManager = 'Senior Content Manager',\n Marketing = 'Marketing',\n Sales = 'Sales Representatives',\n StreamableCurator = 'Streamable Curator',\n SupportExtraPermission = 'Support - Extra Permissions',\n SeoManager = 'SEO Manager',\n ContentReviewer = 'Content Reviewer'\n}\n","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/react/index';\n\nimport { CuratorGroup } from 'libs/shared/enums/CuratorGroup';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { Config, CuratorUserGroupCollection, CurrentUser } from 'libs/shared/interfaces';\n\nconst namespace = 'shared.hooks';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function getOpenInCurationStudioLink(\n baseUrl: string,\n objectType: MasterType | string,\n id: string,\n presentationId?: string\n) {\n const baseManageUrl = UrlHelper.safeUrlConcat(baseUrl, 'manage');\n const baseExchangeUrl = UrlHelper.safeUrlConcat(baseUrl, 'exchange');\n const href = (baseUrl: string, objectType: string, id: string) => UrlHelper.safeUrlConcat(baseUrl, `${objectType}/${id}`);\n\n switch (objectType) {\n case MasterType.Subject:\n return UrlHelper.safeUrlConcat(baseManageUrl, `subjects/presentations/${presentationId}/classifications/${id}/edit`);\n case MasterType.Video:\n return href(baseManageUrl, 'videos', id);\n case MasterType.Playlist:\n return href(baseManageUrl, 'playlists', id);\n case MasterType.Series:\n return href(baseManageUrl, 'series', id);\n case MasterType.Company:\n return href(baseManageUrl, 'companies', id);\n case MasterType.Interactive:\n return href(baseManageUrl, 'interactives', id);\n case MasterType.Clip:\n return href(baseManageUrl, 'clips', id);\n case MasterType.Category:\n return href(baseExchangeUrl, 'categories', id);\n }\n}\n\nexport function getOpenInCurationStudioLabel(): string {\n return getPhrase('openInCurationStudio');\n}\n\nexport function useCurationStudio() {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const { data: userGroups } = Flight.useBasicFetch<CuratorUserGroupCollection>(\n (currentUser.data?.id) && UserRequests.groups(currentUser.data?.id)\n );\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n \n const curatorGroups = [ CuratorGroup.Curator, CuratorGroup.Content, CuratorGroup.Developer ];\n\n function isUserCurator(): boolean {\n return curatorGroups.some(group => userGroups?.data.find(userGroup => userGroup.name === group));\n }\n\n return {\n openInCurationStudioLabel: getOpenInCurationStudioLabel(),\n isUserCurator: isUserCurator(),\n getOpenInCurationStudioLink: (objectType: MasterType | string, id: string, presentationId?: string) =>\n getOpenInCurationStudioLink(config.data?.curatorUrl, objectType, id, presentationId)\n };\n}\n","import { Flight } from 'libs/common/react/index';\n\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nexport enum VideoHydrationType {\n PlayPage\n}\n\ninterface UseVideoHydrationOptions {\n type: VideoHydrationType;\n shareId?: string;\n}\n\nexport function useVideoHydration(options: UseVideoHydrationOptions) {\n const getResponse = Flight.useGetResponseFunc();\n const fetch = Flight.useGetFetch();\n \n function getRequest(video: VideoTypes): Flight.Request {\n if (options.type !== VideoHydrationType.PlayPage)\n return null;\n\n return VideoHelper.getVideoRequest(video.id, video.typeId, options.shareId);\n }\n \n function hydrate(video: VideoTypes): void {\n const request = getRequest(video);\n const resp = getResponse(request.key);\n\n resp.shouldFetch && fetch(request);\n }\n\n function isHydrated(video: VideoTypes): boolean {\n const request = getRequest(video);\n const resp = getResponse(request.key);\n\n return resp.hasCompleted;\n }\n\n return { hydrate, isHydrated };\n}\n","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { EntityType, LocationContext, UserAction, VideoActionDescriptor, WorkflowPhase } from 'libs/analytics/interfaces';\nimport { UrlHelper } from 'libs/analytics/utils/UrlHelper';\n\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { LibraryRequests } from 'libs/shared/flight-requests/LibraryRequests';\nimport { useCurationStudio } from 'libs/shared/hooks/useCurationStudio';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useVideoHydration, VideoHydrationType } from 'libs/shared/hooks/useVideohydration';\nimport { AddVideoSvg } from 'libs/shared/images/svg/actions/AddVideoSvg';\nimport { NewWindowSvg } from 'libs/shared/images/svg/actions/NewWindowSvg';\nimport { Config, Library, Video, VideoTypes } from 'libs/shared/interfaces';\n\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nconst namespace = 'exchange.exchangeHooks';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ntype Location = 'preview' | 'video-list';\n\nconst FETCH_MORE_ACTION_OPTION: ActionOptions = {\n lazyPlaceholder: true\n};\n\nexport function useGetExchangeActions(location: Location) {\n const { hasPermissions } = usePermissions();\n\n const { isUserCurator, openInCurationStudioLabel, getOpenInCurationStudioLink } = useCurationStudio();\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n const requestLibraries = Flight.useBasicFetch<Library[]>(\n hasPermissions(PermissionName.ContributeVideo) &&\n LibraryRequests.libraryRequestLibraries()\n );\n\n const { hydrate, isHydrated } = useVideoHydration({\n type: VideoHydrationType.PlayPage\n });\n \n function getVideoActions(video: Video): ActionOptions[] {\n const isPreview = location === 'preview';\n const analyticsData = { id: video.id, name: video.name };\n const locationContext = isPreview ? LocationContext.VideoItemPreview : LocationContext.VideoListItem;\n\n const actions: ActionOptions[] = [{\n order: 10,\n label: isPreview ? getPhrase('openInClickView') : '',\n svg: NewWindowSvg,\n tooltip: isPreview ? '' : getPhrase('openInClickView'),\n className: isPreview ? 'btn btn-dark me-2' : '',\n button: true,\n href: config.data && UrlHelper.safeUrlConcat(config.data.liteUrl, `/videos/${video.id}`),\n analyticsData,\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Video,\n descriptor: VideoActionDescriptor.OpenInClickView,\n location: locationContext,\n workflowPhase: WorkflowPhase.Start\n }\n }, {\n order: 20,\n label: isPreview ? getPhrase('addVideo') : null,\n svg: !isPreview ? AddVideoSvg : undefined,\n tooltip: isPreview ? '' : getPhrase('addVideo'),\n button: !isPreview,\n appLink: {\n application: AppChannels.EXCHANGE,\n action: Actions.Exchange.ADD,\n args: [video.id]\n },\n analyticsData,\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Video,\n descriptor: VideoActionDescriptor.AddToWorkspace,\n location: locationContext,\n workflowPhase: WorkflowPhase.Start\n }\n }, {\n order: 30,\n label: getPhrase('suggest'),\n className: '',\n appLink: {\n application: AppChannels.EXCHANGE,\n action: Actions.Exchange.SUGGEST_EDIT,\n args: [video.id],\n params: { location: locationContext }\n },\n analyticsData,\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Video,\n descriptor: VideoActionDescriptor.SuggestEdit,\n location: locationContext,\n workflowPhase: WorkflowPhase.Start\n }\n }];\n\n if (!isHydrated(video)) {\n return [ ...actions, FETCH_MORE_ACTION_OPTION ];\n }\n\n if (video._canAddToLibrary?.customLibrary && requestLibraries.data?.length) {\n actions.push({\n order: 25,\n label: getPhrase('addToLibrary'),\n className: '',\n appLink: {\n application: AppChannels.EXCHANGE,\n action: Actions.Exchange.ADD_TO_LIBRARY,\n args: [video.id]\n },\n analyticsData,\n analyticsOptions: {\n actionType: UserAction.Create,\n entity: EntityType.LibraryRequest,\n workflowPhase: WorkflowPhase.Start,\n location: locationContext\n }\n });\n }\n\n if (video._canDownload?.value) {\n actions.push({\n order: 40,\n label: getPhrase('download'),\n className: '',\n appLink: {\n application: AppChannels.EXCHANGE,\n action: Actions.Exchange.DOWNLOAD_VIDEO,\n args: [video.id]\n },\n analyticsData,\n analyticsOptions: {\n actionType: UserAction.Download,\n entity: EntityType.Video,\n workflowPhase: WorkflowPhase.Start,\n location: locationContext\n }\n });\n }\n\n if (isUserCurator) {\n actions.push({\n order: 50,\n label: openInCurationStudioLabel,\n openInNewTab: true,\n href: getOpenInCurationStudioLink(MasterType.Video, video.id)\n });\n }\n\n return actions;\n }\n\n return {\n getVideoActions,\n fetchMoreActions: (video: VideoTypes) => hydrate(video)\n };\n}\n"],"mappings":"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"}
|
|
@@ -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"./DQBoqkL7.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-CgkYY4K0.js";import{t as ve}from"./DWCNy_Jd2.chunk.js";import{t as ye}from"./BP0LMV9S2.chunk.js";import{t as O}from"./_3n_0ch72.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"./CFkqPGiT.chunk.js";import{c as Fe,o as M,r as Ie}from"./BPttZx0-.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"./BhOZYAZn.chunk.js";import{t as Be}from"./go6zFmPK.chunk.js";import{r as Ve}from"./CsCke1Uk.chunk.js";import{t as L}from"./HgLS_KfH.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"./BxLgTmMl.chunk.js";import{t as Ge}from"./Dkazht4Q.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"./Dhe09-jE.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=DmmZ2XbB2.chunk.js.map
|