@clickview/reports 0.72.0 → 0.73.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (418) hide show
  1. package/dist/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
  2. package/dist/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
  3. package/dist/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
  4. package/dist/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
  5. package/dist/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
  6. package/dist/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
  7. package/dist/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
  8. package/dist/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
  9. package/dist/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
  10. package/dist/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
  11. package/dist/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
  12. package/dist/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
  13. package/dist/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
  14. package/dist/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
  15. package/dist/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
  16. package/dist/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
  17. package/dist/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
  18. package/dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
  19. package/dist/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
  20. package/dist/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
  21. package/dist/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
  22. package/dist/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
  23. package/dist/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
  24. package/dist/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
  25. package/dist/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
  26. package/dist/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
  27. package/dist/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
  28. package/dist/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
  29. package/dist/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
  30. package/dist/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
  31. package/dist/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
  32. package/dist/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
  33. package/dist/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
  34. package/dist/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
  35. package/dist/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
  36. package/dist/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
  37. package/dist/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
  38. package/dist/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
  39. package/dist/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
  40. package/dist/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
  41. package/dist/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
  42. package/dist/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
  43. package/dist/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
  44. package/dist/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
  45. package/dist/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
  46. package/dist/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
  47. package/dist/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
  48. package/dist/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
  49. package/dist/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
  50. package/dist/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
  51. package/dist/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
  52. package/dist/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
  53. package/dist/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
  54. package/dist/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
  55. package/dist/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
  56. package/dist/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
  57. package/dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
  58. package/dist/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
  59. package/dist/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
  60. package/dist/bundles.json +2 -3
  61. package/dist/css/1VpVng8x.chunk.css +1 -0
  62. package/dist/css/BDijM1kt.chunk.css +1 -0
  63. package/dist/css/BMPwvOki.chunk.css +1 -0
  64. package/dist/css/BNt45Kgy.chunk.css +1 -0
  65. package/dist/css/BSGhUWzl.chunk.css +1 -0
  66. package/dist/css/BZ3_uhDP.chunk.css +1 -0
  67. package/dist/css/BaadNO4A.chunk.css +1 -0
  68. package/dist/css/BdUNjJqp.chunk.css +1 -0
  69. package/dist/css/BdeI0FAV.chunk.css +1 -0
  70. package/dist/css/BxcMGr8Y.chunk.css +1 -0
  71. package/dist/css/ByuL_xKJ.chunk.css +1 -0
  72. package/dist/css/C-A0Pj_7.chunk.css +1 -0
  73. package/dist/css/C4jMfPWU.chunk.css +1 -0
  74. package/dist/css/C7XoyEPr.chunk.css +1 -0
  75. package/dist/css/C8sxda3R.chunk.css +1 -0
  76. package/dist/css/CD1qrI1T.chunk.css +1 -0
  77. package/dist/css/CFO--d_R.chunk.css +1 -0
  78. package/dist/css/CX9nw8t8.chunk.css +1 -0
  79. package/dist/css/C_qGRdC2.chunk.css +1 -0
  80. package/dist/css/CdC6ugQR.chunk.css +1 -0
  81. package/dist/css/ClRRGXPb.chunk.css +1 -0
  82. package/dist/css/Cr1bwtZG.chunk.css +1 -0
  83. package/dist/css/DBlPz5Fw.chunk.css +1 -0
  84. package/dist/css/DDnpOnVB.chunk.css +1 -0
  85. package/dist/css/DFZQCLLg.chunk.css +1 -0
  86. package/dist/css/DJwAbl6l.chunk.css +1 -0
  87. package/dist/css/DWjg_0sz.chunk.css +1 -0
  88. package/dist/css/DYV9jjVn.chunk.css +1 -0
  89. package/dist/css/Dgeh4AqU.chunk.css +9 -0
  90. package/dist/css/DlOtoSz0.chunk.css +1 -0
  91. package/dist/css/DlxOgKUu.chunk.css +1 -0
  92. package/dist/css/Dp3arkyy.chunk.css +1 -0
  93. package/dist/css/DwgaDUzz.chunk.css +1 -0
  94. package/dist/css/FPQ_LmXH.chunk.css +1 -0
  95. package/dist/css/H09rC9gw.chunk.css +1 -0
  96. package/dist/css/LAFr2dPT.chunk.css +1 -0
  97. package/dist/css/Pg1TlYG6.chunk.css +1 -0
  98. package/dist/css/PsQn3-kb.chunk.css +1 -0
  99. package/dist/css/alkEuPrr.chunk.css +1 -0
  100. package/dist/css/k4DgCj_g.chunk.css +1 -0
  101. package/dist/en.json +1 -0
  102. package/dist/scripts/2nrjFQG6.chunk.js +2 -0
  103. package/dist/scripts/2nrjFQG6.chunk.js.map +1 -0
  104. package/dist/scripts/5O9SdVRZ.chunk.js +2 -0
  105. package/dist/scripts/5O9SdVRZ.chunk.js.map +1 -0
  106. package/dist/scripts/6SDR31f9.chunk.js +15 -0
  107. package/dist/scripts/6SDR31f9.chunk.js.map +1 -0
  108. package/dist/scripts/6bLX1DNm.chunk.js +2 -0
  109. package/dist/scripts/6bLX1DNm.chunk.js.map +1 -0
  110. package/dist/scripts/AhdqfBDC.chunk.js +2 -0
  111. package/dist/scripts/AhdqfBDC.chunk.js.map +1 -0
  112. package/dist/scripts/B-PpJIqi.chunk.js +6 -0
  113. package/dist/scripts/B-PpJIqi.chunk.js.map +1 -0
  114. package/dist/scripts/B-ZRPp91.chunk.js +2 -0
  115. package/dist/scripts/B-ZRPp91.chunk.js.map +1 -0
  116. package/dist/scripts/B0keXzHm.chunk.js +2 -0
  117. package/dist/scripts/B0keXzHm.chunk.js.map +1 -0
  118. package/dist/scripts/B17N2umP.chunk.js +2 -0
  119. package/dist/scripts/B17N2umP.chunk.js.map +1 -0
  120. package/dist/scripts/B2Eafs31.chunk.js +2 -0
  121. package/dist/scripts/B2Eafs31.chunk.js.map +1 -0
  122. package/dist/scripts/B5Y7eket.chunk.js +2 -0
  123. package/dist/scripts/B5Y7eket.chunk.js.map +1 -0
  124. package/dist/scripts/B7E0FLQT.chunk.js +2 -0
  125. package/dist/scripts/B7E0FLQT.chunk.js.map +1 -0
  126. package/dist/scripts/B7fZs_l2.chunk.js +2 -0
  127. package/dist/scripts/B7fZs_l2.chunk.js.map +1 -0
  128. package/dist/scripts/B8DfvvPE.chunk.js +2 -0
  129. package/dist/scripts/B8DfvvPE.chunk.js.map +1 -0
  130. package/dist/scripts/B8dw4aip.chunk.js +2 -0
  131. package/dist/scripts/B8dw4aip.chunk.js.map +1 -0
  132. package/dist/scripts/BAaa7KIR.chunk.js +2 -0
  133. package/dist/scripts/BAaa7KIR.chunk.js.map +1 -0
  134. package/dist/scripts/BBmrqSNv.chunk.js +2 -0
  135. package/dist/scripts/BBmrqSNv.chunk.js.map +1 -0
  136. package/dist/scripts/BGX0h6W4.chunk.js +2 -0
  137. package/dist/scripts/BGX0h6W4.chunk.js.map +1 -0
  138. package/dist/scripts/BOeg7AfB.chunk.js +2 -0
  139. package/dist/scripts/BOeg7AfB.chunk.js.map +1 -0
  140. package/dist/scripts/BOeiDHFY.chunk.js +2 -0
  141. package/dist/scripts/BOeiDHFY.chunk.js.map +1 -0
  142. package/dist/scripts/BRRS4PKg.chunk.js +2 -0
  143. package/dist/scripts/BRRS4PKg.chunk.js.map +1 -0
  144. package/dist/scripts/BRV-uFtb.chunk.js +2 -0
  145. package/dist/scripts/BRV-uFtb.chunk.js.map +1 -0
  146. package/dist/scripts/BZfWKvo2.chunk.js +42 -0
  147. package/dist/scripts/BZfWKvo2.chunk.js.map +1 -0
  148. package/dist/scripts/B_rCaFK4.chunk.js +2 -0
  149. package/dist/scripts/B_rCaFK4.chunk.js.map +1 -0
  150. package/dist/scripts/BiFq1JkI.chunk.js +2 -0
  151. package/dist/scripts/BiFq1JkI.chunk.js.map +1 -0
  152. package/dist/scripts/BmX8J1Ve.chunk.js +2 -0
  153. package/dist/scripts/BmX8J1Ve.chunk.js.map +1 -0
  154. package/dist/scripts/Bn0dkU5Y.chunk.js +2 -0
  155. package/dist/scripts/Bn0dkU5Y.chunk.js.map +1 -0
  156. package/dist/scripts/BncpEV2O.chunk.js +2 -0
  157. package/dist/scripts/BncpEV2O.chunk.js.map +1 -0
  158. package/dist/scripts/Bodl5h9Z.chunk.js +2 -0
  159. package/dist/scripts/Bodl5h9Z.chunk.js.map +1 -0
  160. package/dist/scripts/Br5YjgjU.chunk.js +2 -0
  161. package/dist/scripts/Br5YjgjU.chunk.js.map +1 -0
  162. package/dist/scripts/Br_GRaAX.chunk.js +2 -0
  163. package/dist/scripts/Br_GRaAX.chunk.js.map +1 -0
  164. package/dist/scripts/C-A1kCBK.chunk.js +2 -0
  165. package/dist/scripts/C-A1kCBK.chunk.js.map +1 -0
  166. package/dist/scripts/C-Bnglks.chunk.js +2 -0
  167. package/dist/scripts/C-Bnglks.chunk.js.map +1 -0
  168. package/dist/scripts/C3KFo3Z8.chunk.js +2 -0
  169. package/dist/scripts/C3KFo3Z8.chunk.js.map +1 -0
  170. package/dist/scripts/C9tiioy8.chunk.js +2 -0
  171. package/dist/scripts/C9tiioy8.chunk.js.map +1 -0
  172. package/dist/scripts/CAfDUf5-.chunk.js +2 -0
  173. package/dist/scripts/CAfDUf5-.chunk.js.map +1 -0
  174. package/dist/scripts/CEPQucRi.chunk.js +2 -0
  175. package/dist/scripts/CEPQucRi.chunk.js.map +1 -0
  176. package/dist/scripts/CFprhMg1.chunk.js +10 -0
  177. package/dist/scripts/CFprhMg1.chunk.js.map +1 -0
  178. package/dist/scripts/CHlm4fQa.chunk.js +4 -0
  179. package/dist/scripts/CHlm4fQa.chunk.js.map +1 -0
  180. package/dist/scripts/CHqxDe0w.chunk.js +2 -0
  181. package/dist/scripts/CHqxDe0w.chunk.js.map +1 -0
  182. package/dist/scripts/CIb-6ujT.chunk.js +2 -0
  183. package/dist/scripts/CIb-6ujT.chunk.js.map +1 -0
  184. package/dist/scripts/CNA329cN.chunk.js +2 -0
  185. package/dist/scripts/CNA329cN.chunk.js.map +1 -0
  186. package/dist/scripts/CObSk_oj.chunk.js +2 -0
  187. package/dist/scripts/CObSk_oj.chunk.js.map +1 -0
  188. package/dist/scripts/CSdY8TC0.chunk.js +10 -0
  189. package/dist/scripts/CSdY8TC0.chunk.js.map +1 -0
  190. package/dist/scripts/CT2oDRt5.chunk.js +2 -0
  191. package/dist/scripts/CT2oDRt5.chunk.js.map +1 -0
  192. package/dist/scripts/CTdrOjLq.chunk.js +2 -0
  193. package/dist/scripts/CTdrOjLq.chunk.js.map +1 -0
  194. package/dist/scripts/CW7x8M-z.chunk.js +2 -0
  195. package/dist/scripts/CW7x8M-z.chunk.js.map +1 -0
  196. package/dist/scripts/CX5q-0jT.chunk.js +2 -0
  197. package/dist/scripts/CX5q-0jT.chunk.js.map +1 -0
  198. package/dist/scripts/CcURCjqv.chunk.js +3 -0
  199. package/dist/scripts/CcURCjqv.chunk.js.map +1 -0
  200. package/dist/scripts/Cg_qt_Rk.chunk.js +2 -0
  201. package/dist/scripts/Cg_qt_Rk.chunk.js.map +1 -0
  202. package/dist/scripts/Cmu1J2M7.chunk.js +262 -0
  203. package/dist/scripts/Cmu1J2M7.chunk.js.map +1 -0
  204. package/dist/scripts/CpDqrbAS.chunk.js +2 -0
  205. package/dist/scripts/CpDqrbAS.chunk.js.map +1 -0
  206. package/dist/scripts/Cr_-BIsS.chunk.js +2 -0
  207. package/dist/scripts/Cr_-BIsS.chunk.js.map +1 -0
  208. package/dist/scripts/CsmuPVPc.chunk.js +2 -0
  209. package/dist/scripts/CsmuPVPc.chunk.js.map +1 -0
  210. package/dist/scripts/Cvic0YnD.chunk.js +2 -0
  211. package/dist/scripts/Cvic0YnD.chunk.js.map +1 -0
  212. package/dist/scripts/CySrdBwK.chunk.js +2 -0
  213. package/dist/scripts/CySrdBwK.chunk.js.map +1 -0
  214. package/dist/scripts/Cyyw1SCS.chunk.js +3 -0
  215. package/dist/scripts/Cyyw1SCS.chunk.js.map +1 -0
  216. package/dist/scripts/CztNQjFH.chunk.js +2 -0
  217. package/dist/scripts/CztNQjFH.chunk.js.map +1 -0
  218. package/dist/scripts/D-6R65i0.chunk.js +2 -0
  219. package/dist/scripts/D-6R65i0.chunk.js.map +1 -0
  220. package/dist/scripts/D-LQhb27.chunk.js +2 -0
  221. package/dist/scripts/D-LQhb27.chunk.js.map +1 -0
  222. package/dist/scripts/D-uzbGYL.chunk.js +2 -0
  223. package/dist/scripts/D-uzbGYL.chunk.js.map +1 -0
  224. package/dist/scripts/D2zM4Kzz.chunk.js +2 -0
  225. package/dist/scripts/D2zM4Kzz.chunk.js.map +1 -0
  226. package/dist/scripts/D7o6GeeF.chunk.js +2 -0
  227. package/dist/scripts/D7o6GeeF.chunk.js.map +1 -0
  228. package/dist/scripts/DA9TJjID.chunk.js +2 -0
  229. package/dist/scripts/DA9TJjID.chunk.js.map +1 -0
  230. package/dist/scripts/DBskBTCv.chunk.js +4 -0
  231. package/dist/scripts/DBskBTCv.chunk.js.map +1 -0
  232. package/dist/scripts/DDeXXa-Z.chunk.js +2 -0
  233. package/dist/scripts/DDeXXa-Z.chunk.js.map +1 -0
  234. package/dist/scripts/DEFJUMtW.chunk.js +2 -0
  235. package/dist/scripts/DEFJUMtW.chunk.js.map +1 -0
  236. package/dist/scripts/DEgmC0Yv.chunk.js +2 -0
  237. package/dist/scripts/DEgmC0Yv.chunk.js.map +1 -0
  238. package/dist/scripts/DFFdinDv.chunk.js +2 -0
  239. package/dist/scripts/DFFdinDv.chunk.js.map +1 -0
  240. package/dist/scripts/DGgXamq8.chunk.js +2 -0
  241. package/dist/scripts/DGgXamq8.chunk.js.map +1 -0
  242. package/dist/scripts/DIQhtsg6.chunk.js +2 -0
  243. package/dist/scripts/DIQhtsg6.chunk.js.map +1 -0
  244. package/dist/scripts/DJcBw7EJ.chunk.js +2 -0
  245. package/dist/scripts/DJcBw7EJ.chunk.js.map +1 -0
  246. package/dist/scripts/DLmWeya6.chunk.js +2 -0
  247. package/dist/scripts/DLmWeya6.chunk.js.map +1 -0
  248. package/dist/scripts/DNEgb5v1.chunk.js +2 -0
  249. package/dist/scripts/DNEgb5v1.chunk.js.map +1 -0
  250. package/dist/scripts/DNODoEV9.chunk.js +2 -0
  251. package/dist/scripts/DNODoEV9.chunk.js.map +1 -0
  252. package/dist/scripts/DNRcL1e9.chunk.js +2 -0
  253. package/dist/scripts/DNRcL1e9.chunk.js.map +1 -0
  254. package/dist/scripts/DUnqV5wd.chunk.js +2 -0
  255. package/dist/scripts/DUnqV5wd.chunk.js.map +1 -0
  256. package/dist/scripts/DW5KxGbM.chunk.js +380 -0
  257. package/dist/scripts/DW5KxGbM.chunk.js.map +1 -0
  258. package/dist/scripts/D_WfHgZP.chunk.js +2 -0
  259. package/dist/scripts/D_WfHgZP.chunk.js.map +1 -0
  260. package/dist/scripts/DbBlo1x3.chunk.js +34 -0
  261. package/dist/scripts/DbBlo1x3.chunk.js.map +1 -0
  262. package/dist/scripts/DbxJfn_n.chunk.js +2 -0
  263. package/dist/scripts/DbxJfn_n.chunk.js.map +1 -0
  264. package/dist/scripts/DePDakSd.chunk.js +2 -0
  265. package/dist/scripts/DePDakSd.chunk.js.map +1 -0
  266. package/dist/scripts/DeoNhQh0.chunk.js +3 -0
  267. package/dist/scripts/DeoNhQh0.chunk.js.map +1 -0
  268. package/dist/scripts/DsbeU03P.chunk.js +2 -0
  269. package/dist/scripts/DsbeU03P.chunk.js.map +1 -0
  270. package/dist/scripts/DtbthThZ.chunk.js +2 -0
  271. package/dist/scripts/DtbthThZ.chunk.js.map +1 -0
  272. package/dist/scripts/Dtv-7Q3n.chunk.js +2 -0
  273. package/dist/scripts/Dtv-7Q3n.chunk.js.map +1 -0
  274. package/dist/scripts/Dvas_dD0.chunk.js +2 -0
  275. package/dist/scripts/Dvas_dD0.chunk.js.map +1 -0
  276. package/dist/scripts/HCxw4efP.chunk.js +2 -0
  277. package/dist/scripts/HCxw4efP.chunk.js.map +1 -0
  278. package/dist/scripts/J7X3wFpY.chunk.js +2 -0
  279. package/dist/scripts/J7X3wFpY.chunk.js.map +1 -0
  280. package/dist/scripts/JUNXcGbu.chunk.js +2 -0
  281. package/dist/scripts/JUNXcGbu.chunk.js.map +1 -0
  282. package/dist/scripts/LS1BGGIr.chunk.js +2 -0
  283. package/dist/scripts/LS1BGGIr.chunk.js.map +1 -0
  284. package/dist/scripts/MqKLZ7-F.chunk.js +2 -0
  285. package/dist/scripts/MqKLZ7-F.chunk.js.map +1 -0
  286. package/dist/scripts/NRnV1wHl.chunk.js +2 -0
  287. package/dist/scripts/NRnV1wHl.chunk.js.map +1 -0
  288. package/dist/scripts/QDAMoZNu.chunk.js +2 -0
  289. package/dist/scripts/QDAMoZNu.chunk.js.map +1 -0
  290. package/dist/scripts/RoUeokG0.chunk.js +2 -0
  291. package/dist/scripts/RoUeokG0.chunk.js.map +1 -0
  292. package/dist/scripts/Tgco-VxU.chunk.js +2 -0
  293. package/dist/scripts/Tgco-VxU.chunk.js.map +1 -0
  294. package/dist/scripts/_KIo6cb1.chunk.js +2 -0
  295. package/dist/scripts/_KIo6cb1.chunk.js.map +1 -0
  296. package/dist/scripts/aRYKkB2W.chunk.js +2 -0
  297. package/dist/scripts/aRYKkB2W.chunk.js.map +1 -0
  298. package/dist/scripts/app-DhPN-zNB.js +228 -0
  299. package/dist/scripts/app-DhPN-zNB.js.map +1 -0
  300. package/dist/scripts/daCZeWsQ.chunk.js +2 -0
  301. package/dist/scripts/daCZeWsQ.chunk.js.map +1 -0
  302. package/dist/scripts/hqhdC5CE.chunk.js +2 -0
  303. package/dist/scripts/hqhdC5CE.chunk.js.map +1 -0
  304. package/dist/scripts/kuc-jC8N.chunk.js +6 -0
  305. package/dist/scripts/kuc-jC8N.chunk.js.map +1 -0
  306. package/dist/scripts/mjKop7CA.chunk.js +2 -0
  307. package/dist/scripts/mjKop7CA.chunk.js.map +1 -0
  308. package/dist/scripts/nIjQqCoO.chunk.js +2 -0
  309. package/dist/scripts/nIjQqCoO.chunk.js.map +1 -0
  310. package/dist/scripts/rLITk9YY.chunk.js +3 -0
  311. package/dist/scripts/rLITk9YY.chunk.js.map +1 -0
  312. package/dist/scripts/rMiqL-Tq.chunk.js +2 -0
  313. package/dist/scripts/rMiqL-Tq.chunk.js.map +1 -0
  314. package/dist/scripts/sFV5nxD4.chunk.js +2 -0
  315. package/dist/scripts/sFV5nxD4.chunk.js.map +1 -0
  316. package/dist/scripts/u3riYA0x.chunk.js +2 -0
  317. package/dist/scripts/u3riYA0x.chunk.js.map +1 -0
  318. package/dist/scripts/wnQZ7WYP.chunk.js +8 -0
  319. package/dist/scripts/wnQZ7WYP.chunk.js.map +1 -0
  320. package/package.json +5 -3
  321. package/typings/utils/env.d.ts +3 -0
  322. package/typings/utils/imports.d.ts +1 -1
  323. package/dist/css/1103-reports-d3d5cc00db.chunk.css +0 -31
  324. package/dist/css/1456-reports-4a5871a275.chunk.css +0 -9
  325. package/dist/css/1648-reports-012456ba48.chunk.css +0 -2
  326. package/dist/css/209-reports-c33663a53e.chunk.css +0 -11
  327. package/dist/css/2150-reports-84ec0e9770.chunk.css +0 -4
  328. package/dist/css/2217-reports-74dec0a3fe.chunk.css +0 -32
  329. package/dist/css/2997-reports-e08318f14b.chunk.css +0 -9
  330. package/dist/css/2999-reports-f190450b10.chunk.css +0 -60
  331. package/dist/css/4582-reports-d3d5cc00db.chunk.css +0 -31
  332. package/dist/css/5304-reports-22c2d8d635.chunk.css +0 -9
  333. package/dist/css/6007-reports-5ba77c55a3.chunk.css +0 -8
  334. package/dist/css/6031-reports-d558076846.chunk.css +0 -6
  335. package/dist/css/6356-reports-8c5b220bf6.chunk.css +0 -1
  336. package/dist/css/6811-reports-baf2e97e71.chunk.css +0 -35
  337. package/dist/css/7723-reports-8c6d3c414b.chunk.css +0 -4
  338. package/dist/css/7747-reports-2d9e191b5a.chunk.css +0 -12
  339. package/dist/css/8087-reports-cfe23ba648.chunk.css +0 -10
  340. package/dist/css/8294-reports-c797263ac2.chunk.css +0 -1
  341. package/dist/css/8418-reports-0ada3f3ce2.chunk.css +0 -29
  342. package/dist/css/8450-reports-06493dfde5.chunk.css +0 -9
  343. package/dist/css/8622-reports-9e8970cc7f.chunk.css +0 -8
  344. package/dist/css/8839-reports-8e46644943.chunk.css +0 -1
  345. package/dist/css/8989-reports-92b4f1dde8.chunk.css +0 -8
  346. package/dist/css/9059-reports-a2ac630ebc.chunk.css +0 -35
  347. package/dist/css/9285-reports-5b9af8380f.chunk.css +0 -13
  348. package/dist/css/9661-reports-7435e94a85.chunk.css +0 -4
  349. package/dist/css/9822-reports-a1db1900c7.chunk.css +0 -8
  350. package/dist/css/9949-reports-f22fa2b407.chunk.css +0 -15
  351. package/dist/css/reports-app-b4c4ec5632.css +0 -32
  352. package/dist/languages/en.json +0 -1
  353. package/dist/scripts/1103-d77d388f5b-reports.chunk.js +0 -1
  354. package/dist/scripts/1177-7cf7817e74-reports.chunk.js +0 -1
  355. package/dist/scripts/1456-b7f437ef87-reports.chunk.js +0 -1
  356. package/dist/scripts/1648-e892604f5a-reports.chunk.js +0 -1
  357. package/dist/scripts/1934-ca8497c768-reports.chunk.js +0 -2
  358. package/dist/scripts/1934-ca8497c768-reports.chunk.js.LICENSE.txt +0 -9
  359. package/dist/scripts/2087-e0ef668e1f-reports.chunk.js +0 -1
  360. package/dist/scripts/209-72e77f375e-reports.chunk.js +0 -1
  361. package/dist/scripts/2150-4e9e1fb433-reports.chunk.js +0 -1
  362. package/dist/scripts/2217-15fa35197a-reports.chunk.js +0 -1
  363. package/dist/scripts/2476-a700f69dc4-reports.chunk.js +0 -1
  364. package/dist/scripts/2539-04dfb4f4f1-reports.chunk.js +0 -1
  365. package/dist/scripts/2997-444b5bdaf0-reports.chunk.js +0 -1
  366. package/dist/scripts/2999-f5ee243b25-reports.chunk.js +0 -2
  367. package/dist/scripts/2999-f5ee243b25-reports.chunk.js.LICENSE.txt +0 -1
  368. package/dist/scripts/312-8b006e92ff-reports.chunk.js +0 -1
  369. package/dist/scripts/4234-e3c04f41eb-reports.chunk.js +0 -1
  370. package/dist/scripts/4372-26474a3318-reports.chunk.js +0 -1
  371. package/dist/scripts/438-b444dfb8c6-reports.chunk.js +0 -1
  372. package/dist/scripts/4582-230f130f41-reports.chunk.js +0 -1
  373. package/dist/scripts/4752-db4247883d-reports.chunk.js +0 -2
  374. package/dist/scripts/4752-db4247883d-reports.chunk.js.LICENSE.txt +0 -118
  375. package/dist/scripts/4979-7e14b09f33-reports.chunk.js +0 -1
  376. package/dist/scripts/5051-ff0ec9348d-reports.chunk.js +0 -1
  377. package/dist/scripts/5091-ddd6f61b55-reports.chunk.js +0 -1
  378. package/dist/scripts/5173-cce3b37672-reports.chunk.js +0 -1
  379. package/dist/scripts/5177-a7372e7b8d-reports.chunk.js +0 -1
  380. package/dist/scripts/5304-d5674b32b4-reports.chunk.js +0 -1
  381. package/dist/scripts/5802-2125536755-reports.chunk.js +0 -1
  382. package/dist/scripts/6007-42edca6bba-reports.chunk.js +0 -1
  383. package/dist/scripts/6031-b1c60cc409-reports.chunk.js +0 -1
  384. package/dist/scripts/6081-2bbda6cac3-reports.chunk.js +0 -1
  385. package/dist/scripts/6180-bdb237ffbe-reports.chunk.js +0 -2
  386. package/dist/scripts/6180-bdb237ffbe-reports.chunk.js.LICENSE.txt +0 -1
  387. package/dist/scripts/6198-189ddde870-reports.chunk.js +0 -1
  388. package/dist/scripts/6356-a1b313c73e-reports.chunk.js +0 -1
  389. package/dist/scripts/645-e8b19128e5-reports.chunk.js +0 -1
  390. package/dist/scripts/6545-eadce8e749-reports.chunk.js +0 -1
  391. package/dist/scripts/6811-40ded4c089-reports.chunk.js +0 -1
  392. package/dist/scripts/7238-de5ef0ebfb-reports.chunk.js +0 -1
  393. package/dist/scripts/7562-748e60c3fc-reports.chunk.js +0 -1
  394. package/dist/scripts/7709-82750ee317-reports.chunk.js +0 -1
  395. package/dist/scripts/7723-1799f5aa26-reports.chunk.js +0 -1
  396. package/dist/scripts/7747-bc33e51d7b-reports.chunk.js +0 -2
  397. package/dist/scripts/7747-bc33e51d7b-reports.chunk.js.LICENSE.txt +0 -1
  398. package/dist/scripts/7925-c6c532c9c4-reports.chunk.js +0 -1
  399. package/dist/scripts/8087-1d9e9701e5-reports.chunk.js +0 -1
  400. package/dist/scripts/8393-c37cc22b4c-reports.chunk.js +0 -1
  401. package/dist/scripts/8418-9f96caf039-reports.chunk.js +0 -1
  402. package/dist/scripts/8450-f2d5d99614-reports.chunk.js +0 -1
  403. package/dist/scripts/8591-4811082ab0-reports.chunk.js +0 -1
  404. package/dist/scripts/8622-a422eff0c4-reports.chunk.js +0 -1
  405. package/dist/scripts/8839-711793a97f-reports.chunk.js +0 -1
  406. package/dist/scripts/8989-ca5cab7f45-reports.chunk.js +0 -1
  407. package/dist/scripts/9059-b2dcf3cdb2-reports.chunk.js +0 -1
  408. package/dist/scripts/9162-7ffc692736-reports.chunk.js +0 -1
  409. package/dist/scripts/9285-ecddd01efb-reports.chunk.js +0 -1
  410. package/dist/scripts/9590-41bb23ae71-reports.chunk.js +0 -1
  411. package/dist/scripts/9647-f0c111d3f0-reports.chunk.js +0 -1
  412. package/dist/scripts/9661-2dee4c3417-reports.chunk.js +0 -1
  413. package/dist/scripts/9822-1b202f9d49-reports.chunk.js +0 -1
  414. package/dist/scripts/9895-3b3feb12b9-reports.chunk.js +0 -1
  415. package/dist/scripts/9949-63e32c6733-reports.chunk.js +0 -1
  416. package/dist/scripts/bundle-8754f0e6b8.min.js +0 -2
  417. package/dist/scripts/bundle-8754f0e6b8.min.js.LICENSE.txt +0 -108
  418. package/dist/scripts/polyfills-3db3f009d4.min.js +0 -1
