@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 @@
1
+ {"version":3,"file":"MqKLZ7-F.chunk.js","sources":["../../src/shared/views/overview-cards/view-count-pie-chart-card/components/view-count-pie-chart-empty-state/ViewCountPieChartEmptyState.tsx","../../src/shared/views/overview-cards/view-count-pie-chart-card/components/view-count-by-topic/ViewCountByTopicCard.tsx","../../src/shared/views/overview-cards/view-count-pie-chart-card/ViewCountPieChartCardView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\n\nimport { ImageUrls } from 'shared/constants/ReportsImageUrls';\n\nconst namespace = 'reportsShared.viewCountPieChartEmptyState';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface ViewCountPieChartEmptyStateProps {\n singular?: boolean;\n}\n\nexport function ViewCountPieChartEmptyState(props: ViewCountPieChartEmptyStateProps): JSX.Element {\n return (\n <EmptyState className='flex-grow-1 justify-content-center'>\n <EmptyState.Image\n src={ImageUrls.EmptyStates.Shared.ViewCount}\n className='w-75 h-auto pb-0'\n />\n <EmptyState.Heading>\n {getPhrase('heading')}\n </EmptyState.Heading>\n <EmptyState.Info className='w-100'>\n {getPhrase(props.singular ? 'descriptionSingular' : 'descriptionMultiple')}\n </EmptyState.Info>\n </EmptyState>\n );\n}","import React from 'react';\nimport { Scrollbars } from 'react-custom-scrollbars-2';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { SubjectWidgetItem } from 'libs/shared/components/widgets/items/subject-widget-item/SubjectWidgetItem';\nimport { Classification } from 'libs/shared/interfaces';\n\nimport { TopicAnalyticsType } from 'shared/enums/TopicAnalyticsType';\nimport { TopicRequests } from 'shared/flight-requests/TopicRequests';\nimport { useGetRequestFilter } from 'shared/hooks/UseGetFilterQueryParams';\nimport { CollectionViewEvent } from 'shared/interfaces';\nimport {\n ViewCountPieChartEmptyState\n} from 'shared/views/overview-cards/view-count-pie-chart-card/components/view-count-pie-chart-empty-state/ViewCountPieChartEmptyState';\n\nimport styles from './view-count-by-topic-card.module.scss';\n\nconst namespace = 'reportsShared.viewCountByTopicCard';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface ViewCountByTopicCardProps {\n type: TopicAnalyticsType;\n}\n\nexport function ViewCountByTopicCard(props: ViewCountByTopicCardProps): JSX.Element {\n const requestFilter = useGetRequestFilter();\n\n const viewsByTopic = Flight.useBasicFetch<CollectionViewEvent<Classification>[]>(!!requestFilter &&\n TopicRequests.viewsByTopic(requestFilter, props.type));\n\n if (!viewsByTopic.data)\n return <></>;\n\n if (!viewsByTopic.data.length)\n return <ViewCountPieChartEmptyState />;\n\n return (\n <div className='h-100 me-n2'>\n <Scrollbars height='100%' className='mt-2'>\n <div className='d-flex align-items-center pe-1'>\n <div className={`d-flex flex-wrap pe-2 ${styles.topicColumn}`}>\n <strong className='me-1'>\n {getPhrase(props.type === TopicAnalyticsType.RootTopic ? 'subject' : 'topic')}\n </strong>\n <span className='text-secondary'>\n {getPhrase(props.type === TopicAnalyticsType.RootTopic ? 'multipleSubjects' : 'multipleTopics')}\n </span>\n </div>\n <strong>{getPhrase('views')}</strong>\n </div>\n <ul className='list-unstyled'>\n {viewsByTopic.data.map((v, idx) => (\n <li key={idx}>\n <Tooltip\n title={v.collection.name}\n spanHack\n spanHackClassName='d-flex align-items-center pe-1'\n >\n <div className={`py-2 pe-2 ${styles.topicColumn}`}>\n <SubjectWidgetItem data={v.collection} />\n </div>\n <strong>\n {getPhrase('viewCount', { smartCount: v.count })}\n </strong>\n </Tooltip>\n </li>\n ))}\n </ul>\n </Scrollbars>\n </div>\n );\n}","import React from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { VideoViewEventResponse } from 'libs/shared/apps/analytics/interfaces/VideoViewEvent';\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 { CurrentUser } from 'libs/shared/interfaces';\n\nimport { PartialUserActivityPieChart } from 'shared/components/user-activity-pie-chart/partial-loading/PartialUserActivityPieChart';\nimport { UserActivityPieChart } from 'shared/components/user-activity-pie-chart/UserActivityPieChart';\nimport { VideoViewGroupBy } from 'shared/components/user-activity-pie-chart/utils/UserActivityPieChartTypes';\nimport { EventType } from 'shared/enums/EventType';\nimport { TopicAnalyticsType } from 'shared/enums/TopicAnalyticsType';\nimport { useGetRequestFilter } from 'shared/hooks/UseGetFilterQueryParams';\nimport { useSetAudienceFilterCount } from 'shared/hooks/UseSetAudienceFilterCount';\n\nimport { ViewCountByTopicCard } from './components/view-count-by-topic/ViewCountByTopicCard';\nimport { ViewCountPieChartEmptyState } from './components/view-count-pie-chart-empty-state/ViewCountPieChartEmptyState';\n\ninterface ViewCountPieChartCardViewProps {\n /**\n * className is required as a height must be specified.\n */\n className: string;\n objectId?: string;\n useSharerId?: boolean;\n}\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function ViewCountPieChartCardView(props: ViewCountPieChartCardViewProps): JSX.Element {\n const requestFilter = useGetRequestFilter();\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(!!props.useSharerId && SharedUserRequests.currentUser());\n\n const views = Flight.useBasicFetch<VideoViewEventResponse>(!!requestFilter && (props.useSharerId\n ? currentUser.hasCompleted &&\n VideoViewRequests.views(requestFilter, props.objectId, currentUser.data.id)\n : VideoViewRequests.views(requestFilter, props.objectId)\n ));\n\n useHandleObjectError(views);\n useSetAudienceFilterCount(views);\n\n const displayTopicFilters = !props.objectId;\n\n return (\n <div className={`bg-white rounded p-3 position-relative d-flex flex-column ${props.className ?? ''}`}>\n {views.data\n ? <UserActivityPieChart\n eventType={EventType.VideoView}\n events={views.data}\n objectId={props.objectId}\n emptyStateComponent={<ViewCountPieChartEmptyState singular={!!props.objectId} />}\n customGroupBy={displayTopicFilters ? [\n {\n type: VideoViewGroupBy.Subject,\n getComponent: () => <ViewCountByTopicCard type={TopicAnalyticsType.RootTopic} />\n },\n {\n type: VideoViewGroupBy.Topic,\n getComponent: () => <ViewCountByTopicCard type={TopicAnalyticsType.ChildTopic} />\n }\n ] : null}\n />\n : <PartialUserActivityPieChart />\n }\n </div>\n );\n}"],"names":["namespace","getPhrase","LanguageService","ViewCountPieChartEmptyState","props","jsxs","EmptyState","jsx","ImageUrls","ViewCountByTopicCard","requestFilter","useGetRequestFilter","viewsByTopic","Flight.useBasicFetch","TopicRequests","Scrollbars","styles","TopicAnalyticsType","v","idx","Tooltip","SubjectWidgetItem","Fragment","ViewCountPieChartCardView","currentUser","SharedUserRequests","views","VideoViewRequests","useHandleObjectError","useSetAudienceFilterCount","displayTopicFilters","UserActivityPieChart","EventType","VideoViewGroupBy","PartialUserActivityPieChart"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{cM as g,L as o,az as a,bZ as u,cP as f,cS as h,r as p}from"./app-DhPN-zNB.js";const i="shared.regionLockedResourceError";class E extends g{constructor(){super(o.getPhrase(i,"title"))}get name(){return"RegionLockedResourceError"}get heading(){return o.getPhrase(i,"heading")}get description(){return o.getPhrase(i,"description")}}const c="shared.privateResourceError";class d extends g{constructor(){super(o.getPhrase(c,"title"))}get name(){return"PrivateResourceError"}get heading(){return o.getPhrase(c,"heading")}get description(){return o.getPhrase(c,"description")}}const l={notFound:h,forbidden:{rating:d,yearLevel:d,region:E,privacy:d},badRequest:f,internalServerError:f};function R(r,n={},t={}){if(!r)return;let e;typeof r=="number"?e=r:e=r.status;const s={...l,...n};if(e&&a.isStatusCodeError(e)){if(e===u.InternalServer){t.internalServerError||a.throw(new f);return}if(e===u.NotFound){t.notFound||a.throw(new s.notFound);return}if(e===u.Forbidden){t.forbidden||a.throw(new s.forbidden.privacy);return}t.badRequest||a.throw(new s.badRequest)}}function v(r){return r.map(n=>n.statusCode).join(":")}function b(r,n,t){const e=Array.isArray(r)?r:[r];p.useEffect(()=>{e.forEach(s=>{R(s.statusCode,n,t)})},[v(e),n,t])}export{E as R,b as u};
2
+ //# sourceMappingURL=NRnV1wHl.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NRnV1wHl.chunk.js","sources":["../../../../libs/shared/src/errors/general/region-locked-resource/RegionLockedResourceError.ts","../../../../libs/shared/src/errors/general/private-resource/PrivateResourceError.ts","../../../../libs/shared/src/errors/handlers/HttpErrorHandlers.ts","../../../../libs/shared/src/hooks/UseHandleObjectError.ts"],"sourcesContent":["import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { ErrorPageError } from 'libs/shared/errors/primitives/ErrorPageError';\n\nconst namespace = 'shared.regionLockedResourceError';\n\nexport class RegionLockedResourceError extends ErrorPageError {\n constructor() {\n super(LanguageService.getPhrase(namespace, 'title'));\n }\n\n // @ts-ignore\n public get name(): string {\n return 'RegionLockedResourceError';\n }\n\n // @ts-ignore\n public get heading(): string {\n return LanguageService.getPhrase(namespace, 'heading');\n }\n\n // @ts-ignore\n public get description(): string {\n return LanguageService.getPhrase(namespace, 'description');\n }\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { ErrorPageError } from 'libs/shared/errors/primitives/ErrorPageError';\n\nconst namespace = 'shared.privateResourceError';\n\nexport class PrivateResourceError extends ErrorPageError {\n constructor() {\n super(LanguageService.getPhrase(namespace, 'title'));\n }\n\n // @ts-ignore\n public get name(): string {\n return 'PrivateResourceError';\n }\n\n // @ts-ignore\n public get heading(): string {\n return LanguageService.getPhrase(namespace, 'heading');\n }\n\n // @ts-ignore\n public get description(): string {\n return LanguageService.getPhrase(namespace, 'description');\n }\n}","import { BaseError } from 'libs/common/backbone/core/BaseError';\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { Core } from 'libs/common/core';\n\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { PrivateResourceError } from 'libs/shared/errors/general/private-resource/PrivateResourceError';\nimport { RegionLockedResourceError } from 'libs/shared/errors/general/region-locked-resource/RegionLockedResourceError';\nimport { UnspecifiedError } from 'libs/shared/errors/general/unspecified-error/UnspecifiedError';\nimport { VideoTypes } from 'libs/shared/interfaces';\n\nexport interface HttpErrorMap {\n notFound?: new () => BaseError;\n forbidden?: {\n rating?: new (description: string) => BaseError;\n yearLevel?: new (description: string) => BaseError;\n region?: new () => BaseError;\n privacy?: new (video?: VideoTypes) => BaseError;\n };\n badRequest?: new () => BaseError;\n internalServerError?: new () => BaseError;\n}\n\nexport type IgnoreHttpErrorMap = {\n [key in keyof HttpErrorMap]: boolean;\n};\n\nconst defaultErrors: HttpErrorMap = {\n notFound: NotFoundError,\n forbidden: {\n rating: PrivateResourceError,\n yearLevel: PrivateResourceError,\n region: RegionLockedResourceError,\n privacy: PrivateResourceError\n },\n badRequest: UnspecifiedError,\n internalServerError: UnspecifiedError\n};\n\nexport function handleHttpError(\n info: HttpStatus | Xhr,\n customErrorMap: HttpErrorMap = {},\n /**\n * Prevent certain errors in the errorMap from being thrown\n * so that you may implement your own handler\n */\n ignoreMap: IgnoreHttpErrorMap = {}\n): void {\n if (!info)\n return;\n\n let statusCode: HttpStatus;\n\n if (typeof(info) === 'number') {\n statusCode = info;\n } else {\n statusCode = info.status;\n }\n\n const errorMap = {\n ...defaultErrors,\n ...customErrorMap\n };\n\n if (!statusCode)\n return;\n\n if (!Core.ErrorHelper.isStatusCodeError(statusCode))\n return;\n\n if (statusCode === HttpStatus.InternalServer) {\n if (!ignoreMap.internalServerError)\n Core.ErrorHelper.throw(new UnspecifiedError());\n return;\n }\n\n if (statusCode === HttpStatus.NotFound) {\n if (!ignoreMap.notFound)\n Core.ErrorHelper.throw(new errorMap.notFound());\n return;\n }\n\n if (statusCode === HttpStatus.Forbidden) {\n /**\n * TODO: Work out how to go about handling all forbidden errors, such as region locking, year levels,\n * ratings, and privacy.\n */\n if (!ignoreMap.forbidden)\n Core.ErrorHelper.throw(new errorMap.forbidden.privacy());\n return;\n }\n\n if (!ignoreMap.badRequest)\n Core.ErrorHelper.throw(new errorMap.badRequest());\n}\n\nexport function handleXhrError(xhr: Xhr, customErrorMap?: HttpErrorMap): void {\n handleHttpError(xhr.status, customErrorMap);\n}","import { useEffect } from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { handleHttpError, HttpErrorMap, IgnoreHttpErrorMap } from 'libs/shared/errors/handlers/HttpErrorHandlers';\n\nfunction generateCacheKey(flightObjs: Array<Flight.Response<any>>): string {\n return flightObjs.map(obj => obj.statusCode).join(':');\n}\n\n// TODO: Change this to just `useHandleHttpError` and only accept a status code.\nexport function useHandleObjectError(\n _flightObjs: Flight.Response<any> | Array<Flight.Response<any>>,\n customErrors?: HttpErrorMap,\n ignoreErrors?: IgnoreHttpErrorMap\n): void {\n const flightObjs = Array.isArray(_flightObjs) ? _flightObjs : [_flightObjs];\n\n useEffect(() => {\n flightObjs.forEach(obj => {\n handleHttpError(obj.statusCode, customErrors, ignoreErrors);\n });\n }, [ generateCacheKey(flightObjs), customErrors, ignoreErrors ]);\n}"],"names":["namespace","RegionLockedResourceError","ErrorPageError","LanguageService","PrivateResourceError","defaultErrors","NotFoundError","UnspecifiedError","handleHttpError","info","customErrorMap","ignoreMap","statusCode","errorMap","Core.ErrorHelper","HttpStatus","generateCacheKey","flightObjs","obj","useHandleObjectError","_flightObjs","customErrors","ignoreErrors","useEffect"],"mappings":"qFAIA,MAAMA,EAAY,mCAEX,MAAMC,UAAkCC,CAAe,CAC5D,aAAc,CACZ,MAAMC,EAAgB,UAAUH,EAAW,OAAO,CAAC,CACrD,CAGA,IAAW,MAAe,CACxB,MAAO,2BACT,CAGA,IAAW,SAAkB,CAC3B,OAAOG,EAAgB,UAAUH,EAAW,SAAS,CACvD,CAGA,IAAW,aAAsB,CAC/B,OAAOG,EAAgB,UAAUH,EAAW,aAAa,CAC3D,CACF,CCrBA,MAAMA,EAAY,8BAEX,MAAMI,UAA6BF,CAAe,CACvD,aAAc,CACZ,MAAMC,EAAgB,UAAUH,EAAW,OAAO,CAAC,CACrD,CAGA,IAAW,MAAe,CACxB,MAAO,sBACT,CAGA,IAAW,SAAkB,CAC3B,OAAOG,EAAgB,UAAUH,EAAW,SAAS,CACvD,CAGA,IAAW,aAAsB,CAC/B,OAAOG,EAAgB,UAAUH,EAAW,aAAa,CAC3D,CACF,CCEA,MAAMK,EAA8B,CAClC,SAAUC,EACV,UAAW,CACT,OAAQF,EACR,UAAWA,EACX,OAAQH,EACR,QAASG,CAAA,EAEX,WAAYG,EACZ,oBAAqBA,CACvB,EAEO,SAASC,EACdC,EACAC,EAA+B,CAAA,EAK/BC,EAAgC,CAAA,EAC1B,CACN,GAAI,CAACF,EACH,OAEF,IAAIG,EAEA,OAAOH,GAAU,SACnBG,EAAaH,EAEbG,EAAaH,EAAK,OAGpB,MAAMI,EAAW,CACf,GAAGR,EACH,GAAGK,CAAA,EAGL,GAAKE,GAGAE,EAAiB,kBAAkBF,CAAU,EAGlD,IAAIA,IAAeG,EAAW,eAAgB,CACvCJ,EAAU,qBACbG,EAAiB,MAAM,IAAIP,CAAkB,EAC/C,MACF,CAEA,GAAIK,IAAeG,EAAW,SAAU,CACjCJ,EAAU,UACbG,EAAiB,MAAM,IAAID,EAAS,QAAU,EAChD,MACF,CAEA,GAAID,IAAeG,EAAW,UAAW,CAKlCJ,EAAU,WACbG,EAAiB,MAAM,IAAID,EAAS,UAAU,OAAS,EACzD,MACF,CAEKF,EAAU,YACbG,EAAiB,MAAM,IAAID,EAAS,UAAY,EACpD,CCxFA,SAASG,EAAiBC,EAAiD,CACzE,OAAOA,EAAW,IAAIC,GAAOA,EAAI,UAAU,EAAE,KAAK,GAAG,CACvD,CAGO,SAASC,EACdC,EACAC,EACAC,EACM,CACN,MAAML,EAAa,MAAM,QAAQG,CAAW,EAAIA,EAAc,CAACA,CAAW,EAE1EG,EAAAA,UAAU,IAAM,CACdN,EAAW,QAAQC,GAAO,CACxBV,EAAgBU,EAAI,WAAYG,EAAcC,CAAY,CAC5D,CAAC,CACH,EAAG,CAAEN,EAAiBC,CAAU,EAAGI,EAAcC,CAAa,CAAC,CACjE"}
@@ -0,0 +1,2 @@
1
+ import{j as i,c5 as t}from"./app-DhPN-zNB.js";function n(e){let s=`d-flex align-items-center badge-list ${t.minHeight}`;return e.className&&(s+=` ${e.className}`),i.jsx("div",{className:s,children:e.children})}export{n as B};
2
+ //# sourceMappingURL=QDAMoZNu.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QDAMoZNu.chunk.js","sources":["../../../../libs/shared/src/components/badges/BadgeListContainer.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport styles from './badge.module.scss';\n\ninterface BadgeListContainerProps {\n className?: string;\n}\n\nexport function BadgeListContainer(props: React.PropsWithChildren<BadgeListContainerProps>): JSX.Element {\n let className = `d-flex align-items-center badge-list ${styles.minHeight}`;\n\n if (props.className)\n className += ` ${props.className}`;\n\n return (\n <div className={className}>\n {props.children}\n </div>\n );\n}"],"names":["BadgeListContainer","props","className","styles","jsx"],"mappings":"8CAQO,SAASA,EAAmBC,EAAsE,CACvG,IAAIC,EAAY,wCAAwCC,EAAO,SAAS,GAExE,OAAIF,EAAM,YACRC,GAAa,IAAID,EAAM,SAAS,IAGhCG,EAAAA,IAAC,MAAA,CAAI,UAAAF,EACF,SAAAD,EAAM,SACT,CAEJ"}
@@ -0,0 +1,2 @@
1
+ import{aw as a,bJ as l,s as u}from"./app-DhPN-zNB.js";const i={namespace:"share"},y={video:"thumbnail,series,_canBeConsumed,_restrictions",clip:"_parentVideo[_rating],_canBeConsumed,_thumbnail,_restrictions",interactive:"_canBeConsumed,_parentVideo[_rating],_parentClip,_thumbnail,_restrictions",series:"tallPoster,videos[thumbnail,count()]{limit:1}",playlist:"cover,videos[thumbnail,count()]{limit:1},clips[_thumbnail,count()]{limit:1},interactives[_thumbnail,count()]{limit:1}"};function p(e,r){return{id:e,"query.user":`yearGroups,avatar,userprofiles{customer.id:${r}}`,"query.classroom":`enrolments[count()]{role:student,limit:0},customer{id:${r}}`,"query.classroom_group":"classroom,users[count()]{limit:0}"}}const d={getShareObject(e,r,t){return{url:`/api/share/find/${e}`,key:`share:${e}`,bootstrapName:`share:${e}`,success:r,error:t}},getShareRecipients(e){return{url:`/api/share/find/${e}/recipients`,key:`share:${e}:recipients`,normalize:!1}},sharedObjectsById(e){e.sort();const r=e.map(s=>`id=${s}`),t=Object.keys(y).map(s=>`query.${s}=${y[s]}`);return{url:`{gateway}/v1/objects?${[...r,...t,`permissionFilterOption=${l.StripMetadata}`].join("&")}`,key:`objects:${e.join(",")}`,normalize:!1}},sentShare(e={}){const r=Object.values(e).join(":");return{url:u.urlBuilder("{gateway}/v1/users/me/share/sent-items",e),key:`sent:shares:${r}`,normalize:!1}},getSentDirectShareByObjectId(e){return{url:`{gateway}/v1/users/me/share/direct/sent-items?objectId=${e}`,key:`direct:share:sent:object:${e}`,normalizeOptions:i}},createDirectShare(e,r,t,s){return{url:"{gateway}/v1/share",key:"create:direct:share",data:e,type:a.POST,normalizeOptions:i,invalidationKeys:[`direct:share:sent:object:${e.objectId}`,"sent:shares"],success:r,error:t,always:s}},updateDirectShareRecipients(e,r,t,s,n){const c=`direct:share:recipients:${e}`;return{url:`{gateway}/v1/share/${e}/recipients`,key:"edit:direct:share",data:r,type:a.POST,normalizeOptions:i,invalidationKeys:"sent:shares",updateState:{keys:c,updateData:o=>!o[c]||r.recipients.length?o:{...o,[c]:[]}},success:t,error:s,always:n}},removeDirectShareRecipient(e,r,t,s,n){const c=`direct:share:recipients:${e}`;return{url:u.urlBuilder(`{gateway}/v1/share/${e}/recipients`,{recipientId:r}),key:"remove:direct:share:recipient",type:a.DELETE,normalizeOptions:i,invalidationKeys:"sent:shares",updateState:{keys:c,updateData:o=>o[c]?{...o,[c]:[]}:o},success:t,error:s,always:n}},getDirectShareRecipientsById(e,r,t){return{url:u.urlBuilder("{gateway}/v1/objects",p(r.map(s=>s.id),t)),key:`direct:share:recipients:${e}`}},getRecipientsById(e,r){return e.sort(),{url:u.urlBuilder("{gateway}/v1/objects",p(e,r)),key:`share:recipients:${e.join(",")}`}},getRecipientUsers(e,r){return{url:`{gateway}/v1/objects/${e}/users?query={limit:100}`,key:`share:recipients:${e}:users`,success:r}},getObjectsSharedWithUser(e){const r={permissionFilterOption:l.StripMetadata};return e&&(r.cursor=e),{url:u.urlBuilder("{gateway}/v1/users/me/share/received-items",r),key:`shared:with:me:${e}`}},getShareLinkByObjectId(e){return{url:`{gateway}/v1/share/links?objectId=${e}`,key:`share:link:object:${e}`,normalizeOptions:i,formatData:r=>({...r,linkExpireDate:r.linkExpireDate||null})}},createShareLink(e,r,t,s){return{url:"{gateway}/v1/share/links",key:"create:share:link",type:a.POST,data:e,normalizeOptions:i,invalidationKeys:[`share:link:object:${e.resourceId}`,`privacy:${e.resourceId}`,"sent:shares"],success:r,error:t,always:s}},editShareLink(e,r,t,s,n){return{url:`{gateway}/v1/share/links/${e.id}`,key:"edit:share:link",data:r,type:a.PUT,normalizeOptions:i,invalidationKeys:[`share:${e.id}`,`share:link:object:${e.objectId}`,"sent:shares"],success:t,error:s,always:n}},deleteShareLink(e,r,t,s){return{url:`{gateway}/v1/share/links/${e.id}`,key:"delete:share:link",type:a.DELETE,normalizeOptions:i,invalidationKeys:[`share:${e.id}`,`share:link:object:${e.objectId}`,"sent:shares"],success:r,error:t,always:s}},checkPassword(e,r,t,s){return{url:`{gateway}/v1/share/links/${e}/password/verify`,publicUrl:`{gateway}/v1/share/links/${e}/password/verify/public`,key:`checkpassword:${e}`,type:a.POST,data:{password:r},success:t,error:s}},getPrivacy(e){return{url:`{gateway}/v1/objects/${e}/access`,key:`privacy:${e}`,normalize:!1}},updatePrivacy(e,r,t,s,n){return{url:`{gateway}/v1/share/links/${e}/privacy`,key:"update:privacy",type:a.PUT,data:{privacy:r,overrideRestrictions:t},invalidationKeys:["privacy","sent:shares"],normalize:!1,success:s,error:n}},createAnonSession(e,r,t){return{url:`{gateway}/v1/shares/${e}/anon-sessions`,key:"create:anon:session",type:a.POST,data:{sessionId:r,sessionName:t},normalize:!1}},getAnonSessions(e){return{url:`{gateway}/v1/shares/${e}/anon-sessions`,key:`anon:session:${e}`,normalize:!1}}};export{d as S};
2
+ //# sourceMappingURL=RoUeokG0.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RoUeokG0.chunk.js","sources":["../../../../libs/shared/src/apps/share/flight-requests/ShareRequests.ts"],"sourcesContent":["import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { CreateDirectShareRequest } from 'libs/shared/apps/share/interfaces/requests/CreateDirectShareRequest';\nimport { CreateShareLinkRequest } from 'libs/shared/apps/share/interfaces/requests/CreateShareLinkRequest';\nimport { EditDirectShareRequest } from 'libs/shared/apps/share/interfaces/requests/EditDirectShareRequest';\nimport { EditShareLinkRequest } from 'libs/shared/apps/share/interfaces/requests/EditShareLinkRequest';\nimport { GetSentItemsParams } from 'libs/shared/apps/share/interfaces/requests/GetSentItemsParams';\nimport { CheckShareLinkPasswordResponse } from 'libs/shared/apps/share/interfaces/responses/CheckShareLinkPasswordResponse';\nimport { SharePrivacy } from 'libs/shared/apps/share/interfaces/SharePrivacy';\nimport { PermissionFilterOption } from 'libs/shared/enums/PermissionFilterOption';\nimport { DirectShare, ShareLink, ShareRecipient, UnionShareObject, UserCollection } from 'libs/shared/interfaces';\n\nconst normalizeOptions: Flight.NormalizeOptions = {\n namespace: 'share'\n};\n\nconst SharedObjectQueries: { [index: string]: string} = {\n video: 'thumbnail,series,_canBeConsumed,_restrictions',\n clip: '_parentVideo[_rating],_canBeConsumed,_thumbnail,_restrictions',\n interactive: '_canBeConsumed,_parentVideo[_rating],_parentClip,_thumbnail,_restrictions',\n series: 'tallPoster,videos[thumbnail,count()]{limit:1}',\n playlist: 'cover,videos[thumbnail,count()]{limit:1},clips[_thumbnail,count()]{limit:1},interactives[_thumbnail,count()]{limit:1}'\n};\n\nfunction getShareRecipientQuery(ids: string[], customerId: string): HashObject {\n return {\n 'id': ids,\n 'query.user': `yearGroups,avatar,userprofiles{customer.id:${customerId}}`,\n 'query.classroom': `enrolments[count()]{role:student,limit:0},customer{id:${customerId}}`,\n 'query.classroom_group': 'classroom,users[count()]{limit:0}'\n };\n}\n\nexport const ShareRequests = {\n getShareObject(\n shareId: string,\n success?: (obj: UnionShareObject) => void,\n error?: (xhr: Xhr) => void\n ): Flight.Request {\n return {\n /**\n * This is a custom endpoint written into Lite that will use\n * client credentials no matter if the user is signed in or not\n */\n url: `/api/share/find/${shareId}`,\n key: `share:${shareId}`,\n bootstrapName: `share:${shareId}`,\n success,\n error\n };\n },\n\n getShareRecipients(shareId: string): Flight.Request {\n return {\n url: `/api/share/find/${shareId}/recipients`,\n key: `share:${shareId}:recipients`,\n normalize: false\n };\n },\n\n sharedObjectsById(ids: string[]): Flight.Request {\n ids.sort();\n \n const idsQueries = ids.map(id => `id=${id}`);\n const assocQueries = Object.keys(SharedObjectQueries).map(key => `query.${key}=${SharedObjectQueries[key]}`);\n\n return {\n url: `{gateway}/v1/objects?${[ ...idsQueries, ...assocQueries, `permissionFilterOption=${PermissionFilterOption.StripMetadata}` ].join('&')}`,\n key: `objects:${ids.join(',')}`,\n normalize: false\n };\n },\n\n sentShare(params: GetSentItemsParams = {}): Flight.Request {\n const key = Object.values(params).join(':');\n\n return {\n url: UrlHelper.urlBuilder('{gateway}/v1/users/me/share/sent-items', params),\n key: `sent:shares:${key}`,\n normalize: false\n };\n },\n\n /**\n * Direct share requests\n */\n getSentDirectShareByObjectId(objectId: string): Flight.Request {\n return {\n url: `{gateway}/v1/users/me/share/direct/sent-items?objectId=${objectId}`,\n key: `direct:share:sent:object:${objectId}`,\n normalizeOptions\n };\n },\n\n createDirectShare(\n data: CreateDirectShareRequest,\n success?: (data: DirectShare) => void,\n error?: () => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: '{gateway}/v1/share',\n key: 'create:direct:share',\n data,\n type: HttpVerbs.POST,\n normalizeOptions,\n invalidationKeys: [ `direct:share:sent:object:${data.objectId}`, 'sent:shares' ],\n success,\n error,\n always\n };\n },\n\n updateDirectShareRecipients(\n shareId: string,\n data: EditDirectShareRequest,\n success?: (data: DirectShare) => void,\n error?: () => void,\n always?: () => void\n ): Flight.Request {\n const updateStateKey = `direct:share:recipients:${shareId}`;\n\n return {\n url: `{gateway}/v1/share/${shareId}/recipients`,\n key: 'edit:direct:share',\n data,\n type: HttpVerbs.POST,\n normalizeOptions,\n invalidationKeys: 'sent:shares',\n updateState: {\n keys: updateStateKey,\n updateData: (state: HashObject) => {\n /**\n * As getDirectShareRecipientsById caches by shareId\n * and not the objectIds being fetched, if we're removing\n * the last recipient we need to manually set the recipients\n * to an empty array as a re-fetch won't be triggered.\n */\n if (!state[updateStateKey] || data.recipients.length)\n return state;\n\n return {\n ...state,\n [updateStateKey]: []\n };\n }\n },\n success,\n error,\n always\n };\n },\n\n removeDirectShareRecipient(\n shareId: string,\n recipientId: string,\n success?: (data: DirectShare) => void,\n error?: () => void,\n always?: () => void\n ): Flight.Request {\n const updateStateKey = `direct:share:recipients:${shareId}`;\n\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/share/${shareId}/recipients`, {\n recipientId\n }),\n key: 'remove:direct:share:recipient',\n type: HttpVerbs.DELETE,\n normalizeOptions,\n invalidationKeys: 'sent:shares',\n updateState: {\n keys: updateStateKey,\n updateData: (state: HashObject) => {\n /**\n * As getDirectShareRecipientsById caches by shareId\n * and not the objectIds being fetched, if we're removing\n * the last recipient we need to manually set the recipients\n * to an empty array as a re-fetch won't be triggered.\n */\n if (!state[updateStateKey])\n return state;\n\n return {\n ...state,\n [updateStateKey]: []\n };\n }\n },\n success,\n error,\n always\n };\n },\n\n /**\n * This request differs from getRecipientsById in that the key doesn't contain\n * the ids being fetched. This is useful because it means that if we need to\n * re-fetch the data because `ids` changes, the data prop will always be set\n * because the key won't change.\n * When using getRecipientsById, the would be a period of time where `data`\n * is `undefined` because it is technically a new request.\n */\n getDirectShareRecipientsById(shareId: string, recipients: ShareRecipient[], customerId: string): Flight.Request {\n return {\n url: UrlHelper.urlBuilder('{gateway}/v1/objects', getShareRecipientQuery(recipients.map(r => r.id), customerId)),\n key: `direct:share:recipients:${shareId}`\n };\n },\n\n getRecipientsById(ids: string[], customerId: string): Flight.Request {\n ids.sort();\n\n return {\n url: UrlHelper.urlBuilder('{gateway}/v1/objects', getShareRecipientQuery(ids, customerId)),\n key: `share:recipients:${ids.join(',')}`\n };\n },\n\n /**\n * Fetch a classroom or classroom group with users\n */\n getRecipientUsers(id: string, success?: (users: UserCollection) => void): Flight.Request {\n return {\n url: `{gateway}/v1/objects/${id}/users?query={limit:100}`,\n key: `share:recipients:${id}:users`,\n success\n };\n },\n\n getObjectsSharedWithUser(cursor?: string): Flight.Request {\n const params: HashObject = { permissionFilterOption: PermissionFilterOption.StripMetadata };\n\n if (cursor)\n params.cursor = cursor;\n\n return {\n url: UrlHelper.urlBuilder('{gateway}/v1/users/me/share/received-items', params),\n key: `shared:with:me:${cursor}`\n };\n },\n\n /**\n * Share link requests\n */\n getShareLinkByObjectId(id: string): Flight.Request {\n return {\n url: `{gateway}/v1/share/links?objectId=${id}`,\n key: `share:link:object:${id}`,\n normalizeOptions,\n formatData: (resp: HashObject) => {\n /**\n * When removing the linkExpireDate, the cache is invalidated\n * but the normalised state still has the linkExpireDate, so we need\n * to set it to null if it's not present\n */\n return {\n ...resp,\n linkExpireDate: resp.linkExpireDate || null\n };\n }\n };\n },\n\n createShareLink(\n data: CreateShareLinkRequest,\n success?: (shareLink: ShareLink) => void,\n error?: () => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: '{gateway}/v1/share/links',\n key: 'create:share:link',\n type: HttpVerbs.POST,\n data,\n normalizeOptions,\n invalidationKeys: [ `share:link:object:${data.resourceId}`, `privacy:${data.resourceId}`, 'sent:shares' ],\n success,\n error,\n always\n };\n },\n\n editShareLink(\n shareLink: ShareLink,\n data: EditShareLinkRequest,\n success?: (shareLink: ShareLink) => void,\n error?: () => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: `{gateway}/v1/share/links/${shareLink.id}`,\n key: 'edit:share:link',\n data,\n type: HttpVerbs.PUT,\n normalizeOptions,\n invalidationKeys: [ `share:${shareLink.id}`, `share:link:object:${shareLink.objectId}`, 'sent:shares' ],\n success,\n error,\n always\n };\n },\n\n deleteShareLink(\n shareLink: ShareLink,\n success?: () => void,\n error?: () => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: `{gateway}/v1/share/links/${shareLink.id}`,\n key: 'delete:share:link',\n type: HttpVerbs.DELETE,\n normalizeOptions,\n invalidationKeys: [ `share:${shareLink.id}`, `share:link:object:${shareLink.objectId}`, 'sent:shares' ],\n success,\n error,\n always\n };\n },\n\n checkPassword(\n id: string,\n password: string,\n success?: (res: CheckShareLinkPasswordResponse) => void,\n error?: (xhr: Xhr) => void\n ): Flight.PublicRequest {\n return {\n url: `{gateway}/v1/share/links/${id}/password/verify`,\n publicUrl: `{gateway}/v1/share/links/${id}/password/verify/public`,\n key: `checkpassword:${id}`,\n type: HttpVerbs.POST,\n data: { password },\n success,\n error\n };\n },\n\n getPrivacy(id: string): Flight.Request {\n return {\n url: `{gateway}/v1/objects/${id}/access`,\n key: `privacy:${id}`,\n normalize: false\n };\n },\n\n updatePrivacy(\n id: string,\n privacy: SharePrivacy,\n overrideRestrictions: boolean,\n success?: () => void,\n error?: () => void\n ): Flight.Request {\n return {\n url: `{gateway}/v1/share/links/${id}/privacy`,\n key: 'update:privacy',\n type: HttpVerbs.PUT,\n data: {\n privacy,\n overrideRestrictions\n },\n invalidationKeys: [ 'privacy', 'sent:shares' ],\n normalize: false,\n success,\n error\n };\n },\n\n createAnonSession(\n shareId: string,\n sessionId: string,\n sessionName: string\n ): Flight.Request {\n return {\n url: `{gateway}/v1/shares/${shareId}/anon-sessions`,\n key: 'create:anon:session',\n type: HttpVerbs.POST,\n data: {\n sessionId,\n sessionName\n },\n normalize: false\n };\n },\n\n getAnonSessions(shareId: string): Flight.Request {\n return {\n url: `{gateway}/v1/shares/${shareId}/anon-sessions`,\n key: `anon:session:${shareId}`,\n normalize: false\n };\n }\n};"],"names":["normalizeOptions","SharedObjectQueries","getShareRecipientQuery","ids","customerId","ShareRequests","shareId","success","error","idsQueries","id","assocQueries","key","PermissionFilterOption","params","UrlHelper","objectId","data","always","HttpVerbs","updateStateKey","state","recipientId","recipients","r","cursor","resp","shareLink","password","privacy","overrideRestrictions","sessionId","sessionName"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{d as o,j as t,L as m,i as c,A as u,g as l}from"./app-DhPN-zNB.js";import{g}from"./Bodl5h9Z.chunk.js";import{E as p}from"./D2zM4Kzz.chunk.js";const d="interactives.markingRequiredAlert",r=m.encloseNamespace(d);function k(e,s){let a=0;return s.students.forEach(n=>{const i=g(e,n);a+=i.awaitingMarking}),a}function j(e){const s=o(),a=k(e.interactive,e.results);return a?t.jsxs("div",{className:"alert bg-white box-shadow",role:"alert",children:[t.jsx(p,{emoji:"👋",children:r("markingRequired",{smartCount:a})})," ",t.jsx(c,{className:"text-info",appLink:{application:l.INTERACTIVES,action:u.Interactives.QUESTION_LIST,args:[e.interactiveMetadataId],params:s},children:r("seeQuestions")})]}):t.jsx(t.Fragment,{})}export{j as M};
2
+ //# sourceMappingURL=Tgco-VxU.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tgco-VxU.chunk.js","sources":["../../src/apps/interactives/components/marking-required-alert/MarkingRequiredAlert.tsx"],"sourcesContent":["import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { getStudentResultsSummary } from 'libs/shared/apps/analytics/utils/InteractiveUtils';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { EmojiText } from 'libs/shared/components/emoji-text/EmojiText';\nimport { Interactive, InteractiveResultSet } from 'libs/shared/interfaces';\n\nimport { Actions } from 'shared/constants/ReportsActions';\nimport { AppChannels } from 'shared/constants/ReportsRadioChannels';\nimport { useGetAppLinkFilterParams } from 'shared/hooks/UseGetFilterQueryParams';\n\nconst namespace = 'interactives.markingRequiredAlert';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction getNumQuestionsToMark(interactive: Interactive, results: InteractiveResultSet): number {\n let numToMark = 0;\n\n results.students.forEach(s => {\n const summary = getStudentResultsSummary(interactive, s);\n numToMark += summary.awaitingMarking;\n });\n\n return numToMark;\n}\n\ninterface MarkingRequiredAlertProps {\n interactive: Interactive;\n results: InteractiveResultSet;\n interactiveMetadataId: string;\n}\n\nexport function MarkingRequiredAlert(props: MarkingRequiredAlertProps): JSX.Element {\n const filterQueryParams = useGetAppLinkFilterParams();\n\n const numToMark = getNumQuestionsToMark(props.interactive, props.results);\n\n if (!numToMark)\n return <></>;\n\n return (\n <div className='alert bg-white box-shadow' role='alert'>\n <EmojiText\n emoji='👋'\n >\n {getPhrase('markingRequired', { smartCount: numToMark })}\n </EmojiText>\n &nbsp;\n <AppLink className='text-info' appLink={{\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.QUESTION_LIST,\n args: [props.interactiveMetadataId],\n params: filterQueryParams\n }}>\n {getPhrase('seeQuestions')}\n </AppLink>\n </div>\n );\n}"],"names":["namespace","getPhrase","LanguageService","getNumQuestionsToMark","interactive","results","numToMark","s","summary","getStudentResultsSummary","MarkingRequiredAlert","props","filterQueryParams","useGetAppLinkFilterParams","jsxs","jsx","EmojiText","AppLink","AppChannels","Actions","Fragment"],"mappings":"oJAaA,MAAMA,EAAY,oCACZC,EAAYC,EAAgB,iBAAiBF,CAAS,EAE5D,SAASG,EAAsBC,EAA0BC,EAAuC,CAC9F,IAAIC,EAAY,EAEhB,OAAAD,EAAQ,SAAS,QAAQE,GAAK,CAC5B,MAAMC,EAAUC,EAAyBL,EAAaG,CAAC,EACvDD,GAAaE,EAAQ,eACvB,CAAC,EAEMF,CACT,CAQO,SAASI,EAAqBC,EAA+C,CAClF,MAAMC,EAAoBC,EAAA,EAEpBP,EAAYH,EAAsBQ,EAAM,YAAaA,EAAM,OAAO,EAExE,OAAKL,EAIHQ,EAAAA,KAAC,MAAA,CAAI,UAAU,4BAA4B,KAAK,QAC9C,SAAA,CAAAC,EAAAA,IAACC,EAAA,CACC,MAAM,KAEL,SAAAf,EAAU,kBAAmB,CAAE,WAAYK,EAAW,CAAA,CAAA,EAC7C,IAEZS,EAAAA,IAACE,EAAA,CAAQ,UAAU,YAAY,QAAS,CACtC,YAAaC,EAAY,aACzB,OAAQC,EAAQ,aAAa,cAC7B,KAAM,CAACR,EAAM,qBAAqB,EAClC,OAAQC,CAAA,EAEP,SAAAX,EAAU,cAAc,CAAA,CAC3B,CAAA,EACF,EAlBOc,EAAAA,IAAAK,EAAAA,SAAA,EAAE,CAoBb"}
@@ -0,0 +1,2 @@
1
+ import{e as V,u as h,a as v,L as f,j as o,k as j,m as T}from"./app-DhPN-zNB.js";import{u as b}from"./B_rCaFK4.chunk.js";import{u as x}from"./NRnV1wHl.chunk.js";import{P as g}from"./DUnqV5wd.chunk.js";import{P as w}from"./J7X3wFpY.chunk.js";import{V as L}from"./B17N2umP.chunk.js";import{u as P}from"./HCxw4efP.chunk.js";import{S as F}from"./DA9TJjID.chunk.js";import{V as q,a as I}from"./DEgmC0Yv.chunk.js";import"./sFV5nxD4.chunk.js";import"./6SDR31f9.chunk.js";import"./CztNQjFH.chunk.js";import"./C-Bnglks.chunk.js";import"./6bLX1DNm.chunk.js";import"./wnQZ7WYP.chunk.js";import"./CSdY8TC0.chunk.js";import"./QDAMoZNu.chunk.js";import"./hqhdC5CE.chunk.js";import"./rMiqL-Tq.chunk.js";import"./CAfDUf5-.chunk.js";import"./Br_GRaAX.chunk.js";import"./DNEgb5v1.chunk.js";import"./B8dw4aip.chunk.js";import"./Cg_qt_Rk.chunk.js";import"./BRRS4PKg.chunk.js";const R="reportsVideos.schoolTopVideosView",d=f.encloseNamespace(R),S=100;function te(){var a,m,p;const l=V(),t=h(L.topStreams(S,l)),s=b(((a=t.data)==null?void 0:a.map(e=>e.objectId))??[],T.videos);x(t),v({title:d("videos")}),P(d("videos"));const i=t.hasCompleted&&!s.isFetching,r=!!((m=s.itemsArr)!=null&&m.length),u=(p=t.data)==null?void 0:p.map(e=>{var c;const n=(c=s.items)==null?void 0:c[e==null?void 0:e.objectId];return n?{count:e.count,object:n,contentType:e.contentType}:null}).filter(e=>!!e);return o.jsxs("div",{className:"pb-3",children:[o.jsx(F,{}),!i&&o.jsx(g,{variant:"video-views",children:o.jsx(w,{variant:"video-views"})}),i&&r&&o.jsx(q,{videos:u,getVideoAppLink:j}),i&&!r&&o.jsx(I,{})]})}export{te as SchoolTopVideosView};
2
+ //# sourceMappingURL=_KIo6cb1.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_KIo6cb1.chunk.js","sources":["../../src/apps/videos/views/school-top-videos/SchoolTopVideosView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useBatchFetch } from 'libs/shared/hooks/UseBatchFetch';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { VideoTypes } from 'libs/shared/interfaces';\n\nimport { PartialTable } from 'shared/components/partial-loading/PartialTable';\nimport { PartialTableContent } from 'shared/components/partial-loading/PartialTableContent';\nimport { VideoViewsV2Requests } from 'shared/flight-requests/VideoViewsV2Requests';\nimport { useGetRequestFilter } from 'shared/hooks/UseGetFilterQueryParams';\nimport { useSetHeaderTitle } from 'shared/hooks/UseSetHeaderTitle';\nimport { TopVideo, TopVideoV2 } from 'shared/interfaces';\nimport { getSchoolVideoAppLink } from 'shared/utils/ReportsAppLinkUtils';\n\nimport { SchoolVideosNav } from 'apps/videos/components/school-videos-nav/SchoolVideosNav';\nimport { VideoViewsTableEmptyState } from 'apps/videos/components/video-views-table/video-views-table-empty-state/VideoViewsTableEmptyState';\nimport { VideoViewsTable } from 'apps/videos/components/video-views-table/VideoViewsTable';\n\nconst namespace = 'reportsVideos.schoolTopVideosView';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst LIMIT = 100;\n\nexport function SchoolTopVideosView(): JSX.Element {\n const requestFilter = useGetRequestFilter();\n\n const topStreams = Flight.useBasicFetch<TopVideoV2[]>(VideoViewsV2Requests.topStreams(LIMIT, requestFilter));\n\n const videos = useBatchFetch<VideoTypes>(\n topStreams.data?.map(v => v.objectId) ?? [],\n VideoRequests.videos\n );\n\n useHandleObjectError(topStreams);\n\n useSetPageMetadata({ title: getPhrase('videos') });\n useSetHeaderTitle(getPhrase('videos'));\n\n const hasLoaded = (\n topStreams.hasCompleted &&\n !videos.isFetching\n );\n\n const hasVideoViews = !!videos.itemsArr?.length;\n \n const mappedVideos = topStreams.data?.map<TopVideo>(topStream => {\n const video = videos.items?.[topStream?.objectId];\n\n if (!video)\n return null;\n\n return {\n count: topStream.count,\n object: video,\n contentType: topStream.contentType\n };\n }).filter(v => !!v);\n\n return (\n <div className='pb-3'>\n <SchoolVideosNav />\n {!hasLoaded &&\n <PartialTable variant='video-views'>\n <PartialTableContent variant='video-views' />\n </PartialTable>\n }\n {hasLoaded && hasVideoViews &&\n <VideoViewsTable videos={mappedVideos} getVideoAppLink={getSchoolVideoAppLink} />\n }\n {hasLoaded && !hasVideoViews && <VideoViewsTableEmptyState />}\n </div>\n );\n}"],"names":["namespace","getPhrase","LanguageService","LIMIT","SchoolTopVideosView","requestFilter","useGetRequestFilter","topStreams","Flight.useBasicFetch","VideoViewsV2Requests","videos","useBatchFetch","_a","v","VideoRequests","useHandleObjectError","useSetPageMetadata","useSetHeaderTitle","hasLoaded","hasVideoViews","_b","mappedVideos","_c","topStream","video","jsxs","jsx","SchoolVideosNav","PartialTable","PartialTableContent","VideoViewsTable","getSchoolVideoAppLink","VideoViewsTableEmptyState"],"mappings":"u1BAuBA,MAAMA,EAAY,oCACZC,EAAYC,EAAgB,iBAAiBF,CAAS,EAEtDG,EAAQ,IAEP,SAASC,IAAmC,WACjD,MAAMC,EAAgBC,EAAA,EAEhBC,EAAaC,EAAmCC,EAAqB,WAAWN,EAAOE,CAAa,CAAC,EAErGK,EAASC,IACbC,EAAAL,EAAW,OAAX,YAAAK,EAAiB,OAASC,EAAE,YAAa,CAAA,EACzCC,EAAc,MAAA,EAGhBC,EAAqBR,CAAU,EAE/BS,EAAmB,CAAE,MAAOf,EAAU,QAAQ,EAAG,EACjDgB,EAAkBhB,EAAU,QAAQ,CAAC,EAErC,MAAMiB,EACJX,EAAW,cACX,CAACG,EAAO,WAGJS,EAAgB,CAAC,GAACC,EAAAV,EAAO,WAAP,MAAAU,EAAiB,QAEnCC,GAAeC,EAAAf,EAAW,OAAX,YAAAe,EAAiB,IAAcC,GAAa,OAC/D,MAAMC,GAAQZ,EAAAF,EAAO,QAAP,YAAAE,EAAeW,GAAA,YAAAA,EAAW,UAExC,OAAKC,EAGE,CACL,MAAOD,EAAU,MACjB,OAAQC,EACR,YAAaD,EAAU,WAAA,EALhB,IAOX,GAAG,OAAOV,GAAK,CAAC,CAACA,GAEjB,OACEY,EAAAA,KAAC,MAAA,CAAI,UAAU,OACb,SAAA,CAAAC,EAAAA,IAACC,EAAA,EAAgB,EAChB,CAACT,GACAQ,EAAAA,IAACE,EAAA,CAAa,QAAQ,cACpB,SAAAF,EAAAA,IAACG,EAAA,CAAoB,QAAQ,aAAA,CAAc,CAAA,CAC7C,EAEDX,GAAaC,GACZO,EAAAA,IAACI,GAAgB,OAAQT,EAAc,gBAAiBU,EAAuB,EAEhFb,GAAa,CAACC,GAAiBO,EAAAA,IAACM,EAAA,CAAA,CAA0B,CAAA,EAC7D,CAEJ"}
@@ -0,0 +1,2 @@
1
+ import{ax as S,s as V,L as d,u as f,U as L,aM as q,C as b,az as C,aI as D,aw as P,e as U,ad as M,ar as O,j as s,$ as k,w as F,T as p,a4 as g,bD as R}from"./app-DhPN-zNB.js";import{u as w}from"./hqhdC5CE.chunk.js";const h="shared.verifiedEmailError";class T extends S{constructor(t,r,a){super("VerifiedEmailRequiredError"),this.message=t,this.liteUrl=r,this.hasLite=a}get name(){return"VerifiedEmailRequiredError"}get dialogOptions(){const t=V.safeUrlConcat(this.liteUrl,"settings/account");return{title:d.getPhrase(h,"heading"),text:this.hasLite?`${this.message} ${d.getPhrase(h,"visitSettings",{href:t})}`:this.message,buttons:[{text:d.getPhrase(h,"close"),className:"btn btn-dark",success:!0}]}}}const z=()=>{var o;const e=f(L.currentUser()),t=f(((o=e.data)==null?void 0:o.isAuthenticated)&&q.userProducts()),r=!t.hasCompleted;return{hasProduct:n=>{var i;return r||t.hasError||!((i=t.data)!=null&&i.length)?!1:t.data.some(c=>c.id===n)},products:t,isLoadingProducts:r}};function H(){const e=w(),{hasProduct:t,isLoadingProducts:r}=z(),a=f(b.config());function o(n,i,c){var l;if(!n.responseJSON||((l=n.responseJSON)==null?void 0:l.type)!=="no-email"){e.error(i);return}C.throw(new T(c,a.data.liteUrl,t(D.Primary)))}return{handleGenerateReportError:o,loading:!a.hasCompleted||r}}function v(e){return{dateRange:{start:e.start,end:e.end},offsetInMin:Math.abs(new Date().getTimezoneOffset())}}const x={videoViewsReport(e,t){return{url:"{gateway}/v1/analytics/video-views/reports",key:"video:views:report",type:P.POST,data:{...v(e),version:t},invalidationKeys:"export",normalize:!1}},loginsReport(e,t,r,a){return{url:"{gateway}/v1/analytics/logins/reports",key:"logins:report",data:v(e),type:P.POST,normalize:!1,success:t,error:r,always:a}}},E="reportsShared.generateReport",u=d.encloseNamespace(E);function N(e){switch(e){case 0:return"loginsDescription";case 1:return"videosDescription";default:return""}}function m(e){const t=R.convertUTCToLocal(e).toString();return R.format(t,"Do MMMM YYYY")}var y=(e=>(e[e.Logins=0]="Logins",e[e.VideoViews=1]="VideoViews",e))(y||{});function $(e){const t=U(),r=w(),{loading:a,handleGenerateReportError:o}=H(),{hasShareFlowV2:n}=M(null),i=O();function c(){switch(e.type){case 0:return x.loginsReport(t);case 1:return x.videoViewsReport(t,n?"v3":"v2");default:return null}}function l(){i(c()).then(()=>r.success(u("success"))).catch(j=>o(j,u("error"),u("noEmailError"))).finally(e.closePopup)}return s.jsx(k.Provider,{value:E,children:s.jsxs(F,{title:u("title"),showLoadingSpinner:a,closePopup:e.closePopup,children:[s.jsx("p",{children:s.jsx(p,{phrase:N(e.type)})}),s.jsx("p",{children:s.jsx(p,{phrase:"dateRange",options:{dateFrom:m(t.start),dateTo:m(t.end)}})}),s.jsx("p",{children:s.jsx(p,{phrase:"emailDescription"})}),s.jsxs(g,{children:[s.jsx(g.Cancel,{onClick:e.closePopup}),s.jsx(g.Submit,{variant:"dark",onClick:l,text:u("generateReport")})]})]})})}const Y=Object.freeze(Object.defineProperty({__proto__:null,GenerateReportType:y,GenerateReportView:$,getReportFriendlyDate:m},Symbol.toStringTag,{value:"Module"}));export{y as G,Y as a,m as g,H as u};
2
+ //# sourceMappingURL=aRYKkB2W.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aRYKkB2W.chunk.js","sources":["../../../../libs/shared/src/errors/general/verified-email/VerifiedEmailRequiredError.ts","../../../../libs/shared/src/hooks/UseProducts.ts","../../../../libs/shared/src/hooks/useVerifiedEmailRequiredErrorHandler.ts","../../src/shared/flight-requests/ReportRequests.ts","../../src/shared/views/generate-report/GenerateReportView.tsx"],"sourcesContent":["import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\n\nimport { DialogError } from 'libs/shared/errors/primitives/DialogError';\nimport { DialogOptions } from 'libs/shared/interfaces';\n\nconst namespace = 'shared.verifiedEmailError';\n\nexport class VerifiedEmailRequiredError extends DialogError {\n public message: string;\n public liteUrl: string;\n public hasLite: boolean;\n\n constructor(message: string, liteUrl: string, hasLite: boolean) {\n super('VerifiedEmailRequiredError');\n\n this.message = message;\n this.liteUrl = liteUrl;\n this.hasLite = hasLite;\n }\n\n // @ts-ignore\n public get name(): string {\n return 'VerifiedEmailRequiredError';\n }\n\n // @ts-ignore\n public get dialogOptions(): DialogOptions {\n const href = UrlHelper.safeUrlConcat(this.liteUrl, 'settings/account');\n\n return {\n title: LanguageService.getPhrase(namespace, 'heading'),\n text: this.hasLite\n ? `${this.message} ${LanguageService.getPhrase(namespace, 'visitSettings', { href })}`\n : this.message,\n buttons: [{\n text: LanguageService.getPhrase(namespace, 'close'),\n className: 'btn btn-dark',\n success: true\n }]\n };\n }\n}","import { Flight } from 'libs/common/flight';\n\nimport { ProductId } from 'libs/shared/enums/ProductId';\nimport { ProductRequests } from 'libs/shared/flight-requests/ProductRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { CurrentUser, Product } from 'libs/shared/interfaces';\n\nexport type HasProductFunc = (productId: ProductId) => boolean;\n\nexport interface UseProductsResponse {\n hasProduct: (product: ProductId) => boolean;\n products: Flight.Response<Product[]>;\n isLoadingProducts: boolean;\n}\n\nexport const useProducts = (): UseProductsResponse => {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const products = Flight.useBasicFetch<Product[]>(currentUser.data?.isAuthenticated && ProductRequests.userProducts());\n const isLoadingProducts = !products.hasCompleted;\n\n const hasProduct = (productId: ProductId) => {\n if (isLoadingProducts || products.hasError)\n return false;\n\n if (!products.data?.length)\n return false;\n\n return products.data.some(product => product.id === productId);\n };\n\n return {\n hasProduct,\n products,\n isLoadingProducts\n };\n};","import { Core } from 'libs/common/backbone/index';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { Flight } from 'libs/common/react/index';\n\nimport { ProductId } from 'libs/shared/enums/ProductId';\nimport { VerifiedEmailRequiredError } from 'libs/shared/errors/general/verified-email/VerifiedEmailRequiredError';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useProducts } from 'libs/shared/hooks/UseProducts';\nimport { Config } from 'libs/shared/interfaces';\n\nexport function useVerifiedEmailRequiredErrorHandler() {\n const alerts = useAlerts();\n const { hasProduct, isLoadingProducts } = useProducts();\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n function handleGenerateReportError(xhr: Xhr, message: string, noEmailError: string) {\n if (!xhr.responseJSON || xhr.responseJSON?.type !== 'no-email') {\n alerts.error(message);\n return;\n }\n\n Core.ErrorHelper.throw(\n new VerifiedEmailRequiredError(noEmailError, config.data.liteUrl, hasProduct(ProductId.Primary))\n );\n }\n\n return {\n handleGenerateReportError,\n loading: !config.hasCompleted || isLoadingProducts\n };\n}","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { Flight } from 'libs/common/flight';\n\nimport { AnalyticsRequestFilter } from 'libs/shared/interfaces';\n\ntype ReportVersion = 'v2' | 'v3';\n\ninterface DateRange {\n start: string;\n end: string;\n}\n\ninterface ReportRequestPayload {\n dateRange: DateRange,\n offsetInMin: number;\n userIds?: number[],\n groupsIds?: number[]\n}\n\nfunction formatReportRequest(filterParams: AnalyticsRequestFilter): ReportRequestPayload {\n return {\n dateRange: {\n start: filterParams.start,\n end: filterParams.end\n },\n offsetInMin: Math.abs(new Date().getTimezoneOffset())\n };\n}\n\nexport const ReportRequests = {\n videoViewsReport(\n filterParams: AnalyticsRequestFilter,\n version: ReportVersion\n ): Flight.Request {\n return {\n url: '{gateway}/v1/analytics/video-views/reports',\n key: 'video:views:report',\n type: HttpVerbs.POST,\n data: { ...formatReportRequest(filterParams), version },\n invalidationKeys: 'export',\n normalize: false\n };\n },\n\n loginsReport(\n filterParams: AnalyticsRequestFilter,\n success?: () => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: '{gateway}/v1/analytics/logins/reports',\n key: 'logins:report',\n data: formatReportRequest(filterParams),\n type: HttpVerbs.POST,\n normalize: false,\n success,\n error,\n always\n };\n }\n};","import React from 'react';\n\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { useVerifiedEmailRequiredErrorHandler } from 'libs/shared/hooks/useVerifiedEmailRequiredErrorHandler';\nimport { PropsWithPopupViewProps } from 'libs/shared/interfaces';\n\nimport { ReportRequests } from 'shared/flight-requests/ReportRequests';\nimport { useGetRequestFilter } from 'shared/hooks/UseGetFilterQueryParams';\n\nconst namespace = 'reportsShared.generateReport';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction getLangPhrase(type: GenerateReportType): string {\n switch (type) {\n case GenerateReportType.Logins:\n return 'loginsDescription';\n\n case GenerateReportType.VideoViews:\n return 'videosDescription';\n\n default:\n return '';\n }\n}\n\nexport function getReportFriendlyDate(date: string): string {\n const localDate = DateHelper.convertUTCToLocal(date).toString();\n return DateHelper.format(localDate, 'Do MMMM YYYY');\n}\n\nexport enum GenerateReportType {\n Logins,\n VideoViews\n}\n\ninterface GenerateReportViewProps {\n type: GenerateReportType;\n}\n\nexport function GenerateReportView(props: PropsWithPopupViewProps<GenerateReportViewProps>): JSX.Element {\n const filterQueryParams = useGetRequestFilter();\n const alerts = useAlerts();\n const { loading, handleGenerateReportError } = useVerifiedEmailRequiredErrorHandler();\n const { hasShareFlowV2 } = useSettings(null);\n\n const fetchAsync = Flight.useGetFetchAsync();\n\n function getRequest(): Flight.Request {\n switch (props.type) {\n case GenerateReportType.Logins:\n return ReportRequests.loginsReport(filterQueryParams);\n\n case GenerateReportType.VideoViews:\n return ReportRequests.videoViewsReport(filterQueryParams, hasShareFlowV2 ? 'v3' : 'v2');\n\n default:\n return null;\n }\n }\n\n function onClick() {\n fetchAsync(getRequest())\n .then(() => alerts.success(getPhrase('success')))\n .catch((xhr: Xhr) => handleGenerateReportError(xhr, getPhrase('error'), getPhrase('noEmailError')))\n .finally(props.closePopup);\n }\n\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <Popup\n title={getPhrase('title')}\n showLoadingSpinner={loading}\n closePopup={props.closePopup}\n >\n <p>\n <Text phrase={getLangPhrase(props.type)} />\n </p>\n <p>\n <Text phrase='dateRange' options={({\n dateFrom: getReportFriendlyDate(filterQueryParams.start),\n dateTo: getReportFriendlyDate(filterQueryParams.end)\n })} />\n </p>\n <p>\n <Text phrase='emailDescription' />\n </p>\n <PopupButtons>\n <PopupButtons.Cancel onClick={props.closePopup} />\n <PopupButtons.Submit\n variant='dark'\n onClick={onClick}\n text={getPhrase('generateReport')}\n />\n </PopupButtons>\n </Popup>\n </LanguageNamespaceContext.Provider>\n );\n}"],"names":["namespace","VerifiedEmailRequiredError","DialogError","message","liteUrl","hasLite","href","UrlHelper","LanguageService","useProducts","currentUser","Flight.useBasicFetch","UserRequests","products","_a","ProductRequests","isLoadingProducts","productId","product","useVerifiedEmailRequiredErrorHandler","alerts","useAlerts","hasProduct","config","ConfigRequests","handleGenerateReportError","xhr","noEmailError","Core.ErrorHelper","ProductId","formatReportRequest","filterParams","ReportRequests","version","HttpVerbs","success","error","always","getPhrase","getLangPhrase","type","getReportFriendlyDate","date","localDate","DateHelper","GenerateReportType","GenerateReportView","props","filterQueryParams","useGetRequestFilter","loading","hasShareFlowV2","useSettings","fetchAsync","Flight.useGetFetchAsync","getRequest","onClick","jsx","LanguageNamespaceContext","jsxs","Popup","Text","PopupButtons"],"mappings":"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"}