@clickview/lite 0.0.24-rc.4 → 0.0.24
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/css/11.chunk.css.map +1 -1
- package/dist/css/12.chunk.css.map +1 -1
- package/dist/css/13.chunk.css.map +1 -1
- package/dist/css/14.chunk.css.map +1 -1
- package/dist/css/15.chunk.css.map +1 -1
- package/dist/css/16.chunk.css.map +1 -1
- package/dist/css/17.chunk.css.map +1 -1
- package/dist/css/18.chunk.css.map +1 -1
- package/dist/css/20.chunk.css.map +1 -1
- package/dist/css/29.chunk.css.map +1 -1
- package/dist/css/3.chunk.css.map +1 -1
- package/dist/css/30.chunk.css.map +1 -1
- package/dist/css/31.chunk.css.map +1 -1
- package/dist/css/33.chunk.css.map +1 -1
- package/dist/css/38.chunk.css +11 -34
- package/dist/css/38.chunk.css.map +1 -1
- package/dist/css/4.chunk.css +3 -3
- package/dist/css/44.chunk.css +11 -3
- package/dist/css/44.chunk.css.map +1 -1
- package/dist/css/45.chunk.css +38 -0
- package/dist/css/45.chunk.css.map +1 -0
- package/dist/css/5.chunk.css.map +1 -1
- package/dist/css/52.chunk.css +52 -0
- package/dist/css/52.chunk.css.map +1 -0
- package/dist/css/59.chunk.css +14 -0
- package/dist/css/59.chunk.css.map +1 -0
- package/dist/css/6.chunk.css.map +1 -1
- package/dist/css/60.chunk.css +43 -0
- package/dist/css/60.chunk.css.map +1 -0
- package/dist/en.json +1 -1
- package/dist/libs/shared/src/components/curriculum-links/CurriculumLinks.d.ts +9 -0
- package/dist/libs/shared/src/components/widgets/items/resource-widget-item/ResourceWidgetItem.d.ts +12 -0
- package/dist/libs/shared/src/enums/CurriculumType.d.ts +6 -0
- package/dist/libs/shared/src/flight-requests/ClassificationRequests.d.ts +1 -0
- package/dist/libs/shared/src/flight-requests/ResourceRequests.d.ts +11 -0
- package/dist/libs/shared/src/interfaces/collections/SubtitleCollection.d.ts +3 -0
- package/dist/libs/shared/src/interfaces/models/Curriculum.d.ts +14 -0
- package/dist/libs/shared/src/interfaces/models/FileUpload.d.ts +20 -0
- package/dist/libs/shared/src/interfaces/models/Language.d.ts +4 -0
- package/dist/libs/shared/src/interfaces/models/Pdf.d.ts +4 -0
- package/dist/libs/shared/src/interfaces/models/Subtitle.d.ts +7 -0
- package/dist/libs/shared/src/interfaces/models/index.d.ts +1 -0
- package/dist/libs/shared/src/interfaces/requests/UpdateObjectChannel.d.ts +3 -0
- package/dist/libs/shared/src/interfaces/requests/UpdateObjectRating.d.ts +3 -0
- package/dist/libs/shared/src/interfaces/requests/UpdateResourceRequest.d.ts +3 -0
- package/dist/projects/lite/src/app.d.ts +1 -0
- package/dist/projects/lite/src/shared/components/play-page/PlayPage.d.ts +2 -1
- package/dist/projects/lite/src/shared/components/synopsis/Synopsis.d.ts +3 -1
- package/dist/projects/lite/src/shared/components/video-details/VideoDetails.d.ts +2 -0
- package/dist/projects/lite/src/shared/constants/MinimumGlanceHeight.d.ts +1 -0
- package/dist/projects/lite/src/shared/views/preview-pdf/PreviewPdfView.d.ts +7 -0
- package/dist/scripts/0-b02efe11fb.chunk.js +1 -0
- package/dist/scripts/1-4f19a5caea.chunk.js +17 -0
- package/dist/scripts/1.chunk.js.map +1 -1
- package/dist/scripts/10.chunk.js +484 -1203
- package/dist/scripts/10.chunk.js.map +1 -1
- package/dist/scripts/11-32e30d10ce.chunk.js +1 -0
- package/dist/scripts/11.chunk.js +289 -1388
- package/dist/scripts/11.chunk.js.map +1 -1
- package/dist/scripts/12-72a5373486.chunk.js +1 -0
- package/dist/scripts/12.chunk.js +1371 -283
- package/dist/scripts/12.chunk.js.map +1 -1
- package/dist/scripts/13-1cd85ad3ee.chunk.js +1 -0
- package/dist/scripts/13.chunk.js +361 -394
- package/dist/scripts/13.chunk.js.map +1 -1
- package/dist/scripts/14-3d60b8ee85.chunk.js +1 -0
- package/dist/scripts/14.chunk.js +793 -332
- package/dist/scripts/14.chunk.js.map +1 -1
- package/dist/scripts/15-90226fb996.chunk.js +1 -0
- package/dist/scripts/15.chunk.js +295 -214
- package/dist/scripts/15.chunk.js.map +1 -1
- package/dist/scripts/16-913b2535ea.chunk.js +1 -0
- package/dist/scripts/16.chunk.js +530 -434
- package/dist/scripts/16.chunk.js.map +1 -1
- package/dist/scripts/17-d6c19ccb60.chunk.js +1 -0
- package/dist/scripts/17.chunk.js +296 -170
- package/dist/scripts/17.chunk.js.map +1 -1
- package/dist/scripts/18-33efcac0c6.chunk.js +1 -0
- package/dist/scripts/18.chunk.js +265 -199
- package/dist/scripts/18.chunk.js.map +1 -1
- package/dist/scripts/19-2380200cfb.chunk.js +1 -0
- package/dist/scripts/19.chunk.js +7 -3
- package/dist/scripts/19.chunk.js.map +1 -1
- package/dist/scripts/2-53e37c2047.chunk.js +1 -0
- package/dist/scripts/2.chunk.js +18673 -622
- package/dist/scripts/2.chunk.js.map +1 -1
- package/dist/scripts/20-ca85f0514e.chunk.js +1 -0
- package/dist/scripts/20.chunk.js +1824 -221
- package/dist/scripts/20.chunk.js.map +1 -1
- package/dist/scripts/21-ef4a226771.chunk.js +1 -0
- package/dist/scripts/22-99c04e164f.chunk.js +1 -0
- package/dist/scripts/23-028eb81a43.chunk.js +1 -0
- package/dist/scripts/23.chunk.js +1 -1
- package/dist/scripts/23.chunk.js.map +1 -1
- package/dist/scripts/24-68f8df3eca.chunk.js +1 -0
- package/dist/scripts/24.chunk.js.map +1 -1
- package/dist/scripts/25-7ad07f87d4.chunk.js +1 -0
- package/dist/scripts/25.chunk.js.map +1 -1
- package/dist/scripts/26-f3dcacfe4f.chunk.js +1 -0
- package/dist/scripts/26.chunk.js +1 -1
- package/dist/scripts/26.chunk.js.map +1 -1
- package/dist/scripts/27-e844268f38.chunk.js +1 -0
- package/dist/scripts/28-853bc5de1f.chunk.js +1 -0
- package/dist/scripts/29-b164ecafe9.chunk.js +1 -0
- package/dist/scripts/29.chunk.js +435 -500
- package/dist/scripts/29.chunk.js.map +1 -1
- package/dist/scripts/3-a1bd8c9016.chunk.js +7 -0
- package/dist/scripts/3.chunk.js +625 -18676
- package/dist/scripts/3.chunk.js.map +1 -1
- package/dist/scripts/30-2cfcf52ea1.chunk.js +1 -0
- package/dist/scripts/30.chunk.js +634 -429
- package/dist/scripts/30.chunk.js.map +1 -1
- package/dist/scripts/31-e6a8291d2f.chunk.js +1 -0
- package/dist/scripts/31.chunk.js +371 -670
- package/dist/scripts/31.chunk.js.map +1 -1
- package/dist/scripts/32-7030dc98ed.chunk.js +1 -0
- package/dist/scripts/32.chunk.js +27 -54
- package/dist/scripts/32.chunk.js.map +1 -1
- package/dist/scripts/33-47b0ac90bd.chunk.js +1 -0
- package/dist/scripts/33.chunk.js +700 -312
- package/dist/scripts/33.chunk.js.map +1 -1
- package/dist/scripts/34-2de007b628.chunk.js +1 -0
- package/dist/scripts/34.chunk.js +3 -3
- package/dist/scripts/34.chunk.js.map +1 -1
- package/dist/scripts/35-d2fb66920b.chunk.js +1 -0
- package/dist/scripts/36-bc85df33de.chunk.js +1 -0
- package/dist/scripts/36.chunk.js.map +1 -1
- package/dist/scripts/37-e26652840b.chunk.js +1 -0
- package/dist/scripts/37.chunk.js +288 -464
- package/dist/scripts/37.chunk.js.map +1 -1
- package/dist/scripts/38-0b6a6b9619.chunk.js +1 -0
- package/dist/scripts/39-6549f483c6.chunk.js +1 -0
- package/dist/scripts/39.chunk.js +1 -1
- package/dist/scripts/39.chunk.js.map +1 -1
- package/dist/scripts/4-9e83a22d7a.chunk.js +1 -0
- package/dist/scripts/4.chunk.js +259 -1021
- package/dist/scripts/4.chunk.js.map +1 -1
- package/dist/scripts/40-8e6e9d285f.chunk.js +1 -0
- package/dist/scripts/41-2b44a2e66f.chunk.js +1 -0
- package/dist/scripts/42-9e75f420d8.chunk.js +1 -0
- package/dist/scripts/42.chunk.js.map +1 -1
- package/dist/scripts/43-1141245420.chunk.js +1 -0
- package/dist/scripts/44-9bc4201e0f.chunk.js +1 -0
- package/dist/scripts/45-5ded8ca3db.chunk.js +1 -0
- package/dist/scripts/46-2afd7ee1fb.chunk.js +1 -0
- package/dist/scripts/47-ab30686138.chunk.js +1 -0
- package/dist/scripts/48-d9cd99d55e.chunk.js +1 -0
- package/dist/scripts/49-f43a08f90b.chunk.js +1 -0
- package/dist/scripts/5-974660e17b.chunk.js +1 -0
- package/dist/scripts/5.chunk.js +1017 -259
- package/dist/scripts/5.chunk.js.map +1 -1
- package/dist/scripts/50-af699c531e.chunk.js +1 -0
- package/dist/scripts/51-aa7b835007.chunk.js +1 -0
- package/dist/scripts/52-805f7fe04d.chunk.js +1 -0
- package/dist/scripts/53-d75ca53045.chunk.js +1 -0
- package/dist/scripts/54-2e75bad46f.chunk.js +1 -0
- package/dist/scripts/55-ed637c4847.chunk.js +1 -0
- package/dist/scripts/55.chunk.js.map +1 -1
- package/dist/scripts/56-2ed3b5764b.chunk.js +1 -0
- package/dist/scripts/57-e51101c8a1.chunk.js +1 -0
- package/dist/scripts/58-9a32a6fb2d.chunk.js +1 -0
- package/dist/scripts/59-da8a8c97a9.chunk.js +1 -0
- package/dist/scripts/6-6ac39034e0.chunk.js +1 -0
- package/dist/scripts/6.chunk.js +291 -1250
- package/dist/scripts/6.chunk.js.map +1 -1
- package/dist/scripts/60-5713de53e2.chunk.js +1 -0
- package/dist/scripts/61-7d2ad17963.chunk.js +1 -0
- package/dist/scripts/62-a0a69501ac.chunk.js +1 -0
- package/dist/scripts/63-c921b87f3f.chunk.js +1 -0
- package/dist/scripts/64-87c1cf6985.chunk.js +1 -0
- package/dist/scripts/65-2322082836.chunk.js +1 -0
- package/dist/scripts/66-6d5356f6ce.chunk.js +1 -0
- package/dist/scripts/67-2e0d661c52.chunk.js +1 -0
- package/dist/scripts/7-5ac5be64dd.chunk.js +1 -0
- package/dist/scripts/7.chunk.js +1 -1
- package/dist/scripts/76.chunk.js +3 -3
- package/dist/scripts/76.chunk.js.map +1 -1
- package/dist/scripts/79.chunk.js +931 -347
- package/dist/scripts/79.chunk.js.map +1 -1
- package/dist/scripts/8-95563e3d36.chunk.js +1 -0
- package/dist/scripts/8.chunk.js +14 -920
- package/dist/scripts/8.chunk.js.map +1 -1
- package/dist/scripts/80.chunk.js +22 -313
- package/dist/scripts/80.chunk.js.map +1 -1
- package/dist/scripts/9.chunk.js +320 -17
- package/dist/scripts/9.chunk.js.map +1 -1
- package/dist/scripts/bundle-9ed1e126dd.min.js +15 -0
- package/dist/scripts/bundle.js +147 -121
- package/dist/scripts/bundle.js.map +1 -1
- package/dist/scripts/bundles.json +2 -2
- package/dist/scripts/pdf.worker.entry.worker.js +46239 -0
- package/dist/scripts/pdf.worker.entry.worker.js.map +1 -0
- package/dist/scripts/polyfills-2723daf478.min.js +1 -0
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/search/flight-requests/SearchRequests.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/search/flight-requests/index.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/search/views/search-results/PartialSearchResultsView.tsx","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/search/views/search-results/SearchResultsView.tsx","webpack://@clickview/lite/./src/apps/search/views/search-results/search-results.scss?62c5"],"names":[],"mappings":"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","file":"scripts/18.chunk.js","sourcesContent":["import { Flight } from 'libs/common/flight';\r\n\r\nimport mockSearchResults from './mocks/search-results.json';\r\n\r\nconst endpoints = {\r\n search: (query: string) => ``\r\n};\r\n\r\nexport const SearchRequests = {\r\n search(query: string): Flight.SimulatedRequest {\r\n return {\r\n url: endpoints.search(query),\r\n key: `search:${query}`,\r\n normalize: false,\r\n successResponse: () => {\r\n return Flight.Simulator.getAll(`search:${query}`, [mockSearchResults]);\r\n },\r\n formatData: (data: any) => {\r\n return {\r\n subjects: data[0].subjects || [],\r\n videos: data[0].videos || [],\r\n playlists: data[0].playlists || [],\r\n series: data[0].series || []\r\n };\r\n }\r\n };\r\n }\r\n};","export * from './SearchRequests';","import * as React from 'react';\r\n\r\nimport { PartialVideoList } from 'libs/shared/components/video-list/partial-loading/PartialVideoList';\r\nimport { PartialPlaylistList } from 'libs/shared/apps/playlists/components/playlist-list/PartialPlaylistList';\r\nimport { PartialSeriesList } from 'libs/shared/components/widgets/items/series-widget-item/PartialSeriesList';\r\n\r\nimport { PartialSearchFilters } from 'apps/search/components';\r\n\r\nimport styles from './search-results.scss';\r\n\r\nexport function PartialSearchResultsView(): JSX.Element {\r\n return (\r\n <div className='px-3'>\r\n <div className={`${styles.partialHeading} partial-loading-background`} />\r\n\r\n <div className='mt-3'>\r\n <PartialSearchFilters />\r\n </div>\r\n\r\n <div role='separator' className='border-bottom my-2' />\r\n\r\n {/* <PartialVideoItem /> */}\r\n\r\n <PartialPlaylistList />\r\n\r\n <PartialSeriesList />\r\n\r\n <PartialVideoList />\r\n </div>\r\n );\r\n}","import * as React from 'react';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\r\nimport { Flight } from 'libs/common/flight';\r\nimport { Core } from 'libs/common/core';\r\n\r\nimport { PresentationAudience, User, Video } from 'libs/shared/interfaces';\r\nimport { DynamicWidget } from 'libs/shared/components/widgets/dynamic-widget/DynamicWidget';\r\nimport { SubjectWidgetItem } from 'libs/shared/components/widgets/items/subject-widget-item/SubjectWidgetItem';\r\nimport { AudienceRequests } from 'libs/shared/flight-requests/AudienceRequests';\r\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\r\nimport { FavouriteVideoRequests } from 'libs/shared/flight-requests/FavouriteVideoRequests';\r\nimport { VideoActionsContext } from 'libs/shared/context/VideoActionsContext';\r\nimport { Text, LanguageNamespaceContext } from 'libs/shared/components/text/Text';\r\nimport { VideoItem } from 'libs/shared/components/video-list/VideoItem';\r\nimport { EntityType, UserAction, LocationContext, WorkflowPhase, ToggleDescriptor } from 'libs/analytics/interfaces';\r\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\r\nimport { useSetPageTitle } from 'libs/common/react/hooks/UseSetPageTitle';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\r\n\r\nimport { SearchFilters } from 'apps/search/components';\r\nimport { SearchRequests } from 'apps/search/flight-requests';\r\nimport { SearchHelper, FilterHelper, Filters } from 'apps/search/utils';\r\nimport { SearchResults } from 'apps/search/interfaces';\r\n\r\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\r\nimport { Actions } from 'shared/constants/LiteActions';\r\nimport { getVideoActionAppLink } from 'shared/utils/LiteAppLinkUtils';\r\nimport { useVideoMixin } from 'shared/hooks/useVideoMixin';\r\n\r\nimport { PartialSearchResultsView } from './PartialSearchResultsView';\r\n\r\nconst namespace = 'search.searchResults';\r\n\r\nconst classificationAppLink: Core.AppLink = {\r\n application: AppChannels.SUBJECT,\r\n action: Actions.Subjects.CLASSIFICATION\r\n};\r\n\r\ninterface SearchResultsViewProps {\r\n queryParams: HashObject;\r\n}\r\n\r\nexport function SearchResultsView({ queryParams }: SearchResultsViewProps): JSX.Element {\r\n useSetPageTitle(queryParams?.query ?? LanguageService.getPhrase(namespace, 'defaultPageTitle'));\r\n\r\n const dispatch = useDispatch();\r\n const alerts = useAlerts();\r\n\r\n const currentUser = Flight.useBasicFetch<User>(UserRequests.currentUser());\r\n const results = Flight.useBasicFetch<SearchResults>(SearchRequests.search(queryParams.query));\r\n const audiences = Flight.useBasicFetch<PresentationAudience[]>(AudienceRequests.presentationAudiences());\r\n\r\n useVideoMixin(results.data?.videos);\r\n\r\n function setFavourite(video: Video, shouldFavourite: boolean, onError?: () => void): void {\r\n Flight.fetch(\r\n dispatch,\r\n FavouriteVideoRequests.updateIsVideoFavourited(video.id, currentUser.data.id, shouldFavourite, () => {\r\n AnalyticsHelper.logUserAction({ id: video.id }, {\r\n entity: EntityType.Video,\r\n actionType: UserAction.Favourite,\r\n descriptor: shouldFavourite ? ToggleDescriptor.On : ToggleDescriptor.Off,\r\n location: LocationContext.VideoThumbnail,\r\n workflowPhase: WorkflowPhase.Complete\r\n });\r\n\r\n alerts.success(LanguageService.getPhrase(\r\n namespace,\r\n shouldFavourite ? 'favourited' : 'unfavourited',\r\n { video: video.name }\r\n ));\r\n }, onError)\r\n );\r\n }\r\n\r\n if (!results.data || !audiences.data)\r\n return <PartialSearchResultsView />;\r\n\r\n const mainResults = SearchHelper.filterMainResults({ ...results.data });\r\n const otherResults = SearchHelper.structureOtherResults({ ...mainResults.otherResults });\r\n\r\n const mainFilters = [\r\n Filters.YearLevel([]), // TODO: fetch or mock year levels\r\n Filters.ObjectType(FilterHelper.getObjectTypeOptions()),\r\n Filters.Ratings([]), // TODO: fetch ratings\r\n Filters.Interactives(),\r\n Filters.Clips()\r\n ];\r\n\r\n return (\r\n <LanguageNamespaceContext.Provider value={namespace}>\r\n <div className='px-3'>\r\n <h1 className='h2'><Text phrase='heading' /></h1>\r\n\r\n <div className='mt-3'>\r\n <SearchFilters\r\n queryParams={queryParams}\r\n mainFilters={mainFilters}\r\n moreFilters={FilterHelper.getMoreFilters()}\r\n analyticsOptions={{\r\n entity: EntityType.SearchResults,\r\n location: LocationContext.SearchFilters\r\n }}\r\n />\r\n </div>\r\n\r\n <hr />\r\n\r\n <section>\r\n <VideoActionsContext.Provider value={{ getActionAppLink: getVideoActionAppLink }}>\r\n {!!mainResults.subjects.length &&\r\n <DynamicWidget\r\n collection={mainResults.subjects}\r\n childAppLink={classificationAppLink}\r\n childComponent={SubjectWidgetItem}\r\n headingPhraseKey='topics'\r\n />\r\n }\r\n\r\n {!!mainResults.firstVideo &&\r\n <div className='pb-2'>\r\n <VideoItem\r\n video={mainResults.firstVideo}\r\n getVideoAppLink={SearchHelper.getVideoAppLink}\r\n getSeriesAppLink={SearchHelper.getSeriesAppLink}\r\n setFavourite={setFavourite}\r\n />\r\n </div>\r\n }\r\n\r\n {!!mainResults.playlists.length &&\r\n SearchHelper.getResultSetComponent({\r\n type: 'playlist',\r\n data: mainResults.playlists\r\n }, audiences.data)\r\n }\r\n\r\n {!!mainResults.series.length &&\r\n SearchHelper.getResultSetComponent({\r\n type: 'series',\r\n data: mainResults.series\r\n }, audiences.data)\r\n }\r\n\r\n {otherResults.map((resultSet, i) =>\r\n <React.Fragment key={i}>\r\n {SearchHelper.getResultSetComponent(resultSet, audiences.data, setFavourite)}\r\n </React.Fragment>\r\n )}\r\n </VideoActionsContext.Provider>\r\n </section>\r\n </div>\r\n </LanguageNamespaceContext.Provider>\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"partialHeading\":\"cv--partialHeading--1c2gx\"};"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"sources":["file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/back-button/BackButton.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/banner-header/BannerHeader.tsx","webpack://@clickview/lite/C:/ClickView Projects/@clickview/packages/libs/shared/src/components/banner-header/banner-header.scss?f381","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/breadcrumbs/BreadcrumbList.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/breadcrumbs/Breadcrumbs.tsx"],"names":[],"mappings":";;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAEA;AACA;AACA;AAEA,IAAM,SAAS,GAAG,mBAAlB;AASA,UAAU,CAAC,YAAX,GAA0B;AACxB,OAAK,EAAE,OADiB;AAExB,cAAY,EAAE;AAFU,CAA1B;AAKM,SAAU,UAAV,OAAkF;AAAA,MAA3D,UAA2D,QAA3D,UAA2D;AAAA,MAA/C,OAA+C,QAA/C,OAA+C;AAAA,MAAtC,KAAsC,QAAtC,KAAsC;AAAA,MAA/B,YAA+B,QAA/B,YAA+B;AACtF,MAAM,UAAU,GAAG,UAAU,GACzB,6FAAe,CAAC,SAAhB,CAA0B,SAA1B,EAAqC,QAArC,EAA+C;AAAE,cAAU,EAAV;AAAF,GAA/C,CADyB,GAEzB,6FAAe,CAAC,SAAhB,CAA0B,SAA1B,EAAqC,MAArC,CAFJ;AAIA,MAAM,UAAU,GAAG,KAAK,KAAK,OAAV,GAAoB,EAApB,GAAyB,YAA5C;AAEA,SACE,oDAAC,yDAAD,EAAQ;AAAC,WAAO,EAAE,OAAV;AAAmB,aAAS,qDAA8C,YAA9C,cAA8D,UAA9D;AAA5B,GAAR,EACE,oDAAC,wEAAD,EAAa;AAAC,WAAO,EAAE,6DAAY,CAAC,WAAvB;AAAoC,QAAI,EAAE,4EAAgB,CAAC;AAA3D,GAAb,CADF,EAEE;AAAM,aAAS,EAAC;AAAhB,KAAwB,UAAxB,CAFF,CADF;AAMD,C;;;;;;;;;;;;ACnCD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA;AAEA;AACA;AACA;AAEA;AAaO,IAAM,YAAY,GAAG,2CAAW,UAAS,KAAT,EAA0D;AAAA,MACvF,OADuF,GAC9B,KAD8B,CACvF,OADuF;AAAA,MAC9E,MAD8E,GAC9B,KAD8B,CAC9E,MAD8E;AAAA,MACtE,WADsE,GAC9B,KAD8B,CACtE,WADsE;AAAA,MACzD,OADyD,GAC9B,KAD8B,CACzD,OADyD;AAAA,MAChD,aADgD,GAC9B,KAD8B,CAChD,aADgD;AAG/F,MAAM,GAAG,GAAG,8DAAW,CAAC,eAAZ,CAA4B,MAA5B,EAAoC;AAC9C,mBAAe,EAAE,WAD6B;AAE9C,wBAAoB,EAAE,OAFwB;AAG9C,QAAI,EAAE,uDAAS,CAAC;AAH8B,GAApC,EAIT;AACD,QAAI,EAAE,uDAAS,CAAC,KADf;AAED,cAAU,EAAE,wDAAU,CAAC;AAFtB,GAJS,CAAZ;AASA,SACE;AAAK,aAAS,EAAC,eAAf;AAA+B,SAAK,EAAE;AAAE,qBAAe,iBAAU,GAAV;AAAjB;AAAtC,KACG,KAAK,CAAC,iBAAN,IACC;AAAK,aAAS,EAAC;AAAf,KACE,oDAAC,kEAAD,EAAW;AACT,WAAO,EAAE,KAAK,CAAC,iBADN;AAET,cAAU,EAAE,KAAK,CAAC,cAFT;AAGT,gBAAY,EAAE,KAAK,CAAC,iBAHX;AAIT,SAAK,EAAC;AAJG,GAAX,CADF,CAFJ,EAWE;AAAI,aAAS,YAAK,0DAAM,CAAC,IAAZ;AAAb,KACG,OADH,CAXF,EAcG,CAAC,CAAC,OAAF,IACC;AAAK,aAAS,EAAE,0DAAM,CAAC;AAAvB,KACE,oDAAC,wDAAD,EAAQ;AAAC,WAAO,EAAE,OAAV;AAAmB,iBAAa,EAAE;AAAlC,GAAR,CADF,CAfJ,CADF;AAsBD,CAlC2B,EAkCzB,UAAC,SAAD,EAAY,SAAZ;AAAA,SACD,SAAS,CAAC,OAAV,KAAsB,SAAS,CAAC,OAD/B;AAAA,CAlCyB,CAArB;AAsCA,IAAM,mBAAmB,GAAG,SAAtB,mBAAsB;AAAA,SAAM;AAAK,aAAS;AAAd,IAAN;AAAA,CAA5B,C;;;;;;;;;;;AC5DP;AACA,kBAAkB,2E;;;;;;;;;;;;ACDlB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAYO,IAAM,cAAc,GAAG,SAAjB,cAAiB;AAAA,6BAAG,UAAH;AAAA,MAAiB,KAAjB,mBAAiB,KAAjB;AAAA,MAAwB,OAAxB,mBAAwB,OAAxB;AAAA,MAAiC,MAAjC,mBAAiC,MAAjC;AAAA,SAC5B;AAAI,aAAS,2BAAoB,MAAM,GAAG,SAAH,GAAe,EAAzC;AAAb,KACG,MAAM,GACH,oEAAS,KAAT,CADG,GAEH,oDAAC,yDAAD,EAAQ;AAAC,WAAO,EAAE;AAAV,GAAR,EAA4B,KAA5B,CAHN,CAD4B;AAAA,CAAvB;AAaA,IAAM,cAAc,GAAG,SAAjB,cAAiB;AAAA,MAAG,WAAH,SAAG,WAAH;AAAA,SAC5B;AAAI,aAAS,EAAC;AAAd,KACG,WAAW,CAAC,GAAZ,CAAgB,UAAC,CAAD,EAAI,GAAJ;AAAA,WAAY,oDAAC,cAAD,EAAe;AAAC,SAAG,EAAE,GAAN;AAAW,gBAAU,EAAE;AAAvB,KAAf,CAAZ;AAAA,GAAhB,CADH,CAD4B;AAAA,CAAvB,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3BP;AACA;AAGA;AACA;AACA;AAGA;AAEA;AAEA,IAAY,cAAZ;;AAAA,WAAY,cAAZ,EAA0B;AACxB;AACA;AACD,CAHD,EAAY,cAAc,KAAd,cAAc,MAA1B;;AAKA,SAAS,eAAT,CACE,IADF,EACW,cADX,EACsD,MADtD,EACsE;AAEpE,SAAQ;AACN,SAAK,EAAE,IAAI,CAAC,IADN;AAEN,WAAO,EAAE,cAAc,CAAC,IAAD,CAFjB;AAGN,UAAM,EAAN;AAHM,GAAR;AAKD;;AAED,SAAS,iBAAT,CAAiD,KAAjD,EAA6E,SAA7E,EAA+F;;;AAAA,MACvF,WADuF,GACnB,KADmB,CACvF,WADuF;AAAA,MAC1E,cAD0E,GACnB,KADmB,CAC1E,cAD0E;AAAA,MAC1D,SAD0D,GACnB,KADmB,CAC1D,SAD0D;AAAA,MAC/C,QAD+C,GACnB,KADmB,CAC/C,QAD+C;AAAA,MACrC,IADqC,GACnB,KADmB,CACrC,IADqC;AAAA,MAC/B,OAD+B,GACnB,KADmB,CAC/B,OAD+B;;AAAA,kBAErD,sDAAQ,CAAe,EAAf,CAF6C;AAAA;AAAA,MAErF,WAFqF;AAAA,MAExE,cAFwE;;AAI7F,MAAM,GAAG,SAAG,IAAH,MAAO,IAAP,IAAO,aAAP,GAAO,MAAP,GAAO,GAAE,GAAF,CAAM,WAAC,EAAG;AAAA;;AAAA,iBAAC,CAAD,MAAE,IAAF,IAAE,aAAF,GAAE,MAAF,GAAE,GAAE,IAAJ;AAAQ,GAAlB,EAAoB,IAApB,CAAyB,GAAzB,CAAhB,CAJ6F,CAM7F;;AACA,kDAAgB,YAAK;AACnB,QAAI,SAAS,IAAI,iFAAY,CAAC,OAAb,CAAqB,IAArB,CAAjB,EACE;;AAEF,QAAM,YAAY,GAAG,IAAI,CAAC,GAAL,CAAS,UAAC,CAAD,EAAI,KAAJ;AAAA,aAAsB,eAAe,CAAC,CAAD,EAAI,cAAJ,EAAoB,KAAK,GAAG,CAAR,KAAc,IAAI,CAAC,MAAvC,CAArC;AAAA,KAAT,CAArB;;AAEA,QAAI,QAAJ,EACE,YAAY,CAAC,OAAb,CAAqB,QAArB;AAEF,kBAAc,CAAC,YAAD,CAAd;AAED,GAXD,EAWG,CAAC,GAAD,CAXH,EAP6F,CAqB7F;;AACA,kDAAgB,YAAK;AACnB,QAAI,CAAC,SAAD,IAAc,CAAC,wFAAc,CAAC,UAAf,CAA0B,SAA1B,CAAnB,EACE;AAEF,QAAM,YAAY,GAAG,CAAC,eAAe,CAAI,WAAJ,EAAiB,cAAjB,EAAiC,IAAjC,CAAhB,CAArB;AAEA,eAAW,GAAG,SAAS,CAAC,WAAD,CAAvB;;AAEA,WAAO,WAAP,EAAoB;AAClB,kBAAY,CAAC,OAAb,CAAqB,eAAe,CAAI,WAAJ,EAAiB,cAAjB,CAApC;;AACA,iBAAW,GAAG,SAAS,CAAC,WAAD,CAAvB;AACD;;AAED,QAAI,QAAJ,EACE,YAAY,CAAC,OAAb,CAAqB,QAArB;AAEF,WAAO,cAAc,CAAC,YAAD,CAArB;AAED,GAlBD,EAkBG,CAAE,WAAF,EAAe,SAAf,EAA0B,cAA1B,EAA0C,QAA1C,CAlBH;;AAtB6F,sBA0CtD,6CAAyB;AAC9D,SAAK,EAAE,OADuD;AAE9D,WAAO,EAAE,IAFqD;AAG9D,UAAM,EAAE;AAHsD,GAAzB,CA1CsD;AAAA,MA0C5E,iBA1C4E,iBA0CrF,OA1CqF,EAgD7F;;;AACA,MAAI,OAAJ,EAAa;AACX,QAAI,CAAC,WAAW,CAAC,QAAZ,CAAqB,iBAArB,CAAL,EACE,cAAc,8BAAM,WAAN,IAAmB,iBAAnB,GAAd;AAEF,QAAM,kBAAkB,GAAG,WAAW,CAAC,MAAZ,CAAoB,eAAK;AAAA,aAAI,KAAK,CAAC,MAAN,IAAgB,KAAK,KAAK,iBAA9B;AAAA,KAAzB,CAA3B;AACA,QAAI,kBAAkB,CAAC,MAAvB,EACE,+EAAW,CAAC,KAAZ,CAAkB,kBAAlB,EAAsC,MAAtC,GAA+C,KAA/C;AACH;;AAED,SAAO,WAAP;AACD;;AAYK,SAAU,WAAV,CAA4C,KAA5C,EAAsE;AAAA,MAClE,IADkE,GACzD,KADyD,CAClE,IADkE;AAG1E,MAAM,SAAS,GAAG,IAAI,KAAK,cAAc,CAAC,OAA1C;AACA,MAAM,WAAW,GAAG,iBAAiB,CAAC,KAAD,EAAQ,SAAR,CAArC;AAEA,SACE;AAAA,kBAAgB;AAAhB,KACE,oDAAC,8DAAD,EAAe;AAAC,eAAW,EAAE;AAAd,GAAf,CADF,CADF;AAKD;AAED,IAAM,wBAAwB,GAAG,gFAAoB,CAAC,sBAArB,CAA4C;AAAE,UAAQ,EAAE;AAAZ,CAA5C,CAAjC;AAEO,IAAM,kBAAkB,GAAG,SAArB,kBAAqB;AAAA,SAChC;AAAA,kBAAgB;AAAhB,KACE;AAAI,aAAS,EAAC;AAAd,KACG,wBAAwB,CAAC,GAAzB,CAA6B,gBAAY,GAAZ;AAAA,QAAG,KAAH,QAAG,KAAH;AAAA,WAC5B;AAAI,SAAG,EAAE,GAAT;AAAc,eAAS,EAAC;AAAxB,OACE;AAAM,eAAS,EAAC,2CAAhB;AAA4D,WAAK,EAAE;AAAE,aAAK,EAAL;AAAF,OAAnE;AAA8E,6BAAuB,EAAE;AAAE,cAAM,EAAE;AAAV;AAAvG,MADF,CAD4B;AAAA,GAA7B,CADH,CADF,CADgC;AAAA,CAA3B,C","file":"scripts/18.chunk.js","sourcesContent":["import * as React from 'react';\r\nimport { Core } from 'libs/common/core';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\n\r\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\r\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\r\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\r\n\r\nconst namespace = 'shared.backButton';\r\n\r\ninterface BackButtonProps {\r\n appLink: Core.AppLink;\r\n backToName?: string;\r\n color?: 'black' | 'white';\r\n extraClasses?: string;\r\n}\r\n\r\nBackButton.defaultProps = {\r\n color: 'black',\r\n extraClasses: ''\r\n};\r\n\r\nexport function BackButton({ backToName, appLink, color, extraClasses }: BackButtonProps): React.ReactElement {\r\n const backPhrase = backToName\r\n ? LanguageService.getPhrase(namespace, 'backTo', { backToName })\r\n : LanguageService.getPhrase(namespace, 'back');\r\n\r\n const colorClass = color === 'black' ? '' : 'text-light';\r\n\r\n return (\r\n <AppLink appLink={appLink} className={`d-inline-flex align-items-center h5 mb-0 ${extraClasses} ${colorClass}`}>\r\n <SvgContainer svgName={cvSvgLibrary.ChevronLeft} size={SvgContainerSize.Medium} />\r\n <span className='ml-1'>{backPhrase}</span>\r\n </AppLink>\r\n );\r\n}","import * as React from 'react';\r\nimport { Core } from 'libs/common/core';\r\n\r\nimport { BackButton } from 'libs/shared/components/back-button/BackButton';\r\nimport { Banner } from 'libs/shared/interfaces';\r\nimport { ImageHelper } from 'libs/shared/utils/ImageHelper';\r\nimport { ImageType, ImageSize, ResizeType } from 'libs/shared/enums/Images';\r\nimport { Actions, ActionOptions } from 'libs/shared/components/actions/Actions';\r\n\r\nimport styles from './banner-header.scss';\r\n\r\ninterface BannerHeaderProps {\r\n heading: string;\r\n banner: Banner;\r\n imageCdnUrl: string;\r\n actions?: ActionOptions[];\r\n backButtonAppLink?: Core.AppLink;\r\n backButtonText?: string;\r\n backButtonClasses?: string;\r\n sortComponent?: JSX.Element;\r\n}\r\n\r\nexport const BannerHeader = React.memo(function(props: React.PropsWithChildren<BannerHeaderProps>): React.ReactElement {\r\n const { heading, banner, imageCdnUrl, actions, sortComponent } = props;\r\n\r\n const url = ImageHelper.createBannerUrl(banner, {\r\n fallbackBaseUrl: imageCdnUrl,\r\n fallbackCategoryName: heading,\r\n type: ImageType.Banners,\r\n }, {\r\n size: ImageSize.Large,\r\n resizeType: ResizeType.Cover\r\n });\r\n\r\n return (\r\n <div className='banner-header' style={{ backgroundImage: `url('${url}')` }}>\r\n {props.backButtonAppLink && (\r\n <div className='pt-3'>\r\n <BackButton\r\n appLink={props.backButtonAppLink}\r\n backToName={props.backButtonText}\r\n extraClasses={props.backButtonClasses}\r\n color='white'\r\n />\r\n </div>\r\n )}\r\n <h1 className={`${styles.text} text-white text-shadow position-absolute mb-3 clamp-2`}>\r\n {heading}\r\n </h1>\r\n {!!actions && (\r\n <div className={styles.actionsContainer}>\r\n <Actions actions={actions} sortComponent={sortComponent} />\r\n </div>\r\n )}\r\n </div>\r\n );\r\n}, (prevProps, nextProps): boolean => (\r\n prevProps.actions === nextProps.actions\r\n));\r\n\r\nexport const PartialBannerHeader = () => <div className={`partial-banner partial-loading-background`} />;","// extracted by mini-css-extract-plugin\nmodule.exports = {\"actionsContainer\":\"cv--actionsContainer--286KF\",\"text\":\"cv--text--3TSgh\"};","import * as React from 'react';\r\nimport { Core } from 'libs/common/core';\r\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\r\n\r\nexport interface Breadcrumb {\r\n label: string;\r\n appLink: Core.AppLink;\r\n active?: boolean;\r\n}\r\n\r\ninterface BreadcrumbItemProps {\r\n breadcrumb: Breadcrumb;\r\n}\r\n\r\nexport const BreadcrumbItem = ({ breadcrumb: { label, appLink, active } }: BreadcrumbItemProps) => (\r\n <li className={`breadcrumb-item${active ? ' active' : ''}`}>\r\n {active\r\n ? <strong>{label}</strong>\r\n : <AppLink appLink={appLink}>{label}</AppLink>\r\n }\r\n </li>\r\n);\r\n\r\ninterface BreadcrumbListProps {\r\n breadcrumbs: Breadcrumb[];\r\n}\r\n\r\nexport const BreadcrumbList = ({ breadcrumbs }: BreadcrumbListProps) => (\r\n <ol className='breadcrumb m-0 p-0'>\r\n {breadcrumbs.map((b, idx) => <BreadcrumbItem key={idx} breadcrumb={b} />)}\r\n </ol>\r\n);","import * as React from 'react';\r\nimport { useState } from 'react';\r\n\r\nimport { Core } from 'libs/common/core';\r\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\r\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\r\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\r\n\r\nimport { BaseObject } from 'libs/shared/interfaces';\r\nimport { PartialLoadingHelper } from 'libs/shared/utils/PartialLoadingHelper';\r\n\r\nimport { Breadcrumb, BreadcrumbList } from './BreadcrumbList';\r\n\r\nexport enum BreadcrumbType {\r\n Static,\r\n Dynamic\r\n}\r\n\r\nfunction buildBreadcrumb<T extends BaseObject>(\r\n item: T, getItemAppLink: (item: T) => Core.AppLink, active?: boolean\r\n): Breadcrumb {\r\n return ({\r\n label: item.name,\r\n appLink: getItemAppLink(item),\r\n active\r\n });\r\n}\r\n\r\nfunction useGetBreadcrumbs<T extends BaseObject>(props: BreadcrumbsProps<T>, isDynamic: boolean): Breadcrumb[] {\r\n let { currentItem, getItemAppLink, getParent, rootItem, data, subview } = props;\r\n const [ breadcrumbs, setBreadcrumbs ] = useState<Breadcrumb[]>([]);\r\n\r\n const key = data?.map(o => o?.name).join('-');\r\n\r\n // Uss static/pre-defined array of data to build the breadcrumb structure\r\n React.useEffect(() => {\r\n if (isDynamic || ObjectHelper.isEmpty(data))\r\n return;\r\n\r\n const _breadcrumbs = data.map((d, index: number) => buildBreadcrumb(d, getItemAppLink, index + 1 === data.length));\r\n\r\n if (rootItem)\r\n _breadcrumbs.unshift(rootItem);\r\n\r\n setBreadcrumbs(_breadcrumbs);\r\n\r\n }, [key]);\r\n\r\n\r\n // Dynamically build the breadcrumb structure\r\n React.useEffect(() => {\r\n if (!isDynamic || !FunctionHelper.isFunction(getParent))\r\n return;\r\n\r\n const _breadcrumbs = [buildBreadcrumb<T>(currentItem, getItemAppLink, true)];\r\n\r\n currentItem = getParent(currentItem);\r\n\r\n while (currentItem) {\r\n _breadcrumbs.unshift(buildBreadcrumb<T>(currentItem, getItemAppLink));\r\n currentItem = getParent(currentItem);\r\n }\r\n\r\n if (rootItem)\r\n _breadcrumbs.unshift(rootItem);\r\n\r\n return setBreadcrumbs(_breadcrumbs);\r\n\r\n }, [ currentItem, getParent, getItemAppLink, rootItem ]);\r\n\r\n const { current: subviewBreadcrumb } = React.useRef<Breadcrumb>({\r\n label: subview,\r\n appLink: null,\r\n active: true\r\n });\r\n\r\n // Replace \"active\" item with the subview\r\n if (subview) {\r\n if (!breadcrumbs.includes(subviewBreadcrumb))\r\n setBreadcrumbs([ ...breadcrumbs, subviewBreadcrumb ]);\r\n\r\n const selectedBreadcrumb = breadcrumbs.filter((crumb => crumb.active && crumb !== subviewBreadcrumb));\r\n if (selectedBreadcrumb.length)\r\n ArrayHelper.first(selectedBreadcrumb).active = false;\r\n }\r\n\r\n return breadcrumbs;\r\n}\r\n\r\ninterface BreadcrumbsProps<T> {\r\n type: BreadcrumbType;\r\n currentItem: T;\r\n getItemAppLink: (item: T) => Core.AppLink;\r\n getParent?: (item: T) => T;\r\n rootItem?: Breadcrumb;\r\n data?: T[];\r\n subview?: string; // E.g. \"Series\", \"Playlists\"\r\n}\r\n\r\nexport function Breadcrumbs<T extends BaseObject>(props: BreadcrumbsProps<T>): React.ReactElement {\r\n const { type } = props;\r\n\r\n const isDynamic = type === BreadcrumbType.Dynamic;\r\n const breadcrumbs = useGetBreadcrumbs(props, isDynamic);\r\n\r\n return (\r\n <nav aria-label='breadcrumb'>\r\n <BreadcrumbList breadcrumbs={breadcrumbs} />\r\n </nav>\r\n );\r\n}\r\n\r\nconst PARTIAL_BREADCRUMB_ITEMS = PartialLoadingHelper.getPartialLoadingItems({ numItems: 3 });\r\n\r\nexport const PartialBreadcrumbs = () => (\r\n <nav aria-label='breadcrumb'>\r\n <ol className='breadcrumb m-0 p-0'>\r\n {PARTIAL_BREADCRUMB_ITEMS.map(({ width }, idx) =>\r\n <li key={idx} className='breadcrumb-item'>\r\n <span className='d-inline-block partial-loading-background' style={{ width }} dangerouslySetInnerHTML={{ __html: ' ' }} />\r\n </li>\r\n )}\r\n </ol>\r\n </nav>\r\n);"],"sourceRoot":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(window.webpackJsonp_clickview_lite=window.webpackJsonp_clickview_lite||[]).push([[19],{1263:function(e,t,a){e.exports={partialDate:"_2wbjP"}},1317:function(e,t,a){"use strict";a.r(t);var n=a(0),r=a.n(n),i=a(61),o=a(14),c=a(237),s=a(7),l=a(242),u=a(128),d=a(154),m=a(831),p=a(73),v=a(40),f=a(3),g=a(239),y=a(850),b=a(824),E=a(5),h=a(10),k=a(843),N=a(90),w=a(2),O=a(127),L=a(47),C=a(830),A=a(837),S="watchHistory.watchHistoryVideoList",j=function(e){return{application:E.a.DEFAULT,action:h.a.Default.PLAY_VIDEO,args:[e.id,L.a.slugify(e.name)],params:e.lastProgressPoint?{t:Math.floor(e.lastProgressPoint)}:{}}},D=function(e){return{application:E.a.DEFAULT,action:h.a.Default.SERIES,args:[e.id,L.a.slugify(e.name)]}};function P(e){var t=O.a.groupBy(e.videoHistory.data,"lastDateWatched"),a={},r=Object.keys(t).sort().reverse();r.forEach((function(n){a[n]=t[n].map((function(t){var a=e.videos.find((function(e){return e.id.toString()===t.videoId.toString()}));return a?Object.assign(Object.assign({},a),{lastProgressPoint:t.lastProgressPoint}):null})).filter(Boolean)}));var i=w.a.AppLinkHelper.getCurrentAppLink();return n.createElement(n.Fragment,null,r.map((function(t){return n.createElement("div",{key:t,className:"pb-3"},n.createElement("h2",{className:"h4"},function(e){var t=N().diff(e,"days");return 0===t?s.a.getPhrase(S,"today"):1===t?s.a.getPhrase(S,"yesterday"):N(e).format("Do MMMM")}(t)),n.createElement(C.c,{videos:a[t],getVideoAppLink:j,getSeriesAppLink:D,setFavourite:e.setFavourite}))})),e.videoHistory.pagination.cursors&&n.createElement(A.b,{appLink:i,cursors:e.videoHistory.pagination.cursors}))}var x=a(848),F=a(1263),I=a.n(F);function T(){return r.a.createElement("div",{className:"px-3"},r.a.createElement("div",{className:"mb-3"},r.a.createElement("div",{className:"".concat(I.a.partialDate," mb-2 partial-loading-background")}),r.a.createElement(x.a,{numVideos:2})),r.a.createElement("div",{className:"mb-3"},r.a.createElement("div",{className:"".concat(I.a.partialDate," mb-2 partial-loading-background")}),r.a.createElement(x.a,{numVideos:3})),r.a.createElement("div",{className:"mb-3"},r.a.createElement("div",{className:"".concat(I.a.partialDate," mb-2 partial-loading-background")}),r.a.createElement(x.a,{numVideos:2})),r.a.createElement("div",{className:"mb-3"},r.a.createElement("div",{className:"".concat(I.a.partialDate," mb-2 partial-loading-background")}),r.a.createElement(x.a,{numVideos:5})))}a.d(t,"getVideoActionAppLink",(function(){return V})),a.d(t,"WatchHistoryView",(function(){return H}));function V(){return function(e,t){switch(t){case u.a.AddToPlaylist:return{application:E.a.PLAYLISTS,action:h.a.Playlists.ADD_TO_PLAYLIST,args:[e.id]};case u.a.Share:return{application:E.a.DEFAULT,action:h.a.Default.SHARE,args:[e.id],params:{entityType:"video"}}}}}function H(e){var t,a,r;Object(c.a)(s.a.getPhrase("watchHistory.watchHistory","pageTitle"));var E=Object(i.useDispatch)(),h=Object(b.a)(),N=o.a.useBasicFetch(d.a.currentUser()),w=o.a.useBasicFetch(!!N.data&&k.a.userVideoHistory(N.data.customerId,N.data.id,e.cursor)),O=null===(a=null===(t=w.data)||void 0===t?void 0:t.data)||void 0===a?void 0:a.map((function(e){return e.videoId})),L=o.a.useBasicFetch((null===(r=O)||void 0===r?void 0:r.length)&&g.a.hydratedVideos(O));function C(e,t,a){o.a.fetch(E,m.a.updateIsVideoFavourited(e.id,N.data.id,t,(function(){v.a.logUserAction({id:e.id},{entity:f.d.Video,actionType:f.n.Favourite,descriptor:t?f.m.On:f.m.Off,location:f.j.VideoThumbnail,workflowPhase:f.o.Complete}),h.success(s.a.getPhrase("watchHistory.watchHistory",t?"favourited":"unfavourited",{video:e.name}))}),a))}return Object(y.a)(L.data,{watchHistory:!1}),n.createElement(p.a.Provider,{value:"watchHistory.watchHistory"},n.createElement("div",{className:"px-3"},n.createElement("h1",null,n.createElement(p.b,{phrase:"heading"})),function(){var e;return w.data?(null===(e=w.data.data)||void 0===e?void 0:e.length)?L.data?n.createElement(l.a.Provider,{value:{videoActions:[u.a.AddToPlaylist,u.a.Share],getActionAppLink:V(),hideLabel:!0}},n.createElement(P,{videoHistory:w.data,videos:L.data,setFavourite:C})):n.createElement(T,null):n.createElement(p.b,{phrase:"emptyState"}):n.createElement(T,null)}()))}},825:function(e,t,a){"use strict";a.d(t,"a",(function(){return r}));var n=a(0);function r(e){return n.createElement("div",{role:"button",tabIndex:0,className:"".concat(e.className?e.className:""," cursor-pointer"),onKeyDown:function(t){return"Enter"===t.key&&e.onClick(t)},onClick:e.onClick,style:e.style?e.style:{}},e.children)}},827:function(e,t,a){e.exports={buttonList:"_2v9CT",dropdownToggle:"AYBvQ"}},828:function(e,t,a){"use strict";var n=a(0),r=a(33),i=a(240),o=a(40),c=a(55),s=a(51),l=a(13),u=a(827),d=a.n(u),m=a(35);function p(e){var t="dropdown-item";return e&&(t+=" ".concat(e)),t}function v(e){if(e.action.appLink)return n.createElement(s.a,{appLink:e.action.appLink,onClick:e.action.onClick,className:p(e.action.className),analyticsData:e.action.analyticsData,analyticsOptions:e.action.analyticsOptions},e.action.label);return n.createElement("span",{className:"cursor-pointer ".concat(p(e.action.className)),onClick:function(t){e.action.analyticsData&&e.action.analyticsOptions&&o.a.logUserAction(e.action.analyticsData,e.action.analyticsOptions),m.a.isFunction(e.action.onClick)&&e.action.onClick(t)}},e.action.label)}function f(e){if(!e.actions||!e.actions.length)return n.createElement(n.Fragment,null);var t="actions-dropdown-".concat(i.a.getRandomInt()),a="px-0 ".concat(d.a.dropdownToggle);return e.dropdownToggleClassName&&(a+=" ".concat(e.dropdownToggleClassName)),n.createElement(r.Dropdown,{className:e.className?e.className:"",alignRight:!0},n.createElement(r.Dropdown.Toggle,{as:"button",type:"button",id:t,className:a},n.createElement(c.a,{svgName:l.b.More,size:c.b.Small})),n.createElement(r.Dropdown.Menu,null,e.actions.map((function(e,t){return n.createElement(v,{key:t,action:e})}))))}f.defaultProps={dropdownToggleClassName:"btn btn-light"};var g=a(235),y=a(156);function b(e){var t="ml-2";e.className&&(t+=" ".concat(e.className));var a=e.showSpinner?n.createElement(r.Spinner,{as:"span",animation:"border",role:"status",size:"sm"}):e.children;if(e.tooltip)return n.createElement(y.a,{title:e.tooltip},n.createElement(g.a,{appLink:e.appLink,svgName:e.svgName,onClick:e.onClick,className:t,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions},a));if(e.svgName)return n.createElement(g.a,{onClick:e.onClick,appLink:e.appLink,svgName:e.svgName,className:t,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions},a);if(e.appLink)return n.createElement(s.a,{onClick:e.onClick,appLink:e.appLink,className:t,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions},a);return n.createElement("button",{onClick:function(t){e.analyticsData&&e.analyticsOptions&&o.a.logUserAction(e.analyticsData,e.analyticsOptions),m.a.isFunction(e.onClick)&&e.onClick(t)},className:t},a)}function E(e){var t=[],a=[];e.actions.forEach((function(e){e.button?t.push(e):a.push(e)}));var r="d-flex";return e.className&&(r+=" ".concat(e.className)),n.createElement("div",{className:r},n.createElement(n.Fragment,null,!!t.length&&n.createElement("span",{className:d.a.buttonList},t.map((function(e,t){return n.createElement(n.Fragment,{key:t},e.label?n.createElement(b,{appLink:e.appLink,onClick:e.onClick,svgName:e.svgName,className:e.className,tooltip:e.tooltip,showSpinner:e.showSpinner,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions},e.label):n.createElement(g.a,{appLink:e.appLink,onClick:e.onClick,svgName:e.svgName,className:e.className,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions}))}))),e.sortComponent?e.sortComponent:"",!!a.length&&n.createElement(f,{actions:a,className:!!t.length&&"ml-2",dropdownToggleClassName:e.actionsDropdownClassName})))}a.d(t,"a",(function(){return E}))},830:function(e,t,a){"use strict";a.d(t,"a",(function(){return s})),a.d(t,"c",(function(){return l})),a.d(t,"b",(function(){return u}));var n=a(0),r=a(818),i=a(2),o=a(837),c=a(844),s=n.createContext({isSortable:!1});function l(e){var t=n.useContext(s).isSortable?c.a:c.b,a=i.a.AppLinkHelper.getCurrentAppLink();return n.createElement(n.Fragment,null,n.createElement("div",{className:"position-relative"},e.videos.map((function(a,r){return n.createElement(t,{key:a.id,idx:r,index:r,video:a,getVideoAppLink:e.getVideoAppLink,getSeriesAppLink:e.getSeriesAppLink,setFavourite:e.setFavourite,hideInteractiveBadge:e.hideInteractiveBadge})}))),e.cursors&&n.createElement(o.b,{appLink:a,cursors:e.cursors}))}var u=Object(r.SortableContainer)((function(e){return n.createElement(s.Provider,{value:{isSortable:!0,currentSortingIndex:e.currentSortingIndex}},n.createElement(l,Object.assign({},e)))}))},831:function(e,t,a){"use strict";a.d(t,"a",(function(){return s}));var n=a(21),r=a(46),i=function(e,t){var a={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(a[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(a[n[r]]=e[n[r]])}return a};function o(e,t,a,r){return{url:"/api/domain/v2/objects/".concat(t),key:"favourite:video:".concat(t,":").concat(e),data:{favouriteVideos:e},type:n.a.PUT,invalidationKeys:["favourite:videos:".concat(t),"video:is:favourited:".concat(t)],success:a,error:r}}function c(e,t,a,r){return{url:"/api/domain/v2/objects/".concat(t,"/favouriteVideos/").concat(e),key:"favourite:video:".concat(t,":").concat(e),type:n.a.DELETE,invalidationKeys:["favourite:videos:".concat(t),"video:is:favourited:".concat(t)],success:a,error:r}}var s={favouriteVideos:function(e,t){var a="".concat(r.a.VIDEO_COLLECTION).concat(function(e){return e?"&cursor=".concat(e):""}(t));return{url:"/api/domain/v2/objects/".concat(e,"/favouriteVideos?query=").concat(a),key:"favourite:videos:".concat(e).concat(t?":".concat(t):"")}},updateIsVideoFavourited:function(e,t,a,n,r){return(a?o:c)(e,t,n,r)},isFavourited:function(e,t){var a=t.slice().sort(),n=a.map((function(e){return"id=".concat(e)}));if(n.length)return{url:"/api/domain/v2/objects?query=favouritedBy{id:".concat(e,"}&").concat(n.join("&")),key:"video:is:favourited:".concat(e,":by:id:").concat(a.join(",")),formatData:function(e){var t;if(!(null===(t=e)||void 0===t?void 0:t.length))return e;return e.map((function(e){var t,a,n=e.favouritedBy,r=i(e,["favouritedBy"]);return Object.assign(Object.assign({},r),{isFavourited:!!(null===(a=null===(t=n)||void 0===t?void 0:t.data)||void 0===a?void 0:a.length)})}))}}}}},837:function(e,t,a){"use strict";a.d(t,"b",(function(){return u})),a.d(t,"a",(function(){return d}));var n=a(0),r=a(825),i=a(51),o=a(73),c=a(40),s=a(3);function l(e,t){return t?{application:e.application,action:e.action,args:e.args,params:Object.assign({},e.params,{cursor:t})}:null}function u(e){var t=e.appLink,a=e.cursors,r=e.className;function u(e){c.a.logUserAction({page:e},{location:s.j.Pagination,entity:s.d.Pagination,actionType:s.n.Navigate})}return n.createElement(o.a.Provider,{value:"shared.pagination"},n.createElement("div",{className:r},n.createElement(i.a,{appLink:l(t,a.previous),className:"btn btn-secondary mr-1 ".concat(a.previous?"":"disabled"),onClick:function(){return u("previous")}},n.createElement(o.b,{phrase:"previous"})),n.createElement(i.a,{appLink:l(t,a.next),className:"btn btn-secondary ".concat(a.next?"":"disabled"),onClick:function(){return u("next")}},n.createElement(o.b,{phrase:"next"}))))}function d(e){function t(e){c.a.logUserAction({page:e},{location:s.j.Pagination,entity:s.d.Pagination,actionType:s.n.Navigate})}return n.createElement(o.a.Provider,{value:"shared.pagination"},n.createElement("div",{className:e.className},n.createElement(r.a,{onClick:function(){1!==e.currentPage&&(t("previous"),e.onClickBack())},className:"btn btn-secondary mr-1 cursor-pointer ".concat(1===e.currentPage?"disabled":"")},n.createElement(o.b,{phrase:"previous"})),n.createElement(r.a,{onClick:function(){e.currentPage!==e.totalPages&&(t("next"),e.onClickNext())},className:"btn btn-secondary cursor-pointer ".concat(e.currentPage===e.totalPages?"disabled":"")},n.createElement(o.b,{phrase:"next"}))))}u.defaultProps={className:"py-2"},d.defaultProps={className:"py-2"}},843:function(e,t,a){"use strict";a.d(t,"a",(function(){return n}));var n={userVideoHistory:function(e,t,a,n,r,i){var o="video:history:".concat(e,":").concat(t),c="/api/videoviews/v1/customers/".concat(e,"/users/").concat(t,"/videos/history");return a&&(o+=":".concat(a),c+="?cursor=".concat(a)),{key:o,url:c,success:n,error:r,always:i}},videoHistory:function(e,t,a,n,r,i){var o=a.sort().map((function(e){return"videoId=".concat(e)}));return{key:"video:history:".concat(e,":").concat(t,":videos:").concat(o.join("&")),url:"/api/videoviews/v1/customers/".concat(e,"/users/").concat(t,"/videos/history?").concat(o.join("&")),formatData:function(e){var t;return(null===(t=e)||void 0===t?void 0:t.length)?e.map((function(e){return{id:e.videoId,lastProgressPoint:e.lastProgressPoint}})):e},success:n,error:r,always:i}}}},844:function(e,t,a){"use strict";var n=a(0),r=a(33),i=a(818),o=a(860),c=a(245),s=a(55),l=a(839),u=a(854),d=a(45),m=function(e){return!!e&&e.series&&!!e.series.id},p=a(13),v=a(830),f=a(35),g=a(828),y=a(242),b=a(128),E=a(107),h=a(845),k=a.n(h),N=[b.a.AddToPlaylist,b.a.Share];function w(e){var t=n.useContext(y.a),a=t.videoActions,r=void 0===a?N:a,i=t.getActionAppLink,o=t.hideLabel,c=Object(E.a)(d.a.XS);if(!f.a.isFunction(i))return n.createElement(n.Fragment,null);var s=[];return r.forEach((function(t){var a=i(e.video,t);a&&s.push(Object.assign({appLink:a,className:"btn btn-link",button:!c},Object(b.b)()[t]))})),o&&!c&&(s=s.map((function(e){return Object.assign(Object.assign({},e),{label:null})}))),n.createElement(g.a,{actions:s,className:"float-right mt-n1",actionsDropdownClassName:"btn btn-link rounded-circle p-0 ".concat(k.a.actionsDropdown)})}var O=a(73),L=a(846),C=a.n(L);function A(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var a=[],n=!0,r=!1,i=void 0;try{for(var o,c=e[Symbol.iterator]();!(n=(o=c.next()).done)&&(a.push(o.value),!t||a.length!==t);n=!0);}catch(e){r=!0,i=e}finally{try{n||null==c.return||c.return()}finally{if(r)throw i}}return a}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return S(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);"Object"===a&&e.constructor&&(a=e.constructor.name);if("Map"===a||"Set"===a)return Array.from(e);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return S(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function S(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=new Array(t);a<t;a++)n[a]=e[a];return n}function j(e){var t=A(n.useState(e.truncate),2),a=t[0],r=t[1];return Object(E.a)(d.a.XS)?n.createElement(n.Fragment,null):n.createElement("div",{className:"position-relative overflow-hidden ".concat(a?"clamp-2":"")},n.createElement("p",{className:"m-0"},e.video.description,!!e.isExpandable&&n.createElement("span",{className:"cursor-pointer ".concat(C.a.ellipsis),onClick:function(){return r(!a)}},n.createElement(O.b,{namespace:"shared.videoItemDescription",phrase:a?"showMore":"showLess"}))))}j.defaultProps={truncate:!0};var D=a(51);function P(e){return n.createElement(D.a,{appLink:e.appLink},n.createElement("h5",{className:"m-0 mb-1 clamp-2"},e.video.name))}var x=a(863),F=a(858),I=a(847),T=a.n(I),V=a(236),H=a(3);a.d(t,"b",(function(){return M})),a.d(t,"a",(function(){return _}));var B=Object(i.SortableHandle)((function(){return n.createElement(r.Col,{xs:2,className:"d-flex justify-content-center align-items-center cursor-pointer ".concat(T.a.dragHandleContainer)},n.createElement(s.a,{svgName:p.b.Handle,size:s.b.Small}))}));function M(e){var t,a=Object(V.a)(),i=a===d.a.XS,s=a===d.a.SM||a===d.a.MD,p=a===d.a.SM,f=n.useContext(v.a).isSortable&&!i,g=e.getVideoAppLink(e.video),y=m(e.video)&&e.getSeriesAppLink(e.video.series);return n.createElement(r.Row,{className:"py-2"},n.createElement(r.Col,{xs:i?12:s?4:3,className:"flex-column align-items-flex-start mb-1"},n.createElement(r.Row,null,!!f&&n.createElement(B,null),n.createElement(r.Col,{xs:(t=f,t?10:12)},n.createElement(o.a,{video:e.video,appLink:g,seriesAppLink:y,size:f?l.a.Small:l.a.Medium,textPosition:u.a.Independent,setFavourite:e.setFavourite,type:"static",analyticsOptions:{location:H.j.VideoListItem}})))),n.createElement(r.Col,{xs:i?12:s?8:9},n.createElement(w,{video:e.video}),n.createElement(c.a,{className:"d-block",video:e.video,appLink:y,analyticsOptions:{location:H.j.VideoListItem}}),n.createElement(P,{video:e.video,appLink:e.getVideoAppLink(e.video)}),n.createElement(x.a,null,n.createElement(F.a,{type:F.b.Rating,data:e.video.rating}),n.createElement(F.a,{type:F.b.ProductionYear,data:e.video.productionYear}),!e.hideInteractiveBadge&&n.createElement(F.a,{type:F.b.Interactive,data:e.video.interactives})),!p&&n.createElement(j,{video:e.video})))}var _=Object(i.SortableElement)((function(e){return n.createElement(M,Object.assign({},e))}))},845:function(e,t,a){e.exports={actionsDropdown:"XR0aX"}},846:function(e,t,a){e.exports={ellipsis:"LJY5U"}},847:function(e,t,a){e.exports={dragHandleContainer:"_24s1b"}},848:function(e,t,a){"use strict";a.d(t,"a",(function(){return u}));var n=a(0),r=a.n(n),i=a(33),o=a(45),c=a(236),s=a(849),l=a.n(s);function u(e){var t=Object(c.a)(),a=t===o.a.XS,n=t===o.a.SM||t===o.a.MD,s=e.withReordering&&!a;return r.a.createElement(r.a.Fragment,null,Array(e.numVideos).fill(null).map((function(e,t){return r.a.createElement(i.Row,{key:t,className:"py-2"},r.a.createElement(i.Col,{xs:a?12:n?4:3,className:"flex-column align-items-flex-start mb-1"},r.a.createElement(i.Row,null,!!s&&r.a.createElement("div",{className:"d-flex align-items-center justify-content-center col-2"},r.a.createElement("div",{className:"partial-loading-background ".concat(l.a.partialDragHandle)})),r.a.createElement(i.Col,{xs:s?10:12},r.a.createElement("div",{className:"partial-loading-background rounded-lg ".concat(l.a.partialThumbnail)})))),r.a.createElement(i.Col,{xs:a?12:n?8:9},r.a.createElement("div",{className:"partial-loading-background ".concat(l.a.partialSeriesLink)}),r.a.createElement("div",{className:"partial-loading-background mb-1 ".concat(l.a.partialName)}),r.a.createElement("div",{className:"partial-loading-background ".concat(l.a.partialDescription)}),r.a.createElement("div",{className:"partial-loading-background ".concat(l.a.partialBadges)}),r.a.createElement("div",{className:"partial-loading-background ".concat(l.a.partialActions)})))})))}u.defaultProps={numVideos:15}},849:function(e,t,a){e.exports={partialName:"_7KNC2",partialDescription:"Vk_wR",partialThumbnail:"_3peRZ",partialDragHandle:"_1F7_f"}},850:function(e,t,a){"use strict";a.d(t,"a",(function(){return m}));var n=a(14),r=a(154),i=a(831),o=a(239),c=a(843);function s(e){return function(e){if(Array.isArray(e))return l(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return l(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);"Object"===a&&e.constructor&&(a=e.constructor.name);if("Map"===a||"Set"===a)return Array.from(e);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return l(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=new Array(t);a<t;a++)n[a]=e[a];return n}var u={ratings:!0,favourites:!0,watchHistory:!0};function d(e,t){var a,r=n.a.useGetResponse(null===(a=t)||void 0===a?void 0:a.key),i=n.a.useGetFetch(t);e&&t&&r.shouldFetch&&i()}function m(e){var t,a,l,m=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},p=Object.assign(Object.assign({},u),m),v=p.ratings,f=p.favourites,g=p.watchHistory,y=n.a.useBasicFetch(r.a.currentUser()),b=e&&(Array.isArray(e)?e.filter(Boolean).map((function(e){return e.id})):e.data.filter(Boolean).map((function(e){return e.id}))),E=y.data,h=[];v&&(h=[].concat(s(h),[!!(null===(t=b)||void 0===t?void 0:t.length)&&o.a.videoRatings(b)])),f&&(h=[].concat(s(h),[!!(null===(a=b)||void 0===a?void 0:a.length)&&E&&i.a.isFavourited(E.id,b)])),g&&(h=[].concat(s(h),[!!(null===(l=b)||void 0===l?void 0:l.length)&&E&&c.a.videoHistory(E.customerId,E.id,b)])),h.forEach((function(t){return d(!!e,t)}))}}}]);
|
package/dist/scripts/19.chunk.js
CHANGED
|
@@ -394,6 +394,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
394
394
|
/* harmony import */ var shared_errors_videos_video_private_VideoPrivateError__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! shared/errors/videos/video-private/VideoPrivateError */ "./src/shared/errors/videos/video-private/VideoPrivateError.ts");
|
|
395
395
|
/* harmony import */ var shared_hooks_useHandleObjectError__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! shared/hooks/useHandleObjectError */ "./src/shared/hooks/useHandleObjectError.ts");
|
|
396
396
|
/* harmony import */ var shared_hooks_useVideoMixin__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! shared/hooks/useVideoMixin */ "./src/shared/hooks/useVideoMixin.ts");
|
|
397
|
+
/* harmony import */ var _libs_shared_src_flight_requests_ClassificationRequests__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../../../../../../libs/shared/src/flight-requests/ClassificationRequests */ "../../libs/shared/src/flight-requests/ClassificationRequests.ts");
|
|
397
398
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
398
399
|
|
|
399
400
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
@@ -424,6 +425,7 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
|
424
425
|
|
|
425
426
|
|
|
426
427
|
|
|
428
|
+
|
|
427
429
|
|
|
428
430
|
var namespace = 'shared.play';
|
|
429
431
|
var videoErrors = {
|
|
@@ -433,7 +435,7 @@ var videoErrors = {
|
|
|
433
435
|
}
|
|
434
436
|
};
|
|
435
437
|
function PlayView(props) {
|
|
436
|
-
var _a, _b, _c;
|
|
438
|
+
var _a, _b, _c, _d;
|
|
437
439
|
|
|
438
440
|
var dispatch = Object(react_redux__WEBPACK_IMPORTED_MODULE_1__["useDispatch"])();
|
|
439
441
|
var alerts = Object(_libs_shared_src_hooks_UseAlerts__WEBPACK_IMPORTED_MODULE_10__["useAlerts"])();
|
|
@@ -448,7 +450,8 @@ function PlayView(props) {
|
|
|
448
450
|
// FavouriteVideoRequests.favouriteVideos(currentUser.data.id));
|
|
449
451
|
|
|
450
452
|
var glanceTheme = _libs_common_src_react__WEBPACK_IMPORTED_MODULE_2__["Flight"].useBasicFetch(((_b = (_a = video.data) === null || _a === void 0 ? void 0 : _a.glance) === null || _b === void 0 ? void 0 : _b.theme) ? _libs_shared_src_flight_requests_ThemeRequests__WEBPACK_IMPORTED_MODULE_6__["ThemeRequests"].theme(video.data.glance.theme) : null);
|
|
451
|
-
|
|
453
|
+
var curriculumLinks = _libs_common_src_react__WEBPACK_IMPORTED_MODULE_2__["Flight"].useBasicFetch(((_c = video.data) === null || _c === void 0 ? void 0 : _c.id) ? _libs_shared_src_flight_requests_ClassificationRequests__WEBPACK_IMPORTED_MODULE_19__["ClassificationRequests"].curriculumLinks(video.data.id) : null);
|
|
454
|
+
Object(_libs_common_src_react_hooks_UseSetPageTitle__WEBPACK_IMPORTED_MODULE_7__["useSetPageTitle"])((_d = video.data) === null || _d === void 0 ? void 0 : _d.name);
|
|
452
455
|
Object(shared_hooks_useHandleObjectError__WEBPACK_IMPORTED_MODULE_17__["useHandleObjectError"])(video, videoErrors, currentUser.data);
|
|
453
456
|
Object(shared_hooks_useVideoMixin__WEBPACK_IMPORTED_MODULE_18__["useVideoMixin"])([video.data]);
|
|
454
457
|
|
|
@@ -485,12 +488,13 @@ function PlayView(props) {
|
|
|
485
488
|
|
|
486
489
|
if (newVideo || newStartTime) setPlayerData('startTime', props.startTime || 0);
|
|
487
490
|
}, [!!video.data, props.startTime]);
|
|
488
|
-
if (!video.data || !currentUser.data) return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null);
|
|
491
|
+
if (!video.data || !currentUser.data || !curriculumLinks.data) return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null);
|
|
489
492
|
return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
|
|
490
493
|
className: 'px-3'
|
|
491
494
|
}, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](shared_components_play_page_PlayPage__WEBPACK_IMPORTED_MODULE_13__["PlayPage"], {
|
|
492
495
|
video: video.data,
|
|
493
496
|
glanceTheme: glanceTheme.data,
|
|
497
|
+
curriculumLinks: curriculumLinks.data,
|
|
494
498
|
// relatedVideos={relatedVideos.data ? relatedVideos.data.data : null}
|
|
495
499
|
setFavourite: setFavourite
|
|
496
500
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["file://C:/ClickView Projects/@clickview/packages/libs/shared/src/flight-requests/FavouriteVideoRequests.ts","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/flight-requests/ThemeRequests.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/watch-history/flight-requests/VideoHistoryRequests.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/shared/hooks/useHandleObjectError.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/shared/hooks/useVideoMixin.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/shared/views/play/PlayView.tsx"],"names":[],"mappings":"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","file":"scripts/19.chunk.js","sourcesContent":["import { Flight } from 'libs/common/flight';\r\nimport { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\r\nimport { Xhr } from 'libs/common/backbone/interfaces';\r\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\r\n\r\nimport { SharedWithStatements } from 'libs/shared/constants/WithStatements';\r\n\r\nfunction favouriteVideo(\r\n videoId: string, userId: string, success?: () => void, error?: (Xhr: Xhr) => void\r\n): Flight.Request {\r\n return {\r\n url: `/api/domain/v2/objects/${userId}`,\r\n key: `favourite:video:${userId}:${videoId}`,\r\n data: { favouriteVideos: videoId },\r\n type: HttpVerbs.PUT,\r\n invalidationKeys: [ `favourite:videos:${userId}`, `video:is:favourited:${userId}` ],\r\n success,\r\n error\r\n };\r\n}\r\n\r\nfunction unfavouriteVideo(\r\n videoId: string, userId: string, success?: () => void, error?: (Xhr: Xhr) => void\r\n): Flight.Request {\r\n return {\r\n url: `/api/domain/v2/objects/${userId}/favouriteVideos/${videoId}`,\r\n key: `favourite:video:${userId}:${videoId}`,\r\n type: HttpVerbs.DELETE,\r\n invalidationKeys: [ `favourite:videos:${userId}`, `video:is:favourited:${userId}` ],\r\n success,\r\n error\r\n };\r\n}\r\n\r\nexport const FavouriteVideoRequests = {\r\n favouriteVideos(userId: string, cursor?: string): Flight.Request {\r\n const query = `${SharedWithStatements.VIDEO_COLLECTION}${addCursor(cursor)}`;\r\n\r\n return {\r\n url: `/api/domain/v2/objects/${userId}/favouriteVideos?query=${query}`,\r\n key: `favourite:videos:${userId}${cursor ? `:${cursor}` : ''}`\r\n };\r\n },\r\n\r\n updateIsVideoFavourited(\r\n videoId: string, userId: string, shouldFavourite: boolean, success?: () => void, error?: (Xhr: Xhr) => void\r\n ): Flight.Request {\r\n const requestFn = shouldFavourite\r\n ? favouriteVideo\r\n : unfavouriteVideo;\r\n\r\n return requestFn(videoId, userId, success, error);\r\n },\r\n\r\n isFavourited(userId: string, ids: string[]): Flight.Request {\r\n const sortedIds = ids.slice().sort();\r\n\r\n const params = sortedIds.map(i => `id=${i}`);\r\n\r\n if (!params.length)\r\n return;\r\n\r\n return {\r\n url: `/api/domain/v2/objects?query=favouritedBy{id:${userId}}&${params.join('&')}`,\r\n key: `video:is:favourited:${userId}:by:id:${sortedIds.join(',')}`,\r\n formatData: (videos: HashObject[]) => {\r\n if (!videos?.length)\r\n return videos;\r\n\r\n const setIsFavourited = (video: HashObject) => {\r\n const { favouritedBy, ...v } = video;\r\n\r\n // As we filtered by userId, if there are any users, set isFavourited to true.\r\n return {\r\n ...v,\r\n isFavourited: !!favouritedBy?.data?.length\r\n };\r\n };\r\n\r\n return videos.map(setIsFavourited);\r\n }\r\n };\r\n }\r\n};\r\n\r\nfunction addCursor(cursor: string): string {\r\n return cursor ? `&cursor=${cursor}` : '';\r\n}","import { Flight } from 'libs/common/flight';\r\nimport { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\r\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\r\nimport { Xhr } from 'libs/common/backbone/interfaces';\r\nimport { Theme } from 'libs/shared/interfaces';\r\n\r\nexport const ThemeRequests = {\r\n theme(id: string): Flight.Request {\r\n return {\r\n url: `/api/domain/v1/themes/${id}`,\r\n key: `themes:${id}`\r\n };\r\n },\r\n\r\n themes(type?: string): Flight.Request {\r\n let url = '/api/domain/v1/themes';\r\n let key = 'themes';\r\n\r\n if (type) {\r\n url += `?type=${type}`;\r\n key += `:type:${type}`;\r\n }\r\n\r\n return {\r\n url,\r\n key\r\n };\r\n },\r\n\r\n createTheme(\r\n data: Theme,\r\n success?: (data: HashObject) => void,\r\n error?: (xhr: Xhr) => void,\r\n always?: () => void\r\n ): Flight.Request {\r\n return {\r\n url: '/api/domain/v1/themes',\r\n key: 'theme',\r\n data,\r\n type: HttpVerbs.POST,\r\n invalidationKeys: 'themes',\r\n success,\r\n error,\r\n always\r\n };\r\n },\r\n\r\n updateTheme(\r\n id: string,\r\n data: Theme,\r\n success?: (data: HashObject) => void,\r\n error?: (xhr: Xhr) => void,\r\n always?: () => void\r\n ): Flight.Request {\r\n return {\r\n url: `/api/domain/v1/themes/${id}`,\r\n key: `update:theme:${id}`,\r\n data,\r\n type: HttpVerbs.PUT,\r\n success,\r\n error,\r\n always\r\n };\r\n },\r\n\r\n deleteTheme(\r\n id: string,\r\n success?: (data: HashObject) => void,\r\n error?: (xhr: Xhr) => void,\r\n always?: () => void\r\n ): Flight.Request {\r\n return {\r\n url: `/api/domain/v1/themes/${id}`,\r\n key: `delete:theme:${id}`,\r\n type: HttpVerbs.DELETE,\r\n invalidationKeys: 'themes',\r\n success,\r\n error,\r\n always\r\n };\r\n }\r\n};","import { Flight } from 'libs/common/flight';\r\nimport { HashObject } from 'libs/common/react/interfaces';\r\nimport { Xhr } from 'libs/common/backbone/interfaces';\r\n\r\nexport const VideoHistoryRequests = {\r\n userVideoHistory(\r\n customerId: string,\r\n userId: string,\r\n cursor?: string,\r\n success?: (data: HashObject) => void,\r\n error?: (Xhr: Xhr) => void,\r\n always?: () => void\r\n ): Flight.Request {\r\n let key = `video:history:${customerId}:${userId}`;\r\n let url = `/api/videoviews/v1/customers/${customerId}/users/${userId}/videos/history`;\r\n\r\n if (cursor) {\r\n key += `:${cursor}`;\r\n url += `?cursor=${cursor}`;\r\n }\r\n\r\n return {\r\n key,\r\n url,\r\n success,\r\n error,\r\n always\r\n };\r\n },\r\n\r\n videoHistory(\r\n customerId: string,\r\n userId: string,\r\n ids: string[],\r\n success?: (data: HashObject) => void,\r\n error?: (Xhr: Xhr) => void,\r\n always?: () => void\r\n ): Flight.Request {\r\n const params = ids.sort().map(i => `videoId=${i}`);\r\n\r\n return {\r\n key: `video:history:${customerId}:${userId}:videos:${params.join('&')}`,\r\n url: `/api/videoviews/v1/customers/${customerId}/users/${userId}/videos/history?${params.join('&')}`,\r\n formatData: (historyCollection: HashObject[]) => {\r\n if (!historyCollection?.length)\r\n return historyCollection;\r\n\r\n /**\r\n * Data is formatted to enable it to be merged with the existing video object in the store\r\n * Where we need to merge more history properties with the video object, map them below.\r\n */\r\n return historyCollection.map((watchHistory: HashObject) => ({\r\n id: watchHistory.videoId,\r\n lastProgressPoint: watchHistory.lastProgressPoint\r\n }));\r\n },\r\n success,\r\n error,\r\n always\r\n };\r\n }\r\n};","import { Core } from 'libs/common/core';\r\nimport { Flight } from 'libs/common/flight';\r\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\r\n\r\nimport { BaseObject, CurrentUser } from 'libs/shared/interfaces';\r\nimport { BaseError } from 'libs/common/backbone/core/BaseError';\r\n\r\nimport { NotFoundError } from 'shared/errors/general/not-found/LiteNotFoundError';\r\nimport { UnspecifiedError } from 'shared/errors/general/unspecified-error/UnspecifiedError';\r\nimport { PrivateResourceError } from 'shared/errors/general/private-resource/PrivateResourceError';\r\nimport { RegionLockedResourceError } from 'shared/errors/general/region-locked-resource/RegionLockedResourceError';\r\n\r\ninterface ErrorMap {\r\n notFound?: new () => BaseError;\r\n forbidden?: {\r\n rating?: new (description: string) => BaseError;\r\n yearLevel?: new (description: string) => BaseError;\r\n region?: new () => BaseError;\r\n privacy?: new () => BaseError;\r\n };\r\n badRequest?: new () => BaseError;\r\n}\r\n\r\nconst defaultErrors: ErrorMap = {\r\n notFound: NotFoundError,\r\n forbidden: {\r\n rating: PrivateResourceError,\r\n yearLevel: PrivateResourceError,\r\n region: RegionLockedResourceError,\r\n privacy: PrivateResourceError\r\n },\r\n badRequest: UnspecifiedError\r\n};\r\n\r\nexport function useHandleObjectError(\r\n object: Flight.Response<BaseObject>,\r\n customErrors: ErrorMap,\r\n currentUser: CurrentUser\r\n): void {\r\n const errors = {\r\n ...defaultErrors,\r\n ...customErrors\r\n };\r\n\r\n if (!object.statusCode || object.statusCode === HttpStatus.Ok)\r\n return;\r\n\r\n if (object.statusCode === HttpStatus.NotFound) {\r\n Core.ErrorHelper.throw(new errors.notFound());\r\n return;\r\n }\r\n\r\n if (object.statusCode === HttpStatus.Forbidden) {\r\n /**\r\n * TODO: Work out how to go about handling all forbidden errors, such as region locking, year levels,\r\n * ratings, and privacy.\r\n */\r\n Core.ErrorHelper.throw(new errors.forbidden.privacy());\r\n return;\r\n }\r\n\r\n Core.ErrorHelper.throw(new errors.badRequest());\r\n}","import { Flight } from 'libs/common/flight';\r\nimport { VideoCollection, Video, CurrentUser } from 'libs/shared/interfaces';\r\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\r\nimport { FavouriteVideoRequests } from 'libs/shared/flight-requests/FavouriteVideoRequests';\r\n\r\nimport { VideoRequests } from 'shared/flight-requests/VideoRequests';\r\nimport { VideoHistoryRequests } from 'apps/watch-history/flight-requests/VideoHistoryRequests';\r\n\r\ninterface VideoMixinOptions {\r\n ratings?: boolean;\r\n favourites?: boolean;\r\n watchHistory?: boolean;\r\n}\r\n\r\nconst defaults: VideoMixinOptions = {\r\n ratings: true,\r\n favourites: true,\r\n watchHistory: true,\r\n};\r\n\r\nfunction fetchAttribute(videosFetched: boolean, request: Flight.Request): void {\r\n const attribute = Flight.useGetResponse<VideoCollection>(request?.key);\r\n const fetch = Flight.useGetFetch(request);\r\n\r\n if (videosFetched && request && attribute.shouldFetch)\r\n fetch();\r\n}\r\n\r\nexport function useVideoMixin(videos: VideoCollection | Video[], options: VideoMixinOptions = {}): void {\r\n const { ratings, favourites, watchHistory } = { ...defaults, ...options };\r\n\r\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\r\n\r\n const videoIds = videos && (Array.isArray(videos)\r\n ? videos.filter(Boolean).map(v => v.id)\r\n : videos.data.filter(Boolean).map(v => v.id));\r\n\r\n const user = currentUser.data;\r\n\r\n let requests: Flight.Request[] = [];\r\n\r\n if (ratings)\r\n requests = [ ...requests, !!videoIds?.length && VideoRequests.videoRatings(videoIds) ];\r\n\r\n if (favourites)\r\n requests = [ ...requests, !!videoIds?.length && user && FavouriteVideoRequests.isFavourited(user.id, videoIds) ];\r\n\r\n if (watchHistory)\r\n requests = [ ...requests, !!videoIds?.length && user &&\r\n VideoHistoryRequests.videoHistory( user.customerId, user.id, videoIds) ];\r\n\r\n requests.forEach(r => fetchAttribute(!!videos, r));\r\n}","import * as React from 'react';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport { Flight } from 'libs/common/flight';\r\nimport { useViewModel } from 'libs/common/react/hooks/useViewModel';\r\nimport { Video, VideoCollection, CurrentUser, Theme } from 'libs/shared/interfaces';\r\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\r\nimport { FavouriteVideoRequests } from 'libs/shared/flight-requests/FavouriteVideoRequests';\r\nimport { ThemeRequests } from 'libs/shared/flight-requests/ThemeRequests';\r\nimport { useSetPageTitle } from 'libs/common/react/hooks/UseSetPageTitle';\r\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\r\nimport { EntityType, UserAction, LocationContext, WorkflowPhase, ToggleDescriptor } from 'libs/analytics/interfaces';\r\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\n\r\nimport { VideoRequests } from 'shared/flight-requests/VideoRequests';\r\nimport { PlayPage } from 'shared/components/play-page/PlayPage';\r\nimport { ViewModelKeys } from 'shared/constants/LiteViewModels';\r\nimport { VideoNotFoundError } from 'shared/errors/videos/video-not-found/LiteVideoNotFoundError';\r\nimport { VideoPrivateError } from 'shared/errors/videos/video-private/VideoPrivateError';\r\nimport { useHandleObjectError } from 'shared/hooks/useHandleObjectError';\r\nimport { useVideoMixin } from 'shared/hooks/useVideoMixin';\r\n\r\nconst namespace = 'shared.play';\r\n\r\nconst videoErrors = {\r\n notFound: VideoNotFoundError,\r\n forbidden: {\r\n privacy: VideoPrivateError\r\n }\r\n};\r\n\r\ninterface PlayViewProps {\r\n id: string;\r\n startTime?: number; // Timepoint in seconds\r\n}\r\n\r\nexport function PlayView(props: PlayViewProps): React.ReactElement {\r\n const dispatch = useDispatch();\r\n const alerts = useAlerts();\r\n\r\n const [ currentPlayerData, setPlayerData ] = useViewModel(ViewModelKeys.WEB_PLAYER_DATA);\r\n\r\n const video = Flight.useBasicFetch<Video>(VideoRequests.video(props.id));\r\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\r\n // const relatedVideos = Flight.useBasicFetch<VideoCollection>(!!currentUser.data &&\r\n // FavouriteVideoRequests.favouriteVideos(currentUser.data.id));\r\n const glanceTheme = Flight.useBasicFetch<Theme>(video.data?.glance?.theme\r\n ? ThemeRequests.theme(video.data.glance.theme) : null);\r\n\r\n useSetPageTitle(video.data?.name);\r\n useHandleObjectError(video, videoErrors, currentUser.data);\r\n\r\n useVideoMixin([video.data]);\r\n\r\n function setFavourite(_video: Video, shouldFavourite: boolean, onError?: () => void): void {\r\n Flight.fetch(\r\n dispatch,\r\n FavouriteVideoRequests.updateIsVideoFavourited(_video.id, currentUser.data.id, shouldFavourite, () => {\r\n AnalyticsHelper.logUserAction({ id: _video.id }, {\r\n entity: EntityType.Video,\r\n actionType: UserAction.Favourite,\r\n descriptor: shouldFavourite ? ToggleDescriptor.On : ToggleDescriptor.Off,\r\n location: LocationContext.PlayPage,\r\n workflowPhase: WorkflowPhase.Complete\r\n });\r\n\r\n alerts.success(LanguageService.getPhrase(\r\n namespace,\r\n shouldFavourite ? 'favourited' : 'unfavourited',\r\n { video: _video.name }\r\n ));\r\n }, onError)\r\n );\r\n }\r\n\r\n React.useEffect(() => {\r\n if (!video.data)\r\n return;\r\n\r\n setPlayerData('video', video.data);\r\n\r\n const newVideo = currentPlayerData.video?.id !== video.data.id;\r\n const newStartTime = Number.isInteger(props.startTime) && props.startTime !== currentPlayerData.startTime;\r\n\r\n /**\r\n * Only update start time if the video has changed or if a new startTime has been passed as a prop.\r\n * \r\n * We must set startTime as something other than undefined (i.e. a number) otherwise the ViewModelReducer\r\n * won't recognise that it's a KVP.\r\n */\r\n if (newVideo || newStartTime)\r\n setPlayerData('startTime', props.startTime || 0);\r\n }, [ !!video.data, props.startTime ]);\r\n\r\n if (!video.data || !currentUser.data)\r\n return <></>;\r\n\r\n return (\r\n <div className='px-3'>\r\n <PlayPage\r\n video={video.data}\r\n glanceTheme={glanceTheme.data}\r\n // relatedVideos={relatedVideos.data ? relatedVideos.data.data : null}\r\n setFavourite={setFavourite}\r\n />\r\n </div>\r\n );\r\n}"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"sources":["file://C:/ClickView Projects/@clickview/packages/libs/shared/src/flight-requests/FavouriteVideoRequests.ts","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/flight-requests/ThemeRequests.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/watch-history/flight-requests/VideoHistoryRequests.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/shared/hooks/useHandleObjectError.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/shared/hooks/useVideoMixin.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/shared/views/play/PlayView.tsx"],"names":[],"mappings":"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","file":"scripts/19.chunk.js","sourcesContent":["import { Flight } from 'libs/common/flight';\r\nimport { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\r\nimport { Xhr } from 'libs/common/backbone/interfaces';\r\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\r\n\r\nimport { SharedWithStatements } from 'libs/shared/constants/WithStatements';\r\n\r\nfunction favouriteVideo(\r\n videoId: string, userId: string, success?: () => void, error?: (Xhr: Xhr) => void\r\n): Flight.Request {\r\n return {\r\n url: `/api/domain/v2/objects/${userId}`,\r\n key: `favourite:video:${userId}:${videoId}`,\r\n data: { favouriteVideos: videoId },\r\n type: HttpVerbs.PUT,\r\n invalidationKeys: [ `favourite:videos:${userId}`, `video:is:favourited:${userId}` ],\r\n success,\r\n error\r\n };\r\n}\r\n\r\nfunction unfavouriteVideo(\r\n videoId: string, userId: string, success?: () => void, error?: (Xhr: Xhr) => void\r\n): Flight.Request {\r\n return {\r\n url: `/api/domain/v2/objects/${userId}/favouriteVideos/${videoId}`,\r\n key: `favourite:video:${userId}:${videoId}`,\r\n type: HttpVerbs.DELETE,\r\n invalidationKeys: [ `favourite:videos:${userId}`, `video:is:favourited:${userId}` ],\r\n success,\r\n error\r\n };\r\n}\r\n\r\nexport const FavouriteVideoRequests = {\r\n favouriteVideos(userId: string, cursor?: string): Flight.Request {\r\n const query = `${SharedWithStatements.VIDEO_COLLECTION}${addCursor(cursor)}`;\r\n\r\n return {\r\n url: `/api/domain/v2/objects/${userId}/favouriteVideos?query=${query}`,\r\n key: `favourite:videos:${userId}${cursor ? `:${cursor}` : ''}`\r\n };\r\n },\r\n\r\n updateIsVideoFavourited(\r\n videoId: string, userId: string, shouldFavourite: boolean, success?: () => void, error?: (Xhr: Xhr) => void\r\n ): Flight.Request {\r\n const requestFn = shouldFavourite\r\n ? favouriteVideo\r\n : unfavouriteVideo;\r\n\r\n return requestFn(videoId, userId, success, error);\r\n },\r\n\r\n isFavourited(userId: string, ids: string[]): Flight.Request {\r\n const sortedIds = ids.slice().sort();\r\n\r\n const params = sortedIds.map(i => `id=${i}`);\r\n\r\n if (!params.length)\r\n return;\r\n\r\n return {\r\n url: `/api/domain/v2/objects?query=favouritedBy{id:${userId}}&${params.join('&')}`,\r\n key: `video:is:favourited:${userId}:by:id:${sortedIds.join(',')}`,\r\n formatData: (videos: HashObject[]) => {\r\n if (!videos?.length)\r\n return videos;\r\n\r\n const setIsFavourited = (video: HashObject) => {\r\n const { favouritedBy, ...v } = video;\r\n\r\n // As we filtered by userId, if there are any users, set isFavourited to true.\r\n return {\r\n ...v,\r\n isFavourited: !!favouritedBy?.data?.length\r\n };\r\n };\r\n\r\n return videos.map(setIsFavourited);\r\n }\r\n };\r\n }\r\n};\r\n\r\nfunction addCursor(cursor: string): string {\r\n return cursor ? `&cursor=${cursor}` : '';\r\n}","import { Flight } from 'libs/common/flight';\r\nimport { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\r\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\r\nimport { Xhr } from 'libs/common/backbone/interfaces';\r\nimport { Theme } from 'libs/shared/interfaces';\r\n\r\nexport const ThemeRequests = {\r\n theme(id: string): Flight.Request {\r\n return {\r\n url: `/api/domain/v1/themes/${id}`,\r\n key: `themes:${id}`\r\n };\r\n },\r\n\r\n themes(type?: string): Flight.Request {\r\n let url = '/api/domain/v1/themes';\r\n let key = 'themes';\r\n\r\n if (type) {\r\n url += `?type=${type}`;\r\n key += `:type:${type}`;\r\n }\r\n\r\n return {\r\n url,\r\n key\r\n };\r\n },\r\n\r\n createTheme(\r\n data: Theme,\r\n success?: (data: HashObject) => void,\r\n error?: (xhr: Xhr) => void,\r\n always?: () => void\r\n ): Flight.Request {\r\n return {\r\n url: '/api/domain/v1/themes',\r\n key: 'theme',\r\n data,\r\n type: HttpVerbs.POST,\r\n invalidationKeys: 'themes',\r\n success,\r\n error,\r\n always\r\n };\r\n },\r\n\r\n updateTheme(\r\n id: string,\r\n data: Theme,\r\n success?: (data: HashObject) => void,\r\n error?: (xhr: Xhr) => void,\r\n always?: () => void\r\n ): Flight.Request {\r\n return {\r\n url: `/api/domain/v1/themes/${id}`,\r\n key: `update:theme:${id}`,\r\n data,\r\n type: HttpVerbs.PUT,\r\n success,\r\n error,\r\n always\r\n };\r\n },\r\n\r\n deleteTheme(\r\n id: string,\r\n success?: (data: HashObject) => void,\r\n error?: (xhr: Xhr) => void,\r\n always?: () => void\r\n ): Flight.Request {\r\n return {\r\n url: `/api/domain/v1/themes/${id}`,\r\n key: `delete:theme:${id}`,\r\n type: HttpVerbs.DELETE,\r\n invalidationKeys: 'themes',\r\n success,\r\n error,\r\n always\r\n };\r\n }\r\n};","import { Flight } from 'libs/common/flight';\r\nimport { HashObject } from 'libs/common/react/interfaces';\r\nimport { Xhr } from 'libs/common/backbone/interfaces';\r\n\r\nexport const VideoHistoryRequests = {\r\n userVideoHistory(\r\n customerId: string,\r\n userId: string,\r\n cursor?: string,\r\n success?: (data: HashObject) => void,\r\n error?: (Xhr: Xhr) => void,\r\n always?: () => void\r\n ): Flight.Request {\r\n let key = `video:history:${customerId}:${userId}`;\r\n let url = `/api/videoviews/v1/customers/${customerId}/users/${userId}/videos/history`;\r\n\r\n if (cursor) {\r\n key += `:${cursor}`;\r\n url += `?cursor=${cursor}`;\r\n }\r\n\r\n return {\r\n key,\r\n url,\r\n success,\r\n error,\r\n always\r\n };\r\n },\r\n\r\n videoHistory(\r\n customerId: string,\r\n userId: string,\r\n ids: string[],\r\n success?: (data: HashObject) => void,\r\n error?: (Xhr: Xhr) => void,\r\n always?: () => void\r\n ): Flight.Request {\r\n const params = ids.sort().map(i => `videoId=${i}`);\r\n\r\n return {\r\n key: `video:history:${customerId}:${userId}:videos:${params.join('&')}`,\r\n url: `/api/videoviews/v1/customers/${customerId}/users/${userId}/videos/history?${params.join('&')}`,\r\n formatData: (historyCollection: HashObject[]) => {\r\n if (!historyCollection?.length)\r\n return historyCollection;\r\n\r\n /**\r\n * Data is formatted to enable it to be merged with the existing video object in the store\r\n * Where we need to merge more history properties with the video object, map them below.\r\n */\r\n return historyCollection.map((watchHistory: HashObject) => ({\r\n id: watchHistory.videoId,\r\n lastProgressPoint: watchHistory.lastProgressPoint\r\n }));\r\n },\r\n success,\r\n error,\r\n always\r\n };\r\n }\r\n};","import { Core } from 'libs/common/core';\r\nimport { Flight } from 'libs/common/flight';\r\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\r\n\r\nimport { BaseObject, CurrentUser } from 'libs/shared/interfaces';\r\nimport { BaseError } from 'libs/common/backbone/core/BaseError';\r\n\r\nimport { NotFoundError } from 'shared/errors/general/not-found/LiteNotFoundError';\r\nimport { UnspecifiedError } from 'shared/errors/general/unspecified-error/UnspecifiedError';\r\nimport { PrivateResourceError } from 'shared/errors/general/private-resource/PrivateResourceError';\r\nimport { RegionLockedResourceError } from 'shared/errors/general/region-locked-resource/RegionLockedResourceError';\r\n\r\ninterface ErrorMap {\r\n notFound?: new () => BaseError;\r\n forbidden?: {\r\n rating?: new (description: string) => BaseError;\r\n yearLevel?: new (description: string) => BaseError;\r\n region?: new () => BaseError;\r\n privacy?: new () => BaseError;\r\n };\r\n badRequest?: new () => BaseError;\r\n}\r\n\r\nconst defaultErrors: ErrorMap = {\r\n notFound: NotFoundError,\r\n forbidden: {\r\n rating: PrivateResourceError,\r\n yearLevel: PrivateResourceError,\r\n region: RegionLockedResourceError,\r\n privacy: PrivateResourceError\r\n },\r\n badRequest: UnspecifiedError\r\n};\r\n\r\nexport function useHandleObjectError(\r\n object: Flight.Response<BaseObject>,\r\n customErrors: ErrorMap,\r\n currentUser: CurrentUser\r\n): void {\r\n const errors = {\r\n ...defaultErrors,\r\n ...customErrors\r\n };\r\n\r\n if (!object.statusCode || object.statusCode === HttpStatus.Ok)\r\n return;\r\n\r\n if (object.statusCode === HttpStatus.NotFound) {\r\n Core.ErrorHelper.throw(new errors.notFound());\r\n return;\r\n }\r\n\r\n if (object.statusCode === HttpStatus.Forbidden) {\r\n /**\r\n * TODO: Work out how to go about handling all forbidden errors, such as region locking, year levels,\r\n * ratings, and privacy.\r\n */\r\n Core.ErrorHelper.throw(new errors.forbidden.privacy());\r\n return;\r\n }\r\n\r\n Core.ErrorHelper.throw(new errors.badRequest());\r\n}","import { Flight } from 'libs/common/flight';\r\nimport { VideoCollection, Video, CurrentUser } from 'libs/shared/interfaces';\r\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\r\nimport { FavouriteVideoRequests } from 'libs/shared/flight-requests/FavouriteVideoRequests';\r\n\r\nimport { VideoRequests } from 'shared/flight-requests/VideoRequests';\r\nimport { VideoHistoryRequests } from 'apps/watch-history/flight-requests/VideoHistoryRequests';\r\n\r\ninterface VideoMixinOptions {\r\n ratings?: boolean;\r\n favourites?: boolean;\r\n watchHistory?: boolean;\r\n}\r\n\r\nconst defaults: VideoMixinOptions = {\r\n ratings: true,\r\n favourites: true,\r\n watchHistory: true,\r\n};\r\n\r\nfunction fetchAttribute(videosFetched: boolean, request: Flight.Request): void {\r\n const attribute = Flight.useGetResponse<VideoCollection>(request?.key);\r\n const fetch = Flight.useGetFetch(request);\r\n\r\n if (videosFetched && request && attribute.shouldFetch)\r\n fetch();\r\n}\r\n\r\nexport function useVideoMixin(videos: VideoCollection | Video[], options: VideoMixinOptions = {}): void {\r\n const { ratings, favourites, watchHistory } = { ...defaults, ...options };\r\n\r\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\r\n\r\n const videoIds = videos && (Array.isArray(videos)\r\n ? videos.filter(Boolean).map(v => v.id)\r\n : videos.data.filter(Boolean).map(v => v.id));\r\n\r\n const user = currentUser.data;\r\n\r\n let requests: Flight.Request[] = [];\r\n\r\n if (ratings)\r\n requests = [ ...requests, !!videoIds?.length && VideoRequests.videoRatings(videoIds) ];\r\n\r\n if (favourites)\r\n requests = [ ...requests, !!videoIds?.length && user && FavouriteVideoRequests.isFavourited(user.id, videoIds) ];\r\n\r\n if (watchHistory)\r\n requests = [ ...requests, !!videoIds?.length && user &&\r\n VideoHistoryRequests.videoHistory( user.customerId, user.id, videoIds) ];\r\n\r\n requests.forEach(r => fetchAttribute(!!videos, r));\r\n}","import * as React from 'react';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport { Flight } from 'libs/common/flight';\r\nimport { useViewModel } from 'libs/common/react/hooks/useViewModel';\r\nimport { Video, Curriculum, CurrentUser, Theme } from 'libs/shared/interfaces';\r\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\r\nimport { FavouriteVideoRequests } from 'libs/shared/flight-requests/FavouriteVideoRequests';\r\nimport { ThemeRequests } from 'libs/shared/flight-requests/ThemeRequests';\r\nimport { useSetPageTitle } from 'libs/common/react/hooks/UseSetPageTitle';\r\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\r\nimport { EntityType, UserAction, LocationContext, WorkflowPhase, ToggleDescriptor } from 'libs/analytics/interfaces';\r\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\n\r\nimport { VideoRequests } from 'shared/flight-requests/VideoRequests';\r\nimport { PlayPage } from 'shared/components/play-page/PlayPage';\r\nimport { ViewModelKeys } from 'shared/constants/LiteViewModels';\r\nimport { VideoNotFoundError } from 'shared/errors/videos/video-not-found/LiteVideoNotFoundError';\r\nimport { VideoPrivateError } from 'shared/errors/videos/video-private/VideoPrivateError';\r\nimport { useHandleObjectError } from 'shared/hooks/useHandleObjectError';\r\nimport { useVideoMixin } from 'shared/hooks/useVideoMixin';\r\nimport { ClassificationRequests } from 'libs/shared/flight-requests/ClassificationRequests';\r\n\r\nconst namespace = 'shared.play';\r\n\r\nconst videoErrors = {\r\n notFound: VideoNotFoundError,\r\n forbidden: {\r\n privacy: VideoPrivateError\r\n }\r\n};\r\n\r\ninterface PlayViewProps {\r\n id: string;\r\n startTime?: number; // Timepoint in seconds\r\n}\r\n\r\nexport function PlayView(props: PlayViewProps): React.ReactElement {\r\n const dispatch = useDispatch();\r\n const alerts = useAlerts();\r\n\r\n const [ currentPlayerData, setPlayerData ] = useViewModel(ViewModelKeys.WEB_PLAYER_DATA);\r\n\r\n const video = Flight.useBasicFetch<Video>(VideoRequests.video(props.id));\r\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\r\n // const relatedVideos = Flight.useBasicFetch<VideoCollection>(!!currentUser.data &&\r\n // FavouriteVideoRequests.favouriteVideos(currentUser.data.id));\r\n const glanceTheme = Flight.useBasicFetch<Theme>(video.data?.glance?.theme\r\n ? ThemeRequests.theme(video.data.glance.theme) : null);\r\n const curriculumLinks = Flight.useBasicFetch<Curriculum[][]>(video.data?.id\r\n ? ClassificationRequests.curriculumLinks(video.data.id) : null);\r\n\r\n useSetPageTitle(video.data?.name);\r\n useHandleObjectError(video, videoErrors, currentUser.data);\r\n\r\n useVideoMixin([video.data]);\r\n\r\n function setFavourite(_video: Video, shouldFavourite: boolean, onError?: () => void): void {\r\n Flight.fetch(\r\n dispatch,\r\n FavouriteVideoRequests.updateIsVideoFavourited(_video.id, currentUser.data.id, shouldFavourite, () => {\r\n AnalyticsHelper.logUserAction({ id: _video.id }, {\r\n entity: EntityType.Video,\r\n actionType: UserAction.Favourite,\r\n descriptor: shouldFavourite ? ToggleDescriptor.On : ToggleDescriptor.Off,\r\n location: LocationContext.PlayPage,\r\n workflowPhase: WorkflowPhase.Complete\r\n });\r\n\r\n alerts.success(LanguageService.getPhrase(\r\n namespace,\r\n shouldFavourite ? 'favourited' : 'unfavourited',\r\n { video: _video.name }\r\n ));\r\n }, onError)\r\n );\r\n }\r\n\r\n React.useEffect(() => {\r\n if (!video.data)\r\n return;\r\n\r\n setPlayerData('video', video.data);\r\n\r\n const newVideo = currentPlayerData.video?.id !== video.data.id;\r\n const newStartTime = Number.isInteger(props.startTime) && props.startTime !== currentPlayerData.startTime;\r\n\r\n /**\r\n * Only update start time if the video has changed or if a new startTime has been passed as a prop.\r\n * \r\n * We must set startTime as something other than undefined (i.e. a number) otherwise the ViewModelReducer\r\n * won't recognise that it's a KVP.\r\n */\r\n if (newVideo || newStartTime)\r\n setPlayerData('startTime', props.startTime || 0);\r\n }, [ !!video.data, props.startTime ]);\r\n\r\n if (!video.data || !currentUser.data || !curriculumLinks.data)\r\n return <></>;\r\n\r\n return (\r\n <div className='px-3'>\r\n <PlayPage\r\n video={video.data}\r\n glanceTheme={glanceTheme.data}\r\n curriculumLinks={curriculumLinks.data}\r\n // relatedVideos={relatedVideos.data ? relatedVideos.data.data : null}\r\n setFavourite={setFavourite}\r\n />\r\n </div>\r\n );\r\n}"],"sourceRoot":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(window.webpackJsonp_clickview_lite=window.webpackJsonp_clickview_lite||[]).push([[2],{1020:function(e,t,n){"use strict";var i=n(0),a=n(228),r=n(951),o=n(35),c=new Image;c.src="data:image/gif;base64,R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs=";var s=function(e){e.dataTransfer.setDragImage&&o.a.isFunction(e.dataTransfer.setDragImage)&&e.dataTransfer.setDragImage(c,0,0)};n.d(t,"a",(function(){return u}));var l=a.a.isTouchScreen();var u=i.forwardRef((function(e,t){var n,a,o,c,u=e.children,d=e.positionType,f=e.onDrag,m=e.onDragEnd,v=e.onTouchMove,p=e.onTouchEnd,g=e.percentageDragged,b=e.position,y=void 0===b?0:b;return i.createElement("div",Object.assign({className:"d-flex flex-nowrap position-relative w-100",style:(a=y,o=d,c=g,o===r.a.Percentage&&c&&(a-=c),{transform:"translate3d(".concat(a).concat(o,", 0px, 0px)"),transition:"transform .4s ease-in-out"}),ref:t},(n={},f&&m&&(n.draggable=!0,n.onDragEnd=m,n.onDragStart=s,n.onDragOver=f),v&&p&&l&&(n.onTouchMoveCapture=v,n.onTouchEndCapture=p),n)),u)}))},1067:function(e,t,n){e.exports={leftOverflowGradient:"u_MPi",rightOverflowGradient:"_38ooL",partialHeading:"OVsdA",partialDescription:"_1HtA2",partialItem:"_3G2hG",largePartialItem:"NnK8O",heading:"BQnCC",link:"ph0Qy"}},1068:function(e,t,n){"use strict";n.d(t,"g",(function(){return d})),n.d(t,"f",(function(){return f})),n.d(t,"b",(function(){return m})),n.d(t,"a",(function(){return v})),n.d(t,"c",(function(){return p})),n.d(t,"e",(function(){return A})),n.d(t,"d",(function(){return E}));var i=n(0),a=n(57),r=n(35),o=n(47),c=n(45),s=n(876),l=n(918),u=n(158);function d(e,t,n,o){var c,l=e.fetch,u=e.setData,d=e.type,f=e.collection,m=e.prefetched,v=e.contents,p=f;return(!p||a.a.isEmpty(p)&&!m)&&(c=l(o),p=c.data),i.useEffect((function(){p&&!a.a.isEmpty(p)&&t({type:s.a.Init,payload:{collection:r.a.isFunction(u)?u(p):p,mediaQuery:n,type:d,contents:v}})}),[p]),c}function f(e){for(var t=e.offset,n=e.viewableItems,i=e.collection,a=t,r=[],o=0;o<a+n;o++)r.push(o);return function(e){var t=i.indexOf(e);return r.includes(t)}}function m(e,t){if(e)return Object.assign(Object.assign({},e),{args:e.args||[t.id,o.a.slugify(t.name)]})}function v(e,t){var n=e.name,i=e.description,a={};return Array.isArray(t)?{name:n,description:i}:(e.name&&(a.name=n),e.description&&(a.description=i),Object.assign(Object.assign({},t),a))}function p(e){switch(e){case l.a.Playlists:return g;case l.a.Videos:return b;case l.a.Subjects:return y;case l.a.UserChannels:return h;case l.a.Interactives:return S;case l.a.Clips:return O;case l.a.Series:default:return w}}function g(e,t,n){var i=5;return e===c.a.XS?i=2:e===c.a.SM?i=3:e===c.a.MD&&(i=4),n<i&&(i=n),i}function b(e,t,n){var i=4;return e===c.a.XS?i=2:e===c.a.SM?i=3:e===c.a.MD?i=4:e!==c.a.LG&&e!==c.a.XL&&e!==c.a.XXL||(i=t===u.c.LargeRow||n<4?3:4),n<i&&(i=n),i}function y(e,t,n){var i=6;return e===c.a.SM||e===c.a.XS?i=3:e===c.a.MD?i=4:e===c.a.LG?i=5:e!==c.a.XL&&e!==c.a.XXL||(i=6),n<i&&(i=n),i}function h(e,t,n){var i=6;return e===c.a.XS?i=2:e===c.a.SM?i=3:e===c.a.MD?i=4:e===c.a.LG?i=5:e!==c.a.XL&&e!==c.a.XXL||(i=6),n<i&&(i=n),i}function S(e,t,n){var i=3;return e!==c.a.MD&&e!==c.a.SM||(i=2),e===c.a.XS&&(i=1),n<Math.ceil(i)&&(i=n),i}function O(e,t,n){var i=3;return e!==c.a.MD&&e!==c.a.SM||(i=2),e===c.a.XS&&(i=1),n<Math.ceil(i)&&(i=n),i}function w(e,t,n){var i=4;return e===c.a.XS?i=2:e===c.a.SM&&(i=3),n<i&&(i=n),i}function A(e,t,n,i,a,r,o){return function(c){var s=c.touches.item(0).clientX;a||(t.current.style.transition="",i(t.current.getBoundingClientRect().width),r(s));var l=(a-s)/n*100;(l<0&&e.offset===e.viewableItems||l>0&&e.offset===e.collection.length)&&(l=0),o(l)}}function E(e,t,n,i,a){return function(){if(e.current.style.transition="transform .4s ease-in-out",t(null),Math.abs(n)>=7.5){var r=n>0?s.a.Next:s.a.Previous;a({type:r})}i(0)}}},1226:function(e,t,n){e.exports={left:"_789pr",right:"_1P8qt",button:"_24q_F",chevron:"_3M27X",gradientLeft:"_3fkiw",gradientRight:"_2RDDy",extendedClickableAreaRight:"_13dgy",extendedClickableAreaLeft:"_37LtK",videoTopPos:"_1XTRO",topPos:"_3_p_J"}},876:function(e,t,n){"use strict";var i;n.d(t,"a",(function(){return i})),function(e){e.Init="init",e.Next="next",e.Previous="previous",e.Resize="resize",e.Drag="drag"}(i||(i={}))},910:function(e,t,n){"use strict";n.d(t,"a",(function(){return L}));var i=n(0),a=n(7),r=n(951),o=n(986),c=n(1020),s=n(236),l=n(919),u=n(158),d=n(876),f=n(909),m=n(51),v=n(55),p=n(13),g=n(839),b=n(987),y=n(40),h=n(920),S=n(1068),O=n(921),w=n(1067),A=n.n(w);function E(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],i=!0,a=!1,r=void 0;try{for(var o,c=e[Symbol.iterator]();!(i=(o=c.next()).done)&&(n.push(o.value),!t||n.length!==t);i=!0);}catch(e){a=!0,r=e}finally{try{i||null==c.return||c.return()}finally{if(a)throw r}}return n}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return j(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return j(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function j(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,i=new Array(t);n<t;n++)i[n]=e[n];return i}function I(e){var t,n,w,j,I,L=e.type,C=e.analyticsData,k=void 0===C?{}:C;L===u.c.ResourcesTile&&(L=u.c.Row);var N=E(i.useState(null),2),x=N[0],D=N[1],M=E(i.useState(null),2),z=M[0],R=M[1],T=E(i.useState(0),2),_=T[0],P=T[1],X=E(i.useReducer(O.a,O.b,O.c),2),G=X[0],Q=X[1],F=i.useRef(null),B=E(Object(l.a)(),2),U=B[0],H=B[1],V=E(i.useState(!1),2),J=V[0],W=V[1],q=E(i.useState(!1),2),K=q[0],$=q[1],Y=Object(f.a)(!e.lazyLoad),Z=Y.ref,ee=Y.inView,te=Object(s.a)();i.useEffect((function(){Q({type:d.a.Resize,payload:{mediaQuery:te,type:L,contents:e.contents,collection:G.collection}})}),[te]),i.useEffect((function(){e.prefetched&&Q({type:d.a.Init,payload:{mediaQuery:te,type:L,contents:e.contents,collection:e.collection}})}),[e.collection,e.prefetched]);var ne=Object(S.g)(e,Q,te,ee);var ie={type:G.type,size:G.currentSize,collectionSize:G.collection.length,contents:e.contents},ae=Object(S.a)(e,(null===(t=ne)||void 0===t?void 0:t.data)||e.collection);if(null===(n=ne)||void 0===n?void 0:n.hasError)return i.createElement(i.Fragment,null);if(!e.prefetched&&!(null===(w=ne)||void 0===w?void 0:w.statusCode))return i.createElement("div",{ref:Z},i.createElement(h.a,{type:L}));if(!G.collection.length||G.collection.length<e.minimumItemCount)return i.createElement(i.Fragment,null);var re=e.childComponent,oe=function(t){var n,i;return Object.assign({id:null===(n=ae)||void 0===n?void 0:n.id,name:null===(i=ae)||void 0===i?void 0:i.name,direction:t===d.a.Next?"right":"left"},e.analyticsData)};return i.createElement("div",{className:"pb-3 px-".concat(e.paddingSize," mx-n").concat(e.paddingSize," overflow-hidden-x")},i.createElement("div",{className:"mb-1"},i.createElement(m.a,{appLink:Object(S.b)(e.appLink,ae),analyticsData:Object.assign({id:null===(j=ae)||void 0===j?void 0:j.id,name:null===(I=ae)||void 0===I?void 0:I.name},e.analyticsData),analyticsOptions:b.a.getSliderHeadingAnalyticsOptions()},i.createElement("h2",{className:"".concat(A.a.heading," ").concat(e.appLink?A.a.link:""," h4 mb-0 d-inline-block align-top pl-1")},ae.name,!!e.appLink&&i.createElement(v.a,{svgName:p.b.ChevronRight,size:v.b.Small})),e.settingsAppLink&&i.createElement(m.a,{appLink:e.settingsAppLink},i.createElement(v.a,{svgName:p.b.Cog,className:"d-inline-block svg-container cursor-pointer",title:a.a.getPhrase("shared.fixedWidget","preferencesTooltip"),tooltipPlacement:"right"}))),ae.description&&i.createElement("p",{className:"text-truncate pl-1 mb-0 description"},ae.description)),i.createElement("div",{ref:U,className:"position-relative"},!J&&i.createElement("div",{className:A.a.leftOverflowGradient}),i.createElement(o.a,{direction:o.b.Left,onClick:function(){Q({type:d.a.Previous}),y.a.logUserAction(oe(d.a.Previous),b.a.getSliderAnalyticsOptions())},hide:J||G.offset<=G.collection.length&&!(H&&G.offset!==G.viewableItems),contents:e.contents}),i.createElement(c.a,{position:G.position,positionType:r.a.Percentage,onTouchMove:Object(S.e)(G,F,z,R,x,D,P),onTouchEnd:Object(S.d)(F,D,_,P,Q),ref:F,percentageDragged:_},G.collection.map((function(t,n){var a;return i.createElement(re,{key:t.id,data:t,appLink:e.childAppLink,context:ie,preloadImage:Object(S.f)(G)(t),thumbnailSize:e.thumbnailSize||g.a.Medium,analyticsData:Object.assign({widgetId:ae.id,widgetName:ae.name,itemIndex:n},k),analyticsOptions:Object.assign(Object.assign({},null===(a=e)||void 0===a?void 0:a.analyticsOptions),b.a.getSliderItemAnalyticsOptions()),onHover:function(e){window.setTimeout((function(){!function(e,t){if(G.collection.length===G.viewableItems)return W(e),void $(e);t+1!==G.collection.length?0!==t?(t+1-G.offset%G.viewableItems)%G.viewableItems!=0?(t-G.offset%G.viewableItems)%G.viewableItems!=0||W(e):$(e):W(e):$(e)}(e,n)}),e?0:200)}})}))),i.createElement(o.a,{direction:o.b.Right,onClick:function(){Q({type:d.a.Next}),y.a.logUserAction(oe(d.a.Next),b.a.getSliderAnalyticsOptions())},hide:K||(G.offset>G.viewableItems||G.offset===G.collection.length)&&!(H&&G.offset<G.collection.length),contents:e.contents}),!K&&i.createElement("div",{className:A.a.rightOverflowGradient})))}I.defaultProps={type:u.c.Row,minimumItemCount:0,paddingSize:"3"};var L=i.memo(I)},918:function(e,t,n){"use strict";var i;n.d(t,"a",(function(){return i})),function(e){e.Videos="videos",e.Series="series",e.Subjects="subjects",e.Playlists="playlists",e.UserChannels="user channels",e.Interactives="interactives",e.Clips="clips"}(i||(i={}))},919:function(e,t,n){"use strict";n.d(t,"a",(function(){return s})),n.d(t,"b",(function(){return l}));var i=n(0),a=n(35);function r(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],i=!0,a=!1,r=void 0;try{for(var o,c=e[Symbol.iterator]();!(i=(o=c.next()).done)&&(n.push(o.value),!t||n.length!==t);i=!0);}catch(e){a=!0,r=e}finally{try{i||null==c.return||c.return()}finally{if(a)throw r}}return n}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return o(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return o(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,i=new Array(t);n<t;n++)i[n]=e[n];return i}var c={className:"",delay:0};function s(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:c,t=i.useState(!1),n=r(t,2),o=n[0],s=n[1],l=i.useRef(null),u=a.a.throttle((function(){var t,n;e.className&&(null===(n=null===(t=l.current)||void 0===t?void 0:t.classList)||void 0===n||n.add(e.className)),s(!0)}),e.delay,{leading:!1}),d=function(){var t,n;a.a.isFunction(u.cancel)&&u.cancel(),e.className&&(null===(n=null===(t=l.current)||void 0===t?void 0:t.classList)||void 0===n||n.remove(e.className)),s(!1)};return i.useLayoutEffect((function(){var e=l.current;if(e)return e.addEventListener("mouseenter",u),e.addEventListener("mouseleave",d),function(){e.removeEventListener("mouseenter",u),e.removeEventListener("mouseleave",d)}}),[l.current,u,d]),[l,o]}function l(e){return s({className:e,delay:275})}},920:function(e,t,n){"use strict";n.d(t,"a",(function(){return l}));var i=n(0),a=n(45),r=n(236),o=n(1067),c=n.n(o);var s=function(e){var t=e.colSize;return i.createElement("div",{className:"col-".concat(t)},i.createElement("div",{className:"".concat(c.a.partialItem," mx-1 partial-loading-background")}))};function l(e){for(var t,n=(t=Object(r.a)())===a.a.XS?{itemCount:1,colSize:12}:t===a.a.SM?{itemCount:2,colSize:6}:t===a.a.MD?{itemCount:3,colSize:4}:{itemCount:4,colSize:3},o=n.itemCount,l=n.colSize,u=[],d=0;d<o;d++)u.push(i.createElement(s,{key:d,colSize:l}));return i.createElement("div",{className:"widget pb-3"},i.createElement("div",{className:"".concat(c.a.partialHeading," mx-1 mb-1 partial-loading-background")}),i.createElement("div",{className:"".concat(c.a.partialDescription," mx-1 my-1 partial-loading-background")}),i.createElement("div",{className:"".concat(c.a.slidingContainer," row")},u))}},921:function(e,t,n){"use strict";n.d(t,"b",(function(){return c})),n.d(t,"a",(function(){return s})),n.d(t,"c",(function(){return l}));var i=n(45),a=n(876),r=n(158),o=n(1068),c={offset:0,viewableItems:4,position:0,collection:[],currentSize:i.a.LG,type:r.c.Row};function s(e,t){var n,i,r=t.type,c=t.payload,s=void 0===c?{}:c;switch(r){case a.a.Next:return Object.assign(Object.assign({},e),function(e){var t=e.collection,n=e.viewableItems,i=e.offset,a=e.position,r=t.length-i;return r%n==0||r>n?{position:a-100,offset:i+n}:r<n?{position:a-r/n*100,offset:i+r}:{position:a,offset:i}}(e));case a.a.Previous:return Object.assign(Object.assign({},e),function(e){var t=e.viewableItems,n=e.offset,i=e.position,a=n-t;return a%t==0||a>t?{position:i+100,offset:n-t}:a<t?{position:i+a/t*100,offset:n-a}:{position:i,offset:n}}(e));case a.a.Resize:var u=Object(o.c)(s.contents)(s.mediaQuery,s.type,null===(n=s.collection)||void 0===n?void 0:n.length);return Object.assign(Object.assign({},e),{currentSize:s.mediaQuery,position:0,offset:u,viewableItems:u,type:s.type});case a.a.Init:var d=Object(o.c)(s.contents)(s.mediaQuery,s.type,null===(i=s.collection)||void 0===i?void 0:i.length);return l(Object.assign(Object.assign({},e),{collection:s.collection,currentSize:s.mediaQuery,offset:d,viewableItems:d,type:s.type}));default:return e}}function l(e){return Object.assign(Object.assign({},c),e)}},951:function(e,t,n){"use strict";var i;n.d(t,"a",(function(){return i})),function(e){e.Percentage="%",e.Pixels="px"}(i||(i={}))},986:function(e,t,n){"use strict";n.d(t,"b",(function(){return i})),n.d(t,"a",(function(){return l}));var i,a=n(0),r=n(55),o=n(13),c=n(1226),s=n.n(c);!function(e){e[e.Left=0]="Left",e[e.Right=1]="Right"}(i||(i={}));var l=a.memo((function(e){var t,n,c=e.direction===i.Left,l=c?o.b.ChevronLeft:o.b.ChevronRight,u=(e.contents,t=c,n=s.a.topPos,n+=t?" "+s.a.left:" "+s.a.right);return e.hide?a.createElement(a.Fragment,null):a.createElement(a.Fragment,null,a.createElement("div",{role:"button",className:"".concat(u," ").concat(s.a.button),onClick:e.onClick},a.createElement(r.a,{svgName:l,size:r.b.Medium,className:"svg-container d-inline-block ".concat(s.a.chevron)})),e.useGradientBackdrop&&a.createElement("div",{className:c?s.a.gradientLeft:s.a.gradientRight}),a.createElement("div",{role:"button",onClick:e.onClick,className:c?s.a.extendedClickableAreaLeft:s.a.extendedClickableAreaRight}))}),(function(e,t){return e.hide===t.hide}))},987:function(e,t,n){"use strict";n.d(t,"a",(function(){return a}));var i=n(3),a={getSliderAnalyticsOptions:function(){return{actionType:i.n.Click,location:i.j.SlidingList,entity:i.d.Widget,descriptor:i.b.Slide}},getSliderItemAnalyticsOptions:function(){return{location:i.j.SlidingListItem}},getSliderHeadingAnalyticsOptions:function(){return{actionType:i.n.Click,location:i.j.SlidingList,entity:i.d.Widget,descriptor:i.b.Title}}}}}]);
|