@clickview/streamable-learning 0.34.1-dev.2 → 0.35.0-rc.1
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/bundles.json +2 -2
- package/dist/css/103-streamable-learning-5060b6cda5.chunk.css +7 -0
- package/dist/css/1269-streamable-learning-a12c4ebc99.chunk.css +2 -0
- package/dist/css/1457-streamable-learning-c8c8b3b9b1.chunk.css +50 -0
- package/dist/css/2334-streamable-learning-de03ae073a.chunk.css +2 -0
- package/dist/css/3322-streamable-learning-510e1aa3f3.chunk.css +34 -0
- package/dist/css/3838-streamable-learning-da10685fe8.chunk.css +22 -0
- package/dist/css/4254-streamable-learning-e493f4a027.chunk.css +2 -0
- package/dist/css/4607-streamable-learning-2605302fc2.chunk.css +90 -0
- package/dist/css/4772-streamable-learning-f83b838d71.chunk.css +9 -0
- package/dist/css/5003-streamable-learning-b38d2ddbbe.chunk.css +98 -0
- package/dist/css/5565-streamable-learning-0caae3809b.chunk.css +13 -0
- package/dist/css/6017-streamable-learning-098a205d01.chunk.css +6 -0
- package/dist/css/6356-streamable-learning-8c5b220bf6.chunk.css +1 -0
- package/dist/css/6987-streamable-learning-8f682301c6.chunk.css +1 -0
- package/dist/css/7317-streamable-learning-b5d226bbb6.chunk.css +5 -0
- package/dist/css/8058-streamable-learning-539cf7be18.chunk.css +12 -0
- package/dist/css/8294-streamable-learning-c797263ac2.chunk.css +1 -0
- package/dist/css/8496-streamable-learning-ce19f6ca52.chunk.css +13 -0
- package/dist/css/8601-streamable-learning-f525210660.chunk.css +6 -0
- package/dist/css/9514-streamable-learning-251703c6d1.chunk.css +2 -0
- package/dist/css/9766-streamable-learning-31650ffe5d.chunk.css +8 -0
- package/dist/css/9842-streamable-learning-24729103f7.chunk.css +4 -0
- package/dist/css/9899-streamable-learning-0338f8d2dc.chunk.css +4 -0
- package/dist/css/streamable-learning-dd0c1095d5.css +23 -0
- package/dist/languages/en.json +1 -0
- package/dist/scripts/103-aceced8961-streamable-learning.chunk.js +1 -0
- package/dist/scripts/1097-680a971192-streamable-learning.chunk.js +2 -0
- package/dist/scripts/1097-680a971192-streamable-learning.chunk.js.LICENSE.txt +105 -0
- package/dist/scripts/1269-2d0b903343-streamable-learning.chunk.js +2 -0
- package/dist/scripts/1269-2d0b903343-streamable-learning.chunk.js.LICENSE.txt +1 -0
- package/dist/scripts/1457-899f40d09a-streamable-learning.chunk.js +1 -0
- package/dist/scripts/1482-b1dd75897c-streamable-learning.chunk.js +1 -0
- package/dist/scripts/1934-fc017df0da-streamable-learning.chunk.js +2 -0
- package/dist/scripts/1934-fc017df0da-streamable-learning.chunk.js.LICENSE.txt +9 -0
- package/dist/scripts/2042-d51622d63e-streamable-learning.chunk.js +1 -0
- package/dist/scripts/2087-eba9033b1c-streamable-learning.chunk.js +1 -0
- package/dist/scripts/2245-8cd3224e1b-streamable-learning.chunk.js +1 -0
- package/dist/scripts/2334-00b028191d-streamable-learning.chunk.js +1 -0
- package/dist/scripts/2676-c842ec7e8d-streamable-learning.chunk.js +2 -0
- package/dist/scripts/2676-c842ec7e8d-streamable-learning.chunk.js.LICENSE.txt +1 -0
- package/dist/scripts/2877-5ffc9711f6-streamable-learning.chunk.js +1 -0
- package/dist/scripts/2911-2ec3a6600a-streamable-learning.chunk.js +1 -0
- package/dist/scripts/3057-731a8ca978-streamable-learning.chunk.js +1 -0
- package/dist/scripts/3093-efbcc927ea-streamable-learning.chunk.js +1 -0
- package/dist/scripts/3186-d1a6ccffde-streamable-learning.chunk.js +1 -0
- package/dist/scripts/3322-33c015dec9-streamable-learning.chunk.js +1 -0
- package/dist/scripts/3472-50ca92bde3-streamable-learning.chunk.js +1 -0
- package/dist/scripts/3838-4a38f33dc2-streamable-learning.chunk.js +1 -0
- package/dist/scripts/3941-2ef15ca9ac-streamable-learning.chunk.js +1 -0
- package/dist/scripts/4254-ef581b8105-streamable-learning.chunk.js +1 -0
- package/dist/scripts/4607-a4edb06dba-streamable-learning.chunk.js +2 -0
- package/dist/scripts/4607-a4edb06dba-streamable-learning.chunk.js.LICENSE.txt +1 -0
- package/dist/scripts/4772-3cb280f959-streamable-learning.chunk.js +2 -0
- package/dist/scripts/4772-3cb280f959-streamable-learning.chunk.js.LICENSE.txt +1 -0
- package/dist/scripts/4951-df701c6a8d-streamable-learning.chunk.js +1 -0
- package/dist/scripts/5003-7468a75d64-streamable-learning.chunk.js +2 -0
- package/dist/scripts/5003-7468a75d64-streamable-learning.chunk.js.LICENSE.txt +1 -0
- package/dist/scripts/5088-2e09e1ba6e-streamable-learning.chunk.js +1 -0
- package/dist/scripts/5173-a800a17d0d-streamable-learning.chunk.js +1 -0
- package/dist/scripts/5446-2cbe9f9d1b-streamable-learning.chunk.js +1 -0
- package/dist/scripts/5543-205aaa36a6-streamable-learning.chunk.js +1 -0
- package/dist/scripts/5565-224d86dc1b-streamable-learning.chunk.js +1 -0
- package/dist/scripts/578-2cc99f46f7-streamable-learning.chunk.js +1 -0
- package/dist/scripts/6017-5bd6f9bf7a-streamable-learning.chunk.js +2 -0
- package/dist/scripts/6017-5bd6f9bf7a-streamable-learning.chunk.js.LICENSE.txt +1 -0
- package/dist/scripts/6356-eefa3ff22e-streamable-learning.chunk.js +1 -0
- package/dist/scripts/6979-ef9a3931a2-streamable-learning.chunk.js +2 -0
- package/dist/scripts/6979-ef9a3931a2-streamable-learning.chunk.js.LICENSE.txt +1 -0
- package/dist/scripts/6987-e58de31cfe-streamable-learning.chunk.js +1 -0
- package/dist/scripts/7317-6b7186c85d-streamable-learning.chunk.js +1 -0
- package/dist/scripts/7347-772848ba8a-streamable-learning.chunk.js +1 -0
- package/dist/scripts/7570-cd4f70ff52-streamable-learning.chunk.js +2 -0
- package/dist/scripts/7570-cd4f70ff52-streamable-learning.chunk.js.LICENSE.txt +1 -0
- package/dist/scripts/7904-96574373ca-streamable-learning.chunk.js +1 -0
- package/dist/scripts/7925-1e1cfa2a04-streamable-learning.chunk.js +1 -0
- package/dist/scripts/8058-51c4b442d6-streamable-learning.chunk.js +1 -0
- package/dist/scripts/8126-9d09959b28-streamable-learning.chunk.js +2 -0
- package/dist/scripts/8126-9d09959b28-streamable-learning.chunk.js.LICENSE.txt +60 -0
- package/dist/scripts/8397-39ce77876d-streamable-learning.chunk.js +1 -0
- package/dist/scripts/8496-1b2519f9fd-streamable-learning.chunk.js +2 -0
- package/dist/scripts/8496-1b2519f9fd-streamable-learning.chunk.js.LICENSE.txt +1 -0
- package/dist/scripts/8599-b74e1ab6e3-streamable-learning.chunk.js +1 -0
- package/dist/scripts/8601-37783cf18b-streamable-learning.chunk.js +1 -0
- package/dist/scripts/8819-2a50dd6a9b-streamable-learning.chunk.js +1 -0
- package/dist/scripts/8937-5103db88d8-streamable-learning.chunk.js +1 -0
- package/dist/scripts/9390-bbaf07ad0f-streamable-learning.chunk.js +1 -0
- package/dist/scripts/9514-a31ca9af06-streamable-learning.chunk.js +1 -0
- package/dist/scripts/9766-48d72d9285-streamable-learning.chunk.js +2 -0
- package/dist/scripts/9766-48d72d9285-streamable-learning.chunk.js.LICENSE.txt +1 -0
- package/dist/scripts/9842-36d830ee87-streamable-learning.chunk.js +1 -0
- package/dist/scripts/9899-f33e8f1d43-streamable-learning.chunk.js +2 -0
- package/dist/scripts/9899-f33e8f1d43-streamable-learning.chunk.js.LICENSE.txt +1 -0
- package/dist/scripts/bundle-7ea4deeaa8.min.js +2 -0
- package/dist/scripts/bundle-7ea4deeaa8.min.js.LICENSE.txt +108 -0
- package/dist/scripts/pdf.worker.entry-a2092a6670.min.worker.js +2 -0
- package/dist/scripts/pdf.worker.entry-a2092a6670.min.worker.js.LICENSE.txt +21 -0
- package/package.json +3 -5
- package/typings/utils/imports.d.ts +1 -2
- 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/css/B-attovs.chunk.css +0 -9
- package/dist/css/B1NucFMn.chunk.css +0 -1
- package/dist/css/BPdg7JW4.chunk.css +0 -1
- package/dist/css/BPrUSCaY.chunk.css +0 -1
- package/dist/css/BR0fUt9D.chunk.css +0 -1
- package/dist/css/BhYm6SRm.chunk.css +0 -1
- package/dist/css/BiRz4h1c.chunk.css +0 -1
- package/dist/css/Bq1ChJn4.chunk.css +0 -1
- package/dist/css/Bt85j9js.chunk.css +0 -1
- package/dist/css/BuYrqi9E.chunk.css +0 -1
- package/dist/css/BugV1Bpa.chunk.css +0 -1
- package/dist/css/BuuVPl7n.chunk.css +0 -1
- package/dist/css/C1NkrNqQ.chunk.css +0 -1
- package/dist/css/C1qv5jz5.chunk.css +0 -1
- package/dist/css/C7XoyEPr.chunk.css +0 -1
- package/dist/css/C7_MDu56.chunk.css +0 -1
- package/dist/css/CC5F5C8O.chunk.css +0 -1
- package/dist/css/CChSC6Ta.chunk.css +0 -1
- package/dist/css/CCsCPLDG.chunk.css +0 -1
- package/dist/css/CD1qrI1T.chunk.css +0 -1
- package/dist/css/CKqvCBj4.chunk.css +0 -1
- package/dist/css/CLZ0Ycds.chunk.css +0 -1
- package/dist/css/CO7M4rZW.chunk.css +0 -1
- package/dist/css/CY0yvCW4.chunk.css +0 -1
- package/dist/css/CYGsw8FT.chunk.css +0 -1
- package/dist/css/Cbi3KYBa.chunk.css +0 -1
- package/dist/css/CliS8Q8r.chunk.css +0 -1
- package/dist/css/D-kQKsZN.chunk.css +0 -1
- package/dist/css/D2NwUVrK.chunk.css +0 -1
- package/dist/css/D4g1IoUU.chunk.css +0 -1
- package/dist/css/DBgpcO3T.chunk.css +0 -1
- package/dist/css/DDnpOnVB.chunk.css +0 -1
- package/dist/css/DZJSONGP.chunk.css +0 -1
- package/dist/css/Dc0zNt2E.chunk.css +0 -1
- package/dist/css/DeAfaPiD.chunk.css +0 -1
- package/dist/css/Dj731zLm.chunk.css +0 -1
- package/dist/css/DjPPxa0A.chunk.css +0 -1
- package/dist/css/DlOtoSz0.chunk.css +0 -1
- package/dist/css/DwduQat7.chunk.css +0 -1
- package/dist/css/Dzuu2GTx.chunk.css +0 -1
- package/dist/css/JAvsJreH.chunk.css +0 -1
- package/dist/css/NKlFYVOc.chunk.css +0 -1
- package/dist/css/VZd8qGtK.chunk.css +0 -1
- package/dist/css/Y7U--2na.chunk.css +0 -1
- package/dist/css/ir3IcK_l.chunk.css +0 -1
- package/dist/css/jbMisi9r.chunk.css +0 -1
- package/dist/css/kS5aDtIJ.chunk.css +0 -1
- package/dist/css/mqCL1o7m.chunk.css +0 -1
- package/dist/css/qZzkUeZk.chunk.css +0 -1
- package/dist/css/sC_H3yXE.chunk.css +0 -1
- package/dist/css/wR_6C_NV.chunk.css +0 -1
- package/dist/en.json +0 -1
- package/dist/scripts/7tlnqdEj.chunk.js +0 -2
- package/dist/scripts/7tlnqdEj.chunk.js.map +0 -1
- package/dist/scripts/82OY25pR.chunk.js +0 -2
- package/dist/scripts/82OY25pR.chunk.js.map +0 -1
- package/dist/scripts/8JOxjlae.chunk.js +0 -15
- package/dist/scripts/8JOxjlae.chunk.js.map +0 -1
- package/dist/scripts/B-_Kgmt0.chunk.js +0 -2
- package/dist/scripts/B-_Kgmt0.chunk.js.map +0 -1
- package/dist/scripts/B0KMLOp5.chunk.js +0 -2
- package/dist/scripts/B0KMLOp5.chunk.js.map +0 -1
- package/dist/scripts/B1QWJfPw.chunk.js +0 -3
- package/dist/scripts/B1QWJfPw.chunk.js.map +0 -1
- package/dist/scripts/B26T27lj.chunk.js +0 -2
- package/dist/scripts/B26T27lj.chunk.js.map +0 -1
- package/dist/scripts/B32lL5ga.chunk.js +0 -2
- package/dist/scripts/B32lL5ga.chunk.js.map +0 -1
- package/dist/scripts/B5lCwpXp.chunk.js +0 -2
- package/dist/scripts/B5lCwpXp.chunk.js.map +0 -1
- package/dist/scripts/B8qPNVvK.chunk.js +0 -2
- package/dist/scripts/B8qPNVvK.chunk.js.map +0 -1
- package/dist/scripts/BBnDr_iy.chunk.js +0 -2
- package/dist/scripts/BBnDr_iy.chunk.js.map +0 -1
- package/dist/scripts/BCQ0kOEO.chunk.js +0 -6
- package/dist/scripts/BCQ0kOEO.chunk.js.map +0 -1
- package/dist/scripts/BCyuhFou.chunk.js +0 -2
- package/dist/scripts/BCyuhFou.chunk.js.map +0 -1
- package/dist/scripts/BF7Uu3LW.chunk.js +0 -2
- package/dist/scripts/BF7Uu3LW.chunk.js.map +0 -1
- package/dist/scripts/BG6_Ss4G.chunk.js +0 -2
- package/dist/scripts/BG6_Ss4G.chunk.js.map +0 -1
- package/dist/scripts/BMrWb7Ku.chunk.js +0 -2
- package/dist/scripts/BMrWb7Ku.chunk.js.map +0 -1
- package/dist/scripts/BQH1xd9z.chunk.js +0 -2
- package/dist/scripts/BQH1xd9z.chunk.js.map +0 -1
- package/dist/scripts/BW1iqZG2.chunk.js +0 -2
- package/dist/scripts/BW1iqZG2.chunk.js.map +0 -1
- package/dist/scripts/BdHxGaRy.chunk.js +0 -2
- package/dist/scripts/BdHxGaRy.chunk.js.map +0 -1
- package/dist/scripts/BdniDID_.chunk.js +0 -2
- package/dist/scripts/BdniDID_.chunk.js.map +0 -1
- package/dist/scripts/BeTQIGnj.chunk.js +0 -2
- package/dist/scripts/BeTQIGnj.chunk.js.map +0 -1
- package/dist/scripts/Bf3WCYXw.chunk.js +0 -8
- package/dist/scripts/Bf3WCYXw.chunk.js.map +0 -1
- package/dist/scripts/Bh4NsrSi.chunk.js +0 -2
- package/dist/scripts/Bh4NsrSi.chunk.js.map +0 -1
- package/dist/scripts/BjOv-usB.chunk.js +0 -2
- package/dist/scripts/BjOv-usB.chunk.js.map +0 -1
- package/dist/scripts/BkGt8Gr1.chunk.js +0 -2
- package/dist/scripts/BkGt8Gr1.chunk.js.map +0 -1
- package/dist/scripts/BlFiywl_.chunk.js +0 -2
- package/dist/scripts/BlFiywl_.chunk.js.map +0 -1
- package/dist/scripts/BoNyBWaZ.chunk.js +0 -2
- package/dist/scripts/BoNyBWaZ.chunk.js.map +0 -1
- package/dist/scripts/Bvum7-8x.chunk.js +0 -8
- package/dist/scripts/Bvum7-8x.chunk.js.map +0 -1
- package/dist/scripts/BwDmMfAz.chunk.js +0 -2
- package/dist/scripts/BwDmMfAz.chunk.js.map +0 -1
- package/dist/scripts/BwgQZkdi.chunk.js +0 -2
- package/dist/scripts/BwgQZkdi.chunk.js.map +0 -1
- package/dist/scripts/C-7yn3rc.chunk.js +0 -2
- package/dist/scripts/C-7yn3rc.chunk.js.map +0 -1
- package/dist/scripts/C-pJ0Wi3.chunk.js +0 -2
- package/dist/scripts/C-pJ0Wi3.chunk.js.map +0 -1
- package/dist/scripts/C35NlkUr.chunk.js +0 -2
- package/dist/scripts/C35NlkUr.chunk.js.map +0 -1
- package/dist/scripts/C36-3UWl.chunk.js +0 -2
- package/dist/scripts/C36-3UWl.chunk.js.map +0 -1
- package/dist/scripts/C3fMNXil.chunk.js +0 -2
- package/dist/scripts/C3fMNXil.chunk.js.map +0 -1
- package/dist/scripts/C8Br2CdQ.chunk.js +0 -2
- package/dist/scripts/C8Br2CdQ.chunk.js.map +0 -1
- package/dist/scripts/CEmtkty-.chunk.js +0 -2
- package/dist/scripts/CEmtkty-.chunk.js.map +0 -1
- package/dist/scripts/CFs3kdQx.chunk.js +0 -53
- package/dist/scripts/CFs3kdQx.chunk.js.map +0 -1
- package/dist/scripts/CGNCg1fO.chunk.js +0 -2
- package/dist/scripts/CGNCg1fO.chunk.js.map +0 -1
- package/dist/scripts/CPXlV0fg.chunk.js +0 -2
- package/dist/scripts/CPXlV0fg.chunk.js.map +0 -1
- package/dist/scripts/CSoZBG8v.chunk.js +0 -2
- package/dist/scripts/CSoZBG8v.chunk.js.map +0 -1
- package/dist/scripts/CW7x8M-z.chunk.js +0 -2
- package/dist/scripts/CW7x8M-z.chunk.js.map +0 -1
- package/dist/scripts/CWHjB5Ye.chunk.js +0 -2
- package/dist/scripts/CWHjB5Ye.chunk.js.map +0 -1
- package/dist/scripts/CXslDtbb.chunk.js +0 -2
- package/dist/scripts/CXslDtbb.chunk.js.map +0 -1
- package/dist/scripts/CZLZ0bbA.chunk.js +0 -2
- package/dist/scripts/CZLZ0bbA.chunk.js.map +0 -1
- package/dist/scripts/CZafJWQk.chunk.js +0 -2
- package/dist/scripts/CZafJWQk.chunk.js.map +0 -1
- package/dist/scripts/CbFIe2Y6.chunk.js +0 -2
- package/dist/scripts/CbFIe2Y6.chunk.js.map +0 -1
- package/dist/scripts/Cg8SIDnK.chunk.js +0 -8
- package/dist/scripts/Cg8SIDnK.chunk.js.map +0 -1
- package/dist/scripts/Cib9o4sK.chunk.js +0 -2
- package/dist/scripts/Cib9o4sK.chunk.js.map +0 -1
- package/dist/scripts/Ciyuu-YU.chunk.js +0 -356
- package/dist/scripts/Ciyuu-YU.chunk.js.map +0 -1
- package/dist/scripts/CkMhHhda.chunk.js +0 -2
- package/dist/scripts/CkMhHhda.chunk.js.map +0 -1
- package/dist/scripts/CmAQo6rx.chunk.js +0 -2
- package/dist/scripts/CmAQo6rx.chunk.js.map +0 -1
- package/dist/scripts/CmcmWGL0.chunk.js +0 -2
- package/dist/scripts/CmcmWGL0.chunk.js.map +0 -1
- package/dist/scripts/Cmu1J2M7.chunk.js +0 -262
- package/dist/scripts/Cmu1J2M7.chunk.js.map +0 -1
- package/dist/scripts/CrkRNOU9.chunk.js +0 -2
- package/dist/scripts/CrkRNOU9.chunk.js.map +0 -1
- package/dist/scripts/CskJerl_.chunk.js +0 -2
- package/dist/scripts/CskJerl_.chunk.js.map +0 -1
- package/dist/scripts/Ct_IIxaS.chunk.js +0 -2
- package/dist/scripts/Ct_IIxaS.chunk.js.map +0 -1
- package/dist/scripts/Cuuw0EUi.chunk.js +0 -8
- package/dist/scripts/Cuuw0EUi.chunk.js.map +0 -1
- package/dist/scripts/Cz45aonc.chunk.js +0 -2
- package/dist/scripts/Cz45aonc.chunk.js.map +0 -1
- package/dist/scripts/D-I94wdL.chunk.js +0 -7
- package/dist/scripts/D-I94wdL.chunk.js.map +0 -1
- package/dist/scripts/D0UlXsF8.chunk.js +0 -2
- package/dist/scripts/D0UlXsF8.chunk.js.map +0 -1
- package/dist/scripts/D0cZC7S-.chunk.js +0 -2
- package/dist/scripts/D0cZC7S-.chunk.js.map +0 -1
- package/dist/scripts/D1D6Gqx1.chunk.js +0 -2
- package/dist/scripts/D1D6Gqx1.chunk.js.map +0 -1
- package/dist/scripts/D3tziVkG.chunk.js +0 -2
- package/dist/scripts/D3tziVkG.chunk.js.map +0 -1
- package/dist/scripts/D4MOOnR6.chunk.js +0 -2
- package/dist/scripts/D4MOOnR6.chunk.js.map +0 -1
- package/dist/scripts/D83kc0Wf.chunk.js +0 -2
- package/dist/scripts/D83kc0Wf.chunk.js.map +0 -1
- package/dist/scripts/D8dAIhzO.chunk.js +0 -2
- package/dist/scripts/D8dAIhzO.chunk.js.map +0 -1
- package/dist/scripts/DBp0J6X9.chunk.js +0 -2
- package/dist/scripts/DBp0J6X9.chunk.js.map +0 -1
- package/dist/scripts/DCds0mCy.chunk.js +0 -2
- package/dist/scripts/DCds0mCy.chunk.js.map +0 -1
- package/dist/scripts/DEwFBSVv.chunk.js +0 -2
- package/dist/scripts/DEwFBSVv.chunk.js.map +0 -1
- package/dist/scripts/DF55CDS8.chunk.js +0 -2
- package/dist/scripts/DF55CDS8.chunk.js.map +0 -1
- package/dist/scripts/DFw_xy-Y.chunk.js +0 -2
- package/dist/scripts/DFw_xy-Y.chunk.js.map +0 -1
- package/dist/scripts/DIGYepWa.chunk.js +0 -2
- package/dist/scripts/DIGYepWa.chunk.js.map +0 -1
- package/dist/scripts/DKeFeMvi.chunk.js +0 -2
- package/dist/scripts/DKeFeMvi.chunk.js.map +0 -1
- package/dist/scripts/DKqLfL60.chunk.js +0 -5
- package/dist/scripts/DKqLfL60.chunk.js.map +0 -1
- package/dist/scripts/DLJB8vZh.chunk.js +0 -2
- package/dist/scripts/DLJB8vZh.chunk.js.map +0 -1
- package/dist/scripts/DNtSrq_L.chunk.js +0 -2
- package/dist/scripts/DNtSrq_L.chunk.js.map +0 -1
- package/dist/scripts/DOHPsm0Q.chunk.js +0 -2
- package/dist/scripts/DOHPsm0Q.chunk.js.map +0 -1
- package/dist/scripts/DP-ErTOD.chunk.js +0 -2
- package/dist/scripts/DP-ErTOD.chunk.js.map +0 -1
- package/dist/scripts/DUwkrIwb.chunk.js +0 -2
- package/dist/scripts/DUwkrIwb.chunk.js.map +0 -1
- package/dist/scripts/DUyJfVnL.chunk.js +0 -2
- package/dist/scripts/DUyJfVnL.chunk.js.map +0 -1
- package/dist/scripts/DVfbSloY.chunk.js +0 -2
- package/dist/scripts/DVfbSloY.chunk.js.map +0 -1
- package/dist/scripts/DWvpibWQ.chunk.js +0 -2
- package/dist/scripts/DWvpibWQ.chunk.js.map +0 -1
- package/dist/scripts/DYmgSjx-.chunk.js +0 -10
- package/dist/scripts/DYmgSjx-.chunk.js.map +0 -1
- package/dist/scripts/D_EfITTc.chunk.js +0 -2
- package/dist/scripts/D_EfITTc.chunk.js.map +0 -1
- package/dist/scripts/DayWKE6G.chunk.js +0 -2
- package/dist/scripts/DayWKE6G.chunk.js.map +0 -1
- package/dist/scripts/DcOpKno_.chunk.js +0 -2
- package/dist/scripts/DcOpKno_.chunk.js.map +0 -1
- package/dist/scripts/DgMPP2NS.chunk.js +0 -2
- package/dist/scripts/DgMPP2NS.chunk.js.map +0 -1
- package/dist/scripts/DhWvZ3GP.chunk.js +0 -2
- package/dist/scripts/DhWvZ3GP.chunk.js.map +0 -1
- package/dist/scripts/Digrmnl9.chunk.js +0 -2
- package/dist/scripts/Digrmnl9.chunk.js.map +0 -1
- package/dist/scripts/DjWOPQVv.chunk.js +0 -2
- package/dist/scripts/DjWOPQVv.chunk.js.map +0 -1
- package/dist/scripts/DkSHJqHu.chunk.js +0 -2
- package/dist/scripts/DkSHJqHu.chunk.js.map +0 -1
- package/dist/scripts/Dpq10cRY.chunk.js +0 -2
- package/dist/scripts/Dpq10cRY.chunk.js.map +0 -1
- package/dist/scripts/DrsDxQ8i.chunk.js +0 -2
- package/dist/scripts/DrsDxQ8i.chunk.js.map +0 -1
- package/dist/scripts/DrsVPpSl.chunk.js +0 -3
- package/dist/scripts/DrsVPpSl.chunk.js.map +0 -1
- package/dist/scripts/DvDdiDQN.chunk.js +0 -7
- package/dist/scripts/DvDdiDQN.chunk.js.map +0 -1
- package/dist/scripts/DwU9lZgg.chunk.js +0 -2
- package/dist/scripts/DwU9lZgg.chunk.js.map +0 -1
- package/dist/scripts/I8EoNmf8.chunk.js +0 -2
- package/dist/scripts/I8EoNmf8.chunk.js.map +0 -1
- package/dist/scripts/Im8afRMN.chunk.js +0 -2
- package/dist/scripts/Im8afRMN.chunk.js.map +0 -1
- package/dist/scripts/N_QgBckB.chunk.js +0 -2
- package/dist/scripts/N_QgBckB.chunk.js.map +0 -1
- package/dist/scripts/SnHtKbiQ.chunk.js +0 -2
- package/dist/scripts/SnHtKbiQ.chunk.js.map +0 -1
- package/dist/scripts/U-eF69sj.chunk.js +0 -2
- package/dist/scripts/U-eF69sj.chunk.js.map +0 -1
- package/dist/scripts/XarUQJMp.chunk.js +0 -2
- package/dist/scripts/XarUQJMp.chunk.js.map +0 -1
- package/dist/scripts/ZYx7Po5r.chunk.js +0 -2
- package/dist/scripts/ZYx7Po5r.chunk.js.map +0 -1
- package/dist/scripts/app-DfSv_-O3.js +0 -220
- package/dist/scripts/app-DfSv_-O3.js.map +0 -1
- package/dist/scripts/awsfwCdu.chunk.js +0 -2
- package/dist/scripts/awsfwCdu.chunk.js.map +0 -1
- package/dist/scripts/b1pZWz43.chunk.js +0 -2
- package/dist/scripts/b1pZWz43.chunk.js.map +0 -1
- package/dist/scripts/cvX-F_mx.chunk.js +0 -2
- package/dist/scripts/cvX-F_mx.chunk.js.map +0 -1
- package/dist/scripts/lBHPAFYv.chunk.js +0 -2
- package/dist/scripts/lBHPAFYv.chunk.js.map +0 -1
- package/dist/scripts/mP-Ymt5z.chunk.js +0 -2
- package/dist/scripts/mP-Ymt5z.chunk.js.map +0 -1
- package/dist/scripts/nay4aGaa.chunk.js +0 -2
- package/dist/scripts/nay4aGaa.chunk.js.map +0 -1
- package/dist/scripts/pkzD5BEm.chunk.js +0 -2
- package/dist/scripts/pkzD5BEm.chunk.js.map +0 -1
- package/dist/scripts/tHf2V3t0.chunk.js +0 -2
- package/dist/scripts/tHf2V3t0.chunk.js.map +0 -1
- package/vite.config.ts +0 -6
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{o as u,s as j,r as C,P as H,D as o,j as n,G as M,J as I,c as v,z as g,F as L}from"./app-DfSv_-O3.js";import{S as N,C as s,a as y,T}from"./DUyJfVnL.chunk.js";import{S as _}from"./BjOv-usB.chunk.js";import{L as k}from"./B8qPNVvK.chunk.js";import"./DKqLfL60.chunk.js";import"./DwU9lZgg.chunk.js";import"./CZafJWQk.chunk.js";import"./DLJB8vZh.chunk.js";import"./C-7yn3rc.chunk.js";import"./C36-3UWl.chunk.js";import"./nay4aGaa.chunk.js";import"./BwDmMfAz.chunk.js";import"./BwgQZkdi.chunk.js";import"./CEmtkty-.chunk.js";const w="_modalWidth_t2uj7_1",A={modalWidth:w},P="specialEventCalendar.eventListPopup",z=v.encloseNamespace(P),R=400,U=300;function te(t){var l,m;const i=u(j.streamablePresentation()),{hasPermissions:f}=C(),h=f(H.StudentExperience),S=new Date(t.from),D=new Date(t.to),r=u(((l=i.data)==null?void 0:l.id)&&k.calendarLivestreams({from:o.format(S,"YYYY-MM-DD"),to:o.format(D,"YYYY-MM-DD")})),c=((m=r.data)==null?void 0:m.filter(e=>e.startDate===o.format(new Date(t.date),"YYYY-MM-DD")))||[];function x(e){return h||s.isPastEvent(e)?"pastActionLabel":"actionLabel"}function b(e){var a;return g.createUrl((a=e.company.banner)==null?void 0:a.url,{size:L.Large})}function E(e){var a;return g.createUrl((a=e.company.logo)==null?void 0:a.url,{size:L.Small})}return n.jsxs(M,{title:`Events on ${_.getOrdinalDate(t.date)}`,closePopup:t.closePopup,dialogClassName:A.modalWidth,bodyClassName:"p-0",showLoadingSpinner:!r.data,children:[n.jsx(I.Scrollbars,{autoHeight:!0,autoHeightMin:U,autoHeightMax:R,children:n.jsx("div",{className:"px-3 pt-2",children:c.map((e,a)=>{var p;return n.jsx(N,{getAppLink:y().event,event:e,onClick:t.closePopup,inPopup:!0,presentationId:(p=i.data)==null?void 0:p.id,getActionLabel:()=>z(x(e.content)),getBackgroundColor:Y=>{var d;return(d=Y.company.metadata)==null?void 0:d.colour},getBannerUrl:b,getIconUrl:E,getStartTime:s.isSameTime(c,a)?null:s.getStartTime,isPastEvent:s.isPastEvent},e.content.id)})})}),n.jsxs("div",{className:"d-flex justify-content-between align-items-center p-3 border-top",children:[n.jsx(T,{}),n.jsx("button",{onClick:t.closePopup,className:"btn btn-outline-dark",children:v.getPhrase(P,"close")})]})]})}export{te as SpecialEventListView};
|
|
2
|
-
//# sourceMappingURL=CkMhHhda.chunk.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CkMhHhda.chunk.js","sources":["../../src/apps/calendar/views/special-event-list-view/SpecialEventListView.tsx"],"sourcesContent":["import React from 'react';\nimport { Scrollbars } from 'react-custom-scrollbars-2';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { SpecialEventListItem } from 'libs/shared/apps/calendar/components/special-event-list-item/SpecialEventListItem';\nimport { SpecialEventHelper } from 'libs/shared/apps/calendar/utils/SpecialEventHelper';\nimport { TimezoneIndicator } from 'libs/shared/apps/streamable-learning/components/timezone-indicator/TimezoneIndicator';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { Livestream, PopupViewProps, Presentation } from 'libs/shared/interfaces';\nimport { CalendarEvent } from 'libs/shared/interfaces';\nimport { ImageHelper } from 'libs/shared/utils/ImageHelper';\n\nimport { LivestreamRequests } from 'shared/flight-requests/LivestreamRequests';\nimport { PresentationRequests } from 'shared/flight-requests/PresentationRequests';\n\nimport { CalendarUtils } from 'apps/calendar/utils/CalendarUtils';\nimport { getCalendarAppLinks } from 'apps/calendar/views/calendar-view/CalendarViewUtils';\n\nimport styles from './special-event-list-view.module.scss';\n\nconst namespace = 'specialEventCalendar.eventListPopup';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst SCROLL_HEIGHT_MAX = 400;// in px\nconst SCROLL_HEIGHT_MIN = 300;// in px\nexport interface SpecialEventsViewQueryParams extends PopupViewProps {\n from: string;\n to: string;\n date: string;\n}\n\nexport function SpecialEventListView(props: SpecialEventsViewQueryParams): JSX.Element {\n const presentation = Flight.useBasicFetch<Presentation>(\n PresentationRequests.streamablePresentation()\n );\n\n const { hasPermissions } = usePermissions();\n const isStudent = hasPermissions(PermissionName.StudentExperience);\n \n const fromDate = new Date(props.from);\n const toDate = new Date(props.to);\n\n const events = Flight.useBasicFetch<CalendarEvent<Livestream>[]>(presentation.data?.id\n && LivestreamRequests.calendarLivestreams({ from: DateHelper.format(fromDate, 'YYYY-MM-DD'), to: DateHelper.format(toDate, 'YYYY-MM-DD') }));\n const eventsOnDay = events.data?.filter(e => e.startDate === DateHelper.format(new Date(props.date), 'YYYY-MM-DD')) || [];\n\n function getActionLabel(livestream: Livestream): string {\n return isStudent || CalendarUtils.isPastEvent(livestream) ? 'pastActionLabel' : 'actionLabel';\n }\n\n function getBannerUrl(content: Livestream) {\n return ImageHelper.createUrl(content.company.banner?.url, { size: ImageSize.Large });\n }\n\n function getIconUrl(content: Livestream) {\n return ImageHelper.createUrl(content.company.logo?.url, { size: ImageSize.Small });\n }\n\n return (\n <Popup\n title={`Events on ${SpecialEventHelper.getOrdinalDate(props.date)}`}\n closePopup={props.closePopup}\n dialogClassName={styles.modalWidth}\n bodyClassName={'p-0'}\n showLoadingSpinner={!events.data}\n >\n <Scrollbars\n autoHeight\n autoHeightMin={SCROLL_HEIGHT_MIN}\n autoHeightMax={SCROLL_HEIGHT_MAX}\n >\n <div className='px-3 pt-2'>\n {eventsOnDay.map((e, i) => (\n <SpecialEventListItem\n key={e.content.id}\n getAppLink={getCalendarAppLinks().event}\n event={e}\n onClick={props.closePopup}\n inPopup\n presentationId={presentation.data?.id}\n getActionLabel={() => getPhrase(getActionLabel(e.content))}\n getBackgroundColor={(content: Livestream) => content.company.metadata?.colour}\n getBannerUrl={getBannerUrl}\n getIconUrl={getIconUrl}\n getStartTime={!CalendarUtils.isSameTime(eventsOnDay, i) ? CalendarUtils.getStartTime : null}\n isPastEvent={CalendarUtils.isPastEvent}\n />\n ))}\n </div>\n </Scrollbars>\n <div className='d-flex justify-content-between align-items-center p-3 border-top'>\n <TimezoneIndicator />\n <button\n onClick={props.closePopup}\n className='btn btn-outline-dark'\n >\n {LanguageService.getPhrase(namespace, 'close')}\n </button>\n </div>\n </Popup>\n\n );\n}"],"names":["namespace","getPhrase","LanguageService","SCROLL_HEIGHT_MAX","SCROLL_HEIGHT_MIN","SpecialEventListView","props","presentation","Flight.useBasicFetch","PresentationRequests","hasPermissions","usePermissions","isStudent","PermissionName","fromDate","toDate","events","_a","LivestreamRequests","DateHelper","eventsOnDay","_b","getActionLabel","livestream","CalendarUtils","getBannerUrl","content","ImageHelper","ImageSize","getIconUrl","jsxs","Popup","SpecialEventHelper","styles","jsx","Scrollbars","i","SpecialEventListItem","getCalendarAppLinks","TimezoneIndicator"],"mappings":"2jBA0BMA,EAAY,sCACZC,EAAYC,EAAgB,iBAAiBF,CAAS,EAEtDG,EAAoB,IACpBC,EAAoB,IAOnB,SAASC,GAAqBC,EAAkD,SACrF,MAAMC,EAAeC,EACnBC,EAAqB,uBAAA,CAAuB,EAGxC,CAAE,eAAAC,CAAA,EAAmBC,EAAA,EACrBC,EAAYF,EAAeG,EAAe,iBAAiB,EAE3DC,EAAW,IAAI,KAAKR,EAAM,IAAI,EAC9BS,EAAS,IAAI,KAAKT,EAAM,EAAE,EAE1BU,EAASR,IAAkDS,EAAAV,EAAa,OAAb,YAAAU,EAAmB,KAC/EC,EAAmB,oBAAoB,CAAE,KAAMC,EAAW,OAAOL,EAAU,YAAY,EAAG,GAAIK,EAAW,OAAOJ,EAAQ,YAAY,CAAA,CAAG,CAAC,EACvIK,IAAcC,EAAAL,EAAO,OAAP,YAAAK,EAAa,OAAO,GAAK,EAAE,YAAcF,EAAW,OAAO,IAAI,KAAKb,EAAM,IAAI,EAAG,YAAY,KAAM,CAAA,EAEvH,SAASgB,EAAeC,EAAgC,CACtD,OAAOX,GAAaY,EAAc,YAAYD,CAAU,EAAI,kBAAoB,aAClF,CAEA,SAASE,EAAaC,EAAqB,OACzC,OAAOC,EAAY,WAAUV,EAAAS,EAAQ,QAAQ,SAAhB,YAAAT,EAAwB,IAAK,CAAE,KAAMW,EAAU,MAAO,CACrF,CAEA,SAASC,EAAWH,EAAqB,OACvC,OAAOC,EAAY,WAAUV,EAAAS,EAAQ,QAAQ,OAAhB,YAAAT,EAAsB,IAAK,CAAE,KAAMW,EAAU,MAAO,CACnF,CAEA,OACEE,EAAAA,KAACC,EAAA,CACC,MAAO,aAAaC,EAAmB,eAAe1B,EAAM,IAAI,CAAC,GACjE,WAAYA,EAAM,WAClB,gBAAiB2B,EAAO,WACxB,cAAe,MACf,mBAAoB,CAACjB,EAAO,KAE5B,SAAA,CAAAkB,EAAAA,IAACC,EAAAA,WAAA,CACC,WAAU,GACV,cAAe/B,EACf,cAAeD,EAEf,SAAA+B,EAAAA,IAAC,OAAI,UAAU,YACZ,WAAY,IAAI,CAAC,EAAGE,IAAA,OACnBF,OAAAA,EAAAA,IAACG,EAAA,CAEC,WAAYC,IAAsB,MAClC,MAAO,EACP,QAAShC,EAAM,WACf,QAAO,GACP,gBAAgBW,EAAAV,EAAa,OAAb,YAAAU,EAAmB,GACnC,eAAgB,IAAMhB,EAAUqB,EAAe,EAAE,OAAO,CAAC,EACzD,mBAAqBI,GAAA,OAAwB,OAAAT,EAAAS,EAAQ,QAAQ,WAAhB,YAAAT,EAA0B,QACvE,aAAAQ,EACA,WAAAI,EACA,aAAeL,EAAc,WAAWJ,EAAagB,CAAC,EAAiC,KAA7BZ,EAAc,aACxE,YAAaA,EAAc,WAAA,EAXtB,EAAE,QAAQ,EAAA,EAalB,CAAA,CACH,CAAA,CAAA,EAEFM,EAAAA,KAAC,MAAA,CAAI,UAAU,mEACb,SAAA,CAAAI,EAAAA,IAACK,EAAA,EAAkB,EACnBL,EAAAA,IAAC,SAAA,CACC,QAAS5B,EAAM,WACf,UAAU,uBAET,SAAAJ,EAAgB,UAAUF,EAAW,OAAO,CAAA,CAAA,CAC/C,CAAA,CACF,CAAA,CAAA,CAAA,CAIN"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{ah as Se,a5 as M,b0 as _e,b1 as ve,b2 as xe,S as Ie,ac as U,R as S,j as f,b3 as le,b4 as ce,b5 as ue,aw as de,ae as H,b6 as Te,k as Ae,f as we}from"./app-DfSv_-O3.js";import{F as X}from"./DP-ErTOD.chunk.js";var z={exports:{}},ee;function Ee(){return ee||(ee=1,(function(t,o){(function(s){t.exports=s()})(function(s){var u=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"];function c(l,a){var n=l[0],e=l[1],i=l[2],r=l[3];n+=(e&i|~e&r)+a[0]-680876936|0,n=(n<<7|n>>>25)+e|0,r+=(n&e|~n&i)+a[1]-389564586|0,r=(r<<12|r>>>20)+n|0,i+=(r&n|~r&e)+a[2]+606105819|0,i=(i<<17|i>>>15)+r|0,e+=(i&r|~i&n)+a[3]-1044525330|0,e=(e<<22|e>>>10)+i|0,n+=(e&i|~e&r)+a[4]-176418897|0,n=(n<<7|n>>>25)+e|0,r+=(n&e|~n&i)+a[5]+1200080426|0,r=(r<<12|r>>>20)+n|0,i+=(r&n|~r&e)+a[6]-1473231341|0,i=(i<<17|i>>>15)+r|0,e+=(i&r|~i&n)+a[7]-45705983|0,e=(e<<22|e>>>10)+i|0,n+=(e&i|~e&r)+a[8]+1770035416|0,n=(n<<7|n>>>25)+e|0,r+=(n&e|~n&i)+a[9]-1958414417|0,r=(r<<12|r>>>20)+n|0,i+=(r&n|~r&e)+a[10]-42063|0,i=(i<<17|i>>>15)+r|0,e+=(i&r|~i&n)+a[11]-1990404162|0,e=(e<<22|e>>>10)+i|0,n+=(e&i|~e&r)+a[12]+1804603682|0,n=(n<<7|n>>>25)+e|0,r+=(n&e|~n&i)+a[13]-40341101|0,r=(r<<12|r>>>20)+n|0,i+=(r&n|~r&e)+a[14]-1502002290|0,i=(i<<17|i>>>15)+r|0,e+=(i&r|~i&n)+a[15]+1236535329|0,e=(e<<22|e>>>10)+i|0,n+=(e&r|i&~r)+a[1]-165796510|0,n=(n<<5|n>>>27)+e|0,r+=(n&i|e&~i)+a[6]-1069501632|0,r=(r<<9|r>>>23)+n|0,i+=(r&e|n&~e)+a[11]+643717713|0,i=(i<<14|i>>>18)+r|0,e+=(i&n|r&~n)+a[0]-373897302|0,e=(e<<20|e>>>12)+i|0,n+=(e&r|i&~r)+a[5]-701558691|0,n=(n<<5|n>>>27)+e|0,r+=(n&i|e&~i)+a[10]+38016083|0,r=(r<<9|r>>>23)+n|0,i+=(r&e|n&~e)+a[15]-660478335|0,i=(i<<14|i>>>18)+r|0,e+=(i&n|r&~n)+a[4]-405537848|0,e=(e<<20|e>>>12)+i|0,n+=(e&r|i&~r)+a[9]+568446438|0,n=(n<<5|n>>>27)+e|0,r+=(n&i|e&~i)+a[14]-1019803690|0,r=(r<<9|r>>>23)+n|0,i+=(r&e|n&~e)+a[3]-187363961|0,i=(i<<14|i>>>18)+r|0,e+=(i&n|r&~n)+a[8]+1163531501|0,e=(e<<20|e>>>12)+i|0,n+=(e&r|i&~r)+a[13]-1444681467|0,n=(n<<5|n>>>27)+e|0,r+=(n&i|e&~i)+a[2]-51403784|0,r=(r<<9|r>>>23)+n|0,i+=(r&e|n&~e)+a[7]+1735328473|0,i=(i<<14|i>>>18)+r|0,e+=(i&n|r&~n)+a[12]-1926607734|0,e=(e<<20|e>>>12)+i|0,n+=(e^i^r)+a[5]-378558|0,n=(n<<4|n>>>28)+e|0,r+=(n^e^i)+a[8]-2022574463|0,r=(r<<11|r>>>21)+n|0,i+=(r^n^e)+a[11]+1839030562|0,i=(i<<16|i>>>16)+r|0,e+=(i^r^n)+a[14]-35309556|0,e=(e<<23|e>>>9)+i|0,n+=(e^i^r)+a[1]-1530992060|0,n=(n<<4|n>>>28)+e|0,r+=(n^e^i)+a[4]+1272893353|0,r=(r<<11|r>>>21)+n|0,i+=(r^n^e)+a[7]-155497632|0,i=(i<<16|i>>>16)+r|0,e+=(i^r^n)+a[10]-1094730640|0,e=(e<<23|e>>>9)+i|0,n+=(e^i^r)+a[13]+681279174|0,n=(n<<4|n>>>28)+e|0,r+=(n^e^i)+a[0]-358537222|0,r=(r<<11|r>>>21)+n|0,i+=(r^n^e)+a[3]-722521979|0,i=(i<<16|i>>>16)+r|0,e+=(i^r^n)+a[6]+76029189|0,e=(e<<23|e>>>9)+i|0,n+=(e^i^r)+a[9]-640364487|0,n=(n<<4|n>>>28)+e|0,r+=(n^e^i)+a[12]-421815835|0,r=(r<<11|r>>>21)+n|0,i+=(r^n^e)+a[15]+530742520|0,i=(i<<16|i>>>16)+r|0,e+=(i^r^n)+a[2]-995338651|0,e=(e<<23|e>>>9)+i|0,n+=(i^(e|~r))+a[0]-198630844|0,n=(n<<6|n>>>26)+e|0,r+=(e^(n|~i))+a[7]+1126891415|0,r=(r<<10|r>>>22)+n|0,i+=(n^(r|~e))+a[14]-1416354905|0,i=(i<<15|i>>>17)+r|0,e+=(r^(i|~n))+a[5]-57434055|0,e=(e<<21|e>>>11)+i|0,n+=(i^(e|~r))+a[12]+1700485571|0,n=(n<<6|n>>>26)+e|0,r+=(e^(n|~i))+a[3]-1894986606|0,r=(r<<10|r>>>22)+n|0,i+=(n^(r|~e))+a[10]-1051523|0,i=(i<<15|i>>>17)+r|0,e+=(r^(i|~n))+a[1]-2054922799|0,e=(e<<21|e>>>11)+i|0,n+=(i^(e|~r))+a[8]+1873313359|0,n=(n<<6|n>>>26)+e|0,r+=(e^(n|~i))+a[15]-30611744|0,r=(r<<10|r>>>22)+n|0,i+=(n^(r|~e))+a[6]-1560198380|0,i=(i<<15|i>>>17)+r|0,e+=(r^(i|~n))+a[13]+1309151649|0,e=(e<<21|e>>>11)+i|0,n+=(i^(e|~r))+a[4]-145523070|0,n=(n<<6|n>>>26)+e|0,r+=(e^(n|~i))+a[11]-1120210379|0,r=(r<<10|r>>>22)+n|0,i+=(n^(r|~e))+a[2]+718787259|0,i=(i<<15|i>>>17)+r|0,e+=(r^(i|~n))+a[9]-343485551|0,e=(e<<21|e>>>11)+i|0,l[0]=n+l[0]|0,l[1]=e+l[1]|0,l[2]=i+l[2]|0,l[3]=r+l[3]|0}function d(l){var a=[],n;for(n=0;n<64;n+=4)a[n>>2]=l.charCodeAt(n)+(l.charCodeAt(n+1)<<8)+(l.charCodeAt(n+2)<<16)+(l.charCodeAt(n+3)<<24);return a}function h(l){var a=[],n;for(n=0;n<64;n+=4)a[n>>2]=l[n]+(l[n+1]<<8)+(l[n+2]<<16)+(l[n+3]<<24);return a}function y(l){var a=l.length,n=[1732584193,-271733879,-1732584194,271733878],e,i,r,A,L,P;for(e=64;e<=a;e+=64)c(n,d(l.substring(e-64,e)));for(l=l.substring(e-64),i=l.length,r=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],e=0;e<i;e+=1)r[e>>2]|=l.charCodeAt(e)<<(e%4<<3);if(r[e>>2]|=128<<(e%4<<3),e>55)for(c(n,r),e=0;e<16;e+=1)r[e]=0;return A=a*8,A=A.toString(16).match(/(.*?)(.{0,8})$/),L=parseInt(A[2],16),P=parseInt(A[1],16)||0,r[14]=L,r[15]=P,c(n,r),n}function m(l){var a=l.length,n=[1732584193,-271733879,-1732584194,271733878],e,i,r,A,L,P;for(e=64;e<=a;e+=64)c(n,h(l.subarray(e-64,e)));for(l=e-64<a?l.subarray(e-64):new Uint8Array(0),i=l.length,r=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],e=0;e<i;e+=1)r[e>>2]|=l[e]<<(e%4<<3);if(r[e>>2]|=128<<(e%4<<3),e>55)for(c(n,r),e=0;e<16;e+=1)r[e]=0;return A=a*8,A=A.toString(16).match(/(.*?)(.{0,8})$/),L=parseInt(A[2],16),P=parseInt(A[1],16)||0,r[14]=L,r[15]=P,c(n,r),n}function _(l){var a="",n;for(n=0;n<4;n+=1)a+=u[l>>n*8+4&15]+u[l>>n*8&15];return a}function g(l){var a;for(a=0;a<l.length;a+=1)l[a]=_(l[a]);return l.join("")}g(y("hello")),typeof ArrayBuffer<"u"&&!ArrayBuffer.prototype.slice&&(function(){function l(a,n){return a=a|0||0,a<0?Math.max(a+n,0):Math.min(a,n)}ArrayBuffer.prototype.slice=function(a,n){var e=this.byteLength,i=l(a,e),r=e,A,L,P,j;return n!==s&&(r=l(n,e)),i>r?new ArrayBuffer(0):(A=r-i,L=new ArrayBuffer(A),P=new Uint8Array(L),j=new Uint8Array(this,i,A),P.set(j),L)}})();function b(l){return/[\u0080-\uFFFF]/.test(l)&&(l=unescape(encodeURIComponent(l))),l}function T(l,a){var n=l.length,e=new ArrayBuffer(n),i=new Uint8Array(e),r;for(r=0;r<n;r+=1)i[r]=l.charCodeAt(r);return a?i:e}function w(l){return String.fromCharCode.apply(null,new Uint8Array(l))}function v(l,a,n){var e=new Uint8Array(l.byteLength+a.byteLength);return e.set(new Uint8Array(l)),e.set(new Uint8Array(a),l.byteLength),e}function E(l){var a=[],n=l.length,e;for(e=0;e<n-1;e+=2)a.push(parseInt(l.substr(e,2),16));return String.fromCharCode.apply(String,a)}function p(){this.reset()}return p.prototype.append=function(l){return this.appendBinary(b(l)),this},p.prototype.appendBinary=function(l){this._buff+=l,this._length+=l.length;var a=this._buff.length,n;for(n=64;n<=a;n+=64)c(this._hash,d(this._buff.substring(n-64,n)));return this._buff=this._buff.substring(n-64),this},p.prototype.end=function(l){var a=this._buff,n=a.length,e,i=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],r;for(e=0;e<n;e+=1)i[e>>2]|=a.charCodeAt(e)<<(e%4<<3);return this._finish(i,n),r=g(this._hash),l&&(r=E(r)),this.reset(),r},p.prototype.reset=function(){return this._buff="",this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},p.prototype.getState=function(){return{buff:this._buff,length:this._length,hash:this._hash.slice()}},p.prototype.setState=function(l){return this._buff=l.buff,this._length=l.length,this._hash=l.hash,this},p.prototype.destroy=function(){delete this._hash,delete this._buff,delete this._length},p.prototype._finish=function(l,a){var n=a,e,i,r;if(l[n>>2]|=128<<(n%4<<3),n>55)for(c(this._hash,l),n=0;n<16;n+=1)l[n]=0;e=this._length*8,e=e.toString(16).match(/(.*?)(.{0,8})$/),i=parseInt(e[2],16),r=parseInt(e[1],16)||0,l[14]=i,l[15]=r,c(this._hash,l)},p.hash=function(l,a){return p.hashBinary(b(l),a)},p.hashBinary=function(l,a){var n=y(l),e=g(n);return a?E(e):e},p.ArrayBuffer=function(){this.reset()},p.ArrayBuffer.prototype.append=function(l){var a=v(this._buff.buffer,l),n=a.length,e;for(this._length+=l.byteLength,e=64;e<=n;e+=64)c(this._hash,h(a.subarray(e-64,e)));return this._buff=e-64<n?new Uint8Array(a.buffer.slice(e-64)):new Uint8Array(0),this},p.ArrayBuffer.prototype.end=function(l){var a=this._buff,n=a.length,e=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],i,r;for(i=0;i<n;i+=1)e[i>>2]|=a[i]<<(i%4<<3);return this._finish(e,n),r=g(this._hash),l&&(r=E(r)),this.reset(),r},p.ArrayBuffer.prototype.reset=function(){return this._buff=new Uint8Array(0),this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},p.ArrayBuffer.prototype.getState=function(){var l=p.prototype.getState.call(this);return l.buff=w(l.buff),l},p.ArrayBuffer.prototype.setState=function(l){return l.buff=T(l.buff,!0),p.prototype.setState.call(this,l)},p.ArrayBuffer.prototype.destroy=p.prototype.destroy,p.ArrayBuffer.prototype._finish=p.prototype._finish,p.ArrayBuffer.hash=function(l,a){var n=m(new Uint8Array(l)),e=g(n);return a?E(e):e},p})})(z)),z.exports}var Le=Ee();const Pe=Se(Le),te={secondary:{label:"Secondary",isTertiary:!1},"primary & secondary":{label:"Primary & Secondary",isTertiary:!1},k12:{label:"Primary & Secondary",isTertiary:!1},primary:{label:"Primary",isTertiary:!1},special:{label:"Special",isTertiary:!1},university:{label:"University",isTertiary:!0},middle:{label:"Middle",isTertiary:!1},"fe college":{label:"FE College",isTertiary:!0},"high school":{label:"Secondary",isTertiary:!1},elementary:{label:"Primary",isTertiary:!1},"middle school":{label:"Middle",isTertiary:!1},tafe:{label:"TAFE",isTertiary:!0},college:{label:"FE College",isTertiary:!0},"sixth form college":{label:"Sixth Form College",isTertiary:!0}},je={england:"ENG",scotland:"SCT",wales:"WLS","northern ireland":"NIR"},Ne={hashedEmail(t){const o=t.trim().toLowerCase();return Pe.hash(o)},removeEmptyKeys(t){if(Array.isArray(t))return t;const o={...t};return Object.entries(o).filter(([,s])=>!(s==null||typeof s=="string"&&!s.length)).reduce((s,[u,c])=>({...s,[u]:c===Object(c)?Ne.removeEmptyKeys(c):c}),{})},EVENT_TOPIC:"Free Trial Request",BDM_EVENT_TOPIC:"Requested free trial (Streamable Customer)",SOURCE:"cv_product_trial_requested",BDM_SOURCE:"cv_product_bdm_trial_requested",TRIAL_UPGRADE_SOURCE:"cv_product_trial_upgrade_requested",getSchoolType(t){var u;if(!t)return;const o=t.toLowerCase();if(["unknown","other"].includes(o))return;const s=(u=te[o])==null?void 0:u.label;return s||t},isTertiarySchool(t){var o;return((o=te[t==null?void 0:t.toLowerCase()])==null?void 0:o.isTertiary)||!1},parseProvince(t){return t.length?je[t.toLowerCase()]||t:""}},vt={checkEmail(t){return{url:"/api/braze/check-email",key:`braze:check:email:${t}`,type:M.POST,data:{email:t}}},prospectLookups(t){return{url:`{gateway}/v1/prospects/${t}/lookups`,key:`prospect:lookup:${t}`}}};function xt(){return{createOrUpdateProfile:_e(ve.ProfileApiClient).createOrUpdate}}var Oe=(t=>(t.LivestreamBooking="sl_product_livestream",t.ContactUs="sl_marketing_form_contact_us",t))(Oe||{}),Ue=(t=>(t.ContactUs="Contact us",t.LivestreamBooking="Livestream booking",t))(Ue||{});function Re(t,o){return{...t,custom:{...t==null?void 0:t.custom,topic:o.topic,source:o.source},event:{...t==null?void 0:t.event,eventTopic:o.topic}}}function $e(){const t=xe(Ie.BrazeClient);function o({user:s,additionalData:u,source:c,eventType:d,topic:h,productType:y,callback:m}){const _=Re(s,{source:c,topic:h});t.setUserInit(_),t.logFormEvent({eventType:d,additionalData:u,callback:m,internalOptions:{subscriptionGroups:y}})}return{client:t,logFormSubmission:o}}function It(){return $e()}const Be=["Teacher","Librarian / Teacher Librarian","Curriculum Coordinator","Digital Technology Coordinator","SSO / SLSO","IT","Head of Department","Head of Subject","Assistant Principal","Deputy Principal","Principal","Business Manager"],De=["Teacher","Librarian / Teacher Librarian","IT/LRC","e-Learning/ICT Coordinator","Head of Key Stage","Head of Department","Subject Lead","Assistant Head Teacher","Deputy Head Teacher","Head Teacher"],he=["Teacher","Librarian / Teacher Librarian","Head of Department","Instructional Technology Specialist","Curriculum Coordinator","School Leadership","District Leadership","Academic Coach","Principal","IT / IT Specialist"],Fe=["Teacher","Librarian / Teacher Librarian","Curriculum Leader","e-Learning Coordinator","IT","Head of Department","Head of Faculty","Learning Support","Learning Assistant","Deputy Principal","Assistant Principal","Principal"],Ke=["Teacher","Librarian / Teacher Librarian","Educational Assistant (EA)","Learning Support Teacher / Resource Teacher","Department Head / Manager","Curriculum Coordinator / Consultant","School Counsellor / Guidance Counsellor","Vice-Principal","Principal","Superintendent","Director of Education"],fe=["Professor","Lecturer","Course Coordinator / Administrator","Digital Learning Manager","Tutor","Teaching Fellow","Librarian","Learning Technologist","Teaching Assistant","Researcher","IT"],Me=["Professor","Lecturer","Course Coordinator / Administrator","Digital Learning Manager","Tutor","Teaching Fellow","Librarian","Learning Technologist","Teacher","Teaching Assistant","Researcher","IT"],ze={[U.AU]:Be,[U.NZ]:Fe,[U.UK]:De,[U.US]:he,[U.CA]:Ke},Ge={[U.AU]:fe,[U.UK]:Me};function ke(t){var s;const o=(s=t.countryCode)==null?void 0:s.toLowerCase();return t.isTertiary?Ge[o]||fe:ze[o]||he}const D="OTHER";function ne(t,o){return o.includes(t)?t:t?D:""}function Tt(t){const{error:o,onChange:s,countryCode:u,isTertiary:c}=t,d=ke({countryCode:u,isTertiary:c}),h=ne(t.initialValue,d),[y,m]=S.useState(h),[_,g]=S.useState(h===D?t.initialValue:"");S.useEffect(()=>{m(ne(t.initialValue,d))},[t.initialValue]);function b(v){m(v.target.value),g(""),s(v.target.value===D?"":v.target.value)}function T(v){g(v.target.value),s(v.target.value)}const w=y===D;return f.jsxs("div",{className:"form-group",children:[f.jsxs("label",{htmlFor:t.id,className:t.labelClassName,children:["Job title",t.required&&f.jsx("span",{className:"text-danger",children:"*"})]}),f.jsxs("div",{className:"mb-2",children:[f.jsxs("select",{id:t.id,name:t.id,className:`form-select ${t.size==="lg"?"form-select-lg":""} ${y.length?"text-dark":"text-secondary"} ${!!o&&"is-invalid"}`,value:y,placeholder:"Role",onChange:b,children:[f.jsx("option",{value:"",disabled:!0,className:"text-secondary",children:t.placeholder?t.placeholder:f.jsx(f.Fragment,{children:"What do you do?"})}),d.map((v,E)=>f.jsx("option",{value:v,className:"text-dark",children:v},E)),f.jsx("option",{value:D,className:"text-dark",children:"Other"})]}),!!o&&!w&&f.jsx(X,{name:t.id,children:o})]}),w&&f.jsxs("div",{className:"mb-3",children:[f.jsx("input",{className:`form-control ${t.size==="lg"?"form-select-lg":""} ${!!o&&"is-invalid"}`,type:"text",value:_,placeholder:"What do you do?",autoFocus:!0,onChange:T}),!!o&&f.jsx(X,{name:t.id,children:o})]})]})}function He(){return f.jsx("svg",{viewBox:"0 0 24 24",children:f.jsx("path",{d:"M11.959 10.641l4.402-4.296a.964.964 0 0 1 1.358 0 .951.951 0 0 1 0 1.35l-4.403 4.297 4.403 4.378a.951.951 0 0 1 0 1.35.964.964 0 0 1-1.358 0l-4.402-4.378-4.32 4.378a.964.964 0 0 1-1.358 0 .951.951 0 0 1 0-1.35l4.32-4.378-4.32-4.362a.951.951 0 0 1 0-1.35.964.964 0 0 1 1.358 0l4.32 4.361z"})})}const qe="_clearInput_1l19p_1",Je="_clearableInput_1l19p_8",re={clearInput:qe,clearableInput:Je},ge=S.forwardRef((t,o)=>{const{onClickClear:s,showClearButton:u,clearClassName:c,...d}=t;return f.jsxs("div",{className:"position-relative",children:[f.jsx("input",{...d,ref:o,className:`${t.className} ${re.clearableInput}`}),(!!t.value||u)&&f.jsx("span",{className:`${re.clearInput} position-absolute cursor-pointer text-secondary ${c||""}`,role:"button",onClick:s,onKeyDown:h=>h.key==="Enter"&&s(),tabIndex:0,children:f.jsx("div",{className:"d-inline-block svg-container md",children:f.jsx(He,{})})})]})});var Ve=function t(o,s){if(o===s)return!0;if(o&&s&&typeof o=="object"&&typeof s=="object"){if(o.constructor!==s.constructor)return!1;var u,c,d;if(Array.isArray(o)){if(u=o.length,u!=s.length)return!1;for(c=u;c--!==0;)if(!t(o[c],s[c]))return!1;return!0}if(o.constructor===RegExp)return o.source===s.source&&o.flags===s.flags;if(o.valueOf!==Object.prototype.valueOf)return o.valueOf()===s.valueOf();if(o.toString!==Object.prototype.toString)return o.toString()===s.toString();if(d=Object.keys(o),u=d.length,u!==Object.keys(s).length)return!1;for(c=u;c--!==0;)if(!Object.prototype.hasOwnProperty.call(s,d[c]))return!1;for(c=u;c--!==0;){var h=d[c];if(!t(o[h],s[h]))return!1}return!0}return o!==o&&s!==s};const ie="__googleMapsScriptId";var B;(function(t){t[t.INITIALIZED=0]="INITIALIZED",t[t.LOADING=1]="LOADING",t[t.SUCCESS=2]="SUCCESS",t[t.FAILURE=3]="FAILURE"})(B||(B={}));class R{constructor({apiKey:o,authReferrerPolicy:s,channel:u,client:c,id:d=ie,language:h,libraries:y=[],mapIds:m,nonce:_,region:g,retries:b=3,url:T="https://maps.googleapis.com/maps/api/js",version:w}){if(this.CALLBACK="__googleMapsCallback",this.callbacks=[],this.done=!1,this.loading=!1,this.errors=[],this.apiKey=o,this.authReferrerPolicy=s,this.channel=u,this.client=c,this.id=d||ie,this.language=h,this.libraries=y,this.mapIds=m,this.nonce=_,this.region=g,this.retries=b,this.url=T,this.version=w,R.instance){if(!Ve(this.options,R.instance.options))throw new Error(`Loader must not be called again with different options. ${JSON.stringify(this.options)} !== ${JSON.stringify(R.instance.options)}`);return R.instance}R.instance=this}get options(){return{version:this.version,apiKey:this.apiKey,channel:this.channel,client:this.client,id:this.id,libraries:this.libraries,language:this.language,region:this.region,mapIds:this.mapIds,nonce:this.nonce,url:this.url,authReferrerPolicy:this.authReferrerPolicy}}get status(){return this.errors.length?B.FAILURE:this.done?B.SUCCESS:this.loading?B.LOADING:B.INITIALIZED}get failed(){return this.done&&!this.loading&&this.errors.length>=this.retries+1}createUrl(){let o=this.url;return o+=`?callback=${this.CALLBACK}`,this.apiKey&&(o+=`&key=${this.apiKey}`),this.channel&&(o+=`&channel=${this.channel}`),this.client&&(o+=`&client=${this.client}`),this.libraries.length>0&&(o+=`&libraries=${this.libraries.join(",")}`),this.language&&(o+=`&language=${this.language}`),this.region&&(o+=`®ion=${this.region}`),this.version&&(o+=`&v=${this.version}`),this.mapIds&&(o+=`&map_ids=${this.mapIds.join(",")}`),this.authReferrerPolicy&&(o+=`&auth_referrer_policy=${this.authReferrerPolicy}`),o}deleteScript(){const o=document.getElementById(this.id);o&&o.remove()}load(){return this.loadPromise()}loadPromise(){return new Promise((o,s)=>{this.loadCallback(u=>{u?s(u.error):o(window.google)})})}loadCallback(o){this.callbacks.push(o),this.execute()}setScript(){if(document.getElementById(this.id)){this.callback();return}const o=this.createUrl(),s=document.createElement("script");s.id=this.id,s.type="text/javascript",s.src=o,s.onerror=this.loadErrorCallback.bind(this),s.defer=!0,s.async=!0,this.nonce&&(s.nonce=this.nonce),document.head.appendChild(s)}reset(){this.deleteScript(),this.done=!1,this.loading=!1,this.errors=[],this.onerrorEvent=null}resetIfRetryingFailed(){this.failed&&this.reset()}loadErrorCallback(o){if(this.errors.push(o),this.errors.length<=this.retries){const s=this.errors.length*Math.pow(2,this.errors.length);console.log(`Failed to load Google Maps script, retrying in ${s} ms.`),setTimeout(()=>{this.deleteScript(),this.setScript()},s)}else this.onerrorEvent=o,this.callback()}setCallback(){window.__googleMapsCallback=this.callback.bind(this)}callback(){this.done=!0,this.loading=!1,this.callbacks.forEach(o=>{o(this.onerrorEvent)}),this.callbacks=[]}execute(){if(this.resetIfRetryingFailed(),this.done)this.callback();else{if(window.google&&window.google.maps&&window.google.maps.version){console.warn("Google Maps already loaded outside @googlemaps/js-api-loader.This may result in undesirable behavior as options and script parameters may not match."),this.callback();return}this.loading||(this.loading=!0,this.setCallback(),this.setScript())}}}function oe(t){return new R({apiKey:t.apiKey,version:"weekly",libraries:t.libraries,retries:3})}function ye(t){const o={apiKey:t.apiKey,libraries:t.libraries||["places"]},[s,u]=S.useState(!1),[c,d]=S.useState(oe(o));S.useEffect(()=>{h()},[]);function h(y,m){if(!c){d(oe(o));return}c.loadCallback(_=>{if(_){u(!1),m&&m(_);return}u(!0),y&&y()})}return{loader:c,scriptLoaded:s,onGoogleApiReady:h}}function pe(t){const{scriptLoaded:o}=ye({apiKey:t.googleApiKey}),[s,u]=S.useState();return S.useEffect(()=>{o&&u(new google.maps.places.AutocompleteService)},[o]),s}const ae="us",me="country:placeholder:text";function Ye(t){const o=le.getLocalizedLocalityPlaceholderText(t==null?void 0:t.countryCode);if(o)return o;const s=ue.cacheGet(`${me}:${t==null?void 0:t.countryCode}`);if(s)return s}function Ze(){return String.fromCharCode(96+ce.getRandomInt(26))}function We({apiKey:t,geoLocation:o,makeRequest:s=!0,template:u="E.g. [placeholder]",templateKey:c="[placeholder]"}){const d=pe({googleApiKey:t}),[h,y]=S.useState(()=>Ye(o));S.useEffect(()=>{if(h||!d||!s)return;const g=(o==null?void 0:o.countryCode)||ae,T={input:Ze(),types:["(cities)"],region:g,componentRestrictions:{country:g}};d.getPlacePredictions(T,(w,v)=>_(w,v,g))},[h,d,o,s]);function m(g,b){ue.cacheSet(`${me}:${b}`,g,86400),y(g)}function _(g,b,T){if(b!==google.maps.places.PlacesServiceStatus.OK||!g){m(le.getLocalizedLocalityPlaceholderText(ae),T);return}const w=ce.getRandomInt(g.length),v=g[w].description;m(u.replace(c,v),T)}return h}function be(t){const[o,s]=S.useState(0),u=S.useRef(null),[c,d]=S.useState(!!t.hideInitially);function h(){var g;u.current&&((g=u.current.children[o-1])==null||g.scrollIntoView({block:"center"}))}function y(g){if(t.hideOnEnter&&d(!1),g.code==="ArrowDown"){g.stopPropagation(),g.preventDefault();let b=o+1;b>t.itemCount&&(b=1),s(b),h();return}if(g.code==="ArrowUp"){g.stopPropagation(),g.preventDefault();let b=o-1;b<=0&&(b=t.itemCount),s(b),h();return}if(g.code==="Enter"&&o>0){g.stopPropagation(),g.preventDefault(),t.onSelected(o-1),t.hideOnEnter&&d(!0);return}s(0)}function m(){t.hideOnBlur&&d(!1)}function _(){t.hideOnBlur&&d(!0)}return{selectedIndex:o,onKeyDown:y,containerRef:u,hide:c,onFocus:m,onBlur:_}}const Ce={getPlaceDetails(t){let o,s,u,c;const d=t.formatted_address;for(const h of t.address_components)for(const y of h.types)y==="locality"&&(o=h.short_name),y==="administrative_area_level_1"&&(s=h.short_name),y==="postal_code"&&(c=h.short_name),y==="country"&&(u=h.short_name);return{locality:d,country:u,postalCode:c,city:o,province:s}}},Qe={1:"geocoderPermissionDenied",2:"geocoderUnavailable",3:"geocoderTimeout"};function Xe(t){const[o,s]=S.useState({}),{onGoogleApiReady:u}=ye(t);function c(){u(()=>{window.navigator.geolocation.getCurrentPosition(d,h)})}function d(y){const{latitude:m,longitude:_}=y.coords,g=new google.maps.LatLng(m,_);new google.maps.Geocoder().geocode({location:g},(T,w)=>{if(w!==google.maps.GeocoderStatus.OK)return;const v=T.find(p=>p.types.includes("locality")||p.types.includes("administrative_area_level_2")),E=Ce.getPlaceDetails(v);s({...E,longitude:_,latitude:m})})}function h(y){Qe[y.code],t.onPositionError("We are unable to access your location. Please try again later.")}return{placeDetails:o,onClickGetCurrentLocation:c}}function et({search:t,makePredicition:o,geoLocation:s,apiKey:u}){const c=pe({googleApiKey:u}),d=de(t,300),[h,y]=S.useState();S.useEffect(()=>{if(!c)return;if((d==null?void 0:d.length)===0||!o){y(void 0);return}const g=(s==null?void 0:s.countryCode)||"us";c.getPlacePredictions({input:d,componentRestrictions:s!=null&&s.isFallback?void 0:{country:g},region:g,types:["locality","sublocality","postal_code"]},m)},[d,o,c]);function m(g,b){if(b!==google.maps.places.PlacesServiceStatus.OK||!g){y(void 0);return}y(g)}function _(g,b,T){new google.maps.places.PlacesService(b.current).getDetails({placeId:g.place_id,fields:["geometry","address_components","formatted_address"],region:s.countryCode},(v,E)=>{if(E!==google.maps.places.PlacesServiceStatus.OK)return;const p=v.geometry.location.lng(),l=v.geometry.location.lat(),{locality:a,country:n,postalCode:e,city:i,province:r}=Ce.getPlaceDetails(v);T({longitude:p,latitude:l,locality:a,country:n,city:i,postalCode:e,province:r})})}return{localityPredicitions:h,getPlaceInfo:_}}function se(){return f.jsx("svg",{viewBox:"0 0 24 24",children:f.jsx("path",{d:"m12.00559,20.40189c4.60881,0 8.37242,-3.78424 8.37242,-8.40189c0,-4.61764 -3.76361,-8.40187 -8.37242,-8.40187c-4.62002,0 -8.38365,3.78422 -8.38365,8.40187c0,4.61765 3.76364,8.40189 8.38365,8.40189zm0,-1.65557c-3.75235,0 -6.67085,-2.96208 -6.67085,-6.74632c0,-3.7842 2.91851,-6.74625 6.67085,-6.74625c3.74105,0 6.67084,2.96206 6.67084,6.74625c0,3.78424 -2.92978,6.74632 -6.67084,6.74632zm-10.14151,-6.02552l6.01731,0c0.40566,0 0.72118,-0.31536 0.72118,-0.7208c0,-0.40544 -0.31552,-0.7208 -0.72118,-0.7208l-6.01731,0c-0.40566,0 -0.72117,0.31536 -0.72117,0.7208c0,0.40544 0.31551,0.7208 0.72118,0.7208l-0.00001,0zm14.25442,0l6.0174,0c0.40565,0 0.72118,-0.31536 0.72118,-0.7208c0,-0.40544 -0.31553,-0.7208 -0.72118,-0.7208l-6.0174,0c-0.40565,0 -0.72118,0.31536 -0.72118,0.7208c0,0.40544 0.31553,0.7208 0.72118,0.7208zm-4.12417,-4.1221c0.40566,0 0.72118,-0.31534 0.72118,-0.70952l0,-6.02547c0,-0.40544 -0.31552,-0.7208 -0.72118,-0.7208c-0.3944,0 -0.7099,0.31536 -0.7099,0.7208l0,6.02547c0,0.39418 0.31551,0.70952 0.7099,0.70952zm0,14.25838c0.40566,0 0.72118,-0.3154 0.72118,-0.72077l0,-6.02541c0,-0.39425 -0.31552,-0.70965 -0.72118,-0.70965c-0.3944,0 -0.7099,0.3154 -0.7099,0.70965l0,6.02541c0,0.40538 0.31551,0.72077 0.7099,0.72077z"})})}const tt="_baseText_5xxp4_1",nt="_inputFocused_5xxp4_4",rt="_dropdown_5xxp4_7",it="_suggestionContainer_5xxp4_10",ot="_suggestionItem_5xxp4_20",at="_suggestionLoading_5xxp4_20",st="_noSuggestion_5xxp4_20",lt="_large_5xxp4_24",ct="_input_5xxp4_4",ut="_selected_5xxp4_42",dt="_useMyLocation_5xxp4_46",I={baseText:tt,inputFocused:nt,dropdown:rt,suggestionContainer:it,suggestionItem:ot,suggestionLoading:at,noSuggestion:st,large:lt,input:ct,selected:ut,useMyLocation:dt};function ht(t){const{predictions:o,getPlaceInfo:s,selectedIndex:u}=t;return f.jsx(f.Fragment,{children:o.map((c,d)=>f.jsx(H,{className:`${I.suggestionItem} ${u-1===d?I.selected:""}`,onKeyDown:h=>h.key==="Enter"&&s(c),onMouseDown:()=>s(c),onClick:()=>s(c),children:c.description},c.place_id))})}function At(t){var q,J,V,Y,Z;const o=S.useRef(null),[s,u]=S.useState(((q=t.data)==null?void 0:q.schoolLocality)||""),[c,d]=S.useState(!1),h=We({apiKey:t.googleMapsApiKey,geoLocation:t.geoLocation}),{localityPredicitions:y,getPlaceInfo:m}=et({search:s,makePredicition:c,geoLocation:t.geoLocation,apiKey:t.googleMapsApiKey}),{placeDetails:_,onClickGetCurrentLocation:g}=Xe({apiKey:t.googleMapsApiKey,onPositionError:e}),b=window.navigator.geolocation?1:0,{selectedIndex:T,onKeyDown:w,containerRef:v,hide:E,onBlur:p,onFocus:l}=be({onSelected:A,itemCount:((y==null?void 0:y.length)??0)+b,hideOnBlur:t.hideOnBlur}),[a,n]=S.useState();S.useEffect(()=>{L(_)},[_]);function e(C){d(!0),n(C)}function i(C){var O,W,Q;a&&n(void 0),c||d(!0),((O=t.data)!=null&&O.longitude||(W=t.data)!=null&&W.latitude||(Q=t.data)!=null&&Q.schoolLocality)&&t.clearData(),u(C)}function r(){i(""),o.current.focus()}function A(C){if(!y)return;if(C===y.length){j();return}const O=y[C];O&&P(O)}function L(C){t.setData({schoolLocality:C.locality,country:C.country,province:C.province,schoolPostCode:C.postalCode,longitude:C.longitude,latitude:C.latitude}),C.locality&&u(C.locality)}function P(C){c&&d(!1),m(C,o,L)}function j(C){var O;C==null||C.preventDefault(),d(!1),g(),(O=t.logUserAction)==null||O.call(t,{},{actionType:Ae.Click,descriptor:Te.UseMyLocation})}function F(){let C="form-control";return t.size==="lg"&&(C+=" form-control-lg"),!$||E?`${C} ${I.input}`:`${C} ${I.inputFocused}`}const $=(y==null?void 0:y.length)&&!((V=(J=t.data)==null?void 0:J.schoolLocality)!=null&&V.length),x=window.navigator.geolocation&&!((Z=(Y=t.data)==null?void 0:Y.schoolLocality)!=null&&Z.length),N=t.labelClassName||`d-block text-center mb-3 fw-normal ${I.baseText}`;let K="form-group position-relative";return t.size==="lg"&&(K+=` ${I.large}`),f.jsxs("div",{className:K,children:[f.jsxs("label",{className:N,htmlFor:"locality-input",children:["ZIP code or city",t.required&&f.jsx("span",{className:"text-danger",children:"*"})]}),f.jsx(ge,{type:"text",value:s,onChange:C=>i(C.currentTarget.value),id:"locality-input",className:F(),ref:o,autoComplete:"off",placeholder:h||"Loading...",disabled:t.disabled||!h,autoFocus:t==null?void 0:t.autoFocus,onClickClear:r,onKeyDown:w,onFocus:l,onBlur:p}),f.jsxs("div",{className:`position-absolute z-1 w-100 ${I.dropdown} ${E?"d-none":""}`,children:[!!$&&f.jsxs("div",{className:I.suggestionContainer,ref:v,children:[f.jsx(ht,{predictions:y,getPlaceInfo:P,selectedIndex:T}),window.navigator.geolocation&&t.useGeoLocationApi&&f.jsx(H,{className:`${I.suggestionItem} px-1 ${T-1===y.length?I.selected:""}`,onClick:j,children:f.jsxs("div",{className:"btn btn-link info-link btn-with-icon bg-transparent py-0 pe-1",children:[f.jsx(se,{}),"Use my current location"]})})]}),x&&!$&&t.useGeoLocationApi&&f.jsx("div",{className:`d-flex ${I.useMyLocation}`,children:f.jsxs("button",{onClick:j,className:"btn btn-link info-link bg-white btn-with-icon",children:[f.jsx(se,{}),"Use my current location"]})}),!!a&&f.jsx("div",{className:"text-danger p-2",children:a})]})]})}class ft extends Error{constructor(o,s="Error"){super(s),this.body=o}}const gt={prepareQuery(t,o){let s=t;return Object.keys(o).forEach((u,c)=>{o[u]&&(c===0?s+="?":s+="&",s+=`${u}=${encodeURIComponent(o[u])}`)}),s}};function G(t){let o={method:M.GET,headers:{"Content-type":"application/json"}};t.method&&(o={...o,method:t.method}),t.init&&(o={...o,...t.init});let s=t.url;return o.method===M.GET&&t.data?s=gt.prepareQuery(s,t.data):t.data&&(o={...o,body:JSON.stringify(t.data)}),{init:o,url:s}}const k={async asyncFetch(t){const o=G(t),s=await fetch(o.url,o.init);if(!s.ok){const u=await s.json();throw new ft(u)}if(s.status!==204)return await s.json()},async asyncFetchPlain(t){const o=G(t),s=await fetch(o.url,o.init);if(s.ok)return await s.text()},fetch(t){const o=G(t);return fetch(o.url,o.init).then(s=>{if(s.status!==204)return s.json()}).then(s=>(t.success&&t.success(s),s)).catch(s=>(t.error&&t.error(),s)).finally(()=>{t.always&&t.always()})}},yt={search(t,o,s,u,c){const d={longitude:o.longitude,latitude:o.latitude};o.query&&(d.query=o.query),k.fetch({url:t,data:d,success:s,error:u,always:c})},async create(t,o){return k.asyncFetch({url:t.createProspect,method:M.POST,data:o})},getLookups(t,o){return k.asyncFetch({url:t.prospectLookups(o)})}};function pt(t){return t.toLowerCase().split(" ").map(o=>o.charAt(0).toUpperCase()+o.slice(1)).join(" ")}function mt(t){const o=[];return t.city&&o.push(pt(t.city)),t.province&&o.push(t.province),t.postCode&&o.push(t.postCode),o.join(" ")}function bt(t){const{filteredSchoolsList:o,getSchoolName:s,onSchoolSuggestionClick:u,selectedIndex:c}=t;return f.jsx(f.Fragment,{children:o.map((d,h)=>f.jsxs(H,{className:`${I.suggestionItem} ${c-1===h?I.selected:""}`,onKeyDown:y=>y.key==="Enter"&&u(d),onMouseDown:()=>u(d),onClick:()=>u(d),children:[s(d)," ",f.jsx("br",{}),f.jsx("small",{className:"text-secondary",children:mt(d)})]},d.id))})}function Ct(t){return f.jsx("div",{className:`info-link ${I.suggestionItem} ${I.noSuggestion} ${t.selected?I.selected:""}`,onKeyDown:o=>o.key==="Enter"&&t.handleNoSuggestion(),onMouseDown:t.handleNoSuggestion,onClick:t.handleNoSuggestion,children:"Can't find your school?"})}function wt(t){var $;const o=S.useRef(null),[s,u]=S.useState(!0),[c,d]=S.useState(t.data.schoolName&&t.data.schoolPostCode?t.data.schoolName+", "+t.data.schoolPostCode:t.data.schoolName?t.data.schoolName:""),[h,y]=S.useState(),m=de(c,250),{selectedIndex:_,onKeyDown:g,containerRef:b,hide:T,onBlur:w,onFocus:v}=be({onSelected:E,itemCount:((h==null?void 0:h.length)??0)+1,hideOnBlur:t.hideOnBlur});function E(x){if(!h&&!x)return;if(x===h.length){t.onClickNoSuggestions(c);return}const N=h[x];N&&A(N)}const p=!!(($=t.data)!=null&&$.prospectId),l=s&&!p,a=!s&&!p&&(h==null?void 0:h.length)<5,n=(h==null?void 0:h.length)&&!p;S.useEffect(()=>{if(!p){if(!m.length){r();return}if(!p&&m.length>1&&m===c){r(m);return}}},[m,p]);function e(x){(t.data.schoolName||t.data.prospectId)&&t.clearData(),x!==c&&d(x)}function i(){e(""),o.current.focus()}function r(x){if(!t.data.latitude&&!t.data.longitude){u(!1);return}u(!0);const N={latitude:t.data.latitude,longitude:t.data.longitude};x&&x.length&&(N.query=x),yt.search(t.searchUrl,N,K=>y(K),null,()=>u(!1))}function A(x){d(L(x)),t.setData({prospectId:x.id,schoolName:x.name,schoolPostCode:x.postCode,schoolType:x.prospectType,province:x.province,city:x.city,country:x.countryCode})}function L(x){return x.name}const P=(n||l||a)&&!t.disabled&&!T;let j=`form-control ${P?I.inputFocused:I.input}`,F="form-group position-relative";return t.size==="lg"&&(j+=" form-control-lg",F+=` ${I.large}`),f.jsxs("div",{className:F,children:[f.jsxs("label",{className:t.labelClassName,htmlFor:"school-input",children:["School",t.required&&f.jsx("span",{className:"text-danger",children:"*"})]}),f.jsx(ge,{id:"school-input",value:c,onChange:x=>e(x.currentTarget.value),ref:o,className:j,type:"text",autoComplete:"off",placeholder:t.placeholder||"Select your school below",disabled:t.disabled,autoFocus:!0,onClickClear:i,onKeyDown:g,onFocus:v,onBlur:w}),f.jsx("div",{className:`position-absolute z-1 w-100 ${I.dropdown} ${T?"d-none":""}`,children:f.jsxs("div",{className:`${I.suggestionContainer} ${P?"":"d-none"}`,ref:b,children:[n?f.jsx(bt,{filteredSchoolsList:h,onSchoolSuggestionClick:A,getSchoolName:L,selectedIndex:_}):l&&f.jsx("div",{className:`${I.suggestionLoading} py-4 d-flex justify-content-center`,children:f.jsx(we,{animation:"border"})}),!l&&a&&f.jsx(Ct,{selected:_===h.length+1,handleNoSuggestion:()=>{t.onClickNoSuggestions(c)}})]})})]})}export{vt as B,Tt as J,At as S,wt as a,xt as b,Ne as c,Ue as d,Oe as e,It as u};
|
|
2
|
-
//# sourceMappingURL=CmAQo6rx.chunk.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CmAQo6rx.chunk.js","sources":["../../../../../node_modules/spark-md5/spark-md5.js","../../../../libs/shared/src/apps/sign-up/helpers/BrazeHelper.ts","../../../../libs/shared/src/flight-requests/BrazeRequests.ts","../../../../libs/shared/src/hooks/UseProfileApiClient.ts","../../src/shared/enums/BrazeSource.ts","../../src/shared/enums/BrazeTopic.ts","../../../../libs/shared/src/hooks/useBrazeClientService.ts","../../src/shared/hooks/useStreamableBrazeClientService.ts","../../../../libs/shared/src/apps/sign-up/utils/getJobTitles.ts","../../../../libs/shared/src/apps/sign-up/components/steps/add-to-braze-step-item/JobTitleInput.tsx","../../../../libs/shared/src/images/components/CloseIcon.tsx","../../../../libs/shared/src/apps/sign-up/components/general/clear-input/ClearableInput.tsx","../../../../../node_modules/@googlemaps/js-api-loader/dist/index.esm.js","../../../../libs/shared/src/apps/sign-up/hooks/useGoogleApi.tsx","../../../../libs/shared/src/apps/sign-up/hooks/useAutoCompleteService.ts","../../../../libs/shared/src/apps/sign-up/hooks/useCountryPlaceholder.tsx","../../../../libs/shared/src/apps/sign-up/hooks/useDropdownEvents.tsx","../../../../libs/shared/src/apps/sign-up/helpers/PlaceHelper.ts","../../../../libs/shared/src/apps/sign-up/hooks/useGeocoder.tsx","../../../../libs/shared/src/apps/sign-up/hooks/useLocalitySearch.tsx","../../../../libs/shared/src/images/components/CrosshairIcon.tsx","../../../../libs/shared/src/apps/sign-up/components/steps/search-school-step-item/SearchLocalityInput.tsx","../../../../libs/shared/src/apps/sign-up/errors/ApiError.ts","../../../../libs/shared/src/apps/sign-up/helpers/UrlHelper.ts","../../../../libs/shared/src/apps/sign-up/helpers/FetchHelper.ts","../../../../libs/shared/src/apps/sign-up/fetch-requests/ProspectRequests.ts","../../../../libs/shared/src/apps/sign-up/components/steps/search-school-step-item/SearchSchoolInput.tsx"],"sourcesContent":["(function (factory) {\n if (typeof exports === 'object') {\n // Node/CommonJS\n module.exports = factory();\n } else if (typeof define === 'function' && define.amd) {\n // AMD\n define(factory);\n } else {\n // Browser globals (with support for web workers)\n var glob;\n\n try {\n glob = window;\n } catch (e) {\n glob = self;\n }\n\n glob.SparkMD5 = factory();\n }\n}(function (undefined) {\n\n 'use strict';\n\n /*\n * Fastest md5 implementation around (JKM md5).\n * Credits: Joseph Myers\n *\n * @see http://www.myersdaily.org/joseph/javascript/md5-text.html\n * @see http://jsperf.com/md5-shootout/7\n */\n\n /* this function is much faster,\n so if possible we use it. Some IEs\n are the only ones I know of that\n need the idiotic second function,\n generated by an if clause. */\n var add32 = function (a, b) {\n return (a + b) & 0xFFFFFFFF;\n },\n hex_chr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'];\n\n\n function cmn(q, a, b, x, s, t) {\n a = add32(add32(a, q), add32(x, t));\n return add32((a << s) | (a >>> (32 - s)), b);\n }\n\n function md5cycle(x, k) {\n var a = x[0],\n b = x[1],\n c = x[2],\n d = x[3];\n\n a += (b & c | ~b & d) + k[0] - 680876936 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[1] - 389564586 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[2] + 606105819 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[3] - 1044525330 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[4] - 176418897 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[5] + 1200080426 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[6] - 1473231341 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[7] - 45705983 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[8] + 1770035416 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[9] - 1958414417 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[10] - 42063 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[11] - 1990404162 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[12] + 1804603682 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[13] - 40341101 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[14] - 1502002290 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[15] + 1236535329 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n\n a += (b & d | c & ~d) + k[1] - 165796510 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[6] - 1069501632 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[11] + 643717713 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[0] - 373897302 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[5] - 701558691 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[10] + 38016083 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[15] - 660478335 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[4] - 405537848 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[9] + 568446438 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[14] - 1019803690 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[3] - 187363961 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[8] + 1163531501 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[13] - 1444681467 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[2] - 51403784 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[7] + 1735328473 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[12] - 1926607734 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n\n a += (b ^ c ^ d) + k[5] - 378558 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[8] - 2022574463 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[11] + 1839030562 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[14] - 35309556 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[1] - 1530992060 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[4] + 1272893353 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[7] - 155497632 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[10] - 1094730640 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[13] + 681279174 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[0] - 358537222 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[3] - 722521979 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[6] + 76029189 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[9] - 640364487 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[12] - 421815835 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[15] + 530742520 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[2] - 995338651 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n\n a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;\n b = (b << 21 |b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;\n b = (b << 21 |b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;\n b = (b << 21 |b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n\n x[0] = a + x[0] | 0;\n x[1] = b + x[1] | 0;\n x[2] = c + x[2] | 0;\n x[3] = d + x[3] | 0;\n }\n\n function md5blk(s) {\n var md5blks = [],\n i; /* Andy King said do it this way. */\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);\n }\n return md5blks;\n }\n\n function md5blk_array(a) {\n var md5blks = [],\n i; /* Andy King said do it this way. */\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);\n }\n return md5blks;\n }\n\n function md51(s) {\n var n = s.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk(s.substring(i - 64, i)));\n }\n s = s.substring(i - 64);\n length = s.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= s.charCodeAt(i) << ((i % 4) << 3);\n }\n tail[i >> 2] |= 0x80 << ((i % 4) << 3);\n if (i > 55) {\n md5cycle(state, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n // Beware that the final length might not fit in 32 bits so we take care of that\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n\n tail[14] = lo;\n tail[15] = hi;\n\n md5cycle(state, tail);\n return state;\n }\n\n function md51_array(a) {\n var n = a.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk_array(a.subarray(i - 64, i)));\n }\n\n // Not sure if it is a bug, however IE10 will always produce a sub array of length 1\n // containing the last element of the parent array if the sub array specified starts\n // beyond the length of the parent array - weird.\n // https://connect.microsoft.com/IE/feedback/details/771452/typed-array-subarray-issue\n a = (i - 64) < n ? a.subarray(i - 64) : new Uint8Array(0);\n\n length = a.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= a[i] << ((i % 4) << 3);\n }\n\n tail[i >> 2] |= 0x80 << ((i % 4) << 3);\n if (i > 55) {\n md5cycle(state, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n // Beware that the final length might not fit in 32 bits so we take care of that\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n\n tail[14] = lo;\n tail[15] = hi;\n\n md5cycle(state, tail);\n\n return state;\n }\n\n function rhex(n) {\n var s = '',\n j;\n for (j = 0; j < 4; j += 1) {\n s += hex_chr[(n >> (j * 8 + 4)) & 0x0F] + hex_chr[(n >> (j * 8)) & 0x0F];\n }\n return s;\n }\n\n function hex(x) {\n var i;\n for (i = 0; i < x.length; i += 1) {\n x[i] = rhex(x[i]);\n }\n return x.join('');\n }\n\n // In some cases the fast add32 function cannot be used..\n if (hex(md51('hello')) !== '5d41402abc4b2a76b9719d911017c592') {\n add32 = function (x, y) {\n var lsw = (x & 0xFFFF) + (y & 0xFFFF),\n msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n return (msw << 16) | (lsw & 0xFFFF);\n };\n }\n\n // ---------------------------------------------------\n\n /**\n * ArrayBuffer slice polyfill.\n *\n * @see https://github.com/ttaubert/node-arraybuffer-slice\n */\n\n if (typeof ArrayBuffer !== 'undefined' && !ArrayBuffer.prototype.slice) {\n (function () {\n function clamp(val, length) {\n val = (val | 0) || 0;\n\n if (val < 0) {\n return Math.max(val + length, 0);\n }\n\n return Math.min(val, length);\n }\n\n ArrayBuffer.prototype.slice = function (from, to) {\n var length = this.byteLength,\n begin = clamp(from, length),\n end = length,\n num,\n target,\n targetArray,\n sourceArray;\n\n if (to !== undefined) {\n end = clamp(to, length);\n }\n\n if (begin > end) {\n return new ArrayBuffer(0);\n }\n\n num = end - begin;\n target = new ArrayBuffer(num);\n targetArray = new Uint8Array(target);\n\n sourceArray = new Uint8Array(this, begin, num);\n targetArray.set(sourceArray);\n\n return target;\n };\n })();\n }\n\n // ---------------------------------------------------\n\n /**\n * Helpers.\n */\n\n function toUtf8(str) {\n if (/[\\u0080-\\uFFFF]/.test(str)) {\n str = unescape(encodeURIComponent(str));\n }\n\n return str;\n }\n\n function utf8Str2ArrayBuffer(str, returnUInt8Array) {\n var length = str.length,\n buff = new ArrayBuffer(length),\n arr = new Uint8Array(buff),\n i;\n\n for (i = 0; i < length; i += 1) {\n arr[i] = str.charCodeAt(i);\n }\n\n return returnUInt8Array ? arr : buff;\n }\n\n function arrayBuffer2Utf8Str(buff) {\n return String.fromCharCode.apply(null, new Uint8Array(buff));\n }\n\n function concatenateArrayBuffers(first, second, returnUInt8Array) {\n var result = new Uint8Array(first.byteLength + second.byteLength);\n\n result.set(new Uint8Array(first));\n result.set(new Uint8Array(second), first.byteLength);\n\n return returnUInt8Array ? result : result.buffer;\n }\n\n function hexToBinaryString(hex) {\n var bytes = [],\n length = hex.length,\n x;\n\n for (x = 0; x < length - 1; x += 2) {\n bytes.push(parseInt(hex.substr(x, 2), 16));\n }\n\n return String.fromCharCode.apply(String, bytes);\n }\n\n // ---------------------------------------------------\n\n /**\n * SparkMD5 OOP implementation.\n *\n * Use this class to perform an incremental md5, otherwise use the\n * static methods instead.\n */\n\n function SparkMD5() {\n // call reset to init the instance\n this.reset();\n }\n\n /**\n * Appends a string.\n * A conversion will be applied if an utf8 string is detected.\n *\n * @param {String} str The string to be appended\n *\n * @return {SparkMD5} The instance itself\n */\n SparkMD5.prototype.append = function (str) {\n // Converts the string to utf8 bytes if necessary\n // Then append as binary\n this.appendBinary(toUtf8(str));\n\n return this;\n };\n\n /**\n * Appends a binary string.\n *\n * @param {String} contents The binary string to be appended\n *\n * @return {SparkMD5} The instance itself\n */\n SparkMD5.prototype.appendBinary = function (contents) {\n this._buff += contents;\n this._length += contents.length;\n\n var length = this._buff.length,\n i;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));\n }\n\n this._buff = this._buff.substring(i - 64);\n\n return this;\n };\n\n /**\n * Finishes the incremental computation, reseting the internal state and\n * returning the result.\n *\n * @param {Boolean} raw True to get the raw string, false to get the hex string\n *\n * @return {String} The result\n */\n SparkMD5.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n i,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff.charCodeAt(i) << ((i % 4) << 3);\n }\n\n this._finish(tail, length);\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n\n return ret;\n };\n\n /**\n * Resets the internal state of the computation.\n *\n * @return {SparkMD5} The instance itself\n */\n SparkMD5.prototype.reset = function () {\n this._buff = '';\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n\n return this;\n };\n\n /**\n * Gets the internal state of the computation.\n *\n * @return {Object} The state\n */\n SparkMD5.prototype.getState = function () {\n return {\n buff: this._buff,\n length: this._length,\n hash: this._hash.slice()\n };\n };\n\n /**\n * Gets the internal state of the computation.\n *\n * @param {Object} state The state\n *\n * @return {SparkMD5} The instance itself\n */\n SparkMD5.prototype.setState = function (state) {\n this._buff = state.buff;\n this._length = state.length;\n this._hash = state.hash;\n\n return this;\n };\n\n /**\n * Releases memory used by the incremental buffer and other additional\n * resources. If you plan to use the instance again, use reset instead.\n */\n SparkMD5.prototype.destroy = function () {\n delete this._hash;\n delete this._buff;\n delete this._length;\n };\n\n /**\n * Finish the final calculation based on the tail.\n *\n * @param {Array} tail The tail (will be modified)\n * @param {Number} length The length of the remaining buffer\n */\n SparkMD5.prototype._finish = function (tail, length) {\n var i = length,\n tmp,\n lo,\n hi;\n\n tail[i >> 2] |= 0x80 << ((i % 4) << 3);\n if (i > 55) {\n md5cycle(this._hash, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n // Do the final computation based on the tail and length\n // Beware that the final length may not fit in 32 bits so we take care of that\n tmp = this._length * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(this._hash, tail);\n };\n\n /**\n * Performs the md5 hash on a string.\n * A conversion will be applied if utf8 string is detected.\n *\n * @param {String} str The string\n * @param {Boolean} [raw] True to get the raw string, false to get the hex string\n *\n * @return {String} The result\n */\n SparkMD5.hash = function (str, raw) {\n // Converts the string to utf8 bytes if necessary\n // Then compute it using the binary function\n return SparkMD5.hashBinary(toUtf8(str), raw);\n };\n\n /**\n * Performs the md5 hash on a binary string.\n *\n * @param {String} content The binary string\n * @param {Boolean} [raw] True to get the raw string, false to get the hex string\n *\n * @return {String} The result\n */\n SparkMD5.hashBinary = function (content, raw) {\n var hash = md51(content),\n ret = hex(hash);\n\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n // ---------------------------------------------------\n\n /**\n * SparkMD5 OOP implementation for array buffers.\n *\n * Use this class to perform an incremental md5 ONLY for array buffers.\n */\n SparkMD5.ArrayBuffer = function () {\n // call reset to init the instance\n this.reset();\n };\n\n /**\n * Appends an array buffer.\n *\n * @param {ArrayBuffer} arr The array to be appended\n *\n * @return {SparkMD5.ArrayBuffer} The instance itself\n */\n SparkMD5.ArrayBuffer.prototype.append = function (arr) {\n var buff = concatenateArrayBuffers(this._buff.buffer, arr, true),\n length = buff.length,\n i;\n\n this._length += arr.byteLength;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));\n }\n\n this._buff = (i - 64) < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);\n\n return this;\n };\n\n /**\n * Finishes the incremental computation, reseting the internal state and\n * returning the result.\n *\n * @param {Boolean} raw True to get the raw string, false to get the hex string\n *\n * @return {String} The result\n */\n SparkMD5.ArrayBuffer.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n i,\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff[i] << ((i % 4) << 3);\n }\n\n this._finish(tail, length);\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n\n return ret;\n };\n\n /**\n * Resets the internal state of the computation.\n *\n * @return {SparkMD5.ArrayBuffer} The instance itself\n */\n SparkMD5.ArrayBuffer.prototype.reset = function () {\n this._buff = new Uint8Array(0);\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n\n return this;\n };\n\n /**\n * Gets the internal state of the computation.\n *\n * @return {Object} The state\n */\n SparkMD5.ArrayBuffer.prototype.getState = function () {\n var state = SparkMD5.prototype.getState.call(this);\n\n // Convert buffer to a string\n state.buff = arrayBuffer2Utf8Str(state.buff);\n\n return state;\n };\n\n /**\n * Gets the internal state of the computation.\n *\n * @param {Object} state The state\n *\n * @return {SparkMD5.ArrayBuffer} The instance itself\n */\n SparkMD5.ArrayBuffer.prototype.setState = function (state) {\n // Convert string to buffer\n state.buff = utf8Str2ArrayBuffer(state.buff, true);\n\n return SparkMD5.prototype.setState.call(this, state);\n };\n\n SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;\n\n SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;\n\n /**\n * Performs the md5 hash on an array buffer.\n *\n * @param {ArrayBuffer} arr The array buffer\n * @param {Boolean} [raw] True to get the raw string, false to get the hex one\n *\n * @return {String} The result\n */\n SparkMD5.ArrayBuffer.hash = function (arr, raw) {\n var hash = md51_array(new Uint8Array(arr)),\n ret = hex(hash);\n\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n return SparkMD5;\n}));\n","import SparkMD5 from 'spark-md5';\n\nimport type { HashObject } from 'libs/analytics/interfaces';\n\ninterface SchoolTypeInfo {\n label: string;\n isTertiary: boolean;\n}\n\nconst SCHOOL_TYPE_MAP: Record<string, SchoolTypeInfo> = {\n 'secondary': {\n label: 'Secondary',\n isTertiary: false\n },\n 'primary & secondary': {\n label: 'Primary & Secondary',\n isTertiary: false\n },\n 'k12': {\n label: 'Primary & Secondary',\n isTertiary: false\n },\n 'primary': {\n label: 'Primary',\n isTertiary: false\n },\n 'special': {\n label: 'Special',\n isTertiary: false\n },\n 'university': {\n label: 'University',\n isTertiary: true\n },\n 'middle': {\n label: 'Middle',\n isTertiary: false\n },\n 'fe college': {\n label: 'FE College',\n isTertiary: true\n },\n 'high school': {\n label: 'Secondary',\n isTertiary: false\n },\n 'elementary': {\n label: 'Primary',\n isTertiary: false\n },\n 'middle school': {\n label: 'Middle',\n isTertiary: false\n },\n 'tafe': {\n label: 'TAFE',\n isTertiary: true\n },\n 'college': {\n label: 'FE College',\n isTertiary: true\n },\n 'sixth form college': {\n label: 'Sixth Form College',\n isTertiary: true\n }\n};\n\nconst PROVINCE_ISO_MAP: HashObject<string> = {\n 'england': 'ENG',\n 'scotland': 'SCT',\n 'wales': 'WLS',\n 'northern ireland': 'NIR'\n};\n\nexport interface BrazeCheckEmailResponse {\n invalidUserIds: string[];\n message: string;\n users: HashObject[];\n}\n\nexport const BrazeHelper = {\n\n hashedEmail(email: string) {\n const normalizedEmail = email.trim().toLowerCase();\n return SparkMD5.hash(normalizedEmail);\n },\n\n removeEmptyKeys(object: HashObject<any>): HashObject<any> {\n if (Array.isArray(object))\n return object;\n\n const payload = { ...object };\n return Object.entries(payload)\n .filter(([ , v ]) => {\n if (v === undefined || v === null) {\n return false;\n }\n if (typeof v === 'string' && !v.length) {\n return false;\n }\n return true;\n })\n .reduce(\n (acc, [ k, v ]) => ({ ...acc, [k]: v === Object(v) ? BrazeHelper.removeEmptyKeys(v) : v }),\n {}\n );\n },\n\n EVENT_TOPIC: 'Free Trial Request',\n\n BDM_EVENT_TOPIC: 'Requested free trial (Streamable Customer)',\n\n SOURCE: 'cv_product_trial_requested',\n\n BDM_SOURCE: 'cv_product_bdm_trial_requested',\n\n TRIAL_UPGRADE_SOURCE: 'cv_product_trial_upgrade_requested',\n\n getSchoolType(schoolType: string): string {\n if (!schoolType) return;\n\n const prospectType = schoolType.toLowerCase();\n\n if ([ 'unknown', 'other' ].includes(prospectType)) return;\n \n const mappedSchoolType = SCHOOL_TYPE_MAP[prospectType]?.label;\n if (mappedSchoolType)\n return mappedSchoolType;\n \n return schoolType;\n },\n\n isTertiarySchool(schoolType: string): boolean {\n return SCHOOL_TYPE_MAP[schoolType?.toLowerCase()]?.isTertiary || false;\n },\n\n parseProvince(province?: string): string {\n if (!province.length) return '';\n\n const mappedProvince = PROVINCE_ISO_MAP[province.toLowerCase()];\n return mappedProvince || province;\n }\n};","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { Flight } from 'libs/common/react/index';\n\nexport const BrazeRequests = {\n checkEmail(email: string): Flight.Request {\n return {\n url: '/api/braze/check-email',\n key: `braze:check:email:${email}`,\n type: HttpVerbs.POST,\n data: {\n email\n }\n };\n },\n\n prospectLookups(prospectId: string): Flight.Request {\n return {\n url: `{gateway}/v1/prospects/${prospectId}/lookups`,\n key: `prospect:lookup:${prospectId}`\n };\n }\n};","import { useInstance } from 'libs/common/react/hooks/UseInstance';\n\nimport { ProfileApiClient } from 'libs/analytics/clients/ProfileApiClient';\nimport { Services } from 'libs/analytics/constants/Services';\n\nexport function useProfileApiClient() {\n const profileApiClient = useInstance<ProfileApiClient>(Services.ProfileApiClient);\n\n return {\n createOrUpdateProfile: profileApiClient.createOrUpdate\n };\n}","export enum BrazeSource {\n LivestreamBooking = 'sl_product_livestream',\n ContactUs = 'sl_marketing_form_contact_us'\n}","export enum BrazeTopic {\n ContactUs = 'Contact us',\n LivestreamBooking = 'Livestream booking'\n}","import { type BrazeUser, type FormEventType } from '@clickview/braze-client';\n\nimport { useInstanceSafe } from 'libs/common/react/hooks/UseInstance';\n\nimport { SharedServices } from 'libs/shared/constants/SharedServices';\nimport { BrazeClientService } from 'libs/shared/services/BrazeClientService';\n\ninterface HydrateUserDataOptions {\n topic: string;\n source: string;\n}\n\nfunction hydrateUserData(user: BrazeUser, data: HydrateUserDataOptions): BrazeUser {\n return {\n ...user,\n custom: {\n ...user?.custom,\n topic: data.topic,\n source: data.source\n },\n event: {\n ...user?.event,\n eventTopic: data.topic\n }\n };\n}\n\nexport interface LogFormSubmissionOptions<TTopic extends string, TSource extends string> {\n topic: TTopic;\n source: TSource;\n eventType: FormEventType;\n user: BrazeUser,\n productType: 'cv' | 'sl',\n additionalData?: Record<string, any>;\n callback?: (success: boolean) => void;\n}\n\nexport function useBrazeClientService<TTopic extends string, TSource extends string>() {\n const braze = useInstanceSafe<BrazeClientService>(SharedServices.BrazeClient);\n\n function logFormSubmission({\n user,\n additionalData,\n source,\n eventType,\n topic,\n productType,\n callback\n }: LogFormSubmissionOptions<TTopic, TSource>) {\n const brazeUser = hydrateUserData(user, {\n source,\n topic\n });\n\n braze.setUserInit(brazeUser);\n \n braze.logFormEvent({\n eventType,\n additionalData,\n callback,\n internalOptions: {\n subscriptionGroups: productType\n }\n });\n }\n\n return {\n client: braze,\n logFormSubmission\n };\n}","import { useBrazeClientService } from 'libs/shared/hooks/useBrazeClientService';\n\nimport { BrazeSource } from 'shared/enums/BrazeSource';\nimport { BrazeTopic } from 'shared/enums/BrazeTopic';\n\nexport function useStreamableBrazeClientService() {\n const braze = useBrazeClientService<BrazeTopic, BrazeSource>();\n\n return braze;\n}","import { AuK12JobTitles, AuTertiaryJobTitles, CaK12JobTitles, JobTitles, NzK12JobTitles, UkK12JobTitles, UkTertiaryJobTitles, UsK12JobTitles } from 'libs/shared/apps/sign-up/interfaces/JobTitles';\nimport { CountryCode } from 'libs/shared/enums/CountryCode';\n\nconst AU_K12_JOB_TITLES: AuK12JobTitles[] = [\n 'Teacher',\n 'Librarian / Teacher Librarian',\n 'Curriculum Coordinator',\n 'Digital Technology Coordinator',\n 'SSO / SLSO',\n 'IT',\n 'Head of Department',\n 'Head of Subject',\n 'Assistant Principal',\n 'Deputy Principal',\n 'Principal',\n 'Business Manager'\n];\n\nconst UK_K12_JOB_TITLES: UkK12JobTitles[] = [\n 'Teacher',\n 'Librarian / Teacher Librarian',\n 'IT/LRC',\n 'e-Learning/ICT Coordinator',\n 'Head of Key Stage',\n 'Head of Department',\n 'Subject Lead',\n 'Assistant Head Teacher',\n 'Deputy Head Teacher',\n 'Head Teacher'\n];\n\nconst US_K12_JOB_TITLES: UsK12JobTitles[] = [\n 'Teacher',\n 'Librarian / Teacher Librarian',\n 'Head of Department',\n 'Instructional Technology Specialist',\n 'Curriculum Coordinator',\n 'School Leadership',\n 'District Leadership',\n 'Academic Coach',\n 'Principal',\n 'IT / IT Specialist'\n];\n\nconst NZ_K12_JOB_TITLES: NzK12JobTitles[] = [\n 'Teacher',\n 'Librarian / Teacher Librarian',\n 'Curriculum Leader',\n 'e-Learning Coordinator',\n 'IT',\n 'Head of Department',\n 'Head of Faculty',\n 'Learning Support',\n 'Learning Assistant',\n 'Deputy Principal',\n 'Assistant Principal',\n 'Principal'\n];\n\nconst CA_K12_JOB_TITLES: CaK12JobTitles[] = [\n 'Teacher',\n 'Librarian / Teacher Librarian',\n 'Educational Assistant (EA)',\n 'Learning Support Teacher / Resource Teacher',\n 'Department Head / Manager',\n 'Curriculum Coordinator / Consultant',\n 'School Counsellor / Guidance Counsellor',\n 'Vice-Principal',\n 'Principal',\n 'Superintendent',\n 'Director of Education'\n];\n\nconst AU_TERTIARY_JOB_TITLES: AuTertiaryJobTitles[] = [\n 'Professor',\n 'Lecturer',\n 'Course Coordinator / Administrator',\n 'Digital Learning Manager',\n 'Tutor',\n 'Teaching Fellow',\n 'Librarian',\n 'Learning Technologist',\n 'Teaching Assistant',\n 'Researcher',\n 'IT'\n];\n\nconst UK_TERTIARY_JOB_TITLES: UkTertiaryJobTitles[] = [\n 'Professor',\n 'Lecturer',\n 'Course Coordinator / Administrator',\n 'Digital Learning Manager',\n 'Tutor',\n 'Teaching Fellow',\n 'Librarian',\n 'Learning Technologist',\n 'Teacher',\n 'Teaching Assistant',\n 'Researcher',\n 'IT'\n];\n\nconst K12_JOB_TITLES: Record<string, JobTitles[]> = {\n [CountryCode.AU]: AU_K12_JOB_TITLES,\n [CountryCode.NZ]: NZ_K12_JOB_TITLES,\n [CountryCode.UK]: UK_K12_JOB_TITLES,\n [CountryCode.US]: US_K12_JOB_TITLES,\n [CountryCode.CA]: CA_K12_JOB_TITLES\n};\n\nconst TERTIARY_JOB_TITLES: Record<string, JobTitles[]> = {\n [CountryCode.AU]: AU_TERTIARY_JOB_TITLES,\n [CountryCode.UK]: UK_TERTIARY_JOB_TITLES\n};\n\ntype Options = {\n countryCode: CountryCode;\n isTertiary: boolean;\n};\n\nexport function getJobTitles(options: Options): JobTitles[] {\n const key = options.countryCode?.toLowerCase();\n\n if (options.isTertiary)\n return TERTIARY_JOB_TITLES[key] || AU_TERTIARY_JOB_TITLES; // Default to AU Tertiary if not found\n\n return K12_JOB_TITLES[key] || US_K12_JOB_TITLES; // Default to US K12 if not found\n}\n\nexport function isLearnerJobTitle(jobTitle: string): boolean {\n return jobTitle?.toLowerCase().includes('student') ||\n jobTitle?.toLowerCase().includes('parent');\n}","import React from 'react';\n\nimport { JobTitles } from 'libs/shared/apps/sign-up/interfaces/JobTitles';\nimport { getJobTitles } from 'libs/shared/apps/sign-up/utils/getJobTitles';\nimport { FormFeedback } from 'libs/shared/components/forms/form-feedback/FormFeedback';\nimport { CountryCode } from 'libs/shared/enums/CountryCode';\n\nconst OTHER_VALUE = 'OTHER';\n\nfunction getInitialSelection(initialValue: JobTitles | string, jobTitles: JobTitles[]): JobTitles | '' | typeof OTHER_VALUE {\n if (jobTitles.includes(initialValue as JobTitles))\n return initialValue as JobTitles;\n\n if (initialValue)\n return OTHER_VALUE;\n\n return '';\n}\n\ninterface JobTitleInputProps {\n id: string;\n error: string;\n onChange: (jobTitle: JobTitles | '') => void;\n countryCode: CountryCode;\n placeholder?: string;\n initialValue?: JobTitles | string;\n size?: 'lg'\n labelClassName?: string;\n required?: boolean;\n isTertiary: boolean;\n}\n\nexport function JobTitleInput(props: JobTitleInputProps): JSX.Element {\n const {\n error,\n onChange,\n countryCode,\n isTertiary\n } = props;\n\n const jobTitles = getJobTitles({ countryCode, isTertiary });\n\n const initialSelection = getInitialSelection(props.initialValue, jobTitles);\n\n const [ selection, setSelection ] = React.useState<JobTitles | '' | typeof OTHER_VALUE>(initialSelection);\n const [ other, setOther ] = React.useState(initialSelection === OTHER_VALUE ? props.initialValue : '');\n\n React.useEffect(() => {\n setSelection(getInitialSelection(props.initialValue, jobTitles));\n }, [props.initialValue]);\n\n function onChangeSelection(event: React.ChangeEvent<HTMLSelectElement>): void {\n setSelection(event.target.value as JobTitles);\n setOther('');\n onChange(event.target.value === OTHER_VALUE ? '' : event.target.value as JobTitles);\n }\n\n function onChangeOther(event: React.ChangeEvent<HTMLInputElement>): void {\n setOther(event.target.value);\n onChange(event.target.value as JobTitles);\n }\n\n const showOther = selection === OTHER_VALUE;\n\n return (\n <div className='form-group'>\n <label htmlFor={props.id} className={props.labelClassName}>\n Job title\n {props.required && <span className='text-danger'>*</span>}\n </label>\n <div className='mb-2'>\n <select\n id={props.id}\n name={props.id}\n className={`form-select ${props.size === 'lg' ? 'form-select-lg' : ''} ${selection.length ? 'text-dark' : 'text-secondary'} ${!!error && 'is-invalid'}`}\n value={selection}\n placeholder='Role'\n onChange={onChangeSelection}\n >\n <option value='' disabled className='text-secondary'>\n {props.placeholder ? props.placeholder : <>What do you do?</>}\n </option>\n {jobTitles.map((title, key) => <option value={title} className='text-dark' key={key}>{title}</option>)}\n <option value={OTHER_VALUE} className='text-dark'>Other</option>\n </select>\n {!!error && !showOther && <FormFeedback name={props.id}>{error}</FormFeedback>}\n </div>\n {showOther &&\n <div className='mb-3'>\n <input\n className={`form-control ${props.size === 'lg' ? 'form-select-lg' : ''} ${!!error && 'is-invalid'}`}\n type='text'\n value={other}\n placeholder='What do you do?'\n autoFocus\n onChange={onChangeOther}\n />\n {!!error && <FormFeedback name={props.id}>{error}</FormFeedback>}\n </div>\n }\n </div>\n );\n}","import React from 'react';\n\nexport function CloseIcon(): JSX.Element {\n return (\n <svg viewBox='0 0 24 24'>\n <path d='M11.959 10.641l4.402-4.296a.964.964 0 0 1 1.358 0 .951.951 0 0 1 0 1.35l-4.403 4.297 4.403 4.378a.951.951 0 0 1 0 1.35.964.964 0 0 1-1.358 0l-4.402-4.378-4.32 4.378a.964.964 0 0 1-1.358 0 .951.951 0 0 1 0-1.35l4.32-4.378-4.32-4.362a.951.951 0 0 1 0-1.35.964.964 0 0 1 1.358 0l4.32 4.361z'/>\n </svg>\n );\n}","import React from 'react';\n\nimport { CloseIcon } from 'libs/shared/images/components/CloseIcon';\n\nimport styles from './clearable-input.module.scss';\n\ninterface ClearInputProps extends React.HTMLProps<HTMLInputElement> {\n showClearButton?: boolean;\n onClickClear: () => void;\n clearClassName?: string;\n}\n\nexport const ClearableInput = React.forwardRef((\n props: ClearInputProps,\n ref: React.ForwardedRef<HTMLInputElement>\n) => {\n const { onClickClear, showClearButton, clearClassName, ...inputProps } = props;\n\n return (\n <div className='position-relative'>\n <input\n {...inputProps}\n ref={ref}\n className={`${props.className} ${styles.clearableInput}`}\n />\n {(!!props.value || showClearButton) &&\n <span\n className={`${styles.clearInput} position-absolute cursor-pointer text-secondary ${clearClassName || ''}`}\n role='button'\n onClick={onClickClear}\n onKeyDown={(e: React.KeyboardEvent) => e.key === 'Enter' && onClickClear()}\n tabIndex={0}\n >\n <div className='d-inline-block svg-container md'>\n <CloseIcon />\n </div>\n </span>\n }\n </div>\n );\n});","// do not edit .js files directly - edit src/index.jst\n\n\n\nvar fastDeepEqual = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n\n/**\n * Copyright 2019 Google LLC. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at.\n *\n * Http://www.apache.org/licenses/LICENSE-2.0.\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst DEFAULT_ID = \"__googleMapsScriptId\";\n/**\n * The status of the [[Loader]].\n */\nvar LoaderStatus;\n(function (LoaderStatus) {\n LoaderStatus[LoaderStatus[\"INITIALIZED\"] = 0] = \"INITIALIZED\";\n LoaderStatus[LoaderStatus[\"LOADING\"] = 1] = \"LOADING\";\n LoaderStatus[LoaderStatus[\"SUCCESS\"] = 2] = \"SUCCESS\";\n LoaderStatus[LoaderStatus[\"FAILURE\"] = 3] = \"FAILURE\";\n})(LoaderStatus || (LoaderStatus = {}));\n/**\n * [[Loader]] makes it easier to add Google Maps JavaScript API to your application\n * dynamically using\n * [Promises](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise).\n * It works by dynamically creating and appending a script node to the the\n * document head and wrapping the callback function so as to return a promise.\n *\n * ```\n * const loader = new Loader({\n * apiKey: \"\",\n * version: \"weekly\",\n * libraries: [\"places\"]\n * });\n *\n * loader.load().then((google) => {\n * const map = new google.maps.Map(...)\n * })\n * ```\n */\nclass Loader {\n /**\n * Creates an instance of Loader using [[LoaderOptions]]. No defaults are set\n * using this library, instead the defaults are set by the Google Maps\n * JavaScript API server.\n *\n * ```\n * const loader = Loader({apiKey, version: 'weekly', libraries: ['places']});\n * ```\n */\n constructor({ apiKey, authReferrerPolicy, channel, client, id = DEFAULT_ID, language, libraries = [], mapIds, nonce, region, retries = 3, url = \"https://maps.googleapis.com/maps/api/js\", version, }) {\n this.CALLBACK = \"__googleMapsCallback\";\n this.callbacks = [];\n this.done = false;\n this.loading = false;\n this.errors = [];\n this.apiKey = apiKey;\n this.authReferrerPolicy = authReferrerPolicy;\n this.channel = channel;\n this.client = client;\n this.id = id || DEFAULT_ID; // Do not allow empty string\n this.language = language;\n this.libraries = libraries;\n this.mapIds = mapIds;\n this.nonce = nonce;\n this.region = region;\n this.retries = retries;\n this.url = url;\n this.version = version;\n if (Loader.instance) {\n if (!fastDeepEqual(this.options, Loader.instance.options)) {\n throw new Error(`Loader must not be called again with different options. ${JSON.stringify(this.options)} !== ${JSON.stringify(Loader.instance.options)}`);\n }\n return Loader.instance;\n }\n Loader.instance = this;\n }\n get options() {\n return {\n version: this.version,\n apiKey: this.apiKey,\n channel: this.channel,\n client: this.client,\n id: this.id,\n libraries: this.libraries,\n language: this.language,\n region: this.region,\n mapIds: this.mapIds,\n nonce: this.nonce,\n url: this.url,\n authReferrerPolicy: this.authReferrerPolicy,\n };\n }\n get status() {\n if (this.errors.length) {\n return LoaderStatus.FAILURE;\n }\n if (this.done) {\n return LoaderStatus.SUCCESS;\n }\n if (this.loading) {\n return LoaderStatus.LOADING;\n }\n return LoaderStatus.INITIALIZED;\n }\n get failed() {\n return this.done && !this.loading && this.errors.length >= this.retries + 1;\n }\n /**\n * CreateUrl returns the Google Maps JavaScript API script url given the [[LoaderOptions]].\n *\n * @ignore\n */\n createUrl() {\n let url = this.url;\n url += `?callback=${this.CALLBACK}`;\n if (this.apiKey) {\n url += `&key=${this.apiKey}`;\n }\n if (this.channel) {\n url += `&channel=${this.channel}`;\n }\n if (this.client) {\n url += `&client=${this.client}`;\n }\n if (this.libraries.length > 0) {\n url += `&libraries=${this.libraries.join(\",\")}`;\n }\n if (this.language) {\n url += `&language=${this.language}`;\n }\n if (this.region) {\n url += `®ion=${this.region}`;\n }\n if (this.version) {\n url += `&v=${this.version}`;\n }\n if (this.mapIds) {\n url += `&map_ids=${this.mapIds.join(\",\")}`;\n }\n if (this.authReferrerPolicy) {\n url += `&auth_referrer_policy=${this.authReferrerPolicy}`;\n }\n return url;\n }\n deleteScript() {\n const script = document.getElementById(this.id);\n if (script) {\n script.remove();\n }\n }\n /**\n * Load the Google Maps JavaScript API script and return a Promise.\n */\n load() {\n return this.loadPromise();\n }\n /**\n * Load the Google Maps JavaScript API script and return a Promise.\n *\n * @ignore\n */\n loadPromise() {\n return new Promise((resolve, reject) => {\n this.loadCallback((err) => {\n if (!err) {\n resolve(window.google);\n }\n else {\n reject(err.error);\n }\n });\n });\n }\n /**\n * Load the Google Maps JavaScript API script with a callback.\n */\n loadCallback(fn) {\n this.callbacks.push(fn);\n this.execute();\n }\n /**\n * Set the script on document.\n */\n setScript() {\n if (document.getElementById(this.id)) {\n // TODO wrap onerror callback for cases where the script was loaded elsewhere\n this.callback();\n return;\n }\n const url = this.createUrl();\n const script = document.createElement(\"script\");\n script.id = this.id;\n script.type = \"text/javascript\";\n script.src = url;\n script.onerror = this.loadErrorCallback.bind(this);\n script.defer = true;\n script.async = true;\n if (this.nonce) {\n script.nonce = this.nonce;\n }\n document.head.appendChild(script);\n }\n /**\n * Reset the loader state.\n */\n reset() {\n this.deleteScript();\n this.done = false;\n this.loading = false;\n this.errors = [];\n this.onerrorEvent = null;\n }\n resetIfRetryingFailed() {\n if (this.failed) {\n this.reset();\n }\n }\n loadErrorCallback(e) {\n this.errors.push(e);\n if (this.errors.length <= this.retries) {\n const delay = this.errors.length * Math.pow(2, this.errors.length);\n console.log(`Failed to load Google Maps script, retrying in ${delay} ms.`);\n setTimeout(() => {\n this.deleteScript();\n this.setScript();\n }, delay);\n }\n else {\n this.onerrorEvent = e;\n this.callback();\n }\n }\n setCallback() {\n window.__googleMapsCallback = this.callback.bind(this);\n }\n callback() {\n this.done = true;\n this.loading = false;\n this.callbacks.forEach((cb) => {\n cb(this.onerrorEvent);\n });\n this.callbacks = [];\n }\n execute() {\n this.resetIfRetryingFailed();\n if (this.done) {\n this.callback();\n }\n else {\n // short circuit and warn if google.maps is already loaded\n if (window.google && window.google.maps && window.google.maps.version) {\n console.warn(\"Google Maps already loaded outside @googlemaps/js-api-loader.\" +\n \"This may result in undesirable behavior as options and script parameters may not match.\");\n this.callback();\n return;\n }\n if (this.loading) ;\n else {\n this.loading = true;\n this.setCallback();\n this.setScript();\n }\n }\n }\n}\n\nexport { DEFAULT_ID, Loader, LoaderStatus };\n//# sourceMappingURL=index.esm.js.map\n","import React from 'react';\nimport { Loader } from '@googlemaps/js-api-loader';\n\ntype LibrariesType = 'drawing' | 'geometry' | 'places' | 'visualization';\n\ninterface UseGoogleApiOptions {\n libraries?: LibrariesType[];\n apiKey: string;\n}\n\nfunction setupLoader(config: UseGoogleApiOptions) {\n return new Loader({\n apiKey: config.apiKey,\n version: 'weekly',\n libraries: config.libraries,\n retries: 3\n });\n}\n\nexport function useGoogleApi(options: UseGoogleApiOptions) {\n const config = {\n apiKey: options.apiKey,\n libraries: options.libraries || ['places']\n };\n\n const [ loaded, setLoaded ] = React.useState(false);\n const [ loader, setLoader ] = React.useState<Loader>(setupLoader(config));\n\n React.useEffect(() => {\n loaderCallback();\n }, []);\n\n function loaderCallback(onLoad?: () => void, onError?: (error: ErrorEvent) => void): void {\n if (!loader) {\n setLoader(setupLoader(config));\n return;\n }\n \n loader.loadCallback(error => {\n if (error) {\n setLoaded(false);\n onError && onError(error);\n return;\n }\n\n setLoaded(true);\n onLoad && onLoad();\n });\n }\n\n return {\n loader,\n scriptLoaded: loaded,\n onGoogleApiReady: loaderCallback\n };\n}","import React from 'react';\n\nimport { useGoogleApi } from 'libs/shared/apps/sign-up/hooks/useGoogleApi';\n\ninterface AutoCompleteServiceOptions {\n googleApiKey: string;\n}\n\nexport function useAutoCompleteService(options: AutoCompleteServiceOptions) {\n const { scriptLoaded } = useGoogleApi({ apiKey: options.googleApiKey });\n const [ autoCompleteService, setAutocompleteService ] = React.useState<google.maps.places.AutocompleteService>();\n\n React.useEffect(() => {\n if (!scriptLoaded)\n return;\n\n setAutocompleteService(new google.maps.places.AutocompleteService());\n }, [scriptLoaded]);\n\n return autoCompleteService;\n}","import React from 'react';\n\nimport { LocalStorageHelper } from 'libs/common/backbone/utils/LocalStorageHelper';\nimport { RandomHelper } from 'libs/common/react/utils/RandomHelper';\n\nimport { LocalityHelper } from 'libs/shared/apps/sign-up/helpers/LocalityHelper';\nimport { useAutoCompleteService } from 'libs/shared/apps/sign-up/hooks/useAutoCompleteService';\nimport { GeoLocation } from 'libs/shared/interfaces/responses/GeoLocation';\n\nconst DEFAULT_COUNTRY_CODE = 'us';\nconst STORAGE_KEY = 'country:placeholder:text';\n\ninterface CountryPlaceholderParams {\n geoLocation: GeoLocation;\n apiKey: string;\n makeRequest?: boolean;\n template?: string;\n templateKey?: string;\n}\n\nfunction getCachedPlaceholder(geoLocation: GeoLocation): string {\n const supportedPlaceholder = LocalityHelper.getLocalizedLocalityPlaceholderText(geoLocation?.countryCode);\n if (supportedPlaceholder)\n return supportedPlaceholder;\n\n const cachedPlaceholder: string = LocalStorageHelper.cacheGet(`${STORAGE_KEY}:${geoLocation?.countryCode}`);\n if (cachedPlaceholder)\n return cachedPlaceholder;\n\n return undefined;\n}\n\nfunction getRandomLowerCaseLetter() {\n return String.fromCharCode(96 + RandomHelper.getRandomInt(26));\n}\n\nexport function useCountryPlaceholder({\n apiKey,\n geoLocation,\n makeRequest = true,\n template = 'E.g. [placeholder]',\n templateKey = '[placeholder]'\n}: CountryPlaceholderParams) {\n const autoCompleteService = useAutoCompleteService({ googleApiKey: apiKey });\n const [ placeholder, setPlaceholder ] = React.useState<string>(() => getCachedPlaceholder(geoLocation));\n\n\n React.useEffect(() => {\n if (placeholder || !autoCompleteService || !makeRequest)\n return;\n\n const countryCode = geoLocation?.countryCode || DEFAULT_COUNTRY_CODE;\n\n const searchInput = getRandomLowerCaseLetter();\n\n const request: google.maps.places.AutocompletionRequest = {\n input: searchInput,\n types: ['(cities)'],\n region: countryCode,\n componentRestrictions: { country: countryCode }\n };\n\n autoCompleteService.getPlacePredictions(\n request,\n (result, status) => getRandomLocality(result, status, countryCode)\n );\n }, [ placeholder, autoCompleteService, geoLocation, makeRequest ]);\n\n function setCachedPlaceholder(placeholder: string, countryCode: string) {\n LocalStorageHelper.cacheSet(`${STORAGE_KEY}:${countryCode}`, placeholder, 86400); // 24 hour\n setPlaceholder(placeholder);\n }\n\n function getRandomLocality(\n results: google.maps.places.AutocompletePrediction[],\n status: google.maps.places.PlacesServiceStatus,\n countryCode: string\n ) {\n if (status !== google.maps.places.PlacesServiceStatus.OK || !results) {\n setCachedPlaceholder(LocalityHelper.getLocalizedLocalityPlaceholderText(DEFAULT_COUNTRY_CODE), countryCode);\n return;\n }\n\n const randomIndex = RandomHelper.getRandomInt(results.length);\n const randomCity = results[randomIndex].description;\n\n setCachedPlaceholder(template.replace(templateKey, randomCity), countryCode);\n }\n\n return placeholder;\n}","import React from 'react';\n\ninterface UseDropdownEventsOptions {\n onSelected: (index: number) => void;\n itemCount: number;\n hideOnBlur: boolean;\n hideInitially?: boolean;\n hideOnEnter?: boolean;\n}\n\nexport function useDropdownEvents(options: UseDropdownEventsOptions) {\n const [ selectedIndex, setSelectedIndex ] = React.useState<number>(0);\n const containerRef = React.useRef<HTMLDivElement>(null);\n const [ hide, setHide ] = React.useState(!!options.hideInitially);\n\n // eslint-disable-next-line rulesdir/require-view-title\n function scrollIntoView(): void {\n if (!containerRef.current)\n return;\n\n containerRef.current.children[selectedIndex - 1]?.scrollIntoView({ block: 'center' });\n }\n\n function onKeyDown(event: React.KeyboardEvent<HTMLInputElement>): void {\n if (options.hideOnEnter)\n setHide(false);\n\n if (event.code === 'ArrowDown') {\n event.stopPropagation();\n event.preventDefault();\n\n let newIndex = selectedIndex + 1;\n if (newIndex > options.itemCount)\n newIndex = 1;\n\n setSelectedIndex(newIndex);\n scrollIntoView();\n return;\n }\n\n if (event.code === 'ArrowUp') {\n event.stopPropagation();\n event.preventDefault();\n\n let newIndex = selectedIndex - 1;\n if (newIndex <= 0)\n newIndex = options.itemCount;\n\n setSelectedIndex(newIndex);\n scrollIntoView();\n return;\n }\n\n if (event.code === 'Enter' && selectedIndex > 0) {\n event.stopPropagation();\n event.preventDefault();\n\n options.onSelected(selectedIndex - 1);\n\n if (options.hideOnEnter)\n setHide(true);\n return;\n }\n\n setSelectedIndex(0);\n }\n \n function onFocus() {\n if (!options.hideOnBlur)\n return;\n\n setHide(false);\n }\n\n function onBlur() {\n if (!options.hideOnBlur)\n return;\n \n setHide(true);\n }\n\n return {\n selectedIndex,\n onKeyDown,\n containerRef,\n hide,\n onFocus,\n onBlur\n };\n}","export interface PlaceDetailsType {\n locality?: string;\n country?: string;\n city?: string;\n province?: string;\n postalCode?: string;\n longitude?: number;\n latitude?: number;\n}\n\nexport const PlaceHelper = {\n getPlaceDetails(result: google.maps.GeocoderResult | google.maps.places.PlaceResult): PlaceDetailsType {\n let city: string;\n let province: string;\n let country: string;\n let postalCode: string;\n\n const locality = result.formatted_address;\n \n for (const component of result.address_components) {\n for (const type of component.types) {\n /**\n * @todo if we cant find any of these type we will return an empty value so we need to look for more types (eg for. Austin Township, IL)\n */\n\n if (type === 'locality') {\n // locality = component.short_name;\n city = component.short_name;\n }\n\n if (type === 'administrative_area_level_1') {\n // locality += ', ' + component.short_name;\n province = component.short_name;\n }\n\n if (type === 'postal_code') {\n // locality += ', ' + component.short_name;\n postalCode = component.short_name;\n }\n\n if (type === 'country')\n country = component.short_name;\n }\n }\n return { locality, country, postalCode, city, province };\n }\n};","import React from 'react';\n\nimport { PlaceDetailsType, PlaceHelper } from 'libs/shared/apps/sign-up/helpers/PlaceHelper';\nimport { useGoogleApi } from 'libs/shared/apps/sign-up/hooks/useGoogleApi';\n\n/**\n * @note\n * In version 4.1.x the types have been changed to:\n * PositionError = GeolocationPositionError\n * Position = GeolocationPosition\n */\n\nconst ErrorPhraseMap: {[key: number]: string} = {\n 1: 'geocoderPermissionDenied',\n 2: 'geocoderUnavailable',\n 3: 'geocoderTimeout'\n};\n\ninterface UseGeocoderOptions {\n apiKey: string;\n onPositionError: (error: string) => void;\n}\n\nexport function useGeocoder(options: UseGeocoderOptions) {\n const [ details, setDetails ] = React.useState<PlaceDetailsType>({});\n\n const { onGoogleApiReady } = useGoogleApi(options);\n\n function onClickGetCurrentLocation() {\n onGoogleApiReady(() => {\n window.navigator.geolocation.getCurrentPosition(\n onPositionSuccess,\n onPositionError\n );\n });\n }\n\n function onPositionSuccess(position: GeolocationPosition) {\n const { latitude, longitude } = position.coords;\n \n const location = new google.maps.LatLng(latitude, longitude);\n const geocoder = new google.maps.Geocoder();\n\n geocoder.geocode(\n { location },\n (result, status) => {\n /**\n * @todo Handle state when status is other than OK\n */\n if (status !== google.maps.GeocoderStatus.OK)\n return;\n\n /**\n * @todo Handle state if this returns undefined\n */\n const place = result.find(item => {\n return item.types.includes('locality') || item.types.includes('administrative_area_level_2');\n });\n \n const details = PlaceHelper.getPlaceDetails(place);\n setDetails({\n ...details,\n longitude: longitude,\n latitude: latitude\n });\n }\n );\n }\n\n function onPositionError(error: GeolocationPositionError): void {\n let errorMessagePhrase = ErrorPhraseMap[error.code];\n if (!errorMessagePhrase) {\n errorMessagePhrase = 'geocoderUnknown';\n }\n options.onPositionError('We are unable to access your location. Please try again later.');\n }\n\n return {\n placeDetails: details,\n onClickGetCurrentLocation\n };\n}","import React from 'react';\n\nimport { PlaceDetailsType, PlaceHelper } from 'libs/shared/apps/sign-up/helpers/PlaceHelper';\nimport { useAutoCompleteService } from 'libs/shared/apps/sign-up/hooks/useAutoCompleteService';\nimport { useDebounce } from 'libs/shared/hooks/UseDebounce';\nimport { GeoLocation } from 'libs/shared/interfaces/responses/GeoLocation';\n\ninterface LocalitySearchParams {\n search: string;\n makePredicition: boolean;\n geoLocation: GeoLocation;\n apiKey: string;\n}\n\nexport function useLocalitySearch({\n search,\n makePredicition,\n geoLocation,\n apiKey\n}: LocalitySearchParams) {\n const autoCompleteService = useAutoCompleteService({ googleApiKey: apiKey });\n const debouncedSearch: string = useDebounce(search, 300);\n const [ localityPredicitions, setLocalityPredicitions ] =\n React.useState<google.maps.places.QueryAutocompletePrediction[]>();\n\n React.useEffect(() => {\n if (!autoCompleteService)\n return;\n\n if (debouncedSearch?.length === 0 || !makePredicition) {\n setLocalityPredicitions(undefined);\n return;\n }\n\n const countryCode = geoLocation?.countryCode || 'us';\n autoCompleteService.getPlacePredictions({\n input: debouncedSearch,\n componentRestrictions: geoLocation?.isFallback ? undefined : {\n country: countryCode\n },\n region: countryCode,\n types: [ 'locality', 'sublocality', 'postal_code' ]\n }, getLocalityPredictions);\n }, [ debouncedSearch, makePredicition, autoCompleteService ]);\n\n function getLocalityPredictions(\n predicitions: google.maps.places.QueryAutocompletePrediction[] | null,\n status: google.maps.places.PlacesServiceStatus\n ) {\n /**\n * @todo Handle state when status is other than OK\n */\n if (status !== google.maps.places.PlacesServiceStatus.OK || !predicitions) {\n setLocalityPredicitions(undefined);\n return;\n }\n setLocalityPredicitions(predicitions);\n }\n\n function getPlaceInfo(\n predicition: google.maps.places.QueryAutocompletePrediction,\n inputRef: React.MutableRefObject<HTMLInputElement>,\n callback: (placeData: PlaceDetailsType) => void\n ) {\n const placeService = new google.maps.places.PlacesService(inputRef.current);\n placeService.getDetails({\n placeId: predicition.place_id,\n fields: [ 'geometry', 'address_components', 'formatted_address' ],\n region: geoLocation.countryCode\n }, (place, status) => {\n if (status !== google.maps.places.PlacesServiceStatus.OK) return;\n const longitude = place.geometry.location.lng();\n const latitude = place.geometry.location.lat();\n const { locality, country, postalCode, city, province } = PlaceHelper.getPlaceDetails(place);\n callback({ longitude, latitude, locality, country, city, postalCode, province });\n });\n }\n\n return { localityPredicitions, getPlaceInfo };\n}","import React from 'react';\n\nexport function CrosshairIcon(): JSX.Element {\n return (\n <svg viewBox='0 0 24 24'>\n <path d='m12.00559,20.40189c4.60881,0 8.37242,-3.78424 8.37242,-8.40189c0,-4.61764 -3.76361,-8.40187 -8.37242,-8.40187c-4.62002,0 -8.38365,3.78422 -8.38365,8.40187c0,4.61765 3.76364,8.40189 8.38365,8.40189zm0,-1.65557c-3.75235,0 -6.67085,-2.96208 -6.67085,-6.74632c0,-3.7842 2.91851,-6.74625 6.67085,-6.74625c3.74105,0 6.67084,2.96206 6.67084,6.74625c0,3.78424 -2.92978,6.74632 -6.67084,6.74632zm-10.14151,-6.02552l6.01731,0c0.40566,0 0.72118,-0.31536 0.72118,-0.7208c0,-0.40544 -0.31552,-0.7208 -0.72118,-0.7208l-6.01731,0c-0.40566,0 -0.72117,0.31536 -0.72117,0.7208c0,0.40544 0.31551,0.7208 0.72118,0.7208l-0.00001,0zm14.25442,0l6.0174,0c0.40565,0 0.72118,-0.31536 0.72118,-0.7208c0,-0.40544 -0.31553,-0.7208 -0.72118,-0.7208l-6.0174,0c-0.40565,0 -0.72118,0.31536 -0.72118,0.7208c0,0.40544 0.31553,0.7208 0.72118,0.7208zm-4.12417,-4.1221c0.40566,0 0.72118,-0.31534 0.72118,-0.70952l0,-6.02547c0,-0.40544 -0.31552,-0.7208 -0.72118,-0.7208c-0.3944,0 -0.7099,0.31536 -0.7099,0.7208l0,6.02547c0,0.39418 0.31551,0.70952 0.7099,0.70952zm0,14.25838c0.40566,0 0.72118,-0.3154 0.72118,-0.72077l0,-6.02541c0,-0.39425 -0.31552,-0.70965 -0.72118,-0.70965c-0.3944,0 -0.7099,0.3154 -0.7099,0.70965l0,6.02541c0,0.40538 0.31551,0.72077 0.7099,0.72077z'/>\n </svg>\n );\n}","import React from 'react';\n\nimport { AnalyticsOptions, HashObject, SignUpDescriptors, UserAction } from 'libs/analytics/interfaces';\n\nimport { ClearableInput } from 'libs/shared/apps/sign-up/components/general/clear-input/ClearableInput';\nimport { PlaceDetailsType } from 'libs/shared/apps/sign-up/helpers/PlaceHelper';\nimport { useCountryPlaceholder } from 'libs/shared/apps/sign-up/hooks/useCountryPlaceholder';\nimport { useDropdownEvents } from 'libs/shared/apps/sign-up/hooks/useDropdownEvents';\nimport { useGeocoder } from 'libs/shared/apps/sign-up/hooks/useGeocoder';\nimport { useLocalitySearch } from 'libs/shared/apps/sign-up/hooks/useLocalitySearch';\nimport { SearchSchoolData } from 'libs/shared/apps/sign-up/interfaces/SearchSchoolData';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { CrosshairIcon } from 'libs/shared/images/components/CrosshairIcon';\nimport { GeoLocation } from 'libs/shared/interfaces/responses/GeoLocation';\n\nimport styles from './search-school-step-item.module.scss';\n\ninterface SearchLocalityInputProps {\n data: SearchSchoolData;\n disabled?: boolean;\n geoLocation: GeoLocation;\n googleMapsApiKey: string;\n \n setData: (placeData: SearchSchoolData) => void;\n clearData: () => void;\n logUserAction?: (data: HashObject | HashObject[], analyticsOptions: AnalyticsOptions) => void;\n\n labelClassName?: string;\n required?: boolean\n autoFocus?: boolean;\n size?: 'lg'\n useGeoLocationApi?: boolean;\n hideOnBlur?: boolean;\n}\n\ninterface LocalityPredictionsProps {\n predictions: google.maps.places.QueryAutocompletePrediction[];\n getPlaceInfo: (predicition: google.maps.places.QueryAutocompletePrediction) => void;\n selectedIndex: number;\n}\n\nfunction LocalityPredicitions(props: LocalityPredictionsProps): JSX.Element {\n const { predictions, getPlaceInfo, selectedIndex } = props;\n return (\n <>\n {predictions.map((predicition, index) => (\n <DivButton\n className={`${styles.suggestionItem} ${selectedIndex - 1 === index ? styles.selected : ''}`}\n key={predicition.place_id}\n onKeyDown={e => e.key === 'Enter' && getPlaceInfo(predicition)}\n onMouseDown={() => getPlaceInfo(predicition)}\n onClick={() => getPlaceInfo(predicition)}\n >\n {predicition.description}\n </DivButton>\n ))}\n </>\n );\n}\n\nexport function SearchLocalityInput(props: SearchLocalityInputProps): JSX.Element {\n const inputRef = React.useRef<HTMLInputElement>(null);\n const [ locality, setLocality ] = React.useState<string>(props.data?.schoolLocality || '');\n const [ makePredicition, setMakePredicition ] = React.useState(false);\n const countryPlaceholderText = useCountryPlaceholder({\n apiKey: props.googleMapsApiKey,\n geoLocation: props.geoLocation\n });\n const { localityPredicitions, getPlaceInfo } = useLocalitySearch({\n search: locality,\n makePredicition,\n geoLocation: props.geoLocation,\n apiKey: props.googleMapsApiKey\n });\n const { placeDetails, onClickGetCurrentLocation } = useGeocoder({\n apiKey: props.googleMapsApiKey,\n onPositionError\n });\n const extraItem = window.navigator.geolocation ? 1 : 0;\n const { selectedIndex, onKeyDown, containerRef, hide, onBlur, onFocus } = useDropdownEvents({\n onSelected, itemCount: (localityPredicitions?.length ?? 0) + extraItem, hideOnBlur: props.hideOnBlur\n });\n const [ geocoderError, setGeocoderError ] = React.useState<string>();\n\n React.useEffect(() => {\n setData(placeDetails);\n }, [placeDetails]);\n\n function onPositionError(error: string) {\n setMakePredicition(true);\n setGeocoderError(error);\n }\n\n function onSetLocality(localityValue: string): void {\n if (geocoderError) {\n setGeocoderError(undefined);\n }\n \n if (!makePredicition) {\n setMakePredicition(true);\n }\n if (props.data?.longitude || props.data?.latitude || props.data?.schoolLocality) {\n props.clearData();\n }\n setLocality(localityValue);\n }\n\n function onClickClearLocality(): void {\n onSetLocality('');\n inputRef.current.focus();\n }\n\n function onSelected(index: number): void {\n if (!localityPredicitions)\n return;\n\n if (index === localityPredicitions.length) {\n handleOnClickGetCurrentLocation();\n return;\n }\n\n const selected = localityPredicitions[index];\n\n if (selected)\n handleGetPlaceInfo(selected);\n }\n\n function setData(placeData: PlaceDetailsType) {\n props.setData({\n schoolLocality: placeData.locality,\n country: placeData.country,\n province: placeData.province,\n schoolPostCode: placeData.postalCode,\n longitude: placeData.longitude,\n latitude: placeData.latitude\n });\n placeData.locality && setLocality(placeData.locality);\n }\n\n function handleGetPlaceInfo(predicition: google.maps.places.QueryAutocompletePrediction) {\n if (makePredicition) setMakePredicition(false);\n\n getPlaceInfo(\n predicition,\n inputRef,\n setData\n );\n }\n\n function handleOnClickGetCurrentLocation(event?: React.MouseEvent) {\n event?.preventDefault();\n setMakePredicition(false);\n onClickGetCurrentLocation();\n\n props.logUserAction?.({}, {\n actionType: UserAction.Click,\n descriptor: SignUpDescriptors.UseMyLocation\n });\n }\n\n function getInputClass() {\n let baseClass = 'form-control';\n\n if (props.size === 'lg')\n baseClass += ' form-control-lg';\n\n if (!isInputFocused || hide) {\n return `${baseClass} ${styles.input}`;\n }\n\n return `${baseClass} ${styles.inputFocused}`;\n }\n\n const isInputFocused = localityPredicitions?.length && !props.data?.schoolLocality?.length;\n const geoLocationEnabled = window.navigator.geolocation && !props.data?.schoolLocality?.length;\n\n const labelClassName = props.labelClassName || `d-block text-center mb-3 fw-normal ${styles.baseText}`;\n let className = 'form-group position-relative';\n\n if (props.size === 'lg')\n className += ` ${styles.large}`;\n\n return (\n <div className={className}>\n <label\n className={labelClassName}\n htmlFor='locality-input'\n >\n ZIP code or city\n {props.required && <span className='text-danger'>*</span>}\n </label>\n <ClearableInput\n type='text'\n value={locality}\n onChange={e => onSetLocality(e.currentTarget.value)}\n id='locality-input'\n className={getInputClass()}\n ref={inputRef}\n autoComplete='off'\n placeholder={countryPlaceholderText || 'Loading...'}\n disabled={props.disabled || !countryPlaceholderText}\n autoFocus={props?.autoFocus}\n onClickClear={onClickClearLocality}\n onKeyDown={onKeyDown}\n onFocus={onFocus}\n onBlur={onBlur}\n />\n <div className={`position-absolute z-1 w-100 ${styles.dropdown} ${hide ? 'd-none' : ''}`}>\n {!!isInputFocused &&\n <div className={styles.suggestionContainer} ref={containerRef}>\n <LocalityPredicitions\n predictions={localityPredicitions}\n getPlaceInfo={handleGetPlaceInfo}\n selectedIndex={selectedIndex}\n />\n {window.navigator.geolocation && props.useGeoLocationApi &&\n <DivButton\n className={`${styles.suggestionItem} px-1 ${selectedIndex - 1 === localityPredicitions.length ? styles.selected : ''}`}\n onClick={handleOnClickGetCurrentLocation}\n >\n <div className='btn btn-link info-link btn-with-icon bg-transparent py-0 pe-1'>\n <CrosshairIcon />\n Use my current location\n </div>\n </DivButton>\n }\n </div>\n }\n {geoLocationEnabled && !isInputFocused && props.useGeoLocationApi &&\n <div className={`d-flex ${styles.useMyLocation}`}>\n <button onClick={handleOnClickGetCurrentLocation} className='btn btn-link info-link bg-white btn-with-icon'>\n <CrosshairIcon />\n Use my current location\n </button>\n </div>\n }\n {!!geocoderError && (\n <div className='text-danger p-2'>\n {geocoderError}\n </div>\n )}\n </div>\n </div>\n );\n}","export class ApiError<T> extends Error {\n public body: T;\n \n constructor(body: T, message: string = 'Error') {\n super(message);\n this.body = body;\n }\n}","import { HashObject } from 'libs/analytics/interfaces';\n\nexport const UrlHelper = {\n prepareQuery(baseUrl: string, requestData: HashObject): string {\n let finalUrl = baseUrl;\n Object.keys(requestData).forEach((key: string, index: number) => {\n if (requestData[key]) {\n if (index === 0) {\n finalUrl += '?';\n } else {\n finalUrl += '&';\n }\n finalUrl += `${key}=${encodeURIComponent(requestData[key])}`;\n }\n });\n\n return finalUrl;\n }\n};","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\n\nimport { HashObject } from 'libs/analytics/interfaces';\n\nimport { ApiError } from 'libs/shared/apps/sign-up/errors/ApiError';\nimport { UrlHelper } from 'libs/shared/apps/sign-up/helpers/UrlHelper';\n\ninterface FetchOptions<T, X> {\n url: string;\n method?: HttpVerbs;\n data?: HashObject;\n init?: RequestInit;\n success?: (data: T) => void;\n error?: (data?: X) => void;\n always?: () => void;\n}\n\nfunction prepareRequest<T, X = any>(options: FetchOptions<T, X>) {\n let init: RequestInit = {\n method: HttpVerbs.GET,\n headers: {\n 'Content-type': 'application/json'\n }\n };\n\n if (options.method) {\n init = { ...init, method: options.method };\n }\n\n if (options.init) {\n init = { ...init, ...options.init };\n }\n\n let url = options.url;\n\n if (init.method === HttpVerbs.GET && options.data) {\n url = UrlHelper.prepareQuery(url, options.data);\n } else if (options.data) {\n init = {\n ...init,\n body: JSON.stringify(options.data)\n };\n }\n return {\n init,\n url\n };\n}\n\nexport const FetchHelper = {\n async asyncFetch<T, X = any>(options: FetchOptions<T, X>) {\n const request = prepareRequest<T, X>(options);\n const response = await fetch(request.url, request.init);\n\n if (!response.ok) {\n const json: X = await response.json();\n throw new ApiError<X>(json);\n }\n // No content response\n if (response.status === 204) {\n return;\n }\n \n return await response.json() as T;\n },\n\n async asyncFetchPlain<T, X>(options: FetchOptions<T, X>) {\n const request = prepareRequest<T, X>(options);\n const response = await fetch(request.url, request.init);\n\n if (!response.ok) {\n return;\n }\n return await response.text();\n },\n\n fetch<T, X = any>(options: FetchOptions<T, X>): Promise<T> {\n const request = prepareRequest<T, X>(options);\n \n return fetch(request.url, request.init)\n .then<T>(response => {\n if (response.status === 204) {\n return;\n }\n return response.json();\n })\n .then<T>((data: T) => {\n if (options.success)\n options.success(data);\n\n return data;\n })\n .catch<T>((reason: any) => {\n if (options.error)\n options.error();\n\n return reason;\n })\n .finally(() => {\n if (options.always)\n options.always();\n });\n }\n};","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\n\nimport { HashObject } from 'libs/analytics/interfaces';\n\nimport { ProspectLookup } from 'libs/shared/apps/sign-up/enums/ProspectLookup';\nimport { FetchHelper } from 'libs/shared/apps/sign-up/helpers/FetchHelper';\nimport { CreateProspectRequest } from 'libs/shared/apps/sign-up/interfaces/requests/CreateProspectRequest';\nimport { SearchProspectRequest } from 'libs/shared/apps/sign-up/interfaces/requests/SearchProspectRequest';\nimport { CreateProspectErrorResponse, CreateProspectSuccessResponse } from 'libs/shared/apps/sign-up/interfaces/response/CreateProspectResponse';\nimport { SearchProspectResponseItem } from 'libs/shared/apps/sign-up/interfaces/response/SearchProspectResponse';\nimport { SignUpAjaxUrls } from 'libs/shared/apps/sign-up/interfaces/SignUpAjaxUrls';\n\nexport const ProspectRequests = {\n search(\n url: string,\n data: SearchProspectRequest,\n success?: (data: SearchProspectResponseItem[]) => void,\n error?: () => void,\n always?: () => void\n ) {\n const requestData: HashObject = {\n longitude: data.longitude,\n latitude: data.latitude\n };\n\n if (data.query) {\n requestData.query = data.query;\n }\n \n FetchHelper.fetch<SearchProspectResponseItem[]>({\n url: url,\n data: requestData,\n success,\n error,\n always\n });\n },\n async create(\n urls: SignUpAjaxUrls,\n data: CreateProspectRequest\n ) {\n return FetchHelper.asyncFetch<CreateProspectSuccessResponse, CreateProspectErrorResponse>({\n url: urls.createProspect,\n method: HttpVerbs.POST,\n data: data\n });\n },\n getLookups(urls: SignUpAjaxUrls, prospectId: string) {\n return FetchHelper.asyncFetch<ProspectLookup[]>({\n url: urls.prospectLookups(prospectId)\n });\n }\n};","import React from 'react';\nimport { Spinner } from 'react-bootstrap';\n\nimport { ClearableInput } from 'libs/shared/apps/sign-up/components/general/clear-input/ClearableInput';\nimport { ProspectRequests } from 'libs/shared/apps/sign-up/fetch-requests/ProspectRequests';\nimport { useDropdownEvents } from 'libs/shared/apps/sign-up/hooks/useDropdownEvents';\nimport { SearchProspectRequest } from 'libs/shared/apps/sign-up/interfaces/requests/SearchProspectRequest';\nimport { SearchProspectResponseItem } from 'libs/shared/apps/sign-up/interfaces/response/SearchProspectResponse';\nimport { SearchSchoolData } from 'libs/shared/apps/sign-up/interfaces/SearchSchoolData';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { useDebounce } from 'libs/shared/hooks/UseDebounce';\n\nimport styles from './search-school-step-item.module.scss';\n\ninterface SearchSchoolInputProps {\n disabled: boolean;\n data: SearchSchoolData,\n setData: (data: SearchSchoolData) => void;\n\n clearData: () => void;\n searchUrl: string;\n onClickNoSuggestions: (name: string) => void;\n size?: 'lg';\n labelClassName?: string;\n required?: boolean;\n placeholder?: string;\n hideOnBlur?: boolean;\n}\n\ninterface SchoolSuggestionsProps {\n filteredSchoolsList: SearchProspectResponseItem[];\n getSchoolName: (item: SearchProspectResponseItem) => string;\n onSchoolSuggestionClick: (item: SearchProspectResponseItem) => void;\n selectedIndex: number;\n}\n\ninterface CantFindSchoolProps {\n selected: boolean;\n handleNoSuggestion: () => void;\n}\n\n/**\n * Unfortunately our cities in prospect db are a mix\n * of title case and full caps, here I just make everything title case - Sha\n */\nfunction decapitalise(city: string): string {\n return city\n .toLowerCase()\n .split(' ')\n .map(c => c.charAt(0).toUpperCase() + c.slice(1))\n .join(' ');\n}\n\nfunction getDisplayLocation(item: SearchProspectResponseItem): string {\n const displayItems: string[] = [];\n\n if (item.city)\n displayItems.push(decapitalise(item.city));\n\n if (item.province)\n displayItems.push(item.province);\n\n if (item.postCode)\n displayItems.push(item.postCode);\n\n return displayItems.join(' ');\n}\n\nfunction SchoolSuggestions(props: SchoolSuggestionsProps): JSX.Element {\n const { filteredSchoolsList, getSchoolName, onSchoolSuggestionClick, selectedIndex } = props;\n\n return (\n <>\n {filteredSchoolsList.map((item, index) => {\n return (\n <DivButton\n className={`${styles.suggestionItem} ${selectedIndex - 1 === index ? styles.selected : ''}`}\n key={item.id}\n onKeyDown={e => e.key === 'Enter' && onSchoolSuggestionClick(item)}\n onMouseDown={() => onSchoolSuggestionClick(item)}\n onClick={() => onSchoolSuggestionClick(item)}\n >\n {getSchoolName(item)} <br />\n <small className='text-secondary'>{getDisplayLocation(item)}</small>\n </DivButton>\n );\n })}\n </>\n );\n}\n\nfunction CantFindSchool(props: CantFindSchoolProps): JSX.Element {\n return (\n <div\n className={`info-link ${styles.suggestionItem} ${styles.noSuggestion} ${props.selected ? styles.selected : ''}`}\n onKeyDown={e => e.key === 'Enter' && props.handleNoSuggestion()}\n onMouseDown={props.handleNoSuggestion}\n onClick={props.handleNoSuggestion}\n >\n Can't find your school?\n </div>\n );\n}\n\nexport function SearchSchoolInput(props: SearchSchoolInputProps): JSX.Element {\n const inputRef = React.useRef<HTMLInputElement>(null);\n const [ loading, setLoading ] = React.useState(true);\n const [ name, setName ] = React.useState<string>(\n (props.data.schoolName && props.data.schoolPostCode)\n ? props.data.schoolName + ', ' + props.data.schoolPostCode\n : props.data.schoolName ? props.data.schoolName : ''\n );\n const [ schoolsList, setSchoolsList ] = React.useState<SearchProspectResponseItem[]>();\n const debouncedName = useDebounce(name, 250);\n const { selectedIndex, onKeyDown, containerRef, hide, onBlur, onFocus } = useDropdownEvents({\n onSelected, itemCount: (schoolsList?.length ?? 0) + 1, hideOnBlur: props.hideOnBlur\n });\n\n function onSelected(index: number): void {\n if (!schoolsList && !index)\n return;\n\n if (index === schoolsList.length) {\n props.onClickNoSuggestions(name);\n return;\n }\n\n const selected = schoolsList[index];\n\n if (selected)\n onSchoolSuggestionClick(selected);\n }\n\n const schoolSelected = !!props.data?.prospectId;\n const isLoading = loading && !schoolSelected;\n const showCantFindSchool = !loading && !schoolSelected && schoolsList?.length < 5;\n const showSuggestions = schoolsList?.length && !schoolSelected;\n \n React.useEffect(() => {\n if (schoolSelected) return;\n\n if (!debouncedName.length) {\n fetchSchools();\n return;\n }\n /* \n * (debouncedName === name) makes sure that we do not send extra fetch request for the same query\n * Without this when we select a school and delete all text, it will send a request for stale\n */\n if (!schoolSelected && debouncedName.length > 1 && debouncedName === name) {\n fetchSchools(debouncedName);\n return;\n }\n }, [ debouncedName, schoolSelected ]);\n\n function onSetSchoolName(schoolNameValue: string): void {\n if (props.data.schoolName || props.data.prospectId) {\n props.clearData();\n }\n \n if (schoolNameValue !== name) {\n setName(schoolNameValue);\n }\n }\n\n function onClickClearSchoolName(): void {\n onSetSchoolName('');\n inputRef.current.focus();\n }\n\n function fetchSchools(query?: string) {\n if (!props.data.latitude && !props.data.longitude) {\n setLoading(false);\n return;\n }\n\n setLoading(true);\n const request: SearchProspectRequest = {\n latitude: props.data.latitude,\n longitude: props.data.longitude\n };\n if (query && query.length) {\n request.query = query;\n }\n\n ProspectRequests.search(\n props.searchUrl,\n request,\n data => setSchoolsList(data),\n null,\n () => setLoading(false)\n );\n }\n\n function onSchoolSuggestionClick(item: SearchProspectResponseItem): void {\n setName(getSchoolName(item));\n props.setData({\n prospectId: item.id,\n schoolName: item.name,\n schoolPostCode: item.postCode,\n schoolType: item.prospectType,\n province: item.province,\n city: item.city,\n country: item.countryCode\n });\n }\n\n function getSchoolName(item: SearchProspectResponseItem): string {\n const schoolText = item.name;\n // if (item.postCode.length) {\n // schoolText += ', ' + item.postCode;\n // }\n return schoolText;\n }\n\n \n const showSuggestionsContainer = (showSuggestions || isLoading || showCantFindSchool) && !props.disabled && !hide;\n\n let inputClassName = `form-control ${showSuggestionsContainer ? styles.inputFocused : styles.input}`;\n let className = 'form-group position-relative';\n\n if (props.size === 'lg') {\n inputClassName += ' form-control-lg';\n className += ` ${styles.large}`;\n }\n\n return (\n <div className={className}>\n <label\n className={props.labelClassName}\n htmlFor='school-input'\n >\n School\n {props.required && <span className='text-danger'>*</span>}\n </label>\n <ClearableInput\n id='school-input'\n value={name}\n onChange={e => onSetSchoolName(e.currentTarget.value)}\n ref={inputRef}\n className={inputClassName}\n type='text'\n autoComplete='off'\n placeholder={props.placeholder || 'Select your school below'}\n disabled={props.disabled}\n autoFocus\n onClickClear={onClickClearSchoolName}\n onKeyDown={onKeyDown}\n onFocus={onFocus}\n onBlur={onBlur}\n />\n <div className={`position-absolute z-1 w-100 ${styles.dropdown} ${hide ? 'd-none' : ''}`}>\n <div className={`${styles.suggestionContainer} ${!showSuggestionsContainer ? 'd-none' : ''}`} ref={containerRef}>\n {showSuggestions ?\n <SchoolSuggestions\n filteredSchoolsList={schoolsList}\n onSchoolSuggestionClick={onSchoolSuggestionClick}\n getSchoolName={getSchoolName}\n selectedIndex={selectedIndex}\n /> :\n isLoading && (\n <div className={`${styles.suggestionLoading} py-4 d-flex justify-content-center`}>\n <Spinner animation='border' />\n </div>\n )\n }\n {\n !isLoading && showCantFindSchool && (\n <CantFindSchool\n selected={selectedIndex === schoolsList.length + 1}\n handleNoSuggestion={() => {\n props.onClickNoSuggestions(name);\n }}\n />\n )\n }\n </div>\n </div>\n </div>\n );\n}"],"names":["factory","module","undefined","hex_chr","md5cycle","x","k","a","b","c","d","md5blk","s","md5blks","i","md5blk_array","md51","n","state","length","tail","tmp","lo","hi","md51_array","rhex","j","hex","clamp","val","from","to","begin","end","num","target","targetArray","sourceArray","toUtf8","str","utf8Str2ArrayBuffer","returnUInt8Array","buff","arr","arrayBuffer2Utf8Str","concatenateArrayBuffers","first","second","result","hexToBinaryString","bytes","SparkMD5","contents","raw","ret","content","hash","SCHOOL_TYPE_MAP","PROVINCE_ISO_MAP","BrazeHelper","email","normalizedEmail","object","payload","v","acc","schoolType","prospectType","mappedSchoolType","_a","province","BrazeRequests","HttpVerbs","prospectId","useProfileApiClient","useInstance","Services","BrazeSource","BrazeTopic","hydrateUserData","user","data","useBrazeClientService","braze","useInstanceSafe","SharedServices","logFormSubmission","additionalData","source","eventType","topic","productType","callback","brazeUser","useStreamableBrazeClientService","AU_K12_JOB_TITLES","UK_K12_JOB_TITLES","US_K12_JOB_TITLES","NZ_K12_JOB_TITLES","CA_K12_JOB_TITLES","AU_TERTIARY_JOB_TITLES","UK_TERTIARY_JOB_TITLES","K12_JOB_TITLES","CountryCode","TERTIARY_JOB_TITLES","getJobTitles","options","key","OTHER_VALUE","getInitialSelection","initialValue","jobTitles","JobTitleInput","props","error","onChange","countryCode","isTertiary","initialSelection","selection","setSelection","React","other","setOther","onChangeSelection","event","onChangeOther","showOther","jsxs","jsx","Fragment","title","FormFeedback","CloseIcon","ClearableInput","ref","onClickClear","showClearButton","clearClassName","inputProps","styles","e","fastDeepEqual","equal","keys","DEFAULT_ID","LoaderStatus","Loader","apiKey","authReferrerPolicy","channel","client","id","language","libraries","mapIds","nonce","region","retries","url","version","script","resolve","reject","err","fn","delay","cb","setupLoader","config","useGoogleApi","loaded","setLoaded","loader","setLoader","loaderCallback","onLoad","onError","useAutoCompleteService","scriptLoaded","autoCompleteService","setAutocompleteService","DEFAULT_COUNTRY_CODE","STORAGE_KEY","getCachedPlaceholder","geoLocation","supportedPlaceholder","LocalityHelper","cachedPlaceholder","LocalStorageHelper","getRandomLowerCaseLetter","RandomHelper","useCountryPlaceholder","makeRequest","template","templateKey","placeholder","setPlaceholder","request","status","getRandomLocality","setCachedPlaceholder","results","randomIndex","randomCity","useDropdownEvents","selectedIndex","setSelectedIndex","containerRef","hide","setHide","scrollIntoView","onKeyDown","newIndex","onFocus","onBlur","PlaceHelper","city","country","postalCode","locality","component","type","ErrorPhraseMap","useGeocoder","details","setDetails","onGoogleApiReady","onClickGetCurrentLocation","onPositionSuccess","onPositionError","position","latitude","longitude","location","place","item","useLocalitySearch","search","makePredicition","debouncedSearch","useDebounce","localityPredicitions","setLocalityPredicitions","getLocalityPredictions","predicitions","getPlaceInfo","predicition","inputRef","CrosshairIcon","LocalityPredicitions","predictions","index","DivButton","SearchLocalityInput","setLocality","setMakePredicition","countryPlaceholderText","placeDetails","extraItem","onSelected","geocoderError","setGeocoderError","setData","onSetLocality","localityValue","_b","_c","onClickClearLocality","handleOnClickGetCurrentLocation","selected","handleGetPlaceInfo","placeData","UserAction","SignUpDescriptors","getInputClass","baseClass","isInputFocused","geoLocationEnabled","_e","_d","labelClassName","className","ApiError","body","message","UrlHelper","baseUrl","requestData","finalUrl","prepareRequest","init","FetchHelper","response","json","reason","ProspectRequests","success","always","urls","decapitalise","getDisplayLocation","displayItems","SchoolSuggestions","filteredSchoolsList","getSchoolName","onSchoolSuggestionClick","CantFindSchool","SearchSchoolInput","loading","setLoading","name","setName","schoolsList","setSchoolsList","debouncedName","schoolSelected","isLoading","showCantFindSchool","showSuggestions","fetchSchools","onSetSchoolName","schoolNameValue","onClickClearSchoolName","query","showSuggestionsContainer","inputClassName","Spinner"],"mappings":"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","x_google_ignoreList":[0,12]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{j as e,G as g,c as r,db as h,h as a,af as s,o as x,M as n,dr as l,k as d,i as m,n as k,e as V,W as P,X as L}from"./app-DfSv_-O3.js";import{C as v}from"./DcOpKno_.chunk.js";import{b}from"./Digrmnl9.chunk.js";import{V as f}from"./I8EoNmf8.chunk.js";import{u as j}from"./B26T27lj.chunk.js";import"./CEmtkty-.chunk.js";import"./pkzD5BEm.chunk.js";import"./B0KMLOp5.chunk.js";const t="shared.videoGuidanceClassroomGuidePopup",C=350;function G(i){function u(o){return i.curriculums.updateCurriculum(o,{shouldLog:!0,video:i.video,locationContext:a.CurriculumGuidancePopup})}return e.jsx(g,{closePopup:i.onClickClose,showLoadingSpinner:i.isLoading,title:r.getPhrase(t,"curriculumLinks"),size:"lg",children:!i.isLoading&&e.jsxs(e.Fragment,{children:[e.jsxs(h,{autoHeightMax:C,autoHeightMin:C,autoHeight:!0,className:"pb-3",renderThumbVertical:({style:o,...c})=>e.jsx("div",{...c,style:{...o,borderRadius:"inherit",backgroundColor:"rgba(0, 0, 0, 0.2)",zIndex:5},className:"thumb-vertical"}),children:[e.jsx(v,{availableCurriculums:i.curriculums.availableCurriculums,onChangeCurriculum:u,selectedCurriculum:i.curriculums.preferredCurriculum}),e.jsx("div",{className:"pb-3",children:e.jsx(b,{curriculumLinks:i.curriculums.curriculumLinks,onChangeCurriculum:u,hasCompleted:i.curriculums.hasCompleted,mappedCurriculums:i.curriculums.mappedCurriculums,isFetching:i.curriculums.isFetching,getCodeAppLink:i.getCodeAppLink,locationContext:a.CurriculumGuidancePopup})})]}),e.jsxs(s,{children:[e.jsx(s.Cancel,{onClick:i.onClickClose,text:r.getPhrase(t,"close")}),e.jsx(s.Submit,{text:r.getPhrase(t,"viewVideo"),variant:"dark",onClick:i.onClickViewVideo})]})]})})}function S(i){const u=x(f.video(i.id)),o=j(i.id);function c(){n.logUserAction({id:u.data.id,name:u.data.name},{entity:m.Video,location:a.CurriculumGuidancePopup,actionType:d.Click,descriptor:l.Close}),i.closePopup()}function p(){n.logUserAction({id:u.data.id,name:u.data.name},{entity:m.Video,location:a.CurriculumGuidancePopup,actionType:d.Click,descriptor:l.ViewVideo}),k.trigger({application:L.VIDEOS,action:P.Videos.PLAY_VIDEO,args:[u.data.id,V.slugify(u.data.name)]}),i.closePopup()}return e.jsx(G,{isLoading:!u.hasCompleted,video:u.data,curriculums:o,onClickClose:c,onClickViewVideo:p,closePopup:i.closePopup})}export{S as VideoGuidanceClassroomGuideView};
|
|
2
|
-
//# sourceMappingURL=CmcmWGL0.chunk.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CmcmWGL0.chunk.js","sources":["../../../../libs/shared/src/components/video-guidance/classroom-guide/popup/VideoGuidanceClassroomGuidePopup.tsx","../../src/apps/videos/views/video-guidance-classroom-guide/VideoGuidanceClassroomGuideView.tsx"],"sourcesContent":["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 { CurriculumDropdown } from 'libs/shared/components/curriculum-links/CurriculumDropdown';\nimport { CurriculumLinks } from 'libs/shared/components/curriculum-links/CurriculumLinks';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { Clip, CurriculumData, PopupViewProps, Video } from 'libs/shared/interfaces';\n\nconst namespace = 'shared.videoGuidanceClassroomGuidePopup';\n\nconst MIN_MAX_HEIGHT = 350;\n\ninterface VideoGuidanceClassroomGuidePopupProps extends PopupViewProps {\n isLoading: boolean;\n video: Video | Clip;\n onClickClose: () => void;\n onClickViewVideo: () => void;\n curriculums: CurriculumData;\n getCodeAppLink?: (query: string, isCode: boolean) => Core.AppLink;\n}\n\nexport function VideoGuidanceClassroomGuidePopup(props: VideoGuidanceClassroomGuidePopupProps): JSX.Element {\n function onChangeCurriculum(curriculumId: string): Promise<void> {\n return props.curriculums.updateCurriculum(curriculumId, {\n shouldLog: true,\n video: props.video,\n locationContext: LocationContext.CurriculumGuidancePopup\n });\n }\n\n return (\n <Popup\n closePopup={props.onClickClose}\n showLoadingSpinner={props.isLoading}\n title={LanguageService.getPhrase(namespace, 'curriculumLinks')}\n size='lg'\n >\n {!props.isLoading && (\n <>\n <Scrollbars\n autoHeightMax={MIN_MAX_HEIGHT}\n autoHeightMin={MIN_MAX_HEIGHT}\n autoHeight\n className='pb-3'\n // move vertical scrollbar to the top\n renderThumbVertical={({ style, ...props }) => <div {...props} style={{ ...style, borderRadius: 'inherit', backgroundColor: 'rgba(0, 0, 0, 0.2)', zIndex: 5 }} className='thumb-vertical'/>}\n >\n <CurriculumDropdown\n availableCurriculums={props.curriculums.availableCurriculums}\n onChangeCurriculum={onChangeCurriculum}\n selectedCurriculum={props.curriculums.preferredCurriculum}\n />\n\n <div className='pb-3'>\n <CurriculumLinks\n curriculumLinks={props.curriculums.curriculumLinks}\n onChangeCurriculum={onChangeCurriculum}\n hasCompleted={props.curriculums.hasCompleted}\n mappedCurriculums={props.curriculums.mappedCurriculums}\n isFetching={props.curriculums.isFetching}\n getCodeAppLink={props.getCodeAppLink}\n locationContext={LocationContext.CurriculumGuidancePopup}\n />\n </div>\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 { VideoGuidanceClassroomGuidePopup } from 'libs/shared/components/video-guidance/classroom-guide/popup/VideoGuidanceClassroomGuidePopup';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { Clip, PopupViewProps, Video } from 'libs/shared/interfaces';\n\nimport { Actions } from 'shared/constants/StreamableActions';\nimport { AppChannels } from 'shared/constants/StreamableRadioChannels';\n\nimport { useCurriculums } from 'apps/videos/hooks/useCurriculums';\n\ninterface VideoGuidanceClassroomGuideViewProps extends PopupViewProps {\n id: string;\n}\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function VideoGuidanceClassroomGuideView(props: VideoGuidanceClassroomGuideViewProps): JSX.Element {\n const video = Flight.useBasicFetch<Clip | Video>(VideoRequests.video(props.id));\n const curriculums = useCurriculums(props.id);\n\n function onClickClose(): 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.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 <VideoGuidanceClassroomGuidePopup\n isLoading={!video.hasCompleted}\n video={video.data}\n curriculums={curriculums}\n onClickClose={onClickClose}\n onClickViewVideo={onClickViewVideo}\n closePopup={props.closePopup}\n />\n );\n}"],"names":["namespace","MIN_MAX_HEIGHT","VideoGuidanceClassroomGuidePopup","props","onChangeCurriculum","curriculumId","LocationContext","jsx","Popup","LanguageService","jsxs","Fragment","Scrollbars","style","CurriculumDropdown","CurriculumLinks","PopupButtons","VideoGuidanceClassroomGuideView","video","Flight.useBasicFetch","VideoRequests","curriculums","useCurriculums","onClickClose","AnalyticsHelper","EntityType","UserAction","VideoGuidanceDescriptor","onClickViewVideo","Core.AppLinkHelper","AppChannels","Actions","TextHelper"],"mappings":"0XAcA,MAAMA,EAAY,0CAEZC,EAAiB,IAWhB,SAASC,EAAiCC,EAA2D,CAC1G,SAASC,EAAmBC,EAAqC,CAC/D,OAAOF,EAAM,YAAY,iBAAiBE,EAAc,CACtD,UAAW,GACX,MAAOF,EAAM,MACb,gBAAiBG,EAAgB,uBAAA,CAClC,CACH,CAEA,OACEC,EAAAA,IAACC,EAAA,CACC,WAAYL,EAAM,aAClB,mBAAoBA,EAAM,UAC1B,MAAOM,EAAgB,UAAUT,EAAW,iBAAiB,EAC7D,KAAK,KAEJ,SAAA,CAACG,EAAM,WACNO,EAAAA,KAAAC,EAAAA,SAAA,CACE,SAAA,CAAAD,EAAAA,KAACE,EAAA,CACC,cAAeX,EACf,cAAeA,EACf,WAAU,GACV,UAAU,OAEV,oBAAqB,CAAC,CAAE,MAAAY,EAAO,GAAGV,CAAAA,IAAYI,EAAAA,IAAC,MAAA,CAAK,GAAGJ,EAAO,MAAO,CAAE,GAAGU,EAAO,aAAc,UAAW,gBAAiB,qBAAsB,OAAQ,CAAA,EAAK,UAAU,iBAAgB,EAExL,SAAA,CAAAN,EAAAA,IAACO,EAAA,CACC,qBAAsBX,EAAM,YAAY,qBACxC,mBAAAC,EACA,mBAAoBD,EAAM,YAAY,mBAAA,CAAA,EAGxCI,EAAAA,IAAC,MAAA,CAAI,UAAU,OACb,SAAAA,EAAAA,IAACQ,EAAA,CACC,gBAAiBZ,EAAM,YAAY,gBACnC,mBAAAC,EACA,aAAcD,EAAM,YAAY,aAChC,kBAAmBA,EAAM,YAAY,kBACrC,WAAYA,EAAM,YAAY,WAC9B,eAAgBA,EAAM,eACtB,gBAAiBG,EAAgB,uBAAA,CAAA,CACnC,CACF,CAAA,CAAA,CAAA,SAGDU,EAAA,CACC,SAAA,CAAAT,EAAAA,IAACS,EAAa,OAAb,CACC,QAASb,EAAM,aACf,KAAMM,EAAgB,UAAUT,EAAW,OAAO,CAAA,CAAA,EAEpDO,EAAAA,IAACS,EAAa,OAAb,CACC,KAAMP,EAAgB,UAAUT,EAAW,WAAW,EACtD,QAAQ,OACR,QAASG,EAAM,gBAAA,CAAA,CACjB,CAAA,CACF,CAAA,CAAA,CACF,CAAA,CAAA,CAIR,CChEO,SAASc,EAAgCd,EAA0D,CACxG,MAAMe,EAAQC,EAAmCC,EAAc,MAAMjB,EAAM,EAAE,CAAC,EACxEkB,EAAcC,EAAenB,EAAM,EAAE,EAE3C,SAASoB,GAAqB,CAC5BC,EAAgB,cAAc,CAC5B,GAAIN,EAAM,KAAK,GACf,KAAMA,EAAM,KAAK,IAAA,EAChB,CACD,OAAQO,EAAW,MACnB,SAAUnB,EAAgB,wBAC1B,WAAYoB,EAAW,MACvB,WAAYC,EAAwB,KAAA,CACrC,EAEDxB,EAAM,WAAA,CACR,CAEA,SAASyB,GAAyB,CAChCJ,EAAgB,cAAc,CAC5B,GAAIN,EAAM,KAAK,GACf,KAAMA,EAAM,KAAK,IAAA,EAChB,CACD,OAAQO,EAAW,MACnB,SAAUnB,EAAgB,wBAC1B,WAAYoB,EAAW,MACvB,WAAYC,EAAwB,SAAA,CACrC,EAEDE,EAAmB,QAAQ,CACzB,YAAaC,EAAY,OACzB,OAAQC,EAAQ,OAAO,WACvB,KAAM,CAAEb,EAAM,KAAK,GAAIc,EAAW,QAAQd,EAAM,KAAK,IAAI,CAAE,CAAA,CAC5D,EAEDf,EAAM,WAAA,CACR,CAEA,OACEI,EAAAA,IAACL,EAAA,CACC,UAAW,CAACgB,EAAM,aAClB,MAAOA,EAAM,KACb,YAAAG,EACA,aAAAE,EACA,iBAAAK,EACA,WAAYzB,EAAM,UAAA,CAAA,CAGxB"}
|