@clickview/lite 0.0.24-rc.4 → 0.0.24-rc.5
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/4.chunk.css +3 -3
- package/dist/en.json +1 -1
- package/dist/libs/common/src/react/utils/ArrayHelper.d.ts +1 -2
- package/dist/libs/common/src/react/utils/TextHelper.d.ts +1 -2
- package/dist/libs/shared/src/components/curriculum-links/CurriculumLinks.d.ts +9 -0
- package/dist/libs/shared/src/enums/CurriculumType.d.ts +6 -0
- package/dist/libs/shared/src/flight-requests/ClassificationRequests.d.ts +1 -0
- package/dist/libs/shared/src/interfaces/models/Curriculum.d.ts +14 -0
- package/dist/libs/shared/src/interfaces/models/index.d.ts +1 -0
- package/dist/projects/lite/src/app.d.ts +1 -0
- package/dist/projects/lite/src/shared/components/play-page/PlayPage.d.ts +2 -1
- package/dist/projects/lite/src/shared/components/synopsis/Synopsis.d.ts +3 -1
- package/dist/projects/lite/src/shared/components/video-details/VideoDetails.d.ts +2 -0
- package/dist/projects/lite/src/shared/constants/MinimumGlanceHeight.d.ts +1 -0
- package/dist/scripts/{0-702db3d74c.chunk.js → 0-0e5b8c97da.chunk.js} +1 -1
- package/dist/scripts/{1-fcddc988fa.chunk.js → 1-4f19a5caea.chunk.js} +3 -3
- package/dist/scripts/{11-6e7f935551.chunk.js → 11-c6f3f1495e.chunk.js} +1 -1
- package/dist/scripts/{13-95937e4149.chunk.js → 12-e75a157856.chunk.js} +1 -1
- package/dist/scripts/{13-4245983c0a.chunk.js → 13-9fa696f312.chunk.js} +1 -1
- package/dist/scripts/{14-62608fc1de.chunk.js → 14-be9f036f4f.chunk.js} +1 -1
- package/dist/scripts/{15-379cb5f586.chunk.js → 15-955489324a.chunk.js} +1 -1
- package/dist/scripts/{16-00e83a6d12.chunk.js → 16-fbcfe9b88a.chunk.js} +1 -1
- package/dist/scripts/{17-c62d5aa7f2.chunk.js → 17-891a386483.chunk.js} +1 -1
- package/dist/scripts/18-8c73b7d99b.chunk.js +1 -0
- package/dist/scripts/{19-d394ae9543.chunk.js → 19-7fa88b10ad.chunk.js} +1 -1
- package/dist/scripts/{2-6aad743aee.chunk.js → 2-24cf1c2b8f.chunk.js} +1 -1
- package/dist/scripts/{20-e20c4c0645.chunk.js → 20-01ffebd514.chunk.js} +1 -1
- package/dist/scripts/{21-8b195ab041.chunk.js → 21-c0d8b510a7.chunk.js} +1 -1
- package/dist/scripts/{22-8a60335dfb.chunk.js → 22-5559cfd4b9.chunk.js} +1 -1
- package/dist/scripts/23-9ee2ed9cd4.chunk.js +1 -0
- package/dist/scripts/{24-7924828128.chunk.js → 24-4160a65b1e.chunk.js} +1 -1
- package/dist/scripts/{25-93218e513e.chunk.js → 25-c9d38b5363.chunk.js} +1 -1
- package/dist/scripts/{26-a4a0b97207.chunk.js → 26-3ce3cfcc52.chunk.js} +1 -1
- package/dist/scripts/{27-35820f00f1.chunk.js → 27-406581ece9.chunk.js} +1 -1
- package/dist/scripts/{28-22cbd36128.chunk.js → 28-fc3b956c1b.chunk.js} +1 -1
- package/dist/scripts/{29-d6f6b32986.chunk.js → 29-88ce0ae05b.chunk.js} +1 -1
- package/dist/scripts/{3-02219d10d4.chunk.js → 3-4eb18353bb.chunk.js} +2 -2
- package/dist/scripts/30-610acec595.chunk.js +1 -0
- package/dist/scripts/{31-1307509953.chunk.js → 31-e912953920.chunk.js} +1 -1
- package/dist/scripts/{32-8ec5bb19f5.chunk.js → 32-ee11faab9b.chunk.js} +1 -1
- package/dist/scripts/{33-8740c874b3.chunk.js → 33-26cc3cdaeb.chunk.js} +1 -1
- package/dist/scripts/{34-81e4464339.chunk.js → 34-7ebb43ddc8.chunk.js} +1 -1
- package/dist/scripts/{35-0ff2658139.chunk.js → 35-17ca18b5d1.chunk.js} +1 -1
- package/dist/scripts/36-e9d8de4a2d.chunk.js +1 -0
- package/dist/scripts/{37-10fe5a06a5.chunk.js → 37-a7cba803bb.chunk.js} +1 -1
- package/dist/scripts/{38-31744f9ae7.chunk.js → 38-b2cc6a93f5.chunk.js} +1 -1
- package/dist/scripts/{39-4b26fafe13.chunk.js → 39-7f84929f98.chunk.js} +1 -1
- package/dist/scripts/4-b2cb65391a.chunk.js +1 -0
- package/dist/scripts/{40-fa1b51a3e0.chunk.js → 40-9f70a53d97.chunk.js} +1 -1
- package/dist/scripts/{41-2e358dbf59.chunk.js → 41-e706064472.chunk.js} +1 -1
- package/dist/scripts/{42-680fb45a87.chunk.js → 42-c258fa97ee.chunk.js} +1 -1
- package/dist/scripts/{43-cb8bdb3d8f.chunk.js → 43-c1bdce377d.chunk.js} +1 -1
- package/dist/scripts/44-a91444ce28.chunk.js +1 -0
- package/dist/scripts/45-1d0659f37e.chunk.js +1 -0
- package/dist/scripts/{46-273127f163.chunk.js → 46-426c9485e1.chunk.js} +1 -1
- package/dist/scripts/{47-c4c6264df4.chunk.js → 47-9bbb498c46.chunk.js} +1 -1
- package/dist/scripts/{48-54817c0e78.chunk.js → 48-9edb995a3f.chunk.js} +1 -1
- package/dist/scripts/{49-0826d62735.chunk.js → 49-5df5a269f0.chunk.js} +1 -1
- package/dist/scripts/{5-52c2070b12.chunk.js → 5-a1283a9cb4.chunk.js} +1 -1
- package/dist/scripts/{50-e94493066c.chunk.js → 50-7164dd3966.chunk.js} +1 -1
- package/dist/scripts/{51-907ccc689c.chunk.js → 51-93a336058b.chunk.js} +1 -1
- package/dist/scripts/{52-dd5dd9f7f7.chunk.js → 52-1b6f0b1a8a.chunk.js} +1 -1
- package/dist/scripts/{53-b24c780288.chunk.js → 53-f555732892.chunk.js} +1 -1
- package/dist/scripts/{54-603f252394.chunk.js → 54-2fbaa17038.chunk.js} +1 -1
- package/dist/scripts/{55-eea39b3205.chunk.js → 55-cbbe48a07d.chunk.js} +1 -1
- package/dist/scripts/{56-20237748ba.chunk.js → 56-dd9c322af2.chunk.js} +1 -1
- package/dist/scripts/{57-dfacc1ad90.chunk.js → 57-cb2aa6435f.chunk.js} +1 -1
- package/dist/scripts/{58-bb756b517d.chunk.js → 58-670fdd6cb0.chunk.js} +1 -1
- package/dist/scripts/{59-18ef4c5afb.chunk.js → 59-d6f2652c76.chunk.js} +1 -1
- package/dist/scripts/{6-0a53c42432.chunk.js → 6-f84bd82a30.chunk.js} +1 -1
- package/dist/scripts/{60-81ac7ce262.chunk.js → 60-cef13e0035.chunk.js} +1 -1
- package/dist/scripts/{61-41c8cb7e0f.chunk.js → 61-6ff0431833.chunk.js} +1 -1
- package/dist/scripts/{62-94874205ae.chunk.js → 62-2d3c8592f0.chunk.js} +1 -1
- package/dist/scripts/{63-d423dd59f5.chunk.js → 63-ac70e80473.chunk.js} +1 -1
- package/dist/scripts/{64-d280e018c4.chunk.js → 64-a7b7a52e1a.chunk.js} +1 -1
- package/dist/scripts/{65-f94e7ab2ef.chunk.js → 65-4c4a640570.chunk.js} +1 -1
- package/dist/scripts/{66-faeadaa25e.chunk.js → 66-4a8bbcd5da.chunk.js} +1 -1
- package/dist/scripts/{66-dc4b036321.chunk.js → 67-2e0d661c52.chunk.js} +1 -1
- package/dist/scripts/{7-096f5703bd.chunk.js → 7-4ed6ab081c.chunk.js} +1 -1
- package/dist/scripts/8-3a52d29637.chunk.js +1 -0
- package/dist/scripts/{bundle-fef50e5bb9.min.js → bundle-526e70a595.min.js} +3 -3
- package/dist/scripts/bundles.json +2 -2
- package/dist/scripts/polyfills-46d3c7a509.min.js +1 -0
- package/package.json +2 -2
- package/dist/css/0.chunk.css.map +0 -1
- package/dist/css/1.chunk.css +0 -223
- package/dist/css/1.chunk.css.map +0 -1
- package/dist/css/10.chunk.css +0 -106
- 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.map +0 -1
- package/dist/css/14.chunk.css.map +0 -1
- package/dist/css/15.chunk.css.map +0 -1
- 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.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.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 +0 -40
- package/dist/css/38.chunk.css.map +0 -1
- package/dist/css/39.chunk.css +0 -6
- package/dist/css/39.chunk.css.map +0 -1
- package/dist/css/4.chunk.css.map +0 -1
- package/dist/css/40.chunk.css +0 -6
- package/dist/css/40.chunk.css.map +0 -1
- package/dist/css/41.chunk.css +0 -40
- package/dist/css/41.chunk.css.map +0 -1
- package/dist/css/42.chunk.css +0 -14
- package/dist/css/42.chunk.css.map +0 -1
- package/dist/css/43.chunk.css +0 -38
- package/dist/css/43.chunk.css.map +0 -1
- package/dist/css/44.chunk.css +0 -6
- package/dist/css/44.chunk.css.map +0 -1
- package/dist/css/46.chunk.css +0 -52
- package/dist/css/46.chunk.css.map +0 -1
- package/dist/css/5.chunk.css.map +0 -1
- package/dist/css/50.chunk.css +0 -52
- package/dist/css/50.chunk.css.map +0 -1
- package/dist/css/53.chunk.css.map +0 -1
- package/dist/css/54.chunk.css.map +0 -1
- package/dist/css/55.chunk.css.map +0 -1
- package/dist/css/56.chunk.css +0 -14
- package/dist/css/56.chunk.css.map +0 -1
- package/dist/css/57.chunk.css +0 -14
- package/dist/css/57.chunk.css.map +0 -1
- package/dist/css/58.chunk.css +0 -43
- package/dist/css/58.chunk.css.map +0 -1
- package/dist/css/6.chunk.css.map +0 -1
- package/dist/css/7.chunk.css +0 -94
- package/dist/css/7.chunk.css.map +0 -1
- package/dist/css/79.chunk.css +0 -58
- package/dist/css/79.chunk.css.map +0 -1
- package/dist/css/8.chunk.css +0 -54
- package/dist/css/8.chunk.css.map +0 -1
- package/dist/css/82.chunk.css +0 -28
- package/dist/css/82.chunk.css.map +0 -1
- package/dist/css/83.chunk.css +0 -11
- package/dist/css/83.chunk.css.map +0 -1
- package/dist/css/84.chunk.css +0 -152
- package/dist/css/84.chunk.css.map +0 -1
- package/dist/css/85.chunk.css +0 -21
- package/dist/css/85.chunk.css.map +0 -1
- package/dist/css/86.chunk.css +0 -17
- package/dist/css/86.chunk.css.map +0 -1
- package/dist/css/87.chunk.css +0 -21
- package/dist/css/87.chunk.css.map +0 -1
- package/dist/css/88.chunk.css +0 -5
- package/dist/css/88.chunk.css.map +0 -1
- package/dist/css/90.chunk.css +0 -38
- package/dist/css/90.chunk.css.map +0 -1
- package/dist/css/lite-app.css.map +0 -1
- package/dist/libs/shared/src/components/file-select-button/FileSelectButton.d.ts +0 -15
- package/dist/libs/shared/src/components/thumbnails/video/VideoThumbnailWatchProgressBar.d.ts +0 -8
- package/dist/libs/shared/src/components/video-list/components/video-item-badges/VideoItemBadges.d.ts +0 -7
- package/dist/libs/shared/src/components/video-list/components/video-item-description/UseTruncateText.d.ts +0 -9
- package/dist/libs/shared/src/enums/MasterObjectTypes.d.ts +0 -8
- package/dist/libs/shared/src/hooks/useGetCollectionItems.d.ts +0 -7
- package/dist/projects/lite/src/apps/upload/views/my-uploads/DismissibleAlert.d.ts +0 -2
- package/dist/projects/lite/src/apps/upload/views/my-uploads/MyUploadsView.d.ts +0 -6
- package/dist/projects/lite/src/shared/components/clips/ClipItem.d.ts +0 -8
- package/dist/projects/lite/src/shared/components/clips/Clips.d.ts +0 -7
- package/dist/projects/lite/src/shared/components/interactives/InteractiveItem.d.ts +0 -7
- package/dist/projects/lite/src/shared/components/interactives/Interactives.d.ts +0 -7
- package/dist/projects/lite/src/shared/components/play-page/Buttons.d.ts +0 -7
- package/dist/scripts/0-bf0af5f75c.chunk.js +0 -1
- package/dist/scripts/0.chunk.js +0 -355
- package/dist/scripts/0.chunk.js.map +0 -1
- package/dist/scripts/1-d1ce3fe6e8.chunk.js +0 -17
- package/dist/scripts/1.chunk.js +0 -1031
- package/dist/scripts/1.chunk.js.map +0 -1
- package/dist/scripts/10.chunk.js +0 -1338
- package/dist/scripts/10.chunk.js.map +0 -1
- package/dist/scripts/11.chunk.js +0 -1544
- package/dist/scripts/11.chunk.js.map +0 -1
- package/dist/scripts/12-7e1380d9fa.chunk.js +0 -1
- package/dist/scripts/12-fa7004b555.chunk.js +0 -1
- package/dist/scripts/12.chunk.js +0 -445
- package/dist/scripts/12.chunk.js.map +0 -1
- package/dist/scripts/13.chunk.js +0 -502
- package/dist/scripts/13.chunk.js.map +0 -1
- package/dist/scripts/14-eba60049a5.chunk.js +0 -1
- package/dist/scripts/14.chunk.js +0 -469
- package/dist/scripts/14.chunk.js.map +0 -1
- package/dist/scripts/15-d811a90e8d.chunk.js +0 -1
- package/dist/scripts/15.chunk.js +0 -356
- package/dist/scripts/15.chunk.js.map +0 -1
- package/dist/scripts/16-885363ce46.chunk.js +0 -1
- package/dist/scripts/16.chunk.js +0 -537
- package/dist/scripts/16.chunk.js.map +0 -1
- package/dist/scripts/17-6d597b8323.chunk.js +0 -1
- package/dist/scripts/17.chunk.js +0 -230
- package/dist/scripts/17.chunk.js.map +0 -1
- package/dist/scripts/18-5affadddcc.chunk.js +0 -1
- package/dist/scripts/18-69049350eb.chunk.js +0 -1
- package/dist/scripts/18.chunk.js +0 -273
- package/dist/scripts/18.chunk.js.map +0 -1
- package/dist/scripts/19-f0550464de.chunk.js +0 -1
- package/dist/scripts/19.chunk.js +0 -502
- package/dist/scripts/19.chunk.js.map +0 -1
- package/dist/scripts/2-c47e1da13a.chunk.js +0 -1
- package/dist/scripts/2.chunk.js +0 -800
- package/dist/scripts/2.chunk.js.map +0 -1
- package/dist/scripts/20-81a48ca4fa.chunk.js +0 -1
- package/dist/scripts/20.chunk.js +0 -339
- package/dist/scripts/20.chunk.js.map +0 -1
- package/dist/scripts/21-f6ff589cb4.chunk.js +0 -1
- package/dist/scripts/21.chunk.js +0 -1544
- package/dist/scripts/21.chunk.js.map +0 -1
- package/dist/scripts/22-f458cb647a.chunk.js +0 -1
- package/dist/scripts/22.chunk.js +0 -1338
- package/dist/scripts/22.chunk.js.map +0 -1
- package/dist/scripts/23-633a2d5b09.chunk.js +0 -1
- package/dist/scripts/23-bb1e2bfb90.chunk.js +0 -1
- package/dist/scripts/23.chunk.js +0 -749
- package/dist/scripts/23.chunk.js.map +0 -1
- package/dist/scripts/24-a254eb1f32.chunk.js +0 -1
- package/dist/scripts/24.chunk.js +0 -1207
- package/dist/scripts/24.chunk.js.map +0 -1
- package/dist/scripts/25-db170bd5e3.chunk.js +0 -1
- package/dist/scripts/25.chunk.js +0 -750
- package/dist/scripts/25.chunk.js.map +0 -1
- package/dist/scripts/26-93c9661292.chunk.js +0 -1
- package/dist/scripts/26.chunk.js +0 -826
- package/dist/scripts/26.chunk.js.map +0 -1
- package/dist/scripts/27-8a4d69f288.chunk.js +0 -1
- package/dist/scripts/27.chunk.js +0 -658
- package/dist/scripts/27.chunk.js.map +0 -1
- package/dist/scripts/28-0730152b25.chunk.js +0 -1
- package/dist/scripts/28.chunk.js +0 -692
- package/dist/scripts/28.chunk.js.map +0 -1
- package/dist/scripts/29-965aa23b96.chunk.js +0 -1
- package/dist/scripts/29.chunk.js +0 -627
- package/dist/scripts/29.chunk.js.map +0 -1
- package/dist/scripts/3-0ce5d8bff2.chunk.js +0 -7
- package/dist/scripts/3.chunk.js +0 -18851
- package/dist/scripts/3.chunk.js.map +0 -1
- package/dist/scripts/30-13106255a1.chunk.js +0 -1
- package/dist/scripts/30-77202cb6be.chunk.js +0 -1
- package/dist/scripts/30.chunk.js +0 -562
- package/dist/scripts/30.chunk.js.map +0 -1
- package/dist/scripts/31-e3ee095203.chunk.js +0 -1
- package/dist/scripts/31.chunk.js +0 -767
- package/dist/scripts/31.chunk.js.map +0 -1
- package/dist/scripts/32-40ed1dd894.chunk.js +0 -1
- package/dist/scripts/32.chunk.js +0 -468
- package/dist/scripts/32.chunk.js.map +0 -1
- package/dist/scripts/33-93b8d74603.chunk.js +0 -1
- package/dist/scripts/33.chunk.js +0 -441
- package/dist/scripts/33.chunk.js.map +0 -1
- package/dist/scripts/34-ada5bfd254.chunk.js +0 -1
- package/dist/scripts/34.chunk.js +0 -622
- package/dist/scripts/34.chunk.js.map +0 -1
- package/dist/scripts/35-3eb6fe74fc.chunk.js +0 -1
- package/dist/scripts/35.chunk.js +0 -962
- package/dist/scripts/35.chunk.js.map +0 -1
- package/dist/scripts/36-0532d93a26.chunk.js +0 -1
- package/dist/scripts/36-3bfbb52684.chunk.js +0 -1
- package/dist/scripts/36.chunk.js +0 -545
- package/dist/scripts/36.chunk.js.map +0 -1
- package/dist/scripts/37-3e5e429c93.chunk.js +0 -1
- package/dist/scripts/37.chunk.js +0 -803
- package/dist/scripts/37.chunk.js.map +0 -1
- package/dist/scripts/38-76dc0e356d.chunk.js +0 -1
- package/dist/scripts/38.chunk.js +0 -943
- package/dist/scripts/38.chunk.js.map +0 -1
- package/dist/scripts/39-5df3077ac3.chunk.js +0 -1
- package/dist/scripts/39.chunk.js +0 -585
- package/dist/scripts/39.chunk.js.map +0 -1
- package/dist/scripts/4-3b38074599.chunk.js +0 -1
- package/dist/scripts/4-d5bec07430.chunk.js +0 -1
- package/dist/scripts/4.chunk.js +0 -1165
- package/dist/scripts/4.chunk.js.map +0 -1
- package/dist/scripts/40-6e3500fafc.chunk.js +0 -1
- package/dist/scripts/40.chunk.js +0 -273
- package/dist/scripts/40.chunk.js.map +0 -1
- package/dist/scripts/41-cde309348b.chunk.js +0 -1
- package/dist/scripts/41.chunk.js +0 -252
- package/dist/scripts/41.chunk.js.map +0 -1
- package/dist/scripts/42-4f9c639481.chunk.js +0 -1
- package/dist/scripts/42.chunk.js +0 -464
- package/dist/scripts/42.chunk.js.map +0 -1
- package/dist/scripts/43-3818cf7ed2.chunk.js +0 -1
- package/dist/scripts/43.chunk.js +0 -345
- package/dist/scripts/43.chunk.js.map +0 -1
- package/dist/scripts/44-0648e8e28f.chunk.js +0 -1
- package/dist/scripts/44-f4e93786c0.chunk.js +0 -1
- package/dist/scripts/44.chunk.js +0 -537
- package/dist/scripts/44.chunk.js.map +0 -1
- package/dist/scripts/45-23e64d06ed.chunk.js +0 -1
- package/dist/scripts/45-586cefa5b3.chunk.js +0 -1
- package/dist/scripts/45.chunk.js +0 -221
- package/dist/scripts/45.chunk.js.map +0 -1
- package/dist/scripts/46-8b4730ff48.chunk.js +0 -1
- package/dist/scripts/46.chunk.js +0 -230
- package/dist/scripts/46.chunk.js.map +0 -1
- package/dist/scripts/47-86e38a1468.chunk.js +0 -1
- package/dist/scripts/47.chunk.js +0 -408
- package/dist/scripts/47.chunk.js.map +0 -1
- package/dist/scripts/48-54db253a8c.chunk.js +0 -1
- package/dist/scripts/48.chunk.js +0 -241
- package/dist/scripts/48.chunk.js.map +0 -1
- package/dist/scripts/49-702676e587.chunk.js +0 -1
- package/dist/scripts/49.chunk.js +0 -249
- package/dist/scripts/49.chunk.js.map +0 -1
- package/dist/scripts/5-202373c80b.chunk.js +0 -1
- package/dist/scripts/5.chunk.js +0 -403
- package/dist/scripts/5.chunk.js.map +0 -1
- package/dist/scripts/50-8069668f8a.chunk.js +0 -1
- package/dist/scripts/50.chunk.js +0 -132
- package/dist/scripts/50.chunk.js.map +0 -1
- package/dist/scripts/51-6177cd4126.chunk.js +0 -1
- package/dist/scripts/51.chunk.js +0 -230
- package/dist/scripts/51.chunk.js.map +0 -1
- package/dist/scripts/52-96d9beee16.chunk.js +0 -1
- package/dist/scripts/52.chunk.js +0 -318
- package/dist/scripts/52.chunk.js.map +0 -1
- package/dist/scripts/53-be20bb20c9.chunk.js +0 -1
- package/dist/scripts/53.chunk.js +0 -212
- package/dist/scripts/53.chunk.js.map +0 -1
- package/dist/scripts/54-fdfdb33705.chunk.js +0 -1
- package/dist/scripts/54.chunk.js +0 -108
- package/dist/scripts/54.chunk.js.map +0 -1
- package/dist/scripts/55-306c5a0e4d.chunk.js +0 -1
- package/dist/scripts/55.chunk.js +0 -69
- package/dist/scripts/55.chunk.js.map +0 -1
- package/dist/scripts/56-db73243d04.chunk.js +0 -1
- package/dist/scripts/56.chunk.js +0 -209
- package/dist/scripts/56.chunk.js.map +0 -1
- package/dist/scripts/57-d5c787b4e3.chunk.js +0 -1
- package/dist/scripts/57.chunk.js +0 -211
- package/dist/scripts/57.chunk.js.map +0 -1
- package/dist/scripts/58-4d5ed35434.chunk.js +0 -1
- package/dist/scripts/58.chunk.js +0 -113
- package/dist/scripts/58.chunk.js.map +0 -1
- package/dist/scripts/59-ad37f90eca.chunk.js +0 -1
- package/dist/scripts/59.chunk.js +0 -108
- package/dist/scripts/59.chunk.js.map +0 -1
- package/dist/scripts/6-8ada925fb7.chunk.js +0 -1
- package/dist/scripts/6.chunk.js +0 -1382
- package/dist/scripts/6.chunk.js.map +0 -1
- package/dist/scripts/60-f95d0a0a90.chunk.js +0 -1
- package/dist/scripts/60.chunk.js +0 -110
- package/dist/scripts/60.chunk.js.map +0 -1
- package/dist/scripts/61-8ce5227508.chunk.js +0 -1
- package/dist/scripts/61.chunk.js +0 -161
- package/dist/scripts/61.chunk.js.map +0 -1
- package/dist/scripts/62-62d450716a.chunk.js +0 -1
- package/dist/scripts/62.chunk.js +0 -145
- package/dist/scripts/62.chunk.js.map +0 -1
- package/dist/scripts/63-91623df29f.chunk.js +0 -1
- package/dist/scripts/63.chunk.js +0 -139
- package/dist/scripts/63.chunk.js.map +0 -1
- package/dist/scripts/64-c0e959f4bb.chunk.js +0 -1
- package/dist/scripts/64.chunk.js +0 -142
- package/dist/scripts/64.chunk.js.map +0 -1
- package/dist/scripts/65-37ba4bad15.chunk.js +0 -1
- package/dist/scripts/65.chunk.js +0 -170
- package/dist/scripts/65.chunk.js.map +0 -1
- package/dist/scripts/66.chunk.js +0 -172
- package/dist/scripts/66.chunk.js.map +0 -1
- package/dist/scripts/67-edfc0ba1e9.chunk.js +0 -1
- package/dist/scripts/67.chunk.js +0 -173
- package/dist/scripts/67.chunk.js.map +0 -1
- package/dist/scripts/68.chunk.js +0 -165
- package/dist/scripts/68.chunk.js.map +0 -1
- package/dist/scripts/69.chunk.js +0 -102
- package/dist/scripts/69.chunk.js.map +0 -1
- package/dist/scripts/7-81162e12a2.chunk.js +0 -1
- package/dist/scripts/7.chunk.js +0 -2629
- package/dist/scripts/7.chunk.js.map +0 -1
- package/dist/scripts/70.chunk.js +0 -60
- package/dist/scripts/70.chunk.js.map +0 -1
- package/dist/scripts/71.chunk.js +0 -65
- package/dist/scripts/71.chunk.js.map +0 -1
- package/dist/scripts/72.chunk.js +0 -37
- package/dist/scripts/72.chunk.js.map +0 -1
- package/dist/scripts/73.chunk.js +0 -65
- package/dist/scripts/73.chunk.js.map +0 -1
- package/dist/scripts/74.chunk.js +0 -67
- package/dist/scripts/74.chunk.js.map +0 -1
- package/dist/scripts/75.chunk.js +0 -104
- package/dist/scripts/75.chunk.js.map +0 -1
- package/dist/scripts/76.chunk.js +0 -123
- package/dist/scripts/76.chunk.js.map +0 -1
- package/dist/scripts/77.chunk.js +0 -1001
- package/dist/scripts/77.chunk.js.map +0 -1
- package/dist/scripts/78.chunk.js +0 -36
- package/dist/scripts/78.chunk.js.map +0 -1
- package/dist/scripts/79.chunk.js +0 -417
- package/dist/scripts/79.chunk.js.map +0 -1
- package/dist/scripts/8-7dc2d39ce2.chunk.js +0 -1
- package/dist/scripts/8-a89310bd50.chunk.js +0 -1
- package/dist/scripts/8.chunk.js +0 -930
- package/dist/scripts/8.chunk.js.map +0 -1
- package/dist/scripts/80.chunk.js +0 -327
- package/dist/scripts/80.chunk.js.map +0 -1
- package/dist/scripts/81.chunk.js +0 -619
- package/dist/scripts/81.chunk.js.map +0 -1
- package/dist/scripts/82.chunk.js +0 -437
- package/dist/scripts/82.chunk.js.map +0 -1
- package/dist/scripts/83.chunk.js +0 -633
- package/dist/scripts/83.chunk.js.map +0 -1
- package/dist/scripts/84.chunk.js +0 -1938
- package/dist/scripts/84.chunk.js.map +0 -1
- package/dist/scripts/85.chunk.js +0 -692
- package/dist/scripts/85.chunk.js.map +0 -1
- package/dist/scripts/86.chunk.js +0 -829
- package/dist/scripts/86.chunk.js.map +0 -1
- package/dist/scripts/87.chunk.js +0 -622
- package/dist/scripts/87.chunk.js.map +0 -1
- package/dist/scripts/88.chunk.js +0 -962
- package/dist/scripts/88.chunk.js.map +0 -1
- package/dist/scripts/89.chunk.js +0 -943
- package/dist/scripts/89.chunk.js.map +0 -1
- package/dist/scripts/9-9865a75c99.chunk.js +0 -1
- package/dist/scripts/9.chunk.js +0 -24
- package/dist/scripts/9.chunk.js.map +0 -1
- package/dist/scripts/90.chunk.js +0 -345
- package/dist/scripts/90.chunk.js.map +0 -1
- package/dist/scripts/91.chunk.js +0 -108
- package/dist/scripts/91.chunk.js.map +0 -1
- package/dist/scripts/92.chunk.js +0 -110
- package/dist/scripts/92.chunk.js.map +0 -1
- package/dist/scripts/93.chunk.js +0 -165
- package/dist/scripts/93.chunk.js.map +0 -1
- package/dist/scripts/94.chunk.js +0 -102
- package/dist/scripts/94.chunk.js.map +0 -1
- package/dist/scripts/95.chunk.js +0 -65
- package/dist/scripts/95.chunk.js.map +0 -1
- package/dist/scripts/96.chunk.js +0 -65
- package/dist/scripts/96.chunk.js.map +0 -1
- package/dist/scripts/97.chunk.js +0 -67
- package/dist/scripts/97.chunk.js.map +0 -1
- package/dist/scripts/98.chunk.js +0 -104
- package/dist/scripts/98.chunk.js.map +0 -1
- package/dist/scripts/99.chunk.js +0 -123
- package/dist/scripts/99.chunk.js.map +0 -1
- package/dist/scripts/bundle-0958accd59.min.js +0 -15
- package/dist/scripts/bundle.js +0 -47043
- package/dist/scripts/bundle.js.map +0 -1
- package/dist/scripts/polyfills-1f23e4a487.min.js +0 -1
- package/dist/scripts/polyfills-8a0101e5f1.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 Projects/@clickview/packages/libs/shared/src/apps/playlists/components/empty-state/EmptyVideoList.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/back-button/BackButton.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/banner-header/BannerHeader.tsx","webpack://@clickview/lite/C:/ClickView Projects/@clickview/packages/libs/shared/src/components/banner-header/banner-header.scss?f381","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/empty-state/EmptyState.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/infinite-scroll-footer/InfiniteScrollFooter.tsx","webpack://@clickview/lite/C:/ClickView Projects/@clickview/packages/libs/shared/src/components/infinite-scroll-footer/infinite-scroll-footer.scss?cf3d","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/video-list/partial-loading/PartialVideoList.tsx","webpack://@clickview/lite/C:/ClickView Projects/@clickview/packages/libs/shared/src/components/video-list/partial-loading/partial-video-list.scss?6264","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/constants/SupportArticles.ts","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/flight-requests/FavouriteVideoRequests.ts","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/hooks/UseInfiniteList.ts","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/hooks/UseInfiniteScroll.ts","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/hooks/UseReorderedItems.ts","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/hooks/UseSelectAllPages.ts","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/utils/RatingHelper.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/playlists/components/playlist-header/PlaylistHeader.tsx","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/playlists/components/playlist-header/partial-loading/PartialPlaylistHeader.tsx","webpack://@clickview/lite/./src/apps/playlists/components/playlist-header/partial-loading/partial-playlist-header.scss?2ed2","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/playlists/components/video-list/SortableVideoListContainer.tsx","webpack://@clickview/lite/./src/apps/playlists/components/video-list/sortable-video-list-container.scss?ea6f","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/playlists/utils/PlaylistVideoActionAppLinkHelper.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/playlists/views/playlist/PlaylistView.tsx","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/playlists/views/playlist/PlaylistViewUtils.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/watch-history/flight-requests/VideoHistoryRequests.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/shared/hooks/useHandleObjectError.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/shared/hooks/useVideoMixin.ts"],"names":[],"mappings":"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","file":"scripts/21.chunk.js","sourcesContent":["import * as React from 'react';\r\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { useService } from 'libs/common/react/hooks/UseService';\r\n\r\nimport { SharedServices } from 'libs/shared/constants/SharedServices';\r\nimport { SupportArticles } from 'libs/shared/constants/SupportArticles';\r\nimport { EmptyState } from 'libs/shared/components/empty-state/EmptyState';\r\nimport { ImageUrlService } from 'libs/shared/services/ImageUrlService';\r\nimport { CurrentUser, Playlist } from 'libs/shared/interfaces';\r\n\r\nconst getPhrase = LanguageService.encloseNamespace('playlists.emptyState');\r\n\r\ninterface EmptyVideoListComponentProps {\r\n playlist: Playlist;\r\n currentUser: CurrentUser;\r\n supportSiteUrl: string;\r\n}\r\n\r\nexport function EmptyVideoListComponent(props: EmptyVideoListComponentProps): React.ReactElement {\r\n const imageUrlService = useService<ImageUrlService>(SharedServices.ImageUrl);\r\n const imageUrls = imageUrlService.getImageUrls();\r\n const supportArticleUrl = UrlHelper.safeUrlConcat(props.supportSiteUrl, SupportArticles.ADD_TO_PLAYLIST);\r\n\r\n const currentUserIsPlaylistOwner = props.playlist.owner?.id === props.currentUser.id;\r\n\r\n return (\r\n <EmptyState\r\n imageUrl={imageUrls.EmptyStates.VIDEOS}\r\n heading={getPhrase('noVideosHeading')}\r\n description={currentUserIsPlaylistOwner &&\r\n `<a href=\"${supportArticleUrl}\" target=\"_blank\">${getPhrase('noVideosInfo')}</a>`\r\n }\r\n />\r\n );\r\n}","import * as React from 'react';\r\nimport { Core } from 'libs/common/core';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\n\r\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\r\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\r\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\r\n\r\nconst namespace = 'shared.backButton';\r\n\r\ninterface BackButtonProps {\r\n appLink: Core.AppLink;\r\n backToName?: string;\r\n color?: 'black' | 'white';\r\n extraClasses?: string;\r\n}\r\n\r\nBackButton.defaultProps = {\r\n color: 'black',\r\n extraClasses: ''\r\n};\r\n\r\nexport function BackButton({ backToName, appLink, color, extraClasses }: BackButtonProps): React.ReactElement {\r\n const backPhrase = backToName\r\n ? LanguageService.getPhrase(namespace, 'backTo', { backToName })\r\n : LanguageService.getPhrase(namespace, 'back');\r\n\r\n const colorClass = color === 'black' ? '' : 'text-light';\r\n\r\n return (\r\n <AppLink appLink={appLink} className={`d-inline-flex align-items-center h5 mb-0 ${extraClasses} ${colorClass}`}>\r\n <SvgContainer svgName={cvSvgLibrary.ChevronLeft} size={SvgContainerSize.Medium} />\r\n <span className='ml-1'>{backPhrase}</span>\r\n </AppLink>\r\n );\r\n}","import * as React from 'react';\r\nimport { Core } from 'libs/common/core';\r\n\r\nimport { BackButton } from 'libs/shared/components/back-button/BackButton';\r\nimport { Banner } from 'libs/shared/interfaces';\r\nimport { ImageHelper } from 'libs/shared/utils/ImageHelper';\r\nimport { ImageType, ImageSize, ResizeType } from 'libs/shared/enums/Images';\r\nimport { Actions, ActionOptions } from 'libs/shared/components/actions/Actions';\r\n\r\nimport styles from './banner-header.scss';\r\n\r\ninterface BannerHeaderProps {\r\n heading: string;\r\n banner: Banner;\r\n imageCdnUrl: string;\r\n actions?: ActionOptions[];\r\n backButtonAppLink?: Core.AppLink;\r\n backButtonText?: string;\r\n backButtonClasses?: string;\r\n sortComponent?: JSX.Element;\r\n}\r\n\r\nexport const BannerHeader = React.memo(function(props: React.PropsWithChildren<BannerHeaderProps>): React.ReactElement {\r\n const { heading, banner, imageCdnUrl, actions, sortComponent } = props;\r\n\r\n const url = ImageHelper.createBannerUrl(banner, {\r\n fallbackBaseUrl: imageCdnUrl,\r\n fallbackCategoryName: heading,\r\n type: ImageType.Banners,\r\n }, {\r\n size: ImageSize.Large,\r\n resizeType: ResizeType.Cover\r\n });\r\n\r\n return (\r\n <div className='banner-header' style={{ backgroundImage: `url('${url}')` }}>\r\n {props.backButtonAppLink && (\r\n <div className='pt-3'>\r\n <BackButton\r\n appLink={props.backButtonAppLink}\r\n backToName={props.backButtonText}\r\n extraClasses={props.backButtonClasses}\r\n color='white'\r\n />\r\n </div>\r\n )}\r\n <h1 className={`${styles.text} text-white text-shadow position-absolute mb-3 clamp-2`}>\r\n {heading}\r\n </h1>\r\n {!!actions && (\r\n <div className={styles.actionsContainer}>\r\n <Actions actions={actions} sortComponent={sortComponent} />\r\n </div>\r\n )}\r\n </div>\r\n );\r\n}, (prevProps, nextProps): boolean => (\r\n prevProps.actions === nextProps.actions\r\n));\r\n\r\nexport const PartialBannerHeader = () => <div className={`partial-banner partial-loading-background`} />;","// extracted by mini-css-extract-plugin\nmodule.exports = {\"actionsContainer\":\"cv--actionsContainer--286KF\",\"text\":\"cv--text--3TSgh\"};","import * as React from 'react';\r\n\r\ninterface EmptyStateProps {\r\n imageUrl: string;\r\n heading: string;\r\n description?: string;\r\n}\r\n\r\nexport function EmptyState(props: EmptyStateProps): React.ReactElement {\r\n const { imageUrl, heading, description } = props;\r\n\r\n return (\r\n <div className='empty-state-container'>\r\n <div className='content-container'>\r\n {imageUrl && <img src={imageUrl} />}\r\n <h1>{heading}</h1>\r\n {description && <p dangerouslySetInnerHTML={{ __html: description }}/>}\r\n </div>\r\n </div>\r\n );\r\n}","import * as React from 'react';\r\nimport { Spinner } from 'react-bootstrap';\r\n\r\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\r\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\r\n\r\nimport styles from './infinite-scroll-footer.scss';\r\n\r\ninterface InfiniteScrollFooterProps {\r\n isFetching: boolean;\r\n onClick?: () => void;\r\n}\r\n\r\nexport function InfiniteScrollFooter(props: InfiniteScrollFooterProps): React.ReactElement {\r\n return (\r\n <div className={`p-3 text-center ${styles.container}`}>\r\n {props.isFetching\r\n ? <Spinner as='span' animation='border' role='status' className={styles.spinner} />\r\n : <SvgContainer\r\n svgName={cvSvgLibrary.ChevronDown}\r\n className='svg-container cursor-pointer'\r\n size={SvgContainerSize.Large}\r\n onClick={props.onClick}\r\n />\r\n }\r\n </div>\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"cv--container--1_KC6\",\"spinner\":\"cv--spinner--VXlcl\"};","import React from 'react';\r\nimport { Row, Col } from 'react-bootstrap';\r\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\r\nimport { useGetMediaQueryString } from 'libs/shared/hooks/UseGetMediaQueryString';\r\n\r\nimport styles from './partial-video-list.scss';\r\n\r\ninterface PartialVideoListProps {\r\n withReordering?: boolean;\r\n numVideos?: number;\r\n}\r\n\r\nPartialVideoList.defaultProps = {\r\n numVideos: 15\r\n};\r\n\r\nexport function PartialVideoList(props: PartialVideoListProps): JSX.Element {\r\n const mediaQuery = useGetMediaQueryString();\r\n const isMobile = mediaQuery === MediaQueryStrings.XS;\r\n const isIPad = mediaQuery === MediaQueryStrings.SM || mediaQuery === MediaQueryStrings.MD;\r\n\r\n const withDragHandle = props.withReordering && !isMobile;\r\n\r\n return (\r\n <>\r\n {Array(props.numVideos).fill(null).map((_, i) => (\r\n <Row key={i} className='py-2'>\r\n <Col xs={isMobile ? 12 : isIPad ? 4 : 3} className='flex-column align-items-flex-start mb-1'>\r\n <Row>\r\n {!!withDragHandle && (\r\n <div className='d-flex align-items-center justify-content-center col-2'>\r\n <div className={`partial-loading-background ${styles.partialDragHandle}`} />\r\n </div>\r\n )}\r\n <Col xs={withDragHandle ? 10 : 12}>\r\n <div className={`partial-loading-background rounded-lg ${styles.partialThumbnail}`} />\r\n </Col>\r\n </Row>\r\n </Col>\r\n <Col xs={isMobile ? 12 : isIPad ? 8 : 9}>\r\n <div className={`partial-loading-background ${styles.partialSeriesLink}`} />\r\n <div className={`partial-loading-background mb-1 ${styles.partialName}`} />\r\n <div className={`partial-loading-background ${styles.partialDescription}`} />\r\n <div className={`partial-loading-background ${styles.partialBadges}`} />\r\n <div className={`partial-loading-background ${styles.partialActions}`} />\r\n </Col>\r\n </Row>\r\n ))}\r\n </>\r\n );\r\n}\r\n\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"partialName\":\"cv--partialName--7KNC2\",\"partialDescription\":\"cv--partialDescription--Vk_wR\",\"partialThumbnail\":\"cv--partialThumbnail--3peRZ\",\"partialDragHandle\":\"cv--partialDragHandle--1F7_f\"};","export const SupportArticles: { [article: string]: string } = {\r\n ADD_TO_PLAYLIST: 'hc/articles/115005679748'\r\n};","import { Flight } from 'libs/common/flight';\r\nimport { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\r\nimport { Xhr } from 'libs/common/backbone/interfaces';\r\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\r\n\r\nimport { SharedWithStatements } from 'libs/shared/constants/WithStatements';\r\n\r\nfunction favouriteVideo(\r\n videoId: string, userId: string, success?: () => void, error?: (Xhr: Xhr) => void\r\n): Flight.Request {\r\n return {\r\n url: `/api/domain/v2/objects/${userId}`,\r\n key: `favourite:video:${userId}:${videoId}`,\r\n data: { favouriteVideos: videoId },\r\n type: HttpVerbs.PUT,\r\n invalidationKeys: [ `favourite:videos:${userId}`, `video:is:favourited:${userId}` ],\r\n success,\r\n error\r\n };\r\n}\r\n\r\nfunction unfavouriteVideo(\r\n videoId: string, userId: string, success?: () => void, error?: (Xhr: Xhr) => void\r\n): Flight.Request {\r\n return {\r\n url: `/api/domain/v2/objects/${userId}/favouriteVideos/${videoId}`,\r\n key: `favourite:video:${userId}:${videoId}`,\r\n type: HttpVerbs.DELETE,\r\n invalidationKeys: [ `favourite:videos:${userId}`, `video:is:favourited:${userId}` ],\r\n success,\r\n error\r\n };\r\n}\r\n\r\nexport const FavouriteVideoRequests = {\r\n favouriteVideos(userId: string, cursor?: string): Flight.Request {\r\n const query = `${SharedWithStatements.VIDEO_COLLECTION}${addCursor(cursor)}`;\r\n\r\n return {\r\n url: `/api/domain/v2/objects/${userId}/favouriteVideos?query=${query}`,\r\n key: `favourite:videos:${userId}${cursor ? `:${cursor}` : ''}`\r\n };\r\n },\r\n\r\n updateIsVideoFavourited(\r\n videoId: string, userId: string, shouldFavourite: boolean, success?: () => void, error?: (Xhr: Xhr) => void\r\n ): Flight.Request {\r\n const requestFn = shouldFavourite\r\n ? favouriteVideo\r\n : unfavouriteVideo;\r\n\r\n return requestFn(videoId, userId, success, error);\r\n },\r\n\r\n isFavourited(userId: string, ids: string[]): Flight.Request {\r\n const sortedIds = ids.slice().sort();\r\n\r\n const params = sortedIds.map(i => `id=${i}`);\r\n\r\n if (!params.length)\r\n return;\r\n\r\n return {\r\n url: `/api/domain/v2/objects?query=favouritedBy{id:${userId}}&${params.join('&')}`,\r\n key: `video:is:favourited:${userId}:by:id:${sortedIds.join(',')}`,\r\n formatData: (videos: HashObject[]) => {\r\n if (!videos?.length)\r\n return videos;\r\n\r\n const setIsFavourited = (video: HashObject) => {\r\n const { favouritedBy, ...v } = video;\r\n\r\n // As we filtered by userId, if there are any users, set isFavourited to true.\r\n return {\r\n ...v,\r\n isFavourited: !!favouritedBy?.data?.length\r\n };\r\n };\r\n\r\n return videos.map(setIsFavourited);\r\n }\r\n };\r\n }\r\n};\r\n\r\nfunction addCursor(cursor: string): string {\r\n return cursor ? `&cursor=${cursor}` : '';\r\n}","import { useEffect } from 'react';\r\n\r\nimport { Flight } from 'libs/common/flight';\r\n\r\nimport { BaseObject } from 'libs/shared/interfaces';\r\n\r\nimport { useSelectAllPages } from './UseSelectAllPages';\r\nimport { useInfiniteScroll } from './UseInfiniteScroll';\r\n\r\ninterface UseInfiniteListResult<T extends BaseObject> {\r\n items: T[];\r\n hasMore: boolean;\r\n isFetching: boolean;\r\n}\r\n\r\n/**\r\n * Hook to extract an infinite list from the application state,\r\n * save it locally in state and only update when new data\r\n * is fetched.\r\n * \r\n * @param getRequest - callback function to get the request for each page.\r\n * Can be false if the request requires data that hasn't yet been fetched - e.g. user id.\r\n * \r\n * @param fetchNext - callback function to fetch a page.\r\n * Can be false if the request requires data that hasn't yet been fetched - e.g. user id.\r\n */\r\nexport function useInfiniteList<T extends BaseObject>(\r\n getRequest: ((cursor?: string) => Flight.Request) | false,\r\n fetchNext: ((cursor?: string) => void) | false\r\n): UseInfiniteListResult<T> {\r\n const fetchNextFn = (fetchNext as Function);\r\n\r\n const response = useSelectAllPages<T>(getRequest && ((cursor?: string) => getRequest(cursor).key));\r\n\r\n useInfiniteScroll(() => fetchNext && fetchNextFn(response.nextCursor), !!response.nextCursor, response.isFetching);\r\n\r\n useEffect(() => {\r\n if (response.shouldInitialFetch && fetchNext)\r\n fetchNextFn();\r\n }, [ response.shouldInitialFetch, fetchNext ]);\r\n\r\n return { items: response.items, hasMore: !!response.nextCursor, isFetching: response.isFetching };\r\n}","import { useEffect } from 'react';\r\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\r\n\r\nconst SCROLL_TOLERANCE = 400; // value in px\r\n\r\nexport function useInfiniteScroll(fetchNextPage: () => void, hasMore: boolean, isFetching: boolean): void {\r\n const handleScroll = (): void => {\r\n if (isFetching)\r\n return;\r\n\r\n const currentScrollHeight = window.innerHeight + document.documentElement.scrollTop;\r\n\r\n const totalHeight = document.documentElement.scrollHeight - SCROLL_TOLERANCE;\r\n\r\n if (currentScrollHeight < totalHeight)\r\n return;\r\n\r\n fetchNextPage();\r\n };\r\n\r\n useEffect(() => {\r\n const onScroll = FunctionHelper.throttle(handleScroll, 200);\r\n\r\n if (hasMore)\r\n window.addEventListener('scroll', onScroll);\r\n\r\n return () => window.removeEventListener('scroll', onScroll);\r\n }, [hasMore]);\r\n}","import { useState, useEffect } from 'react';\r\n\r\nimport { BaseObject } from 'libs/shared/interfaces';\r\n\r\nfunction isOrderEqual(arr1: BaseObject[], arr2: BaseObject[]): boolean {\r\n let isEqual = true;\r\n\r\n if (arr1.length !== arr2.length)\r\n return false;\r\n\r\n for (let i = 0; i < arr1.length; i++) {\r\n if (arr1[i].id !== arr2[i].id) {\r\n isEqual = false;\r\n break;\r\n }\r\n }\r\n\r\n return isEqual;\r\n}\r\n\r\n/**\r\n * This function can be used to temporarily store an array of reordered objects\r\n * until the array obtained from the application store updates to the new order.\r\n * \r\n * @param items array of objects from application store.\r\n */\r\nexport function useReorderedItems<T extends BaseObject>(\r\n items: T[]\r\n): [ T[], React.Dispatch<React.SetStateAction<T[]>> ] {\r\n const [ reorderedItems, setReorderedItems ] = useState<T[]>();\r\n\r\n useEffect(() => {\r\n if (!reorderedItems)\r\n return;\r\n\r\n if (items.length !== reorderedItems.length || isOrderEqual(items, reorderedItems))\r\n setReorderedItems(null);\r\n }, [items]);\r\n\r\n return [ reorderedItems, setReorderedItems ];\r\n}","import { useMemo } from 'react';\r\nimport { useSelector } from 'react-redux';\r\n\r\nimport { Flight } from 'libs/common/flight';\r\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\r\nimport { ApplicationState } from 'libs/common/react/interfaces';\r\nimport { BasePaginatedCollection } from 'libs/shared/interfaces';\r\n\r\nconst safeGetCursor = (request: Flight.Response<any>): string => {\r\n return request\r\n && request.data\r\n && request.data.pagination\r\n && request.data.pagination.cursors\r\n && request.data.pagination.cursors.next;\r\n};\r\n\r\ninterface SelectAllPagesResult<T> {\r\n items: T[];\r\n shouldInitialFetch: boolean;\r\n nextCursor: string;\r\n isFetching: boolean;\r\n}\r\n\r\n/**\r\n * Hook to select all pages of a collection from the store and flatten them.\r\n * It will not trigger any fetches.\r\n * \r\n * @param getKey - callback function to get the key for each page.\r\n * Can be false if the key requires data that hasn't yet been fetched - e.g. user id.\r\n */\r\nexport function useSelectAllPages<T>(getKey: ((cursor?: string) => string) | false): SelectAllPagesResult<T> {\r\n return useSelector(useMemo(() => (state: ApplicationState) => {\r\n const getKeyFn = (getKey as Function);\r\n\r\n let request = FunctionHelper.isFunction(getKey) &&\r\n Flight.getResponse<BasePaginatedCollection<T>>(state, getKeyFn());\r\n\r\n let isFetching = request && request.isFetching;\r\n const shouldInitialFetch = request && request.shouldFetch;\r\n\r\n let items = request && request.data && request.data.data;\r\n let nextCursor = safeGetCursor(request);\r\n\r\n // Retrieve all pages that are currently in the store.\r\n while (nextCursor) {\r\n request = Flight.getResponse<BasePaginatedCollection<T>>(state, getKeyFn(nextCursor));\r\n\r\n isFetching = request.isFetching;\r\n\r\n // If next page hasn't been fetched, break.\r\n if (request.shouldFetch)\r\n break;\r\n\r\n let newItems = request.data && request.data.data;\r\n newItems && items.push(...newItems);\r\n\r\n nextCursor = safeGetCursor(request);\r\n }\r\n\r\n return {\r\n shouldInitialFetch,\r\n items,\r\n nextCursor,\r\n isFetching,\r\n };\r\n }, [getKey]));\r\n}","import { OnlineCurrentUser } from 'libs/shared/interfaces';\r\nimport { OnlineUserRole } from 'libs/shared/enums/UserRole';\r\n\r\nexport const RatingHelper = {\r\n getMaxAllowedRatingForUser(user: OnlineCurrentUser): number | null {\r\n if (user?.onlineRole === OnlineUserRole.Staff)\r\n return;\r\n\r\n return user?.maxAllowedRating;\r\n }\r\n};","import * as React from 'react';\r\n\r\nimport { Core } from 'libs/common/core';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\r\nimport { LocationContext, UserAction, ToggleDescriptor, EntityType, WorkflowPhase } from 'libs/analytics/interfaces';\r\n\r\nimport { useMediaQuery } from 'libs/shared/hooks/UseMediaQuery';\r\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\r\nimport { Playlist, AppLinkWithLabel } from 'libs/shared/interfaces';\r\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\r\nimport { BannerHeader } from 'libs/shared/components/banner-header/BannerHeader';\r\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\r\n\r\nimport { Actions } from 'shared/constants/LiteActions';\r\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\r\n\r\nimport { PartialPlaylistHeader } from './partial-loading/PartialPlaylistHeader';\r\n\r\nconst namespace = 'playlists.playlistHeader';\r\nconst getPhrase = LanguageService.encloseNamespace(namespace);\r\n\r\ninterface PlaylistHeaderProps {\r\n playlistId: string;\r\n playlist: Playlist;\r\n hasVideos: boolean;\r\n isFollowing: boolean;\r\n follow: (shouldFollow: boolean, onSuccess: () => void, onError: () => void) => void;\r\n application: string;\r\n imageCdnUrl: string;\r\n showPartialLoading: boolean;\r\n showBreadcrumbs: boolean;\r\n showDateMetadata: boolean;\r\n canEdit?: boolean;\r\n canFollow?: boolean;\r\n isShared?: boolean;\r\n playAllAppLink?: Core.AppLink;\r\n returnAppLink?: AppLinkWithLabel;\r\n lastUpdated?: string;\r\n}\r\n\r\nexport function PlaylistHeader(props: PlaylistHeaderProps): JSX.Element {\r\n // Store isFollowing in local state so that it updates immediately.\r\n const [ isFollowing, setIsFollowing ] = React.useState(props.isFollowing);\r\n const [ showFollowSpinner, setShowFollowSpinner ] = React.useState(false);\r\n\r\n React.useEffect(() => setIsFollowing(props.isFollowing), [props.isFollowing]);\r\n\r\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\r\n\r\n if (props.showPartialLoading)\r\n return <PartialPlaylistHeader />;\r\n\r\n const description = props.playlist.description;\r\n\r\n const application = props.application;\r\n const args = [props.playlist.id];\r\n\r\n const actions: ActionOptions[] = [{\r\n label: getPhrase('share'),\r\n appLink: {\r\n application: AppChannels.DEFAULT,\r\n action: Actions.Default.SHARE,\r\n args: [props.playlist.id],\r\n params: { entityType: 'playlist' }\r\n },\r\n svgName: cvSvgLibrary.Share,\r\n className: 'btn btn-light',\r\n button: !isMobile\r\n }];\r\n\r\n if (props.canEdit) {\r\n actions.push(\r\n // TODO: Add collaborate\r\n {\r\n label: getPhrase('edit'),\r\n appLink: { application, action: Actions.Playlists.EDIT_PLAYLIST, args },\r\n svgName: cvSvgLibrary.Edit,\r\n className: 'btn btn-light',\r\n button: false\r\n },\r\n {\r\n label: getPhrase('delete'),\r\n appLink: { application, action: Actions.Playlists.DELETE_PLAYLIST, args },\r\n svgName: cvSvgLibrary.Delete,\r\n className: 'text-danger',\r\n button: false\r\n }\r\n );\r\n }\r\n\r\n if (!props.canEdit) {\r\n actions.push(\r\n {\r\n label: getPhrase(isFollowing ? 'following' : 'follow'),\r\n onClick: () => {\r\n setIsFollowing(!isFollowing);\r\n setShowFollowSpinner(true);\r\n props.follow(\r\n !isFollowing,\r\n () => {\r\n setShowFollowSpinner(false);\r\n AnalyticsHelper.logUserAction({ id: props.playlistId }, {\r\n location: LocationContext.Banner,\r\n actionType: UserAction.Follow,\r\n descriptor: isFollowing ? ToggleDescriptor.Off : ToggleDescriptor.On,\r\n entity: EntityType.Playlist,\r\n workflowPhase: WorkflowPhase.Complete\r\n });\r\n },\r\n () => {\r\n setShowFollowSpinner(false);\r\n setIsFollowing(isFollowing);\r\n }\r\n );\r\n },\r\n svgName: cvSvgLibrary.Bell,\r\n className: `btn follow-btn btn-${isFollowing ? 'dark' : 'light'}`,\r\n button: !isMobile,\r\n showSpinner: showFollowSpinner\r\n },\r\n // TODO: Add copy playlist\r\n );\r\n }\r\n\r\n return (\r\n <>\r\n <BannerHeader\r\n heading={props.playlist.name}\r\n banner={props.playlist.banner}\r\n imageCdnUrl={props.imageCdnUrl}\r\n actions={actions.length && actions}\r\n />\r\n {!!description && (\r\n <p className='py-2 border-bottom'>{description}</p>\r\n )}\r\n </>\r\n );\r\n}","import React from 'react';\r\nimport { PartialBannerHeader } from 'libs/shared/components/banner-header/BannerHeader';\r\n\r\nimport styles from './partial-playlist-header.scss';\r\n\r\nexport function PartialPlaylistHeader(): JSX.Element {\r\n return (\r\n <>\r\n <PartialBannerHeader />\r\n <div className='mb-2'>\r\n <div className={`partial-loading-background my-2 border-bottom ${styles.partialDescription}`} />\r\n </div>\r\n </>\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"partialDescription\":\"cv--partialDescription--3cyjk\"};","import * as React from 'react';\r\nimport { SortStart, SortEnd } from 'react-sortable-hoc';\r\n\r\nimport { Core } from 'libs/common/core';\r\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\r\nimport { DevError } from 'libs/common/backbone/errors/DevError';\r\nimport { SortableVideoList, VideoList, VideoListProps } from 'libs/shared/components/video-list/VideoList';\r\nimport { PartialVideoList } from 'libs/shared/components/video-list/partial-loading/PartialVideoList';\r\n\r\nimport styles from './sortable-video-list-container.scss';\r\n\r\ninterface SortableVideoListContainerProps extends VideoListProps {\r\n playlistId: string;\r\n onSortComplete: (oldIdx: number, newIdx: number) => void;\r\n onSortStart?: (index: number) => void;\r\n isUserSignedIn: boolean;\r\n canEdit?: boolean;\r\n showPartialLoading?: boolean;\r\n fetchRestrictions?: () => void;\r\n}\r\n\r\nexport function SortableVideoListContainer(props: SortableVideoListContainerProps): React.ReactElement {\r\n const { onSortComplete, onSortStart, showPartialLoading, ...videoListProps } = props;\r\n\r\n const [ currentSortingIndex, setCurrentSortingIndex ] = React.useState<number>();\r\n\r\n const onSortStartHandler = (index: number) => {\r\n if (FunctionHelper.isFunction(onSortStart))\r\n onSortStart(index);\r\n };\r\n\r\n const onSortEnd = (sort: SortEnd) => {\r\n setCurrentSortingIndex(null);\r\n\r\n if (!FunctionHelper.isFunction(onSortComplete)) {\r\n Core.ErrorHelper.throw(new DevError('An onSortComplete callback function must be passed to SortableVideoListComponent'));\r\n return;\r\n }\r\n\r\n onSortComplete(sort.oldIndex, sort.newIndex);\r\n };\r\n\r\n if (showPartialLoading)\r\n return <PartialVideoList withReordering />;\r\n\r\n if (!props.canEdit)\r\n return <VideoList {...videoListProps} />;\r\n\r\n return (\r\n <SortableVideoList\r\n {...videoListProps}\r\n currentSortingIndex={currentSortingIndex}\r\n updateBeforeSortStart={({ index }: SortStart) => setCurrentSortingIndex(index)}\r\n onSortStart={({ index }: SortStart) => onSortStartHandler(index)}\r\n onSortEnd={onSortEnd}\r\n lockAxis='y'\r\n lockToContainerEdges\r\n lockOffset={[ '0%', '100%' ]} // Allow movement beyond the bottom of container\r\n helperClass={`bg-white ${styles.sortableItem}`}\r\n distance={1} // This allows mousedown/click events to be consumed before sorting is triggered.\r\n useDragHandle\r\n />\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"sortableItem\":\"cv--sortableItem--2eiPB\"};","import { Core } from 'libs/common/core';\r\nimport { Video } from 'libs/shared/interfaces';\r\nimport { VideoAction } from 'libs/shared/utils/video-actions/VideoActionsHelper';\r\n\r\nimport { Actions } from 'shared/constants/LiteActions';\r\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\r\n\r\nexport function getVideoActionAppLink(\r\n application: string,\r\n playlistId: string\r\n): (video: Video, action: VideoAction) => Core.AppLink {\r\n return (video: Video, action: VideoAction) => {\r\n switch (action) {\r\n case VideoAction.RemoveFromPlaylist:\r\n return { application, action: Actions.Playlists.REMOVE_VIDEO_FROM_PLAYLIST, args: [ video.id, playlistId ]};\r\n\r\n case VideoAction.AddToPlaylist:\r\n return { application, action: Actions.Playlists.ADD_TO_PLAYLIST, args: [video.id]};\r\n\r\n case VideoAction.Share:\r\n return {\r\n application: AppChannels.DEFAULT,\r\n action: Actions.Default.SHARE,\r\n args: [video.id],\r\n params: { entityType: 'video' }\r\n };\r\n }\r\n };\r\n}","import * as React from 'react';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport { Core } from 'libs/common/core';\r\nimport { Flight } from 'libs/common/flight';\r\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { WorkflowPhase, EntityType, UserAction, LocationContext, ToggleDescriptor } from 'libs/analytics/interfaces';\r\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\r\n\r\nimport { EmptyVideoListComponent } from 'libs/shared/apps/playlists/components/empty-state/EmptyVideoList';\r\nimport { AppLinkWithLabel, Restriction, Playlist, Config, Video, Series, Following, OnlineCurrentUser } from 'libs/shared/interfaces';\r\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\r\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\r\nimport { FavouriteVideoRequests } from 'libs/shared/flight-requests/FavouriteVideoRequests';\r\nimport { PlaylistRequests } from 'libs/shared/flight-requests/PlaylistRequests';\r\nimport { useSetPageTitle } from 'libs/common/react/hooks/UseSetPageTitle';\r\nimport { useInfiniteList } from 'libs/shared/hooks/UseInfiniteList';\r\nimport { InfiniteScrollFooter } from 'libs/shared/components/infinite-scroll-footer/InfiniteScrollFooter';\r\nimport { ReorderHelper } from 'libs/shared/utils/ReorderHelper';\r\nimport { RatingHelper } from 'libs/shared/utils/RatingHelper';\r\nimport { useReorderedItems } from 'libs/shared/hooks/UseReorderedItems';\r\nimport { VideoActionsContext } from 'libs/shared/context/VideoActionsContext';\r\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\r\n\r\nimport { useVideoMixin } from 'shared/hooks/useVideoMixin';\r\nimport { VideoRequests } from 'shared/flight-requests/VideoRequests';\r\nimport { useHandleObjectError } from 'shared/hooks/useHandleObjectError';\r\n\r\nimport { PlaylistHeader } from 'apps/playlists/components/playlist-header/PlaylistHeader';\r\nimport { SortableVideoListContainer } from 'apps/playlists/components/video-list/SortableVideoListContainer';\r\nimport { getVideoActionAppLink } from 'apps/playlists/utils/PlaylistVideoActionAppLinkHelper';\r\n\r\nimport * as PlaylistViewUtils from './PlaylistViewUtils';\r\n\r\nconst namespace = 'playlists.playlist';\r\n\r\ninterface PlaylistViewProps {\r\n playlistId: string;\r\n isShared?: boolean;\r\n application: string;\r\n getVideoAppLink: (video: Video) => Core.AppLink;\r\n getSeriesAppLink: (series: Series) => Core.AppLink;\r\n allowEdit?: boolean;\r\n showBreadcrumbs?: boolean;\r\n showDateMetadata?: boolean;\r\n playAllAppLink?: Core.AppLink;\r\n returnAppLink?: AppLinkWithLabel;\r\n filterByRating?: boolean;\r\n}\r\n\r\nexport function PlaylistView(props: PlaylistViewProps): React.ReactElement {\r\n const dispatch = useDispatch();\r\n const alerts = useAlerts();\r\n\r\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config);\r\n const user = Flight.useBasicFetch<OnlineCurrentUser>(UserRequests.currentUser());\r\n const isUserSignedIn = !ObjectHelper.isEmpty(user.data);\r\n\r\n const maxAllowedRating = props.filterByRating\r\n ? isUserSignedIn && RatingHelper.getMaxAllowedRatingForUser(user.data)\r\n : null;\r\n\r\n const playlistRequest = props.isShared\r\n ? !!user.data && PlaylistRequests.getSharedPlaylist(props.playlistId, maxAllowedRating)\r\n : PlaylistRequests.getPlaylist(props.playlistId);\r\n\r\n const playlist = Flight.useBasicFetch<Playlist>(playlistRequest);\r\n\r\n useHandleObjectError(playlist, PlaylistViewUtils.playlistErrors, user.data);\r\n\r\n const getVideosRequest = !!user.data && ((cursor?: string) => {\r\n const request = props.isShared ? PlaylistRequests.getSharedPlaylistVideos : PlaylistRequests.getPlaylistVideos;\r\n\r\n return request(props.playlistId, maxAllowedRating, cursor);\r\n });\r\n\r\n const following = Flight.useBasicFetch<Following>(!!user.data\r\n && PlaylistRequests.getIsFollowingPlaylist(props.playlistId, user.data.id));\r\n\r\n const fetchNext = (cursor?: string) => {\r\n Flight.getFetch(dispatch, getVideosRequest(cursor))();\r\n };\r\n\r\n const { items: videos, hasMore, isFetching } = useInfiniteList<Video>(getVideosRequest, fetchNext);\r\n\r\n useVideoMixin(videos);\r\n\r\n // Locally stored array of videos used to immediately reflect changes in order.\r\n const [ reorderedVideos, setReorderedVideos ] = useReorderedItems(videos);\r\n\r\n const restrictionsRequest = isUserSignedIn && !!videos && !!videos.length &&\r\n VideoRequests.getRestrictions(videos.map(v => v.id));\r\n\r\n const restrictions = Flight.useGetResponse<Restriction[]>(restrictionsRequest && restrictionsRequest.key);\r\n\r\n const fetchRestrictions = Flight.useGetFetch(restrictionsRequest);\r\n\r\n if (restrictionsRequest && restrictions.shouldFetch) {\r\n fetchRestrictions();\r\n }\r\n\r\n useSetPageTitle(!!playlist.data && playlist.data.name, [playlist.data]);\r\n\r\n const onSortStart = (index: number) => {\r\n const video = videos[index];\r\n\r\n if (video)\r\n PlaylistViewUtils.logSortAction(props.playlistId, video.id, WorkflowPhase.Start);\r\n };\r\n\r\n const onSortComplete = (oldIdx: number, newIdx: number) => {\r\n if (oldIdx === newIdx)\r\n return;\r\n\r\n const video = videos[oldIdx];\r\n\r\n if (!video)\r\n return;\r\n\r\n const { reorderedItems, reorderRequest } = ReorderHelper.reorder(videos, oldIdx, newIdx);\r\n\r\n setReorderedVideos(reorderedItems);\r\n\r\n PlaylistViewUtils.logSortAction(props.playlistId, video.id, WorkflowPhase.Complete);\r\n\r\n const onError = () => {\r\n setReorderedVideos(null);\r\n };\r\n\r\n Flight.fetch(dispatch, PlaylistRequests.reorderVideos(props.playlistId, reorderRequest, null, onError));\r\n };\r\n\r\n const follow = (shouldFollow: boolean, onSuccess: () => void, onError: () => void) => {\r\n const req = shouldFollow\r\n ? PlaylistRequests.followPlaylist\r\n : PlaylistRequests.unfollowPlaylist;\r\n\r\n const error = () => {\r\n onError();\r\n alerts.error(LanguageService.getPhrase(namespace, shouldFollow ? 'followError' : 'unfollowError'));\r\n };\r\n\r\n Flight.fetch(dispatch, req(props.playlistId, user.data.id, onSuccess, error));\r\n };\r\n\r\n const setFavourite = (video: Video, shouldFavourite: boolean, onError?: () => void) => {\r\n Flight.fetch(\r\n dispatch,\r\n FavouriteVideoRequests.updateIsVideoFavourited(video.id, user.data.id, shouldFavourite, () => {\r\n AnalyticsHelper.logUserAction({ id: video.id }, {\r\n entity: EntityType.Video,\r\n actionType: UserAction.Favourite,\r\n descriptor: shouldFavourite ? ToggleDescriptor.On : ToggleDescriptor.Off,\r\n location: LocationContext.VideoThumbnail,\r\n workflowPhase: WorkflowPhase.Complete\r\n });\r\n\r\n alerts.success(\r\n LanguageService.getPhrase(\r\n namespace,\r\n shouldFavourite ? 'favourited' : 'unfavourited',\r\n { video: video.name }\r\n )\r\n );\r\n }, onError)\r\n );\r\n };\r\n\r\n const canEdit = !!props.allowEdit && PlaylistViewUtils.canEditPlaylist(playlist.data, user.data);\r\n\r\n const playlistIsEmpty = !!videos && videos.length === 0;\r\n\r\n return (\r\n <VideoActionsContext.Provider\r\n value={{\r\n videoActions: PlaylistViewUtils.getVideoActions(canEdit),\r\n getActionAppLink: getVideoActionAppLink(props.application, props.playlistId),\r\n hideLabel: true\r\n }}\r\n >\r\n <div className='bg-white px-3'>\r\n <PlaylistHeader\r\n playlistId={props.playlistId}\r\n playlist={playlist.data}\r\n hasVideos={!playlistIsEmpty}\r\n isFollowing={following.data?.isFollowing}\r\n follow={follow}\r\n application={props.application}\r\n canEdit={canEdit}\r\n isShared={props.isShared}\r\n showBreadcrumbs={props.showBreadcrumbs}\r\n showDateMetadata={props.showDateMetadata}\r\n playAllAppLink={props.playAllAppLink}\r\n showPartialLoading={!playlist.data || !videos || !user.data || !config.data || !following.data}\r\n lastUpdated={!!videos && PlaylistViewUtils.getLastUpdatedDate(videos)}\r\n imageCdnUrl={!!config.data && config.data.imageCdnUrl}\r\n returnAppLink={props.returnAppLink}\r\n />\r\n <div className='mt-2'>\r\n {playlistIsEmpty\r\n ? (!!config.data && !!user.data && !!playlist.data) && (\r\n <EmptyVideoListComponent\r\n playlist={playlist.data}\r\n currentUser={user.data}\r\n supportSiteUrl={config.data.supportSiteUrl}\r\n />\r\n )\r\n : <SortableVideoListContainer\r\n videos={reorderedVideos || videos}\r\n playlistId={!!playlist.data && playlist.data.id}\r\n onSortStart={onSortStart}\r\n onSortComplete={onSortComplete}\r\n isUserSignedIn={isUserSignedIn}\r\n canEdit={canEdit}\r\n showPartialLoading={!videos || !user.data || !config.data}\r\n getVideoAppLink={props.getVideoAppLink}\r\n getSeriesAppLink={props.getSeriesAppLink}\r\n fetchRestrictions={fetchRestrictions}\r\n setFavourite={setFavourite}\r\n />\r\n }\r\n </div>\r\n {!!hasMore && <InfiniteScrollFooter isFetching={isFetching} onClick={fetchNext} />}\r\n </div>\r\n </VideoActionsContext.Provider>\r\n );\r\n}","import { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\r\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\r\n\r\nimport { Video, Playlist, CurrentUser } from 'libs/shared/interfaces';\r\nimport { VideoAction } from 'libs/shared/utils/video-actions/VideoActionsHelper';\r\n\r\nimport { WorkflowPhase, LocationContext, EntityType, UserAction } from 'libs/analytics/interfaces';\r\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\r\n\r\nimport { PlaylistNotFoundError } from 'shared/errors/playlists/playlist-not-found/LitePlaylistNotFoundError';\r\nimport { PlaylistPrivateError } from 'shared/errors/playlists/playlist-private/PlaylistPrivateError';\r\n\r\n/**\r\n * NOTE:\r\n * This will be wrong if we increase the playlist limit from 100, or\r\n * stop fetching all 100 videos at once.\r\n */\r\nexport function getLastUpdatedDate(videos: Video[]): string {\r\n const videoLastUpdatedDates: string[] = videos && videos.length && videos.map(v => v.dateAssociated);\r\n\r\n return (videoLastUpdatedDates && videoLastUpdatedDates.length)\r\n ? ArrayHelper.max<string, number>(videoLastUpdatedDates, (date: string) => new Date(date).getTime())\r\n : null;\r\n}\r\n\r\nexport function getVideoActions(canEdit: boolean): VideoAction[] {\r\n return [\r\n canEdit ? VideoAction.RemoveFromPlaylist : VideoAction.AddToPlaylist,\r\n VideoAction.Share\r\n ];\r\n}\r\n\r\nexport function logSortAction(playlistId: string, videoId: string, workflowPhase: WorkflowPhase) : void {\r\n AnalyticsHelper.logUserAction({ id: videoId, playlistId }, {\r\n location: LocationContext.VideoList,\r\n entity: EntityType.Video,\r\n actionType: UserAction.Move,\r\n workflowPhase\r\n });\r\n}\r\n\r\nexport function canEditPlaylist(playlist: Playlist, user: CurrentUser): boolean {\r\n if (ObjectHelper.isEmpty(user) || !playlist || ObjectHelper.isEmpty(playlist.owner))\r\n return false;\r\n\r\n return playlist.owner.id === user.id;\r\n}\r\n\r\nexport const playlistErrors = {\r\n notFound: PlaylistNotFoundError,\r\n forbidden: {\r\n privacy: PlaylistPrivateError\r\n }\r\n};","import { Flight } from 'libs/common/flight';\r\nimport { HashObject } from 'libs/common/react/interfaces';\r\nimport { Xhr } from 'libs/common/backbone/interfaces';\r\n\r\nexport const VideoHistoryRequests = {\r\n userVideoHistory(\r\n customerId: string,\r\n userId: string,\r\n cursor?: string,\r\n success?: (data: HashObject) => void,\r\n error?: (Xhr: Xhr) => void,\r\n always?: () => void\r\n ): Flight.Request {\r\n let key = `video:history:${customerId}:${userId}`;\r\n let url = `/api/videoviews/v1/customers/${customerId}/users/${userId}/videos/history`;\r\n\r\n if (cursor) {\r\n key += `:${cursor}`;\r\n url += `?cursor=${cursor}`;\r\n }\r\n\r\n return {\r\n key,\r\n url,\r\n success,\r\n error,\r\n always\r\n };\r\n },\r\n\r\n videoHistory(\r\n customerId: string,\r\n userId: string,\r\n ids: string[],\r\n success?: (data: HashObject) => void,\r\n error?: (Xhr: Xhr) => void,\r\n always?: () => void\r\n ): Flight.Request {\r\n const params = ids.sort().map(i => `videoId=${i}`);\r\n\r\n return {\r\n key: `video:history:${customerId}:${userId}:videos:${params.join('&')}`,\r\n url: `/api/videoviews/v1/customers/${customerId}/users/${userId}/videos/history?${params.join('&')}`,\r\n formatData: (historyCollection: HashObject[]) => {\r\n if (!historyCollection?.length)\r\n return historyCollection;\r\n\r\n /**\r\n * Data is formatted to enable it to be merged with the existing video object in the store\r\n * Where we need to merge more history properties with the video object, map them below.\r\n */\r\n return historyCollection.map((watchHistory: HashObject) => ({\r\n id: watchHistory.videoId,\r\n lastProgressPoint: watchHistory.lastProgressPoint\r\n }));\r\n },\r\n success,\r\n error,\r\n always\r\n };\r\n }\r\n};","import { Core } from 'libs/common/core';\r\nimport { Flight } from 'libs/common/flight';\r\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\r\n\r\nimport { BaseObject, CurrentUser } from 'libs/shared/interfaces';\r\nimport { BaseError } from 'libs/common/backbone/core/BaseError';\r\n\r\nimport { NotFoundError } from 'shared/errors/general/not-found/LiteNotFoundError';\r\nimport { UnspecifiedError } from 'shared/errors/general/unspecified-error/UnspecifiedError';\r\nimport { PrivateResourceError } from 'shared/errors/general/private-resource/PrivateResourceError';\r\nimport { RegionLockedResourceError } from 'shared/errors/general/region-locked-resource/RegionLockedResourceError';\r\n\r\ninterface ErrorMap {\r\n notFound?: new () => BaseError;\r\n forbidden?: {\r\n rating?: new (description: string) => BaseError;\r\n yearLevel?: new (description: string) => BaseError;\r\n region?: new () => BaseError;\r\n privacy?: new () => BaseError;\r\n };\r\n badRequest?: new () => BaseError;\r\n}\r\n\r\nconst defaultErrors: ErrorMap = {\r\n notFound: NotFoundError,\r\n forbidden: {\r\n rating: PrivateResourceError,\r\n yearLevel: PrivateResourceError,\r\n region: RegionLockedResourceError,\r\n privacy: PrivateResourceError\r\n },\r\n badRequest: UnspecifiedError\r\n};\r\n\r\nexport function useHandleObjectError(\r\n object: Flight.Response<BaseObject>,\r\n customErrors: ErrorMap,\r\n currentUser: CurrentUser\r\n): void {\r\n const errors = {\r\n ...defaultErrors,\r\n ...customErrors\r\n };\r\n\r\n if (!object.statusCode || object.statusCode === HttpStatus.Ok)\r\n return;\r\n\r\n if (object.statusCode === HttpStatus.NotFound) {\r\n Core.ErrorHelper.throw(new errors.notFound());\r\n return;\r\n }\r\n\r\n if (object.statusCode === HttpStatus.Forbidden) {\r\n /**\r\n * TODO: Work out how to go about handling all forbidden errors, such as region locking, year levels,\r\n * ratings, and privacy.\r\n */\r\n Core.ErrorHelper.throw(new errors.forbidden.privacy());\r\n return;\r\n }\r\n\r\n Core.ErrorHelper.throw(new errors.badRequest());\r\n}","import { Flight } from 'libs/common/flight';\r\nimport { VideoCollection, Video, CurrentUser } from 'libs/shared/interfaces';\r\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\r\nimport { FavouriteVideoRequests } from 'libs/shared/flight-requests/FavouriteVideoRequests';\r\n\r\nimport { VideoRequests } from 'shared/flight-requests/VideoRequests';\r\nimport { VideoHistoryRequests } from 'apps/watch-history/flight-requests/VideoHistoryRequests';\r\n\r\ninterface VideoMixinOptions {\r\n ratings?: boolean;\r\n favourites?: boolean;\r\n watchHistory?: boolean;\r\n}\r\n\r\nconst defaults: VideoMixinOptions = {\r\n ratings: true,\r\n favourites: true,\r\n watchHistory: true,\r\n};\r\n\r\nfunction fetchAttribute(videosFetched: boolean, request: Flight.Request): void {\r\n const attribute = Flight.useGetResponse<VideoCollection>(request?.key);\r\n const fetch = Flight.useGetFetch(request);\r\n\r\n if (videosFetched && request && attribute.shouldFetch)\r\n fetch();\r\n}\r\n\r\nexport function useVideoMixin(videos: VideoCollection | Video[], options: VideoMixinOptions = {}): void {\r\n const { ratings, favourites, watchHistory } = { ...defaults, ...options };\r\n\r\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\r\n\r\n const videoIds = videos && (Array.isArray(videos)\r\n ? videos.filter(Boolean).map(v => v.id)\r\n : videos.data.filter(Boolean).map(v => v.id));\r\n\r\n const user = currentUser.data;\r\n\r\n let requests: Flight.Request[] = [];\r\n\r\n if (ratings)\r\n requests = [ ...requests, !!videoIds?.length && VideoRequests.videoRatings(videoIds) ];\r\n\r\n if (favourites)\r\n requests = [ ...requests, !!videoIds?.length && user && FavouriteVideoRequests.isFavourited(user.id, videoIds) ];\r\n\r\n if (watchHistory)\r\n requests = [ ...requests, !!videoIds?.length && user &&\r\n VideoHistoryRequests.videoHistory( user.customerId, user.id, videoIds) ];\r\n\r\n requests.forEach(r => fetchAttribute(!!videos, r));\r\n}"],"sourceRoot":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(window.webpackJsonp_clickview_lite=window.webpackJsonp_clickview_lite||[]).push([[22],{1287:function(e,t,n){"use strict";n.r(t),n.d(t,"SubjectPreferencesView",(function(){return B}));var a=n(0),r=n(36),c=n(60),l=n(14),i=n(2),u=n(125),s=n(7),o=n(870),d=n(76),f=n(50),m=n(867),b=n(843),p=n(855),v=n(998),h=n(842),S=n(991),E=n(815),g=n(947),j=n(244),y=n(153),k=n(245),x=n(890);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)||w(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 C(e){return function(e){if(Array.isArray(e))return N(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||w(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 w(e,t){if(e){if("string"==typeof e)return N(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)?N(e,t):void 0}}function N(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=new Array(t);n<t;n++)a[n]=e[n];return a}var A="subjects.subjectPreferencesView";function B(e){var t,n=e.redirectUrl,w=O(a.useState(0),2)[1],N=O(a.useState([]),2),B=N[0],L=N[1],_=O(a.useState(null),2),P=_[0],F=_[1],I=O(a.useState(null),2),X=I[0],M=I[1],D=O(a.useState(!B.length),2),G=D[0],H=D[1],U=O(a.useState(!1),2),R=U[0],z=U[1],Q=l.a.useBasicFetch(y.a.currentUser()),T=l.a.useBasicFetch(o.a.allSubjectPreferences()),V=l.a.useBasicFetch(o.a.mySubjectPreferences()),W=l.a.useBasicFetch(Q.statusCode?g.a.setting(Q.data.id,j.a.BulkOnboardingPreferencesState):null),q=Object(c.useDispatch)(),J=Object(E.a)(),K=x.a.hasBulkSelectedSubjects(X);function Y(){w((function(e){return 1===e&&(z(!1),i.a.AppLinkHelper.trigger(x.a.buildAppLink("summary",n))),e-1}))}function Z(){w(0),z(!1),H(!1),J.error(s.a.getPhrase(A,"error"))}function $(){var e=null;switch(X){case S.a.None:default:e=S.a.AllSubjects;break;case S.a.AllSubjects:e=S.a.None;break;case S.a.AllLevels:e=S.a.AllSubjectsAndAllLevels;break;case S.a.AllSubjectsAndAllLevels:e=S.a.AllLevels}M(e),F(null),l.a.fetch(q,g.a.updateSetting(Q.data.id,j.a.BulkOnboardingPreferencesState,e,k.a.Permanent))}a.useEffect((function(){var e;(null===(e=V.data)||void 0===e?void 0:e.length)?L(u.a.uniq([].concat(C(B),C(V.data.map((function(e){return e.id})))))):L([])}),[V.data]),a.useEffect((function(){W.data&&!X&&M(W.data.value)}),[null===(t=W.data)||void 0===t?void 0:t.value]),a.useEffect((function(){H(!B.length&&!K)}),[B,K]);var ee=function(e){var t;if(!(null===(t=e)||void 0===t?void 0:t.length))return[];var n=[];return e.forEach((function(e){e.children&&e.children.length?n.push(Object.assign(Object.assign({},e),{isExpandableOption:!0,children:[Object.assign({},e)].concat(C(e.children))})):n.push(Object.assign({},e))})),n}(T.data);return a.createElement(d.a.Provider,{value:A},a.createElement(b.a.Provider,{value:{selectedSubjects:B,expandedSubject:P}},a.createElement("form",{className:"p-3 pb-5"},a.createElement("div",{className:"position-relative"},a.createElement("div",{className:"text-center mb-4"},a.createElement("h1",{className:"mb-3"},a.createElement(d.b,{phrase:"heading"})),a.createElement("p",{className:"m-0 h6"},a.createElement(d.b,{phrase:"infoRow1"})),a.createElement("p",{className:"h6"},a.createElement(d.b,{phrase:"infoRow2"}))),T.data&&V.data?a.createElement(p.a,{subjects:ee,onSelect:function(e){L(u.a.addOrRemoveImmutable(B,e.id))},onExpand:function(e){F(P&&P.id===e.id?null:e)},onCollapse:function(){F(null)},hasSelectedBulk:K}):a.createElement(v.a,{style:"grid",count:7})),a.createElement(h.a,null,a.createElement("div",null,a.createElement(f.a,{appLink:x.a.buildAppLink("levels",n),className:"btn btn-light"},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:"allSubjects"})),a.createElement(m.a,{onClick:$,on:K,hideOutline:!0})),a.createElement(r.Button,{variant:"dark",disabled:G,onClick:function(){var e,t,a;if(!G&&(B.length||K))if(V.data&&V.data.filter((function(e){return e.canBePreferred})).map((function(e){return e.id})).sort().toString()!==B.sort().toString()&&!K){w(0),z(!0),H(!0);var r=B.filter((function(e){var t;return!(null===(t=V.data)||void 0===t?void 0:t.find((function(t){return t.id===e})))})),c=null===(e=V.data)||void 0===e?void 0:e.filter((function(e){return!B.includes(e.id)}));(null===(t=r)||void 0===t?void 0:t.length)&&(w((function(e){return e+1})),l.a.fetch(q,o.a.followSubjects(r,Y,Z))),(null===(a=c)||void 0===a?void 0:a.length)&&(w((function(e){return e+1})),l.a.fetch(q,o.a.unfollowSubjects(c.map((function(e){return e.id})),Y,Z)))}else i.a.AppLinkHelper.trigger(x.a.buildAppLink("summary",n))}},R?a.createElement(r.Spinner,{as:"span",animation:"border",role:"status",size:"sm"}):a.createElement(d.b,{phrase:"next",options:{smartCount:B.length}})))))))}},815:function(e,t,n){"use strict";n.d(t,"a",(function(){return l}));var a=n(152),r=n(46),c=n(55),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})}}}},816:function(e,t,n){"use strict";n.d(t,"a",(function(){return r}));var a=n(0);function r(e){return a.createElement("div",{role:"button",tabIndex:0,className:"".concat(e.className?e.className:""," cursor-pointer"),onKeyDown:function(t){return"Enter"===t.key&&e.onClick(t)},onClick:e.onClick,style:e.style?e.style:{}},e.children)}},828:function(e,t,n){"use strict";n.d(t,"a",(function(){return c}));var a=n(150),r=n(151);function c(){var e=Object(r.a)(a.a.XS),t=Object(r.a)(a.a.SM),n=Object(r.a)(a.a.MD),c=Object(r.a)(a.a.LG),l=Object(r.a)(a.a.XL),i=Object(r.a)(a.a.XXL),u=a.a.LG;return e&&(u=a.a.XS),t&&(u=a.a.SM),n&&(u=a.a.MD),c&&(u=a.a.LG),l&&(u=a.a.XL),i&&(u=a.a.XXL),u}},832:function(e,t,n){"use strict";var a=n(0),r=n.n(a),c=n(52),l=n(13),i=n(844),u=n.n(i),s=function(e){return e.selectedChildrenCount?a.createElement("div",{className:"".concat(u.a.itemStatus," ").concat(u.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(u.a.itemStatus," ").concat(e.selected?u.a.green:u.a.unchecked)},t)};function d(e){var t,n="".concat(u.a.expandCaret," ").concat(e.expand?u.a.up:u.a.down);return r.a.createElement("li",{className:(t=u.a.preferenceItem,e.extraClasses&&(t+=" "+e.extraClasses),e.isDisabled&&(t+=" "+u.a.disabled),e.isSelected&&!e.isExpandable&&(t+=" "+u.a.selected),e.hideStatus&&(t+=" "+u.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(u.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(s,{selectedChildrenCount:e.selectedChildCount}):r.a.createElement(o,{selected:e.isSelected,radioButton:e.radioButton}))))}n.d(t,"a",(function(){return d}))},842:function(e,t,n){"use strict";n.d(t,"a",(function(){return u}));var a=n(0),r=n(150),c=n(828),l=n(874),i=n.n(l);function u(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)}u.defaultProps={justify:"between"}},843:function(e,t,n){"use strict";n.d(t,"a",(function(){return r}));var a=n(0),r=Object(a.createContext)(void 0)},844: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"}},848:function(e,t,n){"use strict";n.d(t,"a",(function(){return s}));var a=n(0),r=n(154),c=n(112),l=n(843),i=n(832),u=n(155);function s(e){var t,n,s,o,d=a.useContext(l.a),f=e.subject.cover?r.a.createUrl(e.subject.cover.url,{size:c.a.Small}):"",m=e.subject.isExpandableOption?e.subject.children.map((function(e){return e.id})):[],b=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 m.includes(e)})).length,p=a.createElement(i.a,{name:e.subject.name,imageUrl:f,onClick:e.onClick,isSelected:e.selected,isDisabled:e.disabled,isExpandable:e.subject.isExpandableOption,expand:(null===(o=null===(s=d)||void 0===s?void 0:s.expandedSubject)||void 0===o?void 0:o.id)===e.subject.id,selectedChildCount:b,extraClasses:e.extraClasses,hideStatus:e.hideStatus});return e.disabled?a.createElement("span",null,p):a.createElement(u.a,{title:e.subject.name},p)}},855:function(e,t,n){"use strict";n.d(t,"a",(function(){return m}));var a=n(0),r=n(125),c=n(150),l=n(828),i=n(864),u=n(843),s=n(865),o=n.n(s),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 f(e){var t=a.useContext(u.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(e){return l(t)},hasSelectedBulk:e.hasSelectedBulk})})))}function m(e){var t=e.subjects,n=e.hasSelectedBulk,i=d(e,["subjects","hasSelectedBulk"]),s=a.useContext(u.a).expandedSubject,b=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}}(),p=t.reduce((function(e,t,n){return n%b==0?e.push([t]):r.a.last(e).push(t),e}),[]);return a.createElement("ul",{className:o.a.grid},p.map((function(e,t){var r=s&&!!e.find((function(e){return s.id===e.id&&e.isExpandableOption}));return a.createElement(a.Fragment,{key:t},a.createElement(f,Object.assign({subjects:e,hasSelectedBulk:n},i)),r&&a.createElement("li",{className:"".concat(o.a.subgrid," m-0")},a.createElement(m,Object.assign({subjects:s.children,hasSelectedBulk:n},i))))})))}},864:function(e,t,n){"use strict";var a=n(842);n.d(t,"a",(function(){return a.a}));n(871),n(855);var r=n(848);n.d(t,"c",(function(){return r.a}));var c=n(832);n.d(t,"b",(function(){return c.a}))},865:function(e,t,n){e.exports={grid:"G_RXX",subgrid:"_38ohZ"}},867:function(e,t,n){"use strict";n.d(t,"a",(function(){return l}));var a=n(0),r=n.n(a),c=n(816);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"}))}},874:function(e,t,n){e.exports={preferenceFooter:"P29kw"}},998:function(e,t,n){"use strict";n.d(t,"a",(function(){return u}));var a=n(0),r=n(865),c=n.n(r),l=n(999),i=n.n(l);function u(e){var t="grid"===e.style?c.a.grid:i.a.partialSubjectList;return a.createElement("ul",{className:t},Array(e.count).fill(null).map((function(e,t){return a.createElement("li",{key:t,className:"".concat(i.a.partialSubject," partial-loading-background")})})))}},999:function(e,t,n){e.exports={partialSubject:"_1rrH2",partialSubjectList:"_15Qdz"}}}]);
|