@clickview/reports 0.72.0 → 0.73.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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/2nrjFQG6.chunk.js +2 -0
  103. package/dist/scripts/2nrjFQG6.chunk.js.map +1 -0
  104. package/dist/scripts/5O9SdVRZ.chunk.js +2 -0
  105. package/dist/scripts/5O9SdVRZ.chunk.js.map +1 -0
  106. package/dist/scripts/6SDR31f9.chunk.js +15 -0
  107. package/dist/scripts/6SDR31f9.chunk.js.map +1 -0
  108. package/dist/scripts/6bLX1DNm.chunk.js +2 -0
  109. package/dist/scripts/6bLX1DNm.chunk.js.map +1 -0
  110. package/dist/scripts/AhdqfBDC.chunk.js +2 -0
  111. package/dist/scripts/AhdqfBDC.chunk.js.map +1 -0
  112. package/dist/scripts/B-PpJIqi.chunk.js +6 -0
  113. package/dist/scripts/B-PpJIqi.chunk.js.map +1 -0
  114. package/dist/scripts/B-ZRPp91.chunk.js +2 -0
  115. package/dist/scripts/B-ZRPp91.chunk.js.map +1 -0
  116. package/dist/scripts/B0keXzHm.chunk.js +2 -0
  117. package/dist/scripts/B0keXzHm.chunk.js.map +1 -0
  118. package/dist/scripts/B17N2umP.chunk.js +2 -0
  119. package/dist/scripts/B17N2umP.chunk.js.map +1 -0
  120. package/dist/scripts/B2Eafs31.chunk.js +2 -0
  121. package/dist/scripts/B2Eafs31.chunk.js.map +1 -0
  122. package/dist/scripts/B5Y7eket.chunk.js +2 -0
  123. package/dist/scripts/B5Y7eket.chunk.js.map +1 -0
  124. package/dist/scripts/B7E0FLQT.chunk.js +2 -0
  125. package/dist/scripts/B7E0FLQT.chunk.js.map +1 -0
  126. package/dist/scripts/B7fZs_l2.chunk.js +2 -0
  127. package/dist/scripts/B7fZs_l2.chunk.js.map +1 -0
  128. package/dist/scripts/B8DfvvPE.chunk.js +2 -0
  129. package/dist/scripts/B8DfvvPE.chunk.js.map +1 -0
  130. package/dist/scripts/B8dw4aip.chunk.js +2 -0
  131. package/dist/scripts/B8dw4aip.chunk.js.map +1 -0
  132. package/dist/scripts/BAaa7KIR.chunk.js +2 -0
  133. package/dist/scripts/BAaa7KIR.chunk.js.map +1 -0
  134. package/dist/scripts/BBmrqSNv.chunk.js +2 -0
  135. package/dist/scripts/BBmrqSNv.chunk.js.map +1 -0
  136. package/dist/scripts/BGX0h6W4.chunk.js +2 -0
  137. package/dist/scripts/BGX0h6W4.chunk.js.map +1 -0
  138. package/dist/scripts/BOeg7AfB.chunk.js +2 -0
  139. package/dist/scripts/BOeg7AfB.chunk.js.map +1 -0
  140. package/dist/scripts/BOeiDHFY.chunk.js +2 -0
  141. package/dist/scripts/BOeiDHFY.chunk.js.map +1 -0
  142. package/dist/scripts/BRRS4PKg.chunk.js +2 -0
  143. package/dist/scripts/BRRS4PKg.chunk.js.map +1 -0
  144. package/dist/scripts/BRV-uFtb.chunk.js +2 -0
  145. package/dist/scripts/BRV-uFtb.chunk.js.map +1 -0
  146. package/dist/scripts/BZfWKvo2.chunk.js +42 -0
  147. package/dist/scripts/BZfWKvo2.chunk.js.map +1 -0
  148. package/dist/scripts/B_rCaFK4.chunk.js +2 -0
  149. package/dist/scripts/B_rCaFK4.chunk.js.map +1 -0
  150. package/dist/scripts/BiFq1JkI.chunk.js +2 -0
  151. package/dist/scripts/BiFq1JkI.chunk.js.map +1 -0
  152. package/dist/scripts/BmX8J1Ve.chunk.js +2 -0
  153. package/dist/scripts/BmX8J1Ve.chunk.js.map +1 -0
  154. package/dist/scripts/Bn0dkU5Y.chunk.js +2 -0
  155. package/dist/scripts/Bn0dkU5Y.chunk.js.map +1 -0
  156. package/dist/scripts/BncpEV2O.chunk.js +2 -0
  157. package/dist/scripts/BncpEV2O.chunk.js.map +1 -0
  158. package/dist/scripts/Bodl5h9Z.chunk.js +2 -0
  159. package/dist/scripts/Bodl5h9Z.chunk.js.map +1 -0
  160. package/dist/scripts/Br5YjgjU.chunk.js +2 -0
  161. package/dist/scripts/Br5YjgjU.chunk.js.map +1 -0
  162. package/dist/scripts/Br_GRaAX.chunk.js +2 -0
  163. package/dist/scripts/Br_GRaAX.chunk.js.map +1 -0
  164. package/dist/scripts/C-A1kCBK.chunk.js +2 -0
  165. package/dist/scripts/C-A1kCBK.chunk.js.map +1 -0
  166. package/dist/scripts/C-Bnglks.chunk.js +2 -0
  167. package/dist/scripts/C-Bnglks.chunk.js.map +1 -0
  168. package/dist/scripts/C3KFo3Z8.chunk.js +2 -0
  169. package/dist/scripts/C3KFo3Z8.chunk.js.map +1 -0
  170. package/dist/scripts/C9tiioy8.chunk.js +2 -0
  171. package/dist/scripts/C9tiioy8.chunk.js.map +1 -0
  172. package/dist/scripts/CAfDUf5-.chunk.js +2 -0
  173. package/dist/scripts/CAfDUf5-.chunk.js.map +1 -0
  174. package/dist/scripts/CEPQucRi.chunk.js +2 -0
  175. package/dist/scripts/CEPQucRi.chunk.js.map +1 -0
  176. package/dist/scripts/CFprhMg1.chunk.js +10 -0
  177. package/dist/scripts/CFprhMg1.chunk.js.map +1 -0
  178. package/dist/scripts/CHlm4fQa.chunk.js +4 -0
  179. package/dist/scripts/CHlm4fQa.chunk.js.map +1 -0
  180. package/dist/scripts/CHqxDe0w.chunk.js +2 -0
  181. package/dist/scripts/CHqxDe0w.chunk.js.map +1 -0
  182. package/dist/scripts/CIb-6ujT.chunk.js +2 -0
  183. package/dist/scripts/CIb-6ujT.chunk.js.map +1 -0
  184. package/dist/scripts/CNA329cN.chunk.js +2 -0
  185. package/dist/scripts/CNA329cN.chunk.js.map +1 -0
  186. package/dist/scripts/CObSk_oj.chunk.js +2 -0
  187. package/dist/scripts/CObSk_oj.chunk.js.map +1 -0
  188. package/dist/scripts/CSdY8TC0.chunk.js +10 -0
  189. package/dist/scripts/CSdY8TC0.chunk.js.map +1 -0
  190. package/dist/scripts/CT2oDRt5.chunk.js +2 -0
  191. package/dist/scripts/CT2oDRt5.chunk.js.map +1 -0
  192. package/dist/scripts/CTdrOjLq.chunk.js +2 -0
  193. package/dist/scripts/CTdrOjLq.chunk.js.map +1 -0
  194. package/dist/scripts/CW7x8M-z.chunk.js +2 -0
  195. package/dist/scripts/CW7x8M-z.chunk.js.map +1 -0
  196. package/dist/scripts/CX5q-0jT.chunk.js +2 -0
  197. package/dist/scripts/CX5q-0jT.chunk.js.map +1 -0
  198. package/dist/scripts/CcURCjqv.chunk.js +3 -0
  199. package/dist/scripts/CcURCjqv.chunk.js.map +1 -0
  200. package/dist/scripts/Cg_qt_Rk.chunk.js +2 -0
  201. package/dist/scripts/Cg_qt_Rk.chunk.js.map +1 -0
  202. package/dist/scripts/Cmu1J2M7.chunk.js +262 -0
  203. package/dist/scripts/Cmu1J2M7.chunk.js.map +1 -0
  204. package/dist/scripts/CpDqrbAS.chunk.js +2 -0
  205. package/dist/scripts/CpDqrbAS.chunk.js.map +1 -0
  206. package/dist/scripts/Cr_-BIsS.chunk.js +2 -0
  207. package/dist/scripts/Cr_-BIsS.chunk.js.map +1 -0
  208. package/dist/scripts/CsmuPVPc.chunk.js +2 -0
  209. package/dist/scripts/CsmuPVPc.chunk.js.map +1 -0
  210. package/dist/scripts/Cvic0YnD.chunk.js +2 -0
  211. package/dist/scripts/Cvic0YnD.chunk.js.map +1 -0
  212. package/dist/scripts/CySrdBwK.chunk.js +2 -0
  213. package/dist/scripts/CySrdBwK.chunk.js.map +1 -0
  214. package/dist/scripts/Cyyw1SCS.chunk.js +3 -0
  215. package/dist/scripts/Cyyw1SCS.chunk.js.map +1 -0
  216. package/dist/scripts/CztNQjFH.chunk.js +2 -0
  217. package/dist/scripts/CztNQjFH.chunk.js.map +1 -0
  218. package/dist/scripts/D-6R65i0.chunk.js +2 -0
  219. package/dist/scripts/D-6R65i0.chunk.js.map +1 -0
  220. package/dist/scripts/D-LQhb27.chunk.js +2 -0
  221. package/dist/scripts/D-LQhb27.chunk.js.map +1 -0
  222. package/dist/scripts/D-uzbGYL.chunk.js +2 -0
  223. package/dist/scripts/D-uzbGYL.chunk.js.map +1 -0
  224. package/dist/scripts/D2zM4Kzz.chunk.js +2 -0
  225. package/dist/scripts/D2zM4Kzz.chunk.js.map +1 -0
  226. package/dist/scripts/D7o6GeeF.chunk.js +2 -0
  227. package/dist/scripts/D7o6GeeF.chunk.js.map +1 -0
  228. package/dist/scripts/DA9TJjID.chunk.js +2 -0
  229. package/dist/scripts/DA9TJjID.chunk.js.map +1 -0
  230. package/dist/scripts/DBskBTCv.chunk.js +4 -0
  231. package/dist/scripts/DBskBTCv.chunk.js.map +1 -0
  232. package/dist/scripts/DDeXXa-Z.chunk.js +2 -0
  233. package/dist/scripts/DDeXXa-Z.chunk.js.map +1 -0
  234. package/dist/scripts/DEFJUMtW.chunk.js +2 -0
  235. package/dist/scripts/DEFJUMtW.chunk.js.map +1 -0
  236. package/dist/scripts/DEgmC0Yv.chunk.js +2 -0
  237. package/dist/scripts/DEgmC0Yv.chunk.js.map +1 -0
  238. package/dist/scripts/DFFdinDv.chunk.js +2 -0
  239. package/dist/scripts/DFFdinDv.chunk.js.map +1 -0
  240. package/dist/scripts/DGgXamq8.chunk.js +2 -0
  241. package/dist/scripts/DGgXamq8.chunk.js.map +1 -0
  242. package/dist/scripts/DIQhtsg6.chunk.js +2 -0
  243. package/dist/scripts/DIQhtsg6.chunk.js.map +1 -0
  244. package/dist/scripts/DJcBw7EJ.chunk.js +2 -0
  245. package/dist/scripts/DJcBw7EJ.chunk.js.map +1 -0
  246. package/dist/scripts/DLmWeya6.chunk.js +2 -0
  247. package/dist/scripts/DLmWeya6.chunk.js.map +1 -0
  248. package/dist/scripts/DNEgb5v1.chunk.js +2 -0
  249. package/dist/scripts/DNEgb5v1.chunk.js.map +1 -0
  250. package/dist/scripts/DNODoEV9.chunk.js +2 -0
  251. package/dist/scripts/DNODoEV9.chunk.js.map +1 -0
  252. package/dist/scripts/DNRcL1e9.chunk.js +2 -0
  253. package/dist/scripts/DNRcL1e9.chunk.js.map +1 -0
  254. package/dist/scripts/DUnqV5wd.chunk.js +2 -0
  255. package/dist/scripts/DUnqV5wd.chunk.js.map +1 -0
  256. package/dist/scripts/DW5KxGbM.chunk.js +380 -0
  257. package/dist/scripts/DW5KxGbM.chunk.js.map +1 -0
  258. package/dist/scripts/D_WfHgZP.chunk.js +2 -0
  259. package/dist/scripts/D_WfHgZP.chunk.js.map +1 -0
  260. package/dist/scripts/DbBlo1x3.chunk.js +34 -0
  261. package/dist/scripts/DbBlo1x3.chunk.js.map +1 -0
  262. package/dist/scripts/DbxJfn_n.chunk.js +2 -0
  263. package/dist/scripts/DbxJfn_n.chunk.js.map +1 -0
  264. package/dist/scripts/DePDakSd.chunk.js +2 -0
  265. package/dist/scripts/DePDakSd.chunk.js.map +1 -0
  266. package/dist/scripts/DeoNhQh0.chunk.js +3 -0
  267. package/dist/scripts/DeoNhQh0.chunk.js.map +1 -0
  268. package/dist/scripts/DsbeU03P.chunk.js +2 -0
  269. package/dist/scripts/DsbeU03P.chunk.js.map +1 -0
  270. package/dist/scripts/DtbthThZ.chunk.js +2 -0
  271. package/dist/scripts/DtbthThZ.chunk.js.map +1 -0
  272. package/dist/scripts/Dtv-7Q3n.chunk.js +2 -0
  273. package/dist/scripts/Dtv-7Q3n.chunk.js.map +1 -0
  274. package/dist/scripts/Dvas_dD0.chunk.js +2 -0
  275. package/dist/scripts/Dvas_dD0.chunk.js.map +1 -0
  276. package/dist/scripts/HCxw4efP.chunk.js +2 -0
  277. package/dist/scripts/HCxw4efP.chunk.js.map +1 -0
  278. package/dist/scripts/J7X3wFpY.chunk.js +2 -0
  279. package/dist/scripts/J7X3wFpY.chunk.js.map +1 -0
  280. package/dist/scripts/JUNXcGbu.chunk.js +2 -0
  281. package/dist/scripts/JUNXcGbu.chunk.js.map +1 -0
  282. package/dist/scripts/LS1BGGIr.chunk.js +2 -0
  283. package/dist/scripts/LS1BGGIr.chunk.js.map +1 -0
  284. package/dist/scripts/MqKLZ7-F.chunk.js +2 -0
  285. package/dist/scripts/MqKLZ7-F.chunk.js.map +1 -0
  286. package/dist/scripts/NRnV1wHl.chunk.js +2 -0
  287. package/dist/scripts/NRnV1wHl.chunk.js.map +1 -0
  288. package/dist/scripts/QDAMoZNu.chunk.js +2 -0
  289. package/dist/scripts/QDAMoZNu.chunk.js.map +1 -0
  290. package/dist/scripts/RoUeokG0.chunk.js +2 -0
  291. package/dist/scripts/RoUeokG0.chunk.js.map +1 -0
  292. package/dist/scripts/Tgco-VxU.chunk.js +2 -0
  293. package/dist/scripts/Tgco-VxU.chunk.js.map +1 -0
  294. package/dist/scripts/_KIo6cb1.chunk.js +2 -0
  295. package/dist/scripts/_KIo6cb1.chunk.js.map +1 -0
  296. package/dist/scripts/aRYKkB2W.chunk.js +2 -0
  297. package/dist/scripts/aRYKkB2W.chunk.js.map +1 -0
  298. package/dist/scripts/app-DhPN-zNB.js +228 -0
  299. package/dist/scripts/app-DhPN-zNB.js.map +1 -0
  300. package/dist/scripts/daCZeWsQ.chunk.js +2 -0
  301. package/dist/scripts/daCZeWsQ.chunk.js.map +1 -0
  302. package/dist/scripts/hqhdC5CE.chunk.js +2 -0
  303. package/dist/scripts/hqhdC5CE.chunk.js.map +1 -0
  304. package/dist/scripts/kuc-jC8N.chunk.js +6 -0
  305. package/dist/scripts/kuc-jC8N.chunk.js.map +1 -0
  306. package/dist/scripts/mjKop7CA.chunk.js +2 -0
  307. package/dist/scripts/mjKop7CA.chunk.js.map +1 -0
  308. package/dist/scripts/nIjQqCoO.chunk.js +2 -0
  309. package/dist/scripts/nIjQqCoO.chunk.js.map +1 -0
  310. package/dist/scripts/rLITk9YY.chunk.js +3 -0
  311. package/dist/scripts/rLITk9YY.chunk.js.map +1 -0
  312. package/dist/scripts/rMiqL-Tq.chunk.js +2 -0
  313. package/dist/scripts/rMiqL-Tq.chunk.js.map +1 -0
  314. package/dist/scripts/sFV5nxD4.chunk.js +2 -0
  315. package/dist/scripts/sFV5nxD4.chunk.js.map +1 -0
  316. package/dist/scripts/u3riYA0x.chunk.js +2 -0
  317. package/dist/scripts/u3riYA0x.chunk.js.map +1 -0
  318. package/dist/scripts/wnQZ7WYP.chunk.js +8 -0
  319. package/dist/scripts/wnQZ7WYP.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,2 @@
