@clickview/streamable-learning 0.34.0 → 0.34.1-dev.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (437) hide show
  1. package/dist/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
  2. package/dist/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
  3. package/dist/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
  4. package/dist/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
  5. package/dist/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
  6. package/dist/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
  7. package/dist/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
  8. package/dist/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
  9. package/dist/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
  10. package/dist/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
  11. package/dist/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
  12. package/dist/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
  13. package/dist/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
  14. package/dist/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
  15. package/dist/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
  16. package/dist/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
  17. package/dist/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
  18. package/dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
  19. package/dist/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
  20. package/dist/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
  21. package/dist/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
  22. package/dist/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
  23. package/dist/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
  24. package/dist/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
  25. package/dist/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
  26. package/dist/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
  27. package/dist/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
  28. package/dist/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
  29. package/dist/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
  30. package/dist/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
  31. package/dist/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
  32. package/dist/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
  33. package/dist/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
  34. package/dist/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
  35. package/dist/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
  36. package/dist/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
  37. package/dist/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
  38. package/dist/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
  39. package/dist/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
  40. package/dist/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
  41. package/dist/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
  42. package/dist/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
  43. package/dist/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
  44. package/dist/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
  45. package/dist/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
  46. package/dist/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
  47. package/dist/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
  48. package/dist/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
  49. package/dist/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
  50. package/dist/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
  51. package/dist/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
  52. package/dist/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
  53. package/dist/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
  54. package/dist/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
  55. package/dist/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
  56. package/dist/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
  57. package/dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
  58. package/dist/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
  59. package/dist/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
  60. package/dist/bundles.json +2 -2
  61. package/dist/css/B-attovs.chunk.css +9 -0
  62. package/dist/css/B1NucFMn.chunk.css +1 -0
  63. package/dist/css/BPdg7JW4.chunk.css +1 -0
  64. package/dist/css/BPrUSCaY.chunk.css +1 -0
  65. package/dist/css/BR0fUt9D.chunk.css +1 -0
  66. package/dist/css/BhYm6SRm.chunk.css +1 -0
  67. package/dist/css/BiRz4h1c.chunk.css +1 -0
  68. package/dist/css/Bq1ChJn4.chunk.css +1 -0
  69. package/dist/css/Bt85j9js.chunk.css +1 -0
  70. package/dist/css/BuYrqi9E.chunk.css +1 -0
  71. package/dist/css/BugV1Bpa.chunk.css +1 -0
  72. package/dist/css/BuuVPl7n.chunk.css +1 -0
  73. package/dist/css/C1NkrNqQ.chunk.css +1 -0
  74. package/dist/css/C1qv5jz5.chunk.css +1 -0
  75. package/dist/css/C7XoyEPr.chunk.css +1 -0
  76. package/dist/css/C7_MDu56.chunk.css +1 -0
  77. package/dist/css/CC5F5C8O.chunk.css +1 -0
  78. package/dist/css/CChSC6Ta.chunk.css +1 -0
  79. package/dist/css/CCsCPLDG.chunk.css +1 -0
  80. package/dist/css/CD1qrI1T.chunk.css +1 -0
  81. package/dist/css/CKqvCBj4.chunk.css +1 -0
  82. package/dist/css/CLZ0Ycds.chunk.css +1 -0
  83. package/dist/css/CO7M4rZW.chunk.css +1 -0
  84. package/dist/css/CY0yvCW4.chunk.css +1 -0
  85. package/dist/css/CYGsw8FT.chunk.css +1 -0
  86. package/dist/css/Cbi3KYBa.chunk.css +1 -0
  87. package/dist/css/CliS8Q8r.chunk.css +1 -0
  88. package/dist/css/D-kQKsZN.chunk.css +1 -0
  89. package/dist/css/D2NwUVrK.chunk.css +1 -0
  90. package/dist/css/D4g1IoUU.chunk.css +1 -0
  91. package/dist/css/DBgpcO3T.chunk.css +1 -0
  92. package/dist/css/DDnpOnVB.chunk.css +1 -0
  93. package/dist/css/DZJSONGP.chunk.css +1 -0
  94. package/dist/css/Dc0zNt2E.chunk.css +1 -0
  95. package/dist/css/DeAfaPiD.chunk.css +1 -0
  96. package/dist/css/Dj731zLm.chunk.css +1 -0
  97. package/dist/css/DjPPxa0A.chunk.css +1 -0
  98. package/dist/css/DlOtoSz0.chunk.css +1 -0
  99. package/dist/css/DwduQat7.chunk.css +1 -0
  100. package/dist/css/Dzuu2GTx.chunk.css +1 -0
  101. package/dist/css/JAvsJreH.chunk.css +1 -0
  102. package/dist/css/NKlFYVOc.chunk.css +1 -0
  103. package/dist/css/VZd8qGtK.chunk.css +1 -0
  104. package/dist/css/Y7U--2na.chunk.css +1 -0
  105. package/dist/css/ir3IcK_l.chunk.css +1 -0
  106. package/dist/css/jbMisi9r.chunk.css +1 -0
  107. package/dist/css/kS5aDtIJ.chunk.css +1 -0
  108. package/dist/css/mqCL1o7m.chunk.css +1 -0
  109. package/dist/css/qZzkUeZk.chunk.css +1 -0
  110. package/dist/css/sC_H3yXE.chunk.css +1 -0
  111. package/dist/css/wR_6C_NV.chunk.css +1 -0
  112. package/dist/en.json +1 -0
  113. package/dist/scripts/-Oi3rE3V.chunk.js +5 -0
  114. package/dist/scripts/-Oi3rE3V.chunk.js.map +1 -0
  115. package/dist/scripts/-cwk-1Iv.chunk.js +2 -0
  116. package/dist/scripts/-cwk-1Iv.chunk.js.map +1 -0
  117. package/dist/scripts/4oi1ldJ4.chunk.js +3 -0
  118. package/dist/scripts/4oi1ldJ4.chunk.js.map +1 -0
  119. package/dist/scripts/6UeJLeAd.chunk.js +2 -0
  120. package/dist/scripts/6UeJLeAd.chunk.js.map +1 -0
  121. package/dist/scripts/8zar0u1i.chunk.js +2 -0
  122. package/dist/scripts/8zar0u1i.chunk.js.map +1 -0
  123. package/dist/scripts/9NIa7Pi_.chunk.js +2 -0
  124. package/dist/scripts/9NIa7Pi_.chunk.js.map +1 -0
  125. package/dist/scripts/B5OOLcT3.chunk.js +2 -0
  126. package/dist/scripts/B5OOLcT3.chunk.js.map +1 -0
  127. package/dist/scripts/B8XJmK96.chunk.js +8 -0
  128. package/dist/scripts/B8XJmK96.chunk.js.map +1 -0
  129. package/dist/scripts/BA6k9XoA.chunk.js +2 -0
  130. package/dist/scripts/BA6k9XoA.chunk.js.map +1 -0
  131. package/dist/scripts/BBnDr_iy.chunk.js +2 -0
  132. package/dist/scripts/BBnDr_iy.chunk.js.map +1 -0
  133. package/dist/scripts/BEL0opwe.chunk.js +2 -0
  134. package/dist/scripts/BEL0opwe.chunk.js.map +1 -0
  135. package/dist/scripts/BHmtLW9C.chunk.js +2 -0
  136. package/dist/scripts/BHmtLW9C.chunk.js.map +1 -0
  137. package/dist/scripts/BJ0C6oH6.chunk.js +2 -0
  138. package/dist/scripts/BJ0C6oH6.chunk.js.map +1 -0
  139. package/dist/scripts/BPcJv8Nj.chunk.js +2 -0
  140. package/dist/scripts/BPcJv8Nj.chunk.js.map +1 -0
  141. package/dist/scripts/BQQ9SPei.chunk.js +10 -0
  142. package/dist/scripts/BQQ9SPei.chunk.js.map +1 -0
  143. package/dist/scripts/BQQZ0Zva.chunk.js +2 -0
  144. package/dist/scripts/BQQZ0Zva.chunk.js.map +1 -0
  145. package/dist/scripts/BRKKXF-k.chunk.js +2 -0
  146. package/dist/scripts/BRKKXF-k.chunk.js.map +1 -0
  147. package/dist/scripts/BUhbk0mt.chunk.js +2 -0
  148. package/dist/scripts/BUhbk0mt.chunk.js.map +1 -0
  149. package/dist/scripts/BXKrMYdw.chunk.js +2 -0
  150. package/dist/scripts/BXKrMYdw.chunk.js.map +1 -0
  151. package/dist/scripts/B_eK8A25.chunk.js +2 -0
  152. package/dist/scripts/B_eK8A25.chunk.js.map +1 -0
  153. package/dist/scripts/BbjveACT.chunk.js +2 -0
  154. package/dist/scripts/BbjveACT.chunk.js.map +1 -0
  155. package/dist/scripts/BdHxGaRy.chunk.js +2 -0
  156. package/dist/scripts/BdHxGaRy.chunk.js.map +1 -0
  157. package/dist/scripts/BeHz9c4V.chunk.js +2 -0
  158. package/dist/scripts/BeHz9c4V.chunk.js.map +1 -0
  159. package/dist/scripts/BexFb8rj.chunk.js +2 -0
  160. package/dist/scripts/BexFb8rj.chunk.js.map +1 -0
  161. package/dist/scripts/Bi8YRFeY.chunk.js +2 -0
  162. package/dist/scripts/Bi8YRFeY.chunk.js.map +1 -0
  163. package/dist/scripts/Bj3i6I7i.chunk.js +2 -0
  164. package/dist/scripts/Bj3i6I7i.chunk.js.map +1 -0
  165. package/dist/scripts/BktU87GA.chunk.js +2 -0
  166. package/dist/scripts/BktU87GA.chunk.js.map +1 -0
  167. package/dist/scripts/Bl1HvG0b.chunk.js +2 -0
  168. package/dist/scripts/Bl1HvG0b.chunk.js.map +1 -0
  169. package/dist/scripts/BnWlQ7-4.chunk.js +2 -0
  170. package/dist/scripts/BnWlQ7-4.chunk.js.map +1 -0
  171. package/dist/scripts/BoqzK1u7.chunk.js +2 -0
  172. package/dist/scripts/BoqzK1u7.chunk.js.map +1 -0
  173. package/dist/scripts/Bsa3zcW0.chunk.js +2 -0
  174. package/dist/scripts/Bsa3zcW0.chunk.js.map +1 -0
  175. package/dist/scripts/Bt3kaRtU.chunk.js +6 -0
  176. package/dist/scripts/Bt3kaRtU.chunk.js.map +1 -0
  177. package/dist/scripts/BtiKTu8r.chunk.js +2 -0
  178. package/dist/scripts/BtiKTu8r.chunk.js.map +1 -0
  179. package/dist/scripts/BwOoIPmc.chunk.js +2 -0
  180. package/dist/scripts/BwOoIPmc.chunk.js.map +1 -0
  181. package/dist/scripts/BwuSNwcs.chunk.js +2 -0
  182. package/dist/scripts/BwuSNwcs.chunk.js.map +1 -0
  183. package/dist/scripts/Byn8R7bs.chunk.js +2 -0
  184. package/dist/scripts/Byn8R7bs.chunk.js.map +1 -0
  185. package/dist/scripts/C2Zu5vKc.chunk.js +2 -0
  186. package/dist/scripts/C2Zu5vKc.chunk.js.map +1 -0
  187. package/dist/scripts/C2uxO8e2.chunk.js +2 -0
  188. package/dist/scripts/C2uxO8e2.chunk.js.map +1 -0
  189. package/dist/scripts/C35NlkUr.chunk.js +2 -0
  190. package/dist/scripts/C35NlkUr.chunk.js.map +1 -0
  191. package/dist/scripts/C5QPXJGU.chunk.js +15 -0
  192. package/dist/scripts/C5QPXJGU.chunk.js.map +1 -0
  193. package/dist/scripts/C6mGMCz4.chunk.js +2 -0
  194. package/dist/scripts/C6mGMCz4.chunk.js.map +1 -0
  195. package/dist/scripts/C8ZuWYfb.chunk.js +2 -0
  196. package/dist/scripts/C8ZuWYfb.chunk.js.map +1 -0
  197. package/dist/scripts/CEmtkty-.chunk.js +2 -0
  198. package/dist/scripts/CEmtkty-.chunk.js.map +1 -0
  199. package/dist/scripts/CICkmQW6.chunk.js +2 -0
  200. package/dist/scripts/CICkmQW6.chunk.js.map +1 -0
  201. package/dist/scripts/CLumRL-T.chunk.js +2 -0
  202. package/dist/scripts/CLumRL-T.chunk.js.map +1 -0
  203. package/dist/scripts/CO_D2O4I.chunk.js +2 -0
  204. package/dist/scripts/CO_D2O4I.chunk.js.map +1 -0
  205. package/dist/scripts/CPXlV0fg.chunk.js +2 -0
  206. package/dist/scripts/CPXlV0fg.chunk.js.map +1 -0
  207. package/dist/scripts/CQZOieOF.chunk.js +2 -0
  208. package/dist/scripts/CQZOieOF.chunk.js.map +1 -0
  209. package/dist/scripts/CQoWqq54.chunk.js +2 -0
  210. package/dist/scripts/CQoWqq54.chunk.js.map +1 -0
  211. package/dist/scripts/CRT9qru0.chunk.js +2 -0
  212. package/dist/scripts/CRT9qru0.chunk.js.map +1 -0
  213. package/dist/scripts/CU6iZ8MR.chunk.js +2 -0
  214. package/dist/scripts/CU6iZ8MR.chunk.js.map +1 -0
  215. package/dist/scripts/CUltMbyK.chunk.js +2 -0
  216. package/dist/scripts/CUltMbyK.chunk.js.map +1 -0
  217. package/dist/scripts/CW7x8M-z.chunk.js +2 -0
  218. package/dist/scripts/CW7x8M-z.chunk.js.map +1 -0
  219. package/dist/scripts/CYlwi5iC.chunk.js +7 -0
  220. package/dist/scripts/CYlwi5iC.chunk.js.map +1 -0
  221. package/dist/scripts/CgJckl-g.chunk.js +2 -0
  222. package/dist/scripts/CgJckl-g.chunk.js.map +1 -0
  223. package/dist/scripts/Cj5ETNHP.chunk.js +2 -0
  224. package/dist/scripts/Cj5ETNHP.chunk.js.map +1 -0
  225. package/dist/scripts/Cmu1J2M7.chunk.js +262 -0
  226. package/dist/scripts/Cmu1J2M7.chunk.js.map +1 -0
  227. package/dist/scripts/Cr8fUgj9.chunk.js +2 -0
  228. package/dist/scripts/Cr8fUgj9.chunk.js.map +1 -0
  229. package/dist/scripts/CtM_cXum.chunk.js +2 -0
  230. package/dist/scripts/CtM_cXum.chunk.js.map +1 -0
  231. package/dist/scripts/Cv1FGdNu.chunk.js +2 -0
  232. package/dist/scripts/Cv1FGdNu.chunk.js.map +1 -0
  233. package/dist/scripts/CvPDjx7y.chunk.js +2 -0
  234. package/dist/scripts/CvPDjx7y.chunk.js.map +1 -0
  235. package/dist/scripts/D0bydDVL.chunk.js +2 -0
  236. package/dist/scripts/D0bydDVL.chunk.js.map +1 -0
  237. package/dist/scripts/D1EE4AEz.chunk.js +356 -0
  238. package/dist/scripts/D1EE4AEz.chunk.js.map +1 -0
  239. package/dist/scripts/D84-WY3k.chunk.js +2 -0
  240. package/dist/scripts/D84-WY3k.chunk.js.map +1 -0
  241. package/dist/scripts/DAh7Ea13.chunk.js +2 -0
  242. package/dist/scripts/DAh7Ea13.chunk.js.map +1 -0
  243. package/dist/scripts/DBIkG3Bu.chunk.js +2 -0
  244. package/dist/scripts/DBIkG3Bu.chunk.js.map +1 -0
  245. package/dist/scripts/DCcI7sWt.chunk.js +2 -0
  246. package/dist/scripts/DCcI7sWt.chunk.js.map +1 -0
  247. package/dist/scripts/DEP24A-f.chunk.js +2 -0
  248. package/dist/scripts/DEP24A-f.chunk.js.map +1 -0
  249. package/dist/scripts/DGFORsAE.chunk.js +2 -0
  250. package/dist/scripts/DGFORsAE.chunk.js.map +1 -0
  251. package/dist/scripts/DGaf-Jy9.chunk.js +2 -0
  252. package/dist/scripts/DGaf-Jy9.chunk.js.map +1 -0
  253. package/dist/scripts/DJyZ6Hx7.chunk.js +2 -0
  254. package/dist/scripts/DJyZ6Hx7.chunk.js.map +1 -0
  255. package/dist/scripts/DOCam-GK.chunk.js +2 -0
  256. package/dist/scripts/DOCam-GK.chunk.js.map +1 -0
  257. package/dist/scripts/DSLX3H2r.chunk.js +2 -0
  258. package/dist/scripts/DSLX3H2r.chunk.js.map +1 -0
  259. package/dist/scripts/DSq4f4jm.chunk.js +2 -0
  260. package/dist/scripts/DSq4f4jm.chunk.js.map +1 -0
  261. package/dist/scripts/DXxBqeLg.chunk.js +2 -0
  262. package/dist/scripts/DXxBqeLg.chunk.js.map +1 -0
  263. package/dist/scripts/DZ6Jrm23.chunk.js +2 -0
  264. package/dist/scripts/DZ6Jrm23.chunk.js.map +1 -0
  265. package/dist/scripts/Daes5Wgy.chunk.js +2 -0
  266. package/dist/scripts/Daes5Wgy.chunk.js.map +1 -0
  267. package/dist/scripts/DeUbJqVo.chunk.js +2 -0
  268. package/dist/scripts/DeUbJqVo.chunk.js.map +1 -0
  269. package/dist/scripts/DgEqkZy0.chunk.js +8 -0
  270. package/dist/scripts/DgEqkZy0.chunk.js.map +1 -0
  271. package/dist/scripts/DhB-Uugx.chunk.js +2 -0
  272. package/dist/scripts/DhB-Uugx.chunk.js.map +1 -0
  273. package/dist/scripts/DhqAA1wT.chunk.js +2 -0
  274. package/dist/scripts/DhqAA1wT.chunk.js.map +1 -0
  275. package/dist/scripts/Di5-l4QJ.chunk.js +2 -0
  276. package/dist/scripts/Di5-l4QJ.chunk.js.map +1 -0
  277. package/dist/scripts/DiQkAtUx.chunk.js +53 -0
  278. package/dist/scripts/DiQkAtUx.chunk.js.map +1 -0
  279. package/dist/scripts/DireiQEp.chunk.js +2 -0
  280. package/dist/scripts/DireiQEp.chunk.js.map +1 -0
  281. package/dist/scripts/Dj66TI5y.chunk.js +2 -0
  282. package/dist/scripts/Dj66TI5y.chunk.js.map +1 -0
  283. package/dist/scripts/DkFkYS-j.chunk.js +2 -0
  284. package/dist/scripts/DkFkYS-j.chunk.js.map +1 -0
  285. package/dist/scripts/Dkq5GtOV.chunk.js +2 -0
  286. package/dist/scripts/Dkq5GtOV.chunk.js.map +1 -0
  287. package/dist/scripts/DmSSmUHZ.chunk.js +2 -0
  288. package/dist/scripts/DmSSmUHZ.chunk.js.map +1 -0
  289. package/dist/scripts/DoQU9vjn.chunk.js +2 -0
  290. package/dist/scripts/DoQU9vjn.chunk.js.map +1 -0
  291. package/dist/scripts/DtHh_hpg.chunk.js +2 -0
  292. package/dist/scripts/DtHh_hpg.chunk.js.map +1 -0
  293. package/dist/scripts/DvDdiDQN.chunk.js +7 -0
  294. package/dist/scripts/DvDdiDQN.chunk.js.map +1 -0
  295. package/dist/scripts/DwhG2uva.chunk.js +2 -0
  296. package/dist/scripts/DwhG2uva.chunk.js.map +1 -0
  297. package/dist/scripts/DxJlWHZr.chunk.js +2 -0
  298. package/dist/scripts/DxJlWHZr.chunk.js.map +1 -0
  299. package/dist/scripts/DxmeZ4C9.chunk.js +2 -0
  300. package/dist/scripts/DxmeZ4C9.chunk.js.map +1 -0
  301. package/dist/scripts/KuveJuNy.chunk.js +2 -0
  302. package/dist/scripts/KuveJuNy.chunk.js.map +1 -0
  303. package/dist/scripts/LKCLmV2A.chunk.js +2 -0
  304. package/dist/scripts/LKCLmV2A.chunk.js.map +1 -0
  305. package/dist/scripts/RnuR8yr3.chunk.js +2 -0
  306. package/dist/scripts/RnuR8yr3.chunk.js.map +1 -0
  307. package/dist/scripts/XxrnElSv.chunk.js +2 -0
  308. package/dist/scripts/XxrnElSv.chunk.js.map +1 -0
  309. package/dist/scripts/YF_QoXEj.chunk.js +3 -0
  310. package/dist/scripts/YF_QoXEj.chunk.js.map +1 -0
  311. package/dist/scripts/Z2sDSVPb.chunk.js +2 -0
  312. package/dist/scripts/Z2sDSVPb.chunk.js.map +1 -0
  313. package/dist/scripts/Zbze2j9b.chunk.js +2 -0
  314. package/dist/scripts/Zbze2j9b.chunk.js.map +1 -0
  315. package/dist/scripts/app-C56EnOMP.js +216 -0
  316. package/dist/scripts/app-C56EnOMP.js.map +1 -0
  317. package/dist/scripts/cvX-F_mx.chunk.js +2 -0
  318. package/dist/scripts/cvX-F_mx.chunk.js.map +1 -0
  319. package/dist/scripts/h34ZSRKe.chunk.js +2 -0
  320. package/dist/scripts/h34ZSRKe.chunk.js.map +1 -0
  321. package/dist/scripts/leubTuJo.chunk.js +2 -0
  322. package/dist/scripts/leubTuJo.chunk.js.map +1 -0
  323. package/dist/scripts/m5XtnRaH.chunk.js +2 -0
  324. package/dist/scripts/m5XtnRaH.chunk.js.map +1 -0
  325. package/dist/scripts/nay4aGaa.chunk.js +2 -0
  326. package/dist/scripts/nay4aGaa.chunk.js.map +1 -0
  327. package/dist/scripts/p61U8kXz.chunk.js +2 -0
  328. package/dist/scripts/p61U8kXz.chunk.js.map +1 -0
  329. package/dist/scripts/pkzD5BEm.chunk.js +2 -0
  330. package/dist/scripts/pkzD5BEm.chunk.js.map +1 -0
  331. package/dist/scripts/sc9-PV9Y.chunk.js +2 -0
  332. package/dist/scripts/sc9-PV9Y.chunk.js.map +1 -0
  333. package/dist/scripts/tAsRziXo.chunk.js +8 -0
  334. package/dist/scripts/tAsRziXo.chunk.js.map +1 -0
  335. package/dist/scripts/xrHhD6CF.chunk.js +8 -0
  336. package/dist/scripts/xrHhD6CF.chunk.js.map +1 -0
  337. package/dist/scripts/xxo027lm.chunk.js +2 -0
  338. package/dist/scripts/xxo027lm.chunk.js.map +1 -0
  339. package/package.json +5 -3
  340. package/typings/utils/imports.d.ts +2 -1
  341. package/vite.config.ts +6 -0
  342. package/dist/css/103-streamable-learning-5060b6cda5.chunk.css +0 -7
  343. package/dist/css/1269-streamable-learning-a12c4ebc99.chunk.css +0 -2
  344. package/dist/css/1457-streamable-learning-c8c8b3b9b1.chunk.css +0 -50
  345. package/dist/css/2334-streamable-learning-de03ae073a.chunk.css +0 -2
  346. package/dist/css/3322-streamable-learning-510e1aa3f3.chunk.css +0 -34
  347. package/dist/css/3838-streamable-learning-da10685fe8.chunk.css +0 -22
  348. package/dist/css/4254-streamable-learning-e493f4a027.chunk.css +0 -2
  349. package/dist/css/4607-streamable-learning-2605302fc2.chunk.css +0 -90
  350. package/dist/css/4772-streamable-learning-f83b838d71.chunk.css +0 -9
  351. package/dist/css/5003-streamable-learning-b38d2ddbbe.chunk.css +0 -98
  352. package/dist/css/5565-streamable-learning-0caae3809b.chunk.css +0 -13
  353. package/dist/css/6017-streamable-learning-098a205d01.chunk.css +0 -6
  354. package/dist/css/6356-streamable-learning-8c5b220bf6.chunk.css +0 -1
  355. package/dist/css/6987-streamable-learning-8f682301c6.chunk.css +0 -1
  356. package/dist/css/7317-streamable-learning-b5d226bbb6.chunk.css +0 -5
  357. package/dist/css/8058-streamable-learning-539cf7be18.chunk.css +0 -12
  358. package/dist/css/8294-streamable-learning-c797263ac2.chunk.css +0 -1
  359. package/dist/css/8496-streamable-learning-ce19f6ca52.chunk.css +0 -13
  360. package/dist/css/8601-streamable-learning-f525210660.chunk.css +0 -6
  361. package/dist/css/9514-streamable-learning-251703c6d1.chunk.css +0 -2
  362. package/dist/css/9766-streamable-learning-31650ffe5d.chunk.css +0 -8
  363. package/dist/css/9842-streamable-learning-24729103f7.chunk.css +0 -4
  364. package/dist/css/9899-streamable-learning-0338f8d2dc.chunk.css +0 -4
  365. package/dist/css/streamable-learning-dd0c1095d5.css +0 -23
  366. package/dist/languages/en.json +0 -1
  367. package/dist/scripts/103-aceced8961-streamable-learning.chunk.js +0 -1
  368. package/dist/scripts/1097-680a971192-streamable-learning.chunk.js +0 -2
  369. package/dist/scripts/1097-680a971192-streamable-learning.chunk.js.LICENSE.txt +0 -105
  370. package/dist/scripts/1269-2d0b903343-streamable-learning.chunk.js +0 -2
  371. package/dist/scripts/1269-2d0b903343-streamable-learning.chunk.js.LICENSE.txt +0 -1
  372. package/dist/scripts/1457-899f40d09a-streamable-learning.chunk.js +0 -1
  373. package/dist/scripts/1482-b1dd75897c-streamable-learning.chunk.js +0 -1
  374. package/dist/scripts/1934-fc017df0da-streamable-learning.chunk.js +0 -2
  375. package/dist/scripts/1934-fc017df0da-streamable-learning.chunk.js.LICENSE.txt +0 -9
  376. package/dist/scripts/2042-d51622d63e-streamable-learning.chunk.js +0 -1
  377. package/dist/scripts/2087-eba9033b1c-streamable-learning.chunk.js +0 -1
  378. package/dist/scripts/2245-8cd3224e1b-streamable-learning.chunk.js +0 -1
  379. package/dist/scripts/2334-00b028191d-streamable-learning.chunk.js +0 -1
  380. package/dist/scripts/2676-c842ec7e8d-streamable-learning.chunk.js +0 -2
  381. package/dist/scripts/2676-c842ec7e8d-streamable-learning.chunk.js.LICENSE.txt +0 -1
  382. package/dist/scripts/2877-5ffc9711f6-streamable-learning.chunk.js +0 -1
  383. package/dist/scripts/2911-9e2725fd22-streamable-learning.chunk.js +0 -1
  384. package/dist/scripts/3057-731a8ca978-streamable-learning.chunk.js +0 -1
  385. package/dist/scripts/3093-efbcc927ea-streamable-learning.chunk.js +0 -1
  386. package/dist/scripts/3186-d1a6ccffde-streamable-learning.chunk.js +0 -1
  387. package/dist/scripts/3322-33c015dec9-streamable-learning.chunk.js +0 -1
  388. package/dist/scripts/3472-50ca92bde3-streamable-learning.chunk.js +0 -1
  389. package/dist/scripts/3838-4a38f33dc2-streamable-learning.chunk.js +0 -1
  390. package/dist/scripts/3941-2ef15ca9ac-streamable-learning.chunk.js +0 -1
  391. package/dist/scripts/4254-ef581b8105-streamable-learning.chunk.js +0 -1
  392. package/dist/scripts/4607-36e8f52a55-streamable-learning.chunk.js +0 -2
  393. package/dist/scripts/4607-36e8f52a55-streamable-learning.chunk.js.LICENSE.txt +0 -1
  394. package/dist/scripts/4772-3cb280f959-streamable-learning.chunk.js +0 -2
  395. package/dist/scripts/4772-3cb280f959-streamable-learning.chunk.js.LICENSE.txt +0 -1
  396. package/dist/scripts/4951-df701c6a8d-streamable-learning.chunk.js +0 -1
  397. package/dist/scripts/5003-c23dd99aad-streamable-learning.chunk.js +0 -2
  398. package/dist/scripts/5003-c23dd99aad-streamable-learning.chunk.js.LICENSE.txt +0 -1
  399. package/dist/scripts/5088-2e09e1ba6e-streamable-learning.chunk.js +0 -1
  400. package/dist/scripts/5173-a800a17d0d-streamable-learning.chunk.js +0 -1
  401. package/dist/scripts/5446-2cbe9f9d1b-streamable-learning.chunk.js +0 -1
  402. package/dist/scripts/5543-205aaa36a6-streamable-learning.chunk.js +0 -1
  403. package/dist/scripts/5565-224d86dc1b-streamable-learning.chunk.js +0 -1
  404. package/dist/scripts/578-2cc99f46f7-streamable-learning.chunk.js +0 -1
  405. package/dist/scripts/6017-5bd6f9bf7a-streamable-learning.chunk.js +0 -2
  406. package/dist/scripts/6017-5bd6f9bf7a-streamable-learning.chunk.js.LICENSE.txt +0 -1
  407. package/dist/scripts/6356-eefa3ff22e-streamable-learning.chunk.js +0 -1
  408. package/dist/scripts/6979-ef9a3931a2-streamable-learning.chunk.js +0 -2
  409. package/dist/scripts/6979-ef9a3931a2-streamable-learning.chunk.js.LICENSE.txt +0 -1
  410. package/dist/scripts/6987-e58de31cfe-streamable-learning.chunk.js +0 -1
  411. package/dist/scripts/7317-6b7186c85d-streamable-learning.chunk.js +0 -1
  412. package/dist/scripts/7347-e2b82be015-streamable-learning.chunk.js +0 -1
  413. package/dist/scripts/7570-cd4f70ff52-streamable-learning.chunk.js +0 -2
  414. package/dist/scripts/7570-cd4f70ff52-streamable-learning.chunk.js.LICENSE.txt +0 -1
  415. package/dist/scripts/7904-e07cdef2de-streamable-learning.chunk.js +0 -1
  416. package/dist/scripts/7925-1e1cfa2a04-streamable-learning.chunk.js +0 -1
  417. package/dist/scripts/8058-5333f0f01b-streamable-learning.chunk.js +0 -1
  418. package/dist/scripts/8126-9d09959b28-streamable-learning.chunk.js +0 -2
  419. package/dist/scripts/8126-9d09959b28-streamable-learning.chunk.js.LICENSE.txt +0 -60
  420. package/dist/scripts/8397-39ce77876d-streamable-learning.chunk.js +0 -1
  421. package/dist/scripts/8496-1b2519f9fd-streamable-learning.chunk.js +0 -2
  422. package/dist/scripts/8496-1b2519f9fd-streamable-learning.chunk.js.LICENSE.txt +0 -1
  423. package/dist/scripts/8599-b74e1ab6e3-streamable-learning.chunk.js +0 -1
  424. package/dist/scripts/8601-37783cf18b-streamable-learning.chunk.js +0 -1
  425. package/dist/scripts/8819-2a50dd6a9b-streamable-learning.chunk.js +0 -1
  426. package/dist/scripts/8937-5103db88d8-streamable-learning.chunk.js +0 -1
  427. package/dist/scripts/9390-0f988af378-streamable-learning.chunk.js +0 -1
  428. package/dist/scripts/9514-a31ca9af06-streamable-learning.chunk.js +0 -1
  429. package/dist/scripts/9766-7c34cab592-streamable-learning.chunk.js +0 -2
  430. package/dist/scripts/9766-7c34cab592-streamable-learning.chunk.js.LICENSE.txt +0 -1
  431. package/dist/scripts/9842-3add7f20d0-streamable-learning.chunk.js +0 -1
  432. package/dist/scripts/9899-ca1a1a08c4-streamable-learning.chunk.js +0 -2
  433. package/dist/scripts/9899-ca1a1a08c4-streamable-learning.chunk.js.LICENSE.txt +0 -1
  434. package/dist/scripts/bundle-91983aeacb.min.js +0 -2
  435. package/dist/scripts/bundle-91983aeacb.min.js.LICENSE.txt +0 -108
  436. package/dist/scripts/pdf.worker.entry-a2092a6670.min.worker.js +0 -2
  437. package/dist/scripts/pdf.worker.entry-a2092a6670.min.worker.js.LICENSE.txt +0 -21
