@clickview/streamable-learning 0.36.0 → 0.36.1-dev.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
- package/dist/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
- package/dist/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
- package/dist/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
- package/dist/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
- package/dist/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
- package/dist/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
- package/dist/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
- package/dist/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
- package/dist/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
- package/dist/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
- package/dist/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
- package/dist/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
- package/dist/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
- package/dist/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
- package/dist/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
- package/dist/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
- package/dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
- package/dist/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
- package/dist/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
- package/dist/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
- package/dist/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
- package/dist/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
- package/dist/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
- package/dist/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
- package/dist/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
- package/dist/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
- package/dist/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
- package/dist/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
- package/dist/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
- package/dist/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
- package/dist/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
- package/dist/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
- package/dist/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
- package/dist/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
- package/dist/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
- package/dist/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
- package/dist/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
- package/dist/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
- package/dist/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
- package/dist/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
- package/dist/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
- package/dist/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
- package/dist/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
- package/dist/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
- package/dist/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
- package/dist/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
- package/dist/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
- package/dist/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
- package/dist/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
- package/dist/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
- package/dist/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
- package/dist/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
- package/dist/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
- package/dist/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
- package/dist/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
- package/dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
- package/dist/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
- package/dist/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
- package/dist/bundles.json +2 -2
- package/dist/css/B-attovs.chunk.css +9 -0
- package/dist/css/B1NucFMn.chunk.css +1 -0
- package/dist/css/BPdg7JW4.chunk.css +1 -0
- package/dist/css/BPrUSCaY.chunk.css +1 -0
- package/dist/css/BR0fUt9D.chunk.css +1 -0
- package/dist/css/BhYm6SRm.chunk.css +1 -0
- package/dist/css/BiRz4h1c.chunk.css +1 -0
- package/dist/css/Bq1ChJn4.chunk.css +1 -0
- package/dist/css/Bt85j9js.chunk.css +1 -0
- package/dist/css/BuYrqi9E.chunk.css +1 -0
- package/dist/css/BugV1Bpa.chunk.css +1 -0
- package/dist/css/BuuVPl7n.chunk.css +1 -0
- package/dist/css/C1NkrNqQ.chunk.css +1 -0
- package/dist/css/C1qv5jz5.chunk.css +1 -0
- package/dist/css/C7XoyEPr.chunk.css +1 -0
- package/dist/css/C7_MDu56.chunk.css +1 -0
- package/dist/css/CC5F5C8O.chunk.css +1 -0
- package/dist/css/CChSC6Ta.chunk.css +1 -0
- package/dist/css/CCsCPLDG.chunk.css +1 -0
- package/dist/css/CD1qrI1T.chunk.css +1 -0
- package/dist/css/CKqvCBj4.chunk.css +1 -0
- package/dist/css/CLZ0Ycds.chunk.css +1 -0
- package/dist/css/CO7M4rZW.chunk.css +1 -0
- package/dist/css/CY0yvCW4.chunk.css +1 -0
- package/dist/css/CYGsw8FT.chunk.css +1 -0
- package/dist/css/Cbi3KYBa.chunk.css +1 -0
- package/dist/css/CgWQu_Ss.chunk.css +1 -0
- package/dist/css/CliS8Q8r.chunk.css +1 -0
- package/dist/css/D-kQKsZN.chunk.css +1 -0
- package/dist/css/D2NwUVrK.chunk.css +1 -0
- package/dist/css/D4g1IoUU.chunk.css +1 -0
- package/dist/css/DBgpcO3T.chunk.css +1 -0
- package/dist/css/DDnpOnVB.chunk.css +1 -0
- package/dist/css/DZJSONGP.chunk.css +1 -0
- package/dist/css/DeAfaPiD.chunk.css +1 -0
- package/dist/css/Dj731zLm.chunk.css +1 -0
- package/dist/css/DjPPxa0A.chunk.css +1 -0
- package/dist/css/DlOtoSz0.chunk.css +1 -0
- package/dist/css/DwduQat7.chunk.css +1 -0
- package/dist/css/Dzuu2GTx.chunk.css +1 -0
- package/dist/css/JAvsJreH.chunk.css +1 -0
- package/dist/css/NKlFYVOc.chunk.css +1 -0
- package/dist/css/VZd8qGtK.chunk.css +1 -0
- package/dist/css/Y7U--2na.chunk.css +1 -0
- package/dist/css/ir3IcK_l.chunk.css +1 -0
- package/dist/css/jbMisi9r.chunk.css +1 -0
- package/dist/css/kS5aDtIJ.chunk.css +1 -0
- package/dist/css/mqCL1o7m.chunk.css +1 -0
- package/dist/css/qZzkUeZk.chunk.css +1 -0
- package/dist/css/sC_H3yXE.chunk.css +1 -0
- package/dist/css/wR_6C_NV.chunk.css +1 -0
- package/dist/en.json +1 -0
- package/dist/scripts/38Gc6FvJ.chunk.js +2 -0
- package/dist/scripts/38Gc6FvJ.chunk.js.map +1 -0
- package/dist/scripts/9vP26Hjl.chunk.js +2 -0
- package/dist/scripts/9vP26Hjl.chunk.js.map +1 -0
- package/dist/scripts/B-YTLo4E.chunk.js +2 -0
- package/dist/scripts/B-YTLo4E.chunk.js.map +1 -0
- package/dist/scripts/B2rqAGbQ.chunk.js +2 -0
- package/dist/scripts/B2rqAGbQ.chunk.js.map +1 -0
- package/dist/scripts/B46nd_gM.chunk.js +2 -0
- package/dist/scripts/B46nd_gM.chunk.js.map +1 -0
- package/dist/scripts/B61dxODs.chunk.js +2 -0
- package/dist/scripts/B61dxODs.chunk.js.map +1 -0
- package/dist/scripts/B928Y1m-.chunk.js +2 -0
- package/dist/scripts/B928Y1m-.chunk.js.map +1 -0
- package/dist/scripts/BBnDr_iy.chunk.js +2 -0
- package/dist/scripts/BBnDr_iy.chunk.js.map +1 -0
- package/dist/scripts/BDwX0xO5.chunk.js +7 -0
- package/dist/scripts/BDwX0xO5.chunk.js.map +1 -0
- package/dist/scripts/BFcg4phV.chunk.js +15 -0
- package/dist/scripts/BFcg4phV.chunk.js.map +1 -0
- package/dist/scripts/BOH3SvVi.chunk.js +2 -0
- package/dist/scripts/BOH3SvVi.chunk.js.map +1 -0
- package/dist/scripts/BPzvNgkA.chunk.js +10 -0
- package/dist/scripts/BPzvNgkA.chunk.js.map +1 -0
- package/dist/scripts/BWkYFXR0.chunk.js +2 -0
- package/dist/scripts/BWkYFXR0.chunk.js.map +1 -0
- package/dist/scripts/BYrL8Bl0.chunk.js +2 -0
- package/dist/scripts/BYrL8Bl0.chunk.js.map +1 -0
- package/dist/scripts/BaMuTXqa.chunk.js +2 -0
- package/dist/scripts/BaMuTXqa.chunk.js.map +1 -0
- package/dist/scripts/Bbj3u3zY.chunk.js +2 -0
- package/dist/scripts/Bbj3u3zY.chunk.js.map +1 -0
- package/dist/scripts/Bd-gJLT1.chunk.js +2 -0
- package/dist/scripts/Bd-gJLT1.chunk.js.map +1 -0
- package/dist/scripts/BdHxGaRy.chunk.js +2 -0
- package/dist/scripts/BdHxGaRy.chunk.js.map +1 -0
- package/dist/scripts/BdPgUz8g.chunk.js +2 -0
- package/dist/scripts/BdPgUz8g.chunk.js.map +1 -0
- package/dist/scripts/Be6BKGLG.chunk.js +356 -0
- package/dist/scripts/Be6BKGLG.chunk.js.map +1 -0
- package/dist/scripts/BfK6q73t.chunk.js +8 -0
- package/dist/scripts/BfK6q73t.chunk.js.map +1 -0
- package/dist/scripts/Bg1w511R.chunk.js +2 -0
- package/dist/scripts/Bg1w511R.chunk.js.map +1 -0
- package/dist/scripts/Bg6K2hsA.chunk.js +3 -0
- package/dist/scripts/Bg6K2hsA.chunk.js.map +1 -0
- package/dist/scripts/BiLpxxSD.chunk.js +2 -0
- package/dist/scripts/BiLpxxSD.chunk.js.map +1 -0
- package/dist/scripts/BmN5JsPi.chunk.js +5 -0
- package/dist/scripts/BmN5JsPi.chunk.js.map +1 -0
- package/dist/scripts/BnSh6tRF.chunk.js +2 -0
- package/dist/scripts/BnSh6tRF.chunk.js.map +1 -0
- package/dist/scripts/Bnt14Hw8.chunk.js +2 -0
- package/dist/scripts/Bnt14Hw8.chunk.js.map +1 -0
- package/dist/scripts/BpRVTpnA.chunk.js +8 -0
- package/dist/scripts/BpRVTpnA.chunk.js.map +1 -0
- package/dist/scripts/BsoISj2P.chunk.js +2 -0
- package/dist/scripts/BsoISj2P.chunk.js.map +1 -0
- package/dist/scripts/BuNZOfIz.chunk.js +2 -0
- package/dist/scripts/BuNZOfIz.chunk.js.map +1 -0
- package/dist/scripts/BvQxdtl3.chunk.js +2 -0
- package/dist/scripts/BvQxdtl3.chunk.js.map +1 -0
- package/dist/scripts/C2zcSUEr.chunk.js +2 -0
- package/dist/scripts/C2zcSUEr.chunk.js.map +1 -0
- package/dist/scripts/C35NlkUr.chunk.js +2 -0
- package/dist/scripts/C35NlkUr.chunk.js.map +1 -0
- package/dist/scripts/C5Fq7Tf-.chunk.js +2 -0
- package/dist/scripts/C5Fq7Tf-.chunk.js.map +1 -0
- package/dist/scripts/CD-ZU1Sa.chunk.js +2 -0
- package/dist/scripts/CD-ZU1Sa.chunk.js.map +1 -0
- package/dist/scripts/CEmtkty-.chunk.js +2 -0
- package/dist/scripts/CEmtkty-.chunk.js.map +1 -0
- package/dist/scripts/CO1Up6zQ.chunk.js +2 -0
- package/dist/scripts/CO1Up6zQ.chunk.js.map +1 -0
- package/dist/scripts/CPNjAJN5.chunk.js +2 -0
- package/dist/scripts/CPNjAJN5.chunk.js.map +1 -0
- package/dist/scripts/CPXlV0fg.chunk.js +2 -0
- package/dist/scripts/CPXlV0fg.chunk.js.map +1 -0
- package/dist/scripts/CQJIB_e-.chunk.js +2 -0
- package/dist/scripts/CQJIB_e-.chunk.js.map +1 -0
- package/dist/scripts/CRusuLqR.chunk.js +2 -0
- package/dist/scripts/CRusuLqR.chunk.js.map +1 -0
- package/dist/scripts/CTWahyAB.chunk.js +2 -0
- package/dist/scripts/CTWahyAB.chunk.js.map +1 -0
- package/dist/scripts/CU5Dd7rS.chunk.js +2 -0
- package/dist/scripts/CU5Dd7rS.chunk.js.map +1 -0
- package/dist/scripts/CW7x8M-z.chunk.js +2 -0
- package/dist/scripts/CW7x8M-z.chunk.js.map +1 -0
- package/dist/scripts/CX-Bc0hf.chunk.js +2 -0
- package/dist/scripts/CX-Bc0hf.chunk.js.map +1 -0
- package/dist/scripts/CY1om5lx.chunk.js +2 -0
- package/dist/scripts/CY1om5lx.chunk.js.map +1 -0
- package/dist/scripts/C_79jeAr.chunk.js +2 -0
- package/dist/scripts/C_79jeAr.chunk.js.map +1 -0
- package/dist/scripts/C_pobyVf.chunk.js +3 -0
- package/dist/scripts/C_pobyVf.chunk.js.map +1 -0
- package/dist/scripts/Cgf5lDwO.chunk.js +2 -0
- package/dist/scripts/Cgf5lDwO.chunk.js.map +1 -0
- package/dist/scripts/Ci9wGu6N.chunk.js +2 -0
- package/dist/scripts/Ci9wGu6N.chunk.js.map +1 -0
- package/dist/scripts/Cmu1J2M7.chunk.js +262 -0
- package/dist/scripts/Cmu1J2M7.chunk.js.map +1 -0
- package/dist/scripts/Cp-yDIHE.chunk.js +2 -0
- package/dist/scripts/Cp-yDIHE.chunk.js.map +1 -0
- package/dist/scripts/CqWRz_Vd.chunk.js +2 -0
- package/dist/scripts/CqWRz_Vd.chunk.js.map +1 -0
- package/dist/scripts/Cs-XAmfP.chunk.js +2 -0
- package/dist/scripts/Cs-XAmfP.chunk.js.map +1 -0
- package/dist/scripts/CsxsnXoH.chunk.js +2 -0
- package/dist/scripts/CsxsnXoH.chunk.js.map +1 -0
- package/dist/scripts/CvuMDF0y.chunk.js +2 -0
- package/dist/scripts/CvuMDF0y.chunk.js.map +1 -0
- package/dist/scripts/CwRpHtAf.chunk.js +2 -0
- package/dist/scripts/CwRpHtAf.chunk.js.map +1 -0
- package/dist/scripts/D4OCofAF.chunk.js +2 -0
- package/dist/scripts/D4OCofAF.chunk.js.map +1 -0
- package/dist/scripts/D4x4hAdA.chunk.js +2 -0
- package/dist/scripts/D4x4hAdA.chunk.js.map +1 -0
- package/dist/scripts/DBaknZA7.chunk.js +2 -0
- package/dist/scripts/DBaknZA7.chunk.js.map +1 -0
- package/dist/scripts/DBdD19pY.chunk.js +53 -0
- package/dist/scripts/DBdD19pY.chunk.js.map +1 -0
- package/dist/scripts/DELBynwO.chunk.js +2 -0
- package/dist/scripts/DELBynwO.chunk.js.map +1 -0
- package/dist/scripts/DEixuHfi.chunk.js +2 -0
- package/dist/scripts/DEixuHfi.chunk.js.map +1 -0
- package/dist/scripts/DFhkO_lZ.chunk.js +2 -0
- package/dist/scripts/DFhkO_lZ.chunk.js.map +1 -0
- package/dist/scripts/DIIFVn0p.chunk.js +2 -0
- package/dist/scripts/DIIFVn0p.chunk.js.map +1 -0
- package/dist/scripts/DIhfGjAK.chunk.js +2 -0
- package/dist/scripts/DIhfGjAK.chunk.js.map +1 -0
- package/dist/scripts/DK1p1ffZ.chunk.js +2 -0
- package/dist/scripts/DK1p1ffZ.chunk.js.map +1 -0
- package/dist/scripts/DK6BRHnl.chunk.js +2 -0
- package/dist/scripts/DK6BRHnl.chunk.js.map +1 -0
- package/dist/scripts/DNbkIXc2.chunk.js +2 -0
- package/dist/scripts/DNbkIXc2.chunk.js.map +1 -0
- package/dist/scripts/DRmZj7Fw.chunk.js +2 -0
- package/dist/scripts/DRmZj7Fw.chunk.js.map +1 -0
- package/dist/scripts/DTcDjqUi.chunk.js +8 -0
- package/dist/scripts/DTcDjqUi.chunk.js.map +1 -0
- package/dist/scripts/DVmtgkhY.chunk.js +2 -0
- package/dist/scripts/DVmtgkhY.chunk.js.map +1 -0
- package/dist/scripts/DWkg1qc2.chunk.js +2 -0
- package/dist/scripts/DWkg1qc2.chunk.js.map +1 -0
- package/dist/scripts/D_nzH8Cw.chunk.js +2 -0
- package/dist/scripts/D_nzH8Cw.chunk.js.map +1 -0
- package/dist/scripts/DaJTPRJr.chunk.js +2 -0
- package/dist/scripts/DaJTPRJr.chunk.js.map +1 -0
- package/dist/scripts/Dal4C0kV.chunk.js +2 -0
- package/dist/scripts/Dal4C0kV.chunk.js.map +1 -0
- package/dist/scripts/DecSY6Xq.chunk.js +2 -0
- package/dist/scripts/DecSY6Xq.chunk.js.map +1 -0
- package/dist/scripts/DgL-ti6b.chunk.js +2 -0
- package/dist/scripts/DgL-ti6b.chunk.js.map +1 -0
- package/dist/scripts/Dhn0D6IV.chunk.js +2 -0
- package/dist/scripts/Dhn0D6IV.chunk.js.map +1 -0
- package/dist/scripts/DuidBpWd.chunk.js +2 -0
- package/dist/scripts/DuidBpWd.chunk.js.map +1 -0
- package/dist/scripts/DvDdiDQN.chunk.js +7 -0
- package/dist/scripts/DvDdiDQN.chunk.js.map +1 -0
- package/dist/scripts/Dx9ncX-C.chunk.js +2 -0
- package/dist/scripts/Dx9ncX-C.chunk.js.map +1 -0
- package/dist/scripts/Dxt3JwJz.chunk.js +2 -0
- package/dist/scripts/Dxt3JwJz.chunk.js.map +1 -0
- package/dist/scripts/Dy57waqb.chunk.js +2 -0
- package/dist/scripts/Dy57waqb.chunk.js.map +1 -0
- package/dist/scripts/DzLh2mnb.chunk.js +2 -0
- package/dist/scripts/DzLh2mnb.chunk.js.map +1 -0
- package/dist/scripts/F-K8Bwdk.chunk.js +2 -0
- package/dist/scripts/F-K8Bwdk.chunk.js.map +1 -0
- package/dist/scripts/G4u5okSS.chunk.js +2 -0
- package/dist/scripts/G4u5okSS.chunk.js.map +1 -0
- package/dist/scripts/KAizYpNf.chunk.js +2 -0
- package/dist/scripts/KAizYpNf.chunk.js.map +1 -0
- package/dist/scripts/LIBRZSqN.chunk.js +8 -0
- package/dist/scripts/LIBRZSqN.chunk.js.map +1 -0
- package/dist/scripts/LgZBXsgq.chunk.js +2 -0
- package/dist/scripts/LgZBXsgq.chunk.js.map +1 -0
- package/dist/scripts/QlJI4d4R.chunk.js +2 -0
- package/dist/scripts/QlJI4d4R.chunk.js.map +1 -0
- package/dist/scripts/ShERxFU5.chunk.js +2 -0
- package/dist/scripts/ShERxFU5.chunk.js.map +1 -0
- package/dist/scripts/Ynb9IAgu.chunk.js +2 -0
- package/dist/scripts/Ynb9IAgu.chunk.js.map +1 -0
- package/dist/scripts/_8CvUiOV.chunk.js +2 -0
- package/dist/scripts/_8CvUiOV.chunk.js.map +1 -0
- package/dist/scripts/aXDrx9_z.chunk.js +6 -0
- package/dist/scripts/aXDrx9_z.chunk.js.map +1 -0
- package/dist/scripts/app-DiXzpOyg.js +220 -0
- package/dist/scripts/app-DiXzpOyg.js.map +1 -0
- package/dist/scripts/bww2eGbI.chunk.js +2 -0
- package/dist/scripts/bww2eGbI.chunk.js.map +1 -0
- package/dist/scripts/cvX-F_mx.chunk.js +2 -0
- package/dist/scripts/cvX-F_mx.chunk.js.map +1 -0
- package/dist/scripts/gtdeja1H.chunk.js +2 -0
- package/dist/scripts/gtdeja1H.chunk.js.map +1 -0
- package/dist/scripts/m9wd_474.chunk.js +2 -0
- package/dist/scripts/m9wd_474.chunk.js.map +1 -0
- package/dist/scripts/nay4aGaa.chunk.js +2 -0
- package/dist/scripts/nay4aGaa.chunk.js.map +1 -0
- package/dist/scripts/pkzD5BEm.chunk.js +2 -0
- package/dist/scripts/pkzD5BEm.chunk.js.map +1 -0
- package/dist/scripts/qO6ZefON.chunk.js +2 -0
- package/dist/scripts/qO6ZefON.chunk.js.map +1 -0
- package/dist/scripts/s4utqqzH.chunk.js +2 -0
- package/dist/scripts/s4utqqzH.chunk.js.map +1 -0
- package/dist/scripts/sxyRyCzh.chunk.js +2 -0
- package/dist/scripts/sxyRyCzh.chunk.js.map +1 -0
- package/dist/scripts/tzNty_oG.chunk.js +2 -0
- package/dist/scripts/tzNty_oG.chunk.js.map +1 -0
- package/dist/scripts/vjyJbQe4.chunk.js +2 -0
- package/dist/scripts/vjyJbQe4.chunk.js.map +1 -0
- package/dist/scripts/vuoBilPQ.chunk.js +2 -0
- package/dist/scripts/vuoBilPQ.chunk.js.map +1 -0
- package/dist/scripts/vwgUbn2Z.chunk.js +2 -0
- package/dist/scripts/vwgUbn2Z.chunk.js.map +1 -0
- package/dist/scripts/wOGv44_K.chunk.js +2 -0
- package/dist/scripts/wOGv44_K.chunk.js.map +1 -0
- package/dist/scripts/xbvkqJGe.chunk.js +2 -0
- package/dist/scripts/xbvkqJGe.chunk.js.map +1 -0
- package/dist/scripts/xywWSa0t.chunk.js +2 -0
- package/dist/scripts/xywWSa0t.chunk.js.map +1 -0
- package/dist/scripts/zUz4ZfV2.chunk.js +2 -0
- package/dist/scripts/zUz4ZfV2.chunk.js.map +1 -0
- package/package.json +5 -3
- package/typings/utils/imports.d.ts +2 -1
- package/vite.config.ts +6 -0
- package/dist/css/103-streamable-learning-5060b6cda5.chunk.css +0 -7
- package/dist/css/1269-streamable-learning-a12c4ebc99.chunk.css +0 -2
- package/dist/css/1457-streamable-learning-c8c8b3b9b1.chunk.css +0 -50
- package/dist/css/2334-streamable-learning-de03ae073a.chunk.css +0 -2
- package/dist/css/3322-streamable-learning-510e1aa3f3.chunk.css +0 -34
- package/dist/css/3838-streamable-learning-da10685fe8.chunk.css +0 -22
- package/dist/css/4254-streamable-learning-e493f4a027.chunk.css +0 -2
- package/dist/css/4607-streamable-learning-2605302fc2.chunk.css +0 -90
- package/dist/css/4772-streamable-learning-f83b838d71.chunk.css +0 -9
- package/dist/css/5565-streamable-learning-0caae3809b.chunk.css +0 -13
- package/dist/css/6017-streamable-learning-098a205d01.chunk.css +0 -6
- package/dist/css/6356-streamable-learning-8c5b220bf6.chunk.css +0 -1
- package/dist/css/6987-streamable-learning-8f682301c6.chunk.css +0 -1
- package/dist/css/7317-streamable-learning-b5d226bbb6.chunk.css +0 -5
- package/dist/css/8058-streamable-learning-539cf7be18.chunk.css +0 -12
- package/dist/css/8294-streamable-learning-c797263ac2.chunk.css +0 -1
- package/dist/css/8496-streamable-learning-ce19f6ca52.chunk.css +0 -13
- package/dist/css/8601-streamable-learning-f525210660.chunk.css +0 -6
- package/dist/css/9514-streamable-learning-251703c6d1.chunk.css +0 -2
- package/dist/css/9766-streamable-learning-31650ffe5d.chunk.css +0 -8
- package/dist/css/9842-streamable-learning-24729103f7.chunk.css +0 -4
- package/dist/css/9899-streamable-learning-0338f8d2dc.chunk.css +0 -4
- package/dist/css/9951-streamable-learning-e9a916b2ef.chunk.css +0 -99
- package/dist/css/streamable-learning-dd0c1095d5.css +0 -23
- package/dist/languages/en.json +0 -1
- package/dist/scripts/103-aceced8961-streamable-learning.chunk.js +0 -1
- package/dist/scripts/1097-680a971192-streamable-learning.chunk.js +0 -2
- package/dist/scripts/1097-680a971192-streamable-learning.chunk.js.LICENSE.txt +0 -105
- package/dist/scripts/1269-2d0b903343-streamable-learning.chunk.js +0 -2
- package/dist/scripts/1269-2d0b903343-streamable-learning.chunk.js.LICENSE.txt +0 -1
- package/dist/scripts/1457-899f40d09a-streamable-learning.chunk.js +0 -1
- package/dist/scripts/1482-b1dd75897c-streamable-learning.chunk.js +0 -1
- package/dist/scripts/1934-fc017df0da-streamable-learning.chunk.js +0 -2
- package/dist/scripts/1934-fc017df0da-streamable-learning.chunk.js.LICENSE.txt +0 -9
- package/dist/scripts/2042-d51622d63e-streamable-learning.chunk.js +0 -1
- package/dist/scripts/2087-eba9033b1c-streamable-learning.chunk.js +0 -1
- package/dist/scripts/2245-8cd3224e1b-streamable-learning.chunk.js +0 -1
- package/dist/scripts/2334-00b028191d-streamable-learning.chunk.js +0 -1
- package/dist/scripts/2676-c842ec7e8d-streamable-learning.chunk.js +0 -2
- package/dist/scripts/2676-c842ec7e8d-streamable-learning.chunk.js.LICENSE.txt +0 -1
- package/dist/scripts/2877-5ffc9711f6-streamable-learning.chunk.js +0 -1
- package/dist/scripts/2911-2ec3a6600a-streamable-learning.chunk.js +0 -1
- package/dist/scripts/3057-731a8ca978-streamable-learning.chunk.js +0 -1
- package/dist/scripts/3093-efbcc927ea-streamable-learning.chunk.js +0 -1
- package/dist/scripts/3186-d1a6ccffde-streamable-learning.chunk.js +0 -1
- package/dist/scripts/3322-33c015dec9-streamable-learning.chunk.js +0 -1
- package/dist/scripts/3472-50ca92bde3-streamable-learning.chunk.js +0 -1
- package/dist/scripts/3838-4a38f33dc2-streamable-learning.chunk.js +0 -1
- package/dist/scripts/3941-2ef15ca9ac-streamable-learning.chunk.js +0 -1
- package/dist/scripts/4254-1e95cdfdf2-streamable-learning.chunk.js +0 -1
- package/dist/scripts/4607-2ef017d2ae-streamable-learning.chunk.js +0 -2
- package/dist/scripts/4607-2ef017d2ae-streamable-learning.chunk.js.LICENSE.txt +0 -1
- package/dist/scripts/4772-3cb280f959-streamable-learning.chunk.js +0 -2
- package/dist/scripts/4772-3cb280f959-streamable-learning.chunk.js.LICENSE.txt +0 -1
- package/dist/scripts/4951-df701c6a8d-streamable-learning.chunk.js +0 -1
- package/dist/scripts/5088-2e09e1ba6e-streamable-learning.chunk.js +0 -1
- package/dist/scripts/5173-a800a17d0d-streamable-learning.chunk.js +0 -1
- package/dist/scripts/5446-2cbe9f9d1b-streamable-learning.chunk.js +0 -1
- package/dist/scripts/5543-205aaa36a6-streamable-learning.chunk.js +0 -1
- package/dist/scripts/5565-224d86dc1b-streamable-learning.chunk.js +0 -1
- package/dist/scripts/578-2cc99f46f7-streamable-learning.chunk.js +0 -1
- package/dist/scripts/6017-5bd6f9bf7a-streamable-learning.chunk.js +0 -2
- package/dist/scripts/6017-5bd6f9bf7a-streamable-learning.chunk.js.LICENSE.txt +0 -1
- package/dist/scripts/6356-eefa3ff22e-streamable-learning.chunk.js +0 -1
- package/dist/scripts/6979-ef9a3931a2-streamable-learning.chunk.js +0 -2
- package/dist/scripts/6979-ef9a3931a2-streamable-learning.chunk.js.LICENSE.txt +0 -1
- package/dist/scripts/6987-e58de31cfe-streamable-learning.chunk.js +0 -1
- package/dist/scripts/7317-6b7186c85d-streamable-learning.chunk.js +0 -1
- package/dist/scripts/7347-772848ba8a-streamable-learning.chunk.js +0 -1
- package/dist/scripts/7570-cd4f70ff52-streamable-learning.chunk.js +0 -2
- package/dist/scripts/7570-cd4f70ff52-streamable-learning.chunk.js.LICENSE.txt +0 -1
- package/dist/scripts/7904-96574373ca-streamable-learning.chunk.js +0 -1
- package/dist/scripts/7925-1e1cfa2a04-streamable-learning.chunk.js +0 -1
- package/dist/scripts/8058-51c4b442d6-streamable-learning.chunk.js +0 -1
- package/dist/scripts/8126-9d09959b28-streamable-learning.chunk.js +0 -2
- package/dist/scripts/8126-9d09959b28-streamable-learning.chunk.js.LICENSE.txt +0 -60
- package/dist/scripts/8397-39ce77876d-streamable-learning.chunk.js +0 -1
- package/dist/scripts/8496-1b2519f9fd-streamable-learning.chunk.js +0 -2
- package/dist/scripts/8496-1b2519f9fd-streamable-learning.chunk.js.LICENSE.txt +0 -1
- package/dist/scripts/8599-b74e1ab6e3-streamable-learning.chunk.js +0 -1
- package/dist/scripts/8601-37783cf18b-streamable-learning.chunk.js +0 -1
- package/dist/scripts/8819-2a50dd6a9b-streamable-learning.chunk.js +0 -1
- package/dist/scripts/8937-5103db88d8-streamable-learning.chunk.js +0 -1
- package/dist/scripts/9390-bbaf07ad0f-streamable-learning.chunk.js +0 -1
- package/dist/scripts/9514-a31ca9af06-streamable-learning.chunk.js +0 -1
- package/dist/scripts/9766-855b276f54-streamable-learning.chunk.js +0 -2
- package/dist/scripts/9766-855b276f54-streamable-learning.chunk.js.LICENSE.txt +0 -1
- package/dist/scripts/9842-ca3b069e5d-streamable-learning.chunk.js +0 -1
- package/dist/scripts/9899-f33e8f1d43-streamable-learning.chunk.js +0 -2
- package/dist/scripts/9899-f33e8f1d43-streamable-learning.chunk.js.LICENSE.txt +0 -1
- package/dist/scripts/9951-122cbba64f-streamable-learning.chunk.js +0 -2
- package/dist/scripts/9951-122cbba64f-streamable-learning.chunk.js.LICENSE.txt +0 -1
- package/dist/scripts/bundle-d51fd463b2.min.js +0 -2
- package/dist/scripts/bundle-d51fd463b2.min.js.LICENSE.txt +0 -108
- package/dist/scripts/pdf.worker.entry-a2092a6670.min.worker.js +0 -2
- package/dist/scripts/pdf.worker.entry-a2092a6670.min.worker.js.LICENSE.txt +0 -21
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{j as a,E as n,c as g,T as b,Y as P,g as x,r as T,Z as y,o as h,s as D,t as L,p as S,q as A,_ as k,v as j,w as I,x as R,O as W,$ as E}from"./app-DiXzpOyg.js";import{S as H,a as w,g as V}from"./xbvkqJGe.chunk.js";import{W as q,u as U}from"./DTcDjqUi.chunk.js";import{D as M,a as u}from"./BdHxGaRy.chunk.js";import{C as v}from"./C2zcSUEr.chunk.js";import{P as F}from"./wOGv44_K.chunk.js";import{A as N}from"./BnSh6tRF.chunk.js";import{D as z}from"./CqWRz_Vd.chunk.js";import{A as O}from"./DaJTPRJr.chunk.js";import{u as B}from"./Bg6K2hsA.chunk.js";import{S as f}from"./CPNjAJN5.chunk.js";import"./BFcg4phV.chunk.js";import"./QlJI4d4R.chunk.js";import"./CEmtkty-.chunk.js";import"./vuoBilPQ.chunk.js";import"./Bnt14Hw8.chunk.js";import"./BaMuTXqa.chunk.js";import"./cvX-F_mx.chunk.js";import"./CU5Dd7rS.chunk.js";import"./LIBRZSqN.chunk.js";import"./DEixuHfi.chunk.js";import"./BWkYFXR0.chunk.js";import"./DecSY6Xq.chunk.js";import"./D4x4hAdA.chunk.js";import"./DgL-ti6b.chunk.js";import"./Ci9wGu6N.chunk.js";import"./DuidBpWd.chunk.js";import"./CX-Bc0hf.chunk.js";import"./KAizYpNf.chunk.js";import"./sxyRyCzh.chunk.js";import"./BBnDr_iy.chunk.js";import"./C5Fq7Tf-.chunk.js";import"./C_pobyVf.chunk.js";import"./DFhkO_lZ.chunk.js";import"./ShERxFU5.chunk.js";import"./nay4aGaa.chunk.js";import"./DWkg1qc2.chunk.js";import"./9vP26Hjl.chunk.js";import"./aXDrx9_z.chunk.js";import"./CW7x8M-z.chunk.js";import"./C35NlkUr.chunk.js";import"./DRmZj7Fw.chunk.js";import"./DBdD19pY.chunk.js";import"./Bbj3u3zY.chunk.js";import"./Dhn0D6IV.chunk.js";import"./pkzD5BEm.chunk.js";import"./DIIFVn0p.chunk.js";import"./BvQxdtl3.chunk.js";import"./BmN5JsPi.chunk.js";import"./bww2eGbI.chunk.js";import"./DNbkIXc2.chunk.js";import"./Bg1w511R.chunk.js";import"./CPXlV0fg.chunk.js";import"./D_nzH8Cw.chunk.js";import"./xywWSa0t.chunk.js";import"./s4utqqzH.chunk.js";import"./DzLh2mnb.chunk.js";import"./qO6ZefON.chunk.js";import"./BOH3SvVi.chunk.js";import"./vwgUbn2Z.chunk.js";import"./m9wd_474.chunk.js";const d="streamable.dashboardEmptyState",_=g.encloseNamespace(d);function $(e){var s,i;const o=((s=e.dashboard)==null?void 0:s.status)===M.Archived;return a.jsxs(n,{children:[a.jsx(n.Image,{src:e.imageUrl,altText:_("info")}),a.jsx(n.Heading,{children:a.jsx(b,{namespace:d,phrase:"heading"})}),a.jsx(n.Info,{children:a.jsx(b,{namespace:d,phrase:"info"})}),a.jsx(P,{title:o?g.getPhrase(d,"archivedCtaTooltip"):"",spanHack:!0,children:a.jsx(n.Cta,{text:g.getPhrase(d,"add"),appLink:(i=e.addWidgetApplink)==null?void 0:i.call(e),className:"btn btn-dark",icon:F,disabled:o})})]})}function K(e){var c;const o=x.sortBy((c=e.dashboard)==null?void 0:c.widgets,"index"),{hasPermissions:s,hasLocalPermissions:i}=T();function m(t,l,r){const C=v.getWidgetParams(l,r,v.getDashboardTargetType(e.dashboard));return e.getWidgetContentRequest(t,C,r)}const p=e.isReadonly&&!(o!=null&&o.length);return a.jsxs(a.Fragment,{children:[a.jsx(H,{active:"discover",appLinks:e.headerAppLinks}),o.map((t,l)=>a.jsx(q,{widgetCollection:u.Discover,id:t.id,getContentRequest:m,audiences:e.audiences,name:t.name,description:t.description,templateId:t.templateId,metadata:t.metadata,presentation:e.presentation,appLinks:e.widgetAppLinks,isScrollToTargetWidget:(e==null?void 0:e.scrollToWidgetId)===t.id,widgetTypeId:t.widgetId,lazyLoad:e.lazyLoad,dashboardTarget:u.Discover,widgetIndex:l,isPreviewing:e.isReadonly,contentType:y.Livestream,preferences:t.preferences,hasPermissions:s,hasLocalPermissions:i,isTertiaryCustomerWithoutExchange:!1,preventPopout:!0,imageCdnUrl:e.commonVideoProps.imageCdnUrl,commonVideoProps:e.commonVideoProps,availablePresentations:void 0,classification:void 0,hasTableOfContents:void 0,imageUrls:void 0,jobTitle:void 0,onSubmitFeedback:void 0,settings:void 0,updatePreferences:void 0,seeMoreLink:void 0,onClickRemoveItem:void 0,badgeComponent:void 0},t.id)),p&&a.jsx($,{dashboard:e.dashboard,isReadonly:e.isReadonly,imageUrl:e.emptyImageUrl,addWidgetApplink:e.widgetAppLinks.widgetWizard})]})}const Y="streamableDashboard.dashboard",Z=g.encloseNamespace(Y);function ia(e){return e?W.pick(e,["a","dashboardId"]):{}}function oa(e){var r;const{commonVideoProps:o}=B(),s=h(E.config()),i=h(D.streamablePresentation()),m=h(i.data&&N.presentationAudiences(i.data.id,L.StreamableLearning)),{dashboard:p}=U({targetType:u.Discover,dashboardId:(r=e.queryParams)==null?void 0:r.dashboardId}),[c]=S(k.AUDIENCE_FILTER,void 0,{storage:A.SessionStorage}),t=w(O.getAudienceParams(c));return j(I.getDiscoverMetadata({content:i.data,phraseContext:{phraseHandler:Z,titlePhrase:"pageTitle",descriptionPhrase:"pageDescription"},canonicalLink:f.getCanonicalLink(),allowIndexing:!0,product:R.PRODUCT_NAME})),s.hasCompleted&&p.hasCompleted&&i.hasCompleted&&m.hasCompleted?a.jsx("div",{className:"bg-white px-4",children:a.jsx(K,{dashboard:p.data,widgetAppLinks:t,headerAppLinks:V(),presentation:i.data,getWidgetContentRequest:z.dashboardWidgetContent,audiences:m.data,lazyLoad:!f.isBot(),commonVideoProps:o})}):a.jsx(a.Fragment,{})}export{oa as DashboardView,ia as sanitizeDashboardViewParams};
|
|
2
|
+
//# sourceMappingURL=Ynb9IAgu.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Ynb9IAgu.chunk.js","sources":["../../../../libs/shared/src/apps/streamable-learning/components/dashboard/empty-state/StreamableDiscoverDashboardEmptyState.tsx","../../../../libs/shared/src/apps/streamable-learning/components/dashboard/StreamableDiscoverDashboard.tsx","../../src/apps/dashboard/views/dashboard/DashboardView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { PlusSvg } from 'libs/shared/images/svg/actions/PlusSvg';\nimport { CuratedDashboard, DashboardStatus } from 'libs/shared/interfaces';\n\n\nconst namespace = 'streamable.dashboardEmptyState';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface StreamableDiscoverDashboardEmptyStateProps {\n dashboard: CuratedDashboard;\n imageUrl: string;\n isReadonly: boolean;\n addWidgetApplink?: () => Core.AppLink;\n}\n\nexport function StreamableDiscoverDashboardEmptyState(props: StreamableDiscoverDashboardEmptyStateProps): JSX.Element {\n const isArchived = props.dashboard?.status === DashboardStatus.Archived;\n\n return (\n <EmptyState>\n <EmptyState.Image src={props.imageUrl} altText={getPhrase('info')} />\n <EmptyState.Heading>\n <Text namespace={namespace} phrase='heading' />\n </EmptyState.Heading>\n <EmptyState.Info>\n <Text namespace={namespace} phrase='info' />\n </EmptyState.Info>\n <Tooltip title={isArchived ? LanguageService.getPhrase(namespace, 'archivedCtaTooltip') : ''} spanHack>\n <EmptyState.Cta\n text={LanguageService.getPhrase(namespace, 'add')}\n appLink={props.addWidgetApplink?.()}\n className='btn btn-dark'\n icon={PlusSvg}\n disabled={isArchived}\n />\n </Tooltip>\n </EmptyState>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { Flight } from 'libs/common/flight';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { StreamableHeader, StreamableHeaderAppLinks } from 'libs/shared/apps/streamable-learning/components/header/StreamableHeader';\nimport { WidgetContainerView } from 'libs/shared/components/widgets/curated-widgets/WidgetContainerView';\nimport { AllDiscoverWidgetTemplates } from 'libs/shared/components/widgets/curated-widgets/WidgetProps';\nimport { WidgetTemplate } from 'libs/shared/enums/WidgetTemplate';\nimport { WidgetTypeId } from 'libs/shared/enums/WidgetTypeId';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { CalendarEventContentType, CuratedDashboard, CuratedWidgetQueryParams, DashboardTargetType, Presentation, PresentationAudience } from 'libs/shared/interfaces';\nimport { CommonVideoProps } from 'libs/shared/interfaces/CommonVideoProps';\nimport { CuratedDashboardHelper } from 'libs/shared/utils/DashboardHelper';\n\nimport { StreamableDiscoverDashboardEmptyState } from './empty-state/StreamableDiscoverDashboardEmptyState';\n\nexport interface StreamableDiscoverDashboardProps {\n dashboard: CuratedDashboard;\n getWidgetContentRequest: (\n id: string,\n params: CuratedWidgetQueryParams,\n widgetTemplate: WidgetTemplate\n ) => Flight.Request;\n\n audiences?: PresentationAudience[];\n emptyImageUrl?: string;\n presentation: Presentation;\n widgetAppLinks?: AllDiscoverWidgetTemplates['appLinks'] & {\n widgetWizard: () => Core.AppLink;\n };\n headerAppLinks?: StreamableHeaderAppLinks;\n scrollToWidgetId?: string;\n isReadonly?: boolean;\n lazyLoad?: boolean;\n commonVideoProps: CommonVideoProps;\n}\n\nexport function StreamableDiscoverDashboard(props: StreamableDiscoverDashboardProps): JSX.Element {\n const widgets = ArrayHelper.sortBy(props.dashboard?.widgets, 'index');\n\n const { hasPermissions, hasLocalPermissions } = usePermissions();\n\n function getWidgetContentRequest(id: string, widgetTypeId: WidgetTypeId, template: WidgetTemplate): Flight.Request {\n const params = CuratedDashboardHelper.getWidgetParams(\n widgetTypeId,\n template,\n CuratedDashboardHelper.getDashboardTargetType(props.dashboard)\n );\n\n return props.getWidgetContentRequest(id, params, template);\n }\n\n const showEmptyState = props.isReadonly && !widgets?.length;\n\n return (\n <>\n <StreamableHeader active='discover' appLinks={props.headerAppLinks} />\n\n {widgets.map((widget, idx) => {\n return (\n <WidgetContainerView\n widgetCollection={DashboardTargetType.Discover}\n key={widget.id}\n id={widget.id}\n getContentRequest={getWidgetContentRequest}\n audiences={props.audiences}\n name={widget.name}\n description={widget.description}\n templateId={widget.templateId}\n metadata={widget.metadata}\n presentation={props.presentation}\n appLinks={props.widgetAppLinks}\n isScrollToTargetWidget={props?.scrollToWidgetId === widget.id}\n widgetTypeId={widget.widgetId}\n lazyLoad={props.lazyLoad}\n dashboardTarget={DashboardTargetType.Discover}\n widgetIndex={idx}\n isPreviewing={props.isReadonly}\n contentType={CalendarEventContentType.Livestream}\n preferences={widget.preferences}\n hasPermissions={hasPermissions}\n hasLocalPermissions={hasLocalPermissions}\n isTertiaryCustomerWithoutExchange={false}\n preventPopout\n imageCdnUrl={props.commonVideoProps.imageCdnUrl}\n commonVideoProps={props.commonVideoProps}\n \n availablePresentations={undefined}\n classification={undefined}\n hasTableOfContents={undefined}\n imageUrls={undefined}\n jobTitle={undefined}\n onSubmitFeedback={undefined}\n settings={undefined}\n updatePreferences={undefined}\n seeMoreLink={undefined}\n onClickRemoveItem={undefined}\n badgeComponent={undefined}\n />\n );\n })}\n\n {showEmptyState && (\n <StreamableDiscoverDashboardEmptyState\n dashboard={props.dashboard}\n isReadonly={props.isReadonly}\n imageUrl={props.emptyImageUrl}\n addWidgetApplink={props.widgetAppLinks.widgetWizard}\n />\n )}\n </>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { StorageType } from 'libs/common/backbone/utils/LocalStorageHelper';\nimport { Flight } from 'libs/common/flight';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { StreamableDiscoverDashboard } from 'libs/shared/apps/streamable-learning/components/dashboard/StreamableDiscoverDashboard';\nimport { SharedViewModelKeys } from 'libs/shared/constants/SharedViewModelKeys';\nimport { PresentationType } from 'libs/shared/enums/PresentationType';\nimport { AudienceRequests } from 'libs/shared/flight-requests/AudienceRequests';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { DashboardRequests } from 'libs/shared/flight-requests/DashboardRequests';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Config, DashboardTargetType, Presentation, PresentationAudience } from 'libs/shared/interfaces';\nimport { AudienceHelper } from 'libs/shared/utils/audience-helper/AudienceHelper';\nimport { PageMetadataHelper } from 'libs/shared/utils/PageMetadataHelper';\n\nimport { StreamableConstants } from 'shared/constants/StreamableConstants';\nimport { PresentationRequests } from 'shared/flight-requests/PresentationRequests';\nimport { useCommonVideoProps } from 'shared/hooks/useCommonVideoProps';\nimport { useFetchDashboard } from 'shared/hooks/useFetchDashboard';\nimport { SeoHelper } from 'shared/utils/StreamableSeoHelper';\n\nimport { getDiscoverWidgetAppLinks, getStreamableHeaderAppLinks } from 'apps/dashboard/views/dashboard/DiscoverViewUtils';\n\nconst namespace = 'streamableDashboard.dashboard';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\n/**\n * NOTE: Ensure any keys added here are also added\n * to sanitizeDashboardParams below.\n */\ninterface DashboardViewQueryParams {\n a?: string[]\n dashboardId?: string;\n}\n\nexport function sanitizeDashboardViewParams(queryParams: DashboardViewQueryParams): DashboardViewQueryParams {\n if (!queryParams)\n return {};\n\n return ObjectHelper.pick(queryParams, [ 'a', 'dashboardId' ]);\n}\n\ninterface DashboardViewProps {\n queryParams?: DashboardViewQueryParams;\n}\n\nexport function DashboardView(props: DashboardViewProps): JSX.Element {\n const { commonVideoProps } = useCommonVideoProps();\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n const presentation = Flight.useBasicFetch<Presentation>(\n PresentationRequests.streamablePresentation()\n );\n\n const audiences = Flight.useBasicFetch<PresentationAudience[]>(\n presentation.data &&\n AudienceRequests.presentationAudiences(presentation.data.id, PresentationType.StreamableLearning)\n );\n\n const { dashboard } = useFetchDashboard({\n targetType: DashboardTargetType.Discover,\n dashboardId: props.queryParams?.dashboardId\n });\n\n const [activeAudiences] = useViewModel<PresentationAudience[]>(\n SharedViewModelKeys.AUDIENCE_FILTER,\n undefined,\n { storage: StorageType.SessionStorage }\n );\n\n const widgetAppLinks = getDiscoverWidgetAppLinks(AudienceHelper.getAudienceParams(activeAudiences));\n\n useSetPageMetadata(PageMetadataHelper.getDiscoverMetadata({\n content: presentation.data,\n phraseContext: {\n phraseHandler: getPhrase,\n titlePhrase: 'pageTitle',\n descriptionPhrase: 'pageDescription'\n },\n canonicalLink: SeoHelper.getCanonicalLink(),\n allowIndexing: true,\n product: StreamableConstants.PRODUCT_NAME\n }));\n\n const hasLoaded = (\n config.hasCompleted &&\n dashboard.hasCompleted &&\n presentation.hasCompleted &&\n audiences.hasCompleted\n );\n\n if (!hasLoaded)\n return <></>;\n\n return (\n <div className='bg-white px-4'>\n <StreamableDiscoverDashboard\n dashboard={dashboard.data}\n widgetAppLinks={widgetAppLinks}\n headerAppLinks={getStreamableHeaderAppLinks()}\n presentation={presentation.data}\n getWidgetContentRequest={DashboardRequests.dashboardWidgetContent}\n audiences={audiences.data}\n lazyLoad={!SeoHelper.isBot()}\n commonVideoProps={commonVideoProps}\n />\n </div>\n );\n}"],"names":["namespace","getPhrase","LanguageService","StreamableDiscoverDashboardEmptyState","props","isArchived","_a","DashboardStatus","EmptyState","jsx","Text","Tooltip","_b","PlusSvg","StreamableDiscoverDashboard","widgets","ArrayHelper","hasPermissions","hasLocalPermissions","usePermissions","getWidgetContentRequest","id","widgetTypeId","template","params","CuratedDashboardHelper","showEmptyState","jsxs","Fragment","StreamableHeader","widget","idx","WidgetContainerView","DashboardTargetType","CalendarEventContentType","sanitizeDashboardViewParams","queryParams","ObjectHelper","DashboardView","commonVideoProps","useCommonVideoProps","config","Flight.useBasicFetch","ConfigRequests","presentation","PresentationRequests","audiences","AudienceRequests","PresentationType","dashboard","useFetchDashboard","activeAudiences","useViewModel","SharedViewModelKeys","StorageType","widgetAppLinks","getDiscoverWidgetAppLinks","AudienceHelper","useSetPageMetadata","PageMetadataHelper","SeoHelper","StreamableConstants","getStreamableHeaderAppLinks","DashboardRequests"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{b7 as j,i as k,k as v,h as b,j as s,b8 as P,n as ce,b9 as re,ba as oe,d as f,T as x,u as N,bb as le,R as H,a6 as A,o as L,bc as E,bd as O,a5 as _,be as de,bf as B,bg as I,O as me,aE as ue,$ as he,s as pe,bh as ye,t as ge,a3 as xe,a4 as fe,bi as Le,c as J,p as je,_ as ke,L as be,E as R,V as Se,W as Z,X as ee,v as Ae,w as Pe,x as ve,a0 as W}from"./app-DiXzpOyg.js";import{V as $}from"./Dhn0D6IV.chunk.js";import{C as Ce,M as Ve}from"./C_pobyVf.chunk.js";import{b as D,c as M,M as Ie,d as se,C as Ne,I as Oe,V as _e}from"./DBdD19pY.chunk.js";import{H as Re,P as Te,S as Fe}from"./DRmZj7Fw.chunk.js";import{B as $e}from"./BBnDr_iy.chunk.js";import{R as G}from"./DWkg1qc2.chunk.js";import{I as De,a as te}from"./ShERxFU5.chunk.js";import{S as qe,B as we,a as Ee,u as Me}from"./Bg6K2hsA.chunk.js";import{A as Ue}from"./bww2eGbI.chunk.js";import{B as Q,a as z}from"./QlJI4d4R.chunk.js";import{B as Be}from"./CX-Bc0hf.chunk.js";import{S as He}from"./BsoISj2P.chunk.js";import{I as Ge}from"./CsxsnXoH.chunk.js";import{u as We}from"./F-K8Bwdk.chunk.js";import{A as Qe}from"./BnSh6tRF.chunk.js";import{C as ze}from"./qO6ZefON.chunk.js";import{T as Xe,a as Ye}from"./C2zcSUEr.chunk.js";import{C as Ke}from"./nay4aGaa.chunk.js";import{h as Je}from"./BYrL8Bl0.chunk.js";import{u as Ze}from"./vjyJbQe4.chunk.js";import"./CEmtkty-.chunk.js";import"./Bnt14Hw8.chunk.js";import"./BaMuTXqa.chunk.js";import"./pkzD5BEm.chunk.js";import"./DIIFVn0p.chunk.js";import"./DFhkO_lZ.chunk.js";import"./DuidBpWd.chunk.js";import"./Bbj3u3zY.chunk.js";import"./BvQxdtl3.chunk.js";import"./KAizYpNf.chunk.js";import"./BmN5JsPi.chunk.js";import"./DNbkIXc2.chunk.js";import"./CU5Dd7rS.chunk.js";import"./DaJTPRJr.chunk.js";import"./BdHxGaRy.chunk.js";import"./vuoBilPQ.chunk.js";import"./cvX-F_mx.chunk.js";import"./D4x4hAdA.chunk.js";import"./DgL-ti6b.chunk.js";import"./BOH3SvVi.chunk.js";import"./vwgUbn2Z.chunk.js";import"./Bg1w511R.chunk.js";import"./DEixuHfi.chunk.js";import"./BWkYFXR0.chunk.js";import"./DecSY6Xq.chunk.js";import"./CPXlV0fg.chunk.js";import"./B2rqAGbQ.chunk.js";import"./B928Y1m-.chunk.js";function es(e){var a,n,c,l;const t={...e.analyticsData,id:(a=e.data)==null?void 0:a.id,name:(n=e.data)==null?void 0:n.name},i={location:b.ClassificationListItem,...e.analyticsOptions,actionType:v.Click,entity:k.Company,descriptor:j.Cover};return s.jsx(Ce,{...e,analyticsData:t,analyticsOptions:i,coverUrl:(c=e.data.logo)==null?void 0:c.url,coverBgColor:(l=e.data.metadata)==null?void 0:l.colour})}function ss(e){return s.jsx(P,{as:"li",sm:6,md:e.useLargeStyle?6:4,lg:e.useLargeStyle?4:3,children:s.jsx("div",{className:"position-relative px-1 mb-2",children:s.jsx(es,{data:e.item,getChildAppLink:e.appLinks.getCompanyAppLink,getChildAppLinkOptions:()=>{var t,i;return(i=(t=e.appLinks).getCompanyAppLinkOptions)==null?void 0:i.call(t,e.item)},analyticsData:{itemIndex:e.itemIndex,search:{query:e.queryParams.query,score:e.item._score,maxScore:e.item._maxScore,featured:e.item._featured},pagePositionIndex:0},isLarge:e.useLargeStyle})})})}const ts="_videoList_14pgo_1",q={videoList:ts},T="search.exchangeVideoGroup",X=3;function is(e){const t=e.item.showCount>=X?X:e.item.showCount;function i(){return e.pagePositionIndex===0?"border-bottom pb-1 mb-3":"border-top border-bottom pt-3 mt-2 pb-1 mb-3"}const a=ce.getCurrentAppLink(),n=a.params??{};let c=(n==null?void 0:n.source)??[];c&&!Array.isArray(c)&&(c=[c]);const l={...a,params:{...n,source:[...c,re.ExchangeArchive]}},r={query:e.queryParams.query,itemIndex:e.itemIndex,pagePositionIndex:e.pagePositionIndex},u={entity:k.SearchResults,location:b.ExchangeSearchGroupItem,actionType:v.Click,descriptor:oe.ExchangeArchive};return s.jsxs("div",{className:i(),children:[s.jsx(f,{appLink:l,analyticsData:r,analyticsOptions:u,children:s.jsx("h2",{className:"h4",children:s.jsx(x,{namespace:T,phrase:"heading"})})}),s.jsxs("p",{children:[s.jsx(x,{namespace:T,phrase:"message"})," ",s.jsx(f,{appLink:e.appLinks.searchSettings,className:"text-info",analyticsData:r,analyticsOptions:{...u,descriptor:j.Settings},children:s.jsx(x,{namespace:T,phrase:"searchSettings"})}),"."]}),s.jsx("div",{className:`position-relative ${q.videoList}`,children:e.item.videos.slice(0,t).map((h,m)=>s.jsx(D,{video:h,getVideoAppLink:e.appLinks.getVideoAppLink,presentationAudiences:e.audiences,analyticsData:{search:{query:e.queryParams.query,score:h._score,maxScore:h._maxScore,featured:h._featured},pagePositionIndex:e.pagePositionIndex},hasPermissions:e.hasPermissions,commonVideoProps:e.commonVideoProps},m))}),s.jsx("div",{className:"text-center py-2",children:s.jsx(f,{className:"text-secondary",appLink:l,analyticsData:r,analyticsOptions:u,children:s.jsx(x,{namespace:T,phrase:"seeMore"})})})]})}function as(e){return s.jsx("div",{className:"pb-3",children:s.jsx(Re,{video:e.item,presentationAudiences:e.audiences,getVideoAppLink:(t,i)=>e.appLinks.getVideoAppLink(t,i),analyticsData:{search:{query:e.queryParams.query,score:e.item._score,maxScore:e.item._maxScore,featured:e.item._featured},pagePositionIndex:e.pagePositionIndex},hideInteractiveBadge:!0,showVideoGuidance:$.showVideoGuidance(e.hasPermissions),commonVideoProps:e.commonVideoProps})})}const ns="_videoList_182nk_1",cs={videoList:ns},rs="search.playlistWithVideos";function os(){const e=N();return e.xl||e.xxl?3:2}function ls(e){const t=os(),i=e.playlist.videos.data.slice(0,t),a={actionType:v.Click,entity:k.Playlist,location:b.PlaylistWithVideos},n={...e.analyticsData,id:e.playlist.id,name:e.playlist.name};return s.jsx("div",{className:"ps-2 py-2",children:s.jsxs(G,{className:"g-0 border rounded-3",children:[s.jsx(P,{xs:4,lg:3,className:"pe-3",children:s.jsx(Te,{appLink:e.playlistAppLink,analyticsData:e.analyticsData,analyticsOptions:{...a,descriptor:j.Cover},data:e.playlist,presentationAudiences:e.presentationAudiences,bgColourClassNames:$e,itemStyle:"round-left",imageCdnUrl:e.commonVideoProps.imageCdnUrl,currentUser:e.currentUser,showCount:!1,showOwner:!0})}),s.jsx(P,{xs:8,lg:9,children:s.jsxs("div",{className:"d-flex justify-content-between",children:[s.jsx("div",{className:`pt-3 mb-n2 ${cs.videoList}`,children:i==null?void 0:i.map(c=>{const l={...n,videoId:c.id,videoName:c.name};return s.jsx("div",{className:"mb-2",children:s.jsx(D,{video:c,getVideoAppLink:e.getVideoAppLink,analyticsData:l,analyticsOptions:{entity:k.Video,location:b.PlaylistWithVideos},size:"sm",hasPermissions:e.hasPermissions,hideVideoGuidance:!0,commonVideoProps:e.commonVideoProps})},c.id)})}),s.jsx("div",{className:"text-end pt-3 pe-3",children:s.jsx(f,{className:"info-link fw-semibold",appLink:e.playlistAppLink,analyticsData:n,analyticsOptions:{...a,descriptor:j.Link},children:s.jsx(x,{namespace:rs,phrase:"seeAllVideos"})})})]})})]})})}function ds(e){return s.jsx("div",{className:"mx-n2",children:s.jsx(ls,{playlist:e.item,playlistAppLink:e.appLinks.getPlaylistAppLink(e.item),presentationAudiences:e.audiences,analyticsData:{search:{query:e.queryParams.query,score:e.item._score,maxScore:e.item._maxScore,featured:e.item._featured},pagePositionIndex:e.pagePositionIndex},currentUser:e.currentUser,preloadImage:!0,getVideoAppLink:e.appLinks.getVideoAppLink,hasPermissions:e.hasPermissions,commonVideoProps:e.commonVideoProps})})}const ms="_videoList_182nk_1",us={videoList:ms},hs="search.seriesWithVideos";function ps(){const e=N();return e.xl||e.xxl?5:e.lg||e.md?4:3}function ys(e){const t=ps(),i=e.series.videos.data.slice(0,t),a={actionType:v.Click,entity:k.Series,location:b.SeriesWithVideos},n={...e.analyticsData,id:e.series.id,name:e.series.name};return s.jsx("div",{className:"ps-2 py-2",children:s.jsxs(G,{className:"g-0 border rounded-3",children:[s.jsx(P,{xs:4,lg:3,className:"pe-3",children:s.jsx(f,{appLink:e.seriesAppLink,className:"position-relative",analyticsData:n,analyticsOptions:{...a,descriptor:j.TallPoster},children:s.jsx(Fe,{series:e.series,presentationAudiences:e.presentationAudiences,preloadImage:e.preloadImage,imageClass:"rounded-start-lg"})})}),s.jsx(P,{xs:8,lg:9,children:s.jsxs("div",{className:"d-flex justify-content-between",children:[s.jsx("div",{className:`pt-3 mb-n2 ${us.videoList}`,children:i==null?void 0:i.map(c=>{const l={...n,videoId:c.id,videoName:c.name};return c={...c,series:e.series},s.jsx("div",{className:"mb-2",children:s.jsx(D,{video:c,getVideoAppLink:e.getVideoAppLink,analyticsData:l,analyticsOptions:{entity:k.Video,location:b.SeriesWithVideos},size:"sm",hasPermissions:e.hasPermissions,hideVideoGuidance:!0,commonVideoProps:e.commonVideoProps})},c.id)})}),s.jsx("div",{className:"text-end pt-3 pe-3",children:s.jsx(f,{className:"info-link fw-semibold",appLink:e.seriesAppLink,analyticsData:n,analyticsOptions:{...a,descriptor:j.Link},children:s.jsx(x,{namespace:hs,phrase:"seeAllVideos"})})})]})})]})})}function gs(e){return s.jsx("div",{className:"mx-n2",children:s.jsx(ys,{presentationAudiences:e.audiences,series:e.item,seriesAppLink:e.appLinks.getSeriesAppLink(e.item),getVideoAppLink:e.appLinks.getVideoAppLink,analyticsData:{search:{query:e.queryParams.query,score:e.item._score,maxScore:e.item._maxScore,featured:e.item._featured},pagePositionIndex:e.pagePositionIndex},preloadImage:!0,hasPermissions:e.hasPermissions,commonVideoProps:e.commonVideoProps})})}const xs="search.collectionVideoList";function fs(){const e=N();return e.xs?2:e.sm?1:3}function Ls(e){const t=fs(),i={analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions};return s.jsxs(s.Fragment,{children:[s.jsx("ul",{className:"list-unstyled my-1",children:e.videos.slice(0,t).map(a=>{var c;const n=!!a.episodeNumber&&!!((c=a.season)!=null&&c.id);return s.jsx("li",{className:"d-flex align-items-center",children:s.jsxs(f,{...i,className:"clamp-1",appLink:e.getVideoAppLink(a),children:[n&&s.jsxs(s.Fragment,{children:[s.jsx(qe,{video:a})," "]}),a.name]})},`${e.collectionId}:${a.id}`)})}),s.jsx(f,{...i,className:"info-link",appLink:e.appLink,children:s.jsx(x,{namespace:xs,phrase:"seeAll"})})]})}const js="_overlay_1tsto_1",ks={overlay:js},bs="search.collectionThumbnail";function ie(e){var h,m,d;const t=N(),a=M.getSize(t,"md")==="sm",n=!!((m=(h=e.collection.videos)==null?void 0:h.data)!=null&&m.length),c=n&&e.collection.videos.data.find(o=>{var y;return!!((y=o.thumbnail)!=null&&y.url)});function l(){const o={...e.analyticsData,id:e.collection.id,name:e.collection.name};return c&&(o.videoId=c.id,o.videoName=c.name),o}const r=l(),u=e.collectionType==="series";return s.jsxs("div",{className:`row g-0 ${a?"":"py-2"}`,children:[s.jsx(P,{...M.getThumbnailColumns(),className:`flex-column align-items-flex-start ${a?"pb-2 pe-2":"mb-1 px-2"}`,children:s.jsx("div",{className:`position-relative overflow-hidden ${a?"rounded":"rounded-3"}`,children:s.jsxs(Be,{data:c==null?void 0:c.thumbnail,appLink:e.appLink,imageType:le.Thumbnails,analyticsData:r,analyticsOptions:{...e.analyticsOptions,descriptor:j.Thumbnail},children:[s.jsx(Ie,{type:e.maskType}),s.jsx(De,{type:e.imageFallbackType}),s.jsx("div",{className:`d-flex flex-column align-items-center justify-content-center text-white h-100 ${ks.overlay}`,children:s.jsx(x,{namespace:bs,phrase:"seeAll"})})]})})}),s.jsxs(P,{...M.getDetailsColumns(),className:a?"pb-2":"px-2",children:[!e.isPlugin&&s.jsx(Ue,{actions:e.getCollectionActions(e.collection,e.showActions,e.collectionType,e.analyticsOptions),className:"float-end mt-n1",actionsDropdownClassName:"btn btn-link ms-1"}),s.jsx(f,{appLink:e.appLink,analyticsData:r,analyticsOptions:{...e.analyticsOptions,descriptor:j.Title},children:s.jsx("h5",{className:"m-0 mb-1",children:s.jsx("span",{className:"clamp-1",children:e.collection.name})})}),u&&!e.hideBadges&&s.jsxs(we,{children:[s.jsx(Q,{type:z.Rating,data:Ee.getRating(e.collection)}),s.jsx(Q,{type:z.ProductionYear,data:(d=e.collection.metadata)==null?void 0:d.year})]}),n&&s.jsx(Ls,{collectionId:e.collection.id,videos:e.collection.videos.data,appLink:e.appLink,analyticsData:r,analyticsOptions:{...e.analyticsOptions,descriptor:j.Link},getVideoAppLink:e.getVideoAppLink})]})]})}function Ss(e){return s.jsx("div",{className:`position-relative ${q.videoList}`,children:s.jsx(ie,{analyticsData:{search:{query:e.queryParams.query,score:e.item._score,maxScore:e.item._maxScore,featured:e.item._featured},pagePositionIndex:e.pagePositionIndex},analyticsOptions:{entity:k.Playlist,actionType:v.Click,location:b.PlaylistListItem},appLink:e.appLinks.getPlaylistAppLink(e.item),showActions:e.showActions,collection:e.item,collectionType:"playlist",maskType:se.Playlist,imageFallbackType:te.PlaylistThumbnail,isPlugin:e.commonVideoProps.isPlugin,getVideoAppLink:e.appLinks.getVideoAppLink,getCollectionActions:e.appLinks.getCollectionActions})})}function As(e){return s.jsx("div",{className:`position-relative ${q.videoList}`,children:s.jsx(ie,{analyticsData:{search:{query:e.queryParams.query,score:e.item._score,maxScore:e.item._maxScore,featured:e.item._featured},pagePositionIndex:e.pagePositionIndex},analyticsOptions:{entity:k.Series,actionType:v.Click,location:b.SeriesListItem},appLink:e.appLinks.getSeriesAppLink(e.item),collectionType:"series",collection:e.item,showActions:e.showActions,maskType:se.Series,imageFallbackType:te.SeriesThumbnail,hideBadges:!0,isPlugin:e.commonVideoProps.isPlugin,getVideoAppLink:e.appLinks.getVideoAppLink,getCollectionActions:e.appLinks.getCollectionActions})})}function Ps(e){return s.jsx(P,{as:"li",sm:6,md:e.useLargeStyle?6:4,lg:e.useLargeStyle?4:3,children:s.jsx("div",{className:"position-relative px-1 mb-2",children:s.jsx(Ve,{data:e.item,getChildAppLink:e.appLinks.getClassificationAppLink,getChildAppLinkOptions:()=>{var t,i;return(i=(t=e.appLinks).getClassificationAppLinkOptions)==null?void 0:i.call(t,e.item)},availablePresentations:e.availablePresentations,analyticsData:{itemIndex:e.itemIndex,search:{query:e.queryParams.query,score:e.item._score,maxScore:e.item._maxScore,featured:e.item._featured},pagePositionIndex:0},isLarge:e.useLargeStyle,highlightOnHover:e.commonVideoProps.showNewVideoIndicator})})})}function vs(e){function t(a){return $.isClip(a)?Ne:$.isInteractive(a)?Oe:D}const i=t(e.item);return s.jsx("div",{className:`position-relative ${q.videoList}`,children:s.jsx(i,{video:e.item,getVideoAppLink:e.appLinks.getVideoAppLink,getPreviewQuestionsAppLink:e.appLinks.getPreviewQuestionsAppLink,presentationAudiences:e.audiences,analyticsData:{search:{query:e.queryParams.query,score:e.item._score,maxScore:e.item._maxScore,featured:e.item._featured},pagePositionIndex:e.pagePositionIndex},hasPermissions:e.hasPermissions,commonVideoProps:e.commonVideoProps})})}const Cs="shared.mixedSearchResults",Vs=8,Is=H.memo(function(e){var c,l,r,u,h,m;const t=N(),i=t.xs||t.sm;if(!((c=e.results)!=null&&c.length)&&!((l=e.topics)!=null&&l.totalResults)&&!((r=e.companies)!=null&&r.totalResults))return s.jsx(s.Fragment,{});const a=[...((u=e.companies)==null?void 0:u.results)??[],...((h=e.topics)==null?void 0:h.results)??[]],n={useLargeStyle:a.length<4,...e};return s.jsxs("div",{className:"position-relative",children:[s.jsx("p",{role:"status",className:"visually-hidden",children:s.jsx(x,{namespace:Cs,phrase:"ariaSearch"})}),!!a.length&&s.jsx(G,{as:"ul",className:"list-unstyled g-0 pb-3 mx-n1",children:a.slice(0,Vs).map((d,o)=>{switch(d.type.toLowerCase()){case"company":return s.jsx(ss,{item:d,itemIndex:o,...n},o);case"subject":return s.jsx(Ps,{item:d,itemIndex:o,...n},o)}})}),(m=e.results)==null?void 0:m.map((d,o)=>{var p,g;const y=a.length?o+1:o;if("isExchangeVideoGroup"in d&&d.isExchangeVideoGroup)return s.jsx(is,{item:d,pagePositionIndex:y,...n},o);switch((p=d.type)==null?void 0:p.toLowerCase()){case"interactive":case"clip":case"video":return o===0&&d._featured&&$.isVideo(d)?s.jsx(as,{item:d,pagePositionIndex:y,...n},o):s.jsx(vs,{item:d,pagePositionIndex:y,...n},o);case"playlist":return i?s.jsx(Ss,{item:d,pagePositionIndex:y,...n},o):s.jsx(ds,{item:d,pagePositionIndex:y,...n},o);case"series":return i||!((g=d.tallPoster)!=null&&g.id)?s.jsx(As,{item:d,pagePositionIndex:y,...n},o):s.jsx(gs,{item:d,pagePositionIndex:y,...n},o)}})]})}),U="search.searchSubstitute";function Ns(e){return e.substitute?s.jsxs("div",{className:"pb-3",children:[s.jsxs("p",{className:"mb-1 h6",children:[s.jsx(x,{namespace:U,phrase:"showingFor"})," ",s.jsx(f,{className:"info-link",appLink:e.getAppLink(e.substitute,e.queryParams),appLinkOptions:{replace:!0},children:e.substitute})]}),s.jsxs("p",{className:"mb-0 h6 fw-normal",children:[s.jsx(x,{namespace:U,phrase:"searchInsteadFor"}),s.jsx(f,{className:"info-link",appLink:e.getAppLink(e.queryParams.query,{...e.queryParams,allowSubstitute:"false"}),children:e.queryParams.query}),s.jsx(x,{namespace:U,phrase:"endOriginal"})]})]}):s.jsx(s.Fragment,{})}const Os="search.searchSuggestions";ae.defaultProps={suggestions:[],queryParams:{}};function ae(e){var t;return(t=e.suggestions)!=null&&t.length?s.jsxs("div",{className:"d-flex align-items-center mb-3",children:[s.jsx(x,{namespace:Os,phrase:"didYouMean"})," ",e.suggestions.map((i,a)=>s.jsxs(H.Fragment,{children:[a!==0&&s.jsx("span",{className:"mx-1",children:"•"}),s.jsx(f,{className:"info-link",appLink:e.getAppLink(i,e.queryParams),appLinkOptions:{replace:!0},children:i})]},`${i}:${a}`))]}):s.jsx(s.Fragment,{})}const _s={search(e,t,i={},a,n,c){let l=`search:${e}:${t}:${a}`;l+=Object.keys(i).map(u=>i[u]).join(";");const r=Object.assign({},{index:t,cursor:a??void 0,query:e,...i});return{url:A.urlBuilder("{gateway}/v1/search",r),publicUrl:A.urlBuilder("/api/search",r),key:l,success:n,error:c}},schoolLevels(e){const t={filterType:"schoolLevels",presentationId:e};return{url:A.urlBuilder("{gateway}/v1/search/filters",t),publicUrl:A.urlBuilder("/api/search/filters",t),key:"school-levels"}}};function Rs(e){return L(e&&_s.schoolLevels([e]))}const Y={video:E.VIDEO_COLLECTION,series:"rating,tallPoster",playlist:"videos[count(),thumbnail]{limit:1},interactives[count(),_thumbnail]{limit:1},clips[count(),_thumbnail]{limit:1}",classification:`cover,thumbnail,tags{tagtype:${Xe.Curation}}`,clip:E.CLIP_COLLECTION,interactive:E.INTERACTIVE_COLLECTION,company:"logo",category:"libraries[_logo],thumbnail"};function K(e){var n,c;let t=e.totalResults;const i=((n=e==null?void 0:e.results)==null?void 0:n.filter(l=>{var r,u,h,m,d,o,y,p;if(l._index!=="series"&&l._index!=="playlist")return!0;if(l._index==="playlist"){const g=l;return(u=(r=g.clips)==null?void 0:r.data)!=null&&u.length||(m=(h=g.interactives)==null?void 0:h.data)!=null&&m.length||(o=(d=g.videos)==null?void 0:d.data)!=null&&o.length?!0:(t--,!1)}return((p=(y=l.videos)==null?void 0:y.data)==null?void 0:p.length)===0?(t--,!1):!0}))??[];e.results=i,e.totalResults=t;const a=(c=i[0])==null?void 0:c._score;return{...e,results:de.mapMaxScoreToSearchResults(i,a)}}function F(e){return Object.entries(e).reduce((t,[,i])=>{let a=i;return typeof i=="object"?a=F(i):["number","boolean","string"].includes(typeof i)&&(a=i.toString()),t.length?`${t},${a}`:a},"")}const w={searchDashboard(e,t,i=[]){const a=i.sort((m,d)=>m.id.localeCompare(d.id)).map(m=>[m.id,m==null?void 0:m.cursor]),n=F(t),c=`search:v5:dashboard:${e}:${a}:${n}`,{[`${O.FILTER_PARAM_PREFIX}indicesFilters`]:l,isLearner:r,...u}=t,h={widgets:i,indices:l,filters:Object.entries(u).reduce((m,[d,o])=>({...m,[d.replace("filters.","")]:o}),{}),query:e,includeAllIndices:!1,isLearner:!!r};return{url:"{gateway}/v5/search/widgets",publicUrl:"/api/search/v5/widgets",type:_.POST,data:h,key:c}},searchDashboardWidget(e,t,i,a=[]){const n=a.sort((o,y)=>o.id.localeCompare(y.id)).map(o=>[o.id,o==null?void 0:o.cursor]),c=F(i),l=`search:v5:dashboard:${e}:widget:${t}:${n}:${c}`,{[`${O.FILTER_PARAM_PREFIX}indicesFilters`]:r,isLearner:u,excludeVideoIds:h,...m}=i,d={widgets:a,indices:r,filters:Object.entries(m).reduce((o,[y,p])=>({...o,[y.replace("filters.","")]:p}),{}),query:t,includeAllIndices:!1,isLearner:!!u,ogql:Y,excludeVideoIds:h};return{url:`{gateway}/v5/search/widgets/${e}`,publicUrl:`/api/search/v5/widgets/${e}`,type:_.POST,data:d,key:l}},searchV5(e,t,i=[]){const a=i.sort((m,d)=>m.id.localeCompare(d.id)).map(m=>[m.id,m==null?void 0:m.cursor]),n=F(t),c=`search:v5:${e}:${a}:${n}`,{[`${O.FILTER_PARAM_PREFIX}indicesFilters`]:l,isLearner:r,...u}=t,h={widgets:i,indices:l,filters:Object.entries(u).reduce((m,[d,o])=>({...m,[d.replace("filters.","")]:o}),{}),query:e,includeAllIndices:!1,isLearner:!!r,ogql:Y};return{url:"{gateway}/v5/search",publicUrl:"/api/search/v5",type:_.POST,data:h,key:c}},searchV4(e){const{query:t,indices:i,filters:a={},sorts:n={},allowSubstitute:c=!0,cursor:l,limit:r}=e;let u=`search:v4:${t}:${c}:${i}:${l}`;u+=Object.keys(a).map(p=>{const g=a[p];return Array.isArray(g)?g.join(";"):g}).join(";");const{[`${O.FILTER_PARAM_PREFIX}excludeLibraryExclusive`]:h,isLearner:m,...d}=a,y={searchType:"content",indices:i.map(p=>p!=="video"||!h?{index:p}:{index:p,filters:{excludeLibraryExclusive:h}}),filters:Object.entries(d).reduce((p,[g,S])=>({...p,[g.replace("filters.","")]:S}),{}),sorts:n,query:t,allowSubstitute:c,cursor:l??void 0,isLearner:!!m,limit:r};return{url:"{gateway}/v4/search",publicUrl:"/api/search/v4",type:_.POST,data:y,key:u,formatData:K}},search(e){const{query:t,indices:i,filters:a,allowSubstitute:n,cursor:c,limit:l,success:r,error:u}=e;let h=`search:${t}:${n}:${i}:${c}`;h+=Object.keys(a).map(d=>{const o=a[d];return Array.isArray(o)?o.join(";"):o}).join(";");const m=Object.assign({},{index:i,cursor:c??void 0,query:t,allowSubstitute:n,limit:l,...a});return{url:A.urlBuilder("{gateway}/v3/search",m),publicUrl:A.urlBuilder("/api/search",m),key:h,formatData:K,success:r,error:u}},tagsAndClassifications(e,t,i={},a,n,c){const l={index:t,cursor:a,query:e,...i};let r=`filter:options:${e}:${t.join(":")}:${a}`;return r+=Object.keys(i).map(u=>{const h=i[u];return Array.isArray(h)?h.join(";"):h}).join(";"),{url:A.urlBuilder("{gateway}/v3/search/tags-and-classifications",l),publicUrl:A.urlBuilder("/api/search/tags-and-classifications",l),key:r,success:n,error:c,normalize:!1}}};function Ts(e,t){const a=B.buildBackendFilterParams(e,null,[t],!1,[])||{};a["filters.presentation"]=t;const n=w.search({query:I.getQuery(e),indices:["company"],filters:a,allowSubstitute:e.allowSubstitute!=="false"});return L(n)}function Fs(e,t){const i=B.buildBackendFilterParams(e,null,[t],!1,[]),a=me.pick(i,["filters.classification","filters.presentation"]);a["filters.classificationType"]=Ye.Subject,a["filters.status"]=Ke.Published,a["filters.presentation"]=t;const c=!B.getAppliedIndices(e).includes("classification"),l=w.search({query:I.getQuery(e),indices:["classification"],filters:a,allowSubstitute:e.allowSubstitute!=="false"}),r=!c,u=L(r&&l);return r?u:null}function $s(e){var g,S,C,V;const t=L(ue.currentUser()),i=L(he.config()),a=L(pe.streamablePresentation()),n=a.data,l=(g=L(ye.streamableLearning()).data)==null?void 0:g.objectId,r=n==null?void 0:n.id,u=L(a.data&&Qe.presentationAudiences(a.data.id,ge.StreamableLearning)),h=Rs((S=a.data)==null?void 0:S.id),m=(V=(C=h.data)==null?void 0:C.schoolLevels)==null?void 0:V.map(ne=>ne.id),d=L(h.data&&ze.topicsFromAllAvailablePresentations(m)),o=Fs(e,r),y=Ts(e,r),p=u.hasCompleted&&t.hasCompleted&&i.hasCompleted;return{queryParams:e,currentUser:t,config:i,audiences:u,schoolLevels:h,availableTopics:d,topics:o,companies:y,currentPresentationId:r,streamableLibraryId:l,hasDataLoaded:p}}const Ds="search.utils";function qs(e){var d,o,y;const{queryParams:t,appliedIndices:i,backendFilters:a}=e,n=xe(),c=fe(),l=Le((d=r())==null?void 0:d.key);function r(p){return e.hasDataLoaded&&!!(i!=null&&i.length)&&w.searchV4({query:t.query,indices:i,filters:a,sorts:{dateReleased:"desc"},allowSubstitute:t.allowSubstitute!=="false",cursor:p})}function u(p){c(r(p))}function h(p,g){if(p===1)return Je(g);n.error(J.getPhrase(Ds,"error"))}const m=Ze(r,u,h,p=>p.results);return{...m,hasFirstPageCompleted:m.hasFirstPageCompleted||!e.hasDataLoaded||!(i!=null&&i.length),fetchNext:u,substituteQuery:(o=l.data)==null?void 0:o.substituteQuery,suggestions:(y=l.data)==null?void 0:y.suggestions}}function ws(e){return L(e&&w.tagsAndClassifications(e.queryParams.query,e.appliedIndices,e.backendFilters))}function Es(e){const[t,i]=je(ke.SHOW_SEARCH_MASK,!0);H.useEffect(()=>{t&&e&&i(!1)},[e])}const Ms="search.searchResultsEmptyState";function Us(e){const t=Se.EmptyStates.SEARCH;return s.jsx(be.Provider,{value:Ms,children:s.jsxs(R,{children:[s.jsx(R.Image,{src:t}),s.jsx(R.Heading,{children:e.query?s.jsx(x,{phrase:"headingWithQuery",options:{query:e.query}}):s.jsx(x,{phrase:"headingWithoutQuery"})}),s.jsxs(R.Info,{children:[s.jsx(x,{phrase:"info"}),s.jsx(f,{className:"info-link",appLink:{application:ee.SUBJECTS,action:Z.Subjects.CLASSIFICATION_ALL},children:s.jsx(x,{phrase:"topicsAppLink"})})]})]})})}const Bs="search.searchResults",Hs=J.encloseNamespace(Bs);function Et(e){var o,y,p,g,S,C,V;const{queryParams:t={}}=e,{commonVideoProps:i}=Me(),a=We(),n=$s(t),c=I.getBackendFilters(n),l=ws(c),r=qs({...c,...n}),u=I.getFilters(n,l);Ae(Pe.getDefaultMetadata({title:t.query??"",phraseContext:{phraseHandler:Hs,titlePhrase:"pageTitle",descriptionPhrase:"pageDescription"},allowIndexing:!1,product:ve.PRODUCT_NAME}));const h=n.hasDataLoaded&&u,m=r.hasFirstPageCompleted&&(!n.topics||n.topics.hasCompleted)&&(!n.companies||n.companies.hasCompleted)&&l.hasCompleted&&!!u,d=((o=r.items)==null?void 0:o.length)||((p=(y=n.topics)==null?void 0:y.data)==null?void 0:p.totalResults)||((S=(g=n.companies)==null?void 0:g.data)==null?void 0:S.totalResults);return Es(m),h?s.jsxs("div",{className:"px-4",children:[s.jsx(Ns,{substitute:r.substituteQuery,queryParams:t,getAppLink:W.search}),!r.substituteQuery&&s.jsx(ae,{suggestions:r.suggestions,queryParams:t,getAppLink:W.search}),!!n.audiences.data&&!!n.availableTopics.data&&s.jsx(He,{queryParams:t,mainFilters:u==null?void 0:u.mainFilters,analyticsOptions:{entity:k.SearchResults,location:b.SearchFilters},appLink:{application:ee.SEARCH,action:Z.Search.HOME},isFetchingOptions:l.isFetching}),m&&s.jsxs("section",{children:[d?s.jsx(_e.Provider,{value:{getVideoActions:a},children:s.jsx(Is,{queryParams:t,results:r.items,topics:(C=n.topics)==null?void 0:C.data,companies:(V=n.companies)==null?void 0:V.data,audiences:!t.moviesAndTv&&n.audiences.data,currentUser:n.currentUser.data,availablePresentations:null,showActions:!0,appLinks:I.getAppLinks(),hasPermissions:()=>!1,commonVideoProps:i})}):s.jsx(Us,{query:t.query}),(r.hasMore||r.isFetching)&&s.jsx(Ge,{isFetching:r.isFetching,fetchNext:r.fetchNext,nextCursor:r.nextCursor,fetchOnScroll:!0})]})]}):s.jsx(s.Fragment,{})}export{Et as SearchResultsView,Bs as namespace};
|
|
2
|
+
//# sourceMappingURL=_8CvUiOV.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_8CvUiOV.chunk.js","sources":["../../../../libs/shared/src/components/widgets/items/subject-widget-item/CompanyWidgetItem.tsx","../../../../libs/shared/src/apps/search/components/mixed-search-results/components/CompanyResult.tsx","../../../../libs/shared/src/apps/search/components/mixed-search-results/components/exchange-video-group/ExchangeVideoGroup.tsx","../../../../libs/shared/src/apps/search/components/mixed-search-results/components/FeaturedVideoResult.tsx","../../../../libs/shared/src/apps/search/components/playlist-with-videos/PlaylistWithVideos.tsx","../../../../libs/shared/src/apps/search/components/mixed-search-results/components/LargePlaylistResults.tsx","../../../../libs/shared/src/apps/search/components/series-with-videos/SeriesWithVideos.tsx","../../../../libs/shared/src/apps/search/components/mixed-search-results/components/LargeSeriesResult.tsx","../../../../libs/shared/src/apps/search/components/collection-video-list/CollectionVideoList.tsx","../../../../libs/shared/src/apps/search/components/collection-thumbnail/CollectionThumbnail.tsx","../../../../libs/shared/src/apps/search/components/mixed-search-results/components/SmallPlaylistResult.tsx","../../../../libs/shared/src/apps/search/components/mixed-search-results/components/SmallSeriesResults.tsx","../../../../libs/shared/src/apps/search/components/mixed-search-results/components/SubjectResult.tsx","../../../../libs/shared/src/apps/search/components/mixed-search-results/components/VideoResult.tsx","../../../../libs/shared/src/apps/search/components/mixed-search-results/MixedSearchResults.tsx","../../../../libs/shared/src/apps/search/components/search-substitute/SearchSubstitute.tsx","../../../../libs/shared/src/apps/search/components/search-suggestions/SearchSuggestions.tsx","../../src/apps/search/flight-requests/SearchRequests.ts","../../src/apps/search/hooks/useFetchSchoolLevels.ts","../../../../libs/shared/src/apps/search/constants/SearchOGQL.ts","../../../../libs/shared/src/apps/search/flight-requests/SharedSearchRequests.ts","../../src/apps/search/hooks/useSearchCompanies.ts","../../src/apps/search/hooks/useSearchTopics.ts","../../src/apps/search/hooks/useFetchSearchData.tsx","../../src/apps/search/hooks/useGetSearchResults.tsx","../../src/apps/search/hooks/useGetTagsAndClassifications.tsx","../../src/apps/search/hooks/useSearchMask.tsx","../../src/apps/search/views/search-results/empty-state/SearchResultsEmptyState.tsx","../../src/apps/search/views/search-results/SearchResultsView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { ClickDescriptor, EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { CoverPillWidgetContentWrapper, CoverPillWidgetItemProps } from 'libs/shared/components/widgets/items/subject-widget-item/CoverPill';\nimport { Company } from 'libs/shared/interfaces';\n\nexport function CompanyWidgetItem(props: CoverPillWidgetItemProps<Company>): JSX.Element {\n const analyticsData = {\n ...props.analyticsData,\n id: props.data?.id,\n name: props.data?.name\n };\n\n const analyticsOptions = {\n location: LocationContext.ClassificationListItem,\n ...props.analyticsOptions,\n actionType: UserAction.Click,\n entity: EntityType.Company,\n descriptor: ClickDescriptor.Cover\n };\n\n return (\n <CoverPillWidgetContentWrapper\n {...props}\n analyticsData={analyticsData}\n analyticsOptions={analyticsOptions}\n coverUrl={props.data.logo?.url}\n coverBgColor={props.data.metadata?.colour}\n />\n );\n}","import React from 'react';\nimport { Col } from 'react-bootstrap';\n\nimport { CompanyWidgetItem } from 'libs/shared/components/widgets/items/subject-widget-item/CompanyWidgetItem';\nimport { Company } from 'libs/shared/interfaces';\n\nimport { MixedSearchResultItemProps } from './MixedSearchResultItemProps';\n\nexport function CompanyResult(props: MixedSearchResultItemProps<Company>): JSX.Element {\n return (\n <Col as='li' sm={6} md={props.useLargeStyle ? 6 : 4} lg={props.useLargeStyle ? 4 : 3}>\n <div className={`position-relative px-1 mb-2`}>\n <CompanyWidgetItem\n data={props.item}\n getChildAppLink={props.appLinks.getCompanyAppLink}\n getChildAppLinkOptions={() => props.appLinks.getCompanyAppLinkOptions?.(props.item)}\n analyticsData={{\n itemIndex: props.itemIndex,\n search: {\n query: props.queryParams.query,\n score: props.item._score,\n maxScore: props.item._maxScore,\n featured: props.item._featured\n },\n pagePositionIndex: 0\n }}\n isLarge={props.useLargeStyle}\n />\n </div>\n </Col>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\n\nimport { ClickDescriptor, EntityType, HashObject, LocationContext, SearchSourceDescriptor, UserAction } from 'libs/analytics/interfaces';\n\nimport { SourceFilterOptions } from 'libs/shared/apps/search/interfaces';\nimport { ExchangeVideoGroup } from 'libs/shared/apps/search/interfaces/SearchResults';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { VideoItem } from 'libs/shared/components/video-list/video-item/VideoItem';\n\nimport { MixedSearchResultItemProps } from './../MixedSearchResultItemProps';\n\nimport styles from '../../mixed-search-results.module.scss';\n\nconst namespace = 'search.exchangeVideoGroup';\n\nconst EXCHANGE_RESULT_DISPLAY_LIMIT = 3;\n\nexport function ExchangeVideoGroup(props: MixedSearchResultItemProps<ExchangeVideoGroup>): JSX.Element {\n const limit = props.item.showCount >= EXCHANGE_RESULT_DISPLAY_LIMIT\n ? EXCHANGE_RESULT_DISPLAY_LIMIT\n : props.item.showCount;\n\n function getContainerClassName(): string {\n if (props.pagePositionIndex === 0)\n return 'border-bottom pb-1 mb-3';\n\n return 'border-top border-bottom pt-3 mt-2 pb-1 mb-3';\n }\n\n const currentAppLink = Core.AppLinkHelper.getCurrentAppLink();\n const currentParams = (currentAppLink.params as HashObject) ?? {};\n let currentSource = currentParams?.source ?? [];\n\n if (currentSource && !Array.isArray(currentSource))\n currentSource = [currentSource];\n\n const searchAppLink = {\n ...currentAppLink,\n params: {\n ...currentParams,\n source: [ ...(currentSource), SourceFilterOptions.ExchangeArchive ]\n }\n };\n\n const analyticsData = {\n query: props.queryParams.query,\n itemIndex: props.itemIndex,\n pagePositionIndex: props.pagePositionIndex\n };\n const analyticsOptions = {\n entity: EntityType.SearchResults,\n location: LocationContext.ExchangeSearchGroupItem,\n actionType: UserAction.Click,\n descriptor: SearchSourceDescriptor.ExchangeArchive\n };\n\n return (\n <div className={getContainerClassName()}>\n <AppLink\n appLink={searchAppLink}\n analyticsData={analyticsData}\n analyticsOptions={analyticsOptions}\n >\n <h2 className='h4'>\n <Text namespace={namespace} phrase='heading' />\n </h2>\n </AppLink>\n <p>\n <Text namespace={namespace} phrase='message' />\n \n <AppLink\n appLink={props.appLinks.searchSettings}\n className='text-info'\n analyticsData={analyticsData}\n analyticsOptions={{\n ...analyticsOptions,\n descriptor: ClickDescriptor.Settings\n }}\n >\n <Text namespace={namespace} phrase='searchSettings' />\n </AppLink>\n .\n </p>\n\n <div className={`position-relative ${styles.videoList}`}>\n {props.item.videos.slice(0, limit).map((v, i) => {\n return (\n <VideoItem\n key={i}\n video={v}\n getVideoAppLink={props.appLinks.getVideoAppLink}\n presentationAudiences={props.audiences}\n analyticsData= {{\n search: {\n query: props.queryParams.query,\n score: v._score,\n maxScore: v._maxScore,\n featured: v._featured\n },\n pagePositionIndex: props.pagePositionIndex\n }}\n hasPermissions={props.hasPermissions}\n commonVideoProps={props.commonVideoProps}\n />\n );\n })}\n </div>\n <div className='text-center py-2'>\n <AppLink\n className='text-secondary'\n appLink={searchAppLink}\n analyticsData={analyticsData}\n analyticsOptions={analyticsOptions}\n >\n <Text namespace={namespace} phrase='seeMore' />\n </AppLink>\n </div>\n </div>\n );\n}","import React from 'react';\n\nimport { HeroVideo } from 'libs/shared/apps/subjects/components/hero-video/HeroVideo';\nimport { Video } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { MixedSearchResultItemProps } from './MixedSearchResultItemProps';\n\nexport function FeaturedVideoResult(props: MixedSearchResultItemProps<Video>): JSX.Element {\n return (\n <div className='pb-3'>\n <HeroVideo\n video={props.item}\n presentationAudiences={props.audiences}\n getVideoAppLink={(v, opts) => props.appLinks.getVideoAppLink(v, opts)}\n analyticsData={{\n search: {\n query: props.queryParams.query,\n score: props.item._score,\n maxScore: props.item._maxScore,\n featured: props.item._featured\n },\n pagePositionIndex: props.pagePositionIndex\n }}\n hideInteractiveBadge\n showVideoGuidance={VideoHelper.showVideoGuidance(props.hasPermissions)}\n commonVideoProps={props.commonVideoProps}\n />\n </div>\n );\n}","import React from 'react';\nimport { Col, Row } from 'react-bootstrap';\n\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsOptions, ClickDescriptor, EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { PlaylistItem } from 'libs/shared/apps/playlists/components/playlist-list';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { VideoItem } from 'libs/shared/components/video-list/video-item/VideoItem';\nimport { BG_COLOUR_CLASS_NAMES } from 'libs/shared/constants/ColourClassNames';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { HasPermissionsFunc } from 'libs/shared/hooks/usePermissions';\nimport { CurrentUser, Playlist, PresentationAudience, Video } from 'libs/shared/interfaces';\nimport { CommonVideoProps } from 'libs/shared/interfaces/CommonVideoProps';\nimport { GetVideoAppLinkOptions } from 'libs/shared/interfaces/VideoAppLinkOptions';\n\nimport styles from './playlist-with-videos.module.scss';\n\nconst namespace = 'search.playlistWithVideos';\n\nfunction useGetMaxVideos(): number {\n const breakpoints = useBreakpoints();\n\n if (breakpoints.xl || breakpoints.xxl)\n return 3;\n \n return 2;\n}\n\ninterface PlaylistWithVideoProps {\n playlist: Playlist;\n playlistAppLink: Core.AppLink;\n presentationAudiences: PresentationAudience[];\n preloadImage: boolean;\n analyticsData: HashObject;\n currentUser: CurrentUser;\n getVideoAppLink: (video: Video, opts: GetVideoAppLinkOptions) => Core.AppLink;\n hasPermissions: HasPermissionsFunc;\n commonVideoProps: CommonVideoProps;\n}\n\nexport function PlaylistWithVideos(props: PlaylistWithVideoProps): JSX.Element {\n const maxVideos = useGetMaxVideos();\n\n const videos = props.playlist.videos.data.slice(0, maxVideos);\n\n const playlistAnalyticsOption: AnalyticsOptions = {\n actionType: UserAction.Click,\n entity: EntityType.Playlist,\n location: LocationContext.PlaylistWithVideos\n };\n\n const playlistAnalyticsData: HashObject = {\n ...props.analyticsData,\n id: props.playlist.id,\n name: props.playlist.name\n };\n\n return (\n <div className='ps-2 py-2'>\n <Row className='g-0 border rounded-3'>\n <Col xs={4} lg={3} className='pe-3'>\n <PlaylistItem\n appLink={props.playlistAppLink}\n analyticsData={props.analyticsData}\n analyticsOptions={{\n ...playlistAnalyticsOption,\n descriptor: ClickDescriptor.Cover\n }}\n data={props.playlist}\n presentationAudiences={props.presentationAudiences}\n bgColourClassNames={BG_COLOUR_CLASS_NAMES}\n itemStyle='round-left'\n imageCdnUrl={props.commonVideoProps.imageCdnUrl}\n currentUser={props.currentUser}\n showCount={false}\n showOwner\n />\n </Col>\n <Col xs={8} lg={9}>\n <div className='d-flex justify-content-between'>\n <div className={`pt-3 mb-n2 ${styles.videoList}`}>\n {videos?.map(video => {\n const videoAnalyticsData: HashObject = {\n ...playlistAnalyticsData,\n videoId: video.id,\n videoName: video.name\n };\n\n return (\n <div key={video.id} className='mb-2'>\n <VideoItem\n video={video}\n getVideoAppLink={props.getVideoAppLink}\n analyticsData={videoAnalyticsData}\n analyticsOptions={{\n entity: EntityType.Video,\n location: LocationContext.PlaylistWithVideos\n }}\n size='sm'\n hasPermissions={props.hasPermissions}\n hideVideoGuidance\n commonVideoProps={props.commonVideoProps}\n />\n </div>\n );\n })}\n </div>\n <div className='text-end pt-3 pe-3'>\n <AppLink\n className='info-link fw-semibold'\n appLink={props.playlistAppLink}\n analyticsData={playlistAnalyticsData}\n analyticsOptions={{\n ...playlistAnalyticsOption,\n descriptor: ClickDescriptor.Link\n }}\n >\n <Text namespace={namespace} phrase='seeAllVideos' />\n </AppLink>\n </div>\n </div>\n </Col>\n </Row>\n </div>\n );\n}","import React from 'react';\n\nimport { Playlist } from 'libs/shared/interfaces';\n\nimport { PlaylistWithVideos } from '../../playlist-with-videos/PlaylistWithVideos';\n\nimport { MixedSearchResultItemProps } from './MixedSearchResultItemProps';\n\nexport function LargePlaylistResult(props: MixedSearchResultItemProps<Playlist>): JSX.Element {\n return (\n <div className='mx-n2'>\n <PlaylistWithVideos\n playlist={props.item}\n playlistAppLink={props.appLinks.getPlaylistAppLink(props.item)}\n presentationAudiences={props.audiences}\n analyticsData={{\n search: {\n query: props.queryParams.query,\n score: props.item._score,\n maxScore: props.item._maxScore,\n featured: props.item._featured\n },\n pagePositionIndex: props.pagePositionIndex\n }}\n currentUser={props.currentUser}\n preloadImage\n getVideoAppLink={props.appLinks.getVideoAppLink}\n hasPermissions={props.hasPermissions}\n commonVideoProps={props.commonVideoProps}\n />\n </div>\n );\n}","import React from 'react';\nimport { Col, Row } from 'react-bootstrap';\n\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsOptions, ClickDescriptor, EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SeriesTallPoster } from 'libs/shared/components/series-tall-poster/SeriesTallPoster';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { VideoItem } from 'libs/shared/components/video-list/video-item/VideoItem';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { HasPermissionsFunc } from 'libs/shared/hooks/usePermissions';\nimport { PresentationAudience, Series, Video } from 'libs/shared/interfaces';\nimport { CommonVideoProps } from 'libs/shared/interfaces/CommonVideoProps';\nimport { GetVideoAppLinkOptions } from 'libs/shared/interfaces/VideoAppLinkOptions';\n\nimport styles from './series-with-videos.module.scss';\n\nconst namespace = 'search.seriesWithVideos';\n\nfunction useGetMaxVideos(): number {\n const breakpoints = useBreakpoints();\n\n if (breakpoints.xl || breakpoints.xxl)\n return 5;\n \n if (breakpoints.lg || breakpoints.md)\n return 4;\n\n return 3;\n}\n\ninterface SeriesWithVideoProps {\n series: Series;\n seriesAppLink: Core.AppLink;\n presentationAudiences: PresentationAudience[];\n preloadImage: boolean;\n analyticsData: HashObject;\n getVideoAppLink: (video: Video, opts: GetVideoAppLinkOptions) => Core.AppLink;\n hasPermissions: HasPermissionsFunc;\n commonVideoProps: CommonVideoProps;\n}\n\nexport function SeriesWithVideos(props: SeriesWithVideoProps): JSX.Element {\n const maxVideos = useGetMaxVideos();\n\n const videos = props.series.videos.data.slice(0, maxVideos);\n\n const seriesAnalyticsOption: AnalyticsOptions = {\n actionType: UserAction.Click,\n entity: EntityType.Series,\n location: LocationContext.SeriesWithVideos\n };\n\n const seriesAnalyticsData: HashObject = {\n ...props.analyticsData,\n id: props.series.id,\n name: props.series.name\n };\n\n return (\n <div className='ps-2 py-2'>\n <Row className='g-0 border rounded-3'>\n <Col xs={4} lg={3} className='pe-3'>\n <AppLink\n appLink={props.seriesAppLink}\n className='position-relative'\n analyticsData={seriesAnalyticsData}\n analyticsOptions={{\n ...seriesAnalyticsOption,\n descriptor: ClickDescriptor.TallPoster\n }}\n >\n <SeriesTallPoster\n series={props.series}\n presentationAudiences={props.presentationAudiences}\n preloadImage={props.preloadImage}\n imageClass='rounded-start-lg'\n />\n </AppLink>\n </Col>\n <Col xs={8} lg={9}>\n <div className='d-flex justify-content-between'>\n <div className={`pt-3 mb-n2 ${styles.videoList}`}>\n {videos?.map(video => {\n const videoAnalyticsData: HashObject = {\n ...seriesAnalyticsData,\n videoId: video.id,\n videoName: video.name\n };\n\n // insert parent series into video object\n video = {\n ...video,\n series: props.series\n };\n\n return (\n <div key={video.id} className='mb-2'>\n <VideoItem\n video={video}\n getVideoAppLink={props.getVideoAppLink}\n analyticsData={videoAnalyticsData}\n analyticsOptions={{\n entity: EntityType.Video,\n location: LocationContext.SeriesWithVideos\n }}\n size='sm'\n hasPermissions={props.hasPermissions}\n hideVideoGuidance\n commonVideoProps={props.commonVideoProps}\n />\n </div>\n );\n })}\n </div>\n <div className='text-end pt-3 pe-3'>\n <AppLink\n className='info-link fw-semibold'\n appLink={props.seriesAppLink}\n analyticsData={seriesAnalyticsData}\n analyticsOptions={{\n ...seriesAnalyticsOption,\n descriptor: ClickDescriptor.Link\n }}\n >\n <Text namespace={namespace} phrase='seeAllVideos' />\n </AppLink>\n </div>\n </div>\n </Col>\n </Row>\n </div>\n );\n}","import React from 'react';\n\nimport { Series } from 'libs/shared/interfaces';\n\nimport { SeriesWithVideos } from '../../series-with-videos/SeriesWithVideos';\n\nimport { MixedSearchResultItemProps } from './MixedSearchResultItemProps';\n\nexport function LargeSeriesResult(props: MixedSearchResultItemProps<Series>): JSX.Element {\n return (\n <div className='mx-n2'>\n <SeriesWithVideos\n presentationAudiences={props.audiences}\n series={props.item}\n seriesAppLink={props.appLinks.getSeriesAppLink(props.item)}\n getVideoAppLink={props.appLinks.getVideoAppLink}\n analyticsData={{\n search: {\n query: props.queryParams.query,\n score: props.item._score,\n maxScore: props.item._maxScore,\n featured: props.item._featured\n },\n pagePositionIndex: props.pagePositionIndex\n }}\n preloadImage\n hasPermissions={props.hasPermissions}\n commonVideoProps={props.commonVideoProps}\n />\n </div>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { AnalyticsOptions, HashObject } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { SeasonEpisode } from 'libs/shared/components/video-sub-text/VideoSubText';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { Video } from 'libs/shared/interfaces';\n\nconst namespace = 'search.collectionVideoList';\n\ninterface CollectionVideoListProps {\n videos: Video[];\n collectionId: string;\n appLink: Core.AppLink;\n analyticsOptions: AnalyticsOptions;\n analyticsData?: HashObject;\n getVideoAppLink: (video: Video) => Core.AppLink;\n}\n\nfunction useGetMaxVideos(): number {\n const breakpoints = useBreakpoints();\n\n if (breakpoints.xs)\n return 2;\n\n if (breakpoints.sm)\n return 1;\n\n return 3;\n}\n\nexport function CollectionVideoList(props: CollectionVideoListProps): JSX.Element {\n const maxVideos = useGetMaxVideos();\n\n const analyticsProps = {\n analyticsData: props.analyticsData,\n analyticsOptions: props.analyticsOptions\n };\n\n return (\n <>\n <ul className='list-unstyled my-1'>\n {props.videos.slice(0, maxVideos).map(v => {\n const hasSeasonEpisode = !!v.episodeNumber && !!v.season?.id;\n\n return (\n <li key={`${props.collectionId}:${v.id}`} className='d-flex align-items-center'>\n <AppLink\n {...analyticsProps}\n className='clamp-1'\n appLink={props.getVideoAppLink(v)}\n >\n {hasSeasonEpisode && <><SeasonEpisode video={v} /> </>}\n {v.name}\n </AppLink>\n </li>\n );\n })}\n </ul>\n\n <AppLink\n {...analyticsProps}\n className='info-link'\n appLink={props.appLink}\n >\n <Text namespace={namespace} phrase='seeAll' />\n </AppLink>\n </>\n );\n}","import React from 'react';\nimport { Col } from 'react-bootstrap';\n\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsOptions, ClickDescriptor } from 'libs/analytics/interfaces';\n\nimport { CollectionVideoList } from 'libs/shared/apps/search/components/collection-video-list/CollectionVideoList';\nimport { ActionOptions, Actions as ActionsComponent } from 'libs/shared/components/actions/Actions';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Badge, BadgeType } from 'libs/shared/components/badges/Badge';\nimport { BadgeListContainer } from 'libs/shared/components/badges/BadgeListContainer';\nimport { BaseImage } from 'libs/shared/components/image/BaseImage';\nimport { ImageFallback, ImageFallbackType } from 'libs/shared/components/image/ImageFallback';\nimport { Mask, MaskType } from 'libs/shared/components/mask/Mask';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { VideoListHelper } from 'libs/shared/components/video-list/VideoListHelper';\nimport { ImageType } from 'libs/shared/enums/Images';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { Playlist, Series, Video } from 'libs/shared/interfaces';\nimport { GetVideoAppLinkOptions } from 'libs/shared/interfaces/VideoAppLinkOptions';\nimport { SeriesHelper } from 'libs/shared/utils/SeriesHelper';\n\nimport styles from './collection-thumbnail.module.scss';\n\nconst namespace = 'search.collectionThumbnail';\n\n\nexport type GetCollectionActions = (\n collection: Collection,\n showActions: boolean,\n collectionType: CollectionType,\n baseAnalyticsOptions: AnalyticsOptions\n) => ActionOptions[]\n\ntype Collection = Series | Playlist;\ntype CollectionType = 'series' | 'playlist';\n\ninterface CollectionThumbnailProps {\n collection: Collection;\n collectionType: CollectionType;\n appLink: Core.AppLink;\n showActions: boolean;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n maskType?: MaskType;\n imageFallbackType?: ImageFallbackType;\n hideBadges?: boolean;\n isPlugin: boolean;\n getCollectionActions: GetCollectionActions;\n getVideoAppLink: (video: Video, opts?: GetVideoAppLinkOptions) => Core.AppLink;\n}\n\nexport function CollectionThumbnail(props: CollectionThumbnailProps): JSX.Element {\n const breakpoints = useBreakpoints();\n const size = VideoListHelper.getSize(breakpoints, 'md');\n const isSmall = size === 'sm';\n\n const hasVideos = !!props.collection.videos?.data?.length;\n\n const firstVideoWithThumbnail = hasVideos && props.collection.videos.data.find(v => !!v.thumbnail?.url);\n\n function getAnalyticsData(): HashObject {\n const data: HashObject = {\n ...props.analyticsData,\n id: props.collection.id,\n name: props.collection.name\n };\n\n if (firstVideoWithThumbnail) {\n data.videoId = firstVideoWithThumbnail.id;\n data.videoName = firstVideoWithThumbnail.name;\n }\n\n return data;\n }\n\n const analyticsData = getAnalyticsData();\n const isSeries = props.collectionType === 'series';\n\n return (\n <div className={`row g-0 ${isSmall ? '' : 'py-2'}`}>\n <Col {...VideoListHelper.getThumbnailColumns()} className={`flex-column align-items-flex-start ${isSmall ? `pb-2 pe-2` : 'mb-1 px-2'}`}>\n <div className={`position-relative overflow-hidden ${isSmall ? 'rounded' : 'rounded-3'}`}>\n <BaseImage\n data={firstVideoWithThumbnail?.thumbnail}\n appLink={props.appLink}\n imageType={ImageType.Thumbnails}\n analyticsData={analyticsData}\n analyticsOptions={{\n ...props.analyticsOptions,\n descriptor: ClickDescriptor.Thumbnail\n }}\n >\n <Mask type={props.maskType} />\n <ImageFallback type={props.imageFallbackType} />\n \n <div className={`d-flex flex-column align-items-center justify-content-center text-white h-100 ${styles.overlay}`}>\n <Text namespace={namespace} phrase='seeAll' />\n </div>\n </BaseImage>\n </div>\n </Col>\n\n <Col {...VideoListHelper.getDetailsColumns()} className={isSmall ? 'pb-2' : 'px-2'}>\n {!props.isPlugin &&\n <ActionsComponent\n actions={props.getCollectionActions(\n props.collection,\n props.showActions,\n props.collectionType,\n props.analyticsOptions\n )}\n className='float-end mt-n1'\n actionsDropdownClassName='btn btn-link ms-1'\n />\n }\n\n <AppLink\n appLink={props.appLink}\n analyticsData={analyticsData}\n analyticsOptions={{\n ...props.analyticsOptions,\n descriptor: ClickDescriptor.Title\n }}\n >\n <h5 className='m-0 mb-1'><span className='clamp-1'>{props.collection.name}</span></h5>\n </AppLink>\n\n {isSeries && !props.hideBadges && (\n <BadgeListContainer>\n <Badge type={BadgeType.Rating} data={SeriesHelper.getRating((props.collection as Series))} />\n <Badge type={BadgeType.ProductionYear} data={(props.collection as Series).metadata?.year} />\n </BadgeListContainer>\n )}\n \n {hasVideos && (\n <CollectionVideoList\n collectionId={props.collection.id}\n videos={props.collection.videos.data}\n appLink={props.appLink}\n analyticsData={analyticsData}\n analyticsOptions={{\n ...props.analyticsOptions,\n descriptor: ClickDescriptor.Link\n }}\n getVideoAppLink={props.getVideoAppLink}\n />\n )}\n </Col>\n </div>\n );\n}","import React from 'react';\n\nimport { EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { ImageFallbackType } from 'libs/shared/components/image/ImageFallback';\nimport { MaskType } from 'libs/shared/components/mask/Mask';\nimport { Playlist } from 'libs/shared/interfaces';\n\nimport { CollectionThumbnail } from '../../collection-thumbnail/CollectionThumbnail';\n\nimport { MixedSearchResultItemProps } from './MixedSearchResultItemProps';\n\nimport styles from '../mixed-search-results.module.scss';\n\nexport function SmallPlaylistResult(props: MixedSearchResultItemProps<Playlist>): JSX.Element {\n return (\n <div className={`position-relative ${styles.videoList}`}>\n <CollectionThumbnail\n analyticsData={{\n search: {\n query: props.queryParams.query,\n score: props.item._score,\n maxScore: props.item._maxScore,\n featured: props.item._featured\n },\n pagePositionIndex: props.pagePositionIndex\n }}\n analyticsOptions={{\n entity: EntityType.Playlist,\n actionType: UserAction.Click,\n location: LocationContext.PlaylistListItem\n }}\n appLink={props.appLinks.getPlaylistAppLink(props.item)}\n showActions={props.showActions}\n collection={props.item}\n collectionType='playlist'\n maskType={MaskType.Playlist}\n imageFallbackType={ImageFallbackType.PlaylistThumbnail}\n isPlugin={props.commonVideoProps.isPlugin}\n getVideoAppLink={props.appLinks.getVideoAppLink}\n getCollectionActions={props.appLinks.getCollectionActions}\n />\n </div>\n );\n}","import React from 'react';\n\nimport { EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { ImageFallbackType } from 'libs/shared/components/image/ImageFallback';\nimport { MaskType } from 'libs/shared/components/mask/Mask';\nimport { Series } from 'libs/shared/interfaces';\n\nimport { CollectionThumbnail } from '../../collection-thumbnail/CollectionThumbnail';\n\nimport { MixedSearchResultItemProps } from './MixedSearchResultItemProps';\n\nimport styles from '../mixed-search-results.module.scss';\n\nexport function SmallSeriesResult(props: MixedSearchResultItemProps<Series>): JSX.Element {\n return (\n <div className={`position-relative ${styles.videoList}`}>\n <CollectionThumbnail\n analyticsData={{\n search: {\n query: props.queryParams.query,\n score: props.item._score,\n maxScore: props.item._maxScore,\n featured: props.item._featured\n },\n pagePositionIndex: props.pagePositionIndex\n }}\n analyticsOptions={{\n entity: EntityType.Series,\n actionType: UserAction.Click,\n location: LocationContext.SeriesListItem\n }}\n appLink={props.appLinks.getSeriesAppLink(props.item)}\n collectionType='series'\n collection={props.item}\n showActions={props.showActions}\n maskType={MaskType.Series}\n imageFallbackType={ImageFallbackType.SeriesThumbnail}\n hideBadges\n isPlugin={props.commonVideoProps.isPlugin}\n getVideoAppLink={props.appLinks.getVideoAppLink}\n getCollectionActions={props.appLinks.getCollectionActions}\n />\n </div>\n );\n}","import React from 'react';\nimport { Col } from 'react-bootstrap';\n\nimport { SubjectWidgetItem } from 'libs/shared/components/widgets/items/subject-widget-item';\nimport { Classification } from 'libs/shared/interfaces';\n\nimport { MixedSearchResultItemProps } from './MixedSearchResultItemProps';\n\nexport function SubjectResult(props: MixedSearchResultItemProps<Classification>): JSX.Element {\n return (\n <Col as='li' sm={6} md={props.useLargeStyle ? 6 : 4} lg={props.useLargeStyle ? 4 : 3}>\n <div className={`position-relative px-1 mb-2`}>\n <SubjectWidgetItem\n data={props.item}\n getChildAppLink={props.appLinks.getClassificationAppLink}\n getChildAppLinkOptions={\n () => props.appLinks.getClassificationAppLinkOptions?.(props.item)\n }\n availablePresentations={props.availablePresentations}\n analyticsData={{\n itemIndex: props.itemIndex,\n search: {\n query: props.queryParams.query,\n score: props.item._score,\n maxScore: props.item._maxScore,\n featured: props.item._featured\n },\n pagePositionIndex: 0\n }}\n isLarge={props.useLargeStyle}\n highlightOnHover={props.commonVideoProps.showNewVideoIndicator}\n />\n </div>\n </Col>\n );\n}","import React from 'react';\n\nimport { ClipItem, ClipItemProps } from 'libs/shared/components/video-list/clip-item/ClipItem';\nimport { InteractiveItem, InteractiveItemProps } from 'libs/shared/components/video-list/interactive-item/InteractiveItem';\nimport { VideoItem, VideoItemProps } from 'libs/shared/components/video-list/video-item/VideoItem';\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { MixedSearchResultItemProps } from './MixedSearchResultItemProps';\n\nimport styles from '../mixed-search-results.module.scss';\n\nexport function VideoResult(props: MixedSearchResultItemProps<VideoTypes>): JSX.Element {\n function getItemComponent(\n video: VideoTypes\n ): (props: ClipItemProps | InteractiveItemProps | VideoItemProps) => JSX.Element {\n if (VideoHelper.isClip(video))\n return ClipItem;\n \n if (VideoHelper.isInteractive(video))\n return InteractiveItem;\n \n return VideoItem;\n }\n\n const Component = getItemComponent(props.item);\n\n return (\n <div className={`position-relative ${styles.videoList}`}>\n <Component\n video={props.item}\n getVideoAppLink={props.appLinks.getVideoAppLink}\n getPreviewQuestionsAppLink={props.appLinks.getPreviewQuestionsAppLink}\n presentationAudiences={props.audiences}\n analyticsData= {{\n search: {\n query: props.queryParams.query,\n score: props.item._score,\n maxScore: props.item._maxScore,\n featured: props.item._featured\n },\n pagePositionIndex: props.pagePositionIndex\n }}\n hasPermissions={props.hasPermissions}\n commonVideoProps={props.commonVideoProps}\n />\n </div>\n );\n}","import React from 'react';\nimport { Row } from 'react-bootstrap';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { Text } from 'libs/shared/components/text/Text';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { HasPermissionsFunc } from 'libs/shared/hooks/usePermissions';\nimport { Classification, Company, CurrentUser, InteractiveMetadata, Playlist, Presentation, PresentationAudience, Series, Video } from 'libs/shared/interfaces';\nimport { CommonVideoProps } from 'libs/shared/interfaces/CommonVideoProps';\nimport { GetVideoAppLinkOptions } from 'libs/shared/interfaces/VideoAppLinkOptions';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { SearchResultObjectTypes, SearchResults, SearchResultsObject } from '../../interfaces';\nimport { GetCollectionActions } from '../collection-thumbnail/CollectionThumbnail';\n\nimport { CompanyResult } from './components/CompanyResult';\nimport { ExchangeVideoGroup } from './components/exchange-video-group/ExchangeVideoGroup';\nimport { FeaturedVideoResult } from './components/FeaturedVideoResult';\nimport { LargePlaylistResult } from './components/LargePlaylistResults';\nimport { LargeSeriesResult } from './components/LargeSeriesResult';\nimport { BaseMixedSearchResultItemProps } from './components/MixedSearchResultItemProps';\nimport { SmallPlaylistResult } from './components/SmallPlaylistResult';\nimport { SmallSeriesResult } from './components/SmallSeriesResults';\nimport { SubjectResult } from './components/SubjectResult';\nimport { VideoResult } from './components/VideoResult';\n\nconst namespace = 'shared.mixedSearchResults';\n\nconst TOPIC_DISPLAY_LIMIT = 8;\n\nexport interface MixedSearchResultAppLinks {\n getVideoAppLink: (video: Video, opts: GetVideoAppLinkOptions) => Core.AppLink;\n getSeriesAppLink: (series: Series) => Core.AppLink;\n getCompanyAppLink: (company: Company) => Core.AppLink;\n getCompanyAppLinkOptions?: (company: Company) => Core.AppLinkOptions;\n getClassificationAppLink: (classification: Classification) => Core.AppLink;\n getClassificationAppLinkOptions?: (classification: Classification) => Core.AppLinkOptions;\n getPlaylistAppLink: (playlist: Playlist) => Core.AppLink;\n getPreviewQuestionsAppLink: (interactive: InteractiveMetadata) => Core.AppLink;\n getCollectionActions: GetCollectionActions;\n searchSettings?: Core.AppLink;\n}\n\ninterface MixedSearchResultsProps {\n queryParams: HashObject;\n results: SearchResultObjectTypes[];\n topics?: SearchResults;\n companies?: SearchResults;\n audiences: PresentationAudience[];\n currentUser: CurrentUser;\n availablePresentations: Presentation[]\n showActions: boolean;\n hasPermissions: HasPermissionsFunc;\n appLinks: MixedSearchResultAppLinks;\n commonVideoProps: CommonVideoProps;\n}\n\nexport const MixedSearchResults = React.memo(function(props: MixedSearchResultsProps): JSX.Element {\n const breakpoints = useBreakpoints();\n const useSmallComponent = breakpoints.xs || breakpoints.sm;\n\n if (!props.results?.length && !props.topics?.totalResults && !props.companies?.totalResults)\n return <></>;\n\n const companiesAndTopics = [\n ...props.companies?.results ?? [],\n ...props.topics?.results ?? []\n ];\n\n const childProps: BaseMixedSearchResultItemProps = {\n useLargeStyle: companiesAndTopics.length < 4,\n ...props\n };\n\n return (\n <div className='position-relative'>\n <p role='status' className='visually-hidden'><Text namespace={namespace} phrase='ariaSearch' /></p>\n\n {!!companiesAndTopics.length && (\n <Row as='ul' className='list-unstyled g-0 pb-3 mx-n1'>\n {companiesAndTopics.slice(0, TOPIC_DISPLAY_LIMIT).map((c, itemIndex) => {\n switch (c.type.toLowerCase()) {\n case 'company':\n return (\n <CompanyResult\n key={itemIndex}\n item={c as SearchResultsObject<Company>}\n itemIndex={itemIndex}\n {...childProps}\n />\n );\n case 'subject': {\n return (\n <SubjectResult\n key={itemIndex}\n item={c as SearchResultsObject<Classification>}\n itemIndex={itemIndex}\n {...childProps}\n />\n );\n }\n }\n })}\n </Row>\n )}\n\n {props.results?.map((result, index) => {\n const pagePositionIndex = companiesAndTopics.length ? index + 1 : index;\n\n if ('isExchangeVideoGroup' in result && result.isExchangeVideoGroup) {\n return (\n <ExchangeVideoGroup\n key={index}\n item={result}\n pagePositionIndex={pagePositionIndex}\n {...childProps}\n />\n );\n }\n \n\n switch (result.type?.toLowerCase()) {\n case 'interactive':\n case 'clip':\n case 'video': {\n if (index === 0 && result._featured && VideoHelper.isVideo(result)) {\n return (\n <FeaturedVideoResult\n key={index}\n item={result as SearchResultsObject<Video>}\n pagePositionIndex={pagePositionIndex}\n {...childProps}\n />\n );\n }\n\n return (\n <VideoResult\n key={index}\n item={result as SearchResultsObject<Video>}\n pagePositionIndex={pagePositionIndex}\n {...childProps}\n />\n );\n }\n\n case 'playlist': {\n if (useSmallComponent) {\n return (\n <SmallPlaylistResult\n key={index}\n item={result as SearchResultsObject<Playlist>}\n pagePositionIndex={pagePositionIndex}\n {...childProps}\n />\n );\n }\n\n return (\n <LargePlaylistResult\n key={index}\n item={result as SearchResultsObject<Playlist>}\n pagePositionIndex={pagePositionIndex}\n {...childProps}\n />\n );\n }\n\n case 'series': {\n const series = result as Series;\n\n if (useSmallComponent || !series.tallPoster?.id) {\n return (\n <SmallSeriesResult\n key={index}\n item={result as SearchResultsObject<Series>}\n pagePositionIndex={pagePositionIndex}\n {...childProps}\n />\n );\n }\n\n return (\n <LargeSeriesResult\n key={index}\n item={result as SearchResultsObject<Series>}\n pagePositionIndex={pagePositionIndex}\n {...childProps}\n />\n );\n }\n }\n })}\n </div>\n );\n});","import React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Text } from 'libs/shared/components/text/Text';\n\nconst namespace = 'search.searchSubstitute';\n\ninterface SearchSubstituteProps {\n substitute: string;\n queryParams: HashObject;\n getAppLink: (query: string, queryParams: HashObject) => Core.AppLink\n}\n\nexport function SearchSubstitute(props: SearchSubstituteProps): JSX.Element {\n if (!props.substitute)\n return <></>;\n\n return (\n <div className='pb-3'>\n <p className='mb-1 h6'>\n <Text namespace={namespace} phrase='showingFor' /> \n <AppLink\n className='info-link'\n appLink={props.getAppLink(props.substitute, props.queryParams)}\n appLinkOptions={{ replace: true }}\n >\n {props.substitute}\n </AppLink>\n </p>\n <p className='mb-0 h6 fw-normal'>\n <Text namespace={namespace} phrase='searchInsteadFor' />\n <AppLink\n className='info-link'\n appLink={props.getAppLink(props.queryParams.query, { ...props.queryParams, allowSubstitute: 'false' })}\n >\n {props.queryParams.query}\n </AppLink>\n <Text namespace={namespace} phrase='endOriginal' />\n </p>\n </div>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Text } from 'libs/shared/components/text/Text';\n\nconst namespace = 'search.searchSuggestions';\n\ninterface SearchSuggestionsProps {\n suggestions: string[];\n queryParams: HashObject;\n getAppLink: (query: string, queryParams: HashObject) => Core.AppLink\n}\n\nSearchSuggestions.defaultProps = {\n suggestions: [],\n queryParams: {}\n};\n\nexport function SearchSuggestions(props: SearchSuggestionsProps): JSX.Element {\n if (!props.suggestions?.length)\n return <></>;\n\n return (\n <div className='d-flex align-items-center mb-3'>\n <Text namespace={namespace} phrase='didYouMean' />\n \n\n {props.suggestions.map((suggestion, index) => (\n <React.Fragment key={`${suggestion}:${index}`}>\n {index !== 0 && <span className='mx-1'>•</span>}\n\n <AppLink\n className='info-link'\n appLink={props.getAppLink(suggestion, props.queryParams)}\n appLinkOptions={{ replace: true }}\n >\n {suggestion}\n </AppLink>\n </React.Fragment>\n ))}\n </div>\n );\n}","import { Xhr } from 'libs/common/backbone/interfaces';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { SearchIndices, SearchResults } from 'libs/shared/apps/search/interfaces';\n\nexport const SearchRequests = {\n search(\n query: string,\n indices: SearchIndices[],\n filters: HashObject = {},\n cursor?: string,\n success?: (results: SearchResults) => void,\n error?: (xhr: Xhr) => void\n ): Flight.PublicRequest {\n let key = `search:${query}:${indices}:${cursor}`;\n\n key += Object.keys(filters).map(filterName => filters[filterName]).join(';');\n\n const params = Object.assign({}, {\n index: indices,\n cursor: cursor ?? undefined,\n query,\n ...filters\n });\n\n return {\n url: UrlHelper.urlBuilder('{gateway}/v1/search', params),\n publicUrl: UrlHelper.urlBuilder('/api/search', params),\n key,\n success,\n error\n };\n },\n\n schoolLevels(presentationIds: string[]): Flight.PublicRequest {\n const params = {\n filterType: 'schoolLevels',\n presentationId: presentationIds\n };\n\n return {\n url: UrlHelper.urlBuilder('{gateway}/v1/search/filters', params),\n publicUrl: UrlHelper.urlBuilder('/api/search/filters', params),\n key: 'school-levels'\n };\n }\n};\n","import { Flight } from 'libs/common/flight';\n\nimport { SchoolLevels } from 'libs/shared/interfaces';\n\nimport { SearchRequests } from 'apps/search/flight-requests/SearchRequests';\n\nexport function useFetchSchoolLevels(presentationId: string) {\n return Flight.useBasicFetch<SchoolLevels>(\n presentationId && SearchRequests.schoolLevels([presentationId])\n );\n}","import { SharedWithStatements } from 'libs/shared/constants/WithStatements';\nimport { TagType } from 'libs/shared/enums/TagType';\n\n/**\n * OGQL used for search V5 endpoint\n */\nexport const SearchOGQL = {\n video: SharedWithStatements.VIDEO_COLLECTION,\n series: 'rating,tallPoster',\n playlist:\n 'videos[count(),thumbnail]{limit:1},interactives[count(),_thumbnail]{limit:1},' +\n 'clips[count(),_thumbnail]{limit:1}',\n classification: `cover,thumbnail,tags{tagtype:${TagType.Curation}}`,\n clip: SharedWithStatements.CLIP_COLLECTION,\n interactive: SharedWithStatements.INTERACTIVE_COLLECTION,\n company: 'logo',\n category: 'libraries[_logo],thumbnail'\n};","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { FilterConstants } from 'libs/shared/apps/search/constants/FilterConstants';\nimport { SearchOGQL } from 'libs/shared/apps/search/constants/SearchOGQL';\nimport { SearchIndices, SearchResultObjectTypes, SearchResults, SearchResultsObject } from 'libs/shared/apps/search/interfaces';\nimport type { WidgetFilter } from 'libs/shared/apps/search/interfaces/WidgetSearchResults';\nimport { SharedSearchHelper } from 'libs/shared/apps/search/utils/SharedSearchHelper';\nimport { WidgetTypeId } from 'libs/shared/enums/WidgetTypeId';\nimport type { Playlist, Series } from 'libs/shared/interfaces';\n\nfunction formatSearchResponse(response: SearchResults<SearchResultObjectTypes>) {\n /**\n * Until playlists and series are regionalised, search will always return every series/playlist that exists\n * even if the current user doesn't have access to the content inside (which will happen for example when playlists/series)\n * contain all UK library content but is being searched for by an AU user.\n *\n * For some search queries, this may result in search showing a bunch of \"empty\" playlists/series, which sucks.\n * This will filter all empty collections out and decrement the `totalResults` to avoid this and make search a better\n * experience.\n *\n * Ideally this will be removed one day when this regionalisation is no longer an issue.\n */\n let totalResults = response.totalResults;\n\n const results = response?.results?.filter(result => {\n if (result._index !== 'series' && result._index !== 'playlist')\n return true;\n\n if (result._index === 'playlist') {\n const playlist = result as SearchResultsObject<Playlist>;\n\n if (playlist.clips?.data?.length ||\n playlist.interactives?.data?.length ||\n playlist.videos?.data?.length)\n return true;\n\n totalResults--;\n return false;\n }\n\n if ((result as SearchResultsObject<Series>).videos?.data?.length === 0) {\n totalResults--;\n return false;\n }\n\n return true;\n }) ?? [];\n\n response.results = results;\n response.totalResults = totalResults;\n\n // The first search result will always have the highest score value.\n // We store it so that we can access it for subsequent results pages\n const resultMaxScore = results[0]?._score;\n\n return {\n ...response,\n results: SharedSearchHelper.mapMaxScoreToSearchResults(results, resultMaxScore)\n };\n}\n\nfunction stringifyObject(obj: HashObject): string {\n return Object.entries(obj).reduce((prev, [ , value ]) => {\n let stringifiedValue = value;\n\n if (typeof value === 'object') {\n stringifiedValue = stringifyObject(value);\n } else if ([ 'number', 'boolean', 'string' ].includes(typeof value)) {\n stringifiedValue = value.toString();\n }\n\n if (!prev.length)\n return stringifiedValue;\n\n return `${prev},${stringifiedValue}`;\n }, '');\n}\n\n\nexport const SharedSearchRequests = {\n searchDashboard(\n query: string,\n filters: HashObject,\n widgets: WidgetFilter[] = []\n ): Flight.PublicRequest {\n const widgetData = widgets.sort((a, b) => a.id.localeCompare(b.id)).map(w => [ w.id, w?.cursor ]);\n const filterData = stringifyObject(filters);\n \n const key = `search:v5:dashboard:${query}:${widgetData}:${filterData}`;\n \n const {\n [`${FilterConstants.FILTER_PARAM_PREFIX}indicesFilters`]: indicesFilter,\n isLearner,\n ...genericFilters\n } = filters;\n\n const data = {\n widgets,\n indices: indicesFilter,\n filters: Object.entries(genericFilters)\n .reduce((prev, [ key, value ]) =>\n ({ ...prev, [key.replace('filters.', '')]: value }), {}),\n query,\n includeAllIndices: false,\n isLearner: !!isLearner\n };\n\n return {\n url: '{gateway}/v5/search/widgets',\n publicUrl: '/api/search/v5/widgets',\n type: HttpVerbs.POST,\n data,\n key\n };\n },\n\n searchDashboardWidget(\n widgetTypeId: WidgetTypeId,\n query: string,\n filters: HashObject,\n widgets: WidgetFilter[] = []\n ): Flight.PublicRequest {\n const widgetData = widgets.sort((a, b) => a.id.localeCompare(b.id)).map(w => [ w.id, w?.cursor ]);\n const filterData = stringifyObject(filters);\n \n const key = `search:v5:dashboard:${widgetTypeId}:widget:${query}:${widgetData}:${filterData}`;\n \n const {\n [`${FilterConstants.FILTER_PARAM_PREFIX}indicesFilters`]: indicesFilter,\n isLearner,\n excludeVideoIds,\n ...genericFilters\n } = filters;\n\n const data = {\n widgets,\n indices: indicesFilter,\n filters: Object.entries(genericFilters)\n .reduce((prev, [ key, value ]) =>\n ({ ...prev, [key.replace('filters.', '')]: value }), {}),\n query,\n includeAllIndices: false,\n isLearner: !!isLearner,\n ogql: SearchOGQL,\n excludeVideoIds\n };\n\n return {\n url: `{gateway}/v5/search/widgets/${widgetTypeId}`,\n publicUrl: `/api/search/v5/widgets/${widgetTypeId}`,\n type: HttpVerbs.POST,\n data,\n key\n };\n },\n \n searchV5(\n query: string,\n filters: HashObject,\n widgets: WidgetFilter[] = []\n ): Flight.PublicRequest {\n const widgetData = widgets.sort((a, b) => a.id.localeCompare(b.id)).map(w => [ w.id, w?.cursor ]);\n const filterData = stringifyObject(filters);\n \n const key = `search:v5:${query}:${widgetData}:${filterData}`;\n \n const {\n [`${FilterConstants.FILTER_PARAM_PREFIX}indicesFilters`]: indicesFilter,\n isLearner,\n ...genericFilters\n } = filters;\n\n const data = {\n widgets,\n indices: indicesFilter,\n filters: Object.entries(genericFilters)\n .reduce((prev, [ key, value ]) =>\n ({ ...prev, [key.replace('filters.', '')]: value }), {}),\n query,\n includeAllIndices: false,\n isLearner: !!isLearner,\n ogql: SearchOGQL\n };\n\n return {\n url: '{gateway}/v5/search',\n publicUrl: '/api/search/v5',\n type: HttpVerbs.POST,\n data,\n key\n };\n },\n \n searchV4(options: {\n query: string;\n indices: SearchIndices[];\n filters: HashObject;\n sorts?: HashObject;\n allowSubstitute: boolean;\n cursor?: string;\n limit?: number;\n }): Flight.PublicRequest {\n const { query, indices, filters = {}, sorts = {}, allowSubstitute = true, cursor, limit } = options;\n\n let key = `search:v4:${query}:${allowSubstitute}:${indices}:${cursor}`;\n\n key += Object.keys(filters).map(filterName => {\n const filter = filters[filterName];\n return Array.isArray(filter) ? filter.join(';') : filter;\n }).join(';');\n\n const {\n [`${FilterConstants.FILTER_PARAM_PREFIX}excludeLibraryExclusive`]: excludeLibraryExclusive,\n isLearner,\n ...genericFilters\n } = filters;\n\n const indexObjects = indices.map(index => {\n if (index !== 'video' || !excludeLibraryExclusive)\n return { index };\n\n return { index, filters: { excludeLibraryExclusive } };\n });\n\n const data = {\n searchType: 'content',\n indices: indexObjects,\n filters: Object.entries(genericFilters)\n .reduce((prev, [ key, value ]) =>\n ({ ...prev, [key.replace('filters.', '')]: value }), {}),\n sorts,\n query,\n allowSubstitute,\n cursor: cursor ?? undefined,\n isLearner: !!isLearner,\n limit\n };\n\n return {\n url: '{gateway}/v4/search',\n publicUrl: '/api/search/v4',\n type: HttpVerbs.POST,\n data,\n key,\n formatData: formatSearchResponse\n };\n },\n\n search(options: {\n query: string;\n indices: SearchIndices[];\n filters?: HashObject;\n allowSubstitute?: boolean;\n cursor?: string;\n limit?: number;\n success?: (results: SearchResults) => void;\n error?: (xhr: Xhr) => void;\n }): Flight.PublicRequest {\n const { query, indices, filters, allowSubstitute, cursor, limit, success, error } = options;\n\n let key = `search:${query}:${allowSubstitute}:${indices}:${cursor}`;\n\n key += Object.keys(filters).map(filterName => {\n const filter = filters[filterName];\n return Array.isArray(filter) ? filter.join(';') : filter;\n }).join(';');\n\n const params = Object.assign({}, {\n index: indices,\n cursor: cursor ?? undefined,\n query,\n allowSubstitute,\n limit,\n ...filters\n });\n\n return {\n url: UrlHelper.urlBuilder('{gateway}/v3/search', params),\n publicUrl: UrlHelper.urlBuilder('/api/search', params),\n key,\n formatData: formatSearchResponse,\n success,\n error\n };\n },\n\n tagsAndClassifications(\n query: string,\n indices: SearchIndices[],\n filters: HashObject = {},\n cursor?: string,\n success?: (results: string[]) => void,\n error?: () => void\n ): Flight.PublicRequest {\n const params = {\n index: indices,\n cursor,\n query,\n ...filters\n };\n\n let key = `filter:options:${query}:${indices.join(':')}:${cursor}`;\n\n key += Object.keys(filters).map(filterName => {\n const filter = filters[filterName];\n return Array.isArray(filter) ? filter.join(';') : filter;\n }).join(';');\n\n return {\n url: UrlHelper.urlBuilder('{gateway}/v3/search/tags-and-classifications', params),\n publicUrl: UrlHelper.urlBuilder('/api/search/tags-and-classifications', params),\n key,\n success,\n error,\n normalize: false\n };\n }\n};","import { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { SharedSearchRequests } from 'libs/shared/apps/search/flight-requests/SharedSearchRequests';\nimport { SearchResults, SearchResultsObject } from 'libs/shared/apps/search/interfaces';\nimport { FilterHelper } from 'libs/shared/apps/search/utils/FilterHelper';\nimport { Company } from 'libs/shared/interfaces';\n\nimport { SearchHelper } from 'apps/search/utils/SearchHelper';\n\ntype CompanySearchResults = SearchResults<SearchResultsObject<Company>>;\n\nexport function useSearchCompanies(\n queryParams: HashObject,\n presentationId: string\n): Flight.Response<SearchResults> {\n const rawFilters = FilterHelper.buildBackendFilterParams(\n queryParams,\n null,\n [presentationId],\n false,\n []\n );\n \n const filters = rawFilters || {};\n filters[`filters.presentation`] = presentationId;\n\n const request = SharedSearchRequests.search({\n query: SearchHelper.getQuery(queryParams),\n indices: ['company'],\n filters,\n allowSubstitute: queryParams.allowSubstitute !== 'false'\n });\n\n return Flight.useBasicFetch<CompanySearchResults>(request);\n}\n","import { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { SharedSearchRequests } from 'libs/shared/apps/search/flight-requests/SharedSearchRequests';\nimport { SearchResults, SearchResultsObject } from 'libs/shared/apps/search/interfaces';\nimport { FilterHelper } from 'libs/shared/apps/search/utils/FilterHelper';\nimport { ClassificationStatus } from 'libs/shared/enums/ClassificationStatus';\nimport { ClassificationType } from 'libs/shared/enums/ClassificationType';\nimport { Classification } from 'libs/shared/interfaces';\n\nimport { SearchHelper } from 'apps/search/utils/SearchHelper';\n\ntype TopicSearchResults = SearchResults<SearchResultsObject<Classification>>;\n\nexport function useSearchTopics(\n queryParams: HashObject,\n presentationId: string\n): Flight.Response<SearchResults> {\n const rawFilters = FilterHelper.buildBackendFilterParams(\n queryParams,\n null,\n [presentationId],\n false,\n []\n );\n\n const filters = ObjectHelper.pick<HashObject>(rawFilters, [ 'filters.classification', 'filters.presentation' ]);\n filters[`filters.classificationType`] = ClassificationType.Subject;\n filters[`filters.status`] = ClassificationStatus.Published;\n filters['filters.presentation'] = presentationId;\n\n const indices = FilterHelper.getAppliedIndices(queryParams);\n\n const hasFilteredOutTopics = !indices.includes('classification');\n\n const request = SharedSearchRequests.search({\n query: SearchHelper.getQuery(queryParams),\n indices: ['classification'],\n filters,\n allowSubstitute: queryParams.allowSubstitute !== 'false'\n });\n\n const shouldFetch = !hasFilteredOutTopics;\n\n const response = Flight.useBasicFetch<TopicSearchResults>(shouldFetch && request);\n\n if (!shouldFetch)\n return null;\n\n return response;\n}\n","import { Flight } from 'libs/common/flight';\n\nimport { HashObject } from 'libs/analytics/interfaces';\n\nimport { TopicResults } from 'libs/shared/apps/search/interfaces';\nimport { PresentationType } from 'libs/shared/enums/PresentationType';\nimport { AudienceRequests } from 'libs/shared/flight-requests/AudienceRequests';\nimport { ClassificationRequests } from 'libs/shared/flight-requests/ClassificationRequests';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { LibraryRequests } from 'libs/shared/flight-requests/LibraryRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { Config, CurrentUser, Presentation, PresentationAudience } from 'libs/shared/interfaces';\n\nimport { PresentationRequests } from 'shared/flight-requests/PresentationRequests';\n\nimport { useFetchSchoolLevels } from 'apps/search/hooks/useFetchSchoolLevels';\nimport { useSearchCompanies } from 'apps/search/hooks/useSearchCompanies';\nimport { useSearchTopics } from 'apps/search/hooks/useSearchTopics';\n\n/**\n * This hook contains all the simple data fetching that normally sits in the view.\n * I've done this to help promote readability of of the SearchResultsView - Sha\n */\nexport function useFetchSearchData(queryParams: HashObject) {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n const presentation = Flight.useBasicFetch<Presentation>(\n PresentationRequests.streamablePresentation()\n );\n\n const currentPresentation = presentation.data;\n\n const streamableLibrary = Flight.useBasicFetch<HashObject>(LibraryRequests.streamableLearning());\n const streamableLibraryId = streamableLibrary.data?.objectId;\n\n const currentPresentationId = currentPresentation?.id;\n\n const audiences = Flight.useBasicFetch<PresentationAudience[]>(presentation.data &&\n AudienceRequests.presentationAudiences(presentation.data.id, PresentationType.StreamableLearning));\n\n const schoolLevels = useFetchSchoolLevels(presentation.data?.id);\n const schoolLevelIds = schoolLevels.data?.schoolLevels?.map(o => o.id);\n const availableTopics = Flight.useBasicFetch<TopicResults>(schoolLevels.data &&\n ClassificationRequests.topicsFromAllAvailablePresentations(schoolLevelIds));\n\n const topics = useSearchTopics(\n queryParams,\n currentPresentationId\n );\n\n const companies = useSearchCompanies(\n queryParams,\n currentPresentationId\n );\n\n const hasDataLoaded = (\n audiences.hasCompleted &&\n currentUser.hasCompleted &&\n config.hasCompleted\n );\n\n return {\n queryParams,\n currentUser,\n config,\n audiences,\n schoolLevels,\n availableTopics,\n topics,\n companies,\n currentPresentationId,\n streamableLibraryId,\n hasDataLoaded\n };\n}\n","import { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { HashObject } from 'libs/analytics/interfaces';\n\nimport { SharedSearchRequests } from 'libs/shared/apps/search/flight-requests/SharedSearchRequests';\nimport { SearchIndices, SearchResultObjectTypes, SearchResults } from 'libs/shared/apps/search/interfaces';\nimport { handleHttpError } from 'libs/shared/errors/handlers/HttpErrorHandlers';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useInfiniteList } from 'libs/shared/hooks/UseInfiniteList';\n\nexport const namespace = 'search.utils';\n\ninterface UseGetSearchResultsOptions {\n queryParams: HashObject;\n appliedIndices: SearchIndices[];\n backendFilters: HashObject;\n hasDataLoaded: boolean;\n}\nexport function useGetSearchResults(options: UseGetSearchResultsOptions) {\n const { queryParams, appliedIndices, backendFilters } = options;\n\n const alerts = useAlerts();\n const fetch = Flight.useGetFetch();\n\n const searchResultsResponse = Flight.useGetResponse<SearchResults>(getSearchRequest()?.key);\n\n function getSearchRequest(cursor?: string) {\n return options.hasDataLoaded && !!appliedIndices?.length &&\n SharedSearchRequests.searchV4({\n query: queryParams.query,\n indices: appliedIndices,\n filters: backendFilters,\n sorts: { dateReleased: 'desc' },\n allowSubstitute: queryParams.allowSubstitute !== 'false',\n cursor\n });\n }\n\n function fetchNext(cursor?: string) {\n fetch(getSearchRequest(cursor));\n }\n\n function onError(pageNumber: number, httpStatus: HttpStatus): void {\n if (pageNumber === 1)\n return handleHttpError(httpStatus);\n\n alerts.error(LanguageService.getPhrase(namespace, 'error'));\n }\n\n const searchResults = useInfiniteList<SearchResultObjectTypes, SearchResults>(\n getSearchRequest,\n fetchNext,\n onError,\n data => data.results\n );\n\n return {\n ...searchResults,\n hasFirstPageCompleted: searchResults.hasFirstPageCompleted || !options.hasDataLoaded || !appliedIndices?.length,\n fetchNext,\n substituteQuery: searchResultsResponse.data?.substituteQuery,\n suggestions: searchResultsResponse.data?.suggestions\n };\n}\n","import { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { SharedSearchRequests } from 'libs/shared/apps/search/flight-requests/SharedSearchRequests';\nimport { SearchIndices } from 'libs/shared/apps/search/interfaces';\n\nexport interface UseGetTagsAndClassificationsOptions {\n queryParams: HashObject;\n appliedIndices: SearchIndices[];\n backendFilters: HashObject;\n}\n\nexport function useGetTagsAndClassifications(options: UseGetTagsAndClassificationsOptions) {\n return Flight.useBasicFetch<string[]>(options && SharedSearchRequests.tagsAndClassifications(\n options.queryParams.query,\n options.appliedIndices,\n options.backendFilters\n ));\n}\n","import React from 'react';\n\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\n\nimport { SharedViewModelKeys } from 'libs/shared/constants/SharedViewModelKeys';\n\nexport function useSearchMask(hasCompleted: boolean): void {\n const [ showMask, setShowMask ] = useViewModel(SharedViewModelKeys.SHOW_SEARCH_MASK, true);\n\n React.useEffect(() => {\n showMask && hasCompleted && setShowMask(false);\n }, [hasCompleted]);\n}\n","import React from 'react';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/StreamableActions';\nimport { AppChannels } from 'shared/constants/StreamableRadioChannels';\n\nconst namespace = 'search.searchResultsEmptyState';\n\ninterface SearchResultsEmptyStateProps {\n query?: string;\n scotland?: boolean;\n}\n\nexport function SearchResultsEmptyState(props: SearchResultsEmptyStateProps): JSX.Element {\n const imageUrl = ImageUrls.EmptyStates.SEARCH;\n\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <EmptyState>\n <EmptyState.Image src={imageUrl} />\n\n <EmptyState.Heading>\n {props.query\n ? <Text phrase='headingWithQuery' options={{ query: props.query }} />\n : <Text phrase='headingWithoutQuery' />\n }\n </EmptyState.Heading>\n\n <EmptyState.Info>\n <Text phrase='info' />\n <AppLink\n className='info-link'\n appLink={{ application: AppChannels.SUBJECTS, action: Actions.Subjects.CLASSIFICATION_ALL }}\n >\n <Text phrase='topicsAppLink' />\n </AppLink>\n </EmptyState.Info>\n </EmptyState>\n </LanguageNamespaceContext.Provider>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EntityType, HashObject, LocationContext } from 'libs/analytics/interfaces';\n\nimport { MixedSearchResults } from 'libs/shared/apps/search/components/mixed-search-results/MixedSearchResults';\nimport { SearchFilters } from 'libs/shared/apps/search/components/search-filters/SearchFilters';\nimport { SearchSubstitute } from 'libs/shared/apps/search/components/search-substitute/SearchSubstitute';\nimport { SearchSuggestions } from 'libs/shared/apps/search/components/search-suggestions/SearchSuggestions';\nimport { InfiniteScrollFooter } from 'libs/shared/components/infinite-scroll-footer/InfiniteScrollFooter';\nimport { VideoActionsContext } from 'libs/shared/context/VideoActionsContext';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { PageMetadataHelper } from 'libs/shared/utils/PageMetadataHelper';\n\nimport { Actions } from 'shared/constants/StreamableActions';\nimport { StreamableConstants } from 'shared/constants/StreamableConstants';\nimport { AppChannels } from 'shared/constants/StreamableRadioChannels';\nimport { useCommonVideoProps } from 'shared/hooks/useCommonVideoProps';\nimport { useStreamableVideoActions } from 'shared/hooks/useStreamableVideoActions';\nimport { StreamableAppLinks } from 'shared/utils/StreamableAppLinks';\n\nimport { useFetchSearchData } from 'apps/search/hooks/useFetchSearchData';\nimport { useGetSearchResults } from 'apps/search/hooks/useGetSearchResults';\nimport { useGetTagsAndClassifications } from 'apps/search/hooks/useGetTagsAndClassifications';\nimport { useSearchMask } from 'apps/search/hooks/useSearchMask';\nimport { SearchHelper } from 'apps/search/utils/SearchHelper';\n\nimport { SearchResultsEmptyState } from './empty-state/SearchResultsEmptyState';\n\nexport const namespace = 'search.searchResults';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface SearchResultsViewProps {\n queryParams: HashObject\n}\n\nexport function SearchResultsView(props: SearchResultsViewProps): JSX.Element {\n const { queryParams = {} } = props;\n \n const { commonVideoProps } = useCommonVideoProps();\n\n const getVideoActions = useStreamableVideoActions('video-list');\n\n const searchData = useFetchSearchData(queryParams);\n\n const searchFilters = SearchHelper.getBackendFilters(searchData);\n\n const tagsAndClassifications = useGetTagsAndClassifications(searchFilters);\n const searchResults = useGetSearchResults({ ...searchFilters, ...searchData });\n\n const filters = SearchHelper.getFilters(searchData, tagsAndClassifications);\n\n useSetPageMetadata(PageMetadataHelper.getDefaultMetadata({\n title: queryParams.query ?? '',\n phraseContext: {\n phraseHandler: getPhrase,\n titlePhrase: 'pageTitle',\n descriptionPhrase: 'pageDescription'\n },\n allowIndexing: false,\n product: StreamableConstants.PRODUCT_NAME\n }));\n\n /**\n * Do we have the data we need for the entire view to render\n */\n const hasLoaded = (\n searchData.hasDataLoaded && filters\n );\n\n /**\n * Do we have the data we need to render our results\n */\n const hasSearchCompleted = (\n searchResults.hasFirstPageCompleted &&\n // Topic and Company requests won't exist if they aren't being fetched\n (!searchData.topics || searchData.topics.hasCompleted) &&\n (!searchData.companies || searchData.companies.hasCompleted) &&\n tagsAndClassifications.hasCompleted &&\n !!filters\n );\n\n /**\n * Do we actually have results\n */\n const hasResults = (\n searchResults.items?.length ||\n searchData.topics?.data?.totalResults ||\n searchData.companies?.data?.totalResults\n );\n\n useSearchMask(hasSearchCompleted);\n\n if (!hasLoaded)\n return <></>;\n\n return (\n <div className='px-4'>\n <SearchSubstitute\n substitute={searchResults.substituteQuery}\n queryParams={queryParams}\n getAppLink={StreamableAppLinks.search}\n />\n\n {!searchResults.substituteQuery && (\n <SearchSuggestions\n suggestions={searchResults.suggestions}\n queryParams={queryParams}\n getAppLink={StreamableAppLinks.search}\n />\n )}\n\n {(!!searchData.audiences.data && !!searchData.availableTopics.data) && (\n <SearchFilters\n queryParams={queryParams}\n mainFilters={filters?.mainFilters}\n analyticsOptions={{\n entity: EntityType.SearchResults,\n location: LocationContext.SearchFilters\n }}\n appLink={{ application: AppChannels.SEARCH, action: Actions.Search.HOME }}\n isFetchingOptions={tagsAndClassifications.isFetching}\n />\n )}\n\n {hasSearchCompleted &&\n <section>\n {hasResults\n ? (\n <VideoActionsContext.Provider value={{ getVideoActions }}>\n <MixedSearchResults\n queryParams={queryParams}\n results={searchResults.items}\n topics={searchData.topics?.data}\n companies={searchData.companies?.data}\n audiences={!queryParams.moviesAndTv && searchData.audiences.data}\n currentUser={searchData.currentUser.data}\n availablePresentations={null}\n showActions\n appLinks={SearchHelper.getAppLinks()}\n hasPermissions={() => false}\n commonVideoProps={commonVideoProps}\n />\n </VideoActionsContext.Provider>\n ) : (\n <SearchResultsEmptyState query={queryParams.query} />\n )\n }\n {(searchResults.hasMore || searchResults.isFetching) && (\n <InfiniteScrollFooter\n isFetching={searchResults.isFetching}\n fetchNext={searchResults.fetchNext}\n nextCursor={searchResults.nextCursor}\n fetchOnScroll\n />\n )}\n </section>\n }\n </div>\n );\n}"],"names":["CompanyWidgetItem","props","analyticsData","_a","_b","analyticsOptions","LocationContext","UserAction","EntityType","ClickDescriptor","jsx","CoverPillWidgetContentWrapper","_c","_d","CompanyResult","Col","namespace","EXCHANGE_RESULT_DISPLAY_LIMIT","ExchangeVideoGroup","limit","getContainerClassName","currentAppLink","Core.AppLinkHelper","currentParams","currentSource","searchAppLink","SourceFilterOptions","SearchSourceDescriptor","jsxs","AppLink","Text","styles","v","i","VideoItem","FeaturedVideoResult","HeroVideo","opts","VideoHelper","useGetMaxVideos","breakpoints","useBreakpoints","PlaylistWithVideos","maxVideos","videos","playlistAnalyticsOption","playlistAnalyticsData","Row","PlaylistItem","BG_COLOUR_CLASS_NAMES","video","videoAnalyticsData","LargePlaylistResult","SeriesWithVideos","seriesAnalyticsOption","seriesAnalyticsData","SeriesTallPoster","LargeSeriesResult","CollectionVideoList","analyticsProps","Fragment","hasSeasonEpisode","SeasonEpisode","CollectionThumbnail","isSmall","VideoListHelper","hasVideos","firstVideoWithThumbnail","getAnalyticsData","data","isSeries","BaseImage","ImageType","Mask","ImageFallback","ActionsComponent","BadgeListContainer","Badge","BadgeType","SeriesHelper","SmallPlaylistResult","MaskType","ImageFallbackType","SmallSeriesResult","SubjectResult","SubjectWidgetItem","VideoResult","getItemComponent","ClipItem","InteractiveItem","Component","TOPIC_DISPLAY_LIMIT","MixedSearchResults","React","useSmallComponent","companiesAndTopics","_e","childProps","c","itemIndex","_f","result","index","pagePositionIndex","SearchSubstitute","SearchSuggestions","suggestion","SearchRequests","query","indices","filters","cursor","success","error","key","filterName","params","UrlHelper","presentationIds","useFetchSchoolLevels","presentationId","Flight.useBasicFetch","SearchOGQL","SharedWithStatements","TagType","formatSearchResponse","response","totalResults","results","playlist","_h","_g","resultMaxScore","SharedSearchHelper","stringifyObject","obj","prev","value","stringifiedValue","SharedSearchRequests","widgets","widgetData","a","b","w","filterData","FilterConstants","indicesFilter","isLearner","genericFilters","HttpVerbs","widgetTypeId","excludeVideoIds","options","sorts","allowSubstitute","filter","excludeLibraryExclusive","useSearchCompanies","queryParams","FilterHelper","request","SearchHelper","useSearchTopics","rawFilters","ObjectHelper","ClassificationType","ClassificationStatus","hasFilteredOutTopics","shouldFetch","useFetchSearchData","currentUser","UserRequests","config","ConfigRequests","presentation","PresentationRequests","currentPresentation","streamableLibraryId","LibraryRequests","currentPresentationId","audiences","AudienceRequests","PresentationType","schoolLevels","schoolLevelIds","o","availableTopics","ClassificationRequests","topics","companies","hasDataLoaded","useGetSearchResults","appliedIndices","backendFilters","alerts","useAlerts","fetch","Flight.useGetFetch","searchResultsResponse","Flight.useGetResponse","getSearchRequest","fetchNext","onError","pageNumber","httpStatus","handleHttpError","LanguageService","searchResults","useInfiniteList","useGetTagsAndClassifications","useSearchMask","hasCompleted","showMask","setShowMask","useViewModel","SharedViewModelKeys","SearchResultsEmptyState","imageUrl","ImageUrls","LanguageNamespaceContext","EmptyState","AppChannels","Actions","getPhrase","SearchResultsView","commonVideoProps","useCommonVideoProps","getVideoActions","useStreamableVideoActions","searchData","searchFilters","tagsAndClassifications","useSetPageMetadata","PageMetadataHelper","StreamableConstants","hasLoaded","hasSearchCompleted","hasResults","StreamableAppLinks","SearchFilters","VideoActionsContext","InfiniteScrollFooter"],"mappings":"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"}
|