1
+ import{j as n,L as c,a7 as w,ab as x,X as p,h as v,bI as g,a6 as d,c5 as z}from"./app-DhPN-zNB.js";import{D as b}from"./C-Bnglks.chunk.js";import{a as P,F as S}from"./6bLX1DNm.chunk.js";var f=(e=>(e.Draft="Draft",e.Published="Published",e.Archived="Archived",e))(f||{}),u=(e=>(e.Exchange="exchange",e.Streamable="streamable",e.MoviesAndTv="movies_and_tv",e.Twig="twig",e))(u||{});function j(e){return n.jsx("svg",{...e,children:n.jsx("path",{fill:"currentColor",fillRule:"evenodd",d:"M15.333 7.333a.667.667 0 1 0 0 1.334h2.39L13 13.39l-2.862-2.862a.667.667 0 0 0-.943 0l-5 5a.667.667 0 1 0 .943.942l4.529-4.528 2.862 2.862c.26.26.682.26.942 0l5.196-5.196V12A.667.667 0 0 0 20 12V8a.667.667 0 0 0-.667-.666z",clipRule:"evenodd"})})}function H(e){return n.jsx("svg",{...e,children:n.jsx("path",{d:"M7.5 5A2.5 2.5 0 0 0 5 7.5v9A2.5 2.5 0 0 0 7.5 19h9a2.5 2.5 0 0 0 2.5-2.5v-9A2.5 2.5 0 0 0 16.5 5zm0-1h9A3.5 3.5 0 0 1 20 7.5v9a3.5 3.5 0 0 1-3.5 3.5h-9A3.5 3.5 0 0 1 4 16.5v-9A3.5 3.5 0 0 1 7.5 4M11 9a.5.5 0 1 1 0 1H9.5A1.5 1.5 0 0 0 8 11.5v1A1.5 1.5 0 0 0 9.5 14H11a.5.5 0 1 1 0 1H9.5A2.5 2.5 0 0 1 7 12.5v-1A2.5 2.5 0 0 1 9.5 9zm5 0a.5.5 0 1 1 0 1h-1.5a1.5 1.5 0 0 0-1.5 1.5v1a1.5 1.5 0 0 0 1.5 1.5H16a.5.5 0 1 1 0 1h-1.5a2.5 2.5 0 0 1-2.5-2.5v-1A2.5 2.5 0 0 1 14.5 9z",fill:"currentColor"})})}var l=(e=>(e.Folder="category",e.CategoryTree="category_tree",e.CustomLibrary="custom_library",e.HostedLibrary="hosted_library",e.Exchange="exchange",e.Workspace="workspace",e.Video="video",e.Clip="clip",e.Interactive="interactive",e))(l||{}),i=(e=>(e.Pdf="pdf",e.Image="image",e.PowerPoint="powerpoint",e.Document="document",e.Excel="excel",e.Zip="archive",e.File="text",e))(i||{});function A(e){return n.jsx("svg",{...e,children:n.jsx("path",{d:"M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm5.09 7-2.3-3.4h1.82l1.4 2.28 1.45-2.28h1.72l-2.29 3.41 2.49 3.73h-1.87l-1.56-2.47-1.59 2.47H8.6z",fill:"currentColor"})})}function D(e){return n.jsx("svg",{...e,children:n.jsx("path",{d:"M9.833 15.006c-.328.765-.657 1.316-.997 1.619-.35.312-.762.394-1.138.15a1.4 1.4 0 0 1-.358-.322c-.298-.402-.194-.843.165-1.2.228-.227.563-.433.983-.63.226-.106.466-.204.706-.292q.213-.539.43-1.205a42 42 0 0 0 .866-3.123c-.435-.563-.75-1.057-.924-1.473-.28-.67-.211-1.242.372-1.494.56-.24 1.047-.086 1.307.391.17.312.234.736.231 1.26a8 8 0 0 1-.086 1.088q.238.293.513.606a31 31 0 0 0 1.73 1.81 14 14 0 0 0 .863.761q.697-.106 1.213-.105c.947.002 1.554.319 1.415 1.079-.107.585-.514.888-1.06.834-.365-.036-.781-.224-1.259-.532a9 9 0 0 1-.538-.38 21 21 0 0 0-.944.191q-.586.131-1.22.3a45 45 0 0 0-2.27.667M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm4.43 8.39q-.104.315-.207.606l.055-.016a46 46 0 0 1 1.608-.459 34 34 0 0 1 1.538-.37 16 16 0 0 1-.378-.35 32 32 0 0 1-1.882-1.98l-.083.32a39 39 0 0 1-.652 2.248zm-2.157 2.603q.18-.162.382-.51a2.4 2.4 0 0 0-.553.37c-.092.092-.09.086-.083.096a.5.5 0 0 0 .138.116c.017.01.025.01.116-.072m7.434-2.3q-.07 0-.146.002c.242.132.443.209.585.223.11.011.118.005.146-.145.005-.027-.095-.079-.585-.08m-5.36-5.49q.098.235.283.53v-.05c.003-.393-.044-.696-.128-.85-.046-.086-.063-.091-.23-.02-.04.018-.05.092.075.39",fill:"currentColor"})})}function E(e){return n.jsx("svg",{...e,children:n.jsx("path",{d:"M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm5.07 6.96h1.22q.27 0 .52-.04a1.2 1.2 0 0 0 .44-.155.84.84 0 0 0 .305-.325q.115-.21.115-.55t-.115-.55a.84.84 0 0 0-.305-.325 1.2 1.2 0 0 0-.44-.155 3 3 0 0 0-.52-.04h-1.22zM9.5 8.6h3.22q.67 0 1.14.195t.765.515.43.73a2.7 2.7 0 0 1 0 1.695q-.135.415-.43.735a2.1 2.1 0 0 1-.765.515q-.47.195-1.14.195h-1.65v2.56H9.5z",fill:"currentColor"})})}function N(e){return n.jsx("svg",{...e,children:n.jsx("path",{d:"M6 4h7l6 5v10a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m6.586 1H6v14h12V9.414zM13 10h3.5a.5.5 0 1 1 0 1h-4a.5.5 0 0 1-.5-.5v-4a.5.5 0 1 1 1 0z",fill:"currentColor"})})}function q(e){return n.jsx("svg",{...e,children:n.jsx("path",{d:"M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm8.77 10.74h-1.56L12 10.88h-.02l-1.19 4.86H9.2L7.31 8.6h1.57l1.13 4.86h.02l1.24-4.86h1.47l1.22 4.92h.02l1.17-4.92h1.54z",fill:"currentColor"})})}function L(e){return n.jsx("svg",{...e,children:n.jsx("path",{d:"M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm5 0h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1z",fill:"currentColor"})})}const o="shared.shared-utils",V={mapRatingToClass(e){return e?(t=>{switch(!0){case t<32:return"bg-purple";case t<48:return"bg-green";case t<80:return"bg-blue";case t<96:return"bg-red";case t<128:return"bg-pink";case t>=128:return"bg-yellow";default:return""}})(e):""},mapSourceToDisplayName(e,r){switch(e.type){case l.HostedLibrary:case l.CustomLibrary:return e.name;case l.Exchange:return c.getPhrase(o,"exchange");case l.Workspace:return c.getPhrase(o,r?"myVideos":"workspace");default:return""}},mapSourceToClass(e){switch(e){case l.HostedLibrary:case l.CustomLibrary:return"bg-blue";case l.Exchange:return"bg-green";case l.Workspace:default:return"bg-red"}},isInteractive(e){var r,t;return!!((t=(r=e==null?void 0:e.interactives)==null?void 0:r.data)!=null&&t.length)},mapTypeToSvg(e){let t={[i.Pdf]:D,[i.Image]:P,[i.PowerPoint]:E,[i.Document]:q,[i.Excel]:A,[i.Zip]:L,[i.File]:N}[e];return t||(t=S),t},mapTypeToClass(e){switch(e){case i.Pdf:return"icon-red";case i.Image:return"icon-purple";case i.Document:return"icon-blue";case i.Excel:return"icon-green";case i.PowerPoint:return"icon-orange";case i.Zip:return"icon-teal";case i.File:return"icon-gray";default:return""}},mapTypeToExtension(e){return e?{pdf:"pdf",image:"png",powerpoint:"pptx"}[e.toLowerCase()]:""},mapTypeToName(e){if(!e)return"";switch(e){case i.Pdf:return c.getPhrase(o,"pdf");case i.Image:return c.getPhrase(o,"image");case i.Document:return c.getPhrase(o,"document");case i.Excel:return c.getPhrase(o,"spreadsheet");case i.PowerPoint:return c.getPhrase(o,"presentation");case i.Zip:return c.getPhrase(o,"zipArchive");case i.File:return c.getPhrase(o,"file");default:return""}}},k="shared.badges",F=c.encloseNamespace(k);var I=(e=>(e.DurationExact="duration-exact",e.DurationApproximate="duration-approximate",e.Interactive="interactive",e.Rating="rating",e.ProductionYear="production-year",e.Captions="captions",e.Status="status",e.Trending="trending",e.Count="count",e.Restriction="restriction",e.Source="source",e))(I||{});const M={xs:d.ExtraSmall,sm:d.Small,std:d.Standard,lg:d.Large},$={xs:"badge-xs",sm:"badge-sm",std:"badge-std",lg:"badge-lg"};function R(e){switch(e){case g.Published:case f.Published:return"bg-success";case g.Archived:case g.Rejected:case f.Archived:return"bg-danger";case g.Draft:case f.Draft:return"draft-badge px-2 rounded-pill text-nowrap d-flex align-items-center";case g.Pending:case g.Processing:return"bg-warning"}}function T(e){return e.includes(u.Streamable)?`px-1 text-nowrap d-flex align-items-center ${z.streamable}`:e.includes(u.MoviesAndTv)?"bg-indigo text-white px-1 text-nowrap d-flex align-items-center":e.includes(u.Exchange)?"bg-orange text-white px-1 text-nowrap d-flex align-items-center":e.includes(u.Twig)?"bg-pink text-white px-1 text-nowrap d-flex align-items-center":""}function Z(e,r,t){const a="badge",h=$[t];let s="";if(e==="duration-approximate"&&(s="duration-badge-new px-2 rounded-pill text-nowrap d-flex align-items-center"),e==="duration-exact"&&(s="duration-badge"),e==="interactive"&&(s="interactive-badge"),e==="rating"&&(s=`rating-badge text-shadow ${V.mapRatingToClass(r.value)}`),e==="production-year"&&(s="production-year-badge text-shadow"),e==="captions")return"p-0";if(e==="status")return`badge ${R(r)}`;if(e==="trending")return`trending-badge px-1 d-flex align-items-center ${h}`;if(e==="count"&&(s="count-badge px-1 rounded"),e==="restriction"){const m=x.mapRestrictionToClass(r.restrictions);return p("restriction-badge rounded-pill px-2 d-flex align-items-center",m)}return e==="source"&&(s=T(r)),p(a,s)}function _(e,r,t){if(e==="interactive")return F("interactive");if(e==="duration-approximate")return b.ToDisplayDurationNewStyle(r);if(e==="duration-exact")return b.ToDisplayDuration(r);if(e==="rating")return r.code;if(e==="production-year")return r;if(e==="captions")return n.jsx(v,{svg:H});if(e==="status")return typeof r=="number"?g[r]:r;if(e==="trending")return n.jsxs(n.Fragment,{children:[n.jsx(v,{svg:j,size:M[t]}),n.jsx("span",{className:"ps-1",children:r})]});if(e==="count")return r;if(e==="restriction")return n.jsxs(n.Fragment,{children:[n.jsx(v,{svg:x.mapRestrictionToSvg(r.restrictions)}),n.jsx("span",{children:x.mapRestrictionToText(r.restrictions,r.yearGroups)})]});if(e==="source"){const a=r;return a.includes(u.Streamable)?"streamable":a.includes(u.MoviesAndTv)?"movies + tv":a.includes(u.Exchange)?"exchange":a.includes(u.Twig)?"twig":"-"}}function W(e,r){return e==="rating"?{title:r.name,placement:"top"}:null}function G(e,r){var t,a;return typeof r=="boolean"?!!r:e==="rating"?r&&!!r.value:e==="interactive"?!!(r!=null&&r.length)||!!((t=r==null?void 0:r.data)!=null&&t.length):e==="captions"?!!(r!=null&&r.length)||!!((a=r==null?void 0:r.data)!=null&&a.length):e==="status"?typeof r=="number"||typeof r=="string":!!r}function K(e){const{type:r,data:t,size:a="std"}=e;if(!G(r,t))return n.jsx(n.Fragment,{});let h=Z(r,t,a);h=`${h} ${e.inline?"d-inline-block":"d-flex justify-content-center"} ${e.className||""}`;const s=_(r,t,a),m=W(r,t),C=e.inline&&"d-inline-block";return m?n.jsx("div",{className:"badge-wrapper d-inline",children:n.jsx(w,{...m,spanHack:!0,spanHackClassName:C,children:n.jsx("span",{className:h,children:s})})}):n.jsx("span",{className:`${h} badge-wrapper`,children:s})}export{K as B,H as C,I as a};
2
+ //# sourceMappingURL=CztNQjFH.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CztNQjFH.chunk.js","sources":["../../../../libs/shared/src/interfaces/models/Dashboard.ts","../../../../libs/shared/src/enums/VideoSource.ts","../../../../libs/shared/src/images/svg/objects/TrendingSvg.tsx","../../../../libs/shared/src/images/svg/status/CloseCaptionBadgeSvg.tsx","../../../../libs/shared/src/enums/MasterObjectTypes.ts","../../../../libs/shared/src/enums/ResourceFileType.ts","../../../../libs/shared/src/images/svg/objects/FileExcelSvg.tsx","../../../../libs/shared/src/images/svg/objects/FilePdfSvg.tsx","../../../../libs/shared/src/images/svg/objects/FilePptSvg.tsx","../../../../libs/shared/src/images/svg/objects/FileSvg.tsx","../../../../libs/shared/src/images/svg/objects/FileWordSvg.tsx","../../../../libs/shared/src/images/svg/objects/FileZipSvg.tsx","../../../../libs/shared/src/utils/VideoDetailsHelper.ts","../../../../libs/shared/src/components/badges/Badge.tsx"],"sourcesContent":["import { HashObject } from 'libs/common/react/interfaces';\n\nimport { ContentRegion } from 'libs/shared/enums/ContentRegion';\nimport { CustomerType } from 'libs/shared/enums/CustomerType';\nimport { LibraryType } from 'libs/shared/enums/LibraryType';\nimport { BaseObject, BasePaginatedCollection, CuratedWidget, CuratedWidgetContent, CuratedWidgetData } from 'libs/shared/interfaces';\n\nexport enum DashboardLearningLevel {\n Any = 'Any',\n Level_1 = 'Level_1',\n Level_2 = 'Level_2',\n Level_3 = 'Level_3',\n Level_4 = 'Level_4',\n}\n\nexport enum DashboardUserType {\n Any = 'Any',\n Staff = 'Staff',\n Learner = 'Learner',\n}\n\nexport enum DashboardStatus {\n Draft = 'Draft',\n Published = 'Published',\n Archived = 'Archived',\n}\n\nexport interface Dashboard extends BaseObject {\n libraryType: LibraryType;\n customerType: CustomerType;\n userRole: number;\n}\n\nexport interface CuratedDashboard<\n TWidgetData extends CuratedWidgetData = CuratedWidgetData,\n TWidgetContent extends CuratedWidgetContent = CuratedWidgetContent\n> extends BaseObject {\n contentRegion: ContentRegion;\n description: string;\n learningLevel: DashboardLearningLevel;\n userType: DashboardUserType;\n status: DashboardStatus;\n target: string;\n widgets: CuratedWidget<TWidgetData, TWidgetContent>[];\n metadata: HashObject;\n datePublished: string;\n}\n\nexport interface CuratedDashboardCollection<\n TWidgetData extends CuratedWidgetData = CuratedWidgetData,\n TWidgetContent extends CuratedWidgetContent = CuratedWidgetContent\n> extends BasePaginatedCollection<CuratedDashboard<TWidgetData, TWidgetContent>>{}\n\n/**\n * Dashboard identification below\n */\nexport enum DashboardTargetType {\n Discover = 'discover',\n Classification = 'classification',\n ClassificationDirectory = 'classification-directory',\n ClassificationCurriculum = 'classification-curriculum',\n MoviesAndTv = 'movies-and-tv',\n Company = 'company',\n Search = 'search'\n}\n\ninterface DiscoverDashboardInfo {\n targetType: DashboardTargetType.Discover;\n presentationId: string;\n}\n\nexport interface ClassificationDashboardInfo {\n targetType: DashboardTargetType.Classification;\n classificationId: string;\n}\n\nexport interface ClassificationDirectoryInfo {\n targetType: DashboardTargetType.ClassificationDirectory;\n classificationId: string;\n}\n\nexport interface ClassificationCurriculumInfo {\n targetType: DashboardTargetType.ClassificationCurriculum;\n classificationId: string;\n}\n\ninterface MoviesAndTvDashboardInfo {\n targetType: DashboardTargetType.MoviesAndTv;\n presentationId: string;\n}\n\nexport interface CompanyDashboardInfo {\n targetType: DashboardTargetType.Company;\n companyId: string;\n presentationId: string;\n}\n\nexport type DashboardTargetInfo = DiscoverDashboardInfo |\n ClassificationDashboardInfo |\n ClassificationDirectoryInfo |\n ClassificationCurriculumInfo |\n MoviesAndTvDashboardInfo |\n CompanyDashboardInfo;\n\nexport interface UnknownDashboardTargetInfo {\n targetType: DashboardTargetType;\n presentationId: string;\n classificationId: string;\n companyId: string;\n}","export enum VideoSource {\n Exchange = 'exchange',\n Streamable = 'streamable',\n MoviesAndTv = 'movies_and_tv',\n Twig = 'twig'\n}","import React from 'react';\n\nexport function TrendingSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n fill='currentColor'\n fillRule='evenodd'\n d='M15.333 7.333a.667.667 0 1 0 0 1.334h2.39L13 13.39l-2.862-2.862a.667.667 0 0 0-.943 0l-5 5a.667.667 0 1 0 .943.942l4.529-4.528 2.862 2.862c.26.26.682.26.942 0l5.196-5.196V12A.667.667 0 0 0 20 12V8a.667.667 0 0 0-.667-.666z'\n clipRule='evenodd'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function CloseCaptionBadgeSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M7.5 5A2.5 2.5 0 0 0 5 7.5v9A2.5 2.5 0 0 0 7.5 19h9a2.5 2.5 0 0 0 2.5-2.5v-9A2.5 2.5 0 0 0 16.5 5zm0-1h9A3.5 3.5 0 0 1 20 7.5v9a3.5 3.5 0 0 1-3.5 3.5h-9A3.5 3.5 0 0 1 4 16.5v-9A3.5 3.5 0 0 1 7.5 4M11 9a.5.5 0 1 1 0 1H9.5A1.5 1.5 0 0 0 8 11.5v1A1.5 1.5 0 0 0 9.5 14H11a.5.5 0 1 1 0 1H9.5A2.5 2.5 0 0 1 7 12.5v-1A2.5 2.5 0 0 1 9.5 9zm5 0a.5.5 0 1 1 0 1h-1.5a1.5 1.5 0 0 0-1.5 1.5v1a1.5 1.5 0 0 0 1.5 1.5H16a.5.5 0 1 1 0 1h-1.5a2.5 2.5 0 0 1-2.5-2.5v-1A2.5 2.5 0 0 1 14.5 9z'\n fill='currentColor'\n />\n </svg>\n );\n}\n","export enum MasterObjectTypes {\n Folder = 'category',\n CategoryTree = 'category_tree',\n CustomLibrary = 'custom_library',\n HostedLibrary = 'hosted_library',\n Exchange = 'exchange',\n Workspace = 'workspace',\n Video = 'video',\n Clip = 'clip',\n Interactive = 'interactive'\n}","// File types match metadata for a resource FileApi\nexport enum ResourceFileType {\n Pdf = 'pdf',\n Image = 'image',\n PowerPoint = 'powerpoint',\n Document = 'document',\n Excel = 'excel',\n Zip = 'archive',\n File = 'text'\n}\n","import React from 'react';\n\nexport function FileExcelSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm5.09 7-2.3-3.4h1.82l1.4 2.28 1.45-2.28h1.72l-2.29 3.41 2.49 3.73h-1.87l-1.56-2.47-1.59 2.47H8.6z'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function FilePdfSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M9.833 15.006c-.328.765-.657 1.316-.997 1.619-.35.312-.762.394-1.138.15a1.4 1.4 0 0 1-.358-.322c-.298-.402-.194-.843.165-1.2.228-.227.563-.433.983-.63.226-.106.466-.204.706-.292q.213-.539.43-1.205a42 42 0 0 0 .866-3.123c-.435-.563-.75-1.057-.924-1.473-.28-.67-.211-1.242.372-1.494.56-.24 1.047-.086 1.307.391.17.312.234.736.231 1.26a8 8 0 0 1-.086 1.088q.238.293.513.606a31 31 0 0 0 1.73 1.81 14 14 0 0 0 .863.761q.697-.106 1.213-.105c.947.002 1.554.319 1.415 1.079-.107.585-.514.888-1.06.834-.365-.036-.781-.224-1.259-.532a9 9 0 0 1-.538-.38 21 21 0 0 0-.944.191q-.586.131-1.22.3a45 45 0 0 0-2.27.667M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm4.43 8.39q-.104.315-.207.606l.055-.016a46 46 0 0 1 1.608-.459 34 34 0 0 1 1.538-.37 16 16 0 0 1-.378-.35 32 32 0 0 1-1.882-1.98l-.083.32a39 39 0 0 1-.652 2.248zm-2.157 2.603q.18-.162.382-.51a2.4 2.4 0 0 0-.553.37c-.092.092-.09.086-.083.096a.5.5 0 0 0 .138.116c.017.01.025.01.116-.072m7.434-2.3q-.07 0-.146.002c.242.132.443.209.585.223.11.011.118.005.146-.145.005-.027-.095-.079-.585-.08m-5.36-5.49q.098.235.283.53v-.05c.003-.393-.044-.696-.128-.85-.046-.086-.063-.091-.23-.02-.04.018-.05.092.075.39'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function FilePptSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm5.07 6.96h1.22q.27 0 .52-.04a1.2 1.2 0 0 0 .44-.155.84.84 0 0 0 .305-.325q.115-.21.115-.55t-.115-.55a.84.84 0 0 0-.305-.325 1.2 1.2 0 0 0-.44-.155 3 3 0 0 0-.52-.04h-1.22zM9.5 8.6h3.22q.67 0 1.14.195t.765.515.43.73a2.7 2.7 0 0 1 0 1.695q-.135.415-.43.735a2.1 2.1 0 0 1-.765.515q-.47.195-1.14.195h-1.65v2.56H9.5z'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function FileSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M6 4h7l6 5v10a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m6.586 1H6v14h12V9.414zM13 10h3.5a.5.5 0 1 1 0 1h-4a.5.5 0 0 1-.5-.5v-4a.5.5 0 1 1 1 0z'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function FileWordSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm8.77 10.74h-1.56L12 10.88h-.02l-1.19 4.86H9.2L7.31 8.6h1.57l1.13 4.86h.02l1.24-4.86h1.47l1.22 4.92h.02l1.17-4.92h1.54z'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function FileZipSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm5 0h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1z'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { MasterObjectTypes } from 'libs/shared/enums/MasterObjectTypes';\nimport { ResourceFileType } from 'libs/shared/enums/ResourceFileType';\nimport { Library, Video } from 'libs/shared/interfaces';\n\nimport { FileExcelSvg } from '../images/svg/objects/FileExcelSvg';\nimport { FileImgSvg } from '../images/svg/objects/FileImgSvg';\nimport { FilePdfSvg } from '../images/svg/objects/FilePdfSvg';\nimport { FilePptSvg } from '../images/svg/objects/FilePptSvg';\nimport { FileSvg } from '../images/svg/objects/FileSvg';\nimport { FileWordSvg } from '../images/svg/objects/FileWordSvg';\nimport { FileZipSvg } from '../images/svg/objects/FileZipSvg';\nimport { FolderSvg } from '../images/svg/objects/FolderSvg';\n\n\nconst lang = 'shared.shared-utils';\n\nexport const VideoDetailsHelper = {\n mapRatingToClass(ratingValue: number): string {\n if (!ratingValue) return '';\n\n const ratings = (rating: number): string => {\n switch (true) {\n case (rating < 32):\n return 'bg-purple';\n case (rating < 48):\n return 'bg-green';\n case (rating < 80):\n return 'bg-blue';\n case (rating < 96):\n return 'bg-red';\n case (rating < 128):\n return 'bg-pink';\n case (rating >= 128):\n return 'bg-yellow';\n default:\n return ''; // Handles unrated\n }\n };\n\n return ratings(ratingValue);\n },\n\n mapSourceToDisplayName(library: Library, hasLite?: boolean): string {\n switch (library.type) {\n case MasterObjectTypes.HostedLibrary:\n case MasterObjectTypes.CustomLibrary:\n return library.name;\n case MasterObjectTypes.Exchange:\n return LanguageService.getPhrase(lang, 'exchange');\n case MasterObjectTypes.Workspace:\n return LanguageService.getPhrase(lang, hasLite ? 'myVideos' : 'workspace');\n default:\n return '';\n }\n },\n\n mapSourceToClass(sourceType: MasterObjectTypes | 'online_supplementary_library'): string {\n switch (sourceType) {\n case MasterObjectTypes.HostedLibrary:\n case MasterObjectTypes.CustomLibrary:\n return 'bg-blue';\n case MasterObjectTypes.Exchange:\n return 'bg-green';\n case MasterObjectTypes.Workspace:\n default:\n return 'bg-red';\n }\n },\n\n isInteractive(video: Video): boolean {\n return !!video?.interactives?.data?.length;\n },\n\n mapTypeToSvg(type: string): any {\n const types: HashObject = {\n [ResourceFileType.Pdf]: FilePdfSvg,\n [ResourceFileType.Image]: FileImgSvg,\n [ResourceFileType.PowerPoint]: FilePptSvg,\n [ResourceFileType.Document]: FileWordSvg,\n [ResourceFileType.Excel]: FileExcelSvg,\n [ResourceFileType.Zip]: FileZipSvg,\n [ResourceFileType.File]: FileSvg\n };\n\n let mappedType = types[type];\n\n if (!mappedType)\n mappedType = FolderSvg;\n\n return mappedType;\n },\n\n mapTypeToClass(type: string): any {\n switch (type) {\n case ResourceFileType.Pdf:\n return 'icon-red';\n\n case ResourceFileType.Image:\n return 'icon-purple';\n\n case ResourceFileType.Document:\n return 'icon-blue';\n\n case ResourceFileType.Excel:\n return 'icon-green';\n\n case ResourceFileType.PowerPoint:\n return 'icon-orange';\n\n case ResourceFileType.Zip:\n return 'icon-teal';\n\n case ResourceFileType.File:\n return 'icon-gray';\n\n default:\n return '';\n }\n },\n\n mapTypeToExtension(type: string): string {\n if (!type) return '';\n\n const extensions: HashObject = {\n pdf: 'pdf',\n image: 'png',\n powerpoint: 'pptx'\n };\n\n return extensions[type.toLowerCase()];\n },\n\n mapTypeToName(type: string): string {\n if (!type) return '';\n\n switch (type) {\n case ResourceFileType.Pdf: return LanguageService.getPhrase(lang, 'pdf');\n case ResourceFileType.Image: return LanguageService.getPhrase(lang, 'image');\n case ResourceFileType.Document: return LanguageService.getPhrase(lang, 'document');\n case ResourceFileType.Excel: return LanguageService.getPhrase(lang, 'spreadsheet');\n case ResourceFileType.PowerPoint: return LanguageService.getPhrase(lang, 'presentation');\n case ResourceFileType.Zip: return LanguageService.getPhrase(lang, 'zipArchive');\n case ResourceFileType.File: return LanguageService.getPhrase(lang, 'file');\n\n default:\n return '';\n }\n }\n};\n","import * as React from 'react';\nimport { Placement } from 'react-bootstrap/esm/types';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { CurationStatus } from 'libs/shared/enums/CurationStatus';\nimport { VideoSource } from 'libs/shared/enums/VideoSource';\nimport { TrendingSvg } from 'libs/shared/images/svg/objects/TrendingSvg';\nimport { CloseCaptionBadgeSvg } from 'libs/shared/images/svg/status/CloseCaptionBadgeSvg';\nimport { DashboardStatus, Rating } from 'libs/shared/interfaces';\nimport { DurationHelper } from 'libs/shared/utils/DurationHelper';\nimport { RestrictionHelper } from 'libs/shared/utils/RestrictionHelper';\nimport { VideoDetailsHelper } from 'libs/shared/utils/VideoDetailsHelper';\n\nimport styles from './badge.module.scss';\n\nconst namespace = 'shared.badges';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport enum BadgeType {\n DurationExact = 'duration-exact',\n DurationApproximate = 'duration-approximate',\n Interactive = 'interactive',\n Rating = 'rating',\n ProductionYear = 'production-year',\n Captions = 'captions',\n Status = 'status',\n Trending = 'trending',\n Count = 'count',\n Restriction = 'restriction',\n Source = 'source'\n}\n\ntype BadgeSize = 'xs' | 'sm' | 'std' | 'lg';\n\ninterface BadgeProps {\n type: BadgeType;\n data: any;\n inline?: boolean;\n className?: string;\n /**\n * Only Trending badge supports this attribute atm\n */\n size?: BadgeSize;\n}\n\ninterface TooltipOptions {\n placement: Placement;\n title: string;\n}\n\nconst badgeSvgContainerSizeMap: {[key in BadgeSize]: SvgContainerSize} = {\n xs: SvgContainerSize.ExtraSmall,\n sm: SvgContainerSize.Small,\n std: SvgContainerSize.Standard,\n lg: SvgContainerSize.Large\n};\n\nconst badgeSizeClassNameMap: {[key in BadgeSize]: string} = {\n xs: 'badge-xs',\n sm: 'badge-sm',\n std: 'badge-std',\n lg: 'badge-lg'\n};\n\nfunction getStatusClassName(status: CurationStatus | DashboardStatus): string {\n switch (status) {\n case CurationStatus.Published:\n case DashboardStatus.Published:\n return 'bg-success';\n\n case CurationStatus.Archived:\n case CurationStatus.Rejected:\n case DashboardStatus.Archived:\n return 'bg-danger';\n\n case CurationStatus.Draft:\n case DashboardStatus.Draft:\n return 'draft-badge px-2 rounded-pill text-nowrap d-flex align-items-center';\n\n case CurationStatus.Pending:\n case CurationStatus.Processing:\n return 'bg-warning';\n }\n}\n\nfunction getSourceClassName(sources: VideoSource[]): string {\n if (sources.includes(VideoSource.Streamable))\n return `px-1 text-nowrap d-flex align-items-center ${styles.streamable}`;\n\n if (sources.includes(VideoSource.MoviesAndTv))\n return 'bg-indigo text-white px-1 text-nowrap d-flex align-items-center';\n\n if (sources.includes(VideoSource.Exchange))\n return 'bg-orange text-white px-1 text-nowrap d-flex align-items-center';\n\n if (sources.includes(VideoSource.Twig))\n return `bg-pink text-white px-1 text-nowrap d-flex align-items-center`;\n\n return '';\n}\n\nfunction getClassName(type: BadgeType, data: any, size: BadgeSize): string {\n const baseClass = 'badge';\n const sizeClass = badgeSizeClassNameMap[size];\n\n let typeClass = '';\n\n if (type === BadgeType.DurationApproximate)\n typeClass = 'duration-badge-new px-2 rounded-pill text-nowrap d-flex align-items-center';\n\n if (type === BadgeType.DurationExact)\n typeClass = 'duration-badge';\n\n if (type === BadgeType.Interactive)\n typeClass = 'interactive-badge';\n\n if (type === BadgeType.Rating)\n typeClass = `rating-badge text-shadow ${VideoDetailsHelper.mapRatingToClass((data as Rating).value)}`;\n\n if (type === BadgeType.ProductionYear)\n typeClass = 'production-year-badge text-shadow';\n\n if (type === BadgeType.Captions)\n return 'p-0';\n\n if (type === BadgeType.Status)\n return `badge ${getStatusClassName(data)}`;\n\n if (type === BadgeType.Trending)\n return `trending-badge px-1 d-flex align-items-center ${sizeClass}`;\n\n if (type === BadgeType.Count)\n typeClass = 'count-badge px-1 rounded';\n\n if (type === BadgeType.Restriction) {\n const restrictionBgClass = RestrictionHelper.mapRestrictionToClass(data.restrictions);\n return classNames('restriction-badge rounded-pill px-2 d-flex align-items-center', restrictionBgClass);\n }\n \n if (type === BadgeType.Source)\n typeClass = getSourceClassName(data);\n\n return classNames(baseClass, typeClass);\n}\n\nfunction getBadgeContent(type: BadgeType, data: any, size: BadgeSize): string | JSX.Element {\n if (type === BadgeType.Interactive)\n return getPhrase('interactive');\n\n if (type === BadgeType.DurationApproximate)\n return DurationHelper.ToDisplayDurationNewStyle(data);\n\n if (type === BadgeType.DurationExact)\n return DurationHelper.ToDisplayDuration(data);\n\n if (type === BadgeType.Rating)\n return (data as Rating).code; // data expected to be a rating object\n\n if (type === BadgeType.ProductionYear)\n return data; // data should be the production year\n\n if (type === BadgeType.Captions)\n return <SvgContainer svg={CloseCaptionBadgeSvg} />;\n\n if (type === BadgeType.Status) {\n if (typeof(data) === 'number') {\n return CurationStatus[data];\n }\n return data;\n }\n\n if (type === BadgeType.Trending)\n return (\n <>\n <SvgContainer svg={TrendingSvg} size={badgeSvgContainerSizeMap[size]} />\n <span className='ps-1'>{data}</span>\n </>\n );\n\n if (type === BadgeType.Count)\n return data;\n\n if (type === BadgeType.Restriction)\n return (\n <>\n <SvgContainer\n svg={RestrictionHelper.mapRestrictionToSvg(data.restrictions)}\n />\n <span>\n {RestrictionHelper.mapRestrictionToText(data.restrictions, data.yearGroups)}\n </span>\n </>\n );\n\n if (type === BadgeType.Source) {\n const sources = data as VideoSource[];\n\n if (sources.includes(VideoSource.Streamable))\n return 'streamable';\n\n if (sources.includes(VideoSource.MoviesAndTv))\n return 'movies + tv';\n\n if (sources.includes(VideoSource.Exchange))\n return 'exchange';\n\n if (sources.includes(VideoSource.Twig))\n return 'twig';\n\n return '-';\n }\n}\n\nfunction getTooltip(type: BadgeType, data: any): TooltipOptions {\n if (type === BadgeType.Rating)\n return {\n title: (data as Rating).name,\n placement: 'top'\n };\n\n return null;\n}\n\nfunction hasData(type: BadgeType, data: any): boolean {\n if (typeof(data) === 'boolean')\n return !!data;\n\n if (type === BadgeType.Rating)\n return data && !!(data as Rating).value;\n\n if (type === BadgeType.Interactive)\n return !!data?.length || !!data?.data?.length;\n\n if (type === BadgeType.Captions)\n return !!data?.length || !!data?.data?.length;\n\n if (type === BadgeType.Status)\n return typeof(data) === 'number' || typeof(data) === 'string';\n\n return !!data;\n}\n\nexport function Badge(props: BadgeProps): JSX.Element {\n const { type, data, size = 'std' } = props;\n \n if (!hasData(type, data))\n return <></>;\n\n let className = getClassName(type, data, size);\n className = `${className} ${props.inline ? 'd-inline-block' : 'd-flex justify-content-center'} ${props.className || ''}`;\n const content = getBadgeContent(type, data, size);\n const tooltip = getTooltip(type, data);\n const spanHackClassName = props.inline && 'd-inline-block';\n\n if (tooltip) {\n return (\n <div className='badge-wrapper d-inline'>\n <Tooltip {...tooltip} spanHack spanHackClassName={spanHackClassName}>\n <span className={className}>{content}</span>\n </Tooltip>\n </div>\n );\n }\n\n return <span className={`${className} badge-wrapper`}>{content}</span>;\n}"],"names":["DashboardStatus","VideoSource","TrendingSvg","props","jsx","CloseCaptionBadgeSvg","MasterObjectTypes","ResourceFileType","FileExcelSvg","FilePdfSvg","FilePptSvg","FileSvg","FileWordSvg","FileZipSvg","lang","VideoDetailsHelper","ratingValue","rating","library","hasLite","LanguageService","sourceType","video","_b","_a","type","mappedType","FileImgSvg","FolderSvg","namespace","getPhrase","BadgeType","badgeSvgContainerSizeMap","SvgContainerSize","badgeSizeClassNameMap","getStatusClassName","status","CurationStatus","getSourceClassName","sources","styles","getClassName","data","size","baseClass","sizeClass","typeClass","restrictionBgClass","RestrictionHelper","classNames","getBadgeContent","DurationHelper","SvgContainer","jsxs","Fragment","getTooltip","hasData","Badge","className","content","tooltip","spanHackClassName","Tooltip"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{j as t,O as L,L as N,a7 as S,h as A,a6 as O,bx as Te,i as B,a3 as M,T as _,aW as h,v as $,av as J,p as Ne,l as w,by as Ie,bz as V,I as Ae,bA as Le,aU as _e,aV as $e,aQ as ee,aT as De,aR as He,aS as Fe,r as te,F as ze,bB as Me,Z as Pe,bC as Oe,at as U,bD as ae,d as ue,A as he,g as ge,e as Be,E as Ee,bE as Ve,a as Ue,u as ne,bF as Re,C as Ge,U as qe}from"./app-DhPN-zNB.js";import{T as We}from"./wnQZ7WYP.chunk.js";import{b as P,S as Q,a as Ke}from"./DLmWeya6.chunk.js";import{B as Qe}from"./rMiqL-Tq.chunk.js";import{P as se,S as Xe,I as R,a as G,g as Ze,B as Ye}from"./Br_GRaAX.chunk.js";import{V as xe,T as ve,b as fe,C as I,a as Je}from"./CSdY8TC0.chunk.js";import{M as ie}from"./DsbeU03P.chunk.js";import{L as et}from"./LS1BGGIr.chunk.js";import{S as X}from"./RoUeokG0.chunk.js";import{u as tt,I as at}from"./B0keXzHm.chunk.js";import{a as re}from"./B_rCaFK4.chunk.js";import{P as nt}from"./DUnqV5wd.chunk.js";import{P as st}from"./J7X3wFpY.chunk.js";import{u as it}from"./HCxw4efP.chunk.js";import{g as rt}from"./CX5q-0jT.chunk.js";import{u as ct}from"./DNRcL1e9.chunk.js";import"./CAfDUf5-.chunk.js";import"./6bLX1DNm.chunk.js";import"./CztNQjFH.chunk.js";import"./C-Bnglks.chunk.js";import"./QDAMoZNu.chunk.js";import"./hqhdC5CE.chunk.js";import"./DNEgb5v1.chunk.js";import"./B8dw4aip.chunk.js";import"./Cg_qt_Rk.chunk.js";import"./BRRS4PKg.chunk.js";import"./DIQhtsg6.chunk.js";const ot="share.sharedByMeEmptyState",q=N.encloseNamespace(ot);function lt(e){return t.jsxs(L,{children:[t.jsx(L.Image,{src:e.imageUrl,size:"small"}),t.jsx(L.Heading,{children:q(e.useInteractiveCopy?"interactivesHeading":"genericHeading")}),t.jsx(L.Info,{children:q(e.useInteractiveCopy?"interactivesInfo":"genericInfo")}),!!e.appLink&&t.jsx(L.Cta,{appLink:e.appLink,text:q("cta")})]})}const dt={table:"striped-list no-full-width pb-3",header:"fw-semibold pb-1",headerCell:"py-2 ps-2 text-nowrap",row:"striped-row rounded",cell:"d-flex align-items-center p-2"};var mt=["second","minute","hour","day","week","month","year"];function ut(e,a){if(a===0)return["just now","right now"];var s=mt[Math.floor(a/2)];return e>1&&(s+="s"),[e+" "+s+" ago","in "+e+" "+s]}var ht=["秒","分钟","小时","天","周","个月","年"];function gt(e,a){if(a===0)return["刚刚","片刻后"];var s=ht[~~(a/2)];return[e+" "+s+"前",e+" "+s+"后"]}var Z={},be=function(e,a){Z[e]=a},xt=function(e){return Z[e]||Z.en_US},W=[60,60,24,7,365/7/12,12];function vt(e){return e instanceof Date?e:!isNaN(e)||/^\d+$/.test(e)?new Date(parseInt(e)):(e=(e||"").trim().replace(/\.\d+/,"").replace(/-/,"/").replace(/-/,"/").replace(/(\d)T(\d)/,"$1 $2").replace(/Z/," UTC").replace(/([+-]\d\d):?(\d\d)/," $1$2"),new Date(e))}function ft(e,a){var s=e<0?1:0;e=Math.abs(e);for(var i=e,r=0;e>=W[r]&&r<W.length;r++)e/=W[r];return e=Math.floor(e),r*=2,e>(r===0?9:1)&&(r+=1),a(e,r,i)[s].replace("%s",e.toString())}function bt(e,a){var s=new Date;return(+s-+vt(e))/1e3}var ye=function(e,a,s){var i=bt(e);return ft(i,xt(a))};be("en_US",ut);be("zh_CN",gt);var j=(e=>(e.DirectShare="DirectShare",e.ShareLink="ShareLink",e))(j||{});const yt="_indicatorContainer_1jf11_1",Ct="_indicator_1jf11_1",ce={indicatorContainer:yt,indicator:Ct},jt="share.shareStatusIndicator",F=N.encloseNamespace(jt);function pt(e){if(e.type===j.DirectShare)return F("active");switch(e.status){case P.Active:return F("active");case P.Expired:return F("expired")}}function St(e){if(e.type===j.DirectShare)return"bg-success";switch(e.status){case P.Active:return"bg-success";case P.Expired:return"bg-gray-500"}}function kt(e){var a;return e.share.type===j.DirectShare&&!((a=e.share.recipients)!=null&&a.length)?t.jsx(t.Fragment,{}):e.share.type===j.ShareLink&&e.share.isPasswordProtected?t.jsx(S,{title:F("passwordProtected"),spanHack:!0,children:t.jsx(A,{svg:Te,size:O.Small})}):t.jsx(S,{title:pt(e.share),spanHack:!0,spanHackClassName:ce.indicatorContainer,children:t.jsx("div",{className:`${ce.indicator} ${St(e.share)}`})})}const wt="_thumbnailTitle_14phd_1",Tt={thumbnailTitle:wt};function oe(e){return t.jsx("h3",{title:e.title,className:"h6",children:e.title})}function Nt(e){return e.appLink?t.jsx(B,{appLink:e.appLink,className:`${Tt.thumbnailTitle}`,children:t.jsx(oe,{...e})}):t.jsx(oe,{...e})}const It="_badge_o3vz9_1",At="_mask_o3vz9_4",Lt="_thumbnailContainer_o3vz9_7",D={badge:It,mask:At,thumbnailContainer:Lt},le="shared.collectionThumbnail";function _t(e){var m,v,y;function a(){var f;let u=(f=e.collection)==null?void 0:f.videos;if(u){if(!u.count&&e.collection.typeId===h.Playlist){const c=e.collection;c.clips.count&&(u=c.clips),c.interactives.count&&(u=c.interactives)}return $.first(u.data)}}function s(){var f,c;let u=0;if(e.collection.videos&&e.collection.videos.count&&(u+=e.collection.videos.count),e.collection.typeId===h.Playlist){const g=e.collection;(f=g.interactives)!=null&&f.count&&(u+=g.interactives.count),(c=g.clips)!=null&&c.count&&(u+=g.clips.count)}return u}function i(u){if(ie.isType(u,h.Playlist))return J.Playlist;if(ie.isType(u,h.Series))return J.Series}const r=a(),n=s(),l=((m=e.title)==null?void 0:m.length)||((v=e.subText)==null?void 0:v.length),d={id:e.collection.id.toString(),name:e.collection.name,...e.analyticsData},o={actionType:M.Click,entity:i(e.collection),...e.analyticsOptions};return t.jsxs("div",{children:[t.jsx("div",{className:`position-relative ${D.thumbnailContainer} z-1`,children:t.jsxs(B,{appLink:e.appLink,analyticsData:d,analyticsOptions:o,preventFocus:!0,children:[e.showMask&&t.jsx("div",{className:`${D.mask} position-absolute w-100 h-100 rounded-3 bg-dark bg-gradient z-1 bg-opacity-50 pointer-events-none`,children:t.jsxs("div",{className:`${D.badge} d-flex align-items-center w-fit flex-grow-0 bg-dark rounded-pill ps-1 m-2`,children:[t.jsx(A,{svg:se,className:"svg-container text-white"}),t.jsx("p",{className:"d-inline fw-medium text-white mb-0",children:(y=e.hoverText)!=null&&y.length?t.jsx("span",{children:e.hoverText}):t.jsx(_,{namespace:le,phrase:"playAll"})})]})}),r&&t.jsx(xe,{video:r,imageOptions:e.imageOptions,textPosition:ve.Independent,type:"cosmetic",hideMask:!0,hideRating:!0,hideDuration:!0,hideVideoTypeBadge:!0}),!r&&t.jsx("div",{className:"ratio ratio-16x9 bg-light rounded-3",children:t.jsx("div",{className:"d-flex justify-content-center align-items-center",children:t.jsx(A,{svg:se,className:"w-33 opacity-25 text-gray-400"})})}),e.showVideoCount&&t.jsxs("div",{className:`${D.badge} d-flex align-items-center w-fit bg-dark bg-opacity-75 rounded-pill position-absolute bottom-0 end-0 ps-1 m-2`,children:[t.jsx(A,{svg:Xe,className:"svg-container text-white me-1"}),t.jsx("p",{className:"d-inline fw-semibold text-white mb-0",children:e.onlyCount?t.jsx("span",{children:n}):t.jsx(_,{namespace:le,phrase:"videos",options:{count:n,smartCount:n}})})]})]})}),l&&t.jsxs("div",{className:"mt-2 d-flex flex-column",children:[e.subText&&t.jsx(fe,{title:e.subText,appLink:e.subTextAppLink,children:e.subText}),e.title&&t.jsx(Nt,{title:e.collection.name,appLink:e.titleAppLink})]})]})}const $t="_posterFallbackSvg_1239k_4",Dt="_coverFallbackSvg_1239k_7",Ht="_thumbnailContainer_1239k_10",Ft="_requireMarking_1239k_13",zt="_badge_1239k_19",Mt="_bar_1239k_22",Pt="_a_1239k_27",Ot="_b_1239k_19",Bt="_c_1239k_7",b={posterFallbackSvg:$t,coverFallbackSvg:Dt,thumbnailContainer:Ht,requireMarking:Ft,badge:zt,bar:Mt,a:Pt,b:Ot,c:Bt},Et="shared.sharedObjectImage",H="rounded overflow-hidden";function Vt(e){const a=Ie.getDisplayImageFromObject(e);if(w.isVideoType(e))return{image:a,imageType:V.Thumbnails,imageClassName:H,imageFallbackComponent:t.jsx(R,{type:G.Video})};switch(e.typeId){case h.Series:return{image:a,imageType:V.TallPosters,imageClassName:H,imageFallbackComponent:t.jsx(R,{type:G.Series,svgContainerClassName:b.posterFallbackSvg})};case h.Playlist:return{image:a,imageType:V.Covers,imageClassName:a!=null&&a.url?H:`${H} ${Ze(e.name,Ye)}`,imageFallbackComponent:t.jsx(R,{type:G.Playlist,svgContainerClassName:a!=null&&a.url?b.coverFallbackSvg:"d-none",extraClasses:!(a!=null&&a.url)&&"bg-transparent"})}}}function Ut(){return t.jsxs("div",{className:"d-flex pointer-events-none position-absolute bottom-0 start-0 h-100 w-100 z-1 justify-content-center align-items-center",children:[t.jsx("div",{className:"position-absolute bg-dark bg-gradient opacity-50 w-100 h-100 z-0 rounded-3"}),t.jsxs("div",{className:"d-flex align-items-end gap-2 h-50 z-1",children:[t.jsx("div",{className:"d-flex align-items-end h-50",children:t.jsx("div",{className:`${b.bar} ${b.a} rounded shadow`})}),t.jsx("div",{className:"d-flex align-items-end h-75",children:t.jsx("div",{className:`${b.bar} ${b.b} rounded shadow`})}),t.jsx("div",{className:"d-flex align-items-end h-100",children:t.jsx("div",{className:`${b.bar} ${b.c} rounded shadow`})})]})]})}function Rt(e){if(w.isVideoType(e))return 16/9;if(e.typeId===h.Playlist)return 1;if(e.typeId===h.Series)return 9/16}Ce.defaultProps={imageOptions:{size:Ae.Small}};function Ce(e){const a=Ne.useCallback(o=>{!o||!e.fixedHeight||(o.style.width=`${o.offsetHeight*Rt(e.object)}px`)},[]),s=w.isVideoType(e.object),{image:i,imageType:r,imageClassName:n,imageFallbackComponent:l}=Vt(e.object),d=e.showVideoMetadata?{hideBottomBar:e.hideBottomBar}:{hideDuration:!0,hideMask:!0,hideRating:!0,hideVideoBadgeType:!0,hideBottomBar:!0};return t.jsx("div",{className:"d-flex align-items-center justify-content-center w-100 h-100",children:t.jsxs("div",{ref:a,className:e.fixedHeight?"h-100":"w-100",children:[s&&t.jsxs("div",{className:`${b.thumbnailContainer} position-relative`,children:[e.showInsightsMask&&t.jsx(Ut,{}),t.jsx(B,{appLink:e.appLink,children:t.jsx(xe,{video:e.object,size:e.thumbnailSize,imageOptions:e.imageOptions,textPosition:ve.Independent,type:"cosmetic",imageClassName:e.imageClassName,...d})}),!!e.requireMarking&&t.jsx("div",{className:`${e.showInsightsMask&&b.requireMarking} position-absolute bottom-0 end-0 z-1 m-2`,children:t.jsx("div",{className:`${b.badge} d-flex align-items-center bg-light-ultramarine text-ultramarine fw-semibold rounded-pill w-fit mt-1 px-2`,children:t.jsx(_,{namespace:Et,phrase:"requireMarking",options:{smartCount:e.requireMarking}})})})]}),!s&&t.jsx(t.Fragment,{children:"videos"in e.object?t.jsx(_t,{collection:e.object,imageOptions:e.imageOptions,appLink:e.appLink,analyticsData:{id:e.object.id,name:e.object.name},analyticsOptions:{entity:Q.getAnalyticsEntity(e.object.type),actionType:M.Click,location:e.locationContext},showMask:e.showCollectionMask,showVideoCount:e.showVideoCount,onlyCount:e.onlyCount}):t.jsx(Qe,{data:i==null?void 0:i.url,imageType:r,imageOptions:e.imageOptions,appLink:e.appLink,className:n,analyticsData:{id:e.object.id,name:e.object.name},analyticsOptions:{entity:Q.getAnalyticsEntity(e.object.type),actionType:M.Click,location:e.locationContext},children:l})})]})})}const Gt="shared.avatarList",de=N.encloseNamespace(Gt);je.defaultProps={maxAvatars:5};function je(e){const a=e.items.length>e.maxAvatars?e.items.slice(0,e.maxAvatars-1):e.items,s=e.items.length>a.length?e.items.slice(e.maxAvatars-1):[],i=e.avatarItem,r=s.length,n=e.avatarSize==="sm"?4:8;function l(){return e.getHiddenTooltip?e.getHiddenTooltip(s):e.roleToDisplay?de(e.roleToDisplay==="staff"?"staff":"student",{count:r,smartCount:r}):de("users",{count:r,smartCount:r})}function d(){return{marginRight:`-${(a.length-1+(s.length?1:0)+(e.hasShareLink?1:0))*n}px`}}function o(m){return{transform:`translateX(${(e.hasShareLink?m+1:m)*-n}px)`,zIndex:e.maxAvatars-m}}return a.length===0&&s.length===0?t.jsx(t.Fragment,{}):t.jsxs("div",{className:"d-flex",style:d(),children:[e.hasShareLink&&t.jsx("div",{style:{zIndex:e.maxAvatars+1},children:t.jsx(pe,{text:e.shareLinkText,avatarSize:e.avatarSize,className:"bg-dark text-white"})}),a.map((m,v)=>t.jsx("div",{className:`${e.avatarContainerClassname||""}`,style:o(v),children:t.jsx(i,{item:m,imageCdnUrl:e.imageCdnUrl,index:v,maxAvatars:e.maxAvatars})},m.id)),!!s.length&&t.jsx("div",{className:`${e.avatarContainerClassname||""} bg-white rounded-circle`,style:{transform:`translateX(${a.length*-n}px)`,zIndex:e.maxAvatars-a.length},children:t.jsx(S,{title:l(),spanHack:!0,spanHackClassName:"h-100 w-100",children:t.jsx("div",{className:`d-flex justify-content-center align-items-center border border-dark rounded-circle h-100 w-100 ${e.numberClassname||""}`,children:`+${s.length}`})})})]})}const qt="_avatarContainer_p1zht_1",Wt="_sm_p1zht_5",Kt="_sharedAvatar_p1zht_10",T={avatarContainer:qt,sm:Wt,sharedAvatar:Kt},Qt="reportsShare.sharedToAvatarList",C=N.encloseNamespace(Qt);function Xt(e){const a=$.countBy(e,"typeId"),s=a[h.User],i=a[h.Classroom],r=a[h.ClassroomGroup];if(s&&i&&r)return C("classroomsGroupsAndUsers",{userCount:s,classroomCount:i,groupCount:r});if(s&&i)return C("classroomsAndUsers",{userCount:s,classroomCount:i});if(s&&r)return C("groupsAndUsers",{userCount:s,groupCount:r});if(i&&r)return C("classroomsAndGroups",{classroomCount:i,groupCount:r});if(s)return C("users",{userCount:s});if(i)return C("classrooms",{classroomCount:i});if(r)return C("groups",{groupCount:r})}function Zt(e){var n,l,d,o,m;const a=((n=e.item)==null?void 0:n.typeId)===h.User&&e.item,s=((l=e.item)==null?void 0:l.typeId)===h.Classroom&&e.item,i=((d=e.item)==null?void 0:d.typeId)===h.ClassroomGroup&&e.item,r="d-flex justify-content-center align-items-center text-white rounded-circle h-100 w-100";return t.jsxs(t.Fragment,{children:[!!a&&t.jsx(S,{title:`${a.name} ${a.surname}`,spanHack:!0,spanHackClassName:"h-100 w-100",children:t.jsx(_e,{imageUrl:(o=a.avatar)==null?void 0:o.url,imageCdnUrl:e.imageCdnUrl,initials:$e.getInitials(a.name,a.surname),extraClasses:T.sharedAvatar})}),!!s&&t.jsx(S,{title:s.name,spanHack:!0,spanHackClassName:"h-100 w-100",children:t.jsx("div",{className:r,children:t.jsx(ee,{svg:De,svgSize:O.Large,variant:"teal"})})}),!!i&&t.jsx(S,{title:i.name,spanHack:!0,spanHackClassName:"h-100 w-100",children:t.jsx("div",{className:r,children:t.jsx(ee,{svg:Fe,variant:He((m=i.metadata)==null?void 0:m.colour)})})})]})}function Yt(e){return t.jsx("div",{className:`${T.avatarContainer} ${e.avatarSize==="sm"?T.sm:""}`,children:t.jsx(S,{title:C("anonymous"),spanHack:!0,spanHackClassName:"bg-light text-dark d-flex justify-content-center align-items-center rounded-circle h-100 w-100",children:t.jsx(A,{svg:Le,size:e.avatarSize==="sm"?O.Small:null})})})}function pe(e){return t.jsx("div",{className:`${T.avatarContainer} ${e.avatarSize==="sm"?T.sm:""}`,children:t.jsx(S,{title:e.text||C("sharedLink"),spanHack:!0,spanHackClassName:`bg-light text-dark d-flex justify-content-center align-items-center rounded-circle h-100 w-100 ${e.className||""}`,children:t.jsx(A,{svg:et,size:e.avatarSize==="sm"?O.Small:null})})})}Se.defaultProps={maxAvatars:5};function Se(e){return t.jsx(je,{...e,items:e.recipients,avatarItem:Zt,avatarContainerClassname:`${T.avatarContainer} ${e.avatarSize==="sm"?T.sm:""}`,getHiddenTooltip:Xt,hasShareLink:e.hasShareLink,shareLinkText:e.shareLinkText})}var k=(e=>(e.None="None",e.Complete="Complete",e.Incomplete="Incomplete",e))(k||{});const Jt={groupByDateShared(e){const a=$.groupBy(e,"dateShared");return Object.keys(a).sort().reverse().reduce((i,r)=>{const n=ye(r);return i[n]||(i[n]=[]),i[n]=i[n].concat(a[r]),i},{})},mapActivityStatusToCheckMarkStatus(e){switch(e){case k.Complete:return I.Complete;case k.Incomplete:return I.Incomplete;case k.None:return I.None}},mapCheckMarkStatusToActivityStatus(e){switch(e){case I.Complete:return k.Complete;case I.Incomplete:return k.Incomplete;case I.None:return k.None}}};function ea(e){const a=te.useMemo(()=>e.actions.sort((n,l)=>n.order-l.order),[e.actions]),s=[],i=[];a.forEach(n=>{n.button?s.push(n):i.push(n)});let r="d-flex";return e.className&&(r+=` ${e.className}`),!s.length&&!i.length?t.jsx(t.Fragment,{}):t.jsxs("div",{className:r,children:[s.length?s.map((n,l)=>t.jsx(te.Fragment,{children:(()=>{if(n.label){const d=ze.isFunction(n.label)?n.label():t.jsx(t.Fragment,{children:n.label});return t.jsx(Me,{appLink:n.appLink,href:n.href,onClick:n.onClick,svg:n.svg,svgSize:e.dropdownToggleSvgSize,className:n.className,tooltip:n.tooltip,showSpinner:n.showSpinner,analyticsData:n.analyticsData,analyticsOptions:n.analyticsOptions,openInNewTab:n.openInNewTab,disabled:n.disabled,children:d})}return t.jsx(Pe,{appLink:n.appLink,href:n.href,onClick:n.onClick,svg:n.svg,className:n.className,analyticsData:n.analyticsData,analyticsOptions:n.analyticsOptions,openInNewTab:n.openInNewTab,disabled:n.disabled,showBorder:n.showBorder,customSize:e.customSize,ariaLabel:n.tooltip,tooltip:n.tooltip})})()},l)):t.jsx(t.Fragment,{}),e.sortComponent&&e.sortComponent,i.length?t.jsx(Oe,{actions:i,dropdownToggleClassName:e.actionsDropdownClassName,dropdownToggleSvgSize:e.dropdownToggleSvgSize,fetchMore:e.fetchMore}):t.jsx(t.Fragment,{})]})}const Y="share.sharedByMeTable",z=N.encloseNamespace(Y);function ta(e){var s;if(e.type===j.ShareLink||!((s=e==null?void 0:e.recipients)!=null&&s.length))return e.dateCreated;const a=e.recipients.map(i=>i.dateShared);return a.sort((i,r)=>ae.isSame(i,r)?0:ae.isAfter(i,r)?1:-2),a.length?$.last(a):""}function aa(e){const{index:a,dateHeading:s,getObjectAppLink:i,getObjectActions:r,imageCdnUrl:n,showStatus:l,showViewCount:d,breakpoints:o,yearGroups:m}=e,v=o&&(o.xs||o.sm),y=[{Header:l?"":s,accessor:"sharedObject",id:"image",Cell:({value:c})=>t.jsx("div",{className:"w-100",children:t.jsx(Ce,{object:c,appLink:i(c),showVideoMetadata:!0,locationContext:U.SharedByMe})}),minWidth:140,maxWidth:30},{accessor:"sharedObject",id:"name",Cell:({value:c})=>{var p;function g(){switch(c.typeId){case h.Series:return"series";case h.Playlist:return"playlist"}}if(c.name){if(w.isVideoType(c)&&!((p=w.getCanBeConsumed(c))!=null&&p.canNavigate))return t.jsx("span",{className:"clamp-2",children:c.name});const x=g();return t.jsxs("div",{className:"clamp-2",children:[x&&t.jsx(fe,{children:t.jsx(_,{namespace:Y,phrase:x})}),w.isVideoType(c)&&t.jsx(Je,{type:"series",video:c,appLink:"series"in c&&c.series?i(c.series):null,analyticsOptions:{location:U.Insights}}),t.jsx(B,{appLink:i(c),analyticsData:{id:c.id,name:c.name},analyticsOptions:{entity:Q.getAnalyticsEntity(c.type),actionType:M.Click,location:U.SharedByMe},children:c.name})]})}return t.jsx("span",{children:t.jsx(_,{namespace:Y,phrase:"videoUnavailable"})})},width:60},{Header:a===0?z("sharedTo"):"",accessor:"sharedToData",Cell:({value:c})=>{const{share:g,sharedObject:p,recipients:x}=c;if(!x){const E=g.type===j.ShareLink&&Ke.getIconAndText({entity:p,entityTypeId:p.typeId,hasStudentExp:!1,isPasswordProtected:g.isPasswordProtected,linkExpireDate:g.linkExpireDate,privacy:{privacy:g.privacy,overrideRestrictions:g.overrideRestrictions},status:g.status,yearGroups:m??[]});return t.jsx(pe,{text:E==null?void 0:E.text})}return x!=null&&x.length?t.jsx(Se,{recipients:x,imageCdnUrl:n,maxAvatars:v?1:2}):t.jsx(Yt,{})},width:40},!v&&{Header:a===0?z("shared"):"",id:"dateShared",accessor:c=>ye(c.dateShared),width:40},{accessor:"sharedObject",id:"actions",Cell:({value:c})=>t.jsx(ea,{actions:r(c),className:"w-100 justify-content-end pe-2"}),width:20}],u={Header:s,accessor:"share",id:"status",Cell:({value:c})=>t.jsx(kt,{share:c}),width:5},f={Header:z("views"),accessor:"viewCount",width:30};return l&&y.splice(0,0,u),d&&y.splice(y.length-1,0,f),y.filter(Boolean)}function na(e,a,s,i){const r=[];return e.forEach(n=>{var o;const l=a==null?void 0:a[n.objectId];let d=null;n.type===j.DirectShare&&(d=[],(o=n.recipients)==null||o.forEach(m=>{const v=s==null?void 0:s[m.id];v&&d.push(v)})),l&&r.push({share:n,sharedObject:l,sharedToData:{share:n,sharedObject:l,recipients:d},dateShared:ta(n),viewCount:n.viewCount??0})}),i?Jt.groupByDateShared(r):{[z("title")]:r}}function sa(e){const a=na(e.sentShares,e.sharedObjects,e.shareRecipients,!!e.groupByDateShared);return t.jsx(t.Fragment,{children:Object.keys(a).map((s,i)=>t.jsx(We,{columns:aa({index:i,dateHeading:s,getObjectAppLink:e.getObjectAppLink,getObjectActions:e.getObjectActions,imageCdnUrl:e.imageCdnUrl,showStatus:e.showStatus,showViewCount:e.showViewCount,breakpoints:e.breakpoints,yearGroups:e.yearGroups}),data:a[s],theme:dt},i))})}const ke={getDirectShares(e){return(e==null?void 0:e.filter(a=>a.type===j.DirectShare))??[]},getRecipients(e){return $.flatten(ke.getDirectShares(e).map(a=>a.recipients??[]))}};function ia(e){return t.jsx("svg",{...e,children:t.jsx("path",{fill:"currentColor",d:"M17.5 5h1a.5.5 0 0 1 .5.5v13a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5v-13a.5.5 0 0 1 .5-.5m-1.5.5v13a1.5 1.5 0 0 0 1.5 1.5h1a1.5 1.5 0 0 0 1.5-1.5v-13A1.5 1.5 0 0 0 18.5 4h-1A1.5 1.5 0 0 0 16 5.5m-4.5 3.638a.5.5 0 0 0-.5.5V18.5a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5V9.638a.5.5 0 0 0-.5-.5zm-1.5.5a1.5 1.5 0 0 1 1.5-1.5h1a1.5 1.5 0 0 1 1.5 1.5V18.5a1.5 1.5 0 0 1-1.5 1.5h-1a1.5 1.5 0 0 1-1.5-1.5zM4 12.74a1.5 1.5 0 0 1 1.5-1.5h1a1.5 1.5 0 0 1 1.5 1.5V18.5A1.5 1.5 0 0 1 6.5 20h-1A1.5 1.5 0 0 1 4 18.5zm1.5-.5a.5.5 0 0 0-.5.5V18.5a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-5.759a.5.5 0 0 0-.5-.5z"})})}const ra="reportsInteractives.sharedInteractives",K=N.encloseNamespace(ra);function ca(){const e=Be();return e?a=>{const{start:s,end:i,userId:r,groupId:n}=e;return X.sentShare({start:s,end:i,recipientUserId:r,recipientGroupId:n,objectTypeId:h.Interactive,cursor:a})}:!1}function oa(){const e=we(),a=ct(Ee.getPrimaryObjectUrl);return s=>{const{canConsume:i}=w.getCanBeConsumed(s);if(!i)return[];const r=[{tooltip:K("viewResults"),svg:ia,appLink:e(s),className:"me-2",button:!0},{label:K("editShareSettings"),appLink:{application:ge.DEFAULT,action:he.Default.SHARE,args:[s.id],params:{entityType:"interactive"}}}];return a&&r.push({label:K("viewOriginal"),href:a(s),openInNewTab:!0}),r}}function we(){const e=ue();return a=>({application:ge.INTERACTIVES,action:he.Interactives.OVERVIEW,args:[a.id],params:e})}function la(){const e=ue();return`shared:interactives:table:${rt(e)}`}const da="reportsInteractives.sharedInteractives",me=N.encloseNamespace(da);function Pa(){var p;const e=Ve();Ue({title:me("interactives")}),it(me("interactives"));const a=ne(qe.currentUser()),s=ne(Ge.config()),i=la(),r=we(),n=oa(),l=ca();function d(x){l&&e(l(x))}const{items:o,hasMore:m,isFetching:v,nextCursor:y,hasFirstPageCompleted:u}=tt(l,d),f=re(o==null?void 0:o.map(x=>x.objectId),X.sharedObjectsById),c=re(ke.getRecipients(o).map(x=>x.id),x=>X.getRecipientsById(x,a.data.customerId)),g=v||f.isFetching||c.isFetching;return!u||o!=null&&o.length&&!f.hasFirstRequestCompleted?t.jsx(nt,{variant:"interactives",children:t.jsx(st,{variant:"interactives"})}):o.length?t.jsxs(t.Fragment,{children:[t.jsx(sa,{sentShares:o,sharedObjects:f.items,shareRecipients:c.items,getObjectAppLink:r,getObjectActions:n,showStatus:!0,showViewCount:!0,imageCdnUrl:(p=s.data)==null?void 0:p.imageCdnUrl},i),(m||g)&&t.jsx(at,{isFetching:g,fetchNext:d,nextCursor:y})]}):t.jsx("div",{className:"bg-white rounded my-3 py-5",children:t.jsx("div",{className:"pb-5",children:t.jsx(lt,{imageUrl:Re.EmptyStates.Interactives.SharedInteractives,useInteractiveCopy:!0})})})}export{Pa as SharedInteractivesView};
2
+ //# sourceMappingURL=D-6R65i0.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"D-6R65i0.chunk.js","sources":["../../../../libs/shared/src/apps/share/components/shared-by-me/empty-state/SharedByMeEmptyState.tsx","../../../../libs/shared/src/apps/share/constants/TableTheme.ts","../../../../../node_modules/timeago.js/esm/lang/en_US.js","../../../../../node_modules/timeago.js/esm/lang/zh_CN.js","../../../../../node_modules/timeago.js/esm/register.js","../../../../../node_modules/timeago.js/esm/utils/date.js","../../../../../node_modules/timeago.js/esm/format.js","../../../../../node_modules/timeago.js/esm/index.js","../../../../libs/shared/src/enums/ShareType.ts","../../../../libs/shared/src/apps/share/components/shared-by-me/share-status-indicator/ShareStatusIndicator.tsx","../../../../libs/shared/src/components/thumbnails/collection/title/CollectionThumbnailTitle.tsx","../../../../libs/shared/src/components/thumbnails/collection/CollectionThumbnail.tsx","../../../../libs/shared/src/apps/share/components/shared-object-image/SharedObjectImage.tsx","../../../../libs/shared/src/components/avatar-list/AvatarList.tsx","../../../../libs/shared/src/apps/share/components/shared-to-avatar-list/SharedToAvatarList.tsx","../../../../libs/shared/src/enums/ShareActivityStatus.ts","../../../../libs/shared/src/apps/share/utils/ShareHelper.ts","../../../../libs/shared/src/components/actions/Actions.tsx","../../../../libs/shared/src/apps/share/components/shared-by-me/table/SharedByMeTableUtils.tsx","../../../../libs/shared/src/apps/share/components/shared-by-me/table/SharedByMeTable.tsx","../../../../libs/shared/src/utils/ShareHelper.ts","../../../../libs/shared/src/images/svg/objects/AnalyticsSvg.tsx","../../src/apps/interactives/views/shared-interactives/SharedInteractivesViewUtils.tsx","../../src/apps/interactives/views/shared-interactives/SharedInteractivesView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\n\nconst namespace = 'share.sharedByMeEmptyState';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface SharedByMeEmptyStateProps {\n imageUrl: string;\n appLink?: Core.AppLink;\n useInteractiveCopy?: boolean;\n}\n\nexport function SharedByMeEmptyState(props: SharedByMeEmptyStateProps): JSX.Element {\n return (\n <EmptyState>\n <EmptyState.Image src={props.imageUrl} size='small'/>\n <EmptyState.Heading>\n {getPhrase(props.useInteractiveCopy ? 'interactivesHeading' : 'genericHeading')}\n </EmptyState.Heading>\n <EmptyState.Info>{getPhrase(props.useInteractiveCopy ? 'interactivesInfo' : 'genericInfo')}</EmptyState.Info>\n {!!props.appLink &&\n <EmptyState.Cta appLink={props.appLink} text={getPhrase('cta')} />\n }\n </EmptyState>\n );\n}","import { TableTheme } from 'libs/shared/components/table/Table';\n\nexport const SHARES_TABLE_THEME: TableTheme = {\n table: 'striped-list no-full-width pb-3',\n header: 'fw-semibold pb-1',\n headerCell: `py-2 ps-2 text-nowrap`,\n row: 'striped-row rounded',\n cell: 'd-flex align-items-center p-2'\n};","var EN_US = ['second', 'minute', 'hour', 'day', 'week', 'month', 'year'];\nexport default function (diff, idx) {\n if (idx === 0)\n return ['just now', 'right now'];\n var unit = EN_US[Math.floor(idx / 2)];\n if (diff > 1)\n unit += 's';\n return [diff + \" \" + unit + \" ago\", \"in \" + diff + \" \" + unit];\n}\n//# sourceMappingURL=en_US.js.map","var ZH_CN = ['秒', '分钟', '小时', '天', '周', '个月', '年'];\nexport default function (diff, idx) {\n if (idx === 0)\n return ['刚刚', '片刻后'];\n var unit = ZH_CN[~~(idx / 2)];\n return [diff + \" \" + unit + \"\\u524D\", diff + \" \" + unit + \"\\u540E\"];\n}\n//# sourceMappingURL=zh_CN.js.map","/**\n * Created by hustcc on 18/5/20.\n * Contract: i@hust.cc\n */\n/**\n * All supported locales\n */\nvar Locales = {};\n/**\n * register a locale\n * @param locale\n * @param func\n */\nexport var register = function (locale, func) {\n Locales[locale] = func;\n};\n/**\n * get a locale, default is en_US\n * @param locale\n * @returns {*}\n */\nexport var getLocale = function (locale) {\n return Locales[locale] || Locales['en_US'];\n};\n//# sourceMappingURL=register.js.map","/**\n * Created by hustcc on 18/5/20.\n * Contract: i@hust.cc\n */\nvar SEC_ARRAY = [\n 60,\n 60,\n 24,\n 7,\n 365 / 7 / 12,\n 12,\n];\n/**\n * format Date / string / timestamp to timestamp\n * @param input\n * @returns {*}\n */\nexport function toDate(input) {\n if (input instanceof Date)\n return input;\n // @ts-ignore\n if (!isNaN(input) || /^\\d+$/.test(input))\n return new Date(parseInt(input));\n input = (input || '')\n // @ts-ignore\n .trim()\n .replace(/\\.\\d+/, '') // remove milliseconds\n .replace(/-/, '/')\n .replace(/-/, '/')\n .replace(/(\\d)T(\\d)/, '$1 $2')\n .replace(/Z/, ' UTC') // 2017-2-5T3:57:52Z -> 2017-2-5 3:57:52UTC\n .replace(/([+-]\\d\\d):?(\\d\\d)/, ' $1$2'); // -04:00 -> -0400\n return new Date(input);\n}\n/**\n * format the diff second to *** time ago, with setting locale\n * @param diff\n * @param localeFunc\n * @returns\n */\nexport function formatDiff(diff, localeFunc) {\n /**\n * if locale is not exist, use defaultLocale.\n * if defaultLocale is not exist, use build-in `en`.\n * be sure of no error when locale is not exist.\n *\n * If `time in`, then 1\n * If `time ago`, then 0\n */\n var agoIn = diff < 0 ? 1 : 0;\n /**\n * Get absolute value of number (|diff| is non-negative) value of x\n * |diff| = diff if diff is positive\n * |diff| = -diff if diff is negative\n * |0| = 0\n */\n diff = Math.abs(diff);\n /**\n * Time in seconds\n */\n var totalSec = diff;\n /**\n * Unit of time\n */\n var idx = 0;\n for (; diff >= SEC_ARRAY[idx] && idx < SEC_ARRAY.length; idx++) {\n diff /= SEC_ARRAY[idx];\n }\n /**\n * Math.floor() is alternative of ~~\n *\n * The differences and bugs:\n * Math.floor(3.7) -> 4 but ~~3.7 -> 3\n * Math.floor(1559125440000.6) -> 1559125440000 but ~~1559125440000.6 -> 52311552\n *\n * More information about the performance of algebraic:\n * https://www.youtube.com/watch?v=65-RbBwZQdU\n */\n diff = Math.floor(diff);\n idx *= 2;\n if (diff > (idx === 0 ? 9 : 1))\n idx += 1;\n return localeFunc(diff, idx, totalSec)[agoIn].replace('%s', diff.toString());\n}\n/**\n * calculate the diff second between date to be formatted an now date.\n * @param date\n * @param relativeDate\n * @returns {number}\n */\nexport function diffSec(date, relativeDate) {\n var relDate = relativeDate ? toDate(relativeDate) : new Date();\n return (+relDate - +toDate(date)) / 1000;\n}\n/**\n * nextInterval: calculate the next interval time.\n * - diff: the diff sec between now and date to be formatted.\n *\n * What's the meaning?\n * diff = 61 then return 59\n * diff = 3601 (an hour + 1 second), then return 3599\n * make the interval with high performance.\n **/\nexport function nextInterval(diff) {\n var rst = 1, i = 0, d = Math.abs(diff);\n for (; diff >= SEC_ARRAY[i] && i < SEC_ARRAY.length; i++) {\n diff /= SEC_ARRAY[i];\n rst *= SEC_ARRAY[i];\n }\n d = d % rst;\n d = d ? rst - d : rst;\n return Math.ceil(d);\n}\n//# sourceMappingURL=date.js.map","import { formatDiff, diffSec } from './utils/date';\nimport { getLocale } from './register';\n/**\n * format a TDate into string\n * @param date\n * @param locale\n * @param opts\n */\nexport var format = function (date, locale, opts) {\n // diff seconds\n var sec = diffSec(date, opts && opts.relativeDate);\n // format it with locale\n return formatDiff(sec, getLocale(locale));\n};\n//# sourceMappingURL=format.js.map","/**\n * Created by hustcc on 18/5/20.\n * Contract: i@hust.cc\n */\nimport en_US from './lang/en_US';\nimport zh_CN from './lang/zh_CN';\nimport { register } from './register';\nregister('en_US', en_US);\nregister('zh_CN', zh_CN);\nexport { format } from './format';\nexport { render, cancel } from './realtime';\nexport { register };\n//# sourceMappingURL=index.js.map","export enum ShareType {\n DirectShare = 'DirectShare',\n ShareLink = 'ShareLink'\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { ShareLinkStatus } from 'libs/shared/enums/ShareLinkStatus';\nimport { ShareType } from 'libs/shared/enums/ShareType';\nimport { LockSvg } from 'libs/shared/images/svg/status/LockSvg';\nimport { UnionShareObject } from 'libs/shared/interfaces';\n\nimport styles from './share-status-indicator.module.scss';\n\nconst namespace = 'share.shareStatusIndicator';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction getStatusPhrase(share: UnionShareObject): string {\n if (share.type === ShareType.DirectShare)\n return getPhrase('active');\n\n switch (share.status) {\n case ShareLinkStatus.Active:\n return getPhrase('active');\n\n case ShareLinkStatus.Expired:\n return getPhrase('expired');\n }\n}\n\nfunction getBgColourClassName(share: UnionShareObject): string {\n if (share.type === ShareType.DirectShare)\n return 'bg-success';\n \n switch (share.status) {\n case ShareLinkStatus.Active:\n return 'bg-success';\n\n case ShareLinkStatus.Expired:\n return 'bg-gray-500';\n }\n}\n\ninterface ShareStatusIndicatorProps {\n share: UnionShareObject;\n}\n\n/**\n * TODO: add support for deleted share links (currently the api doesn't return these.)\n */\nexport function ShareStatusIndicator(props: ShareStatusIndicatorProps): JSX.Element {\n if (props.share.type === ShareType.DirectShare && !props.share.recipients?.length)\n return <></>;\n\n if (props.share.type === ShareType.ShareLink && props.share.isPasswordProtected) {\n return (\n <Tooltip title={getPhrase('passwordProtected')} spanHack>\n <SvgContainer svg={LockSvg} size={SvgContainerSize.Small} />\n </Tooltip>\n );\n }\n\n return (\n <Tooltip\n title={getStatusPhrase(props.share)}\n spanHack\n spanHackClassName={styles.indicatorContainer}\n >\n <div className={`${styles.indicator} ${getBgColourClassName(props.share)}`} />\n </Tooltip>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\n\nimport styles from './collection-thumbnail-title.module.scss';\n\ninterface BaseCollectionThumbnailTitleProps {\n title: string;\n}\n\nfunction BaseCollectionThumbnailTitle(props: BaseCollectionThumbnailTitleProps): JSX.Element {\n return (\n <h3 title={props.title} className='h6'>{props.title}</h3>\n );\n}\n\ninterface CollectionThumbnailTitleProps extends BaseCollectionThumbnailTitleProps {\n appLink: Core.AppLink;\n}\n\nexport function CollectionThumbnailTitle(props: CollectionThumbnailTitleProps) {\n if (!props.appLink) {\n return (\n <BaseCollectionThumbnailTitle {...props} />\n );\n }\n \n return (\n <AppLink appLink={props.appLink} className={`${styles.thumbnailTitle}`}>\n <BaseCollectionThumbnailTitle {...props} />\n </AppLink>\n );\n}\n","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { AnalyticsOptions, EntityType, UserAction } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { CollectionThumbnailTitle } from 'libs/shared/components/thumbnails/collection/title/CollectionThumbnailTitle';\nimport { VideoThumbnail } from 'libs/shared/components/thumbnails/video/VideoThumbnail';\nimport { TitleSubText } from 'libs/shared/components/title-sub-text/TitleSubText';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ThumbnailTextPosition } from 'libs/shared/enums/ThumbnailTextPosition';\nimport { PlaySvg } from 'libs/shared/images/svg/actions/PlaySvg';\nimport { SeriesSvg } from 'libs/shared/images/svg/objects/SeriesSvg';\nimport { Playlist, Series } from 'libs/shared/interfaces';\nimport { ImageOptions } from 'libs/shared/utils/ImageHelper';\nimport { MasterTypeHelper } from 'libs/shared/utils/MasterTypeHelper';\n\nimport styles from './collection-thumbnail.module.scss';\n\nconst namespace = 'shared.collectionThumbnail';\n\ntype SupportedContentType = Playlist | Series;\n\ninterface CollectionThumbnailProps {\n appLink?: Core.AppLink\n collection: SupportedContentType;\n imageOptions?: ImageOptions;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n showMask?: boolean;\n showVideoCount?: boolean;\n onlyCount?: boolean;\n title?: string;\n titleAppLink?: Core.AppLink;\n subText?: string;\n subTextAppLink?: Core.AppLink;\n hoverText?: string;\n}\n\nexport function CollectionThumbnail(props: CollectionThumbnailProps) {\n function getFirstVideo() {\n let collectionVideos = props.collection?.videos;\n\n if (!collectionVideos)\n return;\n\n if (!collectionVideos.count && props.collection.typeId === MasterType.Playlist) {\n const playlist = props.collection as Playlist;\n\n if (playlist.clips.count)\n collectionVideos = playlist.clips;\n\n if (playlist.interactives.count)\n collectionVideos = playlist.interactives;\n }\n\n return ArrayHelper.first(collectionVideos.data);\n }\n\n function getVideoCount() {\n let totalCount = 0;\n\n if (props.collection.videos && props.collection.videos.count) {\n totalCount += props.collection.videos.count;\n }\n\n if (props.collection.typeId === MasterType.Playlist) {\n const playlist = props.collection as Playlist;\n\n if (playlist.interactives?.count)\n totalCount += playlist.interactives.count;\n\n if (playlist.clips?.count)\n totalCount += playlist.clips.count;\n }\n\n return totalCount;\n }\n\n function getEntityType(collection: SupportedContentType) {\n if (MasterTypeHelper.isType<Playlist>(collection, MasterType.Playlist)) {\n return EntityType.Playlist;\n }\n\n if (MasterTypeHelper.isType<Series>(collection, MasterType.Series)) {\n return EntityType.Series;\n }\n }\n\n const firstVideo = getFirstVideo();\n const videoCount = getVideoCount();\n const showTexts = props.title?.length || props.subText?.length;\n\n const analyticsData = {\n id: props.collection.id.toString(),\n name: props.collection.name,\n\n ...props.analyticsData\n };\n\n const analyticsOptions = {\n actionType: UserAction.Click,\n entity: getEntityType(props.collection),\n \n ...props.analyticsOptions\n };\n\n return (\n <div>\n <div className={`position-relative ${styles.thumbnailContainer} z-1`}>\n <AppLink\n appLink={props.appLink}\n analyticsData={analyticsData}\n analyticsOptions={analyticsOptions}\n preventFocus\n >\n {props.showMask &&\n <div className={`${styles.mask} position-absolute w-100 h-100 rounded-3 bg-dark bg-gradient z-1 bg-opacity-50 pointer-events-none`}>\n <div className={`${styles.badge} d-flex align-items-center w-fit flex-grow-0 bg-dark rounded-pill ps-1 m-2`}>\n <SvgContainer svg={PlaySvg} className='svg-container text-white' />\n <p className='d-inline fw-medium text-white mb-0'>\n {props.hoverText?.length ?\n <span>{props.hoverText}</span> :\n <Text namespace={namespace} phrase='playAll' />\n }\n </p>\n </div>\n </div>\n }\n\n {firstVideo &&\n <VideoThumbnail\n video={firstVideo}\n imageOptions={props.imageOptions}\n textPosition={ThumbnailTextPosition.Independent}\n type='cosmetic'\n hideMask\n hideRating\n hideDuration\n hideVideoTypeBadge\n />\n }\n\n {!firstVideo &&\n <div className='ratio ratio-16x9 bg-light rounded-3'>\n <div className='d-flex justify-content-center align-items-center'>\n <SvgContainer svg={PlaySvg} className='w-33 opacity-25 text-gray-400' />\n </div>\n </div>\n }\n\n {props.showVideoCount &&\n <div className={`${styles.badge} d-flex align-items-center w-fit bg-dark bg-opacity-75 rounded-pill position-absolute bottom-0 end-0 ps-1 m-2`}>\n <SvgContainer svg={SeriesSvg} className='svg-container text-white me-1' />\n <p className='d-inline fw-semibold text-white mb-0'>\n {props.onlyCount\n ? <span>{videoCount}</span>\n : <Text namespace={namespace} phrase='videos' options={{ count: videoCount, smartCount: videoCount }} />\n }\n </p>\n </div>\n }\n </AppLink>\n\n </div>\n \n {showTexts &&\n <div className='mt-2 d-flex flex-column'>\n {props.subText &&\n <TitleSubText title={props.subText} appLink={props.subTextAppLink}>\n {props.subText}\n </TitleSubText>\n }\n {props.title &&\n <CollectionThumbnailTitle\n title={props.collection.name}\n appLink={props.titleAppLink}\n />\n }\n </div>\n }\n </div>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { ShareViewHelper } from 'libs/shared/apps/share/views/share/ShareViewHelper';\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 { CollectionThumbnail } from 'libs/shared/components/thumbnails/collection/CollectionThumbnail';\nimport { VideoThumbnail } from 'libs/shared/components/thumbnails/video/VideoThumbnail';\nimport { BG_COLOUR_CLASS_NAMES } from 'libs/shared/constants/ColourClassNames';\nimport { ImageSize, ImageType } from 'libs/shared/enums/Images';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ThumbnailTextPosition } from 'libs/shared/enums/ThumbnailTextPosition';\nimport { BaseObject, Image, Playlist, Series } from 'libs/shared/interfaces';\nimport { getBgColorClass } from 'libs/shared/utils/getBgColorClass';\nimport { ImageHelper, ImageOptions } from 'libs/shared/utils/ImageHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport styles from './shared-object-image.module.scss';\n\nconst namespace = 'shared.sharedObjectImage';\n\nconst BASE_IMAGE_CLASS_NAME = 'rounded overflow-hidden';\n\ninterface ImageProps {\n image: Image;\n imageType: ImageType;\n imageClassName?: string;\n imageFallbackComponent: JSX.Element;\n}\n\nfunction getImageProps(object: BaseObject): ImageProps {\n const image = ImageHelper.getDisplayImageFromObject(object);\n\n if (VideoHelper.isVideoType(object))\n return {\n image,\n imageType: ImageType.Thumbnails,\n imageClassName: BASE_IMAGE_CLASS_NAME,\n imageFallbackComponent: <ImageFallback type={ImageFallbackType.Video} />\n };\n\n switch (object.typeId) {\n case MasterType.Series:\n return {\n image,\n imageType: ImageType.TallPosters,\n imageClassName: BASE_IMAGE_CLASS_NAME,\n imageFallbackComponent:\n <ImageFallback type={ImageFallbackType.Series} svgContainerClassName={styles.posterFallbackSvg} />\n };\n\n case MasterType.Playlist:\n return {\n image,\n imageType: ImageType.Covers,\n imageClassName: !image?.url\n ? `${BASE_IMAGE_CLASS_NAME} ${getBgColorClass(object.name, BG_COLOUR_CLASS_NAMES)}`\n : BASE_IMAGE_CLASS_NAME,\n imageFallbackComponent: (\n <ImageFallback\n type={ImageFallbackType.Playlist}\n svgContainerClassName={image?.url ? styles.coverFallbackSvg : 'd-none'}\n extraClasses={!image?.url && 'bg-transparent'}\n />\n )\n };\n }\n}\n\nfunction InsightsMask() {\n return (\n <div className={`d-flex pointer-events-none position-absolute bottom-0 start-0 h-100 w-100 z-1 justify-content-center align-items-center`}>\n <div className='position-absolute bg-dark bg-gradient opacity-50 w-100 h-100 z-0 rounded-3'></div>\n <div className='d-flex align-items-end gap-2 h-50 z-1'>\n <div className='d-flex align-items-end h-50'>\n <div className={`${styles.bar} ${styles.a} rounded shadow`}></div>\n </div>\n <div className='d-flex align-items-end h-75'>\n <div className={`${styles.bar} ${styles.b} rounded shadow`}></div>\n </div>\n <div className='d-flex align-items-end h-100'>\n <div className={`${styles.bar} ${styles.c} rounded shadow`}></div>\n </div>\n </div>\n </div>\n );\n}\n\nfunction getImageRatio(object: BaseObject): ImageFallbackType {\n if (VideoHelper.isVideoType(object))\n return 16 / 9;\n\n if (object.typeId === MasterType.Playlist)\n return 1;\n\n if (object.typeId === MasterType.Series)\n return 9 / 16;\n}\n\nSharedObjectImage.defaultProps = {\n imageOptions: { size: ImageSize.Small }\n};\n\ninterface SharedObjectImageProps {\n object: BaseObject;\n locationContext: LocationContext;\n appLink?: Core.AppLink;\n showVideoMetadata?: boolean;\n fixedHeight?: boolean;\n requireMarking?: number;\n imageOptions?: ImageOptions;\n showInsightsMask?: boolean;\n showCollectionMask?: boolean;\n showVideoCount?: boolean;\n thumbnailSize?: 'sm' | 'md';\n imageClassName?: string;\n hideBottomBar?: boolean;\n onlyCount?: boolean;\n}\n\nexport function SharedObjectImage(props: SharedObjectImageProps): JSX.Element {\n const ref = React.useCallback((el: HTMLDivElement) => {\n if (!el || !props.fixedHeight)\n return;\n\n el.style.width = `${el.offsetHeight * getImageRatio(props.object)}px`;\n }, []);\n\n const useVideoThumbnail = VideoHelper.isVideoType(props.object);\n\n const {\n image,\n imageType,\n imageClassName,\n imageFallbackComponent\n } = getImageProps(props.object);\n\n const thumbnailMetadata = !props.showVideoMetadata ? {\n hideDuration: true,\n hideMask: true,\n hideRating: true,\n hideVideoBadgeType: true,\n hideBottomBar: true\n } : {\n hideBottomBar: props.hideBottomBar\n };\n\n return (\n <div className='d-flex align-items-center justify-content-center w-100 h-100'>\n <div ref={ref} className={props.fixedHeight ? 'h-100' : 'w-100'}>\n {useVideoThumbnail &&\n <div className={`${styles.thumbnailContainer} position-relative`}>\n {props.showInsightsMask && <InsightsMask />}\n <AppLink appLink={props.appLink}>\n <VideoThumbnail\n video={props.object}\n size={props.thumbnailSize}\n imageOptions={props.imageOptions}\n textPosition={ThumbnailTextPosition.Independent}\n type='cosmetic'\n imageClassName={props.imageClassName}\n {...thumbnailMetadata}\n />\n </AppLink>\n {!!props.requireMarking && (\n <div className={`${props.showInsightsMask && styles.requireMarking} position-absolute bottom-0 end-0 z-1 m-2`}>\n <div className={`${styles.badge} d-flex align-items-center bg-light-ultramarine text-ultramarine fw-semibold rounded-pill w-fit mt-1 px-2`}>\n <Text namespace={namespace} phrase='requireMarking' options={{ smartCount: props.requireMarking }} />\n </div>\n </div>\n )}\n </div>\n }\n {!useVideoThumbnail &&\n <>\n {'videos' in (props.object as Playlist | Series) ? (\n <CollectionThumbnail\n collection={props.object}\n imageOptions={props.imageOptions}\n appLink={props.appLink}\n analyticsData={{\n id: props.object.id,\n name: props.object.name\n }}\n analyticsOptions={{\n entity: ShareViewHelper.getAnalyticsEntity(props.object.type),\n actionType: UserAction.Click,\n location: props.locationContext\n }}\n showMask={props.showCollectionMask}\n showVideoCount={props.showVideoCount}\n onlyCount={props.onlyCount}\n />\n ) : (\n <BaseImage\n data={image?.url}\n imageType={imageType}\n imageOptions={props.imageOptions}\n appLink={props.appLink}\n className={imageClassName}\n analyticsData={{\n id: props.object.id,\n name: props.object.name\n }}\n analyticsOptions={{\n entity: ShareViewHelper.getAnalyticsEntity(props.object.type),\n actionType: UserAction.Click,\n location: props.locationContext\n }}\n >\n {imageFallbackComponent}\n </BaseImage>\n )}\n </>\n }\n </div>\n </div>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { SharedLinkAvatar } from 'libs/shared/apps/share/components/shared-to-avatar-list/SharedToAvatarList';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { BaseObject } from 'libs/shared/interfaces';\n\nconst namespace = 'shared.avatarList';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport interface AvatarItemProps {\n imageCdnUrl: string;\n index: number;\n item?: BaseObject;\n hiddenItems?: BaseObject[];\n maxAvatars?: number;\n}\n\ninterface AvatarListProps {\n items: BaseObject[];\n imageCdnUrl: string;\n maxAvatars?: number;\n avatarItem?: (props: AvatarItemProps) => JSX.Element;\n getHiddenTooltip?: (hiddenItems: BaseObject[]) => string;\n numberClassname?: string;\n avatarContainerClassname?: string;\n roleToDisplay?: 'student' | 'staff';\n hasShareLink?: boolean;\n avatarSize?: 'md' | 'sm';\n shareLinkText?: string;\n}\n\nAvatarList.defaultProps = {\n maxAvatars: 5\n};\n\nexport function AvatarList(props: AvatarListProps): JSX.Element {\n const itemsToDisplay = props.items.length > props.maxAvatars\n ? props.items.slice(0, props.maxAvatars - 1)\n : props.items;\n\n const hiddenItems = props.items.length > itemsToDisplay.length\n ? props.items.slice(props.maxAvatars - 1)\n : [];\n\n const AvatarItem = props.avatarItem;\n const hiddenItemsCounts = hiddenItems.length;\n const translateX = props.avatarSize === 'sm' ? 4 : 8;\n\n function getTooltip() {\n if (props.getHiddenTooltip)\n return props.getHiddenTooltip(hiddenItems);\n\n if (props.roleToDisplay)\n return getPhrase(props.roleToDisplay === 'staff' ? 'staff' : 'student', { count: hiddenItemsCounts, smartCount: hiddenItemsCounts });\n\n return getPhrase('users', { count: hiddenItemsCounts, smartCount: hiddenItemsCounts });\n }\n\n function getContainerStyles() {\n return {\n marginRight: `-${((itemsToDisplay.length - 1) + (hiddenItems.length ? 1 : 0) + (props.hasShareLink ? 1 : 0)) * translateX}px`\n };\n }\n\n function getAvatarStyles(idx: number) {\n return {\n transform: `translateX(${(props.hasShareLink ? idx + 1 : idx) * -translateX}px)`,\n zIndex: props.maxAvatars - idx\n };\n }\n\n if (itemsToDisplay.length === 0 && hiddenItems.length === 0)\n return <></>;\n\n return (\n <div\n className='d-flex'\n style={getContainerStyles()}\n >\n {props.hasShareLink && (\n <div style={{ zIndex: props.maxAvatars + 1 }}>\n <SharedLinkAvatar text={props.shareLinkText} avatarSize={props.avatarSize} className='bg-dark text-white' />\n </div>\n )}\n {itemsToDisplay.map((item, idx) => (\n <div\n className={`${props.avatarContainerClassname || ''}`} key={item.id}\n style={getAvatarStyles(idx)}\n >\n <AvatarItem\n item={item}\n imageCdnUrl={props.imageCdnUrl}\n index={idx}\n maxAvatars={props.maxAvatars}\n />\n </div>\n ))}\n\n {!!hiddenItems.length && (\n <div\n className={`${props.avatarContainerClassname || ''} bg-white rounded-circle`}\n style={{ transform: `translateX(${itemsToDisplay.length * -translateX}px)`, zIndex: props.maxAvatars - itemsToDisplay.length }}\n >\n <Tooltip title={getTooltip()} spanHack spanHackClassName='h-100 w-100'>\n <div className={`d-flex justify-content-center align-items-center border border-dark rounded-circle h-100 w-100 ${props.numberClassname || ''}`}>\n {`+${hiddenItems.length}`}\n </div>\n </Tooltip>\n </div>\n )}\n </div>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { Avatar } from 'libs/shared/components/avatar/Avatar';\nimport { AvatarItemProps, AvatarList } from 'libs/shared/components/avatar-list/AvatarList';\nimport { IconCircle } from 'libs/shared/components/icon-circle/IconCircle';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { AnonymousSvg } from 'libs/shared/images/svg/objects/AnonymousSvg';\nimport { ClassroomsSvg } from 'libs/shared/images/svg/objects/ClassroomsSvg';\nimport { GroupSvg } from 'libs/shared/images/svg/objects/GroupSvg';\nimport { LinkSvg } from 'libs/shared/images/svg/objects/LinkSvg';\nimport { BaseObject, Classroom, ClassroomGroup, User } from 'libs/shared/interfaces';\nimport { mapColourToBsVariant } from 'libs/shared/utils/GroupHelper';\nimport { UserHelper } from 'libs/shared/utils/UserHelper';\n\nimport styles from './shared-to-avatar-list.module.scss';\n\nconst namespace = 'reportsShare.sharedToAvatarList';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction getHiddenRecipientText(hiddenRecipients: BaseObject[]): string {\n const counts = ArrayHelper.countBy(hiddenRecipients, 'typeId');\n const userCount = counts[MasterType.User];\n const classroomCount = counts[MasterType.Classroom];\n const groupCount = counts[MasterType.ClassroomGroup];\n\n if (userCount && classroomCount && groupCount)\n return getPhrase('classroomsGroupsAndUsers', { userCount, classroomCount, groupCount });\n\n if (userCount && classroomCount)\n return getPhrase('classroomsAndUsers', { userCount, classroomCount });\n\n if (userCount && groupCount)\n return getPhrase('groupsAndUsers', { userCount, groupCount });\n\n if (classroomCount && groupCount)\n return getPhrase('classroomsAndGroups', { classroomCount, groupCount });\n\n if (userCount)\n return getPhrase('users', { userCount });\n\n if (classroomCount)\n return getPhrase('classrooms', { classroomCount });\n\n if (groupCount)\n return getPhrase('groups', { groupCount });\n}\n\nfunction SharedToAvatar(props: AvatarItemProps): JSX.Element {\n const user: User = props.item?.typeId === MasterType.User && props.item as User;\n const classroom: Classroom = props.item?.typeId === MasterType.Classroom && props.item as Classroom;\n const classroomGroup: ClassroomGroup = props.item?.typeId === MasterType.ClassroomGroup\n && props.item as ClassroomGroup;\n\n const svgContainerClassName = 'd-flex justify-content-center align-items-center text-white rounded-circle h-100 w-100';\n\n return (\n <>\n {!!user &&\n <Tooltip title={`${user.name} ${user.surname}`} spanHack spanHackClassName='h-100 w-100'>\n <Avatar\n imageUrl={user.avatar?.url}\n imageCdnUrl={props.imageCdnUrl}\n initials={UserHelper.getInitials(user.name, user.surname)}\n extraClasses={styles.sharedAvatar}\n />\n </Tooltip>\n }\n {!!classroom &&\n <Tooltip title={classroom.name} spanHack spanHackClassName='h-100 w-100'>\n <div className={svgContainerClassName}>\n <IconCircle\n svg={ClassroomsSvg}\n svgSize={SvgContainerSize.Large}\n variant='teal'\n />\n </div>\n </Tooltip>\n }\n {!!classroomGroup &&\n <Tooltip title={classroomGroup.name} spanHack spanHackClassName='h-100 w-100'>\n <div className={svgContainerClassName}>\n <IconCircle\n svg={GroupSvg}\n variant={mapColourToBsVariant(classroomGroup.metadata?.colour)}\n />\n </div>\n </Tooltip>\n }\n </>\n );\n}\n\n\ninterface AnonymousSharedToAvatarProps {\n avatarSize?: 'md' | 'sm';\n}\n\nexport function AnonymousSharedToAvatar(props: AnonymousSharedToAvatarProps): JSX.Element {\n return (\n <div className={`${styles.avatarContainer} ${props.avatarSize === 'sm' ? styles.sm : ''}`}>\n <Tooltip\n title={getPhrase('anonymous')}\n spanHack\n spanHackClassName='bg-light text-dark d-flex justify-content-center align-items-center rounded-circle h-100 w-100'\n >\n <SvgContainer svg={AnonymousSvg} size={props.avatarSize === 'sm' ? SvgContainerSize.Small : null} />\n </Tooltip>\n </div>\n );\n}\n\ninterface SharedLinkAvatarProps {\n text?: string;\n avatarSize?: 'md' | 'sm';\n className?: string;\n}\n\nexport function SharedLinkAvatar(props: SharedLinkAvatarProps): JSX.Element {\n return (\n <div className={`${styles.avatarContainer} ${props.avatarSize === 'sm' ? styles.sm : ''}`}>\n <Tooltip\n title={props.text || getPhrase('sharedLink')}\n spanHack\n spanHackClassName={`bg-light text-dark d-flex justify-content-center align-items-center rounded-circle h-100 w-100 ${props.className || ''}`}\n >\n <SvgContainer svg={LinkSvg} size={props.avatarSize === 'sm' ? SvgContainerSize.Small : null} />\n </Tooltip>\n </div>\n );\n}\n\ninterface SharedToAvatarListProps {\n recipients: BaseObject[];\n imageCdnUrl: string;\n maxAvatars?: number;\n hasShareLink?: boolean;\n avatarSize?: 'md' | 'sm';\n shareLinkText?: string;\n}\n\nSharedToAvatarList.defaultProps = {\n maxAvatars: 5\n};\n\nexport function SharedToAvatarList(props: SharedToAvatarListProps): JSX.Element {\n return (\n <AvatarList\n {...props}\n items={props.recipients}\n avatarItem={SharedToAvatar}\n avatarContainerClassname={`${styles.avatarContainer} ${props.avatarSize === 'sm' ? styles.sm : ''}`}\n getHiddenTooltip={getHiddenRecipientText}\n hasShareLink={props.hasShareLink}\n shareLinkText={props.shareLinkText}\n />\n );\n}","export enum ShareActivityStatus {\n None = 'None',\n Complete = 'Complete',\n Incomplete = 'Incomplete'\n}","import { format } from 'timeago.js';\n\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { CheckMarkStatus } from 'libs/shared/components/check-mark-button/CheckMarkButton';\nimport { ShareActivityStatus } from 'libs/shared/enums/ShareActivityStatus';\n\ninterface ObjectWithDateShared {\n dateShared: string;\n}\n\ntype GroupedByDate<T extends ObjectWithDateShared> = { [date: string]: T[] };\n\nexport const ShareHelper = {\n groupByDateShared<T extends ObjectWithDateShared>(data: T[]): GroupedByDate<T> {\n const dateToObjectMapping: GroupedByDate<T> = ArrayHelper.groupBy(data, 'dateShared');\n\n const sortedDates = Object.keys(dateToObjectMapping).sort().reverse();\n\n // Create a sorted mapping between dates and the \"ObjectWithDateShared\" objects\n return sortedDates.reduce((acc: GroupedByDate<T>, date) => {\n const heading = format(date);\n\n if (!acc[heading])\n acc[heading] = [];\n\n acc[heading] = acc[heading].concat(dateToObjectMapping[date]);\n return acc;\n }, {});\n },\n\n mapActivityStatusToCheckMarkStatus(activityStatus: ShareActivityStatus): CheckMarkStatus {\n switch (activityStatus) {\n case ShareActivityStatus.Complete:\n return CheckMarkStatus.Complete;\n case ShareActivityStatus.Incomplete:\n return CheckMarkStatus.Incomplete;\n case ShareActivityStatus.None:\n return CheckMarkStatus.None;\n }\n },\n\n mapCheckMarkStatusToActivityStatus(checkMarkStatus: CheckMarkStatus): ShareActivityStatus {\n switch (checkMarkStatus) {\n case CheckMarkStatus.Complete:\n return ShareActivityStatus.Complete;\n case CheckMarkStatus.Incomplete:\n return ShareActivityStatus.Incomplete;\n case CheckMarkStatus.None:\n return ShareActivityStatus.None;\n }\n }\n};","import * as React from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { BaseObject } from 'libs/shared/interfaces';\nimport { SvgIcon } from 'libs/shared/utils/SvgHelper';\n\nimport { ActionButton } from './ActionButton';\nimport { ActionsDropdown } from './ActionsDropdown';\n\nexport interface ActionOptions {\n order?: number;\n label?: string | (() => JSX.Element);\n appLink?: Core.AppLink;\n href?: string;\n onClick?: () => void;\n svg?: SvgIcon;\n className?: string;\n button?: boolean; // If true, a button will be rendered. Otherwise the action will be rendered in the dropdown.\n tooltip?: string;\n showSpinner?: boolean;\n showBorder?: boolean; // only works for button without text label\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n disabled?: boolean;\n openInNewTab?: boolean; // Only used if appLink or href is provided\n group?: string;\n lazyPlaceholder?: boolean;\n}\n\nexport type ActionGenerator = (obj: BaseObject) => ActionOptions[];\n\ninterface ActionsProps {\n actions: ActionOptions[];\n className?: string;\n actionsDropdownClassName?: string;\n dropdownToggleSvgSize?: SvgContainerSize;\n sortComponent?: JSX.Element;\n customSize?: boolean;\n fetchMore?: () => void;\n}\n\nexport function Actions(props: ActionsProps): JSX.Element {\n const orderedActions = React.useMemo(() => props.actions.sort((a, b) => a.order - b.order), [props.actions]);\n\n const buttonActions: ActionOptions[] = [];\n const moreActions: ActionOptions[] = [];\n\n orderedActions.forEach(a => {\n if (a.button)\n buttonActions.push(a);\n else\n moreActions.push(a);\n });\n\n let className = 'd-flex';\n\n if (props.className)\n className += ` ${props.className}`;\n\n if (!buttonActions.length && !moreActions.length)\n return <></>;\n\n return (\n <div className={className}>\n {buttonActions.length ? buttonActions.map((a, idx) => (\n <React.Fragment key={idx}>\n {(() => {\n if (a.label) {\n const label: JSX.Element = FunctionHelper.isFunction(a.label)\n ? a.label()\n : <>{a.label}</>;\n\n return (\n <ActionButton\n appLink={a.appLink}\n href={a.href}\n onClick={a.onClick}\n svg={a.svg}\n svgSize={props.dropdownToggleSvgSize}\n className={a.className}\n tooltip={a.tooltip}\n showSpinner={a.showSpinner}\n analyticsData={a.analyticsData}\n analyticsOptions={a.analyticsOptions}\n openInNewTab={a.openInNewTab}\n disabled={a.disabled}\n >\n {label}\n </ActionButton>\n );\n }\n\n return (\n <IconButton\n appLink={a.appLink}\n href={a.href}\n onClick={a.onClick}\n svg={a.svg}\n className={a.className}\n analyticsData={a.analyticsData}\n analyticsOptions={a.analyticsOptions}\n openInNewTab={a.openInNewTab}\n disabled={a.disabled}\n showBorder={a.showBorder}\n customSize={props.customSize}\n ariaLabel={a.tooltip}\n tooltip={a.tooltip}\n />\n );\n })()}\n </React.Fragment>\n )) : <></>}\n {props.sortComponent && props.sortComponent}\n {moreActions.length ? (\n <ActionsDropdown\n actions={moreActions}\n dropdownToggleClassName={props.actionsDropdownClassName}\n dropdownToggleSvgSize={props.dropdownToggleSvgSize}\n fetchMore={props.fetchMore}\n />\n ) : <></>}\n </div>\n );\n}","import React from 'react';\nimport { Column } from 'react-table';\nimport { format as formatDate } from 'timeago.js';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport {\n ShareStatusIndicator\n} from 'libs/shared/apps/share/components/shared-by-me/share-status-indicator/ShareStatusIndicator';\nimport { SharedObjectImage } from 'libs/shared/apps/share/components/shared-object-image/SharedObjectImage';\nimport {\n AnonymousSharedToAvatar,\n SharedLinkAvatar,\n SharedToAvatarList\n} from 'libs/shared/apps/share/components/shared-to-avatar-list/SharedToAvatarList';\nimport { ShareHelper } from 'libs/shared/apps/share/utils/ShareHelper';\nimport { ShareLinkHelper } from 'libs/shared/apps/share/utils/ShareLinkHelper';\nimport { SharableEntity, SharableRecipient, ShareViewHelper } from 'libs/shared/apps/share/views/share/ShareViewHelper';\nimport { ActionOptions, Actions } from 'libs/shared/components/actions/Actions';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { TitleSubText } from 'libs/shared/components/title-sub-text/TitleSubText';\nimport { VideoSubText } from 'libs/shared/components/video-sub-text/VideoSubText';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ShareType } from 'libs/shared/enums/ShareType';\nimport { Breakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { BaseObject, UnionShareObject, YearGroup } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nconst namespace = 'share.sharedByMeTable';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction getDateShared(share: UnionShareObject): string {\n if (share.type === ShareType.ShareLink || !share?.recipients?.length)\n return share.dateCreated;\n\n const datesShared = share.recipients.map(r => r.dateShared);\n\n datesShared.sort((date1, date2) => {\n if (DateHelper.isSame(date1, date2))\n return 0;\n\n return DateHelper.isAfter(date1, date2) ? 1 : -2;\n });\n\n\n if (!datesShared.length)\n return '';\n\n return ArrayHelper.last(datesShared);\n}\n\ninterface SharedByMeTableData {\n share: UnionShareObject;\n sharedObject: SharableEntity;\n dateShared: string;\n sharedToData: {\n share: UnionShareObject;\n sharedObject: SharableEntity;\n recipients?: BaseObject[];\n };\n viewCount: number;\n}\n\ntype TableDataGroupings = { [date: string]: SharedByMeTableData[] };\n\ninterface GetColumnsOptions {\n index: number;\n dateHeading: string;\n getObjectAppLink: (object: BaseObject) => Core.AppLink;\n getObjectActions: (object: BaseObject) => ActionOptions[];\n imageCdnUrl: string;\n showStatus?: boolean;\n showViewCount?: boolean;\n breakpoints?: Breakpoints;\n yearGroups?: YearGroup[];\n}\n\nexport function getColumns(options: GetColumnsOptions): Column<SharedByMeTableData>[] {\n const {\n index,\n dateHeading,\n getObjectAppLink,\n getObjectActions,\n imageCdnUrl,\n showStatus,\n showViewCount,\n breakpoints,\n yearGroups\n } = options;\n const isMobile = breakpoints && (breakpoints.xs || breakpoints.sm);\n\n const columns: Column<SharedByMeTableData>[] = [\n {\n Header: showStatus ? '' : dateHeading,\n accessor: 'sharedObject',\n id: 'image',\n Cell: ({ value }) => (\n <div className='w-100'>\n <SharedObjectImage\n object={value}\n appLink={getObjectAppLink(value)}\n showVideoMetadata\n locationContext={LocationContext.SharedByMe}\n />\n </div>\n ),\n minWidth: 140,\n maxWidth: 30\n },\n {\n accessor: 'sharedObject',\n id: 'name',\n Cell: ({ value }) => {\n function getSubTextPhrase(): string {\n switch (value.typeId) {\n case MasterType.Series: return 'series';\n case MasterType.Playlist: return 'playlist';\n }\n }\n\n if (value.name) {\n if (VideoHelper.isVideoType(value) && !VideoHelper.getCanBeConsumed(value)?.canNavigate) {\n return (\n <span className='clamp-2'>\n {value.name}\n </span>\n );\n }\n\n const subTextPhrase = getSubTextPhrase();\n\n return (\n <div className='clamp-2'>\n {subTextPhrase &&\n <TitleSubText>\n <Text namespace={namespace} phrase={subTextPhrase} />\n </TitleSubText>\n }\n {VideoHelper.isVideoType(value) && (\n <VideoSubText\n type='series'\n video={value}\n appLink={'series' in value && value.series ? getObjectAppLink(value.series) : null}\n analyticsOptions={{ location: LocationContext.Insights }}\n />\n )}\n <AppLink\n appLink={getObjectAppLink(value)}\n analyticsData={{ id: value.id, name: value.name }}\n analyticsOptions={{\n entity: ShareViewHelper.getAnalyticsEntity(value.type),\n actionType: UserAction.Click,\n location: LocationContext.SharedByMe\n }}\n >\n {value.name}\n </AppLink>\n </div>\n );\n }\n\n return <span><Text namespace={namespace} phrase='videoUnavailable' /></span>;\n },\n width: 60\n },\n {\n Header: index === 0 ? getPhrase('sharedTo') : '',\n accessor: 'sharedToData',\n Cell: ({ value }) => {\n const { share, sharedObject, recipients } = value;\n\n if (!recipients) {\n const iconAndText = share.type === ShareType.ShareLink && ShareLinkHelper.getIconAndText({\n entity: sharedObject,\n entityTypeId: sharedObject.typeId,\n hasStudentExp: false,\n isPasswordProtected: share.isPasswordProtected,\n linkExpireDate: share.linkExpireDate,\n privacy: {\n privacy: share.privacy,\n overrideRestrictions: share.overrideRestrictions\n },\n status: share.status,\n yearGroups: yearGroups ?? []\n });\n\n return <SharedLinkAvatar text={iconAndText?.text} />;\n }\n \n if (!recipients?.length)\n return <AnonymousSharedToAvatar />;\n\n return (\n <SharedToAvatarList\n recipients={recipients}\n imageCdnUrl={imageCdnUrl}\n maxAvatars={isMobile ? 1 : 2}\n />\n );\n },\n width: 40\n },\n !isMobile && {\n Header: index === 0 ? getPhrase('shared') : '',\n id: 'dateShared',\n accessor: s => formatDate(s.dateShared),\n width: 40\n },\n {\n accessor: 'sharedObject',\n id: 'actions',\n Cell: ({ value }) => (\n <Actions\n actions={getObjectActions(value)}\n className='w-100 justify-content-end pe-2'\n />\n ),\n width: 20\n }\n ];\n\n const statusColumn: Column<SharedByMeTableData> = {\n Header: dateHeading,\n accessor: 'share',\n id: 'status',\n Cell: ({ value }) => (\n <ShareStatusIndicator share={value} />\n ),\n width: 5\n };\n\n const viewCountColumn: Column<SharedByMeTableData> = {\n Header: getPhrase('views'),\n accessor: 'viewCount',\n width: 30\n };\n\n if (showStatus)\n columns.splice(0, 0, statusColumn);\n\n if (showViewCount)\n columns.splice(columns.length - 1, 0, viewCountColumn);\n\n return columns.filter((Boolean));\n}\n\nexport function useGetData(\n sentShares: UnionShareObject[],\n sharedObjects: Record<string, SharableEntity>,\n shareRecipients: Record<string, SharableRecipient>,\n groupByDate: boolean\n): TableDataGroupings {\n const tableData: SharedByMeTableData[] = [];\n\n sentShares.forEach(s => {\n const sharedObject = sharedObjects?.[s.objectId];\n\n let recipients: BaseObject[] | null = null;\n\n if (s.type === ShareType.DirectShare) {\n recipients = [];\n\n s.recipients?.forEach(r => {\n const recipient = shareRecipients?.[r.id];\n\n if (recipient)\n recipients.push(recipient);\n });\n }\n\n // Skip if we don't have access to the shared object (e.g. if it's been deleted)\n if (sharedObject)\n tableData.push({\n share: s,\n sharedObject,\n sharedToData: {\n share: s,\n sharedObject,\n recipients\n },\n dateShared: getDateShared(s),\n viewCount: s.viewCount ?? 0\n });\n });\n\n if (!groupByDate)\n return { [getPhrase('title')]: tableData };\n\n return ShareHelper.groupByDateShared(tableData);\n}","import React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { SHARES_TABLE_THEME } from 'libs/shared/apps/share/constants/TableTheme';\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { Table } from 'libs/shared/components/table/Table';\nimport { Breakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { BaseObject, UnionShareObject, YearGroup } from 'libs/shared/interfaces';\n\nimport { SharableEntity, SharableRecipient } from '../../../views/share/ShareViewHelper';\n\nimport { getColumns, useGetData } from './SharedByMeTableUtils';\n\ninterface SharedByMeTableProps {\n sentShares: UnionShareObject[];\n sharedObjects: Record<string, SharableEntity>;\n shareRecipients: Record<string, SharableRecipient>;\n getObjectAppLink: (object: BaseObject) => Core.AppLink;\n getObjectActions: (object: BaseObject) => ActionOptions[];\n groupByDateShared?: boolean;\n showStatus?: boolean;\n showViewCount?: boolean;\n breakpoints?: Breakpoints;\n imageCdnUrl: string;\n yearGroups?: YearGroup[];\n}\n\nexport function SharedByMeTable(props: SharedByMeTableProps): JSX.Element {\n const data = useGetData(\n props.sentShares,\n props.sharedObjects,\n props.shareRecipients,\n !!props.groupByDateShared\n );\n\n return (\n <>\n {Object.keys(data).map((heading, index) => (\n <Table\n key={index}\n columns={getColumns({\n index,\n dateHeading: heading,\n getObjectAppLink: props.getObjectAppLink,\n getObjectActions: props.getObjectActions,\n imageCdnUrl: props.imageCdnUrl,\n showStatus: props.showStatus,\n showViewCount: props.showViewCount,\n breakpoints: props.breakpoints,\n yearGroups: props.yearGroups\n })}\n data={data[heading]}\n theme={SHARES_TABLE_THEME}\n />\n ))}\n </>\n );\n}","import { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { ShareType } from 'libs/shared/enums/ShareType';\nimport { DirectShare, ShareRecipient, UnionShareObject } from 'libs/shared/interfaces';\n\nexport const ShareHelper = {\n getDirectShares(sentShares: UnionShareObject[]): DirectShare[] {\n return sentShares?.filter(s => s.type === ShareType.DirectShare) as DirectShare[] ?? [];\n },\n \n getRecipients(sentShares: UnionShareObject[]): ShareRecipient[] {\n return ArrayHelper.flatten(ShareHelper.getDirectShares(sentShares).map(d => d.recipients ?? []));\n }\n};","import React from 'react';\n\nexport function AnalyticsSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n fill='currentColor'\n d='M17.5 5h1a.5.5 0 0 1 .5.5v13a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5v-13a.5.5 0 0 1 .5-.5m-1.5.5v13a1.5 1.5 0 0 0 1.5 1.5h1a1.5 1.5 0 0 0 1.5-1.5v-13A1.5 1.5 0 0 0 18.5 4h-1A1.5 1.5 0 0 0 16 5.5m-4.5 3.638a.5.5 0 0 0-.5.5V18.5a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5V9.638a.5.5 0 0 0-.5-.5zm-1.5.5a1.5 1.5 0 0 1 1.5-1.5h1a1.5 1.5 0 0 1 1.5 1.5V18.5a1.5 1.5 0 0 1-1.5 1.5h-1a1.5 1.5 0 0 1-1.5-1.5zM4 12.74a1.5 1.5 0 0 1 1.5-1.5h1a1.5 1.5 0 0 1 1.5 1.5V18.5A1.5 1.5 0 0 1 6.5 20h-1A1.5 1.5 0 0 1 4 18.5zm1.5-.5a.5.5 0 0 0-.5.5V18.5a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-5.759a.5.5 0 0 0-.5-.5z'\n />\n </svg>\n );\n}\n","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\n\nimport { getFilterParamsKey } from 'libs/shared/apps/analytics/utils/FilterParamUtils';\nimport { ShareRequests } from 'libs/shared/apps/share/flight-requests/ShareRequests';\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { AnalyticsSvg } from 'libs/shared/images/svg/objects/AnalyticsSvg';\nimport { Interactive } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { Actions } from 'shared/constants/ReportsActions';\nimport { AppChannels } from 'shared/constants/ReportsRadioChannels';\nimport { useGetExternalUrl } from 'shared/hooks/UseGetExternalUrl';\nimport { useGetAppLinkFilterParams, useGetRequestFilter } from 'shared/hooks/UseGetFilterQueryParams';\nimport { ExternalRouteHelper } from 'shared/utils/ExternalRouteHelper';\n\nconst namespace = 'reportsInteractives.sharedInteractives';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function useGetRequest(): ((cursor?: string) => Flight.Request) | false {\n const requestFilter = useGetRequestFilter();\n\n if (!requestFilter)\n return false;\n\n return (cursor?: string) => {\n const { start, end, userId, groupId } = requestFilter;\n\n return ShareRequests.sentShare({\n start,\n end,\n recipientUserId: userId,\n recipientGroupId: groupId,\n objectTypeId: MasterType.Interactive,\n cursor\n });\n };\n}\n\nexport function useGetActions(): (interactive: Interactive) => ActionOptions[] {\n const getAppLink = useGetInteractiveAppLink();\n\n const getObjectUrl = useGetExternalUrl(ExternalRouteHelper.getPrimaryObjectUrl);\n\n return (interactive: Interactive) => {\n const { canConsume } = VideoHelper.getCanBeConsumed(interactive);\n\n if (!canConsume)\n return [];\n\n const options: ActionOptions[] = [\n {\n tooltip: getPhrase('viewResults'),\n svg: AnalyticsSvg,\n appLink: getAppLink(interactive),\n className: 'me-2',\n button: true\n },\n {\n label: getPhrase('editShareSettings'),\n appLink: {\n application: AppChannels.DEFAULT,\n action: Actions.Default.SHARE,\n args: [interactive.id],\n params: { entityType: 'interactive' }\n }\n }\n ];\n\n if (getObjectUrl)\n options.push({\n label: getPhrase('viewOriginal'),\n href: getObjectUrl(interactive),\n openInNewTab: true\n });\n\n return options;\n };\n}\n\nexport function useGetInteractiveAppLink(): (interactive: Interactive) => Core.AppLink {\n const filterQueryParams = useGetAppLinkFilterParams();\n\n return (interactive: Interactive) => ({\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.OVERVIEW,\n args: [interactive.id],\n params: filterQueryParams\n });\n}\n\nexport function useTableKey(): string {\n const filterQueryParams = useGetAppLinkFilterParams();\n\n return `shared:interactives:table:${getFilterParamsKey(filterQueryParams)}`;\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { SharedByMeEmptyState } from 'libs/shared/apps/share/components/shared-by-me/empty-state/SharedByMeEmptyState';\nimport { SharedByMeTable } from 'libs/shared/apps/share/components/shared-by-me/table/SharedByMeTable';\nimport { ShareRequests } from 'libs/shared/apps/share/flight-requests/ShareRequests';\nimport { InfiniteScrollFooter } from 'libs/shared/components/infinite-scroll-footer/InfiniteScrollFooter';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useGrowingBatchFetch } from 'libs/shared/hooks/UseBatchFetch';\nimport { useInfiniteList } from 'libs/shared/hooks/UseInfiniteList';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Config, CurrentUser, UnionShareObject } from 'libs/shared/interfaces';\nimport { ShareHelper } from 'libs/shared/utils/ShareHelper';\n\nimport { PartialTable } from 'shared/components/partial-loading/PartialTable';\nimport { PartialTableContent } from 'shared/components/partial-loading/PartialTableContent';\nimport { ImageUrls } from 'shared/constants/ReportsImageUrls';\nimport { useSetHeaderTitle } from 'shared/hooks/UseSetHeaderTitle';\n\nimport { useGetActions, useGetInteractiveAppLink, useGetRequest, useTableKey } from './SharedInteractivesViewUtils';\n\nconst namespace = 'reportsInteractives.sharedInteractives';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function SharedInteractivesView(): JSX.Element {\n const fetch = Flight.useGetFetch();\n useSetPageMetadata({ title: getPhrase('interactives') });\n useSetHeaderTitle(getPhrase('interactives'));\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n const tableKey = useTableKey();\n\n const getAppLink = useGetInteractiveAppLink();\n const getActions = useGetActions();\n\n const getRequest = useGetRequest();\n\n function fetchNext(cursor?: string): void {\n if (!getRequest)\n return;\n\n fetch(getRequest(cursor));\n }\n\n const {\n items: sentShares,\n hasMore,\n isFetching: isFetchingSentShares,\n nextCursor,\n hasFirstPageCompleted\n } = useInfiniteList<UnionShareObject>(getRequest, fetchNext);\n\n const sharedInteractives = useGrowingBatchFetch(\n sentShares?.map(obj => obj.objectId),\n ShareRequests.sharedObjectsById\n );\n\n const recipients = useGrowingBatchFetch(\n ShareHelper.getRecipients(sentShares).map(obj => obj.id),\n ids => ShareRequests.getRecipientsById(ids, currentUser.data.customerId)\n );\n \n // Wait until all data is fetched before telling the table to re-render\n const isFetching = isFetchingSentShares\n || sharedInteractives.isFetching\n || recipients.isFetching;\n\n if (!hasFirstPageCompleted || (sentShares?.length && !sharedInteractives.hasFirstRequestCompleted))\n return (\n <PartialTable variant='interactives'>\n <PartialTableContent variant='interactives' />\n </PartialTable>\n );\n\n if (!sentShares.length)\n return (\n <div className='bg-white rounded my-3 py-5'>\n <div className='pb-5'>\n <SharedByMeEmptyState\n imageUrl={ImageUrls.EmptyStates.Interactives.SharedInteractives}\n useInteractiveCopy\n />\n </div>\n </div>\n );\n\n return (\n <>\n <SharedByMeTable\n key={tableKey}\n sentShares={sentShares}\n sharedObjects={sharedInteractives.items}\n shareRecipients={recipients.items}\n getObjectAppLink={getAppLink}\n getObjectActions={getActions}\n showStatus\n showViewCount\n imageCdnUrl={config.data?.imageCdnUrl}\n />\n {(hasMore || isFetching) &&\n <InfiniteScrollFooter isFetching={isFetching} fetchNext={fetchNext} nextCursor={nextCursor} />\n }\n </>\n );\n}"],"names":["namespace","getPhrase","LanguageService","SharedByMeEmptyState","props","EmptyState","jsx","SHARES_TABLE_THEME","EN_US","en_US","diff","idx","unit","ZH_CN","zh_CN","Locales","register","locale","func","getLocale","SEC_ARRAY","toDate","input","formatDiff","localeFunc","agoIn","totalSec","diffSec","date","relativeDate","relDate","format","opts","sec","ShareType","getStatusPhrase","share","ShareLinkStatus","getBgColourClassName","ShareStatusIndicator","_a","Fragment","Tooltip","SvgContainer","LockSvg","SvgContainerSize","styles","BaseCollectionThumbnailTitle","CollectionThumbnailTitle","AppLink","CollectionThumbnail","getFirstVideo","collectionVideos","MasterType","playlist","ArrayHelper","getVideoCount","totalCount","_b","getEntityType","collection","MasterTypeHelper","EntityType","firstVideo","videoCount","showTexts","analyticsData","analyticsOptions","UserAction","jsxs","PlaySvg","_c","Text","VideoThumbnail","ThumbnailTextPosition","SeriesSvg","TitleSubText","BASE_IMAGE_CLASS_NAME","getImageProps","object","image","ImageHelper","VideoHelper","ImageType","ImageFallback","ImageFallbackType","getBgColorClass","BG_COLOUR_CLASS_NAMES","InsightsMask","getImageRatio","SharedObjectImage","ImageSize","ref","React","el","useVideoThumbnail","imageType","imageClassName","imageFallbackComponent","thumbnailMetadata","ShareViewHelper","BaseImage","AvatarList","itemsToDisplay","hiddenItems","AvatarItem","hiddenItemsCounts","translateX","getTooltip","getContainerStyles","getAvatarStyles","SharedLinkAvatar","item","getHiddenRecipientText","hiddenRecipients","counts","userCount","classroomCount","groupCount","SharedToAvatar","user","classroom","classroomGroup","svgContainerClassName","Avatar","_d","UserHelper","IconCircle","ClassroomsSvg","GroupSvg","mapColourToBsVariant","_e","AnonymousSharedToAvatar","AnonymousSvg","LinkSvg","SharedToAvatarList","ShareActivityStatus","ShareHelper","data","dateToObjectMapping","acc","heading","activityStatus","CheckMarkStatus","checkMarkStatus","Actions","orderedActions","React.useMemo","a","b","buttonActions","moreActions","className","React.Fragment","label","FunctionHelper","ActionButton","IconButton","ActionsDropdown","getDateShared","datesShared","r","date1","date2","DateHelper","getColumns","options","index","dateHeading","getObjectAppLink","getObjectActions","imageCdnUrl","showStatus","showViewCount","breakpoints","yearGroups","isMobile","columns","value","LocationContext","getSubTextPhrase","subTextPhrase","VideoSubText","sharedObject","recipients","iconAndText","ShareLinkHelper","s","formatDate","statusColumn","viewCountColumn","useGetData","sentShares","sharedObjects","shareRecipients","groupByDate","tableData","recipient","SharedByMeTable","Table","d","AnalyticsSvg","useGetRequest","requestFilter","useGetRequestFilter","cursor","start","end","userId","groupId","ShareRequests","useGetActions","getAppLink","useGetInteractiveAppLink","getObjectUrl","useGetExternalUrl","ExternalRouteHelper","interactive","canConsume","AppChannels","filterQueryParams","useGetAppLinkFilterParams","useTableKey","getFilterParamsKey","SharedInteractivesView","fetch","Flight.useGetFetch","useSetPageMetadata","useSetHeaderTitle","currentUser","Flight.useBasicFetch","UserRequests","config","ConfigRequests","tableKey","getActions","getRequest","fetchNext","hasMore","isFetchingSentShares","nextCursor","hasFirstPageCompleted","useInfiniteList","sharedInteractives","useGrowingBatchFetch","obj","ids","isFetching","PartialTable","PartialTableContent","InfiniteScrollFooter","ImageUrls"],"mappings":"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","x_google_ignoreList":[2,3,4,5,6,7]}
@@ -0,0 +1,2 @@
1
+ import{j as c,bD as s,v as y,e as T}from"./app-DhPN-zNB.js";import{a as D,H as Y,b as C}from"./rLITk9YY.chunk.js";import{m as _,u as x}from"./CEPQucRi.chunk.js";const A="_chartContainer_aj1wj_1",j="_heading_aj1wj_4",H="_partialHeading_aj1wj_9",u={chartContainer:A,heading:j,partialHeading:H};function v(){return c.jsx("div",{className:`partial-loading-background mb-2 ${u.partialHeading}`})}const p=45,m={MONTH:35,YEAR:365},g={day:"YYYY-MM-DD",month:"YYYY-MM",year:"YYYY"},O={day:"D MMM",month:"MMM",year:"YYYY"},M={enabled:!0,align:"right",verticalAlign:"top",floating:!0,y:-p},b={title:{text:null},credits:{enabled:!1},yAxis:{title:{text:null},min:0,minRange:10,minPadding:0,maxPadding:.02,endOnTick:!1},chart:{backgroundColor:"transparent",spacing:[p,0,0,4]},plotOptions:{series:{stacking:"normal"}}};function N(a){const t=s.diffBetween(a.end,a.start,"day");return t>m.YEAR?"year":t>m.MONTH?"month":"day"}function R(a,t){const r=[];let n=s.format(a.start,g[t]);do r.push(n),n=s.format(s.add(n,1,t),g[t]);while(!s.isAfter(n,a.end,t));return r}function P(a,t,r){const n=N(r),l=R(r,n),i={};a.forEach(e=>{if(!e.userType)return;const o=s.format(s.convertUTCToLocal(t(e)),g[n]);i[e.userType]=i[e.userType]??{},i[e.userType][o]=i[e.userType][o]??0,i[e.userType][o]+=e.count});const d=Object.keys(i),f=d.length?y.sortBy(d.map(e=>({name:D(e),type:"column",data:l.map(o=>i[e][o]??0)})),"name"):[{type:"column",data:l.map(()=>0)}],h={...M};return d.length||(h.enabled=!1),{categories:l.map(e=>s.format(e,O[n])),legendOptions:h,seriesData:_(f)}}function E(a,t,r){const n=P(a,t,r);return{...b,xAxis:{categories:n.categories},legend:n.legendOptions,series:n.seriesData}}function G(a){const t=T();return x(),c.jsxs("div",{className:"position-relative h-100",children:[c.jsx("h3",{className:`h6 ${u.heading}`,children:a.title}),!!t&&c.jsx(Y,{highcharts:C,options:E(a.events,a.getEventDate,t),containerProps:{className:`${u.chartContainer} position-absolute w-100 h-100`}})]})}export{v as P,G as U};
2
+ //# sourceMappingURL=D-LQhb27.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"D-LQhb27.chunk.js","sources":["../../src/shared/components/user-activity-bar-chart/PartialUserActivityBarChart.tsx","../../src/shared/components/user-activity-bar-chart/UserActivityBarChartConstants.ts","../../src/shared/components/user-activity-bar-chart/UserActivityBarChartUtils.ts","../../src/shared/components/user-activity-bar-chart/UserActivityBarChart.tsx"],"sourcesContent":["import React from 'react';\n\nimport styles from './user-activity-bar-chart.module.scss';\n\nexport function PartialUserActivityBarChart(): JSX.Element {\n return (\n <div className={`partial-loading-background mb-2 ${styles.partialHeading}`} />\n );\n}","import Highcharts from 'highcharts';\n\nconst CHART_PADDING_TOP = 45;\n\nexport const GroupByThresholds = {\n MONTH: 35,\n YEAR: 365\n};\n\nexport const DateFormats = {\n day: 'YYYY-MM-DD',\n month: 'YYYY-MM',\n year: 'YYYY'\n};\n\nexport const DisplayFormats = {\n day: 'D MMM',\n month: 'MMM',\n year: 'YYYY'\n};\n\nexport const DEFAULT_LEGEND_OPTIONS: Highcharts.LegendOptions = {\n enabled: true,\n align: 'right',\n verticalAlign: 'top',\n floating: true,\n y: -CHART_PADDING_TOP\n};\n\nexport const STATIC_CHART_OPTIONS: Highcharts.Options = {\n title: {\n text: null\n },\n credits: {\n enabled: false\n },\n yAxis: {\n title: {\n text: null\n },\n min: 0,\n minRange: 10,\n minPadding: 0,\n maxPadding: 0.02,\n endOnTick: false\n },\n chart: {\n backgroundColor: 'transparent',\n spacing: [ CHART_PADDING_TOP, 0, 0, 4 ]\n },\n plotOptions: {\n series: {\n stacking: 'normal'\n }\n }\n};","import Highcharts from 'highcharts';\n\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { BaseAnalyticsEvent } from 'libs/shared/apps/analytics/interfaces/BaseAnalyticsEvent';\nimport { mixinSeriesColours } from 'libs/shared/apps/analytics/utils/ChartColourUtils';\nimport { UserGroup } from 'libs/shared/enums/UserGroup';\nimport { AnalyticsRequestFilter } from 'libs/shared/interfaces';\n\nimport { mapUserTypeToChartLabel } from 'shared/utils/UserUtils';\n\nimport { DateFormats, DEFAULT_LEGEND_OPTIONS, DisplayFormats, GroupByThresholds, STATIC_CHART_OPTIONS } from './UserActivityBarChartConstants';\n\ntype GroupBy = 'day' | 'month' | 'year';\n\ninterface ChartData {\n categories: string[];\n legendOptions: Highcharts.LegendOptions;\n seriesData: Highcharts.SeriesColumnOptions[];\n}\n\nfunction getGroupBy(requestFilter: AnalyticsRequestFilter): GroupBy {\n const range = DateHelper.diffBetween(requestFilter.end, requestFilter.start, 'day');\n\n if (range > GroupByThresholds.YEAR)\n return 'year';\n\n if (range > GroupByThresholds.MONTH)\n return 'month';\n\n return 'day';\n}\n\nfunction getFullDateRange(requestFilter: AnalyticsRequestFilter, groupBy: GroupBy): string[] {\n const range: string[] = [];\n\n let currentDate = DateHelper.format(requestFilter.start, DateFormats[groupBy]);\n\n do {\n range.push(currentDate);\n currentDate = DateHelper.format(DateHelper.add(currentDate, 1, groupBy), DateFormats[groupBy]);\n } while (!DateHelper.isAfter(currentDate, requestFilter.end, groupBy));\n\n return range;\n}\n\nfunction getChartData<T extends BaseAnalyticsEvent>(\n events: T[],\n getEventDate: (ev: T) => string,\n requestFilter: AnalyticsRequestFilter\n): ChartData {\n const groupBy = getGroupBy(requestFilter);\n const fullDateRange = getFullDateRange(requestFilter, groupBy);\n\n /**\n * e.g. { 'staff': { '2021-01-01': 2, '2021-01-02': 4 }, 'learner': { '2021-01-01': 10, '2021-01-04': 40 }}\n */\n const grouped: HashObject<HashObject<number>> = {};\n\n events.forEach(ev => {\n if (!ev.userType)\n return;\n\n const eventDate = DateHelper.format(DateHelper.convertUTCToLocal(getEventDate(ev)), DateFormats[groupBy]);\n\n grouped[ev.userType] = grouped[ev.userType] ?? {};\n grouped[ev.userType][eventDate] = grouped[ev.userType][eventDate] ?? 0;\n grouped[ev.userType][eventDate] += ev.count;\n });\n\n const roles = Object.keys(grouped) as UserGroup[];\n\n const seriesData: Highcharts.SeriesColumnOptions[] = roles.length\n ? ArrayHelper.sortBy(roles.map(r => ({\n name: mapUserTypeToChartLabel(r),\n type: 'column',\n data: fullDateRange.map(d => grouped[r][d] ?? 0)\n })), 'name')\n : [{\n type: 'column',\n data: fullDateRange.map(() => 0)\n }];\n\n const legendOptions = { ...DEFAULT_LEGEND_OPTIONS };\n\n if (!roles.length)\n legendOptions.enabled = false;\n\n return {\n categories: fullDateRange.map(d => DateHelper.format(d, DisplayFormats[groupBy])),\n legendOptions,\n seriesData: mixinSeriesColours(seriesData)\n };\n}\n\nexport function getChartOptions<T extends BaseAnalyticsEvent>(\n events: T[],\n getEventDate: (ev: T) => string,\n requestFilter: AnalyticsRequestFilter\n): Highcharts.Options {\n const data = getChartData(events, getEventDate, requestFilter);\n\n return {\n ...STATIC_CHART_OPTIONS,\n xAxis: {\n categories: data.categories\n },\n legend: data.legendOptions,\n series: data.seriesData\n };\n}","import React from 'react';\nimport Highcharts from 'highcharts';\nimport HighchartsReact from 'highcharts-react-official';\n\nimport { BaseAnalyticsEvent } from 'libs/shared/apps/analytics/interfaces/BaseAnalyticsEvent';\n\nimport { useGetRequestFilter } from 'shared/hooks/UseGetFilterQueryParams';\nimport { useListenToNavState } from 'shared/hooks/UseListenToNavState';\n\nimport { getChartOptions } from './UserActivityBarChartUtils';\n\nimport styles from './user-activity-bar-chart.module.scss';\n\ninterface UserActivityBarChartProps<T extends BaseAnalyticsEvent> {\n events: T[];\n getEventDate: (ev: T) => string;\n title: string;\n}\n\nexport function UserActivityBarChart<T extends BaseAnalyticsEvent>(props: UserActivityBarChartProps<T>): JSX.Element {\n const requestFilter = useGetRequestFilter();\n useListenToNavState();\n\n return (\n <div className='position-relative h-100'>\n <h3 className={`h6 ${styles.heading}`}>{props.title}</h3>\n {!!requestFilter &&\n <HighchartsReact\n highcharts={Highcharts}\n options={getChartOptions(props.events, props.getEventDate, requestFilter)}\n containerProps={{\n className: `${styles.chartContainer} position-absolute w-100 h-100`\n }}\n />\n }\n </div>\n );\n}"],"names":["PartialUserActivityBarChart","styles","CHART_PADDING_TOP","GroupByThresholds","DateFormats","DisplayFormats","DEFAULT_LEGEND_OPTIONS","STATIC_CHART_OPTIONS","getGroupBy","requestFilter","range","DateHelper","getFullDateRange","groupBy","currentDate","getChartData","events","getEventDate","fullDateRange","grouped","ev","eventDate","roles","seriesData","ArrayHelper","r","mapUserTypeToChartLabel","d","legendOptions","mixinSeriesColours","getChartOptions","data","UserActivityBarChart","props","useGetRequestFilter","useListenToNavState","jsxs","jsx","HighchartsReact","Highcharts"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{c as U,d as N,e as R,b as _,P as A,u as n,f as I,a as O,L as q,j as e,V as G,U as M,C as F}from"./app-DhPN-zNB.js";import{P as K,M as L,V as T,a as H,E as $}from"./DW5KxGbM.chunk.js";import{g as V}from"./CX5q-0jT.chunk.js";import{V as d}from"./CcURCjqv.chunk.js";import{u as k}from"./NRnV1wHl.chunk.js";import{P as B}from"./DUnqV5wd.chunk.js";import{P as D}from"./J7X3wFpY.chunk.js";import{V as Q,a as Y}from"./B-ZRPp91.chunk.js";import{u as z}from"./BncpEV2O.chunk.js";import{u as J}from"./DFFdinDv.chunk.js";import{u as W}from"./2nrjFQG6.chunk.js";import{u as X,a as Z}from"./mjKop7CA.chunk.js";import{u as ee}from"./HCxw4efP.chunk.js";import{E as ae}from"./DeoNhQh0.chunk.js";import{V as te}from"./MqKLZ7-F.chunk.js";import"./wnQZ7WYP.chunk.js";import"./Cyyw1SCS.chunk.js";import"./DDeXXa-Z.chunk.js";import"./5O9SdVRZ.chunk.js";import"./CW7x8M-z.chunk.js";import"./DePDakSd.chunk.js";import"./B8dw4aip.chunk.js";import"./DNEgb5v1.chunk.js";import"./Bn0dkU5Y.chunk.js";import"./DIQhtsg6.chunk.js";import"./Cg_qt_Rk.chunk.js";import"./C-Bnglks.chunk.js";import"./hqhdC5CE.chunk.js";import"./rLITk9YY.chunk.js";import"./BZfWKvo2.chunk.js";import"./sFV5nxD4.chunk.js";import"./Br_GRaAX.chunk.js";import"./6bLX1DNm.chunk.js";import"./DsbeU03P.chunk.js";import"./6SDR31f9.chunk.js";import"./CztNQjFH.chunk.js";import"./DtbthThZ.chunk.js";import"./DNRcL1e9.chunk.js";import"./aRYKkB2W.chunk.js";import"./CpDqrbAS.chunk.js";import"./CEPQucRi.chunk.js";import"./CObSk_oj.chunk.js";const ie="_viewCountContainer_8jne3_1",ne="_engagementPercentageContainer_8jne3_4",se="_engagementGraphContainer_8jne3_7",u={viewCountContainer:ie,engagementPercentageContainer:ne,engagementGraphContainer:se},re="reportsVideos.videoEngagement",oe=q.encloseNamespace(re);function Je(a){var p,C,v,j,f;const[h]=U(G.ANONYMISE_USERS),l=N(),t=R(),{hasPermissions:P}=_(),s=!P(A.ViewCustomerAnalytics),o=n(s&&M.currentUser()),r=n(Q.video(a.id)),g=n(!!t&&(s?!!o.data&&d.aggregateEngagement(a.id,t,o.data.id):d.aggregateEngagement(a.id,t))),i=n(!!t&&(s?!!o.data&&d.individualEngagement(a.id,t,o.data.id):d.individualEngagement(a.id,t))),{users:E,isLoading:y,usersResponse:x}=I((C=(p=i.data)==null?void 0:p.data)==null?void 0:C.map(b=>b.userId)),c=n(K.createViewKey(a.id,L.MasterObject)),m=n(F.config());O({title:oe("pageTitle",{video:(v=r.data)==null?void 0:v.name})}),ee((j=r.data)==null?void 0:j.name),X(Z(r.data)),W(a.id),J(i),z(r),k([g,i,...x.responses,c]);const w=!!r.data&&!!g.data&&!!c.data&&!!m.data,S=!!i.data&&(!i.data.data.length||!y);return e.jsxs("div",{className:"pb-3",children:[e.jsx(Y,{id:a.id}),e.jsxs("div",{className:"d-flex pb-3",children:[e.jsx("div",{className:`pe-2 ${u.viewCountContainer}`,children:e.jsx(te,{objectId:a.id,useSharerId:s,className:"h-100"})}),e.jsx("div",{className:`px-2 ${u.engagementPercentageContainer}`,children:e.jsx(ae,{objectId:a.id,useSharerId:s,className:"h-100",layout:"vertical"})}),e.jsx("div",{className:`ps-2 ${u.engagementGraphContainer}`,children:w?e.jsx(T,{engagement:g.data,viewKey:c.data.viewKey,imageCdnUrl:m.data.imageCdnUrl,playerApiUrl:m.data.playerApiUrl},V(l)):e.jsx(H,{})})]}),S?e.jsx($,{engagement:i.data.data,users:E,imageCdnUrl:(f=m.data)==null?void 0:f.imageCdnUrl,anonymiseUsers:h,enableSort:!0},V(l)):e.jsx(B,{variant:"engagement-users",children:e.jsx(D,{variant:"engagement-users",itemCount:3})})]})}export{Je as VideoEngagementView};
2
+ //# sourceMappingURL=D-uzbGYL.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"D-uzbGYL.chunk.js","sources":["../../src/apps/videos/views/video-engagement/VideoEngagementView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\n\nimport { EngagementTable } from 'libs/shared/apps/analytics/components/engagement-table/EngagementTable';\nimport { useChunkedUsersResponse } from 'libs/shared/apps/analytics/hooks/UseEngagementUsers';\nimport { getFilterParamsKey } from 'libs/shared/apps/analytics/utils/FilterParamUtils';\nimport { MediaIdType } from 'libs/shared/enums/MediaIdType';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { PlayerRequests } from 'libs/shared/flight-requests/PlayerRequests';\nimport { UserRequests as SharedUserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { VideoViewRequests } from 'libs/shared/flight-requests/VideoViewRequests';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Config, CurrentUser, PlayerViewKey, Video } from 'libs/shared/interfaces';\nimport { Engagement, IndividualEngagementResponse } from 'libs/shared/interfaces';\n\nimport { PartialTable } from 'shared/components/partial-loading/PartialTable';\nimport { PartialTableContent } from 'shared/components/partial-loading/PartialTableContent';\nimport { PartialVideoEngagementOverlay } from 'shared/components/video-engagement-overlay/PartialVideoEngagementOverlay';\nimport { VideoEngagementOverlay } from 'shared/components/video-engagement-overlay/VideoEngagementOverlay';\nimport { ViewModelKeys } from 'shared/constants/ReportsViewModels';\nimport { VideoRequests } from 'shared/flight-requests/VideoRequests';\nimport { useGetAppLinkFilterParams, useGetRequestFilter } from 'shared/hooks/UseGetFilterQueryParams';\nimport { useHandleVideoError } from 'shared/hooks/UseHandleVideoError';\nimport { useSetAudienceFilterCount } from 'shared/hooks/UseSetAudienceFilterCount';\nimport { useSetEngagementAudienceSuggestions } from 'shared/hooks/UseSetEngagementAudienceSuggestions';\nimport { useSetHeaderActions } from 'shared/hooks/UseSetHeaderActions';\nimport { useSetHeaderTitle } from 'shared/hooks/UseSetHeaderTitle';\nimport { useGetObjectHeaderActions } from 'shared/utils/HeaderActionUtils';\nimport { EngagementOverviewCardView } from 'shared/views/overview-cards/engagement-overview-card/EngagementOverviewCardView';\nimport { ViewCountPieChartCardView } from 'shared/views/overview-cards/view-count-pie-chart-card/ViewCountPieChartCardView';\n\nimport { VideoNav } from 'apps/videos/components/video-nav/VideoNav';\n\nimport styles from './video-engagement.module.scss';\n\nconst namespace = 'reportsVideos.videoEngagement';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface VideoEngagementViewProps {\n id: string;\n}\n\nexport function VideoEngagementView(props: VideoEngagementViewProps): JSX.Element {\n const [anonymiseUsers] = useViewModel<boolean>(ViewModelKeys.ANONYMISE_USERS);\n\n const filterQueryParams = useGetAppLinkFilterParams();\n const requestFilter = useGetRequestFilter();\n\n const { hasPermissions } = usePermissions();\n\n const scopeBySharerId = !hasPermissions(PermissionName.ViewCustomerAnalytics);\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(scopeBySharerId && SharedUserRequests.currentUser());\n\n const video = Flight.useBasicFetch<Video>(VideoRequests.video(props.id));\n\n const aggregateEngagement = Flight.useBasicFetch<Engagement>(!!requestFilter && (scopeBySharerId\n ? !!currentUser.data && VideoViewRequests.aggregateEngagement(props.id, requestFilter, currentUser.data.id)\n : VideoViewRequests.aggregateEngagement(props.id, requestFilter)\n ));\n\n const individualEngagement = Flight.useBasicFetch<IndividualEngagementResponse>(!!requestFilter && (scopeBySharerId\n ? !!currentUser.data && VideoViewRequests.individualEngagement(props.id, requestFilter, currentUser.data.id)\n : VideoViewRequests.individualEngagement(props.id, requestFilter)\n ));\n\n const { users, isLoading, usersResponse } = useChunkedUsersResponse(\n individualEngagement.data?.data?.map(d => d.userId)\n );\n\n const viewKey = Flight.useBasicFetch<PlayerViewKey>(\n PlayerRequests.createViewKey(props.id, MediaIdType.MasterObject)\n );\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n useSetPageMetadata({ title: getPhrase('pageTitle', { video: video.data?.name }) });\n useSetHeaderTitle(video.data?.name);\n useSetHeaderActions(useGetObjectHeaderActions(video.data));\n useSetEngagementAudienceSuggestions(props.id);\n useSetAudienceFilterCount(individualEngagement);\n\n useHandleVideoError(video);\n useHandleObjectError([ aggregateEngagement, individualEngagement, ...usersResponse.responses, viewKey ]);\n\n const engagementOverlayDataLoaded = !!video.data\n && !!aggregateEngagement.data\n && !!viewKey.data\n && !!config.data;\n\n const tableDataLoaded = !!individualEngagement.data && (!individualEngagement.data.data.length || !isLoading);\n\n return (\n <div className='pb-3'>\n <VideoNav id={props.id} />\n <div className='d-flex pb-3'>\n <div className={`pe-2 ${styles.viewCountContainer}`}>\n <ViewCountPieChartCardView\n objectId={props.id}\n useSharerId={scopeBySharerId}\n className='h-100'\n />\n </div>\n <div className={`px-2 ${styles.engagementPercentageContainer}`}>\n <EngagementOverviewCardView\n objectId={props.id}\n useSharerId={scopeBySharerId}\n className='h-100'\n layout='vertical'\n />\n </div>\n <div className={`ps-2 ${styles.engagementGraphContainer}`}>\n {engagementOverlayDataLoaded\n ? <VideoEngagementOverlay\n // key is used to trigger player re-render\n key={getFilterParamsKey(filterQueryParams)}\n engagement={aggregateEngagement.data}\n viewKey={viewKey.data.viewKey}\n imageCdnUrl={config.data.imageCdnUrl}\n playerApiUrl={config.data.playerApiUrl}\n />\n : <PartialVideoEngagementOverlay />\n }\n </div>\n </div>\n {tableDataLoaded\n ? <EngagementTable\n key={getFilterParamsKey(filterQueryParams)}\n engagement={individualEngagement.data.data}\n users={users}\n imageCdnUrl={config.data?.imageCdnUrl}\n anonymiseUsers={anonymiseUsers}\n enableSort\n />\n : (\n <PartialTable variant='engagement-users'>\n <PartialTableContent variant='engagement-users' itemCount={3} />\n </PartialTable>\n )\n }\n </div>\n );\n}"],"names":["namespace","getPhrase","LanguageService","VideoEngagementView","props","anonymiseUsers","useViewModel","ViewModelKeys","filterQueryParams","useGetAppLinkFilterParams","requestFilter","useGetRequestFilter","hasPermissions","usePermissions","scopeBySharerId","PermissionName","currentUser","Flight.useBasicFetch","SharedUserRequests","video","VideoRequests","aggregateEngagement","VideoViewRequests","individualEngagement","users","isLoading","usersResponse","useChunkedUsersResponse","_b","_a","d","viewKey","PlayerRequests","MediaIdType","config","ConfigRequests","useSetPageMetadata","_c","useSetHeaderTitle","_d","useSetHeaderActions","useGetObjectHeaderActions","useSetEngagementAudienceSuggestions","useSetAudienceFilterCount","useHandleVideoError","useHandleObjectError","engagementOverlayDataLoaded","tableDataLoaded","jsxs","jsx","VideoNav","styles","ViewCountPieChartCardView","EngagementOverviewCardView","VideoEngagementOverlay","getFilterParamsKey","PartialVideoEngagementOverlay","EngagementTable","_e","PartialTable","PartialTableContent"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{j as e}from"./app-DhPN-zNB.js";const i="_emoji_hej2b_1",o={emoji:i};function m(s){return e.jsxs(e.Fragment,{children:[e.jsx("span",{className:o.emoji,children:s.emoji}),s.children]})}export{m as E};
2
+ //# sourceMappingURL=D2zM4Kzz.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"D2zM4Kzz.chunk.js","sources":["../../../../libs/shared/src/components/emoji-text/EmojiText.tsx"],"sourcesContent":["import React from 'react';\n\nimport styles from './emoji-text.module.scss';\n\ninterface EmojiTextProps {\n emoji: string;\n}\n\nexport function EmojiText(props: React.PropsWithChildren<EmojiTextProps>): JSX.Element {\n return (\n <>\n <span className={styles.emoji}>{props.emoji}</span>\n {props.children}\n </>\n );\n}"],"names":["EmojiText","props","jsxs","Fragment","jsx","styles"],"mappings":"2EAQO,SAASA,EAAUC,EAA6D,CACrF,OACEC,EAAAA,KAAAC,WAAA,CACE,SAAA,CAAAC,MAAC,OAAA,CAAK,UAAWC,EAAO,MAAQ,WAAM,MAAM,EAC3CJ,EAAM,QAAA,EACT,CAEJ"}
@@ -0,0 +1,2 @@
1
+ import{d as C,j as n,A as o,g as r,L as b,bG as N,e as T,u as E,bZ as v,p as k,b_ as A,bR as j,O as c,bF as y}from"./app-DhPN-zNB.js";import{S as x}from"./6SDR31f9.chunk.js";import{u as F}from"./DEFJUMtW.chunk.js";import{S as R}from"./RoUeokG0.chunk.js";const P="reportsInteractives.interactiveNav",i=b.encloseNamespace(P);function D(e,t,s){const a=[e];return[{label:i("overview"),appLink:{application:r.INTERACTIVES,action:o.Interactives.OVERVIEW,args:a,params:t}},...s?[]:[{label:i("results"),appLink:{application:r.INTERACTIVES,action:o.Interactives.RESULTS,args:a,params:t}},{label:i("questions"),appLink:{application:r.INTERACTIVES,action:o.Interactives.QUESTION_LIST,args:a,params:t}}],{label:i("engagement"),appLink:{application:r.INTERACTIVES,action:o.Interactives.ENGAGEMENT,args:a,params:t}}]}function U(e){const t=C(),s=D(e.interactiveMetadataId,t,e.hasInsights);return n.jsx(x,{items:s})}const H="reportsInteractives.hooks",p=b.encloseNamespace(H);function G(e){return`no:interactive:results:warning:${e}`}function V(){return n.jsxs(c,{className:"py-3",children:[n.jsx(c.Image,{src:y.EmptyStates.Interactives.NoData,className:"w-50 h-auto"}),n.jsx(c.Heading,{children:p("noResultsHeading")}),n.jsx(c.Info,{className:"w-100",children:p("noResultsDescription")})]})}function $(e){var I,g;const t=G(e),s=N.cacheGet(t),a=T(),l=F(e,a),d=(g=(I=l.data)==null?void 0:I.students)==null?void 0:g.length,u=!!l.data&&!d,h=E(u&&R.getShareLinkByObjectId(e)),m=E(u&&R.getSentDirectShareByObjectId(e)),f=!!h.hasCompleted&&h.statusCode===v.NotFound,L=!!m.hasCompleted&&m.statusCode===v.NotFound,S=f&&L;k.useEffect(()=>{!S||s||(N.cacheSet(t,!0),A.render(n.jsx(V,{}),{title:p("shareInteractive"),buttonContainerClassName:"border-top-0 justify-content-center mt-n4 pb-3",submitButtonProps:{text:p("shareInteractive"),onClick:()=>{j.trigger({application:r.DEFAULT,action:o.Default.SHARE,args:[e],params:{entityType:"interactive"}})},variant:"dark",className:"me-2"}}))},[S,s])}export{U as I,$ as u};
2
+ //# sourceMappingURL=D7o6GeeF.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"D7o6GeeF.chunk.js","sources":["../../src/apps/interactives/components/interactive-nav/InteractiveNav.tsx","../../src/apps/interactives/hooks/UseNoResultsPopup.tsx"],"sourcesContent":["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 = 'reportsInteractives.interactiveNav';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction getNavItems(interactiveMetadataId: string, params: FilterQueryParams, hasInsights: boolean): SubNavItem[] {\n const args = [interactiveMetadataId];\n\n return [\n {\n label: getPhrase('overview'),\n appLink: { application: AppChannels.INTERACTIVES, action: Actions.Interactives.OVERVIEW, args, params }\n },\n ...(!hasInsights ? [\n {\n label: getPhrase('results'),\n appLink: { application: AppChannels.INTERACTIVES, action: Actions.Interactives.RESULTS, args, params }\n },\n {\n label: getPhrase('questions'),\n appLink: { application: AppChannels.INTERACTIVES, action: Actions.Interactives.QUESTION_LIST, args, params }\n }\n ] : []),\n {\n label: getPhrase('engagement'),\n appLink: { application: AppChannels.INTERACTIVES, action: Actions.Interactives.ENGAGEMENT, args, params }\n }\n ];\n}\n\ninterface InteractiveNavProps {\n interactiveMetadataId: string;\n hasInsights?: boolean;\n}\n\nexport function InteractiveNav(props: InteractiveNavProps): JSX.Element {\n const filterQueryParams = useGetAppLinkFilterParams();\n\n const navItems = getNavItems(props.interactiveMetadataId, filterQueryParams, props.hasInsights);\n\n return (\n <SubNav items={navItems} />\n );\n}","import React from 'react';\n\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { LocalStorageHelper } from 'libs/common/backbone/utils/LocalStorageHelper';\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\n\nimport { useFetchInteractiveResults } from 'libs/shared/apps/analytics/hooks/UseFetchInteractiveResults';\nimport { ShareRequests } from 'libs/shared/apps/share/flight-requests/ShareRequests';\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { DirectShare, ShareLink } from 'libs/shared/interfaces';\nimport { DialogHelper } from 'libs/shared/utils/DialogHelper';\n\nimport { Actions } from 'shared/constants/ReportsActions';\nimport { ImageUrls } from 'shared/constants/ReportsImageUrls';\nimport { AppChannels } from 'shared/constants/ReportsRadioChannels';\nimport { useGetRequestFilter } from 'shared/hooks/UseGetFilterQueryParams';\n\n\nconst namespace = 'reportsInteractives.hooks';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction getLocalStorageKey(interactiveMetadataId: string): string {\n return `no:interactive:results:warning:${interactiveMetadataId}`;\n}\n\nfunction PopupContent(): JSX.Element {\n return (\n <EmptyState className='py-3'>\n <EmptyState.Image src={ImageUrls.EmptyStates.Interactives.NoData} className='w-50 h-auto' />\n <EmptyState.Heading>\n {getPhrase('noResultsHeading')}\n </EmptyState.Heading>\n <EmptyState.Info className='w-100'>\n {getPhrase('noResultsDescription')}\n </EmptyState.Info>\n </EmptyState>\n );\n}\n\nexport function useNoResultsPopup(interactiveMetadataId: string): void {\n const localStorageKey = getLocalStorageKey(interactiveMetadataId);\n const hasSeenPopup = LocalStorageHelper.cacheGet(localStorageKey);\n\n const requestFilter = useGetRequestFilter();\n const results = useFetchInteractiveResults(interactiveMetadataId, requestFilter);\n\n const hasResults = results.data?.students?.length;\n\n const shouldCheckShare = !!results.data && !hasResults;\n\n const shareLink = Flight.useBasicFetch<ShareLink>(shouldCheckShare &&\n ShareRequests.getShareLinkByObjectId(interactiveMetadataId));\n\n const directShare = Flight.useBasicFetch<DirectShare>(shouldCheckShare &&\n ShareRequests.getSentDirectShareByObjectId(interactiveMetadataId));\n\n const noShareLink = !!shareLink.hasCompleted && shareLink.statusCode === HttpStatus.NotFound;\n\n const noDirectShare = !!directShare.hasCompleted && directShare.statusCode === HttpStatus.NotFound;\n\n const showWarning = noShareLink && noDirectShare;\n\n React.useEffect(() => {\n if (!showWarning || hasSeenPopup)\n return;\n\n LocalStorageHelper.cacheSet(localStorageKey, true);\n\n DialogHelper.render(\n <PopupContent />,\n {\n title: getPhrase('shareInteractive'),\n buttonContainerClassName: 'border-top-0 justify-content-center mt-n4 pb-3',\n submitButtonProps: {\n text: getPhrase('shareInteractive'),\n onClick: () => {\n Core.AppLinkHelper.trigger({\n application: AppChannels.DEFAULT,\n action: Actions.Default.SHARE,\n args: [interactiveMetadataId],\n params: { entityType: 'interactive' }\n });\n },\n variant: 'dark',\n className: 'me-2'\n }\n }\n );\n }, [ showWarning, hasSeenPopup ]);\n}"],"names":["namespace","getPhrase","LanguageService","getNavItems","interactiveMetadataId","params","hasInsights","args","AppChannels","Actions","InteractiveNav","props","filterQueryParams","useGetAppLinkFilterParams","navItems","jsx","SubNav","getLocalStorageKey","PopupContent","jsxs","EmptyState","ImageUrls","useNoResultsPopup","localStorageKey","hasSeenPopup","LocalStorageHelper","requestFilter","useGetRequestFilter","results","useFetchInteractiveResults","hasResults","_b","_a","shouldCheckShare","shareLink","Flight.useBasicFetch","ShareRequests","directShare","noShareLink","HttpStatus","noDirectShare","showWarning","React","DialogHelper","Core.AppLinkHelper"],"mappings":"8PAWA,MAAMA,EAAY,qCACZC,EAAYC,EAAgB,iBAAiBF,CAAS,EAE5D,SAASG,EAAYC,EAA+BC,EAA2BC,EAAoC,CACjH,MAAMC,EAAO,CAACH,CAAqB,EAEnC,MAAO,CACL,CACE,MAAOH,EAAU,UAAU,EAC3B,QAAS,CAAE,YAAaO,EAAY,aAAc,OAAQC,EAAQ,aAAa,SAAU,KAAAF,EAAM,OAAAF,CAAA,CAAO,EAExG,GAAKC,EASD,CAAA,EATe,CACjB,CACE,MAAOL,EAAU,SAAS,EAC1B,QAAS,CAAE,YAAaO,EAAY,aAAc,OAAQC,EAAQ,aAAa,QAAS,KAAAF,EAAM,OAAAF,CAAA,CAAO,EAEvG,CACE,MAAOJ,EAAU,WAAW,EAC5B,QAAS,CAAE,YAAaO,EAAY,aAAc,OAAQC,EAAQ,aAAa,cAAe,KAAAF,EAAM,OAAAF,CAAA,CAAO,CAC7G,EAEF,CACE,MAAOJ,EAAU,YAAY,EAC7B,QAAS,CAAE,YAAaO,EAAY,aAAc,OAAQC,EAAQ,aAAa,WAAY,KAAAF,EAAM,OAAAF,CAAA,CAAO,CAC1G,CAEJ,CAOO,SAASK,EAAeC,EAAyC,CACtE,MAAMC,EAAoBC,EAAA,EAEpBC,EAAWX,EAAYQ,EAAM,sBAAuBC,EAAmBD,EAAM,WAAW,EAE9F,OACEI,EAAAA,IAACC,EAAA,CAAO,MAAOF,CAAA,CAAU,CAE7B,CChCA,MAAMd,EAAY,4BACZC,EAAYC,EAAgB,iBAAiBF,CAAS,EAE5D,SAASiB,EAAmBb,EAAuC,CACjE,MAAO,kCAAkCA,CAAqB,EAChE,CAEA,SAASc,GAA4B,CACnC,OACEC,EAAAA,KAACC,EAAA,CAAW,UAAU,OACpB,SAAA,CAAAL,EAAAA,IAACK,EAAW,MAAX,CAAiB,IAAKC,EAAU,YAAY,aAAa,OAAQ,UAAU,aAAA,CAAc,QACzFD,EAAW,QAAX,CACE,SAAAnB,EAAU,kBAAkB,EAC/B,EACAc,MAACK,EAAW,KAAX,CAAgB,UAAU,QACxB,SAAAnB,EAAU,sBAAsB,CAAA,CACnC,CAAA,EACF,CAEJ,CAEO,SAASqB,EAAkBlB,EAAqC,SACrE,MAAMmB,EAAkBN,EAAmBb,CAAqB,EAC1DoB,EAAeC,EAAmB,SAASF,CAAe,EAE1DG,EAAgBC,EAAA,EAChBC,EAAUC,EAA2BzB,EAAuBsB,CAAa,EAEzEI,GAAaC,GAAAC,EAAAJ,EAAQ,OAAR,YAAAI,EAAc,WAAd,YAAAD,EAAwB,OAErCE,EAAmB,CAAC,CAACL,EAAQ,MAAQ,CAACE,EAEtCI,EAAYC,EAAgCF,GAChDG,EAAc,uBAAuBhC,CAAqB,CAAC,EAEvDiC,EAAcF,EAAkCF,GACpDG,EAAc,6BAA6BhC,CAAqB,CAAC,EAE7DkC,EAAc,CAAC,CAACJ,EAAU,cAAgBA,EAAU,aAAeK,EAAW,SAE9EC,EAAgB,CAAC,CAACH,EAAY,cAAgBA,EAAY,aAAeE,EAAW,SAEpFE,EAAcH,GAAeE,EAEnCE,EAAM,UAAU,IAAM,CAChB,CAACD,GAAejB,IAGpBC,EAAmB,SAASF,EAAiB,EAAI,EAEjDoB,EAAa,aACVzB,EAAA,EAAa,EACd,CACE,MAAOjB,EAAU,kBAAkB,EACnC,yBAA0B,iDAC1B,kBAAmB,CACjB,KAAMA,EAAU,kBAAkB,EAClC,QAAS,IAAM,CACb2C,EAAmB,QAAQ,CACzB,YAAapC,EAAY,QACzB,OAAQC,EAAQ,QAAQ,MACxB,KAAM,CAACL,CAAqB,EAC5B,OAAQ,CAAE,WAAY,aAAA,CAAc,CACrC,CACH,EACA,QAAS,OACT,UAAW,MAAA,CACb,CACF,EAEJ,EAAG,CAAEqC,EAAajB,CAAa,CAAC,CAClC"}
@@ -0,0 +1,2 @@
1
+ import{d as i,j as n,A as s,g as a,L as r}from"./app-DhPN-zNB.js";import{S as p}from"./6SDR31f9.chunk.js";const c="reportsVideos.schoolVideosNav",o=r.encloseNamespace(c);function l(e){return[{label:o("overview"),appLink:{application:a.VIDEOS,action:s.Videos.HOME,params:e}},{label:o("views"),appLink:{application:a.VIDEOS,action:s.Videos.TOP_VIDEOS,params:e}}]}function v(){const e=i(),t=l(e);return n.jsx(p,{items:t})}export{v as S};
2
+ //# sourceMappingURL=DA9TJjID.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DA9TJjID.chunk.js","sources":["../../src/apps/videos/components/school-videos-nav/SchoolVideosNav.tsx"],"sourcesContent":["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.schoolVideosNav';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction getNavItems(params: FilterQueryParams): SubNavItem[] {\n return [\n {\n label: getPhrase('overview'),\n appLink: { application: AppChannels.VIDEOS, action: Actions.Videos.HOME, params }\n },\n {\n label: getPhrase('views'),\n appLink: { application: AppChannels.VIDEOS, action: Actions.Videos.TOP_VIDEOS, params }\n }\n ];\n}\n\nexport function SchoolVideosNav(): JSX.Element {\n const filterQueryParams = useGetAppLinkFilterParams();\n\n const navItems = getNavItems(filterQueryParams);\n\n return (\n <SubNav items={navItems} />\n );\n}"],"names":["namespace","getPhrase","LanguageService","getNavItems","params","AppChannels","Actions","SchoolVideosNav","filterQueryParams","useGetAppLinkFilterParams","navItems","jsx","SubNav"],"mappings":"0GAWA,MAAMA,EAAY,gCACZC,EAAYC,EAAgB,iBAAiBF,CAAS,EAE5D,SAASG,EAAYC,EAAyC,CAC5D,MAAO,CACL,CACE,MAAOH,EAAU,UAAU,EAC3B,QAAS,CAAE,YAAaI,EAAY,OAAQ,OAAQC,EAAQ,OAAO,KAAM,OAAAF,CAAA,CAAO,EAElF,CACE,MAAOH,EAAU,OAAO,EACxB,QAAS,CAAE,YAAaI,EAAY,OAAQ,OAAQC,EAAQ,OAAO,WAAY,OAAAF,CAAA,CAAO,CACxF,CAEJ,CAEO,SAASG,GAA+B,CAC7C,MAAMC,EAAoBC,EAAA,EAEpBC,EAAWP,EAAYK,CAAiB,EAE9C,OACEG,EAAAA,IAACC,EAAA,CAAO,MAAOF,CAAA,CAAU,CAE7B"}
@@ -0,0 +1,4 @@
1
+ import{j as e,u,bO as h,e as f,L as v,v as w,O as p,bF as $,c as H,V,d as L,i as T,A as q,g as D,b as F,ad as O,a as G,P as U,T as B}from"./app-DhPN-zNB.js";import{u as S}from"./DEFJUMtW.chunk.js";import{u as Q}from"./DtbthThZ.chunk.js";import{u as N}from"./NRnV1wHl.chunk.js";import{u as b}from"./BncpEV2O.chunk.js";import{u as K,a as W}from"./mjKop7CA.chunk.js";import{u as z}from"./HCxw4efP.chunk.js";import{P as Y,E as J}from"./DeoNhQh0.chunk.js";import{V as X}from"./BiFq1JkI.chunk.js";import{V as Z}from"./MqKLZ7-F.chunk.js";import{u as ee,I as te}from"./D7o6GeeF.chunk.js";import{M as ae}from"./Tgco-VxU.chunk.js";import{O as se}from"./DJcBw7EJ.chunk.js";import{u as ne}from"./B7fZs_l2.chunk.js";import{g as re,a as ie,b as ce,c as de}from"./Bodl5h9Z.chunk.js";import{S as g}from"./5O9SdVRZ.chunk.js";import{I as oe}from"./BZfWKvo2.chunk.js";import{P as k,a as C}from"./DDeXXa-Z.chunk.js";import{a as le}from"./Cyyw1SCS.chunk.js";import{E as me}from"./D2zM4Kzz.chunk.js";import"./sFV5nxD4.chunk.js";import"./DNRcL1e9.chunk.js";import"./aRYKkB2W.chunk.js";import"./hqhdC5CE.chunk.js";import"./CcURCjqv.chunk.js";import"./Br_GRaAX.chunk.js";import"./6bLX1DNm.chunk.js";import"./DsbeU03P.chunk.js";import"./D-LQhb27.chunk.js";import"./rLITk9YY.chunk.js";import"./CEPQucRi.chunk.js";import"./DFFdinDv.chunk.js";import"./CpDqrbAS.chunk.js";import"./CObSk_oj.chunk.js";import"./6SDR31f9.chunk.js";import"./CztNQjFH.chunk.js";import"./C-Bnglks.chunk.js";import"./RoUeokG0.chunk.js";const ue="_container_eav1c_1",he={container:ue};function ge(t){return e.jsx("div",{className:`rounded bg-white p-3 ${he.container}`,children:t.children})}function xe(t){return t>=g.HIGH?"text-success":t>=g.MODERATE?"text-warning":"text-danger"}function ve(t){return`${Math.round(t*100)}%`}function pe(t){return t.markingRequired?{subheading:"markingRequiredSubheading",description:"markingRequiredDescription"}:typeof t.score!="number"?{subheading:"noScoresSubheading",description:"noScoresDescription"}:t.score>=g.HIGH?{subheading:"highScoreSubheading",description:"highScoreDescription"}:t.score>=g.MODERATE?{subheading:"moderateScoreSubheading",description:"moderateScoreDescription"}:{subheading:"lowScoreSubheading",description:"lowScoreDescription"}}function je(t,n){const s=[];let r=!1;return n.students.forEach(c=>{const a=re(t,c);s.push(a.percentCorrect),a.awaitingMarking&&(r=!0)}),{score:s.length?s.reduce((c,a)=>c+a,0)/s.length:null,markingRequired:r}}const Ie="_percentage_aor5o_1",fe={percentage:Ie},Se="interactives.averageScoreCard",j=v.encloseNamespace(Se);function Ne(t){var x;const n=u(h.interactiveMetadata(t.interactiveMetadataId)),s=u((x=n.data)!=null&&x.interactiveId?h.interactive(n.data.interactiveId):null),r=f(),c=S(t.interactiveMetadataId,r);b(n),N([n,c]);const a=!!s.data&&!!c.data,i=a&&je(s.data,c.data),{subheading:d,description:o}=pe(i);return a?e.jsxs("div",{className:"rounded bg-white p-3",children:[e.jsx("h3",{className:"h6 mb-3",children:j("heading")}),e.jsxs(e.Fragment,{children:[e.jsx("div",{className:`${fe.percentage} text-center py-2`,children:!i.markingRequired&&typeof i.score=="number"?e.jsx("span",{className:xe(i.score),children:ve(i.score)}):e.jsx("span",{className:"text-info",children:"--%"})}),e.jsxs("div",{className:"text-center",children:[e.jsx("p",{className:"m-0",children:e.jsx("strong",{children:j(d)})}),e.jsx("p",{className:"m-0",children:j(o)})]})]})]}):e.jsx(ge,{children:e.jsx("h3",{className:"h6",children:j("heading")})})}const be="interactives.hardestQuestionCard",R=v.encloseNamespace(be);function ye(t,n){const r=ie(t).map(a=>({...a,resultsSummary:ce(a,n)})).filter(a=>!!a.resultsSummary.answered&&!a.resultsSummary.awaitingMarking),c=w.sortBy(r,a=>a.resultsSummary.percentCorrect);return w.first(c)}function we(t){var d,o;const n=u(h.interactiveMetadata(t.interactiveMetadataId)),s=u((d=n.data)!=null&&d.interactiveId?h.interactive(n.data.interactiveId):null),r=f(),c=S(t.interactiveMetadataId,r);b(n),N([n,c]);const a=!!s.data&&!!c.data,i=a&&ye(s.data,c.data);return e.jsxs("div",{className:"rounded bg-white p-3",children:[e.jsx("h3",{className:"h6 mb-2",children:R("heading")}),a&&e.jsxs("div",{className:"d-flex align-items-center",children:[e.jsx(k,{percentage:(o=i==null?void 0:i.resultsSummary)==null?void 0:o.percentCorrect,layout:C.LabelInside}),i?e.jsx("div",{className:"d-flex ms-2",children:e.jsx(oe,{interaction:i,iconClassName:"flex-shrink-0"})}):e.jsx("span",{className:"ms-2",children:R("empty")})]}),!a&&e.jsx(Y,{layout:C.LabelInside})]})}const Ce="_container_1n7u9_1",Me={container:Ce};function y(){return e.jsx("div",{className:`bg-white rounded mt-3 ${Me.container}`})}const _e="_emptyState_f6c1y_1",Re={emptyState:_e},Ee="interactives.studentResultInsightsEmptyState",E=v.encloseNamespace(Ee);function Pe(){return e.jsxs(p,{className:`${Re.emptyState} justify-content-center`,children:[e.jsx(p.Image,{src:$.EmptyStates.Interactives.StudentInsights,className:"w-75 h-auto"}),e.jsx(p.Heading,{children:E("heading")}),e.jsx(p.Info,{className:"w-100",children:E("description")})]})}const ke="_numberCircle_11ecw_1",Ae="_studentsContainer_11ecw_5",$e="_studentRow_11ecw_8",He="_indicatorRing_11ecw_11",Ve="_ringSuccess_11ecw_29",Le="_ringDanger_11ecw_32",Te="_ringInfo_11ecw_35",qe="_percentageIndicator_11ecw_38",m={numberCircle:ke,studentsContainer:Ae,studentRow:$e,indicatorRing:He,ringSuccess:Ve,ringDanger:Le,ringInfo:Te,percentageIndicator:qe},De="0.3rem";function Fe(t){const n=w.first(t);return n.summary.awaitingMarking?"bg-blue":n.summary.percentCorrect>=g.HIGH?"bg-success":"bg-danger"}function Oe(t){return t.summary.awaitingMarking?m.ringInfo:t.summary.percentCorrect>=g.HIGH?m.ringSuccess:m.ringDanger}I.defaultProps={displayLimit:3};function I(t){const[n]=H(V.ANONYMISE_USERS);return e.jsxs("div",{className:"bg-white rounded p-3 mt-3",children:[e.jsxs("div",{className:"d-flex justify-content-between align-items-center mb-2",children:[e.jsx("h4",{className:"h6 m-0",children:e.jsx(me,{emoji:t.headingEmoji,children:t.heading})}),!!t.students.length&&e.jsx("div",{className:`
2
+ text-white text-center rounded-circle
3
+ ${m.numberCircle} ${Fe(t.students)}`,children:t.students.length})]}),e.jsx("div",{className:m.studentsContainer,children:t.students.length?e.jsx("ul",{className:"list-unstyled m-0",children:t.students.slice(0,t.displayLimit).map((s,r)=>e.jsxs("li",{className:`d-flex justify-content-between align-items-center ${m.studentRow}`,children:[e.jsxs("span",{className:"d-flex align-items-center text-truncate",children:[e.jsx("div",{className:m.indicatorRing,children:e.jsx("svg",{children:e.jsx("circle",{r:De,className:Oe(s)})})}),e.jsx("span",{className:"text-truncate",children:le(s.user,n)})]}),!s.summary.awaitingMarking&&e.jsx("span",{className:m.percentageIndicator,children:e.jsx(k,{percentage:s.summary.percentCorrect,layout:C.LabelBefore})})]},r))}):e.jsx("p",{className:"mt-1 mb-0",children:t.emptyStateText})})]})}const Ge="interactives.studentResultInsightsCard",l=v.encloseNamespace(Ge);function Ue(t){var o;const n=L(),s=u(h.interactiveMetadata(t.interactiveMetadataId)),r=u((o=s.data)!=null&&o.interactiveId?h.interactive(s.data.interactiveId):null),c=f(),a=S(t.interactiveMetadataId,c);b(s),N([s,a]);const i=!!r.data&&!!a.data,d=i&&de(r.data,a.data);return e.jsxs("div",{className:"d-flex flex-column",children:[e.jsxs("div",{className:"bg-white rounded p-3",children:[e.jsx("h3",{className:"h6 m-0",children:l("heading")}),i&&!a.data.students.length&&e.jsx(Pe,{})]}),i&&!!a.data.students.length&&e.jsxs(e.Fragment,{children:[e.jsx(I,{heading:l("markingRequired"),headingEmoji:"📝",students:d.markingRequired,emptyStateText:l("markingRequiredEmpty")}),e.jsx(I,{heading:l("needHelp"),headingEmoji:"✋",students:d.lowScore,emptyStateText:l("needHelpEmpty")}),e.jsx(I,{heading:l("topAchievers"),headingEmoji:"🏅",students:d.highScore,emptyStateText:l("topAchieversEmpty")}),e.jsx(T,{className:"btn btn-outline-dark mt-3",appLink:{application:D.INTERACTIVES,action:q.Interactives.RESULTS,args:[t.interactiveMetadataId],params:n},children:l("seeAll")})]}),!i&&e.jsxs(e.Fragment,{children:[e.jsx(y,{}),e.jsx(y,{}),e.jsx(y,{}),e.jsx("button",{className:"btn btn-outline-dark mt-3 cursor-default",children:" "})]})]})}const Be="_pieChart_1xbkb_1",Qe="_barChart_1xbkb_4",P={pieChart:Be,barChart:Qe},A="reportsInteractives.interactiveOverview",Ke=v.encloseNamespace(A);function kt(t){var o,x,M,_;const{hasPermissions:n}=F(),{hasShareFlowV2:s}=O(null),r=u(h.interactiveMetadata(t.interactiveMetadataId)),c=u((o=r.data)!=null&&o.interactiveId?h.interactive(r.data.interactiveId):null),a=f(),i=S(t.interactiveMetadataId,a);G({title:Ke("pageTitle",{interactive:(x=r.data)==null?void 0:x.name})}),z((M=r.data)==null?void 0:M.name),K(W(r.data)),ne(t.interactiveMetadataId),ee(t.interactiveMetadataId),b(r),N([c,i]),Q(r);const d=s&&n(U.ViewMyShares);return e.jsxs("div",{children:[e.jsx(te,{interactiveMetadataId:t.interactiveMetadataId,hasInsights:d}),!d&&!!c.data&&!!i.data&&e.jsx(ae,{interactive:c.data,results:i.data,interactiveMetadataId:t.interactiveMetadataId}),e.jsxs("div",{className:"row",children:[e.jsxs("div",{className:"col-4",children:[e.jsx(Z,{objectId:t.interactiveMetadataId,useSharerId:!0,className:P.pieChart}),!d&&e.jsx("div",{className:"mt-3",children:e.jsx(Ne,{interactiveMetadataId:t.interactiveMetadataId})})]}),e.jsxs("div",{className:"col-5",children:[e.jsx(X,{objectId:t.interactiveMetadataId,useSharerId:!0,className:P.barChart}),((_=i.data)==null?void 0:_.hasWatchedInLite)===!1?e.jsxs("div",{className:"mt-3 bg-white p-3 pb-3",children:[e.jsx("h3",{className:"h6 mb-2",children:e.jsx(B,{namespace:A,phrase:"averageAmountPlaceholder"})}),e.jsx(se,{})]}):e.jsx("div",{className:"mt-3",children:e.jsx(J,{objectId:t.interactiveMetadataId,layout:"horizontal",useSharerId:!0})}),!d&&e.jsx("div",{className:"mt-3",children:e.jsx(we,{interactiveMetadataId:t.interactiveMetadataId})})]}),!d&&e.jsx("div",{className:"col-3",children:e.jsx(Ue,{interactiveMetadataId:t.interactiveMetadataId})})]})]})}export{kt as InteractiveOverviewView};
4
+ //# sourceMappingURL=DBskBTCv.chunk.js.map