@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 @@
|
|
|
1
|
+
{"version":3,"file":"DELBynwO.chunk.js","sources":["../../src/apps/default/views/not-found/StreamableNotFoundView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { ErrorPageError } from 'libs/shared/errors/primitives/ErrorPageError';\n\nimport { ErrorView } from 'apps/default/views/error/StreamableErrorView';\n\ninterface NotFoundViewProps {\n error: ErrorPageError;\n}\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function NotFoundView({ error }: NotFoundViewProps): React.ReactElement {\n return <ErrorView error={error} />;\n}"],"names":["NotFoundView","error","jsx","ErrorView"],"mappings":"8CAWO,SAASA,EAAa,CAAE,MAAAC,GAAgD,CAC7E,OAAOC,MAACC,GAAU,MAAAF,EAAc,CAClC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{j as t,d as w,l as E,R as d,b7 as P,h as R,c as B,bZ as D,as as F,ai as H}from"./app-DiXzpOyg.js";import{e as W,h as q}from"./C2zcSUEr.chunk.js";function O(e){return t.jsx("svg",{...e,children:t.jsx("path",{d:"m13.026 4.377 8.5 14A1.2 1.2 0 0 1 20.5 20.2h-17a1.2 1.2 0 0 1-1.026-1.823l8.5-14a1.2 1.2 0 0 1 2.052 0M12 5 3.5 19h17zm0 13a1 1 0 1 1 0-2 1 1 0 0 1 0 2m.75-3.677a.69.69 0 0 1-.7.677.69.69 0 0 1-.7-.677V8.677c0-.374.313-.677.7-.677s.7.303.7.677z",fill:"currentColor"})})}const $="_seeMore_1mor5_1",V={seeMore:$},_="shared.widgetHeader",z=B.encloseNamespace(_);function p(e){return t.jsx("div",{className:`ms-3 ${V.seeMore}`,children:t.jsx(w,{appLink:e.appLink,analyticsData:e.analyticsData,analyticsOptions:{location:R.SlidingList,...e.analyticsOptions,descriptor:P.SeeMore},className:`text-decoration-none ${e.appLink?"curated-widget-link":""}`,children:t.jsx("p",{className:"hover-text-underline text-dark curated-widget-heading",children:z("seeAll")})})})}function X(e){var l;const c=!!e.description;if(!e.name&&!e.description)return t.jsx(t.Fragment,{});const i=W.isBelowContentMinimum(e.content,e.widgetTypeId),a=((l=q[e.widgetTypeId])==null?void 0:l.minContent)??0;return t.jsxs("div",{className:"curated-widget-header",children:[t.jsxs("div",{className:"d-flex justify-content-between",children:[!!e.name&&t.jsxs("div",{className:"d-flex align-items-center",children:[t.jsx(w,{appLink:e.appLink,analyticsData:e.analyticsData,className:`text-decoration-none ${e.appLink?"curated-widget-link text-reset":""}`,onClick:e.onClick,children:t.jsxs("h2",{className:"h4 curated-widget-heading",children:[e.isPreviewing&&i&&t.jsx(E,{svg:O,title:`Widget is below the minimum content threshold of ${a} and won't be displayed.`,tooltipSpanHack:!0,tooltipSpanHackClassName:"d-inline text-danger me-1"}),e.name]})}),!!d.isValidElement(e.badgeComponent)&&e.badgeComponent]}),!!e.appLink&&!c&&!!e.showSeeMoreLink&&t.jsx(p,{...e})]}),c&&t.jsxs("div",{className:"d-flex justify-content-between align-items-end",children:[t.jsx("p",{className:"description curated-widget-description",children:t.jsx("span",{children:e.description})}),!!e.appLink&&!!e.showSeeMoreLink&&t.jsx(p,{...e})]})]})}const A=400;function Y(e){const{type:c,state:i,containerRef:a,mediaQuery:l}=e,[g,u]=d.useState(!1),[f,b]=d.useState({}),[m,h]=d.useState(null),o=d.useMemo(()=>D.isTouchScreen(),[]);d.useEffect(()=>{c!=="dynamic"||!a.current||!i.containerLeftPosition||o||setTimeout(()=>T(),A+50)},[a.current,l,i.offset,i.containerLeftPosition]);function T(){var r;const s=i;if(!((r=a.current)!=null&&r.children))return;const n=Array.from(a.current.children).reduce((y,x)=>{const S=x==null?void 0:x.getBoundingClientRect(),M=S.left<s.containerRightPosition&&S.right>s.containerLeftPosition;return{...y,[x.id]:M?{"aria-hidden":!1}:{"aria-hidden":!0,inert:"true"}}},{});b(n)}function v(s){const n=i;return o||s>=n.offset-n.viewableItems&&s<n.offset?{"aria-hidden":!1}:{inert:"true","aria-hidden":!0}}function L(){setTimeout(()=>{if(!a.current)return;const s=a.current.querySelectorAll("li[aria-hidden]");let n=null;for(let r=m+1;r<s.length&&!n;r++)n=s[r].querySelector('a[tabindex="0"]');n&&n.focus()},A+100)}function C(){setTimeout(()=>{if(!a.current)return;const s=a.current.querySelectorAll("li[aria-hidden]");let n=null;for(let r=m-1;r>=0&&!n;r--)n=s[r].querySelector('a[tabindex="0"]');n&&n.focus()},A+100)}function I(s){document.querySelector(".user-is-tabbing")&&(u(!0),h(s))}function N(){document.querySelector(".user-is-tabbing")||(u(!1),h(null))}return{isTabbing:g,onFocusWidget:I,onBlurWidget:N,getFixedAttributes:v,dynamicAttributes:f,focusNext:L,focusPrev:C}}var j=(e=>(e.Percentage="%",e.Pixels="px",e))(j||{});const k=new Image;k.src="data:image/gif;base64,R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs=";const Q={hideDragImage(e){!e.dataTransfer.setDragImage||!F.isFunction(e.dataTransfer.setDragImage)||e.dataTransfer.setDragImage(k,0,0)}},U=D.isTouchScreen(),G=(e,c,i)=>(c===j.Percentage&&i&&(e=e-i),{transform:`translate3d(${e}${c}, 0px, 0px)`,transition:"transform .4s ease-in-out"}),ee=H.forwardRef((e,c)=>{const{children:i,positionType:a,onDrag:l,onDragEnd:g,onTouchMove:u,onTouchEnd:f,percentageDragged:b,position:m=0}=e;function h(){const o={};return l&&g&&(o.draggable=!0,o.onDragEnd=g,o.onDragStart=Q.hideDragImage,o.onDragOver=l),u&&f&&U&&(o.onTouchMoveCapture=u,o.onTouchEndCapture=f),o}return t.jsx("ul",{className:"list-unstyled d-flex flex-nowrap position-relative w-100 mb-0",style:G(m,a,b),ref:c,...h(),children:i})});var J=(e=>(e.Init="init",e.Next="next",e.Previous="previous",e.Resize="resize",e.Drag="drag",e.Update="update",e.JumpToIndex="jump-to-index",e))(J||{});export{j as C,ee as S,X as W,J as a,Y as u};
|
|
2
|
+
//# sourceMappingURL=DEixuHfi.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DEixuHfi.chunk.js","sources":["../../../../libs/shared/src/images/svg/status/WarningOutlineSvg.tsx","../../../../libs/shared/src/components/widgets/curated-widgets/components/header/WidgetHeader.tsx","../../../../libs/shared/src/components/widgets/hooks/useWidgetKeyboard.ts","../../../../libs/shared/src/enums/CssMeasurement.ts","../../../../libs/shared/src/utils/DragHelper.ts","../../../../libs/shared/src/components/widgets/sliding-list/SlidingListContainer.tsx","../../../../libs/shared/src/enums/WidgetInteraction.ts"],"sourcesContent":["import React from 'react';\n\nexport function WarningOutlineSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='m13.026 4.377 8.5 14A1.2 1.2 0 0 1 20.5 20.2h-17a1.2 1.2 0 0 1-1.026-1.823l8.5-14a1.2 1.2 0 0 1 2.052 0M12 5 3.5 19h17zm0 13a1 1 0 1 1 0-2 1 1 0 0 1 0 2m.75-3.677a.69.69 0 0 1-.7.677.69.69 0 0 1-.7-.677V8.677c0-.374.313-.677.7-.677s.7.303.7.677z'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsOptions, ClickDescriptor, LocationContext } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { WidgetTypeIdConfig } from 'libs/shared/constants/WidgetTypeIdConfig';\nimport { WidgetTypeId } from 'libs/shared/enums/WidgetTypeId';\nimport { WarningOutlineSvg } from 'libs/shared/images/svg/status/WarningOutlineSvg';\nimport { WidgetHelper } from 'libs/shared/utils/WidgetHelper';\n\nimport styles from './widget-header.module.scss';\n\nconst namespace = 'shared.widgetHeader';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface WidgetHeaderProps {\n name: string;\n description?: string | JSX.Element;\n isPreviewing?: boolean;\n content?: any[];\n widgetTypeId?: WidgetTypeId;\n badgeComponent?: JSX.Element;\n\n appLink?: Core.AppLink;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n \n showSeeMoreLink?: boolean;\n onClick?: () => void;\n}\n\nfunction SeeMore(props: WidgetHeaderProps) {\n return (\n <div className={`ms-3 ${styles.seeMore}`}>\n <AppLink\n appLink={props.appLink}\n analyticsData={props.analyticsData }\n analyticsOptions={{\n location: LocationContext.SlidingList,\n ...props.analyticsOptions,\n descriptor: ClickDescriptor.SeeMore\n }}\n className={`text-decoration-none ${props.appLink ? 'curated-widget-link' : ''}`}\n >\n <p className='hover-text-underline text-dark curated-widget-heading'>{getPhrase('seeAll')}</p>\n </AppLink>\n </div>\n );\n}\n\nexport function WidgetHeader(props: WidgetHeaderProps): JSX.Element {\n const hasDescription = !!props.description;\n\n if (!props.name && !props.description)\n return <></>;\n\n const isBelowMinimum = WidgetHelper.isBelowContentMinimum(props.content, props.widgetTypeId);\n const minContent = WidgetTypeIdConfig[props.widgetTypeId]?.minContent ?? 0;\n\n return (\n <div className='curated-widget-header'>\n <div className='d-flex justify-content-between'>\n {!!props.name && (\n <div className='d-flex align-items-center'>\n <AppLink\n appLink={props.appLink}\n analyticsData={props.analyticsData}\n className={`text-decoration-none ${props.appLink ? 'curated-widget-link text-reset' : ''}`}\n onClick={props.onClick}\n >\n <h2 className='h4 curated-widget-heading'>\n {props.isPreviewing && isBelowMinimum && (\n <SvgContainer\n svg={WarningOutlineSvg}\n title={`Widget is below the minimum content threshold of ${minContent} and won't be displayed.`}\n tooltipSpanHack\n tooltipSpanHackClassName='d-inline text-danger me-1'\n />\n )}\n {props.name}\n </h2>\n </AppLink>\n {!!React.isValidElement(props.badgeComponent) && props.badgeComponent}\n </div>\n )}\n {!!props.appLink && !hasDescription && !!props.showSeeMoreLink && <SeeMore {...props}/>}\n </div>\n \n {hasDescription && (\n <div className='d-flex justify-content-between align-items-end'>\n <p className={`description curated-widget-description`}>\n <span>{props.description}</span>\n </p>\n {!!props.appLink && !!props.showSeeMoreLink && <SeeMore {...props}/> }\n </div>\n )}\n </div>\n );\n}","import React from 'react';\n\nimport { UserAgentHelper } from 'libs/common/backbone/utils/UserAgentHelper';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { DynamicWidgetState } from 'libs/shared/components/widgets/dynamic-widget';\nimport { FixedWidgetState } from 'libs/shared/components/widgets/fixed-widget';\n\n// Sync with transition time in SlidingListContainer.tsx\nconst SLIDER_ANIMATION_TIME = 400;\n\ntype FixedWidgetKeyboardOptions = {\n type: 'fixed',\n state: FixedWidgetState,\n containerRef: React.MutableRefObject<HTMLElement>\n mediaQuery?: never;\n}\n\ntype DynamicWidgetKeyboardOptions = {\n type: 'dynamic',\n state: DynamicWidgetState,\n containerRef: React.MutableRefObject<HTMLElement>\n mediaQuery: string\n}\n\ntype UseWidgetKeyboard = FixedWidgetKeyboardOptions | DynamicWidgetKeyboardOptions\n\nexport function useWidgetKeyboard(options: UseWidgetKeyboard) {\n const { type, state, containerRef, mediaQuery } = options;\n\n const [ isTabbing, setIsTabbing ] = React.useState(false);\n const [ dynamicAttributes, setDynamicAttributes ] = React.useState<HashObject>({});\n const [ focusedWidgetIndex, setFocusedWidgetIndex ] = React.useState(null);\n\n const isTouch = React.useMemo(() => UserAgentHelper.isTouchScreen(), []);\n\n /**\n * Get accessibility attributes for dynamic widget items\n * */\n React.useEffect(() => {\n if (type !== 'dynamic' || !containerRef.current || !(state as DynamicWidgetState).containerLeftPosition || isTouch) return;\n\n setTimeout(() => getDynamicAttributes(), SLIDER_ANIMATION_TIME + 50);\n }, [\n containerRef.current,\n mediaQuery,\n (state as DynamicWidgetState).offset,\n (state as DynamicWidgetState).containerLeftPosition\n ]);\n\n function getDynamicAttributes() {\n const dynamicWidgetState = state as DynamicWidgetState;\n\n if (!containerRef.current?.children)\n return;\n\n const focusableItems = Array.from(containerRef.current.children).reduce((acc, item) => {\n const rect = item?.getBoundingClientRect();\n\n /**\n * When any part of the widget item is visible it should be focusable,\n * otherwise prevent interaction and the slider should be the next focusable element\n * */\n const isItemVisable =\n rect.left < dynamicWidgetState.containerRightPosition &&\n rect.right > dynamicWidgetState.containerLeftPosition;\n\n return {\n ...acc,\n [item.id]: isItemVisable\n ? {\n 'aria-hidden': false\n } : {\n 'aria-hidden': true,\n 'inert': 'true'\n }\n };\n }, {});\n\n setDynamicAttributes(focusableItems);\n }\n\n /**\n * Get accessibility attributes for fixed widget items\n * */\n function getFixedAttributes(index?: number) {\n const fixedWidgetState = state as FixedWidgetState;\n\n const isItemVisible =\n isTouch ||\n index >= (fixedWidgetState.offset - fixedWidgetState.viewableItems) &&\n index < fixedWidgetState.offset;\n if (isItemVisible) {\n return {\n 'aria-hidden': false\n };\n }\n\n return {\n 'inert': 'true',\n 'aria-hidden': true\n };\n }\n\n /**\n * When the user is not signed in, there may be videos which are not focusable.\n * setTimeout is required because the transition time is 400ms\n */\n function focusNext() {\n setTimeout(() => {\n if (!containerRef.current)\n return;\n\n const items = containerRef.current.querySelectorAll('li[aria-hidden]');\n\n let nextFocusableElement: HTMLElement = null;\n\n for (let i = (focusedWidgetIndex + 1); i < items.length; i++) {\n if (nextFocusableElement)\n break;\n\n nextFocusableElement = items[i].querySelector('a[tabindex=\"0\"]');\n }\n\n if (nextFocusableElement)\n nextFocusableElement.focus();\n }, SLIDER_ANIMATION_TIME + 100);\n }\n\n function focusPrev() {\n setTimeout(() => {\n if (!containerRef.current)\n return;\n\n const items = containerRef.current.querySelectorAll('li[aria-hidden]');\n\n let prevFocusableElement: HTMLElement = null;\n for (let i = focusedWidgetIndex - 1; i >= 0; i--) {\n if (prevFocusableElement) break;\n\n const item = items[i];\n prevFocusableElement = item.querySelector('a[tabindex=\"0\"]');\n }\n\n if (prevFocusableElement)\n prevFocusableElement.focus();\n }, SLIDER_ANIMATION_TIME + 100);\n }\n\n function onFocusWidget(index: number) {\n if (document.querySelector('.user-is-tabbing')) {\n setIsTabbing(true);\n setFocusedWidgetIndex(index);\n }\n }\n\n function onBlurWidget() {\n if (!document.querySelector('.user-is-tabbing')) {\n setIsTabbing(false);\n setFocusedWidgetIndex(null);\n }\n }\n\n return {\n isTabbing,\n onFocusWidget,\n onBlurWidget,\n getFixedAttributes,\n dynamicAttributes,\n focusNext,\n focusPrev\n };\n}","export enum CssMeasurement {\n Percentage = '%',\n Pixels = 'px'\n}","import { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\n\nconst blankImage = new Image();\nblankImage.src = 'data:image/gif;base64,R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs=';\n\nexport const DragHelper = {\n // This removes the image that appears when you drag a draggable HTML element\n hideDragImage(event: React.DragEvent<HTMLElement>): void {\n if (!event.dataTransfer.setDragImage || !FunctionHelper.isFunction(event.dataTransfer.setDragImage))\n return;\n\n event.dataTransfer.setDragImage(blankImage, 0, 0);\n }\n};","import * as React from 'react';\n\nimport { UserAgentHelper } from 'libs/common/backbone/utils/UserAgentHelper';\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\n\nimport { CssMeasurement } from 'libs/shared/enums/CssMeasurement';\nimport { DragHelper } from 'libs/shared/utils/DragHelper';\n\nconst isTouchScreen = UserAgentHelper.isTouchScreen();\n\nconst getPositionStyling = (xPosition: number, measurement: CssMeasurement, dragPercentage?: number) => {\n // Used in situations where a touch screen user is dragging the `<FixedWidget />`\n if (measurement === CssMeasurement.Percentage && dragPercentage)\n xPosition = xPosition - dragPercentage;\n \n return {\n transform: `translate3d(${xPosition}${measurement}, 0px, 0px)`,\n // Sync with transition time in useWidgetKeyboard.ts\n transition: 'transform .4s ease-in-out'\n };\n};\n\ninterface SlidingListContainerProps extends React.PropsWithChildren<unknown> {\n position: number;\n positionType: CssMeasurement;\n\n onDrag?: (event: React.DragEvent<HTMLUListElement>) => void;\n onDragEnd?: () => void;\n\n onTouchMove?: (event: React.TouchEvent<HTMLUListElement>) => void;\n onTouchEnd?: () => void;\n\n percentageDragged?: number;\n}\n\nexport const SlidingListContainer = React.forwardRef((\n props: SlidingListContainerProps,\n ref: React.MutableRefObject<HTMLUListElement>\n): JSX.Element => {\n const { children, positionType, onDrag, onDragEnd, onTouchMove, onTouchEnd, percentageDragged, position = 0 } = props;\n\n function getEventListeners(): HashObject {\n const listenerProps: HashObject = {};\n\n if (onDrag && onDragEnd) {\n listenerProps.draggable = true;\n listenerProps.onDragEnd = onDragEnd;\n listenerProps.onDragStart = DragHelper.hideDragImage;\n listenerProps.onDragOver = onDrag;\n }\n\n if (onTouchMove && onTouchEnd && isTouchScreen) {\n listenerProps.onTouchMoveCapture = onTouchMove;\n listenerProps.onTouchEndCapture = onTouchEnd;\n }\n\n return listenerProps;\n }\n\n return (\n <ul\n className='list-unstyled d-flex flex-nowrap position-relative w-100 mb-0'\n style={getPositionStyling(position, positionType, percentageDragged)}\n ref={ref}\n {...getEventListeners()}\n >\n {children}\n </ul>\n );\n});","export enum WidgetInteraction {\n Init = 'init',\n Next = 'next',\n Previous = 'previous',\n Resize = 'resize',\n Drag = 'drag',\n Update = 'update',\n JumpToIndex = 'jump-to-index'\n}"],"names":["WarningOutlineSvg","props","jsx","namespace","getPhrase","LanguageService","SeeMore","styles","AppLink","LocationContext","ClickDescriptor","WidgetHeader","hasDescription","Fragment","isBelowMinimum","WidgetHelper","minContent","_a","WidgetTypeIdConfig","jsxs","SvgContainer","React","SLIDER_ANIMATION_TIME","useWidgetKeyboard","options","type","state","containerRef","mediaQuery","isTabbing","setIsTabbing","dynamicAttributes","setDynamicAttributes","focusedWidgetIndex","setFocusedWidgetIndex","isTouch","UserAgentHelper","getDynamicAttributes","dynamicWidgetState","focusableItems","acc","item","rect","isItemVisable","getFixedAttributes","index","fixedWidgetState","focusNext","items","nextFocusableElement","i","focusPrev","prevFocusableElement","onFocusWidget","onBlurWidget","CssMeasurement","blankImage","DragHelper","event","FunctionHelper","isTouchScreen","getPositionStyling","xPosition","measurement","dragPercentage","SlidingListContainer","React.forwardRef","ref","children","positionType","onDrag","onDragEnd","onTouchMove","onTouchEnd","percentageDragged","position","getEventListeners","listenerProps","WidgetInteraction"],"mappings":"wJAEO,SAASA,EAAkBC,EAAsC,CACtE,OACEC,EAAAA,IAAC,MAAA,CAAK,GAAGD,EACP,SAAAC,EAAAA,IAAC,OAAA,CACC,EAAE,wPACF,KAAK,cAAA,CAAA,EAET,CAEJ,0CCMMC,EAAY,sBACZC,EAAYC,EAAgB,iBAAiBF,CAAS,EAkB5D,SAASG,EAAQL,EAA0B,CACzC,aACG,MAAA,CAAI,UAAW,QAAQM,EAAO,OAAO,GACpC,SAAAL,EAAAA,IAACM,EAAA,CACC,QAASP,EAAM,QACf,cAAeA,EAAM,cACrB,iBAAkB,CAChB,SAAUQ,EAAgB,YAC1B,GAAGR,EAAM,iBACT,WAAYS,EAAgB,OAAA,EAE9B,UAAW,wBAAwBT,EAAM,QAAU,sBAAwB,EAAE,GAE7E,eAAC,IAAA,CAAE,UAAU,wDAAyD,SAAAG,EAAU,QAAQ,CAAA,CAAE,CAAA,CAAA,EAE9F,CAEJ,CAEO,SAASO,EAAaV,EAAuC,OAClE,MAAMW,EAAiB,CAAC,CAACX,EAAM,YAE/B,GAAI,CAACA,EAAM,MAAQ,CAACA,EAAM,YACxB,OAAOC,EAAAA,IAAAW,EAAAA,SAAA,EAAE,EAEX,MAAMC,EAAiBC,EAAa,sBAAsBd,EAAM,QAASA,EAAM,YAAY,EACrFe,IAAaC,EAAAC,EAAmBjB,EAAM,YAAY,IAArC,YAAAgB,EAAwC,aAAc,EAEzE,OACEE,EAAAA,KAAC,MAAA,CAAI,UAAU,wBACb,SAAA,CAAAA,EAAAA,KAAC,MAAA,CAAI,UAAU,iCACZ,SAAA,CAAA,CAAC,CAAClB,EAAM,MACPkB,EAAAA,KAAC,MAAA,CAAI,UAAU,4BACb,SAAA,CAAAjB,EAAAA,IAACM,EAAA,CACC,QAASP,EAAM,QACf,cAAeA,EAAM,cACrB,UAAW,wBAAwBA,EAAM,QAAU,iCAAmC,EAAE,GACxF,QAASA,EAAM,QAEf,SAAAkB,EAAAA,KAAC,KAAA,CAAG,UAAU,4BACX,SAAA,CAAAlB,EAAM,cAAgBa,GACrBZ,EAAAA,IAACkB,EAAA,CACC,IAAKpB,EACL,MAAO,oDAAoDgB,CAAU,2BACrE,gBAAe,GACf,yBAAyB,2BAAA,CAAA,EAG5Bf,EAAM,IAAA,CAAA,CACT,CAAA,CAAA,EAED,CAAC,CAACoB,EAAM,eAAepB,EAAM,cAAc,GAAKA,EAAM,cAAA,EACzD,EAED,CAAC,CAACA,EAAM,SAAW,CAACW,GAAkB,CAAC,CAACX,EAAM,iBAAmBC,EAAAA,IAACI,EAAA,CAAS,GAAGL,CAAA,CAAM,CAAA,EACvF,EAECW,GACCO,EAAAA,KAAC,MAAA,CAAI,UAAU,iDACb,SAAA,CAAAjB,EAAAA,IAAC,KAAE,UAAW,yCACZ,eAAC,OAAA,CAAM,SAAAD,EAAM,YAAY,CAAA,CAC3B,EACC,CAAC,CAACA,EAAM,SAAW,CAAC,CAACA,EAAM,iBAAmBC,MAACI,EAAA,CAAS,GAAGL,CAAA,CAAM,CAAA,CAAA,CACpE,CAAA,EAEJ,CAEJ,CC9FA,MAAMqB,EAAwB,IAkBvB,SAASC,EAAkBC,EAA4B,CAC5D,KAAM,CAAE,KAAAC,EAAM,MAAAC,EAAO,aAAAC,EAAc,WAAAC,GAAeJ,EAE5C,CAAEK,EAAWC,CAAa,EAAIT,EAAM,SAAS,EAAK,EAClD,CAAEU,EAAmBC,CAAqB,EAAIX,EAAM,SAAqB,CAAA,CAAE,EAC3E,CAAEY,EAAoBC,CAAsB,EAAIb,EAAM,SAAS,IAAI,EAEnEc,EAAUd,EAAM,QAAQ,IAAMe,EAAgB,cAAA,EAAiB,EAAE,EAKvEf,EAAM,UAAU,IAAM,CAChBI,IAAS,WAAa,CAACE,EAAa,SAAW,CAAED,EAA6B,uBAAyBS,GAE3G,WAAW,IAAME,IAAwBf,EAAwB,EAAE,CACrE,EAAG,CACDK,EAAa,QACbC,EACCF,EAA6B,OAC7BA,EAA6B,qBAAA,CAC/B,EAED,SAASW,GAAuB,OAC9B,MAAMC,EAAqBZ,EAE3B,GAAI,GAACT,EAAAU,EAAa,UAAb,MAAAV,EAAsB,UACzB,OAEF,MAAMsB,EAAiB,MAAM,KAAKZ,EAAa,QAAQ,QAAQ,EAAE,OAAO,CAACa,EAAKC,IAAS,CACrF,MAAMC,EAAOD,GAAA,YAAAA,EAAM,wBAMbE,EACJD,EAAK,KAAOJ,EAAmB,wBAC/BI,EAAK,MAAQJ,EAAmB,sBAElC,MAAO,CACL,GAAGE,EACH,CAACC,EAAK,EAAE,EAAGE,EACP,CACA,cAAe,EAAA,EACb,CACF,cAAe,GACf,MAAS,MAAA,CACX,CAEN,EAAG,CAAA,CAAE,EAELX,EAAqBO,CAAc,CACrC,CAKA,SAASK,EAAmBC,EAAgB,CAC1C,MAAMC,EAAmBpB,EAMzB,OAHES,GACAU,GAAUC,EAAiB,OAASA,EAAiB,eACrDD,EAAQC,EAAiB,OAElB,CACL,cAAe,EAAA,EAIZ,CACL,MAAS,OACT,cAAe,EAAA,CAEnB,CAMA,SAASC,GAAY,CACnB,WAAW,IAAM,CACf,GAAI,CAACpB,EAAa,QAChB,OAEF,MAAMqB,EAAQrB,EAAa,QAAQ,iBAAiB,iBAAiB,EAErE,IAAIsB,EAAoC,KAExC,QAASC,EAAKjB,EAAqB,EAAIiB,EAAIF,EAAM,QAC3C,CAAAC,EADmDC,IAIvDD,EAAuBD,EAAME,CAAC,EAAE,cAAc,iBAAiB,EAG7DD,GACFA,EAAqB,MAAA,CACzB,EAAG3B,EAAwB,GAAG,CAChC,CAEA,SAAS6B,GAAY,CACnB,WAAW,IAAM,CACf,GAAI,CAACxB,EAAa,QAChB,OAEF,MAAMqB,EAAQrB,EAAa,QAAQ,iBAAiB,iBAAiB,EAErE,IAAIyB,EAAoC,KACxC,QAASF,EAAIjB,EAAqB,EAAGiB,GAAK,GACpC,CAAAE,EADuCF,IAI3CE,EADaJ,EAAME,CAAC,EACQ,cAAc,iBAAiB,EAGzDE,GACFA,EAAqB,MAAA,CACzB,EAAG9B,EAAwB,GAAG,CAChC,CAEA,SAAS+B,EAAcR,EAAe,CAChC,SAAS,cAAc,kBAAkB,IAC3Cf,EAAa,EAAI,EACjBI,EAAsBW,CAAK,EAE/B,CAEA,SAASS,GAAe,CACjB,SAAS,cAAc,kBAAkB,IAC5CxB,EAAa,EAAK,EAClBI,EAAsB,IAAI,EAE9B,CAEA,MAAO,CACL,UAAAL,EACA,cAAAwB,EACA,aAAAC,EACA,mBAAAV,EACA,kBAAAb,EACA,UAAAgB,EACA,UAAAI,CAAA,CAEJ,CC5KO,IAAKI,GAAAA,IACVA,EAAA,WAAa,IACbA,EAAA,OAAS,KAFCA,IAAAA,GAAA,CAAA,CAAA,ECEZ,MAAMC,EAAa,IAAI,MACvBA,EAAW,IAAM,yEAEV,MAAMC,EAAa,CAExB,cAAcC,EAA2C,CACnD,CAACA,EAAM,aAAa,cAAgB,CAACC,EAAe,WAAWD,EAAM,aAAa,YAAY,GAGlGA,EAAM,aAAa,aAAaF,EAAY,EAAG,CAAC,CAClD,CACF,ECLMI,EAAgBxB,EAAgB,cAAA,EAEhCyB,EAAqB,CAACC,EAAmBC,EAA6BC,KAEtED,IAAgBR,EAAe,YAAcS,IAC/CF,EAAYA,EAAYE,GAEnB,CACL,UAAW,eAAeF,CAAS,GAAGC,CAAW,cAEjD,WAAY,2BAAA,GAiBHE,GAAuBC,EAAAA,WAAiB,CACnDjE,EACAkE,IACgB,CAChB,KAAM,CAAE,SAAAC,EAAU,aAAAC,EAAc,OAAAC,EAAQ,UAAAC,EAAW,YAAAC,EAAa,WAAAC,EAAY,kBAAAC,EAAmB,SAAAC,EAAW,CAAA,EAAM1E,EAEhH,SAAS2E,GAAgC,CACvC,MAAMC,EAA4B,CAAA,EAElC,OAAIP,GAAUC,IACZM,EAAc,UAAY,GAC1BA,EAAc,UAAYN,EAC1BM,EAAc,YAAcpB,EAAW,cACvCoB,EAAc,WAAaP,GAGzBE,GAAeC,GAAcb,IAC/BiB,EAAc,mBAAqBL,EACnCK,EAAc,kBAAoBJ,GAG7BI,CACT,CAEA,OACE3E,EAAAA,IAAC,KAAA,CACC,UAAU,gEACV,MAAO2D,EAAmBc,EAAUN,EAAcK,CAAiB,EACnE,IAAAP,EACC,GAAGS,EAAA,EAEH,SAAAR,CAAA,CAAA,CAGP,CAAC,ECrEM,IAAKU,GAAAA,IACVA,EAAA,KAAO,OACPA,EAAA,KAAO,OACPA,EAAA,SAAW,WACXA,EAAA,OAAS,SACTA,EAAA,KAAO,OACPA,EAAA,OAAS,SACTA,EAAA,YAAc,gBAPJA,IAAAA,GAAA,CAAA,CAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{j as i,l as r}from"./app-DiXzpOyg.js";const a="_circle_15nxd_1",n="_img_15nxd_6",l={circle:a,img:n};t.defaultProps={textVariant:"white"};function t(e){return!e.imageUrl&&!e.svg?i.jsx(i.Fragment,{}):e.imageUrl?i.jsx("div",{className:`${l.img} rounded-circle h-100 w-100`,style:{backgroundImage:`url(${e.imageUrl})`},children:" "}):i.jsx("div",{className:`${l.circle} ${e.variant?`bg-${e.variant}`:""} text-${e.textVariant} rounded-circle h-100 w-100 ${e.svgWrapperClassName??""}`,children:i.jsx(r,{svg:e.svg,size:e.svgSize})})}function s(e){return i.jsx("svg",{...e,children:i.jsx("path",{fill:"currentColor",fillRule:"evenodd",d:"M16.247 7.341a1 1 0 0 1 1.506 1.318l-7 8a1 1 0 0 1-1.46.048l-3-3a1 1 0 1 1 1.414-1.414l2.244 2.244z",clipRule:"evenodd"})})}export{s as C,t as I};
|
|
2
|
+
//# sourceMappingURL=DFhkO_lZ.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DFhkO_lZ.chunk.js","sources":["../../../../libs/shared/src/components/icon-circle/IconCircle.tsx","../../../../libs/shared/src/images/svg/status/CheckSvg.tsx"],"sourcesContent":["import React from 'react';\nimport { ButtonProps } from 'react-bootstrap';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { SvgIcon } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './icon-circle.module.scss';\n\ninterface IconCircleProps {\n svg?: SvgIcon;\n imageUrl?: string;\n svgSize?: SvgContainerSize;\n variant?: ButtonProps['variant'];\n textVariant?: ButtonProps['variant'];\n svgWrapperClassName?: string;\n}\n\nIconCircle.defaultProps = {\n textVariant: 'white'\n};\n\nexport function IconCircle(props: IconCircleProps): JSX.Element {\n if (!props.imageUrl && !props.svg)\n return <></>;\n\n if (props.imageUrl) {\n return (\n <div className={`${styles.img} rounded-circle h-100 w-100`} style={{ backgroundImage: `url(${props.imageUrl})` }}>\n \n </div>\n );\n }\n\n return (\n <div className={`${styles.circle} ${props.variant ? `bg-${props.variant}` : ''} text-${props.textVariant} rounded-circle h-100 w-100 ${props.svgWrapperClassName ?? ''}`}>\n <SvgContainer svg={props.svg} size={props.svgSize} />\n </div>\n );\n}","import React from 'react';\n\nexport function CheckSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n fill='currentColor'\n fillRule='evenodd'\n d='M16.247 7.341a1 1 0 0 1 1.506 1.318l-7 8a1 1 0 0 1-1.46.048l-3-3a1 1 0 1 1 1.414-1.414l2.244 2.244z'\n clipRule='evenodd'\n />\n </svg>\n );\n}\n"],"names":["IconCircle","props","jsx","Fragment","styles","SvgContainer","CheckSvg"],"mappings":"2GAiBAA,EAAW,aAAe,CACxB,YAAa,OACf,EAEO,SAASA,EAAWC,EAAqC,CAC9D,MAAI,CAACA,EAAM,UAAY,CAACA,EAAM,IACrBC,EAAAA,IAAAC,EAAAA,SAAA,EAAE,EAEPF,EAAM,SAENC,EAAAA,IAAC,MAAA,CAAI,UAAW,GAAGE,EAAO,GAAG,8BAA+B,MAAO,CAAE,gBAAiB,OAAOH,EAAM,QAAQ,GAAA,EAAO,SAAA,IAElH,EAKFC,EAAAA,IAAC,MAAA,CAAI,UAAW,GAAGE,EAAO,MAAM,IAAIH,EAAM,QAAU,MAAMA,EAAM,OAAO,GAAK,EAAE,SAASA,EAAM,WAAW,+BAA+BA,EAAM,qBAAuB,EAAE,GACpK,SAAAC,MAACG,EAAA,CAAa,IAAKJ,EAAM,IAAK,KAAMA,EAAM,QAAS,EACrD,CAEJ,CCpCO,SAASK,EAASL,EAAsC,CAC7D,OACEC,EAAAA,IAAC,MAAA,CAAK,GAAGD,EACP,SAAAC,EAAAA,IAAC,OAAA,CACC,KAAK,eACL,SAAS,UACT,EAAE,sGACF,SAAS,SAAA,CAAA,EAEb,CAEJ"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{b5 as p,a6 as a,bc as l,a5 as v,ao as b,dt as V}from"./app-DiXzpOyg.js";import{a as $}from"./CEmtkty-.chunk.js";import{P as m}from"./pkzD5BEm.chunk.js";var g=(e=>(e.Series="series",e.Playlist="playlist",e.Widget="widget",e.Folder="category",e.CategoryTree="categoryTree",e))(g||{}),n=(e=>(e.Newest="newest",e.Oldest="oldest",e.RecentlyAdded="recently_added",e.AtoZ="atoz",e.ZtoA="ztoa",e.Series="series",e.ProductionYear="production_year",e))(n||{});const k=(e,t)=>`${t?`${t}:`:""}video:sort:${e}`,f=n.RecentlyAdded,T={getValidSortTypeFromParam(e){return Object.values(n).includes(e)?e:n.Newest},getOrSetSortType(e,t,r,i){const s=k(e,i);return(t||!p.cacheExists(s))&&p.cacheSet(s,t||r||f),t||(t=p.cacheGet(s)),t},getVideoSortParam(e){switch(e){case n.AtoZ:return"orderby:name";case n.ZtoA:return"orderbydesc:name";case n.Newest:return"orderbydesc:datecreated";case n.Oldest:return"orderby:datecreated";case n.RecentlyAdded:return"orderbydesc:timestamp";case n.Series:return"orderby:seriessort";case n.ProductionYear:return"orderbydesc:productionyear";default:return}}},u={sharedVideo:(e,t)=>a.urlBuilder(`/api/objects/${e}`,{shareId:t,query:l.VIDEO}),publicVideo:(e,t)=>a.urlBuilder(`/api/objects/${e}`,{query:"thumbnail,_canBeConsumed,series,season,_rating,libraries{typeId:[17]}",permissionFilterOption:m.StripMetadata,shareId:t}),getVideosById:e=>a.urlBuilder("{gateway}/v1/objects",{"query.video":l.VIDEO_COLLECTION,"query.clip":l.CLIP_COLLECTION,"query.interactive":l.INTERACTIVE_COLLECTION,id:e}),relatedVideos:e=>{const{videoId:t,context:r,collectionId:i,moviesAndTv:s,limit:c}=e,o={videoId:t,limit:c,query:l.VIDEO_COLLECTION};return r&&(r===g.Widget?o["context.widgetId"]=i:(o["context.collectionType"]=r,o["context.collectionId"]=i)),s&&(o["context.moviesAndTv"]=!0),a.urlBuilder("{gateway}/v1/suggestions/related-videos",o)}},q={video(e,t){return{url:a.urlBuilder(`{gateway}/v1/objects/${e}`,{query:l.VIDEO,permissionFilterOption:t}),publicUrl:a.urlBuilder(`/api/objects/${e}`,{query:V.VIDEO,permissionFilterOption:t}),key:`videos:${e}:${t}`}},publicVideo(e,t,r,i){return{url:u.publicVideo(e,t),key:`videos:${e}:public:${t}`,bootstrapName:`shared:object:${e}`,success:r,error:i}},sharedVideo(e,t,r,i){return{url:u.sharedVideo(e,t),key:`shared:video:${e}`,success:r,error:i}},myVideos(e,t){const{VIDEO_COLLECTION:r,CLIP_COLLECTION:i,INTERACTIVE:s}=l,c=`videos[${r}]{libraries.typeid:${b.WorkspaceCollection}}`,o=`clips[${i}]`,d=`interactives[${s}]{status:[${$.Published},${$.Draft}]}`,y={query:`(${c}|${o}|${d}){orderbydesc:id}`,permissionFilterOption:m.StripMetadata};return t&&(y.cursor=t),{url:a.urlBuilder(`{gateway}/v1/objects/${e}/members`,y),key:`my:videos:${t}`}},videos(e,t){return{url:u.getVideosById(e),key:`videos:by:id:${e.join(",")}`,success:t}},watchHistoryVideos(e,t){return{url:u.getVideosById(e),key:`watch:history:videos:by:id:${e.join(",")}`,success:t}},updateVideo(e,t,r,i,s){return{key:`update:video:${e}`,url:`{gateway}/v1/objects/${e}`,type:v.PUT,data:t,success:r,error:i,always:s}},videoRatings(e,t){const r=e.map(i=>`id=${i}`);if(r.length)return{url:`/api/domain/v2/objects?query=rating&${r.join("&")}`,key:`video:ratings:by:id:${e.join(",")}`,normalizeOptions:{namespace:t}}},videoMixinAssocs(e,t){if(e.map(i=>`id=${i}`).length)return{url:a.urlBuilder("{gateway}/v1/objects",{query:"interactives{limit:100},resources{limit:100},links{limit:100},_hasCurriculumLinks",id:e}),publicUrl:a.urlBuilder("/api/objects",{query:"interactives{limit:100},resources{limit:100},links{limit:100},_hasCurriculumLinks",id:e}),key:`video:mixin:assocs:${e.join(",")}`,normalizeOptions:{namespace:t}}},getRestrictions(e){const t=e.slice().sort();return{url:`/api/domain/v1/restrictedobjects?objectTypeId=${b.Video}${t.map(r=>`&objectId=${r}`).join("")}`,key:`restrictions:${t.join(",")}`,normalizeOptions:{namespace:"domain",idAttribute:"objectId"}}},delete(e,t,r){return{url:`{gateway}/v1/objects/${e}`,key:`delete:video:${e}`,type:v.DELETE,success:t,error:r,invalidationKeys:["videos","search"]}},deleteBulk(e,t,r,i,s){const c=e.map(d=>`videoIds=${d}`).join("&"),o=[`categoryId=${r}`,`${c}`].join("&");return{url:`/api/domain/v1/libraries/${t}/videos?${o}`,key:`delete:bulk:video:${e.join(":")}:${t}:${r}`,type:v.DELETE,success:i,error:s,invalidationKeys:["videos","search"]}},relatedVideos(e){const{videoId:t,context:r,collectionId:i,moviesAndTv:s}=e;return{url:u.relatedVideos(e),key:`related:videos:${t}:${r}:${i}:${s}`}},collectionVideos(e,t,r,i,s,c){const o=T.getVideoSortParam(t),{VIDEO_COLLECTION:d,CLIP_COLLECTION:y,INTERACTIVE:O}=l,j=`videos[${d}]`,I=`clips[${y}]`,E=`interactives[${O}]{status:[${$.Published},${$.Draft}]}`,h={query:`(${j}|${I}|${E})${o?`{${o}}`:""}`,permissionFilterOption:m.FilterOut,...r?{cursor:r}:{}},C=["folder","videos",e,r,t].filter(L=>!!L).join(":");return{url:a.urlBuilder(`{gateway}/v1/objects/${e}/members`,h),key:C,success:i,error:s,always:c}},pointsOfInterest(e,t,r,i,s){const c={query:"{limit:100}",cursor:t};return{url:a.urlBuilder(`{gateway}/v1/objects/${e}/pointsofinterest`,c),publicUrl:a.urlBuilder(`/api/objects/${e}/pointsofinterest`,c),key:`pointsofinterest:${e}${t?`:${t}`:""}`,success:r,error:i,always:s}},regionAlternatives(e,t,r,i){return{url:`/api/objects/videos/${e}/region-alternatives`,publicUrl:`/api/objects/videos/${e}/region-alternatives`,key:`video:regionAlternatives:${e}`,normalize:!1,success:t,error:r,always:i}}};export{q as V};
|
|
2
|
+
//# sourceMappingURL=DIIFVn0p.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DIIFVn0p.chunk.js","sources":["../../../../libs/shared/src/enums/RelatedVideosContext.ts","../../../../libs/shared/src/enums/VideoSortType.ts","../../../../libs/shared/src/utils/VideoSortHelper.ts","../../../../libs/shared/src/flight-requests/VideoRequests.ts"],"sourcesContent":["export enum RelatedVideosContext {\n Series = 'series',\n Playlist = 'playlist',\n Widget = 'widget',\n Folder = 'category',\n CategoryTree = 'categoryTree'\n}","export enum VideoSortType {\n Newest = 'newest',\n Oldest = 'oldest',\n RecentlyAdded = 'recently_added',\n AtoZ = 'atoz',\n ZtoA = 'ztoa',\n Series = 'series',\n ProductionYear = 'production_year'\n}","import { LocalStorageHelper } from 'libs/common/backbone/utils/LocalStorageHelper';\n\nimport { VideoSortType } from 'libs/shared/enums/VideoSortType';\n\nconst getCacheKey = (userId: string, keyPrefix: string) => `${keyPrefix ? `${keyPrefix}:` : ''}video:sort:${userId}`;\n\nconst DEFAULT_SORT = VideoSortType.RecentlyAdded;\n\nexport const VideoSortHelper = {\n getValidSortTypeFromParam(sortParam: string): VideoSortType {\n if (Object.values(VideoSortType).includes(sortParam as VideoSortType))\n return sortParam as VideoSortType;\n\n return VideoSortType.Newest;\n },\n\n getOrSetSortType(\n userId: string,\n sortType?: VideoSortType,\n defaultSort?: VideoSortType,\n keyPrefix?: string\n ): VideoSortType {\n const cacheKey = getCacheKey(userId, keyPrefix);\n\n /**\n * If there is a sortType param, cache it.\n * If there isn't a sortType param and no value exists\n * in local storage, we need to set a default.\n */\n if (sortType || !LocalStorageHelper.cacheExists(cacheKey))\n LocalStorageHelper.cacheSet(cacheKey, sortType || defaultSort || DEFAULT_SORT);\n\n if (!sortType)\n sortType = LocalStorageHelper.cacheGet(cacheKey);\n\n return sortType;\n },\n\n getVideoSortParam(sortType?: VideoSortType): string {\n switch (sortType) {\n case VideoSortType.AtoZ:\n return 'orderby:name';\n \n case VideoSortType.ZtoA:\n return 'orderbydesc:name';\n \n case VideoSortType.Newest:\n return 'orderbydesc:datecreated';\n \n case VideoSortType.Oldest:\n return 'orderby:datecreated';\n \n case VideoSortType.RecentlyAdded:\n return 'orderbydesc:timestamp';\n \n case VideoSortType.Series:\n return 'orderby:seriessort';\n\n case VideoSortType.ProductionYear:\n return 'orderbydesc:productionyear';\n \n default:\n return;\n }\n }\n};","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { Xhr } from 'libs/common/backbone/interfaces/Xhr';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { PublicWithStatement, SharedWithStatements } from 'libs/shared/constants/WithStatements';\nimport { CurationStatus } from 'libs/shared/enums/CurationStatus';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { PermissionFilterOption } from 'libs/shared/enums/PermissionFilterOption';\nimport { RelatedVideosContext } from 'libs/shared/enums/RelatedVideosContext';\nimport { VideoSortType } from 'libs/shared/enums/VideoSortType';\nimport { PointOfInterestCollection, UpdateVideoRequest, Video, VideoCollection } from 'libs/shared/interfaces';\nimport { RegionAlternative } from 'libs/shared/interfaces/models/RegionAlternative';\nimport { VideoSortHelper } from 'libs/shared/utils/VideoSortHelper';\n\nconst endpoints = {\n sharedVideo: (id: string, shareId: string) => UrlHelper.urlBuilder(`/api/objects/${id}`, {\n shareId,\n query: SharedWithStatements.VIDEO\n }),\n\n publicVideo: (id: string, shareId?: string) => UrlHelper.urlBuilder(`/api/objects/${id}`, {\n // Query statement here is coupled with ClickView.Lite.Common\\Services\\OpenGraph\\OpenGraphService.cs\n // in lite. If you update this, please update both.\n query: 'thumbnail,_canBeConsumed,series,season,_rating,libraries{typeId:[17]}',\n permissionFilterOption: PermissionFilterOption.StripMetadata,\n shareId\n }),\n\n getVideosById: (ids: string[]) => {\n return UrlHelper.urlBuilder('{gateway}/v1/objects', {\n 'query.video': SharedWithStatements.VIDEO_COLLECTION,\n 'query.clip': SharedWithStatements.CLIP_COLLECTION,\n 'query.interactive': SharedWithStatements.INTERACTIVE_COLLECTION,\n 'id': ids\n });\n },\n\n relatedVideos: (options: {\n videoId: string;\n context?: RelatedVideosContext;\n collectionId?: string;\n moviesAndTv?: boolean;\n limit: number;\n }) => {\n const { videoId, context, collectionId, moviesAndTv, limit } = options;\n\n const params: HashObject = {\n videoId,\n limit,\n query: SharedWithStatements.VIDEO_COLLECTION\n };\n\n if (context) {\n if (context === RelatedVideosContext.Widget) {\n params['context.widgetId'] = collectionId;\n } else {\n params['context.collectionType'] = context;\n params['context.collectionId'] = collectionId;\n }\n }\n\n if (moviesAndTv)\n params['context.moviesAndTv'] = true;\n\n return UrlHelper.urlBuilder('{gateway}/v1/suggestions/related-videos', params);\n }\n};\n\nexport const VideoRequests = {\n video(id: string, permissionFilterOption?: PermissionFilterOption): Flight.PublicRequest {\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/${id}`, {\n query: SharedWithStatements.VIDEO,\n permissionFilterOption\n }),\n publicUrl: UrlHelper.urlBuilder(`/api/objects/${id}`, {\n query: PublicWithStatement.VIDEO,\n permissionFilterOption\n }),\n key: `videos:${id}:${permissionFilterOption}`\n };\n },\n\n publicVideo(\n id: string,\n shareId?: string,\n success?: (video: Video) => void,\n error?: (xhr: Xhr) => void\n ): Flight.Request {\n return {\n url: endpoints.publicVideo(id, shareId),\n key: `videos:${id}:public:${shareId}`,\n bootstrapName: `shared:object:${id}`,\n success,\n error\n };\n },\n\n sharedVideo(\n id: string,\n shareId: string,\n success?: (video: Video) => void,\n error?: (xhr: Xhr) => void\n ): Flight.Request {\n return {\n url: endpoints.sharedVideo(id, shareId),\n key: `shared:video:${id}`,\n success,\n error\n };\n },\n\n myVideos(userId: string, cursor: string): Flight.Request {\n const { VIDEO_COLLECTION, CLIP_COLLECTION, INTERACTIVE } = SharedWithStatements;\n\n const videoQuery = `videos[${VIDEO_COLLECTION}]{libraries.typeid:${MasterType.WorkspaceCollection}}`;\n const clipQuery = `clips[${CLIP_COLLECTION}]`;\n const interactiveQuery = `interactives[${INTERACTIVE}]{status:[${CurationStatus.Published},${CurationStatus.Draft}]}`;\n\n const params: HashObject = {\n query: `(${videoQuery}|${clipQuery}|${interactiveQuery}){orderbydesc:id}`,\n permissionFilterOption: PermissionFilterOption.StripMetadata\n };\n\n if (cursor)\n params.cursor = cursor;\n\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/${userId}/members`, params),\n key: `my:videos:${cursor}`\n };\n },\n\n videos(ids: string[], success?: (videos: Video[]) => void): Flight.Request {\n return {\n url: endpoints.getVideosById(ids),\n key: `videos:by:id:${ids.join(',')}`,\n success\n };\n },\n\n watchHistoryVideos(\n ids: string[],\n success?: (videos: Video[]) => void\n ): Flight.Request {\n return {\n url: endpoints.getVideosById(ids),\n key: `watch:history:videos:by:id:${ids.join(',')}`,\n success\n };\n },\n\n updateVideo(\n id: string,\n data: UpdateVideoRequest,\n success?: () => void,\n error?: () => void,\n always?: () => void\n ): Flight.Request {\n return {\n key: `update:video:${id}`,\n url: `{gateway}/v1/objects/${id}`,\n type: HttpVerbs.PUT,\n data,\n success,\n error,\n always\n };\n },\n\n /**\n * This is simply an example to show the prototype for useVideoMixin\n * eventually there will be endpoints in domain that let us fetch members\n * without fetching the objects properties, so we can fetch stuff like\n * hasInteractives and isFavourited as subsequent calls\n */\n videoRatings(ids: string[], namespace?: string): Flight.Request {\n const params = ids.map(i => `id=${i}`);\n\n if (!params.length)\n return;\n\n return {\n url: `/api/domain/v2/objects?query=rating&${params.join('&')}`,\n key: `video:ratings:by:id:${ids.join(',')}`,\n normalizeOptions: {\n namespace\n }\n };\n },\n\n videoMixinAssocs(ids: string[], namespace?: string): Flight.PublicRequest {\n const params = ids.map(i => `id=${i}`);\n\n if (!params.length)\n return;\n\n /**\n * IMPORTANT!\n * \n * This request is used for BOTH clips and videos. This means these requests will fail if you\n * add assocs in the future that are not supported for both object types. If you find yourself in this\n * case, what you should do is:\n * \n * 1. Consider whether clips should support the assoc that you're hydrating for videos. In most cases,\n * I think they should, as we want clips and videos to basically support the same fields and metadata.\n * 2. If the above is false or can't be done right now, you will need to create a separate request for clips\n * and update the logic in useVideoMixin to handle this.\n */\n return {\n url: UrlHelper.urlBuilder('{gateway}/v1/objects', {\n query: 'interactives{limit:100},resources{limit:100},links{limit:100},_hasCurriculumLinks',\n id: ids\n }),\n publicUrl: UrlHelper.urlBuilder(`/api/objects`, {\n query: 'interactives{limit:100},resources{limit:100},links{limit:100},_hasCurriculumLinks',\n id: ids\n }),\n /**\n * We are intentionally NOT sorting the IDs here. This is because `useVideoMixin` wants to provide\n * the IDs in their original order so that the cache key here doesn't change for subsequent calls.\n * \n * Here is an example of a problem that would occur if we were sorting: say we search for something,\n * and load the first page of 25 results. The videos and clips here would have their IDs sorted in the cache\n * key, then fetched. Then, we scrolled down and fetched the next 25, leading to 50 IDs in the array. If we\n * sort the IDs in the key, the keys would change from the first request, leading to all of the videos/clips\n * from the first request being fetched a second time unnecessarily. Every time you'd fetch a new page, you'd\n * be making multiple unnecessary API calls.\n * \n * TL;DR: Don't sort the IDs here, `useVideoMixin` will handle that.\n */\n key: `video:mixin:assocs:${ids.join(',')}`,\n normalizeOptions: {\n namespace\n }\n };\n },\n\n getRestrictions(videoIds: string[]): Flight.Request {\n const sortedIds = videoIds.slice().sort();\n\n return {\n url: '/api/domain/v1/restrictedobjects'\n + `?objectTypeId=${MasterType.Video}${sortedIds.map(id => `&objectId=${id}`).join('')}`,\n key: `restrictions:${sortedIds.join(',')}`,\n normalizeOptions: {\n namespace: 'domain',\n idAttribute: 'objectId'\n }\n };\n },\n\n delete(videoId: string, success?: () => void, error?: () => void): Flight.Request {\n return {\n url: `{gateway}/v1/objects/${videoId}`,\n key: `delete:video:${videoId}`,\n type: HttpVerbs.DELETE,\n success,\n error,\n invalidationKeys: [ 'videos', 'search' ]\n };\n },\n\n deleteBulk(\n videoId: string[],\n libraryId: string,\n categoryId: string,\n success?: () => void,\n error?: () => void\n ): Flight.Request {\n const videoIds = videoId.map(id => `videoIds=${id}`).join('&');\n const params = [\n `categoryId=${categoryId}`,\n `${videoIds}`\n ].join('&');\n\n return {\n url: `/api/domain/v1/libraries/${libraryId}/videos?${params}`,\n key: `delete:bulk:video:${videoId.join(':')}:${libraryId}:${categoryId}`,\n type: HttpVerbs.DELETE,\n success,\n error,\n invalidationKeys: [ 'videos', 'search' ]\n };\n },\n\n relatedVideos(options: {\n videoId: string;\n context?: RelatedVideosContext;\n collectionId?: string;\n moviesAndTv?: boolean;\n /**\n * This limit is intentionall not in the key. See useGetRelatedVideos for an explanation\n */\n limit: number;\n }): Flight.Request {\n const { videoId, context, collectionId, moviesAndTv } = options;\n\n return {\n url: endpoints.relatedVideos(options),\n key: `related:videos:${videoId}:${context}:${collectionId}:${moviesAndTv}`\n };\n },\n\n collectionVideos(\n collectionId: string,\n sort?: VideoSortType,\n cursor?: string,\n success?: (data: VideoCollection) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n const sortFilter = VideoSortHelper.getVideoSortParam(sort);\n const { VIDEO_COLLECTION, CLIP_COLLECTION, INTERACTIVE } = SharedWithStatements;\n\n const videoQuery = `videos[${VIDEO_COLLECTION}]`;\n const clipQuery = `clips[${CLIP_COLLECTION}]`;\n const interactiveQuery = `interactives[${INTERACTIVE}]{status:[${CurationStatus.Published},${CurationStatus.Draft}]}`;\n\n const params: HashObject = {\n query: `(${videoQuery}|${clipQuery}|${interactiveQuery})${sortFilter ? `{${sortFilter}}` : ''}`,\n permissionFilterOption: PermissionFilterOption.FilterOut,\n ...(cursor ? { cursor } : {})\n };\n\n const key = [ 'folder', 'videos', collectionId, cursor, sort ].filter(k => !!k).join(':');\n\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/${collectionId}/members`, params),\n key,\n success,\n error,\n always\n };\n },\n\n pointsOfInterest(\n videoId: string,\n cursor?: string,\n success?: (data: PointOfInterestCollection) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.PublicRequest {\n const queryStringObj = { query: '{limit:100}', cursor };\n\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/${videoId}/pointsofinterest`, queryStringObj),\n publicUrl: UrlHelper.urlBuilder(`/api/objects/${videoId}/pointsofinterest`, queryStringObj),\n key: `pointsofinterest:${videoId}${cursor ? `:${cursor}` : ''}`,\n success,\n error,\n always\n };\n },\n\n regionAlternatives(\n videoId: string,\n success?: (data: RegionAlternative[]) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.PublicRequest {\n return {\n url: `/api/objects/videos/${videoId}/region-alternatives`,\n publicUrl: `/api/objects/videos/${videoId}/region-alternatives`,\n key: `video:regionAlternatives:${videoId}`,\n normalize: false,\n success,\n error,\n always\n };\n }\n};\n"],"names":["RelatedVideosContext","VideoSortType","getCacheKey","userId","keyPrefix","DEFAULT_SORT","VideoSortHelper","sortParam","sortType","defaultSort","cacheKey","LocalStorageHelper","endpoints","id","shareId","UrlHelper","SharedWithStatements","PermissionFilterOption","ids","options","videoId","context","collectionId","moviesAndTv","limit","params","VideoRequests","permissionFilterOption","PublicWithStatement","success","error","cursor","VIDEO_COLLECTION","CLIP_COLLECTION","INTERACTIVE","videoQuery","MasterType","clipQuery","interactiveQuery","CurationStatus","data","always","HttpVerbs","namespace","videoIds","sortedIds","libraryId","categoryId","sort","sortFilter","key","k","queryStringObj"],"mappings":"+JAAO,IAAKA,GAAAA,IACVA,EAAA,OAAS,SACTA,EAAA,SAAW,WACXA,EAAA,OAAS,SACTA,EAAA,OAAS,WACTA,EAAA,aAAe,eALLA,IAAAA,GAAA,CAAA,CAAA,ECAAC,GAAAA,IACVA,EAAA,OAAS,SACTA,EAAA,OAAS,SACTA,EAAA,cAAgB,iBAChBA,EAAA,KAAO,OACPA,EAAA,KAAO,OACPA,EAAA,OAAS,SACTA,EAAA,eAAiB,kBAPPA,IAAAA,GAAA,CAAA,CAAA,ECIZ,MAAMC,EAAc,CAACC,EAAgBC,IAAsB,GAAGA,EAAY,GAAGA,CAAS,IAAM,EAAE,cAAcD,CAAM,GAE5GE,EAAeJ,EAAc,cAEtBK,EAAkB,CAC7B,0BAA0BC,EAAkC,CAC1D,OAAI,OAAO,OAAON,CAAa,EAAE,SAASM,CAA0B,EAC3DA,EAEFN,EAAc,MACvB,EAEA,iBACEE,EACAK,EACAC,EACAL,EACe,CACf,MAAMM,EAAWR,EAAYC,EAAQC,CAAS,EAO9C,OAAII,GAAY,CAACG,EAAmB,YAAYD,CAAQ,IACtDC,EAAmB,SAASD,EAAUF,GAAYC,GAAeJ,CAAY,EAE1EG,IACHA,EAAWG,EAAmB,SAASD,CAAQ,GAE1CF,CACT,EAEA,kBAAkBA,EAAkC,CAClD,OAAQA,EAAA,CACN,KAAKP,EAAc,KACjB,MAAO,eAET,KAAKA,EAAc,KACjB,MAAO,mBAET,KAAKA,EAAc,OACjB,MAAO,0BAET,KAAKA,EAAc,OACjB,MAAO,sBAET,KAAKA,EAAc,cACjB,MAAO,wBAET,KAAKA,EAAc,OACjB,MAAO,qBAET,KAAKA,EAAc,eACjB,MAAO,6BAET,QACE,MAAA,CAEN,CACF,ECjDMW,EAAY,CAChB,YAAa,CAACC,EAAYC,IAAoBC,EAAU,WAAW,gBAAgBF,CAAE,GAAI,CACvF,QAAAC,EACA,MAAOE,EAAqB,KAAA,CAC7B,EAED,YAAa,CAACH,EAAYC,IAAqBC,EAAU,WAAW,gBAAgBF,CAAE,GAAI,CAGxF,MAAO,wEACP,uBAAwBI,EAAuB,cAC/C,QAAAH,CAAA,CACD,EAED,cAAgBI,GACPH,EAAU,WAAW,uBAAwB,CAClD,cAAeC,EAAqB,iBACpC,aAAcA,EAAqB,gBACnC,oBAAqBA,EAAqB,uBAC1C,GAAME,CAAA,CACP,EAGH,cAAgBC,GAMV,CACJ,KAAM,CAAE,QAAAC,EAAS,QAAAC,EAAS,aAAAC,EAAc,YAAAC,EAAa,MAAAC,GAAUL,EAEzDM,EAAqB,CACzB,QAAAL,EACA,MAAAI,EACA,MAAOR,EAAqB,gBAAA,EAG9B,OAAIK,IACEA,IAAYrB,EAAqB,OACnCyB,EAAO,kBAAkB,EAAIH,GAE7BG,EAAO,wBAAwB,EAAIJ,EACnCI,EAAO,sBAAsB,EAAIH,IAIjCC,IACFE,EAAO,qBAAqB,EAAI,IAE3BV,EAAU,WAAW,0CAA2CU,CAAM,CAC/E,CACF,EAEaC,EAAgB,CAC3B,MAAMb,EAAYc,EAAuE,CACvF,MAAO,CACL,IAAKZ,EAAU,WAAW,wBAAwBF,CAAE,GAAI,CACtD,MAAOG,EAAqB,MAC5B,uBAAAW,CAAA,CACD,EACD,UAAWZ,EAAU,WAAW,gBAAgBF,CAAE,GAAI,CACpD,MAAOe,EAAoB,MAC3B,uBAAAD,CAAA,CACD,EACD,IAAK,UAAUd,CAAE,IAAIc,CAAsB,EAAA,CAE/C,EAEA,YACEd,EACAC,EACAe,EACAC,EACgB,CAChB,MAAO,CACL,IAAKlB,EAAU,YAAYC,EAAIC,CAAO,EACtC,IAAK,UAAUD,CAAE,WAAWC,CAAO,GACnC,cAAe,iBAAiBD,CAAE,GAClC,QAAAgB,EACA,MAAAC,CAAA,CAEJ,EAEA,YACEjB,EACAC,EACAe,EACAC,EACgB,CAChB,MAAO,CACL,IAAKlB,EAAU,YAAYC,EAAIC,CAAO,EACtC,IAAK,gBAAgBD,CAAE,GACvB,QAAAgB,EACA,MAAAC,CAAA,CAEJ,EAEA,SAAS3B,EAAgB4B,EAAgC,CACvD,KAAM,CAAE,iBAAAC,EAAkB,gBAAAC,EAAiB,YAAAC,CAAA,EAAgBlB,EAErDmB,EAAa,UAAUH,CAAgB,sBAAsBI,EAAW,mBAAmB,IAC3FC,EAAY,SAASJ,CAAe,IACpCK,EAAmB,gBAAgBJ,CAAW,aAAaK,EAAe,SAAS,IAAIA,EAAe,KAAK,KAE3Gd,EAAqB,CACzB,MAAO,IAAIU,CAAU,IAAIE,CAAS,IAAIC,CAAgB,oBACtD,uBAAwBrB,EAAuB,aAAA,EAGjD,OAAIc,IACFN,EAAO,OAASM,GAEX,CACL,IAAKhB,EAAU,WAAW,wBAAwBZ,CAAM,WAAYsB,CAAM,EAC1E,IAAK,aAAaM,CAAM,EAAA,CAE5B,EAEA,OAAOb,EAAeW,EAAqD,CACzE,MAAO,CACL,IAAKjB,EAAU,cAAcM,CAAG,EAChC,IAAK,gBAAgBA,EAAI,KAAK,GAAG,CAAC,GAClC,QAAAW,CAAA,CAEJ,EAEA,mBACEX,EACAW,EACgB,CAChB,MAAO,CACL,IAAKjB,EAAU,cAAcM,CAAG,EAChC,IAAK,8BAA8BA,EAAI,KAAK,GAAG,CAAC,GAChD,QAAAW,CAAA,CAEJ,EAEA,YACEhB,EACA2B,EACAX,EACAC,EACAW,EACgB,CAChB,MAAO,CACL,IAAK,gBAAgB5B,CAAE,GACvB,IAAK,wBAAwBA,CAAE,GAC/B,KAAM6B,EAAU,IAChB,KAAAF,EACA,QAAAX,EACA,MAAAC,EACA,OAAAW,CAAA,CAEJ,EAQA,aAAavB,EAAeyB,EAAoC,CAC9D,MAAMlB,EAASP,EAAI,IAAI,GAAK,MAAM,CAAC,EAAE,EAErC,GAAKO,EAAO,OAGZ,MAAO,CACL,IAAK,uCAAuCA,EAAO,KAAK,GAAG,CAAC,GAC5D,IAAK,uBAAuBP,EAAI,KAAK,GAAG,CAAC,GACzC,iBAAkB,CAChB,UAAAyB,CAAA,CACF,CAEJ,EAEA,iBAAiBzB,EAAeyB,EAA0C,CAGxE,GAFezB,EAAI,IAAI,GAAK,MAAM,CAAC,EAAE,EAEzB,OAeZ,MAAO,CACL,IAAKH,EAAU,WAAW,uBAAwB,CAChD,MAAO,oFACP,GAAIG,CAAA,CACL,EACD,UAAWH,EAAU,WAAW,eAAgB,CAC9C,MAAO,oFACP,GAAIG,CAAA,CACL,EAcD,IAAK,sBAAsBA,EAAI,KAAK,GAAG,CAAC,GACxC,iBAAkB,CAChB,UAAAyB,CAAA,CACF,CAEJ,EAEA,gBAAgBC,EAAoC,CAClD,MAAMC,EAAYD,EAAS,MAAA,EAAQ,KAAA,EAEnC,MAAO,CACL,IAAK,iDACgBR,EAAW,KAAK,GAAGS,EAAU,IAAIhC,GAAM,aAAaA,CAAE,EAAE,EAAE,KAAK,EAAE,CAAC,GACvF,IAAK,gBAAgBgC,EAAU,KAAK,GAAG,CAAC,GACxC,iBAAkB,CAChB,UAAW,SACX,YAAa,UAAA,CACf,CAEJ,EAEA,OAAOzB,EAAiBS,EAAsBC,EAAoC,CAChF,MAAO,CACL,IAAK,wBAAwBV,CAAO,GACpC,IAAK,gBAAgBA,CAAO,GAC5B,KAAMsB,EAAU,OAChB,QAAAb,EACA,MAAAC,EACA,iBAAkB,CAAE,SAAU,QAAS,CAAA,CAE3C,EAEA,WACEV,EACA0B,EACAC,EACAlB,EACAC,EACgB,CAChB,MAAMc,EAAWxB,EAAQ,IAAIP,GAAM,YAAYA,CAAE,EAAE,EAAE,KAAK,GAAG,EACvDY,EAAS,CACb,cAAcsB,CAAU,GACxB,GAAGH,CAAQ,EAAA,EACX,KAAK,GAAG,EAEV,MAAO,CACL,IAAK,4BAA4BE,CAAS,WAAWrB,CAAM,GAC3D,IAAK,qBAAqBL,EAAQ,KAAK,GAAG,CAAC,IAAI0B,CAAS,IAAIC,CAAU,GACtE,KAAML,EAAU,OAChB,QAAAb,EACA,MAAAC,EACA,iBAAkB,CAAE,SAAU,QAAS,CAAA,CAE3C,EAEA,cAAcX,EASK,CACjB,KAAM,CAAE,QAAAC,EAAS,QAAAC,EAAS,aAAAC,EAAc,YAAAC,GAAgBJ,EAExD,MAAO,CACL,IAAKP,EAAU,cAAcO,CAAO,EACpC,IAAK,kBAAkBC,CAAO,IAAIC,CAAO,IAAIC,CAAY,IAAIC,CAAW,EAAA,CAE5E,EAEA,iBACED,EACA0B,EACAjB,EACAF,EACAC,EACAW,EACgB,CAChB,MAAMQ,EAAa3C,EAAgB,kBAAkB0C,CAAI,EACnD,CAAE,iBAAAhB,EAAkB,gBAAAC,EAAiB,YAAAC,CAAA,EAAgBlB,EAErDmB,EAAa,UAAUH,CAAgB,IACvCK,EAAY,SAASJ,CAAe,IACpCK,EAAmB,gBAAgBJ,CAAW,aAAaK,EAAe,SAAS,IAAIA,EAAe,KAAK,KAE3Gd,EAAqB,CACzB,MAAO,IAAIU,CAAU,IAAIE,CAAS,IAAIC,CAAgB,IAAIW,EAAa,IAAIA,CAAU,IAAM,EAAE,GAC7F,uBAAwBhC,EAAuB,UAC/C,GAAIc,EAAS,CAAE,OAAAA,GAAW,CAAA,CAAC,EAGvBmB,EAAM,CAAE,SAAU,SAAU5B,EAAcS,EAAQiB,CAAK,EAAE,UAAY,CAAC,CAACG,CAAC,EAAE,KAAK,GAAG,EAExF,MAAO,CACL,IAAKpC,EAAU,WAAW,wBAAwBO,CAAY,WAAYG,CAAM,EAChF,IAAAyB,EACA,QAAArB,EACA,MAAAC,EACA,OAAAW,CAAA,CAEJ,EAEA,iBACErB,EACAW,EACAF,EACAC,EACAW,EACsB,CACtB,MAAMW,EAAiB,CAAE,MAAO,cAAe,OAAArB,CAAA,EAE/C,MAAO,CACL,IAAKhB,EAAU,WAAW,wBAAwBK,CAAO,oBAAqBgC,CAAc,EAC5F,UAAWrC,EAAU,WAAW,gBAAgBK,CAAO,oBAAqBgC,CAAc,EAC1F,IAAK,oBAAoBhC,CAAO,GAAGW,EAAS,IAAIA,CAAM,GAAK,EAAE,GAC7D,QAAAF,EACA,MAAAC,EACA,OAAAW,CAAA,CAEJ,EAEA,mBACErB,EACAS,EACAC,EACAW,EACsB,CACtB,MAAO,CACL,IAAK,uBAAuBrB,CAAO,uBACnC,UAAW,uBAAuBA,CAAO,uBACzC,IAAK,4BAA4BA,CAAO,GACxC,UAAW,GACX,QAAAS,EACA,MAAAC,EACA,OAAAW,CAAA,CAEJ,CACF"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{j as a}from"./app-DiXzpOyg.js";function h(r){return a.jsx("svg",{...r,children:a.jsx("path",{fill:"currentColor",d:"M9.2 6h5.6V4.6a.6.6 0 1 1 1.2 0V6h2a1 1 0 0 1 1 1v11a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V7a1 1 0 0 1 1-1h2V4.6a.6.6 0 0 1 1.2 0zM6 7h12v4H6zm0 0v11a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1V7z"})})}export{h as C};
|
|
2
|
+
//# sourceMappingURL=DIhfGjAK.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DIhfGjAK.chunk.js","sources":["../../../../libs/shared/src/images/svg/objects/CalendarSvg.tsx"],"sourcesContent":["import React from 'react';\n\nexport function CalendarSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n fill='currentColor'\n d='M9.2 6h5.6V4.6a.6.6 0 1 1 1.2 0V6h2a1 1 0 0 1 1 1v11a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V7a1 1 0 0 1 1-1h2V4.6a.6.6 0 0 1 1.2 0zM6 7h12v4H6zm0 0v11a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1V7z'\n />\n </svg>\n );\n}\n"],"names":["CalendarSvg","props","jsx"],"mappings":"sCAEO,SAASA,EAAYC,EAAsC,CAChE,OACEC,EAAAA,IAAC,MAAA,CAAK,GAAGD,EACP,SAAAC,EAAAA,IAAC,OAAA,CACC,KAAK,eACL,EAAE,iLAAA,CAAA,EAEN,CAEJ"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a}from"./DvDdiDQN.chunk.js";import{B as r,S as n,a as o,U as l,A as h,b as u}from"./app-DiXzpOyg.js";const p="braze:new:iam";class m extends r{get name(){return n.BrazeClient}get channelName(){return o.BRAZE}get clientInstance(){if(this.ready)return this.brazeClient}constructor(t){super(t)}initialize(){var t,e;(t=this.options.eventOptions)!=null&&t.logUtmParameters&&(this.utmParameters=l.getUtmParameters()),(e=this.options.eventOptions)!=null&&e.logAttributionData&&(this.attributionData=h.getDecodedAttributionData()),this.setup()}get isReady(){return this.ready&&this.options.client.shouldInitialize}setup(){var e;const{context:t}=this.options;if(this.iamQueue=[],this.brazeClient=new a.BrazeClient({apiOptions:this.getInstanceOptions(),allowAnonymous:!1,shouldInitialize:this.options.client.shouldInitialize,subscriptions:{subscribeToInAppMessage:i=>this.subscribeToInAppMessage(i)}}),t.user.isAuthenticated&&this.options.client.shouldInitialize){const i=this.getBrazeUser(t.user);(e=this.options.geoLocation)!=null&&e.countryCode&&(i.country=this.options.geoLocation.countryCode),this.setUser(i)}this.ready=!0}setUser(t){this.brazeClient.setUser(t)}setUserInit(t){this.brazeClient.setUserInit(t)}getBrazeUser(t){return{email:t.email,firstName:t.givenName,lastName:t.familyName,custom:{masterId:t.id,source:u.BRAZE_CLIENT_SOURCE}}}getInstanceOptions(){return{productName:this.options.client.productName,productVersion:this.options.client.version,apiKey:this.options.client.apiKey,baseUrl:this.options.client.baseUrl,enableLogging:!1,automaticallyShowInAppMessages:!1,allowUserSuppliedJavascript:!0}}subscribeToInAppMessage(t){var i,s;if(!((s=(i=this.options)==null?void 0:i.subscriptions)!=null&&s.inAppMessage)||t.isControl)return;const e=this.getChannel();this.iamQueue.push(t),e.trigger(p)}async getContentCards(){var t;return await((t=this.brazeClient.card)==null?void 0:t.getContentCards())}logContentCardDismissal(t){var e;return(e=this.brazeClient.card)==null?void 0:e.logDismissal(t)}logContentCardClick(t){var e;return(e=this.brazeClient.card)==null?void 0:e.logClick(t)}logContentCardImpressions(t){var e;return(e=this.brazeClient.card)==null?void 0:e.logImpressions(t)}logFormEvent(t){const e=this.hydrateAdditionalData(t);this.brazeClient.event.logForm(e)}logAnalyticsEvent(t){const e=this.hydrateAdditionalData(t);this.brazeClient.event.logAnalytics(e)}logEvent(t){const e=this.hydrateAdditionalData(t);return this.brazeClient.event.log(e)}showInAppMessage(t,e,i){return this.brazeClient.bam.show(t,e,i)}handleInAppMessages(t){if(this.iamQueue.length)for(;this.iamQueue.length;){const e=this.iamQueue.pop();if(!e)return;t(e)}}hydrateAdditionalData(t){var i,s;const e=t.additionalData||{};return this.utmParameters&&(e.utms=this.utmParameters),(i=this.attributionData)!=null&&i.originalReferrer&&(e.original_referrer=this.attributionData.originalReferrer),(s=this.attributionData)!=null&&s.internalReferrer&&(e.internal_referrer=this.attributionData.internalReferrer),{...t,additionalData:e}}}export{m as BrazeClientService,p as BrazeNewIamEvent};
|
|
2
|
+
//# sourceMappingURL=DK1p1ffZ.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DK1p1ffZ.chunk.js","sources":["../../../../libs/shared/src/services/BrazeClientService.ts"],"sourcesContent":["import type { AnalyticsEventType, BrazeClientOptions, BrazeUser, CaptionedImageCard, Card, ControlMessage, EventType, FormEventType, InAppMessage, LogEventOptions } from '@clickview/braze-client';\nimport { BrazeClient } from '@clickview/braze-client';\n\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsClientOptions } from 'libs/analytics/clients/BaseAnalyticsClient';\nimport { AttributionData, UtmParameters } from 'libs/analytics/models/CollectionEvent';\nimport { AttributionHelper } from 'libs/analytics/utils/AttributionHelper';\nimport { UtmHelper } from 'libs/analytics/utils/UtmHelper';\n\nimport { SharedServiceChannels } from 'libs/shared/constants/RadioChannels';\nimport { SharedServices } from 'libs/shared/constants/SharedServices';\nimport { CurrentUser } from 'libs/shared/interfaces';\nimport { HandleIamCallback } from 'libs/shared/interfaces/braze/BrazeIam';\nimport { GeoLocation } from 'libs/shared/interfaces/responses/GeoLocation';\nimport { SharedBrazeHelper } from 'libs/shared/utils/SharedBrazeHelper';\n\nexport interface BrazeClientServiceOptions extends AnalyticsClientOptions {\n client: {\n productName: string;\n version: string;\n apiKey: string;\n baseUrl: string;\n geoLocation: GeoLocation;\n shouldInitialize: boolean;\n },\n subscriptions?: {\n inAppMessage?: boolean;\n contentCards?: boolean;\n }\n context: {\n user: CurrentUser;\n };\n eventOptions?: {\n logUtmParameters?: boolean;\n logAttributionData?: boolean;\n },\n}\n\nexport const BrazeNewIamEvent = 'braze:new:iam';\n\nexport class BrazeClientService extends Core.Service {\n private brazeClient: BrazeClient;\n \n private iamQueue: InAppMessage[];\n private utmParameters?: UtmParameters;\n private attributionData?: AttributionData;\n\n declare protected options: BrazeClientServiceOptions;\n protected ready: boolean;\n\n // @ts-ignore\n public get name(): string {\n return SharedServices.BrazeClient;\n }\n\n // @ts-ignore\n public get channelName(): string {\n return SharedServiceChannels.BRAZE;\n }\n\n public get clientInstance(): BrazeClient {\n if (!this.ready) return;\n\n return this.brazeClient;\n }\n\n constructor(options: BrazeClientServiceOptions) {\n super(options);\n }\n\n public initialize(): void {\n if (this.options.eventOptions?.logUtmParameters) {\n this.utmParameters = UtmHelper.getUtmParameters();\n }\n\n if (this.options.eventOptions?.logAttributionData) {\n this.attributionData = AttributionHelper.getDecodedAttributionData();\n }\n\n this.setup();\n }\n\n public get isReady() {\n return this.ready && this.options.client.shouldInitialize;\n }\n\n public setup() {\n const { context } = this.options;\n\n this.iamQueue = [];\n\n this.brazeClient = new BrazeClient({\n apiOptions: this.getInstanceOptions(),\n allowAnonymous: false,\n shouldInitialize: this.options.client.shouldInitialize,\n subscriptions: {\n subscribeToInAppMessage: iam => this.subscribeToInAppMessage(iam)\n }\n });\n\n if (context.user.isAuthenticated && this.options.client.shouldInitialize) {\n const brazeUser: BrazeUser = this.getBrazeUser(context.user);\n \n if (this.options.geoLocation?.countryCode) {\n brazeUser.country = this.options.geoLocation.countryCode;\n }\n\n this.setUser(brazeUser);\n }\n\n this.ready = true;\n }\n\n public setUser(user: BrazeUser) {\n this.brazeClient.setUser(user);\n }\n\n public setUserInit(user: BrazeUser) {\n this.brazeClient.setUserInit(user);\n }\n\n private getBrazeUser(currentUser: CurrentUser): BrazeUser {\n return {\n email: currentUser.email,\n firstName: currentUser.givenName,\n lastName: currentUser.familyName,\n custom: {\n masterId: currentUser.id,\n source: SharedBrazeHelper.BRAZE_CLIENT_SOURCE\n }\n };\n }\n\n private getInstanceOptions(): BrazeClientOptions {\n return {\n productName: this.options.client.productName,\n productVersion: this.options.client.version,\n apiKey: this.options.client.apiKey,\n baseUrl: this.options.client.baseUrl,\n enableLogging: false,\n automaticallyShowInAppMessages: false,\n allowUserSuppliedJavascript: true\n };\n }\n\n private subscribeToInAppMessage(iam: InAppMessage | ControlMessage) {\n if (!this.options?.subscriptions?.inAppMessage || iam.isControl) return;\n \n const channel = this.getChannel();\n this.iamQueue.push(iam as InAppMessage);\n channel.trigger(BrazeNewIamEvent);\n }\n\n public async getContentCards(): Promise<CaptionedImageCard[]> {\n return await this.brazeClient.card?.getContentCards() as CaptionedImageCard[];\n }\n\n public logContentCardDismissal(card: Card): void {\n return this.brazeClient.card?.logDismissal(card);\n }\n\n public logContentCardClick(card: Card): void {\n return this.brazeClient.card?.logClick(card);\n }\n\n public logContentCardImpressions(cards: Card[]): void {\n return this.brazeClient.card?.logImpressions(cards);\n }\n\n public logFormEvent(event: LogEventOptions<FormEventType>) {\n const hydratedEvent = this.hydrateAdditionalData(event);\n \n this.brazeClient.event.logForm(hydratedEvent);\n }\n\n public logAnalyticsEvent(event: LogEventOptions<AnalyticsEventType>) {\n const hydratedEvent = this.hydrateAdditionalData(event);\n\n this.brazeClient.event.logAnalytics(hydratedEvent);\n }\n\n public logEvent(event: LogEventOptions): void {\n const hydratedEvent = this.hydrateAdditionalData(event);\n\n return this.brazeClient.event.log(hydratedEvent);\n }\n\n public showInAppMessage(\n inAppMessage: InAppMessage | ControlMessage,\n parentNode?: Element | null,\n onDisplayCallback?: undefined | (() => void)\n ) {\n return this.brazeClient.bam.show(inAppMessage, parentNode, onDisplayCallback);\n }\n\n public handleInAppMessages(callback: HandleIamCallback) {\n if (!this.iamQueue.length) return;\n\n while (this.iamQueue.length) {\n const currIam = this.iamQueue.pop();\n \n if (!currIam) return;\n\n callback(currIam);\n }\n }\n\n private hydrateAdditionalData<T = EventType>(event: LogEventOptions<T>): LogEventOptions<T> {\n const additionalData: HashObject<any> = event.additionalData || {};\n if (this.utmParameters) {\n additionalData['utms'] = this.utmParameters;\n }\n\n if (this.attributionData?.originalReferrer) {\n additionalData['original_referrer'] = this.attributionData.originalReferrer;\n }\n\n if (this.attributionData?.internalReferrer) {\n additionalData['internal_referrer'] = this.attributionData.internalReferrer;\n }\n \n return {\n ...event,\n additionalData\n };\n }\n}"],"names":["BrazeNewIamEvent","BrazeClientService","Core.Service","SharedServices","SharedServiceChannels","options","_a","UtmHelper","_b","AttributionHelper","context","BrazeClient","iam","brazeUser","user","currentUser","SharedBrazeHelper","channel","card","cards","event","hydratedEvent","inAppMessage","parentNode","onDisplayCallback","callback","currIam","additionalData"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{j as t,a6 as s,D as n,Q as l}from"./app-DiXzpOyg.js";import{a as o}from"./CEmtkty-.chunk.js";function c(e){return t.jsx("svg",{...e,children:t.jsx("path",{fill:"currentColor",d:"M9.2 6h5.6V4.6a.6.6 0 1 1 1.2 0V6h2a1 1 0 0 1 1 1v11a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V7a1 1 0 0 1 1-1h2V4.6a.6.6 0 0 1 1.2 0zm8.8 5H6v7a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1zm-3.2 1.976a.51.51 0 0 0-.046-.706.477.477 0 0 0-.686.047l-3.063 3.598-1.092-1.122a.477.477 0 0 0-.688 0 .51.51 0 0 0 0 .707l1.46 1.5a.48.48 0 0 0 .71-.024z"})})}const d={livestream(e){return{url:s.urlBuilder(`/api/discover/v1/livestreams/${e}`,{query:"audiences,recording"}),key:`streamable:livestream:${e}}`}},calendarLivestreams(e){const i=Object.keys(e).map(r=>`${r}:${e[r]}`).join(":");return{url:s.urlBuilder("/api/discover/v1/livestreams",{status:o.Published,limit:100,query:"audiences",...e}),key:`streamable:calendar:livestreams:${i}`,normalize:!1,formatData:r=>r.data.map(a=>({id:a.id,startDate:n.format(l.convertUTCToTimezoneDate(a.startDateTime),"YYYY-MM-DD"),type:"Livestream",name:a.name,description:a.description,content:a}))}}};export{c as C,d as L};
|
|
2
|
+
//# sourceMappingURL=DK6BRHnl.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DK6BRHnl.chunk.js","sources":["../../../../libs/shared/src/images/svg/objects/CalendarCheckSvg.tsx","../../src/shared/flight-requests/LivestreamRequests.ts"],"sourcesContent":["import React from 'react';\n\nexport function CalendarCheckSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n fill='currentColor'\n d='M9.2 6h5.6V4.6a.6.6 0 1 1 1.2 0V6h2a1 1 0 0 1 1 1v11a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V7a1 1 0 0 1 1-1h2V4.6a.6.6 0 0 1 1.2 0zm8.8 5H6v7a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1zm-3.2 1.976a.51.51 0 0 0-.046-.706.477.477 0 0 0-.686.047l-3.063 3.598-1.092-1.122a.477.477 0 0 0-.688 0 .51.51 0 0 0 0 .707l1.46 1.5a.48.48 0 0 0 .71-.024z'\n />\n </svg>\n );\n}\n","import { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/react/index';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { TimezoneHelper } from 'libs/shared/apps/streamable-learning/utils/TimezoneHelper';\nimport { CurationStatus } from 'libs/shared/enums/CurationStatus';\nimport { BasePaginatedCollection, CalendarEvent, Livestream } from 'libs/shared/interfaces';\n\nexport const LivestreamRequests = {\n livestream(\n id: string\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`/api/discover/v1/livestreams/${id}`, { query: 'audiences,recording' }),\n key: `streamable:livestream:${id}}`\n };\n },\n calendarLivestreams(queryParams: HashObject): Flight.Request {\n const key = Object.keys(queryParams).map(param => `${param}:${queryParams[param]}`).join(':');\n\n return {\n url: UrlHelper.urlBuilder(`/api/discover/v1/livestreams`, {\n status: CurationStatus.Published,\n limit: 100,\n query: 'audiences',\n ...queryParams\n }),\n key: `streamable:calendar:livestreams:${key}`,\n normalize: false,\n formatData: (paginatedData: BasePaginatedCollection<Livestream>): CalendarEvent<Livestream>[] => {\n return paginatedData.data.map(livestream => ({\n id: livestream.id,\n startDate: DateHelper.format(TimezoneHelper.convertUTCToTimezoneDate(livestream.startDateTime), 'YYYY-MM-DD'),\n type: 'Livestream',\n name: livestream.name,\n description: livestream.description,\n content: livestream\n }));\n }\n };\n }\n};"],"names":["CalendarCheckSvg","props","jsx","LivestreamRequests","id","UrlHelper","queryParams","key","param","CurationStatus","paginatedData","livestream","DateHelper","TimezoneHelper"],"mappings":"oGAEO,SAASA,EAAiBC,EAAsC,CACrE,OACEC,EAAAA,IAAC,MAAA,CAAK,GAAGD,EACP,SAAAC,EAAAA,IAAC,OAAA,CACC,KAAK,eACL,EAAE,kUAAA,CAAA,EAEN,CAEJ,CCFO,MAAMC,EAAqB,CAChC,WACEC,EACgB,CAChB,MAAO,CACL,IAAKC,EAAU,WAAW,gCAAgCD,CAAE,GAAI,CAAE,MAAO,sBAAuB,EAChG,IAAK,yBAAyBA,CAAE,GAAA,CAEpC,EACA,oBAAoBE,EAAyC,CAC3D,MAAMC,EAAM,OAAO,KAAKD,CAAW,EAAE,IAAIE,GAAS,GAAGA,CAAK,IAAIF,EAAYE,CAAK,CAAC,EAAE,EAAE,KAAK,GAAG,EAE5F,MAAO,CACL,IAAKH,EAAU,WAAW,+BAAgC,CACxD,OAAQI,EAAe,UACvB,MAAO,IACP,MAAO,YACP,GAAGH,CAAA,CACJ,EACD,IAAK,mCAAmCC,CAAG,GAC3C,UAAW,GACX,WAAaG,GACJA,EAAc,KAAK,IAAIC,IAAe,CAC3C,GAAIA,EAAW,GACf,UAAWC,EAAW,OAAOC,EAAe,yBAAyBF,EAAW,aAAa,EAAG,YAAY,EAC5G,KAAM,aACN,KAAMA,EAAW,KACjB,YAAaA,EAAW,YACxB,QAASA,CAAA,EACT,CACJ,CAEJ,CACF"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{bu as t,bv as i}from"./app-DiXzpOyg.js";function M(){const e=t(i.XS),n=t(i.SM),r=t(i.MD),X=t(i.LG),o=t(i.XL),u=t(i.XXL);let s=i.LG;return e&&(s=i.XS),n&&(s=i.SM),r&&(s=i.MD),X&&(s=i.LG),o&&(s=i.XL),u&&(s=i.XXL),s}export{M as u};
|
|
2
|
+
//# sourceMappingURL=DNbkIXc2.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DNbkIXc2.chunk.js","sources":["../../../../libs/shared/src/hooks/UseGetMediaQueryString.ts"],"sourcesContent":["import { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\n\nimport { useMediaQuery } from './UseMediaQuery';\n\n/**\n * @deprecated Please use useBreakpoints() instead\n */\nexport function useGetMediaQueryString(): MediaQueryStrings {\n const isXS = useMediaQuery(MediaQueryStrings.XS);\n const isSM = useMediaQuery(MediaQueryStrings.SM);\n const isMD = useMediaQuery(MediaQueryStrings.MD);\n const isLG = useMediaQuery(MediaQueryStrings.LG);\n const isXL = useMediaQuery(MediaQueryStrings.XL);\n const isXXL = useMediaQuery(MediaQueryStrings.XXL);\n\n let currentString = MediaQueryStrings.LG; // default\n if (isXS) currentString = MediaQueryStrings.XS;\n if (isSM) currentString = MediaQueryStrings.SM;\n if (isMD) currentString = MediaQueryStrings.MD;\n if (isLG) currentString = MediaQueryStrings.LG;\n if (isXL) currentString = MediaQueryStrings.XL;\n if (isXXL) currentString = MediaQueryStrings.XXL;\n\n return currentString;\n}"],"names":["useGetMediaQueryString","isXS","useMediaQuery","MediaQueryStrings","isSM","isMD","isLG","isXL","isXXL","currentString"],"mappings":"+CAOO,SAASA,GAA4C,CAC1D,MAAMC,EAAOC,EAAcC,EAAkB,EAAE,EACzCC,EAAOF,EAAcC,EAAkB,EAAE,EACzCE,EAAOH,EAAcC,EAAkB,EAAE,EACzCG,EAAOJ,EAAcC,EAAkB,EAAE,EACzCI,EAAOL,EAAcC,EAAkB,EAAE,EACzCK,EAAQN,EAAcC,EAAkB,GAAG,EAEjD,IAAIM,EAAgBN,EAAkB,GACtC,OAAIF,MAAsBE,EAAkB,IACxCC,MAAsBD,EAAkB,IACxCE,MAAsBF,EAAkB,IACxCG,MAAsBH,EAAkB,IACxCI,MAAsBJ,EAAkB,IACxCK,MAAuBL,EAAkB,KAEtCM,CACT"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{j as a,b8 as b,T as $,au as L,ap as V,z as O,by as U,F as j,i as T,d as R,c as G,D as M,b7 as z,h as A,k as F,bO as B,bb as E,M as q,R as Y}from"./app-DiXzpOyg.js";import{R as P}from"./DWkg1qc2.chunk.js";import{k as Z,e as J,T as K,f as Q,l as W,g as X}from"./DBdD19pY.chunk.js";import{b as C,A as x,a as I,V as p,B as ee}from"./Bg6K2hsA.chunk.js";import{B as D}from"./CX-Bc0hf.chunk.js";import{I as H,a as k}from"./ShERxFU5.chunk.js";import{g as ae}from"./BBnDr_iy.chunk.js";import{B as u,a as v}from"./QlJI4d4R.chunk.js";import{V as w}from"./Dhn0D6IV.chunk.js";const te="_playlistItem_euqll_1",ie="_playlistItemGradient_euqll_4",ne="_playlistMetadata_euqll_13",se="_partialHeading_euqll_20",le="_ownerAvatarContainer_euqll_24",o={playlistItem:te,playlistItemGradient:ie,playlistMetadata:ne,partialHeading:se,ownerAvatarContainer:le};re.defaultProps={numItems:8};function re(e){const t=[...Array(e.numItems)],n=e.itemClassName||"";return a.jsxs(a.Fragment,{children:[e.showHeading&&a.jsx("div",{className:`${o.partialHeading} mb-1 partial-loading-background`}),a.jsx(P,{className:"mx-n1 mb-n2",children:t.map((s,i)=>a.jsx(b,{xs:6,sm:4,lg:3,className:`${n} px-1 pb-2`,children:a.jsx("div",{className:`${o.playlistItem} partial-loading-background rounded-3`})},i))})]})}var ce=["second","minute","hour","day","week","month","year"];function oe(e,t){if(t===0)return["just now","right now"];var n=ce[Math.floor(t/2)];return e>1&&(n+="s"),[e+" "+n+" ago","in "+e+" "+n]}var de=["秒","分钟","小时","天","周","个月","年"];function me(e,t){if(t===0)return["刚刚","片刻后"];var n=de[~~(t/2)];return[e+" "+n+"前",e+" "+n+"后"]}var _={},S=function(e,t){_[e]=t},ue=function(e){return _[e]||_.en_US},f=[60,60,24,7,365/7/12,12];function ve(e){return e instanceof Date?e:!isNaN(e)||/^\d+$/.test(e)?new Date(parseInt(e)):(e=(e||"").trim().replace(/\.\d+/,"").replace(/-/,"/").replace(/-/,"/").replace(/(\d)T(\d)/,"$1 $2").replace(/Z/," UTC").replace(/([+-]\d\d):?(\d\d)/," $1$2"),new Date(e))}function ge(e,t){var n=e<0?1:0;e=Math.abs(e);for(var s=e,i=0;e>=f[i]&&i<f.length;i++)e/=f[i];return e=Math.floor(e),i*=2,e>(i===0?9:1)&&(i+=1),t(e,i,s)[n].replace("%s",e.toString())}function ye(e,t){var n=new Date;return(+n-+ve(e))/1e3}var he=function(e,t,n){var s=ye(e);return ge(s,ue(t))};S("en_US",oe);S("zh_CN",me);const xe="playlists.playlistCount";function fe(e){var i,l,c;if(!e)return!1;const t=((i=e.videos)==null?void 0:i.count)??0,n=((l=e.interactives)==null?void 0:l.count)??0,s=((c=e.clips)==null?void 0:c.count)??0;return t+n+s}function be(e){const t=fe(e.playlist);return t===!1||Number.isNaN(t)?a.jsx(a.Fragment,{}):a.jsx("span",{className:"text-shadow font-size-sm",children:a.jsx($,{namespace:xe,phrase:"count",options:{smartCount:t}})})}const _e="_avatar_obb0e_1",je={avatar:_e};function Ce(){return a.jsx("div",{className:je.avatar,children:a.jsx(Z,{})})}function Ne(e){var i,l,c;const{_liteOwner:t}=e.playlist;if((i=e.playlist._isClickViewCurated)!=null&&i.value)return a.jsx(Ce,{});if(!(t!=null&&t.id)||!((l=e.currentUser)!=null&&l.id))return a.jsx(a.Fragment,{});if(t.id.toString()===e.currentUser.id.toString())return a.jsx(a.Fragment,{});const s=typeof t.avatar=="string"?t.avatar:(c=t.avatar)==null?void 0:c.url;return a.jsx(L,{imageUrl:s,imageCdnUrl:e.imageCdnUrl,initials:V.getInitials(t.name,t.surname)})}const we="playlists.playlistList";Te.defaultProps={itemStyle:"square"};function Te(e){var d,m;const t=O.createUrl(e.data.cover&&e.data.cover.url,{size:j.Medium,resizeType:U.Cover}),n=e.data.subjectPresentationAudiences&&e.data.subjectPresentationAudiences.data,s=C(n,e.presentationAudiences);let i=o.playlistItem;const l=!!t||!!e.showFallbackImage;l&&(i+=` ${o.playlistItemGradient}`),!l&&e.bgColourClassNames&&(i+=` ${o.playlistItem} ${ae(e.data.name,e.bgColourClassNames)}`),e.itemStyle==="round"&&(i+=" rounded-3 overflow-hidden"),e.itemStyle==="round-left"&&(i+=" rounded-start-lg overflow-hidden");const c={...e.analyticsData,id:(d=e.data)==null?void 0:d.id,name:(m=e.data)==null?void 0:m.name},g={...e.analyticsOptions,entity:T.Playlist},y=()=>{var N;return!e.data.contentModifiedDate||(N=e.data._isClickViewCurated)!=null&&N.value?"":G.getPhrase(we,"lastUpdated",{timeago:he(M.convertUTCToLocal(e.data.contentModifiedDate))})};return a.jsx(R,{appLink:e.appLink,analyticsData:c,analyticsOptions:g,title:y(),children:a.jsxs(D,{data:t,alt:e.data.name,className:i,children:[!!e.showFallbackImage&&a.jsx(H,{type:k.Playlist}),a.jsxs("div",{className:`text-white ${o.playlistMetadata}`,children:[!!e.showCount&&a.jsx(be,{playlist:e.data}),a.jsx("h5",{className:`mb-0 ${e.titleClassName||""}`,children:a.jsx("span",{className:"text-shadow clamp-2",children:e.data.name})}),!!n&&!!n.length&&!!s&&a.jsx(x,{className:`${e.audienceLabelClass?e.audienceLabelClass:""} mt-1`,audience:s,border:"white"})]}),!!e.showOwner&&!!e.imageCdnUrl&&a.jsx("div",{className:o.ownerAvatarContainer,children:a.jsx(Ne,{playlist:e.data,currentUser:e.currentUser,imageCdnUrl:e.imageCdnUrl})})]})})}F.Click,T.Playlist,A.PlaylistListItem,z.Cover;const Ae="_labelContainer_1rf8p_1",Pe="_labelContainerOverlay_1rf8p_15",Ie="_hoverActive_1rf8p_23",De="_mask_1rf8p_37",He="_largeHoverTitle_1rf8p_50",ke="_smallHoverTitle_1rf8p_69",Se="_largeHoverDescription_1rf8p_99",$e="_hasTableOfContents_1rf8p_141",Le="_smallHoverDescription_1rf8p_194",r={labelContainer:Ae,labelContainerOverlay:Pe,hoverActive:Ie,mask:De,largeHoverTitle:He,smallHoverTitle:ke,largeHoverDescription:Se,hasTableOfContents:$e,smallHoverDescription:Le};function Ve(e){return a.jsxs("div",{className:`py-3 mx-2 px-2 rounded bg-white text-center ${r.mask} d-flex flex-column align-items-center`,children:[a.jsx("h3",{className:`fw-semibold mb-0 ${r.hoverTitle} ${e.isSmall?r.smallHoverTitle:r.largeHoverTitle}`,children:a.jsx("span",{className:"clamp-3",children:e.series.name})}),!!e.series.description&&a.jsx("p",{className:`${e.hasTableOfContents?r.hasTableOfContents:""} ${r.hoverDescription} ${e.isSmall?r.smallHoverDescription:r.largeHoverDescription} mb-0`,children:e.series.description}),a.jsx("div",{className:`${r.labelContainerOverlay}`,children:e.mergedAudience?a.jsx(x,{audience:e.mergedAudience,border:"dark",className:"mt-2 w-fit"}):a.jsx(u,{type:v.Rating,data:I.getRating(e.series),className:"mt-2"})})]})}function Qe(e){const[t,n]=B({className:r.hoverActive}),s=e.series&&e.series.subjectPresentationAudiences&&e.series.subjectPresentationAudiences.data||[],i=C(s,e.presentationAudiences),l=!!(s&&s.length&&i);return a.jsx("div",{ref:t,children:a.jsxs(D,{data:e.series.tallPoster,alt:e.series.name,imageType:E.TallPosters,preload:e.preloadImage,imageOptions:{size:j.Large},imageClassName:e.imageClass?e.imageClass:"rounded-3",children:[n&&a.jsx(Ve,{isSmall:e.isSmall,series:e.series,mergedAudience:s&&s.length?i:null,hasTableOfContents:e.hasTableOfContents}),a.jsx(H,{type:k.Series}),a.jsx("div",{className:`position-absolute text-white text-shadow ${r.labelContainer}`,children:l?a.jsx(x,{audience:i,border:"white"}):a.jsx(u,{type:v.Rating,data:I.getRating(e.series)})})]})})}const Oe="_guidance_pydn0_30",Ue="_responsiveGuidance_pydn0_41",Re="_description_pydn0_56",Ge="_details_pydn0_82",h={guidance:Oe,responsiveGuidance:Ue,description:Re,details:Ge};Me.defaultProps={newDurationStyle:!0,badgePosition:"thumbnail"};function Me(e){var l,c,g,y,d,m;const t=(c=(l=e.video)==null?void 0:l.subjectPresentationAudiences)==null?void 0:c.data,n=C(t,e.presentationAudiences),s=q.mergeOptions(e.analyticsOptions,{location:A.ClassificationHero,entity:w.getAnalyticsEntity(e.video)}),i=Y.useRef(null);return e.video?a.jsxs(P,{children:[a.jsx(b,{xs:12,md:6,children:a.jsx("div",{ref:i,children:a.jsx(J,{analyticsOptions:s,video:e.video,appLink:(g=e.getVideoAppLink)==null?void 0:g.call(e,e.video,{}),imageOptions:{size:j.Medium},textPosition:K.Independent,type:"static",audience:e.badgePosition==="thumbnail"?n:null,hideRating:e.badgePosition==="thumbnail"?!!n:!0,commonVideoProps:e.commonVideoProps})})}),a.jsxs(b,{xs:12,md:6,className:`${h.details} position-relative`,children:[a.jsxs("div",{className:"d-flex justify-content-between",children:[a.jsxs("div",{className:"overflow-hidden",children:[a.jsx(p,{type:e.commonVideoProps.subTextType,appLink:(d=(y=e.commonVideoProps).getSubTextAppLink)==null?void 0:d.call(y,e.video),analyticsData:e.analyticsData,analyticsOptions:s,video:e.video,className:"text-reset clamp-1"}),a.jsx(Q,{yearGroups:e.commonVideoProps.yearGroups,video:e.video,analyticsData:e.analyticsData,analyticsOptions:s,appLink:(m=e.getVideoAppLink)==null?void 0:m.call(e,e.video,{}),titleSize:"h4",showNewVideoIndicator:e.showNewVideoIndicator,showPadlock:!e.commonVideoProps.hasStudentExperience&&!e.commonVideoProps.hasGuestExperience,titleClassName:e.titleClassName,clampLevel:2})]}),a.jsx(W,{analyticsData:e.analyticsData,analyticsOptions:s,video:e.video})]}),e.badgePosition==="info-panel"&&a.jsxs(ee,{className:"pb-1",children:[!e.hideInteractiveBadge&&a.jsx(u,{type:v.Interactive,data:e.video.interactives}),a.jsx(u,{type:v.Rating,data:w.getRating(e.video)}),a.jsx(u,{type:v.ProductionYear,data:e.video.productionYear})]}),a.jsx("p",{className:"mb-1",children:a.jsx("span",{className:h.description,children:e.video.description})}),e.badgePosition==="info-panel"&&a.jsx(x,{audience:n,className:"mt-1",border:"dark"}),e.showVideoGuidance&&a.jsx(X,{video:e.video,analyticsData:e.analyticsData,analyticsOptions:s,containerClassName:`d-flex ${h.guidance}`,responsiveClassName:h.responsiveGuidance,commonVideoProps:e.commonVideoProps})]})]}):a.jsx(a.Fragment,{})}export{Me as H,Te as P,Qe as S,re as a};
|
|
2
|
+
//# sourceMappingURL=DRmZj7Fw.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DRmZj7Fw.chunk.js","sources":["../../../../libs/shared/src/apps/playlists/components/playlist-list/PartialPlaylistList.tsx","../../../../../node_modules/timeago.js/esm/lang/en_US.js","../../../../../node_modules/timeago.js/esm/lang/zh_CN.js","../../../../../node_modules/timeago.js/esm/register.js","../../../../../node_modules/timeago.js/esm/utils/date.js","../../../../../node_modules/timeago.js/esm/format.js","../../../../../node_modules/timeago.js/esm/index.js","../../../../libs/shared/src/apps/playlists/components/playlist-count/PlaylistCount.tsx","../../../../libs/shared/src/components/clickview-avatar/ClickViewAvatar.tsx","../../../../libs/shared/src/apps/playlists/components/playlist-list/PlaylistOwnerAvatar.tsx","../../../../libs/shared/src/apps/playlists/components/playlist-list/PlaylistItem.tsx","../../../../libs/shared/src/apps/playlists/components/playlist-list/PlaylistList.tsx","../../../../libs/shared/src/components/series-tall-poster/SeriesTallPoster.tsx","../../../../libs/shared/src/apps/subjects/components/hero-video/HeroVideo.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Col, Row } from 'react-bootstrap';\n\nimport styles from './playlist.module.scss';\n\ninterface PartialPlaylistListProps {\n numItems?: number;\n itemClassName?: string;\n showHeading?: boolean;\n}\n\nPartialPlaylistList.defaultProps = {\n numItems: 8\n};\n\nexport function PartialPlaylistList(props: PartialPlaylistListProps): JSX.Element {\n const PARTIAL_PLAYLISTS = [...Array(props.numItems)];\n\n const className = props.itemClassName || '';\n\n return (\n <>\n {props.showHeading && <div className={`${styles.partialHeading} mb-1 partial-loading-background`} />}\n <Row className='mx-n1 mb-n2'>\n {PARTIAL_PLAYLISTS.map((p, idx) => (\n <Col key={idx} xs={6} sm={4} lg={3} className={`${className} px-1 pb-2`}>\n <div className={`${styles.playlistItem} partial-loading-background rounded-3`} />\n </Col>\n ))}\n </Row>\n </>\n );\n}","var EN_US = ['second', 'minute', 'hour', 'day', 'week', 'month', 'year'];\nexport default function (diff, idx) {\n if (idx === 0)\n return ['just now', 'right now'];\n var unit = EN_US[Math.floor(idx / 2)];\n if (diff > 1)\n unit += 's';\n return [diff + \" \" + unit + \" ago\", \"in \" + diff + \" \" + unit];\n}\n//# sourceMappingURL=en_US.js.map","var ZH_CN = ['秒', '分钟', '小时', '天', '周', '个月', '年'];\nexport default function (diff, idx) {\n if (idx === 0)\n return ['刚刚', '片刻后'];\n var unit = ZH_CN[~~(idx / 2)];\n return [diff + \" \" + unit + \"\\u524D\", diff + \" \" + unit + \"\\u540E\"];\n}\n//# sourceMappingURL=zh_CN.js.map","/**\n * Created by hustcc on 18/5/20.\n * Contract: i@hust.cc\n */\n/**\n * All supported locales\n */\nvar Locales = {};\n/**\n * register a locale\n * @param locale\n * @param func\n */\nexport var register = function (locale, func) {\n Locales[locale] = func;\n};\n/**\n * get a locale, default is en_US\n * @param locale\n * @returns {*}\n */\nexport var getLocale = function (locale) {\n return Locales[locale] || Locales['en_US'];\n};\n//# sourceMappingURL=register.js.map","/**\n * Created by hustcc on 18/5/20.\n * Contract: i@hust.cc\n */\nvar SEC_ARRAY = [\n 60,\n 60,\n 24,\n 7,\n 365 / 7 / 12,\n 12,\n];\n/**\n * format Date / string / timestamp to timestamp\n * @param input\n * @returns {*}\n */\nexport function toDate(input) {\n if (input instanceof Date)\n return input;\n // @ts-ignore\n if (!isNaN(input) || /^\\d+$/.test(input))\n return new Date(parseInt(input));\n input = (input || '')\n // @ts-ignore\n .trim()\n .replace(/\\.\\d+/, '') // remove milliseconds\n .replace(/-/, '/')\n .replace(/-/, '/')\n .replace(/(\\d)T(\\d)/, '$1 $2')\n .replace(/Z/, ' UTC') // 2017-2-5T3:57:52Z -> 2017-2-5 3:57:52UTC\n .replace(/([+-]\\d\\d):?(\\d\\d)/, ' $1$2'); // -04:00 -> -0400\n return new Date(input);\n}\n/**\n * format the diff second to *** time ago, with setting locale\n * @param diff\n * @param localeFunc\n * @returns\n */\nexport function formatDiff(diff, localeFunc) {\n /**\n * if locale is not exist, use defaultLocale.\n * if defaultLocale is not exist, use build-in `en`.\n * be sure of no error when locale is not exist.\n *\n * If `time in`, then 1\n * If `time ago`, then 0\n */\n var agoIn = diff < 0 ? 1 : 0;\n /**\n * Get absolute value of number (|diff| is non-negative) value of x\n * |diff| = diff if diff is positive\n * |diff| = -diff if diff is negative\n * |0| = 0\n */\n diff = Math.abs(diff);\n /**\n * Time in seconds\n */\n var totalSec = diff;\n /**\n * Unit of time\n */\n var idx = 0;\n for (; diff >= SEC_ARRAY[idx] && idx < SEC_ARRAY.length; idx++) {\n diff /= SEC_ARRAY[idx];\n }\n /**\n * Math.floor() is alternative of ~~\n *\n * The differences and bugs:\n * Math.floor(3.7) -> 4 but ~~3.7 -> 3\n * Math.floor(1559125440000.6) -> 1559125440000 but ~~1559125440000.6 -> 52311552\n *\n * More information about the performance of algebraic:\n * https://www.youtube.com/watch?v=65-RbBwZQdU\n */\n diff = Math.floor(diff);\n idx *= 2;\n if (diff > (idx === 0 ? 9 : 1))\n idx += 1;\n return localeFunc(diff, idx, totalSec)[agoIn].replace('%s', diff.toString());\n}\n/**\n * calculate the diff second between date to be formatted an now date.\n * @param date\n * @param relativeDate\n * @returns {number}\n */\nexport function diffSec(date, relativeDate) {\n var relDate = relativeDate ? toDate(relativeDate) : new Date();\n return (+relDate - +toDate(date)) / 1000;\n}\n/**\n * nextInterval: calculate the next interval time.\n * - diff: the diff sec between now and date to be formatted.\n *\n * What's the meaning?\n * diff = 61 then return 59\n * diff = 3601 (an hour + 1 second), then return 3599\n * make the interval with high performance.\n **/\nexport function nextInterval(diff) {\n var rst = 1, i = 0, d = Math.abs(diff);\n for (; diff >= SEC_ARRAY[i] && i < SEC_ARRAY.length; i++) {\n diff /= SEC_ARRAY[i];\n rst *= SEC_ARRAY[i];\n }\n d = d % rst;\n d = d ? rst - d : rst;\n return Math.ceil(d);\n}\n//# sourceMappingURL=date.js.map","import { formatDiff, diffSec } from './utils/date';\nimport { getLocale } from './register';\n/**\n * format a TDate into string\n * @param date\n * @param locale\n * @param opts\n */\nexport var format = function (date, locale, opts) {\n // diff seconds\n var sec = diffSec(date, opts && opts.relativeDate);\n // format it with locale\n return formatDiff(sec, getLocale(locale));\n};\n//# sourceMappingURL=format.js.map","/**\n * Created by hustcc on 18/5/20.\n * Contract: i@hust.cc\n */\nimport en_US from './lang/en_US';\nimport zh_CN from './lang/zh_CN';\nimport { register } from './register';\nregister('en_US', en_US);\nregister('zh_CN', zh_CN);\nexport { format } from './format';\nexport { render, cancel } from './realtime';\nexport { register };\n//# sourceMappingURL=index.js.map","import React from 'react';\n\nimport { Text } from 'libs/shared/components/text/Text';\nimport { Playlist } from 'libs/shared/interfaces';\n\nconst namespace = 'playlists.playlistCount';\n\nfunction getCount(playlist: Playlist): number | false {\n if (!playlist)\n return false;\n\n const videos = playlist.videos?.count ?? 0;\n const interactives = playlist.interactives?.count ?? 0;\n const clips = playlist.clips?.count ?? 0;\n\n return videos + interactives + clips;\n}\n\ninterface PlaylistCountProps {\n playlist: Playlist;\n}\n\nexport function PlaylistCount(props: PlaylistCountProps): JSX.Element {\n const count = getCount(props.playlist);\n\n if (count === false || Number.isNaN(count))\n return <></>;\n\n return (\n <span className='text-shadow font-size-sm'>\n <Text namespace={namespace} phrase='count' options={{ smartCount: count }} />\n </span>\n );\n}","import * as React from 'react';\n\nimport { ClickViewPlayLogo } from 'libs/shared/components/svgs/clickview-logo/ClickViewLogo';\n\nimport styles from './clickview-avatar.module.scss';\n\nexport function ClickViewAvatar(): JSX.Element {\n return (\n <div className={styles.avatar}>\n <ClickViewPlayLogo />\n </div>\n );\n}\n","import * as React from 'react';\n\nimport { Avatar } from 'libs/shared/components/avatar/Avatar';\nimport { ClickViewAvatar } from 'libs/shared/components/clickview-avatar/ClickViewAvatar';\nimport { CurrentUser, Playlist } from 'libs/shared/interfaces';\nimport { UserHelper } from 'libs/shared/utils/UserHelper';\n\ninterface PlaylistOwnerAvatarProps {\n playlist: Playlist;\n imageCdnUrl: string;\n currentUser?: CurrentUser;\n}\n\nexport function PlaylistOwnerAvatar(props: PlaylistOwnerAvatarProps): JSX.Element {\n const { _liteOwner } = props.playlist;\n\n if (props.playlist._isClickViewCurated?.value)\n return (\n <ClickViewAvatar />\n );\n\n if (!_liteOwner?.id || !props.currentUser?.id)\n return <></>;\n\n const currentUserIsOwner = _liteOwner.id.toString() === props.currentUser.id.toString();\n\n if (currentUserIsOwner)\n return <></>;\n\n const url = typeof _liteOwner.avatar === 'string' ? _liteOwner.avatar : _liteOwner.avatar?.url;\n\n return (\n <Avatar\n imageUrl={url}\n imageCdnUrl={props.imageCdnUrl}\n initials={UserHelper.getInitials(_liteOwner.name, _liteOwner.surname)}\n />\n );\n}","import * as React from 'react';\nimport { format } from 'timeago.js';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { AnalyticsOptions, EntityType, HashObject } from 'libs/analytics/interfaces';\n\nimport { PlaylistCount } from 'libs/shared/apps/playlists/components/playlist-count/PlaylistCount';\nimport { PlaylistOwnerAvatar } from 'libs/shared/apps/playlists/components/playlist-list/PlaylistOwnerAvatar';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { AudienceLabel } from 'libs/shared/components/audience-label/AudienceLabel';\nimport { BaseImage } from 'libs/shared/components/image/BaseImage';\nimport { ImageFallback, ImageFallbackType } from 'libs/shared/components/image/ImageFallback';\nimport { ImageSize, ResizeType } from 'libs/shared/enums/Images';\nimport { useMergeAudiences } from 'libs/shared/hooks/UseMergeAudiences';\nimport { CurrentUser, Playlist, PresentationAudience } from 'libs/shared/interfaces';\nimport { getBgColorClass } from 'libs/shared/utils/getBgColorClass';\nimport { ImageHelper } from 'libs/shared/utils/ImageHelper';\n\nimport styles from './playlist.module.scss';\n\nconst namespace = 'playlists.playlistList';\n\nexport type PlaylistItemStyle = 'square' | 'round' | 'round-left';\n\nexport interface PlaylistItemProps {\n data: Playlist;\n appLink: Core.AppLink;\n currentUser?: CurrentUser;\n presentationAudiences?: PresentationAudience[];\n bgColourClassNames?: string[];\n titleClassName?: string;\n imageCdnUrl?: string;\n itemStyle?: PlaylistItemStyle;\n showCount?: boolean;\n showOwner?: boolean;\n showFallbackImage?: boolean;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n audienceLabelClass?: string;\n}\n\nPlaylistItem.defaultProps = {\n itemStyle: 'square'\n};\n\nexport function PlaylistItem(props: PlaylistItemProps): JSX.Element {\n const imageUrl = ImageHelper.createUrl(props.data.cover && props.data.cover.url, {\n size: ImageSize.Medium,\n resizeType: ResizeType.Cover\n });\n\n const audiences = props.data.subjectPresentationAudiences &&\n props.data.subjectPresentationAudiences.data;\n\n const mergedAudience = useMergeAudiences(audiences, props.presentationAudiences);\n\n let className = styles.playlistItem;\n\n const showImage = !!imageUrl || !!props.showFallbackImage;\n\n if (showImage)\n className += ` ${styles.playlistItemGradient}`;\n\n if (!showImage && props.bgColourClassNames)\n className += ` ${styles.playlistItem} ${getBgColorClass(props.data.name, props.bgColourClassNames)}`;\n\n if (props.itemStyle === 'round')\n className += ` rounded-3 overflow-hidden`;\n\n if (props.itemStyle === 'round-left')\n className += ` rounded-start-lg overflow-hidden`;\n\n const analyticsData = { ...props.analyticsData,\n id: props.data?.id,\n name: props.data?.name\n };\n\n const analyticsOptions = {\n ...props.analyticsOptions,\n entity: EntityType.Playlist\n };\n\n const getTitle = () => {\n if (!props.data.contentModifiedDate || props.data._isClickViewCurated?.value)\n return '';\n\n return LanguageService.getPhrase(namespace, 'lastUpdated', {\n timeago: format(DateHelper.convertUTCToLocal(props.data.contentModifiedDate))\n });\n };\n\n return (\n <AppLink\n appLink={props.appLink}\n analyticsData={analyticsData}\n analyticsOptions={analyticsOptions}\n title={getTitle()}\n >\n <BaseImage data={imageUrl} alt={props.data.name} className={className}>\n {!!props.showFallbackImage && <ImageFallback type={ImageFallbackType.Playlist} />}\n <div className={`text-white ${styles.playlistMetadata}`}>\n {!!props.showCount && (\n <PlaylistCount playlist={props.data} />\n )}\n <h5 className={`mb-0 ${props.titleClassName || ''}`}><span className='text-shadow clamp-2'>{props.data.name}</span></h5>\n {!!audiences && !!audiences.length && !!mergedAudience &&\n <AudienceLabel\n className={`${props.audienceLabelClass ? props.audienceLabelClass : ''} mt-1`}\n audience={mergedAudience}\n border='white'\n />\n }\n </div>\n {!!props.showOwner && !!props.imageCdnUrl &&\n <div className={styles.ownerAvatarContainer}>\n <PlaylistOwnerAvatar\n playlist={props.data}\n currentUser={props.currentUser}\n imageCdnUrl={props.imageCdnUrl}\n />\n </div>\n }\n </BaseImage>\n </AppLink>\n );\n}","import * as React from 'react';\nimport { Col, Row } from 'react-bootstrap';\n\nimport { Core } from 'libs/common/core';\n\nimport { AnalyticsOptions, ClickDescriptor, EntityType, HashObject, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { CurrentUser, Playlist, PresentationAudience } from 'libs/shared/interfaces';\n\nimport { PlaylistItem, PlaylistItemStyle } from './PlaylistItem';\n\ninterface PlaylistListProps {\n playlists: Playlist[];\n getPlaylistAppLink: (playlist: Playlist) => Core.AppLink;\n currentUser?: CurrentUser;\n presentationAudiences?: PresentationAudience[];\n itemContainerClassName?: string;\n itemTitleClassName?: string;\n bgColourClassNames?: string[];\n itemStyle?: PlaylistItemStyle;\n imageCdnUrl?: string;\n showCount?: boolean;\n showOwner?: boolean;\n showFallbackImage?: boolean;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n extraPlaylistItem?: JSX.Element;\n}\n\nconst analyticsOptions: AnalyticsOptions = {\n actionType: UserAction.Click,\n entity: EntityType.Playlist,\n location: LocationContext.PlaylistListItem,\n descriptor: ClickDescriptor.Cover\n};\n\nexport function PlaylistList(props: PlaylistListProps): JSX.Element {\n return (\n <Row as='ul' className='list-unstyled mx-n1'>\n {props.extraPlaylistItem && (\n <Col as='li' key='extra-playlist-item' xs={6} sm={4} lg={3} className={`mb-2 px-1 ${props.itemContainerClassName ? props.itemContainerClassName : ''}`}>\n {props.extraPlaylistItem}\n </Col>\n )}\n\n {props.playlists.map(p => (\n <Col as='li' key={p.id} xs={6} sm={4} lg={3} className={`mb-2 px-1 ${props.itemContainerClassName ? props.itemContainerClassName : ''}`}>\n <PlaylistItem\n data={p}\n appLink={props.getPlaylistAppLink(p)}\n imageCdnUrl={props.imageCdnUrl}\n currentUser={props.currentUser}\n presentationAudiences={props.presentationAudiences}\n bgColourClassNames={props.bgColourClassNames}\n showCount={props.showCount}\n showOwner={props.showOwner}\n showFallbackImage={props.showFallbackImage}\n titleClassName={props.itemTitleClassName}\n itemStyle={props.itemStyle}\n analyticsData={props.analyticsData}\n analyticsOptions={{ ...props.analyticsOptions, ...analyticsOptions }}\n />\n </Col>\n ))}\n </Row>\n );\n}","import React from 'react';\n\nimport { AudienceLabel } from 'libs/shared/components/audience-label/AudienceLabel';\nimport { Badge, BadgeType } from 'libs/shared/components/badges/Badge';\nimport { BaseImage } from 'libs/shared/components/image/BaseImage';\nimport { ImageFallback, ImageFallbackType } from 'libs/shared/components/image/ImageFallback';\nimport { ImageSize, ImageType } from 'libs/shared/enums/Images';\nimport { useHoverIntent } from 'libs/shared/hooks/UseHover';\nimport { useMergeAudiences } from 'libs/shared/hooks/UseMergeAudiences';\nimport { PresentationAudience, Series } from 'libs/shared/interfaces';\nimport { SeriesHelper } from 'libs/shared/utils/SeriesHelper';\n\nimport styles from './series-tall-poster.module.scss';\n\ninterface SeriesTallPosterHoverOverlay {\n series: Series;\n mergedAudience: PresentationAudience;\n isSmall?: boolean;\n hasTableOfContents?: boolean;\n}\n\nfunction SeriesTallPosterHoverOverlay(props: SeriesTallPosterHoverOverlay): JSX.Element {\n return (\n <div className={`py-3 mx-2 px-2 rounded bg-white text-center ${styles.mask} d-flex flex-column align-items-center`}>\n <h3 className={`fw-semibold mb-0 ${styles.hoverTitle} ${props.isSmall ? styles.smallHoverTitle : styles.largeHoverTitle}`}>\n <span className='clamp-3'>\n {props.series.name}\n </span>\n </h3>\n\n {!!props.series.description && (\n <p className={`${props.hasTableOfContents ? styles.hasTableOfContents : ''} ${styles.hoverDescription} ${props.isSmall ? styles.smallHoverDescription : styles.largeHoverDescription} mb-0`}>{props.series.description}</p>\n )}\n <div className={`${styles.labelContainerOverlay}`}>\n {props.mergedAudience\n ? <AudienceLabel audience={props.mergedAudience} border='dark' className='mt-2 w-fit'/>\n : <Badge type={BadgeType.Rating} data={SeriesHelper.getRating(props.series)} className='mt-2' />\n }\n </div>\n </div>\n );\n}\n\ninterface SeriesTallPosterMaskProps {\n series: Series;\n presentationAudiences: PresentationAudience[];\n preloadImage: boolean;\n imageClass?: string;\n isSmall?: boolean;\n hasTableOfContents?: boolean;\n}\n\nexport function SeriesTallPoster(props: SeriesTallPosterMaskProps): JSX.Element {\n const [ hoverRef, isHovering ] = useHoverIntent<HTMLDivElement>({ className: styles.hoverActive });\n \n const audiences = props.series && props.series.subjectPresentationAudiences &&\n props.series.subjectPresentationAudiences.data || [];\n\n const mergedAudience = useMergeAudiences(audiences, props.presentationAudiences);\n const displayAudience = !!(audiences && audiences.length && mergedAudience);\n\n return (\n <div ref={hoverRef}>\n <BaseImage\n data={props.series.tallPoster}\n alt={props.series.name}\n imageType={ImageType.TallPosters}\n preload={props.preloadImage}\n imageOptions={{ size: ImageSize.Large }}\n imageClassName={props.imageClass ? props.imageClass : 'rounded-3'}\n >\n {isHovering && (\n <SeriesTallPosterHoverOverlay\n isSmall={props.isSmall}\n series={props.series}\n mergedAudience={audiences && audiences.length ? mergedAudience : null}\n hasTableOfContents={props.hasTableOfContents}\n />\n )}\n \n <ImageFallback type={ImageFallbackType.Series} />\n <div className={`position-absolute text-white text-shadow ${styles.labelContainer}`}>\n {displayAudience\n ? <AudienceLabel audience={mergedAudience} border='white' />\n : <Badge type={BadgeType.Rating} data={SeriesHelper.getRating(props.series)} />\n }\n </div>\n </BaseImage>\n </div>\n );\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 { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions, LocationContext } from 'libs/analytics/interfaces';\n\nimport { AudienceLabel } from 'libs/shared/components/audience-label/AudienceLabel';\nimport { Badge, BadgeType } from 'libs/shared/components/badges/Badge';\nimport { BadgeListContainer } from 'libs/shared/components/badges/BadgeListContainer';\nimport { VideoThumbnail } from 'libs/shared/components/thumbnails/video/VideoThumbnail';\nimport { VideoItemGuidance } from 'libs/shared/components/video-list/components/video-guidance/VideoItemGuidance';\nimport { VideoItemActions } from 'libs/shared/components/video-list/components/video-item-actions/VideoItemActions';\nimport { VideoItemTitle } from 'libs/shared/components/video-list/components/video-item-title/VideoItemTitle';\nimport { VideoSubText } from 'libs/shared/components/video-sub-text/VideoSubText';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { ThumbnailTextPosition } from 'libs/shared/enums/ThumbnailTextPosition';\nimport { useMergeAudiences } from 'libs/shared/hooks/UseMergeAudiences';\nimport { PresentationAudience, 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 styles from './hero-video.module.scss';\n\ninterface HeroVideoProps {\n video: Video;\n presentationAudiences: PresentationAudience[];\n showVideoGuidance: boolean;\n getVideoAppLink: (video: Video, opts: GetVideoAppLinkOptions) => Core.AppLink;\n hideInteractiveBadge?: boolean;\n badgePosition?: 'thumbnail' | 'info-panel';\n titleClassName?: string;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n commonVideoProps: CommonVideoProps;\n showNewVideoIndicator?: boolean;\n}\n\nHeroVideo.defaultProps = {\n newDurationStyle: true,\n badgePosition: 'thumbnail'\n};\n\nexport function HeroVideo(props: HeroVideoProps): JSX.Element {\n const videoAudiences = props.video?.subjectPresentationAudiences?.data;\n const mergedAudience = useMergeAudiences(videoAudiences, props.presentationAudiences);\n\n const analyticsOptions = AnalyticsHelper.mergeOptions(props.analyticsOptions, {\n location: LocationContext.ClassificationHero,\n entity: VideoHelper.getAnalyticsEntity(props.video)\n });\n\n const containerRef = React.useRef(null);\n \n if (!props.video)\n return <></>;\n\n return (\n <Row>\n <Col xs={12} md={6}>\n <div ref={containerRef} >\n <VideoThumbnail\n analyticsOptions={analyticsOptions}\n video={props.video}\n appLink={props.getVideoAppLink?.(props.video, {})}\n imageOptions={{ size: ImageSize.Medium }}\n textPosition={ThumbnailTextPosition.Independent}\n type='static'\n audience={props.badgePosition === 'thumbnail' ? mergedAudience : null}\n hideRating={props.badgePosition === 'thumbnail' ? !!mergedAudience : true}\n commonVideoProps={props.commonVideoProps}\n />\n </div>\n </Col>\n <Col xs={12} md={6} className={`${styles.details} position-relative`}>\n <div className='d-flex justify-content-between'>\n <div className='overflow-hidden'>\n <VideoSubText\n type={props.commonVideoProps.subTextType}\n appLink={props.commonVideoProps.getSubTextAppLink?.(props.video)}\n analyticsData={props.analyticsData}\n analyticsOptions={analyticsOptions}\n video={props.video}\n className='text-reset clamp-1'\n />\n <VideoItemTitle\n yearGroups={props.commonVideoProps.yearGroups}\n video={props.video}\n analyticsData={props.analyticsData}\n analyticsOptions={analyticsOptions}\n appLink={props.getVideoAppLink?.(props.video, {})}\n titleSize='h4'\n showNewVideoIndicator={props.showNewVideoIndicator}\n showPadlock={!props.commonVideoProps.hasStudentExperience && !props.commonVideoProps.hasGuestExperience}\n titleClassName={props.titleClassName}\n clampLevel={2}\n />\n </div>\n <VideoItemActions\n analyticsData={props.analyticsData}\n analyticsOptions={analyticsOptions}\n video={props.video}\n />\n </div>\n\n {props.badgePosition === 'info-panel' && (\n <BadgeListContainer className='pb-1'>\n {!props.hideInteractiveBadge && <Badge type={ BadgeType.Interactive } data={props.video.interactives} />}\n <Badge type={ BadgeType.Rating } data={VideoHelper.getRating(props.video)} />\n <Badge type={ BadgeType.ProductionYear } data={props.video.productionYear} />\n </BadgeListContainer>\n )}\n\n <p className='mb-1'><span className={styles.description}>{props.video.description}</span></p>\n \n {props.badgePosition === 'info-panel' && (\n <AudienceLabel\n audience={mergedAudience}\n className='mt-1'\n border='dark'\n />\n )}\n\n {props.showVideoGuidance && (\n <VideoItemGuidance\n video={props.video}\n analyticsData={props.analyticsData}\n analyticsOptions={analyticsOptions}\n containerClassName={`d-flex ${styles.guidance}`}\n responsiveClassName={styles.responsiveGuidance}\n commonVideoProps={props.commonVideoProps}\n />\n )}\n </Col>\n </Row>\n );\n}\n\nexport function PartialHeroVideo(): JSX.Element {\n return (\n <>\n <div className={`partial-loading-background mb-2 ${styles.partialHeading}`} />\n <div className='row pb-3'>\n <div className='col-6 p1'>\n <div className={`${styles.partialHeroThumbnail} partial-loading-background rounded-3`}></div>\n </div>\n <div className='col-6 p1'>\n <div className={`partial-loading-background mb-1 ${styles.partialSeriesText}`}></div>\n <div className={`partial-loading-background my-1 ${styles.partialVideoTitleText}`}></div>\n <div className='d-flex'>\n <div className={`partial-loading-background my-1 me-1 ${styles.partialBadge}`}></div>\n <div className={`partial-loading-background my-1 ms-1 ${styles.partialBadge}`}></div>\n </div>\n <div className={`partial-loading-background my-1 ${styles.partialDescription}`}></div>\n <div className={`partial-loading-background mt-2 ${styles.partialSubject}`}></div>\n </div>\n </div>\n </>\n );\n}\n"],"names":["PartialPlaylistList","props","PARTIAL_PLAYLISTS","className","jsxs","Fragment","jsx","styles","Row","p","idx","Col","EN_US","en_US","diff","unit","ZH_CN","zh_CN","Locales","register","locale","func","getLocale","SEC_ARRAY","toDate","input","formatDiff","localeFunc","agoIn","totalSec","diffSec","date","relativeDate","relDate","format","opts","sec","namespace","getCount","playlist","videos","_a","interactives","_b","clips","_c","PlaylistCount","count","Text","ClickViewAvatar","ClickViewPlayLogo","PlaylistOwnerAvatar","_liteOwner","url","Avatar","UserHelper","PlaylistItem","imageUrl","ImageHelper","ImageSize","ResizeType","audiences","mergedAudience","useMergeAudiences","showImage","getBgColorClass","analyticsData","analyticsOptions","EntityType","getTitle","LanguageService","DateHelper","AppLink","BaseImage","ImageFallback","ImageFallbackType","AudienceLabel","UserAction","LocationContext","ClickDescriptor","SeriesTallPosterHoverOverlay","Badge","BadgeType","SeriesHelper","SeriesTallPoster","hoverRef","isHovering","useHoverIntent","displayAudience","ImageType","HeroVideo","videoAudiences","AnalyticsHelper","VideoHelper","containerRef","React","VideoThumbnail","ThumbnailTextPosition","VideoSubText","_e","_d","VideoItemTitle","_f","VideoItemActions","BadgeListContainer","VideoItemGuidance"],"mappings":"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","x_google_ignoreList":[1,2,3,4,5,6]}
|