@clickview/lite 0.0.24-rc.4 → 0.0.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/css/11.chunk.css.map +1 -1
- package/dist/css/12.chunk.css.map +1 -1
- package/dist/css/13.chunk.css.map +1 -1
- package/dist/css/14.chunk.css.map +1 -1
- package/dist/css/15.chunk.css.map +1 -1
- package/dist/css/16.chunk.css.map +1 -1
- package/dist/css/17.chunk.css.map +1 -1
- package/dist/css/18.chunk.css.map +1 -1
- package/dist/css/20.chunk.css.map +1 -1
- package/dist/css/29.chunk.css.map +1 -1
- package/dist/css/3.chunk.css.map +1 -1
- package/dist/css/30.chunk.css.map +1 -1
- package/dist/css/31.chunk.css.map +1 -1
- package/dist/css/33.chunk.css.map +1 -1
- package/dist/css/38.chunk.css +11 -34
- package/dist/css/38.chunk.css.map +1 -1
- package/dist/css/4.chunk.css +3 -3
- package/dist/css/44.chunk.css +11 -3
- package/dist/css/44.chunk.css.map +1 -1
- package/dist/css/45.chunk.css +38 -0
- package/dist/css/45.chunk.css.map +1 -0
- package/dist/css/5.chunk.css.map +1 -1
- package/dist/css/52.chunk.css +52 -0
- package/dist/css/52.chunk.css.map +1 -0
- package/dist/css/59.chunk.css +14 -0
- package/dist/css/59.chunk.css.map +1 -0
- package/dist/css/6.chunk.css.map +1 -1
- package/dist/css/60.chunk.css +43 -0
- package/dist/css/60.chunk.css.map +1 -0
- package/dist/en.json +1 -1
- package/dist/libs/shared/src/components/curriculum-links/CurriculumLinks.d.ts +9 -0
- package/dist/libs/shared/src/components/widgets/items/resource-widget-item/ResourceWidgetItem.d.ts +12 -0
- package/dist/libs/shared/src/enums/CurriculumType.d.ts +6 -0
- package/dist/libs/shared/src/flight-requests/ClassificationRequests.d.ts +1 -0
- package/dist/libs/shared/src/flight-requests/ResourceRequests.d.ts +11 -0
- package/dist/libs/shared/src/interfaces/collections/SubtitleCollection.d.ts +3 -0
- package/dist/libs/shared/src/interfaces/models/Curriculum.d.ts +14 -0
- package/dist/libs/shared/src/interfaces/models/FileUpload.d.ts +20 -0
- package/dist/libs/shared/src/interfaces/models/Language.d.ts +4 -0
- package/dist/libs/shared/src/interfaces/models/Pdf.d.ts +4 -0
- package/dist/libs/shared/src/interfaces/models/Subtitle.d.ts +7 -0
- package/dist/libs/shared/src/interfaces/models/index.d.ts +1 -0
- package/dist/libs/shared/src/interfaces/requests/UpdateObjectChannel.d.ts +3 -0
- package/dist/libs/shared/src/interfaces/requests/UpdateObjectRating.d.ts +3 -0
- package/dist/libs/shared/src/interfaces/requests/UpdateResourceRequest.d.ts +3 -0
- package/dist/projects/lite/src/app.d.ts +1 -0
- package/dist/projects/lite/src/shared/components/play-page/PlayPage.d.ts +2 -1
- package/dist/projects/lite/src/shared/components/synopsis/Synopsis.d.ts +3 -1
- package/dist/projects/lite/src/shared/components/video-details/VideoDetails.d.ts +2 -0
- package/dist/projects/lite/src/shared/constants/MinimumGlanceHeight.d.ts +1 -0
- package/dist/projects/lite/src/shared/views/preview-pdf/PreviewPdfView.d.ts +7 -0
- package/dist/scripts/0-b02efe11fb.chunk.js +1 -0
- package/dist/scripts/1-4f19a5caea.chunk.js +17 -0
- package/dist/scripts/1.chunk.js.map +1 -1
- package/dist/scripts/10.chunk.js +484 -1203
- package/dist/scripts/10.chunk.js.map +1 -1
- package/dist/scripts/11-32e30d10ce.chunk.js +1 -0
- package/dist/scripts/11.chunk.js +289 -1388
- package/dist/scripts/11.chunk.js.map +1 -1
- package/dist/scripts/12-72a5373486.chunk.js +1 -0
- package/dist/scripts/12.chunk.js +1371 -283
- package/dist/scripts/12.chunk.js.map +1 -1
- package/dist/scripts/13-1cd85ad3ee.chunk.js +1 -0
- package/dist/scripts/13.chunk.js +361 -394
- package/dist/scripts/13.chunk.js.map +1 -1
- package/dist/scripts/14-3d60b8ee85.chunk.js +1 -0
- package/dist/scripts/14.chunk.js +793 -332
- package/dist/scripts/14.chunk.js.map +1 -1
- package/dist/scripts/15-90226fb996.chunk.js +1 -0
- package/dist/scripts/15.chunk.js +295 -214
- package/dist/scripts/15.chunk.js.map +1 -1
- package/dist/scripts/16-913b2535ea.chunk.js +1 -0
- package/dist/scripts/16.chunk.js +530 -434
- package/dist/scripts/16.chunk.js.map +1 -1
- package/dist/scripts/17-d6c19ccb60.chunk.js +1 -0
- package/dist/scripts/17.chunk.js +296 -170
- package/dist/scripts/17.chunk.js.map +1 -1
- package/dist/scripts/18-33efcac0c6.chunk.js +1 -0
- package/dist/scripts/18.chunk.js +265 -199
- package/dist/scripts/18.chunk.js.map +1 -1
- package/dist/scripts/19-2380200cfb.chunk.js +1 -0
- package/dist/scripts/19.chunk.js +7 -3
- package/dist/scripts/19.chunk.js.map +1 -1
- package/dist/scripts/2-53e37c2047.chunk.js +1 -0
- package/dist/scripts/2.chunk.js +18673 -622
- package/dist/scripts/2.chunk.js.map +1 -1
- package/dist/scripts/20-ca85f0514e.chunk.js +1 -0
- package/dist/scripts/20.chunk.js +1824 -221
- package/dist/scripts/20.chunk.js.map +1 -1
- package/dist/scripts/21-ef4a226771.chunk.js +1 -0
- package/dist/scripts/22-99c04e164f.chunk.js +1 -0
- package/dist/scripts/23-028eb81a43.chunk.js +1 -0
- package/dist/scripts/23.chunk.js +1 -1
- package/dist/scripts/23.chunk.js.map +1 -1
- package/dist/scripts/24-68f8df3eca.chunk.js +1 -0
- package/dist/scripts/24.chunk.js.map +1 -1
- package/dist/scripts/25-7ad07f87d4.chunk.js +1 -0
- package/dist/scripts/25.chunk.js.map +1 -1
- package/dist/scripts/26-f3dcacfe4f.chunk.js +1 -0
- package/dist/scripts/26.chunk.js +1 -1
- package/dist/scripts/26.chunk.js.map +1 -1
- package/dist/scripts/27-e844268f38.chunk.js +1 -0
- package/dist/scripts/28-853bc5de1f.chunk.js +1 -0
- package/dist/scripts/29-b164ecafe9.chunk.js +1 -0
- package/dist/scripts/29.chunk.js +435 -500
- package/dist/scripts/29.chunk.js.map +1 -1
- package/dist/scripts/3-a1bd8c9016.chunk.js +7 -0
- package/dist/scripts/3.chunk.js +625 -18676
- package/dist/scripts/3.chunk.js.map +1 -1
- package/dist/scripts/30-2cfcf52ea1.chunk.js +1 -0
- package/dist/scripts/30.chunk.js +634 -429
- package/dist/scripts/30.chunk.js.map +1 -1
- package/dist/scripts/31-e6a8291d2f.chunk.js +1 -0
- package/dist/scripts/31.chunk.js +371 -670
- package/dist/scripts/31.chunk.js.map +1 -1
- package/dist/scripts/32-7030dc98ed.chunk.js +1 -0
- package/dist/scripts/32.chunk.js +27 -54
- package/dist/scripts/32.chunk.js.map +1 -1
- package/dist/scripts/33-47b0ac90bd.chunk.js +1 -0
- package/dist/scripts/33.chunk.js +700 -312
- package/dist/scripts/33.chunk.js.map +1 -1
- package/dist/scripts/34-2de007b628.chunk.js +1 -0
- package/dist/scripts/34.chunk.js +3 -3
- package/dist/scripts/34.chunk.js.map +1 -1
- package/dist/scripts/35-d2fb66920b.chunk.js +1 -0
- package/dist/scripts/36-bc85df33de.chunk.js +1 -0
- package/dist/scripts/36.chunk.js.map +1 -1
- package/dist/scripts/37-e26652840b.chunk.js +1 -0
- package/dist/scripts/37.chunk.js +288 -464
- package/dist/scripts/37.chunk.js.map +1 -1
- package/dist/scripts/38-0b6a6b9619.chunk.js +1 -0
- package/dist/scripts/39-6549f483c6.chunk.js +1 -0
- package/dist/scripts/39.chunk.js +1 -1
- package/dist/scripts/39.chunk.js.map +1 -1
- package/dist/scripts/4-9e83a22d7a.chunk.js +1 -0
- package/dist/scripts/4.chunk.js +259 -1021
- package/dist/scripts/4.chunk.js.map +1 -1
- package/dist/scripts/40-8e6e9d285f.chunk.js +1 -0
- package/dist/scripts/41-2b44a2e66f.chunk.js +1 -0
- package/dist/scripts/42-9e75f420d8.chunk.js +1 -0
- package/dist/scripts/42.chunk.js.map +1 -1
- package/dist/scripts/43-1141245420.chunk.js +1 -0
- package/dist/scripts/44-9bc4201e0f.chunk.js +1 -0
- package/dist/scripts/45-5ded8ca3db.chunk.js +1 -0
- package/dist/scripts/46-2afd7ee1fb.chunk.js +1 -0
- package/dist/scripts/47-ab30686138.chunk.js +1 -0
- package/dist/scripts/48-d9cd99d55e.chunk.js +1 -0
- package/dist/scripts/49-f43a08f90b.chunk.js +1 -0
- package/dist/scripts/5-974660e17b.chunk.js +1 -0
- package/dist/scripts/5.chunk.js +1017 -259
- package/dist/scripts/5.chunk.js.map +1 -1
- package/dist/scripts/50-af699c531e.chunk.js +1 -0
- package/dist/scripts/51-aa7b835007.chunk.js +1 -0
- package/dist/scripts/52-805f7fe04d.chunk.js +1 -0
- package/dist/scripts/53-d75ca53045.chunk.js +1 -0
- package/dist/scripts/54-2e75bad46f.chunk.js +1 -0
- package/dist/scripts/55-ed637c4847.chunk.js +1 -0
- package/dist/scripts/55.chunk.js.map +1 -1
- package/dist/scripts/56-2ed3b5764b.chunk.js +1 -0
- package/dist/scripts/57-e51101c8a1.chunk.js +1 -0
- package/dist/scripts/58-9a32a6fb2d.chunk.js +1 -0
- package/dist/scripts/59-da8a8c97a9.chunk.js +1 -0
- package/dist/scripts/6-6ac39034e0.chunk.js +1 -0
- package/dist/scripts/6.chunk.js +291 -1250
- package/dist/scripts/6.chunk.js.map +1 -1
- package/dist/scripts/60-5713de53e2.chunk.js +1 -0
- package/dist/scripts/61-7d2ad17963.chunk.js +1 -0
- package/dist/scripts/62-a0a69501ac.chunk.js +1 -0
- package/dist/scripts/63-c921b87f3f.chunk.js +1 -0
- package/dist/scripts/64-87c1cf6985.chunk.js +1 -0
- package/dist/scripts/65-2322082836.chunk.js +1 -0
- package/dist/scripts/66-6d5356f6ce.chunk.js +1 -0
- package/dist/scripts/67-2e0d661c52.chunk.js +1 -0
- package/dist/scripts/7-5ac5be64dd.chunk.js +1 -0
- package/dist/scripts/7.chunk.js +1 -1
- package/dist/scripts/76.chunk.js +3 -3
- package/dist/scripts/76.chunk.js.map +1 -1
- package/dist/scripts/79.chunk.js +931 -347
- package/dist/scripts/79.chunk.js.map +1 -1
- package/dist/scripts/8-95563e3d36.chunk.js +1 -0
- package/dist/scripts/8.chunk.js +14 -920
- package/dist/scripts/8.chunk.js.map +1 -1
- package/dist/scripts/80.chunk.js +22 -313
- package/dist/scripts/80.chunk.js.map +1 -1
- package/dist/scripts/9.chunk.js +320 -17
- package/dist/scripts/9.chunk.js.map +1 -1
- package/dist/scripts/bundle-9ed1e126dd.min.js +15 -0
- package/dist/scripts/bundle.js +147 -121
- package/dist/scripts/bundle.js.map +1 -1
- package/dist/scripts/bundles.json +2 -2
- package/dist/scripts/pdf.worker.entry.worker.js +46239 -0
- package/dist/scripts/pdf.worker.entry.worker.js.map +1 -0
- package/dist/scripts/polyfills-2723daf478.min.js +1 -0
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["file://C:/ClickView Projects/@clickview/packages/libs/shared/src/flight-requests/FavouriteVideoRequests.ts","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/flight-requests/ThemeRequests.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/watch-history/flight-requests/VideoHistoryRequests.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/shared/hooks/useHandleObjectError.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/shared/hooks/useVideoMixin.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/shared/views/play/PlayView.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;AAIA;;AAEA,SAAS,cAAT,CACE,OADF,EACmB,MADnB,EACmC,OADnC,EACyD,KADzD,EACmF;AAEjF,SAAO;AACL,OAAG,mCAA4B,MAA5B,CADE;AAEL,OAAG,4BAAqB,MAArB,cAA+B,OAA/B,CAFE;AAGL,QAAI,EAAE;AAAE,qBAAe,EAAE;AAAnB,KAHD;AAIL,QAAI,EAAE,8EAAS,CAAC,GAJX;AAKL,oBAAgB,EAAE,4BAAsB,MAAtB,iCAAuD,MAAvD,EALb;AAML,WAAO,EAAP,OANK;AAOL,SAAK,EAAL;AAPK,GAAP;AASD;;AAED,SAAS,gBAAT,CACE,OADF,EACmB,MADnB,EACmC,OADnC,EACyD,KADzD,EACmF;AAEjF,SAAO;AACL,OAAG,mCAA4B,MAA5B,8BAAsD,OAAtD,CADE;AAEL,OAAG,4BAAqB,MAArB,cAA+B,OAA/B,CAFE;AAGL,QAAI,EAAE,8EAAS,CAAC,MAHX;AAIL,oBAAgB,EAAE,4BAAsB,MAAtB,iCAAuD,MAAvD,EAJb;AAKL,WAAO,EAAP,OALK;AAML,SAAK,EAAL;AANK,GAAP;AAQD;;AAEM,IAAM,sBAAsB,GAAG;AACpC,iBADoC,2BACpB,MADoB,EACJ,MADI,EACW;AAC7C,QAAM,KAAK,aAAM,8EAAoB,CAAC,gBAA3B,SAA8C,SAAS,CAAC,MAAD,CAAvD,CAAX;AAEA,WAAO;AACL,SAAG,mCAA4B,MAA5B,oCAA4D,KAA5D,CADE;AAEL,SAAG,6BAAsB,MAAtB,SAA+B,MAAM,cAAO,MAAP,IAAkB,EAAvD;AAFE,KAAP;AAID,GARmC;AAUpC,yBAVoC,mCAWlC,OAXkC,EAWjB,MAXiB,EAWD,eAXC,EAWyB,OAXzB,EAW+C,KAX/C,EAWyE;AAE3G,QAAM,SAAS,GAAG,eAAe,GAC7B,cAD6B,GAE7B,gBAFJ;AAIA,WAAO,SAAS,CAAC,OAAD,EAAU,MAAV,EAAkB,OAAlB,EAA2B,KAA3B,CAAhB;AACD,GAlBmC;AAoBpC,cApBoC,wBAoBvB,MApBuB,EAoBP,GApBO,EAoBM;AACxC,QAAM,SAAS,GAAG,GAAG,CAAC,KAAJ,GAAY,IAAZ,EAAlB;AAEA,QAAM,MAAM,GAAG,SAAS,CAAC,GAAV,CAAc,WAAC;AAAA,0BAAU,CAAV;AAAA,KAAf,CAAf;AAEA,QAAI,CAAC,MAAM,CAAC,MAAZ,EACE;AAEF,WAAO;AACL,SAAG,yDAAkD,MAAlD,eAA6D,MAAM,CAAC,IAAP,CAAY,GAAZ,CAA7D,CADE;AAEL,SAAG,gCAAyB,MAAzB,oBAAyC,SAAS,CAAC,IAAV,CAAe,GAAf,CAAzC,CAFE;AAGL,gBAAU,EAAE,oBAAC,MAAD,EAAyB;;;AACnC,YAAI,QAAC,MAAD,MAAO,IAAP,IAAO,aAAP,GAAO,MAAP,GAAO,GAAE,MAAT,CAAJ,EACE,OAAO,MAAP;;AAEF,YAAM,eAAe,GAAG,SAAlB,eAAkB,CAAC,KAAD,EAAsB;;;AACtC,cAAE,YAAF,GAAyB,KAAzB,CAAE,YAAF;AAAA,cAAgB,CAAhB,GAAgB,+BAAhB,CADsC,CAG5C;;;AACA,iDACK,CADL,GACM;AACJ,wBAAY,EAAE,CAAC,cAAC,YAAD,MAAa,IAAb,IAAa,aAAb,GAAa,MAAb,GAAa,GAAE,IAAf,MAAmB,IAAnB,IAAmB,aAAnB,GAAmB,MAAnB,GAAmB,GAAE,MAArB;AADX,WADN;AAID,SARD;;AAUA,eAAO,MAAM,CAAC,GAAP,CAAW,eAAX,CAAP;AACD;AAlBI,KAAP;AAoBD;AAhDmC,CAA/B;;AAmDP,SAAS,SAAT,CAAmB,MAAnB,EAAiC;AAC/B,SAAO,MAAM,qBAAc,MAAd,IAAyB,EAAtC;AACD,C;;;;;;;;;;;;ACtFD;AAAA;AAAA;AAAA;AAKO,IAAM,aAAa,GAAG;AAC3B,OAD2B,iBACrB,EADqB,EACX;AACd,WAAO;AACL,SAAG,kCAA2B,EAA3B,CADE;AAEL,SAAG,mBAAY,EAAZ;AAFE,KAAP;AAID,GAN0B;AAQ3B,QAR2B,kBAQpB,IARoB,EAQP;AAClB,QAAI,GAAG,GAAG,uBAAV;AACA,QAAI,GAAG,GAAG,QAAV;;AAEA,QAAI,IAAJ,EAAU;AACR,SAAG,oBAAa,IAAb,CAAH;AACA,SAAG,oBAAa,IAAb,CAAH;AACD;;AAED,WAAO;AACL,SAAG,EAAH,GADK;AAEL,SAAG,EAAH;AAFK,KAAP;AAID,GArB0B;AAuB3B,aAvB2B,uBAwBzB,IAxByB,EAyBzB,OAzByB,EA0BzB,KA1ByB,EA2BzB,MA3ByB,EA2BN;AAEnB,WAAO;AACL,SAAG,EAAE,uBADA;AAEL,SAAG,EAAE,OAFA;AAGL,UAAI,EAAJ,IAHK;AAIL,UAAI,EAAE,8EAAS,CAAC,IAJX;AAKL,sBAAgB,EAAE,QALb;AAML,aAAO,EAAP,OANK;AAOL,WAAK,EAAL,KAPK;AAQL,YAAM,EAAN;AARK,KAAP;AAUD,GAvC0B;AAyC3B,aAzC2B,uBA0CzB,EA1CyB,EA2CzB,IA3CyB,EA4CzB,OA5CyB,EA6CzB,KA7CyB,EA8CzB,MA9CyB,EA8CN;AAEnB,WAAO;AACL,SAAG,kCAA2B,EAA3B,CADE;AAEL,SAAG,yBAAkB,EAAlB,CAFE;AAGL,UAAI,EAAJ,IAHK;AAIL,UAAI,EAAE,8EAAS,CAAC,GAJX;AAKL,aAAO,EAAP,OALK;AAML,WAAK,EAAL,KANK;AAOL,YAAM,EAAN;AAPK,KAAP;AASD,GAzD0B;AA2D3B,aA3D2B,uBA4DzB,EA5DyB,EA6DzB,OA7DyB,EA8DzB,KA9DyB,EA+DzB,MA/DyB,EA+DN;AAEnB,WAAO;AACL,SAAG,kCAA2B,EAA3B,CADE;AAEL,SAAG,yBAAkB,EAAlB,CAFE;AAGL,UAAI,EAAE,8EAAS,CAAC,MAHX;AAIL,sBAAgB,EAAE,QAJb;AAKL,aAAO,EAAP,OALK;AAML,WAAK,EAAL,KANK;AAOL,YAAM,EAAN;AAPK,KAAP;AASD;AA1E0B,CAAtB,C;;;;;;;;;;;;ACFP;AAAA;AAAO,IAAM,oBAAoB,GAAG;AAClC,kBADkC,4BAEhC,UAFgC,EAGhC,MAHgC,EAIhC,MAJgC,EAKhC,OALgC,EAMhC,KANgC,EAOhC,MAPgC,EAOb;AAEnB,QAAI,GAAG,2BAAoB,UAApB,cAAkC,MAAlC,CAAP;AACA,QAAI,GAAG,0CAAmC,UAAnC,oBAAuD,MAAvD,oBAAP;;AAEA,QAAI,MAAJ,EAAY;AACV,SAAG,eAAQ,MAAR,CAAH;AACA,SAAG,sBAAe,MAAf,CAAH;AACD;;AAED,WAAO;AACL,SAAG,EAAH,GADK;AAEL,SAAG,EAAH,GAFK;AAGL,aAAO,EAAP,OAHK;AAIL,WAAK,EAAL,KAJK;AAKL,YAAM,EAAN;AALK,KAAP;AAOD,GAxBiC;AA0BlC,cA1BkC,wBA2BhC,UA3BgC,EA4BhC,MA5BgC,EA6BhC,GA7BgC,EA8BhC,OA9BgC,EA+BhC,KA/BgC,EAgChC,MAhCgC,EAgCb;AAEnB,QAAM,MAAM,GAAG,GAAG,CAAC,IAAJ,GAAW,GAAX,CAAe,WAAC;AAAA,+BAAe,CAAf;AAAA,KAAhB,CAAf;AAEA,WAAO;AACL,SAAG,0BAAmB,UAAnB,cAAiC,MAAjC,qBAAkD,MAAM,CAAC,IAAP,CAAY,GAAZ,CAAlD,CADE;AAEL,SAAG,yCAAkC,UAAlC,oBAAsD,MAAtD,6BAA+E,MAAM,CAAC,IAAP,CAAY,GAAZ,CAA/E,CAFE;AAGL,gBAAU,EAAE,oBAAC,iBAAD,EAAoC;;;AAC9C,YAAI,QAAC,iBAAD,MAAkB,IAAlB,IAAkB,aAAlB,GAAkB,MAAlB,GAAkB,GAAE,MAApB,CAAJ,EACE,OAAO,iBAAP;AAEF;;;;;AAIA,eAAO,iBAAiB,CAAC,GAAlB,CAAsB,UAAC,YAAD;AAAA,iBAA+B;AAC1D,cAAE,EAAE,YAAY,CAAC,OADyC;AAE1D,6BAAiB,EAAE,YAAY,CAAC;AAF0B,WAA/B;AAAA,SAAtB,CAAP;AAID,OAfI;AAgBL,aAAO,EAAP,OAhBK;AAiBL,WAAK,EAAL,KAjBK;AAkBL,YAAM,EAAN;AAlBK,KAAP;AAoBD;AAxDiC,CAA7B,C;;;;;;;;;;;;ACJP;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAKA;AACA;AACA;AACA;AAaA,IAAM,aAAa,GAAa;AAC9B,UAAQ,EAAE,+FADoB;AAE9B,WAAS,EAAE;AACT,UAAM,EAAE,gHADC;AAET,aAAS,EAAE,gHAFF;AAGT,UAAM,EAAE,gIAHC;AAIT,WAAO,EAAE,gHAAoB;AAJpB,GAFmB;AAQ9B,YAAU,EAAE,yGAAgB;AARE,CAAhC;AAWM,SAAU,oBAAV,CACJ,MADI,EAEJ,YAFI,EAGJ,WAHI,EAGoB;AAExB,MAAM,MAAM,mCACP,aADO,GAEP,YAFO,CAAZ;AAKA,MAAI,CAAC,MAAM,CAAC,UAAR,IAAsB,MAAM,CAAC,UAAP,KAAsB,qFAAU,CAAC,EAA3D,EACE;;AAEF,MAAI,MAAM,CAAC,UAAP,KAAsB,qFAAU,CAAC,QAArC,EAA+C;AAC7C,kEAAI,CAAC,WAAL,UAAuB,IAAI,MAAM,CAAC,QAAX,EAAvB;AACA;AACD;;AAED,MAAI,MAAM,CAAC,UAAP,KAAsB,qFAAU,CAAC,SAArC,EAAgD;AAC9C;;;;AAIA,kEAAI,CAAC,WAAL,UAAuB,IAAI,MAAM,CAAC,SAAP,CAAiB,OAArB,EAAvB;AACA;AACD;;AAED,gEAAI,CAAC,WAAL,UAAuB,IAAI,MAAM,CAAC,UAAX,EAAvB;AACD,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9DD;AAEA;AACA;AAEA;AACA;AAQA,IAAM,QAAQ,GAAsB;AAClC,SAAO,EAAE,IADyB;AAElC,YAAU,EAAE,IAFsB;AAGlC,cAAY,EAAE;AAHoB,CAApC;;AAMA,SAAS,cAAT,CAAwB,aAAxB,EAAgD,OAAhD,EAAuE;;;AACrE,MAAM,SAAS,GAAG,6DAAM,CAAC,cAAP,CAAqB,MAAkB,OAAlB,MAAyB,IAAzB,IAAyB,aAAzB,GAAyB,MAAzB,GAAyB,GAAE,GAAhD,CAAlB;AACA,MAAM,KAAK,GAAG,6DAAM,CAAC,WAAP,CAAmB,OAAnB,CAAd;AAEA,MAAI,aAAa,IAAI,OAAjB,IAA4B,SAAS,CAAC,WAA1C,EACE,KAAK;AACR;;AAEK,SAAU,aAAV,CAAwB,MAAxB,EAA0F;AAAA,MAA/B,OAA+B,uEAAF,EAAE;;;;AAAA,uBACnD,gCAAQ,QAAR,GAAqB,OAArB,CADmD;AAAA,MACtF,OADsF,kBACtF,OADsF;AAAA,MAC7E,UAD6E,kBAC7E,UAD6E;AAAA,MACjE,YADiE,kBACjE,YADiE;;AAG9F,MAAM,WAAW,GAAG,6DAAM,CAAC,aAAP,CAAkC,0FAAY,CAAC,WAAb,EAAlC,CAApB;AAEA,MAAM,QAAQ,GAAG,MAAM,KAAK,KAAK,CAAC,OAAN,CAAc,MAAd,IACxB,MAAM,CAAC,MAAP,CAAc,OAAd,EAAuB,GAAvB,CAA2B,WAAC;AAAA,WAAI,CAAC,CAAC,EAAN;AAAA,GAA5B,CADwB,GAExB,MAAM,CAAC,IAAP,CAAY,MAAZ,CAAmB,OAAnB,EAA4B,GAA5B,CAAgC,WAAC;AAAA,WAAI,CAAC,CAAC,EAAN;AAAA,GAAjC,CAFmB,CAAvB;AAIA,MAAM,IAAI,GAAG,WAAW,CAAC,IAAzB;AAEA,MAAI,QAAQ,GAAqB,EAAjC;AAEA,MAAI,OAAJ,EACE,QAAQ,gCAAQ,QAAR,IAAkB,CAAC,QAAC,QAAD,MAAS,IAAT,IAAS,aAAT,GAAS,MAAT,GAAS,GAAE,MAAX,CAAD,IAAsB,kFAAa,CAAC,YAAd,CAA2B,QAA3B,CAAxC,EAAR;AAEF,MAAI,UAAJ,EACE,QAAQ,gCAAQ,QAAR,IAAkB,CAAC,QAAC,QAAD,MAAS,IAAT,IAAS,aAAT,GAAS,MAAT,GAAS,GAAE,MAAX,CAAD,IAAsB,IAAtB,IAA8B,8GAAsB,CAAC,YAAvB,CAAoC,IAAI,CAAC,EAAzC,EAA6C,QAA7C,CAAhD,EAAR;AAEF,MAAI,YAAJ,EACE,QAAQ,gCAAQ,QAAR,IAAkB,CAAC,QAAC,QAAD,MAAS,IAAT,IAAS,aAAT,GAAS,MAAT,GAAS,GAAE,MAAX,CAAD,IAAsB,IAAtB,IACxB,4GAAoB,CAAC,YAArB,CAAmC,IAAI,CAAC,UAAxC,EAAoD,IAAI,CAAC,EAAzD,EAA6D,QAA7D,CADM,EAAR;AAGF,UAAQ,CAAC,OAAT,CAAiB,WAAC;AAAA,WAAI,cAAc,CAAC,CAAC,CAAC,MAAH,EAAW,CAAX,CAAlB;AAAA,GAAlB;AACD,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpDD;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,IAAM,SAAS,GAAG,aAAlB;AAEA,IAAM,WAAW,GAAG;AAClB,UAAQ,EAAE,+GADQ;AAElB,WAAS,EAAE;AACT,WAAO,EAAE,uGAAiB;AADjB;AAFO,CAApB;AAYM,SAAU,QAAV,CAAmB,KAAnB,EAAuC;;;AAC3C,MAAM,QAAQ,GAAG,+DAAW,EAA5B;AACA,MAAM,MAAM,GAAG,mFAAS,EAAxB;;AAF2C,sBAIE,8FAAY,CAAC,8EAAa,CAAC,eAAf,CAJd;AAAA;AAAA,MAInC,iBAJmC;AAAA,MAIhB,aAJgB;;AAM3C,MAAM,KAAK,GAAG,6DAAM,CAAC,aAAP,CAA4B,mFAAa,CAAC,KAAd,CAAoB,KAAK,CAAC,EAA1B,CAA5B,CAAd;AACA,MAAM,WAAW,GAAG,6DAAM,CAAC,aAAP,CAAkC,0FAAY,CAAC,WAAb,EAAlC,CAApB,CAP2C,CAQ3C;AACA;;AACA,MAAM,WAAW,GAAG,6DAAM,CAAC,aAAP,CAA4B,kBAAK,CAAC,IAAN,MAAU,IAAV,IAAU,aAAV,GAAU,MAAV,GAAU,GAAE,MAAZ,MAAkB,IAAlB,IAAkB,aAAlB,GAAkB,MAAlB,GAAkB,GAAE,KAApB,IAC5C,4FAAa,CAAC,KAAd,CAAoB,KAAK,CAAC,IAAN,CAAW,MAAX,CAAkB,KAAtC,CAD4C,GACG,IAD/B,CAApB;AAGA,sGAAe,OAAC,KAAK,CAAC,IAAP,MAAW,IAAX,IAAW,aAAX,GAAW,MAAX,GAAW,GAAE,IAAb,CAAf;AACA,iGAAoB,CAAC,KAAD,EAAQ,WAAR,EAAqB,WAAW,CAAC,IAAjC,CAApB;AAEA,mFAAa,CAAC,CAAC,KAAK,CAAC,IAAP,CAAD,CAAb;;AAEA,WAAS,YAAT,CAAsB,MAAtB,EAAqC,eAArC,EAA+D,OAA/D,EAAmF;AACjF,iEAAM,CAAC,KAAP,CACE,QADF,EAEE,8GAAsB,CAAC,uBAAvB,CAA+C,MAAM,CAAC,EAAtD,EAA0D,WAAW,CAAC,IAAZ,CAAiB,EAA3E,EAA+E,eAA/E,EAAgG,YAAK;AACnG,yFAAe,CAAC,aAAhB,CAA8B;AAAE,UAAE,EAAE,MAAM,CAAC;AAAb,OAA9B,EAAiD;AAC/C,cAAM,EAAE,yEAAU,CAAC,KAD4B;AAE/C,kBAAU,EAAE,yEAAU,CAAC,SAFwB;AAG/C,kBAAU,EAAE,eAAe,GAAG,+EAAgB,CAAC,EAApB,GAAyB,+EAAgB,CAAC,GAHtB;AAI/C,gBAAQ,EAAE,8EAAe,CAAC,QAJqB;AAK/C,qBAAa,EAAE,4EAAa,CAAC;AALkB,OAAjD;AAQA,YAAM,CAAC,OAAP,CAAe,mGAAe,CAAC,SAAhB,CACb,SADa,EAEb,eAAe,GAAG,YAAH,GAAkB,cAFpB,EAGb;AAAE,aAAK,EAAE,MAAM,CAAC;AAAhB,OAHa,CAAf;AAKD,KAdD,EAcG,OAdH,CAFF;AAkBD;;AAED,kDAAgB,YAAK;;;AACnB,QAAI,CAAC,KAAK,CAAC,IAAX,EACE;AAEF,iBAAa,CAAC,OAAD,EAAU,KAAK,CAAC,IAAhB,CAAb;AAEA,QAAM,QAAQ,GAAG,wBAAiB,CAAC,KAAlB,MAAuB,IAAvB,IAAuB,aAAvB,GAAuB,MAAvB,GAAuB,GAAE,EAAzB,MAAgC,KAAK,CAAC,IAAN,CAAW,EAA5D;AACA,QAAM,YAAY,GAAG,MAAM,CAAC,SAAP,CAAiB,KAAK,CAAC,SAAvB,KAAqC,KAAK,CAAC,SAAN,KAAoB,iBAAiB,CAAC,SAAhG;AAEA;;;;;;;AAMA,QAAI,QAAQ,IAAI,YAAhB,EACE,aAAa,CAAC,WAAD,EAAc,KAAK,CAAC,SAAN,IAAmB,CAAjC,CAAb;AACH,GAjBD,EAiBG,CAAE,CAAC,CAAC,KAAK,CAAC,IAAV,EAAgB,KAAK,CAAC,SAAtB,CAjBH;AAmBA,MAAI,CAAC,KAAK,CAAC,IAAP,IAAe,CAAC,WAAW,CAAC,IAAhC,EACE,OAAO,yGAAP;AAEF,SACE;AAAK,aAAS,EAAC;AAAf,KACE,oDAAC,8EAAD,EAAS;AACP,SAAK,EAAE,KAAK,CAAC,IADN;AAEP,eAAW,EAAE,WAAW,CAAC,IAFlB;AAGP;AACA,gBAAY,EAAE;AAJP,GAAT,CADF,CADF;AAUD,C","file":"scripts/13.chunk.js","sourcesContent":["import { Flight } from 'libs/common/flight';\r\nimport { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\r\nimport { Xhr } from 'libs/common/backbone/interfaces';\r\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\r\n\r\nimport { SharedWithStatements } from 'libs/shared/constants/WithStatements';\r\n\r\nfunction favouriteVideo(\r\n videoId: string, userId: string, success?: () => void, error?: (Xhr: Xhr) => void\r\n): Flight.Request {\r\n return {\r\n url: `/api/domain/v2/objects/${userId}`,\r\n key: `favourite:video:${userId}:${videoId}`,\r\n data: { favouriteVideos: videoId },\r\n type: HttpVerbs.PUT,\r\n invalidationKeys: [ `favourite:videos:${userId}`, `video:is:favourited:${userId}` ],\r\n success,\r\n error\r\n };\r\n}\r\n\r\nfunction unfavouriteVideo(\r\n videoId: string, userId: string, success?: () => void, error?: (Xhr: Xhr) => void\r\n): Flight.Request {\r\n return {\r\n url: `/api/domain/v2/objects/${userId}/favouriteVideos/${videoId}`,\r\n key: `favourite:video:${userId}:${videoId}`,\r\n type: HttpVerbs.DELETE,\r\n invalidationKeys: [ `favourite:videos:${userId}`, `video:is:favourited:${userId}` ],\r\n success,\r\n error\r\n };\r\n}\r\n\r\nexport const FavouriteVideoRequests = {\r\n favouriteVideos(userId: string, cursor?: string): Flight.Request {\r\n const query = `${SharedWithStatements.VIDEO_COLLECTION}${addCursor(cursor)}`;\r\n\r\n return {\r\n url: `/api/domain/v2/objects/${userId}/favouriteVideos?query=${query}`,\r\n key: `favourite:videos:${userId}${cursor ? `:${cursor}` : ''}`\r\n };\r\n },\r\n\r\n updateIsVideoFavourited(\r\n videoId: string, userId: string, shouldFavourite: boolean, success?: () => void, error?: (Xhr: Xhr) => void\r\n ): Flight.Request {\r\n const requestFn = shouldFavourite\r\n ? favouriteVideo\r\n : unfavouriteVideo;\r\n\r\n return requestFn(videoId, userId, success, error);\r\n },\r\n\r\n isFavourited(userId: string, ids: string[]): Flight.Request {\r\n const sortedIds = ids.slice().sort();\r\n\r\n const params = sortedIds.map(i => `id=${i}`);\r\n\r\n if (!params.length)\r\n return;\r\n\r\n return {\r\n url: `/api/domain/v2/objects?query=favouritedBy{id:${userId}}&${params.join('&')}`,\r\n key: `video:is:favourited:${userId}:by:id:${sortedIds.join(',')}`,\r\n formatData: (videos: HashObject[]) => {\r\n if (!videos?.length)\r\n return videos;\r\n\r\n const setIsFavourited = (video: HashObject) => {\r\n const { favouritedBy, ...v } = video;\r\n\r\n // As we filtered by userId, if there are any users, set isFavourited to true.\r\n return {\r\n ...v,\r\n isFavourited: !!favouritedBy?.data?.length\r\n };\r\n };\r\n\r\n return videos.map(setIsFavourited);\r\n }\r\n };\r\n }\r\n};\r\n\r\nfunction addCursor(cursor: string): string {\r\n return cursor ? `&cursor=${cursor}` : '';\r\n}","import { Flight } from 'libs/common/flight';\r\nimport { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\r\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\r\nimport { Xhr } from 'libs/common/backbone/interfaces';\r\nimport { Theme } from 'libs/shared/interfaces';\r\n\r\nexport const ThemeRequests = {\r\n theme(id: string): Flight.Request {\r\n return {\r\n url: `/api/domain/v1/themes/${id}`,\r\n key: `themes:${id}`\r\n };\r\n },\r\n\r\n themes(type?: string): Flight.Request {\r\n let url = '/api/domain/v1/themes';\r\n let key = 'themes';\r\n\r\n if (type) {\r\n url += `?type=${type}`;\r\n key += `:type:${type}`;\r\n }\r\n\r\n return {\r\n url,\r\n key\r\n };\r\n },\r\n\r\n createTheme(\r\n data: Theme,\r\n success?: (data: HashObject) => void,\r\n error?: (xhr: Xhr) => void,\r\n always?: () => void\r\n ): Flight.Request {\r\n return {\r\n url: '/api/domain/v1/themes',\r\n key: 'theme',\r\n data,\r\n type: HttpVerbs.POST,\r\n invalidationKeys: 'themes',\r\n success,\r\n error,\r\n always\r\n };\r\n },\r\n\r\n updateTheme(\r\n id: string,\r\n data: Theme,\r\n success?: (data: HashObject) => void,\r\n error?: (xhr: Xhr) => void,\r\n always?: () => void\r\n ): Flight.Request {\r\n return {\r\n url: `/api/domain/v1/themes/${id}`,\r\n key: `update:theme:${id}`,\r\n data,\r\n type: HttpVerbs.PUT,\r\n success,\r\n error,\r\n always\r\n };\r\n },\r\n\r\n deleteTheme(\r\n id: string,\r\n success?: (data: HashObject) => void,\r\n error?: (xhr: Xhr) => void,\r\n always?: () => void\r\n ): Flight.Request {\r\n return {\r\n url: `/api/domain/v1/themes/${id}`,\r\n key: `delete:theme:${id}`,\r\n type: HttpVerbs.DELETE,\r\n invalidationKeys: 'themes',\r\n success,\r\n error,\r\n always\r\n };\r\n }\r\n};","import { Flight } from 'libs/common/flight';\r\nimport { HashObject } from 'libs/common/react/interfaces';\r\nimport { Xhr } from 'libs/common/backbone/interfaces';\r\n\r\nexport const VideoHistoryRequests = {\r\n userVideoHistory(\r\n customerId: string,\r\n userId: string,\r\n cursor?: string,\r\n success?: (data: HashObject) => void,\r\n error?: (Xhr: Xhr) => void,\r\n always?: () => void\r\n ): Flight.Request {\r\n let key = `video:history:${customerId}:${userId}`;\r\n let url = `/api/videoviews/v1/customers/${customerId}/users/${userId}/videos/history`;\r\n\r\n if (cursor) {\r\n key += `:${cursor}`;\r\n url += `?cursor=${cursor}`;\r\n }\r\n\r\n return {\r\n key,\r\n url,\r\n success,\r\n error,\r\n always\r\n };\r\n },\r\n\r\n videoHistory(\r\n customerId: string,\r\n userId: string,\r\n ids: string[],\r\n success?: (data: HashObject) => void,\r\n error?: (Xhr: Xhr) => void,\r\n always?: () => void\r\n ): Flight.Request {\r\n const params = ids.sort().map(i => `videoId=${i}`);\r\n\r\n return {\r\n key: `video:history:${customerId}:${userId}:videos:${params.join('&')}`,\r\n url: `/api/videoviews/v1/customers/${customerId}/users/${userId}/videos/history?${params.join('&')}`,\r\n formatData: (historyCollection: HashObject[]) => {\r\n if (!historyCollection?.length)\r\n return historyCollection;\r\n\r\n /**\r\n * Data is formatted to enable it to be merged with the existing video object in the store\r\n * Where we need to merge more history properties with the video object, map them below.\r\n */\r\n return historyCollection.map((watchHistory: HashObject) => ({\r\n id: watchHistory.videoId,\r\n lastProgressPoint: watchHistory.lastProgressPoint\r\n }));\r\n },\r\n success,\r\n error,\r\n always\r\n };\r\n }\r\n};","import { Core } from 'libs/common/core';\r\nimport { Flight } from 'libs/common/flight';\r\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\r\n\r\nimport { BaseObject, CurrentUser } from 'libs/shared/interfaces';\r\nimport { BaseError } from 'libs/common/backbone/core/BaseError';\r\n\r\nimport { NotFoundError } from 'shared/errors/general/not-found/LiteNotFoundError';\r\nimport { UnspecifiedError } from 'shared/errors/general/unspecified-error/UnspecifiedError';\r\nimport { PrivateResourceError } from 'shared/errors/general/private-resource/PrivateResourceError';\r\nimport { RegionLockedResourceError } from 'shared/errors/general/region-locked-resource/RegionLockedResourceError';\r\n\r\ninterface ErrorMap {\r\n notFound?: new () => BaseError;\r\n forbidden?: {\r\n rating?: new (description: string) => BaseError;\r\n yearLevel?: new (description: string) => BaseError;\r\n region?: new () => BaseError;\r\n privacy?: new () => BaseError;\r\n };\r\n badRequest?: new () => BaseError;\r\n}\r\n\r\nconst defaultErrors: ErrorMap = {\r\n notFound: NotFoundError,\r\n forbidden: {\r\n rating: PrivateResourceError,\r\n yearLevel: PrivateResourceError,\r\n region: RegionLockedResourceError,\r\n privacy: PrivateResourceError\r\n },\r\n badRequest: UnspecifiedError\r\n};\r\n\r\nexport function useHandleObjectError(\r\n object: Flight.Response<BaseObject>,\r\n customErrors: ErrorMap,\r\n currentUser: CurrentUser\r\n): void {\r\n const errors = {\r\n ...defaultErrors,\r\n ...customErrors\r\n };\r\n\r\n if (!object.statusCode || object.statusCode === HttpStatus.Ok)\r\n return;\r\n\r\n if (object.statusCode === HttpStatus.NotFound) {\r\n Core.ErrorHelper.throw(new errors.notFound());\r\n return;\r\n }\r\n\r\n if (object.statusCode === HttpStatus.Forbidden) {\r\n /**\r\n * TODO: Work out how to go about handling all forbidden errors, such as region locking, year levels,\r\n * ratings, and privacy.\r\n */\r\n Core.ErrorHelper.throw(new errors.forbidden.privacy());\r\n return;\r\n }\r\n\r\n Core.ErrorHelper.throw(new errors.badRequest());\r\n}","import { Flight } from 'libs/common/flight';\r\nimport { VideoCollection, Video, CurrentUser } from 'libs/shared/interfaces';\r\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\r\nimport { FavouriteVideoRequests } from 'libs/shared/flight-requests/FavouriteVideoRequests';\r\n\r\nimport { VideoRequests } from 'shared/flight-requests/VideoRequests';\r\nimport { VideoHistoryRequests } from 'apps/watch-history/flight-requests/VideoHistoryRequests';\r\n\r\ninterface VideoMixinOptions {\r\n ratings?: boolean;\r\n favourites?: boolean;\r\n watchHistory?: boolean;\r\n}\r\n\r\nconst defaults: VideoMixinOptions = {\r\n ratings: true,\r\n favourites: true,\r\n watchHistory: true,\r\n};\r\n\r\nfunction fetchAttribute(videosFetched: boolean, request: Flight.Request): void {\r\n const attribute = Flight.useGetResponse<VideoCollection>(request?.key);\r\n const fetch = Flight.useGetFetch(request);\r\n\r\n if (videosFetched && request && attribute.shouldFetch)\r\n fetch();\r\n}\r\n\r\nexport function useVideoMixin(videos: VideoCollection | Video[], options: VideoMixinOptions = {}): void {\r\n const { ratings, favourites, watchHistory } = { ...defaults, ...options };\r\n\r\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\r\n\r\n const videoIds = videos && (Array.isArray(videos)\r\n ? videos.filter(Boolean).map(v => v.id)\r\n : videos.data.filter(Boolean).map(v => v.id));\r\n\r\n const user = currentUser.data;\r\n\r\n let requests: Flight.Request[] = [];\r\n\r\n if (ratings)\r\n requests = [ ...requests, !!videoIds?.length && VideoRequests.videoRatings(videoIds) ];\r\n\r\n if (favourites)\r\n requests = [ ...requests, !!videoIds?.length && user && FavouriteVideoRequests.isFavourited(user.id, videoIds) ];\r\n\r\n if (watchHistory)\r\n requests = [ ...requests, !!videoIds?.length && user &&\r\n VideoHistoryRequests.videoHistory( user.customerId, user.id, videoIds) ];\r\n\r\n requests.forEach(r => fetchAttribute(!!videos, r));\r\n}","import * as React from 'react';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport { Flight } from 'libs/common/flight';\r\nimport { useViewModel } from 'libs/common/react/hooks/useViewModel';\r\nimport { Video, VideoCollection, CurrentUser, Theme } from 'libs/shared/interfaces';\r\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\r\nimport { FavouriteVideoRequests } from 'libs/shared/flight-requests/FavouriteVideoRequests';\r\nimport { ThemeRequests } from 'libs/shared/flight-requests/ThemeRequests';\r\nimport { useSetPageTitle } from 'libs/common/react/hooks/UseSetPageTitle';\r\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\r\nimport { EntityType, UserAction, LocationContext, WorkflowPhase, ToggleDescriptor } from 'libs/analytics/interfaces';\r\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\n\r\nimport { VideoRequests } from 'shared/flight-requests/VideoRequests';\r\nimport { PlayPage } from 'shared/components/play-page/PlayPage';\r\nimport { ViewModelKeys } from 'shared/constants/LiteViewModels';\r\nimport { VideoNotFoundError } from 'shared/errors/videos/video-not-found/LiteVideoNotFoundError';\r\nimport { VideoPrivateError } from 'shared/errors/videos/video-private/VideoPrivateError';\r\nimport { useHandleObjectError } from 'shared/hooks/useHandleObjectError';\r\nimport { useVideoMixin } from 'shared/hooks/useVideoMixin';\r\n\r\nconst namespace = 'shared.play';\r\n\r\nconst videoErrors = {\r\n notFound: VideoNotFoundError,\r\n forbidden: {\r\n privacy: VideoPrivateError\r\n }\r\n};\r\n\r\ninterface PlayViewProps {\r\n id: string;\r\n startTime?: number; // Timepoint in seconds\r\n}\r\n\r\nexport function PlayView(props: PlayViewProps): React.ReactElement {\r\n const dispatch = useDispatch();\r\n const alerts = useAlerts();\r\n\r\n const [ currentPlayerData, setPlayerData ] = useViewModel(ViewModelKeys.WEB_PLAYER_DATA);\r\n\r\n const video = Flight.useBasicFetch<Video>(VideoRequests.video(props.id));\r\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\r\n // const relatedVideos = Flight.useBasicFetch<VideoCollection>(!!currentUser.data &&\r\n // FavouriteVideoRequests.favouriteVideos(currentUser.data.id));\r\n const glanceTheme = Flight.useBasicFetch<Theme>(video.data?.glance?.theme\r\n ? ThemeRequests.theme(video.data.glance.theme) : null);\r\n\r\n useSetPageTitle(video.data?.name);\r\n useHandleObjectError(video, videoErrors, currentUser.data);\r\n\r\n useVideoMixin([video.data]);\r\n\r\n function setFavourite(_video: Video, shouldFavourite: boolean, onError?: () => void): void {\r\n Flight.fetch(\r\n dispatch,\r\n FavouriteVideoRequests.updateIsVideoFavourited(_video.id, currentUser.data.id, shouldFavourite, () => {\r\n AnalyticsHelper.logUserAction({ id: _video.id }, {\r\n entity: EntityType.Video,\r\n actionType: UserAction.Favourite,\r\n descriptor: shouldFavourite ? ToggleDescriptor.On : ToggleDescriptor.Off,\r\n location: LocationContext.PlayPage,\r\n workflowPhase: WorkflowPhase.Complete\r\n });\r\n\r\n alerts.success(LanguageService.getPhrase(\r\n namespace,\r\n shouldFavourite ? 'favourited' : 'unfavourited',\r\n { video: _video.name }\r\n ));\r\n }, onError)\r\n );\r\n }\r\n\r\n React.useEffect(() => {\r\n if (!video.data)\r\n return;\r\n\r\n setPlayerData('video', video.data);\r\n\r\n const newVideo = currentPlayerData.video?.id !== video.data.id;\r\n const newStartTime = Number.isInteger(props.startTime) && props.startTime !== currentPlayerData.startTime;\r\n\r\n /**\r\n * Only update start time if the video has changed or if a new startTime has been passed as a prop.\r\n * \r\n * We must set startTime as something other than undefined (i.e. a number) otherwise the ViewModelReducer\r\n * won't recognise that it's a KVP.\r\n */\r\n if (newVideo || newStartTime)\r\n setPlayerData('startTime', props.startTime || 0);\r\n }, [ !!video.data, props.startTime ]);\r\n\r\n if (!video.data || !currentUser.data)\r\n return <></>;\r\n\r\n return (\r\n <div className='px-3'>\r\n <PlayPage\r\n video={video.data}\r\n glanceTheme={glanceTheme.data}\r\n // relatedVideos={relatedVideos.data ? relatedVideos.data.data : null}\r\n setFavourite={setFavourite}\r\n />\r\n </div>\r\n );\r\n}"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"sources":["file://C:/ClickView Projects/@clickview/packages/libs/common/src/react/utils/TypeHelper.ts","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/search-bar/SearchBar.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/search-bar/SearchInput.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/search-bar/SearchUtils.tsx","webpack://@clickview/lite/C:/ClickView Projects/@clickview/packages/libs/shared/src/components/search-bar/search-bar.scss?d22e"],"names":[],"mappings":"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","file":"scripts/13.chunk.js","sourcesContent":["export const TypeHelper = {\r\n isNumber(obj: any): boolean {\r\n return TypeHelper.isType(obj, 'number');\r\n },\r\n\r\n isString(obj: any): boolean {\r\n return TypeHelper.isType(obj, 'string');\r\n },\r\n\r\n isType(obj: any, type: string): boolean {\r\n return typeof obj === type;\r\n }\r\n};","import * as React from 'react';\r\nimport * as Autosuggest from 'react-autosuggest';\r\n\r\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\r\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\n\r\nimport { useMediaQuery } from 'libs/shared/hooks/UseMediaQuery';\r\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\r\n\r\nimport * as SearchUtils from './SearchUtils';\r\nimport { SearchInput } from './SearchInput';\r\n\r\nconst namespace = 'shared.searchBar';\r\n\r\nconst isFunction = FunctionHelper.isFunction;\r\n\r\ninterface SearchBarWrapperProps {\r\n renderAsForm: boolean;\r\n onSubmit: (event: React.FormEvent) => void;\r\n}\r\n\r\nfunction SearchBarWrapper(props: React.PropsWithChildren<SearchBarWrapperProps>): JSX.Element {\r\n if (!props.renderAsForm)\r\n return (\r\n <>\r\n {props.children}\r\n </>\r\n );\r\n\r\n return (\r\n <form onSubmit={props.onSubmit}>\r\n {props.children}\r\n </form>\r\n );\r\n}\r\n\r\nexport interface SearchBarProps<T extends HashObject> {\r\n /**\r\n * Optional initial query. Useful for populating the search bar\r\n * on a search results page.\r\n */\r\n initialQuery?: string;\r\n\r\n /**\r\n * Callback function for when a suggestion is selected.\r\n */\r\n onSuggestionSelected: (suggestion: T) => void;\r\n\r\n /**\r\n * Flag to determine if the query should be updated when a\r\n * suggestion is selected. Defaults to `true` in `defaultProps`.\r\n * If true, SearchUtils.getSuggestionValue is used to update the query.\r\n */\r\n updateQueryOnSelection?: boolean;\r\n\r\n /**\r\n * Optional callback for when the search query changes.\r\n */\r\n onQueryChange?: (query: string) => void;\r\n\r\n /**\r\n * Optional callback for when the search is submitted.\r\n */\r\n onSubmit?: (query: string) => void;\r\n\r\n /**\r\n * Optional callback to get the remote resource if remote search\r\n * results are being used.\r\n */\r\n getRemoteUrl?: (query: string) => string;\r\n\r\n /**\r\n * Optional formatting function for the data returned from the remote resource.\r\n */\r\n formatRemoteSuggestions?: (data: any) => T[];\r\n\r\n /**\r\n * Optional array of recent searches.\r\n */\r\n recentSearches?: T[];\r\n\r\n /**\r\n * A label for the recent search section.\r\n * A default is provided in the i18n config.\r\n */\r\n recentSearchHeading?: string;\r\n\r\n /**\r\n * A label for the main suggestions section.\r\n * Will not be used if getSections is passed as a prop.\r\n */\r\n suggestionsHeading?: string;\r\n\r\n /**\r\n * Optional array of local data to be used as suggestion sources.\r\n */\r\n local?: T[];\r\n\r\n /**\r\n * Optional array of initial suggestions. These suggestions will be available\r\n * when no query is present. Entering a query will begin filtering suggestions.\r\n * This is useful for using SearchBar to filter a list.\r\n */\r\n initialSuggestions?: T[];\r\n\r\n /**\r\n * Key used to filter local data. This is required if local is provided,\r\n * however a default of 'name' is set in `defaultProps`.\r\n */\r\n valueKey?: keyof T;\r\n\r\n /**\r\n * Optional function to filter suggestions from local data.\r\n * SearchUtils.getLocalSuggestions will be used by default.\r\n */\r\n getLocalSuggestions?: (query: string, local: T[]) => T[];\r\n\r\n /**\r\n * Optional function for splitting suggestions into sections.\r\n * Doesn't apply to recent searches (SuggestionType.Recent).\r\n */\r\n getSections?: (suggestions: T[]) => SearchUtils.SuggestionSection<T>[];\r\n\r\n /**\r\n * Placeholder for the search input.\r\n * A default is provided in the i18n config.\r\n */\r\n placeholder?: string;\r\n\r\n /**\r\n * The number of characters required to begin providing suggestions.\r\n * A default is provided in `defaultProps`.\r\n */\r\n activationLength?: number;\r\n\r\n /**\r\n * Max number of suggestions to render. A default is set in `defaultProps`.\r\n * Set to false to render all suggestions (e.g. for filtering a list in memory).\r\n */\r\n suggestionLimit?: number | false;\r\n\r\n /**\r\n * Callback function to get the component to be rendered for a suggestion.\r\n * SearchUtils.getSuggestionComponent is used a default. This uses\r\n * `valueKey` to render text.\r\n */\r\n getSuggestionComponent?: (suggestion: T) => JSX.Element;\r\n\r\n /**\r\n * If true, suggestions will be rendered, even if the input isn't focussed.\r\n */\r\n alwaysRenderSuggestions?: boolean;\r\n\r\n /*\r\n * Optional theme hash to override `defaultTheme` in SearchUtils.\r\n */\r\n theme?: Autosuggest.Theme;\r\n\r\n /**\r\n * Option to determine whether to render the search icon and if so,\r\n * which side to render it on. Defaults to `right` in `defaultProps`\r\n */\r\n searchIconPlacement?: 'left' | 'right' | false;\r\n\r\n /**\r\n * If true, a cross svg will be rendered.\r\n * Clicking this icon will reset the query.\r\n */\r\n showClearInputIcon?: boolean;\r\n\r\n /**\r\n * Optional callback function to be called when the clear input\r\n * icon is clicked.\r\n * The query will be reset automatically, this callback is for\r\n * adding additional functionality.\r\n */\r\n onClickClearInput?: () => void;\r\n\r\n /**\r\n * Flag to determine whether clicking the search icon should trigger\r\n * submitting the search query.\r\n */\r\n submitOnClickSearchIcon?: boolean;\r\n\r\n /**\r\n * Flag to determine whether the search input should be autofocused.\r\n */\r\n autoFocusInput?: boolean;\r\n\r\n /**\r\n * If true, the default Bootstrap styling will be applied when the\r\n * input is focused.\r\n */\r\n highlightInputOnFocus?: boolean;\r\n\r\n /**\r\n * When true, the input field will be cleared whenever a suggestion is selected.\r\n */\r\n clearQueryOnSelect?: boolean;\r\n\r\n onBackspace?: () => void;\r\n\r\n /**\r\n * When true, the search input will be wrapped in a <form />.\r\n * This is true by default.\r\n * If rendering <SearchBar /> within another form, set this to false.\r\n */\r\n renderAsForm?: boolean;\r\n}\r\n\r\nSearchBar.defaultProps = {\r\n updateQueryOnSelection: true,\r\n valueKey: 'name',\r\n activationLength: 3,\r\n suggestionLimit: 5,\r\n recentSearches: [],\r\n initialSuggestions: [],\r\n searchIconPlacement: 'right',\r\n renderAsForm: true\r\n};\r\n\r\nexport function SearchBar<T extends HashObject>(props: SearchBarProps<T>): JSX.Element {\r\n const initialState = SearchUtils.getInitialState(props.initialSuggestions, props.recentSearches);\r\n\r\n const [ query, setQuery ] = React.useState(props.initialQuery || '');\r\n const [ suggestions, setSuggestions ] = React.useState<SearchUtils.SuggestionState<T>>(initialState);\r\n\r\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\r\n\r\n React.useEffect(() => {\r\n const initialQuery = props.initialQuery || '';\r\n\r\n if (query !== initialQuery)\r\n setQuery(initialQuery);\r\n }, [props.initialQuery]);\r\n\r\n const resetSuggestions = () => {\r\n setSuggestions(initialState);\r\n };\r\n\r\n const onChange = (e: React.ChangeEvent, { newValue }: Autosuggest.ChangeEvent) => {\r\n setQuery(newValue);\r\n\r\n if (isFunction(props.onQueryChange))\r\n props.onQueryChange(newValue);\r\n };\r\n\r\n const onSubmit = (event: React.FormEvent) => {\r\n event.preventDefault();\r\n\r\n if (isFunction(props.onSubmit))\r\n props.onSubmit(query);\r\n };\r\n\r\n const onKeyDown = (event: React.KeyboardEvent) => {\r\n if (event.keyCode === 8 && props.onBackspace && !query)\r\n props.onBackspace();\r\n };\r\n\r\n const onClickClearInput = () => {\r\n setQuery('');\r\n\r\n if (isFunction(props.onClickClearInput))\r\n props.onClickClearInput();\r\n };\r\n\r\n return (\r\n <SearchBarWrapper onSubmit={onSubmit} renderAsForm={!!props.renderAsForm}>\r\n <Autosuggest<T>\r\n suggestions={\r\n SearchUtils.getSuggestionSections(\r\n suggestions,\r\n !query,\r\n props.recentSearchHeading || LanguageService.getPhrase(namespace, 'recentSearchHeading'),\r\n props.suggestionsHeading,\r\n props.getSections,\r\n props.suggestionLimit\r\n )\r\n }\r\n onSuggestionsFetchRequested={\r\n SearchUtils.onSuggestionsFetchRequestedHandler(props, setSuggestions, resetSuggestions)\r\n }\r\n onSuggestionsClearRequested={() => {\r\n if (!props.alwaysRenderSuggestions)\r\n resetSuggestions();\r\n }}\r\n onSuggestionSelected={(e: React.FormEvent, { suggestion }: Autosuggest.SuggestionSelectedEventData<T>) => {\r\n if (props.clearQueryOnSelect)\r\n setQuery('');\r\n\r\n props.onSuggestionSelected(suggestion);\r\n }}\r\n getSuggestionValue={(suggestion: T) => {\r\n if (!props.updateQueryOnSelection)\r\n return query;\r\n\r\n return SearchUtils.getSuggestionValue(props.valueKey, suggestion);\r\n }}\r\n renderSuggestion={(suggestion: T) => {\r\n if (isFunction(props.getSuggestionComponent))\r\n return props.getSuggestionComponent(suggestion);\r\n\r\n return SearchUtils.getSuggestionComponent(props.valueKey, suggestion);\r\n }}\r\n alwaysRenderSuggestions={props.alwaysRenderSuggestions}\r\n /** \r\n * Setting focusInputOnSuggestionClick to false when isMobile is true prevents the keyboard from \r\n * appearing on mobile devices when a suggestion is clicked.\r\n */\r\n focusInputOnSuggestionClick={!isMobile}\r\n inputProps={{\r\n placeholder: props.placeholder || LanguageService.getPhrase(namespace, 'placeholder'),\r\n value: query,\r\n onChange,\r\n onKeyDown,\r\n autoFocus: !!props.autoFocusInput,\r\n highlightOnFocus: props.highlightInputOnFocus,\r\n onClickSearchIcon: !!props.submitOnClickSearchIcon && onSubmit,\r\n searchIconPlacement: props.searchIconPlacement,\r\n showClearInputIcon: !!props.showClearInputIcon && !!query.length,\r\n onClickClearInput\r\n } as Autosuggest.InputProps<T>}\r\n renderInputComponent={SearchInput}\r\n theme={SearchUtils.getTheme(props.theme)}\r\n multiSection\r\n renderSectionTitle={SearchUtils.renderSectionTitle}\r\n getSectionSuggestions={SearchUtils.getSectionSuggestions}\r\n />\r\n </SearchBarWrapper>\r\n );\r\n}","import * as React from 'react';\r\nimport * as Autosuggest from 'react-autosuggest';\r\n\r\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\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 './search-bar.scss';\r\n\r\nfunction getInputClassName<T>(props: SearchInputProps<T>): string {\r\n const { searchIconPlacement, showClearInputIcon, highlightOnFocus, className } = props;\r\n\r\n let inputClassName = 'form-control';\r\n\r\n if (!highlightOnFocus)\r\n inputClassName += ` ${styles.inputWithoutHighlight}`;\r\n\r\n if (searchIconPlacement === 'left')\r\n inputClassName += ` ${styles.inputWithLeftIcon}`;\r\n\r\n if (searchIconPlacement === 'right' && !showClearInputIcon || searchIconPlacement === 'left' && showClearInputIcon)\r\n inputClassName += ` ${styles.inputWithRightIcon}`;\r\n\r\n if (searchIconPlacement === 'right' && showClearInputIcon)\r\n inputClassName += ` ${styles.inputWithTwoRightIcons}`;\r\n\r\n if (className)\r\n inputClassName += `${className}`;\r\n\r\n return inputClassName;\r\n}\r\n\r\nfunction getSvgContainerClassName(onClickSvg: () => void): string {\r\n const className = 'd-inline-block svg-container';\r\n\r\n if (!FunctionHelper.isFunction(onClickSvg))\r\n return className;\r\n\r\n return className + ' cursor-pointer';\r\n}\r\n\r\ninterface SearchInputProps<T> extends Autosuggest.InputProps<T>{\r\n onClickSearchIcon?: () => void;\r\n searchIconPlacement?: 'left' | 'right' | false;\r\n showClearInputIcon?: boolean;\r\n onClickClearInput?: () => void;\r\n highlightOnFocus?: boolean;\r\n}\r\n\r\nexport function SearchInput<T extends {}>(props: SearchInputProps<T>): JSX.Element {\r\n const {\r\n onClickSearchIcon,\r\n searchIconPlacement,\r\n showClearInputIcon,\r\n onClickClearInput,\r\n highlightOnFocus,\r\n className,\r\n ...inputProps\r\n } = props;\r\n\r\n const SearchIcon = () => (\r\n <div className='d-inline-block'>\r\n <SvgContainer\r\n svgName={cvSvgLibrary.Search}\r\n size={SvgContainerSize.Standard}\r\n onClick={onClickSearchIcon}\r\n className={getSvgContainerClassName(onClickSearchIcon)}\r\n />\r\n </div>\r\n );\r\n\r\n const ClearIcon = () => (\r\n <div className={`d-inline-block text-muted ${styles.clearButton}`}>\r\n <SvgContainer\r\n svgName={cvSvgLibrary.Close}\r\n size={SvgContainerSize.Standard}\r\n onClick={onClickClearInput}\r\n className={getSvgContainerClassName(onClickClearInput)}\r\n />\r\n </div>\r\n );\r\n\r\n return (\r\n <div className={`position-relative ${styles.inputContainer}`}>\r\n {searchIconPlacement === 'left' &&\r\n <div className={`${styles.iconContainer} ${styles.leftIconContainer}`}>\r\n <SearchIcon />\r\n </div>\r\n }\r\n <input className={getInputClassName<T>(props)} {...inputProps as any} />\r\n {(searchIconPlacement === 'right' || !!showClearInputIcon) &&\r\n <div className={`${styles.iconContainer} ${styles.rightIconContainer}`}>\r\n {!!showClearInputIcon && <ClearIcon />}\r\n {searchIconPlacement === 'right' && <SearchIcon />}\r\n </div>\r\n }\r\n </div>\r\n );\r\n}\r\n","import * as React from 'react';\r\nimport * as Autosuggest from 'react-autosuggest';\r\n\r\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\r\nimport { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\r\nimport { Flight } from 'libs/common/flight';\r\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\r\nimport { TypeHelper } from 'libs/common/react/utils/TypeHelper';\r\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\r\n\r\nimport { SearchBarProps } from './SearchBar';\r\n\r\nimport styles from './search-bar.scss';\r\n\r\nexport enum SuggestionType {\r\n Local = 'local',\r\n Recent = 'recent',\r\n Remote = 'remote'\r\n}\r\n\r\n/**\r\n * Suggestions grouped as a section\r\n */\r\nexport interface SuggestionSection<T extends HashObject> {\r\n data: T[];\r\n title?: string;\r\n}\r\n\r\n/**\r\n * How suggestion data is stored in state in SearchBar\r\n */\r\nexport type SuggestionState<T extends HashObject> = { [ key in SuggestionType ]: T[] };\r\n\r\nexport function getInitialState<T extends HashObject>(\r\n initialSuggestions: T[], recentSearches: T[]\r\n): SuggestionState<T> {\r\n return {\r\n [SuggestionType.Recent]: recentSearches,\r\n [SuggestionType.Local]: initialSuggestions,\r\n [SuggestionType.Remote]: []\r\n };\r\n}\r\n\r\nfunction hasAttribute<T extends HashObject>(obj: T, valueKey: keyof T): boolean {\r\n return ObjectHelper.isObject(obj) && obj.hasOwnProperty(valueKey) && TypeHelper.isString(obj[valueKey]);\r\n}\r\n\r\nfunction getLocalSuggestions<T extends HashObject>(query: string, data: T[], valueKey: keyof T): T[] {\r\n const q = query.trim().toLowerCase();\r\n\r\n if (!q.length)\r\n return [];\r\n\r\n return data.filter(d => {\r\n if (!hasAttribute(d, valueKey) || !TypeHelper.isString(d[valueKey]))\r\n return false;\r\n\r\n return d[valueKey].trim().toLowerCase().includes(q);\r\n });\r\n}\r\n\r\nfunction fetchSuggestions<T extends HashObject>(\r\n getUrl: (query: string) => string, query: string, callback: (suggestions: T[]) => void\r\n): void {\r\n const resource = FunctionHelper.isFunction(getUrl) && getUrl(query);\r\n\r\n if (!resource)\r\n return;\r\n\r\n Flight.ajaxRequest({\r\n resource,\r\n type: HttpVerbs.GET,\r\n success: callback,\r\n error: () => {}\r\n });\r\n}\r\n\r\nexport function onSuggestionsFetchRequestedHandler<T extends HashObject>(\r\n props: SearchBarProps<T>,\r\n setSuggestions: React.Dispatch<React.SetStateAction<SuggestionState<T>>>,\r\n resetSuggestions: () => void\r\n): (params: Autosuggest.SuggestionsFetchRequestedParams) => void {\r\n return ({ value }: Autosuggest.SuggestionsFetchRequestedParams) => {\r\n if (!value.length)\r\n resetSuggestions();\r\n\r\n if (value.length < props.activationLength)\r\n return;\r\n\r\n if (props.local) {\r\n const filtered = FunctionHelper.isFunction(props.getLocalSuggestions)\r\n ? props.getLocalSuggestions(value, props.local)\r\n : getLocalSuggestions(value, props.local, props.valueKey);\r\n\r\n setSuggestions(s => ({ ...s, [SuggestionType.Local]: filtered }));\r\n }\r\n\r\n if (props.getRemoteUrl)\r\n fetchSuggestions(\r\n props.getRemoteUrl,\r\n value,\r\n (data: any) => setSuggestions(\r\n s => ({\r\n ...s,\r\n [SuggestionType.Remote]: FunctionHelper.isFunction(props.formatRemoteSuggestions)\r\n ? props.formatRemoteSuggestions(data)\r\n : data\r\n })\r\n )\r\n );\r\n };\r\n}\r\n\r\nexport function getSuggestionValue<T extends HashObject>(valueKey: keyof T, suggestion: T): string {\r\n if (!hasAttribute(suggestion, valueKey))\r\n return '';\r\n\r\n return suggestion[valueKey];\r\n}\r\n\r\n/**\r\n * Default suggestion component. Renders text based on valueKey.\r\n * \r\n * @param valueKey object attribute to be rendered.\r\n */\r\nexport function getSuggestionComponent<T extends HashObject>(valueKey: keyof T, suggestion: T): JSX.Element {\r\n return hasAttribute(suggestion, valueKey)\r\n ? <>\r\n {suggestion[valueKey]}\r\n </>\r\n : <></>;\r\n}\r\n\r\n/**\r\n * Maps the suggestion state into sections.\r\n * \r\n * @param getSections - an optional function passed in from anything consuming\r\n * SearchBar used to break the local and remote suggestions into sections.\r\n */\r\nexport function getSuggestionSections<T extends HashObject>(\r\n suggestionState: SuggestionState<T>,\r\n showRecentSearches: boolean,\r\n recentSearchHeading: string,\r\n suggestionsHeading?: string,\r\n getSections?: (suggestions: T[]) => SuggestionSection<T>[],\r\n suggestionLimit?: number | false\r\n): SuggestionSection<T>[] {\r\n const getTypeSuggestions = (type: SuggestionType) => {\r\n const typeSuggestions = suggestionState[type];\r\n\r\n return typeSuggestions || [];\r\n };\r\n\r\n const recentSuggestions = showRecentSearches ? getTypeSuggestions(SuggestionType.Recent) : [];\r\n const localSuggestions = getTypeSuggestions(SuggestionType.Local);\r\n const remoteSuggestions = getTypeSuggestions(SuggestionType.Remote);\r\n\r\n let sections: SuggestionSection<T>[] = [];\r\n\r\n if (recentSuggestions.length)\r\n sections.push({\r\n title: recentSearchHeading,\r\n data: recentSuggestions\r\n });\r\n\r\n const matchedSuggestions = [ ...localSuggestions, ...remoteSuggestions ];\r\n\r\n if (Number.isInteger((suggestionLimit as number)) && sections.length > suggestionLimit)\r\n matchedSuggestions.slice(0, (suggestionLimit as number));\r\n\r\n if (FunctionHelper.isFunction(getSections))\r\n sections.push(...getSections(matchedSuggestions));\r\n else\r\n sections.push({ title: suggestionsHeading, data: matchedSuggestions });\r\n\r\n return sections;\r\n}\r\n\r\n/**\r\n * Maps a section into a list of suggestions.\r\n */\r\nexport function getSectionSuggestions<T extends HashObject>(section: SuggestionSection<T>): T[] {\r\n return section.data;\r\n}\r\n\r\nexport function renderSectionTitle<T extends HashObject>(section: SuggestionSection<T>): JSX.Element | null {\r\n if (section.title)\r\n return <strong>{section.title}</strong>;\r\n}\r\n\r\nconst defaultTheme = {\r\n container: 'position-relative',\r\n suggestionsContainerOpen: `bg-white py-1 border rounded ${styles.suggestionsContainerOpen}`,\r\n suggestionsList: 'list-unstyled m-0',\r\n suggestion: 'cursor-pointer py-1 px-2',\r\n suggestionHighlighted: styles.suggestionHighlighted,\r\n sectionContainer: `border-bottom py-1 ${styles.sectionContainer}`\r\n};\r\n\r\nexport function getTheme(theme: Autosuggest.Theme = {}): Autosuggest.Theme {\r\n return Object.assign(defaultTheme, theme);\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"inputWithoutHighlight\":\"cv--inputWithoutHighlight---L0yF\",\"suggestionsContainerOpen\":\"cv--suggestionsContainerOpen--ahMdW\",\"sectionContainer\":\"cv--sectionContainer--xstWL\",\"suggestionHighlighted\":\"cv--suggestionHighlighted--3YTCa\",\"inputContainer\":\"cv--inputContainer--1wn3m\",\"clearButton\":\"cv--clearButton--1BwBs\",\"inputWithLeftIcon\":\"cv--inputWithLeftIcon--qxZOe\",\"inputWithRightIcon\":\"cv--inputWithRightIcon--3U4W-\",\"inputWithTwoRightIcons\":\"cv--inputWithTwoRightIcons--2rgzF\",\"iconContainer\":\"cv--iconContainer--1DLw5\",\"leftIconContainer\":\"cv--leftIconContainer--AZCtZ\",\"rightIconContainer\":\"cv--rightIconContainer--1R52s\"};"],"sourceRoot":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(window.webpackJsonp_clickview_lite=window.webpackJsonp_clickview_lite||[]).push([[14],{1252:function(e,t,a){e.exports={partialDescription:"_3cyjk"}},1304:function(e,t,a){"use strict";a.r(t);var n=a(0),r=a.n(n),i=a(61),o=a(14),c=a(57),l=a(7),s=a(3),u=a(40),d=a(79),p=a(153),f=a(12),m="hc/articles/115005679748",v=a(1073),y=l.a.encloseNamespace("playlists.emptyState");function b(e){var t,a=Object(p.a)(f.b.ImageUrl).getImageUrls(),r=d.a.safeUrlConcat(e.supportSiteUrl,m),i=(null===(t=e.playlist.owner)||void 0===t?void 0:t.id)===e.currentUser.id;return n.createElement(v.a,{imageUrl:a.EmptyStates.VIDEOS,heading:y("noVideosHeading"),description:i&&'<a href="'.concat(r,'" target="_blank">').concat(y("noVideosInfo"),"</a>")})}var g=a(157),h=a(154),E=a(831),S=a(861),w=a(237),k=a(933),A=a(1072);var O=a(1074),j=a(864),I=a(159),C=function(e){var t,a;if((null===(t=e)||void 0===t?void 0:t.onlineRole)!==I.a.Staff)return null===(a=e)||void 0===a?void 0:a.maxAllowedRating};function N(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var a=[],n=!0,r=!1,i=void 0;try{for(var o,c=e[Symbol.iterator]();!(n=(o=c.next()).done)&&(a.push(o.value),!t||a.length!==t);n=!0);}catch(e){r=!0,i=e}finally{try{n||null==c.return||c.return()}finally{if(r)throw i}}return a}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return x(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);"Object"===a&&e.constructor&&(a=e.constructor.name);if("Map"===a||"Set"===a)return Array.from(e);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return x(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function x(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=new Array(t);a<t;a++)n[a]=e[a];return n}var L=a(242),P=a(824),F=a(850),T=a(239),U=a(995),V=a(107),D=a(45),B=a(13),R=a(913),_=a(10),H=a(5),M=a(1252),X=a.n(M);function Y(){return r.a.createElement(r.a.Fragment,null,r.a.createElement(R.b,null),r.a.createElement("div",{className:"mb-2"},r.a.createElement("div",{className:"partial-loading-background my-2 border-bottom ".concat(X.a.partialDescription)})))}function $(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var a=[],n=!0,r=!1,i=void 0;try{for(var o,c=e[Symbol.iterator]();!(n=(o=c.next()).done)&&(a.push(o.value),!t||a.length!==t);n=!0);}catch(e){r=!0,i=e}finally{try{n||null==c.return||c.return()}finally{if(r)throw i}}return a}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return q(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);"Object"===a&&e.constructor&&(a=e.constructor.name);if("Map"===a||"Set"===a)return Array.from(e);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return q(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function q(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=new Array(t);a<t;a++)n[a]=e[a];return n}var z=l.a.encloseNamespace("playlists.playlistHeader");function K(e){var t=$(n.useState(e.isFollowing),2),a=t[0],r=t[1],i=$(n.useState(!1),2),o=i[0],c=i[1];n.useEffect((function(){return r(e.isFollowing)}),[e.isFollowing]);var l=Object(V.a)(D.a.XS);if(e.showPartialLoading)return n.createElement(Y,null);var d=e.playlist.description,p=e.application,f=[e.playlist.id],m=[{label:z("share"),appLink:{application:H.a.DEFAULT,action:_.a.Default.SHARE,args:[e.playlist.id],params:{entityType:"playlist"}},svgName:B.b.Share,className:"btn btn-light",button:!l}];return e.canEdit&&m.push({label:z("edit"),appLink:{application:p,action:_.a.Playlists.EDIT_PLAYLIST,args:f},svgName:B.b.Edit,className:"btn btn-light",button:!1},{label:z("delete"),appLink:{application:p,action:_.a.Playlists.DELETE_PLAYLIST,args:f},svgName:B.b.Delete,className:"text-danger",button:!1}),e.canEdit||m.push({label:z(a?"following":"follow"),onClick:function(){r(!a),c(!0),e.follow(!a,(function(){c(!1),u.a.logUserAction({id:e.playlistId},{location:s.j.Banner,actionType:s.n.Follow,descriptor:a?s.m.Off:s.m.On,entity:s.d.Playlist,workflowPhase:s.o.Complete})}),(function(){c(!1),r(a)}))},svgName:B.b.Bell,className:"btn follow-btn btn-".concat(a?"dark":"light"),button:!l,showSpinner:o}),n.createElement(n.Fragment,null,n.createElement(R.a,{heading:e.playlist.name,banner:e.playlist.banner,imageCdnUrl:e.imageCdnUrl,actions:m.length&&m}),!!d&&n.createElement("p",{className:"py-2 border-bottom"},d))}var G=a(929),J=a(128);var Z=a(127),Q=a(351),W=a(352);function ee(e){var t=e&&e.length&&e.map((function(e){return e.dateAssociated}));return t&&t.length?Z.a.max(t,(function(e){return new Date(e).getTime()})):null}function te(e){return[e?J.a.RemoveFromPlaylist:J.a.AddToPlaylist,J.a.Share]}function ae(e,t,a){u.a.logUserAction({id:t,playlistId:e},{location:s.j.VideoList,entity:s.d.Video,actionType:s.n.Move,workflowPhase:a})}var ne={notFound:Q.a,forbidden:{privacy:W.a}};function re(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var a=[],n=!0,r=!1,i=void 0;try{for(var o,c=e[Symbol.iterator]();!(n=(o=c.next()).done)&&(a.push(o.value),!t||a.length!==t);n=!0);}catch(e){r=!0,i=e}finally{try{n||null==c.return||c.return()}finally{if(r)throw i}}return a}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return ie(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);"Object"===a&&e.constructor&&(a=e.constructor.name);if("Map"===a||"Set"===a)return Array.from(e);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return ie(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ie(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=new Array(t);a<t;a++)n[a]=e[a];return n}a.d(t,"PlaylistView",(function(){return oe}));function oe(e){var t,a=Object(i.useDispatch)(),r=Object(P.a)(),d=o.a.useBasicFetch(g.a.config),p=o.a.useBasicFetch(h.a.currentUser()),f=!c.a.isEmpty(p.data),m=e.filterByRating?f&&C(p.data):null,v=e.isShared?!!p.data&&S.a.getSharedPlaylist(e.playlistId,m):S.a.getPlaylist(e.playlistId),y=o.a.useBasicFetch(v);Object(U.a)(y,ne,p.data);var I=!!p.data&&function(t){return(e.isShared?S.a.getSharedPlaylistVideos:S.a.getPlaylistVideos)(e.playlistId,m,t)},x=o.a.useBasicFetch(!!p.data&&S.a.getIsFollowingPlaylist(e.playlistId,p.data.id)),V=function(e){o.a.getFetch(a,I(e))()},D=function(e,t){var a=t,r=Object(k.a)(e&&function(t){return e(t).key});return Object(A.a)((function(){return t&&a(r.nextCursor)}),!!r.nextCursor,r.isFetching),Object(n.useEffect)((function(){r.shouldInitialFetch&&t&&a()}),[r.shouldInitialFetch,t]),{items:r.items,hasMore:!!r.nextCursor,isFetching:r.isFetching}}(I,V),B=D.items,R=D.hasMore,M=D.isFetching;Object(F.a)(B);var X,Y,$,q,z=re((X=B,Y=N(Object(n.useState)(),2),$=Y[0],q=Y[1],Object(n.useEffect)((function(){$&&(X.length!==$.length||function(e,t){var a=!0;if(e.length!==t.length)return!1;for(var n=0;n<e.length;n++)if(e[n].id!==t[n].id){a=!1;break}return a}(X,$))&&q(null)}),[X]),[$,q]),2),Z=z[0],Q=z[1],W=f&&!!B&&!!B.length&&T.a.getRestrictions(B.map((function(e){return e.id}))),ie=o.a.useGetResponse(W&&W.key),oe=o.a.useGetFetch(W);W&&ie.shouldFetch&&oe(),Object(w.a)(!!y.data&&y.data.name,[y.data]);var ce,le,se=!!e.allowEdit&&function(e,t){return!(c.a.isEmpty(t)||!e||c.a.isEmpty(e.owner))&&e.owner.id===t.id}(y.data,p.data),ue=!!B&&0===B.length;return n.createElement(L.a.Provider,{value:{videoActions:te(se),getActionAppLink:(ce=e.application,le=e.playlistId,function(e,t){switch(t){case J.a.RemoveFromPlaylist:return{application:ce,action:_.a.Playlists.REMOVE_VIDEO_FROM_PLAYLIST,args:[e.id,le]};case J.a.AddToPlaylist:return{application:ce,action:_.a.Playlists.ADD_TO_PLAYLIST,args:[e.id]};case J.a.Share:return{application:H.a.DEFAULT,action:_.a.Default.SHARE,args:[e.id],params:{entityType:"video"}}}}),hideLabel:!0}},n.createElement("div",{className:"bg-white px-3"},n.createElement(K,{playlistId:e.playlistId,playlist:y.data,hasVideos:!ue,isFollowing:null===(t=x.data)||void 0===t?void 0:t.isFollowing,follow:function(t,n,i){var c=t?S.a.followPlaylist:S.a.unfollowPlaylist;o.a.fetch(a,c(e.playlistId,p.data.id,n,(function(){i(),r.error(l.a.getPhrase("playlists.playlist",t?"followError":"unfollowError"))})))},application:e.application,canEdit:se,isShared:e.isShared,showBreadcrumbs:e.showBreadcrumbs,showDateMetadata:e.showDateMetadata,playAllAppLink:e.playAllAppLink,showPartialLoading:!(y.data&&B&&p.data&&d.data&&x.data),lastUpdated:!!B&&ee(B),imageCdnUrl:!!d.data&&d.data.imageCdnUrl,returnAppLink:e.returnAppLink}),n.createElement("div",{className:"mt-2"},ue?!!d.data&&!!p.data&&!!y.data&&n.createElement(b,{playlist:y.data,currentUser:p.data,supportSiteUrl:d.data.supportSiteUrl}):n.createElement(G.a,{videos:Z||B,playlistId:!!y.data&&y.data.id,onSortStart:function(t){var a=B[t];a&&ae(e.playlistId,a.id,s.o.Start)},onSortComplete:function(t,n){if(t!==n){var r=B[t];if(r){var i=j.a.reorder(B,t,n),c=i.reorderedItems,l=i.reorderRequest;Q(c),ae(e.playlistId,r.id,s.o.Complete);o.a.fetch(a,S.a.reorderVideos(e.playlistId,l,null,(function(){Q(null)})))}}},isUserSignedIn:f,canEdit:se,showPartialLoading:!B||!p.data||!d.data,getVideoAppLink:e.getVideoAppLink,getSeriesAppLink:e.getSeriesAppLink,fetchRestrictions:oe,setFavourite:function(e,t,n){o.a.fetch(a,E.a.updateIsVideoFavourited(e.id,p.data.id,t,(function(){u.a.logUserAction({id:e.id},{entity:s.d.Video,actionType:s.n.Favourite,descriptor:t?s.m.On:s.m.Off,location:s.j.VideoThumbnail,workflowPhase:s.o.Complete}),r.success(l.a.getPhrase("playlists.playlist",t?"favourited":"unfavourited",{video:e.name}))}),n))}})),!!R&&n.createElement(O.a,{isFetching:M,onClick:V})))}},825:function(e,t,a){"use strict";a.d(t,"a",(function(){return r}));var n=a(0);function r(e){return n.createElement("div",{role:"button",tabIndex:0,className:"".concat(e.className?e.className:""," cursor-pointer"),onKeyDown:function(t){return"Enter"===t.key&&e.onClick(t)},onClick:e.onClick,style:e.style?e.style:{}},e.children)}},830:function(e,t,a){"use strict";a.d(t,"a",(function(){return l})),a.d(t,"c",(function(){return s})),a.d(t,"b",(function(){return u}));var n=a(0),r=a(818),i=a(2),o=a(837),c=a(844),l=n.createContext({isSortable:!1});function s(e){var t=n.useContext(l).isSortable?c.a:c.b,a=i.a.AppLinkHelper.getCurrentAppLink();return n.createElement(n.Fragment,null,n.createElement("div",{className:"position-relative"},e.videos.map((function(a,r){return n.createElement(t,{key:a.id,idx:r,index:r,video:a,getVideoAppLink:e.getVideoAppLink,getSeriesAppLink:e.getSeriesAppLink,setFavourite:e.setFavourite,hideInteractiveBadge:e.hideInteractiveBadge})}))),e.cursors&&n.createElement(o.b,{appLink:a,cursors:e.cursors}))}var u=Object(r.SortableContainer)((function(e){return n.createElement(l.Provider,{value:{isSortable:!0,currentSortingIndex:e.currentSortingIndex}},n.createElement(s,Object.assign({},e)))}))},831:function(e,t,a){"use strict";a.d(t,"a",(function(){return l}));var n=a(21),r=a(46),i=function(e,t){var a={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(a[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(a[n[r]]=e[n[r]])}return a};function o(e,t,a,r){return{url:"/api/domain/v2/objects/".concat(t),key:"favourite:video:".concat(t,":").concat(e),data:{favouriteVideos:e},type:n.a.PUT,invalidationKeys:["favourite:videos:".concat(t),"video:is:favourited:".concat(t)],success:a,error:r}}function c(e,t,a,r){return{url:"/api/domain/v2/objects/".concat(t,"/favouriteVideos/").concat(e),key:"favourite:video:".concat(t,":").concat(e),type:n.a.DELETE,invalidationKeys:["favourite:videos:".concat(t),"video:is:favourited:".concat(t)],success:a,error:r}}var l={favouriteVideos:function(e,t){var a="".concat(r.a.VIDEO_COLLECTION).concat(function(e){return e?"&cursor=".concat(e):""}(t));return{url:"/api/domain/v2/objects/".concat(e,"/favouriteVideos?query=").concat(a),key:"favourite:videos:".concat(e).concat(t?":".concat(t):"")}},updateIsVideoFavourited:function(e,t,a,n,r){return(a?o:c)(e,t,n,r)},isFavourited:function(e,t){var a=t.slice().sort(),n=a.map((function(e){return"id=".concat(e)}));if(n.length)return{url:"/api/domain/v2/objects?query=favouritedBy{id:".concat(e,"}&").concat(n.join("&")),key:"video:is:favourited:".concat(e,":by:id:").concat(a.join(",")),formatData:function(e){var t;if(!(null===(t=e)||void 0===t?void 0:t.length))return e;return e.map((function(e){var t,a,n=e.favouritedBy,r=i(e,["favouritedBy"]);return Object.assign(Object.assign({},r),{isFavourited:!!(null===(a=null===(t=n)||void 0===t?void 0:t.data)||void 0===a?void 0:a.length)})}))}}}}},837:function(e,t,a){"use strict";a.d(t,"b",(function(){return u})),a.d(t,"a",(function(){return d}));var n=a(0),r=a(825),i=a(51),o=a(73),c=a(40),l=a(3);function s(e,t){return t?{application:e.application,action:e.action,args:e.args,params:Object.assign({},e.params,{cursor:t})}:null}function u(e){var t=e.appLink,a=e.cursors,r=e.className;function u(e){c.a.logUserAction({page:e},{location:l.j.Pagination,entity:l.d.Pagination,actionType:l.n.Navigate})}return n.createElement(o.a.Provider,{value:"shared.pagination"},n.createElement("div",{className:r},n.createElement(i.a,{appLink:s(t,a.previous),className:"btn btn-secondary mr-1 ".concat(a.previous?"":"disabled"),onClick:function(){return u("previous")}},n.createElement(o.b,{phrase:"previous"})),n.createElement(i.a,{appLink:s(t,a.next),className:"btn btn-secondary ".concat(a.next?"":"disabled"),onClick:function(){return u("next")}},n.createElement(o.b,{phrase:"next"}))))}function d(e){function t(e){c.a.logUserAction({page:e},{location:l.j.Pagination,entity:l.d.Pagination,actionType:l.n.Navigate})}return n.createElement(o.a.Provider,{value:"shared.pagination"},n.createElement("div",{className:e.className},n.createElement(r.a,{onClick:function(){1!==e.currentPage&&(t("previous"),e.onClickBack())},className:"btn btn-secondary mr-1 cursor-pointer ".concat(1===e.currentPage?"disabled":"")},n.createElement(o.b,{phrase:"previous"})),n.createElement(r.a,{onClick:function(){e.currentPage!==e.totalPages&&(t("next"),e.onClickNext())},className:"btn btn-secondary cursor-pointer ".concat(e.currentPage===e.totalPages?"disabled":"")},n.createElement(o.b,{phrase:"next"}))))}u.defaultProps={className:"py-2"},d.defaultProps={className:"py-2"}},843:function(e,t,a){"use strict";a.d(t,"a",(function(){return n}));var n={userVideoHistory:function(e,t,a,n,r,i){var o="video:history:".concat(e,":").concat(t),c="/api/videoviews/v1/customers/".concat(e,"/users/").concat(t,"/videos/history");return a&&(o+=":".concat(a),c+="?cursor=".concat(a)),{key:o,url:c,success:n,error:r,always:i}},videoHistory:function(e,t,a,n,r,i){var o=a.sort().map((function(e){return"videoId=".concat(e)}));return{key:"video:history:".concat(e,":").concat(t,":videos:").concat(o.join("&")),url:"/api/videoviews/v1/customers/".concat(e,"/users/").concat(t,"/videos/history?").concat(o.join("&")),formatData:function(e){var t;return(null===(t=e)||void 0===t?void 0:t.length)?e.map((function(e){return{id:e.videoId,lastProgressPoint:e.lastProgressPoint}})):e},success:n,error:r,always:i}}}},844:function(e,t,a){"use strict";var n=a(0),r=a(33),i=a(818),o=a(860),c=a(245),l=a(55),s=a(839),u=a(854),d=a(45),p=function(e){return!!e&&e.series&&!!e.series.id},f=a(13),m=a(830),v=a(35),y=a(828),b=a(242),g=a(128),h=a(107),E=a(845),S=a.n(E),w=[g.a.AddToPlaylist,g.a.Share];function k(e){var t=n.useContext(b.a),a=t.videoActions,r=void 0===a?w:a,i=t.getActionAppLink,o=t.hideLabel,c=Object(h.a)(d.a.XS);if(!v.a.isFunction(i))return n.createElement(n.Fragment,null);var l=[];return r.forEach((function(t){var a=i(e.video,t);a&&l.push(Object.assign({appLink:a,className:"btn btn-link",button:!c},Object(g.b)()[t]))})),o&&!c&&(l=l.map((function(e){return Object.assign(Object.assign({},e),{label:null})}))),n.createElement(y.a,{actions:l,className:"float-right mt-n1",actionsDropdownClassName:"btn btn-link rounded-circle p-0 ".concat(S.a.actionsDropdown)})}var A=a(73),O=a(846),j=a.n(O);function I(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var a=[],n=!0,r=!1,i=void 0;try{for(var o,c=e[Symbol.iterator]();!(n=(o=c.next()).done)&&(a.push(o.value),!t||a.length!==t);n=!0);}catch(e){r=!0,i=e}finally{try{n||null==c.return||c.return()}finally{if(r)throw i}}return a}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return C(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);"Object"===a&&e.constructor&&(a=e.constructor.name);if("Map"===a||"Set"===a)return Array.from(e);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return C(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function C(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=new Array(t);a<t;a++)n[a]=e[a];return n}function N(e){var t=I(n.useState(e.truncate),2),a=t[0],r=t[1];return Object(h.a)(d.a.XS)?n.createElement(n.Fragment,null):n.createElement("div",{className:"position-relative overflow-hidden ".concat(a?"clamp-2":"")},n.createElement("p",{className:"m-0"},e.video.description,!!e.isExpandable&&n.createElement("span",{className:"cursor-pointer ".concat(j.a.ellipsis),onClick:function(){return r(!a)}},n.createElement(A.b,{namespace:"shared.videoItemDescription",phrase:a?"showMore":"showLess"}))))}N.defaultProps={truncate:!0};var x=a(51);function L(e){return n.createElement(x.a,{appLink:e.appLink},n.createElement("h5",{className:"m-0 mb-1 clamp-2"},e.video.name))}var P=a(863),F=a(858),T=a(847),U=a.n(T),V=a(236),D=a(3);a.d(t,"b",(function(){return R})),a.d(t,"a",(function(){return _}));var B=Object(i.SortableHandle)((function(){return n.createElement(r.Col,{xs:2,className:"d-flex justify-content-center align-items-center cursor-pointer ".concat(U.a.dragHandleContainer)},n.createElement(l.a,{svgName:f.b.Handle,size:l.b.Small}))}));function R(e){var t,a=Object(V.a)(),i=a===d.a.XS,l=a===d.a.SM||a===d.a.MD,f=a===d.a.SM,v=n.useContext(m.a).isSortable&&!i,y=e.getVideoAppLink(e.video),b=p(e.video)&&e.getSeriesAppLink(e.video.series);return n.createElement(r.Row,{className:"py-2"},n.createElement(r.Col,{xs:i?12:l?4:3,className:"flex-column align-items-flex-start mb-1"},n.createElement(r.Row,null,!!v&&n.createElement(B,null),n.createElement(r.Col,{xs:(t=v,t?10:12)},n.createElement(o.a,{video:e.video,appLink:y,seriesAppLink:b,size:v?s.a.Small:s.a.Medium,textPosition:u.a.Independent,setFavourite:e.setFavourite,type:"static",analyticsOptions:{location:D.j.VideoListItem}})))),n.createElement(r.Col,{xs:i?12:l?8:9},n.createElement(k,{video:e.video}),n.createElement(c.a,{className:"d-block",video:e.video,appLink:b,analyticsOptions:{location:D.j.VideoListItem}}),n.createElement(L,{video:e.video,appLink:e.getVideoAppLink(e.video)}),n.createElement(P.a,null,n.createElement(F.a,{type:F.b.Rating,data:e.video.rating}),n.createElement(F.a,{type:F.b.ProductionYear,data:e.video.productionYear}),!e.hideInteractiveBadge&&n.createElement(F.a,{type:F.b.Interactive,data:e.video.interactives})),!f&&n.createElement(N,{video:e.video})))}var _=Object(i.SortableElement)((function(e){return n.createElement(R,Object.assign({},e))}))},845:function(e,t,a){e.exports={actionsDropdown:"XR0aX"}},846:function(e,t,a){e.exports={ellipsis:"LJY5U"}},847:function(e,t,a){e.exports={dragHandleContainer:"_24s1b"}},848:function(e,t,a){"use strict";a.d(t,"a",(function(){return u}));var n=a(0),r=a.n(n),i=a(33),o=a(45),c=a(236),l=a(849),s=a.n(l);function u(e){var t=Object(c.a)(),a=t===o.a.XS,n=t===o.a.SM||t===o.a.MD,l=e.withReordering&&!a;return r.a.createElement(r.a.Fragment,null,Array(e.numVideos).fill(null).map((function(e,t){return r.a.createElement(i.Row,{key:t,className:"py-2"},r.a.createElement(i.Col,{xs:a?12:n?4:3,className:"flex-column align-items-flex-start mb-1"},r.a.createElement(i.Row,null,!!l&&r.a.createElement("div",{className:"d-flex align-items-center justify-content-center col-2"},r.a.createElement("div",{className:"partial-loading-background ".concat(s.a.partialDragHandle)})),r.a.createElement(i.Col,{xs:l?10:12},r.a.createElement("div",{className:"partial-loading-background rounded-lg ".concat(s.a.partialThumbnail)})))),r.a.createElement(i.Col,{xs:a?12:n?8:9},r.a.createElement("div",{className:"partial-loading-background ".concat(s.a.partialSeriesLink)}),r.a.createElement("div",{className:"partial-loading-background mb-1 ".concat(s.a.partialName)}),r.a.createElement("div",{className:"partial-loading-background ".concat(s.a.partialDescription)}),r.a.createElement("div",{className:"partial-loading-background ".concat(s.a.partialBadges)}),r.a.createElement("div",{className:"partial-loading-background ".concat(s.a.partialActions)})))})))}u.defaultProps={numVideos:15}},849:function(e,t,a){e.exports={partialName:"_7KNC2",partialDescription:"Vk_wR",partialThumbnail:"_3peRZ",partialDragHandle:"_1F7_f"}},850:function(e,t,a){"use strict";a.d(t,"a",(function(){return p}));var n=a(14),r=a(154),i=a(831),o=a(239),c=a(843);function l(e){return function(e){if(Array.isArray(e))return s(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return s(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);"Object"===a&&e.constructor&&(a=e.constructor.name);if("Map"===a||"Set"===a)return Array.from(e);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return s(e,t)}(e)||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 s(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=new Array(t);a<t;a++)n[a]=e[a];return n}var u={ratings:!0,favourites:!0,watchHistory:!0};function d(e,t){var a,r=n.a.useGetResponse(null===(a=t)||void 0===a?void 0:a.key),i=n.a.useGetFetch(t);e&&t&&r.shouldFetch&&i()}function p(e){var t,a,s,p=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},f=Object.assign(Object.assign({},u),p),m=f.ratings,v=f.favourites,y=f.watchHistory,b=n.a.useBasicFetch(r.a.currentUser()),g=e&&(Array.isArray(e)?e.filter(Boolean).map((function(e){return e.id})):e.data.filter(Boolean).map((function(e){return e.id}))),h=b.data,E=[];m&&(E=[].concat(l(E),[!!(null===(t=g)||void 0===t?void 0:t.length)&&o.a.videoRatings(g)])),v&&(E=[].concat(l(E),[!!(null===(a=g)||void 0===a?void 0:a.length)&&h&&i.a.isFavourited(h.id,g)])),y&&(E=[].concat(l(E),[!!(null===(s=g)||void 0===s?void 0:s.length)&&h&&c.a.videoHistory(h.customerId,h.id,g)])),E.forEach((function(t){return d(!!e,t)}))}},913:function(e,t,a){"use strict";var n=a(0),r=a(7),i=a(55),o=a(51),c=a(13);function l(e){var t=e.backToName,a=e.appLink,l=e.color,s=e.extraClasses,u=t?r.a.getPhrase("shared.backButton","backTo",{backToName:t}):r.a.getPhrase("shared.backButton","back"),d="black"===l?"":"text-light";return n.createElement(o.a,{appLink:a,className:"d-inline-flex align-items-center h5 mb-0 ".concat(s," ").concat(d)},n.createElement(i.a,{svgName:c.b.ChevronLeft,size:i.b.Medium}),n.createElement("span",{className:"ml-1"},u))}l.defaultProps={color:"black",extraClasses:""};var s=a(155),u=a(115),d=a(828),p=a(931),f=a.n(p);a.d(t,"a",(function(){return m})),a.d(t,"b",(function(){return v}));var m=n.memo((function(e){var t=e.heading,a=e.banner,r=e.imageCdnUrl,i=e.actions,o=e.sortComponent,c=s.a.createBannerUrl(a,{fallbackBaseUrl:r,fallbackCategoryName:t,type:u.b.Banners},{size:u.a.Large,resizeType:u.c.Cover});return n.createElement("div",{className:"banner banner-header",style:{backgroundImage:"url('".concat(c,"')")}},e.backButtonAppLink&&n.createElement("div",{className:"pt-3"},n.createElement(l,{appLink:e.backButtonAppLink,backToName:e.backButtonText,extraClasses:e.backButtonClasses,color:"white"})),n.createElement("h1",{className:"".concat(f.a.text," text-white text-shadow position-absolute mb-3 clamp-2")},t),!!i&&n.createElement("div",{className:f.a.actionsContainer},n.createElement(d.a,{actions:i,sortComponent:o})))}),(function(e,t){return e.actions===t.actions})),v=function(){return n.createElement("div",{className:"partial-banner partial-loading-background"})}},929:function(e,t,a){"use strict";a.d(t,"a",(function(){return m}));var n=a(0),r=a(2),i=a(35),o=a(19),c=a(830),l=a(848),s=a(989),u=a.n(s);function d(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var a=[],n=!0,r=!1,i=void 0;try{for(var o,c=e[Symbol.iterator]();!(n=(o=c.next()).done)&&(a.push(o.value),!t||a.length!==t);n=!0);}catch(e){r=!0,i=e}finally{try{n||null==c.return||c.return()}finally{if(r)throw i}}return a}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return p(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);"Object"===a&&e.constructor&&(a=e.constructor.name);if("Map"===a||"Set"===a)return Array.from(e);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return p(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function p(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=new Array(t);a<t;a++)n[a]=e[a];return n}var f=function(e,t){var a={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(a[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(a[n[r]]=e[n[r]])}return a};function m(e){var t=e.onSortComplete,a=e.onSortStart,s=e.showPartialLoading,p=f(e,["onSortComplete","onSortStart","showPartialLoading"]),m=d(n.useState(),2),v=m[0],y=m[1],b=function(e){i.a.isFunction(a)&&a(e)};return s?n.createElement(l.a,{withReordering:!0}):e.canEdit?n.createElement(c.b,Object.assign({},p,{currentSortingIndex:v,updateBeforeSortStart:function(e){var t=e.index;return y(t)},onSortStart:function(e){var t=e.index;return b(t)},onSortEnd:function(e){y(null),i.a.isFunction(t)?t(e.oldIndex,e.newIndex):r.a.ErrorHelper.throw(new o.a("An onSortComplete callback function must be passed to SortableVideoListComponent"))},lockAxis:"y",lockToContainerEdges:!0,lockOffset:["0%","100%"],helperClass:"bg-white ".concat(u.a.sortableItem),distance:1,useDragHandle:!0})):n.createElement(c.c,Object.assign({},p))}},931:function(e,t,a){e.exports={actionsContainer:"_286KF",text:"_3TSgh"}},989:function(e,t,a){e.exports={sortableItem:"_2eiPB"}},995:function(e,t,a){"use strict";a.d(t,"a",(function(){return u}));var n=a(2),r=a(160),i=a(116),o=a(253),c=a(254),l=a(255),s={notFound:i.a,forbidden:{rating:c.a,yearLevel:c.a,region:l.a,privacy:c.a},badRequest:o.a};function u(e,t,a){var i=Object.assign(Object.assign({},s),t);e.statusCode&&e.statusCode!==r.a.Ok&&(e.statusCode!==r.a.NotFound?e.statusCode!==r.a.Forbidden?n.a.ErrorHelper.throw(new i.badRequest):n.a.ErrorHelper.throw(new i.forbidden.privacy):n.a.ErrorHelper.throw(new i.notFound))}}}]);
|