@clickview/lite 0.0.18-dev.2 → 0.0.18-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/css/0.chunk.css.map +1 -0
- package/dist/css/1.chunk.css +144 -2
- package/dist/css/1.chunk.css.map +1 -0
- package/dist/css/10.chunk.css +10 -12
- package/dist/css/10.chunk.css.map +1 -0
- package/dist/css/11.chunk.css +5 -9
- package/dist/css/11.chunk.css.map +1 -0
- package/dist/css/12.chunk.css.map +1 -0
- package/dist/css/13.chunk.css.map +1 -0
- package/dist/css/14.chunk.css.map +1 -0
- package/dist/css/16.chunk.css.map +1 -0
- package/dist/css/18.chunk.css.map +1 -0
- package/dist/css/19.chunk.css +6 -2
- package/dist/css/19.chunk.css.map +1 -0
- package/dist/css/2.chunk.css +14 -0
- package/dist/css/20.chunk.css +2 -6
- package/dist/css/21.chunk.css +1 -3
- package/dist/css/21.chunk.css.map +1 -0
- package/dist/css/22.chunk.css +2 -2
- package/dist/css/22.chunk.css.map +1 -0
- package/dist/css/23.chunk.css +3 -1
- package/dist/css/23.chunk.css.map +1 -0
- package/dist/css/24.chunk.css +1 -3
- package/dist/css/24.chunk.css.map +1 -0
- package/dist/css/25.chunk.css +2 -2
- package/dist/css/25.chunk.css.map +1 -0
- package/dist/css/26.chunk.css +3 -1
- package/dist/css/26.chunk.css.map +1 -0
- package/dist/css/27.chunk.css +66 -2
- package/dist/css/27.chunk.css.map +1 -0
- package/dist/css/28.chunk.css +48 -2
- package/dist/css/28.chunk.css.map +1 -0
- package/dist/css/29.chunk.css +43 -4
- package/dist/css/29.chunk.css.map +1 -0
- package/dist/css/3.chunk.css +13 -7
- package/dist/css/3.chunk.css.map +1 -0
- package/dist/css/30.chunk.css +1 -3
- package/dist/css/30.chunk.css.map +1 -0
- package/dist/css/31.chunk.css +5 -2
- package/dist/css/31.chunk.css.map +1 -0
- package/dist/css/32.chunk.css +4 -1
- package/dist/css/32.chunk.css.map +1 -0
- package/dist/css/34.chunk.css +4 -2
- package/dist/css/34.chunk.css.map +1 -0
- package/dist/css/35.chunk.css +7 -0
- package/dist/css/35.chunk.css.map +1 -0
- package/dist/css/36.chunk.css +4 -0
- package/dist/css/36.chunk.css.map +1 -0
- package/dist/css/37.chunk.css +3 -1
- package/dist/css/37.chunk.css.map +1 -0
- package/dist/css/38.chunk.css +36 -2
- package/dist/css/38.chunk.css.map +1 -0
- package/dist/css/4.chunk.css +5 -13
- package/dist/css/4.chunk.css.map +1 -0
- package/dist/css/44.chunk.css +1 -1
- package/dist/css/45.chunk.css +9 -0
- package/dist/css/45.chunk.css.map +1 -0
- package/dist/css/5.chunk.css +2 -8
- package/dist/css/5.chunk.css.map +1 -0
- package/dist/css/9.chunk.css +15 -7
- package/dist/css/lite-app.css.map +1 -0
- package/dist/libs/analytics/src/AnalyticsService.d.ts +52 -0
- package/dist/libs/analytics/src/clients/BaseAnalyticsClient.d.ts +24 -0
- package/dist/libs/analytics/src/clients/CollectionApiClient.d.ts +48 -0
- package/dist/libs/analytics/src/clients/DebuggerClient.d.ts +7 -0
- package/dist/libs/analytics/src/constants/ApplicationOptionsKey.d.ts +1 -0
- package/dist/libs/analytics/src/constants/CountryRegionMapping.d.ts +7 -0
- package/dist/libs/analytics/src/constants/Regions.d.ts +6 -0
- package/dist/libs/analytics/src/enrichers/BaseAnalyticsEnricher.d.ts +19 -0
- package/dist/libs/analytics/src/enrichers/CoreContextEnricher.d.ts +22 -0
- package/dist/libs/analytics/src/enrichers/UserDataEnricher.d.ts +10 -0
- package/dist/libs/analytics/src/enums/CountryCode.d.ts +5 -0
- package/dist/libs/analytics/src/interfaces/AnalyticsTypes.d.ts +49 -5
- package/dist/libs/analytics/src/interfaces/VersionData.d.ts +4 -0
- package/dist/libs/analytics/src/models/CollectionEvent.d.ts +55 -0
- package/dist/libs/analytics/src/transport/EventTransport.d.ts +39 -0
- package/dist/libs/analytics/src/utils/CollectionApiClientHelper.d.ts +6 -0
- package/dist/libs/analytics/src/utils/DataFormatHelper.d.ts +14 -0
- package/dist/libs/analytics/src/utils/EventWhitelistHelper.d.ts +19 -0
- package/dist/libs/analytics/src/utils/TypeHelper.d.ts +4 -0
- package/dist/libs/analytics/src/utils/UploadDataFormatHelper.d.ts +10 -0
- package/dist/libs/analytics/src/utils/UserAgentHelper.d.ts +10 -0
- package/dist/libs/analytics/src/utils/VideoDataFormatHelper.d.ts +42 -0
- package/dist/libs/common/src/backbone/core/BaseAppRouter.d.ts +5 -1
- package/dist/libs/common/src/react/constants/ViewModelActions.d.ts +3 -0
- package/dist/libs/common/src/react/hooks/useViewModel.d.ts +4 -0
- package/dist/libs/common/src/react/interfaces/ApplicationState.d.ts +3 -1
- package/dist/libs/common/src/react/interfaces/ViewModelAction.d.ts +5 -0
- package/dist/libs/common/src/react/interfaces/ViewModelPayload.d.ts +5 -0
- package/dist/libs/common/src/react/reducers/ViewModelReducer.d.ts +3 -0
- package/dist/libs/common/src/react/utils/ArrayHelper.d.ts +1 -2
- package/dist/libs/shared/src/apps/content-updates/interfaces/VideoClassificationMapping.d.ts +2 -1
- package/dist/libs/shared/src/apps/upload/services/UploadService.d.ts +3 -2
- package/dist/libs/shared/src/components/lazy-image/LazyImage.d.ts +1 -1
- package/dist/libs/shared/src/components/search-bar/SearchBar.d.ts +5 -0
- package/dist/libs/shared/src/components/widgets/fixed-widget/FixedWidget.d.ts +4 -2
- package/dist/libs/shared/src/components/widgets/items/subject-widget-item/SubjectWidgetItem.d.ts +4 -3
- package/dist/libs/shared/src/constants/BootstrapKeys.d.ts +1 -0
- package/dist/libs/shared/src/constants/WithStatements.d.ts +1 -1
- package/dist/libs/shared/src/enums/CountryCode.d.ts +5 -0
- package/dist/libs/shared/src/enums/SubtitleExtractionOptions.d.ts +4 -0
- package/dist/libs/shared/src/enums/WidgetContents.d.ts +2 -1
- package/dist/libs/shared/src/flight-requests/FavouriteVideoRequests.d.ts +1 -1
- package/dist/libs/shared/src/flight-requests/PreferenceRequests.d.ts +4 -4
- package/dist/libs/shared/src/hooks/UseReorderedItems.d.ts +9 -0
- package/dist/libs/shared/src/interfaces/models/Config.d.ts +3 -1
- package/dist/libs/shared/src/interfaces/models/UserChannel.d.ts +7 -0
- package/dist/libs/shared/src/interfaces/models/index.d.ts +1 -0
- package/dist/libs/shared/src/services/ConfigDataService.d.ts +1 -0
- package/dist/libs/shared/src/utils/AudienceHelper.d.ts +5 -1
- package/dist/projects/lite/src/apps/classrooms/components/classroom-group-dropdown/ClassroomGroupDropdown.d.ts +3 -2
- package/dist/projects/lite/src/apps/classrooms/components/tile-actions/TileActions.d.ts +1 -0
- package/dist/projects/lite/src/apps/classrooms/flight-requests/ClassroomRequests.d.ts +1 -1
- package/dist/projects/lite/src/apps/classrooms/views/add-students-to-classroom/AddStudentsToClassroomView.d.ts +3 -3
- package/dist/projects/lite/src/apps/classrooms/views/create-classroom/CreateClassroomView.d.ts +3 -4
- package/dist/projects/lite/src/apps/classrooms/views/create-classroom-group/CreateClassroomGroupView.d.ts +3 -3
- package/dist/projects/lite/src/apps/classrooms/views/delete-classroom/DeleteClassroomView.d.ts +4 -4
- package/dist/projects/lite/src/apps/classrooms/views/delete-classroom-group/DeleteClassroomGroupView.d.ts +3 -3
- package/dist/projects/lite/src/apps/classrooms/views/edit-classroom/EditClassroomView.d.ts +3 -3
- package/dist/projects/lite/src/apps/classrooms/views/edit-classroom-group/EditClassroomGroupView.d.ts +3 -3
- package/dist/projects/lite/src/apps/classrooms/views/remove-students-from-classroom/RemoveStudentsFromClassroomView.d.ts +3 -3
- package/dist/projects/lite/src/apps/content-updates/LiteContentUpdatesApplication.d.ts +1 -1
- package/dist/projects/lite/src/apps/default/LiteDefaultApplication.d.ts +2 -2
- package/dist/projects/lite/src/apps/playlists/LitePlaylistsApplication.d.ts +2 -1
- package/dist/projects/lite/src/apps/playlists/views/delete-playlist/DeletePlaylistView.d.ts +2 -2
- package/dist/projects/lite/src/apps/playlists/views/edit-playlist/EditPlaylistView.d.ts +2 -2
- package/dist/projects/lite/src/apps/playlists/views/new-playlist/NewPlaylistView.d.ts +2 -2
- package/dist/projects/lite/src/apps/playlists/views/playlist/PlaylistViewUtils.d.ts +0 -8
- package/dist/projects/lite/src/apps/playlists/views/remove-video-from-playlist/RemoveVideoFromPlaylistView.d.ts +2 -2
- package/dist/projects/lite/src/apps/search/components/filter-actions/FilterActions.d.ts +3 -2
- package/dist/projects/lite/src/apps/search/components/filter-button/FilterButton.d.ts +3 -2
- package/dist/projects/lite/src/apps/search/components/filter-types/checkbox-filter/CheckboxFilter.d.ts +3 -2
- package/dist/projects/lite/src/apps/search/components/filter-types/dropdown-filter/DropdownFilter.d.ts +3 -2
- package/dist/projects/lite/src/apps/search/components/filter-types/radio-filter/RadioFilter.d.ts +3 -2
- package/dist/projects/lite/src/apps/search/components/filter-types/radio-filter/year-level/YearLevelRadioFilter.d.ts +3 -2
- package/dist/projects/lite/src/apps/search/components/reset-button/ResetButton.d.ts +3 -2
- package/dist/projects/lite/src/apps/search/components/search-filters/SearchFilters.d.ts +3 -2
- package/dist/projects/lite/src/apps/search/interfaces/FilterProps.d.ts +3 -2
- package/dist/projects/lite/src/apps/search/utils/FilterHelper.d.ts +4 -2
- package/dist/projects/lite/src/apps/subjects/LiteSubjectApplication.d.ts +2 -2
- package/dist/projects/lite/src/apps/upload/services/FlightVideoUploadDataService.d.ts +5 -0
- package/dist/projects/lite/src/apps/user-manager/components/delete-uploaded-student-popup/DeleteUploadedStudentPopup.d.ts +4 -4
- package/dist/projects/lite/src/apps/user-manager/components/delete-uploaded-teacher-popup/DeleteUploadedTeacherPopup.d.ts +4 -4
- package/dist/projects/lite/src/apps/user-manager/components/edit-uploaded-user-popup/EditUploadedUserPopup.d.ts +4 -4
- package/dist/projects/lite/src/apps/user-manager/components/manage-users-list/ManageUsersList.d.ts +3 -2
- package/dist/projects/lite/src/apps/user-manager/flight-requests/SchoolUserRequests.d.ts +3 -3
- package/dist/projects/lite/src/apps/user-manager/views/create-student/CreateStudentView.d.ts +3 -4
- package/dist/projects/lite/src/apps/user-manager/views/create-teacher/CreateTeacherView.d.ts +3 -4
- package/dist/projects/lite/src/apps/user-manager/views/edit-student/EditStudentView.d.ts +4 -4
- package/dist/projects/lite/src/apps/user-manager/views/edit-teacher/EditTeacherView.d.ts +4 -4
- package/dist/projects/lite/src/apps/user-manager/views/remove-user/RemoveUserView.d.ts +4 -4
- package/dist/projects/lite/src/apps/user-manager/views/student-upload-review/StudentUploadReviewView.d.ts +4 -2
- package/dist/projects/lite/src/apps/user-manager/views/teacher-upload-review/TeacherUploadReviewView.d.ts +4 -2
- package/dist/projects/lite/src/shared/components/immersive-reader/ImmersiveReader.d.ts +7 -2
- package/dist/projects/lite/src/shared/components/share/copy-embed-html/CopyEmbedHtml.d.ts +4 -2
- package/dist/projects/lite/src/shared/constants/LiteViewModels.d.ts +6 -0
- package/dist/projects/lite/src/shared/{contexts/player/PlayerContext.d.ts → hooks/useInitPlayerContext.d.ts} +4 -10
- package/dist/projects/lite/src/shared/hooks/useNavLock.d.ts +1 -0
- package/dist/projects/lite/src/shared/views/share/main-view/MainShareView.d.ts +3 -3
- package/dist/projects/lite/src/shared/views/share/settings-view/ShareSettingsView.d.ts +4 -3
- package/dist/projects/lite/src/startup/RegisterAnalytics.d.ts +3 -0
- package/dist/projects/lite/src/startup/index.d.ts +1 -0
- package/dist/scripts/0-525bd75473.chunk.js +1 -0
- package/dist/scripts/0.chunk.js +478 -1
- package/dist/scripts/0.chunk.js.map +1 -0
- package/dist/scripts/1-f6fa17226d.chunk.js +17 -0
- package/dist/scripts/1.chunk.js +621 -17
- package/dist/scripts/1.chunk.js.map +1 -0
- package/dist/scripts/10-f3b34b2d35.chunk.js +1 -0
- package/dist/scripts/10.chunk.js +400 -7
- package/dist/scripts/10.chunk.js.map +1 -0
- package/dist/scripts/11-a698af3f1c.chunk.js +1 -0
- package/dist/scripts/11.chunk.js +1289 -7
- package/dist/scripts/11.chunk.js.map +1 -0
- package/dist/scripts/12-9ace90fcbc.chunk.js +1 -0
- package/dist/scripts/12.chunk.js +1059 -7
- package/dist/scripts/12.chunk.js.map +1 -0
- package/dist/scripts/13-3a4f103546.chunk.js +1 -0
- package/dist/scripts/13.chunk.js +751 -7
- package/dist/scripts/13.chunk.js.map +1 -0
- package/dist/scripts/14-11868e2868.chunk.js +1 -0
- package/dist/scripts/14.chunk.js +425 -7
- package/dist/scripts/14.chunk.js.map +1 -0
- package/dist/scripts/15-78ff5e8be2.chunk.js +1 -0
- package/dist/scripts/15.chunk.js +609 -7
- package/dist/scripts/15.chunk.js.map +1 -0
- package/dist/scripts/16-22f6224811.chunk.js +1 -0
- package/dist/scripts/16.chunk.js +648 -7
- package/dist/scripts/16.chunk.js.map +1 -0
- package/dist/scripts/17-afe6281dd5.chunk.js +1 -0
- package/dist/scripts/17.chunk.js +541 -7
- package/dist/scripts/17.chunk.js.map +1 -0
- package/dist/scripts/18-47be31c0b6.chunk.js +1 -0
- package/dist/scripts/18.chunk.js +766 -7
- package/dist/scripts/18.chunk.js.map +1 -0
- package/dist/scripts/19-89c0b2c20e.chunk.js +1 -0
- package/dist/scripts/19.chunk.js +647 -7
- package/dist/scripts/19.chunk.js.map +1 -0
- package/dist/scripts/2-3b37480a80.chunk.js +7 -0
- package/dist/scripts/2.chunk.js +8259 -1
- package/dist/scripts/2.chunk.js.map +1 -0
- package/dist/scripts/20-32ac3fe0b9.chunk.js +1 -0
- package/dist/scripts/20.chunk.js +122 -7
- package/dist/scripts/20.chunk.js.map +1 -0
- package/dist/scripts/21-891207049a.chunk.js +1 -0
- package/dist/scripts/21.chunk.js +1571 -1
- package/dist/scripts/21.chunk.js.map +1 -0
- package/dist/scripts/22-24236e6723.chunk.js +1 -0
- package/dist/scripts/22.chunk.js +1387 -1
- package/dist/scripts/22.chunk.js.map +1 -0
- package/dist/scripts/23-7b425169bc.chunk.js +1 -0
- package/dist/scripts/23.chunk.js +1121 -1
- package/dist/scripts/23.chunk.js.map +1 -0
- package/dist/scripts/24-40edd30087.chunk.js +1 -0
- package/dist/scripts/24.chunk.js +1348 -1
- package/dist/scripts/24.chunk.js.map +1 -0
- package/dist/scripts/25-887b9ef587.chunk.js +1 -0
- package/dist/scripts/25.chunk.js +1137 -1
- package/dist/scripts/25.chunk.js.map +1 -0
- package/dist/scripts/26-cbe0ff0f77.chunk.js +1 -0
- package/dist/scripts/26.chunk.js +906 -1
- package/dist/scripts/26.chunk.js.map +1 -0
- package/dist/scripts/27-f26afdae78.chunk.js +1 -0
- package/dist/scripts/27.chunk.js +1143 -1
- package/dist/scripts/27.chunk.js.map +1 -0
- package/dist/scripts/28-70414fd373.chunk.js +1 -0
- package/dist/scripts/28.chunk.js +656 -1
- package/dist/scripts/28.chunk.js.map +1 -0
- package/dist/scripts/29-944b5c01a7.chunk.js +1 -0
- package/dist/scripts/29.chunk.js +616 -1
- package/dist/scripts/29.chunk.js.map +1 -0
- package/dist/scripts/3-233f573a92.chunk.js +1 -0
- package/dist/scripts/3.chunk.js +585 -1
- package/dist/scripts/3.chunk.js.map +1 -0
- package/dist/scripts/30-3a229887e9.chunk.js +1 -0
- package/dist/scripts/30.chunk.js +557 -1
- package/dist/scripts/30.chunk.js.map +1 -0
- package/dist/scripts/31-ab038bfc0c.chunk.js +1 -0
- package/dist/scripts/31.chunk.js +731 -1
- package/dist/scripts/31.chunk.js.map +1 -0
- package/dist/scripts/32-8bd6703eef.chunk.js +1 -0
- package/dist/scripts/32.chunk.js +957 -1
- package/dist/scripts/32.chunk.js.map +1 -0
- package/dist/scripts/{35-8b4ce9fc27.chunk.js → 33-4579af9cf9.chunk.js} +1 -1
- package/dist/scripts/33.chunk.js +938 -1
- package/dist/scripts/33.chunk.js.map +1 -0
- package/dist/scripts/{36-cbd8837f89.chunk.js → 34-d8b96d9f9f.chunk.js} +1 -1
- package/dist/scripts/34.chunk.js +523 -1
- package/dist/scripts/34.chunk.js.map +1 -0
- package/dist/scripts/35-666d815525.chunk.js +1 -0
- package/dist/scripts/35.chunk.js +414 -1
- package/dist/scripts/35.chunk.js.map +1 -0
- package/dist/scripts/36-02ce5f3538.chunk.js +1 -0
- package/dist/scripts/36.chunk.js +404 -1
- package/dist/scripts/36.chunk.js.map +1 -0
- package/dist/scripts/37-afd3d321e3.chunk.js +1 -0
- package/dist/scripts/37.chunk.js +245 -1
- package/dist/scripts/37.chunk.js.map +1 -0
- package/dist/scripts/{39-e2aa1689e2.chunk.js → 38-6ad53aa15b.chunk.js} +1 -1
- package/dist/scripts/38.chunk.js +343 -1
- package/dist/scripts/38.chunk.js.map +1 -0
- package/dist/scripts/{40-53d132e3b4.chunk.js → 39-46c747b1d9.chunk.js} +1 -1
- package/dist/scripts/39.chunk.js +318 -1
- package/dist/scripts/39.chunk.js.map +1 -0
- package/dist/scripts/4-6942fee782.chunk.js +1 -0
- package/dist/scripts/4.chunk.js +1030 -1
- package/dist/scripts/4.chunk.js.map +1 -0
- package/dist/scripts/{41-023d613070.chunk.js → 40-c1b8806b1c.chunk.js} +1 -1
- package/dist/scripts/40.chunk.js +236 -1
- package/dist/scripts/40.chunk.js.map +1 -0
- package/dist/scripts/{42-ba3779218d.chunk.js → 41-f4c23477e3.chunk.js} +1 -1
- package/dist/scripts/41.chunk.js +231 -1
- package/dist/scripts/41.chunk.js.map +1 -0
- package/dist/scripts/42-7a5b92d70b.chunk.js +1 -0
- package/dist/scripts/42.chunk.js +350 -1
- package/dist/scripts/42.chunk.js.map +1 -0
- package/dist/scripts/43-97193a87df.chunk.js +1 -0
- package/dist/scripts/43.chunk.js +225 -1
- package/dist/scripts/43.chunk.js.map +1 -0
- package/dist/scripts/{46-6501968ace.chunk.js → 44-7f92272274.chunk.js} +1 -1
- package/dist/scripts/44.chunk.js +318 -1
- package/dist/scripts/44.chunk.js.map +1 -0
- package/dist/scripts/45-265f1a7a42.chunk.js +1 -0
- package/dist/scripts/45.chunk.js +64 -1
- package/dist/scripts/45.chunk.js.map +1 -0
- package/dist/scripts/46-a594ad7eba.chunk.js +1 -0
- package/dist/scripts/46.chunk.js +108 -1
- package/dist/scripts/46.chunk.js.map +1 -0
- package/dist/scripts/47-99777c20cf.chunk.js +1 -0
- package/dist/scripts/47.chunk.js +110 -1
- package/dist/scripts/47.chunk.js.map +1 -0
- package/dist/scripts/48-9880523c82.chunk.js +1 -0
- package/dist/scripts/48.chunk.js +148 -1
- package/dist/scripts/48.chunk.js.map +1 -0
- package/dist/scripts/{50-00ffd5d7c6.chunk.js → 49-5e718594e5.chunk.js} +1 -1
- package/dist/scripts/49.chunk.js +142 -1
- package/dist/scripts/49.chunk.js.map +1 -0
- package/dist/scripts/5-2f631dcd74.chunk.js +1 -0
- package/dist/scripts/5.chunk.js +3262 -1
- package/dist/scripts/5.chunk.js.map +1 -0
- package/dist/scripts/50-8cb0d9cd7d.chunk.js +1 -0
- package/dist/scripts/50.chunk.js +145 -1
- package/dist/scripts/50.chunk.js.map +1 -0
- package/dist/scripts/{52-e5dfa5a640.chunk.js → 51-211b643ca5.chunk.js} +1 -1
- package/dist/scripts/51.chunk.js +176 -1
- package/dist/scripts/51.chunk.js.map +1 -0
- package/dist/scripts/{53-79d5905fc6.chunk.js → 52-bfb2683b5d.chunk.js} +1 -1
- package/dist/scripts/52.chunk.js +160 -1
- package/dist/scripts/52.chunk.js.map +1 -0
- package/dist/scripts/{54-4950ec1d52.chunk.js → 53-3cf5cd5f69.chunk.js} +1 -1
- package/dist/scripts/53.chunk.js +98 -1
- package/dist/scripts/53.chunk.js.map +1 -0
- package/dist/scripts/{55-accb81090d.chunk.js → 54-26807e3e49.chunk.js} +1 -1
- package/dist/scripts/54.chunk.js +48 -1
- package/dist/scripts/54.chunk.js.map +1 -0
- package/dist/scripts/55-d38be4860b.chunk.js +1 -0
- package/dist/scripts/55.chunk.js +99 -1
- package/dist/scripts/55.chunk.js.map +1 -0
- package/dist/scripts/56-d4abc25ec3.chunk.js +1 -0
- package/dist/scripts/56.chunk.js +64 -1
- package/dist/scripts/56.chunk.js.map +1 -0
- package/dist/scripts/57.chunk.js +72 -0
- package/dist/scripts/57.chunk.js.map +1 -0
- package/dist/scripts/58.chunk.js +73 -0
- package/dist/scripts/58.chunk.js.map +1 -0
- package/dist/scripts/59.chunk.js +70 -0
- package/dist/scripts/59.chunk.js.map +1 -0
- package/dist/scripts/6-4d72a3c3fc.chunk.js +1 -0
- package/dist/scripts/6.chunk.js +24 -1
- package/dist/scripts/6.chunk.js.map +1 -0
- package/dist/scripts/60.chunk.js +32 -0
- package/dist/scripts/60.chunk.js.map +1 -0
- package/dist/scripts/61.chunk.js +29 -0
- package/dist/scripts/61.chunk.js.map +1 -0
- package/dist/scripts/62.chunk.js +27 -0
- package/dist/scripts/62.chunk.js.map +1 -0
- package/dist/scripts/63.chunk.js +67 -0
- package/dist/scripts/63.chunk.js.map +1 -0
- package/dist/scripts/64.chunk.js +80 -0
- package/dist/scripts/64.chunk.js.map +1 -0
- package/dist/scripts/65.chunk.js +65 -0
- package/dist/scripts/65.chunk.js.map +1 -0
- package/dist/scripts/66.chunk.js +67 -0
- package/dist/scripts/66.chunk.js.map +1 -0
- package/dist/scripts/67.chunk.js +104 -0
- package/dist/scripts/67.chunk.js.map +1 -0
- package/dist/scripts/68.chunk.js +69 -0
- package/dist/scripts/68.chunk.js.map +1 -0
- package/dist/scripts/69.chunk.js +89 -0
- package/dist/scripts/69.chunk.js.map +1 -0
- package/dist/scripts/7-90ad392b55.chunk.js +1 -0
- package/dist/scripts/7.chunk.js +327 -1
- package/dist/scripts/7.chunk.js.map +1 -0
- package/dist/scripts/70.chunk.js +36 -0
- package/dist/scripts/70.chunk.js.map +1 -0
- package/dist/scripts/8.chunk.js +470 -0
- package/dist/scripts/8.chunk.js.map +1 -0
- package/dist/scripts/9-52877087ef.chunk.js +1 -0
- package/dist/scripts/9.chunk.js +471 -7
- package/dist/scripts/9.chunk.js.map +1 -0
- package/dist/scripts/bundle-99976c17a2.min.js +1 -0
- package/dist/scripts/bundle.js +34769 -1
- package/dist/scripts/bundle.js.map +1 -0
- package/dist/scripts/bundles.json +1 -1
- package/package.json +50 -49
- package/typings/libs/Trackers.d.ts +10 -0
- package/dist/css/33.chunk.css +0 -4
- package/dist/css/41.chunk.css +0 -4
- package/dist/css/46.chunk.css +0 -2
- package/dist/libs/shared/src/context/SearchAppContext.d.ts +0 -9
- package/dist/scripts/0-7ab5925809.chunk.js +0 -1
- package/dist/scripts/1-08c7a79a47.chunk.js +0 -1
- package/dist/scripts/10-20d3430ce2.chunk.js +0 -1
- package/dist/scripts/11-7a25650335.chunk.js +0 -1
- package/dist/scripts/12-6609af3add.chunk.js +0 -1
- package/dist/scripts/13-5adebd80b3.chunk.js +0 -1
- package/dist/scripts/14-dbd27fa3a5.chunk.js +0 -1
- package/dist/scripts/15-5a0e1ed526.chunk.js +0 -1
- package/dist/scripts/16-3adc733311.chunk.js +0 -1
- package/dist/scripts/17-a942a8ff32.chunk.js +0 -1
- package/dist/scripts/18-ab78fe1ad4.chunk.js +0 -1
- package/dist/scripts/19-04ba4906ea.chunk.js +0 -1
- package/dist/scripts/2-41fe2d7e77.chunk.js +0 -1
- package/dist/scripts/20-f0dcfc47a9.chunk.js +0 -1
- package/dist/scripts/21-33e50c0d6b.chunk.js +0 -1
- package/dist/scripts/22-d85dfba692.chunk.js +0 -1
- package/dist/scripts/23-90201310df.chunk.js +0 -1
- package/dist/scripts/24-bc8f0f5709.chunk.js +0 -1
- package/dist/scripts/25-317106a5da.chunk.js +0 -1
- package/dist/scripts/26-4a3372406a.chunk.js +0 -1
- package/dist/scripts/27-074f7ed617.chunk.js +0 -1
- package/dist/scripts/28-3f552efb1d.chunk.js +0 -1
- package/dist/scripts/29-3b0fed6546.chunk.js +0 -1
- package/dist/scripts/3-4c7cdc97d7.chunk.js +0 -7
- package/dist/scripts/30-efc1720b45.chunk.js +0 -1
- package/dist/scripts/31-fd10b2d2e3.chunk.js +0 -1
- package/dist/scripts/32-77df1d4c39.chunk.js +0 -1
- package/dist/scripts/33-7c092bbe19.chunk.js +0 -1
- package/dist/scripts/34-3c94a6fffe.chunk.js +0 -1
- package/dist/scripts/37-ecd001861c.chunk.js +0 -1
- package/dist/scripts/38-a42dc5fd6c.chunk.js +0 -1
- package/dist/scripts/4-9b843edce7.chunk.js +0 -1
- package/dist/scripts/43-9b84379d80.chunk.js +0 -1
- package/dist/scripts/44-1bedb97d4b.chunk.js +0 -1
- package/dist/scripts/45-b004111b2b.chunk.js +0 -1
- package/dist/scripts/47-cece788594.chunk.js +0 -1
- package/dist/scripts/48-722f37b837.chunk.js +0 -1
- package/dist/scripts/49-cb04b28057.chunk.js +0 -1
- package/dist/scripts/5-841e3d083b.chunk.js +0 -1
- package/dist/scripts/51-ed260ddadd.chunk.js +0 -1
- package/dist/scripts/56-83e51af2a6.chunk.js +0 -1
- package/dist/scripts/6-c429467dba.chunk.js +0 -1
- package/dist/scripts/7-3c52b41cbf.chunk.js +0 -1
- package/dist/scripts/9-fef5ef0698.chunk.js +0 -1
- package/dist/scripts/bundle-7782a79aa5.min.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["file://C:/ClickView Projects/@clickview/packages/libs/shared/src/apps/playlists/components/empty-state/EmptyVideoList.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/apps/playlists/hooks/UseHandlePlaylistError.ts","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/empty-state/EmptyState.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/infinite-scroll-footer/InfiniteScrollFooter.tsx","webpack://@clickview/lite/C:/ClickView Projects/@clickview/packages/libs/shared/src/components/infinite-scroll-footer/infinite-scroll-footer.scss?cf3d","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/video-list/PartialVideoList.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/constants/SupportArticles.ts","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/context/PageTitleContext.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/flight-requests/FavouriteVideoRequests.ts","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/hooks/UseInfiniteList.ts","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/hooks/UseInfiniteScroll.ts","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/hooks/UseReorderedItems.ts","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/hooks/UseSelectAllPages.ts","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/hooks/useSetPageTitle.ts","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/utils/PageTitleHelper.ts","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/utils/RatingHelper.ts","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/utils/RestrictionHelper.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/playlists/components/playlist-header/PlaylistHeader.tsx","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/playlists/components/video-list/SortableVideoListContainer.tsx","webpack://@clickview/lite/./src/apps/playlists/components/video-list/sortable-video-list-container.scss?ea6f","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/playlists/utils/PlaylistVideoActionAppLinkHelper.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/playlists/views/playlist/PlaylistView.tsx","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/playlists/views/playlist/PlaylistViewUtils.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/shared/hooks/useVideoMixin.ts"],"names":[],"mappings":"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","file":"scripts/22.chunk.js","sourcesContent":["import * as React from 'react';\r\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { useService } from 'libs/common/react/hooks/UseService';\r\n\r\nimport { SharedServices } from 'libs/shared/constants/SharedServices';\r\nimport { SupportArticles } from 'libs/shared/constants/SupportArticles';\r\nimport { EmptyState } from 'libs/shared/components/empty-state/EmptyState';\r\nimport { ImageUrlService } from 'libs/shared/services/ImageUrlService';\r\n\r\nconst getPhrase = LanguageService.encloseNamespace('playlists.emptyState');\r\n\r\ninterface EmptyVideoListComponentProps {\r\n supportSiteUrl: string;\r\n}\r\n\r\nexport function EmptyVideoListComponent(props: EmptyVideoListComponentProps): React.ReactElement {\r\n const { supportSiteUrl } = props;\r\n\r\n const imageUrlService = useService<ImageUrlService>(SharedServices.ImageUrl);\r\n const imageUrls = imageUrlService.getImageUrls();\r\n const supportArticleUrl = UrlHelper.safeUrlConcat(supportSiteUrl, SupportArticles.ADD_TO_PLAYLIST);\r\n\r\n return (\r\n <EmptyState\r\n imageUrl={imageUrls.EmptyStates.VIDEOS}\r\n heading={getPhrase('noVideosHeading')}\r\n description={`<a href=\"${supportArticleUrl}\" target=\"_blank\">${getPhrase('noVideosInfo')}</a>`}\r\n />\r\n );\r\n}","import { useEffect } from 'react';\r\n\r\nimport { Core } from 'libs/common/core';\r\nimport { Flight } from 'libs/common/flight';\r\nimport { BaseAlertService } from 'libs/common/backbone/services/BaseAlertService';\r\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { useService } from 'libs/common/react/hooks/UseService';\r\nimport { CommonServices } from 'libs/common/backbone/constants/CommonServices';\r\n\r\nimport { Playlist } from 'libs/shared/interfaces';\r\n\r\nconst namespace = 'playlists.hooks';\r\n\r\ninterface ErrorAppLinks {\r\n forbidden?: Core.AppLink;\r\n notFound?: Core.AppLink;\r\n}\r\n\r\nfunction handlePlaylistError(statusCode: HttpStatus, alertService: BaseAlertService, appLinks: ErrorAppLinks): void {\r\n let appLink: Core.AppLink;\r\n\r\n switch (statusCode) {\r\n case HttpStatus.Forbidden:\r\n appLink = appLinks.forbidden;\r\n break;\r\n\r\n case HttpStatus.NotFound:\r\n appLink = appLinks.notFound;\r\n }\r\n\r\n if (!appLink) {\r\n alertService.error(LanguageService.getPhrase(namespace, 'somethingWentWrong'))();\r\n\r\n return;\r\n }\r\n\r\n Core.AppLinkHelper.trigger(appLink);\r\n}\r\n\r\nexport function useHandlePlaylistError(response: Flight.Response<Playlist>, appLinks: ErrorAppLinks = {}): void {\r\n const alertService = useService<BaseAlertService>(CommonServices.ALERT);\r\n\r\n useEffect(() => {\r\n if (response.hasError)\r\n handlePlaylistError(response.statusCode, alertService, appLinks);\r\n }, [response.hasError]);\r\n}","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}\r\n\r\nBackButton.defaultProps = {\r\n color: 'black'\r\n};\r\n\r\nexport function BackButton({ backToName, appLink, color }: 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 ${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 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' 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 color='white'\r\n />\r\n </div>\r\n )}\r\n <h1 className='text-white text-shadow position-absolute m-0 pb-3'>{heading}</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\"};","import * as React from 'react';\r\n\r\ninterface EmptyStateProps {\r\n imageUrl: string;\r\n heading: string;\r\n description?: string;\r\n}\r\n\r\nexport function EmptyState(props: EmptyStateProps): React.ReactElement {\r\n const { imageUrl, heading, description } = props;\r\n\r\n return (\r\n <div className='empty-state-container'>\r\n <div className='content-container'>\r\n {imageUrl && <img src={imageUrl} />}\r\n <h1>{heading}</h1>\r\n {description && <p dangerouslySetInnerHTML={{ __html: description }}/>}\r\n </div>\r\n </div>\r\n );\r\n}","import * as React from 'react';\r\nimport { Spinner } from 'react-bootstrap';\r\n\r\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\r\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\r\n\r\nimport styles from './infinite-scroll-footer.scss';\r\n\r\ninterface InfiniteScrollFooterProps {\r\n isFetching: boolean;\r\n onClick?: () => void;\r\n}\r\n\r\nexport function InfiniteScrollFooter(props: InfiniteScrollFooterProps): React.ReactElement {\r\n return (\r\n <div className={`p-3 text-center ${styles.container}`}>\r\n {props.isFetching\r\n ? <Spinner as='span' animation='border' role='status' className={styles.spinner} />\r\n : <SvgContainer\r\n svgName={cvSvgLibrary.ChevronDown}\r\n className='svg-container cursor-pointer'\r\n size={SvgContainerSize.Large}\r\n onClick={props.onClick}\r\n />\r\n }\r\n </div>\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"cv--container--1_KC6\",\"spinner\":\"cv--spinner--VXlcl\"};","import * as React from 'react';\r\n\r\ninterface PartialVideoListProps {\r\n\r\n}\r\n\r\nexport function PartialVideoList(props: PartialVideoListProps): JSX.Element {\r\n return (\r\n <>\r\n </>\r\n );\r\n}","export const SupportArticles: { [article: string]: string } = {\r\n ADD_TO_PLAYLIST: 'hc/articles/115005679748'\r\n};","import * as React from 'react';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { PageTitleHelper } from 'libs/shared/utils/PageTitleHelper';\r\n\r\ninterface IPageTitleContext {\r\n setPageTitle?: (title: string) => void;\r\n revertPageTitle?: () => void;\r\n}\r\n\r\nexport const PageTitleContext = React.createContext<IPageTitleContext>({});\r\n\r\nconst namespace = 'shared.context';\r\n\r\nconst DEFAULT_TITLE = () => LanguageService.getPhrase(namespace, 'defaultTitle');\r\n\r\nexport const PageTitleContextProvider = ({ children }: React.PropsWithChildren<{}>): React.ReactElement => {\r\n const [ currentPageTitle, setCurrentPageTitle ] = React.useState(DEFAULT_TITLE);\r\n const [ previousPageTitle, setPreviousPageTitle ] = React.useState(DEFAULT_TITLE);\r\n\r\n const setPageTitle = (title: string) => {\r\n if (title === currentPageTitle)\r\n return;\r\n\r\n if (currentPageTitle !== previousPageTitle)\r\n setPreviousPageTitle(currentPageTitle);\r\n\r\n setCurrentPageTitle(title);\r\n };\r\n\r\n const revertPageTitle = () => {\r\n setCurrentPageTitle(previousPageTitle);\r\n };\r\n\r\n React.useEffect(() => PageTitleHelper.setPageTitle(currentPageTitle), [currentPageTitle]);\r\n\r\n return (\r\n <PageTitleContext.Provider value={{ setPageTitle, revertPageTitle }}>\r\n {children}\r\n </PageTitleContext.Provider>\r\n );\r\n};","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 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 { useEffect } from 'react';\r\n\r\nimport { Flight } from 'libs/common/flight';\r\n\r\nimport { BaseObject } from 'libs/shared/interfaces';\r\n\r\nimport { useSelectAllPages } from './UseSelectAllPages';\r\nimport { useInfiniteScroll } from './UseInfiniteScroll';\r\n\r\ninterface UseInfiniteListResult<T extends BaseObject> {\r\n items: T[];\r\n hasMore: boolean;\r\n isFetching: boolean;\r\n}\r\n\r\n/**\r\n * Hook to extract an infinite list from the application state,\r\n * save it locally in state and only update when new data\r\n * is fetched.\r\n * \r\n * @param getRequest - callback function to get the request for each page.\r\n * Can be false if the request requires data that hasn't yet been fetched - e.g. user id.\r\n * \r\n * @param fetchNext - callback function to fetch a page.\r\n * Can be false if the request requires data that hasn't yet been fetched - e.g. user id.\r\n */\r\nexport function useInfiniteList<T extends BaseObject>(\r\n getRequest: ((cursor?: string) => Flight.Request) | false,\r\n fetchNext: ((cursor?: string) => void) | false\r\n): UseInfiniteListResult<T> {\r\n const fetchNextFn = (fetchNext as Function);\r\n\r\n const response = useSelectAllPages<T>(getRequest && ((cursor?: string) => getRequest(cursor).key));\r\n\r\n useInfiniteScroll(() => fetchNext && fetchNextFn(response.nextCursor), !!response.nextCursor, response.isFetching);\r\n\r\n useEffect(() => {\r\n if (response.shouldInitialFetch && fetchNext)\r\n fetchNextFn();\r\n }, [ response.shouldInitialFetch, fetchNext ]);\r\n\r\n return { items: response.items, hasMore: !!response.nextCursor, isFetching: response.isFetching };\r\n}","import { useEffect } from 'react';\r\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\r\n\r\nconst SCROLL_TOLERANCE = 400; // value in px\r\n\r\nexport function useInfiniteScroll(fetchNextPage: () => void, hasMore: boolean, isFetching: boolean): void {\r\n const handleScroll = (): void => {\r\n if (isFetching)\r\n return;\r\n\r\n const currentScrollHeight = window.innerHeight + document.documentElement.scrollTop;\r\n\r\n const totalHeight = document.documentElement.scrollHeight - SCROLL_TOLERANCE;\r\n\r\n if (currentScrollHeight < totalHeight)\r\n return;\r\n\r\n fetchNextPage();\r\n };\r\n\r\n useEffect(() => {\r\n const onScroll = FunctionHelper.throttle(handleScroll, 200);\r\n\r\n if (hasMore)\r\n window.addEventListener('scroll', onScroll);\r\n\r\n return () => window.removeEventListener('scroll', onScroll);\r\n }, [hasMore]);\r\n}","import { useState, useEffect } from 'react';\r\n\r\nimport { BaseObject } from 'libs/shared/interfaces';\r\n\r\nfunction isOrderEqual(arr1: BaseObject[], arr2: BaseObject[]): boolean {\r\n let isEqual = true;\r\n\r\n if (arr1.length !== arr2.length)\r\n return false;\r\n\r\n for (let i = 0; i < arr1.length; i++) {\r\n if (arr1[i].id !== arr2[i].id) {\r\n isEqual = false;\r\n break;\r\n }\r\n }\r\n\r\n return isEqual;\r\n}\r\n\r\n/**\r\n * This function can be used to temporarily store an array of reordered objects\r\n * until the array obtained from the application store updates to the new order.\r\n * \r\n * @param items array of objects from application store.\r\n */\r\nexport function useReorderedItems<T extends BaseObject>(\r\n items: T[]\r\n): [ T[], React.Dispatch<React.SetStateAction<T[]>> ] {\r\n const [ reorderedItems, setReorderedItems ] = useState<T[]>();\r\n\r\n useEffect(() => {\r\n if (!reorderedItems)\r\n return;\r\n\r\n if (items.length !== reorderedItems.length || isOrderEqual(items, reorderedItems))\r\n setReorderedItems(null);\r\n }, [items]);\r\n\r\n return [ reorderedItems, setReorderedItems ];\r\n}","import { useMemo } from 'react';\r\nimport { useSelector } from 'react-redux';\r\n\r\nimport { Flight } from 'libs/common/flight';\r\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\r\nimport { ApplicationState } from 'libs/common/react/interfaces';\r\nimport { BasePaginatedCollection } from 'libs/shared/interfaces';\r\n\r\nconst safeGetCursor = (request: Flight.Response<any>): string => {\r\n return request\r\n && request.data\r\n && request.data.pagination\r\n && request.data.pagination.cursors\r\n && request.data.pagination.cursors.next;\r\n};\r\n\r\ninterface SelectAllPagesResult<T> {\r\n items: T[];\r\n shouldInitialFetch: boolean;\r\n nextCursor: string;\r\n isFetching: boolean;\r\n}\r\n\r\n/**\r\n * Hook to select all pages of a collection from the store and flatten them.\r\n * It will not trigger any fetches.\r\n * \r\n * @param getKey - callback function to get the key for each page.\r\n * Can be false if the key requires data that hasn't yet been fetched - e.g. user id.\r\n */\r\nexport function useSelectAllPages<T>(getKey: ((cursor?: string) => string) | false): SelectAllPagesResult<T> {\r\n return useSelector(useMemo(() => (state: ApplicationState) => {\r\n const getKeyFn = (getKey as Function);\r\n\r\n let request = FunctionHelper.isFunction(getKey) &&\r\n Flight.getResponse<BasePaginatedCollection<T>>(state, getKeyFn());\r\n\r\n let isFetching = request && request.isFetching;\r\n const shouldInitialFetch = request && request.shouldFetch;\r\n\r\n let items = request && request.data && request.data.data;\r\n let nextCursor = safeGetCursor(request);\r\n\r\n // Retrieve all pages that are currently in the store.\r\n while (nextCursor) {\r\n request = Flight.getResponse<BasePaginatedCollection<T>>(state, getKeyFn(nextCursor));\r\n\r\n isFetching = request.isFetching;\r\n\r\n // If next page hasn't been fetched, break.\r\n if (request.shouldFetch)\r\n break;\r\n\r\n let newItems = request.data && request.data.data;\r\n newItems && items.push(...newItems);\r\n\r\n nextCursor = safeGetCursor(request);\r\n }\r\n\r\n return {\r\n shouldInitialFetch,\r\n items,\r\n nextCursor,\r\n isFetching,\r\n };\r\n }, [getKey]));\r\n}","import * as React from 'react';\r\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\r\n\r\nimport { PageTitleContext } from 'libs/shared/context/PageTitleContext';\r\n\r\n/**\r\n * Hook function to set the page title using the useEffect hook.\r\n * @param title - value to set the page title to.\r\n * @param dependencies - values from the component (e.g. state, props and functions) that are used \r\n * inside the effect hook.\r\n */\r\nexport function useSetPageTitle(title: string, dependencies: any[] = []): void {\r\n const { setPageTitle } = React.useContext(PageTitleContext);\r\n\r\n React.useEffect(() => {\r\n if (!title || !FunctionHelper.isFunction(setPageTitle))\r\n return;\r\n\r\n setPageTitle(title);\r\n }, [ title, ...dependencies ]);\r\n}","import { Core } from 'libs/common/core';\r\n\r\nconst TITLE_LENGTH = 60;\r\nconst SUFFIX = ' - ClickView';\r\n\r\nconst trimTitle = (title: string): string => {\r\n if (title.length + SUFFIX.length <= TITLE_LENGTH)\r\n return title + SUFFIX;\r\n\r\n return title.substring(0, TITLE_LENGTH - 3) + '...' + SUFFIX;\r\n};\r\n\r\nexport const PageTitleHelper = {\r\n setPageTitle(title: string): void {\r\n if (!title)\r\n return;\r\n\r\n Core.LocationUtils.SetPageTitle(trimTitle(title));\r\n }\r\n};","import { OnlineCurrentUser } from 'libs/shared/interfaces';\r\nimport { OnlineUserRole } from 'libs/shared/enums/UserRole';\r\n\r\nexport const RatingHelper = {\r\n getMaxAllowedRatingForUser(user: OnlineCurrentUser): number | null {\r\n if (user?.onlineRole === OnlineUserRole.Staff)\r\n return;\r\n\r\n return user?.maxAllowedRating;\r\n }\r\n};","import { Restriction, VideoWithRestrictions, RestrictedObject, Video } from 'libs/shared/interfaces';\r\n\r\nexport const RestrictionHelper = {\r\n mixinRestrictions(videos: Video[], restrictions: Restriction[]): VideoWithRestrictions[] {\r\n const videosWithRestrictions: VideoWithRestrictions[] = [];\r\n\r\n videos.forEach(video => {\r\n const videoRestrictions = restrictions.find(r => r.objectId === video.id);\r\n\r\n videosWithRestrictions.push({ ...video, restrictions: videoRestrictions?.restrictedObjects ?? [] });\r\n });\r\n\r\n return videosWithRestrictions;\r\n },\r\n\r\n getVideoRestrictions(videoId: string, restrictions: Restriction[]): RestrictedObject[] {\r\n if (!videoId || !restrictions)\r\n return;\r\n\r\n const videoRestrictions = restrictions.find(r => r.objectId.toString() === videoId.toString());\r\n\r\n return videoRestrictions?.restrictedObjects;\r\n }\r\n};","import * as React from 'react';\r\n\r\nimport { Core } from 'libs/common/core';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\n\r\nimport { useMediaQuery } from 'libs/shared/hooks/UseMediaQuery';\r\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\r\nimport { Playlist, AppLinkWithLabel } from 'libs/shared/interfaces';\r\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\r\nimport { BannerHeader } from 'libs/shared/components/banner-header/BannerHeader';\r\nimport { Text } from 'libs/shared/components/text/Text';\r\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\r\n\r\nimport { Actions } from 'shared/constants/LiteActions';\r\n\r\nconst namespace = 'playlists.playlistHeader';\r\n\r\ninterface PlaylistHeaderProps {\r\n playlistId: string;\r\n playlist: Playlist;\r\n hasVideos: boolean;\r\n isFollowing: boolean;\r\n follow: (shouldFollow: boolean) => void;\r\n application: string;\r\n imageCdnUrl: string;\r\n showPartialLoading: boolean;\r\n showBreadcrumbs: boolean;\r\n showDateMetadata: boolean;\r\n canEdit?: boolean;\r\n canFollow?: boolean;\r\n isShared?: boolean;\r\n playAllAppLink?: Core.AppLink;\r\n returnAppLink?: AppLinkWithLabel;\r\n lastUpdated?: string;\r\n}\r\n\r\nexport function PlaylistHeader(props: PlaylistHeaderProps): JSX.Element {\r\n // Store isFollowing in local state so that it updates immediately.\r\n const [ isFollowing, setIsFollowing ] = React.useState(props.isFollowing);\r\n\r\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\r\n\r\n if (props.showPartialLoading)\r\n return <></>;\r\n\r\n const description = props.playlist.description;\r\n\r\n const application = props.application;\r\n const args = [props.playlist.id];\r\n\r\n const actions: ActionOptions[] = [];\r\n\r\n if (props.canEdit) {\r\n actions.push(\r\n {\r\n label: LanguageService.getPhrase(namespace, 'edit'),\r\n appLink: { application, action: Actions.Playlists.EDIT_PLAYLIST, args },\r\n svgName: cvSvgLibrary.Edit,\r\n className: 'btn btn-light',\r\n button: !isMobile\r\n },\r\n {\r\n label: LanguageService.getPhrase(namespace, 'delete'),\r\n appLink: { application, action: Actions.Playlists.DELETE_PLAYLIST, args },\r\n svgName: cvSvgLibrary.Share,\r\n className: 'text-danger'\r\n }\r\n );\r\n }\r\n\r\n if (!props.canEdit) {\r\n actions.push(\r\n {\r\n label: LanguageService.getPhrase(namespace, isFollowing ? 'following' : 'follow'),\r\n onClick: () => { setIsFollowing(!isFollowing); props.follow(!isFollowing); },\r\n svgName: cvSvgLibrary.Bell,\r\n className: `btn btn-${isFollowing ? 'dark' : 'light'}`,\r\n button: !isMobile\r\n }\r\n );\r\n }\r\n\r\n return (\r\n <>\r\n <BannerHeader\r\n heading={props.playlist.name}\r\n banner={props.playlist.banner}\r\n imageCdnUrl={props.imageCdnUrl}\r\n actions={actions.length && actions}\r\n />\r\n {!!description &&\r\n <>\r\n <h4><Text namespace={namespace} phrase='description' /></h4>\r\n <p>{description}</p>\r\n </>\r\n }\r\n </>\r\n );\r\n}","import * as React from 'react';\r\nimport { SortStart, SortEnd } from 'react-sortable-hoc';\r\n\r\nimport { Core } from 'libs/common/core';\r\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\r\nimport { DevError } from 'libs/common/backbone/errors/DevError';\r\nimport { SortableVideoList, VideoList, VideoListProps } from 'libs/shared/components/video-list/VideoList';\r\nimport { PartialVideoList } from 'libs/shared/components/video-list/PartialVideoList';\r\n\r\nimport styles from './sortable-video-list-container.scss';\r\n\r\ninterface SortableVideoListContainerProps extends VideoListProps {\r\n playlistId: string;\r\n onSortComplete: (oldIdx: number, newIdx: number) => void;\r\n onSortStart?: (index: number) => void;\r\n isUserSignedIn: boolean;\r\n canEdit?: boolean;\r\n showPartialLoading?: boolean;\r\n fetchRestrictions?: () => void;\r\n}\r\n\r\nexport function SortableVideoListContainer(props: SortableVideoListContainerProps): React.ReactElement {\r\n const { onSortComplete, onSortStart, showPartialLoading, ...videoListProps } = props;\r\n\r\n const [ currentSortingIndex, setCurrentSortingIndex ] = React.useState<number>();\r\n\r\n const onSortStartHandler = (index: number) => {\r\n if (FunctionHelper.isFunction(onSortStart))\r\n onSortStart(index);\r\n };\r\n\r\n const onSortEnd = (sort: SortEnd) => {\r\n setCurrentSortingIndex(null);\r\n\r\n if (!FunctionHelper.isFunction(onSortComplete)) {\r\n Core.ErrorHelper.throw(new DevError('An onSortComplete callback function must be passed to SortableVideoListComponent'));\r\n return;\r\n }\r\n\r\n onSortComplete(sort.oldIndex, sort.newIndex);\r\n };\r\n\r\n if (showPartialLoading)\r\n return <PartialVideoList />;\r\n\r\n if (!props.canEdit)\r\n return <VideoList {...videoListProps} />;\r\n\r\n return (\r\n <SortableVideoList\r\n {...videoListProps}\r\n currentSortingIndex={currentSortingIndex}\r\n updateBeforeSortStart={({ index }: SortStart) => setCurrentSortingIndex(index)}\r\n onSortStart={({ index }: SortStart) => onSortStartHandler(index)}\r\n onSortEnd={onSortEnd}\r\n lockAxis='y'\r\n lockToContainerEdges\r\n lockOffset={[ '0%', '100%' ]} // Allow movement beyond the bottom of container\r\n helperClass={`bg-white ${styles.sortableItem}`}\r\n distance={1} // This allows mousedown/click events to be consumed before sorting is triggered.\r\n useDragHandle\r\n />\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"sortableItem\":\"cv--sortableItem--2eiPB\"};","import { Core } from 'libs/common/core';\r\nimport { Video } from 'libs/shared/interfaces';\r\nimport { VideoAction } from 'libs/shared/utils/video-actions/VideoActionsHelper';\r\n\r\nimport { Actions } from 'shared/constants/LiteActions';\r\n\r\nexport function getVideoActionAppLink(\r\n application: string,\r\n playlistId: string\r\n): (video: Video, action: VideoAction) => Core.AppLink {\r\n return (video: Video, action: VideoAction) => {\r\n switch (action) {\r\n case VideoAction.RemoveFromPlaylist:\r\n return { application, action: Actions.Playlists.REMOVE_VIDEO_FROM_PLAYLIST, args: [ video.id, playlistId ]};\r\n\r\n case VideoAction.AddToPlaylist:\r\n return { application, action: Actions.Playlists.ADD_TO_PLAYLIST, args: [video.id]};\r\n\r\n // TODO Replace this with proper appLink\r\n case VideoAction.Share:\r\n return { application, action: Actions.Playlists.HOME };\r\n }\r\n };\r\n}","import * as React from 'react';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport { Core } from 'libs/common/core';\r\nimport { Flight } from 'libs/common/flight';\r\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\r\nimport { WorkflowPhase, EntityType, UserAction, LocationContext, ToggleDescriptor } from 'libs/analytics/interfaces';\r\n\r\nimport { EmptyVideoListComponent } from 'libs/shared/apps/playlists/components/empty-state/EmptyVideoList';\r\nimport { AppLinkWithLabel, Restriction, Playlist, Config, Video, Series, Following, OnlineCurrentUser } from 'libs/shared/interfaces';\r\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\r\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\r\nimport { FavouriteVideoRequests } from 'libs/shared/flight-requests/FavouriteVideoRequests';\r\nimport { PlaylistRequests } from 'libs/shared/flight-requests/PlaylistRequests';\r\nimport { useSetPageTitle } from 'libs/shared/hooks/useSetPageTitle';\r\nimport { useInfiniteList } from 'libs/shared/hooks/UseInfiniteList';\r\nimport { InfiniteScrollFooter } from 'libs/shared/components/infinite-scroll-footer/InfiniteScrollFooter';\r\nimport { RestrictionHelper } from 'libs/shared/utils/RestrictionHelper';\r\nimport { ReorderHelper } from 'libs/shared/utils/ReorderHelper';\r\nimport { RatingHelper } from 'libs/shared/utils/RatingHelper';\r\nimport { useHandlePlaylistError } from 'libs/shared/apps/playlists/hooks/UseHandlePlaylistError';\r\nimport { useReorderedItems } from 'libs/shared/hooks/UseReorderedItems';\r\nimport { VideoActionsContext } from 'libs/shared/context/VideoActionsContext';\r\n\r\nimport { useVideoMixin } from 'shared/hooks/useVideoMixin';\r\nimport { VideoRequests } from 'shared/flight-requests/VideoRequests';\r\n\r\nimport { PlaylistHeader } from 'apps/playlists/components/playlist-header/PlaylistHeader';\r\nimport { SortableVideoListContainer } from 'apps/playlists/components/video-list/SortableVideoListContainer';\r\nimport { getVideoActionAppLink } from 'apps/playlists/utils/PlaylistVideoActionAppLinkHelper';\r\n\r\nimport * as PlaylistViewUtils from './PlaylistViewUtils';\r\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\r\n\r\ninterface PlaylistViewProps {\r\n playlistId: string;\r\n isShared?: boolean;\r\n application: string;\r\n getVideoAppLink: (video: Video) => Core.AppLink;\r\n getSeriesAppLink: (series: Series) => Core.AppLink;\r\n allowEdit?: boolean;\r\n showBreadcrumbs?: boolean;\r\n showDateMetadata?: boolean;\r\n playAllAppLink?: Core.AppLink;\r\n returnAppLink?: AppLinkWithLabel;\r\n filterByRating?: boolean;\r\n}\r\n\r\nexport function PlaylistView(props: PlaylistViewProps): React.ReactElement {\r\n const dispatch = useDispatch();\r\n\r\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config);\r\n const user = Flight.useBasicFetch<OnlineCurrentUser>(UserRequests.currentUser);\r\n const isUserSignedIn = !ObjectHelper.isEmpty(user.data);\r\n\r\n const maxAllowedRating = props.filterByRating\r\n ? isUserSignedIn && RatingHelper.getMaxAllowedRatingForUser(user.data)\r\n : null;\r\n\r\n const playlistRequest = props.isShared\r\n ? !!user.data && PlaylistRequests.getSharedPlaylist(props.playlistId, maxAllowedRating)\r\n : PlaylistRequests.getPlaylist(props.playlistId);\r\n\r\n const playlist = Flight.useBasicFetch<Playlist>(playlistRequest);\r\n\r\n useHandlePlaylistError(playlist);\r\n\r\n const getVideosRequest = !!user.data && ((cursor?: string) => {\r\n const request = props.isShared ? PlaylistRequests.getSharedPlaylistVideos : PlaylistRequests.getPlaylistVideos;\r\n\r\n return request(props.playlistId, maxAllowedRating, cursor);\r\n });\r\n\r\n const following = Flight.useBasicFetch<Following>(!!user.data\r\n && PlaylistRequests.getIsFollowingPlaylist(props.playlistId, user.data.id));\r\n\r\n const fetchNext = (cursor?: string) => {\r\n Flight.getFetch(dispatch, getVideosRequest(cursor))();\r\n };\r\n\r\n const { items: videos, hasMore, isFetching } = useInfiniteList<Video>(getVideosRequest, fetchNext);\r\n\r\n useVideoMixin(videos);\r\n\r\n // Locally stored array of videos used to immediately reflect changes in order.\r\n const [ reorderedVideos, setReorderedVideos ] = useReorderedItems(videos);\r\n\r\n const restrictionsRequest = isUserSignedIn && !!videos && !!videos.length &&\r\n VideoRequests.getRestrictions(videos.map(v => v.id));\r\n\r\n const restrictions = Flight.useGetResponse<Restriction[]>(restrictionsRequest && restrictionsRequest.key);\r\n\r\n const fetchRestrictions = Flight.useGetFetch(restrictionsRequest);\r\n\r\n if (restrictionsRequest && restrictions.shouldFetch) {\r\n fetchRestrictions();\r\n }\r\n\r\n const videosWithRestrictions = isUserSignedIn\r\n ? !!restrictions.data && RestrictionHelper.mixinRestrictions(videos, restrictions.data)\r\n : videos;\r\n\r\n useSetPageTitle(!!playlist.data && playlist.data.name, [playlist.data]);\r\n\r\n const onSortStart = (index: number) => {\r\n const video = videos[index];\r\n\r\n if (video)\r\n PlaylistViewUtils.logSortAction(props.playlistId, video.id, WorkflowPhase.Start);\r\n };\r\n\r\n const onSortComplete = (oldIdx: number, newIdx: number) => {\r\n if (oldIdx === newIdx)\r\n return;\r\n\r\n const video = videosWithRestrictions[oldIdx];\r\n\r\n if (!video)\r\n return;\r\n\r\n const { reorderedItems, reorderRequest } = ReorderHelper.reorder(videosWithRestrictions, oldIdx, newIdx);\r\n\r\n setReorderedVideos(reorderedItems);\r\n\r\n PlaylistViewUtils.logSortAction(props.playlistId, video.id, WorkflowPhase.Complete);\r\n\r\n const onError = () => {\r\n setReorderedVideos(null);\r\n };\r\n\r\n Flight.fetch(dispatch, PlaylistRequests.reorderVideos(props.playlistId, reorderRequest, null, onError));\r\n };\r\n\r\n const follow = (shouldFollow: boolean) => {\r\n const req = shouldFollow\r\n ? PlaylistRequests.followPlaylist\r\n : PlaylistRequests.unfollowPlaylist;\r\n\r\n Flight.fetch(dispatch, req(props.playlistId, user.data.id));\r\n };\r\n\r\n const setFavourite = (videoId: string, shouldFavourite: boolean, onError?: () => void) => {\r\n Flight.fetch(\r\n dispatch,\r\n FavouriteVideoRequests.updateIsVideoFavourited(videoId, user.data.id, shouldFavourite, () => {\r\n AnalyticsHelper.logUserAction({ id: videoId }, {\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 }, onError)\r\n );\r\n };\r\n\r\n const canEdit = !!props.allowEdit && PlaylistViewUtils.canEditPlaylist(playlist.data, user.data);\r\n\r\n const playlistIsEmpty = !!videos && videos.length === 0;\r\n\r\n return (\r\n <VideoActionsContext.Provider\r\n value={{\r\n videoActions: PlaylistViewUtils.getVideoActions(canEdit),\r\n getActionAppLink: getVideoActionAppLink(props.application, props.playlistId)\r\n }}\r\n >\r\n <div className='bg-white padding-gutter'>\r\n <PlaylistHeader\r\n playlistId={props.playlistId}\r\n playlist={playlist.data}\r\n hasVideos={!playlistIsEmpty}\r\n isFollowing={following.data?.isFollowing}\r\n follow={follow}\r\n application={props.application}\r\n canEdit={canEdit}\r\n isShared={props.isShared}\r\n showBreadcrumbs={props.showBreadcrumbs}\r\n showDateMetadata={props.showDateMetadata}\r\n playAllAppLink={props.playAllAppLink}\r\n showPartialLoading={!playlist.data || !videos || !user.data || !config.data || !following.data}\r\n lastUpdated={!!videos && PlaylistViewUtils.getLastUpdatedDate(videos)}\r\n imageCdnUrl={!!config.data && config.data.imageCdnUrl}\r\n returnAppLink={props.returnAppLink}\r\n />\r\n {playlistIsEmpty\r\n ? (!!config.data && <EmptyVideoListComponent supportSiteUrl={config.data.supportSiteUrl} />)\r\n : <SortableVideoListContainer\r\n videos={reorderedVideos || videosWithRestrictions}\r\n playlistId={!!playlist.data && playlist.data.id}\r\n onSortStart={onSortStart}\r\n onSortComplete={onSortComplete}\r\n isUserSignedIn={isUserSignedIn}\r\n canEdit={canEdit}\r\n showPartialLoading={!videosWithRestrictions || !user.data || !config.data}\r\n getVideoAppLink={props.getVideoAppLink}\r\n getSeriesAppLink={props.getSeriesAppLink}\r\n fetchRestrictions={fetchRestrictions}\r\n setFavourite={setFavourite}\r\n />\r\n }\r\n {!!hasMore && <InfiniteScrollFooter isFetching={isFetching} onClick={fetchNext} />}\r\n </div>\r\n </VideoActionsContext.Provider>\r\n );\r\n}","import * as React from 'react';\r\n\r\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\r\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\r\nimport { Video, Playlist, CurrentUser, BaseObject } from 'libs/shared/interfaces';\r\nimport { VideoAction } from 'libs/shared/utils/video-actions/VideoActionsHelper';\r\nimport { WorkflowPhase, LocationContext, EntityType, UserAction } from 'libs/analytics/interfaces';\r\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\r\n\r\n/**\r\n * NOTE:\r\n * This will be wrong if we increase the playlist limit from 100, or\r\n * stop fetching all 100 videos at once.\r\n */\r\nexport function getLastUpdatedDate(videos: Video[]): string {\r\n const videoLastUpdatedDates: string[] = videos && videos.length && videos.map(v => v.dateAssociated);\r\n\r\n return (videoLastUpdatedDates && videoLastUpdatedDates.length)\r\n ? ArrayHelper.max<string, number>(videoLastUpdatedDates, (date: string) => new Date(date).getTime())\r\n : null;\r\n}\r\n\r\nexport function getVideoActions(canEdit: boolean): VideoAction[] {\r\n return [\r\n canEdit ? VideoAction.RemoveFromPlaylist : VideoAction.AddToPlaylist,\r\n VideoAction.Share\r\n ];\r\n}\r\n\r\nexport function logSortAction(playlistId: string, videoId: string, workflowPhase: WorkflowPhase) : void {\r\n AnalyticsHelper.logUserAction({ id: videoId, playlistId }, {\r\n location: LocationContext.VideoList,\r\n entity: EntityType.Video,\r\n actionType: UserAction.Move,\r\n workflowPhase\r\n });\r\n}\r\n\r\nexport function canEditPlaylist(playlist: Playlist, user: CurrentUser): boolean {\r\n if (ObjectHelper.isEmpty(user) || !playlist || ObjectHelper.isEmpty(playlist.owner))\r\n return false;\r\n\r\n return playlist.owner.id === user.id;\r\n}","import { Flight } from 'libs/common/flight';\r\nimport { VideoCollection, User, Video } 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\n\r\nfunction fetchAttribute(videosFetched: boolean, request: Flight.Request): void {\r\n const attribute = Flight.useGetResponse<VideoCollection>(request && request.key);\r\n const fetch = Flight.useGetFetch(request);\r\n\r\n if (videosFetched && attribute.shouldFetch)\r\n fetch();\r\n}\r\n\r\nexport function useVideoMixin(videos: VideoCollection | Video[]): void {\r\n const currentUser = Flight.useBasicFetch<User>(UserRequests.currentUser);\r\n\r\n const videoIds = videos && (Array.isArray(videos)\r\n ? videos.map(v => v.id)\r\n : videos.data.map(v => v.id));\r\n\r\n const requests: Flight.Request[] = [\r\n videoIds && VideoRequests.videoRatings(videoIds),\r\n videoIds && currentUser.data && FavouriteVideoRequests.isFavourited(currentUser.data.id, videoIds)\r\n ];\r\n\r\n requests.forEach(r => fetchAttribute(!!videos, r));\r\n}"],"sourceRoot":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(window.webpackJsonp_clickview_lite=window.webpackJsonp_clickview_lite||[]).push([[23],{445:function(e,t,n){"use strict";n.d(t,"a",(function(){return r}));var a=n(0);function r(e){return a.createElement(a.Fragment,null)}},476:function(e,t,n){"use strict";n.d(t,"a",(function(){return f}));var a=n(0),r=n(2),i=n(26),o=n(13),c=n(444),s=n(445),l=n(493),u=n.n(l);function d(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=[],a=!0,r=!1,i=void 0;try{for(var o,c=e[Symbol.iterator]();!(a=(o=c.next()).done)&&(n.push(o.value),!t||n.length!==t);a=!0);}catch(e){r=!0,i=e}finally{try{a||null==c.return||c.return()}finally{if(r)throw i}}return n}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return p(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 p(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 p(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=new Array(t);n<t;n++)a[n]=e[n];return a}var m=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n};function f(e){var t=e.onSortComplete,n=e.onSortStart,l=e.showPartialLoading,p=m(e,["onSortComplete","onSortStart","showPartialLoading"]),f=d(a.useState(),2),b=f[0],v=f[1],h=function(e){i.a.isFunction(n)&&n(e)};return l?a.createElement(s.a,null):e.canEdit?a.createElement(c.b,Object.assign({},p,{currentSortingIndex:b,updateBeforeSortStart:function(e){var t=e.index;return v(t)},onSortStart:function(e){var t=e.index;return h(t)},onSortEnd:function(e){v(null),i.a.isFunction(t)?t(e.oldIndex,e.newIndex):r.a.ErrorHelper.throw(new o.a("An onSortComplete callback function must be passed to SortableVideoListComponent"))},lockAxis:"y",lockToContainerEdges:!0,lockOffset:["0%","100%"],helperClass:"bg-white ".concat(u.a.sortableItem),distance:1,useDragHandle:!0})):a.createElement(c.c,Object.assign({},p))}},493:function(e,t,n){e.exports={sortableItem:"_2eiPB"}},507:function(e,t,n){"use strict";var a=n(0),r=n(48),i=n(34),o="playlists.liteWhatsNewBreadcrumbs";function c(e){return a.createElement(a.Fragment,null,a.createElement("h1",null,a.createElement(r.b,{namespace:o,phrase:"whatsNew"})),a.createElement("nav",{"aria-label":"breadcrumb"},a.createElement("ol",{className:"breadcrumb p-0"},a.createElement("li",{className:"breadcrumb-item"},a.createElement(i.a,{appLink:e.dashboardAppLink},a.createElement(r.b,{namespace:o,phrase:"dashboard"}))),a.createElement("li",{className:"breadcrumb-item active","aria-current":"page"},a.createElement(r.b,{namespace:o,phrase:"whatsNew"})))))}var s=n(10),l=n(119),u=n(524),d=n.n(u);function p(e){var t=e.classification,n=e.backgroundUrl,o=e.followed,c=e.follow;return a.createElement("div",{className:"banner mb-2 d-flex justify-content-between ".concat(d.a.banner),style:{backgroundImage:"url('".concat(n,"')")}},a.createElement(i.a,{className:"text-white text-shadow",appLink:e.getClassificationAppLink(t)},a.createElement("h2",{className:"h3 mb-0"},t.name)),a.createElement(l.a,{className:"btn ".concat(o?"btn-dark":"btn-white"),svgName:s.b.Bell,onClick:function(){return c(t.id,!o)}},a.createElement(r.b,{namespace:"liteContentUpdates.classificationBanner",phrase:o?"unfollow":"follow"})))}function m(e){var t=e.classification;return a.createElement(a.Fragment,null,a.createElement("nav",{"aria-label":"breadcrumb"},a.createElement("ol",{className:"breadcrumb p-0"},a.createElement("li",{className:"breadcrumb-item"},a.createElement(i.a,{appLink:e.dashboardAppLink},a.createElement(r.b,{namespace:"playlists.liteClassificationUpdateBreadcrumbs",phrase:"dashboard"}))),a.createElement("li",{className:"breadcrumb-item"},a.createElement(i.a,{appLink:e.contentUpdatesAppLink},a.createElement(r.b,{namespace:"playlists.liteClassificationUpdateBreadcrumbs",phrase:"whatsNew"}))),a.createElement("li",{className:"breadcrumb-item active","aria-current":"page"},t.name))))}n.d(t,"c",(function(){return c})),n.d(t,"a",(function(){return p})),n.d(t,"b",(function(){return m}))},522:function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var a=n(39),r=n(12),i=n(67);function o(e,t){const n=Object(a.useDispatch)();return Object(a.useSelector)(a=>{var o;if(!(null===(o=e)||void 0===o?void 0:o.length))return null;const c=i.a.uniq(e);let s={};const l={};for(let e=0;e<c.length;e+=25){const i=c.slice(e,e+25),o=t(i),u=r.a.getResponse(a,o.key);l[e]=!!u.data,u.shouldFetch&&r.a.fetch(n,o),u.data&&u.data.forEach(e=>s[e.id]=e)}return Object.keys(l).every(e=>l[e])?s:null})}},523:function(e,t,n){"use strict";n.d(t,"a",(function(){return r}));var a=n(27);const r={getContentUpdates:(e,t)=>({url:`/api/domain/v1/subjects/content-updates?from=${e}&to=${t}&query=`+a.a.VIDEO_COLLECTION,key:"content:updates",normalize:!1}),getClassifications(e){const t=[];return e.forEach(e=>t.push("id="+e)),{url:`/api/domain/v1/subjects?${t.join("&")}&query=banner`,key:"classifications:"+e.join(",")}},getClassification:e=>({url:`/api/domain/v1/subjects/${e}?query=banner`,key:"classification:"+e}),videos:(e,t)=>({url:`/api/domain/v1/videos?ids=${e.join(",")}&with=${a.a.VIDEO_COLLECTION}`,key:"videos:by:id:"+e.join(","),success:t})}},524:function(e,t,n){e.exports={banner:"_1ZGpQ"}},628:function(e,t,n){"use strict";n.r(t),n.d(t,"ClassificationUpdateView",(function(){return u}));var a=n(0),r=n(53),i=n(12),o=n(522),c=n(523),s=n(476),l=n(507);function u(e){var t,n,u=e.classificationId,d=r().subtract(1,"year").toISOString(),p=r().toISOString(),m=i.a.useBasicFetch(c.a.getClassification(u)),f=null===(n=null===(t=i.a.useBasicFetch(c.a.getContentUpdates(d,p)).data)||void 0===t?void 0:t.find((function(e){return e.classificationId===u})))||void 0===n?void 0:n.videos.map((function(e){return e.video.id})),b=Object(o.a)(f,(function(e){return c.a.videos(e)})),v=b&&f.map((function(e){return b[e]}));return v&&m.data?a.createElement("div",{className:"bg-white padding-gutter content-updates"},a.createElement(l.b,{classification:m.data,dashboardAppLink:e.appLinks.dashboardAppLink,contentUpdatesAppLink:e.appLinks.contentUpdatesAppLink}),a.createElement(s.a,{canEdit:!1,playlistId:"0",isUserSignedIn:!0,onSortComplete:function(){},videos:v,getVideoAppLink:e.appLinks.getVideoAppLink,getSeriesAppLink:e.appLinks.getSeriesAppLink})):a.createElement(a.Fragment,null)}}}]);
|