@clickview/reports 0.69.0-rc.0 → 0.69.1-dev.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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/BBwBgFf_.chunk.css +1 -0
  63. package/dist/css/BDijM1kt.chunk.css +1 -0
  64. package/dist/css/BMPwvOki.chunk.css +1 -0
  65. package/dist/css/BNt45Kgy.chunk.css +1 -0
  66. package/dist/css/BSGhUWzl.chunk.css +1 -0
  67. package/dist/css/BZ3_uhDP.chunk.css +1 -0
  68. package/dist/css/BaadNO4A.chunk.css +1 -0
  69. package/dist/css/BdUNjJqp.chunk.css +1 -0
  70. package/dist/css/BdeI0FAV.chunk.css +1 -0
  71. package/dist/css/BxcMGr8Y.chunk.css +1 -0
  72. package/dist/css/ByuL_xKJ.chunk.css +1 -0
  73. package/dist/css/C-A0Pj_7.chunk.css +1 -0
  74. package/dist/css/C4jMfPWU.chunk.css +1 -0
  75. package/dist/css/C7XoyEPr.chunk.css +1 -0
  76. package/dist/css/C8sxda3R.chunk.css +1 -0
  77. package/dist/css/CD1qrI1T.chunk.css +1 -0
  78. package/dist/css/CFO--d_R.chunk.css +1 -0
  79. package/dist/css/CX9nw8t8.chunk.css +1 -0
  80. package/dist/css/C_qGRdC2.chunk.css +1 -0
  81. package/dist/css/CdC6ugQR.chunk.css +1 -0
  82. package/dist/css/ClRRGXPb.chunk.css +1 -0
  83. package/dist/css/Cr1bwtZG.chunk.css +1 -0
  84. package/dist/css/DBlPz5Fw.chunk.css +1 -0
  85. package/dist/css/DDnpOnVB.chunk.css +1 -0
  86. package/dist/css/DFZQCLLg.chunk.css +1 -0
  87. package/dist/css/DJwAbl6l.chunk.css +1 -0
  88. package/dist/css/DWjg_0sz.chunk.css +1 -0
  89. package/dist/css/DYV9jjVn.chunk.css +1 -0
  90. package/dist/css/Dgeh4AqU.chunk.css +9 -0
  91. package/dist/css/DlOtoSz0.chunk.css +1 -0
  92. package/dist/css/DlxOgKUu.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/-b_h0A4y.chunk.js +2 -0
  103. package/dist/scripts/-b_h0A4y.chunk.js.map +1 -0
  104. package/dist/scripts/0UfVJrf5.chunk.js +2 -0
  105. package/dist/scripts/0UfVJrf5.chunk.js.map +1 -0
  106. package/dist/scripts/2cd-ulth.chunk.js +2 -0
  107. package/dist/scripts/2cd-ulth.chunk.js.map +1 -0
  108. package/dist/scripts/5O9SdVRZ.chunk.js +2 -0
  109. package/dist/scripts/5O9SdVRZ.chunk.js.map +1 -0
  110. package/dist/scripts/72EXv822.chunk.js +2 -0
  111. package/dist/scripts/72EXv822.chunk.js.map +1 -0
  112. package/dist/scripts/8CNwntVY.chunk.js +2 -0
  113. package/dist/scripts/8CNwntVY.chunk.js.map +1 -0
  114. package/dist/scripts/9pagDMWN.chunk.js +2 -0
  115. package/dist/scripts/9pagDMWN.chunk.js.map +1 -0
  116. package/dist/scripts/AKgZQGT0.chunk.js +2 -0
  117. package/dist/scripts/AKgZQGT0.chunk.js.map +1 -0
  118. package/dist/scripts/ASoPpgM4.chunk.js +2 -0
  119. package/dist/scripts/ASoPpgM4.chunk.js.map +1 -0
  120. package/dist/scripts/B0ZIDriY.chunk.js +6 -0
  121. package/dist/scripts/B0ZIDriY.chunk.js.map +1 -0
  122. package/dist/scripts/B3PA8QNB.chunk.js +2 -0
  123. package/dist/scripts/B3PA8QNB.chunk.js.map +1 -0
  124. package/dist/scripts/B6QS1MPy.chunk.js +4 -0
  125. package/dist/scripts/B6QS1MPy.chunk.js.map +1 -0
  126. package/dist/scripts/B9I2jvNY.chunk.js +2 -0
  127. package/dist/scripts/B9I2jvNY.chunk.js.map +1 -0
  128. package/dist/scripts/B9IzwFHp.chunk.js +2 -0
  129. package/dist/scripts/B9IzwFHp.chunk.js.map +1 -0
  130. package/dist/scripts/BBGDjrt-.chunk.js +2 -0
  131. package/dist/scripts/BBGDjrt-.chunk.js.map +1 -0
  132. package/dist/scripts/BHZ8VWq7.chunk.js +2 -0
  133. package/dist/scripts/BHZ8VWq7.chunk.js.map +1 -0
  134. package/dist/scripts/BIIsc-MA.chunk.js +2 -0
  135. package/dist/scripts/BIIsc-MA.chunk.js.map +1 -0
  136. package/dist/scripts/BLEXuU9u.chunk.js +2 -0
  137. package/dist/scripts/BLEXuU9u.chunk.js.map +1 -0
  138. package/dist/scripts/BLIHpHXi.chunk.js +2 -0
  139. package/dist/scripts/BLIHpHXi.chunk.js.map +1 -0
  140. package/dist/scripts/BLSeaGtL.chunk.js +2 -0
  141. package/dist/scripts/BLSeaGtL.chunk.js.map +1 -0
  142. package/dist/scripts/BLuY6AYO.chunk.js +2 -0
  143. package/dist/scripts/BLuY6AYO.chunk.js.map +1 -0
  144. package/dist/scripts/BSe8MmUc.chunk.js +2 -0
  145. package/dist/scripts/BSe8MmUc.chunk.js.map +1 -0
  146. package/dist/scripts/BZf-mjTJ.chunk.js +380 -0
  147. package/dist/scripts/BZf-mjTJ.chunk.js.map +1 -0
  148. package/dist/scripts/BbvzsNLZ.chunk.js +2 -0
  149. package/dist/scripts/BbvzsNLZ.chunk.js.map +1 -0
  150. package/dist/scripts/BdX0pSRt.chunk.js +2 -0
  151. package/dist/scripts/BdX0pSRt.chunk.js.map +1 -0
  152. package/dist/scripts/Bgidb-to.chunk.js +2 -0
  153. package/dist/scripts/Bgidb-to.chunk.js.map +1 -0
  154. package/dist/scripts/BhPjzT2a.chunk.js +2 -0
  155. package/dist/scripts/BhPjzT2a.chunk.js.map +1 -0
  156. package/dist/scripts/BihcsiRl.chunk.js +2 -0
  157. package/dist/scripts/BihcsiRl.chunk.js.map +1 -0
  158. package/dist/scripts/BlUKEHqx.chunk.js +2 -0
  159. package/dist/scripts/BlUKEHqx.chunk.js.map +1 -0
  160. package/dist/scripts/BpWIcknK.chunk.js +2 -0
  161. package/dist/scripts/BpWIcknK.chunk.js.map +1 -0
  162. package/dist/scripts/BqY3bZyH.chunk.js +2 -0
  163. package/dist/scripts/BqY3bZyH.chunk.js.map +1 -0
  164. package/dist/scripts/BrXmRwXi.chunk.js +2 -0
  165. package/dist/scripts/BrXmRwXi.chunk.js.map +1 -0
  166. package/dist/scripts/BsOLqypJ.chunk.js +2 -0
  167. package/dist/scripts/BsOLqypJ.chunk.js.map +1 -0
  168. package/dist/scripts/BvArNs1K.chunk.js +2 -0
  169. package/dist/scripts/BvArNs1K.chunk.js.map +1 -0
  170. package/dist/scripts/BxBPX67V.chunk.js +2 -0
  171. package/dist/scripts/BxBPX67V.chunk.js.map +1 -0
  172. package/dist/scripts/C0Ak1kpS.chunk.js +3 -0
  173. package/dist/scripts/C0Ak1kpS.chunk.js.map +1 -0
  174. package/dist/scripts/C0GFlX65.chunk.js +2 -0
  175. package/dist/scripts/C0GFlX65.chunk.js.map +1 -0
  176. package/dist/scripts/C0nQ0Xnx.chunk.js +6 -0
  177. package/dist/scripts/C0nQ0Xnx.chunk.js.map +1 -0
  178. package/dist/scripts/C6UUJ8P5.chunk.js +2 -0
  179. package/dist/scripts/C6UUJ8P5.chunk.js.map +1 -0
  180. package/dist/scripts/C8oA7_zY.chunk.js +2 -0
  181. package/dist/scripts/C8oA7_zY.chunk.js.map +1 -0
  182. package/dist/scripts/CEy1YX0b.chunk.js +2 -0
  183. package/dist/scripts/CEy1YX0b.chunk.js.map +1 -0
  184. package/dist/scripts/CNfESBlK.chunk.js +2 -0
  185. package/dist/scripts/CNfESBlK.chunk.js.map +1 -0
  186. package/dist/scripts/CNgTzzan.chunk.js +42 -0
  187. package/dist/scripts/CNgTzzan.chunk.js.map +1 -0
  188. package/dist/scripts/CP2i5uhZ.chunk.js +2 -0
  189. package/dist/scripts/CP2i5uhZ.chunk.js.map +1 -0
  190. package/dist/scripts/CSmXZuTZ.chunk.js +2 -0
  191. package/dist/scripts/CSmXZuTZ.chunk.js.map +1 -0
  192. package/dist/scripts/CTMVj7AR.chunk.js +2 -0
  193. package/dist/scripts/CTMVj7AR.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/CWEUVMEm.chunk.js +2 -0
  197. package/dist/scripts/CWEUVMEm.chunk.js.map +1 -0
  198. package/dist/scripts/CWViZWyh.chunk.js +34 -0
  199. package/dist/scripts/CWViZWyh.chunk.js.map +1 -0
  200. package/dist/scripts/CX5q-0jT.chunk.js +2 -0
  201. package/dist/scripts/CX5q-0jT.chunk.js.map +1 -0
  202. package/dist/scripts/CbBaa9Aj.chunk.js +2 -0
  203. package/dist/scripts/CbBaa9Aj.chunk.js.map +1 -0
  204. package/dist/scripts/Ce_zROQ3.chunk.js +2 -0
  205. package/dist/scripts/Ce_zROQ3.chunk.js.map +1 -0
  206. package/dist/scripts/CfTCpF5i.chunk.js +4 -0
  207. package/dist/scripts/CfTCpF5i.chunk.js.map +1 -0
  208. package/dist/scripts/Cl1c9Acb.chunk.js +2 -0
  209. package/dist/scripts/Cl1c9Acb.chunk.js.map +1 -0
  210. package/dist/scripts/Cmu1J2M7.chunk.js +262 -0
  211. package/dist/scripts/Cmu1J2M7.chunk.js.map +1 -0
  212. package/dist/scripts/Cn0ghy_D.chunk.js +2 -0
  213. package/dist/scripts/Cn0ghy_D.chunk.js.map +1 -0
  214. package/dist/scripts/Cs1UnwSi.chunk.js +2 -0
  215. package/dist/scripts/Cs1UnwSi.chunk.js.map +1 -0
  216. package/dist/scripts/CsP3Lruv.chunk.js +3 -0
  217. package/dist/scripts/CsP3Lruv.chunk.js.map +1 -0
  218. package/dist/scripts/CsROrwVV.chunk.js +2 -0
  219. package/dist/scripts/CsROrwVV.chunk.js.map +1 -0
  220. package/dist/scripts/Ctu1A4hw.chunk.js +2 -0
  221. package/dist/scripts/Ctu1A4hw.chunk.js.map +1 -0
  222. package/dist/scripts/D1UdZdfs.chunk.js +2 -0
  223. package/dist/scripts/D1UdZdfs.chunk.js.map +1 -0
  224. package/dist/scripts/D2pFW6EB.chunk.js +2 -0
  225. package/dist/scripts/D2pFW6EB.chunk.js.map +1 -0
  226. package/dist/scripts/D9oCeDYw.chunk.js +10 -0
  227. package/dist/scripts/D9oCeDYw.chunk.js.map +1 -0
  228. package/dist/scripts/DAajosqn.chunk.js +2 -0
  229. package/dist/scripts/DAajosqn.chunk.js.map +1 -0
  230. package/dist/scripts/DDGxV4ns.chunk.js +2 -0
  231. package/dist/scripts/DDGxV4ns.chunk.js.map +1 -0
  232. package/dist/scripts/DFlfmBPU.chunk.js +2 -0
  233. package/dist/scripts/DFlfmBPU.chunk.js.map +1 -0
  234. package/dist/scripts/DHZefNDC.chunk.js +2 -0
  235. package/dist/scripts/DHZefNDC.chunk.js.map +1 -0
  236. package/dist/scripts/DJzpw8qX.chunk.js +2 -0
  237. package/dist/scripts/DJzpw8qX.chunk.js.map +1 -0
  238. package/dist/scripts/DKEdZyAE.chunk.js +2 -0
  239. package/dist/scripts/DKEdZyAE.chunk.js.map +1 -0
  240. package/dist/scripts/DKu8iTnz.chunk.js +2 -0
  241. package/dist/scripts/DKu8iTnz.chunk.js.map +1 -0
  242. package/dist/scripts/DMd0fZar.chunk.js +2 -0
  243. package/dist/scripts/DMd0fZar.chunk.js.map +1 -0
  244. package/dist/scripts/DNDksLLJ.chunk.js +2 -0
  245. package/dist/scripts/DNDksLLJ.chunk.js.map +1 -0
  246. package/dist/scripts/DNP9cLqQ.chunk.js +2 -0
  247. package/dist/scripts/DNP9cLqQ.chunk.js.map +1 -0
  248. package/dist/scripts/DO-V6YKu.chunk.js +2 -0
  249. package/dist/scripts/DO-V6YKu.chunk.js.map +1 -0
  250. package/dist/scripts/DQA8MZy3.chunk.js +2 -0
  251. package/dist/scripts/DQA8MZy3.chunk.js.map +1 -0
  252. package/dist/scripts/DT1lPNaD.chunk.js +2 -0
  253. package/dist/scripts/DT1lPNaD.chunk.js.map +1 -0
  254. package/dist/scripts/DTL-Rceb.chunk.js +2 -0
  255. package/dist/scripts/DTL-Rceb.chunk.js.map +1 -0
  256. package/dist/scripts/DTotSVIi.chunk.js +2 -0
  257. package/dist/scripts/DTotSVIi.chunk.js.map +1 -0
  258. package/dist/scripts/DWkaXclo.chunk.js +10 -0
  259. package/dist/scripts/DWkaXclo.chunk.js.map +1 -0
  260. package/dist/scripts/DXFcNENa.chunk.js +2 -0
  261. package/dist/scripts/DXFcNENa.chunk.js.map +1 -0
  262. package/dist/scripts/Ddy6mQmA.chunk.js +2 -0
  263. package/dist/scripts/Ddy6mQmA.chunk.js.map +1 -0
  264. package/dist/scripts/DlxDC-9E.chunk.js +2 -0
  265. package/dist/scripts/DlxDC-9E.chunk.js.map +1 -0
  266. package/dist/scripts/Dn5-Zvws.chunk.js +2 -0
  267. package/dist/scripts/Dn5-Zvws.chunk.js.map +1 -0
  268. package/dist/scripts/DnhffgUu.chunk.js +2 -0
  269. package/dist/scripts/DnhffgUu.chunk.js.map +1 -0
  270. package/dist/scripts/Dv9OgzKw.chunk.js +2 -0
  271. package/dist/scripts/Dv9OgzKw.chunk.js.map +1 -0
  272. package/dist/scripts/DvV9e2O3.chunk.js +3 -0
  273. package/dist/scripts/DvV9e2O3.chunk.js.map +1 -0
  274. package/dist/scripts/Dvf_hOR3.chunk.js +2 -0
  275. package/dist/scripts/Dvf_hOR3.chunk.js.map +1 -0
  276. package/dist/scripts/DxOc33K6.chunk.js +3 -0
  277. package/dist/scripts/DxOc33K6.chunk.js.map +1 -0
  278. package/dist/scripts/DxbQzyJg.chunk.js +2 -0
  279. package/dist/scripts/DxbQzyJg.chunk.js.map +1 -0
  280. package/dist/scripts/DyaAoFDP.chunk.js +2 -0
  281. package/dist/scripts/DyaAoFDP.chunk.js.map +1 -0
  282. package/dist/scripts/EBNeK_uD.chunk.js +2 -0
  283. package/dist/scripts/EBNeK_uD.chunk.js.map +1 -0
  284. package/dist/scripts/HBvGjr-A.chunk.js +2 -0
  285. package/dist/scripts/HBvGjr-A.chunk.js.map +1 -0
  286. package/dist/scripts/IC6KSiqE.chunk.js +2 -0
  287. package/dist/scripts/IC6KSiqE.chunk.js.map +1 -0
  288. package/dist/scripts/LT6WE6TB.chunk.js +2 -0
  289. package/dist/scripts/LT6WE6TB.chunk.js.map +1 -0
  290. package/dist/scripts/P0RdEZGz.chunk.js +2 -0
  291. package/dist/scripts/P0RdEZGz.chunk.js.map +1 -0
  292. package/dist/scripts/P3PkkK_o.chunk.js +2 -0
  293. package/dist/scripts/P3PkkK_o.chunk.js.map +1 -0
  294. package/dist/scripts/SA1hxE7y.chunk.js +15 -0
  295. package/dist/scripts/SA1hxE7y.chunk.js.map +1 -0
  296. package/dist/scripts/YHL8PX91.chunk.js +2 -0
  297. package/dist/scripts/YHL8PX91.chunk.js.map +1 -0
  298. package/dist/scripts/app-5iiM5qQY.js +224 -0
  299. package/dist/scripts/app-5iiM5qQY.js.map +1 -0
  300. package/dist/scripts/fORcC1yd.chunk.js +2 -0
  301. package/dist/scripts/fORcC1yd.chunk.js.map +1 -0
  302. package/dist/scripts/hU1zzvt8.chunk.js +2 -0
  303. package/dist/scripts/hU1zzvt8.chunk.js.map +1 -0
  304. package/dist/scripts/kFXLewpU.chunk.js +2 -0
  305. package/dist/scripts/kFXLewpU.chunk.js.map +1 -0
  306. package/dist/scripts/k_p1R4KR.chunk.js +2 -0
  307. package/dist/scripts/k_p1R4KR.chunk.js.map +1 -0
  308. package/dist/scripts/mqFCEyYv.chunk.js +2 -0
  309. package/dist/scripts/mqFCEyYv.chunk.js.map +1 -0
  310. package/dist/scripts/qwzILhQ0.chunk.js +8 -0
  311. package/dist/scripts/qwzILhQ0.chunk.js.map +1 -0
  312. package/dist/scripts/sFV5nxD4.chunk.js +2 -0
  313. package/dist/scripts/sFV5nxD4.chunk.js.map +1 -0
  314. package/dist/scripts/uBcZoYae.chunk.js +2 -0
  315. package/dist/scripts/uBcZoYae.chunk.js.map +1 -0
  316. package/dist/scripts/yaRKidLW.chunk.js +2 -0
  317. package/dist/scripts/yaRKidLW.chunk.js.map +1 -0
  318. package/dist/scripts/ysP6mL-L.chunk.js +2 -0
  319. package/dist/scripts/ysP6mL-L.chunk.js.map +1 -0
  320. package/package.json +5 -3
  321. package/typings/utils/imports.d.ts +1 -1
  322. package/vite.config.ts +6 -0
  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-cdae99d0ee.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/4582-reports-d3d5cc00db.chunk.css +0 -31
  331. package/dist/css/5304-reports-22c2d8d635.chunk.css +0 -9
  332. package/dist/css/6007-reports-5ba77c55a3.chunk.css +0 -8
  333. package/dist/css/6031-reports-d558076846.chunk.css +0 -6
  334. package/dist/css/6356-reports-8c5b220bf6.chunk.css +0 -1
  335. package/dist/css/6546-reports-f190450b10.chunk.css +0 -60
  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-019d93e620-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-d769572af9-reports.chunk.js +0 -1
  361. package/dist/scripts/2150-2cbadacf12-reports.chunk.js +0 -1
  362. package/dist/scripts/2217-eb2f8619c9-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-62d81c3442-reports.chunk.js +0 -1
  366. package/dist/scripts/312-8b006e92ff-reports.chunk.js +0 -1
  367. package/dist/scripts/4234-e3c04f41eb-reports.chunk.js +0 -1
  368. package/dist/scripts/4372-26474a3318-reports.chunk.js +0 -1
  369. package/dist/scripts/438-b444dfb8c6-reports.chunk.js +0 -1
  370. package/dist/scripts/4582-230f130f41-reports.chunk.js +0 -1
  371. package/dist/scripts/4752-db4247883d-reports.chunk.js +0 -2
  372. package/dist/scripts/4752-db4247883d-reports.chunk.js.LICENSE.txt +0 -118
  373. package/dist/scripts/4979-7e14b09f33-reports.chunk.js +0 -1
  374. package/dist/scripts/5051-72c53737e2-reports.chunk.js +0 -1
  375. package/dist/scripts/5091-ddd6f61b55-reports.chunk.js +0 -1
  376. package/dist/scripts/5173-cce3b37672-reports.chunk.js +0 -1
  377. package/dist/scripts/5177-a7372e7b8d-reports.chunk.js +0 -1
  378. package/dist/scripts/5304-d5674b32b4-reports.chunk.js +0 -1
  379. package/dist/scripts/5802-2125536755-reports.chunk.js +0 -1
  380. package/dist/scripts/6007-346d08e3ae-reports.chunk.js +0 -1
  381. package/dist/scripts/6031-b1c60cc409-reports.chunk.js +0 -1
  382. package/dist/scripts/6081-2bbda6cac3-reports.chunk.js +0 -1
  383. package/dist/scripts/6180-bdb237ffbe-reports.chunk.js +0 -2
  384. package/dist/scripts/6180-bdb237ffbe-reports.chunk.js.LICENSE.txt +0 -1
  385. package/dist/scripts/6198-189ddde870-reports.chunk.js +0 -1
  386. package/dist/scripts/6356-a1b313c73e-reports.chunk.js +0 -1
  387. package/dist/scripts/645-e72b3d845e-reports.chunk.js +0 -1
  388. package/dist/scripts/6545-f07bcd318a-reports.chunk.js +0 -1
  389. package/dist/scripts/6546-72384574e1-reports.chunk.js +0 -2
  390. package/dist/scripts/6546-72384574e1-reports.chunk.js.LICENSE.txt +0 -1
  391. package/dist/scripts/6811-add7c7c1a2-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-a4fcf6b02f-reports.chunk.js +0 -2
  397. package/dist/scripts/7747-a4fcf6b02f-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-686a7866e1-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-ca384ec4b0-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-379ea90dd3-reports.chunk.js +0 -1
  414. package/dist/scripts/9895-3b3feb12b9-reports.chunk.js +0 -1
  415. package/dist/scripts/9949-6b1d1f4d32-reports.chunk.js +0 -1
  416. package/dist/scripts/bundle-17c29f9bf9.min.js +0 -2
  417. package/dist/scripts/bundle-17c29f9bf9.min.js.LICENSE.txt +0 -108
  418. package/dist/scripts/polyfills-3db3f009d4.min.js +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AKgZQGT0.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 { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\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 const iconButton = (\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 />\n );\n\n return a.tooltip\n ? <Tooltip title={a.tooltip} spanHack>{iconButton}</Tooltip>\n : iconButton;\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","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{p,ar as m,n as y,j as s,w as h,L as g,T as x,a1 as a,as as v,Z as P,at as S,au as T,av as f,a0 as d}from"./app-5iiM5qQY.js";import{u as j}from"./BLuY6AYO.chunk.js";const n="reports.removeLogo",o=g.encloseNamespace(n);function L(e){const[i,r]=p.useState(!1),u=m(),c=j(),t=y();async function l(){r(!0);try{await u(v.removeLogo(e.customerId,e.logoId)),c.success(o(t?"successTertiary":"success")),P.logUserAction({id:e.logoId},{actionType:d.Remove,entity:f.Logo,workflowPhase:T.Complete,location:S.Popup}),e.closePopup()}catch{c.success(o(t?"errorTertiary":"error")),r(!1)}}return s.jsxs(h,{closePopup:e.closePopup,title:o(t?"removeSchoolCrestTertiary":"removeSchoolCrest"),children:[s.jsx("p",{children:s.jsx(x,{namespace:n,phrase:t?"areYouSureTertiary":"areYouSure"})}),s.jsxs(a,{children:[s.jsx(a.Cancel,{onClick:e.closePopup}),s.jsx(a.Submit,{onClick:l,text:o("remove"),showSpinner:i,variant:"danger"})]})]})}export{L as RemoveLogoView};
2
+ //# sourceMappingURL=ASoPpgM4.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ASoPpgM4.chunk.js","sources":["../../src/shared/views/remove-logo/RemoveLogoView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EntityType, LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { PopupViewProps } from 'libs/shared/interfaces';\n\nimport { LogoRequests } from 'shared/flight-requests/LogoRequests';\nimport { useIsTertiary } from 'shared/hooks/useIsTertiary';\n\nconst namespace = 'reports.removeLogo';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface RemoveLogoViewProps extends PopupViewProps {\n logoId: string;\n customerId: string;\n}\n\nexport function RemoveLogoView(props: RemoveLogoViewProps): JSX.Element {\n const [ showSpinner, setShowSpinner ] = React.useState(false);\n\n const fetchAsync = Flight.useGetFetchAsync();\n\n const alerts = useAlerts();\n const isTertiary = useIsTertiary();\n\n async function onClickRemove(): Promise<void> {\n setShowSpinner(true);\n\n try {\n await fetchAsync(LogoRequests.removeLogo(props.customerId, props.logoId));\n\n alerts.success(getPhrase(isTertiary ? 'successTertiary' : 'success'));\n\n AnalyticsHelper.logUserAction({\n id: props.logoId\n }, {\n actionType: UserAction.Remove,\n entity: EntityType.Logo,\n workflowPhase: WorkflowPhase.Complete,\n location: LocationContext.Popup\n });\n\n props.closePopup();\n } catch {\n alerts.success(getPhrase(isTertiary ? 'errorTertiary' : 'error'));\n setShowSpinner(false);\n }\n }\n\n return (\n <Popup\n closePopup={props.closePopup}\n title={isTertiary ? getPhrase('removeSchoolCrestTertiary') : getPhrase('removeSchoolCrest')}\n >\n <p><Text namespace={namespace} phrase={isTertiary ? 'areYouSureTertiary' : 'areYouSure'} /></p>\n\n <PopupButtons>\n <PopupButtons.Cancel onClick={props.closePopup} />\n <PopupButtons.Submit\n onClick={onClickRemove}\n text={getPhrase('remove')}\n showSpinner={showSpinner}\n variant='danger'\n />\n </PopupButtons>\n </Popup>\n );\n}"],"names":["namespace","getPhrase","LanguageService","RemoveLogoView","props","showSpinner","setShowSpinner","React","fetchAsync","Flight.useGetFetchAsync","alerts","useAlerts","isTertiary","useIsTertiary","onClickRemove","LogoRequests","AnalyticsHelper","UserAction","EntityType","WorkflowPhase","LocationContext","jsxs","Popup","jsx","Text","PopupButtons"],"mappings":"2KAiBA,MAAMA,EAAY,qBACZC,EAAYC,EAAgB,iBAAiBF,CAAS,EAOrD,SAASG,EAAeC,EAAyC,CACtE,KAAM,CAAEC,EAAaC,CAAe,EAAIC,EAAM,SAAS,EAAK,EAEtDC,EAAaC,EAAO,EAEpBC,EAASC,EAAA,EACTC,EAAaC,EAAA,EAEnB,eAAeC,GAA+B,CAC5CR,EAAe,EAAI,EAEnB,GAAI,CACF,MAAME,EAAWO,EAAa,WAAWX,EAAM,WAAYA,EAAM,MAAM,CAAC,EAExEM,EAAO,QAAQT,EAAUW,EAAa,kBAAoB,SAAS,CAAC,EAEpEI,EAAgB,cAAc,CAC5B,GAAIZ,EAAM,MAAA,EACT,CACD,WAAYa,EAAW,OACvB,OAAQC,EAAW,KACnB,cAAeC,EAAc,SAC7B,SAAUC,EAAgB,KAAA,CAC3B,EAEDhB,EAAM,WAAA,CACR,MAAQ,CACNM,EAAO,QAAQT,EAAUW,EAAa,gBAAkB,OAAO,CAAC,EAChEN,EAAe,EAAK,CACtB,CACF,CAEA,OACEe,EAAAA,KAACC,EAAA,CACC,WAAYlB,EAAM,WAClB,MAAoBH,EAAbW,EAAuB,4BAAyC,mBAAd,EAEzD,SAAA,CAAAW,EAAAA,IAAC,IAAA,CAAE,eAACC,EAAA,CAAK,UAAAxB,EAAsB,OAAQY,EAAa,qBAAuB,aAAc,CAAA,CAAE,SAE1Fa,EAAA,CACC,SAAA,CAAAF,EAAAA,IAACE,EAAa,OAAb,CAAoB,QAASrB,EAAM,WAAY,EAChDmB,EAAAA,IAACE,EAAa,OAAb,CACC,QAASX,EACT,KAAMb,EAAU,QAAQ,EACxB,YAAAI,EACA,QAAQ,QAAA,CAAA,CACV,CAAA,CACF,CAAA,CAAA,CAAA,CAGN"}
@@ -0,0 +1,6 @@
1
+ import{s as at,aw as Ir,p as I,ax as Ar,L as D,b as Fr,P as Tr,ay as Dr,az as Pr,aA as Rt,aB as _t,j as n,a2 as Or,a1 as Z,aC as Ne,aD as _r,r as p,aE as g,T as A,h as J,a4 as kr,aa as Cr,aF as rr,aG as nr,v as ar,ac as Lr,ar as Ur,u as de,am as Nr,U as kt,aH as it,aI as Mr,aJ as $r,aK as qr,w as Vr,aL as Br,Z as Me,au as Ct,at as st,av as ot,a0 as ct,aM as zr,aN as Hr,aO as Gr}from"./app-5iiM5qQY.js";import{u as Kr,a as Wr}from"./BLuY6AYO.chunk.js";import{P as Be,L as Yr,C as Qr}from"./DyaAoFDP.chunk.js";import{u as Zr}from"./CbBaa9Aj.chunk.js";import{u as X,l as F,a as S,T as ir,I as sr,F as Jr}from"./C0nQ0Xnx.chunk.js";import{F as Xr,a as en}from"./DMd0fZar.chunk.js";import"./C6UUJ8P5.chunk.js";import"./CsP3Lruv.chunk.js";import"./CW7x8M-z.chunk.js";var Y=(e=>(e[e.Other=0]="Other",e[e.SuggestImprovement=1]="SuggestImprovement",e[e.ReportBug=2]="ReportBug",e[e.RequestVideo=3]="RequestVideo",e[e.RaiseIssue=4]="RaiseIssue",e[e.GivePraise=5]="GivePraise",e[e.Footer=6]="Footer",e[e.RequestLivestream=7]="RequestLivestream",e))(Y||{});const tn={presentationAudiences(e,t){const r=t||Be.Subject.toLowerCase(),a={type:r,presentationId:e};return{bootstrapName:"presentationAudiences",url:at.urlBuilder("{gateway}/v1/users/me/audiences",a),publicUrl:at.urlBuilder(`/api/subjects/presentation/${e}/audiences`,a),key:`presentation:audiences:${e}:${r}`,normalize:!1}},audiencesByPresentationId(e){return{url:`{gateway}/v1/subjects/presentations/${e}/audiences`,publicUrl:at.urlBuilder(`/api/subjects/presentation/${e}/audiences`,{type:Be.Subject.toLowerCase(),presentationId:e}),key:`presentation:${e}:audiences`,normalize:!1}}},rn={submitFeedback(e,t){return{url:"{gateway}/v1/feedback",key:"submit:feedback",type:Ir.POST,data:{...e,...t}}}};function nn(e,t,r=[]){var s;const[,a]=I.useState(!1);return I.useEffect(()=>{const i=e();if(i)return i.off("add remove change"),i.on("add remove change",()=>{a(o=>!o)}),()=>{i.off("add remove change")}},r),(s=e())==null?void 0:s.toJSON()}const an="shared.studentRestrictedDialogError",lt=D.encloseNamespace(an);class sn extends Ar{constructor(){super("Learner accessing feature that is for staff only")}get name(){return"StudentRestrictedDialogError"}get dialogOptions(){return{title:lt("heading"),text:lt("description"),buttons:[{text:lt("close"),className:"btn btn-link",close:!0}]}}}function on(){const{hasPermissions:e,isLoaded:t}=Fr();I.useEffect(()=>{if(!t||!e(Tr.StudentExperience))return;const r=new sn;Dr.logError(r),Pr.throw(r)},[t])}var me=(e=>(e.AU="au",e.NZ="nz",e.UK="uk",e.US="us",e.CA="ca",e))(me||{});const cn={[me.AU]:"au",[me.NZ]:"nz",[me.UK]:"uk",[me.US]:"us",[me.CA]:"ca"},Ve={getUserInfo:(e,t)=>({id:e.id,username:e.username,email:e.email,userType:e.role===_t.Admin?"Admin":"Staff",customerId:e.customerId,cvcId:t.crmId,customerName:t.name,instanceRegion:e.instanceRegion,contentRegion:e.contentRegion,firstName:e.givenName,lastName:e.familyName}),mapCountryCodeToTag:e=>cn[e.toLowerCase()],getTags:(e,t,r,a)=>{const s=[t,...a];s.push(r?"student":"staff"),e.role===_t.Admin&&s.push("administrator");const i=Ve.mapCountryCodeToTag(e.countryCode);return i&&s.push(i),s},categorizeFiles(e){return e.reduce((t,r)=>{const a=r.get("fileInfo");return(void 0)(r.get("file"),Rt.VIDEO)||t.imageUrls.push(a==null?void 0:a.url),t},{imageUrls:[],videoUrls:[]})}};var f=(e=>(e.SUGGEST_IMPROVEMENT="suggestImprovement",e.REPORT_BUG="reportBug",e.REQUEST_VIDEO="requestVideo",e.REQUEST_LIVESTREAM="requestLivestream",e.GIVE_PRAISE="givePraise",e.RAISE_ISSUE="raiseIssue",e.OTHER="other",e))(f||{});const ln="shared.feedbackFormTitles",ne=D.encloseNamespace(ln),ze=e=>{switch(e){case f.SUGGEST_IMPROVEMENT:return ne(e);case f.REPORT_BUG:return ne(e);case f.REQUEST_VIDEO:return ne(e);case f.REQUEST_LIVESTREAM:return ne(e);case f.GIVE_PRAISE:return ne(e);case f.RAISE_ISSUE:return ne(e);case f.OTHER:return ne(e)}},ve={mailSent:"https://img.clickviewapp.com/v2/images/2mZ7L9",mediaPreview:"https://img.clickviewapp.com/v2/images/ageRM0",lightBulb:"https://img.clickviewapp.com/v2/images/Oqg3JN",heartHands:"https://img.clickviewapp.com/v2/images/1ML8Oj",videoAlert:"https://img.clickviewapp.com/v2/images/dq2oMq",[f.REQUEST_VIDEO]:{default:"https://img.clickviewapp.com/v2/images/G1YGdn",hover:"https://img.clickviewapp.com/v2/images/K6yPxz"},[f.REQUEST_LIVESTREAM]:{default:"https://img.clickviewapp.com/v2/images/G1YGdn",hover:"https://img.clickviewapp.com/v2/images/K6yPxz"},[f.SUGGEST_IMPROVEMENT]:{default:"https://img.clickviewapp.com/v2/images/g7aR1l",hover:"https://img.clickviewapp.com/v2/images/zMR0Dk"},[f.RAISE_ISSUE]:{default:"https://img.clickviewapp.com/v2/images/5boW78",hover:"https://img.clickviewapp.com/v2/images/m6yRKr"},[f.GIVE_PRAISE]:{default:"https://img.clickviewapp.com/v2/images/nE1mdz",hover:"https://img.clickviewapp.com/v2/images/JjEnmR"},[f.REPORT_BUG]:{default:"https://img.clickviewapp.com/v2/images/AOdYpo",hover:"https://img.clickviewapp.com/v2/images/yro9NM"},[f.OTHER]:{default:"https://img.clickviewapp.com/v2/images/Eoaykj",hover:"https://img.clickviewapp.com/v2/images/wN59Zg"}},un="_image_1gpfb_1",dn={image:un};function fn(e){const[t,r]=Zr(),a=ve[e.option];return n.jsx(Or,{ref:t,className:"col-lg-4 col-sm-6 col-12",onClick:()=>e.onSelectOption(e.option),children:n.jsxs("div",{className:"d-flex flex-column align-items-center h-100 rounded border py-3 gap-2",children:[n.jsx("img",{className:dn.image,src:r?a.hover:a.default,alt:ze(e.option)}),n.jsx("p",{className:"fw-semibold text-center mb-0",children:ze(e.option)})]})})}function mn(e){return n.jsx("div",{className:"row g-2",children:e.options.map(t=>n.jsx(fn,{option:t,onSelectOption:e.onSelectOption},t))})}const pn="shared.feedbackButtons",ut=D.encloseNamespace(pn);function gn(e){const t=X();return n.jsxs(Z,{children:[e.formStage==="form"&&n.jsxs(n.Fragment,{children:[!e.hideCancelButton&&n.jsx(Z.Cancel,{onClick:()=>e.setSelectedOption(null),text:ut("cancel")}),n.jsx(Z.Submit,{variant:"dark",text:e.submitText||ut("submit"),disabled:!t.isValid})]}),e.formStage==="success"&&n.jsx(Z.Cancel,{variant:"dark",text:ut("close"),onClick:e.closePopup})]})}const vn="_successImage_3sso6_1",hn={successImage:vn},bn="shared.feedbackFormState",Lt=D.encloseNamespace(bn);function xn(e){return e.formStage==="form"?n.jsx(n.Fragment,{}):e.formStage==="error"?n.jsx(n.Fragment,{}):n.jsxs("div",{className:"text-center",children:[n.jsx("div",{className:"mb-3",children:n.jsx("img",{className:hn.successImage,src:e.successImageUrl||ve.mailSent})}),n.jsx("h4",{className:"mb-3",children:e.successHeading||Lt("successHeading")}),n.jsx("p",{className:"mb-3",children:e.successDescription||Lt("successDescription")})]})}const En="shared.feedbackForm",dt=D.encloseNamespace(En),or=10,Ye=5e3,z=e=>{switch(e){case"requiredError":return dt(e);case"minCharactersError":return dt(e,{limit:or});case"maxCharactersError":return dt("maxCharactersError",{limit:Ye})}},H=()=>F.string().min(or,z("minCharactersError")).max(Ye,z("maxCharactersError")),yn="shared.feedbackGivePraise",He=D.encloseNamespace(yn),Sn={praise:""},jn=F.object().shape({praise:H().required(z("requiredError"))}).noUnknown();function Rn(){const e=X();return n.jsx(n.Fragment,{children:n.jsx(S,{as:"textarea",placeholder:He("givePraisePlaceholder"),label:He("givePraiseLabel"),name:"praise",rows:5,value:e.values.praise,showRequiredStar:!0})})}function wn(e){return n.jsx(ie,{...e,initialValues:{...Sn,...e.initialValues},validationSchema:jn,successImageUrl:ve.heartHands,successHeading:He("successHeading"),successDescription:He("successDescription"),children:n.jsx(Rn,{})})}const In="shared.feedbackOther",Ut=D.encloseNamespace(In),An={feedback:""},Fn=F.object().shape({feedback:H().required(z("requiredError"))}).noUnknown();function Tn(){const e=X();return n.jsx(n.Fragment,{children:n.jsx(S,{as:"textarea",placeholder:Ut("otherPlaceholder"),label:Ut("otherLabel"),name:"feedback",rows:5,value:e.values.feedback,showRequiredStar:!0})})}function Dn(e){return n.jsx(ie,{...e,initialValues:{...An,...e.initialValues},validationSchema:Fn,children:n.jsx(Tn,{})})}const Pn="shared.feedbackRaiseIssue",Nt=D.encloseNamespace(Pn),On={issue:""},_n=F.object().shape({issue:H().required(z("requiredError"))}).noUnknown();function kn(){const e=X();return n.jsx(n.Fragment,{children:n.jsx(S,{as:"textarea",placeholder:Nt("raiseIssuePlaceholder"),label:Nt("raiseIssueLabel"),name:"issue",rows:5,value:e.values.issue,showRequiredStar:!0})})}function Cn(e){return n.jsx(ie,{...e,initialValues:{...On,...e.initialValues},validationSchema:_n,children:n.jsx(kn,{})})}const ft={[Ne.AU]:{phone:"02 9509 2600",email:"support@clickview.com.au",website:"https://www.clickviewsupport.com/hc"},[Ne.UK]:{phone:"+44 (0)333 207 6595",email:"info@clickview.co.uk",website:"https://www.clickviewsupport.com/hc"},[Ne.NZ]:{phone:"09 916 1156",email:"support@clickview.co.nz",website:"https://www.clickviewsupport.com/hc"},[Ne.US]:{phone:"+1 312-292-9322",email:"info@clickvieweducation.com",website:"https://www.clickviewsupport.com/hc"}};function Ln(e){return n.jsx("svg",{...e,children:n.jsx("path",{fill:"currentColor",d:"M4 6.462C4 6.207 4.21 6 4.47 6h15.06c.26 0 .47.207.47.462v10.892a.653.653 0 0 1-.659.646H4.66A.653.653 0 0 1 4 17.354zm1.723.461 5.967 5.12a.48.48 0 0 0 .62 0l5.967-5.12zm13.336.556-6.13 5.26a1.43 1.43 0 0 1-1.859 0l-6.129-5.26v9.598H19.06z"})})}function Un(e){return n.jsx("svg",{...e,children:n.jsx("path",{fill:"currentColor",d:"M15.928 20c1.348 0 2.33-.38 3.185-1.297.051-.057.097-.114.139-.161.505-.547.742-1.102.742-1.62 0-.545-.3-1.057-.941-1.492l-2.444-1.687c-.695-.477-1.51-.553-2.247.163l-.61.605c-.189.189-.387.218-.615.09-.417-.249-1.35-1.014-2.067-1.727-.785-.78-1.34-1.42-1.678-2.01-.127-.23-.098-.427.09-.616l.612-.616c.716-.726.64-1.552.157-2.243L8.575 4.952c-.446-.646-.953-.94-1.503-.952-.512-.01-1.071.242-1.614.742-.057.052-.104.098-.157.145C4.39 5.727 4 6.714 4 8.047c0 2.358 1.53 5.21 4.143 7.815C10.736 18.45 13.569 20 15.928 20m.006-1.018c-2.146.023-4.837-1.6-7.046-3.81-2.226-2.214-3.9-4.976-3.87-7.127.013-.942.335-1.764 1.014-2.39l.13-.112c.306-.282.63-.432.897-.432.266 0 .495.124.674.394l1.635 2.44c.209.307.247.66-.107 1.002l-.693.689c-.5.5-.484 1.153-.135 1.66.403.593 1.182 1.497 1.95 2.262.765.775 1.733 1.605 2.321 2.009.512.348 1.16.364 1.659-.141l.684-.694c.348-.342.7-.309 1.014-.1l2.433 1.635c.276.18.389.402.389.668 0 .283-.14.597-.437.908a1 1 0 0 1-.102.12c-.63.689-1.462 1.006-2.41 1.018"})})}function he(e,t,r,a){function s(i){return i instanceof r?i:new r(function(o){o(i)})}return new(r||(r=Promise))(function(i,o){function l(v){try{u(a.next(v))}catch(j){o(j)}}function m(v){try{u(a.throw(v))}catch(j){o(j)}}function u(v){v.done?i(v.value):s(v.value).then(l,m)}u((a=a.apply(e,t||[])).next())})}function be(e,t){var r={label:0,sent:function(){if(i[0]&1)throw i[1];return i[1]},trys:[],ops:[]},a,s,i,o=Object.create((typeof Iterator=="function"?Iterator:Object).prototype);return o.next=l(0),o.throw=l(1),o.return=l(2),typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function l(u){return function(v){return m([u,v])}}function m(u){if(a)throw new TypeError("Generator is already executing.");for(;o&&(o=0,u[0]&&(r=0)),r;)try{if(a=1,s&&(i=u[0]&2?s.return:u[0]?s.throw||((i=s.return)&&i.call(s),0):s.next)&&!(i=i.call(s,u[1])).done)return i;switch(s=0,i&&(u=[u[0]&2,i.value]),u[0]){case 0:case 1:i=u;break;case 4:return r.label++,{value:u[1],done:!1};case 5:r.label++,s=u[1],u=[0];continue;case 7:u=r.ops.pop(),r.trys.pop();continue;default:if(i=r.trys,!(i=i.length>0&&i[i.length-1])&&(u[0]===6||u[0]===2)){r=0;continue}if(u[0]===3&&(!i||u[1]>i[0]&&u[1]<i[3])){r.label=u[1];break}if(u[0]===6&&r.label<i[1]){r.label=i[1],i=u;break}if(i&&r.label<i[2]){r.label=i[2],r.ops.push(u);break}i[2]&&r.ops.pop(),r.trys.pop();continue}u=t.call(e,r)}catch(v){u=[6,v],s=0}finally{a=i=0}if(u[0]&5)throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}function Mt(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var a=r.call(e),s,i=[],o;try{for(;(t===void 0||t-- >0)&&!(s=a.next()).done;)i.push(s.value)}catch(l){o={error:l}}finally{try{s&&!s.done&&(r=a.return)&&r.call(a)}finally{if(o)throw o.error}}return i}function $t(e,t,r){if(r||arguments.length===2)for(var a=0,s=t.length,i;a<s;a++)(i||!(a in t))&&(i||(i=Array.prototype.slice.call(t,0,a)),i[a]=t[a]);return e.concat(i||Array.prototype.slice.call(t))}var Nn=new Map([["aac","audio/aac"],["abw","application/x-abiword"],["arc","application/x-freearc"],["avif","image/avif"],["avi","video/x-msvideo"],["azw","application/vnd.amazon.ebook"],["bin","application/octet-stream"],["bmp","image/bmp"],["bz","application/x-bzip"],["bz2","application/x-bzip2"],["cda","application/x-cdf"],["csh","application/x-csh"],["css","text/css"],["csv","text/csv"],["doc","application/msword"],["docx","application/vnd.openxmlformats-officedocument.wordprocessingml.document"],["eot","application/vnd.ms-fontobject"],["epub","application/epub+zip"],["gz","application/gzip"],["gif","image/gif"],["heic","image/heic"],["heif","image/heif"],["htm","text/html"],["html","text/html"],["ico","image/vnd.microsoft.icon"],["ics","text/calendar"],["jar","application/java-archive"],["jpeg","image/jpeg"],["jpg","image/jpeg"],["js","text/javascript"],["json","application/json"],["jsonld","application/ld+json"],["mid","audio/midi"],["midi","audio/midi"],["mjs","text/javascript"],["mp3","audio/mpeg"],["mp4","video/mp4"],["mpeg","video/mpeg"],["mpkg","application/vnd.apple.installer+xml"],["odp","application/vnd.oasis.opendocument.presentation"],["ods","application/vnd.oasis.opendocument.spreadsheet"],["odt","application/vnd.oasis.opendocument.text"],["oga","audio/ogg"],["ogv","video/ogg"],["ogx","application/ogg"],["opus","audio/opus"],["otf","font/otf"],["png","image/png"],["pdf","application/pdf"],["php","application/x-httpd-php"],["ppt","application/vnd.ms-powerpoint"],["pptx","application/vnd.openxmlformats-officedocument.presentationml.presentation"],["rar","application/vnd.rar"],["rtf","application/rtf"],["sh","application/x-sh"],["svg","image/svg+xml"],["swf","application/x-shockwave-flash"],["tar","application/x-tar"],["tif","image/tiff"],["tiff","image/tiff"],["ts","video/mp2t"],["ttf","font/ttf"],["txt","text/plain"],["vsd","application/vnd.visio"],["wav","audio/wav"],["weba","audio/webm"],["webm","video/webm"],["webp","image/webp"],["woff","font/woff"],["woff2","font/woff2"],["xhtml","application/xhtml+xml"],["xls","application/vnd.ms-excel"],["xlsx","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"],["xml","application/xml"],["xul","application/vnd.mozilla.xul+xml"],["zip","application/zip"],["7z","application/x-7z-compressed"],["mkv","video/x-matroska"],["mov","video/quicktime"],["msg","application/vnd.ms-outlook"]]);function Fe(e,t){var r=Mn(e);if(typeof r.path!="string"){var a=e.webkitRelativePath;Object.defineProperty(r,"path",{value:typeof t=="string"?t:typeof a=="string"&&a.length>0?a:e.name,writable:!1,configurable:!1,enumerable:!0})}return r}function Mn(e){var t=e.name,r=t&&t.lastIndexOf(".")!==-1;if(r&&!e.type){var a=t.split(".").pop().toLowerCase(),s=Nn.get(a);s&&Object.defineProperty(e,"type",{value:s,writable:!1,configurable:!1,enumerable:!0})}return e}var $n=[".DS_Store","Thumbs.db"];function qn(e){return he(this,void 0,void 0,function(){return be(this,function(t){return Ge(e)&&Vn(e.dataTransfer)?[2,Gn(e.dataTransfer,e.type)]:Bn(e)?[2,zn(e)]:Array.isArray(e)&&e.every(function(r){return"getFile"in r&&typeof r.getFile=="function"})?[2,Hn(e)]:[2,[]]})})}function Vn(e){return Ge(e)}function Bn(e){return Ge(e)&&Ge(e.target)}function Ge(e){return typeof e=="object"&&e!==null}function zn(e){return vt(e.target.files).map(function(t){return Fe(t)})}function Hn(e){return he(this,void 0,void 0,function(){var t;return be(this,function(r){switch(r.label){case 0:return[4,Promise.all(e.map(function(a){return a.getFile()}))];case 1:return t=r.sent(),[2,t.map(function(a){return Fe(a)})]}})})}function Gn(e,t){return he(this,void 0,void 0,function(){var r,a;return be(this,function(s){switch(s.label){case 0:return e.items?(r=vt(e.items).filter(function(i){return i.kind==="file"}),t!=="drop"?[2,r]:[4,Promise.all(r.map(Kn))]):[3,2];case 1:return a=s.sent(),[2,qt(cr(a))];case 2:return[2,qt(vt(e.files).map(function(i){return Fe(i)}))]}})})}function qt(e){return e.filter(function(t){return $n.indexOf(t.name)===-1})}function vt(e){if(e===null)return[];for(var t=[],r=0;r<e.length;r++){var a=e[r];t.push(a)}return t}function Kn(e){if(typeof e.webkitGetAsEntry!="function")return Vt(e);var t=e.webkitGetAsEntry();return t&&t.isDirectory?lr(t):Vt(e)}function cr(e){return e.reduce(function(t,r){return $t($t([],Mt(t),!1),Mt(Array.isArray(r)?cr(r):[r]),!1)},[])}function Vt(e){var t=e.getAsFile();if(!t)return Promise.reject("".concat(e," is not a File"));var r=Fe(t);return Promise.resolve(r)}function Wn(e){return he(this,void 0,void 0,function(){return be(this,function(t){return[2,e.isDirectory?lr(e):Yn(e)]})})}function lr(e){var t=e.createReader();return new Promise(function(r,a){var s=[];function i(){var o=this;t.readEntries(function(l){return he(o,void 0,void 0,function(){var m,u,v;return be(this,function(j){switch(j.label){case 0:if(l.length)return[3,5];j.label=1;case 1:return j.trys.push([1,3,,4]),[4,Promise.all(s)];case 2:return m=j.sent(),r(m),[3,4];case 3:return u=j.sent(),a(u),[3,4];case 4:return[3,6];case 5:v=Promise.all(l.map(Wn)),s.push(v),i(),j.label=6;case 6:return[2]}})})},function(l){a(l)})}i()})}function Yn(e){return he(this,void 0,void 0,function(){return be(this,function(t){return[2,new Promise(function(r,a){e.file(function(s){var i=Fe(s,e.fullPath);r(i)},function(s){a(s)})})]})})}var $e={},Bt;function Qn(){return Bt||(Bt=1,$e.__esModule=!0,$e.default=function(e,t){if(e&&t){var r=Array.isArray(t)?t:t.split(",");if(r.length===0)return!0;var a=e.name||"",s=(e.type||"").toLowerCase(),i=s.replace(/\/.*$/,"");return r.some(function(o){var l=o.trim().toLowerCase();return l.charAt(0)==="."?a.toLowerCase().endsWith(l):l.endsWith("/*")?i===l.replace(/\/.*$/,""):s===l})}return!0}),$e}var Zn=Qn();const Jn=_r(Zn);function zt(e){return ta(e)||ea(e)||dr(e)||Xn()}function Xn(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
2
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ea(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function ta(e){if(Array.isArray(e))return ht(e)}function Ht(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),r.push.apply(r,a)}return r}function Gt(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Ht(Object(r),!0).forEach(function(a){ur(e,a,r[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ht(Object(r)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(r,a))})}return e}function ur(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Ae(e,t){return aa(e)||na(e,t)||dr(e,t)||ra()}function ra(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
3
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function dr(e,t){if(e){if(typeof e=="string")return ht(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return ht(e,t)}}function ht(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,a=new Array(t);r<t;r++)a[r]=e[r];return a}function na(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var a=[],s=!0,i=!1,o,l;try{for(r=r.call(e);!(s=(o=r.next()).done)&&(a.push(o.value),!(t&&a.length===t));s=!0);}catch(m){i=!0,l=m}finally{try{!s&&r.return!=null&&r.return()}finally{if(i)throw l}}return a}}function aa(e){if(Array.isArray(e))return e}var ia="file-invalid-type",sa="file-too-large",oa="file-too-small",ca="too-many-files",la=function(t){t=Array.isArray(t)&&t.length===1?t[0]:t;var r=Array.isArray(t)?"one of ".concat(t.join(", ")):t;return{code:ia,message:"File type must be ".concat(r)}},Kt=function(t){return{code:sa,message:"File is larger than ".concat(t," ").concat(t===1?"byte":"bytes")}},Wt=function(t){return{code:oa,message:"File is smaller than ".concat(t," ").concat(t===1?"byte":"bytes")}},ua={code:ca,message:"Too many files"};function fr(e,t){var r=e.type==="application/x-moz-file"||Jn(e,t);return[r,r?null:la(t)]}function mr(e,t,r){if(ae(e.size))if(ae(t)&&ae(r)){if(e.size>r)return[!1,Kt(r)];if(e.size<t)return[!1,Wt(t)]}else{if(ae(t)&&e.size<t)return[!1,Wt(t)];if(ae(r)&&e.size>r)return[!1,Kt(r)]}return[!0,null]}function ae(e){return e!=null}function da(e){var t=e.files,r=e.accept,a=e.minSize,s=e.maxSize,i=e.multiple,o=e.maxFiles,l=e.validator;return!i&&t.length>1||i&&o>=1&&t.length>o?!1:t.every(function(m){var u=fr(m,r),v=Ae(u,1),j=v[0],k=mr(m,a,s),G=Ae(k,1),K=G[0],$=l?l(m):null;return j&&K&&!$})}function Ke(e){return typeof e.isPropagationStopped=="function"?e.isPropagationStopped():typeof e.cancelBubble<"u"?e.cancelBubble:!1}function qe(e){return e.dataTransfer?Array.prototype.some.call(e.dataTransfer.types,function(t){return t==="Files"||t==="application/x-moz-file"}):!!e.target&&!!e.target.files}function Yt(e){e.preventDefault()}function fa(e){return e.indexOf("MSIE")!==-1||e.indexOf("Trident/")!==-1}function ma(e){return e.indexOf("Edge/")!==-1}function pa(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:window.navigator.userAgent;return fa(e)||ma(e)}function M(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return function(a){for(var s=arguments.length,i=new Array(s>1?s-1:0),o=1;o<s;o++)i[o-1]=arguments[o];return t.some(function(l){return!Ke(a)&&l&&l.apply(void 0,[a].concat(i)),Ke(a)})}}function ga(){return"showOpenFilePicker"in window}function va(e){if(ae(e)){var t=Object.entries(e).filter(function(r){var a=Ae(r,2),s=a[0],i=a[1],o=!0;return pr(s)||(console.warn('Skipped "'.concat(s,'" because it is not a valid MIME type. Check https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types for a list of valid MIME types.')),o=!1),(!Array.isArray(i)||!i.every(gr))&&(console.warn('Skipped "'.concat(s,'" because an invalid file extension was provided.')),o=!1),o}).reduce(function(r,a){var s=Ae(a,2),i=s[0],o=s[1];return Gt(Gt({},r),{},ur({},i,o))},{});return[{description:"Files",accept:t}]}return e}function ha(e){if(ae(e))return Object.entries(e).reduce(function(t,r){var a=Ae(r,2),s=a[0],i=a[1];return[].concat(zt(t),[s],zt(i))},[]).filter(function(t){return pr(t)||gr(t)}).join(",")}function ba(e){return e instanceof DOMException&&(e.name==="AbortError"||e.code===e.ABORT_ERR)}function xa(e){return e instanceof DOMException&&(e.name==="SecurityError"||e.code===e.SECURITY_ERR)}function pr(e){return e==="audio/*"||e==="video/*"||e==="image/*"||e==="text/*"||/\w+\/[-+.\w]+/g.test(e)}function gr(e){return/^.*\.[\w]+$/.test(e)}var Ea=["children"],ya=["open"],Sa=["refKey","role","onKeyDown","onFocus","onBlur","onClick","onDragEnter","onDragOver","onDragLeave","onDrop"],ja=["refKey","onChange","onClick"];function Ra(e){return Aa(e)||Ia(e)||vr(e)||wa()}function wa(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
4
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Ia(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function Aa(e){if(Array.isArray(e))return bt(e)}function mt(e,t){return Da(e)||Ta(e,t)||vr(e,t)||Fa()}function Fa(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
5
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function vr(e,t){if(e){if(typeof e=="string")return bt(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return bt(e,t)}}function bt(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,a=new Array(t);r<t;r++)a[r]=e[r];return a}function Ta(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var a=[],s=!0,i=!1,o,l;try{for(r=r.call(e);!(s=(o=r.next()).done)&&(a.push(o.value),!(t&&a.length===t));s=!0);}catch(m){i=!0,l=m}finally{try{!s&&r.return!=null&&r.return()}finally{if(i)throw l}}return a}}function Da(e){if(Array.isArray(e))return e}function Qt(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),r.push.apply(r,a)}return r}function x(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Qt(Object(r),!0).forEach(function(a){xt(e,a,r[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Qt(Object(r)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(r,a))})}return e}function xt(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function We(e,t){if(e==null)return{};var r=Pa(e,t),a,s;if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(s=0;s<i.length;s++)a=i[s],!(t.indexOf(a)>=0)&&Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}function Pa(e,t){if(e==null)return{};var r={},a=Object.keys(e),s,i;for(i=0;i<a.length;i++)s=a[i],!(t.indexOf(s)>=0)&&(r[s]=e[s]);return r}var wt=p.forwardRef(function(e,t){var r=e.children,a=We(e,Ea),s=br(a),i=s.open,o=We(s,ya);return p.useImperativeHandle(t,function(){return{open:i}},[i]),I.createElement(p.Fragment,null,r(x(x({},o),{},{open:i})))});wt.displayName="Dropzone";var hr={disabled:!1,getFilesFromEvent:qn,maxSize:1/0,minSize:0,multiple:!0,maxFiles:0,preventDropOnDocument:!0,noClick:!1,noKeyboard:!1,noDrag:!1,noDragEventsBubbling:!1,validator:null,useFsAccessApi:!0,autoFocus:!1};wt.defaultProps=hr;wt.propTypes={children:g.func,accept:g.objectOf(g.arrayOf(g.string)),multiple:g.bool,preventDropOnDocument:g.bool,noClick:g.bool,noKeyboard:g.bool,noDrag:g.bool,noDragEventsBubbling:g.bool,minSize:g.number,maxSize:g.number,maxFiles:g.number,disabled:g.bool,getFilesFromEvent:g.func,onFileDialogCancel:g.func,onFileDialogOpen:g.func,useFsAccessApi:g.bool,autoFocus:g.bool,onDragEnter:g.func,onDragLeave:g.func,onDragOver:g.func,onDrop:g.func,onDropAccepted:g.func,onDropRejected:g.func,onError:g.func,validator:g.func};var Et={isFocused:!1,isFileDialogActive:!1,isDragActive:!1,isDragAccept:!1,isDragReject:!1,acceptedFiles:[],fileRejections:[]};function br(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=x(x({},hr),e),r=t.accept,a=t.disabled,s=t.getFilesFromEvent,i=t.maxSize,o=t.minSize,l=t.multiple,m=t.maxFiles,u=t.onDragEnter,v=t.onDragLeave,j=t.onDragOver,k=t.onDrop,G=t.onDropAccepted,K=t.onDropRejected,$=t.onFileDialogCancel,W=t.onFileDialogOpen,se=t.useFsAccessApi,xe=t.autoFocus,Ee=t.preventDropOnDocument,ee=t.noClick,oe=t.noKeyboard,Te=t.noDrag,q=t.noDragEventsBubbling,De=t.onError,C=t.validator,te=p.useMemo(function(){return ha(r)},[r]),Pe=p.useMemo(function(){return va(r)},[r]),ye=p.useMemo(function(){return typeof W=="function"?W:Zt},[W]),re=p.useMemo(function(){return typeof $=="function"?$:Zt},[$]),R=p.useRef(null),T=p.useRef(null),Oe=p.useReducer(Oa,Et),Se=mt(Oe,2),h=Se[0],E=Se[1],P=h.isFocused,L=h.isFileDialogActive,U=p.useRef(typeof window<"u"&&window.isSecureContext&&se&&ga()),V=function(){!U.current&&L&&setTimeout(function(){if(T.current){var d=T.current.files;d.length||(E({type:"closeDialog"}),re())}},300)};p.useEffect(function(){return window.addEventListener("focus",V,!1),function(){window.removeEventListener("focus",V,!1)}},[T,L,re,U]);var _=p.useRef([]),je=function(d){R.current&&R.current.contains(d.target)||(d.preventDefault(),_.current=[])};p.useEffect(function(){return Ee&&(document.addEventListener("dragover",Yt,!1),document.addEventListener("drop",je,!1)),function(){Ee&&(document.removeEventListener("dragover",Yt),document.removeEventListener("drop",je))}},[R,Ee]),p.useEffect(function(){return!a&&xe&&R.current&&R.current.focus(),function(){}},[R,xe,a]);var N=p.useCallback(function(c){De?De(c):console.error(c)},[De]),Re=p.useCallback(function(c){c.preventDefault(),c.persist(),Le(c),_.current=[].concat(Ra(_.current),[c.target]),qe(c)&&Promise.resolve(s(c)).then(function(d){if(!(Ke(c)&&!q)){var y=d.length,w=y>0&&da({files:d,accept:te,minSize:o,maxSize:i,multiple:l,maxFiles:m,validator:C}),O=y>0&&!w;E({isDragAccept:w,isDragReject:O,isDragActive:!0,type:"setDraggedFiles"}),u&&u(c)}}).catch(function(d){return N(d)})},[s,u,N,q,te,o,i,l,m,C]),At=p.useCallback(function(c){c.preventDefault(),c.persist(),Le(c);var d=qe(c);if(d&&c.dataTransfer)try{c.dataTransfer.dropEffect="copy"}catch{}return d&&j&&j(c),!1},[j,q]),Ft=p.useCallback(function(c){c.preventDefault(),c.persist(),Le(c);var d=_.current.filter(function(w){return R.current&&R.current.contains(w)}),y=d.indexOf(c.target);y!==-1&&d.splice(y,1),_.current=d,!(d.length>0)&&(E({type:"setDraggedFiles",isDragActive:!1,isDragAccept:!1,isDragReject:!1}),qe(c)&&v&&v(c))},[R,v,q]),_e=p.useCallback(function(c,d){var y=[],w=[];c.forEach(function(O){var we=fr(O,te),ue=mt(we,2),Ze=ue[0],Je=ue[1],Xe=mr(O,o,i),Ue=mt(Xe,2),et=Ue[0],tt=Ue[1],rt=C?C(O):null;if(Ze&&et&&!rt)y.push(O);else{var nt=[Je,tt];rt&&(nt=nt.concat(rt)),w.push({file:O,errors:nt.filter(function(wr){return wr})})}}),(!l&&y.length>1||l&&m>=1&&y.length>m)&&(y.forEach(function(O){w.push({file:O,errors:[ua]})}),y.splice(0)),E({acceptedFiles:y,fileRejections:w,type:"setFiles"}),k&&k(y,w,d),w.length>0&&K&&K(w,d),y.length>0&&G&&G(y,d)},[E,l,te,o,i,m,k,G,K,C]),ke=p.useCallback(function(c){c.preventDefault(),c.persist(),Le(c),_.current=[],qe(c)&&Promise.resolve(s(c)).then(function(d){Ke(c)&&!q||_e(d,c)}).catch(function(d){return N(d)}),E({type:"reset"})},[s,_e,N,q]),ce=p.useCallback(function(){if(U.current){E({type:"openDialog"}),ye();var c={multiple:l,types:Pe};window.showOpenFilePicker(c).then(function(d){return s(d)}).then(function(d){_e(d,null),E({type:"closeDialog"})}).catch(function(d){ba(d)?(re(d),E({type:"closeDialog"})):xa(d)?(U.current=!1,T.current?(T.current.value=null,T.current.click()):N(new Error("Cannot open the file picker because the https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API is not supported and no <input> was provided."))):N(d)});return}T.current&&(E({type:"openDialog"}),ye(),T.current.value=null,T.current.click())},[E,ye,re,se,_e,N,Pe,l]),Tt=p.useCallback(function(c){!R.current||!R.current.isEqualNode(c.target)||(c.key===" "||c.key==="Enter"||c.keyCode===32||c.keyCode===13)&&(c.preventDefault(),ce())},[R,ce]),Dt=p.useCallback(function(){E({type:"focus"})},[]),Pt=p.useCallback(function(){E({type:"blur"})},[]),Ot=p.useCallback(function(){ee||(pa()?setTimeout(ce,0):ce())},[ee,ce]),le=function(d){return a?null:d},Qe=function(d){return oe?null:le(d)},Ce=function(d){return Te?null:le(d)},Le=function(d){q&&d.stopPropagation()},Sr=p.useMemo(function(){return function(){var c=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},d=c.refKey,y=d===void 0?"ref":d,w=c.role,O=c.onKeyDown,we=c.onFocus,ue=c.onBlur,Ze=c.onClick,Je=c.onDragEnter,Xe=c.onDragOver,Ue=c.onDragLeave,et=c.onDrop,tt=We(c,Sa);return x(x(xt({onKeyDown:Qe(M(O,Tt)),onFocus:Qe(M(we,Dt)),onBlur:Qe(M(ue,Pt)),onClick:le(M(Ze,Ot)),onDragEnter:Ce(M(Je,Re)),onDragOver:Ce(M(Xe,At)),onDragLeave:Ce(M(Ue,Ft)),onDrop:Ce(M(et,ke)),role:typeof w=="string"&&w!==""?w:"presentation"},y,R),!a&&!oe?{tabIndex:0}:{}),tt)}},[R,Tt,Dt,Pt,Ot,Re,At,Ft,ke,oe,Te,a]),jr=p.useCallback(function(c){c.stopPropagation()},[]),Rr=p.useMemo(function(){return function(){var c=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},d=c.refKey,y=d===void 0?"ref":d,w=c.onChange,O=c.onClick,we=We(c,ja),ue=xt({accept:te,multiple:l,type:"file",style:{display:"none"},onChange:le(M(w,ke)),onClick:le(M(O,jr)),tabIndex:-1},y,T);return x(x({},ue),we)}},[T,r,l,ke,a]);return x(x({},h),{},{isFocused:P&&!a,getRootProps:Sr,getInputProps:Rr,rootRef:R,inputRef:T,open:le(ce)})}function Oa(e,t){switch(t.type){case"focus":return x(x({},e),{},{isFocused:!0});case"blur":return x(x({},e),{},{isFocused:!1});case"openDialog":return x(x({},Et),{},{isFileDialogActive:!0});case"closeDialog":return x(x({},e),{},{isFileDialogActive:!1});case"setDraggedFiles":return x(x({},e),{},{isDragActive:t.isDragActive,isDragAccept:t.isDragAccept,isDragReject:t.isDragReject});case"setFiles":return x(x({},e),{},{acceptedFiles:t.acceptedFiles,fileRejections:t.fileRejections});case"reset":return x({},Et);default:return e}}function Zt(){}function It(e){return n.jsx("span",{id:`${e.name}Error`,className:`${e.className} invalid-feedback d-block`,role:"status",children:e.children})}var yt=(e=>(e.FileSelect="file-select",e.DragDrop="drag-drop",e))(yt||{});const _a="_fileDrop_dm34f_1",ka="_resourcePreview_dm34f_4",Jt={fileDrop:_a,resourcePreview:ka},pt="shared.feedbackFileUpload";function Ca(e){const{getRootProps:t,getInputProps:r,isDragActive:a}=br({onDrop:m=>e.onFilesAdded(m,yt.DragDrop),noClick:!0,noKeyboard:!0,multiple:!!e.acceptMultiple,noDragEventsBubbling:!0}),s=p.useRef(null),i=p.useCallback(m=>{m&&(s.current=m)},[]),o=()=>{s.current.value=null,s.current.click()};let l=`${Jt.fileDrop} text-center p-2 rounded-1`;return e.uploadError&&(l+=" border-red"),a&&(l+=" border-blue bg-light-blue"),n.jsxs(n.Fragment,{children:[n.jsxs("div",{...t({className:l}),children:[n.jsx("img",{className:Jt.resourcePreview,src:e.imageUrl,draggable:!1}),n.jsxs("div",{className:"position-relative",children:[a&&n.jsx("p",{className:"position-absolute font-size-md translate-middle top-50 start-50 mb-0",children:n.jsx(A,{namespace:pt,phrase:"dropUpload"})}),n.jsxs("div",{className:a?"opacity-0":"",children:[n.jsx("p",{className:"mb-0",children:n.jsx(A,{namespace:pt,phrase:"dragDrop"})}),n.jsx("button",{type:"button",className:"btn btn-link text-underline p-0",onClick:o,children:n.jsx(A,{namespace:pt,phrase:"upload"})})]})]}),n.jsx("input",{type:"file",name:"fileUpload",className:"file-select d-none",multiple:!!e.acceptMultiple,accept:e.mimeType,ref:i,onChange:m=>e.onFilesAdded([...m.target.files],yt.FileSelect),"aria-errormessage":"fileUploadError"}),n.jsx("input",{...r()})]}),e.uploadError&&n.jsx(It,{name:"fileUpload",children:e.uploadError})]})}const La="_progress_w7ph2_1",Ua={progress:La};function Na(e){const t=e.upload.progress===100;return n.jsxs(n.Fragment,{children:[n.jsxs("div",{children:[n.jsx(J,{svg:Xr,className:"svg-container me-2"}),n.jsx("span",{className:"align-middle",children:e.upload.name}),t&&n.jsx(J,{svg:kr,className:"svg-container float-end text-success"}),!t&&n.jsx("div",{role:"button","aria-label":"close",onClick:()=>e.cancelUpload(e.upload.id),className:"float-end description",children:n.jsx(J,{svg:Cr})})]}),n.jsx("div",{className:`${Ua.progress} progress my-2`,children:n.jsx("div",{className:"progress-bar bg-blue",role:"progressbar",style:{width:`${e.upload.progress}%`},"aria-valuenow":e.upload.progress,"aria-valuemin":0,"aria-valuemax":100})})]})}function Ma(e){var t;return(t=e.uploads)!=null&&t.length?n.jsx(n.Fragment,{children:e.uploads.map((r,a)=>n.jsx(Na,{upload:r,cancelUpload:e.cancelUpload},a))}):n.jsx(n.Fragment,{})}function $a(e){return n.jsx("svg",{...e,children:n.jsx("path",{fill:"currentColor",fillRule:"evenodd",d:"M9.5 7A1.5 1.5 0 0 1 11 5.5h2A1.5 1.5 0 0 1 14.5 7h4a.5.5 0 0 1 0 1h-1.14q0 .045-.005.09l-.909 10a1 1 0 0 1-.996.91h-6.9a1 1 0 0 1-.996-.91l-.91-10A1 1 0 0 1 6.64 8H5.5a.5.5 0 0 1 0-1h4m4 0a.5.5 0 0 0-.5-.5h-2a.5.5 0 0 0-.5.5zm2.971 1H7.53l.853 9.545A.5.5 0 0 0 8.88 18h6.24a.5.5 0 0 0 .498-.456zm-7.43 2.537a.499.499 0 1 1 .994-.077l.424 5.503a.498.498 0 1 1-.994.077zM11.5 10.5a.5.5 0 0 1 1 0V16a.5.5 0 0 1-1 0zm2.962-.5c-.26 0-.477.2-.497.46l-.424 5.503a.499.499 0 1 0 .994.077l.424-5.503a.5.5 0 0 0-.497-.537",clipRule:"evenodd"})})}function qa(e){return n.jsxs("div",{className:"bg-gray-100 rounded p-2",children:[n.jsx(J,{className:"d-inline-block align-middle svg-container icon-purple me-2",svg:en}),n.jsx("span",{className:"align-middle",children:e.file.get("name")}),n.jsx("button",{className:"btn p-0 border-0 float-end",onClick:()=>e.deleteFile(e.file.get("id")),children:n.jsx(J,{svg:$a})})]})}function Va(e){return n.jsx("div",{className:"d-flex flex-column gap-2",children:e.uploadedFiles.map(t=>n.jsx(qa,{file:t,deleteFile:e.deleteFile},t.id))})}const pe="shared.feedbackReportBug",Ie=D.encloseNamespace(pe),Ba={issue:"",stepsToReproduce:""},za=F.object().shape({issue:H().required(z("requiredError")),stepsToReproduce:H()}).noUnknown();function Ha(e){const t=X();return n.jsxs(n.Fragment,{children:[n.jsxs("div",{className:"form-group",children:[n.jsx("label",{className:"form-label mb-1",children:n.jsx(A,{namespace:pe,phrase:"mixedMediaLabel"})}),n.jsx("p",{className:"text-secondary font-size-sm",children:n.jsx(A,{namespace:pe,phrase:"mixedMediaDescription"})}),n.jsx("div",{className:"mb-3",children:n.jsx(Ca,{mimeType:Rt.MIXED_MEDIA,onFilesAdded:e.onFilesAdded,imageUrl:e.previewImageUrl,uploadError:e.uploadError,acceptMultiple:!0})}),n.jsx(Ma,{uploads:e.uploadingFiles,cancelUpload:e.cancelUpload}),n.jsx(Va,{uploadedFiles:e.uploadedFiles,deleteFile:e.deleteFile})]}),n.jsx(S,{as:"textarea",placeholder:Ie("issuePlaceholder"),label:Ie("issueLabel"),name:"issue",value:t.values.issue,showRequiredStar:!0}),n.jsx(S,{as:"textarea",placeholder:Ie("stepsPlaceholder"),label:Ie("stepsLabel"),name:"stepsToReproduce",value:t.values.stepsToReproduce}),n.jsxs("div",{className:"rounded bg-light-yellow p-2 mb-3",children:[n.jsx("p",{className:"fw-semibold mb-2",children:n.jsx(A,{namespace:pe,phrase:"help"})}),n.jsxs("div",{className:"d-flex gap-1 mb-2",children:[n.jsx(J,{svg:Yr}),n.jsx("a",{href:ft[e.instanceRegion].website,target:"_blank",className:"text-underline",children:n.jsx(A,{namespace:pe,phrase:"visitHelpCentre"})})]}),n.jsx("p",{className:"mb-2",children:n.jsx(A,{namespace:pe,phrase:"supportTeam"})}),n.jsxs("div",{className:"d-flex gap-1 mb-2",children:[n.jsx(J,{svg:Un}),n.jsx("span",{children:ft[e.instanceRegion].phone})]}),n.jsxs("div",{className:"d-flex gap-1 mb-2",children:[n.jsx(J,{svg:Ln}),n.jsx("span",{children:ft[e.instanceRegion].email})]})]})]})}function Ga(e){const{onFilesAdded:t,cancelUpload:r,uploadingFiles:a,uploadedFiles:s,deleteFile:i,...o}=e;return n.jsx(ie,{...o,initialValues:{...Ba,...e.initialValues},validationSchema:za,submitText:Ie("submit"),children:n.jsx(Ha,{onFilesAdded:t,previewImageUrl:ve.mediaPreview,cancelUpload:r,uploadingFiles:a,uploadedFiles:s,deleteFile:i,uploadError:e.uploadError,instanceRegion:e.instanceRegion})})}const xr="shared.feedbackRequestLivestream",Q=D.encloseNamespace(xr),Ka={topic:"",studentLevel:[],producerCompany:"",additionalInfo:""},Xt=F.string().max(Ye,z("maxCharactersError")),Wa=F.object().shape({producerCompany:Xt.required(()=>Q("companyError")),topic:Xt,studentLevel:F.array(F.string()),additionalInfo:H()}).noUnknown();function Ya(e){const t=X(),r=t.values.studentLevel.map(i=>e.audiences.find(o=>o.name===i))||[];function a(i){t.setFieldValue("studentLevel",ar.addOrRemoveImmutable(t.values.studentLevel,i.name)),requestAnimationFrame(()=>t.setFieldTouched("studentLevel"))}function s(i,o){const l=o.find(u=>u.name===i);return nr(l?"":i,o,"name",0).filter(u=>!(r.find(v=>v.name===u.name)||u.name===(l==null?void 0:l.name)))}return n.jsxs(n.Fragment,{children:[n.jsx(S,{placeholder:Q("companyPlaceholder"),label:Q("companyLabel"),name:"producerCompany",value:t.values.producerCompany,showRequiredStar:!0}),n.jsx(S,{placeholder:Q("topicPlaceholder"),label:Q("topicLabel"),name:"topic",value:t.values.topic}),n.jsxs("div",{className:"form-group",children:[n.jsx("label",{className:"form-label",children:n.jsx(A,{namespace:xr,phrase:"audiencesLabel"})}),n.jsx(ir,{id:"audiences",placeholder:Q("audiencesPlaceholder"),local:e.audiences,valueKey:"name",selections:r,onSuggestionSelected:a,removeSelection:i=>a(i),errorStateImageUrl:null,emptyStateImageUrl:null,activationLength:0,suggestionLimit:!1,getInputTokenComponent:i=>n.jsx(sr,{selection:{name:i.name,masterId:i.masterId},colourVariant:"teal",onClickRemove:o=>a(o),hideExpander:!0},i.name),getSuggestionComponent:i=>rr("name",i),onSuggestionDependencies:[e.audiences,t.values.studentLevel,r],getLocalSuggestions:s,focusInputOnSuggestionClick:!1,renderAsForm:!1,hideIcon:!0,onBlur:()=>t.setFieldTouched("studentLevel"),className:`p-2 ${t.touched.studentLevel&&t.errors.studentLevel?"is-invalid":""}`}),t.touched.studentLevel&&t.errors.studentLevel&&n.jsx(It,{name:"audiences",children:t.errors.studentLevel})]}),n.jsx(S,{as:"textarea",placeholder:Q("otherPlaceholder"),label:Q("otherLabel"),name:"additionalInfo",value:t.values.additionalInfo})]})}function Qa(e){return n.jsx(ie,{...e,initialValues:{...Ka,...e.initialValues},validationSchema:Wa,children:n.jsx(Ya,{audiences:e.audiences})})}const Za="_image_1d4la_1",Ja={image:Za},St="shared.feedbackBeforeRequesting",gt=D.encloseNamespace(St);function Xa(e){const[t,r]=I.useState(!1);return n.jsxs(n.Fragment,{children:[n.jsxs("div",{className:"d-flex flex-column align-items-center my-4",children:[n.jsx("img",{className:`${Ja.image} mb-3`,src:ve.videoAlert}),n.jsx("h4",{className:"mb-3",children:n.jsx(A,{namespace:St,phrase:"beforeRequesting"})}),n.jsx("p",{children:n.jsx(A,{namespace:St,phrase:"haveYouSearched",options:{exchangeUrl:`${e.exchangeTvUrl}/exchange`}})})]}),n.jsxs(Z,{children:[n.jsx(Z.Checkbox,{id:"confirmExchange",checked:t,onToggle:()=>r(!t),label:gt("exchangeCheck")}),n.jsx(Z.Cancel,{onClick:()=>e.setSelectedOption(null),text:gt("back")}),n.jsx(Z.Submit,{variant:"dark",text:gt("continue"),disabled:!t,onClick:()=>e.setConfirmed(!0)})]})]})}const Er="shared.feedbackRequestVideo",b=D.encloseNamespace(Er),ei={videoRequestType:"",topic:"",studentLevel:[],videoTitle:"",seriesName:"",producerCompany:"",websiteOrTrailer:"",additionalInfo:""},B=()=>F.string().max(Ye,z("maxCharactersError")),ti=F.object().shape({videoRequestType:F.string().required(b("videoRequestTypeRequiredError")),topic:B().when("videoRequestType",{is:e=>e==="videosTopic",then:B().required(b("topicRequiredError")),otherwise:B().notRequired()}),studentLevel:F.array(F.string()),videoTitle:B().when(["videoRequestType","seriesName"],{is:(e,t)=>e==="videoOrSeries"&&!t,then:B().required(b("videoRequiredError")),otherwise:B().notRequired()}),seriesName:B(),producerCompany:B(),websiteOrTrailer:B(),additionalInfo:H()}).noUnknown();function ri(e){const t=X(),r=t.values.studentLevel.map(i=>{var o;return(o=e.audiences)==null?void 0:o.find(l=>l.name===i)})||[];function a(i){t.setFieldValue("studentLevel",ar.addOrRemoveImmutable(t.values.studentLevel,i.name)),requestAnimationFrame(()=>t.setFieldTouched("studentLevel"))}function s(i,o){const l=o.find(u=>u.name===i);return nr(l?"":i,o,"name",0).filter(u=>!(r.find(v=>v.name===u.name)||u.name===(l==null?void 0:l.name)))}return n.jsxs(n.Fragment,{children:[n.jsxs(S,{as:"select",label:b("videoRequestTypeLabel"),name:"videoRequestType",value:t.values.videoRequestType,children:[n.jsx("option",{value:"",disabled:!0,hidden:!0,children:b("videoRequestTypePlaceholder")}),n.jsx("option",{value:"videosTopic",children:b("videosTopicType")}),n.jsx("option",{value:"videoOrSeries",children:b("videoOrSeriesType")})]}),t.values.videoRequestType==="videosTopic"&&n.jsxs(n.Fragment,{children:[n.jsx(S,{placeholder:b("videoTopicPlaceholder"),label:b("videoTopicLabel"),name:"topic",value:t.values.topic,showRequiredStar:!0}),n.jsxs("div",{className:"form-group",children:[n.jsx("label",{className:"form-label",children:n.jsx(A,{namespace:Er,phrase:"audiencesLabel"})}),n.jsx(ir,{id:"audiences",placeholder:b("audiencesPlaceholder"),local:e.audiences,valueKey:"name",selections:r,onSuggestionSelected:a,removeSelection:i=>a(i),errorStateImageUrl:null,emptyStateImageUrl:null,activationLength:0,suggestionLimit:!1,getInputTokenComponent:i=>n.jsx(sr,{selection:{name:i.name,masterId:i.masterId},colourVariant:"teal",onClickRemove:o=>a(o),hideExpander:!0},i.name),getSuggestionComponent:i=>rr("name",i),onSuggestionDependencies:[e.audiences,t.values.studentLevel,r],getLocalSuggestions:s,focusInputOnSuggestionClick:!1,renderAsForm:!1,hideIcon:!0,onBlur:()=>t.setFieldTouched("studentLevel"),className:`p-2 ${t.touched.studentLevel&&t.errors.studentLevel?"is-invalid":""}`}),t.touched.studentLevel&&t.errors.studentLevel&&n.jsx(It,{name:"audiences",children:t.errors.studentLevel})]}),n.jsx(S,{as:"textarea",placeholder:b("otherPlaceholder"),label:b("otherLabel"),name:"additionalInfo",value:t.values.additionalInfo})]}),t.values.videoRequestType==="videoOrSeries"&&n.jsxs(n.Fragment,{children:[n.jsx(S,{placeholder:b("videoTitlePlaceholder"),label:b("videoTitleLabel"),name:"videoTitle",value:t.values.videoTitle}),n.jsx(S,{placeholder:b("seriesPlaceholder"),label:b("seriesLabel"),name:"seriesName",value:t.values.seriesName}),n.jsx(S,{placeholder:b("companyPlaceholder"),label:b("companyLabel"),name:"producerCompany",value:t.values.producerCompany}),n.jsx(S,{placeholder:b("videoTopicPlaceholder"),label:b("topicLabel"),name:"topic",value:t.values.topic}),n.jsx(S,{placeholder:b("websiteOrTrailerPlaceholder"),label:b("websiteOrTrailerLabel"),name:"websiteOrTrailer",value:t.values.websiteOrTrailer}),n.jsx(S,{as:"textarea",placeholder:b("otherPlaceholder"),label:b("otherLabel"),name:"additionalInfo",value:t.values.additionalInfo})]})]})}function ni(e){const[t,r]=I.useState(!!e.skipBeforeRequesting),a=e.hasExchangeTvProduct&&!t;return n.jsxs(ie,{...e,initialValues:{...ei,...e.initialValues},validationSchema:ti,hideButtons:e.hasExchangeTvProduct&&!t,hideCancelButton:e.skipBeforeRequesting,children:[a&&n.jsx(Xa,{setConfirmed:r,setSelectedOption:e.setSelectedOption,exchangeTvUrl:e.exchangeTvUrl}),!a&&n.jsx(ri,{audiences:e.audiences})]})}const jt="shared.feedbackSuggestImprovement",ge=D.encloseNamespace(jt),ai={suggestion:"",importance:""},ii=F.object().shape({suggestion:H().required(z("requiredError")),importance:H()}).noUnknown();function si(e){const t=X();return n.jsxs(n.Fragment,{children:[n.jsx(S,{as:"textarea",placeholder:ge("suggestionPlaceholder"),label:ge("suggestionLabel"),name:"suggestion",value:t.values.suggestion,showRequiredStar:!0}),n.jsx(S,{as:"textarea",placeholder:ge("whySuggestionPlaceholder"),label:ge("whySuggestionLabel"),name:"importance",rows:5,value:t.values.importance}),n.jsxs("p",{children:[n.jsx(A,{namespace:jt,phrase:"contactSupport"})," ",n.jsx("button",{className:"btn btn-link text-underline p-0",onClick:()=>e.setSelectedOption(f.RAISE_ISSUE),children:n.jsx(A,{namespace:jt,phrase:"raiseIssue"})})]})]})}function oi(e){return n.jsx(ie,{...e,initialValues:{...ai,...e.initialValues},validationSchema:ii,successImageUrl:ve.lightBulb,successHeading:ge("successHeading"),successDescription:ge("successDescription"),children:n.jsx(si,{setSelectedOption:e.setSelectedOption})})}function ie(e){const t=I.useRef(null);function r(a){e.setFormState(s=>{var i;return{...s,...(i=t.current)==null?void 0:i.values}}),e.setSelectedOption(a)}return n.jsx(Jr,{onSubmit:e.onSubmit,initialValues:e.initialValues,validationSchema:e.validationSchema,validateOnMount:!0,innerRef:t,children:n.jsxs(Lr,{children:[e.formStage==="form"&&e.children,n.jsx(xn,{formStage:e.formStage,successImageUrl:e.successImageUrl,successHeading:e.successHeading,successDescription:e.successDescription}),!e.hideButtons&&n.jsx(gn,{setSelectedOption:r,submitText:e.submitText,formStage:e.formStage,closePopup:e.closePopup,hideCancelButton:e.hideCancelButton})]})})}function ci(e){const t={formStage:e.formStage,initialValues:e.initialValues,setFormState:e.setFormState,onSubmit:e.onSubmit,setSelectedOption:e.setSelectedOption,closePopup:e.closePopup};switch(e.selectedOption){case f.SUGGEST_IMPROVEMENT:return n.jsx(oi,{...t});case f.REPORT_BUG:return n.jsx(Ga,{...t,onFilesAdded:e.onFilesAdded,cancelUpload:e.cancelUpload,uploadingFiles:e.uploadingFiles,uploadedFiles:e.uploadedFiles,deleteFile:e.deleteFile,uploadError:e.uploadError,instanceRegion:e.instanceRegion});case f.REQUEST_VIDEO:return n.jsx(ni,{...t,audiences:e.audiences,hasExchangeTvProduct:e.hasExchangeTvProduct,exchangeTvUrl:e.exchangeTvUrl,skipBeforeRequesting:e.skipBeforeRequesting,hideCancelButton:e.hideCancelButton});case f.REQUEST_LIVESTREAM:return n.jsx(Qa,{...t,audiences:e.audiences});case f.RAISE_ISSUE:return n.jsx(Cn,{...t});case f.GIVE_PRAISE:return n.jsx(wn,{...t});case f.OTHER:return n.jsx(Dn,{...t})}}const yr="shared.giveFeedback",fe=D.encloseNamespace(yr),er=5,tr=60,li=1e6;function xi(e){var Oe,Se;const t=Kr(),r=Ur(),a=de(kt.currentUser()),s=de(a.data&&Nr.customer(a.data.customerId)),i=de(a.data&&kt.user(a.data.id)),[o,l]=I.useState(e.selectedOption),[m,u]=I.useState("form"),[v,j]=I.useState(null),k=Wr(Hr.MixedMediaUpload),G=nn(()=>k.getCollection()),K=I.useRef(null),$=I.useRef(0),W=I.useRef([]),[se,xe]=I.useState([]),[Ee,ee]=I.useState(""),oe=e.product===it.StreamableLearning?Be.StreamableLearning:Be.Subject,Te=de(Qr.presentation(oe)),q=de(tn.presentationAudiences(null,oe)),C=(Oe=de(Br.userProducts()).data)==null?void 0:Oe.find(h=>h.id===it.Exchange);Mr($r.Radio.channel(qr.MIXED_MEDIA_UPLOAD),Gr.UPLOAD_COMPLETE,Pe),on();function te(h,E){if(h.some(P=>P.size>tr*li)){ee(fe("maxFileSizeUploadError",{limit:tr}));return}if(h.length>er-G.length){ee(fe("maxFilesUploadError",{limit:er}));return}if(h.some(P=>!(void 0)(P,Rt.MIXED_MEDIA))){ee(fe("invalidTypeUploadError"));return}ee(""),$.current+=h.length,E&&(K.current=E),k.addFiles(h)}function Pe(h){const E=h.toJSON();if(W.current.push(E),$.current--,$.current>0)return;let P=W.current.length;W.current.forEach(L=>{setTimeout(()=>{P--;const U=k.getCollection().filter(V=>{var _;return((_=V.get("fileInfo"))==null?void 0:_.id)===L.fileInfo.id});k.getCollection().remove(U),xe(V=>[...V,...U]),!(P>0)&&(Me.logUserAction({fileInfo:L.fileInfo},{location:st.GiveFeedbackPopup,actionType:ct.Upload,entity:ot.MixedMedia,descriptor:Me.mapInteractionType(K.current)}),t.success(fe("mixedMediaUploadSuccess")))})}),W.current=[]}function ye(h){xe(E=>E.filter(P=>P.id!==h))}function re(h){l(h),h&&Me.logUserAction({type:h},{actionType:ct.Click,entity:ot.Feedback,location:st.GiveFeedbackPopup,workflowPhase:Ct.Start})}function R(h){switch(h){case f.SUGGEST_IMPROVEMENT:return Y.SuggestImprovement;case f.REPORT_BUG:return Y.ReportBug;case f.REQUEST_VIDEO:return Y.RequestVideo;case f.REQUEST_LIVESTREAM:return Y.RequestLivestream;case f.GIVE_PRAISE:return Y.GivePraise;case f.RAISE_ISSUE:return Y.RaiseIssue;case f.OTHER:return Y.Other}}async function T(h,E){var U,V,_,je,N,Re;const P={type:R(o),user:Ve.getUserInfo(a.data,s.data),tags:Ve.getTags(a.data,e.product,!1,["give feedback",ze(o).toLowerCase(),(V=(U=Te.data)==null?void 0:U.description)==null?void 0:V.toLowerCase().trim(),(Re=(N=(je=(_=i.data)==null?void 0:_.userProfile)==null?void 0:je.metadata)==null?void 0:N.jobTitle)==null?void 0:Re.toLowerCase()].filter(Boolean))};let L={...h,currentPageUrl:zr.GetCurrentUrl()};o===f.REPORT_BUG&&se.length&&(L={...L,...Ve.categorizeFiles(se)});try{await r(rn.submitFeedback(P,L)),Me.logUserAction({...P,...L},{actionType:ct.Submit,entity:ot.Feedback,location:st.GiveFeedbackPopup,workflowPhase:Ct.Complete}),u("success")}catch{t.error(fe("error"))}finally{E()}}return n.jsxs(Vr,{size:"lg",title:o?ze(o):fe("title"),closePopup:e.closePopup,backdrop:"static",children:[!o&&n.jsx("p",{children:n.jsx(A,{namespace:yr,phrase:"description"})}),!o&&n.jsx(mn,{onSelectOption:re,options:[f.SUGGEST_IMPROVEMENT,f.REPORT_BUG,e.product===it.StreamableLearning?f.REQUEST_LIVESTREAM:f.REQUEST_VIDEO,f.GIVE_PRAISE,f.RAISE_ISSUE,f.OTHER]}),o&&n.jsx(ci,{selectedOption:o,formStage:m,onSubmit:T,setSelectedOption:re,closePopup:e.closePopup,onFilesAdded:te,uploadingFiles:G,uploadedFiles:se,deleteFile:ye,cancelUpload:h=>k.cancelUpload(h),audiences:q.data,uploadError:Ee,initialValues:v,setFormState:j,instanceRegion:(Se=a.data)==null?void 0:Se.instanceRegion,hasExchangeTvProduct:!!C,exchangeTvUrl:C==null?void 0:C.url,skipBeforeRequesting:!!e.skipBeforeRequestingVideoStep,hideCancelButton:!!e.selectedOption})]})}export{xi as GiveFeedbackView};
6
+ //# sourceMappingURL=B0ZIDriY.chunk.js.map