@clickview/reports 0.72.0 → 0.73.0-rc.2

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 (418) 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 -3
  61. package/dist/css/1VpVng8x.chunk.css +1 -0
  62. package/dist/css/BDijM1kt.chunk.css +1 -0
  63. package/dist/css/BMPwvOki.chunk.css +1 -0
  64. package/dist/css/BNt45Kgy.chunk.css +1 -0
  65. package/dist/css/BSGhUWzl.chunk.css +1 -0
  66. package/dist/css/BZ3_uhDP.chunk.css +1 -0
  67. package/dist/css/BaadNO4A.chunk.css +1 -0
  68. package/dist/css/BdUNjJqp.chunk.css +1 -0
  69. package/dist/css/BdeI0FAV.chunk.css +1 -0
  70. package/dist/css/BxcMGr8Y.chunk.css +1 -0
  71. package/dist/css/ByuL_xKJ.chunk.css +1 -0
  72. package/dist/css/C-A0Pj_7.chunk.css +1 -0
  73. package/dist/css/C4jMfPWU.chunk.css +1 -0
  74. package/dist/css/C7XoyEPr.chunk.css +1 -0
  75. package/dist/css/C8sxda3R.chunk.css +1 -0
  76. package/dist/css/CD1qrI1T.chunk.css +1 -0
  77. package/dist/css/CFO--d_R.chunk.css +1 -0
  78. package/dist/css/CX9nw8t8.chunk.css +1 -0
  79. package/dist/css/C_qGRdC2.chunk.css +1 -0
  80. package/dist/css/CdC6ugQR.chunk.css +1 -0
  81. package/dist/css/ClRRGXPb.chunk.css +1 -0
  82. package/dist/css/Cr1bwtZG.chunk.css +1 -0
  83. package/dist/css/DBlPz5Fw.chunk.css +1 -0
  84. package/dist/css/DDnpOnVB.chunk.css +1 -0
  85. package/dist/css/DFZQCLLg.chunk.css +1 -0
  86. package/dist/css/DJwAbl6l.chunk.css +1 -0
  87. package/dist/css/DWjg_0sz.chunk.css +1 -0
  88. package/dist/css/DYV9jjVn.chunk.css +1 -0
  89. package/dist/css/Dgeh4AqU.chunk.css +9 -0
  90. package/dist/css/DlOtoSz0.chunk.css +1 -0
  91. package/dist/css/DlxOgKUu.chunk.css +1 -0
  92. package/dist/css/Dp3arkyy.chunk.css +1 -0
  93. package/dist/css/DwgaDUzz.chunk.css +1 -0
  94. package/dist/css/FPQ_LmXH.chunk.css +1 -0
  95. package/dist/css/H09rC9gw.chunk.css +1 -0
  96. package/dist/css/LAFr2dPT.chunk.css +1 -0
  97. package/dist/css/Pg1TlYG6.chunk.css +1 -0
  98. package/dist/css/PsQn3-kb.chunk.css +1 -0
  99. package/dist/css/alkEuPrr.chunk.css +1 -0
  100. package/dist/css/k4DgCj_g.chunk.css +1 -0
  101. package/dist/en.json +1 -0
  102. package/dist/scripts/0Uji-0Ig.chunk.js +2 -0
  103. package/dist/scripts/0Uji-0Ig.chunk.js.map +1 -0
  104. package/dist/scripts/1uUClbTi.chunk.js +2 -0
  105. package/dist/scripts/1uUClbTi.chunk.js.map +1 -0
  106. package/dist/scripts/5O9SdVRZ.chunk.js +2 -0
  107. package/dist/scripts/5O9SdVRZ.chunk.js.map +1 -0
  108. package/dist/scripts/9-ob4xwW.chunk.js +2 -0
  109. package/dist/scripts/9-ob4xwW.chunk.js.map +1 -0
  110. package/dist/scripts/B-0CRp8U.chunk.js +15 -0
  111. package/dist/scripts/B-0CRp8U.chunk.js.map +1 -0
  112. package/dist/scripts/B-M_POW7.chunk.js +2 -0
  113. package/dist/scripts/B-M_POW7.chunk.js.map +1 -0
  114. package/dist/scripts/B0HNQPjj.chunk.js +2 -0
  115. package/dist/scripts/B0HNQPjj.chunk.js.map +1 -0
  116. package/dist/scripts/B2kHUvkf.chunk.js +2 -0
  117. package/dist/scripts/B2kHUvkf.chunk.js.map +1 -0
  118. package/dist/scripts/BADbeO_o.chunk.js +2 -0
  119. package/dist/scripts/BADbeO_o.chunk.js.map +1 -0
  120. package/dist/scripts/BAR_V9AM.chunk.js +2 -0
  121. package/dist/scripts/BAR_V9AM.chunk.js.map +1 -0
  122. package/dist/scripts/BArX7fyb.chunk.js +2 -0
  123. package/dist/scripts/BArX7fyb.chunk.js.map +1 -0
  124. package/dist/scripts/BAt5WimN.chunk.js +2 -0
  125. package/dist/scripts/BAt5WimN.chunk.js.map +1 -0
  126. package/dist/scripts/BBKDp0Ea.chunk.js +4 -0
  127. package/dist/scripts/BBKDp0Ea.chunk.js.map +1 -0
  128. package/dist/scripts/BE4qMmvm.chunk.js +2 -0
  129. package/dist/scripts/BE4qMmvm.chunk.js.map +1 -0
  130. package/dist/scripts/BEjQ8YiC.chunk.js +10 -0
  131. package/dist/scripts/BEjQ8YiC.chunk.js.map +1 -0
  132. package/dist/scripts/BFH1W3y4.chunk.js +2 -0
  133. package/dist/scripts/BFH1W3y4.chunk.js.map +1 -0
  134. package/dist/scripts/BGYUqEPH.chunk.js +2 -0
  135. package/dist/scripts/BGYUqEPH.chunk.js.map +1 -0
  136. package/dist/scripts/BI4Pc5Qp.chunk.js +3 -0
  137. package/dist/scripts/BI4Pc5Qp.chunk.js.map +1 -0
  138. package/dist/scripts/BIcuRL8o.chunk.js +2 -0
  139. package/dist/scripts/BIcuRL8o.chunk.js.map +1 -0
  140. package/dist/scripts/BK5Lddwt.chunk.js +2 -0
  141. package/dist/scripts/BK5Lddwt.chunk.js.map +1 -0
  142. package/dist/scripts/BM1URibR.chunk.js +2 -0
  143. package/dist/scripts/BM1URibR.chunk.js.map +1 -0
  144. package/dist/scripts/BOenBxfx.chunk.js +34 -0
  145. package/dist/scripts/BOenBxfx.chunk.js.map +1 -0
  146. package/dist/scripts/BOoxRruH.chunk.js +2 -0
  147. package/dist/scripts/BOoxRruH.chunk.js.map +1 -0
  148. package/dist/scripts/BP4vyxCh.chunk.js +2 -0
  149. package/dist/scripts/BP4vyxCh.chunk.js.map +1 -0
  150. package/dist/scripts/BRR3J_Zy.chunk.js +2 -0
  151. package/dist/scripts/BRR3J_Zy.chunk.js.map +1 -0
  152. package/dist/scripts/BUJR0SBs.chunk.js +2 -0
  153. package/dist/scripts/BUJR0SBs.chunk.js.map +1 -0
  154. package/dist/scripts/BY58fjpA.chunk.js +2 -0
  155. package/dist/scripts/BY58fjpA.chunk.js.map +1 -0
  156. package/dist/scripts/BZV5U3ST.chunk.js +2 -0
  157. package/dist/scripts/BZV5U3ST.chunk.js.map +1 -0
  158. package/dist/scripts/BfaprYhg.chunk.js +2 -0
  159. package/dist/scripts/BfaprYhg.chunk.js.map +1 -0
  160. package/dist/scripts/Bfbk7XQF.chunk.js +2 -0
  161. package/dist/scripts/Bfbk7XQF.chunk.js.map +1 -0
  162. package/dist/scripts/BgBDu2hA.chunk.js +2 -0
  163. package/dist/scripts/BgBDu2hA.chunk.js.map +1 -0
  164. package/dist/scripts/BoLC4I50.chunk.js +2 -0
  165. package/dist/scripts/BoLC4I50.chunk.js.map +1 -0
  166. package/dist/scripts/BsXmQt2a.chunk.js +2 -0
  167. package/dist/scripts/BsXmQt2a.chunk.js.map +1 -0
  168. package/dist/scripts/ByUxUi78.chunk.js +2 -0
  169. package/dist/scripts/ByUxUi78.chunk.js.map +1 -0
  170. package/dist/scripts/BzFtDyVZ.chunk.js +2 -0
  171. package/dist/scripts/BzFtDyVZ.chunk.js.map +1 -0
  172. package/dist/scripts/C1TqvuUF.chunk.js +2 -0
  173. package/dist/scripts/C1TqvuUF.chunk.js.map +1 -0
  174. package/dist/scripts/C5lK-q9T.chunk.js +2 -0
  175. package/dist/scripts/C5lK-q9T.chunk.js.map +1 -0
  176. package/dist/scripts/C7IXStcD.chunk.js +2 -0
  177. package/dist/scripts/C7IXStcD.chunk.js.map +1 -0
  178. package/dist/scripts/CANX99lP.chunk.js +2 -0
  179. package/dist/scripts/CANX99lP.chunk.js.map +1 -0
  180. package/dist/scripts/CBjj_ih-.chunk.js +2 -0
  181. package/dist/scripts/CBjj_ih-.chunk.js.map +1 -0
  182. package/dist/scripts/CCIDM29p.chunk.js +2 -0
  183. package/dist/scripts/CCIDM29p.chunk.js.map +1 -0
  184. package/dist/scripts/CFjwQ5Sg.chunk.js +2 -0
  185. package/dist/scripts/CFjwQ5Sg.chunk.js.map +1 -0
  186. package/dist/scripts/CGbmnb6g.chunk.js +380 -0
  187. package/dist/scripts/CGbmnb6g.chunk.js.map +1 -0
  188. package/dist/scripts/CSd_qFwj.chunk.js +2 -0
  189. package/dist/scripts/CSd_qFwj.chunk.js.map +1 -0
  190. package/dist/scripts/CW7x8M-z.chunk.js +2 -0
  191. package/dist/scripts/CW7x8M-z.chunk.js.map +1 -0
  192. package/dist/scripts/CX5q-0jT.chunk.js +2 -0
  193. package/dist/scripts/CX5q-0jT.chunk.js.map +1 -0
  194. package/dist/scripts/CZHffw7D.chunk.js +2 -0
  195. package/dist/scripts/CZHffw7D.chunk.js.map +1 -0
  196. package/dist/scripts/C_Famtl1.chunk.js +2 -0
  197. package/dist/scripts/C_Famtl1.chunk.js.map +1 -0
  198. package/dist/scripts/C_TaaD_7.chunk.js +2 -0
  199. package/dist/scripts/C_TaaD_7.chunk.js.map +1 -0
  200. package/dist/scripts/C_zppm7j.chunk.js +2 -0
  201. package/dist/scripts/C_zppm7j.chunk.js.map +1 -0
  202. package/dist/scripts/CbrfSCTb.chunk.js +2 -0
  203. package/dist/scripts/CbrfSCTb.chunk.js.map +1 -0
  204. package/dist/scripts/CjL3q_zy.chunk.js +6 -0
  205. package/dist/scripts/CjL3q_zy.chunk.js.map +1 -0
  206. package/dist/scripts/CjQHXyx0.chunk.js +2 -0
  207. package/dist/scripts/CjQHXyx0.chunk.js.map +1 -0
  208. package/dist/scripts/Cmu1J2M7.chunk.js +262 -0
  209. package/dist/scripts/Cmu1J2M7.chunk.js.map +1 -0
  210. package/dist/scripts/Co9J1lM_.chunk.js +2 -0
  211. package/dist/scripts/Co9J1lM_.chunk.js.map +1 -0
  212. package/dist/scripts/Cq8XHkfC.chunk.js +2 -0
  213. package/dist/scripts/Cq8XHkfC.chunk.js.map +1 -0
  214. package/dist/scripts/Crxtdvtr.chunk.js +2 -0
  215. package/dist/scripts/Crxtdvtr.chunk.js.map +1 -0
  216. package/dist/scripts/CvkQEqoz.chunk.js +2 -0
  217. package/dist/scripts/CvkQEqoz.chunk.js.map +1 -0
  218. package/dist/scripts/DC24UA5G.chunk.js +2 -0
  219. package/dist/scripts/DC24UA5G.chunk.js.map +1 -0
  220. package/dist/scripts/DDQPxnFm.chunk.js +2 -0
  221. package/dist/scripts/DDQPxnFm.chunk.js.map +1 -0
  222. package/dist/scripts/DGmD-zcu.chunk.js +3 -0
  223. package/dist/scripts/DGmD-zcu.chunk.js.map +1 -0
  224. package/dist/scripts/DIqHgqYU.chunk.js +42 -0
  225. package/dist/scripts/DIqHgqYU.chunk.js.map +1 -0
  226. package/dist/scripts/DLNH1FET.chunk.js +2 -0
  227. package/dist/scripts/DLNH1FET.chunk.js.map +1 -0
  228. package/dist/scripts/DREQwdto.chunk.js +2 -0
  229. package/dist/scripts/DREQwdto.chunk.js.map +1 -0
  230. package/dist/scripts/DSJfyygS.chunk.js +2 -0
  231. package/dist/scripts/DSJfyygS.chunk.js.map +1 -0
  232. package/dist/scripts/DUPqT4A_.chunk.js +2 -0
  233. package/dist/scripts/DUPqT4A_.chunk.js.map +1 -0
  234. package/dist/scripts/DZWKI51S.chunk.js +2 -0
  235. package/dist/scripts/DZWKI51S.chunk.js.map +1 -0
  236. package/dist/scripts/DaLaLgLY.chunk.js +2 -0
  237. package/dist/scripts/DaLaLgLY.chunk.js.map +1 -0
  238. package/dist/scripts/DcnG6LJL.chunk.js +2 -0
  239. package/dist/scripts/DcnG6LJL.chunk.js.map +1 -0
  240. package/dist/scripts/DdCE2h3h.chunk.js +2 -0
  241. package/dist/scripts/DdCE2h3h.chunk.js.map +1 -0
  242. package/dist/scripts/DdaZekkP.chunk.js +2 -0
  243. package/dist/scripts/DdaZekkP.chunk.js.map +1 -0
  244. package/dist/scripts/DkJdzeV5.chunk.js +2 -0
  245. package/dist/scripts/DkJdzeV5.chunk.js.map +1 -0
  246. package/dist/scripts/DlVmB7me.chunk.js +4 -0
  247. package/dist/scripts/DlVmB7me.chunk.js.map +1 -0
  248. package/dist/scripts/Dm6PeyeG.chunk.js +2 -0
  249. package/dist/scripts/Dm6PeyeG.chunk.js.map +1 -0
  250. package/dist/scripts/DqMufS1U.chunk.js +2 -0
  251. package/dist/scripts/DqMufS1U.chunk.js.map +1 -0
  252. package/dist/scripts/DtMtah8Q.chunk.js +2 -0
  253. package/dist/scripts/DtMtah8Q.chunk.js.map +1 -0
  254. package/dist/scripts/DwxW4_xW.chunk.js +2 -0
  255. package/dist/scripts/DwxW4_xW.chunk.js.map +1 -0
  256. package/dist/scripts/Dx4VsESo.chunk.js +2 -0
  257. package/dist/scripts/Dx4VsESo.chunk.js.map +1 -0
  258. package/dist/scripts/DyhdHLt7.chunk.js +2 -0
  259. package/dist/scripts/DyhdHLt7.chunk.js.map +1 -0
  260. package/dist/scripts/EpoqEdEt.chunk.js +2 -0
  261. package/dist/scripts/EpoqEdEt.chunk.js.map +1 -0
  262. package/dist/scripts/Etwv4iY4.chunk.js +2 -0
  263. package/dist/scripts/Etwv4iY4.chunk.js.map +1 -0
  264. package/dist/scripts/GlEgn_rx.chunk.js +2 -0
  265. package/dist/scripts/GlEgn_rx.chunk.js.map +1 -0
  266. package/dist/scripts/H-GxGp0N.chunk.js +2 -0
  267. package/dist/scripts/H-GxGp0N.chunk.js.map +1 -0
  268. package/dist/scripts/HFbpCC17.chunk.js +2 -0
  269. package/dist/scripts/HFbpCC17.chunk.js.map +1 -0
  270. package/dist/scripts/HVSLS_Hw.chunk.js +2 -0
  271. package/dist/scripts/HVSLS_Hw.chunk.js.map +1 -0
  272. package/dist/scripts/Hdw9KpzY.chunk.js +10 -0
  273. package/dist/scripts/Hdw9KpzY.chunk.js.map +1 -0
  274. package/dist/scripts/L-FEMlca.chunk.js +2 -0
  275. package/dist/scripts/L-FEMlca.chunk.js.map +1 -0
  276. package/dist/scripts/OUlVmzyS.chunk.js +2 -0
  277. package/dist/scripts/OUlVmzyS.chunk.js.map +1 -0
  278. package/dist/scripts/SdlfGvLH.chunk.js +2 -0
  279. package/dist/scripts/SdlfGvLH.chunk.js.map +1 -0
  280. package/dist/scripts/Us8IAQKV.chunk.js +2 -0
  281. package/dist/scripts/Us8IAQKV.chunk.js.map +1 -0
  282. package/dist/scripts/ZPrCrk06.chunk.js +2 -0
  283. package/dist/scripts/ZPrCrk06.chunk.js.map +1 -0
  284. package/dist/scripts/app-CQEXKRTo.js +228 -0
  285. package/dist/scripts/app-CQEXKRTo.js.map +1 -0
  286. package/dist/scripts/bDb9_r6g.chunk.js +8 -0
  287. package/dist/scripts/bDb9_r6g.chunk.js.map +1 -0
  288. package/dist/scripts/bfga3fp9.chunk.js +6 -0
  289. package/dist/scripts/bfga3fp9.chunk.js.map +1 -0
  290. package/dist/scripts/ckwYvamH.chunk.js +2 -0
  291. package/dist/scripts/ckwYvamH.chunk.js.map +1 -0
  292. package/dist/scripts/gVHcxSzg.chunk.js +2 -0
  293. package/dist/scripts/gVHcxSzg.chunk.js.map +1 -0
  294. package/dist/scripts/j7UObMj5.chunk.js +3 -0
  295. package/dist/scripts/j7UObMj5.chunk.js.map +1 -0
  296. package/dist/scripts/jNUTSO6y.chunk.js +2 -0
  297. package/dist/scripts/jNUTSO6y.chunk.js.map +1 -0
  298. package/dist/scripts/mLe4zPMQ.chunk.js +2 -0
  299. package/dist/scripts/mLe4zPMQ.chunk.js.map +1 -0
  300. package/dist/scripts/oXJu4dT2.chunk.js +2 -0
  301. package/dist/scripts/oXJu4dT2.chunk.js.map +1 -0
  302. package/dist/scripts/pW31gVxo.chunk.js +2 -0
  303. package/dist/scripts/pW31gVxo.chunk.js.map +1 -0
  304. package/dist/scripts/pmJce9de.chunk.js +2 -0
  305. package/dist/scripts/pmJce9de.chunk.js.map +1 -0
  306. package/dist/scripts/rO0zPagv.chunk.js +2 -0
  307. package/dist/scripts/rO0zPagv.chunk.js.map +1 -0
  308. package/dist/scripts/rf9OuobP.chunk.js +2 -0
  309. package/dist/scripts/rf9OuobP.chunk.js.map +1 -0
  310. package/dist/scripts/sBa2VMAv.chunk.js +2 -0
  311. package/dist/scripts/sBa2VMAv.chunk.js.map +1 -0
  312. package/dist/scripts/sFV5nxD4.chunk.js +2 -0
  313. package/dist/scripts/sFV5nxD4.chunk.js.map +1 -0
  314. package/dist/scripts/vDUMsOFT.chunk.js +2 -0
  315. package/dist/scripts/vDUMsOFT.chunk.js.map +1 -0
  316. package/dist/scripts/z0Is6h8v.chunk.js +2 -0
  317. package/dist/scripts/z0Is6h8v.chunk.js.map +1 -0
  318. package/dist/scripts/zVke3nt7.chunk.js +3 -0
  319. package/dist/scripts/zVke3nt7.chunk.js.map +1 -0
  320. package/package.json +5 -3
  321. package/typings/utils/env.d.ts +3 -0
  322. package/typings/utils/imports.d.ts +1 -1
  323. package/dist/css/1103-reports-d3d5cc00db.chunk.css +0 -31
  324. package/dist/css/1456-reports-4a5871a275.chunk.css +0 -9
  325. package/dist/css/1648-reports-012456ba48.chunk.css +0 -2
  326. package/dist/css/209-reports-c33663a53e.chunk.css +0 -11
  327. package/dist/css/2150-reports-84ec0e9770.chunk.css +0 -4
  328. package/dist/css/2217-reports-74dec0a3fe.chunk.css +0 -32
  329. package/dist/css/2997-reports-e08318f14b.chunk.css +0 -9
  330. package/dist/css/2999-reports-f190450b10.chunk.css +0 -60
  331. package/dist/css/4582-reports-d3d5cc00db.chunk.css +0 -31
  332. package/dist/css/5304-reports-22c2d8d635.chunk.css +0 -9
  333. package/dist/css/6007-reports-5ba77c55a3.chunk.css +0 -8
  334. package/dist/css/6031-reports-d558076846.chunk.css +0 -6
  335. package/dist/css/6356-reports-8c5b220bf6.chunk.css +0 -1
  336. package/dist/css/6811-reports-baf2e97e71.chunk.css +0 -35
  337. package/dist/css/7723-reports-8c6d3c414b.chunk.css +0 -4
  338. package/dist/css/7747-reports-2d9e191b5a.chunk.css +0 -12
  339. package/dist/css/8087-reports-cfe23ba648.chunk.css +0 -10
  340. package/dist/css/8294-reports-c797263ac2.chunk.css +0 -1
  341. package/dist/css/8418-reports-0ada3f3ce2.chunk.css +0 -29
  342. package/dist/css/8450-reports-06493dfde5.chunk.css +0 -9
  343. package/dist/css/8622-reports-9e8970cc7f.chunk.css +0 -8
  344. package/dist/css/8839-reports-8e46644943.chunk.css +0 -1
  345. package/dist/css/8989-reports-92b4f1dde8.chunk.css +0 -8
  346. package/dist/css/9059-reports-a2ac630ebc.chunk.css +0 -35
  347. package/dist/css/9285-reports-5b9af8380f.chunk.css +0 -13
  348. package/dist/css/9661-reports-7435e94a85.chunk.css +0 -4
  349. package/dist/css/9822-reports-a1db1900c7.chunk.css +0 -8
  350. package/dist/css/9949-reports-f22fa2b407.chunk.css +0 -15
  351. package/dist/css/reports-app-b4c4ec5632.css +0 -32
  352. package/dist/languages/en.json +0 -1
  353. package/dist/scripts/1103-d77d388f5b-reports.chunk.js +0 -1
  354. package/dist/scripts/1177-7cf7817e74-reports.chunk.js +0 -1
  355. package/dist/scripts/1456-b7f437ef87-reports.chunk.js +0 -1
  356. package/dist/scripts/1648-e892604f5a-reports.chunk.js +0 -1
  357. package/dist/scripts/1934-ca8497c768-reports.chunk.js +0 -2
  358. package/dist/scripts/1934-ca8497c768-reports.chunk.js.LICENSE.txt +0 -9
  359. package/dist/scripts/2087-e0ef668e1f-reports.chunk.js +0 -1
  360. package/dist/scripts/209-72e77f375e-reports.chunk.js +0 -1
  361. package/dist/scripts/2150-4e9e1fb433-reports.chunk.js +0 -1
  362. package/dist/scripts/2217-15fa35197a-reports.chunk.js +0 -1
  363. package/dist/scripts/2476-a700f69dc4-reports.chunk.js +0 -1
  364. package/dist/scripts/2539-04dfb4f4f1-reports.chunk.js +0 -1
  365. package/dist/scripts/2997-444b5bdaf0-reports.chunk.js +0 -1
  366. package/dist/scripts/2999-f5ee243b25-reports.chunk.js +0 -2
  367. package/dist/scripts/2999-f5ee243b25-reports.chunk.js.LICENSE.txt +0 -1
  368. package/dist/scripts/312-8b006e92ff-reports.chunk.js +0 -1
  369. package/dist/scripts/4234-e3c04f41eb-reports.chunk.js +0 -1
  370. package/dist/scripts/4372-26474a3318-reports.chunk.js +0 -1
  371. package/dist/scripts/438-b444dfb8c6-reports.chunk.js +0 -1
  372. package/dist/scripts/4582-230f130f41-reports.chunk.js +0 -1
  373. package/dist/scripts/4752-db4247883d-reports.chunk.js +0 -2
  374. package/dist/scripts/4752-db4247883d-reports.chunk.js.LICENSE.txt +0 -118
  375. package/dist/scripts/4979-7e14b09f33-reports.chunk.js +0 -1
  376. package/dist/scripts/5051-ff0ec9348d-reports.chunk.js +0 -1
  377. package/dist/scripts/5091-ddd6f61b55-reports.chunk.js +0 -1
  378. package/dist/scripts/5173-cce3b37672-reports.chunk.js +0 -1
  379. package/dist/scripts/5177-a7372e7b8d-reports.chunk.js +0 -1
  380. package/dist/scripts/5304-d5674b32b4-reports.chunk.js +0 -1
  381. package/dist/scripts/5802-2125536755-reports.chunk.js +0 -1
  382. package/dist/scripts/6007-42edca6bba-reports.chunk.js +0 -1
  383. package/dist/scripts/6031-b1c60cc409-reports.chunk.js +0 -1
  384. package/dist/scripts/6081-2bbda6cac3-reports.chunk.js +0 -1
  385. package/dist/scripts/6180-bdb237ffbe-reports.chunk.js +0 -2
  386. package/dist/scripts/6180-bdb237ffbe-reports.chunk.js.LICENSE.txt +0 -1
  387. package/dist/scripts/6198-189ddde870-reports.chunk.js +0 -1
  388. package/dist/scripts/6356-a1b313c73e-reports.chunk.js +0 -1
  389. package/dist/scripts/645-e8b19128e5-reports.chunk.js +0 -1
  390. package/dist/scripts/6545-eadce8e749-reports.chunk.js +0 -1
  391. package/dist/scripts/6811-40ded4c089-reports.chunk.js +0 -1
  392. package/dist/scripts/7238-de5ef0ebfb-reports.chunk.js +0 -1
  393. package/dist/scripts/7562-748e60c3fc-reports.chunk.js +0 -1
  394. package/dist/scripts/7709-82750ee317-reports.chunk.js +0 -1
  395. package/dist/scripts/7723-1799f5aa26-reports.chunk.js +0 -1
  396. package/dist/scripts/7747-bc33e51d7b-reports.chunk.js +0 -2
  397. package/dist/scripts/7747-bc33e51d7b-reports.chunk.js.LICENSE.txt +0 -1
  398. package/dist/scripts/7925-c6c532c9c4-reports.chunk.js +0 -1
  399. package/dist/scripts/8087-1d9e9701e5-reports.chunk.js +0 -1
  400. package/dist/scripts/8393-c37cc22b4c-reports.chunk.js +0 -1
  401. package/dist/scripts/8418-9f96caf039-reports.chunk.js +0 -1
  402. package/dist/scripts/8450-f2d5d99614-reports.chunk.js +0 -1
  403. package/dist/scripts/8591-4811082ab0-reports.chunk.js +0 -1
  404. package/dist/scripts/8622-a422eff0c4-reports.chunk.js +0 -1
  405. package/dist/scripts/8839-711793a97f-reports.chunk.js +0 -1
  406. package/dist/scripts/8989-ca5cab7f45-reports.chunk.js +0 -1
  407. package/dist/scripts/9059-b2dcf3cdb2-reports.chunk.js +0 -1
  408. package/dist/scripts/9162-7ffc692736-reports.chunk.js +0 -1
  409. package/dist/scripts/9285-ecddd01efb-reports.chunk.js +0 -1
  410. package/dist/scripts/9590-41bb23ae71-reports.chunk.js +0 -1
  411. package/dist/scripts/9647-f0c111d3f0-reports.chunk.js +0 -1
  412. package/dist/scripts/9661-2dee4c3417-reports.chunk.js +0 -1
  413. package/dist/scripts/9822-1b202f9d49-reports.chunk.js +0 -1
  414. package/dist/scripts/9895-3b3feb12b9-reports.chunk.js +0 -1
  415. package/dist/scripts/9949-63e32c6733-reports.chunk.js +0 -1
  416. package/dist/scripts/bundle-8754f0e6b8.min.js +0 -2
  417. package/dist/scripts/bundle-8754f0e6b8.min.js.LICENSE.txt +0 -108
  418. package/dist/scripts/polyfills-3db3f009d4.min.js +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"9-ob4xwW.chunk.js","sources":["../../../../libs/shared/src/hooks/UseIsComponentMounted.ts","../../../../libs/shared/src/hooks/UseHover.ts"],"sourcesContent":["import React from 'react';\n\nexport const useIsComponentMounted = () => {\n const isMounted = React.useRef(true);\n\n React.useEffect(() => {\n return () => { isMounted.current = false; };\n }, []);\n\n return isMounted;\n};","import * as React from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { useIsComponentMounted } from 'libs/shared/hooks/UseIsComponentMounted';\n\nconst DEFAULT_HOVER_DELAY = 275;\nconst MOUSE_MOVE_THRESHOLD = 5; // value is in pixels\n\ninterface HoverOptions {\n /**\n * Classes to be applied to the target element on hover. Useful if you want to style the element on hover\n * after a delay (controlled by the `timeout` option below)\n */\n className?: string;\n\n /**\n * Style attribute to be applied to the target element on hover. Should only be used \n */\n style?: HashObject;\n\n /**\n * A delay between when the user actually hovers on the element, and when the hook returns `true` for `isHovering`.\n * This can be used to determine whether a user has actually intended for a hover event on an element to be\n * triggered or not. Defaults to 0.\n */\n delay?: number;\n}\n\nconst defaultOptions: HoverOptions = {\n className: '',\n delay: 0,\n style: null\n};\n\ninterface MousePosition {\n screenX: number;\n screenY: number;\n}\n\nconst defaultHoverState: MousePosition = {\n screenX: 0,\n screenY: 0\n};\n\nfunction setHoveringStyles<T extends HTMLElement>(\n ref: React.MutableRefObject<T>,\n options: HoverOptions\n): void {\n if (!ref.current)\n return;\n\n if (options.className)\n ref.current.classList?.add(options.className);\n\n if (options.style) {\n Object.keys(options.style).forEach((styleName: any) => {\n ref.current.style[styleName] = options.style[styleName];\n });\n }\n}\n\nfunction unSetHoveringStyles<T extends HTMLElement>(\n ref: React.MutableRefObject<T>,\n options: HoverOptions\n): void {\n if (!ref.current)\n return;\n\n if (options.className)\n ref.current.classList?.remove(options.className);\n\n if (options.style) {\n Object.keys(options.style).forEach((styleName: any) => {\n ref.current.style[styleName] = null;\n });\n }\n}\n\nfunction hasMouseMoved(prev: MousePosition, current: MousePosition): boolean {\n return Math.abs(prev.screenX - current.screenX) > MOUSE_MOVE_THRESHOLD ||\n Math.abs(prev.screenY - current.screenY) > MOUSE_MOVE_THRESHOLD;\n}\n\n/**\n * This hook detects hover events on an element.\n * This should only be used where CSS hover events won't suffice for what you are trying to achieve.\n * It will trigger after the delay regardless of pointer movement within the container, if you want\n * it to trigger only after the pointer has stopped moving, consider the `useHoverIntent` hook.\n */\nexport function useHover<T extends HTMLElement>(\n options: HoverOptions = defaultOptions\n): [ React.MutableRefObject<T>, boolean ] {\n const isMounted = useIsComponentMounted();\n const [ cachedOptions, setCachedOptions ] = React.useState(options);\n const [ isHovering, setIsHovering ] = React.useState(false);\n\n const ref = React.useRef<T>(null);\n\n React.useEffect(() => {\n if (ObjectHelper.isEqual(options, cachedOptions))\n return;\n\n setCachedOptions(options);\n }, [options]);\n\n const triggerHover = FunctionHelper.throttle(() => {\n setHoveringStyles(ref, cachedOptions);\n if (isMounted.current)\n setIsHovering(true);\n }, cachedOptions.delay, { leading: false });\n\n const handleMouseOut = () => {\n if (FunctionHelper.isFunction(triggerHover.cancel))\n triggerHover.cancel();\n\n unSetHoveringStyles(ref, cachedOptions);\n\n if (isMounted.current)\n setIsHovering(false);\n };\n\n React.useLayoutEffect(() => {\n const node = ref.current;\n\n if (node) {\n node.addEventListener('mouseenter', triggerHover);\n node.addEventListener('mouseleave', handleMouseOut);\n\n return () => {\n node.removeEventListener('mouseenter', triggerHover);\n node.removeEventListener('mouseleave', handleMouseOut);\n };\n }\n }, [ ref.current, cachedOptions ]);\n\n return [ ref, isHovering ];\n}\n\n\n/**\n * This hook detects hover events on an element with intent.\n * This should only be used where CSS hover events won't suffice for what you are trying to achieve.\n * It will trigger after the pointer has stopped moving and the delay has elapsed, if you want it to trigger\n * regardless of pointer movement within the container, consider the `useHover` hook`.\n */\nexport function useHoverIntent<T extends HTMLElement>(options: HoverOptions): [ React.MutableRefObject<T>, boolean ] {\n const [ cachedOptions, setCachedOptions ] = React.useState(options);\n\n /**\n * Using refs for frequently updated state in order to not trigger react rendering\n */\n const mousePosition = React.useRef<MousePosition>({ ...defaultHoverState });\n const isInside = React.useRef<boolean>(false);\n const timeout = React.useRef<number>(0);\n\n const ref = React.useRef<T>(null);\n const [ isHovering, setIsHovering ] = React.useState(false);\n\n React.useEffect(() => {\n if (ObjectHelper.isEqual(options, cachedOptions))\n return;\n\n setCachedOptions(options);\n }, [options]);\n\n function localClearTimeout(): void {\n if (!timeout.current)\n return;\n\n window.clearTimeout(timeout.current);\n timeout.current = 0;\n }\n\n function localSetTimeout(fn: () => void, delay: number): void {\n if (timeout.current)\n return;\n\n timeout.current = window.setTimeout(fn, delay);\n }\n\n function onMouseEnter(): void {\n isInside.current = true;\n }\n\n function onMouseMove(event: MouseEvent): void {\n if (!isInside.current)\n return;\n\n const prev = { ...mousePosition.current };\n mousePosition.current.screenX = event.screenX;\n mousePosition.current.screenY = event.screenY;\n\n if (hasMouseMoved(prev, event))\n localClearTimeout();\n \n localSetTimeout(() => {\n setHoveringStyles(ref, cachedOptions);\n setIsHovering(true);\n }, cachedOptions.delay || DEFAULT_HOVER_DELAY);\n }\n\n function onMouseLeave(): void {\n localClearTimeout();\n unSetHoveringStyles(ref, cachedOptions);\n isInside.current = false;\n setIsHovering(false);\n }\n\n React.useLayoutEffect(() => {\n if (!ref.current)\n return;\n\n const throttledMouseMove = FunctionHelper.throttle(onMouseMove, 25, { leading: false });\n ref.current.addEventListener('mouseenter', onMouseEnter);\n ref.current.addEventListener('mousemove', throttledMouseMove);\n ref.current.addEventListener('mouseleave', onMouseLeave);\n \n return () => {\n if (!ref.current)\n return;\n ref.current.removeEventListener('mouseenter', onMouseEnter);\n ref.current.removeEventListener('mousemove', throttledMouseMove);\n ref.current.removeEventListener('mouseleave', onMouseLeave);\n };\n }, [ ref.current, cachedOptions ]);\n \n return [ ref, isHovering ];\n}"],"names":["useIsComponentMounted","isMounted","React","DEFAULT_HOVER_DELAY","MOUSE_MOVE_THRESHOLD","defaultOptions","defaultHoverState","setHoveringStyles","ref","options","_a","styleName","unSetHoveringStyles","hasMouseMoved","prev","current","useHover","cachedOptions","setCachedOptions","React.useState","isHovering","setIsHovering","React.useRef","React.useEffect","ObjectHelper","triggerHover","FunctionHelper","handleMouseOut","React.useLayoutEffect","node","useHoverIntent","mousePosition","isInside","timeout","localClearTimeout","localSetTimeout","fn","delay","onMouseEnter","onMouseMove","event","onMouseLeave","throttledMouseMove"],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import{j as e,i as o,a5 as m,h as d,a0 as u,bR as x,bS as p}from"./app-CQEXKRTo.js";import{B as b,a as f}from"./rO0zPagv.chunk.js";const S="_pillTabSelector_a6f6x_1",j="_tab_a6f6x_4",k="_minWidth_a6f6x_21",y="_radiusSmall_a6f6x_24",_="_tabLink_a6f6x_35",n={pillTabSelector:S,tab:j,minWidth:k,radiusSmall:y,tabLink:_};function c(t){return e.jsxs(e.Fragment,{children:[!!t.tab.svg&&e.jsx("div",{className:t.tab.name?"pe-1":"",children:e.jsx(d,{svg:t.tab.svg})}),t.tab.name,typeof t.tab.count=="number"&&e.jsx("div",{className:"ps-2",children:e.jsx(b,{type:f.Count,data:t.tab.count})})]})}r.defaultProps={borderRadius:"lg"};function r(t){function s(a){a.active||!a.onSelect||(a.onSelect(),a.analyticsData&&a.analyticsOptions&&u.logUserAction(a.analyticsData,a.analyticsOptions))}return e.jsx("nav",{className:t.className??"",ref:t.containerRef,children:e.jsx("ul",{className:`
2
+ list-unstyled d-inline-block m-0 ${n.pillTabSelector}
3
+ ${t.borderRadius?n.radiusSmall:""}
4
+ ${t.listClassName}
5
+ `,children:t.tabs.map((a,i)=>e.jsx("li",{className:`
6
+ p-0 ${n.tab} ${a.active?"btn btn-dark":"btn btn-outline-dark"}
7
+ ${a.name?n.minWidth:""} ${a.className}
8
+ `,children:a.appLink?e.jsx(o,{appLink:a.appLink,analyticsData:a.analyticsData,analyticsOptions:a.analyticsOptions,className:`
9
+ cursor-pointer d-flex align-items-center justify-content-center
10
+ text-decoration-none text-reset px-2 text-nowrap ${n.tabLink}
11
+ `,children:e.jsx(c,{tab:a})}):e.jsx(m,{className:`
12
+ cursor-pointer d-flex align-items-center justify-content-center
13
+ text-decoration-none text-reset px-2 text-nowrap ${n.tabLink}
14
+ `,onClick:()=>s(a),children:e.jsx(c,{tab:a})})},i))})})}function v(t){const s=t.items.map(a=>{var i,l;return{name:a.label,onSelect:()=>x.trigger(a.appLink),active:a.appLink.action===((l=(i=p.getCurrentRoute())==null?void 0:i.appLink)==null?void 0:l.action)}});return e.jsx(r,{className:"pb-3",tabs:s})}export{v as S};
15
+ //# sourceMappingURL=B-0CRp8U.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"B-0CRp8U.chunk.js","sources":["../../../../libs/shared/src/components/pill-tab-selector/PillTabSelector.tsx","../../src/shared/components/sub-nav/SubNav.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Badge, BadgeType } from 'libs/shared/components/badges/Badge';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { SvgIcon } from 'libs/shared/utils/SvgHelper';\n\nimport { SvgContainer } from '../svg-container/SvgContainer';\n\nimport styles from './pill-tab-selector.module.scss';\n\ninterface TabContentsProps {\n tab: PillTab;\n}\n\nfunction TabContents(props: TabContentsProps): JSX.Element {\n return (\n <>\n {!!props.tab.svg && (\n <div className={props.tab.name ? 'pe-1' : ''}>\n <SvgContainer svg={props.tab.svg} />\n </div>\n )}\n\n {props.tab.name}\n\n {typeof (props.tab.count) === 'number' && (\n <div className='ps-2'>\n <Badge type={BadgeType.Count} data={props.tab.count} />\n </div>\n )}\n </>\n );\n}\n\nexport interface PillTab {\n name: string;\n active: boolean;\n svg?: SvgIcon;\n\n className?: string;\n\n appLink?: Core.AppLink;\n onSelect?: () => void;\n\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n\n count?: number;\n}\n\ninterface PillTabSelectorProps {\n tabs: PillTab[];\n containerRef?: (el: HTMLElement) => void;\n listClassName?: string;\n className?: string;\n borderRadius?: 'sm' | 'lg'\n}\n\nPillTabSelector.defaultProps = {\n borderRadius: 'lg'\n};\n\nexport function PillTabSelector(props: PillTabSelectorProps): JSX.Element {\n function onSelectTab(tab: PillTab): void {\n if (tab.active || !tab.onSelect)\n return;\n\n tab.onSelect();\n\n if (tab.analyticsData && tab.analyticsOptions)\n AnalyticsHelper.logUserAction(tab.analyticsData, tab.analyticsOptions);\n }\n\n return (\n <nav className={props.className ?? ''} ref={props.containerRef}>\n <ul className={`\n list-unstyled d-inline-block m-0 ${styles.pillTabSelector}\n ${props.borderRadius ? styles.radiusSmall : ''}\n ${props.listClassName}\n `}>\n {props.tabs.map((tab, index) => {\n return (\n <li\n className={`\n p-0 ${styles.tab} ${tab.active ? 'btn btn-dark' : 'btn btn-outline-dark'}\n ${tab.name ? styles.minWidth : ''} ${tab.className}\n `}\n key={index}\n >\n {tab.appLink ? (\n <AppLink\n appLink={tab.appLink}\n analyticsData={tab.analyticsData}\n analyticsOptions={tab.analyticsOptions}\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ${styles.tabLink}\n `}\n >\n <TabContents tab={tab} />\n </AppLink>\n ) : (\n <DivButton\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ${styles.tabLink}\n `}\n onClick={() => onSelectTab(tab)}\n >\n <TabContents tab={tab} />\n </DivButton>\n )}\n </li>\n );\n })}\n </ul>\n </nav>\n );\n}\n","import React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { PillTab, PillTabSelector } from 'libs/shared/components/pill-tab-selector/PillTabSelector';\nimport { ContextService } from 'libs/shared/services/ContextService';\nexport interface SubNavItem {\n label: string;\n appLink: Core.AppLink;\n}\n\ninterface SubNavProps {\n items: SubNavItem[];\n}\n\nexport function SubNav(props: SubNavProps): JSX.Element {\n const tabs: PillTab[] = props.items.map(i => ({\n name: i.label,\n onSelect: () => Core.AppLinkHelper.trigger(i.appLink),\n active: i.appLink.action === ContextService.getCurrentRoute()?.appLink?.action\n }));\n\n return <PillTabSelector className='pb-3' tabs={tabs} />;\n}"],"names":["TabContents","props","jsxs","Fragment","jsx","SvgContainer","Badge","BadgeType","PillTabSelector","onSelectTab","tab","AnalyticsHelper","styles","index","AppLink","DivButton","SubNav","tabs","i","Core.AppLinkHelper","_b","_a","ContextService"],"mappings":"6TAqBA,SAASA,EAAYC,EAAsC,CACzD,OACEC,EAAAA,KAAAC,WAAA,CACG,SAAA,CAAA,CAAC,CAACF,EAAM,IAAI,KACXG,EAAAA,IAAC,MAAA,CAAI,UAAWH,EAAM,IAAI,KAAO,OAAS,GACxC,SAAAG,EAAAA,IAACC,EAAA,CAAa,IAAKJ,EAAM,IAAI,IAAK,EACpC,EAGDA,EAAM,IAAI,KAEV,OAAQA,EAAM,IAAI,OAAW,UAC5BG,EAAAA,IAAC,OAAI,UAAU,OACb,SAAAA,EAAAA,IAACE,EAAA,CAAM,KAAMC,EAAU,MAAO,KAAMN,EAAM,IAAI,MAAO,CAAA,CACvD,CAAA,EAEJ,CAEJ,CA0BAO,EAAgB,aAAe,CAC7B,aAAc,IAChB,EAEO,SAASA,EAAgBP,EAA0C,CACxE,SAASQ,EAAYC,EAAoB,CACnCA,EAAI,QAAU,CAACA,EAAI,WAGvBA,EAAI,SAAA,EAEAA,EAAI,eAAiBA,EAAI,kBAC3BC,EAAgB,cAAcD,EAAI,cAAeA,EAAI,gBAAgB,EACzE,CAEA,OACEN,EAAAA,IAAC,MAAA,CAAI,UAAWH,EAAM,WAAa,GAAI,IAAKA,EAAM,aAChD,SAAAG,EAAAA,IAAC,KAAA,CAAG,UAAW;AAAA,2CACsBQ,EAAO,eAAe;AAAA,UACvDX,EAAM,aAAeW,EAAO,YAAc,EAAE;AAAA,UAC5CX,EAAM,aAAa;AAAA,QAEpB,SAAAA,EAAM,KAAK,IAAI,CAACS,EAAKG,IAElBT,EAAAA,IAAC,KAAA,CACC,UAAW;AAAA,sBACHQ,EAAO,GAAG,IAAIF,EAAI,OAAS,eAAiB,sBAAsB;AAAA,kBACtEA,EAAI,KAAOE,EAAO,SAAW,EAAE,IAAIF,EAAI,SAAS;AAAA,gBAInD,WAAI,QACHN,EAAAA,IAACU,EAAA,CACC,QAASJ,EAAI,QACb,cAAeA,EAAI,cACnB,iBAAkBA,EAAI,iBACtB,UAAW;AAAA;AAAA,uEAE0CE,EAAO,OAAO;AAAA,oBAGnE,SAAAR,EAAAA,IAACJ,GAAY,IAAAU,CAAA,CAAU,CAAA,CAAA,EAGzBN,EAAAA,IAACW,EAAA,CACC,UAAW;AAAA;AAAA,uEAE0CH,EAAO,OAAO;AAAA,oBAEnE,QAAS,IAAMH,EAAYC,CAAG,EAE9B,SAAAN,EAAAA,IAACJ,GAAY,IAAAU,CAAA,CAAU,CAAA,CAAA,CACzB,EAvBGG,CAAA,CA2BV,EACH,EACF,CAEJ,CC9GO,SAASG,EAAOf,EAAiC,CACtD,MAAMgB,EAAkBhB,EAAM,MAAM,IAAIiB,GAAA,SAAM,OAC5C,KAAMA,EAAE,MACR,SAAU,IAAMC,EAAmB,QAAQD,EAAE,OAAO,EACpD,OAAQA,EAAE,QAAQ,WAAWE,GAAAC,EAAAC,EAAe,gBAAA,IAAf,YAAAD,EAAkC,UAAlC,YAAAD,EAA2C,OAAA,EACxE,EAEF,OAAOhB,EAAAA,IAACI,EAAA,CAAgB,UAAU,OAAO,KAAAS,CAAA,CAAY,CACvD"}
@@ -0,0 +1,2 @@
1
+ import{s as t}from"./app-CQEXKRTo.js";import{g as s}from"./sFV5nxD4.chunk.js";function g(a){const{userId:e,customerId:r,...i}=a;return{...i,uid:e,cid:r}}const l={aggregation(a,e){return{url:t.urlBuilder(`{gateway}/v2/analytics/streams/aggregation/${a}`,g(e)),key:s("video:views:v2:aggregation",e,a),normalize:!1}},videoAggregation(a,e,r){return{url:t.urlBuilder(`{gateway}/v2/analytics/streams/videos/${a}/aggregation/${e}`,g(r)),key:s(`video:views:v2:aggregation:${a}`,r,e),normalize:!1}},aggregationChart(a,e){return{url:t.urlBuilder(`{gateway}/v2/analytics/streams/aggregation/${a}/chart`,g(e)),key:s("video:views:v2:aggregation:chart",e,a),normalize:!1}},videoAggregationChart(a,e,r){return{url:t.urlBuilder(`{gateway}/v2/analytics/streams/videos/${a}/aggregation/${e}/chart`,g(r)),key:s(`video:views:v2:aggregation:chart:${a}`,r,e),normalize:!1}},topStreams(a,e){return{url:t.urlBuilder("{gateway}/v2/analytics/streams/top",{...g(e),limit:a}),key:s(`video:views:v2:top:streams:${a}`,e),normalize:!1}},videoHeatMap(a,e,r){return{url:t.urlBuilder(`{gateway}/v2/analytics/streams/videos/${a}/heat-map`,{...g(e),cursor:r}),key:s(`video:views:v2:heatmap:${a}`,e,r),normalize:!1}},videoHeatMapAggregation(a,e){return{url:t.urlBuilder(`{gateway}/v2/analytics/streams/videos/${a}/aggregation/heat-map`,g(e)),key:s(`video:views:v2:aggregation:heatmap:${a}`,e),normalize:!1}}};export{l as V};
2
+ //# sourceMappingURL=B-M_POW7.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"B-M_POW7.chunk.js","sources":["../../src/shared/flight-requests/VideoViewsV2Requests.ts"],"sourcesContent":["\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/react/index';\n\nimport { StreamAggregationType } from 'libs/shared/apps/analytics/interfaces/StreamAggregationType';\nimport { AnalyticsRequestFilter } from 'libs/shared/interfaces';\nimport { getAnalyticsRequestKey } from 'libs/shared/utils/AnalyticsRequestUtils';\n\n/**\n * Becasue the V2 endpoints take the user context,\n * userId and customerId cannot be used for these values so instead\n * we are using uid and cid - sha\n */\nfunction formatFilter(filter: AnalyticsRequestFilter) {\n const { userId, customerId, ...rest } = filter;\n return { ...rest, uid: userId, cid: customerId };\n}\n\nexport const VideoViewsV2Requests = {\n aggregation(\n type: StreamAggregationType,\n filter: AnalyticsRequestFilter\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v2/analytics/streams/aggregation/${type}`, formatFilter(filter)),\n key: getAnalyticsRequestKey('video:views:v2:aggregation', filter, type),\n normalize: false\n };\n },\n\n videoAggregation(\n videoId: string,\n type: StreamAggregationType,\n filter: AnalyticsRequestFilter\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v2/analytics/streams/videos/${videoId}/aggregation/${type}`, formatFilter(filter)),\n key: getAnalyticsRequestKey(`video:views:v2:aggregation:${videoId}`, filter, type),\n normalize: false\n };\n },\n\n aggregationChart(\n type: StreamAggregationType,\n filter: AnalyticsRequestFilter\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v2/analytics/streams/aggregation/${type}/chart`, formatFilter(filter)),\n key: getAnalyticsRequestKey('video:views:v2:aggregation:chart', filter, type),\n normalize: false\n };\n },\n\n videoAggregationChart(\n videoId: string,\n type: StreamAggregationType,\n filter: AnalyticsRequestFilter\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v2/analytics/streams/videos/${videoId}/aggregation/${type}/chart`, formatFilter(filter)),\n key: getAnalyticsRequestKey(`video:views:v2:aggregation:chart:${videoId}`, filter, type),\n normalize: false\n };\n },\n\n topStreams(limit: number, filter: AnalyticsRequestFilter): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v2/analytics/streams/top`, { ...formatFilter(filter), limit }),\n key: getAnalyticsRequestKey(`video:views:v2:top:streams:${limit}`, filter),\n normalize: false\n };\n },\n\n videoHeatMap(\n videoId: string,\n filter: AnalyticsRequestFilter,\n cursor?: string\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v2/analytics/streams/videos/${videoId}/heat-map`, { ...formatFilter(filter), cursor }),\n key: getAnalyticsRequestKey(`video:views:v2:heatmap:${videoId}`, filter, cursor),\n normalize: false\n };\n },\n\n videoHeatMapAggregation(\n videoId: string,\n filter: AnalyticsRequestFilter\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v2/analytics/streams/videos/${videoId}/aggregation/heat-map`, formatFilter(filter)),\n key: getAnalyticsRequestKey(`video:views:v2:aggregation:heatmap:${videoId}`, filter),\n normalize: false\n };\n }\n};"],"names":["formatFilter","filter","userId","customerId","rest","VideoViewsV2Requests","type","UrlHelper","getAnalyticsRequestKey","videoId","limit","cursor"],"mappings":"8EAaA,SAASA,EAAaC,EAAgC,CACpD,KAAM,CAAE,OAAAC,EAAQ,WAAAC,EAAY,GAAGC,GAASH,EACxC,MAAO,CAAE,GAAGG,EAAM,IAAKF,EAAQ,IAAKC,CAAA,CACtC,CAEO,MAAME,EAAuB,CAClC,YACEC,EACAL,EACgB,CAChB,MAAO,CACL,IAAKM,EAAU,WAAW,8CAA8CD,CAAI,GAAIN,EAAaC,CAAM,CAAC,EACpG,IAAKO,EAAuB,6BAA8BP,EAAQK,CAAI,EACtE,UAAW,EAAA,CAEf,EAEA,iBACEG,EACAH,EACAL,EACgB,CAChB,MAAO,CACL,IAAKM,EAAU,WAAW,yCAAyCE,CAAO,gBAAgBH,CAAI,GAAIN,EAAaC,CAAM,CAAC,EACtH,IAAKO,EAAuB,8BAA8BC,CAAO,GAAIR,EAAQK,CAAI,EACjF,UAAW,EAAA,CAEf,EAEA,iBACEA,EACAL,EACgB,CAChB,MAAO,CACL,IAAKM,EAAU,WAAW,8CAA8CD,CAAI,SAAUN,EAAaC,CAAM,CAAC,EAC1G,IAAKO,EAAuB,mCAAoCP,EAAQK,CAAI,EAC5E,UAAW,EAAA,CAEf,EAEA,sBACEG,EACAH,EACAL,EACgB,CAChB,MAAO,CACL,IAAKM,EAAU,WAAW,yCAAyCE,CAAO,gBAAgBH,CAAI,SAAUN,EAAaC,CAAM,CAAC,EAC5H,IAAKO,EAAuB,oCAAoCC,CAAO,GAAIR,EAAQK,CAAI,EACvF,UAAW,EAAA,CAEf,EAEA,WAAWI,EAAeT,EAAgD,CACxE,MAAO,CACL,IAAKM,EAAU,WAAW,qCAAsC,CAAE,GAAGP,EAAaC,CAAM,EAAG,MAAAS,EAAO,EAClG,IAAKF,EAAuB,8BAA8BE,CAAK,GAAIT,CAAM,EACzE,UAAW,EAAA,CAEf,EAEA,aACEQ,EACAR,EACAU,EACgB,CAChB,MAAO,CACL,IAAKJ,EAAU,WAAW,yCAAyCE,CAAO,YAAa,CAAE,GAAGT,EAAaC,CAAM,EAAG,OAAAU,CAAA,CAAQ,EAC1H,IAAKH,EAAuB,0BAA0BC,CAAO,GAAIR,EAAQU,CAAM,EAC/E,UAAW,EAAA,CAEf,EAEA,wBACEF,EACAR,EACgB,CAChB,MAAO,CACL,IAAKM,EAAU,WAAW,yCAAyCE,CAAO,wBAAyBT,EAAaC,CAAM,CAAC,EACvH,IAAKO,EAAuB,sCAAsCC,CAAO,GAAIR,CAAM,EACnF,UAAW,EAAA,CAEf,CACF"}
@@ -0,0 +1,2 @@
1
+ import{d as r,j as c,A as t,g as o,L as p}from"./app-CQEXKRTo.js";import{S as m}from"./B-0CRp8U.chunk.js";const d={video(e,a,s,i){return{url:`{gateway}/v1/objects/${e}`,key:`video:${e}`,success:a,error:s,always:i}}},u="reportsVideos.videoNav",n=p.encloseNamespace(u);function v(e,a){const s=[e];return[{label:n("overview"),appLink:{application:o.VIDEOS,action:t.Videos.OVERVIEW,args:s,params:a}},{label:n("engagement"),appLink:{application:o.VIDEOS,action:t.Videos.ENGAGEMENT,args:s,params:a}}]}function g(e){const a=r(),s=v(e.id,a);return c.jsx(m,{items:s})}export{d as V,g as a};
2
+ //# sourceMappingURL=B0HNQPjj.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"B0HNQPjj.chunk.js","sources":["../../src/shared/flight-requests/VideoRequests.ts","../../src/apps/videos/components/video-nav/VideoNav.tsx"],"sourcesContent":["import { Flight } from 'libs/common/flight';\n\nimport { Video } from 'libs/shared/interfaces';\n\nexport const VideoRequests = {\n video(id: string, success?: (data: Video) => void, error?: (data: any) => void, always?: () => void): Flight.Request {\n return {\n url: `{gateway}/v1/objects/${id}`,\n key: `video:${id}`,\n success,\n error,\n always\n };\n }\n};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { FilterQueryParams } from 'libs/shared/apps/analytics/interfaces/FilterQueryParams';\n\nimport { SubNav, SubNavItem } from 'shared/components/sub-nav/SubNav';\nimport { Actions } from 'shared/constants/ReportsActions';\nimport { AppChannels } from 'shared/constants/ReportsRadioChannels';\nimport { useGetAppLinkFilterParams } from 'shared/hooks/UseGetFilterQueryParams';\n\nconst namespace = 'reportsVideos.videoNav';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction getNavItems(id: string, params: FilterQueryParams): SubNavItem[] {\n const args = [id];\n\n return [\n {\n label: getPhrase('overview'),\n appLink: { application: AppChannels.VIDEOS, action: Actions.Videos.OVERVIEW, args, params }\n },\n {\n label: getPhrase('engagement'),\n appLink: { application: AppChannels.VIDEOS, action: Actions.Videos.ENGAGEMENT, args, params }\n }\n ];\n}\n\ninterface VideoNavProps {\n id: string;\n}\n\nexport function VideoNav(props: VideoNavProps): JSX.Element {\n const filterQueryParams = useGetAppLinkFilterParams();\n\n const navItems = getNavItems(props.id, filterQueryParams);\n\n return (\n <SubNav items={navItems} />\n );\n}"],"names":["VideoRequests","id","success","error","always","namespace","getPhrase","LanguageService","getNavItems","params","args","AppChannels","Actions","VideoNav","props","filterQueryParams","useGetAppLinkFilterParams","navItems","jsx","SubNav"],"mappings":"0GAIO,MAAMA,EAAgB,CAC3B,MAAMC,EAAYC,EAAiCC,EAA6BC,EAAqC,CACnH,MAAO,CACL,IAAK,wBAAwBH,CAAE,GAC/B,IAAK,SAASA,CAAE,GAChB,QAAAC,EACA,MAAAC,EACA,OAAAC,CAAA,CAEJ,CACF,ECHMC,EAAY,yBACZC,EAAYC,EAAgB,iBAAiBF,CAAS,EAE5D,SAASG,EAAYP,EAAYQ,EAAyC,CACxE,MAAMC,EAAO,CAACT,CAAE,EAEhB,MAAO,CACL,CACE,MAAOK,EAAU,UAAU,EAC3B,QAAS,CAAE,YAAaK,EAAY,OAAQ,OAAQC,EAAQ,OAAO,SAAU,KAAAF,EAAM,OAAAD,CAAA,CAAO,EAE5F,CACE,MAAOH,EAAU,YAAY,EAC7B,QAAS,CAAE,YAAaK,EAAY,OAAQ,OAAQC,EAAQ,OAAO,WAAY,KAAAF,EAAM,OAAAD,CAAA,CAAO,CAC9F,CAEJ,CAMO,SAASI,EAASC,EAAmC,CAC1D,MAAMC,EAAoBC,EAAA,EAEpBC,EAAWT,EAAYM,EAAM,GAAIC,CAAiB,EAExD,OACEG,EAAAA,IAACC,EAAA,CAAO,MAAOF,CAAA,CAAU,CAE7B"}
@@ -0,0 +1,2 @@
1
+ import{e as l,u as m,j as e,L as n,O as a,bF as h,a as x}from"./app-CQEXKRTo.js";import{u as v,g as j}from"./CjQHXyx0.chunk.js";import{u as f}from"./CvkQEqoz.chunk.js";import{u}from"./HFbpCC17.chunk.js";import{U as C,P as N}from"./BUJR0SBs.chunk.js";import{L as d}from"./DUPqT4A_.chunk.js";import{u as p}from"./Co9J1lM_.chunk.js";import{U as y,E as P,P as L}from"./DLNH1FET.chunk.js";import"./H-GxGp0N.chunk.js";import"./OUlVmzyS.chunk.js";import"./sBa2VMAv.chunk.js";import"./DGmD-zcu.chunk.js";import"./CFjwQ5Sg.chunk.js";import"./sFV5nxD4.chunk.js";const S="shared.loginCountBarChartCard",w=n.encloseNamespace(S);function E(i){const s=l(),t=m(!!s&&d.logins(s));return u(t),p(t),e.jsx("div",{className:`bg-white rounded p-3 ${i.className??""}`,children:t.data?e.jsx(C,{events:t.data.data,getEventDate:g=>g.groupedLoggedOn,title:w("loginActivity")}):e.jsx(N,{})})}const A="shared.loginCountPieChartEmptyState",o=n.encloseNamespace(A);function $(){return e.jsxs(a,{className:"flex-grow-1 justify-content-center",children:[e.jsx(a.Image,{src:h.EmptyStates.Shared.LoginCount,className:"w-50 h-auto"}),e.jsx(a.Heading,{children:o("heading")}),e.jsx(a.Info,{className:"w-100",children:o("description")})]})}function U(i){const s=l(),t=m(!!s&&d.logins(s));return u(t),p(t),e.jsx("div",{className:`bg-white rounded p-3 position-relative d-flex flex-column ${i.className??""}`,children:t.data?e.jsx(y,{eventType:P.Login,events:t.data,emptyStateComponent:e.jsx($,{})}):e.jsx(L,{})})}const F="_column2_1cfp0_1",_="_column1_1cfp0_1",r={column2:F,column1:_},B="logins.loginOverview",c=n.encloseNamespace(B);function K(){return x({title:c("loginTitle")}),f(c("loginTitle")),v(j()),e.jsx("div",{children:e.jsxs("div",{className:"d-flex",children:[e.jsx("div",{className:`pe-2 ${r.column1}`,children:e.jsx(U,{className:"h-100"})}),e.jsx("div",{className:`ps-2 ${r.column2}`,children:e.jsx(E,{className:"h-100"})})]})})}export{K as LoginOverviewView};
2
+ //# sourceMappingURL=B2kHUvkf.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"B2kHUvkf.chunk.js","sources":["../../src/shared/views/overview-cards/login-count-bar-chart-card/LoginCountBarChartCardView.tsx","../../src/shared/views/overview-cards/login-count-pie-chart-card/components/login-count-pie-chart-empty-state/LoginCountPieChartEmptyState.tsx","../../src/shared/views/overview-cards/login-count-pie-chart-card/LoginCountPieChartCardView.tsx","../../src/apps/logins/views/login-overview/LoginOverviewView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { LoginEvent, LoginEventResponse } from 'libs/shared/apps/analytics/interfaces/LoginEvent';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\n\nimport { PartialUserActivityBarChart } from 'shared/components/user-activity-bar-chart/PartialUserActivityBarChart';\nimport { UserActivityBarChart } from 'shared/components/user-activity-bar-chart/UserActivityBarChart';\nimport { LoginRequests } from 'shared/flight-requests/LoginRequests';\nimport { useGetRequestFilter } from 'shared/hooks/UseGetFilterQueryParams';\nimport { useSetAudienceFilterCount } from 'shared/hooks/UseSetAudienceFilterCount';\n\nconst namespace = 'shared.loginCountBarChartCard';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface LoginCountBarChartCardViewProps {\n /**\n * className is required as a height must be specified.\n */\n className: string;\n}\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function LoginCountBarChartCardView(props: LoginCountBarChartCardViewProps): JSX.Element {\n const requestFilter = useGetRequestFilter();\n\n const logins = Flight.useBasicFetch<LoginEventResponse>(!!requestFilter &&\n LoginRequests.logins(requestFilter));\n\n useHandleObjectError(logins);\n useSetAudienceFilterCount(logins);\n\n return (\n <div className={`bg-white rounded p-3 ${props.className ?? ''}`}>\n {logins.data\n ? <UserActivityBarChart\n events={logins.data.data}\n getEventDate={(ev: LoginEvent) => ev.groupedLoggedOn}\n title={getPhrase('loginActivity')}\n />\n : <PartialUserActivityBarChart />\n }\n </div>\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';\n\nimport { ImageUrls } from 'shared/constants/ReportsImageUrls';\n\nconst namespace = 'shared.loginCountPieChartEmptyState';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function LoginCountPieChartEmptyState(): JSX.Element {\n return (\n <EmptyState className='flex-grow-1 justify-content-center'>\n <EmptyState.Image\n src={ImageUrls.EmptyStates.Shared.LoginCount}\n className='w-50 h-auto'\n />\n <EmptyState.Heading>\n {getPhrase('heading')}\n </EmptyState.Heading>\n <EmptyState.Info className='w-100'>\n {getPhrase('description')}\n </EmptyState.Info>\n </EmptyState>\n );\n}","import React from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { LoginEventResponse } from 'libs/shared/apps/analytics/interfaces/LoginEvent';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\n\nimport { PartialUserActivityPieChart } from 'shared/components/user-activity-pie-chart/partial-loading/PartialUserActivityPieChart';\nimport { UserActivityPieChart } from 'shared/components/user-activity-pie-chart/UserActivityPieChart';\nimport { EventType } from 'shared/enums/EventType';\nimport { LoginRequests } from 'shared/flight-requests/LoginRequests';\nimport { useGetRequestFilter } from 'shared/hooks/UseGetFilterQueryParams';\nimport { useSetAudienceFilterCount } from 'shared/hooks/UseSetAudienceFilterCount';\n\nimport { LoginCountPieChartEmptyState } from './components/login-count-pie-chart-empty-state/LoginCountPieChartEmptyState';\n\ninterface LoginCountPieChartCardViewProps {\n /**\n * className is required as a height must be specified.\n */\n className: string;\n}\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function LoginCountPieChartCardView(props: LoginCountPieChartCardViewProps): JSX.Element {\n const requestFilter = useGetRequestFilter();\n\n const logins = Flight.useBasicFetch<LoginEventResponse>(!!requestFilter &&\n LoginRequests.logins(requestFilter));\n\n useHandleObjectError(logins);\n useSetAudienceFilterCount(logins);\n\n return (\n <div className={`bg-white rounded p-3 position-relative d-flex flex-column ${props.className ?? ''}`}>\n {logins.data\n ? <UserActivityPieChart\n eventType={EventType.Login}\n events={logins.data}\n emptyStateComponent={<LoginCountPieChartEmptyState />}\n />\n : <PartialUserActivityPieChart />\n }\n </div>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\n\nimport { useSetHeaderActions } from 'shared/hooks/UseSetHeaderActions';\nimport { useSetHeaderTitle } from 'shared/hooks/UseSetHeaderTitle';\nimport { getLoginHeaderActions } from 'shared/utils/HeaderActionUtils';\nimport { LoginCountBarChartCardView } from 'shared/views/overview-cards/login-count-bar-chart-card/LoginCountBarChartCardView';\nimport { LoginCountPieChartCardView } from 'shared/views/overview-cards/login-count-pie-chart-card/LoginCountPieChartCardView';\n\nimport styles from './login-overview.module.scss';\n\nconst namespace = 'logins.loginOverview';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function LoginOverviewView(): JSX.Element {\n useSetPageMetadata({ title: getPhrase('loginTitle') });\n useSetHeaderTitle(getPhrase('loginTitle'));\n useSetHeaderActions(getLoginHeaderActions());\n\n return (\n <div>\n <div className='d-flex'>\n <div className={`pe-2 ${styles.column1}`}>\n <LoginCountPieChartCardView className='h-100' />\n </div>\n <div className={`ps-2 ${styles.column2}`}>\n <LoginCountBarChartCardView className='h-100' />\n </div>\n </div>\n </div>\n );\n}"],"names":["namespace","getPhrase","LanguageService","LoginCountBarChartCardView","props","requestFilter","useGetRequestFilter","logins","Flight.useBasicFetch","LoginRequests","useHandleObjectError","useSetAudienceFilterCount","jsx","UserActivityBarChart","ev","PartialUserActivityBarChart","LoginCountPieChartEmptyState","jsxs","EmptyState","ImageUrls","LoginCountPieChartCardView","UserActivityPieChart","EventType","PartialUserActivityPieChart","LoginOverviewView","useSetPageMetadata","useSetHeaderTitle","useSetHeaderActions","getLoginHeaderActions","styles"],"mappings":"wiBAcA,MAAMA,EAAY,gCACZC,EAAYC,EAAgB,iBAAiBF,CAAS,EAUrD,SAASG,EAA2BC,EAAqD,CAC9F,MAAMC,EAAgBC,EAAA,EAEhBC,EAASC,EAAyC,CAAC,CAACH,GACxDI,EAAc,OAAOJ,CAAa,CAAC,EAErC,OAAAK,EAAqBH,CAAM,EAC3BI,EAA0BJ,CAAM,EAG9BK,EAAAA,IAAC,OAAI,UAAW,wBAAwBR,EAAM,WAAa,EAAE,GAC1D,SAAAG,EAAO,KACJK,EAAAA,IAACC,EAAA,CACD,OAAQN,EAAO,KAAK,KACpB,aAAeO,GAAmBA,EAAG,gBACrC,MAAOb,EAAU,eAAe,CAAA,CAAA,EAEhCW,MAACG,EAAA,CAAA,CAA4B,EAEnC,CAEJ,CCtCA,MAAMf,EAAY,sCACZC,EAAYC,EAAgB,iBAAiBF,CAAS,EAErD,SAASgB,GAA4C,CAC1D,OACEC,EAAAA,KAACC,EAAA,CAAW,UAAU,qCACpB,SAAA,CAAAN,EAAAA,IAACM,EAAW,MAAX,CACC,IAAKC,EAAU,YAAY,OAAO,WAClC,UAAU,aAAA,CAAA,QAEXD,EAAW,QAAX,CACE,SAAAjB,EAAU,SAAS,EACtB,EACAW,MAACM,EAAW,KAAX,CAAgB,UAAU,QACxB,SAAAjB,EAAU,aAAa,CAAA,CAC1B,CAAA,EACF,CAEJ,CCFO,SAASmB,EAA2BhB,EAAqD,CAC9F,MAAMC,EAAgBC,EAAA,EAEhBC,EAASC,EAAyC,CAAC,CAACH,GACxDI,EAAc,OAAOJ,CAAa,CAAC,EAErC,OAAAK,EAAqBH,CAAM,EAC3BI,EAA0BJ,CAAM,EAG9BK,EAAAA,IAAC,OAAI,UAAW,6DAA6DR,EAAM,WAAa,EAAE,GAC/F,SAAAG,EAAO,KACJK,EAAAA,IAACS,EAAA,CACD,UAAWC,EAAU,MACrB,OAAQf,EAAO,KACf,0BAAsBS,EAAA,CAAA,CAA6B,CAAA,CAAA,EAEnDJ,MAACW,EAAA,CAAA,CAA4B,EAEnC,CAEJ,yEC/BMvB,EAAY,uBACZC,EAAYC,EAAgB,iBAAiBF,CAAS,EAErD,SAASwB,GAAiC,CAC/C,OAAAC,EAAmB,CAAE,MAAOxB,EAAU,YAAY,EAAG,EACrDyB,EAAkBzB,EAAU,YAAY,CAAC,EACzC0B,EAAoBC,GAAuB,EAGzChB,EAAAA,IAAC,MAAA,CACC,SAAAK,EAAAA,KAAC,MAAA,CAAI,UAAU,SACb,SAAA,CAAAL,EAAAA,IAAC,MAAA,CAAI,UAAW,QAAQiB,EAAO,OAAO,GACpC,SAAAjB,EAAAA,IAACQ,EAAA,CAA2B,UAAU,OAAA,CAAQ,EAChD,EACAR,EAAAA,IAAC,MAAA,CAAI,UAAW,QAAQiB,EAAO,OAAO,GACpC,SAAAjB,EAAAA,IAACT,EAAA,CAA2B,UAAU,OAAA,CAAQ,CAAA,CAChD,CAAA,CAAA,CACF,CAAA,CACF,CAEJ"}
@@ -0,0 +1,2 @@
1
+ import{j as a,e as x,u as f,i as j,S as h,p,I as u,T as g}from"./app-CQEXKRTo.js";import{B as b}from"./Dm6PeyeG.chunk.js";import{I as r,a as d}from"./BZV5U3ST.chunk.js";import{a as v}from"./DDQPxnFm.chunk.js";const N="_cover_ggfj4_1",C="_fallbackImage_ggfj4_5",n={cover:N,fallbackImage:C};function t(s){return a.jsxs("div",{className:"d-flex position-relative mb-3",children:[a.jsx("div",{className:`${n.fallbackImage} me-2`,children:a.jsx(r,{type:d.Subject,extraClasses:"border rounded"})}),a.jsx("div",{className:"w-100",children:a.jsx("div",{className:`partial-loading-background ${s.className}`,children:" "})})]})}function k(){return a.jsxs(a.Fragment,{children:[a.jsx("div",{className:"partial-loading-background w-25 mb-3",children:" "}),a.jsx(t,{className:"w-25"}),a.jsx(t,{className:"w-50"}),a.jsx(t,{className:"w-33"}),a.jsx(t,{className:"w-25"})]})}const I="reportsShared.topClassificationsCard";function w(s){const[i,e]=p.useState(!1);return a.jsxs("div",{className:"d-flex position-relative",children:[!i&&a.jsx(r,{type:d.Subject,extraClasses:`${n.fallbackImage} border rounded`}),a.jsx("div",{className:`${n.cover} flex-shrink-0 me-2 rounded overflow-hidden`,children:a.jsx(b,{data:s.topClassification.collection.cover,imageOptions:{size:u.Medium},onLoad:()=>e(!0)})}),a.jsxs("div",{children:[a.jsx("h3",{className:"h6 mb-0 clamp-2 mt-1",children:s.topClassification.collection.name}),a.jsx("p",{children:a.jsx(g,{namespace:I,phrase:"views",options:{smartCount:s.topClassification.count}})})]})]})}function F(s){var o;const i=x(),e=f(!!i&&v.topTopicsV2(i,s.type,s.limit)),m=(o=e.data)==null?void 0:o.sort((l,c)=>c.count-l.count);return a.jsx("div",{className:"d-flex flex-column h-100 bg-white overflow-hidden rounded pt-3 px-3",children:e.data?a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"d-flex justify-content-between",children:[a.jsx("h2",{className:"h6 mb-3",children:s.heading}),s.appLink&&s.appLinkText&&a.jsx(j,{appLink:s.appLink,className:"text-info",children:s.appLinkText})]}),e.data.length?a.jsx(h,{className:"pb-3",children:a.jsx("ul",{className:"list-unstyled m-0 pe-3",children:m.map((l,c)=>a.jsx("li",{className:"pb-3",children:a.jsx(w,{topClassification:l})},c))})}):a.jsx("div",{className:"d-flex align-items-center justify-content-center h-100",children:s.emptyStateText})]}):a.jsx(k,{})})}export{F as T};
2
+ //# sourceMappingURL=BADbeO_o.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BADbeO_o.chunk.js","sources":["../../src/shared/views/overview-cards/top-classifications-card/partial-loading/PartialTopClassificationsCard.tsx","../../src/shared/views/overview-cards/top-classifications-card/TopClassificationsCardView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { ImageFallback, ImageFallbackType } from 'libs/shared/components/image/ImageFallback';\n\nimport styles from '../top-classification-card.module.scss';\n\ninterface PartialClassificationItemProps {\n className?: string;\n}\n\nfunction PartialClassificationItem(props: PartialClassificationItemProps) {\n return (\n <div className='d-flex position-relative mb-3'>\n <div className={`${styles.fallbackImage} me-2`}>\n <ImageFallback\n type={ImageFallbackType.Subject}\n extraClasses='border rounded'\n />\n </div>\n\n <div className='w-100'>\n <div className={`partial-loading-background ${props.className}`}>&nbsp;</div>\n </div>\n </div>\n );\n}\n\nexport function PartialTopClassificationsCard() {\n return (\n <>\n <div className='partial-loading-background w-25 mb-3'>&nbsp;</div>\n\n <PartialClassificationItem className='w-25' />\n <PartialClassificationItem className='w-50' />\n <PartialClassificationItem className='w-33'/>\n <PartialClassificationItem className='w-25'/>\n </>\n );\n}","import React from 'react';\nimport Scrollbars from 'react-custom-scrollbars-2';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { Flight } from 'libs/common/react/index';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { BaseImage } from 'libs/shared/components/image/BaseImage';\nimport { ImageFallback, ImageFallbackType } from 'libs/shared/components/image/ImageFallback';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { Classification } from 'libs/shared/interfaces';\n\nimport { TopicAnalyticsType } from 'shared/enums/TopicAnalyticsType';\nimport { TopicRequests } from 'shared/flight-requests/TopicRequests';\nimport { useGetRequestFilter } from 'shared/hooks/UseGetFilterQueryParams';\nimport { CollectionViewEvent } from 'shared/interfaces';\nimport { PartialTopClassificationsCard } from 'shared/views/overview-cards/top-classifications-card/partial-loading/PartialTopClassificationsCard';\n\nimport styles from './top-classification-card.module.scss';\n\nconst namespace = 'reportsShared.topClassificationsCard';\n\ninterface ClassificationListItemProps {\n topClassification: CollectionViewEvent<Classification>;\n}\n\nfunction ClassificationListItem(props: ClassificationListItemProps) {\n const [ hasLoadedImage, setHasLoadedImage ] = React.useState(false);\n\n return (\n <div className='d-flex position-relative'>\n {!hasLoadedImage && (\n <ImageFallback\n type={ImageFallbackType.Subject}\n extraClasses={`${styles.fallbackImage} border rounded`}\n />\n )}\n <div className={`${styles.cover} flex-shrink-0 me-2 rounded overflow-hidden`}>\n <BaseImage\n data={props.topClassification.collection.cover}\n imageOptions={{ size: ImageSize.Medium }}\n onLoad={() => setHasLoadedImage(true)}\n />\n </div>\n <div>\n <h3 className='h6 mb-0 clamp-2 mt-1'>\n {props.topClassification.collection.name}\n </h3>\n <p><Text namespace={namespace} phrase='views' options={{ smartCount: props.topClassification.count }} /></p>\n </div>\n </div>\n );\n}\n\ninterface TopClassificationsCardProps {\n heading: string;\n type: TopicAnalyticsType;\n appLink?: Core.AppLink;\n appLinkText?: string;\n emptyStateText: string;\n limit: number;\n}\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function TopClassificationsCardView(props: TopClassificationsCardProps) {\n const requestFilter = useGetRequestFilter();\n \n const topClassifications = Flight.useBasicFetch<CollectionViewEvent<Classification>[]>(!!requestFilter &&\n TopicRequests.topTopicsV2(requestFilter, props.type, props.limit));\n\n const sortedTopClassifications = topClassifications.data?.sort((a, b) => b.count - a.count);\n\n return (\n <div className='d-flex flex-column h-100 bg-white overflow-hidden rounded pt-3 px-3'>\n {topClassifications.data ?\n <>\n <div className='d-flex justify-content-between'>\n <h2 className='h6 mb-3'>{props.heading}</h2>\n\n {props.appLink && props.appLinkText &&\n <AppLink\n appLink={props.appLink}\n className='text-info'\n >\n {props.appLinkText}\n </AppLink>\n }\n </div>\n {topClassifications.data.length ?\n <Scrollbars className='pb-3'>\n <ul className='list-unstyled m-0 pe-3'>\n {sortedTopClassifications.map((t, idx) => (\n <li key={idx} className='pb-3'>\n <ClassificationListItem topClassification={t} />\n </li>\n ))}\n </ul>\n </Scrollbars>\n : <div className='d-flex align-items-center justify-content-center h-100'>{props.emptyStateText}</div>\n }\n </> : <PartialTopClassificationsCard />\n }\n </div>\n );\n}"],"names":["PartialClassificationItem","props","jsxs","jsx","styles","ImageFallback","ImageFallbackType","PartialTopClassificationsCard","Fragment","namespace","ClassificationListItem","hasLoadedImage","setHasLoadedImage","React","BaseImage","ImageSize","Text","TopClassificationsCardView","requestFilter","useGetRequestFilter","topClassifications","Flight.useBasicFetch","TopicRequests","sortedTopClassifications","_a","a","b","AppLink","Scrollbars","t","idx"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{b as m,P as g,e as E,u as n,U as V,c as S,V as U,r as h}from"./app-CQEXKRTo.js";import{V as p}from"./j7UObMj5.chunk.js";function l(i){const{hasPermissions:o}=m(),r=o(g.ViewCustomerAnalytics),s=E(),t=n(V.currentUser()),u=r&&!!t.data&&!!s,e=n(u&&p.individualEngagement(i,{start:s==null?void 0:s.start,end:s==null?void 0:s.end},t.data.id)),[,c]=S(U.AUDIENCE_FILTER_SUGGESTIONS);h.useEffect(()=>{var a;e.data&&c("users",(a=e.data)==null?void 0:a.data.map(d=>d.userId))},[e.isFetching])}export{l as u};
2
+ //# sourceMappingURL=BAR_V9AM.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BAR_V9AM.chunk.js","sources":["../../src/shared/hooks/UseSetEngagementAudienceSuggestions.ts"],"sourcesContent":["import { useEffect } from 'react';\n\nimport { Flight } from 'libs/common/flight';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\n\nimport { AudienceFilterSuggestions } from 'libs/shared/apps/analytics/interfaces/AudienceFilterSuggestions';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { VideoViewRequests as SharedVideoViewRequests } from 'libs/shared/flight-requests/VideoViewRequests';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { CurrentUser } from 'libs/shared/interfaces';\nimport { IndividualEngagementResponse } from 'libs/shared/interfaces';\n\nimport { ViewModelKeys } from 'shared/constants/ReportsViewModels';\nimport { useGetRequestFilter } from 'shared/hooks/UseGetFilterQueryParams';\n\n/**\n * This hook sets engagement data for all users within the set date range (ignoring the audience filter)\n * and sets any users with results as audience suggestions.\n * \n * Note: this is only for admins as staff have a different audience filter.\n */\nexport function useSetEngagementAudienceSuggestions(videoId: string): void {\n const { hasPermissions } = usePermissions();\n const canViewCustomerAnalytics = hasPermissions(PermissionName.ViewCustomerAnalytics);\n\n const filter = useGetRequestFilter();\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n const shouldFetch = canViewCustomerAnalytics && !!currentUser.data && !!filter;\n\n const engagement = Flight.useBasicFetch<IndividualEngagementResponse>(shouldFetch &&\n SharedVideoViewRequests.individualEngagement(\n videoId,\n { start: filter?.start, end: filter?.end },\n currentUser.data.id\n ));\n\n const [ , setSuggestions ] = useViewModel<AudienceFilterSuggestions>(ViewModelKeys.AUDIENCE_FILTER_SUGGESTIONS);\n\n useEffect(() => {\n if (!engagement.data)\n return;\n\n setSuggestions('users', engagement.data?.data.map(e => e.userId));\n }, [engagement.isFetching]);\n}"],"names":["useSetEngagementAudienceSuggestions","videoId","hasPermissions","usePermissions","canViewCustomerAnalytics","PermissionName","filter","useGetRequestFilter","currentUser","Flight.useBasicFetch","UserRequests","shouldFetch","engagement","SharedVideoViewRequests","setSuggestions","useViewModel","ViewModelKeys","useEffect","_a","e"],"mappings":"+HAsBO,SAASA,EAAoCC,EAAuB,CACzE,KAAM,CAAE,eAAAC,CAAA,EAAmBC,EAAA,EACrBC,EAA2BF,EAAeG,EAAe,qBAAqB,EAE9EC,EAASC,EAAA,EACTC,EAAcC,EAAkCC,EAAa,aAAa,EAE1EC,EAAcP,GAA4B,CAAC,CAACI,EAAY,MAAQ,CAAC,CAACF,EAElEM,EAAaH,EAAmDE,GACpEE,EAAwB,qBACtBZ,EACA,CAAE,MAAOK,GAAA,YAAAA,EAAQ,MAAO,IAAKA,GAAA,YAAAA,EAAQ,GAAA,EACrCE,EAAY,KAAK,EAAA,CAClB,EAEG,CAAA,CAAIM,CAAe,EAAIC,EAAwCC,EAAc,2BAA2B,EAE9GC,EAAAA,UAAU,IAAM,OACTL,EAAW,MAGhBE,EAAe,SAASI,EAAAN,EAAW,OAAX,YAAAM,EAAiB,KAAK,IAAIC,GAAKA,EAAE,OAAO,CAClE,EAAG,CAACP,EAAW,UAAU,CAAC,CAC5B"}
@@ -0,0 +1,2 @@
1
+ import{cL as o}from"./app-CQEXKRTo.js";import{u as e}from"./DSJfyygS.chunk.js";import{u as n}from"./HFbpCC17.chunk.js";const t={notFound:o};function a(r){n(r,t,{forbidden:!0}),e(r)}export{a as u};
2
+ //# sourceMappingURL=BArX7fyb.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BArX7fyb.chunk.js","sources":["../../src/shared/hooks/UseHandleVideoError.ts"],"sourcesContent":["import { Flight } from 'libs/common/flight';\n\nimport { VideoNotFoundError } from 'libs/shared/errors/videos/video-not-found/VideoNotFoundError';\nimport { useCannotConsumeError } from 'libs/shared/hooks/useCannotConsumeError';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { Clip, InteractiveMetadata, Video } from 'libs/shared/interfaces';\n\nconst videoErrors = {\n notFound: VideoNotFoundError\n};\n\nexport function useHandleVideoError(video: Flight.Response<Video | InteractiveMetadata | Clip>): void {\n useHandleObjectError(video, videoErrors, { forbidden: true });\n useCannotConsumeError(video);\n}"],"names":["videoErrors","VideoNotFoundError","useHandleVideoError","video","useHandleObjectError","useCannotConsumeError"],"mappings":"uHAOA,MAAMA,EAAc,CAClB,SAAUC,CACZ,EAEO,SAASC,EAAoBC,EAAkE,CACpGC,EAAqBD,EAAOH,EAAa,CAAE,UAAW,GAAM,EAC5DK,EAAsBF,CAAK,CAC7B"}
@@ -0,0 +1,2 @@
1
+ import{r as a,j as s,ae as v,h as H,a6 as I,F as m,cb as P,cc as g}from"./app-CQEXKRTo.js";import{u as w}from"./CBjj_ih-.chunk.js";import{C as L}from"./BIcuRL8o.chunk.js";const N="_container_1kfhe_1",_="_spinner_1kfhe_4",C={container:N,spinner:_};j.defaultProps={fetchOnScroll:!1};function j(e){const[i,n]=w();return a.useEffect(()=>{var r;e.fetchOnScroll&&(!n||e.isFetching||(r=e.fetchNext)==null||r.call(e,e.nextCursor))},[n,e.isFetching]),s.jsx("div",{className:`p-3 text-center ${C.container}`,children:e.isFetching?s.jsx(v,{as:"span",animation:"border",role:"status",className:C.spinner}):s.jsx("div",{ref:i,children:s.jsx(H,{svg:L,className:"svg-container cursor-pointer",size:I.Large,onClick:()=>{var r;return(r=e.fetchNext)==null?void 0:r.call(e,e.nextCursor)}})})})}const d=400;function k(e){const i=()=>{if(!e.isFetching){if(e.scrollContainer){const{scrollContainer:n}=e,r=n.getBoundingClientRect().height+n.scrollTop,u=n.scrollHeight-d;if(r<u)return}else{const n=window.innerHeight+document.documentElement.scrollTop,r=document.documentElement.scrollHeight-d;if(n<r)return}e.fetchNextPage()}};a.useEffect(()=>{const n=m.throttle(i,200),r=e.scrollContainer||window;return e.hasMore&&r.addEventListener("scroll",n),()=>r.removeEventListener("scroll",n)},[e.hasMore,e.fetchNextPage,e.scrollContainer])}function y(e,i,n,r,u,S){const[x,o]=a.useState(0),f=i;function F(c){if(!e)return null;const l=e(c);return l?l.key:null}const t=P(F,r);function E(){if(!(!i||!e||!t))return o(c=>c+1),f(t.nextCursor)}return k({fetchNextPage:E,hasMore:!!(t!=null&&t.nextCursor),isFetching:t==null?void 0:t.isFetching,scrollContainer:S}),a.useEffect(()=>{t&&t.shouldInitialFetch&&i&&(f(),o(c=>c+1))},[t==null?void 0:t.shouldInitialFetch,i]),a.useEffect(()=>{var l,h;if(!(t!=null&&t.statusCode)||!m.isFunction(n))return;const c=+((h=(l=t.statusCode)==null?void 0:l.toString())==null?void 0:h.substr(0,1));c!==g.ClientError&&c!==g.ServerError||n(x,t.statusCode)},[t==null?void 0:t.statusCode]),{items:t==null?void 0:t.items,hasMore:!!(t!=null&&t.nextCursor),nextCursor:t==null?void 0:t.nextCursor,isFetching:t==null?void 0:t.isFetching,totalItems:t==null?void 0:t.totalItems,hasFirstPageCompleted:t==null?void 0:t.hasFirstPageCompleted}}export{j as I,y as u};
2
+ //# sourceMappingURL=BAt5WimN.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BAt5WimN.chunk.js","sources":["../../../../libs/shared/src/components/infinite-scroll-footer/InfiniteScrollFooter.tsx","../../../../libs/shared/src/hooks/UseInfiniteScroll.ts","../../../../libs/shared/src/hooks/UseInfiniteList.ts"],"sourcesContent":["import * as React from 'react';\nimport { Spinner } from 'react-bootstrap';\nimport { useInView } from 'react-intersection-observer';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { ChevronDownSvg } from 'libs/shared/images/svg/arrows/ChevronDownSvg';\n\nimport styles from './infinite-scroll-footer.module.scss';\n\ninterface InfiniteScrollFooterProps {\n isFetching: boolean;\n fetchNext?: (nextCursor: string) => void;\n nextCursor?: string;\n fetchOnScroll?: boolean;\n}\n\nInfiniteScrollFooter.defaultProps = {\n fetchOnScroll: false\n};\n\nexport function InfiniteScrollFooter(props: InfiniteScrollFooterProps): React.ReactElement {\n const [ ref, inView ] = useInView();\n\n React.useEffect(() => {\n if (!props.fetchOnScroll)\n return;\n\n if (!inView || props.isFetching)\n return;\n\n props.fetchNext?.(props.nextCursor);\n }, [ inView, props.isFetching ]);\n\n return (\n <div className={`p-3 text-center ${styles.container}`}>\n {props.isFetching\n ? <Spinner as='span' animation='border' role='status' className={styles.spinner} />\n : (\n <div ref={ref}>\n <SvgContainer\n svg={ChevronDownSvg}\n className='svg-container cursor-pointer'\n size={SvgContainerSize.Large}\n onClick={() => props.fetchNext?.(props.nextCursor)}\n />\n </div>\n )\n }\n </div>\n );\n}","import { useEffect } from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\n\nconst SCROLL_TOLERANCE = 400; // value in px\n\ninterface UseInfiniteScrollOptions {\n fetchNextPage: () => void;\n hasMore: boolean;\n isFetching: boolean;\n scrollContainer?: HTMLElement;\n}\n\nexport function useInfiniteScroll(options: UseInfiniteScrollOptions): void {\n const handleScroll = (): void => {\n if (options.isFetching)\n return;\n\n if (!options.scrollContainer) {\n const currentScrollHeight = window.innerHeight + document.documentElement.scrollTop;\n \n const totalHeight = document.documentElement.scrollHeight - SCROLL_TOLERANCE;\n \n if (currentScrollHeight < totalHeight)\n return;\n } else {\n const { scrollContainer } = options;\n const currentScrollHeight = scrollContainer.getBoundingClientRect().height + scrollContainer.scrollTop;\n \n const totalHeight = scrollContainer.scrollHeight - SCROLL_TOLERANCE;\n \n if (currentScrollHeight < totalHeight)\n return;\n }\n\n options.fetchNextPage();\n };\n\n useEffect(() => {\n const onScroll = FunctionHelper.throttle(handleScroll, 200);\n\n const scrollContainer = options.scrollContainer || window;\n\n if (options.hasMore)\n scrollContainer.addEventListener('scroll', onScroll);\n\n return () => scrollContainer.removeEventListener('scroll', onScroll);\n }, [ options.hasMore, options.fetchNextPage, options.scrollContainer ]);\n}","import { useEffect, useState } from 'react';\n\nimport { HttpStatus, HttpStatusClass } from 'libs/common/backbone/enums/HttpStatus';\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { BaseObject, BasePaginatedCollection } from 'libs/shared/interfaces';\n\nimport { useInfiniteScroll } from './UseInfiniteScroll';\nimport { useSelectAllPages } from './UseSelectAllPages';\n\nexport interface UseInfiniteListResult<T extends BaseObject> {\n items: T[];\n hasMore: boolean;\n isFetching: boolean;\n nextCursor: string;\n totalItems?: number;\n hasFirstPageCompleted: boolean;\n}\n\n/**\n * Hook to extract an infinite list from the application state,\n * save it locally in state and only update when new data\n * is fetched.\n * \n * @param getRequest - callback function to get the request for each page.\n * Can be false if the request requires data that hasn't yet been fetched - e.g. user id.\n * \n * @param fetchNext - callback function to fetch a page.\n * Can be false if the request requires data that hasn't yet been fetched - e.g. user id.\n */\nexport function useInfiniteList<TObject = BaseObject, TResponse = BasePaginatedCollection<TObject>>(\n getRequest: ((cursor?: string) => Flight.Request) | false,\n fetchNext: ((cursor?: string) => void) | false,\n onError?: (pageNumber: number, statusCode: HttpStatus) => void,\n getItems?: (responseData: TResponse) => TObject[],\n getCursor?: (responseData: TResponse) => string,\n scrollContainer?: HTMLElement\n): UseInfiniteListResult<TObject> {\n const [ pagesFetched, setPagesFetched ] = useState(0);\n\n const fetchNextFn = fetchNext as (cursor?: string) => void;\n\n function getKey(cursor?: string): string {\n if (!getRequest)\n return null;\n\n const request = getRequest(cursor);\n\n if (!request)\n return null;\n\n return request.key;\n }\n\n const response = useSelectAllPages<TObject, TResponse>(\n getKey,\n getItems,\n getCursor\n );\n\n function fetchNextPage(): void {\n if (!fetchNext || !getRequest || !response)\n return;\n\n setPagesFetched(currentVal => currentVal + 1);\n return fetchNextFn(response.nextCursor);\n }\n\n useInfiniteScroll({\n fetchNextPage,\n hasMore: !!response?.nextCursor,\n isFetching: response?.isFetching,\n scrollContainer\n });\n\n useEffect(() => {\n if (!response)\n return;\n\n if (response.shouldInitialFetch && fetchNext) {\n fetchNextFn();\n setPagesFetched(currentVal => currentVal + 1);\n }\n }, [ response?.shouldInitialFetch, fetchNext ]);\n\n useEffect(() => {\n if (!response?.statusCode || !FunctionHelper.isFunction(onError))\n return;\n\n const httpStatusClass: HttpStatusClass = +(response.statusCode?.toString()?.substr(0, 1));\n\n if (httpStatusClass !== HttpStatusClass.ClientError && httpStatusClass !== HttpStatusClass.ServerError)\n return;\n\n onError(pagesFetched, response.statusCode);\n }, [response?.statusCode]);\n\n return {\n items: response?.items,\n hasMore: !!response?.nextCursor,\n nextCursor: response?.nextCursor,\n isFetching: response?.isFetching,\n totalItems: response?.totalItems,\n hasFirstPageCompleted: response?.hasFirstPageCompleted\n };\n}"],"names":["InfiniteScrollFooter","props","ref","inView","useInView","React.useEffect","_a","jsx","styles","Spinner","SvgContainer","ChevronDownSvg","SvgContainerSize","SCROLL_TOLERANCE","useInfiniteScroll","options","handleScroll","scrollContainer","currentScrollHeight","totalHeight","useEffect","onScroll","FunctionHelper","useInfiniteList","getRequest","fetchNext","onError","getItems","getCursor","pagesFetched","setPagesFetched","useState","fetchNextFn","getKey","cursor","request","response","useSelectAllPages","fetchNextPage","currentVal","httpStatusClass","_b","HttpStatusClass"],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import{j as t,p as m,c0 as j,L as C,c1 as S,h as p,_ as M,aa as $,c as b,V as v,v as g}from"./app-CQEXKRTo.js";import{P as x}from"./DtMtah8Q.chunk.js";import{a as R}from"./BI4Pc5Qp.chunk.js";import{b as H,I as L,e as k,f as u,g as T,a as A}from"./vDUMsOFT.chunk.js";import{P as N,a as y}from"./Cq8XHkfC.chunk.js";import{D as E}from"./BGYUqEPH.chunk.js";import{b as O,I as D}from"./DIqHgqYU.chunk.js";const P="_container_18up8_1",U="_interaction_18up8_6",w={container:P,interaction:U};function F(e,n){return e.interactions.find(i=>i.id===n.id)||e.interactions[0]}function K(e){return e.duration?t.jsx(t.Fragment,{children:e.interactive.timepoints.map((n,i)=>{if(!n.interactions.length)return t.jsx(t.Fragment,{});const r=F(n,e.selectedInteraction),c=r.id===e.selectedInteraction.id,s=c?O.getTypeInfo(r.typeId).bgClassName:"bg-gray-500",a=n.visibleAt/1e3/e.duration*100;return t.jsxs("div",{className:`${w.container} text-center`,style:{left:`${a}%`},children:[t.jsx("div",{className:`${w.interaction} ${s}`}),!!c&&t.jsx("div",{children:E.ToDisplayDuration(n.visibleAt)})]},i)})}):t.jsx(t.Fragment,{})}const V="_bar_1r368_1",q={bar:V},G="shared.interactionResultsSummary",f=C.encloseNamespace(G);function W(e){return e._parentClip?e._parentClip.endTime-e._parentClip.startTime:e._parentVideo.duration?e._parentVideo.duration/1e3:0}function Y(e){const n=m.useMemo(()=>H(e.interaction,e.results),[e.interaction,e.results]);return t.jsxs("div",{className:"px-1 pt-1",children:[t.jsx("div",{className:"d-flex",children:t.jsx(D,{interaction:e.interaction,iconClassName:"flex-shrink-0"})}),t.jsx("div",{className:`my-4 ${q.bar}`,children:t.jsx(K,{interactive:e.interactive,duration:W(e.interactiveMetadata),selectedInteraction:e.interaction})}),t.jsxs("div",{className:"row pt-1 pb-2",children:[t.jsx("div",{className:"col-6 pe-1",children:t.jsxs("div",{className:"bg-light rounded p-2 h-100",children:[!n.awaitingMarking&&t.jsxs("div",{className:"d-flex align-items-center justify-content-between",children:[t.jsx("strong",{children:f("correctlyAnswered")}),t.jsx(N,{percentage:n.percentCorrect,layout:y.LabelOnly})]}),!!n.awaitingMarking&&t.jsx("div",{className:"d-flex align-items-center justify-content-center",children:t.jsx("strong",{children:t.jsx("em",{children:f("pending")})})})]})}),t.jsx("div",{className:"col-6 ps-1",children:t.jsxs("div",{className:"bg-light rounded h-100 p-2 d-flex align-items-center justify-content-between",children:[t.jsx("strong",{children:f("unanswered")}),t.jsx("span",{children:n.unanswered})]})})]})]})}const z=m.forwardRef(({interaction:e,interactive:n,interactiveMetadata:i,results:r,...c},s)=>t.jsx("div",{className:"popover-lg",children:t.jsx(j,{id:`interaction-results-summary-${e.id}`,ref:s,...c,children:t.jsx(j.Body,{children:t.jsx(Y,{interaction:e,interactive:n,interactiveMetadata:i,results:r})})})})),J="_header_2be6f_1",Q="_row_2be6f_4",X="_fixedTable_2be6f_7",Z="_interactionHeaderCellOuter_2be6f_26",B="_hasResults_2be6f_29",ee="_interactionHeaderCellInner_2be6f_36",te="_resultsCellOuter_2be6f_40",ne="_correct_2be6f_56",re="_incorrect_2be6f_70",se="_awaitingMarking_2be6f_80",ie="_unanswered_2be6f_90",ae="_highlightColumn_2be6f_100",ce="_resultsCellInner_2be6f_110",le="_highlightResultsRow_2be6f_121",oe="_resultsRow_2be6f_137",l={header:J,row:Q,fixedTable:X,interactionHeaderCellOuter:Z,hasResults:B,interactionHeaderCellInner:ee,resultsCellOuter:te,correct:ne,incorrect:re,awaitingMarking:se,unanswered:ie,highlightColumn:ae,resultsCellInner:ce,highlightResultsRow:le,resultsRow:oe};function ue(e){var n;return t.jsx(S,{trigger:(n=e.results.students)!=null&&n.length?"click":null,placement:"bottom",overlay:t.jsx(z,{interaction:e.interaction,interactive:e.interactive,interactiveMetadata:e.interactiveMetadata,results:e.results}),rootClose:!0,children:t.jsx("div",{className:`text-center h-100
2
+ d-flex align-items-center justify-content-center
3
+ ${l.interactionHeaderCellInner}`,onMouseEnter:e.onMouseEnter,onMouseLeave:e.onMouseLeave,children:t.jsx("div",{className:"p-1 position-relative",children:e.interactionNumber})})})}function de(e){return t.jsx("svg",{...e,children:t.jsx("path",{fillRule:"evenodd",d:"M7 11h10c.554 0 1 .446 1 1s-.446 1-1 1H7c-.554 0-1-.446-1-1s.446-1 1-1",fill:"currentColor"})})}function me(e){if(e===u.Correct)return M;if(e===u.Incorrect)return $;if(e===u.UnAnswered)return de}function he(e){let n=`${l.resultsCellInner} h-100 position-relative`;return e===u.Correct&&(n+=` ${l.correct} text-success`),e===u.Incorrect&&(n+=` ${l.incorrect} text-danger`),e===u.AwaitingMarking&&(n+=` ${l.awaitingMarking}`),e===u.UnAnswered&&(n+=` ${l.unanswered} text-warning`),n}function ge(e){const n=L.isInteractionCorrect(e.interaction,k(e.studentResults)),i=me(n);return t.jsxs("div",{className:he(n),children:[!!i&&t.jsx(p,{svg:i}),n===u.AwaitingMarking&&t.jsx(x,{})]})}const fe="interactives.studentResultsTable",_=C.encloseNamespace(fe),xe=60;function d(e){return t.jsx("div",{className:`d-flex align-items-center p-2 h-100 ${e.className??""}`,children:e.children})}function h(e){return t.jsx(d,{className:e.column.isSorted&&"fw-bold",children:_(e.phraseKey)})}function ye(e){var r;const[n]=b(v.ANONYMISE_USERS),i=!!((r=e.students)!=null&&r.length);return m.useMemo(()=>[{Header:({column:s})=>t.jsx(h,{column:s,phraseKey:"name"}),accessor:"user",Cell:({value:s})=>t.jsx(d,{children:t.jsx("span",{className:"text-truncate",children:R(s,n)})}),disableSortBy:!i},{Header:({column:s})=>t.jsx(h,{column:s,phraseKey:"unanswered"}),accessor:"summary.unanswered",sortType:"basic",sortDescFirst:!0,disableSortBy:!i,Cell:({value:s})=>t.jsx(d,{children:s})},{Header:({column:s})=>t.jsx(h,{column:s,phraseKey:"score"}),accessor:"summary",id:"score",Cell:({value:s})=>s.awaitingMarking?t.jsx(d,{children:t.jsx(x,{title:_("markingRequired"),className:"flex-grow-1",showLabel:!0})}):t.jsx(d,{children:`${s.correct}/${s.answered+s.unanswered}`}),width:125,sortDescFirst:!0,disableSortBy:!i},{Header:({column:s})=>t.jsx(h,{column:s,phraseKey:"percentage"}),accessor:"summary",id:"percentage",Cell:({value:s})=>s.awaitingMarking?t.jsx(d,{children:t.jsx(x,{title:_("markingRequired"),className:"flex-grow-1",showLabel:!0})}):t.jsx(d,{children:t.jsx(N,{percentage:s.percentCorrect,layout:y.LabelBefore,className:"flex-grow-1"})}),width:125,sortDescFirst:!0,disableSortBy:!i}],[n,i])}function Ie(e,n,i,r,c){return m.useMemo(()=>A(e).map((a,o)=>({Header:()=>t.jsx(ue,{interaction:a,results:i,interactive:e,interactiveMetadata:n,interactionNumber:o+1,onMouseEnter:()=>r(o),onMouseLeave:()=>r(null)}),accessor:"results",id:a.id,disableSortBy:!0,width:xe,Cell:({row:{original:I}})=>t.jsx(ge,{interaction:a,studentResults:I})})),[c])}function Se(e,n,i,r){const[c]=b(v.ANONYMISE_USERS);return m.useMemo(()=>{const s=[];if(n.students.forEach(a=>{s.push({...a,summary:T(e,a)})}),(r==null?void 0:r.id)==="user"){const a=g.sortBy(s,o=>R(o.user,c));return r.desc?a.reverse():a}if((r==null?void 0:r.id)==="summary.unanswered"){const a=g.sortBy(s,o=>o.summary.unanswered);return r.desc?a.reverse():a}if((r==null?void 0:r.id)==="score"||(r==null?void 0:r.id)==="percentage"){const a=g.sortBy(s,o=>o.summary.awaitingMarking?-1:o.summary.percentCorrect);return r.desc?a.reverse():a}return s},[i,r,c])}function pe(e,n){if(!e)return;const i=e.querySelectorAll(`.${l.resultsRow}`);i==null||i.forEach(r=>{r.childNodes.forEach((c,s)=>{c.classList.remove(l.highlightColumn),s===n&&c.classList.add(l.highlightColumn)})})}function Me(e,n){if(!e)return;const i=e.querySelectorAll(`.${l.resultsRow}`);i==null||i.forEach((r,c)=>{r.classList.remove(l.highlightResultsRow),c===n&&r.classList.add(l.highlightResultsRow)})}export{xe as R,Ie as a,Se as b,Me as c,pe as h,l as s,ye as u};
4
+ //# sourceMappingURL=BBKDp0Ea.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BBKDp0Ea.chunk.js","sources":["../../../../libs/shared/src/apps/analytics/components/student-results/interactions-bar/InteractionsBar.tsx","../../../../libs/shared/src/apps/analytics/components/student-results/interaction-results-summary/InteractionResultsSummary.tsx","../../src/apps/interactives/views/interactive-student-results-list/components/student-results-table/InteractionHeaderCell.tsx","../../../../libs/shared/src/images/svg/actions/MinusSvg.tsx","../../src/apps/interactives/views/interactive-student-results-list/components/student-results-table/StudentResultCell.tsx","../../src/apps/interactives/views/interactive-student-results-list/components/student-results-table/StudentResultsTableUtils.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Interaction, Interactive, Timepoint } from 'libs/shared/interfaces';\nimport { DurationHelper } from 'libs/shared/utils/DurationHelper';\nimport { InteractionTypeHelper } from 'libs/shared/utils/interaction-type-helper/InteractionTypeHelper';\n\nimport styles from './interactions-bar.module.scss';\n\nfunction getInteraction(timepoint: Timepoint, selectedInteraction: Interaction): Interaction {\n return timepoint.interactions.find(i => i.id === selectedInteraction.id) || timepoint.interactions[0];\n}\n\ninterface InteractionBarProps {\n interactive: Interactive;\n duration: number;\n selectedInteraction: Interaction;\n}\n\nexport function InteractionsBar(props: InteractionBarProps): React.ReactElement {\n if (!props.duration)\n return <></>;\n\n return (\n <>\n {props.interactive.timepoints.map((t, i) => {\n if (!t.interactions.length)\n return <></>;\n\n const interaction = getInteraction(t, props.selectedInteraction);\n const isSelected = interaction.id === props.selectedInteraction.id;\n\n const bgClassName = isSelected ? (InteractionTypeHelper.getTypeInfo(interaction.typeId)).bgClassName : 'bg-gray-500';\n\n const left = ((t.visibleAt / 1000) / props.duration) * 100;\n\n return (\n <div\n key={i}\n className={`${styles.container} text-center`}\n style={{ left: `${left}%` }}\n >\n <div className={`${styles.interaction} ${bgClassName}`} />\n {!!isSelected &&\n <div>\n {DurationHelper.ToDisplayDuration(t.visibleAt)}\n </div>\n }\n </div>\n );\n })}\n </>\n );\n}","import React from 'react';\nimport { Popover } from 'react-bootstrap';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { InteractionsBar } from 'libs/shared/apps/analytics/components/student-results/interactions-bar/InteractionsBar';\nimport { getInteractionResultsSummary } from 'libs/shared/apps/analytics/utils/InteractiveUtils';\nimport { InteractionLabel } from 'libs/shared/components/interactive-questions/InteractionLabel';\nimport { PercentageIndicator, PercentageIndicatorLayout } from 'libs/shared/components/percentage-indicator/PercentageIndicator';\nimport { Interaction, Interactive, InteractiveMetadata, InteractiveResultSet } from 'libs/shared/interfaces';\n\nimport styles from './interaction-results-summary.module.scss';\n\nconst namespace = 'shared.interactionResultsSummary';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction getDuration(interactiveMetadata: InteractiveMetadata): number {\n if (interactiveMetadata._parentClip)\n return interactiveMetadata._parentClip.endTime - interactiveMetadata._parentClip.startTime;\n\n if (!interactiveMetadata._parentVideo.duration)\n return 0;\n\n return interactiveMetadata._parentVideo.duration / 1000;\n}\n\ninterface InteractionResultsSummaryProps {\n interaction: Interaction;\n interactive: Interactive;\n interactiveMetadata: InteractiveMetadata;\n results: InteractiveResultSet;\n}\n\nfunction InteractionResultsSummary(props: InteractionResultsSummaryProps): JSX.Element {\n const summary = React.useMemo(\n () => getInteractionResultsSummary(props.interaction, props.results),\n [ props.interaction, props.results ]\n );\n\n return (\n <div className='px-1 pt-1'>\n <div className='d-flex'>\n <InteractionLabel\n interaction={props.interaction}\n iconClassName='flex-shrink-0'\n />\n </div>\n <div className={`my-4 ${styles.bar}`}>\n <InteractionsBar\n interactive={props.interactive}\n duration={getDuration(props.interactiveMetadata)}\n selectedInteraction={props.interaction}\n />\n </div>\n <div className='row pt-1 pb-2'>\n <div className='col-6 pe-1'>\n <div className='bg-light rounded p-2 h-100'>\n {!summary.awaitingMarking &&\n <div className='d-flex align-items-center justify-content-between'>\n <strong>{getPhrase('correctlyAnswered')}</strong>\n <PercentageIndicator\n percentage={summary.percentCorrect}\n layout={PercentageIndicatorLayout.LabelOnly}\n />\n </div>\n }\n {!!summary.awaitingMarking &&\n <div className='d-flex align-items-center justify-content-center'>\n <strong>\n <em>{getPhrase('pending')}</em>\n </strong>\n </div>\n }\n </div>\n </div>\n <div className='col-6 ps-1'>\n <div className='bg-light rounded h-100 p-2 d-flex align-items-center justify-content-between'>\n <strong>{getPhrase('unanswered')}</strong>\n <span>{summary.unanswered}</span>\n </div>\n </div>\n </div>\n </div>\n );\n}\n\nconst InteractionResultsSummaryPopover = React.forwardRef((\n { interaction, interactive, interactiveMetadata, results, ...popoverProps }: InteractionResultsSummaryProps,\n ref: React.MutableRefObject<HTMLElement>\n) => {\n return (\n <div className='popover-lg'>\n <Popover\n id={`interaction-results-summary-${interaction.id}`}\n ref={ref as any}\n {...popoverProps}\n >\n <Popover.Body>\n <InteractionResultsSummary\n interaction={interaction}\n interactive={interactive}\n interactiveMetadata={interactiveMetadata}\n results={results}\n />\n </Popover.Body>\n </Popover>\n </div>\n );\n});\n\nexport { InteractionResultsSummaryPopover as InteractionResultsSummary };","import React from 'react';\nimport { OverlayTrigger } from 'react-bootstrap';\n\nimport {\n InteractionResultsSummary\n} from 'libs/shared/apps/analytics/components/student-results/interaction-results-summary/InteractionResultsSummary';\nimport { Interaction, Interactive, InteractiveMetadata, InteractiveResultSet } from 'libs/shared/interfaces';\n\nimport styles from './student-results-table.module.scss';\n\ninterface InteractionHeaderCellProps {\n interaction: Interaction;\n results: InteractiveResultSet;\n interactionNumber: number;\n interactive: Interactive;\n interactiveMetadata: InteractiveMetadata;\n onMouseEnter?: () => void;\n onMouseLeave?: () => void;\n}\n\nexport function InteractionHeaderCell(props: InteractionHeaderCellProps): JSX.Element {\n return (\n <OverlayTrigger\n trigger={props.results.students?.length ? 'click' : null}\n placement='bottom'\n overlay={\n <InteractionResultsSummary\n interaction={props.interaction}\n interactive={props.interactive}\n interactiveMetadata={props.interactiveMetadata}\n results={props.results}\n />\n }\n rootClose\n >\n <div\n className={\n `text-center h-100\n d-flex align-items-center justify-content-center\n ${styles.interactionHeaderCellInner}`\n }\n onMouseEnter={props.onMouseEnter}\n onMouseLeave={props.onMouseLeave}\n >\n <div className='p-1 position-relative'>\n {props.interactionNumber}\n </div>\n </div>\n </OverlayTrigger>\n );\n}","import React from 'react';\n\nexport function MinusSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n fillRule='evenodd'\n d='M7 11h10c.554 0 1 .446 1 1s-.446 1-1 1H7c-.554 0-1-.446-1-1s.446-1 1-1'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nimport { PendingIndicator } from 'libs/shared/apps/analytics/components/pending-indicator/PendingIndicator';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { InteractionCorrectness } from 'libs/shared/enums/InteractionCorrectness';\nimport { CloseSvg } from 'libs/shared/images/svg/actions/CloseSvg';\nimport { MinusSvg } from 'libs/shared/images/svg/actions/MinusSvg';\nimport { CheckSvg } from 'libs/shared/images/svg/status/CheckSvg';\nimport { Interaction, StudentResults } from 'libs/shared/interfaces';\nimport { InteractiveCorrectnessHelper } from 'libs/shared/utils/InteractiveCorrectnessHelper';\nimport { getStudentResult } from 'libs/shared/utils/InteractiveHelper';\n\nimport styles from './student-results-table.module.scss';\n\nfunction getSvg(correctness: InteractionCorrectness) {\n if (correctness === InteractionCorrectness.Correct)\n return CheckSvg;\n\n if (correctness === InteractionCorrectness.Incorrect)\n return CloseSvg;\n\n if (correctness === InteractionCorrectness.UnAnswered)\n return MinusSvg;\n}\n\nfunction getClassName(correctness: InteractionCorrectness): string {\n let className = `${styles.resultsCellInner} h-100 position-relative`;\n\n if (correctness === InteractionCorrectness.Correct)\n className += ` ${styles.correct} text-success`;\n\n if (correctness === InteractionCorrectness.Incorrect)\n className += ` ${styles.incorrect} text-danger`;\n\n if (correctness === InteractionCorrectness.AwaitingMarking)\n className += ` ${styles.awaitingMarking}`;\n\n if (correctness === InteractionCorrectness.UnAnswered)\n className += ` ${styles.unanswered} text-warning`;\n\n return className;\n}\n\ninterface StudentResultCellProps {\n interaction: Interaction;\n studentResults: StudentResults;\n}\n\nexport function StudentResultCell(props: StudentResultCellProps): JSX.Element {\n const correctness = InteractiveCorrectnessHelper.isInteractionCorrect(\n props.interaction,\n getStudentResult(props.studentResults)\n );\n\n const svg = getSvg(correctness);\n\n return (\n <div className={getClassName(correctness)}>\n {!!svg && <SvgContainer svg={svg} />}\n {correctness === InteractionCorrectness.AwaitingMarking &&\n <PendingIndicator />\n }\n </div>\n );\n}","import React from 'react';\nimport { CellProps, Column, ColumnInstance, SortingRule } from 'react-table';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { PendingIndicator } from 'libs/shared/apps/analytics/components/pending-indicator/PendingIndicator';\nimport { StudentResultsWithSummary } from 'libs/shared/apps/analytics/interfaces/StudentResultsWithSummary';\nimport { anonymiseUserName } from 'libs/shared/apps/analytics/utils/AnonymiseUserUtils';\nimport { getStudentResultsSummary } from 'libs/shared/apps/analytics/utils/InteractiveUtils';\nimport { PercentageIndicator, PercentageIndicatorLayout } from 'libs/shared/components/percentage-indicator/PercentageIndicator';\nimport { Interactive, InteractiveMetadata, InteractiveResultSet } from 'libs/shared/interfaces';\nimport { getInteractions } from 'libs/shared/utils/InteractiveHelper';\n\nimport { ViewModelKeys } from 'shared/constants/ReportsViewModels';\n\nimport { InteractionHeaderCell } from './InteractionHeaderCell';\nimport { StudentResultCell } from './StudentResultCell';\n\nimport styles from './student-results-table.module.scss';\n\nconst namespace = 'interactives.studentResultsTable';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport const RESULTS_COL_WIDTH = 60;\n\ninterface CellWrapperProps {\n className?: string;\n}\n\nfunction CellWrapper(props: React.PropsWithChildren<CellWrapperProps>): JSX.Element {\n return (\n <div className={`d-flex align-items-center p-2 h-100 ${props.className ?? ''}`}>\n {props.children}\n </div>\n );\n}\n\ninterface HeaderCellProps {\n column: ColumnInstance<StudentResultsWithSummary>;\n phraseKey: string;\n}\n\nfunction HeaderCell(props: HeaderCellProps): JSX.Element {\n return (\n <CellWrapper className={props.column.isSorted && 'fw-bold'}>\n {getPhrase(props.phraseKey)}\n </CellWrapper>\n );\n}\n\nexport function useGetFixedColumns(results: InteractiveResultSet): Column<StudentResultsWithSummary>[] {\n const [anonymiseUsers] = useViewModel<boolean>(ViewModelKeys.ANONYMISE_USERS);\n const hasResults = !!results.students?.length;\n\n return React.useMemo(() => {\n const cols: Column<StudentResultsWithSummary>[] = [\n {\n Header: ({ column }) => <HeaderCell column={column} phraseKey='name' />,\n accessor: 'user',\n Cell: ({ value }) => (\n <CellWrapper>\n <span className='text-truncate'>{anonymiseUserName(value, anonymiseUsers)}</span>\n </CellWrapper>\n ),\n disableSortBy: !hasResults\n },\n {\n Header: ({ column }) => <HeaderCell column={column} phraseKey='unanswered' />,\n accessor: 'summary.unanswered' as keyof StudentResultsWithSummary,\n sortType: 'basic', // Default is 'alphanumeric' which would treat the numbers as strings\n sortDescFirst: true,\n disableSortBy: !hasResults,\n Cell: ({ value }: CellProps<StudentResultsWithSummary, any>) => <CellWrapper>{value}</CellWrapper>\n },\n {\n Header: ({ column }) => <HeaderCell column={column} phraseKey='score' />,\n accessor: 'summary',\n id: 'score',\n Cell: ({ value }) => {\n if (value.awaitingMarking) {\n return (\n <CellWrapper>\n <PendingIndicator\n title={getPhrase('markingRequired')}\n className='flex-grow-1'\n showLabel\n />\n </CellWrapper>\n );\n }\n\n return (\n <CellWrapper>\n {`${value.correct}/${value.answered + value.unanswered}`}\n </CellWrapper>\n );\n },\n width: 125,\n sortDescFirst: true,\n disableSortBy: !hasResults\n },\n {\n Header: ({ column }) => <HeaderCell column={column} phraseKey='percentage' />,\n accessor: 'summary',\n id: 'percentage',\n Cell: ({ value }) => {\n if (value.awaitingMarking) {\n return (\n <CellWrapper>\n <PendingIndicator\n title={getPhrase('markingRequired')}\n className='flex-grow-1'\n showLabel\n />\n </CellWrapper>\n );\n }\n\n return (\n <CellWrapper>\n <PercentageIndicator\n percentage={value.percentCorrect}\n layout={PercentageIndicatorLayout.LabelBefore}\n className='flex-grow-1'\n />\n </CellWrapper>\n );\n },\n width: 125,\n sortDescFirst: true,\n disableSortBy: !hasResults\n }\n ];\n\n return cols;\n }, [ anonymiseUsers, hasResults ]);\n}\n\n/**\n * Returns memoized table columns. To trigger a recalculation, toggle the value of `refreshData`.\n */\nexport function useGetResultColumns(\n interactive: Interactive,\n interactiveMetadata: InteractiveMetadata,\n results: InteractiveResultSet,\n onColumnHover: (index?: number) => void,\n refreshData: boolean\n): Column<StudentResultsWithSummary>[] {\n return React.useMemo(() => {\n const interactions = getInteractions(interactive);\n\n return interactions.map((interaction, index) => {\n const col: Column<StudentResultsWithSummary> = {\n Header: () => {\n return (\n <InteractionHeaderCell\n interaction={interaction}\n results={results}\n interactive={interactive}\n interactiveMetadata={interactiveMetadata}\n interactionNumber={index + 1}\n onMouseEnter={() => onColumnHover(index)}\n onMouseLeave={() => onColumnHover(null)}\n />\n );\n },\n accessor: 'results',\n /**\n * `onSelectStudentResponse` in `StudentResultsTable` expects the column id to the interaction id\n */\n id: interaction.id,\n disableSortBy: true,\n width: RESULTS_COL_WIDTH,\n Cell: ({ row: { original: studentResults } }) => (\n <StudentResultCell interaction={interaction} studentResults={studentResults} />\n )\n };\n return col;\n });\n }, [refreshData]);\n}\n\n/**\n * Returns memoized table data. To trigger a recalculation, toggle the value of `refreshData`.\n */\nexport function useGetResultsTableData(\n interactive: Interactive,\n results: InteractiveResultSet,\n refreshData: boolean,\n sortBy?: SortingRule<StudentResultsWithSummary>\n): StudentResultsWithSummary[] {\n const [anonymiseUsers] = useViewModel<boolean>(ViewModelKeys.ANONYMISE_USERS);\n\n return React.useMemo(() => {\n const students: StudentResultsWithSummary[] = [];\n\n results.students.forEach(s => {\n students.push(({ ...s, summary: getStudentResultsSummary(interactive, s) }));\n });\n\n if (sortBy?.id === 'user') {\n const sorted = ArrayHelper.sortBy(students, student => anonymiseUserName(student.user, anonymiseUsers));\n\n return sortBy.desc ? sorted.reverse() : sorted;\n }\n\n if (sortBy?.id === 'summary.unanswered') {\n const sorted = ArrayHelper.sortBy(students, student => student.summary.unanswered);\n\n return sortBy.desc ? sorted.reverse() : sorted;\n }\n\n if (sortBy?.id === 'score' || sortBy?.id === 'percentage') {\n const sorted = ArrayHelper.sortBy(students, student => {\n if (student.summary.awaitingMarking)\n return -1;\n\n return student.summary.percentCorrect;\n });\n\n return sortBy.desc ? sorted.reverse() : sorted;\n }\n\n return students;\n }, [ refreshData, sortBy, anonymiseUsers ]);\n}\n\nexport function highlightColumns(tableEl: HTMLElement, highlightIndex?: number): void {\n if (!tableEl)\n return;\n\n const rows = tableEl.querySelectorAll(`.${styles.resultsRow}`);\n\n rows?.forEach(row => {\n row.childNodes.forEach((col: HTMLElement, colIdx: number) => {\n col.classList.remove(styles.highlightColumn);\n\n if (colIdx === highlightIndex)\n col.classList.add(styles.highlightColumn);\n });\n });\n}\n\nexport function highlightRows(tableEl: HTMLElement, highlightIndex?: number): void {\n if (!tableEl)\n return;\n\n const rows = tableEl.querySelectorAll(`.${styles.resultsRow}`);\n\n rows?.forEach((row, rowIdx) => {\n row.classList.remove(styles.highlightResultsRow);\n\n if (rowIdx === highlightIndex)\n row.classList.add(styles.highlightResultsRow);\n });\n}"],"names":["getInteraction","timepoint","selectedInteraction","InteractionsBar","props","t","jsx","Fragment","interaction","isSelected","bgClassName","InteractionTypeHelper","left","jsxs","styles","DurationHelper","namespace","getPhrase","LanguageService","getDuration","interactiveMetadata","InteractionResultsSummary","summary","React","getInteractionResultsSummary","InteractionLabel","PercentageIndicator","PercentageIndicatorLayout","InteractionResultsSummaryPopover","interactive","results","popoverProps","ref","Popover","InteractionHeaderCell","OverlayTrigger","_a","MinusSvg","getSvg","correctness","InteractionCorrectness","CheckSvg","CloseSvg","getClassName","className","StudentResultCell","InteractiveCorrectnessHelper","getStudentResult","svg","SvgContainer","PendingIndicator","RESULTS_COL_WIDTH","CellWrapper","HeaderCell","useGetFixedColumns","anonymiseUsers","useViewModel","ViewModelKeys","hasResults","column","value","anonymiseUserName","useGetResultColumns","onColumnHover","refreshData","getInteractions","index","studentResults","useGetResultsTableData","sortBy","students","s","getStudentResultsSummary","sorted","ArrayHelper","student","highlightColumns","tableEl","highlightIndex","rows","row","col","colIdx","highlightRows","rowIdx"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{v as c,j as n,w as i,x as a,F as l}from"./app-CQEXKRTo.js";function x(t){let s=t.buttons.map(e=>{const o=()=>{e.success?l.isFunction(t.onDone)&&t.onDone():l.isFunction(t.onFail)&&t.onFail(),t.closePopup()};return{buttonText:e.text,className:e.className,onClick:o,type:e.type,close:e.close}});return s=c.sortBy(s,"close"),n.jsxs(i,{title:t.title,closePopup:t.closePopup,children:[n.jsx("p",{dangerouslySetInnerHTML:{__html:a.sanitize(t.text)}}),n.jsx("div",{className:"d-flex justify-content-end border-top pt-3 px-3 mx-n3",children:s.map((e,o)=>n.jsx("button",{className:e.className,onClick:e.onClick,type:e.type,children:e.buttonText},o))})]})}export{x as DialogView};
2
+ //# sourceMappingURL=BE4qMmvm.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BE4qMmvm.chunk.js","sources":["../../../../libs/shared/src/views/dialog/DialogView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { DialogOptions, PopupViewProps } from 'libs/shared/interfaces';\n\ninterface DialogViewProps extends DialogOptions {\n onDone?: () => void;\n onFail?: () => void;\n}\n\ntype PropTypes = React.PropsWithChildren<DialogViewProps & PopupViewProps>;\n\nexport function DialogView(props: PropTypes): React.ReactElement {\n let buttons = props.buttons.map(b => {\n const onClick = () => {\n if (b.success)\n FunctionHelper.isFunction(props.onDone) && props.onDone();\n else\n FunctionHelper.isFunction(props.onFail) && props.onFail();\n\n props.closePopup();\n };\n\n return {\n buttonText: b.text,\n className: b.className,\n onClick,\n type: b.type,\n close: b.close\n };\n });\n\n /**\n * The dismiss action should always be on the left side of the popup\n */\n buttons = ArrayHelper.sortBy(buttons, 'close');\n\n return (\n <Popup title={props.title} closePopup={props.closePopup}>\n <p dangerouslySetInnerHTML={{ __html: TextHelper.sanitize(props.text) }} />\n <div className='d-flex justify-content-end border-top pt-3 px-3 mx-n3'>\n {buttons.map((b, idx) => (\n <button key={idx} className={b.className} onClick={b.onClick} type={b.type}>\n {b.buttonText}\n </button>\n ))}\n </div>\n </Popup>\n );\n}"],"names":["DialogView","props","buttons","b","onClick","FunctionHelper","ArrayHelper","Popup","jsx","TextHelper","idx"],"mappings":"kEAgBO,SAASA,EAAWC,EAAsC,CAC/D,IAAIC,EAAUD,EAAM,QAAQ,IAAIE,GAAK,CACnC,MAAMC,EAAU,IAAM,CAChBD,EAAE,QACJE,EAAe,WAAWJ,EAAM,MAAM,GAAKA,EAAM,OAAA,EAEjDI,EAAe,WAAWJ,EAAM,MAAM,GAAKA,EAAM,OAAA,EAEnDA,EAAM,WAAA,CACR,EAEA,MAAO,CACL,WAAYE,EAAE,KACd,UAAWA,EAAE,UACb,QAAAC,EACA,KAAMD,EAAE,KACR,MAAOA,EAAE,KAAA,CAEb,CAAC,EAKD,OAAAD,EAAUI,EAAY,OAAOJ,EAAS,OAAO,SAG1CK,EAAA,CAAM,MAAON,EAAM,MAAO,WAAYA,EAAM,WAC3C,SAAA,CAAAO,EAAAA,IAAC,IAAA,CAAE,wBAAyB,CAAE,OAAQC,EAAW,SAASR,EAAM,IAAI,CAAA,EAAK,EACzEO,EAAAA,IAAC,MAAA,CAAI,UAAU,wDACZ,SAAAN,EAAQ,IAAI,CAACC,EAAGO,IACfF,EAAAA,IAAC,SAAA,CAAiB,UAAWL,EAAE,UAAW,QAASA,EAAE,QAAS,KAAMA,EAAE,KACnE,SAAAA,EAAE,UAAA,EADQO,CAEb,CACD,CAAA,CACH,CAAA,EACF,CAEJ"}
@@ -0,0 +1,10 @@
1
+ import{j as t,l as c,c3 as Ue,v as it,r as Pe,F as P,a5 as le,h as k,L as $,a6 as D,a7 as T,c4 as st,aU as ot,aV as ct,i as q,T as lt,bx as Ge,by as rt,I as dt,aW as _,x as Me,c2 as Y,a3 as b,av as We,bI as ut,ah as re,bz as de,p as f,a0 as Te,az as mt,bH as vt,ab as ht,bD as Le,at as qe,aa as gt}from"./app-CQEXKRTo.js";import{B as M,a as A,C as xt}from"./rO0zPagv.chunk.js";import{B as Ye}from"./DZWKI51S.chunk.js";import{u as ft}from"./sBa2VMAv.chunk.js";import{B as ue}from"./Dm6PeyeG.chunk.js";import{g as yt,B as jt,I as me,a as ve}from"./BZV5U3ST.chunk.js";import{O as Se,c as _t,I as Ct}from"./EpoqEdEt.chunk.js";import{u as kt}from"./z0Is6h8v.chunk.js";import{a as he,u as Ke}from"./9-ob4xwW.chunk.js";import{T as bt}from"./BzFtDyVZ.chunk.js";function Nt(e){return t.jsx("svg",{...e,children:t.jsx("path",{fill:"currentColor",d:"M11.67 19.376a.5.5 0 0 0 .66 0c.732-.64 1.435-1.239 2.1-1.805 1.453-1.235 2.722-2.314 3.703-3.335 1.443-1.504 2.367-2.984 2.367-4.812 0-2.588-1.83-4.866-4.517-4.866-1.736 0-2.865 1.008-3.535 1.954a7 7 0 0 0-.448.733 7 7 0 0 0-.448-.733c-.67-.946-1.8-1.954-3.535-1.954C5.33 4.558 3.5 6.836 3.5 9.424c0 1.828.924 3.308 2.367 4.812.98 1.02 2.25 2.1 3.703 3.335.665.566 1.368 1.165 2.1 1.805m.812-10.7.001-.004.007-.022.03-.097a5.83 5.83 0 0 1 .744-1.463c.565-.798 1.428-1.532 2.72-1.532 2.03 0 3.516 1.72 3.516 3.866 0 1.445-.713 2.686-2.089 4.119-.944.984-2.151 2.01-3.579 3.224-.575.49-1.187 1.01-1.832 1.57-.645-.56-1.257-1.08-1.832-1.57-1.428-1.214-2.635-2.24-3.58-3.224C5.214 12.11 4.5 10.869 4.5 9.423c0-2.146 1.487-3.865 3.517-3.865 1.29 0 2.154.734 2.719 1.532a5.8 5.8 0 0 1 .774 1.56l.007.022v.004a.5.5 0 0 0 .965 0"})})}function wt(e){return t.jsx("svg",{...e,children:t.jsx("path",{fill:"currentColor",fillOpacity:.9,d:"M11.67 19.376a.5.5 0 0 0 .66 0c.732-.64 1.435-1.239 2.1-1.805 1.453-1.235 2.722-2.314 3.703-3.335 1.443-1.504 2.367-2.984 2.367-4.812 0-2.588-1.83-4.866-4.517-4.866-1.736 0-2.865 1.008-3.535 1.954a7 7 0 0 0-.448.733 7 7 0 0 0-.448-.733c-.67-.946-1.8-1.954-3.535-1.954C5.33 4.558 3.5 6.836 3.5 9.424c0 1.828.924 3.308 2.367 4.812.98 1.02 2.25 2.1 3.703 3.335.665.566 1.368 1.165 2.1 1.805"})})}const K={isFavouritedByCurrentUser(e){var n;return((n=e==null?void 0:e.favouritedBy)==null?void 0:n.data.length)===1},isFavouritedByUser(e,n){var a;return!!it.findWhere((a=e==null?void 0:e.favouritedBy)==null?void 0:a.data,{id:n==null?void 0:n.id})},updateVideoState(e,n,a){return{id:e.id,favouritedBy:{data:a?[{id:n.id}]:[],pagination:{limit:25,cursors:{next:"",previous:""}}}}},showFavouriteButton(e,n){var a;return(a=c.getCanBeConsumed(e))!=null&&a.canConsume?!!(n||Ue.isTabletOrMobile()||K.isFavouritedByCurrentUser(e)):!1}},$t="_favourited_19h9u_1",Pt="_favouriteButton_19h9u_1",Tt="_heart_19h9u_5",Lt="_heartOutline_19h9u_16",J={favourited:$t,favouriteButton:Pt,heart:Tt,heartOutline:Lt},St="shared.favouriteButton",Ft=$.encloseNamespace(St);function ge(e){const n=ft(),a=K.isFavouritedByCurrentUser(e.video),[o,i]=Pe.useState(a);Pe.useEffect(()=>{i(a)},[a]);let s=`d-flex align-items-center justify-content-center cursor-pointer ${J.favouriteButton} ${o?J.favourited:""}`;e.className&&(s+=` ${e.className}`);function r(){const d=!o;function u(){function m(){return c.isClip(e.video)?d?"favouriteClipError":"unfavouriteClipError":c.isInteractive(e.video)?d?"favouriteInteractiveError":"unfavouriteInteractiveError":d?"favouriteVideoError":"unfavouriteVideoError"}n.error(Ft(m())),i(!d)}i(d),e.setFavourite(e.video,d,null,u,e.analyticsData,e.analyticsOptions)}return!P.isFunction(e.setFavourite)||!P.isFunction(e.canFavourite)?t.jsx(t.Fragment,{}):e.canFavourite(e.video)?t.jsxs(le,{className:s,onClick:r,tabIndex:e.preventFocus?-1:void 0,children:[t.jsx(k,{svg:wt,className:`svg-container ${J.heart}`}),t.jsx(k,{svg:Nt,className:`svg-container ${J.heartOutline}`})]}):t.jsx(t.Fragment,{})}function It(e){const n=c.getVideoProgress(e.video),a=n&&e.video.duration&&n/e.video.duration*1e5;return a?t.jsx("div",{className:"bg-primary h-100",style:{width:`${a}%`}}):t.jsx(t.Fragment,{})}const Vt="_bottomBar_575p1_1",Ot={bottomBar:Vt};function xe(e){return c.isVideo(e.video)?t.jsx("div",{className:Ot.bottomBar,children:t.jsx(It,{video:e.video})}):t.jsx(t.Fragment,{})}const Dt="d-inline-block svg-container",Ht="span";function zt(e){const{children:n,className:a=Dt,tagName:o=Ht,size:i=D.Standard,onClick:l,title:s,tooltipPlacement:r="right"}=e,d=o,u={className:`${a} svg-container ${i}`,onClick:P.isFunction(l)?l:null};return s?t.jsx(T,{title:s,placement:r,children:t.jsx(d,{...u,children:n})}):t.jsx(d,{...u,children:n})}const Bt="_std_1fcr4_1",Rt="_sm_1fcr4_5",At="_stdIcon_1fcr4_10",Et="_smIcon_1fcr4_21",H={std:Bt,sm:Rt,stdIcon:At,smIcon:Et};function fe(e){var n,a,o;return!c.isInteractive(e.video)&&!c.isClip(e.video)?t.jsx(t.Fragment,{}):!e.video._liteOwner&&!((n=e.video._isClickViewCurated)!=null&&n.value)?t.jsx(t.Fragment,{}):(a=e.video._isClickViewCurated)!=null&&a.value?t.jsx("div",{className:`${e.size==="sm"?H.sm:H.std} me-1 rounded-circle position-relative bg-white`,children:t.jsx(zt,{className:`me-1 ${e.size==="sm"?H.smIcon:H.stdIcon}`,children:t.jsx(st,{})})}):t.jsx("div",{className:`${e.size==="sm"?H.sm:H.std} me-1`,children:t.jsx(ot,{imageCdnUrl:e.imageCdnUrl,initials:ct.getInitials(e.video._liteOwner.name,e.video._liteOwner.surname),imageUrl:(o=e.video._liteOwner.avatar)==null?void 0:o.url})})}const Ut="_pluginHover_wpoz0_1",Gt={pluginHover:Ut},Mt="shared.pluginHover";function ye(e){return!e.isPlugin||e.isPluginPopup?t.jsx(t.Fragment,{}):t.jsx(q,{appLink:e.appLink,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,onClick:e.onClick,className:`
2
+ position-absolute top-0 start-0 end-0 bottom-0 opacity-0 cursor-pointer
3
+ ${Gt.pluginHover}
4
+ ${e.className?e.className:""}
5
+ `,children:t.jsx("span",{className:"position-absolute top-50 start-50 translate-middle text-nowrap h4 text-white",children:t.jsx(lt,{namespace:Mt,phrase:"embed"})})})}const Wt="_padlock_z61gf_1",qt="_sm_z61gf_8",Fe={padlock:Wt,sm:qt};function je(e){const n=e.size==="sm"?D.Small:D.Standard;return t.jsx("div",{className:`${Fe.padlock} ${e.size==="sm"?Fe.sm:""} bg-white cursor-default d-flex align-items-center justify-content-center`,children:t.jsx(k,{svg:Ge,size:n})})}const Yt="_logo_1kz1f_1",Kt="_sm_1kz1f_9",Ie={logo:Yt,sm:Kt};ne.defaultProps={size:"md"};function ne(e){var i,l,s,r,d;if(!c.isVideo(e.video)||!e.companyLogoFallbackUrl)return t.jsx(t.Fragment,{});const n=(l=(i=e.video.productionCompanies)==null?void 0:i.data)==null?void 0:l[0],a=rt.createUrl(((s=n==null?void 0:n.logo)==null?void 0:s.url)??e.companyLogoFallbackUrl,{size:dt.Small}),o=yt(n.name,jt);return a?t.jsx("div",{children:t.jsx(T,{title:n==null?void 0:n.name,spanHack:!0,children:t.jsx("div",{className:`${Ie.logo} ${e.size==="sm"?Ie.sm:""} ${!((r=n==null?void 0:n.metadata)!=null&&r.colour)&&o}`,style:{backgroundImage:`url(${a})`,backgroundColor:(d=n==null?void 0:n.metadata)==null?void 0:d.colour}})})}):t.jsx(t.Fragment,{})}const ee={padNumber(e,n){let a=e.toString();if(a.length>=n)return a;for(n=n-a.length;n>0;)a="0"+a,n--;return a}},Xt={isSeries(e){return(e==null?void 0:e.typeId)===_.Series},buildSeriesSeasonEpisodeText(e,n,a){if(!e)return"";if(!n||!a)return e.toUpperCase();const o=ee.padNumber(n,2),i=ee.padNumber(a,2);return`${e.toUpperCase()} S${o} • E${i}`},getRating(e){var n;return(n=e._rating)==null?void 0:n.value}},Jt="_subText_5u663_1",Qt={subText:Jt};function Xe(e){const n=`text-uppercase text-truncate mb-0 ${Qt.subText} ${e.className}`;return e.appLink?t.jsx(q,{className:n,appLink:e.appLink,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,title:e.title,ariaLabel:e.ariaLabel,children:e.children}):t.jsx("div",{className:n,title:e.title,"aria-label":e.ariaLabel,children:e.children})}const Zt="_appLink_1owb0_1",pt="_hoverUnderline_1owb0_4",_e={appLink:Zt,hoverUnderline:pt},en="shared.videoSubText",Je=$.encloseNamespace(en);function tn(e){const{video:n}=e,{season:a}=n;if(!n.episodeNumber||!a)return t.jsx(t.Fragment,{});const o=ee.padNumber(a.number,2),i=ee.padNumber(n.episodeNumber,2);return t.jsxs("span",{className:`d-inline-block ${e.appLink?_e.hoverUnderline:""}`,children:[e.withSeriesTitle&&t.jsx(t.Fragment,{children:" "}),!!o&&`S${o} • `,"E",i]})}function nn(e){const n=c.getReleaseDate(e.video);return n?c.hasSeries(e.video)?t.jsx(t.Fragment,{children:` • ${n}`}):t.jsx(t.Fragment,{children:n}):t.jsx(t.Fragment,{})}function an(e){var m;const{appLink:n,video:a,className:o=""}=e,i=a==null?void 0:a.series,l=c.getReleaseDate(e.video);if(!(i!=null&&i.id)&&!l)return t.jsx(t.Fragment,{});const s=(i==null?void 0:i.id)&&n&&{...n,args:[i.id,Me.slugify(i.name)]},r={...e.analyticsData,id:i==null?void 0:i.id,name:i==null?void 0:i.name,videoId:a==null?void 0:a.id,videoName:a==null?void 0:a.name},d={...e.analyticsOptions,entity:We.Series,actionType:b.Click,descriptor:Y.Title},u=Xt.buildSeriesSeasonEpisodeText(i==null?void 0:i.name,(m=a.season)==null?void 0:m.number,a.episodeNumber);return t.jsxs(Xe,{appLink:s,className:`d-block ${_e.appLink} ${o}`,analyticsData:r,analyticsOptions:d,title:u,ariaLabel:`${Je("ariaSeries")} ${u}`,children:[(i==null?void 0:i.name)&&i.name,t.jsx(tn,{...e,withSeriesTitle:!0}),t.jsx(nn,{...e})]})}function sn(e){var d,u;const{appLink:n,video:a,className:o=""}=e,i=(u=(d=a==null?void 0:a.productionCompanies)==null?void 0:d.data)==null?void 0:u[0];if(!(i!=null&&i.id))return t.jsx(t.Fragment,{});const l=(i==null?void 0:i.id)&&n&&{...n,args:[i.id,Me.slugify(i.name)]},s={...e.analyticsData,id:i==null?void 0:i.id,name:i==null?void 0:i.name,videoId:a==null?void 0:a.id,videoName:a==null?void 0:a.name},r={...e.analyticsOptions,entity:We.Company,actionType:b.Click,descriptor:Y.Title};return t.jsx(Xe,{appLink:l,className:`d-block ${_e.appLink} ${o}`,analyticsData:s,analyticsOptions:r,title:i.name,ariaLabel:`${Je("ariaCompany")} ${i.name}`,children:i.name})}function Ce(e){const{type:n="series"}=e;return n==="none"?t.jsx(t.Fragment,{}):n==="series"?t.jsx(an,{...e}):t.jsx(sn,{...e})}function on(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 Qe(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 Ze(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 cn="_topLeftContainer_z6mhb_1",ln="_draft_z6mhb_7",rn="_badge_z6mhb_10",dn="_svg_z6mhb_20",un="_text_z6mhb_29",mn="_sm_z6mhb_33",B={topLeftContainer:cn,draft:ln,badge:rn,svg:dn,text:un,sm:mn},vn="shared.typeBadge",ie=$.encloseNamespace(vn);function hn(e){switch(e){case _.Clip:return ie("clip");case _.Interactive:return ie("interactive");case _.Resource:return ie("resource");default:return""}}function gn(e){switch(e){case _.Clip:return on;case _.Interactive:return Qe;case _.Resource:return Ze;default:return null}}function xn(e,n){switch(e){case _.Clip:return"bg-ultramarine";case _.Interactive:return n===ut.Draft?B.draft:"bg-green";case _.Resource:return"bg-indigo";default:return""}}ce.default={size:"md"};function ce(e){const n=`${B.badge} rounded-pill text-white ps-0 ${e.size==="sm"?B.sm:""}`;return t.jsx("div",{className:e.inContainer?"":B.topLeftContainer,children:t.jsxs("div",{className:`${n} ${xn(e.typeId,e.status)}`,children:[t.jsx(k,{className:`svg-container d-block ${B.svg}`,size:e.size==="sm"?D.Small:D.Standard,svg:gn(e.typeId)}),t.jsx("span",{className:B.text,children:hn(e.typeId)})]})})}ae.default={size:"md"};function ae(e){return c.isClip(e.video)?t.jsx(ce,{typeId:_.Clip,size:e.size,inContainer:!0}):c.isInteractive(e.video)?t.jsx(ce,{typeId:_.Interactive,status:e.video.status,size:e.size,inContainer:!0}):t.jsx(t.Fragment,{})}const fn="_hoverContainer_c9508_1",yn="_hovering_c9508_12",jn="_theatreModeOn_c9508_16",se={hoverContainer:fn,hovering:yn,theatreModeOn:jn};function ke(e){var l;const n=kt();if((l=n.useInitialize)==null||l.call(n,e),!n.hasProvider)return t.jsx(t.Fragment,{});if(n.mode==="picture-in-picture")return t.jsx(t.Fragment,{});if(e.mode==="hover"&&n.isOnPlayPage)return t.jsx(t.Fragment,{});if(e.location==="play-page"){const s=n.mode==="theatre"&&e.objectTypeId!==_.Interactive;return t.jsx("div",{className:s?`w-100 h-100 ${se.theatreModeOn}`:"",children:t.jsx(Se,{node:n.portalNode})})}const a=n.started;let o="rounded-3";e.location==="popout-video"&&(o="rounded-top-3");const i=`${se.hoverContainer} ${a?se.hovering:""} ${o} overflow-hidden`;return t.jsx("div",{className:i,children:t.jsx(Se,{node:n.portalNode})})}function pe(e){return t.jsx("svg",{...e,children:t.jsx("path",{fillRule:"evenodd",d:"M0 12C0 5.373 5.373 0 12 0s12 5.373 12 12-5.373 12-12 12S0 18.627 0 12m23 0c0-6.075-4.925-11-11-11S1 5.925 1 12s4.925 11 11 11 11-4.925 11-11M9 7.498c0-.551.387-.756.847-.469l7.306 4.567c.468.292.46.77 0 1.058l-7.306 4.567c-.468.292-.847.074-.847-.47z",fill:"currentColor"})})}const _n="_overlayContainer_d3jn7_1",Cn="_topLeftContainer_d3jn7_9",kn="_topRightContainer_d3jn7_15",bn="_overlay_d3jn7_1",Nn="_downScale_d3jn7_39",wn="_title_d3jn7_45",$n="_gradient_d3jn7_49",Pn="_playIcon_d3jn7_58",w={overlayContainer:_n,topLeftContainer:Cn,topRightContainer:kn,overlay:bn,downScale:Nn,title:wn,gradient:$n,playIcon:Pn};function Tn(e){let n="mb-1";return e&&(n+=w.downScale),n}function Ln(e){var N,y,j;const{canNavigate:n,canConsume:a}=c.getCanBeConsumed(e.video),o=re.isObject((N=e.appLink)==null?void 0:N.params)?(y=e.appLink)==null?void 0:y.params:{},i={...e.analyticsOptions,entity:c.getAnalyticsEntity(e.video)},l=K.showFavouriteButton(e.video,e.hovering),s=c.isVideo(e.video),r=c.getRating(e.video),[d,u]=he({delay:100}),m=u&&a&&e.hoverToPlay,g={...e.analyticsData,id:e.video.id,name:e.video.name},v={...i,actionType:b.Click,descriptor:Y.Thumbnail};return t.jsx(T,{title:c.getPrivacyReasoning(e.video),spanHack:!0,spanHackClassName:"",children:t.jsxs("div",{className:"position-relative rounded-3 overflow-hidden",ref:d,children:[t.jsx(ye,{isPlugin:e.commonVideoProps.isPlugin,isPluginPopup:e.commonVideoProps.isPluginPopup,className:"rounded-3",appLink:n?e.appLink:null,analyticsData:g,analyticsOptions:v}),l&&t.jsx("div",{className:w.topRightContainer,children:t.jsx(ge,{setFavourite:e.commonVideoProps.setFavourite,canFavourite:e.commonVideoProps.canFavourite,video:e.video,analyticsData:e.analyticsData,analyticsOptions:i})}),!n&&t.jsx("div",{className:w.topRightContainer,children:t.jsx(je,{})}),t.jsxs("div",{className:`${w.topLeftContainer} d-flex flex-no-wrap`,children:[e.showOwner&&t.jsx(fe,{video:e.video,imageCdnUrl:e.commonVideoProps.imageCdnUrl}),t.jsx(ae,{video:e.video}),t.jsx(ne,{video:e.video,companyLogoFallbackUrl:e.commonVideoProps.companyLogoFallbackUrl})]}),t.jsxs(ue,{data:c.getThumbnail(e.video),appLink:n?e.appLink:null,imageType:de.Thumbnails,imageOptions:e.imageOptions,preload:e.preload,className:w.gradient,alt:("series"in e.video&&((j=e.video.series)!=null&&j.name)?`${e.video.series.name}: `:"")+e.video.name,analyticsData:g,analyticsOptions:v,preventFocus:!0,children:[!!(e.hovering&&n)&&t.jsx(k,{className:w.playIcon,svg:pe}),t.jsx(me,{type:ve.Video}),t.jsx("div",{className:w.overlayContainer,children:t.jsxs("div",{className:w.overlay,children:[t.jsxs("div",{className:`${Tn(e.hovering)} ${w.title}`,children:[s&&t.jsx(Ce,{type:e.commonVideoProps.subTextType,className:"text-shadow clamp-1",video:e.video,appLink:null,analyticsOptions:null}),t.jsx("span",{className:"h6 text-reset text-shadow clamp-1",children:c.getTitle(e.video)})]}),t.jsx(xe,{video:e.video}),e.hovering&&t.jsx(Ye,{className:"mt-1",children:c.isVideo(e.video)&&t.jsxs(t.Fragment,{children:[t.jsx(M,{type:A.Rating,data:r}),e.video.hasSubtitle&&t.jsx("span",{className:"badge p-0",children:t.jsx(k,{svg:xt})}),t.jsx(M,{type:A.Interactive,data:e.video.hasInteractives}),t.jsx(M,{type:A.DurationExact,data:c.getDuration(e.video)})]})})]})})]}),m&&t.jsx(ke,{objectId:e.video.id,objectTypeId:e.video.typeId,mode:"hover",context:o.context,contextId:o.contextId,moviesAndTv:o.mtv},e.video.id)]})})}const Sn=f.createContext({});function Fn(e,n,a){const[o,i]=f.useState(e),l=f.useRef(e?new Date:null);f.useEffect(()=>{if(!(!n||!a)&&!(!a.entity||!n.location))if(e)o||i(!0),l.current=new Date,Te.logUserAction(n,{...a,actionType:b.Hover});else{if(!o)return;const s=new Date().getTime()-l.current.getTime();l.current=null,Te.logUserAction({...n,timeHoveredInMilliseconds:s,timeHoveredInSeconds:s/1e3},{...a,actionType:b.Unhover})}},[e])}const Q=8,In=1.2,Vn=(e,n,a,o=In)=>{const{x:i,y:l,width:s,height:r}=e,d=document.getElementById("content-width-reference");if(!d)return{};let u,m=n||s*o,g=n?n*(r/s):r*o,v=n?m/s:o;u=i-(m-s)/2,m<a&&(u=u-(a-m)/2,m=a,v=m/s,g=r*v);const N=l-(g-r)/2+window.scrollY;let y=u,j="center";return u-d.offsetLeft<Q&&(y=i-Q/2,j="8px"),d.offsetWidth+d.offsetLeft-(u+m)<Q&&(y=n?i+s-n:i-s*(v-1)+Q,j="calc(100% - 8px)"),{left:y,top:N,height:g,width:m,transformOrigin:j,position:"absolute",originalWidth:s,originalHeight:r}},On="_positionWrapper_gkmg7_1",Dn="_animationWrapper_gkmg7_4",Ve={positionWrapper:On,animationWrapper:Dn};function et(e){var V,U;const{hoverableComponent:n,componentProps:a,minHoverWidth:o,fixedHoverWidth:i,hoverScale:l}=e,{setPreviewContentNode:s}=f.useContext(Sn);s===void 0&&mt.throw(new vt("Please use VideoPreviewContext inside a VideoPreviewContextProvider"));const r=f.useMemo(()=>_t(),[]),[d,u]=he({delay:100}),[m,g]=Ke(),[v,N]=f.useState(!1),y=f.useRef(null),j=f.useRef(!1),C=u||g;Fn(C,e.analyticsData,e.analyticsOptions),f.useEffect(()=>{j.current!==C&&(s(C||v?r:null),j.current=C)},[C]);const{x:L,y:S,width:h,height:F}=((U=(V=y.current)==null?void 0:V.getBoundingClientRect)==null?void 0:U.call(V))||{},I=f.useMemo(()=>Vn({x:L,y:S,width:h,height:F},i,o,l),[L,S,h,F,l]),X=I?I.originalWidth/I.width:1,E=n;return t.jsxs("div",{ref:y,children:[t.jsx("div",{ref:d,children:t.jsx(E,{isHovering:!1,...a})}),(C||v)&&t.jsx(Ct,{node:r,children:t.jsx("div",{className:`${Ve.positionWrapper} ${Ve.animationWrapper}`,style:{"--scale":X,...I},ref:m,children:t.jsx(E,{isHovering:!0,hoverPositionConfig:I,cleanPortalNode:()=>s(null),...a})})})]})}et.ReferenceContainer=e=>t.jsx("div",{id:"content-width-reference",className:"flex-grow-1",children:e.children});function Hn(e){return e.audience?t.jsx("div",{className:`audience-label border rounded-pill d-inline-block px-2 text-nowrap
6
+ ${"border-"+e.border} ${e.className?e.className:""}`,children:e.audience.name}):t.jsx(t.Fragment,{})}const zn="_badgeContainer_1jc1x_1",Bn="_sm_1jc1x_24",Oe={badgeContainer:zn,sm:Bn};be.defaultProps={newDurationStyle:!0,size:"md"};function be(e){const n=c.getRating(e.video),a=!!e.audience&&e.size!=="sm",o=!a&&!e.hideRating&&!!n&&e.size!=="sm";return e.hideDuration&&!a&&!o?t.jsx(t.Fragment,{}):t.jsxs(Ye,{className:`${Oe.badgeContainer} ${e.size==="sm"?Oe.sm:""}`,children:[a&&t.jsx(Hn,{audience:e.audience,className:"bg-white text-dark",border:"dark"}),o&&t.jsx(M,{type:A.Rating,data:n}),!e.hideDuration&&t.jsx(M,{type:e.newDurationStyle?A.DurationApproximate:A.DurationExact,data:e.duration||c.getDuration(e.video)})]})}function Rn(e){if(!e.yearGroups)return t.jsx(t.Fragment,{});const n=ht.mapRestrictionToText(e.video._restrictions,e.yearGroups),{canConsume:a}=c.getCanBeConsumed(e.video);return!a||!n?t.jsx(t.Fragment,{}):t.jsx(T,{spanHack:!0,spanHackClassName:e.className||"d-inline-block ps-1",title:n,placement:e.tooltipPlacement||"top",children:t.jsx(k,{svg:Ge,size:e.size==="sm"?D.Small:D.Standard})})}const An="_dot_dlckk_1",En="_smallText_dlckk_6",Un="_title_dlckk_9",oe={dot:An,smallText:En,title:Un},Gn="shared.videoTitle",Mn=$.encloseNamespace(Gn),De=new Date;function Wn(e){return Le.isSame(e,De,"year")&&Le.isSame(e,De,"month")}te.defaultProps={titleSize:"h6",className:""};function te(e){var i;const n=e.video.dateReleased,a=n&&Wn(n),o=e.showNewVideoIndicator&&a&&((i=e.video._isClickViewCurated)==null?void 0:i.value);return t.jsxs(t.Fragment,{children:[t.jsx(T,{title:`${o?Mn("newVideo"):""}`,spanHack:!0,spanHackClassName:"d-inline-block",children:o&&t.jsx("span",{className:`rounded-circle bg-green d-inline-block me-1 ${oe.dot} ${e.titleSize==="h6"?oe.smallText:""}`})}),t.jsx("h2",{className:`${e.titleSize} ${oe.title} ${e.className} d-inline`,children:e.title||e.video.name}),e.showPadlock&&t.jsx(Rn,{video:e.video,yearGroups:e.yearGroups,size:e.lockSize})]})}const qn="_container_kefcx_1",Yn="_titleContainer_kefcx_4",He={container:qn,titleContainer:Yn};function ze(e){var i,l;const{video:n,appLink:a}=e,{canNavigate:o}=c.getCanBeConsumed(n);return t.jsx("div",{className:`mt-2 ${He.container}`,children:t.jsxs("div",{className:`d-flex flex-column ${He.titleContainer}`,children:[c.isVideo(n)&&t.jsx(Ce,{type:e.commonVideoProps.subTextType,className:"text-truncate",video:n,appLink:(l=(i=e.commonVideoProps).getSubTextAppLink)==null?void 0:l.call(i,e.video),analyticsOptions:{location:qe.VideoThumbnail}}),t.jsx(q,{className:"text-reset clamp-2 align-middle",appLink:o?a:null,children:t.jsx(te,{video:e.video,yearGroups:e.commonVideoProps.yearGroups,lockSize:"sm",showNewVideoIndicator:e.commonVideoProps.showNewVideoIndicator,showPadlock:!e.commonVideoProps.hasStudentExperience&&!e.commonVideoProps.hasGuestExperience})})]})})}const Kn="_tag_1p8e8_1",Xn="_icon_1p8e8_5",Jn="_disabled_1p8e8_15",Qn="_active_1p8e8_18",G={tag:Kn,icon:Xn,disabled:Jn,active:Qn};function Ne(e){var n,a;return e.appLink?t.jsx(q,{appLink:e.appLink,analyticsData:e.appLinkAnalyticsData,analyticsOptions:e.appLinkAnalyticsOptions,className:`
7
+ p-1 pe-2 rounded-pill d-inline-flex align-items-center cursor-pointer
8
+ text-decoration-none ${(n=e.theme)==null?void 0:n.container} ${G.tag} ${e.active?G.active:""}
9
+ `,children:t.jsx(Be,{...e})}):t.jsx("div",{className:`p-1 pe-2 rounded-pill d-inline-flex align-items-center ${(a=e.theme)==null?void 0:a.container} ${G.tag} ${G.disabled}`,children:t.jsx(Be,{...e})})}function Be(e){var n;return t.jsxs(t.Fragment,{children:[t.jsx(k,{className:`${G.icon} rounded-circle bg-${e.iconVariant} text-white`,svg:e.svg}),t.jsx("span",{className:`ps-1 text-nowrap user-select-none ${(n=e.theme)==null?void 0:n.tabLabel}`,children:e.text})]})}function Zn(e){return t.jsx("svg",{...e,children:t.jsx("path",{fill:"currentColor",d:"M16.863 20c-.662 0-1.21-.567-1.21-1.252s.548-1.252 1.21-1.252c.663 0 1.21.567 1.21 1.252S17.527 20 16.864 20m0-1.441a.183.183 0 0 0-.182.189c0 .118.068.189.182.189.115 0 .183-.071.183-.19a.183.183 0 0 0-.183-.188m0-.118a.516.516 0 0 1-.502-.52v-6.19L11.75 9.158a.53.53 0 0 1-.205-.71c.137-.26.456-.354.685-.212l4.886 2.717a.57.57 0 0 1 .274.473v6.496a.52.52 0 0 1-.526.52m-4.908-4.205a.8.8 0 0 1-.229-.048L2.296 9.51A.55.55 0 0 1 2 9.014c0-.212.114-.401.297-.472l9.52-4.489a.47.47 0 0 1 .434 0l9.452 4.489a.55.55 0 0 1 .297.472.49.49 0 0 1-.297.473l-9.52 4.701a.8.8 0 0 1-.228.048m-8.22-5.198 8.22 4.087 8.288-4.087-8.22-3.898zm8.151 8.41c-4.749 0-6.644-2.905-6.712-3.047a.7.7 0 0 1-.092-.284V10.81c0-.283.229-.52.503-.52s.502.237.502.52v3.142c.388.496 2.077 2.434 5.776 2.434 3.653 0 5.548-1.938 6.005-2.457v-2.93c0-.284.228-.52.502-.52s.502.236.502.52v3.118a.6.6 0 0 1-.091.307c-.046.142-2.192 3.024-6.895 3.024"})})}const pn="shared.classroomGuideTag";function ea(e){var n;return!e.video||c.isInteractive(e.video)||c.isClip(e.video)?t.jsx(t.Fragment,{}):(n=e.video._hasCurriculumLinks)!=null&&n.value?t.jsx(Ne,{theme:{container:"classroom-guide-tag",tabLabel:"classroom-guide-tag-label"},svg:Zn,iconVariant:"navy",text:$.getPhrase(pn,"curriculum"),appLink:e.appLink,appLinkAnalyticsData:{videoGuidanceType:"curriculum",...c.getAnalyticsData(e.video),...e.analyticsData},appLinkAnalyticsOptions:{actionType:b.Click,entity:c.getAnalyticsEntity(e.video),...e.analyticsOptions}}):t.jsx(t.Fragment,{})}const ta="shared.interactivesTag";function na(e){var a;if(!c.showInteractivesGuidance(e.video))return t.jsx(t.Fragment,{});const n=!c.isInteractive(e.video)&&(((a=e.video.interactives)==null?void 0:a.data.length)||0);return t.jsx(Ne,{svg:Qe,iconVariant:"green",text:$.getPhrase(ta,"interactives",{smartCount:n}),appLink:e.appLink,appLinkAnalyticsData:{videoGuidanceType:"interactive",videoGuidanceTotalItems:n,...c.getAnalyticsData(e.video),...e.analyticsData},appLinkAnalyticsOptions:{actionType:b.Click,entity:c.getAnalyticsEntity(e.video),...e.analyticsOptions}})}const aa="shared.resourcesTag";function ia(e){var n,a;return c.isInteractive(e)?0:(((n=e.resources)==null?void 0:n.data.length)||0)+(((a=e.links)==null?void 0:a.data.length)||0)}function sa(e){if(!c.showResourcesGuidance(e.video))return t.jsx(t.Fragment,{});const n=ia(e.video);return t.jsx(Ne,{svg:Ze,iconVariant:"indigo",text:$.getPhrase(aa,"resources",{smartCount:n}),appLink:e.appLink,appLinkAnalyticsData:{videoGuidanceType:"resource",videoGuidanceTotalItems:n,...c.getAnalyticsData(e.video),...e.analyticsData},appLinkAnalyticsOptions:{actionType:b.Click,entity:c.getAnalyticsEntity(e.video),...e.analyticsOptions}})}function oa(e){var a,o,i,l,s,r;const n=c.showInteractivesGuidance(e.video)&&c.showResourcesGuidance(e.video);return t.jsxs("div",{className:`${e.containerClassName} ${n?e.responsiveClassName:""}`,children:[t.jsx(ea,{appLink:(o=(a=e.commonVideoProps).getClassroomGuideAppLink)==null?void 0:o.call(a,e.video.id,e.video.typeId),video:e.video,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions}),t.jsx(sa,{appLink:(l=(i=e.commonVideoProps).getResourceGuidanceAppLink)==null?void 0:l.call(i,e.video.id,e.video.typeId),video:e.video,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions}),t.jsx(na,{appLink:(r=(s=e.commonVideoProps).getInteractiveGuidanceAppLink)==null?void 0:r.call(s,e.video.id,e.video.typeId),video:e.video,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions})]})}const ca="_button_tlbos_1",Re={button:ca},la="shared.removeVideoButton";function ra(e){const n=e.removeButtonTooltip||$.getPhrase(la,"removeFromRow");return t.jsx("div",{className:"me-2",children:t.jsx(T,{title:n,spanHack:!0,children:t.jsx(le,{onClick:e.onClickRemove,className:`d-flex align-items-center justify-content-center ${Re.button}`,tabIndex:e.preventFocus?-1:void 0,children:t.jsx(k,{svg:gt,className:`svg-container ${Re.heart}`})})})})}const da="_topLeftContainer_1t9d5_1",ua="_details_1t9d5_7",ma="_isHovering_1t9d5_11",va="_videoGuidanceTags_1t9d5_14",ha="_responsiveGuidance_1t9d5_21",ga="_topRightContainer_1t9d5_35",z={topLeftContainer:da,details:ua,isHovering:ma,videoGuidanceTags:va,responsiveGuidance:ha,topRightContainer:ga},xa=e=>{var S;const{video:n,appLink:a,imageOptions:o,preload:i,isHovering:l,hoverToPlay:s}=e,r=re.isObject(a==null?void 0:a.params)?a==null?void 0:a.params:{},{canNavigate:d,canConsume:u}=c.getCanBeConsumed(n);f.useEffect(()=>()=>{var h;(h=e.cleanPortalNode)==null||h.call(e)},[]);function m(h){var F;h.preventDefault(),(F=e.onClickRemove)==null||F.call(e)}let g="position-relative bg-white";e.extraClasses&&(g+=` ${e.extraClasses}`),l&&(g+=" rounded-3 shadow-lg");const v={...e.analyticsOptions,entity:c.getAnalyticsEntity(n)},N=e.isHovering&&u&&s,y=K.showFavouriteButton(e.video,l);function j(){return P.isFunction(e.onClickRemove)?Ue.isTabletOrMobile()?!0:l:!1}const C={...e.analyticsData,id:n.id,name:n.name},L={...v,actionType:b.Click,descriptor:Y.Thumbnail};return t.jsxs("div",{className:g,children:[t.jsxs("div",{className:z.topRightContainer,children:[j()&&t.jsx(ra,{onClickRemove:m,removeButtonTooltip:e.removeButtonTooltip,preventFocus:!0}),y&&t.jsx(ge,{setFavourite:e.commonVideoProps.setFavourite,canFavourite:e.commonVideoProps.canFavourite,video:n,analyticsData:e.analyticsData,analyticsOptions:v,preventFocus:!0}),!d&&t.jsx(T,{title:c.getPrivacyReasoning(e.video),spanHack:!0,spanHackClassName:"",children:t.jsx(je,{})})]}),t.jsxs("div",{className:"position-relative",children:[t.jsx(ye,{isPlugin:e.commonVideoProps.isPlugin,isPluginPopup:e.commonVideoProps.isPluginPopup,className:l?"rounded-top-3":"rounded-3",onClick:()=>{var h;return(h=e.cleanPortalNode)==null?void 0:h.call(e)},appLink:d?a:null,analyticsData:C,analyticsOptions:L}),t.jsxs(ue,{onClick:()=>{var h;return(h=e.cleanPortalNode)==null?void 0:h.call(e)},data:c.getThumbnail(n),appLink:d?a:null,imageType:de.Thumbnails,imageOptions:o,preload:i,alt:("series"in n&&((S=n.series)!=null&&S.name)?`${n.series.name}: `:"")+n.name,analyticsData:C,analyticsOptions:L,preventFocus:!e.hideTitle,appLinkClassName:`position-absolute top-0 start-0 h-100 w-100 overflow-hidden ${l?"rounded-top-3":"rounded-3"}`,imageClassName:l?"rounded-top-3":"rounded-3",children:[t.jsx(me,{type:ve.Video}),t.jsxs("div",{className:"p-absolute w-100 h-100 text-white",children:[t.jsxs("div",{className:`${z.topLeftContainer} d-flex flex-no-wrap`,children:[e.showOwner&&t.jsx(fe,{video:n,imageCdnUrl:e.commonVideoProps.imageCdnUrl}),t.jsx(ae,{video:n}),t.jsx(ne,{video:n,companyLogoFallbackUrl:e.commonVideoProps.companyLogoFallbackUrl})]}),t.jsx(be,{video:e.video,audience:e.audience,hideRating:e.hideRating,hideDuration:e.hideDuration}),t.jsx(xe,{video:e.video})]})]}),N&&t.jsx(ke,{objectId:e.video.id,objectTypeId:e.video.typeId,mode:"hover",context:r.context,contextId:r.contextId,moviesAndTv:r.mtv,location:"popout-video"},e.video.id)]}),!l&&!e.hideTitle&&t.jsx(ze,{...e}),t.jsx("div",{className:`${z.details} ${l?`${z.isHovering} box-shadow`:""}`,children:l&&t.jsx(t.Fragment,{children:t.jsxs("div",{className:`${l?z.videoGuidanceTags:""}`,children:[t.jsx(ze,{...e}),e.showVideoGuidance&&l&&t.jsx(oa,{commonVideoProps:e.commonVideoProps,video:e.video,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,responsiveClassName:z.responsiveGuidance,containerClassName:"d-flex justify-content-start align-items-center pt-2"})]})})})]})};function fa(e){return t.jsx(t.Fragment,{children:t.jsx(et,{hoverableComponent:xa,componentProps:e,fixedHoverWidth:400,minHoverWidth:400,analyticsData:{...e.analyticsData,id:e.video.id,name:e.video.name},analyticsOptions:{...e.analyticsOptions,entity:c.getAnalyticsEntity(e.video)}})})}const ya="_mask_1jupb_1",ja="_small_1jupb_10",_a="_video_1jupb_10",Ca="_playlist_1jupb_18",ka="_maskContainer_1jupb_28",W={mask:ya,small:ja,video:_a,playlist:Ca,maskContainer:ka};var tt=(e=>(e[e.Video=0]="Video",e[e.Playlist=1]="Playlist",e[e.Series=2]="Series",e))(tt||{});function ba(e){return e===0?W.video:e===1?W.playlist:""}function Na(e){return e===0?pe:null}nt.defaults={size:"md"};function nt(e){const{type:n,size:a}=e,o=ba(n),i=Na(n);return t.jsxs("div",{className:`${W.maskContainer} ${a==="sm"?W.small:""}`,children:[t.jsx("div",{className:W.mask}),t.jsx(k,{svg:i,className:o})]})}const wa="_unchecked_vv53a_1",$a="_outline_vv53a_5",Pa="_checked_vv53a_20",Ta="_checkMark_vv53a_27",Z={unchecked:wa,outline:$a,checked:Pa,checkMark:Ta};var La=(e=>(e.None="None",e.Complete="Complete",e.Incomplete="Incomplete",e))(La||{});at.defaultProps={style:"filled"};function at(e){const[n,a]=f.useState(e.status==="Complete");f.useEffect(()=>{a(e.status==="Complete")},[e.status]);let o=`cursor-pointer rounded-circle ${n?Z.checked:Z.unchecked}`;e.className&&(o+=` ${e.className}`),e.style==="outline"&&(o+=` ${Z.outline}`);function i(){return!!e.status&&e.status!=="None"&&P.isFunction(e.setStatus)}function l(){const s=!n;a(s);const r=s?"Complete":"Incomplete";e.setStatus(r).catch(()=>{a(!s)})}return i()?t.jsx(le,{className:o,onClick:l,disabled:e.disabled,children:t.jsx(k,{svg:bt,className:`svg-container ${Z.checkMark}`})}):t.jsx(t.Fragment,{})}const Sa="_container_mn7d4_1",Fa="_action_mn7d4_10",p={container:Sa,action:Fa};function Ia(e){var n;return!!(!((n=c.getCanBeConsumed(e.video))!=null&&n.canConsume)||P.isFunction(e.setFavourite)&&P.isFunction(e.canFavourite)||P.isFunction(e.setCheckMarkStatus))}function Va(e){const{canNavigate:n}=c.getCanBeConsumed(e.video);return n?Ia(e)?t.jsxs("div",{className:`${p.container} d-flex align-items-center`,children:[t.jsx(ge,{setFavourite:e.setFavourite,canFavourite:e.canFavourite,video:e.video,className:p.action,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,preventFocus:!0}),t.jsx(at,{status:e.checkMarkStatus,setStatus:e.setCheckMarkStatus,className:p.action})]}):t.jsx(t.Fragment,{}):t.jsx("div",{className:p.container,children:t.jsx(je,{size:e.size})})}var R=(e=>(e[e.Below=1]="Below",e[e.Overlay=2]="Overlay",e[e.Independent=3]="Independent",e))(R||{});const Oa="_titleOverlay_f9p1o_1",Da="_clip_f9p1o_11",Ha="_interactive_f9p1o_18",za="_titleBelow_f9p1o_25",Ba="_overlayContainer_f9p1o_29",Ra="_topLeftContainer_f9p1o_36",Aa="_gradient_f9p1o_42",O={titleOverlay:Oa,clip:Da,interactive:Ha,titleBelow:za,overlayContainer:Ba,topLeftContainer:Ra,gradient:Aa},Ea="shared.staticVideoThumbnail";function Ae(e){var d,u;const{type:n,video:a,textPosition:o}=e,i=n==="static",l=o===R.Overlay,{canNavigate:s}=c.getCanBeConsumed(e.video);let r="";return l?(r=O.titleOverlay,s&&(c.isClip(a)&&(r+=" "+O.clip),c.isInteractive(a)&&(r+=" "+O.interactive))):r=O.titleBelow,t.jsxs("div",{className:r,children:[c.isVideo(a)&&t.jsx(Ce,{type:i?e.commonVideoProps.subTextType:"series",className:l?"text-shadow clamp-1":"clamp-2",video:a,appLink:i&&!l?(u=(d=e.commonVideoProps).getSubTextAppLink)==null?void 0:u.call(d,e.video):null,analyticsOptions:{location:qe.VideoThumbnail}}),l||!s||!i?t.jsx("span",{className:"h6 text-reset clamp-1",children:t.jsx(te,{video:a,title:a.name??$.getPhrase(Ea,"videoUnavailable"),showNewVideoIndicator:i&&e.commonVideoProps.showNewVideoIndicator,showPadlock:i&&!e.commonVideoProps.hasStudentExperience&&!e.commonVideoProps.hasGuestExperience})}):t.jsx(q,{className:"h6 text-reset clamp-2",appLink:e.appLink,children:t.jsx(te,{video:a,showNewVideoIndicator:e.commonVideoProps.showNewVideoIndicator,showPadlock:!e.commonVideoProps.hasStudentExperience&&!e.commonVideoProps.hasGuestExperience})})]})}function Ee(e){var V,U,we;const{type:n,video:a,textPosition:o,imageOptions:i,preload:l}=e,s=n==="static",r=s&&re.isObject((V=e.appLink)==null?void 0:V.params)?(U=e.appLink)==null?void 0:U.params:{},[d,u]=Ke(),[m,g]=he({delay:100}),{canNavigate:v,canConsume:N}=c.getCanBeConsumed(a);function y(x){d.current=x,m.current=x}const j=s&&g&&N&&e.hoverToPlay;function C(){var x,$e;if(s)return!e.disableFavourite&&(($e=(x=e.commonVideoProps).canFavourite)==null?void 0:$e.call(x,e.video))&&K.showFavouriteButton(a,u)}function L(){let x="position-relative";return x+=s&&e.appLink&&v?" cursor-pointer":"",e.extraClasses&&(x+=` ${e.extraClasses}`),o===R.Overlay&&(x+=" rounded overflow-hidden"),x}function S(){let x=`overflow-hidden ${e.size==="sm"?"rounded":"rounded-3"}`;return e.imageClassName&&(x+=` ${e.imageClassName}`),o===R.Overlay&&(x+=` ${O.gradient}`),x}const h=s?{...e.analyticsOptions,entity:c.getAnalyticsEntity(a)}:{},F=s&&!!e.appLink&&!e.hideMask&&v,I=s?c.getPrivacyReasoning(e.video,e.showSignIn):"",X=s?{...e.analyticsData,id:a.id,name:a.name}:{},E={...h,actionType:b.Click,descriptor:Y.Thumbnail};return t.jsx(T,{title:I,spanHack:!0,spanHackClassName:"",children:t.jsxs("div",{className:L(),ref:y,children:[s&&t.jsx(ye,{isPlugin:e.commonVideoProps.isPlugin,isPluginPopup:e.commonVideoProps.isPluginPopup,className:e.size==="sm"?"rounded":"rounded-3",appLink:v?e.appLink:null,analyticsData:X,analyticsOptions:E}),t.jsx(Va,{video:a,checkMarkStatus:!s&&e.checkMarkStatus,setCheckMarkStatus:!s&&e.setCheckMarkStatus,setFavourite:s&&e.commonVideoProps.setFavourite,canFavourite:C,analyticsData:s&&e.analyticsData,analyticsOptions:s&&h,size:e.size}),t.jsxs(ue,{data:c.getThumbnail(a),appLink:s&&v?e.appLink:null,onClick:s&&v?e.onClick:void 0,imageType:de.Thumbnails,imageOptions:i,preload:l,className:S(),alt:("series"in a&&((we=a.series)!=null&&we.name)?`${a.series.name}: `:"")+a.name,analyticsData:X,analyticsOptions:E,preventFocus:!0,children:[F&&t.jsx(nt,{type:tt.Video,size:e.size}),t.jsx(me,{type:ve.Video}),t.jsxs("div",{className:O.overlayContainer,children:[o===R.Overlay&&t.jsx(Ae,{...e}),t.jsxs("div",{className:`${O.topLeftContainer} d-flex flex-no-wrap`,children:[s&&e.showOwner&&t.jsx(fe,{video:a,imageCdnUrl:e.commonVideoProps.imageCdnUrl}),!e.hideVideoTypeBadge&&t.jsx(ae,{video:a,size:e.size}),s&&t.jsx(ne,{video:a,companyLogoFallbackUrl:e.commonVideoProps.companyLogoFallbackUrl,size:e.size})]}),!e.hideBottomBar&&t.jsx(xe,{video:a}),t.jsx(be,{video:e.video,audience:e.audience,hideRating:e.hideRating,hideDuration:e.hideDuration,newDurationStyle:e.newDurationStyle,size:e.size})]})]}),j&&t.jsx(ke,{objectId:e.video.id,objectTypeId:e.video.typeId,mode:"hover",context:r.context,contextId:r.contextId,moviesAndTv:r.mtv},e.video.id),o===R.Below&&t.jsx(Ae,{...e})]})})}Ua.defaultProps={hideRating:!0,size:"md",hoverToPlay:!1,showOwner:!0};function Ua(e){switch(e.type){case"static":return t.jsx(Ee,{...e});case"cosmetic":return t.jsx(Ee,{...e});case"expandable":return t.jsx(Ln,{...e});case"popout":return t.jsx(fa,{...e});default:return}}export{La as C,R as T,Ua as V,Ce as a,Xe as b};
10
+ //# sourceMappingURL=BEjQ8YiC.chunk.js.map