@@ -0,0 +1,2 @@
1
+ import{j as a,E as n,c as g,T as b,Y as P,g as x,r as T,Z as y,o as h,s as D,t as L,p as S,q as A,_ as k,v as j,w as I,x as R,O as W,$ as E}from"./app-C56EnOMP.js";import{S as H,a as w,g as V}from"./DSLX3H2r.chunk.js";import{W as q,u as U}from"./xrHhD6CF.chunk.js";import{D as M,a as u}from"./BdHxGaRy.chunk.js";import{C as v}from"./Z2sDSVPb.chunk.js";import{P as F}from"./BEL0opwe.chunk.js";import{A as N}from"./DmSSmUHZ.chunk.js";import{D as z}from"./BRKKXF-k.chunk.js";import{A as O}from"./8zar0u1i.chunk.js";import{u as B}from"./4oi1ldJ4.chunk.js";import{S as f}from"./C8ZuWYfb.chunk.js";import"./C5QPXJGU.chunk.js";import"./B_eK8A25.chunk.js";import"./CEmtkty-.chunk.js";import"./leubTuJo.chunk.js";import"./RnuR8yr3.chunk.js";import"./m5XtnRaH.chunk.js";import"./cvX-F_mx.chunk.js";import"./Daes5Wgy.chunk.js";import"./tAsRziXo.chunk.js";import"./BUhbk0mt.chunk.js";import"./DSq4f4jm.chunk.js";import"./-cwk-1Iv.chunk.js";import"./B5OOLcT3.chunk.js";import"./CU6iZ8MR.chunk.js";import"./BexFb8rj.chunk.js";import"./sc9-PV9Y.chunk.js";import"./DkFkYS-j.chunk.js";import"./DXxBqeLg.chunk.js";import"./DBIkG3Bu.chunk.js";import"./BBnDr_iy.chunk.js";import"./BwOoIPmc.chunk.js";import"./YF_QoXEj.chunk.js";import"./C2Zu5vKc.chunk.js";import"./DJyZ6Hx7.chunk.js";import"./nay4aGaa.chunk.js";import"./BoqzK1u7.chunk.js";import"./DtHh_hpg.chunk.js";import"./Bt3kaRtU.chunk.js";import"./CW7x8M-z.chunk.js";import"./C35NlkUr.chunk.js";import"./BA6k9XoA.chunk.js";import"./DiQkAtUx.chunk.js";import"./DhqAA1wT.chunk.js";import"./DxJlWHZr.chunk.js";import"./pkzD5BEm.chunk.js";import"./DGFORsAE.chunk.js";import"./DoQU9vjn.chunk.js";import"./-Oi3rE3V.chunk.js";import"./Bl1HvG0b.chunk.js";import"./DEP24A-f.chunk.js";import"./DxmeZ4C9.chunk.js";import"./CPXlV0fg.chunk.js";import"./BwuSNwcs.chunk.js";import"./Cr8fUgj9.chunk.js";import"./Bj3i6I7i.chunk.js";import"./BJ0C6oH6.chunk.js";import"./9NIa7Pi_.chunk.js";import"./p61U8kXz.chunk.js";import"./D0bydDVL.chunk.js";import"./h34ZSRKe.chunk.js";const d="streamable.dashboardEmptyState",_=g.encloseNamespace(d);function $(e){var s,i;const o=((s=e.dashboard)==null?void 0:s.status)===M.Archived;return a.jsxs(n,{children:[a.jsx(n.Image,{src:e.imageUrl,altText:_("info")}),a.jsx(n.Heading,{children:a.jsx(b,{namespace:d,phrase:"heading"})}),a.jsx(n.Info,{children:a.jsx(b,{namespace:d,phrase:"info"})}),a.jsx(P,{title:o?g.getPhrase(d,"archivedCtaTooltip"):"",spanHack:!0,children:a.jsx(n.Cta,{text:g.getPhrase(d,"add"),appLink:(i=e.addWidgetApplink)==null?void 0:i.call(e),className:"btn btn-dark",icon:F,disabled:o})})]})}function K(e){var c;const o=x.sortBy((c=e.dashboard)==null?void 0:c.widgets,"index"),{hasPermissions:s,hasLocalPermissions:i}=T();function m(t,l,r){const C=v.getWidgetParams(l,r,v.getDashboardTargetType(e.dashboard));return e.getWidgetContentRequest(t,C,r)}const p=e.isReadonly&&!(o!=null&&o.length);return a.jsxs(a.Fragment,{children:[a.jsx(H,{active:"discover",appLinks:e.headerAppLinks}),o.map((t,l)=>a.jsx(q,{widgetCollection:u.Discover,id:t.id,getContentRequest:m,audiences:e.audiences,name:t.name,description:t.description,templateId:t.templateId,metadata:t.metadata,presentation:e.presentation,appLinks:e.widgetAppLinks,isScrollToTargetWidget:(e==null?void 0:e.scrollToWidgetId)===t.id,widgetTypeId:t.widgetId,lazyLoad:e.lazyLoad,dashboardTarget:u.Discover,widgetIndex:l,isPreviewing:e.isReadonly,contentType:y.Livestream,preferences:t.preferences,hasPermissions:s,hasLocalPermissions:i,isTertiaryCustomerWithoutExchange:!1,preventPopout:!0,imageCdnUrl:e.commonVideoProps.imageCdnUrl,commonVideoProps:e.commonVideoProps,availablePresentations:void 0,classification:void 0,hasTableOfContents:void 0,imageUrls:void 0,jobTitle:void 0,onSubmitFeedback:void 0,settings:void 0,updatePreferences:void 0,seeMoreLink:void 0,onClickRemoveItem:void 0,badgeComponent:void 0},t.id)),p&&a.jsx($,{dashboard:e.dashboard,isReadonly:e.isReadonly,imageUrl:e.emptyImageUrl,addWidgetApplink:e.widgetAppLinks.widgetWizard})]})}const Y="streamableDashboard.dashboard",Z=g.encloseNamespace(Y);function ia(e){return e?W.pick(e,["a","dashboardId"]):{}}function oa(e){var r;const{commonVideoProps:o}=B(),s=h(E.config()),i=h(D.streamablePresentation()),m=h(i.data&&N.presentationAudiences(i.data.id,L.StreamableLearning)),{dashboard:p}=U({targetType:u.Discover,dashboardId:(r=e.queryParams)==null?void 0:r.dashboardId}),[c]=S(k.AUDIENCE_FILTER,void 0,{storage:A.SessionStorage}),t=w(O.getAudienceParams(c));return j(I.getDiscoverMetadata({content:i.data,phraseContext:{phraseHandler:Z,titlePhrase:"pageTitle",descriptionPhrase:"pageDescription"},canonicalLink:f.getCanonicalLink(),allowIndexing:!0,product:R.PRODUCT_NAME})),s.hasCompleted&&p.hasCompleted&&i.hasCompleted&&m.hasCompleted?a.jsx("div",{className:"bg-white px-4",children:a.jsx(K,{dashboard:p.data,widgetAppLinks:t,headerAppLinks:V(),presentation:i.data,getWidgetContentRequest:z.dashboardWidgetContent,audiences:m.data,lazyLoad:!f.isBot(),commonVideoProps:o})}):a.jsx(a.Fragment,{})}export{oa as DashboardView,ia as sanitizeDashboardViewParams};
2
+ //# sourceMappingURL=D84-WY3k.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"D84-WY3k.chunk.js","sources":["../../../../libs/shared/src/apps/streamable-learning/components/dashboard/empty-state/StreamableDiscoverDashboardEmptyState.tsx","../../../../libs/shared/src/apps/streamable-learning/components/dashboard/StreamableDiscoverDashboard.tsx","../../src/apps/dashboard/views/dashboard/DashboardView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { PlusSvg } from 'libs/shared/images/svg/actions/PlusSvg';\nimport { CuratedDashboard, DashboardStatus } from 'libs/shared/interfaces';\n\n\nconst namespace = 'streamable.dashboardEmptyState';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface StreamableDiscoverDashboardEmptyStateProps {\n dashboard: CuratedDashboard;\n imageUrl: string;\n isReadonly: boolean;\n addWidgetApplink?: () => Core.AppLink;\n}\n\nexport function StreamableDiscoverDashboardEmptyState(props: StreamableDiscoverDashboardEmptyStateProps): JSX.Element {\n const isArchived = props.dashboard?.status === DashboardStatus.Archived;\n\n return (\n <EmptyState>\n <EmptyState.Image src={props.imageUrl} altText={getPhrase('info')} />\n <EmptyState.Heading>\n <Text namespace={namespace} phrase='heading' />\n </EmptyState.Heading>\n <EmptyState.Info>\n <Text namespace={namespace} phrase='info' />\n </EmptyState.Info>\n <Tooltip title={isArchived ? LanguageService.getPhrase(namespace, 'archivedCtaTooltip') : ''} spanHack>\n <EmptyState.Cta\n text={LanguageService.getPhrase(namespace, 'add')}\n appLink={props.addWidgetApplink?.()}\n className='btn btn-dark'\n icon={PlusSvg}\n disabled={isArchived}\n />\n </Tooltip>\n </EmptyState>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { Flight } from 'libs/common/flight';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { StreamableHeader, StreamableHeaderAppLinks } from 'libs/shared/apps/streamable-learning/components/header/StreamableHeader';\nimport { WidgetContainerView } from 'libs/shared/components/widgets/curated-widgets/WidgetContainerView';\nimport { AllDiscoverWidgetTemplates } from 'libs/shared/components/widgets/curated-widgets/WidgetProps';\nimport { WidgetTemplate } from 'libs/shared/enums/WidgetTemplate';\nimport { WidgetTypeId } from 'libs/shared/enums/WidgetTypeId';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { CalendarEventContentType, CuratedDashboard, CuratedWidgetQueryParams, DashboardTargetType, Presentation, PresentationAudience } from 'libs/shared/interfaces';\nimport { CommonVideoProps } from 'libs/shared/interfaces/CommonVideoProps';\nimport { CuratedDashboardHelper } from 'libs/shared/utils/DashboardHelper';\n\nimport { StreamableDiscoverDashboardEmptyState } from './empty-state/StreamableDiscoverDashboardEmptyState';\n\nexport interface StreamableDiscoverDashboardProps {\n dashboard: CuratedDashboard;\n getWidgetContentRequest: (\n id: string,\n params: CuratedWidgetQueryParams,\n widgetTemplate: WidgetTemplate\n ) => Flight.Request;\n\n audiences?: PresentationAudience[];\n emptyImageUrl?: string;\n presentation: Presentation;\n widgetAppLinks?: AllDiscoverWidgetTemplates['appLinks'] & {\n widgetWizard: () => Core.AppLink;\n };\n headerAppLinks?: StreamableHeaderAppLinks;\n scrollToWidgetId?: string;\n isReadonly?: boolean;\n lazyLoad?: boolean;\n commonVideoProps: CommonVideoProps;\n}\n\nexport function StreamableDiscoverDashboard(props: StreamableDiscoverDashboardProps): JSX.Element {\n const widgets = ArrayHelper.sortBy(props.dashboard?.widgets, 'index');\n\n const { hasPermissions, hasLocalPermissions } = usePermissions();\n\n function getWidgetContentRequest(id: string, widgetTypeId: WidgetTypeId, template: WidgetTemplate): Flight.Request {\n const params = CuratedDashboardHelper.getWidgetParams(\n widgetTypeId,\n template,\n CuratedDashboardHelper.getDashboardTargetType(props.dashboard)\n );\n\n return props.getWidgetContentRequest(id, params, template);\n }\n\n const showEmptyState = props.isReadonly && !widgets?.length;\n\n return (\n <>\n <StreamableHeader active='discover' appLinks={props.headerAppLinks} />\n\n {widgets.map((widget, idx) => {\n return (\n <WidgetContainerView\n widgetCollection={DashboardTargetType.Discover}\n key={widget.id}\n id={widget.id}\n getContentRequest={getWidgetContentRequest}\n audiences={props.audiences}\n name={widget.name}\n description={widget.description}\n templateId={widget.templateId}\n metadata={widget.metadata}\n presentation={props.presentation}\n appLinks={props.widgetAppLinks}\n isScrollToTargetWidget={props?.scrollToWidgetId === widget.id}\n widgetTypeId={widget.widgetId}\n lazyLoad={props.lazyLoad}\n dashboardTarget={DashboardTargetType.Discover}\n widgetIndex={idx}\n isPreviewing={props.isReadonly}\n contentType={CalendarEventContentType.Livestream}\n preferences={widget.preferences}\n hasPermissions={hasPermissions}\n hasLocalPermissions={hasLocalPermissions}\n isTertiaryCustomerWithoutExchange={false}\n preventPopout\n imageCdnUrl={props.commonVideoProps.imageCdnUrl}\n commonVideoProps={props.commonVideoProps}\n \n availablePresentations={undefined}\n classification={undefined}\n hasTableOfContents={undefined}\n imageUrls={undefined}\n jobTitle={undefined}\n onSubmitFeedback={undefined}\n settings={undefined}\n updatePreferences={undefined}\n seeMoreLink={undefined}\n onClickRemoveItem={undefined}\n badgeComponent={undefined}\n />\n );\n })}\n\n {showEmptyState && (\n <StreamableDiscoverDashboardEmptyState\n dashboard={props.dashboard}\n isReadonly={props.isReadonly}\n imageUrl={props.emptyImageUrl}\n addWidgetApplink={props.widgetAppLinks.widgetWizard}\n />\n )}\n </>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { StorageType } from 'libs/common/backbone/utils/LocalStorageHelper';\nimport { Flight } from 'libs/common/flight';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { StreamableDiscoverDashboard } from 'libs/shared/apps/streamable-learning/components/dashboard/StreamableDiscoverDashboard';\nimport { SharedViewModelKeys } from 'libs/shared/constants/SharedViewModelKeys';\nimport { PresentationType } from 'libs/shared/enums/PresentationType';\nimport { AudienceRequests } from 'libs/shared/flight-requests/AudienceRequests';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { DashboardRequests } from 'libs/shared/flight-requests/DashboardRequests';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Config, DashboardTargetType, Presentation, PresentationAudience } from 'libs/shared/interfaces';\nimport { AudienceHelper } from 'libs/shared/utils/audience-helper/AudienceHelper';\nimport { PageMetadataHelper } from 'libs/shared/utils/PageMetadataHelper';\n\nimport { StreamableConstants } from 'shared/constants/StreamableConstants';\nimport { PresentationRequests } from 'shared/flight-requests/PresentationRequests';\nimport { useCommonVideoProps } from 'shared/hooks/useCommonVideoProps';\nimport { useFetchDashboard } from 'shared/hooks/useFetchDashboard';\nimport { SeoHelper } from 'shared/utils/StreamableSeoHelper';\n\nimport { getDiscoverWidgetAppLinks, getStreamableHeaderAppLinks } from 'apps/dashboard/views/dashboard/DiscoverViewUtils';\n\nconst namespace = 'streamableDashboard.dashboard';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\n/**\n * NOTE: Ensure any keys added here are also added\n * to sanitizeDashboardParams below.\n */\ninterface DashboardViewQueryParams {\n a?: string[]\n dashboardId?: string;\n}\n\nexport function sanitizeDashboardViewParams(queryParams: DashboardViewQueryParams): DashboardViewQueryParams {\n if (!queryParams)\n return {};\n\n return ObjectHelper.pick(queryParams, [ 'a', 'dashboardId' ]);\n}\n\ninterface DashboardViewProps {\n queryParams?: DashboardViewQueryParams;\n}\n\nexport function DashboardView(props: DashboardViewProps): JSX.Element {\n const { commonVideoProps } = useCommonVideoProps();\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n const presentation = Flight.useBasicFetch<Presentation>(\n PresentationRequests.streamablePresentation()\n );\n\n const audiences = Flight.useBasicFetch<PresentationAudience[]>(\n presentation.data &&\n AudienceRequests.presentationAudiences(presentation.data.id, PresentationType.StreamableLearning)\n );\n\n const { dashboard } = useFetchDashboard({\n targetType: DashboardTargetType.Discover,\n dashboardId: props.queryParams?.dashboardId\n });\n\n const [activeAudiences] = useViewModel<PresentationAudience[]>(\n SharedViewModelKeys.AUDIENCE_FILTER,\n undefined,\n { storage: StorageType.SessionStorage }\n );\n\n const widgetAppLinks = getDiscoverWidgetAppLinks(AudienceHelper.getAudienceParams(activeAudiences));\n\n useSetPageMetadata(PageMetadataHelper.getDiscoverMetadata({\n content: presentation.data,\n phraseContext: {\n phraseHandler: getPhrase,\n titlePhrase: 'pageTitle',\n descriptionPhrase: 'pageDescription'\n },\n canonicalLink: SeoHelper.getCanonicalLink(),\n allowIndexing: true,\n product: StreamableConstants.PRODUCT_NAME\n }));\n\n const hasLoaded = (\n config.hasCompleted &&\n dashboard.hasCompleted &&\n presentation.hasCompleted &&\n audiences.hasCompleted\n );\n\n if (!hasLoaded)\n return <></>;\n\n return (\n <div className='bg-white px-4'>\n <StreamableDiscoverDashboard\n dashboard={dashboard.data}\n widgetAppLinks={widgetAppLinks}\n headerAppLinks={getStreamableHeaderAppLinks()}\n presentation={presentation.data}\n getWidgetContentRequest={DashboardRequests.dashboardWidgetContent}\n audiences={audiences.data}\n lazyLoad={!SeoHelper.isBot()}\n commonVideoProps={commonVideoProps}\n />\n </div>\n );\n}"],"names":["namespace","getPhrase","LanguageService","StreamableDiscoverDashboardEmptyState","props","isArchived","_a","DashboardStatus","EmptyState","jsx","Text","Tooltip","_b","PlusSvg","StreamableDiscoverDashboard","widgets","ArrayHelper","hasPermissions","hasLocalPermissions","usePermissions","getWidgetContentRequest","id","widgetTypeId","template","params","CuratedDashboardHelper","showEmptyState","jsxs","Fragment","StreamableHeader","widget","idx","WidgetContainerView","DashboardTargetType","CalendarEventContentType","sanitizeDashboardViewParams","queryParams","ObjectHelper","DashboardView","commonVideoProps","useCommonVideoProps","config","Flight.useBasicFetch","ConfigRequests","presentation","PresentationRequests","audiences","AudienceRequests","PresentationType","dashboard","useFetchDashboard","activeAudiences","useViewModel","SharedViewModelKeys","StorageType","widgetAppLinks","getDiscoverWidgetAppLinks","AudienceHelper","useSetPageMetadata","PageMetadataHelper","SeoHelper","StreamableConstants","getStreamableHeaderAppLinks","DashboardRequests"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{ah as n,bt as x,bu as p,j as e,c as C,d as b,l as k,m as E}from"./app-C56EnOMP.js";import{C as M}from"./-cwk-1Iv.chunk.js";import{P}from"./CPXlV0fg.chunk.js";const y="shared.breadcrumbComponent",B=C.encloseNamespace(y),F=64,h=48,c=n.forwardRef((a,i)=>{const{breadcrumb:{name:s,appLink:o,active:m},withBackIcon:u}=a;let t=s,l=null;return t.length>h&&(t=s.slice(0,h)+"...",l=s),e.jsx("li",{className:`breadcrumb-item${m?" active":""}`,title:l,children:m?e.jsx("strong",{children:t}):e.jsxs(b,{appLink:o,ref:i,children:[u&&e.jsx(k,{svg:M,size:E.Small}),e.jsx("span",{className:u?"ms-2":"",children:t})]})})}),I=({breadcrumbs:a})=>{const i=x(p.XS),s=(a==null?void 0:a.length)||0,[o,m]=n.useState(!1),[u,t]=n.useState(!1),l=n.useRef(null);n.useEffect(()=>{const r=(a==null?void 0:a.reduce((d,v)=>d+v.name.length,0))??0;s>4&&r>F&&m(!0)},[a==null?void 0:a.length]),n.useLayoutEffect(()=>{var r;u&&((r=l.current)==null||r.focus())},[l.current,u]);function g(){m(!1),t(!0)}if(!s||i&&s<2)return e.jsx(e.Fragment,{});if(i)return e.jsx("nav",{"aria-label":"breadcrumb",children:e.jsx("ol",{className:"breadcrumb m-0 p-0",children:e.jsx(c,{breadcrumb:a[s-2],withBackIcon:!0})})});const j=e.jsx(c,{breadcrumb:a[0]}),f=s>2?e.jsx(c,{breadcrumb:a[1]}):e.jsx(e.Fragment,{}),N=s>3?e.jsx(c,{breadcrumb:a[s-2]}):e.jsx(e.Fragment,{}),S=s>1?e.jsx(c,{breadcrumb:a[s-1]}):e.jsx(e.Fragment,{}),L=a.slice(2,s-2);return e.jsx("nav",{"aria-label":"breadcrumb",children:e.jsxs("ol",{className:"breadcrumb m-0 p-0",children:[j,f,o?e.jsx("li",{className:"breadcrumb-item",children:e.jsx("button",{className:"btn-link",onClick:g,"aria-label":B("expand"),children:"..."})}):L.map((r,d)=>e.jsx(c,{breadcrumb:r,ref:d===0?l:null},d)),N,S]})})},T=n.memo(function({numItems:a=3}){return x(p.XS)?e.jsx("div",{className:"partial-loading-background",style:{height:"1.3125rem",width:"6rem"}}):e.jsx("nav",{"aria-label":"breadcrumb",children:e.jsx("ol",{className:"breadcrumb m-0 p-0",children:P.getPartialLoadingItems({numItems:a}).map(({width:s},o)=>e.jsx("li",{className:"breadcrumb-item",children:e.jsx("span",{className:"d-inline-block partial-loading-background",style:{width:s},dangerouslySetInnerHTML:{__html:"&nbsp"}})},o))})})});export{I as B,T as P};
2
+ //# sourceMappingURL=DAh7Ea13.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DAh7Ea13.chunk.js","sources":["../../../../libs/shared/src/components/breadcrumbs/Breadcrumbs.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\nimport { useMediaQuery } from 'libs/shared/hooks/UseMediaQuery';\nimport { ChevronLeftSvg } from 'libs/shared/images/svg/arrows/ChevronLeftSvg';\nimport { PartialLoadingHelper } from 'libs/shared/utils/PartialLoadingHelper';\n\nimport { SvgContainer, SvgContainerSize } from '../svg-container/SvgContainer';\n\nconst namespace = 'shared.breadcrumbComponent';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst COLLAPSE_CHARACTER_COUNT = 64;\nconst MAX_SEGMENT_LENGTH = 48;\n\nexport interface Breadcrumb {\n name: string;\n appLink?: Core.AppLink;\n active?: boolean;\n}\n\ninterface BreadcrumbItemProps {\n breadcrumb: Breadcrumb;\n withBackIcon?: boolean;\n}\n\nexport const BreadcrumbItem = React.forwardRef((\n props: BreadcrumbItemProps,\n ref: React.ForwardedRef<HTMLElement>\n) => {\n const { breadcrumb: { name, appLink, active }, withBackIcon } = props;\n\n let trimmedName = name;\n let title: string = null;\n\n if (trimmedName.length > MAX_SEGMENT_LENGTH) {\n trimmedName = name.slice(0, MAX_SEGMENT_LENGTH) + '...';\n\n // Only setting the title when we trim, because otherwise it's really not needed - Sha\n title = name;\n }\n\n return (\n <li\n className={`breadcrumb-item${active ? ' active' : ''}`}\n title={title}\n >\n {active\n ? <strong>{trimmedName}</strong>\n : <AppLink appLink={appLink} ref={ref}>\n {withBackIcon && <SvgContainer svg={ChevronLeftSvg} size={SvgContainerSize.Small} />}\n <span className={withBackIcon ? 'ms-2' : ''}>{trimmedName}</span>\n </AppLink>\n }\n </li>\n );\n});\n\ninterface BreadcrumbsProps {\n breadcrumbs: Breadcrumb[];\n}\n\nexport const Breadcrumbs = ({ breadcrumbs }: BreadcrumbsProps) => {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n const length = breadcrumbs?.length || 0;\n \n const [ collapse, setCollapse ] = React.useState(false);\n const [ shouldFocus, setShouldFocus ] = React.useState(false);\n const expandRef = React.useRef<HTMLElement>(null);\n\n React.useEffect(() => {\n const characterLength = breadcrumbs?.reduce((prev, next) => prev + next.name.length, 0) ?? 0;\n\n if (length > 4 && characterLength > COLLAPSE_CHARACTER_COUNT)\n setCollapse(true);\n }, [breadcrumbs?.length]);\n\n /**\n * Focus our first expanded item the first time it appears.\n */\n React.useLayoutEffect(() => {\n if (shouldFocus)\n expandRef.current?.focus();\n }, [ expandRef.current, shouldFocus ]);\n\n function onClickExpand() {\n setCollapse(false);\n setShouldFocus(true);\n }\n\n if (!length || (isMobile && length < 2))\n return <></>;\n\n if (isMobile)\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n <BreadcrumbItem breadcrumb={breadcrumbs[length - 2]} withBackIcon />\n </ol>\n </nav>\n );\n\n const first = <BreadcrumbItem breadcrumb={breadcrumbs[0]} />;\n const second = length > 2 ? <BreadcrumbItem breadcrumb={breadcrumbs[1]} /> : <></>;\n const secondLast = length > 3 ? <BreadcrumbItem breadcrumb={breadcrumbs[length - 2]} /> : <></>;\n const last = length > 1 ? <BreadcrumbItem breadcrumb={breadcrumbs[length - 1]} /> : <></>;\n const rest = breadcrumbs.slice(2, length - 2);\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {first}\n {second}\n {collapse ?\n <li className='breadcrumb-item'>\n <button\n className='btn-link'\n onClick={onClickExpand}\n aria-label={getPhrase('expand')}\n >\n ...\n </button>\n </li> :\n rest.map((breadcrumb, idx) => (\n <BreadcrumbItem\n key={idx}\n breadcrumb={breadcrumb}\n ref={idx === 0 ? expandRef : null}\n />\n ))\n }\n {secondLast}\n {last}\n </ol>\n </nav>\n );\n};\n\nexport const PartialBreadcrumbs = React.memo(function({ numItems = 3 }: { numItems?: number; }) {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n if (isMobile) {\n return (\n <div className='partial-loading-background' style={{ height: '1.3125rem', width: '6rem' }} />\n );\n }\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {PartialLoadingHelper.getPartialLoadingItems({ numItems }).map(({ width }, idx) => (\n <li key={idx} className='breadcrumb-item'>\n <span className='d-inline-block partial-loading-background' style={{ width }} dangerouslySetInnerHTML={{ __html: '&nbsp' }} />\n </li>\n ))}\n </ol>\n </nav>\n );\n});"],"names":["namespace","getPhrase","LanguageService","COLLAPSE_CHARACTER_COUNT","MAX_SEGMENT_LENGTH","BreadcrumbItem","React.forwardRef","props","ref","name","appLink","active","withBackIcon","trimmedName","title","jsx","jsxs","AppLink","SvgContainer","ChevronLeftSvg","SvgContainerSize","Breadcrumbs","breadcrumbs","isMobile","useMediaQuery","MediaQueryStrings","length","collapse","setCollapse","React.useState","shouldFocus","setShouldFocus","expandRef","React.useRef","React.useEffect","characterLength","prev","next","React.useLayoutEffect","_a","onClickExpand","Fragment","first","second","secondLast","last","rest","breadcrumb","idx","PartialBreadcrumbs","React.memo","numItems","PartialLoadingHelper","width"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{j as l}from"./app-C56EnOMP.js";function a(e){return l.jsx("svg",{...e,children:l.jsx("path",{fill:"currentColor",fillRule:"evenodd",d:"M12 20a8 8 0 1 0 0-16 8 8 0 0 0 0 16m0-15a7 7 0 1 1 0 14 7 7 0 0 1 0-14m.5 4a.5.5 0 0 0-1 0v5.293l-2.146-2.147a.5.5 0 0 0-.708.708l3 3a.5.5 0 0 0 .708 0l3-3a.5.5 0 0 0-.708-.708L12.5 14.293z",clipRule:"evenodd"})})}export{a as D};
2
+ //# sourceMappingURL=DBIkG3Bu.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DBIkG3Bu.chunk.js","sources":["../../../../libs/shared/src/images/svg/actions/DownloadSvg.tsx"],"sourcesContent":["import React from 'react';\n\nexport function DownloadSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n fill='currentColor'\n fillRule='evenodd'\n d='M12 20a8 8 0 1 0 0-16 8 8 0 0 0 0 16m0-15a7 7 0 1 1 0 14 7 7 0 0 1 0-14m.5 4a.5.5 0 0 0-1 0v5.293l-2.146-2.147a.5.5 0 0 0-.708.708l3 3a.5.5 0 0 0 .708 0l3-3a.5.5 0 0 0-.708-.708L12.5 14.293z'\n clipRule='evenodd'\n />\n </svg>\n );\n}\n"],"names":["DownloadSvg","props","jsx"],"mappings":"sCAEO,SAASA,EAAYC,EAAsC,CAChE,OACEC,EAAAA,IAAC,MAAA,CAAK,GAAGD,EACP,SAAAC,EAAAA,IAAC,OAAA,CACC,KAAK,eACL,SAAS,UACT,EAAE,iMACF,SAAS,SAAA,CAAA,EAEb,CAEJ"}
@@ -0,0 +1,2 @@
1
+ import{j as e,G as g,c as r,da as h,h as o,ae as s,o as x,M as n,dq as l,k as d,i as m,n as k,e as V,W as P,X as L}from"./app-C56EnOMP.js";import{C as v}from"./CUltMbyK.chunk.js";import{b as j}from"./BwuSNwcs.chunk.js";import{V as G}from"./DGFORsAE.chunk.js";import{u as b}from"./BPcJv8Nj.chunk.js";import"./CEmtkty-.chunk.js";import"./pkzD5BEm.chunk.js";import"./9NIa7Pi_.chunk.js";const t="shared.videoGuidanceClassroomGuidePopup",C=350;function f(i){function u(a){return i.curriculums.updateCurriculum(a,{shouldLog:!0,video:i.video,locationContext:o.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:a,...c})=>e.jsx("div",{...c,style:{...a,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(j,{curriculumLinks:i.curriculums.curriculumLinks,onChangeCurriculum:u,hasCompleted:i.curriculums.hasCompleted,mappedCurriculums:i.curriculums.mappedCurriculums,isFetching:i.curriculums.isFetching,getCodeAppLink:i.getCodeAppLink,locationContext:o.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(G.video(i.id)),a=b(i.id);function c(){n.logUserAction({id:u.data.id,name:u.data.name},{entity:m.Video,location:o.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:o.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(f,{isLoading:!u.hasCompleted,video:u.data,curriculums:a,onClickClose:c,onClickViewVideo:p,closePopup:i.closePopup})}export{S as VideoGuidanceClassroomGuideView};
2
+ //# sourceMappingURL=DCcI7sWt.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DCcI7sWt.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":"+XAcA,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"}
@@ -0,0 +1,2 @@
1
+ import{bt as t,bu as i}from"./app-C56EnOMP.js";function M(){const e=t(i.XS),n=t(i.SM),r=t(i.MD),X=t(i.LG),o=t(i.XL),u=t(i.XXL);let s=i.LG;return e&&(s=i.XS),n&&(s=i.SM),r&&(s=i.MD),X&&(s=i.LG),o&&(s=i.XL),u&&(s=i.XXL),s}export{M as u};
2
+ //# sourceMappingURL=DEP24A-f.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DEP24A-f.chunk.js","sources":["../../../../libs/shared/src/hooks/UseGetMediaQueryString.ts"],"sourcesContent":["import { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\n\nimport { useMediaQuery } from './UseMediaQuery';\n\n/**\n * @deprecated Please use useBreakpoints() instead\n */\nexport function useGetMediaQueryString(): MediaQueryStrings {\n const isXS = useMediaQuery(MediaQueryStrings.XS);\n const isSM = useMediaQuery(MediaQueryStrings.SM);\n const isMD = useMediaQuery(MediaQueryStrings.MD);\n const isLG = useMediaQuery(MediaQueryStrings.LG);\n const isXL = useMediaQuery(MediaQueryStrings.XL);\n const isXXL = useMediaQuery(MediaQueryStrings.XXL);\n\n let currentString = MediaQueryStrings.LG; // default\n if (isXS) currentString = MediaQueryStrings.XS;\n if (isSM) currentString = MediaQueryStrings.SM;\n if (isMD) currentString = MediaQueryStrings.MD;\n if (isLG) currentString = MediaQueryStrings.LG;\n if (isXL) currentString = MediaQueryStrings.XL;\n if (isXXL) currentString = MediaQueryStrings.XXL;\n\n return currentString;\n}"],"names":["useGetMediaQueryString","isXS","useMediaQuery","MediaQueryStrings","isSM","isMD","isLG","isXL","isXXL","currentString"],"mappings":"+CAOO,SAASA,GAA4C,CAC1D,MAAMC,EAAOC,EAAcC,EAAkB,EAAE,EACzCC,EAAOF,EAAcC,EAAkB,EAAE,EACzCE,EAAOH,EAAcC,EAAkB,EAAE,EACzCG,EAAOJ,EAAcC,EAAkB,EAAE,EACzCI,EAAOL,EAAcC,EAAkB,EAAE,EACzCK,EAAQN,EAAcC,EAAkB,GAAG,EAEjD,IAAIM,EAAgBN,EAAkB,GACtC,OAAIF,MAAsBE,EAAkB,IACxCC,MAAsBD,EAAkB,IACxCE,MAAsBF,EAAkB,IACxCG,MAAsBH,EAAkB,IACxCI,MAAsBJ,EAAkB,IACxCK,MAAuBL,EAAkB,KAEtCM,CACT"}
@@ -0,0 +1,2 @@
1
+ import{b4 as p,a6 as a,bb as c,a5 as v,an as b,ds as V}from"./app-C56EnOMP.js";import{a as $}from"./CEmtkty-.chunk.js";import{P as m}from"./pkzD5BEm.chunk.js";var g=(e=>(e.Series="series",e.Playlist="playlist",e.Widget="widget",e.Folder="category",e.CategoryTree="categoryTree",e))(g||{}),n=(e=>(e.Newest="newest",e.Oldest="oldest",e.RecentlyAdded="recently_added",e.AtoZ="atoz",e.ZtoA="ztoa",e.Series="series",e.ProductionYear="production_year",e))(n||{});const k=(e,t)=>`${t?`${t}:`:""}video:sort:${e}`,f=n.RecentlyAdded,T={getValidSortTypeFromParam(e){return Object.values(n).includes(e)?e:n.Newest},getOrSetSortType(e,t,r,i){const s=k(e,i);return(t||!p.cacheExists(s))&&p.cacheSet(s,t||r||f),t||(t=p.cacheGet(s)),t},getVideoSortParam(e){switch(e){case n.AtoZ:return"orderby:name";case n.ZtoA:return"orderbydesc:name";case n.Newest:return"orderbydesc:datecreated";case n.Oldest:return"orderby:datecreated";case n.RecentlyAdded:return"orderbydesc:timestamp";case n.Series:return"orderby:seriessort";case n.ProductionYear:return"orderbydesc:productionyear";default:return}}},u={sharedVideo:(e,t)=>a.urlBuilder(`/api/objects/${e}`,{shareId:t,query:c.VIDEO}),publicVideo:(e,t)=>a.urlBuilder(`/api/objects/${e}`,{query:"thumbnail,_canBeConsumed,series,season,_rating,libraries{typeId:[17]}",permissionFilterOption:m.StripMetadata,shareId:t}),getVideosById:e=>a.urlBuilder("{gateway}/v1/objects",{"query.video":c.VIDEO_COLLECTION,"query.clip":c.CLIP_COLLECTION,"query.interactive":c.INTERACTIVE_COLLECTION,id:e}),relatedVideos:e=>{const{videoId:t,context:r,collectionId:i,moviesAndTv:s,limit:l}=e,o={videoId:t,limit:l,query:c.VIDEO_COLLECTION};return r&&(r===g.Widget?o["context.widgetId"]=i:(o["context.collectionType"]=r,o["context.collectionId"]=i)),s&&(o["context.moviesAndTv"]=!0),a.urlBuilder("{gateway}/v1/suggestions/related-videos",o)}},q={video(e,t){return{url:a.urlBuilder(`{gateway}/v1/objects/${e}`,{query:c.VIDEO,permissionFilterOption:t}),publicUrl:a.urlBuilder(`/api/objects/${e}`,{query:V.VIDEO,permissionFilterOption:t}),key:`videos:${e}:${t}`}},publicVideo(e,t,r,i){return{url:u.publicVideo(e,t),key:`videos:${e}:public:${t}`,bootstrapName:`shared:object:${e}`,success:r,error:i}},sharedVideo(e,t,r,i){return{url:u.sharedVideo(e,t),key:`shared:video:${e}`,success:r,error:i}},myVideos(e,t){const{VIDEO_COLLECTION:r,CLIP_COLLECTION:i,INTERACTIVE:s}=c,l=`videos[${r}]{libraries.typeid:${b.WorkspaceCollection}}`,o=`clips[${i}]`,d=`interactives[${s}]{status:[${$.Published},${$.Draft}]}`,y={query:`(${l}|${o}|${d}){orderbydesc:id}`,permissionFilterOption:m.StripMetadata};return t&&(y.cursor=t),{url:a.urlBuilder(`{gateway}/v1/objects/${e}/members`,y),key:`my:videos:${t}`}},videos(e,t){return{url:u.getVideosById(e),key:`videos:by:id:${e.join(",")}`,success:t}},watchHistoryVideos(e,t){return{url:u.getVideosById(e),key:`watch:history:videos:by:id:${e.join(",")}`,success:t}},updateVideo(e,t,r,i,s){return{key:`update:video:${e}`,url:`{gateway}/v1/objects/${e}`,type:v.PUT,data:t,success:r,error:i,always:s}},videoRatings(e,t){const r=e.map(i=>`id=${i}`);if(r.length)return{url:`/api/domain/v2/objects?query=rating&${r.join("&")}`,key:`video:ratings:by:id:${e.join(",")}`,normalizeOptions:{namespace:t}}},videoMixinAssocs(e,t){if(e.map(i=>`id=${i}`).length)return{url:a.urlBuilder("{gateway}/v1/objects",{query:"interactives{limit:100},resources{limit:100},links{limit:100},_hasCurriculumLinks",id:e}),publicUrl:a.urlBuilder("/api/objects",{query:"interactives{limit:100},resources{limit:100},links{limit:100},_hasCurriculumLinks",id:e}),key:`video:mixin:assocs:${e.join(",")}`,normalizeOptions:{namespace:t}}},getRestrictions(e){const t=e.slice().sort();return{url:`/api/domain/v1/restrictedobjects?objectTypeId=${b.Video}${t.map(r=>`&objectId=${r}`).join("")}`,key:`restrictions:${t.join(",")}`,normalizeOptions:{namespace:"domain",idAttribute:"objectId"}}},delete(e,t,r){return{url:`{gateway}/v1/objects/${e}`,key:`delete:video:${e}`,type:v.DELETE,success:t,error:r,invalidationKeys:["videos","search"]}},deleteBulk(e,t,r,i,s){const l=e.map(d=>`videoIds=${d}`).join("&"),o=[`categoryId=${r}`,`${l}`].join("&");return{url:`/api/domain/v1/libraries/${t}/videos?${o}`,key:`delete:bulk:video:${e.join(":")}:${t}:${r}`,type:v.DELETE,success:i,error:s,invalidationKeys:["videos","search"]}},relatedVideos(e){const{videoId:t,context:r,collectionId:i,moviesAndTv:s}=e;return{url:u.relatedVideos(e),key:`related:videos:${t}:${r}:${i}:${s}`}},collectionVideos(e,t,r,i,s,l){const o=T.getVideoSortParam(t),{VIDEO_COLLECTION:d,CLIP_COLLECTION:y,INTERACTIVE:O}=c,j=`videos[${d}]`,I=`clips[${y}]`,E=`interactives[${O}]{status:[${$.Published},${$.Draft}]}`,h={query:`(${j}|${I}|${E})${o?`{${o}}`:""}`,permissionFilterOption:m.FilterOut,...r?{cursor:r}:{}},C=["folder","videos",e,r,t].filter(L=>!!L).join(":");return{url:a.urlBuilder(`{gateway}/v1/objects/${e}/members`,h),key:C,success:i,error:s,always:l}},pointsOfInterest(e,t,r,i,s){const l={query:"{limit:100}",cursor:t};return{url:a.urlBuilder(`{gateway}/v1/objects/${e}/pointsofinterest`,l),publicUrl:a.urlBuilder(`/api/objects/${e}/pointsofinterest`,l),key:`pointsofinterest:${e}${t?`:${t}`:""}`,success:r,error:i,always:s}},regionAlternatives(e,t,r,i){return{url:`/api/objects/videos/${e}/region-alternatives`,publicUrl:`/api/objects/videos/${e}/region-alternatives`,key:`video:regionAlternatives:${e}`,normalize:!1,success:t,error:r,always:i}}};export{q as V};
2
+ //# sourceMappingURL=DGFORsAE.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DGFORsAE.chunk.js","sources":["../../../../libs/shared/src/enums/RelatedVideosContext.ts","../../../../libs/shared/src/enums/VideoSortType.ts","../../../../libs/shared/src/utils/VideoSortHelper.ts","../../../../libs/shared/src/flight-requests/VideoRequests.ts"],"sourcesContent":["export enum RelatedVideosContext {\n Series = 'series',\n Playlist = 'playlist',\n Widget = 'widget',\n Folder = 'category',\n CategoryTree = 'categoryTree'\n}","export enum VideoSortType {\n Newest = 'newest',\n Oldest = 'oldest',\n RecentlyAdded = 'recently_added',\n AtoZ = 'atoz',\n ZtoA = 'ztoa',\n Series = 'series',\n ProductionYear = 'production_year'\n}","import { LocalStorageHelper } from 'libs/common/backbone/utils/LocalStorageHelper';\n\nimport { VideoSortType } from 'libs/shared/enums/VideoSortType';\n\nconst getCacheKey = (userId: string, keyPrefix: string) => `${keyPrefix ? `${keyPrefix}:` : ''}video:sort:${userId}`;\n\nconst DEFAULT_SORT = VideoSortType.RecentlyAdded;\n\nexport const VideoSortHelper = {\n getValidSortTypeFromParam(sortParam: string): VideoSortType {\n if (Object.values(VideoSortType).includes(sortParam as VideoSortType))\n return sortParam as VideoSortType;\n\n return VideoSortType.Newest;\n },\n\n getOrSetSortType(\n userId: string,\n sortType?: VideoSortType,\n defaultSort?: VideoSortType,\n keyPrefix?: string\n ): VideoSortType {\n const cacheKey = getCacheKey(userId, keyPrefix);\n\n /**\n * If there is a sortType param, cache it.\n * If there isn't a sortType param and no value exists\n * in local storage, we need to set a default.\n */\n if (sortType || !LocalStorageHelper.cacheExists(cacheKey))\n LocalStorageHelper.cacheSet(cacheKey, sortType || defaultSort || DEFAULT_SORT);\n\n if (!sortType)\n sortType = LocalStorageHelper.cacheGet(cacheKey);\n\n return sortType;\n },\n\n getVideoSortParam(sortType?: VideoSortType): string {\n switch (sortType) {\n case VideoSortType.AtoZ:\n return 'orderby:name';\n \n case VideoSortType.ZtoA:\n return 'orderbydesc:name';\n \n case VideoSortType.Newest:\n return 'orderbydesc:datecreated';\n \n case VideoSortType.Oldest:\n return 'orderby:datecreated';\n \n case VideoSortType.RecentlyAdded:\n return 'orderbydesc:timestamp';\n \n case VideoSortType.Series:\n return 'orderby:seriessort';\n\n case VideoSortType.ProductionYear:\n return 'orderbydesc:productionyear';\n \n default:\n return;\n }\n }\n};","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { Xhr } from 'libs/common/backbone/interfaces/Xhr';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { PublicWithStatement, SharedWithStatements } from 'libs/shared/constants/WithStatements';\nimport { CurationStatus } from 'libs/shared/enums/CurationStatus';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { PermissionFilterOption } from 'libs/shared/enums/PermissionFilterOption';\nimport { RelatedVideosContext } from 'libs/shared/enums/RelatedVideosContext';\nimport { VideoSortType } from 'libs/shared/enums/VideoSortType';\nimport { PointOfInterestCollection, UpdateVideoRequest, Video, VideoCollection } from 'libs/shared/interfaces';\nimport { RegionAlternative } from 'libs/shared/interfaces/models/RegionAlternative';\nimport { VideoSortHelper } from 'libs/shared/utils/VideoSortHelper';\n\nconst endpoints = {\n sharedVideo: (id: string, shareId: string) => UrlHelper.urlBuilder(`/api/objects/${id}`, {\n shareId,\n query: SharedWithStatements.VIDEO\n }),\n\n publicVideo: (id: string, shareId?: string) => UrlHelper.urlBuilder(`/api/objects/${id}`, {\n // Query statement here is coupled with ClickView.Lite.Common\\Services\\OpenGraph\\OpenGraphService.cs\n // in lite. If you update this, please update both.\n query: 'thumbnail,_canBeConsumed,series,season,_rating,libraries{typeId:[17]}',\n permissionFilterOption: PermissionFilterOption.StripMetadata,\n shareId\n }),\n\n getVideosById: (ids: string[]) => {\n return UrlHelper.urlBuilder('{gateway}/v1/objects', {\n 'query.video': SharedWithStatements.VIDEO_COLLECTION,\n 'query.clip': SharedWithStatements.CLIP_COLLECTION,\n 'query.interactive': SharedWithStatements.INTERACTIVE_COLLECTION,\n 'id': ids\n });\n },\n\n relatedVideos: (options: {\n videoId: string;\n context?: RelatedVideosContext;\n collectionId?: string;\n moviesAndTv?: boolean;\n limit: number;\n }) => {\n const { videoId, context, collectionId, moviesAndTv, limit } = options;\n\n const params: HashObject = {\n videoId,\n limit,\n query: SharedWithStatements.VIDEO_COLLECTION\n };\n\n if (context) {\n if (context === RelatedVideosContext.Widget) {\n params['context.widgetId'] = collectionId;\n } else {\n params['context.collectionType'] = context;\n params['context.collectionId'] = collectionId;\n }\n }\n\n if (moviesAndTv)\n params['context.moviesAndTv'] = true;\n\n return UrlHelper.urlBuilder('{gateway}/v1/suggestions/related-videos', params);\n }\n};\n\nexport const VideoRequests = {\n video(id: string, permissionFilterOption?: PermissionFilterOption): Flight.PublicRequest {\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/${id}`, {\n query: SharedWithStatements.VIDEO,\n permissionFilterOption\n }),\n publicUrl: UrlHelper.urlBuilder(`/api/objects/${id}`, {\n query: PublicWithStatement.VIDEO,\n permissionFilterOption\n }),\n key: `videos:${id}:${permissionFilterOption}`\n };\n },\n\n publicVideo(\n id: string,\n shareId?: string,\n success?: (video: Video) => void,\n error?: (xhr: Xhr) => void\n ): Flight.Request {\n return {\n url: endpoints.publicVideo(id, shareId),\n key: `videos:${id}:public:${shareId}`,\n bootstrapName: `shared:object:${id}`,\n success,\n error\n };\n },\n\n sharedVideo(\n id: string,\n shareId: string,\n success?: (video: Video) => void,\n error?: (xhr: Xhr) => void\n ): Flight.Request {\n return {\n url: endpoints.sharedVideo(id, shareId),\n key: `shared:video:${id}`,\n success,\n error\n };\n },\n\n myVideos(userId: string, cursor: string): Flight.Request {\n const { VIDEO_COLLECTION, CLIP_COLLECTION, INTERACTIVE } = SharedWithStatements;\n\n const videoQuery = `videos[${VIDEO_COLLECTION}]{libraries.typeid:${MasterType.WorkspaceCollection}}`;\n const clipQuery = `clips[${CLIP_COLLECTION}]`;\n const interactiveQuery = `interactives[${INTERACTIVE}]{status:[${CurationStatus.Published},${CurationStatus.Draft}]}`;\n\n const params: HashObject = {\n query: `(${videoQuery}|${clipQuery}|${interactiveQuery}){orderbydesc:id}`,\n permissionFilterOption: PermissionFilterOption.StripMetadata\n };\n\n if (cursor)\n params.cursor = cursor;\n\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/${userId}/members`, params),\n key: `my:videos:${cursor}`\n };\n },\n\n videos(ids: string[], success?: (videos: Video[]) => void): Flight.Request {\n return {\n url: endpoints.getVideosById(ids),\n key: `videos:by:id:${ids.join(',')}`,\n success\n };\n },\n\n watchHistoryVideos(\n ids: string[],\n success?: (videos: Video[]) => void\n ): Flight.Request {\n return {\n url: endpoints.getVideosById(ids),\n key: `watch:history:videos:by:id:${ids.join(',')}`,\n success\n };\n },\n\n updateVideo(\n id: string,\n data: UpdateVideoRequest,\n success?: () => void,\n error?: () => void,\n always?: () => void\n ): Flight.Request {\n return {\n key: `update:video:${id}`,\n url: `{gateway}/v1/objects/${id}`,\n type: HttpVerbs.PUT,\n data,\n success,\n error,\n always\n };\n },\n\n /**\n * This is simply an example to show the prototype for useVideoMixin\n * eventually there will be endpoints in domain that let us fetch members\n * without fetching the objects properties, so we can fetch stuff like\n * hasInteractives and isFavourited as subsequent calls\n */\n videoRatings(ids: string[], namespace?: string): Flight.Request {\n const params = ids.map(i => `id=${i}`);\n\n if (!params.length)\n return;\n\n return {\n url: `/api/domain/v2/objects?query=rating&${params.join('&')}`,\n key: `video:ratings:by:id:${ids.join(',')}`,\n normalizeOptions: {\n namespace\n }\n };\n },\n\n videoMixinAssocs(ids: string[], namespace?: string): Flight.PublicRequest {\n const params = ids.map(i => `id=${i}`);\n\n if (!params.length)\n return;\n\n /**\n * IMPORTANT!\n * \n * This request is used for BOTH clips and videos. This means these requests will fail if you\n * add assocs in the future that are not supported for both object types. If you find yourself in this\n * case, what you should do is:\n * \n * 1. Consider whether clips should support the assoc that you're hydrating for videos. In most cases,\n * I think they should, as we want clips and videos to basically support the same fields and metadata.\n * 2. If the above is false or can't be done right now, you will need to create a separate request for clips\n * and update the logic in useVideoMixin to handle this.\n */\n return {\n url: UrlHelper.urlBuilder('{gateway}/v1/objects', {\n query: 'interactives{limit:100},resources{limit:100},links{limit:100},_hasCurriculumLinks',\n id: ids\n }),\n publicUrl: UrlHelper.urlBuilder(`/api/objects`, {\n query: 'interactives{limit:100},resources{limit:100},links{limit:100},_hasCurriculumLinks',\n id: ids\n }),\n /**\n * We are intentionally NOT sorting the IDs here. This is because `useVideoMixin` wants to provide\n * the IDs in their original order so that the cache key here doesn't change for subsequent calls.\n * \n * Here is an example of a problem that would occur if we were sorting: say we search for something,\n * and load the first page of 25 results. The videos and clips here would have their IDs sorted in the cache\n * key, then fetched. Then, we scrolled down and fetched the next 25, leading to 50 IDs in the array. If we\n * sort the IDs in the key, the keys would change from the first request, leading to all of the videos/clips\n * from the first request being fetched a second time unnecessarily. Every time you'd fetch a new page, you'd\n * be making multiple unnecessary API calls.\n * \n * TL;DR: Don't sort the IDs here, `useVideoMixin` will handle that.\n */\n key: `video:mixin:assocs:${ids.join(',')}`,\n normalizeOptions: {\n namespace\n }\n };\n },\n\n getRestrictions(videoIds: string[]): Flight.Request {\n const sortedIds = videoIds.slice().sort();\n\n return {\n url: '/api/domain/v1/restrictedobjects'\n + `?objectTypeId=${MasterType.Video}${sortedIds.map(id => `&objectId=${id}`).join('')}`,\n key: `restrictions:${sortedIds.join(',')}`,\n normalizeOptions: {\n namespace: 'domain',\n idAttribute: 'objectId'\n }\n };\n },\n\n delete(videoId: string, success?: () => void, error?: () => void): Flight.Request {\n return {\n url: `{gateway}/v1/objects/${videoId}`,\n key: `delete:video:${videoId}`,\n type: HttpVerbs.DELETE,\n success,\n error,\n invalidationKeys: [ 'videos', 'search' ]\n };\n },\n\n deleteBulk(\n videoId: string[],\n libraryId: string,\n categoryId: string,\n success?: () => void,\n error?: () => void\n ): Flight.Request {\n const videoIds = videoId.map(id => `videoIds=${id}`).join('&');\n const params = [\n `categoryId=${categoryId}`,\n `${videoIds}`\n ].join('&');\n\n return {\n url: `/api/domain/v1/libraries/${libraryId}/videos?${params}`,\n key: `delete:bulk:video:${videoId.join(':')}:${libraryId}:${categoryId}`,\n type: HttpVerbs.DELETE,\n success,\n error,\n invalidationKeys: [ 'videos', 'search' ]\n };\n },\n\n relatedVideos(options: {\n videoId: string;\n context?: RelatedVideosContext;\n collectionId?: string;\n moviesAndTv?: boolean;\n /**\n * This limit is intentionall not in the key. See useGetRelatedVideos for an explanation\n */\n limit: number;\n }): Flight.Request {\n const { videoId, context, collectionId, moviesAndTv } = options;\n\n return {\n url: endpoints.relatedVideos(options),\n key: `related:videos:${videoId}:${context}:${collectionId}:${moviesAndTv}`\n };\n },\n\n collectionVideos(\n collectionId: string,\n sort?: VideoSortType,\n cursor?: string,\n success?: (data: VideoCollection) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n const sortFilter = VideoSortHelper.getVideoSortParam(sort);\n const { VIDEO_COLLECTION, CLIP_COLLECTION, INTERACTIVE } = SharedWithStatements;\n\n const videoQuery = `videos[${VIDEO_COLLECTION}]`;\n const clipQuery = `clips[${CLIP_COLLECTION}]`;\n const interactiveQuery = `interactives[${INTERACTIVE}]{status:[${CurationStatus.Published},${CurationStatus.Draft}]}`;\n\n const params: HashObject = {\n query: `(${videoQuery}|${clipQuery}|${interactiveQuery})${sortFilter ? `{${sortFilter}}` : ''}`,\n permissionFilterOption: PermissionFilterOption.FilterOut,\n ...(cursor ? { cursor } : {})\n };\n\n const key = [ 'folder', 'videos', collectionId, cursor, sort ].filter(k => !!k).join(':');\n\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/${collectionId}/members`, params),\n key,\n success,\n error,\n always\n };\n },\n\n pointsOfInterest(\n videoId: string,\n cursor?: string,\n success?: (data: PointOfInterestCollection) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.PublicRequest {\n const queryStringObj = { query: '{limit:100}', cursor };\n\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/${videoId}/pointsofinterest`, queryStringObj),\n publicUrl: UrlHelper.urlBuilder(`/api/objects/${videoId}/pointsofinterest`, queryStringObj),\n key: `pointsofinterest:${videoId}${cursor ? `:${cursor}` : ''}`,\n success,\n error,\n always\n };\n },\n\n regionAlternatives(\n videoId: string,\n success?: (data: RegionAlternative[]) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.PublicRequest {\n return {\n url: `/api/objects/videos/${videoId}/region-alternatives`,\n publicUrl: `/api/objects/videos/${videoId}/region-alternatives`,\n key: `video:regionAlternatives:${videoId}`,\n normalize: false,\n success,\n error,\n always\n };\n }\n};\n"],"names":["RelatedVideosContext","VideoSortType","getCacheKey","userId","keyPrefix","DEFAULT_SORT","VideoSortHelper","sortParam","sortType","defaultSort","cacheKey","LocalStorageHelper","endpoints","id","shareId","UrlHelper","SharedWithStatements","PermissionFilterOption","ids","options","videoId","context","collectionId","moviesAndTv","limit","params","VideoRequests","permissionFilterOption","PublicWithStatement","success","error","cursor","VIDEO_COLLECTION","CLIP_COLLECTION","INTERACTIVE","videoQuery","MasterType","clipQuery","interactiveQuery","CurationStatus","data","always","HttpVerbs","namespace","videoIds","sortedIds","libraryId","categoryId","sort","sortFilter","key","k","queryStringObj"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{e as L,h as E,i as k,k as y,D as i,j as t,d as I,l as A,T as w,K as _,M as U,N as R,y as H,Q as M,V as D,W as s,X as l}from"./app-C56EnOMP.js";import{L as $}from"./-Oi3rE3V.chunk.js";import{C as z}from"./Bj3i6I7i.chunk.js";import{S as B}from"./BJ0C6oH6.chunk.js";import{B as P}from"./DkFkYS-j.chunk.js";import{C as V}from"./nay4aGaa.chunk.js";import{C as O}from"./BXKrMYdw.chunk.js";import{A as Y}from"./8zar0u1i.chunk.js";import{G}from"./6UeJLeAd.chunk.js";const K="_banner_1p617_5",Q="_pill_1p617_10",W="_logo_1p617_13",d={banner:K,pill:Q,logo:W},X="shared.specialEventListItem";function Z(e){return"audiences"in e&&"endDateTime"in e&&"startDateTime"in e}function se(e){var x,u,h,f,C,T,b;const n=e.getAppLink(e.event.content,L.slugify(e.event.name)),c=(x=e.getBackgroundColor)==null?void 0:x.call(e,e.event.content),r=(u=e.getIconUrl)==null?void 0:u.call(e,e.event.content),N=(h=e.getBannerUrl)==null?void 0:h.call(e,e.event.content),S=!!e.event.endDate,a=e.event.content.status===V.ComingSoon,m=(f=e.getStartTime)==null?void 0:f.call(e,e.event.content),j=(C=e.getActionLabel)==null?void 0:C.call(e),o=(T=e.isPastEvent)==null?void 0:T.call(e,e.event.content),v={actionType:y.Click,entity:k.SpecialEvent,location:e.inPopup?E.CalendarPopup:E.CalendarDay},g={topicId:e.event.content.id,eventId:e.event.specialEventId,presentationId:e.presentationId,date:i.format(new Date(e.event.startDate),"YYYY-MM-DD"),status:e.event.content.status};return t.jsxs("div",{children:[m&&t.jsx("h6",{children:m}),t.jsxs("div",{onClick:()=>{a&&U.logUserAction(g,v)},children:[t.jsx(I,{appLink:!a&&n,className:`${a?"":"cursor-pointer"} text-decoration-none mb-2`,onClick:e.onClick,analyticsOptions:v,analyticsData:g,children:t.jsxs("div",{className:`banner rounded-3 position-relative position-relative ${d.banner}`,style:{backgroundColor:c,backgroundImage:`url('${N}')`},children:[o&&t.jsx("div",{className:"bg-white w-100 h-100 opacity-50 position-absolute top-0 left-0 z-0"}),t.jsxs("div",{className:"d-flex justify-content-between align-items-center w-100 h-100 px-3",children:[t.jsxs("div",{className:"d-flex align-items-center z-1",children:[r&&t.jsx("div",{className:`${d.logo} rounded-circle flex-shrink-0 overflow-hidden me-2`,children:t.jsx(P,{data:r})}),t.jsxs("div",{children:[a&&t.jsx(z,{className:`pe-2 fw-semibold mb-1 rounded-pill justify-content-start ${d.pill}`}),o&&t.jsxs("div",{className:"d-inline-block rounded-pill bg-light-green mb-1",children:[t.jsx(A,{svg:O}),t.jsx("p",{className:"d-inline ms-1 mb-0",children:t.jsx(w,{namespace:X,phrase:"pastEvent"})})]}),S&&t.jsx("p",{className:"text-white text-shadow mb-1",children:B.getDisplayDate(e.event.startDate,e.event.endDate)}),t.jsx("h2",{className:`h4 text-white text-shadow ${e.event.description?"clamp-2":"clamp-1"}`,title:e.event.name,children:e.event.name})]})]}),t.jsx("div",{className:"d-none d-sm-block flex-shrink-0 z-1",children:!a&&t.jsx(_,{className:`btn ${o?"btn-outline-dark":"btn-dark"} fw-semibold`,children:j})})]})]})}),t.jsx("div",{className:"pre-wrap text-break mb-3",dangerouslySetInnerHTML:{__html:$.linkifyText(e.event.description||e.event.content.description)}}),Z(e.event.content)&&t.jsxs("div",{className:"d-flex mb-3",children:[t.jsx("div",{className:"rounded-pill border border-dark px-2 bg-white d-inline-block me-2",children:(b=Y.getMergedPresentationAudienceString(e.event.content.audiences))==null?void 0:b.name}),t.jsx("div",{className:"rounded-pill fw-semibold bg-dark text-white d-inline-block px-2",children:`${i.diffBetween(e.event.content.endDateTime,e.event.content.startDateTime,"minutes")}m`})]})]})]})}function le(){var e;return t.jsxs("div",{children:[t.jsx(A,{svg:G}),t.jsx("span",{className:"ms-1",children:(e=R[H.ET])==null?void 0:e.name})]})}const ce={getStartTime(e){return i.format(M.convertUTCToTimezoneDate(e.startDateTime),"h:mm a")},isSameTime(e,n){return n===0?!1:i.isSame(e[n].content.startDateTime,e[n-1].content.startDateTime)},isPastEvent(e){return i.isBefore(e.endDateTime,new Date)}};function oe(){return{emptyState:D.EmptyStates.CALENDAR.NO_EVENTS,errorState:D.EmptyStates.CALENDAR.INVALID_DATE}}function de(){return{calendar:()=>({application:l.CALENDAR,action:s.Calendar.CALENDAR}),month:e=>({application:l.CALENDAR,action:s.Calendar.CALENDAR_MONTH,args:[e]}),event:(e,n)=>({application:l.LIVESTREAMS,action:s.Livestreams.LIVESTREAM,args:[e.id,n]}),eventList:(e,n,c)=>({application:l.CALENDAR,action:s.Calendar.SPECIAL_EVENT_LIST,params:{...e,date:n.toString(),presentationId:c}})}}export{ce as C,se as S,le as T,de as a,oe as g};
2
+ //# sourceMappingURL=DGaf-Jy9.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DGaf-Jy9.chunk.js","sources":["../../../../libs/shared/src/apps/calendar/components/special-event-list-item/SpecialEventListItem.tsx","../../../../libs/shared/src/apps/streamable-learning/components/timezone-indicator/TimezoneIndicator.tsx","../../src/apps/calendar/utils/CalendarUtils.ts","../../src/apps/calendar/views/calendar-view/CalendarViewUtils.ts"],"sourcesContent":["import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\nimport { LinkifyHelper } from 'libs/common/react/utils/LinkifyHelper';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions, EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { ComingSoonTag } from 'libs/shared/apps/calendar/components/coming-soon-tag/ComingSoonTag';\nimport { SpecialEventHelper } from 'libs/shared/apps/calendar/utils/SpecialEventHelper';\nimport { ActionButton } from 'libs/shared/components/actions/ActionButton';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { BaseImage } from 'libs/shared/components/image/BaseImage';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ClassificationStatus } from 'libs/shared/enums/ClassificationStatus';\nimport { CalendarCheckSvg } from 'libs/shared/images/svg/objects/CalendarCheckSvg';\nimport { CalendarEvent, CalendarEventContent, Livestream, PresentationAudience } from 'libs/shared/interfaces';\nimport { AudienceHelper } from 'libs/shared/utils/audience-helper/AudienceHelper';\n\nimport styles from './special-event-list-item.module.scss';\n\nconst namespace = 'shared.specialEventListItem';\n\nfunction isLiveStream(obj: CalendarEventContent): obj is Livestream {\n return 'audiences' in obj &&\n 'endDateTime' in obj &&\n 'startDateTime' in obj;\n}\n\ninterface SpecialEventListItemProps {\n getAppLink: (content: CalendarEventContent, name: string) => Core.AppLink;\n event: CalendarEvent<CalendarEventContent>;\n onClick?: () => void;\n inPopup?: boolean;\n presentationId: string;\n headingClassName?: string;\n getIconUrl?: (content: CalendarEventContent) => string;\n getBackgroundColor?: (content: CalendarEventContent) => string;\n getBannerUrl?: (content: CalendarEventContent) => string;\n getActionLabel?: () => string;\n getStartTime?: (content: CalendarEventContent) => string;\n isPastEvent?: (content: CalendarEventContent) => boolean;\n}\n\nexport function SpecialEventListItem(props: SpecialEventListItemProps): JSX.Element {\n const appLink = props.getAppLink(props.event.content, TextHelper.slugify(props.event.name));\n\n const backgroundColor = props.getBackgroundColor?.(props.event.content);\n const iconUrl = props.getIconUrl?.(props.event.content);\n const bannerUrl = props.getBannerUrl?.(props.event.content);\n const multiDayEvent = !!props.event.endDate;\n const isComingSoon = props.event.content.status === ClassificationStatus.ComingSoon;\n const startTime = props.getStartTime?.(props.event.content);\n const actionLabel = props.getActionLabel?.();\n const isPastEvent = props.isPastEvent?.(props.event.content);\n\n const analyticsOptions: AnalyticsOptions = {\n actionType: UserAction.Click,\n entity: EntityType.SpecialEvent,\n location: props.inPopup ? LocationContext.CalendarPopup : LocationContext.CalendarDay\n };\n const analyticsData = {\n topicId: props.event.content.id,\n eventId: props.event.specialEventId,\n presentationId: props.presentationId,\n date: DateHelper.format(new Date(props.event.startDate), 'YYYY-MM-DD'),\n status: props.event.content.status\n };\n\n return (\n <div>\n {startTime && (\n <h6>{startTime}</h6>\n )}\n\n <div onClick={() => {\n if (isComingSoon)\n AnalyticsHelper.logUserAction(analyticsData, analyticsOptions);\n }}>\n <AppLink\n appLink={!isComingSoon && appLink}\n className={`${!isComingSoon ? 'cursor-pointer' : ''} text-decoration-none mb-2`}\n onClick={props.onClick}\n analyticsOptions={analyticsOptions}\n analyticsData={analyticsData}\n >\n <div\n className={`banner rounded-3 position-relative position-relative ${styles.banner}`}\n style={{ backgroundColor, backgroundImage: `url('${bannerUrl}')` }}\n >\n {isPastEvent && (\n <div className='bg-white w-100 h-100 opacity-50 position-absolute top-0 left-0 z-0' />\n )}\n <div className={`d-flex justify-content-between align-items-center w-100 h-100 px-3`}>\n <div className='d-flex align-items-center z-1'>\n {iconUrl && (\n <div className={`${styles.logo} rounded-circle flex-shrink-0 overflow-hidden me-2`}>\n <BaseImage data={iconUrl} />\n </div>\n )}\n <div>\n {isComingSoon && <ComingSoonTag className={`pe-2 fw-semibold mb-1 rounded-pill justify-content-start ${styles.pill}`}/>}\n\n {isPastEvent &&\n <div className='d-inline-block rounded-pill bg-light-green mb-1'>\n <SvgContainer svg={CalendarCheckSvg} />\n <p className='d-inline ms-1 mb-0'><Text namespace={namespace} phrase='pastEvent' /></p>\n </div>}\n \n {multiDayEvent && (\n <p className='text-white text-shadow mb-1'>{SpecialEventHelper.getDisplayDate(props.event.startDate, props.event.endDate)}</p>\n )}\n <h2 className={`h4 text-white text-shadow ${props.event.description ? 'clamp-2' : 'clamp-1'}`} title={props.event.name}>{props.event.name}</h2>\n \n </div>\n </div>\n\n <div className='d-none d-sm-block flex-shrink-0 z-1'>\n {!isComingSoon && (\n <ActionButton className={`btn ${isPastEvent ? 'btn-outline-dark' : 'btn-dark'} fw-semibold`}>\n {actionLabel}\n </ActionButton>\n )}\n </div>\n </div>\n </div>\n </AppLink>\n <div className='pre-wrap text-break mb-3' dangerouslySetInnerHTML={{ __html: LinkifyHelper.linkifyText(props.event.description || props.event.content.description) }}/>\n {(isLiveStream(props.event.content) &&\n <div className='d-flex mb-3'>\n <div className='rounded-pill border border-dark px-2 bg-white d-inline-block me-2'>\n {AudienceHelper.getMergedPresentationAudienceString(\n props.event.content.audiences as PresentationAudience[]\n )?.name}\n </div>\n <div className='rounded-pill fw-semibold bg-dark text-white d-inline-block px-2'>\n {`${DateHelper.diffBetween(props.event.content.endDateTime, props.event.content.startDateTime, 'minutes')}m`}\n </div>\n </div>\n )}\n </div>\n </div>\n );\n}\n","import React from 'react';\n\nimport { Timezone, TIMEZONES_US } from 'libs/shared/apps/streamable-learning/constants/Timezones';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { GlobeSvg } from 'libs/shared/images/svg/objects/GlobeSvg';\n\n\nexport function TimezoneIndicator() {\n return (\n <div>\n <SvgContainer svg={GlobeSvg} />\n <span className='ms-1'>{TIMEZONES_US[Timezone.ET]?.name}</span>\n </div>\n );\n}","import { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { TimezoneHelper } from 'libs/shared/apps/streamable-learning/utils/TimezoneHelper';\nimport { CalendarEvent, Livestream } from 'libs/shared/interfaces';\n\nexport const CalendarUtils = {\n getStartTime(livestream: Livestream): string {\n return DateHelper.format(\n TimezoneHelper.convertUTCToTimezoneDate(livestream.startDateTime),\n 'h:mm a'\n );\n },\n isSameTime(events: CalendarEvent<Livestream>[], index: number): boolean {\n if (index === 0) return false;\n \n return DateHelper.isSame(\n events[index].content.startDateTime,\n events[index - 1].content.startDateTime\n );\n },\n isPastEvent(livestream: Livestream): boolean {\n return DateHelper.isBefore(livestream.endDateTime, new Date());\n }\n};","import { CalendarAppLinks } from 'libs/shared/apps/calendar/interfaces/CalendarAppLinks';\nimport { CalendarImageUrls } from 'libs/shared/apps/calendar/interfaces/CalendarImageUrls';\nimport { MonthQuery } from 'libs/shared/apps/calendar/interfaces/MonthQuery';\nimport { PatchedDate } from 'libs/shared/apps/calendar/utils/CalendarHelper';\nimport { Livestream } from 'libs/shared/interfaces';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/StreamableActions';\nimport { AppChannels } from 'shared/constants/StreamableRadioChannels';\n\nexport function getCalendarImageUrls(): CalendarImageUrls {\n return {\n emptyState: ImageUrls.EmptyStates.CALENDAR.NO_EVENTS,\n errorState: ImageUrls.EmptyStates.CALENDAR.INVALID_DATE\n };\n}\n\nexport function getCalendarAppLinks(): CalendarAppLinks {\n return {\n calendar: () => ({ application: AppChannels.CALENDAR, action: Actions.Calendar.CALENDAR }),\n month: (month: string) => ({\n application: AppChannels.CALENDAR,\n action: Actions.Calendar.CALENDAR_MONTH,\n args: [month]\n }),\n event: (livestream: Livestream, slug: string) => ({\n application: AppChannels.LIVESTREAMS,\n action: Actions.Livestreams.LIVESTREAM,\n args: [ livestream.id, slug ]\n }),\n eventList: (monthQuery: MonthQuery, date: PatchedDate, presentationId: string) => ({\n application: AppChannels.CALENDAR,\n action: Actions.Calendar.SPECIAL_EVENT_LIST,\n params: {\n ...monthQuery,\n date: date.toString(),\n presentationId: presentationId\n }\n })\n };\n}"],"names":["namespace","isLiveStream","obj","SpecialEventListItem","props","appLink","TextHelper","backgroundColor","_a","iconUrl","_b","bannerUrl","_c","multiDayEvent","isComingSoon","ClassificationStatus","startTime","_d","actionLabel","_e","isPastEvent","_f","analyticsOptions","UserAction","EntityType","LocationContext","analyticsData","DateHelper","jsx","jsxs","AnalyticsHelper","AppLink","styles","BaseImage","ComingSoonTag","SvgContainer","CalendarCheckSvg","Text","SpecialEventHelper","ActionButton","LinkifyHelper","_g","AudienceHelper","TimezoneIndicator","GlobeSvg","Timezone","CalendarUtils","livestream","TimezoneHelper","events","index","getCalendarImageUrls","ImageUrls","getCalendarAppLinks","AppChannels","Actions","month","slug","monthQuery","date","presentationId"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{j as t,l as v,m as c}from"./app-C56EnOMP.js";import{g as C,B as j}from"./BBnDr_iy.chunk.js";import{F as _}from"./Daes5Wgy.chunk.js";function k(a){return t.jsx("svg",{...a,children:t.jsx("path",{fill:"currentColor",fillRule:"evenodd",d:"M7.76 6.078a.5.5 0 0 0-.76.427v11a.5.5 0 0 0 .76.426l9.003-5.5a.5.5 0 0 0 0-.853z",clipRule:"evenodd"})})}function f(a){return t.jsx("svg",{...a,viewBox:"0 0 24 21",children:t.jsx("path",{d:"M22.5 1A1.5 1.5 0 0 1 24 2.5v18a1.5 1.5 0 0 1-1.5 1.5h-21A1.5 1.5 0 0 1 0 20.5v-18A1.5 1.5 0 0 1 1.5 1zm0 1.5h-21v18h21zm-8.21 4.092 5.84 9a.75.75 0 0 1-1.26.816L13.638 8.34l-2.523 3.591a.75.75 0 0 1-1.144.1l-.889-.89L5.1 16.45a.75.75 0 0 1-1.2-.9l4.5-6a.75.75 0 0 1 1.13-.08l.87.869 2.648-3.77a.75.75 0 0 1 1.243.023M6 4.75a2.25 2.25 0 1 1 0 4.5 2.25 2.25 0 0 1 0-4.5m0 1.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5",fill:"currentColor"})})}function d(a){return t.jsx("svg",{...a,children:t.jsx("path",{fill:"currentColor",d:"M20.283 4C21.229 4 22 4.745 22 5.66v8.74c0 .726-.478 1.338-1.151 1.565l.088-10.22a.657.657 0 0 0-.664-.66H6.351A1.71 1.71 0 0 1 7.951 4zm-2.059 1.933c.947 0 1.718.745 1.718 1.65v8.74c.01.726-.479 1.339-1.142 1.565l.088-10.24a.647.647 0 0 0-.664-.64H4.293a1.7 1.7 0 0 1 1.6-1.075zM16.05 7.95c.946 0 1.707.744 1.707 1.659v8.74c0 .915-.77 1.65-1.707 1.65H3.707C2.761 20 2 19.255 2 18.35V9.61c0-.915.77-1.66 1.707-1.66zm-.01 1.084H3.717a.647.647 0 0 0-.663.64v8.609c0 .358.292.641.663.641H16.03c.371 0 .664-.283.664-.641V9.676c.01-.358-.283-.641-.654-.641M8.546 12.39v3.178c0 .17.205.264.342.17l2.254-1.594c.117-.085.117-.255 0-.33l-2.264-1.593c-.137-.095-.332 0-.332.17"})})}const F="_baseFallbackContainer_14tjv_1",m="_svgFallbackContainer_14tjv_1",S="_subjectFallbackContainer_14tjv_9",g="_subjectFallbackContainerSmall_14tjv_18",x="_subjectFallbackContainerLarge_14tjv_21",h="_seriesItemFallback_14tjv_24",$="_playlistItemFallback_14tjv_24",z="_playlistFallback_14tjv_28",L="_posterFallback_14tjv_29",M="_subjectFallback_14tjv_9",N="_fallbackThumbnailImage_14tjv_47",P="_videoFallback_14tjv_55",A="_folderFallback_14tjv_56",l={baseFallbackContainer:F,svgFallbackContainer:m,subjectFallbackContainer:S,subjectFallbackContainerSmall:g,subjectFallbackContainerLarge:x,seriesItemFallback:h,playlistItemFallback:$,playlistFallback:z,posterFallback:L,subjectFallback:M,fallbackThumbnailImage:N,videoFallback:P,folderFallback:A};var B=(a=>(a[a.Playlist=0]="Playlist",a[a.PlaylistThumbnail=1]="PlaylistThumbnail",a[a.Series=2]="Series",a[a.SeriesThumbnail=3]="SeriesThumbnail",a[a.Subject=4]="Subject",a[a.TallSubject=5]="TallSubject",a[a.Video=6]="Video",a[a.Folder=7]="Folder",a))(B||{});function H(a,e,n){if(e===4){const s=n===0?l.subjectFallbackContainerLarge:l.subjectFallbackContainerSmall;return`${l.subjectFallbackContainer} ${s}`}return a===0?e===3||e===1?`${l.svgFallbackContainer} rounded-3`:l.svgFallbackContainer:l.baseFallbackContainer}function R(a){return a===3?l.seriesItemFallback:a===1?l.playlistItemFallback:a===0?l.playlistFallback:a===2||a===5?l.posterFallback:a===4?`${l.subjectFallback} svg-container d-inline-block`:""}function V(a){return a===3||a===1?k:a===0?f:a===2?d:a===4||a===5?_:null}function E(a){return a===4?c.ExtraLarge:c.Standard}I.defaultProps={mediaType:0,containerClassSize:0};function I(a){const{type:e,mediaType:n,extraClasses:s,containerClassSize:o}=a;if(e===6)return t.jsx("div",{className:`${l.videoFallback} ${a.extraClasses} bg-light-blue`});if(e===7)return t.jsx("div",{className:`${l.folderFallback} ${a.extraClasses} ${C(a.name,j)}`});const b=R(e),r=V(e),u=E(e);let i=`${H(n,e,o)}`;return s&&(i+=` ${a.extraClasses}`),t.jsx("div",{className:i,children:n===0?t.jsx(v,{svg:r,className:`${b} ${a.svgContainerClassName??""}`,tagName:"div",size:u}):t.jsx("div",{className:l.fallbackThumbnailImage,style:{backgroundImage:`url('${r}')`}})})}export{I,k as P,d as S,B as a};
2
+ //# sourceMappingURL=DJyZ6Hx7.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DJyZ6Hx7.chunk.js","sources":["../../../../libs/shared/src/images/svg/actions/PlaySvg.tsx","../../../../libs/shared/src/images/svg/objects/ImageSvg.tsx","../../../../libs/shared/src/images/svg/objects/SeriesSvg.tsx","../../../../libs/shared/src/components/image/ImageFallback.tsx"],"sourcesContent":["import React from 'react';\n\nexport function PlaySvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n fill='currentColor'\n fillRule='evenodd'\n d='M7.76 6.078a.5.5 0 0 0-.76.427v11a.5.5 0 0 0 .76.426l9.003-5.5a.5.5 0 0 0 0-.853z'\n clipRule='evenodd'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function ImageSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props} viewBox='0 0 24 21'>\n <path\n d='M22.5 1A1.5 1.5 0 0 1 24 2.5v18a1.5 1.5 0 0 1-1.5 1.5h-21A1.5 1.5 0 0 1 0 20.5v-18A1.5 1.5 0 0 1 1.5 1zm0 1.5h-21v18h21zm-8.21 4.092 5.84 9a.75.75 0 0 1-1.26.816L13.638 8.34l-2.523 3.591a.75.75 0 0 1-1.144.1l-.889-.89L5.1 16.45a.75.75 0 0 1-1.2-.9l4.5-6a.75.75 0 0 1 1.13-.08l.87.869 2.648-3.77a.75.75 0 0 1 1.243.023M6 4.75a2.25 2.25 0 1 1 0 4.5 2.25 2.25 0 0 1 0-4.5m0 1.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function SeriesSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n fill='currentColor'\n d='M20.283 4C21.229 4 22 4.745 22 5.66v8.74c0 .726-.478 1.338-1.151 1.565l.088-10.22a.657.657 0 0 0-.664-.66H6.351A1.71 1.71 0 0 1 7.951 4zm-2.059 1.933c.947 0 1.718.745 1.718 1.65v8.74c.01.726-.479 1.339-1.142 1.565l.088-10.24a.647.647 0 0 0-.664-.64H4.293a1.7 1.7 0 0 1 1.6-1.075zM16.05 7.95c.946 0 1.707.744 1.707 1.659v8.74c0 .915-.77 1.65-1.707 1.65H3.707C2.761 20 2 19.255 2 18.35V9.61c0-.915.77-1.66 1.707-1.66zm-.01 1.084H3.717a.647.647 0 0 0-.663.64v8.609c0 .358.292.641.663.641H16.03c.371 0 .664-.283.664-.641V9.676c.01-.358-.283-.641-.654-.641M8.546 12.39v3.178c0 .17.205.264.342.17l2.254-1.594c.117-.085.117-.255 0-.33l-2.264-1.593c-.137-.095-.332 0-.332.17'\n />\n </svg>\n );\n}\n","import * as React from 'react';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { BG_COLOUR_CLASS_NAMES } from 'libs/shared/constants/ColourClassNames';\nimport { PlaySvg } from 'libs/shared/images/svg/actions/PlaySvg';\nimport { FileImgSvg } from 'libs/shared/images/svg/objects/FileImgSvg';\nimport { ImageSvg } from 'libs/shared/images/svg/objects/ImageSvg';\nimport { SeriesSvg } from 'libs/shared/images/svg/objects/SeriesSvg';\nimport { getBgColorClass } from 'libs/shared/utils/getBgColorClass';\n\nimport styles from './image-fallback.module.scss';\n\nexport enum ImageFallbackType {\n Playlist,\n PlaylistThumbnail,\n Series,\n SeriesThumbnail,\n Subject,\n TallSubject,\n Video,\n Folder\n}\n\nexport enum ImageFallbackMediaType {\n Svg,\n Image\n}\n\nexport enum ContainerClassSize {\n Large,\n Small\n}\n\nfunction getContainerClass(\n type: ImageFallbackMediaType,\n objectType: ImageFallbackType,\n containerClassSize: ContainerClassSize\n): string {\n if (objectType === ImageFallbackType.Subject) {\n const containerSizeClass = containerClassSize === ContainerClassSize.Large\n ? styles.subjectFallbackContainerLarge\n : styles.subjectFallbackContainerSmall;\n\n return `${styles.subjectFallbackContainer} ${containerSizeClass}`;\n }\n\n if (type === ImageFallbackMediaType.Svg) {\n if (objectType === ImageFallbackType.SeriesThumbnail || objectType === ImageFallbackType.PlaylistThumbnail)\n return `${styles.svgFallbackContainer} rounded-3`;\n \n return styles.svgFallbackContainer;\n }\n\n return styles.baseFallbackContainer;\n}\n\nfunction getClassByType(type: ImageFallbackType): string {\n if (type === ImageFallbackType.SeriesThumbnail)\n return styles.seriesItemFallback;\n\n if (type === ImageFallbackType.PlaylistThumbnail)\n return styles.playlistItemFallback;\n\n if (type === ImageFallbackType.Playlist)\n return styles.playlistFallback;\n\n if (type === ImageFallbackType.Series || type === ImageFallbackType.TallSubject)\n return styles.posterFallback;\n\n if (type === ImageFallbackType.Subject)\n return `${styles.subjectFallback} svg-container d-inline-block`;\n\n return '';\n}\n\nfunction getMedia(type: ImageFallbackType) {\n if (type === ImageFallbackType.SeriesThumbnail || type === ImageFallbackType.PlaylistThumbnail)\n return PlaySvg;\n\n if (type === ImageFallbackType.Playlist)\n return ImageSvg;\n\n if (type === ImageFallbackType.Series)\n return SeriesSvg;\n\n if (type === ImageFallbackType.Subject || type === ImageFallbackType.TallSubject)\n return FileImgSvg;\n\n return null;\n}\n\nfunction getSize(type: ImageFallbackType): SvgContainerSize {\n if (type === ImageFallbackType.Subject)\n return SvgContainerSize.ExtraLarge;\n\n return SvgContainerSize.Standard;\n}\n\ninterface ImageFallbackProps {\n type: ImageFallbackType;\n mediaType?: ImageFallbackMediaType;\n extraClasses?: string;\n svgContainerClassName?: string;\n name?: string;\n containerClassSize?: ContainerClassSize\n}\n\nImageFallback.defaultProps = {\n mediaType: ImageFallbackMediaType.Svg,\n containerClassSize: ContainerClassSize.Large\n};\n\nexport function ImageFallback(props: ImageFallbackProps): JSX.Element {\n const { type, mediaType, extraClasses, containerClassSize } = props;\n\n if (type === ImageFallbackType.Video)\n return <div className={`${styles.videoFallback} ${props.extraClasses} bg-light-blue`} />;\n\n if (type === ImageFallbackType.Folder)\n return <div className={`${styles.folderFallback} ${props.extraClasses} ${getBgColorClass(props.name, BG_COLOUR_CLASS_NAMES)}`} />;\n\n const typeClass = getClassByType(type);\n const media = getMedia(type);\n const size = getSize(type);\n\n let className = `${getContainerClass(mediaType, type, containerClassSize)}`;\n\n if (extraClasses)\n className += ` ${props.extraClasses}`;\n\n return (\n <div className={className}>\n {mediaType === ImageFallbackMediaType.Svg\n ? (\n <SvgContainer\n svg={media}\n className={`${typeClass} ${props.svgContainerClassName ?? ''}`}\n tagName='div'\n size={size}\n />\n ) : (\n <div className={styles.fallbackThumbnailImage} style={{ backgroundImage: `url('${media}')` }} />\n )\n }\n </div>\n );\n}"],"names":["PlaySvg","props","jsx","ImageSvg","SeriesSvg","ImageFallbackType","getContainerClass","type","objectType","containerClassSize","containerSizeClass","styles","getClassByType","getMedia","FileImgSvg","getSize","SvgContainerSize","ImageFallback","mediaType","extraClasses","getBgColorClass","BG_COLOUR_CLASS_NAMES","typeClass","media","size","className","SvgContainer"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{j as e,E as n,V as k,T as d,c as w,R as p,aA as v,ab as K,aV as z,aB as G,o as E,n as W,aW as J,a6 as X,aD as Q,$ as Y,v as Z,w as ee,x as te,G as ae,aX as se,d as oe,W as re,X as ie}from"./app-C56EnOMP.js";import{a as ne}from"./DvDdiDQN.chunk.js";import{S as ce}from"./DhqAA1wT.chunk.js";import{S as le,a as me,J as ue,u as de,b as he,B as O,c as ge,d as pe,e as fe}from"./Bi8YRFeY.chunk.js";import{S as be}from"./C8ZuWYfb.chunk.js";import{a as Se,l as h,u as xe,F as C}from"./Bt3kaRtU.chunk.js";import"./Dkq5GtOV.chunk.js";import"./CW7x8M-z.chunk.js";import"./C35NlkUr.chunk.js";const Ne="_image_13xy1_1",je={image:Ne},q="default.contactUsError",ye=w.encloseNamespace(q);function Ce({className:t="",onTryAgain:i}){return e.jsxs(n,{className:t,children:[e.jsx(n.Image,{className:je.image,src:k.General.LOST_MESSAGE_BOTTLE}),e.jsx(n.Heading,{className:"w-100",children:e.jsx(d,{namespace:q,phrase:"errorHeading"})}),e.jsx(n.Info,{className:"w-100",children:e.jsx(d,{namespace:q,phrase:"errorMessage"})}),e.jsx(n.Cta,{text:ye("buttonLabel"),className:"btn btn-dark w-100",onClick:i})]})}const _="default.contactUsForm",o=w.encloseNamespace(_),Pe=h.object({firstName:h.string().required(o("firstNameRequired")),lastName:h.string().required(o("lastNameRequired")),email:h.string().email(o("emailValid")).required(o("emailRequired")),jobTitle:h.string().required(o("jobTitleRequired")),phoneNumber:h.string().required(o("phoneNumberRequired")).matches(/^[0-9]+$/,o("phoneNumberValid")),schoolOrDistrict:h.string().required(o("schoolOrDistrictRequired"))});function Ue(t){return e.jsx(Se,{initialValues:t.initialValues,validateOnMount:!0,validationSchema:Pe,onSubmit:t.onSubmit,children:e.jsx(Fe,{showSpinner:t.showSpinner,googleMapsApiKey:t.googleMapsApiKey,searchProspectsUrl:t.searchProspectsUrl})})}function Fe(t){var S,x,a,N,j,u,y,A;const{showSpinner:i,googleMapsApiKey:f,searchProspectsUrl:c}=t,s=xe(),[l,m]=p.useState({}),[I,P]=p.useState(!1);function g(){s.setFieldValue("schoolOrDistrict",""),s.setFieldValue("country",""),s.setFieldValue("province",""),s.setFieldValue("prospectId",""),b()}function U(r){m({...l,...r}),g()}function D(){m({}),g()}function F(r){m({...l,...r}),s.setFieldValue("schoolOrDistrict",r.schoolName),s.setFieldValue("country",r.country),s.setFieldValue("province",r.province),s.setFieldValue("prospectId",r.prospectId),b()}function V(){m({...l,prospectId:void 0,schoolName:void 0,schoolPostCode:void 0}),g()}function L(r){P(!0),s.setFieldValue("schoolOrDistrict",r),b()}function b(){window.setTimeout(()=>s.validateForm(),0)}return e.jsxs(v,{children:[e.jsx(C,{label:o("firstName"),name:"firstName",value:(S=s.values)==null?void 0:S.firstName,showRequiredStar:!0,placeholder:o("firstNamePlaceholder")}),e.jsx(C,{label:o("lastName"),name:"lastName",value:(x=s.values)==null?void 0:x.lastName,showRequiredStar:!0,placeholder:o("lastNamePlaceholder")}),e.jsx(C,{label:o("email"),name:"email",value:(a=s.values)==null?void 0:a.email,showRequiredStar:!0,placeholder:o("emailPlaceholder")}),I?e.jsx(C,{label:o("schoolOrDistrict"),name:"schoolOrDistrict",value:(N=s.values)==null?void 0:N.schoolOrDistrict,showRequiredStar:!0,placeholder:o("schoolOrDistrictPlaceholder"),autoFocus:!0}):e.jsxs(e.Fragment,{children:[e.jsx(le,{data:l,setData:U,clearData:D,labelClassName:"form-label",geoLocation:{countryCode:"US"},googleMapsApiKey:f,required:!0,hideOnBlur:!0}),e.jsx(me,{data:l,setData:F,clearData:V,disabled:!l.schoolLocality,searchUrl:c,onClickNoSuggestions:L,required:!0,placeholder:!l.schoolLocality&&o("schoolPlaceholder"),hideOnBlur:!0})]}),e.jsx(ue,{id:"job-title",error:((j=s.touched)==null?void 0:j.jobTitle)&&((u=s.errors)==null?void 0:u.jobTitle),countryCode:K.US,initialValue:(y=s.values)==null?void 0:y.jobTitle,onChange:r=>s.setFieldValue("jobTitle",r,!1),labelClassName:"form-label",isTertiary:!1,required:!0}),e.jsx(C,{label:o("phoneNumber"),name:"phoneNumber",value:(A=s.values)==null?void 0:A.phoneNumber,showRequiredStar:!0,placeholder:o("phoneNumberPlaceholder")}),e.jsx(z,{type:"submit",className:"w-100 mt-3",variant:"dark",showSpinner:i,disabled:!s.isValid,children:e.jsx(d,{namespace:_,phrase:"contactUsButton"})})]})}const Ae="_image_13xy1_1",Te={image:Ae},M="default.contactUsSuccess",we=w.encloseNamespace(M);function Ie({className:t="",onClose:i}){return e.jsxs(n,{className:t,children:[e.jsx(n.Image,{className:Te.image,src:k.General.EMAIL_SENT}),e.jsx(n.Heading,{className:"w-100",children:e.jsx(d,{namespace:M,phrase:"successHeading"})}),e.jsx(n.Info,{className:"w-100",children:e.jsx(d,{namespace:M,phrase:"successMessage"})}),i&&e.jsx(n.Cta,{text:we("buttonLabel"),className:"btn btn-dark w-100",onClick:i})]})}const De="_logo_c400r_1",Ve="_pageContainer_c400r_5",H={logo:De,pageContainer:Ve},T="default.contactUs",R=w.encloseNamespace(T);function B(t){return e.jsxs(e.Fragment,{children:[t.formStage==="data-entry"&&e.jsxs(e.Fragment,{children:[e.jsx("h1",{className:"h2 text-center",children:e.jsx(d,{namespace:T,phrase:"contactUsHeading"})}),e.jsx("p",{className:"text-center mb-3",children:e.jsx(d,{namespace:T,phrase:"contactUsDescription"})}),e.jsx(Ue,{initialValues:t.initialFormValues,showSpinner:t.submitting,onSubmit:t.onSubmit,googleMapsApiKey:t.googleMapsApiKey,searchProspectsUrl:t.searchProspectsUrl}),t.showSignIn&&e.jsx(oe,{className:"d-flex justify-content-center align-items-center mt-3 text-info",appLink:{application:ie.DEFAULT,action:re.Default.CHALLENGE,params:t.loginParams},children:e.jsx(d,{namespace:T,phrase:"signInLink"})})]}),t.formStage==="error"&&e.jsx(Ce,{onTryAgain:t.onTryAgain}),t.formStage==="success"&&e.jsx(Ie,{onClose:t.closePopup})]})}function Le(t){return Z(ee.getDefaultMetadata({title:R("title"),phraseContext:{phraseHandler:R,titlePhrase:"pageTitle",descriptionPhrase:"pageDescription"},canonicalLink:be.getCanonicalLink(),allowIndexing:!0,product:te.PRODUCT_NAME})),e.jsx("div",{className:`${H.pageContainer} bg-white mt-4 mx-4 mx-sm-auto p-3 mb-3 border border-gray-400 rounded-3 shadow-sm`,children:e.jsx(B,{formStage:t.formStage,initialFormValues:t.initialFormValues,loginParams:t.loginParams,onSubmit:t.onSubmit,onTryAgain:t.onTryAgain,submitting:t.submitting,googleMapsApiKey:t.googleMapsApiKey,searchProspectsUrl:t.searchProspectsUrl,showSignIn:t.showSignIn})})}function qe(t){function i(){t.closePopup(),ce.preventScrollTop()}return e.jsxs(ae,{title:R("title"),closePopup:i,bodyClassName:"p-5",hideTitle:!0,children:[e.jsx("button",{className:"btn-close position-absolute top-0 end-0 p-3",onClick:i}),e.jsx("div",{className:`${H.logo} position-absolute top-0 start-0 m-3`,children:e.jsx(se,{})}),e.jsx(B,{formStage:t.formStage,initialFormValues:t.initialFormValues,loginParams:t.loginParams,onSubmit:t.onSubmit,onTryAgain:t.onTryAgain,submitting:t.submitting,closePopup:i,googleMapsApiKey:t.googleMapsApiKey,searchProspectsUrl:t.searchProspectsUrl,showSignIn:t.showSignIn})]})}function ve(t){var x;const i=G(),f=E(Y.config()),c=E(Q.currentUser()),s=de(),[l,m]=p.useState("data-entry"),[I,P]=p.useState(!1),[g,U]=p.useState({firstName:"",lastName:"",email:"",schoolOrDistrict:"",jobTitle:"",phoneNumber:"",country:"",province:"",prospectId:""}),{createOrUpdateProfile:D}=he(),F=W.getHref(J.getCurrentRoute().appLink),V=F!=="/"?{redirectUrl:F}:{};p.useEffect(()=>{var a;(a=c.data)!=null&&a.isAuthenticated&&U({...g,firstName:c.data.givenName,lastName:c.data.familyName,email:c.data.email})},[(x=c.data)==null?void 0:x.isAuthenticated]);async function L(a){var N,j;try{P(!0),U(a);const u=await i(O.checkEmail(a.email));let y;if(a.prospectId){const r=await i(O.prospectLookups(a.prospectId));y=(N=r==null?void 0:r.find($=>$.type==="crm_id"))==null?void 0:N.externalId}const A={email:a.email,firstName:a.firstName,lastName:a.lastName,phone:a.phoneNumber,custom:{accountAddress:a!=null&&a.province?{countryCode:a==null?void 0:a.country,province:ge.parseProvince((a==null?void 0:a.province)||"")}:void 0,accountName:a.schoolOrDistrict,jobTitle:a.jobTitle,syncToCrm:(j=u==null?void 0:u.users)!=null&&j.length?void 0:!0,crmId:y||void 0}};D({email:a.email,firstName:a.firstName,lastName:a.lastName,phone:a.phoneNumber,countryCode:a.country}),s.logFormSubmission({user:A,eventType:ne.StreamableFormEvent.ContactUsFormSubmit,source:fe.ContactUs,topic:pe.ContactUs,productType:"sl"}),m("success")}catch(u){console.warn(u),m("error")}finally{P(!1)}}function b(){m("data-entry")}if(!f.hasCompleted||!c.hasCompleted)return e.jsx(e.Fragment,{});const S={formStage:l,initialFormValues:g,submitting:I,loginParams:V,onSubmit:L,onTryAgain:b,closePopup:t.closePopup,googleMapsApiKey:f.data.googleMapsApiKey,searchProspectsUrl:X.safeUrlConcat(f.data.gatewayApiUrl,"/v1/search/prospects"),showSignIn:!c.data.isAuthenticated};return t.fromPageLoad?e.jsx(Le,{...S}):e.jsx(qe,{...S})}export{ve as ContactUsView};
2
+ //# sourceMappingURL=DOCam-GK.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DOCam-GK.chunk.js","sources":["../../src/apps/default/views/contact-us/error/ContactUsError.tsx","../../src/apps/default/views/contact-us/form/ContactUsForm.tsx","../../src/apps/default/views/contact-us/success/ContactUsSuccess.tsx","../../src/apps/default/views/contact-us/StreamableContactUsView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { Text } from 'libs/shared/components/text/Text';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nimport styles from './contact-us-error.module.scss';\n\nconst namespace = 'default.contactUsError';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface ContactUsErrorProps {\n className?: string;\n onTryAgain: () => void;\n}\n\nexport function ContactUsError({ className = '', onTryAgain }: ContactUsErrorProps) {\n return (\n <EmptyState className={className}>\n <EmptyState.Image className={styles.image} src={ImageUrls.General.LOST_MESSAGE_BOTTLE} />\n <EmptyState.Heading className='w-100'>\n <Text namespace={namespace} phrase='errorHeading' />\n </EmptyState.Heading>\n <EmptyState.Info className='w-100'>\n <Text namespace={namespace} phrase='errorMessage' />\n </EmptyState.Info>\n <EmptyState.Cta text={getPhrase('buttonLabel')} className='btn btn-dark w-100' onClick={onTryAgain} />\n </EmptyState>\n );\n}\n","import React from 'react';\nimport { Form } from 'formik';\nimport * as Yup from 'yup';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { JobTitleInput } from 'libs/shared/apps/sign-up/components/steps/add-to-braze-step-item/JobTitleInput';\nimport { SearchLocalityInput } from 'libs/shared/apps/sign-up/components/steps/search-school-step-item/SearchLocalityInput';\nimport { SearchSchoolInput } from 'libs/shared/apps/sign-up/components/steps/search-school-step-item/SearchSchoolInput';\nimport { SearchSchoolData } from 'libs/shared/apps/sign-up/interfaces/SearchSchoolData';\nimport { FormField } from 'libs/shared/components/forms/form-field/FormField';\nimport { FormWrapper, useFormikContextWrapper } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\nimport { SpinnerButton } from 'libs/shared/components/spinner-button/SpinnerButton';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { CountryCode } from 'libs/shared/enums/CountryCode';\n\nconst namespace = 'default.contactUsForm';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst validationSchema = Yup.object({\n firstName: Yup.string().required(getPhrase('firstNameRequired')),\n lastName: Yup.string().required(getPhrase('lastNameRequired')),\n email: Yup.string().email(getPhrase('emailValid')).required(getPhrase('emailRequired')),\n jobTitle: Yup.string().required(getPhrase('jobTitleRequired')),\n phoneNumber: Yup.string().required(getPhrase('phoneNumberRequired')).matches(/^[0-9]+$/, getPhrase('phoneNumberValid')),\n schoolOrDistrict: Yup.string().required(getPhrase('schoolOrDistrictRequired'))\n});\n\nexport interface ContactUsFormValues {\n firstName: string;\n lastName: string;\n email: string;\n schoolOrDistrict: string;\n jobTitle: string;\n phoneNumber: string;\n country: string;\n province: string;\n prospectId: string;\n}\n\ninterface ContactUsFormProps {\n initialValues: ContactUsFormValues;\n showSpinner: boolean;\n onSubmit: (values: ContactUsFormValues) => void;\n googleMapsApiKey: string;\n searchProspectsUrl: string;\n}\n\nexport function ContactUsForm(props: ContactUsFormProps) {\n return (\n <FormWrapper<ContactUsFormValues>\n initialValues={props.initialValues}\n validateOnMount={true}\n validationSchema={validationSchema}\n onSubmit={props.onSubmit}\n >\n <ContactUsFormFields\n showSpinner={props.showSpinner}\n googleMapsApiKey={props.googleMapsApiKey}\n searchProspectsUrl={props.searchProspectsUrl}\n />\n </FormWrapper>\n );\n}\n\ninterface ContactUsFormFieldsProps {\n showSpinner: boolean;\n googleMapsApiKey: string;\n searchProspectsUrl: string;\n}\n\nfunction ContactUsFormFields(props: ContactUsFormFieldsProps) {\n const { showSpinner, googleMapsApiKey, searchProspectsUrl } = props;\n const formikProps = useFormikContextWrapper<ContactUsFormValues>();\n\n const [ searchSchoolData, setSearchSchoolData ] = React.useState<SearchSchoolData>({});\n const [ cantFindSchool, setCantFindSchool ] = React.useState<boolean>(false);\n\n function clearFormikSchoolData() {\n formikProps.setFieldValue('schoolOrDistrict', '');\n formikProps.setFieldValue('country', '');\n formikProps.setFieldValue('province', '');\n formikProps.setFieldValue('prospectId', '');\n triggerValidation();\n }\n\n function setLocalityData(data: SearchSchoolData): void {\n setSearchSchoolData({ ...searchSchoolData, ...data });\n clearFormikSchoolData();\n }\n\n function clearLocalityData(): void {\n setSearchSchoolData({});\n clearFormikSchoolData();\n }\n\n function setSchoolData(data: SearchSchoolData): void {\n setSearchSchoolData({ ...searchSchoolData, ...data });\n\n formikProps.setFieldValue('schoolOrDistrict', data.schoolName);\n formikProps.setFieldValue('country', data.country);\n formikProps.setFieldValue('province', data.province);\n formikProps.setFieldValue('prospectId', data.prospectId);\n\n triggerValidation();\n }\n\n function clearSchooldata(): void {\n setSearchSchoolData({\n ...searchSchoolData,\n prospectId: undefined,\n schoolName: undefined,\n schoolPostCode: undefined\n });\n clearFormikSchoolData();\n }\n\n function onClickNoSuggestions(name: string) {\n setCantFindSchool(true);\n\n formikProps.setFieldValue('schoolOrDistrict', name);\n\n triggerValidation();\n }\n\n function triggerValidation() {\n // For whatever reason, forcing the form the validate needs to happen in a setTimeout to work\n // I genuinely have no idea why - Sha\n window.setTimeout(() => formikProps.validateForm(), 0);\n }\n\n return (\n <Form>\n <FormField\n label={getPhrase('firstName')}\n name='firstName'\n value={formikProps.values?.firstName}\n showRequiredStar\n placeholder={getPhrase('firstNamePlaceholder')}\n />\n <FormField\n label={getPhrase('lastName')}\n name='lastName'\n value={formikProps.values?.lastName}\n showRequiredStar\n placeholder={getPhrase('lastNamePlaceholder')}\n />\n <FormField\n label={getPhrase('email')}\n name='email'\n value={formikProps.values?.email}\n showRequiredStar\n placeholder={getPhrase('emailPlaceholder')}\n />\n {!cantFindSchool ?\n <>\n <SearchLocalityInput\n data={searchSchoolData}\n setData={setLocalityData}\n clearData={clearLocalityData}\n labelClassName='form-label'\n geoLocation={{ countryCode: 'US' }}\n googleMapsApiKey={googleMapsApiKey}\n required\n hideOnBlur\n />\n <SearchSchoolInput\n data={searchSchoolData}\n setData={setSchoolData}\n clearData={clearSchooldata}\n disabled={!searchSchoolData.schoolLocality}\n searchUrl={searchProspectsUrl}\n onClickNoSuggestions={onClickNoSuggestions}\n required\n placeholder={!searchSchoolData.schoolLocality && getPhrase('schoolPlaceholder')}\n hideOnBlur\n />\n </> :\n <FormField\n label={getPhrase('schoolOrDistrict')}\n name='schoolOrDistrict'\n value={formikProps.values?.schoolOrDistrict}\n showRequiredStar\n placeholder={getPhrase('schoolOrDistrictPlaceholder')}\n autoFocus\n />\n }\n <JobTitleInput\n id='job-title'\n error={formikProps.touched?.jobTitle && formikProps.errors?.jobTitle}\n countryCode={CountryCode.US}\n initialValue={formikProps.values?.jobTitle}\n onChange={jobTitle => formikProps.setFieldValue('jobTitle', jobTitle, false)}\n labelClassName='form-label'\n isTertiary={false}\n required\n />\n <FormField\n label={getPhrase('phoneNumber')}\n name='phoneNumber'\n value={formikProps.values?.phoneNumber}\n showRequiredStar\n placeholder={getPhrase('phoneNumberPlaceholder')}\n />\n <SpinnerButton type='submit' className='w-100 mt-3' variant='dark' showSpinner={showSpinner} disabled={!formikProps.isValid} >\n <Text namespace={namespace} phrase='contactUsButton' />\n </SpinnerButton>\n </Form>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { Text } from 'libs/shared/components/text/Text';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nimport styles from './contact-us-success.module.scss';\n\nconst namespace = 'default.contactUsSuccess';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface ContactUsSuccessProps {\n className?: string;\n onClose?: () => void;\n}\n\nexport function ContactUsSuccess({ className = '', onClose }: ContactUsSuccessProps) {\n return (\n <EmptyState className={className}>\n <EmptyState.Image className={styles.image} src={ImageUrls.General.EMAIL_SENT} />\n <EmptyState.Heading className='w-100'>\n <Text namespace={namespace} phrase='successHeading' />\n </EmptyState.Heading>\n <EmptyState.Info className='w-100'>\n <Text namespace={namespace} phrase='successMessage' />\n </EmptyState.Info>\n {onClose && <EmptyState.Cta text={getPhrase('buttonLabel')} className='btn btn-dark w-100' onClick={onClose} />}\n </EmptyState>\n );\n}\n","import React from 'react';\nimport { type BrazeUser, StreamableFormEvent } from '@clickview/braze-client';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { ScrollHelper } from 'libs/common/backbone/utils/ScrollHelper';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/react/index';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { ProspectLookup } from 'libs/shared/apps/sign-up/enums/ProspectLookup';\nimport { BrazeCheckEmailResponse, BrazeHelper } from 'libs/shared/apps/sign-up/helpers/BrazeHelper';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Popup, PopupProps } from 'libs/shared/components/popup/Popup';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { BrazeRequests } from 'libs/shared/flight-requests/BrazeRequests';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useProfileApiClient } from 'libs/shared/hooks/UseProfileApiClient';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Config, CurrentUser } from 'libs/shared/interfaces';\nimport { ContextService } from 'libs/shared/services/ContextService';\nimport { PageMetadataHelper } from 'libs/shared/utils/PageMetadataHelper';\n\nimport { StreamableIconLogo } from 'shared/components/streamable-logo/StreamableLogo';\nimport { Actions } from 'shared/constants/StreamableActions';\nimport { StreamableConstants } from 'shared/constants/StreamableConstants';\nimport { AppChannels } from 'shared/constants/StreamableRadioChannels';\nimport { BrazeSource } from 'shared/enums/BrazeSource';\nimport { BrazeTopic } from 'shared/enums/BrazeTopic';\nimport { useStreamableBrazeClientService } from 'shared/hooks/useStreamableBrazeClientService';\nimport { SeoHelper } from 'shared/utils/StreamableSeoHelper';\n\nimport { ContactUsError } from './error/ContactUsError';\nimport { ContactUsForm, ContactUsFormValues } from './form/ContactUsForm';\nimport { ContactUsSuccess } from './success/ContactUsSuccess';\n\nimport styles from './contact-us.module.scss';\n\nconst namespace = 'default.contactUs';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ntype ContactUsFormStage = 'data-entry' | 'success' | 'error';\n\ninterface ContactUsContentProps {\n formStage: ContactUsFormStage\n initialFormValues: ContactUsFormValues;\n submitting: boolean;\n loginParams: HashObject;\n onSubmit: (values: ContactUsFormValues) => void;\n onTryAgain: () => void;\n closePopup?: () => void;\n googleMapsApiKey: string;\n searchProspectsUrl: string;\n showSignIn: boolean;\n}\n\nfunction ContactUsContent(props: ContactUsContentProps) {\n return (\n <>\n {props.formStage === 'data-entry' &&\n <>\n <h1 className='h2 text-center'><Text namespace={namespace} phrase='contactUsHeading' /></h1>\n <p className='text-center mb-3'><Text namespace={namespace} phrase='contactUsDescription' /></p>\n <ContactUsForm\n initialValues={props.initialFormValues}\n showSpinner={props.submitting}\n onSubmit={props.onSubmit}\n googleMapsApiKey={props.googleMapsApiKey}\n searchProspectsUrl={props.searchProspectsUrl}\n />\n {props.showSignIn && <AppLink\n className='d-flex justify-content-center align-items-center mt-3 text-info'\n appLink={{\n application: AppChannels.DEFAULT,\n action: Actions.Default.CHALLENGE,\n params: props.loginParams\n }}\n >\n <Text namespace={namespace} phrase='signInLink' />\n </AppLink>}\n </>\n }\n {props.formStage === 'error' && <ContactUsError onTryAgain={props.onTryAgain} />}\n {props.formStage === 'success' && <ContactUsSuccess onClose={props.closePopup} />}\n </>\n );\n}\n\ninterface ContactUsPageProps extends ContactUsContentProps { }\n\nfunction ContactUsPage(props: ContactUsPageProps) {\n useSetPageMetadata(PageMetadataHelper.getDefaultMetadata({\n title: getPhrase('title'),\n phraseContext: {\n phraseHandler: getPhrase,\n titlePhrase: 'pageTitle',\n descriptionPhrase: 'pageDescription'\n },\n canonicalLink: SeoHelper.getCanonicalLink(),\n allowIndexing: true,\n product: StreamableConstants.PRODUCT_NAME\n }));\n\n return (\n <div className={`${styles.pageContainer} bg-white mt-4 mx-4 mx-sm-auto p-3 mb-3 border border-gray-400 rounded-3 shadow-sm`}>\n <ContactUsContent\n formStage={props.formStage}\n initialFormValues={props.initialFormValues}\n loginParams={props.loginParams}\n onSubmit={props.onSubmit}\n onTryAgain={props.onTryAgain}\n submitting={props.submitting}\n googleMapsApiKey={props.googleMapsApiKey}\n searchProspectsUrl={props.searchProspectsUrl}\n showSignIn={props.showSignIn}\n />\n </div>\n );\n}\n\ninterface ContactUsPopupProps extends ContactUsContentProps { }\n\nfunction ContactUsPopup(props: ContactUsPopupProps) {\n function onClose() {\n props.closePopup();\n\n ScrollHelper.preventScrollTop();\n }\n\n return (\n <Popup\n title={getPhrase('title')}\n closePopup={onClose}\n bodyClassName='p-5'\n hideTitle\n >\n <button className='btn-close position-absolute top-0 end-0 p-3' onClick={onClose} />\n <div className={`${styles.logo} position-absolute top-0 start-0 m-3`}>\n <StreamableIconLogo />\n </div>\n <ContactUsContent\n formStage={props.formStage}\n initialFormValues={props.initialFormValues}\n loginParams={props.loginParams}\n onSubmit={props.onSubmit}\n onTryAgain={props.onTryAgain}\n submitting={props.submitting}\n closePopup={onClose}\n googleMapsApiKey={props.googleMapsApiKey}\n searchProspectsUrl={props.searchProspectsUrl}\n showSignIn={props.showSignIn}\n />\n </Popup>\n );\n}\n\ninterface ContactUsViewProps extends PopupProps {\n fromPageLoad: boolean;\n}\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function ContactUsView(props: ContactUsViewProps) {\n const fetchAsync = Flight.useGetFetchAsync();\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const braze = useStreamableBrazeClientService();\n const [ formStage, setFormStage ] = React.useState<ContactUsFormStage>('data-entry');\n const [ submitting, setSubmitting ] = React.useState(false);\n const [ initialFormValues, setInitialFormValues ] = React.useState<ContactUsFormValues>({\n firstName: '',\n lastName: '',\n email: '',\n schoolOrDistrict: '',\n jobTitle: '',\n phoneNumber: '',\n country: '',\n province: '',\n prospectId: ''\n });\n\n const { createOrUpdateProfile } = useProfileApiClient();\n\n const redirectUrl = Core.AppLinkHelper.getHref(ContextService.getCurrentRoute().appLink);\n const loginParams = redirectUrl !== '/' ? { redirectUrl } : {};\n\n React.useEffect(() => {\n if (!currentUser.data?.isAuthenticated)\n return;\n\n setInitialFormValues({\n ...initialFormValues,\n firstName: currentUser.data.givenName,\n lastName: currentUser.data.familyName,\n email: currentUser.data.email\n });\n }, [currentUser.data?.isAuthenticated]);\n\n async function onSubmit(values: ContactUsFormValues) {\n try {\n setSubmitting(true);\n setInitialFormValues(values);\n\n const checkEmail = await fetchAsync<BrazeCheckEmailResponse>(BrazeRequests.checkEmail(values.email));\n\n let crmId: string;\n if (values.prospectId) {\n const prospectLookups = await fetchAsync<ProspectLookup[]>(BrazeRequests.prospectLookups(values.prospectId));\n crmId = prospectLookups?.find(l => l.type === 'crm_id')?.externalId;\n }\n\n const brazeUser: BrazeUser = {\n email: values.email,\n firstName: values.firstName,\n lastName: values.lastName,\n phone: values.phoneNumber,\n custom: {\n accountAddress: values?.province ? {\n countryCode: values?.country,\n province: BrazeHelper.parseProvince(values?.province || '')\n } : undefined,\n accountName: values.schoolOrDistrict,\n jobTitle: values.jobTitle,\n syncToCrm: checkEmail?.users?.length ? undefined : true,\n crmId: crmId || undefined\n }\n };\n \n createOrUpdateProfile({\n email: values.email,\n firstName: values.firstName,\n lastName: values.lastName,\n phone: values.phoneNumber,\n countryCode: values.country\n });\n\n braze.logFormSubmission({\n user: brazeUser,\n eventType: StreamableFormEvent.ContactUsFormSubmit,\n source: BrazeSource.ContactUs,\n topic: BrazeTopic.ContactUs,\n productType: 'sl'\n });\n\n setFormStage('success');\n } catch (err) {\n console.warn(err);\n\n setFormStage('error');\n } finally {\n setSubmitting(false);\n }\n }\n\n function onTryAgain() {\n setFormStage('data-entry');\n }\n\n if (!config.hasCompleted || !currentUser.hasCompleted)\n return <></>;\n\n const contactUsProps = {\n formStage,\n initialFormValues,\n submitting,\n loginParams,\n onSubmit,\n onTryAgain,\n closePopup: props.closePopup,\n googleMapsApiKey: config.data.googleMapsApiKey,\n searchProspectsUrl: UrlHelper.safeUrlConcat(config.data.gatewayApiUrl, '/v1/search/prospects'),\n showSignIn: !currentUser.data.isAuthenticated\n };\n\n if (props.fromPageLoad)\n return <ContactUsPage {...contactUsProps} />;\n\n return (\n <ContactUsPopup {...contactUsProps} />\n );\n}"],"names":["namespace","getPhrase","LanguageService","ContactUsError","className","onTryAgain","jsxs","EmptyState","jsx","styles","ImageUrls","Text","validationSchema","Yup.object","Yup.string","ContactUsForm","props","FormWrapper","ContactUsFormFields","showSpinner","googleMapsApiKey","searchProspectsUrl","formikProps","useFormikContextWrapper","searchSchoolData","setSearchSchoolData","React","cantFindSchool","setCantFindSchool","clearFormikSchoolData","triggerValidation","setLocalityData","data","clearLocalityData","setSchoolData","clearSchooldata","onClickNoSuggestions","name","Form","FormField","_a","_b","_c","_d","Fragment","SearchLocalityInput","SearchSchoolInput","JobTitleInput","_e","_f","CountryCode","_g","jobTitle","_h","SpinnerButton","ContactUsSuccess","onClose","ContactUsContent","AppLink","AppChannels","Actions","ContactUsPage","useSetPageMetadata","PageMetadataHelper","SeoHelper","StreamableConstants","ContactUsPopup","ScrollHelper","Popup","StreamableIconLogo","ContactUsView","fetchAsync","Flight.useGetFetchAsync","config","Flight.useBasicFetch","ConfigRequests","currentUser","UserRequests","braze","useStreamableBrazeClientService","formStage","setFormStage","submitting","setSubmitting","initialFormValues","setInitialFormValues","createOrUpdateProfile","useProfileApiClient","redirectUrl","Core.AppLinkHelper","ContextService","loginParams","onSubmit","values","checkEmail","BrazeRequests","crmId","prospectLookups","l","brazeUser","BrazeHelper","StreamableFormEvent","BrazeSource","BrazeTopic","err","contactUsProps","UrlHelper"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{h as n,i as s,k as l,n as c,c as e,j as k,a0 as r,W as o,X as p}from"./app-C56EnOMP.js";import{P as b}from"./C5QPXJGU.chunk.js";const A="_pillTab_1wdcp_2",h={pillTab:A},i="streamable.header";function D(a){var d,g,y,m,u,L;const t=[{name:e.getPhrase(i,"heading"),appLink:(d=a.appLinks)==null?void 0:d.discover,active:a.active==="discover",analyticsData:{name:e.getPhrase(i,"heading"),url:c.getHref((g=a.appLinks)==null?void 0:g.discover)},analyticsOptions:{actionType:l.Click,entity:s.Url,location:n.MagicTabs}},{name:e.getPhrase(i,"livestreams"),appLink:(y=a.appLinks)==null?void 0:y.calendar,active:a.active==="calendar",analyticsData:{name:e.getPhrase(i,"livestreams"),url:c.getHref((m=a.appLinks)==null?void 0:m.calendar)},analyticsOptions:{actionType:l.Click,entity:s.Url,location:n.MagicTabs}},{name:e.getPhrase(i,"partners"),appLink:(u=a.appLinks)==null?void 0:u.partners,active:a.active==="partners",analyticsData:{name:e.getPhrase(i,"partners"),url:c.getHref((L=a.appLinks)==null?void 0:L.partners)},analyticsOptions:{actionType:l.Click,entity:s.Url,location:n.MagicTabs}}];return k.jsx("div",{className:"py-3 text-center",children:k.jsx(b,{tabs:t,className:h.pillTab})})}function f(a){return{...r,classification:t=>r.classification(t,a),classificationDirectory:()=>r.classificationDirectory(a),series:()=>null,latestReleases:()=>null,classificationLatestReleases:()=>null,playlist:()=>null,onboardingAppLinks:()=>null,onboardingStep:()=>null,watchHistory:()=>null,widgetWizard:()=>null}}function H(){return{discover:{application:p.DASHBOARD,action:o.Dashboard.HOME},calendar:{application:p.CALENDAR,action:o.Calendar.CALENDAR},partners:{application:p.DASHBOARD,action:o.Dashboard.CONTENT_PARTNERS}}}export{D as S,f as a,H as g};
2
+ //# sourceMappingURL=DSLX3H2r.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DSLX3H2r.chunk.js","sources":["../../../../libs/shared/src/apps/streamable-learning/components/header/StreamableHeader.tsx","../../src/apps/dashboard/views/dashboard/DiscoverViewUtils.ts"],"sourcesContent":["import React from 'react';\n\nimport { AppLinkHelper } from 'libs/common/backbone/core';\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { PillTabSelector } from 'libs/shared/components/pill-tab-selector/PillTabSelector';\n\nimport styles from './streamable-header.module.scss';\n\nconst namespace = 'streamable.header';\n\nexport interface StreamableHeaderAppLinks {\n discover: Core.AppLink;\n calendar: Core.AppLink;\n partners: Core.AppLink;\n}\n\ninterface StreamableHeaderProps {\n appLinks?: StreamableHeaderAppLinks;\n active: keyof StreamableHeaderAppLinks;\n}\n\nexport function StreamableHeader(props: StreamableHeaderProps): JSX.Element {\n const tabs = [{\n name: LanguageService.getPhrase(namespace, 'heading'),\n appLink: props.appLinks?.discover,\n active: props.active === 'discover',\n analyticsData: {\n name: LanguageService.getPhrase(namespace, 'heading'),\n url: AppLinkHelper.getHref(props.appLinks?.discover)\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n }\n }, {\n name: LanguageService.getPhrase(namespace, 'livestreams'),\n appLink: props.appLinks?.calendar,\n active: props.active === 'calendar',\n analyticsData: {\n name: LanguageService.getPhrase(namespace, 'livestreams'),\n url: AppLinkHelper.getHref(props.appLinks?.calendar)\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n }\n }, {\n name: LanguageService.getPhrase(namespace, 'partners'),\n appLink: props.appLinks?.partners,\n active: props.active === 'partners',\n analyticsData: {\n name: LanguageService.getPhrase(namespace, 'partners'),\n url: AppLinkHelper.getHref(props.appLinks?.partners)\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n }\n }];\n\n return (\n <div className='py-3 text-center'>\n <PillTabSelector\n tabs={tabs}\n className={styles.pillTab}\n />\n </div>\n );\n}","import { HashObject } from 'libs/common/react/interfaces';\n\nimport { StreamableDiscoverDashboardProps } from 'libs/shared/apps/streamable-learning/components/dashboard/StreamableDiscoverDashboard';\nimport { StreamableHeaderAppLinks } from 'libs/shared/apps/streamable-learning/components/header/StreamableHeader';\n\nimport { Actions } from 'shared/constants/StreamableActions';\nimport { AppChannels } from 'shared/constants/StreamableRadioChannels';\nimport { StreamableAppLinks } from 'shared/utils/StreamableAppLinks';\n\nexport function getDiscoverWidgetAppLinks(\n params?: HashObject\n): StreamableDiscoverDashboardProps['widgetAppLinks'] {\n return {\n ...StreamableAppLinks,\n classification: classification => StreamableAppLinks.classification(classification, params),\n classificationDirectory: () => StreamableAppLinks.classificationDirectory(params),\n\n // TODO: Find a nice way around having to pass these in\n series: () => null,\n latestReleases: () => null,\n classificationLatestReleases: () => null,\n playlist: () => null,\n onboardingAppLinks: () => null,\n onboardingStep: () => null,\n watchHistory: () => null,\n widgetWizard: () => null\n };\n}\n\nexport function getStreamableHeaderAppLinks(): StreamableHeaderAppLinks {\n return {\n discover: { application: AppChannels.DASHBOARD, action: Actions.Dashboard.HOME },\n calendar: { application: AppChannels.CALENDAR, action: Actions.Calendar.CALENDAR },\n partners: { application: AppChannels.DASHBOARD, action: Actions.Dashboard.CONTENT_PARTNERS }\n };\n}"],"names":["namespace","StreamableHeader","props","tabs","LanguageService","_a","AppLinkHelper","_b","UserAction","EntityType","LocationContext","_c","_d","_e","_f","jsx","PillTabSelector","styles","getDiscoverWidgetAppLinks","params","StreamableAppLinks","classification","getStreamableHeaderAppLinks","AppChannels","Actions"],"mappings":"gLAYMA,EAAY,oBAaX,SAASC,EAAiBC,EAA2C,iBAC1E,MAAMC,EAAO,CAAC,CACZ,KAAMC,EAAgB,UAAUJ,EAAW,SAAS,EACpD,SAASK,EAAAH,EAAM,WAAN,YAAAG,EAAgB,SACzB,OAAQH,EAAM,SAAW,WACzB,cAAe,CACb,KAAME,EAAgB,UAAUJ,EAAW,SAAS,EACpD,IAAKM,EAAc,SAAQC,EAAAL,EAAM,WAAN,YAAAK,EAAgB,QAAQ,CAAA,EAErD,iBAAkB,CAChB,WAAYC,EAAW,MACvB,OAAQC,EAAW,IACnB,SAAUC,EAAgB,SAAA,CAC5B,EACC,CACD,KAAMN,EAAgB,UAAUJ,EAAW,aAAa,EACxD,SAASW,EAAAT,EAAM,WAAN,YAAAS,EAAgB,SACzB,OAAQT,EAAM,SAAW,WACzB,cAAe,CACb,KAAME,EAAgB,UAAUJ,EAAW,aAAa,EACxD,IAAKM,EAAc,SAAQM,EAAAV,EAAM,WAAN,YAAAU,EAAgB,QAAQ,CAAA,EAErD,iBAAkB,CAChB,WAAYJ,EAAW,MACvB,OAAQC,EAAW,IACnB,SAAUC,EAAgB,SAAA,CAC5B,EACC,CACD,KAAMN,EAAgB,UAAUJ,EAAW,UAAU,EACrD,SAASa,EAAAX,EAAM,WAAN,YAAAW,EAAgB,SACzB,OAAQX,EAAM,SAAW,WACzB,cAAe,CACb,KAAME,EAAgB,UAAUJ,EAAW,UAAU,EACrD,IAAKM,EAAc,SAAQQ,EAAAZ,EAAM,WAAN,YAAAY,EAAgB,QAAQ,CAAA,EAErD,iBAAkB,CAChB,WAAYN,EAAW,MACvB,OAAQC,EAAW,IACnB,SAAUC,EAAgB,SAAA,CAC5B,CACD,EAED,OACEK,EAAAA,IAAC,MAAA,CAAI,UAAU,mBACb,SAAAA,EAAAA,IAACC,EAAA,CACC,KAAAb,EACA,UAAWc,EAAO,OAAA,CAAA,EAEtB,CAEJ,CClEO,SAASC,EACdC,EACoD,CACpD,MAAO,CACL,GAAGC,EACH,eAAgBC,GAAkBD,EAAmB,eAAeC,EAAgBF,CAAM,EAC1F,wBAAyB,IAAMC,EAAmB,wBAAwBD,CAAM,EAGhF,OAAQ,IAAM,KACd,eAAgB,IAAM,KACtB,6BAA8B,IAAM,KACpC,SAAU,IAAM,KAChB,mBAAoB,IAAM,KAC1B,eAAgB,IAAM,KACtB,aAAc,IAAM,KACpB,aAAc,IAAM,IAAA,CAExB,CAEO,SAASG,GAAwD,CACtE,MAAO,CACL,SAAU,CAAE,YAAaC,EAAY,UAAW,OAAQC,EAAQ,UAAU,IAAA,EAC1E,SAAU,CAAE,YAAaD,EAAY,SAAU,OAAQC,EAAQ,SAAS,QAAA,EACxE,SAAU,CAAE,YAAaD,EAAY,UAAW,OAAQC,EAAQ,UAAU,gBAAA,CAAiB,CAE/F"}
@@ -0,0 +1,2 @@
1
+ import{j as n,ah as d,c as h,l as g,m as _}from"./app-C56EnOMP.js";import{C as m}from"./-cwk-1Iv.chunk.js";function u(e){return n.jsx("svg",{...e,children:n.jsx("path",{d:"M15.695 11.267c.407.41.407 1.056 0 1.466L9.79 18.696a1.046 1.046 0 0 1-1.474 0l-.01-.01a1.034 1.034 0 0 1 0-1.467L13.474 12l-5.17-5.22a1.034 1.034 0 0 1 0-1.465l.012-.011a1.046 1.046 0 0 1 1.474 0z",fill:"currentColor"})})}const v="_buttonContainer_1pl2q_1",C="_left_1pl2q_7",x="_right_1pl2q_13",f="_button_1pl2q_1",b="_hoverText_1pl2q_35",$="_chevron_1pl2q_42",N="_extendedClickableArea_1pl2q_42",j="_gradientRight_1pl2q_54",k="_gradientLeft_1pl2q_54",L="_topPos_1pl2q_81",t={buttonContainer:v,left:C,right:x,button:f,hoverText:b,chevron:$,extendedClickableArea:N,gradientRight:j,gradientLeft:k,topPos:L},q="shared.widgetButton",l=h.encloseNamespace(q);var R=(e=>(e[e.Left=0]="Left",e[e.Right=1]="Right",e))(R||{});const T=d.memo(function(e){const s=e.direction===0,o=s?m:u;function r(){let a=t.topPos;return s?a+=` ${t.left} ${e.leftButtonClassName}`:a+=` ${t.right} ${e.rightButtonClassName}`,a}function c(){var a,i;return((a=e.state)==null?void 0:a.contents)==="videos"?{paddingBottom:56.25/((i=e.state)==null?void 0:i.viewableItems)+"%"}:{height:"100%"}}return e.hide?n.jsx(n.Fragment,{}):n.jsxs("div",{className:`${t.buttonContainer} ${e.containerClassName?e.containerClassName:""}`,style:c(),children:[e.useGradientBackdrop&&n.jsx("div",{className:s?`${t.gradientLeft} ${e.leftGradientClassName}`:`${t.gradientRight} ${e.rightGradientClassName}`}),!e.hideExtendedClickableArea&&n.jsx("button",{onClick:e.onClick,className:`${t.extendedClickableArea} ${s?t.left:t.right}`,tabIndex:-1}),n.jsxs("button",{className:`${r()} ${t.button} ${e.className||""}`,onClick:e.onClick,"aria-label":l(s?"previous":"next"),children:[e.hoverText&&n.jsx("span",{className:`ps-3 pe-2 ${t.hoverText}`,children:e.hoverText}),n.jsx(g,{svg:o,size:_.Medium,className:`svg-container d-inline-block ${t.chevron}`})]})]})});export{u as C,T as W,R as a};
2
+ //# sourceMappingURL=DSq4f4jm.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DSq4f4jm.chunk.js","sources":["../../../../libs/shared/src/images/svg/arrows/ChevronRightSvg.tsx","../../../../libs/shared/src/components/widgets/widget-button/WidgetButton.tsx"],"sourcesContent":["import React from 'react';\n\nexport function ChevronRightSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M15.695 11.267c.407.41.407 1.056 0 1.466L9.79 18.696a1.046 1.046 0 0 1-1.474 0l-.01-.01a1.034 1.034 0 0 1 0-1.467L13.474 12l-5.17-5.22a1.034 1.034 0 0 1 0-1.465l.012-.011a1.046 1.046 0 0 1 1.474 0z'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import * as React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { FixedWidgetState } from 'libs/shared/components/widgets/fixed-widget';\nimport { WidgetContents } from 'libs/shared/enums/WidgetContents';\nimport { ChevronLeftSvg } from 'libs/shared/images/svg/arrows/ChevronLeftSvg';\nimport { ChevronRightSvg } from 'libs/shared/images/svg/arrows/ChevronRightSvg';\n\nimport styles from './widget-button.module.scss';\n\nconst namespace = 'shared.widgetButton';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport enum WidgetButtonDirection {\n Left,\n Right\n}\n\ninterface WidgetButtonProps {\n onClick: (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;\n direction: WidgetButtonDirection;\n hide: boolean;\n contents?: WidgetContents;\n useGradientBackdrop?: boolean;\n className?: string;\n hoverText?: string;\n hideExtendedClickableArea?: boolean;\n state?: FixedWidgetState;\n\n leftButtonClassName?: string;\n rightButtonClassName?: string;\n leftGradientClassName?: string;\n rightGradientClassName?: string;\n containerClassName?: string;\n}\n\nexport const WidgetButton = React.memo(function(props: WidgetButtonProps): JSX.Element {\n const isLeft = props.direction === WidgetButtonDirection.Left;\n\n const arrowSvg = isLeft ? ChevronLeftSvg : ChevronRightSvg;\n\n function getPositionClass(): string {\n let className = styles.topPos;\n \n // Left / Right\n if (isLeft)\n className += ` ${styles.left} ${props.leftButtonClassName}`;\n else\n className += ` ${styles.right} ${props.rightButtonClassName}`;\n \n return className;\n }\n\n function getStyle(): React.CSSProperties {\n if (props.state?.contents === 'videos')\n return { paddingBottom: (56.25 / props.state?.viewableItems) + '%' };\n\n return { height: '100%' };\n }\n\n if (props.hide)\n return <></>;\n\n return (\n <div className={`${styles.buttonContainer} ${props.containerClassName ? props.containerClassName : ''}`} style={getStyle()}>\n {props.useGradientBackdrop &&\n <div className={isLeft ? `${styles.gradientLeft} ${props.leftGradientClassName}` : `${styles.gradientRight} ${props.rightGradientClassName}`} />\n }\n\n {!props.hideExtendedClickableArea && (\n <button\n onClick={props.onClick}\n className={`${styles.extendedClickableArea} ${isLeft ? styles.left : styles.right}`}\n tabIndex={-1}\n />\n )}\n\n <button\n className={`${getPositionClass()} ${styles.button} ${props.className || ''}`}\n onClick={props.onClick}\n aria-label={isLeft ? getPhrase('previous') : getPhrase('next')}\n >\n {props.hoverText && (\n <span className={`ps-3 pe-2 ${styles.hoverText}`}>{props.hoverText}</span>\n )}\n <SvgContainer\n svg={arrowSvg}\n size={SvgContainerSize.Medium}\n className={`svg-container d-inline-block ${styles.chevron}`}\n />\n </button>\n </div>\n );\n});"],"names":["ChevronRightSvg","props","jsx","namespace","getPhrase","LanguageService","WidgetButtonDirection","WidgetButton","React.memo","isLeft","arrowSvg","ChevronLeftSvg","getPositionClass","className","styles","getStyle","_a","_b","Fragment","jsxs","SvgContainer","SvgContainerSize"],"mappings":"2GAEO,SAASA,EAAgBC,EAAsC,CACpE,OACEC,EAAAA,IAAC,MAAA,CAAK,GAAGD,EACP,SAAAC,EAAAA,IAAC,OAAA,CACC,EAAE,wMACF,KAAK,cAAA,CAAA,EAET,CAEJ,gYCCMC,EAAY,sBACZC,EAAYC,EAAgB,iBAAiBF,CAAS,EAErD,IAAKG,GAAAA,IACVA,EAAAA,EAAA,KAAA,CAAA,EAAA,OACAA,EAAAA,EAAA,MAAA,CAAA,EAAA,QAFUA,IAAAA,GAAA,CAAA,CAAA,EAuBL,MAAMC,EAAeC,EAAAA,KAAW,SAASP,EAAuC,CACrF,MAAMQ,EAASR,EAAM,YAAc,EAE7BS,EAAWD,EAASE,EAAiBX,EAE3C,SAASY,GAA2B,CAClC,IAAIC,EAAYC,EAAO,OAGvB,OAAIL,EACFI,GAAa,IAAIC,EAAO,IAAI,IAAIb,EAAM,mBAAmB,GAEzDY,GAAa,IAAIC,EAAO,KAAK,IAAIb,EAAM,oBAAoB,GAEtDY,CACT,CAEA,SAASE,GAAgC,SACvC,QAAIC,EAAAf,EAAM,QAAN,YAAAe,EAAa,YAAa,SACrB,CAAE,cAAgB,QAAQC,EAAAhB,EAAM,QAAN,YAAAgB,EAAa,eAAiB,GAAA,EAE1D,CAAE,OAAQ,MAAA,CACnB,CAEA,OAAIhB,EAAM,KACDC,EAAAA,IAAAgB,EAAAA,SAAA,EAAE,EAGTC,EAAAA,KAAC,MAAA,CAAI,UAAW,GAAGL,EAAO,eAAe,IAAIb,EAAM,mBAAqBA,EAAM,mBAAqB,EAAE,GAAI,MAAOc,IAC7G,SAAA,CAAAd,EAAM,qBACLC,EAAAA,IAAC,MAAA,CAAI,UAAWO,EAAS,GAAGK,EAAO,YAAY,IAAIb,EAAM,qBAAqB,GAAK,GAAGa,EAAO,aAAa,IAAIb,EAAM,sBAAsB,GAAI,EAG/I,CAACA,EAAM,2BACNC,EAAAA,IAAC,SAAA,CACC,QAASD,EAAM,QACf,UAAW,GAAGa,EAAO,qBAAqB,IAAIL,EAASK,EAAO,KAAOA,EAAO,KAAK,GACjF,SAAU,EAAA,CAAA,EAIdK,EAAAA,KAAC,SAAA,CACC,UAAW,GAAGP,EAAA,CAAkB,IAAIE,EAAO,MAAM,IAAIb,EAAM,WAAa,EAAE,GAC1E,QAASA,EAAM,QACf,aAAqBG,EAATK,EAAmB,WAAwB,MAAd,EAExC,SAAA,CAAAR,EAAM,iBACJ,OAAA,CAAK,UAAW,aAAaa,EAAO,SAAS,GAAK,SAAAb,EAAM,SAAA,CAAU,EAErEC,EAAAA,IAACkB,EAAA,CACC,IAAKV,EACL,KAAMW,EAAiB,OACvB,UAAW,gCAAgCP,EAAO,OAAO,EAAA,CAAA,CAC3D,CAAA,CAAA,CACF,EACF,CAEJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ import{j as t,d as r,l as i,m as l,an as a,c as u}from"./app-C56EnOMP.js";import{a as v}from"./CEmtkty-.chunk.js";const o="_subText_5u663_1",h={subText:o};function $(e){const s=`text-uppercase text-truncate mb-0 ${h.subText} ${e.className}`;return e.appLink?t.jsx(r,{className:s,appLink:e.appLink,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,title:e.title,ariaLabel:e.ariaLabel,children:e.children}):t.jsx("div",{className:s,title:e.title,"aria-label":e.ariaLabel,children:e.children})}function d(e){return t.jsx("svg",{...e,children:t.jsx("path",{fill:"currentColor",d:"M14.893 16.357a2.5 2.5 0 0 1 1.806-1.354 2.506 2.506 0 0 1 2.902 2.042 2.516 2.516 0 0 1-2.032 2.916 2.5 2.5 0 0 1-2.74-1.494l-2.603-5.208-2.57 5.138a2.504 2.504 0 0 1-2.769 1.564 2.516 2.516 0 0 1-2.031-2.916 2.506 2.506 0 0 1 2.901-2.042c.81.144 1.46.663 1.803 1.348l2.107-4.212-3.703-7.41a.504.504 0 0 1 .222-.675.5.5 0 0 1 .672.223l3.369 6.743 3.372-6.743a.5.5 0 0 1 .671-.223.504.504 0 0 1 .223.674l-3.707 7.412zm-9.053.863a1.51 1.51 0 0 0 1.221 1.752 1.505 1.505 0 0 0 1.743-1.227 1.51 1.51 0 0 0-1.22-1.752A1.505 1.505 0 0 0 5.84 17.22m11.555 1.752a1.51 1.51 0 0 0 1.221-1.752 1.505 1.505 0 0 0-1.743-1.227 1.51 1.51 0 0 0-1.22 1.752 1.505 1.505 0 0 0 1.742 1.227"})})}function m(e){return t.jsx("svg",{...e,children:t.jsx("path",{fill:"currentColor",d:"M11.91 4.025c-3.308 0-6 2.692-6 6 0 1.923.916 3.716 2.462 4.846v3.77c0 .763.621 1.384 1.385 1.384h4.308c.763 0 1.384-.62 1.384-1.384v-3.77a6 6 0 0 0 2.462-4.846c0-3.308-2.692-6-6-6m2.616 12.77v.615h-5.23v-.615zm-4.77 2.307a.46.46 0 0 1-.46-.461v-.308h5.23v.308a.46.46 0 0 1-.461.461zm4.77-4.471v1.24h-5.23v-1.24a.46.46 0 0 0-.205-.384 5.07 5.07 0 0 1-2.257-4.222c0-2.8 2.277-5.077 5.077-5.077s5.077 2.278 5.077 5.077a5.07 5.07 0 0 1-2.257 4.222.46.46 0 0 0-.205.384m-2.396-2.616a.56.56 0 0 0 .107-.348v-.068q.004-.237.076-.402a1 1 0 0 1 .235-.317q.165-.153.454-.35.462-.316.757-.724.294-.41.295-.97 0-.591-.283-.993a1.8 1.8 0 0 0-.76-.61 2.6 2.6 0 0 0-1.05-.208q-.629 0-1.151.279-.525.277-.78.825a1.2 1.2 0 0 0-.12.522.44.44 0 0 0 .105.303q.105.118.3.118.162 0 .271-.091a.5.5 0 0 0 .157-.247q.162-.518.471-.704.309-.187.718-.187.343 0 .62.119.28.118.443.339.164.22.164.53 0 .27-.104.467-.106.195-.28.35a5 5 0 0 1-.391.305q-.281.195-.516.419a1.9 1.9 0 0 0-.378.498 1.3 1.3 0 0 0-.143.613v.193q0 .213.114.346.114.134.338.133.224 0 .33-.14m.088 2.081a.6.6 0 0 0 .17-.426.6.6 0 0 0-.17-.428.57.57 0 0 0-.424-.177q-.242 0-.416.177a.59.59 0 0 0-.174.428.6.6 0 0 0 .174.426q.174.18.416.18.252 0 .424-.18"})})}function g(e){return t.jsx("svg",{...e,children:t.jsx("path",{d:"M18.06 4c.519 0 .94.479.94 1.075v13.85c0 .594-.419 1.075-.94 1.075H5.94c-.519 0-.94-.479-.94-1.075V5.075C5 4.48 5.419 4 5.94 4zM9.256 5H5.882v.184l-.001.1v.418l-.001.175-.001 1.113v1.429l-.001.314v2.024l-.001.352-.001 3.162v.335l-.001 4.386h.105l.08.001h.36l.157.001h.571l.221.001h.741l.27.001h1.174l.313.001h1.63l.332.001 2.61.001h.305l3.362.001h.012v-.184l.001-.1v-.418l.001-.175.001-1.113v-1.429l.001-.314v-2.024l.001-.352.001-3.162v-.335l.001-4.374v-.012h-.105l-.08-.001h-.36l-.157-.001h-.571l-.221-.001h-.741l-.27-.001h-1.174l-.313-.001h-1.63l-.332-.001-2.61-.001zm1.438 8c.238 0 .431.224.431.5s-.193.5-.431.5H8.056c-.238 0-.431-.224-.431-.5s.193-.5.431-.5zm5.198-3c.267 0 .483.224.483.5s-.216.5-.483.5H8.108a.49.49 0 0 1-.483-.5c0-.276.216-.5.483-.5zm0-3c.267 0 .483.224.483.5s-.216.5-.483.5H8.108a.49.49 0 0 1-.483-.5c0-.276.216-.5.483-.5z",fill:"currentColor"})})}const x="_topLeftContainer_z6mhb_1",f="_draft_z6mhb_7",b="_badge_z6mhb_10",_="_svg_z6mhb_20",z="_text_z6mhb_29",C="_sm_z6mhb_33",n={topLeftContainer:x,draft:f,badge:b,svg:_,text:z,sm:C},j="shared.typeBadge",c=u.encloseNamespace(j);function y(e){switch(e){case a.Clip:return c("clip");case a.Interactive:return c("interactive");case a.Resource:return c("resource");default:return""}}function L(e){switch(e){case a.Clip:return d;case a.Interactive:return m;case a.Resource:return g;default:return null}}function S(e,s){switch(e){case a.Clip:return"bg-ultramarine";case a.Interactive:return s===v.Draft?n.draft:"bg-green";case a.Resource:return"bg-indigo";default:return""}}T.default={size:"md"};function T(e){const s=`${n.badge} rounded-pill text-white ps-0 ${e.size==="sm"?n.sm:""}`;return t.jsx("div",{className:e.inContainer?"":n.topLeftContainer,children:t.jsxs("div",{className:`${s} ${S(e.typeId,e.status)}`,children:[t.jsx(i,{className:`svg-container d-block ${n.svg}`,size:e.size==="sm"?l.Small:l.Standard,svg:L(e.typeId)}),t.jsx("span",{className:n.text,children:y(e.typeId)})]})})}export{m as I,g as R,$ as T,T as a};
2
+ //# sourceMappingURL=DXxBqeLg.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DXxBqeLg.chunk.js","sources":["../../../../libs/shared/src/components/title-sub-text/TitleSubText.tsx","../../../../libs/shared/src/images/svg/objects/ClipSvg.tsx","../../../../libs/shared/src/images/svg/objects/InteractiveSvg.tsx","../../../../libs/shared/src/images/svg/objects/ResourcesSvg.tsx","../../../../libs/shared/src/components/type-badge/TypeBadge.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { AppLink } from '../app-link/AppLink';\n\nimport styles from './title-sub-text.module.scss';\n\ntype TitleSubTextProps = React.PropsWithChildren<{\n title?: string;\n className?: string;\n ariaLabel?: string;\n appLink?: Core.AppLink;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n}>;\n\nexport function TitleSubText(props: TitleSubTextProps): JSX.Element {\n const className = `text-uppercase text-truncate mb-0 ${styles.subText} ${props.className}`;\n\n if (props.appLink) {\n return (\n <AppLink\n className={className}\n appLink={props.appLink}\n analyticsData={props.analyticsData}\n analyticsOptions={props.analyticsOptions}\n title={props.title}\n ariaLabel={props.ariaLabel}\n >\n {props.children}\n </AppLink>\n );\n }\n\n return (\n <div\n className={className}\n title={props.title}\n aria-label={props.ariaLabel}\n >\n {props.children}\n </div>\n );\n}","import React from 'react';\n\nexport function ClipSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n fill='currentColor'\n d='M14.893 16.357a2.5 2.5 0 0 1 1.806-1.354 2.506 2.506 0 0 1 2.902 2.042 2.516 2.516 0 0 1-2.032 2.916 2.5 2.5 0 0 1-2.74-1.494l-2.603-5.208-2.57 5.138a2.504 2.504 0 0 1-2.769 1.564 2.516 2.516 0 0 1-2.031-2.916 2.506 2.506 0 0 1 2.901-2.042c.81.144 1.46.663 1.803 1.348l2.107-4.212-3.703-7.41a.504.504 0 0 1 .222-.675.5.5 0 0 1 .672.223l3.369 6.743 3.372-6.743a.5.5 0 0 1 .671-.223.504.504 0 0 1 .223.674l-3.707 7.412zm-9.053.863a1.51 1.51 0 0 0 1.221 1.752 1.505 1.505 0 0 0 1.743-1.227 1.51 1.51 0 0 0-1.22-1.752A1.505 1.505 0 0 0 5.84 17.22m11.555 1.752a1.51 1.51 0 0 0 1.221-1.752 1.505 1.505 0 0 0-1.743-1.227 1.51 1.51 0 0 0-1.22 1.752 1.505 1.505 0 0 0 1.742 1.227'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function InteractiveSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n fill='currentColor'\n d='M11.91 4.025c-3.308 0-6 2.692-6 6 0 1.923.916 3.716 2.462 4.846v3.77c0 .763.621 1.384 1.385 1.384h4.308c.763 0 1.384-.62 1.384-1.384v-3.77a6 6 0 0 0 2.462-4.846c0-3.308-2.692-6-6-6m2.616 12.77v.615h-5.23v-.615zm-4.77 2.307a.46.46 0 0 1-.46-.461v-.308h5.23v.308a.46.46 0 0 1-.461.461zm4.77-4.471v1.24h-5.23v-1.24a.46.46 0 0 0-.205-.384 5.07 5.07 0 0 1-2.257-4.222c0-2.8 2.277-5.077 5.077-5.077s5.077 2.278 5.077 5.077a5.07 5.07 0 0 1-2.257 4.222.46.46 0 0 0-.205.384m-2.396-2.616a.56.56 0 0 0 .107-.348v-.068q.004-.237.076-.402a1 1 0 0 1 .235-.317q.165-.153.454-.35.462-.316.757-.724.294-.41.295-.97 0-.591-.283-.993a1.8 1.8 0 0 0-.76-.61 2.6 2.6 0 0 0-1.05-.208q-.629 0-1.151.279-.525.277-.78.825a1.2 1.2 0 0 0-.12.522.44.44 0 0 0 .105.303q.105.118.3.118.162 0 .271-.091a.5.5 0 0 0 .157-.247q.162-.518.471-.704.309-.187.718-.187.343 0 .62.119.28.118.443.339.164.22.164.53 0 .27-.104.467-.106.195-.28.35a5 5 0 0 1-.391.305q-.281.195-.516.419a1.9 1.9 0 0 0-.378.498 1.3 1.3 0 0 0-.143.613v.193q0 .213.114.346.114.134.338.133.224 0 .33-.14m.088 2.081a.6.6 0 0 0 .17-.426.6.6 0 0 0-.17-.428.57.57 0 0 0-.424-.177q-.242 0-.416.177a.59.59 0 0 0-.174.428.6.6 0 0 0 .174.426q.174.18.416.18.252 0 .424-.18'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function ResourcesSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M18.06 4c.519 0 .94.479.94 1.075v13.85c0 .594-.419 1.075-.94 1.075H5.94c-.519 0-.94-.479-.94-1.075V5.075C5 4.48 5.419 4 5.94 4zM9.256 5H5.882v.184l-.001.1v.418l-.001.175-.001 1.113v1.429l-.001.314v2.024l-.001.352-.001 3.162v.335l-.001 4.386h.105l.08.001h.36l.157.001h.571l.221.001h.741l.27.001h1.174l.313.001h1.63l.332.001 2.61.001h.305l3.362.001h.012v-.184l.001-.1v-.418l.001-.175.001-1.113v-1.429l.001-.314v-2.024l.001-.352.001-3.162v-.335l.001-4.374v-.012h-.105l-.08-.001h-.36l-.157-.001h-.571l-.221-.001h-.741l-.27-.001h-1.174l-.313-.001h-1.63l-.332-.001-2.61-.001zm1.438 8c.238 0 .431.224.431.5s-.193.5-.431.5H8.056c-.238 0-.431-.224-.431-.5s.193-.5.431-.5zm5.198-3c.267 0 .483.224.483.5s-.216.5-.483.5H8.108a.49.49 0 0 1-.483-.5c0-.276.216-.5.483-.5zm0-3c.267 0 .483.224.483.5s-.216.5-.483.5H8.108a.49.49 0 0 1-.483-.5c0-.276.216-.5.483-.5z'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { CurationStatus } from 'libs/shared/enums/CurationStatus';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ClipSvg } from 'libs/shared/images/svg/objects/ClipSvg';\nimport { InteractiveSvg } from 'libs/shared/images/svg/objects/InteractiveSvg';\nimport { ResourcesSvg } from 'libs/shared/images/svg/objects/ResourcesSvg';\n\nimport styles from './type-badge.module.scss';\n\nconst namespace = 'shared.typeBadge';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction getText(typeId: MasterType): string {\n switch (typeId) {\n case MasterType.Clip:\n return getPhrase('clip');\n case MasterType.Interactive:\n return getPhrase('interactive');\n case MasterType.Resource:\n return getPhrase('resource');\n default:\n return '';\n }\n}\n\nfunction getIcon(typeId: MasterType) {\n switch (typeId) {\n case MasterType.Clip:\n return ClipSvg;\n case MasterType.Interactive:\n return InteractiveSvg;\n case MasterType.Resource:\n return ResourcesSvg;\n default:\n return null;\n }\n}\n\nfunction getColourClass(typeId: MasterType, status: CurationStatus): string {\n switch (typeId) {\n case MasterType.Clip:\n return 'bg-ultramarine';\n case MasterType.Interactive:\n return status === CurationStatus.Draft ? styles.draft : 'bg-green';\n case MasterType.Resource:\n return 'bg-indigo';\n default:\n return '';\n }\n}\n\ninterface TypeBadgeProps {\n typeId: MasterType;\n status?: CurationStatus;\n size?: 'sm' | 'md';\n inContainer?: boolean;\n}\n\nTypeBadge.default = {\n size: 'md'\n};\n\nexport function TypeBadge(props: TypeBadgeProps): JSX.Element {\n const baseClasses = `${styles.badge} rounded-pill text-white ps-0 ${props.size === 'sm' ? styles.sm : ''}`;\n\n return (\n <div className={props.inContainer ? '' : styles.topLeftContainer}>\n <div className={`${baseClasses} ${getColourClass(props.typeId, props.status)}`}>\n <SvgContainer\n className={`svg-container d-block ${styles.svg}`}\n size={props.size === 'sm' ? SvgContainerSize.Small : SvgContainerSize.Standard}\n svg={getIcon(props.typeId)}\n />\n <span className={styles.text}>\n {getText(props.typeId)}\n </span>\n </div>\n </div>\n );\n}"],"names":["TitleSubText","props","className","styles","jsx","AppLink","ClipSvg","InteractiveSvg","ResourcesSvg","namespace","getPhrase","LanguageService","getText","typeId","MasterType","getIcon","getColourClass","status","CurationStatus","TypeBadge","baseClasses","jsxs","SvgContainer","SvgContainerSize"],"mappings":"2JAoBO,SAASA,EAAaC,EAAuC,CAClE,MAAMC,EAAY,qCAAqCC,EAAO,OAAO,IAAIF,EAAM,SAAS,GAExF,OAAIA,EAAM,QAENG,EAAAA,IAACC,EAAA,CACC,UAAAH,EACA,QAASD,EAAM,QACf,cAAeA,EAAM,cACrB,iBAAkBA,EAAM,iBACxB,MAAOA,EAAM,MACb,UAAWA,EAAM,UAEhB,SAAAA,EAAM,QAAA,CAAA,EAMXG,EAAAA,IAAC,MAAA,CACC,UAAAF,EACA,MAAOD,EAAM,MACb,aAAYA,EAAM,UAEjB,SAAAA,EAAM,QAAA,CAAA,CAGb,CC7CO,SAASK,EAAQL,EAAsC,CAC5D,OACEG,EAAAA,IAAC,MAAA,CAAK,GAAGH,EACP,SAAAG,EAAAA,IAAC,OAAA,CACC,KAAK,eACL,EAAE,gqBAAA,CAAA,EAEN,CAEJ,CCTO,SAASG,EAAeN,EAAsC,CACnE,OACEG,EAAAA,IAAC,MAAA,CAAK,GAAGH,EACP,SAAAG,EAAAA,IAAC,OAAA,CACC,KAAK,eACL,EAAE,8qCAAA,CAAA,EAEN,CAEJ,CCTO,SAASI,EAAaP,EAAsC,CACjE,OACEG,EAAAA,IAAC,MAAA,CAAK,GAAGH,EACP,SAAAG,EAAAA,IAAC,OAAA,CACC,EAAE,i1BACF,KAAK,cAAA,CAAA,EAET,CAEJ,2LCEMK,EAAY,mBACZC,EAAYC,EAAgB,iBAAiBF,CAAS,EAE5D,SAASG,EAAQC,EAA4B,CAC3C,OAAQA,EAAA,CACN,KAAKC,EAAW,KACd,OAAOJ,EAAU,MAAM,EACzB,KAAKI,EAAW,YACd,OAAOJ,EAAU,aAAa,EAChC,KAAKI,EAAW,SACd,OAAOJ,EAAU,UAAU,EAC7B,QACE,MAAO,EAAA,CAEb,CAEA,SAASK,EAAQF,EAAoB,CACnC,OAAQA,EAAA,CACN,KAAKC,EAAW,KACd,OAAOR,EACT,KAAKQ,EAAW,YACd,OAAOP,EACT,KAAKO,EAAW,SACd,OAAON,EACT,QACE,OAAO,IAAA,CAEb,CAEA,SAASQ,EAAeH,EAAoBI,EAAgC,CAC1E,OAAQJ,EAAA,CACN,KAAKC,EAAW,KACd,MAAO,iBACT,KAAKA,EAAW,YACd,OAAOG,IAAWC,EAAe,MAAQf,EAAO,MAAQ,WAC1D,KAAKW,EAAW,SACd,MAAO,YACT,QACE,MAAO,EAAA,CAEb,CASAK,EAAU,QAAU,CAClB,KAAM,IACR,EAEO,SAASA,EAAUlB,EAAoC,CAC5D,MAAMmB,EAAc,GAAGjB,EAAO,KAAK,iCAAiCF,EAAM,OAAS,KAAOE,EAAO,GAAK,EAAE,GAExG,OACEC,MAAC,OAAI,UAAWH,EAAM,YAAc,GAAKE,EAAO,iBAC9C,SAAAkB,EAAAA,KAAC,MAAA,CAAI,UAAW,GAAGD,CAAW,IAAIJ,EAAef,EAAM,OAAQA,EAAM,MAAM,CAAC,GAC1E,SAAA,CAAAG,EAAAA,IAACkB,EAAA,CACC,UAAW,yBAAyBnB,EAAO,GAAG,GAC9C,KAAMF,EAAM,OAAS,KAAOsB,EAAiB,MAAQA,EAAiB,SACtE,IAAKR,EAAQd,EAAM,MAAM,CAAA,CAAA,EAE3BG,MAAC,QAAK,UAAWD,EAAO,KACrB,SAAAS,EAAQX,EAAM,MAAM,CAAA,CACvB,CAAA,CAAA,CACF,CAAA,CACF,CAEJ"}
@@ -0,0 +1,2 @@
1
+ import{j as t,ad as D,T as _,ah as c,bi as S,be as h,bj as b,l as z,ar as I,R as q,aW as p,O as E,bk as K,n as U,bl as Q,g as G,L as J,au as R}from"./app-C56EnOMP.js";import{P as A,T as V}from"./p61U8kXz.chunk.js";import{D as X}from"./DxmeZ4C9.chunk.js";const P="search.filterActions";T.defaultProps={active:!1,className:""};function T(e){return t.jsxs("div",{className:`d-flex justify-content-between ${e.className}`,children:[e.active?t.jsx(D,{className:"text-secondary hover-text-underline cursor-pointer",onClick:e.onClickReset,children:t.jsx(_,{namespace:P,phrase:"reset"})}):t.jsx("div",{className:"invisible"}),t.jsx(D,{className:"info-link",onClick:e.onClickApply,children:t.jsx(_,{namespace:P,phrase:"apply"})})]})}const Y="_hideCaret_zki3y_1",Z="_filterMenu_zki3y_4",ee="_twoColumnsWidth_zki3y_8",te="_nestedCheckboxesWidth_zki3y_16",ie="_switchWidth_zki3y_19",ne="_moreFiltersWidth_zki3y_22",se="_svgContainer_zki3y_26",j={hideCaret:Y,filterMenu:Z,twoColumnsWidth:ee,nestedCheckboxesWidth:te,switchWidth:ie,moreFiltersWidth:ne,svgContainer:se};function ae(e){return h.displayTwoColumns(e)?j.twoColumnsWidth:e.id==="classification"?j.classificationWidth:h.displayTwoLayers(e)?j.nestedCheckboxesWidth:e.type==="switch"?j.switchWidth:""}H.defaultProps={hideCaret:!0};function H(e){const{state:s}=c.useContext(S),i=s[e.filter.id],n=e.filter.type==="dropdown",[x,g]=c.useState(e.filter.name),[C,l]=c.useState(!1),[d,f]=c.useState(i);c.useEffect(()=>{g(h.getLabel(e.filter,i)),f(i)},[e.filter,i==null?void 0:i.selection]);function F(m){f(m),n&&u(m)}function r(){var w;const m=(w=e.filter.options)==null?void 0:w.find(O=>O.default);f({active:!1,selection:m?[m]:[]})}function y(){u(),l(!1)}function u(m=d){h.applyFilter([e.filter],i,{[e.filter.id]:m},s.appLink)}function o(m){l(m),!(m||n)&&u()}const v=c.useMemo(()=>e.filter.customComponent?e.filter.customComponent:h.mapTypeToComponent(e.filter.type),[e.filter.type]),N="fw-semibold mx-1 btn d-flex align-items-center",a=e.hideCaret&&!n?j.hideCaret:"",k=ae(e.filter);return e.filter.type==="button"?t.jsx(v,{filter:e.filter,draftState:d,setDraftState:F}):t.jsxs(b,{onToggle:o,show:C,children:[t.jsxs(b.Toggle,{id:`filterButton-${e.filter.id}`,className:`${N} ${a}`,variant:i.active&&!n?"dark":"outline-dark",disabled:e.filter.disabled,children:[!!e.filter.icon&&t.jsx("div",{className:j.svgContainer,children:t.jsx(z,{svg:e.filter.icon})}),e.filter.labelPrefix," ",x]}),t.jsx(b.Menu,{children:t.jsxs("div",{className:`mx-1 ${j.filterMenu} ${k} ${n?"":"px-2 py-1"}`,children:[t.jsx(v,{filter:e.filter,draftState:d,setDraftState:F}),!n&&!e.filter.disabled&&t.jsx(T,{active:d.active,onClickReset:r,onClickApply:y})]})})]})}const le={getSetStateByKey(e,s,i){return n=>e(x=>{const g=I.isFunction(i)?i:I.useIdentity();return{...x,[s]:g(n,x)}})}};function M(e){return Object.keys(e).reduce((i,n)=>e[n].active?i+1:i,0)}function re(e){const{state:s}=c.useContext(S),i=s.moreFilters,[n,x]=c.useState(e.filter.name),[g,C]=c.useState(!1),[l,d]=c.useState(i),[f,F]=c.useState(M(i)),r=Object.keys(i).map(a=>`${a}:${i[a].active}`).join("-");c.useEffect(()=>{d(i),F(M(i))},[e.filter,r]),c.useEffect(()=>{x(f?`${e.filter.name} - ${f}`:e.filter.name)},[f]);function y(){const k=Object.keys(i).reduce((m,w)=>{var L;const $=(L=e.filter.filters.find(W=>W.id===w).options)==null?void 0:L.find(W=>W.default);return m[w]={active:!1,selection:$?[$]:[]},m},{});d(k)}function u(){v(),C(!1)}function o(a){C(a),!a&&v()}function v(){h.applyFilter(e.filter.filters,i,l,s.appLink)}const N=`fw-semibold ${j.hideCaret} mx-1 btn`;return t.jsxs(b,{onToggle:o,show:g,children:[t.jsx(b.Toggle,{id:e.filter.id,className:N,variant:f?"dark":"outline-dark",children:n}),t.jsx(b.Menu,{onClick:a=>a.stopPropagation(),children:t.jsxs("div",{className:`mx-1 ${j.moreFiltersWidth} ${e.filter.type!=="dropdown"?"px-2 py-1":""}`,children:[e.filter.filters.map(a=>{const k=a.customComponent?a.customComponent:h.mapTypeToComponent(a.type);return t.jsx("fieldset",{children:t.jsx(k,{filter:a,draftState:l[a.id],setDraftState:le.getSetStateByKey(d,a.id),isOnMoreFilters:!0})},a.id)}),t.jsx(T,{active:!!Object.keys(l).find(a=>l[a].active),onClickReset:y,onClickApply:u})]})})]})}const ce="_tagItem_165ya_1",B={tagItem:ce};function oe(e){var d,f,F;const{state:s}=q.useContext(S);if(!((d=e.filter)!=null&&d.id))return t.jsx(t.Fragment,{});const i=s[e.filter.id],{selection:n}=i,x=((F=(f=e.filter)==null?void 0:f.options)==null?void 0:F.filter(r=>!(n!=null&&n.find(y=>y.id===r.id))))??[];function g(r){let y=null,u=-1;if(n.find((o,v)=>{u>-1||o.id.toString()===r.id.toString()&&(u=v)}),u>=0){const o=[...n.slice(0,u),...n.slice(u+1)];y={active:!!o.length,selection:o}}else y={active:!0,selection:n.concat(r)};h.applyFilter([e.filter],i,{[e.filter.id]:y},s.appLink)}function C(){let r="mb-3";return l.length&&e.isFetching?r+=" mt-n1":!l.length&&!e.isFetching&&(r+=" d-none"),r}const l=[...n,...e.isFetching?[]:x];return t.jsx("div",{className:e.isFetching||l.length?"py-2":"",children:t.jsx("div",{className:C(),children:(!!l.length||e.isFetching)&&t.jsx(X,{collection:l,childComponent:r=>t.jsx(V,{...r,selectedItems:n,onClick:g}),staticChildren:e.isFetching?new Array(3).fill({component:()=>t.jsx(A,{tagClass:B.tagItem}),position:"end"}):[],partialLoadingComponent:()=>t.jsx("div",{className:"me-2",children:t.jsx(A,{tagClass:`${B.tagItem}`})})})})})}function de(e){const{state:s}=c.useContext(S),i=()=>{var g;const n=((g=p.getCurrentRoute().appLink)==null?void 0:g.params)??{},x=E.pick(n,["query",K]);U.trigger({...s.appLink,params:x})};return t.jsx(D,{onClick:i,className:`${e.alignLeft?"order-first":""} hover-text-underline cursor-pointer d-flex align-items-center mx-2`,children:t.jsx(_,{namespace:"search.resetButton",phrase:"reset"})})}const fe="_filtersContainer_1pjxc_9",ue={filtersContainer:fe};function ge(e){const{queryParams:s,appLink:i,hideHeading:n,isFetchingOptions:x,constantIndices:g=[]}=e,C=c.useMemo(()=>h.deriveInitialStateFromQuery(s,e.mainFilters,e.moreFilters,i),[s,x]),[l,d]=c.useReducer(Q,C);c.useEffect(()=>{E.isEqual(C,l)||(d({type:"update",payload:C}),e.analyticsOptions&&h.logFilterEvent(e.mainFilters,e.moreFilters,C,s.query,e.analyticsOptions))},[C]);const f=G.uniq([...h.getAppliedIndices(s,e._hasNewSearch),...g]),{mainFilters:F,moreFilters:r}=h.mixinDisabledFields(l,f,e.mainFilters,e.moreFilters),y=F.filter(o=>o.type!=="tag"),u=F.find(o=>o.type==="tag");return t.jsx(S.Provider,{value:{state:l,dispatch:d},children:t.jsx(J.Provider,{value:"search.searchFilters",children:t.jsxs("section",{children:[t.jsxs("div",{className:R("d-flex",!e.hideDivider&&"border-bottom pb-3 mb-3",e._hasNewSearch&&e.hideDivider&&"pb-3",e._hasNewSearch&&!e.hideDivider&&"border-gray-300"),children:[!n&&t.jsx("h2",{className:"h5 mb-0 d-inline-block pe-2 border-end d-flex align-items-center",children:t.jsx(_,{phrase:"heading"})}),t.jsxs("div",{className:R(`d-flex flex-wrap ${ue.filtersContainer}`,!n&&"ms-2"),children:[y.map(o=>t.jsx(H,{filter:o,hideCaret:e.hideCaret},o.id)),r&&t.jsx(re,{filter:r}),h.hasActiveFilters(s)&&!e.hideResetButton&&t.jsx(de,{mainFilters:e.mainFilters,moreFilters:e.moreFilters,currentQueryParam:s.query,analyticsOptions:e.analyticsOptions,alignLeft:e.alignResetButtonLeft})]})]}),t.jsx(oe,{filter:u,queryParams:s,isFetching:e.isFetchingOptions})]})})})}export{ge as S};
2
+ //# sourceMappingURL=DZ6Jrm23.chunk.js.map