@@ -0,0 +1,2 @@
1
+ import{u as d,a as n,L as c,b as u,P as l,j as e}from"./app-DhPN-zNB.js";import{V as p,a as h}from"./B-ZRPp91.chunk.js";import{u as v}from"./BncpEV2O.chunk.js";import{u as j,a as V}from"./mjKop7CA.chunk.js";import{u as x}from"./HCxw4efP.chunk.js";import{E as C}from"./DeoNhQh0.chunk.js";import{V as f}from"./BiFq1JkI.chunk.js";import{V as w}from"./MqKLZ7-F.chunk.js";import"./6SDR31f9.chunk.js";import"./CztNQjFH.chunk.js";import"./C-Bnglks.chunk.js";import"./6bLX1DNm.chunk.js";import"./DtbthThZ.chunk.js";import"./NRnV1wHl.chunk.js";import"./DNRcL1e9.chunk.js";import"./aRYKkB2W.chunk.js";import"./hqhdC5CE.chunk.js";import"./DDeXXa-Z.chunk.js";import"./5O9SdVRZ.chunk.js";import"./CcURCjqv.chunk.js";import"./sFV5nxD4.chunk.js";import"./Br_GRaAX.chunk.js";import"./DsbeU03P.chunk.js";import"./D-LQhb27.chunk.js";import"./rLITk9YY.chunk.js";import"./CEPQucRi.chunk.js";import"./DFFdinDv.chunk.js";import"./CpDqrbAS.chunk.js";import"./CObSk_oj.chunk.js";const b="_column1_1i69v_1",N="_column2_1i69v_4",_="_barChart_1i69v_7",s={column1:b,column2:N,barChart:_},S="reportsVideos.videoOverview",g=c.encloseNamespace(S);function ae(i){var t,o;const a=d(p.video(i.id));n({title:a.data?g("pageTitle",{video:(t=a.data)==null?void 0:t.name}):null}),x((o=a.data)==null?void 0:o.name),j(V(a.data)),v(a);const{hasPermissions:m}=u(),r=!m(l.ViewCustomerAnalytics);return e.jsxs("div",{children:[e.jsx(h,{id:i.id}),e.jsxs("div",{className:"d-flex",children:[e.jsx("div",{className:`pe-2 ${s.column1}`,children:e.jsx(w,{objectId:i.id,useSharerId:r,className:"h-100"})}),e.jsxs("div",{className:`ps-2 ${s.column2}`,children:[e.jsx(f,{objectId:i.id,useSharerId:r,className:s.barChart}),e.jsx("div",{className:"mt-3",children:e.jsx(C,{objectId:i.id,useSharerId:r,layout:"horizontal"})})]})]})]})}export{ae as VideoOverviewView};
2
+ //# sourceMappingURL=D_WfHgZP.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"D_WfHgZP.chunk.js","sources":["../../src/apps/videos/views/video-overview/VideoOverviewView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Video } from 'libs/shared/interfaces';\n\nimport { VideoRequests } from 'shared/flight-requests/VideoRequests';\nimport { useHandleVideoError } from 'shared/hooks/UseHandleVideoError';\nimport { useSetHeaderActions } from 'shared/hooks/UseSetHeaderActions';\nimport { useSetHeaderTitle } from 'shared/hooks/UseSetHeaderTitle';\nimport { useGetObjectHeaderActions } from 'shared/utils/HeaderActionUtils';\nimport { EngagementOverviewCardView } from 'shared/views/overview-cards/engagement-overview-card/EngagementOverviewCardView';\nimport { ViewCountBarChartCardView } from 'shared/views/overview-cards/view-count-bar-chart-card/ViewCountBarChartCardView';\nimport { ViewCountPieChartCardView } from 'shared/views/overview-cards/view-count-pie-chart-card/ViewCountPieChartCardView';\n\nimport { VideoNav } from 'apps/videos/components/video-nav/VideoNav';\n\nimport styles from './video-overview.module.scss';\n\nconst namespace = 'reportsVideos.videoOverview';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface VideoOverviewViewProps {\n id: string;\n}\n\nexport function VideoOverviewView(props: VideoOverviewViewProps): JSX.Element {\n const video = Flight.useBasicFetch<Video>(VideoRequests.video(props.id));\n \n useSetPageMetadata({ title: video.data ? getPhrase('pageTitle', { video: video.data?.name }) : null });\n useSetHeaderTitle(video.data?.name);\n useSetHeaderActions(useGetObjectHeaderActions(video.data));\n useHandleVideoError(video);\n\n const { hasPermissions } = usePermissions();\n\n const scopeBySharerId = !hasPermissions(PermissionName.ViewCustomerAnalytics);\n\n return (\n <div>\n <VideoNav id={props.id} />\n <div className='d-flex'>\n <div className={`pe-2 ${styles.column1}`}>\n <ViewCountPieChartCardView\n objectId={props.id}\n useSharerId={scopeBySharerId}\n className='h-100'\n />\n </div>\n <div className={`ps-2 ${styles.column2}`}>\n <ViewCountBarChartCardView\n objectId={props.id}\n useSharerId={scopeBySharerId}\n className={styles.barChart}\n />\n <div className='mt-3'>\n <EngagementOverviewCardView\n objectId={props.id}\n useSharerId={scopeBySharerId}\n layout='horizontal'\n />\n </div>\n </div>\n </div>\n </div>\n );\n}"],"names":["namespace","getPhrase","LanguageService","VideoOverviewView","props","video","Flight.useBasicFetch","VideoRequests","useSetPageMetadata","_a","useSetHeaderTitle","_b","useSetHeaderActions","useGetObjectHeaderActions","useHandleVideoError","hasPermissions","usePermissions","scopeBySharerId","PermissionName","jsx","VideoNav","jsxs","styles","ViewCountPieChartCardView","ViewCountBarChartCardView","EngagementOverviewCardView"],"mappings":"oiCAuBMA,EAAY,8BACZC,EAAYC,EAAgB,iBAAiBF,CAAS,EAMrD,SAASG,GAAkBC,EAA4C,SAC5E,MAAMC,EAAQC,EAA4BC,EAAc,MAAMH,EAAM,EAAE,CAAC,EAEvEI,EAAmB,CAAE,MAAOH,EAAM,KAAOJ,EAAU,YAAa,CAAE,OAAOQ,EAAAJ,EAAM,OAAN,YAAAI,EAAY,IAAA,CAAM,EAAI,KAAM,EACrGC,GAAkBC,EAAAN,EAAM,OAAN,YAAAM,EAAY,IAAI,EAClCC,EAAoBC,EAA0BR,EAAM,IAAI,CAAC,EACzDS,EAAoBT,CAAK,EAEzB,KAAM,CAAE,eAAAU,CAAA,EAAmBC,EAAA,EAErBC,EAAkB,CAACF,EAAeG,EAAe,qBAAqB,EAE5E,cACG,MAAA,CACC,SAAA,CAAAC,EAAAA,IAACC,EAAA,CAAS,GAAIhB,EAAM,EAAA,CAAI,EACxBiB,EAAAA,KAAC,MAAA,CAAI,UAAU,SACb,SAAA,CAAAF,MAAC,MAAA,CAAI,UAAW,QAAQG,EAAO,OAAO,GACpC,SAAAH,EAAAA,IAACI,EAAA,CACC,SAAUnB,EAAM,GAChB,YAAaa,EACb,UAAU,OAAA,CAAA,EAEd,SACC,MAAA,CAAI,UAAW,QAAQK,EAAO,OAAO,GACpC,SAAA,CAAAH,EAAAA,IAACK,EAAA,CACC,SAAUpB,EAAM,GAChB,YAAaa,EACb,UAAWK,EAAO,QAAA,CAAA,EAEpBH,EAAAA,IAAC,MAAA,CAAI,UAAU,OACb,SAAAA,EAAAA,IAACM,EAAA,CACC,SAAUrB,EAAM,GAChB,YAAaa,EACb,OAAO,YAAA,CAAA,CACT,CACF,CAAA,CAAA,CACF,CAAA,CAAA,CACF,CAAA,EACF,CAEJ"}
@@ -0,0 +1,34 @@
1
+ import{r as A,al as me,an as fe,L as U,j as i,h as y,_ as H,aa as $,v as R,aV as k,b$ as ve,aU as P,p as f,aF as z,a5 as ge,a6 as O}from"./app-DhPN-zNB.js";import{I as xe}from"./DEFJUMtW.chunk.js";import{j as be,h as w,f as B,e as ee,k as te,I as se}from"./Bodl5h9Z.chunk.js";import{u as we}from"./hqhdC5CE.chunk.js";import{a as b}from"./BZfWKvo2.chunk.js";import{I as ye}from"./DNEgb5v1.chunk.js";import{t as Y,d as q,m as pe,c as ie,i as ke}from"./DePDakSd.chunk.js";import{T as Se}from"./BRRS4PKg.chunk.js";const L=U.encloseNamespace("reportsShared.dataHooks"),wt=(e,n,a)=>{const[s,t]=A.useState({}),r=me(),l=we();function o(h,d){h.forEach(u=>{t(v=>({...v,[be(u)]:{...u,status:d}}))})}function c(){const h=Object.keys(s).map(g=>s[g]);if(!h.length)return;let d=0,u=0;function v(){u++}function m(){d++,d===h.length&&x()}function x(){let g="",p=!1;u===0&&(g=L("error",{smartCount:h.length}),p=!0),u<d&&(g=L("success",{smartCount:u})+` ${L("partialError",{smartCount:d-u})}`),u===d&&(g=L("success",{smartCount:u})),p?l.error(g):l.success(g),t({}),a&&a()}h.forEach(({id:g,resultId:p,questionId:S,status:W})=>{fe(r,xe.mark(e,n,g,{id:g,resultId:p,questionId:S,status:W},v,null,m))})}return{markedAnswers:s,addMarkedAnswers:o,submitMarkedAnswers:c}};function I(e){const{answer:n}=e;function a(s){switch(s){case w.Correct:return"bg-light-green";case w.Incorrect:return"bg-light-red";case w.PendingReview:return"bg-light-blue"}}return i.jsxs("div",{className:`${a(n.status)} rounded p-2 mb-2`,children:[i.jsxs("div",{className:"d-flex align-items-center gap-2",children:[n.status===w.Correct&&i.jsx(y,{svg:H,className:"svg-container flex-shrink-0 text-success"}),n.status===w.Incorrect&&i.jsx(y,{svg:$,className:"svg-container flex-shrink-0 text-danger"}),!e.customAnswer&&i.jsx("span",{className:e.textClassName,children:n.text})]}),e.children]},n.id)}const Ne="shared.interactionResponses",Ce=U.encloseNamespace(Ne);function Ee(e){const n=R.first(e.answers);return n?i.jsxs(I,{answer:n,customAnswer:!0,children:[i.jsx("div",{className:"ratio ratio-16x9",children:i.jsx("img",{className:"img-fluid bg-white border rounded h-100 w-100",src:n.text,alt:`${Ce("illustrationAlt")}: ${e.interaction.name}`})}),e.children]}):i.jsx(i.Fragment,{})}function je(e){return e.answers.length?i.jsx("ul",{className:"list-unstyled",children:e.answers.map(n=>i.jsx("li",{children:i.jsx(I,{answer:n,textClassName:"bg-white p-1 border border-gray-300 rounded"})},n.id))}):i.jsx(i.Fragment,{})}function Oe(e){return e.answers.length?i.jsx("ul",{className:"list-unstyled",children:e.answers.map(n=>i.jsx("li",{children:i.jsx(I,{answer:n})},n.id))}):i.jsx(i.Fragment,{})}function Ae(e){const n=R.first(e.answers);return n?i.jsx(I,{answer:n,children:e.children}):i.jsx(i.Fragment,{})}function Re(e){const n=R.first(e.answers);return n?i.jsx(I,{answer:n}):i.jsx(i.Fragment,{})}const K=()=>i.jsx(i.Fragment,{}),Ie={[b.Annotation]:K,[b.Image]:K,[b.MissingWord]:je,[b.MultipleChoice]:Oe,[b.TrueOrFalse]:Re,[b.ShortAnswer]:Ae,[b.Illustration]:Ee};function V(e){return i.jsxs(i.Fragment,{children:[e.correctness===B.Correct&&i.jsx("div",{className:"ms-2 text-success",children:i.jsx(y,{svg:Se})}),e.correctness===B.Incorrect&&i.jsx("div",{className:"ms-2 text-danger",children:i.jsx(y,{svg:$})})]})}function re(e){return i.jsxs("div",{className:"d-flex align-items-center justify-content-between mb-2",children:[i.jsx("p",{className:"fw-semibold mb-0",children:e.anonymisedUserName||k.getFullName(e.studentResults.user)}),i.jsx(V,{correctness:e.correctness})]})}function ne(e){return i.jsx("svg",{...e,children:i.jsx("path",{fill:"currentColor",d:"M12.034 21C7.044 21 3 16.968 3 11.993s4.045-9.006 9.034-9.006 9.034 4.032 9.034 9.006S17.023 21 12.034 21M14.95 8.22l-2.946 2.867-2.89-2.91a.646.646 0 0 0-.909 0 .633.633 0 0 0 0 .9l2.891 2.91-2.89 2.922a.633.633 0 0 0 0 .9c.25.25.657.25.908 0l2.89-2.92 2.946 2.92c.251.25.658.25.909 0a.633.633 0 0 0 0-.9l-2.946-2.921L15.86 9.12a.633.633 0 0 0 0-.9.646.646 0 0 0-.909 0"})})}function We(e){return i.jsxs("svg",{...e,children:[i.jsx("rect",{width:"24",height:"24",fill:"white"}),i.jsx("path",{fill:"currentColor",fillRule:"evenodd",d:"M21 12c0-4.972-4.028-9-9-9s-9 4.028-9 9 4.028 9 9 9 9-4.028 9-9M6.492 6.492A7.74 7.74 0 0 1 12 4.212c2.081 0 4.037.809 5.508 2.28A7.74 7.74 0 0 1 19.788 12c0 2.081-.809 4.037-2.28 5.508A7.74 7.74 0 0 1 12 19.788a7.74 7.74 0 0 1-5.508-2.28A7.74 7.74 0 0 1 4.212 12c0-2.081.809-4.037 2.28-5.508m8.46 1.728-2.947 2.867-2.89-2.91a.646.646 0 0 0-.909 0 .633.633 0 0 0 0 .9l2.891 2.91-2.89 2.922a.633.633 0 0 0 0 .9c.25.25.657.25.908 0l2.89-2.92 2.946 2.92c.251.25.658.25.909 0a.633.633 0 0 0 0-.9l-2.946-2.921L15.86 9.12a.633.633 0 0 0 0-.9.646.646 0 0 0-.909 0",clipRule:"evenodd"})]})}function ae(e){return i.jsx("svg",{...e,children:i.jsx("path",{fill:"currentColor",d:"M12 3c4.972 0 9 4.028 9 9s-4.028 9-9 9-9-4.028-9-9 4.028-9 9-9m4.244 5.578a.77.77 0 0 0-1.058.068l-4.722 5.18-1.684-1.615a.77.77 0 0 0-1.06 0 .7.7 0 0 0 0 1.018l2.25 2.16a.77.77 0 0 0 1.094-.035l5.25-5.76a.7.7 0 0 0-.07-1.016"})})}function le(e){return e.correctness!==B.AwaitingMarking?i.jsx(i.Fragment,{}):i.jsxs("div",{className:"d-flex justify-content-end gap-2 mt-2",children:[i.jsx("div",{className:`d-flex flex-column justify-content-end cursor-pointer
2
+ ${e.markedStatus===w.Correct?"text-success":""}`,children:i.jsx(y,{svg:e.markedStatus===w.Correct?ae:ve,onClick:()=>e.markInteraction(e.studentAttempt.answers,w.Correct)})}),i.jsx("div",{className:`d-flex flex-column justify-content-end cursor-pointer
3
+ ${e.markedStatus===w.Incorrect?" text-danger":""}`,children:i.jsx(y,{svg:e.markedStatus===w.Incorrect?ne:We,onClick:()=>e.markInteraction(e.studentAttempt.answers,w.Incorrect)})})]})}const ze="interactives.responseTypes",Le=U.encloseNamespace(ze);function oe(){return i.jsx("p",{className:"p-2",children:i.jsx("em",{children:Le("noResponse")})})}const Fe="_avatarContainer_1h05x_1",Me={avatarContainer:Fe};function yt(e){var r,l,o,c,h,d;const n=Ie[e.interaction.typeId];if(!n)return i.jsx(i.Fragment,{});const a=ee(e.studentResults),s=te(e.interaction.id,a),t=se.isInteractionCorrect(e.interaction,a);return i.jsx("div",{className:"position-relative",children:i.jsx("div",{className:`rounded ${e.className??""}`,children:i.jsxs("div",{className:"d-flex",children:[!!e.showStudentDetails&&i.jsx("div",{className:"me-2",children:i.jsx("div",{className:Me.avatarContainer,children:i.jsx(P,{imageCdnUrl:e.imageCdnUrl,initials:e.anonymisedUserName?k.getInitialsFromFullName(e.anonymisedUserName):k.getInitials((r=e.studentResults.user)==null?void 0:r.name,(l=e.studentResults.user)==null?void 0:l.surname),imageUrl:e.anonymisedUserName?null:(c=(o=e.studentResults.user)==null?void 0:o.avatar)==null?void 0:c.url,showAnonymousUser:!!((d=(h=e.studentResults)==null?void 0:h.user)!=null&&d.sessionId)})})}),i.jsxs("div",{className:"flex-grow-1",children:[!!e.showStudentDetails&&i.jsx(re,{studentResults:e.studentResults,correctness:t,anonymisedUserName:e.anonymisedUserName}),i.jsxs("div",{className:"d-flex justify-content-between",children:[i.jsx("div",{className:`flex-grow-1 mb-2 ${e.responseComponentClass?e.responseComponentClass:""}`,children:s?i.jsx(n,{interaction:e.interaction,answers:s.answers,imageCdnUrl:e.imageCdnUrl,user:e.studentResults.user,showFeedback:e.showFeedback,showAvatar:e.showAvatar,children:i.jsx(le,{studentAttempt:s,correctness:t,markInteraction:e.markInteraction,markedStatus:e.markedStatus})}):i.jsx(oe,{})}),!e.showStudentDetails&&i.jsx(V,{correctness:t})]})]})]})})})}function $e(e){const n=R.first(e.answers);if(!n)return i.jsx(i.Fragment,{});let a="rounded p-2 mb-2 w-50";return e.reportsStyling||(a+=" text-white"),i.jsx("div",{className:a,children:i.jsx("img",{className:"img-fluid border rounded",src:n.text,alt:`Illustrated answer to the question: ${e.interaction.name}`})})}const _="cv-missing-word-";function Pe(e){const a=e.interaction.data.sentence.replace(/{([^{}]*)}/g,(t,r)=>`{${_}${r}}`).split(/{([^{}]*)}/g);let s="p-2";return e.reportsStyling||(s+=" border rounded"),i.jsx("div",{className:s,children:a.map((t,r)=>{if(!t.startsWith(_))return t;const l=t.replace(_,""),o=e.interaction.actionableItems.find(d=>d.order.toString()===l);if(!o)return;const c=e.answers.find(d=>d.id==o.id);if(!c)return;if(!e.showFeedback)return i.jsx("strong",{className:"text-info",children:c.text},r);const h=c.status===w.Correct;return i.jsxs(f.Fragment,{children:[!h&&i.jsxs(i.Fragment,{children:[i.jsx("del",{className:"text-danger",children:i.jsx("strong",{children:c.text})})," "]}),i.jsx("strong",{className:"text-success",children:o.name})]},r)})})}var j=null,G=null;ie&&window.addEventListener("resize",function(){G!==window.devicePixelRatio&&(G=window.devicePixelRatio,j=null)});function J(){if(j===null){if(typeof document>"u")return j=0,j;var e=document.body,n=document.createElement("div");n.classList.add("simplebar-hide-scrollbar"),e.appendChild(n);var a=n.getBoundingClientRect().right;e.removeChild(n),j=a}return j}function N(e){return!e||!e.ownerDocument||!e.ownerDocument.defaultView?window:e.ownerDocument.defaultView}function D(e){return!e||!e.ownerDocument?document:e.ownerDocument}var F=(function(){function e(a,s){var t=this;this.onScroll=function(){var r=N(t.el);t.scrollXTicking||(r.requestAnimationFrame(t.scrollX),t.scrollXTicking=!0),t.scrollYTicking||(r.requestAnimationFrame(t.scrollY),t.scrollYTicking=!0)},this.scrollX=function(){t.axis.x.isOverflowing&&(t.showScrollbar("x"),t.positionScrollbar("x")),t.scrollXTicking=!1},this.scrollY=function(){t.axis.y.isOverflowing&&(t.showScrollbar("y"),t.positionScrollbar("y")),t.scrollYTicking=!1},this.onMouseEnter=function(){t.showScrollbar("x"),t.showScrollbar("y")},this.onMouseMove=function(r){t.mouseX=r.clientX,t.mouseY=r.clientY,(t.axis.x.isOverflowing||t.axis.x.forceVisible)&&t.onMouseMoveForAxis("x"),(t.axis.y.isOverflowing||t.axis.y.forceVisible)&&t.onMouseMoveForAxis("y")},this.onMouseLeave=function(){t.onMouseMove.cancel(),(t.axis.x.isOverflowing||t.axis.x.forceVisible)&&t.onMouseLeaveForAxis("x"),(t.axis.y.isOverflowing||t.axis.y.forceVisible)&&t.onMouseLeaveForAxis("y"),t.mouseX=-1,t.mouseY=-1},this.onWindowResize=function(){t.scrollbarWidth=t.getScrollbarWidth(),t.hideNativeScrollbar()},this.hideScrollbars=function(){t.axis.x.track.rect=t.axis.x.track.el.getBoundingClientRect(),t.axis.y.track.rect=t.axis.y.track.el.getBoundingClientRect(),t.isWithinBounds(t.axis.y.track.rect)||(t.axis.y.scrollbar.el.classList.remove(t.classNames.visible),t.axis.y.isVisible=!1),t.isWithinBounds(t.axis.x.track.rect)||(t.axis.x.scrollbar.el.classList.remove(t.classNames.visible),t.axis.x.isVisible=!1)},this.onPointerEvent=function(r){var l,o;t.axis.x.track.rect=t.axis.x.track.el.getBoundingClientRect(),t.axis.y.track.rect=t.axis.y.track.el.getBoundingClientRect(),(t.axis.x.isOverflowing||t.axis.x.forceVisible)&&(l=t.isWithinBounds(t.axis.x.track.rect)),(t.axis.y.isOverflowing||t.axis.y.forceVisible)&&(o=t.isWithinBounds(t.axis.y.track.rect)),(l||o)&&(r.preventDefault(),r.stopPropagation(),r.type==="mousedown"&&(l&&(t.axis.x.scrollbar.rect=t.axis.x.scrollbar.el.getBoundingClientRect(),t.isWithinBounds(t.axis.x.scrollbar.rect)?t.onDragStart(r,"x"):t.onTrackClick(r,"x")),o&&(t.axis.y.scrollbar.rect=t.axis.y.scrollbar.el.getBoundingClientRect(),t.isWithinBounds(t.axis.y.scrollbar.rect)?t.onDragStart(r,"y"):t.onTrackClick(r,"y"))))},this.drag=function(r){var l,o=t.axis[t.draggedAxis].track,c=o.rect[t.axis[t.draggedAxis].sizeAttr],h=t.axis[t.draggedAxis].scrollbar,d=t.contentWrapperEl[t.axis[t.draggedAxis].scrollSizeAttr],u=parseInt(t.elStyles[t.axis[t.draggedAxis].sizeAttr],10);r.preventDefault(),r.stopPropagation(),t.draggedAxis==="y"?l=r.pageY:l=r.pageX;var v=l-o.rect[t.axis[t.draggedAxis].offsetAttr]-t.axis[t.draggedAxis].dragOffset,m=v/(c-h.size),x=m*(d-u);t.draggedAxis==="x"&&(x=t.isRtl&&e.getRtlHelpers().isRtlScrollbarInverted?x-(c+h.size):x,x=t.isRtl&&e.getRtlHelpers().isRtlScrollingInverted?-x:x),t.contentWrapperEl[t.axis[t.draggedAxis].scrollOffsetAttr]=x},this.onEndDrag=function(r){var l=D(t.el),o=N(t.el);r.preventDefault(),r.stopPropagation(),t.el.classList.remove(t.classNames.dragging),l.removeEventListener("mousemove",t.drag,!0),l.removeEventListener("mouseup",t.onEndDrag,!0),t.removePreventClickId=o.setTimeout(function(){l.removeEventListener("click",t.preventClick,!0),l.removeEventListener("dblclick",t.preventClick,!0),t.removePreventClickId=null})},this.preventClick=function(r){r.preventDefault(),r.stopPropagation()},this.el=a,this.minScrollbarWidth=20,this.options=Object.assign({},e.defaultOptions,{},s),this.classNames=Object.assign({},e.defaultOptions.classNames,{},this.options.classNames),this.axis={x:{scrollOffsetAttr:"scrollLeft",sizeAttr:"width",scrollSizeAttr:"scrollWidth",offsetSizeAttr:"offsetWidth",offsetAttr:"left",overflowAttr:"overflowX",dragOffset:0,isOverflowing:!0,isVisible:!1,forceVisible:!1,track:{},scrollbar:{}},y:{scrollOffsetAttr:"scrollTop",sizeAttr:"height",scrollSizeAttr:"scrollHeight",offsetSizeAttr:"offsetHeight",offsetAttr:"top",overflowAttr:"overflowY",dragOffset:0,isOverflowing:!0,isVisible:!1,forceVisible:!1,track:{},scrollbar:{}}},this.removePreventClickId=null,!e.instances.has(this.el)&&(this.recalculate=Y(this.recalculate.bind(this),64),this.onMouseMove=Y(this.onMouseMove.bind(this),64),this.hideScrollbars=q(this.hideScrollbars.bind(this),this.options.timeout),this.onWindowResize=q(this.onWindowResize.bind(this),64,{leading:!0}),e.getRtlHelpers=pe(e.getRtlHelpers),this.init())}e.getRtlHelpers=function(){var s=document.createElement("div");s.innerHTML='<div class="hs-dummy-scrollbar-size"><div style="height: 200%; width: 200%; margin: 10px 0;"></div></div>';var t=s.firstElementChild;document.body.appendChild(t);var r=t.firstElementChild;t.scrollLeft=0;var l=e.getOffset(t),o=e.getOffset(r);t.scrollLeft=999;var c=e.getOffset(r);return{isRtlScrollingInverted:l.left!==o.left&&o.left-c.left!==0,isRtlScrollbarInverted:l.left!==o.left}},e.getOffset=function(s){var t=s.getBoundingClientRect(),r=D(s),l=N(s);return{top:t.top+(l.pageYOffset||r.documentElement.scrollTop),left:t.left+(l.pageXOffset||r.documentElement.scrollLeft)}};var n=e.prototype;return n.init=function(){e.instances.set(this.el,this),ie&&(this.initDOM(),this.scrollbarWidth=this.getScrollbarWidth(),this.recalculate(),this.initListeners())},n.initDOM=function(){var s=this;if(Array.prototype.filter.call(this.el.children,function(l){return l.classList.contains(s.classNames.wrapper)}).length)this.wrapperEl=this.el.querySelector("."+this.classNames.wrapper),this.contentWrapperEl=this.options.scrollableNode||this.el.querySelector("."+this.classNames.contentWrapper),this.contentEl=this.options.contentNode||this.el.querySelector("."+this.classNames.contentEl),this.offsetEl=this.el.querySelector("."+this.classNames.offset),this.maskEl=this.el.querySelector("."+this.classNames.mask),this.placeholderEl=this.findChild(this.wrapperEl,"."+this.classNames.placeholder),this.heightAutoObserverWrapperEl=this.el.querySelector("."+this.classNames.heightAutoObserverWrapperEl),this.heightAutoObserverEl=this.el.querySelector("."+this.classNames.heightAutoObserverEl),this.axis.x.track.el=this.findChild(this.el,"."+this.classNames.track+"."+this.classNames.horizontal),this.axis.y.track.el=this.findChild(this.el,"."+this.classNames.track+"."+this.classNames.vertical);else{for(this.wrapperEl=document.createElement("div"),this.contentWrapperEl=document.createElement("div"),this.offsetEl=document.createElement("div"),this.maskEl=document.createElement("div"),this.contentEl=document.createElement("div"),this.placeholderEl=document.createElement("div"),this.heightAutoObserverWrapperEl=document.createElement("div"),this.heightAutoObserverEl=document.createElement("div"),this.wrapperEl.classList.add(this.classNames.wrapper),this.contentWrapperEl.classList.add(this.classNames.contentWrapper),this.offsetEl.classList.add(this.classNames.offset),this.maskEl.classList.add(this.classNames.mask),this.contentEl.classList.add(this.classNames.contentEl),this.placeholderEl.classList.add(this.classNames.placeholder),this.heightAutoObserverWrapperEl.classList.add(this.classNames.heightAutoObserverWrapperEl),this.heightAutoObserverEl.classList.add(this.classNames.heightAutoObserverEl);this.el.firstChild;)this.contentEl.appendChild(this.el.firstChild);this.contentWrapperEl.appendChild(this.contentEl),this.offsetEl.appendChild(this.contentWrapperEl),this.maskEl.appendChild(this.offsetEl),this.heightAutoObserverWrapperEl.appendChild(this.heightAutoObserverEl),this.wrapperEl.appendChild(this.heightAutoObserverWrapperEl),this.wrapperEl.appendChild(this.maskEl),this.wrapperEl.appendChild(this.placeholderEl),this.el.appendChild(this.wrapperEl)}if(!this.axis.x.track.el||!this.axis.y.track.el){var t=document.createElement("div"),r=document.createElement("div");t.classList.add(this.classNames.track),r.classList.add(this.classNames.scrollbar),t.appendChild(r),this.axis.x.track.el=t.cloneNode(!0),this.axis.x.track.el.classList.add(this.classNames.horizontal),this.axis.y.track.el=t.cloneNode(!0),this.axis.y.track.el.classList.add(this.classNames.vertical),this.el.appendChild(this.axis.x.track.el),this.el.appendChild(this.axis.y.track.el)}this.axis.x.scrollbar.el=this.axis.x.track.el.querySelector("."+this.classNames.scrollbar),this.axis.y.scrollbar.el=this.axis.y.track.el.querySelector("."+this.classNames.scrollbar),this.options.autoHide||(this.axis.x.scrollbar.el.classList.add(this.classNames.visible),this.axis.y.scrollbar.el.classList.add(this.classNames.visible)),this.el.setAttribute("data-simplebar","init")},n.initListeners=function(){var s=this,t=N(this.el);this.options.autoHide&&this.el.addEventListener("mouseenter",this.onMouseEnter),["mousedown","click","dblclick"].forEach(function(o){s.el.addEventListener(o,s.onPointerEvent,!0)}),["touchstart","touchend","touchmove"].forEach(function(o){s.el.addEventListener(o,s.onPointerEvent,{capture:!0,passive:!0})}),this.el.addEventListener("mousemove",this.onMouseMove),this.el.addEventListener("mouseleave",this.onMouseLeave),this.contentWrapperEl.addEventListener("scroll",this.onScroll),t.addEventListener("resize",this.onWindowResize);var r=!1,l=t.ResizeObserver||ke;this.resizeObserver=new l(function(){r&&s.recalculate()}),this.resizeObserver.observe(this.el),this.resizeObserver.observe(this.contentEl),t.requestAnimationFrame(function(){r=!0}),this.mutationObserver=new t.MutationObserver(this.recalculate),this.mutationObserver.observe(this.contentEl,{childList:!0,subtree:!0,characterData:!0})},n.recalculate=function(){var s=N(this.el);this.elStyles=s.getComputedStyle(this.el),this.isRtl=this.elStyles.direction==="rtl";var t=this.heightAutoObserverEl.offsetHeight<=1,r=this.heightAutoObserverEl.offsetWidth<=1,l=this.contentEl.offsetWidth,o=this.contentWrapperEl.offsetWidth,c=this.elStyles.overflowX,h=this.elStyles.overflowY;this.contentEl.style.padding=this.elStyles.paddingTop+" "+this.elStyles.paddingRight+" "+this.elStyles.paddingBottom+" "+this.elStyles.paddingLeft,this.wrapperEl.style.margin="-"+this.elStyles.paddingTop+" -"+this.elStyles.paddingRight+" -"+this.elStyles.paddingBottom+" -"+this.elStyles.paddingLeft;var d=this.contentEl.scrollHeight,u=this.contentEl.scrollWidth;this.contentWrapperEl.style.height=t?"auto":"100%",this.placeholderEl.style.width=r?l+"px":"auto",this.placeholderEl.style.height=d+"px";var v=this.contentWrapperEl.offsetHeight;this.axis.x.isOverflowing=u>l,this.axis.y.isOverflowing=d>v,this.axis.x.isOverflowing=c==="hidden"?!1:this.axis.x.isOverflowing,this.axis.y.isOverflowing=h==="hidden"?!1:this.axis.y.isOverflowing,this.axis.x.forceVisible=this.options.forceVisible==="x"||this.options.forceVisible===!0,this.axis.y.forceVisible=this.options.forceVisible==="y"||this.options.forceVisible===!0,this.hideNativeScrollbar();var m=this.axis.x.isOverflowing?this.scrollbarWidth:0,x=this.axis.y.isOverflowing?this.scrollbarWidth:0;this.axis.x.isOverflowing=this.axis.x.isOverflowing&&u>o-x,this.axis.y.isOverflowing=this.axis.y.isOverflowing&&d>v-m,this.axis.x.scrollbar.size=this.getScrollbarSize("x"),this.axis.y.scrollbar.size=this.getScrollbarSize("y"),this.axis.x.scrollbar.el.style.width=this.axis.x.scrollbar.size+"px",this.axis.y.scrollbar.el.style.height=this.axis.y.scrollbar.size+"px",this.positionScrollbar("x"),this.positionScrollbar("y"),this.toggleTrackVisibility("x"),this.toggleTrackVisibility("y")},n.getScrollbarSize=function(s){if(s===void 0&&(s="y"),!this.axis[s].isOverflowing)return 0;var t=this.contentEl[this.axis[s].scrollSizeAttr],r=this.axis[s].track.el[this.axis[s].offsetSizeAttr],l,o=r/t;return l=Math.max(~~(o*r),this.options.scrollbarMinSize),this.options.scrollbarMaxSize&&(l=Math.min(l,this.options.scrollbarMaxSize)),l},n.positionScrollbar=function(s){if(s===void 0&&(s="y"),!!this.axis[s].isOverflowing){var t=this.contentWrapperEl[this.axis[s].scrollSizeAttr],r=this.axis[s].track.el[this.axis[s].offsetSizeAttr],l=parseInt(this.elStyles[this.axis[s].sizeAttr],10),o=this.axis[s].scrollbar,c=this.contentWrapperEl[this.axis[s].scrollOffsetAttr];c=s==="x"&&this.isRtl&&e.getRtlHelpers().isRtlScrollingInverted?-c:c;var h=c/(t-l),d=~~((r-o.size)*h);d=s==="x"&&this.isRtl&&e.getRtlHelpers().isRtlScrollbarInverted?d+(r-o.size):d,o.el.style.transform=s==="x"?"translate3d("+d+"px, 0, 0)":"translate3d(0, "+d+"px, 0)"}},n.toggleTrackVisibility=function(s){s===void 0&&(s="y");var t=this.axis[s].track.el,r=this.axis[s].scrollbar.el;this.axis[s].isOverflowing||this.axis[s].forceVisible?(t.style.visibility="visible",this.contentWrapperEl.style[this.axis[s].overflowAttr]="scroll"):(t.style.visibility="hidden",this.contentWrapperEl.style[this.axis[s].overflowAttr]="hidden"),this.axis[s].isOverflowing?r.style.display="block":r.style.display="none"},n.hideNativeScrollbar=function(){this.offsetEl.style[this.isRtl?"left":"right"]=this.axis.y.isOverflowing||this.axis.y.forceVisible?"-"+this.scrollbarWidth+"px":0,this.offsetEl.style.bottom=this.axis.x.isOverflowing||this.axis.x.forceVisible?"-"+this.scrollbarWidth+"px":0},n.onMouseMoveForAxis=function(s){s===void 0&&(s="y"),this.axis[s].track.rect=this.axis[s].track.el.getBoundingClientRect(),this.axis[s].scrollbar.rect=this.axis[s].scrollbar.el.getBoundingClientRect();var t=this.isWithinBounds(this.axis[s].scrollbar.rect);t?this.axis[s].scrollbar.el.classList.add(this.classNames.hover):this.axis[s].scrollbar.el.classList.remove(this.classNames.hover),this.isWithinBounds(this.axis[s].track.rect)?(this.showScrollbar(s),this.axis[s].track.el.classList.add(this.classNames.hover)):this.axis[s].track.el.classList.remove(this.classNames.hover)},n.onMouseLeaveForAxis=function(s){s===void 0&&(s="y"),this.axis[s].track.el.classList.remove(this.classNames.hover),this.axis[s].scrollbar.el.classList.remove(this.classNames.hover)},n.showScrollbar=function(s){s===void 0&&(s="y");var t=this.axis[s].scrollbar.el;this.axis[s].isVisible||(t.classList.add(this.classNames.visible),this.axis[s].isVisible=!0),this.options.autoHide&&this.hideScrollbars()},n.onDragStart=function(s,t){t===void 0&&(t="y");var r=D(this.el),l=N(this.el),o=this.axis[t].scrollbar,c=t==="y"?s.pageY:s.pageX;this.axis[t].dragOffset=c-o.rect[this.axis[t].offsetAttr],this.draggedAxis=t,this.el.classList.add(this.classNames.dragging),r.addEventListener("mousemove",this.drag,!0),r.addEventListener("mouseup",this.onEndDrag,!0),this.removePreventClickId===null?(r.addEventListener("click",this.preventClick,!0),r.addEventListener("dblclick",this.preventClick,!0)):(l.clearTimeout(this.removePreventClickId),this.removePreventClickId=null)},n.onTrackClick=function(s,t){var r=this;if(t===void 0&&(t="y"),!!this.options.clickOnTrack){var l=N(this.el);this.axis[t].scrollbar.rect=this.axis[t].scrollbar.el.getBoundingClientRect();var o=this.axis[t].scrollbar,c=o.rect[this.axis[t].offsetAttr],h=parseInt(this.elStyles[this.axis[t].sizeAttr],10),d=this.contentWrapperEl[this.axis[t].scrollOffsetAttr],u=t==="y"?this.mouseY-c:this.mouseX-c,v=u<0?-1:1,m=v===-1?d-h:d+h,x=function g(){if(v===-1){if(d>m){var p;d-=r.options.clickOnTrackSpeed,r.contentWrapperEl.scrollTo((p={},p[r.axis[t].offsetAttr]=d,p)),l.requestAnimationFrame(g)}}else if(d<m){var S;d+=r.options.clickOnTrackSpeed,r.contentWrapperEl.scrollTo((S={},S[r.axis[t].offsetAttr]=d,S)),l.requestAnimationFrame(g)}};x()}},n.getContentElement=function(){return this.contentEl},n.getScrollElement=function(){return this.contentWrapperEl},n.getScrollbarWidth=function(){try{return getComputedStyle(this.contentWrapperEl,"::-webkit-scrollbar").display==="none"||"scrollbarWidth"in document.documentElement.style||"-ms-overflow-style"in document.documentElement.style?0:J()}catch{return J()}},n.removeListeners=function(){var s=this,t=N(this.el);this.options.autoHide&&this.el.removeEventListener("mouseenter",this.onMouseEnter),["mousedown","click","dblclick"].forEach(function(r){s.el.removeEventListener(r,s.onPointerEvent,!0)}),["touchstart","touchend","touchmove"].forEach(function(r){s.el.removeEventListener(r,s.onPointerEvent,{capture:!0,passive:!0})}),this.el.removeEventListener("mousemove",this.onMouseMove),this.el.removeEventListener("mouseleave",this.onMouseLeave),this.contentWrapperEl&&this.contentWrapperEl.removeEventListener("scroll",this.onScroll),t.removeEventListener("resize",this.onWindowResize),this.mutationObserver&&this.mutationObserver.disconnect(),this.resizeObserver&&this.resizeObserver.disconnect(),this.recalculate.cancel(),this.onMouseMove.cancel(),this.hideScrollbars.cancel(),this.onWindowResize.cancel()},n.unMount=function(){this.removeListeners(),e.instances.delete(this.el)},n.isWithinBounds=function(s){return this.mouseX>=s.left&&this.mouseX<=s.left+s.width&&this.mouseY>=s.top&&this.mouseY<=s.top+s.height},n.findChild=function(s,t){var r=s.matches||s.webkitMatchesSelector||s.mozMatchesSelector||s.msMatchesSelector;return Array.prototype.filter.call(s.children,function(l){return r.call(l,t)})[0]},e})();F.defaultOptions={autoHide:!0,forceVisible:!1,clickOnTrack:!0,clickOnTrackSpeed:40,classNames:{contentEl:"simplebar-content",contentWrapper:"simplebar-content-wrapper",offset:"simplebar-offset",mask:"simplebar-mask",wrapper:"simplebar-wrapper",placeholder:"simplebar-placeholder",scrollbar:"simplebar-scrollbar",track:"simplebar-track",heightAutoObserverWrapperEl:"simplebar-height-auto-observer-wrapper",heightAutoObserverEl:"simplebar-height-auto-observer",visible:"simplebar-visible",horizontal:"simplebar-horizontal",vertical:"simplebar-vertical",hover:"simplebar-hover",dragging:"simplebar-dragging"},scrollbarMinSize:25,scrollbarMaxSize:0,timeout:1e3};F.instances=new WeakMap;function _e(e,n,a){return n in e?Object.defineProperty(e,n,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[n]=a,e}function M(){return M=Object.assign||function(e){for(var n=1;n<arguments.length;n++){var a=arguments[n];for(var s in a)Object.prototype.hasOwnProperty.call(a,s)&&(e[s]=a[s])}return e},M.apply(this,arguments)}function Q(e,n){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);n&&(s=s.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,s)}return a}function De(e){for(var n=1;n<arguments.length;n++){var a=arguments[n]!=null?arguments[n]:{};n%2?Q(a,!0).forEach(function(s){_e(e,s,a[s])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):Q(a).forEach(function(s){Object.defineProperty(e,s,Object.getOwnPropertyDescriptor(a,s))})}return e}function Te(e,n){if(e==null)return{};var a={},s=Object.keys(e),t,r;for(r=0;r<s.length;r++)t=s[r],!(n.indexOf(t)>=0)&&(a[t]=e[t]);return a}function Be(e,n){if(e==null)return{};var a=Te(e,n),s,t;if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(t=0;t<r.length;t++)s=r[t],!(n.indexOf(s)>=0)&&Object.prototype.propertyIsEnumerable.call(e,s)&&(a[s]=e[s])}return a}var Ue=function(n){var a=Array.prototype.reduce.call(n,function(s,t){var r=t.name.match(/data-simplebar-(.+)/);if(r){var l=r[1].replace(/\W+(.)/g,function(o,c){return c.toUpperCase()});switch(t.value){case"true":s[l]=!0;break;case"false":s[l]=!1;break;case void 0:s[l]=!0;break;default:s[l]=t.value}}return s},{});return a},X=f.forwardRef(function(e,n){var a=e.children,s=e.scrollableNodeProps,t=s===void 0?{}:s,r=Be(e,["children","scrollableNodeProps"]),l,o=A.useRef(),c=A.useRef(),h=A.useRef(),d={},u={},v=[];return Object.keys(r).forEach(function(m){Object.prototype.hasOwnProperty.call(F.defaultOptions,m)?d[m]=r[m]:m.match(/data-simplebar-(.+)/)&&m!=="data-simplebar-direction"?v.push({name:m,value:r[m]}):u[m]=r[m]}),v.length&&console.warn(`simplebar-react: this way of passing options is deprecated. Pass it like normal props instead:
4
+ 'data-simplebar-auto-hide="false"' —> 'autoHide="false"'
5
+ `),A.useEffect(function(){return o=t.ref||o,c.current&&(l=new F(c.current,De({},Ue(v),{},d,{},o&&{scrollableNode:o.current},{},h.current&&{contentNode:h.current})),n&&(n.current=l)),function(){l.unMount(),l=null}},[]),f.createElement("div",M({ref:c,"data-simplebar":!0},u),f.createElement("div",{className:"simplebar-wrapper"},f.createElement("div",{className:"simplebar-height-auto-observer-wrapper"},f.createElement("div",{className:"simplebar-height-auto-observer"})),f.createElement("div",{className:"simplebar-mask"},f.createElement("div",{className:"simplebar-offset"},typeof a=="function"?a({scrollableNodeRef:o,contentNodeRef:h}):f.createElement("div",M({},t,{className:"simplebar-content-wrapper".concat(t.className?" ".concat(t.className):"")}),f.createElement("div",{className:"simplebar-content"},a)))),f.createElement("div",{className:"simplebar-placeholder"})),f.createElement("div",{className:"simplebar-track simplebar-horizontal"},f.createElement("div",{className:"simplebar-scrollbar"})),f.createElement("div",{className:"simplebar-track simplebar-vertical"},f.createElement("div",{className:"simplebar-scrollbar"})))});X.displayName="SimpleBar";X.propTypes={children:z.oneOfType([z.node,z.func]),scrollableNodeProps:z.object};const He="_incorrect_4yeup_1",Ve="_answer_4yeup_4",Xe="_avatarContainer_4yeup_7",Ye="_avatarContainerImage_4yeup_15",qe="_image_4yeup_19",Ke="_imageContainer_4yeup_27",Ge="_svgFill_4yeup_42",C={incorrect:He,answer:Ve,avatarContainer:Xe,avatarContainerImage:Ye,image:qe,imageContainer:Ke,svgFill:Ge},T=["A","B","C","D"];ce.defaultProps={size:"lg",unCheckedBackground:"bg-white"};function ce(e){const[n,a]=f.useState(null),s=!!e.interaction.actionableItems.find(l=>{var o;return!!((o=l.data)!=null&&o.imageUrl)}),t=f.useRef(null),r=e.size==="sm"||s&&e.interaction.actionableItems.length>2;return i.jsx("ul",{className:`${s?`row ${r&&!e.isDisplayOnly?"px-lg-5 p-0":""}`:""} list-unstyled`,children:e.interaction.actionableItems.map((l,o)=>{var S,W;const c=(S=e.getSelectedAnswer)==null?void 0:S.call(e,l.id),h=(W=l.data)==null?void 0:W.imageUrl,d=!!l.name;function u(){e.submitted||(e.onSelectAnswer&&e.onSelectAnswer(l,!c),a(c?null:l.id))}if(e.onlyShowSelectedAnswer&&!c)return i.jsx(f.Fragment,{},o);let v=c?"bg-blue text-white":e.unCheckedBackground,m=()=>i.jsx(i.Fragment,{children:T[o]});e.showFeedback&&(e.showCorrectnessIcons||(v=l.isCorrect?"bg-success text-white":`bg-danger text-white ${C.incorrect}`),e.hideFeedbackIcons||(m=()=>i.jsx(i.Fragment,{children:l.isCorrect?i.jsx(y,{size:O.Small,svg:H}):i.jsx(y,{size:O.Small,svg:$})})));const x=e.showFeedback?{}:{role:"button",tabIndex:0,onKeyDown:ue=>ue.key==="Enter"&&u()};let g="";s&&(g="col-6");const p=l.id.toString()===(n==null?void 0:n.toString())&&e.leftHandSidePortalNode&&h&&!e.submitted;return i.jsxs(f.Fragment,{children:[p&&i.jsx(ye,{node:e.leftHandSidePortalNode,children:i.jsx(X,{className:"h-100",ref:t,children:i.jsxs("div",{className:"p-3 d-flex flex-column h-100",children:[i.jsxs("div",{className:"flex-grow-1",children:[i.jsx("div",{className:"cv-image-container text-center",children:i.jsx("img",{className:"img-fluid rounded",src:h,alt:l.name||T[o]})}),i.jsxs("div",{className:`${C.answer} h6 text-center text-dark p-3`,children:[i.jsx("span",{className:`d-inline-block ${d?"me-3":""} cv-multiple-choice-bullet`,children:i.jsx(m,{})}),d&&i.jsx("span",{className:"flex-grow-1 pe-4",children:l.name})]})]}),i.jsx("div",{className:"text-end",children:i.jsx(ge,{className:"btn btn-link",onClick:()=>a(null),children:"Close"})})]})})}),i.jsx("li",{className:`${g} mb-3`,children:i.jsxs("label",{className:`
6
+ d-block
7
+ rounded-3
8
+ shadow-sm
9
+ position-relative
10
+ ${e.showFeedback?"":"cursor-pointer"}
11
+ ${C.answer}
12
+ ${v}
13
+ ${s?"mb-0 h-100":""}
14
+ `,onClick:u,...x,children:[s&&i.jsxs("div",{children:[e.showCorrectnessIcons&&i.jsx("div",{className:`${C.svgFill} position-absolute top-0 start-0 p-2 z-1`,children:l.isCorrect?i.jsx(y,{svg:ae,size:O.ExtraLarge,className:"svg-container text-success"}):i.jsx(y,{svg:ne,size:O.Large,className:"svg-container text-red"})}),i.jsx("span",{className:`d-block position-relative ${C.imageContainer}`,children:i.jsx("span",{className:`
15
+ ${C.image}
16
+ position-absolute
17
+ start-0
18
+ end-0
19
+ top-0
20
+ bottom-0
21
+ rounded-top
22
+ `,style:{backgroundImage:h?`url(${h})`:void 0},title:l.name||T[o]})})]}),i.jsxs("span",{className:`d-flex ${d||e.isDisplayOnly?"justify-content-between":"justify-content-center"} ${r?"p-2":"p-3"}`,children:[i.jsx("span",{className:`d-inline-block ${d?"me-3":""} cv-multiple-choice-bullet`,children:i.jsx(m,{})}),d&&i.jsx("span",{className:"flex-grow-1 pe-4",children:l.name}),e.userAvatar&&!e.onlyShowSelectedAnswer&&i.jsx("span",{className:`${C.avatarContainer} ${s?C.avatarContainerImage:""}`,children:c&&i.jsx(P,{imageCdnUrl:e.imageApi,initials:e.userInitials,imageUrl:e.userAvatar,extraClasses:"border border-white"})})]})]},o)})]},o)})})}const Je="_uncheckedBackground_klk8h_1",de={uncheckedBackground:Je};function Qe(e){var s,t,r,l;function n(o){const c=e.answers.find(h=>h.id==o);return c==null?void 0:c.id}let a="my-2";return e.reportsStyling&&(a+=" mx-2"),i.jsx("div",{className:a,children:i.jsx(ce,{interaction:e.interaction,showFeedback:e.showFeedback,getSelectedAnswer:n,imageApi:e.imageCdnUrl,userInitials:e.anonymisedUserName?k.getInitialsFromFullName(e.anonymisedUserName):k.getInitials((s=e.user)==null?void 0:s.name,(t=e.user)==null?void 0:t.surname),userAvatar:e.anonymisedUserName?null:(l=(r=e.user)==null?void 0:r.avatar)==null?void 0:l.url,onlyShowSelectedAnswer:!e.showAvatar,size:"sm",unCheckedBackground:e.showFeedback?"":`${de.uncheckedBackground} text-white`,isDisplayOnly:!0})})}function Ze(e){const n=R.first(e.answers);if(!n)return i.jsx(i.Fragment,{});let a="rounded p-2 mb-2";return e.reportsStyling||(a+=" bg-blue text-white"),i.jsx("div",{className:a,children:n.text})}const et="_feedback_ktgsx_1",tt="_avatarContainer_ktgsx_5",st="_avatarContainerSmall_ktgsx_14",it="_avatarSmall_ktgsx_18",rt="_incorrect_ktgsx_22",nt="_large_ktgsx_25",at="_small_ktgsx_29",E={feedback:et,avatarContainer:tt,avatarContainerSmall:st,avatarSmall:it,incorrect:rt,large:nt,small:at};he.defaultProps={size:"lg",unCheckedBackground:"bg-white"};function he(e){function n(a){e.onSelectAnswer&&e.onSelectAnswer(a)}return i.jsx("div",{className:`d-flex ${e.className?e.className:""} ${e.size==="sm"?"mx-n1":"mx-n2"}`,children:e.interaction.actionableItems.map((a,s)=>{const t=e.getSelectedAnswer(a.id);let r=t?"bg-blue text-white":e.unCheckedBackground,l=()=>i.jsx(i.Fragment,{});e.showFeedback&&(r=a.isCorrect?"bg-success text-white":`bg-danger text-white ${E.incorrect}`,e.hideFeedbackIcons||(l=()=>i.jsx(i.Fragment,{children:a.isCorrect?i.jsx(y,{size:O.Small,svg:H}):i.jsx(y,{size:O.Small,svg:$})})));const o=e.showFeedback?{}:{role:"button",tabIndex:0,onKeyDown:c=>c.key==="Enter"&&n(a)};return i.jsxs("label",{htmlFor:a.id,className:`
23
+ rounded-3
24
+ shadow-sm
25
+ my-0
26
+ position-relative
27
+ overflow-hidden
28
+ d-flex
29
+ align-items-center
30
+ justify-content-center
31
+ ${e.size==="sm"?`${E.small} mx-1 h5`:`${E.large} mx-2 h4`}
32
+ ${e.showFeedback?"":"cursor-pointer"}
33
+ ${r}`,...o,children:[i.jsx("input",{id:a.id,type:"radio",name:"multiple-choice",checked:!!t,onChange:()=>n(a),disabled:e.showFeedback,hidden:!0}),a.name,i.jsx("span",{className:`position-absolute p-2 ${E.feedback}`,children:i.jsx(l,{})}),i.jsx("span",{className:`${E.avatarContainer}${e.size==="sm"?` ${E.avatarContainerSmall}`:""}`,children:t&&i.jsx(P,{imageCdnUrl:e.imageApi,initials:e.userInitials,imageUrl:e.userAvatar,extraClasses:`border border-white ${e.size==="sm"?E.avatarSmall:""}`})})]},s)})})}function lt(e){var s,t,r,l;function n(o){const c=e.answers.find(h=>h.id==o);return c==null?void 0:c.text}let a="justify-content-start";return e.reportsStyling&&(a="justify-content-center"),i.jsx("div",{className:"my-2",children:i.jsx(he,{className:a,interaction:e.interaction,showFeedback:e.showFeedback,hideFeedbackIcons:!e.showAvatar,getSelectedAnswer:n,imageApi:e.imageCdnUrl,userInitials:e.anonymisedUserName?k.getInitialsFromFullName(e.anonymisedUserName):k.getInitials((s=e.user)==null?void 0:s.name,(t=e.user)==null?void 0:t.surname),userAvatar:e.anonymisedUserName?null:(l=(r=e.user)==null?void 0:r.avatar)==null?void 0:l.url,size:"sm",unCheckedBackground:e.showFeedback?"":`${de.uncheckedBackground} text-white`})})}const Z=()=>i.jsx(i.Fragment,{}),ot={[b.Annotation]:Z,[b.Image]:Z,[b.MissingWord]:Pe,[b.MultipleChoice]:Qe,[b.TrueOrFalse]:lt,[b.ShortAnswer]:Ze,[b.Illustration]:$e},ct="_avatarContainer_1h05x_1",dt={avatarContainer:ct};function pt(e){var r,l,o,c;const n=ot[e.interaction.typeId];if(!n)return i.jsx(i.Fragment,{});const a=ee(e.studentResults),s=te(e.interaction.id,a),t=se.isInteractionCorrect(e.interaction,a);return i.jsx("div",{className:"position-relative mt-2",children:i.jsxs("div",{className:`rounded ${e.className??""}`,children:[i.jsxs("div",{className:"d-flex",children:[!!e.showStudentDetails&&i.jsx("div",{className:"me-2",children:i.jsx("div",{className:dt.avatarContainer,children:i.jsx(P,{imageCdnUrl:e.imageCdnUrl,initials:e.anonymisedUserName?k.getInitialsFromFullName(e.anonymisedUserName):k.getInitials((r=e.studentResults.user)==null?void 0:r.name,(l=e.studentResults.user)==null?void 0:l.surname),imageUrl:e.anonymisedUserName?null:(c=(o=e.studentResults.user)==null?void 0:o.avatar)==null?void 0:c.url})})}),i.jsxs("div",{className:"flex-grow-1",children:[!!e.showStudentDetails&&i.jsx(re,{studentResults:e.studentResults,correctness:t,anonymisedUserName:e.anonymisedUserName}),i.jsxs("div",{className:"d-flex justify-content-between",children:[i.jsx("div",{className:`flex-grow-1 ${e.responseComponentClass?e.responseComponentClass:""}`,children:s?i.jsx(n,{interaction:e.interaction,answers:s.answers,imageCdnUrl:e.imageCdnUrl,user:e.studentResults.user,showFeedback:e.showFeedback,showAvatar:e.showAvatar,reportsStyling:e.reportsStyling}):i.jsx(oe,{})}),!e.showStudentDetails&&i.jsx(V,{correctness:t})]})]})]}),i.jsx(le,{studentAttempt:s,correctness:t,markInteraction:e.markInteraction,markedStatus:e.markedStatus})]})})}export{pt as I,ce as M,yt as a,wt as u};
34
+ //# sourceMappingURL=DbBlo1x3.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DbBlo1x3.chunk.js","sources":["../../../../libs/shared/src/apps/analytics/hooks/UseMarkAnswers.ts","../../../../libs/shared/src/apps/analytics/components/questions-list/interaction-response-item/components/AnswerContainer.tsx","../../../../libs/shared/src/apps/analytics/components/questions-list/interaction-response-item/components/IllustrationResponse.tsx","../../../../libs/shared/src/apps/analytics/components/questions-list/interaction-response-item/components/MissingWordResponse.tsx","../../../../libs/shared/src/apps/analytics/components/questions-list/interaction-response-item/components/MultipleChoiceResponse.tsx","../../../../libs/shared/src/apps/analytics/components/questions-list/interaction-response-item/components/ShortAnswerResponse.tsx","../../../../libs/shared/src/apps/analytics/components/questions-list/interaction-response-item/components/TrueOrFalseResponse.tsx","../../../../libs/shared/src/apps/analytics/components/questions-list/interaction-response-item/ResponseItemComponentLookup.tsx","../../../../libs/shared/src/components/interaction-response/InteractionResponseCorrectness.tsx","../../../../libs/shared/src/components/interaction-response/InteractionStudentDetailsHeader.tsx","../../../../libs/shared/src/images/svg/objects/CrossCircleFilledSvg.tsx","../../../../libs/shared/src/images/svg/objects/CrossCircleSvg.tsx","../../../../libs/shared/src/images/svg/status/CheckCircleSvg.tsx","../../../../libs/shared/src/components/interaction-response/MarkResponse.tsx","../../../../libs/shared/src/components/interaction-response/response-types/NoResponse.tsx","../../../../libs/shared/src/apps/analytics/components/questions-list/interaction-response-item/InteractionResponseItem.tsx","../../../../libs/shared/src/components/interaction-response/response-types/IllustrationResponse.tsx","../../../../libs/shared/src/components/interaction-response/response-types/MissingWordResponse.tsx","../../../../../node_modules/simplebar/dist/simplebar-core.esm.js","../../../../../node_modules/simplebar-react/dist/simplebar-react.esm.js","../../../../libs/shared/src/components/interaction-answers/multiple-choice/MultipleChoiceInteractionAnswers.tsx","../../../../libs/shared/src/components/interaction-response/response-types/MultipleChoiceResponse.tsx","../../../../libs/shared/src/components/interaction-response/response-types/ShortAnswerResponse.tsx","../../../../libs/shared/src/components/interaction-answers/true-or-false/TrueOrFalseInteractionAnswers.tsx","../../../../libs/shared/src/components/interaction-response/response-types/TrueOrFalseResponse.tsx","../../../../libs/shared/src/components/interaction-response/response-types/ResponseComponentLookup.tsx","../../../../libs/shared/src/components/interaction-response/InteractionResponse.tsx"],"sourcesContent":["import { useState } from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { InteractiveResultsRequests } from 'libs/shared/apps/analytics/flight-requests/InteractiveResultsRequests';\nimport { getMarkedAnswerId } from 'libs/shared/apps/analytics/utils/InteractiveUtils';\nimport { InteractiveAnswerStatus } from 'libs/shared/enums/InteractiveAnswerStatus';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { StudentAnswer } from 'libs/shared/interfaces';\n\nconst getPhrase = LanguageService.encloseNamespace('reportsShared.dataHooks');\n\nexport type MarkedAnswerHash = { [id: string]: StudentAnswer };\n\n/**\n * This hook manages the storing of a marked answer hash in state and then the submitting\n * of those answers via an api call.\n */\nexport const useMarkAnswers = (interactiveId: string, interactiveMetadataId: string, onDone?: () => void) => {\n const [ markedAnswers, setMarkedAnswers ] = useState<MarkedAnswerHash>({});\n\n const dispatch = useDispatch();\n const alerts = useAlerts();\n\n function addMarkedAnswers(answers: StudentAnswer[], status: InteractiveAnswerStatus): void {\n answers.forEach(a => {\n setMarkedAnswers(m => ({ ...m, [getMarkedAnswerId(a)]: { ...a, status } }));\n });\n }\n\n function submitMarkedAnswers(): void {\n const answers = Object.keys(markedAnswers).map(key => markedAnswers[key]);\n\n if (!answers.length)\n return;\n\n let completeCount = 0;\n let successCount = 0;\n\n function onSuccess(): void {\n successCount++;\n }\n\n function onAlways(): void {\n completeCount++;\n\n if (completeCount === answers.length)\n onComplete();\n }\n\n function onComplete(): void {\n let alertMessage = '';\n let useErrorAlert = false;\n\n if (successCount === 0) {\n alertMessage = getPhrase('error', { smartCount: answers.length });\n useErrorAlert = true;\n }\n\n if (successCount < completeCount) {\n alertMessage = getPhrase('success', { smartCount: successCount })\n + ` ${getPhrase('partialError', { smartCount: completeCount - successCount })}`;\n }\n\n if (successCount === completeCount) {\n alertMessage = getPhrase('success', { smartCount: successCount });\n }\n\n useErrorAlert\n ? alerts.error(alertMessage)\n : alerts.success(alertMessage);\n\n setMarkedAnswers({});\n\n onDone && onDone();\n }\n\n answers.forEach(({ id, resultId, questionId, status }) => {\n Flight.fetch(dispatch, InteractiveResultsRequests.mark(\n interactiveId,\n interactiveMetadataId,\n id,\n { id, resultId, questionId, status },\n onSuccess,\n null,\n onAlways\n ));\n });\n }\n\n return {\n markedAnswers,\n addMarkedAnswers,\n submitMarkedAnswers\n };\n};","import React from 'react';\n\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { InteractiveAnswerStatus } from 'libs/shared/enums/InteractiveAnswerStatus';\nimport { CloseSvg } from 'libs/shared/images/svg/actions/CloseSvg';\nimport { CheckSvg } from 'libs/shared/images/svg/status/CheckSvg';\nimport { StudentAnswer } from 'libs/shared/interfaces';\n\ninterface AnswerContainerProps extends React.PropsWithChildren {\n answer: StudentAnswer;\n textClassName?: string;\n customAnswer?: boolean;\n}\n\nexport function AnswerContainer(props: AnswerContainerProps) {\n const { answer } = props;\n\n function getBgColour(status: InteractiveAnswerStatus) {\n switch (status) {\n case InteractiveAnswerStatus.Correct: return 'bg-light-green';\n case InteractiveAnswerStatus.Incorrect: return 'bg-light-red';\n case InteractiveAnswerStatus.PendingReview: return 'bg-light-blue';\n }\n }\n\n return (\n <div key={answer.id} className={`${getBgColour(answer.status)} rounded p-2 mb-2`}>\n <div className='d-flex align-items-center gap-2'>\n {answer.status === InteractiveAnswerStatus.Correct && <SvgContainer svg={CheckSvg} className='svg-container flex-shrink-0 text-success' />}\n {answer.status === InteractiveAnswerStatus.Incorrect && <SvgContainer svg={CloseSvg} className='svg-container flex-shrink-0 text-danger' />}\n {!props.customAnswer && <span className={props.textClassName}>{answer.text}</span>}\n </div>\n {props.children}\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 { AnswerContainer } from 'libs/shared/apps/analytics/components/questions-list/interaction-response-item/components/AnswerContainer';\nimport { ResponseItemComponentProps } from 'libs/shared/apps/analytics/components/questions-list/interaction-response-item/ResponseItemComponentLookup';\n\nconst namespace = 'shared.interactionResponses';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function IllustrationResponse(props: ResponseItemComponentProps): JSX.Element {\n const answer = ArrayHelper.first(props.answers);\n\n if (!answer)\n return <></>;\n\n return (\n <AnswerContainer answer={answer} customAnswer>\n <div className='ratio ratio-16x9'>\n <img\n className='img-fluid bg-white border rounded h-100 w-100'\n src={answer.text}\n alt={`${getPhrase('illustrationAlt')}: ${props.interaction.name}`}\n />\n </div>\n {props.children}\n </AnswerContainer>\n );\n}","import React from 'react';\n\nimport { AnswerContainer } from 'libs/shared/apps/analytics/components/questions-list/interaction-response-item/components/AnswerContainer';\nimport { ResponseItemComponentProps } from 'libs/shared/apps/analytics/components/questions-list/interaction-response-item/ResponseItemComponentLookup';\n\n\nexport function MissingWordResponse(props: ResponseItemComponentProps) {\n if (!props.answers.length) return <></>;\n\n return (\n <ul className='list-unstyled'>\n {props.answers.map(answer => (\n <li key={answer.id}>\n <AnswerContainer\n answer={answer}\n textClassName='bg-white p-1 border border-gray-300 rounded'\n />\n </li>\n ))}\n </ul>\n );\n}","import React from 'react';\n\nimport { AnswerContainer } from 'libs/shared/apps/analytics/components/questions-list/interaction-response-item/components/AnswerContainer';\nimport { ResponseItemComponentProps } from 'libs/shared/apps/analytics/components/questions-list/interaction-response-item/ResponseItemComponentLookup';\n\nexport function MultipleChoiceResponse(props: ResponseItemComponentProps) {\n if (!props.answers.length) return <></>;\n\n return (\n <ul className='list-unstyled'>\n {props.answers.map(answer => (\n <li key={answer.id}>\n <AnswerContainer answer={answer} />\n </li>\n ))}\n </ul>\n );\n}","import React from 'react';\n\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { AnswerContainer } from 'libs/shared/apps/analytics/components/questions-list/interaction-response-item/components/AnswerContainer';\nimport { ResponseItemComponentProps } from 'libs/shared/apps/analytics/components/questions-list/interaction-response-item/ResponseItemComponentLookup';\n\nexport function ShortAnswerResponse(props: ResponseItemComponentProps): JSX.Element {\n const answer = ArrayHelper.first(props.answers);\n\n if (!answer)\n return <></>;\n\n return (\n <AnswerContainer answer={answer}>\n {props.children}\n </AnswerContainer>\n );\n}","import React from 'react';\n\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { AnswerContainer } from 'libs/shared/apps/analytics/components/questions-list/interaction-response-item/components/AnswerContainer';\nimport { ResponseItemComponentProps } from 'libs/shared/apps/analytics/components/questions-list/interaction-response-item/ResponseItemComponentLookup';\n\nexport function TrueOrFalseResponse(props: ResponseItemComponentProps) {\n const answer = ArrayHelper.first(props.answers);\n\n if (!answer)\n return <></>;\n\n return (\n <AnswerContainer answer={answer} />\n );\n}","import React from 'react';\n\nimport { Interaction, InteractionTypeId, StudentAnswer, User } from 'libs/shared/interfaces';\n\nimport { IllustrationResponse } from './components/IllustrationResponse';\nimport { MissingWordResponse } from './components/MissingWordResponse';\nimport { MultipleChoiceResponse } from './components/MultipleChoiceResponse';\nimport { ShortAnswerResponse } from './components/ShortAnswerResponse';\nimport { TrueOrFalseResponse } from './components/TrueOrFalseResponse';\n\nexport interface ResponseItemComponentProps extends React.PropsWithChildren {\n interaction: Interaction;\n answers: StudentAnswer[];\n imageCdnUrl: string;\n user: User;\n showFeedback?: boolean;\n showAvatar?: boolean;\n anonymisedUserName?: string;\n}\nconst NoResponseRequired = () => <></>;\n\nexport const ResponseItemComponentLookup: {\n [typeId: number]: (props: ResponseItemComponentProps) => JSX.Element\n} = {\n [InteractionTypeId.Annotation]: NoResponseRequired,\n [InteractionTypeId.Image]: NoResponseRequired,\n [InteractionTypeId.MissingWord]: MissingWordResponse,\n [InteractionTypeId.MultipleChoice]: MultipleChoiceResponse,\n [InteractionTypeId.TrueOrFalse]: TrueOrFalseResponse,\n [InteractionTypeId.ShortAnswer]: ShortAnswerResponse,\n [InteractionTypeId.Illustration]: IllustrationResponse\n};","import React from 'react';\n\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { InteractionCorrectness } from 'libs/shared/enums/InteractionCorrectness';\nimport { CloseSvg } from 'libs/shared/images/svg/actions/CloseSvg';\nimport { TickSvg } from 'libs/shared/images/svg/status/TickSvg';\n\n\ninterface InteractionResponseCorrectnessProps {\n correctness: InteractionCorrectness;\n}\n\nexport function InteractionResponseCorrectness(props: InteractionResponseCorrectnessProps): JSX.Element {\n return (\n <>\n {props.correctness === InteractionCorrectness.Correct &&\n <div className='ms-2 text-success'>\n <SvgContainer svg={TickSvg} />\n </div>\n }\n {props.correctness === InteractionCorrectness.Incorrect &&\n <div className='ms-2 text-danger'>\n <SvgContainer svg={CloseSvg} />\n </div>\n }\n </>\n );\n}","import React from 'react';\n\nimport { InteractionCorrectness } from 'libs/shared/enums/InteractionCorrectness';\nimport { StudentResults } from 'libs/shared/interfaces';\nimport { UserHelper } from 'libs/shared/utils/UserHelper';\n\nimport { InteractionResponseCorrectness } from './InteractionResponseCorrectness';\n\ninterface InteractionStudentDetailsProps {\n studentResults: StudentResults;\n correctness: InteractionCorrectness;\n anonymisedUserName?: string;\n}\n\nexport function InteractionStudentDetailsHeader(props: InteractionStudentDetailsProps): JSX.Element {\n return (\n <div className='d-flex align-items-center justify-content-between mb-2'>\n <p className='fw-semibold mb-0'>\n {props.anonymisedUserName || UserHelper.getFullName(props.studentResults.user)}\n </p>\n <InteractionResponseCorrectness correctness={props.correctness} />\n </div>\n );\n}","import React from 'react';\n\nexport function CrossCircleFilledSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n fill='currentColor'\n d='M12.034 21C7.044 21 3 16.968 3 11.993s4.045-9.006 9.034-9.006 9.034 4.032 9.034 9.006S17.023 21 12.034 21M14.95 8.22l-2.946 2.867-2.89-2.91a.646.646 0 0 0-.909 0 .633.633 0 0 0 0 .9l2.891 2.91-2.89 2.922a.633.633 0 0 0 0 .9c.25.25.657.25.908 0l2.89-2.92 2.946 2.92c.251.25.658.25.909 0a.633.633 0 0 0 0-.9l-2.946-2.921L15.86 9.12a.633.633 0 0 0 0-.9.646.646 0 0 0-.909 0'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function CrossCircleSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <rect width='24' height='24' fill='white'/>\n <path\n fill='currentColor'\n fillRule='evenodd'\n d='M21 12c0-4.972-4.028-9-9-9s-9 4.028-9 9 4.028 9 9 9 9-4.028 9-9M6.492 6.492A7.74 7.74 0 0 1 12 4.212c2.081 0 4.037.809 5.508 2.28A7.74 7.74 0 0 1 19.788 12c0 2.081-.809 4.037-2.28 5.508A7.74 7.74 0 0 1 12 19.788a7.74 7.74 0 0 1-5.508-2.28A7.74 7.74 0 0 1 4.212 12c0-2.081.809-4.037 2.28-5.508m8.46 1.728-2.947 2.867-2.89-2.91a.646.646 0 0 0-.909 0 .633.633 0 0 0 0 .9l2.891 2.91-2.89 2.922a.633.633 0 0 0 0 .9c.25.25.657.25.908 0l2.89-2.92 2.946 2.92c.251.25.658.25.909 0a.633.633 0 0 0 0-.9l-2.946-2.921L15.86 9.12a.633.633 0 0 0 0-.9.646.646 0 0 0-.909 0'\n clipRule='evenodd'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function CheckCircleSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n fill='currentColor'\n d='M12 3c4.972 0 9 4.028 9 9s-4.028 9-9 9-9-4.028-9-9 4.028-9 9-9m4.244 5.578a.77.77 0 0 0-1.058.068l-4.722 5.18-1.684-1.615a.77.77 0 0 0-1.06 0 .7.7 0 0 0 0 1.018l2.25 2.16a.77.77 0 0 0 1.094-.035l5.25-5.76a.7.7 0 0 0-.07-1.016'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { InteractionCorrectness } from 'libs/shared/enums/InteractionCorrectness';\nimport { InteractiveAnswerStatus } from 'libs/shared/enums/InteractiveAnswerStatus';\nimport { CrossCircleFilledSvg } from 'libs/shared/images/svg/objects/CrossCircleFilledSvg';\nimport { CrossCircleSvg } from 'libs/shared/images/svg/objects/CrossCircleSvg';\nimport { CheckCircleOutlineSvg } from 'libs/shared/images/svg/status/CheckCircleOutlineSvg';\nimport { CheckCircleSvg } from 'libs/shared/images/svg/status/CheckCircleSvg';\nimport { StudentAnswer, StudentAttempt } from 'libs/shared/interfaces';\n\n\ninterface MarkResponseProps {\n studentAttempt: StudentAttempt;\n correctness: InteractionCorrectness;\n markInteraction: (answers: StudentAnswer[], status: InteractiveAnswerStatus) => void;\n markedStatus?: InteractiveAnswerStatus;\n}\n\nexport function MarkResponse(props: MarkResponseProps): JSX.Element {\n if (props.correctness !== InteractionCorrectness.AwaitingMarking)\n return <></>;\n\n return (\n <div className='d-flex justify-content-end gap-2 mt-2'>\n <div className={\n `d-flex flex-column justify-content-end cursor-pointer\n ${props.markedStatus === InteractiveAnswerStatus.Correct ? 'text-success' : ''}`\n }>\n <SvgContainer\n svg={props.markedStatus === InteractiveAnswerStatus.Correct\n ? CheckCircleSvg\n : CheckCircleOutlineSvg\n }\n onClick={\n () => props.markInteraction(props.studentAttempt.answers, InteractiveAnswerStatus.Correct)\n }\n />\n </div>\n <div className={\n `d-flex flex-column justify-content-end cursor-pointer\n ${props.markedStatus === InteractiveAnswerStatus.Incorrect ? ' text-danger' : ''}`\n }>\n <SvgContainer\n svg={props.markedStatus === InteractiveAnswerStatus.Incorrect\n ? CrossCircleFilledSvg\n : CrossCircleSvg\n }\n onClick={\n () => props.markInteraction(props.studentAttempt.answers, InteractiveAnswerStatus.Incorrect)\n }\n />\n </div>\n </div>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nconst namespace = 'interactives.responseTypes';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function NoResponse(): JSX.Element {\n return (\n <p className='p-2'><em>{getPhrase('noResponse')}</em></p>\n );\n}","import React from 'react';\n\nimport { ResponseItemComponentLookup } from 'libs/shared/apps/analytics/components/questions-list/interaction-response-item/ResponseItemComponentLookup';\nimport { Avatar } from 'libs/shared/components/avatar/Avatar';\nimport { InteractionResponseCorrectness } from 'libs/shared/components/interaction-response/InteractionResponseCorrectness';\nimport { InteractionStudentDetailsHeader } from 'libs/shared/components/interaction-response/InteractionStudentDetailsHeader';\nimport { MarkResponse } from 'libs/shared/components/interaction-response/MarkResponse';\nimport { NoResponse } from 'libs/shared/components/interaction-response/response-types/NoResponse';\nimport { InteractiveAnswerStatus } from 'libs/shared/enums/InteractiveAnswerStatus';\nimport { Interaction, StudentAnswer, StudentResults } from 'libs/shared/interfaces';\nimport { InteractiveCorrectnessHelper } from 'libs/shared/utils/InteractiveCorrectnessHelper';\nimport { getStudentAttempt, getStudentResult } from 'libs/shared/utils/InteractiveHelper';\nimport { UserHelper } from 'libs/shared/utils/UserHelper';\n\nimport styles from './interaction-response-item.module.scss';\n\ninterface InteractionResponseProps {\n interaction: Interaction;\n studentResults: StudentResults;\n imageCdnUrl: string;\n markInteraction: (answers: StudentAnswer[], status: InteractiveAnswerStatus) => void;\n markedStatus?: InteractiveAnswerStatus;\n showStudentDetails?: boolean;\n className?: string;\n showFeedback?: boolean;\n showAvatar?: boolean;\n anonymisedUserName?: string;\n responseComponentClass?: string;\n}\n\nexport function InteractionResponseItem(props: InteractionResponseProps): JSX.Element {\n const ResponseItemComponent = ResponseItemComponentLookup[props.interaction.typeId];\n\n if (!ResponseItemComponent)\n return <></>;\n\n const result = getStudentResult(props.studentResults);\n\n const studentAttempt = getStudentAttempt(props.interaction.id, result);\n\n const correctness = InteractiveCorrectnessHelper.isInteractionCorrect(props.interaction, result);\n\n return (\n <div className='position-relative'>\n <div className={`rounded ${props.className ?? ''}`}>\n <div className='d-flex'>\n {!!props.showStudentDetails &&\n <div className='me-2'>\n <div className={styles.avatarContainer}>\n <Avatar\n imageCdnUrl={props.imageCdnUrl}\n initials={props.anonymisedUserName\n ? UserHelper.getInitialsFromFullName(props.anonymisedUserName)\n : UserHelper.getInitials(props.studentResults.user?.name, props.studentResults.user?.surname)\n }\n imageUrl={props.anonymisedUserName ? null : props.studentResults.user?.avatar?.url}\n showAnonymousUser={!!props.studentResults?.user?.sessionId}\n />\n </div>\n \n </div>\n }\n <div className='flex-grow-1'>\n {!!props.showStudentDetails &&\n <InteractionStudentDetailsHeader\n studentResults={props.studentResults}\n correctness={correctness}\n anonymisedUserName={props.anonymisedUserName}\n />\n }\n <div className='d-flex justify-content-between'>\n <div className={`flex-grow-1 mb-2 ${props.responseComponentClass ? props.responseComponentClass : ''}`}>\n {studentAttempt\n ? <ResponseItemComponent\n interaction={props.interaction}\n answers={studentAttempt.answers}\n imageCdnUrl={props.imageCdnUrl}\n user={props.studentResults.user}\n showFeedback={props.showFeedback}\n showAvatar={props.showAvatar}\n >\n <MarkResponse\n studentAttempt={studentAttempt}\n correctness={correctness}\n markInteraction={props.markInteraction}\n markedStatus={props.markedStatus}\n />\n </ResponseItemComponent>\n : <NoResponse />\n }\n </div>\n {!props.showStudentDetails &&\n <InteractionResponseCorrectness correctness={correctness} />\n }\n </div>\n </div>\n </div>\n </div>\n </div>\n );\n}","import React from 'react';\n\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { ResponseComponentProps } from './ResponseComponentLookup';\n\nexport function IllustrationResponse(props: ResponseComponentProps): JSX.Element {\n // There should only be one answer.\n const answer = ArrayHelper.first(props.answers);\n\n if (!answer)\n return <></>;\n\n let className = 'rounded p-2 mb-2 w-50';\n\n if (!props.reportsStyling)\n className += ' text-white';\n \n return (\n <div className={className}>\n <img\n className='img-fluid border rounded'\n src={answer.text}\n alt={`Illustrated answer to the question: ${props.interaction.name}`}\n />\n </div>\n );\n}","import React from 'react';\n\nimport { InteractiveAnswerStatus } from 'libs/shared/enums/InteractiveAnswerStatus';\n\nimport { ResponseComponentProps } from './ResponseComponentLookup';\n\nconst PLACEHOLDER = 'cv-missing-word-';\n\nexport function MissingWordResponse(props: ResponseComponentProps): JSX.Element {\n const cleanedUp = (props.interaction.data.sentence as string).replace(/{([^{}]*)}/g, (match: string, val: string) => {\n return `{${PLACEHOLDER}${val}}`;\n });\n\n const items = cleanedUp.split(/{([^{}]*)}/g);\n\n let className = 'p-2';\n\n if (!props.reportsStyling)\n className += ' border rounded';\n\n return (\n <div className={className}>\n {items.map((item, idx) => {\n if (!item.startsWith(PLACEHOLDER))\n return item;\n\n const order = item.replace(PLACEHOLDER, '');\n\n const actionableItem = props.interaction.actionableItems.find(a => a.order.toString() === order);\n\n if (!actionableItem)\n return;\n\n // eslint-disable-next-line\n const answer = props.answers.find(a => a.id == actionableItem.id);\n \n if (!answer)\n return;\n\n if (!props.showFeedback)\n return <strong key={idx} className='text-info'>{answer.text}</strong>;\n\n const isCorrect = answer.status === InteractiveAnswerStatus.Correct;\n\n return (\n <React.Fragment key={idx}>\n {!isCorrect && <><del className='text-danger'><strong>{answer.text}</strong></del>&nbsp;</>}\n <strong className='text-success'>{actionableItem.name}</strong>\n </React.Fragment>\n );\n })}\n </div>\n );\n}","/**\n * SimpleBar.js - v5.3.0\n * Scrollbars, simpler.\n * https://grsmto.github.io/simplebar/\n *\n * Made by Adrien Denat from a fork by Jonathan Nicol\n * Under MIT License\n */\n\nimport 'core-js/modules/es.array.filter';\nimport 'core-js/modules/es.array.for-each';\nimport 'core-js/modules/es.array.iterator';\nimport 'core-js/modules/es.object.assign';\nimport 'core-js/modules/es.object.to-string';\nimport 'core-js/modules/es.parse-int';\nimport 'core-js/modules/es.string.iterator';\nimport 'core-js/modules/es.weak-map';\nimport 'core-js/modules/web.dom-collections.iterator';\nimport throttle from 'lodash.throttle';\nimport debounce from 'lodash.debounce';\nimport memoize from 'lodash.memoize';\nimport ResizeObserver from 'resize-observer-polyfill';\nimport canUseDOM from 'can-use-dom';\nimport 'core-js/modules/es.array.reduce';\nimport 'core-js/modules/es.function.name';\nimport 'core-js/modules/es.regexp.exec';\nimport 'core-js/modules/es.string.match';\nimport 'core-js/modules/es.string.replace';\n\nvar cachedScrollbarWidth = null;\nvar cachedDevicePixelRatio = null;\n\nif (canUseDOM) {\n window.addEventListener('resize', function () {\n if (cachedDevicePixelRatio !== window.devicePixelRatio) {\n cachedDevicePixelRatio = window.devicePixelRatio;\n cachedScrollbarWidth = null;\n }\n });\n}\n\nfunction scrollbarWidth() {\n if (cachedScrollbarWidth === null) {\n if (typeof document === 'undefined') {\n cachedScrollbarWidth = 0;\n return cachedScrollbarWidth;\n }\n\n var body = document.body;\n var box = document.createElement('div');\n box.classList.add('simplebar-hide-scrollbar');\n body.appendChild(box);\n var width = box.getBoundingClientRect().right;\n body.removeChild(box);\n cachedScrollbarWidth = width;\n }\n\n return cachedScrollbarWidth;\n}\n\nfunction getElementWindow(element) {\n if (!element || !element.ownerDocument || !element.ownerDocument.defaultView) {\n return window;\n }\n\n return element.ownerDocument.defaultView;\n}\nfunction getElementDocument(element) {\n if (!element || !element.ownerDocument) {\n return document;\n }\n\n return element.ownerDocument;\n}\n\nvar SimpleBar =\n/*#__PURE__*/\nfunction () {\n function SimpleBar(element, options) {\n var _this = this;\n\n this.onScroll = function () {\n var elWindow = getElementWindow(_this.el);\n\n if (!_this.scrollXTicking) {\n elWindow.requestAnimationFrame(_this.scrollX);\n _this.scrollXTicking = true;\n }\n\n if (!_this.scrollYTicking) {\n elWindow.requestAnimationFrame(_this.scrollY);\n _this.scrollYTicking = true;\n }\n };\n\n this.scrollX = function () {\n if (_this.axis.x.isOverflowing) {\n _this.showScrollbar('x');\n\n _this.positionScrollbar('x');\n }\n\n _this.scrollXTicking = false;\n };\n\n this.scrollY = function () {\n if (_this.axis.y.isOverflowing) {\n _this.showScrollbar('y');\n\n _this.positionScrollbar('y');\n }\n\n _this.scrollYTicking = false;\n };\n\n this.onMouseEnter = function () {\n _this.showScrollbar('x');\n\n _this.showScrollbar('y');\n };\n\n this.onMouseMove = function (e) {\n _this.mouseX = e.clientX;\n _this.mouseY = e.clientY;\n\n if (_this.axis.x.isOverflowing || _this.axis.x.forceVisible) {\n _this.onMouseMoveForAxis('x');\n }\n\n if (_this.axis.y.isOverflowing || _this.axis.y.forceVisible) {\n _this.onMouseMoveForAxis('y');\n }\n };\n\n this.onMouseLeave = function () {\n _this.onMouseMove.cancel();\n\n if (_this.axis.x.isOverflowing || _this.axis.x.forceVisible) {\n _this.onMouseLeaveForAxis('x');\n }\n\n if (_this.axis.y.isOverflowing || _this.axis.y.forceVisible) {\n _this.onMouseLeaveForAxis('y');\n }\n\n _this.mouseX = -1;\n _this.mouseY = -1;\n };\n\n this.onWindowResize = function () {\n // Recalculate scrollbarWidth in case it's a zoom\n _this.scrollbarWidth = _this.getScrollbarWidth();\n\n _this.hideNativeScrollbar();\n };\n\n this.hideScrollbars = function () {\n _this.axis.x.track.rect = _this.axis.x.track.el.getBoundingClientRect();\n _this.axis.y.track.rect = _this.axis.y.track.el.getBoundingClientRect();\n\n if (!_this.isWithinBounds(_this.axis.y.track.rect)) {\n _this.axis.y.scrollbar.el.classList.remove(_this.classNames.visible);\n\n _this.axis.y.isVisible = false;\n }\n\n if (!_this.isWithinBounds(_this.axis.x.track.rect)) {\n _this.axis.x.scrollbar.el.classList.remove(_this.classNames.visible);\n\n _this.axis.x.isVisible = false;\n }\n };\n\n this.onPointerEvent = function (e) {\n var isWithinTrackXBounds, isWithinTrackYBounds;\n _this.axis.x.track.rect = _this.axis.x.track.el.getBoundingClientRect();\n _this.axis.y.track.rect = _this.axis.y.track.el.getBoundingClientRect();\n\n if (_this.axis.x.isOverflowing || _this.axis.x.forceVisible) {\n isWithinTrackXBounds = _this.isWithinBounds(_this.axis.x.track.rect);\n }\n\n if (_this.axis.y.isOverflowing || _this.axis.y.forceVisible) {\n isWithinTrackYBounds = _this.isWithinBounds(_this.axis.y.track.rect);\n } // If any pointer event is called on the scrollbar\n\n\n if (isWithinTrackXBounds || isWithinTrackYBounds) {\n // Preventing the event's default action stops text being\n // selectable during the drag.\n e.preventDefault(); // Prevent event leaking\n\n e.stopPropagation();\n\n if (e.type === 'mousedown') {\n if (isWithinTrackXBounds) {\n _this.axis.x.scrollbar.rect = _this.axis.x.scrollbar.el.getBoundingClientRect();\n\n if (_this.isWithinBounds(_this.axis.x.scrollbar.rect)) {\n _this.onDragStart(e, 'x');\n } else {\n _this.onTrackClick(e, 'x');\n }\n }\n\n if (isWithinTrackYBounds) {\n _this.axis.y.scrollbar.rect = _this.axis.y.scrollbar.el.getBoundingClientRect();\n\n if (_this.isWithinBounds(_this.axis.y.scrollbar.rect)) {\n _this.onDragStart(e, 'y');\n } else {\n _this.onTrackClick(e, 'y');\n }\n }\n }\n }\n };\n\n this.drag = function (e) {\n var eventOffset;\n var track = _this.axis[_this.draggedAxis].track;\n var trackSize = track.rect[_this.axis[_this.draggedAxis].sizeAttr];\n var scrollbar = _this.axis[_this.draggedAxis].scrollbar;\n var contentSize = _this.contentWrapperEl[_this.axis[_this.draggedAxis].scrollSizeAttr];\n var hostSize = parseInt(_this.elStyles[_this.axis[_this.draggedAxis].sizeAttr], 10);\n e.preventDefault();\n e.stopPropagation();\n\n if (_this.draggedAxis === 'y') {\n eventOffset = e.pageY;\n } else {\n eventOffset = e.pageX;\n } // Calculate how far the user's mouse is from the top/left of the scrollbar (minus the dragOffset).\n\n\n var dragPos = eventOffset - track.rect[_this.axis[_this.draggedAxis].offsetAttr] - _this.axis[_this.draggedAxis].dragOffset; // Convert the mouse position into a percentage of the scrollbar height/width.\n\n var dragPerc = dragPos / (trackSize - scrollbar.size); // Scroll the content by the same percentage.\n\n var scrollPos = dragPerc * (contentSize - hostSize); // Fix browsers inconsistency on RTL\n\n if (_this.draggedAxis === 'x') {\n scrollPos = _this.isRtl && SimpleBar.getRtlHelpers().isRtlScrollbarInverted ? scrollPos - (trackSize + scrollbar.size) : scrollPos;\n scrollPos = _this.isRtl && SimpleBar.getRtlHelpers().isRtlScrollingInverted ? -scrollPos : scrollPos;\n }\n\n _this.contentWrapperEl[_this.axis[_this.draggedAxis].scrollOffsetAttr] = scrollPos;\n };\n\n this.onEndDrag = function (e) {\n var elDocument = getElementDocument(_this.el);\n var elWindow = getElementWindow(_this.el);\n e.preventDefault();\n e.stopPropagation();\n\n _this.el.classList.remove(_this.classNames.dragging);\n\n elDocument.removeEventListener('mousemove', _this.drag, true);\n elDocument.removeEventListener('mouseup', _this.onEndDrag, true);\n _this.removePreventClickId = elWindow.setTimeout(function () {\n // Remove these asynchronously so we still suppress click events\n // generated simultaneously with mouseup.\n elDocument.removeEventListener('click', _this.preventClick, true);\n elDocument.removeEventListener('dblclick', _this.preventClick, true);\n _this.removePreventClickId = null;\n });\n };\n\n this.preventClick = function (e) {\n e.preventDefault();\n e.stopPropagation();\n };\n\n this.el = element;\n this.minScrollbarWidth = 20;\n this.options = Object.assign({}, SimpleBar.defaultOptions, {}, options);\n this.classNames = Object.assign({}, SimpleBar.defaultOptions.classNames, {}, this.options.classNames);\n this.axis = {\n x: {\n scrollOffsetAttr: 'scrollLeft',\n sizeAttr: 'width',\n scrollSizeAttr: 'scrollWidth',\n offsetSizeAttr: 'offsetWidth',\n offsetAttr: 'left',\n overflowAttr: 'overflowX',\n dragOffset: 0,\n isOverflowing: true,\n isVisible: false,\n forceVisible: false,\n track: {},\n scrollbar: {}\n },\n y: {\n scrollOffsetAttr: 'scrollTop',\n sizeAttr: 'height',\n scrollSizeAttr: 'scrollHeight',\n offsetSizeAttr: 'offsetHeight',\n offsetAttr: 'top',\n overflowAttr: 'overflowY',\n dragOffset: 0,\n isOverflowing: true,\n isVisible: false,\n forceVisible: false,\n track: {},\n scrollbar: {}\n }\n };\n this.removePreventClickId = null; // Don't re-instantiate over an existing one\n\n if (SimpleBar.instances.has(this.el)) {\n return;\n }\n\n this.recalculate = throttle(this.recalculate.bind(this), 64);\n this.onMouseMove = throttle(this.onMouseMove.bind(this), 64);\n this.hideScrollbars = debounce(this.hideScrollbars.bind(this), this.options.timeout);\n this.onWindowResize = debounce(this.onWindowResize.bind(this), 64, {\n leading: true\n });\n SimpleBar.getRtlHelpers = memoize(SimpleBar.getRtlHelpers);\n this.init();\n }\n /**\n * Static properties\n */\n\n /**\n * Helper to fix browsers inconsistency on RTL:\n * - Firefox inverts the scrollbar initial position\n * - IE11 inverts both scrollbar position and scrolling offset\n * Directly inspired by @KingSora's OverlayScrollbars https://github.com/KingSora/OverlayScrollbars/blob/master/js/OverlayScrollbars.js#L1634\n */\n\n\n SimpleBar.getRtlHelpers = function getRtlHelpers() {\n var dummyDiv = document.createElement('div');\n dummyDiv.innerHTML = '<div class=\"hs-dummy-scrollbar-size\"><div style=\"height: 200%; width: 200%; margin: 10px 0;\"></div></div>';\n var scrollbarDummyEl = dummyDiv.firstElementChild;\n document.body.appendChild(scrollbarDummyEl);\n var dummyContainerChild = scrollbarDummyEl.firstElementChild;\n scrollbarDummyEl.scrollLeft = 0;\n var dummyContainerOffset = SimpleBar.getOffset(scrollbarDummyEl);\n var dummyContainerChildOffset = SimpleBar.getOffset(dummyContainerChild);\n scrollbarDummyEl.scrollLeft = 999;\n var dummyContainerScrollOffsetAfterScroll = SimpleBar.getOffset(dummyContainerChild);\n return {\n // determines if the scrolling is responding with negative values\n isRtlScrollingInverted: dummyContainerOffset.left !== dummyContainerChildOffset.left && dummyContainerChildOffset.left - dummyContainerScrollOffsetAfterScroll.left !== 0,\n // determines if the origin scrollbar position is inverted or not (positioned on left or right)\n isRtlScrollbarInverted: dummyContainerOffset.left !== dummyContainerChildOffset.left\n };\n };\n\n SimpleBar.getOffset = function getOffset(el) {\n var rect = el.getBoundingClientRect();\n var elDocument = getElementDocument(el);\n var elWindow = getElementWindow(el);\n return {\n top: rect.top + (elWindow.pageYOffset || elDocument.documentElement.scrollTop),\n left: rect.left + (elWindow.pageXOffset || elDocument.documentElement.scrollLeft)\n };\n };\n\n var _proto = SimpleBar.prototype;\n\n _proto.init = function init() {\n // Save a reference to the instance, so we know this DOM node has already been instancied\n SimpleBar.instances.set(this.el, this); // We stop here on server-side\n\n if (canUseDOM) {\n this.initDOM();\n this.scrollbarWidth = this.getScrollbarWidth();\n this.recalculate();\n this.initListeners();\n }\n };\n\n _proto.initDOM = function initDOM() {\n var _this2 = this;\n\n // make sure this element doesn't have the elements yet\n if (Array.prototype.filter.call(this.el.children, function (child) {\n return child.classList.contains(_this2.classNames.wrapper);\n }).length) {\n // assume that element has his DOM already initiated\n this.wrapperEl = this.el.querySelector(\".\" + this.classNames.wrapper);\n this.contentWrapperEl = this.options.scrollableNode || this.el.querySelector(\".\" + this.classNames.contentWrapper);\n this.contentEl = this.options.contentNode || this.el.querySelector(\".\" + this.classNames.contentEl);\n this.offsetEl = this.el.querySelector(\".\" + this.classNames.offset);\n this.maskEl = this.el.querySelector(\".\" + this.classNames.mask);\n this.placeholderEl = this.findChild(this.wrapperEl, \".\" + this.classNames.placeholder);\n this.heightAutoObserverWrapperEl = this.el.querySelector(\".\" + this.classNames.heightAutoObserverWrapperEl);\n this.heightAutoObserverEl = this.el.querySelector(\".\" + this.classNames.heightAutoObserverEl);\n this.axis.x.track.el = this.findChild(this.el, \".\" + this.classNames.track + \".\" + this.classNames.horizontal);\n this.axis.y.track.el = this.findChild(this.el, \".\" + this.classNames.track + \".\" + this.classNames.vertical);\n } else {\n // Prepare DOM\n this.wrapperEl = document.createElement('div');\n this.contentWrapperEl = document.createElement('div');\n this.offsetEl = document.createElement('div');\n this.maskEl = document.createElement('div');\n this.contentEl = document.createElement('div');\n this.placeholderEl = document.createElement('div');\n this.heightAutoObserverWrapperEl = document.createElement('div');\n this.heightAutoObserverEl = document.createElement('div');\n this.wrapperEl.classList.add(this.classNames.wrapper);\n this.contentWrapperEl.classList.add(this.classNames.contentWrapper);\n this.offsetEl.classList.add(this.classNames.offset);\n this.maskEl.classList.add(this.classNames.mask);\n this.contentEl.classList.add(this.classNames.contentEl);\n this.placeholderEl.classList.add(this.classNames.placeholder);\n this.heightAutoObserverWrapperEl.classList.add(this.classNames.heightAutoObserverWrapperEl);\n this.heightAutoObserverEl.classList.add(this.classNames.heightAutoObserverEl);\n\n while (this.el.firstChild) {\n this.contentEl.appendChild(this.el.firstChild);\n }\n\n this.contentWrapperEl.appendChild(this.contentEl);\n this.offsetEl.appendChild(this.contentWrapperEl);\n this.maskEl.appendChild(this.offsetEl);\n this.heightAutoObserverWrapperEl.appendChild(this.heightAutoObserverEl);\n this.wrapperEl.appendChild(this.heightAutoObserverWrapperEl);\n this.wrapperEl.appendChild(this.maskEl);\n this.wrapperEl.appendChild(this.placeholderEl);\n this.el.appendChild(this.wrapperEl);\n }\n\n if (!this.axis.x.track.el || !this.axis.y.track.el) {\n var track = document.createElement('div');\n var scrollbar = document.createElement('div');\n track.classList.add(this.classNames.track);\n scrollbar.classList.add(this.classNames.scrollbar);\n track.appendChild(scrollbar);\n this.axis.x.track.el = track.cloneNode(true);\n this.axis.x.track.el.classList.add(this.classNames.horizontal);\n this.axis.y.track.el = track.cloneNode(true);\n this.axis.y.track.el.classList.add(this.classNames.vertical);\n this.el.appendChild(this.axis.x.track.el);\n this.el.appendChild(this.axis.y.track.el);\n }\n\n this.axis.x.scrollbar.el = this.axis.x.track.el.querySelector(\".\" + this.classNames.scrollbar);\n this.axis.y.scrollbar.el = this.axis.y.track.el.querySelector(\".\" + this.classNames.scrollbar);\n\n if (!this.options.autoHide) {\n this.axis.x.scrollbar.el.classList.add(this.classNames.visible);\n this.axis.y.scrollbar.el.classList.add(this.classNames.visible);\n }\n\n this.el.setAttribute('data-simplebar', 'init');\n };\n\n _proto.initListeners = function initListeners() {\n var _this3 = this;\n\n var elWindow = getElementWindow(this.el); // Event listeners\n\n if (this.options.autoHide) {\n this.el.addEventListener('mouseenter', this.onMouseEnter);\n }\n\n ['mousedown', 'click', 'dblclick'].forEach(function (e) {\n _this3.el.addEventListener(e, _this3.onPointerEvent, true);\n });\n ['touchstart', 'touchend', 'touchmove'].forEach(function (e) {\n _this3.el.addEventListener(e, _this3.onPointerEvent, {\n capture: true,\n passive: true\n });\n });\n this.el.addEventListener('mousemove', this.onMouseMove);\n this.el.addEventListener('mouseleave', this.onMouseLeave);\n this.contentWrapperEl.addEventListener('scroll', this.onScroll); // Browser zoom triggers a window resize\n\n elWindow.addEventListener('resize', this.onWindowResize); // Hack for https://github.com/WICG/ResizeObserver/issues/38\n\n var resizeObserverStarted = false;\n var resizeObserver = elWindow.ResizeObserver || ResizeObserver;\n this.resizeObserver = new resizeObserver(function () {\n if (!resizeObserverStarted) return;\n\n _this3.recalculate();\n });\n this.resizeObserver.observe(this.el);\n this.resizeObserver.observe(this.contentEl);\n elWindow.requestAnimationFrame(function () {\n resizeObserverStarted = true;\n }); // This is required to detect horizontal scroll. Vertical scroll only needs the resizeObserver.\n\n this.mutationObserver = new elWindow.MutationObserver(this.recalculate);\n this.mutationObserver.observe(this.contentEl, {\n childList: true,\n subtree: true,\n characterData: true\n });\n };\n\n _proto.recalculate = function recalculate() {\n var elWindow = getElementWindow(this.el);\n this.elStyles = elWindow.getComputedStyle(this.el);\n this.isRtl = this.elStyles.direction === 'rtl';\n var isHeightAuto = this.heightAutoObserverEl.offsetHeight <= 1;\n var isWidthAuto = this.heightAutoObserverEl.offsetWidth <= 1;\n var contentElOffsetWidth = this.contentEl.offsetWidth;\n var contentWrapperElOffsetWidth = this.contentWrapperEl.offsetWidth;\n var elOverflowX = this.elStyles.overflowX;\n var elOverflowY = this.elStyles.overflowY;\n this.contentEl.style.padding = this.elStyles.paddingTop + \" \" + this.elStyles.paddingRight + \" \" + this.elStyles.paddingBottom + \" \" + this.elStyles.paddingLeft;\n this.wrapperEl.style.margin = \"-\" + this.elStyles.paddingTop + \" -\" + this.elStyles.paddingRight + \" -\" + this.elStyles.paddingBottom + \" -\" + this.elStyles.paddingLeft;\n var contentElScrollHeight = this.contentEl.scrollHeight;\n var contentElScrollWidth = this.contentEl.scrollWidth;\n this.contentWrapperEl.style.height = isHeightAuto ? 'auto' : '100%'; // Determine placeholder size\n\n this.placeholderEl.style.width = isWidthAuto ? contentElOffsetWidth + \"px\" : 'auto';\n this.placeholderEl.style.height = contentElScrollHeight + \"px\";\n var contentWrapperElOffsetHeight = this.contentWrapperEl.offsetHeight;\n this.axis.x.isOverflowing = contentElScrollWidth > contentElOffsetWidth;\n this.axis.y.isOverflowing = contentElScrollHeight > contentWrapperElOffsetHeight; // Set isOverflowing to false if user explicitely set hidden overflow\n\n this.axis.x.isOverflowing = elOverflowX === 'hidden' ? false : this.axis.x.isOverflowing;\n this.axis.y.isOverflowing = elOverflowY === 'hidden' ? false : this.axis.y.isOverflowing;\n this.axis.x.forceVisible = this.options.forceVisible === 'x' || this.options.forceVisible === true;\n this.axis.y.forceVisible = this.options.forceVisible === 'y' || this.options.forceVisible === true;\n this.hideNativeScrollbar(); // Set isOverflowing to false if scrollbar is not necessary (content is shorter than offset)\n\n var offsetForXScrollbar = this.axis.x.isOverflowing ? this.scrollbarWidth : 0;\n var offsetForYScrollbar = this.axis.y.isOverflowing ? this.scrollbarWidth : 0;\n this.axis.x.isOverflowing = this.axis.x.isOverflowing && contentElScrollWidth > contentWrapperElOffsetWidth - offsetForYScrollbar;\n this.axis.y.isOverflowing = this.axis.y.isOverflowing && contentElScrollHeight > contentWrapperElOffsetHeight - offsetForXScrollbar;\n this.axis.x.scrollbar.size = this.getScrollbarSize('x');\n this.axis.y.scrollbar.size = this.getScrollbarSize('y');\n this.axis.x.scrollbar.el.style.width = this.axis.x.scrollbar.size + \"px\";\n this.axis.y.scrollbar.el.style.height = this.axis.y.scrollbar.size + \"px\";\n this.positionScrollbar('x');\n this.positionScrollbar('y');\n this.toggleTrackVisibility('x');\n this.toggleTrackVisibility('y');\n }\n /**\n * Calculate scrollbar size\n */\n ;\n\n _proto.getScrollbarSize = function getScrollbarSize(axis) {\n if (axis === void 0) {\n axis = 'y';\n }\n\n if (!this.axis[axis].isOverflowing) {\n return 0;\n }\n\n var contentSize = this.contentEl[this.axis[axis].scrollSizeAttr];\n var trackSize = this.axis[axis].track.el[this.axis[axis].offsetSizeAttr];\n var scrollbarSize;\n var scrollbarRatio = trackSize / contentSize; // Calculate new height/position of drag handle.\n\n scrollbarSize = Math.max(~~(scrollbarRatio * trackSize), this.options.scrollbarMinSize);\n\n if (this.options.scrollbarMaxSize) {\n scrollbarSize = Math.min(scrollbarSize, this.options.scrollbarMaxSize);\n }\n\n return scrollbarSize;\n };\n\n _proto.positionScrollbar = function positionScrollbar(axis) {\n if (axis === void 0) {\n axis = 'y';\n }\n\n if (!this.axis[axis].isOverflowing) {\n return;\n }\n\n var contentSize = this.contentWrapperEl[this.axis[axis].scrollSizeAttr];\n var trackSize = this.axis[axis].track.el[this.axis[axis].offsetSizeAttr];\n var hostSize = parseInt(this.elStyles[this.axis[axis].sizeAttr], 10);\n var scrollbar = this.axis[axis].scrollbar;\n var scrollOffset = this.contentWrapperEl[this.axis[axis].scrollOffsetAttr];\n scrollOffset = axis === 'x' && this.isRtl && SimpleBar.getRtlHelpers().isRtlScrollingInverted ? -scrollOffset : scrollOffset;\n var scrollPourcent = scrollOffset / (contentSize - hostSize);\n var handleOffset = ~~((trackSize - scrollbar.size) * scrollPourcent);\n handleOffset = axis === 'x' && this.isRtl && SimpleBar.getRtlHelpers().isRtlScrollbarInverted ? handleOffset + (trackSize - scrollbar.size) : handleOffset;\n scrollbar.el.style.transform = axis === 'x' ? \"translate3d(\" + handleOffset + \"px, 0, 0)\" : \"translate3d(0, \" + handleOffset + \"px, 0)\";\n };\n\n _proto.toggleTrackVisibility = function toggleTrackVisibility(axis) {\n if (axis === void 0) {\n axis = 'y';\n }\n\n var track = this.axis[axis].track.el;\n var scrollbar = this.axis[axis].scrollbar.el;\n\n if (this.axis[axis].isOverflowing || this.axis[axis].forceVisible) {\n track.style.visibility = 'visible';\n this.contentWrapperEl.style[this.axis[axis].overflowAttr] = 'scroll';\n } else {\n track.style.visibility = 'hidden';\n this.contentWrapperEl.style[this.axis[axis].overflowAttr] = 'hidden';\n } // Even if forceVisible is enabled, scrollbar itself should be hidden\n\n\n if (this.axis[axis].isOverflowing) {\n scrollbar.style.display = 'block';\n } else {\n scrollbar.style.display = 'none';\n }\n };\n\n _proto.hideNativeScrollbar = function hideNativeScrollbar() {\n this.offsetEl.style[this.isRtl ? 'left' : 'right'] = this.axis.y.isOverflowing || this.axis.y.forceVisible ? \"-\" + this.scrollbarWidth + \"px\" : 0;\n this.offsetEl.style.bottom = this.axis.x.isOverflowing || this.axis.x.forceVisible ? \"-\" + this.scrollbarWidth + \"px\" : 0;\n }\n /**\n * On scroll event handling\n */\n ;\n\n _proto.onMouseMoveForAxis = function onMouseMoveForAxis(axis) {\n if (axis === void 0) {\n axis = 'y';\n }\n\n this.axis[axis].track.rect = this.axis[axis].track.el.getBoundingClientRect();\n this.axis[axis].scrollbar.rect = this.axis[axis].scrollbar.el.getBoundingClientRect();\n var isWithinScrollbarBoundsX = this.isWithinBounds(this.axis[axis].scrollbar.rect);\n\n if (isWithinScrollbarBoundsX) {\n this.axis[axis].scrollbar.el.classList.add(this.classNames.hover);\n } else {\n this.axis[axis].scrollbar.el.classList.remove(this.classNames.hover);\n }\n\n if (this.isWithinBounds(this.axis[axis].track.rect)) {\n this.showScrollbar(axis);\n this.axis[axis].track.el.classList.add(this.classNames.hover);\n } else {\n this.axis[axis].track.el.classList.remove(this.classNames.hover);\n }\n };\n\n _proto.onMouseLeaveForAxis = function onMouseLeaveForAxis(axis) {\n if (axis === void 0) {\n axis = 'y';\n }\n\n this.axis[axis].track.el.classList.remove(this.classNames.hover);\n this.axis[axis].scrollbar.el.classList.remove(this.classNames.hover);\n };\n\n /**\n * Show scrollbar\n */\n _proto.showScrollbar = function showScrollbar(axis) {\n if (axis === void 0) {\n axis = 'y';\n }\n\n var scrollbar = this.axis[axis].scrollbar.el;\n\n if (!this.axis[axis].isVisible) {\n scrollbar.classList.add(this.classNames.visible);\n this.axis[axis].isVisible = true;\n }\n\n if (this.options.autoHide) {\n this.hideScrollbars();\n }\n }\n /**\n * Hide Scrollbar\n */\n ;\n\n /**\n * on scrollbar handle drag movement starts\n */\n _proto.onDragStart = function onDragStart(e, axis) {\n if (axis === void 0) {\n axis = 'y';\n }\n\n var elDocument = getElementDocument(this.el);\n var elWindow = getElementWindow(this.el);\n var scrollbar = this.axis[axis].scrollbar; // Measure how far the user's mouse is from the top of the scrollbar drag handle.\n\n var eventOffset = axis === 'y' ? e.pageY : e.pageX;\n this.axis[axis].dragOffset = eventOffset - scrollbar.rect[this.axis[axis].offsetAttr];\n this.draggedAxis = axis;\n this.el.classList.add(this.classNames.dragging);\n elDocument.addEventListener('mousemove', this.drag, true);\n elDocument.addEventListener('mouseup', this.onEndDrag, true);\n\n if (this.removePreventClickId === null) {\n elDocument.addEventListener('click', this.preventClick, true);\n elDocument.addEventListener('dblclick', this.preventClick, true);\n } else {\n elWindow.clearTimeout(this.removePreventClickId);\n this.removePreventClickId = null;\n }\n }\n /**\n * Drag scrollbar handle\n */\n ;\n\n _proto.onTrackClick = function onTrackClick(e, axis) {\n var _this4 = this;\n\n if (axis === void 0) {\n axis = 'y';\n }\n\n if (!this.options.clickOnTrack) return;\n var elWindow = getElementWindow(this.el);\n this.axis[axis].scrollbar.rect = this.axis[axis].scrollbar.el.getBoundingClientRect();\n var scrollbar = this.axis[axis].scrollbar;\n var scrollbarOffset = scrollbar.rect[this.axis[axis].offsetAttr];\n var hostSize = parseInt(this.elStyles[this.axis[axis].sizeAttr], 10);\n var scrolled = this.contentWrapperEl[this.axis[axis].scrollOffsetAttr];\n var t = axis === 'y' ? this.mouseY - scrollbarOffset : this.mouseX - scrollbarOffset;\n var dir = t < 0 ? -1 : 1;\n var scrollSize = dir === -1 ? scrolled - hostSize : scrolled + hostSize;\n\n var scrollTo = function scrollTo() {\n if (dir === -1) {\n if (scrolled > scrollSize) {\n var _this4$contentWrapper;\n\n scrolled -= _this4.options.clickOnTrackSpeed;\n\n _this4.contentWrapperEl.scrollTo((_this4$contentWrapper = {}, _this4$contentWrapper[_this4.axis[axis].offsetAttr] = scrolled, _this4$contentWrapper));\n\n elWindow.requestAnimationFrame(scrollTo);\n }\n } else {\n if (scrolled < scrollSize) {\n var _this4$contentWrapper2;\n\n scrolled += _this4.options.clickOnTrackSpeed;\n\n _this4.contentWrapperEl.scrollTo((_this4$contentWrapper2 = {}, _this4$contentWrapper2[_this4.axis[axis].offsetAttr] = scrolled, _this4$contentWrapper2));\n\n elWindow.requestAnimationFrame(scrollTo);\n }\n }\n };\n\n scrollTo();\n }\n /**\n * Getter for content element\n */\n ;\n\n _proto.getContentElement = function getContentElement() {\n return this.contentEl;\n }\n /**\n * Getter for original scrolling element\n */\n ;\n\n _proto.getScrollElement = function getScrollElement() {\n return this.contentWrapperEl;\n };\n\n _proto.getScrollbarWidth = function getScrollbarWidth() {\n // Try/catch for FF 56 throwing on undefined computedStyles\n try {\n // Detect browsers supporting CSS scrollbar styling and do not calculate\n if (getComputedStyle(this.contentWrapperEl, '::-webkit-scrollbar').display === 'none' || 'scrollbarWidth' in document.documentElement.style || '-ms-overflow-style' in document.documentElement.style) {\n return 0;\n } else {\n return scrollbarWidth();\n }\n } catch (e) {\n return scrollbarWidth();\n }\n };\n\n _proto.removeListeners = function removeListeners() {\n var _this5 = this;\n\n var elWindow = getElementWindow(this.el); // Event listeners\n\n if (this.options.autoHide) {\n this.el.removeEventListener('mouseenter', this.onMouseEnter);\n }\n\n ['mousedown', 'click', 'dblclick'].forEach(function (e) {\n _this5.el.removeEventListener(e, _this5.onPointerEvent, true);\n });\n ['touchstart', 'touchend', 'touchmove'].forEach(function (e) {\n _this5.el.removeEventListener(e, _this5.onPointerEvent, {\n capture: true,\n passive: true\n });\n });\n this.el.removeEventListener('mousemove', this.onMouseMove);\n this.el.removeEventListener('mouseleave', this.onMouseLeave);\n\n if (this.contentWrapperEl) {\n this.contentWrapperEl.removeEventListener('scroll', this.onScroll);\n }\n\n elWindow.removeEventListener('resize', this.onWindowResize);\n\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n }\n\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n } // Cancel all debounced functions\n\n\n this.recalculate.cancel();\n this.onMouseMove.cancel();\n this.hideScrollbars.cancel();\n this.onWindowResize.cancel();\n }\n /**\n * UnMount mutation observer and delete SimpleBar instance from DOM element\n */\n ;\n\n _proto.unMount = function unMount() {\n this.removeListeners();\n SimpleBar.instances.delete(this.el);\n }\n /**\n * Check if mouse is within bounds\n */\n ;\n\n _proto.isWithinBounds = function isWithinBounds(bbox) {\n return this.mouseX >= bbox.left && this.mouseX <= bbox.left + bbox.width && this.mouseY >= bbox.top && this.mouseY <= bbox.top + bbox.height;\n }\n /**\n * Find element children matches query\n */\n ;\n\n _proto.findChild = function findChild(el, query) {\n var matches = el.matches || el.webkitMatchesSelector || el.mozMatchesSelector || el.msMatchesSelector;\n return Array.prototype.filter.call(el.children, function (child) {\n return matches.call(child, query);\n })[0];\n };\n\n return SimpleBar;\n}();\n\nSimpleBar.defaultOptions = {\n autoHide: true,\n forceVisible: false,\n clickOnTrack: true,\n clickOnTrackSpeed: 40,\n classNames: {\n contentEl: 'simplebar-content',\n contentWrapper: 'simplebar-content-wrapper',\n offset: 'simplebar-offset',\n mask: 'simplebar-mask',\n wrapper: 'simplebar-wrapper',\n placeholder: 'simplebar-placeholder',\n scrollbar: 'simplebar-scrollbar',\n track: 'simplebar-track',\n heightAutoObserverWrapperEl: 'simplebar-height-auto-observer-wrapper',\n heightAutoObserverEl: 'simplebar-height-auto-observer',\n visible: 'simplebar-visible',\n horizontal: 'simplebar-horizontal',\n vertical: 'simplebar-vertical',\n hover: 'simplebar-hover',\n dragging: 'simplebar-dragging'\n },\n scrollbarMinSize: 25,\n scrollbarMaxSize: 0,\n timeout: 1000\n};\nSimpleBar.instances = new WeakMap();\n\nexport default SimpleBar;\n//# sourceMappingURL=simplebar-core.esm.js.map\n","/**\n * simplebar-react - v2.3.0\n * React component for SimpleBar\n * https://grsmto.github.io/simplebar/\n *\n * Made by Adrien Denat\n * Under MIT License\n */\n\nimport React, { useRef, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport SimpleBarJS from 'simplebar/dist/simplebar-core.esm';\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\n/* Deprecated\n * Hardcore this here until we can safely deprecated it.\n * Helper function to retrieve options from element attributes\n */\n\nvar getOptions = function getOptions(obj) {\n var options = Array.prototype.reduce.call(obj, function (acc, attribute) {\n var option = attribute.name.match(/data-simplebar-(.+)/);\n\n if (option) {\n var key = option[1].replace(/\\W+(.)/g, function (x, chr) {\n return chr.toUpperCase();\n });\n\n switch (attribute.value) {\n case 'true':\n acc[key] = true;\n break;\n\n case 'false':\n acc[key] = false;\n break;\n\n case undefined:\n acc[key] = true;\n break;\n\n default:\n acc[key] = attribute.value;\n }\n }\n\n return acc;\n }, {});\n return options;\n};\n\nvar SimpleBar = React.forwardRef(function (_ref, ref) {\n var children = _ref.children,\n _ref$scrollableNodePr = _ref.scrollableNodeProps,\n scrollableNodeProps = _ref$scrollableNodePr === void 0 ? {} : _ref$scrollableNodePr,\n otherProps = _objectWithoutProperties(_ref, [\"children\", \"scrollableNodeProps\"]);\n\n var instance;\n var scrollableNodeRef = useRef();\n var elRef = useRef();\n var contentNodeRef = useRef();\n var options = {};\n var rest = {};\n var deprecatedOptions = [];\n Object.keys(otherProps).forEach(function (key) {\n if (Object.prototype.hasOwnProperty.call(SimpleBarJS.defaultOptions, key)) {\n options[key] = otherProps[key];\n } else if (key.match(/data-simplebar-(.+)/) && key !== 'data-simplebar-direction') {\n deprecatedOptions.push({\n name: key,\n value: otherProps[key]\n });\n } else {\n rest[key] = otherProps[key];\n }\n });\n\n if (deprecatedOptions.length) {\n console.warn(\"simplebar-react: this way of passing options is deprecated. Pass it like normal props instead:\\n 'data-simplebar-auto-hide=\\\"false\\\"' \\u2014> 'autoHide=\\\"false\\\"'\\n \");\n }\n\n useEffect(function () {\n scrollableNodeRef = scrollableNodeProps.ref || scrollableNodeRef;\n\n if (elRef.current) {\n instance = new SimpleBarJS(elRef.current, _objectSpread2({}, getOptions(deprecatedOptions), {}, options, {}, scrollableNodeRef && {\n scrollableNode: scrollableNodeRef.current\n }, {}, contentNodeRef.current && {\n contentNode: contentNodeRef.current\n }));\n\n if (ref) {\n ref.current = instance;\n }\n }\n\n return function () {\n instance.unMount();\n instance = null;\n };\n }, []);\n return React.createElement(\"div\", _extends({\n ref: elRef,\n \"data-simplebar\": true\n }, rest), React.createElement(\"div\", {\n className: \"simplebar-wrapper\"\n }, React.createElement(\"div\", {\n className: \"simplebar-height-auto-observer-wrapper\"\n }, React.createElement(\"div\", {\n className: \"simplebar-height-auto-observer\"\n })), React.createElement(\"div\", {\n className: \"simplebar-mask\"\n }, React.createElement(\"div\", {\n className: \"simplebar-offset\"\n }, typeof children === 'function' ? children({\n scrollableNodeRef: scrollableNodeRef,\n contentNodeRef: contentNodeRef\n }) : React.createElement(\"div\", _extends({}, scrollableNodeProps, {\n className: \"simplebar-content-wrapper\".concat(scrollableNodeProps.className ? \" \".concat(scrollableNodeProps.className) : '')\n }), React.createElement(\"div\", {\n className: \"simplebar-content\"\n }, children)))), React.createElement(\"div\", {\n className: \"simplebar-placeholder\"\n })), React.createElement(\"div\", {\n className: \"simplebar-track simplebar-horizontal\"\n }, React.createElement(\"div\", {\n className: \"simplebar-scrollbar\"\n })), React.createElement(\"div\", {\n className: \"simplebar-track simplebar-vertical\"\n }, React.createElement(\"div\", {\n className: \"simplebar-scrollbar\"\n })));\n});\nSimpleBar.displayName = 'SimpleBar';\nSimpleBar.propTypes = {\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n scrollableNodeProps: PropTypes.object\n};\n\nexport default SimpleBar;\n","import React from 'react';\nimport { HtmlPortalNode, InPortal } from 'react-reverse-portal';\nimport SimpleBar from 'simplebar-react';\n\nimport { Avatar } from 'libs/shared/components/avatar/Avatar';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { CloseSvg } from 'libs/shared/images/svg/actions/CloseSvg';\nimport { CrossCircleFilledSvg } from 'libs/shared/images/svg/objects/CrossCircleFilledSvg';\nimport { CheckCircleSvg } from 'libs/shared/images/svg/status/CheckCircleSvg';\nimport { CheckSvg } from 'libs/shared/images/svg/status/CheckSvg';\nimport { ActionableItem, Interaction } from 'libs/shared/interfaces';\n\nimport styles from './multiple-choice-interaction-answers.module.scss';\n\nconst alphabet = [ 'A', 'B', 'C', 'D' ];\n\ninterface MultipleChoiceInteractionAnswersProps {\n interaction: Interaction;\n showFeedback: boolean;\n getSelectedAnswer?: (actionableItemId: string) => string;\n imageApi?: string;\n userInitials?: string;\n userAvatar?: string;\n submitted?: boolean;\n size?: 'sm' | 'lg';\n showCorrectnessIcons?: boolean;\n\n /**\n * onSelectAnswer can be omitted when showing read-only results.\n */\n onSelectAnswer?: (answer: ActionableItem, checked: boolean) => void;\n\n onlyShowSelectedAnswer?: boolean;\n\n /**\n * Will hide the tick and cross from the answer tiles\n */\n hideFeedbackIcons?: boolean;\n unCheckedBackground?: string;\n\n leftHandSidePortalNode?: HtmlPortalNode;\n\n /**\n * Used when displaying the answer in reports\n */\n isDisplayOnly?: boolean;\n}\n\nMultipleChoiceInteractionAnswers.defaultProps = {\n size: 'lg',\n unCheckedBackground: 'bg-white'\n};\n\nexport function MultipleChoiceInteractionAnswers(props: MultipleChoiceInteractionAnswersProps): JSX.Element {\n const [ previewAnswer, setPreviewAnswer ] = React.useState<string>(null);\n\n const hasImages = !!props.interaction.actionableItems.find(a => !!a.data?.imageUrl);\n\n const scrollRef = React.useRef(null);\n\n const small = props.size === 'sm' || (hasImages && props.interaction.actionableItems.length > 2);\n\n return (\n <ul className={`${hasImages ? `row ${small && !props.isDisplayOnly ? 'px-lg-5 p-0' : ''}` : ''} list-unstyled`}>\n {props.interaction.actionableItems.map((a, index) => {\n const answer = props.getSelectedAnswer?.(a.id);\n const imageUrl = a.data?.imageUrl;\n const hasText = !!a.name;\n\n function onSelectAnswer(): void {\n if (props.submitted)\n return;\n\n if (props.onSelectAnswer)\n props.onSelectAnswer(a, !answer);\n\n setPreviewAnswer(answer ? null : a.id);\n }\n\n if (props.onlyShowSelectedAnswer && !answer)\n return <React.Fragment key={index}></React.Fragment>;\n\n let className = answer ?\n 'bg-blue text-white' :\n props.unCheckedBackground;\n\n let LeftPart = () => <>{alphabet[index]}</>;\n\n if (props.showFeedback) {\n if (!props.showCorrectnessIcons) {\n className = a.isCorrect ?\n 'bg-success text-white' :\n `bg-danger text-white ${styles.incorrect}`;\n }\n\n if (!props.hideFeedbackIcons) {\n LeftPart = () => {\n return (\n <>\n {a.isCorrect ?\n <SvgContainer size={SvgContainerSize.Small} svg={CheckSvg} /> :\n <SvgContainer size={SvgContainerSize.Small} svg={CloseSvg} />}\n </>\n );\n };\n }\n }\n\n /**\n * Allow keyboard controls, but not when we show feedback\n */\n const accessibility = props.showFeedback ? {} : {\n role: 'button',\n tabIndex: 0,\n onKeyDown: (e: React.KeyboardEvent) => e.key === 'Enter' && onSelectAnswer()\n };\n\n let hasImageClass = '';\n if (hasImages) {\n hasImageClass = 'col-6';\n }\n\n const showImagePreview = a.id.toString() === previewAnswer?.toString()\n && props.leftHandSidePortalNode\n && imageUrl\n && !props.submitted;\n\n return (\n <React.Fragment key={index}>\n {showImagePreview &&\n <InPortal node={props.leftHandSidePortalNode}>\n <SimpleBar className='h-100' ref={scrollRef}>\n <div className='p-3 d-flex flex-column h-100'>\n <div className='flex-grow-1'>\n <div className='cv-image-container text-center'>\n <img\n className='img-fluid rounded'\n src={imageUrl}\n alt={a.name || alphabet[index]}\n />\n </div>\n <div className={`${styles.answer} h6 text-center text-dark p-3`}>\n <span className={`d-inline-block ${hasText ? 'me-3' : ''} cv-multiple-choice-bullet`}><LeftPart /></span>\n {hasText && <span className='flex-grow-1 pe-4'>{a.name}</span>}\n </div>\n </div>\n <div className='text-end'>\n <DivButton\n className='btn btn-link'\n onClick={() => setPreviewAnswer(null)}\n >\n Close\n </DivButton>\n </div>\n </div>\n </SimpleBar>\n </InPortal>\n }\n <li className={`${hasImageClass} mb-3`}>\n <label\n className={`\n d-block\n rounded-3\n shadow-sm\n position-relative\n ${props.showFeedback ? '' : 'cursor-pointer'}\n ${styles.answer}\n ${className}\n ${hasImages ? 'mb-0 h-100' : ''}\n `}\n key={index}\n onClick={onSelectAnswer}\n {...accessibility}\n >\n {hasImages &&\n <div>\n {props.showCorrectnessIcons && (\n <div className={`${styles.svgFill} position-absolute top-0 start-0 p-2 z-1`}>\n {a.isCorrect\n ? <SvgContainer svg={CheckCircleSvg} size={SvgContainerSize.ExtraLarge} className='svg-container text-success' />\n : <SvgContainer svg={CrossCircleFilledSvg} size={SvgContainerSize.Large} className='svg-container text-red' />\n }\n </div>\n )}\n <span className={`d-block position-relative ${styles.imageContainer}`}>\n <span\n className={`\n ${styles.image}\n position-absolute\n start-0\n end-0\n top-0\n bottom-0\n rounded-top\n `}\n style={{ backgroundImage: imageUrl ? `url(${imageUrl})` : undefined }}\n title={a.name || alphabet[index]}\n />\n </span>\n </div>\n }\n <span className={`d-flex ${hasText || props.isDisplayOnly ? 'justify-content-between' : 'justify-content-center'} ${small ? 'p-2' : 'p-3'}`}>\n <span className={`d-inline-block ${hasText ? 'me-3' : ''} cv-multiple-choice-bullet`}><LeftPart /></span>\n {hasText && <span className='flex-grow-1 pe-4'>{a.name}</span>}\n {props.userAvatar && !props.onlyShowSelectedAnswer &&\n <span className={`${styles.avatarContainer} ${hasImages ? styles.avatarContainerImage : ''}`}>\n {answer &&\n <Avatar\n imageCdnUrl={props.imageApi}\n initials={props.userInitials}\n imageUrl={props.userAvatar}\n extraClasses={'border border-white'}\n />\n }\n </span>\n }\n </span>\n </label>\n </li>\n </React.Fragment>\n );\n })}\n </ul>\n );\n}","import React from 'react';\n\nimport { MultipleChoiceInteractionAnswers } from 'libs/shared/components/interaction-answers/multiple-choice/MultipleChoiceInteractionAnswers';\nimport { UserHelper } from 'libs/shared/utils/UserHelper';\n\nimport { ResponseComponentProps } from './ResponseComponentLookup';\n\nimport styles from './response-types.module.scss';\n\nexport function MultipleChoiceResponse(props: ResponseComponentProps): JSX.Element {\n function getAnswer(id: string): string {\n // eslint-disable-next-line\n const answer = props.answers.find(a => a.id == id);\n return answer?.id;\n }\n\n let className = 'my-2';\n\n if (props.reportsStyling)\n className += ' mx-2';\n\n return (\n <div className={className}>\n <MultipleChoiceInteractionAnswers\n interaction={props.interaction}\n showFeedback={props.showFeedback}\n getSelectedAnswer={getAnswer}\n imageApi={props.imageCdnUrl}\n userInitials={props.anonymisedUserName\n ? UserHelper.getInitialsFromFullName(props.anonymisedUserName)\n : UserHelper.getInitials(props.user?.name, props.user?.surname)\n }\n userAvatar={props.anonymisedUserName ? null : props.user?.avatar?.url}\n onlyShowSelectedAnswer={!props.showAvatar}\n size='sm'\n unCheckedBackground={props.showFeedback ? '' : `${styles.uncheckedBackground} text-white`}\n isDisplayOnly\n />\n </div>\n );\n}","import React from 'react';\n\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { ResponseComponentProps } from './ResponseComponentLookup';\n\nexport function ShortAnswerResponse(props: ResponseComponentProps): JSX.Element {\n // There should only be one answer.\n const answer = ArrayHelper.first(props.answers);\n\n if (!answer)\n return <></>;\n\n let className = 'rounded p-2 mb-2';\n\n if (!props.reportsStyling)\n className += ' bg-blue text-white';\n \n return (\n <div className={className}>\n {answer.text}\n </div>\n );\n}","import React from 'react';\n\nimport { Avatar } from 'libs/shared/components/avatar/Avatar';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { CloseSvg } from 'libs/shared/images/svg/actions/CloseSvg';\nimport { CheckSvg } from 'libs/shared/images/svg/status/CheckSvg';\nimport { ActionableItem, Interaction } from 'libs/shared/interfaces';\n\nimport styles from './true-or-false-interaction-answers.module.scss';\n\ninterface TrueOrFalseInteractionAnswersProps {\n className?: string;\n interaction: Interaction;\n showFeedback: boolean;\n getSelectedAnswer: (actionableItemId: string) => string;\n imageApi: string;\n userInitials: string;\n userAvatar: string;\n size?: 'sm' | 'lg'\n \n /**\n * onSelectAnswer can be omitted when showing read-only results.\n */\n onSelectAnswer?: (answer: ActionableItem) => void;\n\n /**\n * Will hide the tick and cross from the answer tiles\n */\n hideFeedbackIcons?: boolean;\n unCheckedBackground?: string;\n}\n\nTrueOrFalseInteractionAnswers.defaultProps = {\n size: 'lg',\n unCheckedBackground: 'bg-white'\n};\n\nexport function TrueOrFalseInteractionAnswers(props: TrueOrFalseInteractionAnswersProps): JSX.Element {\n function onSelectAnswer(answer: ActionableItem): void {\n if (props.onSelectAnswer)\n props.onSelectAnswer(answer);\n }\n \n return (\n <div\n className={`d-flex ${props.className ? props.className : ''} ${props.size === 'sm' ? 'mx-n1' : 'mx-n2'}`}>\n {props.interaction.actionableItems.map((a, index) => {\n const answer = props.getSelectedAnswer(a.id);\n\n let className = answer ?\n 'bg-blue text-white' :\n props.unCheckedBackground;\n\n let LeftPart = () => <></>;\n\n if (props.showFeedback) {\n className = a.isCorrect ?\n 'bg-success text-white' :\n `bg-danger text-white ${styles.incorrect}`;\n\n if (!props.hideFeedbackIcons) {\n LeftPart = () => {\n return (\n <>\n {a.isCorrect ?\n <SvgContainer size={SvgContainerSize.Small} svg={CheckSvg} /> :\n <SvgContainer size={SvgContainerSize.Small} svg={CloseSvg} />}\n </>\n );\n };\n }\n }\n\n /**\n * Allow keyboard controls, but not when we show feedback\n */\n const accessibility = props.showFeedback ? {} : {\n role: 'button',\n tabIndex: 0,\n onKeyDown: (e: React.KeyboardEvent) => e.key === 'Enter' && onSelectAnswer(a)\n };\n\n return (\n <label\n key={index}\n htmlFor={a.id}\n className={`\n rounded-3\n shadow-sm\n my-0\n position-relative\n overflow-hidden\n d-flex\n align-items-center\n justify-content-center\n ${props.size === 'sm' ? `${styles.small} mx-1 h5` : `${styles.large} mx-2 h4`}\n ${props.showFeedback ? '' : 'cursor-pointer'}\n ${className}`}\n {...accessibility}\n >\n <input\n id={a.id}\n type={'radio'}\n name='multiple-choice'\n checked={!!answer}\n onChange={() => onSelectAnswer(a)}\n disabled={props.showFeedback}\n hidden\n />\n {a.name}\n <span className={`position-absolute p-2 ${styles.feedback}`}><LeftPart /></span>\n <span className={`${styles.avatarContainer}${props.size === 'sm' ? ` ${styles.avatarContainerSmall}` : ''}`}>\n {answer &&\n <Avatar\n imageCdnUrl={props.imageApi}\n initials={props.userInitials}\n imageUrl={props.userAvatar}\n extraClasses={`border border-white ${props.size === 'sm' ? styles.avatarSmall : ''}`}\n />\n }\n </span>\n </label>\n );\n })}\n </div>\n );\n}","import React from 'react';\n\nimport { TrueOrFalseInteractionAnswers } from 'libs/shared/components/interaction-answers/true-or-false/TrueOrFalseInteractionAnswers';\nimport { UserHelper } from 'libs/shared/utils/UserHelper';\n\nimport { ResponseComponentProps } from './ResponseComponentLookup';\n\nimport styles from './response-types.module.scss';\n\nexport function TrueOrFalseResponse(props: ResponseComponentProps): JSX.Element {\n function getAnswer(id: string): string {\n // eslint-disable-next-line\n const answer = props.answers.find(a => a.id == id);\n return answer?.text;\n }\n\n let className = 'justify-content-start';\n\n if (props.reportsStyling)\n className = 'justify-content-center';\n \n return (\n <div className='my-2'>\n <TrueOrFalseInteractionAnswers\n className={className}\n interaction={props.interaction}\n showFeedback={props.showFeedback}\n hideFeedbackIcons={!props.showAvatar}\n getSelectedAnswer={getAnswer}\n imageApi={props.imageCdnUrl}\n userInitials={props.anonymisedUserName\n ? UserHelper.getInitialsFromFullName(props.anonymisedUserName)\n : UserHelper.getInitials(props.user?.name, props.user?.surname)\n }\n userAvatar={props.anonymisedUserName ? null : props.user?.avatar?.url}\n size='sm'\n unCheckedBackground={props.showFeedback ? '' : `${styles.uncheckedBackground} text-white`}\n />\n </div>\n );\n}","import React from 'react';\n\nimport { IllustrationResponse } from 'libs/shared/components/interaction-response/response-types/IllustrationResponse';\nimport { Interaction, InteractionTypeId, StudentAnswer, User } from 'libs/shared/interfaces';\n\nimport { MissingWordResponse } from './MissingWordResponse';\nimport { MultipleChoiceResponse } from './MultipleChoiceResponse';\nimport { ShortAnswerResponse } from './ShortAnswerResponse';\nimport { TrueOrFalseResponse } from './TrueOrFalseResponse';\n\nexport interface ResponseComponentProps {\n interaction: Interaction;\n answers: StudentAnswer[];\n imageCdnUrl: string;\n user: User;\n showFeedback?: boolean;\n showAvatar?: boolean;\n anonymisedUserName?: string;\n reportsStyling?: boolean;\n}\nconst NoResponseRequired = () => <></>;\n\nexport const ResponseComponentLookup: {\n [typeId: number]: (props: ResponseComponentProps) => JSX.Element\n} = {\n [InteractionTypeId.Annotation]: NoResponseRequired,\n [InteractionTypeId.Image]: NoResponseRequired,\n [InteractionTypeId.MissingWord]: MissingWordResponse,\n [InteractionTypeId.MultipleChoice]: MultipleChoiceResponse,\n [InteractionTypeId.TrueOrFalse]: TrueOrFalseResponse,\n [InteractionTypeId.ShortAnswer]: ShortAnswerResponse,\n [InteractionTypeId.Illustration]: IllustrationResponse\n};","import React from 'react';\n\nimport { Avatar } from 'libs/shared/components/avatar/Avatar';\nimport { InteractiveAnswerStatus } from 'libs/shared/enums/InteractiveAnswerStatus';\nimport { Interaction, StudentAnswer, StudentResults } from 'libs/shared/interfaces';\nimport { InteractiveCorrectnessHelper } from 'libs/shared/utils/InteractiveCorrectnessHelper';\nimport { getStudentAttempt, getStudentResult } from 'libs/shared/utils/InteractiveHelper';\nimport { UserHelper } from 'libs/shared/utils/UserHelper';\n\nimport { NoResponse } from './response-types/NoResponse';\nimport { ResponseComponentLookup } from './response-types/ResponseComponentLookup';\nimport { InteractionResponseCorrectness } from './InteractionResponseCorrectness';\nimport { InteractionStudentDetailsHeader } from './InteractionStudentDetailsHeader';\nimport { MarkResponse } from './MarkResponse';\n\nimport styles from './interaction-response.module.scss';\n\n\ninterface InteractionResponseProps {\n interaction: Interaction;\n studentResults: StudentResults;\n imageCdnUrl: string;\n markInteraction: (answers: StudentAnswer[], status: InteractiveAnswerStatus) => void;\n markedStatus?: InteractiveAnswerStatus;\n showStudentDetails?: boolean;\n className?: string;\n showFeedback?: boolean;\n showAvatar?: boolean;\n anonymisedUserName?: string;\n reportsStyling?: boolean;\n responseComponentClass?: string;\n}\n\nexport function InteractionResponse(props: InteractionResponseProps): JSX.Element {\n const ResponseComponent = ResponseComponentLookup[props.interaction.typeId];\n\n if (!ResponseComponent)\n return <></>;\n\n const result = getStudentResult(props.studentResults);\n\n const studentAttempt = getStudentAttempt(props.interaction.id, result);\n\n const correctness = InteractiveCorrectnessHelper.isInteractionCorrect(props.interaction, result);\n\n return (\n <div className='position-relative mt-2'>\n <div className={`rounded ${props.className ?? ''}`}>\n <div className='d-flex'>\n {!!props.showStudentDetails &&\n <div className='me-2'>\n <div className={styles.avatarContainer}>\n <Avatar\n imageCdnUrl={props.imageCdnUrl}\n initials={props.anonymisedUserName\n ? UserHelper.getInitialsFromFullName(props.anonymisedUserName)\n : UserHelper.getInitials(props.studentResults.user?.name, props.studentResults.user?.surname)\n }\n imageUrl={props.anonymisedUserName ? null : props.studentResults.user?.avatar?.url}\n />\n </div>\n </div>\n }\n <div className='flex-grow-1'>\n {!!props.showStudentDetails &&\n <InteractionStudentDetailsHeader\n studentResults={props.studentResults}\n correctness={correctness}\n anonymisedUserName={props.anonymisedUserName}\n />\n }\n <div className='d-flex justify-content-between'>\n <div className={`flex-grow-1 ${props.responseComponentClass ? props.responseComponentClass : ''}`}>\n {studentAttempt\n ? <ResponseComponent\n interaction={props.interaction}\n answers={studentAttempt.answers}\n imageCdnUrl={props.imageCdnUrl}\n user={props.studentResults.user}\n showFeedback={props.showFeedback}\n showAvatar={props.showAvatar}\n reportsStyling={props.reportsStyling}\n />\n : <NoResponse />\n }\n </div>\n {!props.showStudentDetails &&\n <InteractionResponseCorrectness correctness={correctness} />\n }\n </div>\n </div>\n </div>\n <MarkResponse\n studentAttempt={studentAttempt}\n correctness={correctness}\n markInteraction={props.markInteraction}\n markedStatus={props.markedStatus}\n />\n </div>\n </div>\n );\n}"],"names":["getPhrase","LanguageService","useMarkAnswers","interactiveId","interactiveMetadataId","onDone","markedAnswers","setMarkedAnswers","useState","dispatch","useDispatch","alerts","useAlerts","addMarkedAnswers","answers","status","a","m","getMarkedAnswerId","submitMarkedAnswers","key","completeCount","successCount","onSuccess","onAlways","onComplete","alertMessage","useErrorAlert","id","resultId","questionId","Flight.fetch","InteractiveResultsRequests","AnswerContainer","props","answer","getBgColour","InteractiveAnswerStatus","jsxs","jsx","SvgContainer","CheckSvg","CloseSvg","namespace","IllustrationResponse","ArrayHelper","Fragment","MissingWordResponse","MultipleChoiceResponse","ShortAnswerResponse","TrueOrFalseResponse","NoResponseRequired","ResponseItemComponentLookup","InteractionTypeId","InteractionResponseCorrectness","InteractionCorrectness","TickSvg","InteractionStudentDetailsHeader","UserHelper","CrossCircleFilledSvg","CrossCircleSvg","CheckCircleSvg","MarkResponse","CheckCircleOutlineSvg","NoResponse","InteractionResponseItem","ResponseItemComponent","result","getStudentResult","studentAttempt","getStudentAttempt","correctness","InteractiveCorrectnessHelper","styles","Avatar","_a","_b","_d","_c","_f","_e","className","PLACEHOLDER","items","match","val","item","idx","order","actionableItem","isCorrect","React","cachedScrollbarWidth","cachedDevicePixelRatio","canUseDOM","scrollbarWidth","body","box","width","getElementWindow","element","getElementDocument","SimpleBar","options","_this","elWindow","e","isWithinTrackXBounds","isWithinTrackYBounds","eventOffset","track","trackSize","scrollbar","contentSize","hostSize","dragPos","dragPerc","scrollPos","elDocument","throttle","debounce","memoize","dummyDiv","scrollbarDummyEl","dummyContainerChild","dummyContainerOffset","dummyContainerChildOffset","dummyContainerScrollOffsetAfterScroll","el","rect","_proto","_this2","child","_this3","resizeObserverStarted","resizeObserver","ResizeObserver","isHeightAuto","isWidthAuto","contentElOffsetWidth","contentWrapperElOffsetWidth","elOverflowX","elOverflowY","contentElScrollHeight","contentElScrollWidth","contentWrapperElOffsetHeight","offsetForXScrollbar","offsetForYScrollbar","axis","scrollbarSize","scrollbarRatio","scrollOffset","scrollPourcent","handleOffset","isWithinScrollbarBoundsX","_this4","scrollbarOffset","scrolled","t","dir","scrollSize","scrollTo","_this4$contentWrapper","_this4$contentWrapper2","_this5","bbox","query","matches","_defineProperty","obj","value","_extends","target","i","source","ownKeys","object","enumerableOnly","keys","symbols","sym","_objectSpread2","_objectWithoutPropertiesLoose","excluded","sourceKeys","_objectWithoutProperties","sourceSymbolKeys","getOptions","acc","attribute","option","x","chr","_ref","ref","children","_ref$scrollableNodePr","scrollableNodeProps","otherProps","instance","scrollableNodeRef","useRef","elRef","contentNodeRef","rest","deprecatedOptions","SimpleBarJS","useEffect","PropTypes","alphabet","MultipleChoiceInteractionAnswers","previewAnswer","setPreviewAnswer","hasImages","scrollRef","small","index","imageUrl","hasText","onSelectAnswer","LeftPart","SvgContainerSize","accessibility","hasImageClass","showImagePreview","InPortal","DivButton","getAnswer","TrueOrFalseInteractionAnswers","ResponseComponentLookup","InteractionResponse","ResponseComponent"],"mappings":"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","x_google_ignoreList":[18,19]}
@@ -0,0 +1,2 @@
1
+ import{s as t}from"./app-DhPN-zNB.js";import{g as o}from"./sFV5nxD4.chunk.js";const p={topSearches(e,r,s,a){return{url:t.urlBuilder("{gateway}/v1/analytics/search/top",e),key:o("top:searches",e),normalize:!1,success:r,error:s,always:a}}};export{p as S};
2
+ //# sourceMappingURL=DbxJfn_n.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DbxJfn_n.chunk.js","sources":["../../src/shared/flight-requests/SearchRequests.ts"],"sourcesContent":["import { Xhr } from 'libs/common/backbone/interfaces/Xhr';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { AnalyticsRequestFilter } from 'libs/shared/interfaces';\nimport { getAnalyticsRequestKey } from 'libs/shared/utils/AnalyticsRequestUtils';\n\nimport { TopSearch } from 'shared/interfaces';\n\nexport const SearchRequests = {\n topSearches(\n filter: AnalyticsRequestFilter,\n success?: (data: TopSearch[]) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder('{gateway}/v1/analytics/search/top', filter),\n key: getAnalyticsRequestKey('top:searches', filter),\n normalize: false,\n success,\n error,\n always\n };\n }\n};"],"names":["SearchRequests","filter","success","error","always","UrlHelper","getAnalyticsRequestKey"],"mappings":"8EASO,MAAMA,EAAiB,CAC5B,YACEC,EACAC,EACAC,EACAC,EACgB,CAChB,MAAO,CACL,IAAKC,EAAU,WAAW,oCAAqCJ,CAAM,EACrE,IAAKK,EAAuB,eAAgBL,CAAM,EAClD,UAAW,GACX,QAAAC,EACA,MAAAC,EACA,OAAAC,CAAA,CAEJ,CACF"}
@@ -0,0 +1,2 @@
1
+ import{cx as xt,aE as et,cy as jt,cz as Ct,cA as Rt,cB as St,cC as Mt,cD as It,cE as At,cF as qt,cG as Dt,cH as zt,cI as Lt,cJ as Ft,cK as Pt}from"./app-DhPN-zNB.js";xt();var at,dt;function Ht(){if(dt)return at;dt=1;var t=!!(typeof window<"u"&&window.document&&window.document.createElement);return at=t,at}var Wt=Ht();const he=et(Wt);jt();Ct();Rt();St();Mt();It();At();qt();var st,vt;function Gt(){if(vt)return st;vt=1;var t="Expected a function",e=NaN,n="[object Symbol]",o=/^\s+|\s+$/g,s=/^[-+]0x[0-9a-f]+$/i,v=/^0b[01]+$/i,b=/^0o[0-7]+$/i,T=parseInt,O=typeof globalThis=="object"&&globalThis&&globalThis.Object===Object&&globalThis,L=typeof self=="object"&&self&&self.Object===Object&&self,F=O||L||Function("return this")(),K=Object.prototype,X=K.toString,$=Math.max,W=Math.min,R=function(){return F.Date.now()};function k(a,f,p){var m,y,x,_,d,w,S=0,M=!1,C=!1,q=!0;if(typeof a!="function")throw new TypeError(t);f=c(f)||0,P(p)&&(M=!!p.leading,C="maxWait"in p,x=C?$(c(p.maxWait)||0,f):x,q="trailing"in p?!!p.trailing:q);function j(h){var E=m,I=y;return m=y=void 0,S=h,_=a.apply(I,E),_}function Y(h){return S=h,d=setTimeout(z,f),M?j(h):_}function B(h){var E=h-w,I=h-S,Q=f-E;return C?W(Q,x-I):Q}function D(h){var E=h-w,I=h-S;return w===void 0||E>=f||E<0||C&&I>=x}function z(){var h=R();if(D(h))return U(h);d=setTimeout(z,B(h))}function U(h){return d=void 0,q&&m?j(h):(m=y=void 0,_)}function H(){d!==void 0&&clearTimeout(d),S=0,m=w=y=d=void 0}function G(){return d===void 0?_:U(R())}function l(){var h=R(),E=D(h);if(m=arguments,y=this,w=h,E){if(d===void 0)return Y(w);if(C)return d=setTimeout(z,f),j(w)}return d===void 0&&(d=setTimeout(z,f)),_}return l.cancel=H,l.flush=G,l}function A(a,f,p){var m=!0,y=!0;if(typeof a!="function")throw new TypeError(t);return P(p)&&(m="leading"in p?!!p.leading:m,y="trailing"in p?!!p.trailing:y),k(a,f,{leading:m,maxWait:f,trailing:y})}function P(a){var f=typeof a;return!!a&&(f=="object"||f=="function")}function J(a){return!!a&&typeof a=="object"}function N(a){return typeof a=="symbol"||J(a)&&X.call(a)==n}function c(a){if(typeof a=="number")return a;if(N(a))return e;if(P(a)){var f=typeof a.valueOf=="function"?a.valueOf():a;a=P(f)?f+"":f}if(typeof a!="string")return a===0?a:+a;a=a.replace(o,"");var p=v.test(a);return p||b.test(a)?T(a.slice(2),p?2:8):s.test(a)?e:+a}return st=A,st}var $t=Gt();const le=et($t);var ct,pt;function kt(){if(pt)return ct;pt=1;var t="Expected a function",e=NaN,n="[object Symbol]",o=/^\s+|\s+$/g,s=/^[-+]0x[0-9a-f]+$/i,v=/^0b[01]+$/i,b=/^0o[0-7]+$/i,T=parseInt,O=typeof globalThis=="object"&&globalThis&&globalThis.Object===Object&&globalThis,L=typeof self=="object"&&self&&self.Object===Object&&self,F=O||L||Function("return this")(),K=Object.prototype,X=K.toString,$=Math.max,W=Math.min,R=function(){return F.Date.now()};function k(c,a,f){var p,m,y,x,_,d,w=0,S=!1,M=!1,C=!0;if(typeof c!="function")throw new TypeError(t);a=N(a)||0,A(f)&&(S=!!f.leading,M="maxWait"in f,y=M?$(N(f.maxWait)||0,a):y,C="trailing"in f?!!f.trailing:C);function q(l){var h=p,E=m;return p=m=void 0,w=l,x=c.apply(E,h),x}function j(l){return w=l,_=setTimeout(D,a),S?q(l):x}function Y(l){var h=l-d,E=l-w,I=a-h;return M?W(I,y-E):I}function B(l){var h=l-d,E=l-w;return d===void 0||h>=a||h<0||M&&E>=y}function D(){var l=R();if(B(l))return z(l);_=setTimeout(D,Y(l))}function z(l){return _=void 0,C&&p?q(l):(p=m=void 0,x)}function U(){_!==void 0&&clearTimeout(_),w=0,p=d=m=_=void 0}function H(){return _===void 0?x:z(R())}function G(){var l=R(),h=B(l);if(p=arguments,m=this,d=l,h){if(_===void 0)return j(d);if(M)return _=setTimeout(D,a),q(d)}return _===void 0&&(_=setTimeout(D,a)),x}return G.cancel=U,G.flush=H,G}function A(c){var a=typeof c;return!!c&&(a=="object"||a=="function")}function P(c){return!!c&&typeof c=="object"}function J(c){return typeof c=="symbol"||P(c)&&X.call(c)==n}function N(c){if(typeof c=="number")return c;if(J(c))return e;if(A(c)){var a=typeof c.valueOf=="function"?c.valueOf():c;c=A(a)?a+"":a}if(typeof c!="string")return c===0?c:+c;c=c.replace(o,"");var f=v.test(c);return f||b.test(c)?T(c.slice(2),f?2:8):s.test(c)?e:+c}return ct=k,ct}var Nt=kt();const de=et(Nt);var ut,_t;function Bt(){if(_t)return ut;_t=1;var t="Expected a function",e="__lodash_hash_undefined__",n="[object Function]",o="[object GeneratorFunction]",s=/[\\^$.*+?()[\]{}|]/g,v=/^\[object .+?Constructor\]$/,b=typeof globalThis=="object"&&globalThis&&globalThis.Object===Object&&globalThis,T=typeof self=="object"&&self&&self.Object===Object&&self,O=b||T||Function("return this")();function L(r,i){return r==null?void 0:r[i]}function F(r){var i=!1;if(r!=null&&typeof r.toString!="function")try{i=!!(r+"")}catch{}return i}var K=Array.prototype,X=Function.prototype,$=Object.prototype,W=O["__core-js_shared__"],R=(function(){var r=/[^.]+$/.exec(W&&W.keys&&W.keys.IE_PROTO||"");return r?"Symbol(src)_1."+r:""})(),k=X.toString,A=$.hasOwnProperty,P=$.toString,J=RegExp("^"+k.call(A).replace(s,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),N=K.splice,c=h(O,"Map"),a=h(Object,"create");function f(r){var i=-1,u=r?r.length:0;for(this.clear();++i<u;){var g=r[i];this.set(g[0],g[1])}}function p(){this.__data__=a?a(null):{}}function m(r){return this.has(r)&&delete this.__data__[r]}function y(r){var i=this.__data__;if(a){var u=i[r];return u===e?void 0:u}return A.call(i,r)?i[r]:void 0}function x(r){var i=this.__data__;return a?i[r]!==void 0:A.call(i,r)}function _(r,i){var u=this.__data__;return u[r]=a&&i===void 0?e:i,this}f.prototype.clear=p,f.prototype.delete=m,f.prototype.get=y,f.prototype.has=x,f.prototype.set=_;function d(r){var i=-1,u=r?r.length:0;for(this.clear();++i<u;){var g=r[i];this.set(g[0],g[1])}}function w(){this.__data__=[]}function S(r){var i=this.__data__,u=H(i,r);if(u<0)return!1;var g=i.length-1;return u==g?i.pop():N.call(i,u,1),!0}function M(r){var i=this.__data__,u=H(i,r);return u<0?void 0:i[u][1]}function C(r){return H(this.__data__,r)>-1}function q(r,i){var u=this.__data__,g=H(u,r);return g<0?u.push([r,i]):u[g][1]=i,this}d.prototype.clear=w,d.prototype.delete=S,d.prototype.get=M,d.prototype.has=C,d.prototype.set=q;function j(r){var i=-1,u=r?r.length:0;for(this.clear();++i<u;){var g=r[i];this.set(g[0],g[1])}}function Y(){this.__data__={hash:new f,map:new(c||d),string:new f}}function B(r){return l(this,r).delete(r)}function D(r){return l(this,r).get(r)}function z(r){return l(this,r).has(r)}function U(r,i){return l(this,r).set(r,i),this}j.prototype.clear=Y,j.prototype.delete=B,j.prototype.get=D,j.prototype.has=z,j.prototype.set=U;function H(r,i){for(var u=r.length;u--;)if(wt(r[u][0],i))return u;return-1}function G(r){if(!ht(r)||I(r))return!1;var i=Tt(r)||F(r)?J:v;return i.test(Q(r))}function l(r,i){var u=r.__data__;return E(i)?u[typeof i=="string"?"string":"hash"]:u.map}function h(r,i){var u=L(r,i);return G(u)?u:void 0}function E(r){var i=typeof r;return i=="string"||i=="number"||i=="symbol"||i=="boolean"?r!=="__proto__":r===null}function I(r){return!!R&&R in r}function Q(r){if(r!=null){try{return k.call(r)}catch{}try{return r+""}catch{}}return""}function nt(r,i){if(typeof r!="function"||i&&typeof i!="function")throw new TypeError(t);var u=function(){var g=arguments,it=i?i.apply(this,g):g[0],ot=u.cache;if(ot.has(it))return ot.get(it);var lt=r.apply(this,g);return u.cache=ot.set(it,lt),lt};return u.cache=new(nt.Cache||j),u}nt.Cache=j;function wt(r,i){return r===i||r!==r&&i!==i}function Tt(r){var i=ht(r)?P.call(r):"";return i==n||i==o}function ht(r){var i=typeof r;return!!r&&(i=="object"||i=="function")}return ut=nt,ut}var Ut=Bt();const ve=et(Ut);var mt=(function(){if(typeof Map<"u")return Map;function t(e,n){var o=-1;return e.some(function(s,v){return s[0]===n?(o=v,!0):!1}),o}return(function(){function e(){this.__entries__=[]}return Object.defineProperty(e.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),e.prototype.get=function(n){var o=t(this.__entries__,n),s=this.__entries__[o];return s&&s[1]},e.prototype.set=function(n,o){var s=t(this.__entries__,n);~s?this.__entries__[s][1]=o:this.__entries__.push([n,o])},e.prototype.delete=function(n){var o=this.__entries__,s=t(o,n);~s&&o.splice(s,1)},e.prototype.has=function(n){return!!~t(this.__entries__,n)},e.prototype.clear=function(){this.__entries__.splice(0)},e.prototype.forEach=function(n,o){o===void 0&&(o=null);for(var s=0,v=this.__entries__;s<v.length;s++){var b=v[s];n.call(o,b[1],b[0])}},e})()})(),ft=typeof window<"u"&&typeof document<"u"&&window.document===document,Z=(function(){return typeof globalThis<"u"&&globalThis.Math===Math?globalThis:typeof self<"u"&&self.Math===Math?self:typeof window<"u"&&window.Math===Math?window:Function("return this")()})(),Vt=(function(){return typeof requestAnimationFrame=="function"?requestAnimationFrame.bind(Z):function(t){return setTimeout(function(){return t(Date.now())},1e3/60)}})(),Kt=2;function Xt(t,e){var n=!1,o=!1,s=0;function v(){n&&(n=!1,t()),o&&T()}function b(){Vt(v)}function T(){var O=Date.now();if(n){if(O-s<Kt)return;o=!0}else n=!0,o=!1,setTimeout(b,e);s=O}return T}var Jt=20,Yt=["top","right","bottom","left","width","height","size","weight"],Qt=typeof MutationObserver<"u",Zt=(function(){function t(){this.connected_=!1,this.mutationEventsAdded_=!1,this.mutationsObserver_=null,this.observers_=[],this.onTransitionEnd_=this.onTransitionEnd_.bind(this),this.refresh=Xt(this.refresh.bind(this),Jt)}return t.prototype.addObserver=function(e){~this.observers_.indexOf(e)||this.observers_.push(e),this.connected_||this.connect_()},t.prototype.removeObserver=function(e){var n=this.observers_,o=n.indexOf(e);~o&&n.splice(o,1),!n.length&&this.connected_&&this.disconnect_()},t.prototype.refresh=function(){var e=this.updateObservers_();e&&this.refresh()},t.prototype.updateObservers_=function(){var e=this.observers_.filter(function(n){return n.gatherActive(),n.hasActive()});return e.forEach(function(n){return n.broadcastActive()}),e.length>0},t.prototype.connect_=function(){!ft||this.connected_||(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),Qt?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},t.prototype.disconnect_=function(){!ft||!this.connected_||(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},t.prototype.onTransitionEnd_=function(e){var n=e.propertyName,o=n===void 0?"":n,s=Yt.some(function(v){return!!~o.indexOf(v)});s&&this.refresh()},t.getInstance=function(){return this.instance_||(this.instance_=new t),this.instance_},t.instance_=null,t})(),gt=(function(t,e){for(var n=0,o=Object.keys(e);n<o.length;n++){var s=o[n];Object.defineProperty(t,s,{value:e[s],enumerable:!1,writable:!1,configurable:!0})}return t}),V=(function(t){var e=t&&t.ownerDocument&&t.ownerDocument.defaultView;return e||Z}),yt=rt(0,0,0,0);function tt(t){return parseFloat(t)||0}function bt(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];return e.reduce(function(o,s){var v=t["border-"+s+"-width"];return o+tt(v)},0)}function te(t){for(var e=["top","right","bottom","left"],n={},o=0,s=e;o<s.length;o++){var v=s[o],b=t["padding-"+v];n[v]=tt(b)}return n}function ee(t){var e=t.getBBox();return rt(0,0,e.width,e.height)}function re(t){var e=t.clientWidth,n=t.clientHeight;if(!e&&!n)return yt;var o=V(t).getComputedStyle(t),s=te(o),v=s.left+s.right,b=s.top+s.bottom,T=tt(o.width),O=tt(o.height);if(o.boxSizing==="border-box"&&(Math.round(T+v)!==e&&(T-=bt(o,"left","right")+v),Math.round(O+b)!==n&&(O-=bt(o,"top","bottom")+b)),!ie(t)){var L=Math.round(T+v)-e,F=Math.round(O+b)-n;Math.abs(L)!==1&&(T-=L),Math.abs(F)!==1&&(O-=F)}return rt(s.left,s.top,T,O)}var ne=(function(){return typeof SVGGraphicsElement<"u"?function(t){return t instanceof V(t).SVGGraphicsElement}:function(t){return t instanceof V(t).SVGElement&&typeof t.getBBox=="function"}})();function ie(t){return t===V(t).document.documentElement}function oe(t){return ft?ne(t)?ee(t):re(t):yt}function ae(t){var e=t.x,n=t.y,o=t.width,s=t.height,v=typeof DOMRectReadOnly<"u"?DOMRectReadOnly:Object,b=Object.create(v.prototype);return gt(b,{x:e,y:n,width:o,height:s,top:n,right:e+o,bottom:s+n,left:e}),b}function rt(t,e,n,o){return{x:t,y:e,width:n,height:o}}var se=(function(){function t(e){this.broadcastWidth=0,this.broadcastHeight=0,this.contentRect_=rt(0,0,0,0),this.target=e}return t.prototype.isActive=function(){var e=oe(this.target);return this.contentRect_=e,e.width!==this.broadcastWidth||e.height!==this.broadcastHeight},t.prototype.broadcastRect=function(){var e=this.contentRect_;return this.broadcastWidth=e.width,this.broadcastHeight=e.height,e},t})(),ce=(function(){function t(e,n){var o=ae(n);gt(this,{target:e,contentRect:o})}return t})(),ue=(function(){function t(e,n,o){if(this.activeObservations_=[],this.observations_=new mt,typeof e!="function")throw new TypeError("The callback provided as parameter 1 is not a function.");this.callback_=e,this.controller_=n,this.callbackCtx_=o}return t.prototype.observe=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if(!(typeof Element>"u"||!(Element instanceof Object))){if(!(e instanceof V(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var n=this.observations_;n.has(e)||(n.set(e,new se(e)),this.controller_.addObserver(this),this.controller_.refresh())}},t.prototype.unobserve=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if(!(typeof Element>"u"||!(Element instanceof Object))){if(!(e instanceof V(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var n=this.observations_;n.has(e)&&(n.delete(e),n.size||this.controller_.removeObserver(this))}},t.prototype.disconnect=function(){this.clearActive(),this.observations_.clear(),this.controller_.removeObserver(this)},t.prototype.gatherActive=function(){var e=this;this.clearActive(),this.observations_.forEach(function(n){n.isActive()&&e.activeObservations_.push(n)})},t.prototype.broadcastActive=function(){if(this.hasActive()){var e=this.callbackCtx_,n=this.activeObservations_.map(function(o){return new ce(o.target,o.broadcastRect())});this.callback_.call(e,n,e),this.clearActive()}},t.prototype.clearActive=function(){this.activeObservations_.splice(0)},t.prototype.hasActive=function(){return this.activeObservations_.length>0},t})(),Et=typeof WeakMap<"u"?new WeakMap:new mt,Ot=(function(){function t(e){if(!(this instanceof t))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var n=Zt.getInstance(),o=new ue(e,n,this);Et.set(this,o)}return t})();["observe","unobserve","disconnect"].forEach(function(t){Ot.prototype[t]=function(){var e;return(e=Et.get(this))[t].apply(e,arguments)}});var pe=(function(){return typeof Z.ResizeObserver<"u"?Z.ResizeObserver:Ot})();Dt();zt();Lt();Ft();Pt();export{he as c,de as d,pe as i,ve as m,le as t};
2
+ //# sourceMappingURL=DePDakSd.chunk.js.map