@clickview/lite 0.0.26-dev.1 → 0.0.26-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 +2 -2
- package/dist/css/28.chunk.css +1 -1
- package/dist/css/36.chunk.css +1 -1
- package/dist/en.json +1 -1
- package/dist/libs/analytics/src/interfaces/AnalyticsTypes.d.ts +1 -0
- package/dist/libs/common/src/backbone/utils/LocalStorageHelper.d.ts +1 -1
- package/dist/libs/common/src/react/hooks/UseViewModel.d.ts +8 -0
- package/dist/libs/shared/src/apps/playlists/utils/PlaylistSortHelper.d.ts +1 -0
- package/dist/libs/shared/src/apps/subjects/components/audience-filter/AudienceFilter.d.ts +3 -3
- package/dist/libs/shared/src/apps/subjects/hooks/useAudienceFilter.d.ts +10 -0
- package/dist/libs/shared/src/components/thumbnails/video/VideoThumbnail.d.ts +1 -1
- package/dist/libs/shared/src/constants/SharedViewModelKeys.d.ts +1 -0
- package/dist/libs/shared/src/flight-requests/FavouriteVideoRequests.d.ts +1 -1
- package/dist/libs/shared/src/interfaces/models/ClassroomGroup.d.ts +1 -1
- package/dist/projects/lite/src/app.d.ts +1 -0
- package/dist/projects/lite/src/apps/dashboard/flight-requests/DashboardRequests.d.ts +1 -0
- package/dist/projects/lite/src/apps/playlists/views/playlists/PlaylistsView.d.ts +1 -1
- package/dist/projects/lite/src/shared/constants/LiteViewModels.d.ts +1 -0
- package/dist/scripts/0-2d31d283ae.chunk.js +1 -0
- package/dist/scripts/{1-8027d5d7a2.chunk.js → 1-416147a365.chunk.js} +3 -3
- package/dist/scripts/{10-8b52a5b2a9.chunk.js → 10-6f924160d4.chunk.js} +1 -1
- package/dist/scripts/11-bb4335845c.chunk.js +1 -0
- package/dist/scripts/{12-5a9f0cff7a.chunk.js → 12-c98f636456.chunk.js} +1 -1
- package/dist/scripts/13-f440a979f2.chunk.js +1 -0
- package/dist/scripts/14-96e2ac4c4e.chunk.js +1 -0
- package/dist/scripts/17-ae3c652b7f.chunk.js +1 -0
- package/dist/scripts/18-70bed357d5.chunk.js +1 -0
- package/dist/scripts/19-fd97756828.chunk.js +1 -0
- package/dist/scripts/2-9458935561.chunk.js +1 -0
- package/dist/scripts/20-f660938e48.chunk.js +1 -0
- package/dist/scripts/21-6b5bac2388.chunk.js +1 -0
- package/dist/scripts/22-d2e93288e2.chunk.js +1 -0
- package/dist/scripts/{23-8fa9630961.chunk.js → 23-cef41d75a0.chunk.js} +1 -1
- package/dist/scripts/{24-1b298386e9.chunk.js → 24-bce9e631d6.chunk.js} +1 -1
- package/dist/scripts/25-db36457320.chunk.js +1 -0
- package/dist/scripts/26-5aed5ee0dd.chunk.js +1 -0
- package/dist/scripts/27-7f8deea7e3.chunk.js +1 -0
- package/dist/scripts/{28-992fa1d7d3.chunk.js → 28-5f765079fd.chunk.js} +1 -1
- package/dist/scripts/29-0b8214340f.chunk.js +1 -0
- package/dist/scripts/{3-0490c565bc.chunk.js → 3-96cf66c7ed.chunk.js} +1 -1
- package/dist/scripts/30-2f39246be7.chunk.js +1 -0
- package/dist/scripts/{31-35db520dd1.chunk.js → 31-29dea56635.chunk.js} +1 -1
- package/dist/scripts/32-bbaee512ce.chunk.js +1 -0
- package/dist/scripts/33-46803f3fef.chunk.js +1 -0
- package/dist/scripts/34-c017ae74c8.chunk.js +53 -0
- package/dist/scripts/{35-c03686c46a.chunk.js → 35-7da451a1c9.chunk.js} +1 -1
- package/dist/scripts/{36-83d6842746.chunk.js → 36-57ab543f4f.chunk.js} +1 -1
- package/dist/scripts/{37-c3430bac04.chunk.js → 37-80c7b6220d.chunk.js} +1 -1
- package/dist/scripts/38-50ed73316a.chunk.js +1 -0
- package/dist/scripts/39-3adf4ecd44.chunk.js +1 -0
- package/dist/scripts/4-6611628e1a.chunk.js +1 -0
- package/dist/scripts/40-3872135793.chunk.js +1 -0
- package/dist/scripts/{41-900e1bf0e1.chunk.js → 41-9a1c72850a.chunk.js} +1 -1
- package/dist/scripts/42-4932b5ac21.chunk.js +1 -0
- package/dist/scripts/{43-24d8ad0345.chunk.js → 43-22cf86a966.chunk.js} +1 -1
- package/dist/scripts/44-b62663ca9d.chunk.js +1 -0
- package/dist/scripts/45-0d8523abe9.chunk.js +1 -0
- package/dist/scripts/{46-b0dd9697cf.chunk.js → 46-fe9870ac23.chunk.js} +1 -1
- package/dist/scripts/{47-2b4a82f4ad.chunk.js → 47-6dffaed1d7.chunk.js} +1 -1
- package/dist/scripts/{48-982a605bb0.chunk.js → 48-7220efc4d6.chunk.js} +1 -1
- package/dist/scripts/{49-8226f8d1ba.chunk.js → 49-ae885df086.chunk.js} +1 -1
- package/dist/scripts/5-4177d478cc.chunk.js +1 -0
- package/dist/scripts/{50-dcc75825be.chunk.js → 50-f9157fe86a.chunk.js} +2 -2
- package/dist/scripts/{51-1f52bbeb15.chunk.js → 51-9c714f222a.chunk.js} +1 -1
- package/dist/scripts/{52-a15b2e7c02.chunk.js → 52-40b5bed763.chunk.js} +1 -1
- package/dist/scripts/{53-4cd55bd586.chunk.js → 53-b1a06f2260.chunk.js} +1 -1
- package/dist/scripts/{54-aa1a08cdbf.chunk.js → 54-adc0aca3b2.chunk.js} +1 -1
- package/dist/scripts/{55-c969a4fc28.chunk.js → 55-89cef329b2.chunk.js} +1 -1
- package/dist/scripts/{56-68fdf84a0d.chunk.js → 56-0dddea6e48.chunk.js} +1 -1
- package/dist/scripts/{57-db5bdeea30.chunk.js → 57-8fb86637a6.chunk.js} +1 -1
- package/dist/scripts/{58-df23c1a02e.chunk.js → 58-72d868bb97.chunk.js} +1 -1
- package/dist/scripts/{59-2d38ae02a6.chunk.js → 59-f186c23ddf.chunk.js} +1 -1
- package/dist/scripts/{6-1b789e45e3.chunk.js → 6-615cc3317e.chunk.js} +1 -1
- package/dist/scripts/{60-b5000feaed.chunk.js → 60-60ea3e256b.chunk.js} +1 -1
- package/dist/scripts/{61-280ba38bbf.chunk.js → 61-fba9617716.chunk.js} +1 -1
- package/dist/scripts/{62-9a61055529.chunk.js → 62-39c21de14e.chunk.js} +1 -1
- package/dist/scripts/{63-ecc242395a.chunk.js → 63-d1c111fcd5.chunk.js} +1 -1
- package/dist/scripts/{64-077f9961a9.chunk.js → 64-33b287c3c2.chunk.js} +1 -1
- package/dist/scripts/{65-0463ba68c3.chunk.js → 65-889dba985e.chunk.js} +1 -1
- package/dist/scripts/{66-851f0b0243.chunk.js → 66-00f7b4a21f.chunk.js} +1 -1
- package/dist/scripts/{67-103e97e558.chunk.js → 67-d923fb11ed.chunk.js} +1 -1
- package/dist/scripts/{68-7a80380425.chunk.js → 68-85a8867bd2.chunk.js} +1 -1
- package/dist/scripts/{69-7d9f3514e6.chunk.js → 69-0fc67deac3.chunk.js} +1 -1
- package/dist/scripts/7-79961729d4.chunk.js +1 -0
- package/dist/scripts/{70-fd6b603857.chunk.js → 70-8b68b786a9.chunk.js} +1 -1
- package/dist/scripts/{71-b002267371.chunk.js → 71-81cbd9cbe0.chunk.js} +1 -1
- package/dist/scripts/{72-7b99de33d0.chunk.js → 72-ea543ecb4d.chunk.js} +1 -1
- package/dist/scripts/73-32bacce3b9.chunk.js +1 -0
- package/dist/scripts/{74-72227ec214.chunk.js → 74-5b7c16baa1.chunk.js} +1 -1
- package/dist/scripts/{75-d463b7002b.chunk.js → 75-81b94320b7.chunk.js} +1 -1
- package/dist/scripts/{76-5780bbb319.chunk.js → 76-9e8154e3d1.chunk.js} +1 -1
- package/dist/scripts/{77-7ea0e086de.chunk.js → 77-d57229038b.chunk.js} +1 -1
- package/dist/scripts/{78-11cad53884.chunk.js → 78-cd93b07a63.chunk.js} +1 -1
- package/dist/scripts/{79-90eb976e11.chunk.js → 79-999b00ee35.chunk.js} +1 -1
- package/dist/scripts/{8-fe4d1fcbb5.chunk.js → 8-f1d54ac54a.chunk.js} +1 -1
- package/dist/scripts/80-7a85bbaf88.chunk.js +1 -0
- package/dist/scripts/81-a589326f2f.chunk.js +1 -0
- package/dist/scripts/{82-3326a696b2.chunk.js → 82-660d825e60.chunk.js} +1 -1
- package/dist/scripts/{9-753761ada2.chunk.js → 9-d2c18751ff.chunk.js} +1 -1
- package/dist/scripts/bundle-99c49275bf.min.js +31 -0
- package/dist/scripts/bundles.json +2 -2
- package/dist/scripts/polyfills-b23c61c24c.min.js +1 -0
- package/package.json +3 -3
- package/dist/css/0.chunk.css.map +0 -1
- package/dist/css/1.chunk.css +0 -226
- package/dist/css/1.chunk.css.map +0 -1
- package/dist/css/10.chunk.css +0 -101
- package/dist/css/10.chunk.css.map +0 -1
- package/dist/css/11.chunk.css.map +0 -1
- package/dist/css/12.chunk.css.map +0 -1
- package/dist/css/13.chunk.css +0 -42
- package/dist/css/13.chunk.css.map +0 -1
- package/dist/css/14.chunk.css +0 -42
- package/dist/css/14.chunk.css.map +0 -1
- package/dist/css/15.chunk.css +0 -86
- package/dist/css/15.chunk.css.map +0 -1
- package/dist/css/16.chunk.css +0 -25
- package/dist/css/16.chunk.css.map +0 -1
- package/dist/css/17.chunk.css.map +0 -1
- package/dist/css/18.chunk.css.map +0 -1
- package/dist/css/19.chunk.css.map +0 -1
- package/dist/css/2.chunk.css.map +0 -1
- package/dist/css/20.chunk.css.map +0 -1
- package/dist/css/21.chunk.css.map +0 -1
- package/dist/css/22.chunk.css.map +0 -1
- package/dist/css/23.chunk.css.map +0 -1
- package/dist/css/24.chunk.css.map +0 -1
- package/dist/css/25.chunk.css.map +0 -1
- package/dist/css/26.chunk.css.map +0 -1
- package/dist/css/27.chunk.css.map +0 -1
- package/dist/css/28.chunk.css.map +0 -1
- package/dist/css/29.chunk.css.map +0 -1
- package/dist/css/3.chunk.css +0 -26
- package/dist/css/3.chunk.css.map +0 -1
- package/dist/css/30.chunk.css.map +0 -1
- package/dist/css/31.chunk.css.map +0 -1
- package/dist/css/32.chunk.css.map +0 -1
- package/dist/css/33.chunk.css.map +0 -1
- package/dist/css/34.chunk.css +0 -26
- package/dist/css/34.chunk.css.map +0 -1
- package/dist/css/35.chunk.css.map +0 -1
- package/dist/css/36.chunk.css.map +0 -1
- package/dist/css/37.chunk.css.map +0 -1
- package/dist/css/38.chunk.css.map +0 -1
- package/dist/css/39.chunk.css.map +0 -1
- package/dist/css/40.chunk.css.map +0 -1
- package/dist/css/41.chunk.css.map +0 -1
- package/dist/css/42.chunk.css.map +0 -1
- package/dist/css/43.chunk.css.map +0 -1
- package/dist/css/44.chunk.css.map +0 -1
- package/dist/css/45.chunk.css +0 -17
- package/dist/css/45.chunk.css.map +0 -1
- package/dist/css/46.chunk.css +0 -50
- package/dist/css/46.chunk.css.map +0 -1
- package/dist/css/47.chunk.css +0 -10
- package/dist/css/47.chunk.css.map +0 -1
- package/dist/css/48.chunk.css +0 -40
- package/dist/css/48.chunk.css.map +0 -1
- package/dist/css/49.chunk.css +0 -26
- package/dist/css/49.chunk.css.map +0 -1
- package/dist/css/5.chunk.css.map +0 -1
- package/dist/css/50.chunk.css +0 -14
- package/dist/css/50.chunk.css.map +0 -1
- package/dist/css/51.chunk.css +0 -17
- package/dist/css/51.chunk.css.map +0 -1
- package/dist/css/52.chunk.css +0 -14
- package/dist/css/52.chunk.css.map +0 -1
- package/dist/css/53.chunk.css +0 -6
- package/dist/css/53.chunk.css.map +0 -1
- package/dist/css/54.chunk.css.map +0 -1
- package/dist/css/56.chunk.css +0 -32
- package/dist/css/56.chunk.css.map +0 -1
- package/dist/css/57.chunk.css.map +0 -1
- package/dist/css/58.chunk.css +0 -52
- package/dist/css/58.chunk.css.map +0 -1
- package/dist/css/59.chunk.css.map +0 -1
- package/dist/css/6.chunk.css.map +0 -1
- package/dist/css/60.chunk.css.map +0 -1
- package/dist/css/61.chunk.css.map +0 -1
- package/dist/css/62.chunk.css +0 -52
- package/dist/css/62.chunk.css.map +0 -1
- package/dist/css/63.chunk.css +0 -14
- package/dist/css/63.chunk.css.map +0 -1
- package/dist/css/64.chunk.css.map +0 -1
- package/dist/css/65.chunk.css.map +0 -1
- package/dist/css/66.chunk.css +0 -52
- package/dist/css/66.chunk.css.map +0 -1
- package/dist/css/67.chunk.css +0 -52
- package/dist/css/67.chunk.css.map +0 -1
- package/dist/css/68.chunk.css +0 -14
- package/dist/css/68.chunk.css.map +0 -1
- package/dist/css/69.chunk.css +0 -14
- package/dist/css/69.chunk.css.map +0 -1
- package/dist/css/7.chunk.css.map +0 -1
- package/dist/css/70.chunk.css +0 -43
- package/dist/css/70.chunk.css.map +0 -1
- package/dist/css/71.chunk.css +0 -43
- package/dist/css/71.chunk.css.map +0 -1
- package/dist/css/72.chunk.css +0 -43
- package/dist/css/72.chunk.css.map +0 -1
- package/dist/css/73.chunk.css +0 -43
- package/dist/css/73.chunk.css.map +0 -1
- package/dist/css/78.chunk.css +0 -83
- package/dist/css/78.chunk.css.map +0 -1
- package/dist/css/8.chunk.css.map +0 -1
- package/dist/css/83.chunk.css +0 -9
- package/dist/css/83.chunk.css.map +0 -1
- package/dist/css/84.chunk.css +0 -38
- package/dist/css/84.chunk.css.map +0 -1
- package/dist/css/85.chunk.css +0 -68
- package/dist/css/85.chunk.css.map +0 -1
- package/dist/css/86.chunk.css +0 -5
- package/dist/css/86.chunk.css.map +0 -1
- package/dist/css/87.chunk.css +0 -5
- package/dist/css/87.chunk.css.map +0 -1
- package/dist/css/89.chunk.css +0 -40
- package/dist/css/89.chunk.css.map +0 -1
- package/dist/css/9.chunk.css.map +0 -1
- package/dist/css/90.chunk.css +0 -8
- package/dist/css/90.chunk.css.map +0 -1
- package/dist/css/91.chunk.css +0 -8
- package/dist/css/91.chunk.css.map +0 -1
- package/dist/css/92.chunk.css +0 -32
- package/dist/css/92.chunk.css.map +0 -1
- package/dist/css/93.chunk.css +0 -32
- package/dist/css/93.chunk.css.map +0 -1
- package/dist/css/94.chunk.css +0 -5
- package/dist/css/94.chunk.css.map +0 -1
- package/dist/css/lite-app.css.map +0 -1
- package/dist/libs/common/src/react/hooks/useViewModel.d.ts +0 -4
- package/dist/libs/shared/src/apps/subjects/hooks/useAudienceParams.d.ts +0 -5
- package/dist/libs/shared/src/apps/subjects/reducers/AudienceReducer.d.ts +0 -11
- package/dist/libs/shared/src/enums/PlayerMediaType.d.ts +0 -5
- package/dist/libs/shared/src/interfaces/models/interactive.d.ts +0 -9
- package/dist/libs/shared/src/interfaces/models/interactives/ActionableItem.d.ts +0 -6
- package/dist/libs/shared/src/interfaces/models/interactives/Interaction.d.ts +0 -16
- package/dist/libs/shared/src/interfaces/models/interactives/InteractionType.d.ts +0 -7
- package/dist/libs/shared/src/interfaces/models/interactives/InteractionTypeId.d.ts +0 -8
- package/dist/libs/shared/src/interfaces/models/interactives/Interactive.d.ts +0 -13
- package/dist/libs/shared/src/interfaces/models/interactives/Timepoint.d.ts +0 -9
- package/dist/libs/shared/src/interfaces/models/interactives/index.d.ts +0 -6
- package/dist/libs/shared/src/utils/DashboardHelper.d.ts +0 -9
- package/dist/projects/lite/src/apps/classrooms/components/classroom-group/ClassroomGroup.d.ts +0 -7
- package/dist/projects/lite/src/apps/classrooms/components/classroom-students-list/empty-state/ClassroomStudentsListEmptyState.d.ts +0 -2
- package/dist/projects/lite/src/apps/classrooms/components/tile-actions/TileActions.d.ts +0 -12
- package/dist/projects/lite/src/apps/classrooms/enums/GroupColour.d.ts +0 -10
- package/dist/projects/lite/src/apps/search/components/filter-types/radio-filter/year-level/YearLevelRadioFilter.d.ts +0 -8
- package/dist/projects/lite/src/apps/search/flight-requests/index.d.ts +0 -1
- package/dist/projects/lite/src/apps/share/components/sharee-item/ShareeItem.d.ts +0 -8
- package/dist/projects/lite/src/apps/share/views/main-view/MainShareView.d.ts +0 -11
- package/dist/projects/lite/src/apps/share/views/settings-view/ShareSettingsView.d.ts +0 -9
- package/dist/projects/lite/src/apps/user-manager/interfaces/mocks/MockClassroom.d.ts +0 -8
- package/dist/projects/lite/src/apps/user-manager/views/bulk-upload-users/BulkUploadUsersView.d.ts +0 -8
- package/dist/projects/lite/src/apps/user-manager/views/user-upload-duplicates/UserUploadDuplicatesView.d.ts +0 -8
- package/dist/projects/lite/src/apps/user-manager/views/user-upload-review/UserUploadReviewView.d.ts +0 -8
- package/dist/projects/lite/src/shared/components/share/copy-embed-html/CopyEmbedHtml.d.ts +0 -8
- package/dist/projects/lite/src/shared/components/share/result-templates/user/InstantUserTemplate.d.ts +0 -8
- package/dist/projects/lite/src/shared/components/share/sharee-item/ShareeItem.d.ts +0 -7
- package/dist/projects/lite/src/shared/components/share/tokenized-typeahead/InputSelection.d.ts +0 -8
- package/dist/projects/lite/src/shared/components/share/tokenized-typeahead/TokenizedTypeahead.d.ts +0 -21
- package/dist/projects/lite/src/shared/flight-requests/ShareRequests.d.ts +0 -5
- package/dist/projects/lite/src/shared/hooks/useGetEdgeToEdge.d.ts +0 -6
- package/dist/projects/lite/src/shared/interfaces/mocks/MockClassroomGroup.d.ts +0 -6
- package/dist/projects/lite/src/shared/interfaces/mocks/index.d.ts +0 -1
- package/dist/projects/lite/src/shared/services/SettingsDataService.d.ts +0 -10
- package/dist/projects/lite/src/shared/views/create-clip/CreateClipView.d.ts +0 -6
- package/dist/projects/lite/src/shared/views/left-nav/partial-loading/PartialLeftNavItem.d.ts +0 -2
- package/dist/projects/lite/src/shared/views/play-shared/PlaySharedView.d.ts +0 -6
- package/dist/projects/lite/src/shared/views/share/ShareView.d.ts +0 -9
- package/dist/projects/lite/src/shared/views/share/main-view/MainShareView.d.ts +0 -11
- package/dist/projects/lite/src/shared/views/share/settings-view/ShareSettingsView.d.ts +0 -9
- package/dist/projects/player/src/react/EmbeddedPlayer.d.ts +0 -7
- package/dist/scripts/0-e994a1b4d7.chunk.js +0 -1
- package/dist/scripts/0.chunk.js +0 -332
- package/dist/scripts/0.chunk.js.map +0 -1
- package/dist/scripts/1.chunk.js +0 -1130
- package/dist/scripts/1.chunk.js.map +0 -1
- package/dist/scripts/10.chunk.js +0 -2334
- package/dist/scripts/10.chunk.js.map +0 -1
- package/dist/scripts/100.chunk.js +0 -453
- package/dist/scripts/100.chunk.js.map +0 -1
- package/dist/scripts/101.chunk.js +0 -161
- package/dist/scripts/101.chunk.js.map +0 -1
- package/dist/scripts/102.chunk.js +0 -91
- package/dist/scripts/102.chunk.js.map +0 -1
- package/dist/scripts/103.chunk.js +0 -84
- package/dist/scripts/103.chunk.js.map +0 -1
- package/dist/scripts/11-7a8c344ea6.chunk.js +0 -1
- package/dist/scripts/11.chunk.js +0 -1682
- package/dist/scripts/11.chunk.js.map +0 -1
- package/dist/scripts/12.chunk.js +0 -484
- package/dist/scripts/12.chunk.js.map +0 -1
- package/dist/scripts/13-b5d5d7bdfa.chunk.js +0 -1
- package/dist/scripts/13.chunk.js +0 -260
- package/dist/scripts/13.chunk.js.map +0 -1
- package/dist/scripts/14-28375f71fa.chunk.js +0 -1
- package/dist/scripts/14.chunk.js +0 -1183
- package/dist/scripts/14.chunk.js.map +0 -1
- package/dist/scripts/15.chunk.js +0 -788
- package/dist/scripts/15.chunk.js.map +0 -1
- package/dist/scripts/16.chunk.js +0 -442
- package/dist/scripts/16.chunk.js.map +0 -1
- package/dist/scripts/17-b4479339d2.chunk.js +0 -1
- package/dist/scripts/17.chunk.js +0 -879
- package/dist/scripts/17.chunk.js.map +0 -1
- package/dist/scripts/18-60f3cd6ee4.chunk.js +0 -1
- package/dist/scripts/18.chunk.js +0 -1140
- package/dist/scripts/18.chunk.js.map +0 -1
- package/dist/scripts/19-df1dc3ef2f.chunk.js +0 -1
- package/dist/scripts/19.chunk.js +0 -541
- package/dist/scripts/19.chunk.js.map +0 -1
- package/dist/scripts/2-dbb770fac8.chunk.js +0 -1
- package/dist/scripts/2.chunk.js +0 -18795
- package/dist/scripts/2.chunk.js.map +0 -1
- package/dist/scripts/20-9615a8e5b8.chunk.js +0 -1
- package/dist/scripts/20.chunk.js +0 -369
- package/dist/scripts/20.chunk.js.map +0 -1
- package/dist/scripts/21-30ec979fe0.chunk.js +0 -1
- package/dist/scripts/21.chunk.js +0 -272
- package/dist/scripts/21.chunk.js.map +0 -1
- package/dist/scripts/22-b278cab988.chunk.js +0 -1
- package/dist/scripts/22.chunk.js +0 -2164
- package/dist/scripts/22.chunk.js.map +0 -1
- package/dist/scripts/23.chunk.js +0 -20753
- package/dist/scripts/23.chunk.js.map +0 -1
- package/dist/scripts/24.chunk.js +0 -2288
- package/dist/scripts/24.chunk.js.map +0 -1
- package/dist/scripts/25-888b6248ff.chunk.js +0 -1
- package/dist/scripts/25.chunk.js +0 -2110
- package/dist/scripts/25.chunk.js.map +0 -1
- package/dist/scripts/26-aaabbf241e.chunk.js +0 -1
- package/dist/scripts/26.chunk.js +0 -1603
- package/dist/scripts/26.chunk.js.map +0 -1
- package/dist/scripts/27-3dc1f5803f.chunk.js +0 -1
- package/dist/scripts/27.chunk.js +0 -770
- package/dist/scripts/27.chunk.js.map +0 -1
- package/dist/scripts/28.chunk.js +0 -1460
- package/dist/scripts/28.chunk.js.map +0 -1
- package/dist/scripts/29-ae81a5e250.chunk.js +0 -1
- package/dist/scripts/29.chunk.js +0 -899
- package/dist/scripts/29.chunk.js.map +0 -1
- package/dist/scripts/3.chunk.js +0 -741
- package/dist/scripts/3.chunk.js.map +0 -1
- package/dist/scripts/30-75d0f41d0f.chunk.js +0 -1
- package/dist/scripts/30.chunk.js +0 -792
- package/dist/scripts/30.chunk.js.map +0 -1
- package/dist/scripts/31.chunk.js +0 -825
- package/dist/scripts/31.chunk.js.map +0 -1
- package/dist/scripts/32-d62f3a69c0.chunk.js +0 -1
- package/dist/scripts/32.chunk.js +0 -848
- package/dist/scripts/32.chunk.js.map +0 -1
- package/dist/scripts/33-8ec9d596c5.chunk.js +0 -1
- package/dist/scripts/33.chunk.js +0 -793
- package/dist/scripts/33.chunk.js.map +0 -1
- package/dist/scripts/34-7f80fea1f9.chunk.js +0 -53
- package/dist/scripts/34.chunk.js +0 -817
- package/dist/scripts/34.chunk.js.map +0 -1
- package/dist/scripts/35.chunk.js +0 -520
- package/dist/scripts/35.chunk.js.map +0 -1
- package/dist/scripts/36.chunk.js +0 -717
- package/dist/scripts/36.chunk.js.map +0 -1
- package/dist/scripts/37.chunk.js +0 -538
- package/dist/scripts/37.chunk.js.map +0 -1
- package/dist/scripts/38-3e08037fa3.chunk.js +0 -1
- package/dist/scripts/38.chunk.js +0 -438
- package/dist/scripts/38.chunk.js.map +0 -1
- package/dist/scripts/39-bfb5d54572.chunk.js +0 -1
- package/dist/scripts/39.chunk.js +0 -408
- package/dist/scripts/39.chunk.js.map +0 -1
- package/dist/scripts/4-eef3251d84.chunk.js +0 -1
- package/dist/scripts/4.chunk.js +0 -403
- package/dist/scripts/4.chunk.js.map +0 -1
- package/dist/scripts/40-e0eafc5aec.chunk.js +0 -1
- package/dist/scripts/40.chunk.js +0 -533
- package/dist/scripts/40.chunk.js.map +0 -1
- package/dist/scripts/41.chunk.js +0 -814
- package/dist/scripts/41.chunk.js.map +0 -1
- package/dist/scripts/42-6b91ae0603.chunk.js +0 -1
- package/dist/scripts/42.chunk.js +0 -529
- package/dist/scripts/42.chunk.js.map +0 -1
- package/dist/scripts/43.chunk.js +0 -609
- package/dist/scripts/43.chunk.js.map +0 -1
- package/dist/scripts/44-f0664cf45b.chunk.js +0 -1
- package/dist/scripts/44.chunk.js +0 -563
- package/dist/scripts/44.chunk.js.map +0 -1
- package/dist/scripts/45-3173437bfb.chunk.js +0 -1
- package/dist/scripts/45.chunk.js +0 -674
- package/dist/scripts/45.chunk.js.map +0 -1
- package/dist/scripts/46.chunk.js +0 -409
- package/dist/scripts/46.chunk.js.map +0 -1
- package/dist/scripts/47.chunk.js +0 -401
- package/dist/scripts/47.chunk.js.map +0 -1
- package/dist/scripts/48.chunk.js +0 -217
- package/dist/scripts/48.chunk.js.map +0 -1
- package/dist/scripts/49.chunk.js +0 -282
- package/dist/scripts/49.chunk.js.map +0 -1
- package/dist/scripts/5-9cb873330d.chunk.js +0 -1
- package/dist/scripts/5.chunk.js +0 -309
- package/dist/scripts/5.chunk.js.map +0 -1
- package/dist/scripts/50.chunk.js +0 -450
- package/dist/scripts/50.chunk.js.map +0 -1
- package/dist/scripts/51.chunk.js +0 -338
- package/dist/scripts/51.chunk.js.map +0 -1
- package/dist/scripts/52.chunk.js +0 -447
- package/dist/scripts/52.chunk.js.map +0 -1
- package/dist/scripts/53.chunk.js +0 -440
- package/dist/scripts/53.chunk.js.map +0 -1
- package/dist/scripts/54.chunk.js +0 -1533
- package/dist/scripts/54.chunk.js.map +0 -1
- package/dist/scripts/55.chunk.js +0 -574
- package/dist/scripts/55.chunk.js.map +0 -1
- package/dist/scripts/56.chunk.js +0 -245
- package/dist/scripts/56.chunk.js.map +0 -1
- package/dist/scripts/57.chunk.js +0 -230
- package/dist/scripts/57.chunk.js.map +0 -1
- package/dist/scripts/58.chunk.js +0 -480
- package/dist/scripts/58.chunk.js.map +0 -1
- package/dist/scripts/59.chunk.js +0 -408
- package/dist/scripts/59.chunk.js.map +0 -1
- package/dist/scripts/6.chunk.js +0 -1172
- package/dist/scripts/6.chunk.js.map +0 -1
- package/dist/scripts/60.chunk.js +0 -241
- package/dist/scripts/60.chunk.js.map +0 -1
- package/dist/scripts/61.chunk.js +0 -249
- package/dist/scripts/61.chunk.js.map +0 -1
- package/dist/scripts/62.chunk.js +0 -132
- package/dist/scripts/62.chunk.js.map +0 -1
- package/dist/scripts/63.chunk.js +0 -318
- package/dist/scripts/63.chunk.js.map +0 -1
- package/dist/scripts/64.chunk.js +0 -212
- package/dist/scripts/64.chunk.js.map +0 -1
- package/dist/scripts/65.chunk.js +0 -195
- package/dist/scripts/65.chunk.js.map +0 -1
- package/dist/scripts/66.chunk.js +0 -230
- package/dist/scripts/66.chunk.js.map +0 -1
- package/dist/scripts/67.chunk.js +0 -108
- package/dist/scripts/67.chunk.js.map +0 -1
- package/dist/scripts/68.chunk.js +0 -209
- package/dist/scripts/68.chunk.js.map +0 -1
- package/dist/scripts/69.chunk.js +0 -211
- package/dist/scripts/69.chunk.js.map +0 -1
- package/dist/scripts/7-3adb578de5.chunk.js +0 -1
- package/dist/scripts/7.chunk.js +0 -613
- package/dist/scripts/7.chunk.js.map +0 -1
- package/dist/scripts/70.chunk.js +0 -115
- package/dist/scripts/70.chunk.js.map +0 -1
- package/dist/scripts/71.chunk.js +0 -449
- package/dist/scripts/71.chunk.js.map +0 -1
- package/dist/scripts/72.chunk.js +0 -161
- package/dist/scripts/72.chunk.js.map +0 -1
- package/dist/scripts/73-3d149ecedc.chunk.js +0 -1
- package/dist/scripts/73.chunk.js +0 -87
- package/dist/scripts/73.chunk.js.map +0 -1
- package/dist/scripts/74.chunk.js +0 -142
- package/dist/scripts/74.chunk.js.map +0 -1
- package/dist/scripts/75.chunk.js +0 -149
- package/dist/scripts/75.chunk.js.map +0 -1
- package/dist/scripts/76.chunk.js +0 -142
- package/dist/scripts/76.chunk.js.map +0 -1
- package/dist/scripts/77.chunk.js +0 -180
- package/dist/scripts/77.chunk.js.map +0 -1
- package/dist/scripts/78.chunk.js +0 -170
- package/dist/scripts/78.chunk.js.map +0 -1
- package/dist/scripts/79.chunk.js +0 -172
- package/dist/scripts/79.chunk.js.map +0 -1
- package/dist/scripts/8.chunk.js +0 -436
- package/dist/scripts/8.chunk.js.map +0 -1
- package/dist/scripts/80-f4b5d951b3.chunk.js +0 -1
- package/dist/scripts/80.chunk.js +0 -173
- package/dist/scripts/80.chunk.js.map +0 -1
- package/dist/scripts/81-8c42a24988.chunk.js +0 -1
- package/dist/scripts/81.chunk.js +0 -172
- package/dist/scripts/81.chunk.js.map +0 -1
- package/dist/scripts/82.chunk.js +0 -311
- package/dist/scripts/82.chunk.js.map +0 -1
- package/dist/scripts/83.chunk.js +0 -318
- package/dist/scripts/83.chunk.js.map +0 -1
- package/dist/scripts/84.chunk.js +0 -64
- package/dist/scripts/84.chunk.js.map +0 -1
- package/dist/scripts/85.chunk.js +0 -65
- package/dist/scripts/85.chunk.js.map +0 -1
- package/dist/scripts/86.chunk.js +0 -37
- package/dist/scripts/86.chunk.js.map +0 -1
- package/dist/scripts/87.chunk.js +0 -82
- package/dist/scripts/87.chunk.js.map +0 -1
- package/dist/scripts/88.chunk.js +0 -1001
- package/dist/scripts/88.chunk.js.map +0 -1
- package/dist/scripts/89.chunk.js +0 -24
- package/dist/scripts/89.chunk.js.map +0 -1
- package/dist/scripts/9.chunk.js +0 -445
- package/dist/scripts/9.chunk.js.map +0 -1
- package/dist/scripts/90.chunk.js +0 -36
- package/dist/scripts/90.chunk.js.map +0 -1
- package/dist/scripts/91.chunk.js +0 -36
- package/dist/scripts/91.chunk.js.map +0 -1
- package/dist/scripts/92.chunk.js +0 -69
- package/dist/scripts/92.chunk.js.map +0 -1
- package/dist/scripts/93.chunk.js +0 -441
- package/dist/scripts/93.chunk.js.map +0 -1
- package/dist/scripts/94.chunk.js +0 -740
- package/dist/scripts/94.chunk.js.map +0 -1
- package/dist/scripts/95.chunk.js +0 -221
- package/dist/scripts/95.chunk.js.map +0 -1
- package/dist/scripts/96.chunk.js +0 -230
- package/dist/scripts/96.chunk.js.map +0 -1
- package/dist/scripts/97.chunk.js +0 -241
- package/dist/scripts/97.chunk.js.map +0 -1
- package/dist/scripts/98.chunk.js +0 -249
- package/dist/scripts/98.chunk.js.map +0 -1
- package/dist/scripts/99.chunk.js +0 -212
- package/dist/scripts/99.chunk.js.map +0 -1
- package/dist/scripts/bundle-f4a1d3ab76.min.js +0 -31
- package/dist/scripts/bundle.js +0 -119288
- package/dist/scripts/bundle.js.map +0 -1
- package/dist/scripts/pdf.worker.entry.worker.js +0 -46239
- package/dist/scripts/pdf.worker.entry.worker.js.map +0 -1
- package/dist/scripts/polyfills-7ae776aac5.min.js +0 -1
- package/dist/scripts/polyfills.js +0 -15254
- package/dist/scripts/polyfills.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["file://C:/ClickView/front-end/clickview/packages/libs/shared/src/apps/playlists/components/empty-state/EmptyVideoList.tsx","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/apps/playlists/utils/getBackgroundColourClass.ts","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/components/back-button/BackButton.tsx","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/components/banner-header/BannerHeader.tsx","webpack://@clickview/lite/C:/ClickView/front-end/clickview/packages/libs/shared/src/components/banner-header/banner-header.scss?c604","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/components/empty-state/EmptyState.tsx","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/components/infinite-scroll-footer/InfiniteScrollFooter.tsx","webpack://@clickview/lite/C:/ClickView/front-end/clickview/packages/libs/shared/src/components/infinite-scroll-footer/infinite-scroll-footer.scss?924e","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/components/video-list/partial-loading/PartialVideoList.tsx","webpack://@clickview/lite/C:/ClickView/front-end/clickview/packages/libs/shared/src/components/video-list/partial-loading/partial-video-list.scss?cc73","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/constants/SupportArticles.ts","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/flight-requests/FavouriteVideoRequests.ts","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/hooks/UseInfiniteList.ts","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/hooks/UseInfiniteScroll.ts","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/hooks/UseReorderedItems.ts","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/hooks/UseSelectAllPages.ts","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/utils/RatingHelper.ts","file://C:/ClickView/front-end/clickview/packages/projects/lite/src/apps/playlists/components/playlist-header/PlaylistHeader.tsx","file://C:/ClickView/front-end/clickview/packages/projects/lite/src/apps/playlists/components/playlist-header/partial-loading/PartialPlaylistHeader.tsx","webpack://@clickview/lite/./src/apps/playlists/components/playlist-header/partial-loading/partial-playlist-header.scss?bb39","file://C:/ClickView/front-end/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?0ef9","file://C:/ClickView/front-end/clickview/packages/projects/lite/src/apps/playlists/constants/PlaylistBgColourClassNames.ts","file://C:/ClickView/front-end/clickview/packages/projects/lite/src/apps/playlists/utils/PlaylistVideoActionAppLinkHelper.ts","file://C:/ClickView/front-end/clickview/packages/projects/lite/src/apps/playlists/views/playlist/PlaylistView.tsx","file://C:/ClickView/front-end/clickview/packages/projects/lite/src/apps/playlists/views/playlist/PlaylistViewUtils.ts","file://C:/ClickView/front-end/clickview/packages/projects/lite/src/apps/watch-history/flight-requests/VideoHistoryRequests.ts","file://C:/ClickView/front-end/clickview/packages/projects/lite/src/shared/hooks/useHandleObjectError.ts","file://C:/ClickView/front-end/clickview/packages/projects/lite/src/shared/hooks/useVideoMixin.ts"],"names":[],"mappings":"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","file":"scripts/26.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\nimport { CurrentUser, Playlist } from 'libs/shared/interfaces';\r\n\r\nconst getPhrase = LanguageService.encloseNamespace('playlists.emptyState');\r\n\r\ninterface EmptyVideoListComponentProps {\r\n playlist: Playlist;\r\n currentUser: CurrentUser;\r\n supportSiteUrl: string;\r\n}\r\n\r\nexport function EmptyVideoListComponent(props: EmptyVideoListComponentProps): React.ReactElement {\r\n const imageUrlService = useService<ImageUrlService>(SharedServices.ImageUrl);\r\n const imageUrls = imageUrlService.getImageUrls();\r\n const supportArticleUrl = UrlHelper.safeUrlConcat(props.supportSiteUrl, SupportArticles.ADD_TO_PLAYLIST);\r\n\r\n const currentUserIsPlaylistOwner = props.playlist.owner?.id === props.currentUser.id;\r\n\r\n return (\r\n <EmptyState\r\n imageUrl={imageUrls.EmptyStates.VIDEOS}\r\n heading={getPhrase('noVideosHeading')}\r\n description={currentUserIsPlaylistOwner &&\r\n `<a href=\"${supportArticleUrl}\" target=\"_blank\">${getPhrase('noVideosInfo')}</a>`\r\n }\r\n />\r\n );\r\n}","import { Playlist } from 'libs/shared/interfaces';\r\n\r\nexport function getPlaylistBgColourClass(playlist: Playlist, classNames: string[]): string {\r\n return classNames[playlist.name.charCodeAt(0) % classNames.length];\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 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 blockColourClass?: string;\r\n actionsDropdownClassName?: string;\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, blockColourClass } = 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 const containerProps: React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement> = {\r\n className: 'banner banner-header',\r\n style: { backgroundImage: `url('${url}')` }\r\n };\r\n\r\n if (!banner && blockColourClass) {\r\n delete containerProps.style;\r\n containerProps.className += ` ${blockColourClass}`;\r\n }\r\n\r\n return (\r\n // \"banner\" is used in playlists in Online. banner-header is used by all other projects\r\n <div {...containerProps}>\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\r\n actions={actions}\r\n sortComponent={sortComponent}\r\n actionsDropdownClassName={props.actionsDropdownClassName}\r\n />\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\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 : (\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 }\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 React from 'react';\r\nimport { Row, Col } from 'react-bootstrap';\r\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\r\nimport { useGetMediaQueryString } from 'libs/shared/hooks/UseGetMediaQueryString';\r\n\r\nimport styles from './partial-video-list.scss';\r\n\r\ninterface PartialVideoListProps {\r\n withReordering?: boolean;\r\n numVideos?: number;\r\n}\r\n\r\nPartialVideoList.defaultProps = {\r\n numVideos: 15\r\n};\r\n\r\nexport function PartialVideoList(props: PartialVideoListProps): JSX.Element {\r\n return (\r\n <>\r\n {Array(props.numVideos).fill(null).map((_, i) => (\r\n <PartialVideoItem key={i} {...props} />\r\n ))}\r\n </>\r\n );\r\n}\r\n\r\nexport function PartialVideoItem(props: PartialVideoListProps): JSX.Element {\r\n const mediaQuery = useGetMediaQueryString();\r\n const isMobile = mediaQuery === MediaQueryStrings.XS;\r\n const isTablet = mediaQuery === MediaQueryStrings.SM || mediaQuery === MediaQueryStrings.MD;\r\n\r\n const withDragHandle = props.withReordering && !isMobile;\r\n\r\n return (\r\n <Row className='py-2'>\r\n <Col xs={isMobile ? 12 : isTablet ? 4 : 3} className='flex-column align-items-flex-start mb-1'>\r\n <Row>\r\n {!!withDragHandle && (\r\n <div className='d-flex align-items-center justify-content-center col-2'>\r\n <div className={`partial-loading-background ${styles.partialDragHandle}`} />\r\n </div>\r\n )}\r\n <Col xs={withDragHandle ? 10 : 12}>\r\n <div className={`partial-loading-background rounded-lg ${styles.partialThumbnail}`} />\r\n </Col>\r\n </Row>\r\n </Col>\r\n <Col xs={isMobile ? 12 : isTablet ? 8 : 9}>\r\n <div className={`partial-loading-background ${styles.partialSeriesLink}`} />\r\n <div className={`partial-loading-background mb-1 ${styles.partialName}`} />\r\n <div className={`partial-loading-background ${styles.partialDescription}`} />\r\n <div className={`partial-loading-background ${styles.partialBadges}`} />\r\n <div className={`partial-loading-background ${styles.partialActions}`} />\r\n </Col>\r\n </Row>\r\n );\r\n}\r\n\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"partialName\":\"cv--partialName--7KNC2\",\"partialDescription\":\"cv--partialDescription--Vk_wR\",\"partialThumbnail\":\"cv--partialThumbnail--3peRZ\",\"partialDragHandle\":\"cv--partialDragHandle--1F7_f\"};","export const SupportArticles: { [article: string]: string } = {\r\n ADD_TO_PLAYLIST: 'hc/articles/115005679748'\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 { WithStatementHelper } 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: `{gateway}/v1/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: `{gateway}/v1/objects/${userId}/favouriteVideos?memberId=${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 return {\r\n url: `{gateway}/v1/objects/${userId}/favouriteVideos?query=${WithStatementHelper.VideoCollectionWithAssocs(userId, true)}${addCursor(cursor)}`,\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: `{gateway}/v1/objects?query=favouritedBy{id:${userId}}&${params.join('&')}`,\r\n key: `video:is:favourited:${userId}:by:id:${sortedIds.join(',')}`,\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 (cursor?: string) => void;\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, fetchNextPage ]);\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 (cursor?: string) => string;\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 const 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 const newItems = request.data && request.data.data;\r\n newItems && items.push(...newItems);\r\n\r\n const nextNextCursor = safeGetCursor(request);\r\n\r\n /**\r\n * This is a check to basically see if the backend has messed up the cursors it's sent back.\r\n * For some things (e.g. user manager in Lite), the cursors are generated for a paginated collection,\r\n * but the collection is then filtered afterwards (making the cursors not entirely accurate).\r\n * This can lead to problems where a request with a cursor might return that same cursor as the `next`\r\n * cursor. Confusing, but basically when that happens we want this while loop to end, otherwise it'll\r\n * run infinitely - Josh\r\n */\r\n if (nextNextCursor === nextCursor) {\r\n nextCursor = null;\r\n } else {\r\n nextCursor = nextNextCursor;\r\n }\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 { 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 * as React from 'react';\r\n\r\nimport { Core } from 'libs/common/core';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\r\nimport { LocationContext, UserAction, ToggleDescriptor, EntityType, WorkflowPhase } from 'libs/analytics/interfaces';\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 { ActionOptions } from 'libs/shared/components/actions/Actions';\r\nimport { getPlaylistBgColourClass } from 'libs/shared/apps/playlists/utils/getBackgroundColourClass';\r\n\r\nimport { PLAYLIST_BG_COLOUR_CLASS_NAMES } from 'apps/playlists/constants/PlaylistBgColourClassNames';\r\n\r\nimport { Actions } from 'shared/constants/LiteActions';\r\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\r\n\r\nimport { PartialPlaylistHeader } from './partial-loading/PartialPlaylistHeader';\r\n\r\nconst namespace = 'playlists.playlistHeader';\r\nconst getPhrase = LanguageService.encloseNamespace(namespace);\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, onSuccess: () => void, onError: () => void) => 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 canSharePlaylists?: 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 const [ showFollowSpinner, setShowFollowSpinner ] = React.useState(false);\r\n\r\n React.useEffect(() => setIsFollowing(props.isFollowing), [props.isFollowing]);\r\n\r\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\r\n\r\n if (props.showPartialLoading)\r\n return <PartialPlaylistHeader />;\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.canSharePlaylists) {\r\n actions.push({\r\n label: getPhrase('share'),\r\n appLink: {\r\n application: AppChannels.SHARE,\r\n action: Actions.Share.SHARE,\r\n args: [props.playlist.id],\r\n params: { entityType: 'playlist' }\r\n },\r\n svgName: cvSvgLibrary.Share,\r\n className: 'btn btn-secondary',\r\n button: !isMobile\r\n });\r\n }\r\n\r\n if (props.canEdit) {\r\n actions.push(\r\n // TODO: Add collaborate\r\n {\r\n label: getPhrase('edit'),\r\n appLink: { application, action: Actions.Playlists.EDIT_PLAYLIST, args },\r\n svgName: cvSvgLibrary.Edit,\r\n className: 'btn btn-secondary',\r\n button: false\r\n },\r\n {\r\n label: getPhrase('delete'),\r\n appLink: { application, action: Actions.Playlists.DELETE_PLAYLIST, args },\r\n svgName: cvSvgLibrary.Delete,\r\n className: 'text-danger',\r\n button: false\r\n }\r\n );\r\n }\r\n\r\n if (!props.canEdit) {\r\n actions.push(\r\n {\r\n label: getPhrase(isFollowing ? 'following' : 'follow'),\r\n onClick: () => {\r\n setIsFollowing(!isFollowing);\r\n setShowFollowSpinner(true);\r\n props.follow(\r\n !isFollowing,\r\n () => {\r\n setShowFollowSpinner(false);\r\n AnalyticsHelper.logUserAction({ id: props.playlistId }, {\r\n location: LocationContext.Banner,\r\n actionType: UserAction.Follow,\r\n descriptor: isFollowing ? ToggleDescriptor.Off : ToggleDescriptor.On,\r\n entity: EntityType.Playlist,\r\n workflowPhase: WorkflowPhase.Complete\r\n });\r\n },\r\n () => {\r\n setShowFollowSpinner(false);\r\n setIsFollowing(isFollowing);\r\n }\r\n );\r\n },\r\n svgName: cvSvgLibrary.Bell,\r\n className: `btn follow-btn btn-${isFollowing ? 'dark' : 'light'}`,\r\n button: !isMobile,\r\n showSpinner: showFollowSpinner\r\n },\r\n {\r\n label: getPhrase('copy'),\r\n appLink: {\r\n application: AppChannels.PLAYLISTS,\r\n action: Actions.Playlists.COPY_PLAYLIST,\r\n args\r\n },\r\n button: false\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 actionsDropdownClassName='btn btn-secondary'\r\n blockColourClass={getPlaylistBgColourClass(props.playlist, PLAYLIST_BG_COLOUR_CLASS_NAMES)}\r\n />\r\n {!!description && (\r\n <p className='py-2 border-bottom'>{description}</p>\r\n )}\r\n </>\r\n );\r\n}","import React from 'react';\r\nimport { PartialBannerHeader } from 'libs/shared/components/banner-header/BannerHeader';\r\n\r\nimport styles from './partial-playlist-header.scss';\r\n\r\nexport function PartialPlaylistHeader(): JSX.Element {\r\n return (\r\n <>\r\n <PartialBannerHeader />\r\n <div className='mb-2'>\r\n <div className={`partial-loading-background my-2 border-bottom ${styles.partialDescription}`} />\r\n </div>\r\n </>\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"partialDescription\":\"cv--partialDescription--3cyjk\"};","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/partial-loading/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 withReordering />;\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\"};","export const PLAYLIST_BG_COLOUR_CLASS_NAMES = [\r\n 'bg-froly',\r\n 'bg-pizazz',\r\n 'bg-emerald',\r\n 'bg-puerto-rico',\r\n 'bg-pelorous',\r\n 'bg-picton-blue',\r\n 'bg-portage',\r\n 'bg-east-side'\r\n];","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\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\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 case VideoAction.Share:\r\n return {\r\n application: AppChannels.SHARE,\r\n action: Actions.Share.SHARE,\r\n args: [video.id],\r\n params: { entityType: 'video' }\r\n };\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 { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { WorkflowPhase, EntityType, UserAction, LocationContext, ToggleDescriptor } from 'libs/analytics/interfaces';\r\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\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/common/react/hooks/UseSetPageTitle';\r\nimport { useInfiniteList } from 'libs/shared/hooks/UseInfiniteList';\r\nimport { InfiniteScrollFooter } from 'libs/shared/components/infinite-scroll-footer/InfiniteScrollFooter';\r\nimport { ReorderHelper } from 'libs/shared/utils/ReorderHelper';\r\nimport { RatingHelper } from 'libs/shared/utils/RatingHelper';\r\nimport { useReorderedItems } from 'libs/shared/hooks/UseReorderedItems';\r\nimport { VideoActionsContext } from 'libs/shared/context/VideoActionsContext';\r\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\r\n\r\nimport { useVideoMixin } from 'shared/hooks/useVideoMixin';\r\nimport { VideoRequests } from 'shared/flight-requests/VideoRequests';\r\nimport { useHandleObjectError } from 'shared/hooks/useHandleObjectError';\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 { PermissionName } from 'libs/shared/enums/PermissionName';\r\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\r\n\r\nconst namespace = 'playlists.playlist';\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 const alerts = useAlerts();\r\n const { hasPermissions } = usePermissions();\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 useHandleObjectError(playlist, PlaylistViewUtils.playlistErrors);\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 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 = videos[oldIdx];\r\n\r\n if (!video)\r\n return;\r\n\r\n const { reorderedItems, reorderRequest } = ReorderHelper.reorder(videos, 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, onSuccess: () => void, onError: () => void) => {\r\n const req = shouldFollow\r\n ? PlaylistRequests.followPlaylist\r\n : PlaylistRequests.unfollowPlaylist;\r\n\r\n const error = () => {\r\n onError();\r\n alerts.error(LanguageService.getPhrase(namespace, shouldFollow ? 'followError' : 'unfollowError'));\r\n };\r\n\r\n Flight.fetch(dispatch, req(props.playlistId, user.data.id, onSuccess, error));\r\n };\r\n\r\n const setFavourite = (video: Video, shouldFavourite: boolean, onError?: () => void) => {\r\n Flight.fetch(\r\n dispatch,\r\n FavouriteVideoRequests.updateIsVideoFavourited(video.id, user.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(\r\n LanguageService.getPhrase(\r\n namespace,\r\n shouldFavourite ? 'favourited' : 'unfavourited',\r\n { video: video.name }\r\n )\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, hasPermissions(PermissionName.ShareVideos)),\r\n getActionAppLink: getVideoActionAppLink(props.application, props.playlistId),\r\n hideLabel: true\r\n }}\r\n >\r\n <div className='bg-white px-3'>\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 canSharePlaylists={hasPermissions(PermissionName.SharePlaylists)}\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 <div className='mt-2'>\r\n {playlistIsEmpty\r\n ? (!!config.data && !!user.data && !!playlist.data) && (\r\n <EmptyVideoListComponent\r\n playlist={playlist.data}\r\n currentUser={user.data}\r\n supportSiteUrl={config.data.supportSiteUrl}\r\n />\r\n )\r\n : (\r\n <SortableVideoListContainer\r\n videos={reorderedVideos || videos}\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={!videos || !user.data || !config.data}\r\n getVideoAppLink={props.getVideoAppLink}\r\n getSeriesAppLink={props.getSeriesAppLink}\r\n fetchRestrictions={fetchRestrictions}\r\n setFavourite={setFavourite}\r\n hideFavouriteButton={!hasPermissions(PermissionName.FavouriteVideos)}\r\n />\r\n )\r\n }\r\n </div>\r\n {!!hasMore && <InfiniteScrollFooter isFetching={isFetching} onClick={fetchNext} />}\r\n </div>\r\n </VideoActionsContext.Provider>\r\n );\r\n}","import { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\r\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\r\n\r\nimport { Video, Playlist, CurrentUser } from 'libs/shared/interfaces';\r\nimport { VideoAction } from 'libs/shared/utils/video-actions/VideoActionsHelper';\r\n\r\nimport { WorkflowPhase, LocationContext, EntityType, UserAction } from 'libs/analytics/interfaces';\r\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\r\n\r\nimport { PlaylistNotFoundError } from 'shared/errors/playlists/playlist-not-found/LitePlaylistNotFoundError';\r\nimport { PlaylistPrivateError } from 'shared/errors/playlists/playlist-private/PlaylistPrivateError';\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, canShare: boolean): VideoAction[] {\r\n const actions: VideoAction[] = [\r\n canEdit ? VideoAction.RemoveFromPlaylist : VideoAction.AddToPlaylist\r\n ];\r\n\r\n if (canShare)\r\n actions.push(VideoAction.Share);\r\n\r\n return actions;\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}\r\n\r\nexport const playlistErrors = {\r\n notFound: PlaylistNotFoundError,\r\n forbidden: {\r\n privacy: PlaylistPrivateError\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 } 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): 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 // eslint-disable-next-line\r\n const attribute = Flight.useGetResponse<VideoCollection>(request?.key);\r\n // eslint-disable-next-line\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}"],"sourceRoot":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(window.webpackJsonp_clickview_lite=window.webpackJsonp_clickview_lite||[]).push([[27],{1141:function(e,a,t){"use strict";t.d(a,"a",(function(){return o}));var n=t(962),r=t(7),i=t(13);function o(e,a){switch(a){case n.a.AddToPlaylist:return{application:r.a.PLAYLISTS,action:i.a.Playlists.ADD_TO_PLAYLIST,args:[e.id]};case n.a.Share:return{application:r.a.SHARE,action:i.a.Share.SHARE,args:[e.id],params:{entityType:"video"}}}}},1452:function(e,a,t){"use strict";t.r(a),t.d(a,"FavouriteVideosView",(function(){return O}));var n=t(0),r=t(76),i=t(2),o=t(19),c=t(43),s=t(983),l=t(91),u=t(70),d=t(973),m=t(963),p=t(964),v=t(304),f=t(48),g=t(3),b=t(9),E=t(958),y=t(115),h=t(161),k=t(101),N=t(1141),w=t(7),P=t(13),S=t(162),A=t(962),L="shared.favouriteVideos",C=function(e){return{application:w.a.DEFAULT,action:P.a.Default.PLAY_VIDEO,args:[e.id,c.a.slugify(e.name)],params:y.a.getVideoProgress(e)?{t:Math.floor(y.a.getVideoProgress(e))}:{}}},x=function(e){return{application:w.a.DEFAULT,action:P.a.Default.SERIES,args:[e.id,c.a.slugify(e.name)]}};function O(e){var a,t=Object(r.useDispatch)(),c=Object(E.a)(),y=Object(h.a)().hasPermissions;Object(v.a)(b.a.getPhrase(L,"pageTitle"));var w,P,O=o.a.useBasicFetch(u.a.currentUser()),j=o.a.useBasicFetch(!!O.data&&d.a.favouriteVideos(O.data.id,e.cursor));return y(k.a.FavouriteVideos)?n.createElement(p.a.Provider,{value:{getActionAppLink:N.a,hideLabel:!0,videoActions:(w=y(k.a.ShareVideos),P=[A.a.AddToPlaylist],w&&P.push(A.a.Share),P)}},n.createElement("div",{className:"px-3"},n.createElement("h1",null,n.createElement(l.b,{namespace:L,phrase:"header"})),(null===(a=j.data)||void 0===a?void 0:a.data)?n.createElement(m.c,{videos:j.data.data,cursors:j.data.pagination.cursors,getVideoAppLink:C,getSeriesAppLink:x,setFavourite:function(e,a,n){o.a.fetch(t,d.a.updateIsVideoFavourited(e.id,O.data.id,a,(function(){f.a.logUserAction({id:e.id},{entity:g.d.Video,actionType:g.n.Favourite,descriptor:a?g.m.On:g.m.Off,location:g.j.VideoThumbnail,workflowPhase:g.o.Complete}),c.success(b.a.getPhrase(L,a?"favourited":"unfavourited",{video:e.name}))}),n))}}):n.createElement(s.b,null))):(i.a.ErrorHelper.throw(new S.a),n.createElement(n.Fragment,null))}},960:function(e,a,t){e.exports={buttonList:"_2v9CT",dropdownToggle:"AYBvQ"}},961:function(e,a,t){"use strict";var n=t(0),r=t(184),i=t(306),o=t(45),c=t(48),s=t(64),l=t(58),u=t(17),d=t(960),m=t.n(d);function p(e){var a="dropdown-item";return e&&(a+=" ".concat(e)),a}function v(e){if(e.action.appLink)return n.createElement(l.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(a){e.action.analyticsData&&e.action.analyticsOptions&&c.a.logUserAction(e.action.analyticsData,e.action.analyticsOptions),o.a.isFunction(e.action.onClick)&&e.action.onClick(a)}},e.action.label)}function f(e){if(!e.actions||!e.actions.length)return n.createElement(n.Fragment,null);var a="dropdown";e.className&&(a+=" ".concat(e.className));var t="actions-dropdown-".concat(i.a.getRandomInt()),r="dropdown-toggle px-0 ".concat(m.a.dropdownToggle);return e.dropdownToggleClassName&&(r+=" ".concat(e.dropdownToggleClassName)),n.createElement("div",{className:a},n.createElement("button",{className:r,type:"button",id:t,"data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},n.createElement(s.a,{svgName:u.b.More,size:s.b.Small})),n.createElement("div",{className:"dropdown-menu dropdown-menu-right","aria-labelledby":t},e.actions.map((function(e,a){return n.createElement(v,{key:a,action:e})}))))}f.defaultProps={dropdownToggleClassName:"btn btn-light"};var g=t(308);function b(e){var a=[],t=[];e.actions.forEach((function(e){e.button?a.push(e):t.push(e)}));var i="d-flex";return e.className&&(i+=" ".concat(e.className)),n.createElement("div",{className:i},n.createElement(n.Fragment,null,!!a.length&&n.createElement("span",{className:m.a.buttonList},a.map((function(e,a){return n.createElement(n.Fragment,{key:a},e.label?n.createElement(g.a,{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(r.a,{appLink:e.appLink,onClick:e.onClick,svgName:e.svgName,className:e.className,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions}))}))),e.sortComponent?e.sortComponent:"",!!t.length&&n.createElement(f,{actions:t,className:!!a.length&&"ml-2",dropdownToggleClassName:e.actionsDropdownClassName})))}t.d(a,"a",(function(){return b}))},962:function(e,a,t){"use strict";t.d(a,"a",(function(){return o})),t.d(a,"b",(function(){return s}));var n=t(9),r=t(17);function i(e,a,t){return a in e?Object.defineProperty(e,a,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[a]=t,e}var o,c="shared.videoActionsHelper";!function(e){e[e.AddToPlaylist=0]="AddToPlaylist",e[e.RemoveFromPlaylist=1]="RemoveFromPlaylist",e[e.Share=2]="Share",e[e.Edit=3]="Edit"}(o||(o={}));var s=function(){var e;return i(e={},o.AddToPlaylist,{label:n.a.getPhrase(c,"addToPlaylist"),svgName:r.b.AddToPlaylists}),i(e,o.RemoveFromPlaylist,{label:n.a.getPhrase(c,"removeFromPlaylist"),svgName:r.b.Delete}),i(e,o.Share,{label:n.a.getPhrase(c,"share"),svgName:r.b.Share2}),i(e,o.Edit,{label:n.a.getPhrase(c,"edit"),svgName:r.b.Edit}),e}},963:function(e,a,t){"use strict";t.d(a,"a",(function(){return s})),t.d(a,"c",(function(){return l})),t.d(a,"b",(function(){return u}));var n=t(0),r=t(952),i=t(2),o=t(967),c=t(974),s=n.createContext({isSortable:!1});function l(e){var a=n.useContext(s).isSortable?c.a:c.b,t=i.a.AppLinkHelper.getCurrentAppLink();return n.createElement(n.Fragment,null,n.createElement("div",{className:"position-relative"},e.videos.map((function(t,r){return n.createElement(a,{key:t.id,idx:r,index:r,video:t,getVideoAppLink:e.getVideoAppLink,getSeriesAppLink:e.getSeriesAppLink,setFavourite:e.setFavourite,hideInteractiveBadge:e.hideInteractiveBadge,hideFavouriteButton:e.hideFavouriteButton})}))),e.cursors&&n.createElement(o.b,{appLink:t,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)))}))},964:function(e,a,t){"use strict";t.d(a,"a",(function(){return r}));var n=t(0),r=n.createContext({})},967:function(e,a,t){"use strict";t.d(a,"b",(function(){return u})),t.d(a,"a",(function(){return d}));var n=t(0),r=t(303),i=t(58),o=t(91),c=t(48),s=t(3);function l(e,a){return a?{application:e.application,action:e.action,args:e.args,params:Object.assign({},e.params,{cursor:a})}:null}function u(e){var a=e.appLink,t=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(a,t.previous),className:"btn btn-secondary mr-1 ".concat(t.previous?"":"disabled"),onClick:function(){return u("previous")}},n.createElement(o.b,{phrase:"previous"})),n.createElement(i.a,{appLink:l(a,t.next),className:"btn btn-secondary ".concat(t.next?"":"disabled"),onClick:function(){return u("next")}},n.createElement(o.b,{phrase:"next"}))))}function d(e){function a(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&&(a("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&&(a("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"}},973:function(e,a,t){"use strict";t.d(a,"a",(function(){return c}));var n=t(27),r=t(49);function i(e,a,t,r){return{url:"{gateway}/v1/objects/".concat(a),key:"favourite:video:".concat(a,":").concat(e),data:{favouriteVideos:e},type:n.a.PUT,invalidationKeys:["favourite:videos:".concat(a),"video:is:favourited:".concat(a)],success:t,error:r}}function o(e,a,t,r){return{url:"{gateway}/v1/objects/".concat(a,"/favouriteVideos?memberId=").concat(e),key:"favourite:video:".concat(a,":").concat(e),type:n.a.DELETE,invalidationKeys:["favourite:videos:".concat(a),"video:is:favourited:".concat(a)],success:t,error:r}}var c={favouriteVideos:function(e,a){return{url:"{gateway}/v1/objects/".concat(e,"/favouriteVideos?query=").concat(r.b.VideoCollectionWithAssocs(e,!0)).concat(s(a)),key:"favourite:videos:".concat(e).concat(a?":".concat(a):"")}},updateIsVideoFavourited:function(e,a,t,n,r){return(t?i:o)(e,a,n,r)},isFavourited:function(e,a){var t=a.slice().sort(),n=t.map((function(e){return"id=".concat(e)}));if(n.length)return{url:"{gateway}/v1/objects?query=favouritedBy{id:".concat(e,"}&").concat(n.join("&")),key:"video:is:favourited:".concat(e,":by:id:").concat(t.join(","))}}};function s(e){return e?"&cursor=".concat(e):""}},974:function(e,a,t){"use strict";var n=t(0),r=t(40),i=t(952),o=t(982),c=t(310),s=t(64),l=t(975),u=t(46),d=t(115),m=t(17),p=t(963),v=t(45),f=t(961),g=t(964),b=t(962),E=t(77),y=t(976),h=t.n(y),k=[b.a.AddToPlaylist];function N(e){var a=n.useContext(g.a),t=a.videoActions,r=void 0===t?k:t,i=a.getActionAppLink,o=a.hideLabel,c=Object(E.a)(u.a.XS);if(!v.a.isFunction(i))return n.createElement(n.Fragment,null);var s=[];return r.forEach((function(a){var t=i(e.video,a);t&&s.push(Object.assign({appLink:t,className:"btn btn-link",button:!c},Object(b.b)()[a]))})),o&&!c&&(s=s.map((function(e){return Object.assign(Object.assign({},e),{label:null})}))),n.createElement(f.a,{actions:s,className:"float-right mt-n1",actionsDropdownClassName:"btn btn-link rounded-circle p-0 ".concat(h.a.actionsDropdown)})}var w=t(91),P=t(977),S=t.n(P);function A(e,a){return function(e){if(Array.isArray(e))return e}(e)||function(e,a){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var t=[],n=!0,r=!1,i=void 0;try{for(var o,c=e[Symbol.iterator]();!(n=(o=c.next()).done)&&(t.push(o.value),!a||t.length!==a);n=!0);}catch(e){r=!0,i=e}finally{try{n||null==c.return||c.return()}finally{if(r)throw i}}return t}(e,a)||function(e,a){if(!e)return;if("string"==typeof e)return L(e,a);var t=Object.prototype.toString.call(e).slice(8,-1);"Object"===t&&e.constructor&&(t=e.constructor.name);if("Map"===t||"Set"===t)return Array.from(e);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return L(e,a)}(e,a)||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 L(e,a){(null==a||a>e.length)&&(a=e.length);for(var t=0,n=new Array(a);t<a;t++)n[t]=e[t];return n}function C(e){var a=A(n.useState(e.truncate),2),t=a[0],r=a[1];return Object(E.a)(u.a.XS)?n.createElement(n.Fragment,null):n.createElement("div",{className:"position-relative overflow-hidden ".concat(t?"clamp-2":"")},n.createElement("p",{className:"m-0"},e.video.description,!!e.isExpandable&&n.createElement("span",{className:"cursor-pointer ".concat(S.a.ellipsis),onClick:function(){return r(!t)}},n.createElement(w.b,{namespace:"shared.videoItemDescription",phrase:t?"showMore":"showLess"}))))}C.defaultProps={truncate:!0};var x=t(58);function O(e){return n.createElement(x.a,{appLink:e.appLink},n.createElement("h5",{className:"m-0 mb-1 clamp-2"},e.video.name))}var j=t(990),F=t(985),T=t(209),D=t(3),V=t(160),I=t(978),R=t.n(I);t.d(a,"b",(function(){return B})),t.d(a,"a",(function(){return H}));var _=Object(i.SortableHandle)((function(){return n.createElement(r.Col,{xs:2,className:"d-flex justify-content-center align-items-center cursor-pointer ".concat(R.a.dragHandleContainer)},n.createElement(s.a,{svgName:m.b.Handle,size:s.b.Small}))}));function B(e){var a,t,i=Object(T.a)(),s=i===u.a.XS,m=i===u.a.SM||i===u.a.MD,v=i===u.a.SM,f=n.useContext(p.a).isSortable&&!s,g=e.getVideoAppLink(e.video),b=d.a.hasSeries(e.video)&&e.getSeriesAppLink(e.video.series);return n.createElement(r.Row,{className:"py-2"},n.createElement(r.Col,{xs:s?12:m?4:3,className:"flex-column align-items-flex-start mb-1"},n.createElement(r.Row,null,!!f&&n.createElement(_,null),n.createElement(r.Col,{xs:(t=f,t?10:12)},n.createElement(o.a,{video:e.video,appLink:g,seriesAppLink:b,imageOptions:{size:f?V.a.Small:V.a.Medium},textPosition:l.a.Independent,setFavourite:e.setFavourite,type:"static",analyticsOptions:{location:D.j.VideoListItem},hideFavouriteButton:e.hideFavouriteButton})))),n.createElement(r.Col,{xs:s?12:m?8:9},n.createElement(N,{video:e.video}),n.createElement(c.a,{className:"d-block",video:e.video,appLink:b,analyticsOptions:{location:D.j.VideoListItem}}),n.createElement(O,{video:e.video,appLink:e.getVideoAppLink(e.video)}),n.createElement(j.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:null===(a=e.video._hasinteractives)||void 0===a?void 0:a.value})),!v&&n.createElement(C,{video:e.video})))}var H=Object(i.SortableElement)((function(e){return n.createElement(B,Object.assign({},e))}))},976:function(e,a,t){e.exports={actionsDropdown:"XR0aX"}},977:function(e,a,t){e.exports={ellipsis:"LJY5U"}},978:function(e,a,t){e.exports={dragHandleContainer:"_24s1b"}},983:function(e,a,t){"use strict";t.d(a,"b",(function(){return u})),t.d(a,"a",(function(){return d}));var n=t(0),r=t.n(n),i=t(40),o=t(46),c=t(209),s=t(984),l=t.n(s);function u(e){return r.a.createElement(r.a.Fragment,null,Array(e.numVideos).fill(null).map((function(a,t){return r.a.createElement(d,Object.assign({key:t},e))})))}function d(e){var a=Object(c.a)(),t=a===o.a.XS,n=a===o.a.SM||a===o.a.MD,s=e.withReordering&&!t;return r.a.createElement(i.Row,{className:"py-2"},r.a.createElement(i.Col,{xs:t?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:t?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}},984:function(e,a,t){e.exports={partialName:"_7KNC2",partialDescription:"Vk_wR",partialThumbnail:"_3peRZ",partialDragHandle:"_1F7_f"}}}]);
|