@clickview/streamable-learning 0.33.0 → 0.34.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/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/Dc0zNt2E.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/-Oi3rE3V.chunk.js +5 -0
- package/dist/scripts/-Oi3rE3V.chunk.js.map +1 -0
- package/dist/scripts/-cwk-1Iv.chunk.js +2 -0
- package/dist/scripts/-cwk-1Iv.chunk.js.map +1 -0
- package/dist/scripts/4oi1ldJ4.chunk.js +3 -0
- package/dist/scripts/4oi1ldJ4.chunk.js.map +1 -0
- package/dist/scripts/6UeJLeAd.chunk.js +2 -0
- package/dist/scripts/6UeJLeAd.chunk.js.map +1 -0
- package/dist/scripts/8zar0u1i.chunk.js +2 -0
- package/dist/scripts/8zar0u1i.chunk.js.map +1 -0
- package/dist/scripts/9NIa7Pi_.chunk.js +2 -0
- package/dist/scripts/9NIa7Pi_.chunk.js.map +1 -0
- package/dist/scripts/B5OOLcT3.chunk.js +2 -0
- package/dist/scripts/B5OOLcT3.chunk.js.map +1 -0
- package/dist/scripts/B8XJmK96.chunk.js +8 -0
- package/dist/scripts/B8XJmK96.chunk.js.map +1 -0
- package/dist/scripts/BA6k9XoA.chunk.js +2 -0
- package/dist/scripts/BA6k9XoA.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/BEL0opwe.chunk.js +2 -0
- package/dist/scripts/BEL0opwe.chunk.js.map +1 -0
- package/dist/scripts/BHmtLW9C.chunk.js +2 -0
- package/dist/scripts/BHmtLW9C.chunk.js.map +1 -0
- package/dist/scripts/BJ0C6oH6.chunk.js +2 -0
- package/dist/scripts/BJ0C6oH6.chunk.js.map +1 -0
- package/dist/scripts/BPcJv8Nj.chunk.js +2 -0
- package/dist/scripts/BPcJv8Nj.chunk.js.map +1 -0
- package/dist/scripts/BQQ9SPei.chunk.js +10 -0
- package/dist/scripts/BQQ9SPei.chunk.js.map +1 -0
- package/dist/scripts/BQQZ0Zva.chunk.js +2 -0
- package/dist/scripts/BQQZ0Zva.chunk.js.map +1 -0
- package/dist/scripts/BRKKXF-k.chunk.js +2 -0
- package/dist/scripts/BRKKXF-k.chunk.js.map +1 -0
- package/dist/scripts/BUhbk0mt.chunk.js +2 -0
- package/dist/scripts/BUhbk0mt.chunk.js.map +1 -0
- package/dist/scripts/BXKrMYdw.chunk.js +2 -0
- package/dist/scripts/BXKrMYdw.chunk.js.map +1 -0
- package/dist/scripts/B_eK8A25.chunk.js +2 -0
- package/dist/scripts/B_eK8A25.chunk.js.map +1 -0
- package/dist/scripts/BbjveACT.chunk.js +2 -0
- package/dist/scripts/BbjveACT.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/BeHz9c4V.chunk.js +2 -0
- package/dist/scripts/BeHz9c4V.chunk.js.map +1 -0
- package/dist/scripts/BexFb8rj.chunk.js +2 -0
- package/dist/scripts/BexFb8rj.chunk.js.map +1 -0
- package/dist/scripts/Bi8YRFeY.chunk.js +2 -0
- package/dist/scripts/Bi8YRFeY.chunk.js.map +1 -0
- package/dist/scripts/Bj3i6I7i.chunk.js +2 -0
- package/dist/scripts/Bj3i6I7i.chunk.js.map +1 -0
- package/dist/scripts/BktU87GA.chunk.js +2 -0
- package/dist/scripts/BktU87GA.chunk.js.map +1 -0
- package/dist/scripts/Bl1HvG0b.chunk.js +2 -0
- package/dist/scripts/Bl1HvG0b.chunk.js.map +1 -0
- package/dist/scripts/BnWlQ7-4.chunk.js +2 -0
- package/dist/scripts/BnWlQ7-4.chunk.js.map +1 -0
- package/dist/scripts/BoqzK1u7.chunk.js +2 -0
- package/dist/scripts/BoqzK1u7.chunk.js.map +1 -0
- package/dist/scripts/Bsa3zcW0.chunk.js +2 -0
- package/dist/scripts/Bsa3zcW0.chunk.js.map +1 -0
- package/dist/scripts/Bt3kaRtU.chunk.js +6 -0
- package/dist/scripts/Bt3kaRtU.chunk.js.map +1 -0
- package/dist/scripts/BtiKTu8r.chunk.js +2 -0
- package/dist/scripts/BtiKTu8r.chunk.js.map +1 -0
- package/dist/scripts/BwOoIPmc.chunk.js +2 -0
- package/dist/scripts/BwOoIPmc.chunk.js.map +1 -0
- package/dist/scripts/BwuSNwcs.chunk.js +2 -0
- package/dist/scripts/BwuSNwcs.chunk.js.map +1 -0
- package/dist/scripts/Byn8R7bs.chunk.js +2 -0
- package/dist/scripts/Byn8R7bs.chunk.js.map +1 -0
- package/dist/scripts/C2Zu5vKc.chunk.js +2 -0
- package/dist/scripts/C2Zu5vKc.chunk.js.map +1 -0
- package/dist/scripts/C2uxO8e2.chunk.js +2 -0
- package/dist/scripts/C2uxO8e2.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/C5QPXJGU.chunk.js +15 -0
- package/dist/scripts/C5QPXJGU.chunk.js.map +1 -0
- package/dist/scripts/C6mGMCz4.chunk.js +2 -0
- package/dist/scripts/C6mGMCz4.chunk.js.map +1 -0
- package/dist/scripts/C8ZuWYfb.chunk.js +2 -0
- package/dist/scripts/C8ZuWYfb.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/CICkmQW6.chunk.js +2 -0
- package/dist/scripts/CICkmQW6.chunk.js.map +1 -0
- package/dist/scripts/CLumRL-T.chunk.js +2 -0
- package/dist/scripts/CLumRL-T.chunk.js.map +1 -0
- package/dist/scripts/CO_D2O4I.chunk.js +2 -0
- package/dist/scripts/CO_D2O4I.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/CQZOieOF.chunk.js +2 -0
- package/dist/scripts/CQZOieOF.chunk.js.map +1 -0
- package/dist/scripts/CQoWqq54.chunk.js +2 -0
- package/dist/scripts/CQoWqq54.chunk.js.map +1 -0
- package/dist/scripts/CRT9qru0.chunk.js +2 -0
- package/dist/scripts/CRT9qru0.chunk.js.map +1 -0
- package/dist/scripts/CU6iZ8MR.chunk.js +2 -0
- package/dist/scripts/CU6iZ8MR.chunk.js.map +1 -0
- package/dist/scripts/CUltMbyK.chunk.js +2 -0
- package/dist/scripts/CUltMbyK.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/CYlwi5iC.chunk.js +7 -0
- package/dist/scripts/CYlwi5iC.chunk.js.map +1 -0
- package/dist/scripts/CgJckl-g.chunk.js +2 -0
- package/dist/scripts/CgJckl-g.chunk.js.map +1 -0
- package/dist/scripts/Cj5ETNHP.chunk.js +2 -0
- package/dist/scripts/Cj5ETNHP.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/Cr8fUgj9.chunk.js +2 -0
- package/dist/scripts/Cr8fUgj9.chunk.js.map +1 -0
- package/dist/scripts/CtM_cXum.chunk.js +2 -0
- package/dist/scripts/CtM_cXum.chunk.js.map +1 -0
- package/dist/scripts/Cv1FGdNu.chunk.js +2 -0
- package/dist/scripts/Cv1FGdNu.chunk.js.map +1 -0
- package/dist/scripts/CvPDjx7y.chunk.js +2 -0
- package/dist/scripts/CvPDjx7y.chunk.js.map +1 -0
- package/dist/scripts/D0bydDVL.chunk.js +2 -0
- package/dist/scripts/D0bydDVL.chunk.js.map +1 -0
- package/dist/scripts/D1EE4AEz.chunk.js +356 -0
- package/dist/scripts/D1EE4AEz.chunk.js.map +1 -0
- package/dist/scripts/D84-WY3k.chunk.js +2 -0
- package/dist/scripts/D84-WY3k.chunk.js.map +1 -0
- package/dist/scripts/DAh7Ea13.chunk.js +2 -0
- package/dist/scripts/DAh7Ea13.chunk.js.map +1 -0
- package/dist/scripts/DBIkG3Bu.chunk.js +2 -0
- package/dist/scripts/DBIkG3Bu.chunk.js.map +1 -0
- package/dist/scripts/DCcI7sWt.chunk.js +2 -0
- package/dist/scripts/DCcI7sWt.chunk.js.map +1 -0
- package/dist/scripts/DEP24A-f.chunk.js +2 -0
- package/dist/scripts/DEP24A-f.chunk.js.map +1 -0
- package/dist/scripts/DGFORsAE.chunk.js +2 -0
- package/dist/scripts/DGFORsAE.chunk.js.map +1 -0
- package/dist/scripts/DGaf-Jy9.chunk.js +2 -0
- package/dist/scripts/DGaf-Jy9.chunk.js.map +1 -0
- package/dist/scripts/DJyZ6Hx7.chunk.js +2 -0
- package/dist/scripts/DJyZ6Hx7.chunk.js.map +1 -0
- package/dist/scripts/DOCam-GK.chunk.js +2 -0
- package/dist/scripts/DOCam-GK.chunk.js.map +1 -0
- package/dist/scripts/DSLX3H2r.chunk.js +2 -0
- package/dist/scripts/DSLX3H2r.chunk.js.map +1 -0
- package/dist/scripts/DSq4f4jm.chunk.js +2 -0
- package/dist/scripts/DSq4f4jm.chunk.js.map +1 -0
- package/dist/scripts/DXxBqeLg.chunk.js +2 -0
- package/dist/scripts/DXxBqeLg.chunk.js.map +1 -0
- package/dist/scripts/DZ6Jrm23.chunk.js +2 -0
- package/dist/scripts/DZ6Jrm23.chunk.js.map +1 -0
- package/dist/scripts/Daes5Wgy.chunk.js +2 -0
- package/dist/scripts/Daes5Wgy.chunk.js.map +1 -0
- package/dist/scripts/DeUbJqVo.chunk.js +2 -0
- package/dist/scripts/DeUbJqVo.chunk.js.map +1 -0
- package/dist/scripts/DgEqkZy0.chunk.js +8 -0
- package/dist/scripts/DgEqkZy0.chunk.js.map +1 -0
- package/dist/scripts/DhB-Uugx.chunk.js +2 -0
- package/dist/scripts/DhB-Uugx.chunk.js.map +1 -0
- package/dist/scripts/DhqAA1wT.chunk.js +2 -0
- package/dist/scripts/DhqAA1wT.chunk.js.map +1 -0
- package/dist/scripts/Di5-l4QJ.chunk.js +2 -0
- package/dist/scripts/Di5-l4QJ.chunk.js.map +1 -0
- package/dist/scripts/DiQkAtUx.chunk.js +53 -0
- package/dist/scripts/DiQkAtUx.chunk.js.map +1 -0
- package/dist/scripts/DireiQEp.chunk.js +2 -0
- package/dist/scripts/DireiQEp.chunk.js.map +1 -0
- package/dist/scripts/Dj66TI5y.chunk.js +2 -0
- package/dist/scripts/Dj66TI5y.chunk.js.map +1 -0
- package/dist/scripts/DkFkYS-j.chunk.js +2 -0
- package/dist/scripts/DkFkYS-j.chunk.js.map +1 -0
- package/dist/scripts/Dkq5GtOV.chunk.js +2 -0
- package/dist/scripts/Dkq5GtOV.chunk.js.map +1 -0
- package/dist/scripts/DmSSmUHZ.chunk.js +2 -0
- package/dist/scripts/DmSSmUHZ.chunk.js.map +1 -0
- package/dist/scripts/DoQU9vjn.chunk.js +2 -0
- package/dist/scripts/DoQU9vjn.chunk.js.map +1 -0
- package/dist/scripts/DtHh_hpg.chunk.js +2 -0
- package/dist/scripts/DtHh_hpg.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/DwhG2uva.chunk.js +2 -0
- package/dist/scripts/DwhG2uva.chunk.js.map +1 -0
- package/dist/scripts/DxJlWHZr.chunk.js +2 -0
- package/dist/scripts/DxJlWHZr.chunk.js.map +1 -0
- package/dist/scripts/DxmeZ4C9.chunk.js +2 -0
- package/dist/scripts/DxmeZ4C9.chunk.js.map +1 -0
- package/dist/scripts/KuveJuNy.chunk.js +2 -0
- package/dist/scripts/KuveJuNy.chunk.js.map +1 -0
- package/dist/scripts/LKCLmV2A.chunk.js +2 -0
- package/dist/scripts/LKCLmV2A.chunk.js.map +1 -0
- package/dist/scripts/RnuR8yr3.chunk.js +2 -0
- package/dist/scripts/RnuR8yr3.chunk.js.map +1 -0
- package/dist/scripts/XxrnElSv.chunk.js +2 -0
- package/dist/scripts/XxrnElSv.chunk.js.map +1 -0
- package/dist/scripts/YF_QoXEj.chunk.js +3 -0
- package/dist/scripts/YF_QoXEj.chunk.js.map +1 -0
- package/dist/scripts/Z2sDSVPb.chunk.js +2 -0
- package/dist/scripts/Z2sDSVPb.chunk.js.map +1 -0
- package/dist/scripts/Zbze2j9b.chunk.js +2 -0
- package/dist/scripts/Zbze2j9b.chunk.js.map +1 -0
- package/dist/scripts/app-C56EnOMP.js +216 -0
- package/dist/scripts/app-C56EnOMP.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/h34ZSRKe.chunk.js +2 -0
- package/dist/scripts/h34ZSRKe.chunk.js.map +1 -0
- package/dist/scripts/leubTuJo.chunk.js +2 -0
- package/dist/scripts/leubTuJo.chunk.js.map +1 -0
- package/dist/scripts/m5XtnRaH.chunk.js +2 -0
- package/dist/scripts/m5XtnRaH.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/p61U8kXz.chunk.js +2 -0
- package/dist/scripts/p61U8kXz.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/sc9-PV9Y.chunk.js +2 -0
- package/dist/scripts/sc9-PV9Y.chunk.js.map +1 -0
- package/dist/scripts/tAsRziXo.chunk.js +8 -0
- package/dist/scripts/tAsRziXo.chunk.js.map +1 -0
- package/dist/scripts/xrHhD6CF.chunk.js +8 -0
- package/dist/scripts/xrHhD6CF.chunk.js.map +1 -0
- package/dist/scripts/xxo027lm.chunk.js +2 -0
- package/dist/scripts/xxo027lm.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/4772-streamable-learning-f83b838d71.chunk.css +0 -9
- package/dist/css/5003-streamable-learning-b38d2ddbbe.chunk.css +0 -98
- package/dist/css/5212-streamable-learning-2605302fc2.chunk.css +0 -90
- 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/streamable-learning-dd0c1095d5.css +0 -23
- package/dist/languages/en.json +0 -1
- package/dist/scripts/103-045fbeec6b-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-8170bb766e-streamable-learning.chunk.js +0 -2
- package/dist/scripts/1269-8170bb766e-streamable-learning.chunk.js.LICENSE.txt +0 -1
- package/dist/scripts/1457-836d537d71-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-98962067f5-streamable-learning.chunk.js +0 -1
- package/dist/scripts/2676-2e8a501091-streamable-learning.chunk.js +0 -2
- package/dist/scripts/2676-2e8a501091-streamable-learning.chunk.js.LICENSE.txt +0 -1
- package/dist/scripts/2877-5ffc9711f6-streamable-learning.chunk.js +0 -1
- package/dist/scripts/2911-9e2725fd22-streamable-learning.chunk.js +0 -1
- package/dist/scripts/3057-58d4e05af1-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-10050fa868-streamable-learning.chunk.js +0 -1
- package/dist/scripts/3472-50ca92bde3-streamable-learning.chunk.js +0 -1
- package/dist/scripts/3838-d64b6c347a-streamable-learning.chunk.js +0 -1
- package/dist/scripts/3941-2ef15ca9ac-streamable-learning.chunk.js +0 -1
- package/dist/scripts/4254-bddb032519-streamable-learning.chunk.js +0 -1
- package/dist/scripts/4772-6540b98896-streamable-learning.chunk.js +0 -2
- package/dist/scripts/4772-6540b98896-streamable-learning.chunk.js.LICENSE.txt +0 -1
- package/dist/scripts/4951-df701c6a8d-streamable-learning.chunk.js +0 -1
- package/dist/scripts/5003-b30fdd96e6-streamable-learning.chunk.js +0 -2
- package/dist/scripts/5003-b30fdd96e6-streamable-learning.chunk.js.LICENSE.txt +0 -1
- package/dist/scripts/5088-2297cf88f0-streamable-learning.chunk.js +0 -1
- package/dist/scripts/5173-a800a17d0d-streamable-learning.chunk.js +0 -1
- package/dist/scripts/5212-39e4b02cbb-streamable-learning.chunk.js +0 -2
- package/dist/scripts/5212-39e4b02cbb-streamable-learning.chunk.js.LICENSE.txt +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-9f5fa3e04b-streamable-learning.chunk.js +0 -1
- package/dist/scripts/578-2cc99f46f7-streamable-learning.chunk.js +0 -1
- package/dist/scripts/6017-1630c158c2-streamable-learning.chunk.js +0 -2
- package/dist/scripts/6017-1630c158c2-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-6d501d1b82-streamable-learning.chunk.js +0 -1
- package/dist/scripts/7347-49d1a18d3b-streamable-learning.chunk.js +0 -1
- package/dist/scripts/7570-fba1ab7c45-streamable-learning.chunk.js +0 -2
- package/dist/scripts/7570-fba1ab7c45-streamable-learning.chunk.js.LICENSE.txt +0 -1
- package/dist/scripts/7904-e07cdef2de-streamable-learning.chunk.js +0 -1
- package/dist/scripts/7925-1e1cfa2a04-streamable-learning.chunk.js +0 -1
- package/dist/scripts/8058-995937c0ad-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-9c73c4dcb7-streamable-learning.chunk.js +0 -2
- package/dist/scripts/8496-9c73c4dcb7-streamable-learning.chunk.js.LICENSE.txt +0 -1
- package/dist/scripts/8599-b74e1ab6e3-streamable-learning.chunk.js +0 -1
- package/dist/scripts/8601-709123e64a-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-e6641286fe-streamable-learning.chunk.js +0 -1
- package/dist/scripts/9514-a31ca9af06-streamable-learning.chunk.js +0 -1
- package/dist/scripts/9766-f64bf6f003-streamable-learning.chunk.js +0 -2
- package/dist/scripts/9766-f64bf6f003-streamable-learning.chunk.js.LICENSE.txt +0 -1
- package/dist/scripts/9842-dd5d85c9e3-streamable-learning.chunk.js +0 -1
- package/dist/scripts/9899-71bc5a6f02-streamable-learning.chunk.js +0 -2
- package/dist/scripts/9899-71bc5a6f02-streamable-learning.chunk.js.LICENSE.txt +0 -1
- package/dist/scripts/bundle-68f2acccc5.min.js +0 -2
- package/dist/scripts/bundle-68f2acccc5.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":"DZ6Jrm23.chunk.js","sources":["../../../../libs/shared/src/apps/search/components/filter-actions/FilterActions.tsx","../../../../libs/shared/src/apps/search/components/filter-button/FilterButton.tsx","../../../../libs/shared/src/utils/StateHelper.ts","../../../../libs/shared/src/apps/search/components/filter-button/MoreFiltersButton.tsx","../../../../libs/shared/src/apps/search/components/filter-types/tag-filter/TagFilter.tsx","../../../../libs/shared/src/apps/search/components/reset-button/ResetButton.tsx","../../../../libs/shared/src/apps/search/components/search-filters/SearchFilters.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { Text } from 'libs/shared/components/text/Text';\n\nconst namespace = 'search.filterActions';\n\ninterface FilterActionsProps {\n className?: string;\n onClickReset: () => void;\n onClickApply: () => void;\n active: boolean;\n}\n\nFilterActions.defaultProps = {\n active: false,\n className: ''\n};\n\nexport function FilterActions(props: FilterActionsProps): JSX.Element {\n return (\n <div className={`d-flex justify-content-between ${props.className}`}>\n {props.active ? (\n <DivButton className='text-secondary hover-text-underline cursor-pointer' onClick={props.onClickReset}>\n <Text namespace={namespace} phrase='reset' />\n </DivButton>\n ) : (\n <div className='invisible' />\n )}\n\n <DivButton className='info-link' onClick={props.onClickApply}>\n <Text namespace={namespace} phrase='apply' />\n </DivButton>\n </div>\n );\n}","import * as React from 'react';\nimport { Dropdown } from 'react-bootstrap';\n\nimport { FilterActions } from 'libs/shared/apps/search/components/filter-actions/FilterActions';\nimport { SearchFilter } from 'libs/shared/apps/search/interfaces';\nimport { FilterContext, FilterState } from 'libs/shared/apps/search/reducers';\nimport { FilterHelper } from 'libs/shared/apps/search/utils/FilterHelper';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\n\nimport styles from './filter-button.module.scss';\n\n/**\n * If your filter requires some customisations to the default width, add a use case here.\n */\nfunction getCustomWidthClass(filter: SearchFilter): string {\n if (FilterHelper.displayTwoColumns(filter))\n return styles.twoColumnsWidth;\n\n // Some classifications has long names, so we make them wider\n if (filter.id === 'classification')\n return styles.classificationWidth;\n \n if (FilterHelper.displayTwoLayers(filter))\n return styles.nestedCheckboxesWidth;\n\n if (filter.type === 'switch')\n return styles.switchWidth;\n\n return '';\n}\n\nFilterButton.defaultProps = {\n hideCaret: true\n};\n\ninterface FilterButtonProps {\n filter: SearchFilter;\n hideCaret?: boolean;\n}\n\nexport function FilterButton(props: FilterButtonProps): JSX.Element {\n const { state } = React.useContext(FilterContext);\n const currentFilterState = state[props.filter.id];\n\n const isDropdownFilter = props.filter.type === 'dropdown';\n\n const [ label, setLabel ] = React.useState(props.filter.name);\n const [ showDropdown, setShowDropdown ] = React.useState(false);\n const [ draftState, setDraftState ] = React.useState<FilterState>(currentFilterState);\n\n React.useEffect(() => {\n setLabel(FilterHelper.getLabel(props.filter, currentFilterState));\n setDraftState(currentFilterState);\n }, [ props.filter, currentFilterState?.selection ]);\n\n function onSelectItem(state: FilterState): void {\n setDraftState(state);\n\n if (isDropdownFilter)\n applyFilter(state);\n }\n\n function onClickReset(): void {\n const defaultOption = props.filter.options?.find(o => o.default);\n\n setDraftState({\n active: false,\n selection: defaultOption ? [defaultOption] : []\n });\n }\n\n function onClickApply(): void {\n applyFilter();\n setShowDropdown(false);\n }\n\n function applyFilter(newState: FilterState = draftState): void {\n FilterHelper.applyFilter(\n [props.filter],\n currentFilterState,\n { [props.filter.id]: newState },\n state.appLink\n );\n }\n\n function onToggleDropdown(isShowing: boolean): void {\n setShowDropdown(isShowing);\n\n if (isShowing || isDropdownFilter)\n return;\n\n // Apply the filter if the dropdown has been closed\n applyFilter();\n }\n\n const FilterComponent = React.useMemo(() => {\n return props.filter.customComponent\n ? props.filter.customComponent\n : FilterHelper.mapTypeToComponent(props.filter.type);\n }, [props.filter.type]);\n\n const baseClass = `fw-semibold mx-1 btn d-flex align-items-center`;\n const caretClass = props.hideCaret && !isDropdownFilter ? styles.hideCaret : '';\n const customWidthClass = getCustomWidthClass(props.filter);\n\n if (props.filter.type === 'button')\n return (\n <FilterComponent\n filter={props.filter}\n draftState={draftState}\n setDraftState={onSelectItem}\n />\n );\n\n return (\n <Dropdown onToggle={onToggleDropdown} show={showDropdown}>\n <Dropdown.Toggle\n id={`filterButton-${props.filter.id}`}\n className={`${baseClass} ${caretClass}`}\n variant={(currentFilterState.active && !isDropdownFilter) ? 'dark' : 'outline-dark'}\n disabled={props.filter.disabled}\n >\n {!!props.filter.icon && (\n <div className={styles.svgContainer}>\n <SvgContainer svg={props.filter.icon} />\n </div>\n )}\n {props.filter.labelPrefix} {label}\n </Dropdown.Toggle>\n\n <Dropdown.Menu>\n <div className={`mx-1 ${styles.filterMenu} ${customWidthClass} ${!isDropdownFilter ? 'px-2 py-1' : ''}`}>\n <FilterComponent\n filter={props.filter}\n draftState={draftState}\n setDraftState={onSelectItem}\n />\n\n {(!isDropdownFilter && !props.filter.disabled) && (\n <FilterActions\n active={draftState.active}\n onClickReset={onClickReset}\n onClickApply={onClickApply}\n />\n )}\n </div>\n </Dropdown.Menu>\n </Dropdown>\n );\n}\n","import { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nexport const StateHelper = {\n /**\n * Helper function to get the setState function for an individual key in a state object.\n * \n * @param setState React setState action\n * @param key Property within the state object we're updating\n * @param callback Optional callback to modify data before setting state. Uses identity fn by default.\n * \n * @returns Newly updated state object\n */\n getSetStateByKey<T extends HashObject>(\n setState: React.Dispatch<React.SetStateAction<T>>,\n key: keyof T,\n callback?: (data: any, state?: T) => T[keyof T]\n ): (data: any) => void {\n return (data: any) => setState(state => {\n const fn = FunctionHelper.isFunction(callback) ? callback : FunctionHelper.useIdentity<T>();\n return { ...state, [key]: fn(data, state) };\n });\n }\n};","import * as React from 'react';\nimport { Dropdown } from 'react-bootstrap';\n\nimport { FilterActions } from 'libs/shared/apps/search/components/filter-actions/FilterActions';\nimport { FilterIds, MoreFilters } from 'libs/shared/apps/search/interfaces';\nimport { DraftState, FilterContext, FilterStateHash } from 'libs/shared/apps/search/reducers';\nimport { FilterHelper } from 'libs/shared/apps/search/utils/FilterHelper';\nimport { StateHelper } from 'libs/shared/utils/StateHelper';\n\nimport styles from './filter-button.module.scss';\n\nfunction getTotalActiveFilters(currentState: FilterStateHash): number {\n const total = Object.keys(currentState).reduce((acc: number, key: FilterIds) => {\n return currentState[key].active\n ? acc + 1\n : acc;\n }, 0);\n\n return total;\n}\n\ninterface MoreFiltersButtonProps {\n filter: MoreFilters;\n}\n\nexport function MoreFiltersButton(props: MoreFiltersButtonProps): JSX.Element {\n const { state } = React.useContext(FilterContext);\n const currentFilterState = state.moreFilters;\n\n const [ label, setLabel ] = React.useState(props.filter.name);\n const [ showDropdown, setShowDropdown ] = React.useState(false);\n const [ draftState, setDraftState ] = React.useState<DraftState>(currentFilterState);\n const [ totalActiveFilters, setTotalActiveFilters ] = React.useState(getTotalActiveFilters(currentFilterState));\n\n const currentFilterStateKey = Object.keys(currentFilterState).map((id: FilterIds) => {\n return `${id}:${currentFilterState[id].active}`;\n }).join('-');\n\n React.useEffect(() => {\n setDraftState(currentFilterState);\n setTotalActiveFilters(getTotalActiveFilters(currentFilterState));\n }, [ props.filter, currentFilterStateKey ]);\n\n React.useEffect(() => {\n setLabel(totalActiveFilters ? `${props.filter.name} - ${totalActiveFilters}` : props.filter.name);\n }, [totalActiveFilters]);\n\n function onClickReset(): void {\n const filterIds = Object.keys(currentFilterState) as FilterIds[];\n\n const newState = filterIds.reduce((acc: DraftState, filterId) => {\n const filter = props.filter.filters.find(f => f.id === filterId);\n const defaultOption = filter.options?.find(o => o.default);\n\n acc[filterId] = {\n active: false,\n selection: defaultOption ? [defaultOption] : []\n };\n\n return acc;\n }, {});\n\n setDraftState(newState);\n }\n\n function onClickApply(): void {\n applyFilter();\n setShowDropdown(false);\n }\n\n function onToggleDropdown(isShowing: boolean): void {\n setShowDropdown(isShowing);\n\n if (isShowing)\n return;\n\n // Apply the filter if the dropdown has been closed\n applyFilter();\n }\n\n function applyFilter(): void {\n FilterHelper.applyFilter(\n props.filter.filters,\n currentFilterState,\n draftState,\n state.appLink\n );\n }\n\n const baseClass = `fw-semibold ${styles.hideCaret} mx-1 btn`;\n\n return (\n <Dropdown onToggle={onToggleDropdown} show={showDropdown}>\n <Dropdown.Toggle id={props.filter.id} className={baseClass} variant={totalActiveFilters ? 'dark' : 'outline-dark'}>\n {label}\n </Dropdown.Toggle>\n\n <Dropdown.Menu onClick={(e: React.MouseEvent) => e.stopPropagation()}>\n <div className={`mx-1 ${styles.moreFiltersWidth} ${props.filter.type !== 'dropdown' ? 'px-2 py-1' : ''}`}>\n {props.filter.filters.map(filter => {\n const FilterComponent = filter.customComponent\n ? filter.customComponent\n : FilterHelper.mapTypeToComponent(filter.type);\n\n return (\n <fieldset key={filter.id}>\n <FilterComponent\n filter={filter}\n draftState={draftState[filter.id]}\n setDraftState={StateHelper.getSetStateByKey(setDraftState, filter.id)}\n isOnMoreFilters\n />\n </fieldset>\n );\n })}\n\n <FilterActions\n active={!!Object.keys(draftState).find((key: FilterIds) => draftState[key].active)}\n onClickReset={onClickReset}\n onClickApply={onClickApply}\n />\n </div>\n </Dropdown.Menu>\n </Dropdown>\n );\n}","import React from 'react';\n\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { FilterOption, SearchFilter } from 'libs/shared/apps/search/interfaces';\nimport { FilterContext, FilterState } from 'libs/shared/apps/search/reducers';\nimport { FilterHelper } from 'libs/shared/apps/search/utils/FilterHelper';\nimport { PartialTagItem } from 'libs/shared/components/tags/PartialTagItem';\nimport { DynamicWidget } from 'libs/shared/components/widgets/dynamic-widget/DynamicWidget';\nimport { TagWidgetItem, TagWidgetItemProps } from 'libs/shared/components/widgets/items/tag-widget-item/TagWidgetItem';\n\nimport styles from './tag-filter.module.scss';\n\ninterface TagFilterProps {\n filter: SearchFilter;\n queryParams: HashObject;\n isFetching?: boolean;\n}\n\nexport function TagFilter(props: TagFilterProps): JSX.Element {\n const { state } = React.useContext(FilterContext);\n\n if (!props.filter?.id)\n return <></>;\n\n const currentFilterState = state[props.filter.id];\n\n const { selection: selections } = currentFilterState;\n\n const unappliedOptions = props.filter?.options?.filter(opt => {\n return !selections?.find(selection => selection.id === opt.id);\n }) ?? [];\n\n function onClickOption(option: FilterOption): void {\n let nextFilterState: FilterState = null;\n\n let indexOfItem: number = -1;\n\n // Find the index of the selected item if it's already selected\n selections.find((selection, i) => {\n if (indexOfItem > -1)\n return;\n\n if (selection.id.toString() !== option.id.toString())\n return;\n\n indexOfItem = i;\n });\n\n if (indexOfItem >= 0) {\n const newItems = [ ...selections.slice(0, indexOfItem), ...selections.slice(indexOfItem + 1) ];\n \n nextFilterState = {\n active: !!newItems.length,\n selection: newItems\n };\n } else {\n nextFilterState = {\n active: true,\n selection: selections.concat(option)\n };\n }\n\n FilterHelper.applyFilter(\n [props.filter],\n currentFilterState,\n { [props.filter.id]: nextFilterState },\n state.appLink\n );\n }\n\n function getContainerClass(): string {\n let className = 'mb-3';\n\n if (collection.length && props.isFetching)\n className += ' mt-n1';\n else if (!collection.length && !props.isFetching)\n className += ' d-none';\n\n return className;\n }\n\n const collection = [ ...selections, ...(props.isFetching ? [] : unappliedOptions) ];\n\n return (\n <div className={(props.isFetching || collection.length) ? 'py-2' : ''}>\n <div className={getContainerClass()}>\n {(!!collection.length || props.isFetching) && (\n <DynamicWidget\n collection={collection}\n childComponent={(props: TagWidgetItemProps) => (\n <TagWidgetItem\n {...props}\n selectedItems={selections}\n onClick={onClickOption}\n />\n )}\n staticChildren={props.isFetching\n ? new Array(3).fill({\n component: () => <PartialTagItem tagClass={styles.tagItem} />,\n position: 'end'\n })\n : []\n }\n partialLoadingComponent={() => (\n <div className='me-2'>\n <PartialTagItem tagClass={`${styles.tagItem}`} />\n </div>\n )}\n />\n )}\n </div>\n </div>\n );\n}","import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { MoreFilters, SearchFilter } from 'libs/shared/apps/search/interfaces';\nimport { FilterContext } from 'libs/shared/apps/search/reducers';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { PropsWithAnalyticsOptions } from 'libs/shared/interfaces';\nimport { ContextService } from 'libs/shared/services/ContextService';\n\nimport { SEARCH_CURRICULUM_CODE_PARAM } from '../../utils/SharedSearchHelper';\n\ntype ResetButtonProps = PropsWithAnalyticsOptions<{\n currentQueryParam: string;\n mainFilters: Array<SearchFilter>;\n moreFilters: MoreFilters;\n alignLeft?: boolean;\n}>;\n\nexport function ResetButton(props: ResetButtonProps): JSX.Element {\n const { state } = React.useContext(FilterContext);\n\n const onClickReset = () => {\n const currentParams = (ContextService.getCurrentRoute().appLink?.params ?? {}) as HashObject;\n const savedParams = ObjectHelper.pick(currentParams, [ 'query', SEARCH_CURRICULUM_CODE_PARAM ]);\n\n Core.AppLinkHelper.trigger({\n ...state.appLink,\n params: savedParams\n });\n };\n\n return (\n <DivButton\n onClick={onClickReset}\n className={`${props.alignLeft ? 'order-first' : ''} hover-text-underline cursor-pointer d-flex align-items-center mx-2`}\n >\n <Text namespace='search.resetButton' phrase='reset' />\n </DivButton>\n );\n}","import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { FilterButton } from 'libs/shared/apps/search/components/filter-button/FilterButton';\nimport { MoreFiltersButton } from 'libs/shared/apps/search/components/filter-button/MoreFiltersButton';\nimport { TagFilter } from 'libs/shared/apps/search/components/filter-types/tag-filter/TagFilter';\nimport { ResetButton } from 'libs/shared/apps/search/components/reset-button/ResetButton';\nimport { MoreFilters, SearchFilter, SearchIndices } from 'libs/shared/apps/search/interfaces';\nimport { FilterContext, FilterReducer } from 'libs/shared/apps/search/reducers';\nimport { FilterHelper } from 'libs/shared/apps/search/utils/FilterHelper';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\n\nimport styles from './search-filters.module.scss';\n\ntype SearchFiltersProps = {\n queryParams: HashObject;\n mainFilters: SearchFilter[];\n appLink: Core.AppLink;\n moreFilters?: MoreFilters;\n isFetchingOptions?: boolean;\n constantIndices?: SearchIndices[];\n analyticsOptions?: AnalyticsOptions;\n\n hideHeading?: boolean;\n hideDivider?: boolean;\n hideResetButton?: boolean;\n alignResetButtonLeft?: boolean;\n hideCaret?: boolean;\n\n /**\n * Incremental changes flag for new search\n */\n _hasNewSearch?: boolean;\n};\n\nexport function SearchFilters(props: SearchFiltersProps): JSX.Element {\n const { queryParams, appLink, hideHeading, isFetchingOptions, constantIndices = []} = props;\n\n const newState = React.useMemo(() => {\n return FilterHelper.deriveInitialStateFromQuery(queryParams, props.mainFilters, props.moreFilters, appLink);\n }, [ queryParams, isFetchingOptions ]);\n\n const [ state, dispatch ] = React.useReducer(FilterReducer, newState);\n\n React.useEffect(() => {\n if (ObjectHelper.isEqual(newState, state))\n return;\n\n dispatch({\n type: 'update',\n payload: newState\n });\n\n if (props.analyticsOptions) {\n FilterHelper.logFilterEvent(\n props.mainFilters,\n props.moreFilters,\n newState,\n queryParams.query,\n props.analyticsOptions\n );\n }\n }, [newState]);\n\n const indices = ArrayHelper.uniq([\n ...FilterHelper.getAppliedIndices(queryParams, props._hasNewSearch),\n ...constantIndices\n ]);\n\n const { mainFilters, moreFilters } = FilterHelper.mixinDisabledFields(\n state,\n indices,\n props.mainFilters,\n props.moreFilters\n );\n\n // Separate the tag filter as it's rendered differently\n const mainFiltersWithoutTags = mainFilters.filter(f => f.type !== 'tag');\n const tagFilter = mainFilters.find(f => f.type === 'tag');\n\n return (\n <FilterContext.Provider value={{ state, dispatch }}>\n <LanguageNamespaceContext.Provider value='search.searchFilters'>\n <section>\n <div className={classNames(\n 'd-flex',\n !props.hideDivider && 'border-bottom pb-3 mb-3',\n (props._hasNewSearch && props.hideDivider && 'pb-3'),\n (props._hasNewSearch && !props.hideDivider && 'border-gray-300')\n )}>\n {!hideHeading && (\n <h2 className='h5 mb-0 d-inline-block pe-2 border-end d-flex align-items-center'>\n <Text phrase='heading' />\n </h2>\n )}\n\n <div className={classNames(`d-flex flex-wrap ${styles.filtersContainer}`, !hideHeading && 'ms-2')}>\n {mainFiltersWithoutTags.map(f => (\n <FilterButton key={f.id} filter={f} hideCaret={props.hideCaret} />\n ))}\n\n {moreFilters && <MoreFiltersButton filter={moreFilters} />}\n\n {FilterHelper.hasActiveFilters(queryParams) && !props.hideResetButton && (\n <ResetButton\n mainFilters={props.mainFilters}\n moreFilters={props.moreFilters}\n currentQueryParam={queryParams.query}\n analyticsOptions={props.analyticsOptions}\n alignLeft={props.alignResetButtonLeft}\n />\n )}\n </div>\n </div>\n \n <TagFilter\n filter={tagFilter}\n queryParams={queryParams}\n isFetching={props.isFetchingOptions}\n />\n </section>\n </LanguageNamespaceContext.Provider>\n </FilterContext.Provider>\n );\n}\n"],"names":["namespace","FilterActions","props","jsx","DivButton","Text","getCustomWidthClass","filter","FilterHelper","styles","FilterButton","state","React.useContext","FilterContext","currentFilterState","isDropdownFilter","label","setLabel","React.useState","showDropdown","setShowDropdown","draftState","setDraftState","React.useEffect","onSelectItem","applyFilter","onClickReset","defaultOption","_a","o","onClickApply","newState","onToggleDropdown","isShowing","FilterComponent","React.useMemo","baseClass","caretClass","customWidthClass","jsxs","Dropdown","SvgContainer","StateHelper","setState","key","callback","data","fn","FunctionHelper","getTotalActiveFilters","currentState","acc","MoreFiltersButton","totalActiveFilters","setTotalActiveFilters","currentFilterStateKey","id","filterId","f","e","TagFilter","React","Fragment","selections","unappliedOptions","_c","_b","opt","selection","onClickOption","option","nextFilterState","indexOfItem","i","newItems","getContainerClass","className","collection","DynamicWidget","TagWidgetItem","PartialTagItem","ResetButton","currentParams","ContextService","savedParams","ObjectHelper","SEARCH_CURRICULUM_CODE_PARAM","Core.AppLinkHelper","SearchFilters","queryParams","appLink","hideHeading","isFetchingOptions","constantIndices","dispatch","React.useReducer","FilterReducer","indices","ArrayHelper","mainFilters","moreFilters","mainFiltersWithoutTags","tagFilter","LanguageNamespaceContext","classNames"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{j as a}from"./app-C56EnOMP.js";function m(l){return a.jsx("svg",{...l,children:a.jsx("path",{d:"M5 6v12h14V6zm0-1h14a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1m2.4 10.3a.5.5 0 0 1-.8-.6l3-4a.5.5 0 0 1 .754-.054l.579.58 1.765-2.513a.5.5 0 0 1 .83.015l3.891 6a.5.5 0 0 1-.838.544l-3.49-5.379-1.682 2.394a.5.5 0 0 1-.763.067l-.592-.593zm.6-4.8a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3m0-1a.5.5 0 1 0 0-1 .5.5 0 0 0 0 1",fill:"currentColor"})})}export{m as F};
|
|
2
|
+
//# sourceMappingURL=Daes5Wgy.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Daes5Wgy.chunk.js","sources":["../../../../libs/shared/src/images/svg/objects/FileImgSvg.tsx"],"sourcesContent":["import React from 'react';\n\nexport function FileImgSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M5 6v12h14V6zm0-1h14a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1m2.4 10.3a.5.5 0 0 1-.8-.6l3-4a.5.5 0 0 1 .754-.054l.579.58 1.765-2.513a.5.5 0 0 1 .83.015l3.891 6a.5.5 0 0 1-.838.544l-3.49-5.379-1.682 2.394a.5.5 0 0 1-.763.067l-.592-.593zm.6-4.8a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3m0-1a.5.5 0 1 0 0-1 .5.5 0 0 0 0 1'\n fill='currentColor'\n />\n </svg>\n );\n}\n"],"names":["FileImgSvg","props","jsx"],"mappings":"sCAEO,SAASA,EAAWC,EAAsC,CAC/D,OACEC,EAAAA,IAAC,MAAA,CAAK,GAAGD,EACP,SAAAC,EAAAA,IAAC,OAAA,CACC,EAAE,iVACF,KAAK,cAAA,CAAA,EAET,CAEJ"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{ah as a,j as t,f as c,l as o,m as f}from"./app-C56EnOMP.js";import{u as l}from"./CU6iZ8MR.chunk.js";import{C as h}from"./CLumRL-T.chunk.js";const u="_container_1kfhe_1",x="_spinner_1kfhe_4",r={container:u,spinner:x};m.defaultProps={fetchOnScroll:!1};function m(e){const[s,i]=l();return a.useEffect(()=>{var n;e.fetchOnScroll&&(!i||e.isFetching||(n=e.fetchNext)==null||n.call(e,e.nextCursor))},[i,e.isFetching]),t.jsx("div",{className:`p-3 text-center ${r.container}`,children:e.isFetching?t.jsx(c,{as:"span",animation:"border",role:"status",className:r.spinner}):t.jsx("div",{ref:s,children:t.jsx(o,{svg:h,className:"svg-container cursor-pointer",size:f.Large,onClick:()=>{var n;return(n=e.fetchNext)==null?void 0:n.call(e,e.nextCursor)}})})})}export{m as I};
|
|
2
|
+
//# sourceMappingURL=DeUbJqVo.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeUbJqVo.chunk.js","sources":["../../../../libs/shared/src/components/infinite-scroll-footer/InfiniteScrollFooter.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Spinner } from 'react-bootstrap';\nimport { useInView } from 'react-intersection-observer';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { ChevronDownSvg } from 'libs/shared/images/svg/arrows/ChevronDownSvg';\n\nimport styles from './infinite-scroll-footer.module.scss';\n\ninterface InfiniteScrollFooterProps {\n isFetching: boolean;\n fetchNext?: (nextCursor: string) => void;\n nextCursor?: string;\n fetchOnScroll?: boolean;\n}\n\nInfiniteScrollFooter.defaultProps = {\n fetchOnScroll: false\n};\n\nexport function InfiniteScrollFooter(props: InfiniteScrollFooterProps): React.ReactElement {\n const [ ref, inView ] = useInView();\n\n React.useEffect(() => {\n if (!props.fetchOnScroll)\n return;\n\n if (!inView || props.isFetching)\n return;\n\n props.fetchNext?.(props.nextCursor);\n }, [ inView, props.isFetching ]);\n\n return (\n <div className={`p-3 text-center ${styles.container}`}>\n {props.isFetching\n ? <Spinner as='span' animation='border' role='status' className={styles.spinner} />\n : (\n <div ref={ref}>\n <SvgContainer\n svg={ChevronDownSvg}\n className='svg-container cursor-pointer'\n size={SvgContainerSize.Large}\n onClick={() => props.fetchNext?.(props.nextCursor)}\n />\n </div>\n )\n }\n </div>\n );\n}"],"names":["InfiniteScrollFooter","props","ref","inView","useInView","React.useEffect","_a","jsx","styles","Spinner","SvgContainer","ChevronDownSvg","SvgContainerSize"],"mappings":"+NAgBAA,EAAqB,aAAe,CAClC,cAAe,EACjB,EAEO,SAASA,EAAqBC,EAAsD,CACzF,KAAM,CAAEC,EAAKC,CAAO,EAAIC,EAAA,EAExBC,OAAAA,EAAAA,UAAgB,IAAM,OACfJ,EAAM,gBAGP,CAACE,GAAUF,EAAM,aAGrBK,EAAAL,EAAM,YAAN,MAAAK,EAAA,KAAAL,EAAkBA,EAAM,YAC1B,EAAG,CAAEE,EAAQF,EAAM,UAAW,CAAC,EAG7BM,EAAAA,IAAC,OAAI,UAAW,mBAAmBC,EAAO,SAAS,GAChD,SAAAP,EAAM,WACHM,EAAAA,IAACE,EAAA,CAAQ,GAAG,OAAO,UAAU,SAAS,KAAK,SAAS,UAAWD,EAAO,OAAA,CAAS,EAE/ED,EAAAA,IAAC,MAAA,CAAI,IAAAL,EACH,SAAAK,EAAAA,IAACG,EAAA,CACC,IAAKC,EACL,UAAU,+BACV,KAAMC,EAAiB,MACvB,QAAS,IAAA,OAAM,OAAAN,EAAAL,EAAM,YAAN,YAAAK,EAAA,KAAAL,EAAkBA,EAAM,YAAU,CAAA,EAErD,CAAA,CAGN,CAEJ"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import{an as m,j as a,Y as E,ad as D,l as O,u as F,R as $,i as g,k as y,df as M,n as R,d as A,M as C,b6 as T,bx as G,G as H,c as f,da as q,h as j,ae as _,o as v,W as P,X as L,V as z,dq as U,e as W,$ as X,aD as Y}from"./app-C56EnOMP.js";import{I as J}from"./DeUbJqVo.chunk.js";import{a as K,T as N}from"./DXxBqeLg.chunk.js";import{M as h}from"./sc9-PV9Y.chunk.js";import{R as Q,a as B}from"./BexFb8rj.chunk.js";import{R as w}from"./cvX-F_mx.chunk.js";import{D as Z}from"./DBIkG3Bu.chunk.js";import{V as p}from"./DGFORsAE.chunk.js";import"./CU6iZ8MR.chunk.js";import"./CLumRL-T.chunk.js";import"./CEmtkty-.chunk.js";import"./DkFkYS-j.chunk.js";import"./B5OOLcT3.chunk.js";import"./pkzD5BEm.chunk.js";const ee="_imageStyle_12n2u_1",ae="_item_12n2u_6",te="_dashboard_12n2u_10",ie="_playPage_12n2u_24",ne="_aspectRatio_12n2u_32",oe="_outerContainer_12n2u_37",ce="_innerContainer_12n2u_45",re="_actions_12n2u_45",se="_titleBelow_12n2u_55",le="_heading_12n2u_58",de="_thumbnailContainer_12n2u_61",ue="_titleAbove_12n2u_64",me="_teacherPack_12n2u_67",he="_text_12n2u_70",ge="_hoverState_12n2u_73",xe="_atomGuide_12n2u_76",ye="_studentActivity_12n2u_85",Ce="_additionalMaterials_12n2u_94",fe="_userUploaded_12n2u_103",_e="_download_12n2u_118",i={imageStyle:ee,item:ae,dashboard:te,playPage:ie,aspectRatio:ne,outerContainer:oe,innerContainer:ce,actions:re,titleBelow:se,heading:le,thumbnailContainer:de,titleAbove:ue,teacherPack:me,text:he,hoverState:ge,atomGuide:xe,studentActivity:ye,additionalMaterials:Ce,userUploaded:fe,download:_e};function ve(e){switch(e){case"atom-guide":return i.atomGuide;case"student-activity":return i.studentActivity;case"teacher-pack":return i.teacherPack;case"additional-materials":return i.additionalMaterials;default:return i.userUploaded}}function S(e,t){var o;const n=F();return t==="public"?!0:n.xs||n.sm||e.type!=="resource"||!("metadata"in e)?!1:e.metadata.type===w.Image?!0:e.metadata.type===w.Pdf?!!e.url:!!((o=e.pdf)!=null&&o.url)}u.defaultProps={preloadImage:!0,actionBehaviour:"normal"};function u(e){var l,r,c;let t=null;"metadata"in e.data&&(t=e.data.metadata);const n=h.isType(e.data,m.Resource);function o(d){var b;let x=`
|
|
2
|
+
d-flex flex-column align-items-center justify-content-end rounded-3 h-100
|
|
3
|
+
position-relative ${ve(d)} ${i.innerContainer}`;return(b=e.theme)!=null&&b.containerClass?x+=` ${e.theme.containerClass}`:x+=" pt-3 px-3",e.applyHoverState&&(x+=` ${i.hoverState}`),x}function s(){h.isResource(e.data)&&typeof e.onClickDownload=="function"&&e.onClickDownload(e.data)}return a.jsxs(a.Fragment,{children:[a.jsx("div",{className:i.aspectRatio,children:a.jsx("div",{className:i.outerContainer,children:a.jsxs("div",{className:o(t==null?void 0:t.resourceType),children:[e.titlePosition==="above"&&a.jsx(E,{title:e.data.name,children:a.jsx("h3",{className:`text-center text-break h5 mb-3 ${i.text}`,children:a.jsx("span",{className:"clamp-1",children:e.data.name})})}),a.jsx("div",{className:`
|
|
4
|
+
${((l=e.theme)==null?void 0:l.thumbnailContainerClass)??""} w-75 overflow-hidden
|
|
5
|
+
${i.thumbnailContainer} ${e.titlePosition==="above"?i.titleAbove:""}
|
|
6
|
+
${i.imageStyle}
|
|
7
|
+
`,children:a.jsx(Q,{resource:e.data,imageCdnUrl:e.imageCdnUrl,imageErrorFallbackUrl:e.imageErrorFallbackUrl,preloadImage:e.preloadImage,dynamicRatioImageOptions:e.dynamicRatioImageOptions})}),n&&e.onClickDownload&&e.actionBehaviour==="normal"&&a.jsx("div",{className:i.actions,children:a.jsx(D,{onClick:d=>{d.preventDefault(),d.stopPropagation(),s()},className:`${i.download} d-flex align-items-center justify-content-center`,children:a.jsx(O,{svg:Z})})}),!e.hideTypeBadge&&n&&a.jsx(K,{typeId:m.Resource})]})})}),e.titlePosition==="below"&&a.jsxs("div",{className:`mt-2 ${i.titleBelow}`,children:[h.isType(e.data,m.Resource)&&!!((c=(r=e.data)==null?void 0:r.metadata)!=null&&c.resourceType)&&a.jsx(N,{children:B.getResourceTypeName(e.data.metadata.resourceType)}),a.jsx("h3",{className:`h6 clamp-2 ${i.heading}`,children:e.data.name})]})]})}$.memo(function(e){const t=S(e.data,e.actionBehaviour);function n(){return e.location==="play-page"?i.playPage:i.dashboard}const o={...e.analyticsData,id:e.data.id,name:e.data.name},s={...e.analyticsOptions,actionType:y.Click,entity:e.data.typeId===m.Resource?g.Resource:g.Link};function l(){C.logUserAction(o,s)}const r={...e,applyHoverState:t||!!e.data.url};return a.jsx("div",{className:`px-1 flex-shrink-0 ${i.item} ${n()} ${M.RESOURCE_ITEM_SELECTOR}`,children:(()=>{const c="d-block no-decoration";return e.data.type==="link"?a.jsx("a",{href:e.data.url,target:"_blank",className:c,onClick:l,children:a.jsx(u,{...r})}):t?e.actionBehaviour==="public"?a.jsx("div",{className:`${c} cursor-pointer d-inline`,onClick:()=>{l(),R.trigger(e.getAppLink(e.data))},children:a.jsx(u,{...r})}):a.jsx(A,{appLink:e.getAppLink(e.data),className:c,analyticsData:o,analyticsOptions:s,children:a.jsx(u,{...r})}):e.data.url?a.jsx("a",{href:e.data.url,className:c,onClick:l,children:a.jsx(u,{...r})}):a.jsx("div",{className:c,children:a.jsx(u,{...r})})})()})});function V(e){const t=S(e.resource,e.actionBehaviour);function n(){C.logUserAction(e.analyticsData,e.analyticsOptions)}return h.isType(e.resource,m.Link)?a.jsx("a",{href:e.resource.url,target:"_blank",onClick:n,children:e.children}):t?e.actionBehaviour==="public"?a.jsx("div",{className:"cursor-pointer d-inline",onClick:()=>{n(),R.trigger(e.appLink)},children:e.children}):a.jsx(A,{appLink:e.appLink,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,children:e.children}):a.jsx("div",{children:e.children})}function ke(e){var o,s;const t={id:e.resource.id,name:e.resource.name,parentVideoId:e.parentVideo.id,parentVideoName:e.parentVideo.name,parentVideoType:e.parentVideo.type},n={...e.analyticsOptions,actionType:y.Click,entity:h.isResource(e.resource)?g.Resource:g.Link};return a.jsxs("div",{className:"row gx-0",children:[a.jsx("div",{className:"col-4",children:a.jsx(V,{resource:e.resource,appLink:e.appLink,analyticsData:t,analyticsOptions:{...n,descriptor:T.Thumbnail},actionBehaviour:e.actionBehaviour,children:a.jsx(u,{data:e.resource,titlePosition:"none",imageCdnUrl:e.imageCdnUrl,imageErrorFallbackUrl:e.imageErrorFallbackUrl,preloadImage:e.preloadImage,dynamicRatioImageOptions:{width:400,resizeType:G.Cover},theme:{thumbnailContainerClass:"w-100",containerClass:"px-3"}})})}),a.jsx("div",{className:"col-8 ps-2",children:a.jsxs(V,{resource:e.resource,appLink:e.appLink,analyticsData:t,analyticsOptions:{...n,descriptor:T.Title},actionBehaviour:e.actionBehaviour,children:[h.isType(e.resource,m.Resource)&&!!((s=(o=e.resource)==null?void 0:o.metadata)!=null&&s.resourceType)&&a.jsx(N,{children:B.getResourceTypeName(e.resource.metadata.resourceType)}),a.jsx("h3",{className:"h6 clamp-2",children:e.resource.name})]})})]})}const k="shared.videoGuidanceResourcesPopup",I=350;function je(e){var o,s,l,r;const t=[...((s=(o=e.video)==null?void 0:o.resources)==null?void 0:s.data)||[],...((r=(l=e.video)==null?void 0:l.links)==null?void 0:r.data)||[]],n=e.isLoading?[]:e.resources||t;return a.jsx(H,{closePopup:e.onClickClose,showLoadingSpinner:e.isLoading,title:e.isLoading?"":f.getPhrase(k,"resources"),size:"lg",children:!e.isLoading&&a.jsxs(a.Fragment,{children:[a.jsxs(q,{autoHeightMax:I,autoHeightMin:I,autoHeight:!0,children:[a.jsx("ul",{className:"list-unstyled",children:n.map(c=>{var d;return a.jsx("li",{className:"mb-3",children:a.jsx(ke,{resource:c,parentVideo:e.video,imageCdnUrl:e.imageCdnUrl,imageErrorFallbackUrl:e.resourceImageErrorFallbackUrl,preloadImage:!0,appLink:(d=e.getResourceAppLink)==null?void 0:d.call(e,c.id),actionBehaviour:e.actionBehaviour,analyticsOptions:{location:j.ResourcesGuidancePopup}})},c.id)})}),(e.hasMore||e.isFetching)&&a.jsx(J,{isFetching:e.isFetching,fetchNext:e.fetchNext,nextCursor:e.nextCursor})]}),a.jsxs(_,{children:[a.jsx(_.Cancel,{onClick:e.onClickClose,text:f.getPhrase(k,"close")}),a.jsx(_.Submit,{text:f.getPhrase(k,"viewVideo"),variant:"dark",onClick:e.onClickViewVideo})]})]})})}function De(e){var r,c;const t=v(p.video(e.id)),n=v(X.config()),o=v(Y.currentUser());function s(){C.logUserAction({id:t.data.id,name:t.data.name},{entity:g.Video,actionType:y.Click,location:j.CurriculumGuidancePopup,descriptor:U.Close}),e.closePopup()}function l(){C.logUserAction({id:t.data.id,name:t.data.name},{entity:g.Video,location:j.CurriculumGuidancePopup,actionType:y.Click,descriptor:U.ViewVideo}),R.trigger({application:L.VIDEOS,action:P.Videos.PLAY_VIDEO,args:[t.data.id,W.slugify(t.data.name)]}),e.closePopup()}return a.jsx(je,{isLoading:!t.hasCompleted||!n.hasCompleted,video:t.data,imageCdnUrl:(r=n.data)==null?void 0:r.imageCdnUrl,resourceImageErrorFallbackUrl:z.Fallbacks.RESOURCE_THUMBNAIL,getResourceAppLink:d=>({application:L.VIDEOS,action:P.Videos.PREVIEW_PDF,args:[d],params:{videoId:t.data.id,showBackButton:!0}}),actionBehaviour:(c=o.data)!=null&&c.isAuthenticated?"normal":"public",onClickClose:s,onClickViewVideo:l,hasMore:!1,isFetching:!1,fetchNext:()=>{},nextCursor:null})}export{De as VideoGuidanceResourcesView};
|
|
8
|
+
//# sourceMappingURL=DgEqkZy0.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DgEqkZy0.chunk.js","sources":["../../../../libs/shared/src/components/play-page/resources-widget/ResourceWidgetItemV2.tsx","../../../../libs/shared/src/components/resource-list-item/ResourceListItem.tsx","../../../../libs/shared/src/components/video-guidance/resources/popup/VideoGuidanceResourcesPopup.tsx","../../src/apps/videos/views/video-guidance-resources/VideoGuidanceResourcesView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { AppLinkHelper } from 'libs/common/backbone/core';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions, EntityType, UserAction } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { ResourceThumbnail } from 'libs/shared/components/resource-thumbnail/ResourceThumbnail';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { TitleSubText } from 'libs/shared/components/title-sub-text/TitleSubText';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { TypeBadge } from 'libs/shared/components/type-badge/TypeBadge';\nimport { FixedWidgetItemProps } from 'libs/shared/components/widgets/items/FixedWidgetItemProps';\nimport { SeoConstants } from 'libs/shared/constants/SeoConstants';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ResourceFileType } from 'libs/shared/enums/ResourceFileType';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { DownloadSvg } from 'libs/shared/images/svg/actions/DownloadSvg';\nimport { Link, Resource, ResourceType } from 'libs/shared/interfaces';\nimport { ImageOptions } from 'libs/shared/utils/ImageHelper';\nimport { MasterTypeHelper } from 'libs/shared/utils/MasterTypeHelper';\nimport { ResourceHelper } from 'libs/shared/utils/ResourceHelper';\n\nimport styles from './resource-widget-item.module.scss';\n\nfunction getColour(resourceType?: ResourceType): string {\n switch (resourceType) {\n case 'atom-guide':\n return styles.atomGuide;\n case 'student-activity':\n return styles.studentActivity;\n case 'teacher-pack':\n return styles.teacherPack;\n case 'additional-materials':\n return styles.additionalMaterials;\n default:\n return styles.userUploaded;\n }\n}\n\nexport function useCanPreviewResource(data: Resource | Link, actionBehaviour: 'normal' | 'public'): boolean {\n const breakpoints = useBreakpoints();\n\n /**\n * When viewing publicly, the resource applink will\n * prompt the user to sign-up (not preview the underlying resource)\n */\n if (actionBehaviour === 'public')\n return true;\n\n if (breakpoints.xs || breakpoints.sm)\n return false;\n\n if (data.type !== 'resource')\n return false;\n \n // Require metadata\n if (!('metadata' in data))\n return false;\n\n // We can preview images\n if (data.metadata.type === ResourceFileType.Image)\n return true;\n\n // If we are a pdf and have a url\n if (data.metadata.type === ResourceFileType.Pdf)\n return !!data.url;\n\n // If we have a pdf assoc\n return !!data.pdf?.url;\n}\n\ninterface ResourceTheme {\n containerClass?: string;\n thumbnailContainerClass?: string;\n}\n\nexport interface ResourceTileProps {\n data: Resource | Link;\n imageCdnUrl: string;\n imageErrorFallbackUrl?: string;\n theme?: ResourceTheme;\n\n titlePosition: 'above' | 'below' | 'none';\n hideTypeBadge?: boolean;\n onClickDownload?: (resource: Resource) => void;\n applyHoverState?: boolean;\n preloadImage: boolean;\n actionBehaviour?: 'normal' | 'public';\n dynamicRatioImageOptions?: ImageOptions;\n}\n\nResourceTileV2.defaultProps = {\n preloadImage: true,\n actionBehaviour: 'normal'\n};\n\n/**\n * This component intentionally doesn't contain an appLink/download link\n * so that the resource download behaviour can be handled differently depending\n * on where this is rendered (e.g. primary play page vs embedded player)\n */\nexport function ResourceTileV2(props: ResourceTileProps): JSX.Element {\n let metadata = null;\n\n if ('metadata' in props.data) {\n metadata = props.data.metadata;\n }\n\n const isResource = MasterTypeHelper.isType<Resource>(props.data, MasterType.Resource);\n\n function getInnerContainerClass(resourceType: ResourceType): string {\n let baseClass = `\n d-flex flex-column align-items-center justify-content-end rounded-3 h-100\n position-relative ${getColour(resourceType)} ${styles.innerContainer}`;\n\n if (props.theme?.containerClass) {\n baseClass += ` ${props.theme.containerClass}`;\n } else {\n baseClass += ` pt-3 px-3`;\n }\n\n if (props.applyHoverState) {\n baseClass += ` ${styles.hoverState}`;\n }\n\n return baseClass;\n }\n\n function onDownload() {\n if (!MasterTypeHelper.isResource(props.data))\n return;\n\n if (typeof props.onClickDownload === 'function') {\n props.onClickDownload(props.data);\n }\n }\n\n return (\n <>\n <div className={styles.aspectRatio}>\n <div className={styles.outerContainer}>\n <div className={getInnerContainerClass(metadata?.resourceType)}>\n {props.titlePosition === 'above' && (\n <Tooltip title={props.data.name}>\n <h3 className={`text-center text-break h5 mb-3 ${styles.text}`}>\n <span className='clamp-1'>{props.data.name}</span>\n </h3>\n </Tooltip>\n )}\n\n <div className={`\n ${props.theme?.thumbnailContainerClass ?? ''} w-75 overflow-hidden \n ${styles.thumbnailContainer} ${props.titlePosition === 'above' ? styles.titleAbove : ''} \n ${styles.imageStyle}\n `}>\n <ResourceThumbnail\n resource={props.data}\n imageCdnUrl={props.imageCdnUrl}\n imageErrorFallbackUrl={props.imageErrorFallbackUrl}\n preloadImage={props.preloadImage}\n dynamicRatioImageOptions={props.dynamicRatioImageOptions}\n />\n </div>\n\n {isResource && props.onClickDownload && props.actionBehaviour === 'normal' && (\n <div className={styles.actions}>\n <DivButton\n onClick={e => {\n e.preventDefault();\n e.stopPropagation();\n onDownload();\n }}\n className={`${styles.download} d-flex align-items-center justify-content-center`}\n >\n <SvgContainer svg={DownloadSvg} />\n </DivButton>\n </div>\n )}\n\n {!props.hideTypeBadge && isResource && (\n <TypeBadge typeId={MasterType.Resource} />\n )}\n </div>\n </div>\n </div>\n {props.titlePosition === 'below' && (\n <div className={`mt-2 ${styles.titleBelow}`}>\n {(\n MasterTypeHelper.isType<Resource>(props.data, MasterType.Resource) &&\n !!props.data?.metadata?.resourceType\n ) && (\n <TitleSubText>\n {ResourceHelper.getResourceTypeName(props.data.metadata.resourceType)}\n </TitleSubText>\n )}\n\n <h3 className={`h6 clamp-2 ${styles.heading}`}>\n {props.data.name}\n </h3>\n </div>\n )}\n </>\n );\n}\n\nexport interface ResourceWidgetItemV2Props extends ResourceTileProps, FixedWidgetItemProps<Resource | Link> {\n location: 'play-page' | 'dashboard';\n}\n\nexport const ResourceWidgetItemV2 = React.memo(function(props: ResourceWidgetItemV2Props): JSX.Element {\n // Mobile is not allowed to preview\n const canPreview = useCanPreviewResource(props.data, props.actionBehaviour);\n\n function getLocationClass(): string {\n if (props.location === 'play-page')\n return styles.playPage;\n\n return styles.dashboard;\n }\n\n const analyticsData = { ...props.analyticsData, id: props.data.id, name: props.data.name };\n\n const analyticsOptions: AnalyticsOptions = {\n ...props.analyticsOptions,\n actionType: UserAction.Click,\n entity: props.data.typeId === MasterType.Resource ? EntityType.Resource : EntityType.Link\n };\n\n function logAction(): void {\n AnalyticsHelper.logUserAction(analyticsData, analyticsOptions);\n }\n\n const tileProps: ResourceTileProps = {\n ...props,\n // Apply the hover state if we have a url or the resource can be previewed\n applyHoverState: canPreview || !!props.data.url\n };\n\n return (\n <div className={`px-1 flex-shrink-0 ${styles.item} ${getLocationClass()} ${SeoConstants.RESOURCE_ITEM_SELECTOR}`}>\n {(() => {\n const className = `d-block no-decoration`;\n\n // Handle resource links\n if (props.data.type === 'link') {\n return (\n <a href={props.data.url} target='_blank' className={className} onClick={logAction}>\n <ResourceTileV2 {...tileProps} />\n </a>\n );\n }\n\n if (canPreview) {\n /**\n * Previewing resources in a public context will always display the sign-up popup, so there \n * will never be a full URL. For SEO purposes, we deliberately use a span over an anchor\n * to ensure we're not creating self-referencing elements that will burn crawl budget.\n */\n if (props.actionBehaviour === 'public') {\n return (\n <div className={`${className} cursor-pointer d-inline`} onClick={() => {\n logAction();\n AppLinkHelper.trigger(props.getAppLink(props.data));\n }}>\n <ResourceTileV2 {...tileProps} />\n </div>\n );\n }\n\n return (\n <AppLink\n appLink={props.getAppLink(props.data)}\n className={className}\n analyticsData={analyticsData}\n analyticsOptions={analyticsOptions}\n >\n <ResourceTileV2 {...tileProps} />\n </AppLink>\n );\n }\n\n // URLs cannot be previewed\n if (props.data.url) {\n return (\n <a href={props.data.url} className={className} onClick={logAction}>\n <ResourceTileV2 {...tileProps} />\n </a>\n );\n }\n\n // Theres no url, so don't render an <a>\n return (\n <div className={className}>\n <ResourceTileV2 {...tileProps} />\n </div>\n );\n })()}\n </div>\n );\n});","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions, ClickDescriptor, EntityType, UserAction } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { TitleSubText } from 'libs/shared/components/title-sub-text/TitleSubText';\nimport { ResizeType } from 'libs/shared/enums/Images';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { Clip, Link, Resource, Video } from 'libs/shared/interfaces';\nimport { MasterTypeHelper } from 'libs/shared/utils/MasterTypeHelper';\nimport { ResourceHelper } from 'libs/shared/utils/ResourceHelper';\n\nimport { ResourceTileV2, useCanPreviewResource } from '../play-page/resources-widget/ResourceWidgetItemV2';\n\ninterface ResourceWrapperProps{\n resource: Resource | Link;\n appLink: Core.AppLink;\n analyticsData: HashObject;\n analyticsOptions: AnalyticsOptions;\n actionBehaviour: 'normal' | 'public';\n}\n\nfunction ResourceWrapper(props: React.PropsWithChildren<ResourceWrapperProps>): JSX.Element {\n // Mobile is not allowed to preview\n const canPreview = useCanPreviewResource(props.resource, props.actionBehaviour);\n\n function logAction(): void {\n AnalyticsHelper.logUserAction(props.analyticsData, props.analyticsOptions);\n }\n\n // Handle resource links\n if (MasterTypeHelper.isType<Link>(props.resource, MasterType.Link)) {\n return (\n <a href={props.resource.url} target='_blank' onClick={logAction}>\n {props.children}\n </a>\n );\n }\n\n if (canPreview) {\n /**\n * Previewing resources in a public context will always display the sign-up popup, so there \n * will never be a full URL. For SEO purposes, we deliberately use a div over an anchor\n * to ensure we're not creating self-referencing elements that will burn crawl budget.\n */\n if (props.actionBehaviour === 'public') {\n return (\n <div\n className={`cursor-pointer d-inline`}\n onClick={() => {\n logAction();\n Core.AppLinkHelper.trigger(props.appLink);\n }}\n >\n {props.children}\n </div>\n );\n }\n\n return (\n <AppLink\n appLink={props.appLink}\n analyticsData={props.analyticsData}\n analyticsOptions={props.analyticsOptions}\n >\n {props.children}\n </AppLink>\n );\n }\n\n return (\n <div>\n {props.children}\n </div>\n );\n}\n\ninterface ResourceListItemProps {\n resource: Resource | Link;\n parentVideo: Clip | Video;\n imageCdnUrl: string;\n imageErrorFallbackUrl: string;\n preloadImage: boolean;\n appLink: Core.AppLink;\n actionBehaviour: 'normal' | 'public';\n analyticsOptions: AnalyticsOptions;\n}\n\nexport function ResourceListItem(props: ResourceListItemProps): JSX.Element {\n const analyticsData = {\n id: props.resource.id,\n name: props.resource.name,\n parentVideoId: props.parentVideo.id,\n parentVideoName: props.parentVideo.name,\n parentVideoType: props.parentVideo.type\n };\n \n const analyticsOptions: AnalyticsOptions = {\n ...props.analyticsOptions,\n actionType: UserAction.Click,\n entity: MasterTypeHelper.isResource(props.resource) ? EntityType.Resource : EntityType.Link\n };\n\n return (\n <div className='row gx-0'>\n <div className='col-4'>\n <ResourceWrapper\n resource={props.resource}\n appLink={props.appLink}\n analyticsData={analyticsData}\n analyticsOptions={{\n ...analyticsOptions,\n descriptor: ClickDescriptor.Thumbnail\n }}\n actionBehaviour={props.actionBehaviour}\n >\n <ResourceTileV2\n data={props.resource}\n titlePosition='none'\n imageCdnUrl={props.imageCdnUrl}\n imageErrorFallbackUrl={props.imageErrorFallbackUrl}\n preloadImage={props.preloadImage}\n dynamicRatioImageOptions={{\n width: 400,\n resizeType: ResizeType.Cover\n }}\n theme={{\n thumbnailContainerClass: 'w-100',\n containerClass: 'px-3'\n }}\n />\n </ResourceWrapper>\n </div>\n <div className='col-8 ps-2'>\n <ResourceWrapper\n resource={props.resource}\n appLink={props.appLink}\n analyticsData={analyticsData}\n analyticsOptions={{\n ...analyticsOptions,\n descriptor: ClickDescriptor.Title\n }}\n actionBehaviour={props.actionBehaviour}\n >\n {(\n MasterTypeHelper.isType<Resource>(props.resource, MasterType.Resource) &&\n !!props.resource?.metadata?.resourceType\n ) && (\n <TitleSubText>\n {ResourceHelper.getResourceTypeName(props.resource.metadata.resourceType)}\n </TitleSubText>\n )}\n\n <h3 className='h6 clamp-2'>\n {props.resource.name}\n </h3>\n </ResourceWrapper>\n </div>\n </div>\n );\n}","import React from 'react';\nimport Scrollbars from 'react-custom-scrollbars-2';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { InfiniteScrollFooter } from 'libs/shared/components/infinite-scroll-footer/InfiniteScrollFooter';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { ResourceListItem } from 'libs/shared/components/resource-list-item/ResourceListItem';\nimport { Link, Resource, Video } from 'libs/shared/interfaces';\n\nconst namespace = 'shared.videoGuidanceResourcesPopup';\n\nconst MIN_MAX_HEIGHT = 350;\n\ninterface VideoGuidanceResourcesPopupProps {\n isLoading: boolean;\n video: Video;\n resources?: (Link | Resource)[];\n hasMore: boolean;\n isFetching: boolean;\n fetchNext: (cursor?: string) => void;\n nextCursor?: string;\n onClickClose: () => void;\n onClickViewVideo: () => void;\n imageCdnUrl: string;\n resourceImageErrorFallbackUrl: string;\n getResourceAppLink?: (id: string) => Core.AppLink;\n actionBehaviour: 'normal' | 'public';\n}\n\nexport function VideoGuidanceResourcesPopup(props: VideoGuidanceResourcesPopupProps): JSX.Element {\n const videoResources = [ ...(props.video?.resources?.data || []), ...(props.video?.links?.data || []) ];\n const resources = props.isLoading\n ? []\n : props.resources || videoResources;\n\n return (\n <Popup\n closePopup={props.onClickClose}\n showLoadingSpinner={props.isLoading}\n title={props.isLoading\n ? ''\n : LanguageService.getPhrase(namespace, 'resources')\n }\n size='lg'\n >\n {!props.isLoading && (\n <>\n <Scrollbars autoHeightMax={MIN_MAX_HEIGHT} autoHeightMin={MIN_MAX_HEIGHT} autoHeight>\n <ul className='list-unstyled'>\n {resources.map(resource => {\n return (\n <li key={resource.id} className='mb-3'>\n <ResourceListItem\n resource={resource}\n parentVideo={props.video}\n imageCdnUrl={props.imageCdnUrl}\n imageErrorFallbackUrl={props.resourceImageErrorFallbackUrl}\n preloadImage\n appLink={props.getResourceAppLink?.(resource.id)}\n actionBehaviour={props.actionBehaviour}\n analyticsOptions={{\n location: LocationContext.ResourcesGuidancePopup\n }}\n />\n </li>\n );\n })}\n </ul>\n {(props.hasMore || props.isFetching) && (\n <InfiniteScrollFooter\n isFetching={props.isFetching}\n fetchNext={props.fetchNext}\n nextCursor={props.nextCursor}\n />\n )}\n </Scrollbars>\n\n <PopupButtons>\n <PopupButtons.Cancel\n onClick={props.onClickClose}\n text={LanguageService.getPhrase(namespace, 'close')}\n />\n <PopupButtons.Submit\n text={LanguageService.getPhrase(namespace, 'viewVideo')}\n variant='dark'\n onClick={props.onClickViewVideo}\n />\n </PopupButtons>\n </>\n )}\n </Popup>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { Flight } from 'libs/common/react/index';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EntityType, LocationContext, UserAction, VideoGuidanceDescriptor } from 'libs/analytics/interfaces';\n\nimport { VideoGuidanceResourcesPopup } from 'libs/shared/components/video-guidance/resources/popup/VideoGuidanceResourcesPopup';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { Config, CurrentUser, PopupViewProps, Video } from 'libs/shared/interfaces';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/StreamableActions';\nimport { AppChannels } from 'shared/constants/StreamableRadioChannels';\n\ninterface VideoGuidanceResourcesViewProps extends PopupViewProps {\n id: string;\n}\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function VideoGuidanceResourcesView(props: VideoGuidanceResourcesViewProps): JSX.Element {\n const video = Flight.useBasicFetch<Video>(VideoRequests.video(props.id));\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n function onClickClose(): void {\n AnalyticsHelper.logUserAction({\n id: video.data.id,\n name: video.data.name\n }, {\n entity: EntityType.Video,\n actionType: UserAction.Click,\n location: LocationContext.CurriculumGuidancePopup,\n descriptor: VideoGuidanceDescriptor.Close\n });\n\n props.closePopup();\n }\n\n function onClickViewVideo(): void {\n AnalyticsHelper.logUserAction({\n id: video.data.id,\n name: video.data.name\n }, {\n entity: EntityType.Video,\n location: LocationContext.CurriculumGuidancePopup,\n actionType: UserAction.Click,\n descriptor: VideoGuidanceDescriptor.ViewVideo\n });\n\n Core.AppLinkHelper.trigger({\n application: AppChannels.VIDEOS,\n action: Actions.Videos.PLAY_VIDEO,\n args: [ video.data.id, TextHelper.slugify(video.data.name) ]\n });\n\n props.closePopup();\n }\n\n return (\n <VideoGuidanceResourcesPopup\n isLoading={!video.hasCompleted || !config.hasCompleted}\n video={video.data}\n imageCdnUrl={config.data?.imageCdnUrl}\n resourceImageErrorFallbackUrl={ImageUrls.Fallbacks.RESOURCE_THUMBNAIL}\n getResourceAppLink={id => ({\n application: AppChannels.VIDEOS,\n action: Actions.Videos.PREVIEW_PDF,\n args: [id],\n params: { videoId: video.data.id, showBackButton: true }\n })}\n actionBehaviour={currentUser.data?.isAuthenticated ? 'normal' : 'public'}\n onClickClose={onClickClose}\n onClickViewVideo={onClickViewVideo}\n hasMore={false}\n isFetching={false}\n fetchNext={() => {}}\n nextCursor={null}\n />\n );\n}"],"names":["getColour","resourceType","styles","useCanPreviewResource","data","actionBehaviour","breakpoints","useBreakpoints","ResourceFileType","_a","ResourceTileV2","props","metadata","isResource","MasterTypeHelper","MasterType","getInnerContainerClass","baseClass","onDownload","jsxs","Fragment","jsx","Tooltip","ResourceThumbnail","DivButton","e","SvgContainer","DownloadSvg","TypeBadge","_c","_b","TitleSubText","ResourceHelper","React","canPreview","getLocationClass","analyticsData","analyticsOptions","UserAction","EntityType","logAction","AnalyticsHelper","tileProps","SeoConstants","className","AppLinkHelper","AppLink","ResourceWrapper","Core.AppLinkHelper","ResourceListItem","ClickDescriptor","ResizeType","namespace","MIN_MAX_HEIGHT","VideoGuidanceResourcesPopup","videoResources","_d","resources","Popup","LanguageService","Scrollbars","resource","LocationContext","InfiniteScrollFooter","PopupButtons","VideoGuidanceResourcesView","video","Flight.useBasicFetch","VideoRequests","config","ConfigRequests","currentUser","UserRequests","onClickClose","VideoGuidanceDescriptor","onClickViewVideo","AppChannels","Actions","TextHelper","ImageUrls","id"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{ah as o,aN as c,j as a,aO as R,aP as d,aQ as D,aR as L,aS as p,aT as S,aU as $,v as b}from"./app-C56EnOMP.js";const N=R("h4");N.displayName="DivStyledAsH4";const g=o.forwardRef(({className:e,bsPrefix:s,as:r=N,...n},t)=>(s=c(s,"alert-heading"),a.jsx(r,{ref:t,className:d(e,s),...n})));g.displayName="AlertHeading";const A=o.forwardRef(({className:e,bsPrefix:s,as:r=D,...n},t)=>(s=c(s,"alert-link"),a.jsx(r,{ref:t,className:d(e,s),...n})));A.displayName="AlertLink";const C=o.forwardRef((e,s)=>{const{bsPrefix:r,show:n=!0,closeLabel:t="Close alert",closeVariant:k,className:w,children:y,variant:h="primary",onClose:m,dismissible:u,transition:x=p,...f}=L(e,{show:"onClose"}),l=c(r,"alert"),E=S(H=>{m&&m(!1,H)}),i=x===!0?p:x,j=a.jsxs("div",{role:"alert",...i?void 0:f,ref:s,className:d(w,l,h&&`${l}-${h}`,u&&`${l}-dismissible`),children:[u&&a.jsx($,{onClick:E,"aria-label":t,variant:k}),y]});return i?a.jsx(i,{unmountOnExit:!0,...f,ref:void 0,in:n,children:j}):n?j:null});C.displayName="Alert";const v=Object.assign(C,{Link:A,Heading:g});function B({error:e}){return b({title:"Dev Error"}),e?a.jsxs("div",{className:"px-3",children:[a.jsx("h1",{children:e.name}),a.jsx(v,{variant:"danger",children:a.jsx("h2",{children:e.message})}),a.jsxs(v,{variant:"warning",children:[a.jsx("h3",{children:"Call stack"}),a.jsx("code",{children:e.stack})]})]}):a.jsx(a.Fragment,{})}export{B as DevErrorView};
|
|
2
|
+
//# sourceMappingURL=DhB-Uugx.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DhB-Uugx.chunk.js","sources":["../../../../../node_modules/react-bootstrap/esm/AlertHeading.js","../../../../../node_modules/react-bootstrap/esm/AlertLink.js","../../../../../node_modules/react-bootstrap/esm/Alert.js","../../../../libs/shared/src/views/dev-error/DevErrorView.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport divWithClassName from './divWithClassName';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DivStyledAsH4 = divWithClassName('h4');\nDivStyledAsH4.displayName = 'DivStyledAsH4';\nconst AlertHeading = /*#__PURE__*/React.forwardRef(({\n className,\n bsPrefix,\n as: Component = DivStyledAsH4,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'alert-heading');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n className: classNames(className, bsPrefix),\n ...props\n });\n});\nAlertHeading.displayName = 'AlertHeading';\nexport default AlertHeading;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport Anchor from '@restart/ui/Anchor';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst AlertLink = /*#__PURE__*/React.forwardRef(({\n className,\n bsPrefix,\n as: Component = Anchor,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'alert-link');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n className: classNames(className, bsPrefix),\n ...props\n });\n});\nAlertLink.displayName = 'AlertLink';\nexport default AlertLink;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useUncontrolled } from 'uncontrollable';\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport AlertHeading from './AlertHeading';\nimport AlertLink from './AlertLink';\nimport Fade from './Fade';\nimport CloseButton from './CloseButton';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst Alert = /*#__PURE__*/React.forwardRef((uncontrolledProps, ref) => {\n const {\n bsPrefix,\n show = true,\n closeLabel = 'Close alert',\n closeVariant,\n className,\n children,\n variant = 'primary',\n onClose,\n dismissible,\n transition = Fade,\n ...props\n } = useUncontrolled(uncontrolledProps, {\n show: 'onClose'\n });\n const prefix = useBootstrapPrefix(bsPrefix, 'alert');\n const handleClose = useEventCallback(e => {\n if (onClose) {\n onClose(false, e);\n }\n });\n const Transition = transition === true ? Fade : transition;\n const alert = /*#__PURE__*/_jsxs(\"div\", {\n role: \"alert\",\n ...(!Transition ? props : undefined),\n ref: ref,\n className: classNames(className, prefix, variant && `${prefix}-${variant}`, dismissible && `${prefix}-dismissible`),\n children: [dismissible && /*#__PURE__*/_jsx(CloseButton, {\n onClick: handleClose,\n \"aria-label\": closeLabel,\n variant: closeVariant\n }), children]\n });\n if (!Transition) return show ? alert : null;\n return /*#__PURE__*/_jsx(Transition, {\n unmountOnExit: true,\n ...props,\n ref: undefined,\n in: show,\n children: alert\n });\n});\nAlert.displayName = 'Alert';\nexport default Object.assign(Alert, {\n Link: AlertLink,\n Heading: AlertHeading\n});","import * as React from 'react';\nimport { Alert } from 'react-bootstrap';\n\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\n\ninterface DevErrorViewProps {\n error: Error;\n}\n\nexport function DevErrorView({ error }: DevErrorViewProps): React.ReactElement {\n useSetPageMetadata({ title: 'Dev Error' });\n\n if (!error)\n return <></>;\n\n return (\n <div className='px-3'>\n <h1>{error.name}</h1>\n <Alert variant='danger'>\n <h2>{error.message}</h2>\n </Alert>\n <Alert variant='warning'>\n <h3>Call stack</h3>\n <code>{error.stack}</code>\n </Alert>\n </div>\n );\n}"],"names":["DivStyledAsH4","divWithClassName","AlertHeading","React.forwardRef","className","bsPrefix","Component","props","ref","useBootstrapPrefix","_jsx","classNames","AlertLink","Anchor","Alert","uncontrolledProps","show","closeLabel","closeVariant","children","variant","onClose","dismissible","transition","Fade","useUncontrolled","prefix","handleClose","useEventCallback","e","Transition","alert","_jsxs","CloseButton","Alert$1","DevErrorView","error","useSetPageMetadata","jsxs","jsx","Fragment"],"mappings":"qHAOA,MAAMA,EAAgBC,EAAiB,IAAI,EAC3CD,EAAc,YAAc,gBAC5B,MAAME,EAA4BC,EAAAA,WAAiB,CAAC,CAClD,UAAAC,EACA,SAAAC,EACA,GAAIC,EAAYN,EAChB,GAAGO,CACL,EAAGC,KACDH,EAAWI,EAAmBJ,EAAU,eAAe,EACnCK,EAAAA,IAAKJ,EAAW,CAClC,IAAKE,EACL,UAAWG,EAAWP,EAAWC,CAAQ,EACzC,GAAGE,CACP,CAAG,EACF,EACDL,EAAa,YAAc,eCf3B,MAAMU,EAAyBT,EAAAA,WAAiB,CAAC,CAC/C,UAAAC,EACA,SAAAC,EACA,GAAIC,EAAYO,EAChB,GAAGN,CACL,EAAGC,KACDH,EAAWI,EAAmBJ,EAAU,YAAY,EAChCK,EAAAA,IAAKJ,EAAW,CAClC,IAAKE,EACL,UAAWG,EAAWP,EAAWC,CAAQ,EACzC,GAAGE,CACP,CAAG,EACF,EACDK,EAAU,YAAc,YCPxB,MAAME,EAAqBX,EAAAA,WAAiB,CAACY,EAAmBP,IAAQ,CACtE,KAAM,CACJ,SAAAH,EACA,KAAAW,EAAO,GACP,WAAAC,EAAa,cACb,aAAAC,EACA,UAAAd,EACA,SAAAe,EACA,QAAAC,EAAU,UACV,QAAAC,EACA,YAAAC,EACA,WAAAC,EAAaC,EACb,GAAGjB,CACP,EAAMkB,EAAgBV,EAAmB,CACrC,KAAM,SACV,CAAG,EACKW,EAASjB,EAAmBJ,EAAU,OAAO,EAC7CsB,EAAcC,EAAiBC,GAAK,CACpCR,GACFA,EAAQ,GAAOQ,CAAC,CAEpB,CAAC,EACKC,EAAaP,IAAe,GAAOC,EAAOD,EAC1CQ,EAAqBC,EAAAA,KAAM,MAAO,CACtC,KAAM,QACN,GAAKF,EAAqB,OAARvB,EAClB,IAAKC,EACL,UAAWG,EAAWP,EAAWsB,EAAQN,GAAW,GAAGM,CAAM,IAAIN,CAAO,GAAIE,GAAe,GAAGI,CAAM,cAAc,EAClH,SAAU,CAACJ,GAA4BZ,EAAAA,IAAKuB,EAAa,CACvD,QAASN,EACT,aAAcV,EACd,QAASC,CACf,CAAK,EAAGC,CAAQ,CAChB,CAAG,EACD,OAAKW,EACepB,EAAAA,IAAKoB,EAAY,CACnC,cAAe,GACf,GAAGvB,EACH,IAAK,OACL,GAAIS,EACJ,SAAUe,CACd,CAAG,EAPuBf,EAAOe,EAAQ,IAQzC,CAAC,EACDjB,EAAM,YAAc,QACpB,MAAAoB,EAAe,OAAO,OAAOpB,EAAO,CAClC,KAAMF,EACN,QAASV,CACX,CAAC,ECnDM,SAASiC,EAAa,CAAE,MAAAC,GAAgD,CAG7E,OAFAC,EAAmB,CAAE,MAAO,YAAa,EAEpCD,EAIHE,EAAAA,KAAC,MAAA,CAAI,UAAU,OACb,SAAA,CAAAC,EAAAA,IAAC,KAAA,CAAI,WAAM,IAAA,CAAK,EAChBA,EAAAA,IAACzB,GAAM,QAAQ,SACb,eAAC,KAAA,CAAI,SAAAsB,EAAM,QAAQ,CAAA,CACrB,EACAE,EAAAA,KAACxB,EAAA,CAAM,QAAQ,UACb,SAAA,CAAAyB,EAAAA,IAAC,MAAG,SAAA,YAAA,CAAU,EACdA,EAAAA,IAAC,OAAA,CAAM,SAAAH,EAAM,KAAA,CAAM,CAAA,CAAA,CACrB,CAAA,EACF,EAZOG,EAAAA,IAAAC,EAAAA,SAAA,EAAE,CAcb","x_google_ignoreList":[0,1,2]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DhqAA1wT.chunk.js","sources":["../../../../libs/common/src/backbone/utils/ScrollHelper.ts"],"sourcesContent":["import { Radio } from 'backbone';\n\nimport { CommonChannels } from '../constants/CommonChannels';\n\nexport const ScrollHelper = {\n // Will prevent scrolling to the top of the page when applinks are triggered\n preventScrollTop(): void {\n Radio.channel(CommonChannels.SHELL).trigger('prevent:scroll:top');\n }\n};"],"names":["ScrollHelper","Radio","CommonChannels"],"mappings":"+CAIO,MAAMA,EAAe,CAE1B,kBAAyB,CACvBC,EAAAA,MAAM,QAAQC,EAAe,KAAK,EAAE,QAAQ,oBAAoB,CAClE,CACF"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{dd as v,ah as G,ar as c,de as x,dc as S}from"./app-C56EnOMP.js";S.Ok;function H(u,a,b){function l(e){if(e)return c.isFunction(a)?[...a(e)]:[...e.data]}function d(e){var n,o;if(e)return(o=(n=e.pagination)==null?void 0:n.cursors)==null?void 0:o.next}function g(e){if(e)return e==null?void 0:e.count}return v(G.useMemo(()=>e=>{if(!c.isFunction(u))return;const n=u,o=c.isFunction(u)&&n();let t=o&&x(e,o),i=t&&t.isFetching,f=t&&t.statusCode,r=t&&t.hasCompleted;const I=r,k=t&&t.shouldFetch,h=l(t&&t.data);let s=d(t&&t.data);const m=g(t&&t.data);for(;s&&(t=x(e,n(s)),i=i||t.isFetching,f=t.statusCode,r=t.hasCompleted,!t.shouldFetch);){const F=l(t.data);F&&h.push(...F);const p=d(t.data);p===s?s=null:s=p}const C={shouldInitialFetch:k,items:h,nextCursor:s,isFetching:i,statusCode:f,hasCompleted:r,hasFirstPageCompleted:I};return typeof m=="number"&&(C.totalItems=m),C},[u]))}export{H as u};
|
|
2
|
+
//# sourceMappingURL=Di5-l4QJ.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Di5-l4QJ.chunk.js","sources":["../../../../libs/shared/src/hooks/UseSelectAllPages.ts"],"sourcesContent":["import { useMemo } from 'react';\nimport { useSelector } from 'react-redux';\n\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Flight } from 'libs/common/flight';\nimport { ApplicationState } from 'libs/common/react/interfaces';\n\nimport { BasePaginatedCollection } from 'libs/shared/interfaces';\n\nexport interface SelectAllPagesResult<T> {\n items: T[];\n shouldInitialFetch: boolean;\n nextCursor: string;\n isFetching: boolean;\n statusCode: HttpStatus;\n hasCompleted: boolean;\n totalItems?: number;\n hasFirstPageCompleted: boolean;\n}\n\nexport const EmptySelectAllPagesResult: SelectAllPagesResult<any> = {\n items: [],\n shouldInitialFetch: false,\n nextCursor: null,\n isFetching: false,\n statusCode: HttpStatus.Ok,\n hasCompleted: true,\n totalItems: 0,\n hasFirstPageCompleted: true\n};\n\n/**\n * Hook to select all pages of a collection from the store and flatten them.\n * It will not trigger any fetches.\n * \n * @param getKey - callback function to get the key for each page.\n * Can be false if the key requires data that hasn't yet been fetched - e.g. user id.\n */\nexport function useSelectAllPages<TObject, TResponse = BasePaginatedCollection<TObject>>(\n getKey: ((cursor?: string) => string) | false,\n getItems?: (responseData: TResponse) => TObject[],\n getCursor?: (responseData: TResponse) => string\n): SelectAllPagesResult<TObject> {\n function safeGetItems(responseData: TResponse): TObject[] {\n if (!responseData)\n return undefined;\n\n if (FunctionHelper.isFunction(getItems))\n return [...getItems(responseData)];\n\n return [...(responseData as unknown as BasePaginatedCollection<TObject>).data];\n }\n\n function safeGetCursor(responseData: TResponse): string {\n if (!responseData)\n return undefined;\n\n if (getCursor)\n return getCursor(responseData);\n\n return (responseData as unknown as BasePaginatedCollection<TObject>).pagination?.cursors?.next;\n }\n\n function safeGetTotalItems(responseData: TResponse): number {\n if (!responseData)\n return undefined;\n\n return (responseData as unknown as BasePaginatedCollection<TObject>)?.count;\n }\n\n return useSelector(useMemo(() => (state: ApplicationState) => {\n if (!FunctionHelper.isFunction(getKey))\n return;\n\n const getKeyFn = getKey as (cursor?: string) => string;\n const key = FunctionHelper.isFunction(getKey) && getKeyFn();\n\n let request = key && Flight.getResponse<TResponse>(state, key);\n\n let isFetching = request && request.isFetching;\n let statusCode = request && request.statusCode;\n let hasCompleted = request && request.hasCompleted;\n const hasFirstPageCompleted = hasCompleted;\n\n const shouldInitialFetch = request && request.shouldFetch;\n\n const items = safeGetItems(request && request.data);\n let nextCursor = safeGetCursor(request && request.data);\n const totalItems = safeGetTotalItems(request && request.data);\n\n // Retrieve all pages that are currently in the store.\n while (nextCursor) {\n request = Flight.getResponse<TResponse>(state, getKeyFn(nextCursor));\n\n isFetching = isFetching || request.isFetching;\n statusCode = request.statusCode;\n hasCompleted = request.hasCompleted;\n\n // If next page hasn't been fetched, break.\n if (request.shouldFetch)\n break;\n\n const newItems = safeGetItems(request.data);\n newItems && items.push(...newItems);\n\n const nextNextCursor = safeGetCursor(request.data);\n\n /**\n * This is a check to basically see if the backend has messed up the cursors it's sent back.\n * For some things (e.g. user manager in Lite), the cursors are generated for a paginated collection,\n * but the collection is then filtered afterwards (making the cursors not entirely accurate).\n * This can lead to problems where a request with a cursor might return that same cursor as the `next`\n * cursor. Confusing, but basically when that happens we want this while loop to end, otherwise it'll\n * run infinitely - Josh\n */\n if (nextNextCursor === nextCursor) {\n nextCursor = null;\n } else {\n nextCursor = nextNextCursor;\n }\n }\n\n const response: SelectAllPagesResult<TObject> = {\n shouldInitialFetch,\n items,\n nextCursor,\n isFetching,\n statusCode,\n hasCompleted,\n hasFirstPageCompleted\n };\n\n if (typeof (totalItems) === 'number')\n response.totalItems = totalItems;\n\n return response;\n }, [getKey]));\n}"],"names":["HttpStatus","useSelectAllPages","getKey","getItems","getCursor","safeGetItems","responseData","FunctionHelper","safeGetCursor","_b","_a","safeGetTotalItems","useSelector","useMemo","state","getKeyFn","key","request","Flight.getResponse","isFetching","statusCode","hasCompleted","hasFirstPageCompleted","shouldInitialFetch","items","nextCursor","totalItems","newItems","nextNextCursor","response"],"mappings":"uEA0BcA,EAAW,GAalB,SAASC,EACdC,EACAC,EACAC,EAC+B,CAC/B,SAASC,EAAaC,EAAoC,CACxD,GAAKA,EAGL,OAAIC,EAAe,WAAWJ,CAAQ,EAC7B,CAAC,GAAGA,EAASG,CAAY,CAAC,EAE5B,CAAC,GAAIA,EAA6D,IAAI,CAC/E,CAEA,SAASE,EAAcF,EAAiC,SACtD,GAAKA,EAML,OAAQG,GAAAC,EAAAJ,EAA6D,aAA7D,YAAAI,EAAyE,UAAzE,YAAAD,EAAkF,IAC5F,CAEA,SAASE,EAAkBL,EAAiC,CAC1D,GAAKA,EAGL,OAAQA,GAAA,YAAAA,EAA8D,KACxE,CAEA,OAAOM,EAAYC,EAAAA,QAAQ,IAAOC,GAA4B,CAC5D,GAAI,CAACP,EAAe,WAAWL,CAAM,EACnC,OAEF,MAAMa,EAAWb,EACXc,EAAMT,EAAe,WAAWL,CAAM,GAAKa,EAAA,EAEjD,IAAIE,EAAUD,GAAOE,EAA8BJ,EAAOE,CAAG,EAEzDG,EAAaF,GAAWA,EAAQ,WAChCG,EAAaH,GAAWA,EAAQ,WAChCI,EAAeJ,GAAWA,EAAQ,aACtC,MAAMK,EAAwBD,EAExBE,EAAqBN,GAAWA,EAAQ,YAExCO,EAAQnB,EAAaY,GAAWA,EAAQ,IAAI,EAClD,IAAIQ,EAAajB,EAAcS,GAAWA,EAAQ,IAAI,EACtD,MAAMS,EAAaf,EAAkBM,GAAWA,EAAQ,IAAI,EAG5D,KAAOQ,IACLR,EAAUC,EAA8BJ,EAAOC,EAASU,CAAU,CAAC,EAEnEN,EAAaA,GAAcF,EAAQ,WACnCG,EAAaH,EAAQ,WACrBI,EAAeJ,EAAQ,aAGnB,CAAAA,EAAQ,cARK,CAWjB,MAAMU,EAAWtB,EAAaY,EAAQ,IAAI,EAC1CU,GAAYH,EAAM,KAAK,GAAGG,CAAQ,EAElC,MAAMC,EAAiBpB,EAAcS,EAAQ,IAAI,EAU7CW,IAAmBH,EACrBA,EAAa,KAEbA,EAAaG,CAEjB,CAEA,MAAMC,EAA0C,CAC9C,mBAAAN,EACA,MAAAC,EACA,WAAAC,EACA,WAAAN,EACA,WAAAC,EACA,aAAAC,EACA,sBAAAC,CAAA,EAGF,OAAI,OAAQI,GAAgB,WAC1BG,EAAS,WAAaH,GAEjBG,CACT,EAAG,CAAC3B,CAAM,CAAC,CAAC,CACd"}
|