@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/playlist-list/PlaylistList.tsx","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/apps/playlists/components/playlist-list/index.ts","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/apps/subjects/components/audience-filter/AudienceFilter.tsx","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/apps/subjects/components/audience-item/AudienceItem.tsx","webpack://@clickview/lite/C:/ClickView/front-end/clickview/packages/libs/shared/src/apps/subjects/components/audience-item/audience-item.scss?825b","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/apps/subjects/components/classification-list/ClassificationList.tsx","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/apps/subjects/components/coming-soon/ComingSoon.tsx","webpack://@clickview/lite/C:/ClickView/front-end/clickview/packages/libs/shared/src/apps/subjects/components/coming-soon/coming-soon.scss?bbe2","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/apps/subjects/components/hero-video/HeroVideo.tsx","webpack://@clickview/lite/C:/ClickView/front-end/clickview/packages/libs/shared/src/apps/subjects/components/hero-video/hero-video.scss?93f8","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/apps/subjects/hooks/useAudienceParams.tsx","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/apps/subjects/reducers/AudienceReducer.ts","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/components/actions/Actions.tsx","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/components/actions/ActionsDropdown.tsx","webpack://@clickview/lite/C:/ClickView/front-end/clickview/packages/libs/shared/src/components/actions/actions.scss?9153","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/breadcrumbs/BreadcrumbList.tsx","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/components/breadcrumbs/Breadcrumbs.tsx","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/components/tags/TagItem.tsx","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/components/tags/TagList.tsx","webpack://@clickview/lite/C:/ClickView/front-end/clickview/packages/libs/shared/src/components/tags/tags.scss?0d37","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/components/widgets/fixed-widget/index.ts","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/components/widgets/items/series-widget-item/SeriesWidgetItem.tsx","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/components/widgets/items/series-widget-item/index.ts","webpack://@clickview/lite/C:/ClickView/front-end/clickview/packages/libs/shared/src/components/widgets/items/series-widget-item/series-widget-item.scss?6ab1","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/components/widgets/items/video-widget-item/VideoWidgetItem.tsx","webpack://@clickview/lite/C:/ClickView/front-end/clickview/packages/libs/shared/src/components/widgets/items/video-widget-item/video-widget-item.scss?707e","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/flight-requests/FollowRequests.ts","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/hooks/useQueryString.tsx","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/utils/PartialLoadingHelper.ts","file://C:/ClickView/front-end/clickview/packages/projects/lite/src/apps/subjects/utils/ClassificationAppLinks.ts","file://C:/ClickView/front-end/clickview/packages/projects/lite/src/apps/subjects/views/classification/ClassificationView.tsx","file://C:/ClickView/front-end/clickview/packages/projects/lite/src/apps/subjects/views/classification/ClassificationViewUtils.ts"],"names":[],"mappings":"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","file":"scripts/24.chunk.js","sourcesContent":["import * as React from 'react';\r\nimport { Row, Col } from 'react-bootstrap';\r\n\r\nimport { Core } from 'libs/common/core';\r\n\r\nimport { Playlist, PresentationAudience, CurrentUser } from 'libs/shared/interfaces';\r\nimport { AnalyticsOptions, ClickDescriptor, EntityType, HashObject, LocationContext, UserAction } from 'libs/analytics/interfaces';\r\n\r\nimport { PlaylistItem } from './PlaylistItem';\r\n\r\ninterface PlaylistListProps {\r\n playlists: Playlist[];\r\n getPlaylistAppLink: (playlist: Playlist) => Core.AppLink;\r\n currentUser?: CurrentUser;\r\n presentationAudiences?: PresentationAudience[];\r\n itemContainerClassName?: string;\r\n bgColourClassNames?: string[];\r\n imageCdnUrl?: string;\r\n showCount?: boolean;\r\n showOwner?: boolean;\r\n showFallbackImage?: boolean;\r\n showLastUpdated?: boolean;\r\n analyticsData?: HashObject;\r\n analyticsOptions?: AnalyticsOptions;\r\n}\r\n\r\nconst analyticsOptions: AnalyticsOptions = {\r\n actionType: UserAction.Click,\r\n entity: EntityType.Playlist,\r\n location: LocationContext.PlaylistListItem,\r\n descriptor: ClickDescriptor.Cover\r\n};\r\n\r\nexport function PlaylistList(props: PlaylistListProps): JSX.Element {\r\n return (\r\n <Row>\r\n {props.playlists.map(p =>\r\n <Col key={p.id} xs={6} sm={4} lg={3} className={`mb-3 ${props.itemContainerClassName ? props.itemContainerClassName : ''}`}>\r\n <PlaylistItem\r\n data={p}\r\n appLink={props.getPlaylistAppLink(p)}\r\n imageCdnUrl={props.imageCdnUrl}\r\n currentUser={props.currentUser}\r\n presentationAudiences={props.presentationAudiences}\r\n bgColourClassNames={props.bgColourClassNames}\r\n showCount={props.showCount}\r\n showOwner={props.showOwner}\r\n showFallbackImage={props.showFallbackImage}\r\n showLastUpdated={props.showLastUpdated}\r\n analyticsData={props.analyticsData}\r\n analyticsOptions={{ ...props.analyticsOptions, ...analyticsOptions }}\r\n />\r\n </Col>\r\n )}\r\n </Row>\r\n );\r\n}","export * from './PartialPlaylistList';\r\nexport * from './PlaylistList';\r\nexport * from './PlaylistItem';","import * as React from 'react';\r\nimport { ReducerActions } from 'libs/common/react/interfaces';\r\n\r\nimport { PresentationAudience } from 'libs/shared/interfaces';\r\nimport { PartialLoadingHelper } from 'libs/shared/utils/PartialLoadingHelper';\r\nimport { AudienceItem } from '../audience-item/AudienceItem';\r\n\r\nimport { AudienceActions, ActiveAudiences } from 'libs/shared/apps/subjects/reducers/AudienceReducer';\r\n\r\ninterface AudienceFilterProps {\r\n audiences: PresentationAudience[];\r\n setAudience: React.Dispatch<ReducerActions<AudienceActions>>;\r\n activeAudiences?: ActiveAudiences;\r\n disabled?: boolean;\r\n}\r\n\r\nexport function AudienceFilter(props: AudienceFilterProps): React.ReactElement {\r\n const { audiences, activeAudiences, setAudience, disabled } = props;\r\n\r\n if (!audiences || !audiences.length)\r\n return <></>;\r\n\r\n return (\r\n <div className='pt-3'>\r\n {audiences.map((a: PresentationAudience) =>\r\n <AudienceItem\r\n key={a.masterId}\r\n audience={a}\r\n highlight={!!activeAudiences && !!activeAudiences[a.masterId]}\r\n setAudience={(audience: PresentationAudience, isSelected: boolean) => setAudience({\r\n type: AudienceActions.Toggle,\r\n payload: { audience, isSelected }\r\n })}\r\n isDisabled={disabled}\r\n />\r\n )}\r\n </div>\r\n );\r\n}\r\n\r\nconst PARTIAL_AUDIENCES = PartialLoadingHelper.getPartialLoadingItems({ numItems: 6 });\r\n\r\nexport const PartialAudienceFilter = () =>\r\n <div className='pt-3'>\r\n {PARTIAL_AUDIENCES.map(({ width }, idx) =>\r\n <span\r\n key={idx}\r\n className='d-inline-block badge-pill partial-loading-background mr-1'\r\n dangerouslySetInnerHTML={{ __html: ' ' }}\r\n style={{ width }}\r\n />\r\n )}\r\n </div>;","import * as React from 'react';\r\n\r\nimport { PresentationAudience } from 'libs/shared/interfaces';\r\n\r\nimport styles from './audience-item.scss';\r\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\r\n\r\nfunction lowerCaseToTitleCase(str: string): string {\r\n return str.split(' ').map((s: string) => s.charAt(0).toUpperCase() + s.substring(1)).join(' ');\r\n}\r\n\r\nfunction getColourClass(highlight: boolean, isDisabled: boolean): string {\r\n if (highlight) return isDisabled ? `${styles.disabledHighlighted} text-light` : 'badge-info text-light';\r\n if (isDisabled) return `${styles.disabled} text-muted`;\r\n return 'badge-light';\r\n}\r\n\r\ninterface AudienceItemProps {\r\n audience: PresentationAudience;\r\n highlight: boolean;\r\n setAudience?: (audience: PresentationAudience, highlight: boolean) => void;\r\n isDisabled?: boolean;\r\n extraClasses?: string;\r\n}\r\n\r\nAudienceItem.defaultProps = {\r\n extraClasses: ''\r\n};\r\n\r\nexport function AudienceItem(props: AudienceItemProps): React.ReactElement {\r\n const { audience, highlight, setAudience, isDisabled, extraClasses } = props;\r\n\r\n const colourClass = getColourClass(highlight, isDisabled);\r\n const cursorClass = isDisabled ? 'cursor-default' : 'cursor-pointer';\r\n const className = `badge-pill d-inline-block mr-1 ${cursorClass} ${colourClass} ${extraClasses}`;\r\n\r\n const onClick = () => {\r\n if (isDisabled || !FunctionHelper.isFunction(setAudience))\r\n return;\r\n\r\n setAudience(audience, !highlight);\r\n };\r\n\r\n return (\r\n <span\r\n className={className}\r\n onClick={onClick}\r\n role='checkbox'\r\n aria-checked={highlight}\r\n >\r\n {lowerCaseToTitleCase(audience.name)}\r\n </span>\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"disabled\":\"cv--disabled--1KxF9\",\"disabledHighlighted\":\"cv--disabledHighlighted--pbuec\"};","import * as React from 'react';\r\nimport { Col, Row } from 'react-bootstrap';\r\n\r\nimport { Core } from 'libs/common/core';\r\n\r\nimport { SubjectWidgetItem } from 'libs/shared/components/widgets/items/subject-widget-item/SubjectWidgetItem';\r\nimport { Classification, BaseObject } from 'libs/shared/interfaces';\r\n\r\nimport { AnalyticsOptions, HashObject, LocationContext } from 'libs/analytics/interfaces';\r\n\r\ninterface ClassificationItemProps {\r\n classification: Classification;\r\n appLink: Core.AppLink;\r\n analyticsData?: HashObject;\r\n analyticsOptions?: AnalyticsOptions;\r\n}\r\n\r\nfunction ClassificationItem(props: ClassificationItemProps): JSX.Element {\r\n return (\r\n <div className={`position-relative px-2 mb-2`}>\r\n <SubjectWidgetItem\r\n data={props.classification}\r\n appLink={props.appLink}\r\n isLarge={true}\r\n analyticsData={props.analyticsData}\r\n analyticsOptions={{ ...props.analyticsOptions, location: LocationContext.ClassificationListItem }}\r\n />\r\n </div>\r\n );\r\n}\r\n\r\ninterface ClassificationListProps {\r\n classifications: Classification[];\r\n getItemAppLink: (item: BaseObject) => Core.AppLink;\r\n analyticsData?: HashObject;\r\n analyticsOptions?: AnalyticsOptions;\r\n}\r\n\r\nexport function ClassificationList(props: ClassificationListProps): JSX.Element {\r\n return (\r\n <Row>\r\n {props.classifications.map(c =>\r\n <Col key={c.id} xs={12} sm={6} lg={4}>\r\n <ClassificationItem\r\n key={c.id}\r\n classification={c}\r\n appLink={props.getItemAppLink(c)}\r\n analyticsData={props.analyticsData}\r\n analyticsOptions={props.analyticsOptions}\r\n />\r\n </Col>\r\n )}\r\n </Row>\r\n );\r\n}","import * as React from 'react';\r\n\r\nimport { Classification } from 'libs/shared/interfaces';\r\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\r\nimport { ImageHelper } from 'libs/shared/utils/ImageHelper';\r\nimport { ImageType, ImageSize } from 'libs/shared/enums/Images';\r\nimport { SpinnerButtonProps, SpinnerButton } from 'libs/shared/components/spinner-button/SpinnerButton';\r\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\r\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\r\n\r\nimport styles from './coming-soon.scss';\r\n\r\nconst namespace = 'subjects.comingSoon';\r\n\r\ninterface ComingSoonProps {\r\n data: Classification;\r\n imageCdnUrl: string;\r\n onToggleFollow: () => void;\r\n hideFollowButton?: boolean;\r\n}\r\n\r\nexport function ComingSoon(props: ComingSoonProps): JSX.Element {\r\n const [ isFollowing, setIsFollowing ] = React.useState(false);\r\n const [ showSpinner, setShowSpinner ] = React.useState(false);\r\n\r\n React.useEffect(() => {\r\n setIsFollowing(!!props.data.followers?.data?.length);\r\n setShowSpinner(false);\r\n }, [props.data.followers?.data?.length]);\r\n\r\n function onClick(): void {\r\n setShowSpinner(true);\r\n\r\n props.onToggleFollow();\r\n }\r\n\r\n const footerImageUrl = ImageHelper.createBannerUrl(props.data.banner, {\r\n fallbackBaseUrl: props.imageCdnUrl,\r\n fallbackCategoryName: props.data.name,\r\n type: ImageType.Banners\r\n }, {\r\n size: ImageSize.Large\r\n });\r\n\r\n const buttonProps: SpinnerButtonProps = {\r\n className: isFollowing ? 'btn-white' : 'btn-dark',\r\n showSpinner,\r\n onClick,\r\n variant: null\r\n };\r\n\r\n return (\r\n <LanguageNamespaceContext.Provider value={namespace}>\r\n <div className='d-flex flex-column align-items-center text-center py-3'>\r\n <h2 className='display-4 font-weight-bold mb-3'><Text phrase='comingSoon' /></h2>\r\n <p className='w-33 mb-0'><Text phrase='info1' /></p>\r\n\r\n {!props.hideFollowButton && (\r\n <>\r\n <p className='w-33'><Text phrase='info2' /></p>\r\n <SpinnerButton {...buttonProps}>\r\n <SvgContainer\r\n svgName={isFollowing ? cvSvgLibrary.Check : cvSvgLibrary.Bell}\r\n className='align-middle d-inline-block svg-container'\r\n />\r\n <span className='align-middle pl-1'><Text phrase='remindMe' /></span>\r\n </SpinnerButton>\r\n </>\r\n )}\r\n </div>\r\n\r\n <div className={styles.footerImageContainer}>\r\n <div\r\n className={`${styles.footerImage} banner position-relative`}\r\n style={{ backgroundImage: `url('${footerImageUrl}')` }}\r\n >\r\n <SvgContainer\r\n className={styles.wave}\r\n size={SvgContainerSize.ExtraLarge}\r\n svgName={cvSvgLibrary.WhiteWave}\r\n />\r\n </div>\r\n </div>\r\n </LanguageNamespaceContext.Provider>\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"footerImageContainer\":\"cv--footerImageContainer--2lUo1\",\"footerImage\":\"cv--footerImage--Q_m9i\",\"wave\":\"cv--wave--2WUUq\"};","import * as React from 'react';\r\nimport { Row, Col } from 'react-bootstrap';\r\n\r\nimport { Core } from 'libs/common/core';\r\n\r\nimport { Video, BasePaginatedCollection, PresentationAudience } from 'libs/shared/interfaces';\r\nimport { VideoThumbnail } from 'libs/shared/components/thumbnails/video/VideoThumbnail';\r\nimport { SeriesLink } from 'libs/shared/components/series-link/SeriesLink';\r\nimport { BadgeListContainer } from 'libs/shared/components/badges/BadgeListContainer';\r\nimport { BadgeType, Badge } from 'libs/shared/components/badges/Badge';\r\nimport { AudienceLabel } from 'libs/shared/components/audience-label/AudienceLabel';\r\nimport { TagList } from 'libs/shared/components/tags/TagList';\r\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\r\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\r\nimport { ThumbnailTextPosition } from 'libs/shared/enums/ThumbnailTextPosition';\r\nimport { AudienceHelper } from 'libs/shared/utils/AudienceHelper';\r\nimport { ImageSize } from 'libs/shared/enums/Images';\r\n\r\nimport styles from './hero-video.scss';\r\n\r\nconst has = (obj: BasePaginatedCollection<unknown>) => !!(obj && obj.data && obj.data.length);\r\n\r\ninterface HeroVideoProps {\r\n video: Video;\r\n presentationAudiences: PresentationAudience[];\r\n showExtraMetadata?: boolean;\r\n videoAppLink: Core.AppLink;\r\n seriesAppLink: Core.AppLink;\r\n hideInteractiveBadge?: boolean;\r\n}\r\n\r\nexport function HeroVideo(props: HeroVideoProps): JSX.Element {\r\n const { video, presentationAudiences, videoAppLink, seriesAppLink, hideInteractiveBadge } = props;\r\n\r\n if (!video)\r\n return <></>;\r\n\r\n const filteredAudiences = AudienceHelper.getSortedPresentationAudiences(\r\n video.subjectPresentationAudiences.data, presentationAudiences);\r\n const mergedAudience = AudienceHelper.getMergedPresentationAudienceString(filteredAudiences);\r\n\r\n const hasSeries = video.series && !!video.series.id;\r\n\r\n return (\r\n <LanguageNamespaceContext.Provider value='subjects.heroVideo'>\r\n <h4><Text phrase='heading' /></h4>\r\n <Row className='pb-3'>\r\n <Col xs={6}>\r\n <VideoThumbnail\r\n video={video}\r\n appLink={videoAppLink}\r\n seriesAppLink={hasSeries ? seriesAppLink : null}\r\n imageOptions={{ size: ImageSize.Medium }}\r\n textPosition={ThumbnailTextPosition.Independent}\r\n type='static'\r\n />\r\n </Col>\r\n <Col xs={6} className='p-1'>\r\n {hasSeries && <SeriesLink video={video} appLink={seriesAppLink} className='text-reset d-block' />}\r\n <AppLink appLink={videoAppLink}>\r\n <h4>{video.name}</h4>\r\n </AppLink>\r\n\r\n <BadgeListContainer className='pb-1'>\r\n {!hideInteractiveBadge && <Badge type={ BadgeType.Interactive } data={video.interactives} />}\r\n <Badge type={ BadgeType.Rating } data={video.rating} />\r\n <Badge type={ BadgeType.ProductionYear } data={video.productionYear} />\r\n </BadgeListContainer>\r\n\r\n <p className='mb-1 clamp-4'>{video.description}</p>\r\n\r\n <AudienceLabel\r\n audience={mergedAudience}\r\n border='dark'\r\n />\r\n {props.showExtraMetadata &&\r\n <Row className='pt-2'>\r\n <Col xs={2}>\r\n {has(video.resources) && <p className='font-weight-bold'><Text phrase='resourcesHeading' /></p>}\r\n {has(video.links) && <p className='font-weight-bold'><Text phrase='linksHeading' /></p>}\r\n {has(video.clips) && <p className='font-weight-bold'><Text phrase='clipsHeading' /></p>}\r\n {has(video.tags) && <p className='font-weight-bold'><Text phrase='tagsHeading' /></p>}\r\n </Col>\r\n\r\n <Col xs={10}>\r\n {has(video.resources) && <p><Text phrase='resources' options={{ smartCount: video.resources.data.length }} /></p>}\r\n {has(video.links) && <p><Text phrase='links' options={{ smartCount: video.links.data.length }} /></p>}\r\n {has(video.clips) && <p><Text phrase='clips' options={{ smartCount: video.clips.data.length }} /></p>}\r\n {has(video.tags) && <TagList tags={video.tags} />}\r\n </Col>\r\n </Row>\r\n }\r\n </Col>\r\n </Row>\r\n </LanguageNamespaceContext.Provider>\r\n );\r\n}\r\n\r\nexport function PartialHeroVideo(): JSX.Element {\r\n return (\r\n <>\r\n <div className={`partial-loading-background mb-2 ${styles.partialHeading}`} />\r\n <div className='row pb-3'>\r\n <div className='col-6 p1'>\r\n <div className={`${styles.partialHeroThumbnail} partial-loading-background`}></div>\r\n </div>\r\n <div className='col-6 p1'>\r\n <div className={`partial-loading-background mb-1 ${styles.partialSeriesText}`}></div>\r\n <div className={`partial-loading-background my-1 ${styles.partialVideoTitleText}`}></div>\r\n <div className='d-flex'>\r\n <div className={`partial-loading-background my-1 mr-1 ${styles.partialBadge}`}></div>\r\n <div className={`partial-loading-background my-1 ml-1 ${styles.partialBadge}`}></div>\r\n </div>\r\n <div className={`partial-loading-background my-1 ${styles.partialDescription}`}></div>\r\n <div className={`partial-loading-background mt-2 ${styles.partialSubject}`}></div>\r\n </div>\r\n </div>\r\n </>\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"partialHeroThumbnail\":\"cv--partialHeroThumbnail--mBd7D\",\"partialSeriesText\":\"cv--partialSeriesText--2MXtV\",\"partialVideoTitleText\":\"cv--partialVideoTitleText--3AoSO\",\"partialBadge\":\"cv--partialBadge--33OjS\",\"partialDescription\":\"cv--partialDescription--2uRQA\",\"partialSubject\":\"cv--partialSubject--3YJIE\",\"partialHeading\":\"cv--partialHeading--2UT-Z\"};","import * as React from 'react';\r\n\r\nimport { HashObject, ReducerActions } from 'libs/common/react/interfaces';\r\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\r\n\r\nimport { PresentationAudience } from 'libs/shared/interfaces';\r\nimport { AudienceActions } from 'libs/shared/apps/subjects/reducers/AudienceReducer';\r\n\r\n// Set initial state in some fashion\r\nconst SPACE_REGEX = /\\s|\\+/ig;\r\n\r\nfunction normalizeAudienceName(audienceName: string): string {\r\n if (!audienceName)\r\n return '';\r\n\r\n return audienceName.replace(SPACE_REGEX, '')\r\n .toLowerCase();\r\n}\r\n\r\nexport function useParseAudienceParams(\r\n params: HashObject,\r\n audiences: PresentationAudience[],\r\n dispatch: React.Dispatch<ReducerActions<AudienceActions>>,\r\n dependencies: any[] = []\r\n): void {\r\n\r\n React.useEffect(() => {\r\n if (!ObjectHelper.isObject(params) || ObjectHelper.isEmpty(params))\r\n return;\r\n\r\n if (!audiences || !audiences.length)\r\n return;\r\n\r\n // 'a' is shorthand for audience\r\n let { a } = params;\r\n\r\n if (!a)\r\n return;\r\n\r\n // Only a single query param was passed, we'll wrap it in an array \r\n if (typeof a === 'string')\r\n a = [a];\r\n\r\n // Build an audience lookup\r\n const audienceLookup = a.reduce((state: HashObject, audienceStr: string) => {\r\n state[normalizeAudienceName(audienceStr)] = audienceStr;\r\n return state;\r\n }, {});\r\n\r\n // Filter out our active audience based on whether their name matches the lookup object\r\n const activeAudiences = audiences.filter((audience: PresentationAudience) => {\r\n return audienceLookup[normalizeAudienceName(audience.name)];\r\n });\r\n\r\n dispatch({\r\n type: AudienceActions.Init,\r\n payload: activeAudiences\r\n });\r\n\r\n }, [...dependencies]);\r\n}\r\n","import { ReducerActions } from 'libs/common/react/interfaces';\r\nimport { PresentationAudience } from 'libs/shared/interfaces';\r\n\r\nexport enum AudienceActions {\r\n Init = 'init',\r\n Toggle = 'toggle'\r\n}\r\n\r\nexport interface ActiveAudiences {\r\n [audienceId: string]: PresentationAudience;\r\n}\r\n\r\nexport const InitialAudienceState: ActiveAudiences = {};\r\n\r\nfunction initSelectedAudiences(\r\n payload: any\r\n): ActiveAudiences {\r\n const selectedAudiences: PresentationAudience[] = payload;\r\n\r\n return selectedAudiences.reduce((state: ActiveAudiences, audience) => {\r\n state[audience.masterId] = audience;\r\n return state;\r\n }, {});\r\n}\r\n\r\nfunction toggleSelectedAudience (\r\n prevState: ActiveAudiences,\r\n payload: any\r\n): ActiveAudiences {\r\n const audience: PresentationAudience = payload.audience;\r\n const isSelected: boolean = payload.isSelected;\r\n\r\n if (!audience)\r\n return prevState;\r\n\r\n const id = audience.masterId;\r\n\r\n const newState = Object.assign({}, prevState);\r\n\r\n // We want to activate a filter\r\n if (isSelected) {\r\n\r\n // Only update if it's not already in the object\r\n if (!newState[id])\r\n newState[id] = audience;\r\n\r\n } else {\r\n // We want to remove an existing active filter\r\n delete newState[id];\r\n }\r\n\r\n return newState;\r\n}\r\n\r\nexport function AudienceReducer(\r\n prevState: ActiveAudiences,\r\n action: ReducerActions<AudienceActions>\r\n): ActiveAudiences {\r\n\r\n switch (action.type) {\r\n\r\n case AudienceActions.Init:\r\n return {\r\n ...prevState,\r\n ...initSelectedAudiences(action.payload)\r\n };\r\n\r\n case AudienceActions.Toggle:\r\n return {\r\n ...toggleSelectedAudience(prevState, action.payload)\r\n };\r\n\r\n default:\r\n return prevState;\r\n }\r\n}","import * as React from 'react';\r\n\r\nimport { Core } from 'libs/common/core';\r\nimport { HashObject } from 'libs/common/react/interfaces';\r\n\r\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\r\n\r\nimport { BaseObject } from 'libs/shared/interfaces';\r\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\r\n\r\nimport { ActionsDropdown } from './ActionsDropdown';\r\nimport { ActionButton } from './ActionButton';\r\n\r\nimport styles from './actions.scss';\r\n\r\nexport interface ActionOptions {\r\n label: string;\r\n appLink?: Core.AppLink;\r\n onClick?: (e: React.MouseEvent) => void;\r\n svgName?: string;\r\n className?: string;\r\n button?: boolean; // If true, a button will be rendered. Otherwise the action will be rendered in the dropdown.\r\n tooltip?: string;\r\n showSpinner?: boolean;\r\n analyticsData?: HashObject;\r\n analyticsOptions?: AnalyticsOptions;\r\n}\r\n\r\nexport type ActionGenerator = (obj: BaseObject) => ActionOptions[];\r\n\r\ninterface ActionsProps {\r\n actions: ActionOptions[];\r\n className?: string;\r\n actionsDropdownClassName?: string;\r\n sortComponent?: JSX.Element;\r\n}\r\n\r\nexport function Actions(props: ActionsProps): JSX.Element {\r\n const buttonActions: ActionOptions[] = [];\r\n const moreActions: ActionOptions[] = [];\r\n\r\n props.actions.forEach(a => {\r\n if (a.button)\r\n buttonActions.push(a);\r\n else\r\n moreActions.push(a);\r\n });\r\n\r\n let className = 'd-flex';\r\n\r\n if (props.className)\r\n className += ` ${props.className}`;\r\n\r\n return (\r\n <div className={className}>\r\n <>\r\n {!!buttonActions.length &&\r\n <span className={styles.buttonList}>\r\n {buttonActions.map((a, idx) => (\r\n <React.Fragment key={idx}>\r\n {a.label ? (\r\n <ActionButton\r\n appLink={a.appLink}\r\n onClick={a.onClick}\r\n svgName={a.svgName}\r\n className={a.className}\r\n tooltip={a.tooltip}\r\n showSpinner={a.showSpinner}\r\n analyticsData={a.analyticsData}\r\n analyticsOptions={a.analyticsOptions}\r\n >\r\n {a.label}\r\n </ActionButton>\r\n ) : (\r\n <IconButton\r\n appLink={a.appLink}\r\n onClick={a.onClick}\r\n svgName={a.svgName}\r\n className={a.className}\r\n analyticsData={a.analyticsData}\r\n analyticsOptions={a.analyticsOptions}\r\n />\r\n )}\r\n </React.Fragment>\r\n ))}\r\n </span>\r\n }\r\n {props.sortComponent ? props.sortComponent : '' }\r\n {!!moreActions.length &&\r\n <ActionsDropdown\r\n actions={moreActions}\r\n className={!!buttonActions.length && 'ml-2'}\r\n dropdownToggleClassName={props.actionsDropdownClassName}\r\n />\r\n }\r\n </>\r\n </div>\r\n );\r\n}","import * as React from 'react';\r\n\r\nimport { RandomHelper } from 'libs/common/react/utils/RandomHelper';\r\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\r\n\r\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\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\nimport styles from './actions.scss';\r\n\r\nimport { ActionOptions } from './Actions';\r\n\r\nfunction getDropdownItemClassName(actionClassName?: string): string {\r\n let className = 'dropdown-item';\r\n\r\n if (actionClassName)\r\n className += ` ${actionClassName}`;\r\n\r\n return className;\r\n}\r\n\r\ntype DropdownActionOptions = Omit<ActionOptions, 'button' | 'tooltip'>;\r\n\r\ninterface ActionsDropdownItemProps {\r\n action: DropdownActionOptions;\r\n}\r\n\r\nfunction ActionsDropdownItem(props: ActionsDropdownItemProps): React.ReactElement {\r\n if (props.action.appLink)\r\n return (\r\n <AppLink\r\n appLink={props.action.appLink}\r\n onClick={props.action.onClick}\r\n className={getDropdownItemClassName(props.action.className)}\r\n analyticsData={props.action.analyticsData}\r\n analyticsOptions={props.action.analyticsOptions}\r\n >\r\n {props.action.label}\r\n </AppLink>\r\n );\r\n\r\n function onClick(e: React.MouseEvent): void {\r\n if (props.action.analyticsData && props.action.analyticsOptions)\r\n AnalyticsHelper.logUserAction(props.action.analyticsData, props.action.analyticsOptions);\r\n\r\n if (FunctionHelper.isFunction(props.action.onClick))\r\n props.action.onClick(e);\r\n }\r\n\r\n return (\r\n <span\r\n className={`cursor-pointer ${getDropdownItemClassName(props.action.className)}`}\r\n onClick={onClick}\r\n >\r\n {props.action.label}\r\n </span>\r\n );\r\n}\r\n\r\ninterface ActionsDropdownProps {\r\n actions: DropdownActionOptions[];\r\n className?: string;\r\n dropdownToggleClassName?: string;\r\n}\r\n\r\nActionsDropdown.defaultProps = {\r\n dropdownToggleClassName: 'btn btn-light'\r\n};\r\n\r\nexport function ActionsDropdown(props: ActionsDropdownProps): React.ReactElement {\r\n if (!props.actions || !props.actions.length)\r\n return <></>;\r\n\r\n let className = 'dropdown';\r\n\r\n if (props.className)\r\n className += ` ${props.className}`;\r\n\r\n // Generate unique id to avoid collisions.\r\n const dropdownToggleId = `actions-dropdown-${RandomHelper.getRandomInt()}`;\r\n\r\n let dropdownToggleClassName = `dropdown-toggle px-0 ${styles.dropdownToggle}`;\r\n\r\n if (props.dropdownToggleClassName)\r\n dropdownToggleClassName += ` ${props.dropdownToggleClassName}`;\r\n\r\n return (\r\n <div className={className}>\r\n <button className={dropdownToggleClassName} type='button' id={dropdownToggleId} data-toggle='dropdown' aria-haspopup='true' aria-expanded='false'>\r\n <SvgContainer svgName={cvSvgLibrary.More} size={SvgContainerSize.Small} />\r\n </button>\r\n <div className='dropdown-menu dropdown-menu-right' aria-labelledby={dropdownToggleId}>\r\n {props.actions.map((a, idx) =>\r\n <ActionsDropdownItem key={idx} action={a} />\r\n )}\r\n </div>\r\n </div>\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"buttonList\":\"cv--buttonList--2v9CT\",\"dropdownToggle\":\"cv--dropdownToggle--AYBvQ\"};","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\nimport { Core } from 'libs/common/core';\r\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\r\n\r\nexport interface Breadcrumb {\r\n label: string;\r\n appLink: Core.AppLink;\r\n active?: boolean;\r\n}\r\n\r\ninterface BreadcrumbItemProps {\r\n breadcrumb: Breadcrumb;\r\n}\r\n\r\nexport const BreadcrumbItem = ({ breadcrumb: { label, appLink, active } }: BreadcrumbItemProps) => (\r\n <li className={`breadcrumb-item${active ? ' active' : ''}`}>\r\n {active\r\n ? <strong>{label}</strong>\r\n : <AppLink appLink={appLink}>{label}</AppLink>\r\n }\r\n </li>\r\n);\r\n\r\ninterface BreadcrumbListProps {\r\n breadcrumbs: Breadcrumb[];\r\n}\r\n\r\nexport const BreadcrumbList = ({ breadcrumbs }: BreadcrumbListProps) => (\r\n <ol className='breadcrumb m-0 p-0'>\r\n {breadcrumbs.map((b, idx) => <BreadcrumbItem key={idx} breadcrumb={b} />)}\r\n </ol>\r\n);","import * as React from 'react';\r\nimport { useState } from 'react';\r\n\r\nimport { Core } from 'libs/common/core';\r\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\r\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\r\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\r\n\r\nimport { BaseObject } from 'libs/shared/interfaces';\r\nimport { PartialLoadingHelper } from 'libs/shared/utils/PartialLoadingHelper';\r\n\r\nimport { Breadcrumb, BreadcrumbList } from './BreadcrumbList';\r\n\r\nexport enum BreadcrumbType {\r\n Static,\r\n Dynamic\r\n}\r\n\r\nfunction buildBreadcrumb<T extends BaseObject>(\r\n item: T, getItemAppLink: (item: T) => Core.AppLink, active?: boolean\r\n): Breadcrumb {\r\n return ({\r\n label: item.name,\r\n appLink: getItemAppLink(item),\r\n active\r\n });\r\n}\r\n\r\nfunction useGetBreadcrumbs<T extends BaseObject>(props: BreadcrumbsProps<T>, isDynamic: boolean): Breadcrumb[] {\r\n let { currentItem } = props;\r\n const { getItemAppLink, getParent, rootItem, data, subview } = props;\r\n\r\n const [ breadcrumbs, setBreadcrumbs ] = useState<Breadcrumb[]>([]);\r\n\r\n const key = data?.map(o => o?.name).join('-');\r\n\r\n // Uss static/pre-defined array of data to build the breadcrumb structure\r\n React.useEffect(() => {\r\n if (isDynamic || ObjectHelper.isEmpty(data))\r\n return;\r\n\r\n const _breadcrumbs = data.map((d, index: number) => buildBreadcrumb(d, getItemAppLink, index + 1 === data.length));\r\n\r\n if (rootItem)\r\n _breadcrumbs.unshift(rootItem);\r\n\r\n setBreadcrumbs(_breadcrumbs);\r\n\r\n }, [key]);\r\n\r\n\r\n // Dynamically build the breadcrumb structure\r\n React.useEffect(() => {\r\n if (!isDynamic || !FunctionHelper.isFunction(getParent))\r\n return;\r\n\r\n const _breadcrumbs = [buildBreadcrumb<T>(currentItem, getItemAppLink, true)];\r\n\r\n currentItem = getParent(currentItem);\r\n\r\n while (currentItem) {\r\n _breadcrumbs.unshift(buildBreadcrumb<T>(currentItem, getItemAppLink));\r\n currentItem = getParent(currentItem);\r\n }\r\n\r\n if (rootItem)\r\n _breadcrumbs.unshift(rootItem);\r\n\r\n return setBreadcrumbs(_breadcrumbs);\r\n\r\n }, [ currentItem, getParent, getItemAppLink, rootItem ]);\r\n\r\n const { current: subviewBreadcrumb } = React.useRef<Breadcrumb>({\r\n label: subview,\r\n appLink: null,\r\n active: true\r\n });\r\n\r\n // Replace \"active\" item with the subview\r\n if (subview) {\r\n if (!breadcrumbs.includes(subviewBreadcrumb))\r\n setBreadcrumbs([ ...breadcrumbs, subviewBreadcrumb ]);\r\n\r\n const selectedBreadcrumb = breadcrumbs.filter((crumb => crumb.active && crumb !== subviewBreadcrumb));\r\n if (selectedBreadcrumb.length)\r\n ArrayHelper.first(selectedBreadcrumb).active = false;\r\n }\r\n\r\n return breadcrumbs;\r\n}\r\n\r\ninterface BreadcrumbsProps<T> {\r\n type: BreadcrumbType;\r\n currentItem: T;\r\n getItemAppLink: (item: T) => Core.AppLink;\r\n getParent?: (item: T) => T;\r\n rootItem?: Breadcrumb;\r\n data?: T[];\r\n subview?: string; // E.g. \"Series\", \"Playlists\"\r\n}\r\n\r\nexport function Breadcrumbs<T extends BaseObject>(props: BreadcrumbsProps<T>): React.ReactElement {\r\n const { type } = props;\r\n\r\n const isDynamic = type === BreadcrumbType.Dynamic;\r\n const breadcrumbs = useGetBreadcrumbs(props, isDynamic);\r\n\r\n return (\r\n <nav aria-label='breadcrumb'>\r\n <BreadcrumbList breadcrumbs={breadcrumbs} />\r\n </nav>\r\n );\r\n}\r\n\r\nexport const PartialBreadcrumbs = ({ numItems = 3 }: { numItems?: number; }) => (\r\n <nav aria-label='breadcrumb'>\r\n <ol className='breadcrumb m-0 p-0'>\r\n {PartialLoadingHelper.getPartialLoadingItems({ numItems }).map(({ width }, idx) =>\r\n <li key={idx} className='breadcrumb-item'>\r\n <span className='d-inline-block partial-loading-background' style={{ width }} dangerouslySetInnerHTML={{ __html: ' ' }} />\r\n </li>\r\n )}\r\n </ol>\r\n </nav>\r\n);","import React from 'react';\r\n\r\nimport { Core } from 'libs/common/core';\r\nimport { Tag } from 'libs/shared/interfaces';\r\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\r\n\r\nimport styles from './tags.scss';\r\n\r\ninterface TagItemProps {\r\n tag: Tag;\r\n appLink?: Core.AppLink;\r\n disabled?: boolean;\r\n}\r\n\r\nexport function TagItem({ tag, appLink, disabled }: TagItemProps): JSX.Element {\r\n let classNames = 'badge-pill tag py-1 px-2 my-1 mr-1';\r\n\r\n if (appLink && !disabled)\r\n classNames += ' cursor-pointer';\r\n\r\n if (disabled)\r\n classNames += ' ' + styles.disabled;\r\n\r\n return appLink\r\n ? <AppLink appLink={appLink} className={classNames}>{tag.name}</AppLink>\r\n : <span className={classNames}>{tag.name}</span>;\r\n}","import React from 'react';\r\n\r\nimport { Core } from 'libs/common/core';\r\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\r\nimport { TagCollection, Tag } from 'libs/shared/interfaces';\r\nimport { TagItem } from 'libs/shared/components/tags/TagItem';\r\n\r\nimport styles from './tags.scss';\r\n\r\ninterface TagListProps {\r\n tags: TagCollection;\r\n getAppLink?: (tag: Tag) => Core.AppLink;\r\n}\r\n\r\nexport function TagList({ tags, getAppLink }: TagListProps): JSX.Element {\r\n if (!tags || !tags.data)\r\n return <></>;\r\n\r\n return (\r\n <div className={styles.tagList}>\r\n {tags.data.map((tag: Tag) => {\r\n const appLink = FunctionHelper.isFunction(getAppLink) ? getAppLink(tag) : null;\r\n\r\n return <TagItem key={tag.id} tag={tag} appLink={appLink} />;\r\n })}\r\n </div>\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"tagList\":\"cv--tagList--yvetE\",\"disabled\":\"cv--disabled--3ZfKv\"};","export * from './FixedWidget';\r\nexport * from './FixedWidgetReducer';\r\nexport * from './PartialFixedWidget';","import * as React from 'react';\r\n\r\nimport { Core } from 'libs/common/core';\r\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\r\n\r\nimport { useHoverIntent } from 'libs/shared/hooks/UseHover';\r\nimport { Series, PresentationAudience } from 'libs/shared/interfaces';\r\nimport { AudienceHelper } from 'libs/shared/utils/AudienceHelper';\r\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\r\nimport { BaseThumbnail, AspectRatio } from 'libs/shared/components/thumbnails/base/BaseThumbnail';\r\nimport { ThumbnailFallback, ThumbnailFallbackType } from 'libs/shared/components/thumbnails/base/ThumbnailFallback';\r\nimport { AudienceLabel } from 'libs/shared/components/audience-label/AudienceLabel';\r\nimport { BadgeType, Badge } from 'libs/shared/components/badges/Badge';\r\nimport { ImageSize } from 'libs/shared/enums/Images';\r\n\r\nimport { AnalyticsOptions, ClickDescriptor, EntityType, HashObject, UserAction } from 'libs/analytics/interfaces';\r\n\r\nimport styles from './series-widget-item.scss';\r\n\r\nexport interface SeriesWidgetItemProps {\r\n data: Series;\r\n appLink: Core.AppLink;\r\n audiences: PresentationAudience[];\r\n preloadImage?: boolean;\r\n analyticsData?: HashObject;\r\n analyticsOptions?: AnalyticsOptions;\r\n}\r\n\r\nexport function SeriesWidgetItem(props : SeriesWidgetItemProps): JSX.Element {\r\n const { data: series, appLink, preloadImage } = props;\r\n\r\n const seriesAppLink: Core.AppLink = {\r\n ...appLink,\r\n args: [ series.id, TextHelper.slugify(series.name) ]\r\n };\r\n\r\n /**\r\n * Subject audiences currently take render precedence over rating.\r\n * \r\n * This means that until we properly add productionCompanies to series, we\r\n * should expect only CV series to have a subject audience. Any TV series\r\n * from the Exchange should only have a rating. \r\n */\r\n\r\n const audiences = series && series.subjectPresentationAudiences &&\r\n series.subjectPresentationAudiences.data || [];\r\n\r\n const filteredAudiences = AudienceHelper.getSortedPresentationAudiences(audiences, props.audiences);\r\n const mergedAudience = AudienceHelper.getMergedPresentationAudienceString(filteredAudiences);\r\n\r\n const [ hoverRef, isHovering ] = useHoverIntent<HTMLDivElement>(styles.hoverActive);\r\n\r\n const analyticsData = { ...props.analyticsData,\r\n id: series?.id,\r\n name: series?.name\r\n };\r\n\r\n const analyticsOptions = { ...props.analyticsOptions,\r\n actionType: UserAction.Click,\r\n entity: EntityType.Series,\r\n descriptor: ClickDescriptor.TallPoster\r\n };\r\n\r\n return (\r\n <AppLink\r\n key={series.id}\r\n appLink={seriesAppLink}\r\n className={`position-relative p-1 flex-shrink-0 ${styles.width}`}\r\n analyticsData={analyticsData}\r\n analyticsOptions={analyticsOptions}\r\n >\r\n <div ref={hoverRef}>\r\n {isHovering &&\r\n <div className={`p-3 text-white text-center ${styles.mask}`}>\r\n <h3 className='h4'>{series.name}</h3>\r\n <p>{series.description}</p>\r\n </div>\r\n }\r\n <BaseThumbnail\r\n data={series.tallPoster}\r\n aspectRatio={AspectRatio.NineBySixteen}\r\n preload={preloadImage}\r\n imageOptions={{ size: ImageSize.Large }}\r\n >\r\n <ThumbnailFallback type={ThumbnailFallbackType.Series} />\r\n <div className={`position-absolute text-white ${styles.labelContainer}`}>\r\n {!!audiences && audiences.length\r\n ? <AudienceLabel audience={ mergedAudience } border='white' />\r\n : <Badge type={BadgeType.Rating} data={series.rating} />\r\n }\r\n </div>\r\n </BaseThumbnail>\r\n </div>\r\n </AppLink>\r\n );\r\n}","export * from './SeriesWidgetItem';\r\nexport * from './PartialSeriesList';","// extracted by mini-css-extract-plugin\nmodule.exports = {\"partialLoadingHeading\":\"cv--partialLoadingHeading--1RLPq\",\"partialLoading\":\"cv--partialLoading--oArG4\",\"labelContainer\":\"cv--labelContainer--QLCgm\",\"hoverActive\":\"cv--hoverActive--3Aleb\",\"mask\":\"cv--mask--2M2Zz\",\"width\":\"cv--width--TQg2K\"};","import * as React from 'react';\r\nimport { Core } from 'libs/common/core';\r\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\r\n\r\nimport { WidgetContext, Video, WidgetType } from 'libs/shared/interfaces';\r\nimport { ThumbnailTextPosition } from 'libs/shared/enums/ThumbnailTextPosition';\r\nimport { VideoThumbnail } from 'libs/shared/components/thumbnails/video/VideoThumbnail';\r\nimport { useHoverIntent } from 'libs/shared/hooks/UseHover';\r\nimport { ImageSize } from 'libs/shared/enums/Images';\r\n\r\nimport { AnalyticsOptions, HashObject } from 'libs/analytics/interfaces';\r\n\r\nimport styles from './video-widget-item.scss';\r\n\r\ninterface VideoWidgetItemProps {\r\n data: Video;\r\n appLink: Core.AppLink;\r\n seriesAppLink: Core.AppLink;\r\n context: WidgetContext;\r\n thumbnailSize: ImageSize;\r\n onHover: (isHovering: boolean) => void;\r\n preloadImage?: boolean;\r\n analyticsData?: HashObject;\r\n analyticsOptions?: AnalyticsOptions;\r\n hideFavouriteButton?: boolean;\r\n setFavourite?: (video: Video, shouldFavourite: boolean, onError?: () => void) => void;\r\n}\r\n\r\nexport const VideoWidgetItem = React.memo(function(props : VideoWidgetItemProps): JSX.Element {\r\n const { data: video, appLink, seriesAppLink, context, thumbnailSize, preloadImage } = props;\r\n\r\n const [ ref, isHovering ] = useHoverIntent<HTMLDivElement>(styles.hovering);\r\n\r\n React.useEffect(() => {\r\n props.onHover(isHovering);\r\n }, [isHovering]);\r\n\r\n const videoAppLink: Core.AppLink = {\r\n ...appLink,\r\n args: [ video.id, TextHelper.slugify(video.name) ]\r\n };\r\n\r\n let width = styles.rowWidth;\r\n\r\n if (context.type === WidgetType.LargeRow || context.collectionSize === 3)\r\n width = styles.largeRowWidth;\r\n\r\n return (\r\n <div ref={ref} className={`p-1 flex-shrink-0 position-relative ${width} ${styles.transition}`}>\r\n <VideoThumbnail\r\n video={video}\r\n type='expandable'\r\n appLink={videoAppLink}\r\n seriesAppLink={seriesAppLink}\r\n textPosition={ThumbnailTextPosition.Overlay}\r\n imageOptions={{ size: thumbnailSize }}\r\n preload={preloadImage}\r\n hovering={isHovering}\r\n analyticsData={props.analyticsData}\r\n analyticsOptions={props.analyticsOptions}\r\n hideFavouriteButton={props.hideFavouriteButton}\r\n setFavourite={props.setFavourite}\r\n />\r\n </div>\r\n );\r\n}, (prevProps, nextProps): boolean => {\r\n return prevProps.preloadImage === nextProps.preloadImage\r\n && prevProps.data?.name === nextProps.data?.name\r\n && prevProps.data?.series?.id === nextProps.data?.series?.id\r\n && prevProps.onHover === nextProps.onHover;\r\n});","// extracted by mini-css-extract-plugin\nmodule.exports = {\"rowWidth\":\"cv--rowWidth--8IgrO\",\"largeRowWidth\":\"cv--largeRowWidth--q46rm\",\"hovering\":\"cv--hovering--IeeJA\",\"transition\":\"cv--transition--1s6UK\"};","import { Flight } from 'libs/common/flight';\r\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\r\nimport { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\r\n\r\nconst endpoints = {\r\n follow: () => `/api/domain/v1/subjects/classifications/following`,\r\n unfollow: (ids: string[]) => UrlHelper.urlBuilder('/api/domain/v1/subjects/classifications/following', { id: ids })\r\n};\r\n\r\nexport const FollowRequests = {\r\n /**\r\n * @param data - array of object ids the user is going to follow\r\n */\r\n follow(ids: string[], success?: (data: string[]) => void, error?: () => void): Flight.Request {\r\n return {\r\n url: endpoints.follow(),\r\n key: `follow:${ids.join(',')}`,\r\n type: HttpVerbs.POST,\r\n data: ids,\r\n success,\r\n error,\r\n invalidationKeys: [ ...ids.map(id => `classification:${id}`), 'my:subject:preferences', 'classifications' ]\r\n };\r\n },\r\n\r\n unfollow(ids: string[], success?: () => void, error?: () => void): Flight.Request {\r\n return {\r\n url: endpoints.unfollow(ids),\r\n key: `unfollow:${ids.join(',')}`,\r\n type: HttpVerbs.DELETE,\r\n success,\r\n error,\r\n invalidationKeys: [ ...ids.map(id => `classification:${id}`), 'my:subject:preferences', 'classifications' ]\r\n };\r\n }\r\n};\r\n","import * as React from 'react';\r\nimport { Core } from 'libs/common/core';\r\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\r\n\r\nfunction isValidAppLink(appLink: Core.AppLink, isValid?: () => boolean): boolean {\r\n if (!appLink)\r\n return false;\r\n\r\n if (!appLink.application || !appLink.action)\r\n return false;\r\n\r\n if (!isValid())\r\n return false;\r\n\r\n return true;\r\n}\r\n\r\nexport interface QueryStringOptions {\r\n appLink: Core.AppLink;\r\n paramBuilder: (...args: any[]) => HashObject;\r\n isValid?: (...args: any[]) => boolean;\r\n appLinkOptions?: Core.AppLinkOptions;\r\n}\r\n\r\nexport function useSetQueryString(\r\n queryOptions: QueryStringOptions,\r\n dependencies: any[] = []\r\n): void {\r\n React.useEffect(() => {\r\n const { appLink, paramBuilder, isValid, appLinkOptions } = queryOptions;\r\n\r\n if (!isValidAppLink(appLink, isValid))\r\n return;\r\n\r\n appLink.params = paramBuilder();\r\n\r\n Core.AppLinkHelper.trigger(appLink, appLinkOptions);\r\n\r\n }, [...dependencies]);\r\n}","const DEFAULT_NUM_ITEMS = 5;\r\nconst DEFAULT_MIN_WIDTH = 50; // px\r\nconst DEFAULT_MAX_WIDTH = 100; // px\r\n\r\ninterface PartialLoadingOptions {\r\n numItems?: number;\r\n minWidth?: number;\r\n maxWidth?: number;\r\n}\r\n\r\ninterface PartialLoadingItem {\r\n width: string;\r\n}\r\n\r\nexport const PartialLoadingHelper = {\r\n getPartialLoadingItems(options: PartialLoadingOptions = {}): PartialLoadingItem[] {\r\n const {\r\n numItems = DEFAULT_NUM_ITEMS,\r\n minWidth = DEFAULT_MIN_WIDTH,\r\n maxWidth = DEFAULT_MAX_WIDTH\r\n } = options;\r\n\r\n const getRandomFilterWidth = () => Math.max(Math.floor(Math.random() * maxWidth), minWidth);\r\n\r\n return [...Array(numItems)].map(() => ({ width: `${getRandomFilterWidth()}px` }));\r\n }\r\n};","import { Core } from 'libs/common/core';\r\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\r\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\r\nimport { Classification, Playlist } from 'libs/shared/interfaces';\r\n\r\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\r\nimport { Actions } from 'shared/constants/LiteActions';\r\n\r\nexport const getClassificationAppLink = (params?: HashObject) =>\r\n (classification?: Classification): Core.AppLink => ({\r\n application: AppChannels.SUBJECT,\r\n action: Actions.Subjects.CLASSIFICATION,\r\n args: classification ? [ classification.id, TextHelper.slugify(classification.name) ] : [],\r\n params: params ? params : {}\r\n });\r\n\r\nexport const getPlaylistAppLink = (playlist: Playlist): Core.AppLink => ({\r\n application: AppChannels.PLAYLISTS,\r\n action: Actions.Playlists.PLAYLIST,\r\n args: [ playlist.id, TextHelper.slugify(playlist.name) ]\r\n});\r\n\r\nexport const getDashboardAppLink = (): Core.AppLink => ({\r\n application: AppChannels.DASHBOARD,\r\n action: Actions.Dashboard.HOME\r\n});","import * as React from 'react';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { Core } from 'libs/common/core';\r\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\r\nimport { Flight } from 'libs/common/flight';\r\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\r\nimport { Xhr } from 'libs/common/backbone/interfaces';\r\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\r\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\r\nimport { useSetPageTitle } from 'libs/common/react/hooks/UseSetPageTitle';\r\n\r\nimport { WidgetType, SeriesCollection, Classification, Config, PresentationAudience, VideoCollection, PlaylistCollection, CurrentUser, Presentation } from 'libs/shared/interfaces';\r\nimport { BannerHeader, PartialBannerHeader } from 'libs/shared/components/banner-header/BannerHeader';\r\nimport { Breadcrumbs, PartialBreadcrumbs, BreadcrumbType } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\r\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\r\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\r\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\r\nimport { ClassificationRequests } from 'libs/shared/flight-requests/ClassificationRequests';\r\nimport { FollowRequests } from 'libs/shared/flight-requests/FollowRequests';\r\nimport { AudienceRequests } from 'libs/shared/flight-requests/AudienceRequests';\r\nimport { WidgetContents } from 'libs/shared/enums/WidgetContents';\r\nimport { useSetQueryString } from 'libs/shared/hooks/useQueryString';\r\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\r\nimport { PlaylistList, PartialPlaylistList } from 'libs/shared/apps/playlists/components/playlist-list';\r\nimport { useParseAudienceParams } from 'libs/shared/apps/subjects/hooks/useAudienceParams';\r\nimport { AudienceReducer } from 'libs/shared/apps/subjects/reducers/AudienceReducer';\r\nimport { AudienceFilter, PartialAudienceFilter } from 'libs/shared/apps/subjects/components/audience-filter/AudienceFilter';\r\nimport { ComingSoon } from 'libs/shared/apps/subjects/components/coming-soon/ComingSoon';\r\nimport { ClassificationList } from 'libs/shared/apps/subjects/components/classification-list/ClassificationList';\r\nimport { HeroVideo, PartialHeroVideo } from 'libs/shared/apps/subjects/components/hero-video/HeroVideo';\r\nimport { PartialFixedWidget, FixedWidget } from 'libs/shared/components/widgets/fixed-widget';\r\nimport { DynamicWidget, PartialDynamicWidget } from 'libs/shared/components/widgets/dynamic-widget/DynamicWidget';\r\nimport { VideoWidgetItem } from 'libs/shared/components/widgets/items/video-widget-item/VideoWidgetItem';\r\nimport { SubjectWidgetItem } from 'libs/shared/components/widgets/items/subject-widget-item/SubjectWidgetItem';\r\nimport { SeriesWidgetItem, SeriesWidgetItemProps, PartialSeriesList } from 'libs/shared/components/widgets/items/series-widget-item';\r\nimport { AudienceHelper } from 'libs/shared/utils/AudienceHelper';\r\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\r\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\r\n\r\nimport { Actions } from 'shared/constants/LiteActions';\r\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\r\nimport { NotFoundError } from 'shared/errors/general/not-found/LiteNotFoundError';\r\n\r\nimport { getClassificationAppLink, getDashboardAppLink, getPlaylistAppLink } from 'apps/subjects/utils/ClassificationAppLinks';\r\n\r\nimport { extractHeroVideo, hasMembers } from './ClassificationViewUtils';\r\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\r\n\r\nconst getPhrase = LanguageService.encloseNamespace('subjects.classification');\r\n\r\nexport function getBannerActions(\r\n classification: Classification,\r\n onFollow: () => void,\r\n showFollowButtonSpinner: boolean,\r\n hasPermissions: (perm: PermissionName) => boolean\r\n): ActionOptions[] {\r\n const isFollowing = !!classification.followers?.data?.length;\r\n\r\n const actions: ActionOptions[] = [{\r\n label: getPhrase('share'),\r\n appLink: {\r\n application: AppChannels.SHARE,\r\n action: Actions.Share.SHARE,\r\n args: [classification.id],\r\n params: {\r\n entityType: 'subject'\r\n }\r\n },\r\n svgName: cvSvgLibrary.Share,\r\n className: 'btn btn-secondary',\r\n button: true\r\n }];\r\n\r\n if (hasPermissions(PermissionName.FollowSubjects)) {\r\n actions.unshift({\r\n label: getPhrase(isFollowing ? 'unfollow' : 'follow'),\r\n onClick: onFollow,\r\n svgName: cvSvgLibrary.Bell,\r\n className: `btn follow-btn ${isFollowing ? 'btn-primary' : 'btn-secondary'}`,\r\n button: true,\r\n tooltip: isFollowing ? undefined : getPhrase('followBtnTooltip'),\r\n showSpinner: showFollowButtonSpinner\r\n });\r\n }\r\n\r\n return actions;\r\n}\r\n\r\ninterface ClassificationViewProps {\r\n id: string;\r\n queryParams?: HashObject;\r\n}\r\n\r\nexport function ClassificationView({ id, queryParams }: ClassificationViewProps): React.ReactElement {\r\n const [ activeAudiences, audienceDispatch ] = React.useReducer(AudienceReducer, {});\r\n const [ showFollowButtonSpinner, setShowFollowButtonSpinner ] = React.useState<boolean>();\r\n const [ enableAudienceFilters, setEnableAudienceFilters ] = React.useState(false);\r\n\r\n const dispatch = useDispatch();\r\n const { hasPermissions } = usePermissions();\r\n\r\n const onClassificationError = (xhr: Xhr) => {\r\n // TODO: When Kev fixes domain to 404 instead of 400, remove the BadRequest here\r\n if (xhr.status === HttpStatus.BadRequest || xhr.status === HttpStatus.NotFound)\r\n Core.ErrorHelper.throw(new NotFoundError());\r\n };\r\n\r\n /**\r\n * Data fetching\r\n */\r\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser(), { optimize: true });\r\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config(), { optimize: true });\r\n const presentation = Flight.useBasicFetch<Presentation>(ClassificationRequests.presentation(), { optimize: true });\r\n const audiences = Flight.useBasicFetch<PresentationAudience[]>(\r\n AudienceRequests.presentationAudiences(), { optimize: true });\r\n const classification = Flight.useBasicFetch<Classification>(currentUser.data?.id &&\r\n ClassificationRequests.classification(id, currentUser.data?.id, onClassificationError), { optimize: true });\r\n const path = Flight.useBasicFetch<Classification[]>(ClassificationRequests.path(id), { optimize: true });\r\n const children = Flight.useBasicFetch<Classification[]>(ClassificationRequests.children(id), { optimize: true });\r\n\r\n useSetPageTitle(classification.data?.name);\r\n\r\n /**\r\n * We use the current active audiences to re-fetch content for that specific audience set.\r\n */\r\n let activeAudienceIds = ObjectHelper.keys(activeAudiences);\r\n const activeAudienceValues = ObjectHelper.values(activeAudiences);\r\n\r\n /**\r\n * Where we have no active audiences, we want to implicitly set the active audiences to be all audiences.\r\n * This ensure that we only fetch data that is relevant to the user's current audience set.\r\n */\r\n if (!activeAudienceIds || !activeAudienceIds.length)\r\n activeAudienceIds = [];\r\n\r\n const presentationId = presentation?.data?.id;\r\n\r\n const seriesRequest = ClassificationRequests.series(id, presentationId, activeAudienceIds);\r\n const playlistsRequest = ClassificationRequests.playlists(id, presentationId, activeAudienceIds);\r\n const videosRequest = ClassificationRequests.videos(id, presentationId, activeAudienceIds);\r\n\r\n const series = Flight.useGetResponse<SeriesCollection>(seriesRequest && seriesRequest.key);\r\n const playlists = Flight.useGetResponse<PlaylistCollection>(playlistsRequest && playlistsRequest.key);\r\n const videos = Flight.useGetResponse<VideoCollection>(videosRequest && videosRequest.key);\r\n\r\n const fetchSeries = Flight.useGetFetch(seriesRequest);\r\n const fetchPlaylists = Flight.useGetFetch(playlistsRequest);\r\n const fetchVideos = Flight.useGetFetch(videosRequest);\r\n\r\n const fetchKey = activeAudienceIds.length ? activeAudienceIds.join(':') : presentationId;\r\n\r\n /**\r\n * Only fire off fetches where our fetchKey differs to the previous render (after modifying a filter).\r\n */\r\n React.useEffect(() => {\r\n if (!presentationId)\r\n return;\r\n\r\n fetchSeries();\r\n fetchPlaylists();\r\n fetchVideos();\r\n\r\n }, [fetchKey]);\r\n\r\n React.useEffect(() => {\r\n if (enableAudienceFilters)\r\n return;\r\n\r\n if (!classification.data) {\r\n setEnableAudienceFilters(false);\r\n return;\r\n }\r\n\r\n setEnableAudienceFilters(\r\n !!classification.data.series.count\r\n || !!classification.data.playlists.count\r\n || !!classification.data.videos.count\r\n );\r\n }, [classification.data]);\r\n\r\n /**\r\n * Following\r\n */\r\n function onToggleFollow(): void {\r\n setShowFollowButtonSpinner(true);\r\n\r\n const request = classification.data.followers?.data?.length\r\n ? FollowRequests.unfollow\r\n : FollowRequests.follow;\r\n\r\n Flight.fetch(dispatch, request([classification.data.id]));\r\n }\r\n\r\n React.useEffect(() => {\r\n setShowFollowButtonSpinner(false);\r\n }, [classification.data?.followers?.data?.length]);\r\n\r\n /**\r\n * Where our selected presentation audiences change, always update the URL \r\n */\r\n useSetQueryString({\r\n appLink: getClassificationAppLink()(classification.data),\r\n paramBuilder: () => ({ a: activeAudienceValues.map(v => v.name) }),\r\n isValid: () => !!(classification.data?.id),\r\n appLinkOptions: { replace: true }\r\n }, [activeAudienceValues.length]);\r\n\r\n /**\r\n * On page load, we will parse the querystring and automatically\r\n * select any applicable presentation audiences. This should only be performed\r\n * once we have access to the audience data for the selected classification.\r\n */\r\n const shouldParseParams = !!(audiences.data && audiences.data.length);\r\n useParseAudienceParams(queryParams, audiences.data, audienceDispatch, [shouldParseParams]);\r\n\r\n /**\r\n * Render Variables\r\n */\r\n const bannerDataLoaded = !!classification.data && !!config.data;\r\n const breadcrumbsDataLoaded = !!classification.data && !!path.data;\r\n const childrenDataLoaded = !!children.data;\r\n const audienceDataLoaded = !!audiences.data;\r\n const playlistsDataLoaded = !!classification.data && !!playlists.data;\r\n const videosDataLoaded = !!classification.data && !!videos.data;\r\n const seriesDataLoaded = !!classification.data && !!series.data && !!audiences.data;\r\n\r\n /**\r\n * Hero Video logic\r\n */\r\n const { heroVideo, videoList } = extractHeroVideo(series.data, playlists.data, videos.data, classification.data);\r\n\r\n return (\r\n <div className='bg-white px-3'>\r\n {bannerDataLoaded\r\n ? (\r\n <BannerHeader\r\n heading={classification.data.name}\r\n banner={classification.data.banner}\r\n imageCdnUrl={config.data.imageCdnUrl}\r\n actions={!classification.data?.comingSoon\r\n ? getBannerActions(\r\n classification.data,\r\n onToggleFollow,\r\n showFollowButtonSpinner,\r\n hasPermissions\r\n )\r\n : []\r\n }\r\n />\r\n ) : <PartialBannerHeader />\r\n }\r\n <div className='px-3'>\r\n <div className={`py-3 mb-3 ${(!classification.data?.comingSoon) ? 'border-bottom' : ''}`}>\r\n {breadcrumbsDataLoaded\r\n ? (\r\n <Breadcrumbs\r\n currentItem={classification.data}\r\n type={BreadcrumbType.Static}\r\n getItemAppLink={getClassificationAppLink()}\r\n data={path.data}\r\n rootItem={{ label: getPhrase('dashboard'), appLink: getDashboardAppLink() }}\r\n />\r\n ) : <PartialBreadcrumbs />\r\n }\r\n {!classification.data?.comingSoon && (\r\n (audienceDataLoaded && playlistsDataLoaded && seriesDataLoaded && videosDataLoaded)\r\n ? (\r\n <AudienceFilter\r\n audiences={audiences.data}\r\n activeAudiences={activeAudiences}\r\n setAudience={audienceDispatch}\r\n disabled={!enableAudienceFilters}\r\n />\r\n ) : <PartialAudienceFilter />\r\n )}\r\n </div>\r\n </div>\r\n {(!!config.data && !!classification.data?.comingSoon)\r\n ? (\r\n <ComingSoon\r\n data={classification.data}\r\n imageCdnUrl={config.data.imageCdnUrl}\r\n onToggleFollow={onToggleFollow}\r\n hideFollowButton={!hasPermissions(PermissionName.FollowSubjects)}\r\n />\r\n ) : (\r\n <div className='overflow-hidden-x px-4'>\r\n {(() => {\r\n if (!childrenDataLoaded || !playlistsDataLoaded || !seriesDataLoaded || !videosDataLoaded)\r\n return <PartialDynamicWidget />;\r\n\r\n if (!children.data?.length)\r\n return <></>;\r\n\r\n if (hasMembers(playlists.data, series.data, videos.data) || heroVideo) {\r\n return (\r\n <div className='pb-3 mx-n1'>\r\n <DynamicWidget\r\n collection={children.data}\r\n childAppLink={getClassificationAppLink()()}\r\n childComponent={SubjectWidgetItem}\r\n headingPhraseKey='topics'\r\n />\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <div className='mx-n2'>\r\n <ClassificationList\r\n classifications={children.data}\r\n getItemAppLink={getClassificationAppLink()}\r\n />\r\n </div>\r\n );\r\n })()}\r\n\r\n {(seriesDataLoaded && playlistsDataLoaded && videosDataLoaded && audienceDataLoaded)\r\n ? (\r\n <HeroVideo\r\n video={heroVideo}\r\n presentationAudiences={audiences.data}\r\n videoAppLink={{\r\n application: AppChannels.DEFAULT,\r\n action: Actions.Default.PLAY_VIDEO,\r\n args: [ heroVideo?.id, TextHelper.slugify(heroVideo?.name) ],\r\n params: VideoHelper.getVideoProgress(heroVideo) ?\r\n { t: Math.floor(VideoHelper.getVideoProgress(heroVideo)) } : {}\r\n }}\r\n seriesAppLink={{\r\n application: AppChannels.DEFAULT,\r\n action: Actions.Default.SERIES,\r\n args: heroVideo?.series ? [ heroVideo.series.id, TextHelper.slugify(heroVideo.series.name) ] : []\r\n }}\r\n />\r\n ) : <PartialHeroVideo />\r\n }\r\n\r\n <div>\r\n {(() => {\r\n if (!playlistsDataLoaded || !audienceDataLoaded)\r\n return <div className='pb-3'><PartialPlaylistList showHeading itemClassName='columns-of-five' /></div>;\r\n\r\n if (!playlists.data?.data?.length)\r\n return <></>;\r\n\r\n return (\r\n <div className='pb-2'>\r\n <h4>{getPhrase('playlists')}</h4>\r\n <PlaylistList\r\n playlists={AudienceHelper.sortMembersWithDuplicateNamesByAudience(playlists.data.data)}\r\n getPlaylistAppLink={getPlaylistAppLink}\r\n presentationAudiences={audiences.data}\r\n itemContainerClassName='columns-of-five'\r\n showFallbackImage\r\n />\r\n </div>\r\n );\r\n })()}\r\n\r\n {videosDataLoaded\r\n ? (\r\n <FixedWidget\r\n name={getPhrase('popular')}\r\n type={WidgetType.LargeRow}\r\n contents={WidgetContents.Videos}\r\n collection={videoList}\r\n childComponent={VideoWidgetItem}\r\n childAppLink={{\r\n application: AppChannels.DEFAULT,\r\n action: Actions.Default.PLAY_VIDEO\r\n }}\r\n prefetched\r\n />\r\n ) : <PartialFixedWidget />\r\n }\r\n\r\n {seriesDataLoaded\r\n ? (\r\n <FixedWidget\r\n name={getPhrase('series')}\r\n type={WidgetType.Row}\r\n contents={WidgetContents.Series}\r\n collection={series.data}\r\n setData={(seriesCollection: SeriesCollection) => seriesCollection.data}\r\n childComponent={(props: SeriesWidgetItemProps) =>\r\n <SeriesWidgetItem audiences={audiences.data} {...props} />\r\n }\r\n childAppLink={{ application: AppChannels.DEFAULT, action: Actions.Default.SERIES }}\r\n prefetched\r\n />\r\n ) : <PartialSeriesList />\r\n }\r\n </div>\r\n </div>\r\n )\r\n }\r\n </div>\r\n );\r\n}","import { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\r\nimport { PlaylistCollection, BasePaginatedCollection, BaseObject, Video, SeriesCollection, VideoCollection, Classification } from 'libs/shared/interfaces';\r\n\r\n/**\r\n * Member helpers\r\n */\r\n\r\nexport function hasMembers(\r\n playlists: PlaylistCollection, ...DynamicWidgetCollections: BasePaginatedCollection<BaseObject>[]\r\n): boolean {\r\n if (playlists.data.length)\r\n return true;\r\n\r\n return DynamicWidgetCollections.some(c => !!c.data.length);\r\n}\r\n\r\ninterface HeroVideoWithVideoList {\r\n heroVideo: Video;\r\n videoList: Video[];\r\n}\r\n\r\nexport function extractHeroVideo(\r\n series: SeriesCollection, playlists: PlaylistCollection, videos: VideoCollection, classification: Classification\r\n): HeroVideoWithVideoList {\r\n if (!series || !playlists || !videos || !classification)\r\n return {\r\n heroVideo: null,\r\n videoList: videos && videos.data\r\n };\r\n\r\n // If the subject has no series/playlists, and has only 1 video, that video is displayed as the hero.\r\n if (!series.data.length && !playlists.data.length && videos.data.length === 1) {\r\n return {\r\n heroVideo: ArrayHelper.first(videos.data),\r\n videoList: []\r\n };\r\n }\r\n\r\n const pinnedVideoIndex = videos.data.findIndex(video => video.id === classification.pinnedVideoMasterId);\r\n\r\n if (pinnedVideoIndex === -1)\r\n return {\r\n heroVideo: null,\r\n videoList: videos.data\r\n };\r\n\r\n return {\r\n heroVideo: videos.data[pinnedVideoIndex],\r\n videoList: videos.data.filter(vid => vid.id !== classification.pinnedVideoMasterId)\r\n };\r\n}"],"sourceRoot":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(window.webpackJsonp_clickview_lite=window.webpackJsonp_clickview_lite||[]).push([[25],{1008:function(e,t,n){"use strict";var a=n(986);n.d(t,"a",(function(){return a.a}));n(1015),n(997);var r=n(992);n.d(t,"c",(function(){return r.a}));var c=n(981);n.d(t,"b",(function(){return c.a}))},1009:function(e,t,n){e.exports={grid:"G_RXX",subgrid:"_38ohZ"}},1014:function(e,t,n){"use strict";n.d(t,"a",(function(){return l}));var a=n(0),r=n.n(a),c=n(303);function l(e){var t=e.on&&!e.disabled?"on":"",n=e.disabled?"disabled":"",a=e.hideOutline?"outline-none":"";return r.a.createElement(c.a,{onClick:function(){e.disabled||e.onClick.apply(e,arguments)},className:"".concat("d-inline-block float-right align-top custom-toggle toggle-option"," ").concat(t," ").concat(n," ").concat(a)},r.a.createElement("span",{className:"handle"}))}},1017:function(e,t,n){e.exports={preferenceFooter:"P29kw"}},1046:function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var a=n(0),r=n(1071),c=n.n(r),l=n(45);function i(e){var t=e.audience,n=e.highlight,r=e.setAudience,i=e.isDisabled,s=e.extraClasses,u=function(e,t){return e?t?"".concat(c.a.disabledHighlighted," text-light"):"badge-info text-light":t?"".concat(c.a.disabled," text-muted"):"badge-light"}(n,i),o="badge-pill d-inline-block mr-1 ".concat(i?"cursor-default":"cursor-pointer"," ").concat(u," ").concat(s);return a.createElement("span",{className:o,onClick:function(){!i&&l.a.isFunction(r)&&r(t,!n)},role:"checkbox","aria-checked":n},t.name.split(" ").map((function(e){return e.charAt(0).toUpperCase()+e.substring(1)})).join(" "))}i.defaultProps={extraClasses:""}},1071:function(e,t,n){e.exports={disabled:"_1KxF9",disabledHighlighted:"pbuec"}},1073:function(e,t,n){"use strict";var a;n.d(t,"a",(function(){return a})),function(e){e[e.Permanent=0]="Permanent",e[e.Temporary=1]="Temporary"}(a||(a={}))},1098:function(e,t,n){"use strict";n.d(t,"a",(function(){return r}));var a=n(0);function r(e){var t=e.width,n=void 0===t?90:t,r=e.height,c=void 0===r?35:r,l=e.count,i=void 0===l?5:l,s=e.align,u="center"===(void 0===s?"left":s)?"justify-content-center":"justify-content-start";return a.createElement("ul",{className:"d-flex flex-wrap pl-0 m-0 ".concat(u)},Array(i).fill(null).map((function(e,t){return a.createElement("li",{key:t,className:"partial-loading-background mx-1 mb-1 badge-pill list-unstyled",style:{height:"".concat(c,"px"),width:"".concat(n,"px")}})})))}},1434:function(e,t,n){e.exports={levelList:"_3ClyO",imageContainer:"_2I-AB"}},1503:function(e,t,n){"use strict";n.r(t);var a=n(0),r=n(76),c=n(40),l=n(19),i=n(2),s=n(140),u=n(9),o=n(1012),d=n(91),m=n(1008),f=n(1046),p=n(1098),b=n(58),v=n(1014),h=n(1148),g=n(958),E=n(316),x=n(70),y=n(317),S=n(1073),k=n(212),j=n(1033),C=n(1434),w=n.n(C);function A(e){return function(e){if(Array.isArray(e))return B(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||N(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function O(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],a=!0,r=!1,c=void 0;try{for(var l,i=e[Symbol.iterator]();!(a=(l=i.next()).done)&&(n.push(l.value),!t||n.length!==t);a=!0);}catch(e){r=!0,c=e}finally{try{a||null==i.return||i.return()}finally{if(r)throw c}}return n}(e,t)||N(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function N(e,t){if(e){if("string"==typeof e)return B(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?B(e,t):void 0}}function B(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=new Array(t);n<t;n++)a[n]=e[n];return a}n.d(t,"LevelPreferencesView",(function(){return L}));function L(e){var t,n=e.redirectUrl,C=O(a.useState(0),2)[1],N=O(a.useState([]),2),B=N[0],L=N[1],P=O(a.useState(!B.length),2),I=P[0],_=P[1],F=O(a.useState(!1),2),H=F[0],M=F[1],U=O(a.useState(null),2),D=U[0],T=U[1],R=l.a.useBasicFetch(x.a.currentUser()),G=l.a.useBasicFetch(o.a.allLevelPreferences()),X=l.a.useBasicFetch(o.a.myLevelPreferences()),W=l.a.useBasicFetch(o.a.availablePresentations()),Y=l.a.useBasicFetch(R.statusCode?y.a.setting(R.data.id,E.a.HasCompletedOnboarding):null),q=l.a.useBasicFetch(R.statusCode?y.a.setting(R.data.id,E.a.BulkOnboardingPreferencesState):null),z=Object(r.useDispatch)(),J=Object(g.a)(),K=j.a.hasBulkSelectedLevels(D);function Q(e){var t=s.a.addOrRemoveImmutable(B,e.masterId);L(t)}function V(){C((function(e){return 1===e&&(M(!1),i.a.AppLinkHelper.trigger(j.a.buildAppLink("subjects",n))),e-1}))}function Z(){C(0),M(!1),_(!1),J.error(u.a.getPhrase("subjects.levelPreferences","error"))}function $(){var e,t=null;switch(null===(e=q.data)||void 0===e?void 0:e.value){case h.a.None:default:t=h.a.AllLevels;break;case h.a.AllLevels:t=h.a.None;break;case h.a.AllSubjects:t=h.a.AllSubjectsAndAllLevels;break;case h.a.AllSubjectsAndAllLevels:t=h.a.AllSubjects}j.a.hasBulkSelectedLevels(t)&&L([]),T(t),l.a.fetch(z,y.a.updateSetting(R.data.id,E.a.BulkOnboardingPreferencesState,t,S.a.Permanent))}a.useEffect((function(){var e;if(null===(e=X.data)||void 0===e?void 0:e.length){var t=X.data.map((function(e){return e.masterId}));L(s.a.uniq([].concat(A(B),A(t))))}else L([])}),[X.data]),a.useEffect((function(){q.data&&!D&&T(q.data.value)}),[null===(t=q.data)||void 0===t?void 0:t.value]),a.useEffect((function(){_(!K&&!B.length)}),[B,K]);var ee=function(){var e;if(null===(e=Y.data)||void 0===e?void 0:e.value)return null;var t=j.a.hasManyPresentationTypes(W.data),a=t.hasManyCurriculumPresentations,r=t.hasManySubjectPresentations;return a?j.a.buildAppLink("curriculum",n):r?j.a.buildAppLink("school-level",n):j.a.buildAppLink("welcome",n)}();return a.createElement(d.a.Provider,{value:"subjects.levelPreferences"},a.createElement("form",{className:"p-3"},a.createElement("div",{className:"position-relative"},a.createElement("div",{className:"text-center mb-3"},a.createElement("h1",{className:"mb-3"},a.createElement(d.b,{phrase:"heading"})),a.createElement("p",{className:"h6"},a.createElement(d.b,{phrase:"info"}))),G.data?a.createElement("ul",{className:"d-flex flex-wrap justify-content-center mx-auto mb-0 pl-0 py-3 ".concat(w.a.levelList)},G.data.map((function(e){return a.createElement(f.a,{key:e.masterId,audience:e,highlight:B.includes(e.masterId),setAudience:Q,extraClasses:"h4 py-1 px-3 mx-1 mb-1",isDisabled:K})}))):a.createElement("div",{className:"w-33 mx-auto py-3"},a.createElement(p.a,{align:"center"}))),a.createElement("div",{className:"mx-auto ".concat(w.a.imageContainer)},a.createElement("img",{className:"img-fluid",src:k.a.Onboarding.YEAR_GROUPS,alt:"",role:"presentation"})),a.createElement(m.a,{justify:ee?"between":"end"},!!ee&&a.createElement("div",null,a.createElement(b.a,{appLink:ee,className:"btn btn-secondary"},a.createElement(d.b,{phrase:"back"}))),a.createElement("div",{className:"d-flex align-items-center justify-content-right"},a.createElement("div",{className:"d-flex mr-3"},a.createElement("p",{onClick:$,className:"mr-2 mb-0 font-weight-bold"},a.createElement(d.b,{phrase:"allLevels"})),a.createElement(v.a,{onClick:$,on:K,hideOutline:!0})),a.createElement(c.Button,{variant:"dark",disabled:I,onClick:function(){var e,t,a;if(B.length||K)if(X.data&&X.data.map((function(e){return e.masterId})).sort().toString()!==B.sort().toString()){C(0),M(!0),_(!0);var r=B.filter((function(e){var t;return!(null===(t=X.data)||void 0===t?void 0:t.find((function(t){return t.masterId===e})))})),c=null===(e=X.data)||void 0===e?void 0:e.filter((function(e){return!B.includes(e.masterId)}));(null===(t=r)||void 0===t?void 0:t.length)&&(C((function(e){return e+1})),l.a.fetch(z,o.a.followLevels(r,V,Z))),(null===(a=c)||void 0===a?void 0:a.length)&&(C((function(e){return e+1})),l.a.fetch(z,o.a.unfollowLevels(c.map((function(e){return e.masterId})),V,Z)))}else i.a.AppLinkHelper.trigger(j.a.buildAppLink("subjects",n))}},H?a.createElement(c.Spinner,{as:"span",animation:"border",role:"status",size:"sm"}):a.createElement(d.b,{phrase:"next"}))))))}},958:function(e,t,n){"use strict";n.d(t,"a",(function(){return l}));var a=n(208),r=n(61),c=n(71),l=function(){var e=Object(a.a)(c.a.ALERT);return{success:function(t){e.success(t)()},error:function(t){e.error(t)()},warning:function(t){e.createAlert({type:r.a.Warning,heading:r.c.Warning,message:t})}}}},981:function(e,t,n){"use strict";var a=n(0),r=n.n(a),c=n(64),l=n(17),i=n(988),s=n.n(i),u=function(e){return e.selectedChildrenCount?a.createElement("div",{className:"".concat(s.a.itemStatus," ").concat(s.a.green)},e.selectedChildrenCount):a.createElement(a.Fragment,null)},o=function(e){var t;return t=e.selected?a.createElement(c.a,{svgName:l.b.Check}):e.radioButton?a.createElement(a.Fragment,null," "):a.createElement(c.a,{svgName:l.b.Plus}),a.createElement("div",{className:"".concat(s.a.itemStatus," ").concat(e.selected?s.a.green:s.a.unchecked)},t)};function d(e){var t,n="".concat(s.a.expandCaret," ").concat(e.expand?s.a.up:s.a.down);return r.a.createElement("li",{className:(t=s.a.preferenceItem,e.extraClasses&&(t+=" "+e.extraClasses),e.isDisabled&&(t+=" "+s.a.disabled),e.isSelected&&!e.isExpandable&&(t+=" "+s.a.selected),e.hideStatus&&(t+=" "+s.a.noBorder),t),onClick:e.onClick,"aria-checked":e.isSelected,"aria-haspopup":e.isExpandable,role:e.isExpandable?"button":"checkbox",style:{backgroundImage:"url(".concat(e.imageUrl,")")},tabIndex:0},r.a.createElement("div",{className:"".concat(s.a.textBox," p-2")},r.a.createElement("p",{className:"m-0 text-truncate"},e.name,r.a.createElement("span",{className:e.isExpandable?n:""})),!e.hideStatus&&r.a.createElement(r.a.Fragment,null,e.isExpandable?r.a.createElement(u,{selectedChildrenCount:e.selectedChildCount}):r.a.createElement(o,{selected:e.isSelected,radioButton:e.radioButton}))))}n.d(t,"a",(function(){return d}))},986:function(e,t,n){"use strict";n.d(t,"a",(function(){return s}));var a=n(0),r=n(46),c=n(209),l=n(1017),i=n.n(l);function s(e){var t=Object(c.a)(),n=t===r.a.SM||t===r.a.XS?"w-100":"w-75",l="justify-content-".concat(e.justify);return a.createElement("div",{className:"".concat(n," ").concat(l," ").concat(i.a.preferenceFooter," d-flex px-3")},e.children)}s.defaultProps={justify:"between"}},987:function(e,t,n){"use strict";n.d(t,"a",(function(){return r}));var a=n(0),r=Object(a.createContext)(void 0)},988:function(e,t,n){e.exports={preferenceItem:"_1LDb6",expandCaret:"_3QEWB",down:"_2y-iF",up:"_1kGNY",disabled:"_2w4FH",selected:"_1lSYv",noBorder:"_3Mxuo",textBox:"_3HCeK",itemStatus:"_2msq4",unchecked:"_2VQLv",green:"AHd64"}},992:function(e,t,n){"use strict";n.d(t,"a",(function(){return u}));var a=n(0),r=n(211),c=n(160),l=n(987),i=n(981),s=n(163);function u(e){var t,n,u,o,d=a.useContext(l.a),m=e.subject.cover?r.a.createUrl(e.subject.cover.url,{size:c.a.Small}):"",f=e.subject.isExpandableOption?e.subject.children.map((function(e){return e.id})):[],p=e.hasSelectedBulk?0:null===(n=null===(t=d)||void 0===t?void 0:t.selectedSubjects)||void 0===n?void 0:n.filter((function(e){return f.includes(e)})).length,b=a.createElement(i.a,{name:e.subject.name,imageUrl:m,onClick:e.onClick,isSelected:e.selected,isDisabled:e.disabled,isExpandable:e.subject.isExpandableOption,expand:(null===(o=null===(u=d)||void 0===u?void 0:u.expandedSubject)||void 0===o?void 0:o.id)===e.subject.id,selectedChildCount:p,extraClasses:e.extraClasses,hideStatus:e.hideStatus});return e.disabled?a.createElement("span",null,b):a.createElement(s.a,{title:e.subject.name},a.createElement("span",null,b))}},997:function(e,t,n){"use strict";n.d(t,"a",(function(){return f}));var a=n(0),r=n(140),c=n(46),l=n(209),i=n(1008),s=n(987),u=n(1009),o=n.n(u),d=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n};function m(e){var t=a.useContext(s.a),n=t.expandedSubject,r=t.selectedSubjects;return a.createElement(a.Fragment,null,e.subjects.map((function(t){var c=function(e,t){return!(!t||e.id===t.id)&&!t.children.find((function(t){return t.id===e.id}))}(t,n),l=e.onSelect;return t.isExpandableOption&&(l=e.onExpand),c&&(l=e.onCollapse),e.hasSelectedBulk&&(l=function(){}),a.createElement(i.c,{key:t.id,subject:t,selected:!e.hasSelectedBulk&&r.includes(t.id),disabled:e.hasSelectedBulk||c,onClick:function(){return l(t)},hasSelectedBulk:e.hasSelectedBulk})})))}function f(e){var t=e.subjects,n=e.hasSelectedBulk,i=d(e,["subjects","hasSelectedBulk"]),u=a.useContext(s.a).expandedSubject,p=function(){switch(Object(l.a)()){case c.a.LG:default:return 5;case c.a.MD:return 4;case c.a.SM:return 3;case c.a.XS:return 2}}(),b=t.reduce((function(e,t,n){return n%p==0?e.push([t]):r.a.last(e).push(t),e}),[]);return a.createElement("ul",{className:o.a.grid},b.map((function(e,t){var r=u&&!!e.find((function(e){return u.id===e.id&&e.isExpandableOption}));return a.createElement(a.Fragment,{key:t},a.createElement(m,Object.assign({subjects:e,hasSelectedBulk:n},i)),r&&a.createElement("li",{className:"".concat(o.a.subgrid," m-0")},a.createElement(f,Object.assign({subjects:u.children,hasSelectedBulk:n},i))))})))}}}]);
|